Home » Personal collection » Commodore tapes » Commodore_64 » drawer_tr_tape01a_d60_c64_tape.wav » loader
loader
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
| Tape/disk: | Home » Personal collection » Commodore tapes » Commodore_64 » drawer_tr_tape01a_d60_c64_tape.wav |
| Filename: | loader |
| Read OK: | ✔ |
| File size: | 06F9 bytes |
| Load address: | 0801 |
| Exec address: | 0000 |
File contents
10 PRINTCHR$(147);CHR$(30);"ENTER ALL NUMBERS IN HEX":POKE53280,0:POKE53281,0
20 INPUT"COMMAND";CO$
30 IF CO$="LOADER" THEN 630
40 IF CO$="INPUT" THEN 180
50 IF CO$="OUTPUT" THEN 240
60 IF CO$="END" THEN END
70 IF CO$="VIEW" THEN 490
80 IF CO$="POKE" THEN 130
90 IF CO$<>"RUN" THEN PRINT"MISTAKE":GOTO20
100 INPUT"BASE ADDRESS";CO$:GOSUB 340:BA=CO
110 SYS BA
120 GOTO 20
130 INPUT"ADDRESS";CO$:GOSUB 340:AD=CO
140 IF AD>65535 OR AD<0 THEN 130
150 INPUT"VALUE (IN DECIMAL)";V
160 IF V>255 OR V<0 THEN 150
170 POKE AD,V:GOTO 20
180 INPUT"FILENAME";FO$
190 INPUT"BASE ADDRESS";CO$:GOSUB 340:BA=CO
200 IF BA>65535 OR BA<0 THEN 190
210 OPEN 1,1,0,FO$:INPUT#1,CO:GOSUB410:PRINT"THIS FILE WAS SAVED AT:";CO$
220 INPUT#1,VL:IF VL=-1 THEN CLOSE 1:GOTO 20
230 POKE BA,VL:BA=BA+1:GOTO220
240 INPUT"FILENAME";FO$
250 INPUT"BASE ADDRESS";CO$:GOSUB340:BA=CO
260 IF BA>65535 OR BA<0 THEN 250
270 INPUT"FINISH ADDRESS";CO$:GOSUB340:FA=CO
280 IF FA>65535 THEN 270
290 IF FA<BA THEN 250
300 OPEN 1,1,1,FO$:PRINT#1,BA
310 FORL=BA TO FA
320 PRINT#1,PEEK(L):NEXT:PRINT#1,-1
330 CLOSE 1:GOTO 20
340 V$="0123456789ABCDEF":CO=0
350 FORD=1TOLEN(CO$)
360 FORL=1TO16
370 IF MID$(V$,L+1,1)=MID$(CO$,D,1) THEN 390
380 NEXT:NEXT:RETURN
390 CO=CO+((16^(LEN(CO$)-(D)))*L)
400 NEXT:NEXT:RETURN
410 V$="0123456789ABCDEF"
420 N1=INT(CO/4096)
430 N6=(CO/4096-N1)*16
440 N2=INT(N6):N3=INT((N6-N2)*16)
450 N4=(((N6-N2)*16)-N3)*16
460 CO$=MID$(V$,N1+1,1)+MID$(V$,N2+1,1)
470 CO$=CO$+MID$(V$,N3+1,1)+MID$(V$,N4+1,1)
480 RETURN
490 INPUT"BASE ADDRESS";CO$:GOSUB 340:BA=CO
500 PRINTCHR$(147);
510 FORL=BA TO BA+160 STEP 8
520 CO=L:GOSUB410:PRINTCO$;":";
530 FOR LO=L TO L+7
540 CO=PEEK(LO):GOSUB 410:CO$=MID$(CO$,3,2):PRINTCO$;" ";:NEXT
550 FORLO=L TO L+7:IF PEEK(LO)>127 OR PEEK(LO)<32 THEN PRINT".";:GOTO570
560 PRINTCHR$(PEEK(LO));
570 NEXT:PRINT:NEXT:PRINT:PRINT"E-END ;-BACK /-CONTINUE"
580 GET K$:IF K$="" THEN 580
590 IF K$="E" THEN 20
600 IF K$=";" THEN BA=BA-161:GOTO 500
610 IF K$="/" THEN BA=BA+161:GOTO 500
620 GOTO 580
630 INPUT"BASE ADDRESS";CO$:GOSUB 340
640 GOSUB 410:PRINTCO$;":";:INPUT P$:BA=CO-1
650 IF P$="END" THEN 20
660 IF LEN(P$)<>16 THEN 640
670 FORLO=1 TO 16 STEP 2
680 CO$=MID$(P$,LO,2):GOSUB 340
690 BA=BA+1:POKE BA,CO:NEXT:BA=BA+1
700 CO=BA:GOTO640
@ ��(147);�(30);"ENTER ALL NUMBERS IN HEX":�53280,0:�53281,0 S �"COMMAND";CO$ l � CO$�"LOADER" � 630 �( � CO$�"INPUT" � 180 �2 � CO$�"OUTPUT" � 240 �<