20 INPUT "Enter 'A' for Spring Wire or 'B' for Music (Piano) Wire", A$ 30 IF A$ = "B" THEN 70 40 G = 1.14E+07 50 LPRINT "Spring Wire" 60 GOTO 90 70 G = 1.2E+07 80 LPRINT "Music (Piano) Wire" 90 INPUT "Enter Force ", P 100 INPUT "Enter spring length, valve shut ", LVS 110 INPUT "ENTER VALVE LIFT ", VL 120 INPUT "Enter minumum internal diameter (inches) = ", MID 130 INPUT "Enter maximum external diameter (inches) = ", MAOD 133 PRINT "Enter 'A' if spring ends are closed and ground," 134 INPUT "or 'B' if spring ends are open and ground", B$ 135 CLS 140 LPRINT "Force (Pounds) ="; P 150 LPRINT "Spring length valve shut (inches) = "; LVS 160 LPRINT "Valve lift (Inches) = "; VL 164 LPRINT "Minimum Internal Diameter (Inches) = "; MID 166 LPRINT "Maximum External Diameter (Inches) = "; MAOD 167 PRINT "Spring ends are "; 168 IF B$ = "A" THEN PRINT "closed and ground" 169 IF B$ = "B" THEN PRINT "open and ground" 170 LPRINT 180 LPRINT "Active coils"; 190 LPRINT TAB(14); "I.D."; 200 LPRINT TAB(21); "O.D."; 205 LPRINT TAB(28); "C"; 210 LPRINT TAB(33); "Wire D"; 220 LPRINT TAB(41); "Max. S. Stress"; 230 LPRINT TAB(55); "Length"; 240 LPRINT TAB(63); "Rate"; 250 LPRINT TAB(70); "Pitch" 260 LPRINT TAB(5); "No."; 270 LPRINT TAB(14); "Inch"; 280 LPRINT TAB(21); "Inch"; 290 LPRINT TAB(34); "Inch"; 300 LPRINT TAB(46); "Psi"; 310 LPRINT TAB(54); "Inch"; 320 LPRINT TAB(60); "Lbs/Inch"; 330 LPRINT TAB(71); "CPI" 340 FOR N = 3 TO 10 350 FOR WD = .01 TO .035 STEP .002 360 FOR L = 3 * LVS TO LVS STEP -(LVS / 10) 370 SD = (G * WD ^ 4 * (L - LVS) / P / 8 / N) ^ (1 / 3) 380 IF SD + WD > MAOD THEN GOTO 610 390 C = SD / WD 400 IF C < 4 OR C > 12 THEN GOTO 610 410 IF SD - WD < MID THEN GOTO 610 420 K = (4 * C - 1) / (4 * C - 4) + .615 / C 422 IF B$ = "A" THEN GOTO 430 424 CL = (N + 1) * WD * 1.1 426 GOTO 440 430 CL = (N + 2) * WD * 1.1 440 IF CL > LVS - VL THEN GOTO 610 450 R = P / (L - LVS) 460 F = K * 8 * P * SD / 3.1416 / WD ^ 3 470 IF A$ = "A" THEN GOTO 510 480 IF F / 1000 > .006785 * (WD * 1000) ^ 2 - 1.02 * (WD * 1000) + 124.8 THEN GOTO 610 490 IF F / 1000 < (.006785 * (WD * 1000) ^ 2 - 1.02 * (WD * 1000) + 124.8) * .75 THEN GOTO 610 500 GOTO 530 510 IF F / 1000 > .002297 * (WD * 1000) ^ 2 - .4792 * (WD * 1000) + 86 THEN GOTO 610 520 IF F / 1000 < (.002297 * (WD * 1000) ^ 2 - .4792 * (WD * 1000) + 86) * .75 THEN GOTO 610 530 LPRINT TAB(5); N; 540 LPRINT TAB(13); INT((SD - WD) * 1000 + .5) / 1000; 550 LPRINT TAB(19); INT((SD + WD) * 1000 + .5) / 1000; 555 LPRINT TAB(25); INT(C * 10 + .5) / 10; 560 LPRINT TAB(35); INT(WD * 1000 + .5) / 1000; 570 LPRINT TAB(44); INT(F); 580 LPRINT TAB(54); INT(L * 1000 + .5) / 1000; 590 LPRINT TAB(63); INT(R * 10 + .5) / 10; 600 LPRINT TAB(70); INT((N + 1) / L * 100 + .5) / 100 610 NEXT L 620 NEXT WD 630 PRINT "."; 640 NEXT N 650 PRINT "Finished"