Source Code

052344,000001: # Copyright: Public domain. 052345,000002: # Filename: EXECUTIVE.agc 052346,000003: # Purpose: Part of the source code for Colossus 2A, AKA Comanche 055. 052347,000004: # It is part of the source code for the Command Module's (CM) 052348,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 052349,000006: # Assembler: yaYUL 052350,000007: # Contact: Ron Burkey <info@sandroid.org>. 052351,000008: # Website: www.ibiblio.org/apollo. 052352,000009: # Pages: 1208-1220 052353,000010: # Mod history: 2009-05-14 RSB Adapted from the Colossus249/ file of the 052354,000011: # same name, using Comanche055 page images. 052355,000012: # 2010-08-29 JL Fixed indentation. 052356,000013: # 2011-05-08 JL Removed workaround. 052357,000014: 052358,000015: # This source code has been transcribed or otherwise adapted from digitized 052359,000016: # images of a hardcopy from the MIT Museum. The digitization was performed 052360,000017: # by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many 052361,000018: # thanks to both. The images (with suitable reduction in storage size and 052362,000019: # consequent reduction in image quality as well) are available online at 052363,000020: # www.ibiblio.org/apollo. If for some reason you find that the images are 052364,000021: # illegible, contact me at info@sandroid.org about getting access to the 052365,000022: # (much) higher-quality images which Paul actually created. 052366,000023: 052367,000024: # Notations on the hardcopy document read, in part: 052368,000025: 052369,000026: # Assemble revision 055 of AGC program Comanche by NASA 052370,000027: # 2021113-051. 10:28 APR. 1, 1969 052371,000028: 052372,000029: # This AGC program shall also be referred to as 052373,000030: # Colossus 2A 052374,000031: 052375,000032: # Page 1208 052376,000033: 5134 BLOCK 02 052377,000034: 052378,000035: # TO ENTER A JOB REQUEST REQUIRING NO VAC AREA: 052379,000036: 052380,000037: 5134 COUNT 02/EXEC 052381,000038: 052382,000039: 5134 00004 NOVAC INHINT 052383,000040: 5135 65226 AD FAKEPRET # LOC(MPAC +6) - LOC(QPRET) 052384,000041: 5136 54063 TS NEWPRIO # PRIORITY OF NEW JOB + NOVAC C(FIXLOC) 052385,000042: 052386,000043: 5137 00006 EXTEND 052387,000044: 5140 50002 INDEX Q # Q WILL BE UNDISTURBED THROUGHOUT. 052388,000045: 5141 30001 DCA 0 # 2CADR OF JOB ENTERED. 052389,000046: 5142 52066 DXCH NEWLOC 052390,000047: 5143 35225 CAF EXECBANK 052391,000048: 5144 56004 XCH FBANK 052392,000049: 5145 54061 TS EXECTEM1 052393,000050: 5146 12650 TCF NOVAC2 # ENTER EXECUTIVE BANK. 052394,000051: 052395,000052: # TO ENTER A JOB REQUEST REQUIREING A VAC AREA -- E.G., ALL (PARTIALLY) INTERPRETIVE JOBS. 052396,000053: 052397,000054: 5147 00004 FINDVAC INHINT 052398,000055: 5150 54063 TS NEWPRIO 052399,000056: 5151 00006 EXTEND 052400,000057: 5152 50002 INDEX Q 052401,000058: 5153 30001 DCA 0 052402,000059: 5154 52066 SPVACIN DXCH NEWLOC 052403,000060: 5155 35225 CAF EXECBANK 052404,000061: 5156 56004 XCH FBANK 052405,000062: 5157 12626 TCF FINDVAC2 # OFF TO EXECUTIVE SWITCHED-BANK. 052406,000063: 052407,000064: # TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L: 052408,000065: # USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO. 052409,000066: 052410,000067: 5160 56002 SPVAC XCH Q 052411,000068: 5161 67715 AD NEG2 052412,000069: 5162 56002 XCH Q 052413,000070: 5163 15154 TCF SPVACIN 052414,000071: 052415,000072: # TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED: 052416,000073: 052417,000074: 5164 22002 CHANG1 LXCH Q 052418,000075: 5165 35225 CAF EXECBANK 052419,000076: 5166 56006 XCH BBANK 052420,000077: 5167 12727 TCF CHANJOB 052421,000078: 052422,000079: # TO SUSPEND AN INTERPRETIVE JOB: 052423,000080: 052424,000081: 5170 40164 CHANG2 CS LOC # NEGATIVE LOC SHOWS JOB = INTERPRETIVE. 052425,000082: # ITRACE (4) REFERS TO "CHANG2" 052426,000083: # Page 1209 052427,000084: 5171 54001 TS L 052428,000085: 5172 35225 +2 CAF EXECBANK 052429,000086: 5173 54006 TS BBANK 052430,000087: 5174 12726 TCF CHANJOB -1 052431,000088: 052432,000089: # Page 1210 052433,000090: # TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.): 052434,000091: 052435,000092: 5175 54164 JOBSLEEP TS LOC 052436,000093: 5176 35225 CAF EXECBANK 052437,000094: 5177 54004 TS FBANK 052438,000095: 5200 13017 TCF JOBSLP1 052439,000096: 052440,000097: # TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION: 052441,000098: 052442,000099: 5201 00004 JOBWAKE INHINT 052443,000100: 5202 54065 TS NEWLOC 052444,000101: 5203 45016 CS TWO # EXIT IS VIA FINDVAC/NOVAC PROCEDURES. 052445,000102: 5204 26002 ADS Q 052446,000103: 5205 35225 CAF EXECBANK 052447,000104: 5206 56004 XCH FBANK 052448,000105: 5207 13044 TCF JOBWAKE2 052449,000106: 052450,000107: # TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION: 052451,000108: 052452,000109: 5210 00004 PRIOCHNG INHINT # NEW PRIORITY ARRIVES IN A. RETURNS TO 052453,000110: 5211 54063 TS NEWPRIO # CALLER AS SOON AS NEW JOB PRIORITY IS 052454,000111: 5212 35225 CAF EXECBANK # HIGHEST. PREPARE FOR POSSIBLE BASIC- 052455,000112: 5213 56006 XCH BBANK # STYLE CHANGE-JOB. 052456,000113: 5214 54165 TS BANKSET 052457,000114: 5215 30002 CA Q 052458,000115: 5216 13113 TCF PRIOCH2 052459,000116: 052460,000117: # TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS: 052461,000118: 052462,000119: 5217 35225 ENDOFJOB CAF EXECBANK 052463,000120: 5220 54004 TS FBANK 052464,000121: 5221 13124 TCF ENDJOB1 052465,000122: 052466,000123: 5222 30061 ENDFIND CA EXECTEM1 # RETURN TO CALLER AFTER JOB ENTRY 052467,000124: 5223 54004 TS FBANK # COMPLETE. 052468,000125: 5224 16710 TCF Q+2 052469,000126: 5225 02626 EXECBANK CADR FINDVAC2 052470,000127: 052471,000128: 5226 00110 FAKEPRET ADRES MPAC -36D # LOC(MPAC +6) - LOC(QPRET) 052472,000129: 052473,000130: # Page 1211 052474,000131: # LOCATE AN AVAILABLE VAC AREA 052475,000132: 052476,000133: 01,2626 BANK 01 052477,000134: 01,2626 COUNT 01/EXEC 052478,000135: 052479,000136: 01,2626 54061 FINDVAC2 TS EXECTEM1 # (SAVE CALLER'S BANK FIRST.) 052480,000137: 01,2627 10400 CCS VAC1USE 052481,000138: 01,2630 12643 TCF VACFOUND 052482,000139: 01,2631 10454 CCS VAC2USE 052483,000140: 01,2632 12643 TCF VACFOUND 052484,000141: 01,2633 10530 CCS VAC3USE 052485,000142: 01,2634 12643 TCF VACFOUND 052486,000143: 01,2635 10604 CCS VAC4USE 052487,000144: 01,2636 12643 TCF VACFOUND 052488,000145: 01,2637 10660 CCS VAC5USE 052489,000146: 01,2640 12643 TCF VACFOUND 052490,000147: 01,2641 07755 TC BAILOUT 052491,000148: 01,2642 01201 OCT 1201 # NO VAC AREAS. 052492,000149: 052493,000150: 01,2643 65016 VACFOUND AD TWO # RESERVE THIS VAC AREA BY STORING A ZERO 052494,000151: 01,2644 22007 ZL # IN ITS VAC USE REGISTER AND STORE THE 052495,000152: 01,2645 50000 INDEX A # ADDRESS OF THE FIRST WORD OF IT IN THE 052496,000153: 01,2646 21777 LXCH 0 -1 # LOW NINE BITS OF THE PRIORITY WORD. 052497,000154: 01,2647 26063 ADS NEWPRIO 052498,000155: 052499,000156: 01,2650 35021 NOVAC2 CAF ZERO # NOVAC ENTERS HERE. FIND A CORE SET. 052500,000157: 01,2651 54064 TS LOCCTR 052501,000158: 01,2652 32657 CAF NO.CORES # SEVEN SETS OF ELEVEN REGISTERS EACH. 052502,000159: 01,2653 54062 NOVAC3 TS EXECTEM2 052503,000160: 01,2654 50064 INDEX LOCCTR 052504,000161: 01,2655 10167 CCS PRIORITY # EACH PRIORITY REGISTER CONTAINS -0 IF 052505,000162: 01,2656 12717 TCF NEXTCORE # THE CORESPONDING CORE SET IS AVAILABLE. 052506,000163: 01,2657 00006 NO.CORES DEC 6 B-14 052507,000164: 01,2660 12717 TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY 052508,000165: # BUT A DORMANT JOB'S PRIORITY IS NEGATIVE 052509,000166: 052510,000167: # Page 1212 052511,000168: 01,2661 30063 CORFOUND CA NEWPRIO # SET THE PRIORITY OF THIS JOB IN THE CORE 052512,000169: 01,2662 50064 INDEX LOCCTR # SET'S PRIORITY REGISTER AND SET THE 052513,000170: 01,2663 54167 TS PRIORITY # JOB'S PUSH-DOWN POINTER AT THE BEGINNING 052514,000171: 01,2664 75046 MASK LOW9 # OF THE WORK AREA AND OVERFLOW INDICATOR. 052515,000172: 01,2665 50064 INDEX LOCCTR 052516,000173: 01,2666 54166 TS PUSHLOC # OFF TO PREPARE FOR INTERPRETIVE PROGRAMS. 052517,000174: 052518,000175: 01,2667 10064 CCS LOCCTR # IF CORE SET ZERO IS BEING LOADED, SET UP 052519,000176: 01,2670 12704 TCF SETLOC # OVFIND AND FIXLOC IMMEDIATELY. 052520,000177: 01,2671 54121 TS OVFIND 052521,000178: 01,2672 30166 CA PUSHLOC 052522,000179: 01,2673 54120 TS FIXLOC 052523,000180: 052524,000181: 01,2674 10067 SPECTEST CCS NEWJOB # SEE IF ANY ACTIVE JOBS WAITING (RARE). 052525,000182: 01,2675 12704 TCF SETLOC # MUST BE AWAKENED OUT UNCHANGED JOB. 052526,000183: 01,2676 05747 TC CCSHOLE 052527,000184: 01,2677 05747 TC CCSHOLE 052528,000185: 01,2700 54067 TS NEWJOB # +0 SHOWS ACTIVE JOB ALREADY SET. 052529,000186: 01,2701 52066 DXCH NEWLOC 052530,000187: 01,2702 52165 DXCH LOC 052531,000188: 01,2703 15222 TCF ENDFIND 052532,000189: 052533,000190: 01,2704 52066 SETLOC DXCH NEWLOC # SET UP THE LOCATION REGISTERS FOR THIS 052534,000191: 01,2705 50064 INDEX LOCCTR 052535,000192: 01,2706 52165 DXCH LOC 052536,000193: 01,2707 50067 INDEX NEWJOB # THIS INDEX INSTRUCTION INSURES THAT THE 052537,000194: 01,2710 40167 CS PRIORITY # HIGHEST ACTIVE PRIORITY WILL BE COMPARED 052538,000195: 01,2711 60063 AD NEWPRIO # WITH THE NEW PRIORITY TO SEE IF NEWJOB 052539,000196: 01,2712 00006 EXTEND # SHOULD BE SET TO SIGNAL A SWITCH. 052540,000197: 01,2713 65222 BZMF ENDFIND 052541,000198: 01,2714 30064 CA LOCCTR # LOCCTR IS LEFT SET AT THIS CORE SET IF 052542,000199: 01,2715 54067 TS NEWJOB # THE CALLER WANTS TO LOAD ANY MPAC 052543,000200: 01,2716 15222 TCF ENDFIND # REGISTERS, ETC. 052544,000201: 052545,000202: 01,2717 33054 NEXTCORE CAF COREINC 052546,000203: 01,2720 26064 ADS LOCCTR 052547,000204: 01,2721 10062 CCS EXECTEM2 052548,000205: 01,2722 12653 TCF NOVAC3 052549,000206: 01,2723 07755 TC BAILOUT # NO CORE SETS. 052550,000207: 01,2724 01202 OCT 1202 052551,000208: # Page 1213 052552,000209: # THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB. 052553,000210: 052554,000211: 01,2725 22164 -2 LXCH LOC 052555,000212: 01,2726 30165 -1 CAE BANKSET # BANKSET, NOT BBANK, HAS RIGHT CONTENTS. 052556,000213: 01,2727 00004 CHANJOB INHINT 052557,000214: 01,2730 00006 EXTEND 052558,000215: 01,2731 04007 ROR SUPERBNK # PICK UP CURRENT SBANK FOR BBCON 052559,000216: 01,2732 56001 XCH L # LOC IN A AND BBCON IN L. 052560,000217: 01,2733 50067 +4 INDEX NEWJOB # SWAP LOC AND BANKSET. 052561,000218: 01,2734 52165 DXCH LOC 052562,000219: 01,2735 52165 DXCH LOC 052563,000220: 052564,000221: 01,2736 30165 CAE BANKSET 052565,000222: 01,2737 00006 EXTEND 052566,000223: 01,2740 01007 WRITE SUPERBNK # SET SBANK FOR NEW JOB. 052567,000224: 01,2741 52155 DXCH MPAC # SWAP MULTI-PURPOSE ACCUMULATOR AREAS. 052568,000225: 01,2742 50067 INDEX NEWJOB 052569,000226: 01,2743 52155 DXCH MPAC 052570,000227: 01,2744 52155 DXCH MPAC 052571,000228: 01,2745 52157 DXCH MPAC +2 052572,000229: 01,2746 50067 INDEX NEWJOB 052573,000230: 01,2747 52157 DXCH MPAC +2 052574,000231: 01,2750 52157 DXCH MPAC +2 052575,000232: 01,2751 52161 DXCH MPAC +4 052576,000233: 01,2752 50067 INDEX NEWJOB 052577,000234: 01,2753 52161 DXCH MPAC +4 052578,000235: 01,2754 52161 DXCH MPAC +4 052579,000236: 01,2755 52163 DXCH MPAC +6 052580,000237: 01,2756 50067 INDEX NEWJOB 052581,000238: 01,2757 52163 DXCH MPAC +6 052582,000239: 01,2760 52163 DXCH MPAC +6 052583,000240: 052584,000241: 01,2761 35021 CAF ZERO 052585,000242: 01,2762 56121 XCH OVFIND # MAKE PUSHLOC NEGATIVE IF OVFIND NZ. 052586,000243: 01,2763 00006 EXTEND 052587,000244: 01,2764 12767 BZF +3 052588,000245: 01,2765 40166 CS PUSHLOC 052589,000246: 01,2766 54166 TS PUSHLOC 052590,000247: 052591,000248: 01,2767 52167 DXCH PUSHLOC 052592,000249: 01,2770 50067 INDEX NEWJOB 052593,000250: 01,2771 52167 DXCH PUSHLOC 052594,000251: 01,2772 52167 DXCH PUSHLOC # SWAPS PUSHLOC AND PRIORITY. 052595,000252: 01,2773 35046 CAF LOW9 # SET FIXLOC TO BASE OF VAC AREA. 052596,000253: 01,2774 70167 MASK PRIORITY 052597,000254: 01,2775 54120 TS FIXLOC 052598,000255: 052599,000256: 01,2776 10166 CCS PUSHLOC # SET OVERFLOW INDICATOR ACCORDING TO 052600,000257: 01,2777 35021 CAF ZERO 052601,000258: 01,3000 13005 TCF ENDPRCHG -1 052602,000259: 052603,000260: # Page 1214 052604,000261: 01,3001 40166 CS PUSHLOC 052605,000262: 01,3002 54166 TS PUSHLOC 052606,000263: 01,3003 35017 CAF ONE 052607,000264: 01,3004 56121 XCH OVFIND 052608,000265: 01,3005 54067 TS NEWJOB 052609,000266: 052610,000267: 01,3006 00003 ENDPRCHG RELINT 052611,000268: 01,3007 52165 DXCH LOC # BASIC JOBS HAVE POSITIVE ADDRESSES, SO 052612,000269: 01,3010 00006 EXTEND # DISPATCH WITH A DTCB. 052613,000270: 01,3011 63013 BZMF +2 # IF INTERPRETIVE, SET UP EBANK, ETC. 052614,000271: 01,3012 52006 DTCB 052615,000272: # Page 1215 052616,000273: 01,3013 40000 COM # EPILOGUE TO JOB CHANGE FOR INTERPRETIVE 052617,000274: 01,3014 65017 AD ONE 052618,000275: 01,3015 54164 TS LOC # RESUME 052619,000276: 01,3016 16017 TCF INTRSM 052620,000277: 052621,000278: # COMPLETE JOBSLEEP PREPARATIONS. 052622,000279: 052623,000280: 01,3017 00004 JOBSLP1 INHINT 052624,000281: 01,3020 40167 CS PRIORITY # NNZ PRIORITY SHOWS JOB ASLEEP. 052625,000282: 01,3021 54167 TS PRIORITY 052626,000283: 01,3022 36043 CAF LOW7 052627,000284: 01,3023 70006 MASK BBANK 052628,000285: 01,3024 00006 EXTEND 052629,000286: 01,3025 04007 ROR SUPERBNK # SAVE OLD SUPERBANK VALUE. 052630,000287: 01,3026 54165 TS BANKSET 052631,000288: 01,3027 45021 CS ZERO 052632,000289: 01,3030 54131 JOBSLP2 TS BUF +1 # HOLDS -- HIGHEST PRIORITY. 052633,000290: 01,3031 13141 TCF EJSCAN # SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB. 052634,000291: 052635,000292: 01,3032 00004 NUCHANG2 INHINT # QUICK... DON'T LET NEWJOB CHANGE TO +0. 052636,000293: 01,3033 10067 CCS NEWJOB 052637,000294: 01,3034 13037 TCF +3 # NEWJOB STILL PNZ 052638,000295: 01,3035 00003 RELINT # NEW JOB HAS CHANGED TO +0. WAKE UP JOB 052639,000296: 01,3036 13233 TCF ADVAN +2 # VIA NUDIRECT. (VERY RARE CASE.) 052640,000297: 052641,000298: 01,3037 35016 CAF TWO 052642,000299: 01,3040 00006 EXTEND 052643,000300: 01,3041 05011 WOR DSALMOUT # TURN ON ACTIVITY LIGHT 052644,000301: 01,3042 52165 DXCH LOC # AND SAVE ADDRESS INFO FOR BENEFIT OF 052645,000302: 01,3043 12733 TCF CHANJOB +4 # POSSIBLE SLEEPING JOB. 052646,000303: 052647,000304: # Page 1216 052648,000305: # TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE 052649,000306: # LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND, 052650,000307: # LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE. 052651,000308: 052652,000309: 01,3044 54061 JOBWAKE2 TS EXECTEM1 052653,000310: 01,3045 35021 CAF ZERO # BEGIN CORE SET SCAN 052654,000311: 01,3046 54064 TS LOCCTR 052655,000312: 01,3047 32657 CAF NO.CORES 052656,000313: 01,3050 54062 JOBWAKE4 TS EXECTEM2 052657,000314: 01,3051 50064 INDEX LOCCTR 052658,000315: 01,3052 10167 CCS PRIORITY 052659,000316: 01,3053 13056 TCF JOBWAKE3 # ACTIVE JOB -- CHECK NEXT CORE SET. 052660,000317: 01,3054 00014 COREINC DEC 12 B-14 # 12 REGISTERS PER CORE SET. 052661,000318: 01,3055 13065 TCF WAKETEST # SLEEPING JOB -- SEE IF CADR MATCHES. 052662,000319: 052663,000320: 01,3056 33054 JOBWAKE3 CAF COREINC 052664,000321: 01,3057 26064 ADS LOCCTR 052665,000322: 01,3060 10062 CCS EXECTEM2 052666,000323: 01,3061 13050 TCF JOBWAKE4 052667,000324: 01,3062 45017 CS ONE # EXIT IF SLEEPIG JOB NOT FOUND. 052668,000325: 01,3063 54064 TS LOCCTR 052669,000326: 01,3064 15222 TCF ENDFIND 052670,000327: 052671,000328: 01,3065 40065 WAKETEST CS NEWLOC 052672,000329: 01,3066 50064 INDEX LOCCTR 052673,000330: 01,3067 60164 AD LOC 052674,000331: 01,3070 00006 EXTEND 052675,000332: 01,3071 13073 BZF +2 # IF MATCH. 052676,000333: 01,3072 13056 TCF JOBWAKE3 # EXAMINE NEXT CORE SET IF NO MATCH. 052677,000334: 052678,000335: 01,3073 50064 INDEX LOCCTR # RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE 052679,000336: 01,3074 40167 CS PRIORITY 052680,000337: 01,3075 54063 TS NEWPRIO 052681,000338: 01,3076 50064 INDEX LOCCTR 052682,000339: 01,3077 54167 TS PRIORITY 052683,000340: 052684,000341: 01,3100 44364 CS FBANKMSK # MASK UP THE 2CADR OF THE WAKE ADDRESS 052685,000342: 01,3101 70065 MASK NEWLOC # USING THE CADR IN NEWLOC AND THE EBANK 052686,000343: 01,3102 65005 AD 2K # HALF OF BBANK SAVED IN BANKSET. 052687,000344: 01,3103 56065 XCH NEWLOC 052688,000345: 01,3104 74364 MASK FBANKMSK 052689,000346: 01,3105 50064 INDEX LOCCTR 052690,000347: 01,3106 60165 AD BANKSET 052691,000348: 01,3107 54066 TS NEWLOC +1 052692,000349: 052693,000350: 01,3110 10064 CCS LOCCTR # SPECIAL TREATMENT IF THIS JOB WAS 052694,000351: 01,3111 12704 TCF SETLOC # ALREADY IN THE RUN (0) POSITION. 052695,000352: 01,3112 12674 TCF SPECTEST 052696,000353: 052697,000354: # Page 1217 052698,000355: # PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY. 052699,000356: 052700,000357: 01,3113 54164 PRIOCH2 TS LOC 052701,000358: 01,3114 35021 CAF ZERO # SET FLAG TO TELL ENDJOB SCANNER IF THIS 052702,000359: 01,3115 54130 TS BUF # JOB IS STILL HIGHEST PRIORITY. 052703,000360: 01,3116 35046 CAF LOW9 052704,000361: 01,3117 70167 MASK PRIORITY 052705,000362: 01,3120 60063 AD NEWPRIO 052706,000363: 01,3121 54167 TS PRIORITY 052707,000364: 01,3122 40000 COM 052708,000365: 01,3123 13030 TCF JOBSLP2 # AND TO EJSCAN. 052709,000366: 052710,000367: # Page 1218 052711,000368: # RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY. 052712,000369: 052713,000370: 01,3124 00004 ENDJOB1 INHINT 052714,000371: 01,3125 45021 CS ZERO 052715,000372: 01,3126 54131 TS BUF +1 052716,000373: 01,3127 56167 XCH PRIORITY 052717,000374: 01,3130 75046 MASK LOW9 052718,000375: 01,3131 54001 TS L 052719,000376: 052720,000377: 01,3132 45226 CS FAKEPRET 052721,000378: 01,3133 60001 AD L 052722,000379: 052723,000380: 01,3134 00006 EXTEND 052724,000381: 01,3135 63141 BZMF EJSCAN # NOVAC ENDOFJOB 052725,000382: 052726,000383: 01,3136 10001 CCS L 052727,000384: 01,3137 50000 INDEX A 052728,000385: 01,3140 54000 TS 0 052729,000386: 052730,000387: 01,3141 10203 EJSCAN CCS PRIORITY +12D 052731,000388: 01,3142 03206 TC EJ1 052732,000389: 01,3143 05747 TC CCSHOLE 052733,000390: 01,3144 13145 TCF +1 052734,000391: 052735,000392: 01,3145 10217 CCS PRIORITY +24D # EXAMINE EACH PRIORITY REGISTER TO FIND 052736,000393: 01,3146 03206 TC EJ1 # THE JOB OF HIGHEST ACTIVE PRIORITY. 052737,000394: 01,3147 05747 TC CCSHOLE 052738,000395: 01,3150 13151 TCF +1 052739,000396: 052740,000397: 01,3151 10233 CCS PRIORITY +36D 052741,000398: 01,3152 03206 TC EJ1 052742,000399: 01,3153 67610 -CCSPR -CCS PRIORITY 052743,000400: 01,3154 13155 TCF +1 052744,000401: 052745,000402: 01,3155 10247 CCS PRIORITY +48D 052746,000403: 01,3156 03206 TC EJ1 052747,000404: 01,3157 05747 TC CCSHOLE 052748,000405: 01,3160 13161 TCF +1 052749,000406: 052750,000407: 01,3161 10263 CCS PRIORITY +60D 052751,000408: 01,3162 03206 TC EJ1 052752,000409: 01,3163 05747 TC CCSHOLE 052753,000410: 01,3164 13165 TCF +1 052754,000411: 052755,000412: 01,3165 10277 CCS PRIORITY +72D 052756,000413: 01,3166 03206 TC EJ1 052757,000414: 01,3167 05747 TC CCSHOLE 052758,000415: 01,3170 13171 TCF +1 052759,000416: 052760,000417: # Page 1219 052761,000418: # EVALUATE THE RESULTS OF THE SCAN. 052762,000419: 052763,000420: 01,3171 10131 CCS BUF +1 # SEE IF THERE ARE ANY ACTIVE JOBS WAITING 052764,000421: 01,3172 05747 TC CCSHOLE 052765,000422: 01,3173 05747 TC CCSHOLE 052766,000423: 052767,000424: 01,3174 13176 TCF +2 052768,000425: 01,3175 13223 TCF DUMMYJOB 052769,000426: 01,3176 10130 CCS BUF # BUF IS ZERO IS THIS IS A PRIOCHNG AND 052770,000427: 01,3177 13201 TCF +2 # CHANGED PRIORITY IS STILL HIGHEST. 052771,000428: 01,3200 13005 TCF ENDPRCHG -1 052772,000429: 052773,000430: 01,3201 50000 INDEX A # OTHERWISE, SET NEWJOB TO THE RELATIVE 052774,000431: 01,3202 27777 CAF 0 -1 # ADDRESS OF THE NEW JOB'S CORE SET. 052775,000432: 01,3203 63153 AD -CCSPR 052776,000433: 01,3204 54067 TS NEWJOB 052777,000434: 01,3205 12725 TCF CHANJOB -2 052778,000435: 052779,000436: 01,3206 54132 EJ1 TS BUF +2 052780,000437: 01,3207 60131 AD BUF +1 # - OLD HIGH PRIORITY. 052781,000438: 01,3210 10000 CCS A 052782,000439: 01,3211 40132 CS BUF +2 052783,000440: 01,3212 13216 TCF EJ2 # NEW HIGH PRIORITY. 052784,000441: 01,3213 13214 NOOP 052785,000442: 01,3214 50002 INDEX Q 052786,000443: 01,3215 00002 TC 2 # PROCEED WITH SEARCH. 052787,000444: 052788,000445: 01,3216 54131 EJ2 TS BUF +1 052789,000446: 01,3217 00006 EXTEND 052790,000447: 01,3220 22130 QXCH BUF # FOR LOCATING CCS PRIORITY + X INSTR. 052791,000448: 01,3221 50130 INDEX BUF 052792,000449: 01,3222 00002 TC 2 052793,000450: 052794,000451: # Page 1220 052795,000452: # IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTIEN IS NOT A JOB IN ITSELF, 052796,000453: # BUT RATHER A SUBROUTINE OF THE EXECUTIVE. 052797,000454: 052798,000455: 01,3223 1361 EBANK= SELFRET # SELF-CHECK STORAGE IN EBANK. 052799,000456: 052800,000457: 01,3223 45021 DUMMYJOB CS ZERO # SET NEWJOB TO -0 FOR IDLING. 052801,000458: 01,3224 54067 TS NEWJOB 052802,000459: 01,3225 00003 RELINT 052803,000460: 01,3226 45016 CS TWO # TURN OFF THE ACTIVITY LIGHT. 052804,000461: 01,3227 00006 EXTEND 052805,000462: 01,3230 03011 WAND DSALMOUT 052806,000463: 01,3231 10067 ADVAN CCS NEWJOB # IS THE NEWJOB ACTIVE? 052807,000464: 01,3232 13032 TCF NUCHANG2 # YES... ONE REQUIRING A CHANGE JOB. 052808,000465: 01,3233 35016 CAF TWO # NEW JOB ALREADY IN POSITION FOR 052809,000466: 01,3234 13242 TCF NUDIRECT # EXECUTION 052810,000467: 052811,000468: 01,3235 31361 CA SELFRET 052812,000469: 01,3236 54001 TS L # PUT RETURN ADDRESS IN L. 052813,000470: 01,3237 33241 CAF SELFBANK 052814,000471: 01,3240 15230 TCF SUPDXCHZ +1 # AND DISPATCH JOB. 052815,000472: 052816,000473: 01,3241 1361 EBANK= SELFRET 052817,000474: 01,3241 66102 SELFBANK BBCON SELFCHK 052818,000475: 052819,000476: 01,3242 00006 NUDIRECT EXTEND # TURN THE GREEN LIGHT BACK ON. 052820,000477: 01,3243 05011 WOR DSALMOUT 052821,000478: 01,3244 52165 DXCH LOC # JOBS STARTED IN THIS FASHION MUST BE 052822,000479: 01,3245 15227 TCF SUPDXCHZ 052823,000480: 052824,000481: 5227 BLOCK 2 # IN FIXED-FIXED SO OTHERS MAY USE. 052825,000482: 052826,000483: 5227 COUNT 02/EXEC 052827,000484: 052828,000485: # SUPDXCHZ -- ROUTINE TO TRANSFER TO SUPERBANK. 052829,000486: # CALLING SEQUENCE: 052830,000487: # TCF SUPDXCHZ # WITH 2CADR OF DESIRED LOCATION IN A + l. 052831,000488: 052832,000489: 5227 56001 SUPDXCHZ XCH L # BASIC. 052833,000490: 5230 00006 +1 EXTEND 052834,000491: 5231 01007 WRITE SUPERBNK 052835,000492: 5232 54006 TS BBANK 052836,000493: 5233 00001 TC L 052837,000494: 052838,000495: 5234 77677 NEG100 OCT 77677 052839,000496: 052840,000497: 052841,000498: End of include-file EXECUTIVE.agc. Parent file is MAIN.agc