Source Code

045577,000001: # Copyright: Public domain. 045578,000002: # Filename: EXECUTIVE.agc 045579,000003: # Purpose: A section of Luminary 1C, revision 131. 045580,000004: # It is part of the source code for the Lunar Module's (LM) 045581,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 045582,000006: # This file is intended to be a faithful transcription, except 045583,000007: # that the code format has been changed to conform to the 045584,000008: # requirements of the yaYUL assembler rather than the 045585,000009: # original YUL assembler. 045586,000010: # Reference: pp. 1102-1115 of 1729.pdf. 045587,000011: # Contact: Ron Burkey <info@sandroid.org>. 045588,000012: # Website: www.ibiblio.org/apollo/index.html 045589,000013: # Mod history: 05/31/03 RSB. Began transcribing. 045590,000014: # 05/14/05 RSB Corrected website reference above. 045591,000015: # 2010-10-25 JL Indentation fixes. 045592,000016: # 2011-05-07 JL Removed workaround. 045593,000017: 045594,000018: # Page 1102 045595,000019: 5072 BLOCK 02 045596,000020: 045597,000021: # TO ENTER A JOB REQUEST REQUIRING NO VAC AREA: 045598,000022: 045599,000023: 5072 COUNT* $$/EXEC 045600,000024: 5072 00004 NOVAC INHINT 045601,000025: 5073 65164 AD FAKEPRET # LOC(MPAC +6) - LOC(QPRET) 045602,000026: 5074 54063 TS NEWPRIO # PRIORITY OF NEW JOB + NOVAC C(FIXLOC) 045603,000027: 045604,000028: 5075 00006 EXTEND 045605,000029: 5076 50002 INDEX Q # Q WILL BE UNDISTURBED THROUGHOUT. 045606,000030: 5077 30001 DCA 0 # 2CADR OF JOB ENTERED. 045607,000031: 5100 52066 DXCH NEWLOC 045608,000032: 5101 35163 CAF EXECBANK 045609,000033: 5102 56004 XCH FBANK 045610,000034: 5103 54061 TS EXECTEM1 045611,000035: 5104 12626 TCF NOVAC2 # ENTER EXECUTIVE BANK. 045612,000036: 045613,000037: # TO ENTER A JOB REQUEST REQUIREING A VAC AREA -- E.G., ALL (PARTIALLY) INTERPRETIVE JOBS. 045614,000038: 045615,000039: 5105 00004 FINDVAC INHINT 045616,000040: 5106 54063 TS NEWPRIO 045617,000041: 5107 00006 EXTEND 045618,000042: 5110 50002 INDEX Q 045619,000043: 5111 30001 DCA 0 045620,000044: 5112 52066 SPVACIN DXCH NEWLOC 045621,000045: 5113 35163 CAF EXECBANK 045622,000046: 5114 56004 XCH FBANK 045623,000047: 5115 12602 TCF FINDVAC2 # OFF TO EXECUTIVE SWITCHED-BANK. 045624,000048: 045625,000049: # TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L: 045626,000050: # USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO. 045627,000051: 045628,000052: 5116 56002 SPVAC XCH Q 045629,000053: 5117 67751 AD NEG2 045630,000054: 5120 56002 XCH Q 045631,000055: 5121 15112 TCF SPVACIN 045632,000056: 045633,000057: # TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED: 045634,000058: 045635,000059: 5122 22002 CHANG1 LXCH Q 045636,000060: 5123 35163 CAF EXECBANK 045637,000061: 5124 56006 XCH BBANK 045638,000062: 5125 12707 TCF CHANJOB 045639,000063: 045640,000064: # TO SUSPEND AN INTERPRETIVE JOB: 045641,000065: 045642,000066: 5126 40164 CHANG2 CS LOC # NEGATIVE LOC SHOWS JOB = INTERPRETIVE. 045643,000067: # ITRACE (4) REFERS TO "CHANG2" 045644,000068: 5127 54001 TS L 045645,000069: # Page 1103 045646,000070: 5130 35163 +2 CAF EXECBANK 045647,000071: 5131 54006 TS BBANK 045648,000072: 5132 12706 TCF CHANJOB -1 045649,000073: 045650,000074: # Page 1104 045651,000075: # TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.): 045652,000076: 045653,000077: 5133 54164 JOBSLEEP TS LOC 045654,000078: 5134 35163 CAF EXECBANK 045655,000079: 5135 54004 TS FBANK 045656,000080: 5136 12777 TCF JOBSLP1 045657,000081: 045658,000082: # TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION: 045659,000083: 045660,000084: 5137 00004 JOBWAKE INHINT 045661,000085: 5140 54065 TS NEWLOC 045662,000086: 5141 44752 CS TWO # EXIT IS VIA FINDVAC/NOVAC PROCEDURES. 045663,000087: 5142 26002 ADS Q 045664,000088: 5143 35163 CAF EXECBANK 045665,000089: 5144 56004 XCH FBANK 045666,000090: 5145 13024 TCF JOBWAKE2 045667,000091: 045668,000092: # TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION: 045669,000093: 045670,000094: 5146 00004 PRIOCHNG INHINT # NEW PRIORITY ARRIVES IN A. RETURNS TO 045671,000095: 5147 54063 TS NEWPRIO # CALLER AS SOON AS NEW JOB PRIORITY IS 045672,000096: 5150 35163 CAF EXECBANK # HIGHEST. PREPARE FOR POSSIBLE BASIC- 045673,000097: 5151 56006 XCH BBANK # STYLE CHANGE-JOB. 045674,000098: 5152 54165 TS BANKSET 045675,000099: 5153 30002 CA Q 045676,000100: 5154 13073 TCF PRIOCH2 045677,000101: 045678,000102: # TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS: 045679,000103: 045680,000104: 5155 35163 ENDOFJOB CAF EXECBANK 045681,000105: 5156 54004 TS FBANK 045682,000106: 5157 13104 TCF ENDJOB1 045683,000107: 045684,000108: 5160 30061 ENDFIND CA EXECTEM1 # RETURN TO CALLER AFTER JOB ENTRY 045685,000109: 5161 54004 TS FBANK # COMPLETE. 045686,000110: 5162 16744 TCF Q+2 045687,000111: 5163 02602 EXECBANK CADR FINDVAC2 045688,000112: 045689,000113: 5164 00110 FAKEPRET ADRES MPAC -36D # LOC(MPAC +6) - LOC(QPRET) 045690,000114: 045691,000115: # Page 1105 045692,000116: # LOCATE AN AVAILABLE VAC AREA 045693,000117: 045694,000118: 01,2602 BANK 01 045695,000119: 01,2602 COUNT* $$/EXEC 045696,000120: 01,2602 54061 FINDVAC2 TS EXECTEM1 # (SAVE CALLER'S BANK FIRST.) 045697,000121: 01,2603 10400 CCS VAC1USE 045698,000122: 01,2604 12621 TCF VACFOUND 045699,000123: 01,2605 10454 CCS VAC2USE 045700,000124: 01,2606 12621 TCF VACFOUND 045701,000125: 01,2607 10530 CCS VAC3USE 045702,000126: 01,2610 12621 TCF VACFOUND 045703,000127: 01,2611 10604 CCS VAC4USE 045704,000128: 01,2612 12621 TCF VACFOUND 045705,000129: 01,2613 10660 CCS VAC5USE 045706,000130: 01,2614 12621 TCF VACFOUND 045707,000131: 01,2615 22061 LXCH EXECTEM1 045708,000132: 01,2616 30002 CA Q 045709,000133: 01,2617 05706 TC BAILOUT1 045710,000134: 01,2620 31201 OCT 31201 # NO VAC AREAS. 045711,000135: 045712,000136: 01,2621 64752 VACFOUND AD TWO # RESERVE THIS VAC AREA BY STORING A ZERO 045713,000137: 01,2622 22007 ZL # IN ITS VAC USE REGISTER AND STORE THE 045714,000138: 01,2623 50000 INDEX A # ADDRESS OF THE FIRST WORD OF IT IN THE 045715,000139: 01,2624 21777 LXCH 0 -1 # LOW NINE BITS OF THE PRIORITY WORD. 045716,000140: 01,2625 26063 ADS NEWPRIO 045717,000141: 045718,000142: 01,2626 34755 NOVAC2 CAF ZERO # NOVAC ENTERS HERE. FIND A CORE SET. 045719,000143: 01,2627 54064 TS LOCCTR 045720,000144: 01,2630 32635 CAF NO.CORES # SEVEN SETS OF ELEVEN REGISTERS ECH. 045721,000145: 01,2631 54062 NOVAC3 TS EXECTEM2 045722,000146: 01,2632 50064 INDEX LOCCTR 045723,000147: 01,2633 10167 CCS PRIORITY # EACH PRIORITY REGISTER CONTAINS -0 IF 045724,000148: 01,2634 12675 TCF NEXTCORE # THE CORESPONDING CORE SET IS AVAILABLE. 045725,000149: 01,2635 00007 NO.CORES DEC 7 B-14 045726,000150: 01,2636 12675 TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY 045727,000151: # BUT A DORMANT JOB'S PRIORITY IS NEGATIVE 045728,000152: 045729,000153: # Page 1106 045730,000154: 01,2637 30063 CORFOUND CA NEWPRIO # SET THE PRIORITY OF THIS JOB IN THE CORE 045731,000155: 01,2640 50064 INDEX LOCCTR # SET'S PRIORITY REGISTER AND SET THE 045732,000156: 01,2641 54167 TS PRIORITY # JOB'S PUSH-DOWN POINTER AT THE BEGINNING 045733,000157: 01,2642 75004 MASK LOW9 # OF THE WORK AREA AND OVERFLOW INDICATOR. 045734,000158: 01,2643 50064 INDEX LOCCTR 045735,000159: 01,2644 54166 TS PUSHLOC # OFF TO PREPARE FOR INTERPRETIVE PROGRAMS. 045736,000160: 045737,000161: 01,2645 10064 CCS LOCCTR # IF CORE SET ZERO IS BEING LOADED, SET UP 045738,000162: 01,2646 12662 TCF SETLOC # OVFIND AND FIXLOC IMMEDIATELY. 045739,000163: 01,2647 54121 TS OVFIND 045740,000164: 01,2650 30166 CA PUSHLOC 045741,000165: 01,2651 54120 TS FIXLOC 045742,000166: 045743,000167: 01,2652 10067 SPECTEST CCS NEWJOB # SEE IF ANY ACTIVE JOBS WAITING (RARE). 045744,000168: 01,2653 12662 TCF SETLOC # MUST BE AWAKENED OUT UNCHANGED JOB. 045745,000169: 01,2654 05675 TC CCSHOLE 045746,000170: 01,2655 05675 TC CCSHOLE 045747,000171: 01,2656 54067 TS NEWJOB # +0 SHOWS ACTIVE JOB ALREADY SET. 045748,000172: 01,2657 52066 DXCH NEWLOC 045749,000173: 01,2660 52165 DXCH LOC 045750,000174: 01,2661 15160 TCF ENDFIND 045751,000175: 045752,000176: 01,2662 52066 SETLOC DXCH NEWLOC # SET UP THE LOCATION REGISTERS FOR THIS 045753,000177: 01,2663 50064 INDEX LOCCTR 045754,000178: 01,2664 52165 DXCH LOC 045755,000179: 01,2665 50067 INDEX NEWJOB # THIS INDEX INSTRUCTION INSURES THAT THE 045756,000180: 01,2666 40167 CS PRIORITY # HIGHEST ACTIVE PRIORITY WILL BE COMPARED 045757,000181: 01,2667 60063 AD NEWPRIO # WITH THE NEW PRIORITY TO SEE IF NEWJOB 045758,000182: 01,2670 00006 EXTEND # SHOULD BE SET TO SIGNAL A SWITCH. 045759,000183: 01,2671 65160 BZMF ENDFIND 045760,000184: 01,2672 30064 CA LOCCTR # LOCCTR IS LEFT SET AT THIS CORE SET IF 045761,000185: 01,2673 54067 TS NEWJOB # THE CALLER WANTS TO LOAD ANY MPAC 045762,000186: 01,2674 15160 TCF ENDFIND # REGISTERS, ETC. 045763,000187: 045764,000188: 01,2675 33034 NEXTCORE CAF COREINC 045765,000189: 01,2676 26064 ADS LOCCTR 045766,000190: 01,2677 10062 CCS EXECTEM2 045767,000191: 01,2700 12631 TCF NOVAC3 045768,000192: 01,2701 22061 LXCH EXECTEM1 045769,000193: 01,2702 30002 CA Q 045770,000194: 01,2703 05706 TC BAILOUT1 # NO CORE SETS AVAILABLE. 045771,000195: 01,2704 31202 OCT 31202 045772,000196: # Page 1107 045773,000197: # THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB. 045774,000198: 045775,000199: 01,2705 22164 -2 LXCH LOC 045776,000200: 01,2706 30165 -1 CAE BANKSET # BANKSET, NOT BBANK, HAS RIGHT CONTENTS. 045777,000201: 01,2707 00004 CHANJOB INHINT 045778,000202: 01,2710 00006 EXTEND 045779,000203: 01,2711 04007 ROR SUPERBNK # PICK UP CURRENT SBANK FOR BBCON 045780,000204: 01,2712 56001 XCH L # LOC IN A AND BBCON IN L. 045781,000205: 01,2713 50067 +4 INDEX NEWJOB 045782,000206: 01,2714 52165 DXCH LOC 045783,000207: 01,2715 52165 DXCH LOC 045784,000208: 045785,000209: 01,2716 30165 CAE BANKSET 045786,000210: 01,2717 00006 EXTEND 045787,000211: 01,2720 01007 WRITE SUPERBNK # SET SBANK FOR NEW JOB. 045788,000212: 01,2721 52155 DXCH MPAC # SWAP MULTI-PURPOSE ACCUMULATOR AREAS. 045789,000213: 01,2722 50067 INDEX NEWJOB 045790,000214: 01,2723 52155 DXCH MPAC 045791,000215: 01,2724 52155 DXCH MPAC 045792,000216: 01,2725 52157 DXCH MPAC +2 045793,000217: 01,2726 50067 INDEX NEWJOB 045794,000218: 01,2727 52157 DXCH MPAC +2 045795,000219: 01,2730 52157 DXCH MPAC +2 045796,000220: 01,2731 52161 DXCH MPAC +4 045797,000221: 01,2732 50067 INDEX NEWJOB 045798,000222: 01,2733 52161 DXCH MPAC +4 045799,000223: 01,2734 52161 DXCH MPAC +4 045800,000224: 01,2735 52163 DXCH MPAC +6 045801,000225: 01,2736 50067 INDEX NEWJOB 045802,000226: 01,2737 52163 DXCH MPAC +6 045803,000227: 01,2740 52163 DXCH MPAC +6 045804,000228: 045805,000229: 01,2741 34755 CAF ZERO 045806,000230: 01,2742 56121 XCH OVFIND # MAKE PUSHLOC NEGATIVE IF OVFIND NZ. 045807,000231: 01,2743 00006 EXTEND 045808,000232: 01,2744 12747 BZF +3 045809,000233: 01,2745 40166 CS PUSHLOC 045810,000234: 01,2746 54166 TS PUSHLOC 045811,000235: 045812,000236: 01,2747 52167 DXCH PUSHLOC 045813,000237: 01,2750 50067 INDEX NEWJOB 045814,000238: 01,2751 52167 DXCH PUSHLOC 045815,000239: 01,2752 52167 DXCH PUSHLOC # SWAPS PUSHLOC AND PRIORITY. 045816,000240: 01,2753 35004 CAF LOW9 # SET FIXLOC TO BASE OF VAC AREA. 045817,000241: 01,2754 70167 MASK PRIORITY 045818,000242: 01,2755 54120 TS FIXLOC 045819,000243: 045820,000244: 01,2756 10166 CCS PUSHLOC # SET OVERFLOW INDICATOR ACCORDING TO 045821,000245: 01,2757 34755 CAF ZERO 045822,000246: 01,2760 12765 TCF ENDPRCHG -1 045823,000247: 045824,000248: # Page 1108 045825,000249: 01,2761 40166 CS PUSHLOC 045826,000250: 01,2762 54166 TS PUSHLOC 045827,000251: 01,2763 34753 CAF ONE 045828,000252: 01,2764 56121 XCH OVFIND 045829,000253: 01,2765 54067 TS NEWJOB 045830,000254: 045831,000255: 01,2766 00003 ENDPRCHG RELINT 045832,000256: 01,2767 52165 DXCH LOC # BASIC JOBS HAVE POSITIVE ADDRESSES, SO 045833,000257: 01,2770 00006 EXTEND # DISPATCH WITH A DTCB. 045834,000258: 01,2771 62773 BZMF +2 # IF INTERPRETIVE, SET UP EBANK, ETC. 045835,000259: 01,2772 52006 DTCB 045836,000260: # Page 1109 045837,000261: 01,2773 40000 COM # EPILOGUE TO JOB CHANGE FOR INTERPRETIVE 045838,000262: 01,2774 64753 AD ONE 045839,000263: 01,2775 54164 TS LOC # RESUME 045840,000264: 01,2776 16053 TCF INTRSM 045841,000265: 045842,000266: # COMPLETE JOBSLEEP PREPARATIONS. 045843,000267: 045844,000268: 01,2777 00004 JOBSLP1 INHINT 045845,000269: 01,3000 40167 CS PRIORITY # NNZ PRIORITY SHOWS JOB ASLEEP. 045846,000270: 01,3001 54167 TS PRIORITY 045847,000271: 01,3002 36077 CAF LOW7 045848,000272: 01,3003 70006 MASK BBANK 045849,000273: 01,3004 00006 EXTEND 045850,000274: 01,3005 04007 ROR SUPERBNK # SAVE OLD SUPERBANK VALUE. 045851,000275: 01,3006 54165 TS BANKSET 045852,000276: 01,3007 44755 CS ZERO 045853,000277: 01,3010 54131 JOBSLP2 TS BUF +1 # HOLDS -- HIGHEST PRIORITY. 045854,000278: 01,3011 13121 TCF EJSCAN # SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB. 045855,000279: 045856,000280: 01,3012 00004 NUCHANG2 INHINT # QUICK... DON'T LET NEWJOB CHANGE TO +0. 045857,000281: 01,3013 10067 CCS NEWJOB 045858,000282: 01,3014 13017 TCF +3 # NEWJOB STILL PNZ 045859,000283: 01,3015 00003 RELINT # NEW JOB HAS CHANGED TO +0. WAKE UP JOB 045860,000284: 01,3016 13217 TCF ADVAN +2 # VIA NUDIRECT. (VERY RARE CASE.) 045861,000285: 045862,000286: 01,3017 34752 CAF TWO 045863,000287: 01,3020 00006 EXTEND 045864,000288: 01,3021 05011 WOR DSALMOUT # TURN ON ACTIVITY LIGHT 045865,000289: 01,3022 52165 DXCH LOC # AND SAVE ADDRESS INFO FOR BENEFIT OF 045866,000290: 01,3023 12713 TCF CHANJOB +4 # POSSIBLE SLEEPINT JOB. 045867,000291: 045868,000292: # Page 1110 045869,000293: # TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE 045870,000294: # LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND, 045871,000295: # LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE. 045872,000296: 045873,000297: 01,3024 54061 JOBWAKE2 TS EXECTEM1 045874,000298: 01,3025 34755 CAF ZERO # BEGIN CORE SET SCAN 045875,000299: 01,3026 54064 TS LOCCTR 045876,000300: 01,3027 32635 CAF NO.CORES 045877,000301: 01,3030 54062 JOBWAKE4 TS EXECTEM2 045878,000302: 01,3031 50064 INDEX LOCCTR 045879,000303: 01,3032 10167 CCS PRIORITY 045880,000304: 01,3033 13036 TCF JOBWAKE3 # ACTIVE JOB -- CHECK NEXT CORE SET. 045881,000305: 01,3034 00014 COREINC DEC 12 B-14 # 12 REGISTERS PER CORE SET. 045882,000306: 01,3035 13045 TCF WAKETEST # SLEEPING JOB -- SEE IF CADR MATCHES. 045883,000307: 045884,000308: 01,3036 33034 JOBWAKE3 CAF COREINC 045885,000309: 01,3037 26064 ADS LOCCTR 045886,000310: 01,3040 10062 CCS EXECTEM2 045887,000311: 01,3041 13030 TCF JOBWAKE4 045888,000312: 01,3042 44753 CS ONE # EXIT IF SLEEPIN JOB NOT FOUND. 045889,000313: 01,3043 54064 TS LOCCTR 045890,000314: 01,3044 15160 TCF ENDFIND 045891,000315: 045892,000316: 01,3045 40065 WAKETEST CS NEWLOC 045893,000317: 01,3046 50064 INDEX LOCCTR 045894,000318: 01,3047 60164 AD LOC 045895,000319: 01,3050 00006 EXTEND 045896,000320: 01,3051 13053 BZF +2 # IF MATCH. 045897,000321: 01,3052 13036 TCF JOBWAKE3 # EXAMINE NEXT CORE SET IF NO MATCH. 045898,000322: 045899,000323: 01,3053 50064 INDEX LOCCTR # RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE 045900,000324: 01,3054 40167 CS PRIORITY 045901,000325: 01,3055 54063 TS NEWPRIO 045902,000326: 01,3056 50064 INDEX LOCCTR 045903,000327: 01,3057 54167 TS PRIORITY 045904,000328: 045905,000329: 01,3060 44350 CS FBANKMSK # MASK UP THE 2CADR OF THE WAKE ADDRESS 045906,000330: 01,3061 70065 MASK NEWLOC # USING THE CADR IN NEWLOC AND THE EBANK 045907,000331: 01,3062 64741 AD 2K # HALF OF BBANK SAVED IN BANKSET. 045908,000332: 01,3063 56065 XCH NEWLOC 045909,000333: 01,3064 74350 MASK FBANKMSK 045910,000334: 01,3065 50064 INDEX LOCCTR 045911,000335: 01,3066 60165 AD BANKSET 045912,000336: 01,3067 54066 TS NEWLOC +1 045913,000337: 045914,000338: 01,3070 10064 CCS LOCCTR # SPECIAL TREATMENT IF THIS JOB WAS 045915,000339: 01,3071 12662 TCF SETLOC # ALREADY IN THE RUN (0) POSITION. 045916,000340: 01,3072 12652 TCF SPECTEST 045917,000341: 045918,000342: # Page 1111 045919,000343: # PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY. 045920,000344: 045921,000345: 01,3073 54164 PRIOCH2 TS LOC 045922,000346: 01,3074 34755 CAF ZERO # SET FLAG TO TELL ENDJOB SCANNER IF THIS 045923,000347: 01,3075 54130 TS BUF # JOB IS STILL HIGHEST PRIORITY. 045924,000348: 01,3076 35004 CAF LOW9 045925,000349: 01,3077 70167 MASK PRIORITY 045926,000350: 01,3100 60063 AD NEWPRIO 045927,000351: 01,3101 54167 TS PRIORITY 045928,000352: 01,3102 40000 COM 045929,000353: 01,3103 13010 TCF JOBSLP2 # AND TO EJSCAN. 045930,000354: 045931,000355: # Page 1112 045932,000356: # RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY. 045933,000357: 045934,000358: 01,3104 00004 ENDJOB1 INHINT 045935,000359: 01,3105 44755 CS ZERO 045936,000360: 01,3106 54131 TS BUF +1 045937,000361: 01,3107 56167 XCH PRIORITY 045938,000362: 01,3110 75004 MASK LOW9 045939,000363: 01,3111 54001 TS L 045940,000364: 045941,000365: 01,3112 45164 CS FAKEPRET 045942,000366: 01,3113 60001 AD L 045943,000367: 045944,000368: 01,3114 00006 EXTEND 045945,000369: 01,3115 63121 BZMF EJSCAN # NOVAC ENDOFJOB 045946,000370: 045947,000371: 01,3116 10001 CCS L 045948,000372: 01,3117 50000 INDEX A 045949,000373: 01,3120 54000 TS 0 045950,000374: 045951,000375: 01,3121 10203 EJSCAN CCS PRIORITY +12D 045952,000376: 01,3122 03172 TC EJ1 045953,000377: 01,3123 05675 TC CCSHOLE 045954,000378: 01,3124 13125 TCF +1 045955,000379: 045956,000380: 01,3125 10217 CCS PRIORITY +24D # EXAMINE EACH PRIORITY REGISTER TO FIND 045957,000381: 01,3126 03172 TC EJ1 # THE JOB OF HIGHEST ACTIVE PRIORITY. 045958,000382: 01,3127 05675 TC CCSHOLE 045959,000383: 01,3130 13131 TCF +1 045960,000384: 045961,000385: 01,3131 10233 CCS PRIORITY +36D 045962,000386: 01,3132 03172 TC EJ1 045963,000387: 01,3133 67610 -CCSPR -CCS PRIORITY 045964,000388: 01,3134 13135 TCF +1 045965,000389: 045966,000390: 01,3135 10247 CCS PRIORITY +48D 045967,000391: 01,3136 03172 TC EJ1 045968,000392: 01,3137 05675 TC CCSHOLE 045969,000393: 01,3140 13141 TCF +1 045970,000394: 045971,000395: 01,3141 10263 CCS PRIORITY +60D 045972,000396: 01,3142 03172 TC EJ1 045973,000397: 01,3143 05675 TC CCSHOLE 045974,000398: 01,3144 13145 TCF +1 045975,000399: 045976,000400: 01,3145 10277 CCS PRIORITY +72D 045977,000401: 01,3146 03172 TC EJ1 045978,000402: 01,3147 05675 TC CCSHOLE 045979,000403: 01,3150 13151 TCF +1 045980,000404: 045981,000405: 01,3151 10313 CCS PRIORITY +84D 045982,000406: # Page 1113 045983,000407: 01,3152 03172 TC EJ1 045984,000408: 01,3153 05675 TC CCSHOLE 045985,000409: 01,3154 13155 TCF +1 045986,000410: 045987,000411: # Page 1114 045988,000412: # EVALUATE THE RESULTS OF THE SCAN. 045989,000413: 045990,000414: 01,3155 10131 CCS BUF +1 # SEE IF THERE ARE ANY ACTIVE JOBS WAITING 045991,000415: 01,3156 05675 TC CCSHOLE 045992,000416: 01,3157 05675 TC CCSHOLE 045993,000417: 045994,000418: 01,3160 13162 TCF +2 045995,000419: 01,3161 13207 TCF DUMMYJOB 045996,000420: 01,3162 10130 CCS BUF # BUF IS ZERO IS THIS IS A PRIOCHNG AND 045997,000421: 01,3163 13165 TCF +2 # CHANGED PRIORITY IS STILL HIGHEST. 045998,000422: 01,3164 12765 TCF ENDPRCHG -1 045999,000423: 046000,000424: 01,3165 50000 INDEX A # OTHERWISE, SE NEWJOB TO THE RELATIVE 046001,000425: 01,3166 27777 CAF 0 -1 # ADDRESS OF THE NEW JOB'S CORE SET. 046002,000426: 01,3167 63133 AD -CCSPR 046003,000427: 01,3170 54067 TS NEWJOB 046004,000428: 01,3171 12705 TCF CHANJOB -2 046005,000429: 046006,000430: 01,3172 54132 EJ1 TS BUF +2 046007,000431: 01,3173 60131 AD BUF +1 # - OLD HIGH PRIORITY. 046008,000432: 01,3174 10000 CCS A 046009,000433: 01,3175 40132 CS BUF +2 046010,000434: 01,3176 13202 TCF EJ2 # NEW HIGH PRIORITY. 046011,000435: 01,3177 13200 NOOP 046012,000436: 01,3200 50002 INDEX Q 046013,000437: 01,3201 00002 TC 2 # PROCEED WITH SEARCH. 046014,000438: 046015,000439: 01,3202 54131 EJ2 TS BUF +1 046016,000440: 01,3203 00006 EXTEND 046017,000441: 01,3204 22130 QXCH BUF # FOR LOCATING CCS PRIORITY + X INSTR. 046018,000442: 01,3205 50130 INDEX BUF 046019,000443: 01,3206 00002 TC 2 046020,000444: 046021,000445: # Page 1115 046022,000446: # IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTIEN IS NOT A JOB IN ITSELF, 046023,000447: # BUT RATHER A SUBROUTINE OF THE EXECUTIVE. 046024,000448: 046025,000449: 01,3207 1361 EBANK= SELFRET # SELF-CHECK STORAE IN EBANK. 046026,000450: 046027,000451: 01,3207 44755 DUMMYJOB CS ZERO # SET NEWJOB TO -0 FOR IDLING. 046028,000452: 01,3210 54067 TS NEWJOB 046029,000453: 01,3211 00003 RELINT 046030,000454: 01,3212 44752 CS TWO # TURN OFF THE ACTIVITY LIGHT. 046031,000455: 01,3213 00006 EXTEND 046032,000456: 01,3214 03011 WAND DSALMOUT 046033,000457: 01,3215 10067 ADVAN CCS NEWJOB # IS THE NEWJOB ACTIVE? 046034,000458: 01,3216 13012 TCF NUCHANG2 # YES... ONE REQUIRING A CHANGE JOB. 046035,000459: 01,3217 34752 CAF TWO # NEW JOB ALREADY IN POSITION FOR 046036,000460: 01,3220 13226 TCF NUDIRECT # EXECUTION 046037,000461: 046038,000462: 01,3221 31361 CA SELFRET 046039,000463: 01,3222 54001 TS L # PUT RETURN ADDRESS IN L. 046040,000464: 01,3223 33225 CAF SELFBANK 046041,000465: 01,3224 15166 TCF SUPDXCHZ +1 # AND DISPATCH JOB. 046042,000466: 046043,000467: 01,3225 1361 EBANK= SELFRET 046044,000468: 01,3225 66102 SELFBANK BBCON SELFCHK 046045,000469: 046046,000470: 01,3226 00006 NUDIRECT EXTEND # TURN THE GREEN LIGHT BACK ON. 046047,000471: 01,3227 05011 WOR DSALMOUT 046048,000472: 01,3230 52165 DXCH LOC # JOBS STARTED IN THIS FASHION MUST BE 046049,000473: 01,3231 15165 TCF SUPDXCHZ 046050,000474: 046051,000475: 5165 BLOCK 2 # IN FIXED-FIXED SO OTHERS MAY USE. 046052,000476: 046053,000477: 5165 COUNT* $$/EXEC 046054,000478: 046055,000479: # SUPDXCHZ -- ROUTINE TO TRANSFER TO SUPEBANK. 046056,000480: # CALLING SEQUENCE: 046057,000481: # TCF SUPDXCHZ # WITH 2CADR OF DESIRED LOCATION IN A + l. 046058,000482: 046059,000483: 5165 56001 SUPDXCHZ XCH L # BASIC. 046060,000484: 5166 00006 +1 EXTEND 046061,000485: 5167 01007 WRITE SUPERBNK 046062,000486: 5170 54006 TS BBANK 046063,000487: 5171 00001 TC L 046064,000488: 046065,000489: 5172 77677 NEG100 OCT 77677 046066,000490: End of include-file EXECUTIVE.agc. Parent file is MAIN.agc