Some kind of custom database.
Content
Source Code
1 REM **** NAME "INDEX" ****
10 REM *** COPYWRITE 1985 ****
20 REM **** R. D. CULTICE ****
1000 REM **** MENU ****
1002 CLS
1005 PRINT TAB 9;"************";AT 1,9;"** MENU **";AT 2,9;"************",,,
1010 PRINT " 1. LOCATE FILE"
1015 PRINT " 2. ENTER FILE"
1020 PRINT " 3. SAVE FILE"
1025 PRINT " 4. EDIT"
1030 PRINT " 5. STATUS"
1035 PRINT " 6. INITIALIZE"
1040 PRINT " 7. LOAD FILES"
1060 INPUT Q$
1065 IF Q$>CHR$ 48 AND Q$<CHR$ 56 THEN GO TO 1090
1075 PRINT AT 12,11;AT 12,11;" PARDON "
1085 GO TO 1060
1090 GO TO 4000+VAL Q$*VAL "500"
2000 REM **** COUNT ****
2010 FOR I=I1 TO LEN F$-4
2020 IF F$(I)=" " THEN RETURN
2030 LET I$()=F$(I1 TO I)+" "
2040 NEXT I
2050 RETURN
2100 REM **** CHECK N$ ****
2110 FOR J=10 TO LEN N$-9 STEP 10
2120 IF N$(J-9 TO J)=I$() THEN GO TO 2160
2130 NEXT J
2140 IF J>=2560 THEN GO TO 6500
2150 RETURN
2160 LET N=(LEN N$-J)/10
2170 RETURN
2200 REM **** CHECK A$ ****
2210 FOR J=10 TO LEN A$-9 STEP 10
2220 IF A$(J-9 TO J)=I$() THEN GO TO 2260
2230 NEXT J
2240 IF J>=2560 THEN GO TO 6500
2250 RETURN
2260 LET A=(LEN A$-J)/10
2270 RETURN
2300 REM **** LAST FILE NO. ****
2305 LET L$="0": IF D$="" THEN RETURN
2310 FOR I=LEN D$-3 TO 4 STEP -7
2320 IF D$(I-3)=F$ AND VAL L$<VAL D$(I TO I+3) THEN LET L$=D$(I TO I+3)
2330 NEXT I
2340 RETURN
2500 REM **** CHECK INPUT ****
2510 PRINT AT 14,0;"ENTERY OK? Y/N"
2520 PAUSE 0
2530 RETURN
4500 REM **** SEARCH ****
4510 CLS
4520 PRINT " FILES TO BE LOCATED",,,
4530 PRINT "CATAGORY H,I OR C ?",,,
4540 INPUT F$
4550 PRINT "NAME ?",,,,
4560 INPUT B$
4570 PRINT "MODIFIER ?",,,,
4580 INPUT C$
4585 CLS
4590 PRINT " SEARCHING",,,,
4600 FOR I=LEN D$-6 TO 1 STEP -7
4610 IF F$="" THEN GO TO 4630
4620 IF F$<>D$(I) THEN GO TO 4730
4630 LET N=LEN N$-(CODE D$(I+1)*10+9)
4640 IF B$="" THEN GO TO 4660
4650 IF B$<>N$(N TO N+LEN B$-1) THEN GO TO 4730
4660 LET A=LEN A$-(CODE D$(I+2)*10+9)
4670 IF C$="" THEN GO TO 4700
4680 IF C$<>A$(A TO A+LEN C$-1) THEN GO TO 4730
4700 PRINT D$(I);" ";N$(N TO N+9);A$(A TO A+9);D$(I+3 TO I+6)
4720 IF E=1 THEN GO TO 6120
4730 NEXT I
4740 IF INKEY$="" THEN GO TO 4740
4750 GO TO 1000
5000 REM **** FILE ENTRY ****
5005 CLS : INPUT "BOOK # ";F$
5010 GO SUB 2300
5015 PRINT "LAST FILE NO. ";L$
5020 PRINT "ENTER FILE NAME IN THE FORM OF ""I N$ A$ NNNN"""
5030 INPUT F$
5035 PRINT F$
5040 GO SUB 2500
5045 IF INKEY$<>"Y" THEN GO TO 5000
5050 LET I1=3
5060 GO SUB 2000
5070 GO SUB 2100
5080 IF N$(J-9 TO J)=I$() THEN GO TO 5110
5090 LET N$=I$()+N$
5100 LET N=J/10
5110 LET I1=I+1
5120 GO SUB 2000
5130 GO SUB 2200
5140 IF A$(J-9 TO J)=I$() THEN GO TO 5170
5150 LET A$=I$()+A$
5160 LET A=J/10
5170 LET D$=D$+F$(1)+CHR$ N+CHR$ A+F$(LEN F$-3 TO )
5180 PRINT AT 16,0;"FINNISED ? Y/N"
5190 IF INKEY$="" THEN GO TO 5190
5200 IF INKEY$="Y" THEN GO TO 1000
5210 GO TO 5000
5500 REM **** SAVE FILES ****
5510 CLS : IF S$<>"" THEN GO TO 5530
5520 PRINT "ENTER FILE NAME ": INPUT S$
5530 PRINT "FILE NAME """;S$;"""": PRINT "START RECORDER THEN ENTER, 3-SAVES."
5540 SAVE S$ DATA D$(): SAVE S$ DATA N$(): SAVE S$ DATA A$()
5550 GO TO 1000
5560 PAUSE 0
5570 PAUSE 600
5580 SAVE S$ LINE 1000
5590 GO TO 1000
6000 REM **** EDIT ****
6010 CLS
6020 PRINT "1. DELETE FILE"'"2. EDIT NAME"'"3. EDIT MODIFIER"
6030 INPUT Q$
6040 GO TO 6000+VAL Q$*100
6050 GO TO 6000
6100 LET E=1
6110 GO TO 4520
6120 PRINT """D"" DELETES"
6130 PAUSE 4E4
6140 IF INKEY$<>"D" THEN GO TO 6180
6150 IF I=1 THEN LET D$=D$(I+7 TO )
6160 IF I=LEN D$-6 THEN LET D$=D$( TO I-1)
6170 IF I<>1 AND I<>LEN D$-6 THEN LET D$=D$( TO I-1)+D$(I+7 TO )
6180 LET E=0
6190 GO TO 1000
6200 PRINT "ENTER FILE NAME"
6210 INPUT F$
6220 LET I$()=F$
6230 GO SUB 2100
6240 PRINT N$(J-9 TO J)
6250 PRINT "CHANGE TO ?"
6260 INPUT F$
6270 LET I$()=F$
6280 LET N$(J-9 TO J)=I$()
6290 GO TO 1000
6300 PRINT "ENTER MODIFIER"
6310 INPUT F$
6320 LET I$()=F$
6330 GO SUB 2200
6340 PRINT A$(J-9 TO J)
6350 PRINT "CHANGE TO ?"
6360 INPUT F$
6370 LET I$()=F$
6380 LET A$(J-9 TO J)=I$()
6390 GO TO 1000
6500 REM **** STATUS ****
6510 CLS
6520 PRINT "FILES...... ";LEN D$/7
6530 PRINT "NAMES...... ";LEN N$/10-1
6540 PRINT "MODIFIERS.. ";LEN A$/10-1
6550 PRINT "BYTES FREE. ";FREE ,,,
6560 PRINT "ROOM LEFT FOR ";INT (FREE /7);" FILES, ",256-LEN N$/10;" NAMES, ";256-LEN A$/10;" MODIFIES."
6570 PAUSE 0
6580 GO TO 1000
7000 REM **** INITIALIZE ****
7010 DIM I$(10)
7020 LET N$=" "
7030 LET A$=" "
7040 LET D$=""
7050 LET A=0
7060 LET N=0
7080 LET S$=""
7085 LET E=0
7090 GO TO 1000
7500 REM **** LOAD FILES ****
7510 CLS : PRINT "FILE NAME": IF S$="" THEN INPUT S$
7520 PRINT """";S$;"""": PRINT "START RECORDER"
7530 LOAD S$ DATA D$(): LOAD S$ DATA N$(): LOAD S$ DATA A$()
7540 GO TO 1000
9980 STOP
9983 REM *** save starts here *
9984 SAVE "INDEX1" LINE 9990: SAVE "PRCODE"CODE 64256,1111
9988 GO TO 1000
9990 REM GOTO here to initialize BASIC and load machine code PRINT DRIVER
9992 CLEAR 64255: LET PRINTORG=64261: POKE 26704,INT (PRINTORG/256): POKE 26703,PRINTORG-(INT (PRINTORG/256))*256: LET MODE=64256: LET TRASH=MODE+1: LET POS=TRASH+1: LET WIDTH=POS+1: POKE MODE,1: POKE POS,0: POKE TRASH,0: POKE WIDTH,79: LOAD ""CODE 64256,1111
9994 REM Jump to start of your BASIC program
9996 GO TO 1000
9998 CLS : PRINT AT 8,0;"Looking for program from tape...",,,,,,,,"Start Tape Recorder": LOAD ""
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.


