10  REM ****  HP TIME-SHARED BASIC PROGRAM LIBRARY  ********************
20  REM
30  REM            SPACE:  SPACECRAFT ORBITS
40  REM
50  REM            36321 (A833)  REV A -- 10/71
60  REM
70  REM ****  CONTRIBUTED PROGRAM  *************************************
80  REM SPACECRAFT ORBITS, M. VISICH, JR., 12/09/68
90  REM SPACE-COPYRIGHT 1970, POLYTECHNIC INSTITUTE OF BROOKLYN
100  DIM V[2],R[2]
110  REM THIS PROGRAM CAN BE USED TO DETERMINE THE EFFECT OF
120  REM ADDING A VELOCITY INCREMENT TO A SPACECRAFT INITIALLY IN 
130  REM AN ELLIPTIC ORBIT AROUND THE EARTH. VELOCITY INCREMENTS
140  REM CAN ONLY BE ADDED AT THE APOGEE OR PERIGEE OF THE INITIAL ORBIT
150  REM AND ONLY IN A DIRECTION TANGENT TO THE INITIAL ORBIT.
160  LET Q5=0
170  LET Y=1.40753E+16
180  PRINT TAB(20);"SPACECRAFT ORBITS"
190  PRINT 
200  PRINT "WHAT IS THE MINIMUM AND MAXIMUM ALTITUDE OF THE SPACECRAFT"
210  PRINT "ABOVE THE SURFACE OF THE EARTH IN MILES";
220  INPUT H1,H2
230  IF H1>0 THEN 260
240  PRINT "BOTH ALTITUDES MUST BE POSITIVE!"
250  GOTO 200
260  IF H2>0 THEN 280
270  GOTO 240
280  PRINT 
290  GOSUB 1170
300  IF Q5>0 THEN 390
310  PRINT "THE ECCENTRICITY OF THE ORBIT IS"E
320  PRINT 
330  PRINT "THE VELOCITY AT THE PERIGEE IS "V1" FEET/SECOND."
340  PRINT 
350  PRINT "THE VELOCITY AT THE APOGEE IS "V2" FEET/SECOND."
360  PRINT 
370  PRINT "THE PERIOD OF THE ORBIT IS "T" MINUTES."
380  PRINT 
390  LET V[1]=V1
400  LET V[2]=V2
410  LET R[1]=R1
420  LET R[2]=R2
430  IF Q5>0 THEN 640
440  LET V[2]=V2
450  LET R[1]=R1
460  LET R[2]=R2
470  FOR J=1 TO 2
480  PRINT "ADDING A VELOCITY INCREMENT TO THE ";
490  IF J=1 THEN 520
500  PRINT "APOGEE"
510  GOTO 530
520  PRINT "PERIGEE"
530  PRINT "OF "SQR(2*Y/R[J])-V[J]" FT/SEC WOULD RESULT IN A"
540  PRINT "PARABOLIC ORBIT-- CAUSING THE SPACECRAFT TO FLY OFF INTO SPACE."
550  PRINT 
560  PRINT "A CHANGE OF "SQR(Y/R[J])-V[J]" FT/SEC WOULD PRODUCE A"
570  PRINT "CIRCULAR ORBIT. HOWEVER, A VELOCITY INCREMENT "
580  LET R=5280*3959
590  LET E2=(R-R[J])/(R+R[J])
600  PRINT "OF "SQR(Y*(1+E2)/R[J])-V[J]" FT/SEC WOULD PRODUCE AN ORBIT"
610  PRINT "THAT WOULD BE TANGENT TO THE EARTH'S SURFACE."
620  PRINT 
630  NEXT J
640  PRINT 
650  PRINT "DO YOU WANT TO ADD A VELOCITY INCREMENT AT THE"
660  PRINT "PERIGEE(TYPE 1) OR AT THE APOGEE(TYPE 2)",
670  INPUT N
680  PRINT 
690  IF (N-1)*(N-2)=0 THEN 720
700  PRINT "YOU WERE TO PICK EITHER 1 OR 2-TRY AGAIN"
710  GOTO 650
720  PRINT "WHAT VELOCITY INCREMENT IS TO BE ADDED";
730  INPUT V3
740  PRINT 
750  GOSUB 1260
760  PRINT "THE NEW ORBIT IS ";
770  IF E1=0 THEN 1090
780  IF E1=1 THEN 1110
790  IF E1>1 THEN 1140
800  PRINT "ELLIPTICAL "
810  PRINT " WITH AN ECCENTRICITY OF"E1
820  PRINT 
830  IF V9>1 THEN 970
840  IF H3<0 THEN 950
850  PRINT "THE POINT WHERE THE VELOCITY INCREMENT WAS ADDED"
860  PRINT "CORRESPONDS TO THE APOGEE OF THE NEW ORBIT"
870  PRINT "THE PERIGEE OF THE NEW ORBIT IN MILES IS"H3
880  PRINT 
890  PRINT " THE VELOCITY AT THE PERIGEE IS "V1" FT/SEC."
900  PRINT 
910  LET R2=R3
920  GOSUB 1220
930  PRINT "THE PERIOD OF THE NEW ORBIT IS "T" MINUTES."
940  GOTO 1420
950  PRINT "YOU CRASHED INTO THE EARTH"
960  GOTO 1420
970  PRINT "THE POINT WHERE THE VELOCITY INCREMENT WAS ADDED"
980  PRINT "CORRESPONDS TO THE PERIGEE OF THE NEW ORBIT"
990  PRINT 
1000  PRINT "THE APOGEE OF THE NEW ORBIT IS "H4" MILES."
1010  PRINT 
1020  PRINT "THE VELOCITY AT THE APOGEE IS "V2" FT/SEC."
1030  PRINT 
1040  LET R2=R4
1050  GOSUB 1220
1060  PRINT "THE PERIOD OF THE NEW ORBIT IS "T" MINUTES."
1070  PRINT 
1080  GOTO 1420
1090  PRINT "CIRCULAR."
1100  GOTO 1420
1110  PRINT "PARABOLIC, "
1120  PRINT "WITH AN ECCENTRICITY OF"E1
1130  GOTO 1420
1140  PRINT "HYPERBOLIC, "
1150  PRINT "WITH AN ECCENTRICITY OF"E1
1160  GOTO 1420
1170  LET R1=(H1+3959)*5280
1180  LET R2=(H2+3959)*5280
1190  LET E=(R2-R1)/(R1+R2)
1200  LET V1=SQR(Y*(1+E)/R1)
1210  LET V2=V1*R1/R2
1220  LET A=(R1+R2)/2
1230  LET P=39.479*A*A*A/Y
1240  LET T=SQR(P)/60
1250  RETURN 
1260  IF N=1 THEN 1290
1270  LET V1=V2
1280  LET R1=R2
1290  LET V5=V1+V3
1300  LET V7=SQR(Y/R1)
1310  LET V9=V5/V7
1320  LET E1=ABS(V9*V9-1)
1330  IF V9>1 THEN 1380
1340  LET R3=(1-E1)*R1/(1+E1)
1350  LET H3=R3/5280-3959
1360  LET V1=V5*R1/R3
1370  GOTO 1410
1380  LET R4=(1+E1)*R1/(1-E1)
1390  LET H4=R4/5280-3959
1400  LET V2=V5*R1/R4
1410  RETURN 
1420  PRINT 
1430  PRINT "*****"
1440  PRINT 
1450  PRINT "BASED ON YOUR ORIGINAL ALTITUDES OF "H1" AND "H2" MILES"
1460  PRINT "WOULD YOU LIKE TO TRY DIFFERENT VELOCITY INCREMENTS"
1470  PRINT "(1-YES, 0-N0)";
1480  INPUT Q5
1490  PRINT 
1500  IF Q5>0 THEN 290
1510  PRINT "WOULD YOU LIKE TO RUN THE PROGRAM AGAIN (1-YES, 0-NO)";
1520  INPUT Q6
1530  PRINT 
1540  PRINT "*****"
1550  PRINT 
1560  IF Q6>0 THEN 200
1570  END 
