10 REM MPG&Lp100Km Calculator 20 REM By W.E.Jowitt 30 MODE1 40 *FX16 50 a=0 60 del$=STRING$(33," ") 70 DIM mpg(10),d(10),m(10),y(10) 80 h$=CHR$(17)+CHR$(129)+" * Petrol Consumption *"+CHR$(17)+CHR$(128) 90 PRINT'SPC(6)h$' 100 PRINT'"Quantity entered taken as litres"'" unless gallons (G/g) entered." 110 REM LOAD mpgs 120 COLOUR 2 130 PRINT'"Load previous MPG file?"; 140 IF INSTR("Yy",GET$)GOTO 160 ELSE PRINT'"Car Registration Number " 150 PROCINPUT(7):GOTO310 160 MODE 6 170 PRINT''"Car Registration Number":PROCINPUT(7) 180 file=OPENIN C$ 190 FOR i=1 TO 10 200 INPUT #file,mpg(i) 210 INPUT #file,d(i) 220 INPUT #file,m(i) 230 INPUT #file,y(i) 240 NEXT 250 INPUT #file,b 260 CLOSE #file 270 a=b 280 MODE 1 290 PRINT'SPC(6)h$' 300 REM New mpg 310 COLOUR 3 320 PRINT'"Calculate new MPG (Y/N)?" 330 IF INSTR("Yy",GET$) ELSE 670 340 FOR i=10 TO 2 STEP -1 350 mpg(i)=mpg(i-1) 360 m(i)=m(i-1) 370 d(i)=d(i-1) 380 y(i)=y(i-1) 390 NEXT 400 IF a=0 THENINPUT'"Milage at previous fill? "a:GOTO420 410 PRINT'"Milage at previous fill ";a 420 INPUT'"Milage at this fill up ? "b 430 PRINT 440 INPUT"Date of fill (day no.) ? "d 450 IF d>31 THEN VDU11:PRINTdel$:VDU11:GOTO440 460 PRINT 470 INPUT"Month (month no.) ? "m 480 IF m>12 THEN VDU11:PRINTdel$:VDU11:GOTO470 490 INPUT'"Year ? 19"y 500 IF a>b THEN b=b+1000 510 k=b-a 520 PRINT'"Miles since last fill ";k 530 INPUT'"How much petrol filled ? "p$ 540 @%=&20205 550 p=VALp$ 560 IF (ASC(RIGHT$(p$,1))OR 32)=ASC"g"THEN 570 ELSE p=p/4.546 570 mpg(1)= (k/p) 580 d(1)=d 590 m(1)=m 600 y(1)=y 610 COLOUR 2 620 PRINT'" MPG = ";mpg(i);" L/100Km = ";282.47/mpg(i) 630 @%=&00000:@%=&00304 640 COLOUR 1 650 PRINT'"Hit a key..."; 660 G%=GET 670 REM Bar chart 680 CLS:COLOUR 2 690 PRINT'''TAB(4)h$;CHR$(17)+CHR$(129)+" "+C$+" * "+CHR$(17)+CHR$(128) 700 PRINT'"MPG L/100Km";TAB(27)"L/100Km";TAB(36)"MPG" 710 @%=&20204 720 PRINT " " 730 FOR i=1 TO 10 740 IF mpg(i)=0 THEN 770 750 PRINTTAB(29);282.47/mpg(i);TAB(35);mpg(i) 760 NEXT 770 x=12 780 VDU29,120;200; 790 @%=&00000:@%=&00304 800 FOR j=20 TO 40 STEP 2 810 MOVE 0,x*j:PLOT21,800,x*j 820 NEXT 830 GCOL0,1 840 FOR h=5 TO 50 STEP 5 850 MOVE 0,x*h:PLOT21,800,x*h 860 NEXT 870 PRINTTAB(0,27)"DATE" 880 PRINTTAB(0,28)"MONTH" 890 PRINTTAB(0,29)"YEAR" 900 COLOUR 3 910 FOR i=1 TO 10 920 IF mpg(i) ELSE 970 930 GCOL 1,1 940 MOVE 72*i,x*mpg(i):MOVE 72*i+64,x*mpg(i):PLOT 85,72*i,4:PLOT 85,72*i+64,4 950 GCOL 0,3 960 MOVE 72*i,4:DRAW 72*i,x*mpg(i):DRAW 72*i+64,x*mpg(i):DRAW 72*i+64,4 970 VDU5:MOVE -82,12+x*i*10:IF i*10>50 GOTO 980 ELSE PRINT;i*10;SPC(1)INT(28/i) 980 MOVE 72*i,-36:PRINT;d(i); 990 MOVE 72*i,-72:PRINT;m(i); 1000 MOVE 72*i,-108:PRINT;y(i); 1010 VDU4 1020 NEXT 1030 MOVE 0,600:DRAW 0,0:DRAW 800,0 1040 PRINT"Press any key to SAVE or EXIT." 1050 G%=GET 1060 REM SAVE mpgs 1070 MODE 6 1080 PRINT''" SAVE ";C$;" mpg's ? (Y/N)"; 1090 IF INSTR("Yy",GET$) THEN PRINT" Y" ELSE PRINT" N":GOTO 1190 1100 file=OPENOUT C$ 1110 FOR i=1 TO 10 1120 PRINT #file,mpg(i) 1130 PRINT #file,d(i) 1140 PRINT #file,m(i) 1150 PRINT #file,y(i) 1160 NEXT 1170 PRINT #file,b 1180 CLOSE #file 1190 PRINT''" To enter another MPG for this car press R, and to restart program press S. Press any other key to exit." 1191 A$=GET$ 1192 IF A$="R" GOTO 270 1193 IF A$="S" RUN 1194 END 1200 DEFPROCINPUT(X) 1210 C$="" 1220 FOR T=1TOX+1 1230 K=GET 1240 IFK=127ANDT>1THENT=T-1:VDU127:C$=LEFT$(C$,T-1):GOTO1230 1250 IFK=13THENT=X+1:GOTO1300 1260 IFK<>13ANDT=X+1THEN1230 1270 IFK<32 OR K>126THEN1230 1280 C$=C$+CHR$(K) 1290 VDUK 1300 NEXT:ENDPROC