Source Code

These source-code files were transcribed from scans made from Don Eyles's personal copy of BURST120 (SUNBURST 120). They were scanned at archive.org's Boston facility, and the scanning was sponsored by Mike Stewart. The code was transcribed from these scans by a team of volunteers who are referenced in the program comments. Comments from the original source code are in ALL-CAPS, whereas comments added later in transcription are in Mixed-Case. In some cases, where similar code blocks exist in previously-transcribed AGC programs (primarily Luminary 99, from Apollo 11) those code blocks were used as a starting point and then corrected to agree with the BURST120 scans. The full scans are available at the Virtual AGC project's collection at archive.org, while more-convenient reduced-size (but reduced-quality) images are available at the main Virtual AGC website. Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. Notations on the program listing read, in part:

	YUL SYSTEM FOR AGC: REVISION 0 OF PROGRAM BURST120 
	BY NASA 2021106-031 DEC 7, 1967

	THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED 
	FOR USE IN THE ON-BOARD PRIMARY GUIDANCE COMPUTER IN THE 
	UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1 --- THE AS206 MISSION.
Note that the date is the date of the printout, not the date of the program revision.

044611,000002:                                                                                                  ## Copyright:   Public domain.
044612,000003:                                                                                                  ## Filename:    WAITLIST.agc
044613,000004:                                                                                                  ## Purpose:     A module for revision 0 of BURST120 (Sunburst). It 
044614,000005:                                                                                                  ##              is part of the source code for the Lunar Module's
044615,000006:                                                                                                  ##              (LM) Apollo Guidance Computer (AGC) for Apollo 5.
044616,000007:                                                                                                  ## Assembler:   yaYUL
044617,000008:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
044618,000009:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
044619,000010:                                                                                                  ## Pages:       1062-1074
044620,000011:                                                                                                  ## Mod history: 2016-09-30 RSB  Created draft version.
044621,000012:                                                                                                  ##              2016-10-10 PDJ  Updated based on Sunburst120 scans. 
044622,000013:                                                                                                  ##              2016-12-06 RSB  Comments proofed using octopus/ProoferComments,
044623,000014:                                                                                                  ##                              changes made.
044624,000015:                                                                                                  ##              2017-01-28 RSB  WTIH -> WITH.
044625,000016:                                                                                                  ##              2017-02-09 RSB  Comment-text fixes identified in proofing Artemis 72
044626,000017:                                                                                                  ##              2017-03-14 RSB  Comment-text fixes noted in proofing Luminary 116.
044627,000018:                                                                                                  ##              2017-03-16 RSB  Comment-text fixes identified in 5-way
044628,000019:                                                                                                  ##                              side-by-side diff of Luminary 69/99/116/131/210.
044629,000020:                                                                                                  ##              2017-03-21 RSB  Changed a couple of apostrophes to colons.
044630,000021: 

Page 1062

044632,000023: 
044633,000024:                                                                                                  #  PROGRAM DESCRIPTION                                                           DATE - 10 OCTOBER 1966
044634,000025:                                                                                                  #  MOD NO - 2                                                                    LOG SECTION - WAITLIST
044635,000026:                                                                                                  #  MOD BY - MILLER      (DTMAX INCREASED TO 162.5 SEC)                           ASSEMBLY SUNBURST REV 5
044636,000027: 
044637,000028:                                                                                                  #  FUNCTIONAL DESCRIPTION-
044638,000029:                                                                                                  #             PART OF A SECTION OF PROGRAMS,-WAITLIST, TASKOVER, T3RUPT, USED TO CALL A PROGRAM, (CALLED A TASK),
044639,000030:                                                                                                  #        WHICH IS TO BEGIN IN C(A) CENTISECONDS.  WAITLIST UPDATES TIME3, LST1 AND LST2.  THE MEANING OF THESE LISTS
044640,000031:                                                                                                  #        FOLLOW.
044641,000032: 
044642,000033:                                                                                                  #                C(TIME3) = 16384 -(T1-T) CENTISECONDS, (T=PRESENT TIME, T1-TIME FOR TASK1)
044643,000034: 
044644,000035:                                                                                                  #                        C(LST1)         =       -(T2-T1)+1
044645,000036:                                                                                                  #                        C(LST1 +1)      =       -(T3-T2)+1
044646,000037:                                                                                                  #                        C(LST1 +2)      =       -(T4-T3)+1
044647,000038:                                                                                                  #                                        .
044648,000039:                                                                                                  #                                        .
044649,000040:                                                                                                  #                        C(LST1 +6)      =       -(T8-T7)+1
044650,000041:                                                                                                  #                        C(LST1 +7)      =       -(T9-T8)+1
044651,000042: 
044652,000043:                                                                                                  #                        C(LST2)         =       2CADR OF TASK1
044653,000044:                                                                                                  #                        C(LST2 +2)      =       2CADR OF TASK2
044654,000045:                                                                                                  #                                        .
044655,000046:                                                                                                  #                                        .
044656,000047:                                                                                                  #                        C(LST2 +14)     =       2CADR OF TASK8
044657,000048:                                                                                                  #                        C(LST2 +16)     =       2CADR OF TASK9
044658,000049: 
044659,000050:                                                                                                  #  WARNINGS-
044660,000051:                                                                                                  #  --------
044661,000052:                                                                                                  #        1)      1 <= C(A) <= 16250D (1 CENTISECOND TO 162.5 SEC)
044662,000053:                                                                                                  #        2)      9 TASKS MAXIMUM
044663,000054:                                                                                                  #        3)      TASKS CALLED UNDER INTERRUPT INHIBITED
044664,000055:                                                                                                  #        4)      TASKS END BY TC TASKOVER
044665,000056: 
044666,000057:                                                                                                  #  CALLING SEQUENCE-
044667,000058:                                                                                                  #        L-2     CAF     DELTAT  (TIME IN CENTISECONDS TO TASK START)
044668,000059:                                                                                                  #        L-1     INHINT
044669,000060:                                                                                                  #        L       TC      WAITLIST
044670,000061:                                                                                                  #        L+1     2CADR   DESIRED TASK
044671,000062:                                                                                                  #        L+2     (MINOR OF 2CADR)
044672,000063:                                                                                                  #        L+3     RELINT          (RETURNS HERE)
044673,000064: 
044674,000065:                                                                                                  #  NORMAL EXIT MODES-
044675,000066: 
044676,000067:                                                                                                  #        AT L+3 OF CALLING SEQUENCE
044677,000068: 
044678,000069:                                                                                                  #  ALARM OR ABORT EXIT MODES-
044679,000070: 

Page 1063

044681,000072: 
044682,000073:                                                                                                  #        TC      ABORT
044683,000074:                                                                                                  #        OCT     1203    (WAITLIST OVERFLOW - TOO MANY TASKS)
044684,000075: 
044685,000076:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED-
044686,000077: 
044687,000078:                                                                                                  #        ACCOMPLISHED BY FRESH START,--LST2,..., LST2 +16 =ENDTASK
044688,000079:                                                                                                  #                                      LST1,..., LST1 +7  =NEG1/2
044689,000080: 
044690,000081:                                                                                                  #  OUTPUT--
044691,000082: 
044692,000083:                                                                                                  #        LST1 AND LST2 UPDATED WITH NEW TASK AND ASSOCIATED TIME.
044693,000084: 
044694,000085:                                                                                                  #  DEBRIS-
044695,000086: 
044696,000087:                                                                                                  #        CENTRALS- A,Q,L
044697,000088:                                                                                                  #        OTHER   - WAITEXIT, WAITADR, WAITTEMP, WAITBANK
044698,000089:                                                                                                  #  DETAILED ANALYSIS OF TIMING-
044699,000090: 
044700,000091:                                                                                                  #             CONTROL WILL NOT BE RETURNED TO THE SPECIFIED ADDRESS (2CADR) IN EXACTLY DELTA T CENTISECONDS.
044701,000092:                                                                                                  #        THE APPROXIMATE TIME MAY BE CALCULATED AS FOLLOWS
044702,000093: 
044703,000094:                                                                                                  #                LET TO = THE TIME OF THE TC WAITLIST
044704,000095:                                                                                                  #                LET TS = TO +147U + COUNTER INCREMENTS (SET UP TIME)
044705,000096:                                                                                                  #                LET X  = TS -(100TS)/100  (VARIANCE FROM COUNTERS)
044706,000097:                                                                                                  #                LET Y  = LENGTH OF TIME OF INHIBIT INTERRUPT AFTER T3RUPT
044707,000098:                                                                                                  #                LET Z  = LENGTH OF TIME TO PROCESS TASKS WHICH ARE DUE THIS T3RUPT BUT DISPATCHED EARLIER.
044708,000099:                                                                                                  #        (Z=0, USUALLY)
044709,000100:                                                                                                  #                LET DELTD  = THE ACTUAL TIME TAKEN TO GIVE CONTROL TO 2CADR
044710,000101:                                                                                                  #             THEN DELTD = TS+DELTA T -X +Y +Z +1.05MS* +COUNTERS*
044711,000102: 
044712,000103:                                                                                                  #        *-THE TIME TAKEN BY WAITLIST ITSELF AND THE COUNTER TICKING DURING THIS WAITLIST TIME.
044713,000104: 
044714,000105:                                                                                                  #             IN SHORT, THE ACTUAL TIME TO RETURN CONTROL TO A 2CADR IS AUGMENTED BY THE TIME TO SET UP THE TASK:S
044715,000106:                                                                                                  #        INTERRUPT, ALL COUNTERS TICKING, THE T3RUPT PROCESSING TIME, THE WAITLIST PROCESSING TIME AND THE POSSIBILITY
044716,000107:                                                                                                  #        OF OTHER TASKS INHIBITING THE INTERRUPT.
044717,000108: 
044718,000109:    5663                                           BLOCK    02                                    
044719,000110:    5663  E3,1400                                  EBANK=   LST1                                  #  TASK LISTS IN SWITCHED E BANK.
044720,000111: 
044721,000112:    5663           56002        WAITLIST           XCH      Q                                     #   SAVE DELTA T IN Q AND RETURN IN                                          
044722,000113:    5664           54061                           TS       WAITEXIT                              #  WAITEXIT.
044723,000114:    5665           00006                           EXTEND                                         
044724,000115:    5666           50000                           INDEX    A                                     
044725,000116:    5667           30001                           DCA      0                                     #  PICK UP 2CADR OF TASK.
044726,000117:    5670           54063                           TS       WAITADR                               #  BBCON WILL REMAIN IN L.
044727,000118:    5671           35700        DLY2               CAF      WAITBB                                #  ENTRY FROM FIXDELAY AND VARDELAY.
044728,000119:    5672           56006                           XCH      BBANK                                 
044729,000120:    5673           13427                           TCF      WAIT2                                 
044730,000121: 
044731,000122:                                                                                                  #  RETURN TO CALLER AFTER TASK INSERTION:
044732,000123: 

Page 1064

044734,000125: 
044735,000126:    5674           30062        LVWTLIST           CA       WAITBANK                              
044736,000127:    5675           54006                           TS       BBANK                                 
044737,000128:    5676           50061                           INDEX    WAITEXIT                              
044738,000129:    5677           00002                           TC       2                                     
044739,000130: 
044740,000131:    5700  E3,1400                                  EBANK=   LST1                                  
044741,000132:    5700           02063        WAITBB             BBCON    WAIT2                                 
044742,000133: 
044743,000134:                                                                                                  #  RETURN TO CALLER +2 AFTER WAITING DT SPECIFIED AT CALLER +1.
044744,000135: 
044745,000136:    5701           50002        FIXDELAY           INDEX    Q                                     #  BOTH ROUTINES MUST BE CALLED UNDER
044746,000137:    5702           30000                           CAF      0                                     #  WAITLIST CONTROL AND TERMINATE THE TASK
044747,000138:    5703           24002                           INCR     Q                                     #  IN WHICH THEY WERE CALLED.
044748,000139: 
044749,000140:                                                                                                  #  RETURN TO CALLER +1 AFTER WAITING THE DT AS ARRIVING IN A.
044750,000141: 
044751,000142:    5704           56002        VARDELAY           XCH      Q                                     #  DT TO Q.  TASK ADRES TO WAITADR.
044752,000143:    5705           54063                           TS       WAITADR                               
044753,000144:    5706           30006                           CA       BBANK                                 #  BBANK IS SAVED DURING DELAY.
044754,000145:    5707           54001                           TS       L                                     
044755,000146:    5710           35713                           CAF      DELAYEX                               
044756,000147:    5711           54061                           TS       WAITEXIT                              #  GO TO TASKOVER AFTER TASK ENTRY.
044757,000148:    5712           15671                           TCF      DLY2                                  
044758,000149: 
044759,000150:    5713           15725        DELAYEX            TCF      TASKOVER   -2                         #  RETURNS TO TASKOVER
044760,000151: 

Page 1065

044762,000153: 
044763,000154:                                                                                                  #  ENDTASK MUST BE ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
044764,000155: 
044765,000156:    5714  E3,1400                                  EBANK=   LST1                                  
044766,000157:    5714           72061 73714  ENDTASK            -2CADR   SVCT3                                 
044767,000158: 
044768,000159:    5716           10076        SVCT3              CCS      FLAGWRD2                              #  DRIFT FLAG
044769,000160:    5717           15727                           TCF      TASKOVER                              
044770,000161:    5720           15727                           TCF      TASKOVER                              
044771,000162:    5721           15722                           TCF      +1                                    
044772,000163: 
044773,000164:    5722           35656                           CAF      PRIO35                                #  COMPENSATE FOR NBD COEFFICIENTS ONLY
044774,000165:    5723           05505                           TC       NOVAC                                 #      ENABLE EVERY 81.93 SECONDS
044775,000166:    5724  E3,1444                                  EBANK=   NBDX                                  
044776,000167:    5724           03501 24063                     2CADR    NBDONLY                               
044777,000168: 
044778,000169:    5726           15727                           TCF      TASKOVER                              
044779,000170: 

Page 1066

044781,000172: 
044782,000173:                                                                                                  #  BEGIN TASK INSERTION.
044783,000174: 
044784,000175: 01,3427                                           BANK     01                                    
044785,000176: 01,3427           54062        WAIT2              TS       WAITBANK                              #  BBANK OF CALLING PROGRAM.
044786,000177: 01,3430           40026                           CS       TIME3                                 
044787,000178: 01,3431           67754                           AD       BIT8                                  #  BIT 8 = OCT 200
044788,000179: 01,3432           10000                           CCS      A                                     #  TEST 200 - C(TIME3).  IF POSITIVE,
044789,000180:                                                                                                  #  IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS TIME3 AND THAT
044790,000181:                                                                                                  #  C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T).  THE FOLLOWING FOUR
044791,000182:                                                                                                  #  ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
044792,000183: 
044793,000184: 01,3433           66153                           AD       OCT40001                              #  OVERFLOW HAS OCCURRED.  SET C(A) =
044794,000185: 01,3434           40000                           CS       A                                     #  T - T1 + 1.0 - 201
044795,000186: 
044796,000187:                                                                                                  #  NORMAL CASE (C(A) NNZ) YIELDS SAME C(A):  -( -(1.0-(T1-T)) + 200) - 1
044797,000188: 
044798,000189: 01,3435           63563                           AD       OCT40201                              
044799,000190: 01,3436           60002                           AD       Q                                     #  RESULT = TD - T1 + 1.
044800,000191: 
044801,000192: 01,3437           10000                           CCS      A                                     #  TEST TD - T1 + 1
044802,000193: 
044803,000194: 01,3440           61400                           AD       LST1                                  #  IF TD - T1 POS, GO TO WTLST5 WITH
044804,000195: 01,3441           13503                           TCF      WTLST5                                #  C(A) = (TD - T1) + C(LST1) = TD-T2+1
044805,000196: 
044806,000197: 01,3442           13443                           NOOP                                           
044807,000198: 01,3443           40002                           CS       Q                                     
044808,000199: 
044809,000200:                                                                                                  #  NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
044810,000201:                                                                                                  #  SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1.  (G/E
044811,000202:                                                                                                  #  SYMBOL MEANS GREATER THAN OR EQUAL TO).  THUS THERE NEED BE NO CON-
044812,000203:                                                                                                  #  CERN OVER A PREVIOUS OR IMMINENT OVERFLOW OF TIME3 HERE.
044813,000204: 
044814,000205: 01,3444           67746                           AD       POS1/2                                #  WHEN TD IS NEXT, FORM QUANTITY
044815,000206: 01,3445           67746                           AD       POS1/2                                #        1.0 - DELTA T = 1.0 - (TD - T)
044816,000207: 01,3446           56026                           XCH      TIME3                                 
044817,000208: 01,3447           67745                           AD       NEGMAX                                
044818,000209: 01,3450           60002                           AD       Q                                     #  1.0 - DELTAT T NOW COMPLETE.
044819,000210: 01,3451           00006                           EXTEND                                         #  ZERO INDEX Q.
044820,000211: 01,3452           22007                           QXCH     7                                     #  (ZQ)
044821,000212: 

Page 1067

044823,000214: 01,3453           57400        WTLST4             XCH      LST1                                  
044824,000215: 01,3454           57401                           XCH      LST1       +1                         
044825,000216: 01,3455           57402                           XCH      LST1       +2                         
044826,000217: 01,3456           57403                           XCH      LST1       +3                         
044827,000218: 01,3457           57404                           XCH      LST1       +4                         
044828,000219: 01,3460           57405                           XCH      LST1       +5                         
044829,000220: 01,3461           57406                           XCH      LST1       +6                         
044830,000221: 01,3462           57407                           XCH      LST1       +7                         
044831,000222: 
044832,000223: 01,3463           30063                           CA       WAITADR                               #  (MINOR PART OF TASK CADR HAS BEEN IN L.)
044833,000224: 01,3464           50002                           INDEX    Q                                     
044834,000225: 01,3465           13466                           TCF      +1                                    
044835,000226: 
044836,000227: 01,3466           53411                           DXCH     LST2                                  
044837,000228: 01,3467           53413                           DXCH     LST2       +2                         
044838,000229: 01,3470           53415                           DXCH     LST2       +4                         
044839,000230: 01,3471           53417                           DXCH     LST2       +6                         
044840,000231: 01,3472           53421                           DXCH     LST2       +8D                        
044841,000232: 01,3473           53423                           DXCH     LST2       +10D                       #  AT END, CHECK THAT C(LST2+10) IS STD
044842,000233: 01,3474           53425                           DXCH     LST2       +12D                       
044843,000234: 01,3475           53427                           DXCH     LST2       +14D                       
044844,000235: 01,3476           53431                           DXCH     LST2       +16D                       
044845,000236: 01,3477           65714                           AD       ENDTASK                               #  END ITEM, AS CHECK FOR EXCEEDING
044846,000237:                                                                                                  #  THE LENGTH OF THE LIST.
044847,000238: 01,3500           00006                           EXTEND                                         #  DUMMY TASK ADRES SHOULD BE IN FIXED-
044848,000239: 01,3501           15674                           BZF      LVWTLIST                              #  FIXED SO ITS ADRES ALONE DISTINGUISHES
044849,000240: 01,3502           13556                           TCF      WTABORT                               #  IT.
044850,000241: 

Page 1068

044852,000243: 
044853,000244: 01,3503           10000        WTLST5             CCS      A                                     #  TEST TD - T2 + 1
044854,000245: 01,3504           61401                           AD       LST1       +1                         
044855,000246: 01,3505           13511                           TCF      +4                                    
044856,000247: 01,3506           67763                           AD       ONE                                   
044857,000248: 01,3507           03564                           TC       WTLST2                                
044858,000249: 01,3510           00001                           OCT      1                                     
044859,000250: 
044860,000251: 01,3511           10000                 +4        CCS      A                                     #  TEST TD - T3 + 1
044861,000252: 01,3512           61402                           AD       LST1       +2                         
044862,000253: 01,3513           13517                           TCF      +4                                    
044863,000254: 01,3514           67763                           AD       ONE                                   
044864,000255: 01,3515           03564                           TC       WTLST2                                
044865,000256: 01,3516           00002                           OCT      2                                     
044866,000257: 
044867,000258: 01,3517           10000                 +4        CCS      A                                     #  TEST TD - T4 + 1
044868,000259: 01,3520           61403                           AD       LST1       +3                         
044869,000260: 01,3521           13525                           TCF      +4                                    
044870,000261: 01,3522           67763                           AD       ONE                                   
044871,000262: 01,3523           03564                           TC       WTLST2                                
044872,000263: 01,3524           00003                           OCT      3                                     
044873,000264: 
044874,000265: 01,3525           10000                 +4        CCS      A                                     #  TEST TD - T5 + 1
044875,000266: 01,3526           61404                           AD       LST1       +4                         
044876,000267: 01,3527           13533                           TCF      +4                                    
044877,000268: 01,3530           67763                           AD       ONE                                   
044878,000269: 01,3531           03564                           TC       WTLST2                                
044879,000270: 01,3532           00004                           OCT      4                                     
044880,000271: 
044881,000272: 01,3533           10000                 +4        CCS      A                                     #  TEST TD - T6 + 1
044882,000273: 01,3534           61405                           AD       LST1       +5                         
044883,000274: 01,3535           13541                           TCF      +4                                    
044884,000275: 01,3536           67763                           AD       ONE                                   
044885,000276: 01,3537           03564                           TC       WTLST2                                
044886,000277: 01,3540           00005                           OCT      5                                     
044887,000278: 
044888,000279: 01,3541           10000                 +4        CCS      A                                     #  TEST TD - T7 + 1
044889,000280: 01,3542           61406                           AD       LST1       +6                         
044890,000281: 01,3543           13547                           TCF      +4                                    
044891,000282: 01,3544           67763                           AD       ONE                                   
044892,000283: 01,3545           03564                           TC       WTLST2                                
044893,000284: 01,3546           00006                           OCT      6                                     
044894,000285: 

Page 1069

044896,000287: 
044897,000288: 01,3547           10000                 +4        CCS      A                                     
044898,000289: 01,3550           61407                           AD       LST1       +7                         
044899,000290: 01,3551           13555                           TCF      +4                                    
044900,000291: 01,3552           67763                           AD       ONE                                   
044901,000292: 01,3553           03564                           TC       WTLST2                                
044902,000293: 01,3554           00007                           OCT      7                                     
044903,000294: 
044904,000295: 01,3555           10000                 +4        CCS      A                                     
044905,000296: 01,3556           06000        WTABORT            TC       ABORT                                 #  NO ROOM IN THE INN.                         
044906,000297: 01,3557           01203                           OCT      1203                                  
044907,000298: 
044908,000299: 01,3560           67763                           AD       ONE                                   
044909,000300: 01,3561           03564                           TC       WTLST2                                
044910,000301: 01,3562           00010                           OCT      10                                    
044911,000302: 
044912,000303: 01,3563           40201        OCT40201           OCT      40201                                 
044913,000304: 

Page 1070

044915,000306: 
044916,000307:                                                                                                  #  THE ENTRY TO WTLST2 JUST PRECEDING OCT N IS FOR T  LE TD LE T   -1.
044917,000308:                                                                                                  #                                                   N           N+1
044918,000309:                                                                                                  #  (LE MEANS LESS THAN OR EQUAL TO).  AT ENTRY, C(A) = -(TD - T   + 1)
044919,000310:                                                                                                  #                                                              N+1
044920,000311:                                                                                                  #  THE LST1 ENTRY -(T   -T +1) IS TO BE REPLACED BY -(TD - T  + 1), AND
044921,000312:                                                                                                  #                    N+1  N                                 N
044922,000313:                                                                                                  #  THE ENTRY -(T   - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
044923,000314:                                                                                                  #               N+1
044924,000315: 
044925,000316: 01,3564           54064        WTLST2             TS       WAITTEMP                              #  C(A) = -(TD - T + 1)
044926,000317: 01,3565           50002                           INDEX    Q                                     
044927,000318: 01,3566           30000                           CAF      0                                     
044928,000319: 01,3567           54002                           TS       Q                                     #  INDEX VALUE INTO Q.
044929,000320: 
044930,000321: 01,3570           37763                           CAF      ONE                                   
044931,000322: 01,3571           60064                           AD       WAITTEMP                              
044932,000323: 01,3572           50002                           INDEX    Q                                     #  C(A) = -(TD - T ) + 1.
044933,000324: 01,3573           27377                           ADS      LST1       -1                         #                 N
044934,000325: 
044935,000326: 01,3574           40064                           CS       WAITTEMP                              
044936,000327: 01,3575           50002                           INDEX    Q                                     
044937,000328: 01,3576           13453                           TCF      WTLST4                                
044938,000329: 
044939,000330:                                                                                                  #        C(TIME3)        =       1.0 - (T1 - T)
044940,000331: 
044941,000332:                                                                                                  #        C(LST1 )         =       - (T2 - T1) + 1
044942,000333:                                                                                                  #        C(LST1+1 )       =       - (T3 - T2) + 1
044943,000334:                                                                                                  #        C(LST1+2 )       =       - (T4 - T3) + 1
044944,000335:                                                                                                  #        C(LST1+3 )       =       - (T5 - T4) + 1
044945,000336:                                                                                                  #        C(LST1+4 )       =       - (T6 - T5) + 1
044946,000337: 
044947,000338:                                                                                                  #        C(LST2   )       =       2CADR TASK1
044948,000339:                                                                                                  #        C(LST2+2 )       =       2CADR TASK2
044949,000340:                                                                                                  #        C(LST2+4 )       =       2CADR TASK3
044950,000341:                                                                                                  #        C(LST2+6 )       =       2CADR TASK4
044951,000342:                                                                                                  #        C(LST2+8 )       =       2CADR TASK5
044952,000343:                                                                                                  #        C(LST2+10)       =       2CADR TASK6
044953,000344: 

Page 1071

044955,000346: 
044956,000347:                                                                                                  #  ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
044957,000348: 
044958,000349: 01,3577           54016        T3RUPT             TS       BANKRUPT                              
044959,000350: 01,3600           00006                           EXTEND                                         
044960,000351: 01,3601           22012                           QXCH     QRUPT                                 
044961,000352: 
044962,000353: 01,3602           37744        T3RUPT2            CAF      NEG1/2                                #  DISPATCH WAITLIST TASK.
044963,000354: 01,3603           57407                           XCH      LST1       +7                         
044964,000355: 01,3604           57406                           XCH      LST1       +6                         
044965,000356: 01,3605           57405                           XCH      LST1       +5                         
044966,000357: 01,3606           57404                           XCH      LST1       +4                         #  1. MOVE UP LST1 CONTENTS, ENTERING
044967,000358: 01,3607           57403                           XCH      LST1       +3                         #     A VALUE OF 1/2 +1 AT THE BOTTOM
044968,000359: 01,3610           57402                           XCH      LST1       +2                         #     FOR T6-T5, CORRESPONDING TO THE
044969,000360: 01,3611           57401                           XCH      LST1       +1                         #     INTERVAL 81.91 SEC FOR ENDTASK.
044970,000361: 01,3612           57400                           XCH      LST1                                  
044971,000362: 01,3613           67743                           AD       POSMAX                                #  2. SET T3 = 1.0 - T2 - T USING LIST 1.
044972,000363: 01,3614           26026                           ADS      TIME3                                 #  SO T3 WONT TICK DURING UPDATE.
044973,000364: 01,3615           55076                           TS       RUPTAGN                               
044974,000365: 01,3616           47767                           CS       ZERO                                  
044975,000366: 01,3617           55076                           TS       RUPTAGN                               #  SETS RUPTAGN TO +1 ON OVERFLOW.
044976,000367: 
044977,000368: 01,3620           00006                           EXTEND                                         #  DISPATCH TASK.
044978,000369: 01,3621           45715                           DCS      ENDTASK                               
044979,000370: 01,3622           53431                           DXCH     LST2       +16D                       
044980,000371: 01,3623           53427                           DXCH     LST2       +14D                       
044981,000372: 01,3624           53425                           DXCH     LST2       +12D                       
044982,000373: 01,3625           53423                           DXCH     LST2       +10D                       
044983,000374: 01,3626           53421                           DXCH     LST2       +8D                        
044984,000375: 01,3627           53417                           DXCH     LST2       +6                         
044985,000376: 01,3630           53415                           DXCH     LST2       +4                         
044986,000377: 01,3631           53413                           DXCH     LST2       +2                         
044987,000378: 01,3632           53411                           DXCH     LST2                                  
044988,000379: 
044989,000380: 01,3633           52006                           DTCB                                           
044990,000381: 

Page 1072

044992,000383: 
044993,000384:                                                                                                  #  RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
044994,000385: 
044995,000386:    5727                                           BLOCK    02                                    
044996,000387:    5727           11076        TASKOVER           CCS      RUPTAGN                               #  IF +1 RETURN TO T3RUPT, IF -0 RESUME.
044997,000388:    5730           35700                           CAF      WAITBB                                
044998,000389:    5731           54006                           TS       BBANK                                 
044999,000390:    5732           13602                           TCF      T3RUPT2                               #  DISPATCH NEXT TASK IF IT WAS DUE.
045000,000391: 
045001,000392:    5733           00006        RESUME             EXTEND                                         
045002,000393:    5734           22012                           QXCH     QRUPT                                 
045003,000394:    5735           30016        NOQRSM             CA       BANKRUPT                              
045004,000395:    5736           56006                           XCH      BBANK                                 
045005,000396:    5737           52011        NOQBRSM            DXCH     ARUPT                                 
045006,000397:    5740           50017                           RESUME                                         
045007,000398: 

Page 1073

045009,000400: 
045010,000401:                                                                                                  #  LONGCALL
045011,000402: 
045012,000403:                                                                                                  #  LONGCALL IS CALLED WITH THE DELTA TIME ARRIVING IN A,L SCALED AS TIME2,TIME1 WITH THE 2CADR OF THE TASK
045013,000404:                                                                                                  #  IMMEDIATELY FOLLOWING THE TC LONGCALL.  FOR EXAMPLE, IT MIGHT BE DONE AS FOLLOWS WHERE TIMELOC IS THE NAME OF
045014,000405:                                                                                                  #  A DP REGISTER CONTAINING A DELTA TIME AND WHERE TASKTODO IS THE NAME OF THE LOCATION AT WHICH LONGCALL IS TO
045015,000406:                                                                                                  #  START
045016,000407: 
045017,000408:                                                                                                  #                EXTEND
045018,000409:                                                                                                  #                DCA             TIMELOC
045019,000410:                                                                                                  #                TC              LONGCALL
045020,000411:                                                                                                  #                2CADR           TASKTODO
045021,000412: 
045022,000413:                                                                                                  #  *** THE FOLLOWING IS TO BE IN FIXED-FIXED AND UNSWITCHED ERRASIBLE ***
045023,000414: 
045024,000415:    5741                                           BLOCK    02                                    
045025,000416:    5741  E3,1400                                  EBANK=   LST1                                  
045026,000417:    5741           53154        LONGCALL           DXCH     LONGTIME                              #  OBTAIN THE DELTA TIME
045027,000418: 
045028,000419:    5742           00006                           EXTEND                                         #  OBTAIN THE 2CADR
045029,000420:    5743           50002                           NDX      Q                                     
045030,000421:    5744           30001                           DCA      0                                     
045031,000422:    5745           53152                           DXCH     LONGCADR                              
045032,000423: 
045033,000424:    5746           00006                           EXTEND                                         #  NOW GO TO THE APPROPRIATE SWITCHED BANK
045034,000425:    5747           35752                           DCA      LGCL2CDR                              #  FOR THE REST OF LONGCALL
045035,000426:    5750           52006                           DTCB                                           
045036,000427: 
045037,000428:    5751  E3,1400                                  EBANK=   LST1                                  
045038,000429:    5751           03634 02063  LGCL2CDR           2CADR    LNGCALL2                              
045039,000430: 
045040,000431:                                                                                                  #  *** THE FOLLOWING MAY BE IN A SWITCHED BANK, INCLUDING ITS ERASABLE ***
045041,000432: 
045042,000433: 01,3634                                           BANK     01                                    
045043,000434: 01,3634           23435        LNGCALL2           LXCH     LONGEXIT   +1                         #  SAVE THE CORRECT BB FOR RETURN
045044,000435: 01,3635           37762                           CA       TWO                                   #  OBTAIN THE RETURN ADDRESS
045045,000436: 01,3636           26002                           ADS      Q                                     
045046,000437: 01,3637           55434                           TS       LONGEXIT                              
045047,000438: 
045048,000439:                                                                                                  #  *** WAITLIST TASK LONGCYCL ***
045049,000440: 
045050,000441: 01,3640           00006        LONGCYCL           EXTEND                                         #  CAN WE SUCCESFULLY TAKE ABOUT 1.25
045051,000442: 01,3641           43652                           DCS      DPBIT14                               #  MINUTES OFF OF LONGTIME
045052,000443: 01,3642           21154                           DAS      LONGTIME                              
045053,000444: 
045054,000445: 01,3643           11154                           CCS      LONGTIME   +1                         #  THE REASONIBG BEHIND THIS PART IS
045055,000446: 01,3644           13663                           TCF      MUCHTIME                              #  INVOLVED, TAKING INTO ACCOUNT THAT THE
045056,000447:                                                                                                  #  WORDS MAY NOT BE SIGNED CORRECTED (DP
045057,000448:                                                                                                  #  BASIC INSTRUCTIONS
045058,000449:                                                                                                  #  DO NOT SIGN CORRECT) AND THAT WE SUBTRAC
045059,000450:                                                                                                  #  TED BIT14 (1 OVER HALF THE POS. VALUE
045060,000451:                                                                                                  #  REPRESENTABLE IN SINGLE WORD)
045061,000452: 

Page 1074

045063,000454: 
045064,000455: 01,3645           13646                           NOOP                                           #  CAN:T GET HERE **********
045065,000456: 01,3646           13647                           TCF      +1                                    
045066,000457: 01,3647           11153                           CCS      LONGTIME                              
045067,000458: 01,3650           13663                           TCF      MUCHTIME                              
045068,000459: 01,3651           00000        DPBIT14            OCT      00000                                 
045069,000460: 01,3652           20000                           OCT      20000                                 
045070,000461: 
045071,000462:                                                                                                  #  LONGCALL
045072,000463: 
045073,000464: 01,3653           37746        LASTTIME           CA       BIT14                                 #  GET BACK THE CORRECT DELTA T FOR WAITLIST
045074,000465: 01,3654           27154                           ADS      LONGTIME   +1                         
045075,000466: 01,3655           05663                           TC       WAITLIST                              
045076,000467: 01,3656  E3,1400                                  EBANK=   LST1                                  
045077,000468: 01,3656           03670 02063                     2CADR    GETCADR                               #  THE ENTRY TO OUR LONGCADR
045078,000469: 
045079,000470: 01,3660           33672        LONGRTRN           CA       TSKOVCDR                              #  SET IT UP SO THAT ONLY THE FIRST EXIT IS
045080,000471: 01,3661           53435                           DXCH     LONGEXIT                              #  TO THE CALLER OF LONGCALL
045081,000472: 01,3662           52006                           DTCB                                           #  THE REST ARE TO TASKOVER
045082,000473: 
045083,000474: 01,3663           37746        MUCHTIME           CA       BIT14                                 #  WE HAVE OVER OUR ABOUT 1.25 MINUTES
045084,000475: 01,3664           05663                           TC       WAITLIST                              #  SO SET UP FOR ANOTHER CYCLE THROUGH HERE
045085,000476: 01,3665  E3,1400                                  EBANK=   LST1                                  
045086,000477: 01,3665           03640 02063                     2CADR    LONGCYCL                              
045087,000478: 
045088,000479: 01,3667           13660                           TCF      LONGRTRN                              #  NOW EXIT PROPERLY
045089,000480: 
045090,000481:                                                                                                  #  *** WAITLIST TASK GETCADR ***
045091,000482: 
045092,000483: 01,3670           53152        GETCADR            DXCH     LONGCADR                              #  GET THE LONGCALL THAT WE WISHED TO START
045093,000484: 01,3671           52006                           DTCB                                           #  AND TRANSFER CONTROL TO IT
045094,000485: 
045095,000486: 01,3672           05727        TSKOVCDR           GENADR   TASKOVER                              

End of include-file WAITLIST.agc.  Parent file is MAIN.agc