Source Code
![]() |
YAYUL: ASSEMBLE REVISION 6 OF PROGRAM BOREALIS BY MSTEWART JUN. 28,2017This is a modern AGC system self-test program, though based on the Apollo-era AURORA 12 program, and was not written by the original AGC developers, but rather by Mike Stewart. All of the original AURORA 12 DAP code added by the DAP Group has been removed, and extensive new system test code has been added in its place. This allows more in-depth testing of CPU behavior, both in AGC software simulations and hardware simulations. |
004549,000002: ## Copyright: Public domain.
004550,000003: ## Filename: EXECUTIVE.agc
004551,000004: ## Purpose: This program is designed to extensively test the Apollo Guidance Computer
004552,000005: ## (specifically the LM instantiation of it). It is built on top of a heavily
004553,000006: ## stripped-down Aurora 12, with all code ostensibly added by the DAP Group
004554,000007: ## removed. Instead Borealis expands upon the tests provided by Aurora,
004555,000008: ## including corrected tests from Retread 44 and tests from Ron Burkey's
004556,000009: ## Validation.
004557,000010: ## Assembler: yaYUL
004558,000011: ## Contact: Mike Stewart <mastewar1@gmail.com>.
004559,000012: ## Website: www.ibiblio.org/apollo/index.html
004560,000013: ## Mod history: 2016-12-20 MAS Created from Aurora 12 (with much DAP stuff removed).
004561,000014: ## 2017-06-28 MAS Pulled in changes needed for BLK2->AGC from Sunburst 37
004562,000015:
004563,000016: 4344 SETLOC ENDSUBSF
004564,000017:
004565,000018: # TO ENTER A JOB REQUEST REQUIRING NO VAC AREA:
004566,000019:
004567,000020: 4344 54070 NOVAC TS NEWPRIO # SAVE PRIORITY OF NEW JOB.
004568,000021: 4345 00006 EXTEND
004569,000022: 4346 50002 INDEX Q # Q WILL BE UNDISTURBED THROUGHOUT.
004570,000023: 4347 30001 DCA 0 # 2CADR OF JOB ENTERED.
004571,000024: 4350 52073 DXCH NEWLOC
004572,000025: 4351 34430 CAF EXECBANK
004573,000026: 4352 56004 XCH FBANK
004574,000027: 4353 54065 TS EXECTEM1
004575,000028: 4354 12257 TCF NOVAC2 # ENTER EXECUTIVE BANK.
004576,000029:
004577,000030: # TO ENTER A JOB REQUEST REQUIRING A VAC AREA - E.G., ALL (PARTIALLY) INTERPRETIVE JOBS.
004578,000031:
004579,000032: 4355 54070 FINDVAC TS NEWPRIO
004580,000033: 4356 00006 EXTEND
004581,000034: 4357 50002 INDEX Q
004582,000035: 4360 30001 DCA 0
004583,000036: 4361 52073 DXCH NEWLOC
004584,000037: 4362 34430 CAF EXECBANK
004585,000038: 4363 56004 XCH FBANK
004586,000039: 4364 12235 TCF FINDVAC2 # OFF TO EXECUTIVE SWITCHED-BANK.
004587,000040:
004588,000041: # TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED:
004589,000042:
004590,000043: 4365 34430 CHANG1 CAF EXECBANK
004591,000044: 4366 54001 TS L
004592,000045: 4367 30002 CA Q
004593,000046: 4370 22006 LXCH BBANK
004594,000047: 4371 00004 +4 INHINT
004595,000048: 4372 12335 TCF CHANJOB
004596,000049:
004597,000050: # TO SUSPEND AN INTERPRETIVE JOB:
004598,000051:
004599,000052: 4373 34430 CHANG2 CAF EXECBANK
004600,000053: # ITRACE (4) REFERS TO "CHANG2".
004601,000054: 4374 54006 TS BBANK
004602,000055: 4375 40150 CS LOC # NEGATIVE LOC SHOWS JOB = INTERPRETIVE.
004603,000056: 4376 22151 LXCH BANKSET # BANKSET, NOT BBANK, HAS RIGHT CONTENTS.
004604,000057:
004605,000058: 4377 14371 TCF CHANG1 +4
004606,000059:
004607,000060:
004608,000061: # TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.):
004609,000062:
004610,000063: 4400 54150 JOBSLEEP TS LOC
004611,000064: 4401 34430 CAF EXECBANK
004612,000065: 4402 54004 TS FBANK
004613,000066: 4403 12416 TCF JOBSLP1
004614,000067:
004615,000068: # TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION:
004616,000069:
004617,000070: 4404 54072 JOBWAKE TS NEWLOC
004618,000071: 4405 47670 CS TWO # EXIT IS VIA FINDVAC/NOVAC PROCEDURES.
004619,000072: 4406 26002 ADS Q
004620,000073: 4407 34430 CAF EXECBANK
004621,000074: 4410 56004 XCH FBANK
004622,000075: 4411 12427 TCF JOBWAKE2
004623,000076:
004624,000077: # TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION:
004625,000078:
004626,000079: 4412 00004 PRIOCHNG INHINT # NEW PRIORITY ARRIVES IN A. RETURNS TO
004627,000080: 4413 54070 TS NEWPRIO # CALLER AS SOON AS NEW JOB PRIORITY IS
004628,000081: 4414 34430 CAF EXECBANK # HIGHEST. PREPARE FOR POSSIBLE BASIC-
004629,000082: 4415 56006 XCH BBANK # STYLE CHANGE-JOB.
004630,000083: 4416 54151 TS BANKSET
004631,000084: 4417 30002 CA Q
004632,000085: 4420 12476 TCF PRIOCH2
004633,000086:
004634,000087: # TO FREE THE DISPLAY BEFORE ENDOFJOB:
004635,000088:
004636,000089: 4421 05373 EJFREE TC FREEDSP
004637,000090:
004638,000091: # TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS:
004639,000092:
004640,000093: 4422 34430 ENDOFJOB CAF EXECBANK
004641,000094: 4423 54004 TS FBANK
004642,000095: 4424 12507 TCF ENDJOB1
004643,000096:
004644,000097: 4425 30065 ENDFIND CA EXECTEM1 # RETURN TO CALLER AFTER JOB ENTRY
004645,000098: 4426 54004 TS FBANK # COMPLETE.
004646,000099: 4427 16724 TCF Q+2
004647,000100: 4430 02235 EXECBANK CADR FINDVAC2
004648,000101:
004649,000102:
004650,000103: # LOCATE AN AVAILABLE VAC AREA.
004651,000104:
004652,000105: 01,2235 SETLOC ENDINTS1
004653,000106:
004654,000107: 01,2235 54065 FINDVAC2 TS EXECTEM1 # (SAVE CALLER'S BANK FIRST.)
004655,000108: 01,2236 10431 CCS VAC1USE
004656,000109: 01,2237 12252 TCF VACFOUND
004657,000110: 01,2240 10505 CCS VAC2USE
004658,000111: 01,2241 12252 TCF VACFOUND
004659,000112: 01,2242 10561 CCS VAC3USE
004660,000113: 01,2243 12252 TCF VACFOUND
004661,000114: 01,2244 10635 CCS VAC4USE
004662,000115: 01,2245 12252 TCF VACFOUND
004663,000116: 01,2246 10711 CCS VAC5USE
004664,000117: 01,2247 12252 TCF VACFOUND
004665,000118: 01,2250 05440 TC ABORT
004666,000119: 01,2251 01201 OCT 1201 # NO VAC AREAS.
004667,000120:
004668,000121: 01,2252 67670 VACFOUND AD TWO # RESERVE THIS VAC AREA BY STORING A ZERO
004669,000122: 01,2253 22007 ZL # IN ITS VAC USE REGISTER AND STORE THE
004670,000123: 01,2254 50000 INDEX A # ADDRESS OF THE FIRST WORD OF IT IN THE
004671,000124: 01,2255 21777 LXCH 0 -1 # LOW NINE BITS OF THE PRIORITY WORD.
004672,000125: 01,2256 26070 ADS NEWPRIO
004673,000126:
004674,000127: 01,2257 37675 NOVAC2 CAF ZERO # NOVAC ENTERS HERE. FIND A CORE SET.
004675,000128: 01,2260 54071 TS LOCCTR
004676,000129: 01,2261 32266 CAF NO.CORES # SEVEN SETS OF ELEVEN REGISTERS EACH.
004677,000130: 01,2262 54066 NOVAC3 TS EXECTEM2
004678,000131: 01,2263 50071 INDEX LOCCTR
004679,000132: 01,2264 10153 CCS PRIORITY # EACH PRIORITY REGISTER CONTAINS -0 IF
004680,000133: 01,2265 12326 TCF NEXTCORE # THE CORRESPONDING CORE SET IS AVAILABLE.
004681,000134: 01,2266 00006 NO.CORES DEC 6 B-14
004682,000135: 01,2267 12326 TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY
004683,000136: # BUT A DORMANT JOB'S PRIORITY IS NEGATIVE
004684,000137:
004685,000138:
004686,000139: 01,2270 30070 CORFOUND CA NEWPRIO # SET THE PRIORITY OF THIS JOB IN THE CORE
004687,000140: 01,2271 50071 INDEX LOCCTR # SET'S PRIORITY REGISTER AND SET THE
004688,000141: 01,2272 54153 TS PRIORITY # JOB'S PUSH-DOWN POINTER AT THE BEGINNING
004689,000142: 01,2273 77703 MASK LOW9 # OF THE WORK AREA AND OVERFLOW INDICATOR
004690,000143: 01,2274 50071 INDEX LOCCTR
004691,000144: 01,2275 54152 TS PUSHLOC # OFF TO PREPARE FOR INTERPRETIVE PROGRAMS
004692,000145:
004693,000146: 01,2276 10071 CCS LOCCTR # IF CORE SET ZERO IS BEING LOADED, SET UP
004694,000147: 01,2277 12313 TCF SETLOC # OVFIND AND FIXLOC IMMEDIATELY.
004695,000148: 01,2300 54105 TS OVFIND
004696,000149: 01,2301 30152 CA PUSHLOC
004697,000150: 01,2302 54104 TS FIXLOC
004698,000151:
004699,000152: 01,2303 10067 SPECTEST CCS NEWJOB # SEE IF ANY ACTIVE JOBS WAITING (RARE).
004700,000153: 01,2304 12313 TCF SETLOC # MUST BE AWAKENED BUT UNCHANGED JOB.
004701,000154: 01,2305 05456 TC CCSHOLE
004702,000155: 01,2306 05456 TC CCSHOLE
004703,000156: 01,2307 54067 TS NEWJOB # +0 SHOWS ACTIVE JOB ALREADY SET.
004704,000157: 01,2310 52073 DXCH NEWLOC
004705,000158: 01,2311 52151 DXCH LOC
004706,000159: 01,2312 14425 TCF ENDFIND
004707,000160:
004708,000161: 01,2313 52073 SETLOC DXCH NEWLOC # SET UP THE LOCATION REGISTERS FOR THIS
004709,000162: 01,2314 50071 INDEX LOCCTR
004710,000163: 01,2315 52151 DXCH LOC
004711,000164: 01,2316 50067 INDEX NEWJOB # THIS INDEX INSTRUCTION INSURES THAT THE
004712,000165: 01,2317 40153 CS PRIORITY # HIGHEST ACTIVE PRIORITY WILL BE COMPARED
004713,000166: 01,2320 60070 AD NEWPRIO # WITH THE NEW PRIORITY TO SEE IF NEWJOB
004714,000167: 01,2321 00006 EXTEND # SHOULD BE SET TO SIGNAL A SWITCH.
004715,000168: 01,2322 64425 BZMF ENDFIND
004716,000169: 01,2323 30071 CA LOCCTR # LOCCTR IS LEFT SET AT THIS CORE SET IF
004717,000170: 01,2324 54067 TS NEWJOB # THE CALLER WANTS TO LOAD ANY MPAC
004718,000171: 01,2325 14425 TCF ENDFIND # REGISTERS, ETC.
004719,000172:
004720,000173: 01,2326 32437 NEXTCORE CAF COREINC
004721,000174: 01,2327 26071 ADS LOCCTR
004722,000175: 01,2330 10066 CCS EXECTEM2
004723,000176: 01,2331 12262 TCF NOVAC3
004724,000177: 01,2332 05440 TC ABORT # NO CORE SETS.
004725,000178: 01,2333 01202 OCT 1202
004726,000179:
004727,000180:
004728,000181: # THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB.
004729,000182:
004730,000183: 01,2334 52151 -1 DXCH LOC
004731,000184: 01,2335 50067 CHANJOB INDEX NEWJOB # LOC ARRIVES IN A AND BBANK IN L.
004732,000185: 01,2336 52151 DXCH LOC
004733,000186: 01,2337 52151 DXCH LOC
004734,000187:
004735,000188: 01,2340 52141 DXCH MPAC # SWAP MULTI-PURPOSE ACCUMULATOR AREAS.
004736,000189: 01,2341 50067 INDEX NEWJOB
004737,000190: 01,2342 52141 DXCH MPAC
004738,000191: 01,2343 52141 DXCH MPAC
004739,000192: 01,2344 52143 DXCH MPAC +2
004740,000193: 01,2345 50067 INDEX NEWJOB
004741,000194: 01,2346 52143 DXCH MPAC +2
004742,000195: 01,2347 52143 DXCH MPAC +2
004743,000196: 01,2350 52145 DXCH MPAC +4
004744,000197: 01,2351 50067 INDEX NEWJOB
004745,000198: 01,2352 52145 DXCH MPAC +4
004746,000199: 01,2353 52145 DXCH MPAC +4
004747,000200: 01,2354 52147 DXCH MPAC +6
004748,000201: 01,2355 50067 INDEX NEWJOB
004749,000202: 01,2356 52147 DXCH MPAC +6
004750,000203: 01,2357 52147 DXCH MPAC +6
004751,000204:
004752,000205: 01,2360 37675 CAF ZERO
004753,000206: 01,2361 56105 XCH OVFIND # MAKE PUSHLOC NEGATIVE IF OVFIND NZ.
004754,000207: 01,2362 00006 EXTEND
004755,000208: 01,2363 12366 BZF +3
004756,000209: 01,2364 40152 CS PUSHLOC
004757,000210: 01,2365 54152 TS PUSHLOC
004758,000211:
004759,000212: 01,2366 52153 DXCH PUSHLOC
004760,000213: 01,2367 50067 INDEX NEWJOB
004761,000214: 01,2370 52153 DXCH PUSHLOC
004762,000215: 01,2371 52153 DXCH PUSHLOC # SWAPS PUSHLOC AND PRIORITY.
004763,000216: 01,2372 37703 CAF LOW9 # SET FIXLOC TO BASE OF VAC AREA.
004764,000217: 01,2373 70153 MASK PRIORITY
004765,000218: 01,2374 54104 TS FIXLOC
004766,000219:
004767,000220: 01,2375 10152 CCS PUSHLOC # SET OVERFLOW INDICATOR ACCORDING TO
004768,000221: 01,2376 37675 CAF ZERO
004769,000222: 01,2377 12404 TCF ENDPRCHG -1
004770,000223: 01,2400 40152 CS PUSHLOC
004771,000224: 01,2401 54152 TS PUSHLOC
004772,000225: 01,2402 37671 CAF ONE
004773,000226: 01,2403 56105 XCH OVFIND
004774,000227: 01,2404 54067 TS NEWJOB
004775,000228:
004776,000229: 01,2405 00003 ENDPRCHG RELINT
004777,000230: 01,2406 52151 DXCH LOC # BASIC JOBS HAVE POSITIVE ADDRESSES, SO
004778,000231:
004779,000232:
004780,000233: 01,2407 00006 EXTEND # DISPATCH WITH A DTCB.
004781,000234: 01,2410 62412 BZMF +2 # IF INTERPRETIVE, SET UP EBANK, ETC.
004782,000235: 01,2411 52006 DTCB
004783,000236:
004784,000237:
004785,000238: 01,2412 40000 COM # EPILOGUE TO JOB CHANGE FOR INTERPRETIVE
004786,000239: 01,2413 67671 AD ONE
004787,000240: 01,2414 54150 TS LOC # RESUME.
004788,000241: 01,2415 16007 TCF INTRSM
004789,000242:
004790,000243: # COMPLETE JOBSLEEP PREPARATIONS.
004791,000244:
004792,000245: 01,2416 00004 JOBSLP1 INHINT
004793,000246: 01,2417 40153 CS PRIORITY # NNZ PRIORITY SHOWS JOB ASLEEP.
004794,000247: 01,2420 54153 TS PRIORITY
004795,000248: 01,2421 36025 CAF LOW7
004796,000249: 01,2422 70006 MASK BBANK
004797,000250: 01,2423 54151 TS BANKSET
004798,000251: 01,2424 47675 CS ZERO
004799,000252: 01,2425 54115 JOBSLP2 TS BUF +1 # HOLDS - HIGHEST PRIORITY.
004800,000253: 01,2426 12517 TCF EJSCAN # SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB.
004801,000254:
004802,000255:
004803,000256: # TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE
004804,000257: # LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND,
004805,000258: # LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE.
004806,000259:
004807,000260: 01,2427 54065 JOBWAKE2 TS EXECTEM1
004808,000261: 01,2430 37675 CAF ZERO # BEGIN CORE SET SCAN.
004809,000262: 01,2431 54071 TS LOCCTR
004810,000263: 01,2432 32266 CAF NO.CORES
004811,000264: 01,2433 54066 JOBWAKE4 TS EXECTEM2
004812,000265: 01,2434 50071 INDEX LOCCTR
004813,000266: 01,2435 10153 CCS PRIORITY
004814,000267: 01,2436 12441 TCF JOBWAKE3 # ACTIVE JOB - CHECK NEXT CORE SET.
004815,000268: 01,2437 00014 COREINC DEC 12 B-14 # 12 REGISTERS PER CORE SET.
004816,000269: 01,2440 12450 TCF WAKETEST # SLEEPING JOB - SEE IF CADR MATCHES.
004817,000270:
004818,000271: 01,2441 32437 JOBWAKE3 CAF COREINC
004819,000272: 01,2442 26071 ADS LOCCTR
004820,000273: 01,2443 10066 CCS EXECTEM2
004821,000274: 01,2444 12433 TCF JOBWAKE4
004822,000275: 01,2445 47671 CS ONE # EXIT IF SLEEPING JOB NOT FOUND.
004823,000276: 01,2446 54071 TS LOCCTR
004824,000277: 01,2447 14425 TCF ENDFIND
004825,000278:
004826,000279: 01,2450 40072 WAKETEST CS NEWLOC
004827,000280: 01,2451 50071 INDEX LOCCTR
004828,000281: 01,2452 60150 AD LOC
004829,000282: 01,2453 00006 EXTEND
004830,000283: 01,2454 12456 BZF +2 # IF MATCH.
004831,000284: 01,2455 12441 TCF JOBWAKE3 # EXAMINE NEXT CORE SET IF NO MATCH.
004832,000285:
004833,000286: 01,2456 50071 INDEX LOCCTR # RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE
004834,000287: 01,2457 40153 CS PRIORITY
004835,000288: 01,2460 54070 TS NEWPRIO
004836,000289: 01,2461 50071 INDEX LOCCTR
004837,000290: 01,2462 54153 TS PRIORITY
004838,000291:
004839,000292: 01,2463 46226 CS FBANKMSK # MAKE UP THE 2CADR OF THE WAKE ADDRESS
004840,000293: 01,2464 70072 MASK NEWLOC # USING THE CADR IN NEWLOC AND THE EBANK
004841,000294: 01,2465 67657 AD 2K # HALF OF BBANK SAVED IN BANKSET.
004842,000295: 01,2466 56072 XCH NEWLOC
004843,000296: 01,2467 76226 MASK FBANKMSK
004844,000297: 01,2470 50071 INDEX LOCCTR
004845,000298: 01,2471 60151 AD BANKSET
004846,000299: 01,2472 54073 TS NEWLOC +1
004847,000300:
004848,000301: 01,2473 10071 CCS LOCCTR # SPECIAL TREATMENT IF THIS JOB WAS
004849,000302: 01,2474 12313 TCF SETLOC # ALREADY IN THE RUN (0) POSITION.
004850,000303: 01,2475 12303 TCF SPECTEST
004851,000304:
004852,000305:
004853,000306: # PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY.
004854,000307:
004855,000308: 01,2476 54150 PRIOCH2 TS LOC
004856,000309: 01,2477 37675 CAF ZERO # SET FLAG TO TELL ENDJOB SCANNER IF THIS
004857,000310: 01,2500 54114 TS BUF # JOB IS STILL HIGHEST PRIORITY.
004858,000311: 01,2501 37703 CAF LOW9
004859,000312: 01,2502 70153 MASK PRIORITY
004860,000313: 01,2503 60070 AD NEWPRIO
004861,000314: 01,2504 54153 TS PRIORITY
004862,000315: 01,2505 40000 COM
004863,000316: 01,2506 12425 TCF JOBSLP2 # AND TO EJSCAN.
004864,000317:
004865,000318:
004866,000319: # RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY.
004867,000320:
004868,000321: 01,2507 00004 ENDJOB1 INHINT
004869,000322: 01,2510 47675 CS ZERO
004870,000323: 01,2511 54115 TS BUF +1
004871,000324: 01,2512 56153 XCH PRIORITY
004872,000325: 01,2513 77703 MASK LOW9
004873,000326: 01,2514 10000 CCS A
004874,000327: 01,2515 50000 INDEX A
004875,000328: 01,2516 54000 TS 0
004876,000329:
004877,000330: 01,2517 10167 EJSCAN CCS PRIORITY +12D
004878,000331: 01,2520 02564 TC EJ1
004879,000332: 01,2521 05456 TC CCSHOLE
004880,000333: 01,2522 12523 TCF +1
004881,000334:
004882,000335: 01,2523 10203 CCS PRIORITY +24D # EXAMINE EACH PRIORITY REGISTER TO FIND
004883,000336: 01,2524 02564 TC EJ1 # THE JOB OF HIGHEST ACTIVE PRIORITY.
004884,000337: 01,2525 05456 TC CCSHOLE
004885,000338: 01,2526 12527 TCF +1
004886,000339:
004887,000340: 01,2527 10217 CCS PRIORITY +36D
004888,000341: 01,2530 02564 TC EJ1
004889,000342: 01,2531 67624 -CCSPR -CCS PRIORITY
004890,000343: 01,2532 12533 TCF +1
004891,000344:
004892,000345: 01,2533 10233 CCS PRIORITY +48D
004893,000346: 01,2534 02564 TC EJ1
004894,000347: 01,2535 05456 TC CCSHOLE
004895,000348: 01,2536 12537 TCF +1
004896,000349:
004897,000350: 01,2537 10247 CCS PRIORITY +60D
004898,000351: 01,2540 02564 TC EJ1
004899,000352: 01,2541 05456 TC CCSHOLE
004900,000353: 01,2542 12543 TCF +1
004901,000354:
004902,000355: 01,2543 10263 CCS PRIORITY +72D
004903,000356: 01,2544 02564 TC EJ1
004904,000357: 01,2545 05456 TC CCSHOLE
004905,000358: 01,2546 12547 TCF +1
004906,000359:
004907,000360:
004908,000361: # EVALUATE THE RESULTS OF THE SCAN.
004909,000362:
004910,000363: 01,2547 10115 CCS BUF +1 # SEE IF THERE ARE ANY ACTIVE JOBS WAITING
004911,000364: 01,2550 05456 TC CCSHOLE
004912,000365: 01,2551 05456 TC CCSHOLE
004913,000366:
004914,000367: 01,2552 12554 TCF +2
004915,000368: 01,2553 14431 TCF DUMMYJOB
004916,000369: 01,2554 10114 CCS BUF # BUF IS ZERO IF THIS IS A PRIOCHNG AND
004917,000370: 01,2555 12557 TCF +2 # CHANGED PRIORITY IS STILL HIGHEST.
004918,000371: 01,2556 12405 TCF ENDPRCHG
004919,000372:
004920,000373: 01,2557 50000 INDEX A # OTHERWISE, SET NEWJOB TO THE RELATIVE
004921,000374: 01,2560 27777 CAF 0 -1 # ADDRESS OF THE NEW JOB'S CORE SET.
004922,000375: 01,2561 62531 AD -CCSPR
004923,000376: 01,2562 54067 TS NEWJOB
004924,000377: 01,2563 12334 TCF CHANJOB -1
004925,000378:
004926,000379: 01,2564 54116 EJ1 TS BUF +2
004927,000380: 01,2565 60115 AD BUF +1 # - OLD HIGH PRIORITY.
004928,000381: 01,2566 10000 CCS A
004929,000382: 01,2567 40116 CS BUF +2
004930,000383: 01,2570 12574 TCF EJ2 # NEW HIGH PRIORITY.
004931,000384: 01,2571 12572 NOOP
004932,000385: 01,2572 50002 INDEX Q
004933,000386: 01,2573 00002 TC 2 # PROCEED WITH SEARCH.
004934,000387:
004935,000388: 01,2574 54115 EJ2 TS BUF +1
004936,000389: 01,2575 00006 EXTEND
004937,000390: 01,2576 22114 QXCH BUF # FOR LOCATING CCS PRIORITY + X INSTR.
004938,000391: 01,2577 50114 INDEX BUF
004939,000392: 01,2600 00002 TC 2
004940,000393:
004941,000394: 01,2601 ENDEXECS EQUALS
004942,000395:
004943,000396:
004944,000397: # IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTINE IS NOT A JOB IN ITSELF,
004945,000398: # BUT RATHER A SUBROUTINE OF THE EXECUTIVE.
004946,000399:
004947,000400: 4431 SETLOC EXECBANK +1
004948,000401:
004949,000402: 4431 1360 EBANK= SELFRET # SELF-CHECK STORAGE IN EBANK.
004950,000403:
004951,000404: 4431 47675 DUMMYJOB CS ZERO # SET NEWJOB TO -0 FOR IDLING.
004952,000405: 4432 54067 TS NEWJOB
004953,000406: 4433 00003 RELINT
004954,000407: 4434 47670 CS TWO # TURN OFF THE ACTIVITY LIGHT.
004955,000408: 4435 00006 EXTEND
004956,000409: 4436 03011 WAND DSALMOUT
004957,000410: 4437 14442 TCF CHECKNJ +2
004958,000411:
004959,000412: 4440 00006 CHECKNJ EXTEND # SPECIAL NEWJOB TEST FOR SELF-CHECK,
004960,000413: 4441 23360 QXCH SELFRET # WHICH RUNS UNDER EXECUTIVE CONTROL,
004961,000414: 4442 10067 +2 CCS NEWJOB # BUT DOES NOT HAVE A JOBS CORE REGISTERS.
004962,000415: 4443 14455 TCF NUCHANGE # NEW JOB REQUIRING A CHANGE JOB.
004963,000416: 4444 37670 CAF TWO # NEW JOB ALREADY IN POSITION FOR
004964,000417: 4445 14451 TCF NUDIRECT # EXECUTION.
004965,000418:
004966,000419: 4446 34464 ADVAN CAF SELFBANK # (SIMULATOR ADVAN IF NEWJOB = 77777).
004967,000420: 4447 54006 TS BBANK
004968,000421: 4450 01360 TC SELFRET
004969,000422:
004970,000423: 4451 00006 NUDIRECT EXTEND # TURN THE GREEN LIGHT BACK ON.
004971,000424: 4452 05011 WOR DSALMOUT
004972,000425: 4453 52151 DXCH LOC # JOBS STARTED IN THIS FASHION MUST BE
004973,000426: 4454 52006 DTCB # BASIC.
004974,000427:
004975,000428: 4455 37670 NUCHANGE CAF TWO
004976,000429: 4456 00006 EXTEND
004977,000430: 4457 05011 WOR DSALMOUT
004978,000431: 4460 34430 CAF EXECBANK # SWAP CORE SETS.
004979,000432: 4461 54004 TS FBANK
004980,000433: 4462 00004 INHINT # CHANGE JOBS
004981,000434: 4463 12334 TCF CHANJOB -1
004982,000435:
004983,000436: 4464 1360 EBANK= SELFRET
004984,000437: 4464 40002 SELFBANK BBCON SELFCHK
004985,000438:
004986,000439:
004987,000440: # PRIORITY CONSTANTS (NOTE IN FIXED-FIXED).
004988,000441:
004989,000442: 4465 7660 PRIO1 EQUALS BIT10
004990,000443: 4465 7657 PRIO2 EQUALS BIT11
004991,000444: 4465 03000 PRIO3 OCT 03000
004992,000445: 4466 7656 PRIO4 EQUALS BIT12
004993,000446: 4466 05000 PRIO5 OCT 05000
004994,000447: 4467 06000 PRIO6 OCT 06000
004995,000448: 4470 07000 PRIO7 OCT 07000
004996,000449: 4471 7655 PRIO10 EQUALS BIT13
004997,000450: 4471 11000 PRIO11 OCT 11000
004998,000451: 4472 12000 PRIO12 OCT 12000
004999,000452: 4473 13000 PRIO13 OCT 13000
005000,000453: 4474 14000 PRIO14 OCT 14000
005001,000454: 4475 15000 PRIO15 OCT 15000
005002,000455: 4476 16000 PRIO16 OCT 16000
005003,000456: 4477 17000 PRIO17 OCT 17000
005004,000457: 4500 7654 PRIO20 EQUALS BIT14
005005,000458: 4500 21000 PRIO21 OCT 21000
005006,000459: 4501 22000 PRIO22 OCT 22000
005007,000460: 4502 23000 PRIO23 OCT 23000
005008,000461: 4503 24000 PRIO24 OCT 24000
005009,000462: 4504 25000 PRIO25 OCT 25000
005010,000463: 4505 26000 PRIO26 OCT 26000
005011,000464: 4506 27000 PRIO27 OCT 27000
005012,000465: 4507 30000 PRIO30 OCT 30000
005013,000466: 4510 31000 PRIO31 OCT 31000
005014,000467: 4511 32000 PRIO32 OCT 32000
005015,000468: 4512 33000 PRIO33 OCT 33000
005016,000469: 4513 34000 PRIO34 OCT 34000
005017,000470: 4514 35000 PRIO35 OCT 35000
005018,000471: 4515 36000 PRIO36 OCT 36000
005019,000472: 4516 37000 PRIO37 OCT 37000
005020,000473: 4517 ENDEXECF EQUALS
End of include-file EXECUTIVE.agc. Parent file is MAIN.agc