Creates a file of up to 128 entries as well as displaying the results. It is configured for printing to any Centronics printer.
Gallery
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