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.

013716,000002:                                                                                                  ## Copyright:   Public domain.
013717,000003:                                                                                                  ## Filename:    ALARM_AND_ABORT.agc
013718,000004:                                                                                                  ## Purpose:     This program is designed to extensively test the Apollo Guidance Computer
013719,000005:                                                                                                  ##              (specifically the LM instantiation of it). It is built on top of a heavily
013720,000006:                                                                                                  ##              stripped-down Aurora 12, with all code ostensibly added by the DAP Group
013721,000007:                                                                                                  ##              removed. Instead Borealis expands upon the tests provided by Aurora,
013722,000008:                                                                                                  ##              including corrected tests from Retread 44 and tests from Ron Burkey's
013723,000009:                                                                                                  ##              Validation.
013724,000010:                                                                                                  ## Assembler:   yaYUL
013725,000011:                                                                                                  ## Contact:     Mike Stewart <mastewar1@gmail.com>.
013726,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
013727,000013:                                                                                                  ## Mod history: 2016-12-20 MAS  Created from Aurora 12 (with much DAP stuff removed).
013728,000014: 
013729,000015:                                                                                                  #           THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
013730,000016:                                                                                                  #  EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
013731,000017: 
013732,000018:                                                                                                  #           CALLING SEQUENCE IS AS FOLLOWS:
013733,000019: 
013734,000020:                                                                                                  #           TC     ALARM
013735,000021:                                                                                                  #           OCT    AAANN           ALARM NO. NN IN GENERAL AREA AAA.
013736,000022:                                                                                                  #                                  (RETURNS HERE)
013737,000023: 
013738,000024:    5405                                           SETLOC   ENDPINBF                              
013739,000025:    5405     1363                                  EBANK=   FAILREG                               
013740,000026: 
013741,000027:    5405           00004        ALARM              INHINT                                         
013742,000028:    5406           56002                           XCH      Q                                     
013743,000029:    5407           54077                           TS       RUPTREG4                              
013744,000030: 
013745,000031:    5410           11363                           CCS      FAILREG                               #  SEE IF ONE FAILURE HAS OCCURRED SINCE
013746,000032:                                                                                                  #   THE LAST ERROR RESET.
013747,000033:    5411           05417                           TC       MULTFAIL                              #  YES - INDICATE MULTIPLE FAILURES.
013748,000034:    5412           05422                           TC       NEWALARM                              #  FIRST SINCE RESET.
013749,000035: 
013750,000036:    5413           30077        MULTEXIT           CA       RUPTREG4                              #  FREE RUPTREG4 BEFORE RELINT.
013751,000037:    5414           00003                           RELINT                                         
013752,000038:    5415           50000                           INDEX    A                                     
013753,000039:    5416           00001                           TC       1                                     #  RETURN TO CALLER.
013754,000040: 
013755,000041:    5417           66042        MULTFAIL           AD       OCT40001                              #  BIT 15 = 1 INDICATES MULTIPLE FAILURES.
013756,000042:    5420           55363                           TS       FAILREG                               
013757,000043:    5421           05413                           TC       MULTEXIT                              
013758,000044: 
013759,000045:    5422           05432        NEWALARM           TC       PROGLARM                              #  TURN ON THE PROGRAM ALARM LIGHT.
013760,000046: 
013761,000047:    5423           34516                           CAF      PRIO37                                
013762,000048:    5424           04344                           TC       NOVAC                                 
013763,000049:    5425           02775 02002                     2CADR    DOALARM                               #  CALL (SEPARATE) JOB FOR DISPLAY.
013764,000050: 
013765,000051:    5427           50077                           INDEX    RUPTREG4                              
013766,000052:    5430           30000                           CAF      0                                     
013767,000053:    5431           05420                           TC       MULTFAIL   +1                         
013768,000054: 
013769,000055:    5432           45437        PROGLARM           CS       OCT40400                              #  TURN ON PROGRAM ALARM LIGHT VIA OUT0.
013770,000056:    5433           70322                           MASK     DSPTAB     +11D                       
013771,000057:    5434           65437                           AD       OCT40400                              
013772,000058:    5435           54322                           TS       DSPTAB     +11D                       
013773,000059:    5436           00002                           TC       Q                                     
013774,000060: 
013775,000061:    5437           40400        OCT40400           OCT      40400                                 
013776,000062: 
013777,000063:                                                                                                  #           THE FOLLOWING ROUTINE IS CALLED TO INITIATE AN ABORT. FAILREG IS SET (ACCORDING TO THE MULTIPLE
013778,000064:                                                                                                  #  FAILURES CONVENTION) AND A RE-START IS INITIATED BY TC-SELF. THIS IS CALLED ONLY UNDER RARE CIRCUMSTANCES.
013779,000065: 
013780,000066:    5440           00004        ABORT              INHINT                                         #  MAY BE CALLED IN INTERRUPT OR UNDER EXEC
013781,000067:    5441           50002                           INDEX    Q                                     #  PICK UP FAILURE CODE.
013782,000068:    5442           30000                           CAF      0                                     
013783,000069:    5443           54065                           TS       ITEMP1                                
013784,000070: 
013785,000071:    5444           11363                           CCS      FAILREG                               #  SEE IF THIS IS A MULTIPLE FAILURE.
013786,000072:    5445           05450                           TC       SETMULTF                              #  SET BIT 15 TO INDICATE YES.
013787,000073:    5446           05452                           TC       NEWABORT                              #  FIRST FAILURE.
013788,000074: 
013789,000075:    5447           05447        WHIMPER            TC       WHIMPER                               #  NOT WITH A BANG...
013790,000076: 
013791,000077:    5450           66042        SETMULTF           AD       OCT40001                              #  RESTORE AND SET BIT 15.
013792,000078:    5451           05454                           TC       +3                                    
013793,000079: 
013794,000080:    5452           05432        NEWABORT           TC       PROGLARM                              #  FIRST FAILURE - TURN ON ALARM LIGHT.
013795,000081:    5453           56065                           XCH      ITEMP1                                
013796,000082:    5454           55363                 +3        TS       FAILREG                               
013797,000083:    5455           05447                           TC       WHIMPER                               #  UNIVERSAL ABORT LOCATION.
013798,000084: 
013799,000085:    5456           56002        CCSHOLE            XCH      Q                                     
013800,000086:    5457           55364                           TS       SFAIL                                 
013801,000087: 
013802,000088:    5460           05440                           TC       ABORT                                 
013803,000089:    5461           01103                           OCT      1103                                  
013804,000090: 
013805,000091:    5462                        ENDFAILF           EQUALS                                         
013806,000092: 
013807,000093:                                                                                                  #           JOB WHICH CALLS NVSUB FOR ALARM DISPLAY.
013808,000094: 
013809,000095: 01,2775                                           SETLOC   ENDWAITS                              
013810,000096: 
013811,000097: 01,2775           05311        DOALARM            TC       GRABWAIT                              #  DISPLAY FAILREG.
013812,000098: 01,2776           33001                           CAF      FAILDISP                              
013813,000099: 01,2777           05324                           TC       NVSBWAIT                              
013814,000100: 
013815,000101: 01,3000           04420                           TC       EJFREE                                #  FREE DISPLAY AND END JOB.
013816,000102: 
013817,000103: 01,3001           00531        FAILDISP           OCT      00531                                 
013818,000104: 
013819,000105: 01,3002                        ENDFAILS           EQUALS                                         

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