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