Creates a file of up to 128 entries as well as displaying the results. It is configured for printing to any Centronics printer.
Content
Source Code
1 CLS : PRINT FLASH 1;AT 3,8;" STOP RECORDER "
2 PRINT ''" This program accesses tape header information. It creates a file of up to 128 entries as well as displaying the results."''" It is configured for printing to any CENTRONICS printer."
3 PAUSE 600
200 STOP
399 CLEAR 59903
410 REM Printer Setup
411 LET C1=130: LET C2=131: LET C3=128: LET C4=129: LET C5=16: LET C6=64
412 CLS : PRINT ,," Please select PRINTER."''" 1 T-S 2040"''" 2 CENTRONICS w/PIO, IM1"
413 INPUT "Which? ";Printer: IF Printer=2 THEN GO TO 415
414 POKE 26703,PEEK 26693: POKE 26704,PEEK 26694: RETURN
415 PRINT AT 3,1;" PRINTER ADDRESSES "''" Printer: c1","Command: c2"'" Status: c3","Command: c4"'" BUSY bit: c5","STB Bit: c6"''" PRESENT VALUES "''" c1=";c1,"c2=";c2'" c3=";c3,"c4=";c4'" c5=";c5,"c6=";c6
416 PRINT '" Input new values as required and GO TO 415, else CONTINUE.": STOP
417 RESTORE 417: DATA 8,219,C3,230,C5,32,12,8,211,C1,175,243,211,C3,47,211,C3,251,201,205,9,32,56,-23,207,12
418 FOR N=61594 TO 61619: READ Byte: POKE N,Byte: NEXT N
420 REM init PIO
421 OUT C2,255: OUT C2,0: OUT C2,7: OUT C4,255: OUT C4,255-C6: OUT C4,7: OUT C3,64
422 POKE 26703,154: POKE 26704,240: GO TO 999
450 LPRINT ("\l/" AND Zoom);"\lG";STR$ Margin;";32;22;";STR$ Aspect;"\lZ";: RANDOMIZE USR LDat: RETURN : REM COPY
451 LET Zoom=0: LET Margin=40: LET aspect=3: GO TO 450
452 LET Zoom=1: LET Margin=40: LET aspect=2: GO TO 450
3995 DATA 62,0,55,221,33,45,242,17,17,0,243,245,219,255,203,255,211,255,219,244,50,44,242,62,1,211,244,241,205,252,0,58,44,242,211,244,219,255,203,191,211,255,251,201,0
3996 LET loadat=61952: LET wh=loadat+45: REM wh=61997
3997 RESTORE 3995: FOR n=loadat TO loadat+44: READ wc: POKE n,wc: NEXT n: DIM z$(129,64): LET z$(1)="TapeHdrs /128": LET ww=2: LET w$="": CLS : PRINT AT 10,6;" START RECORDER ": PRINT AT 0,0;
3998 POKE wh,4: RANDOMIZE USR loadat: LET wt=PEEK wh: IF wt>3 THEN GO TO 4010
3999 LET wl=PEEK (wh+11)+256*PEEK (wh+12): LET wc=PEEK (wh+14): LET wa=PEEK (wh+13)+256*wc: LET wv=PEEK (wh+15)+256*PEEK (wh+16): LET wt=PEEK wh: IF wt>3 THEN GO TO 4006
4000 LET w$="": FOR n=wh+1 TO wh+10: LET w$=w$+CHR$ PEEK n: NEXT n: GO TO 4001+wt
4001 LET Z$(WW)=w$+" PROG "+STR$ wv+", VARS "+STR$ (wl-wv): LET z$(ww,36 TO )=(("Autostart LINE "+STR$ wa) AND (PEEK (wh+14)<>128))+("No Autostart" AND (PEEK (wh+14)=128)): GO TO 4005
4002 LET Z$(WW)=w$+" "+CHR$ (wc-32)+"(), "+STR$ wl: GO TO 4005
4003 LET Z$(WW)=w$+" "+CHR$ (wc-96)+"$(), "+STR$ wl: GO TO 4005
4004 LET Z$(WW)=w$+" CODE "+STR$ wl+" from "+STR$ wa
4005 PRINT AT 0,0;z$(ww): LPRINT z$(ww);CHR$ 10;: LET ww=ww+1: LET w=PEEK 26704=PEEK 26694
4010 PAUSE 300: GO TO 3998
4500 STOP
4600 FOR n=1 TO ww: PRINT z$(n): NEXT n: STOP
9990 LET w$=STR$ (ww-1)
9991 IF LEN w$<3 THEN LET w$=" "+w$: GO TO 9991
9994 LET z$(1,12 TO 14)=w$
9995 SAVE z$(1, TO 10) DATA z$()
9996 STOP
9998 DIM z$(1,1): SAVE "TapeLister" LINE 1
9999 GO TO 9998
1 CLS : PRINT FLASH 1;AT 3,8;" STOP RECORDER "
2 PRINT ''" This program accesses tape header information. It creates a file of up to 128 entries as well as displaying the results."''" It is configured for printing to any CENTRONICS printer."
3 PAUSE 600
200 STOP
399 CLEAR 59903
410 REM Printer Setup
411 LET C1=130: LET C2=131: LET C3=128: LET C4=129: LET C5=16: LET C6=64
412 CLS : PRINT ,," Please select PRINTER."''" 1 T-S 2040"''" 2 CENTRONICS w/PIO, IM1"
413 INPUT "Which? ";Printer: IF Printer=2 THEN GO TO 415
414 POKE 26703,PEEK 26693: POKE 26704,PEEK 26694: RETURN
415 PRINT AT 3,1;" PRINTER ADDRESSES "''" Printer: c1","Command: c2"'" Status: c3","Command: c4"'" BUSY bit: c5","STB Bit: c6"''" PRESENT VALUES "''" c1=";c1,"c2=";c2'" c3=";c3,"c4=";c4'" c5=";c5,"c6=";c6
416 PRINT '" Input new values as required and GO TO 415, else CONTINUE.": STOP
417 RESTORE 417: DATA 8,219,C3,230,C5,32,12,8,211,C1,175,243,211,C3,47,211,C3,251,201,205,9,32,56,-23,207,12
418 FOR N=61594 TO 61619: READ Byte: POKE N,Byte: NEXT N
420 REM init PIO
421 OUT C2,255: OUT C2,0: OUT C2,7: OUT C4,255: OUT C4,255-C6: OUT C4,7: OUT C3,64
422 POKE 26703,154: POKE 26704,240: GO TO 999
450 LPRINT ("\l/" AND Zoom);"\lG";STR$ Margin;";32;22;";STR$ Aspect;"\lZ";: RANDOMIZE USR LDat: RETURN : REM COPY
451 LET Zoom=0: LET Margin=40: LET aspect=3: GO TO 450
452 LET Zoom=1: LET Margin=40: LET aspect=2: GO TO 450
3995 DATA 62,0,55,221,33,45,242,17,17,0,243,245,219,255,203,255,211,255,219,244,50,44,242,62,1,211,244,241,205,252,0,58,44,242,211,244,219,255,203,191,211,255,251,201,0
3996 LET loadat=61952: LET wh=loadat+45: REM wh=61997
3997 RESTORE 3995: FOR n=loadat TO loadat+44: READ wc: POKE n,wc: NEXT n: DIM z$(129,64): LET z$(1)="TapeHdrs /128": LET ww=2: LET w$="": CLS : PRINT AT 10,6;" START RECORDER ": PRINT AT 0,0;
3998 POKE wh,4: RANDOMIZE USR loadat: LET wt=PEEK wh: IF wt>3 THEN GO TO 4010
3999 LET wl=PEEK (wh+11)+256*PEEK (wh+12): LET wc=PEEK (wh+14): LET wa=PEEK (wh+13)+256*wc: LET wv=PEEK (wh+15)+256*PEEK (wh+16): LET wt=PEEK wh: IF wt>3 THEN GO TO 4006
4000 LET w$="": FOR n=wh+1 TO wh+10: LET w$=w$+CHR$ PEEK n: NEXT n: GO TO 4001+wt
4001 LET Z$(WW)=w$+" PROG "+STR$ wv+", VARS "+STR$ (wl-wv): LET z$(ww,36 TO )=(("Autostart LINE "+STR$ wa) AND (PEEK (wh+14)<>128))+("No Autostart" AND (PEEK (wh+14)=128)): GO TO 4005
4002 LET Z$(WW)=w$+" "+CHR$ (wc-32)+"(), "+STR$ wl: GO TO 4005
4003 LET Z$(WW)=w$+" "+CHR$ (wc-96)+"$(), "+STR$ wl: GO TO 4005
4004 LET Z$(WW)=w$+" CODE "+STR$ wl+" from "+STR$ wa
4005 PRINT AT 0,0;z$(ww): LPRINT z$(ww);CHR$ 10;: LET ww=ww+1: LET w=PEEK 26704=PEEK 26694
4010 PAUSE 300: GO TO 3998
4500 STOP
4600 FOR n=1 TO ww: PRINT z$(n): NEXT n: STOP
9990 LET w$=STR$ (ww-1)
9991 IF LEN w$<3 THEN LET w$=" "+w$: GO TO 9991
9994 LET z$(1,12 TO 14)=w$
9995 SAVE z$(1, TO 10) DATA z$()
9996 STOP
9998 DIM z$(1,1): SAVE "TapeLister" LINE 1
9999 GO TO 9998