Source Code
These source code files have been transcribed or otherwise adapted from
digitized images of a hardcopy from the private collection of
Don Eyles. The digitization was performed by archive.org, and
transcription was performed by a team of volunteers.
Note that the page images
presented online are of reduced quality, and that the original
high-quality images are available at archive.org.
Report any conversion errors or legibility problems in page images to info@sandroid.org.
Notations on the program listing read, in part:473423A YUL SYSTEM FOR BLK2: REVISION 12 of PROGRAM AURORA BY DAP GROUP NOV 10, 1966Note that the date is the date of the printout, not the date of the program revision. |
005241,000002: ## Copyright: Public domain.
005242,000003: ## Filename: WAITLIST.agc
005243,000004: ## Purpose: Part of the source code for Aurora (revision 12).
005244,000005: ## Assembler: yaYUL
005245,000006: ## Contact: Ron Burkey <info@sandroid.org>.
005246,000007: ## Website: https://www.ibiblio.org/apollo.
005247,000008: ## Pages: 139-147
005248,000009: ## Mod history: 2016-09-20 JL Created.
005249,000010: ## 2016-12-08 RSB Proofed comments with octopus/ProoferComments
005250,000011: ## and fixed the errors found.
005251,000012: ## 2017-02-09 RSB Comment-text fixes identified in proofing Artemis 72
005252,000013:
005253,000014: ## This source code has been transcribed or otherwise adapted from
005254,000015: ## digitized images of a hardcopy from the private collection of
005255,000016: ## Don Eyles. The digitization was performed by archive.org.
005256,000017:
005257,000018: ## Notations on the hardcopy document read, in part:
005258,000019:
005259,000020: ## 473423A YUL SYSTEM FOR BLK2: REVISION 12 of PROGRAM AURORA BY DAP GROUP
005260,000021: ## NOV 10, 1966
005261,000022:
005262,000023: ## [Note that this is the date the hardcopy was made, not the
005263,000024: ## date of the program revision or the assembly.]
005264,000025:
005265,000026: ## The scan images (with suitable reduction in storage size and consequent
005266,000027: ## reduction in image quality) are available online at
005267,000028: ## https://www.ibiblio.org/apollo.
005268,000029: ## The original high-quality digital images are available at archive.org:
005269,000030: ## https://archive.org/details/aurora00dapg
005270,000031:
Page 139 |
005272,000033:
005273,000034: # GROUNDRULE....DELTA T SHOULD NOT EXCEED 12000 (= 2 MINUTES)
005274,000035:
005275,000036: 4536 SETLOC ENDEXECF
005276,000037:
005277,000038: 4536 E3,1400 EBANK= LST1 # TASK LISTS IN SWITCHED E BANK.
005278,000039:
005279,000040: 4536 56002 WAITLIST XCH Q # SAVE DELTA T IN Q AND RETURN IN
005280,000041: 4537 54065 TS WAITEXIT # WAITEXIT.
005281,000042: 4540 00006 EXTEND
005282,000043: 4541 50000 INDEX A
005283,000044: 4542 30001 DCA 0 # PICK UP 2CADR OF TASK.
005284,000045: 4543 54070 TS WAITADR # BBCON WILL REMAIN IN L.
005285,000046: 4544 34553 DLY2 CAF WAITBB # ENTRY FROM FIXDELAY AND VARDELAY.
005286,000047: 4545 56006 XCH BBANK
005287,000048: 4546 12566 TCF WAIT2
005288,000049:
005289,000050: # RETURN TO CALLER AFTER TASK INSERTION:
005290,000051:
005291,000052: 4547 30066 LVWTLIST CA WAITBANK
005292,000053: 4550 54006 TS BBANK
005293,000054: 4551 50065 INDEX WAITEXIT
005294,000055: 4552 00002 TC 2
005295,000056:
005296,000057: 4553 02003 WAITBB BBCON WAIT2
005297,000058:
005298,000059: # RETURN TO CALLER +2 AFTER WAITING DT SPECIFIED AT CALLER +1.
005299,000060:
005300,000061: 4554 50002 FIXDELAY INDEX Q # BOTH ROUTINES MUST BE CALLED UNDER
005301,000062: 4555 30000 CAF 0 # WAITLIST CONTROL AND TERMINATE THE TASK
005302,000063: 4556 24002 INCR Q # IN WHICH THEY WERE CALLED.
005303,000064:
005304,000065: # RETURN TO CALLER +1 AFTER WAITING THE DT AS ARRIVING IN A.
005305,000066:
005306,000067: 4557 56002 VARDELAY XCH Q # DT TO Q. TASK ADRES TO WAITADR.
005307,000068: 4560 54070 TS WAITADR
005308,000069: 4561 30006 CA BBANK # BBANK IS SAVED DURING DELAY.
005309,000070: 4562 54001 TS L
005310,000071: 4563 34566 CAF DELAYEX
005311,000072: 4564 54065 TS WAITEXIT # GO TO TASKOVER AFTER TASK ENTRY.
005312,000073: 4565 14544 TCF DLY2
005313,000074:
005314,000075: 4566 14600 DELAYEX TCF TASKOVER -2 # RETURNS TO TASKOVER
005315,000076:
Page 140 |
005317,000078:
005318,000079: # ENDTASK MUST BE ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
005319,000080:
005320,000081: 4567 73206 73774 ENDTASK -2CADR SVCT3
005321,000082:
005322,000083: 4571 10063 SVCT3 CCS STATE +2 # DRIFT FLAG
005323,000084: 4572 14602 TCF TASKOVER
005324,000085: 4573 14602 TCF TASKOVER
005325,000086: 4574 14575 TCF +1
005326,000087:
005327,000088: 4575 34533 CAF PRIO35 # COMPENSATE FOR NBD COEFFICIENTS ONLY
005328,000089: 4576 04363 TC NOVAC # ENABLE EVERY 81.93 SECONDS
005329,000090: 4577 02257 16003 2CADR NBDONLY # EBANK IS SET TO 3
005330,000091:
005331,000092: 4601 14602 TCF TASKOVER
005332,000093:
Page 141 |
005334,000095:
005335,000096: # BEGIN TASK INSERTION.
005336,000097:
005337,000098: 01,2566 SETLOC ENDEXECS
005338,000099:
005339,000100: 01,2566 54066 WAIT2 TS WAITBANK # BBANK OF CALLING PROGRAM.
005340,000101: 01,2567 40026 CS TIME3
005341,000102: 01,2570 62571 AD +1 # CCS A = + 1/4
005342,000103: 01,2571 10000 CCS A # TEST 1/4 - C(TIME3). IF POSITIVE,
005343,000104: # IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS TIME3 AND THAT
005344,000105: # C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T). THE FOLLOWING FOUR
005345,000106: # ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
005346,000107:
005347,000108: 01,2572 66042 AD OCT40001 # OVERFLOW HAS OCCURRED. SET C(A) =
005348,000109: 01,2573 40000 CS A # T - T1 + 3/4 - 1
005349,000110:
005350,000111: # NORMAL CASE (C(A) MINUS) YIELDS SAME C(A) -(-(1.0-(T1 - T))+1/4)-1
005351,000112:
005352,000113: 01,2574 62722 AD OCT50001
005353,000114: 01,2575 60002 AD Q # RESULT = TD - T1 + 1.
005354,000115:
005355,000116: 01,2576 10000 CCS A # TEST TD - T1 + 1
005356,000117:
005357,000118: 01,2577 61400 AD LST1 # IF TD - T1 POS, GO TO WTLST5 WITH
005358,000119: 01,2600 12642 TCF WTLST5 # C(A) = (TD - T1) + C(LST1) = TD-T2+1
005359,000120:
005360,000121: 01,2601 12602 NOOP
005361,000122: 01,2602 40002 CS Q
005362,000123:
005363,000124: # NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
005364,000125: # SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1 . (G/E
005365,000126: # SYMBOL MEANS GREATER THAN OR EQUAL TO). THUS THERE NEED BE NO CON-
005366,000127: # CERN OVER A PREVIOUS OR IMMINENT OVERFLOW OF TIME3 HERE.
005367,000128:
005368,000129: 01,2603 67642 AD POS1/2 # WHEN TD IS NEXT, FORM QUANTITY
005369,000130: 01,2604 67642 AD POS1/2 # 1.0 - DELTA T = 1.0 - (TD - T)
005370,000131: 01,2605 56026 XCH TIME3
005371,000132: 01,2606 67641 AD NEGMAX
005372,000133: 01,2607 60002 AD Q # 1.0 - DELTAT T NOW COMPLETE.
005373,000134: 01,2610 00006 EXTEND # ZERO INDEX Q.
005374,000135: 01,2611 22007 QXCH 7 # (ZQ)
005375,000136:
Page 142 |
005377,000138:
005378,000139: 01,2612 57400 WTLST4 XCH LST1
005379,000140: 01,2613 57401 XCH LST1 +1
005380,000141: 01,2614 57402 XCH LST1 +2
005381,000142: 01,2615 57403 XCH LST1 +3
005382,000143: 01,2616 57404 XCH LST1 +4
005383,000144: 01,2617 57405 XCH LST1 +5
005384,000145: 01,2620 57406 XCH LST1 +6
005385,000146: 01,2621 57407 XCH LST1 +7
005386,000147:
005387,000148: 01,2622 30070 CA WAITADR # (MINOR PART OF TASK CADR HAS BEEN IN L.)
005388,000149: 01,2623 50002 INDEX Q
005389,000150: 01,2624 12625 TCF +1
005390,000151:
005391,000152: 01,2625 53411 DXCH LST2
005392,000153: 01,2626 53413 DXCH LST2 +2
005393,000154: 01,2627 53415 DXCH LST2 +4
005394,000155: 01,2630 53417 DXCH LST2 +6
005395,000156: 01,2631 53421 DXCH LST2 +8D
005396,000157: 01,2632 53423 DXCH LST2 +10D # AT END, CHECK THAT C(LST2 +10) IS STD
005397,000158: 01,2633 53425 DXCH LST2 +12D
005398,000159: 01,2634 53427 DXCH LST2 +14D
005399,000160: 01,2635 53431 DXCH LST2 +16D
005400,000161: 01,2636 64567 AD ENDTASK # END ITEM, AS CHECK FOR EXCEEDING
005401,000162: # THE LENGTH OF THE LIST.
005402,000163: 01,2637 00006 EXTEND # DUMMY TASK ADRES SHOULD BE IN FIXED-
005403,000164: 01,2640 14547 BZF LVWTLIST # FIXED SO ITS ADRES ALONE DISTINGUISHES
005404,000165: 01,2641 12715 TCF WTABORT # IT.
005405,000166:
Page 143 |
005407,000168:
005408,000169: 01,2642 10000 WTLST5 CCS A # TEST TD - T2 + 1
005409,000170: 01,2643 61401 AD LST1 +1
005410,000171: 01,2644 12650 TCF +4
005411,000172: 01,2645 67657 AD ONE
005412,000173: 01,2646 02723 TC WTLST2
005413,000174: 01,2647 00001 OCT 1
005414,000175:
005415,000176: 01,2650 10000 +4 CCS A # TEST TD - T3 + 1
005416,000177: 01,2651 61402 AD LST1 +2
005417,000178: 01,2652 12656 TCF +4
005418,000179: 01,2653 67657 AD ONE
005419,000180: 01,2654 02723 TC WTLST2
005420,000181: 01,2655 00002 OCT 2
005421,000182:
005422,000183: 01,2656 10000 +4 CCS A # TEST TD - T4 + 1
005423,000184: 01,2657 61403 AD LST1 +3
005424,000185: 01,2660 12664 TCF +4
005425,000186: 01,2661 67657 AD ONE
005426,000187: 01,2662 02723 TC WTLST2
005427,000188: 01,2663 00003 OCT 3
005428,000189:
005429,000190: 01,2664 10000 +4 CCS A # TEST TD - T5 + 1
005430,000191: 01,2665 61404 AD LST1 +4
005431,000192: 01,2666 12672 TCF +4
005432,000193: 01,2667 67657 AD ONE
005433,000194: 01,2670 02723 TC WTLST2
005434,000195: 01,2671 00004 OCT 4
005435,000196:
005436,000197: 01,2672 10000 +4 CCS A # TEST TD - T6 + 1
005437,000198: 01,2673 61405 AD LST1 +5
005438,000199: 01,2674 12700 TCF +4
005439,000200: 01,2675 67657 AD ONE
005440,000201: 01,2676 02723 TC WTLST2
005441,000202: 01,2677 00005 OCT 5
005442,000203:
005443,000204: 01,2700 10000 +4 CCS A # TEST TD - T7 + 1
005444,000205: 01,2701 61406 AD LST1 +6
005445,000206: 01,2702 12706 TCF +4
005446,000207: 01,2703 67657 AD ONE
005447,000208: 01,2704 02723 TC WTLST2
005448,000209: 01,2705 00006 OCT 6
005449,000210:
Page 144 |
005451,000212:
005452,000213: 01,2706 10000 +4 CCS A
005453,000214: 01,2707 61407 AD LST1 +7
005454,000215: 01,2710 12714 TCF +4
005455,000216: 01,2711 67657 AD ONE
005456,000217: 01,2712 02723 TC WTLST2
005457,000218: 01,2713 00007 OCT 7
005458,000219:
005459,000220: 01,2714 10000 +4 CCS A
005460,000221: 01,2715 05446 WTABORT TC ABORT # NO ROOM IN THE INN.
005461,000222: 01,2716 01203 OCT 1203
005462,000223:
005463,000224: 01,2717 67657 AD ONE
005464,000225: 01,2720 02723 TC WTLST2
005465,000226: 01,2721 00010 OCT 10
005466,000227:
005467,000228: 01,2722 50001 OCT50001 OCT 50001
005468,000229:
Page 145 |
005470,000231:
005471,000232: # THE ENTRY TO WTLST2 JUST PRECEDING OCT N IS FOR T LE TD LE T -1.
005472,000233: # N N+1
005473,000234:
005474,000235: # (LE MEANS LESS THAN OR EQUAL TO). AT ENTRY, C(A) = -(TD - T + 1)
005475,000236: # N+1
005476,000237:
005477,000238: # THE LST1 ENTRY -(T - T +1) IS TO BE REPLACED BY -(TD - T + 1), AND
005478,000239: # N+1 N N
005479,000240:
005480,000241: # THE ENTRY -(T - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
005481,000242: # N+1
005482,000243:
005483,000244: 01,2723 54071 WTLST2 TS WAITTEMP # C(A) = -(TD - T + 1)
005484,000245: 01,2724 50002 INDEX Q
005485,000246: 01,2725 30000 CAF 0
005486,000247: 01,2726 54002 TS Q # INDEX VALUE INTO Q.
005487,000248:
005488,000249: 01,2727 37657 CAF ONE
005489,000250: 01,2730 60071 AD WAITTEMP
005490,000251: 01,2731 50002 INDEX Q # C(A) = -(TD - T ) + 1.
005491,000252: 01,2732 27377 ADS LST1 -1 # N
005492,000253:
005493,000254: 01,2733 40071 CS WAITTEMP
005494,000255: 01,2734 50002 INDEX Q
005495,000256: 01,2735 12612 TCF WTLST4
005496,000257:
005497,000258: # C(TIME3) = 1.0 - (T1 - T)
005498,000259:
005499,000260: # C(LST1 ) = - (T2 - T1) + 1
005500,000261: # C(LST1+1) = - (T3 - T2) + 1
005501,000262: # C(LST1+2) = - (T4 - T3) + 1
005502,000263: # C(LST1+3) = - (T5 - T4) + 1
005503,000264: # C(LST1+4) = - (T6 - T5) + 1
005504,000265:
005505,000266: # C(LST2 ) = 2CADR TASK1
005506,000267: # C(LST2+2 ) = 2CADR TASK2
005507,000268: # C(LST2+4 ) = 2CADR TASK3
005508,000269: # C(LST2+6 ) = 2CADR TASK4
005509,000270: # C(LST2+8 ) = 2CADR TASK5
005510,000271: # C(LST2+10) = 2CADR TASK6
005511,000272:
Page 146 |
005513,000274:
005514,000275: # ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
005515,000276:
005516,000277: 01,2736 54016 T3RUPT TS BANKRUPT
005517,000278: 01,2737 00006 EXTEND
005518,000279: 01,2740 22012 QXCH QRUPT
005519,000280:
005520,000281: 01,2741 37640 T3RUPT2 CAF NEG1/2 # DISPATCH WAITLIST TASK.
005521,000282: 01,2742 57407 XCH LST1 +7
005522,000283: 01,2743 57406 XCH LST1 +6
005523,000284: 01,2744 57405 XCH LST1 +5
005524,000285: 01,2745 57404 XCH LST1 +4 # 1. MOVE UP LST1 CONTENTS, ENTERING
005525,000286: 01,2746 57403 XCH LST1 +3 # A VALUE OF 1/2 +1 AT THE BOTTOM
005526,000287: 01,2747 57402 XCH LST1 +2 # FOR T6-T5, CORRESPONDING TO THE
005527,000288: 01,2750 57401 XCH LST1 +1 # INTERVAL 81.91 SEC FOR ENDTASK.
005528,000289: 01,2751 57400 XCH LST1
005529,000290: 01,2752 67637 AD POSMAX # 2. SET T3 = 1.0 - T2 -T USING LIST 1.
005530,000291: 01,2753 26026 ADS TIME3 # SO T3 WONT TICK DURING UPDATE.
005531,000292: 01,2754 55070 TS RUPTAGN
005532,000293: 01,2755 47665 CS ZERO
005533,000294: 01,2756 55070 TS RUPTAGN # SETS RUPTAGN TO +1 ON OVERFLOW.
005534,000295:
005535,000296: 01,2757 00006 EXTEND # DISPATCH TASK.
005536,000297: 01,2760 44570 DCS ENDTASK
005537,000298: 01,2761 53431 DXCH LST2 +16D
005538,000299: 01,2762 53427 DXCH LST2 +14D
005539,000300: 01,2763 53425 DXCH LST2 +12D
005540,000301: 01,2764 53423 DXCH LST2 +10D
005541,000302: 01,2765 53421 DXCH LST2 +8D
005542,000303: 01,2766 53417 DXCH LST2 +6
005543,000304: 01,2767 53415 DXCH LST2 +4
005544,000305: 01,2770 53413 DXCH LST2 +2
005545,000306: 01,2771 53411 DXCH LST2
005546,000307:
005547,000308: 01,2772 52006 DTCB
005548,000309:
005549,000310: 01,2773 ENDWAITS EQUALS
005550,000311:
Page 147 |
005552,000313:
005553,000314: # RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
005554,000315:
005555,000316: 4602 BLOCK 02
005556,000317:
005557,000318: 4602 11070 TASKOVER CCS RUPTAGN # IF +1 RETURN TO T3RUPT, IF -0 RESUME.
005558,000319: 4603 34553 CAF WAITBB
005559,000320: 4604 54006 TS BBANK
005560,000321: 4605 12741 TCF T3RUPT2 # DISPATCH NEXT TASK IF IT WAS DUE.
005561,000322:
005562,000323: 4606 00006 RESUME EXTEND
005563,000324: 4607 22012 QXCH QRUPT
005564,000325: 4610 30016 NOQRSM CA BANKRUPT
005565,000326: 4611 54006 TS BBANK
005566,000327: 4612 52011 NOQBRSM DXCH ARUPT
005567,000328: 4613 50017 RESUME
005568,000329:
005569,000330: 4614 ENDWAITF EQUALS # LAST FIXED-FIXED LOCATION OF T3RUPT.
End of include-file WAITLIST.agc. Parent file is MAIN.agc