10 DEFFNS="ViewOne" 20 ONERROR VDU3:CLOSE#0:IF ERR=17 ELSE MODE128:REPORT:PRINTERL:END 30 MODE7 40 VDU23;8202;0;0;0; 50 B$="TEMP" 70 T%=0 80 B%=&900 90 PROCmenu 100 IFINSTR("2",A$):MODE0:PROCprint:RUN 110 PROCld(T%) 120 REPEAT 130 *FX21 140 A$=GET$ 150 IF INSTR("BbZz",A$) IF T%>&3E7 T%=T%-&3E8:IF INSTR("Bb",A$)SOUND 1,-10,20,1 160 IF INSTR("FfXx",A$) IF T%+&3E8EXT#F% K%=EXT#F%-T%:CLS 250 A%=4 260 X%=B% MOD 256 270 Y%=B% DIV 256 280 B%?0=F% 290 B%!1=&7C00 300 B%!5=K% 310 CALL&FFD1 320 ENDPROC 330 DEFPROCmenu 340 PRINTTAB(5)"8BS Abbreviated Catalogue." 350 PRINTTAB(5)"8BS Abbreviated Catalogue." 355 PRINT'TAB(8)"By C.J.Richardson." 360 PRINT'TAB(8)"Choose 1-4 Now: "'' 370 PRINTTAB(5)"1.View Catalogue." 390 PRINTTAB(5)"2.Print Catalogue." 410 PRINTTAB(5)"3.Search." 420 PRINTTAB(5)"4.End." 430 PRINT''"Or Whilst Catalogue Is Showing: " 440 PRINT'TAB(1)"XForward a Page." 450 PRINTTAB(1)"ZBackwards a Page." 460 PRINTTAB(1)"BJump Backwards (NO SCREEN UPDATE)." 470 PRINTTAB(1)"FJump Forwards (NO SCREEN UPDATE)." 480 PRINTTAB(1)"PPrint Screen." 490 PRINTTAB(1)"ESCAPEMenu." 500 REPEAT 510 A$=GET$ 520 UNTILINSTR("1234",A$) 530 IF A$="1":T%=0:F%=OPENIN B$ 550 IF A$="3" PROCSr 560 IF A$="4" CLOSE#0:OSCLI"EX.!BOOT":END 570 ENDPROC 580 DEFPROCprint 590 A$=B$ 600 PRINT"To Printer Y/N?" 610 *FX21 620 IFINSTR("Yy",GET$) S%=2 ELSE S%=14 630 IF S%=2 PRINT"Prepare Printer And Press (P)ause between pages OR (C)ontinuous":REPEAT:W%=GET:UNTIL INSTR("PpCc",CHR$(W%)):IF INSTR("Pp",CHR$(W%)) W%=1 ELSE W%=0 640 IF S%=14 PRINT'"SHIFT To Scroll Text...Press A Key.":OSCLI"*FX21":REPEATUNTILGET 650 VDUS% 660 F%=OPENIN(A$) 670 V%=0 680 PROCfirstbit 690 Q%=0 700 R%=0 710 REPEAT 720 M%=BGET#F% 730 R%=R%+1 740 IF M%>126 PROCch 750 IF M%=32:Q%=Q%+1 ELSE Q%=0 760 IF Q%<2 VDUM% 770 IF R%=80 PROCch1 780 UNTILEOF #F% 785 IF S%=2 VDU12 790 VDU3 800 PRINT''"Press A Key" 810 *FX21 820 REPEATUNTILGET 830 ENDPROC 840 DEFPROCch1 850 R%=0 860 IF S%=2 PRINT:PROCnewpage:ENDPROC 870 IF POS<>79 PRINT:PROCnewpage 880 ENDPROC 890 DEFPROCfirstbit 900 U%=0 910 REPEAT 920 PRINTSTRING$(20," "); 930 FORL%=1 TO 40 940 M%=BGET#F% 950 IF M%=135 U%=1 960 IF M%=141:FORP%=1TO40:M%=BGET#F%:NEXT 970 IF M%>126 M%=32 980 VDUM% 990 NEXT 1000 PRINT:PROCnewpage 1010 UNTILU%=1 1020 ENDPROC 1030 DEFPROCtitle 1040 PRINT:PROCnewpage 1050 IF S%=2:VDU1,&1B,1,&2D,1,1:REM UNDERLINE ON 1060 FORL%=1TO80 1070 M%=BGET#F% 1080 IF M%>126 M%=32 1090 VDUM% 1100 IF L%=40:IFS%=2:VDU1,&1B,1,&2D,1,0:REM UNDERLINE OFF 1110 NEXT 1120 R%=1 1130 IF S%=2 PRINT:PROCnewpage 1140 ENDPROC 1150 DEFPROCch 1160 IF M%=130 PROCtitle 1170 IF M%=132 PRINT:PROCnewpage:PROChead:REM SECTION TITLE 1180 IF M%=141:FORP%=1TO40:M%=BGET#F%:NEXT 1190 M%=32:IF POS=0 Q%=Q%+1 1200 ENDPROC 1210 DEFPROChead 1220 FORL%=1TO20 1230 VDU32 1240 NEXT 1250 IF S%=2:VDU1,&1B,1,&2D,1,1:REM UNDERLINE ON 1260 FORL%=1TO40 1270 M%=BGET#F% 1280 IFM%<126 VDUM% 1290 NEXT 1300 IFS%=2:VDU1,&1B,1,&2D,1,0:REM UNDERLINE OFF 1310 PRINT 1320 PROCnewpage 1330 ENDPROC 1340 DEFPROCnewpage 1350 IFW%=0 ENDPROC 1360 V%=V%+1 1370 IF V%<60 ENDPROC 1380 VDU12,3 1390 PRINT"Insert New Page And Press A Key" 1400 *FX21 1410 REPEATUNTILGET 1420 V%=0 1430 VDUS% 1440 ENDPROC 1450 DEFPROCprtScreen 1460 VDU2 1470 FORL%=1TO20 1480 VDU1,32 1490 NEXT 1500 FORL%=&7C00 TO &7FE8 1510 M%=?L% 1520 IF M%<127 VDU1,M% 1530 IF (L%-&7C00) MOD 40=0 VDU1,13:FORA%=1 TO 20:VDU1,32:NEXT 1540 NEXT 1550 VDU1,13,3 1560 ENDPROC 1570 DEFPROCSr 1580 CLS 1590 FORL%=0TO2 STEP2 1600 P%=&900 1610 [ 1620 OPT L% 1630 LDY#&FF 1640 .loop 1650 INY 1660 LDA store%,Y 1670 CMP#13 1680 BEQout 1690 ORA #32 1700 STA store%,Y 1710 JMP loop 1720 .out 1730 RTS 1740 .store% 1750 ] 1760 NEXT 1770 R%=0 1780 S%=0 1790 A$=STRING$(40,"1") 1800 A$="" 1810 ONERROR:CLOSE#0:VDU3:IFERR<>17:PRINTERL:REPORT:END ELSE PRINT''"Press a Key.":REPEATUNTILGET 1820 REPEAT 1830 PROCscr 1840 PROCsel 1850 PROCdo 1860 UNTILFALSE 1870 DEFPROCscr 1880 CLS 1890 IF S%=0 VDU14 ELSE VDU15 1900 PRINT"8-Bit Software Catalogue Search. " 1910 PRINT"8-Bit Software Catalogue Search. " 1920 PRINT'TAB(10)"By C.J.Richardson." 1930 PRINT'' 1940 PRINT"1.Printout ";:IF R%=0 PRINT"off." ELSE PRINT"on." 1950 PRINT"2.Scrolling ";:IF S%=0 PRINT"off." ELSE PRINT"on." 1960 PRINT"3.View/Search." 1980 PRINT"4.Leave Search." 1990 PRINT''TAB(8)"Enter 1 to 4 or * " 2000 ENDPROC 2010 DEFPROCsel 2020 *FX21 2030 REPEAT 2040 A$=GET$ 2050 UNTILINSTR("1234*",A$) 2060 CLS 2070 ENDPROC 2080 DEFPROCdo 2090 IF A$="1" R%=R%EOR 1 2100 IF A$="2" S%=S%EOR 1 2110 IF A$="3":PROCview(B$) 2130 IF A$="4":RUN 2140 IF A$="*" PROCoscli 2150 ENDPROC 2160 DEFPROCview(A$) 2170 F%=OPENIN A$ 2180 C%=EXT#F%/100 2190 PRINT''TAB(2)"(V)iew All. " 2200 PRINT'TAB(2)"(S)earch. View all after match. " 2210 PRINT'TAB(2)"S(e)arch. + Search after match. " 2220 REPEAT 2230 A$=CHR$(GET OR 32) 2240 UNTILINSTR("sve",A$) 2250 IFINSTR("se",A$) PROCsearch:VDU3:ENDPROC 2260 CLS 2270 IF S%=0 PRINT''"Press SHIFT to scroll the text. "'' 2280 IF R%=1 VDU2 2290 REPEAT 2300 PRINTFNin; 2310 IF R%=1 PRINT 2320 UNTILEOF#F% 2330 CLOSE#F% 2340 VDU3 2350 PRINT''TAB(8)"Press a Key. " 2360 REPEATUNTILGET 2370 ENDPROC 2380 DEFPROCsearch 2390 D$="" 2400 IF A$="e" E%=1: PRINT''"Search. + Search after match. " ELSE E%=0:PRINT''"Search. View all after match. " 2410 PRINT''TAB(8)"Enter search string." 2420 PRINTTAB(8)"NOT case sensitive."'' 2430 REPEAT:INPUTLINE A$:UNTILA$<>"" 2440 Target$=FNlower 2450 CLS 2460 IF S%=0 PRINT''"Searching. SHIFT to scroll text. "'' ELSE PRINT''"Searching. "'' 2470 IF R%=1 VDU2 2480 REPEAT 2490 A$=FNin 2500 IF E%<> 2 PROCmatch ELSE PRINTA$;:IF R%=1 PRINT 2510 IF R%=0:VDU133:PRINTSTR$INT(PTR#F%/C%);"%":VDU11,13 2520 UNTILEOF#F% 2530 CLOSE#F% 2540 VDU3 2550 PRINT''TAB(3)" Finished. Press a Key "'' 2560 *FX21 2570 REPEATUNTILGET 2580 ENDPROC 2590 DEFFNlower 2600 $store%=A$ 2610 CALL &900 2620 =$store% 2630 DEFFNin 2640 A$="" 2650 FORL%=1TO40 2660 A%=BGET#F% 2670 REMEOR 2680 A$=A$+CHR$A% 2690 IF LEFT$(A$,1)="" D$=A$ 2700 NEXT 2710 =A$ 2720 DEFPROCmatch 2730 C$=A$ 2740 Found$=FNlower 2750 IF C$=D$ C$="" 2760 IF INSTR(Found$,Target$):PRINT D$;C$;:IF E%=0 E%=2 2770 IF INSTR(Found$,Target$):IF R%=1:PRINT 2780 ENDPROC 2790 DEFPROCoscli 2800 PRINT"*"; 2810 INPUT""D$ 2820 OSCLI D$ 2830 PRINT'"Press a Key" 2840 REPEATUNTILGET 2850 ENDPROC