8-Bit Software Online Conversion

8BS Catalogue - Listing

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