Tape Analyser

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

For Spectrum mode but works for 2068 or Spectrum tapes.

Content

Appears On

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

Related Products

Related Articles

Related Content

Image 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