Listing 4 Save a copy of your working Apollo11.bas (Listing 2). Call it, say, Apoleorb.bas. NOW EXTEND Apollo11.bas AS BELOW. Line 16 - becomes - apogee = 547460 Two pairs of lines - 'IF colour = 1 THEN' and 'END IF' can be deleted (near line 21 and in CASE 2), but do retain the included lines. We don't want lines 53 - 55 after Sector 3, so put inside an IF....END IF, as follows - IF Sector < 4 THEN tp = t - 29000 'x axis position to plot.... PSET (tp, 7500 + E * 500), 4 '...total energy and... PSET (tp, w * 4000 - 38000), 2 '...velocity END IF 'CASE 3 NOW NEEDS TO BE MODIFIED TO SET UP FOR CASE 4. CASE 3: 'COASTING AFTER TLI BURN IF t MOD 60 = 0 THEN 'each minute, print on screen LOCATE 24:PRINT hr;"h"; min;"m, "; w; 'NOTE last ";" PRINT "km / sec "; de; " km radius": IF tm = 190 THEN 'end Sector 3 at 190 min CALL Tidyup 'rearrangement of Apollo configuration Sector = 4: ti = 5 'now 5 second time intervals xm50 = 250000: ym50 = -188000: olddm = dm 'NOW CHANGE to earth/ moon region WINDOW WINDOW (-10000, 12000)-(390000, -288000): CLS LINE (-10000, 12000)-(390000, -288000), 15, B FOR yc = -180000 TO -120000 STEP 20000 'energy -units LINE (0, yc)-(9000, yc), 4: NEXT FOR yc = -180000 TO -120000 STEP 2000 'energy -tenths LINE (0, yc)-(4000, yc), 4: NEXT: COLOR 4 FOR n = -2 TO 0: LOCATE 14 - n * 2, 5: PRINT n: NEXT LOCATE 20, 6: PRINT "ENERGY": COLOR 15 FOR yc = -270000 TO -190000 STEP 20000 LINE (0, yc)-(4000, yc), 15: NEXT LOCATE 25, 5: PRINT "ALTITUDE" LOCATE 21, 6: PRINT "500": LOCATE 29, 6: PRINT "100"; END IF END IF ' NOW add CASE 4, CASE 5, CASE 6 and CASE 7 CASE 4: 'TRIP TO MOON IF tm MOD 60 = 0 AND min = 0 THEN 'each hour, mark time LOCATE 1, 5: PRINT hr; "hrs,"; dm; "kms from moon."; PRINT " Velocity"; w; "km/sec" IF hr < 70 THEN LINE (x, y)-STEP(0, 3000), 15 IF hr MOD 10 = 0 THEN 'every 10 hours LINE (x, y)-STEP(0, 8000), 15 'mark time scale LOCATE (-y + 3000) / 10000, x / 5000: PRINT hr IF hr = 70 THEN 'draw enlarged (50 X) moon CIRCLE (xm50, ym50), Mrad * 50, 2 'and illuminate it xt = Mrad * 50 * COS(.1): yt = Mrad * 50 * SIN(.1) LINE (xm50 - xt, ym50 - yt)-(xm50 + xt, ym50 + yt),2 PAINT (xm50, ym50 - 2000), 2, 2 END IF 'hr = 70 END IF 'each 10 hours END IF 'each hour IF hr > 73 THEN IF t MOD 60=0 THEN PSET(xm50+(x-xm)*50,ym50+(y-ym)*50) PSET ((tm-4380)*300, (dm-Mrad)*200 -290000),15 'alt PSET ((tm -4380) *300, (E -6) * 20000), 4 'plot energy IF olddm - dm < 1.6 THEN 'rate < 1.6 km in 5 secs COLOR 4: LOCATE 2, 5 'time for first LOI burn PRINT "(a)Start LOI 1,"; INT(dm - Mrad); "km alt."; ti = 1 'change to 1 sec. intervals SI = 310: th = 9318: thr = th * .0098: ff = th / SI m = 43750: Sector = 5: loi1 = 1: te = t + 340 LINE (xm50, ym50)-STEP((x -xm) * 50, (y -ym) * 50), 4 LINE -STEP(10000, 0), 4: LOCATE 24, 73: PRINT "(a)" END IF 'approach rate < 1.6/5 olddm = dm 'remember old dm for rate checking END IF 'hr > 73 CASE 5: 'INTO MOON ORBIT h = dm - Mrad 'altitude IF t MOD 60 = 0 THEN ...... ..PSET (xm50 + (x - xm) * 50, ym50 + (y - ym) * 50), 15 PSET ((tm -4380) * 300, (E -6) * 20000), 4 'plot energy PSET ((tm - 4380) * 300, h * 200 -290000), 15 'altitude IF loi1 = 1 THEN 'LOI 1 burn in progress LINE (xm50, ym50)-STEP((x - xm) * 50, (y - ym) * 50),4 acc =thr/(m-ff/2): m =m -ff 'thrust accel. & fuel burn ang=ATN((ym-y)/(x -xm)) 'angle, moon surface to y axis atx=acc*SIN(ang): aty=acc*COS(ang) 'accel. components IF t = te THEN 'end of LOI 1 burn LINE -STEP(10000, 0), 4: loi1 = 2: atx = 0: aty = 0 LOCATE 27, 69: PRINT "(b)": LOCATE 2, 40 PRINT"(b)Burn 340 sec using";INT(340 * ff); "kg fuel" END IF 't = te END IF 'loi1 = 1 IF loi1 = 2 THEN 'coasting out to apolune IF dm < olddm - .06 THEN 'if past apolune LINE (xm50, ym50)-STEP((x-xm) *50, (y - ym) * 50), 15 LINE -STEP(10000, 0), 4: LOCATE 14, 37: COLOR 15 loi1 = 3: PRINT "(c)"; CINT(h); "km": LOCATE 3, 5 PRINT "(c)Apolune ="; INT(dm); ", alt. ="; CINT(h) END IF 'past apolune END IF 'loi1 = 2 IF loi1 = 3 THEN 'coasting in to perilune IF dm - olddm > .05 THEN 'past perilune COLOR 12: LOCATE 3, 40 PRINT "(d)Perilune ="; CINT(dm); ", alt. ="; INT(h) LINE (xm50, ym50)-STEP((x-xm) *50, (y - ym) * 50), 12 LINE -STEP(10000,0),12: LOCATE 25,71: PRINT "(d)&(e)" Sector = 6: ' DO: LOOP WHILE INKEY$ = "" LOCATE 4,5:PRINT"(d)Start LOI 2,"; INT(h); "km alt."; loi2 = 1: te = t + 31: adj = -.15 END IF 'past perilune END IF 'loi1 = 3 olddm = dm 'remember old dm CASE 6: 'CIRCULARISING MOON ORBIT IF t MOD 60=0 THEN PSET(xm50+(x-xm)*50,ym50+(y-ym) *50) h = dm - Mrad 'altitude PSET ((tm - 4380) * 300, (E - 6) *20000),4 'plot energy PSET ((tm - 4380) * 300, h * 200 - 290000),15 'altitude IF loi2 = 1 THEN 'LOI 2 burn continuing acc =thr/(m-ff/2): m=m - ff 'thrust accel. & fuel burn ang=ATN((ym-y)/(x-xm))+adj'angle, moon surf. to y axis atx=acc*SIN(ang): aty=acc* COS(ang) 'accel. components LINE(xm50,ym50)-STEP((x-xm)*50,(y-ym)* 50), 12 'radial IF t > te THEN 'LOI 2 burn finished LINE-STEP(10000,0),12:m=m+ff:loi2=2: atx = 0: aty = 0 t1=t+1800:t2=t+3600:t3=t+5400:t4=t+7200: LOCATE 4, 40 PRINT "(e)Burn 31 secs, using"; INT(31 * ff); "kg fuel" COLOR 15 END IF 't > te END IF 'loi2 = 1 IF loi2 = 2 THEN 'coasting around circular orbit IF t = t1 OR t = t2 OR t = t3 OR t = t4 THEN IF t = t1 THEN LOCATE 28, 46 IF t = t2 THEN LOCATE 15, 43 IF t = t3 THEN LOCATE 13, 67 IF t = t4 THEN LOCATE 26, 71 LINE (xm50,ym50)-STEP((x-xm) * 50, (y - ym) * 50), 15 LINE -STEP(20000, 0): PRINT INT(h); "km" IF t = t4 THEN Sector = 7 END IF END IF CASE 7: 'MORE MOON ORBITS AND DESCENT IF t = 370400 THEN 'start descent burn of 10 secs COLOR 15: LOCATE 10, 72: PRINT "(f)": LOCATE 5, 5 PRINT "(f)13 orbits shown by cycloidal 'pigtail' before LEM leaves at ..." mlem = 14841: tl = 4455 * .72: thr = tl * .0098 SIl = 310: ff = tl / SIl: doi = 1: te = t + 10 'DO: LOOP WHILE INKEY$ = "" END IF IF doi = 1 THEN 'Descent Orbit Injection burn LINE (xm50,ym50)-STEP((x-xm)*50, (y-ym)*50),14 'radial acc =thr/(mlem-ff/2): mlem=mlem-ff 'accel. & fuel burn ang=ATN((ym-y)/(x- xm)) 'angle, moon surface to y axis atx=acc*SIN(ang): aty=acc* COS(ang) 'accel. components IF t = te THEN 'end of LEM's DOI burn COLOR 14: LOCATE 17, 70: PRINT "(g)": LOCATE 6, 5 PRINT "(g)DOI. 10 sec at 72% thrust," ; PRINT " 99 kg fuel, for perilune 16 km alt." doi = 2: atx = 0: aty = 0: tf = t + 3400 'DO: LOOP WHILE INKEY$ = "" END IF END IF IF doi = 2 THEN 'LEM coasting to landing area PSET (xm50 + (x - xm) * 50, ym50 + (y - ym) * 50)', 14 IF t = tf THEN 'finish with LEM 16 km above landing LINE -STEP(-10 00, 0) finish = 1: LOCATE 24, 31: PRINT "(h)": LOCATE 7, 5 PRINT "(h)Landing Target. 30 deg. right of"; COLOR 15: PRINT " centre of near face (j)." LOCATE 17, 32: PRINT "(j)" LINE(xm50,ym50)-STEP(-95000*COS(.35),95000*SIN(.35)),15 END IF END IF ' AND FINISH OFF WITH CASE ELSE END SELECT LOOP UNTIL finish = 1: DO: LOOP WHILE INKEY$ = ""