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