Source Code
These source-code files are part of a reconstructed copy of LM131 revision 1,
the final release of the Apollo 13 Lunar Module (LM) Apollo Guidance Computer
(AGC) software.
The source reconstruction began with source code of Luminary 131 previously transcribed from a digitized copy of that program. A dump of the flight spare core rope memory module B5, part number 2010802-171, serial number RAY 411, was obtained. This module is the only module different between Luminary 131 and LM131 revision 1. The dump was disassembled and all changes were incorporated into these source files. Note that page numbers in the reconstructed code match those on the Luminary 131 printout, although the changed code would likely have changed page numbers for a real LM131 revision 1 listing. Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. |
009974,000002: ## Copyright: Public domain.
009975,000003: ## Filename: AOTMARK.agc
009976,000004: ## Purpose: A section of LM131 revision 1.
009977,000005: ## It is part of the reconstructed source code for the final
009978,000006: ## release of the flight software for the Lunar Module's (LM)
009979,000007: ## Apollo Guidance Computer (AGC) for Apollo 13. The code has
009980,000008: ## been reconstructed from a listing of Luminary 131 and a dump
009981,000009: ## of a core rope memory module B5, part number 2010802-171,
009982,000010: ## which is the only module different between LM131 revision 1
009983,000011: ## and Luminary 131. The executable generated from this source
009984,000012: ## has been verified against the module dump, so while the names,
009985,000013: ## comments, and ordering may not be exactly correct, the
009986,000014: ## resulting binary is.
009987,000015: ## Reference: pp. 245-262
009988,000016: ## Assembler: yaYUL
009989,000017: ## Contact: Ron Burkey <info@sandroid.org>.
009990,000018: ## Website: www.ibiblio.org/apollo/index.html
009991,000019: ## Mod history: 2022-10-28 MAS Created from Luminary 131.
009992,000020:
Page 245 |
009994,000022: 12,2000 BANK 12
009995,000023: 07,2000 SETLOC AOTMARK1
009996,000024: 07,2000 BANK
009997,000025:
009998,000026: 07,2000 E7,1551 EBANK= XYMARK
009999,000027: 07,2000 COUNT* $$/MARK
010000,000028:
010001,000029: 07,2000 00004 AOTMARK INHINT
010002,000030: 07,2001 11307 CCS MARKSTAT # SEE IF AOTMARK BUSY
010003,000031: 07,2002 02004 TC +2 # MARK SYSTEM BUSY - DO ALARM
010004,000032: 07,2003 02006 TC EXTVBCHK
010005,000033: 07,2004 05642 TC POODOO
010006,000034: 07,2005 20105 OCT 20105
010007,000035:
010008,000036: 07,2006 36245 EXTVBCHK CAF SIX # SEE IF EXT. VERB WORKING
010009,000037: 07,2007 71043 MASK EXTVBACT
010010,000038: 07,2010 10000 CCS A
010011,000039: 07,2011 12044 TCF MKABORT # YES - ABORT
010012,000040:
010013,000041: 07,2012 34752 CAF BIT2 # NO - DISALLOW SOME EXTENDED VERB ACTION
010014,000042: 07,2013 27043 ADS EXTVBACT # BIT2 RESET IN ENDMARK
010015,000043: 07,2014 10400 MKVAC CCS VAC1USE # LOOK FOR A VAC AREA - DO ABORT IF
010016,000044: 07,2015 12031 TCF MKVACFND # NONE AVAILABLE
010017,000045: 07,2016 10454 CCS VAC2USE
010018,000046: 07,2017 12031 TCF MKVACFND
010019,000047: 07,2020 10530 CCS VAC3USE
010020,000048: 07,2021 12031 TCF MKVACFND
010021,000049: 07,2022 10604 CCS VAC4USE
010022,000050: 07,2023 12031 TCF MKVACFND
010023,000051: 07,2024 10660 CCS VAC5USE
010024,000052: 07,2025 12031 TCF MKVACFND
010025,000053: 07,2026 52134 DXCH BUF2
010026,000054: 07,2027 05706 TC BAILOUT1 # ALL VAC AREAS OCCUPIED - ABORT.
010027,000055: 07,2030 31207 OCT 31207
010028,000056:
010029,000057: 07,2031 64752 MKVACFND AD TWO
010030,000058: 07,2032 55307 TS MARKSTAT # STORE VAC ADR INLOW 9 OF MARKSTAT
010031,000059:
010032,000060: 07,2033 34755 CAF ZERO
010033,000061: 07,2034 51307 INDEX MARKSTAT
010034,000062: 07,2035 53777 TS 0 -1 # ZERO IN VACUSE REG TO SHOW VAC OCCUPIED
010035,000063:
010036,000064: 07,2036 35025 CAF PRIO15
010037,000065: 07,2037 05105 TC FINDVAC # SET UP JOB FOR GETDAT
010038,000066: 07,2040 E7,1551 EBANK= XYMARK
010039,000067: 07,2040 02063 16067 2CADR GETDAT
010040,000068:
010041,000069: 07,2042 00003 RELINT
010042,000070: 07,2043 14631 TCF SWRETURN
Page 246 |
010044,000072: 07,2044 52134 MKABORT DXCH BUF2
010045,000073: 07,2045 05706 TC BAILOUT1 # CONFLICT WITH EXTENDED VERB
010046,000074: 07,2046 31211 OCT 31211
010047,000075:
010048,000076: 07,2047 34755 MKRELEAS CAF ZERO
010049,000077: 07,2050 57307 XCH MARKSTAT # SET MARKSTAT TO ZERO
010050,000078: 07,2051 75004 MASK LOW9 # PICK UP VAC AREA ADR
010051,000079: 07,2052 10000 CCS A
010052,000080: 07,2053 50000 INDEX A
010053,000081: 07,2054 54000 TS 0 # SHOW MKVAC AREA AVAILABLE
010054,000082: 07,2055 34753 CAF ONE
010055,000083: 07,2056 04674 TC IBNKCALL
010056,000084: 07,2057 17656 CADR GOODEND # GO WAKE UP CALLING JOB
010057,000085:
Page 247 |
010059,000087: 07,2060 34755 KILLAOT CAF ZERO
010060,000088: 07,2061 55043 TS EXTVBACT # TERMINATE AOTMARK - ALLOW EXT VERB
010061,000089: 07,2062 06001 TC GOTOPOOH
010062,000090: 07,2063 41307 GETDAT CS MARKSTAT # SET BIT12 TO DISCOURAGE MARKRUPT
010063,000091: 07,2064 74740 MASK BIT12 # BIT12 RESET AT GETMARK
010064,000092: 07,2065 27307 ADS MARKSTAT
010065,000093:
010066,000094: 07,2066 32330 CAF V01N71 # DISPLAY DETENT AND STAR CODE
010067,000095: 07,2067 04616 TC BANKCALL
010068,000096: 07,2070 20334 CADR GOMARKF
010069,000097:
010070,000098: 07,2071 12060 TCF KILLAOT # V34 - DOES GOTOPOOH
010071,000099: 07,2072 12074 TCF DODAT # V33 - PROCEED - USE THIS STAR FOR MARKS
010072,000100: 07,2073 12063 ENTERDAT TCF GETDAT # ENTER - REDISPLAY STAR CODE
010073,000101:
010074,000102: 07,2074 37747 DODAT CAF HIGH9 # PICK DETENT CODE FROM BITS7-9 OF AOTCODE
010075,000103: 07,2075 70734 MASK AOTCODE # AND SEE IF CODE 1 TO 6
010076,000104: 07,2076 00006 EXTEND
010077,000105: 07,2077 74743 MP BIT9
010078,000106: 07,2100 55551 TS XYMARK # STORE DETENT
010079,000107:
010080,000108: 07,2101 00006 EXTEND
010081,000109: 07,2102 62063 BZMF GETDAT # COAS CALIBRATION CODE - NO GOOD HERE
010082,000110:
010083,000111: 07,2103 65650 AD NEG7 # SEE IF DETENT 7 FOR COAS
010084,000112: 07,2104 00006 EXTEND
010085,000113: 07,2105 12107 BZF CODE7
010086,000114:
010087,000115: 07,2106 12123 TCF CODE1TO6
010088,000116:
010089,000117: 07,2107 32331 CODE7 CAF V06N87* # CODE 7, COAS SIGHTING, GET OPTIC AXIS
010090,000118: 07,2110 04616 TC BANKCALL # AZ AND EL OF SIGHTING DEVICE FROM ASTRO
010091,000119: 07,2111 20334 CADR GOMARKF
010092,000120:
010093,000121: 07,2112 12060 TCF KILLAOT # V34 - DOES GOTOPOOH
010094,000122: 07,2113 12115 TCF +2 # PROCEED
010095,000123: 07,2114 12107 TCF CODE7 # ON ENTER, RECYCLE
010096,000124: 07,2115 00006 EXTEND
010097,000125: 07,2116 31345 DCA AZ # PICK UP AZ AND EL IN SP 2S COMP
010098,000126: 07,2117 50120 INDEX FIXLOC
010099,000127: 07,2120 52011 DXCH 8D # STORE IN 8D AND 9D OF LOCAL VAC
010100,000128: 07,2121 34755 CAF ZERO # BACKUP SYSTEM TO BE USED
010101,000129: 07,2122 12137 TCF COASCODE # ZERO APPARENT ROTATION
010102,000130:
010103,000131: 07,2123 51551 CODE1TO6 INDEX XYMARK # INDEX AOT POSITION BY DET CODE
010104,000132: 07,2124 31411 CA AOTEL -1
010105,000133: 07,2125 50120 INDEX FIXLOC
010106,000134: 07,2126 54011 TS 9D # STORE ELEVATION IN VAC+9D
010107,000135:
010108,000136: 07,2127 51551 INDEX XYMARK # INDEX DET CODE 1,2 OR 3
Page 248 |
010110,000138: 07,2130 31403 CA AOTAZ -1
010111,000139: 07,2131 50120 INDEX FIXLOC
010112,000140: 07,2132 54010 TS 8D # STORE AZIMUTH IN VAC+8D
010113,000141:
010114,000142: 07,2133 31405 CA AOTAZ +1 # COMPENSATION FOR APPARENT ROTATION OF
010115,000143: 07,2134 00006 EXTEND # AOT FIELD OF VIEW IN LEFT AND RIGTHT
010116,000144: 07,2135 50120 INDEX FIXLOC # DETENTS IS STORED IN VAC +10D IN SP
010117,000145: 07,2136 20010 MSU 8D # PRECISION ONES COMPLEMENT
010118,000146: 07,2137 50120 COASCODE INDEX FIXLOC
010119,000147: 07,2140 54012 TS 10D # ROT ANGLE
010120,000148:
010121,000149: 07,2141 06042 TC INTPRET # COMPUTE X AND Y PLANE VECTORS
010122,000150:
Page 249 |
010124,000152: # THE OPTAXIS SUBROUTINE COMPUTES THE X AND Y MARK PLANE VECS AND
010125,000153: # AND ROTATES THEM THRU THE APPARENT FIELD OF VIEW ROTATION UNIQUE TO AOT
010126,000154: # OPTAXIS USES OANB TO COMPUTE THE OPTIC AXIS
010127,000155:
010128,000156: # INPUT - AZIMUTH ANGLE IN SINGLE PREC AT CDU SCALE IN 8D OF JOB VAC
010129,000157: # ELEVATION ANGLE IN SINGLE PREC AT CDU SCALE IN 9D OF JOB VAC
010130,000158: # ROTATION ANGLE IN SINGLE PREC 1S COMPSCALED BY PI IN 10D OF VAC
010131,000159:
010132,000160: # OUTPUT - OPTIC AXIS VEC IN NB COORDS IN SCAXIS
010133,000161: # X-MARK PLANE 1/4VEC IN NB COORDS AT 18D OF JOB VAC
010134,000162: # Y-MARK PLANE 1/4VEC IN NB COORDS AT 12D OF JOB VAC
010135,000163:
010136,000164: 07,2142 77624 OPTAXIS CALL # GO COMPUTE OA AND X AND Y PLANE VECS
010137,000165: 07,2143 10522 OANB
010138,000166: 07,2144 70535 SLOAD SR1 # LOAD APP ROTATION IN ONES COMP
010139,000167: 07,2145 00013 10D # RESCALE BY 2PI
010140,000168: 07,2146 73406 PUSH SIN # 1/2SIN(ROT) 0-1
010141,000169: 07,2147 71525 PDDL COS
010142,000170: 07,2150 74206 PUSH VXSC # 1/2COS(ROT) 2-3
010143,000171: 07,2151 00023 18D
010144,000172: 07,2152 74325 PDDL VXSC # 1/4COS(ROT)UYP 4-9
010145,000173: 07,2153 00001 0
010146,000174: 07,2154 00031 24D # 1/4SIN(ROT)UXP
010147,000175: 07,2155 45445 BVSU STADR # UP 4-9
010148,000176: 07,2156 63762 STODL 12D # YPNB=1/4(COS(ROT)UYP-SIN(ROT)UXP)
010149,000177: 07,2157 65361 VXSC PDDL # UP 2-3 UP 0-1 FOR EXCHANGE
010150,000178: 07,2160 00031 24D # 1/4COS(ROT)UXP PUSH 0-5
010151,000179: 07,2161 53361 VXSC VAD # 1/4SIN(ROT)UYP
010152,000180: 07,2162 00023 18D # UP 0-5
010153,000181: 07,2163 77626 STADR
010154,000182: 07,2164 53754 STOVL 18D # XPNB=1/4(COS(ROT)UXP+SIN(ROT)UYP)
010155,000183: 07,2165 24007 LO6ZEROS # INITIALIZE AVE STAR VEC ACCUMULATOR
010156,000184: 07,2166 02715 STORE STARAD +6
010157,000185: 07,2167 77776 EXIT
010158,000186: 07,2170 12202 TCF GETMKS
010159,000187:
Page 250 |
010161,000189: # THE OANB SUBROUTINE COMPUTES THE OPTIC AXIS OF THE SIGHTING INSTRUMENT
010162,000190: # FROM AZIMUTH AND ELEVATION INPUT FROM THE ASTRONAUT.
010163,000191:
010164,000192: # INPUT - AZIMUTH ANGLE IN SINGLE PREC 2S COMP IN 8D OF JOB VAC
010165,000193: # ELEVATION ANGLE IN SINGLE PREC 2S COMP IN 9D OF VAC
010166,000194:
010167,000195: # OUTPUT - OPTIC AXIS IN NB COORDS. IN SCAXIS
010168,000196: # X-PLANE 1/2VEC IN NB COORDS AT 24D OF VAC
010169,000197: # Y-PLANE 1/2VEC IN NB COORDS AT 18D OF VAC
010170,000198:
010171,000199: 05,3413 BANK 05
010172,000200: 04,2000 SETLOC AOTMARK2
010173,000201: 04,2000 BANK
010174,000202:
010175,000203: 04,2522 COUNT* $$/MARK
010176,000204:
010177,000205: 04,2522 44001 OANB SETPD STQ
010178,000206: 04,2523 00001 0
010179,000207: 04,2524 02736 GCTR # STORE RETURN
010180,000208: 04,2525 47135 SLOAD RTB
010181,000209: 04,2526 00012 9D # PICK UP SP ELV
010182,000210: 04,2527 21577 CDULOGIC
010183,000211: 04,2530 71406 PUSH COS
010184,000212: 04,2531 73525 PDDL SIN # 1/2COS(ELV) PD 0-1
010185,000213: 04,2532 77626 STADR
010186,000214: 04,2533 60012 STODL SCAXIS # OAX=1/2SIN(ELV)
010187,000215: 04,2534 00011 8D # PICK UP AZ SP
010188,000216: 04,2535 77634 RTB
010189,000217: 04,2536 21577 CDULOGIC
010190,000218: 04,2537 71406 PUSH COS
010191,000219: 04,2540 00025 STORE 20D # STORE UYP(Y) 20-21
010192,000220: 04,2541 73525 PDDL SIN # 1/2COS(AZ) PD 2-3
010193,000221: 04,2542 57406 PUSH DCOMP # PUSH 1/2SIN(AZ) 4-5
010194,000222: 04,2543 14027 STODL 22D # STORE UYP(Z) 22-23
010195,000223: 04,2544 24007 LO6ZEROS
010196,000224: 04,2545 14023 STODL 18D # STORE UYP(X) 18-19 UP 4-5
010197,000225: 04,2546 72405 DMP SL1
010198,000226: 04,2547 00001 0
010199,000227: 04,2550 17767 STODL SCAXIS +2 # OAY=1/2COS(ELV)SIN(AZ)
010200,000228: 04,2551 72405 DMP SL1 # UP 2-3
010201,000229: 04,2552 77626 STADR # UP 0-1
010202,000230: 04,2553 50006 STOVL SCAXIS +4 # OAZ=1/2COS(ELV)COS(AZ)
010203,000231: 04,2554 00023 18D # LOAD UYP VEC
010204,000232: 04,2555 53435 VXV UNIT
010205,000233: 04,2556 03765 SCAXIS # UXP VEC=UYP X OA
010206,000234: 04,2557 00031 STORE 24D # STORE UXP
010207,000235: 04,2560 77650 GOTO
010208,000236: 04,2561 02736 GCTR
Page 251 |
010210,000238: # SURFSTAR COMPUTES A STAR VECTOR IN SM COORDINATES FOR LUNAR
010211,000239: # SURFACE ALIGNMENT AND EXITS TO AVEIT TO AVERAGE STAR VECTORS.
010212,000240: #
010213,000241: # GIVEN X-MARK PLANE 1/4 VEC IN NB AT 18D OF LOCAL VAC
010214,000242: # Y-MARK PLANE 1/4 VEC IN NB AT 12D OF LOCAL VAC
010215,000243: # CURSOR SP 2COMP AT POSITION 1 OF INDEXED MARKVAC
010216,000244: # SPIRAL SP 2COMP AT POSITION 3 OF INDEXED MARKVAC
010217,000245: # CDUY,Z,X AT POSITIONS 0,2,4 OF INDEXED MARKVAC
010218,000246:
010219,000247: 15,2000 BANK 15
010220,000248: 15,2000 SETLOC P50S
010221,000249: 15,2000 BANK
010222,000250: 15,2000 COUNT* $$/R59
010223,000251:
010224,000252: 15,2000 77773 SURFSTAR VLOAD*
010225,000253: 15,2001 00001 0,1 # PUT X-MARK CDUS IN CDUSPOT FOR TRG*NBSM
010226,000254: 15,2002 00766 STORE CDUSPOT
010227,000255: 15,2003 47133 SLOAD* RTB
010228,000256: 15,2004 00002 1,1 # PICK UP YROT
010229,000257: 15,2005 21577 CDULOGIC
010230,000258: 15,2006 00031 STORE 24D # STORE CURSOR FOR SPIRAL COMP (REVS)
010231,000259: 15,2007 77654 BZE
010232,000260: 15,2010 16171 YZCHK # IF YROT ZERO - SEE IF SROT ZERO
010233,000261: 15,2011 71406 JUSTZY PUSH COS
010234,000262: 15,2012 73525 PDDL SIN # 1/2COS(YROT) 0-1
010235,000263: 15,2013 65361 VXSC PDDL # UP 0-1 1/8SIN(YROT)UXP 0-5
010236,000264: 15,2014 00023 18D
010237,000265: 15,2015 52361 VXSC VSU # UP 0-5
010238,000266: 15,2016 00015 12D # UYP
010239,000267: 15,2017 47256 UNIT VXV
010240,000268: 15,2020 03765 SCAXIS
010241,000269: 15,2021 41456 UNIT PUSH
010242,000270: 15,2022 47133 SLOAD* RTB
010243,000271: 15,2023 00004 3,1 # PICK UP SPIRAL
010244,000272: 15,2024 21577 CDULOGIC
010245,000273: 15,2025 00033 STORE 26D # STORE SPIRAL (REVS)
010246,000274: 15,2026 43225 DSU DAD
010247,000275: 15,2027 00031 24D
010248,000276: 15,2030 32047 ABOUTONE
010249,000277: 15,2031 77605 DMP
010250,000278: 15,2032 32466 DP1/12
010251,000279: 15,2033 00033 STORE 26D # SEP=(360 + SPIRAL -CURSOR)/12
010252,000280: 15,2034 74356 SIN VXSC # UP 0-5
010253,000281: 15,2035 65372 VSL1 PDDL # 1/2SIN(SEP)(UPP X OA) 0-5
010254,000282: 15,2036 00033 26D
010255,000283: 15,2037 74346 COS VXSC
010256,000284: 15,2040 03765 SCAXIS
010257,000285: 15,2041 53372 VSL1 VAD # UP 0-5
010258,000286: 15,2042 45056 JUSTOA UNIT CALL
010259,000287: 15,2043 47666 TRG*NBSM
010260,000288: 15,2044 34031 STCALL 24D # STAR VEC IN SM
010261,000289: 15,2045 16276 AVEIT # GO AVERAGE
Page 252 |
010263,000291: 15,2046 37777 37775 ABOUTONE 2DEC .99999999
010264,000292:
010265,000293: 15,2050 15,2465 DP1/12 EQUALS DEG30 # .08333333
010266,000294: 07,2171 BANK 7
010267,000295: 07,2000 SETLOC AOTMARK1
010268,000296: 07,2000 BANK
010269,000297: 07,2171 COUNT* $$/MARK
010270,000298: 07,2171 53133 YZCHK SLOAD* BZE # YROT ZERO AND IF SROT ZERO FORCE STAR
010271,000299: 07,2172 00004 3,1 # ALONG OPTIC AXIS
010272,000300: 07,2173 16177 YSZERO
010273,000301: 07,2174 52145 DLOAD GOTO
010274,000302: 07,2175 00031 24D
010275,000303: 07,2176 32011 JUSTZY # SROT NOT ZERO - CONTINUE NORMALLY
010276,000304: 07,2177 52175 YSZERO VLOAD GOTO
010277,000305: 07,2200 03765 SCAXIS
010278,000306: 07,2201 32042 JUSTOA
010279,000307:
Page 253 |
010281,000309: # THE GETMKS ROUTINE INITIALIZES THE SIGHTING MARK PROCEDURE
010282,000310:
010283,000311: 07,2202 34755 GETMKS CAF ZERO # INITIALIZE MARK ID REGISTER AND MARK CNT
010284,000312: 07,2203 55551 TS XYMARK
010285,000313: 07,2204 55550 TS MARKCNTR
010286,000314: 07,2205 35004 CAF LOW9 # ZERO BITS10 TO 15 RETAINING MKVAC ADR
010287,000315: 07,2206 71307 MASK MARKSTAT
010288,000316: 07,2207 55307 TS MARKSTAT
010289,000317: 07,2210 32620 CAF MKVB54* # DISPLAY VB54 INITIALLY
010290,000318: 07,2211 04616 PASTIT TC BANKCALL
010291,000319: 07,2212 20345 CADR GOMARK4
010292,000320:
010293,000321: 07,2213 12060 TCF KILLAOT # V34 - DOES GOTOPOOH
010294,000322: 07,2214 12216 TCF MARKCHEX # VB33 - PROCEED, GOT MARKS, COMPUTE LOS
010295,000323: 07,2215 12063 TCF GETDAT # ENTER - RECYCLE TO V01N71
010296,000324:
010297,000325: 07,2216 41307 MARKCHEX CS MARKSTAT # SET BIT12 TO DISCOURAGE MARKRUPT
010298,000326: 07,2217 74740 MASK BIT12
010299,000327: 07,2220 27307 ADS MARKSTAT
010300,000328: 07,2221 75004 MASK LOW9
010301,000329: 07,2222 55551 TS XYMARK # JAM MARK VAC ADR IN XYMARK FOR AVESTAR
010302,000330: 07,2223 34755 CAF ZERO
010303,000331: 07,2224 55552 TS MKDEX # SET MKDEX ZERO FOR LOS VEC CNTR
010304,000332: 07,2225 31307 CA MARKSTAT
010305,000333: 07,2226 75015 MASK PRIO3 # SEE IF LAST MK PARI COMPLETE
010306,000334: 07,2227 54001 TS L
010307,000335: 07,2230 35015 CAF PRIO3 # BITS10 AND 11
010308,000336: 07,2231 00006 EXTEND
010309,000337: 07,2232 06001 RXOR LCHAN
010310,000338: 07,2233 00006 EXTEND
010311,000339: 07,2234 12241 BZF AVESTAR # LAST PAIR COMPLETE - GO COMPUTE LOS
010312,000340: 07,2235 11550 CNTCHK CCS MARKCNTR # NO PAIR SHOWING - SEE IF PAIR IN HOLD
010313,000341: 07,2236 12240 TCF +2 # PAIR BURIED - DECREMENT COUNTER
010314,000342: 07,2237 12325 TCF MKALARM # NO PAIR - ALARM
010315,000343: 07,2240 55550 TS MARKCNTR # STORE DECREMENTED COUNTER
010316,000344:
010317,000345: 07,2241 34740 AVESTAR CAF BIT12 # INITIALIZE MKDEX FOR STAR LOS COUNTER
010318,000346: 07,2242 27552 ADS MKDEX # MKDEX WAS INITIALIZED ZERO IN MARKCHEX
010319,000347: 07,2243 41550 CS MARKCNTR
010320,000348: 07,2244 00006 EXTEND
010321,000349: 07,2245 76245 MP SIX # GET C(L) = -6 MARKCNTR
010322,000350: 07,2246 41551 CS XYMARK
010323,000351: 07,2247 60001 AD L # ADD - MARK VAC ADR SET IN MARKCHEX
010324,000352: 07,2250 50120 INDEX FIXLOC
010325,000353: 07,2251 54046 TS X1 # JAM - CDU ADR OF X-MARK IN X1
010326,000354:
010327,000355: 07,2252 30120 CA FIXLOC # SET PD POINTER TO ZERO
010328,000356: 07,2253 54166 TS PUSHLOC
010329,000357:
010330,000358: 07,2254 06042 TC INTPRET
Page 254 |
010332,000360: 07,2255 76614 BON VLOAD*
010333,000361: 07,2256 04307 SURFFLAG # IF ON SURFACE COMPUTE VEC AT SURFSTAR
010334,000362: 07,2257 32000 SURFSTAR
010335,000363: 07,2260 00002 1,1 # PUT Y-MARK CDUS IN CDUSPOT FOR TRG*NBSM
010336,000364: 07,2261 24766 STOVL CDUSPOT
010337,000365: 07,2262 00015 12D # LOAD Y-PLANE VECTOR IN NB
010338,000366: 07,2263 77624 CALL
010339,000367: 07,2264 47666 TRG*NBSM # CONVERT IT TO STABLE MEMBER
010340,000368: 07,2265 76606 PUSH VLOAD*
010341,000369: 07,2266 00001 0,1 # PUT X-MARK CDUS IN CDUSPOT FOR TRG*NBSM
010342,000370: 07,2267 24766 STOVL CDUSPOT
010343,000371: 07,2270 00023 18D # LOAD X-PLANE VECTOR IN NB
010344,000372: 07,2271 77624 CALL
010345,000373: 07,2272 47666 TRG*NBSM # CONVERT IT TO STABLE-MEMBER
010346,000374: 07,2273 53435 VXV UNIT # UNIT(XPSM * YPSM)
010347,000375: 07,2274 77626 STADR
010348,000376: 07,2275 77746 STORE 24D
010349,000377:
010350,000378: 07,2276 63335 AVEIT SLOAD PDVL # N(NUMBER OF VECS) IN 0-1
010351,000379: 07,2277 03553 MKDEX
010352,000380: 07,2300 00031 24D # LOAD CURRENT VECTOR
010353,000381: 07,2301 70322 VSR3 V/SC
010354,000382: 07,2302 00001 0
010355,000383: 07,2303 14031 STODL 24D # VEC/N
010356,000384: 07,2304 00001 0
010357,000385: 07,2305 56225 DSU DDV
010358,000386: 07,2306 16622 DP1/8 # (N-1)/N
010359,000387: 07,2307 53361 VXSC VAD
010360,000388: 07,2310 02715 STARAD +6 # ADD VEC TO PREVIOUSLY AVERAGED VECTOR
010361,000389: 07,2311 00031 24D # (N-1)/N AVESTVEC + VEC/N
010362,000390: 07,2312 02715 STORE STARAD +6 # AVERAGE STAR VECTOR
010363,000391: 07,2313 02767 STORE STARSAV2
010364,000392: 07,2314 77776 EXIT
010365,000393: 07,2315 11550 CCS MARKCNTR # SEE IF ANOTHER MARK PAIR IN MKVAC
010366,000394: 07,2316 12240 TCF AVESTAR -1 # THERE IS - GO GET IT - DECREMENT COUNTER
010367,000395: 07,2317 34756 ENDMARKS CAF FIVE # NO MORE MARKS - TERMINATE AOTMARK
010368,000396: 07,2320 00004 INHINT
010369,000397: 07,2321 05203 TC WAITLIST
010370,000398: 07,2322 E7,1551 EBANK= XYMARK
010371,000399: 07,2322 02047 16067 2CADR MKRELEAS
010372,000400:
010373,000401: 07,2324 05472 TC ENDMARK
010374,000402:
010375,000403: 07,2325 05567 MKALARM TC ALARM # NOT A PAIR TO PROCESS - DO GETMKS
010376,000404: 07,2326 00111 OCT 111
010377,000405: 07,2327 12202 TCF GETMKS
010378,000406:
010379,000407: 07,2330 00307 V01N71 VN 171
010380,000408: 07,2331 01527 V06N87* VN 687
010381,000409:
Page 255 |
010383,000411: # MARKRUPT IS ENTERED FROM INTERUPT LEAD-INS AND PROCESSES CHANNEL 16
010384,000412: # CAUSED BY X,Y MARK OR MARK REJECT OR BY THE RATE OF DESCENT SWITCH
010385,000413:
010386,000414: 07,2332 54016 MARKRUPT TS BANKRUPT
010387,000415: 07,2333 30033 CA CDUY # STORE CDUS AND TIME NOW - THEN SEE IF
010388,000416: 07,2334 54063 TS ITEMP3 # WE NEED THEM
010389,000417: 07,2335 30034 CA CDUZ
010390,000418: 07,2336 54064 TS ITEMP4
010391,000419: 07,2337 30032 CA CDUX
010392,000420: 07,2340 54065 TS ITEMP5
010393,000421: 07,2341 00006 EXTEND
010394,000422: 07,2342 30025 DCA TIME2
010395,000423: 07,2343 52062 DXCH ITEMP1
010396,000424: 07,2344 56002 XCH Q
010397,000425: 07,2345 54012 TS QRUPT
010398,000426:
010399,000427: 07,2346 34776 CAF OCT140 # SEE IF ROD INPUT HAS BEEN MADE
010400,000428: 07,2347 00006 EXTEND
010401,000429: 07,2350 02016 RAND NAVKEYIN
010402,000430: 07,2351 10000 CCS A
010403,000431: 07,2352 12403 TCF SOMEKEY # YES
010404,000432:
010405,000433: 07,2353 34740 CAF BIT12 # ARE WE ASKING FOR A MARK
010406,000434: 07,2354 71307 MASK MARKSTAT
010407,000435: 07,2355 10000 CCS A
010408,000436: 07,2356 05270 TC RESUME # DONT WANT MARK OR MKREJECT - DO NOTHING
010409,000437:
010410,000438: 07,2357 11307 CCS MARKSTAT # ARE MARKS BEING ACCEPTED
010411,000439: 07,2360 12364 TCF FINDKEY # THEY ARE - WHICH ONE IS IT
010412,000440: 07,2361 05567 TC ALARM # MARKS NOT BEING ACCEPTED - DO ALARM
010413,000441: 07,2362 00112 OCT 112
010414,000442: 07,2363 05270 TC RESUME
010415,000443:
010416,000444: 07,2364 34747 FINDKEY CAF BIT5 # SEE IF MARK REJECT
010417,000445: 07,2365 00006 EXTEND
010418,000446: 07,2366 02016 RAND NAVKEYIN
010419,000447: 07,2367 10000 CCS A
010420,000448: 07,2370 12460 TCF MKREJ # ITS A MARK REJECT
010421,000449:
010422,000450: 07,2371 34750 CAF BIT4 # SEE IF Y MARK
010423,000451: 07,2372 00006 EXTEND
010424,000452: 07,2373 02016 RAND NAVKEYIN
010425,000453: 07,2374 10000 CCS A
010426,000454:
010427,000455: 07,2375 12421 TCF YMKRUPT # ITS A Y MARK
010428,000456:
010429,000457: 07,2376 34751 CAF BIT3 # SEE IF X MARK
010430,000458: 07,2377 00006 EXTEND
010431,000459: 07,2400 02016 RAND NAVKEYIN
010432,000460: 07,2401 10000 CCS A
010433,000461:
Page 256 |
010435,000463: 07,2402 12415 TCF XMKRUPT # ITS A X MARK
010436,000464:
010437,000465: 07,2403 34776 SOMEKEY CAF OCT140 # NOT MARK OR MKREJECT - SEE IF DESCENT BITS
010438,000466: 07,2404 00006 EXTEND
010439,000467: 07,2405 02016 RAND NAVKEYIN
010440,000468: 07,2406 00006 EXTEND
010441,000469: 07,2407 12412 BZF +3 # IF NO BITS
010442,000470:
010443,000471: 07,2410 04635 TC POSTJUMP # IF DESCENT BITS
010444,000472: 07,2411 46455 CADR DESCBITS
010445,000473:
010446,000474: 07,2412 05567 TC ALARM # NO INBITS IN CHANNEL 16
010447,000475: 07,2413 00113 OCT 113
010448,000476:
010449,000477: 07,2414 05270 TC RESUME
010450,000478:
010451,000479: 07,2415 34755 XMKRUPT CAF ZERO
010452,000480: 07,2416 54070 TS RUPTREG1 # SET X MARK STORE INDEX TO ZERO
010453,000481: 07,2417 34742 CAF BIT10
010454,000482: 07,2420 12424 TCF +4
010455,000483: 07,2421 34753 YMKRUPT CAF ONE
010456,000484: 07,2422 54070 TS RUPTREG1 # SET Y MARK STORE INDEX TO ONE
010457,000485: 07,2423 34741 CAF BIT11
010458,000486: 07,2424 55551 TS XYMARK # SET MARK IDENTIFIATION
010459,000487:
010460,000488: 07,2425 02513 TC MARKTYPE # SEE IF SURFACE MARK
010461,000489: 07,2426 12520 TCF SURFSTOR # SURFACE MARK - JUST STORE CDUS
010462,000490:
010463,000491: 07,2427 34736 CAF BIT14 # GOT A MARK - SEE IF MARK PAIR MADE
010464,000492: 07,2430 71307 MASK MARKSTAT
010465,000493: 07,2431 00006 EXTEND
010466,000494: 07,2432 12443 BZF VERIFYMK # NOT A PAIR, NORMAL PROCEDURE
010467,000495: 07,2433 41550 CS MARKCNTR # GOT A PAIR, SEE IF ANOTHER CAN BE MADE
010468,000496: 07,2434 64751 AD FOUR # IF SO, INCREMENT POINTER, CLEAR BITS 10,11
010469,000497: 07,2435 00006 EXTEND
010470,000498: 07,2436 62453 BZMF 5MKALARM # HAVE FIVE MARK PAIRS - DONT ALLOW MARK
010471,000499: 07,2437 25550 INCR MARKCNTR # OK FOR ANOTHER PAIR, INCR POINTER
010472,000500: 07,2440 47714 CS PRIO23 # CLEAR BITS 10,11,14 FOR NEXT PAIR
010473,000501: 07,2441 71307 MASK MARKSTAT
010474,000502: 07,2442 55307 TS MARKSTAT
010475,000503:
010476,000504: 07,2443 31551 VERIFYMK CA XYMARK
010477,000505: 07,2444 71307 MASK MARKSTAT
010478,000506: 07,2445 10000 CCS A
010479,000507: 07,2446 12450 TCF +2 # THIS MARK NOT DESIRED
010480,000508: 07,2447 12525 TCF VACSTOR # MARK DESIRED - STORE CDUS
010481,000509: 07,2450 05567 TC ALARM
010482,000510: 07,2451 00114 OCT 114
010483,000511: 07,2452 05270 TC RESUME # RESUME - DISPLAY UNCHANGED - WAIT FOR ACTION
010484,000512:
Page 257 |
010486,000514: 07,2453 05567 5MKALARM TC ALARM # ATTEMPTING TO MAKE MORE THAN 5 MK PAIRS
010487,000515: 07,2454 00107 OCT 107
010488,000516: 07,2455 02513 TC MARKTYPE # SEE IF SURFACE MARK
010489,000517: 07,2456 12626 TCF DSPV6N79 # IT IS
010490,000518: 07,2457 05270 TC RESUME # DONT CHANGE DISPLAY - DO NOTHING
010491,000519:
Page 258 |
010493,000521: 07,2460 02513 MKREJ TC MARKTYPE # SEE IF SURFACE
010494,000522: 07,2461 12506 TCF SURFREJ # SURFACE - JUST CHECK MARK COUNTER
010495,000523:
010496,000524: 07,2462 35015 CAF PRIO3 # INFLIGHT - SEE IF MARKS MADE
010497,000525: 07,2463 71307 MASK MARKSTAT
010498,000526: 07,2464 10000 CCS A
010499,000527: 07,2465 12471 TCF REJECT # MARKS MADE - REJECT ONE
010500,000528: 07,2466 05567 REJALM TC ALARM # NO MARK TO REJECT - BAD PROCEDURE - ALARM
010501,000529: 07,2467 00115 OCT 115
010502,000530: 07,2470 05270 TC RESUME # DESIRED ACTION DISPLAYED
010503,000531:
010504,000532: 07,2471 44355 REJECT CS PRIO30 # ZERO BIT14, SHOW REJ.,SEE IF MARK SINCE
010505,000533: 07,2472 71307 MASK MARKSTAT # LAST REJECT
010506,000534: 07,2473 64737 AD BIT13
010507,000535: 07,2474 57307 XCH MARKSTAT
010508,000536: 07,2475 74737 MASK BIT13
010509,000537: 07,2476 10000 CCS A
010510,000538: 07,2477 12504 TCF REJECT2 # ANOTHER REJECT SET BIT 10+11 TO ZERO
010511,000539:
010512,000540: 07,2500 41551 CS XYMARK # MARK MADE SINCE REJECT - REJECT MARK IN 1D
010513,000541: 07,2501 71307 RENEWMK MASK MARKSTAT
010514,000542: 07,2502 55307 TS MARKSTAT
010515,000543: 07,2503 12576 TCF REMARK # GO REQUEST NEW MARK ACTION
010516,000544:
010517,000545: 07,2504 45015 REJECT2 CS PRIO3 # ON SECOND REJECT - DISPLAY VB53 AGAIN
010518,000546: 07,2505 12501 TCF RENEWMK
010519,000547:
010520,000548: 07,2506 11550 SURFREJ CCS MARKCNTR # IF MARK DECREMENT COUNTER
010521,000549: 07,2507 12511 TCF +2
010522,000550: 07,2510 12466 TCF REJALM # NO MARKS TO REJECT - ALARM
010523,000551: 07,2511 55550 TS MARKCNTR
010524,000552: 07,2512 05270 TC RESUME
010525,000553:
Page 259 |
010527,000555: # MARKTYPE TESTS TO SEE IF LEM ON LUNAR SURFACE. IF IT IS RETURN TO LOC+1
010528,000556:
010529,000557: 07,2513 40104 MARKTYPE CS FLAGWRD8 # SURFFLAG *******TEMPORARY*****
010530,000558: 07,2514 74744 MASK BIT8
010531,000559: 07,2515 10000 CCS A
010532,000560: 07,2516 24002 INCR Q # IF SURFACE MARK REUTNR TO LOC +1
010533,000561: 07,2517 00002 TC Q # IF INFLIGHT MARK RETURN TO LOC +2
010534,000562:
010535,000563: 07,2520 34755 SURFSTOR CAF ZERO # FOR SURFACE MARK ZERO MARK KIND INDEX
010536,000564: 07,2521 54070 TS RUPTREG1
010537,000565:
010538,000566: 07,2522 41307 CS MARKSTAT # SET BITS 10,11 TO SHOW SURFACE MARK
010539,000567: 07,2523 75015 MASK PRIO3 # FOR MARKCHEX
010540,000568: 07,2524 27307 ADS MARKSTAT
010541,000569:
010542,000570: 07,2525 35004 VACSTOR CAF LOW9
010543,000571: 07,2526 71307 MASK MARKSTAT # STORE MARK VAC ADR IN RUPTREG2
010544,000572: 07,2527 54071 TS RUPTREG2
010545,000573: 07,2530 00006 EXTEND
010546,000574: 07,2531 30062 DCA ITEMP1 # PICK UP MARKTIME
010547,000575: 07,2532 53562 DXCH TSIGHT # STORE LAST MARK TIME
010548,000576: 07,2533 31550 CA MARKCNTR # 6 X MARKCNTR FOR STORE INDEX
010549,000577: 07,2534 00006 EXTEND
010550,000578: 07,2535 76245 MP SIX
010551,000579: 07,2536 56001 XCH L # GET INDEX FROM LOW ORDER PART
010552,000580: 07,2537 60071 AD RUPTREG2 # SET CDU STORE INDEX TO MARKVAC
010553,000581: 07,2540 26070 ADS RUPTREG1 # INCREMENT VAC PICKUP BY MARK FOR FLIGHT
010554,000582: 07,2541 55552 TS MKDEX # STORE HERE IN CASE OF SURFACE MARK
010555,000583: 07,2542 30063 CA ITEMP3
010556,000584: 07,2543 50070 INDEX RUPTREG1
010557,000585: 07,2544 54000 TS 0 # STORE CDUY
010558,000586: 07,2545 30064 CA ITEMP4
010559,000587: 07,2546 50070 INDEX RUPTREG1
010560,000588: 07,2547 54002 TS 2 # STORE CDUZ
010561,000589: 07,2550 30065 CA ITEMP5
010562,000590: 07,2551 50070 INDEX RUPTREG1
010563,000591: 07,2552 54004 TS 4 # STORE CDUX
010564,000592: 07,2553 02513 TC MARKTYPE # IF SURFACE MARK - JUST DO SURFJOB
010565,000593: 07,2554 12603 TCF SURFJOB
010566,000594:
010567,000595: 07,2555 34737 CAF BIT13 # CLEAR BIT13 TO SHOW MARK MADE
010568,000596: 07,2556 61551 AD XYMARK # SET MARK ID IN MARKSTAT
010569,000597: 07,2557 40000 COM
010570,000598: 07,2560 71307 MASK MARKSTAT
010571,000599: 07,2561 61551 AD XYMARK
010572,000600: 07,2562 55307 TS MARKSTAT
010573,000601: 07,2563 75015 MASK PRIO3 # SEE IF X, Y MARK MADE
010574,000602: 07,2564 54001 TS L
010575,000603:
Page 260 |
010577,000605: 07,2565 35015 CA PRIO3
010578,000606: 07,2566 00006 EXTEND
010579,000607: 07,2567 06001 RXOR LCHAN
010580,000608: 07,2570 10000 CCS A
010581,000609: 07,2571 12576 TCF REMARK # NOT PAIR YET, DISPLAY MARK ACTION
010582,000610: 07,2572 41307 CS MARKSTAT # MARK PAIR COMPLETE - SET BIT14
010583,000611: 07,2573 74736 MASK BIT14
010584,000612: 07,2574 27307 ADS MARKSTAT
010585,000613: 07,2575 12576 TCF REMARK # GO DISPLAY V54
010586,000614:
Page 261 |
010588,000616: 07,2576 35015 REMARK CAF PRIO3 # BITS 10 AND 11
010589,000617: 07,2577 71307 MASK MARKSTAT
010590,000618: 07,2600 00006 EXTEND
010591,000619: 07,2601 74746 MP BIT6 # SHIFT MARK IDS TO BE 0 TO 3 FOR INDEX
010592,000620: 07,2602 55552 TS MKDEX # STORE VERB INDEX
010593,000621: 07,2603 35025 SURFJOB CAF PRIO15
010594,000622: 07,2604 05072 TC NOVAC # ENTER JOB TO CHANGE DISPLAY TO
010595,000623: 07,2605 E7,1551 EBANK= XYMARK # REQUEST NEXT ACTION
010596,000624: 07,2605 02610 16067 2CADR CHANGEVB
010597,000625:
010598,000626: 07,2607 05270 TC RESUME
010599,000627:
010600,000628: 07,2610 02513 CHANGEVB TC MARKTYPE
010601,000629: 07,2611 12626 TCF DSPV6N79 # SURFACE - DISPLAY V 06 N79
010602,000630: 07,2612 51552 INDEX MKDEX # INFLIGHT - PICK UP MARK VB INDEX
010603,000631: 07,2613 32615 CAF MKVB54
010604,000632: 07,2614 02211 TC PASTIT # PASTE UP NEXT MK VERB DISPLAY
010605,000633:
010606,000634: # THE FOUR MKVBS ARE INDEXED - THEIR ORDER CANNOT BE CHANGED
010607,000635:
010608,000636: 07,2615 15507 MKVB54 VN 5471 # MAKE X OR Y MARK
010609,000637: 07,2616 15307 MKVB53 VN 5371 # MAKE Y MARK
010610,000638: 07,2617 15107 MKVB52 VN 5271 # MAKE X MARK
010611,000639: 07,2620 15507 MKVB54* VN 5471 # MAKE X OR Y MARK
010612,000640: 07,2621 04000 00000 DP1/8 2DEC .125
010613,000641:
010614,000642: 07,2623 00034 OCT34 OCT 34
010615,000643: 07,2624 01507 V06N71 VN 671
010616,000644: 07,2625 01517 V06N79* VN 679
010617,000645:
Page 262 |
010619,000647: # ROUTINE TO REQUEST CURSOR AND SPIRAL MEASUREMENTS
010620,000648: 07,2626 COUNT* $$/R59
010621,000649:
010622,000650: 07,2626 32625 DSPV6N79 CAF V06N79* # CURSOR - SPIRAL DISPLAY
010623,000651: 07,2627 04616 TC BANKCALL
010624,000652: 07,2630 20334 CADR GOMARKF
010625,000653:
010626,000654: 07,2631 12060 TCF KILLAOT # V34 - DOES GOTOPOOH
010627,000655: 07,2632 12640 TCF SURFEND # V33 - PROCEED, END MARKING
010628,000656: 07,2633 34746 CAF BIT6 # IF V32 (OCT40) IN MPAC DO RECYCLE
010629,000657: 07,2634 70154 MASK MPAC # OTHERWISE IT IS LOAD VB ENTER SO
010630,000658: 07,2635 10000 CCS A # RE-DISPLAY V06N79
010631,000659: 07,2636 12644 TCF SURFAGAN # VB32 - RECYCLE
010632,000660: 07,2637 12626 TCF DSPV6N79 # ENTER
010633,000661:
010634,000662: 07,2640 44736 SURFEND CS BIT14 # SET BIT14 TO SHOW MARK END
010635,000663: 07,2641 71307 MASK MARKSTAT
010636,000664: 07,2642 64736 AD BIT14
010637,000665: 07,2643 55307 TS MARKSTAT
010638,000666:
010639,000667: 07,2644 31235 SURFAGAN CA CURSOR
010640,000668: 07,2645 51552 INDEX MKDEX # HOLDS VAC AREA POINTER FOR SURF MARKING
010641,000669: 07,2646 54001 TS 1 # STORE CURSOR SP 2COMP
010642,000670: 07,2647 31237 CA SPIRAL
010643,000671: 07,2650 51552 INDEX MKDEX
010644,000672: 07,2651 54003 TS 3 # STORE SPIRAL
010645,000673:
010646,000674: 07,2652 41307 CS MARKSTAT # IF BIT 14 SET - END MARKING
010647,000675: 07,2653 74736 MASK BIT14
010648,000676: 07,2654 00006 EXTEND
010649,000677: 07,2655 12216 BZF MARKCHEX
010650,000678: 07,2656 31550 CA MARKCNTR # THIS IS RECYCLE - SEE IF 5 MARKS ALREADY
010651,000679: 07,2657 64753 AD ONE
010652,000680: 07,2660 40000 COM
010653,000681: 07,2661 64756 AD FIVE
010654,000682: 07,2662 00006 EXTEND
010655,000683: 07,2663 62453 BZMF 5MKALARM # CANT RECYCLE - TO MANY MARKS - ALARM
010656,000684: 07,2664 25550 INCR MARKCNTR # OF FOR RECYCLE - INCR COUNTER
010657,000685: 07,2665 12205 TCF GETMKS +3 # GO DISPLAY MARK VB
010658,000686:
End of include-file AOTMARK.agc. Parent file is MAIN.agc