Magazine File

Developer(s): Alan Friedman
Date: 1986
Type: Program
Platform(s): TS 2068

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
Scroll to Top