Home » Personal collection » Commodore disks » disk52a2_c16_progs.d64 » database
database
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 disks » disk52a2_c16_progs.d64 |
Filename: | database |
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"