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 Peter McDermott.
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: YUL SYSTEM FOR AGC: NEW PROGRAM SHEPATIN BY EYLES DEC 13, 1966 THIS PROGRAM WAS ASSEMBLED AS A VERSION OF REVISION 37 OF PROGRAM SUNBURST BY LEM GROUPNote that the date is the date of the printout, not the date of the program revision. |
044493,000002: ## Copyright: Public domain.
044494,000003: ## Filename: WAITLIST.agc
044495,000004: ## Purpose: A section of Sunburst revision 37, or Shepatin revision 0.
044496,000005: ## It is part of an early development version of the software
044497,000006: ## for Apollo Guidance Computer (AGC) on the unmanned Lunar
044498,000007: ## Module (LM) flight Apollo 5. Sunburst 37 was the program
044499,000008: ## upon which Don Eyles's offline development program Shepatin
044500,000009: ## was based; the listing herein transcribed was actually for
044501,000010: ## the equivalent revision 0 of Shepatin.
044502,000011: ## This file is intended to be a faithful transcription, except
044503,000012: ## that the code format has been changed to conform to the
044504,000013: ## requirements of the yaYUL assembler rather than the
044505,000014: ## original YUL assembler.
044506,000015: ## Reference: pp. 1001-1013
044507,000016: ## Assembler: yaYUL
044508,000017: ## Contact: Ron Burkey <info@sandroid.org>.
044509,000018: ## Website: www.ibiblio.org/apollo/index.html
044510,000019: ## Mod history: 2017-05-24 MAS Created from Sunburst 120.
044511,000020: ## 2017-06-03 TVB Transcribed.
044512,000021: ## 2017-06-15 HG Fix operator XCH -> TS
044513,000022: ## 2017-06-23 RSB Proofed comment text with
044514,000023: ## octopus/ProoferComments.
044515,000024:
Page 1001 |
044517,000026:
044518,000027: # PROGRAM DESCRIPTION DATE - 10 OCTOBER 1966
044519,000028: # MOD NO - 2 LOG SECTION - WAITLIST
044520,000029: # MOD BY - MILLER (DTMAX INCREASED TO 162.5 SEC) ASSEMBLY SUNBURST REV 5
044521,000030:
044522,000031: # FUNCTIONAL DESCRIPTION-
044523,000032: # PART OF A SECTION OF PROGRAMS,-WAITLIST, TASKOVER, T3RUPT, USED TO CALL A PROGRAM, (CALLED A TASK),
044524,000033: # WHICH IS TO BEGIN IN C(A) CENTISECONDS. WAITLIST UPDATES TIME3, LST1 AND LST2. THE MEANING OF THESE LISTS
044525,000034: # FOLLOW.
044526,000035:
044527,000036: # C(TIME3) = 16384 -(T1-T) CENTISECONDS, (T=PRESENT TIME, T1-TIME FOR TASK1)
044528,000037:
044529,000038: # C(LST1) = -(T2-T1)+1
044530,000039: # C(LST1 +1) = -(T3-T2)+1
044531,000040: # C(LST1 +2) = -(T4-T3)+1
044532,000041: # .
044533,000042: # .
044534,000043: # C(LST1 +6) = -(T8-T7)+1
044535,000044: # C(LST1 +7) = -(T9-T8)+1
044536,000045:
044537,000046: # C(LST2) = 2CADR OF TASK1
044538,000047: # C(LST2 +2) = 2CADR OF TASK2
044539,000048: # .
044540,000049: # .
044541,000050: # C(LST2 +14) = 2CADR OF TASK8
044542,000051: # C(LST2 +16) = 2CADR OF TASK9
044543,000052:
044544,000053: # WARNINGS-
044545,000054: # --------
044546,000055: # 1) 1 <= C(A) <= 16250D (1 CENTISECOND TO 162.5 SEC)
044547,000056: # 2) 9 TASKS MAXIMUM
044548,000057: # 3) TASKS CALLED UNDER INTERRUPT INHIBITED
044549,000058: # 4) TASKS END BY TC TASKOVER
044550,000059:
044551,000060: # CALLING SEQUENCE-
044552,000061: # L-2 CAF DELTAT (TIME IN CENTISECONDS TO TASK START)
044553,000062: # L-1 INHINT
044554,000063: # L TC WAITLIST
044555,000064: # L+1 2CADR DESIRED TASK
044556,000065: # L+2 (MINOR OF 2CADR)
044557,000066: # L+3 RELINT (RETURNS HERE)
044558,000067:
044559,000068: # NORMAL EXIT MODES-
044560,000069:
044561,000070: # AT L+3 OF CALLING SEQUENCE
044562,000071:
044563,000072: # ALARM OR ABORT EXIT MODES-
044564,000073:
Page 1002 |
044566,000075:
044567,000076: # TC ABORT
044568,000077: # OCT 1203 (WAITLIST OVERFLOW - TOO MANY TASKS)
044569,000078:
044570,000079: # ERASABLE INITIALIZATION REQUIRED-
044571,000080:
044572,000081: # ACCOMPLISHED BY FRESH START,--LST2,..., LST2 +16 =ENDTASK
044573,000082: # LST1,..., LST1 +7 =NEG1/2
044574,000083:
044575,000084: # OUTPUT--
044576,000085:
044577,000086: # LST1 AND LST2 UPDATED WITH NEW TASK AND ASSOCIATED TIME.
044578,000087:
044579,000088: # DEBRIS-
044580,000089:
044581,000090: # CENTRALS- A,Q,L
044582,000091: # OTHER - WAITEXIT, WAITADR, WAITTEMP, WAITBANK
044583,000092: # DETAILED ANALYSIS OF TIMING-
044584,000093:
044585,000094: # CONTROL WILL NOT BE RETURNED TO THE SPECIFIED ADDRESS (2CADR) IN EXACTLY DELTA T CENTISECONDS.
044586,000095: # THE APPROXIMATE TIME MAY BE CALCULATED AS FOLLOWS
044587,000096:
044588,000097: # LET TO = THE TIME OF THE TC WAITLIST
044589,000098: # LET TS = TO +147U + COUNTER INCREMENTS (SET UP TIME)
044590,000099: # LET X = TS -(100TS)/100 (VARIANCE FROM COUNTERS)
044591,000100: # LET Y = LENGTH OF TIME OF INHIBIT INTERRUPT AFTER T3RUPT
044592,000101: # LET Z = LENGTH OF TIME TO PROCESS TASKS WHICH ARE DUE THIS T3RUPT BUT DISPATCHED EARLIER.
044593,000102: # (Z=0, USUALLY)
044594,000103: # LET DELTD = THE ACTUAL TIME TAKEN TO GIVE CONTROL TO 2CADR
044595,000104: # THEN DELTD = TS+DELTA T -X +Y +Z +1.05MS* +COUNTERS*
044596,000105:
044597,000106: # *-THE TIME TAKEN BY WAITLIST ITSELF AND THE COUNTER TICKING DURING THIS WAITLIST TIME.
044598,000107:
044599,000108: # IN SHORT, THE ACTUAL TIME TO RETURN CONTROL TO A 2CADR IS AUGMENTED BY THE TIME TO SET UP THE TASK:S
044600,000109: # INTERRUPT, ALL COUNTERS TICKING, THE T3RUPT PROCESSING TIME, THE WAITLIST PROCESSING TIME AND THE POSSIBILITY
044601,000110: # OF OTHER TASKS INHIBITING THE INTERRUPT.
044602,000111:
044603,000112: 5701 BLOCK 02
044604,000113: 5701 E3,1400 EBANK= LST1 # TASK LISTS IN SWITCHED E BANK.
044605,000114:
044606,000115: 5701 56002 WAITLIST XCH Q # SAVE DELTA T IN Q AND RETURN IN
044607,000116: 5702 54061 TS WAITEXIT # WAITEXIT.
044608,000117: 5703 00006 EXTEND
044609,000118: 5704 50000 INDEX A
044610,000119: 5705 30001 DCA 0 # PICK UP 2CADR OF TASK.
044611,000120: 5706 54063 TS WAITADR # BBCON WILL REMAIN IN L.
044612,000121: 5707 35716 DLY2 CAF WAITBB # ENTRY FROM FIXDELAY AND VARDELAY.
044613,000122: 5710 56006 XCH BBANK
044614,000123: 5711 13360 TCF WAIT2
044615,000124:
044616,000125: # RETURN TO CALLER AFTER TASK INSERTION:
044617,000126:
Page 1003 |
044619,000128:
044620,000129: 5712 30062 LVWTLIST CA WAITBANK
044621,000130: 5713 54006 TS BBANK
044622,000131: 5714 50061 INDEX WAITEXIT
044623,000132: 5715 00002 TC 2
044624,000133:
044625,000134: 5716 E3,1400 EBANK= LST1
044626,000135: 5716 02003 WAITBB BBCON WAIT2
044627,000136:
044628,000137: # RETURN TO CALLER +2 AFTER WAITING DT SPECIFIED AT CALLER +1.
044629,000138:
044630,000139: 5717 50002 FIXDELAY INDEX Q # BOTH ROUTINES MUST BE CALLED UNDER
044631,000140: 5720 30000 CAF 0 # WAITLIST CONTROL AND TERMINATE THE TASK
044632,000141: 5721 24002 INCR Q # IN WHICH THEY WERE CALLED.
044633,000142:
044634,000143: # RETURN TO CALLER +1 AFTER WAITING THE DT AS ARRIVING IN A.
044635,000144:
044636,000145: 5722 56002 VARDELAY XCH Q # DT TO Q. TASK ADRES TO WAITADR.
044637,000146: 5723 54063 TS WAITADR
044638,000147: 5724 30006 CA BBANK # BBANK IS SAVED DURING DELAY.
044639,000148: 5725 54001 TS L
044640,000149: 5726 35731 CAF DELAYEX
044641,000150: 5727 54061 TS WAITEXIT # GO TO TASKOVER AFTER TASK ENTRY.
044642,000151: 5730 15707 TCF DLY2
044643,000152:
044644,000153: 5731 15743 DELAYEX TCF TASKOVER -2 # RETURNS TO TASKOVER
044645,000154:
Page 1004 |
044647,000156:
044648,000157: # ENDTASK MUST BE ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
044649,000158:
044650,000159: 5732 E3,1400 EBANK= LST1
044651,000160: 5732 72043 73774 ENDTASK -2CADR SVCT3
044652,000161:
044653,000162: 5734 10076 SVCT3 CCS FLAGWRD2 # DRIFT FLAG
044654,000163: 5735 15745 TCF TASKOVER
044655,000164: 5736 15745 TCF TASKOVER
044656,000165: 5737 15740 TCF +1
044657,000166:
044658,000167: 5740 35674 CAF PRIO35 # COMPENSATE FOR NBD COEFFICIENTS ONLY
044659,000168: 5741 05523 TC NOVAC # ENABLE EVERY 81.93 SECONDS
044660,000169: 5742 E3,1444 EBANK= NBDX
044661,000170: 5742 03503 24003 2CADR NBDONLY
044662,000171:
044663,000172: 5744 15745 TCF TASKOVER
044664,000173:
Page 1005 |
044666,000175:
044667,000176: # BEGIN TASK INSERTION.
044668,000177:
044669,000178: 01,3360 BANK 01
044670,000179: 01,3360 54062 WAIT2 TS WAITBANK # BBANK OF CALLING PROGRAM.
044671,000180: 01,3361 40026 CS TIME3
044672,000181: 01,3362 67746 AD BIT8 # BIT 8 = OCT 200
044673,000182: 01,3363 10000 CCS A # TEST 200 - C(TIME3). IF POSITIVE,
044674,000183: # IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS TIME3 AND THAT
044675,000184: # C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T). THE FOLLOWING FOUR
044676,000185: # ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
044677,000186:
044678,000187: 01,3364 66143 AD OCT40001 # OVERFLOW HAS OCCURRED. SET C(A) =
044679,000188: 01,3365 40000 CS A # T - T1 + 1.0 - 201
044680,000189:
044681,000190: # NORMAL CASE (C(A) NNZ) YIELDS SAME C(A): -( -(1.0-(T1-T)) + 200) - 1
044682,000191:
044683,000192: 01,3366 63514 AD OCT40201
044684,000193: 01,3367 60002 AD Q # RESULT = TD - T1 + 1.
044685,000194:
044686,000195: 01,3370 10000 CCS A # TEST TD - T1 + 1
044687,000196:
044688,000197: 01,3371 61400 AD LST1 # IF TD - T1 POS, GO TO WTLST5 WITH
044689,000198: 01,3372 13434 TCF WTLST5 # C(A) = (TD - T1) + C(LST1) = TD-T2+1
044690,000199:
044691,000200: 01,3373 13374 NOOP
044692,000201: 01,3374 40002 CS Q
044693,000202:
044694,000203: # NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
044695,000204: # SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1. (G/E
044696,000205: # SYMBOL MEANS GREATER THAN OR EQUAL TO). THUS THERE NEED BE NO CON-
044697,000206: # CERN OVER A PREVIOUS OR IMMINENT OVERFLOW OF TIME3 HERE.
044698,000207:
044699,000208: 01,3375 67740 AD POS1/2 # WHEN TD IS NEXT, FORM QUANTITY
044700,000209: 01,3376 67740 AD POS1/2 # 1.0 - DELTA T = 1.0 - (TD - T)
044701,000210: 01,3377 56026 XCH TIME3
044702,000211: 01,3400 67737 AD NEGMAX
044703,000212: 01,3401 60002 AD Q # 1.0 - DELTAT T NOW COMPLETE.
044704,000213: 01,3402 00006 EXTEND # ZERO INDEX Q.
044705,000214: 01,3403 22007 QXCH 7 # (ZQ)
044706,000215:
Page 1006 |
044708,000217: 01,3404 57400 WTLST4 XCH LST1
044709,000218: 01,3405 57401 XCH LST1 +1
044710,000219: 01,3406 57402 XCH LST1 +2
044711,000220: 01,3407 57403 XCH LST1 +3
044712,000221: 01,3410 57404 XCH LST1 +4
044713,000222: 01,3411 57405 XCH LST1 +5
044714,000223: 01,3412 57406 XCH LST1 +6
044715,000224: 01,3413 57407 XCH LST1 +7
044716,000225:
044717,000226: 01,3414 30063 CA WAITADR # (MINOR PART OF TASK CADR HAS BEEN IN L.)
044718,000227: 01,3415 50002 INDEX Q
044719,000228: 01,3416 13417 TCF +1
044720,000229:
044721,000230: 01,3417 53411 DXCH LST2
044722,000231: 01,3420 53413 DXCH LST2 +2
044723,000232: 01,3421 53415 DXCH LST2 +4
044724,000233: 01,3422 53417 DXCH LST2 +6
044725,000234: 01,3423 53421 DXCH LST2 +8D
044726,000235: 01,3424 53423 DXCH LST2 +10D # AT END, CHECK THAT C(LST2+10) IS STD
044727,000236: 01,3425 53425 DXCH LST2 +12D
044728,000237: 01,3426 53427 DXCH LST2 +14D
044729,000238: 01,3427 53431 DXCH LST2 +16D
044730,000239: 01,3430 65732 AD ENDTASK # END ITEM, AS CHECK FOR EXCEEDING
044731,000240: # THE LENGTH OF THE LIST.
044732,000241: 01,3431 00006 EXTEND # DUMMY TASK ADRES SHOULD BE IN FIXED-
044733,000242: 01,3432 15712 BZF LVWTLIST # FIXED SO ITS ADRES ALONE DISTINGUISHES
044734,000243: 01,3433 13507 TCF WTABORT # IT.
044735,000244:
Page 1007 |
044737,000246:
044738,000247: 01,3434 10000 WTLST5 CCS A # TEST TD - T2 + 1
044739,000248: 01,3435 61401 AD LST1 +1
044740,000249: 01,3436 13442 TCF +4
044741,000250: 01,3437 67755 AD ONE
044742,000251: 01,3440 03515 TC WTLST2
044743,000252: 01,3441 00001 OCT 1
044744,000253:
044745,000254: 01,3442 10000 +4 CCS A # TEST TD - T3 + 1
044746,000255: 01,3443 61402 AD LST1 +2
044747,000256: 01,3444 13450 TCF +4
044748,000257: 01,3445 67755 AD ONE
044749,000258: 01,3446 03515 TC WTLST2
044750,000259: 01,3447 00002 OCT 2
044751,000260:
044752,000261: 01,3450 10000 +4 CCS A # TEST TD - T4 + 1
044753,000262: 01,3451 61403 AD LST1 +3
044754,000263: 01,3452 13456 TCF +4
044755,000264: 01,3453 67755 AD ONE
044756,000265: 01,3454 03515 TC WTLST2
044757,000266: 01,3455 00003 OCT 3
044758,000267:
044759,000268: 01,3456 10000 +4 CCS A # TEST TD - T5 + 1
044760,000269: 01,3457 61404 AD LST1 +4
044761,000270: 01,3460 13464 TCF +4
044762,000271: 01,3461 67755 AD ONE
044763,000272: 01,3462 03515 TC WTLST2
044764,000273: 01,3463 00004 OCT 4
044765,000274:
044766,000275: 01,3464 10000 +4 CCS A # TEST TD - T6 + 1
044767,000276: 01,3465 61405 AD LST1 +5
044768,000277: 01,3466 13472 TCF +4
044769,000278: 01,3467 67755 AD ONE
044770,000279: 01,3470 03515 TC WTLST2
044771,000280: 01,3471 00005 OCT 5
044772,000281:
044773,000282: 01,3472 10000 +4 CCS A # TEST TD - T7 + 1
044774,000283: 01,3473 61406 AD LST1 +6
044775,000284: 01,3474 13500 TCF +4
044776,000285: 01,3475 67755 AD ONE
044777,000286: 01,3476 03515 TC WTLST2
044778,000287: 01,3477 00006 OCT 6
044779,000288:
Page 1008 |
044781,000290:
044782,000291: 01,3500 10000 +4 CCS A
044783,000292: 01,3501 61407 AD LST1 +7
044784,000293: 01,3502 13506 TCF +4
044785,000294: 01,3503 67755 AD ONE
044786,000295: 01,3504 03515 TC WTLST2
044787,000296: 01,3505 00007 OCT 7
044788,000297:
044789,000298: 01,3506 10000 +4 CCS A
044790,000299: 01,3507 06000 WTABORT TC ABORT # NO ROOM IN THE INN.
044791,000300: 01,3510 01203 OCT 1203
044792,000301:
044793,000302: 01,3511 67755 AD ONE
044794,000303: 01,3512 03515 TC WTLST2
044795,000304: 01,3513 00010 OCT 10
044796,000305:
044797,000306: 01,3514 40201 OCT40201 OCT 40201
044798,000307:
Page 1009 |
044800,000309:
044801,000310: # THE ENTRY TO WTLST2 JUST PRECEDING OCT N IS FOR T LE TD LE T -1.
044802,000311: # N N+1
044803,000312: # (LE MEANS LESS THAN OR EQUAL TO). AT ENTRY, C(A) = -(TD - T + 1)
044804,000313: # N+1
044805,000314: # THE LST1 ENTRY -(T -T +1) IS TO BE REPLACED BY -(TD - T + 1), AND
044806,000315: # N+1 N N
044807,000316: # THE ENTRY -(T - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
044808,000317: # N+1
044809,000318:
044810,000319: 01,3515 54064 WTLST2 TS WAITTEMP # C(A) = -(TD - T + 1)
044811,000320: 01,3516 50002 INDEX Q
044812,000321: 01,3517 30000 CAF 0
044813,000322: 01,3520 54002 TS Q # INDEX VALUE INTO Q.
044814,000323:
044815,000324: 01,3521 37755 CAF ONE
044816,000325: 01,3522 60064 AD WAITTEMP
044817,000326: 01,3523 50002 INDEX Q # C(A) = -(TD - T ) + 1.
044818,000327: 01,3524 27377 ADS LST1 -1 # N
044819,000328:
044820,000329: 01,3525 40064 CS WAITTEMP
044821,000330: 01,3526 50002 INDEX Q
044822,000331: 01,3527 13404 TCF WTLST4
044823,000332:
044824,000333: # C(TIME3) = 1.0 - (T1 - T)
044825,000334:
044826,000335: # C(LST1 ) = - (T2 - T1) + 1
044827,000336: # C(LST1+1 ) = - (T3 - T2) + 1
044828,000337: # C(LST1+2 ) = - (T4 - T3) + 1
044829,000338: # C(LST1+3 ) = - (T5 - T4) + 1
044830,000339: # C(LST1+4 ) = - (T6 - T5) + 1
044831,000340:
044832,000341: # C(LST2 ) = 2CADR TASK1
044833,000342: # C(LST2+2 ) = 2CADR TASK2
044834,000343: # C(LST2+4 ) = 2CADR TASK3
044835,000344: # C(LST2+6 ) = 2CADR TASK4
044836,000345: # C(LST2+8 ) = 2CADR TASK5
044837,000346: # C(LST2+10) = 2CADR TASK6
044838,000347:
Page 1010 |
044840,000349:
044841,000350: # ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
044842,000351:
044843,000352: 01,3530 54016 T3RUPT TS BANKRUPT
044844,000353: 01,3531 00006 EXTEND
044845,000354: 01,3532 22012 QXCH QRUPT
044846,000355:
044847,000356: 01,3533 37736 T3RUPT2 CAF NEG1/2 # DISPATCH WAITLIST TASK.
044848,000357: 01,3534 57407 XCH LST1 +7
044849,000358: 01,3535 57406 XCH LST1 +6
044850,000359: 01,3536 57405 XCH LST1 +5
044851,000360: 01,3537 57404 XCH LST1 +4 # 1. MOVE UP LST1 CONTENTS, ENTERING
044852,000361: 01,3540 57403 XCH LST1 +3 # A VALUE OF 1/2 +1 AT THE BOTTOM
044853,000362: 01,3541 57402 XCH LST1 +2 # FOR T6-T5, CORRESPONDING TO THE
044854,000363: 01,3542 57401 XCH LST1 +1 # INTERVAL 81.91 SEC FOR ENDTASK.
044855,000364: 01,3543 57400 XCH LST1
044856,000365: 01,3544 67735 AD POSMAX # 2. SET T3 = 1.0 - T2 - T USING LIST 1.
044857,000366: 01,3545 26026 ADS TIME3 # SO T3 WONT TICK DURING UPDATE.
044858,000367: 01,3546 55076 TS RUPTAGN
044859,000368: 01,3547 47761 CS ZERO
044860,000369: 01,3550 55076 TS RUPTAGN # SETS RUPTAGN TO +1 ON OVERFLOW.
044861,000370:
044862,000371: 01,3551 00006 EXTEND # DISPATCH TASK.
044863,000372: 01,3552 45733 DCS ENDTASK
044864,000373: 01,3553 53431 DXCH LST2 +16D
044865,000374: 01,3554 53427 DXCH LST2 +14D
044866,000375: 01,3555 53425 DXCH LST2 +12D
044867,000376: 01,3556 53423 DXCH LST2 +10D
044868,000377: 01,3557 53421 DXCH LST2 +8D
044869,000378: 01,3560 53417 DXCH LST2 +6
044870,000379: 01,3561 53415 DXCH LST2 +4
044871,000380: 01,3562 53413 DXCH LST2 +2
044872,000381: 01,3563 53411 DXCH LST2
044873,000382:
044874,000383: 01,3564 52006 DTCB
044875,000384:
Page 1011 |
044877,000386:
044878,000387: # RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
044879,000388:
044880,000389: 5745 BLOCK 02
044881,000390: 5745 11076 TASKOVER CCS RUPTAGN # IF +1 RETURN TO T3RUPT, IF -0 RESUME.
044882,000391: 5746 35716 CAF WAITBB
044883,000392: 5747 54006 TS BBANK
044884,000393: 5750 13533 TCF T3RUPT2 # DISPATCH NEXT TASK IF IT WAS DUE.
044885,000394:
044886,000395: 5751 00006 RESUME EXTEND
044887,000396: 5752 22012 QXCH QRUPT
044888,000397: 5753 30016 NOQRSM CA BANKRUPT
044889,000398: 5754 54006 TS BBANK
044890,000399: 5755 52011 NOQBRSM DXCH ARUPT
044891,000400: 5756 50017 RESUME
044892,000401:
Page 1012 |
044894,000403:
044895,000404: # LONGCALL
044896,000405:
044897,000406: # LONGCALL IS CALLED WITH THE DELTA TIME ARRIVING IN A,L SCALED AS TIME2,TIME1 WITH THE 2CADR OF THE TASK
044898,000407: # IMMEDIATELY FOLLOWING THE TC LONGCALL. FOR EXAMPLE, IT MIGHT BE DONE AS FOLLOWS WHERE TIMELOC IS THE NAME OF
044899,000408: # A DP REGISTER CONTAINING A DELTA TIME AND WHERE TASKTODO IS THE NAME OF THE LOCATION AT WHICH LONGCALL IS TO
044900,000409: # START
044901,000410:
044902,000411: # EXTEND
044903,000412: # DCA TIMELOC
044904,000413: # TC LONGCALL
044905,000414: # 2CADR TASKTODO
044906,000415:
044907,000416: # *** THE FOLLOWING IS TO BE IN FIXED-FIXED AND UNSWITCHED ERRASIBLE ***
044908,000417:
044909,000418: 5757 BLOCK 02
044910,000419: 5757 E3,1400 EBANK= LST1
044911,000420: 5757 53153 LONGCALL DXCH LONGTIME # OBTAIN THE DELTA TIME
044912,000421:
044913,000422: 5760 00006 EXTEND # OBTAIN THE 2CADR
044914,000423: 5761 50002 NDX Q
044915,000424: 5762 30001 DCA 0
044916,000425: 5763 53151 DXCH LONGCADR
044917,000426:
044918,000427: 5764 00006 EXTEND # NOW GO TO THE APPROPRIATE SWITCHED BANK
044919,000428: 5765 35770 DCA LGCL2CDR # FOR THE REST OF LONGCALL
044920,000429: 5766 52006 DTCB
044921,000430:
044922,000431: 5767 E3,1400 EBANK= LST1
044923,000432: 5767 03565 02003 LGCL2CDR 2CADR LNGCALL2
044924,000433:
044925,000434: # *** THE FOLLOWING MAY BE IN A SWITCHED BANK, INCLUDING ITS ERASABLE ***
044926,000435:
044927,000436: 01,3565 BANK 01
044928,000437: 01,3565 23435 LNGCALL2 LXCH LONGEXIT +1 # SAVE THE CORRECT BB FOR RETURN
044929,000438: 01,3566 37754 CA TWO # OBTAIN THE RETURN ADDRESS
044930,000439: 01,3567 26002 ADS Q
044931,000440: 01,3570 55434 TS LONGEXIT
044932,000441:
044933,000442: # *** WAITLIST TASK LONGCYCL ***
044934,000443:
044935,000444: 01,3571 00006 LONGCYCL EXTEND # CAN WE SUCCESFULLY TAKE ABOUT 1.25
044936,000445: 01,3572 43603 DCS DPBIT14 # MINUTES OFF OF LONGTIME
044937,000446: 01,3573 21153 DAS LONGTIME
044938,000447:
044939,000448: 01,3574 11153 CCS LONGTIME +1 # THE REASONIBG BEHIND THIS PART IS
044940,000449: 01,3575 13614 TCF MUCHTIME # INVOLVED, TAKING INTO ACCOUNT THAT THE
044941,000450: # WORDS MAY NOT BE SIGNED CORRECTED (DP
044942,000451: # BASIC INSTRUCTIONS
044943,000452: # DO NOT SIGN CORRECT) AND THAT WE SUBTRAC
044944,000453: # TED BIT14 (1 OVER HALF THE POS. VALUE
044945,000454: # REPRESENTIBLE IN SINGLE WORD)
044946,000455:
Page 1013 |
044948,000457:
044949,000458: 01,3576 13577 NOOP # CAN:T GET HERE **********
044950,000459: 01,3577 13600 TCF +1
044951,000460: 01,3600 11152 CCS LONGTIME
044952,000461: 01,3601 13614 TCF MUCHTIME
044953,000462: 01,3602 00000 DPBIT14 OCT 00000
044954,000463: 01,3603 20000 OCT 20000
044955,000464:
044956,000465: # LONGCALL
044957,000466:
044958,000467: 01,3604 37740 LASTTIME CA BIT14 # GET BACK THE CORRECT DELTA TFOR WAITLIST
044959,000468: 01,3605 27153 ADS LONGTIME +1
044960,000469: 01,3606 05701 TC WAITLIST
044961,000470: 01,3607 E3,1400 EBANK= LST1
044962,000471: 01,3607 03621 02003 2CADR GETCADR # THE ENTRY TO OUR LONGCADR
044963,000472:
044964,000473: 01,3611 33623 LONGRTRN CA TSKOVCDR # SET IT UP SO THAT ONLY THE FIRST EXIT IS
044965,000474: 01,3612 53435 DXCH LONGEXIT # TO THE CALLER OF LONGCALL
044966,000475: 01,3613 52006 DTCB # THE REST ARE TO TASKOVER
044967,000476:
044968,000477: 01,3614 37740 MUCHTIME CA BIT14 # WE HAVE OVER OUR ABOUT 1.25 MINUTES
044969,000478: 01,3615 05701 TC WAITLIST # SO SET UP FOR ANOTHER CYCLE THROUGH HERE
044970,000479: 01,3616 E3,1400 EBANK= LST1
044971,000480: 01,3616 03571 02003 2CADR LONGCYCL
044972,000481:
044973,000482: 01,3620 13611 TCF LONGRTRN # NOW EXIT PROPERLY
044974,000483:
044975,000484: # *** WAITLIST TASK GETCADR ***
044976,000485:
044977,000486: 01,3621 53151 GETCADR DXCH LONGCADR # GET THE LONGCALL THAT WE WISHED TO START
044978,000487: 01,3622 52006 DTCB # AND TRANSFER CONTROL TO IT
044979,000488:
044980,000489: 01,3623 05745 TSKOVCDR GENADR TASKOVER
End of include-file WAITLIST.agc. Parent file is MAIN.agc