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.

005201,000002:                                                                                                  ## Copyright:   Public domain.
005202,000003:                                                                                                  ## Filename:    PHASE_TABLE_MAINTENANCE.agc
005203,000004:                                                                                                  ## Purpose:     A section of Aurora 88.
005204,000005:                                                                                                  ##              It is part of the reconstructed source code for the final
005205,000006:                                                                                                  ##              release of the Lunar Module system test software. No original
005206,000007:                                                                                                  ##              listings of this program are available; instead, this file
005207,000008:                                                                                                  ##              was created via disassembly of dumps of Aurora 88 core rope
005208,000009:                                                                                                  ##              modules and comparison with other AGC programs.
005209,000010:                                                                                                  ## Assembler:   yaYUL
005210,000011:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
005211,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
005212,000013:                                                                                                  ## Mod history: 2023-06-30 MAS  Created from Aurora 12.
005213,000014: 
005214,000015: 
005215,000016:                                                                                                  #        THE FOLLOWING ROUTINES ARE PROVIDED TO MAINTAIN THE PHASE TABLE. TWO ROUTINES ARE AVAILABLE:
005216,000017: 
005217,000018:                                                                                                  #                TC      PHASCHNG        SLOWER BUT LESS STORAGE.
005218,000019:                                                                                                  #                OCT     PPPGG           CHANGE RESTART GROUP GG TO PHASE PPP
005219,000020:                                                                                                  #                                        (PPP IS A SIGNED 8 BIT NUMBER).
005220,000021: 
005221,000022:                                                                                                  #                CA      PPPPP           NEW PHASE ARRIVES IN A.
005222,000023:                                                                                                  #                TC      NEWPHASE
005223,000024:                                                                                                  #                OCT     000GG           UPDATES GG.
005224,000025: 
005225,000026:                                                                                                  #        IN ALL CASES THE OLD PHASE RETURNS IN A. IF THE OLD PHASE WAS NEGATIVE, CALL A ROUTINE USING THE
005226,000027:                                                                                                  #  CORRESPONDING TERMCADR.
005227,000028: 
005228,000029:    4517                                           SETLOC   ENDWAITF                              
005229,000030: 
005230,000031:    4517           00004        PHASCHNG           INHINT                                         
005231,000032:    4520           50002                           INDEX    Q                                     
005232,000033:    4521           30000                           CAF      0                                     #  GET PARAMETER WORD.
005233,000034:    4522           54077                           TS       RUPTREG4                              
005234,000035:    4523           75126                           MASK     LOW5                                  #  GROUP NUMBER 0 - 37.
005235,000036:    4524           60000                           DOUBLE                                         
005236,000037:    4525           56077                           XCH      RUPTREG4                              
005237,000038:    4526           00006                           EXTEND                                         
005238,000039:    4527           77642                           MP       BIT9                                  #  SIGNED NEW PHASE.
005239,000040:    4530           14537                           TCF      PHASCH2                               
005240,000041: 
005241,000042:    4531           00004        NEWPHASE           INHINT                                         #  NEW PHASE ARRIVES IN A.
005242,000043:    4532           54077                           TS       RUPTREG4                              
005243,000044:    4533           50002                           INDEX    Q                                     
005244,000045:    4534           30000                           CAF      0                                     #  GROUP NUMBER.
005245,000046:    4535           60000                           DOUBLE                                         
005246,000047:    4536           56077                           XCH      RUPTREG4                              
005247,000048: 
005248,000049:    4537           54001        PHASCH2            TS       L                                     #  DIRECT VERSION.
005249,000050:    4540           40000                           COM                                            #  COMPLEMENTED VERSION IMMEDIATELY PRE-
005250,000051:    4541           50077                           INDEX    RUPTREG4                              #  CEDES THE DIRECT ONE.
005251,000052:    4542           53073                           DXCH     -PHASE0                               #  COPIES DISAGREE FOR MINIMUM TIME.
005252,000053:    4543           00006                           EXTEND                                         
005253,000054:    4544           64560                           BZMF     PHASEXIT                              #  IF NO DERAIL.
005254,000055: 
005255,000056:    4545           54074                           TS       RUPTREG1                              #  IF NEGATIVE, SAVE ABSOLUTE VALUE OF
005256,000057:    4546           00006                           EXTEND                                         #  OLD PHASE AND RETURN Q.
005257,000058:    4547           22075                           QXCH     RUPTREG2                              
005258,000059:    4550           30077                           CA       RUPTREG4                              #  GET BACK GROUP NUMBER.
005259,000060:    4551           00006                           EXTEND                                         
005260,000061:    4552           77635                           MP       HALF                                  
005261,000062:    4553           50000                           INDEX    A                                     #  SELECT TERMCADR.
005262,000063:    4554           34564                           CAF      TERMCADR                              
005263,000064:    4555           04135                           TC       ISWCALL                               
005264,000065: 
005265,000066:    4556           52075                           DXCH     RUPTREG1                              #  -OLD PHASE BITS TO A - RETURN -1 TO L.
005266,000067:    4557           22002                           LXCH     Q                                     
005267,000068: 
005268,000069:    4560           40000        PHASEXIT           COM                                            #  RETURN OLD PHASE IN A.
005269,000070:    4561           00003                           RELINT                                         
005270,000071:    4562           50002                           INDEX    Q                                     
005271,000072:    4563           00001                           TC       1                                     
005272,000073: 
005273,000074:    4564           00000        TERMCADR           CADR     10000                                 #  FILLED IN AS NEEDED.
005274,000075:    4565           00000                           CADR     10000                                 
005275,000076:    4566           00000                           CADR     10000                                 
005276,000077:    4567           00000                           CADR     10000                                 
005277,000078:    4570           00000                           CADR     10000                                 
005278,000079:    4571           00000                           CADR     10000                                 
005279,000080: 
005280,000081:                                                                                                  #        SUBROUTINE TO UPDATE THE PROGRAM NUMBER DISPLAY ON THE DSKY.
005281,000082: 
005282,000083:    4572           50002        NEWMODEX           INDEX    Q                                     #  UPDATE MODREG.
005283,000084:    4573           30000                           CAF      0                                     
005284,000085:    4574           24002                           INCR     Q                                     
005285,000086:    4575           56276                           XCH      MODREG                                
005286,000087:    4576           40000                           COM                                            #  IF NO CHANGE IN MODE, RETURN IMMEDIATELY
005287,000088:    4577           60276                           AD       MODREG                                
005288,000089:    4600           00006                           EXTEND                                         
005289,000090:    4601           14615                           BZF      TCQ                                   
005290,000091: 
005291,000092:    4602           34604                           CAF      +2                                    #  CALL PINBALL SUBROUTINE.
005292,000093:    4603           14067                           TCF      SWCALL                                #  WITH Q SET TO CALLERS RETURN.
005293,000094: 
005294,000095:    4604           12001                           CADR     DSPMM                                 
005295,000096: 
005296,000097:                                                                                                  #        RETURN TO CALLER +3 IF MODE = THAT AT CALLER +1. OTHERWISE RETURN TO CALLER +2.
005297,000098: 
005298,000099:    4605           50002        CHECKMM            INDEX    Q                                     
005299,000100:    4606           40000                           CS       0                                     
005300,000101:    4607           60276                           AD       MODREG                                
005301,000102:    4610           00006                           EXTEND                                         
005302,000103:    4611           14614                           BZF      +3                                    
005303,000104: 
005304,000105:    4612           50002                           INDEX    Q                                     
005305,000106:    4613           00001                           TC       1                                     #  NO MATCH.
005306,000107: 
005307,000108:    4614           50002                           INDEX    Q                                     
005308,000109:    4615           00002        TCQ                TC       2                                     #  (ALWAYS AVAILABLE TO BZF & BZMF)
005309,000110: 
005310,000111:    4616                        ENDPHMNF           EQUALS                                         

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