Source Code

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