Source Code

046904,000001: # Copyright: Public domain. 046905,000002: # Filename: EXECUTIVE.agc 046906,000003: # Purpose: Part of the source code for Luminary 1A build 099. 046907,000004: # It is part of the source code for the Lunar Module's (LM) 046908,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 046909,000006: # Assembler: yaYUL 046910,000007: # Contact: Ron Burkey <info@sandroid.org>. 046911,000008: # Website: www.ibiblio.org/apollo. 046912,000009: # Pages: 1103-1114 046913,000010: # Mod history: 2009-05-25 RSB Adapted from the corresponding 046914,000011: # Luminary131 file, using page 046915,000012: # images from Luminary 1A. 046916,000013: # 2011-01-06 JL Fixed pseudo-label indentation. 046917,000014: # 2011-05-08 JL Removed workaround. 046918,000015: 046919,000016: # This source code has been transcribed or otherwise adapted from 046920,000017: # digitized images of a hardcopy from the MIT Museum. The digitization 046921,000018: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of 046922,000019: # the Museum. Many thanks to both. The images (with suitable reduction 046923,000020: # in storage size and consequent reduction in image quality as well) are 046924,000021: # available online at www.ibiblio.org/apollo. If for some reason you 046925,000022: # find that the images are illegible, contact me at info@sandroid.org 046926,000023: # about getting access to the (much) higher-quality images which Paul 046927,000024: # actually created. 046928,000025: 046929,000026: # Notations on the hardcopy document read, in part: 046930,000027: 046931,000028: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 046932,000029: # 16:27 JULY 14, 1969 046933,000030: 046934,000031: # Page 1103 046935,000032: 5072 BLOCK 02 046936,000033: 046937,000034: # TO ENTER A JOB REQUEST REQUIRING NO VAC AREA: 046938,000035: 046939,000036: 5072 COUNT* $$/EXEC 046940,000037: 5072 00004 NOVAC INHINT 046941,000038: 5073 65164 AD FAKEPRET # LOC(MPAC +6) - LOC(QPRET) 046942,000039: 5074 54063 TS NEWPRIO # PRIORITY OF NEW JOB + NOVAC C(FIXLOC) 046943,000040: 046944,000041: 5075 00006 EXTEND 046945,000042: 5076 50002 INDEX Q # Q WILL BE UNDISTURBED THROUGHOUT. 046946,000043: 5077 30001 DCA 0 # 2CADR OF JOB ENTERED. 046947,000044: 5100 52066 DXCH NEWLOC 046948,000045: 5101 35163 CAF EXECBANK 046949,000046: 5102 56004 XCH FBANK 046950,000047: 5103 54061 TS EXECTEM1 046951,000048: 5104 12625 TCF NOVAC2 # ENTER EXECUTIVE BANK. 046952,000049: 046953,000050: # TO ENTER A JOB REQUEST REQUIREING A VAC AREA -- E.G., ALL (PARTIALLY) INTERPRETIVE JOBS. 046954,000051: 046955,000052: 5105 00004 FINDVAC INHINT 046956,000053: 5106 54063 TS NEWPRIO 046957,000054: 5107 00006 EXTEND 046958,000055: 5110 50002 INDEX Q 046959,000056: 5111 30001 DCA 0 046960,000057: 5112 52066 SPVACIN DXCH NEWLOC 046961,000058: 5113 35163 CAF EXECBANK 046962,000059: 5114 56004 XCH FBANK 046963,000060: 5115 12601 TCF FINDVAC2 # OFF TO EXECUTIVE SWITCHED-BANK. 046964,000061: 046965,000062: # TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L: 046966,000063: # USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO. 046967,000064: 046968,000065: 5116 56002 SPVAC XCH Q 046969,000066: 5117 67746 AD NEG2 046970,000067: 5120 56002 XCH Q 046971,000068: 5121 15112 TCF SPVACIN 046972,000069: 046973,000070: # TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED: 046974,000071: 046975,000072: 5122 22002 CHANG1 LXCH Q 046976,000073: 5123 35163 CAF EXECBANK 046977,000074: 5124 56006 XCH BBANK 046978,000075: 5125 12706 TCF CHANJOB 046979,000076: 046980,000077: # TO SUSPEND AN INTERPRETIVE JOB: 046981,000078: 046982,000079: 5126 40164 CHANG2 CS LOC # NEGATIVE LOC SHOWS JOB = INTERPRETIVE. 046983,000080: # ITRACE (4) REFERS TO "CHANG2" 046984,000081: 5127 54001 TS L 046985,000082: # Page 1104 046986,000083: 5130 35163 +2 CAF EXECBANK 046987,000084: 5131 54006 TS BBANK 046988,000085: 5132 12705 TCF CHANJOB -1 046989,000086: 046990,000087: # Page 1105 046991,000088: # TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.): 046992,000089: 046993,000090: 5133 54164 JOBSLEEP TS LOC 046994,000091: 5134 35163 CAF EXECBANK 046995,000092: 5135 54004 TS FBANK 046996,000093: 5136 12776 TCF JOBSLP1 046997,000094: 046998,000095: # TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION: 046999,000096: 047000,000097: 5137 00004 JOBWAKE INHINT 047001,000098: 5140 54065 TS NEWLOC 047002,000099: 5141 44752 CS TWO # EXIT IS VIA FINDVAC/NOVAC PROCEDURES. 047003,000100: 5142 26002 ADS Q 047004,000101: 5143 35163 CAF EXECBANK 047005,000102: 5144 56004 XCH FBANK 047006,000103: 5145 13023 TCF JOBWAKE2 047007,000104: 047008,000105: # TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION: 047009,000106: 047010,000107: 5146 00004 PRIOCHNG INHINT # NEW PRIORITY ARRIVES IN A. RETURNS TO 047011,000108: 5147 54063 TS NEWPRIO # CALLER AS SOON AS NEW JOB PRIORITY IS 047012,000109: 5150 35163 CAF EXECBANK # HIGHEST. PREPARE FOR POSSIBLE BASIC- 047013,000110: 5151 56006 XCH BBANK # STYLE CHANGE-JOB. 047014,000111: 5152 54165 TS BANKSET 047015,000112: 5153 30002 CA Q 047016,000113: 5154 13072 TCF PRIOCH2 047017,000114: 047018,000115: # TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS: 047019,000116: 047020,000117: 5155 35163 ENDOFJOB CAF EXECBANK 047021,000118: 5156 54004 TS FBANK 047022,000119: 5157 13103 TCF ENDJOB1 047023,000120: 047024,000121: 5160 30061 ENDFIND CA EXECTEM1 # RETURN TO CALLER AFTER JOB ENTRY 047025,000122: 5161 54004 TS FBANK # COMPLETE. 047026,000123: 5162 16741 TCF Q+2 047027,000124: 5163 02601 EXECBANK CADR FINDVAC2 047028,000125: 047029,000126: 5164 00110 FAKEPRET ADRES MPAC -36D # LOC(MPAC +6) - LOC(QPRET) 047030,000127: 047031,000128: # Page 1106 047032,000129: # LOCATE AN AVAILABLE VAC AREA 047033,000130: 047034,000131: 01,2601 BANK 01 047035,000132: 01,2601 COUNT* $$/EXEC 047036,000133: 01,2601 54061 FINDVAC2 TS EXECTEM1 # (SAVE CALLER'S BANK FIRST.) 047037,000134: 01,2602 10400 CCS VAC1USE 047038,000135: 01,2603 12620 TCF VACFOUND 047039,000136: 01,2604 10454 CCS VAC2USE 047040,000137: 01,2605 12620 TCF VACFOUND 047041,000138: 01,2606 10530 CCS VAC3USE 047042,000139: 01,2607 12620 TCF VACFOUND 047043,000140: 01,2610 10604 CCS VAC4USE 047044,000141: 01,2611 12620 TCF VACFOUND 047045,000142: 01,2612 10660 CCS VAC5USE 047046,000143: 01,2613 12620 TCF VACFOUND 047047,000144: 01,2614 22061 LXCH EXECTEM1 047048,000145: 01,2615 30002 CA Q 047049,000146: 01,2616 05716 TC BAILOUT1 047050,000147: 01,2617 01201 OCT 1201 # NO VAC AREAS. 047051,000148: 047052,000149: 01,2620 64752 VACFOUND AD TWO # RESERVE THIS VAC AREA BY STORING A ZERO 047053,000150: 01,2621 22007 ZL # IN ITS VAC USE REGISTER AND STORE THE 047054,000151: 01,2622 50000 INDEX A # ADDRESS OF THE FIRST WORD OF IT IN THE 047055,000152: 01,2623 21777 LXCH 0 -1 # LOW NINE BITS OF THE PRIORITY WORD. 047056,000153: 01,2624 26063 ADS NEWPRIO 047057,000154: 047058,000155: 01,2625 34755 NOVAC2 CAF ZERO # NOVAC ENTERS HERE. FIND A CORE SET. 047059,000156: 01,2626 54064 TS LOCCTR 047060,000157: 01,2627 32634 CAF NO.CORES # SEVEN SETS OF ELEVEN REGISTERS EACH. 047061,000158: 01,2630 54062 NOVAC3 TS EXECTEM2 047062,000159: 01,2631 50064 INDEX LOCCTR 047063,000160: 01,2632 10167 CCS PRIORITY # EACH PRIORITY REGISTER CONTAINS -0 IF 047064,000161: 01,2633 12674 TCF NEXTCORE # THE CORESPONDING CORE SET IS AVAILABLE. 047065,000162: 01,2634 00007 NO.CORES DEC 7 B-14 047066,000163: 01,2635 12674 TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY 047067,000164: # BUT A DORMANT JOB'S PRIORITY IS NEGATIVE 047068,000165: 047069,000166: # Page 1107 047070,000167: 01,2636 30063 CORFOUND CA NEWPRIO # SET THE PRIORITY OF THIS JOB IN THE CORE 047071,000168: 01,2637 50064 INDEX LOCCTR # SET'S PRIORITY REGISTER AND SET THE 047072,000169: 01,2640 54167 TS PRIORITY # JOB'S PUSH-DOWN POINTER AT THE BEGINNING 047073,000170: 01,2641 75004 MASK LOW9 # OF THE WORK AREA AND OVERFLOW INDICATOR. 047074,000171: 01,2642 50064 INDEX LOCCTR 047075,000172: 01,2643 54166 TS PUSHLOC # OFF TO PREPARE FOR INTERPRETIVE PROGRAMS. 047076,000173: 047077,000174: 01,2644 10064 CCS LOCCTR # IF CORE SET ZERO IS BEING LOADED, SET UP 047078,000175: 01,2645 12661 TCF SETLOC # OVFIND AND FIXLOC IMMEDIATELY. 047079,000176: 01,2646 54121 TS OVFIND 047080,000177: 01,2647 30166 CA PUSHLOC 047081,000178: 01,2650 54120 TS FIXLOC 047082,000179: 047083,000180: 01,2651 10067 SPECTEST CCS NEWJOB # SEE IF ANY ACTIVE JOBS WAITING (RARE). 047084,000181: 01,2652 12661 TCF SETLOC # MUST BE AWAKENED OUT UNCHANGED JOB. 047085,000182: 01,2653 05705 TC CCSHOLE 047086,000183: 01,2654 05705 TC CCSHOLE 047087,000184: 01,2655 54067 TS NEWJOB # +0 SHOWS ACTIVE JOB ALREADY SET. 047088,000185: 01,2656 52066 DXCH NEWLOC 047089,000186: 01,2657 52165 DXCH LOC 047090,000187: 01,2660 15160 TCF ENDFIND 047091,000188: 047092,000189: 01,2661 52066 SETLOC DXCH NEWLOC # SET UP THE LOCATION REGISTERS FOR THIS 047093,000190: 01,2662 50064 INDEX LOCCTR 047094,000191: 01,2663 52165 DXCH LOC 047095,000192: 01,2664 50067 INDEX NEWJOB # THIS INDEX INSTRUCTION INSURES THAT THE 047096,000193: 01,2665 40167 CS PRIORITY # HIGHEST ACTIVE PRIORITY WILL BE COMPARED 047097,000194: 01,2666 60063 AD NEWPRIO # WITH THE NEW PRIORITY TO SEE IF NEWJOB 047098,000195: 01,2667 00006 EXTEND # SHOULD BE SET TO SIGNAL A SWITCH. 047099,000196: 01,2670 65160 BZMF ENDFIND 047100,000197: 01,2671 30064 CA LOCCTR # LOCCTR IS LEFT SET AT THIS CORE SET IF 047101,000198: 01,2672 54067 TS NEWJOB # THE CALLER WANTS TO LOAD ANY MPAC 047102,000199: 01,2673 15160 TCF ENDFIND # REGISTERS, ETC. 047103,000200: 047104,000201: 01,2674 33033 NEXTCORE CAF COREINC 047105,000202: 01,2675 26064 ADS LOCCTR 047106,000203: 01,2676 10062 CCS EXECTEM2 047107,000204: 01,2677 12630 TCF NOVAC3 047108,000205: 01,2700 22061 LXCH EXECTEM1 047109,000206: 01,2701 30002 CA Q 047110,000207: 01,2702 05716 TC BAILOUT1 # NO CORE SETS AVAILABLE. 047111,000208: 01,2703 01202 OCT 1202 047112,000209: # Page 1108 047113,000210: # THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB. 047114,000211: 047115,000212: 01,2704 22164 -2 LXCH LOC 047116,000213: 01,2705 30165 -1 CAE BANKSET # BANKSET, NOT BBANK, HAS RIGHT CONTENTS. 047117,000214: 01,2706 00004 CHANJOB INHINT 047118,000215: 01,2707 00006 EXTEND 047119,000216: 01,2710 04007 ROR SUPERBNK # PICK UP CURRENT SBANK FOR BBCON 047120,000217: 01,2711 56001 XCH L # LOC IN A AND BBCON IN L. 047121,000218: 01,2712 50067 +4 INDEX NEWJOB # SWAP LOC AND BANKSET. 047122,000219: 01,2713 52165 DXCH LOC 047123,000220: 01,2714 52165 DXCH LOC 047124,000221: 047125,000222: 01,2715 30165 CAE BANKSET 047126,000223: 01,2716 00006 EXTEND 047127,000224: 01,2717 01007 WRITE SUPERBNK # SET SBANK FOR NEW JOB. 047128,000225: 01,2720 52155 DXCH MPAC # SWAP MULTI-PURPOSE ACCUMULATOR AREAS. 047129,000226: 01,2721 50067 INDEX NEWJOB 047130,000227: 01,2722 52155 DXCH MPAC 047131,000228: 01,2723 52155 DXCH MPAC 047132,000229: 01,2724 52157 DXCH MPAC +2 047133,000230: 01,2725 50067 INDEX NEWJOB 047134,000231: 01,2726 52157 DXCH MPAC +2 047135,000232: 01,2727 52157 DXCH MPAC +2 047136,000233: 01,2730 52161 DXCH MPAC +4 047137,000234: 01,2731 50067 INDEX NEWJOB 047138,000235: 01,2732 52161 DXCH MPAC +4 047139,000236: 01,2733 52161 DXCH MPAC +4 047140,000237: 01,2734 52163 DXCH MPAC +6 047141,000238: 01,2735 50067 INDEX NEWJOB 047142,000239: 01,2736 52163 DXCH MPAC +6 047143,000240: 01,2737 52163 DXCH MPAC +6 047144,000241: 047145,000242: 01,2740 34755 CAF ZERO 047146,000243: 01,2741 56121 XCH OVFIND # MAKE PUSHLOC NEGATIVE IF OVFIND NZ. 047147,000244: 01,2742 00006 EXTEND 047148,000245: 01,2743 12746 BZF +3 047149,000246: 01,2744 40166 CS PUSHLOC 047150,000247: 01,2745 54166 TS PUSHLOC 047151,000248: 047152,000249: 01,2746 52167 DXCH PUSHLOC 047153,000250: 01,2747 50067 INDEX NEWJOB 047154,000251: 01,2750 52167 DXCH PUSHLOC 047155,000252: 01,2751 52167 DXCH PUSHLOC # SWAPS PUSHLOC AND PRIORITY. 047156,000253: 01,2752 35004 CAF LOW9 # SET FIXLOC TO BASE OF VAC AREA. 047157,000254: 01,2753 70167 MASK PRIORITY 047158,000255: 01,2754 54120 TS FIXLOC 047159,000256: 047160,000257: 01,2755 10166 CCS PUSHLOC # SET OVERFLOW INDICATOR ACCORDING TO 047161,000258: 01,2756 34755 CAF ZERO 047162,000259: 01,2757 12764 TCF ENDPRCHG -1 047163,000260: 047164,000261: # Page 1109 047165,000262: 01,2760 40166 CS PUSHLOC 047166,000263: 01,2761 54166 TS PUSHLOC 047167,000264: 01,2762 34753 CAF ONE 047168,000265: 01,2763 56121 XCH OVFIND 047169,000266: 01,2764 54067 TS NEWJOB 047170,000267: 047171,000268: 01,2765 00003 ENDPRCHG RELINT 047172,000269: 01,2766 52165 DXCH LOC # BASIC JOBS HAVE POSITIVE ADDRESSES, SO 047173,000270: 01,2767 00006 EXTEND # DISPATCH WITH A DTCB. 047174,000271: 01,2770 62772 BZMF +2 # IF INTERPRETIVE, SET UP EBANK, ETC. 047175,000272: 01,2771 52006 DTCB 047176,000273: # Page 1110 047177,000274: 01,2772 40000 COM # EPILOGUE TO JOB CHANGE FOR INTERPRETIVE 047178,000275: 01,2773 64753 AD ONE 047179,000276: 01,2774 54164 TS LOC # RESUME 047180,000277: 01,2775 16050 TCF INTRSM 047181,000278: 047182,000279: # COMPLETE JOBSLEEP PREPARATIONS. 047183,000280: 047184,000281: 01,2776 00004 JOBSLP1 INHINT 047185,000282: 01,2777 40167 CS PRIORITY # NNZ PRIORITY SHOWS JOB ASLEEP. 047186,000283: 01,3000 54167 TS PRIORITY 047187,000284: 01,3001 36074 CAF LOW7 047188,000285: 01,3002 70006 MASK BBANK 047189,000286: 01,3003 00006 EXTEND 047190,000287: 01,3004 04007 ROR SUPERBNK # SAVE OLD SUPERBANK VALUE. 047191,000288: 01,3005 54165 TS BANKSET 047192,000289: 01,3006 44755 CS ZERO 047193,000290: 01,3007 54131 JOBSLP2 TS BUF +1 # HOLDS -- HIGHEST PRIORITY. 047194,000291: 01,3010 13120 TCF EJSCAN # SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB. 047195,000292: 047196,000293: 01,3011 00004 NUCHANG2 INHINT # QUICK... DON'T LET NEWJOB CHANGE TO +0. 047197,000294: 01,3012 10067 CCS NEWJOB 047198,000295: 01,3013 13016 TCF +3 # NEWJOB STILL PNZ 047199,000296: 01,3014 00003 RELINT # NEW JOB HAS CHANGED TO +0. WAKE UP JOB 047200,000297: 01,3015 13216 TCF ADVAN +2 # VIA NUDIRECT. (VERY RARE CASE.) 047201,000298: 047202,000299: 01,3016 34752 CAF TWO 047203,000300: 01,3017 00006 EXTEND 047204,000301: 01,3020 05011 WOR DSALMOUT # TURN ON ACTIVITY LIGHT 047205,000302: 01,3021 52165 DXCH LOC # AND SAVE ADDRESS INFO FOR BENEFIT OF 047206,000303: 01,3022 12712 TCF CHANJOB +4 # POSSIBLE SLEEPINT JOB. 047207,000304: 047208,000305: # Page 1111 047209,000306: # TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE 047210,000307: # LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND, 047211,000308: # LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE. 047212,000309: 047213,000310: 01,3023 54061 JOBWAKE2 TS EXECTEM1 047214,000311: 01,3024 34755 CAF ZERO # BEGIN CORE SET SCAN 047215,000312: 01,3025 54064 TS LOCCTR 047216,000313: 01,3026 32634 CAF NO.CORES 047217,000314: 01,3027 54062 JOBWAKE4 TS EXECTEM2 047218,000315: 01,3030 50064 INDEX LOCCTR 047219,000316: 01,3031 10167 CCS PRIORITY 047220,000317: 01,3032 13035 TCF JOBWAKE3 # ACTIVE JOB -- CHECK NEXT CORE SET. 047221,000318: 01,3033 00014 COREINC DEC 12 B-14 # 12 REGISTERS PER CORE SET. 047222,000319: 01,3034 13044 TCF WAKETEST # SLEEPING JOB -- SEE IF CADR MATCHES. 047223,000320: 047224,000321: 01,3035 33033 JOBWAKE3 CAF COREINC 047225,000322: 01,3036 26064 ADS LOCCTR 047226,000323: 01,3037 10062 CCS EXECTEM2 047227,000324: 01,3040 13027 TCF JOBWAKE4 047228,000325: 01,3041 44753 CS ONE # EXIT IF SLEEPIN JOB NOT FOUND. 047229,000326: 01,3042 54064 TS LOCCTR 047230,000327: 01,3043 15160 TCF ENDFIND 047231,000328: 047232,000329: 01,3044 40065 WAKETEST CS NEWLOC 047233,000330: 01,3045 50064 INDEX LOCCTR 047234,000331: 01,3046 60164 AD LOC 047235,000332: 01,3047 00006 EXTEND 047236,000333: 01,3050 13052 BZF +2 # IF MATCH. 047237,000334: 01,3051 13035 TCF JOBWAKE3 # EXAMINE NEXT CORE SET IF NO MATCH. 047238,000335: 047239,000336: 01,3052 50064 INDEX LOCCTR # RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE 047240,000337: 01,3053 40167 CS PRIORITY 047241,000338: 01,3054 54063 TS NEWPRIO 047242,000339: 01,3055 50064 INDEX LOCCTR 047243,000340: 01,3056 54167 TS PRIORITY 047244,000341: 047245,000342: 01,3057 44350 CS FBANKMSK # MAKE UP THE 2CADR OF THE WAKE ADDRESS 047246,000343: 01,3060 70065 MASK NEWLOC # USING THE CADR IN NEWLOC AND THE EBANK 047247,000344: 01,3061 64741 AD 2K # HALF OF BBANK SAVED IN BANKSET. 047248,000345: 01,3062 56065 XCH NEWLOC 047249,000346: 01,3063 74350 MASK FBANKMSK 047250,000347: 01,3064 50064 INDEX LOCCTR 047251,000348: 01,3065 60165 AD BANKSET 047252,000349: 01,3066 54066 TS NEWLOC +1 047253,000350: 047254,000351: 01,3067 10064 CCS LOCCTR # SPECIAL TREATMENT IF THIS JOB WAS 047255,000352: 01,3070 12661 TCF SETLOC # ALREADY IN THE RUN (0) POSITION. 047256,000353: 01,3071 12651 TCF SPECTEST 047257,000354: 047258,000355: # Page 1112 047259,000356: # PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY. 047260,000357: 047261,000358: 01,3072 54164 PRIOCH2 TS LOC 047262,000359: 01,3073 34755 CAF ZERO # SET FLAG TO TELL ENDJOB SCANNER IF THIS 047263,000360: 01,3074 54130 TS BUF # JOB IS STILL HIGHEST PRIORITY. 047264,000361: 01,3075 35004 CAF LOW9 047265,000362: 01,3076 70167 MASK PRIORITY 047266,000363: 01,3077 60063 AD NEWPRIO 047267,000364: 01,3100 54167 TS PRIORITY 047268,000365: 01,3101 40000 COM 047269,000366: 01,3102 13007 TCF JOBSLP2 # AND TO EJSCAN. 047270,000367: 047271,000368: # Page 1113 047272,000369: # RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY. 047273,000370: 047274,000371: 01,3103 00004 ENDJOB1 INHINT 047275,000372: 01,3104 44755 CS ZERO 047276,000373: 01,3105 54131 TS BUF +1 047277,000374: 01,3106 56167 XCH PRIORITY 047278,000375: 01,3107 75004 MASK LOW9 047279,000376: 01,3110 54001 TS L 047280,000377: 047281,000378: 01,3111 45164 CS FAKEPRET 047282,000379: 01,3112 60001 AD L 047283,000380: 047284,000381: 01,3113 00006 EXTEND 047285,000382: 01,3114 63120 BZMF EJSCAN # NOVAC ENDOFJOB 047286,000383: 047287,000384: 01,3115 10001 CCS L 047288,000385: 01,3116 50000 INDEX A 047289,000386: 01,3117 54000 TS 0 047290,000387: 047291,000388: 01,3120 10203 EJSCAN CCS PRIORITY +12D 047292,000389: 01,3121 03171 TC EJ1 047293,000390: 01,3122 05705 TC CCSHOLE 047294,000391: 01,3123 13124 TCF +1 047295,000392: 047296,000393: 01,3124 10217 CCS PRIORITY +24D # EXAMINE EACH PRIORITY REGISTER TO FIND 047297,000394: 01,3125 03171 TC EJ1 # THE JOB OF HIGHEST ACTIVE PRIORITY. 047298,000395: 01,3126 05705 TC CCSHOLE 047299,000396: 01,3127 13130 TCF +1 047300,000397: 047301,000398: 01,3130 10233 CCS PRIORITY +36D 047302,000399: 01,3131 03171 TC EJ1 047303,000400: 01,3132 67610 -CCSPR -CCS PRIORITY 047304,000401: 01,3133 13134 TCF +1 047305,000402: 047306,000403: 01,3134 10247 CCS PRIORITY +48D 047307,000404: 01,3135 03171 TC EJ1 047308,000405: 01,3136 05705 TC CCSHOLE 047309,000406: 01,3137 13140 TCF +1 047310,000407: 047311,000408: 01,3140 10263 CCS PRIORITY +60D 047312,000409: 01,3141 03171 TC EJ1 047313,000410: 01,3142 05705 TC CCSHOLE 047314,000411: 01,3143 13144 TCF +1 047315,000412: 047316,000413: 01,3144 10277 CCS PRIORITY +72D 047317,000414: 01,3145 03171 TC EJ1 047318,000415: 01,3146 05705 TC CCSHOLE 047319,000416: 01,3147 13150 TCF +1 047320,000417: 047321,000418: 01,3150 10313 CCS PRIORITY +84D 047322,000419: # Page 1114 047323,000420: 01,3151 03171 TC EJ1 047324,000421: 01,3152 05705 TC CCSHOLE 047325,000422: 01,3153 13154 TCF +1 047326,000423: 047327,000424: # Page 1115 047328,000425: # EVALUATE THE RESULTS OF THE SCAN. 047329,000426: 047330,000427: 01,3154 10131 CCS BUF +1 # SEE IF THERE ARE ANY ACTIVE JOBS WAITING 047331,000428: 01,3155 05705 TC CCSHOLE 047332,000429: 01,3156 05705 TC CCSHOLE 047333,000430: 047334,000431: 01,3157 13161 TCF +2 047335,000432: 01,3160 13206 TCF DUMMYJOB 047336,000433: 01,3161 10130 CCS BUF # BUF IS ZERO IS THIS IS A PRIOCHNG AND 047337,000434: 01,3162 13164 TCF +2 # CHANGED PRIORITY IS STILL HIGHEST. 047338,000435: 01,3163 12764 TCF ENDPRCHG -1 047339,000436: 047340,000437: 01,3164 50000 INDEX A # OTHERWISE, SET NEWJOB TO THE RELATIVE 047341,000438: 01,3165 27777 CAF 0 -1 # ADDRESS OF THE NEW JOB'S CORE SET. 047342,000439: 01,3166 63132 AD -CCSPR 047343,000440: 01,3167 54067 TS NEWJOB 047344,000441: 01,3170 12704 TCF CHANJOB -2 047345,000442: 047346,000443: 01,3171 54132 EJ1 TS BUF +2 047347,000444: 01,3172 60131 AD BUF +1 # - OLD HIGH PRIORITY. 047348,000445: 01,3173 10000 CCS A 047349,000446: 01,3174 40132 CS BUF +2 047350,000447: 01,3175 13201 TCF EJ2 # NEW HIGH PRIORITY. 047351,000448: 01,3176 13177 NOOP 047352,000449: 01,3177 50002 INDEX Q 047353,000450: 01,3200 00002 TC 2 # PROCEED WITH SEARCH. 047354,000451: 047355,000452: 01,3201 54131 EJ2 TS BUF +1 047356,000453: 01,3202 00006 EXTEND 047357,000454: 01,3203 22130 QXCH BUF # FOR LOCATING CCS PRIORITY + X INSTR. 047358,000455: 01,3204 50130 INDEX BUF 047359,000456: 01,3205 00002 TC 2 047360,000457: 047361,000458: # Page 1116 047362,000459: # IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTINE IS NOT A JOB IN ITSELF, 047363,000460: # BUT RATHER A SUBROUTINE OF THE EXECUTIVE. 047364,000461: 047365,000462: 01,3206 1361 EBANK= SELFRET # SELF-CHECK STORAGE IN EBANK. 047366,000463: 047367,000464: 01,3206 44755 DUMMYJOB CS ZERO # SET NEWJOB TO -0 FOR IDLING. 047368,000465: 01,3207 54067 TS NEWJOB 047369,000466: 01,3210 00003 RELINT 047370,000467: 01,3211 44752 CS TWO # TURN OFF THE ACTIVITY LIGHT. 047371,000468: 01,3212 00006 EXTEND 047372,000469: 01,3213 03011 WAND DSALMOUT 047373,000470: 01,3214 10067 ADVAN CCS NEWJOB # IS THE NEWJOB ACTIVE? 047374,000471: 01,3215 13011 TCF NUCHANG2 # YES... ONE REQUIRING A CHANGE JOB. 047375,000472: 01,3216 34752 CAF TWO # NEW JOB ALREADY IN POSITION FOR 047376,000473: 01,3217 13225 TCF NUDIRECT # EXECUTION 047377,000474: 047378,000475: 01,3220 31361 CA SELFRET 047379,000476: 01,3221 54001 TS L # PUT RETURN ADDRESS IN L. 047380,000477: 01,3222 33224 CAF SELFBANK 047381,000478: 01,3223 15166 TCF SUPDXCHZ +1 # AND DISPATCH JOB. 047382,000479: 047383,000480: 01,3224 1361 EBANK= SELFRET 047384,000481: 01,3224 66102 SELFBANK BBCON SELFCHK 047385,000482: 047386,000483: 01,3225 00006 NUDIRECT EXTEND # TURN THE GREEN LIGHT BACK ON. 047387,000484: 01,3226 05011 WOR DSALMOUT 047388,000485: 01,3227 52165 DXCH LOC # JOBS STARTED IN THIS FASHION MUST BE 047389,000486: 01,3230 15165 TCF SUPDXCHZ 047390,000487: 047391,000488: 5165 BLOCK 2 # IN FIXED-FIXED SO OTHERS MAY USE. 047392,000489: 047393,000490: 5165 COUNT* $$/EXEC 047394,000491: 047395,000492: # SUPDXCHZ -- ROUTINE TO TRANSFER TO SUPEBANK. 047396,000493: # CALLING SEQUENCE: 047397,000494: # TCF SUPDXCHZ # WITH 2CADR OF DESIRED LOCATION IN A + L. 047398,000495: 047399,000496: 5165 56001 SUPDXCHZ XCH L # BASIC. 047400,000497: 5166 00006 +1 EXTEND 047401,000498: 5167 01007 WRITE SUPERBNK 047402,000499: 5170 54006 TS BBANK 047403,000500: 5171 00001 TC L 047404,000501: 047405,000502: 5172 77677 NEG100 OCT 77677 047406,000503: End of include-file EXECUTIVE.agc. Parent file is MAIN.agc