Source Code
These source-code files are part of a reconstructed copy of Skylark 048, the
Block II Command Module (CM) Apollo Guidance Computer (AGC) software for the
Skylab-2, Skylab-3, Skylab-4, and Apollo-Soyuz Test Project missions.
They have been created via disassembly of binary dumps of the original core rope memory modules actually flown on Skylab-2, part numbers 2010802-541, 2010802-551, 2010802-561, 2010802-571, 2010802-581, and 2010802-591. Access to these modules was provided by the New Mexico Museum of Space History, who we are much indebted to. The source code for the Apollo 15, 16, and 17 software, Artemis 072, was used as a starting point. Heavy use was made of TRW 4900.5-244, Programmed Guidance Equations for Skylark Command Module Earth Orbital Program, dated 14 February 1972. This document contains pseudocode of essentially all of Skylark, using original program labels which have been copied for this source reconstruction. Since only binary dumps (rather than listings) of Skylark are available as source material, all comments and labels are approximate. They have been taken from the Programmed Guidance Equations or other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
019616,000002: ## Copyright: Public domain.
019617,000003: ## Filename: R36.agc
019618,000004: ## Purpose: A section of Skylark revision 048.
019619,000005: ## It is part of the source code for the Apollo Guidance Computer (AGC)
019620,000006: ## for Skylab-2, Skylab-3, Skylab-4, and ASTP. No original listings of
019621,000007: ## this software are available; instead, this file was created via
019622,000008: ## disassembly of dumps of the core rope modules actually flown on
019623,000009: ## Skylab-2. Access to these modules was provided by the New Mexico
019624,000010: ## Museum of Space History.
019625,000011: ## Assembler: yaYUL
019626,000012: ## Contact: Ron Burkey <info@sandroid.org>.
019627,000013: ## Website: www.ibiblio.org/apollo/index.html
019628,000014: ## Mod history: 2024-02-26 MAS Created.
019629,000015:
019630,000016: ## All code in this file was part of the P34-P35, P74-P75 log section in Artemis.
019631,000017: ## It has been moved to its own log section to match Skylark bank ordering.
019632,000018:
019633,000019: # PROGRAM DESCRIPTION
019634,000020: # SUBROUTINE NAME R36 OUT-OF-PLANE RENDEZVOUS ROUTINE
019635,000021: # MOD NO. 3 DATE 18 NOVEMBER 1969
019636,000022: # MOD BY T.E.CROCKER
019637,000023:
019638,000024: # FUNCTIONAL DESCRIPTION
019639,000025:
019640,000026: # TO DISPLAY AT ASTRONAUT REQUEST LGC CALCULATED RENDEZVOUS
019641,000027: # OUT-OF-PLANE PARAMETERS (YDOT CSM,YDOT LEM,Y).
019642,000028:
019643,000029: # CALLING SEQUENCE
019644,000030:
019645,000031: # ASTRONAUT REQUEST THROUGH DSKY V 90 E
019646,000032:
019647,000033: # SUBROUTINES CALLED
019648,000034:
019649,000035: # EXDSPRET TIMEOPT
019650,000036: # GOMARKF VEHOPT
019651,000037: # CSMCONIC
019652,000038: # LEMCONIC
019653,000039: # LOADTIME
019654,000040:
019655,000041: # NORMAL EXIT MODES
019656,000042:
019657,000043: # ASTRONAUT REQUEST THROUGH DSKY TO TERMINATE PROGRAM V 34 E
019658,000044:
019659,000045: # ALARM OR ABORT EXIT MODES
019660,000046:
019661,000047: # NONE
019662,000048:
019663,000049: # OUTPUT
019664,000050: #
019665,000051: # DECIMAL DISPLAY OF YDOT CSM, YDOT LEM, Y, TIME.
019666,000052: # DISPLAYED VALUES YDOT, YDOT, Y ARE STORED IN ERASABLE
019667,000053: # REGISTERS RRATE, RRATE2, RANGE RESPECTIVELY.
019668,000054:
019669,000055: # ERASABLE INITIALIZATION REQUIRED
019670,000056:
019671,000057: # CSM AND LEM STATE VECTORS
019672,000058:
019673,000059: # DEBRIS
019674,000060:
019675,000061: # CENTRALS A,Q,L
019676,000062:
019677,000063: # OTHER THOSE USED BY THE ABOVE LISTED SUBROUTINES
019678,000064:
019679,000065: 23,2000 SETLOC R36CM
019680,000066: 23,2000 BANK
019681,000067:
019682,000068: 23,2330 E7,1412 EBANK= TIG
019683,000069: 23,2330 COUNT* $$/R36
019684,000070:
019685,000071: 23,2330 06006 R36 TC INTPRET
019686,000072:
019687,000073: 23,2331 45145 DLOAD CALL
019688,000074: 23,2332 03413 TIG
019689,000075: 23,2333 46523 TIMEOPT
019690,000076: 23,2334 77624 R36A CALL
019691,000077: 23,2335 11414 LEMPREC
019692,000078: 23,2336 63375 VLOAD PDVL # VL TO PDLO
019693,000079: 23,2337 00007 VATT
019694,000080: 23,2340 00001 RATT
019695,000081: 23,2341 63256 UNIT PDVL # UNIT RL TO PDL0, VL TO MPAC
019696,000082: 23,2342 77626 STADR
019697,000083: 23,2343 75567 STORE VPASS36 # VL TO VPASS36
019698,000084: 23,2344 53435 VXV UNIT # VL(MPAC) X RL(PDL0)
019699,000085: 23,2345 77626 STADR
019700,000086: 23,2346 61561 STODL UNP36 # UNIT(VL X RL) TO UNP36
019701,000087: 23,2347 00015 TAT
019702,000088: 23,2350 34041 STCALL TDEC1
019703,000089: 23,2351 11400 CSMPREC
019704,000090: 23,2352 63375 VLOAD PDVL # VC TO PDL0
019705,000091: 23,2353 00007 VATT
019706,000092: 23,2354 00001 RATT
019707,000093: 23,2355 00007 STORE 6D # RC TO PDL6
019708,000094: 23,2356 63256 UNIT PDVL # UNIT(RC) TO PDL0, VC TO MPAC
019709,000095: 23,2357 77626 STADR
019710,000096: 23,2360 77762 STORE 12D # VC TO PDL12
019711,000097: 23,2361 53435 VXV UNIT # VC(MPAC) X RC(PDL0)
019712,000098: 23,2362 77626 STADR
019713,000099: 23,2363 51553 STOVL UNA36 # UNIT(VC X RC) TO UNA36
019714,000100: 23,2364 00007 6D # RC TO MPAC
019715,000101: 23,2365 72441 DOT SL1
019716,000102: 23,2366 02216 UNP36 # RC . UNIT(VL X RL)
019717,000103: 23,2367 26202 STOVL RANGE # EQUALS RANGE
019718,000104: 23,2370 00015 12D # VC TO MPAC
019719,000105: 23,2371 72441 DOT SL1
019720,000106: 23,2372 02216 UNP36 # VC . UNIT(VL X RL)
019721,000107: 23,2373 26204 STOVL RRATE # EQUALS R. RATE OF CSM
019722,000108: 23,2374 02210 VPASS36 # VL TO MPAC
019723,000109: 23,2375 72441 DOT SL1
019724,000110: 23,2376 02224 UNA36
019725,000111: 23,2377 02206 STORE RRATE2 # VL . UNIT(VC X RC)
019726,000112: 23,2400 77776 EXIT # EQUALS R. RATE OF LEM
019727,000113: 23,2401 32433 CAF V06N96 # DISPLAY Y, YDOTCM,YDOTLM
019728,000114: 23,2402 04647 TC BANKCALL
019729,000115: 23,2403 20456 CADR GOMARKF
019730,000116: 23,2404 15537 TCF ENDEXT # T OR
019731,000117: 23,2405 15537 TCF ENDEXT # P....EXIT R36
019732,000118: # R...DISPLAY TIME
019733,000119: 23,2406 06006 TC INTPRET
019734,000120: 23,2407 77624 CALL
019735,000121: 23,2410 46524 TIMEOPT +1
019736,000122: 23,2411 77650 GOTO
019737,000123: 23,2412 46334 R36A
019738,000124: 23,2413 01420 V06N16N VN 0616
019739,000125: 23,2414 77420 VEHOPT STQ EXIT # ALLOW VEHICLE OPTION
019740,000126: 23,2415 00734 VEHRET
019741,000127: 23,2416 00006 EXTEND
019742,000128: 23,2417 35001 DCA TWO
019743,000129: 23,2420 53246 DXCH OPTIONX
019744,000130: 23,2421 32432 CAF OPTIONVN
019745,000131: 23,2422 04647 TC BANKCALL
019746,000132: 23,2423 20456 CADR GOXDSPF
019747,000133: 23,2424 05537 TC ENDEXT
019748,000134: 23,2425 02427 TC +2
019749,000135: 23,2426 02421 TC -5
019750,000136:
019751,000137: 23,2427 06006 TC INTPRET
019752,000138: 23,2430 77650 GOTO
019753,000139: 23,2431 00734 VEHRET
019754,000140: 23,2432 01014 OPTIONVN VN 0412
019755,000141: 23,2433 01540 V06N96 VN 0696
019756,000142:
End of include-file R36.agc. Parent file is MAIN.agc