Source Code

050964,000001: # Copyright: Public domain. 050965,000002: # Filename: EXECUTIVE.agc 050966,000003: # Purpose: Part of the source code for Colossus, build 249. 050967,000004: # It is part of the source code for the Command Module's (CM) 050968,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9. 050969,000006: # Assembler: yaYUL 050970,000007: # Reference: Starts on p. 1190 of 1701.pdf. 050971,000008: # Contact: Ron Burkey <info@sandroid.org>. 050972,000009: # Website: www.ibiblio.org/apollo. 050973,000010: # Mod history: 08/28/04 RSB. Adapted from correspoinding Luminary131 file. 050974,000011: 050975,000012: # The contents of the "Colossus249" files, in general, are transcribed 050976,000013: # from a scanned document obtained from MIT's website, 050977,000014: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this 050978,000015: # document read, in part: 050979,000016: 050980,000017: # Assemble revision 249 of AGC program Colossus by NASA 050981,000018: # 2021111-041. October 28, 1968. 050982,000019: 050983,000020: # This AGC program shall also be referred to as 050984,000021: # Colossus 1A 050985,000022: 050986,000023: # Prepared by 050987,000024: # Massachussets Institute of Technology 050988,000025: # 75 Cambridge Parkway 050989,000026: # Cambridge, Massachusetts 050990,000027: # under NASA contract NAS 9-4065. 050991,000028: 050992,000029: # Refer directly to the online document mentioned above for further information. 050993,000030: # Please report any errors (relative to 1701.pdf) to info@sandroid.org. 050994,000031: 050995,000032: # In some cases, where the source code for Luminary 131 overlaps that of 050996,000033: # Colossus 249, this code is instead copied from the corresponding Luminary 131 050997,000034: # source file, and then is proofed to incorporate any changes. 050998,000035: 050999,000036: # Page 1190 051000,000037: 5027 BLOCK 02 051001,000038: 051002,000039: # TO ENTER A JOB REQUEST REQUIRING NO VAC AREA: 051003,000040: 051004,000041: 5027 COUNT 02/EXEC 051005,000042: 051006,000043: 5027 00004 NOVAC INHINT 051007,000044: 5030 65121 AD FAKEPRET # LOC(MPAC +6) - LOC(QPRET) 051008,000045: 5031 54063 TS NEWPRIO # PRIORITY OF NEW JOB + NOVAC C(FIXLOC) 051009,000046: 051010,000047: 5032 00006 EXTEND 051011,000048: 5033 50002 INDEX Q # Q WILL BE UNDISTURBED THROUGHOUT. 051012,000049: 5034 30001 DCA 0 # 2CADR OF JOB ENTERED. 051013,000050: 5035 52066 DXCH NEWLOC 051014,000051: 5036 35120 CAF EXECBANK 051015,000052: 5037 56004 XCH FBANK 051016,000053: 5040 54061 TS EXECTEM1 051017,000054: 5041 12650 TCF NOVAC2 # ENTER EXECUTIVE BANK. 051018,000055: 051019,000056: # TO ENTER A JOB REQUEST REQUIREING A VAC AREA -- E.G., ALL (PARTIALLY) INTERPRETIVE JOBS. 051020,000057: 051021,000058: 5042 00004 FINDVAC INHINT 051022,000059: 5043 54063 TS NEWPRIO 051023,000060: 5044 00006 EXTEND 051024,000061: 5045 50002 INDEX Q 051025,000062: 5046 30001 DCA 0 051026,000063: 5047 52066 SPVACIN DXCH NEWLOC 051027,000064: 5050 35120 CAF EXECBANK 051028,000065: 5051 56004 XCH FBANK 051029,000066: 5052 12626 TCF FINDVAC2 # OFF TO EXECUTIVE SWITCHED-BANK. 051030,000067: 051031,000068: # TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L: 051032,000069: # USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO. 051033,000070: 051034,000071: 5053 56002 SPVAC XCH Q 051035,000072: 5054 67715 AD NEG2 051036,000073: 5055 56002 XCH Q 051037,000074: 5056 15047 TCF SPVACIN 051038,000075: 051039,000076: # TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED: 051040,000077: 051041,000078: 5057 22002 CHANG1 LXCH Q 051042,000079: 5060 35120 CAF EXECBANK 051043,000080: 5061 56006 XCH BBANK 051044,000081: 5062 12727 TCF CHANJOB 051045,000082: 051046,000083: # TO SUSPEND AN INTERPRETIVE JOB: 051047,000084: 051048,000085: 5063 40164 CHANG2 CS LOC # NEGATIVE LOC SHOWS JOB = INTERPRETIVE. 051049,000086: 051050,000087: # ITRACE (4) REFERS TO "CHANG2" 051051,000088: # Page 1191 051052,000089: 5064 54001 TS L 051053,000090: 5065 35120 +2 CAF EXECBANK 051054,000091: 5066 54006 TS BBANK 051055,000092: 5067 12726 TCF CHANJOB -1 051056,000093: 051057,000094: # Page 1192 051058,000095: # TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.): 051059,000096: 051060,000097: 5070 54164 JOBSLEEP TS LOC 051061,000098: 5071 35120 CAF EXECBANK 051062,000099: 5072 54004 TS FBANK 051063,000100: 5073 13017 TCF JOBSLP1 051064,000101: 051065,000102: # TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION: 051066,000103: 051067,000104: 5074 00004 JOBWAKE INHINT 051068,000105: 5075 54065 TS NEWLOC 051069,000106: 5076 44711 CS TWO # EXIT IS VIA FINDVAC/NOVAC PROCEDURES. 051070,000107: 5077 26002 ADS Q 051071,000108: 5100 35120 CAF EXECBANK 051072,000109: 5101 56004 XCH FBANK 051073,000110: 5102 13044 TCF JOBWAKE2 051074,000111: 051075,000112: # TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION: 051076,000113: 051077,000114: 5103 00004 PRIOCHNG INHINT # NEW PRIORITY ARRIVES IN A. RETURNS TO 051078,000115: 5104 54063 TS NEWPRIO # CALLER AS SOON AS NEW JOB PRIORITY IS 051079,000116: 5105 35120 CAF EXECBANK # HIGHEST. PREPARE FOR POSSIBLE BASIC- 051080,000117: 5106 56006 XCH BBANK # STYLE CHANGE-JOB. 051081,000118: 5107 54165 TS BANKSET 051082,000119: 5110 30002 CA Q 051083,000120: 5111 13113 TCF PRIOCH2 051084,000121: 051085,000122: # TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS: 051086,000123: 051087,000124: 5112 35120 ENDOFJOB CAF EXECBANK 051088,000125: 5113 54004 TS FBANK 051089,000126: 5114 13124 TCF ENDJOB1 051090,000127: 051091,000128: 5115 30061 ENDFIND CA EXECTEM1 # RETURN TO CALLER AFTER JOB ENTRY 051092,000129: 5116 54004 TS FBANK # COMPLETE. 051093,000130: 5117 16710 TCF Q+2 051094,000131: 5120 02626 EXECBANK CADR FINDVAC2 051095,000132: 051096,000133: 5121 00110 FAKEPRET ADRES MPAC -36D # LOC(MPAC +6) - LOC(QPRET) 051097,000134: 051098,000135: # Page 1193 051099,000136: # LOCATE AN AVAILABLE VAC AREA 051100,000137: 051101,000138: 01,2626 BANK 01 051102,000139: 01,2626 COUNT 01/EXEC 051103,000140: 051104,000141: 01,2626 54061 FINDVAC2 TS EXECTEM1 # (SAVE CALLER'S BANK FIRST.) 051105,000142: 01,2627 10400 CCS VAC1USE 051106,000143: 01,2630 12643 TCF VACFOUND 051107,000144: 01,2631 10454 CCS VAC2USE 051108,000145: 01,2632 12643 TCF VACFOUND 051109,000146: 01,2633 10530 CCS VAC3USE 051110,000147: 01,2634 12643 TCF VACFOUND 051111,000148: 01,2635 10604 CCS VAC4USE 051112,000149: 01,2636 12643 TCF VACFOUND 051113,000150: 01,2637 10660 CCS VAC5USE 051114,000151: 01,2640 12643 TCF VACFOUND 051115,000152: 01,2641 05604 TC BAILOUT 051116,000153: 01,2642 01201 OCT 1201 # NO VAC AREAS. 051117,000154: 051118,000155: 01,2643 64711 VACFOUND AD TWO # RESERVE THIS VAC AREA BY STORING A ZERO 051119,000156: 01,2644 22007 ZL # IN ITS VAC USE REGISTER AND STORE THE 051120,000157: 01,2645 50000 INDEX A # ADDRESS OF THE FIRST WORD OF IT IN THE 051121,000158: 01,2646 21777 LXCH 0 -1 # LOW NINE BITS OF THE PRIORITY WORD. 051122,000159: 01,2647 26063 ADS NEWPRIO 051123,000160: 051124,000161: 01,2650 34714 NOVAC2 CAF ZERO # NOVAC ENTERS HERE. FIND A CORE SET. 051125,000162: 01,2651 54064 TS LOCCTR 051126,000163: 01,2652 32657 CAF NO.CORES # SEVEN SETS OF ELEVEN REGISTERS ECH. 051127,000164: 01,2653 54062 NOVAC3 TS EXECTEM2 051128,000165: 01,2654 50064 INDEX LOCCTR 051129,000166: 01,2655 10167 CCS PRIORITY # EACH PRIORITY REGISTER CONTAINS -0 IF 051130,000167: 01,2656 12717 TCF NEXTCORE # THE CORESPONDING CORE SET IS AVAILABLE. 051131,000168: 01,2657 00006 NO.CORES DEC 6 B-14 051132,000169: 01,2660 12717 TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY 051133,000170: # BUT A DORMANT JOB'S PRIORITY IS NEGATIVE 051134,000171: 051135,000172: # Page 1194 051136,000173: 01,2661 30063 CORFOUND CA NEWPRIO # SET THE PRIORITY OF THIS JOB IN THE CORE 051137,000174: 01,2662 50064 INDEX LOCCTR # SET'S PRIORITY REGISTER AND SET THE 051138,000175: 01,2663 54167 TS PRIORITY # JOB'S PUSH-DOWN POINTER AT THE BEGINNING 051139,000176: 01,2664 74741 MASK LOW9 # OF THE WORK AREA AND OVERFLOW INDICATOR. 051140,000177: 01,2665 50064 INDEX LOCCTR 051141,000178: 01,2666 54166 TS PUSHLOC # OFF TO PREPARE FOR INTERPRETIVE PROGRAMS. 051142,000179: 051143,000180: 01,2667 10064 CCS LOCCTR # IF CORE SET ZERO IS BEING LOADED, SET UP 051144,000181: 01,2670 12704 TCF SETLOC # OVFIND AND FIXLOC IMMEDIATELY. 051145,000182: 01,2671 54121 TS OVFIND 051146,000183: 01,2672 30166 CA PUSHLOC 051147,000184: 01,2673 54120 TS FIXLOC 051148,000185: 051149,000186: 01,2674 10067 SPECTEST CCS NEWJOB # SEE IF ANY ACTIVE JOBS WAITING (RARE). 051150,000187: 01,2675 12704 TCF SETLOC # MUST BE AWAKENED OUT UNCHANGED JOB. 051151,000188: 01,2676 05640 TC CCSHOLE 051152,000189: 01,2677 05640 TC CCSHOLE 051153,000190: 01,2700 54067 TS NEWJOB # +0 SHOWS ACTIVE JOB ALREADY SET. 051154,000191: 01,2701 52066 DXCH NEWLOC 051155,000192: 01,2702 52165 DXCH LOC 051156,000193: 01,2703 15115 TCF ENDFIND 051157,000194: 051158,000195: 01,2704 52066 SETLOC DXCH NEWLOC # SET UP THE LOCATION REGISTERS FOR THIS 051159,000196: 01,2705 50064 INDEX LOCCTR 051160,000197: 01,2706 52165 DXCH LOC 051161,000198: 01,2707 50067 INDEX NEWJOB # THIS INDEX INSTRUCTION INSURES THAT THE 051162,000199: 01,2710 40167 CS PRIORITY # HIGHEST ACTIVE PRIORITY WILL BE COMPARED 051163,000200: 01,2711 60063 AD NEWPRIO # WITH THE NEW PRIORITY TO SEE IF NEWJOB 051164,000201: 01,2712 00006 EXTEND # SHOULD BE SET TO SIGNAL A SWITCH. 051165,000202: 01,2713 65115 BZMF ENDFIND 051166,000203: 01,2714 30064 CA LOCCTR # LOCCTR IS LEFT SET AT THIS CORE SET IF 051167,000204: 01,2715 54067 TS NEWJOB # THE CALLER WANTS TO LOAD ANY MPAC 051168,000205: 01,2716 15115 TCF ENDFIND # REGISTERS, ETC. 051169,000206: 051170,000207: 01,2717 33054 NEXTCORE CAF COREINC 051171,000208: 01,2720 26064 ADS LOCCTR 051172,000209: 01,2721 10062 CCS EXECTEM2 051173,000210: 01,2722 12653 TCF NOVAC3 051174,000211: 01,2723 05604 TC BAILOUT # NO CORE SETS AVAILABLE. 051175,000212: 01,2724 01202 OCT 1202 051176,000213: # Page 1195 051177,000214: # THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB. 051178,000215: 051179,000216: 01,2725 22164 -2 LXCH LOC 051180,000217: 01,2726 30165 -1 CAE BANKSET # BANKSET, NOT BBANK, HAS RIGHT CONTENTS. 051181,000218: 01,2727 00004 CHANJOB INHINT 051182,000219: 01,2730 00006 EXTEND 051183,000220: 01,2731 04007 ROR SUPERBNK # PICK UP CURRENT SBANK FOR BBCON 051184,000221: 01,2732 56001 XCH L # LOC IN A AND BBCON IN L. 051185,000222: 01,2733 50067 +4 INDEX NEWJOB 051186,000223: 01,2734 52165 DXCH LOC 051187,000224: 01,2735 52165 DXCH LOC 051188,000225: 051189,000226: 01,2736 30165 CAE BANKSET 051190,000227: 01,2737 00006 EXTEND 051191,000228: 01,2740 01007 WRITE SUPERBNK # SET SBANK FOR NEW JOB. 051192,000229: 01,2741 52155 DXCH MPAC # SWAP MULTI-PURPOSE ACCUMULATOR AREAS. 051193,000230: 01,2742 50067 INDEX NEWJOB 051194,000231: 01,2743 52155 DXCH MPAC 051195,000232: 01,2744 52155 DXCH MPAC 051196,000233: 01,2745 52157 DXCH MPAC +2 051197,000234: 01,2746 50067 INDEX NEWJOB 051198,000235: 01,2747 52157 DXCH MPAC +2 051199,000236: 01,2750 52157 DXCH MPAC +2 051200,000237: 01,2751 52161 DXCH MPAC +4 051201,000238: 01,2752 50067 INDEX NEWJOB 051202,000239: 01,2753 52161 DXCH MPAC +4 051203,000240: 01,2754 52161 DXCH MPAC +4 051204,000241: 01,2755 52163 DXCH MPAC +6 051205,000242: 01,2756 50067 INDEX NEWJOB 051206,000243: 01,2757 52163 DXCH MPAC +6 051207,000244: 01,2760 52163 DXCH MPAC +6 051208,000245: 051209,000246: 01,2761 34714 CAF ZERO 051210,000247: 01,2762 56121 XCH OVFIND # MAKE PUSHLOC NEGATIVE IF OVFIND NZ. 051211,000248: 01,2763 00006 EXTEND 051212,000249: 01,2764 12767 BZF +3 051213,000250: 01,2765 40166 CS PUSHLOC 051214,000251: 01,2766 54166 TS PUSHLOC 051215,000252: 051216,000253: 01,2767 52167 DXCH PUSHLOC 051217,000254: 01,2770 50067 INDEX NEWJOB 051218,000255: 01,2771 52167 DXCH PUSHLOC 051219,000256: 01,2772 52167 DXCH PUSHLOC # SWAPS PUSHLOC AND PRIORITY. 051220,000257: 01,2773 34741 CAF LOW9 # SET FIXLOC TO BASE OF VAC AREA. 051221,000258: 01,2774 70167 MASK PRIORITY 051222,000259: 01,2775 54120 TS FIXLOC 051223,000260: 051224,000261: 01,2776 10166 CCS PUSHLOC # SET OVERFLOW INDICATOR ACCORDING TO 051225,000262: 01,2777 34714 CAF ZERO 051226,000263: 01,3000 13005 TCF ENDPRCHG -1 051227,000264: 051228,000265: # Page 1196 051229,000266: 01,3001 40166 CS PUSHLOC 051230,000267: 01,3002 54166 TS PUSHLOC 051231,000268: 01,3003 34712 CAF ONE 051232,000269: 01,3004 56121 XCH OVFIND 051233,000270: 01,3005 54067 TS NEWJOB 051234,000271: 051235,000272: 01,3006 00003 ENDPRCHG RELINT 051236,000273: 01,3007 52165 DXCH LOC # BASIC JOBS HAVE POSITIVE ADDRESSES, SO 051237,000274: 01,3010 00006 EXTEND # DISPATCH WITH A DTCB. 051238,000275: 01,3011 63013 BZMF +2 # IF INTERPRETIVE, SET UP EBANK, ETC. 051239,000276: 01,3012 52006 DTCB 051240,000277: # Page 1197 051241,000278: 01,3013 40000 COM # EPILOGUE TO JOB CHANGE FOR INTERPRETIVE 051242,000279: 01,3014 64712 AD ONE 051243,000280: 01,3015 54164 TS LOC # RESUME 051244,000281: 01,3016 16017 TCF INTRSM 051245,000282: 051246,000283: # COMPLETE JOBSLEEP PREPARATIONS. 051247,000284: 051248,000285: 01,3017 00004 JOBSLP1 INHINT 051249,000286: 01,3020 40167 CS PRIORITY # NNZ PRIORITY SHOWS JOB ASLEEP. 051250,000287: 01,3021 54167 TS PRIORITY 051251,000288: 01,3022 36043 CAF LOW7 051252,000289: 01,3023 70006 MASK BBANK 051253,000290: 01,3024 00006 EXTEND 051254,000291: 01,3025 04007 ROR SUPERBNK # SAVE OLD SUPERBANK VALUE. 051255,000292: 01,3026 54165 TS BANKSET 051256,000293: 01,3027 44714 CS ZERO 051257,000294: 01,3030 54131 JOBSLP2 TS BUF +1 # HOLDS -- HIGHEST PRIORITY. 051258,000295: 01,3031 13141 TCF EJSCAN # SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB. 051259,000296: 051260,000297: 01,3032 00004 NUCHANG2 INHINT # QUICK... DON'T LET NEWJOB CHANGE TO +0. 051261,000298: 01,3033 10067 CCS NEWJOB 051262,000299: 01,3034 13037 TCF +3 # NEWJOB STILL PNZ 051263,000300: 01,3035 00003 RELINT # NEW JOB HAS CHANGED TO +0. WAKE UP JOB 051264,000301: 01,3036 13233 TCF ADVAN +2 # VIA NUDIRECT. (VERY RARE CASE.) 051265,000302: 051266,000303: 01,3037 34711 CAF TWO 051267,000304: 01,3040 00006 EXTEND 051268,000305: 01,3041 05011 WOR DSALMOUT # TURN ON ACTIVITY LIGHT 051269,000306: 01,3042 52165 DXCH LOC # AND SAVE ADDRESS INFO FOR BENEFIT OF 051270,000307: 01,3043 12733 TCF CHANJOB +4 # POSSIBLE SLEEPINT JOB. 051271,000308: 051272,000309: # Page 1198 051273,000310: # TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE 051274,000311: # LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND, 051275,000312: # LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE. 051276,000313: 051277,000314: 01,3044 54061 JOBWAKE2 TS EXECTEM1 051278,000315: 01,3045 34714 CAF ZERO # BEGIN CORE SET SCAN 051279,000316: 01,3046 54064 TS LOCCTR 051280,000317: 01,3047 32657 CAF NO.CORES 051281,000318: 01,3050 54062 JOBWAKE4 TS EXECTEM2 051282,000319: 01,3051 50064 INDEX LOCCTR 051283,000320: 01,3052 10167 CCS PRIORITY 051284,000321: 01,3053 13056 TCF JOBWAKE3 # ACTIVE JOB -- CHECK NEXT CORE SET. 051285,000322: 01,3054 00014 COREINC DEC 12 B-14 # 12 REGISTERS PER CORE SET. 051286,000323: 01,3055 13065 TCF WAKETEST # SLEEPING JOB -- SEE IF CADR MATCHES. 051287,000324: 051288,000325: 01,3056 33054 JOBWAKE3 CAF COREINC 051289,000326: 01,3057 26064 ADS LOCCTR 051290,000327: 01,3060 10062 CCS EXECTEM2 051291,000328: 01,3061 13050 TCF JOBWAKE4 051292,000329: 01,3062 44712 CS ONE # EXIT IF SLEEPIN JOB NOT FOUND. 051293,000330: 01,3063 54064 TS LOCCTR 051294,000331: 01,3064 15115 TCF ENDFIND 051295,000332: 051296,000333: 01,3065 40065 WAKETEST CS NEWLOC 051297,000334: 01,3066 50064 INDEX LOCCTR 051298,000335: 01,3067 60164 AD LOC 051299,000336: 01,3070 00006 EXTEND 051300,000337: 01,3071 13073 BZF +2 # IF MATCH. 051301,000338: 01,3072 13056 TCF JOBWAKE3 # EXAMINE NEXT CORE SET IF NO MATCH. 051302,000339: 051303,000340: 01,3073 50064 INDEX LOCCTR # RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE 051304,000341: 01,3074 40167 CS PRIORITY 051305,000342: 01,3075 54063 TS NEWPRIO 051306,000343: 01,3076 50064 INDEX LOCCTR 051307,000344: 01,3077 54167 TS PRIORITY 051308,000345: 051309,000346: 01,3100 44364 CS FBANKMSK # MASK UP THE 2CADR OF THE WAKE ADDRESS 051310,000347: 01,3101 70065 MASK NEWLOC # USING THE CADR IN NEWLOC AND THE EBANK 051311,000348: 01,3102 64700 AD 2K # HALF OF BBANK SAVED IN BANKSET. 051312,000349: 01,3103 56065 XCH NEWLOC 051313,000350: 01,3104 74364 MASK FBANKMSK 051314,000351: 01,3105 50064 INDEX LOCCTR 051315,000352: 01,3106 60165 AD BANKSET 051316,000353: 01,3107 54066 TS NEWLOC +1 051317,000354: 051318,000355: 01,3110 10064 CCS LOCCTR # SPECIAL TREATMENT IF THIS JOB WAS 051319,000356: 01,3111 12704 TCF SETLOC # ALREADY IN THE RUN (0) POSITION. 051320,000357: 01,3112 12674 TCF SPECTEST 051321,000358: 051322,000359: # Page 1199 051323,000360: # PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY. 051324,000361: 051325,000362: 01,3113 54164 PRIOCH2 TS LOC 051326,000363: 01,3114 34714 CAF ZERO # SET FLAG TO TELL ENDJOB SCANNER IF THIS 051327,000364: 01,3115 54130 TS BUF # JOB IS STILL HIGHEST PRIORITY. 051328,000365: 01,3116 34741 CAF LOW9 051329,000366: 01,3117 70167 MASK PRIORITY 051330,000367: 01,3120 60063 AD NEWPRIO 051331,000368: 01,3121 54167 TS PRIORITY 051332,000369: 01,3122 40000 COM 051333,000370: 01,3123 13030 TCF JOBSLP2 # AND TO EJSCAN. 051334,000371: 051335,000372: # Page 1200 051336,000373: # RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY. 051337,000374: 051338,000375: 01,3124 00004 ENDJOB1 INHINT 051339,000376: 01,3125 44714 CS ZERO 051340,000377: 01,3126 54131 TS BUF +1 051341,000378: 01,3127 56167 XCH PRIORITY 051342,000379: 01,3130 74741 MASK LOW9 051343,000380: 01,3131 54001 TS L 051344,000381: 051345,000382: 01,3132 45121 CS FAKEPRET 051346,000383: 01,3133 60001 AD L 051347,000384: 051348,000385: 01,3134 00006 EXTEND 051349,000386: 01,3135 63141 BZMF EJSCAN # NOVAC ENDOFJOB 051350,000387: 051351,000388: 01,3136 10001 CCS L 051352,000389: 01,3137 50000 INDEX A 051353,000390: 01,3140 54000 TS 0 051354,000391: 051355,000392: 01,3141 10203 EJSCAN CCS PRIORITY +12D 051356,000393: 01,3142 03206 TC EJ1 051357,000394: 01,3143 05640 TC CCSHOLE 051358,000395: 01,3144 13145 TCF +1 051359,000396: 051360,000397: 01,3145 10217 CCS PRIORITY +24D # EXAMINE EACH PRIORITY REGISTER TO FIND 051361,000398: 01,3146 03206 TC EJ1 # THE JOB OF HIGHEST ACTIVE PRIORITY. 051362,000399: 01,3147 05640 TC CCSHOLE 051363,000400: 01,3150 13151 TCF +1 051364,000401: 051365,000402: 01,3151 10233 CCS PRIORITY +36D 051366,000403: 01,3152 03206 TC EJ1 051367,000404: 01,3153 67610 -CCSPR -CCS PRIORITY 051368,000405: 01,3154 13155 TCF +1 051369,000406: 051370,000407: 01,3155 10247 CCS PRIORITY +48D 051371,000408: 01,3156 03206 TC EJ1 051372,000409: 01,3157 05640 TC CCSHOLE 051373,000410: 01,3160 13161 TCF +1 051374,000411: 051375,000412: 01,3161 10263 CCS PRIORITY +60D 051376,000413: 01,3162 03206 TC EJ1 051377,000414: 01,3163 05640 TC CCSHOLE 051378,000415: 01,3164 13165 TCF +1 051379,000416: 051380,000417: 01,3165 10277 CCS PRIORITY +72D 051381,000418: 01,3166 03206 TC EJ1 051382,000419: 01,3167 05640 TC CCSHOLE 051383,000420: 01,3170 13171 TCF +1 051384,000421: 051385,000422: # Page 1201 051386,000423: # EVALUATE THE RESULTS OF THE SCAN. 051387,000424: 051388,000425: 01,3171 10131 CCS BUF +1 # SEE IF THERE ARE ANY ACTIVE JOBS WAITING 051389,000426: 01,3172 05640 TC CCSHOLE 051390,000427: 01,3173 05640 TC CCSHOLE 051391,000428: 051392,000429: 01,3174 13176 TCF +2 051393,000430: 01,3175 13223 TCF DUMMYJOB 051394,000431: 01,3176 10130 CCS BUF # BUF IS ZERO IS THIS IS A PRIOCHNG AND 051395,000432: 01,3177 13201 TCF +2 # CHANGED PRIORITY IS STILL HIGHEST. 051396,000433: 01,3200 13005 TCF ENDPRCHG -1 051397,000434: 051398,000435: 01,3201 50000 INDEX A # OTHERWISE, SE NEWJOB TO THE RELATIVE 051399,000436: # Was CAF --- RSB 2004 051400,000437: 01,3202 27777 CA 0 -1 # ADDRESS OF THE NEW JOB'S CORE SET. 051401,000438: 01,3203 63153 AD -CCSPR 051402,000439: 01,3204 54067 TS NEWJOB 051403,000440: 01,3205 12725 TCF CHANJOB -2 051404,000441: 051405,000442: 01,3206 54132 EJ1 TS BUF +2 051406,000443: 01,3207 60131 AD BUF +1 # - OLD HIGH PRIORITY. 051407,000444: 01,3210 10000 CCS A 051408,000445: 01,3211 40132 CS BUF +2 051409,000446: 01,3212 13216 TCF EJ2 # NEW HIGH PRIORITY. 051410,000447: 01,3213 13214 NOOP 051411,000448: 01,3214 50002 INDEX Q 051412,000449: 01,3215 00002 TC 2 # PROCEED WITH SEARCH. 051413,000450: 051414,000451: 01,3216 54131 EJ2 TS BUF +1 051415,000452: 01,3217 00006 EXTEND 051416,000453: 01,3220 22130 QXCH BUF # FOR LOCATING CCS PRIORITY + X INSTR. 051417,000454: 01,3221 50130 INDEX BUF 051418,000455: 01,3222 00002 TC 2 051419,000456: 051420,000457: # Page 1202 051421,000458: # IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTIEN IS NOT A JOB IN ITSELF, 051422,000459: # BUT RATHER A SUBROUTINE OF THE EXECUTIVE. 051423,000460: 051424,000461: 01,3223 1361 EBANK= SELFRET # SELF-CHECK STORAE IN EBANK. 051425,000462: 051426,000463: 01,3223 44714 DUMMYJOB CS ZERO # SET NEWJOB TO -0 FOR IDLING. 051427,000464: 01,3224 54067 TS NEWJOB 051428,000465: 01,3225 00003 RELINT 051429,000466: 01,3226 44711 CS TWO # TURN OFF THE ACTIVITY LIGHT. 051430,000467: 01,3227 00006 EXTEND 051431,000468: 01,3230 03011 WAND DSALMOUT 051432,000469: 01,3231 10067 ADVAN CCS NEWJOB # IS THE NEWJOB ACTIVE? 051433,000470: 01,3232 13032 TCF NUCHANG2 # YES... ONE REQUIRING A CHANGE JOB. 051434,000471: 01,3233 34711 CAF TWO # NEW JOB ALREADY IN POSITION FOR 051435,000472: 01,3234 13242 TCF NUDIRECT # EXECUTION 051436,000473: 051437,000474: 01,3235 31361 CA SELFRET 051438,000475: 01,3236 54001 TS L # PUT RETURN ADDRESS IN L. 051439,000476: 01,3237 33241 CAF SELFBANK 051440,000477: 01,3240 15123 TCF SUPDXCHZ +1 # AND DISPATCH JOB. 051441,000478: 051442,000479: 01,3241 1361 EBANK= SELFRET 051443,000480: 01,3241 66102 SELFBANK BBCON SELFCHK 051444,000481: 051445,000482: 01,3242 00006 NUDIRECT EXTEND # TURN THE GREEN LIGHT BACK ON. 051446,000483: 01,3243 05011 WOR DSALMOUT 051447,000484: 01,3244 52165 DXCH LOC # JOBS STARTED IN THIS FASHION MUST BE 051448,000485: 01,3245 15122 TCF SUPDXCHZ 051449,000486: 051450,000487: 5122 BLOCK 2 # IN FIXED-FIXED SO OTHERS MAY USE. 051451,000488: 051452,000489: 5122 COUNT 02/EXEC 051453,000490: 051454,000491: # SUPDXCHZ -- ROUTINE TO TRANSFER TO SUPEBANK. 051455,000492: # CALLING SEQUENCE: 051456,000493: # TCF SUPDXCHZ # WITH 2CADR OF DESIRED LOCATION IN A + l. 051457,000494: 051458,000495: 5122 56001 SUPDXCHZ XCH L # BASIC. 051459,000496: 5123 00006 +1 EXTEND 051460,000497: 5124 01007 WRITE SUPERBNK 051461,000498: 5125 54006 TS BBANK 051462,000499: 5126 00001 TC L 051463,000500: 051464,000501: 5127 77677 NEG100 OCT 77677 051465,000502: 051466,000503: 051467,000504: End of include-file EXECUTIVE.agc. Parent file is MAIN.agc