Source Code

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