8-Bit Software Online Conversion
Singles Database - Listing
10REM Music database.
20REM For Phil Arundel.
30REM By C.J.Richardson.
40REM For more information about PD
50REM software send an SAE to:
60REM C.J.Richardson.
70REM 8-Bit Software.
80REM 17 Lambert Park Road. Hedon.
90REM Hull. Tel. 0482 896868
100REM V1a With OPENUP
110DEFFNS="RecDb1a"
120MODE7
130VDU23;8202;0;0;0;
140PROCd("Remove program disc,"):PROCd
("insert data disc into drive 0.")
150PROCd("Then press a key")
160REPEATUNTILGET
170ONERROR VDU3,15:IF ERR=214 PROCopen
files ELSE REPORT:PRINTERL:PRINT"PRESS A
KEY":IFERR<>222 PROCclose:REPEATUNTILGE
T ELSE REPEATUNTILGET
180*INFO Records
190P%=0:PROCopen:PROCclose
200REPEAT:CLS:*FX21
210PROCd("Record database by C.J.Richa
rdson")
220PROCd("Records:"+STR$X%)
230IFX%<6588 PROCd("1.(A)dd data") ELS
E PROCd("Database full!")
240PROCd("2.(E)dit data")
250PROCd("3.(V)iew all data")
260PROCd("4.(T)itle/performer search")
270PROCd("5.(R)ecord company search")
280PROCd("6.(Y)ear of release search")
290PROCd("7.(S)ort by artist alphabeti
cally")
300IFP%=0:PROCd("8.(P)rinter off") ELS
E PROCd("8.(P)rinter on")
310REPEAT:A$=GET$:UNTILINSTR("AEVTRYSP
12345678",A$):CLS:PROCopen
320IFX%<6588IFINSTR("A1",A$)PROCd("Add
record "+STR$(X%+1)):PROCadd:PROCwrite1
330IFINSTR("E2",A$)P%=0:PROCedit
340IFINSTR("V3",A$)PROCviewall
350IFINSTR("TRY456",A$)PROCsearch
360IFINSTR("S7",A$)PROCsort
370IFINSTR("P8",A$)P%=P%EOR1
380PROCclose
390UNTILFALSE
400DEFPROCopen
410F%=OPENUP":0.Records"
420G%=OPENUP":2.Records"
430ENDPROC
440DEFPROCclose
450X%=(EXT#F%+EXT#G%)/62
460CLOSE#F%
470CLOSE#G%
480ENDPROC
490DEFPROCopenfiles
500PROCd("No datafile found on disc")
510PROCd("To set up datafiles press Y"
)
520PROCd("Pressing Y will destroy any"
)
530PROCd("file by the name of Record")
540PROCd("On side 0 and 2 of the disc"
)
550PROCd("in the drive. Y/N")
560IFGET$<>"Y"ENDPROC
570F%=OPENOUT":0.Records"
580G%=OPENOUT":2.Records"
590CLS:PROCd("Enter the first record")
:PROCadd:PROCwrite1
600PROCclose
610ENDPROC
620DEFPROCd(D$):PRINTTAB(16-LEN(D$)/2)
;"
630DEFPROCadd
640REPEAT:PROCd("Enter performer/group
name")
650INPUTT$:T%=ASC(LEFT$(T$,1)):UNTILT%
>64ANDT%<91
660T$=T$+STRING$(26," ")
670T$=LEFT$(T$,26)
680PROCd("Enter A side title")
690PROCg
700PROCd("Enter B side title")
710PROCg
720CLS
730PROCi
740T$=T$+U$
750CLS
760PROCd("Enter year of release. Eg 93
")
770REPEAT:INPUTU$
780UNTILLENU$=2
790T$=T$+U$
800FORL%=1TO56
810IFASC(MID$(T$,L%))>96 T$=LEFT$(T$,L
%-1)+CHR$(ASC(MID$(T$,L%))-32)+MID$(T$,L
%+1)
820NEXT
830ENDPROC
840DEFPROCi
850PROCd("Enter record company code:")
860RESTORE:L%=0:R%=0:REPEAT:READU$:IFU
$<>""PRINTTAB(R%)STR$L%;". ";U$;:R%=R%+1
4:IFR%=42R%=0
870L%=L%+1
880UNTILU$=""
890PRINT
900REPEAT
910INPUTU$
920IFLENU$=1U$="0"+U$
930UNTILLENU$=2 AND VALU$<L%-1
940ENDPROC
950DEFPROCg
960INPUTU$
970U$=U$+STRING$(15," ")
980U$=LEFT$(U$,15)
990T$=T$+U$
1000ENDPROC
1010DATAOTHER,A+M,ASYLUM,BMG,EPIC,MUTE,
POLYGRAM,REPRISE,""
1020DEFPROCwrite1
1030PTR#F%=EXT#F%
1040PTR#G%=EXT#G%
1050IFEXT#F%<&31DC4 PRINT#F%,T$ ELSE IF
EXT#G%<&31DC4 PRINT#G%,T$ ELSE PROCd("D
ISC FULL!! Press a key"):REPEATUNTILGET:
REM NOT NEEDED
1060ENDPROC
1070DEFPROCedit
1080PROCd("Enter item number to edit")
1090PROCh
1100INPUT#I%,T$:T%=T%+1:PROCpres
1110PTR#I%=PTR#I%-62
1120PROCd("Entry "+STR$T%)
1130PROCadd
1140PRINT#I%,T$
1150ENDPROC
1160DEFPROCh
1170PROCd("1 to "+STR$X%)
1180REPEAT:INPUT T%:UNTILT%>0AND T%<=X%
1190IFT%<3295 I%=F% ELSE I%=G%
1200T%=T%-1:IF T%<3294:PTR#I%=T%*62 ELS
E PTR#I%=(T%-3294)*62
1210ENDPROC
1220DEFPROCviewall
1230PROCd("View all data")
1240PROCd("Enter start record")
1250PROCh
1260IFP%=1PROCd("Prepare printer, press
a key"):REPEATUNTILGET:VDU2 ELSE PROCd(
"Press shift to scroll text"):VDU14
1270REPEAT
1280T%=T%+1
1290INPUT#I%,T$
1300PROCpres
1310IF PTR#I%=EXT#I% I%=G%
1320UNTILPTR#G%=EXT#G% AND I%=G%
1330VDU3,15
1340PROCd("Press a key")
1350REPEATUNTILGET
1360ENDPROC
1370DEFPROCpres
1380RESTORE
1390FORL%=0TOVAL(MID$(T$,57,2))
1400READU$
1410NEXT
1420PRINT"Record: ";STR$T%
1430PRINT"Performer: ";LEFT$(T$,26);" "
;:IFP%=0PRINT
1440PRINT"Company: ";U$;" ";:IFP%=0PRIN
T
1450PRINT"Released: 19";RIGHT$(T$,2)
1460PRINT"A side: ";MID$(T$,27,15);" ";
:IFP%=0PRINT
1470PRINT"B side: ";MID$(T$,42,15)
1480PRINT
1490ENDPROC
1500DEFPROCj
1510FORL%=1TOLENS$
1520IFASC(MID$(S$,L%))>96 S$=LEFT$(S$,L
%-1)+CHR$(ASC(MID$(S$,L%))-32)+MID$(S$,L
%+1)
1530NEXT
1540ENDPROC
1550DEFPROCsearch
1560PROCd("Search")
1570IFINSTR("T4",A$)PROCd("Please enter
search name"):INPUTS$:PROCj
1580IFINSTR("R5",A$)PROCi:S$=U$
1590IFINSTR("Y6",A$)PROCd("Enter search
year eg 93"):REPEAT:INPUTS$:UNTILLENS$=
2
1600PROCd("Search to start from:")
1610PROCh
1620IFP%=1PROCd("Prepare printer. Press
a key"):REPEATUNTILGET:VDU2 ELSE PROCd(
"Press shift to scroll"):VDU14
1630REPEAT
1640INPUT#I%,T$
1650T%=T%+1
1660IF INSTR("Y6",A$)=0 IFINSTR(T$,S$)
PROCpres
1670IF INSTR("Y6",A$)IFRIGHT$(T$,2)=S$
PROCpres
1680IF PTR#I%=EXT#I% I%=G%
1690UNTILPTR#G%=EXT#G% AND I%=G%
1700VDU3,15
1710PROCd("Press a key")
1720REPEATUNTILGET
1730ENDPROC
1740DEFPROCsort
1750PROCd("Alphabetical sort by artist"
)
1760PROCd("Source drive 0")
1770PROCd("Destination drive 1")
1780PROCd("Ensure disc in drive 1 is BL
ANK!")
1790PROCd("Press C to confirm and start
")
1800PROCd("Any other to abandon")
1810IFGET$<>"C" ENDPROC
1820H%=OPENOUT":1.Records"
1830I%=OPENOUT":3.Records"
1840U$="@":U%=0
1850REPEAT
1860K%=H%
1870U$=CHR$(ASC(U$)+1)
1880PTR#F%=0
1890PTR#G%=0
1900J%=F%
1910REPEAT
1920INPUT#J%,T$
1930IFLEFT$(T$,1)=U$:PRINT#K%,T$:PRINTT
AB(0,12);:U%=U%+1:PROCd(STR$U%+" out of
"+STR$X%+" sorted"):PROCd("Sorting "+U$)
1940IFPTR#J%=EXT#F% J%=G%
1950IFPTR#K%=&31DC4 K%=I%
1960UNTILPTR#G%=EXT#G% AND J%=G%
1970UNTILU$="Z" OR U%=X%
1980CLOSE#H%
1990CLOSE#I%
2000ENDPROC