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