10 REM MPG2&Lp100Km Calculator 20 REM By W.E.Jowitt K2V 30 MODE129 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?(Y/N)"; 140 IF INSTR("Yy",GET$)GOTO 160 ELSE PRINT'"Car Registration Number " 150 PROCINPUT(7):GOTO320 160 MODE 134 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 IF b>1000 THEN b=b-1000 280 a=b 290 MODE 1 300 PRINT'SPC(6)h$' 310 REM New mpg 320 COLOUR 3 330 PRINT'"Calculate new MPG (Y/N)?" 340 IF INSTR("Yy",GET$) ELSE 680 350 FOR i=10 TO 2 STEP -1 360 mpg(i)=mpg(i-1) 370 m(i)=m(i-1) 380 d(i)=d(i-1) 390 y(i)=y(i-1) 400 NEXT 410 IF a=0 THENINPUT'"Milage at previous fill? "a:GOTO430 420 PRINT'"Milage at previous fill ";a 430 INPUT'"Milage at this fill up ? "b 440 PRINT 450 INPUT"Date of fill (day no.) ? "d 460 IF d>31 THEN VDU11:PRINTdel$:VDU11:GOTO450 470 PRINT 480 INPUT"Month (month no.) ? "m 490 IF m>12 THEN VDU11:PRINTdel$:VDU11:GOTO480 500 INPUT'"Year ? 19"y 510 IF a>b THEN b=b+1000 520 k=b-a 530 PRINT'"Miles since last fill ";k 540 INPUT'"How much petrol filled ? "p$ 550 @%=&20205 560 p=VALp$ 570 IF (ASC(RIGHT$(p$,1))OR 32)=ASC"g"THEN 580 ELSE p=p/4.546 580 mpg(1)= (k/p) 590 d(1)=d 600 m(1)=m 610 y(1)=y 620 COLOUR 2 630 PRINT'" MPG = ";mpg(i);" L/100Km = ";282.47/mpg(i) 640 @%=&00304 650 COLOUR 1 660 PRINT'"Hit a key..."; 670 G%=GET 680 REM Bar chart 690 CLS:COLOUR 2 700 PRINT''TAB(4)h$;CHR$(17)+CHR$(129)+" "+C$+" * "+CHR$(17)+CHR$(128) 710 PRINT'"MPG L/100Km";TAB(27)"L/100Km";TAB(36)"MPG" 720 @%=&20204 730 PRINT " " 740 FOR i=10 TO 1 STEP-1 750 IF mpg(i)=0 THEN k=0 :GOTO 754 752 k=282.47/mpg(i) 754 IF k<10 THEN r=30 ELSE r=29 760 PRINTTAB(r);k;TAB(35);mpg(i) 770 NEXT 780 x=12 790 VDU29,120;200; 800 @%=&00304 810 FOR j=10 TO 50 STEP 2 820 MOVE 0,x*j:PLOT21,800,x*j 830 NEXT 840 GCOL0,1 850 FOR h=5 TO 50 STEP 5 860 MOVE 0,x*h:PLOT21,800,x*h 870 NEXT 880 PRINTTAB(0,26)"DATE" 890 PRINTTAB(0,27)"MONTH" 900 PRINTTAB(0,28)"YEAR" 910 COLOUR 3 920 FOR i=1 TO 10 925 y=11-i 930 IF mpg(i) ELSE 980 940 GCOL 1,1 950 MOVE 72*y,x*mpg(i):MOVE 72*y+64,x*mpg(i):PLOT 85,72*y,4:PLOT 85,72*y+64,4 960 GCOL 0,3 970 MOVE 72*y,4:DRAW 72*y,x*mpg(i):DRAW 72*y+64,x*mpg(i):DRAW 72*y+64,4 980 VDU5:MOVE -82,12+x*i*10:IF i*10>50 GOTO 990 ELSE PRINT;i*10;SPC(1)INT(28/i) 990 MOVE 72*y,-12:IF d(i)<10PRINT" "; 992 PRINT;d(i); 1000 MOVE 72*y,-46:IFm(i)<10PRINT" "; 1002 PRINT;m(i); 1010 MOVE 72*y,-80:PRINT;y(i); 1020 VDU4 1030 NEXT 1040 MOVE 0,600:DRAW 0,0:DRAW 800,0 1050 PRINT'" Press any key for SAVE or EXIT." 1060 G%=GET 1070 REM SAVE mpgs 1080 MODE 6 1090 PRINT''" SAVE ";C$;" mpg's ? (Y/N)"; 1100 IF INSTR("Yy",GET$) THEN PRINT" Y" ELSE PRINT" N":GOTO 1200 1110 file=OPENOUT C$ 1120 FOR i=1 TO 10 1130 PRINT #file,mpg(i) 1140 PRINT #file,d(i) 1150 PRINT #file,m(i) 1160 PRINT #file,y(i) 1170 NEXT 1180 PRINT #file,b 1190 CLOSE #file 1200 PRINT''" For repeat press R"''" Press SPACE for MENU" 1205 G=GET:IF G=32 CHAIN"MENU" 1208 IF G=82 GOTO270 1210 DEFPROCINPUT(X) 1220 C$="" 1230 FOR T=1TOX+1 1240 K=GET 1250 IFK=127ANDT>1THENT=T-1:VDU127:C$=LEFT$(C$,T-1):GOTO1240 1260 IFK=13THENT=X+1:GOTO1310 1270 IFK<>13ANDT=X+1THEN1240 1280 IFK<32 OR K>126THEN1240 1290 C$=C$+CHR$(K) 1300 VDUK 1310 NEXT:ENDPROC