Source Code
These source-code files are part of a reconstructed copy of Sundial E, the
final release of the Block II Command Module (CM) Apollo Guidance Computer
(AGC) system test software.
They have been created via disassembly of binary dumps of original core rope memory modules, part numbers 2003053-121, 2003053-151, and 2003972-211, belonging to the MIT Museum. Since only binary dumps (rather than listings) of Sundial 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. |
004314,000002: ## Copyright: Public domain.
004315,000003: ## Filename: EXECUTIVE.agc
004316,000004: ## Purpose: A section of Sundial E.
004317,000005: ## It is part of the reconstructed source code for the final
004318,000006: ## release of the Block II Command Module system test software. No
004319,000007: ## original listings of this program are available; instead, this
004320,000008: ## file was created via disassembly of dumps of Sundial core rope
004321,000009: ## modules and comparison with other AGC programs.
004322,000010: ## Assembler: yaYUL
004323,000011: ## Contact: Ron Burkey <info@sandroid.org>.
004324,000012: ## Website: www.ibiblio.org/apollo/index.html
004325,000013: ## Mod history: 2023-06-22 MAS Created from Aurora 12.
004326,000014: ## 2023-06-30 MAS Updated for Sundial E.
004327,000015:
004328,000016:
004329,000017: 4276 SETLOC ENDSUBSF
004330,000018:
004331,000019: # TO ENTER A JOB REQUEST REQUIRING NO VAC AREA:
004332,000020:
004333,000021: 4276 54070 NOVAC TS NEWPRIO # SAVE PRIORITY OF NEW JOB.
004334,000022: 4277 00006 EXTEND
004335,000023: 4300 50002 INDEX Q # Q WILL BE UNDISTURBED THROUGHOUT.
004336,000024: 4301 30001 DCA 0 # 2CADR OF JOB ENTERED.
004337,000025: 4302 52073 DXCH NEWLOC
004338,000026: 4303 34362 CAF EXECBANK
004339,000027: 4304 56004 XCH FBANK
004340,000028: 4305 54065 TS EXECTEM1
004341,000029: 4306 12242 TCF NOVAC2 # ENTER EXECUTIVE BANK.
004342,000030:
004343,000031: # TO ENTER A JOB REQUEST REQUIRING A VAC AREA - E.G., ALL (PARTIALLY) INTERPRETIVE JOBS.
004344,000032:
004345,000033: 4307 54070 FINDVAC TS NEWPRIO
004346,000034: 4310 00006 EXTEND
004347,000035: 4311 50002 INDEX Q
004348,000036: 4312 30001 DCA 0
004349,000037: 4313 52073 DXCH NEWLOC
004350,000038: 4314 34362 CAF EXECBANK
004351,000039: 4315 56004 XCH FBANK
004352,000040: 4316 12220 TCF FINDVAC2 # OFF TO EXECUTIVE SWITCHED-BANK.
004353,000041:
004354,000042: # TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED:
004355,000043:
004356,000044: 4317 34362 CHANG1 CAF EXECBANK
004357,000045: 4320 54001 TS L
004358,000046: 4321 30002 CA Q
004359,000047: 4322 22006 +3 LXCH BBANK
004360,000048: 4323 00004 INHINT
004361,000049: 4324 12320 TCF CHANJOB
004362,000050:
004363,000051: # TO SUSPEND AN INTERPRETIVE JOB:
004364,000052:
004365,000053: 4325 34362 CHANG2 CAF EXECBANK
004366,000054: 4326 54001 TS L
004367,000055: 4327 40150 CS LOC # NEGATIVE LOC SHOWS JOB INTERPRETIVE.
004368,000056: 4330 14322 TCF CHANG1 +3
004369,000057:
004370,000058:
004371,000059: # TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.):
004372,000060:
004373,000061: 4331 54150 JOBSLEEP TS LOC
004374,000062: 4332 34362 CAF EXECBANK
004375,000063: 4333 54004 TS FBANK
004376,000064: 4334 12403 TCF JOBSLP1
004377,000065:
004378,000066: # TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION:
004379,000067:
004380,000068: 4335 54072 JOBWAKE TS NEWLOC
004381,000069: 4336 47651 CS TWO # EXIT IS VIA FINDVAC/NOVAC PROCEDURES.
004382,000070: 4337 26002 ADS Q
004383,000071: 4340 34362 CAF EXECBANK
004384,000072: 4341 56004 XCH FBANK
004385,000073: 4342 12414 TCF JOBWAKE2
004386,000074:
004387,000075: # TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION:
004388,000076:
004389,000077: 4343 00004 PRIOCHNG INHINT # NEW PRIORITY ARRIVES IN A. RETURNS TO
004390,000078: 4344 54070 TS NEWPRIO # CALLER AS SOON AS NEW JOB PRIORITY IS
004391,000079: 4345 34362 CAF EXECBANK # HIGHEST. PREPARE FOR POSSIBLE BASIC-
004392,000080: 4346 56006 XCH BBANK # STYLE CHANGE-JOB.
004393,000081: 4347 54151 TS BANKSET
004394,000082: 4350 30002 CA Q
004395,000083: 4351 12463 TCF PRIOCH2
004396,000084:
004397,000085: # TO FREE THE DISPLAY BEFORE ENDOFJOB:
004398,000086:
004399,000087: 4352 05632 EJFREE TC FREEDSP
004400,000088:
004401,000089: # TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS:
004402,000090:
004403,000091: 4353 34362 ENDOFJOB CAF EXECBANK
004404,000092: 4354 54004 TS FBANK
004405,000093: 4355 12474 TCF ENDJOB1
004406,000094:
004407,000095: 4356 30065 ENDFIND CA EXECTEM1 # RETURN TO CALLER AFTER JOB ENTRY
004408,000096: 4357 54004 TS FBANK # COMPLETE.
004409,000097: 4360 50002 INDEX Q
004410,000098: 4361 00002 TC 2
004411,000099:
004412,000100: 4362 02220 EXECBANK CADR FINDVAC2
004413,000101:
004414,000102:
004415,000103: # LOCATE AN AVAILABLE VAC AREA.
004416,000104:
004417,000105: 01,2220 SETLOC ENDINTS1
004418,000106:
004419,000107: 01,2220 54065 FINDVAC2 TS EXECTEM1 # (SAVE CALLER'S BANK FIRST.)
004420,000108: 01,2221 10414 CCS VAC1USE
004421,000109: 01,2222 12235 TCF VACFOUND
004422,000110: 01,2223 10470 CCS VAC2USE
004423,000111: 01,2224 12235 TCF VACFOUND
004424,000112: 01,2225 10544 CCS VAC3USE
004425,000113: 01,2226 12235 TCF VACFOUND
004426,000114: 01,2227 10620 CCS VAC4USE
004427,000115: 01,2230 12235 TCF VACFOUND
004428,000116: 01,2231 10674 CCS VAC5USE
004429,000117: 01,2232 12235 TCF VACFOUND
004430,000118: 01,2233 05677 TC ABORT
004431,000119: 01,2234 01201 OCT 1201 # NO VAC AREAS.
004432,000120:
004433,000121: 01,2235 67651 VACFOUND AD TWO # RESERVE THIS VAC AREA BY STORING A ZERO
004434,000122: 01,2236 22007 ZL # IN ITS VAC USE REGISTER AND STORE THE
004435,000123: 01,2237 50000 INDEX A # ADDRESS OF THE FIRST WORD OF IT IN THE
004436,000124: 01,2240 21777 LXCH 0 -1 # LOW NINE BITS OF THE PRIORITY WORD.
004437,000125: 01,2241 26070 ADS NEWPRIO
004438,000126:
004439,000127: 01,2242 37657 NOVAC2 CAF ZERO # NOVAC ENTERS HERE. FIND A CORE SET.
004440,000128: 01,2243 54071 TS LOCCTR
004441,000129: 01,2244 32251 CAF NO.CORES # SEVEN SETS OF ELEVEN REGISTERS EACH.
004442,000130: 01,2245 54066 NOVAC3 TS EXECTEM2
004443,000131: 01,2246 50071 INDEX LOCCTR
004444,000132: 01,2247 10153 CCS PRIORITY # EACH PRIORITY REGISTER CONTAINS -0 IF
004445,000133: 01,2250 12311 TCF NEXTCORE # THE CORRESPONDING CORE SET IS AVAILABLE.
004446,000134: 01,2251 00006 NO.CORES DEC 6 B-14
004447,000135: 01,2252 12311 TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY
004448,000136: # BUT A DORMANT JOB'S PRIORITY IS NEGATIVE
004449,000137:
004450,000138:
004451,000139: 01,2253 30070 CORFOUND CA NEWPRIO # SET THE PRIORITY OF THIS JOB IN THE CORE
004452,000140: 01,2254 50071 INDEX LOCCTR # SET'S PRIORITY REGISTER AND SET THE
004453,000141: 01,2255 54153 TS PRIORITY # JOB'S PUSH-DOWN POINTER AT THE BEGINNING
004454,000142: 01,2256 77664 MASK LOW9 # OF THE WORK AREA AND OVERFLOW INDICATOR
004455,000143: 01,2257 50071 INDEX LOCCTR
004456,000144: 01,2260 54152 TS PUSHLOC # OFF TO PREPARE FOR INTERPRETIVE PROGRAMS
004457,000145:
004458,000146: 01,2261 10071 CCS LOCCTR # IF CORE SET ZERO IS BEING LOADED, SET UP
004459,000147: 01,2262 12276 TCF SETLOC # OVFIND AND FIXLOC IMMEDIATELY.
004460,000148: 01,2263 54105 TS OVFIND
004461,000149: 01,2264 30152 CA PUSHLOC
004462,000150: 01,2265 54104 TS FIXLOC
004463,000151:
004464,000152: 01,2266 10067 SPECTEST CCS NEWJOB # SEE IF ANY ACTIVE JOBS WAITING (RARE).
004465,000153: 01,2267 12276 TCF SETLOC # MUST BE AWAKENED BUT UNCHANGED JOB.
004466,000154: 01,2270 05715 TC CCSHOLE
004467,000155: 01,2271 05715 TC CCSHOLE
004468,000156: 01,2272 54067 TS NEWJOB # +0 SHOWS ACTIVE JOB ALREADY SET.
004469,000157: 01,2273 52073 DXCH NEWLOC
004470,000158: 01,2274 52151 DXCH LOC
004471,000159: 01,2275 14356 TCF ENDFIND
004472,000160:
004473,000161: 01,2276 52073 SETLOC DXCH NEWLOC # SET UP THE LOCATION REGISTERS FOR THIS
004474,000162: 01,2277 50071 INDEX LOCCTR
004475,000163: 01,2300 52151 DXCH LOC
004476,000164: 01,2301 50067 INDEX NEWJOB # THIS INDEX INSTRUCTION INSURES THAT THE
004477,000165: 01,2302 40153 CS PRIORITY # HIGHEST ACTIVE PRIORITY WILL BE COMPARED
004478,000166: 01,2303 60070 AD NEWPRIO # WITH THE NEW PRIORITY TO SEE IF NEWJOB
004479,000167: 01,2304 00006 EXTEND # SHOULD BE SET TO SIGNAL A SWITCH.
004480,000168: 01,2305 64356 BZMF ENDFIND
004481,000169: 01,2306 30071 CA LOCCTR # LOCCTR IS LEFT SET AT THIS CORE SET IF
004482,000170: 01,2307 54067 TS NEWJOB # THE CALLER WANTS TO LOAD ANY MPAC
004483,000171: 01,2310 14356 TCF ENDFIND # REGISTERS, ETC.
004484,000172:
004485,000173: 01,2311 32424 NEXTCORE CAF COREINC
004486,000174: 01,2312 26071 ADS LOCCTR
004487,000175: 01,2313 10066 CCS EXECTEM2
004488,000176: 01,2314 12245 TCF NOVAC3
004489,000177: 01,2315 05677 TC ABORT # NO CORE SETS.
004490,000178: 01,2316 01202 OCT 1202
004491,000179:
004492,000180:
004493,000181: # THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB.
004494,000182:
004495,000183: 01,2317 52151 -1 DXCH LOC
004496,000184: 01,2320 50067 CHANJOB INDEX NEWJOB # LOC ARRIVES IN A AND BBANK IN L.
004497,000185: 01,2321 52151 DXCH LOC
004498,000186: 01,2322 52151 DXCH LOC
004499,000187:
004500,000188: 01,2323 52141 DXCH MPAC # SWAP MULTI-PURPOSE ACCUMULATOR AREAS.
004501,000189: 01,2324 50067 INDEX NEWJOB
004502,000190: 01,2325 52141 DXCH MPAC
004503,000191: 01,2326 52141 DXCH MPAC
004504,000192: 01,2327 52143 DXCH MPAC +2
004505,000193: 01,2330 50067 INDEX NEWJOB
004506,000194: 01,2331 52143 DXCH MPAC +2
004507,000195: 01,2332 52143 DXCH MPAC +2
004508,000196: 01,2333 52145 DXCH MPAC +4
004509,000197: 01,2334 50067 INDEX NEWJOB
004510,000198: 01,2335 52145 DXCH MPAC +4
004511,000199: 01,2336 52145 DXCH MPAC +4
004512,000200: 01,2337 52147 DXCH MPAC +6
004513,000201: 01,2340 50067 INDEX NEWJOB
004514,000202: 01,2341 52147 DXCH MPAC +6
004515,000203: 01,2342 52147 DXCH MPAC +6
004516,000204:
004517,000205: 01,2343 37657 CAF ZERO
004518,000206: 01,2344 56105 XCH OVFIND # MAKE PUSHLOC NEGATIVE IF OVFIND NZ.
004519,000207: 01,2345 00006 EXTEND
004520,000208: 01,2346 12351 BZF +3
004521,000209: 01,2347 40152 CS PUSHLOC
004522,000210: 01,2350 54152 TS PUSHLOC
004523,000211:
004524,000212: 01,2351 52153 DXCH PUSHLOC
004525,000213: 01,2352 50067 INDEX NEWJOB
004526,000214: 01,2353 52153 DXCH PUSHLOC
004527,000215: 01,2354 52153 DXCH PUSHLOC # SWAPS PUSHLOC AND PRIORITY.
004528,000216: 01,2355 37664 CAF LOW9 # SET FIXLOC TO BASE OF VAC AREA.
004529,000217: 01,2356 70153 MASK PRIORITY
004530,000218: 01,2357 54104 TS FIXLOC
004531,000219:
004532,000220: 01,2360 10152 CCS PUSHLOC # SET OVERFLOW INDICATOR ACCORDING TO
004533,000221: 01,2361 37657 CAF ZERO
004534,000222: 01,2362 12367 TCF ENDPRCHG -1
004535,000223: 01,2363 40152 CS PUSHLOC
004536,000224: 01,2364 54152 TS PUSHLOC
004537,000225: 01,2365 37652 CAF ONE
004538,000226: 01,2366 56105 XCH OVFIND
004539,000227: 01,2367 54067 TS NEWJOB
004540,000228:
004541,000229: 01,2370 00003 ENDPRCHG RELINT
004542,000230: 01,2371 52151 DXCH LOC # BASIC JOBS HAVE POSITIVE ADDRESSES, SO
004543,000231:
004544,000232:
004545,000233: 01,2372 00006 EXTEND # DISPATCH WITH A DTCB.
004546,000234: 01,2373 62375 BZMF +2 # IF INTERPRETIVE, SET UP EBANK, ETC.
004547,000235: 01,2374 52006 DTCB
004548,000236:
004549,000237:
004550,000238: 01,2375 40000 COM # EPILOGUE TO JOB CHANGE FOR INTERPRETIVE
004551,000239: 01,2376 67652 AD ONE
004552,000240: 01,2377 54150 TS LOC # RESUME.
004553,000241: 01,2400 36232 CAF FBANKMSK
004554,000242: 01,2401 70001 MASK L
004555,000243: 01,2402 16011 TCF INTRSM
004556,000244:
004557,000245: # COMPLETE JOBSLEEP PREPARATIONS.
004558,000246:
004559,000247: 01,2403 00004 JOBSLP1 INHINT
004560,000248: 01,2404 40153 CS PRIORITY # NNZ PRIORITY SHOWS JOB ASLEEP.
004561,000249: 01,2405 54153 TS PRIORITY
004562,000250: 01,2406 36027 CAF LOW7
004563,000251: 01,2407 70006 MASK BBANK
004564,000252: 01,2410 54151 TS BANKSET
004565,000253: 01,2411 47657 CS ZERO
004566,000254: 01,2412 54115 JOBSLP2 TS BUF +1 # HOLDS - HIGHEST PRIORITY.
004567,000255: 01,2413 12504 TCF EJSCAN # SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB.
004568,000256:
004569,000257:
004570,000258: # TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE
004571,000259: # LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND,
004572,000260: # LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE.
004573,000261:
004574,000262: 01,2414 54065 JOBWAKE2 TS EXECTEM1
004575,000263: 01,2415 37657 CAF ZERO # BEGIN CORE SET SCAN.
004576,000264: 01,2416 54071 TS LOCCTR
004577,000265: 01,2417 32251 CAF NO.CORES
004578,000266: 01,2420 54066 JOBWAKE4 TS EXECTEM2
004579,000267: 01,2421 50071 INDEX LOCCTR
004580,000268: 01,2422 10153 CCS PRIORITY
004581,000269: 01,2423 12426 TCF JOBWAKE3 # ACTIVE JOB - CHECK NEXT CORE SET.
004582,000270: 01,2424 00014 COREINC DEC 12 B-14 # 12 REGISTERS PER CORE SET.
004583,000271: 01,2425 12435 TCF WAKETEST # SLEEPING JOB - SEE IF CADR MATCHES.
004584,000272:
004585,000273: 01,2426 32424 JOBWAKE3 CAF COREINC
004586,000274: 01,2427 26071 ADS LOCCTR
004587,000275: 01,2430 10066 CCS EXECTEM2
004588,000276: 01,2431 12420 TCF JOBWAKE4
004589,000277: 01,2432 47652 CS ONE # EXIT IF SLEEPING JOB NOT FOUND.
004590,000278: 01,2433 54071 TS LOCCTR
004591,000279: 01,2434 14356 TCF ENDFIND
004592,000280:
004593,000281: 01,2435 40072 WAKETEST CS NEWLOC
004594,000282: 01,2436 50071 INDEX LOCCTR
004595,000283: 01,2437 60150 AD LOC
004596,000284: 01,2440 00006 EXTEND
004597,000285: 01,2441 12443 BZF +2 # IF MATCH.
004598,000286: 01,2442 12426 TCF JOBWAKE3 # EXAMINE NEXT CORE SET IF NO MATCH.
004599,000287:
004600,000288: 01,2443 50071 INDEX LOCCTR # RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE
004601,000289: 01,2444 40153 CS PRIORITY
004602,000290: 01,2445 54070 TS NEWPRIO
004603,000291: 01,2446 50071 INDEX LOCCTR
004604,000292: 01,2447 54153 TS PRIORITY
004605,000293:
004606,000294: 01,2450 46232 CS FBANKMSK # MAKE UP THE 2CADR OF THE WAKE ADDRESS
004607,000295: 01,2451 70072 MASK NEWLOC # USING THE CADR IN NEWLOC AND THE EBANK
004608,000296: 01,2452 67640 AD 2K # HALF OF BBANK SAVED IN BANKSET.
004609,000297: 01,2453 56072 XCH NEWLOC
004610,000298: 01,2454 76232 MASK FBANKMSK
004611,000299: 01,2455 50071 INDEX LOCCTR
004612,000300: 01,2456 60151 AD BANKSET
004613,000301: 01,2457 54073 TS NEWLOC +1
004614,000302:
004615,000303: 01,2460 10071 CCS LOCCTR # SPECIAL TREATMENT IF THIS JOB WAS
004616,000304: 01,2461 12276 TCF SETLOC # ALREADY IN THE RUN (0) POSITION.
004617,000305: 01,2462 12266 TCF SPECTEST
004618,000306:
004619,000307:
004620,000308: # PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY.
004621,000309:
004622,000310: 01,2463 54150 PRIOCH2 TS LOC
004623,000311: 01,2464 37657 CAF ZERO # SET FLAG TO TELL ENDJOB SCANNER IF THIS
004624,000312: 01,2465 54114 TS BUF # JOB IS STILL HIGHEST PRIORITY.
004625,000313: 01,2466 37664 CAF LOW9
004626,000314: 01,2467 70153 MASK PRIORITY
004627,000315: 01,2470 60070 AD NEWPRIO
004628,000316: 01,2471 54153 TS PRIORITY
004629,000317: 01,2472 40000 COM
004630,000318: 01,2473 12412 TCF JOBSLP2 # AND TO EJSCAN.
004631,000319:
004632,000320:
004633,000321: # RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY.
004634,000322:
004635,000323: 01,2474 00004 ENDJOB1 INHINT
004636,000324: 01,2475 47657 CS ZERO
004637,000325: 01,2476 54115 TS BUF +1
004638,000326: 01,2477 56153 XCH PRIORITY
004639,000327: 01,2500 77664 MASK LOW9
004640,000328: 01,2501 10000 CCS A
004641,000329: 01,2502 50000 INDEX A
004642,000330: 01,2503 54000 TS 0
004643,000331:
004644,000332: 01,2504 10167 EJSCAN CCS PRIORITY +12D
004645,000333: 01,2505 02551 TC EJ1
004646,000334: 01,2506 05715 TC CCSHOLE
004647,000335: 01,2507 12510 TCF +1
004648,000336:
004649,000337: 01,2510 10203 CCS PRIORITY +24D # EXAMINE EACH PRIORITY REGISTER TO FIND
004650,000338: 01,2511 02551 TC EJ1 # THE JOB OF HIGHEST ACTIVE PRIORITY.
004651,000339: 01,2512 05715 TC CCSHOLE
004652,000340: 01,2513 12514 TCF +1
004653,000341:
004654,000342: 01,2514 10217 CCS PRIORITY +36D
004655,000343: 01,2515 02551 TC EJ1
004656,000344: 01,2516 67624 -CCSPR -CCS PRIORITY
004657,000345: 01,2517 12520 TCF +1
004658,000346:
004659,000347: 01,2520 10233 CCS PRIORITY +48D
004660,000348: 01,2521 02551 TC EJ1
004661,000349: 01,2522 05715 TC CCSHOLE
004662,000350: 01,2523 12524 TCF +1
004663,000351:
004664,000352: 01,2524 10247 CCS PRIORITY +60D
004665,000353: 01,2525 02551 TC EJ1
004666,000354: 01,2526 05715 TC CCSHOLE
004667,000355: 01,2527 12530 TCF +1
004668,000356:
004669,000357: 01,2530 10263 CCS PRIORITY +72D
004670,000358: 01,2531 02551 TC EJ1
004671,000359: 01,2532 05715 TC CCSHOLE
004672,000360: 01,2533 12534 TCF +1
004673,000361:
004674,000362:
004675,000363: # EVALUATE THE RESULTS OF THE SCAN.
004676,000364:
004677,000365: 01,2534 10115 CCS BUF +1 # SEE IF THERE ARE ANY ACTIVE JOBS WAITING
004678,000366: 01,2535 05715 TC CCSHOLE
004679,000367: 01,2536 05715 TC CCSHOLE
004680,000368:
004681,000369: 01,2537 12541 TCF +2
004682,000370: 01,2540 14363 TCF DUMMYJOB
004683,000371: 01,2541 10114 CCS BUF # BUF IS ZERO IF THIS IS A PRIOCHNG AND
004684,000372: 01,2542 12544 TCF +2 # CHANGED PRIORITY IS STILL HIGHEST.
004685,000373: 01,2543 12370 TCF ENDPRCHG
004686,000374:
004687,000375: 01,2544 50000 INDEX A # OTHERWISE, SET NEWJOB TO THE RELATIVE
004688,000376: 01,2545 27777 CAF 0 -1 # ADDRESS OF THE NEW JOB'S CORE SET.
004689,000377: 01,2546 62516 AD -CCSPR
004690,000378: 01,2547 54067 TS NEWJOB
004691,000379: 01,2550 12317 TCF CHANJOB -1
004692,000380:
004693,000381: 01,2551 54116 EJ1 TS BUF +2
004694,000382: 01,2552 60115 AD BUF +1 # - OLD HIGH PRIORITY.
004695,000383: 01,2553 10000 CCS A
004696,000384: 01,2554 40116 CS BUF +2
004697,000385: 01,2555 12561 TCF EJ2 # NEW HIGH PRIORITY.
004698,000386: 01,2556 12557 NOOP
004699,000387: 01,2557 50002 INDEX Q
004700,000388: 01,2560 00002 TC 2 # PROCEED WITH SEARCH.
004701,000389:
004702,000390: 01,2561 54115 EJ2 TS BUF +1
004703,000391: 01,2562 00006 EXTEND
004704,000392: 01,2563 22114 QXCH BUF # FOR LOCATING CCS PRIORITY + X INSTR.
004705,000393: 01,2564 50114 INDEX BUF
004706,000394: 01,2565 00002 TC 2
004707,000395:
004708,000396: 01,2566 ENDEXECS EQUALS
004709,000397:
004710,000398:
004711,000399: # IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTINE IS NOT A JOB IN ITSELF,
004712,000400: # BUT RATHER A SUBROUTINE OF THE EXECUTIVE.
004713,000401:
004714,000402: 4363 SETLOC EXECBANK +1
004715,000403:
004716,000404: 4363 1360 EBANK= SELFRET # SELF-CHECK STORAGE IN EBANK.
004717,000405:
004718,000406: 4363 47657 DUMMYJOB CS ZERO # SET NEWJOB TO -0 FOR IDLING.
004719,000407: 4364 54067 TS NEWJOB
004720,000408: 4365 00003 RELINT
004721,000409: 4366 47651 CS TWO # TURN OFF THE ACTIVITY LIGHT.
004722,000410: 4367 00006 EXTEND
004723,000411: 4370 03011 WAND DSALMOUT
004724,000412: 4371 14374 TCF CHECKNJ +2
004725,000413:
004726,000414: 4372 00006 CHECKNJ EXTEND # SPECIAL NEWJOB TEST FOR SELF-CHECK,
004727,000415: 4373 23360 QXCH SELFRET # WHICH RUNS UNDER EXECUTIVE CONTROL,
004728,000416: 4374 10067 +2 CCS NEWJOB # BUT DOES NOT HAVE A JOBS CORE REGISTERS.
004729,000417: 4375 14407 TCF NUCHANGE # NEW JOB REQUIRING A CHANGE JOB.
004730,000418: 4376 37651 CAF TWO # NEW JOB ALREADY IN POSITION FOR
004731,000419: 4377 14403 TCF NUDIRECT # EXECUTION.
004732,000420:
004733,000421: 4400 34416 ADVAN CAF SELFBANK # (SIMULATOR ADVAN IF NEWJOB = 77777).
004734,000422: 4401 54006 TS BBANK
004735,000423: 4402 01360 TC SELFRET
004736,000424:
004737,000425: 4403 00006 NUDIRECT EXTEND # TURN THE GREEN LIGHT BACK ON.
004738,000426: 4404 05011 WOR DSALMOUT
004739,000427: 4405 52151 DXCH LOC # JOBS STARTED IN THIS FASHION MUST BE
004740,000428: 4406 52006 DTCB # BASIC.
004741,000429:
004742,000430: 4407 37651 NUCHANGE CAF TWO
004743,000431: 4410 00006 EXTEND
004744,000432: 4411 05011 WOR DSALMOUT
004745,000433: 4412 34362 CAF EXECBANK # SWAP CORE SETS.
004746,000434: 4413 54004 TS FBANK
004747,000435: 4414 00004 INHINT # CHANGE JOBS
004748,000436: 4415 12317 TCF CHANJOB -1
004749,000437:
004750,000438: 4416 20002 SELFBANK BBCON SELFCHK
004751,000439:
004752,000440:
004753,000441: # PRIORITY CONSTANTS (NOTE IN FIXED-FIXED).
004754,000442:
004755,000443: 4417 7641 PRIO1 EQUALS BIT10
004756,000444: 4417 7640 PRIO2 EQUALS BIT11
004757,000445: 4417 03000 PRIO3 OCT 03000
004758,000446: 4420 7637 PRIO4 EQUALS BIT12
004759,000447: 4420 05000 PRIO5 OCT 05000
004760,000448: 4421 06000 PRIO6 OCT 06000
004761,000449: 4422 07000 PRIO7 OCT 07000
004762,000450: 4423 7636 PRIO10 EQUALS BIT13
004763,000451: 4423 11000 PRIO11 OCT 11000
004764,000452: 4424 12000 PRIO12 OCT 12000
004765,000453: 4425 13000 PRIO13 OCT 13000
004766,000454: 4426 14000 PRIO14 OCT 14000
004767,000455: 4427 15000 PRIO15 OCT 15000
004768,000456: 4430 16000 PRIO16 OCT 16000
004769,000457: 4431 17000 PRIO17 OCT 17000
004770,000458: 4432 7635 PRIO20 EQUALS BIT14
004771,000459: 4432 21000 PRIO21 OCT 21000
004772,000460: 4433 22000 PRIO22 OCT 22000
004773,000461: 4434 23000 PRIO23 OCT 23000
004774,000462: 4435 24000 PRIO24 OCT 24000
004775,000463: 4436 25000 PRIO25 OCT 25000
004776,000464: 4437 26000 PRIO26 OCT 26000
004777,000465: 4440 27000 PRIO27 OCT 27000
004778,000466: 4441 30000 PRIO30 OCT 30000
004779,000467: 4442 31000 PRIO31 OCT 31000
004780,000468: 4443 32000 PRIO32 OCT 32000
004781,000469: 4444 33000 PRIO33 OCT 33000
004782,000470: 4445 34000 PRIO34 OCT 34000
004783,000471: 4446 35000 PRIO35 OCT 35000
004784,000472: 4447 36000 PRIO36 OCT 36000
004785,000473: 4450 37000 PRIO37 OCT 37000
004786,000474: 4451 ENDEXECF EQUALS
End of include-file EXECUTIVE.agc. Parent file is MAIN.agc