8-Bit Software Online Conversion
Cassette Database - Listing
10ONERROR:IFERR=222:F%=OPENOUT"Data":
BPUT#F%,0:BPUT#F%,1:BPUT#F%,0:PRINT#F%,S
TRING$(39," "),STRING$(30," "):CLOSE#F%
20DEFFNS="Castore"
30F%=OPENUP"Data"
40A%=BGET#F%
50P%=0
60*FX4 1
70MODE7
80F$=STRING$(40," "):F$=""
90G$=STRING$(40," "):G$=""
100H$=STRING$(40," "):H$=""
110I$=STRING$(40," "):I$=""
120J$=STRING$(40," "):J$=""
130K$=STRING$(40," "):K$=""
140VDU23;8202;0;0;0;
150ONERROR:REM
160H%=1
170I%=1
180J%=1
190K%=1
200L%=1
210B%=3
220U%=0
230REPEAT
240PROCtit
250PRINTTAB(5,16)" (Z) Back one reco
rd. "
260PRINTTAB(5)" (X) Forward one reco
rd. "
270PRINTTAB(5)" (E)dit this record.
"
280PRINTTAB(5)" (S)earch facilities.
"
290PRINTTAB(5)" (A)dd a record. (Q)u
it. "
300REPEAT
310PROCGetRecord
320PROCPrintRecord
330REPEAT
340*FX21
350A$=GET$
360UNTILINSTR("ZzXxEeSsAaQq",A$)
370IF INSTR("Qq",A$) CLOSE#F%:END
380IF INSTR("Zz",A$) P%=P%-&4C
390IF INSTR("Xx",A$) P%=P%+&4C
400IF INSTR("Ee",A$) PROCedit
410IF INSTR("Aa",A$):PTR#F%=EXT#F%:BPU
T#F%,0:BPUT#F%,1:BPUT#F%,0:PRINT#F%,"Fre
e"+STRING$(35," "),STRING$(30," ")
420UNTIL INSTR("Ss",A$)
430PROCsearch
440UNTILFALSE
450DEFPROCGetRecord
460*FX200,1
470IF P%>(EXT#F%-&4C) P%=0
480IF P%<0 P%=(EXT#F%-&4C)
490PTR#F%=P%
500T%=BGET#F%
510S%=BGET#F%
520N%=BGET#F%
530INPUT #F%,Tit$,Name$
540IF S%=1 S$="A" ELSE S$="B"
550*FX200
560ENDPROC
570DEFPROCtit
580CLS
590PRINT'TAB(7)"
600PRINTTAB(7)"
610ENDPROC
620DEFPROCsearch
630REPEAT
640PROCtit
650PRINT''" A. View all information"
660PRINT" B. View all A sides"
670PRINT" C. View all B sides"
680PRINT" D. View all artists on tape
(n)"
690PRINT" E. View all songs on tape (n
)"
700PRINT" F. View all artists"
710PRINT" G. View all songs"
720PRINT" H. Search by song"
730PRINT" I. Search by artist"
740PRINT" J. View all on tape (n)"
750PRINT" K. Printer on/off:";:IF B%=2
PRINT" ON" ELSE PRINT" OFF"
760PRINT" L. Go to a particular record
"
770PRINT" M. Quit to main menu"
780REPEAT:A$=GET$:UNTIL INSTR("AaBbCcD
dEeFfGgHhIiJjKkLlMm",A$)
790PRINT'" Selected - ";A$
800FORD%=1TO4000:NEXT
810IF INSTR("Aa",A$) PROCView(1)
820IF INSTR("Bb",A$) PROCView(2)
830IF INSTR("Cc",A$) PROCView(3)
840IF INSTR("Dd",A$) H%=0:I%=0:J%=0:K%
=0:PROCView(4)
850IF INSTR("Ee",A$) H%=0:I%=0:J%=0:L%
=0:PROCView(5)
860IF INSTR("Ff",A$) H%=0:I%=0:J%=0:K%
=0:PROCView(6)
870IF INSTR("Gg",A$) H%=0:I%=0:J%=0:L%
=0:PROCView(7)
880IF INSTR("Hh",A$) PROCView(8)
890IF INSTR("Ii",A$) PROCView(9)
900IF INSTR("Jj",A$) PROCView(10)
910IF INSTR("Kk",A$):IF B%=3 B%=2 ELSE
IF INSTR("Kk",A$) B%=3
920IF INSTR("Ll",A$):PRINT" Which Reco
rd 1 - ";STR$(EXT#F%/&4C);" ?":REPEAT:IN
PUT P%:UNTILP%>0 AND P%<=EXT#F%/&4C:P%=P
%*&4C-&4C:A$="M"
930UNTIL INSTR("Mm",A$)
940IF U%<>0 P%=P%-&4C
950ENDPROC
960DEFPROCedit
970PRINTTAB(0,22)" Use Cursors to sele
ct Field."
980PRINT" COPY to change. RETURN to fi
nish"
990X%=7
1000Y%=9
1010PRINTTAB(X%,Y%+1);"^"
1020REPEAT
1030A%=GET
1040PRINTTAB(X%,Y%+1);" "
1050IF A%=138 IF Y%<13 Y%=Y%+2:X%=1:A%=
0:IFY%=13 X%=6
1060IF A%=139 IF Y%>9 Y%=Y%-2:X%=1:A%=0
:IF Y%=9 X%=7
1070IF A%=137:IF Y%=9 IF X%<27 X%=X%+10
:A%=0
1080IF A%=136:IF Y%=9:IF X%>7 X%=X%-10:
A%=0
1090IF A%<>13 PRINTTAB(X%,Y%+1);"^"TAB(
X%,Y%);
1100IF A%=135 PROCchange
1110UNTILA%=13
1120*FX200,1
1130PTR#F%=P%
1140BPUT#F%,T%
1150BPUT#F%,S%
1160BPUT#F%,N%
1170PRINT#F%,Tit$,Name$
1180*FX200
1190PRINTTAB(0,22)SPC(74)
1200ENDPROC
1210DEFPROCchange
1220*FX4
1230PRINTTAB(X%,Y%+1);" ";TAB(X%-1,Y%+1
);
1240IF Y%=9 IF X%=7 INPUT T%
1250IF Y%=9 IF X%=17 INPUT S$:IF S$="A"
S%=1 ELSE IF Y%=9 IF X%=17 S%=2
1260IF Y%=9 IF X%=27 INPUT N%
1270IF Y%=11 INPUT LINE Tit$:Tit$=Tit$+
STRING$(40," "):Tit$=LEFT$(Tit$,39)
1280IF Y%=13 INPUT LINE Name$:Name$=Nam
e$+STRING$(30," "):Name$=LEFT$(Name$,30)
1290PROCPrintRecord
1300PRINTTAB(X%,Y%+1);"^";
1310*FX4 1
1320ENDPROC
1330DEFPROCPrintRecord
1340VDUB%
1350IF B%=3 PRINTTAB(0,7);" Record ";ST
R$(((PTR#F%+&4C)/&4C)-1);" of ";STR$(EXT
#F%/&4C);" "
1360IF H% PRINTTAB(0,9);" Tape: ";STR$(
T%);" ";
1370IF I% PRINTTAB(10);" Side: ";:IF S%
=1 PRINT"A"; ELSE IF I% PRINT "B";
1380IF J% PRINTTAB(20);" Song: ";STR$(N
%);" "
1390IF B%=3 PRINTSPC40;
1400IF K% PRINT" ";Tit$;
1410IF B%=3 PRINTSPC40;
1420IF L% PRINT" By : ";Name$;
1430IF B%=3 PRINTSPC(80) ELSE PRINT
1440VDU3
1450ENDPROC
1460DEFPROCView(Q%)
1470PROCtit
1480P%=0
1490IF Q%=4 OR Q%=5 OR Q%=10:INPUT''" W
hich Tape? "R%
1500IF Q%=8 PRINT'" Song title to searc
h for?":INPUTF$:F$=FNUpperCase(F$)
1510IF Q%=9 PRINT'" Artist to search fo
r?":INPUTG$:G$=FNUpperCase(G$)
1520REPEAT
1530*FX21
1540U%=0
1550PROCGetRecord
1560IF Q%=1 OR Q%=10 AND T%=R% PROCPrin
tRecord:U%=1
1570IF Q%=2 IF S%=1 PROCPrintRecord:U%=
1
1580IF Q%=3 IF S%=2 PROCPrintRecord:U%=
1
1590IF Q%=4 AND T%=R% OR Q%=6 VDUB%:PRI
NT" Tape ";STR$(T%);" ";Name$:U%=1:VDU3
1600IF Q%=5 AND T%=R% OR Q%=7 VDUB%:PRI
NT Tit$;:U%=1:IF B%=2 PRINT"Tape ";STR$(
T%);:VDU3
1610IF Q%=5 AND T%=R% OR Q%=7:VDUB%:PRI
NT:VDU3
1620IF Q%=8 PROCCompare(Tit$,F$)
1630IF Q%=9 PROCCompare(Name$,G$)
1640IF Q%<4 OR Q%>7:IF B%=3:IF U%=1 PRI
NT" Press a key to continue or Q to quit
":IF INSTR("Qq",GET$) U%=2
1650IF Q%<4 OR Q%>7:IF U%<>2 PRINTTAB(0
,16)" Searching....";SPC(23)
1660P%=P%+&4C
1670UNTILP%=EXT#F% OR U%=2
1680PRINT''" FINISHED. PLEASE PRESS A K
EY"
1690REPEATUNTILGET
1700H%=1:I%=1:J%=1:K%=1:L%=1
1710ENDPROC
1720DEFFNUpperCase(H$)
1730I$=""
1740FORM%=1TOLEN H$
1750O%=ASC MID$(H$,M%,1)
1760IF O%>90 O%=O%-32
1770I$=I$+CHR$(O%)
1780NEXT
1790=I$
1800DEFPROCCompare(J$,K$)
1810J$=FNUpperCase(J$)
1820IF INSTR(J$,K$) PROCPrintRecord:U%=
1
1830ENDPROC