Source Code
052393,000001: # Copyright: Public domain.
052394,000002: # Filename: EXECUTIVE.agc
052395,000003: # Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
052396,000004: # It is part of the source code for the Command Module's (CM)
052397,000005: # Apollo Guidance Computer (AGC), for Apollo 11.
052398,000006: # Assembler: yaYUL
052399,000007: # Contact: Ron Burkey <info@sandroid.org>.
052400,000008: # Website: www.ibiblio.org/apollo.
052401,000009: # Pages: 1208-1220
052402,000010: # Mod history: 2009-05-14 RSB Adapted from the Colossus249/ file of the
052403,000011: # same name, using Comanche055 page images.
052404,000012:
052405,000013: # This source code has been transcribed or otherwise adapted from digitized
052406,000014: # images of a hardcopy from the MIT Museum. The digitization was performed
052407,000015: # by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
052408,000016: # thanks to both. The images (with suitable reduction in storage size and
052409,000017: # consequent reduction in image quality as well) are available online at
052410,000018: # www.ibiblio.org/apollo. If for some reason you find that the images are
052411,000019: # illegible, contact me at info@sandroid.org about getting access to the
052412,000020: # (much) higher-quality images which Paul actually created.
052413,000021:
052414,000022: # Notations on the hardcopy document read, in part:
052415,000023:
052416,000024: # Assemble revision 055 of AGC program Comanche by NASA
052417,000025: # 2021113-051. 10:28 APR. 1, 1969
052418,000026:
052419,000027: # This AGC program shall also be referred to as
052420,000028: # Colossus 2A
052421,000029:
052422,000030: # Page 1208
052423,000031: 5134 BLOCK 02
052424,000032:
052425,000033: # TO ENTER A JOB REQUEST REQUIRING NO VAC AREA:
052426,000034:
052427,000035: 5134 COUNT 02/EXEC
052428,000036:
052429,000037: 5134 00004 NOVAC INHINT
052430,000038: 5135 65226 AD FAKEPRET # LOC(MPAC +6) - LOC(QPRET)
052431,000039: 5136 54063 TS NEWPRIO # PRIORITY OF NEW JOB + NOVAC C(FIXLOC)
052432,000040:
052433,000041: 5137 00006 EXTEND
052434,000042: 5140 50002 INDEX Q # Q WILL BE UNDISTURBED THROUGHOUT.
052435,000043: 5141 30001 DCA 0 # 2CADR OF JOB ENTERED.
052436,000044: 5142 52066 DXCH NEWLOC
052437,000045: 5143 35225 CAF EXECBANK
052438,000046: 5144 56004 XCH FBANK
052439,000047: 5145 54061 TS EXECTEM1
052440,000048: 5146 12650 TCF NOVAC2 # ENTER EXECUTIVE BANK.
052441,000049:
052442,000050: # TO ENTER A JOB REQUEST REQUIREING A VAC AREA -- E.G., ALL (PARTIALLY) INTERPRETIVE JOBS.
052443,000051:
052444,000052: 5147 00004 FINDVAC INHINT
052445,000053: 5150 54063 TS NEWPRIO
052446,000054: 5151 00006 EXTEND
052447,000055: 5152 50002 INDEX Q
052448,000056: 5153 30001 DCA 0
052449,000057: 5154 52066 SPVACIN DXCH NEWLOC
052450,000058: 5155 35225 CAF EXECBANK
052451,000059: 5156 56004 XCH FBANK
052452,000060: 5157 12626 TCF FINDVAC2 # OFF TO EXECUTIVE SWITCHED-BANK.
052453,000061:
052454,000062: # TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L:
052455,000063: # USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO.
052456,000064:
052457,000065: 5160 56002 SPVAC XCH Q
052458,000066: 5161 67715 AD NEG2
052459,000067: 5162 56002 XCH Q
052460,000068: 5163 15154 TCF SPVACIN
052461,000069:
052462,000070: # TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED:
052463,000071:
052464,000072: 5164 22002 CHANG1 LXCH Q
052465,000073: 5165 35225 CAF EXECBANK
052466,000074: 5166 56006 XCH BBANK
052467,000075: 5167 12727 TCF CHANJOB
052468,000076:
052469,000077: # TO SUSPEND AN INTERPRETIVE JOB:
052470,000078:
052471,000079: 5170 40164 CHANG2 CS LOC # NEGATIVE LOC SHOWS JOB = INTERPRETIVE.
052472,000080: # ITRACE (4) REFERS TO "CHANG2"
052473,000081: # Page 1209
052474,000082: 5171 54001 TS L
052475,000083: 5172 35225 +2 CAF EXECBANK
052476,000084: 5173 54006 TS BBANK
052477,000085: 5174 12726 TCF CHANJOB -1
052478,000086:
052479,000087: # Page 1210
052480,000088: # TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.):
052481,000089:
052482,000090: 5175 54164 JOBSLEEP TS LOC
052483,000091: 5176 35225 CAF EXECBANK
052484,000092: 5177 54004 TS FBANK
052485,000093: 5200 13017 TCF JOBSLP1
052486,000094:
052487,000095: # TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION:
052488,000096:
052489,000097: 5201 00004 JOBWAKE INHINT
052490,000098: 5202 54065 TS NEWLOC
052491,000099: 5203 45016 CS TWO # EXIT IS VIA FINDVAC/NOVAC PROCEDURES.
052492,000100: 5204 26002 ADS Q
052493,000101: 5205 35225 CAF EXECBANK
052494,000102: 5206 56004 XCH FBANK
052495,000103: 5207 13044 TCF JOBWAKE2
052496,000104:
052497,000105: # TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION:
052498,000106:
052499,000107: 5210 00004 PRIOCHNG INHINT # NEW PRIORITY ARRIVES IN A. RETURNS TO
052500,000108: 5211 54063 TS NEWPRIO # CALLER AS SOON AS NEW JOB PRIORITY IS
052501,000109: 5212 35225 CAF EXECBANK # HIGHEST. PREPARE FOR POSSIBLE BASIC-
052502,000110: 5213 56006 XCH BBANK # STYLE CHANGE-JOB.
052503,000111: 5214 54165 TS BANKSET
052504,000112: 5215 30002 CA Q
052505,000113: 5216 13113 TCF PRIOCH2
052506,000114:
052507,000115: # TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS:
052508,000116:
052509,000117: 5217 35225 ENDOFJOB CAF EXECBANK
052510,000118: 5220 54004 TS FBANK
052511,000119: 5221 13124 TCF ENDJOB1
052512,000120:
052513,000121: 5222 30061 ENDFIND CA EXECTEM1 # RETURN TO CALLER AFTER JOB ENTRY
052514,000122: 5223 54004 TS FBANK # COMPLETE.
052515,000123: 5224 16710 TCF Q+2
052516,000124: 5225 02626 EXECBANK CADR FINDVAC2
052517,000125:
052518,000126: 5226 00110 FAKEPRET ADRES MPAC -36D # LOC(MPAC +6) - LOC(QPRET)
052519,000127:
052520,000128: # Page 1211
052521,000129: # LOCATE AN AVAILABLE VAC AREA
052522,000130:
052523,000131: 01,2626 BANK 01
052524,000132: 01,2626 COUNT 01/EXEC
052525,000133:
052526,000134: 01,2626 54061 FINDVAC2 TS EXECTEM1 # (SAVE CALLER'S BANK FIRST.)
052527,000135: 01,2627 10400 CCS VAC1USE
052528,000136: 01,2630 12643 TCF VACFOUND
052529,000137: 01,2631 10454 CCS VAC2USE
052530,000138: 01,2632 12643 TCF VACFOUND
052531,000139: 01,2633 10530 CCS VAC3USE
052532,000140: 01,2634 12643 TCF VACFOUND
052533,000141: 01,2635 10604 CCS VAC4USE
052534,000142: 01,2636 12643 TCF VACFOUND
052535,000143: 01,2637 10660 CCS VAC5USE
052536,000144: 01,2640 12643 TCF VACFOUND
052537,000145: 01,2641 07755 TC BAILOUT
052538,000146: 01,2642 01201 OCT 1201 # NO VAC AREAS.
052539,000147:
052540,000148: 01,2643 65016 VACFOUND AD TWO # RESERVE THIS VAC AREA BY STORING A ZERO
052541,000149: 01,2644 22007 ZL # IN ITS VAC USE REGISTER AND STORE THE
052542,000150: 01,2645 50000 INDEX A # ADDRESS OF THE FIRST WORD OF IT IN THE
052543,000151: 01,2646 21777 LXCH 0 -1 # LOW NINE BITS OF THE PRIORITY WORD.
052544,000152: 01,2647 26063 ADS NEWPRIO
052545,000153:
052546,000154: 01,2650 35021 NOVAC2 CAF ZERO # NOVAC ENTERS HERE. FIND A CORE SET.
052547,000155: 01,2651 54064 TS LOCCTR
052548,000156: 01,2652 32657 CAF NO.CORES # SEVEN SETS OF ELEVEN REGISTERS EACH.
052549,000157: 01,2653 54062 NOVAC3 TS EXECTEM2
052550,000158: 01,2654 50064 INDEX LOCCTR
052551,000159: 01,2655 10167 CCS PRIORITY # EACH PRIORITY REGISTER CONTAINS -0 IF
052552,000160: 01,2656 12717 TCF NEXTCORE # THE CORESPONDING CORE SET IS AVAILABLE.
052553,000161: 01,2657 00006 NO.CORES DEC 6 B-14
052554,000162: 01,2660 12717 TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY
052555,000163: # BUT A DORMANT JOB'S PRIORITY IS NEGATIVE
052556,000164:
052557,000165: # Page 1212
052558,000166: 01,2661 30063 CORFOUND CA NEWPRIO # SET THE PRIORITY OF THIS JOB IN THE CORE
052559,000167: 01,2662 50064 INDEX LOCCTR # SET'S PRIORITY REGISTER AND SET THE
052560,000168: 01,2663 54167 TS PRIORITY # JOB'S PUSH-DOWN POINTER AT THE BEGINNING
052561,000169: 01,2664 75046 MASK LOW9 # OF THE WORK AREA AND OVERFLOW INDICATOR.
052562,000170: 01,2665 50064 INDEX LOCCTR
052563,000171: 01,2666 54166 TS PUSHLOC # OFF TO PREPARE FOR INTERPRETIVE PROGRAMS.
052564,000172:
052565,000173: 01,2667 10064 CCS LOCCTR # IF CORE SET ZERO IS BEING LOADED, SET UP
052566,000174: 01,2670 12704 TCF SETLOC # OVFIND AND FIXLOC IMMEDIATELY.
052567,000175: 01,2671 54121 TS OVFIND
052568,000176: 01,2672 30166 CA PUSHLOC
052569,000177: 01,2673 54120 TS FIXLOC
052570,000178:
052571,000179: 01,2674 10067 SPECTEST CCS NEWJOB # SEE IF ANY ACTIVE JOBS WAITING (RARE).
052572,000180: 01,2675 12704 TCF SETLOC # MUST BE AWAKENED OUT UNCHANGED JOB.
052573,000181: 01,2676 05747 TC CCSHOLE
052574,000182: 01,2677 05747 TC CCSHOLE
052575,000183: 01,2700 54067 TS NEWJOB # +0 SHOWS ACTIVE JOB ALREADY SET.
052576,000184: 01,2701 52066 DXCH NEWLOC
052577,000185: 01,2702 52165 DXCH LOC
052578,000186: 01,2703 15222 TCF ENDFIND
052579,000187:
052580,000188: 01,2704 52066 SETLOC DXCH NEWLOC # SET UP THE LOCATION REGISTERS FOR THIS
052581,000189: 01,2705 50064 INDEX LOCCTR
052582,000190: 01,2706 52165 DXCH LOC
052583,000191: 01,2707 50067 INDEX NEWJOB # THIS INDEX INSTRUCTION INSURES THAT THE
052584,000192: 01,2710 40167 CS PRIORITY # HIGHEST ACTIVE PRIORITY WILL BE COMPARED
052585,000193: 01,2711 60063 AD NEWPRIO # WITH THE NEW PRIORITY TO SEE IF NEWJOB
052586,000194: 01,2712 00006 EXTEND # SHOULD BE SET TO SIGNAL A SWITCH.
052587,000195: 01,2713 65222 BZMF ENDFIND
052588,000196: 01,2714 30064 CA LOCCTR # LOCCTR IS LEFT SET AT THIS CORE SET IF
052589,000197: 01,2715 54067 TS NEWJOB # THE CALLER WANTS TO LOAD ANY MPAC
052590,000198: 01,2716 15222 TCF ENDFIND # REGISTERS, ETC.
052591,000199:
052592,000200: 01,2717 33054 NEXTCORE CAF COREINC
052593,000201: 01,2720 26064 ADS LOCCTR
052594,000202: 01,2721 10062 CCS EXECTEM2
052595,000203: 01,2722 12653 TCF NOVAC3
052596,000204: 01,2723 07755 TC BAILOUT # NO CORE SETS.
052597,000205: 01,2724 01202 OCT 1202
052598,000206: # Page 1213
052599,000207: # THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB.
052600,000208:
052601,000209: 01,2725 22164 -2 LXCH LOC
052602,000210: 01,2726 30165 -1 CAE BANKSET # BANKSET, NOT BBANK, HAS RIGHT CONTENTS.
052603,000211: 01,2727 00004 CHANJOB INHINT
052604,000212: 01,2730 00006 EXTEND
052605,000213: 01,2731 04007 ROR SUPERBNK # PICK UP CURRENT SBANK FOR BBCON
052606,000214: 01,2732 56001 XCH L # LOC IN A AND BBCON IN L.
052607,000215: 01,2733 50067 +4 INDEX NEWJOB # SWAP LOC AND BANKSET.
052608,000216: 01,2734 52165 DXCH LOC
052609,000217: 01,2735 52165 DXCH LOC
052610,000218:
052611,000219: 01,2736 30165 CAE BANKSET
052612,000220: 01,2737 00006 EXTEND
052613,000221: 01,2740 01007 WRITE SUPERBNK # SET SBANK FOR NEW JOB.
052614,000222: 01,2741 52155 DXCH MPAC # SWAP MULTI-PURPOSE ACCUMULATOR AREAS.
052615,000223: 01,2742 50067 INDEX NEWJOB
052616,000224: 01,2743 52155 DXCH MPAC
052617,000225: 01,2744 52155 DXCH MPAC
052618,000226: 01,2745 52157 DXCH MPAC +2
052619,000227: 01,2746 50067 INDEX NEWJOB
052620,000228: 01,2747 52157 DXCH MPAC +2
052621,000229: 01,2750 52157 DXCH MPAC +2
052622,000230: 01,2751 52161 DXCH MPAC +4
052623,000231: 01,2752 50067 INDEX NEWJOB
052624,000232: 01,2753 52161 DXCH MPAC +4
052625,000233: 01,2754 52161 DXCH MPAC +4
052626,000234: 01,2755 52163 DXCH MPAC +6
052627,000235: 01,2756 50067 INDEX NEWJOB
052628,000236: 01,2757 52163 DXCH MPAC +6
052629,000237: 01,2760 52163 DXCH MPAC +6
052630,000238:
052631,000239: 01,2761 35021 CAF ZERO
052632,000240: 01,2762 56121 XCH OVFIND # MAKE PUSHLOC NEGATIVE IF OVFIND NZ.
052633,000241: 01,2763 00006 EXTEND
052634,000242: 01,2764 12767 BZF +3
052635,000243: 01,2765 40166 CS PUSHLOC
052636,000244: 01,2766 54166 TS PUSHLOC
052637,000245:
052638,000246: 01,2767 52167 DXCH PUSHLOC
052639,000247: 01,2770 50067 INDEX NEWJOB
052640,000248: 01,2771 52167 DXCH PUSHLOC
052641,000249: 01,2772 52167 DXCH PUSHLOC # SWAPS PUSHLOC AND PRIORITY.
052642,000250: 01,2773 35046 CAF LOW9 # SET FIXLOC TO BASE OF VAC AREA.
052643,000251: 01,2774 70167 MASK PRIORITY
052644,000252: 01,2775 54120 TS FIXLOC
052645,000253:
052646,000254: 01,2776 10166 CCS PUSHLOC # SET OVERFLOW INDICATOR ACCORDING TO
052647,000255: 01,2777 35021 CAF ZERO
052648,000256: 01,3000 13005 TCF ENDPRCHG -1
052649,000257:
052650,000258: # Page 1214
052651,000259: 01,3001 40166 CS PUSHLOC
052652,000260: 01,3002 54166 TS PUSHLOC
052653,000261: 01,3003 35017 CAF ONE
052654,000262: 01,3004 56121 XCH OVFIND
052655,000263: 01,3005 54067 TS NEWJOB
052656,000264:
052657,000265: 01,3006 00003 ENDPRCHG RELINT
052658,000266: 01,3007 52165 DXCH LOC # BASIC JOBS HAVE POSITIVE ADDRESSES, SO
052659,000267: 01,3010 00006 EXTEND # DISPATCH WITH A DTCB.
052660,000268: 01,3011 63013 BZMF +2 # IF INTERPRETIVE, SET UP EBANK, ETC.
052661,000269: 01,3012 52006 DTCB
052662,000270: # Page 1215
052663,000271: 01,3013 40000 COM # EPILOGUE TO JOB CHANGE FOR INTERPRETIVE
052664,000272: 01,3014 65017 AD ONE
052665,000273: 01,3015 54164 TS LOC # RESUME
052666,000274: 01,3016 16017 TCF INTRSM
052667,000275:
052668,000276: # COMPLETE JOBSLEEP PREPARATIONS.
052669,000277:
052670,000278: 01,3017 00004 JOBSLP1 INHINT
052671,000279: 01,3020 40167 CS PRIORITY # NNZ PRIORITY SHOWS JOB ASLEEP.
052672,000280: 01,3021 54167 TS PRIORITY
052673,000281: 01,3022 36043 CAF LOW7
052674,000282: 01,3023 70006 MASK BBANK
052675,000283: 01,3024 00006 EXTEND
052676,000284: 01,3025 04007 ROR SUPERBNK # SAVE OLD SUPERBANK VALUE.
052677,000285: 01,3026 54165 TS BANKSET
052678,000286: 01,3027 45021 CS ZERO
052679,000287: 01,3030 54131 JOBSLP2 TS BUF +1 # HOLDS -- HIGHEST PRIORITY.
052680,000288: 01,3031 13141 TCF EJSCAN # SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB.
052681,000289:
052682,000290: 01,3032 00004 NUCHANG2 INHINT # QUICK... DON'T LET NEWJOB CHANGE TO +0.
052683,000291: 01,3033 10067 CCS NEWJOB
052684,000292: 01,3034 13037 TCF +3 # NEWJOB STILL PNZ
052685,000293: 01,3035 00003 RELINT # NEW JOB HAS CHANGED TO +0. WAKE UP JOB
052686,000294: 01,3036 13233 TCF ADVAN +2 # VIA NUDIRECT. (VERY RARE CASE.)
052687,000295:
052688,000296: 01,3037 35016 CAF TWO
052689,000297: 01,3040 00006 EXTEND
052690,000298: 01,3041 05011 WOR DSALMOUT # TURN ON ACTIVITY LIGHT
052691,000299: 01,3042 52165 DXCH LOC # AND SAVE ADDRESS INFO FOR BENEFIT OF
052692,000300: 01,3043 12733 TCF CHANJOB +4 # POSSIBLE SLEEPING JOB.
052693,000301:
052694,000302: # Page 1216
052695,000303: # TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE
052696,000304: # LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND,
052697,000305: # LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE.
052698,000306:
052699,000307: 01,3044 54061 JOBWAKE2 TS EXECTEM1
052700,000308: 01,3045 35021 CAF ZERO # BEGIN CORE SET SCAN
052701,000309: 01,3046 54064 TS LOCCTR
052702,000310: 01,3047 32657 CAF NO.CORES
052703,000311: 01,3050 54062 JOBWAKE4 TS EXECTEM2
052704,000312: 01,3051 50064 INDEX LOCCTR
052705,000313: 01,3052 10167 CCS PRIORITY
052706,000314: 01,3053 13056 TCF JOBWAKE3 # ACTIVE JOB -- CHECK NEXT CORE SET.
052707,000315: 01,3054 00014 COREINC DEC 12 B-14 # 12 REGISTERS PER CORE SET.
052708,000316: 01,3055 13065 TCF WAKETEST # SLEEPING JOB -- SEE IF CADR MATCHES.
052709,000317:
052710,000318: 01,3056 33054 JOBWAKE3 CAF COREINC
052711,000319: 01,3057 26064 ADS LOCCTR
052712,000320: 01,3060 10062 CCS EXECTEM2
052713,000321: 01,3061 13050 TCF JOBWAKE4
052714,000322: 01,3062 45017 CS ONE # EXIT IF SLEEPIG JOB NOT FOUND.
052715,000323: 01,3063 54064 TS LOCCTR
052716,000324: 01,3064 15222 TCF ENDFIND
052717,000325:
052718,000326: 01,3065 40065 WAKETEST CS NEWLOC
052719,000327: 01,3066 50064 INDEX LOCCTR
052720,000328: 01,3067 60164 AD LOC
052721,000329: 01,3070 00006 EXTEND
052722,000330: 01,3071 13073 BZF +2 # IF MATCH.
052723,000331: 01,3072 13056 TCF JOBWAKE3 # EXAMINE NEXT CORE SET IF NO MATCH.
052724,000332:
052725,000333: 01,3073 50064 INDEX LOCCTR # RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE
052726,000334: 01,3074 40167 CS PRIORITY
052727,000335: 01,3075 54063 TS NEWPRIO
052728,000336: 01,3076 50064 INDEX LOCCTR
052729,000337: 01,3077 54167 TS PRIORITY
052730,000338:
052731,000339: 01,3100 44364 CS FBANKMSK # MASK UP THE 2CADR OF THE WAKE ADDRESS
052732,000340: 01,3101 70065 MASK NEWLOC # USING THE CADR IN NEWLOC AND THE EBANK
052733,000341: 01,3102 65005 AD 2K # HALF OF BBANK SAVED IN BANKSET.
052734,000342: 01,3103 56065 XCH NEWLOC
052735,000343: 01,3104 74364 MASK FBANKMSK
052736,000344: 01,3105 50064 INDEX LOCCTR
052737,000345: 01,3106 60165 AD BANKSET
052738,000346: 01,3107 54066 TS NEWLOC +1
052739,000347:
052740,000348: 01,3110 10064 CCS LOCCTR # SPECIAL TREATMENT IF THIS JOB WAS
052741,000349: 01,3111 12704 TCF SETLOC # ALREADY IN THE RUN (0) POSITION.
052742,000350: 01,3112 12674 TCF SPECTEST
052743,000351:
052744,000352: # Page 1217
052745,000353: # PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY.
052746,000354:
052747,000355: 01,3113 54164 PRIOCH2 TS LOC
052748,000356: 01,3114 35021 CAF ZERO # SET FLAG TO TELL ENDJOB SCANNER IF THIS
052749,000357: 01,3115 54130 TS BUF # JOB IS STILL HIGHEST PRIORITY.
052750,000358: 01,3116 35046 CAF LOW9
052751,000359: 01,3117 70167 MASK PRIORITY
052752,000360: 01,3120 60063 AD NEWPRIO
052753,000361: 01,3121 54167 TS PRIORITY
052754,000362: 01,3122 40000 COM
052755,000363: 01,3123 13030 TCF JOBSLP2 # AND TO EJSCAN.
052756,000364:
052757,000365: # Page 1218
052758,000366: # RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY.
052759,000367:
052760,000368: 01,3124 00004 ENDJOB1 INHINT
052761,000369: 01,3125 45021 CS ZERO
052762,000370: 01,3126 54131 TS BUF +1
052763,000371: 01,3127 56167 XCH PRIORITY
052764,000372: 01,3130 75046 MASK LOW9
052765,000373: 01,3131 54001 TS L
052766,000374:
052767,000375: 01,3132 45226 CS FAKEPRET
052768,000376: 01,3133 60001 AD L
052769,000377:
052770,000378: 01,3134 00006 EXTEND
052771,000379: 01,3135 63141 BZMF EJSCAN # NOVAC ENDOFJOB
052772,000380:
052773,000381: 01,3136 10001 CCS L
052774,000382: 01,3137 50000 INDEX A
052775,000383: 01,3140 54000 TS 0
052776,000384:
052777,000385: 01,3141 10203 EJSCAN CCS PRIORITY +12D
052778,000386: 01,3142 03206 TC EJ1
052779,000387: 01,3143 05747 TC CCSHOLE
052780,000388: 01,3144 13145 TCF +1
052781,000389:
052782,000390: 01,3145 10217 CCS PRIORITY +24D # EXAMINE EACH PRIORITY REGISTER TO FIND
052783,000391: 01,3146 03206 TC EJ1 # THE JOB OF HIGHEST ACTIVE PRIORITY.
052784,000392: 01,3147 05747 TC CCSHOLE
052785,000393: 01,3150 13151 TCF +1
052786,000394:
052787,000395: 01,3151 10233 CCS PRIORITY +36D
052788,000396: 01,3152 03206 TC EJ1
052789,000397: 01,3153 67610 -CCSPR -CCS PRIORITY
052790,000398: 01,3154 13155 TCF +1
052791,000399:
052792,000400: 01,3155 10247 CCS PRIORITY +48D
052793,000401: 01,3156 03206 TC EJ1
052794,000402: 01,3157 05747 TC CCSHOLE
052795,000403: 01,3160 13161 TCF +1
052796,000404:
052797,000405: 01,3161 10263 CCS PRIORITY +60D
052798,000406: 01,3162 03206 TC EJ1
052799,000407: 01,3163 05747 TC CCSHOLE
052800,000408: 01,3164 13165 TCF +1
052801,000409:
052802,000410: 01,3165 10277 CCS PRIORITY +72D
052803,000411: 01,3166 03206 TC EJ1
052804,000412: 01,3167 05747 TC CCSHOLE
052805,000413: 01,3170 13171 TCF +1
052806,000414:
052807,000415: # Page 1219
052808,000416: # EVALUATE THE RESULTS OF THE SCAN.
052809,000417:
052810,000418: 01,3171 10131 CCS BUF +1 # SEE IF THERE ARE ANY ACTIVE JOBS WAITING
052811,000419: 01,3172 05747 TC CCSHOLE
052812,000420: 01,3173 05747 TC CCSHOLE
052813,000421:
052814,000422: 01,3174 13176 TCF +2
052815,000423: 01,3175 13223 TCF DUMMYJOB
052816,000424: 01,3176 10130 CCS BUF # BUF IS ZERO IS THIS IS A PRIOCHNG AND
052817,000425: 01,3177 13201 TCF +2 # CHANGED PRIORITY IS STILL HIGHEST.
052818,000426: 01,3200 13005 TCF ENDPRCHG -1
052819,000427:
052820,000428: 01,3201 50000 INDEX A # OTHERWISE, SET NEWJOB TO THE RELATIVE
052821,000429: # Was CAF --- RSB 2004
052822,000430: 01,3202 27777 CA 0 -1 # ADDRESS OF THE NEW JOB'S CORE SET.
052823,000431: 01,3203 63153 AD -CCSPR
052824,000432: 01,3204 54067 TS NEWJOB
052825,000433: 01,3205 12725 TCF CHANJOB -2
052826,000434:
052827,000435: 01,3206 54132 EJ1 TS BUF +2
052828,000436: 01,3207 60131 AD BUF +1 # - OLD HIGH PRIORITY.
052829,000437: 01,3210 10000 CCS A
052830,000438: 01,3211 40132 CS BUF +2
052831,000439: 01,3212 13216 TCF EJ2 # NEW HIGH PRIORITY.
052832,000440: 01,3213 13214 NOOP
052833,000441: 01,3214 50002 INDEX Q
052834,000442: 01,3215 00002 TC 2 # PROCEED WITH SEARCH.
052835,000443:
052836,000444: 01,3216 54131 EJ2 TS BUF +1
052837,000445: 01,3217 00006 EXTEND
052838,000446: 01,3220 22130 QXCH BUF # FOR LOCATING CCS PRIORITY + X INSTR.
052839,000447: 01,3221 50130 INDEX BUF
052840,000448: 01,3222 00002 TC 2
052841,000449:
052842,000450: # Page 1220
052843,000451: # IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTIEN IS NOT A JOB IN ITSELF,
052844,000452: # BUT RATHER A SUBROUTINE OF THE EXECUTIVE.
052845,000453:
052846,000454: 01,3223 1361 EBANK= SELFRET # SELF-CHECK STORAGE IN EBANK.
052847,000455:
052848,000456: 01,3223 45021 DUMMYJOB CS ZERO # SET NEWJOB TO -0 FOR IDLING.
052849,000457: 01,3224 54067 TS NEWJOB
052850,000458: 01,3225 00003 RELINT
052851,000459: 01,3226 45016 CS TWO # TURN OFF THE ACTIVITY LIGHT.
052852,000460: 01,3227 00006 EXTEND
052853,000461: 01,3230 03011 WAND DSALMOUT
052854,000462: 01,3231 10067 ADVAN CCS NEWJOB # IS THE NEWJOB ACTIVE?
052855,000463: 01,3232 13032 TCF NUCHANG2 # YES... ONE REQUIRING A CHANGE JOB.
052856,000464: 01,3233 35016 CAF TWO # NEW JOB ALREADY IN POSITION FOR
052857,000465: 01,3234 13242 TCF NUDIRECT # EXECUTION
052858,000466:
052859,000467: 01,3235 31361 CA SELFRET
052860,000468: 01,3236 54001 TS L # PUT RETURN ADDRESS IN L.
052861,000469: 01,3237 33241 CAF SELFBANK
052862,000470: 01,3240 15230 TCF SUPDXCHZ +1 # AND DISPATCH JOB.
052863,000471:
052864,000472: 01,3241 1361 EBANK= SELFRET
052865,000473: 01,3241 66102 SELFBANK BBCON SELFCHK
052866,000474:
052867,000475: 01,3242 00006 NUDIRECT EXTEND # TURN THE GREEN LIGHT BACK ON.
052868,000476: 01,3243 05011 WOR DSALMOUT
052869,000477: 01,3244 52165 DXCH LOC # JOBS STARTED IN THIS FASHION MUST BE
052870,000478: 01,3245 15227 TCF SUPDXCHZ
052871,000479:
052872,000480: 5227 BLOCK 2 # IN FIXED-FIXED SO OTHERS MAY USE.
052873,000481:
052874,000482: 5227 COUNT 02/EXEC
052875,000483:
052876,000484: # SUPDXCHZ -- ROUTINE TO TRANSFER TO SUPERBANK.
052877,000485: # CALLING SEQUENCE:
052878,000486: # TCF SUPDXCHZ # WITH 2CADR OF DESIRED LOCATION IN A + l.
052879,000487:
052880,000488: 5227 56001 SUPDXCHZ XCH L # BASIC.
052881,000489: 5230 00006 +1 EXTEND
052882,000490: 5231 01007 WRITE SUPERBNK
052883,000491: 5232 54006 TS BBANK
052884,000492: 5233 00001 TC L
052885,000493:
052886,000494: 5234 77677 NEG100 OCT 77677
052887,000495:
052888,000496:
052889,000497:
End of include-file EXECUTIVE.agc. Parent file is MAIN.agc