Home » Personal collection » Commodore tapes » Commodore_16 » drawer_br_tape10b_d46_c16_ghost_maze.wav » database prog
database prog
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
| Tape/disk: | Home » Personal collection » Commodore tapes » Commodore_16 » drawer_br_tape10b_d46_c16_ghost_maze.wav |
| Filename: | database prog |
| Read OK: | ✔ |
| File size: | 08AB bytes |
| Load address: | 1001 |
| Exec address: | 0000 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Personal collection » Commodore disks » disk52a2_c16_progs.d64 » database
- Personal collection » Commodore tapes » Commodore_16 » drawer_br_tape10b_d46_c16_ghost_maze.wav » database prog
File contents
10 GOSUB 830
20 LET T$="MAIN MENU":GOSUB 710
30 PRINT:PRINT"1. LOAD FILE":PRINT"2. MAKE NEW FILE"
40 PRINT"3. MAKE ENTRY":PRINT"4. VIEW ENTRIES"
50 PRINT"5. ALTER ENTRY":PRINT"6. SAVE FILE"
60 PRINT"7. SEARCH FILE":PRINT:PRINT"SELECT CHOICE"
70 GOSUB 750::LET CH=KP-48
80 IF CH<1 OR CH>ML THEN GOTO 20
90 ON CH GOSUB 500,780,110,460,160,500,180
100 GOTO 20
110 IF LAST=NR-2 THEN RETURN
120 LET LAST=LAST+1
130 LET T$="MAKE ENTRY":GOSUB 710
140 LET TP=LAST:GOSUB 740
150 LET IP=LAST:GOSUB 680:RETURN
160 LET T$="ALTER ENTRY":GOSUB 710:GOSUB740
170 LET IP=TP:GOSUB 680:RETURN
180 LET T$="SEARCH FILE":GOSUB 710
190 FOR I=1 TO LP:LET P(I)=0:LET R$((NR-1)*LP+I)=""
200 PRINT TAB(1);I;TAB(6);R$(I):NEXT I
210 PRINT:PRINT "SUBJECT OF SEARCH:"
220 LET A$="":INPUT A$:IF A$<"1" OR A$>"4" THEN GOTO 250
230 PRINT R$(VAL(A$));":";:INPUT W$
240 LET R$((NR-1)*LP+VAL(A$))=W$+" ":IF W$>"" THEN GOTO 220
250 PRINT "INFO REQUIRED:"
260 LET A$="":INPUT A$:IF A$<"1" OR A$>"4" THEN GOTO 280
270 LET P(VAL(A$))=1:GOTO 260
280 LET T$="SEARCHING FOR:":GOSUB 710
290 FOR I=1 TO 4
300 IF R$((NR-1)*LP+I)>"" THEN PRINT TAB(0);R$(I);TAB(12);R$((NR-1)*LP+I)
310 NEXT I:PRINT:PRINT
320 LET C=0:FORI=1 TO LAST:LET FL=0
330 FOR J=1 TO LP
340 LET S$=R$(I*LP+J)
350 LET F$=R$((NR-1)*LP+J)
360 IF F$="" THEN GOTO 420
370 LET F=0:LET LF=(LEN(S$)-LF)+1
380 FOR K=1 TO LS
390 IF MID$(S$,K,LF)=F$ THEN LET F=1:LETK=LS
400 NEXT K
410 IF F=0 THEN LET FL=1:LET J=LP
420 NEXT J:IF FL=0 THEN GOSUB 620
430 NEXT I
440 PRINT:PRINT"SEARCH OVER":PRINT"FOUND ";C;" TIMES"
450 GOSUB 750:RETURN
460 LET TP=1:LET T$="VIEW ENTRIES"
470 GOSUB 710:GOSUB 740:GOSUB 650:GOSUB 750
480 IF KP=32 AND TP<LAST THEN LET TP=TP+1:GOTO 470
490 RETURN
500 LET T$="SAVE FILE":IF CH=1 THEN LET T$="LOAD FILE"
510 GOSUB 710:PRINT"FILE NAME:";:INPUT F$
520 IF CH=6 THEN LET R$((LAST+1)*LP+1)="**"
530 IF CH=6 THEN OPEN 1,1,1,F$
540 IF CH=1 THEN OPEN 1,1,0,F$
550 LET I=1
560 IF CH=6 THEN PRINT#1,R$(I)
570 IF CH=1 THEN INPUT#1,R$(I)
580 IF R$(I)<>"**" THEN LET I=I+1:GOTO 560
590 CLOSE 1
600 IF CH=1 THEN LET LAST=INT(I/LP)-1
610 RETURN
620 PRINT"ENTRY ";I;:LET C=C+1:FOR K=1 TO LP
630 IF P(K)=1 THEN PRINT TAB(12);R$(I*LP+K)
640 NEXT K:PRINT:PRINT"PRESS SPACE":PRINT:GOSUB 750:RETURN
650 FOR K=1 TO LP
660 PRINT TAB(1):R$(K);TAB(15);R$(TP*LP+K)
670 NEXT K:RETURN
680 FOR I=1 TO LP:PRINTR$(I)
690 LET A$="":INPUT A$:IF A$="" THEN LET A$="-"
700 LET R$(IP*LP+I)=A$+" ":NEXT I:RETURN
710 SCNCLR:PRINT:PRINT
720 PRINT"DATABASE":PRINT"--------":PRINT
730 PRINTT$:PRINT:RETURN
740 PRINT:PRINT"NOW ON ENTRY ";TP:PRINT:RETURN
750 GET I$
760 IF I$="" THEN GOTO 750
770 LET KP=ASC(I$):RETURN
780 LET T$="MAKE NEW FILE":GOSUB 710
790 PRINT"TYPE IN HEADINGS":PRINT:FOR I=1 TO LP
800 PRINT"HEADING ";I:INPUT A$
810 IF LEN(A$)>10 THEN PRINT"TOO LONG":GOTO 800
820 LET R$(I)=A$:NEXT I:GOSUB 850:RETURN
830 LET NR=30:LET LP=4:LET ML=7
840 DIM R$(NR*LP),P(LP)
850 LET LAST=0:LET TP=1:RETURN
� 830 & � T$�"MAIN MENU":� 710 P �:�"1. LOAD FILE":�"2. MAKE NEW FILE"