Home » Personal collection » Commodore disks » disk65a_programs_1.d64 » loader1
loader1
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 disks » disk65a_programs_1.d64 |
| Filename: | loader1 |
| Read OK: | ✔ |
| File size: | 0741 bytes |
| Load address: | 0801 |
| Exec address: | 0000 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Personal collection » Commodore disks » disk50a2_progs1.d64 » loader1
- Personal collection » Commodore disks » disk65a_programs_1.d64 » loader1
File contents
10 PRINTCHR$(147);CHR$(30);"ENTER ALL NUMBERS IN HEX":POKE53280,0:POKE53281,0:GOSUB710
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$:FO$="MC-"+FO$
190 INPUT"BASE ADDRESS";CO$:GOSUB 340:BA=CO
200 IF BA>65535 OR BA<0 THEN 190
210 OPEN 1,8,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$:FO$="MC-"+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,8,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 IF CO>255 THEN 430
420 CO$="00"+HEX$(CO):RETURN
430 CO$=HEX$(INT(CO/256))
440 CO$=CO$+HEX$(CO-256*INT(CO/256))
450 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
710 DIMHEX$(255):FORR=0TO15
720 FORX=0 TO 15:BA=(R*16)+X
730 A=R+48:IF A>57 THEN A=A+7
740 B=X+48:IF B>57 THEN B=B+7
750 HEX$(BA)=CHR$(A)+CHR$(B):NEXT
760 NEXT:RETURN
E ��(147);�(30);"ENTER ALL NUMBERS IN HEX":�53280,0:�53281,0:�710 X �"COMMAND";CO$ q � CO$�"LOADER" � 630 �( � CO$�"INPUT" � 180 �2 � CO$�"OUTPUT" � 240 �<