Source Code
![]() |
These source-code files were obtained by digitally photographing
an Artemis 72 program listing from a private collection and then
modifying pre-existing Comanche 55 (Apollo 11) source files to
incorporate changes. Note that the page images
presented online are of reduced quality, and that additional images
may be available. Report any conversion errors or legibility
problems in page images to info@sandroid.org.
Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 072 OF AGC PROGRAM ARTEMIS BY NASA 2021114-011 11:40 FEB. 26, 1971 THIS AGC PROGRAM SHALL ALSO BE REFERRED TO AS COLOSSUS 3 THIS PROGRAM IS INTENDED FOR USE IN THE CM AS SPECIFIED IN REPORT R-577. THIS PROGRAM WAS PREPARED UNDER OSR PROJECT 55-23890, SPONSORED BY THE MANNED SPACECRAFT CENTER OF THE NATIONAL AERONAUTICS AND SPACE ADMINISTRATION THROUGH CONTRACT NAS 9-4065 WITH THE CHARLES STARK DRAPER LABORATORY, MASSACHUSETTS INSTITUTE OF TECHNOLOGY, CAMBRIDGE, MASS. |
051600,000002: # Copyright: Public domain.
051601,000003: # Filename: EXECUTIVE.agc
051602,000004: # Purpose: Part of the source code for Artemis (i.e., Colossus 3),
051603,000005: # build 072. This is for the Command Module's (CM)
051604,000006: # Apollo Guidance Computer (AGC), we believe for
051605,000007: # Apollo 15-17.
051606,000008: # Assembler: yaYUL
051607,000009: # Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
051608,000010: # Website: www.ibiblio.org/apollo/index.html
051609,000011: # Page scans: www.ibiblio.org/apollo/ScansForConversion/Artemis072/
051610,000012: # Mod history: 2009-08-29 JL Adapted from corresponding Comanche 055 file.
051611,000013: # 2010-02-10 JL Fixed error on p1218.
051612,000014: # 2010-02-20 RSB Un-##'d this header.
051613,000015: # 2011-05-07 JL Removed workaround.
051614,000016:
051615,000017: # # Page 1208
051616,000018:
051617,000019: 4000 SETLOC EXECF2
051618,000020: 4000 BANK
051619,000021:
051620,000022: # TO ENTER A JOB REQUEST REQUIRING NO VAC AREA:
051621,000023:
051622,000024: 5120 COUNT* $$/EXEC
051623,000025: 5120 34346 NOVAC30 CAF PRIO30
051624,000026: 5121 00004 NOVAC INHINT
051625,000027: 5122 65213 AD FAKEPRET # LOC(MPAC +6) - LOC(QPRET)
051626,000028: 5123 54063 TS NEWPRIO # PRIORITY OF NEW JOB + NOVAC C(FIXLOC)
051627,000029:
051628,000030: 5124 00006 EXTEND
051629,000031: 5125 50002 INDEX Q # Q WILL BE UNDISTURBED THROUGHOUT.
051630,000032: 5126 30001 DCA 0 # 2CADR OF JOB ENTERED.
051631,000033: 5127 52066 DXCH NEWLOC
051632,000034: 5130 34756 CAF EXECBANK
051633,000035: 5131 56004 XCH FBANK
051634,000036: 5132 54061 TS EXECTEM1
051635,000037: 5133 12620 TCF NOVAC2 # ENTER EXECUTIVE BANK.
051636,000038:
051637,000039: # TO ENTER A JOB REQUEST REQUIRING A VAC AREA - E.G., ALL (PARTIALLY) INTERPRETIVE JOBS.
051638,000040:
051639,000041: 5134 34753 FINVAC20 CAF PRIO20
051640,000042: 5135 00004 FINDVAC INHINT
051641,000043: 5136 54063 TS NEWPRIO
051642,000044: 5137 00006 EXTEND
051643,000045: 5140 50002 INDEX Q
051644,000046: 5141 30001 DCA 0
051645,000047: 5142 52066 SPVACIN DXCH NEWLOC
051646,000048: 5143 34756 CAF EXECBANK
051647,000049: 5144 56004 XCH FBANK
051648,000050: 5145 12576 TCF FINDVAC2 # OFF TO EXECUTIVE SWITCHED-BANK.
051649,000051:
051650,000052: # TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L:
051651,000053:
051652,000054: # USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO.
051653,000055:
051654,000056: 5146 56002 SPVAC XCH Q
051655,000057: 5147 67701 AD NEG2
051656,000058: 5150 56002 XCH Q
051657,000059: 5151 15142 TCF SPVACIN
051658,000060:
051659,000061: # TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED:
051660,000062:
051661,000063: 5152 22002 CHANG1 LXCH Q
051662,000064: 5153 34756 CAF EXECBANK
051663,000065: 5154 56006 XCH BBANK
051664,000066: 5155 12677 TCF CHANJOB
051665,000067:
051666,000068: # TO SUSPEND AN INTERPRETIVE JOB:
051667,000069:
051668,000070: # # Page 1209
051669,000071: 5156 40164 CHANG2 CS LOC # NEGATIVE LOC SHOWS JOB = INTERPRETIVE.
051670,000072: # ITRACE (4) REFERS TO "CHANG2".
051671,000073: 5157 54001 TS L
051672,000074: 5160 34756 +2 CAF EXECBANK
051673,000075: 5161 54006 TS BBANK
051674,000076: 5162 12676 TCF CHANJOB -1
051675,000077:
051676,000078: # # Page 1210
051677,000079: # TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.):
051678,000080:
051679,000081: 5163 54164 JOBSLEEP TS LOC
051680,000082: 5164 34756 CAF EXECBANK
051681,000083: 5165 54004 TS FBANK
051682,000084: 5166 12767 TCF JOBSLP1
051683,000085:
051684,000086: # TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION:
051685,000087:
051686,000088: 5167 00004 JOBWAKE INHINT
051687,000089: 5170 54065 TS NEWLOC
051688,000090: 5171 44767 CS TWO # EXIT IS VIA FINDVAC/NOVAC PROCEDURES.
051689,000091: 5172 26002 ADS Q
051690,000092: 5173 34756 CAF EXECBANK
051691,000093: 5174 56004 XCH FBANK
051692,000094: 5175 13014 TCF JOBWAKE2
051693,000095:
051694,000096: # TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION:
051695,000097:
051696,000098: 5176 00004 PRIOCHNG INHINT # NEW PRIORITY ARRIVES IN A. RETURNS TO
051697,000099: 5177 54063 TS NEWPRIO # CALLER AS SOON AS NEW JOB PRIORITY IS
051698,000100: 5200 34756 CAF EXECBANK # HIGHEST. PREPARE FOR POSSIBLE BASIC-
051699,000101: 5201 56006 XCH BBANK # STYLE CHANGE-JOB.
051700,000102: 5202 54165 TS BANKSET
051701,000103: 5203 30002 CA Q
051702,000104: 5204 13063 TCF PRIOCH2
051703,000105:
051704,000106: # TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS:
051705,000107:
051706,000108: 5205 34756 ENDOFJOB CAF EXECBANK
051707,000109: 5206 54004 TS FBANK
051708,000110: 5207 13074 TCF ENDJOB1
051709,000111:
051710,000112: 5210 30061 ENDFIND CA EXECTEM1 # RETURN TO CALLER AFTER JOB ENTRY
051711,000113: 5211 54004 TS FBANK # COMPLETE.
051712,000114: 5212 16710 TCF Q+2
051713,000115: 5213 4756 EXECBANK EQUALS BIT11 # THIS IS TRUE IF FINDVAC2 STAYS IN BANK 01
051714,000116:
051715,000117: 5213 00110 FAKEPRET ADRES MPAC -36D # LOC(MPAC +6) - LOC(QPRET)
051716,000118:
051717,000119: # # Page 1211
051718,000120: # LOCATE AN AVAILABLE VAC AREA.
051719,000121:
051720,000122: 01,2000 SETLOC EXECB1
051721,000123: 01,2000 BANK
051722,000124:
051723,000125: 01,2576 COUNT* $$/EXEC
051724,000126: # ******** IF THE EXECUTIVE IS
051725,000127: # MOVED OUT OF BANK 01
051726,000128: # DONT FORGET TO CHANGE
051727,000129: # THE VALUE OF
051728,000130: # ****** EXECBANK ****
051729,000131: 01,2576 54061 FINDVAC2 TS EXECTEM1 # (SAVE CALLER'S BANK FIRST.)
051730,000132: 01,2577 10400 CCS VAC1USE
051731,000133: 01,2600 12613 TCF VACFOUND
051732,000134: 01,2601 10454 CCS VAC2USE
051733,000135: 01,2602 12613 TCF VACFOUND
051734,000136: 01,2603 10530 CCS VAC3USE
051735,000137: 01,2604 12613 TCF VACFOUND
051736,000138: 01,2605 10604 CCS VAC4USE
051737,000139: 01,2606 12613 TCF VACFOUND
051738,000140: 01,2607 10660 CCS VAC5USE
051739,000141: 01,2610 12613 TCF VACFOUND
051740,000142: 01,2611 07706 TC BAILOUT
051741,000143: 01,2612 31201 OCT 31201 # NO VAC AREAS
051742,000144:
051743,000145: 01,2613 64767 VACFOUND AD TWO # RESERVE THIS VAC AREA BY STORING A ZERO
051744,000146: 01,2614 22007 ZL # IN ITS VAC USE REGISTER AND STORE THE
051745,000147: 01,2615 50000 INDEX A # ADDRESS OF THE FIRST WORD OF IT IN THE
051746,000148: 01,2616 21777 LXCH 0 -1 # LOW NINE BITS OF THE PRIORITY WORD.
051747,000149: 01,2617 26063 ADS NEWPRIO
051748,000150:
051749,000151: 01,2620 34772 NOVAC2 CAF ZERO # NOVAC ENTERS HERE. FIND A CORE SET.
051750,000152: 01,2621 54064 TS LOCCTR
051751,000153: 01,2622 32627 CAF NO.CORES # SEVEN SETS OF ELEVEN REGISTERS EACH.
051752,000154: 01,2623 54062 NOVAC3 TS EXECTEM2
051753,000155: 01,2624 50064 INDEX LOCCTR
051754,000156: 01,2625 10167 CCS PRIORITY # EACH PRIORITY REGISTER CONTAINS -0 IF
051755,000157: 01,2626 12667 TCF NEXTCORE # THE CORESPONDING CORE SET IS AVAILABLE.
051756,000158: 01,2627 00006 NO.CORES DEC 6 B-14
051757,000159: 01,2630 12667 TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY
051758,000160: # BUT A DORMANT JOB'S PRIORITY IS NEGATIVE
051759,000161:
051760,000162: # # Page 1212
051761,000163: 01,2631 30063 CORFOUND CA NEWPRIO # SET THE PRIORITY OF THIS JOB IN THE CORE
051762,000164: 01,2632 50064 INDEX LOCCTR # SET'S PRIORITY REGISTER AND SET THE
051763,000165: 01,2633 54167 TS PRIORITY # JOB'S PUSH-DOWN POINTER AT THE BEGINNING
051764,000166: 01,2634 75021 MASK LOW9 # OF THE WORK AREA AND OVERFLOW INDICATOR
051765,000167: 01,2635 50064 INDEX LOCCTR
051766,000168: 01,2636 54166 TS PUSHLOC # OFF TO PREPARE FOR INTERPRETIVE PROGRAMS
051767,000169:
051768,000170: 01,2637 10064 CCS LOCCTR # IF CORE SET ZERO IS BEING LOADED, SET UP
051769,000171: 01,2640 12654 TCF SETLOC # OVFIND AND FIXLOC IMMEDIATELY.
051770,000172: 01,2641 54121 TS OVFIND
051771,000173: 01,2642 30166 CA PUSHLOC
051772,000174: 01,2643 54120 TS FIXLOC
051773,000175:
051774,000176: 01,2644 10067 SPECTEST CCS NEWJOB # SEE IF ANY ACTIVE JOBS WAITING (RARE).
051775,000177: 01,2645 12654 TCF SETLOC # MUST BE AWAKENED OUT UNCHANGED JOB.
051776,000178: 01,2646 12647 NOOP # CANNOT GET HERE
051777,000179: 01,2647 12650 NOOP # CANNOT GET HERE
051778,000180: 01,2650 54067 TS NEWJOB # +0 SHOWS ACTIVE JOB ALREADY SET.
051779,000181: 01,2651 52066 DXCH NEWLOC
051780,000182: 01,2652 52165 DXCH LOC
051781,000183: 01,2653 15210 TCF ENDFIND
051782,000184:
051783,000185: 01,2654 52066 SETLOC DXCH NEWLOC # SET UP THE LOCATION REGISTERS FOR THIS
051784,000186: 01,2655 50064 INDEX LOCCTR
051785,000187: 01,2656 52165 DXCH LOC
051786,000188: 01,2657 50067 INDEX NEWJOB # THIS INDEX INSTRUCTION INSURES THAT THE
051787,000189: 01,2660 40167 CS PRIORITY # HIGHEST ACTIVE PRIORITY WILL BE COMPARED
051788,000190: 01,2661 60063 AD NEWPRIO # WITH THE NEW PRIORITY TO SEE IF NEWJOB
051789,000191: 01,2662 00006 EXTEND # SHOULD BE SET TO SIGNAL A SWITCH.
051790,000192: 01,2663 65210 BZMF ENDFIND
051791,000193: 01,2664 30064 CA LOCCTR # LOCCTR IS LEFT SET AT THIS CORE SET IF
051792,000194: 01,2665 54067 TS NEWJOB # THE CALLER WANTS TO LOAD ANY MPAC
051793,000195: 01,2666 15210 TCF ENDFIND # REGISTERS, ETC.
051794,000196:
051795,000197: 01,2667 33024 NEXTCORE CAF COREINC
051796,000198: 01,2670 26064 ADS LOCCTR
051797,000199: 01,2671 10062 CCS EXECTEM2
051798,000200: 01,2672 12623 TCF NOVAC3
051799,000201: 01,2673 07706 TC BAILOUT # NO CORE SETS.
051800,000202: 01,2674 31202 OCT 31202
051801,000203:
051802,000204: # # Page 1213
051803,000205: # THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB.
051804,000206:
051805,000207: 01,2675 22164 -2 LXCH LOC
051806,000208: 01,2676 30165 -1 CAE BANKSET # BANKSET, NOT BBANK, HAS RIGHT CONTENTS.
051807,000209: 01,2677 00004 CHANJOB INHINT
051808,000210: 01,2700 00006 EXTEND
051809,000211: 01,2701 04007 ROR SUPERBNK # PICK UP CURRENT SBANK FOR BBCON
051810,000212: 01,2702 56001 XCH L # LOC IN A AND BBCON IN L.
051811,000213: 01,2703 50067 +4 INDEX NEWJOB # SWAP LOC AND BANKSET.
051812,000214: 01,2704 52165 DXCH LOC
051813,000215: 01,2705 52165 DXCH LOC
051814,000216:
051815,000217: 01,2706 30165 CAE BANKSET
051816,000218: 01,2707 00006 EXTEND
051817,000219: 01,2710 01007 WRITE SUPERBNK # SET SBANK FOR NEW JOB.
051818,000220: 01,2711 52155 DXCH MPAC # SWAP MULTI-PURPOSE ACCUMULATOR AREAS.
051819,000221: 01,2712 50067 INDEX NEWJOB
051820,000222: 01,2713 52155 DXCH MPAC
051821,000223: 01,2714 52155 DXCH MPAC
051822,000224: 01,2715 52157 DXCH MPAC +2
051823,000225: 01,2716 50067 INDEX NEWJOB
051824,000226: 01,2717 52157 DXCH MPAC +2
051825,000227: 01,2720 52157 DXCH MPAC +2
051826,000228: 01,2721 52161 DXCH MPAC +4
051827,000229: 01,2722 50067 INDEX NEWJOB
051828,000230: 01,2723 52161 DXCH MPAC +4
051829,000231: 01,2724 52161 DXCH MPAC +4
051830,000232: 01,2725 52163 DXCH MPAC +6
051831,000233: 01,2726 50067 INDEX NEWJOB
051832,000234: 01,2727 52163 DXCH MPAC +6
051833,000235: 01,2730 52163 DXCH MPAC +6
051834,000236:
051835,000237: 01,2731 34772 CAF ZERO
051836,000238: 01,2732 56121 XCH OVFIND # MAKE PUSHLOC NEGATIVE IF OVFIND NZ.
051837,000239: 01,2733 00006 EXTEND
051838,000240: 01,2734 12737 BZF +3
051839,000241: 01,2735 40166 CS PUSHLOC
051840,000242: 01,2736 54166 TS PUSHLOC
051841,000243:
051842,000244: 01,2737 52167 DXCH PUSHLOC
051843,000245: 01,2740 50067 INDEX NEWJOB
051844,000246: 01,2741 52167 DXCH PUSHLOC
051845,000247: 01,2742 52167 DXCH PUSHLOC # SWAPS PUSHLOC AND PRIORITY.
051846,000248: 01,2743 35021 CAF LOW9 # SET FIXLOC TO BASE OF VAC AREA.
051847,000249: 01,2744 70167 MASK PRIORITY
051848,000250: 01,2745 54120 TS FIXLOC
051849,000251:
051850,000252: 01,2746 10166 CCS PUSHLOC # SET OVERFLOW INDICATOR ACCORDING TO
051851,000253: 01,2747 34772 CAF ZERO
051852,000254: 01,2750 12755 TCF ENDPRCHG -1
051853,000255: # # Page 1214
051854,000256: 01,2751 40166 CS PUSHLOC
051855,000257: 01,2752 54166 TS PUSHLOC
051856,000258: 01,2753 34770 CAF ONE
051857,000259: 01,2754 56121 XCH OVFIND
051858,000260: 01,2755 54067 -1 TS NEWJOB
051859,000261: 01,2756 00003 ENDPRCHG RELINT
051860,000262: 01,2757 52165 DXCH LOC # BASIC JOBS HAVE POSITIVE ADDRESSES, SO
051861,000263: 01,2760 00006 EXTEND # DISPATCH WITH A DTCB.
051862,000264: 01,2761 62763 BZMF +2 # IF INTERPRETIVE, SET UP EBANK, ETC.
051863,000265: 01,2762 52006 DTCB
051864,000266:
051865,000267: # # Page 1215
051866,000268:
051867,000269: 01,2763 40000 COM # EPILOGUE TO JOB CHANGE FOR INTERPRETIVE
051868,000270: 01,2764 64770 AD ONE
051869,000271: 01,2765 54164 TS LOC # RESUME
051870,000272: 01,2766 16017 TCF INTRSM
051871,000273:
051872,000274: # COMPLETE JOBSLEEP PREPARATIONS.
051873,000275:
051874,000276: 01,2767 00004 JOBSLP1 INHINT
051875,000277: 01,2770 40167 CS PRIORITY # NNZ PRIORITY SHOWS JOB ASLEEP.
051876,000278: 01,2771 54167 TS PRIORITY
051877,000279: 01,2772 36043 CAF LOW7
051878,000280: 01,2773 70006 MASK BBANK
051879,000281: 01,2774 00006 EXTEND
051880,000282: 01,2775 04007 ROR SUPERBNK # SAVE OLD SUPERBANK VALUE.
051881,000283: 01,2776 54165 TS BANKSET
051882,000284: 01,2777 44772 CS ZERO
051883,000285: 01,3000 54131 JOBSLP2 TS BUF +1 # HOLDS - HIGHEST PRIORITY.
051884,000286: 01,3001 13111 TCF EJSCAN # SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB.
051885,000287:
051886,000288: 01,3002 00004 NUCHANG2 INHINT # QUICK... DONT LET NEWJOB CHANGE TO +0.
051887,000289: 01,3003 10067 CCS NEWJOB
051888,000290: 01,3004 13007 TCF +3 # NEWJOB STILL PNZ
051889,000291: 01,3005 00003 RELINT # NEW JOB HAS CHANGED TO +0. WAKE UP JOB
051890,000292: 01,3006 13201 TCF ADVAN +2 # VIA NUDIRECT. (VERY RARE CASE.)
051891,000293:
051892,000294: 01,3007 34767 CAF TWO
051893,000295: 01,3010 00006 EXTEND
051894,000296: 01,3011 05011 WOR DSALMOUT # TURN ON ACTIVITY LIGHT
051895,000297: 01,3012 52165 DXCH LOC # AND SAVE ADDRESS INFO FOR BENEFIT OF
051896,000298: 01,3013 12703 TCF CHANJOB +4 # POSSIBLE SLEEPING JOB.
051897,000299:
051898,000300: # # Page 1216
051899,000301: # TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE
051900,000302: # LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND,
051901,000303: # LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE.
051902,000304:
051903,000305: 01,3014 54061 JOBWAKE2 TS EXECTEM1
051904,000306: 01,3015 34772 CAF ZERO # BEGIN CORE SET SCAN.
051905,000307: 01,3016 54064 TS LOCCTR
051906,000308: 01,3017 32627 CAF NO.CORES
051907,000309: 01,3020 54062 JOBWAKE4 TS EXECTEM2
051908,000310: 01,3021 50064 INDEX LOCCTR
051909,000311: 01,3022 10167 CCS PRIORITY
051910,000312: 01,3023 13026 TCF JOBWAKE3 # ACTIVE JOB - CHECK NEXT CORE SET.
051911,000313: 01,3024 00014 COREINC DEC 12 B-14 # 12 REGISTERS PER CORE SET.
051912,000314: 01,3025 13035 TCF WAKETEST # SLEEPING JOB - SEE IF CADR MATCHES.
051913,000315:
051914,000316: 01,3026 33024 JOBWAKE3 CAF COREINC
051915,000317: 01,3027 26064 ADS LOCCTR
051916,000318: 01,3030 10062 CCS EXECTEM2
051917,000319: 01,3031 13020 TCF JOBWAKE4
051918,000320: 01,3032 44770 CS ONE # EXIT IF SLEEPING JOB NOT FOUND.
051919,000321: 01,3033 54064 TS LOCCTR
051920,000322: 01,3034 15210 TCF ENDFIND
051921,000323:
051922,000324: 01,3035 40065 WAKETEST CS NEWLOC
051923,000325: 01,3036 50064 INDEX LOCCTR
051924,000326: 01,3037 60164 AD LOC
051925,000327: 01,3040 00006 EXTEND
051926,000328: 01,3041 13043 BZF +2 # IF MATCH.
051927,000329: 01,3042 13026 TCF JOBWAKE3 # EXAMINE NEXT CORE SET IF NO MATCH.
051928,000330:
051929,000331: 01,3043 50064 INDEX LOCCTR # RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE
051930,000332: 01,3044 40167 CS PRIORITY
051931,000333: 01,3045 54063 TS NEWPRIO
051932,000334: 01,3046 50064 INDEX LOCCTR
051933,000335: 01,3047 54167 TS PRIORITY
051934,000336:
051935,000337: 01,3050 44344 CS FBANKMSK # MASK UP THE 2CADR OF THE WAKE ADDRESS
051936,000338: 01,3051 70065 MASK NEWLOC # USING THE CADR IN NEWLOC AND THE EBANK
051937,000339: 01,3052 64756 AD 2K # HALF OF BBANK SAVED IN BANKSET.
051938,000340: 01,3053 56065 XCH NEWLOC
051939,000341: 01,3054 74344 MASK FBANKMSK
051940,000342: 01,3055 50064 INDEX LOCCTR
051941,000343: 01,3056 60165 AD BANKSET
051942,000344: 01,3057 54066 TS NEWLOC +1
051943,000345:
051944,000346: 01,3060 10064 CCS LOCCTR # SPECIAL TREATMENT IF THIS JOB WAS
051945,000347: 01,3061 12654 TCF SETLOC # ALREADY IN THE RUN (0) POSITION.
051946,000348: 01,3062 12644 TCF SPECTEST
051947,000349:
051948,000350: # # Page 1217
051949,000351: # PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY.
051950,000352:
051951,000353: 01,3063 54164 PRIOCH2 TS LOC
051952,000354: 01,3064 34772 CAF ZERO # SET FLAG TO TELL ENDJOB SCANNER IF THIS
051953,000355: 01,3065 54130 TS BUF # JOB IS STILL HIGHEST PRIORITY.
051954,000356: 01,3066 35021 CAF LOW9
051955,000357: 01,3067 70167 MASK PRIORITY
051956,000358: 01,3070 60063 AD NEWPRIO
051957,000359: 01,3071 54167 TS PRIORITY
051958,000360: 01,3072 40000 COM
051959,000361: 01,3073 13000 TCF JOBSLP2 # AND TO EJSCAN.
051960,000362:
051961,000363: # # Page 1218
051962,000364: # RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY.
051963,000365:
051964,000366: 01,3074 00004 ENDJOB1 INHINT
051965,000367: 01,3075 44772 CS ZERO
051966,000368: 01,3076 54131 TS BUF +1
051967,000369: 01,3077 56167 XCH PRIORITY
051968,000370: 01,3100 75021 MASK LOW9
051969,000371: 01,3101 54001 TS L
051970,000372:
051971,000373: 01,3102 45213 CS FAKEPRET
051972,000374: 01,3103 60001 AD L
051973,000375:
051974,000376: 01,3104 00006 EXTEND
051975,000377: 01,3105 63111 BZMF EJSCAN # NOVAC ENDOFJOB
051976,000378:
051977,000379: 01,3106 10001 CCS L
051978,000380: 01,3107 50000 INDEX A
051979,000381: 01,3110 54000 TS 0
051980,000382:
051981,000383: 01,3111 10203 EJSCAN CCS PRIORITY +12D
051982,000384: 01,3112 03156 TC EJ1
051983,000385: 01,3113 1361 EBANK= SELFRET
051984,000386: 01,3113 66102 SELFBANK BBCON SELFCHK # CANNOT GET HERE
051985,000387: 01,3114 13115 TCF +1
051986,000388:
051987,000389: 01,3115 10217 CCS PRIORITY +24D # EXAMINE EACH PRIORITY REGISTER TO FIND
051988,000390: 01,3116 03156 TC EJ1 # THE JOB OF HIGHEST ACTIVE PRIORITY.
051989,000391: 01,3117 40201 OCT40201 OCT 40201 # CANNOT GET HERE
051990,000392: 01,3120 13121 TCF +1
051991,000393:
051992,000394: 01,3121 10233 CCS PRIORITY +36D
051993,000395: 01,3122 03156 TC EJ1
051994,000396: 01,3123 67610 -CCSPR -CCS PRIORITY
051995,000397: 01,3124 13125 TCF +1
051996,000398:
051997,000399: 01,3125 10247 CCS PRIORITY +48D
051998,000400: 01,3126 03156 TC EJ1
051999,000401: 01,3127 03724 PHS2CADR GENADR PHSPART2 # CANNOT GET HERE
052000,000402: 01,3130 13131 TCF +1
052001,000403:
052002,000404: 01,3131 10263 CCS PRIORITY +60D
052003,000405: 01,3132 03156 TC EJ1
052004,000406: 01,3133 03502 PRT2CADR GENADR GETPART2 # CANNOT GET HERE
052005,000407: 01,3134 13135 TCF +1
052006,000408:
052007,000409: 01,3135 10277 CCS PRIORITY +72D
052008,000410: 01,3136 03156 TC EJ1
052009,000411: 01,3137 05332 LGCLCADR GENADR LONGCALL # CANNOT GET HERE
052010,000412: 01,3140 13141 TCF +1
052011,000413:
052012,000414: # # Page 1219
052013,000415: # EVALUATE THE RESULTS OF THE SCAN.
052014,000416:
052015,000417: 01,3141 10131 CCS BUF +1 # SEE IF THERE ARE ANY ACTIVE JOBS WAITING
052016,000418:
052017,000419: 01,3142 53301 GETCADR DXCH LONGCADR # CANNOT GET HERE
052018,000420: 01,3143 05214 TC SUPDXCHZ
052019,000421: 01,3144 13146 TCF +2
052020,000422: 01,3145 13171 TCF DUMMYJOB
052021,000423: 01,3146 10130 CCS BUF # BUF IS ZERO IF THIS IS A PRIOCHNG AND
052022,000424: 01,3147 13151 TCF +2 # CHANGED PRIORITY IS STILL HIGHEST.
052023,000425: 01,3150 12755 TCF ENDPRCHG -1
052024,000426:
052025,000427: 01,3151 50000 INDEX A # OTHERWISE, SET NEWJOB TO THE RELATIVE
052026,000428: 01,3152 27777 CAF 0 -1 # ADDRESS OF THE NEW JOB'S CORE SET.
052027,000429: 01,3153 63123 AD -CCSPR
052028,000430: 01,3154 54067 TS NEWJOB
052029,000431: 01,3155 12675 TCF CHANJOB -2
052030,000432:
052031,000433: 01,3156 54132 EJ1 TS BUF +2
052032,000434: 01,3157 60131 AD BUF +1 # - OLD HIGH PRIORITY.
052033,000435: 01,3160 10000 CCS A
052034,000436: 01,3161 40132 CS BUF +2
052035,000437: 01,3162 13165 TCF EJ2 # NEW HIGH PRIORITY.
052036,000438: 01,3163 13164 NOOP
052037,000439: 01,3164 16710 TCF Q+2
052038,000440:
052039,000441: 01,3165 54131 EJ2 TS BUF +1
052040,000442: 01,3166 30002 CA Q
052041,000443: 01,3167 54130 TS BUF # FOR LOCATING CCS PRIORITY + X INSTR.
052042,000444: 01,3170 16710 TCF Q+2
052043,000445:
052044,000446: # # Page 1220
052045,000447: # IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTINE IS NOT A JOB IN ITSELF,
052046,000448: # BUT RATHER A SUBROUTINE OF THE EXECUTIVE.
052047,000449:
052048,000450: 01,3171 1361 EBANK= SELFRET # SELF-CHECK STORAGE IN EBANK.
052049,000451:
052050,000452: 01,3171 44772 DUMMYJOB CS ZERO # SET NEWJOB TO -0 FOR IDLING.
052051,000453: 01,3172 54067 TS NEWJOB
052052,000454: 01,3173 00003 +2 RELINT
052053,000455: 01,3174 44767 CS TWO # TURN OFF THE ACTIVITY LIGHT.
052054,000456: 01,3175 00006 EXTEND
052055,000457: 01,3176 03011 WAND DSALMOUT
052056,000458: 01,3177 10067 ADVAN CCS NEWJOB # IS A NEWJOB ACTIVE ?
052057,000459: 01,3200 13002 TCF NUCHANG2 # YES... ONE REQUIRING A CHANGE JOB.
052058,000460: 01,3201 34767 +2 CAF TWO # NEW JOB ALREADY IN POSITION FOR
052059,000461: 01,3202 13207 TCF NUDIRECT # EXECUTION.
052060,000462:
052061,000463: 01,3203 31361 CA SELFRET
052062,000464: 01,3204 54001 TS L # PUT RETURN ADDRESS IN L.
052063,000465: 01,3205 33113 CAF SELFBANK
052064,000466: 01,3206 15215 TCF SUPDXCHZ +1 # AND DISPATCH JOB.
052065,000467:
052066,000468: 01,3207 00006 NUDIRECT EXTEND # TURN THE GREEN LIGHT BACK ON.
052067,000469: 01,3210 05011 WOR DSALMOUT
052068,000470: 01,3211 52165 DXCH LOC # JOBS STARTED IN THIS FASHION MUST BE
052069,000471: 01,3212 15214 TCF SUPDXCHZ
052070,000472:
052071,000473: 4000 SETLOC EXECF2
052072,000474: 4000 BANK
052073,000475:
052074,000476: 5214 COUNT* $$/EXEC
052075,000477:
052076,000478: # SUPDXCHZ -- ROUTINE TO TRANSFER TO SUPERBANK.
052077,000479: # CALLING SEQUENCE:
052078,000480: # TCF SUPDXCHZ # WITH 2CADR OF DESIRED LOCATION IN A + L.
052079,000481:
052080,000482: 5214 56001 SUPDXCHZ XCH L # BASIC.
052081,000483: 5215 00006 +1 EXTEND
052082,000484: 5216 01007 WRITE SUPERBNK
052083,000485: 5217 54006 TS BBANK
052084,000486: 5220 00001 TC L
052085,000487:
052086,000488: 5221 77677 NEG100 OCT 77677
End of include-file EXECUTIVE.agc. Parent file is MAIN.agc