10 DEFFNS="TotDB" 20 MODE7 30 VDU23;8202;0;0;0; 40 *FX4,1 50 B%=10 60 ONERROR F%=OPENOUT"Data":PRINT#F%,"000.00":PRINT#F%,"000.00":PRINT#F%,"..................":CLOSE#F% 70 F%=OPENUP"Data" 80 PROCread 90 ONERROR CLOSE#F%:OSCLI"FX4":REPORT:PRINTERL:END 100 REPEAT 110 PROCscreen 120 PROCinput 130 IF A%=64 PROCprintout 140 IF A%>64 IF A%<123 IF B%=10 PROCdoname 150 IF A%>44 IF A%<58 IF B%<>10 PROCdotot 160 UNTILFALSE 170 END 180 DEFPROCscreen 190 PRINTTAB(0,2); 200 PRINT" Simple Database By C.J.Richardson" 210 PRINT" Arrow Keys to Move Between Records" 220 PRINT" @For Printout" 230 PRINT" ESCAPEto Finish" 240 PRINTTAB(14,8);"Record ";PTR#F%/36;" " 250 PRINTTAB(5,10);"Name ";Name$;" " 260 PRINTTAB(5,12);"Total Spent `";Tot1$;" " 270 PRINTTAB(5,14);"Amount Owed `";Tot2$;" " 275 PRINTTAB(3,20);"Disc must NOT be write protected." 280 VDU31,4,10,32,10,10,8,32,10,10,8,32,31,3,B%,132,157 290 ENDPROC 300 DEFPROCinput 310 *FX21 320 IF N%=0 A%=GET ELSE A%=N% 330 N%=0 340 IF A%=136 OR A%=137 PROCnextrecord:A%=0 350 IF A%=138 B%=B%+2:A%=0:IF B%=16 B%=10 360 IF A%=139 B%=B%-2:A%=0:IF B%=8 B%=14 370 ENDPROC 380 DEFPROCnextrecord 390 IFA%=136 IF PTR#F%>36:PTR#F%=PTR#F%-(36*2) ELSE IF A%=136:PTR#F%=0 400 IFA%=137 IF PTR#F%=EXT#F%:VDU7:PRINTTAB(15,8)"New Record":PRINT#F%,"000.00":PRINT#F%,"000.00":PRINT#F%,"..................":PTR#F%=PTR#F%-36 410 PROCread 420 ENDPROC 430 DEFPROCread 440 INPUT#F%,Tot1$ 450 INPUT#F%,Tot2$ 460 INPUT#F%,Name$ 470 ENDPROC 480 DEFPROCdoname 490 VDU31,19,B% 500 PRINTSPC(18) 510 VDU31,19,B%,A% 520 Name$=CHR$(A%) 530 REPEAT 540 A%=GET 550 IF A%=138 A%=13:B%=12 560 IF A%=139 A%=13:B%=14 570 IF A%=136 OR A%=137:N%=A%:A%=13 580 IF A%<>127 IF A%<>13 Name$=Name$+CHR$(A%) 590 IF A%<>13 IF LEN (Name$)>0 VDUA% 600 IF A%=127 IF LEN(Name$)>0 Name$=LEFT$(Name$,(LEN(Name$)-1)) 610 UNTILLEN Name$=18 OR A%=13 620 IF A%=13 FOR L%=LEN(Name$) TO 17:Name$=Name$+" ":NEXT 630 A%=0 640 PROCsave 650 ENDPROC 660 DEFPROCsave 670 PTR#F%=PTR#F%-36 680 PRINT#F%,Tot1$ 690 PRINT#F%,Tot2$ 700 PRINT#F%,Name$ 710 ENDPROC 720 DEFPROCdotot 730 VDU31,19,B% 740 PRINTSPC(6) 750 VDU31,19,B%,A% 760 T$=CHR$(A%) 770 REPEAT 780 REPEAT 790 A%=GET 800 IF A%=136 OR A%=137:N%=A%:A%=13 810 UNTIL A%>44 AND A%<58 OR A%=13 OR A%=127 OR A%=138 OR A%=139 820 IF A%>44 AND A%<58 T$=T$+CHR$(A%) 830 IF A%<>13 IF LEN (T$)>0 VDUA% 840 IF A%=127 IF LEN(T$)>0 T$=LEFT$(T$,(LEN(T$)-1)) 850 UNTILLEN T$=6 OR A%=13 OR A%=138 OR A%=139 860 IF A%=13 OR A%=138 OR A%=139 FOR L%=LEN(T$) TO 5:T$=T$+" ":NEXT 870 IF B%=12 Tot1$=T$ 880 IF B%=14 Tot2$=T$ 890 IF A%=138 B%=B%+2:IF B%=16 B%=10 900 IF A%=139 B%=B%-2 910 A%=0 920 PROCsave 930 ENDPROC 940 DEFPROCprintout 950 CLS 960 PRINT"To Printer? Y/N" 970 REPEAT 980 B$=GET$ 990 UNTILINSTR("YyNn",B$) 1000 IF INSTR("Yy",B$):PRINT"Prepare Printer And Press a Key":OSCLI"FX21":REPEATUNTILGET:VDU2 ELSE PRINT"Press SHIFT to Scroll Text":VDU14 1010 PTR#F%=0 1020 REPEAT 1030 PROCread 1040 PRINTName$;" ";Tot1$;" ";Tot2$ 1050 UNTILEOF#F% 1060 VDU3,15 1070 *FX21 1080 PRINT"Press a key" 1090 REPEATUNTILGET 1100 CLS 1110 ENDPROC