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