For Spectrum mode but works for 2068 or Spectrum tapes.
Appears on
Library tape from the Sinclair Computer Users Society (SINCUS).
Source Code
1 REM 'tape analyser' for Spectrum mode but works for 2068 or Spectrum tapes 2 REM Bill Pierson 10 BORDER 0: PAPER 0: INK 7 11 CLEAR 29999 15 DEF FN p(x)=PEEK x+256*PEEK (x+1): LET p=30016 20 FOR i=1 TO 16: READ a: POKE 29999+i,a: NEXT i 30 DATA 221,33,64,117,17,17,0,175,55,205,86,5,216,195,48,117 40 PRINT INVERSE 1;" *Tape Analyser* "; INVERSE 0 50 PRINT " NAME";TAB 10;"Length Remarks"'': PLOT 0,156: DRAW 255,0 60 PRINT #1;" Start tape, then press any key": PAUSE 0 65 PRINT #1;AT 1,0,, 70 RANDOMIZE USR 30000 75 LET n$="" 80 LET type=PEEK p: LET l=FN p(p+11): FOR i=p+1 TO p+10: LET n$=n$+CHR$ PEEK i: NEXT i 90 LET l$=STR$ l: LET l$=" "(1 TO 6-LEN l$)+l$ 100 PRINT n$;l$;" "; 110 IF type>3 THEN PRINT "Read Error": GO TO 70 130 IF type<3 THEN GO TO 170 140 LET s=FN p(p+13) 150 IF s=16384 AND l=6912 THEN PRINT "SCREEN$ ": GO TO 170 160 PRINT "CODE at: ";s: GO TO 70 170 IF type=0 THEN GO TO 200 180 LET s=PEEK (p+14): LET t=INT (s/32): LET l$=CHR$ (s-32*t+96): IF t=2 OR t=6 THEN LET l$=l$+n$ 190 PRINT "Array: ";l$: GO TO 70 200 LET l=FN p(p+13): LET s=FN p(p+15) 210 PRINT "Basic"; 220 IF l<10000 THEN PRINT " LINE ";l; 230 PRINT : GO TO 70