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.

013801,000002:                                                                                                  ## Copyright:   Public domain.
013802,000003:                                                                                                  ## Filename:    ALARM_AND_ABORT.agc
013803,000004:                                                                                                  ## Purpose:     This program is designed to extensively test the Apollo Guidance Computer
013804,000005:                                                                                                  ##              (specifically the LM instantiation of it). It is built on top of a heavily
013805,000006:                                                                                                  ##              stripped-down Aurora 12, with all code ostensibly added by the DAP Group
013806,000007:                                                                                                  ##              removed. Instead Borealis expands upon the tests provided by Aurora,
013807,000008:                                                                                                  ##              including corrected tests from Retread 44 and tests from Ron Burkey's
013808,000009:                                                                                                  ##              Validation.
013809,000010:                                                                                                  ## Assembler:   yaYUL
013810,000011:                                                                                                  ## Contact:     Mike Stewart <mastewar1@gmail.com>.
013811,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
013812,000013:                                                                                                  ## Mod history: 2016-12-20 MAS  Created from Aurora 12 (with much DAP stuff removed).
013813,000014: 
013814,000015:                                                                                                  #           THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
013815,000016:                                                                                                  #  EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
013816,000017: 
013817,000018:                                                                                                  #           CALLING SEQUENCE IS AS FOLLOWS:
013818,000019: 
013819,000020:                                                                                                  #           TC     ALARM
013820,000021:                                                                                                  #           OCT    AAANN           ALARM NO. NN IN GENERAL AREA AAA.
013821,000022:                                                                                                  #                                  (RETURNS HERE)
013822,000023: 
013823,000024:    5405                                           SETLOC   ENDPINBF                              
013824,000025:    5405     1363                                  EBANK=   FAILREG                               
013825,000026: 
013826,000027:    5405           00004        ALARM              INHINT                                         
013827,000028:    5406           56002                           XCH      Q                                     
013828,000029:    5407           54077                           TS       RUPTREG4                              
013829,000030: 
013830,000031:    5410           11363                           CCS      FAILREG                               #  SEE IF ONE FAILURE HAS OCCURRED SINCE
013831,000032:                                                                                                  #   THE LAST ERROR RESET.
013832,000033:    5411           05417                           TC       MULTFAIL                              #  YES - INDICATE MULTIPLE FAILURES.
013833,000034:    5412           05422                           TC       NEWALARM                              #  FIRST SINCE RESET.
013834,000035: 
013835,000036:    5413           30077        MULTEXIT           CA       RUPTREG4                              #  FREE RUPTREG4 BEFORE RELINT.
013836,000037:    5414           00003                           RELINT                                         
013837,000038:    5415           50000                           INDEX    A                                     
013838,000039:    5416           00001                           TC       1                                     #  RETURN TO CALLER.
013839,000040: 
013840,000041:    5417           66040        MULTFAIL           AD       OCT40001                              #  BIT 15 = 1 INDICATES MULTIPLE FAILURES.
013841,000042:    5420           55363                           TS       FAILREG                               
013842,000043:    5421           05413                           TC       MULTEXIT                              
013843,000044: 
013844,000045:    5422           05432        NEWALARM           TC       PROGLARM                              #  TURN ON THE PROGRAM ALARM LIGHT.
013845,000046: 
013846,000047:    5423           34516                           CAF      PRIO37                                
013847,000048:    5424           04344                           TC       NOVAC                                 
013848,000049:    5425           03010 02002                     2CADR    DOALARM                               #  CALL (SEPARATE) JOB FOR DISPLAY.
013849,000050: 
013850,000051:    5427           50077                           INDEX    RUPTREG4                              
013851,000052:    5430           30000                           CAF      0                                     
013852,000053:    5431           05420                           TC       MULTFAIL   +1                         
013853,000054: 
013854,000055:    5432           45437        PROGLARM           CS       OCT40400                              #  TURN ON PROGRAM ALARM LIGHT VIA OUT0.
013855,000056:    5433           70322                           MASK     DSPTAB     +11D                       
013856,000057:    5434           65437                           AD       OCT40400                              
013857,000058:    5435           54322                           TS       DSPTAB     +11D                       
013858,000059:    5436           00002                           TC       Q                                     
013859,000060: 
013860,000061:    5437           40400        OCT40400           OCT      40400                                 
013861,000062: 
013862,000063:                                                                                                  #           THE FOLLOWING ROUTINE IS CALLED TO INITIATE AN ABORT. FAILREG IS SET (ACCORDING TO THE MULTIPLE
013863,000064:                                                                                                  #  FAILURES CONVENTION) AND A RE-START IS INITIATED BY TC-SELF. THIS IS CALLED ONLY UNDER RARE CIRCUMSTANCES.
013864,000065: 
013865,000066:    5440           00004        ABORT              INHINT                                         #  MAY BE CALLED IN INTERRUPT OR UNDER EXEC
013866,000067:    5441           50002                           INDEX    Q                                     #  PICK UP FAILURE CODE.
013867,000068:    5442           30000                           CAF      0                                     
013868,000069:    5443           54065                           TS       ITEMP1                                
013869,000070: 
013870,000071:    5444           11363                           CCS      FAILREG                               #  SEE IF THIS IS A MULTIPLE FAILURE.
013871,000072:    5445           05450                           TC       SETMULTF                              #  SET BIT 15 TO INDICATE YES.
013872,000073:    5446           05452                           TC       NEWABORT                              #  FIRST FAILURE.
013873,000074: 
013874,000075:    5447           05447        WHIMPER            TC       WHIMPER                               #  NOT WITH A BANG...
013875,000076: 
013876,000077:    5450           66040        SETMULTF           AD       OCT40001                              #  RESTORE AND SET BIT 15.
013877,000078:    5451           05454                           TC       +3                                    
013878,000079: 
013879,000080:    5452           05432        NEWABORT           TC       PROGLARM                              #  FIRST FAILURE - TURN ON ALARM LIGHT.
013880,000081:    5453           56065                           XCH      ITEMP1                                
013881,000082:    5454           55363                 +3        TS       FAILREG                               
013882,000083:    5455           05447                           TC       WHIMPER                               #  UNIVERSAL ABORT LOCATION.
013883,000084: 
013884,000085:    5456           56002        CCSHOLE            XCH      Q                                     
013885,000086:    5457           55364                           TS       SFAIL                                 
013886,000087: 
013887,000088:    5460           05440                           TC       ABORT                                 
013888,000089:    5461           01103                           OCT      1103                                  
013889,000090: 
013890,000091:    5462                        ENDFAILF           EQUALS                                         
013891,000092: 
013892,000093:                                                                                                  #           JOB WHICH CALLS NVSUB FOR ALARM DISPLAY.
013893,000094: 
013894,000095: 01,3010                                           SETLOC   ENDWAITS                              
013895,000096: 
013896,000097: 01,3010           05311        DOALARM            TC       GRABWAIT                              #  DISPLAY FAILREG.
013897,000098: 01,3011           33014                           CAF      FAILDISP                              
013898,000099: 01,3012           05324                           TC       NVSBWAIT                              
013899,000100: 
013900,000101: 01,3013           04421                           TC       EJFREE                                #  FREE DISPLAY AND END JOB.
013901,000102: 
013902,000103: 01,3014           00531        FAILDISP           OCT      00531                                 
013903,000104: 
013904,000105: 01,3015                        ENDFAILS           EQUALS                                         

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