Program header reader; for creating directory of programs on a cassette.
Content
Image Gallery
Source Code
10 CLEAR 32767
20 FOR j=32768 TO 32794
30 READ k
40 POKE j,k
50 NEXT j
60 DATA 243,62,128,211,255,62,1,211,244,62,0,221,33,32,128,55,205,252,0,62,0,211,255,211,244,251,201
70 REM The DATA Statement Contains The Machine code ; 8000 DI ;Disable Int. 8001 LD A,80 ;\ 8003 OUT (FF),A ; \Switch To 8005 LD A,01 ; /Extension 8007 OUT (F4),A ;/ ROM 8009 LD A,00 ;LOAD Header 800B LD IX,8020 ;LOAD It Here 800F SCF ;LOAD Flag 8010 CALL 00FC ;LOAD Routine 8013 LD A,00 ;\ 8015 OUT (FF),A ; *Restore 8017 OUT (F4),A ;/ Home ROM 8019 EI ;Enable Int. 801A RET ;All Done
100 CLS
110 PRINT AT 10,5;"Program Header Display"
120 PRINT AT 12,0;"Start The Tape And Press Any Key"
130 IF INKEY$="" THEN GO TO 130
140 CLS
150 RANDOMIZE USR 32768: POKE 23692,2
160 IF PEEK 32800=0 THEN PRINT "Program: ";
170 IF PEEK 32800=1 THEN PRINT "Number array: ";
180 IF PEEK 32800=2 THEN PRINT "Character array: ";
190 IF PEEK 32800=3 THEN PRINT "Bytes: ";
200 LET mark=0: PRINT """";
210 FOR j=32810 TO 32801 STEP -1
220 IF PEEK j<>32 THEN IF mark=0 THEN LET mark=j
230 NEXT j
240 FOR j=32801 TO mark: PRINT CHR$ PEEK j;: NEXT j
245 PRINT """";
250 IF PEEK 32800=0 THEN IF PEEK 32813+256*PEEK 32814<9999 THEN PRINT " LINE ";PEEK 32813+256*PEEK 32814;
255 IF PEEK 32800=1 THEN PRINT " ";CHR$ (PEEK 32814-64);"(";(PEEK 32811+256*PEEK 32812-3)/5;")";
260 IF PEEK 32800=3 THEN PRINT " ";PEEK 32813+256*PEEK 32814;",";PEEK 32811+256*PEEK 32812;
265 IF PEEK 32800=2 THEN PRINT " ";CHR$ (PEEK 32814-128);"$(";PEEK 32811+256*PEEK 32812-3;")";
270 PAUSE 150: PRINT ""
280 GO TO 150
9999 SAVE "HEADER": BEEP 1,32