Source Code

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

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

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

044658,000002:                                                                                                  ## Copyright:   Public domain.
044659,000003:                                                                                                  ## Filename:    WAITLIST.agc
044660,000004:                                                                                                  ## Purpose:     A module for revision 0 of BURST120 (Sunburst). It 
044661,000005:                                                                                                  ##              is part of the source code for the Lunar Module's
044662,000006:                                                                                                  ##              (LM) Apollo Guidance Computer (AGC) for Apollo 5.
044663,000007:                                                                                                  ## Assembler:   yaYUL
044664,000008:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
044665,000009:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
044666,000010:                                                                                                  ## Pages:       1062-1074
044667,000011:                                                                                                  ## Mod history: 2016-09-30 RSB  Created draft version.
044668,000012:                                                                                                  ##              2016-10-10 PDJ  Updated based on Sunburst120 scans. 
044669,000013:                                                                                                  ##              2016-12-06 RSB  Comments proofed using octopus/ProoferComments,
044670,000014:                                                                                                  ##                              changes made.
044671,000015:                                                                                                  ##              2017-01-28 RSB  WTIH -> WITH.
044672,000016:                                                                                                  ##              2017-02-09 RSB  Comment-text fixes identified in proofing Artemis 72
044673,000017:                                                                                                  ##              2017-03-14 RSB  Comment-text fixes noted in proofing Luminary 116.
044674,000018:                                                                                                  ##              2017-03-16 RSB  Comment-text fixes identified in 5-way
044675,000019:                                                                                                  ##                              side-by-side diff of Luminary 69/99/116/131/210.
044676,000020:                                                                                                  ##              2017-03-21 RSB  Changed a couple of apostrophes to colons.
044677,000021: 

Page 1062

044679,000023: 
044680,000024:                                                                                                  #  PROGRAM DESCRIPTION                                                           DATE - 10 OCTOBER 1966
044681,000025:                                                                                                  #  MOD NO - 2                                                                    LOG SECTION - WAITLIST
044682,000026:                                                                                                  #  MOD BY - MILLER      (DTMAX INCREASED TO 162.5 SEC)                           ASSEMBLY SUNBURST REV 5
044683,000027: 
044684,000028:                                                                                                  #  FUNCTIONAL DESCRIPTION-
044685,000029:                                                                                                  #             PART OF A SECTION OF PROGRAMS,-WAITLIST, TASKOVER, T3RUPT, USED TO CALL A PROGRAM, (CALLED A TASK),
044686,000030:                                                                                                  #        WHICH IS TO BEGIN IN C(A) CENTISECONDS.  WAITLIST UPDATES TIME3, LST1 AND LST2.  THE MEANING OF THESE LISTS
044687,000031:                                                                                                  #        FOLLOW.
044688,000032: 
044689,000033:                                                                                                  #                C(TIME3) = 16384 -(T1-T) CENTISECONDS, (T=PRESENT TIME, T1-TIME FOR TASK1)
044690,000034: 
044691,000035:                                                                                                  #                        C(LST1)         =       -(T2-T1)+1
044692,000036:                                                                                                  #                        C(LST1 +1)      =       -(T3-T2)+1
044693,000037:                                                                                                  #                        C(LST1 +2)      =       -(T4-T3)+1
044694,000038:                                                                                                  #                                        .
044695,000039:                                                                                                  #                                        .
044696,000040:                                                                                                  #                        C(LST1 +6)      =       -(T8-T7)+1
044697,000041:                                                                                                  #                        C(LST1 +7)      =       -(T9-T8)+1
044698,000042: 
044699,000043:                                                                                                  #                        C(LST2)         =       2CADR OF TASK1
044700,000044:                                                                                                  #                        C(LST2 +2)      =       2CADR OF TASK2
044701,000045:                                                                                                  #                                        .
044702,000046:                                                                                                  #                                        .
044703,000047:                                                                                                  #                        C(LST2 +14)     =       2CADR OF TASK8
044704,000048:                                                                                                  #                        C(LST2 +16)     =       2CADR OF TASK9
044705,000049: 
044706,000050:                                                                                                  #  WARNINGS-
044707,000051:                                                                                                  #  --------
044708,000052:                                                                                                  #        1)      1 <= C(A) <= 16250D (1 CENTISECOND TO 162.5 SEC)
044709,000053:                                                                                                  #        2)      9 TASKS MAXIMUM
044710,000054:                                                                                                  #        3)      TASKS CALLED UNDER INTERRUPT INHIBITED
044711,000055:                                                                                                  #        4)      TASKS END BY TC TASKOVER
044712,000056: 
044713,000057:                                                                                                  #  CALLING SEQUENCE-
044714,000058:                                                                                                  #        L-2     CAF     DELTAT  (TIME IN CENTISECONDS TO TASK START)
044715,000059:                                                                                                  #        L-1     INHINT
044716,000060:                                                                                                  #        L       TC      WAITLIST
044717,000061:                                                                                                  #        L+1     2CADR   DESIRED TASK
044718,000062:                                                                                                  #        L+2     (MINOR OF 2CADR)
044719,000063:                                                                                                  #        L+3     RELINT          (RETURNS HERE)
044720,000064: 
044721,000065:                                                                                                  #  NORMAL EXIT MODES-
044722,000066: 
044723,000067:                                                                                                  #        AT L+3 OF CALLING SEQUENCE
044724,000068: 
044725,000069:                                                                                                  #  ALARM OR ABORT EXIT MODES-
044726,000070: 

Page 1063

044728,000072: 
044729,000073:                                                                                                  #        TC      ABORT
044730,000074:                                                                                                  #        OCT     1203    (WAITLIST OVERFLOW - TOO MANY TASKS)
044731,000075: 
044732,000076:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED-
044733,000077: 
044734,000078:                                                                                                  #        ACCOMPLISHED BY FRESH START,--LST2,..., LST2 +16 =ENDTASK
044735,000079:                                                                                                  #                                      LST1,..., LST1 +7  =NEG1/2
044736,000080: 
044737,000081:                                                                                                  #  OUTPUT--
044738,000082: 
044739,000083:                                                                                                  #        LST1 AND LST2 UPDATED WITH NEW TASK AND ASSOCIATED TIME.
044740,000084: 
044741,000085:                                                                                                  #  DEBRIS-
044742,000086: 
044743,000087:                                                                                                  #        CENTRALS- A,Q,L
044744,000088:                                                                                                  #        OTHER   - WAITEXIT, WAITADR, WAITTEMP, WAITBANK
044745,000089:                                                                                                  #  DETAILED ANALYSIS OF TIMING-
044746,000090: 
044747,000091:                                                                                                  #             CONTROL WILL NOT BE RETURNED TO THE SPECIFIED ADDRESS (2CADR) IN EXACTLY DELTA T CENTISECONDS.
044748,000092:                                                                                                  #        THE APPROXIMATE TIME MAY BE CALCULATED AS FOLLOWS
044749,000093: 
044750,000094:                                                                                                  #                LET TO = THE TIME OF THE TC WAITLIST
044751,000095:                                                                                                  #                LET TS = TO +147U + COUNTER INCREMENTS (SET UP TIME)
044752,000096:                                                                                                  #                LET X  = TS -(100TS)/100  (VARIANCE FROM COUNTERS)
044753,000097:                                                                                                  #                LET Y  = LENGTH OF TIME OF INHIBIT INTERRUPT AFTER T3RUPT
044754,000098:                                                                                                  #                LET Z  = LENGTH OF TIME TO PROCESS TASKS WHICH ARE DUE THIS T3RUPT BUT DISPATCHED EARLIER.
044755,000099:                                                                                                  #        (Z=0, USUALLY)
044756,000100:                                                                                                  #                LET DELTD  = THE ACTUAL TIME TAKEN TO GIVE CONTROL TO 2CADR
044757,000101:                                                                                                  #             THEN DELTD = TS+DELTA T -X +Y +Z +1.05MS* +COUNTERS*
044758,000102: 
044759,000103:                                                                                                  #        *-THE TIME TAKEN BY WAITLIST ITSELF AND THE COUNTER TICKING DURING THIS WAITLIST TIME.
044760,000104: 
044761,000105:                                                                                                  #             IN SHORT, THE ACTUAL TIME TO RETURN CONTROL TO A 2CADR IS AUGMENTED BY THE TIME TO SET UP THE TASK:S
044762,000106:                                                                                                  #        INTERRUPT, ALL COUNTERS TICKING, THE T3RUPT PROCESSING TIME, THE WAITLIST PROCESSING TIME AND THE POSSIBILITY
044763,000107:                                                                                                  #        OF OTHER TASKS INHIBITING THE INTERRUPT.
044764,000108: 
044765,000109:    5663                                           BLOCK    02                                    
044766,000110:    5663  E3,1400                                  EBANK=   LST1                                  #  TASK LISTS IN SWITCHED E BANK.
044767,000111: 
044768,000112:    5663           56002        WAITLIST           XCH      Q                                     #   SAVE DELTA T IN Q AND RETURN IN                                          
044769,000113:    5664           54061                           TS       WAITEXIT                              #  WAITEXIT.
044770,000114:    5665           00006                           EXTEND                                         
044771,000115:    5666           50000                           INDEX    A                                     
044772,000116:    5667           30001                           DCA      0                                     #  PICK UP 2CADR OF TASK.
044773,000117:    5670           54063                           TS       WAITADR                               #  BBCON WILL REMAIN IN L.
044774,000118:    5671           35700        DLY2               CAF      WAITBB                                #  ENTRY FROM FIXDELAY AND VARDELAY.
044775,000119:    5672           56006                           XCH      BBANK                                 
044776,000120:    5673           13427                           TCF      WAIT2                                 
044777,000121: 
044778,000122:                                                                                                  #  RETURN TO CALLER AFTER TASK INSERTION:
044779,000123: 

Page 1064

044781,000125: 
044782,000126:    5674           30062        LVWTLIST           CA       WAITBANK                              
044783,000127:    5675           54006                           TS       BBANK                                 
044784,000128:    5676           50061                           INDEX    WAITEXIT                              
044785,000129:    5677           00002                           TC       2                                     
044786,000130: 
044787,000131:    5700  E3,1400                                  EBANK=   LST1                                  
044788,000132:    5700           02063        WAITBB             BBCON    WAIT2                                 
044789,000133: 
044790,000134:                                                                                                  #  RETURN TO CALLER +2 AFTER WAITING DT SPECIFIED AT CALLER +1.
044791,000135: 
044792,000136:    5701           50002        FIXDELAY           INDEX    Q                                     #  BOTH ROUTINES MUST BE CALLED UNDER
044793,000137:    5702           30000                           CAF      0                                     #  WAITLIST CONTROL AND TERMINATE THE TASK
044794,000138:    5703           24002                           INCR     Q                                     #  IN WHICH THEY WERE CALLED.
044795,000139: 
044796,000140:                                                                                                  #  RETURN TO CALLER +1 AFTER WAITING THE DT AS ARRIVING IN A.
044797,000141: 
044798,000142:    5704           56002        VARDELAY           XCH      Q                                     #  DT TO Q.  TASK ADRES TO WAITADR.
044799,000143:    5705           54063                           TS       WAITADR                               
044800,000144:    5706           30006                           CA       BBANK                                 #  BBANK IS SAVED DURING DELAY.
044801,000145:    5707           54001                           TS       L                                     
044802,000146:    5710           35713                           CAF      DELAYEX                               
044803,000147:    5711           54061                           TS       WAITEXIT                              #  GO TO TASKOVER AFTER TASK ENTRY.
044804,000148:    5712           15671                           TCF      DLY2                                  
044805,000149: 
044806,000150:    5713           15725        DELAYEX            TCF      TASKOVER   -2                         #  RETURNS TO TASKOVER
044807,000151: 

Page 1065

044809,000153: 
044810,000154:                                                                                                  #  ENDTASK MUST BE ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
044811,000155: 
044812,000156:    5714  E3,1400                                  EBANK=   LST1                                  
044813,000157:    5714           72061 73714  ENDTASK            -2CADR   SVCT3                                 
044814,000158: 
044815,000159:    5716           10076        SVCT3              CCS      FLAGWRD2                              #  DRIFT FLAG
044816,000160:    5717           15727                           TCF      TASKOVER                              
044817,000161:    5720           15727                           TCF      TASKOVER                              
044818,000162:    5721           15722                           TCF      +1                                    
044819,000163: 
044820,000164:    5722           35656                           CAF      PRIO35                                #  COMPENSATE FOR NBD COEFFICIENTS ONLY
044821,000165:    5723           05505                           TC       NOVAC                                 #      ENABLE EVERY 81.93 SECONDS
044822,000166:    5724  E3,1444                                  EBANK=   NBDX                                  
044823,000167:    5724           03501 24063                     2CADR    NBDONLY                               
044824,000168: 
044825,000169:    5726           15727                           TCF      TASKOVER                              
044826,000170: 

Page 1066

044828,000172: 
044829,000173:                                                                                                  #  BEGIN TASK INSERTION.
044830,000174: 
044831,000175: 01,3427                                           BANK     01                                    
044832,000176: 01,3427           54062        WAIT2              TS       WAITBANK                              #  BBANK OF CALLING PROGRAM.
044833,000177: 01,3430           40026                           CS       TIME3                                 
044834,000178: 01,3431           67754                           AD       BIT8                                  #  BIT 8 = OCT 200
044835,000179: 01,3432           10000                           CCS      A                                     #  TEST 200 - C(TIME3).  IF POSITIVE,
044836,000180:                                                                                                  #  IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS TIME3 AND THAT
044837,000181:                                                                                                  #  C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T).  THE FOLLOWING FOUR
044838,000182:                                                                                                  #  ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
044839,000183: 
044840,000184: 01,3433           66153                           AD       OCT40001                              #  OVERFLOW HAS OCCURRED.  SET C(A) =
044841,000185: 01,3434           40000                           CS       A                                     #  T - T1 + 1.0 - 201
044842,000186: 
044843,000187:                                                                                                  #  NORMAL CASE (C(A) NNZ) YIELDS SAME C(A):  -( -(1.0-(T1-T)) + 200) - 1
044844,000188: 
044845,000189: 01,3435           63563                           AD       OCT40201                              
044846,000190: 01,3436           60002                           AD       Q                                     #  RESULT = TD - T1 + 1.
044847,000191: 
044848,000192: 01,3437           10000                           CCS      A                                     #  TEST TD - T1 + 1
044849,000193: 
044850,000194: 01,3440           61400                           AD       LST1                                  #  IF TD - T1 POS, GO TO WTLST5 WITH
044851,000195: 01,3441           13503                           TCF      WTLST5                                #  C(A) = (TD - T1) + C(LST1) = TD-T2+1
044852,000196: 
044853,000197: 01,3442           13443                           NOOP                                           
044854,000198: 01,3443           40002                           CS       Q                                     
044855,000199: 
044856,000200:                                                                                                  #  NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
044857,000201:                                                                                                  #  SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1.  (G/E
044858,000202:                                                                                                  #  SYMBOL MEANS GREATER THAN OR EQUAL TO).  THUS THERE NEED BE NO CON-
044859,000203:                                                                                                  #  CERN OVER A PREVIOUS OR IMMINENT OVERFLOW OF TIME3 HERE.
044860,000204: 
044861,000205: 01,3444           67746                           AD       POS1/2                                #  WHEN TD IS NEXT, FORM QUANTITY
044862,000206: 01,3445           67746                           AD       POS1/2                                #        1.0 - DELTA T = 1.0 - (TD - T)
044863,000207: 01,3446           56026                           XCH      TIME3                                 
044864,000208: 01,3447           67745                           AD       NEGMAX                                
044865,000209: 01,3450           60002                           AD       Q                                     #  1.0 - DELTAT T NOW COMPLETE.
044866,000210: 01,3451           00006                           EXTEND                                         #  ZERO INDEX Q.
044867,000211: 01,3452           22007                           QXCH     7                                     #  (ZQ)
044868,000212: 

Page 1067

044870,000214: 01,3453           57400        WTLST4             XCH      LST1                                  
044871,000215: 01,3454           57401                           XCH      LST1       +1                         
044872,000216: 01,3455           57402                           XCH      LST1       +2                         
044873,000217: 01,3456           57403                           XCH      LST1       +3                         
044874,000218: 01,3457           57404                           XCH      LST1       +4                         
044875,000219: 01,3460           57405                           XCH      LST1       +5                         
044876,000220: 01,3461           57406                           XCH      LST1       +6                         
044877,000221: 01,3462           57407                           XCH      LST1       +7                         
044878,000222: 
044879,000223: 01,3463           30063                           CA       WAITADR                               #  (MINOR PART OF TASK CADR HAS BEEN IN L.)
044880,000224: 01,3464           50002                           INDEX    Q                                     
044881,000225: 01,3465           13466                           TCF      +1                                    
044882,000226: 
044883,000227: 01,3466           53411                           DXCH     LST2                                  
044884,000228: 01,3467           53413                           DXCH     LST2       +2                         
044885,000229: 01,3470           53415                           DXCH     LST2       +4                         
044886,000230: 01,3471           53417                           DXCH     LST2       +6                         
044887,000231: 01,3472           53421                           DXCH     LST2       +8D                        
044888,000232: 01,3473           53423                           DXCH     LST2       +10D                       #  AT END, CHECK THAT C(LST2+10) IS STD
044889,000233: 01,3474           53425                           DXCH     LST2       +12D                       
044890,000234: 01,3475           53427                           DXCH     LST2       +14D                       
044891,000235: 01,3476           53431                           DXCH     LST2       +16D                       
044892,000236: 01,3477           65714                           AD       ENDTASK                               #  END ITEM, AS CHECK FOR EXCEEDING
044893,000237:                                                                                                  #  THE LENGTH OF THE LIST.
044894,000238: 01,3500           00006                           EXTEND                                         #  DUMMY TASK ADRES SHOULD BE IN FIXED-
044895,000239: 01,3501           15674                           BZF      LVWTLIST                              #  FIXED SO ITS ADRES ALONE DISTINGUISHES
044896,000240: 01,3502           13556                           TCF      WTABORT                               #  IT.
044897,000241: 

Page 1068

044899,000243: 
044900,000244: 01,3503           10000        WTLST5             CCS      A                                     #  TEST TD - T2 + 1
044901,000245: 01,3504           61401                           AD       LST1       +1                         
044902,000246: 01,3505           13511                           TCF      +4                                    
044903,000247: 01,3506           67763                           AD       ONE                                   
044904,000248: 01,3507           03564                           TC       WTLST2                                
044905,000249: 01,3510           00001                           OCT      1                                     
044906,000250: 
044907,000251: 01,3511           10000                 +4        CCS      A                                     #  TEST TD - T3 + 1
044908,000252: 01,3512           61402                           AD       LST1       +2                         
044909,000253: 01,3513           13517                           TCF      +4                                    
044910,000254: 01,3514           67763                           AD       ONE                                   
044911,000255: 01,3515           03564                           TC       WTLST2                                
044912,000256: 01,3516           00002                           OCT      2                                     
044913,000257: 
044914,000258: 01,3517           10000                 +4        CCS      A                                     #  TEST TD - T4 + 1
044915,000259: 01,3520           61403                           AD       LST1       +3                         
044916,000260: 01,3521           13525                           TCF      +4                                    
044917,000261: 01,3522           67763                           AD       ONE                                   
044918,000262: 01,3523           03564                           TC       WTLST2                                
044919,000263: 01,3524           00003                           OCT      3                                     
044920,000264: 
044921,000265: 01,3525           10000                 +4        CCS      A                                     #  TEST TD - T5 + 1
044922,000266: 01,3526           61404                           AD       LST1       +4                         
044923,000267: 01,3527           13533                           TCF      +4                                    
044924,000268: 01,3530           67763                           AD       ONE                                   
044925,000269: 01,3531           03564                           TC       WTLST2                                
044926,000270: 01,3532           00004                           OCT      4                                     
044927,000271: 
044928,000272: 01,3533           10000                 +4        CCS      A                                     #  TEST TD - T6 + 1
044929,000273: 01,3534           61405                           AD       LST1       +5                         
044930,000274: 01,3535           13541                           TCF      +4                                    
044931,000275: 01,3536           67763                           AD       ONE                                   
044932,000276: 01,3537           03564                           TC       WTLST2                                
044933,000277: 01,3540           00005                           OCT      5                                     
044934,000278: 
044935,000279: 01,3541           10000                 +4        CCS      A                                     #  TEST TD - T7 + 1
044936,000280: 01,3542           61406                           AD       LST1       +6                         
044937,000281: 01,3543           13547                           TCF      +4                                    
044938,000282: 01,3544           67763                           AD       ONE                                   
044939,000283: 01,3545           03564                           TC       WTLST2                                
044940,000284: 01,3546           00006                           OCT      6                                     
044941,000285: 

Page 1069

044943,000287: 
044944,000288: 01,3547           10000                 +4        CCS      A                                     
044945,000289: 01,3550           61407                           AD       LST1       +7                         
044946,000290: 01,3551           13555                           TCF      +4                                    
044947,000291: 01,3552           67763                           AD       ONE                                   
044948,000292: 01,3553           03564                           TC       WTLST2                                
044949,000293: 01,3554           00007                           OCT      7                                     
044950,000294: 
044951,000295: 01,3555           10000                 +4        CCS      A                                     
044952,000296: 01,3556           06000        WTABORT            TC       ABORT                                 #  NO ROOM IN THE INN.                         
044953,000297: 01,3557           01203                           OCT      1203                                  
044954,000298: 
044955,000299: 01,3560           67763                           AD       ONE                                   
044956,000300: 01,3561           03564                           TC       WTLST2                                
044957,000301: 01,3562           00010                           OCT      10                                    
044958,000302: 
044959,000303: 01,3563           40201        OCT40201           OCT      40201                                 
044960,000304: 

Page 1070

044962,000306: 
044963,000307:                                                                                                  #  THE ENTRY TO WTLST2 JUST PRECEDING OCT N IS FOR T  LE TD LE T   -1.
044964,000308:                                                                                                  #                                                   N           N+1
044965,000309:                                                                                                  #  (LE MEANS LESS THAN OR EQUAL TO).  AT ENTRY, C(A) = -(TD - T   + 1)
044966,000310:                                                                                                  #                                                              N+1
044967,000311:                                                                                                  #  THE LST1 ENTRY -(T   -T +1) IS TO BE REPLACED BY -(TD - T  + 1), AND
044968,000312:                                                                                                  #                    N+1  N                                 N
044969,000313:                                                                                                  #  THE ENTRY -(T   - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
044970,000314:                                                                                                  #               N+1
044971,000315: 
044972,000316: 01,3564           54064        WTLST2             TS       WAITTEMP                              #  C(A) = -(TD - T + 1)
044973,000317: 01,3565           50002                           INDEX    Q                                     
044974,000318: 01,3566           30000                           CAF      0                                     
044975,000319: 01,3567           54002                           TS       Q                                     #  INDEX VALUE INTO Q.
044976,000320: 
044977,000321: 01,3570           37763                           CAF      ONE                                   
044978,000322: 01,3571           60064                           AD       WAITTEMP                              
044979,000323: 01,3572           50002                           INDEX    Q                                     #  C(A) = -(TD - T ) + 1.
044980,000324: 01,3573           27377                           ADS      LST1       -1                         #                 N
044981,000325: 
044982,000326: 01,3574           40064                           CS       WAITTEMP                              
044983,000327: 01,3575           50002                           INDEX    Q                                     
044984,000328: 01,3576           13453                           TCF      WTLST4                                
044985,000329: 
044986,000330:                                                                                                  #        C(TIME3)        =       1.0 - (T1 - T)
044987,000331: 
044988,000332:                                                                                                  #        C(LST1 )         =       - (T2 - T1) + 1
044989,000333:                                                                                                  #        C(LST1+1 )       =       - (T3 - T2) + 1
044990,000334:                                                                                                  #        C(LST1+2 )       =       - (T4 - T3) + 1
044991,000335:                                                                                                  #        C(LST1+3 )       =       - (T5 - T4) + 1
044992,000336:                                                                                                  #        C(LST1+4 )       =       - (T6 - T5) + 1
044993,000337: 
044994,000338:                                                                                                  #        C(LST2   )       =       2CADR TASK1
044995,000339:                                                                                                  #        C(LST2+2 )       =       2CADR TASK2
044996,000340:                                                                                                  #        C(LST2+4 )       =       2CADR TASK3
044997,000341:                                                                                                  #        C(LST2+6 )       =       2CADR TASK4
044998,000342:                                                                                                  #        C(LST2+8 )       =       2CADR TASK5
044999,000343:                                                                                                  #        C(LST2+10)       =       2CADR TASK6
045000,000344: 

Page 1071

045002,000346: 
045003,000347:                                                                                                  #  ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
045004,000348: 
045005,000349: 01,3577           54016        T3RUPT             TS       BANKRUPT                              
045006,000350: 01,3600           00006                           EXTEND                                         
045007,000351: 01,3601           22012                           QXCH     QRUPT                                 
045008,000352: 
045009,000353: 01,3602           37744        T3RUPT2            CAF      NEG1/2                                #  DISPATCH WAITLIST TASK.
045010,000354: 01,3603           57407                           XCH      LST1       +7                         
045011,000355: 01,3604           57406                           XCH      LST1       +6                         
045012,000356: 01,3605           57405                           XCH      LST1       +5                         
045013,000357: 01,3606           57404                           XCH      LST1       +4                         #  1. MOVE UP LST1 CONTENTS, ENTERING
045014,000358: 01,3607           57403                           XCH      LST1       +3                         #     A VALUE OF 1/2 +1 AT THE BOTTOM
045015,000359: 01,3610           57402                           XCH      LST1       +2                         #     FOR T6-T5, CORRESPONDING TO THE
045016,000360: 01,3611           57401                           XCH      LST1       +1                         #     INTERVAL 81.91 SEC FOR ENDTASK.
045017,000361: 01,3612           57400                           XCH      LST1                                  
045018,000362: 01,3613           67743                           AD       POSMAX                                #  2. SET T3 = 1.0 - T2 - T USING LIST 1.
045019,000363: 01,3614           26026                           ADS      TIME3                                 #  SO T3 WONT TICK DURING UPDATE.
045020,000364: 01,3615           55076                           TS       RUPTAGN                               
045021,000365: 01,3616           47767                           CS       ZERO                                  
045022,000366: 01,3617           55076                           TS       RUPTAGN                               #  SETS RUPTAGN TO +1 ON OVERFLOW.
045023,000367: 
045024,000368: 01,3620           00006                           EXTEND                                         #  DISPATCH TASK.
045025,000369: 01,3621           45715                           DCS      ENDTASK                               
045026,000370: 01,3622           53431                           DXCH     LST2       +16D                       
045027,000371: 01,3623           53427                           DXCH     LST2       +14D                       
045028,000372: 01,3624           53425                           DXCH     LST2       +12D                       
045029,000373: 01,3625           53423                           DXCH     LST2       +10D                       
045030,000374: 01,3626           53421                           DXCH     LST2       +8D                        
045031,000375: 01,3627           53417                           DXCH     LST2       +6                         
045032,000376: 01,3630           53415                           DXCH     LST2       +4                         
045033,000377: 01,3631           53413                           DXCH     LST2       +2                         
045034,000378: 01,3632           53411                           DXCH     LST2                                  
045035,000379: 
045036,000380: 01,3633           52006                           DTCB                                           
045037,000381: 

Page 1072

045039,000383: 
045040,000384:                                                                                                  #  RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
045041,000385: 
045042,000386:    5727                                           BLOCK    02                                    
045043,000387:    5727           11076        TASKOVER           CCS      RUPTAGN                               #  IF +1 RETURN TO T3RUPT, IF -0 RESUME.
045044,000388:    5730           35700                           CAF      WAITBB                                
045045,000389:    5731           54006                           TS       BBANK                                 
045046,000390:    5732           13602                           TCF      T3RUPT2                               #  DISPATCH NEXT TASK IF IT WAS DUE.
045047,000391: 
045048,000392:    5733           00006        RESUME             EXTEND                                         
045049,000393:    5734           22012                           QXCH     QRUPT                                 
045050,000394:    5735           30016        NOQRSM             CA       BANKRUPT                              
045051,000395:    5736           56006                           XCH      BBANK                                 
045052,000396:    5737           52011        NOQBRSM            DXCH     ARUPT                                 
045053,000397:    5740           50017                           RESUME                                         
045054,000398: 

Page 1073

045056,000400: 
045057,000401:                                                                                                  #  LONGCALL
045058,000402: 
045059,000403:                                                                                                  #  LONGCALL IS CALLED WITH THE DELTA TIME ARRIVING IN A,L SCALED AS TIME2,TIME1 WITH THE 2CADR OF THE TASK
045060,000404:                                                                                                  #  IMMEDIATELY FOLLOWING THE TC LONGCALL.  FOR EXAMPLE, IT MIGHT BE DONE AS FOLLOWS WHERE TIMELOC IS THE NAME OF
045061,000405:                                                                                                  #  A DP REGISTER CONTAINING A DELTA TIME AND WHERE TASKTODO IS THE NAME OF THE LOCATION AT WHICH LONGCALL IS TO
045062,000406:                                                                                                  #  START
045063,000407: 
045064,000408:                                                                                                  #                EXTEND
045065,000409:                                                                                                  #                DCA             TIMELOC
045066,000410:                                                                                                  #                TC              LONGCALL
045067,000411:                                                                                                  #                2CADR           TASKTODO
045068,000412: 
045069,000413:                                                                                                  #  *** THE FOLLOWING IS TO BE IN FIXED-FIXED AND UNSWITCHED ERRASIBLE ***
045070,000414: 
045071,000415:    5741                                           BLOCK    02                                    
045072,000416:    5741  E3,1400                                  EBANK=   LST1                                  
045073,000417:    5741           53154        LONGCALL           DXCH     LONGTIME                              #  OBTAIN THE DELTA TIME
045074,000418: 
045075,000419:    5742           00006                           EXTEND                                         #  OBTAIN THE 2CADR
045076,000420:    5743           50002                           NDX      Q                                     
045077,000421:    5744           30001                           DCA      0                                     
045078,000422:    5745           53152                           DXCH     LONGCADR                              
045079,000423: 
045080,000424:    5746           00006                           EXTEND                                         #  NOW GO TO THE APPROPRIATE SWITCHED BANK
045081,000425:    5747           35752                           DCA      LGCL2CDR                              #  FOR THE REST OF LONGCALL
045082,000426:    5750           52006                           DTCB                                           
045083,000427: 
045084,000428:    5751  E3,1400                                  EBANK=   LST1                                  
045085,000429:    5751           03634 02063  LGCL2CDR           2CADR    LNGCALL2                              
045086,000430: 
045087,000431:                                                                                                  #  *** THE FOLLOWING MAY BE IN A SWITCHED BANK, INCLUDING ITS ERASABLE ***
045088,000432: 
045089,000433: 01,3634                                           BANK     01                                    
045090,000434: 01,3634           23435        LNGCALL2           LXCH     LONGEXIT   +1                         #  SAVE THE CORRECT BB FOR RETURN
045091,000435: 01,3635           37762                           CA       TWO                                   #  OBTAIN THE RETURN ADDRESS
045092,000436: 01,3636           26002                           ADS      Q                                     
045093,000437: 01,3637           55434                           TS       LONGEXIT                              
045094,000438: 
045095,000439:                                                                                                  #  *** WAITLIST TASK LONGCYCL ***
045096,000440: 
045097,000441: 01,3640           00006        LONGCYCL           EXTEND                                         #  CAN WE SUCCESFULLY TAKE ABOUT 1.25
045098,000442: 01,3641           43652                           DCS      DPBIT14                               #  MINUTES OFF OF LONGTIME
045099,000443: 01,3642           21154                           DAS      LONGTIME                              
045100,000444: 
045101,000445: 01,3643           11154                           CCS      LONGTIME   +1                         #  THE REASONIBG BEHIND THIS PART IS
045102,000446: 01,3644           13663                           TCF      MUCHTIME                              #  INVOLVED, TAKING INTO ACCOUNT THAT THE
045103,000447:                                                                                                  #  WORDS MAY NOT BE SIGNED CORRECTED (DP
045104,000448:                                                                                                  #  BASIC INSTRUCTIONS
045105,000449:                                                                                                  #  DO NOT SIGN CORRECT) AND THAT WE SUBTRAC
045106,000450:                                                                                                  #  TED BIT14 (1 OVER HALF THE POS. VALUE
045107,000451:                                                                                                  #  REPRESENTABLE IN SINGLE WORD)
045108,000452: 

Page 1074

045110,000454: 
045111,000455: 01,3645           13646                           NOOP                                           #  CAN:T GET HERE **********
045112,000456: 01,3646           13647                           TCF      +1                                    
045113,000457: 01,3647           11153                           CCS      LONGTIME                              
045114,000458: 01,3650           13663                           TCF      MUCHTIME                              
045115,000459: 01,3651           00000        DPBIT14            OCT      00000                                 
045116,000460: 01,3652           20000                           OCT      20000                                 
045117,000461: 
045118,000462:                                                                                                  #  LONGCALL
045119,000463: 
045120,000464: 01,3653           37746        LASTTIME           CA       BIT14                                 #  GET BACK THE CORRECT DELTA T FOR WAITLIST
045121,000465: 01,3654           27154                           ADS      LONGTIME   +1                         
045122,000466: 01,3655           05663                           TC       WAITLIST                              
045123,000467: 01,3656  E3,1400                                  EBANK=   LST1                                  
045124,000468: 01,3656           03670 02063                     2CADR    GETCADR                               #  THE ENTRY TO OUR LONGCADR
045125,000469: 
045126,000470: 01,3660           33672        LONGRTRN           CA       TSKOVCDR                              #  SET IT UP SO THAT ONLY THE FIRST EXIT IS
045127,000471: 01,3661           53435                           DXCH     LONGEXIT                              #  TO THE CALLER OF LONGCALL
045128,000472: 01,3662           52006                           DTCB                                           #  THE REST ARE TO TASKOVER
045129,000473: 
045130,000474: 01,3663           37746        MUCHTIME           CA       BIT14                                 #  WE HAVE OVER OUR ABOUT 1.25 MINUTES
045131,000475: 01,3664           05663                           TC       WAITLIST                              #  SO SET UP FOR ANOTHER CYCLE THROUGH HERE
045132,000476: 01,3665  E3,1400                                  EBANK=   LST1                                  
045133,000477: 01,3665           03640 02063                     2CADR    LONGCYCL                              
045134,000478: 
045135,000479: 01,3667           13660                           TCF      LONGRTRN                              #  NOW EXIT PROPERLY
045136,000480: 
045137,000481:                                                                                                  #  *** WAITLIST TASK GETCADR ***
045138,000482: 
045139,000483: 01,3670           53152        GETCADR            DXCH     LONGCADR                              #  GET THE LONGCALL THAT WE WISHED TO START
045140,000484: 01,3671           52006                           DTCB                                           #  AND TRANSFER CONTROL TO IT
045141,000485: 
045142,000486: 01,3672           05727        TSKOVCDR           GENADR   TASKOVER                              

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