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