--- title: "Auto High Performance" id: 72919 type: "computer_media" slug: "auto-high-performance" url: "http://localhost/computer_media/auto-high-performance/" markdown_url: "http://localhost/computer_media/auto-high-performance.md" published_at: "2026-10-27T18:44:32+00:00" modified_at: "2026-10-27T18:44:32+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/10/FALCON-screen.png" excerpt: "A car enthusiast’s calculator for spring rates, bolt torque, carburettor CFM, weight distribution, displacement, mixed-fuel octane, gearing and suspension tuning." post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "David Hill" slug: "david-hill" taxonomy: "indiv" url: "http://localhost/indiv/david-hill/" genre: - name: "Hobby" slug: "hobby" taxonomy: "genre" url: "http://localhost/type/hobby/" media_type: "Program" programmers: - name: "David Hill" slug: "david-hill" taxonomy: "indiv" url: "http://localhost/indiv/david-hill/" download_url: "https://archive.org/download/timex-sinclair-software-archive/Auto%20High%20Performance%20%281985%29%28Hill%2C%20David%20A.%29%28TS2068%29%28US%29%28Program%29.zip" tsrun_member: "Auto High Performance (1985)(Hill, David A.)(TS2068)(US)(Program)/Auto High Performance (1985)(Hill, David A.)(TS2068)(US)(Program).tap" mediadate: "1985" images: - url: "http://localhost/wp-content/uploads/2026/10/FALCON-screen.png" - url: "http://localhost/wp-content/uploads/2026/10/a-menu.png" - url: "http://localhost/wp-content/uploads/2026/10/C-2-1.png" - url: "http://localhost/wp-content/uploads/2026/10/B-2.png" - url: "http://localhost/wp-content/uploads/2026/10/I-3.png" related_content: - id: 54754 title: "Letter from Dave Hill to Tom Bent" type: "document" url: "http://localhost/document/letter-from-dave-hill-to-tom-bent/" - id: 25058 title: "FD-68 User" type: "periodical" url: "http://localhost/periodical/fd-68-user/" media_type_tags: "Hobby" license: false --- # Auto High Performance Auto High Performance is a workshop calculator for the car enthusiast. Its menu offers eight tools: the new rate of a coil spring after it has been cut, bolt torque tables for grade 5, 7 and 8 bolts (dry and oiled), carburettor CFM for street and strip use, front and rear weight distribution, engine displacement from bore, stroke and cylinder count, the octane of two mixed fuels, gearing against miles per hour, and a suspension-tuning chart. Each calculator keeps a running table of your results on screen, lets you change one value and recalculate, and copies the screen to a printer. A final option gathers the latest figures from every section onto one totals page, on the screen or the printer. The title screen, a red muscle car, reads “© 1985 D.A.HILL”, and the program’s REM credits David A. Hill; its menu is headed “Total Performance Software”. Hill, a certified mechanic, describes the program and his reasons for writing it in his [letter to Tom Bent](/?p=54754). He also published the [FD-68 User](/?p=25058) newsletter for AERCO disk owners, and the program was distributed on an AERCO DOS-64 disk. ## Program Analysis The BASIC program `HIGH` (about 550 lines) holds every calculator; a 3,935-byte code block `PERF` at 61600 supplies two custom character sets and a few screen routines. Each section starts with `GO SUB 5530` or `GO SUB 5540`, which POKE the system variable CHARS (23606/23607) to switch between a wide and a narrow font in the code block, and with an `ON ERR GO TO` pointing at its own first line, so a bad entry simply restarts that screen. ### The calculations - Carburettor CFM: cubic inches × maximum RPM ÷ 3456, taken at 85% for a street engine and 100% for the strip (`DEF FN c` and `DEF FN q`, lines 340–350). - Displacement: bore² × 0.7854 × stroke × cylinders (`DEF FN s`, line 790). - Spring cutting: the fraction of the length removed is added to the old rate (`DEF FN p` and `DEF FN f`, lines 1370–1380). - Mixed fuels: the gallon-weighted average of the two octane ratings, rounded to two places (line 2030). - Weight distribution: front weight as a percentage of the total, with the rear as the remainder and a rounding fix so the two always add to 100 (lines 2630–2640). - Gearing: MPH = RPM × tire diameter ÷ (gear ratio × 333), with RPM kept in thousands; any one of the four values can be solved from the other three (lines 3360–3390, 4031–4034). - Bolt torque: three tables of foot-pound values held in DATA statements at lines 4660–4720, shown with a grade-marking symbol drawn from user-defined graphics. ### Notable Techniques - Results tables are drawn with PLOT and DRAW (line 4180) and filled row by row; when a table is full, machine code routines in `PERF` (for example `USR 65054`) clear it. - The totals page (lines 4740–5500) prints to the screen or, after `OPEN #2,"P"`, sends the same PRINT statements to the printer. - The menu sets CAPS LOCK with `POKE 23658,8` and reads capital letters; the calculators switch it off again. - A `RANDOMIZE USR 2217` ROM call comes before most prompts, apparently to clear the lower screen. - The program is saved with a worked example in its variables, which the totals page shows until you enter your own figures. Line 5550 re-dimensions all the result arrays. ### Potential Issues - The spring calculation adds the cut fraction to the rate (cutting 14 in. to 12 in. turns 400 into 457). The usual rule multiplies the rate by the length ratio, which gives about 467, so the result appears to be a little low. - Displacement is rounded with `INT(…)+1`, which adds one cubic inch even when the result is already a whole number. - Line 4830, `IF H$<>"D" OR H$<>"P"`, is always true. It does no harm, because the D and P cases are handled on the lines before it. This copy came from an AERCO FD-68 disk in Joe’s collection and was converted to load from tape on a stock TS2068: a new loader replaces the disk’s boot program and loads the title screen, and line 5520’s disk command `CAT "PERF.BIN",` became `LOAD "PERF"CODE`. Nothing else was changed. Every menu option was tested in ZEsarUX; the printer output was not. The download also holds the original AERCO disk image. ## Source Code `````````````````````` 1 REM AUTO HIGH PERFORMANCE * 1985 by David A. Hill 5 CLEAR 61599: PAPER 0: INK 0: BORDER 0: CLS : LOAD "FALCON"SCREEN$ : LOAD "HIGH" 0 REM AUTO HIGH PERFORMANCE * 1985 BY DAVID A. HILL ALL RIGHTS RESERVED 10 GO SUB 5540: ON ERR RESET : BORDER 1: PAPER 0: INK 5: CLS : LET menu=10 20 LET i$="APPLY FIRST CHOICE TO COLUMN? " 30 DIM q$(3,6) 40 LET q$(1)="SPRING": LET q$(2)="BEFORE": LET q$(3)="AFTER" 50 LET c$=" CHANGE WHICH COLUMN? " 60 LET d$=" " 70 LET e$="PRESS ""C"" TO COPY ""M"" FOR MENU" 80 LET g$=" GALLONS OR OCTANE (G/O)? " 90 PRINT AT 1,2; PAPER 3; INK 2;":'''''''''''''''''''''''''''''''''''''''''''''''''''''':";AT 2,2; PAPER 3; INK 2;": "; PAPER 4; INK 0;"TOTAL PERFORMANCE SOFTWARE"; PAPER 3; INK 2;" :";AT 3,2; PAPER 3; INK 2;":......................................................:" 100 POKE 23658,8: POKE 23609,30 110 PRINT '" A} COIL SPRING RATE AFTER CUT" 120 PRINT '" B} BOLT TORQUE SPECIFICATIONS" 130 PRINT '" C} CARB CFM REQUIREMENTS" 140 PRINT '" D} WEIGHT DISTRIBUTION" 150 PRINT '" E} ENGINE DISPLACEMENT" 160 PRINT '" F} MIXING FUELS " 170 PRINT '" G} GEARING -VS- MILES PER HOUR" 180 PRINT '" H} SUSPENSION TUNING" 190 PRINT '" I} PRINT TOTALS THIS SESSION" 200 RANDOMIZE USR 2217: PRINT #1;" PRESS THE LETTER OF YOUR CHOICE" 210 IF INKEY$="" THEN GO TO 210 220 IF INKEY$="A" THEN GO TO 1350 230 IF INKEY$="B" THEN GO TO 4280 240 IF INKEY$="C" THEN GO TO 320 250 IF INKEY$="D" THEN GO TO 2540 260 IF INKEY$="E" THEN GO TO 780 270 IF INKEY$="F" THEN GO TO 1950 280 IF INKEY$="G" THEN GO TO 3350 290 IF INKEY$="H" THEN GO TO 3070 300 IF INKEY$="I" THEN GO TO 4740 310 GO TO 200 320 GO SUB 5530: ON ERR GO TO 320 330 BORDER 4: PAPER 6: INK 0: CLS 340 DEF FN c(a,b)=INT (((a*b)/3456)*.85) 350 DEF FN q(t,v)=INT ((t*v)/3456) 360 POKE 23658,0: LET exit=1: LET ln=7 370 GO SUB 4180 380 PRINT AT 1,2; PAPER 5; INK 0;"GUIDE TO PROPER CARBURETION" 390 PRINT AT 4,8;"MAX";AT 4,15;"STREET";AT 4,24;"STRIP" 400 PRINT AT 5,1;"CID";AT 5,8;"RPM";AT 5,16;"CARB";AT 5,24;"CARB" 410 GO TO 660 420 INK 7: PRINT AT 3,1; PAPER 1;" 1 ";AT 3,8; PAPER 2;" 2 ";AT 3,15; PAPER 3;" ";AT 3,24; PAPER 4;" " 430 LET e1=e: LET r1=r: LET cfm1=cfm: LET strip1=strip 440 PRINT AT 20,1; PAPER 5; INK 0;c$: GO SUB 4730 450 IF INKEY$="" THEN GO TO 450 460 IF INKEY$<>"" THEN LET a$=INKEY$ 470 IF a$="1" THEN RANDOMIZE USR 2217: GO TO 530 480 IF a$="2" THEN RANDOMIZE USR 2217: GO TO 560 490 IF a$="c" OR a$="C" THEN COPY : GO TO 440 500 IF a$="v" OR a$="V" THEN GO TO 3980 510 IF a$="m" OR a$="M" THEN LET c(1)=e: LET c(2)=r: LET c(3)=cfm: LET c(4)=strip: GO TO menu 520 GO TO 450 530 PRINT AT 20,1; PAPER 6;d$ 540 FLASH 1: PRINT AT 3,1; PAPER 1;" 1 ": FLASH 0 550 INPUT "ENTER ENGINE CID ";e: GO TO 590 560 PRINT AT 20,1; PAPER 5; INK 0;c$ 570 FLASH 1: PRINT AT 3,8; PAPER 2;" 2 ": FLASH 0 580 INPUT "ENTER MAXIMUM RPM ";r 590 LET cfm=FN c(e,r) 600 LET strip=FN q(e,r) 610 IF ln=19 THEN GO TO 3980 620 PAPER 6: INK 0: PRINT AT ln-1,1;e1;AT ln-1,8;r1;AT ln-1,16;cfm1;AT ln-1,25;strip1 630 PAPER 1: INK 7: PRINT AT ln,1;e;AT ln,8;r;AT ln,16;cfm;AT ln,25;strip 640 LET ln=ln+1 650 GO TO 420 660 IF C(1)<>0 THEN GO SUB 770 670 IF C(1)=0 THEN GO TO 710 680 IF INKEY$="" THEN GO TO 680 690 IF INKEY$="c" THEN GO TO 630 700 IF INKEY$<>"c" AND INKEY$<>"n" THEN GO TO 660 710 PRINT AT 20,1; PAPER 6;d$: INPUT "ENTER ENGINE CID ";e: PRINT AT ln,1; PAPER 1; INK 7;e 720 INPUT "ENTER MAXIMUM RPM ";r: PRINT AT ln,8; PAPER 1; INK 7;r 730 LET cfm=FN c(e,r) 740 LET strip=FN q(e,r) 750 PAPER 1: INK 7: PRINT AT ln,16;cfm;AT ln,25;strip 760 GO TO 630 770 FLASH 1: PRINT AT 20,1; PAPER 5; INK 0;" NEW DATA OR CONTINUE (N/C) ": FLASH 0: RETURN 780 GO SUB 5530: ON ERR GO TO 780: BORDER 4: PAPER 6: CLS : POKE 23658,0 790 DEF FN s(x,y)=(x^2*.7854*y) 800 GO SUB 4180 810 INK 0: PRINT AT 1,2; PAPER 5;"FIGURING ENGINE DISPLACEMENT" 820 INK 7: PRINT AT 3,1; PAPER 1;" 1 ";AT 3,8; PAPER 2;" 2 ";AT 3,16; PAPER 3;" 3 ";AT 3,24; PAPER 4;" " 830 PAPER 6: INK 0: PRINT AT 4,1;"BORE";AT 4,15;"NO.OF";AT 4,24;"CUBIC" 840 PRINT AT 5,1;"DIA.";AT 5,7;"STROKE";AT 5,15;"CYL.";AT 5,24;"INCHES" 850 LET exit=2: LET ln=7: GO TO 1210 860 LET cid=INT (FN s(a,b)*c)+1 870 INK 7: PRINT AT 3,1; PAPER 1;" 1 ";AT 3,8; PAPER 2;" 2 ";AT 3,16; PAPER 3;" 3 " 880 IF ln=19 THEN GO TO 3980 890 PRINT AT 20,1; PAPER 6; INK 6;d$ 900 PAPER 6: INK 0: IF INT a1=a1 THEN PRINT AT ln-1,1;a1;".00" 910 PRINT AT ln-1,1;a1 920 IF INT b1=b1 THEN PRINT AT ln-1,8;b1;".00" 930 PRINT AT ln-1,8;b1 940 PRINT AT ln-1,17;c1;AT ln-1,25;cid1 950 PAPER 1: INK 7: IF INT a=a THEN PRINT AT ln,1;a;".00" 960 PRINT AT ln,1;a 970 IF INT b=b THEN PRINT AT ln,8;b;".00" 980 PRINT AT ln,8;b 990 PRINT AT ln,17;c;AT ln,25;cid 1000 LET a1=a: LET b1=b: LET c1=c: LET cid1=cid 1010 LET ln=ln+1 1020 PRINT AT 20,1; PAPER 5; INK 0;c$: GO SUB 4730 1030 IF INKEY$="" THEN GO TO 1030 1040 IF INKEY$<>"" THEN LET a$=INKEY$ 1050 IF a$="1" THEN INK 7: GO TO 1120 1060 IF a$="2" THEN INK 7: GO TO 1150 1070 IF a$="3" THEN INK 7: GO TO 1180 1080 IF a$="c" OR a$="C" THEN COPY : GO TO 1000 1090 IF a$="m" OR a$="M" THEN LET e(1)=a: LET e(2)=b: LET e(3)=c: LET E(4)=cid: GO TO menu 1100 IF a$="v" OR a$="V" THEN GO TO 3980 1110 GO TO 1000 1120 PRINT AT 20,1; PAPER 6;d$ 1130 FLASH 1: PRINT AT 3,1; PAPER 1;" 1 ": FLASH 0 1140 INPUT "ENTER THE BORE DIA. ";a: GO TO 860 1150 PRINT AT 20,1; PAPER 6;d$ 1160 FLASH 1: PRINT AT 3,8; PAPER 2;" 2 ": FLASH 0 1170 INPUT "ENTER STROKE LENGTH ";b: GO TO 860 1180 PRINT AT 20,1; PAPER 6;d$ 1190 FLASH 1: PRINT AT 3,16; PAPER 3;" 3 ": FLASH 0 1200 INPUT "HOW MANY CYLINDERS? ";c: GO TO 860 1210 IF E(1)<>0 THEN GO SUB 770 1220 IF E(1)=0 THEN GO TO 1260 1230 IF INKEY$="" THEN GO TO 1230 1240 IF INKEY$="c" THEN GO TO 950 1250 IF INKEY$<>"c" AND INKEY$<>"n" THEN GO TO 1230 1260 PRINT AT 20,1; PAPER 6;D$: INPUT "ENTER THE BORE DIA. ";a 1270 PAPER 1: INK 7: IF INT a=a THEN PRINT AT ln,1;a;".00" 1280 PRINT AT ln,1;a 1290 INPUT "ENTER STROKE LENGTH ";b 1300 IF INT b=b THEN PRINT AT ln,8;b;".00" 1310 PRINT AT ln,8;b 1320 INPUT "HOW MANY CYLINDERS? ";c: PRINT AT ln,17;c 1330 LET cid=INT (FN s(a,b)*c)+1 1340 GO TO 950 1350 POKE 23658,0: GO SUB 5530: ON ERR GO TO 1350 1360 LET ln=7 1370 DEF FN p(a,b)=1-(a/b) 1380 DEF FN f(c,d)=c+(d*c) 1390 BORDER 4: PAPER 6: INK 0: CLS 1400 GO SUB 1790 1410 PRINT AT 1,7; PAPER 5;"RATING SPRING CUTS" 1420 PRINT AT 3,1;q$(1);" LENGTH";AT 3,18;q$(1);" RATE" 1430 PRINT AT 5,1;q$(2);AT 5,9;q$(3);AT 5,17;q$(2);AT 5,25;q$(3) 1440 GO TO 1830 1450 LET per=FN p(wla,wlb) 1460 LET sp=FN f(ee,per) 1470 IF ln=19 THEN GO TO 1940 1480 PAPER 6: INK 0 1490 PRINT AT ln-1,1;wlb1;AT ln-1,9;wla1;AT ln-1,17;e1;AT ln-1,25;INT sp1 1500 PAPER 6: INK 0: PRINT AT 3,1;q$(1);" LENGTH";AT 3,18;q$(1);" RATE" 1510 PRINT AT 5,1;q$(2);AT 5,9;q$(3);AT 5,17;q$(2);AT 5,25;q$(3) 1520 PAPER 1: INK 7 1530 PRINT AT ln,1;wlb;AT ln,9;wla;AT ln,17;ee;AT ln,25;INT sp 1540 LET wlb1=wlb: LET wla1=wla: LET e1=ee: LET sp1=sp 1550 LET ln=ln+1 1560 PRINT AT 20,1; PAPER 5; INK 0;" CHANGE LENGTH OR RATE (L/R)? ": GO SUB 4730 1570 IF INKEY$="" THEN GO TO 1570 1580 IF INKEY$<>"" THEN LET a$=INKEY$ 1590 IF a$="C" OR a$="c" THEN COPY : GO TO 1560 1600 IF a$="L" OR a$="l" THEN RANDOMIZE USR 2217: GO TO 1650 1610 IF a$="R" OR a$="r" THEN RANDOMIZE USR 2217: GO TO 1760 1620 IF a$="V" OR a$="v" THEN GO TO 1940 1630 IF a$="M" OR a$="m" THEN LET s(1)=wlb: LET s(2)=wla: LET s(3)=ee: LET s(4)=sp: GO TO menu 1640 GO TO 1560 1650 PRINT AT 3,1; PAPER 2; INK 7;q$(1);" LENGTH" 1660 PRINT AT 20,1; PAPER 5; INK 0;" BEFORE OR AFTER CUT (B/A)? " 1670 IF INKEY$="" THEN GO TO 1670 1680 IF INKEY$<>"" THEN LET x$=INKEY$ 1690 IF x$="B" OR x$="b" THEN GO TO 1720 1700 IF x$="A" OR x$="a" THEN GO TO 1740 1710 GO TO 1650 1720 FLASH 1: PRINT AT 5,1; PAPER 1; INK 7;q$(2): FLASH 0 1730 INPUT "LENGTH BEFORE CUTTING? ";wlb: GO TO 1450 1740 FLASH 1: PRINT AT 5,9; PAPER 1; INK 7;q$(3): FLASH 0 1750 INPUT "LENGTH AFTER CUTTING? ";wla: GO TO 1450 1760 PRINT AT 3,18; PAPER 2; INK 7;q$(1);" RATE" 1770 FLASH 1: PRINT AT 5,17; PAPER 1; INK 7;q$(2): FLASH 0: PRINT AT 20,1; PAPER 6;d$ 1780 INPUT "RATE BEFORE CUTTING? ";ee: GO TO 1450 1790 INK 0: PLOT 0,0: DRAW 0,175: DRAW 255,0: DRAW 0,-175: DRAW -255,0 1800 PLOT 0,155: DRAW 255,0: PLOT 0,140: DRAW 255,0: PLOT 0,123: DRAW 255,0: PLOT 0,23: DRAW 255,0 1810 PLOT 63,140: DRAW 0,-117: PLOT 127,155: DRAW 0,-132: PLOT 192,140: DRAW 0,-117 1820 RETURN 1830 IF S(1)<>0 THEN GO SUB 770 1840 IF S(1)=0 THEN GO TO 1880 1850 IF INKEY$="" THEN GO TO 1850 1860 IF INKEY$="c" THEN GO TO 1500 1870 IF INKEY$<>"c" AND INKEY$<>"n" THEN GO TO 1850 1880 PRINT AT 20,1; PAPER 6;d$: PAPER 1: INK 7: INPUT "LENGTH BEFORE CUTTING? ";wlb: PRINT AT ln,1;wlb 1890 INPUT "LENGTH AFTER CUTTING? ";wla: PRINT AT ln,9;wla 1900 INPUT "RATE BEFORE CUTTING? ";ee: PRINT AT ln,17;ee 1910 LET per=FN p(wla,wlb) 1920 LET sp=FN f(ee,per) 1930 PRINT AT ln,25;INT sp: GO TO 1500 1940 PAPER 6: PRINT AT 7,0: LET cl=USR 65054: LET ln=7: GO TO 1500 1950 GO SUB 5530: ON ERR GO TO 1950: POKE 23658,0: DEF FN e(b,c,d)=(b+c)/d 1960 PAPER 6: INK 0: BORDER 4: LET ln=7: CLS 1970 GO SUB 2500 1980 PRINT AT 1,1; PAPER 5;"OCTANE RATINGS OF MIXED FUELS" 1990 PRINT AT 3,3;"FUEL A";AT 3,14;"FUEL B";AT 4,23;"COMBINED" 2000 PRINT AT 5,1;"GAL.";AT 5,7;"OCT.";AT 5,12;"GAL.";AT 5,18;"OCT.";AT 5,24;"OCTANE" 2010 GO TO 2390 2020 PAPER 6: INK 0: PRINT AT 3,3;"FUEL A";AT 3,14;"FUEL B" 2030 LET oca=ga*oa: LET ocb=gb*ob: LET tg=ga+gb: LET noc=FN e(oca,ocb,tg): LET noc=INT (noc*100+.5)/100 2040 PRINT AT 5,1;"GAL.";AT 5,7;"OCT.";AT 5,12;"GAL.";AT 5,18;"OCT." 2050 IF ln=19 THEN GO TO 2530 2060 PAPER 6: INK 0: PRINT AT ln-1,1;ga1;AT ln-1,7;oa1;AT ln-1,12;gb1;AT ln-1,18;ob1;AT ln-1,25;noc1 2070 PAPER 1: INK 7: PRINT AT ln,1;ga;AT ln,7;oa;AT ln,12;gb;AT ln,18;ob;AT ln,25;noc 2080 LET ln=ln+1 2090 LET ga1=ga: LET oa1=oa: LET gb1=gb: LET ob1=ob: LET noc1=noc 2100 PRINT AT 20,1; PAPER 5; INK 0;" Change Which Fuel? (a/b) ": GO SUB 4730 2110 IF INKEY$="" THEN GO TO 2110 2120 IF INKEY$<>"" THEN LET a$=INKEY$ 2130 IF a$="B" OR a$="b" THEN RANDOMIZE USR 2217: GO TO 2290 2140 IF a$="A" OR a$="a" THEN RANDOMIZE USR 2217: GO TO 2190 2150 IF a$="M" OR a$="m" THEN LET o(1)=Ga: LET o(2)=oA: LET o(3)=gB: LET o(4)=Ob: LET o(5)=noc: GO TO menu 2160 IF a$="v" OR a$="V" THEN GO TO 2530 2170 IF a$="c" OR a$="C" THEN COPY : GO TO 2530 2180 GO TO 2100 2190 PRINT AT 3,3; PAPER 2; INK 7;"FUEL A": PRINT AT 20,1; PAPER 5; INK 0;g$ 2200 IF INKEY$="" THEN GO TO 2200 2210 IF INKEY$<>"" THEN LET b$=INKEY$ 2220 IF b$="O" OR b$="o" THEN GO TO 2270 2230 IF b$="G" OR b$="g" THEN GO TO 2250 2240 GO TO 2190 2250 FLASH 1: PRINT AT 5,1; PAPER 1; INK 7;"GAL.": FLASH 0: PRINT AT 20,1; PAPER 6;d$ 2260 INPUT "Gallons of Fuel -A- ";ga: GO TO 2020 2270 FLASH 1: PRINT AT 5,7; PAPER 1; INK 7;"OCT.": FLASH 0: PRINT AT 20,1; PAPER 6;d$ 2280 INPUT "Octane Rating of Fuel -A- ";oa: GO TO 2020 2290 PRINT AT 3,14; PAPER 2; INK 7;"FUEL B": PRINT AT 20,1; PAPER 5; INK 0;g$ 2300 IF INKEY$="" THEN GO TO 2300 2310 IF INKEY$<>"" THEN LET b$=INKEY$ 2320 IF b$="G" OR b$="g" THEN GO TO 2350 2330 IF b$="O" OR b$="o" THEN GO TO 2370 2340 GO TO 2290 2350 FLASH 1: PRINT AT 5,12; PAPER 1; INK 7;"GAL.": FLASH 0: PRINT AT 20,1; PAPER 6;d$ 2360 INPUT "Gallons of Fuel -B- ";gb: GO TO 2020 2370 FLASH 1: PRINT AT 5,18; PAPER 1; INK 7;"OCT.": FLASH 0: PRINT AT 20,1; PAPER 6;d$ 2380 INPUT "Octane Rating of Fuel -B- ";ob: GO TO 2020 2390 IF o(1)<>0 THEN GO SUB 770 2400 IF o(1)=0 THEN GO TO 2440 2410 IF INKEY$="" THEN GO TO 2410 2420 IF INKEY$="c" THEN GO TO 2070 2430 IF INKEY$<>"c" AND INKEY$<>"n" THEN GO TO 2410 2440 PRINT AT 20,1; PAPER 6;d$: INPUT "Gallons of Fuel -A- ";ga: PAPER 1: INK 7: PRINT AT ln,1;ga 2450 INPUT "Octane of Fuel -A- ";oa: PRINT AT ln,7;oa 2460 INPUT "Gallons of Fuel -B- ";gb: PRINT AT ln,12;gb 2470 INPUT "Octane of Fuel -B- ";ob: PRINT AT ln,18;ob 2480 LET oca=ga*oa: LET ocb=gb*ob: LET tg=ga+gb: LET noc=FN e(oca,ocb,tg): LET noc=INT (noc*100+.5)/100 2490 PRINT AT ln,25;noc: GO TO 2080 2500 INK 0: PLOT 0,0: DRAW 0,175: DRAW 255,0: DRAW 0,-175: DRAW -255,0 2510 PLOT 0,155: DRAW 255,0: PLOT 0,140: DRAW 179,0: PLOT 0,123: DRAW 255,0: PLOT 0,23: DRAW 255,0 2520 PLOT 46,140: DRAW 0,-117: PLOT 90,155: DRAW 0,-132: PLOT 133,140: DRAW 0,-117: PLOT 179,155: DRAW 0,-132: RETURN 2530 PAPER 6: PRINT AT 7,0: LET y=USR 64849: LET ln=7: GO TO 2070 2540 GO SUB 5530: ON ERR GO TO 2540: BORDER 4: PAPER 6: INK 0: CLS : POKE 23658,0 2550 DEF FN h(a,b)=a/b 2560 GO SUB 3000 2570 LET ln=7 2580 PRINT AT 1,6; PAPER 5;"WEIGHT DISTRIBUTION" 2590 PRINT AT 3,1; PAPER 1;" ";AT 3,9; PAPER 2;" ";AT 3,17; PAPER 3;" ";AT 3,25; PAPER 4;" " 2600 PRINT AT 4,1;"TOTAL";AT 4,9;"FRONT";AT 4,17;"FRONT";AT 4,25;"REAR" 2610 PRINT AT 5,1;"WEIGHT";AT 5,9;"WEIGHT";AT 5,17;"BIAS";AT 5,25;"BIAS" 2620 GO TO 2840 2630 LET front=FN h(few,vw)*100: LET rear=100-front: LET front =INT front: LET rear=INT rear 2640 IF front+rear<>100 THEN LET front=front+(100-(front+rear)) 2650 LET ln=ln-1: PAPER 6: INK 0 2660 PRINT AT 4,1;"TOTAL";AT 4,9;"FRONT" 2670 PRINT AT 5,1;"WEIGHT";AT 5,9;"WEIGHT" 2680 IF ln=18 THEN GO TO 3040 2690 PAPER 6: INK 0 2700 PRINT AT ln,2;vwb;AT ln,10;fewb;AT ln,17;frontb;" %";AT ln,25;rearb;" %" 2710 LET ln=ln+1 2720 LET vwb=vw: LET fewb=few: LET frontb=front: LET rearb=rear 2730 PRINT AT 20,1; PAPER 5; INK 0;" CHANGE TOTAL or FRONT (T/F) ": GO SUB 4730 2740 IF INKEY$="" THEN GO TO 2740 2750 IF INKEY$<>"" THEN LET a$=INKEY$ 2760 IF a$="F" OR a$="f" THEN FLASH 1: PRINT AT 4,9; PAPER 2; INK 7;"FRONT";AT 5,9; PAPER 2; INK 7;"WEIGHT": FLASH 0: GO TO 2830 2770 IF a$="M" OR a$="m" THEN LET w(1)=vw: LET w(2)=few: LET w(3)=front: LET w(4)=rear: GO TO menu 2780 IF a$="c" OR a$="C" THEN COPY : GO TO 2720 2790 IF a$="v" OR a$="V" THEN GO TO 3040 2800 IF a$="T" OR a$="t" THEN FLASH 1: PRINT AT 4,1; PAPER 2; INK 7;"TOTAL";AT 5,1; PAPER 2; INK 7;"WEIGHT": FLASH 0: GO TO 2820 2810 GO TO 2720 2820 PRINT AT 20,1; PAPER 6;d$: INPUT "TOTAL VEHICLE WEIGHT ";vw: GO TO 2940 2830 PRINT AT 20,1; PAPER 6;d$: INPUT "FRONT END WEIGHT ";few: GO TO 2940 2840 IF w(1)<>0 THEN GO SUB 770 2850 IF w(1)=0 THEN GO TO 2890 2860 IF INKEY$="" THEN GO TO 2860 2870 IF INKEY$="c" THEN GO TO 2930 2880 IF INKEY$<>"c" AND INKEY$<>"n" THEN GO TO 2860 2890 PRINT AT 20,1; PAPER 6;d$: PAPER 1: INK 7: INPUT "TOTAL VEHICLE WEIGHT ";vw: PRINT AT ln,2;vw 2900 INPUT "FRONT END WEIGHT ";few: PRINT AT ln,10;few 2910 LET front=FN h(few,vw)*100: LET rear=100-front: LET front =INT front: LET rear=INT rear 2920 IF front+rear<>100 THEN LET front=front+(100-(front+rear)) 2930 PAPER 1: INK 7: PRINT AT ln,2;vw;AT ln,10;few;AT ln,17;front;" %";AT ln,25;rear;" %": GO TO 2720 2940 PAPER 1: INK 7: LET ln=ln+1 2950 IF ln=19 THEN LET ln=7: GO TO 3040 2960 LET front=FN h(few,vw)*100: LET rear=100-front: LET front =INT front: LET rear=INT rear 2970 IF front+rear<>100 THEN LET front=front+(100-(front+rear)) 2980 PRINT AT ln,2;vw;AT ln,10;few;AT ln,17;front;" %";AT ln,25;rear;" %" 2990 GO TO 2650 3000 INK 0: PLOT 0,0: DRAW 0,175: DRAW 255,0: DRAW 0,-175: DRAW -255,0 3010 PLOT 0,155: DRAW 255,0: PLOT 0,123: DRAW 255,0: PLOT 0,23: DRAW 255,0 3020 PLOT 63,155: DRAW 0,-132: PLOT 127,155: DRAW 0,-132: PLOT 187,155: DRAW 0,-132 3030 RETURN 3040 PAPER 6: PRINT AT 7,0: LET cl=USR 65054: LET ln=7 3050 IF a$="v" OR a$="V" THEN GO TO 2930 3060 GO TO 2730 3070 GO SUB 5540: ON ERR GO TO 3070: BORDER 0: PAPER 1: INK 1: CLS 3080 PRINT " SUSPENSION TUNING" 3090 PLOT 56,167: DRAW 137,0: PLOT 56,166: DRAW 137,0 3100 PRINT '" COMP.";TAB 11;"INCREASE";TAB 23;"INCREASE" 3110 PRINT " ADJUST";TAB 11;"UNDERSTEER";TAB 23;"OVERSTEER" 3120 PLOT 8,143: DRAW 48,0: PLOT 88,143: DRAW 80,0: PLOT 184,143: DRAW 70,0 3130 PRINT '"(F) Camber";TAB 13;"More Pos";TAB 24;"More Neg" 3140 PLOT 8,142: DRAW 48,0: PLOT 88,142: DRAW 80,0: PLOT 184,142: DRAW 70,0 3150 PRINT "(R) Camber";TAB 13;"More Neg";TAB 24;"More Pos" 3160 PRINT "(F) Springs";TAB 13;"Stiffer";TAB 24;"Softer" 3170 PRINT "(R) Springs";TAB 13;"Softer";TAB 24;"Stiffer" 3180 PRINT "(F) Swaybar";TAB 13;"Thicker";TAB 24;"Thinner" 3190 PRINT "(R) Swaybar";TAB 13;"Thinner";TAB 24;"Thicker" 3200 PRINT "Weight Dist";TAB 13;"More (F)";TAB 24;"More (R)" 3210 PRINT '"-TIRES-" 3220 PRINT '"(F) PSI";TAB 13;"Lower";TAB 24;"Higher" 3230 PRINT "(R) PSI";TAB 13;"Higher";TAB 24;"Lower" 3240 PRINT "(F) Section";TAB 13;"Smaller";TAB 24;"Larger" 3250 PRINT "(R) Section";TAB 13;"Larger";TAB 24;"Smaller" 3260 PRINT AT 20,1;e$ 3270 GO SUB 3330 3280 IF INKEY$<>"" THEN GO TO 3280 3290 IF INKEY$="" THEN GO TO 3290 3300 IF INKEY$="c" OR INKEY$="C" THEN COPY : GO SUB 3280 3310 IF INKEY$="m" OR INKEY$="M" THEN GO TO 3340 3320 GO TO 3280 3330 LET cl=USR 65243: RETURN 3340 FOR N=0 TO 21: PRINT AT n,0; INK 2;" ": BEEP .002,1: PRINT AT N,0,,: NEXT n: PRINT AT 2,0: GO TO menu 3350 GO SUB 5530: ON ERR GO TO 3350: POKE 23658,0: IF g(1)=0 THEN GO TO 4070 3360 DEF FN m(q,v,u)=(q*v*3)/u 3370 DEF FN d(a,b,c)=(a*b)/(c*3) 3380 DEF FN r(h,i,j)=(h*i)/(j*3) 3390 DEF FN g(n,o,p)=(n*o*3)/p 3400 LET ln=7 3410 BORDER 4: PAPER 6: INK 0: CLS 3420 LET exit=3 3430 GO SUB 4180 3440 PRINT AT 1,3; PAPER 5; INK 0;"GEARING VS. MILES PER HOUR" 3450 PAPER 6: INK 0: PRINT AT 4,16;"TIRE";AT 4,24;"GEAR" 3460 PRINT AT 5,1;"MPH";AT 5,8;"RPM";AT 5,16;"DIA.";AT 5,24;"RATIO" 3470 INK 7: PRINT AT 3,1; PAPER 1;" 1 ";AT 3,8; PAPER 2;" 2 ";AT 3,16; PAPER 3;" bc ";AT 3,24; PAPER 4;" hi " 3480 IF p$<>"w" THEN GO SUB 770 3490 IF p$="w" THEN GO TO 3570 3500 IF INKEY$="" THEN GO TO 3500 3510 IF INKEY$="n" THEN GO TO 4070 3520 IF INKEY$="c" THEN LET p$=INKEY$: LET ln=7: GO TO 3570 3530 IF INKEY$<>"c" AND INKEY$<>"n" THEN GO TO 3500 3540 IF ln>=19 THEN GO TO 3980 3550 LET p$="n" 3560 IF p$<>"c" OR p$="n" THEN PAPER 6: INK 0: PRINT AT ln-1,1;mph1;AT ln-1,8;rpm1*1000;AT ln-1,16;td1;AT ln-1,24;gr1;":1" 3570 PAPER 1: INK 7: PRINT AT ln,1;mph;AT ln,8;rpm*1000;AT ln,16;td;AT ln,24;gr;":1" 3580 LET mph1=mph: LET rpm1=rpm: LET td1=td: LET gr1=gr 3590 PAPER 6: INK 0: PRINT AT 4,16;"TIRE";AT 4,24;"GEAR" 3600 PRINT AT 5,1;"MPH";AT 5,8;"RPM";AT 5,16;"DIA.";AT 5,24;"RATIO" 3610 INK 7: PRINT AT 3,1; PAPER 1;" 1 ";AT 3,8; PAPER 2;" 2 ";AT 3,16; PAPER 3;" bc ";AT 3,24; PAPER 4;" hi " 3620 LET ln=ln+1 3630 PRINT AT 20,1; PAPER 5; INK 0;c$: GO SUB 4730 3640 IF INKEY$="" THEN GO TO 3640 3650 IF INKEY$<>"" THEN LET a$=INKEY$ 3660 IF a$="1" THEN RANDOMIZE USR 2217: GO TO 3740 3670 IF a$="2" THEN RANDOMIZE USR 2217: GO TO 3800 3680 IF a$="3" THEN RANDOMIZE USR 2217: GO TO 3860 3690 IF a$="4" THEN RANDOMIZE USR 2217: GO TO 3920 3700 IF a$="c" OR a$="C" THEN COPY : GO TO 3630 3710 IF a$="v" OR a$="V" THEN GO TO 3980 3720 IF a$="m" OR a$="M" THEN LET G(1)=mph: LET G(2)=rpm: LET G(3)=td: LET G(4)=gr: GO TO menu 3730 GO TO 3630 3740 PRINT AT 20,1; PAPER 6;d$: FLASH 1: PRINT AT 5,1; PAPER 1;"MPH": FLASH 0 3750 PRINT AT 20,1; PAPER 5; INK 0;i$ 3760 IF INKEY$<>"" THEN GO TO 3760 3765 IF INKEY$="" THEN GO TO 3765 3770 IF CODE INKEY$<50 OR CODE INKEY$>52 THEN GO TO 3760 3780 LET x=CODE INKEY$-48: GO SUB 4220 3790 INPUT "ENTER NEW MPH ";mph: GO TO x+4030 3800 PRINT AT 20,1; PAPER 6;d$: FLASH 1: PRINT AT 5,8; PAPER 2;"RPM": FLASH 0 3810 PRINT AT 20,1; PAPER 5; INK 0;i$ 3820 IF INKEY$="" OR INKEY$="2" THEN GO TO 3820 3830 IF CODE INKEY$<49 OR CODE INKEY$>52 THEN GO TO 3820 3840 IF INKEY$<>"" THEN LET x=CODE INKEY$-48: GO SUB 4220 3850 INPUT "ENTER NEW RPM ";rpm: LET rpm=rpm/1000: GO TO x+4030 3860 PRINT AT 20,1; PAPER 6;d$: FLASH 1: PRINT AT 4,16; PAPER 3;"TIRE";AT 5,16; PAPER 3;"DIA.": FLASH 0 3870 PRINT AT 20,1; PAPER 5; INK 0;i$ 3880 IF INKEY$="" OR INKEY$="3" THEN GO TO 3880 3890 IF CODE INKEY$<49 OR CODE INKEY$>52 THEN GO TO 3880 3900 IF INKEY$<>"" THEN LET x=CODE INKEY$-48: GO SUB 4220 3910 INPUT "ENTER NEW TIRE DIAMETER ";td: GO TO x+4030 3920 PRINT AT 20,1; PAPER 6;d$: FLASH 1: PRINT AT 4,24; PAPER 4;"GEAR";AT 5,24; PAPER 4;"RATIO": FLASH 0 3930 PRINT AT 20,1; PAPER 5; INK 0;i$ 3940 IF INKEY$="" OR INKEY$="4" THEN GO TO 3940 3950 IF CODE INKEY$<49 OR CODE INKEY$>51 THEN GO TO 3950 3960 IF INKEY$<>"" THEN LET x=CODE INKEY$-48: GO SUB 4220 3970 INPUT "ENTER NEW GEAR RATIO ";gr: GO TO x+4030 3980 PAPER 6: PRINT AT 7,0;: LET cl=USR 64660 3990 LET ln=7: IF exit=1 THEN GO TO 630 4000 IF exit=2 THEN GO TO 950 4010 IF exit=3 THEN GO TO 3570 4020 RETURN 4031 LET mph=INT FN m(rpm,td,gr): GO TO 3540 4032 LET rpm=FN r(mph,gr,td): LET rpm=INT (rpm*100+.5)/100: GO TO 3540 4033 LET td=FN d(mph,gr,rpm): LET td=INT ((td*100)+.5)/100: GO TO 3540 4034 LET gr=FN g(rpm,td,mph): LET gr=INT ((gr*100)+.5)/100: GO TO 3540 4070 GO SUB 5540: ON ERR GO TO 4070: BORDER 1: PAPER 2: INK 7: CLS : PRINT ''''" To start this section you willneed to enter 2 variables."''"The Loaded Tire Diameter and theFinal Gear Ratio." 4080 LET p$="w": LET rpm=0: LET mph=0 4090 PRINT ''" TIRE DIAMETER" 4100 PRINT '" GEAR RATIO" 4110 INPUT "ENTER THE TIRE DIAMETER ";td: PRINT AT 11,20;td;" in." 4120 INPUT "ENTER THE FINAL GEAR RATIO ";gr: PRINT AT 13,21;gr;":1" 4130 PRINT AT 20,0;"IS THIS CORRECT (Y/N)": PAUSE 0 4140 IF INKEY$="" THEN GO TO 4140 4150 IF INKEY$="y" OR INKEY$="Y" THEN LET mph1=mph: LET rpm1=rpm: LET td1=td: LET gr1=gr: GO SUB 5530: GO TO 3360 4160 IF INKEY$="N" OR INKEY$="n" THEN PRINT AT 11,20;" ";AT 13,20;" ";AT 20,0;" ": GO TO 4110 4170 GO TO 4130 4180 INK 0: PLOT 0,0: DRAW 0,175: DRAW 255,0: DRAW 0,-175: DRAW -255,0 4190 PLOT 0,155: DRAW 255,0: PLOT 0,123: DRAW 255,0: PLOT 0,23: DRAW 255,0 4200 PLOT 48,155: DRAW 0,-132: PLOT 110,155: DRAW 0,-132: PLOT 177,155: DRAW 0,-132 4210 RETURN 4220 PRINT AT 20,1; PAPER 6;d$ 4230 IF x=1 THEN PRINT AT 3,1; PAPER 6; INK 0;" 1 ";AT 5,1; PAPER X; INK 7;"MPH" 4240 IF x=2 THEN PRINT AT 3,8; PAPER 6; INK 0;" 2 ";AT 5,8; PAPER x; INK 7;"RPM" 4250 IF x=3 THEN PRINT AT 3,16; PAPER 6; INK 0;" bc ";AT 4,16; PAPER x; INK 7;"TIRE";AT 5,16;"DIA." 4260 IF x=4 THEN PRINT AT 3,24; PAPER 6; INK 0;" hi ";AT 4,24; PAPER X; INK 7;"GEAR";AT 5,24;"RATIO" 4270 RETURN 4280 GO SUB 5540: ON ERR GO TO 4280: RESTORE 4660: CLS 4290 PRINT AT 1,2; PAPER 3; INK 2;":'''''''''''''''''''''''''''''''''''''''''''''''''''''':" 4300 PRINT AT 2,2; PAPER 3; INK 2;": "; PAPER 4; INK 0;"BOLT TORQUE SPECIFICATIONS"; PAPER 3; INK 2;" :" 4310 PRINT AT 3,2; PAPER 3; INK 2;":......................................................:" 4320 PRINT AT 5,7; PAPER 3; INK 2;":'''''''''''''''''''''''''''''''''':" 4330 PRINT AT 6,7; PAPER 3; INK 2;": "; PAPER 4; INK 0;"TENSILE STRENGTH"; PAPER 3; INK 2;" :" 4340 PRINT AT 7,7; PAPER 3; INK 2;":..................................:" 4350 PRINT '"(5) GRADE 5 -- 120,000 psi jk" 4360 PRINT " THREE SLASH MARKS -- lm" 4370 PRINT ''"(7) GRADE 7 -- 133,000 psi rs" 4380 PRINT " FIVE SLASH MARKS -- tu" 4390 PRINT ''"(8) GRADE 8 -- 150,000 psi no" 4400 PRINT " SIX SLASH MARKS -- pq" 4410 PRINT AT 20,1;e$ 4420 PRINT #1;" MAKE SELECTION (5,7,8)" 4430 IF INKEY$="" THEN GO TO 4430 4440 IF INKEY$="M" OR INKEY$="m" THEN GO TO menu 4450 IF INKEY$="C" OR INKEY$="c" THEN COPY : GO TO 4430 4460 IF INKEY$<>"" THEN LET d=CODE INKEY$-48 4470 IF d<>5 AND d<>7 AND d<>8 THEN GO TO 4430 4480 GO SUB 5530: CLS : PRINT " DIA.";TAB 7;"THREADS";TAB 18;"DRY";TAB 25;"OILED" 4490 PLOT 0,167: DRAW 255,0 4500 PRINT 4510 FOR x=1 TO 10: READ a$: READ aa: READ bb: PRINT TAB 1;a$;TAB 9;aa'TAB 1;a$;TAB 9;bb: NEXT x 4520 IF d=5 THEN RESTORE 4670 4530 IF d=7 THEN RESTORE 4690 4540 IF d=8 THEN RESTORE 4710 4550 FOR y=2 TO 21: READ aa: READ bb: PRINT AT y,18;aa;TAB 26;bb: NEXT y 4560 IF D=5 THEN PRINT AT 2,29;"jk";AT 3,29;"lm" 4570 IF D=7 THEN PRINT AT 2,29;"rs";AT 3,29;"tu" 4580 IF D=8 THEN PRINT AT 2,29;"no";AT 3,29;"pq" 4590 PLOT 50,175: DRAW 0,-175: PLOT 122,175: DRAW 0,-175: PLOT 186,175: DRAW 0,-175 4600 READ a$: PRINT #1;a$ 4610 PLOT 0,0: DRAW 0,175: DRAW 255,0: DRAW 0,-175: DRAW -255,0 4620 IF INKEY$="" THEN GO TO 4620 4630 IF INKEY$="M" OR INKEY$="m" THEN GO TO 4280 4640 IF INKEY$="C" OR INKEY$="c" THEN COPY : GO TO 4280 4650 GO TO 4620 4660 DATA "1/4",20,28,"5/16",18,24,"3/8",16,24,"7/16",14,20,"1/2",13,20,"9/16",12,18,"5/8",11,18,"3/4",10,16,"7/8",9,14,"1",8,12 4670 DATA 8,6,10,7,17,13,19,14,30,23,35,25,50,35,55,40,75,55,90,65,110,80,120,90,150,110,180,130,260,200,300,220,430,320,470,360,640,480,710,530 4680 DATA " TORQUE SPECS OF GRADE 5 BOLTS" 4690 DATA 10,8,12,9,21,16,24,18,40,30,45,30,60,45,70,50,95,70,100,80,135,100,150,110,190,140,210,160,320,240,360,280,520,400,580,440,800,600,860,666 4700 DATA " TORQUE SPECS OF GRADE 7 BOLTS" 4710 DATA 12,9,14,10,25,18,25,20,45,35,50,35,70,55,80,60,110,80,120,90,150,110,170,130,220,170,240,180,380,280,420,320,600,460,600,500,900,680,1000,740 4720 DATA " TORQUE SPECS OF GRADE 8 BOLTS" 4730 RANDOMIZE USR 2217: PRINT #1;" ""V""-CLEAR ""M""-MENU ""C""-COPY": RETURN 4740 CLOSE #2: REM PRINT TOTALS 4750 GO SUB 5530: ON ERR GO TO 4740 4760 LET t$=" PRESS ANY KEY TO CONTINUE" 4770 PRINT AT 21,0; FLASH 1; PAPER 2; INK 7;"OUTPUT TO DISPLAY/PRINTER (D/P) ": FLASH 0 4780 IF INKEY$<>"" THEN GO TO 4780 4790 IF INKEY$="" THEN GO TO 4790 4800 LET H$=INKEY$ 4810 IF H$="P" THEN RANDOMIZE USR 2217: PRINT AT 21,0; FLASH 1; PAPER 2; INK 7;"**** PRINTING **** PRINTING ****"; FLASH 0: OPEN #2,"P": GO TO 4850 4820 IF H$="D" THEN CLS : BORDER 2: GO TO 4840 4830 IF H$<>"D" OR H$<>"P" THEN GO TO 4780 4840 PAPER 2: INK 7: CLS 4850 IF E(1)<>0 THEN GO SUB 4920 4860 IF C(1)<>0 THEN GO SUB 5030 4870 IF O(1)<>0 THEN GO SUB 5130 4880 IF G(1)<>0 THEN GO SUB 5230 4890 IF S(1)<>0 THEN GO SUB 5330 4900 IF W(1)<>0 THEN GO SUB 5430 4910 CLOSE #2: GO TO MENU 4920 PRINT 'TAB 5;"[```````````````````\" 4930 PRINT TAB 5;"*ENGINE DISPLACEMENT{" 4940 PRINT TAB 5;"]___________________^" 4950 PRINT "[`````@````````@```````@```````\" 4960 PRINT "*BORE # # NO.OF # CUBIC {" 4970 PRINT "*DIA. # STROKE # CYL. # INCHES{" 4980 PRINT "'`````<````````<```````<```````z" 4990 PRINT "*";E(1);TAB 6;"# ";E(2);TAB 15;"# ";e(3);TAB 23;"# ";e(4);TAB 31;"{" 5000 PRINT "]_____&________&_______&_______^" 5010 IF H$="D" AND C(1)=0 THEN GO SUB 5110 5020 RETURN 5030 PRINT 'TAB 4;"[`````````````````````\" 5040 PRINT TAB 4;"*CARB CFM REQUIREMENTS{";TAB 4;"]_____________________^" 5050 PRINT "[`````@```````@````````@```````\" 5060 PRINT "* # MAX # STREET # STRIP {" 5070 PRINT "*CID # RPM # CARB # CARB {" 5080 PRINT "'`````<```````<````````<```````z" 5090 PRINT "*";C(1);TAB 6;"# ";C(2);TAB 14;"# ";C(3);TAB 23;"# ";C(4);TAB 31;"{" 5100 PRINT "]_____&_______&________&_______^" 5110 IF H$="D" THEN PRINT #1;T$: PAUSE 0: CLS : RETURN 5120 RETURN 5130 PRINT 'TAB 5;"[```````````````````\" 5140 PRINT TAB 5;"*FINAL OCTANE RATING{";TAB 5;"]___________________^" 5150 PRINT "[``````````@``````````@````````\";"* FUEL A # FUEL B # {" 5160 PRINT "'````@`````<````@`````$COMBINED{" 5170 PRINT "*GAL.# OCT.#GAL.# OCT.# OCTANE {" 5180 PRINT "'````<`````<````<`````<````````z" 5190 PRINT "*";o(1);TAB 5;"# ";o(2);TAB 11;"#";o(3);TAB 16;"# ";o(4);TAB 22;"# ";o(5);TAB 31;"{" 5200 PRINT "]____&_____&____&_____&________^" 5210 IF H$="D" AND G(1)=0 THEN GO SUB 5110 5220 RETURN 5230 PRINT 'TAB 7;"[```````````````\" 5240 PRINT TAB 7;"*GEARING VS. MPH{";TAB 7;"]_______________^" 5250 PRINT "[`````@``````@````````@````````\" 5260 PRINT "* # # TIRE # GEAR {" 5270 PRINT "* MPH # RPM # DIA. # RATIO {" 5280 PRINT "'`````<``````<````````<````````z" 5290 PRINT "* ";G(1);TAB 6;"# ";G(2)*1000;TAB 13;"# ";G(3);TAB 22;"# ";G(4);":1";TAB 31;"{" 5300 PRINT "]_____&______&________&________^" 5310 IF H$="D" THEN PRINT #1;T$: PAUSE 0: CLS : RETURN 5320 RETURN 5330 PRINT 'TAB 5;"[```````````````````\";TAB 5;"*COIL SPRING CUTTING{";TAB 5;"]___________________^" 5340 PRINT "[```````````````@``````````````\" 5350 PRINT "* SPRING LENGTH # SPRING RATE {" 5360 PRINT "'```````@```````<```````@``````z" 5370 PRINT "*BEFORE # AFTER #BEFORE # AFTER{" 5380 PRINT "'```````<```````<```````<``````z" 5390 PRINT "* ";s(1);TAB 8;"# ";s(2);TAB 16;"# ";s(3);TAB 24;"# ";INT s(4);TAB 31;"{" 5400 PRINT "]_______&_______&_______&______^" 5410 IF H$="D" AND W(1)=0 THEN GO SUB 5110 5420 RETURN 5430 PRINT 'TAB 6;"[```````````````````\";TAB 6;"*WEIGHT DISTRIBUTION{";TAB 6;"]___________________^" 5440 PRINT "[```````@```````@```````@``````\" 5450 PRINT "*TOTAL # FRONT # FRONT # REAR {" 5460 PRINT "*WEIGHT # WEIGHT# BIAS # BIAS {" 5470 PRINT "'```````<```````<```````<``````z" 5480 PRINT "* ";W(1);TAB 8;"# ";W(2);TAB 16;"# ";INT W(3);" %";TAB 24;"# ";INT W(4);" %";TAB 31;"{" 5490 PRINT "]_______&_______&_______&______^" 5500 IF H$="D" THEN PRINT #1;T$: PAUSE 0: RETURN 5510 RETURN 5520 LOAD "PERF"CODE : GO TO 10 5530 POKE 23606,255: POKE 23607,247: RETURN 5540 POKE 23606,160: POKE 23607,240: RETURN 5550 DIM C(4): DIM E(4): DIM S(4): DIM O(5): DIM W(4): DIM G(4): GO TO 10 5555 REM AUTO HIGH PERFORMANCE * 1985 BY DAVID A. HILL ALL RIGHTS RESERVED ``````````````````````