Source Code

These source-code files are part of a reconstructed copy of Aurora 88, the final release of the Lunar Module (LM) Apollo Guidance Computer (AGC) system test software.

They have been created via disassembly of binary dumps of original core rope memory modules, part numbers 2003972-011, 2003972-091, and 2003972-111, belonging to Steve Jurvetson.

Since only binary dumps (rather than listings) of Aurora 88 are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing.

004904,000002:                                                                                                  ## Copyright:   Public domain.
004905,000003:                                                                                                  ## Filename:    WAITLIST.agc
004906,000004:                                                                                                  ## Purpose:     A section of Aurora 88.
004907,000005:                                                                                                  ##              It is part of the reconstructed source code for the final
004908,000006:                                                                                                  ##              release of the Lunar Module system test software. No original
004909,000007:                                                                                                  ##              listings of this program are available; instead, this file
004910,000008:                                                                                                  ##              was created via disassembly of dumps of Aurora 88 core rope
004911,000009:                                                                                                  ##              modules and comparison with other AGC programs.
004912,000010:                                                                                                  ## Assembler:   yaYUL
004913,000011:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
004914,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
004915,000013:                                                                                                  ## Mod history: 2023-06-30 MAS  Created from Aurora 12.
004916,000014:                                                                                                  ##              2023-07-12 MAS  Updated for Aurora 88.
004917,000015: 
004918,000016: 
004919,000017:                                                                                                  #  GROUNDRULE....DELTA T SHOULD NOT EXCEED 12000 (= 2 MINUTES)
004920,000018: 
004921,000019:    4451                                           SETLOC   ENDEXECF                              
004922,000020: 
004923,000021:    4451  E3,1400                                  EBANK=   LST1                                  #  TASK LISTS IN SWITCHED E BANK.
004924,000022: 
004925,000023:    4451           56002        WAITLIST           XCH      Q                                     #  SAVE DELTA T IN Q AND RETURN IN
004926,000024:    4452           54065                           TS       WAITEXIT                              #  WAITEXIT.
004927,000025:    4453           00006                           EXTEND                                         
004928,000026:    4454           50000                           INDEX    A                                     
004929,000027:    4455           30001                           DCA      0                                     #  PICK UP 2CADR OF TASK.
004930,000028:    4456           54070                           TS       WAITADR                               #  BBCON WILL REMAIN IN L.
004931,000029:    4457           34466        DLY2               CAF      WAITBB                                #  ENTRY FROM FIXDELAY AND VARDELAY.
004932,000030:    4460           56006                           XCH      BBANK                                 
004933,000031:    4461           12566                           TCF      WAIT2                                 
004934,000032: 
004935,000033:                                                                                                  #  RETURN TO CALLER AFTER TASK INSERTION:
004936,000034: 
004937,000035:    4462           30066        LVWTLIST           CA       WAITBANK                              
004938,000036:    4463           54006                           TS       BBANK                                 
004939,000037:    4464           50065                           INDEX    WAITEXIT                              
004940,000038:    4465           00002                           TC       2                                     
004941,000039: 
004942,000040:    4466           02003        WAITBB             BBCON    WAIT2                                 
004943,000041: 
004944,000042:                                                                                                  #  RETURN TO CALLER +2 AFTER WAITING DT SPECIFIED AT CALLER +1.
004945,000043: 
004946,000044:    4467           50002        FIXDELAY           INDEX    Q                                     #  BOTH ROUTINES MUST BE CALLED UNDER
004947,000045:    4470           30000                           CAF      0                                     #  WAITLIST CONTROL AND TERMINATE THE TASK
004948,000046:    4471           24002                           INCR     Q                                     #  IN WHICH THEY WERE CALLED.
004949,000047: 
004950,000048:                                                                                                  #  RETURN TO CALLER +1 AFTER WAITING THE DT AS ARRIVING IN A.
004951,000049: 
004952,000050:    4472           56002        VARDELAY           XCH      Q                                     #  DT TO Q.  TASK ADRES TO WAITADR.
004953,000051:    4473           54070                           TS       WAITADR                               
004954,000052:    4474           30006                           CA       BBANK                                 #  BBANK IS SAVED DURING DELAY.
004955,000053:    4475           54001                           TS       L                                     
004956,000054:    4476           34501                           CAF      DELAYEX                               
004957,000055:    4477           54065                           TS       WAITEXIT                              #  GO TO TASKOVER AFTER TASK ENTRY.
004958,000056:    4500           14457                           TCF      DLY2                                  
004959,000057: 
004960,000058:    4501           14503        DELAYEX            TCF      TASKOVER   -2                         #  RETURNS TO TASKOVER
004961,000059: 
004962,000060: 
004963,000061:                                                                                                  #  ENDTASK MUST BE ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
004964,000062: 
004965,000063:    4502           73273 73774  ENDTASK            -2CADR   SVCT3                                 
004966,000064: 
004967,000065:    4504           14505        SVCT3              TCF      TASKOVER                              
004968,000066: 
004969,000067: 
004970,000068:                                                                                                  #  BEGIN TASK INSERTION.
004971,000069: 
004972,000070: 01,2566                                           SETLOC   ENDEXECS                              
004973,000071: 
004974,000072: 01,2566           54066        WAIT2              TS       WAITBANK                              #  BBANK OF CALLING PROGRAM.
004975,000073: 01,2567           40026                           CS       TIME3                                 
004976,000074: 01,2570           62571                           AD       +1                                    #  CCS  A  = + 1/4
004977,000075: 01,2571           10000                           CCS      A                                     #  TEST  1/4 - C(TIME3).  IF POSITIVE,
004978,000076:                                                                                                  #  IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS  TIME3 AND THAT
004979,000077:                                                                                                  #  C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T).  THE FOLLOWING FOUR
004980,000078:                                                                                                  #  ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
004981,000079: 
004982,000080: 01,2572           66042                           AD       OCT40001                              #  OVERFLOW HAS OCCURRED.  SET C(A) =
004983,000081: 01,2573           40000                           CS       A                                     #  T - T1 + 3/4 - 1
004984,000082: 
004985,000083:                                                                                                  #  NORMAL CASE (C(A) MINUS) YIELDS SAME C(A)  -(-(1.0-(T1 - T))+1/4)-1
004986,000084: 
004987,000085: 01,2574           62722                           AD       OCT50001                              
004988,000086: 01,2575           60002                           AD       Q                                     #  RESULT = TD - T1 + 1.
004989,000087: 
004990,000088: 01,2576           10000                           CCS      A                                     #  TEST TD - T1 + 1
004991,000089: 
004992,000090: 01,2577           61400                           AD       LST1                                  #  IF TD - T1 POS, GO TO WTLST5 WITH
004993,000091: 01,2600           12642                           TCF      WTLST5                                #  C(A) = (TD - T1) + C(LST1) = TD-T2+1
004994,000092: 
004995,000093: 01,2601           12602                           NOOP                                           
004996,000094: 01,2602           40002                           CS       Q                                     
004997,000095: 
004998,000096:                                                                                                  #  NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
004999,000097:                                                                                                  #  SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1 .  (G/E
005000,000098:                                                                                                  #  SYMBOL MEANS GREATER THAN OR EQUAL TO).  THUS THERE NEED BE NO CON-
005001,000099:                                                                                                  #  CERN OVER A PREVIOUS OR IMMINENT OVERFLOW OF TIME3 HERE.
005002,000100: 
005003,000101: 01,2603           67635                           AD       POS1/2                                #  WHEN TD IS NEXT, FORM QUANTITY
005004,000102: 01,2604           67635                           AD       POS1/2                                #    1.0 - DELTA T = 1.0 - (TD - T)
005005,000103: 01,2605           56026                           XCH      TIME3                                 
005006,000104: 01,2606           67634                           AD       NEGMAX                                
005007,000105: 01,2607           60002                           AD       Q                                     #  1.0 - DELTAT T NOW COMPLETE.
005008,000106: 01,2610           00006                           EXTEND                                         #  ZERO INDEX Q.
005009,000107: 01,2611           22007                           QXCH     7                                     #  (ZQ)
005010,000108: 
005011,000109: 
005012,000110: 01,2612           57400        WTLST4             XCH      LST1                                  
005013,000111: 01,2613           57401                           XCH      LST1       +1                         
005014,000112: 01,2614           57402                           XCH      LST1       +2                         
005015,000113: 01,2615           57403                           XCH      LST1       +3                         
005016,000114: 01,2616           57404                           XCH      LST1       +4                         
005017,000115: 01,2617           57405                           XCH      LST1       +5                         
005018,000116: 01,2620           57406                           XCH      LST1       +6                         
005019,000117: 01,2621           57407                           XCH      LST1       +7                         
005020,000118: 
005021,000119: 01,2622           30070                           CA       WAITADR                               #  (MINOR PART OF TASK CADR HAS BEEN IN L.)
005022,000120: 01,2623           50002                           INDEX    Q                                     
005023,000121: 01,2624           12625                           TCF      +1                                    
005024,000122: 
005025,000123: 01,2625           53411                           DXCH     LST2                                  
005026,000124: 01,2626           53413                           DXCH     LST2       +2                         
005027,000125: 01,2627           53415                           DXCH     LST2       +4                         
005028,000126: 01,2630           53417                           DXCH     LST2       +6                         
005029,000127: 01,2631           53421                           DXCH     LST2       +8D                        
005030,000128: 01,2632           53423                           DXCH     LST2       +10D                       #  AT END, CHECK THAT C(LST2 +10) IS STD
005031,000129: 01,2633           53425                           DXCH     LST2       +12D                       
005032,000130: 01,2634           53427                           DXCH     LST2       +14D                       
005033,000131: 01,2635           53431                           DXCH     LST2       +16D                       
005034,000132: 01,2636           64502                           AD       ENDTASK                               #    END ITEM, AS CHECK FOR EXCEEDING
005035,000133:                                                                                                  #    THE LENGTH OF THE LIST.
005036,000134: 01,2637           00006                           EXTEND                                         #  DUMMY TASK ADRES SHOULD BE IN FIXED-
005037,000135: 01,2640           14462                           BZF      LVWTLIST                              #  FIXED SO ITS ADRES ALONE DISTINGUISHES
005038,000136: 01,2641           12715                           TCF      WTABORT                               #  IT.
005039,000137: 
005040,000138: 
005041,000139: 01,2642           10000        WTLST5             CCS      A                                     #  TEST TD - T2 + 1
005042,000140: 01,2643           61401                           AD       LST1       +1                         
005043,000141: 01,2644           12650                           TCF      +4                                    
005044,000142: 01,2645           67652                           AD       ONE                                   
005045,000143: 01,2646           02723                           TC       WTLST2                                
005046,000144: 01,2647           00001                           OCT      1                                     
005047,000145: 
005048,000146: 01,2650           10000                 +4        CCS      A                                     #  TEST TD - T3 + 1
005049,000147: 01,2651           61402                           AD       LST1       +2                         
005050,000148: 01,2652           12656                           TCF      +4                                    
005051,000149: 01,2653           67652                           AD       ONE                                   
005052,000150: 01,2654           02723                           TC       WTLST2                                
005053,000151: 01,2655           00002                           OCT      2                                     
005054,000152: 
005055,000153: 01,2656           10000                 +4        CCS      A                                     #  TEST TD - T4 + 1
005056,000154: 01,2657           61403                           AD       LST1       +3                         
005057,000155: 01,2660           12664                           TCF      +4                                    
005058,000156: 01,2661           67652                           AD       ONE                                   
005059,000157: 01,2662           02723                           TC       WTLST2                                
005060,000158: 01,2663           00003                           OCT      3                                     
005061,000159: 
005062,000160: 01,2664           10000                 +4        CCS      A                                     #  TEST TD - T5 + 1
005063,000161: 01,2665           61404                           AD       LST1       +4                         
005064,000162: 01,2666           12672                           TCF      +4                                    
005065,000163: 01,2667           67652                           AD       ONE                                   
005066,000164: 01,2670           02723                           TC       WTLST2                                
005067,000165: 01,2671           00004                           OCT      4                                     
005068,000166: 
005069,000167: 01,2672           10000                 +4        CCS      A                                     #  TEST TD - T6 + 1
005070,000168: 01,2673           61405                           AD       LST1       +5                         
005071,000169: 01,2674           12700                           TCF      +4                                    
005072,000170: 01,2675           67652                           AD       ONE                                   
005073,000171: 01,2676           02723                           TC       WTLST2                                
005074,000172: 01,2677           00005                           OCT      5                                     
005075,000173: 
005076,000174: 01,2700           10000                 +4        CCS      A                                     #  TEST TD - T7 + 1
005077,000175: 01,2701           61406                           AD       LST1       +6                         
005078,000176: 01,2702           12706                           TCF      +4                                    
005079,000177: 01,2703           67652                           AD       ONE                                   
005080,000178: 01,2704           02723                           TC       WTLST2                                
005081,000179: 01,2705           00006                           OCT      6                                     
005082,000180: 
005083,000181: 
005084,000182: 01,2706           10000                 +4        CCS      A                                     
005085,000183: 01,2707           61407                           AD       LST1       +7                         
005086,000184: 01,2710           12714                           TCF      +4                                    
005087,000185: 01,2711           67652                           AD       ONE                                   
005088,000186: 01,2712           02723                           TC       WTLST2                                
005089,000187: 01,2713           00007                           OCT      7                                     
005090,000188: 
005091,000189: 01,2714           10000                 +4        CCS      A                                     
005092,000190: 01,2715           05350        WTABORT            TC       ABORT                                 #  NO ROOM IN THE INN.
005093,000191: 01,2716           01203                           OCT      1203                                  
005094,000192: 
005095,000193: 01,2717           67652                           AD       ONE                                   
005096,000194: 01,2720           02723                           TC       WTLST2                                
005097,000195: 01,2721           00010                           OCT      10                                    
005098,000196: 
005099,000197: 01,2722           50001        OCT50001           OCT      50001                                 
005100,000198: 
005101,000199: 
005102,000200:                                                                                                  #  THE ENTRY TO WTLST2 JUST PRECEDING OCT  N  IS FOR T  LE TD LE T   -1.
005103,000201:                                                                                                  #                                                     N           N+1
005104,000202: 
005105,000203:                                                                                                  #  (LE MEANS LESS THAN OR EQUAL TO).  AT ENTRY, C(A) = -(TD - T   + 1)
005106,000204:                                                                                                  #                                                              N+1
005107,000205: 
005108,000206:                                                                                                  #  THE LST1 ENTRY -(T   - T +1) IS TO BE REPLACED BY -(TD - T  + 1), AND
005109,000207:                                                                                                  #                    N+1   N                                 N
005110,000208: 
005111,000209:                                                                                                  #  THE ENTRY -(T   - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
005112,000210:                                                                                                  #               N+1
005113,000211: 
005114,000212: 01,2723           54071        WTLST2             TS       WAITTEMP                              #      C(A) = -(TD - T   + 1)
005115,000213: 01,2724           50002                           INDEX    Q                                     
005116,000214: 01,2725           30000                           CAF      0                                     
005117,000215: 01,2726           54002                           TS       Q                                     #  INDEX VALUE INTO Q.
005118,000216: 
005119,000217: 01,2727           37652                           CAF      ONE                                   
005120,000218: 01,2730           60071                           AD       WAITTEMP                              
005121,000219: 01,2731           50002                           INDEX    Q                                     #  C(A) = -(TD - T ) + 1.
005122,000220: 01,2732           27377                           ADS      LST1       -1                         #                 N
005123,000221: 
005124,000222: 01,2733           40071                           CS       WAITTEMP                              
005125,000223: 01,2734           50002                           INDEX    Q                                     
005126,000224: 01,2735           12612                           TCF      WTLST4                                
005127,000225: 
005128,000226:                                                                                                  #  C(TIME3)  = 1.0 - (T1 - T)
005129,000227: 
005130,000228:                                                                                                  #  C(LST1  ) = - (T2 - T1) + 1
005131,000229:                                                                                                  #  C(LST1+1) = - (T3 - T2) + 1
005132,000230:                                                                                                  #  C(LST1+2) = - (T4 - T3) + 1
005133,000231:                                                                                                  #  C(LST1+3) = - (T5 - T4) + 1
005134,000232:                                                                                                  #  C(LST1+4) = - (T6 - T5) + 1
005135,000233: 
005136,000234:                                                                                                  #  C(LST2   ) = 2CADR  TASK1
005137,000235:                                                                                                  #  C(LST2+2 ) = 2CADR  TASK2
005138,000236:                                                                                                  #  C(LST2+4 ) = 2CADR  TASK3
005139,000237:                                                                                                  #  C(LST2+6 ) = 2CADR  TASK4
005140,000238:                                                                                                  #  C(LST2+8 ) = 2CADR  TASK5
005141,000239:                                                                                                  #  C(LST2+10) = 2CADR  TASK6
005142,000240: 
005143,000241: 
005144,000242:                                                                                                  #  ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
005145,000243: 
005146,000244: 01,2736           54016        T3RUPT             TS       BANKRUPT                              
005147,000245: 01,2737           00006                           EXTEND                                         
005148,000246: 01,2740           22012                           QXCH     QRUPT                                 
005149,000247: 
005150,000248: 01,2741           37633        T3RUPT2            CAF      NEG1/2                                #  DISPATCH WAITLIST TASK.
005151,000249: 01,2742           57407                           XCH      LST1       +7                         
005152,000250: 01,2743           57406                           XCH      LST1       +6                         
005153,000251: 01,2744           57405                           XCH      LST1       +5                         
005154,000252: 01,2745           57404                           XCH      LST1       +4                         #  1.  MOVE UP LST1 CONTENTS, ENTERING
005155,000253: 01,2746           57403                           XCH      LST1       +3                         #      A VALUE OF 1/2 +1 AT THE BOTTOM
005156,000254: 01,2747           57402                           XCH      LST1       +2                         #      FOR T6-T5, CORRESPONDING TO THE
005157,000255: 01,2750           57401                           XCH      LST1       +1                         #      INTERVAL 81.91 SEC FOR ENDTASK.
005158,000256: 01,2751           57400                           XCH      LST1                                  
005159,000257: 01,2752           67632                           AD       POSMAX                                #  2. SET T3 = 1.0 - T2 -T USING LIST 1.
005160,000258: 01,2753           26026                           ADS      TIME3                                 #  SO T3 WONT TICK DURING UPDATE.
005161,000259: 01,2754           55071                           TS       RUPTAGN                               
005162,000260: 01,2755           47657                           CS       ZERO                                  
005163,000261: 01,2756           55071                           TS       RUPTAGN                               #  SETS RUPTAGN TO +1 ON OVERFLOW.
005164,000262: 
005165,000263: 01,2757           00006                           EXTEND                                         #  DISPATCH TASK.
005166,000264: 01,2760           44503                           DCS      ENDTASK                               
005167,000265: 01,2761           53431                           DXCH     LST2       +16D                       
005168,000266: 01,2762           53427                           DXCH     LST2       +14D                       
005169,000267: 01,2763           53425                           DXCH     LST2       +12D                       
005170,000268: 01,2764           53423                           DXCH     LST2       +10D                       
005171,000269: 01,2765           53421                           DXCH     LST2       +8D                        
005172,000270: 01,2766           53417                           DXCH     LST2       +6                         
005173,000271: 01,2767           53415                           DXCH     LST2       +4                         
005174,000272: 01,2770           53413                           DXCH     LST2       +2                         
005175,000273: 01,2771           53411                           DXCH     LST2                                  
005176,000274: 
005177,000275: 01,2772           52006                           DTCB                                           
005178,000276: 
005179,000277: 01,2773                        ENDWAITS           EQUALS                                         
005180,000278: 
005181,000279: 
005182,000280:                                                                                                  #  RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
005183,000281: 
005184,000282:    4505                                           BLOCK    02                                    
005185,000283: 
005186,000284:    4505           11071        TASKOVER           CCS      RUPTAGN                               #  IF +1 RETURN TO T3RUPT, IF -0 RESUME.
005187,000285:    4506           34466                           CAF      WAITBB                                
005188,000286:    4507           54006                           TS       BBANK                                 
005189,000287:    4510           12741                           TCF      T3RUPT2                               #  DISPATCH NEXT TASK IF IT WAS DUE.
005190,000288: 
005191,000289:    4511           00006        RESUME             EXTEND                                         
005192,000290:    4512           22012                           QXCH     QRUPT                                 
005193,000291:    4513           30016        NOQRSM             CA       BANKRUPT                              
005194,000292:    4514           54006                           TS       BBANK                                 
005195,000293:    4515           52011        NOQBRSM            DXCH     ARUPT                                 
005196,000294:    4516           50017                           RESUME                                         
005197,000295: 
005198,000296:    4517                        ENDWAITF           EQUALS                                         #  LAST FIXED-FIXED LOCATION OF T3RUPT.

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