Source Code

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