Source Code

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