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