Source Code

These source-code files were transcribed from a printout in Don Eyles's personal collection, scanned by archive.org, and financially sponsored by Linden Sims. A team of volunteers performed the transcription and proof-reading. The scanned page images are available at the Virtual AGC Project website, as well as higher-quality (but much larger) images at the Virtual AGC Project's collection in the Internet Archive. Report any problems by creating "issues" at the Virtual AGC Project's GitHub Repository.

Notations on the program listing read, in part:

	GAP:  ASSEMBLE REVISION 56 OF AGC PROGRAM ZERLINA BY ZOROASTER
	9:12 OCT. 21,1970
Note that the date is the date of the printout, not the date of the program revision.

048373,000002:                                                                                                  ## Copyright:   Public domain.
048374,000003:                                                                                                  ## Filename:    WAITLIST.agc
048375,000004:                                                                                                  ## Purpose:     A log section of Zerlina 56, the final revision of
048376,000005:                                                                                                  ##              Don Eyles's offline development program for the variable 
048377,000006:                                                                                                  ##              guidance period servicer. It also includes a new P66 with LPD 
048378,000007:                                                                                                  ##              (Landing Point Designator) capability, based on an idea of John 
048379,000008:                                                                                                  ##              Young's. Neither of these advanced features were actually flown,
048380,000009:                                                                                                  ##              but Zerlina was also the birthplace of other big improvements to
048381,000010:                                                                                                  ##              Luminary including the terrain model and new (Luminary 1E)
048382,000011:                                                                                                  ##              analog display programs. Zerlina was branched off of Luminary 145,
048383,000012:                                                                                                  ##              and revision 56 includes all changes up to and including Luminary
048384,000013:                                                                                                  ##              183. It is therefore quite close to the Apollo 14 program,
048385,000014:                                                                                                  ##              Luminary 178, where not modified with new features.
048386,000015:                                                                                                  ## Reference:   pp. 1108-1123
048387,000016:                                                                                                  ## Assembler:   yaYUL
048388,000017:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
048389,000018:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
048390,000019:                                                                                                  ## Mod history: 2017-07-28 MAS  Created from Luminary 210.
048391,000020:                                                                                                  ##              2017-08-28 MAS  Updated for Zerlina 56.
048392,000021: 

Page 1108

048394,000023:                                                                                                  #  PROGRAM DESCRIPTION                                                                     DATE - 10 OCTOBER 1966
048395,000024:                                                                                                  #  MOD NO - 2                                                                              LOG SECTION - WAITLIST
048396,000025:                                                                                                  #  MOD BY - MILLER   (DTMAX INCREASED TO 162.5 SEC)                                        ASSEMBLY SUNBURST REV 5
048397,000026:                                                                                                  #  MOD 3 BY KERNAN  (INHINT INSERTED AT WAITLIST)  2/28/68 SKIPPER REV 4
048398,000027: 
048399,000028:                                                                                                  #  MOD 4BY KERNAN (TWIDDLE IN 54)  3/28/68 SKIPPER REV 13.
048400,000029: 
048401,000030: 
048402,000031:                                                                                                  #  FUNCTIONAL DESCRIPTION-
048403,000032:                                                                                                  #          PART OF A SECTION OF PROGRAMS,-WAITLIST, TASKOVER, T3RUPT, USED  TO CALL A PROGRAM, (CALLED A TASK),
048404,000033:                                                                                                  #     WHICH IS TO BEGIN IN C(A) CENTISECONDS.  WAITLIST UPDATES TIME3, LST1 AND LST2. THE MEANING OF THESE LISTS
048405,000034:                                                                                                  #     FOLLOW.
048406,000035: 
048407,000036:                                                                                                  #                  C(TIME3)  = 16384 -(T1-T) CENTISECONDS, (T=PRESENT TIME, T1-TIME FOR TASK1)
048408,000037: 
048409,000038: 
048410,000039:                                                                                                  #                               C(LST1)    = -(T2-T1)+1
048411,000040:                                                                                                  #                               C(LST1 +1) = -(T3-T2)+1
048412,000041:                                                                                                  #                               C(LST1 +2) = -(T4-T3)+1
048413,000042:                                                                                                  #                                          .
048414,000043:                                                                                                  #                                          .
048415,000044:                                                                                                  #                               C(LST1 +6) = -(T8-T7)+1
048416,000045:                                                                                                  #                               C(LST1 +7) = -(T9-T8)+1
048417,000046: 
048418,000047:                                                                                                  #                               C(LST2)    = 2CADR OF TASK1
048419,000048:                                                                                                  #                               C(LST2 +2) = 2CADR OF TASK2
048420,000049:                                                                                                  #                                          .
048421,000050:                                                                                                  #                                          .
048422,000051:                                                                                                  #                               C(LST2 +14)= 2CADR OF TASK8
048423,000052:                                                                                                  #                               C(LST2 +16)= 2CADR OF TASK9
048424,000053: 
048425,000054:                                                                                                  #  WARNINGS-
048426,000055:                                                                                                  #  --------
048427,000056:                                                                                                  #               1) 1 <= C(A) <= 16250D (1 CENTISECOND TO 162.5 SEC)
048428,000057:                                                                                                  #               2) 9 TASKS MAXIMUM
048429,000058:                                                                                                  #               3) TASKS CALLED UNDER INTERRUPT INHIBITED
048430,000059:                                                                                                  #               4) TASKS END BY TC TASKOVER
048431,000060: 
048432,000061:                                                                                                  #  CALLING SEQUENCE-
048433,000062: 
048434,000063:                                                                                                  #               L-1    CA     DELTAT   (TIME IN CENTISECONDS TO TASK START)
048435,000064:                                                                                                  #               L      TC     WAITLIST
048436,000065:                                                                                                  #               L+1    2CADR  DESIRED TASK
048437,000066:                                                                                                  #               L+2    (MINOR OF 2CADR)
048438,000067:                                                                                                  #               L+3    RELINT          (RETURNS HERE)
048439,000068: 
048440,000069:                                                                                                  #  TWIDDLE -
048441,000070:                                                                                                  #  -------
048442,000071:                                                                                                  #               TWIDDLE IS FOR USE WHEN THE TASK BEING SET UP IS IN THE SAME EBANK AND FBANK AS THE USER.   IN
048443,000072:                                                                                                  #               SUCH CASES, IT IMPROVES UPON WAITLIST BY ELIMINATING THE NEED FOR THE BBCON HALF OF THE 2CADR,

Page 1109

048445,000074:                                                                                                  #               SAVING A WORD.   TWIDDLE IS LIKE WAITLIST IN EVERY RESPECT EXCEPT CALLING SEQUENCE, TO WIT-
048446,000075: 
048447,000076:                                                                                                  #               L-1    CA     DELTAT
048448,000077:                                                                                                  #               L      TC     TWIDDLE
048449,000078:                                                                                                  #               L+1    ADRES  DESIRED TASK
048450,000079:                                                                                                  #               L+2    RELINT               (RETURNS HERE)
048451,000080: 
048452,000081:                                                                                                  #  NORMAL EXIT MODES-
048453,000082: 
048454,000083:                                                                                                  #               AT L+3 OF CALLING SEQUENCE
048455,000084: 
048456,000085:                                                                                                  #  ALARM OR ABORT EXIT MODES-
048457,000086: 
048458,000087:                                                                                                  #               TC     ABORT
048459,000088:                                                                                                  #               OCT    1203   (WAITLIST OVERFLOW - TOO MANY TASKS)
048460,000089: 
048461,000090:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED-
048462,000091: 
048463,000092:                                                                                                  #               ACCOMPLISHED BY FRESH START,--LST2,..., LST2 +16 =ENDTASK
048464,000093:                                                                                                  #                                             LST1,..., LST1 +7  =NEG1/2
048465,000094: 
048466,000095:                                                                                                  #  OUTPUT--
048467,000096: 
048468,000097:                                                                                                  #               LST1 AND LST2 UPDATED WITH NEW TASK AND ASSOCIATED TIME.
048469,000098: 
048470,000099:                                                                                                  #  DEBRIS-
048471,000100: 
048472,000101:                                                                                                  #               CENTRALS- A,Q,L
048473,000102:                                                                                                  #               OTHER   - WAITEXIT, WAITADR, WAITTEMP, WAITBANK
048474,000103:                                                                                                  #  DETAILED ANALYSIS OF TIMING-
048475,000104: 
048476,000105:                                                                                                  #          CONTROL WILL NOT BE RETURNED TO THE SPECIFIED ADDRESS (2CADR)   IN EXACTLY DELTA T CENTISECONDS.
048477,000106:                                                                                                  #     THE APPROXIMATE TIME MAY BE CALCULATED AS FOLLOWS
048478,000107: 
048479,000108:                                                                                                  #               LET TO = THE TIME OF THE TC WAITLIST
048480,000109:                                                                                                  #               LET TS = TO +147U + COUNTER INCREMENTS (SET UP TIME)
048481,000110:                                                                                                  #               LET X  = TS -(100TS)/100  (VARIANCE FROM COUNTERS)
048482,000111:                                                                                                  #               LET Y  = LENGTH OF TIME OF INHIBIT INTERRUPT AFTER T3RUPT
048483,000112:                                                                                                  #               LET Z  = LENGTH OF TIME TO PROCESS TASKS WHICH ARE DUE THIS T3RUPT BUT DISPATCHED EARLIER.
048484,000113:                                                                                                  #     (Z=0, USUALLY)
048485,000114:                                                                                                  #               LET DELTD = THE ACTUAL TIME TAKEN TO GIVE CONTROL TO 2CADR
048486,000115:                                                                                                  #            THEN   DELTD = TS+DELTA T -X +Y +Z +1.05MS* +COUNTERS*
048487,000116:                                                                                                  #     *-THE TIME TAKEN BY WAITLIST ITSELF AND THE COUNTER TICKING DURING THIS WAITLIST TIME.
048488,000117: 
048489,000118: 
048490,000119:                                                                                                  #          IN SHORT, THE ACTUAL TIME TO RETURN CONTROL TO A 2CADR IS AUGMENTED BY THE TIME TO SET UP THE TASK:S
048491,000120:                                                                                                  #     INTERRUPT, ALL COUNTERS TICKING, THE T3RUPT PROCESSING TIME, THE WAITLIST PROCESSING TIME AND THE POSSIBILITY
048492,000121:                                                                                                  #     OF OTHER TASKS INHIBITING THE INTERRUPT.
048493,000122: 
048494,000123: 
048495,000124:    5204                                           BLOCK    02                                    

Page 1110

048497,000126:    5204  E3,1400                                  EBANK=   LST1                                  #  TASK  LISTS IN SWITCHED E BANK.
048498,000127: 
048499,000128:    5204                                           COUNT*   $$/WAIT                               
048500,000129:    5204           00004        TWIDDLE            INHINT                                         
048501,000130:    5205           54001                           TS       L                                     #  SAVE DELAY TIME IN L
048502,000131:    5206           34733                           CA       POSMAX                                
048503,000132:    5207           26002                           ADS      Q                                     #  CREATING OVERFLOW AND Q-1 IN Q
048504,000133:    5210           30006                           CA       BBANK                                 
048505,000134:    5211           00006                           EXTEND                                         
048506,000135:    5212           04007                           ROR      SUPERBNK                              
048507,000136:    5213           56001                           XCH      L                                     
048508,000137: 
048509,000138:    5214           00004        WAITLIST           INHINT                                         
048510,000139:    5215           56002                           XCH      Q                                     #  SAVE DELTA T IN Q AND RETURN IN
048511,000140:    5216           54061                           TS       WAITEXIT                              #  WAITEXIT.
048512,000141:    5217           00006                           EXTEND                                         
048513,000142:    5220           50061                           INDEX    WAITEXIT                              #  IF TWIDDLING, THE TS SKIPS TO HERE
048514,000143:    5221           30001                           DCA      0                                     #  PICK UP 2CADR OF TASK.
048515,000144:    5222           54063                 -1        TS       WAITADR                               #  BBCON WILL REMAIN IN L
048516,000145:    5223           35231        DLY2               CAF      WAITBB                                #  ENTRY FROM FIXDELAY AND VARDELAY.
048517,000146:    5224           56006                           XCH      BBANK                                 
048518,000147:    5225           13234                           TCF      WAIT2                                 
048519,000148: 
048520,000149:                                                                                                  #           RETURN TO CALLER AFTER TASK INSERTION:
048521,000150: 
048522,000151:    5226           52062        LVWTLIST           DXCH     WAITEXIT                              
048523,000152:    5227           64752                           AD       TWO                                   
048524,000153:    5230           52006                           DTCB                                           
048525,000154: 
048526,000155:    5231  E3,1400                                  EBANK=   LST1                                  
048527,000156:    5231           02063        WAITBB             BBCON    WAIT2                                 
048528,000157: 
048529,000158:                                                                                                  #           RETURN TO CALLER +2 AFTER WAITING DT SPECIFIED AT CALLER +1.
048530,000159: 
048531,000160:    5232           50002        FIXDELAY           INDEX    Q                                     #  BOTH ROUTINES MUST BE CALLED UNDER
048532,000161:    5233           30000                           CAF      0                                     #  WAITLIST CONTROL AND TERMINATE THE TASK
048533,000162:    5234           24002                           INCR     Q                                     #  IN WHICH THEY WERE CALLED.
048534,000163: 
048535,000164:                                                                                                  #           RETURN TO CALLER +1 AFTER WAITING THE DT AS ARRIVING IN A.
048536,000165: 
048537,000166:    5235           56002        VARDELAY           XCH      Q                                     #  DT TO Q. TASK ADRES TO WAITADR.
048538,000167:    5236           54063                           TS       WAITADR                               
048539,000168:    5237           30006                           CA       BBANK                                 #  BBANK IS SAVED DURING DELAY.
048540,000169:    5240           00006                           EXTEND                                         
048541,000170:    5241           04007                           ROR      SUPERBNK                              #  ADD SBANK TO BBCON.
048542,000171:    5242           54001                           TS       L                                     
048543,000172:    5243           35246                           CAF      DELAYEX                               
048544,000173:    5244           54061                           TS       WAITEXIT                              #  GO TO TASKOVER AFTER TASK ENTRY.
048545,000174:    5245           15223                           TCF      DLY2                                  
048546,000175: 

Page 1111

048548,000177:    5246           15270        DELAYEX            TCF      TASKOVER   -2                         #  RETURNS TO TASKOVER
048549,000178: 

Page 1112

048551,000180:                                                                                                  #  ENDTASK MUST BE ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
048552,000181: 
048553,000182:    5247  E3,1400                                  EBANK=   LST1                                  
048554,000183:    5247           72526 73714  ENDTASK            -2CADR   SVCT3                                 
048555,000184: 
048556,000185: 
048557,000186:    5251           10076        SVCT3              CCS      FLAGWRD2                              #  DRIFT FLAG
048558,000187:    5252           15272                           TCF      TASKOVER                              
048559,000188:    5253           15272                           TCF      TASKOVER                              
048560,000189:    5254           15255                           TCF      +1                                    
048561,000190: 
048562,000191:    5255           11301        CKIMUSE            CCS      IMUCADR                               #  DON'T DO NBDONLY IF SOMEONE ELSE IS IN
048563,000192:    5256           15267                           TCF      SVCT3X                                #  IMUSTALL.
048564,000193:    5257           15262                           TCF      +3                                    
048565,000194:    5260           15267                           TCF      SVCT3X                                
048566,000195:    5261           15267                           TCF      SVCT3X                                
048567,000196: 
048568,000197:    5262           37735                 +3        CAF      PRIO35                                #  COMPENSATE FOR NBD COEFFICIENTS ONLY.
048569,000198:    5263           05072                           TC       NOVAC                                 #      ENABLE EVERY 81.93 SECONDS
048570,000199:    5264  E3,1460                                  EBANK=   NBDX                                  
048571,000200:    5264           03563 14063                     2CADR    NBDONLY                               
048572,000201: 
048573,000202:    5266           15272                           TCF      TASKOVER                              
048574,000203: 
048575,000204:    5267           05232        SVCT3X             TC       FIXDELAY                              #  DELAY MAX OF 2 TIMES FOR IMUZERO.
048576,000205:    5270           00764                           DEC      500        B-14                       
048577,000206:    5271           05251                           TC       SVCT3                                 #  CHECK DRIFT FLAG AGAIN.
048578,000207: 

Page 1113

048580,000209:                                                                                                  #           BEGIN TASK INSERTION.
048581,000210: 
048582,000211: 01,3234                                           BANK     01                                    
048583,000212: 01,3234                                           COUNT*   $$/WAIT                               
048584,000213: 01,3234           54062        WAIT2              TS       WAITBANK                              #  BBANK OF CALLING PROGRAM.
048585,000214: 01,3235           30002                           CA       Q                                     
048586,000215: 01,3236           00006                           EXTEND                                         
048587,000216: 01,3237           63525                           BZMF     WAITPOOH                              
048588,000217: 
048589,000218: 01,3240           40026                           CS       TIME3                                 
048590,000219: 01,3241           64744                           AD       BIT8                                  #  BIT 8 = OCT 200
048591,000220: 01,3242           10000                           CCS      A                                     #  TEST 200 - C(TIME3).  IF POSITIVE,
048592,000221:                                                                                                  #                                        IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS  TIME3 AND THAT
048593,000222:                                                                                                  #                                        C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T).  THE FOLLOWING FOUR
048594,000223:                                                                                                  #                                        ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
048595,000224: 
048596,000225: 01,3243           66121                           AD       OCT40001                              #  OVERFLOW HAS OCCURRED.  SET C(A) =
048597,000226: 01,3244           40000                           CS       A                                     #  T - T1 + 1.0 - 201
048598,000227: 
048599,000228:                                                                                                  #  NORMAL CASE (C(A) NNZ) YIELDS SAME C(A):  -( -(1.0-(T1-T)) + 200) - 1
048600,000229: 
048601,000230: 01,3245           63373                           AD       OCT40201                              
048602,000231: 01,3246           60002                           AD       Q                                     #  RESULT = TD - T1 + 1.
048603,000232: 
048604,000233: 01,3247           10000                           CCS      A                                     #  TEST TD - T1 + 1
048605,000234: 
048606,000235: 01,3250           61400                           AD       LST1                                  #  IF TD - T1 POS, GO TO WTLST5 WITH
048607,000236: 01,3251           13313                           TCF      WTLST5                                #  C(A) = (TD - T1) + C(LST1) = TD-T2+1
048608,000237: 
048609,000238: 01,3252           13253                           NOOP                                           
048610,000239: 01,3253           40002                           CS       Q                                     
048611,000240: 
048612,000241:                                                                                                  #  NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
048613,000242:                                                                                                  #  SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1 .  (G/E
048614,000243:                                                                                                  #  SYMBOL MEANS GREATER THAN OR EQUAL TO).  THUS THERE NEED BE NO CON-
048615,000244:                                                                                                  #  CERN OVER A PREVIOUS OR IMMINENT OVERFLOW OF TIME3 HERE.
048616,000245: 
048617,000246: 01,3254           64736                           AD       POS1/2                                #  WHEN TD IS NEXT, FORM QUANTITY
048618,000247: 01,3255           64736                           AD       POS1/2                                #    1.0 - DELTA T = 1.0 - (TD - T)
048619,000248: 01,3256           56026                           XCH      TIME3                                 
048620,000249: 01,3257           64735                           AD       NEGMAX                                
048621,000250: 01,3260           60002                           AD       Q                                     #  1.0 - DELTAT T NOW COMPLETE.
048622,000251: 01,3261           00006                           EXTEND                                         #  ZERO INDEX Q.
048623,000252: 01,3262           22007                           QXCH     7                                     #  (ZQ)
048624,000253: 

Page 1114

048626,000255: 01,3263           57400        WTLST4             XCH      LST1                                  
048627,000256: 01,3264           57401                           XCH      LST1       +1                         
048628,000257: 01,3265           57402                           XCH      LST1       +2                         
048629,000258: 01,3266           57403                           XCH      LST1       +3                         
048630,000259: 01,3267           57404                           XCH      LST1       +4                         
048631,000260: 01,3270           57405                           XCH      LST1       +5                         
048632,000261: 01,3271           57406                           XCH      LST1       +6                         
048633,000262: 01,3272           57407                           XCH      LST1       +7                         
048634,000263: 
048635,000264: 01,3273           30063                           CA       WAITADR                               #  (MINOR PART OF TASK CADR HAS BEEN IN L.)
048636,000265: 01,3274           50002                           INDEX    Q                                     
048637,000266: 01,3275           13276                           TCF      +1                                    
048638,000267: 
048639,000268: 01,3276           53411                           DXCH     LST2                                  
048640,000269: 01,3277           53413                           DXCH     LST2       +2                         
048641,000270: 01,3300           53415                           DXCH     LST2       +4                         
048642,000271: 01,3301           53417                           DXCH     LST2       +6                         
048643,000272: 01,3302           53421                           DXCH     LST2       +8D                        
048644,000273: 01,3303           53423                           DXCH     LST2       +10D                       #  AT END, CHECK THAT C(LST2+10) IS STD
048645,000274: 01,3304           53425                           DXCH     LST2       +12D                       
048646,000275: 01,3305           53427                           DXCH     LST2       +14D                       
048647,000276: 01,3306           53431                           DXCH     LST2       +16D                       
048648,000277: 01,3307           65247                           AD       ENDTASK                               #    END ITEM, AS CHECK FOR EXCEEDING
048649,000278:                                                                                                  #    THE LENGTH OF THE LIST.
048650,000279: 01,3310           00006                           EXTEND                                         #  DUMMY TASK ADRES SHOULD BE IN FIXED-
048651,000280: 01,3311           15226                           BZF      LVWTLIST                              #  FIXED SO ITS ADRES ALONE DISTINGUISHES
048652,000281: 01,3312           13366                           TCF      WTABORT                               #  IT.
048653,000282: 

Page 1115

048655,000284: 01,3313           10000        WTLST5             CCS      A                                     #  TEST  TD - T2 + 1
048656,000285: 01,3314           61401                           AD       LST1       +1                         
048657,000286: 01,3315           13321                           TCF      +4                                    
048658,000287: 01,3316           64753                           AD       ONE                                   
048659,000288: 01,3317           03377                           TC       WTLST2                                
048660,000289: 01,3320           00001                           OCT      1                                     
048661,000290: 
048662,000291: 01,3321           10000                 +4        CCS      A                                     #  TEST  TD - T3 + 1
048663,000292: 01,3322           61402                           AD       LST1       +2                         
048664,000293: 01,3323           13327                           TCF      +4                                    
048665,000294: 01,3324           64753                           AD       ONE                                   
048666,000295: 01,3325           03377                           TC       WTLST2                                
048667,000296: 01,3326           00002                           OCT      2                                     
048668,000297: 
048669,000298: 01,3327           10000                 +4        CCS      A                                     #  TEST  TD - T4 + 1
048670,000299: 01,3330           61403                           AD       LST1       +3                         
048671,000300: 01,3331           13335                           TCF      +4                                    
048672,000301: 01,3332           64753                           AD       ONE                                   
048673,000302: 01,3333           03377                           TC       WTLST2                                
048674,000303: 01,3334           00003                           OCT      3                                     
048675,000304: 
048676,000305: 01,3335           10000                 +4        CCS      A                                     #  TEST  TD - T5 + 1
048677,000306: 01,3336           61404                           AD       LST1       +4                         
048678,000307: 01,3337           13343                           TCF      +4                                    
048679,000308: 01,3340           64753                           AD       ONE                                   
048680,000309: 01,3341           03377                           TC       WTLST2                                
048681,000310: 01,3342           00004                           OCT      4                                     
048682,000311: 
048683,000312: 01,3343           10000                 +4        CCS      A                                     #  TEST  TD - T6 + 1
048684,000313: 01,3344           61405                           AD       LST1       +5                         
048685,000314: 01,3345           13351                           TCF      +4                                    
048686,000315: 01,3346           64753                           AD       ONE                                   
048687,000316: 01,3347           03377                           TC       WTLST2                                
048688,000317: 01,3350           00005                           OCT      5                                     
048689,000318: 
048690,000319: 01,3351           10000                 +4        CCS      A                                     #  TEST  TD - T7 + 1
048691,000320: 01,3352           61406                           AD       LST1       +6                         
048692,000321: 01,3353           13357                           TCF      +4                                    
048693,000322: 01,3354           64753                           AD       ONE                                   
048694,000323: 01,3355           03377                           TC       WTLST2                                
048695,000324: 01,3356           00006                           OCT      6                                     
048696,000325: 

Page 1116

048698,000327: 01,3357           10000                 +4        CCS      A                                     
048699,000328: 01,3360           61407                           AD       LST1       +7                         
048700,000329: 01,3361           13365                           TCF      +4                                    
048701,000330: 01,3362           64753                           AD       ONE                                   
048702,000331: 01,3363           03377                           TC       WTLST2                                
048703,000332: 01,3364           00007                           OCT      7                                     
048704,000333: 
048705,000334: 01,3365           10000                 +4        CCS      A                                     
048706,000335: 01,3366           03374        WTABORT            TC       FILLED                                
048707,000336: 01,3367           13370                           NOOP                                           #  CAN'T GET HERE
048708,000337: 01,3370           64753                           AD       ONE                                   
048709,000338: 01,3371           03377                           TC       WTLST2                                
048710,000339: 01,3372           00010                           OCT      10                                    
048711,000340: 
048712,000341: 01,3373           40201        OCT40201           OCT      40201                                 
048713,000342: 

Page 1117

048715,000344: 01,3374           52062        FILLED             DXCH     WAITEXIT                              
048716,000345: 01,3375           05717                           TC       BAILOUT1                              #  NO ROOM IN THE INN
048717,000346: 01,3376           31203                           OCT      31203                                 
048718,000347: 

Page 1118

048720,000349:                                                                                                  #  THE ENTRY TO WTLST2 JUST PRECEDING OCT  N  IS FOR T  LE TD LE T   -1.
048721,000350:                                                                                                  #                                                     N           N+1
048722,000351: 
048723,000352:                                                                                                  #  (LE MEANS LESS THAN OR EQUAL TO).  AT ENTRY, C(A) = -(TD - T   + 1)
048724,000353:                                                                                                  #                                                              N+1
048725,000354: 
048726,000355:                                                                                                  #  THE LST1 ENTRY -(T   - T +1) IS TO BE REPLACED BY -(TD - T + 1), AND
048727,000356:                                                                                                  #                    N+1   N                                 N
048728,000357: 
048729,000358:                                                                                                  #  THE ENTRY -(T   - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
048730,000359:                                                                                                  #               N+1
048731,000360: 
048732,000361: 01,3377           54064        WTLST2             TS       WAITTEMP                              #      C(A) = -(TD - T   + 1)
048733,000362: 01,3400           50002                           INDEX    Q                                     
048734,000363: 01,3401           30000                           CAF      0                                     
048735,000364: 01,3402           54002                           TS       Q                                     #  INDEX VALUE INTO Q.
048736,000365: 
048737,000366: 01,3403           34753                           CAF      ONE                                   
048738,000367: 01,3404           60064                           AD       WAITTEMP                              
048739,000368: 01,3405           50002                           INDEX    Q                                     #  C(A) = -(TD - T ) + 1.
048740,000369: 01,3406           27377                           ADS      LST1       -1                         #                 N
048741,000370: 
048742,000371: 01,3407           40064                           CS       WAITTEMP                              
048743,000372: 01,3410           50002                           INDEX    Q                                     
048744,000373: 01,3411           13263                           TCF      WTLST4                                
048745,000374: 
048746,000375:                                                                                                  #  C(TIME3) = 1.0 - (T1 - T)
048747,000376: 
048748,000377:                                                                                                  #  C(LST1  ) = - (T2 - T1) + 1
048749,000378:                                                                                                  #  C(LST1+1) = - (T3 - T2) + 1
048750,000379:                                                                                                  #  C(LST1+2) = - (T4 - T3) + 1
048751,000380:                                                                                                  #  C(LST1+3) = - (T5 - T4) + 1
048752,000381:                                                                                                  #  C(LST1+4) = - (T6 - T5) + 1
048753,000382: 
048754,000383:                                                                                                  #  C(LST2   ) = 2CADR  TASK1
048755,000384:                                                                                                  #  C(LST2+2 ) = 2CADR  TASK2
048756,000385:                                                                                                  #  C(LST2+4 ) = 2CADR  TASK3
048757,000386:                                                                                                  #  C(LST2+6 ) = 2CADR  TASK4
048758,000387:                                                                                                  #  C(LST2+8 ) = 2CADR  TASK5
048759,000388:                                                                                                  #  C(LST2+10) = 2CADR  TASK6
048760,000389: 

Page 1119

048762,000391:                                                                                                  #           ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
048763,000392: 
048764,000393: 01,3412           00006        T3RUPT             EXTEND                                         
048765,000394: 01,3413           04007                           ROR      SUPERBNK                              #  READ CURRENT SUPERBANK VALUE AND
048766,000395: 01,3414           54016                           TS       BANKRUPT                              #  SAVE WITH E AND F BANK VALUES.
048767,000396: 01,3415           00006                           EXTEND                                         
048768,000397: 01,3416           22012                           QXCH     QRUPT                                 
048769,000398: 
048770,000399: 01,3417           34734        T3RUPT2            CAF      NEG1/2                                #  DISPATCH WAITLIST TASK.
048771,000400: 01,3420           57407                           XCH      LST1       +7                         
048772,000401: 01,3421           57406                           XCH      LST1       +6                         
048773,000402: 01,3422           57405                           XCH      LST1       +5                         
048774,000403: 01,3423           57404                           XCH      LST1       +4                         #  1.  MOVE UP LST1 CONTENTS, ENTERING
048775,000404: 01,3424           57403                           XCH      LST1       +3                         #      A VALUE OF 1/2 +1 AT THE BOTTOM
048776,000405: 01,3425           57402                           XCH      LST1       +2                         #      FOR T6-T5, CORRESPONDING TO THE
048777,000406: 01,3426           57401                           XCH      LST1       +1                         #      INTERVAL 81.91 SEC FOR ENDTASK.
048778,000407: 01,3427           57400                           XCH      LST1                                  
048779,000408: 01,3430           64733                           AD       POSMAX                                #  2. SET T3 = 1.0 - T2 -T USING LIST 1.
048780,000409: 01,3431           26026                           ADS      TIME3                                 #  SO T3 WONT TICK DURING UPDATE.
048781,000410: 01,3432           54332                           TS       RUPTAGN                               
048782,000411: 01,3433           44755                           CS       ZERO                                  
048783,000412: 01,3434           54332                           TS       RUPTAGN                               #  SETS RUPTAGN TO +1 ON OVERFLOW.
048784,000413: 
048785,000414: 01,3435           00006                           EXTEND                                         #  DISPATCH TASK.
048786,000415: 01,3436           45250                           DCS      ENDTASK                               
048787,000416: 01,3437           53431                           DXCH     LST2       +16D                       
048788,000417: 01,3440           53427                           DXCH     LST2       +14D                       
048789,000418: 01,3441           53425                           DXCH     LST2       +12D                       
048790,000419: 01,3442           53423                           DXCH     LST2       +10D                       
048791,000420: 01,3443           53421                           DXCH     LST2       +8D                        
048792,000421: 01,3444           53417                           DXCH     LST2       +6                         
048793,000422: 01,3445           53415                           DXCH     LST2       +4                         
048794,000423: 01,3446           53413                           DXCH     LST2       +2                         
048795,000424: 01,3447           53411                           DXCH     LST2                                  
048796,000425: 
048797,000426: 01,3450           56001                           XCH      L                                     
048798,000427: 01,3451           00006                           EXTEND                                         
048799,000428: 01,3452           01007                           WRITE    SUPERBNK                              #  SET SUPERBANK FROM BBCON OF 2CADR
048800,000429: 01,3453           56001                           XCH      L                                     #  RESTORE TO L FOR DXCH Z.
048801,000430: 01,3454           52006                           DTCB                                           
048802,000431: 

Page 1120

048804,000433:                                                                                                  #           RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
048805,000434: 
048806,000435:    5272                                           BLOCK    02                                    
048807,000436:    5272                                           COUNT*   $$/WAIT                               
048808,000437:    5272           10332        TASKOVER           CCS      RUPTAGN                               #  IF +1 RETURN TO T3RUPT, IF -0 RESUME.
048809,000438:    5273           35231                           CAF      WAITBB                                
048810,000439:    5274           54006                           TS       BBANK                                 
048811,000440:    5275           13417                           TCF      T3RUPT2                               #  DISPATCH NEXT TASK IF IT WAS DUE.
048812,000441: 
048813,000442:    5276           30016                           CA       BANKRUPT                              
048814,000443:    5277           00006                           EXTEND                                         
048815,000444:    5300           01007                           WRITE    SUPERBNK                              #  RESTORE SUPERBANK BEFORE RESUME IS DONE
048816,000445: 
048817,000446:    5301           00006        RESUME             EXTEND                                         
048818,000447:    5302           22012                           QXCH     QRUPT                                 
048819,000448:    5303           30016        NOQRSM             CA       BANKRUPT                              
048820,000449:    5304           56006                           XCH      BBANK                                 
048821,000450:    5305           52011        NOQBRSM            DXCH     ARUPT                                 
048822,000451:    5306           00003                           RELINT                                         
048823,000452:    5307           50017                           RESUME                                         
048824,000453: 

Page 1121

048826,000455:                                                                                                  #  LONGCALL
048827,000456: 
048828,000457:                                                                                                  #  PROGRAM DESCRIPTION                                  DATE- 17 MARCH 1967
048829,000458:                                                                                                  #  PROGRAM WRITTEN BY W.H. VANDEVER                    LOG SECTION WAITLIST
048830,000459:                                                                                                  #  MOD BY- R. MELANSON TO ADD DOCUMENTATION       ASSEMBLY SUNDISK REV. 100
048831,000460: 
048832,000461:                                                                                                  #  FUNCTIONAL DESCRIPTION-
048833,000462:                                                                                                  #  LONGCALL IS CALLED WITH THE DELTA TIME ARRIVING IN A,L SCALED AS TIME2,TIME1 WITH THE 2CADR OF THE TASK
048834,000463:                                                                                                  #  IMMEDIATELY FOLLOWING THE TC LONGCALL.  FOR EXAMPLE, IT MIGHT BE DONE AS FOLLOWS WHERE TIMELOC IS THE NAME OF
048835,000464:                                                                                                  #  A DP REGISTER CONTAINING A DELTA TIME AND WHERE TASKTODO IS THE NAME OF THE LOCATION AT WHICH LONGCALL IS TO
048836,000465:                                                                                                  #  START
048837,000466: 
048838,000467:                                                                                                  #  CALLING SEQUENCE-
048839,000468:                                                                                                  #                                                   EXTEND
048840,000469:                                                                                                  #                                                   DCA    TIMELOC
048841,000470:                                                                                                  #                                                   TC     LONGCALL
048842,000471:                                                                                                  #                                                   2CADR  TASKTODO
048843,000472: 
048844,000473:                                                                                                  #  NORMAL EXIT MODE-
048845,000474:                                                                                                  #     1). TC    WAITLIST
048846,000475:                                                                                                  #     2). DTCB  (TO L+3 OF CALLING ROUTINE 1ST PASS THRU LONGCYCL)
048847,000476:                                                                                                  #     3). DTCB  (TO TASKOVER ON SUBSEQUENT PASSES THRU LONGCYCL)
048848,000477: 
048849,000478:                                                                                                  #  ALARM OR ABORT EXIT MODE-
048850,000479:                                                                                                  #     NONE
048851,000480: 
048852,000481:                                                                                                  #  OUTPUT-
048853,000482:                                                                                                  #     LONGTIME AND LONGTIME+1 = DELTA TIME
048854,000483:                                                                                                  #     LONGEXIT AND LONGEXIT+1 = RETURN 2CADR
048855,000484:                                                                                                  #     LONGCADR AND LONGCADR+1 = TASK 2CADR
048856,000485:                                                                                                  #     A = SINGLE PRECISION TIME FOR WAITLIST
048857,000486: 
048858,000487:                                                                                                  #  ERASABLE INITIALIZATION-
048859,000488:                                                                                                  #     A = MOST SIGNIFICANT PART OF DELTA TIME
048860,000489:                                                                                                  #     L = LEAST SIGNIFICANT PART OF DELTA TIME
048861,000490:                                                                                                  #     Q = ADDRESS OF 2CADR TASK VALUE
048862,000491: 
048863,000492:                                                                                                  #  DEBRIS-
048864,000493:                                                                                                  #     A,Q,L
048865,000494:                                                                                                  #     LONGCADR AND LONGCADR+1
048866,000495:                                                                                                  #     LONGEXIT AND LONGEXIT+1
048867,000496:                                                                                                  #     LONGTIME AND LONGTIME+1
048868,000497: 
048869,000498:                                                                                                  #  *** THE FOLLOWING IS TO BE IN FIXED-FIXED AND UNSWITCHED ERRASIBLE ***
048870,000499: 
048871,000500:    5310                                           BLOCK    02                                    
048872,000501:    5310  E3,1400                                  EBANK=   LST1                                  
048873,000502:    5310           53153        LONGCALL           DXCH     LONGTIME                              #  OBTAIN THE DELTA TIME
048874,000503: 
048875,000504:    5311           00006                           EXTEND                                         #  OBTAIN THE 2CADR

Page 1122

048877,000506:    5312           50002                           NDX      Q                                     
048878,000507:    5313           30001                           DCA      0                                     
048879,000508:    5314           53147                           DXCH     LONGCADR                              
048880,000509: 
048881,000510:    5315           00006                           EXTEND                                         #  NOW GO TO THE APPROPRIATE SWITCHED BANK
048882,000511:    5316           35321                           DCA      LGCL2CDR                              #  FOR THE REST OF LONGCALL
048883,000512:    5317           52006                           DTCB                                           
048884,000513: 
048885,000514:    5320  E3,1400                                  EBANK=   LST1                                  
048886,000515:    5320           03455 02063  LGCL2CDR           2CADR    LNGCALL2                              
048887,000516: 
048888,000517:                                                                                                  #  *** THE FOLLOWING MAY BE IN A SWITCHED BANK, INCLUDING ITS ERASABLE ***
048889,000518: 
048890,000519: 01,3455                                           BANK     01                                    
048891,000520: 01,3455                                           COUNT*   $$/WAIT                               
048892,000521: 01,3455           23435        LNGCALL2           LXCH     LONGEXIT   +1                         #  SAVE THE CORRECT BB FOR RETURN
048893,000522: 01,3456           34752                           CA       TWO                                   #  OBTAIN THE RETURN ADDRESS
048894,000523: 01,3457           26002                           ADS      Q                                     
048895,000524: 01,3460           55434                           TS       LONGEXIT                              
048896,000525: 
048897,000526: 01,3461           31152                           CA       LONGTIME                              #  CHECK FOR LEGITIMATE DELTA-TIME
048898,000527: 01,3462           10000                           CCS      A                                     
048899,000528: 01,3463           13471                           TCF      LONGCYCL                              #  HI-ORDER OK --> ALL IS OK.
048900,000529: 01,3464           13466                           TCF      +2                                    #  HI-ORDER ZERO --> CHECK LO-ORDER.
048901,000530: 01,3465           13523                           TCF      LONGPOOH                              #  HI-ORDER NEG. --> NEG. DT
048902,000531: 01,3466           31153                 +2        CA       LONGTIME   +1                         #  CHECK LO-ORDER FOR ZERO OR NEGATIVE.
048903,000532: 01,3467           00006                           EXTEND                                         
048904,000533: 01,3470           63523                           BZMF     LONGPOOH                              #  BAD DELTA-TIME.  ABORT
048905,000534: 
048906,000535:                                                                                                  #           *** WAITLIST TASK LONGCYCL ***
048907,000536: 01,3471           00006        LONGCYCL           EXTEND                                         #  CAN WE SUCCESFULLY TAKE ABOUT 1.25
048908,000537: 01,3472           43503                           DCS      DPBIT14                               #  MINUTES OFF OF LONGTIME
048909,000538: 01,3473           21153                           DAS      LONGTIME                              
048910,000539: 
048911,000540: 01,3474           11153                           CCS      LONGTIME   +1                         #  THE REASONIBG BEHIND THIS PART IS
048912,000541: 01,3475           13513                           TCF      MUCHTIME                              #  INVOLVED, TAKING INTO ACCOUNT THAT THE
048913,000542:                                                                                                  #  WORDS MAY NOT BE SIGNED CORRECTED (DP
048914,000543:                                                                                                  #  BASIC INSTRUCTIONS
048915,000544:                                                                                                  #  DO NOT SIGN CORRECT) AND THAT WE SUBTRAC
048916,000545:                                                                                                  #  TED BIT14 (1 OVER HALF THE POS. VALUE
048917,000546:                                                                                                  #  REPRESENTIBLE IN SINGLE WORD)
048918,000547: 01,3476           13477                           NOOP                                           #  CAN:T GET HERE    **********
048919,000548: 01,3477           13500                           TCF      +1                                    
048920,000549: 01,3500           11152                           CCS      LONGTIME                              
048921,000550: 01,3501           13513                           TCF      MUCHTIME                              
048922,000551: 01,3502           00000        DPBIT14            OCT      00000                                 
048923,000552: 01,3503           20000                           OCT      20000                                 
048924,000553:                                                                                                  #  LONGCALL
048925,000554: 

Page 1123

048927,000556: 01,3504           34736        LASTTIME           CA       BIT14                                 #  GET BACK THE CORRECT DELTA TFOR WAITLIST
048928,000557: 01,3505           27153                           ADS      LONGTIME   +1                         
048929,000558: 01,3506           05204                           TC       TWIDDLE                               
048930,000559: 01,3507  E3,1400                                  EBANK=   LST1                                  
048931,000560: 01,3507           03520                           ADRES    GETCADR                               
048932,000561: 01,3510           33522        LONGRTRN           CA       TSKOVCDR                              #  SET IT UP SO THAT ONLY THE FIRST EXIT IS
048933,000562: 01,3511           53435                           DXCH     LONGEXIT                              #  TO THE CALLER OF LONGCALL
048934,000563: 01,3512           52006                           DTCB                                           #  THE REST ARE TO TASKOVER
048935,000564: 
048936,000565: 01,3513           34736        MUCHTIME           CA       BIT14                                 #  WE HAVE OVER OUR ABOUT 1.25 MINUTES
048937,000566: 01,3514           05214                           TC       WAITLIST                              #  SO SET UP FOR ANOTHER CYCLE THROUGH HERE
048938,000567: 01,3515  E3,1400                                  EBANK=   LST1                                  
048939,000568: 01,3515           03471 02063                     2CADR    LONGCYCL                              
048940,000569: 
048941,000570: 
048942,000571: 01,3517           13510                           TCF      LONGRTRN                              #  NOW EXIT PROPERLY
048943,000572: 
048944,000573:                                                                                                  #           *** WAITLIST TASK GETCADR ***
048945,000574: 01,3520           53147        GETCADR            DXCH     LONGCADR                              #  GET THE LONGCALL THAT WE WISHED TO START
048946,000575: 01,3521           15176                           TCF      SUPDXCHZ                              #  AND TRANSFER CONTROL
048947,000576: 01,3522           05272        TSKOVCDR           GENADR   TASKOVER                              
048948,000577: 01,3523           53435        LONGPOOH           DXCH     LONGEXIT                              
048949,000578: 01,3524           13526                           TCF      +2                                    
048950,000579: 01,3525           52062        WAITPOOH           DXCH     WAITEXIT                              
048951,000580: 01,3526           05727                 +2        TC       POODOO1                               
048952,000581: 01,3527           21204                           OCT      21204                                 

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