Tape Analyser

Developer(s): William Pierson
Date: 198x
Type: Program
Platform(s): TS 2068

For Spectrum mode but works for 2068 or Spectrum tapes.

Appears on

Library tape from the Sinclair Computer Users Society (SINCUS).

Gallery

Tape Analyser

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
Scroll to Top