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