Source Code

These source-code files are part of a reconstructed copy of Skylark 048, the Block II Command Module (CM) Apollo Guidance Computer (AGC) software for the Skylab-2, Skylab-3, Skylab-4, and Apollo-Soyuz Test Project missions.

They have been created via disassembly of binary dumps of the original core rope memory modules actually flown on Skylab-2, part numbers 2010802-541, 2010802-551, 2010802-561, 2010802-571, 2010802-581, and 2010802-591. Access to these modules was provided by the New Mexico Museum of Space History, who we are much indebted to.

The source code for the Apollo 15, 16, and 17 software, Artemis 072, was used as a starting point. Heavy use was made of TRW 4900.5-244, Programmed Guidance Equations for Skylark Command Module Earth Orbital Program, dated 14 February 1972. This document contains pseudocode of essentially all of Skylark, using original program labels which have been copied for this source reconstruction.

Since only binary dumps (rather than listings) of Skylark are available as source material, all comments and labels are approximate. They have been taken from the Programmed Guidance Equations or other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing.

048896,000002:                                                                                                  ## Copyright:   Public domain.
048897,000003:                                                                                                  ## Filename:    EXECUTIVE.agc
048898,000004:                                                                                                  ## Purpose:     A section of Skylark revision 048.
048899,000005:                                                                                                  ##              It is part of the source code for the Apollo Guidance Computer (AGC)
048900,000006:                                                                                                  ##              for Skylab-2, Skylab-3, Skylab-4, and ASTP. No original listings of
048901,000007:                                                                                                  ##              this software are available; instead, this file was created via
048902,000008:                                                                                                  ##              disassembly of dumps of the core rope modules actually flown on
048903,000009:                                                                                                  ##              Skylab-2. Access to these modules was provided by the New Mexico
048904,000010:                                                                                                  ##              Museum of Space History.
048905,000011:                                                                                                  ## Assembler:   yaYUL
048906,000012:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
048907,000013:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
048908,000014:                                                                                                  ## Mod history: 2023-09-04 MAS  Created from Artemis 072.
048909,000015: 
048910,000016: 
048911,000017:    4000                                           SETLOC   EXECF2                                
048912,000018:    4000                                           BANK                                           
048913,000019: 
048914,000020:                                                                                                  #  TO ENTER A JOB REQUEST REQUIRING NO VAC AREA:
048915,000021: 
048916,000022:    5133                                           COUNT*   $$/EXEC                               
048917,000023:    5133           34346        NOVAC30            CAF      PRIO30                                
048918,000024:    5134           00004        NOVAC              INHINT                                         
048919,000025:    5135           65226                           AD       FAKEPRET                              #  LOC(MPAC +6) - LOC(QPRET)
048920,000026:    5136           54063                           TS       NEWPRIO                               #  PRIORITY OF NEW JOB + NOVAC C(FIXLOC)
048921,000027: 
048922,000028:    5137           00006                           EXTEND                                         
048923,000029:    5140           50002                           INDEX    Q                                     #  Q WILL BE UNDISTURBED THROUGHOUT.
048924,000030:    5141           30001                           DCA      0                                     #  2CADR OF JOB ENTERED.
048925,000031:    5142           52066                           DXCH     NEWLOC                                
048926,000032:    5143           34767                           CAF      EXECBANK                              
048927,000033:    5144           56004                           XCH      FBANK                                 
048928,000034:    5145           54061                           TS       EXECTEM1                              
048929,000035:    5146           12626                           TCF      NOVAC2                                #  ENTER EXECUTIVE BANK.
048930,000036: 
048931,000037:                                                                                                  #  TO ENTER A JOB REQUEST REQUIRING A VAC AREA - E.G., ALL (PARTIALLY) INTERPRETIVE JOBS.
048932,000038: 
048933,000039:    5147           34764        FINVAC20           CAF      PRIO20                                
048934,000040:    5150           00004        FINDVAC            INHINT                                         
048935,000041:    5151           54063                           TS       NEWPRIO                               
048936,000042:    5152           00006                           EXTEND                                         
048937,000043:    5153           50002                           INDEX    Q                                     
048938,000044:    5154           30001                           DCA      0                                     
048939,000045:    5155           52066        SPVACIN            DXCH     NEWLOC                                
048940,000046:    5156           34767                           CAF      EXECBANK                              
048941,000047:    5157           56004                           XCH      FBANK                                 
048942,000048:    5160           12604                           TCF      FINDVAC2                              #  OFF TO EXECUTIVE SWITCHED-BANK.
048943,000049: 
048944,000050:                                                                                                  #  TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L:
048945,000051: 
048946,000052:                                                                                                  #  USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO.
048947,000053: 
048948,000054:    5161           56002        SPVAC              XCH      Q                                     
048949,000055:    5162           67701                           AD       NEG2                                  
048950,000056:    5163           56002                           XCH      Q                                     
048951,000057:    5164           15155                           TCF      SPVACIN                               
048952,000058: 
048953,000059:                                                                                                  #  TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED:
048954,000060: 
048955,000061:    5165           22002        CHANG1             LXCH     Q                                     
048956,000062:    5166           34767                           CAF      EXECBANK                              
048957,000063:    5167           56006                           XCH      BBANK                                 
048958,000064:    5170           12705                           TCF      CHANJOB                               
048959,000065: 
048960,000066:                                                                                                  #  TO SUSPEND AN INTERPRETIVE JOB:
048961,000067: 
048962,000068:    5171           40164        CHANG2             CS       LOC                                   #  NEGATIVE LOC SHOWS JOB = INTERPRETIVE.
048963,000069:                                                                                                  #  ITRACE (4) REFERS TO "CHANG2".
048964,000070:    5172           54001                           TS       L                                     
048965,000071:    5173           34767                 +2        CAF      EXECBANK                              
048966,000072:    5174           54006                           TS       BBANK                                 
048967,000073:    5175           12704                           TCF      CHANJOB    -1                         
048968,000074: 
048969,000075:                                                                                                  #  TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.):
048970,000076: 
048971,000077:    5176           54164        JOBSLEEP           TS       LOC                                   
048972,000078:    5177           34767                           CAF      EXECBANK                              
048973,000079:    5200           54004                           TS       FBANK                                 
048974,000080:    5201           12775                           TCF      JOBSLP1                               
048975,000081: 
048976,000082:                                                                                                  #  TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION:
048977,000083: 
048978,000084:    5202           00004        JOBWAKE            INHINT                                         
048979,000085:    5203           54065                           TS       NEWLOC                                
048980,000086:    5204           45000                           CS       TWO                                   #  EXIT IS VIA FINDVAC/NOVAC PROCEDURES.
048981,000087:    5205           26002                           ADS      Q                                     
048982,000088:    5206           34767                           CAF      EXECBANK                              
048983,000089:    5207           56004                           XCH      FBANK                                 
048984,000090:    5210           13022                           TCF      JOBWAKE2                              
048985,000091: 
048986,000092:                                                                                                  #  TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION:
048987,000093: 
048988,000094:    5211           00004        PRIOCHNG           INHINT                                         #  NEW PRIORITY ARRIVES IN A. RETURNS TO
048989,000095:    5212           54063                           TS       NEWPRIO                               #  CALLER AS SOON AS NEW JOB PRIORITY IS
048990,000096:    5213           34767                           CAF      EXECBANK                              #  HIGHEST. PREPARE FOR POSSIBLE BASIC-
048991,000097:    5214           56006                           XCH      BBANK                                 #  STYLE CHANGE-JOB.
048992,000098:    5215           54165                           TS       BANKSET                               
048993,000099:    5216           30002                           CA       Q                                     
048994,000100:    5217           13071                           TCF      PRIOCH2                               
048995,000101: 
048996,000102:                                                                                                  #  TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS:
048997,000103: 
048998,000104:    5220           34767        ENDOFJOB           CAF      EXECBANK                              
048999,000105:    5221           54004                           TS       FBANK                                 
049000,000106:    5222           13102                           TCF      ENDJOB1                               
049001,000107: 
049002,000108:    5223           30061        ENDFIND            CA       EXECTEM1                              #  RETURN TO CALLER AFTER JOB ENTRY
049003,000109:    5224           54004                           TS       FBANK                                 #  COMPLETE.
049004,000110:    5225           16710                           TCF      Q+2                                   
049005,000111:    5226     4767               EXECBANK           EQUALS   BIT11                                 #  THIS IS TRUE IF FINDVAC2 STAYS IN BANK 01
049006,000112: 
049007,000113:    5226           00110        FAKEPRET           ADRES    MPAC       -36D                       #  LOC(MPAC +6) - LOC(QPRET)
049008,000114: 
049009,000115:                                                                                                  #  LOCATE AN AVAILABLE VAC AREA.
049010,000116: 
049011,000117: 01,2000                                           SETLOC   EXECB1                                
049012,000118: 01,2000                                           BANK                                           
049013,000119: 
049014,000120: 01,2604                                           COUNT*   $$/EXEC                               
049015,000121:                                                                                                  #       ******** IF THE  EXECUTIVE IS 
049016,000122:                                                                                                  #                MOVED   OUT OF BANK 01
049017,000123:                                                                                                  #                DONT    FORGET TO CHANGE
049018,000124:                                                                                                  #                THE     VALUE OF
049019,000125:                                                                                                  #                ******  EXECBANK ****
049020,000126: 01,2604           54061        FINDVAC2           TS       EXECTEM1                              #  (SAVE CALLER'S BANK FIRST.)
049021,000127: 01,2605           10400                           CCS      VAC1USE                               
049022,000128: 01,2606           12621                           TCF      VACFOUND                              
049023,000129: 01,2607           10454                           CCS      VAC2USE                               
049024,000130: 01,2610           12621                           TCF      VACFOUND                              
049025,000131: 01,2611           10530                           CCS      VAC3USE                               
049026,000132: 01,2612           12621                           TCF      VACFOUND                              
049027,000133: 01,2613           10604                           CCS      VAC4USE                               
049028,000134: 01,2614           12621                           TCF      VACFOUND                              
049029,000135: 01,2615           10660                           CCS      VAC5USE                               
049030,000136: 01,2616           12621                           TCF      VACFOUND                              
049031,000137: 01,2617           07750                           TC       BAILOUT                               
049032,000138: 01,2620           31201                           OCT      31201                                 #  NO VAC AREAS
049033,000139: 
049034,000140: 01,2621           65000        VACFOUND           AD       TWO                                   #  RESERVE THIS VAC AREA BY STORING A ZERO
049035,000141: 01,2622           22007                           ZL                                             #  IN ITS VAC USE REGISTER AND STORE THE
049036,000142: 01,2623           50000                           INDEX    A                                     #  ADDRESS OF THE FIRST WORD OF IT IN THE
049037,000143: 01,2624           21777                           LXCH     0          -1                         #  LOW NINE BITS OF THE PRIORITY WORD.
049038,000144: 01,2625           26063                           ADS      NEWPRIO                               
049039,000145: 
049040,000146: 01,2626           35003        NOVAC2             CAF      ZERO                                  #  NOVAC ENTERS HERE. FIND A CORE SET.
049041,000147: 01,2627           54064                           TS       LOCCTR                                
049042,000148: 01,2630           32635                           CAF      NO.CORES                              #  SEVEN SETS OF ELEVEN REGISTERS EACH.
049043,000149: 01,2631           54062        NOVAC3             TS       EXECTEM2                              
049044,000150: 01,2632           50064                           INDEX    LOCCTR                                
049045,000151: 01,2633           10167                           CCS      PRIORITY                              #  EACH PRIORITY REGISTER CONTAINS -0 IF
049046,000152: 01,2634           12675                           TCF      NEXTCORE                              #  THE CORRESPONDING CORE SET IS AVAILABLE.
049047,000153: 01,2635           00006        NO.CORES           DEC      6          B-14                       
049048,000154: 01,2636           12675                           TCF      NEXTCORE                              #  AN ACTIVE JOB HAS A POSITIVE PRIORITY
049049,000155:                                                                                                  #  BUT A DORMANT JOB'S PRIORITY IS NEGATIVE
049050,000156: 
049051,000157: 01,2637           30063        CORFOUND           CA       NEWPRIO                               #  SET THE PRIORITY OF THIS JOB IN THE CORE
049052,000158: 01,2640           50064                           INDEX    LOCCTR                                #  SET'S PRIORITY REGISTER AND SET THE
049053,000159: 01,2641           54167                           TS       PRIORITY                              #  JOB'S PUSH-DOWN POINTER AT THE BEGINNING
049054,000160: 01,2642           75034                           MASK     LOW9                                  #  OF THE WORK AREA AND OVERFLOW INDICATOR
049055,000161: 01,2643           50064                           INDEX    LOCCTR                                
049056,000162: 01,2644           54166                           TS       PUSHLOC                               #  OFF TO PREPARE FOR INTERPRETIVE PROGRAMS
049057,000163: 
049058,000164: 01,2645           10064                           CCS      LOCCTR                                #  IF CORE SET ZERO IS BEING LOADED, SET UP
049059,000165: 01,2646           12662                           TCF      SETLOC                                #  OVFIND AND FIXLOC IMMEDIATELY.
049060,000166: 01,2647           54121                           TS       OVFIND                                
049061,000167: 01,2650           30166                           CA       PUSHLOC                               
049062,000168: 01,2651           54120                           TS       FIXLOC                                
049063,000169: 
049064,000170: 01,2652           10067        SPECTEST           CCS      NEWJOB                                #  SEE IF ANY ACTIVE JOBS WAITING (RARE).
049065,000171: 01,2653           12662                           TCF      SETLOC                                #  MUST BE AWAKENED BUT UNCHANGED JOB.
049066,000172: 01,2654           12655                           NOOP                                           #  CANNOT GET HERE
049067,000173: 01,2655           12656                           NOOP                                           #  CANNOT GET HERE
049068,000174: 01,2656           54067                           TS       NEWJOB                                #  +0 SHOWS ACTIVE JOB ALREADY SET.
049069,000175: 01,2657           52066                           DXCH     NEWLOC                                
049070,000176: 01,2660           52165                           DXCH     LOC                                   
049071,000177: 01,2661           15223                           TCF      ENDFIND                               
049072,000178: 
049073,000179: 01,2662           52066        SETLOC             DXCH     NEWLOC                                #  SET UP THE LOCATION REGISTERS FOR THIS
049074,000180: 01,2663           50064                           INDEX    LOCCTR                                
049075,000181: 01,2664           52165                           DXCH     LOC                                   
049076,000182: 01,2665           50067                           INDEX    NEWJOB                                #  THIS INDEX INSTRUCTION INSURES THAT THE
049077,000183: 01,2666           40167                           CS       PRIORITY                              #  HIGHEST ACTIVE PRIORITY WILL BE COMPARED
049078,000184: 01,2667           60063                           AD       NEWPRIO                               #  WITH THE NEW PRIORITY TO SEE IF NEWJOB
049079,000185: 01,2670           00006                           EXTEND                                         #  SHOULD BE SET TO SIGNAL A SWITCH.
049080,000186: 01,2671           65223                           BZMF     ENDFIND                               
049081,000187: 01,2672           30064                           CA       LOCCTR                                #  LOCCTR IS LEFT SET AT THIS CORE SET IF
049082,000188: 01,2673           54067                           TS       NEWJOB                                #  THE CALLER WANTS TO LOAD ANY MPAC
049083,000189: 01,2674           15223                           TCF      ENDFIND                               #  REGISTERS, ETC.
049084,000190: 
049085,000191: 01,2675           33032        NEXTCORE           CAF      COREINC                               
049086,000192: 01,2676           26064                           ADS      LOCCTR                                
049087,000193: 01,2677           10062                           CCS      EXECTEM2                              
049088,000194: 01,2700           12631                           TCF      NOVAC3                                
049089,000195: 01,2701           07750                           TC       BAILOUT                               #  NO CORE SETS.
049090,000196: 01,2702           31202                           OCT      31202                                 
049091,000197: 
049092,000198:                                                                                                  #  THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB.
049093,000199: 
049094,000200: 01,2703           22164                 -2        LXCH     LOC                                   
049095,000201: 01,2704           30165                 -1        CAE      BANKSET                               #  BANKSET, NOT BBANK, HAS RIGHT CONTENTS.
049096,000202: 01,2705           00004        CHANJOB            INHINT                                         
049097,000203: 01,2706           00006                           EXTEND                                         
049098,000204: 01,2707           04007                           ROR      SUPERBNK                              #  PICK UP CURRENT SBANK FOR BBCON
049099,000205: 01,2710           56001                           XCH      L                                     #  LOC IN A AND BBCON IN L.
049100,000206: 01,2711           50067                 +4        INDEX    NEWJOB                                #  SWAP LOC AND BANKSET.
049101,000207: 01,2712           52165                           DXCH     LOC                                   
049102,000208: 01,2713           52165                           DXCH     LOC                                   
049103,000209: 
049104,000210: 01,2714           30165                           CAE      BANKSET                               
049105,000211: 01,2715           00006                           EXTEND                                         
049106,000212: 01,2716           01007                           WRITE    SUPERBNK                              #  SET SBANK FOR NEW JOB.
049107,000213: 01,2717           52155                           DXCH     MPAC                                  #  SWAP MULTI-PURPOSE ACCUMULATOR AREAS.
049108,000214: 01,2720           50067                           INDEX    NEWJOB                                
049109,000215: 01,2721           52155                           DXCH     MPAC                                  
049110,000216: 01,2722           52155                           DXCH     MPAC                                  
049111,000217: 01,2723           52157                           DXCH     MPAC       +2                         
049112,000218: 01,2724           50067                           INDEX    NEWJOB                                
049113,000219: 01,2725           52157                           DXCH     MPAC       +2                         
049114,000220: 01,2726           52157                           DXCH     MPAC       +2                         
049115,000221: 01,2727           52161                           DXCH     MPAC       +4                         
049116,000222: 01,2730           50067                           INDEX    NEWJOB                                
049117,000223: 01,2731           52161                           DXCH     MPAC       +4                         
049118,000224: 01,2732           52161                           DXCH     MPAC       +4                         
049119,000225: 01,2733           52163                           DXCH     MPAC       +6                         
049120,000226: 01,2734           50067                           INDEX    NEWJOB                                
049121,000227: 01,2735           52163                           DXCH     MPAC       +6                         
049122,000228: 01,2736           52163                           DXCH     MPAC       +6                         
049123,000229: 
049124,000230: 01,2737           35003                           CAF      ZERO                                  
049125,000231: 01,2740           56121                           XCH      OVFIND                                #  MAKE PUSHLOC NEGATIVE IF OVFIND NZ.
049126,000232: 01,2741           00006                           EXTEND                                         
049127,000233: 01,2742           12745                           BZF      +3                                    
049128,000234: 01,2743           40166                           CS       PUSHLOC                               
049129,000235: 01,2744           54166                           TS       PUSHLOC                               
049130,000236: 
049131,000237: 01,2745           52167                           DXCH     PUSHLOC                               
049132,000238: 01,2746           50067                           INDEX    NEWJOB                                
049133,000239: 01,2747           52167                           DXCH     PUSHLOC                               
049134,000240: 01,2750           52167                           DXCH     PUSHLOC                               #  SWAPS PUSHLOC AND PRIORITY.
049135,000241: 01,2751           35034                           CAF      LOW9                                  #  SET FIXLOC TO BASE OF VAC AREA.
049136,000242: 01,2752           70167                           MASK     PRIORITY                              
049137,000243: 01,2753           54120                           TS       FIXLOC                                
049138,000244: 
049139,000245: 01,2754           10166                           CCS      PUSHLOC                               #  SET OVERFLOW INDICATOR ACCORDING TO
049140,000246: 01,2755           35003                           CAF      ZERO                                  
049141,000247: 01,2756           12763                           TCF      ENDPRCHG   -1                         
049142,000248: 01,2757           40166                           CS       PUSHLOC                               
049143,000249: 01,2760           54166                           TS       PUSHLOC                               
049144,000250: 01,2761           35001                           CAF      ONE                                   
049145,000251: 01,2762           56121                           XCH      OVFIND                                
049146,000252: 01,2763           54067                 -1        TS       NEWJOB                                
049147,000253: 01,2764           00003        ENDPRCHG           RELINT                                         
049148,000254: 01,2765           52165                           DXCH     LOC                                   #  BASIC JOBS HAVE POSITIVE ADDRESSES, SO
049149,000255: 01,2766           00006                           EXTEND                                         #  DISPATCH WITH A DTCB.
049150,000256: 01,2767           62771                           BZMF     +2                                    #  IF INTERPRETIVE, SET UP EBANK, ETC.
049151,000257: 01,2770           52006                           DTCB                                           
049152,000258: 
049153,000259: 
049154,000260: 01,2771           40000                           COM                                            #  EPILOGUE TO JOB CHANGE FOR INTERPRETIVE
049155,000261: 01,2772           65001                           AD       ONE                                   
049156,000262: 01,2773           54164                           TS       LOC                                   #  RESUME.
049157,000263: 01,2774           16017                           TCF      INTRSM                                
049158,000264: 
049159,000265:                                                                                                  #  COMPLETE JOBSLEEP PREPARATIONS.
049160,000266: 
049161,000267: 01,2775           00004        JOBSLP1            INHINT                                         
049162,000268: 01,2776           40167                           CS       PRIORITY                              #  NNZ PRIORITY SHOWS JOB ASLEEP.
049163,000269: 01,2777           54167                           TS       PRIORITY                              
049164,000270: 01,3000           36043                           CAF      LOW7                                  
049165,000271: 01,3001           70006                           MASK     BBANK                                 
049166,000272: 01,3002           00006                           EXTEND                                         
049167,000273: 01,3003           04007                           ROR      SUPERBNK                              #  SAVE OLD SUPERBANK VALUE.
049168,000274: 01,3004           54165                           TS       BANKSET                               
049169,000275: 01,3005           45003                           CS       ZERO                                  
049170,000276: 01,3006           54131        JOBSLP2            TS       BUF        +1                         #  HOLDS - HIGHEST PRIORITY.
049171,000277: 01,3007           13117                           TCF      EJSCAN                                #  SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB.
049172,000278: 
049173,000279: 01,3010           00004        NUCHANG2           INHINT                                         #  QUICK... DONT LET NEWJOB CHANGE TO +0.
049174,000280: 01,3011           10067                           CCS      NEWJOB                                
049175,000281: 01,3012           13015                           TCF      +3                                    #  NEWJOB STILL PNZ
049176,000282: 01,3013           00003                           RELINT                                         #  NEW JOB HAS CHANGED TO +0. WAKE UP JOB
049177,000283: 01,3014           13207                           TCF      ADVAN      +2                         #  VIA NUDIRECT. (VERY RARE CASE.)
049178,000284: 
049179,000285: 01,3015           35000                           CAF      TWO                                   
049180,000286: 01,3016           00006                           EXTEND                                         
049181,000287: 01,3017           05011                           WOR      DSALMOUT                              #  TURN ON ACTIVITY LIGHT
049182,000288: 01,3020           52165                           DXCH     LOC                                   #  AND SAVE ADDRESS INFO FOR BENEFIT OF
049183,000289: 01,3021           12711                           TCF      CHANJOB    +4                         #   POSSIBLE SLEEPING JOB.
049184,000290: 
049185,000291:                                                                                                  #  TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE
049186,000292:                                                                                                  #  LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND,
049187,000293:                                                                                                  #  LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE.
049188,000294: 
049189,000295: 01,3022           54061        JOBWAKE2           TS       EXECTEM1                              
049190,000296: 01,3023           35003                           CAF      ZERO                                  #  BEGIN CORE SET SCAN.
049191,000297: 01,3024           54064                           TS       LOCCTR                                
049192,000298: 01,3025           32635                           CAF      NO.CORES                              
049193,000299: 01,3026           54062        JOBWAKE4           TS       EXECTEM2                              
049194,000300: 01,3027           50064                           INDEX    LOCCTR                                
049195,000301: 01,3030           10167                           CCS      PRIORITY                              
049196,000302: 01,3031           13034                           TCF      JOBWAKE3                              #  ACTIVE JOB - CHECK NEXT CORE SET.
049197,000303: 01,3032           00014        COREINC            DEC      12         B-14                       #  12 REGISTERS PER CORE SET.
049198,000304: 01,3033           13043                           TCF      WAKETEST                              #  SLEEPING JOB - SEE IF CADR MATCHES.
049199,000305: 
049200,000306: 01,3034           33032        JOBWAKE3           CAF      COREINC                               
049201,000307: 01,3035           26064                           ADS      LOCCTR                                
049202,000308: 01,3036           10062                           CCS      EXECTEM2                              
049203,000309: 01,3037           13026                           TCF      JOBWAKE4                              
049204,000310: 01,3040           45001                           CS       ONE                                   #  EXIT IF SLEEPING JOB NOT FOUND.
049205,000311: 01,3041           54064                           TS       LOCCTR                                
049206,000312: 01,3042           15223                           TCF      ENDFIND                               
049207,000313: 
049208,000314: 01,3043           40065        WAKETEST           CS       NEWLOC                                
049209,000315: 01,3044           50064                           INDEX    LOCCTR                                
049210,000316: 01,3045           60164                           AD       LOC                                   
049211,000317: 01,3046           00006                           EXTEND                                         
049212,000318: 01,3047           13051                           BZF      +2                                    #  IF MATCH.
049213,000319: 01,3050           13034                           TCF      JOBWAKE3                              #  EXAMINE NEXT CORE SET IF NO MATCH.
049214,000320: 
049215,000321: 01,3051           50064                           INDEX    LOCCTR                                #  RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE
049216,000322: 01,3052           40167                           CS       PRIORITY                              
049217,000323: 01,3053           54063                           TS       NEWPRIO                               
049218,000324: 01,3054           50064                           INDEX    LOCCTR                                
049219,000325: 01,3055           54167                           TS       PRIORITY                              
049220,000326: 
049221,000327: 01,3056           44344                           CS       FBANKMSK                              #  MAKE UP THE 2CADR OF THE WAKE ADDRESS
049222,000328: 01,3057           70065                           MASK     NEWLOC                                #  USING THE CADR IN NEWLOC AND THE EBANK
049223,000329: 01,3060           64767                           AD       2K                                    #  HALF OF BBANK SAVED IN BANKSET.
049224,000330: 01,3061           56065                           XCH      NEWLOC                                
049225,000331: 01,3062           74344                           MASK     FBANKMSK                              
049226,000332: 01,3063           50064                           INDEX    LOCCTR                                
049227,000333: 01,3064           60165                           AD       BANKSET                               
049228,000334: 01,3065           54066                           TS       NEWLOC     +1                         
049229,000335: 
049230,000336: 01,3066           10064                           CCS      LOCCTR                                #  SPECIAL TREATMENT IF THIS JOB WAS
049231,000337: 01,3067           12662                           TCF      SETLOC                                #  ALREADY IN THE RUN (0) POSITION.
049232,000338: 01,3070           12652                           TCF      SPECTEST                              
049233,000339: 
049234,000340:                                                                                                  #  PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY.
049235,000341: 
049236,000342: 01,3071           54164        PRIOCH2            TS       LOC                                   
049237,000343: 01,3072           35003                           CAF      ZERO                                  #  SET FLAG TO TELL ENDJOB SCANNER IF THIS
049238,000344: 01,3073           54130                           TS       BUF                                   #  JOB IS STILL HIGHEST PRIORITY.
049239,000345: 01,3074           35034                           CAF      LOW9                                  
049240,000346: 01,3075           70167                           MASK     PRIORITY                              
049241,000347: 01,3076           60063                           AD       NEWPRIO                               
049242,000348: 01,3077           54167                           TS       PRIORITY                              
049243,000349: 01,3100           40000                           COM                                            
049244,000350: 01,3101           13006                           TCF      JOBSLP2                               #  AND TO EJSCAN.
049245,000351: 
049246,000352:                                                                                                  #  RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY.
049247,000353: 
049248,000354: 01,3102           00004        ENDJOB1            INHINT                                         
049249,000355: 01,3103           45003                           CS       ZERO                                  
049250,000356: 01,3104           54131                           TS       BUF        +1                         
049251,000357: 01,3105           56167                           XCH      PRIORITY                              
049252,000358: 01,3106           75034                           MASK     LOW9                                  
049253,000359: 01,3107           54001                           TS       L                                     
049254,000360: 
049255,000361: 01,3110           45226                           CS       FAKEPRET                              
049256,000362: 01,3111           60001                           AD       L                                     
049257,000363: 
049258,000364: 01,3112           00006                           EXTEND                                         
049259,000365: 01,3113           63117                           BZMF     EJSCAN                                #  NOVAC ENDOFJOB
049260,000366: 
049261,000367: 01,3114           10001                           CCS      L                                     
049262,000368: 01,3115           50000                           INDEX    A                                     
049263,000369: 01,3116           54000                           TS       0                                     
049264,000370: 
049265,000371: 01,3117           10203        EJSCAN             CCS      PRIORITY   +12D                       
049266,000372: 01,3120           03164                           TC       EJ1                                   
049267,000373: 01,3121     1361                                  EBANK=   SELFRET                               
049268,000374: 01,3121           66102        SELFBANK           BBCON    SELFCHK                               #  CANNOT GET HERE
049269,000375: 01,3122           13123                           TCF      +1                                    
049270,000376: 
049271,000377: 01,3123           10217                           CCS      PRIORITY   +24D                       #  EXAMINE EACH PRIORITY REGISTER TO FIND
049272,000378: 01,3124           03164                           TC       EJ1                                   #  THE JOB OF HIGHEST ACTIVE PRIORITY.
049273,000379: 01,3125           40201        OCT40201           OCT      40201                                 #  CANNOT GET HERE
049274,000380: 01,3126           13127                           TCF      +1                                    
049275,000381: 
049276,000382: 01,3127           10233                           CCS      PRIORITY   +36D                       
049277,000383: 01,3130           03164                           TC       EJ1                                   
049278,000384: 01,3131           67610        -CCSPR             -CCS     PRIORITY                              
049279,000385: 01,3132           13133                           TCF      +1                                    
049280,000386: 
049281,000387: 01,3133           10247                           CCS      PRIORITY   +48D                       
049282,000388: 01,3134           03164                           TC       EJ1                                   
049283,000389: 01,3135           03732        PHS2CADR           GENADR   PHSPART2                              #  CANNOT GET HERE
049284,000390: 01,3136           13137                           TCF      +1                                    
049285,000391: 
049286,000392: 01,3137           10263                           CCS      PRIORITY   +60D                       
049287,000393: 01,3140           03164                           TC       EJ1                                   
049288,000394: 01,3141           03510        PRT2CADR           GENADR   GETPART2                              #  CANNOT GET HERE
049289,000395: 01,3142           13143                           TCF      +1                                    
049290,000396: 
049291,000397: 01,3143           10277                           CCS      PRIORITY   +72D                       
049292,000398: 01,3144           03164                           TC       EJ1                                   
049293,000399: 01,3145           05345        LGCLCADR           GENADR   LONGCALL                              #  CANNOT GET HERE
049294,000400: 01,3146           13147                           TCF      +1                                    
049295,000401: 
049296,000402:                                                                                                  #  EVALUATE THE RESULTS OF THE SCAN.
049297,000403: 
049298,000404: 01,3147           10131                           CCS      BUF        +1                         #  SEE IF THERE ARE ANY ACTIVE JOBS WAITING
049299,000405: 
049300,000406: 01,3150           53271        GETCADR            DXCH     LONGCADR                              #  CANNOT GET HERE
049301,000407: 01,3151           05227                           TC       SUPDXCHZ                              
049302,000408: 01,3152           13154                           TCF      +2                                    
049303,000409: 01,3153           13177                           TCF      DUMMYJOB                              
049304,000410: 01,3154           10130                           CCS      BUF                                   #  BUF IS ZERO IF THIS IS A PRIOCHNG AND
049305,000411: 01,3155           13157                           TCF      +2                                    #  CHANGED PRIORITY IS STILL HIGHEST.
049306,000412: 01,3156           12763                           TCF      ENDPRCHG   -1                         
049307,000413: 
049308,000414: 01,3157           50000                           INDEX    A                                     #  OTHERWISE, SET NEWJOB TO THE RELATIVE
049309,000415: 01,3160           27777                           CAF      0          -1                         #  ADDRESS OF THE NEW JOB'S CORE SET.
049310,000416: 01,3161           63131                           AD       -CCSPR                                
049311,000417: 01,3162           54067                           TS       NEWJOB                                
049312,000418: 01,3163           12703                           TCF      CHANJOB    -2                         
049313,000419: 
049314,000420: 01,3164           54132        EJ1                TS       BUF        +2                         
049315,000421: 01,3165           60131                           AD       BUF        +1                         #  - OLD HIGH PRIORITY.
049316,000422: 01,3166           10000                           CCS      A                                     
049317,000423: 01,3167           40132                           CS       BUF        +2                         
049318,000424: 01,3170           13173                           TCF      EJ2                                   #  NEW HIGH PRIORITY.
049319,000425: 01,3171           13172                           NOOP                                           
049320,000426: 01,3172           16710                           TCF      Q+2                                   
049321,000427: 
049322,000428: 01,3173           54131        EJ2                TS       BUF        +1                         
049323,000429: 01,3174           30002                           CA       Q                                     
049324,000430: 01,3175           54130                           TS       BUF                                   #  FOR LOCATING CCS PRIORITY + X INSTR.
049325,000431: 01,3176           16710                           TCF      Q+2                                   
049326,000432: 
049327,000433:                                                                                                  #  IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTINE IS NOT A JOB IN ITSELF,
049328,000434:                                                                                                  #  BUT RATHER A SUBROUTINE OF THE EXECUTIVE.
049329,000435: 
049330,000436: 01,3177     1361                                  EBANK=   SELFRET                               #  SELF-CHECK STORAGE IN EBANK.
049331,000437: 
049332,000438: 01,3177           45003        DUMMYJOB           CS       ZERO                                  #  SET NEWJOB TO -0 FOR IDLING.
049333,000439: 01,3200           54067                           TS       NEWJOB                                
049334,000440: 01,3201           00003                 +2        RELINT                                         
049335,000441: 01,3202           45000                           CS       TWO                                   #  TURN OFF THE ACTIVITY LIGHT.
049336,000442: 01,3203           00006                           EXTEND                                         
049337,000443: 01,3204           03011                           WAND     DSALMOUT                              
049338,000444: 01,3205           10067        ADVAN              CCS      NEWJOB                                #  IS A NEWJOB ACTIVE ?
049339,000445: 01,3206           13010                           TCF      NUCHANG2                              #  YES... ONE REQUIRING A CHANGE JOB.
049340,000446: 01,3207           35000                 +2        CAF      TWO                                   #  NEW JOB ALREADY IN POSITION FOR
049341,000447: 01,3210           13215                           TCF      NUDIRECT                              #  EXECUTION.
049342,000448: 
049343,000449: 01,3211           31361                           CA       SELFRET                               
049344,000450: 01,3212           54001                           TS       L                                     #  PUT RETURN ADDRESS IN L.
049345,000451: 01,3213           33121                           CAF      SELFBANK                              
049346,000452: 01,3214           15230                           TCF      SUPDXCHZ   +1                         #   AND DISPATCH JOB.
049347,000453: 
049348,000454: 01,3215           00006        NUDIRECT           EXTEND                                         #  TURN THE GREEN LIGHT BACK ON.
049349,000455: 01,3216           05011                           WOR      DSALMOUT                              
049350,000456: 01,3217           52165                           DXCH     LOC                                   #  JOBS STARTED IN THIS FASHION MUST BE
049351,000457: 01,3220           15227                           TCF      SUPDXCHZ                              
049352,000458: 
049353,000459:    4000                                           SETLOC   EXECF2                                
049354,000460:    4000                                           BANK                                           
049355,000461: 
049356,000462:    5227                                           COUNT*   $$/EXEC                               
049357,000463: 
049358,000464:                                                                                                  #  SUPDXCHZ - ROUTINE TO TRANSFER TO SUPERBANK.
049359,000465:                                                                                                  #  CALLING SEQUENCE
049360,000466:                                                                                                  #                TCF     SUPDXCHZ        WITH 2CADR OF DESIRED LOCATION IN A + L.
049361,000467: 
049362,000468:    5227           56001        SUPDXCHZ           XCH      L                                     #  BASIC.
049363,000469:    5230           00006                 +1        EXTEND                                         
049364,000470:    5231           01007                           WRITE    SUPERBNK                              
049365,000471:    5232           54006                           TS       BBANK                                 
049366,000472:    5233           00001                           TC       L                                     
049367,000473: 
049368,000474:    5234           77677        NEG100             OCT      77677                                 

End of include-file EXECUTIVE.agc.  Parent file is MAIN.agc