*DECK,DMA 
*** DMA - CYBERPLUS DMAU TESTS
*** 1.0   IDENTIFICATION
**
* 
*   1.1   PROGRAM NAME
* 
*         DMA - CYBERPLUS DMAU TESTS
* 
* 
*   1.2   AUTHOR
* 
*         H. P. QUITSCHAU      APRIL 12, 1985 
* 
* 
*   1.3   AUTHORS OF MODIFICATIONS
* 
* 
* 
*   1.4   COPYRIGHT        CONTROL DATA CORPORATION, 1985 
* 
* 
*         CONTAINED HEREIN ARE SOFTWARE PRODUCTS COPYRIGHTED BY 
*         CONTROL DATA CORPORATION.  REPRODUCTION WITHOUT PERMISSION
*         IS PROHIBITED.  THE COPYRIGHT NOTICE MUST APPEAR ON ALL 
*         AUTHORIZED COMPLETE OR PARTIAL COPIES.
* 
* 
*** 2.0   INTRODUCTION
**
*   2.1   OVERVIEW
* 
*         THE CYBERPLUS DIRECT MEMORY ACCESS UNIT (DMAU) PROVIDES 
*         AN INTERFACE BETWEEN A CYBER HOST MEMORY (CM/UEM) AND 
*         ONE OR MORE CYBERPLUS HIGH PERFORMANCE MEMORIES (HPM),
*         AND/OR BETWEEN TWO OR MORE HPM'S ON THE SAME MEMORY 
*         RING.  DMA IS A SEQUENCE OF MODULES THAT TEST THE DMAU
*         HARDWARE IN A LIMITED CONFIGURATION AND ARE INTENDED
*         PRIMARILY FOR USE IN A HARDWARE CHECK-OUT AND REPAIR
*         ENVIRONMENT.  THESE TEST MODULES ARE CONFIGURATION
*         DEPENDENT -- THE ADDRESSES, RING SIZES, REGISTER LOOP 
*         SIZES, AND THE LOGICAL LOCATION OF ALL THE HARDWARE 
*         MUST CONFORM TO THE REQUIREMENTS SPECIFIED IN THIS
*         DOCUMENT.  FAILURE TO DO SO WILL RESULT IN ERRONEOUS
*         ERROR INFORMATION.
* 
* 
*   2.2   CHARACTERISTICS 
* 
*         1.  PROGRAM NAME..........................................DMA 
*         2.  TEST/DIAGNOSTIC/UTILITY/SYSTEM.......................TEST 
*         3.  BINARY LENGTH.........................................323 
*         4.  TYPE OF CODE....................................12 BIT PP 
*         5.  RUN TIME............................................8 MIN 
*         6.  LEVEL OF ISOLATION........................FUNCTIONAL UNIT 
*         7.  ON-LINE/OFF-LINE/BOTH................................BOTH 
*         8.  ON-LINE SYSTEM.................................NOS,NOS/BE 
*         9.  OFF-LINE SYSTEM..................................SMM/CMSE 
*        10.  PROGRAM LANGUAGE....................................MALET 
* 
* 
*   2.3   FEATURES
* 
*         DMA MODULES TEST ALL FUNCTIONS, CONTROLS, AND STATUS
*         ASSOCIATED WITH DMAU HARDWARE IN ACCORDANCE WITH THE
*         DMAU HARDWARE TEST PLAN AND DESIGN SPECIFICATION. 
* 
*         DMA WILL DETECT ERRORS CAUSED BY HARDWARE FAILURES AND
*         AID IN THE ISOLATION OF THOSE FAILURES TO A FUNCTIONAL
*         UNIT.  A FUNCTIONAL UNIT BEING DEFINED AS A BOARD OR
*         GROUP OF BOARDS THAT ARE LOGICALLY GROUPED TOGETHER TO
*         PERFORM A SPECIFIC FUNCTION OR FUNCTIONS. 
* 
* 
* 
*   2.4   HARDWARE REQUIREMENTS 
* 
*         DMA TESTS ASSUME THAT ALL HARDWARE WITH THE EXCEPTION OF
*         THE DMAU IS FULLY OPERATIONAL.  THIS HARDWARE INCLUDES
*         THE CRP, HPP(S), HPM(S) AND MMI(S).  THE TARGET HARDWARE
*         CONFIGURATIONS ARE AS FOLLOWS:  
* 
*** 
**
*   2.4.1 BASIC CHECKOUT CONFIGURATION
* 
* ___________________________________________________________________ 
* 1                                                                  1
* 1                         CENTRAL MEMORY                           1
* 1__________________________________________________________________1
* 1               1                1                1                1
* 1               1    PPU INTF    1                1     MEM INTF   1
* 1_______________1________________1________________1________________1
*                          :  
*                          :  
*                          :  
*                  ________:_______ 
*                 1                1                 ________________ 
*                 1    20 PPUS     1                1                1
*                 1________________1                1       CMI      1
*                   :  :  :  :  :                   1_____       ____1
*                  _:__:__:__:__:__                       1     1 
*                 1                1              ...<<.. 1  F  1..>>...
*                 1    24 CHAN     1              :       1_____1      :  
*                 1________________1              :                    :  
*                          :                      : CENTRAL MEM. RING  :  
*                          :                      :       ______       :  
*                  ________:_______               :..<<..1  00  1..>>..:  
*                 1                1                     1      1 
* .....<<.........1      CRP    D0 1.........<<.....   __1 CMRI 1 
* :               1________________1               :  1         1 
* :                                                :  1         1 
* :                                                :  1 
* :                                              __:__1         1 
* :                                             1               1 
* :                SYSTEM RING                  1 D1  SRI   PMI 1 
* :                                             1_____          1 
* :                                                :  1         1 
* :         ____                                   :  1         1 
* :........1 00 1............................>>....:  1         1 
*       ___1    1___                                  1___  MRI 1 
*      1            1                                     1     1 
*      1    BASE    1   .....................<<...........1  D1 1...
*    ..1  PROCESSOR 1.. :                                 1_____1  :  
*    : 1___      ___1 : :                                          :  
*    :     1 00 1     : :           MEMORY RING                    :  
*    :     1____1     : :                                          :  
*    :                : :  ____                                    :  
*    :                : :.1    1.............>>....................:  
*    :                :   1 80 1
* ___:________________:___1    1
* 1                            1    A. MEMORY RING REG LOOP = 320 BITS
* 1             HPM    MMI/MRI 1    B. CM RING REG LOOP     = 544 BITS
* 1____________________________1
* 
* 
*** 
**
*   2.4.2 CMI LOOPBACK CONFIGURATION
* 
* ___________________________________________________________________ 
* 1                                                                  1
* 1                         CENTRAL MEMORY                           1
* 1__________________________________________________________________1
* 1               1                1                1                1
* 1               1    PPU INTF    1                1     MEM INTF   1
* 1_______________1________________1________________1________________1
*                          :  
*                          :                          LOOPBACK CONN.
*                          :                            ..>>...<<.. 
*                  ________:_______                     :         : 
*                 1                1                 ___:_________:__ 
*                 1    20 PPUS     1                1                1
*                 1________________1                1       CMI      1
*                   :  :  :  :  :                   1_____       ____1
*                  _:__:__:__:__:__                       1     1 
*                 1                1              ...<<...1  F  1..>>...
*                 1    24 CHAN     1              :       1_____1      :  
*                 1________________1              :                    :  
*                          :                      : CENTRAL MEM. RING  :  
*                          :                      :       ______       :  
*                  ________:_______               :..<<..1  00  1..>>..:  
*                 1                1                     1      1 
* .....<<.........1      CRP    D0 1.........<<.....   __1 CMRI 1 
* :               1________________1               :  1         1 
* :                                                :  1         1 
* :                                                :  1         1 
* :                                              __:__1         1 
* :                                             1               1 
* :                SYSTEM RING                  1 D1  SRI   PMI 1 
* :                                             1_____          1 
* :                                                :  1         1 
* :         ____                                   :  1         1 
* :........1 00 1............................>>....:  1         1 
*       ___1    1___                                  1___  MRI 1 
*      1            1                                     1     1 
*      1    BASE    1    ....................<<...........1  D1 1...
*   ...1  PROCESSOR 1... :                                1_____1  :  
*   :  1___      ___1  : :                                         :  
*   :      1 00 1      : :          MEMORY RING                    :  
*   :      1____1      : :                                         :  
*   :                  : :  ____                                   :  
*   :                  : :.1    1............>>....................:  
*   :                  :   1 80 1 
*  _:__________________:___1    1 
* 1                             1    A. MEMORY RING REG LOOP = 320 BITS 
* 1           HPM       MMI/MRI 1    B. CM RING REG LOOP     = 544 BITS 
* 1_____________________________1    C. ADD LOOPBACK CONNECTOR ON CMI 
* 
*** 
**
*   2.4.3 CENTRAL MEMORY RD/WR CONFIGURATION
* 
* ___________________________________________________________________ 
* 1                                                                  1
* 1                         CENTRAL MEMORY                           1
* 1__________________________________________________________________1
* 1               1                1                1                1
* 1               1    PPU INTF    1                1     MEM INTF   1
* 1_______________1________________1________________1________________1
*                          :                            :         : 
*                          :                            :         : 
*                          :                            :         : 
*                  ________:_______                     :         : 
*                 1                1                 ___:_________:__ 
*                 1    20 PPUS     1                1                1
*                 1________________1                1       CMI      1
*                   :  :  :  :  :                   1_____       ____1
*                  _:__:__:__:__:__                       1     1 
*                 1                1              ...<<.. 1  F  1..>>...
*                 1    24 CHAN     1              :       1_____1      :  
*                 1________________1              :                    :  
*                          :                      : CENTRAL MEM. RING  :  
*                          :                      :       ______       :  
*                  ________:_______               :..<<..1  00  1..>>..:  
*                 1                1                     1      1 
* .....<<.........1      CRP    D0 1.........<<.....   __1 CMRI 1 
* :               1________________1               :  1         1 
* :                                                :  1         1 
* :                                                :  1         1 
* :                                              __:__1         1 
* :                                             1               1 
* :                SYSTEM RING                  1 D1  SRI   PMI 1 
* :                                             1_____          1 
* :                                                :  1         1 
* :         ____                                   :  1         1 
* :........1 00 1............................>>....:  1         1 
*       ___1    1___                                  1___  MRI 1 
*      1            1                                     1     1 
*      1    BASE    1    ....................<<...........1  D1 1...
*   ...1  PROCESSOR 1... :                                1_____1  :  
*   :  1___      ___1  : :                                         :  
*   :      1 00 1      : :          MEMORY RING                    :  
*   :      1____1      : :                                         :  
*   :                  : :  ____                                   :  
*   :                  : :.1    1............>>....................:  
*   :                  :   1 80 1 
*  _:__________________:___1    1 
* 1                             1    A. MEMORY RING REG LOOP = 320 BITS 
* 1           HPM       MMI/MRI 1    B. CM RING REG LOOP     = 544 BITS 
* 1_____________________________1 
* 
*** 
**
*   2.4.4 DUAL HPM CONFIGURATION
* ___________________________________________________________________ 
* 1                                                                  1
* 1                         CENTRAL MEMORY                           1
* 1__________________________________________________________________1
* 1               1                1                1                1
* 1               1    PPU INTF    1                1     MEM INTF   1
* 1_______________1________________1________________1________________1
*                          :                            :         : 
*                  ________:_______                     :         : 
*                 1                1                 ___:_________:__ 
*                 1    20 PPUS     1                1                1
*                 1________________1                1       CMI      1
*                   :  :  :  :  :                   1_____       ____1
*                  _:__:__:__:__:__                       1     1 
*                 1                1              ...<<.. 1  F  1..>>...
*                 1    24 CHAN     1              :       1_____1      :  
*                 1________________1              :                    :  
*                          :                      : CENTRAL MEM. RING  :  
*                          :                      :       ______       :  
*                  ________:_______               :..<<..1  00  1..>>..:  
*                 1                1                     1      1 
* .....<<.........1      CRP    D0 1.........<<.....   __1 CMRI 1 
* :               1________________1               :  1         1 
* :                                                :  1         1 
* :                                                :  1 
* :                                              __:__1         1 
* :                                             1               1 
* :                SYSTEM RING                  1 D1  SRI   PMI 1 
* :                                             1_____          1 
* :                                                :  1         1 
* :         ____                       ____        :  1         1 
* :........1 00 1........>>...........1 01 1....>>.:  1         1 
*       ___1    1___               ___1    1___       1___  MRI 1 
*      1            1             1            1          1     1 
*      1    BASE    1          ...1    BASE    1..     ...1  D1 1.... 
*   ...1  PROCESSOR 1...       :  1  PROCESSOR 1  :    :  1_____1   : 
*   :  1___      ___1  :       :  1___      ___1  :    :            : 
*   :      1 00 1      :       :      1 01 1      :    :            : 
*   :      1____1      :       :      1____1      :    :            : 
*   :                  :       :                  :    :            : 
*   :                  :       :                  :    :            : 
*  _:__________________:_     _:__________________:_   :            : 
* 1                      1   1                      1  :            : 
* 1          HPM     MMI 1   1         HPM      MMI 1  :            : 
* 1_________________ MRI 1   1_________________ MRI 1  :            : 
*                   1    1                     1    1  :            : 
*                ...1 80 1........>>...........1 81 1..:            : 
*                :  1____1                     1____1               : 
*                :                                                  : 
*                :           MEMORY RING                            : 
*                :................<<................................: 
* 
*                                    A. MEMORY RING REG LOOP = 480 BITS 
*                                    B. CM RING REG LOOP     = 544 BITS 
*                                    C. ADD 2ND MMI/MRI TO MEMORY RING
*** 
**
*   2.5   RESTRICTIONS
* 
*         DMA IS NOT A CONCURRENT TEST.  IT REQUIRES A DEDICATED
*         CYBER RING PORT AND HPP SUBSYSTEM.  IT IS CONCURRENT, 
*         HOWEVER, WITH RESPECT TO CENTRAL MEMORY IN THAT IT
*         CAN BE EXECUTED DURING NORMAL CENTRAL MEMORY ACTIVITY.
*         DMA UTILIZES A BLOCK OF 2020 OCTAL WORDS IN UEM ALLOCATED 
*         FOR DIRECT MEMORY ACCESS DEVICES USING PORT 3.
*         EXTREME CAUTION MUST BE EXERCISED WHEN EXECUTING TEST 
*         MODULES THAT WRITE INTO CENTRAL MEMORY.  PRIOR TO EXECUTING 
*         THESE MODULES IT MUST BE VERIFIED THAT THE ADDRESS LINES
*         INTO PORT 3 ARE ALL FUNCTIONING PROPERLY. 
* 
* 
*** 3.0   APPLICABLE DOCUMENTS
**
*         MALET REFERENCE MANUAL                             60456020 
*         CML 3.2 REFERENCE MANUAL                           60455980 
*         MALET PROGRAM DOCUMENTATION AND CODING STANDARD    ARH5000
*         MALET PROGRAMMING GUIDE                            ARH5263
*         CYBER RING PORT DESIGN SPECIFICATION               77960951 
*         CYBERPLUS HARDWARE REFERENCE MANUAL                77960981 
*         CYBERPLUS DMAU DESIGN SPECIFICATION                77960950 
* 
* 
*** 4.0   PROGRAM DESCRIPTION 
**
* 
*   4.1   ABSTRACT
* 
*         DMA TEST MODULES ARE DESIGNED FOR USE IN A CHECKOUT/REPAIR
*         MODE.  MODULES MAKE USE OF PARAMETER WORDS AND EXECUTIVE
*         SWITCHES AND SUPPORT REPEAT MODULE AND SCOPE LOOP OPTIONS.
*         THESE MODULES ARE DESIGNED TO EXERCISE ONE FUNCTION OR
*         RELATED FUNCTIONS FOR A SPECIFIC HARDWARE CONFIGURATION.
*         LATER MODULES MAKE USE OF PARAMETERS TO ALLOW THE USER
*         TO SPECIFY BLOCK COUNTS, DATA TRANSLATION MODES, MEMORY 
*         WRITE AND READ ADDRESS.  THE HARDWARE ADDRESSES USED IN 
*         DMA MODULES ARE NOT MODIFIABLE BY THE USE OF PARAMETER
*         WORDS, THEREFORE, IT SHOULD BE VERIFIED THAT THE HARDWARE 
*         ADDRESSES CONFORM TO THE ADDRESSES SPECIFIED IN SECTION 2.4.
* 
*         DMA MODULES CAN BE THOUGHT OF AS BEING GROUPED INTO 4 
*         LOGICAL GROUPS.  GROUP 1 CONSISTS OF MODULES 1 - 37.
*         THESE MODULES CAN BE EXECUTED WITH OR WITHOUT THE CMI 
*         CONNECTED TO CENTRAL MEMORY.  THEY TEST ALL HARDWARE
*         UP TO AND INCLUDING THE CENTRAL MEMORY RING CABLES AND
*         THE CMI I/O REGISTERS.
* 
*         THE SECOND GROUP CONSISTS OF MODULES 39 - 43.  THESE
*         MODULES REQUIRE THE INSTALLATION OF A LOOPBACK CONNECTOR
*         ON THE CENTRAL MEMORY SIDE OF THE CMI.  THESE MODULES 
*         PERFORM A FUNCTIONAL TEST OF THE CMI AND THE CM CABLES
*         AT FULL SPEED IN WRITE AND READ MODES.  IN ADDITION,
*         THEY VERIFY THE PATH FOR CM WRITE DATA.  UNFORTUNATELY, 
*         THE CMI DOES NOT RETURN CM WRITE OR READ ADDRESS INFOR- 
*         MATION.  THEREFORE, CM ADDRESS LINES MUST BE MANUALLY 
*         VERIFIED. 
* 
*         THE THIRD GROUP CONSISTS OF MODULES 45 - 49.  THESE 
*         MODULES PERFORM DATA TRANSFERS TO AND FROM CENTRAL
*         MEMORY.  THEY MAKE EXTENSIVE USE OF PARAMETER WORDS 
*         SO THAT THE USER MAY SPECIFIY VARIOUS DATA MODES, 
*         BLOCK COUNTS, AND WRITE AND READ ADDRESSES.  THESE
*         MODULES RESTRICT CENTRAL MEMORY ACCESS TO A BLOCK 
*         OF 2020 OCTAL WORDS STARTING AT UEM BASE ADDRESS PLUS 
*         2020 OCTAL.  THE ONLY ERROR CHECKING PERFORMED IN 
*         THESE MODULES IS FOR AN END OF TRANSFER.  THE DATA
*         WRITTEN INTO CENTRAL MEMORY MUST BE VERIFIED MANUALLY 
*         BY INTERROGATING CENTRAL MEMORY FROM THE SYSTEM CONSOLE.
*         THE DATA READ FROM CENTRAL MEMORY AND WRITTEN INTO
*         HPM MUST BE VERIFIED MANUALLY FROM HPPDBG.
* 
*         THE FOURTH GROUP CONSISTS OF MODULES 61 - 75.  THESE
*         MODULES TEST ALL FUNCTIONS RELATING TO A DUAL 
*         MMI/MRI/HPM SYSTEM.  THE MOST IMPORTANT OF THESE
*         BEING THE NEXT WRITER FUNCTION AND THE TRANSFER OF
*         DATA FROM ONE HPM TO ANOTHER.  THESE MODULES REQUIRE
*         THE ADDITION OF A SECOND MMI/MRI ON THE MEMORY RING,
*         AND CONSEQUENTLY VOID A NUMBER OF TESTS IN GROUP 1
*         THAT ARE DEPENDENT ON A PARTICULAR RING AND REGISTER
*         LOOP SIZE.
*** 
**
*         THE FOLLOWING IS THE LIST OF DMA MODULES AND A SHORT
*         DESCRIPTION OF EACH:  
* 
* 
*               MODULE              DESCRIPTION 
*               ______              ___________ 
*     ------
*       .       DMA00            PARAMETER TEST 
*       . 
*       .       DMA01            SRI I/O REGISTER TEST
*       . 
*       .       DMA03            SRI READ STATUS TEST 
* 
*       G       DMA05            SRI CONNECT/DISCONNECT TEST
* 
*       R       DMA07            MEMORY RING REGISTER LOOP TEST (320) 
* 
*       O       DMA09            MEMORY RING PACKET TEST (320)
* 
*       U       DMA11            MMI/MRI I/O REGISTER TEST (320)
* 
*       P       DMA13            MMI/MRI HPM READ TEST (320)
* 
*               DMA15            PMI REGISTER LOOP 1 TEST 
*       1 
*               DMA17            PMI REGISTER LOOP 2 TEST 
*       . 
*       .       DMA19            MEM RING LOST PACKET TEST
*       . 
*       .       DMA21            CMR WRITE PACKET TEST
*       . 
*       .       DMA23            FIELD LENGTH TEST 1
*       . 
*       .       DMA25            FIELD LENGTH TEST 2
*       . 
*       .       DMA27            RIGHT JUSTIFIED DATA TEST
*       . 
*       .       DMA29            LEFT JUSTIFIED DATA TEST 
*       . 
*       .       DMA31            BIT STREAM DATA TEST 
*       . 
*       .       DMA33            CMR READ PACKET TEST 
*       . 
*       .       DMA35            PMI/CMI I/O REGISTER TEST
*       . 
*       .       DMA37            CM RING LOST PACKET TEST 
* 
*     ------
*       G       DMA39            WRITE TRANSFER COMPLETE LOOPBACK TEST
*       R 
*       O       DMA41            CMI WRITE DATA LOOPBACK TEST 
*       U 
*       P       DMA43            READ TRANSFER COMPLETE LOOPBACK TEST 
*       2 
*     ------
*** 
**
*     ------
*       G       DMA45            CM WRITE TEST
*       R 
*       O       DMA47            CM READ TEST 
*       U 
*       P       DMA49            CM RD/WR TEST
*       3 
*     ------
*       .       DMA61            MEMORY RING REGISTER LOOP TEST (480) 
*       . 
*       .       DMA63            MMI/MRI81 I/O REGISTER TEST (480)
*       . 
*       .       DMA64            MMI/MRI80 HPM READ TEST (480)
* 
*       G       DMA65            MMI/MRI81 HPM READ TEST (480)
*       R 
*       O       DMA67            CENTRAL MEMORY WRITE TEST 2
*       U 
*       P       DMA69            CENTRAL MEMORY READ TEST 2 
* 
*       4       DMA71            NEXT WRITER TEST 
*       . 
*       .       DMA73            HPM(80) TO HPM(81) TEST
*       . 
*       .       DMA75            HPM(81) TO HPM(80) TEST
*     ------
*** 
**
*   4.2   EXECUTION SEQUENCE
* 
* 
*         DMA MODULE EXECUTION IS ORDER INDEPENDENT.  HOWEVER,
*         IN ORDER TO PRESERVE THEIR DIAGNOSTIC QUALITIES IT IS 
*         RECOMMENDED THAT THEY BE EXECUTED STARTING WITH DMA001
*         IN INCREASING NUMERICAL ORDER.
* 
*         INITIALLY, DMA TEST MODULES VERIFY BASIC SRI FUNCTIONS. 
*         SUBSEQUENT MODULES BUILD ON EARLIER MODULES AND TEST
*         INCREASINGLY MORE COMPLEX FUNCTIONS, CULMINATING IN THE 
*         TRANSFER OF DATA BETWEEN HPM AND CM.
* 
* 
*   4.3   DETAILED DESCRIPTION
* 
*   4.3.1 OPERATIONAL PROCEDURE 
* 
*         REFER TO THE MALET REFERENCE MANUAL FOR A DETAILED DESCRIP- 
*         TION OF THE MALET LANGUAGE. 
* 
*         REFER TO THE CML REFERENCE MANUAL TO RUN MALET UNDER THE NOS
*         OPERATING SYSTEM. 
* 
* 
*   4.3.2 LOADING PROCEDURE 
* 
*         REFER TO THE CML REFERENCE MANUAL TO RUN MALET UNDER THE NOS
*         OPERATING SYSTEM. 
* 
*         REFER TO THE MSL100 OFF-LINE MAINTENANCE SYSTEM LIBRARY,
*         VOLUME 1, REFERENCE MANUAL TO RUN THE CMSE OFF-LINE 
*         MAINTENANCE SYSTEM. 
* 
*         REFER TO THE SMM REFERENCE MANUAL VOLUME 3 TO RUN SMM-MALET.
* 
* 
*   4.3.3 RUNNING PROCEDURE 
* 
*         REFER TO THE CML REFERENCE MANUAL TO RUN MALET UNDER THE NOS
*         OPERATING SYSTEM. 
* 
*         REFER TO THE MSL100 OFF-LINE MAINTENANCE SYSTEM LIBRARY,
*         VOLUME 1, REFERENCE MANUAL TO RUN THE CMSE OFF-LINE 
*         MAINTENANCE SYSTEM. 
* 
*         REFER TO THE SMM REFERENCE MANUAL VOLUME 3 TO RUN SMM-MALET.
*** 
**
*   4.3.4 PARAMETERS AND SWITCHES 
* 
* 
*     PARAMETERS
* 
*         P0  - DATA TRANSFER MODE
* 
*                 01 HEX = LEFT JUSTIFIED 
*                 02 HEX = RIGHT JUSTIFIED
*                 03 HEX = BIT STREAM 
* 
*         P1  - BLOCK COUNT    - 12 BITS (000-FFF HEX)
* 
*         P2  - CM ADDR (W/R)  - 12 BITS (000-FFF HEX)
*               RELATIVE TO RA
* 
* ------------------ HPM 80 ------------------------------- 
* 
*         P3  - UPPER HPM ADDR - 12 BITS (000-FFF HEX)
*               ABSOLUTE (W/R)
* 
*         P4  - LOWER HPM ADDR - 12 BITS (000-FFF HEX)
*               ABSOLUTE (W/R)
* 
* ------------------ HPM 81 ------------------------------- 
* 
*         P5  - UPPER HPM ADDR - 12 BITS (000-FFF HEX)
*               ABSOLUTE (W/R)
* 
*         P6  - LOWER HPM ADDR - 12 BITS (000-FFF HEX)
*               ABSOLUTE (W/R)
* 
* --------------------------------------------------------- 
* 
*         P7  - UEM BASE ADDRESS/1000 OCTAL  - 12 BITS
*               FROM CENTRAL MEMORY LOC 120 B, BITS 47-59 
* 
* ----------------------------------------------------------
* 
*     THE COMPLETE 24 BIT HPM W/R ADDRESS IS ASSEMBLED
*     AS FOLLOWS: 
*                      P3     P4
*                     076H + 543H = 076543H 
* 
*     THE FULL RANGE OF HPM W/R ADDRESSES DEPENDS ON THE
*     MEMORY CONFIGURATION.  FOR A 256K MEMORY THE RANGE
*     IS 000000-03FFFF.  FOR A 512K MEMORY THE RANGE IS 
*     000000-07FFFF.
* 
*** 
**
*    ************************************************************ 
*    *                                                          * 
*    *    NOTE: WHEN USING PARAMETERS TO SPECIFY BLOCK COUNT,   * 
*    *          CM RD/WR ADDRESSES, AND MODE, THE FOLLOWING     * 
*    *          GUIDELINES SHOULD BE OBSERVED:                  * 
*    *                                                          * 
*    *          1. IN RIGHT OR LEFT JUSTIFIED DATA MODES THE    * 
*    *             SUM OF THE BLOCK COUNT AND CM RD/WR ADDRESS  * 
*    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
*    *                                                          * 
*    *          2. IN BIT STREAM DATA MODE THE SUM OF THE CM    * 
*    *             ADDRESS AND 16/15THS OF THE BLOCK COUNT *
*    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
*    *                                                          * 
*    *         FAILURE TO FOLLOW THESE GUIDELINES SHOULD RESULT * 
*    *         IN THE GENERATION OF A FIELD LENGTH ERROR.       * 
*    *                                                          * 
*    ************************************************************ 
* 
*** 
**
* ------------------------ PARAMETER USAGE ------------------------ 
* 
* 
*    MODULE    P0   P1   P2   P3   P4   P5   P6   P7
*    ------    --   --   --   --   --   --   --   --
* 
*    DMA01
*    DMA03
*    DMA05
*    DMA07
*    DMA09
*    DMA11
*    DMA13
*    DMA15
*    DMA17
*    DMA19
*    DMA21
*    DMA23
*    DMA25
*    DMA27
*    DMA29
*    DMA31
*    DMA33
*    DMA35
*    DMA37
*    DMA39     XX   XX
*    DMA41
*    DMA43     XX   XX
*    DMA45     XX   XX   XX   XX   XX             XX
*    DMA47     XX   XX   XX   XX   XX             XX
*    DMA49          XX                            XX
*    DMA53                                        XX
*    DMA61
*    DMA63
*    DMA64
*    DMA65
*    DMA67     XX   XX   XX   XX   XX             XX
*    DMA69     XX   XX   XX   XX   XX             XX
*    DMA71     XX   XX   XX   XX   XX   XX   XX   XX
*    DMA73          XX        XX   XX   XX   XX 
*    DMA75          XX        XX   XX   XX   XX 
* 
* 
*     EXECUTIVE SWITCHES
* 
*         1.  EACH OF THE MODULES PROVIDES THE USER WITH SCOPE LOOP 
*             CAPABILITY (RM AND NOT SE).  IN THE CASE WHERE A MODULE 
*             TESTS MULTIPLE CONDITIONS AND  AN ERROR IS DETECTED,
*             ALL CONDITIONS UP TO AND INCLUDING THE FAILING CONDITION
*             WILL BE REPEATED. 
* 
*         2.  EACH OF THE MODULES PROVIDES THE USER WITH THE ABILITY
*             TO REPEAT THE MODULE (RM AND SE).  IN THE EVENT THAT
*             AN ERROR IS DETECTED, THE MODULE WILL STOP AND DISPLAY
*             ERROR INFORMATION.
* 
*** 
**
*   4.3.5 MESSAGES
* 
* 
*   4.3.5.1  NORMAL MESSAGES
* 
* 
*            DMANN - MODULE NAME
* 
*              AND
* 
*            DMANN - MODULE NAME
*            DMANN -    LOADING HPM 
*            DMANN -    HPM LOADED
*            DMANN -    EXECUTING 
* 
*            THESE MESSAGES INDICATE THAT MODULE NN IS RUNNING. 
* 
* 
* 
*   4.3.5.2  ERROR MESSAGES 
* 
*            ERROR MESSAGE FORMAT VARIES WITH EACH TEST.  A FEW 
*            OF THE MORE COMMON TYPES ARE LISTED BELOW.  FOR A
*            COMPLETE DESCRIPTION OF THE MODULE ERROR MESSAGES
*            REFER TO THE INDIVIDUAL TEST DESCRPIPTIONS.
* 
* 
* 
*            DMANN - MODULE NAME
*            DMANN NO RESP ON CONNECT FUNCTION
*            DMANN PACKET SENT=06D10400 HEX 
*            DMANN GSW STATUS=0000 H, DFR = 0 
* 
* --------------------------------------------------------------- 
* 
*            DMANN - MODULE NAME
*            DMANN RESPONSE ERROR ON CONNECT FUNCTION 
*            DMANN EXP=02D04040H, ACT=02D04000H 
* 
* --------------------------------------------------------------- 
* 
*            DMANN - MODULE NAME
*            DMANN NO TRANSFER COMPLETE RESPONSE RCVD 
*            DMANN GSW = 0000 H, DFR = 0
*            DMANN SRI STATUS = 0000 HEX
* 
* --------------------------------------------------------------- 
* 
*            DMANN - MODULE NAME
*            DMANN TRANSFER COMPLETE RESPONSE ERROR 
*            DMANN EXP=02D04040H, ACT=02D04000H 
* 
* --------------------------------------------------------------- 
* 
*            DMANN - MODULE NAME
*            DMANN MR REG LOOP DATA ERROR 
* 
*            DMANN PMI/MRI OUT E 65AA                    HEX
*            DMANN                   0000 00D1 0000 0000 HEX
*            DMANN PMI/MRI OUT A 7000                    HEX
*            DMANN                   0000 0000 0000 0000 HEX
* 
* --------------------------------------------------------------- 
* 
*            DMANN - MODULE NAME
*            DMANN MR REG LOOP DATA ERROR - STEP 01   HEX 
* 
*            DMANN PMI/MRI OUT E 65FF                    HEX
*            DMANN                   00FF FFD1 FFFF FFFF HEX
*            DMANN             A 7000                    HEX
*            DMANN                   0000 0000 0000 0000 HEX
* 
*            DMANN MMI/MRI IN  E 0000                    HEX
*            DMANN                   0000 0000 0000 0000 HEX
*            DMANN             A 0000                    HEX
*            DMANN                   0000 0000 0000 0000 HEX
* 
*            DMANN MMI/MRI OUT E 6000                    HEX
*            DMANN                   0000 0000 0000 0000 HEX
*            DMANN             A 7000                    HEX
*            DMANN                   0000 0000 0000 0000 HEX
* 
*            DMANN PMI/MRI IN  E 0000                    HEX
*            DMANN                   0000 0000 0000 0000 HEX
*            DMANN             A 0000                    HEX
*            DMANN                   0000 0000 0000 0000 HEX
* 
* --------------------------------------------------------------- 
* 
*            DMANN - MODULE NAME
*            DMANN NO LOST PACKET DETECTED
*            DMANN EXP=02D04880H, ACT=02D04080H 
* 
* --------------------------------------------------------------- 
* 
*            DMANN - MODULE NAME
*            DMANN CMR PACKET DATA ERROR
*            DMANN PMI OUT CNTRL  E   C0E8 000001F0 D0    HEX 
*            DMANN                A   0000 00000000 00    HEX 
*            DMANN PMI OUT DATA   E   FFFC FFFC FFFC FFFC HEX 
*            DMANN                A   0000 0000 0000 0000 HEX 
*            DMANN PMI OUT PARITY E   FF                  HEX 
*            DMANN                A   00                  HEX 
*            DMANN CMR RL   (000-063) 0000000000000000 HEX
*            DMANN CMR RL   (064-127) 0000000000000000 HEX
*            DMANN CMR RL   (128-191) 0000000000000000 HEX
*            DMANN CMR RL   (192-255) 0000000000000000 HEX
*            DMANN CMR RL   (256-319) 0000000000000000 HEX
*            DMANN CMR RL   (320-383) 0000000000000000 HEX
*            DMANN CMR RL   (384-447) 0000000000000000 HEX
*            DMANN CMR RL   (448-511) 0000000000000000 HEX
*            DMANN CMR RL   (512-543) 00000000         HEX
*            DMANN PACKET NR 01/16
* 
* --------------------------------------------------------------- 
* 
*            DMANN - MODULE NAME
*            DMANN SRI STATUS ERROR 
*            DMANN EXP=02D041C0H, ACT=02D042C0H 
*            DMANN RA+FL              00000008 HEX
*            DMANN CM WRITE ADDRESS   00000008 HEX
*            DMANN WRADDR SENT        00000001 HEX
*            DMANN RA                 00000000 HEX
*            DMANN PACKET NR 01/29
* 
* --------------------------------------------------------------- 
* 
*            DMANN - MODULE NAME
*            DMANN CMR DATA ERROR 
*            DMANN        PMI OUTPUT REGISTER 
*            DMANN CMR RL A (416-479) 0000000000000000 HEX
*            DMANN CMR RL E (416-479) C0E807FFFFF860FF HEX
*            DMANN CMR RL A (480-543) 0000000000000000 HEX
*            DMANN CMR RL E (480-543) FFFFFFFFFFFFFFFF HEX
*            DMANN        CMI INPUT REGISTER
*            DMANN CMR RL A (128-191) 0000000000000000 HEX
*            DMANN CMR RL E (128-191) 0000000000000000 HEX
*            DMANN CMR RL A (192-255) 0000000000000000 HEX
*            DMANN CMR RL E (192-255) 0000000000000000 HEX
*            DMANN CMR RL A (256-271) 0000             HEX
*            DMANN CMR RL E (256-271) 0000             HEX
*            DMANN        CMI OUTPUT REGISTER 
*            DMANN CMR RL A (272-335) 0000000000000000 HEX
*            DMANN CMR RL E (272-335) 0000000000000000 HEX
*            DMANN CMR RL A (336-399) 0000000000000000 HEX
*            DMANN CMR RL E (336-399) 0000000000000000 HEX
*            DMANN CMR RL A (400-415) 0000             HEX
*            DMANN CMR RL E (400-415) 0000             HEX
*            DMANN        PMI INPUT REGISTER
*            DMANN CMR RL A (000-063) 0000000000000000 HEX
*            DMANN CMR RL E (000-063) 0000000000000000 HEX
*            DMANN CMR RL A (064-127) 0000000000000000 HEX
*            DMANN CMR RL E (064-127) 0000000000000000 HEX
* 
* --------------------------------------------------------------- 
* 
*            DMANN - CM WRITE TEST
*            DMANN NO TRANSFER COMPLETE RESPONSE RCVD 
*            DMANN GSW = 0000H, DFR FLAG = 0
*            DMANN SRI STATUS = 40C0  HEX 
* 
*            DMANN PMI/MRI INPUT REGISTER 
*            DMANN MR RL (000-079)   7000                 HEX 
*            DMANN MR RL                 0000000000000000 HEX 
* 
*            DMANN MMI/MRI INPUT REGISTER 
*            DMANN MR RL (080-159)   0000                 HEX 
*            DMANN MR RL                 0000000000000000 HEX 
* 
*            DMANN MMI/MRI OUTPUT REGISTER
*            DMANN MR RL (160-239)   6000                 HEX 
*            DMANN MR RL                 0000000000000000 HEX 
* 
*            DMANN PMI/MRI OUTPUT REGISTER
*            DMANN MR RL (240-319)   A000                 HEX 
*            DMANN MR RL                 0000000000000000 HEX 
* 
* ----------------------------------------------------------------
* 
*** 
**
*   4.3.6 TEST ABORTS 
* 
* 
*         1.  IF THE ACCESS LEVEL IS TOO LOW, THE PARAMETER CHECKING
*             MODULE (DMA00) WILL LOOP UNTIL THE ACCESS LEVEL IS
*             CORRECTED AND THE TEST RE-RUN.
* 
*         2.  IF ANY OF THE PARAMETER WORDS CONTAIN A VALUE THAT IS 
*             OUT OF RANGE, THE PARAMETER CHECKING MODULE (DMA00) 
*             WILL LOOP UNTIL THE PARAMETERS ARE CORRECTED AND THE
*             TEST RE-RUN.
* 
*         3.  IF THE PRODUCT OVERLAY DETECTS AN ERROR DURING THE
*             EXECUTION OF A MODULE, THE ERROR WILL BE REPORTED, AND
*             THE MODULE WILL ABORT TO THE END OF THE CONDITION.
* 
*         4.  ANYTIME AFTER REPORTING AN ERROR, IF THE ERROR COUNT
*             IS EQUAL TO TWENTY (20) OCTAL OR GREATER, THE MODULE
*             WILL ABORT TO THE END OF THE CONDITION. 
* 
* 
*   4.3.7 SYSTEM ABORTS 
* 
* 
*         NO SYSTEM ABORTS SHOULD EVER BE CAUSED BY THE TEST. THE 
*         PRODUCT OVERLAY DRIVER SHOULD PROTECT THE SYSTEM FROM ANY 
*         ABORTS. 
*** 
**
*   4.3.8  PERFORMANCE
* 
* 
*   MODULE
*   NUMBER               MODULE DESCRIPTION                  RUN TIME 
*  -------               ------------------                  -------- 
* 
*    00          PARAMETER VALIDATION                          1  SEC 
*    01          SRI I/O REGISTER TEST                         1
*    03          SRI READ STATUS TEST                          1
*    05          SRI CONNECT/DISCONNET TEST                    1
*    07          MEMORY RING REGISTER LOOP TEST (320)          1
*    09          MEMORY RING PACKET TEST (320)                 1
*    11          MMI/MRI 80 I/O REGISTER TEST (320)            1
*    13          MMI/MRI 80 HPM READ TEST (320)                1
*    15          RAFL REGISTER LOOP TEST                       1
*    17          CENTRAL MEMORY RING REGISTER LOOP TEST        1
*    19          MEMORY RING LOST PACKET TEST                  1
*    21          CENTRAL MEMORY RING WRITE PACKET TEST         5
*    23          FIELD LENGTH TEST 1 (>)                       5
*    25          FIELD LENGTH TEST 2 (=)                       5
*    27          RIGHT JUSTIFIED DATA TEST                     5
*    29          LEFT JUSTIFIED DATA TEST                      5
*    31          BIT STREAM DATA TEST                          5
*    33          CENTRAL MEMORY RING READ PACKET TEST          1
*    35          PMI/CMI I/O REGISTER TEST                     2
*    37          CENTRAL MEMORY RING LOST PACKET TEST          1
*    39          WRITE XFER COMPLETE LOOPBACK TEST           180
*    41          CMI WRITE DATA LOOPBACK TEST                  2
*    43          READ XFER COMPLETE LOOPBACK TEST            180
*    45          CENTRAL MEMORY WRITE TEST                     1
*    47          CENTRAL MEMORY READ TEST                      1
*    49          CENTRAL MEMORY READ/WRITE TEST                1
*    53          CENTRAL MEMORY WRITE DEMO                    60
*    61          MEMORY RING REGISTER LOOP TEST (480)          1
*    63          MMI/MRI 81 I/O REGISTER LOOP TEST (480)       1
*    64          MMI/MRI 80 HPM READ TEST (480)                2
*    65          MMI/MRI 81 HPM READ TEST (480)                2
*    67          CENTRAL MEMORY WRITE TEST 2                   1
*    69          CENTRAL MEMORY READ TEST 2                    1
*    71          NEXT WRITER TEST                              1
*    73          HPM(80) TO HPM(81) TEST                     180
*    75          HPM(81) TO HPM(80) TEST                     180
*    88          DMAU REGISTER LOOP DUMP (320)                 1
*    90          DMAU REGISTER LOOP DUMP (480)                 1
* 
* 
* 
*   4.3.9  INSTALLATION PARAMETERS
* 
* 
*         THE ARE NO SPECIAL INSTALLATION PROCEDURES REQUIRED FOR DMA.
*         DMA IS CONTAINED ON DECK 'DMA' ON THE CML.
* 
* 
* 
*** 5.0   PRODUCT LEVEL DESCRIPTION 
**
* 
*   5.1   PUBLICATIONS AFFECTED 
* 
* 
*         CHANGES TO DMA AFFECT THE FOLLOWING PUBLICATIONS: 
* 
*         CYBERPLUS MAINTENANCE SOFTWARE REFERENCE MANUAL 
* 
* 
*   5.2   EQUIPMENT CONFIGURATION 
* 
* 
*         WHEN TESTING THE DMAU, THE TEST WILL RESIDE IN THE PP AND 
*         TEST THE DMAU VIA A STANDARD 170 PP CHANNEL AND CRP.
*         THE DMAU MUST BE IN ONE OF THE CONFIGURATIONS OUTLINED IN 
*         SECTION 2.4.
* 
* 
*   5.3   INTERFACES TO OTHER SOFTWARE PRODUCTS 
* 
* 
*         THERE ARE NO SPECIAL INTERFACES TO THE OPERATING SYSTEM 
*         NOR ANY APPLICATION OF THE OPERATING SYSTEM WHICH ARE 
*         NOT REQUIRED BY MALET.
* 
* 
*   5.4   SECURITY
* 
* 
*         SECURITY IS PROVIDED BY THE OPERATING SYSTEM FOR ON-LINE
*         MALET THROUGH THE USE OF CVL.  VALIDATION FOR EXECUTION 
*         OF CRP REQUIRES AN APPROVES ACCESS LEVEL OF 20 OR 21. 
* 
* 
*   6.0   RELIABILITY, AVAILABILITY AND MAINTAINABILITY STANDARDS 
* 
* 
*         REFER TO CYBERPLUS DMAU DESIGN SPECIFICATION AND THE
*         CYBERPLUS HARDWARE DESIGN REQUIREMENTS. 
* 
* 
*** 7.0   GLOSSARY
**
* 
*         ABT              - ABORT
* 
*         BLKCNT           - BLOCK COUNT
* 
*         CLRCRP           - CLEAR CRP
* 
*         CML              - COMMON MAINTENANCE LIBRARY 
* 
*         CMSE             - COMMON MAINTENANCE SOFTWARE EXECUTIVE
* 
*         CNTR             - COUNTER
* 
*         CONN             - CONNECT REQUEST
* 
*         CRES             _ CONNECT RESPONSE 
* 
*         CRP              - CYBER RING PORT
* 
*         CVL              - CUSTOMER ENGINEERING VALIDATION
* 
*         DEMOT            - DIAGNOSTIC EXECUTIVE MONITOR FOR OFF-LINE
*                            TESTING
* 
*         DISC             - DISCONNECT REQUEST 
* 
*         DRES             _ DISCONNECT RESPONSE
* 
*         ECD              - ERROR CODE 
* 
*         ERRLIM           - ERROR LIMIT
* 
*         ERC              - ERROR COUNT
* 
*         ES               - EXECUTIVE SWITCH 
* 
*         GSW              - GENERAL STATUS WORD
* 
*         HPP              - HIGH PERFORMANCE PROCESSOR 
* 
*         INFO             - INFORMATION
* 
*         LC               - LOOP COUNT 
* 
*         MALET            - MAINTENANCE APPLICATION LANGUAGE FOR 
*                            EQUIPMENT TESTING
* 
*         MSL              - MAINTENANCE SOFTWARE LIBRARY 
* 
*         PARAM            - PARAMETER
* 
*         PNTR             - POINTER
* 
*         QRES             - QUEUED RESPONSE
* 
*         QRRES            _ QUEUE REJECTED RESPONSE
* 
*         RC               - REPEAT CONDITION 
* 
*         RDADDL           - READ ADDRESS LOWER 
* 
*         RDADDU           - READ ADDRESS UPPER 
* 
*         REG              - REGISTER 
* 
*         RM               - REPEAT MODULE
* 
*         SL               - SCOPE LOOP 
* 
*         STAT             - STATUS 
* 
*         STEPMR           - STEP MEMORY RING 
* 
*         STEPCMR          - STEP CENTRAL MEMORY RING 
* 
*         STOPMR           - STOP MEMORY RING 
* 
*         STOPCMR          - STOP CENTRAL MEMORY RING 
* 
*         SREQ             _ STATUS REQUEST 
* 
*         WD               - WORD(S)
* 
*         WRADDL           - WRITE ADDRESS LOWER
* 
*         WRADDU           - WRITE ADDRESS UPPER
* 
* 
*** 8.0   MISCELLANEOUS 
**
* 
*          THE FOLLOWING TABLES HAVE BEEN REMOVED FROM THE
*          ENGINEERING SPECIFICATIONS 77960950 AND 77960951.
* 
*          THEY ARE INCLUDED HERE FOR REFERENCE TO THE BASIC
*          FORMAT OF THE REGISTERS.   FOR DETAILS OF EACH BIT USAGE 
*          REFER TO THE APPROPRIATE REFERENCE DOCUMENT. 
* 
* 
*   8.1    CRP REGISTERS
* 
* 
*   8.1.1  FUNCTION REGISTER
* 
*          A 12-BIT FUNCTION IS USED TO SET THE CRP INTO A DATA 
*          TRANSFER MODE.  THIS FUNCTION ADDRESSES A PARTICULAR 
*          REGISTER WITHIN THE CRP, THE TYPE DATA TRANSLATION 
*          REQUIRED, AND WHETHER THE DATA IS TO BE READ OR WRITTEN. 
*          THE FOLLOWING LIST PROVIDES A COMPLETE LIST OF CRP 
*          CRP FUNCTIONS. 
* 
*** 
**
*         11 10  9  8  7  6  5  4  3  2  1  0 
*         ___________________________________ 
*        1        1  1     1                 1
*        1__:__:__1__1__:__1__:__:__:__:__:__1
*             1     1   1           1 
*             1     1   1           1 
*             1     1   1           1___ FUNCTIONS
*             1     1   1  READ                       WRITE 
*             1     1   1  00  GENERAL STATUS WORD    40* GSW 
*             1     1   1  01  SYSTEM RING STOP REG   41* SRSR
*             1     1   1  02  APPL RING STOP REG     42* ARSR
*             1     1   1  03  LOST PKT 1 (CTL)       43* LP1 
*             1     1   1  04  LOST PKT 2 (DATA)      44* LP2 
*             1     1   1  05  REQUEST STACK          45* RQSTK 
*             1     1   1  06  DATA FIFO OUTPUT       46* CF/DF OUT REG 
*             1     1   1  07* CONTROL/DATA FIFO IN   47* CF/DF IN REG
*             1     1   1 
*             1     1   1  10* DIAGNOSTIC REG         50  DIAG REG
*             1     1   1  11* EXTERNAL RESET REG     51  EXRR
*             1     1   1  12* RING CTL REG           52  RCR 
*             1     1   1  13* RING DATA REG          53  RDR 
*             1     1   1     FUNCTIONS 14-17 AND 54-57 ARE NOT USED
*             1     1   1     IN CRP AT THIS TIME.
*             1     1   1  14  CENTRAL MEM RING REG   54  CM RING REG 
*             1     1   1  15  MEMORY RING REG        55  MEM RING REG
*             1     1   1  16  CMI STATUS             56  CMI CONTROL 
*             1     1   1  17  HPM ERROR DETECTION    57  HPMED 
*             1     1   1 
*             1     1   1  20-25 NOT USED             60-72 NOT USED
*             1     1   1  26    CF/DF OUTPUT REG     73    RCR/RDR REG 
*             1     1   1  27-31 NOT USED             74-77 NOT USED
*             1     1   1  32    RCR/RDR
*             1     1   1  33-37 NOT USED 
*             1     1   1 
*             1     1   1___ CHANNEL TRANSLATION
*             1     1            MODE     PPU <-> HPP 
*             1     1             00    -   12      16
*             1     1             01    - 4X12    3X16
*             1     1             10    - 2X 8      16
*             1     1             11    -   NOP 
*             1     1 
*             1     1___ DIAGNOSTIC MODE
*             1 
*             1___ SPARE FIELD
* 
*              * THESE FUNCTIONS REQUIRE DIAGNOSTIC MODE. 
*                DURING DIAGNOSTIC MODE RING DATA MAY BE LOST.
* 
* 
*** 
**
*   8.1.2  GENERAL STATUS WORD
* 
* 
*             0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
*            _______________________________________________
*           1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
*           1__1__1__1__1__1__1__1__1__1__1__1__1__1__1__1__1 
*             1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1
*             1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1__ RQSTK RDY
*             1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
*             1  1  1  1  1  1  1  1  1  1  1  1  1  1  1__ DF RDY
*             1  1  1  1  1  1  1  1  1  1  1  1  1  1
*             1  1  1  1  1  1  1  1  1  1  1  1  1  1__ END FLAG 
*             1  1  1  1  1  1  1  1  1  1  1  1  1 
*             1  1  1  1  1  1  1  1  1  1  1  1  1__ DMT OCCURRED
*             1  1  1  1  1  1  1  1  1  1  1  1
*             1  1  1  1  1  1  1  1  1  1  1  1__ PKT RDY
*             1  1  1  1  1  1  1  1  1  1  1 
*             1  1  1  1  1  1  1  1  1  1  1__ LOST PACKET 
*             1  1  1  1  1  1  1  1  1  1
*             1  1  1  1  1  1  1  1  1  1__ MULTIPLE LOST PACKETS
*             1  1  1  1  1  1  1  1  1 
*             1  1  1  1  1  1  1  1  1__ 170 CHANNEL PARITY
*             1  1  1  1  1  1  1  1
*             1  1  1  1  1  1  1  1__ SYSTEM RING STOP 
*             1  1  1  1  1  1  1 
*             1  1  1  1  1  1  1__ RQSTK RING STOP 
*             1  1  1  1  1  1
*             1  1  1  1  1  1__ DF RING STOP 
*             1  1  1  1  1 
*             1  1  1  1  1__ APPLICATION RING STOP 
*             1  1  1  1
*             1  1  1  1__DMAU ERROR
*             1  1  1 
*             1  1  1__SINGLE BIT HPM ERROR 
*             1  1
*             1  1__MULTIPLE BIT HPM ERROR
*             1 
*             1___ SPARE STATUS BIT 
* 
*** 
**
* 
*   8.1.3  DIAGNOSTIC REGISTER
* 
* 
*             0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
*            _______________________________________________
*           1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
*           1__1__1__1__1__1__1__1__1__1__1__1__1__1__1__1__1 
*             ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^
*             1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1__ DLPD 
*             1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
*             1  1  1  1  1  1  1  1  1  1  1  1  1  1  1__ DRS1
*             1  1  1  1  1  1  1  1  1  1  1  1  1  1
*             1  1  1  1  1  1  1  1  1  1  1  1  1  1__ DRS2 
*             1  1  1  1  1  1  1  1  1  1  1  1  1 
*             1  1  1  1  1  1  1  1  1  1  1  1  1__ ERS1
*             1  1  1  1  1  1  1  1  1  1  1  1
*             1  1  1  1  1  1  1  1  1  1  1  1__ ERS2 
*             1  1  1  1  1  1  1  1  1  1  1 
*             1  1  1  1  1  1  1  1  1  1  1__ DRQRS 
*             1  1  1  1  1  1  1  1  1  1
*             1  1  1  1  1  1  1  1  1  1__ DAI
*             1  1  1  1  1  1  1  1  1 
*             1  1  1  1  1  1  1  1  1__ EALLRT
*             1  1  1  1  1  1  1  1
*             1  1  1  1  1  1  1  1__ CLRCRP 
*             1  1  1  1  1  1  1 
*             1  1  1  1  1  1  1__ CLRFIFO 
*             1  1  1  1  1  1
*             1  1  1  1  1  1__ CLRLP
*             1  1  1  1  1 
*             1  1  1  1  1__ CLRRQ 
*             1  1  1  1
*             1  1  1  1__ CLRDMT 
*             1  1  1 
*             1  1  1__ CLRPRTY 
*             1  1
*             1  1__ CLRDMAU
*             1 
*             1 __ SPARE CONTROL BIT
* 
*** 
**
*   8.2    SRI REGISTERS AND FUNCTIONS
* 
*   8.2.1  SRI STATUS REGISTER
* 
* 
*             0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
*            _______________________________________________
*           1     1  1  1  1  1  1  1  1  1  1        1  1  1 
*           1__:__1__1__1__1__1__1__1__1__1__1__:__:__1__1__1 
*              ^    ^  ^  ^  ^  ^  ^  ^  ^  ^     ^      ^
*              1    1  1  1  1  1  1  1  1  1     1      1
*              1    1  1  1  1  1  1  1  1  1     1      1__NOT USED
*              1    1  1  1  1  1  1  1  1  1     1 
*              1    1  1  1  1  1  1  1  1  1     1__CMI ERROR CODES: 
*              1    1  1  1  1  1  1  1  1  1 
*              1    1  1  1  1  1  1  1  1  1        001 - CM WR UNCORR.
*              1    1  1  1  1  1  1  1  1  1        101 - CM RD UNCORR.
*              1    1  1  1  1  1  1  1  1  1        111 - REJECT 
*              1    1  1  1  1  1  1  1  1  1 
*              1    1  1  1  1  1  1  1  1  1 
*              1    1  1  1  1  1  1  1  1  1__ CYBER PARITY ERROR
*              1    1  1  1  1  1  1  1  1
*              1    1  1  1  1  1  1  1  1__ CM ACTIVE
*              1    1  1  1  1  1  1  1 
*              1    1  1  1  1  1  1  1__ SRI BUSY
*              1    1  1  1  1  1  1
*              1    1  1  1  1  1  1__ RAFL ERROR 
*              1    1  1  1  1  1 
*              1    1  1  1  1  1__ CM RING LOST PACKET 
*              1    1  1  1  1
*              1    1  1  1  1__ TRANSMISSION PARITY ERROR
*              1    1  1  1 
*              1    1  1  1__ MEMORY RING LOST PACKET 
*              1    1  1
*              1    1  1__ HPM MULTIPLE BIT ERROR 
*              1    1 
*              1    1__ TRANSFER COMPLETE 
*              1
*              1__ CONNECT STATUS:  
* 
*                  00 - NOT USED
*                  01 - CONNECTED 
*                  10 - QUEUED
*                  11 - QUEUE REJECTED
* 
*** 
**
*   8.2.1  SRI FUNCTIONS
* 
* 
*                        CONTROL               DATA 
* 
*                    0--3  4 -- 11   0----------------------------15
*                    _____________   _______________________________
*                   1    1        1 1                               1 
*                   1    1 SRI ID 1 1                               1 
*                   1____1________1 1_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:_1 
*                    :  :            :                             :  
*                    :  :            :                             :  
* 0-EMPTY PACKET     0000             NOT USED
* 
* 1-RD ADDR LOWER    0001             READ ADDRESS LOWER (16 BITS)
* 
* 2-RD ADDR UPPER    0010             READ ADDRESS UPPER (16 BITS)
* 
* 3-WR ADDR LOWER    0011             WRITE ADDRESS LOWER (16 BITS) 
* 
* 4-WR ADDR UPPER    0100             WRITE ADDRESS UPPER (16 BITS) 
* 
* 5-NOT USED         0101             NOT USED
* 
* 
* 
* 6-SYS CONTROL      0110            0 1 2 3 4 5 6 7 8 -----------15
*                                    _______________________________
*                                   1           1   1               1 
*                                   1           1   1   NOT USED    1 
*                                   1_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:_1 
*                                    1 1 1 1 1 1  1 
*                                    1 1 1 1 1 1  1 
*              MEMORY REF. ENABLED___1 1 1 1 1 1  1__DATA TRANSLATION 
*              STOP MEMORY RING________1 1 1 1 1     MODES: 
*              STEP MEMORY RING__________1 1 1 1
*              STOP CM RING________________1 1 1     00 - 64 BIT
*              STEP CM RING__________________1 1     01 - LEFT JUSTIFIED
*              DISCONNECT______________________1     10 - RIGHT JUSTIFIED 
*                                                    11 - BIT STREAM
* 
* 
* 7-NOT USED         0111             NOT USED
* 
* 8-BLOCK COUNT      1000             BLOCK COUNT (16 BITS) 
* 
* 
*                                    _______________________________
* 9-CONNECT          1001           1       1                       1 
*                                   1  N.U. 1 RETURN ID - 12 BITS   1 
*                                   1_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:_1 
*** 
**
*                                    _______________________________
* A-STATUS           1010           1       1                       1 
*                                   1  N.U. 1 RETURN ID - 12 BITS   1 
*                                   1_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:_1 
* 
* 
*                                    _______________________________
* B-MASTER CLEAR     1011           1               1               1 
*                                   1      DID      1 8-15 NOT USED 1 
*                                   1_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:_1 
* 
* 
*                                    _______________________________
* C-SEND MEM PACKET  1100           1               1               1 
*                                   1  DID OR SID   1 8-15 NOT USED 1 
*                                   1_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:_1 
* 
* 
   MODULE DMA00,6000(200),LOCK
***       DMA00 - PARAMETER VALIDATION
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         CHECKS PARAMETER WORDS, DEVICE CODES, AND ACCESS LEVEL
*         TO VERIFY THAT VALID PARAMETERS HAVE BEEN ENTERED.
*         VERIFIES THAT THE REPEAT CONDITION AND REPEAT MODULE
*         SWITCHES ARE NOT SET.  IF A PARAMETER ENTRY ERROR IS
*         DETECTED, THE MODULE LOOPS ON A PAUSE DIRECTIVE WITH
*         A MESSAGE TO INFORM THE USER THAT THE PARAMETER CAN BE
*         CORRECTED AND THE TEST RE-RUN.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. VERIFY THAT THE DEVICE CODE ON THE ASSIGN DIRECTIVE
*            IS 200.  IF NOT, PAUSE AND REPORT A DEVICE CODE ERROR. 
*         3. VERIFY THAT THE ACCESS LEVEL ON THE ASSIGN DIRECTIVE IS
*            A 20.  IF NOT, PAUSE AND REPORT ACCESS LEVEL ERROR.
*         4. VERIFY THAT PARAMETER WORDS P0 - P6 ARE ZERO.
*            IF NOT, PAUSE AND REPORT A PARAMETER WORD ENTRY ERROR. 
*         5. VERIFY THAT PARAMETER WORD P7 CONTAINS A NON-ZERO VALUE. 
*            IF NOT, PAUSE AND REPORT A P7 RAFL ERROR.
*         6. VERIFY THAT THE REPEAT CONDITION AND REPEAT MODULE 
*            SWITCHES ARE CLEARED.
*         7. EXIT THE MODULES.
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA   - CYBERPLUS DMAU TESTS 
*            DMA00 - PARAMETER VALIDATION 
*            DMA00 P0=*3HH  P1=*3HH  P2=*3HH  P3=*3HH  P4=*3HH
*            DMA00 P5=*3HH  P6=*3HH  P7=*3HH  P8=*3HH  P9=*3HH
*            DMA00 AL=*OCTB   DC=*OCTB
*            DMA00 ASSIGNED EQUIPMENT HAS INCORRECT DEVICE CODE 
*            DMA00 DC=*OCT  MUST BE 200 
*            DMA00 ASSIGNED EQUIPMENT HAS INCORRECT ACCESS LEVEL
*            DMA00 AL=*OCT  MUST BE 20
*            DMA00 P0 - P6 ARE NOT ZERO, MUST BE CLEARED
*            DMA00 P7 IS ZERO....ENTER UEM BASE ADDRESS FROM
*            DMA00 BITS 47-59, CM LOCATION 120 (C4,120.)
*            DMA00 - - - PARAMETER ERROR - - -
*            DMA00 REPEAT MODULE SET, MUST BE CLEARED 
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B13 - MODULE NUMBER 
*         B14 - ERROR CODE
* 
* 
*   2.3   SUBMODULES USED 
* 
*         NONE
* 
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA   - CYBERPLUS DMAU TESTS
1  FORMAT DMA00 - PARAMETER VALIDATION
2  FORMAT DMA00 P0=*3HH  P1=*3HH  P2=*3HH  P3=*3HH  P4=*3HH 
3  FORMAT DMA00 P5=*3HH  P6=*3HH  P7=*3HH  P8=*3HH  P9=*3HH 
4  FORMAT DMA00 AL=*OCTB   DC=*OCTB 
5  FORMAT DMA00 ASSIGNED EQUIPMENT HAS INCORRECT DEVICE CODE
6  FORMAT DMA00 DC=*OCT  MUST BE 200
7  FORMAT DMA00 ASSIGNED EQUIPMENT HAS INCORRECT ACCESS LEVEL 
10 FORMAT DMA00 AL=*OCT  MUST BE 20 
11 FORMAT DMA00 P0 - P6 ARE NOT ZERO, MUST BE CLEARED 
12 FORMAT DMA00 P7 IS ZERO....ENTER UEM BASE ADDRESS FROM 
13 FORMAT DMA00 BITS 47-59, CM LOCATION 120 (C4,120.) 
14 FORMAT DMA00 - - - PARAMETER ERROR - - - 
15 FORMAT DMA00 REPEAT MODULE SET, MUST BE CLEARED
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 0 TO DISPLAY,PRINT,DAYFILE  *TEST NAME MSG 
   B13 = 00D                       *MODULE NUMBER 
   MSG 1 TO PRINT,DAYFILE          *MODULE MESSAGE
25 MSG 1 TO DISPLAY                *RUNNING MESSAGE 
* 
* -----------------VALIDATE DEVICE CODE-------------------
* 
   B14 = 1                         *ERROR MSG NR FOR DC ERROR 
   IF(DC.EQ.200)GOTO 27            *NOT DC ERROR
   GOTO 70                         *POST ERROR MSG
* 
* -----------------VALIDATE ACCESS LEVEL------------------
* 
27 B14 = 2                         *ACCESS LEVEL ERROR CODE 
   IF(AL.GE.20)GOTO 30            *AL OK
   GOTO 70
* 
* -----------------VALIDATE P0 - P6-----------------------
* 
30 B14 = 3                         *P0-P6 ERROR CODE
   IF(P0.NE.0)GOTO 70              *P0 ERROR
   IF(P1.NE.0)GOTO 70              *P1 ERROR
   IF(P2.NE.0)GOTO 70              *P2 ERROR
   IF(P3.NE.0)GOTO 70              *P3 ERROR
   IF(P4.NE.0)GOTO 70              *P4 ERROR
   IF(P5.NE.0)GOTO 70              *P5 ERROR
   IF(P6.NE.0)GOTO 70              *P6 ERROR
* 
* -----------------VALIDATE P7----------------------------
* 
32 B14 = 4                         *P7 ERROR CODE 
   IF(P7.EQ.0)GOTO 70              *P7 ERROR
* 
* -----------------CHECK RM SWITCH------------------------
* 
34 B14 = 5
   IF(ES.AND.RM.NE.0)GOTO 70
* 
* 
   EXIT                            *END OF MODULE 
* 
* -----------------POST ERROR MESSAGES--------------------
* 
70 MSG 0 TO LINE 1
   MSG 1 TO LINE 2
   MSG 14 TO LINE 3 
   MSG 2,(P0,P1,P2,P3,P4) TO LINE 4 
   MSG 3,(P5,P6,P7,P8,P9) TO LINE 5 
   MSG 4,(AL,DC) TO LINE 6
   IF(B14.EQ.1)MSG 5 TO LINE 7
   IF(B14.EQ.1)MSG 6(DC) TO LINE 8
   IF(B14.EQ.2)MSG 7 TO LINE 7
   IF(B14.EQ.2)MSG 10(AL) TO LINE 8 
   IF(B14.EQ.3)MSG 11 TO LINE 7 
   IF(B14.EQ.4)MSG 12 TO LINE 7 
   IF(B14.EQ.4)MSG 13 TO LINE 8 
   IF(B14.EQ.5)MSG 15 TO LINE 7 
   PICTURE
   PAUSE
   BLANK
   GOTO 25                         *LOOP
77 END 20 
COMPILE   *DMA00 - PARAMETER VALIDATION 
   MODULE DMA01,6000(200),LOCK
***       DMA01 - SRI I/0 REGISTER TEST 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TO VERIFY THAT THE SRI INPUT AND OUTPUT REGISTERS ON
*         THE SYSTEM RING PASS DATA CORRECTLY.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MSG.
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6. WRITE THE RING CONTROL AND DATA REGISTERS WITH A 
*            ZERO DATA PATTERN CREATING A LOST PACKET.
*         7. READ THE GSW AND VERIFY THAT THE LOST PACKET BIT 
*            IS SET 
*         8. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 3
*         9. READ THE LOST PACKET REGISTER AND VERIFY THE DATA
*        10. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 3
*        11. WRITE THE RING CONTROL AND DATA REGISTER WITH A
*            ONES DATA PATTERN CREATING A LOST PACKET.
*        12. READ THE GSW AND VERIFY THAT THE LOST PACKET BIT 
*            IS SET 
*        13. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 3
*        14. READ THE LOST PACKET REGISTER AND VERIFY THE DATA
*        15. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 3
*        16. REPEAT STEPS 3 - 15  1000 TIMES. 
*        17. IF RM IS SELECTED, GO TO STEP 1
*        18. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        19. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA01 - SRI I/0 REGISTER TEST
*            DMA01 .ABORT. P=*OCT, ECD=*OCT, ERC=*DEC, LC=*DEC
*            // MODULE ERROR LIMIT - DMA01
*            DMA01 ERROR(S) IN MODULE = *DEC
*            DMA01 LC=*DEC, ERC=*DEC
*            DMA01 DATA ERR, EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA01 PCKT MISSING EXP=*H*H*H*H HEX
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         OB(30-33) - SEND PACKET DATA
*         IB(0 - 3) - RECEIVE PACKET DATA 
*         OB(40-47) - DISPLAY BUFFER
*         SB(0 - 1) - CRP GSW 
*         B10 = MAIN LOOP COUNTER.
*         B11 = ERROR COUNTER 
*         B12 = COMMAND ABORT MESSAGE FORMAT NUMBER 
*         B13 = MODULE RUNNING NUMBER.
* 
* 
*   2.3   SUBMODULES USED 
* 
*         97X - ABORT MESSAGE PROCESSOR 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA01 - SRI I/0 REGISTER TEST 
2  FORMAT DMA01 .ABORT. P=*OCT, ERC=*DEC, LC=*DEC 
3  FORMAT // MODULE ERROR LIMIT - DMA01 
4  FORMAT DMA01 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA01 LC=*DEC, ERC=*DEC 
6  FORMAT DMA01 DATA ERR, EXP=*H*H*H*HH, ACT=*H*H*H*HH
7  FORMAT DMA01 PCKT MISSING  EXP=*H*H*H*H HEX
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM = 20, CLRCRP = 0, ZEROS = 2, ONES = 4
   EQUATE PCKT1 = 6, PCKT2 = 12 
* 
* -------------------DATA---------------------------------- 
* 
   DATA (OB(0),H)4100, 0000, FFFF, 0840, 0000, 0FFE, FFFF 
* 
* -----------------INITIALIZATION-------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE  *TEST NAME MSG 
   B13 = 01D                       *MODULE NUMBER 
* 
32 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST----------------------------------
* 
34 MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   B12 = 1                         *RES CHAN
   RES , ABT 70 
   B12 = 2                         *EXT RESET HPPS
   FUNC 251 , ABT 70
   B12 = 3
   OUT 2 WORDS FROM OB(ONES) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
   B12 = 2                         *CLR CRP/DMAU
   FUNC 250 , ABT 70
   B12 = 3
   OUT 2 WORDS FROM OB(CLRCRP) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
* 
   COPY OB(PCKT1) TO OB(30) FOR 4  *ZEROS 
   GOSUB 54                        *WRITE RING C/D REGS 
   GOSUB 56                        *READ GSW
   IF (SB(1).AND.40.EQ.0) GOTO 40  *CK FOR LP 
   GOSUB 60                        *READ LOST PACKET REGS 
   WC = 4 
   COMPARE OB(30) TO IB(0) FOR WC , ABT 42
* 
   COPY OB(PCKT2) TO OB(30) FOR 4  *ONES
   GOSUB 54                        *WRITE RING C/D REGS 
   GOSUB 56                        *READ GSW
   IF (SB(1).AND.40.EQ.0) GOTO 40  *CK FOR LP 
   GOSUB 60                        *READ LOST PACKET REGS 
   WC = 4 
   COMPARE OB(30) TO IB(0) FOR WC , ABT 42
* 
35 GOTO 34 WHILE(B10+1.LE.1000D)
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   B10 = 0
   IF(ES.AND.RM.NE.0)GOTO 34       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------MISSING PACKET----------------------
* 
40 B11=B11+1
   MSG 7, 4 WORDS FROM OB(30) TO LINE 2 
   IF(ES.AND.SL.EQ.0)GOTO 46       *NOT SL
   MSG 7, 4 WORDS FROM OB(30) TO DISPLAY
   GOTO 35
* 
* --------------DATA COMPARE ERROR--------------------- 
* 
42 B11=B11+1
   COPY OB(30) TO OB(40) FOR 4
   COPY IB(0) TO OB(44) FOR 4 
   MSG 6, 8 WORDS FROM OB(40) TO LINE 2 
   IF(ES.AND.SL.EQ.0)GOTO 46       *NOT SL
   MSG 6, 8 WORDS FROM OB(40) TO DISPLAY
   GOTO 35
* 
* ------------------DISPLAY PROCESSOR-----------------
* 
46 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
54 B12 = 6                         *WR RCDR 
   BA = 30
   WC = 4 
   FOUT 273 , ABT 70
   RETURN 
* 
56 B12 = 2                         *RD GSW
   FUNC 200 , ABT 70
   B12 = 7
   STATUS 2 WORDS TO SB(0) , ABT 70 
   RETURN 
 *
60 WC = 2                          *RD LP1 AND LP2
   BA = 0 
   B12 = 5
   FIN 203 , ABT 70 
   BA = 2 
   FIN 204 , ABT 70 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
70 B11=B11+1                      *BUMP ERROR CNTR
   ENDSUB 
   IF(ES.AND.SL.EQ.0) GOTO 74     *NOT SCOPE LOOP 
   MSG 2(EA,B11,B10)TO DISPLAY    *ERROR MSG
   GOTO 35                        *SCOPE LOOP ON ERROR
* 
74 MSG 1 TO LINE 1                *ABORT MSG TO TERM
   MSG 2(EA,B11,B10)TO LINE 2 
   CALL 97X 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 35
* 
77 END 30 
COMPILE   *DMA01 - SRI I/O REGISTER TEST
   MODULE DMA03,6000(200),LOCK
***       DMA03 - SRI READ STATUS TEST
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TO VERIFY THAT THE SRI STATUS WORD CAN BE READ. 
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE REPEAT CONDITION MSG IF SL IS SELECTED.
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP
*         6. SEND A STATUS FUNCTION PACKET (1010) TO THE SRI. 
*         7. READ THE GSW AND VERIFY THAT THE DATA FIFO READY BIT 
*            IS SET 
*         8. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 3
*         9. READ THE CONTROL AND DATA FIFO AND VERIFY THE DATA 
*        10. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 3
*        11. REPEAT STEPS 5 - 10  1000 TIMES. 
*        12. IF RM IS SELECTED, GO TO STEP 1
*        13. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        14. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA03 - SRI READ STATUS TEST 
*            DMA03 .ABORT. P=*OCT, ECD=*OCT, ERC=*DEC, LC=*DEC
*            // MODULE ERROR LIMIT - DMA03
*            DMA03 ERROR(S) IN MODULE = *DEC
*            DMA03 LC=*DEC, ERC=*DEC
*            DMA03 STATUS ERR, EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA03 NO STATUS RETURNED 
* 
* 
*   1.4   PARAMETERS
* 
*          NONE 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         OB(6 -11) - SEND PACKET DATA
*         OB(12-15) - EXPECTED SRI STATUS 
*         IB(0 - 3) - ACTUAL SRI STATUS 
*         OB(40-47) - DISPLAY BUFFER
*         SB(0 - 1) - CRP GSW 
*         B10 = MAIN LOOP COUNTER.
*         B11 = ERROR COUNTER 
*         B12 = COMMAND ABORT MESSAGE FORMAT NUMBER 
*         B13 = MODULE RUNNING NUMBER.
* 
* 
*   2.3   SUBMODULES USED 
* 
*         97X - ABORT MESSAGE PROCESSOR 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA03 - SRI READ STATUS TEST
2  FORMAT DMA03 .ABORT. P=*OCT, ERC=*DEC, LC=*DEC 
3  FORMAT // MODULE ERROR LIMIT - DMA03 
4  FORMAT DMA03 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA03 LC=*DEC, ERC=*DEC 
6  FORMAT DMA03 STATUS ERR, EXP=*H*H*H*HH, ACT=*H*H*H*HH
7  FORMAT DMA03 NO STATUS RETURNED
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM = 20, CLRCRP = 0, ZEROS = 2, ONES = 4
   EQUATE SREQ = 6, EXPD = 10 
* 
* -------------------DATA---------------------------------- 
* 
   DATA (OB(0),H)4100, 0000, FFFF, 0AD1, 02D0, 4000 
* 
* -----------------INITIALIZATION-------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE  *TEST NAME MSG 
   B13 = 03D                       *MODULE NUMBER 
* 
32 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST----------------------------------
* 
34 MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   B12 = 1                         *RES CHAN
   RES , ABT 70 
   B12 = 2                         *EXT RESET HPPS
   FUNC 251 , ABT 70
   B12 = 3
   OUT 2 WORDS FROM OB(ONES) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
   B12 = 2
   FUNC 250 , ABT 70               *CLR CRP/DMAU
   B12 = 3
   OUT 2 WORDS FROM OB(CLRCRP) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
* 
   BA = SREQ                       *SEND SRI STATUS REQ 
   GOSUB 54 
   GOSUB 56                        *READ GSW
* 
   IF (SB(1).AND.02.EQ.0) GOTO 40  *CK FOR DF RDY 
* 
   GOSUB 60                        *READ THE CONTROL/DATA FIFO
   WC = 4 
   COMPARE OB(EXPD) TO IB(0) FOR WC , ABT 42
* 
35 GOTO 34 WHILE(B10+1.LE.100D) 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 32       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------NO STATUS RETURNED------------------
* 
40 B11=B11+1
   MSG 7 TO LINE 2
   IF(ES.AND.SL.EQ.0)GOTO 46       *NOT SL
   MSG 7 TO DISPLAY 
   GOTO 35
* 
* --------------STATUS ERROR--------------------------- 
* 
42 B11=B11+1
   COPY OB(EXPD) TO OB(40) FOR 4
   COPY IB(0) TO OB(44) FOR 4 
   MSG 6, 8 WORDS FROM OB(40) TO LINE 2 
   IF(ES.AND.SL.EQ.0)GOTO 46       *NOT SL
   MSG 6, 8 WORDS FROM OB(40) TO DISPLAY
   GOTO 35
* 
* ------------------DISPLAY PROCESSOR-----------------
* 
46 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
54 B12 = 6                         *WR RCDR 
   WC = 4 
   FOUT 273 , ABT 70
   RETURN 
* 
56 B12 = 2                         *RD GSW
   FUNC 200 , ABT 70
   B12 = 7
   STATUS 2 WORDS TO SB(0) , ABT 70 
   RETURN 
 *
60 WC = 4                          *RD CF/DF
   BA = 0 
   B12 = 5
   FIN 226 , ABT 70 
   COPY IB(2) TO IB(4) FOR 2       *SWAP CONTROL AND DATA FIELDS
   COPY IB(0) TO IB(2) FOR 2
   COPY IB(4) TO IB(0) FOR 2
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
70 B11=B11+1                      *BUMP ERROR CNTR
   ENDSUB 
   IF(ES.AND.SL.EQ.0) GOTO 74     *NOT SCOPE LOOP 
   MSG 2(EA,B11,B10)TO DISPLAY    *ERROR MSG
   GOTO 35                        *SCOPE LOOP ON ERROR
* 
74 MSG 1 TO LINE 1                *ABORT MSG TO TERM
   MSG 2(EA,B11,B10)TO LINE 2 
   CALL 97X 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 35
* 
77 END 30 
COMPILE   *DMA03 - SRI READ STATUS TEST 
   MODULE DMA05,6000(200),LOCK
***       DMA05 - SRI CONNECT/DISCONNECT TEST 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE SRI CONNECT AND DISCONNECT FUNCTIONS, 
*         AND THE CONNECT, QUEUED, AND QUEUE REJECTED 
*         RESPONSES.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. CLEAR THE CRP
*         4. RESET ALL HPP'S
*         5. DISPLAY THE REPEAT CONDITION MSG IF SL IS SELECTED.
*         6. SEND 1 CONNECT FUNCTION TO THE SRI (1001)
*         7. READ THE DATA FIFO AND VERIFY A CONNECT RESPONSE 
*         8. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 5
*         9. SEND 1 CONNECT FUNCTION TO THE SRI (1001)
*        10. READ THE DATA FIFO AND VERIFY A QUEUED RESPONSE
*        11. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 5
*        12. REPEAT STEPS 9 - 11 FIFTEEN TIMES
*        13. SEND 1 CONNECT FUNCTION TO THE SRI (1001)
*        14. READ THE DATA FIFO AND VERIFY A QUEUE REJECTED RESPONSE
*        15. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 5
*        16. SEND 1 DISCONNECT FUNCTION TO THE SRI (0110) 
*        17. READ THE CONTROL AND DATA FIFO AND VERIFY THE FOLLOWING
*            DATA@D 
*                     1   DISCONNECT RESPONSE 
*                     1   CONNECT RESPONSE
* 
*        18. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 5
*        19. REPEAT STEPS 16-18 FIFTEEN TIMES 
*        20. SEND 1 DISCONNECT FUNCTION TO THE SRI (0110) 
*        21. READ THE CONTROL AND DATA FIFO AND VERIFY THE FOLLOWING
*            DATA@D 
*                     1   DISCONNECT RESPONSE 
* 
*        22. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 5
*        23. REPEAT STEPS 5 - 22  1000 TIMES. 
*        24. IF RM IS SELECTED, GO TO STEP 1
*        25. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        26. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA05 - SRI CONNECT/DISCONNECT TEST
*            DMA05 .ABORT. P=*OCT, ECD=*OCT, ERC=*DEC, LC=*DEC
*            // MODULE ERROR LIMIT - DMA05
*            DMA05 ERROR(S) IN MODULE = *DEC
*            DMA05 RUNNING  LC=*DEC, ERC=*DEC 
*            DMA05 - SRI CONNECT/DISCONNECT TEST
*            DMA05 GSW STATUS=*H*H HEX
*            DMA05 PACKET SENT=*H*H*H*H HEX 
*            DMA05 NO RESP ON CONNECT REQ *DEC
*            DMA05 NO RESP ON DISCONN REQ *DEC
*            DMA05 STATUS ERR ON CONN RESP *DEC 
*            DMA05 STATUS ERR ON DISC RESP *DEC 
*            DMA05 STATUS ERR, EXP=*H*H*H*H H, ACT=*H*H*H*H H 
*            DMA05 STATUS ERR, EXP=*H*H*H*H *H*H*H*H H
*            DMA05 STATUS ERR, ACT=*H*H*H*H *H*H*H*H H
* 
* 
*   1.4   PARAMETERS
* 
*          NONE 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         OB(6 -11) - CONNECT REQUEST 
*         OB(12-15) - DISCONNECT REQUEST
*         OB(16-21) - EXPECTED CONNECT RESPONSE 
*         OB(22-25) - EXPECTED QUEUED RESPONSE
*         OB(26-31) - EXPECTED QUEUE REJ RESPONSE 
*         OB(32-35) - EXPECTED DISCONNECT RESPONSE
*         IB(0 - 7) - ACTUAL SRI STATUS 
*         OB(40-47) - STATUS ERR DISPLAY BUFFER 
*         SB(0 - 1) - CRP GSW 
*         B7  = BUFFER POINTER
*         B9  = CONN/DISCONN COUNTER
*         B10 = MAIN LOOP COUNTER.
*         B11 = ERROR COUNTER 
*         B12 = COMMAND ABORT MESSAGE FORMAT NUMBER 
*         B13 = MODULE RUNNING NUMBER.
* 
* 
*   2.3   SUBMODULES USED 
* 
*         97X - ABORT MESSAGE PROCESSOR 
*         05A - ERROR MESSAGE PROCESSOR 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA05 - SRI CONNECT/DISCONNECT TEST 
2  FORMAT DMA05 .ABORT. P=*OCT, ERC=*DEC, LC=*DEC 
3  FORMAT // MODULE ERROR LIMIT - DMA05 
4  FORMAT DMA05 ERRORS IN MODULE = *DEC 
5  FORMAT DMA05 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=0, ZEROS=2, ONES=4, QRRES=26
   EQUATE CONN=6, DISC=12, CRES=16, QRES=22, DRES=32
* 
* -------------------DATA---------------------------------- 
* 
   DATA (OB(0),H) 4100, 0000, FFFF, 09D1, 02D0, 06D1, 0400
   DATA (OB(16),H)02D0, 4000, 02D0, 8080, 02D0, C080
   DATA (OB(32),H)02D0, 4080, 02D0, 4080
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *TEST NAME MSG 
   B13 = 05D                       *MODULE NUMBER 
* 
22 B11 = 0                         *ERROR COUNTER 
   B10 = 0                         *LOOP COUNTER
* 
* ------------------CONNECT TEST--------------------------
* 
30 MSG 5(B10,B11) TO DISPLAY       *DISPLAY RUNNING MSG 
* 
   B12 = 1                         *RES CHAN
   RES , ABT 70 
   B12 = 2
   FUNC 251 , ABT 70               *EXT RESET HPPS
   B12 = 3
   OUT 2 WORDS FROM OB(ONES) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
   B12 = 2
   FUNC 250 , ABT 70               *CLR CRP/DMAU
   B12 = 3
   OUT 2 WORDS FROM OB(CLRCRP) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
* 
   B9 = 1                          *CONN COUNTER
   BA = CONN
   GOSUB 54                        *SEND FIRST CONN REQ 
   GOSUB 56                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/051D GOTO 42 
* 
   WC = 4                          *CK FOR RESPONSE 
   GOSUB 60                        *READ CF/DF
   B7 = CRES                       *CONN RESPONSE 
   ERROR 02/052D                   *COMPARE EXP TO ACT
* 
   COMPARE OB(B7) TO IB(0) FOR WC , ABT 42
* 
   B9 = 2                          *CONN COUNTER
32 GOSUB 54                        *ISSUE NEXT CONNECT
   GOSUB 56                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/051D GOTO 42 
* 
   GOSUB 60                        *READ CF/DF
   B7 = QRES                       *QUEUED RESPONSE 
   ERROR 02/052D                   *COMPARE EXP AND ACT 
* 
   COMPARE OB(B7) TO IB(0) FOR WC , ABT 42
* 
   GOTO 32 WHILE(B9+1.LE.15D)      *DO 14 TIMES 
* 
   GOSUB 54                        *ISSUE CONNECT 16
   GOSUB 56                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/051D GOTO 42 
* 
   GOSUB 60                        *READ CF/DF
   B7 = QRRES                      *QUEUE REJ RESPONSE
   ERROR 02/052D                   *COMPARE EXP AND ACT 
* 
   COMPARE OB(B7) TO IB(0) FOR WC , ABT 42
* 
* ----------------DISCONNECT TEST-------------------
  
   B9 = 1                          *DISC COUNTER
   BA = DISC                       *DISCONNECT REQ
34 GOSUB 54                        *ISSUE DISCONNECT
   GOSUB 56                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 03/053D GOTO 42 
* 
   WC = 8                          *CK FOR DISC RESP
   GOSUB 60                        *READ CF/DF
   B7 = DRES                       *DISC/CONN RESPONSE
   ERROR 04/054D                   *COMPARE EXP TO ACT
* 
   COMPARE OB(B7) TO IB(0) FOR WC , ABT 42
* 
   GOTO 34 WHILE(B9+1.LE.14D)      *DO 14 TIMES 
* 
   GOSUB 54                        *ISSUE DISC 15 
   GOSUB 56                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 03/053D GOTO 42 
   WC = 4 
   GOSUB 60                        *READ CF/DF
   B7 = DRES                       *ONLY DISCONNECT RESPONSE
   ERROR 05/055D                   *COMPARE EXP TO ACT
* 
   COMPARE OB(B7) TO IB(0) FOR WC , ABT 42
36 GOTO 30 WHILE(B10+1.LE.100D) 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
40 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* -------------ERROR MESSAGE PROCESSING---------------
* 
42 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 36       *SCOPE LOOP
   CALL 05A                        *NOT SCOPE LOOP
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
54 B12 = 6                         *WR RCDR 
   WC = 4 
   FOUT 273 , ABT 70
   RETURN 
* 
56 B12 = 2
   FUNC 200 , ABT 70
   B12 = 7
   STATUS 2 WORDS TO SB(0) , ABT 70 
   RETURN 
* 
60 B12 = 2
   FUNC 226 , ABT 70               *RD CF/DF FOR WC 
   B0 = WC - 2
   B12 = 4
62 IN CHAIN 2 WORDS TO IB(B0) , ABT 70
   GOTO 62 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0) , ABT 70 
   RETURN 
* 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
70 B11=B11+1                      *BUMP ERROR CNTR
   ENDSUB 
   IF(ES.AND.SL.NE.0) GOTO 36     *SCOPE LOOP 
* 
74 MSG 1 TO LINE 1                *ABORT MSG TO TERM
   MSG 2(EA,B11,B10)TO LINE 2 
   CALL 97X 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 40 
   GOTO 36
* 
77 END 20 
COMPILE   *DMA05 - SRI CONNECT/DISCONNECT TEST
   MODULE DMA05A,6000(200),LOCK 
*         DMA05A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA05 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA05 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA05 - SRI CONNECT/DISCONNECT TEST 
2  FORMAT DMA05 GSW STATUS=*H*H HEX 
3  FORMAT DMA05 PACKET SENT=*H*H*H*H HEX
6  FORMAT DMA05 NO RESP ON CONNECT REQ *DEC 
7  FORMAT DMA05 NO RESP ON DISCONN REQ *DEC 
10 FORMAT DMA05 STATUS ERR ON CONN RESP *DEC
11 FORMAT DMA05 STATUS ERR ON DISC RESP *DEC
12 FORMAT DMA05 STATUS ERR, EXP=*H*H*H*H H, ACT=*H*H*H*H H
13 FORMAT DMA05 STATUS ERR, EXP=*H*H*H*H *H*H*H*H H 
14 FORMAT DMA05 STATUS ERR, ACT=*H*H*H*H *H*H*H*H H 
* 
* -------------ERROR MESSAGE PROCESSOR----------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
   IF(EM.EQ.5)GOTO 35 
* 
31 MSG 6(B9) TO LINE 2             *NO CONN RESPONSE
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 2, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 10(B9) TO LINE 2            *CONN RESP ERROR 
   COPY OB(B7) TO OB(40) FOR 4
   COPY IB(0) TO OB(44) FOR 4 
   MSG 12, 8 WORDS FROM OB(40) TO LINE 3
   GOTO 40
* 
33 MSG 7(B9) TO LINE 2            *NO DISCONN RESPONSE
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 2, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
34 MSG 11(B9) TO LINE 2            *DISC/CONN RESP ERROR
   MSG 13, 8 WORDS FROM OB(B7) TO LINE 3
   COPY IB(0) TO IB(8) FOR 4
   COPY IB(4) TO IB(0) FOR 4
   COPY IB(8) TO IB(4) FOR 4
   MSG 14, 8 WORDS FROM IB(0) TO LINE 4 
   GOTO 40
* 
35 MSG 11(B9) TO LINE 2            *DISC RESPONSE ERROR 
   COPY OB(B7) TO OB(40) FOR 4
   COPY IB(0) TO OB(44) FOR 4 
   MSG 12, 8 WORDS FROM OB(40) TO LINE 3
   GOTO 40
* 
* ------------------DISPLAY PROCESSOR-----------------
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA05A - MSG PROCESSOR 
   MODULE DMA07,6000(200),LOCK
***       DMA07 - MEMORY RING REGISTER LOOP TEST (320)
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TO VERIFY THAT THE MEMORY RING REGISTER LOOP CAN
*         BE READ WHEN ONE MMI/MRI IS INCLUDED IN THE LOOP. 
*         THE 320 BIT REGISTER LOOP IS WRITTEN AND READ IN
*         DIAGNOSTIC MODE AND THE DATA VERIFIED.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MSG 
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP
*         6. WRITE 320 BITS TO THE MEMORY RING REGISTER LOOP. 
*         7. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 3
*         8. READ 320 BITS FROM THE MEMORY RING REGISTER LOOP 
*            AND VERIFY THE DATA. 
*         9. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 3
*        10. REPEAT STEPS 5 - 15  100 TIMES.
*        11. IF RM IS SELECTED, GO TO STEP 1
*        12. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        13. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA07 - MEM RING REG LOOP TEST (320) 
*            DMA07 .ABORT. P=*OCT, ECD=*OCT, ERC=*DEC, LC=*DEC
*            // MODULE ERROR LIMIT - DMA07
*            DMA07 ERROR(S) IN MODULE = *DEC
*            DMA07 LC=*DEC, ERC=*DEC
*            DMA07 --------MEM RING RL ERROR------------- 
*            DMA07 PMI/MRI  IN  E 00FF55AA010204081020 HEX
*            DMA07 MMI/MRI  IN  E 40800123456789ABCDEF HEX
*            DMA07 MMI/MRI  OUT E FF00AA55FEFDFBF7EFDF HEX
*            DMA07 PMI/MRI  OUT E BF7FFEDCBA9876543210 HEX
*            DMA07              A *H*H                 HEX
*            DMA07                    *H*H*H*H*H*H*H*H HEX
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         OB(00-47) - REG LOOP WRITE DATA 
*         IB(00-47) - REG LOOP READ DATA
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B12 - COMMAND ABORT MESSAGE FORMAT NUMBER 
*         B13 - MODULE RUNNING NUMBER.
* 
* 
*   2.3   SUBMODULES USED 
* 
*         97X - ABORT MESSAGE PROCESSOR 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA07 - MEM RING REG LOOP TEST (320)
2  FORMAT DMA07 .ABORT. P=*OCT, ERC=*DEC, LC=*DEC 
3  FORMAT // MODULE ERROR LIMIT - DMA07 
4  FORMAT DMA07 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA07 LC=*DEC, ERC=*DEC 
6  FORMAT DMA07 DATA ERR, EXP=*H*HH, ACT=*H*HH
7  FORMAT DMA07 PMI/MRI  IN  E 00FF55AA010204081020 HEX 
10 FORMAT DMA07 MMI/MRI  IN  E 40800123456789ABCDEF HEX 
11 FORMAT DMA07 MMI/MRI  OUT E FF00AA55FEFDFBF7EFDF HEX 
12 FORMAT DMA07 PMI/MRI  OUT E BF7FFEDCBA9876543210 HEX 
13 FORMAT DMA07              A *H*H                 HEX 
14 FORMAT DMA07                    *H*H*H*H*H*H*H*H HEX 
15 FORMAT DMA07 ---------MEM RING RL ERROR------------
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM = 20, CLRCRP = 50, ZEROS = 52, ONES = 54 
* 
* -------------------DATA---------------------------------- 
* 
   DATA (OB(50),H)4100, 0000, FFFF
   DATA (OB(0),H) 00FF, 55AA, 0102, 0408, 1020, 4080
   DATA (OB(14),H)0123, 4567, 89AB, CDEF, FF00, AA55
   DATA (OB(30),H)FEFD, FBF7, EFDF, BF7F, FEDC, BA98
   DATA (OB(44),H)7654, 3210
* 
* -----------------INITIALIZATION-------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE  *TEST NAME MSG 
   B13 = 07D                       *MODULE NUMBER 
* 
31 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST----------------------------------
* 
32 MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   B12 = 1                         *RES CHAN
   RES , ABT 70 
   B12 = 2                         *EXT RESET HPPS
   FUNC 251 , ABT 70
   B12 = 3
   OUT 2 WORDS FROM OB(ONES) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
   B12 = 2                         *CLR CRP/DMAU
   FUNC 250 , ABT 70
   B12 = 3
   OUT 2 WORDS FROM OB(CLRCRP) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
* 
   B0 = 46                         *WR REG LOOP 
   B12 = 2
   FUNC 255 , ABT 70
   B12 = 3
33 OUT CHAIN 2 WORDS FROM OB(B0) , ABT 70 
   GOTO 33 WHILE(B0-2.GE.2) 
   OUT 2 WORDS FROM OB(0) , ABT 70
* 
   B0 = 46
   B12 = 2                         *RD REG LOOP 
   FUNC 215 , ABT 70
   B12 = 4
34 IN CHAIN 2 WORDS TO IB(B0) , ABT 70
   GOTO 34 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0) , ABT 70 
* 
   WC = 50                         *COMPARE EXP AND ACT 
   COMPARE OB(0) TO IB(0) FOR WC, ABT 42
* 
35 GOTO 32 WHILE(B10+1.LE.100D)    *DO 100 TIMES
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 31       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* --------------DATA COMPARE ERROR--------------------- 
* 
42 B11 = B11+1
   IF(ES.AND.SL.EQ.0)GOTO 46       *NOT SL
   COPY OB(WC) TO OB(60) FOR 2
   COPY IB(WC) TO OB(62) FOR 2
   MSG 6, 4 WORDS FROM OB(60) TO DISPLAY
   GOTO 35
* 
* ------------------DISPLAY PROCESSOR-----------------
* 
46 MSG 1 TO LINE 1
   MSG 15 TO LINE 2 
   MSG 7 TO LINE 3
   MSG 13, 2D WORDS FROM IB(0) TO LINE 4
   MSG 14, 8D WORDS FROM IB(2)TO LINE 5 
   MSG 10 TO LINE 7 
   MSG 13, 2D WORDS FROM IB(12)TO LINE 10 
   MSG 14, 8D WORDS FROM IB(14)TO LINE 11 
   MSG 11 TO LINE 13
   MSG 13, 2D WORDS FROM IB(24)TO LINE 14 
   MSG 14, 8D WORDS FROM IB(26)TO LINE 15 
   MSG 12 TO LINE 17
   MSG 13, 2D WORDS FROM IB(36)TO LINE 20 
   MSG 14, 8D WORDS FROM IB(40)TO LINE 21 
   PICTURE
   HALT 
   BLANK
   GOTO 75
* 
* --------------ABORT PROCESSOR------------------------ 
* 
70 B11 = B11+1                    *BUMP ERROR CNTR
   ENDSUB 
   IF(ES.AND.SL.EQ.0) GOTO 74     *NOT SCOPE LOOP 
   MSG 2(EA,B11,B10)TO DISPLAY    *ERROR MSG
   GOTO 35                        *SCOPE LOOP ON ERROR
* 
74 MSG 1 TO LINE 1                *ABORT MSG TO TERM
   MSG 2(EA,B11,B10)TO LINE 2 
   CALL 97X 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 35
* 
77 END 30 
COMPILE   *DMA07 - MEM RING REG LOOP TEST (320) 
   MODULE DMA09,6000(200),LOCK
***       DMA09 - MEMORY RING PACKET TEST (320) 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE ASSEMBLY OF MEMORY RING WRITE PACKETS IN THE
*         SRI, THE STOP/STEP MEMORY RING FUNCTION, AND THE MEMORY 
*         RING REGISTER LOOP. 
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE REPEAT CONDITION MSG IF SL IS SELECTED.
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         7. SEND A 6 CONTROL FUNCTION - STOP MEMORY RING.
*         8. INITIALIZE THE BLOCK COUNT AND WRITE ADDRESS 
*            FROM B10.
*         9. SEND A 8 BLOCK COUNT FUNCTION. 
*        10. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        11. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        12. SEND A C SEND MEMORY PACKET FUNCTION.
*        13  SEND A 6 CONTROL FUNCTION - STEP MEMORY RING.
*        14. READ THE MEMORY RING REGISTER LOOP AND VERIFY THE
*            PACKET DATA IN THE OUTPUT REGISTER.
*        15. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        16. REPEAT STEPS 3 - 15 FOR B10 = 0 TO FF HEX
*        17. IF RM IS SELECTED, GO TO STEP 3. 
*        18. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        19. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA09 - MEM RING PACKET TEST (320) 
*            DMA09 .ABORT. P=*OCT, ECD=*OCT, ERC=*DEC, LC=*DEC
*            // MODULE ERROR LIMIT - DMA09
*            DMA09 ERROR(S) IN MODULE = *DEC
*            DMA09 LC=*DEC, ERC=*DEC
*            DMA09 - MEM RING PACKET TEST 
*            DMA09 NO RESPONSE ON CONNECT FCTN
*            DMA09 PACKET SENT = *H*H*H*HH
*            DMA09 RESPONSE ERROR ON CONNECT FCTN 
*            DMA09 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA09 MR REG LOOP DATA ERROR 
*            DMA09 PMI/MRI OUT E *H*H                    HEX
*            DMA09                   *H*H *H*H *H*H *H*H HEX
*            DMA09 PMI/MRI OUT A *H*H                    HEX
*            DMA09                   *H*H *H*H *H*H *H*H HEX
*            DMA09 GSW = *H*HH, DFR FLAG = 0
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B12 - COMMAND ABORT MESSAGE FORMAT NUMBER 
*         B13 - MODULE RUNNING NUMBER.
*         SB(00 - 01) - CRP GSW 
*         IB(00 - 47) - REG LOOP INPUT DATA 
*         OB(100-111) - EXPECTED DATA 
* 
* 
*   2.3   SUBMODULES USED 
* 
*         97X - ABORT MESSAGE PROCESSOR 
* 
*         09A - ERROR MESSAGE PROCESSOR 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA09 - MEM RING PACKET TEST (320)
2  FORMAT DMA09 .ABORT. P=*OCT, ERC=*DEC, LC=*DEC 
3  FORMAT // MODULE ERROR LIMIT - DMA09 
4  FORMAT DMA09 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA09 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM = 20, CLRCRP = 54, ZEROS = 56, ONES = 60 
   EQUATE SREQ = 0, CONN = 4, STOPMR = 10, BLKNT = 14 
   EQUATE WRADDL = 20, WRADDU = 24, SENDMP = 30 
   EQUATE STEPMR = 34, CRES = 40, RUNMR = 50
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, C000, 08D1 
   DATA (OB(016),H)0000, 03D1, 0000, 04D1, 0000, 0CD1, AA00 
   DATA (OB(034),H)06D1, E000, 02D0, 4000, 02D0, 4840, 06D1 
   DATA (OB(052),H)8000, 4100, 0000, FFFF 
   DATA (OB(100),H)65AA, 00BB, BBD1, BBBB, BBBB 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *TEST NAME MSG 
   B13 = 09D                       *MODULE NUMBER 
* 
30 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST----------------------------------
* 
32 MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   B12 = 1                         *RES CHAN
   RES , ABT 70 
   B12 = 2                         *EXT RESET HPPS
   FUNC 251 , ABT 70
   B12 = 3
   OUT 2 WORDS FROM OB(ONES) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
   B12 = 2                         *CLR CRP/DMAU
   FUNC 250 , ABT 70
   B12 = 3
   OUT 2 WORDS FROM OB(CLRCRP) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
* 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/091D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/092D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = STOPMR                     *STOP MEM RING 
   GOSUB 52 
   DUP B10 TO OB(16) FOR 2         *ENTER BLK COUNT 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   DUP B10 TO OB(22) FOR 2         *ENTER WR ADDR LOWER 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   DUP B10 TO OB(26) FOR 2         *ENTER WR ADDR UPPER 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = STEPMR                     *STEP MEM RING 
   GOSUB 52 
   GOSUB 60                        *RD MR REG LOOP
   DUP B10 TO OB(106) FOR 4        *B10 TO COMPARE BUFF 
   DUP B10 TO OB(103) FOR 2 
   ERROR 03/093D
   COMPARE OB(100) TO IB(36) FOR WC, ABT 40 
* 
34 GOTO 32 WHILE(B10+1.LE.377)
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 30       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 34       *SL
   CALL 09A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 B12 = 6                         *WR RCR/RDR
   WC = 4 
   FOUT 273 , ABT 70
   RETURN 
* 
54 B12 = 2                         *RD GSW
   FUNC 200 , ABT 70
   B12 = 7
   STATUS 2 WORDS TO SB(0) , ABT 70 
   RETURN 
* 
56 B12 = 2
   FUNC 226 , ABT 70                *RD CF/DF 
   B12 = 4
   IN CHAIN 2 WORDS TO IB(2) , ABT 70 
   IN 2 WORDS TO IB(0) , ABT 70 
   RETURN 
* 
60 B0 = 46
   B12 = 2
   FUNC 215 , ABT 70
   B12 = 4
62 IN CHAIN 2 WORDS TO IB(B0) , ABT 70
   GOTO 62 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0) , ABT 70 
   WC = 12
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
70 B11 = B11+1                      *BUMP ERROR CNTR
   ENDSUB 
   IF(ES.AND.SL.EQ.0) GOTO 74     *NOT SCOPE LOOP 
   MSG 2(EA,B11,B10)TO DISPLAY    *ERROR MSG
   GOTO 34                        *SCOPE LOOP ON ERROR
* 
74 MSG 1 TO LINE 1                *ABORT MSG TO TERM
   MSG 2(EA,B11,B10)TO LINE 2 
   CALL 97X 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 34
* 
77 END 20 
COMPILE   *DMA09 - MEM RING PACKET TEST (320) 
   MODULE DMA09A,6000(200),LOCK 
*         DMA09A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA09 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA09 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA09 - MEM RING PACKET TEST (320)
2  FORMAT DMA09 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA09 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA09 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA09 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA09 MR REG LOOP DATA ERROR
10 FORMAT DMA09 PMI/MRI OUT E *H*H                    HEX 
11 FORMAT DMA09                   *H*H *H*H *H*H *H*H HEX 
12 FORMAT DMA09 PMI/MRI OUT A *H*H                    HEX 
13 FORMAT DMA09                   *H*H *H*H *H*H *H*H HEX 
22 FORMAT DMA09 GSW = *H*HH, DFR FLAG = 0 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 22, 2 WORDS FROM SB(0) TO LINE 4 
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 6 TO LINE 2
   MSG 10, 2 WORDS FROM OB(100) TO LINE 4 
   MSG 11, 8 WORDS FROM OB(102) TO LINE 5 
   MSG 12, 2 WORDS FROM IB(36) TO LINE 6
   MSG 13, 8 WORDS FROM IB(40) TO LINE 7
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA09A - MSG PROCESSOR 
   MODULE DMA11,6000(200),LOCK
***       DMA11 - MMI/MRI I/O REGISTER TEST (320) 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE INPUT AND OUTPUT REGISTERS OF THE MMI/MRI ON
*         THE MEMORY RING, THE MRI REGISTER LOOP FOR THE MMI
*         AND PMI COMBINATION, AND THE MEMORY RING CABLES.
*         THIS MODULE STEPS A PACKET OF ALL 1'S AROUND THE
*         MEMORY RING, READING THE MEMORY RING REGISTER LOOP
*         AFTER EACH STEP AND VERIFYING THE DATA. 
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE REPEAT CONDITION MSG IF SL IS SELECTED.
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         7. SEND A 6 CONTROL FUNCTION - STOP MEMORY RING.
*         8. SEND A 8 BLOCK COUNT FUNCTION. 
*         9. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        10. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        11. SEND A C SEND MEMORY PACKET FUNCTION.
*        12  SEND A 6 CONTROL FUNCTION - STEP MEMORY RING.
*        13. READ THE MEMORY RING REGISTER LOOP AND VERIFY THE
*            PACKET DATA IN THE PMI/MRI OUTPUT REGISTER.
*        14. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        15. SEND A 6 CONTROL FUNCTION - STEP MEMORY RING.
*        16. READ THE MEMORY RING REGISTER LOOP AND VERIFY THE
*            PACKET DATA IN THE MMI/MRI INPUT REGISTER. 
*        17. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        18  SEND A 6 CONTROL FUNCTION - STEP MEMORY RING.
*        19. READ THE MEMORY RING REGISTER LOOP AND VERIFY THE
*            PACKET DATA IN THE MMI/MRI OUTPUT REGISTER.
*        20. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        21. SEND A 6 CONTROL FUNCTION - STEP MEMORY RING.
*        22. READ THE MEMORY RING REGISTER LOOP AND VERIFY THE
*            PACKET DATA IN THE PMI/MRI INPUT REGISTER. 
*        23. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        24. REPEAT STEPS 3 - 23, 256 TIMES.
*        24. IF RM IS SELECTED, GO TO STEP 1. 
*        25. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        26. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA11 - MMI/MRI I/O REG TEST (320) 
*            DMA11.ABORT. P=*OCT, ECD=*OCT, ERC=*DEC, LC=*DEC 
*            // MODULE ERROR LIMIT - DMA11
*            DMA11 ERROR(S) IN MODULE = *DEC
*            DMA11 LC=*DEC, ERC=*DEC
*            DMA11 - MMI/MRI I/O REG TEST 
*            DMA11 NO RESPONSE ON CONNECT FCTN
*            DMA11 RESPONSE ERROR ON CONNECT FCTN 
*            DMA11 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA11 MR REG LOOP DATA ERROR - STEP *H      HEX
*            DMA11             A *H*H                    HEX
*            DMA11                   *H*H *H*H *H*H *H*H HEX
*            DMA11 PMI/MRI IN  E *H*H                    HEX
*            DMA11                   *H*H *H*H *H*H *H*H HEX
*            DMA11 MMI/MRI IN  E *H*H                    HEX
*            DMA11                   *H*H *H*H *H*H *H*H HEX
*            DMA11 MMI/MRI OUT E *H*H                    HEX
*            DMA11                   *H*H *H*H *H*H *H*H HEX
*            DMA11 PMI/MRI OUT E *H*H                    HEX
*            DMA11                   *H*H *H*H *H*H *H*H HEX
*            DMA11 GSW = *H*HH, DFR FLAG = 0
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B12 - COMMAND ABORT MESSAGE FORMAT NUMBER 
*         B13 - MODULE RUNNING NUMBER.
*         IB(00 - 47) - REG LOOP READ DATA
*         OB(100-147) - EXP REG LOOP DATA - STEP 1
*         OB(150-217) - EXP REG LOOP DATA - STEP 2
*         OB(220-267) - EXP REG LOOP DATA - STEP 3
*         OB(270-337) - EXP REG LOOP DATA - STEP 4
* 
* 
*   2.3   SUBMODULES USED 
* 
*         11A - ERROR MESSAGE PROCESSOR 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA11 - MMI/MRI I/O REG TEST (320)
2  FORMAT DMA11 .ABORT. P=*OCT, ERC=*DEC, LC=*DEC 
3  FORMAT // MODULE ERROR LIMIT - DMA11 
4  FORMAT DMA11 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA11 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=54, ZEROS=56, ONES=60, SREQ=0 
   EQUATE CONN=4, STOPMR=10, BLKNT=14, WRADDL=20, CRES= 40
   EQUATE WRADDU=24, SENDMP=30, STEPMR=34, RUNMR=50 
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, C000, 08D1 
   DATA (OB(016),H)FFFF, 03D1, FFFF, 04D1, FFFF, 0CD1, FF00 
   DATA (OB(034),H)06D1, E000, 02D0, 4000, 02D0, 4840, 06D1 
   DATA (OB(052),H)8000, 4100, 0000, FFFF 
   DATA (OB(100),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(116),H)0000, 0000, 0000, 6000, 0000, 0000, 0000 
   DATA (OB(134),H)0000, 65FF, 00FF, FFD1, FFFF, FFFF, 0000 
   DATA (OB(152),H)0000, 0000, 0000, 0000, 05FF, 00FF, FFD1 
   DATA (OB(170),H)FFFF, FFFF, 6000, 0000, 0000, 0000, 0000 
   DATA (OB(206),H)6000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(224),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(242),H)0000, 65FF, 00FF, FFD1, FFFF, FFFF, 6000 
   DATA (OB(260),H)0000, 0000, 0000, 0000, 05FF, 00FF, FFD1 
   DATA (OB(276),H)FFFF, FFFF, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(314),H)6000, 0000, 0000, 0000, 0000, 6000, 0000 
   DATA (OB(332),H)0000, 0000, 0000 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *TEST NAME MSG 
   B13 = 11D                       *MODULE NUMBER 
* 
30 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST----------------------------------
* 
32 MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   RES                             *RESERVE CHANNEL 
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)ERROR 01/111D GOTO 40 
   GOSUB 56                        *READ CF/DF
   ERROR 02/112D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = STOPMR                     *STOP MEM RING 
   GOSUB 52 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = STEPMR                     *STEP MEM RING 
   GOSUB 52 
   GOSUB 60                        *RD MR REG LOOP
   ERROR 03/113D
   COMPARE OB(100) TO IB(0) FOR WC, ABT 40
   BA = STEPMR                     *SEND STEP MR
   GOSUB 52 
   GOSUB 60                        *RD MR REG LOOP
   ERROR 04/114D
   COMPARE OB(150) TO IB(0) FOR WC, ABT 40
   BA = STEPMR                     *STEP MEM RING 
   GOSUB 52 
   GOSUB 60                        *RD MR REG LOOP
   ERROR 05/115D
   COMPARE OB(220) TO IB(0) FOR WC, ABT 40
   BA = STEPMR                     *SEND STEP MR
   GOSUB 52 
   GOSUB 60                        *RD MR REG LOOP
   ERROR 06/116D
   COMPARE OB(270) TO IB(0) FOR WC, ABT 40
* 
34 GOTO 32 WHILE(B10+1.LE.377)
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 30       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 34       *SL
   CALL 11A                        *CALL MSG PROCESSOR
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
60 B0 = 46                         *READ REG LOOP 
   FUNC 215 
62 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 62 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0)
   WC = 50
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 34
* 
77 END 20 
COMPILE   *DMA11 - MMI/MRI I/O REG TEST (320) 
   MODULE DMA11A,6000(200),LOCK 
*         DMA11A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA11 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA11 
* 
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA11 - MMI/MRI I/O REG TEST (320)
1  FORMAT DMA11 NO RESPONSE ON CONNECT FCTN 
2  FORMAT DMA11 RESPONSE ERROR ON CONNECT FCTN
3  FORMAT DMA11 EXP=*H*H*H*HH, ACT=*H*H*H*HH
4  FORMAT DMA11 MR REG LOOP DATA ERROR - STEP *H   HEX
5  FORMAT DMA11             A *H*H                    HEX 
6  FORMAT DMA11                   *H*H *H*H *H*H *H*H HEX 
7  FORMAT DMA11 PMI/MRI IN  E *H*H                    HEX 
10 FORMAT DMA11                   *H*H *H*H *H*H *H*H HEX 
13 FORMAT DMA11 MMI/MRI IN  E *H*H                    HEX 
14 FORMAT DMA11                   *H*H *H*H *H*H *H*H HEX 
15 FORMAT DMA11 MMI/MRI OUT E *H*H                    HEX 
16 FORMAT DMA11                   *H*H *H*H *H*H *H*H HEX 
17 FORMAT DMA11 PMI/MRI OUT E *H*H                    HEX 
20 FORMAT DMA11                   *H*H *H*H *H*H *H*H HEX 
27 FORMAT DMA11 GSW = *H*HH, DFR FLAG = 0 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 B0 = EM - 2
   IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
   IF(EM.EQ.5)GOTO 35 
   IF(EM.EQ.6)GOTO 36 
* 
31 MSG 1 TO LINE 2
   MSG 27, 2 WORDS FROM SB(0) TO LINE 3 
   GOTO 75
* 
32 MSG 2 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 3, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 75
* 
33 MSG 4(B0) TO LINE 2
   MSG 07, 2 WORDS FROM OB(100) TO LINE 22
   MSG 10, 8 WORDS FROM OB(102) TO LINE 23
   MSG 13, 2 WORDS FROM OB(112) TO LINE 10
   MSG 14, 8 WORDS FROM OB(114) TO LINE 11
   MSG 15, 2 WORDS FROM OB(124) TO LINE 15
   MSG 16, 8 WORDS FROM OB(126) TO LINE 16
   MSG 17, 2 WORDS FROM OB(136) TO LINE 03
   MSG 20, 8 WORDS FROM OB(140) TO LINE 04
   GOTO 41
* 
34 MSG 4(B0) TO LINE 2
   MSG 07, 2 WORDS FROM OB(150) TO LINE 22
   MSG 10, 8 WORDS FROM OB(152) TO LINE 23
   MSG 13, 2 WORDS FROM OB(162) TO LINE 10
   MSG 14, 8 WORDS FROM OB(164) TO LINE 11
   MSG 15, 2 WORDS FROM OB(174) TO LINE 15
   MSG 16, 8 WORDS FROM OB(176) TO LINE 16
   MSG 17, 2 WORDS FROM OB(206) TO LINE 03
   MSG 20, 8 WORDS FROM OB(210) TO LINE 04
   GOTO 41
* 
35 MSG 4(B0) TO LINE 2
   MSG 07, 2 WORDS FROM OB(220) TO LINE 22
   MSG 10, 8 WORDS FROM OB(222) TO LINE 23
   MSG 13, 2 WORDS FROM OB(232) TO LINE 10
   MSG 14, 8 WORDS FROM OB(234) TO LINE 11
   MSG 15, 2 WORDS FROM OB(244) TO LINE 15
   MSG 16, 8 WORDS FROM OB(246) TO LINE 16
   MSG 17, 2 WORDS FROM OB(256) TO LINE 03
   MSG 20, 8 WORDS FROM OB(260) TO LINE 04
   GOTO 41
* 
36 MSG 4(B0) TO LINE 2
   MSG 07, 2 WORDS FROM OB(270) TO LINE 22
   MSG 10, 8 WORDS FROM OB(272) TO LINE 23
   MSG 13, 2 WORDS FROM OB(302) TO LINE 10
   MSG 14, 8 WORDS FROM OB(304) TO LINE 11
   MSG 15, 2 WORDS FROM OB(314) TO LINE 15
   MSG 16, 8 WORDS FROM OB(316) TO LINE 16
   MSG 17, 2 WORDS FROM OB(326) TO LINE 03
   MSG 20, 8 WORDS FROM OB(330) TO LINE 04
* 
41 MSG 05, 2 WORDS FROM IB(00) TO LINE 24 
   MSG 06, 8 WORDS FROM IB(02) TO LINE 25 
   MSG 05, 2 WORDS FROM IB(12) TO LINE 12 
   MSG 06, 8 WORDS FROM IB(14) TO LINE 13 
   MSG 05, 2 WORDS FROM IB(24) TO LINE 17 
   MSG 06, 8 WORDS FROM IB(26) TO LINE 20 
   MSG 05, 2 WORDS FROM IB(36) TO LINE 05 
   MSG 06, 8 WORDS FROM IB(40) TO LINE 06 
* 
75 MSG 0 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA11A - MSG PROCESSOR 
   MODULE DMA13,6000(200),LOCK
***       DMA13 - MMI/MRI HPM 2 READ TEST (320) 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE ABILITY OF THE MMI/MRI TO READ DATA FROM
*         HPM AND ASSEMBLE A READ DATA PACKET ON THE MEMORY 
*         RING.  ALSO TESTS  THE DMAU PORT OF THE MMI AND THE 
*         LOST PACKET DETECT LOGIC OF THE PMI/MRI.
*         DATA IS VERIFIED THROUGH THE USE OF THE STEP MEMORY 
*         RING FUNCTION AND THE MEMORY RING REGISTER LOOP.
*         AFTER THE HPP HAS BEEN DOWNLOADED AND HPM INITIALIZED 
*         WITH DATA, THIS MODULE CAUSES THE MMI/MRI TO READ 
*         DATA FROM HPM AND PUT DATA PACKETS ON THE MEMORY RING.
*         BECAUSE THESE PACKETS ARE DESTINED FOR A NON-EXISTANT 
*         WRITER, THEY STAY ON THE RING UNTIL THEY ARE PULLED 
*         OFF BY THE PMI/MRI ON THEIR SECOND TIME AROUND THE
*         RING.  CONSEQUENTLY, THE ALGORITHM FOR STEPPING THE 
*         RING AND READING THE REGISTER LOOP CONSISTS OF A
*         MAJOR CYCLE OF STEPPING AND READING THE REGISTER LOOP 
*         4 TIMES WHILE VALID DATA IS IN THE MMI/MRI OUTPUT 
*         REGISTER, AND THEN STEPPING THE RING 4 MORE TIMES TO
*         ALLOW THE PACKETS TO MAKE IT BACK TO THE PMI/MRI INPUT
*         REGISTER AND PULLED OFF AS LOST PACKETS.  THIS MAJOR
*         CYCLE THEN REPEATS 256 TIMES, EACH CYCLE PERFORMING 
*         4 HPM READS FOR A TOTAL OF 1024 HPM READS.
* 
*         LOCATIONS FC00 THROUGH FFFF HEX OF HPM ARE READ 
*         USING A BLOCK COUNT OF 400 HEX.  THE DATA IN EACH 
*         HPM LOCATION IS AN INCRIMENTAL PATTERN ON 16-BIT
*         BOUNDARIES.  THE PATTERN GOES FROM FC00FC00FC00FC00 
*         TO FFFFFFFFFFFFFFFF.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. CLEAR THE CRP AND DMAU 
*         4. RESET ALL HPP'S
*         5  DOWNLOAD AND RUN HPP PROGRAM TO WRITE SEQUENTIAL DATA
*            INTO HPM.
*         6. DISPLAY THE LOOP MSG 
*         7. CLEAR THE CRP AND DMAU 
*         8. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         9. SEND A 6 CONTROL FUNCTION - STOP MEMORY RING.
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        12. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14  STEP THE MEMORY RING 4 TIMES TO ALLOW THE READ 
*            PACKET TO REACH THE MMI/MRI. 
*        15. STEP THE MEMORY RING 1 TIME. 
*        16. READ THE MEMORY RING REGISTER LOOP AND VERIFY THE
*            PACKET DATA IN THE MMI/MRI OUTPUT REGISTER.
*        17. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 6. 
*        18. REPEAT STEPS 15 - 17 FOUR TIMES. 
*        19. STEP THE MEMORY RING FOUR TIMES. 
*        20. REPEAT STEPS 15 - 19 FOR THE BLOCK COUNT.
*        21. STEP THE MEMORY RING 1 TIME
*        22. READ THE MEMORY RING REG LOOP AND VERIFY AN END
*            OF TRANSFER. 
*        23. IF RM IS SELECTED, GO TO STEP 6. 
*        24. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        25. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA13 - MMI/MRI/HPM READ TEST (320)
*            DMA13 -  EXECUTING 
*            // MODULE ERROR LIMIT - DMA13
*            DMA13 ERROR(S) IN MODULE = *DEC
*            DMA13 LC=*DEC, ERC=*DEC
*            DMA13 - MMI/MRI HPM READ TEST
*            DMA13 NO RESPONSE ON CONNECT FCTN
*            DMA13 RESPONSE ERROR ON CONNECT FCTN 
*            DMA13 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA13 HPM READ DATA ERROR
*            DMA13 MMI/MRI OUT E *H*H                    HEX
*            DMA13                   *H*H *H*H *H*H *H*H HEX
*            DMA13 PMI/MRI IN  A *H*H                    HEX
*            DMA13                   *H*H *H*H *H*H *H*H HEX
*            DMA13 MMI/MRI IN  A *H*H                    HEX
*            DMA13                   *H*H *H*H *H*H *H*H HEX
*            DMA13 MMI/MRI OUT A *H*H                    HEX
*            DMA13                   *H*H *H*H *H*H *H*H HEX
*            DMA13 PMI/MRI OUT A *H*H                    HEX
*            DMA13                   *H*H *H*H *H*H *H*H HEX
*            DMA13 END TRANSFER DATA ERROR
*            DMA13     STEP = *D
*            DMA13 LOOP CNT = *DEC/1025 
*            DMA13 EXP               XXXX XXXX XXXX XXXX HEX
*            DMA13 GSW = *H*HH, DFR FLAG = 0
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         NONE
* 
* 
*   2.3   MODULES USED
* 
*         80A - HPM DOWNLOAD, PART 1, EXITS TO 80B
* 
*         80B - HPM DOWNLOAD, PART 2, EXITS TO 80C
* 
*         80C - HPM DOWNLOAD, PART 3, RETURNS TO DMA13
* 
*         131 - MAIN TEST LOOP
* 
*         13A - MSG PROCESSOR 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE CLRCRP=00, ZEROS=02, ONES=04
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)4100, 0000, FFFF 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA13 - MMI/MRI HPM READ TEST (320) 
* 
* ------------------START---------------------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE 
* 
   RES
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   CALL 80A                        *DOWNLOAD PATTERN
* 
   EXIT TO 131                     *EXIT TO MAIN TEST 
   END 30 
COMPILE   *DMA13 - MMI/MRI HPM READ TEST (320)
* 
   MODULE DMA131,6000(200),LOCK 
*         DMA131 - MAIN TEST
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA13 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         HPM LOADED
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B9  - MODULO 8 COUNTER
*         B10 - READ DATA BLOCK COUNTER 
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         IB(000-003) - SRI RESPONSE
*         IB(000-047) - MR REG LOOP 
*         OB(100-111) - EXPECTED DATA 
* 
*   2.3   MODULES USED
* 
*         13A - MSG PROCESSOR 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA13 -    EXECUTING
3  FORMAT // MODULE ERROR LIMIT - DMA13 
4  FORMAT DMA13 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA13 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=54, ZEROS=56, ONES=60, SREQ=0 
   EQUATE CONN=4, STOPMR=10, BLKNT=14, RDADDL=20, CRES= 40
   EQUATE RDADDU=24, SENDMP=30, STEPMR=34, RUNMR=50 
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, C000, 08D1 
   DATA (OB(016),H)0400, 01D1, FC00, 02D1, 0000, 0CD1, 8000 
   DATA (OB(034),H)06D1, E000, 02D0, 4000, 02D0, 4840, 06D1 
   DATA (OB(052),H)8000, 4100, 0000, FFFF 
   DATA (OB(100),H)2100, 0000, 0001, 0002, 0003, 62D1 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *RUNNING MSG 
   B13 = 13D                       *TEST NUMBER 
   B11 = 0                         *CLEAR ERROR CNTR
* 
22 B10 = 1                         *CLEAR LOOP CNTR 
* 
* ------------------TEST----------------------------------
* 
30 RES
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/131D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/132D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = STOPMR                     *STOP MEM RING 
   GOSUB 52 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = RDADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = STEPMR                     *STEP MEM RING 
   GOSUB 52                        *STEP
   GOSUB 52                        *STEP
   GOSUB 52                        *STEP
   B5 = 0                          *PACKET COUNTER
   OB(100) = 41                    *REQ CNTR NOT EMPTY
31 B9 = 1                          *LOOP COUNTER
32 GOSUB 52                        *STEP
* 
   MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   GOSUB 60                        *RD MR REG LOOP
   GOSUB 50                        *INIT EXP DATA 
   ERROR 03/133D
   WC = 12                         *CHK HPM DATA
* 
   COMPARE OB(100) TO IB(24) FOR WC , ABT 40
* 
   GOTO 33 WHILE (B10+1.LE.1767)   *WHILE REQ CNTR NOT EMPTY
   OB(100) = 141                   *REQ CNTR EMPTY
33 GOTO 32 WHILE(B9+1.LE.4)        *STEP AND READ 4 TIMES 
* 
34 GOSUB 52 
   GOTO 34 WHILE(B9+1.LE.8)        *STEP 4 TIMES
* 
   GOTO 31 WHILE(B10+0.LE.2000)    *DO 1024 READS 
   GOSUB 52                        *STEP 1 TIME 
   GOSUB 60                        *RD MR REG LOOP
   ERROR 04/134D
   WC = 2                          *CHK FOR END OF XFER 
* 
   COMPARE OB(112) TO IB(24) FOR WC , ABT 40
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 22       *SL
   CALL 13A                        *GOTO MSG PROCESSOR
   GOTO 22
* 
* -------------------SUBROUTINES----------------------
* 
50 OB(102) = B5.RS.10.OR.0374      *INIT EXP DATA 
   OB(103) = B5.AND.0377
   OB(104) = B5.RS.10.OR.0374 
   OB(105) = B5.AND.0377
   OB(106) = B5.RS.10.OR.0374 
   OB(107) = B5.AND.0377
   OB(110) = B5.RS.10.OR.0374 
   OB(111) = B5.AND.0377
   B5 = B5 + 1                     *INC PACKET COUNT
   RETURN 
* 
52 RES                             *RES CHANNEL 
   WC = 4 
   FOUT 273                        *WR RCR/RDR
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
60 RES                             *RD MR REG LOOP
   B0 = 46
   FUNC 215 
62 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 62 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0)
   RETURN 
* 
77 END 20 
COMPILE   *DMA131 - MAIN TEST 
   MODULE DMA13A,6000(200),LOCK 
*         DMA13A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA13 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         THE EM REGISTER CONTAINS THE ERROR NUMBER 
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
* 
*         B9      = STEP NUMBER 
*         B10     = LOOP COUNT
*         SB(0-1) = CRP GSW 
*         IB(0-3) = SRI RESPONSE   OR 
*         IB(0-47)= MR REG LOOP DATA
* 
*   2.3   SUBMODULES USED 
* 
*         NONE
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA13 - MMI/MRI HPM READ TEST (320) 
1  FORMAT DMA13 NO RESPONSE ON CONNECT FCTN 
2  FORMAT DMA13 RESPONSE ERROR ON CONNECT FCTN
3  FORMAT DMA13 EXP=*H*H*H*HH, ACT=*H*H*H*HH
4  FORMAT DMA13 HPM READ DATA ERROR 
5  FORMAT DMA13 MMI/MRI OUT E *H*H                    HEX 
6  FORMAT DMA13                   *H*H *H*H *H*H *H*H HEX 
7  FORMAT DMA13 PMI/MRI IN  A *H*H                    HEX 
10 FORMAT DMA13                   *H*H *H*H *H*H *H*H HEX 
13 FORMAT DMA13 MMI/MRI IN  A *H*H                    HEX 
14 FORMAT DMA13                   *H*H *H*H *H*H *H*H HEX 
15 FORMAT DMA13 MMI/MRI OUT A *H*H                    HEX 
16 FORMAT DMA13                   *H*H *H*H *H*H *H*H HEX 
17 FORMAT DMA13 PMI/MRI OUT A *H*H                    HEX 
20 FORMAT DMA13                   *H*H *H*H *H*H *H*H HEX 
21 FORMAT DMA13 END TRANSFER DATA ERROR 
22 FORMAT DMA13     STEP = *D 
23 FORMAT DMA13 LOOP CNT = *DEC/1025
24 FORMAT DMA13 EXP               XXXX XXXX XXXX XXXX HEX 
27 FORMAT DMA13 GSW = *H*HH, DFR FLAG = 0 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
* 
31 MSG 1 TO LINE 2
   MSG 27, 2 WORDS FROM SB(0) TO LINE 3 
   GOTO 75
* 
32 MSG 2 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 3, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 75
* 
33 MSG 4 TO LINE 2
   MSG 05, 2 WORDS FROM OB(100) TO LINE 4 
   MSG 06, 8 WORDS FROM OB(102) TO LINE 5 
   GOTO 41
* 
34 MSG 21 TO LINE 2 
   MSG 05, 2 WORDS FROM OB(112) TO LINE 4 
   MSG 24 TO LINE 5 
* 
41 MSG 15, 2 WORDS FROM IB(24) TO LINE 10 
   MSG 16, 8 WORDS FROM IB(26) TO LINE 11 
   MSG 07, 2 WORDS FROM IB(00) TO LINE 13 
   MSG 10, 8 WORDS FROM IB(02) TO LINE 14 
   MSG 17, 2 WORDS FROM IB(36) TO LINE 16 
   MSG 20, 8 WORDS FROM IB(40) TO LINE 17 
   MSG 13, 2 WORDS FROM IB(12) TO LINE 21 
   MSG 14, 8 WORDS FROM IB(14) TO LINE 22 
   MSG 22(B9) TO LINE 24
   MSG 23(B10) TO LINE 25 
* 
75 MSG 0 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA13A - MSG PROCESSOR 
   MODULE DMA15,6000(200),LOCK
***       DMA15 - RAFL REGISTER LOOP  TEST
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TO VERIFY THAT THE RAFL REGISTER LOOP CAN BE
*         WRITTEN AND READ. 
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE REPEAT CONDITION MSG IF SL IS SELECTED.
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP
*         6. WRITE 160 BITS TO THE RAFL RL. 
*         7. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 5
*         8. READ 160 BITS FROM THE RAFL RL AND VERIFY THE DATA.
*         9. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 5
*        10. REPEAT STEPS 3 - 9  100 TIMES. 
*        11. IF RM IS SELECTED, GO TO STEP 1
*        12. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        13. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA15 - RAFL REG LOOP  TEST
*            DMA15 .ABORT. P=*OCT, ECD=*OCT, ERC=*DEC, LC=*DEC
*            // MODULE ERROR LIMIT - DMA15
*            DMA15 ERROR(S) IN MODULE = *DEC
*            DMA15 DATA ERR, EXP=*H*HH, ACT=*H*HH 
*            DMA15 LC=*DEC, ERC=*DEC
*            DMA15 -----------LP/RAFL RL------------- 
*            DMA15 RAFL     E   00FF55AA010204081020 HEX
*            DMA15          A   *H*H                 HEX
*            DMA15          A       *H*H*H*H*H*H*H*H HEX
*            DMA15 MR LP    E   40800123456789ABCDEF HEX
*            DMA15          A   *H*H                 HEX
*            DMA15          A       *H*H*H*H*H*H*H*H HEX
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B12 - COMMAND ABORT MESSAGE FORMAT NUMBER 
*         B13 - MODULE RUNNING NUMBER.
*         OB(00-23) - REG LOOP WRITE DATA 
*         IB(00-23) - REG LOOP READ DATA
* 
* 
*   2.3   SUBMODULES USED 
* 
*         97X - ABORT MESSAGE PROCESSOR 
* 
* --------------------MESSAGES----------------------------------- 
* 
1  FORMAT DMA15 - RAFL REG LOOP  TEST 
2  FORMAT DMA15 .ABORT. P=*OCT, ERC=*DEC, LC=*DEC 
3  FORMAT // MODULE ERROR LIMIT - DMA15 
4  FORMAT DMA15 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA15 LC=*DEC, ERC=*DEC 
6  FORMAT DMA15 DATA ERR, EXP=*H*HH, ACT=*H*HH
7  FORMAT DMA15 RAFL     E   00FF55AA010204081020 HEX 
10 FORMAT DMA15          A   *H*H                 HEX 
11 FORMAT DMA15          A       *H*H*H*H*H*H*H*H HEX 
12 FORMAT DMA15 MR LP    E   40800123456789ABCDEF HEX 
13 FORMAT DMA15          A   *H*H                 HEX 
14 FORMAT DMA15          A       *H*H*H*H*H*H*H*H HEX 
15 FORMAT DMA15 -----------RAFL/LP RL-------------
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM = 20, CLRCRP = 50, ZEROS = 52, ONES = 54 
* 
* -------------------DATA---------------------------------- 
* 
   DATA (OB(50),H)4100, 0000, FFFF
   DATA (OB(0),H) 00FF, 55AA, 0102, 0408, 1020, 4080
   DATA (OB(14),H)0123, 4567, 89AB, CDEF
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *TEST NAME MSG 
   B13 = 15D                       *MODULE NUMBER 
* 
22 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST----------------------------------
* 
30 MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   B12 = 1                         *RES CHAN
   RES , ABT 70 
   B12 = 2                         *EXT RESET HPPS
   FUNC 251 , ABT 70
   B12 = 3
   OUT 2 WORDS FROM OB(ONES) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
   B12 = 2
   FUNC 250 , ABT 70               *CLR CRP/DMAU
   B12 = 3
   OUT 2 WORDS FROM OB(CLRCRP) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
* 
31 RES , ABT 70 
   B0 = 22                         *WR REG LOOP 
   B12 = 2
   FUNC 256 , ABT 70
   B12 = 3
32 OUT CHAIN 2 WORDS FROM OB(B0) , ABT 70 
   GOTO 32 WHILE(B0-2.GE.2) 
   OUT 2 WORDS FROM OB(0) , ABT 70
* 
   B0 = 22
   B12 = 2                         *RD REG LOOP 
   FUNC 216 , ABT 70
   B12 = 4
34 IN CHAIN 2 WORDS TO IB(B0) , ABT 70
   GOTO 34 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0) , ABT 70 
   WC = 24                         *COMPARE EXP TO ACT
* 
   COMPARE OB(0) TO IB(0) FOR WC, ABT 42
* 
35 GOTO 31 WHILE(B10+1.LE.100D)    *DO 100 TIMES
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* --------------DATA COMPARE ERROR--------------------- 
* 
42 B11 = B11+1
   IF(ES.AND.SL.EQ.0)GOTO 46       *NOT SL
   COPY OB(WC) TO OB(40) FOR 2
   COPY IB(WC) TO OB(42) FOR 2
   MSG 6, 4 WORDS FROM OB(40) TO DISPLAY
   GOTO 35
* 
* ------------------DISPLAY PROCESSOR-----------------
* 
46 MSG 1 TO LINE 1
   MSG 7 TO LINE 2
   MSG 15 TO LINE 4 
   MSG 10, 2D WORDS FROM IB(0) TO LINE 5
   MSG 11, 8D WORDS FROM IB(2)TO LINE 6 
   MSG 12 TO LINE 7 
   MSG 13, 2D WORDS FROM IB(12)TO LINE 10 
   MSG 14, 8D WORDS FROM IB(14)TO LINE 11 
   PICTURE
   HALT 
   BLANK
   GOTO 75
* 
* --------------ABORT PROCESSOR------------------------ 
* 
70 B11 = B11+1                      *BUMP ERROR CNTR
   ENDSUB 
   IF(ES.AND.SL.NE.0) GOTO 35     *SCOPE LOOP 
* 
74 MSG 1 TO LINE 1                *ABORT MSG TO TERM
   MSG 2(EA,B11,B10)TO LINE 2 
   CALL 97X 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 35
* 
77 END 20 
COMPILE   *DMA15 - RAFL REGISTER LOOP  TEST 
   MODULE DMA17,6000(200),LOCK
***       DMA17 - CMR REG LOOP  TEST (544)
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TO VERIFY THAT THE CMR REGISTER LOOP CAN BE 
*         WRITTEN AND READ.  THIS REGISTER LOOP CONTAINS THE
*         I/O REGISTERS FOR THE PMI AND CMI ON THE CENTRAL
*         MEMORY RING (544 BITS). 
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE REPEAT CONDITION MSG IF SL IS SELECTED.
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP/DMAU 
*         6. WRITE 544 BITS TO THE CMR RL.
*         7. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 5
*         8. READ 544 BITS FROM THE CMR RL AND VERIFY THE DATA. 
*         9. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 5
*        10. REPEAT STEPS 3 - 9  100 TIMES. 
*        11. IF RM IS SELECTED, GO TO STEP 1
*        12. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        13. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA17 - CMR REG LOOP  TEST (544) 
*            DMA17 .ABORT. P=*OCT, ECD=*OCT, ERC=*DEC, LC=*DEC
*            // MODULE ERROR LIMIT - DMA17
*            DMA17 ERROR(S) IN MODULE = *DEC
*            DMA17 LC=*DEC, ERC=*DEC
*            DMA17 ------------CMR RL-------------- 
*            DMA17 EXP (000-063) 0001020304050607 
*            DMA17 ACT           *H*H*H*H*H*H*H*H    HEX
*            DMA17 EXP (064-127) 08090A0B0C0D0E0F 
*            DMA17 ACT           *H*H*H*H*H*H*H*H    HEX
*            DMA17 EXP (128-191) 1011121314151617 
*            DMA17 ACT           *H*H*H*H*H*H*H*H    HEX
*            DMA17 EXP (192-255) 18191A1B1C1D1E1F 
*            DMA17 ACT           *H*H*H*H*H*H*H*H    HEX
*            DMA17 EXP (256-319) FFFEFDFCFBFAF9F8 
*            DMA17 ACT           *H*H*H*H*H*H*H*H    HEX
*            DMA17 EXP (320-383) F7F6F5F4F3F2F1F0 
*            DMA17 ACT           *H*H*H*H*H*H*H*H    HEX
*            DMA17 EXP (384-447) EFEEEDECEBEAE9E8 
*            DMA17 ACT           *H*H*H*H*H*H*H*H    HEX
*            DMA17 EXP (448-511) E7E6E5E4E3E2E1E0 
*            DMA17 ACT           *H*H*H*H*H*H*H*H    HEX
*            DMA17 EXP (512-543) 00FFAA55 
*            DMA17 ACT           *H*H*H*H            HEX
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B12 - COMMAND ABORT MESSAGE FORMAT NUMBER 
*         B13 - MODULE RUNNING NUMBER.
*         OB(00-103) - REG LOOP WRITE DATA
*         IB(00-103) - REG LOOP READ DATA 
* 
* 
*   2.3   SUBMODULES USED 
* 
*         97X - ABORT MESSAGE PROCESSOR 
* 
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA17 ----------CMR RL------------- 
1  FORMAT DMA17 - CMR REG LOOP  TEST (544)
2  FORMAT DMA17 .ABORT. P=*OCT, ERC=*DEC, LC=*DEC 
3  FORMAT // MODULE ERROR LIMIT - DMA17 
4  FORMAT DMA17 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA17 LC=*DEC, ERC=*DEC 
6  FORMAT DMA17 EXP (000-063) 0001020304050607
7  FORMAT DMA17 ACT           *H*H*H*H*H*H*H*H    HEX 
10 FORMAT DMA17 EXP (064-127) 08090A0B0C0D0E0F
11 FORMAT DMA17 ACT           *H*H*H*H*H*H*H*H    HEX 
12 FORMAT DMA17 EXP (128-191) 1011121314151617
13 FORMAT DMA17 ACT           *H*H*H*H*H*H*H*H    HEX 
14 FORMAT DMA17 EXP (192-255) 18191A1B1C1D1E1F
15 FORMAT DMA17 ACT           *H*H*H*H*H*H*H*H    HEX 
16 FORMAT DMA17 EXP (256-319) FFFEFDFCFBFAF9F8
17 FORMAT DMA17 ACT           *H*H*H*H*H*H*H*H    HEX 
20 FORMAT DMA17 EXP (320-383) F7F6F5F4F3F2F1F0
21 FORMAT DMA17 ACT           *H*H*H*H*H*H*H*H    HEX 
22 FORMAT DMA17 EXP (384-447) EFEEEDECEBEAE9E8
23 FORMAT DMA17 ACT           *H*H*H*H*H*H*H*H    HEX 
24 FORMAT DMA17 EXP (448-511) E7E6E5E4E3E2E1E0
25 FORMAT DMA17 ACT           *H*H*H*H*H*H*H*H    HEX 
26 FORMAT DMA17 EXP (512-543) 00FFAA55
27 FORMAT DMA17 ACT           *H*H*H*H            HEX 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM = 20, CLRCRP = 50, ZEROS = 52, ONES = 54 
* 
* -------------------DATA---------------------------------- 
* 
   DATA (OB(50),H)4100, 0000, FFFF
   DATA (OB(0),H) 0001, 0203, 0405, 0607, 0809, 0A0B
   DATA (OB(14),H)0C0D, 0E0F, 1011, 1213, 1415, 1617
   DATA (OB(30),H)1819, 1A1B, 1C1D, 1E1F, FFFE, FDFC
   DATA (OB(44),H)FBFA, F9F8, F7F6, F5F4, F3F2, F1F0
   DATA (OB(60),H)EFEE, EDEC, EBEA, E9E8, E7E6, E5E4
   DATA (OB(74),H)E3E2, E1E0, 00FF, AA55
* 
* -----------------INITIALIZATION-------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE  *TEST NAME MSG 
   B13 = 17D                       *MODULE NUMBER 
* 
31 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST----------------------------------
* 
32 MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   B12 = 1                         *RES CHAN
   RES , ABT 70 
   B12 = 2                         *EXT RESET HPPS
   FUNC 251 , ABT 70
   B12 = 3
   OUT 2 WORDS FROM OB(ONES) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
   B12 = 2
   FUNC 250 , ABT 70               *CLR CRP/DMAU
   B12 = 3
   OUT 2 WORDS FROM OB(CLRCRP) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
* 
   B0 = 102                        *WR REG LOOP 
   B12 = 2
   FUNC 254 , ABT 70
   B12 = 3
33 OUT CHAIN 2 WORDS FROM OB(B0) , ABT 70 
   GOTO 33 WHILE(B0-2.GE.2) 
   OUT 2 WORDS FROM OB(0) , ABT 70
* 
   B0 = 102 
   B12 = 2                         *RD REG LOOP 
   FUNC 214 , ABT 70
   B12 = 4
34 IN CHAIN 2 WORDS TO IB(B0) , ABT 70
   GOTO 34 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0) , ABT 70 
   WC = 104                        *COMPARE EXP AND ACT 
* 
   COMPARE OB(0) TO IB(0) FOR WC, ABT 42
* 
35 GOTO 32 WHILE(B10+1.LE.100D)    *DO 100 TIMES
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 31       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* --------------DATA COMPARE ERROR--------------------- 
* 
42 B11 = B11+1
   IF(ES.AND.SL.EQ.0)GOTO 46       *NOT SL
   GOTO 35
* 
* ------------------DISPLAY PROCESSOR-----------------
* 
46 MSG 1 TO LINE 1
   MSG 0 TO LINE 3
   MSG 6 TO LINE 4
   MSG 07, 8D WORDS FROM IB(0) TO LINE 5
   MSG 10 TO LINE 6 
   MSG 11, 8D WORDS FROM IB(10)TO LINE 7
   MSG 12 TO LINE 10
   MSG 13, 8D WORDS FROM IB(20)TO LINE 11 
   MSG 14 TO LINE 12
   MSG 15, 8D WORDS FROM IB(30)TO LINE 13 
   MSG 16 TO LINE 14
   MSG 17, 8D WORDS FROM IB(40)TO LINE 15 
   MSG 20 TO LINE 16
   MSG 21, 8D WORDS FROM IB(50)TO LINE 17 
   MSG 22 TO LINE 20
   MSG 23, 8D WORDS FROM IB(60)TO LINE 21 
   MSG 24 TO LINE 22
   MSG 25, 8D WORDS FROM IB(70)TO LINE 23 
   MSG 26 TO LINE 24
   MSG 27, 4D WORDS FROM IB(70)TO LINE 25 
   PICTURE
   HALT 
   BLANK
   GOTO 75
* 
* --------------ABORT PROCESSOR------------------------ 
* 
70 B11 = B11+1                     *BUMP ERROR CNTR 
   ENDSUB 
   IF(ES.AND.SL.NE.0) GOTO 35      *SCOPE LOOP
* 
74 MSG 1 TO LINE 1                 *ABORT MSG TO TERM 
   MSG 2(EA,B11,B10)TO LINE 2 
   CALL 97X 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 35
* 
77 END 30 
COMPILE   *DMA17 - CMR REG LOOP TEST (544)
   MODULE DMA19,6000(200),LOCK
***       DMA19 - MEMORY RING LOST PACKET TEST
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE ABILITY OF THE PMI TO DETECT AND SAVE 
*         LOST PACKETS ON THE MEMORY RING.  ALSO TESTED IS
*         THE MEMORY RING LOST PACKET BIT IS THE SRI STATUS 
*         WORD.  THE LOST PACKET DATA IS READ VIA PMI RL1 
*         AND VERIFIED. 
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MESSAGE 
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6. SEND A CONNECT FUNCTION, VERIFY THE RESPONSE, AND
*            THAT THE MEMORY RING LOST PACKET BIT IS RESET. 
*         7. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*         8. SEND A 8 BLOCK COUNT FUNCTION. 
*         9. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        10. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        11. SEND A C SEND MEMORY PACKET FUNCTION.
*        12. SEND AN A STATUS REQUEST 
*        13. READ THE SRI STATUS WORD AND VERIFY A LOST PACKET
*            RESPONSE.
*        14. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        15. READ THE MEMORY RING REGISTER LOOP AND VERIFY THE
*            LOST PACKET DATA. (RL1)
*        16. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        17. REPEAT STEPS 3-16 FOR 5 DIFFERENT DATA PATTERNS. 
*        18. IF RM IS SELECTED, GO TO STEP 3. 
*        19. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        20. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA19 - MEM RING LOST PACKET TEST
*            DMA19 .ABORT. P=*OCT, ECD=*OCT, ERC=*DEC, LC=*DEC
*            // MODULE ERROR LIMIT - DMA19
*            DMA19 ERROR(S) IN MODULE = *DEC
*            DMA19 LC=*DEC, ERC=*DEC
*            DMA19 - MEM RING LOST PACKET TEST
*            DMA19 NO RESPONSE ON CONNECT FCTN
*            DMA19 PACKET SENT = *H*H*H*HH
*            DMA19 RESPONSE ERROR ON CONNECT FCTN 
*            DMA19 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA19 LOST PACKET DATA ERROR 
*            DMA19 NO LOST PACKET DETECTED
*            DMA19 MR LP      E *H*H                 HEX
*            DMA19            E     *H*H*H*H*H*H*H*H HEX
*            DMA19 MR LP      A *H*H                 HEX
*            DMA19            A     *H*H*H*H*H*H*H*H HEX
*            DMA19 NO RESPONSE ON STATUS REQUEST
*            DMA19 -------------RAFL/LP RL--------------
*            DMA19 RAFL       A *H*H
*            DMA19 RAFL       A     *H*H*H*H*H*H*H*H HEX
*            DMA19 LP         A *H*H
*            DMA19 LP         A     *H*H*H*H*H*H*H*H HEX
*            DMA19 PACKET NR *D/5 
*            DMA19 GSW = *H*HH, DFR FLAG = 0
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B9  - OUTPUT BUFFER DATA POINTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B12 - COMMAND ABORT MESSAGE FORMAT NUMBER 
*         B13 - MODULE RUNNING NUMBER.
*         OB(112-123) - EXPECTED LOST PACKET DATA 
*         IB(212-223) - REFORMATTED ACTUAL LOST PACKET DATA 
* 
* 
*   2.3   MODULES USED
* 
*         97X - ABORT MESSAGE PROCESSOR 
* 
*         19A - ERROR MESSAGE PROCESSOR 
* 
*         19B - LOST PACKET REFORMATTER 1 
* 
*         19C - LOST PACKET REFORMATTER 2 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA19 - MEM RING LOST PACKET TEST 
2  FORMAT DMA19 .ABORT. P=*OCT, ERC=*DEC, LC=*DEC 
3  FORMAT // MODULE ERROR LIMIT - DMA19 
4  FORMAT DMA19 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA19 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM = 20, CLRCRP = 54, ZEROS = 56, ONES = 60 
   EQUATE SREQ = 0, CONN = 4, STOPMR = 10, BLKNT = 14 
   EQUATE WRADDL = 20, WRADDU = 24, SENDMP = 30 
   EQUATE STEPMR = 34, CRES = 40, RUNMR = 50, LPRES = 44
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, C000, 08D1 
   DATA (OB(016),H)0000, 03D1, 0000, 04D1, 0000, 0CD1, F700 
   DATA (OB(034),H)06D1, E000, 02D0, 4000, 02D0, 4880, 06D1 
   DATA (OB(052),H)8000, 4100, 0000, FFFF, 5555, AAAA, 1234 
   DATA (OB(112),H)5F70, 0000, 00D1, 0000, 0000 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *TEST NAME MSG 
   B13 = 19D                       *MODULE NUMBER 
* 
30 B10 = 1                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
   B9 = 56                         *DATA POINTER
* 
* ------------------TEST----------------------------------
* 
32 MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   B12 = 1                         *RES CHAN
   RES , ABT 70 
   B12 = 2                         *EXT RESET HPPS
   FUNC 251 , ABT 70
   B12 = 3
   OUT 2 WORDS FROM OB(ONES) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
   B12 = 2
   FUNC 250 , ABT 70               *CLR CRP/DMAU
   B12 = 3
   OUT 2 WORDS FROM OB(CLRCRP) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
* 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/191D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/192D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   DUP OB(B9) TO OB(16) FOR 2 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   DUP OB(B9) TO OB(22) FOR 2 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   DUP OB(B9) TO OB(26) FOR 2 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = SREQ                       *SEND STATUS REQ 
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 03/193D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 04/194D
   COMPARE OB(LPRES) TO IB(0) FOR WC, ABT 40
* 
   IF(ES.AND.SL.NE.0)GOTO 34       *SKIP DATA COMP ON SL
   DUP OB(B9) TO OB(120) FOR 4     *INIT EXPECTED DATA
   DUP OB(B9) TO OB(115) FOR 2
   CALL 19B                        *READ REG LOOP AND 
   ERROR 05/195D                   *REFORMAT LP DATA
   WC = 12                         *COMPARE EXP AND ACT 
* 
   COMPARE OB(112) TO IB(212) FOR WC , ABT 40 
* 
34 B9 = B9 + 2                     *INC DATA POINTER
   GOTO 32 WHILE(B10+1.LE.5)       *DO 5 PATTERNS 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 30       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.RM.NE.0)GOTO 34       *SCOPE LOOP
   CALL 19A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 B12 = 1
   RES , ABT 70 
   B12 = 6                         *WR RCR/RDR
   WC = 4 
   FOUT 273 , ABT 70
   RETURN 
* 
54 B12 = 1
   RES , ABT 70 
   B12 = 2                         *RD GSW
   FUNC 200 , ABT 70
   B12 = 7
   STATUS 2 WORDS TO SB(0) , ABT 70 
   RETURN 
* 
56 B12 = 1
   RES , ABT 70 
   B12 = 2
   FUNC 226 , ABT 70               *RD CF/DF
   B12 = 4
   IN CHAIN 2 WORDS TO IB(2) , ABT 70 
   IN 2 WORDS TO IB(0) , ABT 70 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
70 B11 = B11+1                     *BUMP ERROR CNTR 
   ENDSUB 
   IF(ES.AND.SL.NE 0) GOTO 34      *SCOPE LOOP
* 
74 MSG 1 TO LINE 1                 *ABORT MSG TO TERM 
   MSG 2(EA,B11,B10)TO LINE 2 
   CALL 97X 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 34
* 
77 END 20 
COMPILE   *DMA19 - MEM RING LOST PACKET TEST
   MODULE DMA19A,6000(200),LOCK 
*         DMA19A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA19 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA19 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA19 - MEM RING LOST PACKET TEST 
2  FORMAT DMA19 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA19 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA19 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA19 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA19 LOST PACKET DATA ERROR
7  FORMAT DMA19 NO LOST PACKET DETECTED 
10 FORMAT DMA19 MR LP      E *H*H                 HEX 
11 FORMAT DMA19            E     *H*H*H*H*H*H*H*H HEX 
12 FORMAT DMA19 MR LP      A *H*H                 HEX 
13 FORMAT DMA19            A     *H*H*H*H*H*H*H*H HEX 
14 FORMAT DMA19 NO RESPONSE ON STATUS REQUEST 
15 FORMAT DMA19 RAFL       A *H*H 
16 FORMAT DMA19 RAFL       A     *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA19 LP         A *H*H 
20 FORMAT DMA19 LP         A     *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA19 PACKET NR *D/5
22 FORMAT DMA19 GSW = *H*HH, DFR FLAG = 0 
23 FORMAT DMA19 ------------RAFL/LP RL--------------- 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40, LPRES = 44 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
   IF(EM.EQ.5)GOTO 35 
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 22, 2 WORDS FROM SB(0) TO LINE 4 
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 14 TO LINE 2 
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 22, 2 WORDS FROM SB(0) TO LINE 4 
   GOTO 40
* 
34 MSG 7 TO LINE 2
   COPY OB(LPRES) TO OB(200) FOR 4
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
35 MSG 23 TO LINE 3 
   MSG 6 TO LINE 4
   MSG 10, 2 WORDS FROM OB(112) TO LINE 5 
   MSG 11, 8 WORDS FROM OB(114) TO LINE 6 
   MSG 12, 2 WORDS FROM IB(212) TO LINE 7 
   MSG 13, 8 WORDS FROM IB(214) TO LINE 10
   MSG 15, 2 WORDS FROM IB(000) TO LINE 11
   MSG 16, 8 WORDS FROM IB(002) TO LINE 12
   MSG 17, 2 WORDS FROM IB(012) TO LINE 13
   MSG 20, 8 WORDS FROM IB(014) TO LINE 14
   MSG 21(B10) TO LINE 15 
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA19A - MSG PROCESSOR 
   MODULE DMA19B,6000(200),LOCK 
*         DMA19B - LOST PACKET DATA REFORMATTER 1 
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         READS THE PMI REGISTER LOOP 1.
*         DISASSEMBLES BIT-SLICED LOST PACKET REGISTER
*         LOOP DATA IN IB LOCATIONS 012 - 023 AND 
*         REASSEMBLES THE LOST PACKET DATA IN IB LOCATIONS
*         212 - 223.
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         IB(012-023) LOST PACKET REGISTER LOOP DATA
*         IB(212-223) REFORMATTED LOST PACKET DATA
*         B0-B7       WORKING REGISTERS 
* 
* 
* ---------------REFORMAT LOST PACKET DATA----------------
* 
30 B0 = 22                          *RD PMI RL1 
   RES
   FUNC 216 
32 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 32 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0)
* 
40 IB(212) = IB(012)
   IB(213) = IB(013)
   B0 = IB(014).AND.200 
   B1 = IB(016).AND.200.RS.1
   B2 = IB(020).AND.200.RS.2
   B3 = IB(022).AND.200.RS.3
   B4 = IB(014).AND.100.RS.3
   B5 = IB(016).AND.100.RS.4
   B6 = IB(020).AND.100.RS.5
   B7 = IB(022).AND.100.RS.6
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(214) = B0.OR.B3.OR.B6 
   B0 = IB(014).AND.040.LS.2
   B1 = IB(016).AND.040.LS.1
   B2 = IB(020).AND.040 
   B3 = IB(022).AND.040.RS.1
   B4 = IB(014).AND.020.RS.1
   B5 = IB(016).AND.020.RS.2
   B6 = IB(020).AND.020.RS.3
   B7 = IB(022).AND.020.RS.4
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(215) = B0.OR.B3.OR.B6 
   B0 = IB(014).AND.010.LS.4
   B1 = IB(016).AND.010.LS.3
   B2 = IB(020).AND.010.LS.2
   B3 = IB(022).AND.010.LS.1
   B4 = IB(014).AND.004.LS.1
   B5 = IB(016).AND.004 
   B6 = IB(020).AND.004.RS.1
   B7 = IB(022).AND.004.RS.2
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(216) = B0.OR.B3.OR.B6 
   B0 = IB(014).AND.002.LS.6
   B1 = IB(016).AND.002.LS.5
   B2 = IB(020).AND.002.LS.4
   B3 = IB(022).AND.002.LS.3
   B4 = IB(014).AND.001.LS.3
   B5 = IB(016).AND.001 LS.2
   B6 = IB(020).AND.001.LS.1
   B7 = IB(022).AND.001 
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(217) = B0.OR.B3.OR.B6 
* 
   EXIT TO 19C
* 
77 END 30 
COMPILE   *DMA19B - LOST PACKET DATA REFORMATTER 1
   MODULE DMA19C,6000(200),LOCK 
*         DMA19C - LOST PACKET DATA REFORMATTER 2 
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN MODULE 19B
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN MODULE 19B
* 
* 
* ---------------REFORMAT LOST PACKET DATA----------------
* 
30 B0 = IB(015).AND.200 
   B1 = IB(017).AND.200.RS.1
   B2 = IB(021).AND.200.RS.2
   B3 = IB(023).AND.200.RS.3
   B4 = IB(015).AND.100.RS.3
   B5 = IB(017).AND.100.RS.4
   B6 = IB(021).AND.100.RS.5
   B7 = IB(023).AND.100.RS.6
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(220) = B0.OR.B3.OR.B6 
   B0 = IB(015).AND.040.LS.2
   B1 = IB(017).AND.040.LS.1
   B2 = IB(021).AND.040 
   B3 = IB(023).AND.040.RS.1
   B4 = IB(015).AND.020.RS.1
   B5 = IB(017).AND.020.RS.2
   B6 = IB(021).AND.020.RS.3
   B7 = IB(023).AND.020.RS.4
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(221) = B0.OR.B3.OR.B6 
   B0 = IB(015).AND.010.LS.4
   B1 = IB(017).AND.010.LS.3
   B2 = IB(021).AND.010.LS.2
   B3 = IB(023).AND.010.LS.1
   B4 = IB(015).AND.004.LS.1
   B5 = IB(017).AND.004 
   B6 = IB(021).AND.004.RS.1
   B7 = IB(023).AND.004.RS.2
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(222) = B0.OR.B3.OR.B6 
   B0 = IB(015).AND.002.LS.6
   B1 = IB(017).AND.002.LS.5
   B2 = IB(021).AND.002.LS.4
   B3 = IB(023).AND.002.LS.3
   B4 = IB(015).AND.001.LS.3
   B5 = IB(017).AND.001 LS.2
   B6 = IB(021).AND.001.LS.1
   B7 = IB(023).AND.001 
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(223) = B0.OR.B3.OR.B6 
* 
   EXIT 
* 
77 END 30 
COMPILE   *DMA19C - LOST PACKET DATA REFORMATTER 2
   MODULE DMA21,6000(200),LOCK
***       DMA21 - CMR WRITE PACKET TEST 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE ABILITY OF THE PMI TO TRANSFER DATA FROM
*         THE MEMORY RING TO THE CENTRAL MEMORY RING.  DATA 
*         IS READ FROM HPM, ONTO THE MEMORY RING, THROUGH 
*         THE PMI, AND INTO ITS CMRI OUTPUT REGISTER.  FROM THERE 
*         IT IS READ THROUGH PMI REGISTER LOOP 2 AND VERIFIED.
*         A TOTAL OF 16 PACKETS ARE CHECKED, 4 GROUPS OF 4, WITH
*         EACH GROUP HAVING A DIFFERENT RA. 
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MSG 
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         7. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         8. SEND A 6 CONTROL FUNCTION - STOP CM RING.
*         9  SEND A 6 CONTROL FUNCTION - 64 BIT MODE. 
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION.
*        17  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        18. READ REG LOOP 2 AND VERIFY THE PACKET DATA.
*        19. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        20. REPEAT STEPS 17 - 19 FOR 4 PACKETS.
*        21. LOAD A NEW RA INTO PMI RL1.
*        22. REPEAT STEPS 5 - 21 FOUR TIMES.
*        23. IF RM IS SELECTED, GO TO STEP 3. 
*        24. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        25. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA21 - CMR WRITE PACKET TEST
*            DMA21 -   EXECUTING
*            // MODULE ERROR LIMIT - DMA21
*            DMA21 ERROR(S) IN MODULE = *DEC
*            DMA21 LC=*DEC, ERC=*DEC
*            DMA21 - CMR WRITE PACKET TEST
*            DMA21 NO RESPONSE ON CONNECT FCTN
*            DMA21 PACKET SENT = *H*H*H*HH
*            DMA21 RESPONSE ERROR ON CONNECT FCTN 
*            DMA21 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA21 GSW = *H*HH, DFR FLAG = 0
*            DMA21 CMR PACKET DATA ERROR
*            DMA21 PMI OUT CNTRL  E   *H*H *H*H*H*H *H    HEX 
*            DMA21                A   *H*H *H*H*H*H *H    HEX 
*            DMA21 PMI OUT DATA   E   *H*H *H*H *H*H *H*H HEX 
*            DMA21                A   *H*H *H*H *H*H *H*H HEX 
*            DMA21 PMI OUT PARITY E   *H                  HEX 
*            DMA21                A   *H                  HEX 
*            DMA21 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA21 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA21 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA21 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA21 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX
*            DMA21 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX
*            DMA21 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX
*            DMA21 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX
*            DMA21 CMR RL   (512-543) *H*H*H*H         HEX
*            DMA21 PACKET NR *D/16
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE CLRCRP=00, ZEROS=02, ONES=04
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)4100, 0000, FFFF 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA21 - CMR WRITE PACKET TEST 
* 
* ------------------START---------------------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE 
* 
   RES
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   CALL 80A                        *DOWNLOAD PATTERN
* 
   EXIT TO 211                     *EXIT TO MAIN TEST 
   END 30 
COMPILE   *DMA21 - CMR WRITE PACKET TEST
   MODULE DMA211,6000(200),LOCK 
*         DMA211 - MAIN TEST
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN MODULE DMA21
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         HPM LOADED
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  = INPUT/OUTPUT BUFFER POINTER 
*         B5  = PACKET COUNTER
*         B6  = RA POINTER
*         B9  = MODULO 4 LOOP COUNTER 
*         B10 = MAIN LOOP COUNTER.
*         B11 = ERROR COUNTER 
*         B12 = COMMAND ABORT MESSAGE FORMAT NUMBER 
*         B13 = MODULE RUNNING NUMBER.
*         OB(200-221) - EXPECTED REG LOOP DATA
*         IB(200-221) - ACTUAL REG LOOP DATA
* 
* 
*   2.3   SUBMODULES USED 
* 
*         21A - ERROR PROCESSOR 
* 
*         81A - CMR REG LOOP REFORMATTER
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA21 -    EXECUTING
3  FORMAT // MODULE ERROR LIMIT - DMA21 
4  FORMAT DMA21 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA21 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, STOPCMR=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34
   EQUATE WRADDU=70, WRADDL=64, RL1=100, RL2=200
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 9000, 08D1 
   DATA (OB(016),H)0004, 01D1, FFFC, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9800, 02D0, 4000, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0000, 07D1, 0000 
   DATA (OB(100),H)0000, 01E0, FFFF, FFFF, E000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000 
   DATA (OB(200),H)C0E8, 0000, 0000, 0000 
   DATA (OB(210),H)0000, 0000, 0000, 0000, 0000 
   DATA (OB(230),H)0000, 01F0, D000, 01F0, C000, 01F8, D000 
   DATA (OB(246),H)0200, C000, 0208, 0000, 7FF0, D000, 7FF0 
   DATA (OB(264),H)C000, 7FF8, D000, 8000, C000, 8008, 001F 
   DATA (OB(302),H)FFF0, B01F, FFF0, A01F, FFF8, B020, 0000 
   DATA (OB(320),H)A020, 0008 
   DATA (OB(324),H)07FF, FFF0, 77FF, FFF0, 67FF, FFF8, 7800 
   DATA (OB(342),H)0000, 6800, 0008, FFAA, AAFF 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *RUNNING MSG 
   B13 = 21D                       *TEST NUMBER 
* 
22 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
24 B5 = 0                          *PACKET COUNTER
   B6 = 230                        *RA POINTER
* 
* ------------------TEST----------------------------------
* 
30 RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   COPY OB(B6) TO OB(100) FOR 4    *RA TO REG LOOP
   GOSUB 64                        *WR RAFL REG LOOP
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/211D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/212D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = STOPCMR                    *STOP CENTRAL MEM RING 
   GOSUB 52 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B9 = 0                          *LOOP COUNTER
   BA = STEPCMR                    *STEP CENTRAL MEM RING 
32 GOSUB 52                        *STEP
* 
   MSG 5(B5, B11) TO DISPLAY       *LOOP MSG
* 
   IF(ES.AND.SL.NE.0)GOTO 34       *SKIP DATA COMPARE ON SL 
   GOSUB 60                        *INIT EXP ADDR AND DATA
   CALL 81A                        *READ REG LOOP AND 
   WC = 22                         *REFORMAT ACT DATA 
   B5 = B5 + 1                     *INC PACKET COUNT
   ERROR 03/213D                   *CK PMI/CMRI OUT REG DATA
* 
   COMPARE OB(200) TO IB(200) FOR WC , ABT 40 
* 
34 GOTO 32 WHILE(B9+1.LE.3)        *DO FOR 4 PACKETS
   B6 = B6 + 4                     *GET NEW RA
35 GOTO 30 WHILE(B10+1.LE.3)       *DO 4 TIMES (16 PACKETS) 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 24
   CALL 21A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
60 B6 = B6 + 4                     *INC EXP ADDR POINTER
   COPY OB(B6) TO OB(202) FOR 4    *FROM OB(B6) 
   OB(206) = OB(202).AND.7760      *GET ADDR PARITY 
   OB(202) = OB(202).AND.0017      *MASK OFF PARITY 
* 
   B4 = 210                        *INIT EXP DATA 
62 OB(B4) = 0377                   *EXAMPLE DATA :FFFCFFFCFFFCFFFC
   B4 = B4 + 1                     *210 211 212 213 214 215 216 217 
   OB(B4) = B9.OR.0374             *0FF 0FC 0FF 0FD 0FF 0FC 0FF 0FC 
   B4 = B4 + 1
   IF(B4.LE.217)GOTO 62            *FOR 210 - 217 
   B4 = 350 + B9
   OB(220) = OB(B4)                *INIT DATA PARITY
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 24
* 
77 END 20 
COMPILE   *DMA211 - MAIN TEST 
   MODULE DMA21A,6000(200),LOCK 
*         DMA21A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA21 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA21 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA21 - CMR WRITE PACKET TEST 
2  FORMAT DMA21 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA21 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA21 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA21 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA21 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA21 CMR PACKET DATA ERROR 
10 FORMAT DMA21 PMI OUT CNTRL  E   *H*H *H*H*H*H *H    HEX
11 FORMAT DMA21                A   *H*H *H*H*H*H *H    HEX
12 FORMAT DMA21 PMI OUT DATA   E   *H*H *H*H *H*H *H*H HEX
13 FORMAT DMA21                A   *H*H *H*H *H*H *H*H HEX
14 FORMAT DMA21 PMI OUT PARITY E   *H                  HEX
15 FORMAT DMA21                A   *H                  HEX
16 FORMAT DMA21 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA21 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA21 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA21 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX 
22 FORMAT DMA21 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX 
23 FORMAT DMA21 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX 
24 FORMAT DMA21 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX 
25 FORMAT DMA21 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX 
26 FORMAT DMA21 CMR RL   (512-543) *H*H*H*H         HEX 
27 FORMAT DMA21 PACKET NR *D/16 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 7 TO LINE 2
   MSG 10, 7 WORDS FROM OB(200) TO LINE 3 
   MSG 11, 7 WORDS FROM IB(200) TO LINE 4 
   MSG 12, 8 WORDS FROM OB(210) TO LINE 5 
   MSG 13, 8 WORDS FROM IB(210) TO LINE 6 
   MSG 14(OB(220))TO LINE 7 
   MSG 15(IB(220))TO LINE 10
   MSG 16, 8 WORDS FROM IB(000) TO LINE 11
   MSG 17, 8 WORDS FROM IB(010) TO LINE 12
   MSG 20, 8 WORDS FROM IB(020) TO LINE 13
   MSG 21, 8 WORDS FROM IB(030) TO LINE 14
   MSG 22, 8 WORDS FROM IB(040) TO LINE 15
   MSG 23, 8 WORDS FROM IB(050) TO LINE 16
   MSG 24, 8 WORDS FROM IB(060) TO LINE 17
   MSG 25, 8 WORDS FROM IB(070) TO LINE 20
   MSG 26, 4 WORDS FROM IB(100) TO LINE 21
   MSG 27(B5) TO LINE 22
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA21A - MSG PROCESSOR 
   MODULE DMA23,6000(200),LOCK
***       DMA23 - FIELD LENGTH TEST 1 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE ABILITY OF THE PMI TO DETECT A FIELD LENGTH 
*         RANGE ERROR AND THE BIT ASSOCIATED WITH THAT ERROR IN 
*         THE SRI STATUS WORD.  THE TEST CHECKS 29 CONDITIONS OF
*         WRITE ADDRESS GREATER THAN RA+FL. 
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MESSAGE 
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         7. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         8  SEND A 6 CONTROL FUNCTION - 64 BIT MODE. 
*         9. SEND A 8 BLOCK COUNT FUNCTION. 
*        10. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        11. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        12. SEND A C SEND MEMORY PACKET FUNCTION.
*        13. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        14. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        15. SEND A C SEND MEMORY PACKET FUNCTION.
*        16. READ THE SRI STATUS AND VERIFY A FIELD LENGTH ERROR. 
*        17. REPEAT STEPS 3-16 WITH 29 CASES OF WRITE ADDRESS 
*            GREATER THAN RA+FL.
*        18. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        19. IF RM IS SELECTED, GO TO STEP 3. 
*        20. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        21. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA23 - FIELD LENGTH TEST 1
*            // MODULE ERROR LIMIT - DMA23
*            DMA23 ERROR(S) IN MODULE = *DEC
*            DMA23 LC=*DEC, ERC=*DEC
*            DMA23 - FIELD LENGTH TEST 1
*            DMA23 NO RESPONSE ON CONNECT FCTN
*            DMA23 PACKET SENT = *H*H*H*HH
*            DMA23 RESPONSE ERROR ON CONNECT FCTN 
*            DMA23 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA23 GSW = *H*HH, DFR FLAG = 0
*            DMA23 SRI STATUS ERROR 
*            DMA23 NO RESPONSE ON STATUS REQST
*            DMA23 RA+FL              *H*H*H*H HEX
*            DMA23 CM WR ADDRESS      *H*H*H*H HEX
*            DMA23 WRADDR SENT        *H*H*H*H HEX
*            DMA23 RA                 *H*H*H*H HEX
*            DMA23 PACKET NR *D/29
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   PARAMETER AND BUFFER USAGE
* 
*         B0  - INPUT BUFFER POINTER
*         B5  - CASE COUNTER
*         B6  - RA+FL POINTER 
*         B9  - WRADDR POINTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         SB(0  -  1) - CRP GSW 
*         IB(0  -  3) - SRI RESPONSE
*         OB(100-122) - RAFL REG LOOP DATA
* 
* 
*   2.3   MODULES USED
* 
*         23A - ERROR PROCESSOR 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA23 - FIELD LENGTH TEST 1 
3  FORMAT // MODULE ERROR LIMIT - DMA23 
4  FORMAT DMA23 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA23 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50, SREQ=0 
   EQUATE CONN=4, ENABLCM=10, BLKNT=14, RDADDL=20, CRES=40
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34, FLERR=124 
   EQUATE WRADDU=70, WRADDL=64, RL1=100, RL2=200
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 8000, 08D1 
   DATA (OB(016),H)0001, 01D1, 03F8, 02D1, 0000, 0CD1, 8000 
   DATA (OB(034),H)06D1, 9800, 02D0, 4040, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 3344, 04D1, 1122, 07D1, 0000 
   DATA (OB(100),H)0000, 0000, 1122, 3344, E000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000, 02D0, 41C0 
   DATA (OB(240),H)0000, 0001, 0000, 0000, 0002, 0000 
   DATA (OB(254),H)0000, 0004, 0000, 0000, 0008, 0000 
   DATA (OB(270),H)0000, 0010, 0000, 0000, 0020, 0000 
   DATA (OB(304),H)0000, 0040, 0000, 0000, 0080, 0000 
   DATA (OB(320),H)0000, 0100, 0000, 0000, 0200, 0000 
   DATA (OB(334),H)0000, 0400, 0000, 0000, 0800, 0000 
   DATA (OB(350),H)0000, 1000, 0000, 0000, 2000, 0000 
   DATA (OB(364),H)0000, 4000, 0000, 0000, 8000, 0000 
   DATA (OB(400),H)0001, 0000, 0000, 0002, 0000, 0000 
   DATA (OB(414),H)0004, 0000, 0000, 0008, 0000, 0000 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *RUNNING MSG 
   B13 = 23D                       *TEST NUMBER 
* 
22 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
24 B9 = 240                        *WR ADDR POINTER 
   B6 = 254                        *RA+FL POINTER 
   B5 = 1                          *CASE COUNTER
* 
* ------------------TEST----------------------------------
* 
30 MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   COPY OB(B6) TO OB(104) FOR 4    *RA+FL TO REG LOOP BUFF
   B6 = B6 + 6                     *INC RA+FL POINTER 
   COPY OB(B9) TO OB(072) FOR 2    *WRADDU TO BUFF
   B9 = B9 + 2                     *INC WRADDR POINTER
   COPY OB(B9) TO OB(066) FOR 2    *WRADDL TO BUFF
   B9 = B9 + 4                     *INC WRADDR POINTER
   GOSUB 64                        *WR RAFL REG LOOP
* 
   BA = ENABLCM                    *ENABLE CM REFS
   GOSUB 52 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/231D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/232D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
* 
   BA = SREQ                       *SEND STATUS REQ 
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 03/233D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 04/234D                   *CHK FOR FL ERR
* 
   COMPARE OB(FLERR) TO IB(0) FOR WC , ABT 40 
* 
   GOTO 30 WHILE(B5+1.LE.20)       *DO 16 TIMES 
   GOTO 32 WHILE(B5+0.GT.21)
   B6 = 256                        *OFFSET RA+FL PNTR 
   B9 = 242                        *OFFSET WRADDR PNTR
32 GOTO 33 WHILE(B5+0.LE.30)       *DO 24 TIMES WITH WRADDR>RA+FL 
   B9 = 244                        *WRADDR TO 0 
   COPY OB(B6+6)TO OB(100) FOR 4   *LOAD RA 
33 GOTO 30 WHILE(B5+0.LE.35)       *DO 5 TIMES WITH RA>RA+FL
35 GOTO 24 WHILE(B10+1.LE.077)     *DO 64 TIMES 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   ENDSUB 
   IF(ES.AND.SL.NE.0)GOTO 35       *SL
   CALL 23A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 35
* 
77 END 20 
COMPILE   *DMA23 - FIELD LENGTH TEST 1
   MODULE DMA23A,6000(200),LOCK 
*         DMA23A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA23 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA23 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA23 - FIELD LENGTH TEST 1 
2  FORMAT DMA23 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA23 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA23 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA23 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA23 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA23 SRI STATUS ERROR
10 FORMAT DMA23 RA+FL              *H*H*H*H HEX 
11 FORMAT DMA23 CM WR ADDRESS      *H*H*H*H HEX 
12 FORMAT DMA23 PACKET NR *D/29 
13 FORMAT DMA23 NO RESPONSE ON STATUS REQST 
14 FORMAT DMA23 WRADDR SENT        *H*H*H*H HEX 
15 FORMAT DMA23 RA                 *H*H*H*H HEX 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 13 TO LINE 2 
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
34 MSG 7 TO LINE 2
   COPY OB(124) TO OB(200) FOR 4
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   COPY OB(72) TO OB(210) FOR 2 
   COPY OB(66) TO OB(212) FOR 2 
   MSG 10, 4 WORDS FROM OB(104) TO LINE 4 
   MSG 11, 4 WORDS FROM OB(B6) TO LINE 5
   MSG 14, 4 WORDS FROM OB(210) TO LINE 6 
   MSG 15, 4 WORDS FROM OB(100) TO LINE 7 
   MSG 12(B5) TO LINE 8 
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA23A - MSG PROCESSOR 
   MODULE DMA25,6000(200),LOCK
***       DMA25 - FIELD LENGTH TEST 2 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE ABILITY OF THE PMI TO DETECT A FIELD LENGTH 
*         RANGE ERROR WHEN THE WRITE ADDRESS AND RA+FL ARE EQUAL. 
*         THE TEST CHECKS 29 CONDITIONS OF WRADDR = RA+FL.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MESSAGE.
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         7. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         8  SEND A 6 CONTROL FUNCTION - 64 BIT MODE. 
*         9. SEND A 8 BLOCK COUNT FUNCTION. 
*        10. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        11. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        12. SEND A C SEND MEMORY PACKET FUNCTION.
*        13. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        14. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        15. SEND A C SEND MEMORY PACKET FUNCTION.
*        16. READ THE SRI STATUS AND VERIFY A FIELD LENGTH ERROR. 
*        17. REPEAT STEPS 3-16 WITH 29 CASES OF WRITE ADDRESS 
*            EQUAL TO RA+FL.
*        18. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        19. IF RM IS SELECTED, GO TO STEP 3. 
*        20. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        21. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA25 - FIELD LENGTH TEST 2
*            // MODULE ERROR LIMIT - DMA25
*            DMA25 ERROR(S) IN MODULE = *DEC
*            DMA25 LC=*DEC, ERC=*DEC
*            DMA25 - FIELD LENGTH TEST 2
*            DMA25 NO RESPONSE ON CONNECT FCTN
*            DMA25 PACKET SENT = *H*H*H*HH
*            DMA25 RESPONSE ERROR ON CONNECT FCTN 
*            DMA25 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA25 GSW = *H*HH, DFR FLAG = 0
*            DMA25 SRI STATUS ERROR 
*            DMA25 NO RESPONSE ON STATUS REQST
*            DMA25 RA+FL              *H*H*H*H HEX
*            DMA25 CM WRITE ADDRESS   *H*H*H*H HEX
*            DMA25 WRADDR SENT        *H*H*H*H HEX
*            DMA25 RA                 *H*H*H*H HEX
*            DMA25 PACKET NR *D/29
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  = INPUT BUFFER POINTER
*         B5  = CASE COUNTER
*         B6  = RA+FL POINTER 
*         B9  = WRADDR POINTER
*         B10 = MAIN LOOP COUNTER.
*         B11 = ERROR COUNTER 
*         B12 = COMMAND ABORT MESSAGE FORMAT NUMBER 
*         B13 = MODULE RUNNING NUMBER.
*         SB(0  -  1) - CRP GSW 
*         IB(0  -  3) - SRI RESPONSE
*         OB(100-122) - RAFL REG LOOP DATA
* 
* 
*   2.3   MODULES USED
* 
*         25A - ERROR PROCESSOR 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA25 - FIELD LENGTH TEST 2 
3  FORMAT // MODULE ERROR LIMIT - DMA25 
4  FORMAT DMA25 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA25 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50, SREQ=0 
   EQUATE CONN=4, ENABLCM=10, BLKNT=14, RDADDL=20, CRES=40
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34, FLERR=124 
   EQUATE WRADDU=70, WRADDL=64, RL1=100, RL2=200
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 8000, 08D1 
   DATA (OB(016),H)0001, 01D1, 03F8, 02D1, 0000, 0CD1, 8000 
   DATA (OB(034),H)06D1, 9800, 02D0, 4040, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 3344, 04D1, 1122, 07D1, 0000 
   DATA (OB(100),H)0000, 0000, 1122, 3344, E000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000, 02D0, 41C0 
   DATA (OB(240),H)0000, 0001, 0000, 0000, 0002, 0000 
   DATA (OB(254),H)0000, 0004, 0000, 0000, 0008, 0000 
   DATA (OB(270),H)0000, 0010, 0000, 0000, 0020, 0000 
   DATA (OB(304),H)0000, 0040, 0000, 0000, 0080, 0000 
   DATA (OB(320),H)0000, 0100, 0000, 0000, 0200, 0000 
   DATA (OB(334),H)0000, 0400, 0000, 0000, 0800, 0000 
   DATA (OB(350),H)0000, 1000, 0000, 0000, 2000, 0000 
   DATA (OB(364),H)0000, 4000, 0000, 0000, 8000, 0000 
   DATA (OB(400),H)0001, 0000, 0000, 0002, 0000, 0000 
   DATA (OB(414),H)0004, 0000, 0000, 0008, 0000, 0000 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *RUNNING MSG 
   B13 = 25D                       *TEST NUMBER 
* 
22 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
24 B9 = 240                        *WR ADDR POINTER 
   B6 = 262                        *RA+FL POINTER 
   B5 = 1                          *CASE COUNTER
* 
* ------------------TEST----------------------------------
* 
30 MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   COPY OB(B6) TO OB(104) FOR 4    *RA+FL TO REG LOOP BUFF
   B6 = B6 + 6                     *INC RA+FL POINTER 
   COPY OB(B9) TO OB(072) FOR 2    *WRADDU TO BUFF
   B9 = B9 + 2                     *INC WRADDR POINTER
   COPY OB(B9) TO OB(066) FOR 2    *WRADDL TO BUFF
   B9 = B9 + 4                     *INC WRADDR POINTER
   GOSUB 64                        *WR RAFL REG LOOP
* 
   BA = ENABLCM                    *ENABLE CM REFS
   GOSUB 52 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/251D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/252D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
* 
   BA = SREQ                       *SEND STATUS REQ 
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 03/253D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 04/254D                   *CHK FOR NO FL ERR 
* 
   COMPARE OB(FLERR) TO IB(0) FOR WC , ABT 40 
* 
   GOTO 30 WHILE(B5+1.LE.20)       *DO 16 TIMES 
   GOTO 32 WHILE(B5+0.GT.21)
   B6 = 264                        *OFFSET RA+FL PNTR 
   B9 = 242                        *OFFSET WRADDR PNTR
32 GOTO 33 WHILE(B5+0.LE.30)       *DO 24 TIMES WITH WRADDR=RA+FL 
   B9 = 244                        *WRADDR TO 0 
   COPY OB(B6) TO OB(100) FOR 4    *LOAD RA 
33 GOTO 30 WHILE(B5+0.LE.35)       *DO 5 TIMES WITH RA=RA+FL
35 GOTO 24 WHILE(B10+1.LE.077)     *DO 64 TIMES 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   ENDSUB 
   IF(ES.AND.SL.NE.0)GOTO 35       *SL
   CALL 25A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 35
* 
77 END 20 
COMPILE   *DMA25 - FIELD LENGTH TEST 2
   MODULE DMA25A,6000(200),LOCK 
*         DMA25A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA25 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA25 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA25 - FIELD LENGTH TEST 2 
2  FORMAT DMA25 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA25 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA25 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA25 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA25 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA25 SRI STATUS ERROR
10 FORMAT DMA25 RA+FL              *H*H*H*H HEX 
11 FORMAT DMA25 CM WRITE ADDRESS   *H*H*H*H HEX 
12 FORMAT DMA25 PACKET NR *D/29 
13 FORMAT DMA25 NO RESPONSE ON STATUS REQST 
14 FORMAT DMA25 WRADDR SENT        *H*H*H*H HEX 
15 FORMAT DMA25 RA                 *H*H*H*H HEX 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 13 TO LINE 2 
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
34 MSG 7 TO LINE 2
   COPY OB(124) TO OB(200) FOR 4
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   COPY OB(72) TO OB(210) FOR 2 
   COPY OB(66) TO OB(212) FOR 2 
   MSG 10, 4 WORDS FROM OB(104) TO LINE 4 
   B1 = B6 - 6
   MSG 11, 4 WORDS FROM OB(B1) TO LINE 5
   MSG 14, 4 WORDS FROM OB(210) TO LINE 6 
   MSG 15, 4 WORDS FROM OB(100) TO LINE 7 
   MSG 12(B5) TO LINE 10
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA25A - MSG PROCESSOR 
   MODULE DMA27,6000(200),LOCK
***       DMA27 - RIGHT JUSTIFIED DATA TEST 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE PMI DATA TRANSLATION MODE LOGIC TO VERIFY 
*         THAT DATA CAN BE TRANSFERRED TO THE CM RING IN RIGHT
*         JUSTIFIED DATA MODE.  DATA IS READ FROM HPM VIA THE 
*         MEMORY RING,  INTO THE PMI, THROUGHT THE DATA 
*         TRANSLATION LOGIC, AND ONTO THE CENTRAL MEMORY RING.
*         FROM THERE IT IS READ THROUGH PMI REGISTER LOOP 2 
*         AND VERIFIED THAT THE 4 MOST SIGNIFICANT BITS OF THE
*         64 BIT DATA WORD ARE FORCED TO 1'S AND THAT THE PARITY
*         FOR THE ALTERED WORD IS CORRECT.  A TOTAL OF 4 WORDS
*         ARE CHECKED.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MESSAGE 
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         7. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         8. SEND A 6 CONTROL FUNCTION - STOP CM RING.
*         9  SEND A 6 CONTROL FUNCTION - RIGHT JUSTIFIED
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION.
*        17  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        18. READ REG LOOP 2 AND VERIFY THE PACKET DATA.
*        19. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        20. REPEAT STEPS 17 - 19 FOR 4 PACKETS.
*        21. REPEAT STEPS 3 - 20 FOUR TIMES.
*        22. IF RM IS SELECTED, GO TO STEP 3. 
*        23. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        24. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA27 - RIGHT JUSTIFIED DATA TEST
*            DMA27 -   EXECUTING
*            // MODULE ERROR LIMIT - DMA27
*            DMA27 ERROR(S) IN MODULE = *DEC
*            DMA27 RUNNING  LC=*DEC, ERC=*DEC 
*            DMA27 - RIGHT JUSTIFIED DATA TEST
*            DMA27 NO RESPONSE ON CONNECT FCTN
*            DMA27 PACKET SENT = *H*H*H*HH
*            DMA27 RESPONSE ERROR ON CONNECT FCTN 
*            DMA27 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA27 GSW = *H*HH, DFR FLAG = 0
*            DMA27 CM PACKET DATA ERROR 
*            DMA27 PMI OUT CNTRL  E   *H*H *H*H*H*H *H    HEX 
*            DMA27                A   *H*H *H*H*H*H *H    HEX 
*            DMA27 PMI OUT DATA   E   *H*H *H*H *H*H *H*H HEX 
*            DMA27                A   *H*H *H*H *H*H *H*H HEX 
*            DMA27 PMI OUT PARITY E   *H                  HEX 
*            DMA27                A   *H                  HEX 
*            DMA27 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA27 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA27 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA27 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA27 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX
*            DMA27 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX
*            DMA27 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX
*            DMA27 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX
*            DMA27 CMR RL   (512-543) *H*H*H*H         HEX
*            DMA27 PACKET NR *D/4 
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE CLRCRP=00, ZEROS=02, ONES=04
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)4100, 0000, FFFF 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA27 - RIGHT JUSTIFIED DATA TEST 
* 
* ------------------START---------------------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE 
* 
   RES
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   CALL 80A                        *DOWNLOAD PATTERN
* 
   EXIT TO 271                     *EXIT TO MAIN TEST 
   END 30 
COMPILE   *DMA27 - RIGHT JUSTIFIED DATA TEST
   MODULE DMA271,6000(200),LOCK 
*         DMA271 - MAIN TEST
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA27 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         HPM LOADED
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B5  - EXPECTED DATA POINTER 
*         B9  - PACKET COUNTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         OB(100-123) - RAFL REG LOOP DATA
*         OB(200-223) - EXPECTED REG LOOP DATA
*         IB(200-223) - ACT REFORMATTED DATA
*         IB(000-003) - SRI RESPONSE
*         SB(000-001) - CRP GSW 
* 
* 
*   2.3   SUBMODULES USED 
* 
*         27A - ERROR PROCESSOR 
* 
*         81A - CMR REG LOOP REFORMATTER
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA27 -    EXECUTING
3  FORMAT // MODULE ERROR LIMIT - DMA27 
4  FORMAT DMA27 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA27 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, STOPCMR=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34
   EQUATE WRADDU=70, WRADDL=64, RL1=100, RL2=200
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 9200, 08D1 
   DATA (OB(016),H)0004, 01D1, 0FFC, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9A00, 02D0, 4000, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0000, 07D1, 8000 
   DATA (OB(100),H)FFFF, FF00, FFFF, FFFF, E000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000 
   DATA (OB(200),H)C0E8, 0000, 0000, 0000 
   DATA (OB(210),H)0000, 0000, 0000, 0000, 0000 
   DATA (OB(240),H)FFFF, FF00, F0FF, FC0F, FC0F, FC0F, FCFF 
   DATA (OB(256),H)FFFF, FF08, E0FF, FD0F, FD0F, FD0F, FDAA 
   DATA (OB(274),H)FFFF, FF10, E0FF, FE0F, FE0F, FE0F, FEAA 
   DATA (OB(312),H)FFFF, FF18, F0FF, FF0F, FF0F, FF0F, FFFF 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *RUNNING MSG 
   B13 = 27D                       *TEST NUMBER 
* 
22 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST----------------------------------
* 
30 B5 = 240                        *DATA POINTER
* 
   RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   GOSUB 64                        *WR RAFL REG LOOP
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/271D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/272D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = STOPCMR                    *STOP CENTRAL MEM RING 
   GOSUB 52 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B9 = 1                          *LOOP COUNTER
   BA = STEPCMR                    *STEP CENTRAL MEM RING 
32 GOSUB 52                        *STEP
* 
   MSG 5(B9, B11) TO DISPLAY       *LOOP MSG
* 
   IF(ES.AND.SL.NE.0)GOTO 34       *SKIP DATA COMPARE ON SL 
   GOSUB 60                        *INIT EXP ADDR AND DATA
   CALL 81A                        *READ THE REG LOOP AND 
   WC = 22                         *REFORMAT ACT ADDR AND DATA
   ERROR 03/273D                   *COMPARE EXP/ACT DATA
* 
   COMPARE OB(200) TO IB(200) FOR WC , ABT 40 
* 
34 GOTO 32 WHILE(B9+1.LE.4)        *DO FOR 4 PACKETS
35 GOTO 30 WHILE(B10+1.LE.3)       *DO 4 TIMES (16 PACKETS) 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 30       *SL
   CALL 27A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
60 COPY OB(B5) TO OB(202) FOR 5    *GET EXPECTED DATA 
   B5 = B5 + 5                     *TO COMPARE BUFFER 
   COPY OB(B5) TO OB(210) FOR 9 
   B5 = B5 + 9
   RETURN                          *SAVE DATA POINTER 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 30
* 
77 END 20 
COMPILE   *DMA271 - MAIN TEST 
   MODULE DMA27A,6000(200),LOCK 
*         DMA27A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA27 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA27 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA27 - RIGHT JUSTIFIED DATA TEST 
2  FORMAT DMA27 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA27 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA27 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA27 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA27 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA27 CM PACKET DATA ERROR
10 FORMAT DMA27 PMI OUT CNTRL  E   *H*H *H*H*H*H *H    HEX
11 FORMAT DMA27                A   *H*H *H*H*H*H *H    HEX
12 FORMAT DMA27 PMI OUT DATA   E   *H*H *H*H *H*H *H*H HEX
13 FORMAT DMA27                A   *H*H *H*H *H*H *H*H HEX
14 FORMAT DMA27 PMI OUT PARITY E   *H                  HEX
15 FORMAT DMA27                A   *H                  HEX
16 FORMAT DMA27 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA27 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA27 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA27 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX 
22 FORMAT DMA27 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX 
23 FORMAT DMA27 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX 
24 FORMAT DMA27 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX 
25 FORMAT DMA27 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX 
26 FORMAT DMA27 CMR RL   (512-543) *H*H*H*H         HEX 
27 FORMAT DMA27 PACKET NR *D/4
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 7 TO LINE 2
   MSG 10, 7 WORDS FROM OB(200) TO LINE 3 
   MSG 11, 7 WORDS FROM IB(200) TO LINE 4 
   MSG 12, 8 WORDS FROM OB(210) TO LINE 5 
   MSG 13, 8 WORDS FROM IB(210) TO LINE 6 
   MSG 14(OB(220))TO LINE 7 
   MSG 15(IB(220))TO LINE 10
   MSG 16, 8 WORDS FROM IB(000) TO LINE 11
   MSG 17, 8 WORDS FROM IB(010) TO LINE 12
   MSG 20, 8 WORDS FROM IB(020) TO LINE 13
   MSG 21, 8 WORDS FROM IB(030) TO LINE 14
   MSG 22, 8 WORDS FROM IB(040) TO LINE 15
   MSG 23, 8 WORDS FROM IB(050) TO LINE 16
   MSG 24, 8 WORDS FROM IB(060) TO LINE 17
   MSG 25, 8 WORDS FROM IB(070) TO LINE 20
   MSG 26, 4 WORDS FROM IB(100) TO LINE 21
   MSG 27(B9) TO LINE 22
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA27A - MSG PROCESSOR 
   MODULE DMA29,6000(200),LOCK
***       DMA29 - LEFT JUSTIFIED DATA TEST
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE PMI DATA TRANSLATION MODE LOGIC TO VERIFY 
*         THAT DATA CAN BE TRANSFERRED TO THE CM RING IN LEFT 
*         JUSTIFIED DATA MODE.  DATA IS READ FROM HPM VIA THE 
*         MEMORY RING,  INTO THE PMI, THROUGHT THE DATA 
*         TRANSLATION LOGIC, AND ONTO THE CENTRAL MEMORY RING.
*         FROM THERE IT IS READ THROUGH PMI REGISTER LOOP 2 
*         AND VERIFIED THAT THE 4 MOST SIGNIFICANT BITS OF THE
*         64 BIT DATA WORD ARE FORCED TO 1'S AND THAT THE THE DATA
*         WORD HAS BEEN SHIFTED RIGHT 4 BITS. THE PARITY OF 
*         ALTERED WORD IS ALSO VERIFIED.  A TOTAL OF 4 WORDS
*         ARE CHECKED.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MESSAGE.
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         7. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         8. SEND A 6 CONTROL FUNCTION - STOP CM RING.
*         9  SEND A 6 CONTROL FUNCTION - LEFT JUSTIFIED 
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION.
*        17  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        18. READ REG LOOP 2 AND VERIFY THE PACKET DATA.
*        19. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        20. REPEAT STEPS 17 - 19 FOR 4 PACKETS.
*        21. IF RM IS SELECTED, GO TO STEP 3. 
*        22. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        25. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA29 - LEFT JUSTIFIED DATA TEST 
*            DMA29   EXECUTING
*            // MODULE ERROR LIMIT - DMA29
*            DMA29 ERROR(S) IN MODULE = *DEC
*            DMA29 RUNNING  LC=*DEC, ERC=*DEC 
*            DMA29 - LEFT JUSTIFIED DATA TEST 
*            DMA29 NO RESPONSE ON CONNECT FCTN
*            DMA29 PACKET SENT = *H*H*H*HH
*            DMA29 RESPONSE ERROR ON CONNECT FCTN 
*            DMA29 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA29 GSW = *H*HH, DFR FLAG = 0
*            DMA29 CM PACKET DATA ERROR 
*            DMA29 PMI OUT CNTRL  E   *H*H *H*H*H*H *H    HEX 
*            DMA29                A   *H*H *H*H*H*H *H    HEX 
*            DMA29 PMI OUT DATA   E   *H*H *H*H *H*H *H*H HEX 
*            DMA29                A   *H*H *H*H *H*H *H*H HEX 
*            DMA29 PMI OUT PARITY E   *H                  HEX 
*            DMA29                A   *H                  HEX 
*            DMA29 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA29 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA29 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA29 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA29 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX
*            DMA29 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX
*            DMA29 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX
*            DMA29 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX
*            DMA29 CMR RL   (512-543) *H*H*H*H         HEX
*            DMA29 PACKET NR *D/4 
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE CLRCRP=00, ZEROS=02, ONES=04
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)4100, 0000, FFFF 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA29 - LEFT JUSTIFIED DATA TEST
* 
* ------------------START---------------------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE 
* 
   RES
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   CALL 80A                        *DOWNLOAD PATTERN
* 
   EXIT TO 291                     *EXIT TO MAIN TEST 
   END 30 
COMPILE   *DMA29 - LEFT JUSTIFIED DATA TEST 
   MODULE DMA291,6000(200),LOCK 
*         DMA291 - MAIN TEST
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA29 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         HPM LOADED
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B5  - EXPECTED DATA POINTER 
*         B9  - PACKET COUNTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         OB(100-123) - RAFL REG LOOP DATA
*         OB(200-223) - EXPECTED REG LOOP DATA
*         IB(200-223) - ACT REFORMATTED DATA
*         IB(000-003) - SRI RESPONSE
*         SB(000-001) - CRP GSW 
* 
* 
*   2.3   MODULES USED
* 
*         29A - ERROR PROCESSOR 
* 
*         81A - CMR REG LOOP REFORMATTER
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA29 -    EXECUTING
3  FORMAT // MODULE ERROR LIMIT - DMA29 
4  FORMAT DMA29 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA29 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, STOPCMR=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34
   EQUATE WRADDU=70, WRADDL=64, RL1=100, RL2=200
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 9100, 08D1 
   DATA (OB(016),H)0008, 01D1, 0000, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9900, 02D0, 4000, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0000, 07D1, 4000 
   DATA (OB(100),H)FFFF, FF00, FFFF, FFFF, E000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000 
   DATA (OB(200),H)C0E8, 0000, 0000, 0000 
   DATA (OB(210),H)0000, 0000, 0000, 0000, 0000 
   DATA (OB(240),H)FFFF, FF00, F0F0, 0000, 0000, 0000, 00FF 
   DATA (OB(256),H)FFFF, FF08, E0F0, 0010, 0010, 0010, 00D5 
   DATA (OB(274),H)FFFF, FF10, E0F0, 0020, 0020, 0020, 00D5 
   DATA (OB(312),H)FFFF, FF18, F0F0, 0030, 0030, 0030, 00FF 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *RUNNING MSG 
   B13 = 29D                       *TEST NUMBER 
* 
22 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST----------------------------------
* 
30 B5 = 240                        *DATA POINTER
* 
   RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   GOSUB 64                        *WR RAFL REG LOOP
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/291D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/292D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = STOPCMR                    *STOP CENTRAL MEM RING 
   GOSUB 52 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B9 = 1                          *LOOP COUNTER
   BA = STEPCMR                    *STEP CENTRAL MEM RING 
32 GOSUB 52                        *STEP
* 
   MSG 5(B9, B11) TO DISPLAY       *LOOP MSG
* 
   IF(ES.AND.SL.NE.0)GOTO 34       *SKIP DATA COMPARE ON SL 
   GOSUB 60                        *INIT EXP ADDR AND DATA
   CALL 81A                        *READ THE REG LOOP AND 
   WC = 22                         *REFORMAT ACT ADDR AND DATA
   ERROR 03/293D                   *COMPARE EXP/ACT DATA
* 
   COMPARE OB(200) TO IB(200) FOR WC , ABT 40 
* 
34 GOTO 32 WHILE(B9+1.LE.4)        *DO FOR 4 PACKETS
35 GOTO 30 WHILE(B10+1.LE.3)       *DO 4 TIMES (16 PACKETS) 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 30       *SL
   CALL 29A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
60 COPY OB(B5) TO OB(202) FOR 5    *GET EXPECTED DATA 
   B5 = B5 + 5                     *TO COMPARE BUFFER 
   COPY OB(B5) TO OB(210) FOR 9 
   B5 = B5 + 9
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 30
* 
77 END 20 
COMPILE   *DMA291 - MAIN TEST 
   MODULE DMA29A,6000(200),LOCK 
*         DMA29A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA29 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA29 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA29 - LEFT JUSTIFIED DATA TEST
2  FORMAT DMA29 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA29 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA29 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA29 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA29 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA29 CM PACKET DATA ERROR
10 FORMAT DMA29 PMI OUT CNTRL  E   *H*H *H*H*H*H *H    HEX
11 FORMAT DMA29                A   *H*H *H*H*H*H *H    HEX
12 FORMAT DMA29 PMI OUT DATA   E   *H*H *H*H *H*H *H*H HEX
13 FORMAT DMA29                A   *H*H *H*H *H*H *H*H HEX
14 FORMAT DMA29 PMI OUT PARITY E   *H                  HEX
15 FORMAT DMA29                A   *H                  HEX
16 FORMAT DMA29 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA29 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA29 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA29 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX 
22 FORMAT DMA29 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX 
23 FORMAT DMA29 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX 
24 FORMAT DMA29 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX 
25 FORMAT DMA29 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX 
26 FORMAT DMA29 CMR RL   (512-543) *H*H*H*H         HEX 
27 FORMAT DMA29 PACKET NR *D/4
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 7 TO LINE 2
   MSG 10, 7 WORDS FROM OB(200) TO LINE 3 
   MSG 11, 7 WORDS FROM IB(200) TO LINE 4 
   MSG 12, 8 WORDS FROM OB(210) TO LINE 5 
   MSG 13, 8 WORDS FROM IB(210) TO LINE 6 
   MSG 14(OB(220))TO LINE 7 
   MSG 15(IB(220))TO LINE 10
   MSG 16, 8 WORDS FROM IB(000) TO LINE 11
   MSG 17, 8 WORDS FROM IB(010) TO LINE 12
   MSG 20, 8 WORDS FROM IB(020) TO LINE 13
   MSG 21, 8 WORDS FROM IB(030) TO LINE 14
   MSG 22, 8 WORDS FROM IB(040) TO LINE 15
   MSG 23, 8 WORDS FROM IB(050) TO LINE 16
   MSG 24, 8 WORDS FROM IB(060) TO LINE 17
   MSG 25, 8 WORDS FROM IB(070) TO LINE 20
   MSG 26, 4 WORDS FROM IB(100) TO LINE 21
   MSG 27(B9) TO LINE 22
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA29A - MSG PROCESSOR 
   MODULE DMA31,6000(200),LOCK
***       DMA31 - BIT STREAM DATA TEST
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE PMI DATA TRANSLATION MODE LOGIC TO VERIFY 
*         THAT DATA CAN BE TRANSFERRED TO THE CM RING IN BIT
*         STREAM DATA MODE.  DATA IS READ FROM HPM VIA THE
*         MEMORY RING,  INTO THE PMI, THROUGHT THE DATA 
*         TRANSLATION LOGIC, AND ONTO THE CENTRAL MEMORY RING.
*         FROM THERE IT IS READ THROUGH PMI REGISTER LOOP 2 
*         AND VERIFIED THAT THE 4 MOST SIGNIFICANT BITS OF THE
*         64 BIT DATA WORD ARE FORCED TO 1'S AND THAT THE DATA IN 
*         EACH OF THE 3 WORDS READ FROM HPM HAS BEEN PROPERLY 
*         PACKED INTO 4 CM WORDS.  THE PARITY FOR THE ALTERED 
*         DATA IS ALSO VERIFIED.  A TOTAL OF 4 CMR PACKETS
*         ARE GENERATED AND VERIFIED. 
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MESSAGE.
*         4. CLEAR THE CRP AND DMAU 
*         5. RESET ALL HPP'S
*         6  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         7. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         8. SEND A 6 CONTROL FUNCTION - STOP CM RING.
*         9  SEND A 6 CONTROL FUNCTION - BIT STREAM 
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION.
*        17  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        18. READ REG LOOP 2 AND VERIFY THE PACKET DATA.
*        19. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        20. REPEAT STEPS 17 - 19 FOR 4 PACKETS.
*        21. IF RM IS SELECTED, GO TO STEP 3. 
*        22. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        23. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA31 - BIT STREAM DATA TEST 
*            DMA31   EXECUTING
*            // MODULE ERROR LIMIT - DMA31
*            DMA31 ERROR(S) IN MODULE = *DEC
*            DMA31 LC=*DEC, ERC=*DEC
*            DMA31 - BIT STREAM DATA TEST 
*            DMA31 NO RESPONSE ON CONNECT FCTN
*            DMA31 PACKET SENT = *H*H*H*HH
*            DMA31 RESPONSE ERROR ON CONNECT FCTN 
*            DMA31 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA31 GSW = *H*HH, DFR FLAG = 0
*            DMA31 CM PACKET DATA ERROR 
*            DMA31 PMI OUT CNTRL  E   *H*H *H*H*H*H *H    HEX 
*            DMA31                A   *H*H *H*H*H*H *H    HEX 
*            DMA31 PMI OUT DATA   E   *H*H *H*H *H*H *H*H HEX 
*            DMA31                A   *H*H *H*H *H*H *H*H HEX 
*            DMA31 PMI OUT PARITY E   *H                  HEX 
*            DMA31                A   *H                  HEX 
*            DMA31 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA31 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA31 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA31 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA31 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX
*            DMA31 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX
*            DMA31 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX
*            DMA31 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX
*            DMA31 CMR RL   (512-543) *H*H*H*H         HEX
*            DMA31 PACKET NR *D/4 
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE CLRCRP=00, ZEROS=02, ONES=04
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)4100, 0000, FFFF 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA31 - BIT STREAM DATA TEST
* 
* ------------------START---------------------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE 
* 
   RES
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   CALL 80A                        *DOWNLOAD PATTERN
* 
   EXIT TO 311                     *EXIT TO MAIN TEST 
   END 30 
COMPILE   *DMA31 - BIT STREAM DATA TEST 
   MODULE DMA311,6000(200),LOCK 
*         DMA311 - MAIN TEST
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA31 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         HPM LOADED
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B5  - EXPECTED DATA POINTER 
*         B9  - PACKET COUNTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         OB(100-123) - RAFL REG LOOP DATA
*         OB(200-223) - EXPECTED REG LOOP DATA
*         IB(200-223) - ACT REFORMATTED DATA
*         IB(000-003) - SRI RESPONSE
*         SB(000-001) - CRP GSW 
* 
* 
*   2.3   MODULES USED
* 
*         31A - ERROR PROCESSOR 
* 
*         81A - CMR REG LOOP REFORMATTER
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA31 -    EXECUTING
3  FORMAT // MODULE ERROR LIMIT - DMA31 
4  FORMAT DMA31 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA31 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, STOPCMR=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34
   EQUATE WRADDU=70, WRADDL=64, RL1=100 
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 9300, 08D1 
   DATA (OB(016),H)0003, 01D1, 0001, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9B00, 02D0, 4000, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0000, 07D1, C000 
   DATA (OB(100),H)0000, 0000, FFFF, FFFF, E000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000 
   DATA (OB(200),H)C0E8, 0000, 0000, 0000 
   DATA (OB(210),H)0000, 0000, 0000, 0000, 0000 
   DATA (OB(240),H)0000, 0000, F0F0, 0010, 0010, 0010, 00D5 
   DATA (OB(256),H)0000, 0008, E0F1, 0002, 0002, 0002, 0055 
   DATA (OB(274),H)0000, 0010, E0F0, 2000, 3000, 3000, 30BF 
   DATA (OB(312),H)0000, 0018, F0F0, 0300, 0000, 0000, 00FF 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *RUNNING MSG 
   B13 = 31D                       *TEST NUMBER 
* 
22 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST----------------------------------
* 
30 B5 = 240                        *DATA POINTER
* 
   RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   GOSUB 64                        *WR RAFL REG LOOP
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/311D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/312D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
  
   BA = STOPCMR                    *STOP CENTRAL MEM RING 
   GOSUB 52 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B9 = 1                          *LOOP COUNTER
   BA = STEPCMR                    *STEP CENTRAL MEM RING 
32 GOSUB 52                        *STEP
* 
   MSG 5(B9, B11) TO DISPLAY       *LOOP MSG
* 
   IF(ES.AND.SL.NE.0)GOTO 34       *SKIP DATA COMPARE ON SL 
   GOSUB 60                        *INIT EXP ADDR AND DATA
   CALL 81A                        *READ THE REG LOOP AND 
   WC = 22                         *REFORMAT ACT DATA 
   ERROR 03/313D                   *COMPARE EXP/ACT DATA
* 
   COMPARE OB(200) TO IB(200) FOR WC , ABT 40 
* 
34 GOTO 32 WHILE(B9+1.LE.4)        *DO FOR 4 PACKETS
35 GOTO 30 WHILE(B10+1.LE.3)       *DO 4 TIMES
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 30       *SL
   CALL 31A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *READ GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
60 COPY OB(B5) TO OB(202) FOR 5    *INIT EXP ADDR/DATA
   B5 = B5 + 5
   COPY OB(B5) TO OB(210) FOR 9 
   B5 = B5 + 9
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 30
* 
77 END 20 
COMPILE   *DMA311 - MAIN TEST 
   MODULE DMA31A,6000(200),LOCK 
*         DMA31A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA31 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA31 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA31 - BIT STREAM DATA TEST
2  FORMAT DMA31 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA31 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA31 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA31 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA31 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA31 CM PACKET DATA ERROR
10 FORMAT DMA31 PMI OUT CNTRL  E   *H*H *H*H*H*H *H    HEX
11 FORMAT DMA31                A   *H*H *H*H*H*H *H    HEX
12 FORMAT DMA31 PMI OUT DATA   E   *H*H *H*H *H*H *H*H HEX
13 FORMAT DMA31                A   *H*H *H*H *H*H *H*H HEX
14 FORMAT DMA31 PMI OUT PARITY E   *H                  HEX
15 FORMAT DMA31                A   *H                  HEX
16 FORMAT DMA31 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA31 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA31 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA31 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX 
22 FORMAT DMA31 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX 
23 FORMAT DMA31 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX 
24 FORMAT DMA31 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX 
25 FORMAT DMA31 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX 
26 FORMAT DMA31 CMR RL   (512-543) *H*H*H*H         HEX 
27 FORMAT DMA31 PACKET NR *D/4
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 7 TO LINE 2
   MSG 10, 7 WORDS FROM OB(200) TO LINE 3 
   MSG 11, 7 WORDS FROM IB(200) TO LINE 4 
   MSG 12, 8 WORDS FROM OB(210) TO LINE 5 
   MSG 13, 8 WORDS FROM IB(210) TO LINE 6 
   MSG 14(OB(220))TO LINE 7 
   MSG 15(IB(220))TO LINE 10
   MSG 16, 8 WORDS FROM IB(000) TO LINE 11
   MSG 17, 8 WORDS FROM IB(010) TO LINE 12
   MSG 20, 8 WORDS FROM IB(020) TO LINE 13
   MSG 21, 8 WORDS FROM IB(030) TO LINE 14
   MSG 22, 8 WORDS FROM IB(040) TO LINE 15
   MSG 23, 8 WORDS FROM IB(050) TO LINE 16
   MSG 24, 8 WORDS FROM IB(060) TO LINE 17
   MSG 25, 8 WORDS FROM IB(070) TO LINE 20
   MSG 26, 4 WORDS FROM IB(100) TO LINE 21
   MSG 27(B9) TO LINE 22
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA31A - MSG PROCESSOR 
   MODULE DMA33,6000(200),LOCK
***       DMA33 - CMR READ PACKET TEST
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE ABILITY OF THE DMAU TO INITIATE A CENTRAL 
*         MEMORY READ OPERATION.  TESTS THE ABILITY OF THE PMI
*         TO DECODE A READ CM REQUEST AND TO GENERATE PACKETS 
*         ON THE CM RING WITH THE CORRECT CONTROL, ADDRESS, DATA, 
*         AND PARITY INFORMATION.  THE CM RING IS STEPPED AND THE 
*         PMI/CMRI OUTPUT REGISTER IS READ VIA RL2 AND VERIFIED.
*         A TOTAL OF 20 PACKETS ARE CHECKED, 5 GROUPS OF 4, WITH
*         EACH GROUP HAVING A DIFFERENT STARTING READ ADDRESS.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MESSAGE.
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         7. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         8. SEND A 6 CONTROL FUNCTION - STOP CM RING.
*         9  SEND A 6 CONTROL FUNCTION - 64 BIT MODE. 
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION.
*        17  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        18. READ REG LOOP 2 AND VERIFY THE PACKET DATA.
*        19. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        20. REPEAT STEPS 17 - 19 FOR 4 PACKETS.
*        21. GENERATE A NEW CM READ ADDRESS.
*        22. REPEAT STEPS 3 - 21 FIVE TIMES.
*        23. IF RM IS SELECTED, GO TO STEP 3. 
*        24. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        25. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA33 - CMR READ PACKET TEST 
*            // MODULE ERROR LIMIT - DMA33
*            DMA33 ERROR(S) IN MODULE = *DEC
*            DMA33 RUNNING  LC=*DEC, ERC=*DEC 
*            DMA33 - CMR READ PACKET TEST 
*            DMA33 NO RESPONSE ON CONNECT FCTN
*            DMA33 PACKET SENT = *H*H*H*HH
*            DMA33 RESPONSE ERROR ON CONNECT FCTN 
*            DMA33 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA33 GSW = *H*HH, DFR FLAG = 0
*            DMA33 CMR PACKET DATA ERROR
*            DMA33 PMI OUT CNTRL  E   *H*H *H*H*H*H *H    HEX 
*            DMA33                A   *H*H *H*H*H*H *H    HEX 
*            DMA33 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA33 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA33 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA33 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA33 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX
*            DMA33 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX
*            DMA33 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX
*            DMA33 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX
*            DMA33 CMR RL   (512-543) *H*H*H*H         HEX
*            DMA33 PACKET NR *D/40
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  = INPUT BUFFER POINTER
*         B5  = PACKET COUNTER
*         B6  = RA POINTER
*         B9  = MODULO 4 PACKET COUNTER 
*         B10 = MAIN LOOP COUNTER.
*         B11 = ERROR COUNTER 
*         B13 = MODULE RUNNING NUMBER.
*         OB(130-137) - EXPECTED READ PACKET DATA 
*         IB(000-103) - CMRI REG LOOP DATA
*         IB(000-003) - SRI RESPONSE
*         SB(000-001) - CRP GSW 
* 
* 
*   2.3   MODULES USED
* 
*         33A - ERROR PROCESSOR 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA33 - CMR READ PACKET TEST
3  FORMAT // MODULE ERROR LIMIT - DMA33 
4  FORMAT DMA33 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA33 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, STOPCMR=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34
   EQUATE WRADDU=70, WRADDL=64
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 9000, 08D1 
   DATA (OB(016),H)0004, 01D1, 3344, 02D1, 1122, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9800, 02D0, 4000, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0007, 07D1, 0000 
   DATA (OB(100),H)0000, 0000, FFFF, FFFF, E000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000 
   DATA (OB(130),H)40E8, 0000, 0000, 0000 
   DATA (OB(140),H)0000, 0000, 0000, 0000, FF00 
   DATA (OB(200),H)0000, 000E, E000, 0070, F000, 0078, E000 
   DATA (OB(216),H)0080, F000, 0088, 0000, 00FE, D000, 07F0 
   DATA (OB(234),H)C000, 07F8, D000, 0800, C000, 0808, 0000 
   DATA (OB(252),H)0FFE, D000, 7FF0, C000, 7FF8, D000, 8000 
   DATA (OB(270),H)C000, 8008, 0000, FFFE, B007, FFF0, A007 
   DATA (OB(306),H)FFF8, B008, 0000, A008, 0008, 000F, FFFE 
   DATA (OB(324),H)B07F, FFF0, A07F, FFF8, B080, 0000, A080 
   DATA (OB(342),H)0008 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *RUNNING MSG 
   B13 = 33D                       *TEST NUMBER 
* 
22 B10 = 1                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
24 B5 = 0                          *PACKET COUNTER
   B6 = 200                        *RD ADDR POINTER 
* 
* ------------------TEST----------------------------------
* 
30 RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250 
   OUT 2 WORDS FROM OB(CLRCRP)     *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   COPY OB(B6) TO OB(26) FOR 2     *RD ADDR UPPER 
   B6 = B6 + 2                     *INC RD ADDR POINTER 
   COPY OB(B6) TO OB(22) FOR 2     *RD ADDR LOWER 
   B6 = B6 + 2                     *INC RD ADDR POINTER 
* 
   GOSUB 64                        *WR RAFL REG LOOP
* 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/331D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/332D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = STOPCMR                    *STOP CENTRAL MEM RING 
   GOSUB 52 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *DID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *SID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B9 = 1                          *LOOP COUNTER
   BA = STEPCMR                    *STEP CENTRAL MEM RING 
32 GOSUB 52                        *STEP
* 
   MSG 5(B5, B11) TO DISPLAY       *LOOP MSG
* 
   GOSUB 60                        *READ CMR REG LOOP 
   WC = 7 
   B5 = B5 + 1                     *INC PACKET COUNT
   ERROR 03/333D                   *CK PMI/CMRI OUT REG ADDR
* 
   COMPARE OB(130) TO IB(64) FOR WC , ABT 40
* 
34 GOTO 32 WHILE(B9+1.LE.4)        *DO FOR 4 PACKETS
35 GOTO 30 WHILE(B10+1.LE.5)       *DO 5 TIMES (20 PACKETS) 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 24       *SL
   CALL 33A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
60 RES                             *RESERVE CHANNEL 
   B0 = 102                        *RD CMR I/O REG LOOP 
   FUNC 214                        *TO IB(0-103)
62 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 62 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0)
   COPY OB(B6) TO OB(132) FOR 4    *FROM OB(B6) 
   OB(136) = OB(132).AND.7760      *GET ADDR PARITY 
   OB(132) = OB(132).AND.0017      *MASK OFF PARITY 
   B6 = B6 + 4                     *INC EXP DATA POINTER
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 24
* 
77 END 20 
COMPILE   *DMA33 - CMR READ PACKET TEST 
   MODULE DMA33A,6000(200),LOCK 
*         DMA33A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA33 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA33 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA33 - CMR READ PACKET TEST
2  FORMAT DMA33 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA33 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA33 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA33 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA33 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA33 CMR PACKET DATA ERROR 
10 FORMAT DMA33 PMI OUT CNTRL  E   *H*H *H*H*H*H *H    HEX
11 FORMAT DMA33                A   *H*H *H*H*H*H *H    HEX
16 FORMAT DMA33 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA33 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA33 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA33 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX 
22 FORMAT DMA33 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX 
23 FORMAT DMA33 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX 
24 FORMAT DMA33 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX 
25 FORMAT DMA33 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX 
26 FORMAT DMA33 CMR RL   (512-543) *H*H*H*H         HEX 
27 FORMAT DMA33 PACKET NR *D/40 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 7 TO LINE 2
   MSG 10, 7 WORDS FROM OB(130) TO LINE 3 
   MSG 11, 7 WORDS FROM IB(064) TO LINE 4 
   MSG 16, 8 WORDS FROM IB(000) TO LINE 6 
   MSG 17, 8 WORDS FROM IB(010) TO LINE 7 
   MSG 20, 8 WORDS FROM IB(020) TO LINE 10
   MSG 21, 8 WORDS FROM IB(030) TO LINE 11
   MSG 22, 8 WORDS FROM IB(040) TO LINE 12
   MSG 23, 8 WORDS FROM IB(050) TO LINE 13
   MSG 24, 8 WORDS FROM IB(060) TO LINE 14
   MSG 25, 8 WORDS FROM IB(070) TO LINE 15
   MSG 26, 4 WORDS FROM IB(100) TO LINE 16
   MSG 27(B5) TO LINE 17
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA33A - MSG PROCESSOR 
   MODULE DMA35,6000(200),LOCK
***       DMA35 - PMI/CMI I/O REGISTER TEST 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE PMI/CMI INPUT AND OUTPUT REGISTERS ON THE CENTRAL 
*         MEMORY RING.  A PACKET OF ALL ONES IS STEPPED AROUND THE RING 
*         FROM THE PMI OUTPUT REGISTER, THROUGH THE CMI I/O REGISTERS,
*         AND BACK TO THE PMI INPUT REGISTER.  THE DATA IS READ AND 
*         VERIFIED AFTER EACH STEP VIA REGISTER LOOP 2. 
* 
*         CENTRAL MEMORY RING CABLES MUST BE CONNECTED TOGETHER 
*         IN A CLOSED LOOP WITH THE CMI IN THE RING.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MESSAGE 
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         7. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         8. SEND A 6 CONTROL FUNCTION - STOP CM RING.
*         9  SEND A 6 CONTROL FUNCTION - MODE SELECT
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION.
*        17  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        18. READ REG LOOP 2 AND VERIFY THE PACKET DATA.
*        19. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        20  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        21. READ REG LOOP 2 AND VERIFY THE PACKET DATA.
*        22. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        23  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        24. READ REG LOOP 2 AND VERIFY THE PACKET DATA.
*        25. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        26  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        27. READ REG LOOP 2 AND VERIFY THE PACKET DATA.
*        28. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        29. REPEAT STEPS 3 - 28 FOR 100 PACKETS
*        30. IF RM IS SELECTED, GO TO STEP 3. 
*        31. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        32. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA35 - PMI/CMI I/O REGISTER TEST
*            // MODULE ERROR LIMIT - DMA35
*            DMA35 ERROR(S) IN MODULE = *DEC
*            DMA35 LC=*DEC, ERC=*DEC
*            DMA35 CMR DATA ERROR ON STEP *D OF 04
*            DMA35        PMI INPUT REGISTER
*            DMA35 CMR RL A (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL E (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL A (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL E (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA35        CMI INPUT REGISTER
*            DMA35 CMR RL A (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL E (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL A (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL E (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL A (256-271) *H*H             HEX
*            DMA35 CMR RL E (256-271) *H*H             HEX
*            DMA35        CMI OUTPUT REGISTER 
*            DMA35 CMR RL A (272-335) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL E (272-335) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL A (336-399) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL E (336-399) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL A (400-415) *H*H             HEX
*            DMA35 CMR RL E (400-415) *H*H             HEX
*            DMA35        PMI OUTPUT REGISTER 
*            DMA35 CMR RL A (416-479) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL E (416-479) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL A (480-543) *H*H*H*H*H*H*H*H HEX
*            DMA35 CMR RL E (480-543) *H*H*H*H*H*H*H*H HEX
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE CLRCRP=00, ZEROS=02, ONES=04
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)4100, 0000, FFFF 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA35 - PMI/CMI I/O REGISTER TEST 
* 
* ------------------START---------------------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE 
* 
   RES
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   CALL 80A                        *DOWNLOAD PATTERN
* 
   EXIT TO 351                     *EXIT TO MAIN TEST 
   END 30 
COMPILE   *DMA35 - PMI/CMI I/O REGISTER TEST
   MODULE DMA351,6000(200),LOCK 
*         DMA351 - MAIN TEST
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA35 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
* 
*   2.1   ENTRY CONDITIONS
* 
*         HPM LOADED
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  = INPUT BUFFER POINTER
*         B10 = MAIN LOOP COUNTER.
*         B11 = ERROR COUNTER 
*         B13 = MODULE RUNNING NUMBER.
*         IB(000-103) - ACTUAL REG LOOP INPUT DATA
*         OB(146-251) - EXP REG LOOP DATA AFTER STEP 1
*         OB(254-357) - EXP REG LOOP DATA AFTER STEP 2
*         OB(322-425) - EXP REG LOOP DATA AFTER STEP 3
*         OB(112-215) - EXP REG LOOP DATA AFTER STEP 4
* 
* 
*   2.3   MODULES USED
* 
*         35A - MSG PROCESSOR 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA35 -    EXECUTING
3  FORMAT // MODULE ERROR LIMIT - DMA35 
4  FORMAT DMA35 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA35 LC=*DEC, EC=*DEC
6  FORMAT DMA35 CMR DATA ERROR ON STEP *D OF 04 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, STOPCMR=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34
   EQUATE WRADDU=56, WRADDL=52, RL1=66
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 9000, 08D1 
   DATA (OB(016),H)0001, 01D1, FFFF, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9800, 02D0, 4000, 4100, 0000, FFFF 
   DATA (OB(052),H)03D1, FFFF, 04D1, FFFF, 07D1, 0000 
   DATA (OB(066),H)0000, 0000, FFFF, FFFF, E000 
   DATA (OB(100),H)0000, 0000, 0000, 0000, 0000 
   DATA (OB(112),H)C0EC, 07FF, FFF8, 60FF, FFFF, FFFF, FFFF 
   DATA (OB(130),H)FFFF, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(146),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(164),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(202),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(220),H)0000, 0000, 0000, 0000, 0000, C0E8, 07FF 
   DATA (OB(236),H)FFF8, 60FF, FFFF, FFFF, FFFF, FFFF, 0000 
   DATA (OB(254),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(272),H)0000, C0E8, FFFF, 07C0, FFFF, FFE0, FFFF 
   DATA (OB(310),H)FFE0, FFFF, F8C0, 0000, 0000, 0000, 0000 
   DATA (OB(326),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(344),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(362),H)0000, C0EC, FFFF, 07C0, FFFF, FFE0, FFFF 
   DATA (OB(400),H)FFE0, FFFF, F8C0, 0000, 0000, 0000, 0000 
   DATA (OB(416),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *RUNNING MSG 
   B13 = 35D                       *TEST NUMBER 
* 
22 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST----------------------------------
* 
30 MSG 5(B10,B11)TO DISPLAY        *LOOP MSG
* 
   RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250 
   OUT 2 WORDS FROM OB(CLRCRP)     *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   GOSUB 64                        *WR RAFL REG LOOP
* 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
* 
   BA = STOPCMR                    *STOP CENTRAL MEM RING 
   GOSUB 52 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
* 
   BA = STEPCMR                    *STEP CENTRAL MEM RING 
   GOSUB 52 
   GOSUB 54                        *READ CMR REG LOOP 
   WC = 104                        *544 BITS
   ERROR 01/351D                   *COMPARE ACT AND EXP 
* 
   COMPARE OB(146) TO IB(0) FOR WC, ABT 40
* 
   GOSUB 52                        *STEP CENTRAL MEM RING 
   GOSUB 54                        *READ CMR REG LOOP 
   WC = 104                        *544 BITS
   ERROR 02/352D                   *COMPARE ACT AND EXP 
* 
   COMPARE OB(254) TO IB(0) FOR WC, ABT 40
* 
   GOSUB 52                        *STEP CENTRAL MEM RING 
   GOSUB 54                        *READ CMR REG LOOP 
   WC = 104                        *544 BITS
   ERROR 03/353D                   *COMPARE ACT AND EXP 
* 
   COMPARE OB(322) TO IB(0) FOR WC, ABT 40
* 
   GOSUB 52                        *STEP CENTRAL MEM RING 
   GOSUB 54                        *READ CMR REG LOOP 
   WC = 104                        *544 BITS
   ERROR 04/354D                   *COMPARE ACT AND EXP 
* 
   COMPARE OB(112) TO IB(0) FOR WC, ABT 40
* 
35 GOTO 30 WHILE(B10+1.LE.100)     *DO 100 TIMES
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 35       *SL
   MSG 6(EM) TO LINE 1
   CALL 35A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 RES                             *RESERVE CHANNEL 
   B0 = 102                        *RD CMR I/O REG LOOP 
   FUNC 214                        *TO IB(0-103)
56 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 56 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0)
   RETURN 
* 
64 B0 = 110                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.070) 
   OUT 2 WORDS FROM OB(066) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 35
* 
77 END 20 
COMPILE   *DMA351 - MAIN TEST 
   MODULE DMA35A,6000(200),LOCK 
*         DMA35A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA35 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA35 
* 
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA35        PMI OUTPUT REGISTER
1  FORMAT DMA35        CMI INPUT REGISTER 
2  FORMAT DMA35        CMI OUTPUT REGISTER
3  FORMAT DMA35 CMR RL A (000-063) *H*H*H*H*H*H*H*H HEX 
4  FORMAT DMA35 CMR RL E (000-063) *H*H*H*H*H*H*H*H HEX 
5  FORMAT DMA35 CMR RL A (064-127) *H*H*H*H*H*H*H*H HEX 
6  FORMAT DMA35 CMR RL E (064-127) *H*H*H*H*H*H*H*H HEX 
7  FORMAT DMA35 CMR RL A (128-191) *H*H*H*H*H*H*H*H HEX 
10 FORMAT DMA35 CMR RL E (128-191) *H*H*H*H*H*H*H*H HEX 
11 FORMAT DMA35 CMR RL A (192-255) *H*H*H*H*H*H*H*H HEX 
12 FORMAT DMA35 CMR RL E (192-255) *H*H*H*H*H*H*H*H HEX 
13 FORMAT DMA35 CMR RL A (256-271) *H*H             HEX 
14 FORMAT DMA35 CMR RL E (256-271) *H*H             HEX 
15 FORMAT DMA35 CMR RL A (272-335) *H*H*H*H*H*H*H*H HEX 
16 FORMAT DMA35 CMR RL E (272-335) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA35 CMR RL A (336-399) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA35 CMR RL E (336-399) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA35 CMR RL A (400-415) *H*H             HEX 
22 FORMAT DMA35 CMR RL E (400-415) *H*H             HEX 
23 FORMAT DMA35 CMR RL A (416-479) *H*H*H*H*H*H*H*H HEX 
24 FORMAT DMA35 CMR RL E (416-479) *H*H*H*H*H*H*H*H HEX 
25 FORMAT DMA35 CMR RL A (480-543) *H*H*H*H*H*H*H*H HEX 
26 FORMAT DMA35 CMR RL E (480-543) *H*H*H*H*H*H*H*H HEX 
27 FORMAT DMA35        PMI INPUT REGISTER 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
* 
31 MSG 04, 8 WORDS FROM OB(146) TO LINE 26
   MSG 06, 8 WORDS FROM OB(156) TO LINE 30
   MSG 10, 8 WORDS FROM OB(166) TO LINE 10
   MSG 12, 8 WORDS FROM OB(176) TO LINE 12
   MSG 14, 2 WORDS FROM OB(206) TO LINE 14
   MSG 16, 8 WORDS FROM OB(210) TO LINE 17
   MSG 20, 8 WORDS FROM OB(220) TO LINE 21
   MSG 22, 2 WORDS FROM OB(230) TO LINE 23
   MSG 24, 8 WORDS FROM OB(232) TO LINE 03
   MSG 26, 8 WORDS FROM OB(242) TO LINE 05
   GOTO 36
* 
32 MSG 04, 8 WORDS FROM OB(254) TO LINE 26
   MSG 06, 8 WORDS FROM OB(264) TO LINE 30
   MSG 10, 8 WORDS FROM OB(274) TO LINE 10
   MSG 12, 8 WORDS FROM OB(304) TO LINE 12
   MSG 14, 2 WORDS FROM OB(314) TO LINE 14
   MSG 16, 8 WORDS FROM OB(316) TO LINE 17
   MSG 20, 8 WORDS FROM OB(326) TO LINE 21
   MSG 22, 2 WORDS FROM OB(336) TO LINE 23
   MSG 24, 8 WORDS FROM OB(340) TO LINE 03
   MSG 26, 8 WORDS FROM OB(350) TO LINE 05
   GOTO 36
* 
33 MSG 04, 8 WORDS FROM OB(322) TO LINE 26
   MSG 06, 8 WORDS FROM OB(332) TO LINE 30
   MSG 10, 8 WORDS FROM OB(342) TO LINE 10
   MSG 12, 8 WORDS FROM OB(352) TO LINE 12
   MSG 14, 2 WORDS FROM OB(362) TO LINE 14
   MSG 16, 8 WORDS FROM OB(364) TO LINE 17
   MSG 20, 8 WORDS FROM OB(374) TO LINE 21
   MSG 22, 2 WORDS FROM OB(404) TO LINE 23
   MSG 24, 8 WORDS FROM OB(406) TO LINE 03
   MSG 26, 8 WORDS FROM OB(416) TO LINE 05
   GOTO 36
* 
34 MSG 04, 8 WORDS FROM OB(112) TO LINE 26
   MSG 06, 8 WORDS FROM OB(122) TO LINE 30
   MSG 10, 8 WORDS FROM OB(132) TO LINE 10
   MSG 12, 8 WORDS FROM OB(142) TO LINE 12
   MSG 14, 2 WORDS FROM OB(152) TO LINE 14
   MSG 16, 8 WORDS FROM OB(154) TO LINE 17
   MSG 20, 8 WORDS FROM OB(164) TO LINE 21
   MSG 22, 2 WORDS FROM OB(174) TO LINE 23
   MSG 24, 8 WORDS FROM OB(176) TO LINE 03
   MSG 26, 8 WORDS FROM OB(206) TO LINE 05
* 
36 MSG 03, 8 WORDS FROM IB(00) TO LINE 25 
   MSG 05, 8 WORDS FROM IB(10) TO LINE 27 
   MSG 07, 8 WORDS FROM IB(20) TO LINE 07 
   MSG 11, 8 WORDS FROM IB(30) TO LINE 11 
   MSG 13, 2 WORDS FROM IB(40) TO LINE 13 
   MSG 15, 8 WORDS FROM IB(42) TO LINE 16 
   MSG 17, 8 WORDS FROM IB(52) TO LINE 20 
   MSG 21, 2 WORDS FROM IB(62) TO LINE 22 
   MSG 23, 8 WORDS FROM IB(64) TO LINE 02 
   MSG 25, 8 WORDS FROM IB(74) TO LINE 04 
* 
40 MSG 0 TO LINE 1
   MSG 1 TO LINE 6
   MSG 2 TO LINE 15 
   MSG 27 TO LINE 24
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA35A - MSG PROCESSOR 
   MODULE DMA37,6000(200),LOCK
***       DMA37 - CM RING LOST PACKET TEST
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE ABILITY OF THE CMI TO DETECT A LOST PACKET ON 
*         THE CENTRAL MEMORY RING, AND THE ABILITY OF THE PMI TO
*         DETECT AND LATCH THE LOST PACKET IN ITS CENTRAL MEMORY RING 
*         INPUT REGISTER SHADOW.  ALSO TESTS THE CMR LOST PACKET BIT
*         IN THE SRI STATUS WORD.  A TOTAL OF 2 LOST PACKETS ARE SENT 
*         AND VERIFIED. 
* 
*         CENTRAL MEMORY RING CABLES MUST BE CONNECTED TOGETHER 
*         IN A CLOSED LOOP WITH THE CMI IN THE RING.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MESSAGE 
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         7. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         8  SEND A 6 CONTROL FUNCTION - MODE SELECT
*         9. SEND A 8 BLOCK COUNT FUNCTION. 
*        10. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        11. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        12. SEND A C SEND MEMORY PACKET FUNCTION.
*        13. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        14. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        15. SEND A C SEND MEMORY PACKET FUNCTION.
*        16. READ THE SRI STATUS AND VERIFY THE LP BIT SET
*        17. READ REG LOOP 2 AND VERIFY THE PACKET DATA.
*        18. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        19. REPEAT STEPS 3 - 18 FOR A NEW DATA PATTERN.
*        20. IF RM IS SELECTED, GO TO STEP 3. 
*        21. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        22. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA37 - CM RING LOST PACKET TEST 
*            DMA37   EXECUTING
*            // MODULE ERROR LIMIT - DMA37
*            DMA37 ERROR(S) IN MODULE = *DEC
*            DMA37 LOOPING  LC=*DEC 
*            DMA37 - CM RING LOST PACKET TEST 
*            DMA37 NO RESPONSE ON SRI STATUS REQ
*            DMA37 GSW = *H*HH, DFR FLAG = 0
*            DMA37 NO LOST PACKET DETECTED
*            DMA37 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA37 NO RESPONSE ON CONNECT REQUEST 
*            DMA37 LOST PACKET DATA ERROR 
*            DMA37 PMI IN CNTRL   E   *H*H *H*H*H*H *H    HEX 
*            DMA37                A   *H*H *H*H*H*H *H    HEX 
*            DMA37 PMI IN DATA    E   *H*H *H*H *H*H *H*H HEX 
*            DMA37                A   *H*H *H*H *H*H *H*H HEX 
*            DMA37 PMI IN PARITY  E   *H                  HEX 
*            DMA37                A   *H                  HEX 
*            DMA37 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA37 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA37 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA37 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA37 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX
*            DMA37 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX
*            DMA37 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX
*            DMA37 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX
*            DMA37 CMR RL   (512-543) *H*H*H*H         HEX
*            DMA37 RESPONSE ERROR ON CONNECT REQUEST
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE CLRCRP=00, ZEROS=02, ONES=04
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)4100, 0000, FFFF 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA37 - CM RING LOST PACKET TEST
* 
* ------------------START---------------------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE 
* 
   RES
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   CALL 80A                        *DOWNLOAD PATTERN
* 
   EXIT TO 371                     *EXIT TO MAIN TEST 
   END 30 
COMPILE   *DMA37 - CM RING LOST PACKET TEST 
   MODULE DMA371,6000(200),LOCK 
*         DMA371 - MAIN TEST
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA37 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         HPM LOADED
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B5  - EXPECTED DATA POINTER 
*         B9  - POINTER TO RA 
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B12 - POINTER TO RD ADDRESS 
*         B13 - MODULE RUNNING NUMBER.
*         B15 - PACKET COUNTER
*         OB(114-135) - EXPECTED LOST PACKET DATA 
*         IB(200-221) - ACTUAL LOST PACKET DATA 
*         SB(000-001) - CRP GSW 
*         IB(000-003) - SRI RESPONSE
* 
* 
*   2.3   SUBMODULES USED 
* 
*         37A - ERROR PROCESSOR 
* 
*         82A - CMR REG LOOP REFORMATTER
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA37 -    EXECUTING
3  FORMAT // MODULE ERROR LIMIT - DMA37 
4  FORMAT DMA37 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA37 LOOPING, LC=*DEC
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, BLKNT=14, RDADDL=20, CRES= 40, LPRES=10 
   EQUATE RDADDU=24, SENDMP=30, ENABLCM=34, SREQ=0
   EQUATE WRADDU=56, WRADDL=52, RL1=070 
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 02D0, 42C0, 08D1 
   DATA (OB(016),H)0001, 01D1, 0000, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 8000, 02D0, 4040, 4100, 0000, FFFF 
   DATA (OB(052),H)03D1, 0000, 04D1, 0000, 07D1, 0000 
   DATA (OB(070),H)0000, 0000, FFFF, FFFF, E000 
   DATA (OB(102),H)0000, 0000, 0000, 0000, 0000 
   DATA (OB(114),H)C0EC, 0000, 0000, F000 
   DATA (OB(124),H)0000, 0001, 0002, 0003, FF00 
   DATA (OB(140),H)FFFF, FFF0, F0FF, FFFF, FFFF, FFFF, FFFF 
   DATA (OB(156),H)0000, 0008, E000, 0000, 0000, 0000, 00FF 
   DATA (OB(230),H)FFFF, FFF0, 0000, 000F 
   DATA (OB(250),H)FFFF, 0000 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *RUNNING MSG 
   B13 = 37D                       *TEST NUMBER 
* 
22 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
24 B9 = 230                        *PNTR TO RA
   B12 = 250                       *PNTR TO RD ADDR 
   B5 = 140                        *PNTR TO EXP DATA
   B15 = 1                         *PACKET COUNTER
* 
* ------------------TEST----------------------------------
* 
30 MSG 5(B10) TO DISPLAY
* 
   RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250 
   OUT 2 WORDS FROM OB(CLRCRP)     *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   COPY OB(B9) TO OB(70) FOR 4     *LOAD RA 
   B9 = B9 + 4
   COPY OB(B12) TO OB(22) FOR 2    *LOAD RD ADDR
   B12 = B12 + 2
* 
   GOSUB 64                        *WR RAFL REG LOOP
* 
   BA = ENABLCM                    *ENABLE CM REFS
   GOSUB 52 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/371D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/372D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = SREQ                       *RQST SRI STATUS 
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 03/373D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 04/374D                   *CHK FOR LP RESPONSE 
* 
   COMPARE OB(LPRES) TO IB(0) FOR WC , ABT 40 
* 
   IF(ES.AND.SL.NE.0)GOTO 34       *SKIP DATA COMPARE ON SL 
   GOSUB 60                        *INIT EXP DATA 
   CALL 82A                        *READ THE REG LOOP AND 
   WC = 22                         *REFORMAT ACT DATA 
   ERROR 05/375D                   *COMPARE EXP/ACT DATA
* 
   COMPARE OB(114) TO IB(200) FOR WC , ABT 40 
* 
34 GOTO 30 WHILE(B15+1.LE.2)       *DO 2 PACKETS
35 GOTO 24 WHILE(B10+1.LE.10)      *DO 10 TIMES 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   GOTO 77                         *END OF TEST SERIES
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 35       *SL
   CALL 37A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *READ GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
60 COPY OB(B5) TO OB(116) FOR 5    *GET EXPECTED DATA 
   B5 = B5 + 5                     *TO COMPARE BUFFER 
   COPY OB(B5) TO OB(124) FOR 9 
   B5 = B5 + 9
   RETURN 
* 
64 B0 = 112                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.072) 
   OUT 2 WORDS FROM OB(070) 
   RETURN 
* 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 22
* 
77 END 20 
COMPILE   *DMA371 - MAIN TEST 
   MODULE DMA37A,6000(200),LOCK 
*         DMA37A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA37 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA37 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA37 - CM RING LOST PACKET TEST
2  FORMAT DMA37 NO RESPONSE ON SRI STATUS REQ 
3  FORMAT DMA37 GSW = *H*HH, DFR FLAG = 0 
4  FORMAT DMA37 NO LOST PACKET DETECTED 
5  FORMAT DMA37 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA37 NO RESPONSE ON CONNECT REQUEST
7  FORMAT DMA37 LOST PACKET DATA ERROR
10 FORMAT DMA37 PMI IN CNTRL   E   *H*H *H*H*H*H *H    HEX
11 FORMAT DMA37                A   *H*H *H*H*H*H *H    HEX
12 FORMAT DMA37 PMI IN DATA    E   *H*H *H*H *H*H *H*H HEX
13 FORMAT DMA37                A   *H*H *H*H *H*H *H*H HEX
14 FORMAT DMA37 PMI IN PARITY  E   *H                  HEX
15 FORMAT DMA37                A   *H                  HEX
16 FORMAT DMA37 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA37 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA37 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA37 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX 
22 FORMAT DMA37 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX 
23 FORMAT DMA37 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX 
24 FORMAT DMA37 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX 
25 FORMAT DMA37 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX 
26 FORMAT DMA37 CMR RL   (512-543) *H*H*H*H         HEX 
27 FORMAT DMA37 RESPONSE ERROR ON CONNECT REQUEST 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40, LPRES = 10 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
   IF(EM.EQ.5)GOTO 35 
* 
31 MSG 6 TO LINE 2
   MSG 3, 2 WORDS FROM SB(0) TO LINE 3
   GOTO 40
* 
32 MSG 27 TO LINE 2 
   COPY OB(CRES) TO IB(150) FOR 4 
   COPY IB(0) TO IB(154) FOR 4
   MSG 5, 8 WORDS FROM IB(150) TO LINE 3
   GOTO 40
* 
33 MSG 2 TO LINE 2
   MSG 3, 2 WORDS FROM SB(0) TO LINE 3
   GOTO 40
* 
34 MSG 4 TO LINE 2
   COPY OB(LPRES) TO IB(150) FOR 4
   COPY IB(0) TO IB(154) FOR 4
   MSG 5, 8 WORDS FROM IB(150) TO LINE 3
   GOTO 40
* 
35 MSG 7 TO LINE 2
   MSG 10, 7 WORDS FROM OB(114) TO LINE 3 
   MSG 11, 7 WORDS FROM IB(200) TO LINE 4 
   MSG 12, 8 WORDS FROM OB(124) TO LINE 5 
   MSG 13, 8 WORDS FROM IB(210) TO LINE 6 
   MSG 14(OB(134))TO LINE 7 
   MSG 15(IB(220))TO LINE 10
   MSG 16, 8 WORDS FROM IB(000) TO LINE 11
   MSG 17, 8 WORDS FROM IB(010) TO LINE 12
   MSG 20, 8 WORDS FROM IB(020) TO LINE 13
   MSG 21, 8 WORDS FROM IB(030) TO LINE 14
   MSG 22, 8 WORDS FROM IB(040) TO LINE 15
   MSG 23, 8 WORDS FROM IB(050) TO LINE 16
   MSG 24, 8 WORDS FROM IB(060) TO LINE 17
   MSG 25, 8 WORDS FROM IB(070) TO LINE 20
   MSG 26, 4 WORDS FROM IB(100) TO LINE 21
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA37A - MSG PROCESSOR 
   MODULE DMA39,6000(200),LOCK
***       DMA39 - WRITE XFER COMPLETE LOOPBACK TEST 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE ABILITY OF THE PMI TO DETECT AN END OF TRANSFER 
*         CONDITION ON A WRITE CENTRAL MEMORY OPERATION.  THIS TEST 
*         REQUIRES THAT THE CMI BE INSTALLED ON THE CENTRAL MEMORY
*         RING AND THAT THE CENTRAL MEMORY INTERFACE BE MODIFIED SO THAT
*         A WRITE ACKNOWLEDGE IS RETURNED FOR EVERY WRITE REQUEST.
*         ALL BLOCK COUNTS FROM 1 TO FFFF HEX ARE VERIFIED. 
*         THE STARTING BLOCK COUNT CAN BE SPECIFIED IN PARAMETER P1.
*         LOOPING ON A PARTICULAR BLOCK COUNT IS POSSIBLE BY SPECIFYING 
*         THE BLOCK COUNT IN P1 AND SETTING SCOPE LOOP. 
*         THE DATA TRANSLATION MODE CAN BE SPECIFIED IN P1, DEFAULT IS
*         BIT STREAM. 
* 
* 
*         **************************************************************
*         * WARNING: THIS MODULE MAY CAUSE A SYSTEM CRASH IF EXECUTED  *
*         *          WITH CENTRAL MEMORY CONNECTED TO THE CMI.         *
*         **************************************************************
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. INITIALIZE THE ERROR COUNTER.
*         4. DISPLAY THE LOOP MESSAGE 
*         5. INITILIZE THE BLOCK COUNT AND DATA MODE. 
*         6. RESET ALL HPP'S
*         7. CLEAR THE CRP AND DMAU 
*         8  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         9. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*        10  SEND A 6 CONTROL FUNCTION - MODE.
*        11. SEND A 8 BLOCK COUNT FUNCTION. 
*        12. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        13. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        14. SEND A C SEND MEMORY PACKET FUNCTION.
*        15. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        16. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        17. SEND A C SEND MEMORY PACKET FUNCTION.
*        18. WAIT 
*        19. READ THE SRI STATUS AND VERIFY AN END OF TRANSFER. 
*        20. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 4. 
*        21. INCREMENT THE BLOCK COUNT
*        22. REPEAT STEPS 9-21 FOR BLOCK COUNTS 1 - FFFF. 
*        23. IF RM IS SELECTED, GO TO STEP 3. 
*        24. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        25. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA39 - WRITE XFER COMPLETE LOOPBACK TEST
*            // MODULE ERROR LIMIT - DMA39
*            DMA39 ERROR(S) IN MODULE = *DEC
*            DMA39 LC=*DEC, ERC=*DEC
*            DMA39 - WRITE XFER COMPLETE LOOPBACK TEST
*            DMA39 NO RESPONSE ON CONNECT FCTN
*            DMA39 PACKET SENT = *H*H*H*HH
*            DMA39 RESPONSE ERROR ON CONNECT FCTN 
*            DMA39 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA39 GSW = *H*HH, DFR FLAG = 0
*            DMA39 ------CENTRAL MEMORY RING RL---------
*            DMA39 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX 
*            DMA39 PMI IN DATA        *H*H *H*H *H*H *H*H HEX 
*            DMA39 PMI IN DATA PARITY *H                  HEX 
*            DMA39 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA39 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA39 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA39 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA39 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX
*            DMA39 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX
*            DMA39 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX
*            DMA39 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX
*            DMA39 CMR RL   (512-543) *H*H*H*H         HEX
*            DMA39 XFER COMPLETE RESP ERROR, BLKCNT=*H*H H
*            DMA39 NO XFER COMPLETE RESP RCVD, BLKCNT=*H*H H
*            DMA39 SRI STATUS = *H*H  HEX 
*            DMA39 NO RESPONSE ON SRI STATUS REQUEST
* 
* 
*   1.4   PARAMETERS
* 
*         P0 = DATA TRANSLATION MODE - DEFAULTS TO BIT STREAM 
* 
*            01 HEX - LEFT JUSTIFIED
*            02 HEX - RIGHT JUSTIFIED 
*            03 HEX - BITSTREAM 
* 
*         P1 = BLOCK COUNT - 12 BITS (001-FFF HEX)
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B8  - DELAY BUFFER
*         B9  - MSB BLOCK COUNTER 
*         B10 - LSB BLOCK COUNTER.
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         SB(0 - 1) - CRP GSW 
*         IB(0 - 3) - SRI STATUS
* 
* 
*   2.3   MODULES USED
* 
*         39A - ERROR PROCESSOR 
* 
*         82A - CMRI REG LOOP REFORMATTER 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA39 - WRITE XFER COMPLETE LOOPBACK TEST 
3  FORMAT // MODULE ERROR LIMIT - DMA39 
4  FORMAT DMA39 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA39 BLKCNT=*H*H HEX, ERC=*DEC DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=05, CLRCRP=44, ZEROS=46, ONES=50, SREQ=0 
   EQUATE CONN=4, ENABLCM=10, BLKNT=14, RDADDL=20, CRES=40
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34, XFERC=124 
   EQUATE WRADDU=70, WRADDL=64, RL1=100, RL2=200
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 8300, 08D1 
   DATA (OB(016),H)1000, 01D1, 0000, 02D1, 0000, 0CD1, 8000 
   DATA (OB(034),H)06D1, 9B00, 02D0, 4040, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0000, 07D1, C000 
   DATA (OB(100),H)005F, C080, FFFF, FFFF, F000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000, 02D0, 60C0 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE 
   B13 = 39D                       *TEST NUMBER 
   B11 = 0                         *CLEAR ERROR CNTR
* 
22 B10 = 1                         *INIT BLOCK COUNTERS 
   B9 = 0 
27 IF(P0.EQ.0)GOTO 30              *CHECK FOR USER MODE 
   OB(12) = P0.AND.0003.OR.0200 
30 IF(P1.EQ.0)GOTO 31              *AND BLK COUNT 
   B10 = P1.AND.0377
   B9 = P1.AND.7400.RS.8
* 
* ------------------TEST LOOP-----------------------------
* 
31 RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250 
   OUT 2 WORDS FROM OB(CLRCRP)     *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   GOSUB 64                        *WR RAFL REG LOOP
* 
   BA = ENABLCM                    *ENABLE CM REFS
   GOSUB 52 
32 MSG 5(B9,B10,B11) TO DISPLAY    *LOOPING MSG 
* 
   OB(16) = B9                     *INIT BLCK COUNT 
   OB(17) = B10 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/391D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/392D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B8 = 0                          *INIT TIME-OUT CNTR
33 GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.2)GOTO 34    *CHK FOR RESPONSE
   B8 = B8 + 1
   IF(B8.GT.7777)ERROR 03/393D GOTO 40
   GOTO 33
* 
34 GOSUB 56                        *READ CF/DF
   ERROR 04/394D                   *CHK FOR XFER COMPLETE 
* 
   COMPARE OB(XFERC) TO IB(0) FOR WC , ABT 40 
   IF(ES.AND.SL.NE.0)GOTO 22
* 
35 GOTO 32 WHILE(B10+1.LE.377)     *DO 256 TIMES
   B10 = 0
   GOTO 32 WHILE(B9+1.LE.377)      *DO 256 TIMES
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   ENDSUB 
   IF(ES.AND.SL.NE.0)GOTO 22       *SL
   B11 = EM                        *SAVE EM THRU CALL 
   CALL 82A 
   CALL 39A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   IF(P1.NE.0)GOTO 32 
   GOTO 35
* 
77 END 20 
COMPILE   *DMA39 - WRITE XFER COMPLETE LOOPBACK TEST
   MODULE DMA39A,6000(200),LOCK 
*         DMA39A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA39 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA39 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA39 - WRITE XFER COMPLETE LOOPBACK TEST 
2  FORMAT DMA39 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA39 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA39 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA39 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA39 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA39 ------CENTRAL MEMORY RING RL--------- 
10 FORMAT DMA39 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX
11 FORMAT DMA39 PMI IN DATA        *H*H *H*H *H*H *H*H HEX
12 FORMAT DMA39 PMI IN DATA PARITY *H                  HEX
13 FORMAT DMA39 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX 
14 FORMAT DMA39 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX 
15 FORMAT DMA39 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX 
16 FORMAT DMA39 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA39 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA39 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA39 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX 
22 FORMAT DMA39 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX 
23 FORMAT DMA39 CMR RL   (512-543) *H*H*H*H         HEX 
24 FORMAT DMA39 XFER COMPLETE RESP. ERROR, BLKCNT=*H*H H
25 FORMAT DMA39 NO XFER COMPLETE RESP. RCVD, BLKCNT=*H*H H
26 FORMAT DMA39 SRI STATUS = *H*H  HEX
27 FORMAT DMA39 NO RESPONSE ON SRI STATUS REQUEST 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40, XFERC = 124, SREQ = 0
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 OB(400) = B9 
   OB(401) = B10
   IF(B11.EQ.2)GOTO 32
   IF(B11.EQ.3)GOTO 33
   IF(B11.EQ.4)GOTO 34
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 25, 2 WORDS FROM OB(400)TO LINE 2
   MSG 6, 2 WORDS FROM SB(0) TO LINE 3
   BA = SREQ                       *
   GOSUB 52                        *REQST SRI STATUS
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)GOTO 44    *NO RESPONSE 
   GOSUB 56                        *READ CF/DF
   MSG 26, 2 WORDS FROM IB(302) TO LINE 4 
   GOTO 36
* 
34 MSG 24, 2 WORDS FROM OB(400)TO LINE 2
   COPY OB(XFERC) TO OB(200) FOR 4
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
* 
36 MSG 7 TO LINE 6
   MSG 10, 7 WORDS FROM IB(200) TO LINE 7 
   MSG 11, 8 WORDS FROM IB(210) TO LINE 10
   MSG 12(IB(220))TO LINE 11
   MSG 13, 8 WORDS FROM IB(000) TO LINE 12
   MSG 14, 8 WORDS FROM IB(010) TO LINE 13
   MSG 15, 8 WORDS FROM IB(020) TO LINE 14
   MSG 16, 8 WORDS FROM IB(030) TO LINE 15
   MSG 17, 8 WORDS FROM IB(040) TO LINE 16
   MSG 20, 8 WORDS FROM IB(050) TO LINE 17
   MSG 21, 8 WORDS FROM IB(060) TO LINE 20
   MSG 22, 8 WORDS FROM IB(070) TO LINE 21
   MSG 23, 4 WORDS FROM IB(100) TO LINE 22
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
44 MSG 27 TO LINE 4 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 5
   GOTO 36
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(302)
   IN 2 WORDS TO IB(300)
   RETURN 
* 
77 END 30 
COMPILE   *DMA39A - MSG PROCESSOR 
   MODULE DMA41,6000(200),LOCK
***       DMA41 - CMI WRITE DATA LOOPBACK TEST
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE ABILITY OF THE CMI TO PASS DATA ON A CENTRAL
*         MEMORY WRITE REQUEST WHEN THE CENTRAL MEMORY I/F CABLES 
*         ARE CONFIGURED IN SUCH A WAY AS TO LOOP BACK WRITE DATA 
*         AND RETURN A WRITE ACKNOWLEDGE FOR EVERY WRITE REQUEST. 
*         PACKETS OF ALL F'S, 0'S, 5'S, AND A'S ARE STEPPED AROUND THE
*         CM RING, THROUGH THE CMI, AROUND THE CM INTERFACE CABLES, 
*         BACK THROUGH THE CMI, ONTO THE CM RING, AND BACK TO THE PMI 
*         INPUT REGISTER WHERE THEY ARE CHECKED VIA THE REGISTER LOOP.
* 
*         **************************************************************
*         * WARNING: THIS MODULE MAY CAUSE A SYSTEM CRASH IF EXECUTED  *
*         *          WITH CENTRAL MEMORY CONNECTED TO THE CMI.         *
*         **************************************************************
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE REPEAT CONDITION MSG IF SL IS SELECTED.
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6. INITIALIZE THE HPM READ ADDRESS. 
*         7  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         8. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         9. SEND A 6 CONTROL FUNCTION - STOP CM RING.
*        10  SEND A 6 CONTROL FUNCTION - 64 BIT MODE
*        11. SEND A 8 BLOCK COUNT FUNCTION. 
*        12. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        13. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        14. SEND A C SEND MEMORY PACKET FUNCTION.
*        15. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        16. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        17. SEND A C SEND MEMORY PACKET FUNCTION.
*        18  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        19  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        20  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        21  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        22  SEND A 6 CONTROL FUNCTION - STEP CM RING.
*        23. READ REG LOOP 2 AND VERIFY THE PACKET DATA.
*        24. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        25. REPEAT STEPS 3 - 24 FOR 1'S, 0'S, 5'S, AND A'S.
*        26. REPEAT STEPS 3 - 25 TEN TIMES. 
*        27. IF RM IS SELECTED, GO TO STEP 3. 
*        28. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        29. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA41 - CMI WRITE DATA LOOPBACK TEST 
*            // MODULE ERROR LIMIT - DMA41
*            DMA41 ERROR(S) IN MODULE = *DEC
*            DMA41 LOOPING, LC=*DEC 
*            DMA41 - CMI WRITE DATA LOOPBACK TEST 
*            DMA41 NO RESPONSE ON CONNECT FCTN
*            DMA41 PACKET SENT = *H*H*H*HH
*            DMA41 RESPONSE ERROR ON CONNECT FCTN 
*            DMA41 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA41 GSW = *H*HH, DFR FLAG = 0
*            DMA41 CM PACKET DATA ERROR 
*            DMA41 PMI IN CNTRL   E   *H*H *H*H*H*H *H    HEX 
*            DMA41                A   *H*H *H*H*H*H *H    HEX 
*            DMA41 PMI IN DATA    E   *H*H *H*H *H*H *H*H HEX 
*            DMA41                A   *H*H *H*H *H*H *H*H HEX 
*            DMA41 PMI IN PARITY  E   *H                  HEX 
*            DMA41                A   *H                  HEX 
*            DMA41 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA41 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA41 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA41 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA41 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX
*            DMA41 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX
*            DMA41 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX
*            DMA41 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX
*            DMA41 CMR RL   (512-543) *H*H*H*H         HEX
*            DMA41 PACKET NR *D/4 
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE CLRCRP=00, ZEROS=02, ONES=04
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)4100, 0000, FFFF 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA41 - CMI WRITE DATA LOOPBACK TEST
* 
* ------------------START---------------------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE 
* 
   RES
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   CALL 80A                        *DOWNLOAD PATTERN
* 
   EXIT TO 411                     *EXIT TO MAIN TEST 
   END 30 
COMPILE   *DMA41 - CMI WRITE DATA LOOPBACK TEST 
   MODULE DMA411,6000(200),LOCK 
*         DMA411 - MAIN TEST
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA41 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         HPM LOADED
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B5  - EXPECTED DATA POINTER 
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B12 - READ ADDRESS POINTER
*         B13 - MODULE RUNNING NUMBER.
*         B15 - PACKET COUNTER
*         IB(200-221) - ACTUAL PACKET DATA
*         OB(114-135) - EXPECTED PACKET DATA
* 
* 
*   2.3   MODULES USED
* 
*         41A - ERROR PROCESSOR 
* 
*         82A - CMR REG LOOP REFORMATTER
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA41 -    EXECUTING
3  FORMAT // MODULE ERROR LIMIT - DMA41 
4  FORMAT DMA41 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA41 LOOPING, LC=*DEC
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, STOPCMR=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34
   EQUATE WRADDU=56, WRADDL=52, RL1=070 
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 9000, 08D1 
   DATA (OB(016),H)0001, 01D1, 0000, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9800, 02D0, 4000, 4100, 0000, FFFF 
   DATA (OB(052),H)03D1, 0000, 04D1, 0000, 07D1, 0000 
   DATA (OB(070),H)005F, C080, 005F, E100, F000 
   DATA (OB(102),H)0000, 0000, 0000, 0000, 0000 
   DATA (OB(114),H)2008, 0000, 0000, F000 
   DATA (OB(124),H)0000, 0001, 0002, 0003, FF00 
   DATA (OB(140),H)0000, 0000, 0000, 0000 
   DATA (OB(150),H)FFFF, FFFF, FFFF, FFFF 
   DATA (OB(160),H)5555, 5555, 5555, 5555 
   DATA (OB(170),H)AAAA, AAAA, AAAA, AAAA 
   DATA (OB(200),H)0000, FFFF, 5555, AAAA 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *RUNNING MSG 
   B13 = 41D                       *TEST NUMBER 
* 
22 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
24 B12 = 200                       *PNTR TO RD ADDR 
   B5 = 140                        *PNTR TO EXP DATA
   B15 = 0                         *PACKET COUNTER
* 
* ------------------TEST----------------------------------
* 
30 MSG 5(B10)TO DISPLAY 
* 
   RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   COPY OB(B12) TO OB(22) FOR 2    *LOAD RD ADDR
   B12 = B12 + 2
* 
   GOSUB 64                        *WR RAFL REG LOOP
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   BA = STOPCMR                    *STOP CENTRAL MEM RING 
   GOSUB 52 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = STEPCMR                    *STEP CENTRAL MEM RING 
32 GOSUB 52                        *STEP
   GOSUB 52                        *STEP
   GOSUB 52                        *STEP
   GOSUB 52                        *STEP
   GOSUB 52                        *STEP
* 
   IF(ES.AND.SL.NE.0)GOTO 34       *SKIP DATA COMPARE ON SL 
   GOSUB 60                        *INIT EXP DATA 
   CALL 82A                        *READ THE REG LOOP AND 
   WC = 22                         *REFORMAT ACT DATA 
   ERROR 01/411D                   *COMPARE EXP/ACT DATA
* 
   COMPARE OB(114) TO IB(200) FOR WC , ABT 40 
* 
34 GOTO 30 WHILE(B15+1.LE.3)       *DO 4 PACKETS, 1'S, 0'S, 5'S, A'S
35 GOTO 24 WHILE(B10+1.LE.10)      *DO 10 TIMES 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT                            *EXIT TO NEXT TEST 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 35       *SL
   CALL 41A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
60 COPY OB(B5) TO OB(124) FOR 8    *MOVE EXP DATA TO
   B5 = B5 + 8                     *COMPARE BUFFER
   RETURN 
* 
64 RES
   B0 = 112                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.072) 
   OUT 2 WORDS FROM OB(070) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 35
* 
77 END 20 
COMPILE   *DMA411 - MAIN TEST 
   MODULE DMA41A,6000(200),LOCK 
*         DMA41A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA41 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA41 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA41 - CMI WRITE DATA LOOPBACK TEST
2  FORMAT DMA41 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA41 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA41 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA41 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA41 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA41 CM PACKET DATA ERROR
10 FORMAT DMA41 PMI IN CNTRL   E   *H*H *H*H*H*H *H    HEX
11 FORMAT DMA41                A   *H*H *H*H*H*H *H    HEX
12 FORMAT DMA41 PMI IN DATA    E   *H*H *H*H *H*H *H*H HEX
13 FORMAT DMA41                A   *H*H *H*H *H*H *H*H HEX
14 FORMAT DMA41 PMI IN PARITY  E   *H                  HEX
15 FORMAT DMA41                A   *H                  HEX
16 FORMAT DMA41 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA41 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA41 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA41 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX 
22 FORMAT DMA41 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX 
23 FORMAT DMA41 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX 
24 FORMAT DMA41 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX 
25 FORMAT DMA41 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX 
26 FORMAT DMA41 CMR RL   (512-543) *H*H*H*H         HEX 
27 FORMAT DMA41 PACKET NR *D/04 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0) GOTO 31
   GOSUB 56                        *READ CF/DF
   WC = 4 
   COMPARE OB(CRES) TO IB(300) FOR WC , ABT 32
   GOTO 33
* 
31 MSG 2 TO LINE 2
   MSG 6, 2 WORDS FROM SB(0) TO LINE 3
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO IB(400) FOR 4 
   COPY IB(300) TO IB(404) FOR 4
   MSG 5, 8 WORDS FROM IB(400) TO LINE 3
   GOTO 40
* 
33 MSG 7 TO LINE 2
   MSG 10, 7 WORDS FROM OB(114) TO LINE 3 
   MSG 11, 7 WORDS FROM IB(200) TO LINE 4 
   MSG 12, 8 WORDS FROM OB(124) TO LINE 5 
   MSG 13, 8 WORDS FROM IB(210) TO LINE 6 
   MSG 14(OB(134))TO LINE 7 
   MSG 15(IB(220))TO LINE 10
   MSG 16, 8 WORDS FROM IB(000) TO LINE 11
   MSG 17, 8 WORDS FROM IB(010) TO LINE 12
   MSG 20, 8 WORDS FROM IB(020) TO LINE 13
   MSG 21, 8 WORDS FROM IB(030) TO LINE 14
   MSG 22, 8 WORDS FROM IB(040) TO LINE 15
   MSG 23, 8 WORDS FROM IB(050) TO LINE 16
   MSG 24, 8 WORDS FROM IB(060) TO LINE 17
   MSG 25, 8 WORDS FROM IB(070) TO LINE 20
   MSG 26, 4 WORDS FROM IB(100) TO LINE 21
   B7=B15+1 
   MSG 27(B7) TO LINE 22
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
* ------------------ SUBROUTINES -------------------
* 
54 RES
   FUNC 200                        *READ GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 RES
   FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(302)
   IN 2 WORDS TO IB(300)
   RETURN 
* 
77 END 30 
COMPILE   *DMA41A - MSG PROCESSOR 
   MODULE DMA43,6000(200),LOCK
***       DMA43 - READ XFER COMPLETE LOOPBACK TEST
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE ABILITY OF THE PMI TO DETECT AN END OF TRANSFER 
*         CONDITION ON A READ CENTRAL MEMORY OPERATION.  THIS TEST
*         REQUIRES THAT THE CMI BE INSTALLED ON THE CENTRAL MEMORY
*         RING AND THAT THE CENTRAL MEMORY INTERFACE BE MODIFIED SO THAT
*         A READ ACKNOWLEDGE IS RETURNED FOR EVERY READ REQUEST.
*         64K TRANSFERS ARE EXECUTED WITH BLOCK COUNTS FROM 1 TO FFFF HEX.
*         THE NUMBER OF WORDS TRANSFERRED CAN BE SPECIFIED IN PARAMETER 
*         P1, IN WHICH CASE THE MODULE WILL PERFORM 64K TRANSFERS USING 
*         THE SPECIFIED BLOCK COUNT.  THE DATA TRANSLATION MODE CAN BE
*         SPECIFIED IN P0, THE DEFAULT IS BIT STREAM.  THE DATA 
*         CAN BE VERIFIED BY INTERROGATING HPM LOCATIONS STARTING AT
*         10000 HEX.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. INITIALIZE THE ERROR COUNTER.
*         4. DISPLAY THE LOOP MESSAGE 
*         5. INITILIZE THE BLOCK COUNT AND DATA MODE. 
*         6. RESET ALL HPP'S
*         7. CLEAR THE CRP AND DMAU 
*         8  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         9. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*        10  SEND A 6 CONTROL FUNCTION - MODE 
*        11. SEND A 8 BLOCK COUNT FUNCTION. 
*        12. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        13. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        14. SEND A C SEND MEMORY PACKET FUNCTION.
*        15. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        16. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        17. SEND A C SEND MEMORY PACKET FUNCTION.
*        18. WAIT 
*        19. READ THE SRI STATUS AND VERIFY AN END OF TRANSFER. 
*        20. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 4. 
*        21. INCREMENT THE BLOCK COUNT
*        22. REPEAT STEPS 9-21 FOR BLOCK COUNTS 1 - FFFF. 
*        23. IF RM IS SELECTED, GO TO STEP 3. 
*        24. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        25. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA43 - READ XFER COMPLETE LOOPBACK TEST 
*            // MODULE ERROR LIMIT - DMA43
*            DMA43 ERROR(S) IN MODULE = *DEC
*            DMA43 LC=*DEC, ERC=*DEC
*            DMA43 - READ XFER COMPLETE LOOPBACK TEST 
*            DMA43 NO RESPONSE ON CONNECT FCTN
*            DMA43 PACKET SENT = *H*H*H*HH
*            DMA43 RESPONSE ERROR ON CONNECT FCTN 
*            DMA43 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA43 GSW = *H*HH, DFR FLAG = 0
*            DMA43 ------CENTRAL MEMORY RING RL---------
*            DMA43 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX 
*            DMA43 PMI IN DATA        *H*H *H*H *H*H *H*H HEX 
*            DMA43 PMI IN DATA PARITY *H                  HEX 
*            DMA43 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA43 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA43 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA43 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA43 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX
*            DMA43 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX
*            DMA43 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX
*            DMA43 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX
*            DMA43 CMR RL   (512-543) *H*H*H*H         HEX
*            DMA43 TRANSFER COMPLETE RESPONSE ERROR 
*            DMA43 NO TRANSFER COMPLETE RESPONSE RCVD 
*            DMA43 SRI STATUS = *H*H  HEX 
*            DMA43 NO RESPONSE ON SRI STATUS REQUEST
* 
* 
*   1.4   PARAMETERS
* 
*         P0 = DATA TRANSLATION MODE
* 
*            01 - HEX LEFT JUSTIFIED
*            02 - HEX RIGHT JUSTIFED
*            03 - HEX BITSTREAM 
* 
*         P1 = BLOCK COUNT - 12 BITS (001-FFF HEX)
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT/OUTPUT BUFFER POINTER 
*         B8  - DELAY BUFFER
*         B9  - MSB BLOCK COUNTER 
*         B10 - LSB BLOCK COUNTER.
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         IB(0 - 3) - SRI RESPONSE
*         SB(0 - 1) - CRP GSW 
* 
* 
* 
*   2.3   MODULES USED
* 
*         43A - ERROR PROCESSOR 
* 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA43 - READ XFER COMPLETE LOOPBACK TEST
3  FORMAT // MODULE ERROR LIMIT - DMA43 
4  FORMAT DMA43 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA43 BLKCNT=*H*H HEX, ERC=*DEC DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, ENABLCM=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34, XFERC=124 
   EQUATE WRADDU=70, WRADDL=64, RL1=100 
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 8300, 08D1 
   DATA (OB(016),H)0100, 01D1, 0000, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9B00, 02D0, 4040, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0001, 07D1, C000 
   DATA (OB(100),H)005F, C080, FFFF, FFFF, F000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000, 02D0, 60C0 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE 
   B13 = 43D                       *TEST NUMBER 
   B11 = 0                         *CLR ERROR CNTR
* 
22 B10 = 1                         *INIT BLOCK COUNTERS 
   B9 = 0 
* 
* ------------------TEST----------------------------------
* 
27 IF(P1.EQ.0)GOTO 30              *IF 0, USE DEFAULT 
   B10 = P1.AND.0377               *ELSE, PLUG IN USER
   B9 = P1.AND.7400                *DEFINED VALUE 
30 IF(P0.EQ.0)GOTO 31 
   OB(12) = P0.AND.0003.OR.0200 
* 
31 RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250 
   OUT 2 WORDS FROM OB(CLRCRP)     *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   GOSUB 64                        *WR RAFL REG LOOP
   BA = ENABLCM                    *ENABLE CM REFS
   GOSUB 52 
32 MSG 5(B9,B10,B11) TO DISPLAY    *LOOPING MSG 
* 
   OB(16) = B9                     *INIT BLCK COUNT 
   OB(17) = B10 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/431D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/432D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *DID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *SID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B8 = 0 
33 GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.2)GOTO 34    *CHK FOR RESPONSE
   B8 = B8 + 1
   IF(B8.GT.7777)ERROR 03/433D GOTO 40
   GOTO 33
* 
34 GOSUB 56                        *READ CF/DF
   ERROR 04/434D                   *CHK FOR XFER COMPLETE 
* 
   COMPARE OB(XFERC) TO IB(0) FOR WC , ABT 40 
   IF(ES.AND.SL.NE.0)GOTO 22
* 
35 GOTO 32 WHILE(B10+1.LE.377)     *DO 256 TIMES
   B10 = 0
   GOTO 32 WHILE(B9+1.LE.377)      *DO 256 TIMES
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   GOTO 77
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 22       *SL
   B11 = EM 
   IF(EM.LT.3)GOTO 42              *DON'T RD CM R L 
   CALL 82A                        *
42 CALL 43A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
  
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
  
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   IF(P1.NE.0)GOTO 32 
   GOTO 35
* 
77 END 20 
COMPILE   *DMA43 - READ XFER COMPLETE LOOPBACK TEST 
   MODULE DMA43A,6000(200),LOCK 
*         DMA43A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA43 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA43 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA43 - READ XFER COMPLETE LOOPBACK TEST
2  FORMAT DMA43 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA43 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA43 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA43 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA43 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA43 ------CENTRAL MEMORY RING RL--------- 
10 FORMAT DMA43 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX
11 FORMAT DMA43 PMI IN DATA        *H*H *H*H *H*H *H*H HEX
12 FORMAT DMA43 PMI IN DATA PARITY *H                  HEX
13 FORMAT DMA43 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX 
14 FORMAT DMA43 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX 
15 FORMAT DMA43 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX 
16 FORMAT DMA43 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA43 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA43 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA43 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX 
22 FORMAT DMA43 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX 
23 FORMAT DMA43 CMR RL   (512-543) *H*H*H*H         HEX 
24 FORMAT DMA43 XFER COMPLETE RESP ERROR, BLKCNT=*H*H H 
25 FORMAT DMA43 NO XFER COMPLETE RESP RCVD, BLKCNT=*H*H H 
26 FORMAT DMA43 SRI STATUS = *H*H  HEX
27 FORMAT DMA43 NO RESPONSE ON SRI STATUS REQUEST 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40, XFERC = 124, SREQ = 0
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 OB(400) = B9 
   OB(401) = B10
   IF(B11.EQ.2)GOTO 32
   IF(B11.EQ.3)GOTO 33
   IF(B11.EQ.4)GOTO 34
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 25, 2 WORDS FROM OB(400) TO LINE 2 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 3
   BA = SREQ
   GOSUB 52                        *REQST SRI STATUS
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)GOTO 44 
   GOSUB 56                        *READ CF/DF
   MSG 26, 2 WORDS FROM IB(302) TO LINE 4 
   GOTO 36
* 
34 MSG 24, 2 WORDS FROM OB(400) TO LINE 2 
   COPY OB(XFERC) TO OB(200) FOR 4
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
* 
36 MSG 7 TO LINE 6
   MSG 10, 7 WORDS FROM IB(200) TO LINE 7 
   MSG 11, 8 WORDS FROM IB(210) TO LINE 10
   MSG 12(IB(220))TO LINE 11
   MSG 13, 8 WORDS FROM IB(000) TO LINE 12
   MSG 14, 8 WORDS FROM IB(010) TO LINE 13
   MSG 15, 8 WORDS FROM IB(020) TO LINE 14
   MSG 16, 8 WORDS FROM IB(030) TO LINE 15
   MSG 17, 8 WORDS FROM IB(040) TO LINE 16
   MSG 20, 8 WORDS FROM IB(050) TO LINE 17
   MSG 21, 8 WORDS FROM IB(060) TO LINE 20
   MSG 22, 8 WORDS FROM IB(070) TO LINE 21
   MSG 23, 4 WORDS FROM IB(100) TO LINE 22
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
44 MSG 27 TO LINE 4 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 5
   GOTO 36
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(302)
   IN 2 WORDS TO IB(300)
   RETURN 
* 
77 END 30 
COMPILE   *DMA43A - MSG PROCESSOR 
   MODULE DMA45,6000(200),LOCK
***       DMA45 - CM WRITE TEST 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         WRITES CENTRAL MEMORY WITH DATA FROM HPM USING PARAMETER WORDS
*         TO DEFINE THE MODE, BLOCK COUNT, READ ADDRESS, AND WRITE
*         ADDRESS.  RA AND RA+FL ARE DETERMINE BY PARAMETER P7.  THE
*         DEFAULT VALUES ARE 2774020 AND 2776040 OCTAL. 
* 
*         THIS MODULE ASSUMES THAT THE CMI IS CABLED UP TO
*         CENTRAL MEMORY.  THE ONLY ERROR CHECKING PERFORMED IS A 
*         TEST FOR TRANSFER COMPLETE.  WRITE DATA MAY BE CHECKED BY 
*         INTERROGATING CYBER CENTRAL MEMORY.  (M4,2020.) 
*         THE DEFAULT IS 255 HPM WORDS READ FROM STARTING ADDRESS 
*         00000, AND WRITTEN INTO 272 CM WORDS STARTING AT RA+0,
*         (RELATIVE ADDRESS 0) IN BIT STREAM MODE.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. INTIALIZE THE VARIABLES FROM PARAMETER WORDS.
*         4. DISPLAY THE LOOP MESSAGE.
*         5. RESET ALL HPP'S
*         6. CLEAR THE CRP AND DMAU 
*         7  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         8. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         9  SEND A 6 CONTROL FUNCTION - DATA MODE. 
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION.
*        17. WAIT 
*        18. READ THE SRI STATUS AND VERIFY AN END OF TRANSFER. 
*        19. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 4. 
*        20. REPEAT STEPS 4-19 64 TIMES.
*        21. IF RM IS SELECTED, GO TO STEP 4. 
*        22. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        23. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA45 - CM WRITE TEST
*            // MODULE ERROR LIMIT - DMA45
*            DMA45 ERROR(S) IN MODULE = *DEC
*            DMA45 LC=*DEC, ERC=*DEC
*            DMA45 - CM WRITE TEST
*            DMA45 NO RESPONSE ON CONNECT FCTN
*            DMA45 PACKET SENT = *H*H*H*HH
*            DMA45 RESPONSE ERROR ON CONNECT FCTN 
*            DMA45 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA45 GSW = *H*HH, DFR FLAG = 0
*            DMA45 SRI STATUS ERROR 
*            DMA45 ------CENTRAL MEMORY RING RL---------
*            DMA45 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX 
*            DMA45 PMI IN DATA        *H*H *H*H *H*H *H*H HEX 
*            DMA45 PMI IN DATA PARITY *H                  HEX 
*            DMA45 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA45 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA45 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA45 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA45 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX
*            DMA45 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX
*            DMA45 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX
*            DMA45 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX
*            DMA45 CMR RL   (512-543) *H*H*H*H         HEX
*            DMA45 TRANSFER COMPLETE RESPONSE ERROR 
*            DMA45 NO TRANSFER COMPLETE RESPONSE RCVD 
*            DMA45 SRI STATUS = *H*H  HEX 
*            DMA45 NO RESPONSE ON SRI STATUS REQUEST
* 
* 
*   1.4   PARAMETERS
* 
*         P0  - DATA TRANSFER MODE (DEFAULTS TO BITSTREAM)
* 
*                 01 HEX = LEFT JUSTIFIED 
*                 02 HEX = RIGHT JUSTIFIED
*                 03 HEX = BIT STREAM 
* 
*         P1  - BLOCK COUNT   - 12 BITS (000-FFF HEX) 
* 
*         P2  - CM ADDR (W/R) - 12 BITS (000-FFF HEX) 
*               RELATIVE TO RA
* 
*         P3  - UPPER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P4  - LOWER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P7  - UEM BASE ADDRESS/1000 OCTAL - 12 BITS 
* 
* 
*     THE COMPLETE 24 BIT HPM W/R ADDRESS IS ASSEMBLED
*     AS FOLLOWS: 
*                      P3     P4
*                     076H + 543H = 076543H 
* 
*     THE FULL RANGE OF HPM W/R ADDRESSES DEPENDS ON THE
*     MEMORY CONFIGURATION.  FOR A 256K MEMORY THE RANGE
*     IS 000000-03FFFF.  FOR A 512K MEMORY THE RANGE IS 
*     000000-07FFFF.
* 
*    ************************************************************ 
*    *                                                          * 
*    *    NOTE: WHEN USING PARAMETERS TO SPECIFY BLOCK COUNT,   * 
*    *          CM WRITE ADDRESS, AND MODE, THE FOLLOWING       * 
*    *          GUIDELINES SHOULD BE OBSERVED:                  * 
*    *                                                          * 
*    *          1. IN RIGHT OR LEFT JUSTIFIED DATA MODES THE    * 
*    *             SUM OF THE BLOCK COUNT AND CM WRITE ADDRESS  * 
*    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
*    *                                                          * 
*    *          2. IN BIT STREAM DATA MODE THE SUM OF THE CM    * 
*    *             WRITE ADDRESS AND 16/15THS OF THE BLOCK COUNT* 
*    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
*    *                                                          * 
*    *         FAILURE TO FOLLOW THESE GUIDELINES SHOULD RESULT * 
*    *         IN THE GENERATION OF A FIELD LENGTH ERROR.       * 
*    *                                                          * 
*    ************************************************************ 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  = INPUT BUFFER POINTER
*         B10 = MAIN LOOP COUNTER.
*         B11 = ERROR COUNTER 
*         B13 = MODULE RUNNING NUMBER.
*         SB(0 - 1) - CRP GSW 
*         IB(0 - 3) - SRI RESPONSE
* 
* 
*   2.3   MODULES USED
* 
*         45A - ERROR PROCESSOR 
* 
*         45B - INITIALIZE PARAMS 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA45 - CM WRITE TEST 
3  FORMAT // MODULE ERROR LIMIT - DMA45 
4  FORMAT DMA45 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA45 LC=*DEC, ERC=*DEC 
12 FORMAT DMA45 P7 IS ZERO....ENTER UEM BASE ADDRESS FROM 
13 FORMAT DMA45 BITS 47-59, CM LOCATION 120 (C4,120.) 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=05, CLRCRP=44, ZEROS=46, ONES=50, SREQ=0 
   EQUATE CONN=4, ENABLCM=10, BLKNT=14, RDADDL=20, CRES=40
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34, XFERC=124 
   EQUATE WRADDU=70, WRADDL=64, RL1=100, RL2=200
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 8300, 08D1 
   DATA (OB(016),H)00FF, 01D1, 0000, 02D1, 0000, 0CD1, 8000 
   DATA (OB(034),H)06D1, 9B00, 02D0, 4040, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0000, 07D1, C000 
   DATA (OB(100),H)005F, C080, 005F, E100, F000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000, 02D0, 60C0 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE 
   B13 = 45D                       *TEST NUMBER 
   IF(P7.EQ.0)GOTO 76 
* 
   CALL 45B                        *INITIALIZE PARAMETERS 
* 
25 B10 = 1                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST LOOP-----------------------------
* 
30 RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250 
   OUT 2 WORDS FROM OB(CLRCRP)     *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   GOSUB 64                        *WR RAFL REG LOOP
* 
32 MSG 5(B10, B11) TO DISPLAY      *LOOPING MSG 
* 
   BA = ENABLCM                    *ENABLE CM REFS
   GOSUB 52 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/451D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/452D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
 *
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B8 = 0                          *INIT WAIT COUNTER 
33 GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.2)GOTO 34 
   B8 = B8 + 1
   IF(B8.GT.777)ERROR 03/453D GOTO 40 
   GOTO 33
* 
34 GOSUB 56                        *READ CF/DF
   ERROR 04/454D                   *CHK FOR XFER COMPLETE 
* 
   COMPARE OB(XFERC) TO IB(0) FOR WC , ABT 40 
* 
35 GOTO 32 WHILE(B10+1.LE.100)     *DO 64 TIMES 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 25       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   GOTO 77                         *STOP
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 30       *SL
   B15 = EM 
   IF(EM.LT.3)GOTO 42              *DON'T RD CM RL
   CALL 82A                        *READ LP REG 
42 CALL 45A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 RES
   FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 25
* 
76 MSG 12 TO PRINT
   MSG 13 TO PRINT
77 END 20 
COMPILE   *DMA45 - CM WRITE TEST
   MODULE DMA45A,6000(200),LOCK 
*         DMA45A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA45 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA45 
* 
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA45 - CM WRITE TEST 
1  FORMAT DMA45 NO RESPONSE ON CONNECT FCTN 
2  FORMAT DMA45 PACKET SENT = *H*H*H*HH 
3  FORMAT DMA45 RESPONSE ERROR ON CONNECT FCTN
4  FORMAT DMA45 EXP=*H*H*H*HH, ACT=*H*H*H*HH
5  FORMAT DMA45 GSW = *H*HH, DFR FLAG = 0 
6  FORMAT DMA45 SRI STATUS ERROR
7  FORMAT DMA45 ------CENTRAL MEMORY RING RL--------- 
10 FORMAT DMA45 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX
11 FORMAT DMA45 PMI IN DATA        *H*H *H*H *H*H *H*H HEX
12 FORMAT DMA45 PMI IN DATA PARITY *H                  HEX
13 FORMAT DMA45 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX 
14 FORMAT DMA45 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX 
15 FORMAT DMA45 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX 
16 FORMAT DMA45 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA45 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA45 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA45 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX 
22 FORMAT DMA45 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX 
23 FORMAT DMA45 CMR RL   (512-543) *H*H*H*H         HEX 
24 FORMAT DMA45 XFER COMPLETE RESPONSE ERROR ON XFER NR *D
25 FORMAT DMA45 NO XFER COMPLETE RESPONSE RCVD ON XFER NR *D
26 FORMAT DMA45 SRI STATUS = *H*H  HEX
27 FORMAT DMA45 NO RESPONSE ON SRI STATUS REQUEST 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40, XFERC = 124, SREQ = 0
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(B15.EQ.2)GOTO 32
   IF(B15.EQ.3)GOTO 33
   IF(B15.EQ.4)GOTO 34
* 
31 MSG 1 TO LINE 2
   MSG 2, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 5, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 3 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 4, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 25(B10)TO LINE 2 
   MSG 5, 2 WORDS FROM SB(0) TO LINE 3
   BA = SREQ                       *
   GOSUB 52                        *REQST SRI STATUS
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)GOTO 44 
   GOSUB 56                        *READ CF/DF
   MSG 26, 2 WORDS FROM IB(302) TO LINE 4 
   GOTO 36
* 
34 MSG 24(B10)TO LINE 2 
   COPY OB(XFERC) TO OB(400) FOR 4
   COPY IB(0) TO OB(404) FOR 4
   MSG 4, 8 WORDS FROM OB(400) TO LINE 3
* 
36 MSG 7 TO LINE 6
   MSG 10, 7 WORDS FROM IB(200) TO LINE 7 
   MSG 11, 8 WORDS FROM IB(210) TO LINE 10
   MSG 12(IB(220))TO LINE 11
   MSG 13, 8 WORDS FROM IB(000) TO LINE 12
   MSG 14, 8 WORDS FROM IB(010) TO LINE 13
   MSG 15, 8 WORDS FROM IB(020) TO LINE 14
   MSG 16, 8 WORDS FROM IB(030) TO LINE 15
   MSG 17, 8 WORDS FROM IB(040) TO LINE 16
   MSG 20, 8 WORDS FROM IB(050) TO LINE 17
   MSG 21, 8 WORDS FROM IB(060) TO LINE 20
   MSG 22, 8 WORDS FROM IB(070) TO LINE 21
   MSG 23, 4 WORDS FROM IB(100) TO LINE 22
* 
40 MSG 0 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
44 MSG 27 TO LINE 4 
   MSG 5, 2 WORDS FROM SB(0) TO LINE 5
   GOTO 36
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(302)
   IN 2 WORDS TO IB(300)
   RETURN 
* 
77 END 30 
COMPILE   *DMA45A - MSG PROCESSOR 
   MODULE DMA45B,6000(200),LOCK 
*         DMA45B - INITIALIZE PARAMS
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA45 
* 
  
* 
20 IF(P0.EQ.0)GOTO 21 
   OB(12) = P0.AND.0003.OR.200
21 IF(P1.EQ.0)GOTO 22              *IF 0, USE DEFAULT 
   OB(17) = P1.AND.0377            *ELSE, PLUG IN USER
   OB(16) = P1.AND.7400.RS.8       *DEFINED VALUES
22 IF(P2.EQ.0)GOTO 23 
   OB(67) = P2.AND.0377 
   OB(66) = P2.AND.7400.RS.8
23 IF(P3.OR.P4.EQ.0)GOTO 24 
   OB(23) = P4.AND.0377 
   B0 = P4.AND.7400.RS.8
   B1 = P3.AND.0017.LS.4
   OB(22) = B0.OR.B1
   OB(27) = P3.AND.7760.RS.4
24 IF(P7.EQ.0)GOTO 25 
   B1 = P7.+.2                     *ADD OFFSET OF 2020 OCTAL
   OB(100) = 0000 
   OB(101) = B1.RS.4               *TO UEM BASE TO GET RA 
   OB(102) = B1.AND.0017.LS.4 
   OB(103) = 0200 
   B1 = P7.+.4                     *ADD ANOTHER 2020 OCTAL
   OB(104) = 0000 
   OB(105) = B1.RS.4               *TO GET RA+FL
   B2 = B1.AND.0017.LS.4
   OB(106) = B2.OR.0001 
   OB(107) = 0000 
25 EXIT 
77 END 20 
COMPILE   *DMA45B - INITITILIZE PARAMS
   MODULE DMA47,6000(200),LOCK
***       DMA47 - CM READ TEST
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         READS CENTRAL MEMORY USING PARAMETER WORDS TO DEFINE
*         THE MODE, BLOCK COUNT, READ ADDRESS, AND WRITE ADDRESS. 
*         RA AND RA+FL ARE DETERMINED BY PARAMETER P7.  THE DEFAULT 
*         VALUES ARE 2774020 AND 2776040 OCTAL. 
* 
*         THIS MODULE ASSUMES THAT THE CMI IS CABLED UP TO
*         CENTRAL MEMORY.  THE ONLY ERROR CHECKING PERFORMED IS A 
*         TEST FOR TRANSFER COMPLETE.  READ DATA MAY BE CHECKED BY
*         INTERROGATING CYBER CENTRAL MEMORY.  (M4,2020.) 
*         WRITE DATA CAN BE VERIFIED BY INTERROGATING HPM AT THE
*         ADDRESS SPECIFIED IN PARAMETERS P3.  THE DEFAULT
*         IS 272 CM WORDS READ FROM RA+0 (RELATIVE ADDRESS 0), AND
*         WRITTEN INTO 255 HPM WORDS STARTING AT LOCATION 10000 HEX 
*         IN BIT STREAM MODE. 
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. INITIALIZE VARIABLES FROM PARAMETER WORDS. 
*         4. DISPLAY THE LOOP MESSAGE.
*         5. RESET ALL HPP'S
*         6. CLEAR THE CRP AND DMAU 
*         7  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         8. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         9  SEND A 6 CONTROL FUNCTION - BIT STREAM MODE. 
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION.
*        17. WAIT 
*        18  CHECK THE SRI RESPONSE FOR A TRANSFER COMPLETE.
*        19. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 4. 
*        20. REPEAT STEPS 4-19  64 TIMES. 
*        21. IF RM IS SELECTED, GO TO STEP 4. 
*        22. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        23. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA47 - CM READ TEST 
*            // MODULE ERROR LIMIT - DMA47
*            DMA47 ERROR(S) IN MODULE = *DEC
*            DMA47 RUNNING  LC=*DEC, ERC=*DEC 
*            DMA47 NO RESPONSE ON CONNECT FCTN
*            DMA47 PACKET SENT = *H*H*H*HH
*            DMA47 RESPONSE ERROR ON CONNECT FCTN 
*            DMA47 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA47 GSW = *H*HH, DFR FLAG = 0
*            DMA47 SRI STATUS ERROR 
*            DMA47 ------CENTRAL MEMORY RING RL---------
*            DMA47 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX 
*            DMA47 PMI IN DATA        *H*H *H*H *H*H *H*H HEX 
*            DMA47 PMI IN DATA PARITY *H                  HEX 
*            DMA47 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA47 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA47 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA47 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA47 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX
*            DMA47 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX
*            DMA47 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX
*            DMA47 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX
*            DMA47 CMR RL   (512-543) *H*H*H*H         HEX
*            DMA47 TRANSFER COMPLETE RESPONSE ERROR 
*            DMA47 NO TRANSFER COMPLETE RESPONSE RCVD 
*            DMA47 SRI STATUS = *H*H  HEX 
*            DMA47 NO RESPONSE ON SRI STATUS REQUEST
* 
* 
*   1.4   PARAMETERS
* 
*         P0  - DATA TRANSFER MODE
* 
*                 01 HEX = LEFT JUSTIFIED 
*                 02 HEX = RIGHT JUSTIFIED
*                 03 HEX = BIT STREAM 
* 
*         P1  - BLOCK COUNT   - 12 BITS (000-FFF HEX) 
* 
*         P2  - CM ADDR (W/R) - 12 BITS (000-FFF HEX) 
*               RELATIVE TO RA
* 
*         P3  - UPPER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P4  - LOWER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P7  - UEM BASE ADDRESS/1000 OCTAL - 12 BITS 
* 
* 
*     THE COMPLETE 24 BIT HPM W/R ADDRESS IS ASSEMBLED
*     AS FOLLOWS: 
*                      P3     P4
*                     076H + 543H = 076543H 
* 
*     THE FULL RANGE OF HPM W/R ADDRESSES DEPENDS ON THE
*     MEMORY CONFIGURATION.  FOR A 256K MEMORY THE RANGE
*     IS 000000-03FFFF.  FOR A 512K MEMORY THE RANGE IS 
*     000000-07FFFF.
* 
*    ************************************************************ 
*    *                                                          * 
*    *    NOTE: WHEN USING PARAMETERS TO SPECIFY BLOCK COUNT    * 
*    *          CM READ ADDRESS, AND MODE, THE FOLLOWING GUIDE- * 
*    *          LINES SHOULD BE OBSERVED:                       * 
*    *                                                          * 
*    *          1. IN RIGHT OR LEFT JUSTIFIED DATA MODES THE    * 
*    *             SUM OF THE BLOCK COUNT AND CM READ ADDRESS   * 
*    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
*    *                                                          * 
*    *          2. IN BIT STREAM DATA MODE THE SUM OF THE CM    * 
*    *             READ ADDRESS AND 16/15THS OF THE BLOCK COUNT * 
*    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
*    *                                                          * 
*    *         FAILURE TO FOLLOW THESE GUIDELINES SHOULD RESULT * 
*    *         IN THE GENERATION OF A FIELD LENGTH ERROR.       * 
*    *                                                          * 
*    ************************************************************ 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         SB(0 - 1) - CRP GSW 
*         IB(0 - 3) - SRI RESPONSE
* 
* 
*   2.3   MODULES USED
* 
*         47A - ERROR PROCESSOR 
* 
*         47B - INITIALIZE PARAMS 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA47 - CM READ TEST
3  FORMAT // MODULE ERROR LIMIT - DMA47 
4  FORMAT DMA47 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA47 LC=*DEC, ERC=*DEC 
12 FORMAT DMA47 P7 IS ZERO....ENTER UEM BASE ADDRESS FROM 
13 FORMAT DMA47 BITS 47-59, CM LOCATION 120 (C4,120.) 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, ENABLCM=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34, XFERC=124 
   EQUATE WRADDU=70, WRADDL=64, RL1=100 
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 8300, 08D1 
   DATA (OB(016),H)00FF, 01D1, 0000, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9B00, 02D0, 4040, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0001, 07D1, C000 
   DATA (OB(100),H)005F, C080, 005F, E100, F000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000, 02D0, 60C0 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE 
   B13 = 47D                       *TEST NUMBER 
   IF(P7.EQ.0)GOTO 76 
* 
   CALL 47B                        *INITIALIZE PARAMS 
* 
25 B10 = 1                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST LOOP-----------------------------
* 
30 RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   GOSUB 64                        *WR RAFL REG LOOP
* 
32 MSG 5(B10, B11) TO DISPLAY      *LOOPING MSG 
* 
   BA = ENABLCM                    *ENABLE CM REFS
   GOSUB 52 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/471D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/472D
   COMPARE OB(CRES) TO IB(300) FOR WC , ABT 40
* 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *DID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *SID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B8 = 0                          *INIT DELAY COUNTER
33 GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.2)GOTO 34 
   B8 = B8 + 1
   IF(B8.GT.777)ERROR 03/473D GOTO 40 
   GOTO 33
* 
34 GOSUB 56                        *READ CF/DF
   ERROR 04/474D                   *CHK FOR XFER COMPLETE 
* 
   COMPARE OB(XFERC) TO IB(300) FOR WC , ABT 40 
* 
35 GOTO 32 WHILE(B10+1.LE.100)     *DO 64 TIMES 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 25       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   GOTO 77                         *STOP
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 30       *SL
   B15 = EM 
   IF(EM.LT.3)GOTO 42              *DON'T RD CM RL
   CALL 82A 
42 CALL 47A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 RES
   FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(302)
   IN 2 WORDS TO IB(300)
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 25
76 MSG 12 TO PRINT
   MSG 13 TO PRINT
* 
77 END 20 
COMPILE   *DMA47 - CM READ TEST 
   MODULE DMA47A,6000(200),LOCK 
*         DMA47A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA47 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA47 
* 
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA47 - CM READ TEST
1  FORMAT DMA47 NO RESPONSE ON CONNECT FCTN 
2  FORMAT DMA47 PACKET SENT = *H*H*H*HH 
3  FORMAT DMA47 RESPONSE ERROR ON CONNECT FCTN
4  FORMAT DMA47 EXP=*H*H*H*HH, ACT=*H*H*H*HH
5  FORMAT DMA47 GSW = *H*HH, DFR FLAG = 0 
6  FORMAT DMA47 SRI STATUS ERROR
7  FORMAT DMA47 ------CENTRAL MEMORY RING RL--------- 
10 FORMAT DMA47 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX
11 FORMAT DMA47 PMI IN DATA        *H*H *H*H *H*H *H*H HEX
12 FORMAT DMA47 PMI IN DATA PARITY *H                  HEX
13 FORMAT DMA47 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX 
14 FORMAT DMA47 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX 
15 FORMAT DMA47 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX 
16 FORMAT DMA47 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA47 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA47 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA47 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX 
22 FORMAT DMA47 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX 
23 FORMAT DMA47 CMR RL   (512-543) *H*H*H*H         HEX 
24 FORMAT DMA47 XFER COMPLETE RESPONSE ERROR ON XFER NR *D
25 FORMAT DMA47 NO XFER COMPLETE RESPONSE RCVD ON XFER NR *D
26 FORMAT DMA47 SRI STATUS = *H*H  HEX
27 FORMAT DMA47 NO RESPONSE ON SRI STATUS REQUEST 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40, XFERC = 124, SREQ = 0
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(B15.EQ.2)GOTO 32
   IF(B15.EQ.3)GOTO 33
   IF(B15.EQ.4)GOTO 34
* 
31 MSG 1 TO LINE 2
   MSG 2, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 5, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 3 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(300) TO OB(204) FOR 4
   MSG 4, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 25(B10)TO LINE 2 
   MSG 5, 2 WORDS FROM SB(0) TO LINE 3
   BA = SREQ                       *
   GOSUB 52                        *REQST SRI STATUS
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)GOTO 44 
   GOSUB 56                        *READ CF/DF
   MSG 26, 2 WORDS FROM IB(302) TO LINE 4 
   GOTO 36
* 
34 MSG 24(B10)TO LINE 2 
   COPY OB(XFERC) TO OB(400) FOR 4
   COPY IB(300) TO OB(404) FOR 4
   MSG 4, 8 WORDS FROM OB(400) TO LINE 3
* 
36 MSG 7 TO LINE 6
   MSG 10, 7 WORDS FROM IB(200) TO LINE 7 
   MSG 11, 8 WORDS FROM IB(210) TO LINE 10
   MSG 12(IB(220))TO LINE 11
   MSG 13, 8 WORDS FROM IB(000) TO LINE 12
   MSG 14, 8 WORDS FROM IB(010) TO LINE 13
   MSG 15, 8 WORDS FROM IB(020) TO LINE 14
   MSG 16, 8 WORDS FROM IB(030) TO LINE 15
   MSG 17, 8 WORDS FROM IB(040) TO LINE 16
   MSG 20, 8 WORDS FROM IB(050) TO LINE 17
   MSG 21, 8 WORDS FROM IB(060) TO LINE 20
   MSG 22, 8 WORDS FROM IB(070) TO LINE 21
   MSG 23, 4 WORDS FROM IB(100) TO LINE 22
* 
40 MSG 0 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
44 MSG 27 TO LINE 4 
   MSG 5, 2 WORDS FROM SB(0) TO LINE 5
   GOTO 36
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(302)
   IN 2 WORDS TO IB(300)
   RETURN 
* 
77 END 30 
COMPILE   *DMA47A - MSG PROCESSOR 
   MODULE DMA47B,6000(200),LOCK 
*         DMA47B - INITIALIZE PARAMS
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA47 
* 
  
20 IF(P0.EQ.0)GOTO 21 
   OB(12) = P0.AND.0003.OR.200
21 IF(P1.EQ.0)GOTO 22              *IF 0, USE DEFAULT 
   OB(17) = P1.AND.0377            *ELSE, PLUG IN USER
   OB(16) = P1.AND.7400.RS.8       *DEFINED VALUES
22 IF(P2.EQ.0)GOTO 23 
   OB(23) = P2.AND.0377 
   OB(22) = P2.AND.7400.RS.8
23 IF(P3.OR.P4.EQ.0)GOTO 24 
   OB(67) = P4.AND.0377 
   B0 = P4.AND.7400.RS.8
   B1 = P3.AND.0017.LS.4
   OB(66) = B0.OR.B1
   OB(73) = P3.AND.7760.RS.4
24 IF(P7.EQ.0)GOTO 25 
   B1 = P7.+.2                     *ADD OFFSET OF 2020 OCTAL
   OB(100) = 0000 
   OB(101) = B1.RS.4               *TO UEM BASE TO GET RA 
   OB(102) = B1.AND.0017.LS.4 
   OB(103) = 0200 
   B1 = P7.+.4                     *ADD ANOTHER 2020 OCTAL
   OB(104) = 0000 
   OB(105) = B1.RS.4               *TO GET RA+FL
   B2 = B1.AND.0017.LS.4
   OB(106) = B2.OR.0001 
   OB(107) = 0000 
25 EXIT 
77 END 20 
COMPILE   *DMA47B - INITITILIZE PARAMS
   MODULE DMA49,6000(200),LOCK
***       DMA49 - CM READ/WRITE TEST
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE DMAU INTERFACE BY PERFORMING BACK TO BACK 
*         CENTRAL MEMORY READS AND WRITES WITH VARIOUS BLOCK
*         COUNTS.  THIS TEST IS INTENDED TO VERIFY THAT THE DMAU
*         HARDWARE IS LEFT PROPERLY INITIALIZED BETWEEN READ AND
*         WRITE OPERATIONS. 
* 
*         PERFORMS 16 CM READ/WRITE OPERATIONS WITH BLOCK COUNTS
*         OF 1 THROUGH 16.  THE DATA IS READ FROM CENTRAL MEMORY
*         STARTING AT RELATIVE ADDRESS 0 (UEM BASE ADDR + 2020 OCTAL) 
*         AND WRITTEN INTO HPM STARTING AT ADDRESS 0.  THE DATA 
*         IS THEN READ FROM HPM AND WRITTEN BACK INTO CENTRAL MEMORY
*         AT RELATIVE ADRRESS 100 HEX (UEM BASE ADDR + 2420 OCTAL). 
*         DATA TRANSLATION MODE IS BIT STREAM.  A PARTICULAR BLOCK
*         COUNT CAN BE SPECIFIED IN PARAMETER WORD P1.
* 
*         THE ONLY ERROR CHECKING PERFORMED IS FOR A TRANSFER 
*         COMPLETE RESPONSE AFTER EACH CM READ AND WRITE OPERATION. 
*         THE RESULTS OF THE DATA TRANSFER CAN BE VERIFIED BY 
*         INTERROGATING CENTRAL MEMORY (M4,2420). 
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. RESET ALL HPP'S
*         4. CLEAR THE CRP AND DMAU 
*         5  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         6. DISPLAY THE LOOP MESSAGE.
*         ,. INITIALIZE THE BLOCK COUNT 
*         8. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         9  SEND A 6 CONTROL FUNCTION - BIT STREAM MODE. 
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION TO 80.
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION TO D1.
*        17. WAIT 
*        18  CHECK THE SRI RESPONSE FOR A TRANSFER COMPLETE.
*        19. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        20. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*        21. SEND A 8 BLOCK COUNT FUNCTION. 
*        22. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        23. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        24. SEND A C SEND MEMORY PACKET FUNCTION TO D1.
*        25. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        26. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        27. SEND A C SEND MEMORY PACKET FUNCTION TO 80.
*        28. WAIT 
*        29  CHECK THE SRI RESPONSE FOR A TRANSFER COMPLETE.
*        30. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        31. REPEAT STEPS 6-30  64 TIMES. 
*        32. IF RM IS SELECTED, GO TO STEP 4. 
*        33. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        34. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA49 - CM READ/WRITE TEST 
*            // MODULE ERROR LIMIT - DMA49
*            DMA49 ERROR(S) IN MODULE = *DEC
*            DMA49 BLKCNT=*DEC, ERC=*DEC
*            DMA49 CM RD/WR TEST
*            DMA49 NO RESPONSE ON CONN *H FOR RD CM 
*            DMA49 RESP ERROR  ON CONN *H FOR RD CM 
*            DMA49 NO XFER COMPLETE RESP ON CM RD, BLKCNT=*H H
*            DMA49 XFER COMPLETE RESP ERR ON CM RD, BLKCNT=*H H 
*            DMA49 NO RESPONSE ON CONN *H FOR WR CM 
*            DMA49 RESP ERROR  ON CONN *H FOR WR CM 
*            DMA49 NO XFER COMPLETE RESP ON CM WR, BLKCNT=*H H
*            DMA49 XFER COMPLETE RESP ERR ON CM RD, BLKCNT=*H H 
*            DMA49 EXP=*H*H*H*HH, ACT=*H*H*H*H H
*            DMA49 GSW = *H*HH, DFR FLAG = 0
*            DMA49 SRI STATUS = *H*H HEX
*            DMA49 NO RESPONSE ON SRI STATUS REQUEST
* 
* 
*   1.4   PARAMETERS
* 
* 
*         P1  - BLOCK COUNT   - (00-10 HEX) 
* 
*         P7  - UEM BASE ADDRESS/1000 OCTAL 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         SB(0 - 1) - CRP GSW 
*         IB(0 - 3) - SRI RESPONSE
* 
* 
*   2.3   MODULES USED
* 
*         49A - ERROR PROCESSOR 
* 
*         49B - INITIALIZE PARAMS 
* 
* -----------------MESSAGES-------------------------------
* 
1  FORMAT DMA49 - CM READ/WRITE TEST
3  FORMAT // MODULE ERROR LIMIT - DMA49 
4  FORMAT DMA49 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA49 BLKCNT=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, ENABLCM=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34, XFERC=124 
   EQUATE WRADDU=70, WRADDL=64, RL1=100, WRAD2L=130 
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 8300, 08D1 
   DATA (OB(016),H)00FF, 01D1, 0000, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9B00, 02D0, 4040, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0000, 07D1, C000 
   DATA (OB(100),H)005F, C080, 005F, E100, F000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000, 02D0, 60C0 
   DATA (OB(130),H)03D1, 0100 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE 
   B13 = 49D                       *MODULE NUMBER 
22 B11 = 0                         *ERROR COUNT 
   CALL 49B                        *INITIALIZE RA,RAFL
* 
* ------------------TEST LOOP-----------------------------
* 
30 RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   B10 = 1                         *INIT BLOCK COUNT
   GOSUB 64                        *WR RAFL REG LOOP
   BA = ENABLCM                    *ENABLE CM REFS
   GOSUB 52 
* 
32 OB(17) = B10 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/491D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/492D
   COMPARE OB(CRES) TO IB(300) FOR WC , ABT 40
* 
   IF(P1.EQ.0)GOTO 34              *USER BLOCK COUNT
   OB(17) = P1
* 
34 MSG 5(OB(17), B11) TO DISPLAY   *LOOPING MSG 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *DID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *SID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 03/493D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 04/494D                   *CHK FOR XFER COMPLETE 
* 
   COMPARE OB(XFERC) TO IB(300) FOR WC , ABT 40 
* 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 05/495D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 06/496D
   COMPARE OB(CRES) TO IB(300) FOR WC , ABT 40
* 
   BA = WRAD2L                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 07/497D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 08/498D                   *CHK FOR XFER COMPLETE 
* 
   COMPARE OB(XFERC) TO IB(300) FOR WC , ABT 40 
* 
35 GOTO 32 WHILE(B10+1.LE.20)      *DO 16 TIMES 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 30       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   GOTO 77                         *END OF TEST SERIES
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 30       *SL
   B15 = EM 
42 CALL 49A 
   GOTO 35
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(302)
   IN 2 WORDS TO IB(300)
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
77 END 20 
COMPILE   *DMA49 - CM RD/WR TEST
   MODULE DMA49A,6000(200),LOCK 
*         DMA49A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA49 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA49 
* 
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA49 CM RD/WR TEST 
1  FORMAT DMA49 NO RESPONSE ON CONN *H FOR RD CM
2  FORMAT DMA49 RESP ERROR  ON CONN *H FOR RD CM
3  FORMAT DMA49 NO XFER COMPLETE RESP ON CM RD, BLKCNT=*H H 
4  FORMAT DMA49 XFER COMPLETE RESP ERR ON CM RD, BLKCNT=*H H
5  FORMAT DMA49 NO RESPONSE ON CONN *H FOR WR CM
6  FORMAT DMA49 RESP ERROR  ON CONN *H FOR WR CM
7  FORMAT DMA49 NO XFER COMPLETE RESP ON CM WR, BLKCNT=*H H 
10 FORMAT DMA49 XFER COMPLETE RESP ERR ON CM RD, BLKCNT=*H H
11 FORMAT DMA49 EXP=*H*H*H*HH, ACT=*H*H*H*H H 
12 FORMAT DMA49 GSW = *H*HH, DFR FLAG = 0 
13 FORMAT DMA49 SRI STATUS = *H*H HEX 
14 FORMAT DMA49 NO RESPONSE ON SRI STATUS REQUEST 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40, XFERC = 124, SREQ = 0
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(B15.EQ.2)GOTO 32
   IF(B15.EQ.3)GOTO 33
   IF(B15.EQ.4)GOTO 34
   IF(B15.EQ.5)GOTO 35
   IF(B15.EQ.6)GOTO 36
   IF(B15.EQ.7)GOTO 37
   IF(B15.EQ.8)GOTO 40
* 
31 MSG 1(B10) TO LINE 2 
   MSG 12, 2 WORDS FROM SB(0) TO LINE 3 
   GOTO 42
* 
32 MSG 2(B10) TO LINE 2 
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(300) TO OB(204) FOR 4
   MSG 11, 8 WORDS FROM OB(200) TO LINE 3 
   GOTO 42
* 
33 MSG 3(B10)TO LINE 2
   MSG 12, 2 WORDS FROM SB(0) TO LINE 3 
   BA = SREQ                       *
   GOSUB 52                        *REQST SRI STATUS
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)GOTO 44 
   GOSUB 56                        *READ CF/DF
   MSG 13, 2 WORDS FROM IB(302) TO LINE 4 
   GOTO 42
* 
34 MSG 4(B10)TO LINE 2
   COPY OB(XFERC) TO OB(400) FOR 4
   COPY IB(300) TO OB(404) FOR 4
   MSG 11, 8 WORDS FROM OB(400) TO LINE 3 
   GOTO 42
* 
35 MSG 5(B10) TO LINE 2 
   MSG 12, 2 WORDS FROM SB(0) TO LINE 3 
   GOTO 42
* 
36 MSG 6(B10) TO LINE 2 
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(300) TO OB(204) FOR 4
   MSG 11, 8 WORDS FROM OB(200) TO LINE 3 
   GOTO 42
* 
37 MSG 7(B10)TO LINE 2
   MSG 12, 2 WORDS FROM SB(0) TO LINE 3 
   BA = SREQ                       *
   GOSUB 52                        *REQST SRI STATUS
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)GOTO 44 
   GOSUB 56                        *READ CF/DF
   MSG 13, 2 WORDS FROM IB(302) TO LINE 4 
   GOTO 42
* 
40 MSG 10(B10)TO LINE 2 
   COPY OB(XFERC) TO OB(400) FOR 4
   COPY IB(300) TO OB(404) FOR 4
   MSG 11, 8 WORDS FROM OB(400) TO LINE 3 
* 
42 MSG 0 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
44 MSG 14 TO LINE 4 
   MSG 12, 2 WORDS FROM SB(0) TO LINE 5 
   GOTO 42
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(302)
   IN 2 WORDS TO IB(300)
   RETURN 
* 
77 END 30 
COMPILE   *DMA49A - MSG PROCESSOR 
   MODULE DMA49B,6000(200),LOCK 
*         DMA49B - INITIALIZE PARAMS
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA49 
* 
* 
*   ----------------MESSAGES------------------------- 
2  FORMAT DMA49 P7 IS ZERO....ENTER UEM BASE ADDRESS FROM 
3  FORMAT DMA49 BITS 47-59, CM LOCATION 120 (C4,120.) 
*   ------------------------------------------------- 
* 
24 IF(P7.EQ.0)GOTO 25 
   B1 = P7.+.2                     *ADD OFFSET OF 2020 OCTAL
   OB(100) = 0000 
   OB(101) = B1.RS.4               *TO UEM BASE TO GET RA 
   OB(102) = B1.AND.0017.LS.4 
   OB(103) = 0200 
   B1 = P7.+.4                     *ADD ANOTHER 2020 OCTAL
   OB(104) = 0000 
   OB(105) = B1.RS.4               *TO GET RA+FL
   B2 = B1.AND.0017.LS.4
   OB(106) = B2.OR.0001 
   OB(107) = 0000 
* 
   EXIT 
25 MSG 2 TO PRINT 
   MSG 3 TO PRINT 
77 END 24 
COMPILE   *DMA49B - INITITILIZE PARAMS
   MODULE DMA53,6000(200),LOCK
***       DMA53 - CM WRITE DEMO 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         WRITES CENTRAL MEMORY WITH 100 WORDS OF DATA FROM HPM.
*         THE DATA IS ALTERNATELY READ FROM HPM LOCATIONS 0 AND 
*         100.  RA AND RAFL ARE DETERMINED BY PARAMETER WORD P7.
*         NO OTHER PARAMETERS ARE USEED.  THE DATA PATTERN IN CM
*         ALTERNATES BETWEEN THE DATA PATTERN IN 0 - FF AND 
*         100 - 1FF IN HPM.  THE DATA PATTERNS CAN BE VERIFIED BY 
*         INTERROGATING CYBER CENTRAL MEMORY.  (M4,2020.) 
*         DATA TRANSFER IS PERFORMED IN RIGHT JUSTIFIED MODE. 
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MESSAGE.
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6. INITIALIZE THE HPM READ ADDRESS. 
*         7  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         8. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         9  SEND A 6 CONTROL FUNCTION - DATA MODE. 
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION.
*        17. READ THE SRI STATUS AND VERIFY AN END OF TRANSFER. 
*        18. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        19. REPEAT STEPS 3-18  64 TIMES. 
*        20. IF RM IS SELECTED, GO TO STEP 3. 
*        21. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        22. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA53 - CM WRITE DEMO
*            // MODULE ERROR LIMIT - DMA53
*            DMA53 ERROR(S) IN MODULE = *DEC
*            DMA53 RUNNING  LC=*DEC, ERC=*DEC 
*            DMA53 WRITING PATTERN *D 
*            DMA53 - CM WRITE DEMO
*            DMA53 NO RESPONSE ON CONNECT FCTN
*            DMA53 PACKET SENT = *H*H*H*HH
*            DMA53 RESPONSE ERROR ON CONNECT FCTN 
*            DMA53 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA53 GSW = *H*HH, DFR FLAG = 0
*            DMA53 SRI STATUS ERROR 
*            DMA53 ------------MEM RING RL--------------
*            DMA53 PMI/MRI IN     A  *H*H                 HEX 
*            DMA53                A      *H*H*H*H*H*H*H*H HEX 
*            DMA53 MMI/MRI IN     A  *H*H                 HEX 
*            DMA53                A      *H*H*H*H*H*H*H*H HEX 
*            DMA53 MMI/MRI OUT    A  *H*H                 HEX 
*            DMA53                A      *H*H*H*H*H*H*H*H HEX 
*            DMA53 PMI/MRI OUT    A  *H*H                 HEX 
*            DMA53 MR RL          A      *H*H*H*H*H*H*H*H HEX 
*            DMA53 TRANSFER COMPLETE RESPONSE ERROR 
*            DMA53 NO TRANSFER COMPLETE RESPONSE RCVD 
*            DMA53 SRI STATUS = *H*H  HEX 
*            DMA53 NO RESPONSE ON SRI STATUS REQUEST
* 
* 
*   1.4   PARAMETERS
* 
*         P7 - UEM BASE ADDRESS/1000 OCTAL
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         HPM INITIALIZED WITH DATA 
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         SB(0 -1) - CRP GSW
*         IB(0 - 3)- SRI RESPONSE 
* 
* 
*   2.3   MODULES USED
* 
*         53A - ERROR PROCESSOR 
* 
*         53B - INITIALIZE PARAMS 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA53 - CM WRITE DEMO 
3  FORMAT // MODULE ERROR LIMIT - DMA53 
4  FORMAT DMA53 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA53 LC=*DEC, ERC=*DEC 
6  FORMAT DMA53 WRITING PATTERN *D
12 FORMAT DMA53 P7 IS ZERO....ENTER UEM BASE ADDRESS FROM 
13 FORMAT DMA53 BITS 47-59, CM LOCATION 120 (C4,120.) 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=05, CLRCRP=44, ZEROS=46, ONES=50, SREQ=0 
   EQUATE CONN=4, ENABLCM=10, BLKNT=14, RDADDL=20, CRES=40
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34, XFERC=124 
   EQUATE WRADDU=70, WRADDL=64, RL1=100, RL2=200
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 8200, 08D1 
   DATA (OB(016),H)0100, 01D1, 0000, 02D1, 0000, 0CD1, 8000 
   DATA (OB(034),H)06D1, 9A00, 02D0, 4040, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0000, 07D1, 8000 
   DATA (OB(100),H)005F, C080, 005F, E100, F000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000, 02D0, 60C0 
   DATA (OB(130),H)0000, 0100 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE 
   B13 = 53D                       *TEST NUMBER 
   IF(P7.EQ.0)GOTO 76 
   CALL 53B                        *INITIALIZE RA, RAFL 
* 
25 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
26 B9 = 1                          *RD ADDR SELECTOR
* 
* ------------------TEST LOOP-----------------------------
* 
30 IF(ES.AND.SL.NE.0)MSG 5(B10, B11) TO DISPLAY 
   IF(ES.AND.SL.EQ.0)MSG 6(B9) TO DISPLAY 
* 
   RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   GOSUB 64                        *WR RAFL REG LOOP
* 
   IF(B9.EQ.2) GOTO 32             *INIT READ ADDR
   COPY OB(130) TO OB(22) FOR 2 
   GOTO 34
32 COPY OB(132) TO OB(22) FOR 2 
* 
34 BA = ENABLCM                    *ENABLE CM REFS
   GOSUB 52 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/531D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/532D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   DELAY 500 MSEC                  *WAIT
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 03/533D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 04/534D                   *CHK FOR XFER COMPLETE 
* 
   COMPARE OB(XFERC) TO IB(0) FOR WC , ABT 40 
* 
   GOTO 30 WHILE(B9+1.LE.2) 
35 GOTO 26 WHILE(B10+1.LE.100)     *DO 100 TIMES
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 25       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   GOTO 77                         *END OF TEST SERIES
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 35       *SL
   CALL 53A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 25
* 
76 MSG 12 TO PRINT
   MSG 13 TO PRINT
* 
77 END 20 
COMPILE   *DMA53 - CM WRITE DEMO
   MODULE DMA53A,6000(200),LOCK 
*         DMA53A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA53 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA53 
* 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA53 - CM WRITE DEMO 
2  FORMAT DMA53 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA53 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA53 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA53 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA53 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA53 SRI STATUS ERROR
10 FORMAT DMA53 PMI/MRI IN     A  *H*H                 HEX
11 FORMAT DMA53                A      *H*H*H*H*H*H*H*H HEX
12 FORMAT DMA53 MMI/MRI IN     A  *H*H                 HEX
13 FORMAT DMA53                A      *H*H*H*H*H*H*H*H HEX
14 FORMAT DMA53 MMI/MRI OUT    A  *H*H                 HEX
15 FORMAT DMA53                A      *H*H*H*H*H*H*H*H HEX
16 FORMAT DMA53 PMI/MRI OUT    A  *H*H                 HEX
17 FORMAT DMA53 MR RL          A      *H*H*H*H*H*H*H*H HEX
20 FORMAT DMA53 TRANSFER COMPLETE RESPONSE ERROR
21 FORMAT DMA53 NO TRANSFER COMPLETE RESPONSE RCVD
22 FORMAT DMA53 SRI STATUS = *H*H  HEX
23 FORMAT DMA53 NO RESPONSE ON SRI STATUS REQUEST 
24 FORMAT DMA53 ------------MEM RING RL---------------- 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40, XFERC = 124, SREQ = 0
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 21 TO LINE 2 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 3
   BA = SREQ                       *
   GOSUB 52                        *REQST SRI STATUS
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)GOTO 44 
   GOSUB 56                        *READ CF/DF
   MSG 22, 2 WORDS FROM IB(2) TO LINE 4 
   GOTO 36
* 
34 MSG 20 TO LINE 2 
   COPY OB(XFERC) TO OB(200) FOR 4
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
* 
36 RES                             *RESERVE CHANNEL 
   B0 = 046                        *RD MR I/O REG LOOP
   FUNC 215                        *TO IB(0-47) 
37 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 37 WHILE(B0-2.GE.002) 
   IN 2 WORDS TO IB(000)
   MSG 24 TO LINE 6 
   MSG 10, 2 WORDS FROM IB(000) TO LINE 7 
   MSG 11, 8 WORDS FROM IB(002) TO LINE 10
   MSG 12, 2 WORDS FROM IB(012) TO LINE 11
   MSG 13, 8 WORDS FROM IB(014) TO LINE 12
   MSG 14, 2 WORDS FROM IB(024) TO LINE 13
   MSG 15, 8 WORDS FROM IB(026) TO LINE 14
   MSG 16, 2 WORDS FROM IB(036) TO LINE 15
   MSG 17, 8 WORDS FROM IB(040) TO LINE 16
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
44 MSG 23 TO LINE 4 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 5
   GOTO 36
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
77 END 30 
COMPILE   *DMA53A - MSG PROCESSOR 
   MODULE DMA53B,6000(200),LOCK 
*         DMA53B - INITIALIZE PARAMS
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA53 
* 
  
24 IF(P7.EQ.0)GOTO 25 
   B1 = P7.+.2                     *ADD OFFSET OF 2020 OCTAL
   OB(100) = 0000 
   OB(101) = B1.RS.4               *TO UEM BASE TO GET RA 
   OB(102) = B1.AND.0017.LS.4 
   OB(103) = 0200 
   B1 = P7.+.4                     *ADD ANOTHER 2020 OCTAL
   OB(104) = 0000 
   OB(105) = B1.RS.4               *TO GET RA+FL
   B2 = B1.AND.0017.LS.4
   OB(106) = B2.OR.0001 
   OB(107) = 0000 
25 EXIT 
77 END 24 
COMPILE   *DMA53B - INITITILIZE PARAMS
   MODULE DMA61,6000(200),LOCK
***       DMA61 - MEMORY RING REGISTER LOOP TEST (480)
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TO VERIFY THAT THE MEMORY RING REGISTER LOOP CAN
*         BE READ WHEN TWO MMI/MRI'S ARE INCLUDED IN THE LOOP.
*         THE 480 BIT REGISTER LOOP IS WRITTEN AND READ IN
*         DIAGNOSTIC MODE AND THE DATA VERIFIED.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE LOOP MSG 
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP
*         6. WRITE 480 BITS TO THE MEMORY RING REGISTER LOOP. 
*         7. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 3
*         8. READ 480 BITS FROM THE MEMORY RING REGISTER LOOP 
*            AND VERIFY THE DATA. 
*         9. IF AN ERROR IS DETECTED AND SL IS SELECTED, GOTO STEP 3
*        10. REPEAT STEPS 5 - 15  100 TIMES.
*        11. IF RM IS SELECTED, GO TO STEP 1
*        12. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        13. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA61 - MEM RING REG LOOP TEST (480) 
*            DMA61 .ABORT. P=*OCT, ERC=*DEC, LC=*DEC
*            // MODULE ERROR LIMIT - DMA61
*            DMA61 ERROR(S) IN MODULE = *DEC
*            DMA61 LC=*DEC, ERC=*DEC
*            DMA61 DATA ERR, EXP=*H*HH, ACT=*H*HH 
*            DMA61 PMI/MRI   IN  E 00FF55AA010204081020 HEX 
*            DMA61 MMI/MRI80 IN  E 40800123456789ABCDEF HEX 
*            DMA61 MMI/MRI81 IN  E 40800123456789ABCDEF HEX 
*            DMA61 MMI/MRI81 OUT E FF00AA55FEFDFBF7EFDF HEX 
*            DMA61 MMI/MRI80 OUT E FF00AA55FEFDFBF7EFDF HEX 
*            DMA61 PMI/MRI   OUT E BF7FFEDCBA9876543210 HEX 
*            DMA61               A *H*H                 HEX 
*            DMA61                     *H*H*H*H*H*H*H*H HEX 
*            DMA61 REG LOOP DATA ERROR
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         OB(00-47) - REG LOOP WRITE DATA 
*         IB(00-47) - REG LOOP READ DATA
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B12 - COMMAND ABORT MESSAGE FORMAT NUMBER 
*         B13 - MODULE RUNNING NUMBER.
* 
* 
*   2.3   SUBMODULES USED 
* 
*         97X - ABORT MESSAGE PROCESSOR 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA61 - MEM RING REG LOOP TEST (480)
2  FORMAT DMA61 .ABORT. P=*OCT, ERC=*DEC, LC=*DEC 
3  FORMAT // MODULE ERROR LIMIT - DMA61 
4  FORMAT DMA61 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA61 LC=*DEC, ERC=*DEC 
6  FORMAT DMA61 DATA ERR, EXP=*H*HH, ACT=*H*HH
7  FORMAT DMA61 PMI/MRI   IN  E 00FF55AA010204081020 HEX
10 FORMAT DMA61 MMI/MRI80 IN  E 40800123456789ABCDEF HEX
11 FORMAT DMA61 MMI/MRI81 IN  E 40800123456789ABCDEF HEX
12 FORMAT DMA61 MMI/MRI81 OUT E FF00AA55FEFDFBF7EFDF HEX
13 FORMAT DMA61 MMI/MRI80 OUT E FF00AA55FEFDFBF7EFDF HEX
14 FORMAT DMA61 PMI/MRI   OUT E BF7FFEDCBA9876543210 HEX
15 FORMAT DMA61               A *H*H                 HEX
16 FORMAT DMA61                     *H*H*H*H*H*H*H*H HEX
27 FORMAT DMA61 REG LOOP DATA ERROR 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM = 20, CLRCRP =100, ZEROS =102, ONES =104 
* 
* -------------------DATA---------------------------------- 
* 
   DATA (OB(100),H)4100, 0000, FFFF 
   DATA (OB(000),H)00FF, 55AA, 0102, 0408, 1020, 4080 
   DATA (OB(014),H)0123, 4567, 89AB, CDEF, 4080, 0123 
   DATA (OB(030),H)4567, 89AB, CDEF, FF00, AA55, FEFD 
   DATA (OB(044),H)FBF7, EFDF, FF00, AA55, FEFD, FBF7 
   DATA (OB(060),H)EFDF, BF7F, FEDC, BA98, 7654, 3210 
* 
* -----------------INITIALIZATION-------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE  *TEST NAME MSG 
   B13 = 61D                       *MODULE NUMBER 
* 
31 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST----------------------------------
* 
32 MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   B12 = 1                         *RES CHAN
   RES , ABT 70 
   B12 = 2                         *EXT RESET HPPS
   FUNC 251 , ABT 70
   B12 = 3
   OUT 2 WORDS FROM OB(ONES) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
   B12 = 2                         *CLR CRP/DMAU
   FUNC 250 , ABT 70
   B12 = 3
   OUT 2 WORDS FROM OB(CLRCRP) , ABT 70 
   OUT 2 WORDS FROM OB(ZEROS) , ABT 70
* 
   B0 = 72                         *WR REG LOOP 
   B12 = 2
   FUNC 255 , ABT 70
   B12 = 3
33 OUT CHAIN 2 WORDS FROM OB(B0) , ABT 70 
   GOTO 33 WHILE(B0-2.GE.2) 
   OUT 2 WORDS FROM OB(0) , ABT 70
* 
   B0 = 72
   B12 = 2                         *RD REG LOOP 
   FUNC 215 , ABT 70
   B12 = 4
34 IN CHAIN 2 WORDS TO IB(B0) , ABT 70
   GOTO 34 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0) , ABT 70 
* 
   WC = 74                         *COMPARE EXP AND ACT 
   COMPARE OB(0) TO IB(0) FOR WC, ABT 42
* 
35 GOTO 32 WHILE(B10+1.LE.100D)    *DO 100 TIMES
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 31       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* --------------DATA COMPARE ERROR--------------------- 
* 
42 B11 = B11+1
   IF(ES.AND.SL.EQ.0)GOTO 46       *NOT SL
   COPY OB(WC) TO OB(60) FOR 2
   COPY IB(WC) TO OB(62) FOR 2
   MSG 6, 4 WORDS FROM OB(60) TO DISPLAY
   GOTO 35
* 
* ------------------DISPLAY PROCESSOR-----------------
* 
46 MSG 27 TO LINE 1 
   MSG 7 TO LINE 2
   MSG 15, 2D WORDS FROM IB(0) TO LINE 3
   MSG 16, 8D WORDS FROM IB(2) TO LINE 4
   MSG 10 TO LINE 6 
   MSG 15, 2D WORDS FROM IB(12)TO LINE 7
   MSG 16, 8D WORDS FROM IB(14)TO LINE 10 
   MSG 11 TO LINE 12
   MSG 15, 2D WORDS FROM IB(24)TO LINE 13 
   MSG 16, 8D WORDS FROM IB(26)TO LINE 14 
   MSG 12 TO LINE 16
   MSG 15, 2D WORDS FROM IB(36)TO LINE 17 
   MSG 16, 8D WORDS FROM IB(40)TO LINE 20 
   MSG 13 TO LINE 22
   MSG 15, 2D WORDS FROM IB(50)TO LINE 23 
   MSG 16, 8D WORDS FROM IB(52)TO LINE 24 
   MSG 14 TO LINE 26
   MSG 15, 2D WORDS FROM IB(62)TO LINE 27 
   MSG 16, 8D WORDS FROM IB(64)TO LINE 30 
   PICTURE
   HALT 
   BLANK
   GOTO 75
* 
* --------------ABORT PROCESSOR------------------------ 
* 
70 B11 = B11+1                    *BUMP ERROR CNTR
   ENDSUB 
   IF(ES.AND.SL.EQ.0) GOTO 74     *NOT SCOPE LOOP 
   MSG 2(EA,B11,B10)TO DISPLAY    *ERROR MSG
   GOTO 35                        *SCOPE LOOP ON ERROR
* 
74 MSG 1 TO LINE 1                *ABORT MSG TO TERM
   MSG 2(EA,B11,B10)TO LINE 2 
   CALL 97X 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 35
* 
77 END 30 
COMPILE   *DMA61 - MEM RING REG LOOP TEST (480) 
   MODULE DMA63,6000(200),LOCK
***       DMA63 - MMI/MRI I/O REG TEST (480)
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         TESTS THE INPUT AND OUTPUT REGISTERS OF THE SECOND
*         MMI/MRI ON THE MEMORY RING.  THIS MODULE STEPS A
*         PACKET OF ALL 1'S AROUND THE MEMORY RING, READING 
*         THE MEMORY RING REGISTER LOOP WHEN THE THE PACKET 
*         IS IN THE OUTPUT REGISTER OF THE 1ST MMI/MRI, THE 
*         INPUT AND OUTPUT REGISTERS OF THE SECOND MMI/MRI, 
*         AND AGAIN WHEN THE PACKET IS IN THE INPUT REGISTER
*         OF THE PMI/MRI.  ALSO TESTS THE ADDITIONAL MEMORY 
*         RING CABLES FOR THE NEW MMI/MRI.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. DISPLAY THE REPEAT CONDITION MSG IF SL IS SELECTED.
*         4. RESET ALL HPP'S
*         5. CLEAR THE CRP AND DMAU 
*         6. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         7. SEND A 6 CONTROL FUNCTION - STOP MEMORY RING.
*         8. SEND A 8 BLOCK COUNT FUNCTION. 
*         9. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        10. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        11. SEND A C SEND MEMORY PACKET FUNCTION.
*        12  SEND A 6 CONTROL FUNCTION - STEP MEMORY RING.
*        12  SEND A 6 CONTROL FUNCTION - STEP MEMORY RING.
*        12  SEND A 6 CONTROL FUNCTION - STEP MEMORY RING.
*        13. READ THE MEMORY RING REGISTER LOOP AND VERIFY THE
*            PACKET DATA IN THE 1ST MMI/MRI OUTPUT REGISTER.
*        14. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        15. SEND A 6 CONTROL FUNCTION - STEP MEMORY RING.
*        16. READ THE MEMORY RING REGISTER LOOP AND VERIFY THE
*            PACKET DATA IN THE 2ND MMI/MRI INPUT REGISTER. 
*        17. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        18  SEND A 6 CONTROL FUNCTION - STEP MEMORY RING.
*        19. READ THE MEMORY RING REGISTER LOOP AND VERIFY THE
*            PACKET DATA IN THE 2ND MMI/MRI OUTPUT REGISTER.
*        20. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        21. SEND A 6 CONTROL FUNCTION - STEP MEMORY RING.
*        22. READ THE MEMORY RING REGISTER LOOP AND VERIFY THE
*            PACKET DATA IN THE PMI/MRI INPUT REGISTER. 
*        23. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 3. 
*        24. REPEAT STEPS 3 - 23, 256 TIMES.
*        24. IF RM IS SELECTED, GO TO STEP 1. 
*        25. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        26. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA63 MEMORY RING REGISTER LOOP
*            DMA63 NO RESPONSE ON CONNECT FCTN
*            DMA63 RESPONSE ERROR ON CONNECT FCTN 
*            DMA63 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA63 MR REG LOOP DATA ERROR - STEP *H        HEX
*            DMA63               A *H*H                    HEX
*            DMA63                     *H*H *H*H *H*H *H*H HEX
*            DMA63 PMI/MRI   IN  E *H*H                    HEX
*            DMA63                     *H*H *H*H *H*H *H*H HEX
*            DMA63 MMI/MRI81 IN  E *H*H                    HEX
*            DMA63                     *H*H *H*H *H*H *H*H HEX
*            DMA63 MMI/MRI81 OUT E *H*H                    HEX
*            DMA63                     *H*H *H*H *H*H *H*H HEX
*            DMA63 MMI/MRI80 OUT E *H*H                    HEX
*            DMA63                     *H*H *H*H *H*H *H*H HEX
*            DMA63 GSW = *H*HH, DFR FLAG = 0
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B12 - COMMAND ABORT MESSAGE FORMAT NUMBER 
*         B13 - MODULE RUNNING NUMBER.
*         IB(00 - 47) - REG LOOP READ DATA
*         OB(100-147) - EXP REG LOOP DATA - STEP 1
*         OB(150-217) - EXP REG LOOP DATA - STEP 2
*         OB(220-267) - EXP REG LOOP DATA - STEP 3
*         OB(270-337) - EXP REG LOOP DATA - STEP 4
* 
* 
*   2.3   SUBMODULES USED 
* 
*         63A - ERROR MESSAGE PROCESSOR 
* 
* --------------------------------------------------------------- 
* 
1  FORMAT DMA63 - MMI/MRI I/O REG TEST (480)
2  FORMAT DMA63 .ABORT. P=*OCT, ERC=*DEC, LC=*DEC 
3  FORMAT // MODULE ERROR LIMIT - DMA63 
4  FORMAT DMA63 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA63 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=54, ZEROS=56, ONES=60, SREQ=0 
   EQUATE CONN=4, STOPMR=10, BLKNT=14, WRADDL=20, CRES= 40
   EQUATE WRADDU=24, SENDMP=30, STEPMR=34, RUNMR=50 
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, C000, 08D1 
   DATA (OB(016),H)FFFF, 03D1, FFFF, 04D1, FFFF, 0CD1, AA00 
   DATA (OB(034),H)06D1, E000, 02D0, 4000, 02D0, 4840, 06D1 
   DATA (OB(052),H)8000, 4100, 0000, FFFF 
   DATA (OB(100),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(116),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(134),H)0000, 6000, 0000, 0000, 0000, 0000, 65AA 
   DATA (OB(152),H)00FF, FFD1, FFFF, FFFF, 6000, 0000, 0000 
   DATA (OB(170),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(206),H)0000, 0000, 0000, 0000, 0000, 05AA, 00FF 
   DATA (OB(224),H)FFD1, FFFF, FFFF, 6000, 0000, 0000, 0000 
   DATA (OB(242),H)0000, 6000, 0000, 0000, 0000, 0000, 6000 
   DATA (OB(260),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(276),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(314),H)0000, 0000, 0000, 0000, 0000, 65AA, 00FF 
   DATA (OB(332),H)FFD1, FFFF, FFFF, 6000, 0000, 0000, 0000 
   DATA (OB(350),H)0000, 6000, 0000, 0000, 0000, 0000, 05AA 
   DATA (OB(366),H)00FF, FFD1, FFFF, FFFF, 0000, 0000, 0000 
   DATA (OB(404),H)0000, 0000, 0000, 0000, 0000, 0000, 0000 
   DATA (OB(422),H)6000, 0000, 0000, 0000, 0000, 6000, 0000 
   DATA (OB(440),H)0000, 0000, 0000, 6000, 0000, 0000, 0000 
   DATA (OB(456),H)0000 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *TEST NAME MSG 
   B13 = 63D                       *MODULE NUMBER 
* 
30 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST----------------------------------
* 
32 MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   RES                             *RESERVE CHANNEL 
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)ERROR 01/631D GOTO 40 
   GOSUB 56                        *READ CF/DF
   ERROR 02/632D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = STOPMR                     *STOP MEM RING 
   GOSUB 52 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = STEPMR                     *STEP MEM RING 
   GOSUB 52                         3 TIMES 
   GOSUB 52 
   GOSUB 52 
   GOSUB 60                        *RD MR REG LOOP
   ERROR 03/633D                   *CK MRI 1 OUTPUT REG 
* 
   COMPARE OB(100) TO IB(00) FOR WC, ABT 40 
* 
   BA = STEPMR                     *SEND STEP MR
   GOSUB 52 
   GOSUB 60                        *RD MR REG LOOP
   ERROR 04/634D                   *CK MRI 2 INPUT REG
* 
   COMPARE OB(174) TO IB(00) FOR WC, ABT 40 
* 
   BA = STEPMR                     *STEP MEM RING 
   GOSUB 52 
   GOSUB 60                        *RD MR REG LOOP
   ERROR 05/635D                   *CK MRI 2 OUTPUT REG 
* 
   COMPARE OB(270) TO IB(00) FOR WC, ABT 40 
* 
   BA = STEPMR                     *SEND STEP MR
   GOSUB 52 
   GOSUB 60                        *RD MR REG LOOP
   ERROR 06/636D                   *CK PMI INPUT REG
* 
   COMPARE OB(364) TO IB(00) FOR WC, ABT 40 
* 
34 GOTO 32 WHILE(B10+1.LE.377)
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 30       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 34       *SL
   CALL 63A                        *CALL MSG PROCESSOR
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
60 B0 = 72                         *READ REG LOOP 
   FUNC 215 
62 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 62 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0)
   WC = 74
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 34
* 
77 END 20 
COMPILE   *DMA63 - MMI/MRI I/O REG TEST (480) 
   MODULE DMA63A,6000(200),LOCK 
*         DMA63A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA63 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA63 
* 
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA63 MEMORY RING REGISTER LOOP 
1  FORMAT DMA63 NO RESPONSE ON CONNECT FCTN 
2  FORMAT DMA63 RESPONSE ERROR ON CONNECT FCTN
3  FORMAT DMA63 EXP=*H*H*H*HH, ACT=*H*H*H*HH
4  FORMAT DMA63 MR REG LOOP DATA ERROR - STEP *H        HEX 
5  FORMAT DMA63               A *H*H                    HEX 
6  FORMAT DMA63                     *H*H *H*H *H*H *H*H HEX 
7  FORMAT DMA63 PMI/MRI   IN  E *H*H                    HEX 
10 FORMAT DMA63                     *H*H *H*H *H*H *H*H HEX 
13 FORMAT DMA63 MMI/MRI81 IN  E *H*H                    HEX 
14 FORMAT DMA63                     *H*H *H*H *H*H *H*H HEX 
15 FORMAT DMA63 MMI/MRI81 OUT E *H*H                    HEX 
16 FORMAT DMA63                     *H*H *H*H *H*H *H*H HEX 
17 FORMAT DMA63 MMI/MRI80 OUT E *H*H                    HEX 
20 FORMAT DMA63                     *H*H *H*H *H*H *H*H HEX 
27 FORMAT DMA63 GSW = *H*HH, DFR FLAG = 0 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 B0 = EM
   IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
   IF(EM.EQ.5)GOTO 35 
   IF(EM.EQ.6)GOTO 36 
* 
31 MSG 1 TO LINE 1
   MSG 27, 2 WORDS FROM SB(0) TO LINE 2 
   GOTO 75
* 
32 MSG 2 TO LINE 1
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 3, 8 WORDS FROM OB(200) TO LINE 2
   GOTO 75
* 
33 MSG 07, 2 WORDS FROM OB(100) TO LINE 23
   MSG 10, 8 WORDS FROM OB(102) TO LINE 24
   MSG 13, 2 WORDS FROM OB(124) TO LINE 11
   MSG 14, 8 WORDS FROM OB(126) TO LINE 12
   MSG 15, 2 WORDS FROM OB(136) TO LINE 16
   MSG 16, 8 WORDS FROM OB(140) TO LINE 17
   MSG 17, 2 WORDS FROM OB(150) TO LINE 04
   MSG 20, 8 WORDS FROM OB(152) TO LINE 05
   GOTO 41
* 
34 MSG 07, 2 WORDS FROM OB(174) TO LINE 23
   MSG 10, 8 WORDS FROM OB(176) TO LINE 24
   MSG 13, 2 WORDS FROM OB(220) TO LINE 11
   MSG 14, 8 WORDS FROM OB(222) TO LINE 12
   MSG 15, 2 WORDS FROM OB(232) TO LINE 16
   MSG 16, 8 WORDS FROM OB(234) TO LINE 17
   MSG 17, 2 WORDS FROM OB(244) TO LINE 04
   MSG 20, 8 WORDS FROM OB(246) TO LINE 05
   GOTO 41
* 
35 MSG 07, 2 WORDS FROM OB(270) TO LINE 23
   MSG 10, 8 WORDS FROM OB(272) TO LINE 24
   MSG 13, 2 WORDS FROM OB(314) TO LINE 11
   MSG 14, 8 WORDS FROM OB(316) TO LINE 12
   MSG 15, 2 WORDS FROM OB(326) TO LINE 16
   MSG 16, 8 WORDS FROM OB(330) TO LINE 17
   MSG 17, 2 WORDS FROM OB(340) TO LINE 04
   MSG 20, 8 WORDS FROM OB(342) TO LINE 05
   GOTO 41
* 
36 MSG 07, 2 WORDS FROM OB(364) TO LINE 23
   MSG 10, 8 WORDS FROM OB(366) TO LINE 24
   MSG 13, 2 WORDS FROM OB(410) TO LINE 11
   MSG 14, 8 WORDS FROM OB(412) TO LINE 12
   MSG 15, 2 WORDS FROM OB(422) TO LINE 16
   MSG 16, 8 WORDS FROM OB(424) TO LINE 17
   MSG 17, 2 WORDS FROM OB(434) TO LINE 04
   MSG 20, 8 WORDS FROM OB(436) TO LINE 05
* 
41 MSG 4(B0) TO LINE 1             *ACTUAL REG LOOP DATA
   MSG 0 TO LINE 2
   MSG 05, 2 WORDS FROM IB(00) TO LINE 25 
   MSG 06, 8 WORDS FROM IB(02) TO LINE 26 
   MSG 05, 2 WORDS FROM IB(24) TO LINE 13 
   MSG 06, 8 WORDS FROM IB(26) TO LINE 14 
   MSG 05, 2 WORDS FROM IB(36) TO LINE 20 
   MSG 06, 8 WORDS FROM IB(40) TO LINE 21 
   MSG 05, 2 WORDS FROM IB(50) TO LINE 6
   MSG 06, 8 WORDS FROM IB(52) TO LINE 7
* 
75 PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA63A - MSG PROCESSOR 
   MODULE DMA64,6000(200),LOCK
***       DMA64 - MMI/MRI 80 READ TEST (480)
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         THIS TEST IS ESSENTIALLY THE SAME AS DMA13 EXCEPT 
*         THAT IT IS INTENDED RETEST MMI/MRI 80 IN A TWO HPM
*         CONFIGURATION AND A 480 BIT REGISTER LOOP.
* 
*         TESTS THE ABILITY OF THE MMI/MRI TO READ DATA FROM
*         HPM AND ASSEMBLE A READ DATA PACKET ON THE MEMORY 
*         RING.  ALSO TESTS  THE DMAU PORT OF THE MMI AND THE 
*         LOST PACKET DETECT LOGIC OF THE PMI/MRI.
*         DATA IS VERIFIED THROUGH THE USE OF THE STEP MEMORY 
*         RING FUNCTION AND THE MEMORY RING REGISTER LOOP.
*         AFTER THE HPP HAS BEEN DOWNLOADED AND HPM INITIALIZED 
*         WITH DATA, THIS MODULE CAUSES THE MMI/MRI TO READ 
*         DATA FROM HPM AND PUT DATA PACKETS ON THE MEMORY RING.
*         BECAUSE THESE PACKETS ARE DESTINED FOR A NON-EXISTANT 
*         WRITER, THEY STAY ON THE RING UNTIL THEY ARE PULLED 
*         OFF BY THE PMI/MRI ON THEIR SECOND TIME AROUND THE
*         RING.  CONSEQUENTLY, THE ALGORITHM FOR STEPPING THE 
*         RING AND READING THE REGISTER LOOP CONSISTS OF A
*         MAJOR CYCLE OF STEPPING AND READING THE REGISTER LOOP 
*         6 TIMES WHILE VALID DATA IS IN THE MMI/MRI OUTPUT 
*         REGISTER, AND THEN STEPPING THE RING 6 MORE TIMES TO
*         ALLOW THE PACKETS TO MAKE IT BACK TO THE PMI/MRI INPUT
*         REGISTER AND PULLED OFF AS LOST PACKETS.  THIS MAJOR
*         CYCLE THEN REPEATS 170 TIMES, EACH CYCLE PERFORMING 
*         6 HPM READS FOR A TOTAL OF 1020 HPM READS.
* 
*         LOCATIONS FC00 THROUGH FFFB HEX OF HPM ARE READ 
*         USING A BLOCK COUNT OF 3FC HEX.  THE DATA IN EACH 
*         HPM LOCATION IS AN INCRIMENTAL PATTERN ON 16-BIT
*         BOUNDARIES.  THE PATTERN GOES FROM FC00FC00FC00FC00 
*         TO FFFBFFFBFFFBFFFB.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. CLEAR THE CRP AND DMAU 
*         4. RESET ALL HPP'S
*         5  DOWNLOAD AND RUN HPP PROGRAM TO WRITE SEQUENTIAL DATA
*            INTO HPM.
*         6. DISPLAY THE LOOP MSG 
*         7. CLEAR THE CRP AND DMAU 
*         8. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         9. SEND A 6 CONTROL FUNCTION - STOP MEMORY RING.
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        12. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14  STEP THE MEMORY RING 6 TIMES TO ALLOW THE READ 
*            PACKET TO REACH THE MMI/MRI. 
*        15. STEP THE MEMORY RING 1 TIME. 
*        16. READ THE MEMORY RING REGISTER LOOP AND VERIFY THE
*            PACKET DATA IN THE MMI/MRI OUTPUT REGISTER.
*        17. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 6. 
*        18. REPEAT STEPS 15 - 17 SIX TIMES.
*        19. STEP THE MEMORY RING SIX TIMES.
*        20. REPEAT STEPS 15 - 19 FOR THE BLOCK COUNT.
*        21. STEP THE MEMORY RING 1 TIME
*        22. READ THE MEMORY RING REG LOOP AND VERIFY AN END
*            OF TRANSFER. 
*        23. IF RM IS SELECTED, GO TO STEP 6. 
*        24. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        25. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA64 - MMI/MRI 80 READ TEST (480) 
*            DMA64 -  EXECUTING 
*            // MODULE ERROR LIMIT - DMA64
*            DMA64 ERROR(S) IN MODULE = *DEC
*            DMA64 LC=*DEC, ERC=*DEC
*            DMA64 - MMI/MRI HPM READ TEST
*            DMA64 NO RESPONSE ON CONNECT FCTN
*            DMA64 RESPONSE ERROR ON CONNECT FCTN 
*            DMA64 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA64 HPM80 READ DATA ERROR
*            DMA64 MMI/MRI80 OUT E *H*H                    HEX
*            DMA64                     *H*H *H*H *H*H *H*H HEX
*            DMA64 PMI/MRI   IN  A *H*H                    HEX
*            DMA64                     *H*H *H*H *H*H *H*H HEX
*            DMA64 MMI/MRI80 IN  A *H*H                    HEX
*            DMA64                     *H*H *H*H *H*H *H*H HEX
*            DMA64 MMI/MRI81 IN  A *H*H                    HEX
*            DMA64                     *H*H *H*H *H*H *H*H HEX
*            DMA64 MMI/MRI81 OUT A *H*H                    HEX
*            DMA64                     *H*H *H*H *H*H *H*H HEX
*            DMA64 MMI/MRI80 OUT A *H*H                    HEX
*            DMA64                     *H*H *H*H *H*H *H*H HEX
*            DMA64 PMI/MRI   OUT A *H*H                    HEX
*            DMA64                     *H*H *H*H *H*H *H*H HEX
*            DMA64 END TRANSFER RESPONSE ERROR
*            DMA64     STEP = *D
*            DMA64 PACKET # = *DEC/1021 
*            DMA64 EXP                XXXX XXXX XXXX XXXX HEX 
*            DMA64 GSW = *H*HH, DFR FLAG = 0
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         NONE
* 
* 
*   2.3   MODULES USED
* 
*         80A - HPM DOWNLOAD, PART 1, EXITS TO 80B
* 
*         80B - HPM DOWNLOAD, PART 2, EXITS TO 80C
* 
*         80C - HPM DOWNLOAD, PART 3, RETURNS TO DMA64
* 
*         641 - MAIN TEST LOOP
* 
*         64A - MSG PROCESSOR 
* 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE CLRCRP=00, ZEROS=02, ONES=04
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)4100, 0000, FFFF 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA64 - MMI/MRI 80 READ TEST (480)
* 
* ------------------START---------------------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE 
* 
   RES
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   CALL 80A                        *DOWNLOAD PATTERN
* 
   EXIT TO 641                     *EXIT TO MAIN TEST 
   END 30 
COMPILE   *DMA64 - MMI/MRI 80 READ TEST (480) 
* 
   MODULE DMA641,6000(200),LOCK 
*         DMA641 - MAIN TEST
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA64 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         HPM LOADED
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B9  - MODULO 8 COUNTER
*         B10 - READ DATA BLOCK COUNTER 
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         IB(000-003) - SRI RESPONSE
*         IB(000-073) - MR REG LOOP 
*         OB(100-111) - EXPECTED DATA 
* 
*   2.3   MODULES USED
* 
*         64A - MSG PROCESSOR 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA64 -    EXECUTING
3  FORMAT // MODULE ERROR LIMIT - DMA64 
4  FORMAT DMA64 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA64 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=54, ZEROS=56, ONES=60, SREQ=0 
   EQUATE CONN=4, STOPMR=10, BLKNT=14, RDADDL=20, CRES= 40
   EQUATE RDADDU=24, SENDMP=30, STEPMR=34, RUNMR=50 
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, C000, 08D1 
   DATA (OB(016),H)03FC, 01D1, FC00, 02D1, 0000, 0CD1, 8000 
   DATA (OB(034),H)06D1, E000, 02D0, 4000, 02D0, 4840, 06D1 
   DATA (OB(052),H)8000, 4100, 0000, FFFF 
   DATA (OB(100),H)2100, 0000, 0001, 0002, 0003, 62D1 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *RUNNING MSG 
   B13 = 64D                       *TEST NUMBER 
   B11 = 0                         *CLEAR ERROR CNTR
* 
22 B10 = 1                         *CLEAR LOOP CNTR 
* 
* ------------------TEST----------------------------------
* 
30 RES
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/641D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/642D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = STOPMR                     *STOP MEM RING 
   GOSUB 52 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = RDADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = STEPMR                     *STEP MEM RING 
   GOSUB 52                        *STEP 1
   GOSUB 52                        *STEP 2
   GOSUB 52                        *STEP 3
   B5 = 0                          *PACKET COUNTER
   OB(100) = 41                    *REQ CNTR NOT EMPTY
31 B9 = 1                          *LOOP COUNTER
32 GOSUB 52                        *STEP
* 
   MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   GOSUB 60                        *RD MR REG LOOP
   GOSUB 50                        *INIT EXP DATA 
   ERROR 03/643D
   WC = 12                         *CHK HPM DATA
* 
   COMPARE OB(100) TO IB(50) FOR WC , ABT 40
* 
   GOTO 33 WHILE (B10+1.LE.1757)   *WHILE REQ CNTR NOT EMPTY
   OB(100) = 141                   *REQ CNTR EMPTY
33 GOTO 32 WHILE(B9+1.LE.6)        *STEP AND READ 6 TIMES 
* 
34 GOSUB 52 
   GOTO 34 WHILE(B9+1.LE.14)       *STEP 6 TIMES
* 
   GOTO 31 WHILE(B10+0.LE.1774)    *DO 1020 READS 
   GOSUB 52                        *STEP 1 TIME 
   GOSUB 60                        *RD MR REG LOOP
   ERROR 04/644D
   WC = 2                          *CHK FOR END OF XFER 
* 
   COMPARE OB(112) TO IB(50) FOR WC , ABT 40
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 22       *SL
   CALL 64A                        *GOTO MSG PROCESSOR
   GOTO 22
* 
* -------------------SUBROUTINES----------------------
* 
50 OB(102) = B5.RS.10.OR.0374      *INIT EXP DATA 
   OB(103) = B5.AND.0377
   OB(104) = B5.RS.10.OR.0374 
   OB(105) = B5.AND.0377
   OB(106) = B5.RS.10.OR.0374 
   OB(107) = B5.AND.0377
   OB(110) = B5.RS.10.OR.0374 
   OB(111) = B5.AND.0377
   B5 = B5 + 1                     *INC PACKET COUNT
   RETURN 
* 
52 RES                             *RES CHANNEL 
   WC = 4 
   FOUT 273                        *WR RCR/RDR
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
60 RES                             *RD MR REG LOOP
   B0 = 72
   FUNC 215 
62 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 62 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0)
   RETURN 
* 
77 END 20 
COMPILE   *DMA641 - MAIN TEST 
   MODULE DMA64A,6000(200),LOCK 
*         DMA64A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA64 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         THE EM REGISTER CONTAINS THE ERROR NUMBER 
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
* 
*         B9      = STEP NUMBER 
*         B10     = LOOP COUNT
*         SB(0-1) = CRP GSW 
*         IB(0-3) = SRI RESPONSE   OR 
*         IB(0-73)= MR REG LOOP DATA
* 
* 
*   2.3   SUBMODULES USED 
* 
*         NONE
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA64 - MMI/MRI 80 READ TEST (480)
1  FORMAT DMA64 NO RESPONSE ON CONNECT FCTN 
2  FORMAT DMA64 RESPONSE ERROR ON CONNECT FCTN
3  FORMAT DMA64 EXP=*H*H*H*HH, ACT=*H*H*H*HH
4  FORMAT DMA64 HPM80 READ DATA ERROR 
5  FORMAT DMA64 MMI/MRI80 OUT E *H*H                    HEX 
6  FORMAT DMA64                     *H*H *H*H *H*H *H*H HEX 
7  FORMAT DMA64 PMI/MRI   IN  A *H*H                    HEX 
10 FORMAT DMA64                     *H*H *H*H *H*H *H*H HEX 
11 FORMAT DMA64 MMI/MRI80 IN  A *H*H                    HEX 
12 FORMAT DMA64                     *H*H *H*H *H*H *H*H HEX 
13 FORMAT DMA64 MMI/MRI81 IN  A *H*H                    HEX 
14 FORMAT DMA64                     *H*H *H*H *H*H *H*H HEX 
15 FORMAT DMA64 MMI/MRI81 OUT A *H*H                    HEX 
16 FORMAT DMA64                     *H*H *H*H *H*H *H*H HEX 
17 FORMAT DMA64 MMI/MRI80 OUT A *H*H                    HEX 
20 FORMAT DMA64                     *H*H *H*H *H*H *H*H HEX 
21 FORMAT DMA64 PMI/MRI   OUT A *H*H                    HEX 
22 FORMAT DMA64                     *H*H *H*H *H*H *H*H HEX 
23 FORMAT DMA64 END TRANSFER RESPONSE ERROR 
24 FORMAT DMA64     STEP = *D 
25 FORMAT DMA64 PACKET # = *DEC/1021
26 FORMAT DMA64 EXP                XXXX XXXX XXXX XXXX HEX
27 FORMAT DMA64 GSW = *H*HH, DFR FLAG = 0 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
* 
31 MSG 1 TO LINE 1
   MSG 27, 2 WORDS FROM SB(0) TO LINE 2 
   GOTO 75
* 
32 MSG 2 TO LINE 1
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 3, 8 WORDS FROM OB(200) TO LINE 2
   GOTO 75
* 
33 MSG 4 TO LINE 1
   MSG 05, 2 WORDS FROM OB(100) TO LINE 3 
   MSG 06, 8 WORDS FROM OB(102) TO LINE 4 
   GOTO 41
* 
34 MSG 23 TO LINE 1 
   MSG 05, 2 WORDS FROM OB(112) TO LINE 3 
   MSG 26 TO LINE 4 
* 
41 MSG 17, 2 WORDS FROM IB(50) TO LINE 6   *80 OUT
   MSG 20, 8 WORDS FROM IB(52) TO LINE 7
   MSG 13, 2 WORDS FROM IB(24) TO LINE 11  *81 IN 
   MSG 14, 8 WORDS FROM IB(26) TO LINE 12 
   MSG 15, 2 WORDS FROM IB(36) TO LINE 14  *81 OUT
   MSG 16, 8 WORDS FROM IB(40) TO LINE 15 
   MSG 07, 2 WORDS FROM IB(00) TO LINE 17  *PMI IN
   MSG 10, 8 WORDS FROM IB(02) TO LINE 20 
   MSG 21, 2 WORDS FROM IB(62) TO LINE 22  *PMI OUT 
   MSG 22, 8 WORDS FROM IB(64) TO LINE 23 
   MSG 11, 2 WORDS FROM IB(12) TO LINE 25  *80 IN 
   MSG 12, 8 WORDS FROM IB(14) TO LINE 26 
   MSG 24(B9) TO LINE 27
   MSG 25(B10) TO LINE 30 
* 
75 PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA64A - MSG PROCESSOR 
   MODULE DMA65,6000(200),LOCK
***       DMA65 - MMI/MRI 81 READ TEST (480)
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         THIS TEST IS ESSENTIALLY THE SAME AS DMA13 EXCEPT 
*         THAT IT IS INTENDED FOR A SECOND MRI ON THE MEMORY
*         RING WITH AN ADDRESS OF 81 HEX AND A 480 BIT
*         REGISTER LOOP.
* 
*         TESTS THE ABILITY OF THE MMI/MRI TO READ DATA FROM
*         HPM AND ASSEMBLE A READ DATA PACKET ON THE MEMORY 
*         RING.  ALSO TESTS  THE DMAU PORT OF THE MMI AND THE 
*         LOST PACKET DETECT LOGIC OF THE PMI/MRI.
*         DATA IS VERIFIED THROUGH THE USE OF THE STEP MEMORY 
*         RING FUNCTION AND THE MEMORY RING REGISTER LOOP.
*         AFTER THE HPP HAS BEEN DOWNLOADED AND HPM INITIALIZED 
*         WITH DATA, THIS MODULE CAUSES THE MMI/MRI TO READ 
*         DATA FROM HPM AND PUT DATA PACKETS ON THE MEMORY RING.
*         BECAUSE THESE PACKETS ARE DESTINED FOR A NON-EXISTANT 
*         WRITER, THEY STAY ON THE RING UNTIL THEY ARE PULLED 
*         OFF BY THE PMI/MRI ON THEIR SECOND TIME AROUND THE
*         RING.  CONSEQUENTLY, THE ALGORITHM FOR STEPPING THE 
*         RING AND READING THE REGISTER LOOP CONSISTS OF A
*         MAJOR CYCLE OF STEPPING AND READING THE REGISTER LOOP 
*         6 TIMES WHILE VALID DATA IS IN THE MMI/MRI OUTPUT 
*         REGISTER, AND THEN STEPPING THE RING 6 MORE TIMES TO
*         ALLOW THE PACKETS TO MAKE IT BACK TO THE PMI/MRI INPUT
*         REGISTER AND PULLED OFF AS LOST PACKETS.  THIS MAJOR
*         CYCLE THEN REPEATS 170 TIMES, EACH CYCLE PERFORMING 
*         6 HPM READS FOR A TOTAL OF 1020 HPM READS.
* 
*         LOCATIONS FC00 THROUGH FFFB HEX OF HPM ARE READ 
*         USING A BLOCK COUNT OF 3FC HEX.  THE DATA IN EACH 
*         HPM LOCATION IS AN INCRIMENTAL PATTERN ON 16-BIT
*         BOUNDARIES.  THE PATTERN GOES FROM FC00FC00FC00FC00 
*         TO FFFBFFFBFFFBFFFB.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. CLEAR THE CRP AND DMAU 
*         4. RESET ALL HPP'S
*         5  DOWNLOAD AND RUN HPP PROGRAM TO WRITE SEQUENTIAL DATA
*            INTO HPM.
*         6. DISPLAY THE LOOP MSG 
*         7. CLEAR THE CRP AND DMAU 
*         8. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         9. SEND A 6 CONTROL FUNCTION - STOP MEMORY RING.
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        12. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14  STEP THE MEMORY RING 6 TIMES TO ALLOW THE READ 
*            PACKET TO REACH THE MMI/MRI. 
*        15. STEP THE MEMORY RING 1 TIME. 
*        16. READ THE MEMORY RING REGISTER LOOP AND VERIFY THE
*            PACKET DATA IN THE MMI/MRI OUTPUT REGISTER.
*        17. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 6. 
*        18. REPEAT STEPS 15 - 17 SIX TIMES.
*        19. STEP THE MEMORY RING SIX TIMES.
*        20. REPEAT STEPS 15 - 19 FOR THE BLOCK COUNT.
*        21. STEP THE MEMORY RING 1 TIME
*        22. READ THE MEMORY RING REG LOOP AND VERIFY AN END
*            OF TRANSFER. 
*        23. IF RM IS SELECTED, GO TO STEP 6. 
*        24. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        25. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA65 - MMI/MRI 81 READ TEST (480) 
*            DMA65 -  EXECUTING 
*            // MODULE ERROR LIMIT - DMA65
*            DMA65 ERROR(S) IN MODULE = *DEC
*            DMA65 LC=*DEC, ERC=*DEC
*            DMA65 - MMI/MRI HPM READ TEST
*            DMA65 NO RESPONSE ON CONNECT FCTN
*            DMA65 RESPONSE ERROR ON CONNECT FCTN 
*            DMA65 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA65 HPM81 READ DATA ERROR
*            DMA65 MMI/MRI81 OUT E *H*H                    HEX
*            DMA65                     *H*H *H*H *H*H *H*H HEX
*            DMA65 PMI/MRI   IN  A *H*H                    HEX
*            DMA65                     *H*H *H*H *H*H *H*H HEX
*            DMA65 MMI/MRI80 IN  A *H*H                    HEX
*            DMA65                     *H*H *H*H *H*H *H*H HEX
*            DMA65 MMI/MRI81 IN  A *H*H                    HEX
*            DMA65                     *H*H *H*H *H*H *H*H HEX
*            DMA65 MMI/MRI81 OUT A *H*H                    HEX
*            DMA65                     *H*H *H*H *H*H *H*H HEX
*            DMA65 MMI/MRI80 OUT A *H*H                    HEX
*            DMA65                     *H*H *H*H *H*H *H*H HEX
*            DMA65 PMI/MRI  OUT A *H*H                    HEX 
*            DMA65                    *H*H *H*H *H*H *H*H HEX 
*            DMA65 END TRANSFER RESPONSE ERROR
*            DMA65     STEP = *D
*            DMA65 PACKET # = *DEC/1021 
*            DMA65 EXP                XXXX XXXX XXXX XXXX HEX 
*            DMA65 GSW = *H*HH, DFR FLAG = 0
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         NONE
* 
* 
*   2.3   MODULES USED
* 
*         83A - HPM DOWNLOAD, PART 1, EXITS TO 83B
* 
*         83B - HPM DOWNLOAD, PART 2, EXITS TO 83C
* 
*         83C - HPM DOWNLOAD, PART 3, RETURNS TO DMA65
* 
*         651 - MAIN TEST LOOP
* 
*         65A - MSG PROCESSOR 
* 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE CLRCRP=00, ZEROS=02, ONES=04
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)4100, 0000, FFFF 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA65 - MMI/MRI 81 READ TEST (480)
* 
* ------------------START---------------------------------------- 
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE 
* 
   RES
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   CALL 83A                        *DOWNLOAD PATTERN
* 
   EXIT TO 651                     *EXIT TO MAIN TEST 
   END 30 
COMPILE   *DMA65 - MMI/MRI 81 READ TEST (480) 
* 
   MODULE DMA651,6000(200),LOCK 
*         DMA651 - MAIN TEST
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA65 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         HPM LOADED
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B9  - MODULO 8 COUNTER
*         B10 - READ DATA BLOCK COUNTER 
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         IB(000-003) - SRI RESPONSE
*         IB(000-073) - MR REG LOOP 
*         OB(100-111) - EXPECTED DATA 
* 
*   2.3   MODULES USED
* 
*         65A - MSG PROCESSOR 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA65 -    EXECUTING
3  FORMAT // MODULE ERROR LIMIT - DMA65 
4  FORMAT DMA65 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA65 LC=*DEC, ERC=*DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=54, ZEROS=56, ONES=60, SREQ=0 
   EQUATE CONN=4, STOPMR=10, BLKNT=14, RDADDL=20, CRES= 40
   EQUATE RDADDU=24, SENDMP=30, STEPMR=34, RUNMR=50 
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, C000, 08D1 
   DATA (OB(016),H)03FC, 01D1, FC00, 02D1, 0000, 0CD1, 8100 
   DATA (OB(034),H)06D1, E000, 02D0, 4000, 02D0, 4840, 06D1 
   DATA (OB(052),H)8000, 4100, 0000, FFFF 
   DATA (OB(100),H)2100, 0000, 0001, 0002, 0003, 62D1 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE  *RUNNING MSG 
   B13 = 65D                       *TEST NUMBER 
   B11 = 0                         *CLEAR ERROR CNTR
* 
22 B10 = 1                         *CLEAR LOOP CNTR 
* 
* ------------------TEST----------------------------------
* 
30 RES
   FUNC 251                        *EXT RESET HPPS
   OUT 2 WORDS FROM OB(ONES)
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/651D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/652D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = STOPMR                     *STOP MEM RING 
   GOSUB 52 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = RDADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = STEPMR                     *STEP MEM RING 
   GOSUB 52                        *STEP
   GOSUB 52                        *STEP
   GOSUB 52                        *STEP
   GOSUB 52                        *STEP
   GOSUB 52                        *STEP
   B5 = 0                          *PACKET COUNTER
   OB(100) = 41                    *REQ CNTR NOT EMPTY
31 B9 = 1                          *LOOP COUNTER
32 GOSUB 52                        *STEP
* 
   MSG 5(B10, B11) TO DISPLAY      *LOOP MSG
* 
   GOSUB 60                        *RD MR REG LOOP
   GOSUB 50                        *INIT EXP DATA 
   ERROR 03/653D
   WC = 12                         *CHK HPM DATA
* 
   COMPARE OB(100) TO IB(36) FOR WC , ABT 40
* 
   GOTO 33 WHILE (B10+1.LE.1757)   *WHILE REQ CNTR NOT EMPTY
   OB(100) = 141                   *REQ CNTR EMPTY
33 GOTO 32 WHILE(B9+1.LE.6)        *STEP AND READ 6 TIMES 
* 
34 GOSUB 52 
   GOTO 34 WHILE(B9+1.LE.14)       *STEP 6 TIMES
* 
   GOTO 31 WHILE(B10+0.LE.1774)    *DO 1020 READS 
   GOSUB 52                        *STEP 1 TIME 
   GOSUB 60                        *RD MR REG LOOP
   ERROR 04/654D
   WC = 2                          *CHK FOR END OF XFER 
* 
   COMPARE OB(112) TO IB(36) FOR WC , ABT 40
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 22       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   EXIT 
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 22       *SL
   CALL 65A                        *GOTO MSG PROCESSOR
   GOTO 22
* 
* -------------------SUBROUTINES----------------------
* 
50 OB(102) = B5.RS.10.OR.0374      *INIT EXP DATA 
   OB(103) = B5.AND.0377
   OB(104) = B5.RS.10.OR.0374 
   OB(105) = B5.AND.0377
   OB(106) = B5.RS.10.OR.0374 
   OB(107) = B5.AND.0377
   OB(110) = B5.RS.10.OR.0374 
   OB(111) = B5.AND.0377
   B5 = B5 + 1                     *INC PACKET COUNT
   RETURN 
* 
52 RES                             *RES CHANNEL 
   WC = 4 
   FOUT 273                        *WR RCR/RDR
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
60 RES                             *RD MR REG LOOP
   B0 = 72
   FUNC 215 
62 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 62 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0)
   RETURN 
* 
77 END 20 
COMPILE   *DMA651 - MAIN TEST 
   MODULE DMA65A,6000(200),LOCK 
*         DMA65A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA65 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         THE EM REGISTER CONTAINS THE ERROR NUMBER 
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
* 
*         B9      = STEP NUMBER 
*         B10     = LOOP COUNT
*         SB(0-1) = CRP GSW 
*         IB(0-3) = SRI RESPONSE   OR 
*         IB(0-73)= MR REG LOOP DATA
* 
* 
*   2.3   SUBMODULES USED 
* 
*         NONE
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA65 - MMI/MRI 81 READ TEST (480)
1  FORMAT DMA65 NO RESPONSE ON CONNECT FCTN 
2  FORMAT DMA65 RESPONSE ERROR ON CONNECT FCTN
3  FORMAT DMA65 EXP=*H*H*H*HH, ACT=*H*H*H*HH
4  FORMAT DMA65 HPM81 READ DATA ERROR 
5  FORMAT DMA65 MMI/MRI81 OUT E *H*H                    HEX 
6  FORMAT DMA65                     *H*H *H*H *H*H *H*H HEX 
7  FORMAT DMA65 PMI/MRI   IN  A *H*H                    HEX 
10 FORMAT DMA65                     *H*H *H*H *H*H *H*H HEX 
11 FORMAT DMA65 MMI/MRI80 IN  A *H*H                    HEX 
12 FORMAT DMA65                     *H*H *H*H *H*H *H*H HEX 
13 FORMAT DMA65 MMI/MRI81 IN  A *H*H                    HEX 
14 FORMAT DMA65                     *H*H *H*H *H*H *H*H HEX 
15 FORMAT DMA65 MMI/MRI81 OUT A *H*H                    HEX 
16 FORMAT DMA65                     *H*H *H*H *H*H *H*H HEX 
17 FORMAT DMA65 MMI/MRI80 OUT A *H*H                    HEX 
20 FORMAT DMA65                     *H*H *H*H *H*H *H*H HEX 
21 FORMAT DMA65 PMI/MRI   OUT A *H*H                    HEX 
22 FORMAT DMA65                     *H*H *H*H *H*H *H*H HEX 
23 FORMAT DMA65 END TRANSFER RESPONSE ERROR 
24 FORMAT DMA65     STEP = *D 
25 FORMAT DMA65 PACKET # = *DEC/1021
26 FORMAT DMA65 EXP                XXXX XXXX XXXX XXXX HEX
27 FORMAT DMA65 GSW = *H*HH, DFR FLAG = 0 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40 
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
* 
31 MSG 1 TO LINE 1
   MSG 27, 2 WORDS FROM SB(0) TO LINE 2 
   GOTO 75
* 
32 MSG 2 TO LINE 1
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 3, 8 WORDS FROM OB(200) TO LINE 2
   GOTO 75
* 
33 MSG 4 TO LINE 1
   MSG 05, 2 WORDS FROM OB(100) TO LINE 3 
   MSG 06, 8 WORDS FROM OB(102) TO LINE 4 
   GOTO 41
* 
34 MSG 23 TO LINE 1 
   MSG 05, 2 WORDS FROM OB(112) TO LINE 3 
   MSG 26 TO LINE 4 
* 
41 MSG 15, 2 WORDS FROM IB(36) TO LINE 6
   MSG 16, 8 WORDS FROM IB(40) TO LINE 7
   MSG 07, 2 WORDS FROM IB(00) TO LINE 11 
   MSG 10, 8 WORDS FROM IB(02) TO LINE 12 
   MSG 21, 2 WORDS FROM IB(62) TO LINE 14 
   MSG 22, 8 WORDS FROM IB(64) TO LINE 15 
   MSG 11, 2 WORDS FROM IB(12) TO LINE 17 
   MSG 12, 8 WORDS FROM IB(14) TO LINE 20 
   MSG 17, 2 WORDS FROM IB(50) TO LINE 22 
   MSG 20, 8 WORDS FROM IB(52) TO LINE 23 
   MSG 13, 2 WORDS FROM IB(24) TO LINE 25 
   MSG 14, 8 WORDS FROM IB(26) TO LINE 26 
   MSG 24(B9) TO LINE 27
   MSG 25(B10) TO LINE 30 
* 
75 PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA65A - MSG PROCESSOR 
   MODULE DMA67,6000(200),LOCK
***       DMA67 - CM WRITE TEST 2 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         THIS TEST REQUIRES THAT A SECOND MMI/MRI BE AVAILABLE 
*         ON THE MEMORY RING (ADDRESS 81 HEX).  THIS TEST IS
*         THE SAME AS DMA45 EXCEPT THAT IT READS DATA FROM THE
*         SECOND HPM. 
* 
*         WRITES CENTRAL MEMORY WITH DATA FROM HPM USING PARAMETER WORDS
*         TO DEFINE THE MODE, BLOCK COUNT, READ ADDRESS, AND WRITE
*         ADDRESS.  RA AND RAFL ARE DETERMINED BY PARAMETER WORD P7.
*         THE DEFAULT VALUES ARE 2774020 AND 2776040 OCTAL. 
* 
*         THIS MODULE ASSUMES THAT THE CMI IS CABLED UP TO
*         CENTRAL MEMORY.  THE ONLY ERROR CHECKING PERFORMED IS A 
*         TEST FOR TRANSFER COMPLETE.  WRITE DATA MAY BE CHECKED BY 
*         INTERROGATING CYBER CENTRAL MEMORY.  (M4,2020.) 
*         THE DEFAULT IS 255 HPM WORDS READ FROM STARTING ADDRESS 
*         00000, AND WRITTEN INTO 272 CM WORDS STARTING RA+0, 
*         (RELATIVE ADDRESS 0) IN BIT STREAM MODE.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. INTIALIZE THE VARIABLES FROM PARAMETER WORDS.
*         4. DISPLAY THE LOOP MESSAGE.
*         5. RESET ALL HPP'S
*         6. CLEAR THE CRP AND DMAU 
*         7  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         8. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         9  SEND A 6 CONTROL FUNCTION - DATA MODE. 
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION.
*        17. WAIT 
*        18. READ THE SRI STATUS AND VERIFY AN END OF TRANSFER. 
*        19. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 4. 
*        20. REPEAT STEPS 4-19 64 TIMES.
*        21. IF RM IS SELECTED, GO TO STEP 4. 
*        22. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        23. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA67 - CM WRITE TEST 2
*            // MODULE ERROR LIMIT - DMA67
*            DMA67 ERROR(S) IN MODULE = *DEC
*            DMA67 LC=*DEC, ERC=*DEC
*            DMA67 - CM WRITE TEST 2
*            DMA67 NO RESPONSE ON CONNECT FCTN
*            DMA67 PACKET SENT = *H*H*H*HH
*            DMA67 RESPONSE ERROR ON CONNECT FCTN 
*            DMA67 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA67 GSW = *H*HH, DFR FLAG = 0
*            DMA67 SRI STATUS ERROR 
*            DMA67 ------CENTRAL MEMORY RING RL---------
*            DMA67 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX 
*            DMA67 PMI IN DATA        *H*H *H*H *H*H *H*H HEX 
*            DMA67 PMI IN DATA PARITY *H                  HEX 
*            DMA67 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA67 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA67 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA67 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA67 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX
*            DMA67 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX
*            DMA67 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX
*            DMA67 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX
*            DMA67 CMR RL   (512-543) *H*H*H*H         HEX
*            DMA67 TRANSFER COMPLETE RESPONSE ERROR 
*            DMA67 NO TRANSFER COMPLETE RESPONSE RCVD 
*            DMA67 SRI STATUS = *H*H  HEX 
*            DMA67 NO RESPONSE ON SRI STATUS REQUEST
* 
* 
*   1.4   PARAMETERS
* 
*         P0  - DATA TRANSFER MODE
* 
*                 01 HEX = LEFT JUSTIFIED 
*                 02 HEX = RIGHT JUSTIFIED
*                 03 HEX = BIT STREAM 
* 
*         P1  - BLOCK COUNT   - 12 BITS (000-FFF HEX) 
* 
*         P2  - CM ADDR (W/R) - 12 BITS (000-FFF HEX) 
*               RELATIVE TO RA
* 
*         P3  - UPPER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P4  - LOWER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P7  - UEM BASE ADDRESS/1000 OCTAL - 12 BITS 
* 
* 
*     THE COMPLETE 24 BIT HPM W/R ADDRESS IS ASSEMBLED
*     AS FOLLOWS: 
*                      P3     P4
*                     076H + 543H = 076543H 
* 
*     THE FULL RANGE OF HPM W/R ADDRESSES DEPENDS ON THE
*     MEMORY CONFIGURATION.  FOR A 256K MEMORY THE RANGE
*     IS 000000-03FFFF.  FOR A 512K MEMORY THE RANGE IS 
*     000000-07FFFF.
* 
*    ************************************************************ 
*    *                                                          * 
*    *    NOTE: WHEN USING PARAMETERS TO SPECIFY BLOCK COUNT    * 
*    *          CM WRITE ADDRESS, AND MODE, THE FOLLOWING       * 
*    *          GUIDELINES SHOULD BE OBSERVED:                  * 
*    *                                                          * 
*    *          1. IN RIGHT OR LEFT JUSTIFIED DATA MODES THE    * 
*    *             SUM OF THE BLOCK COUNT AND CM WRITE ADDRESS  * 
*    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
*    *                                                          * 
*    *          2. IN BIT STREAM DATA MODE THE SUM OF THE CM    * 
*    *             WRITE ADDRESS AND 16/15THS OF THE BLOCK COUNT* 
*    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
*    *                                                          * 
*    *         FAILURE TO FOLLOW THESE GUIDELINES SHOULD RESULT * 
*    *         IN THE GENERATION OF A FIELD LENGTH ERROR.       * 
*    *                                                          * 
*    ************************************************************ 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  = INPUT BUFFER POINTER
*         B10 = MAIN LOOP COUNTER.
*         B11 = ERROR COUNTER 
*         B13 = MODULE RUNNING NUMBER.
*         SB(0 - 1) - CRP GSW 
*         IB(0 - 3) - SRI RESPONSE
* 
* 
*   2.3   MODULES USED
* 
*         67A - ERROR PROCESSOR 
* 
*         67B - INITIALIZE PARAMS 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA67 - CM WRITE TEST 2 
3  FORMAT // MODULE ERROR LIMIT - DMA67 
4  FORMAT DMA67 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA67 LC=*DEC, ERC=*DEC 
12 FORMAT DMA67 P7 IS ZERO....ENTER UEM BASE ADDRESS FROM 
13 FORMAT DMA67 BITS 47-59, CM LOCATION 120 (C4,120.) 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=05, CLRCRP=44, ZEROS=46, ONES=50, SREQ=0 
   EQUATE CONN=4, ENABLCM=10, BLKNT=14, RDADDL=20, CRES=40
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34, XFERC=124 
   EQUATE WRADDU=70, WRADDL=64, RL1=100, RL2=200
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 8300, 08D1 
   DATA (OB(016),H)00FF, 01D1, 0000, 02D1, 0000, 0CD1, 8100 
   DATA (OB(034),H)06D1, 9B00, 02D0, 4040, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0000, 07D1, C000 
   DATA (OB(100),H)005F, C080, 005F, E100, F000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000, 02D0, 60C0 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE 
   B13 = 67D                       *TEST NUMBER 
   IF(P7.EQ.0)GOTO 76 
* 
   CALL 67B                        *INITIALIZE PARAMS 
* 
25 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST LOOP-----------------------------
* 
30 RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250 
   OUT 2 WORDS FROM OB(CLRCRP)     *CLR CRP/DMAU
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   GOSUB 64                        *WR RAFL REG LOOP
* 
32 MSG 5(B10, B11) TO DISPLAY      *LOOPING MSG 
* 
   BA = ENABLCM                    *ENABLE CM REFS
   GOSUB 52 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/671D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/672D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
 *
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *DID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 201                    *SID = 81 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B8 = 0                          *INIT DELAY COUNTER
33 GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.2)GOTO 34    *WAIT FOR RESPONSE 
   B8 = B8 + 1
   IF(B8.GT.777)ERROR 03/673D GOTO 40 
   GOTO 33
* 
34 GOSUB 56                        *READ CF/DF
   ERROR 04/674D                   *CHK FOR XFER COMPLETE 
* 
   COMPARE OB(XFERC) TO IB(0) FOR WC , ABT 40 
* 
35 GOTO 32 WHILE(B10+1.LE.100)     *DO 64 TIMES 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 25       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   GOTO 77                         *STOP
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 30       *SL
   B15 = EM 
   IF(EM.LT.3)GOTO 42              *DON'T RD CM RL
   CALL 82A 
42 CALL 67A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 25
* 
76 MSG 12 TO PRINT
   MSG 13 TO PRINT
* 
77 END 20 
COMPILE   *DMA67 - CM WRITE TEST 2
   MODULE DMA67A,6000(200),LOCK 
*         DMA67A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA67 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA67 
* 
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA67 - CM WRITE TEST 2 
1  FORMAT DMA67 NO RESPONSE ON CONNECT FCTN 
2  FORMAT DMA67 PACKET SENT = *H*H*H*HH 
3  FORMAT DMA67 RESPONSE ERROR ON CONNECT FCTN
4  FORMAT DMA67 EXP=*H*H*H*HH, ACT=*H*H*H*HH
5  FORMAT DMA67 GSW = *H*HH, DFR FLAG = 0 
6  FORMAT DMA67 SRI STATUS ERROR
7  FORMAT DMA67 ------CENTRAL MEMORY RING RL--------- 
10 FORMAT DMA67 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX
11 FORMAT DMA67 PMI IN DATA        *H*H *H*H *H*H *H*H HEX
12 FORMAT DMA67 PMI IN DATA PARITY *H                  HEX
13 FORMAT DMA67 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX 
14 FORMAT DMA67 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX 
15 FORMAT DMA67 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX 
16 FORMAT DMA67 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA67 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA67 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA67 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX 
22 FORMAT DMA67 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX 
23 FORMAT DMA67 CMR RL   (512-543) *H*H*H*H         HEX 
24 FORMAT DMA67 TRANSFER COMPLETE RESPONSE ERROR
25 FORMAT DMA67 NO TRANSFER COMPLETE RESPONSE RCVD
26 FORMAT DMA67 SRI STATUS = *H*H  HEX
27 FORMAT DMA67 NO RESPONSE ON SRI STATUS REQUEST 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40, XFERC = 124, SREQ = 0
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(B15.EQ.2)GOTO 32
   IF(B15.EQ.3)GOTO 33
   IF(B15.EQ.4)GOTO 34
* 
31 MSG 1 TO LINE 2
   MSG 2, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 5, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 3 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(300) TO OB(204) FOR 4
   MSG 4, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 25 TO LINE 2 
   MSG 5, 2 WORDS FROM SB(0) TO LINE 3
   BA = SREQ                       *
   GOSUB 52                        *REQST SRI STATUS
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)GOTO 44 
   GOSUB 56                        *READ CF/DF
   MSG 26, 2 WORDS FROM IB(302) TO LINE 4 
   GOTO 36
* 
34 MSG 24 TO LINE 2 
   COPY OB(XFERC) TO OB(400) FOR 4
   COPY IB(300) TO OB(404) FOR 4
   MSG 4, 8 WORDS FROM OB(400) TO LINE 3
* 
36 MSG 7 TO LINE 6
   MSG 10, 7 WORDS FROM IB(200) TO LINE 7 
   MSG 11, 8 WORDS FROM IB(210) TO LINE 10
   MSG 12(IB(220))TO LINE 11
   MSG 13, 8 WORDS FROM IB(000) TO LINE 12
   MSG 14, 8 WORDS FROM IB(010) TO LINE 13
   MSG 15, 8 WORDS FROM IB(020) TO LINE 14
   MSG 16, 8 WORDS FROM IB(030) TO LINE 15
   MSG 17, 8 WORDS FROM IB(040) TO LINE 16
   MSG 20, 8 WORDS FROM IB(050) TO LINE 17
   MSG 21, 8 WORDS FROM IB(060) TO LINE 20
   MSG 22, 8 WORDS FROM IB(070) TO LINE 21
   MSG 23, 4 WORDS FROM IB(100) TO LINE 22
* 
40 MSG 0 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
44 MSG 27 TO LINE 4 
   MSG 5, 2 WORDS FROM SB(0) TO LINE 5
   GOTO 36
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(302)
   IN 2 WORDS TO IB(300)
   RETURN 
* 
77 END 30 
COMPILE   *DMA67A - MSG PROCESSOR 
   MODULE DMA67B,6000(200),LOCK 
*         DMA67B - INITIALIZE PARAMS
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA67 
* 
  
20 IF(P0.EQ.0)GOTO 21 
   OB(12) = P0.AND.0003.OR.0200 
21 IF(P1.EQ.0)GOTO 22              *IF 0, USE DEFAULT 
   OB(17) = P1.AND.0377            *ELSE, PLUG IN USER
   OB(16) = P1.AND.7400.RS.8       *DEFINED VALUE 
22 IF(P2.EQ.0)GOTO 23 
   OB(67) = P2.AND.0377 
   OB(66) = P2.AND.7400.RS.8
23 IF(P3.OR.P4.EQ.0)GOTO 24 
   OB(23) = P4.AND.0377 
   B0 = P4.AND.7400.RS.8
   B1 = P3.AND.0017.LS.4
   OB(22) = B0.OR.B1
   OB(27) = P3.AND.7760.RS.4
24 IF(P7.EQ.0)GOTO 25 
   B1 = P7.+.2                     *ADD OFFSET OF 2020 OCTAL
   OB(100) = 0000 
   OB(101) = B1.RS.4               *TO UEM BASE TO GET RA 
   OB(102) = B1.AND.0017.LS.4 
   OB(103) = 0200 
   B1 = P7.+.4                     *ADD ANOTHER 2020 OCTAL
   OB(104) = 0000 
   OB(105) = B1.RS.4               *TO GET RA+FL
   B2 = B1.AND.0017.LS.4
   OB(106) = B2.OR.0001 
   OB(107) = 0000 
25 EXIT 
77 END 20 
COMPILE   *DMA67B - INITITILIZE PARAMS
   MODULE DMA69,6000(200),LOCK
***       DMA69 - CM READ TEST 2
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         THIS TEST REQUIRES THAT A SECOND MMI/MRI BE AVAILABLE 
*         ON THE MEMORY RING (ADDRESS 81 HEX).  THIS TEST IS
*         THE SAME AS DMA47 EXCEPT THAT IT WRITES CM DATA TO THE
*         SECOND HPM. 
* 
*         READS CENTRAL MEMORY USING PARAMETER WORDS TO DEFINE
*         THE MODE, BLOCK COUNT, READ ADDRESS, AND WRITE ADDRESS. 
*         RA AND RAFL ARE DETERMINED BY PARAMETER WORD P7.
*         THE DEFAULT VALUES ARE 2774020 AND 2776040 OCTAL. 
* 
*         THIS MODULE ASSUMES THAT THE CMI IS CABLED UP TO
*         CENTRAL MEMORY.  THE ONLY ERROR CHECKING PERFORMED IS A 
*         TEST FOR TRANSFER COMPLETE.  READ DATA MAY BE CHECKED BY
*         INTERROGATING CYBER CENTRAL MEMORY.  (M4,2020.) 
*         WRITE DATA CAN BE VERIFIED BY INTERROGATING HPM AT THE
*         ADDRESS SPECIFIED IN PARAMETERS P3.  THE DEFAULT
*         IS 272 CM WORDS READ FROM STARTING ADDRESS RA+0,
*         (RELATIVE READ ADDRESS 0), AND WRITTEN INTO 255 HPM WORDS 
*         STARTING AT LOCATION 10000 HEX IN BIT STREAM MODE.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. INITIALIZE VARIABLES FROM PARAMETER WORDS. 
*         4. DISPLAY THE LOOP MESSAGE.
*         5. RESET ALL HPP'S
*         6. CLEAR THE CRP AND DMAU 
*         7  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         8. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         9  SEND A 6 CONTROL FUNCTION - BIT STREAM MODE. 
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION.
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION.
*        17. WAIT 100 MSEC. 
*        18  CHECK THE SRI RESPONSE FOR A TRANSFER COMPLETE.
*        19. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 4. 
*        20. REPEAT STEPS 4-19  64 TIMES. 
*        21. IF RM IS SELECTED, GO TO STEP 4. 
*        22. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        23. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA69 - CM READ TEST 2 
*            // MODULE ERROR LIMIT - DMA69
*            DMA69 ERROR(S) IN MODULE = *DEC
*            DMA69 RUNNING  LC=*DEC, ERC=*DEC 
*            DMA69 NO RESPONSE ON CONNECT FCTN
*            DMA69 PACKET SENT = *H*H*H*HH
*            DMA69 RESPONSE ERROR ON CONNECT FCTN 
*            DMA69 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA69 GSW = *H*HH, DFR FLAG = 0
*            DMA69 SRI STATUS ERROR 
*            DMA69 ------CENTRAL MEMORY RING RL---------
*            DMA69 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX 
*            DMA69 PMI IN DATA        *H*H *H*H *H*H *H*H HEX 
*            DMA69 PMI IN DATA PARITY *H                  HEX 
*            DMA69 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX
*            DMA69 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX
*            DMA69 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX
*            DMA69 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX
*            DMA69 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX
*            DMA69 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX
*            DMA69 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX
*            DMA69 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX
*            DMA69 CMR RL   (512-543) *H*H*H*H         HEX
*            DMA69 TRANSFER COMPLETE RESPONSE ERROR 
*            DMA69 NO TRANSFER COMPLETE RESPONSE RCVD 
*            DMA69 SRI STATUS = *H*H  HEX 
*            DMA69 NO RESPONSE ON SRI STATUS REQUEST
* 
* 
*   1.4   PARAMETERS
* 
*         P0  - DATA TRANSFER MODE
* 
*                 01 HEX = LEFT JUSTIFIED 
*                 02 HEX = RIGHT JUSTIFIED
*                 03 HEX = BIT STREAM 
* 
*         P1  - BLOCK COUNT   - 12 BITS (000-FFF HEX) 
* 
*         P2  - CM ADDR (W/R) - 12 BITS (000-FFF HEX) 
*               RELATIVE TO RA
* 
*         P3  - UPPER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P4  - LOWER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P7  - UEM BASE ADDRESS/1000 OCTAL  - 12 BITS
  
* 
*     THE COMPLETE 24 BIT HPM W/R ADDRESS IS ASSEMBLED
*     AS FOLLOWS: 
*                      P3     P4
*                     076H + 543H = 076543H 
* 
*     THE FULL RANGE OF HPM W/R ADDRESSES DEPENDS ON THE
*     MEMORY CONFIGURATION.  FOR A 256K MEMORY THE RANGE
*     IS 000000-03FFFF.  FOR A 512K MEMORY THE RANGE IS 
*     000000-07FFFF.
* 
* 
*    ************************************************************ 
*    *                                                          * 
*    *    NOTE: WHEN USING PARAMETERS TO SPECIFY BLOCK COUNT    * 
*    *          CM READ ADDRESS, AND MODE, THE FOLLOWING GUIDE- * 
*    *          LINES SHOULD BE OBSERVED:                       * 
*    *                                                          * 
*    *          1. IN RIGHT OR LEFT JUSTIFIED DATA MODES THE    * 
*    *             SUM OF THE BLOCK COUNT AND CM READ ADDRESS   * 
*    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
*    *                                                          * 
*    *          2. IN BIT STREAM DATA MODE THE SUM OF THE CM    * 
*    *             READ ADDRESS AND 16/15THS OF THE BLOCK COUNT * 
*    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
*    *                                                          * 
*    *         FAILURE TO FOLLOW THESE GUIDELINES SHOULD RESULT * 
*    *         IN THE GENERATION OF A FIELD LENGTH ERROR.       * 
*    *                                                          * 
*    ************************************************************ 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         SB(0 - 1) - CRP GSW 
*         IB(0 - 3) - SRI RESPONSE
* 
* 
*   2.3   MODULES USED
* 
*         69A - ERROR PROCESSOR 
* 
*         69B - INITIALIZE PARAMS 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA69 - CM READ TEST 2
3  FORMAT // MODULE ERROR LIMIT - DMA69 
4  FORMAT DMA69 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA69 LC=*DEC, ERC=*DEC 
12 FORMAT DMA69 P7 IS ZERO....ENTER UEM BASE ADDRESS FROM 
13 FORMAT DMA69 BITS 47-59, CM LOCATION 120 (C4,120.) 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, ENABLCM=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34, XFERC=124 
   EQUATE WRADDU=70, WRADDL=64, RL1=100 
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 8300, 08D1 
   DATA (OB(016),H)00FF, 01D1, 0000, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9B00, 02D0, 4040, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0001, 07D1, C000 
   DATA (OB(100),H)005F, C080, 005F, E100, F000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000, 02D0, 60C0 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE 
   B13 = 69D                       *TEST NUMBER 
   IF(P7.EQ.0)GOTO 76 
* 
   CALL 69B                        *INITIALIZE PARAMS 
* 
25 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST LOOP-----------------------------
* 
30 RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   GOSUB 64                        *WR RAFL REG LOOP
* 
32 MSG 5(B10, B11) TO DISPLAY      *LOOPING MSG 
* 
   BA = ENABLCM                    *ENABLE CM REFS
   GOSUB 52 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/691D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/692D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 201                    *DID = 81 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *SID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B8 = 0                          *INIT DELAY COUNTER
33 GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.2)GOTO 34    *WAIT FOR RESPONSE 
   B8 = B8 + 1
   IF(B8.GT.777)ERROR 03/693D GOTO 40 
   GOTO 33
* 
34 GOSUB 56                        *READ CF/DF
   ERROR 04/694D                   *CHK FOR XFER COMPLETE 
* 
   COMPARE OB(XFERC) TO IB(0) FOR WC , ABT 40 
* 
35 GOTO 32 WHILE(B10+1.LE.100)     *DO 100 TIMES
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 25       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   GOTO 77                         *END OF TEST SERIES
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 30       *SL
   B15 = EM 
   IF(EM.LT.3)GOTO 42              *DON'T RD CM RL
   CALL 82A 
42 CALL 69A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 25
* 
76 MSG 12 TO PRINT
   MSG 13 TO PRINT
* 
77 END 20 
COMPILE   *DMA69 - CM READ TEST 2 
   MODULE DMA69A,6000(200),LOCK 
*         DMA69A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA69 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA69 
* 
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA69 - CM READ TEST 2
1  FORMAT DMA69 NO RESPONSE ON CONNECT FCTN 
2  FORMAT DMA69 PACKET SENT = *H*H*H*HH 
3  FORMAT DMA69 RESPONSE ERROR ON CONNECT FCTN
4  FORMAT DMA69 EXP=*H*H*H*HH, ACT=*H*H*H*HH
5  FORMAT DMA69 GSW = *H*HH, DFR FLAG = 0 
6  FORMAT DMA69 SRI STATUS ERROR
7  FORMAT DMA69 ------CENTRAL MEMORY RING RL--------- 
10 FORMAT DMA69 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX
11 FORMAT DMA69 PMI IN DATA        *H*H *H*H *H*H *H*H HEX
12 FORMAT DMA69 PMI IN DATA PARITY *H                  HEX
13 FORMAT DMA69 CMR RL   (000-063) *H*H*H*H*H*H*H*H HEX 
14 FORMAT DMA69 CMR RL   (064-127) *H*H*H*H*H*H*H*H HEX 
15 FORMAT DMA69 CMR RL   (128-191) *H*H*H*H*H*H*H*H HEX 
16 FORMAT DMA69 CMR RL   (192-255) *H*H*H*H*H*H*H*H HEX 
17 FORMAT DMA69 CMR RL   (256-319) *H*H*H*H*H*H*H*H HEX 
20 FORMAT DMA69 CMR RL   (320-383) *H*H*H*H*H*H*H*H HEX 
21 FORMAT DMA69 CMR RL   (384-447) *H*H*H*H*H*H*H*H HEX 
22 FORMAT DMA69 CMR RL   (448-511) *H*H*H*H*H*H*H*H HEX 
23 FORMAT DMA69 CMR RL   (512-543) *H*H*H*H         HEX 
24 FORMAT DMA69 TRANSFER COMPLETE RESPONSE ERROR
25 FORMAT DMA69 NO TRANSFER COMPLETE RESPONSE RCVD
26 FORMAT DMA69 SRI STATUS = *H*H  HEX
27 FORMAT DMA69 NO RESPONSE ON SRI STATUS REQUEST 
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40, XFERC = 124, SREQ = 0
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(B15.EQ.2)GOTO 32
   IF(B15.EQ.3)GOTO 33
   IF(B15.EQ.4)GOTO 34
* 
31 MSG 1 TO LINE 2
   MSG 2, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 5, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 3 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(300) TO OB(204) FOR 4
   MSG 4, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 25 TO LINE 2 
   MSG 5, 2 WORDS FROM SB(0) TO LINE 3
   BA = SREQ                       *
   GOSUB 52                        *REQST SRI STATUS
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)GOTO 44 
   GOSUB 56                        *READ CF/DF
   MSG 26, 2 WORDS FROM IB(302) TO LINE 4 
   GOTO 36
* 
34 MSG 24 TO LINE 2 
   COPY OB(XFERC) TO OB(400) FOR 4
   COPY IB(300) TO OB(404) FOR 4
   MSG 4, 8 WORDS FROM OB(400) TO LINE 3
* 
36 MSG 7 TO LINE 6
   MSG 10, 7 WORDS FROM IB(200) TO LINE 7 
   MSG 11, 8 WORDS FROM IB(210) TO LINE 10
   MSG 12(IB(220))TO LINE 11
   MSG 13, 8 WORDS FROM IB(000) TO LINE 12
   MSG 14, 8 WORDS FROM IB(010) TO LINE 13
   MSG 15, 8 WORDS FROM IB(020) TO LINE 14
   MSG 16, 8 WORDS FROM IB(030) TO LINE 15
   MSG 17, 8 WORDS FROM IB(040) TO LINE 16
   MSG 20, 8 WORDS FROM IB(050) TO LINE 17
   MSG 21, 8 WORDS FROM IB(060) TO LINE 20
   MSG 22, 8 WORDS FROM IB(070) TO LINE 21
   MSG 23, 4 WORDS FROM IB(100) TO LINE 22
* 
40 MSG 0 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
44 MSG 27 TO LINE 4 
   MSG 5, 2 WORDS FROM SB(0) TO LINE 5
   GOTO 36
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(302)
   IN 2 WORDS TO IB(300)
   RETURN 
* 
77 END 30 
COMPILE   *DMA69A - MSG PROCESSOR 
   MODULE DMA69B,6000(200),LOCK 
*         DMA69B - INITIALIZE PARAMS
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA69 
* 
  
20 IF(P0.EQ.0)GOTO 21 
   OB(12) = P0.AND.0003.OR.0200 
21 IF(P1.EQ.0)GOTO 22              *IF 0, USE DEFAULT 
   OB(17) = P1.AND.0377            *ELSE, PLUG IN USER
   OB(16) = P1.AND.7400.RS.8       *DEFINED VALUE 
22 IF(P2.EQ.0)GOTO 23 
   OB(23) = P2.AND.0377 
   OB(22) = P2.AND.7400.RS.8
23 IF(P3.OR.P4.EQ.0)GOTO 24 
   OB(67) = P4.AND.0377 
   B0 = P4.AND.7400.RS.8
   B1 = P3.AND.0017.LS.4
   OB(66) = B0.OR.B1
   OB(73) = P3.AND.7760.RS.4
* 
24 IF(P7.EQ.0)GOTO 25 
   B1 = P7.+.2                     *ADD OFFSET OF 2020 OCTAL
   OB(100) = 0000 
   OB(101) = B1.RS.4               *TO UEM BASE TO GET RA 
   OB(102) = B1.AND.0017.LS.4 
   OB(103) = 0200 
   B1 = P7.+.4                     *ADD ANOTHER 2020 OCTAL
   OB(104) = 0000 
   OB(105) = B1.RS.4               *TO GET RA+FL
   B2 = B1.AND.0017.LS.4
   OB(106) = B2.OR.0001 
   OB(107) = 0000 
25 EXIT 
77 END 20 
COMPILE   *DMA69B - INITIALIZE PARAMS 
   MODULE DMA71,6000(200),LOCK
***       DMA71 - NEXT WRITER TEST
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         THIS TEST REQUIRES TWO MMI/MRI/HPMS ON THE MEMORY RING, 
*         (ADDRESSES 80 AND 81 HEX), WITH ADDRESS 81 HEX BEING
*         THE LAST WRITER.
* 
*         READS CENTRAL MEMORY USING PARAMETER WORDS TO DEFINE
*         THE MODE, BLOCK COUNT, READ ADDRESS, AND WRITE ADDRESS. 
*         RA AND RA+FL ARE DETERMINED BY PARAMETER WORD P7. 
*         THE DEFAULT VALUES ARE 2774020 AND 2776040 OCTAL. 
* 
*         THIS MODULE ASSUMES THAT THE CMI IS CABLED UP TO
*         CENTRAL MEMORY.  THE ONLY ERROR CHECKING PERFORMED IS A 
*         TEST FOR TRANSFER COMPLETE.  READ DATA MAY BE CHECKED BY
*         INTERROGATING CYBER CENTRAL MEMORY.  (M4,2020.) 
*         WRITE DATA CAN BE VERIFIED BY INTERROGATING THE TWO HPM'S 
*         ATTACHED TO MMI/MRI'S 80 AND 81 HEX.  THE DEFAULT 
*         IS 272 CM WORDS READ FROM STARTING ADDRESS RA+0,
*         (RELATIVE READ ADDRESS 0), AND WRITTEN INTO 255 HPM WORDS 
*         STARTING AT LOCATION 20000 HEX IN BIT STREAM MODE IN BOTH 
*         HPMS. 
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. INITIALIZE VARIABLES FROM PARAMETER WORDS. 
*         4. DISPLAY THE LOOP MESSAGE.
*         5. RESET ALL HPP'S
*         6. CLEAR THE CRP AND DMAU 
*         7  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         8. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         9  SEND A 6 CONTROL FUNCTION - DATA MODE. 
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION - LAST WRITER 
*        14. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        15. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        16. SEND A C SEND MEMORY PACKET FUNCTION - LAST WRITER-1 
*        17. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        18. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        19. SEND A C SEND MEMORY PACKET FUNCTION.
*        20  CHECK THE SRI RESPONSE FOR A TRANSFER COMPLETE.
*        21. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 4. 
*        22. REPEAT STEPS 4-21  64 TIMES. 
*        23. IF RM IS SELECTED, GO TO STEP 4. 
*        24. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        25. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA71 - NEXT WRITER TEST 
*            // MODULE ERROR LIMIT - DMA71
*            DMA71 ERROR(S) IN MODULE = *DEC
*            DMA71 RUNNING  LC=*DEC, ERC=*DEC 
*            DMA71 NO RESPONSE ON CONNECT FCTN
*            DMA71 PACKET SENT = *H*H*H*HH
*            DMA71 RESPONSE ERROR ON CONNECT FCTN 
*            DMA71 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA71 GSW = *H*HH, DFR FLAG = 0
*            DMA71 SRI STATUS ERROR 
*            DMA71 TRANSFER COMPLETE RESPONSE ERROR 
*            DMA71 NO TRANSFER COMPLETE RESPONSE RCVD 
*            DMA71 SRI STATUS = *H*H  HEX 
*            DMA71 NO RESPONSE ON SRI STATUS REQUEST
*            DMA71 ----------MEM RING RL----------------- 
*            DMA71 PMI/MRI  IN  A *H*H                    HEX 
*            DMA71                    *H*H *H*H *H*H *H*H HEX 
*            DMA71 MMI/MRI1 IN  A *H*H                    HEX 
*            DMA71                    *H*H *H*H *H*H *H*H HEX 
*            DMA71 MMI/MRI2 IN  A *H*H                    HEX 
*            DMA71                    *H*H *H*H *H*H *H*H HEX 
*            DMA71 MMI/MRI2 OUT A *H*H                    HEX 
*            DMA71                    *H*H *H*H *H*H *H*H HEX 
*            DMA71 MMI/MRI1 OUT A *H*H                    HEX 
*            DMA71                    *H*H *H*H *H*H *H*H HEX 
*            DMA71 PMI/MRI  OUT A *H*H                    HEX 
*            DMA71                    *H*H *H*H *H*H *H*H HEX 
* 
* 
*   1.4   PARAMETERS
* 
*         P0  - DATA TRANSFER MODE
* 
*                 01 HEX = LEFT JUSTIFIED 
*                 02 HEX = RIGHT JUSTIFIED
*                 03 HEX = BIT STREAM 
* 
*         P1  - BLOCK COUNT      - 12 BITS (000-FFF HEX)
* 
*         P2  - CM ADDR (W/R) - 12 BITS (000-FFF HEX) 
*               RELATIVE TO RA
* 
******************** HPM 80 ******************************* 
* 
*         P3  - UPPER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P4  - LOWER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
******************** HPM 81 ******************************* 
* 
*         P5  - UPPER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P6  - LOWER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*********************************************************** 
* 
*         P7  - UEM BASE ADDRESS/1000 OCTAL  - 12 BITS
* 
*********************************************************** 
* 
*     THE COMPLETE 24 BIT HPM W/R ADDRESS IS ASSEMBLED
*     AS FOLLOWS: 
*                      P3     P4
*                     076H + 543H = 076543H 
* 
*     THE FULL RANGE OF HPM W/R ADDRESSES DEPENDS ON THE
*     MEMORY CONFIGURATION.  FOR A 256K MEMORY THE RANGE
*     IS 000000-03FFFF.  FOR A 512K MEMORY THE RANGE IS 
*     000000-07FFFF.
* 
* 
*    ************************************************************ 
*    *                                                          * 
*    *    NOTE: WHEN USING PARAMETERS TO SPECIFY BLOCK COUNT    * 
*    *          CM READ ADDRESS, AND MODE, THE FOLLOWING GUIDE- * 
*    *          LINES SHOULD BE OBSERVED:                       * 
*    *                                                          * 
*    *          1. IN RIGHT OR LEFT JUSTIFIED DATA MODES THE    * 
*    *             SUM OF THE BLOCK COUNT AND CM READ ADDRESS   * 
*    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
*    *                                                          * 
*    *          2. IN BIT STREAM DATA MODE THE SUM OF THE CM    * 
*    *             READ ADDRESS AND 16/15THS OF THE BLOCK COUNT * 
*    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
*    *                                                          * 
*    *         FAILURE TO FOLLOW THESE GUIDELINES SHOULD RESULT * 
*    *         IN THE GENERATION OF A FIELD LENGTH ERROR.       * 
*    *                                                          * 
*    ************************************************************ 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B10 - MAIN LOOP COUNTER.
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         SB(0 - 1) - CRP GSW 
*         IB(0 - 3) - SRI RESPONSE
* 
* 
*   2.3   MODULES USED
* 
*         71A - ERROR PROCESSOR 
* 
*         71B - INITIALIZE PARAMS 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA71 - NEXT WRITER TEST
3  FORMAT // MODULE ERROR LIMIT - DMA71 
4  FORMAT DMA71 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA71 LC=*DEC, ERC=*DEC 
12 FORMAT DMA71 P7 IS ZERO....ENTER UEM BASE ADDRESS FROM 
13 FORMAT DMA71 BITS 47-59, CM LOCATION 120 (C4,120.) 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, ENABLCM=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34, XFERC=124 
   EQUATE WRADDU=70, WRADDL=64, WRADD2U=130, WRADD2L=134
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 8300, 08D1 
   DATA (OB(016),H)00FF, 01D1, 0000, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9B00, 02D0, 4040, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0002, 07D1, C000 
   DATA (OB(100),H)005F, C080, 005F, E100, F000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000, 02D0, 60C0 
   DATA (OB(130),H)03D1, 0000, 04D1, 0002 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE 
   B13 = 71D                       *TEST NUMBER 
   IF(P7.EQ.0)GOTO 76 
* 
   CALL 71B                        *INIT PARAMS 
* 
25 B10 = 0                         *CLEAR LOOP CNTR 
   B11 = 0                         *CLEAR ERROR CNTR
* 
* ------------------TEST LOOP-----------------------------
* 
30 MSG 5(B10, B11) TO DISPLAY      *LOOPING MSG 
* 
   RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
   GOSUB 64                        *WR RAFL REG LOOP
* 
32 BA = ENABLCM                    *ENABLE CM REFS
   GOSUB 52 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/711D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/712D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADD2L                    *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADD2U                    *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 201                    *DID = 81 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *DID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 321                    *SID = D1 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B8 = 0                          *INIT DELAY COUNTER
33 GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.2)GOTO 34    *WAIT FOR RESPONSE 
   B8 = B8 + 1
   IF(B8.GT.777)ERROR 03/713D GOTO 40 
   GOTO 33
* 
34 GOSUB 56                        *READ CF/DF
   ERROR 04/714D                   *CHK FOR XFER COMPLETE 
* 
   COMPARE OB(XFERC) TO IB(0) FOR WC , ABT 40 
* 
35 GOTO 32 WHILE(B10+1.LE.100)     *DO 64 TIMES 
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 25       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   GOTO 77                         *END OF TEST SERIES
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 30       *SL
   CALL 71A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
64 B0 = 122                        *WR RAFL REG LOOP
   FUNC 256 
66 OUT CHAIN 2 WORDS FROM OB(B0)
   GOTO 66 WHILE(B0-2.GE.102) 
   OUT 2 WORDS FROM OB(100) 
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 25
* 
76 MSG 12 TO PRINT
   MSG 13 TO PRINT
* 
77 END 20 
COMPILE   *DMA71 - NEXT WRITER TEST 
   MODULE DMA71A,6000(200),LOCK 
*         DMA71A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA71 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA71 
* 
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA71 -------------MEM RING RL--------------
1  FORMAT DMA71 - NEXT WRITER TEST
2  FORMAT DMA71 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA71 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA71 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA71 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA71 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA71 SRI STATUS ERROR
10 FORMAT DMA71 TRANSFER COMPLETE RESPONSE ERROR
11 FORMAT DMA71 NO TRANSFER COMPLETE RESPONSE RCVD
12 FORMAT DMA71 SRI STATUS = *H*H  HEX
13 FORMAT DMA71 NO RESPONSE ON SRI STATUS REQUEST 
14 FORMAT DMA71 PMI/MRI  IN  A *H*H                    HEX
15 FORMAT DMA71                    *H*H *H*H *H*H *H*H HEX
16 FORMAT DMA71 MMI/MRI1 IN  A *H*H                    HEX
17 FORMAT DMA71                    *H*H *H*H *H*H *H*H HEX
20 FORMAT DMA71 MMI/MRI2 IN  A *H*H                    HEX
21 FORMAT DMA71                    *H*H *H*H *H*H *H*H HEX
22 FORMAT DMA71 MMI/MRI2 OUT A *H*H                    HEX
23 FORMAT DMA71                    *H*H *H*H *H*H *H*H HEX
24 FORMAT DMA71 MMI/MRI1 OUT A *H*H                    HEX
25 FORMAT DMA71                    *H*H *H*H *H*H *H*H HEX
26 FORMAT DMA71 PMI/MRI  OUT A *H*H                    HEX
27 FORMAT DMA71                    *H*H *H*H *H*H *H*H HEX
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40, XFERC = 124, SREQ = 0
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 11 TO LINE 2 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 3
   BA = SREQ                       *
   GOSUB 52                        *REQST SRI STATUS
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)GOTO 44 
   GOSUB 56                        *READ CF/DF
   MSG 12, 2 WORDS FROM IB(2) TO LINE 4 
   GOTO 36
* 
34 MSG 10 TO LINE 2 
   COPY OB(XFERC) TO OB(200) FOR 4
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
* 
36 RES                             *RESERVE CHANNEL 
   B0 = 072                        *RD MR I/O REG LOOP
   FUNC 215                        *TO IB(0-73) 
37 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 37 WHILE(B0-2.GE.002) 
   IN 2 WORDS TO IB(000)
   MSG 14, 2 WORDS FROM IB(000) TO LINE 26
   MSG 15, 8 WORDS FROM IB(002) TO LINE 27
   MSG 16, 2 WORDS FROM IB(012) TO LINE 12
   MSG 17, 8 WORDS FROM IB(014) TO LINE 13
   MSG 20, 2 WORDS FROM IB(024) TO LINE 20
   MSG 21, 8 WORDS FROM IB(026) TO LINE 21
   MSG 22, 2 WORDS FROM IB(036) TO LINE 23
   MSG 23, 8 WORDS FROM IB(040) TO LINE 24
   MSG 24, 2 WORDS FROM IB(050) TO LINE 15
   MSG 25, 8 WORDS FROM IB(052) TO LINE 16
   MSG 26, 2 WORDS FROM IB(062) TO LINE 07
   MSG 27, 8 WORDS FROM IB(064) TO LINE 10
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
44 MSG 23 TO LINE 4 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 5
   GOTO 36
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
77 END 30 
COMPILE   *DMA71A - MSG PROCESSOR 
   MODULE DMA71B,6000(200),LOCK 
*         DMA71B - PARAMETER PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA71 
* 
  
20 IF(P0.EQ.0)GOTO 21 
   OB(12) = P0.AND.0003.OR.0200 
21 IF(P1.EQ.0)GOTO 22              *IF 0, USE DEFAULT 
   OB(17) = P1.AND.0377            *ELSE, PLUG IN USER
   OB(16) = P1.AND.7400.RS.8       *DEFINED VALUE 
22 IF(P2.EQ.0)GOTO 23 
   OB(23) = P2.AND.0377 
   OB(22) = P2.AND.7400.RS.8
23 IF(P3.OR.P4.EQ.0)GOTO 24 
   OB(67) = P4.AND.0377 
   B0 = P4.AND.7400.RS.8
   B1 = P3.AND.0017.LS.4
   OB(66) = B0.OR.B1
   OB(73) = P3.AND.7760.RS.4
24 IF(P5.OR.P6.EQ.0)GOTO 25 
   OB(133) = P6.AND.0377
   B0 = P6.AND.7400.RS.8
   B1 = P5.AND.0017.LS.4
   OB(132) = B0.OR.B1 
   OB(137) = P5.AND.7760.RS.4 
* 
25 IF(P7.EQ.0)GOTO 26 
   B1 = P7.+.2                     *ADD OFFSET OF 2020 OCTAL
   OB(100) = 0000 
   OB(101) = B1.RS.4               *TO UEM BASE TO GET RA 
   OB(102) = B1.AND.0017.LS.4 
   OB(103) = 0200 
   B1 = P7.+.4                     *ADD ANOTHER 2020 OCTAL
   OB(104) = 0000 
   OB(105) = B1.RS.4               *TO GET RA+FL
   B2 = B1.AND.0017.LS.4
   OB(106) = B2.OR.0001 
   OB(107) = 0000 
26 EXIT 
77 END 20 
COMPILE   *DMA71B - PARAMETER PROCESSOR 
   MODULE DMA73,6000(200),LOCK
***       DMA73 - HPM(80) TO HPM(81) TEST 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         THIS TEST REQUIRES TWO MMI/MRI/HPMS ON THE MEMORY RING, 
*         (ADDRESSES 80 AND 81 HEX), WITH ADDRESS 81 HEX BEING
*         THE LAST WRITER.
* 
*         THIS MODULE MOVES DATA FROM THE HPM WITH MRI AT ADDRESS 
*         80 TO THE HPM WITH MRI AT ADDRESS 81 HEX.  64K TRANSFERS
*         ARE PERFORMED WITH BLOCK COUNTS FROM 1 TO FFFF HEX. 
*         THE STARTING BLOCK COUNT CAN BE SPECIFIED IN PARAMETER P1.
*         LOOPING ON A SPECIFIC BLOCK COUNT IS POSSIBLE BY SPECIFYING 
*         THE BLOCK COUNT IN P1 AND SETTING SCOPE LOOP. 
*         HPM READ AND WRITE ADDRESSES CAN ALSO BE SPECIFIED IN PARAMETERS
*         P3 THROUGH P6.  THE DEFAULT IS 64K WORDS FROM LOCATION 0
*         IN MRI/HPM 80 TO LOCATION 30000 HEX IN MRI/HPM 81.
*         THE ONLY ERROR CHECKING IS FOR TRANSFER COMPLETE. 
*         THE READ DATA MAY BE DETERMINED BY INTERROGATING THE SOURCE HPM.
*         THE WRITE DATA MAY BE VERIFIED BY INTERROGATING THE DESTINATION 
*         HPM.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. INITIALIZE VARIABLES FROM PARAMETER WORDS. 
*         4. DISPLAY THE LOOP MESSAGE.
*         5. RESET ALL HPP'S
*         6. CLEAR THE CRP AND DMAU 
*         7  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         8. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         9  SEND A 6 CONTROL FUNCTION - 64 BIT MODE. 
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION 
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION.
*        17  CHECK THE SRI RESPONSE FOR A TRANSFER COMPLETE.
*        18. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 4. 
*        19. REPEAT STEPS 4-18  64 TIMES. 
*        20. IF RM IS SELECTED, GO TO STEP 4. 
*        21. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        25. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA73 - HPM(80) TO HPM(81) TEST
*            // MODULE ERROR LIMIT - DMA73
*            DMA73 ERROR(S) IN MODULE = *DEC
*            DMA73 RUNNING  LC=*DEC, ERC=*DEC 
*            DMA73 NO RESPONSE ON CONNECT FCTN
*            DMA73 PACKET SENT = *H*H*H*HH
*            DMA73 RESPONSE ERROR ON CONNECT FCTN 
*            DMA73 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA73 GSW = *H*HH, DFR FLAG = 0
*            DMA73 SRI STATUS ERROR 
*            DMA73 TRANSFER COMPLETE RESPONSE ERROR 
*            DMA73 NO TRANSFER COMPLETE RESPONSE RCVD 
*            DMA73 SRI STATUS = *H*H  HEX 
*            DMA73 NO RESPONSE ON SRI STATUS REQUEST
*            DMA73 ----------MEM RING RL----------------- 
*            DMA73 PMI/MRI  IN  A *H*H                    HEX 
*            DMA73                    *H*H *H*H *H*H *H*H HEX 
*            DMA73 MMI/MRI1 IN  A *H*H                    HEX 
*            DMA73                    *H*H *H*H *H*H *H*H HEX 
*            DMA73 MMI/MRI2 IN  A *H*H                    HEX 
*            DMA73                    *H*H *H*H *H*H *H*H HEX 
*            DMA73 MMI/MRI2 OUT A *H*H                    HEX 
*            DMA73                    *H*H *H*H *H*H *H*H HEX 
*            DMA73 MMI/MRI1 OUT A *H*H                    HEX 
*            DMA73                    *H*H *H*H *H*H *H*H HEX 
*            DMA73 PMI/MRI  OUT A *H*H                    HEX 
*            DMA73                    *H*H *H*H *H*H *H*H HEX 
*            DMA73 XFER COMPLETE RESP ERROR, BLKCNT=*H*H H
*            DMA73 NO XFER COMPLETE RESP RCVD, BLKCNT=*H*H H
*            DMA73 SRI STATUS = *H*H  HEX 
*            DMA73 NO RESPONSE ON SRI STATUS REQUEST
* 
* 
*   1.4   PARAMETERS
* 
*         P1  - BLOCK COUNT       - 12 BITS (000-FFF HEX) 
* 
******************** HPM 80 ******************************* 
* 
*         P3  - UPPER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P4  - LOWER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
******************** HPM 81 ******************************* 
* 
*         P5  - UPPER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P6  - LOWER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
**********************************************************
* 
* 
*     THE COMPLETE 24 BIT HPM W/R ADDRESS IS ASSEMBLED
*     AS FOLLOWS: 
*                     P3/P5  P4/P6
*                     076H + 543H = 076543H 
* 
*     THE FULL RANGE OF HPM W/R ADDRESSES DEPENDS ON THE
*     MEMORY CONFIGURATION.  FOR A 256K MEMORY THE RANGE
*     IS 000000-03FFFF.  FOR A 512K MEMORY THE RANGE IS 
*     000000-07FFFF.
* 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B8  - DELAY COUNTER 
*         B9  - UPPER BLOCK COUNTER 
*         B10 - LOWER BLOCK COUNTER 
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         SB(0 - 1) - CRP GSW 
*         IB(0 - 3) - SRI RESPONSE
* 
* 
*   2.3   MODULES USED
* 
*         73A - ERROR PROCESSOR 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA73 - HPM(80) TO HPM(81) TEST 
3  FORMAT // MODULE ERROR LIMIT - DMA73 
4  FORMAT DMA73 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA73 BLKCNT=*H*H HEX, ERC=*DEC DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, STOPCMR=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34, XFERC=124 
   EQUATE WRADDU=70, WRADDL=64
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 9000, 08D1 
   DATA (OB(016),H)00FF, 01D1, 0000, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9800, 02D0, 4000, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0003, 07D1, 0000 
   DATA (OB(100),H)005F, C080, 005F, E100, F000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000, 02D0, 6080 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE 
   B13 = 73D                       *TEST NUMBER 
   B11 = 0                         *INIT ERROR COUNT
* 
21 B10 = 1                         *DEFAULT BLK COUNT 
   B9 = 0 
   IF(P1.EQ.0)GOTO 22              *CK FOR USER PARAMS
   B10 = P1.AND.0377
   B9 = P1.AND.7400.RS.8
22 IF(P3.OR.P4.EQ.0)GOTO 23 
   OB(23) = P4.AND.0377 
   B0 = P4.AND.7400.RS.8
   B1 = P3.AND.0017.LS.4
   OB(22) = B0.OR.B1
   OB(27) = P3.AND.7760.RS.4
23 IF(P5.OR.P6.EQ.0)GOTO 30 
   OB(67) = P6.AND.0377 
   B0 = P6.AND.7400.RS.8
   B1 = P5.AND.0017.LS.4
   OB(66) = B0.OR.B1
   OB(73) = P5.AND.7760.RS.4
* 
* ------------------TEST LOOP-----------------------------
* 
30 RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
32 MSG 5(B9,B10,B11) TO DISPLAY    *LOOPING MSG 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/731D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/732D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   OB(16) = B9                     *INIT BLCK COUNT 
   OB(17) = B10 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 201                    *DID = 81 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B8 = 0                          *INIT DELAY COUNTER
33 GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.2)GOTO 34    *WAIT FOR RESPONSE 
   B8 = B8 + 1
   IF(B8.GT.777)ERROR 03/733D GOTO 40 
   GOTO 33
* 
34 GOSUB 56                        *READ CF/DF
   ERROR 04/734D                   *CHK FOR XFER COMPLETE 
* 
   COMPARE OB(XFERC) TO IB(0) FOR WC , ABT 40 
   IF(ES.AND.SL.NE.0)GOTO 21
* 
35 GOTO 32 WHILE(B10+1.LE.377)     *DO 256 TIMES
   B10 = 0
   GOTO 32 WHILE(B9+1.LE.377)      *DO 256 TIMES
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 20       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   GOTO 77                         *END OF TEST SERIES
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 30       *SL
   CALL 73A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 20
* 
77 END 20 
COMPILE   *DMA73 - HPM(80) TO HPM(81) TEST
   MODULE DMA73A,6000(200),LOCK 
*         DMA73A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA73 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA73 
* 
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA73 -------------MEM RING RL--------------
1  FORMAT DMA73 - HPM(80) TO HPM(81) TEST 
2  FORMAT DMA73 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA73 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA73 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA73 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA73 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA73 SRI STATUS ERROR
10 FORMAT DMA73 XFER COMPLETE RESP ERROR, BLKCNT=*H*H HEX 
11 FORMAT DMA73 NO XFER COMPLETE RESP. RCVD, BLKCNT=*H*H HEX
12 FORMAT DMA73 SRI STATUS = *H*H  HEX
13 FORMAT DMA73 NO RESPONSE ON SRI STATUS REQUEST 
14 FORMAT DMA73 PMI/MRI  IN  A *H*H                    HEX
15 FORMAT DMA73                    *H*H *H*H *H*H *H*H HEX
16 FORMAT DMA73 MMI/MRI1 IN  A *H*H                    HEX
17 FORMAT DMA73                    *H*H *H*H *H*H *H*H HEX
20 FORMAT DMA73 MMI/MRI2 IN  A *H*H                    HEX
21 FORMAT DMA73                    *H*H *H*H *H*H *H*H HEX
22 FORMAT DMA73 MMI/MRI2 OUT A *H*H                    HEX
23 FORMAT DMA73                    *H*H *H*H *H*H *H*H HEX
24 FORMAT DMA73 MMI/MRI1 OUT A *H*H                    HEX
25 FORMAT DMA73                    *H*H *H*H *H*H *H*H HEX
26 FORMAT DMA73 PMI/MRI  OUT A *H*H                    HEX
27 FORMAT DMA73                    *H*H *H*H *H*H *H*H HEX
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40, XFERC = 124, SREQ = 0
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 OB(400) = B9 
   OB(401) = B10
   IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 11, 2 WORDS FROM OB(400) TO LINE 2 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 3
   BA = SREQ                       *
   GOSUB 52                        *REQST SRI STATUS
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)GOTO 44 
   GOSUB 56                        *READ CF/DF
   MSG 12, 2 WORDS FROM IB(2) TO LINE 4 
   GOTO 36
* 
34 MSG 10, 2 WORDS FROM OB(400) TO LINE 2 
   COPY OB(XFERC) TO OB(200) FOR 4
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
* 
36 RES                             *RESERVE CHANNEL 
   B0 = 072                        *RD MR I/O REG LOOP
   FUNC 215                        *TO IB(0-73) 
37 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 37 WHILE(B0-2.GE.002) 
   IN 2 WORDS TO IB(000)
   MSG 14, 2 WORDS FROM IB(000) TO LINE 26
   MSG 15, 8 WORDS FROM IB(002) TO LINE 27
   MSG 16, 2 WORDS FROM IB(012) TO LINE 12
   MSG 17, 8 WORDS FROM IB(014) TO LINE 13
   MSG 20, 2 WORDS FROM IB(024) TO LINE 20
   MSG 21, 8 WORDS FROM IB(026) TO LINE 21
   MSG 22, 2 WORDS FROM IB(036) TO LINE 23
   MSG 23, 8 WORDS FROM IB(040) TO LINE 24
   MSG 24, 2 WORDS FROM IB(050) TO LINE 15
   MSG 25, 8 WORDS FROM IB(052) TO LINE 16
   MSG 26, 2 WORDS FROM IB(062) TO LINE 07
   MSG 27, 8 WORDS FROM IB(064) TO LINE 10
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
44 MSG 23 TO LINE 4 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 5
   GOTO 36
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
77 END 30 
COMPILE   *DMA73A - MSG PROCESSOR 
   MODULE DMA75,6000(200),LOCK
***       DMA75 - HPM(81) TO HPM(80) TEST 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         THIS TEST REQUIRES TWO MMI/MRI/HPMS ON THE MEMORY RING, 
*         (ADDRESSES 80 AND 81 HEX), WITH ADDRESS 81 HEX BEING
*         THE LAST WRITER.
* 
*         THIS MODULE MOVES DATA FROM THE HPM WITH MRI AT ADDRESS 
*         81 TO THE HPM WITH MRI AT ADDRESS 80 HEX.  64K TRANSFERS
*         ARE PERFORMED WITH BLOCK COUNTS FROM 1 TO FFFF HEX. 
*         THE STARTING BLOCK COUNT CAN BE SPECIFIED IN PARAMETER P1.
*         LOOPING ON A SPECIFIC BLOCK COUNT IS POSSIBLE BY SPECIFYING 
*         THE BLOCK COUNT IN P1 AND SETTING SCOPE LOOP. 
*         HPM READ AND WRITE ADDRESSES CAN ALSO BE SPECIFIED IN PARAMETERS
*         P3 THROUGH P6.  THE DEFAULT IS 64K WORDS FROM LOCATION 0
*         IN MRI/HPM 81 TO LOCATION 30000 HEX IN MRI/HPM 80.
*         THE ONLY ERROR CHECKING IS FOR TRANSFER COMPLETE. 
*         THE READ DATA MAY BE DETERMINED BY INTERROGATING THE SOURCE HPM.
*         THE WRITE DATA MAY BE VERIFIED BY INTERROGATING THE DESTINATION 
*         HPM.
* 
* 
*   1.2   METHOD
* 
*         1. DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE.
*         2. SET THE B13 REGISTER TO THE MODULE NUMBER. 
*         3. INITIALIZE VARIABLES FROM PARAMETER WORDS. 
*         4. DISPLAY THE LOOP MESSAGE.
*         5. RESET ALL HPP'S
*         6. CLEAR THE CRP AND DMAU 
*         7  WRITE REG LOOP 1 WITH AN RA AND RA+FL. 
*         8. SEND A CONNECT FUNCTION AND VERIFY THE RESPONSE. 
*         9  SEND A 6 CONTROL FUNCTION - 64 BIT MODE. 
*        10. SEND A 8 BLOCK COUNT FUNCTION. 
*        11. SEND A 3 WRITE ADDRESS LOWER FUNCTION. 
*        12. SEND A 4 WRITE ADDRESS UPPER FUNCTION. 
*        13. SEND A C SEND MEMORY PACKET FUNCTION 
*        14. SEND A 1 READ ADDRESS LOWER FUNCTION.
*        15. SEND A 2 READ ADDRESS UPPER FUNCTION.
*        16. SEND A C SEND MEMORY PACKET FUNCTION.
*        17  CHECK THE SRI RESPONSE FOR A TRANSFER COMPLETE.
*        18. IF AN ERROR IS DETECTED AND SL IS SELECTED, GO TO 4. 
*        19. REPEAT STEPS 4-18  64 TIMES. 
*        20. IF RM IS SELECTED, GO TO STEP 4. 
*        21. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*            MODULE, SEND A MESSAGE INDICATING THE NUMBER OF ERRORS 
*            DETECTED TO THE DISPLAY, PRINT, AND DAYFILE. 
*        25. EXIT THE MODULE. 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*            DMA75 - HPM(81) TO HPM(80) TEST
*            // MODULE ERROR LIMIT - DMA75
*            DMA75 ERROR(S) IN MODULE = *DEC
*            DMA75 RUNNING  LC=*DEC, ERC=*DEC 
*            DMA75 NO RESPONSE ON CONNECT FCTN
*            DMA75 PACKET SENT = *H*H*H*HH
*            DMA75 RESPONSE ERROR ON CONNECT FCTN 
*            DMA75 EXP=*H*H*H*HH, ACT=*H*H*H*HH 
*            DMA75 GSW = *H*HH, DFR FLAG = 0
*            DMA75 SRI STATUS ERROR 
*            DMA75 TRANSFER COMPLETE RESPONSE ERROR 
*            DMA75 NO TRANSFER COMPLETE RESPONSE RCVD 
*            DMA75 SRI STATUS = *H*H  HEX 
*            DMA75 NO RESPONSE ON SRI STATUS REQUEST
*            DMA75 ----------MEM RING RL----------------- 
*            DMA75 PMI/MRI  IN  A *H*H                    HEX 
*            DMA75                    *H*H *H*H *H*H *H*H HEX 
*            DMA75 MMI/MRI1 IN  A *H*H                    HEX 
*            DMA75                    *H*H *H*H *H*H *H*H HEX 
*            DMA75 MMI/MRI2 IN  A *H*H                    HEX 
*            DMA75                    *H*H *H*H *H*H *H*H HEX 
*            DMA75 MMI/MRI2 OUT A *H*H                    HEX 
*            DMA75                    *H*H *H*H *H*H *H*H HEX 
*            DMA75 MMI/MRI1 OUT A *H*H                    HEX 
*            DMA75                    *H*H *H*H *H*H *H*H HEX 
*            DMA75 PMI/MRI  OUT A *H*H                    HEX 
*            DMA75                    *H*H *H*H *H*H *H*H HEX 
*            DMA75 XFER COMPLETE RESP ERROR, BLKCNT=*H*H H
*            DMA75 NO XFER COMPLETE RESP RCVD, BLKCNT=*H*H H
*            DMA75 SRI STATUS = *H*H  HEX 
*            DMA75 NO RESPONSE ON SRI STATUS REQUEST
* 
* 
*   1.4   PARAMETERS
* 
*         P1  - BLOCK COUNT       - 12 BITS (000-FFF HEX) 
* 
******************** HPM 80 ******************************* 
* 
*         P3  - UPPER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P4  - LOWER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
******************** HPM 81 ******************************* 
* 
*         P5  - UPPER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
*         P6  - LOWER HPM ADDR- 12 BITS (000-FFF HEX) 
*               ABSOLUTE (W/R)
* 
**********************************************************
* 
* 
*     THE COMPLETE 24 BIT HPM W/R ADDRESS IS ASSEMBLED
*     AS FOLLOWS: 
*                     P3/P5  P4/P6
*                     076H + 543H = 076543H 
* 
*     THE FULL RANGE OF HPM W/R ADDRESSES DEPENDS ON THE
*     MEMORY CONFIGURATION.  FOR A 256K MEMORY THE RANGE
*     IS 000000-03FFFF.  FOR A 512K MEMORY THE RANGE IS 
*     000000-07FFFF.
* 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         B0  - INPUT BUFFER POINTER
*         B8  - DELAY COUNTER 
*         B9  - UPPER BLOCK COUNTER 
*         B10 - LOWER BLOCK COUNTER 
*         B11 - ERROR COUNTER 
*         B13 - MODULE RUNNING NUMBER.
*         SB(0 - 1) - CRP GSW 
*         IB(0 - 3) - SRI RESPONSE
* 
* 
*   2.3   MODULES USED
* 
*         75A - ERROR PROCESSOR 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA75 - HPM(81) TO HPM(80) TEST 
3  FORMAT // MODULE ERROR LIMIT - DMA75 
4  FORMAT DMA75 ERROR(S) IN MODULE = *DEC 
5  FORMAT DMA39 BLKCNT=*H*H HEX, ERC=*DEC DEC 
* 
* -----------------EQUATES--------------------------------- 
* 
   EQUATE ERRLIM=20, CLRCRP=44, ZEROS=46, ONES=50 
   EQUATE CONN=4, STOPCMR=10, BLKNT=14, RDADDL=20, CRES= 40 
   EQUATE RDADDU=24, SENDMP=30, STEPCMR=34, XFERC=124 
   EQUATE WRADDU=70, WRADDL=64
* 
* -----------------DATA------------------------------------ 
* 
   DATA (OB(000),H)0AD1, 02D0, 09D1, 02D0, 06D1, 9000, 08D1 
   DATA (OB(016),H)00FF, 01D1, 0000, 02D1, 0000, 0CD1, 0000 
   DATA (OB(034),H)06D1, 9800, 02D0, 4000, 4100, 0000, FFFF 
   DATA (OB(064),H)03D1, 0000, 04D1, 0003, 07D1, 0000 
   DATA (OB(100),H)005F, C080, 005F, E100, F000 
   DATA (OB(112),H)0000, 0000, 0000, 0000, 0000, 02D0, 6080 
* 
* -----------------INITIALIZATION-------------------------- 
* 
20 MSG 1 TO DISPLAY,PRINT,DAYFILE 
   B13 = 75D                       *TEST NUMBER 
   B11 = 0                         *INIT ERROR COUNT
* 
21 B10 = 1                         *DEFAULT BLK COUNT 
   B9 = 0 
   IF(P1.EQ.0)GOTO 22              *CK FOR USER PARAMS
   B10 = P1.AND.0377
   B9 = P1.AND.7400.RS.8
22 IF(P3.OR.P4.EQ.0)GOTO 23 
   OB(23) = P4.AND.0377 
   B0 = P4.AND.7400.RS.8
   B1 = P3.AND.0017.LS.4
   OB(22) = B0.OR.B1
   OB(27) = P3.AND.7760.RS.4
23 IF(P5.OR.P6.EQ.0)GOTO 30 
   OB(67) = P6.AND.0377 
   B0 = P6.AND.7400.RS.8
   B1 = P5.AND.0017.LS.4
   OB(66) = B0.OR.B1
   OB(73) = P5.AND.7760.RS.4
* 
* ------------------TEST LOOP-----------------------------
* 
30 RES
   FUNC 251 
   OUT 2 WORDS FROM OB(ONES)       *EXRESET HPPS
   OUT 2 WORDS FROM OB(ZEROS) 
   FUNC 250                        *CLR DMAU/CRP
   OUT 2 WORDS FROM OB(CLRCRP)
   OUT 2 WORDS FROM OB(ZEROS) 
* 
32 MSG 5(B9,B10,B11) TO DISPLAY    *LOOPING MSG 
   BA = CONN                       *SEND CONN FCTN
   GOSUB 52 
   GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.0)ERROR 01/751D GOTO 40 
* 
   GOSUB 56                        *READ CF/DF
   ERROR 02/752D
   COMPARE OB(CRES) TO IB(0) FOR WC , ABT 40
* 
   OB(16) = B9                     *INIT BLCK COUNT 
   OB(17) = B10 
   BA = BLKNT                      *SEND BLOCK COUNT
   GOSUB 52 
   BA = WRADDL                     *SEND WR ADDR LOWER
   GOSUB 52 
   BA = WRADDU                     *SEND WR ADDR UPPER
   GOSUB 52 
   OB(32) = 200                    *DID = 81 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   BA = RDADDL                     *SEND RD ADDR LOWER
   GOSUB 52 
   BA = RDADDU                     *SEND RD ADDR UPPER
   GOSUB 52 
   OB(32) = 201                    *SID = 80 HEX
   BA = SENDMP                     *SEND MEM RING PACKET
   GOSUB 52 
   B8 = 0                          *INIT DELAY COUNTER
33 GOSUB 54                        *READ GSW
* 
   IF(SB(1).AND.02.EQ.2)GOTO 34    *WAIT FOR RESPONSE 
   B8 = B8 + 1
   IF(B8.GT.777)ERROR 03/753D GOTO 40 
   GOTO 33
* 
34 GOSUB 56                        *READ CF/DF
   ERROR 04/754D                   *CHK FOR XFER COMPLETE 
* 
   COMPARE OB(XFERC) TO IB(0) FOR WC , ABT 40 
   IF(ES.AND.SL.NE.0)GOTO 21
* 
35 GOTO 32 WHILE(B10+1.LE.377)     *DO 256 TIMES
   B10 = 0
   GOTO 32 WHILE(B9+1.LE.377)      *DO 256 TIMES
* 
* --------------END/REPEAT PROCESSING------------------ 
* 
   IF(ES.AND.RM.NE.0)GOTO 20       *REPEAT MODULE 
* 
36 IF(B11.GT.ERRLIM)MSG 3 TO DISPLAY,PRINT,DAYFILE
   IF(B11.NE.0)MSG 4(B11) TO DISPLAY,PRINT,DAYFILE
   GOTO 77                         *END OF TEST SERIES
* 
* ----------------ERROR PROCESSOR---------------------
* 
40 B11=B11+1
   IF(ES.AND.SL.NE.0)GOTO 30       *SL
   CALL 75A 
   GOTO 75
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
* --------------ABORT PROCESSOR------------------------ 
* 
* 
75 MSG 1 TO DISPLAY 
   IF(B11.GT.ERRLIM)GOTO 36 
   GOTO 20
* 
77 END 20 
COMPILE   *DMA75 - HPM(81) TO HPM(80) TEST
   MODULE DMA75A,6000(200),LOCK 
*         DMA75A - MSG PROCESSOR
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA75 
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA75 
* 
* 
* --------------------------------------------------------------- 
* 
0  FORMAT DMA75 -------------MEM RING RL--------------
1  FORMAT DMA75 - HPM(81) TO HPM(80) TEST 
2  FORMAT DMA75 NO RESPONSE ON CONNECT FCTN 
3  FORMAT DMA75 PACKET SENT = *H*H*H*HH 
4  FORMAT DMA75 RESPONSE ERROR ON CONNECT FCTN
5  FORMAT DMA75 EXP=*H*H*H*HH, ACT=*H*H*H*HH
6  FORMAT DMA75 GSW = *H*HH, DFR FLAG = 0 
7  FORMAT DMA75 SRI STATUS ERROR
10 FORMAT DMA75 XFER COMPLETE RESP ERROR, BLKCNT=*H*H HEX 
11 FORMAT DMA75 NO XFER COMPLETE RESP. RCVD, BLKCNT=*H*H HEX
12 FORMAT DMA75 SRI STATUS = *H*H  HEX
13 FORMAT DMA75 NO RESPONSE ON SRI STATUS REQUEST 
14 FORMAT DMA75 PMI/MRI  IN  A *H*H                    HEX
15 FORMAT DMA75                    *H*H *H*H *H*H *H*H HEX
16 FORMAT DMA75 MMI/MRI1 IN  A *H*H                    HEX
17 FORMAT DMA75                    *H*H *H*H *H*H *H*H HEX
20 FORMAT DMA75 MMI/MRI2 IN  A *H*H                    HEX
21 FORMAT DMA75                    *H*H *H*H *H*H *H*H HEX
22 FORMAT DMA75 MMI/MRI2 OUT A *H*H                    HEX
23 FORMAT DMA75                    *H*H *H*H *H*H *H*H HEX
24 FORMAT DMA75 MMI/MRI1 OUT A *H*H                    HEX
25 FORMAT DMA75                    *H*H *H*H *H*H *H*H HEX
26 FORMAT DMA75 PMI/MRI  OUT A *H*H                    HEX
27 FORMAT DMA75                    *H*H *H*H *H*H *H*H HEX
* 
* -----------------EQUATES--------------------------------
* 
   EQUATE CRES = 40, XFERC = 124, SREQ = 0
* 
* ---------------MSG PROCESSOR----------------------------
* 
30 OB(400) = B9 
   OB(401) = B10
   IF(EM.EQ.2)GOTO 32 
   IF(EM.EQ.3)GOTO 33 
   IF(EM.EQ.4)GOTO 34 
* 
31 MSG 2 TO LINE 2
   MSG 3, 4 WORDS FROM OB(BA) TO LINE 3 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 4
   GOTO 40
* 
32 MSG 4 TO LINE 2
   COPY OB(CRES) TO OB(200) FOR 4 
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
   GOTO 40
* 
33 MSG 11, 2 WORDS FROM OB(400) TO LINE 2 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 3
   BA = SREQ                       *
   GOSUB 52                        *REQST SRI STATUS
   GOSUB 54                        *READ GSW
   IF(SB(1).AND.02.EQ.0)GOTO 44 
   GOSUB 56                        *READ CF/DF
   MSG 12, 2 WORDS FROM IB(2) TO LINE 4 
   GOTO 36
* 
34 MSG 10, 2 WORDS FROM OB(400) TO LINE 2 
   COPY OB(XFERC) TO OB(200) FOR 4
   COPY IB(0) TO OB(204) FOR 4
   MSG 5, 8 WORDS FROM OB(200) TO LINE 3
* 
36 RES                             *RESERVE CHANNEL 
   B0 = 072                        *RD MR I/O REG LOOP
   FUNC 215                        *TO IB(0-73) 
37 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 37 WHILE(B0-2.GE.002) 
   IN 2 WORDS TO IB(000)
   MSG 14, 2 WORDS FROM IB(000) TO LINE 26
   MSG 15, 8 WORDS FROM IB(002) TO LINE 27
   MSG 16, 2 WORDS FROM IB(012) TO LINE 12
   MSG 17, 8 WORDS FROM IB(014) TO LINE 13
   MSG 20, 2 WORDS FROM IB(024) TO LINE 20
   MSG 21, 8 WORDS FROM IB(026) TO LINE 21
   MSG 22, 2 WORDS FROM IB(036) TO LINE 23
   MSG 23, 8 WORDS FROM IB(040) TO LINE 24
   MSG 24, 2 WORDS FROM IB(050) TO LINE 15
   MSG 25, 8 WORDS FROM IB(052) TO LINE 16
   MSG 26, 2 WORDS FROM IB(062) TO LINE 07
   MSG 27, 8 WORDS FROM IB(064) TO LINE 10
* 
40 MSG 1 TO LINE 1
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
44 MSG 23 TO LINE 4 
   MSG 6, 2 WORDS FROM SB(0) TO LINE 5
   GOTO 36
* 
* -------------------SUBROUTINES----------------------
* 
52 RES
   WC = 4                          *WR RCR/RDR
   FOUT 273 
   RETURN 
* 
54 FUNC 200                        *RD GSW
   STATUS 2 WORDS TO SB(0)
   RETURN 
* 
56 FUNC 226                        *RD CF/DF
   IN CHAIN 2 WORDS TO IB(2)
   IN 2 WORDS TO IB(0)
   RETURN 
* 
77 END 30 
COMPILE   *DMA75A - MSG PROCESSOR 
   MODULE DMA80A,6000(200),LOCK 
***       DMA80A - HPM DOWNLOAD PART 1
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
* 
*   1.1   PURPOSE 
* 
*         WRITE A DATA PATTERN INTO HPM LOCATIONS 0000 - FFFF.
*         THE DATA IN EACH HPM LOCATION IS THE ADDRESS OF THAT
*         LOCATION REPEATED FOUR TIMES TO MAKE UP A 64-BIT WORD.
* 
*         EXAMPLE:      HPM ADDR             DATA 
* 
*                        00000          0000000000000000
*                        00001          0001000100010001
*                        00002          0002000200020002
*                          :                    : 
*                        0FFFE          FFFEFFFEFFFEFFFE
*                        0FFFF          FFFFFFFFFFFFFFFF
* 
* 
*   1.2   METHOD
* 
*         1. LOAD THE DESTINATION AND OPERATION TABLE OF THE HPP
*         2. LOAD THE PROGRAM THAT WRITES HPM 
*         3. START THE PROGRAM
* 
* 
*   1.3   ERRORS REPORTED/MESSAGE ISSUED
* 
*         DMA80A - LOADING HPM 80 
*         DMA80A - ABORT. P=*OCT
*         DMA80A - STATUS ERROR ON DOWNLOAD TO HPP
*         DMA80A - GSW = *H*H HEX 
*         DMA80A - HPM DOWNLOAD PART 1
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         OB(000 - 477)   RING PACKETS
*         B1  - OUTPUT BUFFER DATA POINTER
*         B2  - END OF DATA POINTER 
*         B12 - COMMAND ABORT MSG NUMBER
*         B13 - MODULE NUMBER 
* 
* 
*   2.3   SUBMODULES USED 
* 
*         97X - ABORT MESSAGE PROCESSOR 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA80A -   LOADING HPM 80 
2  FORMAT DMA80A - ABORT. P=*OCT
3  FORMAT DMA80A - STATUS ERROR ON DOWNLOAD TO HPP
4  FORMAT DMA80A - GSW = *H*H HEX 
5  FORMAT DMA80A - HPM DOWNLOAD PART 1
* 
* ------------------------DATA----------------------------- 
* 
   DATA(OB(000),H) 0710 2000          *STOP HPP 
* 
* ------------------ LOAD DEST/OP TABLE ------------------- 
* 
   DATA(OB(004),H) 05A0 C000          *C0XX - XX IS HPP ADDR
   DATA(OB(010),H) 05B0 C000
   DATA(OB(014),H) 05C0 C000
   DATA(OB(020),H) 05D0 C000
   DATA(OB(024),H) 05E0 C000
   DATA(OB(030),H) 05F0 C000
   DATA(OB(034),H) 0710 2000          *20XX - XX IS HPP ADDR
   DATA(OB(040),H) 04A0 00D8
   DATA(OB(044),H) 04B0 0098
   DATA(OB(050),H) 04C0 00F8
   DATA(OB(054),H) 04D0 00B8
   DATA(OB(060),H) 04E0 0738
   DATA(OB(064),H) 04F0 0048
   DATA(OB(070),H) 0730 FF00          *FFXX - XX IS HPP ADDR
   DATA(OB(074),H) 01F0 0000
* 
* -------------------- LOC $100 ----------------------------
* 
   DATA(OB(100),H) 01E0 0000       *     K=$0     A0=A0(K)
   DATA(OB(104),H) 01E0 1000       *               X0=.S10(K) 
   DATA(OB(110),H) 01E0 2000
   DATA(OB(114),H) 01E0 0000
   DATA(OB(120),H) 01A0 0000
   DATA(OB(124),H) 01E0 0866
   DATA(OB(130),H) 01E0 0D4C
   DATA(OB(134),H) 01E0 0000
   DATA(OB(140),H) 01E0 0000
   DATA(OB(144),H) 01B0 0000
   DATA(OB(150),H) 01E0 0000
   DATA(OB(154),H) 01E0 0000
   DATA(OB(160),H) 01E0 0000
   DATA(OB(164),H) 01E0 0000
   DATA(OB(170),H) 01C0 0000
   DATA(OB(174),H) 01D0 0000
* 
* -------------------- LOC $101 ----------------------------
* 
   DATA(OB(200),H) 01E0 0000       *      K=$0   X0=.A1(K)
   DATA(OB(204),H) 01E0 0000
   DATA(OB(210),H) 01E0 2000
   DATA(OB(214),H) 01E0 0000
   DATA(OB(220),H) 01A0 0000
   DATA(OB(224),H) 01E0 090C
   DATA(OB(230),H) 01E0 0000
   DATA(OB(234),H) 01E0 0000
   DATA(OB(240),H) 01E0 0000
   DATA(OB(244),H) 01B0 0000
   DATA(OB(250),H) 01E0 0000
   DATA(OB(254),H) 01E0 0000
   DATA(OB(260),H) 01E0 0000
   DATA(OB(264),H) 01E0 0000
   DATA(OB(270),H) 01C0 0000
   DATA(OB(274),H) 01D0 0000
* 
* -------------------- LOC $102 ----------------------------
* 
   DATA(OB(300),H) 01E0 0000       *      K=$0    X0=.CS(K) 
   DATA(OB(304),H) 01E0 0000
   DATA(OB(310),H) 01E0 2000
   DATA(OB(314),H) 01E0 0000
   DATA(OB(320),H) 01A0 0000
   DATA(OB(324),H) 01E0 050C
   DATA(OB(330),H) 01E0 0000
   DATA(OB(334),H) 01E0 0000
   DATA(OB(340),H) 01E0 0000
   DATA(OB(344),H) 01B0 0000
   DATA(OB(350),H) 01E0 0000
   DATA(OB(354),H) 01E0 0000
   DATA(OB(360),H) 01E0 0000
   DATA(OB(364),H) 01E0 0000
   DATA(OB(370),H) 01C0 0000
   DATA(OB(374),H) 01D0 0000
* 
* --------------------DATA--------------------------------
* 
   DATA(OB(400),H) 4100 0000 FFFF 
* 
* --------------------EQUATES-----------------------------
* 
   EQUATE CLRCRP = 400, ZEROS = 402, ONES = 404 
* 
* ------------------RESET CRP/DMAU/HPPS-------------------
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE 
   B13 = 80D
* 
* -------------------DOWNLOAD CODE TO HPP-------------------
* 
32 B2 = 374 
   B1 = 0 
34 B12 = 1
   RES , ABT 70 
   B12 = 2
   FUNC 273 , ABT 70
   WC = 4 
   BA = B1
   B12 = 3
   OUT , ABT 70 
   GOTO 34 WHILE(B1+4.LE.B2)
* 
* --------------------READ GSW--------------------------------
* 
36 B12 = 2
   FUNC 200 , ABT 70
   B12 = 7
   STATUS 2 WORDS TO SB(0) , ABT 70 
   IF(SB(0).AND.377.NE.0)GOTO 50   *GSW SHOULD BE 0'S 
   IF(SB(1).AND.377.NE.0)GOTO 50
* 
   EXIT TO 80B                     *CONTINUE WITH DOWNLOAD
* 
* ---------------------ERROR PROCESSOR----------------------- 
* 
50 MSG 5 TO LINE 1
   MSG 3 TO LINE 2
   MSG 4(SB(0),SB(1)) TO LINE 3 
   GOTO 75
* 
* ---------------------ABORT PROCESSOR----------------------
* 
70 MSG 5 TO LINE 1
   MSG 2(EA)TO LINE 2 
75 PICTURE
   HALT 
   BLANK
77 END 30 
* 
COMPILE   *DMA80A - HPM DOWNLOAD, PART 1
   MODULE DMA80B,6000(200),LOCK 
*         DMA80B - HPM DOWNLOAD, PART 2 
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA80A
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA80A
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA80B - HPM DOWNLOAD, PART 2 
2  FORMAT DMA80B - ABORT. P=*OCT
3  FORMAT DMA80B - STATUS ERROR ON DOWNLOAD TO HPP
4  FORMAT DMA80B - GSW = *H*H HEX 
* 
* 
* -------------------- LOC $103 ----------------------------
* 
   DATA(OB(000),H) 01E0 0000       *     K=$FFFF    X0=.CA(K) 
   DATA(OB(004),H) 01E0 0000
   DATA(OB(010),H) 01E0 2000
   DATA(OB(014),H) 01E0 FFFF
   DATA(OB(020),H) 01A0 0000
   DATA(OB(024),H) 01E0 040C
   DATA(OB(030),H) 01E0 0000
   DATA(OB(034),H) 01E0 0000
   DATA(OB(040),H) 01E0 0000
   DATA(OB(044),H) 01B0 0000
   DATA(OB(050),H) 01E0 0000
   DATA(OB(054),H) 01E0 0000
   DATA(OB(060),H) 01E0 0000
   DATA(OB(064),H) 01E0 0000
   DATA(OB(070),H) 01C0 0000
   DATA(OB(074),H) 01D0 0000
* 
* -------------------- LOC $104 ----------------------------
* 
   DATA(OB(100),H) 01E0 0000       *           X0=Z1DR+(/C) 
   DATA(OB(104),H) 01E0 0000
   DATA(OB(110),H) 01E0 1000
   DATA(OB(114),H) 01E0 0000
   DATA(OB(120),H) 01A0 0000
   DATA(OB(124),H) 01E0 773C
   DATA(OB(130),H) 01E0 0000
   DATA(OB(134),H) 01E0 0000
   DATA(OB(140),H) 01E0 0000
   DATA(OB(144),H) 01B0 0000
   DATA(OB(150),H) 01E0 0000
   DATA(OB(154),H) 01E0 0000
   DATA(OB(160),H) 01E0 0000
   DATA(OB(164),H) 01E0 0000
   DATA(OB(170),H) 01C0 0000
   DATA(OB(174),H) 01D0 0000
* 
* -------------------- LOC $105 ----------------------------
* 
   DATA(OB(200),H) 01E0 0000       *LOOP       X0=*(A0) 
   DATA(OB(204),H) 01E0 0000
   DATA(OB(210),H) 01E0 2000
   DATA(OB(214),H) 01E0 0000
   DATA(OB(220),H) 01A0 0000
   DATA(OB(224),H) 01E0 0000
   DATA(OB(230),H) 01E0 0000
   DATA(OB(234),H) 01E0 0000
   DATA(OB(240),H) 01E0 0000
   DATA(OB(244),H) 01B0 0000
   DATA(OB(250),H) 01E0 0000
   DATA(OB(254),H) 01E0 0000
   DATA(OB(260),H) 01E0 0000
   DATA(OB(264),H) 01E0 0070
   DATA(OB(270),H) 01C0 0000
   DATA(OB(274),H) 01D0 0000
* 
* -------------------- LOC $106 ----------------------------
* 
   DATA(OB(300),H) 01E0 0000       *           X0=*(A0) 
   DATA(OB(304),H) 01E0 0000
   DATA(OB(310),H) 01E0 2000
   DATA(OB(314),H) 01E0 0000
   DATA(OB(320),H) 01A0 0000
   DATA(OB(324),H) 01E0 0000
   DATA(OB(330),H) 01E0 0000
   DATA(OB(334),H) 01E0 0000
   DATA(OB(340),H) 01E0 0000
   DATA(OB(344),H) 01B0 0000
   DATA(OB(350),H) 01E0 0000
   DATA(OB(354),H) 01E0 0000
   DATA(OB(360),H) 01E0 0000
   DATA(OB(364),H) 01E0 0070
   DATA(OB(370),H) 01C0 0000
   DATA(OB(374),H) 01D0 0000
* 
* -------------------- LOC $107 ----------------------------
* 
   DATA(OB(400),H) 01E0 0000       *            X0=*(A0)
   DATA(OB(404),H) 01E0 0000
   DATA(OB(410),H) 01E0 2000
   DATA(OB(414),H) 01E0 0000
   DATA(OB(420),H) 01A0 0000
   DATA(OB(424),H) 01E0 0000
   DATA(OB(430),H) 01E0 0000
   DATA(OB(434),H) 01E0 0000
   DATA(OB(440),H) 01E0 0000
   DATA(OB(444),H) 01B0 0000
   DATA(OB(450),H) 01E0 0000
   DATA(OB(454),H) 01E0 0000
   DATA(OB(460),H) 01E0 0000
   DATA(OB(464),H) 01E0 0070
   DATA(OB(470),H) 01C0 0000
   DATA(OB(474),H) 01D0 0000
* 
* -----------------INITIALIZATION-------------------------- 
* 
30 B13 = 80D
* 
* -------------------DOWNLOAD CODE TO HPP-------------------
* 
32 B2 = 474 
   B1 = 0 
34 B12 = 1
   RES , ABT 70 
   B12 = 2
   FUNC 273 , ABT 70
   WC = 4 
   BA = B1
   B12 = 3
   OUT , ABT 70 
   GOTO 34 WHILE(B1+4.LE.B2)
* 
* --------------------READ GSW--------------------------------
* 
36 B12 = 2
   FUNC 200 , ABT 70
   B12 = 7
   STATUS 2 WORDS TO SB(0) , ABT 70 
   IF(SB(0).AND.377.NE.0)GOTO 50   *GSW SHOULD BE 0'S 
   IF(SB(1).AND.377.NE.0)GOTO 50
* 
   EXIT TO 80C                     *CONTINUE WITH DOWNLOAD
* 
* ---------------------ERROR PROCESSOR----------------------- 
* 
50 MSG 1 TO LINE 1
   MSG 3 TO LINE 2
   MSG 4(SB(0),SB(1)) TO LINE 3 
   GOTO 75
* 
* ---------------------ABORT PROCESSOR----------------------
* 
70 MSG 1 TO LINE 1
   MSG 2(EA)TO LINE 2 
75 PICTURE
   HALT 
   BLANK
77 END 30 
* 
COMPILE   *DMA80B - HPM DOWNLOAD, PART 2
   MODULE DMA80C,6000(200),LOCK 
*         DMA80C - HPM DOWNLOAD, PART 3 
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA80A
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA80A
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA80C - HPM DOWNLOAD, PART 3 
2  FORMAT DMA80C - ABORT. P=*OCT
3  FORMAT DMA80C - STATUS ERROR ON DOWNLOAD TO HPP
4  FORMAT DMA80C - GSW = *H*H HEX 
5  FORMAT DMA80C -   HPM 80 LOADED
* 
* -------------------- LOC $108 ----------------------------
* 
   DATA(OB(000),H) 01E0 0000       *           X0=*(A0) 
   DATA(OB(004),H) 01E0 0000
   DATA(OB(010),H) 01E0 2000
   DATA(OB(014),H) 01E0 0000
   DATA(OB(020),H) 01A0 0000
   DATA(OB(024),H) 01E0 0000
   DATA(OB(030),H) 01E0 0000
   DATA(OB(034),H) 01E0 0000
   DATA(OB(040),H) 01E0 0000
   DATA(OB(044),H) 01B0 0000
   DATA(OB(050),H) 01E0 0000
   DATA(OB(054),H) 01E0 0000
   DATA(OB(060),H) 01E0 0000
   DATA(OB(064),H) 01E0 0070
   DATA(OB(070),H) 01C0 0000
   DATA(OB(074),H) 01D0 0000
* 
* -------------------- LOC $109 ----------------------------
* 
   DATA(OB(100),H) 01E0 1000       *    K=LOOP  IF(X0.LE.CA)JK(/JI) 
   DATA(OB(104),H) 01E0 1000       *             A0=AP1(A0) 
   DATA(OB(110),H) 01E0 0000
   DATA(OB(114),H) 01E0 0105
   DATA(OB(120),H) 01A0 0000
   DATA(OB(124),H) 01E0 59C0
   DATA(OB(130),H) 01E0 0826
   DATA(OB(134),H) 01E0 0000
   DATA(OB(140),H) 01E0 0000
   DATA(OB(144),H) 01B0 0000
   DATA(OB(150),H) 01E0 0000
   DATA(OB(154),H) 01E0 0007
   DATA(OB(160),H) 01E0 0000
   DATA(OB(164),H) 01E0 0000
   DATA(OB(170),H) 01C0 0000
   DATA(OB(174),H) 01E0 0000
   DATA(OB(200),H) 01E0 0000
   DATA(OB(204),H) 01E0 0000
   DATA(OB(210),H) 01E0 0000
   DATA(OB(214),H) 01D0 0000
* 
* -------------------- LOC $10A ----------------------------
* 
   DATA(OB(220),H) 01E0 1000       *K=*        JK(/JI)
   DATA(OB(224),H) 01E0 0000
   DATA(OB(230),H) 01E0 0000
   DATA(OB(234),H) 01E0 010A
   DATA(OB(240),H) 01A0 0000
   DATA(OB(244),H) 01E0 1900
   DATA(OB(250),H) 01E0 0000
   DATA(OB(254),H) 01E0 0000
   DATA(OB(260),H) 01E0 0000
   DATA(OB(264),H) 01B0 0000
   DATA(OB(270),H) 01E0 0000
   DATA(OB(274),H) 01E0 0000
   DATA(OB(300),H) 01E0 0000
   DATA(OB(304),H) 01E0 0000
   DATA(OB(310),H) 01C0 0000
   DATA(OB(314),H) 01D0 0000
* 
* -------------------- LOC $10B ----------------------------
* 
   DATA(OB(320),H) 01E0 0000       *             NOP
   DATA(OB(324),H) 01E0 0000
   DATA(OB(330),H) 01E0 0000
   DATA(OB(334),H) 01E0 0000
   DATA(OB(340),H) 01A0 0000
   DATA(OB(344),H) 01B0 0000
   DATA(OB(350),H) 01C0 0000
   DATA(OB(354),H) 01D0 0000
* 
* -------------------SET P/START--------------------------
* 
   DATA(OB(360),H) 0731 0000       *P=100 
   DATA(OB(364),H) 0700 2000       *SET RUN BIT 
* 
* --------------------INITIALIZATION----------------------
* 
30 B13 = 80D
* 
* -------------------DOWNLOAD CODE TO HPP-------------------
* 
32 B2 = 364 
   B1 = 0 
34 B12 = 1
   RES , ABT 70 
   B12 = 2
   FUNC 273 , ABT 70
   WC = 4 
   BA = B1
   B12 = 3
   OUT , ABT 70 
   GOTO 34 WHILE(B1+4.LE.B2)
* 
* --------------------READ GSW--------------------------------
* 
36 B12 = 2
   FUNC 200 , ABT 70
   B12 = 7
   STATUS 2 WORDS TO SB(0) , ABT 70 
   IF(SB(0).AND.377.NE.0)GOTO 50   *GSW SHOULD BE 0'S 
   IF(SB(1).AND.377.NE.0)GOTO 50
* 
   MSG 5 TO DISPLAY,PRINT 
   EXIT                            *EXIT TO CALLING MODULE
* 
* ---------------------ERROR PROCESSOR----------------------- 
* 
50 MSG 1 TO LINE 1
   MSG 3 TO LINE 2
   MSG 4(SB(0),SB(1)) TO LINE 3 
   GOTO 75
* 
* ---------------------ABORT PROCESSOR----------------------
* 
70 MSG 1 TO LINE 1
   MSG 2(EA)TO LINE 2 
75 PICTURE
   HALT 
   BLANK
77 END 30 
* 
COMPILE   *DMA80C - HPM DOWNLOAD, PART 3
   MODULE DMA81A,6000(200),LOCK 
***       DMA81A - PMI/CMRI OUT REG REFORMATTER 1 
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         READS THE CMRI I/O REGISTER LOOP AND
*         REFORMATS THE ACTUAL CONTROL, ADDRESS, AND DATA 
*         SECTIONS OF THE PMI/CMRI OUTPUT REGISTER
*         SO THAT IT CAN BE COMPARED WITH THE EXPECTED
*         DATA. 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         IB(000-103) - CMRI I/O REGISTER LOOP DATA 
*         IB(200-221) - ACTUAL REFORMATTED PACKET DATA
*         B0-B7       - WORKING REGISTERS 
* 
* 
* ---------------REFORMAT PACKET DATA---------------------
* 
20 B14 = B5                        *SAVE REGISTERS
   B8 = B6
* 
   RES                             *RESERVE CHANNEL 
   B0 = 102                        *RD CMR I/O REG LOOP 
   FUNC 214                        *TO IB(0-103)
22 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 22 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0)
* 
30 IB(200) = IB(64) 
   IB(201) = IB(65) 
   IB(202) = IB(66) 
   IB(203) = IB(67) 
   IB(204) = IB(70) 
   IB(205) = IB(71) 
   IB(206) = IB(72) 
   B0 = IB(073).AND.200 
   B1 = IB(075).AND.200.RS.1
   B2 = IB(077).AND.200.RS.2
   B3 = IB(101).AND.200.RS.3
   B4 = IB(073).AND.100.RS.3
   B5 = IB(075).AND.100.RS.4
   B6 = IB(077).AND.100.RS.5
   B7 = IB(101).AND.100.RS.6
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(210) = B0.OR.B3.OR.B6 
   B0 = IB(073).AND.040.LS.2
   B1 = IB(075).AND.040.LS.1
   B2 = IB(077).AND.040 
   B3 = IB(101).AND.040.RS.1
   B4 = IB(073).AND.020.RS.1
   B5 = IB(075).AND.020.RS.2
   B6 = IB(077).AND.020.RS.3
   B7 = IB(101).AND.020.RS.4
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(211) = B0.OR.B3.OR.B6 
   B0 = IB(073).AND.010.LS.4
   B1 = IB(075).AND.010.LS.3
   B2 = IB(077).AND.010.LS.2
   B3 = IB(101).AND.010.LS.1
   B4 = IB(073).AND.004.LS.1
   B5 = IB(075).AND.004 
   B6 = IB(077).AND.004.RS.1
   B7 = IB(101).AND.004.RS.2
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(212) = B0.OR.B3.OR.B6 
   B0 = IB(073).AND.002.LS.6
   B1 = IB(075).AND.002.LS.5
   B2 = IB(077).AND.002.LS.4
   B3 = IB(101).AND.002.LS.3
   B4 = IB(073).AND.001.LS.3
   B5 = IB(075).AND.001 LS.2
   B6 = IB(077).AND.001.LS.1
   B7 = IB(101).AND.001 
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(213) = B0.OR.B3.OR.B6 
* 
   EXIT TO 81B
* 
77 END 20 
COMPILE   *DMA81A - PMI/CMRI OUT REG REFORMATTER 1
   MODULE DMA81B,6000(200),LOCK 
*         DMA81B - PMI/CMRI OUT REG REFORMATTER 2 
* 
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA81A
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA81A
* 
* --------------------CONTINUE----------------------------
* 
30 B0 = IB(074).AND.200 
   B1 = IB(076).AND.200.RS.1
   B2 = IB(100).AND.200.RS.2
   B3 = IB(102).AND.200.RS.3
   B4 = IB(074).AND.100.RS.3
   B5 = IB(076).AND.100.RS.4
   B6 = IB(100).AND.100.RS.5
   B7 = IB(102).AND.100.RS.6
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(214) = B0.OR.B3.OR.B6 
   B0 = IB(074).AND.040.LS.2
   B1 = IB(076).AND.040.LS.1
   B2 = IB(100).AND.040 
   B3 = IB(102).AND.040.RS.1
   B4 = IB(074).AND.020.RS.1
   B5 = IB(076).AND.020.RS.2
   B6 = IB(100).AND.020.RS.3
   B7 = IB(102).AND.020.RS.4
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(215) = B0.OR.B3.OR.B6 
   B0 = IB(074).AND.010.LS.4
   B1 = IB(076).AND.010.LS.3
   B2 = IB(100).AND.010.LS.2
   B3 = IB(102).AND.010.LS.1
   B4 = IB(074).AND.004.LS.1
   B5 = IB(076).AND.004 
   B6 = IB(100).AND.004.RS.1
   B7 = IB(102).AND.004.RS.2
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(216) = B0.OR.B3.OR.B6 
   B0 = IB(074).AND.002.LS.6
   B1 = IB(076).AND.002.LS.5
   B2 = IB(100).AND.002.LS.4
   B3 = IB(102).AND.002.LS.3
   B4 = IB(074).AND.001.LS.3
   B5 = IB(076).AND.001 LS.2
   B6 = IB(100).AND.001.LS.1
   B7 = IB(102).AND.001 
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(217) = B0.OR.B3.OR.B6 
* 
   IB(220)=IB(103)                 *DATA PARITY TO COMP BUFFER
* 
   B5 = B14                        *RESTORE REGISTERS 
   B6 = B8
* 
   EXIT                            *EXIT TO CALLING MODULE
* 
77 END 30 
COMPILE   *DMA81B - PMI/CMRI OUT REG REFORMATTER 2
   MODULE DMA82A,6000(200),LOCK 
***       DMA82A - PMI/CMRI IN REG REFORMATTER 1
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         READS THE CMRI I/O REGISTER LOOP AND
*         REFORMATS THE ACTUAL CONTROL, ADDRESS, AND DATA 
*         SECTIONS OF THE PMI/CMRI INPUT REGISTER SO
*         THAT IT CAN BE COMPARED WITH THE EXPECTED DATA. 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         IB(000-103) CMRI I/O REGISTER LOOP DATA 
*         IB(200-221) ACTUAL REFORMATTED PACKET DATA
*         B0-B7       WORKING REGISTERS 
* 
* 
* ---------------REFORMAT PACKET DATA---------------------
* 
20 IF(B13.EQ.88D)GOTO 24
21 RES                             *RESERVE CHANNEL 
   B0 = 102                        *RD CMR I/O REG LOOP 
   FUNC 214                        *TO IB(0-103)
22 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 22 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0)
* 
24 B8 = B6                         *SAVE REGISTERS
   B14 = B5 
* 
30 IB(200) = IB(000)
   IB(201) = IB(001)
   IB(202) = IB(02) 
   IB(203) = IB(03) 
   IB(204) = IB(04) 
   IB(205) = IB(05) 
   IB(206) = IB(06) 
   B0 = IB(007).AND.200 
   B1 = IB(011).AND.200.RS.1
   B2 = IB(013).AND.200.RS.2
   B3 = IB(015).AND.200.RS.3
   B4 = IB(007).AND.100.RS.3
   B5 = IB(011).AND.100.RS.4
   B6 = IB(013).AND.100.RS.5
   B7 = IB(015).AND.100.RS.6
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(210) = B0.OR.B3.OR.B6 
   B0 = IB(007).AND.040.LS.2
   B1 = IB(011).AND.040.LS.1
   B2 = IB(013).AND.040 
   B3 = IB(015).AND.040.RS.1
   B4 = IB(007).AND.020.RS.1
   B5 = IB(011).AND.020.RS.2
   B6 = IB(013).AND.020.RS.3
   B7 = IB(015).AND.020.RS.4
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(211) = B0.OR.B3.OR.B6 
   B0 = IB(007).AND.010.LS.4
   B1 = IB(011).AND.010.LS.3
   B2 = IB(013).AND.010.LS.2
   B3 = IB(015).AND.010.LS.1
   B4 = IB(007).AND.004.LS.1
   B5 = IB(011).AND.004 
   B6 = IB(013).AND.004.RS.1
   B7 = IB(015).AND.004.RS.2
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(212) = B0.OR.B3.OR.B6 
   B0 = IB(007).AND.002.LS.6
   B1 = IB(011).AND.002.LS.5
   B2 = IB(013).AND.002.LS.4
   B3 = IB(015).AND.002.LS.3
   B4 = IB(007).AND.001.LS.3
   B5 = IB(011).AND.001 LS.2
   B6 = IB(013).AND.001.LS.1
   B7 = IB(015).AND.001 
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(213) = B0.OR.B3.OR.B6 
* 
   EXIT TO 82B
* 
77 END 20 
COMPILE   *DMA82A - PMI/CMRI IN REG REFORMATTER 1 
   MODULE DMA82B,6000(200),LOCK 
*         DMA82B - PMI/CMRI IN REG REFORMATTER 2
* 
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA82A
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA82A
* 
* ---------------REFORMAT PACKET DATA---------------- 
* 
30 B0 = IB(010).AND.200 
   B1 = IB(012).AND.200.RS.1
   B2 = IB(014).AND.200.RS.2
   B3 = IB(016).AND.200.RS.3
   B4 = IB(010).AND.100.RS.3
   B5 = IB(012).AND.100.RS.4
   B6 = IB(014).AND.100.RS.5
   B7 = IB(016).AND.100.RS.6
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(214) = B0.OR.B3.OR.B6 
   B0 = IB(010).AND.040.LS.2
   B1 = IB(012).AND.040.LS.1
   B2 = IB(014).AND.040 
   B3 = IB(016).AND.040.RS.1
   B4 = IB(010).AND.020.RS.1
   B5 = IB(012).AND.020.RS.2
   B6 = IB(014).AND.020.RS.3
   B7 = IB(016).AND.020.RS.4
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(215) = B0.OR.B3.OR.B6 
   B0 = IB(010).AND.010.LS.4
   B1 = IB(012).AND.010.LS.3
   B2 = IB(014).AND.010.LS.2
   B3 = IB(016).AND.010.LS.1
   B4 = IB(010).AND.004.LS.1
   B5 = IB(012).AND.004 
   B6 = IB(014).AND.004.RS.1
   B7 = IB(016).AND.004.RS.2
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(216) = B0.OR.B3.OR.B6 
   B0 = IB(010).AND.002.LS.6
   B1 = IB(012).AND.002.LS.5
   B2 = IB(014).AND.002.LS.4
   B3 = IB(016).AND.002.LS.3
   B4 = IB(010).AND.001.LS.3
   B5 = IB(012).AND.001 LS.2
   B6 = IB(014).AND.001.LS.1
   B7 = IB(016).AND.001 
   B0 = B0.OR.B1.OR.B2
   B3 = B3.OR.B4.OR.B5
   B6 = B6.OR.B7
   IB(217) = B0.OR.B3.OR.B6 
* 
   IB(220)=IB(17)                  *DATA PARITY TO COMPARE BUFF 
* 
   B5 = B14                        *RESTORE REGISTERS 
   B6 = B8
* 
   EXIT                            *EXIT TO CALLING MODULE
* 
77 END 30 
COMPILE   *DMA82B - PMI/CMRI IN REG REFORMATTER 2 
   MODULE DMA83A,6000(200),LOCK 
***       DMA83A - HPM 2 DOWNLOAD PART 1
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
* 
*   1.1   PURPOSE 
* 
*         WRITES A DATA PATTERN INTO HPM LOCATIONS 0000 - FFFF. 
*         THE DATA IN EACH HPM LOCATION IS THE ADDRESS OF THAT
*         LOCATION REPEATED FOUR TIMES TO MAKE UP A 64-BIT WORD.
* 
*         EXAMPLE:      HPM ADDR             DATA 
* 
*                        00000          0000000000000000
*                        00001          0001000100010001
*                        00002          0002000200020002
*                          :                    : 
*                        0FFFE          FFFEFFFEFFFEFFFE
*                        0FFFF          FFFFFFFFFFFFFFFF
* 
* 
*   1.2   METHOD
* 
*         1. LOAD THE DESTINATION AND OPERATION TABLE OF THE HPP 01 
*         2. LOAD THE PROGRAM THAT WRITES HPM 
*         3. START THE PROGRAM
* 
* 
*   1.3   ERRORS REPORTED/MESSAGE ISSUED
* 
*         DMA83A - LOADING HPM 81 
*         DMA83A - ABORT. P=*OCT
*         DMA83A - STATUS ERROR ON DOWNLOAD TO HPP
*         DMA83A - GSW = *H*H HEX 
*         DMA83A - HPM 2 DOWNLOAD PART 1
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
*         OB(000 - 477)   RING PACKETS
*         B1  - OUTPUT BUFFER DATA POINTER
*         B2  - END OF DATA POINTER 
*         B12 - COMMAND ABORT MSG NUMBER
*         B13 - MODULE NUMBER 
* 
* 
*   2.3   SUBMODULES USED 
* 
*         97X - ABORT MESSAGE PROCESSOR 
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA83A -   LOADING HPM 81 
2  FORMAT DMA83A - ABORT. P=*OCT
3  FORMAT DMA83A - STATUS ERROR ON DOWNLOAD TO HPP
4  FORMAT DMA83A - GSW = *H*H HEX 
5  FORMAT DMA83A - HPM 2 DOWNLOAD PART 1
* 
* ------------------------DATA----------------------------- 
* 
   DATA(OB(000),H) 0710 2001          *STOP HPP 
* 
* ------------------ LOAD DEST/OP TABLE ------------------- 
* 
   DATA(OB(004),H) 05A0 C001          *C0XX - XX IS HPP ADDR
   DATA(OB(010),H) 05B0 C001
   DATA(OB(014),H) 05C0 C001
   DATA(OB(020),H) 05D0 C001
   DATA(OB(024),H) 05E0 C001
   DATA(OB(030),H) 05F0 C001
   DATA(OB(034),H) 0710 2001          *20XX - XX IS HPP ADDR
   DATA(OB(040),H) 04A0 00D8
   DATA(OB(044),H) 04B0 0098
   DATA(OB(050),H) 04C0 00F8
   DATA(OB(054),H) 04D0 00B8
   DATA(OB(060),H) 04E0 0738
   DATA(OB(064),H) 04F0 0048
   DATA(OB(070),H) 0730 FF01          *FFXX - XX IS HPP ADDR
   DATA(OB(074),H) 01F0 0000
* 
* -------------------- LOC $100 ----------------------------
* 
   DATA(OB(100),H) 01E0 0000       *     K=$0     A0=A0(K)
   DATA(OB(104),H) 01E0 1000       *               X0=.S10(K) 
   DATA(OB(110),H) 01E0 2000
   DATA(OB(114),H) 01E0 0000
   DATA(OB(120),H) 01A0 0000
   DATA(OB(124),H) 01E0 0866
   DATA(OB(130),H) 01E0 0D4C
   DATA(OB(134),H) 01E0 0000
   DATA(OB(140),H) 01E0 0000
   DATA(OB(144),H) 01B0 0000
   DATA(OB(150),H) 01E0 0000
   DATA(OB(154),H) 01E0 0000
   DATA(OB(160),H) 01E0 0000
   DATA(OB(164),H) 01E0 0000
   DATA(OB(170),H) 01C0 0000
   DATA(OB(174),H) 01D0 0000
* 
* -------------------- LOC $101 ----------------------------
* 
   DATA(OB(200),H) 01E0 0000       *      K=$0   X0=.A1(K)
   DATA(OB(204),H) 01E0 0000
   DATA(OB(210),H) 01E0 2000
   DATA(OB(214),H) 01E0 0000
   DATA(OB(220),H) 01A0 0000
   DATA(OB(224),H) 01E0 090C
   DATA(OB(230),H) 01E0 0000
   DATA(OB(234),H) 01E0 0000
   DATA(OB(240),H) 01E0 0000
   DATA(OB(244),H) 01B0 0000
   DATA(OB(250),H) 01E0 0000
   DATA(OB(254),H) 01E0 0000
   DATA(OB(260),H) 01E0 0000
   DATA(OB(264),H) 01E0 0000
   DATA(OB(270),H) 01C0 0000
   DATA(OB(274),H) 01D0 0000
* 
* -------------------- LOC $102 ----------------------------
* 
   DATA(OB(300),H) 01E0 0000       *      K=$0    X0=.CS(K) 
   DATA(OB(304),H) 01E0 0000
   DATA(OB(310),H) 01E0 2000
   DATA(OB(314),H) 01E0 0000
   DATA(OB(320),H) 01A0 0000
   DATA(OB(324),H) 01E0 050C
   DATA(OB(330),H) 01E0 0000
   DATA(OB(334),H) 01E0 0000
   DATA(OB(340),H) 01E0 0000
   DATA(OB(344),H) 01B0 0000
   DATA(OB(350),H) 01E0 0000
   DATA(OB(354),H) 01E0 0000
   DATA(OB(360),H) 01E0 0000
   DATA(OB(364),H) 01E0 0000
   DATA(OB(370),H) 01C0 0000
   DATA(OB(374),H) 01D0 0000
* 
* --------------------DATA--------------------------------
* 
   DATA(OB(400),H) 4100 0000 FFFF 
* 
* --------------------EQUATES-----------------------------
* 
   EQUATE CLRCRP = 400, ZEROS = 402, ONES = 404 
* 
* ------------------RESET CRP/DMAU/HPPS-------------------
* 
30 MSG 1 TO DISPLAY,PRINT,DAYFILE 
   B13 = 83D
* 
* -------------------DOWNLOAD CODE TO HPP-------------------
* 
32 B2 = 374 
   B1 = 0 
34 B12 = 1
   RES , ABT 70 
   B12 = 2
   FUNC 273 , ABT 70
   WC = 4 
   BA = B1
   B12 = 3
   OUT , ABT 70 
   GOTO 34 WHILE(B1+4.LE.B2)
* 
* --------------------READ GSW--------------------------------
* 
36 B12 = 2
   FUNC 200 , ABT 70
   B12 = 7
   STATUS 2 WORDS TO SB(0) , ABT 70 
   IF(SB(0).AND.377.NE.0)GOTO 50   *GSW SHOULD BE 0'S 
   IF(SB(1).AND.377.NE.0)GOTO 50
* 
   EXIT TO 83B                     *CONTINUE WITH DOWNLOAD
* 
* ---------------------ERROR PROCESSOR----------------------- 
* 
50 MSG 5 TO LINE 1
   MSG 3 TO LINE 2
   MSG 4(SB(0),SB(1)) TO LINE 3 
   GOTO 75
* 
* ---------------------ABORT PROCESSOR----------------------
* 
70 MSG 5 TO LINE 1
   MSG 2(EA)TO LINE 2 
75 PICTURE
   HALT 
   BLANK
77 END 30 
* 
COMPILE   *DMA83A - HPM 2 DOWNLOAD, PART 1
   MODULE DMA83B,6000(200),LOCK 
*         DMA83B - HPM 2 DOWNLOAD, PART 2 
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA83A
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA83A
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA83B - HPM 2 DOWNLOAD, PART 2 
2  FORMAT DMA83B - ABORT. P=*OCT
3  FORMAT DMA83B - STATUS ERROR ON DOWNLOAD TO HPP
4  FORMAT DMA83B - GSW = *H*H HEX 
* 
* 
* -------------------- LOC $103 ----------------------------
* 
   DATA(OB(000),H) 01E0 0000       *     K=$FFFF    X0=.CA(K) 
   DATA(OB(004),H) 01E0 0000
   DATA(OB(010),H) 01E0 2000
   DATA(OB(014),H) 01E0 FFFF
   DATA(OB(020),H) 01A0 0000
   DATA(OB(024),H) 01E0 040C
   DATA(OB(030),H) 01E0 0000
   DATA(OB(034),H) 01E0 0000
   DATA(OB(040),H) 01E0 0000
   DATA(OB(044),H) 01B0 0000
   DATA(OB(050),H) 01E0 0000
   DATA(OB(054),H) 01E0 0000
   DATA(OB(060),H) 01E0 0000
   DATA(OB(064),H) 01E0 0000
   DATA(OB(070),H) 01C0 0000
   DATA(OB(074),H) 01D0 0000
* 
* -------------------- LOC $104 ----------------------------
* 
   DATA(OB(100),H) 01E0 0000       *           X0=Z1DR+(/C) 
   DATA(OB(104),H) 01E0 0000
   DATA(OB(110),H) 01E0 1000
   DATA(OB(114),H) 01E0 0000
   DATA(OB(120),H) 01A0 0000
   DATA(OB(124),H) 01E0 773C
   DATA(OB(130),H) 01E0 0000
   DATA(OB(134),H) 01E0 0000
   DATA(OB(140),H) 01E0 0000
   DATA(OB(144),H) 01B0 0000
   DATA(OB(150),H) 01E0 0000
   DATA(OB(154),H) 01E0 0000
   DATA(OB(160),H) 01E0 0000
   DATA(OB(164),H) 01E0 0000
   DATA(OB(170),H) 01C0 0000
   DATA(OB(174),H) 01D0 0000
* 
* -------------------- LOC $105 ----------------------------
* 
   DATA(OB(200),H) 01E0 0000       *LOOP       X0=*(A0) 
   DATA(OB(204),H) 01E0 0000
   DATA(OB(210),H) 01E0 2000
   DATA(OB(214),H) 01E0 0000
   DATA(OB(220),H) 01A0 0000
   DATA(OB(224),H) 01E0 0000
   DATA(OB(230),H) 01E0 0000
   DATA(OB(234),H) 01E0 0000
   DATA(OB(240),H) 01E0 0000
   DATA(OB(244),H) 01B0 0000
   DATA(OB(250),H) 01E0 0000
   DATA(OB(254),H) 01E0 0000
   DATA(OB(260),H) 01E0 0000
   DATA(OB(264),H) 01E0 0070
   DATA(OB(270),H) 01C0 0000
   DATA(OB(274),H) 01D0 0000
* 
* -------------------- LOC $106 ----------------------------
* 
   DATA(OB(300),H) 01E0 0000       *           X0=*(A0) 
   DATA(OB(304),H) 01E0 0000
   DATA(OB(310),H) 01E0 2000
   DATA(OB(314),H) 01E0 0000
   DATA(OB(320),H) 01A0 0000
   DATA(OB(324),H) 01E0 0000
   DATA(OB(330),H) 01E0 0000
   DATA(OB(334),H) 01E0 0000
   DATA(OB(340),H) 01E0 0000
   DATA(OB(344),H) 01B0 0000
   DATA(OB(350),H) 01E0 0000
   DATA(OB(354),H) 01E0 0000
   DATA(OB(360),H) 01E0 0000
   DATA(OB(364),H) 01E0 0070
   DATA(OB(370),H) 01C0 0000
   DATA(OB(374),H) 01D0 0000
* 
* -------------------- LOC $107 ----------------------------
* 
   DATA(OB(400),H) 01E0 0000       *            X0=*(A0)
   DATA(OB(404),H) 01E0 0000
   DATA(OB(410),H) 01E0 2000
   DATA(OB(414),H) 01E0 0000
   DATA(OB(420),H) 01A0 0000
   DATA(OB(424),H) 01E0 0000
   DATA(OB(430),H) 01E0 0000
   DATA(OB(434),H) 01E0 0000
   DATA(OB(440),H) 01E0 0000
   DATA(OB(444),H) 01B0 0000
   DATA(OB(450),H) 01E0 0000
   DATA(OB(454),H) 01E0 0000
   DATA(OB(460),H) 01E0 0000
   DATA(OB(464),H) 01E0 0070
   DATA(OB(470),H) 01C0 0000
   DATA(OB(474),H) 01D0 0000
* 
* -----------------INITIALIZATION-------------------------- 
* 
30 B13 = 83D
* 
* -------------------DOWNLOAD CODE TO HPP-------------------
* 
32 B2 = 474 
   B1 = 0 
34 B12 = 1
   RES , ABT 70 
   B12 = 2
   FUNC 273 , ABT 70
   WC = 4 
   BA = B1
   B12 = 3
   OUT , ABT 70 
   GOTO 34 WHILE(B1+4.LE.B2)
* 
* --------------------READ GSW--------------------------------
* 
36 B12 = 2
   FUNC 200 , ABT 70
   B12 = 7
   STATUS 2 WORDS TO SB(0) , ABT 70 
   IF(SB(0).AND.377.NE.0)GOTO 50   *GSW SHOULD BE 0'S 
   IF(SB(1).AND.377.NE.0)GOTO 50
* 
   EXIT TO 83C                     *CONTINUE WITH DOWNLOAD
* 
* ---------------------ERROR PROCESSOR----------------------- 
* 
50 MSG 1 TO LINE 1
   MSG 3 TO LINE 2
   MSG 4(SB(0),SB(1)) TO LINE 3 
   GOTO 75
* 
* ---------------------ABORT PROCESSOR----------------------
* 
70 MSG 1 TO LINE 1
   MSG 2(EA)TO LINE 2 
75 PICTURE
   HALT 
   BLANK
77 END 30 
* 
COMPILE   *DMA83B - HPM 2 DOWNLOAD, PART 2
   MODULE DMA83C,6000(200),LOCK 
*         DMA83C - HPM 2 DOWNLOAD, PART 3 
* 
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA83A
* 
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*         DOCUMENTED IN DMA83A
* 
* 
* -----------------MESSAGES-------------------------------------- 
* 
1  FORMAT DMA83C - HPM 2 DOWNLOAD, PART 3 
2  FORMAT DMA83C - ABORT. P=*OCT
3  FORMAT DMA83C - STATUS ERROR ON DOWNLOAD TO HPP
4  FORMAT DMA83C - GSW = *H*H HEX 
5  FORMAT DMA83C -   HPM 81 LOADED
* 
* -------------------- LOC $108 ----------------------------
* 
   DATA(OB(000),H) 01E0 0000       *           X0=*(A0) 
   DATA(OB(004),H) 01E0 0000
   DATA(OB(010),H) 01E0 2000
   DATA(OB(014),H) 01E0 0000
   DATA(OB(020),H) 01A0 0000
   DATA(OB(024),H) 01E0 0000
   DATA(OB(030),H) 01E0 0000
   DATA(OB(034),H) 01E0 0000
   DATA(OB(040),H) 01E0 0000
   DATA(OB(044),H) 01B0 0000
   DATA(OB(050),H) 01E0 0000
   DATA(OB(054),H) 01E0 0000
   DATA(OB(060),H) 01E0 0000
   DATA(OB(064),H) 01E0 0070
   DATA(OB(070),H) 01C0 0000
   DATA(OB(074),H) 01D0 0000
* 
* -------------------- LOC $109 ----------------------------
* 
   DATA(OB(100),H) 01E0 1000       *    K=LOOP  IF(X0.LE.CA)JK(/JI) 
   DATA(OB(104),H) 01E0 1000       *             A0=AP1(A0) 
   DATA(OB(110),H) 01E0 0000
   DATA(OB(114),H) 01E0 0105
   DATA(OB(120),H) 01A0 0000
   DATA(OB(124),H) 01E0 59C0
   DATA(OB(130),H) 01E0 0826
   DATA(OB(134),H) 01E0 0000
   DATA(OB(140),H) 01E0 0000
   DATA(OB(144),H) 01B0 0000
   DATA(OB(150),H) 01E0 0000
   DATA(OB(154),H) 01E0 0007
   DATA(OB(160),H) 01E0 0000
   DATA(OB(164),H) 01E0 0000
   DATA(OB(170),H) 01C0 0000
   DATA(OB(174),H) 01E0 0000
   DATA(OB(200),H) 01E0 0000
   DATA(OB(204),H) 01E0 0000
   DATA(OB(210),H) 01E0 0000
   DATA(OB(214),H) 01D0 0000
* 
* -------------------- LOC $10A ----------------------------
* 
   DATA(OB(220),H) 01E0 1000       *K=*        JK(/JI)
   DATA(OB(224),H) 01E0 0000
   DATA(OB(230),H) 01E0 0000
   DATA(OB(234),H) 01E0 010A
   DATA(OB(240),H) 01A0 0000
   DATA(OB(244),H) 01E0 1900
   DATA(OB(250),H) 01E0 0000
   DATA(OB(254),H) 01E0 0000
   DATA(OB(260),H) 01E0 0000
   DATA(OB(264),H) 01B0 0000
   DATA(OB(270),H) 01E0 0000
   DATA(OB(274),H) 01E0 0000
   DATA(OB(300),H) 01E0 0000
   DATA(OB(304),H) 01E0 0000
   DATA(OB(310),H) 01C0 0000
   DATA(OB(314),H) 01D0 0000
* 
* -------------------- LOC $10B ----------------------------
* 
   DATA(OB(320),H) 01E0 0000       *             NOP
   DATA(OB(324),H) 01E0 0000
   DATA(OB(330),H) 01E0 0000
   DATA(OB(334),H) 01E0 0000
   DATA(OB(340),H) 01A0 0000
   DATA(OB(344),H) 01B0 0000
   DATA(OB(350),H) 01C0 0000
   DATA(OB(354),H) 01D0 0000
* 
* -------------------SET P/START--------------------------
* 
   DATA(OB(360),H) 0731 0001       *P=100 
   DATA(OB(364),H) 0700 2001       *SET RUN BIT 
* 
* --------------------INITIALIZATION----------------------
* 
30 B13 = 83D
* 
* -------------------DOWNLOAD CODE TO HPP-------------------
* 
32 B2 = 364 
   B1 = 0 
34 B12 = 1
   RES , ABT 70 
   B12 = 2
   FUNC 273 , ABT 70
   WC = 4 
   BA = B1
   B12 = 3
   OUT , ABT 70 
   GOTO 34 WHILE(B1+4.LE.B2)
* 
* --------------------READ GSW--------------------------------
* 
36 B12 = 2
   FUNC 200 , ABT 70
   B12 = 7
   STATUS 2 WORDS TO SB(0) , ABT 70 
   IF(SB(0).AND.377.NE.0)GOTO 50   *GSW SHOULD BE 0'S 
   IF(SB(1).AND.377.NE.0)GOTO 50
* 
   MSG 5 TO DISPLAY,PRINT 
   EXIT                            *EXIT TO CALLING MODULE
* 
* ---------------------ERROR PROCESSOR----------------------- 
* 
50 MSG 1 TO LINE 1
   MSG 3 TO LINE 2
   MSG 4(SB(0),SB(1)) TO LINE 3 
   GOTO 75
* 
* ---------------------ABORT PROCESSOR----------------------
* 
70 MSG 1 TO LINE 1
   MSG 2(EA)TO LINE 2 
75 PICTURE
   HALT 
   BLANK
77 END 30 
* 
COMPILE   *DMA83C - HPM 2 DOWNLOAD, PART 3
   MODULE DMA88,6000(200),LOCK
***       DMA88 - DMAU RL DUMP (320)
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         DUMPS ALL DMAU REGISTER LOOPS 
* 
* 
*   1.2   METHOD
* 
*         1. READ THE MEMORY RING REGISTER LOOP 
*         2. FORMAT AND DISPLAY DATA
*         3. READ THE RAFL REGISTER LOOP
*         4. FORMAT AND DISPLAY DATA
*         5. READ THE CENTRAL MEMORY RING REGISTER LOOP 
*         6. FORMAT AND DISPLAY DATA
*         7. EXIT 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*         DMA88 DMAU RL DUMP (320)
*         DMA88 -----------MEMORY RING RL---------------- 
*         DMA88 PMI/MRI IN  A *H*H                     HEX
*         DMA88 MMI/MRI IN  A *H*H                     HEX
*         DMA88 MMI/MRI OUT A *H*H                     HEX
*         DMA88 PMI/MRI OUT A *H*H                     HEX
*         DMA88                   *H*H *H*H *H*H *H*H  HEX
*         DMA88 -----------RAFL/LP RL-------------------- 
*         DMA88 RAFL        A *H*H                     HEX
*         DMA88 MR LP       A *H*H                     HEX
*         DMA88 ------CENTRAL MEMORY RING RL--------- 
*         DMA88 PMI OUT CNTRL      *H*H *H*H*H*H *H    HEX
*         DMA88 PMI OUT DATA       *H*H *H*H *H*H *H*H HEX
*         DMA88 PMI OUT DATA PAR   *H                  HEX
*         DMA88 CMR RL   (128-191) *H*H *H*H *H*H *H*H HEX
*         DMA88 CMR RL   (192-255) *H*H *H*H *H*H *H*H HEX
*         DMA88 CMR RL   (256-271) *H*H                HEX
*         DMA88 CMR RL   (272-335) *H*H *H*H *H*H *H*H HEX
*         DMA88 CMR RL   (336-399) *H*H *H*H *H*H *H*H HEX
*         DMA88 CMR RL   (400-415) *H*H                HEX
*         DMA88 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX
*         DMA88 PMI IN DATA        *H*H *H*H *H*H *H*H HEX
*         DMA88 PMI IN DATA PARITY *H                  HEX
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
* 
* 
*   2.3   SUBMODULES USED 
* 
*         19B - READ RAFL/LP REG LOOP 
* 
*         81A - READ CM RL AND REFORMAT PMI OUTPUT REG
* 
*         82A - READ CM RL AND REFORMAT PMI INPUT REG 
* 
* 
* ----------------------MESSAGES--------------------------------- 
* 
0  FORMAT DMA88 DMAU RL DUMP (320)
1  FORMAT DMA88 -----------MEMORY RING RL---------------- 
2  FORMAT DMA88 PMI/MRI IN  A *H*H                     HEX
3  FORMAT DMA88 MMI/MRI IN  A *H*H                     HEX
4  FORMAT DMA88 MMI/MRI OUT A *H*H                     HEX
5  FORMAT DMA88 PMI/MRI OUT A *H*H                     HEX
6  FORMAT DMA88                   *H*H *H*H *H*H *H*H  HEX
7  FORMAT DMA88 -----------RAFL/LP RL-------------------- 
10 FORMAT DMA88 RAFL        A *H*H                     HEX
11 FORMAT DMA88 MR LP       A *H*H                     HEX
12 FORMAT DMA88 ------CENTRAL MEMORY RING RL--------- 
13 FORMAT DMA88 PMI OUT CNTRL      *H*H *H*H*H*H *H    HEX
14 FORMAT DMA88 PMI OUT DATA       *H*H *H*H *H*H *H*H HEX
15 FORMAT DMA88 PMI OUT DATA PAR   *H                  HEX
16 FORMAT DMA88 CMR RL   (128-191) *H*H *H*H *H*H *H*H HEX
17 FORMAT DMA88 CMR RL   (192-255) *H*H *H*H *H*H *H*H HEX
20 FORMAT DMA88 CMR RL   (256-271) *H*H                HEX
21 FORMAT DMA88 CMR RL   (272-335) *H*H *H*H *H*H *H*H HEX
22 FORMAT DMA88 CMR RL   (336-399) *H*H *H*H *H*H *H*H HEX
23 FORMAT DMA88 CMR RL   (400-415) *H*H                HEX
24 FORMAT DMA88 PMI IN CNTRL       *H*H *H*H*H*H *H    HEX
25 FORMAT DMA88 PMI IN DATA        *H*H *H*H *H*H *H*H HEX
26 FORMAT DMA88 PMI IN DATA PARITY *H                  HEX
* 
* -----------------INITIALIZATION-------------------------- 
* 
30 MSG 0 TO DISPLAY,PRINT,DAYFILE  *TEST NAME MSG 
   B13 = 88D                       *MODULE NUMBER 
* 
* ------------------DUMP MR RL----------------------------
* 
   RES                             *RESERVE CHANNEL 
   B0 = 46                         *READ MR REG LOOP
   FUNC 215 
32 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 32 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0)
34 MSG 01 TO LINE 0 
   MSG 02, 2 WORDS FROM IB(00) TO LINE 07 
   MSG 06, 8 WORDS FROM IB(02) TO LINE 10 
   MSG 03, 2 WORDS FROM IB(12) TO LINE 03 
   MSG 06, 8 WORDS FROM IB(14) TO LINE 04 
   MSG 04, 2 WORDS FROM IB(24) TO LINE 05 
   MSG 06, 8 WORDS FROM IB(26) TO LINE 06 
   MSG 05, 2 WORDS FROM IB(36) TO LINE 01 
   MSG 06, 8 WORDS FROM IB(40) TO LINE 02 
* 
   CALL 19B                        *READ RAFL/LP RL 
* 
   MSG 7 TO LINE 11 
   MSG 10, 2 WORDS FROM IB(000) TO LINE 12
   MSG 06, 8 WORDS FROM IB(002) TO LINE 13
   MSG 11, 2 WORDS FROM IB(212) TO LINE 14
   MSG 06, 8 WORDS FROM IB(214) TO LINE 15
* 
   CALL 81A                        *READ CM RL
* 
   MSG 12 TO LINE 16
   MSG 13, 7 WORDS FROM IB(200) TO LINE 17
   MSG 14, 8 WORDS FROM IB(210) TO LINE 20
   MSG 15(IB(220))TO LINE 21
   MSG 16, 8 WORDS FROM IB(020) TO LINE 22
   MSG 17, 8 WORDS FROM IB(030) TO LINE 23
   MSG 20, 2 WORDS FROM IB(040) TO LINE 24
   MSG 21, 8 WORDS FROM IB(042) TO LINE 25
   MSG 22, 8 WORDS FROM IB(052) TO LINE 26
   MSG 23, 2 WORDS FROM IB(062) TO LINE 27
* 
   CALL 82A                        *READ CM RL
* 
   MSG 24, 7 WORDS FROM IB(200) TO LINE 30
   MSG 25, 8 WORDS FROM IB(210) TO LINE 31
   MSG 26(IB(220))TO LINE 32
* 
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA88 - DMAU RL DUMP (320) 
   MODULE DMA90,6000(200),LOCK
***       DMA90 - DMAU RL DUMP (480)
**
* 
*   1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*   1.1   PURPOSE 
* 
*         DUMPS ALL DMAU REGISTER LOOPS FOR A 2 HPM SYSTEM. 
* 
* 
*   1.2   METHOD
* 
*         1. READ THE MEMORY RING REGISTER LOOP 
*         2. FORMAT AND DISPLAY DATA
*         3. READ THE RAFL REGISTER LOOP
*         4. FORMAT AND DISPLAY DATA
*         5. READ THE CENTRAL MEMORY RING REGISTER LOOP 
*         6. FORMAT AND DISPLAY DATA
*         7. EXIT 
* 
* 
*   1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*         DMA90 DMAU RL DUMP (480)
*         DMA90 -----------MEMORY RING RL---------------- 
*         DMA90 PMI/MRI   IN  A *H*H                     HEX
*         DMA90 MMI/MRI80 IN  A *H*H                     HEX
*         DMA90 MMI/MRI81 IN  A *H*H                     HEX
*         DMA90 MMI/MRI81 OUT A *H*H                     HEX
*         DMA90 MMI/MRI80 OUT A *H*H                     HEX
*         DMA90 PMI/MRI   OUT A *H*H                     HEX
*         DMA90                     *H*H *H*H *H*H *H*H  HEX
*         DMA90 -----------RAFL/LP RL-------------------- 
*         DMA90 RAFL        A *H*H                       HEX
*         DMA90 MR LP       A *H*H                       HEX
*         DMA90 ------CENTRAL MEMORY RING RL--------- 
*         DMA90 PMI OUT CNTRL      *H*H *H*H*H*H *H      HEX
*         DMA90 PMI OUT DATA       *H*H *H*H *H*H *H*H   HEX
*         DMA90 PMI OUT DATA PAR   *H                    HEX
*         DMA90 CMR RL   (128-191) *H*H *H*H *H*H *H*H   HEX
*         DMA90 CMR RL   (192-255) *H*H *H*H *H*H *H*H   HEX
*         DMA90 CMR RL   (256-271) *H*H                  HEX
*         DMA90 CMR RL   (272-335) *H*H *H*H *H*H *H*H   HEX
*         DMA90 CMR RL   (336-399) *H*H *H*H *H*H *H*H   HEX
*         DMA90 CMR RL   (400-415) *H*H                  HEX
*         DMA90 PMI IN CNTRL       *H*H *H*H*H*H *H      HEX
*         DMA90 PMI IN DATA        *H*H *H*H *H*H *H*H   HEX
*         DMA90 PMI IN DATA PARITY *H                    HEX
* 
* 
*   1.4   PARAMETERS
* 
*         NONE
* 
  
*   2.0   INTERNAL MODULE DOCUMENTATION 
* 
*   2.1   ENTRY CONDITIONS
* 
*         NONE
* 
* 
*   2.2   REGISTER AND BUFFER USAGE 
* 
* 
* 
*   2.3   SUBMODULES USED 
* 
*         19B - READ RAFL/LP REG LOOP 
* 
*         81A - READ CM RL AND REFORMAT PMI OUTPUT REG
* 
*         82A - READ CM RL AND REFORMAT PMI INPUT REG 
* 
* 
* ----------------------MESSAGES--------------------------------- 
* 
0  FORMAT DMA90 -----------MEMORY RING RL---------------- 
1  FORMAT DMA90 MMI/MRI81 OUT A *H*H                     HEX
2  FORMAT DMA90 PMI/MRI   IN  A *H*H                     HEX
3  FORMAT DMA90 MMI/MRI80 IN  A *H*H                     HEX
4  FORMAT DMA90 MMI/MRI80 OUT A *H*H                     HEX
5  FORMAT DMA90 PMI/MRI   OUT A *H*H                     HEX
6  FORMAT DMA90                     *H*H *H*H *H*H *H*H  HEX
7  FORMAT DMA90 -----------RAFL/LP RL-------------------- 
10 FORMAT DMA90 RAFL        A *H*H                       HEX
11 FORMAT DMA90 MR LP       A *H*H                       HEX
12 FORMAT DMA90 ------CENTRAL MEMORY RING RL--------- 
13 FORMAT DMA90 PMI OUT CNTRL      *H*H *H*H*H*H *H      HEX
14 FORMAT DMA90 PMI OUT DATA       *H*H *H*H *H*H *H*H   HEX
15 FORMAT DMA90 PMI OUT DATA PAR   *H                    HEX
16 FORMAT DMA90 CMR RL   (128-191) *H*H *H*H *H*H *H*H   HEX
17 FORMAT DMA90 CMR RL   (192-255) *H*H *H*H *H*H *H*H   HEX
20 FORMAT DMA90 CMR RL   (256-271) *H*H                  HEX
21 FORMAT DMA90 CMR RL   (272-335) *H*H *H*H *H*H *H*H   HEX
22 FORMAT DMA90 CMR RL   (336-399) *H*H *H*H *H*H *H*H   HEX
23 FORMAT DMA90 CMR RL   (400-415) *H*H                  HEX
24 FORMAT DMA90 PMI IN CNTRL       *H*H *H*H*H*H *H      HEX
25 FORMAT DMA90 PMI IN DATA        *H*H *H*H *H*H *H*H   HEX
26 FORMAT DMA90 PMI IN DATA PARITY *H                    HEX
27 FORMAT DMA90 MMI/MRI81 IN  A *H*H                     HEX
* 
* -----------------INITIALIZATION-------------------------- 
* 
30 B13 = 88D                       *MODULE NUMBER 
* 
* ------------------DUMP MR RL----------------------------
* 
   RES                             *RESERVE CHANNEL 
   B0 = 72                         *READ MR REG LOOP
   FUNC 215 
32 IN CHAIN 2 WORDS TO IB(B0) 
   GOTO 32 WHILE(B0-2.GE.2) 
   IN 2 WORDS TO IB(0)
34 MSG 00 TO LINE 0 
   MSG 05, 2 WORDS FROM IB(62) TO LINE 01        *PMI OUT 
   MSG 06, 8 WORDS FROM IB(64) TO LINE 02 
   MSG 03, 2 WORDS FROM IB(12) TO LINE 03        *80  IN
   MSG 06, 8 WORDS FROM IB(14) TO LINE 04 
   MSG 04, 2 WORDS FROM IB(50) TO LINE 05        *80  OUT 
   MSG 06, 8 WORDS FROM IB(52) TO LINE 06 
   MSG 27, 2 WORDS FROM IB(24) TO LINE 07        *81  IN
   MSG 06, 8 WORDS FROM IB(26) TO LINE 10 
   MSG 01, 2 WORDS FROM IB(36) TO LINE 11        *81  OUT 
   MSG 06, 8 WORDS FROM IB(40) TO LINE 12 
   MSG 02, 2 WORDS FROM IB(00) TO LINE 13        *PMI IN
   MSG 06, 8 WORDS FROM IB(02) TO LINE 14 
* 
   CALL 19B                        *READ RAFL/LP RL 
* 
   MSG 7 TO LINE 15 
   MSG 10, 2 WORDS FROM IB(000) TO LINE 16
   MSG 06, 8 WORDS FROM IB(002) TO LINE 17
   MSG 11, 2 WORDS FROM IB(212) TO LINE 20
   MSG 06, 8 WORDS FROM IB(214) TO LINE 21
* 
   CALL 81A                        *READ CM RL
* 
   MSG 12 TO LINE 22
   MSG 13, 7 WORDS FROM IB(200) TO LINE 23
   MSG 14, 8 WORDS FROM IB(210) TO LINE 24
   MSG 15(IB(220))TO LINE 25
   MSG 16, 8 WORDS FROM IB(020) TO LINE 26
   MSG 17, 8 WORDS FROM IB(030) TO LINE 27
   MSG 20, 2 WORDS FROM IB(040) TO LINE 30
   MSG 21, 8 WORDS FROM IB(042) TO LINE 31
   MSG 22, 8 WORDS FROM IB(052) TO LINE 32
   MSG 23, 2 WORDS FROM IB(062) TO LINE 33
* 
   CALL 82A                        *READ CM RL
* 
   MSG 24, 7 WORDS FROM IB(200) TO LINE 34
   MSG 25, 8 WORDS FROM IB(210) TO LINE 35
   MSG 26(IB(220))TO LINE 36
* 
   PICTURE
   HALT 
   BLANK
   EXIT 
* 
77 END 30 
COMPILE   *DMA90 - DMAU RL DUMP (480) 
   MODULE DMA97X,6000(200),LOCK 
***   DMA97X - ABORT MESSAGE PROCESSOR
**
* 
*     1.0   EXTERNAL MODULE DOCUMENTATION 
* 
*     1.1   PURPOSE 
* 
*           PROCESSES COMMAND ABORTS. 
* 
* 
*     1.2   METHOD
* 
*           OUTPUTS THE COMMAND ABORT MESSAGE BASED ON
*           THE TYPE OF COMMAND BEING EXECUTED AT THE 
*           TIME OF THE ABORT.
* 
* 
*     1.3   ERRORS REPORTED/MESSAGES ISSUED 
* 
*           DMA*D ABORT ON .RES. COMMAND AT LINE *OCT 
*           DMA*D ABORT ON .FUNC. COMMAND AT LINE *OCT
*           DMA*D ABORT ON .OUT. COMMAND AT LINE *OCT 
*           DMA*D ABORT ON .IN. COMMAND AT LINE *OCT
*           DMA*D ABORT ON .FIN. COMMAND AT LINE *OCT 
*           DMA*D ABORT ON .FOUT. COMMAND AT LINE *OCT
*           DMA*D ABORT ON .STATUS. COMMAND AT LINE *OCT
*           DMA*D ABORT ON .INB. COMMAND AT LINE *OCT 
*           DMA*D ABORT ON .OUTB. COMMAND AT LINE *OCT
*           DMA*D ABORT ON .ACN. COMMAND AT LINE *OCT 
*           DMA*D ABORT ON .REL. COMMAND AT LINE *OCT 
*           DMA*D ABORT ON .DCN. COMMAND AT LINE *OCT 
* 
* 
*     1.4   PARAMETERS
* 
*           NONE
* 
  
*     2.0   INTERNAL MODULE DOCUMENTATION 
* 
*     2.1   ENTRY CONDITIONS
* 
*           B13 - MODULE NUMBER 
*           B12 - COMMAND NUMBER
*           EA  - ERROR ADDRESS 
* 
* 
*     2.2   REGISTER AND BUFFER USAGE 
* 
*           NONE
* 
* 
*     2.3   SUBMODULES USED 
* 
*           NONE
* 
* 
* ---------------ABORT MESSAGES---------------------------
* 
1  FORMAT  DMA*D ABORT ON .RES. COMMAND AT LINE *OCT
2  FORMAT  DMA*D ABORT ON .FUNC. COMMAND AT LINE *OCT 
3  FORMAT  DMA*D ABORT ON .OUT. COMMAND AT LINE *OCT
4  FORMAT  DMA*D ABORT ON .IN. COMMAND AT LINE *OCT 
5  FORMAT  DMA*D ABORT ON .FIN. COMMAND AT LINE *OCT
6  FORMAT  DMA*D ABORT ON .FOUT. COMMAND AT LINE *OCT 
7  FORMAT  DMA*D ABORT ON .STATUS. COMMAND AT LINE *OCT 
10 FORMAT  DMA*D ABORT ON .INB. COMMAND AT LINE *OCT
11 FORMAT  DMA*D ABORT ON .OUTB. COMMAND AT LINE *OCT 
12 FORMAT  DMA*D ABORT ON .ACN. COMMAND AT LINE *OCT
13 FORMAT  DMA*D ABORT ON .REL. COMMAND AT LINE *OCT
14 FORMAT  DMA*D ABORT ON .DCN. COMMAND AT LINE *OCT
15 FORMAT  ---------------------------------------------
* 
* -----------------DISPLAY COMMAND ABORT MSG------------
* 
30 MSG B12(B13,EA) TO LINE 3
   PICTURE
   HALT 
   BLANK
   EXIT                            *RETURN TO CALLING MODULE
77 END 30 
COMPILE   *DMA97X - ABORT MESSAGE PROCESSOR 
   MODULE DMA99,6000(200),LOCK
***   DMA99 - TABLE OF CONTENTS 
**
* 
/--------------------- TABLE OF CONTENTS ------------------------ 
/ 
/ MODULE
/ NUMBER               MODULE DESCRIPTION                  RUN TIME 
/-------               ------------------                  -------- 
/ 
/       ------------- BASIC CHECKOUT TESTS ---------------
/ 
/  00          PARAMETER VALIDATION                          1  SEC 
/  01          SRI I/O REGISTER TEST                         1  SEC 
/  03          SRI READ STATUS TEST                          1  SEC 
/  05          SRI CONNECT/DISCONNET TEST                    1  SEC 
/  07          MEMORY RING REGISTER LOOP TEST (320)          1  SEC 
/  09          MEMORY RING PACKET TEST (320)                 1  SEC 
/  11          MMI/MRI 80 I/O REGISTER TEST (320)            1  SEC 
/  13          MMI/MRI 80 HPM READ TEST (320)                1  SEC 
/  15          RAFL REGISTER LOOP TEST                       1  SEC 
/  17          CENTRAL MEMORY RING REGISTER LOOP TEST        1  SEC 
/  19          MEMORY RING LOST PACKET TEST                  1  SEC 
/  21          CENTRAL MEMORY RING WRITE PACKET TEST         5  SEC 
/  23          FIELD LENGTH TEST 1 (>)                       5  SEC 
/  25          FIELD LENGTH TEST 2 (=)                       5  SEC 
/  27          RIGHT JUSTIFIED DATA TEST                     5  SEC 
/  29          LEFT JUSTIFIED DATA TEST                      5  SEC 
/  31          BIT STREAM DATA TEST                          5  SEC 
/  33          CENTRAL MEMORY RING READ PACKET TEST          1  SEC 
/  35          PMI/CMI I/O REGISTER TEST                     2  SEC 
/  37          CENTRAL MEMORY RING LOST PACKET TEST          1  SEC 
/ 
/       -------------- CMI LOOPBACK TESTS ----------------
/ 
/  39          WRITE XFER COMPLETE LOOPBACK TEST           180  SEC 
/  41          CMI WRITE DATA LOOPBACK TEST                  2  SEC 
/  43          READ XFER COMPLETE LOOPBACK TEST            180  SEC 
/ 
/       ---------------- CM RD/WR TEST -------------------
/ 
/  45          CENTRAL MEMORY WRITE TEST                     1  SEC 
/  47          CENTRAL MEMORY READ TEST                      1  SEC 
/  49          CENTRAL MEMORY READ/WRITE TEST                1  SEC 
/  53          CENTRAL MEMORY WRITE DEMO                    60  SEC 
/ 
/       ---------------- DUAL HPM TESTS ------------------
/ 
/  61          MEMORY RING REGISTER LOOP TEST (480)          1  SEC 
/  63          MMI/MRI 81 I/O REGISTER LOOP TEST (480)       1  SEC 
/  64          MMI/MRI 80 HPM READ TEST (480)                2  SEC 
/  65          MMI/MRI 81 HPM READ TEST (480)                2  SEC 
/  67          CENTRAL MEMORY WRITE TEST 2                   1  SEC 
/  69          CENTRAL MEMORY READ TEST 2                    1  SEC 
/  71          NEXT WRITER TEST                              1  SEC 
/  73          HPM(80) TO HPM(81) TEST                     180  SEC 
/  75          HPM(81) TO HPM(80) TEST                     180  SEC 
/  88          DMAU REGISTER LOOP DUMP (320)                 1  SEC 
/  90          DMAU REGISTER LOOP DUMP (480)                 1  SEC 
/ 
1  END 1
COMPILE,SOURCE  *DMA99 - TABLE OF CONTENTS
   MODULE DMA99A,6000(200),LOCK 
***   DMA99A -  PARAMETERS
**
* 
/ 
/--------------------- PARAMETERS ------------------------------------
/ 
/         P0  - DATA TRANSFER MODE
/ 
/                 01 HEX = LEFT JUSTIFIED 
/                 02 HEX = RIGHT JUSTIFIED
/                 03 HEX = BIT STREAM 
/ 
/         P1  - BLOCK COUNT    - 12 BITS (000-FFF HEX)
/ 
/         P2  - CM ADDR (W/R)  - 12 BITS (000-FFF HEX)
/               RELATIVE TO RA
/ 
/******************* HPM 80 ******************************* 
/ 
/         P3  - UPPER HPM ADDR - 12 BITS (000-FFF HEX)
/               ABSOLUTE (W/R)
/ 
/         P4  - LOWER HPM ADDR - 12 BITS (000-FFF HEX)
/               ABSOLUTE (W/R)
/ 
/******************* HPM 81 ******************************* 
/ 
/         P5  - UPPER HPM ADDR - 12 BITS (000-FFF HEX)
/               ABSOLUTE (W/R)
/ 
/         P6  - LOWER HPM ADDR - 12 BITS (000-FFF HEX)
/               ABSOLUTE (W/R)
/ 
/********************************************************** 
/ 
/         P7  - UEM BASE ADDRESS/1000 OCTAL  - 12 BITS
/               FROM CENTRAL MEMORY LOC 120 B, BITS 47-59 
/ 
/********************************************************** 
/ 
/     THE COMPLETE 24 BIT HPM W/R ADDRESS IS ASSEMBLED
/     AS FOLLOWS: 
/                      P3     P4
/                     076H + 543H = 076543H 
/ 
/     THE FULL RANGE OF HPM W/R ADDRESSES DEPENDS ON THE
/     MEMORY CONFIGURATION.  FOR A 256K MEMORY THE RANGE
/     IS 000000-03FFFF.  FOR A 512K MEMORY THE RANGE IS 
/     000000-07FFFF.
/ 
/ 
/    ************************************************************ 
/    *                                                          * 
/    *    NOTE: WHEN USING PARAMETERS TO SPECIFY BLOCK COUNT,   * 
/    *          CM RD/WR ADDRESSES, AND MODE, THE FOLLOWING     * 
/    *          GUIDELINES SHOULD BE OBSERVED:                  * 
/    *                                                          * 
/    *          1. IN RIGHT OR LEFT JUSTIFIED DATA MODES THE    * 
/    *             SUM OF THE BLOCK COUNT AND CM RD/WR ADDRESS  * 
/    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
/    *                                                          * 
/    *          2. IN BIT STREAM DATA MODE THE SUM OF THE CM    * 
/    *             ADDRESS AND 16/15THS OF THE BLOCK COUNT *
/    *             SHOULD NOT EXCEED 410 HEX (2020 OCTAL).      * 
/    *                                                          * 
/    *         FAILURE TO FOLLOW THESE GUIDELINES SHOULD RESULT * 
/    *         IN THE GENERATION OF A FIELD LENGTH ERROR.       * 
/    *                                                          * 
/    ************************************************************ 
/ 
/ 
/------------------------- PARAMETER USAGE ------------------------ 
/ 
/    MODULE    P0   P1   P2   P3   P4   P5   P6   P7
/    ------    --   --   --   --   --   --   --   --
/ 
/    DMA01
/    DMA03
/    DMA05
/    DMA07
/    DMA09
/    DMA11
/    DMA13
/    DMA15
/    DMA17
/    DMA19
/    DMA21
/    DMA23
/    DMA25
/    DMA27
/    DMA29
/    DMA31
/    DMA33
/    DMA35
/    DMA37
/    DMA39     XX   XX
/    DMA41
/    DMA43     XX   XX
/    DMA45     XX   XX   XX   XX   XX             XX
/    DMA47     XX   XX   XX   XX   XX             XX
/    DMA49          XX                            XX
/    DMA53                                        XX
/    DMA61
/    DMA63
/    DMA64
/    DMA65
/    DMA67     XX   XX   XX   XX   XX             XX
/    DMA69     XX   XX   XX   XX   XX             XX
/    DMA71     XX   XX   XX   XX   XX   XX   XX   XX
/    DMA73          XX        XX   XX   XX   XX 
/    DMA75          XX        XX   XX   XX   XX 
/ 
1  END 1
COMPILE,SOURCE  *DMA99 - PARAMETERS 
