Source Code

These source-code files were reconstructed by Mike Stewart from dumps of the RETREAD 50 program stored in physical AGC core-rope modules (B1 and B2) belonging to the Computer History Museum, Mountain View, California. The reconstruction was aided by pre-existing source code for the AGC programs RETREAD 44 and AURORA 12. Read about the process here. Assembling this source code with yaYUL produces core ropes identical to those of the physical modules. Page-number references refer to corresponding sections of RETREAD 44 source code. No printouts of RETREAD 50 program listings are available. Names of variables and program constants of the form "UNKnnnn" appear in areas not yet correlated with other pre-existing source code, and which are therefore unknown.

004143,000002:                                                                                                  ## Copyright:   Public domain.
004144,000003:                                                                                                  ## Filename:    WAITLIST.agc
004145,000004:                                                                                                  ## Purpose:     Part of the source code for AGC program Retread 50. 
004146,000005:                                                                                                  ## Assembler:   yaYUL
004147,000006:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
004148,000007:                                                                                                  ## Website:     www.ibiblio.org/apollo/Restoration.html
004149,000008:                                                                                                  ## Mod history: 2019-06-12 MAS  Recreated from Computer History Museum's
004150,000009:                                                                                                  ##                              physical core-rope modules.
004151,000010: 

Page 118

004153,000012: 
004154,000013:                                                                                                  #  GROUNDRULE....DELTA T SHOULD NOT EXCEED 12000 (= 2 MINUTES)
004155,000014: 
004156,000015:    4251                                           SETLOC   ENDEXECF                              
004157,000016: 
004158,000017:    4251  E3,1400                                  EBANK=   LST1                                  #  TASK LISTS IN SWITCHED E BANK.
004159,000018: 
004160,000019:    4251           56002        WAITLIST           XCH      Q                                     #   SAVE DELTA T IN Q AND RETURN IN
004161,000020:    4252           54624                           TS       WAITEXIT                              #  WAITEXIT.
004162,000021:    4253           00006                           EXTEND                                         
004163,000022:    4254           50000                           INDEX    A                                     
004164,000023:    4255           30001                           DCA      0                                     #  PICK UP 2CADR OF TASK.
004165,000024:    4256           54630                           TS       WAITADR                               #  BBCON WILL REMAIN IN L.
004166,000025:    4257           34266        DLY2               CAF      WAITBB                                
004167,000026:    4260           56006                           XCH      BBANK                                 
004168,000027:    4261           12557                           TCF      WAIT2                                 
004169,000028: 
004170,000029:                                                                                                  #           RETURN TO CALLER AFTER TASK INSERTION:
004171,000030: 
004172,000031:    4262           30625        LVWTLIST           CA       WAITBANK                              
004173,000032:    4263           54006                           TS       BBANK                                 
004174,000033:    4264           50624                           INDEX    WAITEXIT                              
004175,000034:    4265           00002                           TC       2                                     
004176,000035: 
004177,000036:    4266           02003        WAITBB             BBCON    WAIT2                                 
004178,000037: 
004179,000038:                                                                                                  #  ENDTASK MUST BE ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
004180,000039: 
004181,000040:    4267           73506 73774  ENDTASK            -2CADR   SVCT3                                 
004182,000041: 
004183,000042:    4271           14321        SVCT3              TCF      TASKOVER                              
004184,000043: 

Page 119

004186,000045:                                                                                                  #           BEGIN TASK INSERTION.
004187,000046: 
004188,000047: 01,2557                                           SETLOC   ENDEXECS                              
004189,000048: 
004190,000049: 01,2557           54625        WAIT2              TS       WAITBANK                              #  BBANK OF CALLING PROGRAM.
004191,000050: 01,2560           40026                           CS       TIME3                                 
004192,000051: 01,2561           62562                           AD       +1                                    #  CCS  A  = + 1/4
004193,000052: 01,2562           10000                           CCS      A                                     #  TEST  1/4 - C(TIME3).  IF POSITIVE,
004194,000053:                                                                                                  #          IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS  TIME3 AND THAT
004195,000054:                                                                                                  #          C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T).  THE FOLLOWING FOUR
004196,000055:                                                                                                  #          ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
004197,000056: 
004198,000057: 01,2563           66042                           AD       OCT40001                              #  OVERFLOW HAS OCCURRED.  SET C(A) =
004199,000058: 01,2564           40000                           CS       A                                     #  T - T1 + 3/4 - 1
004200,000059: 
004201,000060:                                                                                                  #  NORMAL CASE (C(A) MINUS) YIELDS SAME C(A)  -(-(1.0-(T1-T))+1/4)-1
004202,000061: 
004203,000062: 01,2565           62657                           AD       OCT50001                              
004204,000063: 01,2566           60002                           AD       Q                                     #  RESULT = TD - T1 + 1.
004205,000064: 
004206,000065: 01,2567           10000                           CCS      A                                     #  TEST TD - T1 + 1
004207,000066: 
004208,000067: 01,2570           61400                           AD       LST1                                  #  IF TD - T1 POS, GO TO WTLST5 WITH
004209,000068: 01,2571           12625                           TCF      WTLST5                                #  C(A) = (TD - T1) + C(LST1) = TD-T2+1
004210,000069: 
004211,000070: 01,2572           12573                           NOOP                                           
004212,000071: 01,2573           40002                           CS       Q                                     
004213,000072: 
004214,000073:                                                                                                  #  NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
004215,000074:                                                                                                  #  SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1 .  (G/E
004216,000075:                                                                                                  #  SYMBOL MEANS GREATER THAN OR EQUAL TO).  THUS THERE NEED BE NO CON-
004217,000076:                                                                                                  #  CERN OVER A PREVIOUS OR IMMINENT OVERFLOW OF TIME3 HERE.
004218,000077: 
004219,000078: 01,2574           67631                           AD       POS1/2                                #  WHEN TD IS NEXT, FORM QUANTITY
004220,000079: 01,2575           67631                           AD       POS1/2                                #    1.0 - DELTA T = 1.0 - (TD - T)
004221,000080: 01,2576           56026                           XCH      TIME3                                 
004222,000081: 01,2577           67630                           AD       NEGMAX                                
004223,000082: 01,2600           60002                           AD       Q                                     #  1.0 - DELTAT T NOW COMPLETE.
004224,000083: 01,2601           00006                           EXTEND                                         #  ZERO INDEX Q.
004225,000084: 01,2602           22007                           QXCH     7                                     #  (ZQ)
004226,000085: 

Page 120

004228,000087: 01,2603           57400        WTLST4             XCH      LST1                                  
004229,000088: 01,2604           57401                           XCH      LST1       +1                         
004230,000089: 01,2605           57402                           XCH      LST1       +2                         
004231,000090: 01,2606           57403                           XCH      LST1       +3                         
004232,000091: 01,2607           57404                           XCH      LST1       +4                         
004233,000092: 
004234,000093: 01,2610           30630                           CA       WAITADR                               #  (MINOR PART OF TASK CADR HAS BEEN IN L.)
004235,000094: 01,2611           50002                           INDEX    Q                                     
004236,000095: 01,2612           12613                           TCF      +1                                    
004237,000096: 
004238,000097: 01,2613           53406                           DXCH     LST2                                  
004239,000098: 01,2614           53410                           DXCH     LST2       +2                         
004240,000099: 01,2615           53412                           DXCH     LST2       +4                         
004241,000100: 01,2616           53414                           DXCH     LST2       +6                         
004242,000101: 01,2617           53416                           DXCH     LST2       +8D                        
004243,000102: 01,2620           53420                           DXCH     LST2       +10D                       #  AT END, CHECK THAT C(LST2 +10) IS STD
004244,000103: 01,2621           64267                           AD       ENDTASK                               #    END ITEM, AS CHECK FOR EXCEEDING
004245,000104:                                                                                                  #    THE LENGTH OF THE LIST.
004246,000105: 01,2622           00006                           EXTEND                                         #  DUMMY TASK ADRES SHOULD BE IN FIXED-
004247,000106: 01,2623           14262                           BZF      LVWTLIST                              #  FIXED SO ITS ADRES ALONE DISTINGUISHES
004248,000107: 01,2624           12663                           TCF      WTABORT                               #  IT.
004249,000108: 

Page 121

004251,000110: 
004252,000111: 01,2625           10000        WTLST5             CCS      A                                     #  TEST TD - T2 + 1
004253,000112: 01,2626           61401                           AD       LST1       +1                         
004254,000113: 01,2627           12633                           TCF      +4                                    
004255,000114: 01,2630           67646                           AD       ONE                                   
004256,000115: 01,2631           02664                           TC       WTLST2                                
004257,000116: 01,2632           00001                           OCT      1                                     
004258,000117: 
004259,000118: 01,2633           10000                 +4        CCS      A                                     #  TEST TD - T3 + 1
004260,000119: 01,2634           61402                           AD       LST1       +2                         
004261,000120: 01,2635           12641                           TCF      +4                                    
004262,000121: 01,2636           67646                           AD       ONE                                   
004263,000122: 01,2637           02664                           TC       WTLST2                                
004264,000123: 01,2640           00002                           OCT      2                                     
004265,000124: 
004266,000125: 01,2641           10000                 +4        CCS      A                                     #  TEST TD - T4 + 1
004267,000126: 01,2642           61403                           AD       LST1       +3                         
004268,000127: 01,2643           12647                           TCF      +4                                    
004269,000128: 01,2644           67646                           AD       ONE                                   
004270,000129: 01,2645           02664                           TC       WTLST2                                
004271,000130: 01,2646           00003                           OCT      3                                     
004272,000131: 
004273,000132: 01,2647           10000                 +4        CCS      A                                     #  TEST TD - T5 + 1
004274,000133: 01,2650           61404                           AD       LST1       +4                         
004275,000134: 01,2651           12655                           TCF      +4                                    
004276,000135: 01,2652           67646                           AD       ONE                                   
004277,000136: 01,2653           02664                           TC       WTLST2                                
004278,000137: 01,2654           00004                           OCT      4                                     
004279,000138: 
004280,000139: 01,2655           10000                 +4        CCS      A                                     #  TEST TD - T6 + 1
004281,000140: 01,2656           12663                           TCF      WTABORT                               
004282,000141: 01,2657           50001        OCT50001           OCT      50001                                 
004283,000142: 01,2660           67646                           AD       ONE                                   
004284,000143: 01,2661           02664                           TC       WTLST2                                
004285,000144: 01,2662           00005                           OCT      5                                     
004286,000145: 
004287,000146: 01,2663           02663        WTABORT            TC       -0                                    #  LIST OVERFLOW.
004288,000147: 
004289,000148: 

Page 122

004291,000150:                                                                                                  #  THE ENTRY TO WTLST2 JUST PRECEDING OCT  N  IS FOR T  LE TD LE T   -1.
004292,000151:                                                                                                  #                                                     N           N+1
004293,000152: 
004294,000153:                                                                                                  #  (LE MEANS LESS THAN OR EQUAL TO).  AT ENTRY, C(A) = -(TD - T   + 1)
004295,000154:                                                                                                  #                                                              N+1
004296,000155: 
004297,000156:                                                                                                  #  THE LST1 ENTRY -(T   - T +1) IS TO BE REPLACED BY -(TD - T  + 1), AND
004298,000157:                                                                                                  #                    N+1   N                                 N
004299,000158: 
004300,000159:                                                                                                  #  THE ENTRY -(T   - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
004301,000160:                                                                                                  #               N+1
004302,000161: 
004303,000162: 01,2664           54631        WTLST2             TS       WAITTEMP                              #      C(A) = -(TD - T   + 1)
004304,000163: 01,2665           50002                           INDEX    Q                                     
004305,000164: 01,2666           30000                           CAF      0                                     
004306,000165: 01,2667           54002                           TS       Q                                     #  INDEX VALUE INTO Q.
004307,000166: 
004308,000167: 01,2670           37646                           CAF      ONE                                   
004309,000168: 01,2671           60631                           AD       WAITTEMP                              
004310,000169: 01,2672           50002                           INDEX    Q                                     #  C(A) = -(TD - T ) + 1.
004311,000170: 01,2673           27377                           ADS      LST1       -1                         #                 N
004312,000171: 
004313,000172: 01,2674           40631                           CS       WAITTEMP                              
004314,000173: 01,2675           50002                           INDEX    Q                                     
004315,000174: 01,2676           12603                           TCF      WTLST4                                
004316,000175: 
004317,000176: 01,2677                        ENDWAITS           EQUALS                                         #  LAST SWITCHABLE LOCATION.
004318,000177: 
004319,000178:                                                                                                  #  C(TIME3)  = 1.0 - (T1 - T)
004320,000179: 
004321,000180:                                                                                                  #  C(LST1  ) = - (T2 - T1) + 1
004322,000181:                                                                                                  #  C(LST1+1) = - (T3 - T2) + 1
004323,000182:                                                                                                  #  C(LST1+2) = - (T4 - T3) + 1
004324,000183:                                                                                                  #  C(LST1+3) = - (T5 - T4) + 1
004325,000184:                                                                                                  #  C(LST1+4) = - (T6 - T5) + 1
004326,000185: 
004327,000186:                                                                                                  #  C(LST2   ) = 2CADR  TASK1
004328,000187:                                                                                                  #  C(LST2+2 ) = 2CADR  TASK2
004329,000188:                                                                                                  #  C(LST2+4 ) = 2CADR  TASK3
004330,000189:                                                                                                  #  C(LST2+6 ) = 2CADR  TASK4
004331,000190:                                                                                                  #  C(LST2+8 ) = 2CADR  TASK5
004332,000191:                                                                                                  #  C(LST2+10) = 2CADR  TASK6
004333,000192: 

Page 123

004335,000194:                                                                                                  #           ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
004336,000195: 
004337,000196:    4272                                           SETLOC   SVCT3      +1                         
004338,000197: 
004339,000198:    4272           54016        T3RUPT             TS       BANKRUPT                              
004340,000199:    4273           00006                           EXTEND                                         
004341,000200:    4274           22012                           QXCH     QRUPT                                 
004342,000201: 
004343,000202:    4275           37627        T3RUPT2            CAF      NEG1/2                                #  DISPATCH WAITLIST TASK.
004344,000203:    4276           57404                           XCH      LST1       +4                         #  1.  MOVE UP LST1 CONTENTS, ENTERING
004345,000204:    4277           57403                           XCH      LST1       +3                         #      A VALUE OF 1/2 +1 AT THE BOTTOM
004346,000205:    4300           57402                           XCH      LST1       +2                         #      FOR T6-T5, CORRESPONDING TO THE
004347,000206:    4301           57401                           XCH      LST1       +1                         #      INTERVAL 81.91 SEC FOR ENDTASK.
004348,000207:    4302           57400                           XCH      LST1                                  
004349,000208:    4303           67626                           AD       POSMAX                                #  2. SET T3 = 1.0 - T2 -T USING LIST 1.
004350,000209:    4304           26026                           ADS      TIME3                                 #  SO T3 WONT TICK DURING UPDATE.
004351,000210:    4305           54636                           TS       RUPTAGN                               
004352,000211:    4306           47653                           CS       ZERO                                  
004353,000212:    4307           54636                           TS       RUPTAGN                               #  SETS RUPTAGN TO +1 ON OVERFLOW.
004354,000213: 
004355,000214:    4310           00006                           EXTEND                                         #  DISPATCH TASK.
004356,000215:    4311           44270                           DCS      ENDTASK                               
004357,000216:    4312           53420                           DXCH     LST2       +10D                       
004358,000217:    4313           53416                           DXCH     LST2       +8D                        
004359,000218:    4314           53414                           DXCH     LST2       +6                         
004360,000219:    4315           53412                           DXCH     LST2       +4                         
004361,000220:    4316           53410                           DXCH     LST2       +2                         
004362,000221:    4317           53406                           DXCH     LST2                                  
004363,000222: 
004364,000223:    4320           52006                           DTCB                                           
004365,000224: 
004366,000225: 
004367,000226: 
004368,000227:                                                                                                  #  RETURN, AFTER EXECUTION OF TIME3 OVERFLOW TASK.
004369,000228: 
004370,000229:    4321           10636        TASKOVER           CCS      RUPTAGN                               #  IF +1 RETURN TO T3RUPT, IF -0 RESUME.
004371,000230:    4322           34266                           CAF      WAITBB                                
004372,000231:    4323           54006                           TS       BBANK                                 
004373,000232:    4324           14275                           TCF      T3RUPT2                               #  DISPATCH NEXT TASK IF IT WAS DUE.
004374,000233: 
004375,000234:    4325           00006        RESUME             EXTEND                                         
004376,000235:    4326           22012                           QXCH     QRUPT                                 
004377,000236:    4327           30016                           CA       BANKRUPT                              
004378,000237:    4330           54006                           TS       BBANK                                 
004379,000238:    4331           52011                           DXCH     ARUPT                                 
004380,000239:    4332           50017                           RESUME                                         
004381,000240: 
004382,000241:    4333                        ENDWAITF           EQUALS                                         #  LAST FIXED-FIXED LOCATION OF T3RUPT.

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