Source Code

   YAYUL: ASSEMBLE REVISION 6 OF PROGRAM BOREALIS       BY MSTEWART JUN. 28,2017
This is a modern AGC system self-test program, though based on the Apollo-era AURORA 12 program, and was not written by the original AGC developers, but rather by Mike Stewart. All of the original AURORA 12 DAP code added by the DAP Group has been removed, and extensive new system test code has been added in its place. This allows more in-depth testing of CPU behavior, both in AGC software simulations and hardware simulations.

010174,000002:                                                                                                  ## Copyright:   Public domain.
010175,000003:                                                                                                  ## Filename:    KEYRUPT,_UPRUPT.agc
010176,000004:                                                                                                  ## Purpose:     This program is designed to extensively test the Apollo Guidance Computer
010177,000005:                                                                                                  ##              (specifically the LM instantiation of it). It is built on top of a heavily
010178,000006:                                                                                                  ##              stripped-down Aurora 12, with all code ostensibly added by the DAP Group
010179,000007:                                                                                                  ##              removed. Instead Borealis expands upon the tests provided by Aurora,
010180,000008:                                                                                                  ##              including corrected tests from Retread 44 and tests from Ron Burkey's
010181,000009:                                                                                                  ##              Validation.
010182,000010:                                                                                                  ## Assembler:   yaYUL
010183,000011:                                                                                                  ## Contact:     Mike Stewart <mastewar1@gmail.com>.
010184,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
010185,000013:                                                                                                  ## Mod history: 2016-12-20 MAS  Created from Aurora 12 (with much DAP stuff removed).
010186,000014: 
010187,000015: 07,2362                                           BANK     7                                     
010188,000016: 
010189,000017: 07,2362           54016        KEYRUPT1           TS       BANKRUPT                              
010190,000018: 07,2363           56002                           XCH      Q                                     
010191,000019: 07,2364           54012                           TS       QRUPT                                 
010192,000020: 07,2365           05251                           TC       LODSAMPT                              #  TIME IS SNATCHED IN RUPT FOR NOUN 65.
010193,000021: 07,2366           35216                           CAF      LOW5                                  
010194,000022: 07,2367           00006                           EXTEND                                         
010195,000023: 07,2370           02015                           RAND     MNKEYIN                               
010196,000024: 07,2371           54077        KEYCOM             TS       RUPTREG4                              
010197,000025: 07,2372           35225                           CAF      CHRPRIO                               
010198,000026: 07,2373           04344                           TC       NOVAC                                 
010199,000027: 07,2374     0264                                  EBANK=   DSPCOUNT                              
010200,000028: 07,2374           02002 10000                     2CADR    CHARIN                                
010201,000029: 07,2376           30077                           CA       RUPTREG4                              
010202,000030: 07,2377           50071                           INDEX    LOCCTR                                
010203,000031: 07,2400           54140                           TS       MPAC                                  #  LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
010204,000032: 07,2401           04567                           TC       RESUME                                
010205,000033: 
010206,000034:                                                                                                  #  UPRUPT PROGRAM
010207,000035: 
010208,000036: 07,2402           54016        UPRUPT             TS       BANKRUPT                              
010209,000037: 07,2403           56002                           XCH      Q                                     
010210,000038: 07,2404           54012                           TS       QRUPT                                 
010211,000039: 07,2405           05251                           TC       LODSAMPT                              #  TIME IS SNATCHED IN RUPT FOR NOUN 65.
010212,000040: 07,2406           37675                           CAF      ZERO                                  
010213,000041: 07,2407           56045                           XCH      INLINK                                
010214,000042: 07,2410           54077                           TS       KEYTEMP1                              
010215,000043: 07,2411           37667                           CAF      BIT3                                  #  TURN ON UPACT LIGHT
010216,000044: 07,2412           00006                           EXTEND                                         #  (BIT 3 OF CHANNEL 11)
010217,000045: 07,2413           05011                           WOR      DSALMOUT                              
010218,000046: 07,2414           35216        UPRUPT1            CAF      LOW5                                  #  TEST FOR TRIPLE CHAR REDUNDANCY
010219,000047: 07,2415           70077                           MASK     KEYTEMP1                              #  LOW5 OF WORD
010220,000048: 07,2416           56077                           XCH      KEYTEMP1                              #  LOW5 INTO KEYTEMP1
010221,000049: 07,2417           56021                           XCH      SR                                    #  WHOLE WORD INTO SR
010222,000050: 07,2420           55070                           TS       KEYTEMP2                              #  ORIGINAL SR INTO KEYTEMP2
010223,000051: 07,2421           02465                           TC       SRGHT5                                
010224,000052: 07,2422           75216                           MASK     LOW5                                  #  MID 5
010225,000053: 07,2423           62477                           AD       HI10                                  
010226,000054: 07,2424           02474                           TC       UPTEST                                
010227,000055: 07,2425           02465                           TC       SRGHT5                                
010228,000056: 07,2426           75216                           MASK     LOW5                                  #  HIGH 5
010229,000057: 07,2427           40000                           COM                                            
010230,000058: 07,2430           02474                           TC       UPTEST                                
010231,000059: 07,2431           02461        UPOK               TC       RESTORSR                              #  CODE IS GOOD
010232,000060: 07,2432           42436                           CS       ELRCODE                               #  IF CODE = ERROR LIGHT RESET, PUT +0
010233,000061: 07,2433           60077                           AD       KEYTEMP1                              #  INTO BIT1 OF UPLOCK.
010234,000062: 07,2434           10000                           CCS      A                                     #  IF CODE NOT= ELR, PASS CODE ONLY IF
010235,000063: 07,2435           02444                           TC       TSTUPLOK                              #  BIT1 OF UPLOCK = 0.
010236,000064: 07,2436           00022        ELRCODE            OCT      22                                    
010237,000065: 07,2437           02444                           TC       TSTUPLOK                              
010238,000066: 07,2440           47671                           CS       BIT1                                  #  PUT 0 INTO BIT1 OF UPLOCK
010239,000067: 07,2441           70342                           MASK     UPLOCK                                
010240,000068: 07,2442           54342                           TS       UPLOCK                                
010241,000069: 07,2443           02450                           TC       ACCEPTUP                              
010242,000070: 07,2444           37671        TSTUPLOK           CAF      BIT1                                  
010243,000071: 07,2445           70342                           MASK     UPLOCK                                
010244,000072: 07,2446           10000                           CCS      A                                     
010245,000073: 07,2447           04567                           TC       RESUME                                #  BIT1 OF UPLOCK = 1.
010246,000074: 07,2450           56077        ACCEPTUP           XCH      KEYTEMP1                              #  BIT1 OF UPLOCK = 0.
010247,000075: 07,2451           02371                           TC       KEYCOM                                
010248,000076: 
010249,000077: 07,2452           02461        TMFAIL2            TC       RESTORSR                              #  CODE IS BAD
010250,000078: 07,2453           47671                           CS       BIT1                                  #  LOCK OUT FURTHER UPLINK ACTIVITY (BY
010251,000079: 07,2454           70342                           MASK     UPLOCK                                #  PUTTING 1 INTO BIT1 OF UPLOCK) UNTIL ELR
010252,000080: 07,2455           67671                           AD       BIT1                                  #  IS SENT UP UPLINK.
010253,000081: 07,2456           54342                           TS       UPLOCK                                
010254,000082: 07,2457           04567        TMFAIL1            TC       TMALM                                 
010255,000083: 07,2460           04567                           TC       RESUME                                
010256,000084: 07,2461           57070        RESTORSR           XCH      KEYTEMP2                              
010257,000085: 07,2462           60000                           DOUBLE                                         
010258,000086: 07,2463           54021                           TS       SR                                    
010259,000087: 07,2464           00002                           TC       Q                                     
010260,000088: 
010261,000089: 07,2465     4567               TMALM              =        RESUME                                #  FOR NOW
010262,000090: 
010263,000091: 07,2465           40021        SRGHT5             CS       SR                                    
010264,000092: 07,2466           40021                           CS       SR                                    
010265,000093: 07,2467           40021                           CS       SR                                    
010266,000094: 07,2470           40021                           CS       SR                                    
010267,000095: 07,2471           40021                           CS       SR                                    
010268,000096: 07,2472           40000                           CS       A                                     
010269,000097: 07,2473           00002                           TC       Q                                     #  DELIVERS WORD UNCOMPLEMENTED
010270,000098: 
010271,000099: 07,2474           60077        UPTEST             AD       KEYTEMP1                              
010272,000100: 07,2475           10000                           CCS      A                                     
010273,000101: 07,2476           02452                           TC       TMFAIL2                               
010274,000102: 07,2477           77740        HI10               OCT      77740                                 
010275,000103: 07,2500           02452                           TC       TMFAIL2                               
010276,000104: 07,2501           00002                           TC       Q                                     
010277,000105: 
010278,000106:                                                                                                  #  UPACT IS TURNED OFF BY VBRELDSP, ALSO BY ERROR LIGHT RESET.       
010279,000107:                                                                                                  #  THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY
010280,000108:                                                                                                  #  BY PLACING A 1 INTO BIT1 OF UPLOCK. BIT9 (ALONG WITH BIT11) OF TMKEYBUF
010281,000109:                                                                                                  #  IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
010282,000110:                                                                                                  #  THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
010283,000111:                                                                                                  #  UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.
010284,000112: 
010285,000113: 07,2502                                           EQUALS                                         

End of include-file KEYRUPT,_UPRUPT.agc.  Parent file is MAIN.agc