Source Code
![]() |
These source-code files were transcribed from scans made from Don Eyles's personal
copy of BURST120 (SUNBURST 120). They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Mike Stewart. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are in ALL-CAPS, whereas
comments added later in transcription are in Mixed-Case. In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the BURST120 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:YUL SYSTEM FOR AGC: REVISION 0 OF PROGRAM BURST120 BY NASA 2021106-031 DEC 7, 1967 THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED FOR USE IN THE ON-BOARD PRIMARY GUIDANCE COMPUTER IN THE UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1 --- THE AS206 MISSION.Note that the date is the date of the printout, not the date of the program revision. |
044611,000002: ## Copyright: Public domain.
044612,000003: ## Filename: WAITLIST.agc
044613,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst). It
044614,000005: ## is part of the source code for the Lunar Module's
044615,000006: ## (LM) Apollo Guidance Computer (AGC) for Apollo 5.
044616,000007: ## Assembler: yaYUL
044617,000008: ## Contact: Ron Burkey <info@sandroid.org>.
044618,000009: ## Website: www.ibiblio.org/apollo/index.html
044619,000010: ## Pages: 1062-1074
044620,000011: ## Mod history: 2016-09-30 RSB Created draft version.
044621,000012: ## 2016-10-10 PDJ Updated based on Sunburst120 scans.
044622,000013: ## 2016-12-06 RSB Comments proofed using octopus/ProoferComments,
044623,000014: ## changes made.
044624,000015: ## 2017-01-28 RSB WTIH -> WITH.
044625,000016: ## 2017-02-09 RSB Comment-text fixes identified in proofing Artemis 72
044626,000017: ## 2017-03-14 RSB Comment-text fixes noted in proofing Luminary 116.
044627,000018: ## 2017-03-16 RSB Comment-text fixes identified in 5-way
044628,000019: ## side-by-side diff of Luminary 69/99/116/131/210.
044629,000020: ## 2017-03-21 RSB Changed a couple of apostrophes to colons.
044630,000021:
![]() |
Page 1062 |
044632,000023:
044633,000024: # PROGRAM DESCRIPTION DATE - 10 OCTOBER 1966
044634,000025: # MOD NO - 2 LOG SECTION - WAITLIST
044635,000026: # MOD BY - MILLER (DTMAX INCREASED TO 162.5 SEC) ASSEMBLY SUNBURST REV 5
044636,000027:
044637,000028: # FUNCTIONAL DESCRIPTION-
044638,000029: # PART OF A SECTION OF PROGRAMS,-WAITLIST, TASKOVER, T3RUPT, USED TO CALL A PROGRAM, (CALLED A TASK),
044639,000030: # WHICH IS TO BEGIN IN C(A) CENTISECONDS. WAITLIST UPDATES TIME3, LST1 AND LST2. THE MEANING OF THESE LISTS
044640,000031: # FOLLOW.
044641,000032:
044642,000033: # C(TIME3) = 16384 -(T1-T) CENTISECONDS, (T=PRESENT TIME, T1-TIME FOR TASK1)
044643,000034:
044644,000035: # C(LST1) = -(T2-T1)+1
044645,000036: # C(LST1 +1) = -(T3-T2)+1
044646,000037: # C(LST1 +2) = -(T4-T3)+1
044647,000038: # .
044648,000039: # .
044649,000040: # C(LST1 +6) = -(T8-T7)+1
044650,000041: # C(LST1 +7) = -(T9-T8)+1
044651,000042:
044652,000043: # C(LST2) = 2CADR OF TASK1
044653,000044: # C(LST2 +2) = 2CADR OF TASK2
044654,000045: # .
044655,000046: # .
044656,000047: # C(LST2 +14) = 2CADR OF TASK8
044657,000048: # C(LST2 +16) = 2CADR OF TASK9
044658,000049:
044659,000050: # WARNINGS-
044660,000051: # --------
044661,000052: # 1) 1 <= C(A) <= 16250D (1 CENTISECOND TO 162.5 SEC)
044662,000053: # 2) 9 TASKS MAXIMUM
044663,000054: # 3) TASKS CALLED UNDER INTERRUPT INHIBITED
044664,000055: # 4) TASKS END BY TC TASKOVER
044665,000056:
044666,000057: # CALLING SEQUENCE-
044667,000058: # L-2 CAF DELTAT (TIME IN CENTISECONDS TO TASK START)
044668,000059: # L-1 INHINT
044669,000060: # L TC WAITLIST
044670,000061: # L+1 2CADR DESIRED TASK
044671,000062: # L+2 (MINOR OF 2CADR)
044672,000063: # L+3 RELINT (RETURNS HERE)
044673,000064:
044674,000065: # NORMAL EXIT MODES-
044675,000066:
044676,000067: # AT L+3 OF CALLING SEQUENCE
044677,000068:
044678,000069: # ALARM OR ABORT EXIT MODES-
044679,000070:
![]() |
Page 1063 |
044681,000072:
044682,000073: # TC ABORT
044683,000074: # OCT 1203 (WAITLIST OVERFLOW - TOO MANY TASKS)
044684,000075:
044685,000076: # ERASABLE INITIALIZATION REQUIRED-
044686,000077:
044687,000078: # ACCOMPLISHED BY FRESH START,--LST2,..., LST2 +16 =ENDTASK
044688,000079: # LST1,..., LST1 +7 =NEG1/2
044689,000080:
044690,000081: # OUTPUT--
044691,000082:
044692,000083: # LST1 AND LST2 UPDATED WITH NEW TASK AND ASSOCIATED TIME.
044693,000084:
044694,000085: # DEBRIS-
044695,000086:
044696,000087: # CENTRALS- A,Q,L
044697,000088: # OTHER - WAITEXIT, WAITADR, WAITTEMP, WAITBANK
044698,000089: # DETAILED ANALYSIS OF TIMING-
044699,000090:
044700,000091: # CONTROL WILL NOT BE RETURNED TO THE SPECIFIED ADDRESS (2CADR) IN EXACTLY DELTA T CENTISECONDS.
044701,000092: # THE APPROXIMATE TIME MAY BE CALCULATED AS FOLLOWS
044702,000093:
044703,000094: # LET TO = THE TIME OF THE TC WAITLIST
044704,000095: # LET TS = TO +147U + COUNTER INCREMENTS (SET UP TIME)
044705,000096: # LET X = TS -(100TS)/100 (VARIANCE FROM COUNTERS)
044706,000097: # LET Y = LENGTH OF TIME OF INHIBIT INTERRUPT AFTER T3RUPT
044707,000098: # LET Z = LENGTH OF TIME TO PROCESS TASKS WHICH ARE DUE THIS T3RUPT BUT DISPATCHED EARLIER.
044708,000099: # (Z=0, USUALLY)
044709,000100: # LET DELTD = THE ACTUAL TIME TAKEN TO GIVE CONTROL TO 2CADR
044710,000101: # THEN DELTD = TS+DELTA T -X +Y +Z +1.05MS* +COUNTERS*
044711,000102:
044712,000103: # *-THE TIME TAKEN BY WAITLIST ITSELF AND THE COUNTER TICKING DURING THIS WAITLIST TIME.
044713,000104:
044714,000105: # IN SHORT, THE ACTUAL TIME TO RETURN CONTROL TO A 2CADR IS AUGMENTED BY THE TIME TO SET UP THE TASK:S
044715,000106: # INTERRUPT, ALL COUNTERS TICKING, THE T3RUPT PROCESSING TIME, THE WAITLIST PROCESSING TIME AND THE POSSIBILITY
044716,000107: # OF OTHER TASKS INHIBITING THE INTERRUPT.
044717,000108:
044718,000109: 5663 BLOCK 02
044719,000110: 5663 E3,1400 EBANK= LST1 # TASK LISTS IN SWITCHED E BANK.
044720,000111:
044721,000112: 5663 56002 WAITLIST XCH Q # SAVE DELTA T IN Q AND RETURN IN
044722,000113: 5664 54061 TS WAITEXIT # WAITEXIT.
044723,000114: 5665 00006 EXTEND
044724,000115: 5666 50000 INDEX A
044725,000116: 5667 30001 DCA 0 # PICK UP 2CADR OF TASK.
044726,000117: 5670 54063 TS WAITADR # BBCON WILL REMAIN IN L.
044727,000118: 5671 35700 DLY2 CAF WAITBB # ENTRY FROM FIXDELAY AND VARDELAY.
044728,000119: 5672 56006 XCH BBANK
044729,000120: 5673 13427 TCF WAIT2
044730,000121:
044731,000122: # RETURN TO CALLER AFTER TASK INSERTION:
044732,000123:
![]() |
Page 1064 |
044734,000125:
044735,000126: 5674 30062 LVWTLIST CA WAITBANK
044736,000127: 5675 54006 TS BBANK
044737,000128: 5676 50061 INDEX WAITEXIT
044738,000129: 5677 00002 TC 2
044739,000130:
044740,000131: 5700 E3,1400 EBANK= LST1
044741,000132: 5700 02063 WAITBB BBCON WAIT2
044742,000133:
044743,000134: # RETURN TO CALLER +2 AFTER WAITING DT SPECIFIED AT CALLER +1.
044744,000135:
044745,000136: 5701 50002 FIXDELAY INDEX Q # BOTH ROUTINES MUST BE CALLED UNDER
044746,000137: 5702 30000 CAF 0 # WAITLIST CONTROL AND TERMINATE THE TASK
044747,000138: 5703 24002 INCR Q # IN WHICH THEY WERE CALLED.
044748,000139:
044749,000140: # RETURN TO CALLER +1 AFTER WAITING THE DT AS ARRIVING IN A.
044750,000141:
044751,000142: 5704 56002 VARDELAY XCH Q # DT TO Q. TASK ADRES TO WAITADR.
044752,000143: 5705 54063 TS WAITADR
044753,000144: 5706 30006 CA BBANK # BBANK IS SAVED DURING DELAY.
044754,000145: 5707 54001 TS L
044755,000146: 5710 35713 CAF DELAYEX
044756,000147: 5711 54061 TS WAITEXIT # GO TO TASKOVER AFTER TASK ENTRY.
044757,000148: 5712 15671 TCF DLY2
044758,000149:
044759,000150: 5713 15725 DELAYEX TCF TASKOVER -2 # RETURNS TO TASKOVER
044760,000151:
![]() |
Page 1065 |
044762,000153:
044763,000154: # ENDTASK MUST BE ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
044764,000155:
044765,000156: 5714 E3,1400 EBANK= LST1
044766,000157: 5714 72061 73714 ENDTASK -2CADR SVCT3
044767,000158:
044768,000159: 5716 10076 SVCT3 CCS FLAGWRD2 # DRIFT FLAG
044769,000160: 5717 15727 TCF TASKOVER
044770,000161: 5720 15727 TCF TASKOVER
044771,000162: 5721 15722 TCF +1
044772,000163:
044773,000164: 5722 35656 CAF PRIO35 # COMPENSATE FOR NBD COEFFICIENTS ONLY
044774,000165: 5723 05505 TC NOVAC # ENABLE EVERY 81.93 SECONDS
044775,000166: 5724 E3,1444 EBANK= NBDX
044776,000167: 5724 03501 24063 2CADR NBDONLY
044777,000168:
044778,000169: 5726 15727 TCF TASKOVER
044779,000170:
![]() |
Page 1066 |
044781,000172:
044782,000173: # BEGIN TASK INSERTION.
044783,000174:
044784,000175: 01,3427 BANK 01
044785,000176: 01,3427 54062 WAIT2 TS WAITBANK # BBANK OF CALLING PROGRAM.
044786,000177: 01,3430 40026 CS TIME3
044787,000178: 01,3431 67754 AD BIT8 # BIT 8 = OCT 200
044788,000179: 01,3432 10000 CCS A # TEST 200 - C(TIME3). IF POSITIVE,
044789,000180: # IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS TIME3 AND THAT
044790,000181: # C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T). THE FOLLOWING FOUR
044791,000182: # ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
044792,000183:
044793,000184: 01,3433 66153 AD OCT40001 # OVERFLOW HAS OCCURRED. SET C(A) =
044794,000185: 01,3434 40000 CS A # T - T1 + 1.0 - 201
044795,000186:
044796,000187: # NORMAL CASE (C(A) NNZ) YIELDS SAME C(A): -( -(1.0-(T1-T)) + 200) - 1
044797,000188:
044798,000189: 01,3435 63563 AD OCT40201
044799,000190: 01,3436 60002 AD Q # RESULT = TD - T1 + 1.
044800,000191:
044801,000192: 01,3437 10000 CCS A # TEST TD - T1 + 1
044802,000193:
044803,000194: 01,3440 61400 AD LST1 # IF TD - T1 POS, GO TO WTLST5 WITH
044804,000195: 01,3441 13503 TCF WTLST5 # C(A) = (TD - T1) + C(LST1) = TD-T2+1
044805,000196:
044806,000197: 01,3442 13443 NOOP
044807,000198: 01,3443 40002 CS Q
044808,000199:
044809,000200: # NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
044810,000201: # SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1. (G/E
044811,000202: # SYMBOL MEANS GREATER THAN OR EQUAL TO). THUS THERE NEED BE NO CON-
044812,000203: # CERN OVER A PREVIOUS OR IMMINENT OVERFLOW OF TIME3 HERE.
044813,000204:
044814,000205: 01,3444 67746 AD POS1/2 # WHEN TD IS NEXT, FORM QUANTITY
044815,000206: 01,3445 67746 AD POS1/2 # 1.0 - DELTA T = 1.0 - (TD - T)
044816,000207: 01,3446 56026 XCH TIME3
044817,000208: 01,3447 67745 AD NEGMAX
044818,000209: 01,3450 60002 AD Q # 1.0 - DELTAT T NOW COMPLETE.
044819,000210: 01,3451 00006 EXTEND # ZERO INDEX Q.
044820,000211: 01,3452 22007 QXCH 7 # (ZQ)
044821,000212:
![]() |
Page 1067 |
044823,000214: 01,3453 57400 WTLST4 XCH LST1
044824,000215: 01,3454 57401 XCH LST1 +1
044825,000216: 01,3455 57402 XCH LST1 +2
044826,000217: 01,3456 57403 XCH LST1 +3
044827,000218: 01,3457 57404 XCH LST1 +4
044828,000219: 01,3460 57405 XCH LST1 +5
044829,000220: 01,3461 57406 XCH LST1 +6
044830,000221: 01,3462 57407 XCH LST1 +7
044831,000222:
044832,000223: 01,3463 30063 CA WAITADR # (MINOR PART OF TASK CADR HAS BEEN IN L.)
044833,000224: 01,3464 50002 INDEX Q
044834,000225: 01,3465 13466 TCF +1
044835,000226:
044836,000227: 01,3466 53411 DXCH LST2
044837,000228: 01,3467 53413 DXCH LST2 +2
044838,000229: 01,3470 53415 DXCH LST2 +4
044839,000230: 01,3471 53417 DXCH LST2 +6
044840,000231: 01,3472 53421 DXCH LST2 +8D
044841,000232: 01,3473 53423 DXCH LST2 +10D # AT END, CHECK THAT C(LST2+10) IS STD
044842,000233: 01,3474 53425 DXCH LST2 +12D
044843,000234: 01,3475 53427 DXCH LST2 +14D
044844,000235: 01,3476 53431 DXCH LST2 +16D
044845,000236: 01,3477 65714 AD ENDTASK # END ITEM, AS CHECK FOR EXCEEDING
044846,000237: # THE LENGTH OF THE LIST.
044847,000238: 01,3500 00006 EXTEND # DUMMY TASK ADRES SHOULD BE IN FIXED-
044848,000239: 01,3501 15674 BZF LVWTLIST # FIXED SO ITS ADRES ALONE DISTINGUISHES
044849,000240: 01,3502 13556 TCF WTABORT # IT.
044850,000241:
![]() |
Page 1068 |
044852,000243:
044853,000244: 01,3503 10000 WTLST5 CCS A # TEST TD - T2 + 1
044854,000245: 01,3504 61401 AD LST1 +1
044855,000246: 01,3505 13511 TCF +4
044856,000247: 01,3506 67763 AD ONE
044857,000248: 01,3507 03564 TC WTLST2
044858,000249: 01,3510 00001 OCT 1
044859,000250:
044860,000251: 01,3511 10000 +4 CCS A # TEST TD - T3 + 1
044861,000252: 01,3512 61402 AD LST1 +2
044862,000253: 01,3513 13517 TCF +4
044863,000254: 01,3514 67763 AD ONE
044864,000255: 01,3515 03564 TC WTLST2
044865,000256: 01,3516 00002 OCT 2
044866,000257:
044867,000258: 01,3517 10000 +4 CCS A # TEST TD - T4 + 1
044868,000259: 01,3520 61403 AD LST1 +3
044869,000260: 01,3521 13525 TCF +4
044870,000261: 01,3522 67763 AD ONE
044871,000262: 01,3523 03564 TC WTLST2
044872,000263: 01,3524 00003 OCT 3
044873,000264:
044874,000265: 01,3525 10000 +4 CCS A # TEST TD - T5 + 1
044875,000266: 01,3526 61404 AD LST1 +4
044876,000267: 01,3527 13533 TCF +4
044877,000268: 01,3530 67763 AD ONE
044878,000269: 01,3531 03564 TC WTLST2
044879,000270: 01,3532 00004 OCT 4
044880,000271:
044881,000272: 01,3533 10000 +4 CCS A # TEST TD - T6 + 1
044882,000273: 01,3534 61405 AD LST1 +5
044883,000274: 01,3535 13541 TCF +4
044884,000275: 01,3536 67763 AD ONE
044885,000276: 01,3537 03564 TC WTLST2
044886,000277: 01,3540 00005 OCT 5
044887,000278:
044888,000279: 01,3541 10000 +4 CCS A # TEST TD - T7 + 1
044889,000280: 01,3542 61406 AD LST1 +6
044890,000281: 01,3543 13547 TCF +4
044891,000282: 01,3544 67763 AD ONE
044892,000283: 01,3545 03564 TC WTLST2
044893,000284: 01,3546 00006 OCT 6
044894,000285:
![]() |
Page 1069 |
044896,000287:
044897,000288: 01,3547 10000 +4 CCS A
044898,000289: 01,3550 61407 AD LST1 +7
044899,000290: 01,3551 13555 TCF +4
044900,000291: 01,3552 67763 AD ONE
044901,000292: 01,3553 03564 TC WTLST2
044902,000293: 01,3554 00007 OCT 7
044903,000294:
044904,000295: 01,3555 10000 +4 CCS A
044905,000296: 01,3556 06000 WTABORT TC ABORT # NO ROOM IN THE INN.
044906,000297: 01,3557 01203 OCT 1203
044907,000298:
044908,000299: 01,3560 67763 AD ONE
044909,000300: 01,3561 03564 TC WTLST2
044910,000301: 01,3562 00010 OCT 10
044911,000302:
044912,000303: 01,3563 40201 OCT40201 OCT 40201
044913,000304:
![]() |
Page 1070 |
044915,000306:
044916,000307: # THE ENTRY TO WTLST2 JUST PRECEDING OCT N IS FOR T LE TD LE T -1.
044917,000308: # N N+1
044918,000309: # (LE MEANS LESS THAN OR EQUAL TO). AT ENTRY, C(A) = -(TD - T + 1)
044919,000310: # N+1
044920,000311: # THE LST1 ENTRY -(T -T +1) IS TO BE REPLACED BY -(TD - T + 1), AND
044921,000312: # N+1 N N
044922,000313: # THE ENTRY -(T - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
044923,000314: # N+1
044924,000315:
044925,000316: 01,3564 54064 WTLST2 TS WAITTEMP # C(A) = -(TD - T + 1)
044926,000317: 01,3565 50002 INDEX Q
044927,000318: 01,3566 30000 CAF 0
044928,000319: 01,3567 54002 TS Q # INDEX VALUE INTO Q.
044929,000320:
044930,000321: 01,3570 37763 CAF ONE
044931,000322: 01,3571 60064 AD WAITTEMP
044932,000323: 01,3572 50002 INDEX Q # C(A) = -(TD - T ) + 1.
044933,000324: 01,3573 27377 ADS LST1 -1 # N
044934,000325:
044935,000326: 01,3574 40064 CS WAITTEMP
044936,000327: 01,3575 50002 INDEX Q
044937,000328: 01,3576 13453 TCF WTLST4
044938,000329:
044939,000330: # C(TIME3) = 1.0 - (T1 - T)
044940,000331:
044941,000332: # C(LST1 ) = - (T2 - T1) + 1
044942,000333: # C(LST1+1 ) = - (T3 - T2) + 1
044943,000334: # C(LST1+2 ) = - (T4 - T3) + 1
044944,000335: # C(LST1+3 ) = - (T5 - T4) + 1
044945,000336: # C(LST1+4 ) = - (T6 - T5) + 1
044946,000337:
044947,000338: # C(LST2 ) = 2CADR TASK1
044948,000339: # C(LST2+2 ) = 2CADR TASK2
044949,000340: # C(LST2+4 ) = 2CADR TASK3
044950,000341: # C(LST2+6 ) = 2CADR TASK4
044951,000342: # C(LST2+8 ) = 2CADR TASK5
044952,000343: # C(LST2+10) = 2CADR TASK6
044953,000344:
![]() |
Page 1071 |
044955,000346:
044956,000347: # ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
044957,000348:
044958,000349: 01,3577 54016 T3RUPT TS BANKRUPT
044959,000350: 01,3600 00006 EXTEND
044960,000351: 01,3601 22012 QXCH QRUPT
044961,000352:
044962,000353: 01,3602 37744 T3RUPT2 CAF NEG1/2 # DISPATCH WAITLIST TASK.
044963,000354: 01,3603 57407 XCH LST1 +7
044964,000355: 01,3604 57406 XCH LST1 +6
044965,000356: 01,3605 57405 XCH LST1 +5
044966,000357: 01,3606 57404 XCH LST1 +4 # 1. MOVE UP LST1 CONTENTS, ENTERING
044967,000358: 01,3607 57403 XCH LST1 +3 # A VALUE OF 1/2 +1 AT THE BOTTOM
044968,000359: 01,3610 57402 XCH LST1 +2 # FOR T6-T5, CORRESPONDING TO THE
044969,000360: 01,3611 57401 XCH LST1 +1 # INTERVAL 81.91 SEC FOR ENDTASK.
044970,000361: 01,3612 57400 XCH LST1
044971,000362: 01,3613 67743 AD POSMAX # 2. SET T3 = 1.0 - T2 - T USING LIST 1.
044972,000363: 01,3614 26026 ADS TIME3 # SO T3 WONT TICK DURING UPDATE.
044973,000364: 01,3615 55076 TS RUPTAGN
044974,000365: 01,3616 47767 CS ZERO
044975,000366: 01,3617 55076 TS RUPTAGN # SETS RUPTAGN TO +1 ON OVERFLOW.
044976,000367:
044977,000368: 01,3620 00006 EXTEND # DISPATCH TASK.
044978,000369: 01,3621 45715 DCS ENDTASK
044979,000370: 01,3622 53431 DXCH LST2 +16D
044980,000371: 01,3623 53427 DXCH LST2 +14D
044981,000372: 01,3624 53425 DXCH LST2 +12D
044982,000373: 01,3625 53423 DXCH LST2 +10D
044983,000374: 01,3626 53421 DXCH LST2 +8D
044984,000375: 01,3627 53417 DXCH LST2 +6
044985,000376: 01,3630 53415 DXCH LST2 +4
044986,000377: 01,3631 53413 DXCH LST2 +2
044987,000378: 01,3632 53411 DXCH LST2
044988,000379:
044989,000380: 01,3633 52006 DTCB
044990,000381:
![]() |
Page 1072 |
044992,000383:
044993,000384: # RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
044994,000385:
044995,000386: 5727 BLOCK 02
044996,000387: 5727 11076 TASKOVER CCS RUPTAGN # IF +1 RETURN TO T3RUPT, IF -0 RESUME.
044997,000388: 5730 35700 CAF WAITBB
044998,000389: 5731 54006 TS BBANK
044999,000390: 5732 13602 TCF T3RUPT2 # DISPATCH NEXT TASK IF IT WAS DUE.
045000,000391:
045001,000392: 5733 00006 RESUME EXTEND
045002,000393: 5734 22012 QXCH QRUPT
045003,000394: 5735 30016 NOQRSM CA BANKRUPT
045004,000395: 5736 56006 XCH BBANK
045005,000396: 5737 52011 NOQBRSM DXCH ARUPT
045006,000397: 5740 50017 RESUME
045007,000398:
![]() |
Page 1073 |
045009,000400:
045010,000401: # LONGCALL
045011,000402:
045012,000403: # LONGCALL IS CALLED WITH THE DELTA TIME ARRIVING IN A,L SCALED AS TIME2,TIME1 WITH THE 2CADR OF THE TASK
045013,000404: # IMMEDIATELY FOLLOWING THE TC LONGCALL. FOR EXAMPLE, IT MIGHT BE DONE AS FOLLOWS WHERE TIMELOC IS THE NAME OF
045014,000405: # A DP REGISTER CONTAINING A DELTA TIME AND WHERE TASKTODO IS THE NAME OF THE LOCATION AT WHICH LONGCALL IS TO
045015,000406: # START
045016,000407:
045017,000408: # EXTEND
045018,000409: # DCA TIMELOC
045019,000410: # TC LONGCALL
045020,000411: # 2CADR TASKTODO
045021,000412:
045022,000413: # *** THE FOLLOWING IS TO BE IN FIXED-FIXED AND UNSWITCHED ERRASIBLE ***
045023,000414:
045024,000415: 5741 BLOCK 02
045025,000416: 5741 E3,1400 EBANK= LST1
045026,000417: 5741 53154 LONGCALL DXCH LONGTIME # OBTAIN THE DELTA TIME
045027,000418:
045028,000419: 5742 00006 EXTEND # OBTAIN THE 2CADR
045029,000420: 5743 50002 NDX Q
045030,000421: 5744 30001 DCA 0
045031,000422: 5745 53152 DXCH LONGCADR
045032,000423:
045033,000424: 5746 00006 EXTEND # NOW GO TO THE APPROPRIATE SWITCHED BANK
045034,000425: 5747 35752 DCA LGCL2CDR # FOR THE REST OF LONGCALL
045035,000426: 5750 52006 DTCB
045036,000427:
045037,000428: 5751 E3,1400 EBANK= LST1
045038,000429: 5751 03634 02063 LGCL2CDR 2CADR LNGCALL2
045039,000430:
045040,000431: # *** THE FOLLOWING MAY BE IN A SWITCHED BANK, INCLUDING ITS ERASABLE ***
045041,000432:
045042,000433: 01,3634 BANK 01
045043,000434: 01,3634 23435 LNGCALL2 LXCH LONGEXIT +1 # SAVE THE CORRECT BB FOR RETURN
045044,000435: 01,3635 37762 CA TWO # OBTAIN THE RETURN ADDRESS
045045,000436: 01,3636 26002 ADS Q
045046,000437: 01,3637 55434 TS LONGEXIT
045047,000438:
045048,000439: # *** WAITLIST TASK LONGCYCL ***
045049,000440:
045050,000441: 01,3640 00006 LONGCYCL EXTEND # CAN WE SUCCESFULLY TAKE ABOUT 1.25
045051,000442: 01,3641 43652 DCS DPBIT14 # MINUTES OFF OF LONGTIME
045052,000443: 01,3642 21154 DAS LONGTIME
045053,000444:
045054,000445: 01,3643 11154 CCS LONGTIME +1 # THE REASONIBG BEHIND THIS PART IS
045055,000446: 01,3644 13663 TCF MUCHTIME # INVOLVED, TAKING INTO ACCOUNT THAT THE
045056,000447: # WORDS MAY NOT BE SIGNED CORRECTED (DP
045057,000448: # BASIC INSTRUCTIONS
045058,000449: # DO NOT SIGN CORRECT) AND THAT WE SUBTRAC
045059,000450: # TED BIT14 (1 OVER HALF THE POS. VALUE
045060,000451: # REPRESENTABLE IN SINGLE WORD)
045061,000452:
![]() |
Page 1074 |
045063,000454:
045064,000455: 01,3645 13646 NOOP # CAN:T GET HERE **********
045065,000456: 01,3646 13647 TCF +1
045066,000457: 01,3647 11153 CCS LONGTIME
045067,000458: 01,3650 13663 TCF MUCHTIME
045068,000459: 01,3651 00000 DPBIT14 OCT 00000
045069,000460: 01,3652 20000 OCT 20000
045070,000461:
045071,000462: # LONGCALL
045072,000463:
045073,000464: 01,3653 37746 LASTTIME CA BIT14 # GET BACK THE CORRECT DELTA T FOR WAITLIST
045074,000465: 01,3654 27154 ADS LONGTIME +1
045075,000466: 01,3655 05663 TC WAITLIST
045076,000467: 01,3656 E3,1400 EBANK= LST1
045077,000468: 01,3656 03670 02063 2CADR GETCADR # THE ENTRY TO OUR LONGCADR
045078,000469:
045079,000470: 01,3660 33672 LONGRTRN CA TSKOVCDR # SET IT UP SO THAT ONLY THE FIRST EXIT IS
045080,000471: 01,3661 53435 DXCH LONGEXIT # TO THE CALLER OF LONGCALL
045081,000472: 01,3662 52006 DTCB # THE REST ARE TO TASKOVER
045082,000473:
045083,000474: 01,3663 37746 MUCHTIME CA BIT14 # WE HAVE OVER OUR ABOUT 1.25 MINUTES
045084,000475: 01,3664 05663 TC WAITLIST # SO SET UP FOR ANOTHER CYCLE THROUGH HERE
045085,000476: 01,3665 E3,1400 EBANK= LST1
045086,000477: 01,3665 03640 02063 2CADR LONGCYCL
045087,000478:
045088,000479: 01,3667 13660 TCF LONGRTRN # NOW EXIT PROPERLY
045089,000480:
045090,000481: # *** WAITLIST TASK GETCADR ***
045091,000482:
045092,000483: 01,3670 53152 GETCADR DXCH LONGCADR # GET THE LONGCALL THAT WE WISHED TO START
045093,000484: 01,3671 52006 DTCB # AND TRANSFER CONTROL TO IT
045094,000485:
045095,000486: 01,3672 05727 TSKOVCDR GENADR TASKOVER
End of include-file WAITLIST.agc. Parent file is MAIN.agc