Source Code
These source code files are a reconstruction of Sundance, the Apollo 9 LM (Lunar Module) AGC
(Apollo Guidance Computer) flight software, created from binary dumps of original core rope
program modules, as follows:
Since only binary dumps (rather than listings) of Sundance are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
042500,000002: ## Copyright: Public domain.
042501,000003: ## Filename: EXECUTIVE.agc
042502,000004: ## Purpose: A section of a reconstructed, mixed version of Sundance
042503,000005: ## It is part of the reconstructed source code for the Lunar
042504,000006: ## Module's (LM) Apollo Guidance Computer (AGC) for Apollo 9.
042505,000007: ## No original listings of this program are available;
042506,000008: ## instead, this file was created via disassembly of dumps
042507,000009: ## of various revisions of Sundance core rope modules.
042508,000010: ## Assembler: yaYUL
042509,000011: ## Contact: Ron Burkey <info@sandroid.org>.
042510,000012: ## Website: www.ibiblio.org/apollo/index.html
042511,000013: ## Mod history: 2020-06-17 MAS Created from Luminary 69.
042512,000014:
042513,000015: ## Sundance 292
042514,000016:
042515,000017: 5142 BLOCK 02
042516,000018: # TO ENTER A JOB REQUEST REQUIRING NO VAC AREA:
042517,000019:
042518,000020: 5142 COUNT* $$/EXEC
042519,000021: 5142 00004 NOVAC INHINT
042520,000022: 5143 65234 AD FAKEPRET # LOC(MPAC +6) - LOC(QPRET)
042521,000023: 5144 54063 TS NEWPRIO # PRIORITY OF NEW JOB + NOVAC C(FIXLOC)
042522,000024:
042523,000025: 5145 00006 EXTEND
042524,000026: 5146 50002 INDEX Q # Q WILL BE UNDISTURBED THROUGHOUT.
042525,000027: 5147 30001 DCA 0 # 2CADR OF JOB ENTERED.
042526,000028: 5150 52066 DXCH NEWLOC
042527,000029: 5151 35233 CAF EXECBANK
042528,000030: 5152 56004 XCH FBANK
042529,000031: 5153 54061 TS EXECTEM1
042530,000032: 5154 12444 TCF NOVAC2 # ENTER EXECUTIVE BANK.
042531,000033:
042532,000034: # TO ENTER A JOB REQUEST REQUIRING A VAC AREA - E.G., ALL (PARTIALLY) INTERPRETIVE JOBS.
042533,000035:
042534,000036: 5155 00004 FINDVAC INHINT
042535,000037: 5156 54063 TS NEWPRIO
042536,000038: 5157 00006 EXTEND
042537,000039: 5160 50002 INDEX Q
042538,000040: 5161 30001 DCA 0
042539,000041: 5162 52066 SPVACIN DXCH NEWLOC
042540,000042: 5163 35233 CAF EXECBANK
042541,000043: 5164 56004 XCH FBANK
042542,000044: 5165 12422 TCF FINDVAC2 # OFF TO EXECUTIVE SWITCHED-BANK.
042543,000045:
042544,000046: # TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L:
042545,000047:
042546,000048: # USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO.
042547,000049:
042548,000050: 5166 56002 SPVAC XCH Q
042549,000051: 5167 67720 AD NEG2
042550,000052: 5170 56002 XCH Q
042551,000053: 5171 15162 TCF SPVACIN
042552,000054:
042553,000055: # TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED:
042554,000056:
042555,000057: 5172 22002 CHANG1 LXCH Q
042556,000058: 5173 35233 CAF EXECBANK
042557,000059: 5174 56006 XCH BBANK
042558,000060: 5175 12523 TCF CHANJOB
042559,000061:
042560,000062: # TO SUSPEND AN INTERPRETIVE JOB:
042561,000063:
042562,000064: 5176 40164 CHANG2 CS LOC # NEGATIVE LOC SHOWS JOB = INTERPRETIVE.
042563,000065: # ITRACE (4) REFERS TO "CHANG2".
042564,000066: 5177 54001 TS L
042565,000067:
042566,000068: 5200 35233 +2 CAF EXECBANK
042567,000069: 5201 54006 TS BBANK
042568,000070: 5202 12522 TCF CHANJOB -1
042569,000071:
042570,000072: # TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.):
042571,000073:
042572,000074: 5203 54164 JOBSLEEP TS LOC
042573,000075: 5204 35233 CAF EXECBANK
042574,000076: 5205 54004 TS FBANK
042575,000077: 5206 12613 TCF JOBSLP1
042576,000078:
042577,000079: # TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION:
042578,000080:
042579,000081: 5207 00004 JOBWAKE INHINT
042580,000082: 5210 54065 TS NEWLOC
042581,000083: 5211 45025 CS TWO # EXIT IS VIA FINDVAC/NOVAC PROCEDURES.
042582,000084: 5212 26002 ADS Q
042583,000085: 5213 35233 CAF EXECBANK
042584,000086: 5214 56004 XCH FBANK
042585,000087: 5215 12640 TCF JOBWAKE2
042586,000088:
042587,000089: # TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION:
042588,000090:
042589,000091: 5216 00004 PRIOCHNG INHINT # NEW PRIORITY ARRIVES IN A. RETURNS TO
042590,000092: 5217 54063 TS NEWPRIO # CALLER AS SOON AS NEW JOB PRIORITY IS
042591,000093: 5220 35233 CAF EXECBANK # HIGHEST. PREPARE FOR POSSIBLE BASIC-
042592,000094: 5221 56006 XCH BBANK # STYLE CHANGE-JOB.
042593,000095: 5222 54165 TS BANKSET
042594,000096: 5223 30002 CA Q
042595,000097: 5224 12707 TCF PRIOCH2
042596,000098:
042597,000099: # TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS:
042598,000100:
042599,000101: 5225 35233 ENDOFJOB CAF EXECBANK
042600,000102: 5226 54004 TS FBANK
042601,000103: 5227 12720 TCF ENDJOB1
042602,000104:
042603,000105: 5230 30061 ENDFIND CA EXECTEM1 # RETURN TO CALLER AFTER JOB ENTRY
042604,000106: 5231 54004 TS FBANK # COMPLETE.
042605,000107: 5232 16715 TCF Q+2
042606,000108: 5233 02422 EXECBANK CADR FINDVAC2
042607,000109:
042608,000110: 5234 00110 FAKEPRET ADRES MPAC -36D # LOC(MPAC +6) - LOC(QPRET)
042609,000111:
042610,000112: # LOCATE AN AVAILABLE VAC AREA.
042611,000113:
042612,000114: 01,2422 BANK 01
042613,000115: 01,2422 COUNT* $$/EXEC
042614,000116: 01,2422 54061 FINDVAC2 TS EXECTEM1 # (SAVE CALLER'S BANK FIRST.)
042615,000117: 01,2423 10400 CCS VAC1USE
042616,000118: 01,2424 12437 TCF VACFOUND
042617,000119: 01,2425 10454 CCS VAC2USE
042618,000120: 01,2426 12437 TCF VACFOUND
042619,000121: 01,2427 10530 CCS VAC3USE
042620,000122: 01,2430 12437 TCF VACFOUND
042621,000123: 01,2431 10604 CCS VAC4USE
042622,000124: 01,2432 12437 TCF VACFOUND
042623,000125: 01,2433 10660 CCS VAC5USE
042624,000126: 01,2434 12437 TCF VACFOUND
042625,000127: 01,2435 05713 TC ABORT
042626,000128: 01,2436 01201 OCT 1201 # NO VAC AREAS.
042627,000129:
042628,000130: 01,2437 65025 VACFOUND AD TWO # RESERVE THIS VAC AREA BY STORING A ZERO
042629,000131: 01,2440 22007 ZL # IN ITS VAC USE REGISTER AND STORE THE
042630,000132: 01,2441 50000 INDEX A # ADDRESS OF THE FIRST WORD OF IT IN THE
042631,000133: 01,2442 21777 LXCH 0 -1 # LOW NINE BITS OF THE PRIORITY WORD.
042632,000134: 01,2443 26063 ADS NEWPRIO
042633,000135:
042634,000136: 01,2444 35030 NOVAC2 CAF ZERO # NOVAC ENTERS HERE. FIND A CORE SET.
042635,000137: 01,2445 54064 TS LOCCTR
042636,000138: 01,2446 32453 CAF NO.CORES # SEVEN SETS OF ELEVEN REGISTERS EACH.
042637,000139: 01,2447 54062 NOVAC3 TS EXECTEM2
042638,000140: 01,2450 50064 INDEX LOCCTR
042639,000141: 01,2451 10167 CCS PRIORITY # EACH PRIORITY REGISTER CONTAINS -0 IF
042640,000142: 01,2452 12513 TCF NEXTCORE # THE CORRESPONDING CORE SET IS AVAILABLE.
042641,000143: 01,2453 00006 NO.CORES DEC 6 B-14
042642,000144: 01,2454 12513 TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY
042643,000145: # BUT A DORMANT JOB'S PRIORITY IS NEGATIVE
042644,000146:
042645,000147: 01,2455 30063 CORFOUND CA NEWPRIO # SET THE PRIORITY OF THIS JOB IN THE CORE
042646,000148: 01,2456 50064 INDEX LOCCTR # SET'S PRIORITY REGISTER AND SET THE
042647,000149: 01,2457 54167 TS PRIORITY # JOB'S PUSH-DOWN POINTER AT THE BEGINNING
042648,000150: 01,2460 75054 MASK LOW9 # OF THE WORK AREA AND OVERFLOW INDICATOR
042649,000151: 01,2461 50064 INDEX LOCCTR
042650,000152: 01,2462 54166 TS PUSHLOC # OFF TO PREPARE FOR INTERPRETIVE PROGRAMS
042651,000153:
042652,000154: 01,2463 10064 CCS LOCCTR # IF CORE SET ZERO IS BEING LOADED, SET UP
042653,000155: 01,2464 12500 TCF SETLOC # OVFIND AND FIXLOC IMMEDIATELY.
042654,000156: 01,2465 54121 TS OVFIND
042655,000157: 01,2466 30166 CA PUSHLOC
042656,000158: 01,2467 54120 TS FIXLOC
042657,000159:
042658,000160: 01,2470 10067 SPECTEST CCS NEWJOB # SEE IF ANY ACTIVE JOBS WAITING (RARE).
042659,000161: 01,2471 12500 TCF SETLOC # MUST BE AWAKENED BUT UNCHANGED JOB.
042660,000162: 01,2472 05723 TC CCSHOLE
042661,000163: 01,2473 05723 TC CCSHOLE
042662,000164: 01,2474 54067 TS NEWJOB # +0 SHOWS ACTIVE JOB ALREADY SET.
042663,000165: 01,2475 52066 DXCH NEWLOC
042664,000166: 01,2476 52165 DXCH LOC
042665,000167: 01,2477 15230 TCF ENDFIND
042666,000168:
042667,000169: 01,2500 52066 SETLOC DXCH NEWLOC # SET UP THE LOCATION REGISTERS FOR THIS
042668,000170: 01,2501 50064 INDEX LOCCTR
042669,000171: 01,2502 52165 DXCH LOC
042670,000172: 01,2503 50067 INDEX NEWJOB # THIS INDEX INSTRUCTION INSURES THAT THE
042671,000173: 01,2504 40167 CS PRIORITY # HIGHEST ACTIVE PRIORITY WILL BE COMPARED
042672,000174: 01,2505 60063 AD NEWPRIO # WITH THE NEW PRIORITY TO SEE IF NEWJOB
042673,000175: 01,2506 00006 EXTEND # SHOULD BE SET TO SIGNAL A SWITCH.
042674,000176: 01,2507 65230 BZMF ENDFIND
042675,000177: 01,2510 30064 CA LOCCTR # LOCCTR IS LEFT SET AT THIS CORE SET IF
042676,000178: 01,2511 54067 TS NEWJOB # THE CALLER WANTS TO LOAD ANY MPAC
042677,000179: 01,2512 15230 TCF ENDFIND # REGISTERS, ETC.
042678,000180:
042679,000181: 01,2513 32650 NEXTCORE CAF COREINC
042680,000182: 01,2514 26064 ADS LOCCTR
042681,000183: 01,2515 10062 CCS EXECTEM2
042682,000184: 01,2516 12447 TCF NOVAC3
042683,000185: 01,2517 05713 TC ABORT # NO CORE SETS.
042684,000186: 01,2520 01202 OCT 1202
042685,000187:
042686,000188: # THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB.
042687,000189:
042688,000190: 01,2521 22164 -2 LXCH LOC
042689,000191: 01,2522 30165 -1 CAE BANKSET # BANKSET, NOT BBANK, HAS RIGHT CONTENTS.
042690,000192: 01,2523 00004 CHANJOB INHINT
042691,000193: 01,2524 00006 EXTEND
042692,000194: 01,2525 04007 ROR SUPERBNK # PICK UP CURRENT SBANK FOR BBCON
042693,000195: 01,2526 56001 XCH L # LOC IN A AND BBCON IN L.
042694,000196: 01,2527 50067 +4 INDEX NEWJOB # SWAP LOC AND BANKSET.
042695,000197: 01,2530 52165 DXCH LOC
042696,000198: 01,2531 52165 DXCH LOC
042697,000199:
042698,000200: 01,2532 30165 CAE BANKSET
042699,000201: 01,2533 00006 EXTEND
042700,000202: 01,2534 01007 WRITE SUPERBNK # SET SBANK FOR NEW JOB.
042701,000203: 01,2535 52155 DXCH MPAC # SWAP MULTI-PURPOSE ACCUMULATOR AREAS.
042702,000204: 01,2536 50067 INDEX NEWJOB
042703,000205: 01,2537 52155 DXCH MPAC
042704,000206: 01,2540 52155 DXCH MPAC
042705,000207: 01,2541 52157 DXCH MPAC +2
042706,000208: 01,2542 50067 INDEX NEWJOB
042707,000209: 01,2543 52157 DXCH MPAC +2
042708,000210: 01,2544 52157 DXCH MPAC +2
042709,000211: 01,2545 52161 DXCH MPAC +4
042710,000212: 01,2546 50067 INDEX NEWJOB
042711,000213: 01,2547 52161 DXCH MPAC +4
042712,000214: 01,2550 52161 DXCH MPAC +4
042713,000215: 01,2551 52163 DXCH MPAC +6
042714,000216: 01,2552 50067 INDEX NEWJOB
042715,000217: 01,2553 52163 DXCH MPAC +6
042716,000218: 01,2554 52163 DXCH MPAC +6
042717,000219:
042718,000220: 01,2555 35030 CAF ZERO
042719,000221: 01,2556 56121 XCH OVFIND # MAKE PUSHLOC NEGATIVE IF OVFIND NZ.
042720,000222: 01,2557 00006 EXTEND
042721,000223: 01,2560 12563 BZF +3
042722,000224: 01,2561 40166 CS PUSHLOC
042723,000225: 01,2562 54166 TS PUSHLOC
042724,000226:
042725,000227: 01,2563 52167 DXCH PUSHLOC
042726,000228: 01,2564 50067 INDEX NEWJOB
042727,000229: 01,2565 52167 DXCH PUSHLOC
042728,000230: 01,2566 52167 DXCH PUSHLOC # SWAPS PUSHLOC AND PRIORITY.
042729,000231: 01,2567 35054 CAF LOW9 # SET FIXLOC TO BASE OF VAC AREA.
042730,000232: 01,2570 70167 MASK PRIORITY
042731,000233: 01,2571 54120 TS FIXLOC
042732,000234:
042733,000235: 01,2572 10166 CCS PUSHLOC # SET OVERFLOW INDICATOR ACCORDING TO
042734,000236: 01,2573 35030 CAF ZERO
042735,000237: 01,2574 12601 TCF ENDPRCHG -1
042736,000238:
042737,000239: 01,2575 40166 CS PUSHLOC
042738,000240: 01,2576 54166 TS PUSHLOC
042739,000241: 01,2577 35026 CAF ONE
042740,000242: 01,2600 56121 XCH OVFIND
042741,000243: 01,2601 54067 TS NEWJOB
042742,000244:
042743,000245: 01,2602 00003 ENDPRCHG RELINT
042744,000246: 01,2603 52165 DXCH LOC # BASIC JOBS HAVE POSITIVE ADDRESSES, SO
042745,000247: 01,2604 00006 EXTEND # DISPATCH WITH A DTCB.
042746,000248: 01,2605 62607 BZMF +2 # IF INTERPRETIVE, SET UP EBANK, ETC.
042747,000249: 01,2606 52006 DTCB
042748,000250:
042749,000251: 01,2607 40000 COM # EPILOGUE TO JOB CHANGE FOR INTERPRETIVE
042750,000252: 01,2610 65026 AD ONE
042751,000253: 01,2611 54164 TS LOC # RESUME.
042752,000254: 01,2612 16024 TCF INTRSM
042753,000255:
042754,000256: # COMPLETE JOBSLEEP PREPARATIONS.
042755,000257:
042756,000258: 01,2613 00004 JOBSLP1 INHINT
042757,000259: 01,2614 40167 CS PRIORITY # NNZ PRIORITY SHOWS JOB ASLEEP.
042758,000260: 01,2615 54167 TS PRIORITY
042759,000261: 01,2616 36050 CAF LOW7
042760,000262: 01,2617 70006 MASK BBANK
042761,000263: 01,2620 00006 EXTEND
042762,000264: 01,2621 04007 ROR SUPERBNK # SAVE OLD SUPERBANK VALUE.
042763,000265: 01,2622 54165 TS BANKSET
042764,000266: 01,2623 45030 CS ZERO
042765,000267: 01,2624 54131 JOBSLP2 TS BUF +1 # HOLDS - HIGHEST PRIORITY.
042766,000268: 01,2625 12735 TCF EJSCAN # SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB.
042767,000269:
042768,000270: 01,2626 00004 NUCHANG2 INHINT # QUICK... DONT LET NEWJOB CHANGE TO +0.
042769,000271: 01,2627 10067 CCS NEWJOB
042770,000272: 01,2630 12633 TCF +3 # NEWJOB STILL PNZ
042771,000273: 01,2631 00003 RELINT # NEW JOB HAS CHANGED TO +0. WAKE UP JOB
042772,000274: 01,2632 13027 TCF ADVAN +2 # VIA NUDIRECT. (VERY RARE CASE.)
042773,000275:
042774,000276: 01,2633 35025 CAF TWO
042775,000277: 01,2634 00006 EXTEND
042776,000278: 01,2635 05011 WOR DSALMOUT # TURN ON ACTIVITY LIGHT
042777,000279: 01,2636 52165 DXCH LOC # AND SAVE ADDRESS INFO FOR BENEFIT OF
042778,000280: 01,2637 12527 TCF CHANJOB +4 # POSSIBLE SLEEPING JOB.
042779,000281:
042780,000282: # TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE
042781,000283: # LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND,
042782,000284: # LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE.
042783,000285:
042784,000286: 01,2640 54061 JOBWAKE2 TS EXECTEM1
042785,000287: 01,2641 35030 CAF ZERO # BEGIN CORE SET SCAN.
042786,000288: 01,2642 54064 TS LOCCTR
042787,000289: 01,2643 32453 CAF NO.CORES
042788,000290: 01,2644 54062 JOBWAKE4 TS EXECTEM2
042789,000291: 01,2645 50064 INDEX LOCCTR
042790,000292: 01,2646 10167 CCS PRIORITY
042791,000293: 01,2647 12652 TCF JOBWAKE3 # ACTIVE JOB - CHECK NEXT CORE SET.
042792,000294: 01,2650 00014 COREINC DEC 12 B-14 # 12 REGISTERS PER CORE SET.
042793,000295: 01,2651 12661 TCF WAKETEST # SLEEPING JOB - SEE IF CADR MATCHES.
042794,000296:
042795,000297: 01,2652 32650 JOBWAKE3 CAF COREINC
042796,000298: 01,2653 26064 ADS LOCCTR
042797,000299: 01,2654 10062 CCS EXECTEM2
042798,000300: 01,2655 12644 TCF JOBWAKE4
042799,000301: 01,2656 45026 CS ONE # EXIT IF SLEEPING JOB NOT FOUND.
042800,000302: 01,2657 54064 TS LOCCTR
042801,000303: 01,2660 15230 TCF ENDFIND
042802,000304:
042803,000305: 01,2661 40065 WAKETEST CS NEWLOC
042804,000306: 01,2662 50064 INDEX LOCCTR
042805,000307: 01,2663 60164 AD LOC
042806,000308: 01,2664 00006 EXTEND
042807,000309: 01,2665 12667 BZF +2 # IF MATCH.
042808,000310: 01,2666 12652 TCF JOBWAKE3 # EXAMINE NEXT CORE SET IF NO MATCH.
042809,000311:
042810,000312: 01,2667 50064 INDEX LOCCTR # RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE
042811,000313: 01,2670 40167 CS PRIORITY
042812,000314: 01,2671 54063 TS NEWPRIO
042813,000315: 01,2672 50064 INDEX LOCCTR
042814,000316: 01,2673 54167 TS PRIORITY
042815,000317:
042816,000318: 01,2674 44362 CS FBANKMSK # MAKE UP THE 2CADR OF THE WAKE ADDRESS
042817,000319: 01,2675 70065 MASK NEWLOC # USING THE CADR IN NEWLOC AND THE EBANK
042818,000320: 01,2676 65014 AD 2K # HALF OF BBANK SAVED IN BANKSET.
042819,000321: 01,2677 56065 XCH NEWLOC
042820,000322: 01,2700 74362 MASK FBANKMSK
042821,000323: 01,2701 50064 INDEX LOCCTR
042822,000324: 01,2702 60165 AD BANKSET
042823,000325: 01,2703 54066 TS NEWLOC +1
042824,000326:
042825,000327: 01,2704 10064 CCS LOCCTR # SPECIAL TREATMENT IF THIS JOB WAS
042826,000328: 01,2705 12500 TCF SETLOC # ALREADY IN THE RUN (0) POSITION.
042827,000329: 01,2706 12470 TCF SPECTEST
042828,000330:
042829,000331: # PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY.
042830,000332:
042831,000333: 01,2707 54164 PRIOCH2 TS LOC
042832,000334: 01,2710 35030 CAF ZERO # SET FLAG TO TELL ENDJOB SCANNER IF THIS
042833,000335: 01,2711 54130 TS BUF # JOB IS STILL HIGHEST PRIORITY.
042834,000336: 01,2712 35054 CAF LOW9
042835,000337: 01,2713 70167 MASK PRIORITY
042836,000338: 01,2714 60063 AD NEWPRIO
042837,000339: 01,2715 54167 TS PRIORITY
042838,000340: 01,2716 40000 COM
042839,000341: 01,2717 12624 TCF JOBSLP2 # AND TO EJSCAN.
042840,000342:
042841,000343: # RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY.
042842,000344:
042843,000345: 01,2720 00004 ENDJOB1 INHINT
042844,000346: 01,2721 45030 CS ZERO
042845,000347: 01,2722 54131 TS BUF +1
042846,000348: 01,2723 56167 XCH PRIORITY
042847,000349: 01,2724 75054 MASK LOW9
042848,000350: 01,2725 54001 TS L
042849,000351:
042850,000352: 01,2726 45234 CS FAKEPRET
042851,000353: 01,2727 60001 AD L
042852,000354:
042853,000355: 01,2730 00006 EXTEND
042854,000356: 01,2731 62735 BZMF EJSCAN # NOVAC ENDOFJOB
042855,000357:
042856,000358: 01,2732 10001 CCS L
042857,000359: 01,2733 50000 INDEX A
042858,000360: 01,2734 54000 TS 0
042859,000361:
042860,000362: 01,2735 10203 EJSCAN CCS PRIORITY +12D
042861,000363: 01,2736 03002 TC EJ1
042862,000364: 01,2737 05723 TC CCSHOLE
042863,000365: 01,2740 12741 TCF +1
042864,000366:
042865,000367: 01,2741 10217 CCS PRIORITY +24D # EXAMINE EACH PRIORITY REGISTER TO FIND
042866,000368: 01,2742 03002 TC EJ1 # THE JOB OF HIGHEST ACTIVE PRIORITY.
042867,000369: 01,2743 05723 TC CCSHOLE
042868,000370: 01,2744 12745 TCF +1
042869,000371:
042870,000372: 01,2745 10233 CCS PRIORITY +36D
042871,000373: 01,2746 03002 TC EJ1
042872,000374: 01,2747 67610 -CCSPR -CCS PRIORITY
042873,000375: 01,2750 12751 TCF +1
042874,000376:
042875,000377: 01,2751 10247 CCS PRIORITY +48D
042876,000378: 01,2752 03002 TC EJ1
042877,000379: 01,2753 05723 TC CCSHOLE
042878,000380: 01,2754 12755 TCF +1
042879,000381:
042880,000382: 01,2755 10263 CCS PRIORITY +60D
042881,000383: 01,2756 03002 TC EJ1
042882,000384: 01,2757 05723 TC CCSHOLE
042883,000385: 01,2760 12761 TCF +1
042884,000386:
042885,000387: 01,2761 10277 CCS PRIORITY +72D
042886,000388: 01,2762 03002 TC EJ1
042887,000389: 01,2763 05723 TC CCSHOLE
042888,000390: 01,2764 12765 TCF +1
042889,000391:
042890,000392: # EVALUATE THE RESULTS OF THE SCAN.
042891,000393:
042892,000394: 01,2765 10131 CCS BUF +1 # SEE IF THERE ARE ANY ACTIVE JOBS WAITING
042893,000395: 01,2766 05723 TC CCSHOLE
042894,000396: 01,2767 05723 TC CCSHOLE
042895,000397:
042896,000398: 01,2770 12772 TCF +2
042897,000399: 01,2771 13017 TCF DUMMYJOB
042898,000400: 01,2772 10130 CCS BUF # BUF IS ZERO IF THIS IS A PRIOCHNG AND
042899,000401: 01,2773 12775 TCF +2 # CHANGED PRIORITY IS STILL HIGHEST.
042900,000402: 01,2774 12601 TCF ENDPRCHG -1
042901,000403:
042902,000404: 01,2775 50000 INDEX A # OTHERWISE, SET NEWJOB TO THE RELATIVE
042903,000405: 01,2776 27777 CAF 0 -1 # ADDRESS OF THE NEW JOB'S CORE SET.
042904,000406: 01,2777 62747 AD -CCSPR
042905,000407: 01,3000 54067 TS NEWJOB
042906,000408: 01,3001 12521 TCF CHANJOB -2
042907,000409:
042908,000410: 01,3002 54132 EJ1 TS BUF +2
042909,000411: 01,3003 60131 AD BUF +1 # - OLD HIGH PRIORITY.
042910,000412: 01,3004 10000 CCS A
042911,000413: 01,3005 40132 CS BUF +2
042912,000414: 01,3006 13012 TCF EJ2 # NEW HIGH PRIORITY.
042913,000415: 01,3007 13010 NOOP
042914,000416: 01,3010 50002 INDEX Q
042915,000417: 01,3011 00002 TC 2 # PROCEED WITH SEARCH.
042916,000418:
042917,000419: 01,3012 54131 EJ2 TS BUF +1
042918,000420: 01,3013 00006 EXTEND
042919,000421: 01,3014 22130 QXCH BUF # FOR LOCATING CCS PRIORITY + X INSTR.
042920,000422: 01,3015 50130 INDEX BUF
042921,000423: 01,3016 00002 TC 2
042922,000424:
042923,000425: # IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTINE IS NOT A JOB IN ITSELF,
042924,000426: # BUT RATHER A SUBROUTINE OF THE EXECUTIVE.
042925,000427:
042926,000428: 01,3017 1361 EBANK= SELFRET # SELF-CHECK STORAGE IN EBANK.
042927,000429:
042928,000430: 01,3017 45030 DUMMYJOB CS ZERO # SET NEWJOB TO -0 FOR IDLING.
042929,000431: 01,3020 54067 TS NEWJOB
042930,000432: 01,3021 00003 RELINT
042931,000433: 01,3022 45025 CS TWO # TURN OFF THE ACTIVITY LIGHT.
042932,000434: 01,3023 00006 EXTEND
042933,000435: 01,3024 03011 WAND DSALMOUT
042934,000436: 01,3025 10067 ADVAN CCS NEWJOB # IS A NEWJOB ACTIVE?
042935,000437: 01,3026 12626 TCF NUCHANG2 # YES... ONE REQUIRING A CHANGE JOB.
042936,000438: 01,3027 35025 CAF TWO # NEW JOB ALREADY IN POSITION FOR
042937,000439: 01,3030 13036 TCF NUDIRECT # EXECUTION.
042938,000440:
042939,000441: 01,3031 31361 CA SELFRET
042940,000442: 01,3032 54001 TS L # PUT RETURN ADDRESS IN L.
042941,000443: 01,3033 33035 CAF SELFBANK
042942,000444: 01,3034 15236 TCF SUPDXCHZ +1 # AND DISPATCH JOB.
042943,000445:
042944,000446: 01,3035 1361 EBANK= SELFRET
042945,000447: 01,3035 66102 SELFBANK BBCON SELFCHK
042946,000448:
042947,000449: 01,3036 00006 NUDIRECT EXTEND # TURN THE GREEN LIGHT BACK ON.
042948,000450: 01,3037 05011 WOR DSALMOUT
042949,000451: 01,3040 52165 DXCH LOC # JOBS STARTED IN THIS FASHION MUST BE
042950,000452: 01,3041 15235 TCF SUPDXCHZ
042951,000453:
042952,000454: 5235 BLOCK 2 # IN FIXED-FIXED SO OTHERS MAY USE.
042953,000455:
042954,000456: 5235 COUNT* $$/EXEC
042955,000457: # SUPDXCHZ - ROUTINE TO TRANSFER TO SUPERBANK.
042956,000458: # CALLING SEQUENCE
042957,000459: # TCF SUPDXCHZ WITH 2CADR OF DESIRED LOCATION IN A + L.
042958,000460:
042959,000461: 5235 56001 SUPDXCHZ XCH L # BASIC.
042960,000462: 5236 00006 +1 EXTEND
042961,000463: 5237 01007 WRITE SUPERBNK
042962,000464: 5240 54006 TS BBANK
042963,000465: 5241 00001 TC L
042964,000466:
042965,000467: 5242 77677 NEG100 OCT 77677
End of include-file EXECUTIVE.agc. Parent file is MAIN.agc