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