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