Source Code
![]() |
These source-code files derive from a printout of Luminary 210 (Apollo 15-17
Lunar Module guidance computer program), from the personal library of
original AGC developer Don Eyles, digitally photographed at archive.org,
financially sponsored by Jim Lawton, and transcribed to source code by a
team of volunteers. This colorized, syntax-highlighted form was created
by assembling that transcribed source code. Note that the full page images
are available on the
Virtual AGC project page at archive.org, while reduced-size images
are presented at the VirtualAGC project website. Report or fix any
transcription errors at
the Virtual AGC project code repository. Notations on the program listing read, in part: GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY BY NASA 2021112-161 17:11 MAR. 19,1971Note that the date is the date of the printout, not the date of the program revision. |
047438,000002: ## Copyright: Public domain.
047439,000003: ## Filename: EXECUTIVE.agc
047440,000004: ## Purpose: A section of Luminary revision 210.
047441,000005: ## It is part of the source code for the Lunar Module's (LM)
047442,000006: ## Apollo Guidance Computer (AGC) for Apollo 15-17.
047443,000007: ## This file is intended to be a faithful transcription, except
047444,000008: ## that the code format has been changed to conform to the
047445,000009: ## requirements of the yaYUL assembler rather than the
047446,000010: ## original YUL assembler.
047447,000011: ## Reference: pp. 1101-1114
047448,000012: ## Assembler: yaYUL
047449,000013: ## Contact: Ron Burkey <info@sandroid.org>.
047450,000014: ## Website: www.ibiblio.org/apollo/index.html
047451,000015: ## Mod history: 2016-11-17 JL Created from Luminary131 version.
047452,000016: ## 2016-11-18 MAS Transcribed.
047453,000017: ## 2016-12-26 RSB Comment-text proofed using ProoferComments
047454,000018: ## and corrected errors found.
047455,000019: ## 2017-03-15 RSB Comment-text fixes identified in 5-way
047456,000020: ## side-by-side diff of Luminary 69/99/116/131/210.
047457,000021:
![]() |
Page 1101 |
047459,000023: 5063 BLOCK 02
047460,000024: # TO ENTER A JOB REQUEST REQUIRING NO VAC AREA:
047461,000025:
047462,000026: 5063 COUNT* $$/EXEC
047463,000027: 5063 00004 NOVAC INHINT
047464,000028: 5064 65155 AD FAKEPRET # LOC(MPAC +6) - LOC(QPRET)
047465,000029: 5065 54063 TS NEWPRIO # PRIORITY OF NEW JOB + NOVAC C(FIXLOC)
047466,000030:
047467,000031: 5066 00006 EXTEND
047468,000032: 5067 50002 INDEX Q # Q WILL BE UNDISTURBED THROUGHOUT.
047469,000033: 5070 30001 DCA 0 # 2CADR OF JOB ENTERED.
047470,000034: 5071 52066 DXCH NEWLOC
047471,000035: 5072 35154 CAF EXECBANK
047472,000036: 5073 56004 XCH FBANK
047473,000037: 5074 54061 TS EXECTEM1
047474,000038: 5075 12631 TCF NOVAC2 # ENTER EXECUTIVE BANK.
047475,000039:
047476,000040: # TO ENTER A JOB REQUEST REQUIRING A VAC AREA - E.G., ALL (PARTIALLY) INTERPRETIVE JOBS.
047477,000041:
047478,000042: 5076 00004 FINDVAC INHINT
047479,000043: 5077 54063 TS NEWPRIO
047480,000044: 5100 00006 EXTEND
047481,000045: 5101 50002 INDEX Q
047482,000046: 5102 30001 DCA 0
047483,000047: 5103 52066 SPVACIN DXCH NEWLOC
047484,000048: 5104 35154 CAF EXECBANK
047485,000049: 5105 56004 XCH FBANK
047486,000050: 5106 12605 TCF FINDVAC2 # OFF TO EXECUTIVE SWITCHED-BANK.
047487,000051:
047488,000052: # TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L:
047489,000053:
047490,000054: # USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO.
047491,000055:
047492,000056: 5107 56002 SPVAC XCH Q
047493,000057: 5110 67767 AD NEG2
047494,000058: 5111 56002 XCH Q
047495,000059: 5112 15103 TCF SPVACIN
047496,000060:
047497,000061: # TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED:
047498,000062:
047499,000063: 5113 22002 CHANG1 LXCH Q
047500,000064: 5114 35154 CAF EXECBANK
047501,000065: 5115 56006 XCH BBANK
047502,000066: 5116 12712 TCF CHANJOB
047503,000067:
047504,000068: # TO SUSPEND AN INTERPRETIVE JOB:
047505,000069:
047506,000070: 5117 40164 CHANG2 CS LOC # NEGATIVE LOC SHOWS JOB = INTERPRETIVE.
047507,000071: # ITRACE (4) REFERS TO "CHANG2".
047508,000072: 5120 54001 TS L
![]() |
Page 1102 |
047510,000074: 5121 35154 +2 CAF EXECBANK
047511,000075: 5122 54006 TS BBANK
047512,000076: 5123 12711 TCF CHANJOB -1
047513,000077:
![]() |
Page 1103 |
047515,000079: # TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.):
047516,000080:
047517,000081: 5124 54164 JOBSLEEP TS LOC
047518,000082: 5125 35154 CAF EXECBANK
047519,000083: 5126 54004 TS FBANK
047520,000084: 5127 13002 TCF JOBSLP1
047521,000085:
047522,000086: # TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION:
047523,000087:
047524,000088: 5130 00004 JOBWAKE INHINT
047525,000089: 5131 54065 TS NEWLOC
047526,000090: 5132 44743 CS TWO # EXIT IS VIA FINDVAC/NOVAC PROCEDURES.
047527,000091: 5133 26002 ADS Q
047528,000092: 5134 35154 CAF EXECBANK
047529,000093: 5135 56004 XCH FBANK
047530,000094: 5136 13027 TCF JOBWAKE2
047531,000095:
047532,000096: # TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION:
047533,000097:
047534,000098: 5137 00004 PRIOCHNG INHINT # NEW PRIORITY ARRIVES IN A. RETURNS TO
047535,000099: 5140 54063 TS NEWPRIO # CALLER AS SOON AS NEW JOB PRIORITY IS
047536,000100: 5141 35154 CAF EXECBANK # HIGHEST. PREPARE FOR POSSIBLE BASIC-
047537,000101: 5142 56006 XCH BBANK # STYLE CHANGE-JOB.
047538,000102: 5143 54165 TS BANKSET
047539,000103: 5144 30002 CA Q
047540,000104: 5145 13076 TCF PRIOCH2
047541,000105:
047542,000106: # TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS:
047543,000107:
047544,000108: 5146 35154 ENDOFJOB CAF EXECBANK
047545,000109: 5147 54004 TS FBANK
047546,000110: 5150 13107 TCF ENDJOB1
047547,000111:
047548,000112: 5151 30061 ENDFIND CA EXECTEM1 # RETURN TO CALLER AFTER JOB ENTRY
047549,000113: 5152 54004 TS FBANK # COMPLETE.
047550,000114: 5153 16762 TCF Q+2
047551,000115: 5154 02605 EXECBANK CADR FINDVAC2
047552,000116:
047553,000117: 5155 00110 FAKEPRET ADRES MPAC -36D # LOC(MPAC +6) - LOC(QPRET)
047554,000118:
047555,000119: # TO CHANGE A "FINDVAC" JOB TO A "NOVAC" -- RELEASE ITS VAC AREA:
047556,000120: 5156 30167 VACRLEAS CA PRIORITY # CHANGE TO NOVAC VALUE
047557,000121: 5157 77746 MASK PRIO37
047558,000122: 5160 65155 AD FAKEPRET
047559,000123: 5161 56167 XCH PRIORITY
047560,000124: 5162 74775 MASK LOW9
047561,000125: 5163 10000 CCS A
047562,000126: 5164 50000 INDEX A
047563,000127: 5165 54000 TS 0 # RELEASE VAC AREA
047564,000128: 5166 00002 TC Q
047565,000129:
![]() |
Page 1104 |
047567,000131: # LOCATE AN AVAILABLE VAC AREA.
047568,000132:
047569,000133: 01,2605 BANK 01
047570,000134: 01,2605 COUNT* $$/EXEC
047571,000135: 01,2605 54061 FINDVAC2 TS EXECTEM1 # (SAVE CALLER'S BANK FIRST.)
047572,000136: 01,2606 10400 CCS VAC1USE
047573,000137: 01,2607 12624 TCF VACFOUND
047574,000138: 01,2610 10454 CCS VAC2USE
047575,000139: 01,2611 12624 TCF VACFOUND
047576,000140: 01,2612 10530 CCS VAC3USE
047577,000141: 01,2613 12624 TCF VACFOUND
047578,000142: 01,2614 10604 CCS VAC4USE
047579,000143: 01,2615 12624 TCF VACFOUND
047580,000144: 01,2616 10660 CCS VAC5USE
047581,000145: 01,2617 12624 TCF VACFOUND
047582,000146: 01,2620 22061 LXCH EXECTEM1
047583,000147: 01,2621 30002 CA Q
047584,000148: 01,2622 05712 TC BAILOUT1
047585,000149: 01,2623 31201 OCT 31201 # NO VAC AREAS
047586,000150:
047587,000151: 01,2624 64743 VACFOUND AD TWO # RESERVE THIS VAC AREA BY STORING A ZERO
047588,000152: 01,2625 22007 ZL # IN ITS VAC USE REGISTER AND STORE THE
047589,000153: 01,2626 50000 INDEX A # ADDRESS OF THE FIRST WORD OF IT IN THE
047590,000154: 01,2627 21777 LXCH 0 -1 # LOW NINE BITS OF THE PRIORITY WORD.
047591,000155: 01,2630 26063 ADS NEWPRIO
047592,000156:
047593,000157: 01,2631 34746 NOVAC2 CAF ZERO # NOVAC ENTERS HERE. FIND A CORE SET.
047594,000158: 01,2632 54064 TS LOCCTR
047595,000159: 01,2633 32640 CAF NO.CORES # SEVEN SETS OF ELEVEN REGISTERS EACH.
047596,000160: 01,2634 54062 NOVAC3 TS EXECTEM2
047597,000161: 01,2635 50064 INDEX LOCCTR
047598,000162: 01,2636 10167 CCS PRIORITY # EACH PRIORITY REGISTER CONTAINS -0 IF
047599,000163: 01,2637 12700 TCF NEXTCORE # THE CORRESPONDING CORE SET IS AVAILABLE.
047600,000164: 01,2640 00007 NO.CORES DEC 7 B-14
047601,000165: 01,2641 12700 TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY
047602,000166: # BUT A DORMANT JOB'S PRIORITY IS NEGATIVE
047603,000167:
![]() |
Page 1105 |
047605,000169: 01,2642 30063 CORFOUND CA NEWPRIO # SET THE PRIORITY OF THIS JOB IN THE CORE
047606,000170: 01,2643 50064 INDEX LOCCTR # SET'S PRIORITY REGISTER AND SET THE
047607,000171: 01,2644 54167 TS PRIORITY # JOB'S PUSH-DOWN POINTER AT THE BEGINNING
047608,000172: 01,2645 74775 MASK LOW9 # OF THE WORK AREA AND OVERFLOW INDICATOR
047609,000173: 01,2646 50064 INDEX LOCCTR
047610,000174: 01,2647 54166 TS PUSHLOC # OFF TO PREPARE FOR INTERPRETIVE PROGRAMS
047611,000175:
047612,000176: 01,2650 10064 CCS LOCCTR # IF CORE SET ZERO IS BEING LOADED, SET UP
047613,000177: 01,2651 12665 TCF SETLOC # OVFIND AND FIXLOC IMMEDIATELY .
047614,000178: 01,2652 54121 TS OVFIND
047615,000179: 01,2653 30166 CA PUSHLOC
047616,000180: 01,2654 54120 TS FIXLOC
047617,000181:
047618,000182: 01,2655 10067 SPECTEST CCS NEWJOB # SEE IF ANY ACTIVE JOBS WAITING (RARE).
047619,000183: 01,2656 12665 TCF SETLOC # MUST BE AWAKENED BUT UNCHANGED JOB.
047620,000184: 01,2657 05701 TC CCSHOLE
047621,000185: 01,2660 05701 TC CCSHOLE
047622,000186: 01,2661 54067 TS NEWJOB # +0 SHOWS ACTIVE JOB ALREADY SET.
047623,000187: 01,2662 52066 DXCH NEWLOC
047624,000188: 01,2663 52165 DXCH LOC
047625,000189: 01,2664 15151 TCF ENDFIND
047626,000190:
047627,000191: 01,2665 52066 SETLOC DXCH NEWLOC # SET UP THE LOCATION REGISTERS FOR THIS
047628,000192: 01,2666 50064 INDEX LOCCTR
047629,000193: 01,2667 52165 DXCH LOC
047630,000194: 01,2670 50067 INDEX NEWJOB # THIS INDEX INSTRUCTION INSURES THAT THE
047631,000195: 01,2671 40167 CS PRIORITY # HIGHEST ACTIVE PRIORITY WILL BE COMPARED
047632,000196: 01,2672 60063 AD NEWPRIO # WITH THE NEW PRIORITY TO SEE IF NEWJOB
047633,000197: 01,2673 00006 EXTEND # SHOULD BE SET TO SIGNAL A SWITCH.
047634,000198: 01,2674 65151 BZMF ENDFIND
047635,000199: 01,2675 30064 CA LOCCTR # LOCCTR IS LEFT SET AT THIS CORE SET IF
047636,000200: 01,2676 54067 TS NEWJOB # THE CALLER WANTS TO LOAD ANY MPAC
047637,000201: 01,2677 15151 TCF ENDFIND # REGISTERS, ETC.
047638,000202:
047639,000203: 01,2700 33037 NEXTCORE CAF COREINC
047640,000204: 01,2701 26064 ADS LOCCTR
047641,000205: 01,2702 10062 CCS EXECTEM2
047642,000206: 01,2703 12634 TCF NOVAC3
047643,000207: 01,2704 22061 LXCH EXECTEM1
047644,000208: 01,2705 30002 CA Q
047645,000209: 01,2706 05712 TC BAILOUT1 # NO CORE SETS AVAILABLE.
047646,000210: 01,2707 31202 OCT 31202
![]() |
Page 1106 |
047648,000212: # THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB.
047649,000213:
047650,000214: 01,2710 22164 -2 LXCH LOC
047651,000215: 01,2711 30165 -1 CAE BANKSET # BANKSET, NOT BBANK, HAS RIGHT CONTENTS.
047652,000216: 01,2712 00004 CHANJOB INHINT
047653,000217: 01,2713 00006 EXTEND
047654,000218: 01,2714 04007 ROR SUPERBNK # PICK UP CURRENT SBANK FOR BBCON
047655,000219: 01,2715 56001 XCH L # LOC IN A AND BBCON IN L.
047656,000220: 01,2716 50067 +4 INDEX NEWJOB # SWAP LOC AND BANKSET.
047657,000221: 01,2717 52165 DXCH LOC
047658,000222: 01,2720 52165 DXCH LOC
047659,000223:
047660,000224: 01,2721 30165 CAE BANKSET
047661,000225: 01,2722 00006 EXTEND
047662,000226: 01,2723 01007 WRITE SUPERBNK # SET SBANK FOR NEW JOB.
047663,000227: 01,2724 52155 DXCH MPAC # SWAP MULTI-PURPOSE ACCUMULATOR AREAS.
047664,000228: 01,2725 50067 INDEX NEWJOB
047665,000229: 01,2726 52155 DXCH MPAC
047666,000230: 01,2727 52155 DXCH MPAC
047667,000231: 01,2730 52157 DXCH MPAC +2
047668,000232: 01,2731 50067 INDEX NEWJOB
047669,000233: 01,2732 52157 DXCH MPAC +2
047670,000234: 01,2733 52157 DXCH MPAC +2
047671,000235: 01,2734 52161 DXCH MPAC +4
047672,000236: 01,2735 50067 INDEX NEWJOB
047673,000237: 01,2736 52161 DXCH MPAC +4
047674,000238: 01,2737 52161 DXCH MPAC +4
047675,000239: 01,2740 52163 DXCH MPAC +6
047676,000240: 01,2741 50067 INDEX NEWJOB
047677,000241: 01,2742 52163 DXCH MPAC +6
047678,000242: 01,2743 52163 DXCH MPAC +6
047679,000243:
047680,000244: 01,2744 34746 CAF ZERO
047681,000245: 01,2745 56121 XCH OVFIND # MAKE PUSHLOC NEGATIVE IF OVFIND NZ.
047682,000246: 01,2746 00006 EXTEND
047683,000247: 01,2747 12752 BZF +3
047684,000248: 01,2750 40166 CS PUSHLOC
047685,000249: 01,2751 54166 TS PUSHLOC
047686,000250:
047687,000251: 01,2752 52167 DXCH PUSHLOC
047688,000252: 01,2753 50067 INDEX NEWJOB
047689,000253: 01,2754 52167 DXCH PUSHLOC
047690,000254: 01,2755 52167 DXCH PUSHLOC # SWAPS PUSHLOC AND PRIORITY.
047691,000255: 01,2756 34775 CAF LOW9 # SET FIXLOC TO BASE OF VAC AREA.
047692,000256: 01,2757 70167 MASK PRIORITY
047693,000257: 01,2760 54120 TS FIXLOC
047694,000258:
047695,000259: 01,2761 10166 CCS PUSHLOC # SET OVERFLOW INDICATOR ACCORDING TO
047696,000260: 01,2762 34746 CAF ZERO
047697,000261: 01,2763 12770 TCF ENDPRCHG -1
047698,000262:
![]() |
Page 1107 |
047700,000264: 01,2764 40166 CS PUSHLOC
047701,000265: 01,2765 54166 TS PUSHLOC
047702,000266: 01,2766 34744 CAF ONE
047703,000267: 01,2767 56121 XCH OVFIND
047704,000268: 01,2770 54067 TS NEWJOB
047705,000269:
047706,000270: 01,2771 00003 ENDPRCHG RELINT
047707,000271: 01,2772 52165 DXCH LOC # BASIC JOBS HAVE POSITIVE ADDRESSES, SO
047708,000272: 01,2773 00006 EXTEND # DISPATCH WITH A DTCB.
047709,000273: 01,2774 62776 BZMF +2 # IF INTERPRETIVE, SET UP EBANK, ETC.
047710,000274: 01,2775 52006 DTCB
047711,000275:
![]() |
Page 1108 |
047713,000277: 01,2776 40000 COM # EPILOGUE TO JOB CHANGE FOR INTERPRETIVE
047714,000278: 01,2777 64744 AD ONE
047715,000279: 01,3000 54164 TS LOC # RESUME.
047716,000280: 01,3001 16071 TCF INTRSM
047717,000281:
047718,000282: # COMPLETE JOBSLEEP PREPARATIONS.
047719,000283:
047720,000284: 01,3002 00004 JOBSLP1 INHINT
047721,000285: 01,3003 40167 CS PRIORITY # NNZ PRIORITY SHOWS JOB ASLEEP.
047722,000286: 01,3004 54167 TS PRIORITY
047723,000287: 01,3005 36115 CAF LOW7
047724,000288: 01,3006 70006 MASK BBANK
047725,000289: 01,3007 00006 EXTEND
047726,000290: 01,3010 04007 ROR SUPERBNK # SAVE OLD SUPERBANK VALUE.
047727,000291: 01,3011 54165 TS BANKSET
047728,000292: 01,3012 44746 CS ZERO
047729,000293: 01,3013 54131 JOBSLP2 TS BUF +1 # HOLDS - HIGHEST PRIORITY.
047730,000294: 01,3014 13124 TCF EJSCAN # SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB.
047731,000295:
047732,000296: 01,3015 00004 NUCHANG2 INHINT # QUICK... DONT LET NEWJOB CHANGE TO +0 .
047733,000297: 01,3016 10067 CCS NEWJOB
047734,000298: 01,3017 13022 TCF +3 # NEWJOB STILL PNZ
047735,000299: 01,3020 00003 RELINT # NEWJOB HAS CHANGED TO +0. WAKE UP JOB
047736,000300: 01,3021 13220 TCF ADVAN +2 # VIA NUDIRECT. (VERY RARE CASE.)
047737,000301:
047738,000302: 01,3022 34743 CAF TWO
047739,000303: 01,3023 00006 EXTEND
047740,000304: 01,3024 05011 WOR DSALMOUT # TURN ON ACTIVITY LIGHT
047741,000305: 01,3025 52165 DXCH LOC # AND SAVE ADDRESS INFO FOR BENEFIT OF
047742,000306: 01,3026 12716 TCF CHANJOB +4 # POSSIBLE SLEEPING JOB.
047743,000307:
![]() |
Page 1109 |
047745,000309: # TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE
047746,000310: # LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND,
047747,000311: # LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE.
047748,000312:
047749,000313: 01,3027 54061 JOBWAKE2 TS EXECTEM1
047750,000314: 01,3030 34746 CAF ZERO # BEGIN CORE SET SCAN.
047751,000315: 01,3031 54064 TS LOCCTR
047752,000316: 01,3032 32640 CAF NO.CORES
047753,000317: 01,3033 54062 JOBWAKE4 TS EXECTEM2
047754,000318: 01,3034 50064 INDEX LOCCTR
047755,000319: 01,3035 10167 CCS PRIORITY
047756,000320: 01,3036 13041 TCF JOBWAKE3 # ACTIVE JOB - CHECK NEXT CORE SET.
047757,000321: 01,3037 00014 COREINC DEC 12 B-14 # 12 REGISTERS PER CORE SET.
047758,000322: 01,3040 13050 TCF WAKETEST # SLEEPING JOB - SEE IF CADR MATCHES.
047759,000323:
047760,000324: 01,3041 33037 JOBWAKE3 CAF COREINC
047761,000325: 01,3042 26064 ADS LOCCTR
047762,000326: 01,3043 10062 CCS EXECTEM2
047763,000327: 01,3044 13033 TCF JOBWAKE4
047764,000328: 01,3045 44744 CS ONE # EXIT IF SLEEPING JOB NOT FOUND.
047765,000329: 01,3046 54064 TS LOCCTR
047766,000330: 01,3047 15151 TCF ENDFIND
047767,000331:
047768,000332: 01,3050 40065 WAKETEST CS NEWLOC
047769,000333: 01,3051 50064 INDEX LOCCTR
047770,000334: 01,3052 60164 AD LOC
047771,000335: 01,3053 00006 EXTEND
047772,000336: 01,3054 13056 BZF +2 # IF MATCH.
047773,000337: 01,3055 13041 TCF JOBWAKE3 # EXAMINE NEXT CORE SET IF NO MATCH.
047774,000338:
047775,000339: 01,3056 50064 INDEX LOCCTR # RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE
047776,000340: 01,3057 40167 CS PRIORITY
047777,000341: 01,3060 54063 TS NEWPRIO
047778,000342: 01,3061 50064 INDEX LOCCTR
047779,000343: 01,3062 54167 TS PRIORITY
047780,000344:
047781,000345: 01,3063 44341 CS FBANKMSK # MAKE UP THE 2CADR OF THE WAKE ADDRESS
047782,000346: 01,3064 70065 MASK NEWLOC # USING THE CADR IN NEWLOC AND THE EBANK
047783,000347: 01,3065 64732 AD 2K # HALF OF BBANK SAVED IN BANKSET.
047784,000348: 01,3066 56065 XCH NEWLOC
047785,000349: 01,3067 74341 MASK FBANKMSK
047786,000350: 01,3070 50064 INDEX LOCCTR
047787,000351: 01,3071 60165 AD BANKSET
047788,000352: 01,3072 54066 TS NEWLOC +1
047789,000353:
047790,000354: 01,3073 10064 CCS LOCCTR # SPECIAL TREATMENT IF THIS JOB WAS
047791,000355: 01,3074 12665 TCF SETLOC # ALREADY IN THE RUN (0) POSITION.
047792,000356: 01,3075 12655 TCF SPECTEST
047793,000357:
![]() |
Page 1110 |
047795,000359: # PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY.
047796,000360:
047797,000361: 01,3076 54164 PRIOCH2 TS LOC
047798,000362: 01,3077 34746 CAF ZERO # SET FLAG TO TELL ENDJOB SCANNER IF THIS
047799,000363: 01,3100 54130 TS BUF # JOB IS STILL HIGHEST PRIORITY.
047800,000364: 01,3101 34775 CAF LOW9
047801,000365: 01,3102 70167 MASK PRIORITY
047802,000366: 01,3103 60063 AD NEWPRIO
047803,000367: 01,3104 54167 TS PRIORITY
047804,000368: 01,3105 40000 COM
047805,000369: 01,3106 13013 TCF JOBSLP2 # AND TO EJSCAN.
047806,000370:
![]() |
Page 1111 |
047808,000372: # RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY.
047809,000373:
047810,000374: 01,3107 00004 ENDJOB1 INHINT
047811,000375: 01,3110 44746 CS ZERO
047812,000376: 01,3111 54131 TS BUF +1
047813,000377: 01,3112 56167 XCH PRIORITY
047814,000378: 01,3113 74775 MASK LOW9
047815,000379: 01,3114 54001 TS L
047816,000380:
047817,000381: 01,3115 45155 CS FAKEPRET
047818,000382: 01,3116 60001 AD L
047819,000383:
047820,000384: 01,3117 00006 EXTEND
047821,000385: 01,3120 63124 BZMF EJSCAN # NOVAC ENDOFJOB
047822,000386:
047823,000387: 01,3121 10001 CCS L
047824,000388: 01,3122 50000 INDEX A
047825,000389: 01,3123 54000 TS 0
047826,000390:
047827,000391: 01,3124 10203 EJSCAN CCS PRIORITY +12D
047828,000392: 01,3125 03175 TC EJ1
047829,000393: 01,3126 05701 TC CCSHOLE
047830,000394: 01,3127 13130 TCF +1
047831,000395:
047832,000396: 01,3130 10217 CCS PRIORITY +24D # EXAMINE EACH PRIORITY REGISTER TO FIND
047833,000397: 01,3131 03175 TC EJ1 # THE JOB OF HIGHEST ACTIVE PRIORITY.
047834,000398: 01,3132 05701 TC CCSHOLE
047835,000399: 01,3133 13134 TCF +1
047836,000400:
047837,000401: 01,3134 10233 CCS PRIORITY +36D
047838,000402: 01,3135 03175 TC EJ1
047839,000403: 01,3136 67610 -CCSPR -CCS PRIORITY
047840,000404: 01,3137 13140 TCF +1
047841,000405:
047842,000406: 01,3140 10247 CCS PRIORITY +48D
047843,000407: 01,3141 03175 TC EJ1
047844,000408: 01,3142 05701 TC CCSHOLE
047845,000409: 01,3143 13144 TCF +1
047846,000410:
047847,000411: 01,3144 10263 CCS PRIORITY +60D
047848,000412: 01,3145 03175 TC EJ1
047849,000413: 01,3146 05701 TC CCSHOLE
047850,000414: 01,3147 13150 TCF +1
047851,000415:
047852,000416: 01,3150 10277 CCS PRIORITY +72D
047853,000417: 01,3151 03175 TC EJ1
047854,000418: 01,3152 05701 TC CCSHOLE
047855,000419: 01,3153 13154 TCF +1
047856,000420:
047857,000421: 01,3154 10313 CCS PRIORITY +84D
![]() |
Page 1112 |
047859,000423: 01,3155 03175 TC EJ1
047860,000424: 01,3156 05701 TC CCSHOLE
047861,000425: 01,3157 13160 TCF +1
047862,000426:
![]() |
Page 1113 |
047864,000428: # EVALUATE THE RESULTS OF THE SCAN.
047865,000429:
047866,000430: 01,3160 10131 CCS BUF +1 # SEE IF THERE ARE ANY ACTIVE JOBS WAITING
047867,000431: 01,3161 05701 TC CCSHOLE
047868,000432: 01,3162 05701 TC CCSHOLE
047869,000433:
047870,000434: 01,3163 13165 TCF +2
047871,000435: 01,3164 13210 TCF DUMMYJOB
047872,000436: 01,3165 10130 CCS BUF # BUF IS ZERO IF THIS IS A PRIOCHNG AND
047873,000437: 01,3166 13170 TCF +2 # CHANGED PRIORITY IS STILL HIGHEST.
047874,000438: 01,3167 12770 TCF ENDPRCHG -1
047875,000439:
047876,000440: 01,3170 50000 INDEX A # OTHERWISE, SET NEWJOB TO THE RELATIVE
047877,000441: 01,3171 27777 CAF 0 -1 # ADDRESS OF THE NEW JOB'S CORE SET.
047878,000442: 01,3172 63136 AD -CCSPR
047879,000443: 01,3173 54067 TS NEWJOB
047880,000444: 01,3174 12710 TCF CHANJOB -2
047881,000445:
047882,000446: 01,3175 54132 EJ1 TS BUF +2
047883,000447: 01,3176 60131 AD BUF +1 # - OLD HIGH PRIORITY.
047884,000448: 01,3177 10000 CCS A
047885,000449: 01,3200 40132 CS BUF +2
047886,000450: 01,3201 13204 TCF EJ2 # NEW HIGH PRIORITY.
047887,000451: 01,3202 13203 NOOP
047888,000452: 01,3203 16762 TCF Q+2
047889,000453:
047890,000454: 01,3204 54131 EJ2 TS BUF +1
047891,000455: 01,3205 30002 CA Q
047892,000456: 01,3206 54130 TS BUF
047893,000457: 01,3207 16762 TCF Q+2
047894,000458:
![]() |
Page 1114 |
047896,000460: # IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTINE IS NOT A JOB IN ITSELF,
047897,000461: # BUT RATHER A SUBROUTINE OF THE EXECUTIVE.
047898,000462:
047899,000463: 01,3210 1361 EBANK= SELFRET # SELF-CHECK STORAGE IN EBANK.
047900,000464:
047901,000465: 01,3210 44746 DUMMYJOB CS ZERO # SET NEWJOB TO -0 FOR IDLING.
047902,000466: 01,3211 54067 TS NEWJOB
047903,000467: 01,3212 00003 RELINT
047904,000468: 01,3213 44743 CS TWO # TURN OFF THE ACTIVITY LIGHT.
047905,000469: 01,3214 00006 EXTEND
047906,000470: 01,3215 03011 WAND DSALMOUT
047907,000471: 01,3216 10067 ADVAN CCS NEWJOB # IS A NEWJOB ACTIVE ?
047908,000472: 01,3217 13015 TCF NUCHANG2 # YES... ONE REQUIRING A CHANGE JOB.
047909,000473: 01,3220 34743 CAF TWO # NEW JOB ALREADY IN POSITION FOR
047910,000474: 01,3221 13230 TCF NUDIRECT # EXECUTION.
047911,000475:
047912,000476: 01,3222 25356 INCR DUMLOOPS # COUNT DUMMYJOB LOOPS FOR DOWNLINK
047913,000477:
047914,000478: 01,3223 31361 CA SELFRET
047915,000479: 01,3224 54001 TS L # PUT RETURN ADDRESS IN L.
047916,000480: 01,3225 33227 CAF SELFBANK
047917,000481: 01,3226 15170 TCF SUPDXCHZ +1 # AND DISPATCH JOB.
047918,000482:
047919,000483: 01,3227 1361 EBANK= SELFRET
047920,000484: 01,3227 66102 SELFBANK BBCON SELFCHK
047921,000485:
047922,000486: 01,3230 00006 NUDIRECT EXTEND # TURN THE GREEN LIGHT BACK ON.
047923,000487: 01,3231 05011 WOR DSALMOUT
047924,000488: 01,3232 52165 DXCH LOC # JOBS STARTED IN THIS FASHION MUST BE
047925,000489: 01,3233 15167 TCF SUPDXCHZ
047926,000490:
047927,000491: 5167 BLOCK 2 # IN FIXED-FIXED SO OTHERS MAY USE.
047928,000492:
047929,000493: 5167 COUNT* $$/EXEC
047930,000494: # SUPDXCHZ - ROUTINE TO TRANSFER TO SUPERBANK.
047931,000495: # CALLING SEQUENCE
047932,000496: # TCF SUPDXCHZ WITH 2CADR OF DESIRED LOCATION IN A + L.
047933,000497:
047934,000498: 5167 56001 SUPDXCHZ XCH L # BASIC.
047935,000499: 5170 00006 +1 EXTEND
047936,000500: 5171 01007 WRITE SUPERBNK
047937,000501: 5172 54006 TS BBANK
047938,000502: 5173 00001 TC L
047939,000503:
047940,000504: 5174 77677 NEG100 OCT 77677
End of include-file EXECUTIVE.agc. Parent file is MAIN.agc