Source Code

These source-code files derive from a printout of Luminary 210 (Apollo 15-17 Lunar Module guidance computer program), from the personal library of original AGC developer Don Eyles, digitally photographed at archive.org, financially sponsored by Jim Lawton, and transcribed to source code by a team of volunteers. This colorized, syntax-highlighted form was created by assembling that transcribed source code. Note that the full page images are available on the Virtual AGC project page at archive.org, while reduced-size images are presented at the VirtualAGC project website. Report or fix any transcription errors at the Virtual AGC project code repository.

Notations on the program listing read, in part:

	GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY 
	BY NASA 2021112-161 17:11 MAR. 19,1971
Note that the date is the date of the printout, not the date of the program revision.

047943,000002:                                                                                                  ## Copyright:   Public domain.
047944,000003:                                                                                                  ## Filename:    WAITLIST.agc
047945,000004:                                                                                                  ## Purpose:     A section of Luminary revision 210.
047946,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM)
047947,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 15-17.
047948,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
047949,000008:                                                                                                  ##              that the code format has been changed to conform to the
047950,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
047951,000010:                                                                                                  ##              original YUL assembler.
047952,000011:                                                                                                  ## Reference:   pp. 1115-1130
047953,000012:                                                                                                  ## Assembler:   yaYUL
047954,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
047955,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
047956,000015:                                                                                                  ## Mod history: 2016-11-17 JL   Created from Luminary131 version.
047957,000016:                                                                                                  ##              2016-11-18 MAS  Transcribed. Mostly just comment corrections.
047958,000017:                                                                                                  ##              2016-12-07 HG   Fix P00 -> POO
047959,000018:                                                                                                  ##              2016-12-26 RSB  Comment-text proofed using ProoferComments
047960,000019:                                                                                                  ##                              and corrected errors found.
047961,000020:                                                                                                  ##              2017-01-28 RSB  WTIH -> WITH.
047962,000021:                                                                                                  ##              2017-03-14 RSB  Comment-text fixes noted in proofing Luminary 116.
047963,000022:                                                                                                  ##              2017-03-16 RSB  Comment-text fixes identified in 5-way
047964,000023:                                                                                                  ##                              side-by-side diff of Luminary 69/99/116/131/210.
047965,000024: 

Page 1115

047967,000026:                                                                                                  #  PROGRAM DESCRIPTION                                                                     DATE - 10 OCTOBER 1966
047968,000027:                                                                                                  #  MOD NO - 2                                                                              LOG SECTION - WAITLIST
047969,000028:                                                                                                  #  MOD BY - MILLER   (DTMAX INCREASED TO 162.5 SEC)                                        ASSEMBLY SUNBURST REV 5
047970,000029:                                                                                                  #  MOD 3 BY KERNAN  (INHINT INSERTED AT WAITLIST)  2/28/68 SKIPPER REV 4
047971,000030: 
047972,000031:                                                                                                  #  MOD 4BY KERNAN (TWIDDLE IN 54)  3/28/68 SKIPPER REV 13.
047973,000032: 
047974,000033:                                                                                                  #  FUNCTIONAL DESCRIPTION-
047975,000034:                                                                                                  #          PART OF A SECTION OF PROGRAMS,-WAITLIST, TASKOVER, T3RUPT, USED  TO CALL A PROGRAM, (CALLED A TASK),
047976,000035:                                                                                                  #     WHICH IS TO BEGIN IN C(A) CENTISECONDS.  WAITLIST UPDATES TIME3, LST1 AND LST2. THE MEANING OF THESE LISTS
047977,000036:                                                                                                  #     FOLLOW.
047978,000037: 
047979,000038:                                                                                                  #                  C(TIME3)  = 16384 -(T1-T) CENTISECONDS, (T=PRESENT TIME, T1-TIME FOR TASK1)
047980,000039: 
047981,000040: 
047982,000041:                                                                                                  #                               C(LST1)    = -(T2-T1)+1
047983,000042:                                                                                                  #                               C(LST1 +1) = -(T3-T2)+1
047984,000043:                                                                                                  #                               C(LST1 +2) = -(T4-T3)+1
047985,000044:                                                                                                  #                                          .
047986,000045:                                                                                                  #                                          .
047987,000046:                                                                                                  #                               C(LST1 +6) = -(T8-T7)+1
047988,000047:                                                                                                  #                               C(LST1 +7) = -(T9-T8)+1
047989,000048: 
047990,000049:                                                                                                  #                               C(LST2)    = 2CADR OF TASK1
047991,000050:                                                                                                  #                               C(LST2 +2) = 2CADR OF TASK2
047992,000051:                                                                                                  #                                          .
047993,000052:                                                                                                  #                                          .
047994,000053:                                                                                                  #                               C(LST2 +14)= 2CADR OF TASK8
047995,000054:                                                                                                  #                               C(LST2 +16)= 2CADR OF TASK9
047996,000055: 
047997,000056:                                                                                                  #  WARNINGS-
047998,000057:                                                                                                  #  --------
047999,000058:                                                                                                  #               1) 1 <= C(A) <= 16250D (1 CENTISECOND TO 162.5 SEC)
048000,000059:                                                                                                  #               2) 9 TASKS MAXIMUM
048001,000060:                                                                                                  #               3) TASKS CALLED UNDER INTERRUPT INHIBITED
048002,000061:                                                                                                  #               4) TASKS END BY TC TASKOVER
048003,000062: 
048004,000063:                                                                                                  #  CALLING SEQUENCE-
048005,000064: 
048006,000065:                                                                                                  #               L-1    CA     DELTAT   (TIME IN CENTISECONDS TO TASK START)
048007,000066:                                                                                                  #               L      TC     WAITLIST
048008,000067:                                                                                                  #               L+1    2CADR  DESIRED TASK
048009,000068:                                                                                                  #               L+2    (MINOR OF 2CADR)
048010,000069:                                                                                                  #               L+3    RELINT          (RETURNS HERE)
048011,000070: 
048012,000071:                                                                                                  #  TWIDDLE -
048013,000072:                                                                                                  #  -------
048014,000073:                                                                                                  #               TWIDDLE IS FOR USE WHEN THE TASK BEING SET UP IS IN THE SAME EBANK AND FBANK AS THE USER.   IN
048015,000074:                                                                                                  #               SUCH CASES, IT IMPROVES UPON WAITLIST BY ELIMINATING THE NEED FOR THE BBCON HALF OF THE 2CADR,

Page 1116

048017,000076:                                                                                                  #               SAVING A WORD.   TWIDDLE IS LIKE WAITLIST IN EVERY RESPECT EXCEPT CALLING SEQUENCE, TO WIT-
048018,000077: 
048019,000078:                                                                                                  #               L-1    CA     DELTAT
048020,000079:                                                                                                  #               L      TC     TWIDDLE
048021,000080:                                                                                                  #               L+1    ADRES  DESIRED TASK
048022,000081:                                                                                                  #               L+2    RELINT               (RETURNS HERE)
048023,000082: 
048024,000083:                                                                                                  #  NORMAL EXIT MODES-
048025,000084: 
048026,000085:                                                                                                  #               AT L+3 OF CALLING SEQUENCE
048027,000086: 
048028,000087:                                                                                                  #  ALARM OR ABORT EXIT MODES-
048029,000088: 
048030,000089:                                                                                                  #               TC     ABORT
048031,000090:                                                                                                  #               OCT    1203   (WAITLIST OVERFLOW - TOO MANY TASKS)
048032,000091: 
048033,000092:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED-
048034,000093: 
048035,000094:                                                                                                  #               ACCOMPLISHED BY FRESH START,--LST2,..., LST2 +16 =ENDTASK
048036,000095:                                                                                                  #                                             LST1,..., LST1 +7  =NEG1/2
048037,000096: 
048038,000097:                                                                                                  #  OUTPUT--
048039,000098: 
048040,000099:                                                                                                  #               LST1 AND LST2 UPDATED WITH NEW TASK AND ASSOCIATED TIME.
048041,000100: 
048042,000101:                                                                                                  #  DEBRIS-
048043,000102: 
048044,000103:                                                                                                  #               CENTRALS- A,Q,L
048045,000104:                                                                                                  #               OTHER   - WAITEXIT, WAITADR, WAITTEMP, WAITBANK
048046,000105:                                                                                                  #  DETAILED ANALYSIS OF TIMING-
048047,000106: 
048048,000107:                                                                                                  #          CONTROL WILL NOT BE RETURNED TO THE SPECIFIED ADDRESS (2CADR)   IN EXACTLY DELTA T CENTISECONDS.
048049,000108:                                                                                                  #     THE APPROXIMATE TIME MAY BE CALCULATED AS FOLLOWS
048050,000109: 
048051,000110:                                                                                                  #               LET TO = THE TIME OF THE TC WAITLIST
048052,000111:                                                                                                  #               LET TS = TO +147U + COUNTER INCREMENTS (SET UP TIME)
048053,000112:                                                                                                  #               LET X  = TS -(100TS)/100  (VARIANCE FROM COUNTERS)
048054,000113:                                                                                                  #               LET Y  = LENGTH OF TIME OF INHIBIT INTERRUPT AFTER T3RUPT
048055,000114:                                                                                                  #               LET Z  = LENGTH OF TIME TO PROCESS TASKS WHICH ARE DUE THIS T3RUPT BUT DISPATCHED EARLIER.
048056,000115:                                                                                                  #     (Z=0, USUALLY)
048057,000116:                                                                                                  #               LET DELTD = THE ACTUAL TIME TAKEN TO GIVE CONTROL TO 2CADR
048058,000117:                                                                                                  #            THEN   DELTD = TS+DELTA T -X +Y +Z +1.05MS* +COUNTERS*
048059,000118:                                                                                                  #     *-THE TIME TAKEN BY WAITLIST ITSELF AND THE COUNTER TICKING DURING THIS WAITLIST TIME.
048060,000119: 
048061,000120: 
048062,000121:                                                                                                  #          IN SHORT, THE ACTUAL TIME TO RETURN CONTROL TO A 2CADR IS AUGMENTED BY THE TIME TO SET UP THE TASK:S
048063,000122:                                                                                                  #     INTERRUPT, ALL COUNTERS TICKING, THE T3RUPT PROCESSING TIME, THE WAITLIST PROCESSING TIME AND THE POSSIBILITY
048064,000123:                                                                                                  #     OF OTHER TASKS INHIBITING THE INTERRUPT.
048065,000124: 
048066,000125: 
048067,000126:    5175                                           BLOCK    02                                    

Page 1117

048069,000128:    5175  E3,1400                                  EBANK=   LST1                                  #  TASK  LISTS IN SWITCHED E BANK.
048070,000129: 
048071,000130:    5175                                           COUNT*   $$/WAIT                               
048072,000131:    5175           00004        TWIDDLE            INHINT                                         
048073,000132:    5176           54001                           TS       L                                     #  SAVE DELAY TIME IN L
048074,000133:    5177           34724                           CA       POSMAX                                
048075,000134:    5200           26002                           ADS      Q                                     #  CREATING OVERFLOW AND Q-1 IN Q
048076,000135:    5201           30006                           CA       BBANK                                 
048077,000136:    5202           00006                           EXTEND                                         
048078,000137:    5203           04007                           ROR      SUPERBNK                              
048079,000138:    5204           56001                           XCH      L                                     
048080,000139: 
048081,000140:    5205           00004        WAITLIST           INHINT                                         
048082,000141:    5206           56002                           XCH      Q                                     #  SAVE DELTA T IN Q AND RETURN IN
048083,000142:    5207           54061                           TS       WAITEXIT                              #  WAITEXIT.
048084,000143:    5210           00006                           EXTEND                                         
048085,000144:    5211           50061                           INDEX    WAITEXIT                              #  IF TWIDDLING, THE TS SKIPS TO HERE
048086,000145:    5212           30001                           DCA      0                                     #  PICK UP 2CADR OF TASK.
048087,000146:    5213           54063                 -1        TS       WAITADR                               #  BBCON WILL REMAIN IN L
048088,000147:    5214           35222        DLY2               CAF      WAITBB                                #  ENTRY FROM FIXDELAY AND VARDELAY.
048089,000148:    5215           56006                           XCH      BBANK                                 
048090,000149:    5216           13234                           TCF      WAIT2                                 
048091,000150: 
048092,000151:                                                                                                  #           RETURN TO CALLER AFTER TASK INSERTION:
048093,000152: 
048094,000153:    5217           52062        LVWTLIST           DXCH     WAITEXIT                              
048095,000154:    5220           64743                           AD       TWO                                   
048096,000155:    5221           52006                           DTCB                                           
048097,000156: 
048098,000157:    5222  E3,1400                                  EBANK=   LST1                                  
048099,000158:    5222           02063        WAITBB             BBCON    WAIT2                                 
048100,000159: 
048101,000160:                                                                                                  #           RETURN TO CALLER +2 AFTER WAITING DT SPECIFIED AT CALLER +1.
048102,000161: 
048103,000162:    5223           50002        FIXDELAY           INDEX    Q                                     #  BOTH ROUTINES MUST BE CALLED UNDER
048104,000163:    5224           30000                           CAF      0                                     #  WAITLIST CONTROL AND TERMINATE THE TASK
048105,000164:    5225           24002                           INCR     Q                                     #  IN WHICH THEY WERE CALLED.
048106,000165: 
048107,000166:                                                                                                  #           RETURN TO CALLER +1 AFTER WAITING THE DT AS ARRIVING IN A.
048108,000167: 
048109,000168:    5226           56002        VARDELAY           XCH      Q                                     #  DT TO Q. TASK ADRES TO WAITADR.
048110,000169:    5227           54063                           TS       WAITADR                               
048111,000170:    5230           30006                           CA       BBANK                                 #  BBANK IS SAVED DURING DELAY.
048112,000171:    5231           00006                           EXTEND                                         
048113,000172:    5232           04007                           ROR      SUPERBNK                              #  ADD SBANK TO BBCON.
048114,000173:    5233           54001                           TS       L                                     
048115,000174:    5234           35237                           CAF      DELAYEX                               
048116,000175:    5235           54061                           TS       WAITEXIT                              #  GO TO TASKOVER AFTER TASK ENTRY.
048117,000176:    5236           15214                           TCF      DLY2                                  
048118,000177: 

Page 1118

048120,000179:    5237           15261        DELAYEX            TCF      TASKOVER   -2                         #  RETURNS TO TASKOVER
048121,000180: 

Page 1119

048123,000182:                                                                                                  #  ENDTASK MUST BE ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
048124,000183: 
048125,000184:    5240  E3,1400                                  EBANK=   LST1                                  
048126,000185:    5240           72535 73714  ENDTASK            -2CADR   SVCT3                                 
048127,000186: 
048128,000187:    5242           10076        SVCT3              CCS      FLAGWRD2                              #  DRIFT FLAG
048129,000188:    5243           15263                           TCF      TASKOVER                              
048130,000189:    5244           15263                           TCF      TASKOVER                              
048131,000190:    5245           15246                           TCF      +1                                    
048132,000191: 
048133,000192:    5246           11301        CKIMUSE            CCS      IMUCADR                               #  DON'T DO NBDONLY IF SOMEONE ELSE IS IN
048134,000193:    5247           15260                           TCF      SVCT3X                                #  IMUSTALL.
048135,000194:    5250           15253                           TCF      +3                                    
048136,000195:    5251           15260                           TCF      SVCT3X                                
048137,000196:    5252           15260                           TCF      SVCT3X                                
048138,000197: 
048139,000198:    5253           37744                 +3        CAF      PRIO35                                #  COMPENSATE FOR NBD COEFFICIENTS ONLY.
048140,000199:    5254           05063                           TC       NOVAC                                 #      ENABLE EVERY 81.93 SECONDS
048141,000200:    5255  E3,1460                                  EBANK=   NBDX                                  
048142,000201:    5255           03625 14063                     2CADR    NBDONLY                               
048143,000202: 
048144,000203:    5257           15263                           TCF      TASKOVER                              
048145,000204: 
048146,000205:    5260           05223        SVCT3X             TC       FIXDELAY                              #  DELAY MAX OF 2 TIMES FOR IMUZERO.
048147,000206:    5261           00764                           DEC      500        B-14                       
048148,000207:    5262           05242                           TC       SVCT3                                 #  CHECK DRIFT FLAG AGAIN.
048149,000208: 

Page 1120

048151,000210:                                                                                                  #           BEGIN TASK INSERTION.
048152,000211: 
048153,000212: 01,3234                                           BANK     01                                    
048154,000213: 01,3234                                           COUNT*   $$/WAIT                               
048155,000214: 01,3234           54062        WAIT2              TS       WAITBANK                              #  BBANK OF CALLING PROGRAM.
048156,000215: 01,3235           30002                           CA       Q                                     
048157,000216: 01,3236           00006                           EXTEND                                         
048158,000217: 01,3237           63525                           BZMF     WAITPOOH                              
048159,000218: 
048160,000219: 01,3240           40026                           CS       TIME3                                 
048161,000220: 01,3241           64735                           AD       BIT8                                  #  BIT 8 = OCT 200
048162,000221: 01,3242           10000                           CCS      A                                     #  TEST 200 - C(TIME3).  IF POSITIVE,
048163,000222:                                                                                                  #  IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS  TIME3 AND THAT
048164,000223:                                                                                                  #  C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T).  THE FOLLOWING FOUR
048165,000224:                                                                                                  #  ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
048166,000225: 
048167,000226: 01,3243           66130                           AD       OCT40001                              #  OVERFLOW HAS OCCURRED.  SET C(A) =
048168,000227: 01,3244           40000                           CS       A                                     #  T - T1 + 1.0 - 201
048169,000228: 
048170,000229:                                                                                                  #  NORMAL CASE (C(A) NNZ) YIELDS SAME C(A):  -( -(1.0-(T1-T)) + 200) - 1
048171,000230: 
048172,000231: 01,3245           63373                           AD       OCT40201                              
048173,000232: 01,3246           60002                           AD       Q                                     #  RESULT = TD - T1 + 1.
048174,000233: 
048175,000234: 01,3247           10000                           CCS      A                                     #  TEST TD - T1 + 1
048176,000235: 
048177,000236: 01,3250           61400                           AD       LST1                                  #  IF TD - T1 POS, GO TO WTLST5 WITH
048178,000237: 01,3251           13313                           TCF      WTLST5                                #  C(A) = (TD - T1) + C(LST1) = TD-T2+1
048179,000238: 
048180,000239: 01,3252           13253                           NOOP                                           
048181,000240: 01,3253           40002                           CS       Q                                     
048182,000241: 
048183,000242:                                                                                                  #  NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
048184,000243:                                                                                                  #  SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1 .  (G/E
048185,000244:                                                                                                  #  SYMBOL MEANS GREATER THAN OR EQUAL TO).  THUS THERE NEED BE NO CON-
048186,000245:                                                                                                  #  CERN OVER A PREVIOUS OR IMMINENT OVERFLOW OF TIME3 HERE.
048187,000246: 
048188,000247: 01,3254           64727                           AD       POS1/2                                #  WHEN TD IS NEXT, FORM QUANTITY
048189,000248: 01,3255           64727                           AD       POS1/2                                #    1.0 - DELTA T = 1.0 - (TD - T)
048190,000249: 01,3256           56026                           XCH      TIME3                                 
048191,000250: 01,3257           64726                           AD       NEGMAX                                
048192,000251: 01,3260           60002                           AD       Q                                     #  1.0 - DELTAT T NOW COMPLETE.
048193,000252: 01,3261           00006                           EXTEND                                         #  ZERO INDEX Q.
048194,000253: 01,3262           22007                           QXCH     7                                     #  (ZQ)
048195,000254: 

Page 1121

048197,000256: 01,3263           57400        WTLST4             XCH      LST1                                  
048198,000257: 01,3264           57401                           XCH      LST1       +1                         
048199,000258: 01,3265           57402                           XCH      LST1       +2                         
048200,000259: 01,3266           57403                           XCH      LST1       +3                         
048201,000260: 01,3267           57404                           XCH      LST1       +4                         
048202,000261: 01,3270           57405                           XCH      LST1       +5                         
048203,000262: 01,3271           57406                           XCH      LST1       +6                         
048204,000263: 01,3272           57407                           XCH      LST1       +7                         
048205,000264: 
048206,000265: 01,3273           30063                           CA       WAITADR                               #  (MINOR PART OF TASK CADR HAS BEEN IN L.)
048207,000266: 01,3274           50002                           INDEX    Q                                     
048208,000267: 01,3275           13276                           TCF      +1                                    
048209,000268: 
048210,000269: 01,3276           53411                           DXCH     LST2                                  
048211,000270: 01,3277           53413                           DXCH     LST2       +2                         
048212,000271: 01,3300           53415                           DXCH     LST2       +4                         
048213,000272: 01,3301           53417                           DXCH     LST2       +6                         
048214,000273: 01,3302           53421                           DXCH     LST2       +8D                        
048215,000274: 01,3303           53423                           DXCH     LST2       +10D                       #  AT END, CHECK THAT C(LST2+10) IS STD
048216,000275: 01,3304           53425                           DXCH     LST2       +12D                       
048217,000276: 01,3305           53427                           DXCH     LST2       +14D                       
048218,000277: 01,3306           53431                           DXCH     LST2       +16D                       
048219,000278: 01,3307           65240                           AD       ENDTASK                               #    END ITEM, AS CHECK FOR EXCEEDING
048220,000279:                                                                                                  #    THE LENGTH OF THE LIST.
048221,000280: 01,3310           00006                           EXTEND                                         #  DUMMY TASK ADRES SHOULD BE IN FIXED-
048222,000281: 01,3311           15217                           BZF      LVWTLIST                              #  FIXED SO ITS ADRES ALONE DISTINGUISHES
048223,000282: 01,3312           13366                           TCF      WTABORT                               #  IT.
048224,000283: 

Page 1122

048226,000285: 01,3313           10000        WTLST5             CCS      A                                     #  TEST  TD - T2 + 1
048227,000286: 01,3314           61401                           AD       LST1       +1                         
048228,000287: 01,3315           13321                           TCF      +4                                    
048229,000288: 01,3316           64744                           AD       ONE                                   
048230,000289: 01,3317           03377                           TC       WTLST2                                
048231,000290: 01,3320           00001                           OCT      1                                     
048232,000291: 
048233,000292: 01,3321           10000                 +4        CCS      A                                     #  TEST  TD - T3 + 1
048234,000293: 01,3322           61402                           AD       LST1       +2                         
048235,000294: 01,3323           13327                           TCF      +4                                    
048236,000295: 01,3324           64744                           AD       ONE                                   
048237,000296: 01,3325           03377                           TC       WTLST2                                
048238,000297: 01,3326           00002                           OCT      2                                     
048239,000298: 
048240,000299: 01,3327           10000                 +4        CCS      A                                     #  TEST  TD - T4 + 1
048241,000300: 01,3330           61403                           AD       LST1       +3                         
048242,000301: 01,3331           13335                           TCF      +4                                    
048243,000302: 01,3332           64744                           AD       ONE                                   
048244,000303: 01,3333           03377                           TC       WTLST2                                
048245,000304: 01,3334           00003                           OCT      3                                     
048246,000305: 
048247,000306: 01,3335           10000                 +4        CCS      A                                     #  TEST  TD - T5 + 1
048248,000307: 01,3336           61404                           AD       LST1       +4                         
048249,000308: 01,3337           13343                           TCF      +4                                    
048250,000309: 01,3340           64744                           AD       ONE                                   
048251,000310: 01,3341           03377                           TC       WTLST2                                
048252,000311: 01,3342           00004                           OCT      4                                     
048253,000312: 
048254,000313: 01,3343           10000                 +4        CCS      A                                     #  TEST  TD - T6 + 1
048255,000314: 01,3344           61405                           AD       LST1       +5                         
048256,000315: 01,3345           13351                           TCF      +4                                    
048257,000316: 01,3346           64744                           AD       ONE                                   
048258,000317: 01,3347           03377                           TC       WTLST2                                
048259,000318: 01,3350           00005                           OCT      5                                     
048260,000319: 
048261,000320: 01,3351           10000                 +4        CCS      A                                     #  TEST  TD - T7 + 1
048262,000321: 01,3352           61406                           AD       LST1       +6                         
048263,000322: 01,3353           13357                           TCF      +4                                    
048264,000323: 01,3354           64744                           AD       ONE                                   
048265,000324: 01,3355           03377                           TC       WTLST2                                
048266,000325: 01,3356           00006                           OCT      6                                     
048267,000326: 

Page 1123

048269,000328: 01,3357           10000                 +4        CCS      A                                     
048270,000329: 01,3360           61407                           AD       LST1       +7                         
048271,000330: 01,3361           13365                           TCF      +4                                    
048272,000331: 01,3362           64744                           AD       ONE                                   
048273,000332: 01,3363           03377                           TC       WTLST2                                
048274,000333: 01,3364           00007                           OCT      7                                     
048275,000334: 
048276,000335: 01,3365           10000                 +4        CCS      A                                     
048277,000336: 01,3366           03374        WTABORT            TC       FILLED                                
048278,000337: 01,3367           13370                           NOOP                                           #  CAN'T GET HERE
048279,000338: 01,3370           64744                           AD       ONE                                   
048280,000339: 01,3371           03377                           TC       WTLST2                                
048281,000340: 01,3372           00010                           OCT      10                                    
048282,000341: 
048283,000342: 01,3373           40201        OCT40201           OCT      40201                                 
048284,000343: 

Page 1124

048286,000345: 01,3374           52062        FILLED             DXCH     WAITEXIT                              
048287,000346: 01,3375           05712                           TC       BAILOUT1                              #  NO ROOM IN THE INN
048288,000347: 01,3376           31203                           OCT      31203                                 
048289,000348: 

Page 1125

048291,000350:                                                                                                  #  THE ENTRY TO WTLST2 JUST PRECEDING OCT  N  IS FOR T  LE TD LE T   -1.
048292,000351:                                                                                                  #                                                     N           N+1
048293,000352: 
048294,000353:                                                                                                  #  (LE MEANS LESS THAN OR EQUAL TO).  AT ENTRY, C(A) = -(TD - T   + 1)
048295,000354:                                                                                                  #                                                              N+1
048296,000355: 
048297,000356:                                                                                                  #  THE LST1 ENTRY -(T   - T +1) IS TO BE REPLACED BY -(TD - T + 1), AND
048298,000357:                                                                                                  #                    N+1   N                                 N
048299,000358: 
048300,000359:                                                                                                  #  THE ENTRY -(T   - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
048301,000360:                                                                                                  #               N+1
048302,000361: 
048303,000362: 01,3377           54064        WTLST2             TS       WAITTEMP                              #      C(A) = -(TD - T   + 1)
048304,000363: 01,3400           50002                           INDEX    Q                                     
048305,000364: 01,3401           30000                           CAF      0                                     
048306,000365: 01,3402           54002                           TS       Q                                     #  INDEX VALUE INTO Q.
048307,000366: 
048308,000367: 01,3403           34744                           CAF      ONE                                   
048309,000368: 01,3404           60064                           AD       WAITTEMP                              
048310,000369: 01,3405           50002                           INDEX    Q                                     #  C(A) = -(TD - T ) + 1.
048311,000370: 01,3406           27377                           ADS      LST1       -1                         #                 N
048312,000371: 
048313,000372: 01,3407           40064                           CS       WAITTEMP                              
048314,000373: 01,3410           50002                           INDEX    Q                                     
048315,000374: 01,3411           13263                           TCF      WTLST4                                
048316,000375: 
048317,000376:                                                                                                  #  C(TIME3) = 1.0 - (T1 - T)
048318,000377: 
048319,000378:                                                                                                  #  C(LST1  ) = - (T2 - T1) + 1
048320,000379:                                                                                                  #  C(LST1+1) = - (T3 - T2) + 1
048321,000380:                                                                                                  #  C(LST1+2) = - (T4 - T3) + 1
048322,000381:                                                                                                  #  C(LST1+3) = - (T5 - T4) + 1
048323,000382:                                                                                                  #  C(LST1+4) = - (T6 - T5) + 1
048324,000383: 
048325,000384:                                                                                                  #  C(LST2   ) = 2CADR  TASK1
048326,000385:                                                                                                  #  C(LST2+2 ) = 2CADR  TASK2
048327,000386:                                                                                                  #  C(LST2+4 ) = 2CADR  TASK3
048328,000387:                                                                                                  #  C(LST2+6 ) = 2CADR  TASK4
048329,000388:                                                                                                  #  C(LST2+8 ) = 2CADR  TASK5
048330,000389:                                                                                                  #  C(LST2+10) = 2CADR  TASK6
048331,000390: 

Page 1126

048333,000392:                                                                                                  #           ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
048334,000393: 
048335,000394: 01,3412           00006        T3RUPT             EXTEND                                         
048336,000395: 01,3413           04007                           ROR      SUPERBNK                              #  READ CURRENT SUPERBANK VALUE AND
048337,000396: 01,3414           54016                           TS       BANKRUPT                              #  SAVE WITH E AND F BANK VALUES.
048338,000397: 01,3415           00006                           EXTEND                                         
048339,000398: 01,3416           22012                           QXCH     QRUPT                                 
048340,000399: 
048341,000400: 01,3417           34725        T3RUPT2            CAF      NEG1/2                                #  DISPATCH WAITLIST TASK.
048342,000401: 01,3420           57407                           XCH      LST1       +7                         
048343,000402: 01,3421           57406                           XCH      LST1       +6                         
048344,000403: 01,3422           57405                           XCH      LST1       +5                         
048345,000404: 01,3423           57404                           XCH      LST1       +4                         #  1.  MOVE UP LST1 CONTENTS, ENTERING
048346,000405: 01,3424           57403                           XCH      LST1       +3                         #      A VALUE OF 1/2 +1 AT THE BOTTOM
048347,000406: 01,3425           57402                           XCH      LST1       +2                         #      FOR T6-T5, CORRESPONDING TO THE
048348,000407: 01,3426           57401                           XCH      LST1       +1                         #      INTERVAL 81.91 SEC FOR ENDTASK.
048349,000408: 01,3427           57400                           XCH      LST1                                  
048350,000409: 01,3430           64724                           AD       POSMAX                                #  2. SET T3 = 1.0 - T2 -T USING LIST 1.
048351,000410: 01,3431           26026                           ADS      TIME3                                 #  SO T3 WONT TICK DURING UPDATE.
048352,000411: 01,3432           54332                           TS       RUPTAGN                               
048353,000412: 01,3433           44746                           CS       ZERO                                  
048354,000413: 01,3434           54332                           TS       RUPTAGN                               #  SETS RUPTAGN TO +1 ON OVERFLOW.
048355,000414: 
048356,000415: 01,3435           00006                           EXTEND                                         #  DISPATCH TASK.
048357,000416: 01,3436           45241                           DCS      ENDTASK                               
048358,000417: 01,3437           53431                           DXCH     LST2       +16D                       
048359,000418: 01,3440           53427                           DXCH     LST2       +14D                       
048360,000419: 01,3441           53425                           DXCH     LST2       +12D                       
048361,000420: 01,3442           53423                           DXCH     LST2       +10D                       
048362,000421: 01,3443           53421                           DXCH     LST2       +8D                        
048363,000422: 01,3444           53417                           DXCH     LST2       +6                         
048364,000423: 01,3445           53415                           DXCH     LST2       +4                         
048365,000424: 01,3446           53413                           DXCH     LST2       +2                         
048366,000425: 01,3447           53411                           DXCH     LST2                                  
048367,000426: 
048368,000427: 01,3450           56001                           XCH      L                                     
048369,000428: 01,3451           00006                           EXTEND                                         
048370,000429: 01,3452           01007                           WRITE    SUPERBNK                              #  SET SUPERBANK FROM BBCON OF 2CADR
048371,000430: 01,3453           56001                           XCH      L                                     #  RESTORE TO L FOR DXCH Z.
048372,000431: 01,3454           52006                           DTCB                                           
048373,000432: 

Page 1127

048375,000434:                                                                                                  #           RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
048376,000435: 
048377,000436:    5263                                           BLOCK    02                                    
048378,000437:    5263                                           COUNT*   $$/WAIT                               
048379,000438:    5263           10332        TASKOVER           CCS      RUPTAGN                               #  IF +1 RETURN TO T3RUPT, IF -0 RESUME.
048380,000439:    5264           35222                           CAF      WAITBB                                
048381,000440:    5265           54006                           TS       BBANK                                 
048382,000441:    5266           13417                           TCF      T3RUPT2                               #  DISPATCH NEXT TASK IF IT WAS DUE.
048383,000442: 
048384,000443:    5267           30016                           CA       BANKRUPT                              
048385,000444:    5270           00006                           EXTEND                                         
048386,000445:    5271           01007                           WRITE    SUPERBNK                              #  RESTORE SUPERBANK BEFORE RESUME IS DONE
048387,000446: 
048388,000447:    5272           00006        RESUME             EXTEND                                         
048389,000448:    5273           22012                           QXCH     QRUPT                                 
048390,000449:    5274           30016        NOQRSM             CA       BANKRUPT                              
048391,000450:    5275           56006                           XCH      BBANK                                 
048392,000451:    5276           52011        NOQBRSM            DXCH     ARUPT                                 
048393,000452:    5277           00003                           RELINT                                         
048394,000453:    5300           50017                           RESUME                                         
048395,000454: 

Page 1128

048397,000456:                                                                                                  #  LONGCALL
048398,000457: 
048399,000458:                                                                                                  #  PROGRAM DESCRIPTION                                  DATE- 17 MARCH 1967
048400,000459:                                                                                                  #  PROGRAM WRITTEN BY W.H. VANDEVER                    LOG SECTION WAITLIST
048401,000460:                                                                                                  #  MOD BY- R. MELANSON TO ADD DOCUMENTATION       ASSEMBLY SUNDISK REV. 100
048402,000461: 
048403,000462:                                                                                                  #  FUNCTIONAL DESCRIPTION-
048404,000463:                                                                                                  #  LONGCALL IS CALLED WITH THE DELTA TIME ARRIVING IN A,L SCALED AS TIME2,TIME1 WITH THE 2CADR OF THE TASK
048405,000464:                                                                                                  #  IMMEDIATELY FOLLOWING THE TC LONGCALL.  FOR EXAMPLE, IT MIGHT BE DONE AS FOLLOWS WHERE TIMELOC IS THE NAME OF
048406,000465:                                                                                                  #  A DP REGISTER CONTAINING A DELTA TIME AND WHERE TASKTODO IS THE NAME OF THE LOCATION AT WHICH LONGCALL IS TO
048407,000466:                                                                                                  #  START
048408,000467: 
048409,000468:                                                                                                  #  CALLING SEQUENCE-
048410,000469:                                                                                                  #                                                   EXTEND
048411,000470:                                                                                                  #                                                   DCA    TIMELOC
048412,000471:                                                                                                  #                                                   TC     LONGCALL
048413,000472:                                                                                                  #                                                   2CADR  TASKTODO
048414,000473: 
048415,000474:                                                                                                  #  NORMAL EXIT MODE-
048416,000475:                                                                                                  #     1). TC    WAITLIST
048417,000476:                                                                                                  #     2). DTCB  (TO L+3 OF CALLING ROUTINE 1ST PASS THRU LONGCYCL)
048418,000477:                                                                                                  #     3). DTCB  (TO TASKOVER ON SUBSEQUENT PASSES THRU LONGCYCL)
048419,000478: 
048420,000479:                                                                                                  #  ALARM OR ABORT EXIT MODE-
048421,000480:                                                                                                  #     NONE
048422,000481: 
048423,000482:                                                                                                  #  OUTPUT-
048424,000483:                                                                                                  #     LONGTIME AND LONGTIME+1 = DELTA TIME
048425,000484:                                                                                                  #     LONGEXIT AND LONGEXIT+1 = RETURN 2CADR
048426,000485:                                                                                                  #     LONGCADR AND LONGCADR+1 = TASK 2CADR
048427,000486:                                                                                                  #     A = SINGLE PRECISION TIME FOR WAITLIST
048428,000487: 
048429,000488:                                                                                                  #  ERASABLE INITIALIZATION-
048430,000489:                                                                                                  #     A = MOST SIGNIFICANT PART OF DELTA TIME
048431,000490:                                                                                                  #     L = LEAST SIGNIFICANT PART OF DELTA TIME
048432,000491:                                                                                                  #     Q = ADDRESS OF 2CADR TASK VALUE
048433,000492: 
048434,000493:                                                                                                  #  DEBRIS-
048435,000494:                                                                                                  #     A,Q,L
048436,000495:                                                                                                  #     LONGCADR AND LONGCADR+1
048437,000496:                                                                                                  #     LONGEXIT AND LONGEXIT+1
048438,000497:                                                                                                  #     LONGTIME AND LONGTIME+1
048439,000498: 
048440,000499:                                                                                                  #  *** THE FOLLOWING IS TO BE IN FIXED-FIXED AND UNSWITCHED ERRASIBLE ***
048441,000500: 
048442,000501:    5301                                           BLOCK    02                                    
048443,000502:    5301  E3,1400                                  EBANK=   LST1                                  
048444,000503:    5301           53153        LONGCALL           DXCH     LONGTIME                              #  OBTAIN THE DELTA TIME
048445,000504: 
048446,000505:    5302           00006                           EXTEND                                         #  OBTAIN THE 2CADR

Page 1129

048448,000507:    5303           50002                           NDX      Q                                     
048449,000508:    5304           30001                           DCA      0                                     
048450,000509:    5305           53147                           DXCH     LONGCADR                              
048451,000510: 
048452,000511:    5306           00006                           EXTEND                                         #  NOW GO TO THE APPROPRIATE SWITCHED BANK
048453,000512:    5307           35312                           DCA      LGCL2CDR                              #  FOR THE REST OF LONGCALL
048454,000513:    5310           52006                           DTCB                                           
048455,000514: 
048456,000515:    5311  E3,1400                                  EBANK=   LST1                                  
048457,000516:    5311           03455 02063  LGCL2CDR           2CADR    LNGCALL2                              
048458,000517: 
048459,000518:                                                                                                  #  *** THE FOLLOWING MAY BE IN A SWITCHED BANK, INCLUDING ITS ERASABLE ***
048460,000519: 
048461,000520: 01,3455                                           BANK     01                                    
048462,000521: 01,3455                                           COUNT*   $$/WAIT                               
048463,000522: 01,3455           23435        LNGCALL2           LXCH     LONGEXIT   +1                         #  SAVE THE CORRECT BB FOR RETURN
048464,000523: 01,3456           34743                           CA       TWO                                   #  OBTAIN THE RETURN ADDRESS
048465,000524: 01,3457           26002                           ADS      Q                                     
048466,000525: 01,3460           55434                           TS       LONGEXIT                              
048467,000526: 
048468,000527: 01,3461           31152                           CA       LONGTIME                              #  CHECK FOR LEGITIMATE DELTA-TIME
048469,000528: 01,3462           10000                           CCS      A                                     
048470,000529: 01,3463           13471                           TCF      LONGCYCL                              #  HI-ORDER OK --> ALL IS OK.
048471,000530: 01,3464           13466                           TCF      +2                                    #  HI-ORDER ZERO --> CHECK LO-ORDER.
048472,000531: 01,3465           13523                           TCF      LONGPOOH                              #  HI-ORDER NEG. --> NEG. DT
048473,000532: 01,3466           31153                 +2        CA       LONGTIME   +1                         #  CHECK LO-ORDER FOR ZERO OR NEGATIVE.
048474,000533: 01,3467           00006                           EXTEND                                         
048475,000534: 01,3470           63523                           BZMF     LONGPOOH                              #  BAD DELTA-TIME.  ABORT
048476,000535: 
048477,000536:                                                                                                  #           *** WAITLIST TASK LONGCYCL ***
048478,000537: 01,3471           00006        LONGCYCL           EXTEND                                         #  CAN WE SUCCESFULLY TAKE ABOUT 1.25
048479,000538: 01,3472           43503                           DCS      DPBIT14                               #  MINUTES OFF OF LONGTIME
048480,000539: 01,3473           21153                           DAS      LONGTIME                              
048481,000540: 
048482,000541: 01,3474           11153                           CCS      LONGTIME   +1                         #  THE REASONIBG BEHIND THIS PART IS
048483,000542: 01,3475           13513                           TCF      MUCHTIME                              #  INVOLVED, TAKING INTO ACCOUNT THAT THE
048484,000543:                                                                                                  #  WORDS MAY NOT BE SIGNED CORRECTED (DP
048485,000544:                                                                                                  #  BASIC INSTRUCTIONS
048486,000545:                                                                                                  #  DO NOT SIGN CORRECT) AND THAT WE SUBTRAC
048487,000546:                                                                                                  #  TED BIT14 (1 OVER HALF THE POS. VALUE
048488,000547:                                                                                                  #  REPRESENTIBLE IN SINGLE WORD)
048489,000548: 01,3476           13477                           NOOP                                           #  CAN:T GET HERE    **********
048490,000549: 01,3477           13500                           TCF      +1                                    
048491,000550: 01,3500           11152                           CCS      LONGTIME                              
048492,000551: 01,3501           13513                           TCF      MUCHTIME                              
048493,000552: 01,3502           00000        DPBIT14            OCT      00000                                 
048494,000553: 01,3503           20000                           OCT      20000                                 
048495,000554:                                                                                                  #  LONGCALL
048496,000555: 

Page 1130

048498,000557: 01,3504           34727        LASTTIME           CA       BIT14                                 #  GET BACK THE CORRECT DELTA TFOR WAITLIST
048499,000558: 01,3505           27153                           ADS      LONGTIME   +1                         
048500,000559: 01,3506           05175                           TC       TWIDDLE                               
048501,000560: 01,3507  E3,1400                                  EBANK=   LST1                                  
048502,000561: 01,3507           03520                           ADRES    GETCADR                               
048503,000562: 01,3510           33522        LONGRTRN           CA       TSKOVCDR                              #  SET IT UP SO THAT ONLY THE FIRST EXIT IS
048504,000563: 01,3511           53435                           DXCH     LONGEXIT                              #  TO THE CALLER OF LONGCALL
048505,000564: 01,3512           52006                           DTCB                                           #  THE REST ARE TO TASKOVER
048506,000565: 
048507,000566: 01,3513           34727        MUCHTIME           CA       BIT14                                 #  WE HAVE OVER OUR ABOUT 1.25 MINUTES
048508,000567: 01,3514           05205                           TC       WAITLIST                              #  SO SET UP FOR ANOTHER CYCLE THROUGH HERE
048509,000568: 01,3515  E3,1400                                  EBANK=   LST1                                  
048510,000569: 01,3515           03471 02063                     2CADR    LONGCYCL                              
048511,000570: 
048512,000571: 
048513,000572: 01,3517           13510                           TCF      LONGRTRN                              #  NOW EXIT PROPERLY
048514,000573: 
048515,000574:                                                                                                  #           *** WAITLIST TASK GETCADR ***
048516,000575: 01,3520           53147        GETCADR            DXCH     LONGCADR                              #  GET THE LONGCALL THAT WE WISHED TO START
048517,000576: 01,3521           15167                           TCF      SUPDXCHZ                              #  AND TRANSFER CONTROL
048518,000577: 01,3522           05263        TSKOVCDR           GENADR   TASKOVER                              
048519,000578: 01,3523           53435        LONGPOOH           DXCH     LONGEXIT                              
048520,000579: 01,3524           13526                           TCF      +2                                    
048521,000580: 01,3525           52062        WAITPOOH           DXCH     WAITEXIT                              
048522,000581: 01,3526           05722                 +2        TC       POODOO1                               
048523,000582: 01,3527           21204                           OCT      21204                                 

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