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