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