Compucolor.org – Virtual Media

Listing of file='CAR.BAS;01' on disk='vmedia/chip_128-sector.ccvf'

1 REM Y KCAR RUNNING COSTS        R. FERGUSON        MAY81


2 REM USE THE CREATE FILE OPTION BEFORE INPUTING 1ST RECORD.
3 REM ALL ENTRIES EXCEPT DATA ARE SINGLE KEY ENTRY.
4 REM DON'T FORGET TO CLOSE THE FILE WHEN FINISHED OR THE
5 REM    FILE WILL NOT BE WRITTEN TO DISK.

18 GOTO 185
19 PLOT 3,20,30:PRINT "ANY KEY TO CONT  ";
20 REM  INPUT S/R
22 POKE 33278,0
24 KR= PEEK (33278):IF KR= 0THEN 24
26 PRINT :RETURN
40 REM DM TO D OF Y S/R
42 D= INT (DM):M= INT ((DM- D)* 100+ .5)
44 IF M= 1OR M= 2THEN M= M+ 13:Y= 0:GOTO 48
46 M= M+ 1:Y= 365
48 D= INT (30.6001* M+ D+ Y- 428)
50 IF D< 1THEN D= D+ 365
52 RETURN
90 REM COMP AT WK
92 PLOT 12,3,20,16,15:PRINT "COMPUTER AT WORK ....."
94 PLOT 8:RETURN
185 DIM D(13,6)
200 REM DIRECTORY
204 PLOT 12,14,3,15,1
205 PRINT " CAR RUNNING COSTS DIRECTORY "
210 X= 20:Y= 10
215 PLOT 15,3,X,Y+ 0:PRINT "1  INPUT DATA
220 PLOT 3,X,Y+ 2:PRINT "2  READ DATA
240 PLOT 3,X,Y+ 4:PRINT "3  CREATE FILE
245 PLOT 3,X,Y+ 6:PRINT "4  CLOSE FILE
270 PLOT 3,20,28:PRINT "YOUR CHOICE ?    ";
280 GOSUB 20
285 KR= KR- 48:IF KR= 3THEN 5000
290 IF F1= 0THEN FILE "R",1,"CAR",1:F1= 1
300 ON KRGOTO 1000,2000,5000,6000
1000 REM INPUT DATA
1005 X= 15:Y= 10:T= 22
1010 PLOT 6,3,15,12,3,X,Y
1020 PRINT "DATE (DD.MM)";TAB( T);:INPUT "> ";DA
1025 PLOT 3,X,Y+ 2
1030 PRINT "KILO READING";TAB( T);:INPUT "> ";KM
1035 PLOT 3,X,Y+ 4
1040 PRINT "TOTAL COST ($$.CC)";TAB( T);:INPUT "> ";TC
1045 PLOT 3,X,Y+ 6
1050 PRINT "CENTS/LITRE (CC.C)";TAB( T);:INPUT "> ";CL
1055 LI= INT (TC* 1000/ CL)/ 10
1059 PLOT 3,X,Y+ 8
1060 PRINT "TANK FULL (Y/N) ?";TAB( T)">  ";:GOSUB 20
1062 F$= CHR$ (KR)
1064 PLOT 3,X,Y+ 12
1065 PRINT "DETAILS OK (Y/N) ?";TAB( T)">  ";:GOSUB 20
1070 IF KR= 78THEN 1000
1080 IF KR= 89OR KR= 13THEN 1100
1090 GOTO 1064
1100 PLOT 3,X,Y+ 14
1110 PRINT "ANOTHER ENTRY (Y/N) ?";TAB( T);">  ";:GOSUB 20
1150 GET 1,251;LR:LR= LR+ 1
1160 PUT 1,LR;DA,KM,TC,LI,F$[1]
1170 PUT 1,251;LR
1200 IF KR= 89THEN 1000
1210 IF KR= 78OR 13THEN 200
2000 REM READ DATA
2010 GOSUB 90
2100 GET 1,251;RN:IF RN< 2THEN 2900
2110 GET 1,RN;D2,K2,C2,L2
2120 RN= RN- 1:AN= 2:TD= 0:TL= 0
2150 GET 1,RN;D1,K1,C1,L1,F$[1]
2160 IF F$= "Y"THEN 2200
2170 C2= C2+ C1:L2= L2+ L1:RN= RN- 1
2180 IF RN= 0THEN 2900
2190 GOTO 2150
2200 DM= D2:GOSUB 40
2210 DD= D:DM= D1:GOSUB 40
2220 DD= DD- D:IF DD< 0THEN DD= DD+ 365
2230 KM= K2- K1:TC= C2:LI= L2
2235 D(AN,1)= D2
2240 D(AN,2)= INT (LI* 1000/ KM+ .5)/ 10
2250 D(AN,3)= INT (2844/ D(AN,2)+ .5)/ 10
2260 D(AN,6)= INT (KM* 30.6/ DD+ .5)
2270 D(AN,4)= INT (TC* 1000/ KM+ .5)/ 10
2280 D(AN,5)= INT (TC* 30.6/ DD+ .5)
2290 TD= TD+ TC:TL= TL+ LI
2400 IF AN= 13THEN 2430
2410 RN= RN- 1:IF RN= 0THEN 2430
2420 D2= D1:K2= K1:C2= C1:L2= L1:AN= AN+ 1:GOTO 2150
2430 GET 1,251;LR
2440 GET 1,1;D1,K1
2450 GET 1,LR;D2,K2
2560 DM= D2:GOSUB 40:DD= D
2570 DM= D1:GOSUB 40:DD= DD- D:IF DD< 0THEN DD= DD+ 365
2580 KM= K2- K1
2590 D(1,2)= INT (TL* 1000/ KM+ .5)/ 10
2600 D(1,3)= INT (2844/ D(1,2)+ .5)/ 10
2610 D(1,6)= INT (KM* 30.6/ DD+ .5)
2620 D(1,4)= INT (TD* 1000/ KM+ .5)/ 10
2630 D(1,5)= INT (TD* 30.6/ DD+ .5)
2700 PLOT 19,12
2710 PRINT "DATE";TAB( 12)"L/100K";TAB( 24)"MPG";
2715 PRINT TAB( 34)"C/KM";TAB( 45)"$/MTH";
2716 PRINT TAB( 54)"KM/MTH":PRINT
2720 FOR AN= 13TO 1STEP - 1:IF AN= 1THEN PRINT
2725 DA= D(AN,1):I= INT (DA):R= DA- I
2726 R$= STR$ (R):R$= MID$ (R$+ "0",2,3)
2727 I$= STR$ (I):L= LEN (I$)
2728 I$= RIGHT$ (I$,L- 1):IF L= 2THEN I$= "0"+ I$
2730 PLOT 17:PRINT I$+ R$;:TA= 0
2735 FOR T= 2TO 4:TA= TA+ 11:PLOT 16+ T
2736 IF AN= 1THEN PLOT 23
2740 N= D(AN,T):N$= STR$ (N):IF N- INT (N)= 0THEN N$= N$+ ".0"
2745 PRINT TAB( TA)RIGHT$ ("   "+ N$,5);
2760 NEXT T
2765 FOR T= 5TO 6:PLOT 16+ T:TA= TA+ 11
2766 IF AN= 1THEN PLOT 23
2770 PRINT TAB( TA)RIGHT$ ("    "+ STR$ (D(AN,T)),5);
2775 NEXT T:PRINT :PRINT
2780 NEXT AN
2790 PLOT 28,28:PRINT "AVERAGE"
2890 GOSUB 19:GOTO 200
2900 PLOT 17,12,3,20,15:PRINT "NEED MORE RECORDS !"
2910 GOTO 2890
5000 REM FILE CONTROL
5100 FILE "N","CAR",251,17,251
5110 GOTO 200
6000 REM CLOSE FILES
6090 PLOT 12
6100 FILE "C",1