10 *KEY 0 *COMP.|MCHAIN"SEARCH"|M 30 a%=0:h%=10:v%=10:p%=3:pa%=15:P$="Off":Pa$="Off":E%=1:s%=0:F%=0:G%=0:H$=" ..................................................":PROCSr 40 ONERRORMODE7:PROCErr 50 MODE7:REPEAT:PROCEnter:IFs%=1MODE0:PROCSearch:PROCF:s%=0:MODE7 60 IFs%=2MODE0:PROCSearch2:PROCF:s%=0:MODE7 70 IFs%=3MODE7:PROCAdd:s%=0:MODE7 80 IFs%=4PROCInput("Please Enter Issue Number",14,21):MODE0:PROCSearch4:MODE7:s%=0 90 UNTILs%=5:PROCEnd:END 110 DEFPROCSearch:VDU23,1,0;0;0;0;:VDU28,1,28,77,1:V%=-1:PROCbox:F%=OPENIN"Complet":VDUp%:VDUpa%:REPEAT:INPUT#F%,A$:C$=A$:A$=FNlower 120 A=INSTR(A$,E$):IFA>0 F$=C$:C1$="1" 130 X=INSTR(A$,B$):PROCmove:IFa%=1ANDF$<>C$ANDC1$="1"V%=V%+1:PRINTTAB(0,V%)F$:C1$="0" 140 IFX>0ANDF$<>C$ANDC1$="1"V%=V%+1:PRINTTAB(0,V%)';F$:C1$="0":V%=V%+1 150 IFX>0ANDF$<>C$V%=V%+1:PRINTTAB(0,V%)C$ 160 IFV%>=27 V%=26 170 UNTILEOF#F%:CLOSE#F%:F%=0:a%=0 180 VDU3:VDU15:ENDPROC 200 DEFPROCSr 210 CLS 220 FORL%=0TO2STEP2 230 P%=&900 240 [ 250 OPT L% 260 LDY#&FF 270 .loop 280 INY 290 LDA store%,Y 300 CMP#13 310 BEQout 320 ORA#32 330 STA store%,Y 340 JMP loop 350 .out 360 RTS 370 .store% 380 ] 390 NEXT 400 ENDPROC 410 DEFFNlower 420 $store%=A$ 430 CALL&900 440 =$store% 460 DEFPROCInput(G$,H%,I%) 470 PRINTTAB(6,19)"†";G$;" " 480 PRINTTAB(H%+2,21)"†(";TAB(I%,21);"†)" 490 INPUTTAB(H%+4,21);A$ 500 PRINTTAB(8,17)"ƒPlease wait :ˆScanning":A=INKEY(150) 510 A$=FNlower:B$=A$ 520 E$="8-bit":s%=1 530 ENDPROC 550 DEFPROCScreen:T%=11 560 PRINTTAB(0,0);CHR$(141);"€Welcome to the 8-Bit Magazine Search":PRINTTAB(0,1)CHR$(141);"‚Welcome to the 8-Bit Magazine Search":PRINTTAB(0,2)CHR$(134);CHR$(157);TAB(39,2)CHR$(156);TAB(16,5)CHR$(141);"€MENU";TAB(16,6)CHR$(141);"‚MENU" 570 PRINTTAB(T%,8)"†1:Specific Search";TAB(T%,9)"†2:Title List";TAB(T%,10)"†3:Block Search";TAB(T%,12)"†5:Printer ";P$;TAB(T%,13)"†6:Add New Issue";TAB(T%,17)"€ˆ Press Number";TAB(T%,11)"†4:Issue Search";TAB(T%,15)"†8:Exit Program" 575 PRINTTAB(T%,14)"†7:Paged Mode ";Pa$ 580 ENDPROC 600 DEFPROCPrinter:IFp%=2THENp%=p%+1:P$="Off":GOTO620 610 IFp%=3THENp%=2:P$="On " 620 PRINTTAB(T%,12)"†5:Printer ";P$:ENDPROC 640 DEFPROCEnter 650 PROCScreen:VDU23,1,0;0;0;0;0 660 REPEAT:G=GET:UNTILG>48ANDG<57:IFG=49PROCInput("Please Enter Search String",9,26):ENDPROC 670 IFG=50PROCTS 680 IFG=51PROCBlock 690 IFG=52 s%=4:ENDPROC 700 IFG=53PROCPrinter:s%=6:ENDPROC 710 IFG=54 s%=3:ENDPROC 720 IFG=55PROCPaged:s%=6:ENDPROC 725 IFG=56 s%=5:ENDPROC 730 ENDPROC 750 DEFPROCEnd:CLS:E%=0:PRINTTAB(0,12)"†Thank you for using MAG SEARCH":ENDPROC 770 DEFPROCTS 780 PRINT''SPC(8)"ƒPlease wait :ˆScanning":A=INKEY(150) 790 A$="8-BIT SOFTWARE":s%=1 800 A$=FNlower:B$=A$ 810 E$="8-bit software":s%=1 820 a%=1 830 ENDPROC 850 DEFPROCBlock 860 PRINTTAB(T%,16);"†Blocks Available ";CHR$(156):T%=2:T1%=21 870 PRINTTAB(T%,18)"ƒ:A.Magazine";TAB(T1%,18);"ƒ:B.Utilities ";TAB(T%,19)"ƒ:C.Games & Demos";TAB(T1%,19);"ƒ:D.ADFS";TAB(T%,20)"ƒ:E.Articles";TAB(T1%,20);"ƒ:F.Adverts";TAB(T%,21);"ƒ:G.Program Info";TAB(T1%,21);"ƒ:H.Messages" 880 A1$="22" 890 REPEAT:G=GET:UNTILG>64ANDG<73 900 IFG=65 A$="Magazine":A1$="main" 910 IFG=66 A$="Utilities" 920 IFG=67 A$="DEMOS":A1$="games" 930 IFG=68 A$="ADFS" 940 IFG=69 A$="Articles" 950 IFG=70 A$="Adverts" 960 IFG=71 A$="Program Info" 970 IFG=72 A$="Messages" 980 A$=FNlower:B$=A$ 990 E$="8-bit":s%=2 1000 ENDPROC 1020 DEFPROCSearch2:VDU23,1,0;0;0;0;0;:VDU28,1,28,77,1:V%=-1:PROCbox:F%=OPENIN"Complet":VDUp%:VDUpa%:REPEAT:INPUT#F%,A$:C$=A$:A$=FNlower 1030 A=INSTR(A$,E$):X=INSTR(A$,B$):B=INSTR(A$,A1$):PROCmove:IFA>0 F$=C$:C1$="1" 1040 IFX<>0ORB<>0ANDF$<>C$ANDLEN(A$)<27ANDC1$="1"V%=V%+1:PRINTTAB(0,V%)F$:C1$="0" 1050 IFX<>0ORB<>0ANDF$<>C$ANDLEN(A$)<27 V%=V%+1:PRINTTAB(0,V%)C$:REPEAT:INPUT#F%,A$:V%=V%+1:PRINTTAB(0,V%)A$:UNTILLEN(A$)<2:C1$="0" 1060 IFV%>=27 V%=26 1070 UNTILEOF#F%:CLOSE#F%:F%=0:a%=0:VDU3:VDU15:ENDPROC 1100 DEFPROCAdd:Q$=FNdisctype(0):IFQ$="ADFS"W$="Update" 1105 IFQ$="DFS"W$=":2.$.Update" 1110 VDU23,1,0;0;0;0;0;:*FX200,1 1120 B$="":C$=" ..................................................":EMPTY$="" 1130 PRINT"†Please Enter Saved File Name":INPUT"†";f$ 1140 F%=OPENIN"COMPLET" 1150 G%=OPENOUTW$ 1160 PRINTTAB(0,0);CHR$(141);"€Welcome to the 8-Bit Magazine Search";TAB(0,1)CHR$(141);"‚Welcome to the 8-Bit Magazine Search";TAB(0,2)CHR$(134);CHR$(157);TAB(39,2)CHR$(156) 1170 PRINTTAB(0,5);CHR$(141);"€Updateing Issue";TAB(0,6)CHR$(141);"‚Updateing Issue";TAB(0,7)CHR$(134);CHR$(157);TAB(18,7)CHR$(156):PRINT':PRINTCHR$(141);"ˆ€WARNING":PRINTCHR$(141);"ˆ‚WARNING" 1180 PRINTTAB(0,14)"€Creating New Data File"'"‚Wait until main screen reappears":PRINTTAB(0,16)"‚File Completed :":PRINTTAB(0,17)"‚Approximate Time :" 1190 REPEAT:INPUT#F%,A$:IFA$=" File Ends :-- Maximum Issue 99 at present"GOTO1230 1195 PRINT#G%,A$ 1200 B%=EXT#F%-PTR#F%:B%=B%DIV177:PRINTTAB(20,17);B%DIV60;" Mins ";B%MOD60;" Secs " 1210 c%=EXT#F%/100:d%=INT(PTR#F%/c%):PRINTTAB(20,16);d%;"%" 1220 UNTILEOF#F% 1230 CLOSE#F%:F%=0 1240 PRINT'"€Reading New Issue Data &"'"€Updateing File" 1250 PROCConvert 1260 PRINT#G%,B$:PRINT#G%,C$:PRINT#G%,B$ 1265 PRINT#G%," File Ends :-- Maximum Issue 99 at present" 1270 CLOSE#G% 1280 PRINT'"ƒNow Tidying Files‚ˆNearly Finished" 1290 OSCLI"DEL. COMPLET" 1300 IFQ$="ADFS"OSCLI"REN. Update Complet" 1305 IFQ$="DFS"OSCLI"COPY 2 0 Update":OSCLI"REN. Update Complet" 1310 CLS:*FX200,0 1320 OSCLI"FX138,0,128":END 1330 ENDPROC 1350 DEFPROCConvert 1360 F%=OPENINf$ 1370 REPEAT 1380 A$=EMPTY$:REPEAT 1390 A%=BGET#F%:IFA%<>13ANDA%<>10 A$=A$+CHR$(A%) 1400 UNTILA%=13 1410 PRINT#G%,A$ 1420 UNTILEOF#F% 1430 CLOSE#F%:F%=0 1440 ENDPROC 1460 DEFPROCSearch4:PROCbox:PRINTTAB(2,30)"Searching":VDU23,1,0;0;0;0;0;:VDU28,1,28,77,1:R$="issue ":V$=R$+B$:F%=OPENIN"COMPLET":NX%=0:Z%=EXT#F%:Y%=EXT#F%DIV2:X%=0:PTR#F%=Y% 1470 VDUp%:VDUpa%:REPEAT:REPEATUNTILBGET#F%=0:PTR#F%=PTR#F%-1:REPEAT:INPUT#F%,A$:UNTILA$=H$:INPUT#F%,A$:INPUT#F%,A$:C$=A$:A$=FNlower:A=INSTR(A$,R$):I$=MID$(A$,A+6,2):NX%=VAL(I$):NZ%=VAL(B$) 1480 IFNX%NZ%Z%=Y%:PROCptr 1500 IFNZ%=28 NX%=NZ%:PTR#F%=0 1510 UNTILNX%=NZ%:VDUp%:VDUpa%:PRINTC$:REPEAT:INPUT#F%,A$:PRINTA$:UNTILA$=H$:CLOSE#F%:F%=0:VDU3:VDU15:PROCF:ENDPROC 1530 DEFPROCptr:Y%=Z%-X%:Y%=Y%DIV2+X%:PTR#F%=Y%:ENDPROC 1550 DEFPROCErr:a%=0 1560 REPORT:PRINTERL 1570 IFF%<>0PRINT"Closing File":CLOSE#F% 1580 IFG%<>0PRINT"Closing File":CLOSE#G% 1590 F%=0:G%=0:G=GET 1600 A=INKEY(100) 1610 ENDPROC 1630 DEFPROCF:VDU28,0,31,79,30:PRINTTAB(1,0)" |--Current Search Completed Press Space when ready--| ":A=INKEY(10000):ENDPROC 1650 DEFPROCmove:VDU28,0,31,79,30:VDU3:c%=EXT#F%/100:d%=INT(PTR#F%/c%):d%=INT(d%/4) 1660 PRINTTAB(d%+15,0);"-*" 1665 B%=EXT#F%-PTR#F%:B%=B%DIV354:PRINTTAB(50,0);B%DIV60;" Mins ";B%MOD60;" Secs " 1670 VDU28,1,28,77,1:VDUp%:ENDPROC 1690 DEFPROCbox:MOVE0,70:DRAW1279,70:DRAW1279,30:DRAW0,30:DRAW0,1020:DRAW1278,1020:DRAW1278,30:VDU28,0,31,79,30:PRINTTAB(1,0)"Searching: 0%|---------------------------| 100%":VDU28,1,28,77,1:ENDPROC 1710 DEFPROCFSF 1720 X%=0:Y%=0 1730 A%=USR&FFDAMOD&100 1740 ENDPROC 1800 A$=FNdisctype(0) 1820 DEFFNdisctype(drive%) 1830 LOCALB%:B%=&100 1840 ?B%=drive%:B%!1=&E000 1850 B%!5=&5303:B%?9=33 1860 X%=0:Y%=1:A%=&7F 1870 CALL&FFF1 1880 IFB%?10=0="DFS" 1890 IFB%?10=&18="ADFS" 1900 ="ERROR" 2000 DEFPROCPaged:IFpa%=14THENpa%=pa%+1:Pa$="Off":GOTO2020 2010 IFpa%=15THENpa%=14:Pa$="On " 2020 PRINTTAB(T%,14)"†7:Paged Mode ";Pa$:ENDPROC