10 REM" [0x16] [0x07] [0x0E] 20 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] Database. 30 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] Database. 40 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] By C.J.Richardson. 50 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] For 8 bit software. 60 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] Can be altered easily to suit 70 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] your needs by changing theDATA. 80 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] Change the size of the database 90 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] by alteringQ%. 100 REM" [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] [0x08] ---------------------------------- 110 DEFFNS="DBase" 120 MODE7 130 Q%=10:REM"SIZE 140 A%=Q%:DIM B$(A%),C$(A%),D$(A%),F$(A%),G$(A%),H$(A%),I$(A%),J$(A%),K$(A%),P$(A%),M$(A%),N$(10):FORL%=0TO10:READN$(L%):NEXT 150 P%=1:X%=0 160 GOSUB310 170 VDU23;10,32;0;0;0; 180 *FX21 190 L$=GET$:IFASCL$>96L$=CHR$(ASC(L$)-32) 200 VDU23;10,114;0;0;0; 210 IFL$="F"IFP%1 P%=P%-1 230 IFL$="E"GOSUB530 240 IFL$="L"GOTO710 250 IFL$="S"GOSUB770 260 IFL$="G"INPUTTAB(9,20)"Enter record to display "P%:IFP%>A%P%=A% ELSE IF P%<1P%=1 270 IFL$="A":E$="A":F%=0:GOSUB670:IF F%<>0:CLS:PRINT"Adding record: ";STR$ P%;" "':GOSUB550 ELSE IFL$="A"PRINTTAB(12,22);"No free records.":GOTO170 280 IFL$="P"X%=X%EOR2 290 IFL$="U"PRINTTAB(0,22)"This destroys present data. Sure? Y/N":IFGET$="Y"CHAIN"DBsort" 300 GOTO160 310 CLS 320 PRINTTAB(7)"Database for 8BS by CJR. " 330 RESTORE:PRINTCHR$X%'N$(0);B$(P%) 340 PRINTN$(1);C$(P%) 350 PRINTN$(2);D$(P%) 360 PRINTN$(3);F$(P%) 370 PRINTN$(4);G$(P%) 380 PRINTN$(5);H$(P%) 390 PRINTN$(6);I$(P%) 400 PRINTN$(7);J$(P%) 410 PRINTN$(8);K$(P%) 420 PRINTN$(9);P$(P%) 430 PRINTN$(10);M$(P%):VDU3 440 PRINTTAB(9,18)"Record:";STR$P%;" of ";STR$A%;TAB(24);"" 450 PRINTTAB(9)"(F)orward (B)ackward." 460 PRINTTAB(9)"(G)oto record. " 470 PRINTTAB(9)"(E)dit this record. " 480 PRINTTAB(9)"(A)dd (U)tils. " 490 PRINTTAB(9)"(L)oad/(S)ave data. " 500 PRINTTAB(9)"(P)rinter off. "; 510 IFX%=2PRINTTAB(8,24);"(P)rinter on."; 520 RETURN 530 PRINTTAB(12,18);SPC255;TAB(0,18);"Enter item code to edit "' 540 E$=GET$:IFE$="A"E$="a" 550 IFINSTR("1A",E$)PRINTN$(0);:INPUTLINE""B$(P%) 560 IFINSTR("2A",E$)PRINTN$(1);:INPUTLINE""C$(P%) 570 IFINSTR("3A",E$)PRINTN$(2);:INPUTLINE""D$(P%) 580 IFINSTR("4A",E$)PRINTN$(3);:INPUTLINE""F$(P%) 590 IFINSTR("5A",E$)PRINTN$(4);:INPUTLINE""G$(P%) 600 IFINSTR("6A",E$)PRINTN$(5);:INPUTLINE""H$(P%) 610 IFINSTR("7A",E$)PRINTN$(6);:INPUTLINE""I$(P%) 620 IFINSTR("8A",E$)PRINTN$(7);:INPUTLINE""J$(P%) 630 IFINSTR("9A",E$)PRINTN$(8);:INPUTLINE""K$(P%) 640 IFINSTR("Aa",E$)PRINTN$(9);:INPUTLINE""P$(P%) 650 IFINSTR("ABb",E$)PRINTN$(10);:INPUTLINE""M$(P%) 660 RETURN 670 FORL%=A%TO1STEP-1 680 IFB$(L%)=""F%=L%:P%=F% 690 NEXT 700 RETURN 710 CLS:*. 720 INPUT"LOAD WHICH FILE?RETURN=dbdat "L$:IFL$=""L$="dbdat" 730 F%=OPENIN L$:INPUT#F%,A%:IFQ%>A%PRINT"Increase records from ";STR$A%;" to ";STR$Q%;" Y/N?":IFINSTR("Yy",GET$)B%=Q%ELSEB%=A% 740 CLEAR:DIM B$(B%),C$(B%),D$(B%),F$(B%),G$(B%),H$(B%),I$(B%),J$(B%),K$(B%),P$(B%),M$(B%),N$(10) 750 FORL%=0TO10:INPUT#F%,N$(L%):NEXT:FORL%=1TOA%:INPUT#F%,B$(L%),C$(L%),D$(L%),F$(L%),G$(L%),H$(L%),I$(L%),J$(L%),K$(L%),P$(L%),M$(L%):NEXT:CLOSE#F% 760 A%=B%:GOTO150 770 CLS:*. 780 INPUT"SAVE WHICH FILE?RETURN=dbdat "L$:IFL$=""L$="dbdat" 790 F%=OPENOUT L$:PRINT#F%,A%:FORL%=0TO10:PRINT#F%,N$(L%):NEXT:FORL%=1TOA%:PRINT#F%,B$(L%),C$(L%),D$(L%),F$(L%),G$(L%),H$(L%),I$(L%),J$(L%),K$(L%),P$(L%),M$(L%):NEXT:CLOSE#F% 800 RETURN 810 DATA"1.Date:" 820 DATA"2.Location:" 830 DATA"3.Decca Position:" 840 DATA"4.Depth:" 850 DATA"5.Weather conditions:" 860 DATA"6.Sea State:" 870 DATA"7.Visibility:" 880 DATA"8.Bottom Time:" 890 DATA"9.Decompression:" 900 DATA"A.Partner:" 910 DATA"B.Notes:"