Source Code
These source-code files are part of a reconstructed copy of Corona 261, the
final, flown release of the Block I Command Module (CM) Apollo Guidance Computer
(AGC) software for the AS-202 mission.
They have been created via disassembly of binary dumps of the original core rope memory modules actually flown on the mission, part numbers 1003733-171, 1003733-241, 1003733-191, 1003733-211, 1003733-221, and 1003733-241. The source code for the Apollo 4 and 6 software, Solarium 55, was used as a starting point, since it was directly derived from Corona and (at least in theory) only minimally modified. Since only binary dumps (rather than listings) of Corona are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
007171,000002: ## Copyright: Public domain.
007172,000003: ## Filename: MODE_SWITCHING_AND_MARK_ROUTINES.agc
007173,000004: ## Purpose: A section of Corona revision 261.
007174,000005: ## It is part of the source code for the Apollo Guidance Computer
007175,000006: ## (AGC) for AS-202. No original listings of this software are
007176,000007: ## available; instead, this file was created via disassembly of
007177,000008: ## the core rope modules actually flown on the mission.
007178,000009: ## Assembler: yaYUL
007179,000010: ## Contact: Ron Burkey <info@sandroid.org>.
007180,000011: ## Website: www.ibiblio.org/apollo/index.html
007181,000012: ## Mod history: 2023-05-27 MAS Created from Solarium 55.
007182,000013: ## 2023-06-17 MAS Updated for Corona.
007183,000014:
007184,000015:
007185,000016: # THE FOLLOWING SET OF PROGRAMS ARE USED TO SELECTTHE VARIOUS MODES OF THE IMU AND OPTICS. THE FOLLOWING
007186,000017: # MODES ARE POSSIBLE:
007187,000018:
007188,000019: # IMUZERO ZEROS IMU CDUS.
007189,000020: # IMUCOARS COARSE ALIGNS IMU.
007190,000021: # IMURECOR RETURNS IMU FROM FINE ALIGN TO COARSE ALIGN
007191,000022: # IMUFINE PREPARES TO PULSE TORQUE THE GYROS.
007192,000023: # IMUFINNW SWITCHES TO FINE WITH NO DELAY FOR IRIG CENTERING-DONT ENTER FROM COARSE ALIGN MODE.
007193,000024: # IMUATTC USE IMU FOR S/C ATTITUDE CONTROL.
007194,000025: # IMUREENT USE IMU FOR ROLL RE-ENTRY.
007195,000026: # IMULOCK LOCKS IMU CDUS.
007196,000027:
007197,000028: # IMUFINIS(**)RELEASES IMU
007198,000029: # IMUSTALL(*) IMU MODE IDLING AND ERROR CHECKING.
007199,000030:
007200,000031:
007201,000032:
007202,000033: # OPTZERO ZERO OPTICS CDUS.
007203,000034: # OPTCOARS DUMMY OPTICS COARSE-ALIGN MODE.
007204,000035: # OPTTRKON OPTICS TRACKER ON.
007205,000036:
007206,000037: # SCTMARK REQUEST N SCANNING TELESCOPE MARKS.
007207,000038: # SXTMARK REQUEST N SEXTANT MARKS.
007208,000039: # MKRELEAS(**)RELEASE MARK SYSTEM.
007209,000040:
007210,000041: # OPTFINIS(**)RELEASE OPTICS.
007211,000042: # OPTSTALL(*) OPTICS MODE-IDLING AND ERROR CHECKING.
007212,000043:
007213,000044:
007214,000045:
007215,000046: # OPTICS AND IMU MODE ROUTINES MAY BE USED CONCURRENTLY.
007216,000047:
007217,000048: # IN ADDITION, A ROUTINE WHICH INCREMENTS ANY DESIRED 2S COMPLEMENT ANGLE BY AN INPUT AMOUNT IS
007218,000049: # INCLUDED (CDUINC).
007219,000050:
007220,000051:
007221,000052:
007222,000053: # CALLING SEQUENCE IS AS FOLLOWS:
007223,000054:
007224,000055: # L-1 CAF NO.MARKS (FOR SCTMARK AND SXTMARK ONLY).
007225,000056: # L TC BANKCALL
007226,000057: # L+1 CADR (SUBRO) ANY OF THE 14 MODE ROUTINES OR CDUINC.
007227,000058:
007228,000059:
007229,000060:
007230,000061: # (*) THE STALL ROUTINES ARE CALLED TO TERMINATE ANY MODE REQUEST. THE REQUESTING JOB IS STALLED UNTIL
007231,000062: # THE MODE-SWITCHING IS COMPLETE (WITH VAC-AREA PROTECTED) AND RETURN IS TO L+2 IF UNSUCCESSFUL AND L+3 IF THE
007232,000063: # DESIRED MODE WAS SUCCESSFULLY ACHIEVED.
007233,000064:
007234,000065: # (**) NO STALL ROUTINE NECESSARY IN CONJUNCTION WITH THIS REQUEST.
007235,000066:
007236,000067:
007237,000068: # SPECIAL DP TIME COUNTER READING ROUTINE.
007238,000069:
007239,000070: 2677 BANK 1
007240,000071: 2677 20017 READTIME INHINT # ENTRY IF UNDER EXECUTIVE.
007241,000072: 2700 40035 CS TIME2 # ENTRY IF IN INTERRUPT.
007242,000073: 2701 50572 TS RUPTSTOR
007243,000074: 2702 40036 CS TIME1
007244,000075: 2703 50573 TS RUPTSTOR +1
007245,000076: 2704 10000 CCS A # IF MINOR PART ZERO, MAJOR PART COULD
007246,000077: 2705 00001 TC Q
007247,000078: 2706 10000 CCS A
007248,000079: 2707 00001 TC Q
007249,000080: 2710 40035 CS TIME2 # UP, SO READ IT AGIN.
007250,000081: 2711 50572 TS RUPTSTOR
007251,000082: 2712 00001 TC Q
007252,000083:
007253,000084: # ROUTINE TO READ FINE TIME IN IN2 EVEN IF IT CHANGES AS ITS BEING READ. CALL IN INHINT.
007254,000085:
007255,000086: 2713 30006 FINETIME XCH IN2 # MAY BE CALLED UNDER EXEC OR RUPT.
007256,000087: 2714 30006 XCH IN2
007257,000088: 2715 72356 MASK FINEMASK # NOTE THAT THE OR OF TWO STATES A AND B
007258,000089: 2716 50577 TS ITEMP1 # IS NOT LESS THAN EITHER A OR B.
007259,000090: 2717 30006 XCH IN2
007260,000091: 2720 72356 MASK FINEMASK
007261,000092: 2721 50600 TS ITEMP2
007262,000093: 2722 40000 COM # SELECT THE MINIMUM OF THE LAST TWO
007263,000094: 2723 60577 AD ITEMP1 # STATES READ.
007264,000095: 2724 10000 CCS A
007265,000096: 2725 30600 XCH ITEMP2
007266,000097: 2726 00001 TC Q
007267,000098: 2727 30000 NOOP
007268,000099: 2730 30577 XCH ITEMP1
007269,000100: 2731 00001 TC Q
007270,000101:
007271,000102: # SUBROUTINE TO ZERO IMU CDU COUNTERS.
007272,000103:
007273,000104: 2732 35501 ZEROICTR CAF ZERO # USED BY AUTOMATIC AND MANUAL ZEROING
007274,000105: 2733 50047 TS CDUX # ROUTINES.
007275,000106: 2734 50050 TS CDUY
007276,000107: 2735 50051 TS CDUZ
007277,000108: 2736 00001 TC Q
007278,000109:
007279,000110:
007280,000111:
007281,000112: 2737 40572 LODSAMPT CS RUPTSTOR # TIME IS SNATCHED IN RUPT FOR NOUN 65
007282,000113: 2740 30643 XCH SAMPTIME
007283,000114: 2741 40573 CS RUPTSTOR +1
007284,000115: 2742 30644 XCH SAMPTIME +1
007285,000116: 2743 00001 TC Q
007286,000117:
007287,000118:
007288,000119: # SETZLIT SETS THE ZERO ENCODER LAMP ACCORDING TO THE DESIRED-MODE REGISTERS DESKSET AND DESOPSET.
007289,000120:
007290,000121: 2744 30001 SETZLIT XCH Q
007291,000122: 2745 50577 TS ITEMP1
007292,000123:
007293,000124: 2746 10731 CCS DESKSET
007294,000125: 2747 02753 TC +4 # COMPUTER COMMANDING-MAY BE ZEROING.
007295,000126: 2750 02757 TC OPTZTEST # NOT MANUAL ZERO.
007296,000127: 2751 02774 TURNONZ TC ZLITON # MANUAL ZEROING MODE.
007297,000128: 2752 00577 TC ITEMP1
007298,000129:
007299,000130: 2753 64516 +4 AD ONE
007300,000131: 2754 74516 MASK BIT1
007301,000132: 2755 10000 CCS A
007302,000133: 2756 02751 TC TURNONZ # COMPUTER COMMANDING ZERO-ENCODER
007303,000134:
007304,000135: 2757 10732 OPTZTEST CCS DESOPSET
007305,000136: 2760 02763 TC +3 # MAY BE COMMANDING OPTICS ZERO.
007306,000137: 2761 02767 TC ZLITOFF # NOT MANUAL ZERO-TURN LIGHT OFF.
007307,000138: 2762 02751 TC TURNONZ # MANUAL OPTICS
007308,000139:
007309,000140: 2763 64516 +3 AD ONE
007310,000141: 2764 74503 MASK BIT12
007311,000142: 2765 10000 CCS A
007312,000143: 2766 02751 TC TURNONZ
007313,000144:
007314,000145: 2767 45070 ZLITOFF CS ZLITBITS # TURN OFF ZERO ENCODER LAMP.
007315,000146: 2770 70723 MASK DSPTAB +11D
007316,000147: 2771 64500 AD BIT15
007317,000148: 2772 50723 TS DSPTAB +11D
007318,000149: 2773 00577 TC ITEMP1
007319,000150:
007320,000151: 2774 45070 ZLITON CS ZLITBITS # TURN ON ZERO-ENCODER LAMP.
007321,000152: 2775 70723 MASK DSPTAB +11D
007322,000153: 2776 65070 AD ZLITBITS
007323,000154: 2777 50723 TS DSPTAB +11D
007324,000155: 3000 00001 TC Q
007325,000156:
007326,000157: 3001 5070 ZLITBITS EQUALS OCT40020 # CS CYR IN DMP.
007327,000158:
007328,000159:
007329,000160: # IMU ZEROING ROUTINE.
007330,000161:
007331,000162: 14,6000 SETLOC 30000
007332,000163:
007333,000164: 14,6000 44516 IMUZERO CS ONE # DISABLE CDU DRIVE
007334,000165: 14,6001 50677 TS CDUIND # BY SETTING CDUIND NEGATIVE.
007335,000166:
007336,000167: 14,6002 06245 TC SETKANDC # GO TO SUBROUTINE TO SWITCH C RELAYS
007337,000168: 14,6003 00051 OCT 00051 # = C(DESKSET)=COMP CONT+ZERO+FINE
007338,000169: 14,6004 40011 OCT 40011 # = C SETTING FOR FINE + ZERO
007339,000170: 14,6005 02774 TC ZLITON # TURN ON ENCODER ZEROING LAMP
007340,000171:
007341,000172: 14,6006 44513 CS BIT4 # DISABLE IMU FAIL FOR 5 SEC IN CASE WE
007342,000173: 14,6007 70726 MASK OLDERR # JUST CAME OUT OF COARSE ALIGN.
007343,000174: 14,6010 64513 AD BIT4
007344,000175: 14,6011 50726 TS OLDERR
007345,000176: 14,6012 34505 CAF BIT10
007346,000177: 14,6013 02173 TC WAITLIST
007347,000178: 14,6014 30201 CADR IFAILOK
007348,000179:
007349,000180: 14,6015 36077 CAF 35SECS # SET A WAITLIST CALL FOR 35 SECONDS
007350,000181: 14,6016 02173 TC WAITLIST # SO THOSE SHAFTS WILL HAVE TIME TO GET
007351,000182: 14,6017 30022 CADR IMUZEROD # THERE.
007352,000183: 14,6020 20016 MODEEXIT RELINT # GENERAL EXIT FROM MODE SWITCH PROGS
007353,000184: 14,6021 05702 TC SWRETURN # WHICH LEAVES VIA SWCALL EXIT
007354,000185:
007355,000186: 14,6022 02732 IMUZEROD TC ZEROICTR # GO AND ZERO X, Y, AND Z COUNTERS
007356,000187:
007357,000188: 14,6023 06070 TC KCHECK # SEE IF SYSTEM STILL FUNCTIONING OK.
007358,000189: 14,6024 06246 MOREZERO TC SETKANDC +1 # CALL FOR 10 SECONDS OF FINE ALIGN TO
007359,000190: 14,6025 00050 OCT 00050 # ALLOW CDUS TO GO AT LEAST 90 DEGREES
007360,000191: 14,6026 40010 OCT 40010 # OF THE WAY HOME UNLESS THE PLATFORM IS
007361,000192: 14,6027 36101 CAF 10SECS # SITTING AT ANY FALSE NULLS.
007362,000193: 14,6030 02173 TC WAITLIST
007363,000194: 14,6031 30033 CADR ZEROATTC # WE WILL GO INTO ATTITUTE CONTROL NEXT.
007364,000195: 14,6032 02256 TC TASKOVER
007365,000196:
007366,000197: 14,6033 06070 ZEROATTC TC KCHECK # USUAL SYSTEM CHECK.
007367,000198: 14,6034 06246 TC SETKANDC +1 # COMMAND ATTITUDE CONTROL (WITHOUT ATTC
007368,000199: 14,6035 00060 OCT 00060 # LAMP LIT) SO THAT WE CAN DRIVE THE CDUS
007369,000200: 14,6036 41000 OCT 41000 # (LIGHT ON AFTER ALL) AWAY FROM FALSE NUL
007370,000201: 14,6037 36103 CAF 320MS
007371,000202: 14,6040 02173 TC WAITLIST
007372,000203: 14,6041 30043 CADR ZERODRVE # WAIT FOR MODE SWITCH BEFORE ENABLING CDU
007373,000204: 14,6042 02256 TC TASKOVER # DRIVE IN T4RUPT.
007374,000205:
007375,000206: 14,6043 06070 ZERODRVE TC KCHECK # VERIFY SWITCH TO ATTITUDE CONTROL.
007376,000207: 14,6044 34502 CAF QUARTER # WE WILL DRIVE THE CDUS TOWARD 45 DEGREES
007377,000208: 14,6045 50700 TS THETAD # FOR 2SECS (ABOUT 10 DEGREES OF MOVEMENT
007378,000209: 14,6046 50701 TS THETAD +1 # AT MOST). THIS WILL DRIVE ANY CDUS OFF
007379,000210: 14,6047 50702 TS THETAD +2 # FALSE NULLS WITHOUT MOVING THE PLATFORM
007380,000211: 14,6050 35501 CAF ZERO
007381,000212: 14,6051 50677 TS CDUIND # CDU LOOPS ARE NOW ENABLED.
007382,000213: 14,6052 36102 CAF 2SECS
007383,000214: 14,6053 02173 TC WAITLIST
007384,000215: 14,6054 30056 CADR REZFINE # GO BACK TO FINE ALIGN WHEN DONE.
007385,000216: 14,6055 02256 TC TASKOVER
007386,000217:
007387,000218: 14,6056 06070 REZFINE TC KCHECK # VERIFY MODE SWITCH AS USUAL.
007388,000219: 14,6057 06246 TC SETKANDC +1 # CALL FOR 20 SECONDS OF FINE ALIGN TO
007389,000220: 14,6060 00050 OCT 00050 # ALLOW ENOUGH TIME FOR THE CDUS TO FIND
007390,000221: 14,6061 40010 OCT 40010 # THE GIMBALS.
007391,000222: 14,6062 44516 CS ONE
007392,000223: 14,6063 50677 TS CDUIND # CDU LOOPS NOW DISABLED.
007393,000224: 14,6064 36100 CAF 20SECS
007394,000225: 14,6065 02173 TC WAITLIST
007395,000226: 14,6066 30171 CADR IMUFINED # CHECK FORPRESENCE OF IMU OR CDU FAILS.
007396,000227: 14,6067 02256 TC TASKOVER
007397,000228:
007398,000229:
007399,000230:
007400,000231: 14,6070 10727 KCHECK CCS WASKSET # RETURN TO CALLER IF SYSTEM OK - SET UP
007401,000232: 14,6071 00001 TC Q # ERROR RETURN AT ENDIMU OTHERWISE.
007402,000233: 14,6072 06264 TC ENDIMU
007403,000234: 14,6073 00001 TC Q
007404,000235: 14,6074 06264 TC ENDIMU
007405,000236:
007406,000237: 14,6075 21450 90SECS DEC 90.00 E2
007407,000238: 14,6076 10624 45SECS DEC 45.00 E2 # TIME FOR IMUCDU COARSE ALIGN.
007408,000239: 14,6077 06654 35SECS DEC 35.00 E2 # TIME FOR IMUCDU ZERO ENCODER.
007409,000240: 14,6100 03720 20SECS DEC 20.00 E2
007410,000241: 14,6101 01750 10SECS DEC 10.00 E2
007411,000242: 14,6102 00310 2SECS DEC 2.00 E2
007412,000243: 14,6103 00040 320MS DEC .32 E2
007413,000244:
007414,000245:
007415,000246: # IMU COARSE ALIGN PROGRAM
007416,000247:
007417,000248: 14,6104 06245 IMUCOARS TC SETKANDC # SET DESIRED C AND K RELAY SETTINGS.
007418,000249: 14,6105 00042 OCT 00042 # COMPUTER CONTROL . COARSE ALIGN.
007419,000250: 14,6106 40002 OCT 40002 # C RELAY COARSE ALIGN.
007420,000251:
007421,000252: 14,6107 02744 TC SETZLIT # SERVICE THE ZERO ENCODER LAMP
007422,000253:
007423,000254: 14,6110 36103 CAF 320MS # SET WAITLIST CALL FOR 320 M.S. TO
007424,000255: 14,6111 02173 TC WAITLIST # ACCOMMODATE CONTACT BOUNCE + T4RUPT LAG
007425,000256: 14,6112 30125 CADR BEGINCOM
007426,000257: 14,6113 06020 TC MODEEXIT
007427,000258:
007428,000259:
007429,000260:
007430,000261: 14,6114 40047 RECOARSD CS CDUX # GOING BACK INTO COARSE ALIGN FROM FINE
007431,000262: 14,6115 40000 COM # ALIGN. PUT CDU COUNTER VALUES INTO
007432,000263: 14,6116 50700 TS THETAD # DESIRED ANGLE REGISTERS AND ENABLE THE
007433,000264: 14,6117 40050 CS CDUY # T4RUPT CDU DRIVE.
007434,000265: 14,6120 40000 COM
007435,000266: 14,6121 50701 TS THETAD +1
007436,000267: 14,6122 40051 CS CDUZ
007437,000268: 14,6123 40000 COM
007438,000269: 14,6124 50702 TS THETAD +2
007439,000270:
007440,000271: 14,6125 06070 BEGINCOM TC KCHECK # VERIFY CORRECTNESS OF PRESENT MODE.
007441,000272: 14,6126 35501 STARTCRS CAF ZERO # ENABLE CDU LOOP CLOSURE
007442,000273: 14,6127 50677 TS CDUIND
007443,000274:
007444,000275: 14,6130 36076 CAF 45SECS
007445,000276: 14,6131 02173 TC WAITLIST # CDU LOOPS TO SETTLE
007446,000277: 14,6132 30214 CADR COARSDON
007447,000278: 14,6133 02256 TC TASKOVER
007448,000279:
007449,000280:
007450,000281: # IMU FINE ALIGN PROGRAM
007451,000282:
007452,000283: 14,6134 06245 IMURECOR TC SETKANDC # GO INTO COARSE ALIGN FROM FINE ALIGN.
007453,000284: 14,6135 00042 OCT 00042 # (SEE REMARKS ON RECOARSD FOR FURTHER
007454,000285: 14,6136 40002 OCT 40002 # DETAILS).
007455,000286: 14,6137 36103 CAF 320MS # USUAL CONTACT CLOSURE AND SAMPLE TIME
007456,000287: 14,6140 02173 TC WAITLIST
007457,000288: 14,6141 30114 CADR RECOARSD
007458,000289: 14,6142 06160 TC DISEXIT # DISABLE GYRO ACTIVITY.
007459,000290:
007460,000291: 14,6143 06245 IMUFINE TC SETKANDC # SET UP C RELAY PATTERN AND DESIRED K
007461,000292: 14,6144 00050 OCT 00050 # DES K = COMPUTER CONTROL + FINE
007462,000293: 14,6145 40010 OCT 40010 # C = FINE ALIGN
007463,000294:
007464,000295: 14,6146 44513 CS BIT4 # COMES THROUGH HERE AFTER EVERY COARSE
007465,000296: 14,6147 70726 MASK OLDERR # ALIGN. SET BIT 4 OF OLDERR TO INHIBIT
007466,000297: 14,6150 64513 AD BIT4 # IMU FAIL FOR ANOTHER 5 SECONDS.
007467,000298: 14,6151 50726 TS OLDERR
007468,000299:
007469,000300: 14,6152 34505 CAF BIT10
007470,000301: 14,6153 02173 TC WAITLIST
007471,000302: 14,6154 30201 CADR IFAILOK
007472,000303:
007473,000304: 14,6155 36075 CAF 90SECS # SET WAITLIST CALL FOR 90 SEC. TO ALLOW
007474,000305: 14,6156 02173 TC WAITLIST # GYROS TO RE-CENTER BEFORE IRIG PULSE
007475,000306: 14,6157 30171 CADR IMUFINED # TORQUING
007476,000307: 14,6160 44516 DISEXIT CS ONE # DISABLE T4 IMU (CDU OR GYRO) ACTIVITY.
007477,000308: 14,6161 50677 TS CDUIND
007478,000309: 14,6162 06020 TC MODEEXIT
007479,000310:
007480,000311:
007481,000312:
007482,000313: 14,6163 06747 IMUFINNW TC TSTIMACT
007483,000314:
007484,000315: 14,6164 06245 TC SETKANDC
007485,000316: 14,6165 00050 OCT 00050
007486,000317: 14,6166 40010 OCT 40010
007487,000318: 14,6167 36103 CAF 320MS
007488,000319: 14,6170 06156 TC DISEXIT -2
007489,000320:
007490,000321:
007491,000322: 14,6171 03436 IMUFINED TC FLAG1DWN
007492,000323: 14,6172 02000 OCT 02000
007493,000324:
007494,000325: 14,6173 06264 TC ENDIMU
007495,000326:
007496,000327: 14,6174 34503 CAF BIT12 # NO IMU FAILS, PLEASE.
007497,000328: 14,6175 70726 MASK OLDERR
007498,000329: 14,6176 10000 CCS A
007499,000330: 14,6177 06305 TC FAILEND
007500,000331: 14,6200 06314 TC GOODEND
007501,000332:
007502,000333: 14,6201 44513 IFAILOK CS BIT4 # ENABLE IMU FAIL 5 SECONDS AFTER COMING
007503,000334: 14,6202 70726 MASK OLDERR # OUT OF COARSE ALIGN.
007504,000335: 14,6203 50726 TS OLDERR
007505,000336: 14,6204 02256 TC TASKOVER
007506,000337:
007507,000338:
007508,000339: # CDU LOCK PROGRAM
007509,000340:
007510,000341: 14,6205 06245 IMULOCK TC SETKANDC # SET APPROPRIATE K AND C CONFIGS.
007511,000342: 14,6206 00044 OCT 00044
007512,000343: 14,6207 40004 OCT 40004
007513,000344:
007514,000345: 14,6210 36103 CAF 320MS
007515,000346: 14,6211 02173 TC WAITLIST # PLACE.
007516,000347: 14,6212 30214 CADR IMULOCKD
007517,000348: 14,6213 06160 TC DISEXIT
007518,000349:
007519,000350: 14,6214 06264 IMULOCKD TC ENDIMU
007520,000351: 14,6215 06314 TC GOODEND
007521,000352:
007522,000353: 14,6216 14,6214 COARSDON EQUALS IMULOCKD
007523,000354:
007524,000355:
007525,000356: # IMU RE-ENTRY AND ATTITUDE CONTROL PROGRAMS
007526,000357:
007527,000358: 14,6216 06747 IMUREENT TC TSTIMACT
007528,000359: 14,6217 06245 TC SETKANDC
007529,000360: 14,6220 00140 OCT 00140
007530,000361: 14,6221 42000 OCT 42000
007531,000362: 14,6222 06227 TC ENABEXIT
007532,000363:
007533,000364:
007534,000365:
007535,000366: 14,6223 06747 IMUATTC TC TSTIMACT
007536,000367: 14,6224 06245 TC SETKANDC
007537,000368: 14,6225 00060 OCT 00060
007538,000369: 14,6226 41000 OCT 41000
007539,000370:
007540,000371: 14,6227 36103 ENABEXIT CAF 320MS
007541,000372: 14,6230 02173 TC WAITLIST
007542,000373: 14,6231 30233 CADR ENABLE
007543,000374: 14,6232 06160 TC DISEXIT # DISABLE POSSIBLE GYRO ACTIVITY.
007544,000375:
007545,000376: 14,6233 03436 ENABLE TC FLAG1DWN
007546,000377: 14,6234 02000 OCT 02000
007547,000378:
007548,000379: 14,6235 06264 TC ENDIMU
007549,000380:
007550,000381: 14,6236 35501 CAF ZERO # ENABLE CDU LOOPS
007551,000382: 14,6237 50677 TS CDUIND
007552,000383: 14,6240 06314 TC GOODEND
007553,000384: # NOTICE THAT NO INSPECTION OF CDU AND IMU
007554,000385: # ERROR SIGNALS IS MADE SINCE IN THESE
007555,000386: # MODES THE MAIN PROGRAM MUST CHECK THE
007556,000387: # STATUS OF THESE SIGNALS PERIODICALLY.
007557,000388:
007558,000389:
007559,000390:
007560,000391: # IMUFINIS - TO BE CALLED AT THE END OF COMPUTER-CONTROLLED MODE SWITCHING. PLACES MODE SAMPLING INTO
007561,000392: # MANUAL CONTROL, SWITCHES THE SYSTEM TO FINE ALIGN, AND DISABLES THE T4RUPT CDU DRIVE. NO CALL TO IMUSTALL IS
007562,000393: # REQUIRED HERE.
007563,000394:
007564,000395: 14,6241 06245 IMUFINIS TC SETKANDC
007565,000396: 14,6242 00000 OCT 00000 # 0 MEANS COMPUTER IS NO LONGER IN CONTROL
007566,000397: 14,6243 40010 OCT 40010 # FINE ALIGN C-RELAY CODE.
007567,000398: 14,6244 06160 TC DISEXIT
007568,000399:
007569,000400:
007570,000401: # SUBROUTINE USED BY MODE-SWITCHING PROGRAMS TO SET DESIRED K- AND C-RELAY SETTINGS.
007571,000402:
007572,000403: 14,6245 20017 SETKANDC INHINT # INHINT AND EXIT WITH INTERRUPT INHIBITED
007573,000404: 14,6246 20001 INDEX Q
007574,000405: 14,6247 30000 CAF 0
007575,000406: 14,6250 50731 TS DESKSET # DESIRED K-RELAY SETTING AS READ IN IN3.
007576,000407:
007577,000408: 14,6251 36260 CAF OFFMSK # SET C-RELAYS FOR ZERO ENCODER, COARSE
007578,000409: 14,6252 70723 MASK DSPTAB +11D # ALIGN, FINE ALIGN, LOCK CDU, ROLL
007579,000410: 14,6253 20001 INDEX Q # RE-ENTRY, AND ATTITUDE CONTROL LAMP.
007580,000411: 14,6254 60001 AD 1
007581,000412: 14,6255 50723 TS DSPTAB +11D
007582,000413:
007583,000414: 14,6256 20001 INDEX Q
007584,000415: 14,6257 00002 TC 2 # RETURN TO CALLER IN INHINT.
007585,000416:
007586,000417: 14,6260 34760 OFFMSK OCT 34760
007587,000418:
007588,000419:
007589,000420: # WHEN A MODE-SWITCHING TASK IS DISPATCHED TO INDICATE THE END OF A MODE-SWITCH, ENDIMU (OR ENDOPT) IS
007590,000421: # CALLED TO WAKE UP ANY JOB IMUSTALL (OPTSTALL) MIGHT HAVE PUT TO SLEEP AND THEN CHECK WASKSET (WASOPSET) TO SEE
007591,000422: # THAT THE MODE-SWITCH WAS SUCCESSFUL.
007592,000423:
007593,000424: 14,6261 35503 ENDOPT CAF TWO
007594,000425: 14,6262 64476 AD POSMAX
007595,000426: 14,6263 50034 TS OVCTR # SKIP WITH C(A) = 1.
007596,000427:
007597,000428: 14,6264 35501 ENDIMU CAF ZERO
007598,000429: 14,6265 50640 TS RUPTREG2 # 0 FOR IMU, 1 FOR OPTICS.
007599,000430:
007600,000431: 14,6266 30001 XCH Q
007601,000432: 14,6267 50637 TS RUPTREG1
007602,000433:
007603,000434: 14,6270 20640 INDEX RUPTREG2
007604,000435: 14,6271 10733 CCS MODECADR # SEE IF IMUSTALL (OPTSTALL) PUT A JOB
007605,000436: 14,6272 06274 TC +2 # TO SLEEP.
007606,000437: 14,6273 06300 TC ENDMODE # +0 IF NOT.
007607,000438: 14,6274 34516 CAF ONE # SET PROPER MODECADR TO 1 TO INDICATE
007608,000439: 14,6275 20640 INDEX RUPTREG2 # A JOB WAS AWAKENED.
007609,000440: 14,6276 30733 XCH MODECADR
007610,000441: 14,6277 02060 TC JOBWAKE
007611,000442:
007612,000443: 14,6300 20640 ENDMODE INDEX RUPTREG2 # CHECK PROPER *WAS* REGISTER TO SEE IF
007613,000444: 14,6301 10727 CCS WASKSET # SWITCH WAS SUCCESSFUL.
007614,000445: 14,6302 00637 TC RUPTREG1 # YES - RETURN FOR MORE CHECKING IF OK.
007615,000446: 14,6303 06305 TC +2 # FAILED - STILL WAITING TO SWITCH.
007616,000447: 14,6304 00637 TC RUPTREG1 # MANUAL INHIBIT.
007617,000448:
007618,000449: 14,6305 20640 FAILEND INDEX RUPTREG2 # COMES HERE TO SIGNAL ERROR RETURN FROM
007619,000450: 14,6306 10733 CCS MODECADR # MODE STALL ROUTINES.
007620,000451: 14,6307 06311 TC +2 # JOB WAS WAKENED EARLIER - EXIT W/O INCR.
007621,000452: 14,6310 40000 COM # NO WAKE-UP - SET MODECADR TO -0 FOR FAIL
007622,000453: 14,6311 20640 LVENDMOD INDEX RUPTREG2
007623,000454: 14,6312 50733 TS MODECADR
007624,000455: 14,6313 02256 TC TASKOVER
007625,000456:
007626,000457: 14,6314 20640 GOODEND INDEX RUPTREG2 # COMES HERE TO SIGNAL A SUCCESSFUL SWITCH
007627,000458: 14,6315 10733 CCS MODECADR
007628,000459: 14,6316 06321 TC BUMPJOB # JOB WAS AWAKENED - INCREMENT LOC.
007629,000460: 14,6317 44516 CS ONE # NO WAKE - SET MODECADR TO -1 TO INDICATE
007630,000461: 14,6320 06311 TC LVENDMOD # SUCCESS.
007631,000462:
007632,000463: 14,6321 20601 BUMPJOB INDEX LOCCTR # ARRIVES WITH C(A) = 0. LOCCTR SET TO
007633,000464: 14,6322 30120 XCH LOC # AWAKENED JOB REGISTERS.
007634,000465: 14,6323 64335 AD MINUS1 # LOC IS NEGATIVE FOR BASIC JOBS.
007635,000466: 14,6324 20601 INDEX LOCCTR
007636,000467: 14,6325 30120 XCH LOC
007637,000468: 14,6326 06311 TC LVENDMOD # SET MODECADR TO +0 AND EXIT.
007638,000469:
007639,000470:
007640,000471: # WHEN A JOB WHICH REQUESTED A MODE SWITCH MUST IDLE UNTIL THE SWITCH IS COMPLETE, IT COMES TO IMUSTALL
007641,000472: # (OR OPTSTALL) TO WAIT FOR THE COMPLETION AND TO DO ERROR CHECKING. RETURN IS TO THE LOCATION IMMEDIATELY FOLLOW-
007642,000473: # ING THE CALLING SEQUENCE IF THE SWITCH WAS UNSUCCESSFUL, AND THE NEXT LOCATION IF IT WAS SUCCESSFUL. ANY
007643,000474: # IDLING IS DONE BY PUTTING THE JOB TO SLEEP, SO THAT A VAC AREA (IF USED) WOULD BE PRESERVED.
007644,000475:
007645,000476: 14,6327 34516 OPTSTALL CAF ONE # 0 FOR IMU AND 1 FOR OPTICS AS USUAL.
007646,000477: 14,6330 06332 TC +2
007647,000478:
007648,000479: 14,6331 35501 IMUSTALL CAF ZERO
007649,000480: 14,6332 20017 INHINT # ONE SUB-SYSTEM AT A TIME ONLY.
007650,000481: 14,6333 50640 TS RUPTREG2
007651,000482: 14,6334 20000 INDEX A
007652,000483: 14,6335 10733 CCS MODECADR # SEE IF MODE SWITCH IS COMPLETE.
007653,000484: 14,6336 06357 TC MODABORT # VERY ILL IF SOMEONE ALREADY WAITING.
007654,000485: 14,6337 06352 TC MODESLP # MODE SWITCH INCOMPLETE - PUT JOB TO REST
007655,000486: 14,6340 06344 TC MODEGOOD # -1 INDICATES A SUCCESSFULLY COMPLETED SW
007656,000487:
007657,000488: 14,6341 20640 MG2 INDEX RUPTREG2 # -0 MEANS FINISHED BUT FAILED.
007658,000489: 14,6342 50733 TS MODECADR # RESET TO +0.
007659,000490: 14,6343 06020 TC MODEEXIT # RELINT AND RETURN VIA SWCALL.
007660,000491:
007661,000492: 14,6344 10000 MODEGOOD CCS A # SEE THAT MODECADR WAS INDEED -1.
007662,000493: 14,6345 06357 TC MODABORT # VERY ILL IF SOMEONE ALREADY WAITING.
007663,000494: 14,6346 30071 XCH TEMQS # INCREMENT RETURN TO INDICATE SUCCESS.
007664,000495: 14,6347 64516 AD ONE
007665,000496: 14,6350 30071 XCH TEMQS # BRING +0 BACK
007666,000497: 14,6351 06341 TC MG2 # TO RESET MODECADR AND EXIT.
007667,000498:
007668,000499: 14,6352 05706 MODESLP TC MAKECADR # MAKE CADR FROM SWCALL RETUN ADDRESS.
007669,000500: 14,6353 30062 XCH ADDRWD
007670,000501: 14,6354 20640 INDEX RUPTREG2
007671,000502: 14,6355 50733 TS MODECADR
007672,000503: 14,6356 02127 TC JOBSLEEP
007673,000504:
007674,000505: 14,6357 03052 MODABORT TC ABORT # IMU OR OPTSTALL ABORT.
007675,000506: 14,6360 01210 OCT 01210
007676,000507:
007677,000508: 14,6361 ENDSTALL EQUALS
007678,000509:
007679,000510:
007680,000511: # THE FOLLOWING ROUTINE INCREMENTS IN 2S COMPLEMENT THE REGISTER WHOSE ADDRESS IS IN ADDRWD BY THE
007681,000512: # QUANTITY FOUND IN TEM2. THIS MAY BE USED TO INCREMENT DESIRED IMU AND OPTICS CDU ANGLES OR ANY OTHER 2S
007682,000513: # COMPLEMENT (+0 UNEQUAL TO -0) QUANTITY.
007683,000514:
007684,000515: 14,6361 50102 CDUINC TS TEM2 # 1S COMPLEMENT INCREMENT ARRIVING IN A.
007685,000516: 14,6362 20077 INDEX BUF
007686,000517: 14,6363 10000 CCS 0 # THE 16TH BIT OF A WILL BE USED TO
007687,000518: 14,6364 64516 AD ONE # ACHIEVE THE REQUIRED 32,768 DISTINCT
007688,000519: 14,6365 06371 TC +4 # STATES.
007689,000520:
007690,000521: 14,6366 64516 AD ONE
007691,000522: 14,6367 64516 AD ONE # A MAY HAVE OVERFLOW PRESENT HERE.
007692,000523: 14,6370 40000 COM # DESIRED -1 IF DESIRED WAS NEGATIVE.
007693,000524:
007694,000525: 14,6371 60102 +4 AD TEM2 # AND MAYBE OVERFLOW SOME MORE.
007695,000526: 14,6372 10000 CCS A # BACK TO 2S COMPLEMENT.
007696,000527: 14,6373 64516 AD ONE # NOTE THAT CCS TREATS A AS A 16 BIT NO.
007697,000528: 14,6374 06376 TC +2
007698,000529: 14,6375 40000 COM
007699,000530: 14,6376 50034 TS OVCTR # REVERTS -0 TO +0.
007700,000531: 14,6377 06403 TC +4 # NO OVERFLOW - PLANT NEW DESIRED.
007701,000532:
007702,000533: 14,6400 20000 INDEX A # OVERFLOW - SIMULATE UN-CORRECTED SIGN.
007703,000534: 14,6401 34477 CAF LIMITS # 37777 FOR NEGATIVE - 40000 IF PLUS.
007704,000535: 14,6402 60034 AD OVCTR # OVERFLOW-CORRECTED DIFFERENCE.
007705,000536:
007706,000537: 14,6403 20077 +4 INDEX BUF
007707,000538: 14,6404 50000 TS 0 # NEW ANGLE.
007708,000539:
007709,000540: 14,6405 05702 TC SWRETURN # RETURN TO CALLER.
007710,000541:
007711,000542:
007712,000543: # MARK REQUESTING ROUTINES.
007713,000544:
007714,000545: 14,6406 20017 SXTMARK INHINT
007715,000546: 14,6407 50637 TS RUPTREG1 # NUMBER OF MARKS REQUESTED.
007716,000547:
007717,000548: 14,6410 10735 CCS MARKSTAT # SEE IF MARK BUTTON ALREADY SNATCHED.
007718,000549: 14,6411 06413 TC +2 # YES - ALARM AND END THE STRAY JOB.
007719,000550: 14,6412 06416 TC MARKOK # +0 INDICATES AVAILABLE.
007720,000551:
007721,000552: 14,6413 03015 TC ALARM
007722,000553: 14,6414 00105 OCT 00105
007723,000554: 14,6415 02124 TC ENDOFJOB
007724,000555:
007725,000556: 14,6416 10216 MARKOK CCS VAC1USE # FIND A VAC AREA TO STORE THE MARKS IN.
007726,000557: 14,6417 06432 TC MKVACFND
007727,000558: 14,6420 10272 CCS VAC2USE
007728,000559: 14,6421 06432 TC MKVACFND
007729,000560: 14,6422 10346 CCS VAC3USE
007730,000561: 14,6423 06432 TC MKVACFND
007731,000562: 14,6424 10422 CCS VAC4USE
007732,000563: 14,6425 06432 TC MKVACFND
007733,000564: 14,6426 10476 CCS VAC5USE
007734,000565: 14,6427 06432 TC MKVACFND
007735,000566:
007736,000567: 14,6430 03052 TC ABORT # VAC AREAS ALL OCCUPIED - ABORT.
007737,000568: 14,6431 01207 OCT 01207
007738,000569:
007739,000570: 14,6432 65503 MKVACFND AD TWO # ADDRESS OF VAC.
007740,000571: 14,6433 50735 TS MARKSTAT
007741,000572: 14,6434 20000 INDEX A
007742,000573: 14,6435 50052 TS QPRET # USED TO SHOW NEXT AVAILABLE MARK SLOT.
007743,000574:
007744,000575: 14,6436 35501 CAF ZERO # SHOW VACAREA IS OCCUPIED.
007745,000576: 14,6437 20735 INDEX MARKSTAT
007746,000577: 14,6440 47777 TS 0 -1
007747,000578:
007748,000579: 14,6441 34503 CAF BIT12 # PLACE DESIRED NUMBER OF MARKS IN 12 - 14
007749,000580: 14,6442 25777 EXTEND
007750,000581: 14,6443 40637 MP RUPTREG1
007751,000582: 14,6444 30003 XCH LP
007752,000583: 14,6445 60735 AD MARKSTAT # JUST CONTAINS LOW 9 BITS OF VAC ADDRESS.
007753,000584: 14,6446 50735 TS MARKSTAT
007754,000585:
007755,000586: 14,6447 32165 MARKEXIT CAF PRIO32
007756,000587: 14,6450 02052 TC NOVAC
007757,000588: 14,6451 30667 CADR MKVB51
007758,000589: 14,6452 06020 TC MODEEXIT
007759,000590:
007760,000591:
007761,000592: # MARK SYSTEM RELEASING ROUTINE.
007762,000593:
007763,000594: 14,6453 35501 MKRELEAS CAF ZERO # SHOW MARK SYSTEM NOW AVAILABLE.
007764,000595: 14,6454 30735 XCH MARKSTAT
007765,000596: 14,6455 10000 CCS A
007766,000597: 14,6456 20000 INDEX A
007767,000598: 14,6457 50000 TS 0
007768,000599:
007769,000600: 14,6460 05702 TC SWRETURN
007770,000601:
007771,000602:
007772,000603: # KEYRUPT LEAD-IN AND MARK/MARK ACCEPT PROGRAMS.
007773,000604:
007774,000605: 14,6461 50030 KEYRUPTA TS BANKRUPT
007775,000606: 14,6462 40053 MARK CS OPTY # PRECISION OPTICS DRIVE - GATHER DATA
007776,000607: 14,6463 50577 TS RUPTSTOR +5 # IMMEDIATELY AND THEN TRANSFER TO VAC.
007777,000608:
007778,000609: 14,6464 40052 CS OPTX # SHAFT OPTICS ENCODER.
007779,000610: 14,6465 50575 TS RUPTSTOR +3
007780,000611:
007781,000612: 14,6466 40050 CS CDUY # READ INNER-MIDDLE-OUTER IMUCDUS.
007782,000613: 14,6467 50574 TS RUPTSTOR +2
007783,000614:
007784,000615: 14,6470 40051 CS CDUZ
007785,000616: 14,6471 50576 TS RUPTSTOR +4
007786,000617:
007787,000618: 14,6472 40047 CS CDUX
007788,000619: 14,6473 50600 TS RUPTSTOR +6
007789,000620:
007790,000621: 14,6474 02700 TC READTIME +1 # SPECIAL DP TIME COUNTER-READING ROUTINE.
007791,000622:
007792,000623: 14,6475 10004 CCS IN0 # SEE IF KEYCODE OR MARK.
007793,000624: 14,6476 64516 AD ONE
007794,000625: 14,6477 06664 TC KEYCALL
007795,000626: 14,6500 06501 TC +1 # IN0 SHOULD NEVER CONTAIN -0.
007796,000627:
007797,000628: 14,6501 30007 XCH IN3 # NOW FIND OUT IF IT WAS A MARK-REJECT.
007798,000629: 14,6502 30007 XCH IN3
007799,000630: 14,6503 74503 MASK BIT12 # OPT ZERO/MARK REJECT BIT.
007800,000631: 14,6504 10000 CCS A
007801,000632: 14,6505 06601 TC MKREJECT
007802,000633:
007803,000634: 14,6506 10735 CCS MARKSTAT # SEE IF MARKS BEING CALLED FOR.
007804,000635: 14,6507 06533 TC MARK2
007805,000636:
007806,000637: 14,6510 30575 XCH RUPTSTOR +3 # STORE IN OBTAINED MPAC COMPLEMENTED.
007807,000638: 14,6511 50637 TS RUPTREG1 # OPTICS ANGLES AND MINOR PART OF TIME.
007808,000639: 14,6512 30577 XCH RUPTSTOR +5 # -OPTX, -OPTY, AND -TIME1.
007809,000640: 14,6513 50640 TS RUPTREG2
007810,000641: 14,6514 30573 XCH RUPTSTOR +1
007811,000642: 14,6515 50641 TS RUPTREG3
007812,000643:
007813,000644: 14,6516 32143 CAF PRIO5 # CALL SPECIAL DISPLAY JOB
007814,000645: 14,6517 02052 TC NOVAC
007815,000646: 14,6520 30641 CADR MARKDISP
007816,000647:
007817,000648: 14,6521 30637 XCH RUPTREG1 # PLANT INFORMATION IN MPAC OF REGISTER
007818,000649: 14,6522 20601 INDEX LOCCTR # SET.
007819,000650: 14,6523 50115 TS MPAC
007820,000651: 14,6524 30640 XCH RUPTREG2
007821,000652: 14,6525 20601 INDEX LOCCTR
007822,000653: 14,6526 50116 TS MPAC +1
007823,000654: 14,6527 30641 XCH RUPTREG3
007824,000655: 14,6530 20601 INDEX LOCCTR
007825,000656: 14,6531 50117 TS MPAC +2
007826,000657:
007827,000658: 14,6532 02264 TC RESUME
007828,000659:
007829,000660:
007830,000661: 14,6533 66666 MARK2 AD 74K # SEE IF ANY MORE MARKS CALLED FOR.
007831,000662: 14,6534 10000 CCS A
007832,000663: 14,6535 06542 TC MARK3
007833,000664: 14,6536 76777 BIT10BAR OCT -1000
007834,000665: 14,6537 03015 BADMARK TC ALARM
007835,000666: 14,6540 00106 OCT 00106
007836,000667: 14,6541 02264 TC RESUME # NO FURTHER ACTION HERE.
007837,000668:
007838,000669: 14,6542 64516 MARK3 AD ONE # SET BIT 10 = 1 TO ENABLE MARK
007839,000670: 14,6543 76536 MASK BIT10BAR # REJECT.
007840,000671: 14,6544 64505 AD BIT10
007841,000672: 14,6545 50735 TS MARKSTAT
007842,000673:
007843,000674: 14,6546 74607 MASK LOW9 # SET UP REGISTER TRANSFER LOOP.
007844,000675: 14,6547 50640 TS RUPTREG2 # ADVANCE POINTER IN QPRET.
007845,000676: 14,6550 20000 INDEX A
007846,000677: 14,6551 30052 XCH QPRET # PICK UP MARK SLOT-POINTER.
007847,000678: 14,6552 64475 AD SIX
007848,000679: 14,6553 50637 TS RUPTREG1
007849,000680: 14,6554 64516 AD ONE
007850,000681: 14,6555 20640 INDEX RUPTREG2
007851,000682: 14,6556 50052 TS QPRET
007852,000683: 14,6557 34475 CAF SIX # LOOP SEVEN TIMES.
007853,000684:
007854,000685: 14,6560 50640 READLOOP TS RUPTREG2
007855,000686: 14,6561 20000 INDEX A
007856,000687: 14,6562 40572 CS RUPTSTOR
007857,000688: 14,6563 20637 INDEX RUPTREG1
007858,000689: 14,6564 50000 TS 0
007859,000690: 14,6565 10637 CCS RUPTREG1 # ADDRESS NEXT LOCATION IN VAC.
007860,000691: 14,6566 50637 TS RUPTREG1
007861,000692: 14,6567 10640 CCS RUPTREG2
007862,000693: 14,6570 06560 TC READLOOP
007863,000694:
007864,000695: 14,6571 32261 CAF HI5 # IF ALL REQUESTED MARKS MADE, CHANGE
007865,000696: 14,6572 70735 MASK MARKSTAT # DSKY TO VERB 50 FLASHING.
007866,000697: 14,6573 10000 CCS A
007867,000698: 14,6574 02264 TC RESUME
007868,000699: 14,6575 32165 CAF PRIO32
007869,000700: 14,6576 02052 TC NOVAC
007870,000701: 14,6577 30740 CADR MKVB50
007871,000702: 14,6600 02264 TC RESUME # DONE.
007872,000703:
007873,000704:
007874,000705: 14,6601 10735 MKREJECT CCS MARKSTAT # SEE IF MARKS BEING ACCEPTED.
007875,000706: 14,6602 06606 TC REJECT2
007876,000707: 14,6603 03015 TC ALARM # CURSE IF NOT.
007877,000708: 14,6604 00107 OCT 00107
007878,000709: 14,6605 02256 TC TASKOVER # (UNTIL MK ACCEPT BUTTON AVAILABLE).
007879,000710:
007880,000711: 14,6606 44505 REJECT2 CS BIT10 # SEE IF MARK HAD BEEN MADE SINCE LAST
007881,000712: 14,6607 70735 MASK MARKSTAT # MARK REJECT, AND SET BIT 10 TO ZERO TO
007882,000713: 14,6610 30735 XCH MARKSTAT # SHOW MARK REJECT.
007883,000714: 14,6611 74505 MASK BIT10
007884,000715: 14,6612 10000 CCS A
007885,000716: 14,6613 06617 TC REJECT3
007886,000717:
007887,000718: 14,6614 03015 TC ALARM # DONT ACCEPT TWO MARK REJECTS TOGETHER.
007888,000719: 14,6615 00110 OCT 00110
007889,000720: 14,6616 02256 TC TASKOVER # (UNTIL MK REJECT BUTTON AVAILABLE).
007890,000721:
007891,000722: 14,6617 34607 REJECT3 CAF LOW9 # DECREMENT POINTER TO REJECT MARK.
007892,000723: 14,6620 70735 MASK MARKSTAT
007893,000724: 14,6621 50577 TS ITEMP1
007894,000725: 14,6622 45362 CS SEVEN
007895,000726: 14,6623 20577 INDEX ITEMP1
007896,000727: 14,6624 60052 AD QPRET
007897,000728: 14,6625 20577 INDEX ITEMP1
007898,000729: 14,6626 50052 TS QPRET # NEW POINTER.
007899,000730:
007900,000731: 14,6627 34503 CAF BIT12 # INCREMENT MARKS-TO-BE-ACCEPTED FIELD
007901,000732: 14,6630 60735 AD MARKSTAT # AND IF FIELD IS NOW NON-ZERO, CHANGE
007902,000733: 14,6631 30735 XCH MARKSTAT # DSKY TO VERB 51 FLASHING TO INDICATE
007903,000734: 14,6632 72261 MASK HI5 # MORE MARKS REQUIRED.
007904,000735: 14,6633 10000 CCS A
007905,000736: 14,6634 02256 TC TASKOVER # (UNTIL BUTTON AVAIL.)
007906,000737: 14,6635 32165 CAF PRIO32
007907,000738: 14,6636 02052 TC NOVAC
007908,000739: 14,6637 30745 CADR REMKVB51
007909,000740: 14,6640 02256 TC TASKOVER
007910,000741:
007911,000742:
007912,000743: 14,6641 03310 MARKDISP TC GRABDSP # SPECIAL JOB TO DISPLAY UNCALLED-FOR MARK
007913,000744: 14,6642 03316 TC PREGBSY
007914,000745:
007915,000746: 14,6643 40115 REMKDSP CS MPAC # THE MPAC REGISTERS CONTIN -OPTX, -OPTY,
007916,000747: 14,6644 50616 TS DSPTEM1
007917,000748: 14,6645 40116 CS MPAC +1
007918,000749: 14,6646 50617 TS DSPTEM1 +1
007919,000750: 14,6647 40117 CS MPAC +2
007920,000751: 14,6650 50621 TS DSPTEM2
007921,000752: 14,6651 35501 CAF ZERO
007922,000753: 14,6652 50620 TS DSPTEM1 +2
007923,000754:
007924,000755: 14,6653 36662 CAF MKDSPCOD # NOUN-VERB FOR MARK DISPLAY.
007925,000756: 14,6654 03106 TC NVSUB
007926,000757: 14,6655 06660 TC MKDSPBSY # IF BUSY.
007927,000758:
007928,000759: 14,6656 03370 ENDMKDSP TC FREEDSP
007929,000760:
007930,000761: 14,6657 02124 TC ENDOFJOB
007931,000762:
007932,000763: 14,6660 36663 MKDSPBSY CAF LREMKDSP # TAKE DATA OUT OF MPAC WHEN RE-AWAKENED.
007933,000764: 14,6661 03326 TC NVSUBUSY
007934,000765:
007935,000766: 14,6662 00656 MKDSPCOD OCT 00656
007936,000767: 14,6663 30643 LREMKDSP CADR REMKDSP
007937,000768:
007938,000769: 14,6664 05720 KEYCALL TC POSTJUMP # GO TO KEYBOARD/DISPLAY BANK WITH A
007939,000770: 14,6665 10001 CADR KEYRUPTC # GO THRU STANDARD LOC.
007940,000771:
007941,000772: 14,6666 74000 74K OCT 74000
007942,000773:
007943,000774: 14,6667 14,6406 SCTMARK EQUALS SXTMARK
007944,000775:
007945,000776:
007946,000777: # KEYBOARD AND DISPLAY ROUTINES FOR MARK PROCEDURES.
007947,000778:
007948,000779: # FLASH VERB 51 WHEN WAITING FOR MARKS, CHANGING TO VERB 50 FLASHING WHEN ALL ARE IN.
007949,000780:
007950,000781: 14,6667 36743 MKVB51 CAF VB51 # ASSUME USING PROGRAM HAS GRABBED DSP.
007951,000782: 14,6670 03106 TC NVSUB
007952,000783: 14,6671 03323 TC PRENVBSY
007953,000784: 14,6672 05654 TC BANKCALL
007954,000785: 14,6673 14000 CADR FLASHON
007955,000786: 14,6674 03144 TC ENDIDLE
007956,000787: 14,6675 06726 TC MKVB5X # DONT RESPOND TO PROCEED OR TERMINATE.
007957,000788: 14,6676 06726 TC MKVB5X
007958,000789:
007959,000790: 14,6677 36737 CAF OCT76 # ON ENTER, SEE IF DATA LOADED INSTEAD.
007960,000791: 14,6700 70602 MASK VERBREG
007961,000792: 14,6701 66704 AD -OCT50 # VERBS 50 AND 51 CAUSE END MARK ROUTINES.
007962,000793: 14,6702 10000 CCS A
007963,000794: 14,6703 06726 TC MKVB5X # ON DATA LOAD, RE-DISPLAY ORIGINAL VERB.
007964,000795: 14,6704 77727 -OCT50 OCT -50
007965,000796: 14,6705 06726 TC MKVB5X
007966,000797:
007967,000798: 14,6706 34607 CAF LOW9
007968,000799: 14,6707 70735 MASK MARKSTAT
007969,000800: 14,6710 50735 TS MARKSTAT # VAC ADR IN MARKSTAT AND NO. MARKS MADE
007970,000801: 14,6711 40000 COM
007971,000802: 14,6712 20735 INDEX MARKSTAT # WILL BE LEFT IN QPRET.
007972,000803: 14,6713 60052 AD QPRET
007973,000804: 14,6714 25777 EXTEND
007974,000805: 14,6715 44503 MP BIT12
007975,000806: 14,6716 64516 AD ONE
007976,000807: 14,6717 20735 INDEX MARKSTAT
007977,000808: 14,6720 50052 TS QPRET
007978,000809:
007979,000810: 14,6721 20017 INHINT # GO SERVICE OPTSTALL INTERFACE WITH
007980,000811: 14,6722 34516 CAF ONE # USING PROGRAM.
007981,000812: 14,6723 02173 TC WAITLIST
007982,000813: 14,6724 30734 CADR ENDMARKS
007983,000814: 14,6725 02124 TC ENDOFJOB
007984,000815:
007985,000816:
007986,000817: 14,6726 32261 MKVB5X CAF HI5 # RE-DISPLAY VERB 51 IF MORE MARKS
007987,000818: 14,6727 70735 MASK MARKSTAT # WANTED AND VERB 50 IF ALL IN.
007988,000819: 14,6730 10000 CCS A
007989,000820: 14,6731 34510 CAF BIT7 # (MAKES VERB 51).
007990,000821: 14,6732 66736 AD VB50
007991,000822: 14,6733 06670 TC MKVB51 +1
007992,000823:
007993,000824: 14,6734 06261 ENDMARKS TC ENDOPT
007994,000825: 14,6735 06314 TC GOODEND
007995,000826:
007996,000827: 14,6736 05000 VB50 OCT 5000
007997,000828: 14,6737 00076 OCT76 OCT 76
007998,000829:
007999,000830: # ON RECEIPT OF LAST REQUESTED MARK, DISPLAY VERB 50 (STILL FLASHING).
008000,000831:
008001,000832: 14,6740 36736 MKVB50 CAF VB50
008002,000833: 14,6741 50110 TS NVTEMP # SPECIAL ENTRY TO NVSUB WHICH AVOIDS BUSY
008003,000834: 14,6742 03113 TC NVSUB +5 # TEST.
008004,000835: 14,6743 05100 VB51 OCT 5100
008005,000836: 14,6744 02124 TC ENDOFJOB
008006,000837:
008007,000838: # IF THE ABOVE IS REJECTED, REVERT TO VERB 51.
008008,000839:
008009,000840: 14,6745 36743 REMKVB51 CAF VB51
008010,000841: 14,6746 06741 TC MKVB50 +1
008011,000842:
008012,000843:
008013,000844: # THE FOLLOWING ROUTINE ALLOWS INTERLOCKING OF IMU COMPENSATION AND CERTAIN IMU MODE CHANGES WHICH ARE
008014,000845: # MEANINGFUL AFTER THE IMU HAS BEEN ALIGNED. THESE INCLUDE IMUFINNW, IMUATTC, AND IMUREENT.
008015,000846:
008016,000847: 14,6747 20017 TSTIMACT INHINT # TEST IMU ACTIVITY BIT TO SEE IF GYROS
008017,000848: 14,6750 30001 XCH Q
008018,000849: 14,6751 50117 TS MPAC +2
008019,000850: 14,6752 44504 CS BIT11 # BEING TORQUED NOW.
008020,000851: 14,6753 70646 MASK FLAGWRD1
008021,000852: 14,6754 64504 AD BIT11
008022,000853: 14,6755 30646 XCH FLAGWRD1
008023,000854: 14,6756 74504 MASK BIT11
008024,000855: 14,6757 10000 CCS A
008025,000856: 14,6760 06762 TC +2 # IMU BUSY.
008026,000857: 14,6761 00117 TC MPAC +2 # CHANNEL AVAILABLE - PROCEED AS USUAL.
008027,000858:
008028,000859: 14,6762 30072 XCH BANKTEM # PUT THE JOB TO SLEEP FOR MAX TIME IT
008029,000860: 14,6763 50115 TS MPAC # SHOULD TAKE TO COMPENSATE.
008030,000861: 14,6764 30071 XCH TEMQS
008031,000862: 14,6765 50116 TS MPAC +1
008032,000863: 14,6766 36103 CAF 320MS
008033,000864: 14,6767 02173 TC WAITLIST
008034,000865: 14,6770 30773 CADR IMACT2
008035,000866: 14,6771 37000 CAF LIMUACTW
008036,000867: 14,6772 02127 TC JOBSLEEP
008037,000868:
008038,000869: # WAKE UP THE JOB AND SETTHE ACTIVITY FLAG.
008039,000870:
008040,000871: 14,6773 37000 IMACT2 CAF LIMUACTW
008041,000872: 14,6774 02060 TC JOBWAKE
008042,000873: 14,6775 03424 TC FLAG1UP
008043,000874: 14,6776 02000 OCT 02000
008044,000875: 14,6777 02256 TC TASKOVER
008045,000876:
008046,000877: 14,7000 31001 LIMUACTW CADR IMUACTW
008047,000878:
008048,000879: 14,7001 20017 IMUACTW INHINT
008049,000880: 14,7002 30115 XCH MPAC # PROCEED WITH MODE SWITCH.
008050,000881: 14,7003 50072 TS BANKTEM
008051,000882: 14,7004 30116 XCH MPAC +1
008052,000883: 14,7005 50071 TS TEMQS
008053,000884: 14,7006 00117 TC MPAC +2
End of include-file MODE_SWITCHING_AND_MARK_ROUTINES.agc. Parent file is MAIN.agc