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