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