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