*DECK BOOTDUMP
         NAM     BOOTJM 
         EXT     BOOTDP 
         EXT     BOOTEX 
         EXT     LK2552 
         EXT     PD2552 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* OVERVIEW -                                                          * 
*        THE JUMPS LOCATED AT CORE LOCATIONS 0 AND 2 ARE USED FOR     * 
*        ENTRY AND EXIT FROM THE MICRO DUMP ROUTINE.  FOR THE REMOTE  * 
*        NPU CASE CORE LOCATIONS 2 AND 3 ARE PROTECTED BY THE         * 
*        REMOTE LOAD/DUMP BOOTSTRAP AND ARE MAINTAINED AS A RE-ENTRY  * 
*        JUMP.  FOR THE LOCAL,NPU CORE LOCATIONS 2 AND 3 ARE LOADED   * 
*        WITH THE JUMP TO THE EXIT CODE TO SEND THE READY FOR DUMP    * 
*        COUPLER STATUS.                                              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
BOOTJM   RTJ     MAINB        MAIN ROUTINE
         NOP    0            RETURN JUMP  INST WILL BE STORED 
         NOP    0            RETURN ADDRESS WILL BE STORED
* 
CCP52    ADC     LK2552       2552 BOOT DUMP IF NON ZERO
* 
MAINB    NOP
         LDA*    CCP52
         SAN     MAINB1       SKIP IF 2552
         LDQ*    MAINB
         STQ     BOOTDP 
          LDQ    =XBOOTDP                                                CC4
         JMP-    1,Q
* 
MAINB1   RTJ     PD2552       2552 BOOT DUMP
* 
         END
         NAM     BOOTDP       COPYRIGHT CONTROL DATA CORP. 1975,         CC4
*                             1976, 1977, 1978.                          CC4
         ENT   BOOTDP 
         ENT     MMFILE1
         ENT     MMCKSUM
         ENT     DPZER0 
         ENT     DPCKSUM
         EXT   PD2552 
************************************************************************
* OVERVIEW -                                                           *
*        THE BOOTSTRAP DUMP PROGRAM IS AN ASSEMBLY LANGUAGE            *
*        PROGRAM WHICH IS LOADED BY THE PPU INTO THE NPU TO            *
*        PERFORM THE DUMP OF PERTINENT AREAS OF MICRO-MEMORY.          *
*        THE PROGRAM FORMATS SUCH DATA FOR SUBSEQUENT READ BY          *
*        THE PPU AND ANALYSIS.                                         *
*                                                                      *
* GENERAL DESCRIPTION -                                                *
*        UPON NPU FAILURE, THE PPU LOADS THIS PROGRAM BEGINNING        *
*        AT LOCATION 0 INTO NPU MAIN MEMORY AND THEN INITIATES         *
*        THE PROGRAM AT LOCATION 0. CERTAIN INFORMATION IS SUBSEQUENTLY*
*        EXTRACTED FROM MICROMEMORY AND MOVED TO MAIN MEMORY. FOLLOWING*
*        THE TRANSFER, PROGRAM EXECUTION TERMINATES WITH THE NPU       *
*        STATUS REGISTER INDICATING READY TO DUMP.                     *
*                                                                     * 
*       THIS ROUTINE MUST BE LOADED ABOVE THE OVERLAY AREA OF CCP     * 
*       IN CASE IT IS USED FOR A REMOTE NPU DUMP.  IN THIS CASE       * 
*       THE EXIT JUMP AT CORE LOCATIONS 2 AND 3 ARE MAINTAINED        * 
*       BY THE REMOTE LOAD/DUMP MODULE AND CAUSE A START NPU REPLY    * 
*       TO BE SENT OVER THE LINK.                                     * 
*                                                                     * 
*                                                                     * 
*                                                                      *
* FUNCTIONAL REQUIREMENTS -                                            *
*        TO PREPARE THE DUMP AREA FOR SUBSEQUENT PPU READ, THE         *
*        PROGRAM MUST EXECUTE 4 FUNCTIONS:                             *
*     1. LOAD MICRO MEMORY WITH A SEQUENCE TO CHECKSUM MICRO MEMORY.   *
*     2. EXECUTE THAT SEQUENCE TO CHECKSUM MICRO MEMORY AND SAVE THE   *
*        CHECKSUM IN MAIN MEMORY.                                      *
*     3. MOVE FILE1 REGISTER CONTENTS TO MAIN MEMORY.                  *
*     4. SET UP NPU STATUS REGISTER TO INDICATE DUMP PROGRAM           *
*          COMPLETE. THE PPU WILL THEN READ FROM MAIN MEMORY           *
*          (SINCE IT CANNOT ACCESS MICRO MEMORY) THE DUMP AREA.        *
*                                                                      *
* REFERENCE -                                                          *
*        SEE EITHER NPU ERS - SECTION#LOADING AND CONFIGURATION#       *
*            OR     BOOTSTRAP DUMP PROGRAM GID                         *
*        FOR A DESCRIPTION.                                            *
*                                                                      *
************************************************************************
         EJT
* 
*         --   EQUATES -- 
* 
         EQU     MMSTART($5200)     START OF DUMP MEMORY
         EQU   MMADR($7F0)    ADR OF MICRO MEMORY CHECKSUM PROGRAM
          EQU    MMADR2(MMADR+MMADR)
         EQU   MMREGC($1)     ACTUAL COUNT
         EQU     MMFILE1($5200)  START OF FILE1 SAVE REGS.S.
         EQU     MMREGA($51FF)
         EQU     MMCKSUM($5300)  CHECKSUM AREA. 
          EQU    DPZER0($4000)    START OF PAGE 0 REGISTERS.
          EQU    DPCKSUM($401F)   END OF PAGE REGISTERS.
* 
*         --   LOAD MICRO MEMORY WITH CHECKSUM SEQUENCE --
* 
BOOTDP   NOP   0         ENTRY POINT
         IIN   0         INHIBIT INTERRUPTS 
         LR2   =XMMSEQ        MAIN MEMORY ADR. OF MICRO SEQUENCE
         LR1   =XMMADR2       MICRO MEMORY ADR. TO LOAD INTO
         LDQ*  MMSEQ-1   COUNT OF 32-BIT WORDS TO LOAD
         LMM   0              LOAD MICRO MEMORY 
* 
*         --   EXECUTE CHECKSUM --
* 
         LDQ   =XMMADR        ADR OF CHECKSUM SEQUENCE
         EMS   Q              EXECUTE CHECKSUM
         STA   MMCKSUM        STORE IT
* 
*         --   DUMP FILE 1 REGISTERS -- 
* 
          LR2    =XMMSEQF         MACRO MEMORY ADDRESS. 
          LR1    =N$0C08          MICRO MEMORY ADDRESS. 
          LDQ*   MMSEQF-1         NUMBER OF 32-BIT MICRO WORDS. 
          LMM    0                WRITE MICRO MEMORY
* 
         LDA   =XMMFILE1      ADR OF FILE1 SAVE AREA
         LDQ   =N$0000        COUNT AND REGISTER ADDRESS
         LR3   =N$0604        ADR OF MICRO ROUTINE
         EMS   3              EXECUTE DUMP
* 
*         --   SET UP COUNT OF REGISTERS SAVED -- 
* 
         ENA   MMREGC         COUNT 
         STA   MMREGA         INTO COUNT FIELD
* 
*        --   EXIT (JUMP TO CORE LOCATION 2)
* 
         JMP*    (BOOTDP)     EXECUTE EXIT LOGIC
* 
* 
* * *   M I C R O    M E M O R Y     I N S T R U C T I O N S
* * *   T O   S A V E   F I L E  1   R E G I S T E R S. 
* 
          NUM    8            NUMBER OF MICRO MEMORY WORDS TO WRITE 
MMSEQF    NUM    $54E6,$1030  +       B       Q  X        TK/0
          NUM    $5EDE,$2500  -       A    X     X  L8EA
          NUM    $5F1D,$1040  +       A    A     A        TN/0
          NUM    $5F98,$244C  - NEXT  A    F1       WRITE DECN
          NUM    $58DE,$8045  +       ZERO    X           INCK     NZU
          NUM    $0000,$0000  - * *  U N U S E D   L O W E R S  * * 
          NUM    $98D8,$503E  +                           UINTRTN JL
          NUM    $B51D,$4005  -       ADD+ A  X  A        NEXT    J 
*CALL MMCKSUM 
         END
