Source Code
These source-code files were obtained by digitally photographing
a Solarium 55 (Apollo 6) program listing from the American Computer Museum in
Bozeman, Montana. Photography was by Ron Burkey, with assistance from
museum curator George Keremedjiev and Montana
State University curator Kim Scott. The listing originally belonged to Eldon C. Hall,
who donated it to the museum. Volunteers then manually typed in the
source code or else modified similar pre-existing Colossus 249
(Apollo 9) source files to incorporate changes, although this transcription was
principally done by Jim Lawton and corrected by Ron Burkey.
Notations on the program listing read, in part:YUL SYSTEM FOR AGC4: REVISION 0 OF PROGRAM SOLRUM55 BY NASA 1021108-021 DEC. 4, 1966Note that the date is the date of the printout, not the date of the program revision. Due to statements by Jay Sampson, the original contractor from AC Electronics who created Solarium 54 (Apollo 4) from the earlier Corona (AS-202 mission) program, it is believed that Solarium 54 and Solarium 55 (Apollo 6) are actually identical programs. The change in numbering, from 54 to 55, is believed to be for some administrative purpose. Thus, it is believed that the source-code represented here is equally appropriate for both Apollo 4 and Apollo 6 missions. |
007436,000002: ## Copyright: Public domain.
007437,000003: ## Filename: MODE_SWITCHING_AND_MARK_ROUTINES.agc
007438,000004: ## Purpose: Part of the source code for Solarium build 55. This
007439,000005: ## is for the Command Module's (CM) Apollo Guidance
007440,000006: ## Computer (AGC), for Apollo 6.
007441,000007: ## Assembler: yaYUL --block1
007442,000008: ## Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
007443,000009: ## Website: www.ibiblio.org/apollo/index.html
007444,000010: ## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Solarium055/
007445,000011: ## Mod history: 2009-10-06 JL Created.
007446,000012: ## 2016-08-18 RSB Typos.
007447,000013: ## 2016-08-23 RSB More of the same.
007448,000014: ## 2016-12-28 RSB Proofed comment text using octopus/ProoferComments,
007449,000015: ## and fixed errors found.
007450,000016:
Page 190 |
007452,000018:
007453,000019: # THE FOLLOWING SET OF PROGRAMS ARE USED TO SELECTTHE VARIOUS MODES OF THE IMU AND OPTICS. THE FOLLOWING
007454,000020: # MODES ARE POSSIBLE:
007455,000021:
007456,000022: # IMUZERO ZEROS IMU CDUS.
007457,000023: # IMUCOARS COARSE ALIGNS IMU.
007458,000024: # IMURECOR RETURNS IMU FROM FINE ALIGN TO COARSE ALIGN
007459,000025: # IMUFINE PREPARES TO PULSE TORQUE THE GYROS.
007460,000026: # IMUFINNW SWITCHES TO FINE WITH NO DELAY FOR IRIG CENTERING-DONT ENTER FROM COARSE ALIGN MODE.
007461,000027: # IMUATTC USE IMU FOR S/C ATTITUDE CONTROL.
007462,000028: # IMUREENT USE IMU FOR ROLL RE-ENTRY.
007463,000029: # IMULOCK LOCKS IMU CDUS.
007464,000030:
007465,000031: # IMUFINIS(**)RELEASES IMU
007466,000032: # IMUSTALL(*) IMU MODE IDLING AND ERROR CHECKING.
007467,000033:
007468,000034:
007469,000035:
007470,000036: # OPTZERO ZERO OPTICS CDUS.
007471,000037: # OPTCOARS DUMMY OPTICS COARSE-ALIGN MODE.
007472,000038: # OPTTRKON OPTICS TRACKER ON.
007473,000039:
007474,000040: # SCTMARK REQUEST N SCANNING TELESCOPE MARKS.
007475,000041: # SXTMARK REQUEST N SEXTANT MARKS.
007476,000042: # MKRELEAS(**)RELEASE MARK SYSTEM.
007477,000043:
007478,000044: # OPTFINIS(**)RELEASE OPTICS.
007479,000045: # OPTSTALL(*) OPTICS MODE-IDLING AND ERROR CHECKING.
007480,000046:
007481,000047:
007482,000048:
007483,000049: # OPTICS AND IMU MODE ROUTINES MAY BE USED CONCURRENTLY.
007484,000050:
007485,000051: # IN ADDITION, A ROUTINE WHICH INCREMENTS ANY DESIRED 2S COMPLEMENT ANGLE BY AN INPUT AMOUNT IS
007486,000052: # INCLUDED (CDUINC).
007487,000053:
007488,000054:
007489,000055:
007490,000056: # CALLING SEQUENCE IS AS FOLLOWS:
007491,000057:
007492,000058: # L-1 CAF NO.MARKS (FOR SCTMARK AND SXTMARK ONLY).
007493,000059: # L TC BANKCALL
007494,000060: # L+1 CADR (SUBRO) ANY OF THE 14 MODE ROUTINES OR CDUINC.
007495,000061:
007496,000062:
007497,000063:
007498,000064: # (*) THE STALL ROUTINES ARE CALLED TO TERMINATE ANY MODE REQUEST. THE REQUESTING JOB IS STALLED UNTIL
007499,000065: # THE MODE-SWITCHING IS COMPLETE (WITH VAC-AREA PROTECTED) AND RETURN IS TO L+2 IF UNSUCCESSFUL AND L+3 IF THE
007500,000066: # DESIRED MODE WAS SUCCESSFULLY ACHIEVED.
007501,000067:
007502,000068: # (**) NO STALL ROUTINE NECESSARY IN CONJUNCTION WITH THIS REQUEST.
007503,000069:
Page 191 |
007505,000071:
007506,000072: # SPECIAL DP TIME COUNTER READING ROUTINE.
007507,000073:
007508,000074: 2676 BANK 1
007509,000075: 2676 20017 READTIME INHINT # ENTRY IF UNDER EXECUTIVE.
007510,000076: 2677 40035 CS TIME2 # ENTRY IF IN INTERRUPT.
007511,000077: 2700 50572 TS RUPTSTOR
007512,000078: 2701 40036 CS TIME1
007513,000079: 2702 50573 TS RUPTSTOR +1
007514,000080: 2703 10000 CCS A # IF MINOR PART ZERO, MAJOR PART COULD
007515,000081: 2704 00001 TC Q
007516,000082: 2705 10000 CCS A
007517,000083: 2706 00001 TC Q
007518,000084: 2707 40035 CS TIME2 # UP, SO READ IT AGIN.
007519,000085: 2710 50572 TS RUPTSTOR
007520,000086: 2711 00001 TC Q
007521,000087:
007522,000088: # ROUTINE TO READ FINE TIME IN IN2 EVEN IF IT CHANGES AS ITS BEING READ. CALL IN INHINT.
007523,000089:
007524,000090: 2712 30006 FINETIME XCH IN2 # MAY BE CALLED UNDER EXEC OR RUPT.
007525,000091: 2713 30006 XCH IN2
007526,000092: 2714 72356 MASK FINEMASK # NOTE THAT THE OR OF TWO STATES A AND B
007527,000093: 2715 50577 TS ITEMP1 # IS NOT LESS THAN EITHER A OR B.
007528,000094: 2716 30006 XCH IN2
007529,000095: 2717 72356 MASK FINEMASK
007530,000096: 2720 50600 TS ITEMP2
007531,000097: 2721 40000 COM # SELECT THE MINIMUM OF THE LAST TWO
007532,000098: 2722 60577 AD ITEMP1 # STATES READ.
007533,000099: 2723 10000 CCS A
007534,000100: 2724 30600 XCH ITEMP2
007535,000101: 2725 00001 TC Q
007536,000102: 2726 30000 NOOP
007537,000103: 2727 30577 XCH ITEMP1
007538,000104: 2730 00001 TC Q
007539,000105:
007540,000106: # SUBROUTINE TO ZERO IMU CDU COUNTERS.
007541,000107:
007542,000108: 2731 35501 ZEROICTR CAF ZERO # USED BY AUTOMATIC AND MANUAL ZEROING
007543,000109: 2732 50047 TS CDUX # ROUTINES.
007544,000110: 2733 50050 TS CDUY
007545,000111: 2734 50051 TS CDUZ
007546,000112: 2735 00001 TC Q
007547,000113:
007548,000114:
007549,000115:
007550,000116: 2736 40572 LODSAMPT CS RUPTSTOR # TIME IS SNATCHED IN RUPT FOR NOUN 65
007551,000117: 2737 30643 XCH SAMPTIME
007552,000118: 2740 40573 CS RUPTSTOR +1
007553,000119: 2741 30644 XCH SAMPTIME +1
007554,000120: 2742 00001 TC Q
007555,000121:
Page 192 |
007557,000123:
007558,000124: # SETZLIT SETS THE ZERO ENCODER LAMP ACCORDING TO THE DESIRED-MODE REGISTERS DESKSET AND DESOPSET.
007559,000125:
007560,000126: 2743 30001 SETZLIT XCH Q
007561,000127: 2744 50577 TS ITEMP1
007562,000128:
007563,000129: 2745 10731 CCS DESKSET
007564,000130: 2746 02752 TC +4 # COMPUTER COMMANDING-MAY BE ZEROING.
007565,000131: 2747 02756 TC OPTZTEST # NOT MANUAL ZERO.
007566,000132: 2750 02773 TURNONZ TC ZLITON # MANUAL ZEROING MODE.
007567,000133: 2751 00577 TC ITEMP1
007568,000134:
007569,000135: 2752 64516 +4 AD ONE
007570,000136: 2753 74516 MASK BIT1
007571,000137: 2754 10000 CCS A
007572,000138: 2755 02750 TC TURNONZ # COMPUTER COMMANDING ZERO-ENCODER
007573,000139:
007574,000140: 2756 10732 OPTZTEST CCS DESOPSET
007575,000141: 2757 02762 TC +3 # MAY BE COMMANDING OPTICS ZERO.
007576,000142: 2760 02766 TC ZLITOFF # NOT MANUAL ZERO-TURN LIGHT OFF.
007577,000143: 2761 02750 TC TURNONZ # MANUAL OPTICS
007578,000144:
007579,000145: 2762 64516 +3 AD ONE
007580,000146: 2763 74503 MASK BIT12
007581,000147: 2764 10000 CCS A
007582,000148: 2765 02750 TC TURNONZ
007583,000149:
007584,000150: 2766 45070 ZLITOFF CS ZLITBITS # TURN OFF ZERO ENCODER LAMP.
007585,000151: 2767 70723 MASK DSPTAB +11D
007586,000152: 2770 64500 AD BIT15
007587,000153: 2771 50723 TS DSPTAB +11D
007588,000154: 2772 00577 TC ITEMP1
007589,000155:
007590,000156: 2773 45070 ZLITON CS ZLITBITS # TURN ON ZERO-ENCODER LAMP.
007591,000157: 2774 70723 MASK DSPTAB +11D
007592,000158: 2775 65070 AD ZLITBITS
007593,000159: 2776 50723 TS DSPTAB +11D
007594,000160: 2777 00001 TC Q
007595,000161:
007596,000162: 3000 5070 ZLITBITS EQUALS OCT40020 # CS CYR IN DMP.
007597,000163:
Page 193 |
007599,000165:
007600,000166: # IMU ZEROING ROUTINE.
007601,000167:
007602,000168: 14,6000 SETLOC 30000
007603,000169:
007604,000170: 14,6000 44516 IMUZERO CS ONE # DISABLE CDU DRIVE
007605,000171: 14,6001 50677 TS CDUIND # BY SETTING CDUIND NEGATIVE.
007606,000172:
007607,000173: 14,6002 06245 TC SETKANDC # GO TO SUBROUTINE TO SWITCH C RELAYS
007608,000174: 14,6003 00051 OCT 00051 # = C(DESKSET)=COMP CONT+ZERO+FINE
007609,000175: 14,6004 40011 OCT 40011 # = C SETTING FOR FINE + ZERO
007610,000176: 14,6005 02773 TC ZLITON # TURN ON ENCODER ZEROING LAMP
007611,000177:
007612,000178: 14,6006 44513 CS BIT4 # DISABLE IMU FAIL FOR 5 SEC IN CASE WE
007613,000179: 14,6007 70726 MASK OLDERR # JUST CAME OUT OF COARSE ALIGN.
007614,000180: 14,6010 64513 AD BIT4
007615,000181: 14,6011 50726 TS OLDERR
007616,000182: 14,6012 34505 CAF BIT10
007617,000183: 14,6013 02173 TC WAITLIST
007618,000184: 14,6014 30201 CADR IFAILOK
007619,000185:
007620,000186: 14,6015 36077 CAF 35SECS # SET A WAITLIST CALL FOR 35 SECONDS
007621,000187: 14,6016 02173 TC WAITLIST # SO THOSE SHAFTS WILL HAVE TIME TO GET
007622,000188: 14,6017 30022 CADR IMUZEROD # THERE.
007623,000189: 14,6020 20016 MODEEXIT RELINT # GENERAL EXIT FROM MODE SWITCH PROGS
007624,000190: 14,6021 05702 TC SWRETURN # WHICH LEAVES VIA SWCALL EXIT
007625,000191:
007626,000192: 14,6022 02731 IMUZEROD TC ZEROICTR # GO AND ZERO X, Y, AND Z COUNTERS
007627,000193:
007628,000194: 14,6023 06070 TC KCHECK # SEE IF SYSTEM STILL FUNCTIONING OK.
007629,000195: 14,6024 06246 MOREZERO TC SETKANDC +1 # CALL FOR 10 SECONDS OF FINE ALIGN TO
007630,000196: 14,6025 00050 OCT 00050 # ALLOW CDUS TO GO AT LEAST 90 DEGREES
007631,000197: 14,6026 40010 OCT 40010 # OF THE WAY HOME UNLESS THE PLATFORM IS
007632,000198: 14,6027 36101 CAF 10SECS # SITTING AT ANY FALSE NULLS.
007633,000199: 14,6030 02173 TC WAITLIST
007634,000200: 14,6031 30033 CADR ZEROATTC # WE WILL GO INTO ATTITUTE CONTROL NEXT.
007635,000201: 14,6032 02256 TC TASKOVER
007636,000202:
007637,000203: 14,6033 06070 ZEROATTC TC KCHECK # USUAL SYSTEM CHECK.
007638,000204: 14,6034 06246 TC SETKANDC +1 # COMMAND ATTITUDE CONTROL (WITHOUT ATTC
007639,000205: 14,6035 00060 OCT 00060 # LAMP LIT) SO THAT WE CAN DRIVE THE CDUS
007640,000206: 14,6036 41000 OCT 41000 # (LIGHT ON AFTER ALL) AWAY FROM FALSE NUL
007641,000207: 14,6037 36103 CAF 320MS
007642,000208: 14,6040 02173 TC WAITLIST
007643,000209: 14,6041 30043 CADR ZERODRVE # WAIT FOR MODE SWITCH BEFORE ENABLING CDU
007644,000210: 14,6042 02256 TC TASKOVER # DRIVE IN T4RUPT.
Page 194 |
007646,000212:
007647,000213: 14,6043 06070 ZERODRVE TC KCHECK # VERIFY SWITCH TO ATTITUDE CONTROL.
007648,000214: 14,6044 34502 CAF QUARTER # WE WILL DRIVE THE CDUS TOWARD 45 DEGREES
007649,000215: 14,6045 50700 TS THETAD # FOR 2SECS (ABOUT 10 DEGREES OF MOVEMENT
007650,000216: 14,6046 50701 TS THETAD +1 # AT MOST). THIS WILL DRIVE ANY CDUS OFF
007651,000217: 14,6047 50702 TS THETAD +2 # FALSE NULLS WITHOUT MOVING THE PLATFORM
007652,000218: 14,6050 35501 CAF ZERO
007653,000219: 14,6051 50677 TS CDUIND # CDU LOOPS ARE NOW ENABLED.
007654,000220: 14,6052 36102 CAF 2SECS
007655,000221: 14,6053 02173 TC WAITLIST
007656,000222: 14,6054 30056 CADR REZFINE # GO BACK TO FINE ALIGN WHEN DONE.
007657,000223: 14,6055 02256 TC TASKOVER
007658,000224:
007659,000225: 14,6056 06070 REZFINE TC KCHECK # VERIFY MODE SWITCH AS USUAL.
007660,000226: 14,6057 06246 TC SETKANDC +1 # CALL FOR 20 SECONDS OF FINE ALIGN TO
007661,000227: 14,6060 00050 OCT 00050 # ALLOW ENOUGH TIME FOR THE CDUS TO FIND
007662,000228: 14,6061 40010 OCT 40010 # THE GIMBALS.
007663,000229: 14,6062 44516 CS ONE
007664,000230: 14,6063 50677 TS CDUIND # CDU LOOPS NOW DISABLED.
007665,000231: 14,6064 36100 CAF 20SECS
007666,000232: 14,6065 02173 TC WAITLIST
007667,000233: 14,6066 30171 CADR IMUFINED # CHECK FORPRESENCE OF IMU OR CDU FAILS.
007668,000234: 14,6067 02256 TC TASKOVER
007669,000235:
007670,000236:
007671,000237:
007672,000238: 14,6070 10727 KCHECK CCS WASKSET # RETURN TO CALLER IF SYSTEM OK - SET UP
007673,000239: 14,6071 00001 TC Q # ERROR RETURN AT ENDIMU OTHERWISE.
007674,000240: 14,6072 06264 TC ENDIMU
007675,000241: 14,6073 00001 TC Q
007676,000242: 14,6074 06264 TC ENDIMU
007677,000243:
007678,000244: 14,6075 21450 90SECS DEC 90.00 E2
007679,000245: 14,6076 10624 45SECS DEC 45.00 E2 # TIME FOR IMUCDU COARSE ALIGN.
007680,000246: 14,6077 06654 35SECS DEC 35.00 E2 # TIME FOR IMUCDU ZERO ENCODER.
007681,000247: 14,6100 03720 20SECS DEC 20.00 E2
007682,000248: 14,6101 01750 10SECS DEC 10.00 E2
007683,000249: 14,6102 00310 2SECS DEC 2.00 E2
007684,000250: 14,6103 00040 320MS DEC .32 E2
007685,000251:
Page 195 |
007687,000253:
007688,000254: # IMU COARSE ALIGN PROGRAM
007689,000255:
007690,000256: 14,6104 06245 IMUCOARS TC SETKANDC # SET DESIRED C AND K RELAY SETTINGS.
007691,000257: 14,6105 00042 OCT 00042 # COMPUTER CONTROL . COARSE ALIGN.
007692,000258: 14,6106 40002 OCT 40002 # C RELAY COARSE ALIGN.
007693,000259:
007694,000260: 14,6107 02743 TC SETZLIT # SERVICE THE ZERO ENCODER LAMP
007695,000261:
007696,000262: 14,6110 36103 CAF 320MS # SET WAITLIST CALL FOR 320 M.S. TO
007697,000263: 14,6111 02173 TC WAITLIST # ACCOMMODATE CONTACT BOUNCE + T4RUPT LAG
007698,000264: 14,6112 30125 CADR BEGINCOM
007699,000265: 14,6113 06020 TC MODEEXIT
007700,000266:
007701,000267:
007702,000268:
007703,000269: 14,6114 40047 RECOARSD CS CDUX # GOING BACK INTO COARSE ALIGN FROM FINE
007704,000270: 14,6115 40000 COM # ALIGN. PUT CDU COUNTER VALUES INTO
007705,000271: 14,6116 50700 TS THETAD # DESIRED ANGLE REGISTERS AND ENABLE THE
007706,000272: 14,6117 40050 CS CDUY # T4RUPT CDU DRIVE.
007707,000273: 14,6120 40000 COM
007708,000274: 14,6121 50701 TS THETAD +1
007709,000275: 14,6122 40051 CS CDUZ
007710,000276: 14,6123 40000 COM
007711,000277: 14,6124 50702 TS THETAD +2
007712,000278:
007713,000279: 14,6125 06070 BEGINCOM TC KCHECK # VERIFY CORRECTNESS OF PRESENT MODE.
007714,000280: 14,6126 35501 STARTCRS CAF ZERO # ENABLE CDU LOOP CLOSURE
007715,000281: 14,6127 50677 TS CDUIND
007716,000282:
007717,000283: 14,6130 36076 CAF 45SECS
007718,000284: 14,6131 02173 TC WAITLIST # CDU LOOPS TO SETTLE
007719,000285: 14,6132 30214 CADR COARSDON
007720,000286: 14,6133 02256 TC TASKOVER
007721,000287:
Page 196 |
007723,000289:
007724,000290: # IMU FINE ALIGN PROGRAM
007725,000291:
007726,000292: 14,6134 06245 IMURECOR TC SETKANDC # GO INTO COARSE ALIGN FROM FINE ALIGN.
007727,000293: 14,6135 00042 OCT 00042 # (SEE REMARKS ON RECOARSD FOR FURTHER
007728,000294: 14,6136 40002 OCT 40002 # DETAILS).
007729,000295: 14,6137 36103 CAF 320MS # USUAL CONTACT CLOSURE AND SAMPLE TIME
007730,000296: 14,6140 02173 TC WAITLIST
007731,000297: 14,6141 30114 CADR RECOARSD
007732,000298: 14,6142 06160 TC DISEXIT # DISABLE GYRO ACTIVITY.
007733,000299:
007734,000300: 14,6143 06245 IMUFINE TC SETKANDC # SET UP C RELAY PATTERN AND DESIRED K
007735,000301: 14,6144 00050 OCT 00050 # DES K = COMPUTER CONTROL + FINE
007736,000302: 14,6145 40010 OCT 40010 # C = FINE ALIGN
007737,000303:
007738,000304: 14,6146 44513 CS BIT4 # COMES THROUGH HERE AFTER EVERY COARSE
007739,000305: 14,6147 70726 MASK OLDERR # ALIGN. SET BIT 4 OF OLDERR TO INHIBIT
007740,000306: 14,6150 64513 AD BIT4 # IMU FAIL FOR ANOTHER 5 SECONDS.
007741,000307: 14,6151 50726 TS OLDERR
007742,000308:
007743,000309: 14,6152 34505 CAF BIT10
007744,000310: 14,6153 02173 TC WAITLIST
007745,000311: 14,6154 30201 CADR IFAILOK
007746,000312:
007747,000313: 14,6155 36075 CAF 90SECS # SET WAITLIST CALL FOR 90 SEC. TO ALLOW
007748,000314: 14,6156 02173 TC WAITLIST # GYROS TO RE-CENTER BEFORE IRIG PULSE
007749,000315: 14,6157 30171 CADR IMUFINED # TORQUING
007750,000316: 14,6160 44516 DISEXIT CS ONE # DISABLE T4 IMU (CDU OR GYRO) ACTIVITY.
007751,000317: 14,6161 50677 TS CDUIND
007752,000318: 14,6162 06020 TC MODEEXIT
007753,000319:
007754,000320:
007755,000321:
007756,000322: 14,6163 06757 IMUFINNW TC TSTIMACT
007757,000323:
007758,000324: 14,6164 06245 TC SETKANDC
007759,000325: 14,6165 00050 OCT 00050
007760,000326: 14,6166 40010 OCT 40010
007761,000327: 14,6167 36103 CAF 320MS
007762,000328: 14,6170 06156 TC DISEXIT -2
007763,000329:
Page 197 |
007765,000331:
007766,000332: 14,6171 03430 IMUFINED TC FLAG1DWN
007767,000333: 14,6172 02000 OCT 02000
007768,000334:
007769,000335: 14,6173 06264 TC ENDIMU
007770,000336:
007771,000337: 14,6174 34503 CAF BIT12 # NO IMU FAILS, PLEASE.
007772,000338: 14,6175 70726 MASK OLDERR
007773,000339: 14,6176 10000 CCS A
007774,000340: 14,6177 06305 TC FAILEND
007775,000341: 14,6200 06314 TC GOODEND
007776,000342:
007777,000343: 14,6201 44513 IFAILOK CS BIT4 # ENABLE IMU FAIL 5 SECONDS AFTER COMING
007778,000344: 14,6202 70726 MASK OLDERR # OUT OF COARSE ALIGN.
007779,000345: 14,6203 50726 TS OLDERR
007780,000346: 14,6204 02256 TC TASKOVER
007781,000347:
Page 198 |
007783,000349:
007784,000350: # CDU LOCK PROGRAM
007785,000351:
007786,000352: 14,6205 06245 IMULOCK TC SETKANDC # SET APPROPRIATE K AND C CONFIGS.
007787,000353: 14,6206 00044 OCT 00044
007788,000354: 14,6207 40004 OCT 40004
007789,000355:
007790,000356: 14,6210 36103 CAF 320MS
007791,000357: 14,6211 02173 TC WAITLIST # PLACE.
007792,000358: 14,6212 30214 CADR IMULOCKD
007793,000359: 14,6213 06160 TC DISEXIT
007794,000360:
007795,000361: 14,6214 06264 IMULOCKD TC ENDIMU
007796,000362: 14,6215 06314 TC GOODEND
007797,000363:
007798,000364: 14,6216 14,6214 COARSDON EQUALS IMULOCKD
007799,000365:
Page 199 |
007801,000367:
007802,000368: # IMU RE-ENTRY AND ATTITUDE CONTROL PROGRAMS
007803,000369:
007804,000370: 14,6216 06757 IMUREENT TC TSTIMACT
007805,000371: 14,6217 06245 TC SETKANDC
007806,000372: 14,6220 00140 OCT 00140
007807,000373: 14,6221 42000 OCT 42000
007808,000374: 14,6222 06227 TC ENABEXIT
007809,000375:
007810,000376:
007811,000377:
007812,000378: 14,6223 06757 IMUATTC TC TSTIMACT
007813,000379: 14,6224 06245 TC SETKANDC
007814,000380: 14,6225 00060 OCT 00060
007815,000381: 14,6226 41000 OCT 41000
007816,000382:
007817,000383: 14,6227 36103 ENABEXIT CAF 320MS
007818,000384: 14,6230 02173 TC WAITLIST
007819,000385: 14,6231 30233 CADR ENABLE
007820,000386: 14,6232 06160 TC DISEXIT # DISABLE POSSIBLE GYRO ACTIVITY.
007821,000387:
007822,000388: 14,6233 03430 ENABLE TC FLAG1DWN
007823,000389: 14,6234 02000 OCT 02000
007824,000390:
007825,000391: 14,6235 06264 TC ENDIMU
007826,000392:
007827,000393: 14,6236 35501 CAF ZERO # ENABLE CDU LOOPS
007828,000394: 14,6237 50677 TS CDUIND
007829,000395: 14,6240 06314 TC GOODEND
007830,000396: # NOTICE THAT NO INSPECTION OF CDU AND IMU
007831,000397: # ERROR SIGNALS IS MADE SINCE IN THESE
007832,000398: # MODES THE MAIN PROGRAM MUST CHECK THE
007833,000399: # STATUS OF THESE SIGNALS PERIODICALLY.
007834,000400:
007835,000401:
007836,000402:
007837,000403: # IMUFINIS - TO BE CALLED AT THE END OF COMPUTER-CONTROLLED MODE SWITCHING. PLACES MODE SAMPLING INTO
007838,000404: # MANUAL CONTROL, SWITCHES THE SYSTEM TO FINE ALIGN, AND DISABLES THE T4RUPT CDU DRIVE. NO CALL TO IMUSTALL IS
007839,000405: # REQUIRED HERE.
007840,000406:
007841,000407: 14,6241 06245 IMUFINIS TC SETKANDC
007842,000408: 14,6242 00000 OCT 00000 # 0 MEANS COMPUTER IS NO LONGER IN CONTROL
007843,000409: 14,6243 40010 OCT 40010 # FINE ALIGN C-RELAY CODE.
007844,000410: 14,6244 06160 TC DISEXIT
007845,000411:
Page 200 |
007847,000413:
007848,000414: # SUBROUTINE USED BY MODE-SWITCHING PROGRAMS TO SET DESIRED K- AND C-RELAY SETTINGS.
007849,000415:
007850,000416: 14,6245 20017 SETKANDC INHINT # INHINT AND EXIT WITH INTERRUPT INHIBITED
007851,000417: 14,6246 20001 INDEX Q
007852,000418: 14,6247 30000 CAF 0
007853,000419: 14,6250 50731 TS DESKSET # DESIRED K-RELAY SETTING AS READ IN IN3.
007854,000420:
007855,000421: 14,6251 36260 CAF OFFMSK # SET C-RELAYS FOR ZERO ENCODER, COARSE
007856,000422: 14,6252 70723 MASK DSPTAB +11D # ALIGN, FINE ALIGN, LOCK CDU, ROLL
007857,000423: 14,6253 20001 INDEX Q # RE-ENTRY, AND ATTITUDE CONTROL LAMP.
007858,000424: 14,6254 60001 AD 1
007859,000425: 14,6255 50723 TS DSPTAB +11D
007860,000426:
007861,000427: 14,6256 20001 INDEX Q
007862,000428: 14,6257 00002 TC 2 # RETURN TO CALLER IN INHINT.
007863,000429:
007864,000430: 14,6260 34760 OFFMSK OCT 34760
007865,000431:
Page 201 |
007867,000433:
007868,000434: # WHEN A MODE-SWITCHING TASK IS DISPATCHED TO INDICATE THE END OF A MODE-SWITCH, ENDIMU (OR ENDOPT) IS
007869,000435: # CALLED TO WAKE UP ANY JOB IMUSTALL (OPTSTALL) MIGHT HAVE PUT TO SLEEP AND THEN CHECK WASKSET (WASOPSET) TO SEE
007870,000436: # THAT THE MODE-SWITCH WAS SUCCESSFUL.
007871,000437:
007872,000438: 14,6261 35503 ENDOPT CAF TWO
007873,000439: 14,6262 64476 AD POSMAX
007874,000440: 14,6263 50034 TS OVCTR # SKIP WITH C(A) = 1.
007875,000441:
007876,000442: 14,6264 35501 ENDIMU CAF ZERO
007877,000443: 14,6265 50640 TS RUPTREG2 # 0 FOR IMU, 1 FOR OPTICS.
007878,000444:
007879,000445: 14,6266 30001 XCH Q
007880,000446: 14,6267 50637 TS RUPTREG1
007881,000447:
007882,000448: 14,6270 20640 INDEX RUPTREG2
007883,000449: 14,6271 10733 CCS MODECADR # SEE IF IMUSTALL (OPTSTALL) PUT A JOB
007884,000450: 14,6272 06274 TC +2 # TO SLEEP.
007885,000451: 14,6273 06300 TC ENDMODE # +0 IF NOT.
007886,000452: 14,6274 34516 CAF ONE # SET PROPER MODECADR TO 1 TO INDICATE
007887,000453: 14,6275 20640 INDEX RUPTREG2 # A JOB WAS AWAKENED.
007888,000454: 14,6276 30733 XCH MODECADR
007889,000455: 14,6277 02060 TC JOBWAKE
007890,000456:
007891,000457: 14,6300 20640 ENDMODE INDEX RUPTREG2 # CHECK PROPER *WAS* REGISTER TO SEE IF
007892,000458: 14,6301 10727 CCS WASKSET # SWITCH WAS SUCCESSFUL.
007893,000459: 14,6302 00637 TC RUPTREG1 # YES - RETURN FOR MORE CHECKING IF OK.
007894,000460: 14,6303 06305 TC +2 # FAILED - STILL WAITING TO SWITCH.
007895,000461: 14,6304 00637 TC RUPTREG1 # MANUAL INHIBIT.
007896,000462:
007897,000463: 14,6305 20640 FAILEND INDEX RUPTREG2 # COMES HERE TO SIGNAL ERROR RETURN FROM
007898,000464: 14,6306 10733 CCS MODECADR # MODE STALL ROUTINES.
007899,000465: 14,6307 06311 TC +2 # JOB WAS WAKENED EARLIER - EXIT W/O INCR.
007900,000466: 14,6310 40000 COM # NO WAKE-UP - SET MODECADR TO -0 FOR FAIL
007901,000467: 14,6311 20640 LVENDMOD INDEX RUPTREG2
007902,000468: 14,6312 50733 TS MODECADR
007903,000469: 14,6313 02256 TC TASKOVER
007904,000470:
007905,000471: 14,6314 20640 GOODEND INDEX RUPTREG2 # COMES HERE TO SIGNAL A SUCCESSFUL SWITCH
007906,000472: 14,6315 10733 CCS MODECADR
007907,000473: 14,6316 06321 TC BUMPJOB # JOB WAS AWAKENED - INCREMENT LOC.
007908,000474: 14,6317 44516 CS ONE # NO WAKE - SET MODECADR TO -1 TO INDICATE
007909,000475: 14,6320 06311 TC LVENDMOD # SUCCESS.
007910,000476:
007911,000477: 14,6321 20601 BUMPJOB INDEX LOCCTR # ARRIVES WITH C(A) = 0. LOCCTR SET TO
007912,000478: 14,6322 30120 XCH LOC # AWAKENED JOB REGISTERS.
007913,000479: 14,6323 64335 AD MINUS1 # LOC IS NEGATIVE FOR BASIC JOBS.
007914,000480: 14,6324 20601 INDEX LOCCTR
007915,000481: 14,6325 30120 XCH LOC
007916,000482: 14,6326 06311 TC LVENDMOD # SET MODECADR TO +0 AND EXIT.
007917,000483:
Page 202 |
007919,000485:
007920,000486: # WHEN A JOB WHICH REQUESTED A MODE SWITCH MUST IDLE UNTIL THE SWITCH IS COMPLETE, IT COMES TO IMUSTALL
007921,000487: # (OR OPTSTALL) TO WAIT FOR THE COMPLETION AND TO DO ERROR CHECKING. RETURN IS TO THE LOCATION IMMEDIATELY FOLLOW-
007922,000488: # ING THE CALLING SEQUENCE IF THE SWITCH WAS UNSUCCESSFUL, AND THE NEXT LOCATION IF IT WAS SUCCESSFUL. ANY
007923,000489: # IDLING IS DONE BY PUTTING THE JOB TO SLEEP, SO THAT A VAC AREA (IF USED) WOULD BE PRESERVED.
007924,000490:
007925,000491: 14,6327 34516 OPTSTALL CAF ONE # 0 FOR IMU AND 1 FOR OPTICS AS USUAL.
007926,000492: 14,6330 06332 TC +2
007927,000493:
007928,000494: 14,6331 35501 IMUSTALL CAF ZERO
007929,000495: 14,6332 20017 INHINT # ONE SUB-SYSTEM AT A TIME ONLY.
007930,000496: 14,6333 50640 TS RUPTREG2
007931,000497: 14,6334 20000 INDEX A
007932,000498: 14,6335 10733 CCS MODECADR # SEE IF MODE SWITCH IS COMPLETE.
007933,000499: 14,6336 06357 TC MODABORT # VERY ILL IF SOMEONE ALREADY WAITING.
007934,000500: 14,6337 06352 TC MODESLP # MODE SWITCH INCOMPLETE - PUT JOB TO REST
007935,000501: 14,6340 06344 TC MODEGOOD # -1 INDICATES A SUCCESSFULLY COMPLETED SW
007936,000502:
007937,000503: 14,6341 20640 MG2 INDEX RUPTREG2 # -0 MEANS FINISHED BUT FAILED.
007938,000504: 14,6342 50733 TS MODECADR # RESET TO +0.
007939,000505: 14,6343 06020 TC MODEEXIT # RELINT AND RETURN VIA SWCALL.
007940,000506:
007941,000507: 14,6344 10000 MODEGOOD CCS A # SEE THAT MODECADR WAS INDEED -1.
007942,000508: 14,6345 06357 TC MODABORT # VERY ILL IF SOMEONE ALREADY WAITING.
007943,000509: 14,6346 30071 XCH TEMQS # INCREMENT RETURN TO INDICATE SUCCESS.
007944,000510: 14,6347 64516 AD ONE
007945,000511: 14,6350 30071 XCH TEMQS # BRING +0 BACK
007946,000512: 14,6351 06341 TC MG2 # TO RESET MODECADR AND EXIT.
007947,000513:
007948,000514: 14,6352 05706 MODESLP TC MAKECADR # MAKE CADR FROM SWCALL RETUN ADDRESS.
007949,000515: 14,6353 30062 XCH ADDRWD
007950,000516: 14,6354 20640 INDEX RUPTREG2
007951,000517: 14,6355 50733 TS MODECADR
007952,000518: 14,6356 02127 TC JOBSLEEP
007953,000519:
007954,000520: 14,6357 03044 MODABORT TC ABORT # IMU OR OPTSTALL ABORT.
007955,000521: 14,6360 01210 OCT 01210
007956,000522:
007957,000523: 14,6361 ENDSTALL EQUALS
007958,000524:
Page 203 |
007960,000526:
007961,000527: # THE FOLLOWING ROUTINE INCREMENTS IN 2S COMPLEMENT THE REGISTER WHOSE ADDRESS IS IN ADDRWD BY THE
007962,000528: # QUANTITY FOUND IN TEM2. THIS MAY BE USED TO INCREMENT DESIRED IMU AND OPTICS CDU ANGLES OR ANY OTHER 2S
007963,000529: # COMPLEMENT (+0 UNEQUAL TO -0) QUANTITY.
007964,000530:
007965,000531: 14,6361 50102 CDUINC TS TEM2 # 1S COMPLEMENT INCREMENT ARRIVING IN A.
007966,000532: 14,6362 20077 INDEX BUF
007967,000533: 14,6363 10000 CCS 0 # THE 16TH BIT OF A WILL BE USED TO
007968,000534: 14,6364 64516 AD ONE # ACHIEVE THE REQUIRED 32,768 DISTINCT
007969,000535: 14,6365 06371 TC +4 # STATES.
007970,000536:
007971,000537: 14,6366 64516 AD ONE
007972,000538: 14,6367 64516 AD ONE # A MAY HAVE OVERFLOW PRESENT HERE.
007973,000539: 14,6370 40000 COM # DESIRED -1 IF DESIRED WAS NEGATIVE.
007974,000540:
007975,000541: 14,6371 60102 +4 AD TEM2 # AND MAYBE OVERFLOW SOME MORE.
007976,000542: 14,6372 10000 CCS A # BACK TO 2S COMPLEMENT.
007977,000543: 14,6373 64516 AD ONE # NOTE THAT CCS TREATS A AS A 16 BIT NO.
007978,000544: 14,6374 06376 TC +2
007979,000545: 14,6375 40000 COM
007980,000546: 14,6376 50034 TS OVCTR # REVERTS -0 TO +0.
007981,000547: 14,6377 06403 TC +4 # NO OVERFLOW - PLANT NEW DESIRED.
007982,000548:
007983,000549: 14,6400 20000 INDEX A # OVERFLOW - SIMULATE UN-CORRECTED SIGN.
007984,000550: 14,6401 34477 CAF LIMITS # 37777 FOR NEGATIVE - 40000 IF PLUS.
007985,000551: 14,6402 60034 AD OVCTR # OVERFLOW-CORRECTED DIFFERENCE.
007986,000552:
007987,000553: 14,6403 20077 +4 INDEX BUF
007988,000554: 14,6404 50000 TS 0 # NEW ANGLE.
007989,000555:
007990,000556: 14,6405 05702 TC SWRETURN # RETURN TO CALLER.
007991,000557:
Page 204 |
007993,000559:
007994,000560: # MARK REQUESTING ROUTINES.
007995,000561:
007996,000562: 14,6406 20017 SXTMARK INHINT
007997,000563: 14,6407 50637 TS RUPTREG1 # NUMBER OF MARKS REQUESTED.
007998,000564:
007999,000565: 14,6410 10735 CCS MARKSTAT # SEE IF MARK BUTTON ALREADY SNATCHED.
008000,000566: 14,6411 06413 TC +2 # YES - ALARM AND END THE STRAY JOB.
008001,000567: 14,6412 06416 TC MARKOK # +0 INDICATES AVAILABLE.
008002,000568:
008003,000569: 14,6413 03007 TC ALARM
008004,000570: 14,6414 00105 OCT 00105
008005,000571: 14,6415 02124 TC ENDOFJOB
008006,000572:
008007,000573: 14,6416 10216 MARKOK CCS VAC1USE # FIND A VAC AREA TO STORE THE MARKS IN.
008008,000574: 14,6417 06432 TC MKVACFND
008009,000575: 14,6420 10272 CCS VAC2USE
008010,000576: 14,6421 06432 TC MKVACFND
008011,000577: 14,6422 10346 CCS VAC3USE
008012,000578: 14,6423 06432 TC MKVACFND
008013,000579: 14,6424 10422 CCS VAC4USE
008014,000580: 14,6425 06432 TC MKVACFND
008015,000581: 14,6426 10476 CCS VAC5USE
008016,000582: 14,6427 06432 TC MKVACFND
008017,000583:
008018,000584: 14,6430 03044 TC ABORT # VAC AREAS ALL OCCUPIED - ABORT.
008019,000585: 14,6431 01207 OCT 01207
008020,000586:
008021,000587: 14,6432 65503 MKVACFND AD TWO # ADDRESS OF VAC.
008022,000588: 14,6433 50735 TS MARKSTAT
008023,000589: 14,6434 20000 INDEX A
008024,000590: 14,6435 50052 TS QPRET # USED TO SHOW NEXT AVAILABLE MARK SLOT.
008025,000591:
008026,000592: 14,6436 35501 CAF ZERO # SHOW VACAREA IS OCCUPIED.
008027,000593: 14,6437 20735 INDEX MARKSTAT
008028,000594: 14,6440 47777 TS 0 -1
008029,000595:
008030,000596: 14,6441 34503 CAF BIT12 # PLACE DESIRED NUMBER OF MARKS IN 12 - 14
008031,000597: 14,6442 25777 EXTEND
008032,000598: 14,6443 40637 MP RUPTREG1
008033,000599: 14,6444 30003 XCH LP
008034,000600: 14,6445 60735 AD MARKSTAT # JUST CONTAINS LOW 9 BITS OF VAC ADDRESS.
008035,000601: 14,6446 50735 TS MARKSTAT
008036,000602:
008037,000603: 14,6447 32165 MARKEXIT CAF PRIO32
008038,000604: 14,6450 02052 TC NOVAC
008039,000605: 14,6451 30677 CADR MKVB51
008040,000606: 14,6452 06020 TC MODEEXIT
008041,000607:
Page 205 |
008043,000609:
008044,000610: # MARK SYSTEM RELEASING ROUTINE.
008045,000611:
008046,000612: 14,6453 35501 MKRELEAS CAF ZERO # SHOW MARK SYSTEM NOW AVAILABLE.
008047,000613: 14,6454 30735 XCH MARKSTAT
008048,000614: 14,6455 10000 CCS A
008049,000615: 14,6456 20000 INDEX A
008050,000616: 14,6457 50000 TS 0
008051,000617:
008052,000618: 14,6460 05702 TC SWRETURN
008053,000619:
Page 206 |
008055,000621:
008056,000622: # KEYRUPT LEAD-IN AND MARK/MARK ACCEPT PROGRAMS.
008057,000623:
008058,000624: 14,6461 50030 KEYRUPTA TS BANKRUPT
008059,000625: 14,6462 40053 MARK CS OPTY # PRECISION OPTICS DRIVE - GATHER DATA
008060,000626: 14,6463 50577 TS RUPTSTOR +5 # IMMEDIATELY AND THEN TRANSFER TO VAC.
008061,000627:
008062,000628: 14,6464 40052 CS OPTX # SHAFT OPTICS ENCODER.
008063,000629: 14,6465 50575 TS RUPTSTOR +3
008064,000630:
008065,000631: 14,6466 40050 CS CDUY # READ INNER-MIDDLE-OUTER IMUCDUS.
008066,000632: 14,6467 50574 TS RUPTSTOR +2
008067,000633:
008068,000634: 14,6470 40051 CS CDUZ
008069,000635: 14,6471 50576 TS RUPTSTOR +4
008070,000636:
008071,000637: 14,6472 40047 CS CDUX
008072,000638: 14,6473 50600 TS RUPTSTOR +6
008073,000639:
008074,000640: 14,6474 02677 TC READTIME +1 # SPECIAL DP TIME COUNTER-READING ROUTINE.
008075,000641:
008076,000642: 14,6475 34512 CAF BIT5 # DO NOT ACCEPT KEYCODE UNLESS PREVIOUS
008077,000643: 14,6476 70645 MASK STATE # KEYCODE HAS DISAPPEARED FROM IN0 (SEE
008078,000644: 14,6477 10000 CCS A # T4RUPTA). IF SO, BIT5 OF STATE = 0.
008079,000645: 14,6500 02264 TC RESUME # IF NOT, BIT5 = 1.
008080,000646:
008081,000647: 14,6501 44512 CS BIT5 # ACCEPT CODE AND BLOCK KEYRUPTS UNTIL
008082,000648: 14,6502 70645 MASK STATE # PRESENT KEYCODE HAS GONE AWAY.
008083,000649: 14,6503 64512 AD BIT5
008084,000650: 14,6504 50645 TS STATE
008085,000651:
008086,000652: 14,6505 10004 CCS IN0 # SEE IF KEYCODE OR MARK.
008087,000653: 14,6506 64516 AD ONE
008088,000654: 14,6507 06674 TC KEYCALL
008089,000655: 14,6510 06511 TC +1 # IN0 SHOULD NEVER CONTAIN -0.
008090,000656:
008091,000657: 14,6511 30007 XCH IN3 # NOW FIND OUT IF IT WAS A MARK-REJECT.
008092,000658: 14,6512 30007 XCH IN3
008093,000659: 14,6513 74503 MASK BIT12 # OPT ZERO/MARK REJECT BIT.
008094,000660: 14,6514 10000 CCS A
008095,000661: 14,6515 06611 TC MKREJECT
Page 207 |
008097,000663:
008098,000664: 14,6516 10735 CCS MARKSTAT # SEE IF MARKS BEING CALLED FOR.
008099,000665: 14,6517 06543 TC MARK2
008100,000666:
008101,000667: 14,6520 30575 XCH RUPTSTOR +3 # STORE IN OBTAINED MPAC COMPLEMENTED.
008102,000668: 14,6521 50637 TS RUPTREG1 # OPTICS ANGLES AND MINOR PART OF TIME.
008103,000669: 14,6522 30577 XCH RUPTSTOR +5 # -OPTX, -OPTY, AND -TIME1.
008104,000670: 14,6523 50640 TS RUPTREG2
008105,000671: 14,6524 30573 XCH RUPTSTOR +1
008106,000672: 14,6525 50641 TS RUPTREG3
008107,000673:
008108,000674: 14,6526 32143 CAF PRIO5 # CALL SPECIAL DISPLAY JOB
008109,000675: 14,6527 02052 TC NOVAC
008110,000676: 14,6530 30651 CADR MARKDISP
008111,000677:
008112,000678: 14,6531 30637 XCH RUPTREG1 # PLANT INFORMATION IN MPAC OF REGISTER
008113,000679: 14,6532 20601 INDEX LOCCTR # SET.
008114,000680: 14,6533 50115 TS MPAC
008115,000681: 14,6534 30640 XCH RUPTREG2
008116,000682: 14,6535 20601 INDEX LOCCTR
008117,000683: 14,6536 50116 TS MPAC +1
008118,000684: 14,6537 30641 XCH RUPTREG3
008119,000685: 14,6540 20601 INDEX LOCCTR
008120,000686: 14,6541 50117 TS MPAC +2
008121,000687:
008122,000688: 14,6542 02264 TC RESUME
008123,000689:
Page 208 |
008125,000691:
008126,000692: 14,6543 66676 MARK2 AD 74K # SEE IF ANY MORE MARKS CALLED FOR.
008127,000693: 14,6544 10000 CCS A
008128,000694: 14,6545 06552 TC MARK3
008129,000695: 14,6546 76777 BIT10BAR OCT -1000
008130,000696: 14,6547 03007 BADMARK TC ALARM
008131,000697: 14,6550 00106 OCT 00106
008132,000698: 14,6551 02264 TC RESUME # NO FURTHER ACTION HERE.
008133,000699:
008134,000700: 14,6552 64516 MARK3 AD ONE # SET BIT 10 = 1 TO ENABLE MARK
008135,000701: 14,6553 76546 MASK BIT10BAR # REJECT.
008136,000702: 14,6554 64505 AD BIT10
008137,000703: 14,6555 50735 TS MARKSTAT
008138,000704:
008139,000705: 14,6556 74607 MASK LOW9 # SET UP REGISTER TRANSFER LOOP.
008140,000706: 14,6557 50640 TS RUPTREG2 # ADVANCE POINTER IN QPRET.
008141,000707: 14,6560 20000 INDEX A
008142,000708: 14,6561 30052 XCH QPRET # PICK UP MARK SLOT-POINTER.
008143,000709: 14,6562 64475 AD SIX
008144,000710: 14,6563 50637 TS RUPTREG1
008145,000711: 14,6564 64516 AD ONE
008146,000712: 14,6565 20640 INDEX RUPTREG2
008147,000713: 14,6566 50052 TS QPRET
008148,000714: 14,6567 34475 CAF SIX # LOOP SEVEN TIMES.
008149,000715:
008150,000716: 14,6570 50640 READLOOP TS RUPTREG2
008151,000717: 14,6571 20000 INDEX A
008152,000718: 14,6572 40572 CS RUPTSTOR
008153,000719: 14,6573 20637 INDEX RUPTREG1
008154,000720: 14,6574 50000 TS 0
008155,000721: 14,6575 10637 CCS RUPTREG1 # ADDRESS NEXT LOCATION IN VAC.
008156,000722: 14,6576 50637 TS RUPTREG1
008157,000723: 14,6577 10640 CCS RUPTREG2
008158,000724: 14,6600 06570 TC READLOOP
008159,000725:
008160,000726: 14,6601 32261 CAF HI5 # IF ALL REQUESTED MARKS MADE, CHANGE
008161,000727: 14,6602 70735 MASK MARKSTAT # DSKY TO VERB 50 FLASHING.
008162,000728: 14,6603 10000 CCS A
008163,000729: 14,6604 02264 TC RESUME
008164,000730: 14,6605 32165 CAF PRIO32
008165,000731: 14,6606 02052 TC NOVAC
008166,000732: 14,6607 30750 CADR MKVB50
008167,000733: 14,6610 02264 TC RESUME # DONE.
008168,000734:
Page 209 |
008170,000736:
008171,000737: 14,6611 10735 MKREJECT CCS MARKSTAT # SEE IF MARKS BEING ACCEPTED.
008172,000738: 14,6612 06616 TC REJECT2
008173,000739: 14,6613 03007 TC ALARM # CURSE IF NOT.
008174,000740: 14,6614 00107 OCT 00107
008175,000741: 14,6615 02256 TC TASKOVER # (UNTIL MK ACCEPT BUTTON AVAILABLE).
008176,000742:
008177,000743: 14,6616 44505 REJECT2 CS BIT10 # SEE IF MARK HAD BEEN MADE SINCE LAST
008178,000744: 14,6617 70735 MASK MARKSTAT # MARK REJECT, AND SET BIT 10 TO ZERO TO
008179,000745: 14,6620 30735 XCH MARKSTAT # SHOW MARK REJECT.
008180,000746: 14,6621 74505 MASK BIT10
008181,000747: 14,6622 10000 CCS A
008182,000748: 14,6623 06627 TC REJECT3
008183,000749:
008184,000750: 14,6624 03007 TC ALARM # DONT ACCEPT TWO MARK REJECTS TOGETHER.
008185,000751: 14,6625 00110 OCT 00110
008186,000752: 14,6626 02256 TC TASKOVER # (UNTIL MK REJECT BUTTON AVAILABLE).
008187,000753:
008188,000754: 14,6627 34607 REJECT3 CAF LOW9 # DECREMENT POINTER TO REJECT MARK.
008189,000755: 14,6630 70735 MASK MARKSTAT
008190,000756: 14,6631 50577 TS ITEMP1
008191,000757: 14,6632 45362 CS SEVEN
008192,000758: 14,6633 20577 INDEX ITEMP1
008193,000759: 14,6634 60052 AD QPRET
008194,000760: 14,6635 20577 INDEX ITEMP1
008195,000761: 14,6636 50052 TS QPRET # NEW POINTER.
008196,000762:
008197,000763: 14,6637 34503 CAF BIT12 # INCREMENT MARKS-TO-BE-ACCEPTED FIELD
008198,000764: 14,6640 60735 AD MARKSTAT # AND IF FIELD IS NOW NON-ZERO, CHANGE
008199,000765: 14,6641 30735 XCH MARKSTAT # DSKY TO VERB 51 FLASHING TO INDICATE
008200,000766: 14,6642 72261 MASK HI5 # MORE MARKS REQUIRED.
008201,000767: 14,6643 10000 CCS A
008202,000768: 14,6644 02256 TC TASKOVER # (UNTIL BUTTON AVAIL.)
008203,000769: 14,6645 32165 CAF PRIO32
008204,000770: 14,6646 02052 TC NOVAC
008205,000771: 14,6647 30755 CADR REMKVB51
008206,000772: 14,6650 02256 TC TASKOVER
008207,000773:
Page 210 |
008209,000775:
008210,000776: 14,6651 03302 MARKDISP TC GRABDSP # SPECIAL JOB TO DISPLAY UNCALLED-FOR MARK
008211,000777: 14,6652 03310 TC PREGBSY
008212,000778:
008213,000779: 14,6653 40115 REMKDSP CS MPAC # THE MPAC REGISTERS CONTIN -OPTX, -OPTY,
008214,000780: 14,6654 50616 TS DSPTEM1
008215,000781: 14,6655 40116 CS MPAC +1
008216,000782: 14,6656 50617 TS DSPTEM1 +1
008217,000783: 14,6657 40117 CS MPAC +2
008218,000784: 14,6660 50621 TS DSPTEM2
008219,000785: 14,6661 35501 CAF ZERO
008220,000786: 14,6662 50620 TS DSPTEM1 +2
008221,000787:
008222,000788: 14,6663 36672 CAF MKDSPCOD # NOUN-VERB FOR MARK DISPLAY.
008223,000789: 14,6664 03100 TC NVSUB
008224,000790: 14,6665 06670 TC MKDSPBSY # IF BUSY.
008225,000791:
008226,000792: 14,6666 03362 ENDMKDSP TC FREEDSP
008227,000793:
008228,000794: 14,6667 02124 TC ENDOFJOB
008229,000795:
008230,000796: 14,6670 36673 MKDSPBSY CAF LREMKDSP # TAKE DATA OUT OF MPAC WHEN RE-AWAKENED.
008231,000797: 14,6671 03320 TC NVSUBUSY
008232,000798:
008233,000799: 14,6672 00656 MKDSPCOD OCT 00656
008234,000800: 14,6673 30653 LREMKDSP CADR REMKDSP
008235,000801:
008236,000802: 14,6674 05720 KEYCALL TC POSTJUMP # GO TO KEYBOARD/DISPLAY BANK WITH A
008237,000803: 14,6675 10001 CADR KEYRUPTC # GO THRU STANDARD LOC.
008238,000804:
008239,000805: 14,6676 74000 74K OCT 74000
008240,000806:
008241,000807: 14,6677 14,6406 SCTMARK EQUALS SXTMARK
008242,000808:
Page 211 |
008244,000810:
008245,000811: # KEYBOARD AND DISPLAY ROUTINES FOR MARK PROCEDURES.
008246,000812:
008247,000813: # FLASH VERB 51 WHEN WAITING FOR MARKS, CHANGING TO VERB 50 FLASHING WHEN ALL ARE IN.
008248,000814:
008249,000815: 14,6677 36753 MKVB51 CAF VB51 # ASSUME USING PROGRAM HAS GRABBED DSP.
008250,000816: 14,6700 03100 TC NVSUB
008251,000817: 14,6701 03315 TC PRENVBSY
008252,000818: 14,6702 05654 TC BANKCALL
008253,000819: 14,6703 14000 CADR FLASHON
008254,000820: 14,6704 03136 TC ENDIDLE
008255,000821: 14,6705 06736 TC MKVB5X # DONT RESPOND TO PROCEED OR TERMINATE.
008256,000822: 14,6706 06736 TC MKVB5X
008257,000823:
008258,000824: 14,6707 36747 CAF OCT76 # ON ENTER, SEE IF DATA LOADED INSTEAD.
008259,000825: 14,6710 70602 MASK VERBREG
008260,000826: 14,6711 66714 AD -OCT50 # VERBS 50 AND 51 CAUSE END MARK ROUTINES.
008261,000827: 14,6712 10000 CCS A
008262,000828: 14,6713 06736 TC MKVB5X # ON DATA LOAD, RE-DISPLAY ORIGINAL VERB.
008263,000829: 14,6714 77727 -OCT50 OCT -50
008264,000830: 14,6715 06736 TC MKVB5X
008265,000831:
008266,000832: 14,6716 34607 CAF LOW9
008267,000833: 14,6717 70735 MASK MARKSTAT
008268,000834: 14,6720 50735 TS MARKSTAT # VAC ADR IN MARKSTAT AND NO. MARKS MADE
008269,000835: 14,6721 40000 COM
008270,000836: 14,6722 20735 INDEX MARKSTAT # WILL BE LEFT IN QPRET.
008271,000837: 14,6723 60052 AD QPRET
008272,000838: 14,6724 25777 EXTEND
008273,000839: 14,6725 44503 MP BIT12
008274,000840: 14,6726 64516 AD ONE
008275,000841: 14,6727 20735 INDEX MARKSTAT
008276,000842: 14,6730 50052 TS QPRET
008277,000843:
008278,000844: 14,6731 20017 INHINT # GO SERVICE OPTSTALL INTERFACE WITH
008279,000845: 14,6732 34516 CAF ONE # USING PROGRAM.
008280,000846: 14,6733 02173 TC WAITLIST
008281,000847: 14,6734 30744 CADR ENDMARKS
008282,000848: 14,6735 02124 TC ENDOFJOB
008283,000849:
Page 212 |
008285,000851:
008286,000852: 14,6736 32261 MKVB5X CAF HI5 # RE-DISPLAY VERB 51 IF MORE MARKS
008287,000853: 14,6737 70735 MASK MARKSTAT # WANTED AND VERB 50 IF ALL IN.
008288,000854: 14,6740 10000 CCS A
008289,000855: 14,6741 34510 CAF BIT7 # (MAKES VERB 51).
008290,000856: 14,6742 66746 AD VB50
008291,000857: 14,6743 06700 TC MKVB51 +1
008292,000858:
008293,000859: 14,6744 06261 ENDMARKS TC ENDOPT
008294,000860: 14,6745 06314 TC GOODEND
008295,000861:
008296,000862: 14,6746 05000 VB50 OCT 5000
008297,000863: 14,6747 00076 OCT76 OCT 76
008298,000864:
008299,000865: # ON RECEIPT OF LAST REQUESTED MARK, DISPLAY VERB 50 (STILL FLASHING).
008300,000866:
008301,000867: 14,6750 36746 MKVB50 CAF VB50
008302,000868: 14,6751 50110 TS NVTEMP # SPECIAL ENTRY TO NVSUB WHICH AVOIDS BUSY
008303,000869: 14,6752 03105 TC NVSUB +5 # TEST.
008304,000870: 14,6753 05100 VB51 OCT 5100
008305,000871: 14,6754 02124 TC ENDOFJOB
008306,000872:
008307,000873: # IF THE ABOVE IS REJECTED, REVERT TO VERB 51.
008308,000874:
008309,000875: 14,6755 36753 REMKVB51 CAF VB51
008310,000876: 14,6756 06751 TC MKVB50 +1
008311,000877:
Page 213 |
008313,000879:
008314,000880: # THE FOLLOWING ROUTINE ALLOWS INTERLOCKING OF IMU COMPENSATION AND CERTAIN IMU MODE CHANGES WHICH ARE
008315,000881: # MEANINGFUL AFTER THE IMU HAS BEEN ALIGNED. THESE INCLUDE IMUFINNW, IMUATTC, AND IMUREENT.
008316,000882:
008317,000883: 14,6757 20017 TSTIMACT INHINT # TEST IMU ACTIVITY BIT TO SEE IF GYROS
008318,000884: 14,6760 30001 XCH Q
008319,000885: 14,6761 50117 TS MPAC +2
008320,000886: 14,6762 44504 CS BIT11 # BEING TORQUED NOW.
008321,000887: 14,6763 70646 MASK FLAGWRD1
008322,000888: 14,6764 64504 AD BIT11
008323,000889: 14,6765 30646 XCH FLAGWRD1
008324,000890: 14,6766 74504 MASK BIT11
008325,000891: 14,6767 10000 CCS A
008326,000892: 14,6770 06772 TC +2 # IMU BUSY.
008327,000893: 14,6771 00117 TC MPAC +2 # CHANNEL AVAILABLE - PROCEED AS USUAL.
008328,000894:
008329,000895: 14,6772 30072 XCH BANKTEM # PUT THE JOB TO SLEEP FOR MAX TIME IT
008330,000896: 14,6773 50115 TS MPAC # SHOULD TAKE TO COMPENSATE.
008331,000897: 14,6774 30071 XCH TEMQS
008332,000898: 14,6775 50116 TS MPAC +1
008333,000899: 14,6776 36103 CAF 320MS
008334,000900: 14,6777 02173 TC WAITLIST
008335,000901: 14,7000 31003 CADR IMACT2
008336,000902: 14,7001 37010 CAF LIMUACTW
008337,000903: 14,7002 02127 TC JOBSLEEP
008338,000904:
008339,000905: # WAKE UP THE JOB AND SETTHE ACTIVITY FLAG.
008340,000906:
008341,000907: 14,7003 37010 IMACT2 CAF LIMUACTW
008342,000908: 14,7004 02060 TC JOBWAKE
008343,000909: 14,7005 03416 TC FLAG1UP
008344,000910: 14,7006 02000 OCT 02000
008345,000911: 14,7007 02256 TC TASKOVER
008346,000912:
008347,000913: 14,7010 31011 LIMUACTW CADR IMUACTW
008348,000914:
008349,000915: 14,7011 20017 IMUACTW INHINT
008350,000916: 14,7012 30115 XCH MPAC # PROCEED WITH MODE SWITCH.
008351,000917: 14,7013 50072 TS BANKTEM
008352,000918: 14,7014 30116 XCH MPAC +1
008353,000919: 14,7015 50071 TS TEMQS
008354,000920: 14,7016 00117 TC MPAC +2
End of include-file MODE_SWITCHING_AND_MARK_ROUTINES.agc. Parent file is MAIN.agc