Source Code

These source-code files were obtained by digitally photographing the Colossus 237 program listing from the private collection of original AGC developer Fred Martin, and then modifying pre-existing Colossus 249 (Apollo 9) source files to incorporate changes. Note that the page images presented online are of reduced quality, and that additional images are available. Report any conversion errors or legibility problems in page images to info@sandroid.org. Notations on the program listing read, in part:

	GAP: ASSEMBLE REVISION 237 OF AGC PROGRAM COLOSSUS 
	BY NASA 2021111-031  1:17 AUG. 24, 1968

050223,000002:                                                                                                 #  Copyright:     Public domain.
050224,000003:                                                                                                 #  Filename:      WAITLIST.agc
050225,000004:                                                                                                 #  Purpose:       Part of the source code for Colossus build 237.  
050226,000005:                                                                                                 #                 This is for the Command Module's (CM) Apollo Guidance
050227,000006:                                                                                                 #                 Computer (AGC), we believe for Apollo 8.
050228,000007:                                                                                                 #  Assembler:     yaYUL
050229,000008:                                                                                                 #  Contact:       Onno Hommes <ohommes@alumni.cmu.edu>
050230,000009:                                                                                                 #  Website:       www.ibiblio.org/apollo/index.html
050231,000010:                                                                                                 #  Page scans:    www.ibiblio.org/apollo/ScansForConversion/Colossus237/
050232,000011:                                                                                                 #  Mod history:   2010-06-02 OH   Adapted from corresponding Colossus 249 file.
050233,000012:                                                                                                 #                 2010-12-04 JL   Remove Colossus 249 header comments. Change to double-has page numbers.
050234,000013:                                                                                                 #                 2011-02-12 JL   Minor fixes.
050235,000014: 
050236,000015:                                                                                                 # # Page 1188
050237,000016:                                                                                                 #  PROGRAM DESCRIPTION                                                                     DATE - 10 OCTOBER 1966
050238,000017:                                                                                                 #  MOD NO - 2                                                                              LOG SECTION - WAITLIST
050239,000018:                                                                                                 #  MOD BY - MILLER   (DTMAX INCREASED TO 162.5 SEC)                                        ASSEMBLY SUNBURST REV 5
050240,000019:                                                                                                 #  MOD 3 BY KERNAN  (INHINT INSERTED AT WAITLIST)  2/28/68 SKIPPER REV 4
050241,000020: 
050242,000021:                                                                                                 #  MOD 4BY KERNAN (TWIDDLE IN 54)  3/28/68 SKIPPER REV 13.
050243,000022: 
050244,000023: 
050245,000024:                                                                                                 #  FUNCTIONAL DESCRIPTION-
050246,000025:                                                                                                 #          PART OF A SECTION OF PROGRAMS,-WAITLIST, TASKOVER, T3RUPT, USED  TO CALL A PROGRAM, (CALLED A TASK),
050247,000026:                                                                                                 #     WHICH IS TO BEGIN IN C(A) CENTISECONDS.  WAITLIST UPDATES TIME3, LST1, AND LST2. THE MEANING OF THESE LISTS
050248,000027:                                                                                                 #     FOLLOW.
050249,000028: 
050250,000029:                                                                                                 #                  C(TIME3)  = 16384 -(T1-T) CENTISECONDS, (T=PRESENT TIME, T1-TIME FOR TASK1)
050251,000030: 
050252,000031: 
050253,000032:                                                                                                 #                               C(LST1)    = -(T2-T1)+1
050254,000033:                                                                                                 #                               C(LST1 +1) = -(T3-T2)+1
050255,000034:                                                                                                 #                               C(LST1 +2) = -(T4-T3)+1
050256,000035:                                                                                                 #                                          .
050257,000036:                                                                                                 #                                          .
050258,000037:                                                                                                 #                               C(LST1 +6) = -(T8-T7)+1
050259,000038:                                                                                                 #                               C(LST1 +7) = -(T9-T8)+1
050260,000039: 
050261,000040:                                                                                                 #                               C(LST2)    = 2CADR OF TASK1
050262,000041:                                                                                                 #                               C(LST2 +2) = 2CADR OF TASK2
050263,000042:                                                                                                 #                                          .
050264,000043:                                                                                                 #                                          .
050265,000044:                                                                                                 #                               C(LST2 +14)= 2CADR OF TASK8
050266,000045:                                                                                                 #                               C(LST2 +16)= 2CADR OF TASK9
050267,000046: 
050268,000047:                                                                                                 #  WARNINGS-
050269,000048:                                                                                                 #  --------
050270,000049:                                                                                                 #               1) 1 <= C(A) <= 16250D (1 CENTISCOND TO 162.5 SEC)
050271,000050:                                                                                                 #               2) 9 TASKS MAXIMUM
050272,000051:                                                                                                 #               3) TASKS CALLED UNDER INTERRUPT INHIBITED
050273,000052:                                                                                                 #               4) TASKS END BY TC TASKOVER
050274,000053: 
050275,000054:                                                                                                 #  CALLING SEQUENCE-
050276,000055: 
050277,000056:                                                                                                 #               L-1    CA     DELTAT   (TIME IN CENTISECONDS TO TASK START)
050278,000057:                                                                                                 #               L      TC     WAITLIST
050279,000058:                                                                                                 #               L+1    2CADR  DESIRED TASK
050280,000059:                                                                                                 #               L+2    (MINOR OF 2CADR)
050281,000060:                                                                                                 #               L+3    RELINT          (RETURNS HERE)
050282,000061: 
050283,000062:                                                                                                 #  TWIDDLE-
050284,000063:                                                                                                 #  -------
050285,000064:                                                                                                 #               TWIDDLE IS FOR USE WHEN THE TASK BEING SET UP IS IN THE SAME EBANK AND FBANK AS THE USER.   IN
050286,000065:                                                                                                 #               SUCH CASES, IT IMPROVES UPON WAITLIST BY ELIMINATING THE NEED FOR THE BBCON HALF OF THE 2CADR,
050287,000066:                                                                                                 # # Page 1189
050288,000067:                                                                                                 #               SAVING A WORD.   TWIDDLE IS LIKE WAITLIST IN EVERY RESPECT EXCEPT CALLING SEQUENCE, TO WIT-
050289,000068: 
050290,000069:                                                                                                 #               L-1    CA     DELTAT
050291,000070:                                                                                                 #               L      TC     TWIDDLE
050292,000071:                                                                                                 #               L+1    ADRES  DESIRED TASK
050293,000072:                                                                                                 #               L+2    RELINT               (RETURNS HERE)
050294,000073: 
050295,000074:                                                                                                 #  NORMAL EXIT MODES-
050296,000075: 
050297,000076:                                                                                                 #               AT L+3 OF CALLING SEQUENCE.
050298,000077: 
050299,000078:                                                                                                 #  ALARM OR ABORT EXIT MODES-
050300,000079: 
050301,000080:                                                                                                 #               TC     ABORT
050302,000081:                                                                                                 #               OCT    1203   (WAITLIST OVERFLOW - TOO MANY TASKS)
050303,000082: 
050304,000083:                                                                                                 #  ERASABLE INITIALIZATION REQUIRED-
050305,000084: 
050306,000085:                                                                                                 #               ACCOMPLISHED BY FRESH START,--LST2,..., LST2 +16 =ENDTASK
050307,000086:                                                                                                 #                                             LST1,..., LST1 +7  =NEG1/2
050308,000087: 
050309,000088:                                                                                                 #  OUTPUT--
050310,000089: 
050311,000090:                                                                                                 #               LST1 AND LST2 UPDATED WTIH NEW TASK AND ASSOCIATED TIME.
050312,000091:                                                                                                 #  DEBRIS-
050313,000092: 
050314,000093:                                                                                                 #               CENTRALS- A,Q,L
050315,000094:                                                                                                 #               OTHER   - WAITEXIT, WAITADR, WAITTEMP, WAITBANK
050316,000095:                                                                                                 #  DETAILED ANALYSIS OF TIMING-
050317,000096:                                                                                                 #          CONTROL WILL NOT BE RETURNED TO THE SPECIFIED ADDRESS (2CADR)   IN EXACTLY DELTA T CENTISECONDS.
050318,000097:                                                                                                 #     THE APPROXIMATE TIME MAY BE CALCULATED AS FOLLOWS:
050319,000098: 
050320,000099:                                                                                                 #               LET T0 = THE TIME OF THE TC WAITLIST
050321,000100:                                                                                                 #               LET TS = T0 +147U + COUNTER INCREMENTS (SET UP TIME)
050322,000101:                                                                                                 #               LET X  = TS -(100TS)/100  (VARIANCE FROM COUNTERS)
050323,000102:                                                                                                 #               LET Y  = LENGTH OF TIME OF INHIBIT INTERRUPT AFTER T3RUPT
050324,000103:                                                                                                 #               LET Z  = LENGTH OF TIME TO PROCESS TASKS WHICH ARE DUE THIS T3RUPT BUT DISPATCHED EARLIER.
050325,000104:                                                                                                 #     (Z=0, USUALLY).
050326,000105:                                                                                                 #               LET DELTD = THE ACTUAL TIME TAKEN TO GIVE CONTROL TO 2CADR
050327,000106:                                                                                                 #            THEN   DELTD = TS+DELTA T -X +Y +Z +1.05MS* +COUNTERS*
050328,000107:                                                                                                 #     *-THE TIME TAKEN BY WAITLIST ITSELF AND THE COUNTER TICKING DURING THIS WAITLIST TIME.
050329,000108: 
050330,000109: 
050331,000110:                                                                                                 #          IN SHORT, THE ACTUAL TIME TO RETURN CONTROL TO A 2CADR IS AUGMENTED BY THE TIME TO SET UP THE TASK:S
050332,000111:                                                                                                 #     INTERRUPT, ALL COUNTERS TICKING, THE T3RUPT PROCESSING TIME, THE WAITLIST PROCESSING TIME AND THE POSSIBILITY
050333,000112:                                                                                                 #     OF OTHER TASKS INHIBITING THE INTERRUPT.
050334,000113: 
050335,000114: 
050336,000115:    5130                                          BLOCK    02                                    
050337,000116:                                                                                                 # # Page 1190
050338,000117:    5130  E3,1400                                 EBANK=   LST1                                  #  TASK LISTS IN SWITCHED E BANK.
050339,000118: 
050340,000119:    5130                                          COUNT    02/WAIT                               
050341,000120: 
050342,000121:    5130           00004        TWIDDLE           INHINT                                         
050343,000122:    5131           54001                          TS       L                                     #  SAVE DELAY TIME IN L
050344,000123:    5132           34672                          CA       POSMAX                                
050345,000124:    5133           26002                          ADS      Q                                     #  CREATING OVERFLOW AND Q-1 IN Q
050346,000125:    5134           30006                          CA       BBANK                                 
050347,000126:    5135           00006                          EXTEND                                         
050348,000127:    5136           04007                          ROR      SUPERBNK                              
050349,000128:    5137           56001                          XCH      L                                     
050350,000129: 
050351,000130:    5140           00004        WAITLIST          INHINT                                         
050352,000131:    5141           56002                          XCH      Q                                     #  SAVE DELTA T IN Q AND RETURN IN
050353,000132:    5142           54061                          TS       WAITEXIT                              #  WAITEXIT.
050354,000133:    5143           00006                          EXTEND                                         
050355,000134:    5144           50061                          INDEX    WAITEXIT                              #  IF TWIDDLING, THE TS SKIPS TO HERE
050356,000135:    5145           30001                          DCA      0                                     #  PICK UP 2CADR OF TASK.
050357,000136:    5146           54063        -1                TS       WAITADR                               #  BBCON WILL REMAIN IN L
050358,000137:    5147           35155        DLY2              CAF      WAITBB                                #  ENTRY FROM FIXDELAY AND VARDELAY.
050359,000138:    5150           56006                          XCH      BBANK                                 
050360,000139:    5151           13246                          TCF      WAIT2                                 
050361,000140: 
050362,000141:                                                                                                 #           RETURN TO CALLER AFTER TASK INSERTION:
050363,000142: 
050364,000143:    5152           52062        LVWTLIST          DXCH     WAITEXIT                              
050365,000144:    5153           64711                          AD       TWO                                   
050366,000145:    5154           52006                          DTCB                                           
050367,000146: 
050368,000147:    5155  E3,1400                                 EBANK=   LST1                                  
050369,000148:    5155           02063        WAITBB            BBCON    WAIT2                                 
050370,000149: 
050371,000150:                                                                                                 #           RETURN TO CALLER +2 AFTER WAITING DT SPECIFIED AT CALLER +1.
050372,000151: 
050373,000152:    5156           50002        FIXDELAY          INDEX    Q                                     #  BOTH ROUTINES MUST BE CALLED UNDER
050374,000153:    5157           30000                          CAF      0                                     #  WAITLIST CONTROL AND TERMINATE THE TASK
050375,000154:    5160           24002                          INCR     Q                                     #  IN WHICH THEY WERE CALLED.
050376,000155: 
050377,000156:                                                                                                 #           RETURN TO CALLER +1 AFTER WAITING THE DT AS ARRIVING IN A.
050378,000157: 
050379,000158:    5161           56002        VARDELAY          XCH      Q                                     #  DT TO Q. TASK ADRES TO WAITADR.
050380,000159:    5162           54063                          TS       WAITADR                               
050381,000160:    5163           30006                          CA       BBANK                                 #  BBANK IS SAVED DURING DELAY.
050382,000161:    5164           00006                          EXTEND                                         
050383,000162:    5165           04007                          ROR      SUPERBNK                              #  ADD SBANK TO BBCON.
050384,000163:    5166           54001                          TS       L                                     
050385,000164:    5167           35172                          CAF      DELAYEX                               
050386,000165:    5170           54061                          TS       WAITEXIT                              #  GO TO TASKOVER AFTER TASK ENTRY.
050387,000166:    5171           15147                          TCF      DLY2                                  
050388,000167: 
050389,000168:                                                                                                 # # Page 1191
050390,000169:    5172           15211        DELAYEX           TCF      TASKOVER   -2                         #  RETURNS TO TASKOVER
050391,000170: 
050392,000171:                                                                                                 # # Page 1192
050393,000172:                                                                                                 #  ENDTASK MUST BE ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
050394,000173: 
050395,000174:    5173  E3,1400                                 EBANK=   LST1                                  
050396,000175:    5173           72602 73714  ENDTASK           -2CADR   SVCT3                                 
050397,000176: 
050398,000177:    5175           10076        SVCT3             CCS      FLAGWRD2                              #  DRIFT FLAG
050399,000178:    5176           15213                          TCF      TASKOVER                              
050400,000179:    5177           15213                          TCF      TASKOVER                              
050401,000180:    5200           15201                          TCF      +1                                    
050402,000181: 
050403,000182:    5201           11322                          CCS      IMUCADR                               #  DON'T DO NBDONLY IF SOMEONE ELSE IS IN
050404,000183:    5202           15213                          TCF      TASKOVER                              #  IMUSTALL.
050405,000184:    5203           15206                          TCF      +3                                    
050406,000185:    5204           15213                          TCF      TASKOVER                              
050407,000186:    5205           15213                          TCF      TASKOVER                              
050408,000187: 
050409,000188:    5206           37672                 +3       CAF      PRIO35                                #  COMPENSATE FOR NBD COEFFICIENTS ONLY.
050410,000189:    5207           05027                          TC       NOVAC                                 #      ENABLE EVERY 81.93 SECONDS
050411,000190:    5210  E3,1460                                 EBANK=   NBDX                                  
050412,000191:    5210           03542 14063                    2CADR    NBDONLY                               
050413,000192:    5212           15213                          TCF      TASKOVER                              
050414,000193: 
050415,000194:                                                                                                 # # Page 1193
050416,000195:                                                                                                 #           BEGIN TASK INSERTION.
050417,000196: 
050418,000197: 01,3246                                          BANK     01                                    
050419,000198: 01,3246                                          COUNT    01/WAIT                               
050420,000199: 
050421,000200: 01,3246           54062        WAIT2             TS       WAITBANK                              #  BBANK OF CALLING PROGRAM.
050422,000201: 01,3247           40026                          CS       TIME3                                 
050423,000202: 01,3250           64703                          AD       BIT8                                  #  BIT 8 = OCT 200
050424,000203: 01,3251           10000                          CCS      A                                     #  TEST 200 - C(TIME3).  IF POSITIVE,
050425,000204:                                                                                                 #                                          IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS  TIME3 AND THAT
050426,000205:                                                                                                 #                                          C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T).  THE FOLLOWING FOUR
050427,000206:                                                                                                 #                                          ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
050428,000207: 
050429,000208: 01,3252           66056                          AD       OCT40001                              #  OVERFLOW HAS OCCURRED.  SET C(A) =
050430,000209: 01,3253           40000                          CS       A                                     #  T - T1 + 1.0 - 201
050431,000210: 
050432,000211:                                                                                                 #  NORMAL CASE (C(A) NNZ) YIELDS SAME C(A):  -( -(1.0-(T1-T)) + 200) - 1
050433,000212: 
050434,000213: 01,3254           63402                          AD       OCT40201                              
050435,000214: 01,3255           60002                          AD       Q                                     #  RESULT = TD - T1 + 1.
050436,000215: 
050437,000216: 01,3256           10000                          CCS      A                                     #  TEST TD - T1 + 1
050438,000217: 
050439,000218: 01,3257           61400                          AD       LST1                                  #  IF TD - T1 POS, GO TO WTLST5 WITH
050440,000219: 01,3260           13322                          TCF      WTLST5                                #  C(A) = (TD - T1) + C(LST1) = TD-T2+1
050441,000220: 
050442,000221: 01,3261           13262                          NOOP                                           
050443,000222: 01,3262           40002                          CS       Q                                     
050444,000223: 
050445,000224:                                                                                                 #  NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
050446,000225:                                                                                                 #  SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1 .  (G/E
050447,000226:                                                                                                 #  SYMBOL MEANS GREATER THAN OR EQUAL TO).  THUS THERE NEED BE NO CON-
050448,000227:                                                                                                 #  CERN OVER A PREVIOUS OR IMMINENT OVEFLOW OF TIME3 HERE.
050449,000228: 
050450,000229: 01,3263           64675                          AD       POS1/2                                #  WHEN TD IS NEXT, FORM QUANTITY
050451,000230: 01,3264           64675                          AD       POS1/2                                #    1.0 - DELTA T = 1.0 - (TD - T)
050452,000231: 01,3265           56026                          XCH      TIME3                                 
050453,000232: 01,3266           64674                          AD       NEGMAX                                
050454,000233: 01,3267           60002                          AD       Q                                     #  1.0 - DELTAT T NOW COMPLETE.
050455,000234: 01,3270           00006                          EXTEND                                         #  ZERO INDEX Q.
050456,000235: 01,3271           22007                          QXCH     7                                     #  (ZQ)
050457,000236: 
050458,000237:                                                                                                 # # Page 1194
050459,000238: 01,3272           57400        WTLST4            XCH      LST1                                  
050460,000239: 01,3273           57401                          XCH      LST1       +1                         
050461,000240: 01,3274           57402                          XCH      LST1       +2                         
050462,000241: 01,3275           57403                          XCH      LST1       +3                         
050463,000242: 01,3276           57404                          XCH      LST1       +4                         
050464,000243: 01,3277           57405                          XCH      LST1       +5                         
050465,000244: 01,3300           57406                          XCH      LST1       +6                         
050466,000245: 01,3301           57407                          XCH      LST1       +7                         
050467,000246: 
050468,000247: 01,3302           30063                          CA       WAITADR                               #  (MINOR PART OF TASK CADR HAS BEEN IN L.)
050469,000248: 01,3303           50002                          INDEX    Q                                     
050470,000249: 01,3304           13305                          TCF      +1                                    
050471,000250: 
050472,000251: 01,3305           53411                          DXCH     LST2                                  
050473,000252: 01,3306           53413                          DXCH     LST2       +2                         
050474,000253: 01,3307           53415                          DXCH     LST2       +4                         
050475,000254: 01,3310           53417                          DXCH     LST2       +6                         
050476,000255: 01,3311           53421                          DXCH     LST2       +8D                        
050477,000256: 01,3312           53423                          DXCH     LST2       +10D                       #  AT END, CHECK THAT C(LST2 +10) IS STD
050478,000257: 01,3313           53425                          DXCH     LST2       +12D                       
050479,000258: 01,3314           53427                          DXCH     LST2       +14D                       
050480,000259: 01,3315           53431                          DXCH     LST2       +16D                       
050481,000260: 01,3316           65173                          AD       ENDTASK                               #    END ITEM, AS CHECK FOR EXCEEDING
050482,000261:                                                                                                 #                                             THE LENGTH OF THE LIST.
050483,000262: 01,3317           00006                          EXTEND                                         #  DUMMY TASK ADRES SHOULD BE IN FIXED-
050484,000263: 01,3320           15152                          BZF      LVWTLIST                              #  FIXED SO ITS ADRES ALONE DISTINGUISHES
050485,000264: 01,3321           13375                          TCF      WTABORT                               #  IT.
050486,000265: 
050487,000266:                                                                                                 # # Page 1195
050488,000267: 01,3322           10000        WTLST5            CCS      A                                     #  TEST TD - T2 + 1
050489,000268: 01,3323           61401                          AD       LST1       +1                         
050490,000269: 01,3324           13330                          TCF      +4                                    
050491,000270: 01,3325           64712                          AD       ONE                                   
050492,000271: 01,3326           03403                          TC       WTLST2                                
050493,000272: 01,3327           00001                          OCT      1                                     
050494,000273: 
050495,000274: 01,3330           10000                 +4       CCS      A                                     #  TEST TD - T3 + 1
050496,000275: 01,3331           61402                          AD       LST1       +2                         
050497,000276: 01,3332           13336                          TCF      +4                                    
050498,000277: 01,3333           64712                          AD       ONE                                   
050499,000278: 01,3334           03403                          TC       WTLST2                                
050500,000279: 01,3335           00002                          OCT      2                                     
050501,000280: 
050502,000281: 01,3336           10000                 +4       CCS      A                                     #  TEST TD - T4 + 1
050503,000282: 01,3337           61403                          AD       LST1       +3                         
050504,000283: 01,3340           13344                          TCF      +4                                    
050505,000284: 01,3341           64712                          AD       ONE                                   
050506,000285: 01,3342           03403                          TC       WTLST2                                
050507,000286: 01,3343           00003                          OCT      3                                     
050508,000287: 
050509,000288: 01,3344           10000                 +4       CCS      A                                     #  TEST TD - T5 + 1
050510,000289: 01,3345           61404                          AD       LST1       +4                         
050511,000290: 01,3346           13352                          TCF      +4                                    
050512,000291: 01,3347           64712                          AD       ONE                                   
050513,000292: 01,3350           03403                          TC       WTLST2                                
050514,000293: 01,3351           00004                          OCT      4                                     
050515,000294: 
050516,000295: 01,3352           10000                 +4       CCS      A                                     #  TEST TD - T6 + 1
050517,000296: 01,3353           61405                          AD       LST1       +5                         
050518,000297: 01,3354           13360                          TCF      +4                                    
050519,000298: 01,3355           64712                          AD       ONE                                   
050520,000299: 01,3356           03403                          TC       WTLST2                                
050521,000300: 01,3357           00005                          OCT      5                                     
050522,000301: 
050523,000302: 01,3360           10000                 +4       CCS      A                                     #  TEST TD - T7 + 1
050524,000303: 01,3361           61406                          AD       LST1       +6                         
050525,000304: 01,3362           13366                          TCF      +4                                    
050526,000305: 01,3363           64712                          AD       ONE                                   
050527,000306: 01,3364           03403                          TC       WTLST2                                
050528,000307: 01,3365           00006                          OCT      6                                     
050529,000308: 
050530,000309:                                                                                                 # # Page 1196
050531,000310: 01,3366           10000                 +4       CCS      A                                     
050532,000311: 01,3367           61407                          AD       LST1       +7                         
050533,000312: 01,3370           13374                          TCF      +4                                    
050534,000313: 01,3371           64712                          AD       ONE                                   
050535,000314: 01,3372           03403                          TC       WTLST2                                
050536,000315: 01,3373           00007                          OCT      7                                     
050537,000316: 
050538,000317: 01,3374           10000                 +4       CCS      A                                     
050539,000318: 01,3375           05604        WTABORT           TC       BAILOUT                               #  NO ROOM IN THE INN.
050540,000319: 01,3376           01203                          OCT      1203                                  
050541,000320: 
050542,000321: 01,3377           64712                          AD       ONE                                   
050543,000322: 01,3400           03403                          TC       WTLST2                                
050544,000323: 01,3401           00010                          OCT      10                                    
050545,000324: 
050546,000325: 01,3402           40201        OCT40201          OCT      40201                                 
050547,000326: 
050548,000327:                                                                                                 # # Page 1197
050549,000328:                                                                                                 #  THE ENTRY TC WTLST2 JUST PRECEDING OCT  N  IS FOR T  LE TD LE T   -1.
050550,000329:                                                                                                 #                                                     N           N+1
050551,000330: 
050552,000331:                                                                                                 #  (LE MEANS LESS THAN OR EQUAL TO).  AT ENTRY, C(A) = -(TD - T   + 1)
050553,000332:                                                                                                 #                                                              N+1
050554,000333: 
050555,000334:                                                                                                 #  THE LST1 ENTRY -(T   - T +1) IS TO BE REPLACED BY -(TD - T  + 1), AND
050556,000335:                                                                                                 #                    N+1   N                                 N
050557,000336: 
050558,000337:                                                                                                 #  THE ENTRY -(T   - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
050559,000338:                                                                                                 #               N+1
050560,000339: 
050561,000340: 01,3403           54064        WTLST2            TS       WAITTEMP                              #      C(A) = -(TD - T   + 1)
050562,000341: 01,3404           50002                          INDEX    Q                                     
050563,000342: 01,3405           30000                          CAF      0                                     
050564,000343: 01,3406           54002                          TS       Q                                     #  INDEX VALUE INTO Q.
050565,000344: 
050566,000345: 01,3407           34712                          CAF      ONE                                   
050567,000346: 01,3410           60064                          AD       WAITTEMP                              
050568,000347: 01,3411           50002                          INDEX    Q                                     #  C(A) = -(TD - T ) + 1.
050569,000348: 01,3412           27377                          ADS      LST1       -1                         #                 N
050570,000349: 
050571,000350: 01,3413           40064                          CS       WAITTEMP                              
050572,000351: 01,3414           50002                          INDEX    Q                                     
050573,000352: 01,3415           13272                          TCF      WTLST4                                
050574,000353: 
050575,000354:                                                                                                 #  C(TIME3) = 1.0 - (T1 - T)
050576,000355: 
050577,000356:                                                                                                 #  C(LST1  ) = - (T2 - T1) + 1
050578,000357:                                                                                                 #  C(LST1+1) = - (T3 - T2) + 1
050579,000358:                                                                                                 #  C(LST1+2) = - (T4 - T3) + 1
050580,000359:                                                                                                 #  C(LST1+3) = - (T5 - T4) + 1
050581,000360:                                                                                                 #  C(LST1+4) = - (T6 - T5) + 1
050582,000361: 
050583,000362:                                                                                                 #  C(LST2   ) = 2CADR  TASK1
050584,000363:                                                                                                 #  C(LST2+2 ) = 2CADR  TASK2
050585,000364:                                                                                                 #  C(LST2+4 ) = 2CADR  TASK3
050586,000365:                                                                                                 #  C(LST2+6 ) = 2CADR  TASK4
050587,000366:                                                                                                 #  C(LST2+8 ) = 2CADR  TASK5
050588,000367:                                                                                                 #  C(LST2+10) = 2CADR  TASK6
050589,000368: 
050590,000369:                                                                                                 # # Page 1198
050591,000370:                                                                                                 #           ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
050592,000371: 
050593,000372: 01,3416           00006        T3RUPT            EXTEND                                         
050594,000373: 01,3417           04007                          ROR      SUPERBNK                              #  READ CURRENT SUPERBANK VALUE AND
050595,000374: 01,3420           54016                          TS       BANKRUPT                              #  SAVE WITH E AND F BANK VALUES.
050596,000375: 01,3421           00006                          EXTEND                                         
050597,000376: 01,3422           22012                          QXCH     QRUPT                                 
050598,000377: 
050599,000378: 01,3423           34673        T3RUPT2           CAF      NEG1/2                                #  DISPATCH WAITLIST TASK.
050600,000379: 01,3424           57407                          XCH      LST1       +7                         
050601,000380: 01,3425           57406                          XCH      LST1       +6                         
050602,000381: 01,3426           57405                          XCH      LST1       +5                         
050603,000382: 01,3427           57404                          XCH      LST1       +4                         #  1.  MOVE UP LST1 CONTENTS, ENTERING
050604,000383: 01,3430           57403                          XCH      LST1       +3                         #      A VALUE OF 1/2 +1 AT THE BOTTOM
050605,000384: 01,3431           57402                          XCH      LST1       +2                         #      FOR T6-T5, CORRESPONDING TO THE
050606,000385: 01,3432           57401                          XCH      LST1       +1                         #      INTERVAL 81.91 SEC FOR ENDTASK.
050607,000386: 01,3433           57400                          XCH      LST1                                  
050608,000387: 01,3434           64672                          AD       POSMAX                                #  2. SET T3 = 1.0 - T2 - T USING LIST 1.
050609,000388: 01,3435           26026                          ADS      TIME3                                 #     SO T3 WONT TICK DURING UPDATE.
050610,000389: 01,3436           54734                          TS       RUPTAGN                               
050611,000390: 01,3437           44714                          CS       ZERO                                  
050612,000391: 01,3440           54734                          TS       RUPTAGN                               #  SETS RUPTAGN TO +1 ON OVERFLOW.
050613,000392: 
050614,000393: 01,3441           00006                          EXTEND                                         #  DISPATCH TASK.
050615,000394: 01,3442           45174                          DCS      ENDTASK                               
050616,000395: 01,3443           53431                          DXCH     LST2       +16D                       
050617,000396: 01,3444           53427                          DXCH     LST2       +14D                       
050618,000397: 01,3445           53425                          DXCH     LST2       +12D                       
050619,000398: 01,3446           53423                          DXCH     LST2       +10D                       
050620,000399: 01,3447           53421                          DXCH     LST2       +8D                        
050621,000400: 01,3450           53417                          DXCH     LST2       +6                         
050622,000401: 01,3451           53415                          DXCH     LST2       +4                         
050623,000402: 01,3452           53413                          DXCH     LST2       +2                         
050624,000403: 01,3453           53411                          DXCH     LST2                                  
050625,000404: 
050626,000405: 01,3454           56001                          XCH      L                                     
050627,000406: 01,3455           00006                          EXTEND                                         
050628,000407: 01,3456           01007                          WRITE    SUPERBNK                              #  SET SUPERBANK FROM BBCON OF 2CADR
050629,000408: 01,3457           56001                          XCH      L                                     #  RESTORE TO L FOR DXCH Z.
050630,000409: 01,3460           52006                          DTCB                                           
050631,000410: 
050632,000411:                                                                                                 # # Page 1199
050633,000412:                                                                                                 #           RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
050634,000413: 
050635,000414:    5213                                          BLOCK    02                                    
050636,000415:    5213                                          COUNT    02/WAIT                               
050637,000416: 
050638,000417:    5213           10734        TASKOVER          CCS      RUPTAGN                               #  IF +1 RETURN TO T3RUPT, IF -0 RESUME.
050639,000418:    5214           35155                          CAF      WAITBB                                
050640,000419:    5215           54006                          TS       BBANK                                 
050641,000420:    5216           13423                          TCF      T3RUPT2                               #  DISPATCH NEXT TASK IF IT WAS DUE.
050642,000421: 
050643,000422:    5217           30016                          CA       BANKRUPT                              
050644,000423:    5220           00006                          EXTEND                                         
050645,000424:    5221           01007                          WRITE    SUPERBNK                              #  RESTORE SUPERBANK BEFORE RESUME IS DONE
050646,000425: 
050647,000426:    5222           00006        RESUME            EXTEND                                         
050648,000427:    5223           22012                          QXCH     QRUPT                                 
050649,000428:    5224           30016        NOQRSM            CA       BANKRUPT                              
050650,000429:    5225           56006                          XCH      BBANK                                 
050651,000430:    5226           52011        NOQBRSM           DXCH     ARUPT                                 
050652,000431:    5227           00003                          RELINT                                         
050653,000432:    5230           50017                          RESUME                                         
050654,000433: 
050655,000434:                                                                                                 # # Page 1200
050656,000435:                                                                                                 #  LONGCALL
050657,000436: 
050658,000437:                                                                                                 #  PROGRAM DESCRIPTION                                  DATE- 17 MARCH 1967
050659,000438:                                                                                                 #  PROGRAM WRITTEN BY W.H. VANDEVER                    LOG SECTION WAITLIST
050660,000439:                                                                                                 #  MOD BY- R. MELANSON TO ADD DOCUMENTATION       ASSEMBLY SUNDISK REV. 100
050661,000440: 
050662,000441:                                                                                                 #  FUNCTIONAL DESCRIPTION-
050663,000442:                                                                                                 #  LONGCALL IS CALLED WITH THE DELTA TIME ARRIVING IN A,L SCALED AS TIME2,TIME1 WITH THE 2CADR OF THE TASK
050664,000443:                                                                                                 #  IMMEDIATELY FOLLOWING THE TC LONGCALL.  FOR EXAMPLE, IT MIGHT BE DONE AS FOLLOWS WHERE TIMELOC IS THE NAME OF
050665,000444:                                                                                                 #  A DP REGISTER CONTAINING A DELTA TIME AND WHERE TASKTODO IS THE NAME OF THE LOCATION AT WHICH LONGCALL IS TO
050666,000445:                                                                                                 #  START.
050667,000446: 
050668,000447:                                                                                                 #  CALLING SEQUENCE-
050669,000448:                                                                                                 #                                                   EXTEND
050670,000449:                                                                                                 #                                                   DCA    TIMELOC
050671,000450:                                                                                                 #                                                   TC     LONGCALL
050672,000451:                                                                                                 #                                                   2CADR  TASKTODO
050673,000452: 
050674,000453:                                                                                                 #  NORMAL EXIT MODE-
050675,000454:                                                                                                 #     1). TC    WAITLIST
050676,000455:                                                                                                 #     2). DTCB  (TO L+3 OF CALLING ROUTINE 1ST PASS THRU LONGCYCL)
050677,000456:                                                                                                 #     3). DTCB  (TO TASKOVER ON SUBSEQUENT PASSES THRU LONGCYCL)
050678,000457: 
050679,000458:                                                                                                 #  ALARM OR ABORT EXIT MODE-
050680,000459:                                                                                                 #     NONE
050681,000460: 
050682,000461:                                                                                                 #  OUTPUT-
050683,000462:                                                                                                 #     LONGTIME AND LONGTIME+1 = DELTA TIME
050684,000463:                                                                                                 #     LONGEXIT AND LONGEXIT+1 = RETURN 2CADR
050685,000464:                                                                                                 #     LONGCADR AND LONGCADR+1 = TASK 2CADR
050686,000465:                                                                                                 #     A = SINGLE PRECISION TIME FOR WAITLIST
050687,000466: 
050688,000467:                                                                                                 #  ERASABLE INITIALIZATION-
050689,000468:                                                                                                 #     A = MOST SIGNIFICANT PART OF DELTA TIME
050690,000469:                                                                                                 #     L = LEAST SIGNIFICANT PART OF DELTA TIME
050691,000470:                                                                                                 #     Q = ADDRESS OF 2CADR TASK VALUE
050692,000471: 
050693,000472:                                                                                                 #  DEBRIS-
050694,000473:                                                                                                 #     A,Q,L
050695,000474:                                                                                                 #     LONGCADR AND LONGCADR+1
050696,000475:                                                                                                 #     LONGEXIT AND LONGEXIT+1
050697,000476:                                                                                                 #     LONGTIME AND LONGTIME+1
050698,000477: 
050699,000478:                                                                                                 #  *** THE FOLLOWING IS TO BE IN FIXED-FIXED AND UNSWITCHED ERRASIBLE **
050700,000479: 
050701,000480:    5231                                          BLOCK    02                                    
050702,000481:    5231  E3,1400                                 EBANK=   LST1                                  
050703,000482:    5231           53140        LONGCALL          DXCH     LONGTIME                              #  OBTAIN THE DELTA TIME
050704,000483: 
050705,000484:    5232           00006                          EXTEND                                         #  OBTAIN THE 2CADR
050706,000485:                                                                                                 # # Page 1201
050707,000486:    5233           50002                          NDX      Q                                     
050708,000487:    5234           30001                          DCA      0                                     
050709,000488:    5235           53134                          DXCH     LONGCADR                              
050710,000489: 
050711,000490:    5236           00006                          EXTEND                                         #  NOW GO TO THE APPROPRIATE SWITCHED BANK
050712,000491:    5237           35242                          DCA      LGCL2CDR                              #  FOR THE REST OF LONGCALL
050713,000492:    5240           52006                          DTCB                                           
050714,000493: 
050715,000494:    5241  E3,1400                                 EBANK=   LST1                                  
050716,000495:    5241           03461 02063  LGCL2CDR          2CADR    LNGCALL2                              
050717,000496: 
050718,000497:                                                                                                 #  *** THE FOLLOWING MAY BE IN A SWITCHED BANK, INCLUDING ITS ERASABLE ***
050719,000498: 
050720,000499: 01,3461                                          BANK     01                                    
050721,000500: 01,3461                                          COUNT    01/WAIT                               
050722,000501: 
050723,000502: 01,3461           23435        LNGCALL2          LXCH     LONGEXIT   +1                         #  SAVE THE CORRECT BB FOR RETURN
050724,000503: 01,3462           34711                          CA       TWO                                   #  OBTAIN THE RETURN ADDRESS
050725,000504: 01,3463           26002                          ADS      Q                                     
050726,000505: 01,3464           55434                          TS       LONGEXIT                              
050727,000506: 
050728,000507:                                                                                                 #           *** WAITLIST TASK LONGCYCL ***
050729,000508: 01,3465           00006        LONGCYCL          EXTEND                                         #  CAN WE SUCCESFULLY TAKE ABOUT 1.25
050730,000509: 01,3466           43477                          DCS      DPBIT14                               #  MINUTES OFF OF LONGTIME
050731,000510: 01,3467           21140                          DAS      LONGTIME                              
050732,000511: 
050733,000512: 01,3470           11140                          CCS      LONGTIME   +1                         #  THE REASONING BEHIND THIS PART IS
050734,000513: 01,3471           13510                          TCF      MUCHTIME                              #  INVOLVED, TAKING INTO ACCOUNT THAT THE
050735,000514:                                                                                                 #                                           WORDS MAY NOT BE SIGNED CORRECTED (DP
050736,000515:                                                                                                 #                                           BASIC INSTRUCTIONS
050737,000516:                                                                                                 #                                           DO NOT SIGN CORRECT) AND THAT WE SUBTRAC
050738,000517:                                                                                                 #                                           TED BIT14 (1 OVER HALF THE POS. VALUE
050739,000518:                                                                                                 #                                           REPRESENTABLE IN SINGLE WORD)
050740,000519: 01,3472           13473                          NOOP                                           #  CAN:T GET HERE    **********
050741,000520: 01,3473           13474                          TCF      +1                                    
050742,000521: 01,3474           11137                          CCS      LONGTIME                              
050743,000522: 01,3475           13510                          TCF      MUCHTIME                              
050744,000523: 01,3476           00000        DPBIT14           OCT      00000                                 
050745,000524: 01,3477           20000                          OCT      20000                                 
050746,000525: 
050747,000526:                                                                                                 #                                           LONGCALL
050748,000527: 01,3500           34675        LASTTIME          CA       BIT14                                 #  GET BACK THE CORRECT DELTA TFOR WAITLIST
050749,000528: 01,3501           27140                          ADS      LONGTIME   +1                         
050750,000529: 01,3502           05140                          TC       WAITLIST                              
050751,000530: 01,3503  E3,1400                                 EBANK=   LST1                                  
050752,000531: 01,3503           03515 02063                    2CADR    GETCADR                               #  THE ENTRY TO OUR LONGCADR
050753,000532: 
050754,000533: 01,3505           33517        LONGRTRN          CA       TSKOVCDR                              #  SET IT UP SO THAT ONLY THE FIRST EXIT IS
050755,000534:                                                                                                 # # Page 1202
050756,000535: 01,3506           53435                          DXCH     LONGEXIT                              #  TO THE CALLER OF LONGCALL
050757,000536: 01,3507           52006                          DTCB                                           #  THE REST ARE TO TASKOVER
050758,000537: 
050759,000538: 01,3510           34675        MUCHTIME          CA       BIT14                                 #  WE HAVE OVER OUR ABOUT 1.25 MINUTES
050760,000539: 01,3511           05140                          TC       WAITLIST                              #  SO SET UP FOR ANOTHER CYCLE THROUGH HERE
050761,000540: 01,3512  E3,1400                                 EBANK=   LST1                                  
050762,000541: 01,3512           03465 02063                    2CADR    LONGCYCL                              
050763,000542: 
050764,000543: 01,3514           13505                          TCF      LONGRTRN                              #  NOW EXIT PROPERLY
050765,000544: 
050766,000545:                                                                                                 #           *** WAITLIST TASK GETCADR ***
050767,000546: 01,3515           53134        GETCADR           DXCH     LONGCADR                              #  GET THE LONGCALL THAT WE WISHED TO START
050768,000547: 01,3516           52006                          DTCB                                           #  AND TRANSFER CONTROL TO IT
050769,000548: 
050770,000549: 01,3517           05213        TSKOVCDR          GENADR   TASKOVER                              

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