Source Code

These source-code files were obtained by digitally photographing an Artemis 72 program listing from a private collection and then modifying pre-existing Comanche 55 (Apollo 11) source files to incorporate changes. Note that the page images presented online are of reduced quality, and that additional images may be 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 072 OF AGC PROGRAM ARTEMIS 
	BY NASA 2021114-011 11:40 FEB. 26, 1971

	THIS AGC PROGRAM SHALL ALSO BE REFERRED TO AS
				COLOSSUS 3
	THIS PROGRAM IS INTENDED FOR USE IN THE CM AS SPECIFIED
	IN REPORT R-577.  THIS PROGRAM WAS PREPARED UNDER OSR
	PROJECT 55-23890, SPONSORED BY THE MANNED SPACECRAFT
	CENTER OF THE NATIONAL AERONAUTICS AND SPACE
	ADMINISTRATION THROUGH CONTRACT NAS 9-4065 WITH THE
	CHARLES STARK DRAPER LABORATORY, MASSACHUSETTS INSTITUTE OF
	TECHNOLOGY, CAMBRIDGE, MASS.

052089,000002:                                                                                                 #  Copyright:     Public domain.
052090,000003:                                                                                                 #  Filename:      WAITLIST.agc
052091,000004:                                                                                                 #  Purpose:       Part of the source code for Artemis (i.e., Colossus 3),
052092,000005:                                                                                                 #                 build 072.  This is for the Command Module's (CM)
052093,000006:                                                                                                 #                 Apollo Guidance Computer (AGC), we believe for
052094,000007:                                                                                                 #                 Apollo 15-17.
052095,000008:                                                                                                 #  Assembler:     yaYUL
052096,000009:                                                                                                 #  Contact:       Jim Lawton <jim DOT lawton AT gmail DOT com>
052097,000010:                                                                                                 #  Website:       www.ibiblio.org/apollo/index.html
052098,000011:                                                                                                 #  Page scans:    www.ibiblio.org/apollo/ScansForConversion/Artemis072/
052099,000012:                                                                                                 #  Mod history:   2009-08-29 JL   Adapted from corresponding Comanche 055 file.
052100,000013:                                                                                                 #                 2010-02-20 RSB  Un-##'d this header.
052101,000014:                                                                                                 #                 2010-04-04 JL   Added missing # comment delimitera.
052102,000015:                                                                                                 #                 2011-05-07 JL   Removed workarounds.
052103,000016: 
052104,000017:                                                                                                 # # Page 1221
052105,000018: 
052106,000019:                                                                                                 #  PROGRAM DESCRIPTION                                                            DATE - 10 OCTOBER 1966
052107,000020:                                                                                                 #  MOD NO - 2                                                                     LOG SECTION - WAITLIST
052108,000021:                                                                                                 #  MOD BY - MILLER        (DTMAX INCREASED TO 162.5 SEC)                          ASSEMBLY SUNBURST REV 5
052109,000022:                                                                                                 #  MOD 3 BY KERNAN        (INHINT INSERTED AT WAITLIST) 2/28/68 SKIPPER REV 4
052110,000023:                                                                                                 #  MOD 4 BY KERNAN        (TWIDDLE IN 54) 3/28/68 SKIPPER REV 13.
052111,000024: 
052112,000025:                                                                                                 #  FUNCTIONAL DESCRIPTION-
052113,000026:                                                                                                 #         PART OF A SECTION OF PROGRAMS,-WAITLIST, TASKOVER, T3RUPT, USED TO CALL A PROGRAM, (CALLED A TASK),
052114,000027:                                                                                                 #         WHICH IS TO BEGIN IN C(A) CENTISECONDS.  WAITLIST UPDATES TIME3, LST1, AND LST2. THE MEANING OF THESE LISTS
052115,000028:                                                                                                 #         FOLLOW.
052116,000029: 
052117,000030:                                                                                                 #                 C(TIME3) = 16384 -(T1-T) CENTISECONDS, (T=PRESENT TIME, T1-TIME FOR TASK1)
052118,000031: 
052119,000032:                                                                                                 #                         C(LST1)         =       -(T2-T1)+1
052120,000033:                                                                                                 #                         C(LST1 +1)      =       -(T3-T2)+1
052121,000034:                                                                                                 #                         C(LST1 +2)      =       -(T4-T3)+1
052122,000035:                                                                                                 #                                         .
052123,000036:                                                                                                 #                                         .
052124,000037:                                                                                                 #                         C(LST1 +6)      =       -(T8-T7)+1
052125,000038:                                                                                                 #                         C(LST1 +7)      =       -(T9-T8)+1
052126,000039: 
052127,000040:                                                                                                 #                         C(LST2)         =       2CADR OF TASK1
052128,000041:                                                                                                 #                         C(LST2 +2)      =       2CADR OF TASK2
052129,000042:                                                                                                 #                                         .
052130,000043:                                                                                                 #                                         .
052131,000044:                                                                                                 #                         C(LST2 +14)     =       2CADR OF TASK8
052132,000045:                                                                                                 #                         C(LST2 +16)     =       2CADR OF TASK9
052133,000046: 
052134,000047:                                                                                                 #  WARNINGS-
052135,000048:                                                                                                 #  --------
052136,000049:                                                                                                 #                 1) 1 <= C(A) <= 16250D (1 CENTISCOND TO 162.5 SEC)
052137,000050:                                                                                                 #                 2) 9 TASKS MAXIMUM
052138,000051:                                                                                                 #                 3) TASKS CALLED UNDER INTERRUPT INHIBITED
052139,000052:                                                                                                 #                 4) TASKS END BY TC TASKOVER
052140,000053: 
052141,000054:                                                                                                 #  CALLING SEQUENCE-
052142,000055:                                                                                                 #  
052143,000056:                                                                                                 #                 L-1     CA      DELTAT  (TIME IN CENTISECONDS TO TASK START)
052144,000057:                                                                                                 #                 L       TC      WAITLIST
052145,000058:                                                                                                 #                 L+1     2CADR   DESIRED TASK
052146,000059:                                                                                                 #                 L+2     (MINOR OF 2CADR)
052147,000060:                                                                                                 #                 L+3     RELINT          (RETURNS HERE)
052148,000061: 
052149,000062:                                                                                                 #  TWIDDLE-
052150,000063:                                                                                                 #         TWIDDLE IS FOR USE WHEN THE TASK BEING SET UP IS IN THE SAME EBANK AND FBANK AS THE USER.  IN
052151,000064:                                                                                                 #         SUCH CASES, IT IMPROVES UPON WAITLIST BY ELIMINATING THE NEED FOR THE BBCON HALF OF THE 2CADR,
052152,000065:                                                                                                 # # Page 1222
052153,000066:                                                                                                 #         SAVING A WORD.  TWIDDLE IS LIKE WAITLIST IN EVERY RESPECT EXCEPT CALLING SEQUENCE, TO WIT-
052154,000067: 
052155,000068:                                                                                                 #                 L-1     CA      DELTAT
052156,000069:                                                                                                 #                 L       TC      TWIDDLE
052157,000070:                                                                                                 #                 L+1     ADRES   DESIRED TASK
052158,000071:                                                                                                 #                 L+2     RELINT                  (RETURNS HERE)
052159,000072: 
052160,000073:                                                                                                 #  NORMAL EXIT MODES-
052161,000074: 
052162,000075:                                                                                                 #                 AT L+3 OF CALLING SEQUENCE.
052163,000076: 
052164,000077:                                                                                                 #  ALARM OR ABORT EXIT MODES-
052165,000078: 
052166,000079:                                                                                                 #                 TC      ABORT
052167,000080:                                                                                                 #                 OCT     1203    (WAITLIST OVERFLOW - TOO MANY TASKS)
052168,000081: 
052169,000082:                                                                                                 #  ERASABLE INITIALIZATION REQUIRED
052170,000083:                                                                                                 # -
052171,000084:                                                                                                 #                 ACCOMPLISHED BY FRESH START,--LST2,...,LST2 +16 = ENDTASK
052172,000085:                                                                                                 #                                               LST1,...,LST1 +7  = NEG1/2
052173,000086: 
052174,000087:                                                                                                 #  OUTPUT--
052175,000088:                                                                                                 #                 LST1 AND LST2 UPDATED WITH NEW TASK AND ASSOCIATED TIME.
052176,000089: 
052177,000090:                                                                                                 #  DEBRIS-
052178,000091: 
052179,000092:                                                                                                 #                 CENTRALS - A,Q,L
052180,000093:                                                                                                 #                 OTHER    - WAITEXIT, WAITADR, WAITTEMP, WAITBANK
052181,000094: 
052182,000095:                                                                                                 #  DETAILED ANALYSIS OF TIMING-
052183,000096: 
052184,000097:                                                                                                 #         CONTROL WILL NOT BE RETURNED TO THE SPECIFIED ADDRESS (2CADR) IN EXACTLY DELTA T CENTISECONDS.
052185,000098:                                                                                                 #         THE APPROXIMATE TIME MAY BE CALCULATED AS FOLLOWS:
052186,000099:                                                                                                 #                         LET T0 = THE TIME OF THE TC WAITLIST
052187,000100:                                                                                                 #                         LET TS = T0 +147U + COUNTER INCREMENTS (SET UP TIME)
052188,000101:                                                                                                 #                         LET X  = TS -(100TS)/100  (VARIANCE FROM COUNTERS)
052189,000102:                                                                                                 #                         LET Y  = LENGTH OF TIME OF INHIBIT INTERRUPT AFTER T3RUPT
052190,000103:                                                                                                 #                         LET Z  = LENGTH OF TIME TO PROCESS TASKS WHICH ARE DUE THIS T3RUPT BUT DISPATCHED EARLIER.
052191,000104:                                                                                                 #         (Z=0, USUALLY).
052192,000105:                                                                                                 #                         LET DELTD = THE ACTUAL TIME TAKEN TO GIVE CONTROL TO 2CADR
052193,000106:                                                                                                 #                 THEN DELTD = TS+DELTA T -X +Y +Z +1.05MS* +COUNTERS*
052194,000107:                                                                                                 #         *-THE TIME TAKEN BY WAITLIST ITSELF AND THE COUNTER TICKING DURING THIS WAITLIST TIME.
052195,000108: 
052196,000109:                                                                                                 #         IN SHORT, THE ACTUAL TIME TO RETURN CONTROL TO A 2CADR IS AUGMENTED BY THE TIME TO SET UP THE TASK'S
052197,000110:                                                                                                 #         INTERRUPT, ALL COUNTERS TICKING, THE T3RUPT PROCESSING TIME, THE WAITLIST PROCESSING TIME AND THE POSSIBILITY
052198,000111:                                                                                                 #         OF OTHER TASKS INHIBITING THE INTERRUPT.
052199,000112: 
052200,000113:    4000                                          SETLOC   WAITF2                                
052201,000114:                                                                                                 # # Page 1223
052202,000115:    4000                                          BANK                                           
052203,000116: 
052204,000117:    5222  E3,1400                                 EBANK=   LST1                                  #  TASK LISTS IN SWITCHED E BANK.
052205,000118: 
052206,000119:    5222                                          COUNT*   $$/WAIT                               
052207,000120:    5222           34770        TWIDBIT1          CAF      ONE                                   
052208,000121:    5223           00004        TWIDDLE           INHINT                                         
052209,000122:    5224           54001                          TS       L                                     #  SAVE DELAY TIME IN L
052210,000123:    5225           34750                          CA       POSMAX                                
052211,000124:    5226           26002                          ADS      Q                                     #  CREATING OVERFLOW AND Q-1 IN Q
052212,000125:    5227           30006                          CA       BBANK                                 
052213,000126:    5230           00006                          EXTEND                                         
052214,000127:    5231           04007                          ROR      SUPERBNK                              
052215,000128:    5232           56001                          XCH      L                                     
052216,000129: 
052217,000130:    5233           00004        WAITLIST          INHINT                                         
052218,000131:    5234           00006                          EXTEND                                         
052219,000132:    5235           65247                          BZMF     WATLST0-                              
052220,000133:    5236           56002                          XCH      Q                                     #  SAVE DELTA T IN Q AND RETURN IN
052221,000134:    5237           54061                          TS       WAITEXIT                              #  WAITEXIT.
052222,000135:    5240           00006                          EXTEND                                         
052223,000136:    5241           50061                          INDEX    WAITEXIT                              #  IF TWIDDLING, THE TS SKIPS TO HERE
052224,000137:    5242           30001                          DCA      0                                     #  PICK UP 2CADR OF TASK.
052225,000138:    5243           54063                 -1       TS       WAITADR                               #  BBCON WILL REMAIN IN L
052226,000139:    5244           35254        DLY2              CAF      WAITBB                                #  ENTRY FROM FIXDELAY AND VARDELAY.
052227,000140:    5245           56006                          XCH      BBANK                                 
052228,000141:    5246           13213                          TCF      WAIT2                                 
052229,000142: 
052230,000143:    5247           05726        WATLST0-          TC       POODOO                                
052231,000144:    5250           21204                          OCT      21204                                 
052232,000145: 
052233,000146:                                                                                                 #  RETURN TO CALLER AFTER TASK INSERTION:
052234,000147: 
052235,000148:    5251           52062        LVWTLIST          DXCH     WAITEXIT                              
052236,000149:    5252           64767                          AD       TWO                                   
052237,000150:    5253           52006                          DTCB                                           
052238,000151: 
052239,000152:    5254  E3,1400                                 EBANK=   LST1                                  
052240,000153:    5254           02063        WAITBB            BBCON    WAIT2                                 
052241,000154: 
052242,000155:                                                                                                 #  RETURN TO CALLER +2 AFTER WAITING DT SPECIFIED AT CALLER +1.
052243,000156: 
052244,000157:    5255           50002        FIXDELAY          INDEX    Q                                     #  BOTH ROUTINES MUST BE CALLED UNDER
052245,000158:    5256           30000                          CAF      0                                     #  WAITLIST CONTROL AND TERMINATE THE TASK
052246,000159:    5257           24002                          INCR     Q                                     #  IN WHICH THEY WERE CALLED.
052247,000160: 
052248,000161:                                                                                                 #  RETURN TO CALLER +1 AFTER WAITING THE DT AS ARRIVING IN A.
052249,000162: 
052250,000163:    5260           00006        VARDELAY          EXTEND                                         
052251,000164:    5261           65247                          BZMF     WATLST0-                              
052252,000165:                                                                                                 # # Page 1224
052253,000166:    5262           56002                          XCH      Q                                     
052254,000167:    5263           54063                          TS       WAITADR                               
052255,000168:    5264           30006                          CA       BBANK                                 #  BBANK IS SAVED DURING DELAY.
052256,000169:    5265           00006                          EXTEND                                         
052257,000170:    5266           04007                          ROR      SUPERBNK                              #  ADD SBANK TO BBCON.
052258,000171:    5267           54001                          TS       L                                     
052259,000172:    5270           35273                          CAF      DELAYEX                               
052260,000173:    5271           54061                          TS       WAITEXIT                              #  GO TO TASKOVER AFTER TASK ENTRY.
052261,000174:    5272           15244                          TCF      DLY2                                  
052262,000175: 
052263,000176:    5273           15312        DELAYEX           TCF      TASKOVER   -2                         #  RETURNS TO TASKOVER
052264,000177: 
052265,000178:                                                                                                 # # Page 1225
052266,000179:                                                                                                 #  ENDTASK MUST BE ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
052267,000180: 
052268,000181:    5274  E3,1400                                 EBANK=   LST1                                  
052269,000182:    5274           72501 73714  ENDTASK           -2CADR   SVCT3                                 
052270,000183: 
052271,000184:    5276           30076        SVCT3             CA       FLAGWRD2                              
052272,000185:    5277           74752                          MASK     DRFTBIT                               
052273,000186:    5300           00006                          EXTEND                                         
052274,000187:    5301           15314                          BZF      TASKOVER                              
052275,000188:    5302           11335                          CCS      IMUCADR                               #  DON'T DO NBDONLY IF SOMEONE ELSE IS IN
052276,000189:    5303           17703                          TCF      SVCT3X                                
052277,000190:    5304           15307                          TCF      +3                                    
052278,000191:    5305           17703                          TCF      SVCT3X                                
052279,000192:    5306           17703                          TCF      SVCT3X                                
052280,000193:    5307           37657                 +3       CAF      PRIO35                                #  COMPENSATE FOR NBD COEFFICIENTS ONLY.
052281,000194:    5310           05121        NOVACADR          TC       NOVAC                                 #  ENABLE EVERY 81.93 SECONDS (=GENADR)
052282,000195:    5311  E3,1460                                 EBANK=   NBDX                                  
052283,000196:    5311           03561 14063                    2CADR    NBDONLY                               
052284,000197: 
052285,000198:    5313           05314        TSKOVCDR          TC       TASKOVER                              #  (=GENADR)
052286,000199:    6000                                          SETLOC   FFTAG6                                
052287,000200:    6000                                          BANK                                           
052288,000201: 
052289,000202:    7703                                          COUNT*   $$/WAIT                               
052290,000203:    7703           05255        SVCT3X            TC       FIXDELAY                              #  DELAY MAX OF 2 TIMES FOR IMU ZERO
052291,000204:    7704           00764        DEC500            DEC      500        B-14                       #  MUST COME AFTER SVCT3X
052292,000205:    7705           05276                          TC       SVCT3                                 #  CHECK DRIFT FLAG AGAIN
052293,000206: 
052294,000207:                                                                                                 # # Page 1226
052295,000208:                                                                                                 #  BEGIN TASK INSERTION.
052296,000209: 
052297,000210: 01,2000                                          SETLOC   EXECB1                                
052298,000211: 01,2000                                          BANK                                           
052299,000212: 
052300,000213: 01,3213                                          COUNT*   $$/WAIT                               
052301,000214: 01,3213           54062        WAIT2             TS       WAITBANK                              #  BBANK OF CALLING PROGRAM.
052302,000215: 01,3214           40026                          CS       TIME3                                 
052303,000216: 01,3215           64761                          AD       BIT8                                  #  BIT 8 = OCT 200
052304,000217: 01,3216           10000                          CCS      A                                     #  TEST 200 - C(TIME3).  IF POSITIVE,
052305,000218:                                                                                                 #  IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS TIME3 AND THAT
052306,000219:                                                                                                 #  C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T).  THE FOLLOWING FOUR
052307,000220:                                                                                                 #  ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
052308,000221: 
052309,000222: 01,3217           66056                          AD       OCT40001                              #  OVERFLOW HAS OCCURRED.  SET C(A) =
052310,000223: 01,3220           40000                          CS       A                                     #  T - T1 + 1.0 - 201
052311,000224: 
052312,000225:                                                                                                 #  NORMAL CASE (C(A) NNZ) YIELDS SAME C(A):  -( -(1.0-(T1-T)) + 200) - 1
052313,000226: 
052314,000227: 01,3221           63117                          AD       OCT40201                              
052315,000228: 01,3222           60002                          AD       Q                                     #  RESULT = TD - T1 + 1.
052316,000229: 
052317,000230: 01,3223           10000                          CCS      A                                     #  TEST TD - T1 + 1.
052318,000231: 
052319,000232: 01,3224           61400                          AD       LST1                                  #  IF TD - T1 POS, GO TO WTLST5 WITH
052320,000233: 01,3225           13267                          TCF      WTLST5                                #  C(A) = (TD - T1) + C(LST1) = TD-T2+1
052321,000234: 
052322,000235: 01,3226           13227                          NOOP                                           
052323,000236: 01,3227           40002                          CS       Q                                     
052324,000237: 
052325,000238:                                                                                                 #  NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
052326,000239:                                                                                                 #  SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1.  (G/E
052327,000240:                                                                                                 #  SYMBOL MEANS GREATER THAN OR EQUAL TO).  THUS THERE NEED BE NO CON-
052328,000241:                                                                                                 #  CERN OVER A PREVIOUS OR IMMINENT OVEFLOW OF TIME3 HERE.
052329,000242: 
052330,000243: 01,3230           64753                          AD       POS1/2                                #  WHEN TD IS NEXT, FORM QUANTITY
052331,000244: 01,3231           64753                          AD       POS1/2                                #    1.0 - DELTA T = 1.0 - (TD - T)
052332,000245: 01,3232           56026                          XCH      TIME3                                 
052333,000246: 01,3233           64752                          AD       NEGMAX                                
052334,000247: 01,3234           60002                          AD       Q                                     #  1.0 - DELTAT T NOW COMPLETE.
052335,000248: 01,3235           00006                          EXTEND                                         #  ZERO INDEX Q.
052336,000249: 01,3236           22007                          QXCH     7                                     #  (ZQ)
052337,000250: 
052338,000251:                                                                                                 # # Page 1227
052339,000252: 01,3237           57400        WTLST4            XCH      LST1                                  
052340,000253: 01,3240           57401                          XCH      LST1       +1                         
052341,000254: 01,3241           57402                          XCH      LST1       +2                         
052342,000255: 01,3242           57403                          XCH      LST1       +3                         
052343,000256: 01,3243           57404                          XCH      LST1       +4                         
052344,000257: 01,3244           57405                          XCH      LST1       +5                         
052345,000258: 01,3245           57406                          XCH      LST1       +6                         
052346,000259: 01,3246           57407                          XCH      LST1       +7                         
052347,000260: 
052348,000261: 01,3247           30063                          CA       WAITADR                               #  (MINOR PART OF TASK CADR HAS BEEN IN L.)
052349,000262: 01,3250           50002                          INDEX    Q                                     
052350,000263: 01,3251           13252                          TCF      +1                                    
052351,000264: 
052352,000265: 01,3252           53411                          DXCH     LST2                                  
052353,000266: 01,3253           53413                          DXCH     LST2       +2                         
052354,000267: 01,3254           53415                          DXCH     LST2       +4                         
052355,000268: 01,3255           53417                          DXCH     LST2       +6                         
052356,000269: 01,3256           53421                          DXCH     LST2       +8D                        
052357,000270: 01,3257           53423                          DXCH     LST2       +10D                       #  AT END, CHECK THAT C(LST2+10) IS STD
052358,000271: 01,3260           53425                          DXCH     LST2       +12D                       
052359,000272: 01,3261           53427                          DXCH     LST2       +14D                       
052360,000273: 01,3262           53431                          DXCH     LST2       +16D                       
052361,000274: 01,3263           65274                          AD       ENDTASK                               #    END ITEM, AS CHECK FOR EXCEEDING
052362,000275:                                                                                                 #    THE LENGTH OF THE LIST.
052363,000276: 01,3264           00006                          EXTEND                                         #  DUMMY TASK ADRES SHOULD BE IN FIXED-
052364,000277: 01,3265           15251                          BZF      LVWTLIST                              #  FIXED SO ITS ADRES ALONE DISTINGUISHES
052365,000278: 01,3266           13342                          TCF      WTABORT                               #  IT.
052366,000279: 
052367,000280:                                                                                                 # # Page 1228
052368,000281: 01,3267           10000        WTLST5            CCS      A                                     #  TEST TD - T2 + 1
052369,000282: 01,3270           61401                          AD       LST1       +1                         
052370,000283: 01,3271           13275                          TCF      +4                                    
052371,000284: 01,3272           64770                          AD       ONE                                   
052372,000285: 01,3273           03347                          TC       WTLST2                                
052373,000286: 01,3274           00001                          OCT      1                                     
052374,000287: 
052375,000288: 01,3275           10000                 +4       CCS      A                                     #  TEST TD - T3 + 1
052376,000289: 01,3276           61402                          AD       LST1       +2                         
052377,000290: 01,3277           13303                          TCF      +4                                    
052378,000291: 01,3300           64770                          AD       ONE                                   
052379,000292: 01,3301           03347                          TC       WTLST2                                
052380,000293: 01,3302           00002                          OCT      2                                     
052381,000294: 
052382,000295: 01,3303           10000                 +4       CCS      A                                     #  TEST TD - T4 + 1
052383,000296: 01,3304           61403                          AD       LST1       +3                         
052384,000297: 01,3305           13311                          TCF      +4                                    
052385,000298: 01,3306           64770                          AD       ONE                                   
052386,000299: 01,3307           03347                          TC       WTLST2                                
052387,000300: 01,3310           00003                          OCT      3                                     
052388,000301: 
052389,000302: 01,3311           10000                 +4       CCS      A                                     #  TEST TD - T5 + 1
052390,000303: 01,3312           61404                          AD       LST1       +4                         
052391,000304: 01,3313           13317                          TCF      +4                                    
052392,000305: 01,3314           64770                          AD       ONE                                   
052393,000306: 01,3315           03347                          TC       WTLST2                                
052394,000307: 01,3316           00004                          OCT      4                                     
052395,000308: 
052396,000309: 01,3317           10000                 +4       CCS      A                                     #  TEST TD - T6 + 1
052397,000310: 01,3320           61405                          AD       LST1       +5                         
052398,000311: 01,3321           13325                          TCF      +4                                    
052399,000312: 01,3322           64770                          AD       ONE                                   
052400,000313: 01,3323           03347                          TC       WTLST2                                
052401,000314: 01,3324           00005                          OCT      5                                     
052402,000315: 
052403,000316: 01,3325           10000                 +4       CCS      A                                     #  TEST TD - T7 + 1
052404,000317: 01,3326           61406                          AD       LST1       +6                         
052405,000318: 01,3327           13333                          TCF      +4                                    
052406,000319: 01,3330           64770                          AD       ONE                                   
052407,000320: 01,3331           03347                          TC       WTLST2                                
052408,000321: 01,3332           00006                          OCT      6                                     
052409,000322: 
052410,000323:                                                                                                 # # Page 1229
052411,000324: 01,3333           10000                 +4       CCS      A                                     
052412,000325: 01,3334           61407                          AD       LST1       +7                         
052413,000326: 01,3335           13341                          TCF      +4                                    
052414,000327: 01,3336           64770                          AD       ONE                                   
052415,000328: 01,3337           03347                          TC       WTLST2                                
052416,000329: 01,3340           00007                          OCT      7                                     
052417,000330: 
052418,000331: 01,3341           10000                 +4       CCS      A                                     
052419,000332: 01,3342           07706        WTABORT           TC       BAILOUT                               #  NO ROOM IN THE INN.
052420,000333: 01,3343           31203                          OCT      31203                                 
052421,000334: 
052422,000335: 01,3344           64770                          AD       ONE                                   
052423,000336: 01,3345           03347                          TC       WTLST2                                
052424,000337: 01,3346           00010                          OCT      10                                    
052425,000338: 
052426,000339:                                                                                                 # # Page 1230
052427,000340:                                                                                                 #  THE ENTRY TO WTLST2 JUST PRECEDING OCT  N  IS FOR T  LE TD LE T   -1.
052428,000341:                                                                                                 #                                                     N           N+1
052429,000342: 
052430,000343:                                                                                                 #  (LE MEANS LESS THAN OR EQUAL TO).  AT ENTRY, C(A) = -(TD - T   + 1)
052431,000344:                                                                                                 #                                                              N+1
052432,000345: 
052433,000346:                                                                                                 #  THE LST1 ENTRY -(T   -T +1) IS TO BE REPLACED BY -(TD - T + 1), AND
052434,000347:                                                                                                 #                    N+1  N                                 N
052435,000348: 
052436,000349:                                                                                                 #  THE ENTRY -(T   - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
052437,000350:                                                                                                 #               N+1
052438,000351: 
052439,000352: 01,3347           54064        WTLST2            TS       WAITTEMP                              #  C(A) = -(TD - T + 1)
052440,000353: 01,3350           50002                          INDEX    Q                                     
052441,000354: 01,3351           30000                          CAF      0                                     
052442,000355: 01,3352           54002                          TS       Q                                     #  INDEX VALUE INTO Q.
052443,000356: 
052444,000357: 01,3353           34770                          CAF      ONE                                   
052445,000358: 01,3354           60064                          AD       WAITTEMP                              
052446,000359: 01,3355           50002                          INDEX    Q                                     #  C(A) = -(TD - T ) + 1.
052447,000360: 01,3356           27377                          ADS      LST1       -1                         #                 N
052448,000361: 
052449,000362: 01,3357           40064                          CS       WAITTEMP                              
052450,000363: 01,3360           50002                          INDEX    Q                                     
052451,000364: 01,3361           13237                          TCF      WTLST4                                
052452,000365: 
052453,000366:                                                                                                 #  C(LST1  ) = - (T2 - T1) + 1
052454,000367:                                                                                                 #  C(LST1+1) = - (T3 - T2) + 1
052455,000368:                                                                                                 #  C(LST1+2) = - (T4 - T3) + 1
052456,000369:                                                                                                 #  C(LST1+3) = - (T5 - T4) + 1
052457,000370:                                                                                                 #  C(LST1+4) = - (T6 - T5) + 1
052458,000371: 
052459,000372:                                                                                                 #  C(LST2   ) = 2CADR     TASK1
052460,000373:                                                                                                 #  C(LST2+2 ) = 2CADR     TASK2
052461,000374:                                                                                                 #  C(LST2+4 ) = 2CADR     TASK3
052462,000375:                                                                                                 #  C(LST2+6 ) = 2CADR     TASK4
052463,000376:                                                                                                 #  C(LST2+8 ) = 2CADR     TASK5
052464,000377:                                                                                                 #  C(LST2+10) = 2CADR     TASK6
052465,000378: 
052466,000379:                                                                                                 # # Page 1231
052467,000380:                                                                                                 #  ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
052468,000381: 
052469,000382: 01,3362           00006        T3RUPT            EXTEND                                         
052470,000383: 01,3363           04007                          ROR      SUPERBNK                              #  READ CURRENT SUPERBANK VALUE AND
052471,000384: 01,3364           54016                          TS       BANKRUPT                              #  SAVE WITH E AND F BANK VALUES.
052472,000385: 01,3365           00006                          EXTEND                                         
052473,000386: 01,3366           22012                          QXCH     QRUPT                                 
052474,000387: 
052475,000388: 01,3367           34751        T3RUPT2           CAF      NEG1/2                                #  DISPATCH WAITLIST TASK.
052476,000389: 01,3370           57407                          XCH      LST1       +7                         
052477,000390: 01,3371           57406                          XCH      LST1       +6                         
052478,000391: 01,3372           57405                          XCH      LST1       +5                         
052479,000392: 01,3373           57404                          XCH      LST1       +4                         #  1.  MOVE UP LST1 CONTENTS, ENTERING
052480,000393: 01,3374           57403                          XCH      LST1       +3                         #      A VALUE OF 1/2 +1 AT THE BOTTOM
052481,000394: 01,3375           57402                          XCH      LST1       +2                         #      FOR T6-T5, CORRESPONDING TO THE
052482,000395: 01,3376           57401                          XCH      LST1       +1                         #      INTERVAL 81.91 SEC FOR ENDTASK.
052483,000396: 01,3377           57400                          XCH      LST1                                  
052484,000397: 01,3400           64750                          AD       POSMAX                                #  2. SET T3 = 1.0 - T2 - T USING LIST 1.
052485,000398: 01,3401           26026                          ADS      TIME3                                 #  SO T3 WON'T TICK DURING UPDATE.
052486,000399: 01,3402           55137                          TS       RUPTAGN                               
052487,000400: 01,3403           44772                          CS       ZERO                                  
052488,000401: 01,3404           55137                          TS       RUPTAGN                               #  SETS RUPTAGN TO +1 ON OVERFLOW.
052489,000402: 
052490,000403: 01,3405           00006                          EXTEND                                         #  DISPATCH TASK.
052491,000404: 01,3406           45275                          DCS      ENDTASK                               
052492,000405: 01,3407           53431                          DXCH     LST2       +16D                       
052493,000406: 01,3410           53427                          DXCH     LST2       +14D                       
052494,000407: 01,3411           53425                          DXCH     LST2       +12D                       
052495,000408: 01,3412           53423                          DXCH     LST2       +10D                       
052496,000409: 01,3413           53421                          DXCH     LST2       +8D                        
052497,000410: 01,3414           53417                          DXCH     LST2       +6                         
052498,000411: 01,3415           53415                          DXCH     LST2       +4                         
052499,000412: 01,3416           53413                          DXCH     LST2       +2                         
052500,000413: 01,3417           53411                          DXCH     LST2                                  
052501,000414: 
052502,000415: 01,3420           56001                          XCH      L                                     
052503,000416: 01,3421           00006                          EXTEND                                         
052504,000417: 01,3422           01007                          WRITE    SUPERBNK                              #  SET SUPERBANK FROM BBCON OF 2CADR
052505,000418: 01,3423           56001                          XCH      L                                     #  RESTORE TO L FOR DXCH Z.
052506,000419: 01,3424           52006                          DTCB                                           
052507,000420: 
052508,000421:                                                                                                 # # Page 1232
052509,000422:                                                                                                 #  RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
052510,000423: 
052511,000424:    4000                                          SETLOC   WAITF2                                
052512,000425:    4000                                          BANK                                           
052513,000426: 
052514,000427:    5314                                          COUNT*   $$/WAIT                               
052515,000428:    5314           11137        TASKOVER          CCS      RUPTAGN                               #  IF +1 RETURN TO T3RUPT, IF -0 RESUME.
052516,000429:    5315           35254                          CAF      WAITBB                                
052517,000430:    5316           54006                          TS       BBANK                                 
052518,000431:    5317           13367                          TCF      T3RUPT2                               #  DISPATCH NEXT TASK IF IT WAS DUE.
052519,000432: 
052520,000433:    5320           30016                          CA       BANKRUPT                              
052521,000434:    5321           00006                          EXTEND                                         
052522,000435:    5322           01007                          WRITE    SUPERBNK                              #  RESTORE SUPERBANK BEFORE RESUME IS DONE
052523,000436: 
052524,000437:    5323           00006        RESUME            EXTEND                                         
052525,000438:    5324           22012                          QXCH     QRUPT                                 
052526,000439:    5325           30016        NOQRSM            CA       BANKRUPT                              
052527,000440:    5326           56006                 +1       XCH      BBANK                                 
052528,000441:    5327           52011        NOQBRSM           DXCH     ARUPT                                 
052529,000442:    5330           00003                          RELINT                                         
052530,000443:    5331           50017                          RESUME                                         
052531,000444: 
052532,000445:                                                                                                 # # Page 1233
052533,000446:                                                                                                 #  LONGCALL
052534,000447:                                                                                                 #  PROGRAM DESCRIPTION                                          DATE- 17 MARCH 1967
052535,000448:                                                                                                 #  PROGRAM WRITTEN BY W.H. VANDEVER                            LOG SECTION WAITLIST
052536,000449:                                                                                                 #  MOD BY- R. MELANSON TO ADD DOCUMENTATION               ASSEMBLY SUNDISK REV. 100
052537,000450: 
052538,000451:                                                                                                 #  FUNCTIONAL DESCRIPTION-
052539,000452:                                                                                                 #  LONGCALL IS CALLED WITH THE DELTA TIME ARRIVING IN A,L SCALED AS TIME2,TIME1 WITH THE 2CADR OF THE TASK
052540,000453:                                                                                                 #  IMMEDIATELY FOLLOWING THE TC LONGCALL.  FOR EXAMPLE, IT MIGHT BE DONE AS FOLLOWS WHERE TIMELOC IS THE NAME OF
052541,000454:                                                                                                 #  A DP REGISTER CONTAINING A DELTA TIME AND WHERE TASKTODO IS THE NAME OF THE LOCATION AT WHICH LONGCALL IS TO
052542,000455:                                                                                                 #  START
052543,000456: 
052544,000457:                                                                                                 #  CALLING SEQUENCE-
052545,000458:                                                                                                 #                                 EXTEND
052546,000459:                                                                                                 #                                 DCA     TIMELOC
052547,000460:                                                                                                 #                                 TC      LONGCALL
052548,000461:                                                                                                 #                                 2CADR   TASKTODO
052549,000462: 
052550,000463:                                                                                                 #  NORMAL EXIT MODE-
052551,000464:                                                                                                 #         1). TC    WAITLIST
052552,000465:                                                                                                 #         2). DTCB  (TC L+3 OF CALLING ROUTINE 1ST PASS THRU LONGCYCL)
052553,000466:                                                                                                 #         3). DTCB  (TO TASKOVER ON SUBSEQUENT PASSES THRU LONGCYCL)
052554,000467: 
052555,000468:                                                                                                 #  ALARM OR ABORT EXIT MODE-
052556,000469:                                                                                                 #         NONE
052557,000470: 
052558,000471:                                                                                                 #  OUTPUT-
052559,000472:                                                                                                 #         LONGTIME AND LONGTIME+1 = DELTA TIME
052560,000473:                                                                                                 #         LONGEXIT AND LONGEXIT+1 = RETURN 2CADR
052561,000474:                                                                                                 #         LONGCADR AND LONGCADR+1 = TASK 2CADR
052562,000475:                                                                                                 #         A = SINGLE PRECISION TIME FOR WAITLIST
052563,000476: 
052564,000477:                                                                                                 #  ERASABLE INITIALIZATION-
052565,000478:                                                                                                 #         A = MOST SIGNIFICANT PART OF DELTA TIME
052566,000479:                                                                                                 #         L = LEAST SIGNIFICANT PART OF DELTA TIME
052567,000480:                                                                                                 #         Q = ADDRESS OF 2CADR TASK VALUE
052568,000481: 
052569,000482:                                                                                                 #  DEBRIS-
052570,000483:                                                                                                 #         A,Q,L
052571,000484:                                                                                                 #         LONGCADR AND LONGCADR+1
052572,000485:                                                                                                 #         LONGEXIT AND LONGEXIT+1
052573,000486:                                                                                                 #         LONGTIME AND LONGTIME+1
052574,000487: 
052575,000488:                                                                                                 #  *** THE FOLLOWING IS TO BE IN FIXED-FIXED AND UNSWITCHED ERRASIBLE ***
052576,000489: 
052577,000490:    4000                                          SETLOC   WAITF2                                
052578,000491:    4000                                          BANK                                           
052579,000492: 
052580,000493:    5332                                          COUNT*   $$/WAIT                               
052581,000494:    5332  E3,1400                                 EBANK=   LST1                                  
052582,000495:                                                                                                 # # Page 1234
052583,000496:    5332           53305        LONGCALL          DXCH     LONGTIME                              #  OBTAIN THE DELTA TIME
052584,000497: 
052585,000498:    5333           00006                          EXTEND                                         #  OBTAIN THE 2CADR
052586,000499:    5334           50002                          NDX      Q                                     
052587,000500:    5335           30001                          DCA      0                                     
052588,000501:    5336           53301                          DXCH     LONGCADR                              
052589,000502: 
052590,000503:    5337           00006                          EXTEND                                         #  NOW GO TO THE APPROPRIATE SWITCHED BANK
052591,000504:    5340           35343                          DCA      LGCL2CDR                              #  FOR THE REST OF LONGCALL
052592,000505:    5341           52006                          DTCB                                           
052593,000506: 
052594,000507:    5342  E3,1400                                 EBANK=   LST1                                  
052595,000508:    5342           03425 02063  LGCL2CDR          2CADR    LNGCALL2                              
052596,000509: 
052597,000510:                                                                                                 #  *** THE FOLLOWING MAY BE IN A SWITCHED BANK, INCLUDING ITS ERASABLE ***
052598,000511: 
052599,000512: 01,2000                                          SETLOC   EXECB1                                
052600,000513: 01,2000                                          BANK                                           
052601,000514: 
052602,000515: 01,3425                                          COUNT*   $$/WAIT                               
052603,000516: 01,3425           23435        LNGCALL2          LXCH     LONGEXIT   +1                         #  SAVE THE CORRECT BB FOR RETURN
052604,000517: 01,3426           34767                          CA       TWO                                   #  OBTAIN THE RETURN ADDRESS
052605,000518: 01,3427           26002                          ADS      Q                                     
052606,000519: 01,3430           55434                          TS       LONGEXIT                              
052607,000520: 
052608,000521: 01,3431           11304        LGCLNGTM          CCS      LONGTIME                              #  TEST FOR NEG. TIME
052609,000522: 01,3432           13440                          TCF      LONGCYCL                              #  HI-ORDER POS...OK
052610,000523: 01,3433           13435                          TCF      +2                                    #            ZERO...TEST LO-ORDER
052611,000524: 01,3434           15247                          TCF      WATLST0-                              #            NEG...POODOO
052612,000525: 01,3435           31305                          CA       LONGTIME   +1                         #            ZERO...TEST LO-ORDER
052613,000526: 01,3436           00006                          EXTEND                                         
052614,000527: 01,3437           65247                          BZMF     WATLST0-                              #  LO-ORDER ZERO/NEG...POODOO
052615,000528: 
052616,000529:                                                                                                 #  *** WAITLIST TASK LONGCYCL ***
052617,000530: 
052618,000531: 01,3440           00006        LONGCYCL          EXTEND                                         #  CAN WE SUCCESFULLY TAKE ABOUT 1.25
052619,000532: 01,3441           43452                          DCS      DPBIT14                               #  MINUTES OFF OF LONGTIME
052620,000533: 01,3442           21305                          DAS      LONGTIME                              
052621,000534: 
052622,000535: 01,3443           11305                          CCS      LONGTIME   +1                         #  THE REASONING BEHIND THIS PART IS
052623,000536: 01,3444           13462                          TCF      MUCHTIME                              #  INVOLVED, TAKING INTO ACCOUNT THAT THE
052624,000537:                                                                                                 #  WORDS MAY NOT BE SIGNED CORRECTED (DP
052625,000538:                                                                                                 #  BASIC INSTRUCTIONS
052626,000539:                                                                                                 #  DO NOT SIGN CORRECT) AND THAT WE SUBTRAC-
052627,000540:                                                                                                 #  TED BIT14 (1 OVER HALF THE POS. VALUE
052628,000541:                                                                                                 #  REPRESENTABLE IN SINGLE WORD)
052629,000542: 01,3445           13446                          NOOP                                           #  CAN'T GET HERE **********
052630,000543: 01,3446           13447                          TCF      +1                                    
052631,000544: 01,3447           11304                          CCS      LONGTIME                              
052632,000545: 01,3450           13462                          TCF      MUCHTIME                              
052633,000546:                                                                                                 # # Page 1235
052634,000547: 01,3451           00000        DPBIT14           OCT      00000                                 
052635,000548: 01,3452           20000                          OCT      20000                                 
052636,000549: 
052637,000550:                                                                                                 #  LONGCALL
052638,000551: 01,3453           34753        LASTTIME          CA       BIT14                                 #  GET BACK THE CORRECT DELTA T FOR WAITLIST
052639,000552: 01,3454           27305                          ADS      LONGTIME   +1                         
052640,000553: 01,3455           05223                          TC       TWIDDLE                               
052641,000554: 01,3456           03142                          ADRES    GETCADR                               #  THE ENTRY TO OUR LONGCADR
052642,000555: 01,3457           35313        LONGRTRN          CA       TSKOVCDR                              #  SET IT UP SO THAT ONLY THE FIRST EXIT IS
052643,000556: 01,3460           53435                          DXCH     LONGEXIT                              #  TO THE CALLER OF LONGCALL
052644,000557: 01,3461           52006                          DTCB                                           #  THE REST ARE TO TASKOVER
052645,000558: 
052646,000559: 01,3462           34753        MUCHTIME          CA       BIT14                                 #  WE HAVE OVER OUR ABOUT 1.25 MINUTES
052647,000560: 01,3463           05233        WTLTCADR          TC       WAITLIST                              #  SO SET UP FOR ANOTHER CYCLE THRU HERE (=GENADR)
052648,000561: 01,3464  E3,1400                                 EBANK=   LST1                                  
052649,000562: 01,3464           03440 02063                    2CADR    LONGCYCL                              
052650,000563: 
052651,000564: 01,3466           13457                          TCF      LONGRTRN                              #  NOW EXIT PROPERLY

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