1 TROFF :GOTO 10 2 TROFF:GOTO 3009 10 DIM A(100),A0(100),A1(7),A2(7),A3(6),A4(6) 20 PRINT "DESIGN AND ORBIT A SPACE SHIP. TYPE NO. OF STAGES, UP TO 6. " 30 INPUT A5 40 PRINT "VERIFICATION, ";A5;" STAGES." 50 A6=A5+1 60 PRINT "ENTER ITERATION TIME IN SEC., AND ORBIT HEIGHT IN MILES" 70 PRINT ".1 SEC. IS OK AND .01 BETTER, BUT WITH MORE CPU TIME." 80 INPUT A7,A8 90 PRINT "VERIFICATION, ITERATION TIME ";A7;"SECONDS,ORBIT HEIGHT ";A8;" MILES" 100 PRINT "ENTER PAYLOAD WEIGHT IN POUNDS" 110 INPUT A2(A6) 120 A1(A6)=0 130 PRINT "VERIFICATION, PAYLOAD WEIGHT, "A2(A6)" POUNDS" 140 FOR A9=1 TO A5 150 B=A6-A9 160 B0=B+1 170 PRINT "ENTER STAGE ";B;"FUEL AND HULL WEIGHTS IN LBS. " 180 INPUT A1(B),A2(B) 190 PRINT "STAGE ";B;"FUEL ";A1(B);"LBS, HULL ";A2(B);"LBS " 200 A2(B)=A2(B)+A2(B0)+A1(B0) 210 B1=A2(B)+A1(B) 220 PRINT"ENTER STAGE ";B;"THRUST, AT LEAST ";B1;"LBS " 230 INPUT A3(B) 240 PRINT "STAGE ";B;"THRUST, ";A8(B);"LBS " 250 PRINT "ENTER SPECIFIC IMPULSE OF STAGE ";B;"FUEL/OXIDIZER. " 260 PRINT "THIS IS THE THRUST-TO-BURN RATIO. " 270 PRINT "FOR GASOLINE =250, PEROXIDE =300, LIQIUD HYDROGEN =500. " 280 INPUT A4(B) 290 PRINT "VERIFICATION, STAGE ";B;"SPECIFIC IMPULSE ";A4(B) 300 NEXT A9 310 B2=10 320 B3=B2*A7 330 B4=360 340 B5=B3/100 350 B6 = 5280 * .3048 360 B7=6.67E-11*5.983E+24 370 B8=ATN(1)/45 380 B9=90 390 C=1 400 C0=SQR(B7/9.80665) 410 C1=C0 420 C2=SQR(B7/(C0+B6*A8))/.3048 430 C3=0 440 C4=0 450 C5=0 460 C6=0 470 C7=0 480 C8=0 490 C9=0 500 D=0 510 D0=0 520 D1=0 530 D2=0 540 D3=0 550 PRINT "THE SHIP CAN SWIVEL ";B2;"DEG/SEC " 560 PRINT "EARTH'S GRAVITY IS 32.174 FT/SEC " 570 PRINT "FORWARD VELOCITY NEEDED FOR ORBIT ";C2;"FT/SEC " 580 D=D+1 590 D4=A2(D)/2.2046 600 D5=A3(D)/A4(D)/2.2046 610 D6=A1(D)/2.2046 620 D7=D6 630 D8=A3(D)/2.2046*9.80665 640 PRINT "IGNITION OF STAGE ";D;", ENTER THE STAGE NUMBER " 645 INPUT X1 650 GOTO 1090 660 PRINT "ENTER THROTTLE SETTING IN %, FROM 0 TO 100, " 670 PRINT "THRUST ANGLE IN DEG., FROM -";B4;" TO ";B4 680 PRINT "AND BURN TIME IN SECONDS. " 690 INPUT D9, E, E0 700 D9 = ABS(D9/100) 710 E1 = D9*D8 720 E2 = D9*D5*A7 730 E3 = E3/100 740 E4 = E0-(A7/100) 750 E5 = C5*C1 760 E6 = 0 770 IF E0 = 0 THEN 1180 780 IF C1=E3 THEN 850 830 E7=0 840 E8=0 850 IF ABS(E-B9)0 THEN 1030 1020 F1=E5/F4 1030 D7=E7 1040 C5=F1 1050 C8=F3 1060 C1=F4 1070 IF E6=A(D2) THEN 1130 1120 C9=A(D2) 1130 IF A(D2)>=0 THEN 1150 1140 A(D2)=0 1150 IF A(D2)<400000! THEN 1170 1160 D3=D3+1 1170 F5=A(D2)/5280 1180 F6=C8/.3048 1190 F7=F6*15/22 1200 F8=C5/.3048 1210 F9=F8*15/22 1220 A0(D2)=C7/B6 1230 G=100*D7/D6 1240 G0=D7/D5 1250 G1=B7/C1^2-C6^2/C1 1260 G2=D8/(D4+D7)/.3048 1270 G3=G2*15/22 1280 G4=G2-(G1/.3048) 1290 G5=G4*15/22 1300 G6=G1/.3048/G2 1310 G7=100*G6 1320 G8=90 1330 IF G6>=1 THEN 1350 1340 G8=ATN(G6/SQR(1-G6^2))/B8 1350 G9=SQR(B7/C1)/.3048 1360 H=100*F8/C2 1370 H0=100*A(D2)/(A8*5280) 1380 H1=100*F8/G9 1390 H2=(C2-F2)/G2 1400 H3=(G9-F8)/G2 1410 IF F6=1 THEN 1440 1420 H4=(A8*5280-A(D2))/F6 1430 IF H4<=9999.99 THEN 1460 1440 H4=9999.99 1450 REM-TIMES OVER 9999.99 SET TO 9999.99 TO NOT EXCEED DISPLY. 1460 IF D3<>1 THEN 1480 1470 PRINT "400K FT. ACHIEVED, YOU ARE IN VACUUM. " 1480 PRINT "FLIGHT TIME","FUEL LEFT","AT FULL THROT.","SHIP ANGLE" 1490 PRINT C3;"SEC,",G;"%",G0;"SEC,",B9;"DEG." 1500 PRINT 1510 PRINT "ALTITUDE","ASCENT RATE","FORWARD V.","RANGE" 1520 PRINT A(D2);"FT.",F6;"FT/SEC",F8;"FT/SEC",A0(D2);"MI." 1530 PRINT F5;"MI.",F7;"MI/HR.",F9;"MI/HR." 1540 PRINT 1550 PRINT "MAX ACCEL","MAX VERT ACCEL","ANGLE(C.A.)","THROT(C.A.)" 1560 REM-ANGLE(C.A.),CRITICAL ANGLE FOR CONST ASCENT AT FULL THROT. 1570 REM-THROT(C.A.)CRITICAL THROT OF CONST ASCENT AT 90 DEG 1580 PRINT G2;"FT/S/S",G4;"FT/S/S", ,"VERT. POS.","FULL THROT." 1590 PRINT G3;"MI/HR/S",G5;"MI/H/S", ,G8;"DEG.",G7;"%" 1600 PRINT 1610 PRINT H;"% ORBITAL VELOCITY",H0;"% ORBITAL HEIGHT" 1620 PRINT H1;"% VELOCITY NEEDED FOR ORBIT AT CURRENT ALTITUDE. " 1630 PRINT 1640 PRINT , ,"TIME TO ACHIEVE:" 1650 PRINT "ORB. ALT.","ORB. VEL.","CUR. ALT. ORB. VEL. " 1660 PRINT "AT CUR. RATE","AT FULL THROT.","AT FULL THROT." 1670 PRINT H4;"SEC.",H2;"SEC.",H3;"SEC." 1680 PRINT 1690 IF H<100 THEN 1760 1700 IF H0<100 THEN 1760 1710 D0=D0+1 1720 IF D0>1 THEN 1760 1730 PRINT "IN DESIRED ORBIT. TO CONTINUE ENTER 1, TO PLOT ENTER 2 " 1740 INPUT H5 1750 IF H5=2 THEN 1920 1760 IF C3=0 THEN 660 1770 IF D7<=E3 THEN 1800 1780 IF A(D2)<=0 THEN 1800 1790 GOTO 660 1800 IF A(D2)=0 THEN 1890 1810 IF D1 THEN 1850 1840 PRINT "LAST STAGE SHUTDOWN " 1850 IF D0<>0 THEN 1880 1860 IF A(D2)<=0 THEN 1880 1870 GOTO 660 1880 IF A(D2)>0 THEN 1920 1890 H6=INT(SQR(F6^2+F8^2)+.5) 1900 H7=INT(SQR(F7^2+F9^2)+.5) 1910 PRINT "YOU CRASHED AT ";H6;" FT/SEC, ";H7;" MI/HR " 1920 PRINT "AFTER ";D2;" PLOT POINTS: " 1930 FOR H8= 1 TO D2 1940 REM-PLOT A(H8) Y-AXIS, VS A0(H8) X-AXIS, ALTITUDE VS RANGE. 1950 NEXT H8 1960 H9=25 1970 REM-LOWER 25% CUTOFF OF ALTITUDE FOR A BLOWUP PLOT. 1980 I= C9*H9/100*1.0001 1990 I0=D2+1 2000 I0=I0-1 2010 IF A(I0)>I THEN 2000 2020 I1=100*A0(I0)/A0(D2) 2030 PRINT "LOWER ";H9;"% OR ";I;" MI. OF MAX ALT. ATTAINED " 2040 PRINT "FIRST ";I1;"% OR ";A0(I0);" MI. OF TOTAL RANGE " 2050 PRINT "WITH ";I0;" STEPS:" 2060 FOR I2=1 TO I0 2070 REM-PLOT A(I2) Y-AXIS, VS. A0(I2) X-AXIS, LOWER ALT. VS. RANGE. 2080 NEXT I2 2090 END 3000 END 3009 PRINT:PRINT:PRINT:PRINT "D7=";D7 3010 PRINT "D=";D;" D1=";D1;" D2=";D2;" D3=";D3;" D4=";D4;" D5=";D5;" D6=";D6 3011 PRINT "G=";G;" G1=";G1;" G2=";G2;" G3=";G3;" G4=";G4;" G5=";G5;" G6=";G6 3012 PRINT "G7="G7" G8=";G8;"G9= ";G9; 3013 PRINT "D=";D;" "; "A3(D)";A3(D);" A4(D)=";A4(D) 3014 PRINT :PRINT:PRINT "B=";B;" A3(B)=";A3(B) 3015 PRINT "LINE NUMBER ";Q 3020 STOP 3040 FOR Q=1 TO 30 :PRINT:NEXT 3045 TRON 3050 RETURN :PRINT "B=";B;" A3(B)=";A3(B) 3015 PRINT "LINE NUMBER ";