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