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,1970Note 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