Appears on
Library tape of the Indiana Sinclair Timex User’s Group.
Source Code
1 REM Junk; needs debugging start to finish 5 CLS : FLASH 1: BORDER 6: PAPER 6: INK 0: PRINT AT 10,10;"Magazine File";AT 11,8;"by Alan Friedman": PAUSE 120: FLASH 0 7 REM from CTM 5/86 10 LET n=0 20 LET b$=" " 30 DIM w$(500,32) 100 CLS : PRINT " MAGAZINE FILE" 110 LET l$=" ": PRINT ''l$;"Menu"'l$;"1 Read data from tape/disc"'l$;"2 New Entry"'l$;"3 Save data to tape/disc"' 120 PRINT l$;"4 Correction"'l$;"5 Search by subject"'l$;"6 Search by Mag./Date"'l$;"7 Print List"'l$;"8 Exit"' 200 PRINT l$; FLASH 1;"Choose one" 210 INPUT s: FLASH 0: IF s<1 OR s>8 OR s<>INT s THEN GO TO 210 215 REM IF s=1 OR s=3 OR s=7 THEN CLS : GO SUB 25*(s*s-4*s+63)/3 220 GO TO s*1000 500 INPUT "Using Tape(T) or Disc(D)?";y$ 510 IF y$="T" OR y$="t" OR y$="D" OR y$="d" THEN GO TO 520 515 GO TO 500 520 RETURN 700 INPUT "Want full size printer (Y/N)";l$: IF l$<>"Y" OR l$<>"y" OR l$<>"N" OR l$<>"n" THEN GO TO 700 720 RETURN 1000 CLS : PRINT AT 12,0;"Start the Tape and"; FLASH 1';"Press enter": INPUT y$ 1010 LOAD "mag data" DATA W$() 1020 FOR n=1 TO 500: IF w$(n,1 TO 4)=" " THEN GO TO 1023 1022 NEXT n 1023 LET n=n-1 1040 CLS : GO TO 100 2000 CLS 2010 PRINT AT 10,0;"Enter magazine name (4 letters)": INPUT e$: LET e$=e$+b$: LET e$=e$( TO 5) 2020 PRINT AT 0,0;e$;AT 10,0;b$ 2030 PRINT AT 10,0;"Enter subject (7 letters)": INPUT s$: LET s$=s$+b$: LET s$=s$( TO 8) 2050 PRINT AT 1,0;s$;AT 10,0;b$ 2060 PRINT AT 10,0;"Enter article name (13 letters)": INPUT n$: LET n$=n$+b$: LET n$=n$( TO 14) 2080 PRINT AT 2,0;n$;AT 10,0;b$ 2090 PRINT AT 10,0;"Enter magazine date (xx/xx)": INPUT d$: LET d$=d$+b$: LET d$=d$( TO 5) 2110 PRINT AT 3,0;d$;AT 10,0;b$ 2120 PAUSE 120: CLS : PRINT AT 10,5;e$;AT 11,5;s$;AT 12,5;n$;AT 13,5;d$ 2125 INPUT "Is this OK? Y/N";a$: CLS : IF a$="n" OR a$="N" THEN GO TO 2000 2200 LET n=n+1 2210 LET w$(n)=e$+s$+n$+d$ 2220 INPUT "Another entry? Y/N";a$: IF a$="y" OR a$="Y" THEN GO TO 2000 2250 CLS : GO TO 100 3000 CLS 3010 SAVE "mag data" DATA w$(): PRINT "rewind to verify": VERIFY "mag data" DATA w$() 3050 CLS : GO TO 100 4000 CLS 4010 PRINT AT 10,0;"Enter the number of the listing to be corrected": INPUT v 4020 CLS : PRINT AT 10,0;w$(v): LET m$=w$(v) 4025 INPUT "Is this OK? Y/N";y$: IF y$="n" OR y$="N" THEN GO TO 4000 4026 FOR l=0 TO 31: PRINT AT 10,0;m$;AT 15,0;b$ 4050 PRINT AT 10,l; FLASH 1; OVER 1;CHR$ 32 4060 PAUSE 0: LET i$=INKEY$ 4070 IF i$=CHR$ 8 AND l THEN LET l=l-2 4100 IF CODE i$>31 AND CODE i$<144 THEN LET m$(l+1)=i$ 4105 IF CODE i$=13 THEN GO TO 4300 4110 NEXT l 4300 LET w$(v)=m$: CLS : PRINT AT 10,0;"New entry # ";v;"is"'w$(v) 4320 INPUT "Another change? Y/N";a$: IF a$="y" OR a$="Y" THEN GO TO 4000 4350 CLS : GO TO 100 5000 CLS 5010 INPUT "Enter Subject";t$: LET t$=t$+b$: LET t$=t$( TO 6): PRINT AT 0,10;t$ 5030 FOR j=1 TO n: LET i$=w$(j)(6 TO 12) 5060 FOR f=1 TO 7: IF t$(f)<>i$(f) THEN GO TO 5200 5080 NEXT f 5090 GO TO 5300 5200 NEXT j 5240 INPUT "Press enter to return to menu";a$: CLS : GO TO 100 5300 PRINT w$(j): GO TO 5200 6000 CLS 6010 PRINT AT 10,0;"Enter magazine name (4 letters)": INPUT a$: LET a$=a$+b$: LET a$=a$( TO 4) 6020 PRINT AT 10,0;b$;AT 10,0;"Enter magazine date (xx/xx)": INPUT k$: LET k$=k$+b$: LET k$=k$( TO 5) 6025 LET a$=a$+k$ 6030 CLS : FOR j=1 TO n: LET i$=w$(j)(1 TO 4)+w$(j)(28 TO 32) 6050 FOR f=1 TO 9: IF a$(f)<>i$(f) THEN GO TO 6200 6080 NEXT f: GO TO 6300 6200 NEXT j 6240 INPUT "Press any key to return to menu";z$: CLS : GO TO 100 6300 PRINT w$(j): GO TO 6200 7000 CLS 7010 INPUT "Want a hard copy? Y/N";y$: CLS 7015 FOR q=1 TO n-1: FOR r=1 TO n-q 7020 LET h$=w$(r): LET i$=w$(r+1) 7030 IF h$<=i$ THEN GO TO 7080 7050 LET w$(r)=i$: LET w$(r+1)=h$ 7080 NEXT r: NEXT q 7100 FOR a=1 TO n: POKE 23692,255 7200 IF y$="y" OR y$="Y" THEN LPRINT 'w$(a) 7300 PRINT a'w$(a) 7310 NEXT a 7320 INPUT "Press any key to return to menu";v$: CLS : GO TO 100 8000 CLS 8010 FLASH 1: PRINT AT 12,0;"Magazine file end"'"Has data been saved?": INPUT y$: IF y$="y" OR y$="Y" THEN GO TO 8050 8020 FLASH 0: GO TO 3000 8050 FLASH 0: CLS : STOP 9899 STOP 9900 REM OUT 244,1: MOVE "Mag File.bas",5: OUT 244,0 9997 STOP 9998 SAVE "Mag File" LINE 5