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. |
005658,000002: ## Copyright: Public domain.
005659,000003: ## Filename: CHECK_EQUALS_LIST.agc
005660,000004: ## Purpose: A section of Skylark revision 048.
005661,000005: ## It is part of the source code for the Apollo Guidance Computer (AGC)
005662,000006: ## for Skylab-2, Skylab-3, Skylab-4, and ASTP. No original listings of
005663,000007: ## this software are available; instead, this file was created via
005664,000008: ## disassembly of dumps of the core rope modules actually flown on
005665,000009: ## Skylab-2. Access to these modules was provided by the New Mexico
005666,000010: ## Museum of Space History.
005667,000011: ## Assembler: yaYUL
005668,000012: ## Contact: Ron Burkey <info@sandroid.org>.
005669,000013: ## Website: www.ibiblio.org/apollo/index.html
005670,000014: ## Mod history: 2023-09-04 MAS Created from Artemis 072.
005671,000015: ## 2024-03-04 MAS Updated for Skylark 48.
005672,000016:
005673,000017: # ********** CHECK EQUALS LIST **********
005674,000018:
005675,000019: # THIS LIST IS MAINTAINED TO ENSURE THAT CERTAIN ERASABLE LOCATIONS
005676,000020: # ARE LOCATED AT A SPECIFIED DISTANCE FROM ANOTHER ERASABLE LOCATION
005677,000021: # AS REQUIRED BY THE STRUCTURE OF THE DOWNLINK LISTS:
005678,000022: # 1. IF A LOCATION IS THE SECOND PART OF A DOWNLINK WORD, IT MUST
005679,000023: # BE CONTIGUOUS TO THE LOCATION THAT IS THE FIRST PART.
005680,000024: # 2. IF A LOCATION IS NOT THE FIRST WORD OF AN NDNADR IT
005681,000025: # MUST BE AT A SPECIFIC NUMBER OF LOCATIONS FROM THE FIRST
005682,000026: # LOCATION IN THE INSTRUCTION.
005683,000027: # 3. OTHER NAMES MAY BE GIVEN TO LOCATIONS IN THE DOWNLINK LISTS
005684,000028: # THAT ARE NOT REFERENCED IN THE LISTS.THESE MUST NOT BE MOVED.
005685,000029: # THIS IS ACCOMPLISHED USING THE INSTRUCTION CHECK= .
005686,000030: # THIS INSTRUCTION GIVES A CUSS IN THE ASSEMBLY IF THE LOCATION OF THE
005687,000031: # FIRST TAG FIELD IS NOT EQUAL TO THE LOCATION OF THE SECOND TAG FIELD.
005688,000032: # THE INSTRUCTION HAS NO OTHER EFFECT ON THE ASSEMBLY OR CODE.
005689,000033:
005690,000034: # THIS LIST SHOULD BE UPDATED FOR ANY CHANGES TO THE DOWNLINK LISTS.
005691,000035:
005692,000036: # THIS LIST IS MAINTAINED BY SUMNER ROSENBERG
005693,000037:
005694,000038:
005695,000039: E7,1425 TIME1 CHECK= TIME2 +1
005696,000040: ??????? CDUY CHECK= CDUX +1
005697,000041: ??????? CDUT CHECK= CDUZ +1
005698,000042: ??????? PIPAX CHECK= CDUS +1
005699,000043: ??????? PIPAY CHECK= PIPAX +1
005700,000044: ??????? PIPAZ CHECK= PIPAY +1
005701,000045: ??????? UPOLDMOD CHECK= COMPNUMB +1
005702,000046: ??????? UPVERB CHECK= UPOLDMOD +1
005703,000047: ??????? UPCOUNT CHECK= UPVERB +1
005704,000048: ??????? BESTJ CHECK= BESTI +1
005705,000049: ??????? FAILREG CHECK= C31FLWRD +1
005706,000050: ??????? TRKMKCNT CHECK= VHFCNT +1
005707,000051: ??????? OPTION2 CHECK= OPTION1 +1
005708,000052: ??????? THETAD CHECK= REDOCTR +1
005709,000053: ??????? IMODES33 CHECK= IMODES30 +1
005710,000054: ??????? HOLDFLAG CHECK= OPTMODES +1
005711,000055: ??????? RRATE CHECK= RANGE +2
005712,000056: ??????? HPERX CHECK= HAPOX +2
005713,000057: ??????? TCSI CHECK= TCDH +2
005714,000058: ??????? IGC CHECK= OGC +2
005715,000059: ??????? MGC CHECK= IGC +2
005716,000060: ??????? YACTOFF CHECK= PACTOFF +1
005717,000061: ??????? DAPDATR2 CHECK= DAPDATR1 +1
005718,000062: ??????? CSMMASS CHECK= LEMMASS +1
005719,000063: ??????? AK1 CHECK= AK +1
005720,000064: ??????? AK2 CHECK= AK1 +1
005721,000065: ??????? RCSFLAGS CHECK= AK2 +1
005722,000066:
005723,000067: ??????? WBODY CHECK= OMEGAC
005724,000068: ??????? ADOT CHECK= OGARATE
005725,000069: ??????? ADOT1 CHECK= ADOT +2
005726,000070: ??????? ADOT2 CHECK= ADOT1 +2
005727,000071: ??????? ERRORY CHECK= ERRORX +1
005728,000072: ??????? ERRORZ CHECK= ERRORY +1
005729,000073: ??????? THETADX CHECK= ERRORZ +1
005730,000074: ??????? THETADY CHECK= THETADX +1
005731,000075: ??????? THETADZ CHECK= THETADY +1
005732,000076: ??????? YCMD CHECK= PCMD +1
005733,000077: ??????? BETA/180 CHECK= ALFA/180 +1
005734,000078: ??????? PREL CHECK= CMDAPMOD +1
005735,000079: ??????? QREL CHECK= PREL +1
005736,000080: ??????? RREL CHECK= QREL +1
005737,000081: ??????? ROLLTM CHECK= PAXERR1 +1
005738,000082: ??????? ROLLC CHECK= ROLLTM +1
005739,000083: ??????? LNG(SPL) CHECK= LAT(SPL) +2
005740,000084: ??????? RM CHECK= MARKDOWN +7
005741,000085: ??????? RDOT CHECK= LATANG +2
005742,000086: ??????? THETAH CHECK= RDOT +2
005743,000087: ??????? GAMMAEI CHECK= VPRED +2
005744,000088: ??????? STATE CHECK= FLAGWRD0
005745,000089: ??????? CMTMTIME CHECK= UPBUFF
005746,000090: ??????? SW/NDX CHECK= UPBUFF +1
005747,000091: ??????? ENDBUF CHECK= UPBUFF +16D
005748,000092: ??????? V1 CHECK= UPBUFF +17D
005749,000093: ??????? A0 CHECK= UPBUFF +19D
005750,000094: ??????? DNLSTADR CHECK= DNLSTCOD
005751,000095: ??????? CTLIST CHECK= DNLSTCOD +1
005752,000096: ??????? TEMPFLSH CHECK= CADRFLSH +2
005753,000097: ??????? LANDLAT CHECK= LAT
005754,000098: ??????? TLIFTOFF CHECK= TEVENT
005755,000099: ??????? CPHI CHECK= THETAD
005756,000100: ??????? RDOTREF CHECK= THETAD
005757,000101: ??????? CTHETA CHECK= THETAD +1
005758,000102: ??????? CPSI CHECK= THETAD +2
005759,000103: ??????? VREF CHECK= THETAD +2
005760,000104: ??????? DELVX CHECK= DELV
005761,000105: ??????? DELVY CHECK= DELV +2
005762,000106: ??????? DELVZ CHECK= DELV +4
005763,000107: ??????? TETLEM CHECK= T-OTHER
005764,000108: ??????? TETOTHER CHECK= T-OTHER
005765,000109: ??????? RRATE2 CHECK= RTHETA
005766,000110: ??????? PAXERR CHECK= AK
005767,000111: ??????? OMEGAXC CHECK= OMEGAC
005768,000112: ??????? TVCRCS CHECK= OMEGAC
005769,000113: ??????? ASPS(TM) CHECK= WBODY
005770,000114: ??????? OMEGAYC CHECK= OMEGAC +2
005771,000115: ??????? WBODY1 CHECK= WBODY +2
005772,000116: ??????? WBODY2 CHECK= WBODY1 +2
005773,000117:
005774,000118: ??????? OMEGAZC CHECK= OMEGAC +4
005775,000119: ??????? OGARATE CHECK= OMEGAB
005776,000120: ??????? OMEGAXB CHECK= OMEGAB
005777,000121: ??????? XPIPBUF CHECK= ADOT
005778,000122: ??????? YPIPBUF CHECK= XPIPBUF +1
005779,000123: ??????? ZPIPBUF CHECK= YPIPBUF +1
005780,000124: ??????? XOLDBUF CHECK= ZPIPBUF +1
005781,000125: ??????? YOLDBUF CHECK= XOLDBUF +1
005782,000126: ??????? ZOLDBUF CHECK= YOLDBUF +1
005783,000127: ??????? OMEGAYB CHECK= OMEGAB +2
005784,000128: ??????? OMEGAZB CHECK= OMEGAB +4
005785,000129: ??????? VDT/180 CHECK= ERRORX
005786,000130: ??????? -VT/180E CHECK= ERRORY
005787,000131: ??????? QAXERR CHECK= THETADX
005788,000132: ??????? RAXERR CHECK= THETADY
005789,000133: ??????? Q7 CHECK= THETADZ
005790,000134: ??????? DELVLVC CHECK= DELVSLV
005791,000135: ??????? DELVSIN CHECK= DELVEET3
005792,000136: ??????? VGTEMP CHECK= DELVEET3
005793,000137: ??????? VGPREV CHECK= VGTIG
005794,000138: ??????? LEWD CHECK= VIO
005795,000139: ??????? L/DCALC CHECK= TTE
005796,000140: ??????? VL CHECK= VPRED
005797,000141: ??????? GAMMAL CHECK= GAMMAEI
005798,000142: ??????? PREDANG CHECK= GAMMAEI
005799,000143: ??????? JJ CHECK= GAMMAEI +1
005800,000144: ??????? VTEMP CHECK= MARKTIME +2
005801,000145: ??????? VMAGI CHECK= VGTIG +2
005802,000146: ??????? TNSR CHECK= TCDH
005803,000147: ??????? TNCC CHECK= TCSI
005804,000148:
005805,000149: ??????? ASKEP CHECK= ASPS
005806,000150: ??????? ASP1 CHECK= ASPS +1
005807,000151: ??????? ASPUP CHECK= ASPS +2
005808,000152: ??????? ASPDWN CHECK= ASPS +3
005809,000153: ??????? ASP3 CHECK= ASPS +4
005810,000154: ??????? DUMMYAD CHECK= ROO +3
End of include-file CHECK_EQUALS_LIST.agc. Parent file is MAIN.agc