Source Code

   YAYUL: ASSEMBLE REVISION 5 OF PROGRAM BOREALIS       BY MSTEWART MAR. 27,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.

010089,000002:                                                                                                  ## Copyright:   Public domain.
010090,000003:                                                                                                  ## Filename:    KEYRUPT,_UPRUPT.agc
010091,000004:                                                                                                  ## Purpose:     This program is designed to extensively test the Apollo Guidance Computer
010092,000005:                                                                                                  ##              (specifically the LM instantiation of it). It is built on top of a heavily
010093,000006:                                                                                                  ##              stripped-down Aurora 12, with all code ostensibly added by the DAP Group
010094,000007:                                                                                                  ##              removed. Instead Borealis expands upon the tests provided by Aurora,
010095,000008:                                                                                                  ##              including corrected tests from Retread 44 and tests from Ron Burkey's
010096,000009:                                                                                                  ##              Validation.
010097,000010:                                                                                                  ## Assembler:   yaYUL
010098,000011:                                                                                                  ## Contact:     Mike Stewart <mastewar1@gmail.com>.
010099,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
010100,000013:                                                                                                  ## Mod history: 2016-12-20 MAS  Created from Aurora 12 (with much DAP stuff removed).
010101,000014: 
010102,000015: 07,2362                                           BANK     7                                     
010103,000016: 
010104,000017: 07,2362           54016        KEYRUPT1           TS       BANKRUPT                              
010105,000018: 07,2363           56002                           XCH      Q                                     
010106,000019: 07,2364           54012                           TS       QRUPT                                 
010107,000020: 07,2365           05251                           TC       LODSAMPT                              #  TIME IS SNATCHED IN RUPT FOR NOUN 65.
010108,000021: 07,2366           35216                           CAF      LOW5                                  
010109,000022: 07,2367           00006                           EXTEND                                         
010110,000023: 07,2370           02015                           RAND     MNKEYIN                               
010111,000024: 07,2371           54077        KEYCOM             TS       RUPTREG4                              
010112,000025: 07,2372           35225                           CAF      CHRPRIO                               
010113,000026: 07,2373           04344                           TC       NOVAC                                 
010114,000027: 07,2374     0264                                  EBANK=   DSPCOUNT                              
010115,000028: 07,2374           02002 10000                     2CADR    CHARIN                                
010116,000029: 07,2376           30077                           CA       RUPTREG4                              
010117,000030: 07,2377           50071                           INDEX    LOCCTR                                
010118,000031: 07,2400           54140                           TS       MPAC                                  #  LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
010119,000032: 07,2401           04567                           TC       RESUME                                
010120,000033: 
010121,000034:                                                                                                  #  UPRUPT PROGRAM
010122,000035: 
010123,000036: 07,2402           54016        UPRUPT             TS       BANKRUPT                              
010124,000037: 07,2403           56002                           XCH      Q                                     
010125,000038: 07,2404           54012                           TS       QRUPT                                 
010126,000039: 07,2405           05251                           TC       LODSAMPT                              #  TIME IS SNATCHED IN RUPT FOR NOUN 65.
010127,000040: 07,2406           37665                           CAF      ZERO                                  
010128,000041: 07,2407           56045                           XCH      INLINK                                
010129,000042: 07,2410           54077                           TS       KEYTEMP1                              
010130,000043: 07,2411           37655                           CAF      BIT3                                  #  TURN ON UPACT LIGHT
010131,000044: 07,2412           00006                           EXTEND                                         #  (BIT 3 OF CHANNEL 11)
010132,000045: 07,2413           05011                           WOR      DSALMOUT                              
010133,000046: 07,2414           35216        UPRUPT1            CAF      LOW5                                  #  TEST FOR TRIPLE CHAR REDUNDANCY
010134,000047: 07,2415           70077                           MASK     KEYTEMP1                              #  LOW5 OF WORD
010135,000048: 07,2416           56077                           XCH      KEYTEMP1                              #  LOW5 INTO KEYTEMP1
010136,000049: 07,2417           56021                           XCH      SR                                    #  WHOLE WORD INTO SR
010137,000050: 07,2420           55070                           TS       KEYTEMP2                              #  ORIGINAL SR INTO KEYTEMP2
010138,000051: 07,2421           02465                           TC       SRGHT5                                
010139,000052: 07,2422           75216                           MASK     LOW5                                  #  MID 5
010140,000053: 07,2423           62477                           AD       HI10                                  
010141,000054: 07,2424           02474                           TC       UPTEST                                
010142,000055: 07,2425           02465                           TC       SRGHT5                                
010143,000056: 07,2426           75216                           MASK     LOW5                                  #  HIGH 5
010144,000057: 07,2427           40000                           COM                                            
010145,000058: 07,2430           02474                           TC       UPTEST                                
010146,000059: 07,2431           02461        UPOK               TC       RESTORSR                              #  CODE IS GOOD
010147,000060: 07,2432           42436                           CS       ELRCODE                               #  IF CODE = ERROR LIGHT RESET, PUT +0
010148,000061: 07,2433           60077                           AD       KEYTEMP1                              #  INTO BIT1 OF UPLOCK.
010149,000062: 07,2434           10000                           CCS      A                                     #  IF CODE NOT= ELR, PASS CODE ONLY IF
010150,000063: 07,2435           02444                           TC       TSTUPLOK                              #  BIT1 OF UPLOCK = 0.
010151,000064: 07,2436           00022        ELRCODE            OCT      22                                    
010152,000065: 07,2437           02444                           TC       TSTUPLOK                              
010153,000066: 07,2440           47657                           CS       BIT1                                  #  PUT 0 INTO BIT1 OF UPLOCK
010154,000067: 07,2441           70342                           MASK     UPLOCK                                
010155,000068: 07,2442           54342                           TS       UPLOCK                                
010156,000069: 07,2443           02450                           TC       ACCEPTUP                              
010157,000070: 07,2444           37657        TSTUPLOK           CAF      BIT1                                  
010158,000071: 07,2445           70342                           MASK     UPLOCK                                
010159,000072: 07,2446           10000                           CCS      A                                     
010160,000073: 07,2447           04567                           TC       RESUME                                #  BIT1 OF UPLOCK = 1.
010161,000074: 07,2450           56077        ACCEPTUP           XCH      KEYTEMP1                              #  BIT1 OF UPLOCK = 0.
010162,000075: 07,2451           02371                           TC       KEYCOM                                
010163,000076: 
010164,000077: 07,2452           02461        TMFAIL2            TC       RESTORSR                              #  CODE IS BAD
010165,000078: 07,2453           47657                           CS       BIT1                                  #  LOCK OUT FURTHER UPLINK ACTIVITY (BY
010166,000079: 07,2454           70342                           MASK     UPLOCK                                #  PUTTING 1 INTO BIT1 OF UPLOCK) UNTIL ELR
010167,000080: 07,2455           67657                           AD       BIT1                                  #  IS SENT UP UPLINK.
010168,000081: 07,2456           54342                           TS       UPLOCK                                
010169,000082: 07,2457           04567        TMFAIL1            TC       TMALM                                 
010170,000083: 07,2460           04567                           TC       RESUME                                
010171,000084: 07,2461           57070        RESTORSR           XCH      KEYTEMP2                              
010172,000085: 07,2462           60000                           DOUBLE                                         
010173,000086: 07,2463           54021                           TS       SR                                    
010174,000087: 07,2464           00002                           TC       Q                                     
010175,000088: 
010176,000089: 07,2465     4567               TMALM              =        RESUME                                #  FOR NOW
010177,000090: 
010178,000091: 07,2465           40021        SRGHT5             CS       SR                                    
010179,000092: 07,2466           40021                           CS       SR                                    
010180,000093: 07,2467           40021                           CS       SR                                    
010181,000094: 07,2470           40021                           CS       SR                                    
010182,000095: 07,2471           40021                           CS       SR                                    
010183,000096: 07,2472           40000                           CS       A                                     
010184,000097: 07,2473           00002                           TC       Q                                     #  DELIVERS WORD UNCOMPLEMENTED
010185,000098: 
010186,000099: 07,2474           60077        UPTEST             AD       KEYTEMP1                              
010187,000100: 07,2475           10000                           CCS      A                                     
010188,000101: 07,2476           02452                           TC       TMFAIL2                               
010189,000102: 07,2477           77740        HI10               OCT      77740                                 
010190,000103: 07,2500           02452                           TC       TMFAIL2                               
010191,000104: 07,2501           00002                           TC       Q                                     
010192,000105: 
010193,000106:                                                                                                  #  UPACT IS TURNED OFF BY VBRELDSP, ALSO BY ERROR LIGHT RESET.       
010194,000107:                                                                                                  #  THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY
010195,000108:                                                                                                  #  BY PLACING A 1 INTO BIT1 OF UPLOCK. BIT9 (ALONG WITH BIT11) OF TMKEYBUF
010196,000109:                                                                                                  #  IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
010197,000110:                                                                                                  #  THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
010198,000111:                                                                                                  #  UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.
010199,000112: 
010200,000113: 07,2502                                           EQUALS                                         

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