Source Code

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