1 ' ADVANCED TAPE HEADER READER
2 ' BY EDWARD JOHN REID
3 ' AMSTRAD ACTION SEPTEMBER 1988
10 GOSUB 410
20 CLS
30 PRINT "Insert tape then press play then any key"
40 CALL &BB06
50 CALL &8000
60 bl.num=PEEK(16400):la.blo=PEEK(16401)
70 fi.typ=PEEK(16402):fi.blo=PEEK(16407)
80 bl.len=PEEK(16403)+256*PEEK(16404)
90 st.add=PEEK(16405)+256*PEEK(16406)
100 le.add=PEEK(16408)+256*PEEK(16409)
110 ex.add=PEEK(16410)+256*PEEK(16411)
120 IF fi.blo=&FF THEN fi.blo$="YES" ELSE fi.blo$="NO"
130 IF la.blo=&FF THEN la.blo$="YES" ELSE la.blo$="NO"
140 IF fi.typ=0 THEN fi.typ$="UNPROTECTED BASIC"
150 IF fi.typ=1 THEN fi.typ$="PROTECTED BASIC"
160 IF fi.typ=2 THEN fi.typ$="UNPROTECTED BINARY"
170 IF fi.typ=3 THEN fi.typ$="PROTECTED BINARY"
180 IF fi.typ=4 THEN fi.typ$="UNPROTECTED ASCII"
190 IF fi.typ=5 THEN fi.typ$="PROTECTED ASCII"
200 IF fi.typ>5 THEN fi.typ$="FUNNY TAPE FORMAT"
210 FOR loop=16384 TO 16399:byte=PEEK(loop)
220 IF byte=0 THEN loop=16400:GOTO 240
230 name$=name$+CHR$(byte)
240 NEXT loop
250 MODE 1
260 LOCATE 9,1:PRINT "Header Reader Mk1.9"
270 LOCATE 9,2:PRINT "By Edward John Reid":PRINT
280 PRINT "FILE NAME     : ";name$:PRINT
290 PRINT "FIRST BLOCK   : ";fi.blo$:PRINT
300 PRINT "LAST BLOCK    : ";la.blo$:PRINT
310 PRINT "BLOCK NUMBER  :";bl.num:PRINT
320 PRINT "FILE TYPE NO  :";fi.typ:PRINT
330 PRINT "FILE TYPE     : ";fi.typ$:PRINT
340 PRINT "START ADDRESS : &";HEX$(st.add,4):PRINT
350 PRINT "LENGTH        : &";HEX$(le.add,4):PRINT
360 PRINT "EXEC ADDRESS  : &";HEX$(ex.add,4):PRINT
370 PRINT "BLOCK LENGTH  : &";HEX$(bl.len,4):PRINT
380 LOCATE 8,25:PRINT "PRESS ANY KEY TO CONTINUE"
390 WHILE INKEY$="":WEND
400 MODE 1:GOTO 20
410 READ a$:IF a$="END" THEN RETURN
420 POKE &8000+i,VAL("&"+a$)
430 i=i+1:GOTO 410
440 DATA 3e,2c,11,40,00,21,00,40,cd,al,bc,c9,END