*DECK     EDD 
          IDENT  EDD,EDD
          PERIPH
          SST    T0,T1,T2,T3,T4,T5,T6,T7,ON 
          BASE   M
*CALL,VERS
          TITLE  EDD         CTI EXPRESS DEADSTART DUMP - "VERS"
          COMMENT CTI EXPRESS DEADSTART DUMP - "VERS" 
          COMMENT COPYRIGHT CONTROL DATA CORPORATION, 1979
*CALL,CDCCRN
          SPACE  4,10 
*****     EDD - EXPRESS DEADSTART DUMP. 
*         J. C. BOHNHOFF.    73/02/03.
*         P. D. HAAS.        74/04/12.
          SPACE  4,10 
***       *EDD* DUMPS ALL PP-S AND CENTRAL MEMORY TO MAGNETIC TAPE. 
*         THE DUMP ALSO INCLUDES THE CONTENTS OF THE STATUS/CONTROL 
*         REGISTERS OF A CYBER 170 AND THE CPU HARDWARE REGISTER
*         CONTENTS AT DEADSTART TIME PLUS THE CONTENTS OF *FLPP*
*         MEMORY ON A CYBER 176.  THE TAPE DENSITY IS SET TO
*         800 BPI FOR 65X AND 7 TRACK 66X/67X TAPES AND 1600 BPI FOR
*         9 TRACK 66X/67X TAPES. ALL TAPES ARE WRITTEN IN S FORMAT. 
* 
*         THE FOLLOWING AREAS OF PP MEMORY ARE DESTROYED BY *EDD* - 
*         LOCATIONS 0 - 21 OF PP0 (DEADSTART PANEL) 
*         LOCATIONS 6000 - 7777 OF PP0 (IF PP0 SAVE SWITCH ON)
*         LOCATIONS 0 - 7 OF PP1 (PP1 IDLER)
*         LOCATIONS 0 - 5 OF ALL OTHER PP-S (PP IDLER)
* 
*         IF ALL OF PP0 MEMORY IS DESIRED, TRANSFER PP0 MEMORY TO 
*         ANOTHER PP BY MEANS OF THE FOLLOWING PROGRAM ON THE DEAD
*         START PANEL.
* 
*         0001   2000 
*         0002   7776 
*         0003   73XX        XX = PP NUMBER 
*         0004   0000 
*         0005   0300 
* 
*         THE EXCHANGE AREA OF CENTRAL MEMORY IS SAVED AND REWRITTEN
*         VIA THE IDLER IN PP1 TO PREVENT DESTRUCTION DURING CPU
*         HARDWARE REGISTER AND ECS/LCM DUMPING.  THE ASSEMBLY SYMBOL 
*         *CMEC* CONTROLS WHICH AREA WILL BE USED FOR THE EXCHANGES.
*         *CMEC* DEFINES A LOCATION WHERE A CPU PROGRAM, ITS EXCHANGE 
*         PACKAGE, AND AN ECS/LCM BUFFER WILL BE PLACED.  THE LENGTH OF 
*         THIS AREA IS SET TO 1100B WORDS FOR THE PP1 IDLER TO SAVE.
*         THE CPU HARDWARE REGISTER EXCHANGE PACKAGE USES THIS SAME 
*         AREA, HOWEVER, THE PROGRAM LOOP IS WORD ZERO OF CMR.
* 
*         IF TWO CPUS EXIST, BOTH WILL BE EXCHANGED, AND THE REGISTERS
*         DUMPED.  HOWEVER, IF A CPU IS TURNED OFF VIA THE
*         DEADSTART OPTION, THAT CPU WILL NOT BE EXCHANGED, BUT A FLAG
*         BIT WILL BE SET IN THE DUMP NOTING THAT THE CPU IS OFF. 
*         THE CPU THAT IS TURNED OFF ALSO WILL NOT BE USED FOR
*         EXCHANGING DURING THE ECS/LCM DUMP. 
* 
*         NOTES- 1) IF CPU0 IS DOWN AND ONLY ONE CPU EXISTS, THE
*                OPERATOR MUST TURN OFF BOTH CPU0 AND CPU1 AT 
*                DEADSTART TO AVOID ANY ATTEMPT AT EXCHANGING THE 
*                HARDWARE REGISTERS OR THE ECS/LCM DUMP PROGRAM.
* 
*                2) IF BOTH CPUS ARE TURNED OFF, NO ECS/LCM 
*                DUMP WILL BE PREFORMED, REGARDLESS OF THE
*                ECS/LCM SIZE VALUE ENTERED.
* 
*                CONSOLE INTERACTION WITH EDD IS AS FOLLOWS - 
*         1) ENTER TAPE CHANNEL.
*         2) ENTER TAPE EQUIPMENT, CONTROLLER TYPE AND UNIT IN THE
*            FORM ECUU. 
*            E = EQUIPMENT. 
*            C = CONTROLLER TYPE. (IF NOTHING IS ENTERED, DEFAULT 
*                IS MTS IF EQ = 0 AND MMTC IF EQ .NE. 0)
*                1 = ATS.  (67X)
*                2 = MTS.  (66X)
*                3 = MMTC. (65X)
*            UU = UNIT NUMBER.
*         3) ENTER 2 DIGIT DUMP IDENTIFIER. THIS WILL BE PLACED IN THE
*            TAPE LABEL FOR FUTURE REFERENCE. 
*         4) ENTER TAPE REWIND OPTION. A NONZERO ENTRY INHIBITS REWIND
*            BEFORE AND AFTER DUMP. 
*         5) ENTER ECS SIZE/1000.  IF ZERO, ECS/LCM WILL NOT BE DUMPED. 
*         6) WHEN DUMP IS COMPLETE, MESSAGE *DUMP NN COMPLETE* IS 
*            POSTED ON THE DISPLAY. 
* 
*         IF A TAPE ERROR OCCURS DURING DUMPING, A MESSAGE OF THIS FORM 
*         WILL APPEAR - 
*                ERR CSAA  DSBBBB 
*         WHERE - ERR INDICATES ERROR TYPE -
*                   CON - CONNECT REJECT
*                   FCN - FUNCTION REJECT 
*                   WRT - WRITE ERROR 
*                AA IS THE CHANNEL CONVERTER STATUS.
*                BBBB IS THE EQUIPMENT STATUS.
*         IF A *CR* IS ENTERED, *EDD* WILL RETRY THE OPERATION. 
*         IF AN *S* IS ENTERED, *EDD* WILL STOP THE 
*         ENTIRE DUMP OPERATION.
          SPACE  4
**        DUMP TAPE FORMAT - ALL RECORD SIZES MUST BE MULTIPLES OF
*         FOUR CM WORDS TO BE COMPATIBLE WITH ANY TYPE OF TAPE UNIT.
* 
*         1) FOUR WORD LABEL BLOCK FOR STATUS/CONTROL REGISTER(S) 
*            IF A CYBER 170.
*         60/  *SCR       * 
*         60/  *EXPRESS NN* (NN = DUMP IDENTIFIER)
*         60/ 
*         60/ 
* 
*         2) ONE RECORD FOR EACH STATUS/CONTROL REGISTER EXISTING 
*            ON A CYBER 170 (CHANNEL 16 FIRST, CHANNEL 36 SECOND).
*            EACH RECORD HAS THE FORM - 
*         12/  0,12/  *SC*,12/  CHANNEL,24/  0
*         60/  REGISTER BITS 203 - 144
*         60/  REGISTER BITS 143 -  84
*         60/  REGISTER BITS  83 -  24
*         24/  BITS 23 - 0,36/  0 
*         60/  UNUSED 
*         60/  UNUSED 
*         60/  UNUSED 
* 
*         3) FOUR WORD LABEL BLOCK FOR PP DUMP. 
*         60/  *PP        * 
*         60/  *EXPRESS NN* (NN = DUMP IDENTIFIER)
*         60/ 
*         60/ 
* 
*         4) SEVERAL RECORDS OF PP DUMPS, EACH RECORD IN FORM - 
*         12/  BYTE 0,12/  *PP*,12/  PP NUMBER,24/  BYTES 3 AND 4 
*         60/  BYTES 5 THROUGH 11 
*                .
*                .
*                .
*         60/  BYTES 7772 THROUGH 7776
*         12/  BYTE 7777,48/
* 
*         5) FOUR WORD LABEL BLOCK FOR CM DUMP. 
*         48/  *CM      *,12/  SIZE/1000
*         60/  *EXPRESS NN* (NN = DUMP IDENTIFIER)
*         60/ 
*         60/ 
* 
*         6) ONE RECORD CONTAINING DUMP OF ALL OF CENTRAL MEMORY. 
* 
*         7) FOUR WORD LABEL BLOCK FOR CPU HARDWARE REGISTER
*            CONTENTS DUMP. 
*         60/  *CPR       * 
*         60/  *EXPRESS NN* (NN = DUMP IDENTIFIER)
*         60/ 
*         60/ 
* 
*         8) ONE RECORD FOR EACH EXISTING CPU CONTAINING CONTENTS 
*            OF CPU HARDWARE REGISTERS AT DEADSTART TIME.  EACH 
*            RECORD HAS THE FORM -
*         12/  0,18/  *CPU*,6/  NO.,24/  BIT 0 SET IF CPU OFF 
*         6/  0,18/  P,18/  A0,18/  B0
*                .
*                .
*                .
*         60/  X7 
*         60/  UNUSED 
*         60/  UNUSED 
*         60/  UNUSED 
* 
*         9) FOUR WORD LABEL BLOCK FOR FLPP DUMP ON A CYBER 176.
*         60/  *FPP       * 
*         60/  *EXPRESS NN* (NN = DUMP IDENTIFIER)
*         60/ 
*         60/ 
* 
*         10) SEVERAL RECORDS OF FLPP DUMPS, EACH RECORD IN FORM -
*         12/  BYTE 0,12/  *FP*,12/  PPU NUMBER,24/  BYTES 3 AND 4
*         60/  BYTES 5 THROUGH 11 
*                .
*                .
*                .
*         60/  BYTES 7772 THROUGH 7776
*         12/  BYTE 7777,48/
* 
*         11) FOUR WORD LABEL BLOCK FOR ECS/LCM DUMP. 
*         30/  *ECS  *,18/  FLAG REGISTER,12/  SIZE/1000
*         60/  *EXPRESS NN* (NN = DUMP IDENTIFIER)
*         60/ 
*         60/ 
* 
*         12) ONE RECORD CONTAINING ECS/LCM DUMP.  THIS IS AS LONG
*             AS WAS INDICATED BY THE OPERATOR. 
* 
*         13) FOUR WORD LABEL BLOCK FOR BUFFER CONTROLLER DUMPS.
*         60/  *BC        * 
*         60/  *EXPRESS NN* (NN = DUMP IDENTIFIER)
*         60/ 
*         60/ 
* 
*         14) SEVERAL CONTROLWARE RECORDS, DEPENDING UPON THE NUMBER
*             OF BUFFER CONTROLLER CHANNELS IDENTIFIED.  EACH RECORD
*             CONTAINS 10000 HEXIDECIMAL WORDS DEBLOCKED INTO 20000 
*             BYTES IN THE FORM - 
*         12/  BYTE 0,12/  *CH*,12/  CHANNEL,24/  BYTES 3 AND 4 
*         60/  BYTES 5 THROUGH 11 
*                .
*                .
*                .
*         60/  BYTES 17771 THROUGH 17775
*         24/  BYTES 17776 AND 17777,36/
*         60/ 
* 
*         15) FILE MARK.
*                                                                        DIMA219
*         16) FILE MARK.                                                 DIMA219
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMPMAC 
*CALL     COMSCPA 
*CALL     COMSCTI 
          LIST    X                                                      SCRR5A0
*CALL     COMSSCR 
          LIST    *                                                      SCRR5A0
          TITLE  MACRO DEFINITIONS. 
          SPACE  4,10 
**        CHIM - REDEFINE M-TYPE CHANNEL INSTRUCTIONS.
* 
* 
*         CHIM   OPC,CODE 
*         ENTRY  *OPC* = INSTRUCTION MNEMONIC.
*                *CODE* = OPERATION CODE. 
  
  
 CHIM     MACRO  OPC,CODE 
          PURGMAC OPC 
 OPC.     PPOP   7,CODE 
 OPC      MACRO  M,D
          LOCAL  A
 A        OPC.   M,D
 CT_D     RMT 
          CON    A
          RMT 
 OPC      ENDM
 CHIM     ENDM
  
          CHIM   AJM,6400 
          CHIM   IJM,6500 
          CHIM   FJM,6600 
          CHIM   EJM,6700 
          CHIM   IAM,7100 
          CHIM   OAM,7300 
          CHIM   FNC,7700 
 CHIN     SPACE  4,10 
**        CHIN - REDEFINE N-TYPE CHANNEL INSTRUCTIONS.
* 
* 
*         CHIN   OPC,CODE 
*         ENTRY  *OPC* = INSTRUCTION MNEMONIC.
*                *CODE* = OPERATION CODE. 
* 
*         NOTE   BIT 2**5 SET ON ALL *DCN* INSTRUCTIONS.
  
  
 CHIN     MACRO  OPC,CODE 
          PURGMAC OPC 
 OPC.     PPOP   4,CODE 
 OPC      MACRO  D
          LOCAL  A
 A        OPC.   D
 CT_D     RMT 
          CON    A
          RMT 
 OPC      ENDM
 CHIN     ENDM
  
          CHIN   IAN,7000 
          CHIN   OAN,7200 
          CHIN   ACN,7400 
          CHIN   DCN,7540 
          CHIN   FAN,7600 
 CHTB     SPACE  4,10 
**        CHTB - DEFINE CHANNEL TABLE.
*         CHANNEL TABLE IS TERMINATED BY A ZERO WORD. 
* 
* 
*         CHTB   D
*         ENTRY  *D* = NAME OF CHANNEL TABLE. 
  
  
 CHTB     MACRO  D
 CT_D     BSS    0
 CT_D     HERE
          CON    0           TERMINATE TABLE
          ENDM
          TITLE  SYMBOL DEFINITIONS.
****      DIRECT LOCATION ASSIGNMENTS.
  
  
 T0       EQU    0           TEMPORARY STORAGE
 T1       EQU    1
 T2       EQU    2
 T3       EQU    3
 T4       EQU    4
 T5       EQU    5
 T6       EQU    6
 T7       EQU    7
 LL       EQU    10          RECORD LABEL LENGTH
 RL       EQU    11          RECORD LENGTH
 T8       EQU    12          TEMPORARY STORAGE
 EQ       EQU    13          EQUIPMENT NUMBER 
 CN       EQU    14          CHANNEL NUMBER 
 TS       EQU    15          TAPE SYSTEM
 DS       EQU    16          DEADSTART CHANNEL
 DT       EQU    DS+1        DUMP TAPE CHANNEL
 PB       EQU    20          PP0 SAVE ADDRESS 
 DP       EQU    21          UPPER PPS/CHANNEL FLAG 
  
*         THE FOLLOWING LOCATIONS ARE NOT USED UNTIL PP0 IS DUMPED. 
  
 ON       EQU    22          CONSTANT 1                                  DIMA223
 CS       EQU    23 - 27     CPU STATUS                                  DIMA223
 PS       EQU    24 - 30     PP STATUS                                   DIMA223
 MB       EQU    PS+4        MEMORY BLOCK COUNT                          DIMA223
 PN       EQU    MB          PP NUMBER                                   DIMA223
****
          SPACE  4,10 
*         CONSTANTS USED AS INSTRUCTIONS. 
  
  
 LJMI     EQU    0100        LJM
 UJNI     EQU    0300        UJN
 PJNI     EQU    0600        PJN
 IAMI     EQU    7100        IAM
 OAMI     EQU    7300        OAM
 ACNI     EQU    7400        ACN
 DCNI     EQU    7500        DCN
          SPACE  4,10 
*         OTHER SYMBOLS.
  
  
 MC       EQU    0           MAINTENANCE CHANNEL (C176) 
 PC       EQU    1           PP BUFFER CHANNEL
 BC       EQU    7           BUFFER CONTROLLER CHANNEL
 CH       EQU    10          DISPLAY CHANNEL
 DC       EQU    13          DEADSTART CHANNEL
 TC       EQU    13          DUMP TAPE CHANNEL
 SC       EQU    16          S/C REGISTER CHANNEL 
 XC       EQU    17          PP DATA TRANSFER CHANNEL                    DIMA271
 PPIA     EQU    7774        PP IDLE ADDRESS                             DIMA271
 TRLL     EQU    5*4         TAPE RECORD LABEL LENGTH 
 OVLA     EQU    100         *EDD* RESIDENT LOAD ADDRESS
 DSPB     EQU    /CPA/DSPNLZ DEADSTART PANEL BUFFER 
 CDEP     EQU    /CTI/CDEP   COMMON DRIVER ADDRESS
 OPTN     EQU    /CPA/OPTN   DEADSTART OPTIONS WORD 
 BUF      EQU    CDEP-5000   TAPE BUFFER
 PPS1     EQU    1000*5      PP DUMP SECTION 1 LENGTH 
 PPS2     EQU    10004-PPS1  PP DUMP SECTION 2 LENGTH 
 PPSZ     EQU    10000/5+1   PP SIZE (CM WORD COUNT)
  
 BCSZ     EQU    4096DS1     LENGTH OF BUFFER CONTROLLER DUMP RECORD
 BCR1     EQU    BCSZ/5000   NUMBER OF FULL BUFFER CONTROLLER BLOCKS
 BCR2     EQU    BCSZ-BCR1*5000  LENGTH OF DATA IN LAST BLOCK 
 .L       SET    BCR2+23
 BCR3     EQU    .L/24*24    LENGTH OF LAST BUFFER CONTROLLER PRU 
  
 CMEC     EQU    17000       CM ADDRESS OF ECS/LCM PROGRAM AND BUFFER 
 CMECL    EQU    1100        LENGTH OF ECS/LCM PROGRAM AND BUFFER 
  
          ERRNZ  CMEC/1000*1000-CMEC  *CMEC* NOT ON 1000 WORD BOUNDARY
          ERRNG  17000-CMEC  *CMEC* MUST BE .LE. 17000
  
 CMCP     EQU    CMEC        CPU REGISTER EXCHANGE PACKAGE ADDRESS
 CPIA     EQU    CMEC+20     CYBER 176 IDLE ADDRESS                      DIMA219
          TITLE  PRESET.
**        EDD - PRESET EDD. 
  
  
          ORG    /CTI/IPLB
  
 EDD      IJM.   EDD0,SC     IF NOT C17X
          LDC    FCCL+DSCU   STOP CPU IF C176 
          OAN.   SC+40
          IAN.   SC+40
 EDD0     LDM    DSPB+13     CHECK PP0 SAVE FLAG
          LPC    1S7
          ZJN    EDD2        IF PP0 NOT TO BE SAVED 
          LDC    PPSZ        SET PP SIZE
          STD    T6 
          LDC    TBUF-3 
          STD    T7 
          ADN    3           LOCATE FREE MEMORY BLOCK IN CM 
          RJM    CMA
 EDD1     LDN    4           ADVANCE LIST ADDRESS 
          RAD    T7 
          LDI    T7 
          ZJN    EDD2        IF END OF LIST 
          LDM    2,T7 
          SHN    6
          SBD    T6 
          MJN    EDD1        IF INSUFFICIENT CM TO SAVE PP0 
          LDI    T7          SET RA OF PP0 SAVE AREA
 EDD2     STD    PB 
          ZJN    EDD3        IF PP0 NOT BEING SAVED 
          SHN    6
          CWM    0,T6 
 EDD3     LDM    DSPB+10     DEADSTART CHANNEL
          LPN    37 
          STD    DS 
          DCN.   12          DEACTIVATE NON-PP CHANNELS 
          DCN.   13 
          DCN.   32 
          DCN.   33 
          LDC    EDDA        LOAD *EDD* RESIDENT
          LJM    CDEP        EXIT TO COMMON DRIVER
  
 EDDA     CON    OVLA        LOAD ADDRESS 
          CON    OVLA        TRANSFER ADDRESS 
          CON    0           REWIND FLAG
          VFD    24/0LEDT    RECORD NAME
          SPACE  4,10 
**        COMMON DECKS. 
  
  
          XTEXT  COMPCMA
          SPACE  4,10 
**        BUFFERS.
  
  
 TBUF     BSS    27*4 
          CON    0,0
  
          ERRPL  *-CDEP      OVERFLOW INTO DRIVER 
          TITLE  EDT - EDD RESIDENT.
          IDENT  EDT,EDT
          COMMENT CTI EDD OVERLAY 
          COMMENT COPYRIGHT CONTROL DATA CORPORATION, 1979
*CALL,CDCCRN
  
  
          ORG    OVLA 
  
 EDT      RJM    PRS         PRESET RESIDENT
          RJM    DSC         DUMP S/C REGISTERS 
  
*         DUMP PP-S AND CENTRAL MEMORY. 
  
          RJM    DP0         DUMP PP0 
          RJM    DPP         DUMP OTHER PP-S
          RJM    DCM         DUMP CENTRAL MEMORY
  
*         SAVE EXCHANGE AREA. 
  
          AOM    DIGE        SET RESTORE CM FLAG
          ACN    PC 
          LDN    EDTFL       SEND EXCHANGE AREA READ PROGRAM
          OAM    EDTF,PC
          DCN    PC 
          LCN    0           DELAY TO INSURE COMPLETION OF CM READ
          SBN    1
          NJN    *-1
  
*         DUMP CPU HARDWARE REGISTERS, FLPP-S AND ECS/LCM.
  
          RJM    DCP         DUMP CPU HARDWARE REGISTERS
          RJM    LNO         LOAD NEXT DUMP OVERLAY 
          LDC    0
 EDTA     EQU    *-1
          ZJN    EDT1        IF NOT CYBER 176 
          RJM    DFP         DUMP FLPP-S
 EDT1     RJM    DEM         DUMP EXTENDED MEMORY 
          ACN    PC          REWRITE EXCHANGE AREA VIA PP1 IDLER
          SOM    DIGE        CLEAR CM RESTORATION FLAG
  
*         DUMP PERIPHERAL CONTROLLERS.
  
          RJM    LNO         LOAD NEXT DUMP OVERLAY 
          RJM    DBC         DUMP BUFFER CONTROLLERS
  
*         TERMINATE DUMP. 
  
 .TF1     LDN    51          WRITE FILE MARK
*         LDN    15          (65X TAPE SYSTEM)
          RJM    FCN
 .TF2     LDN    51          WRITE 2ND FILE MARK                         DIMA219
*         LDN    15          (65X TAPE SYSTEM)                           DIMA219
          RJM    FCN                                                     DIMA219
          LDN    0           DISABLE BUSY WAIT
          STM    FCNB 
          LDC    113         BACKSPACE OVER 2ND FILE MARK                DIMA219
 .BK      EQU    *-1                                                     DIMA219
*         LDC    12          (65X TAPE SYSTEM)                           DIMA219
*         LDC    10          (REWIND ENABLE)                             DIMA219
          RJM    FCN
 EDT2     LCN    0           DELAY FOR WRITE JOG
          SBN    1
          NJN    *-1
          LDD    TS          RELEASE EQUIPMENT
          RJM    FCN
 EDT3     LDC    EDTD        DISPLAY END OF DUMP
          RJM    DIG
          UJN    EDT3        LOOP 
  
 EDTB     DATA   8HPP 
          CON    0
 EDTC     DATA   20HEXPRESS DUMP NUMBER 
          BSSZ   5
          CON    0
  
 EDTD     DATA   C* DUMP NN COMPLETE.*
 EDTE     DATA   C* DUMP NN STOPPED.* 
  
 EDTF     BSS    0
          CON    0           PP1 PROGRAM TO SAVE EXCHANGE AREA
          LDC    CMEC 
          CRM    100,WC 
          IJM    *-EDTF,PC                                               DIMA219
          SBD    WC 
          DCN    PC 
          CWM    100,WC 
          UJN    ** 
  
 WC       EQU    *-EDTF                                                  DIMA219
          CON    CMECL       NUMBER OF WORDS TO SAVE                     DIMA219
  
 EDTFL    EQU    *-EDTF 
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMPC2D 
          TITLE  SUBROUTINES. 
 CVD      SPACE  4,10 
**        CVD - CONVERT DIGITS. 
* 
*         ENTRY  (A) = DIGITS TO CONVERT TO BINARY. 
* 
*         EXIT   (A) = CONVERSION.
* 
*         USES   T0.
  
  
 CVD      SUBR               ENTRY/EXIT 
          ADC    -2R00
          STD    T0 
          SHN    -3 
          ADD    T0 
          LPN    77 
          UJN    CVDX        RETURN 
 DIG      SPACE  4,10 
**        DIG - DISPLAY MESSAGE AND INPUT DIGITS. 
* 
*         ENTRY  (A) = 6/BYTE COUNT, 12/MESSAGE ADDRESS.
* 
*         EXIT   (A) = INPUT DIGITS.
*                (T5) = NUMBER OF DIGITS INPUT. 
* 
*         USES   T1 - T5. 
* 
*         CALLS  CVD. 
  
  
 DIG      SUBR               ENTRY/EXIT 
          STM    DIGA        STORE MESSAGE
          SBN    1
          STD    T1 
          SHN    -14         STORE COUNT
          STD    T4 
          LDN    T4 
          SBD    T4 
          STM    DIGB 
 DIG1     AOD    T1          FIND MESSAGE LENGTH
          LDI    T1 
          NJN    DIG1        IF NOT END 
          STD    T5 
          LDD    T1 
          SBM    DIGA 
          STD    T1 
          LDC    2R00        SET INITIAL DIGITS 
          STD    T2 
          STD    T3 
 DIG2     FNC.   7001,CH
          ACN.   CH 
          LDN    2           OUTPUT COORDINATES 
          OAM.   DIGD,CH
          LDD    T1          DISPLAY MESSAGE
          OAM.   *,CH 
 DIGA     EQU    *-1
          LDD    T4          DISPLAY ADDRESS
          ZJN    DIG3        IF NO INPUT REQUIRED 
          OAM.   *,CH 
 DIGB     EQU    *-1
 DIG3     DCN.   CH 
          SBN    40B         REDUCE DISPLAY INTENSITY                    DIMA251
          MJN    *-1                                                     DIMA251
          FNC.   7020,CH
          ACN.   CH 
          IAN.   CH 
          DCN.   CH 
          LMC    1RJ         CHECK SAME INPUT AS LAST TIME
 DIGC     EQU    *-1
          ZJN    DIG2        LOOP IF SAME INPUT 
          LMM    DIGC        SAVE INPUT 
          STM    DIGC 
          SBN    60 
          ZJN    DIG5        IF CR
          ADN    60-1RS 
          ZJN    DIG7        IF STOP KEY
          SBN    1R0-1RS
          MJN    DIG4        IF ALPHA 
          SBN    10 
          PJN    DIG4        IF NOT OCTAL DIGIT 
          ADN    1R0+10 
          SHN    14          ASSEMBLE DIGITS
          LMD    T3 
          SHN    6
          STD    T3 
          LMD    T3 
          LMD    T2 
          SHN    6
          STD    T2 
          AOD    T5          ADVANCE COUNT OF DIGITS ENTERED
 DIG4     LJM    DIG2        LOOP FOR NEXT CHARACTER
  
 DIG5     LDD    T3          CONVERT DIGITS 
          RJM    CVD
          STD    T3 
          LDD    T2 
          RJM    CVD
          SHN    6
          RAD    T3 
 DIG6     LJM    DIGX        RETURN 
  
 DIG7     LDN    0
*         LDN    1           (RESTORE CM) 
 DIGE     EQU    DIG7 
          ZJN    DIG8        IF RESTORE NOT REQUIRED
          ACN    PC          ACTIVATE PP1 TO RESTORE CM 
 DIG8     LDC    EDTE        DISPLAY DUMP STOPPED MESSAGE 
          RJM    DIG
          UJN    DIG8        LOOP DISPLAYING STOPPED MESSAGE
  
 DIGD     DATA   6000,7400
 ERR      SPACE  4,10 
**        ERR - PROCESS ERROR.
* 
*         ENTRY  (A) = ERROR CODE.
*                (T6) = CONVERTER STATUS. 
*                (T7) = EQUIPMENT STATUS. 
* 
*         USES   T1.
* 
*         CALLS  C2D, DIG.
  
  
 ERR      SUBR               ENTRY/EXIT 
          SHN    1           SET MESSAGE ADDRESS
          STD    T1 
          LDM    ERRA,T1     SET MESSAGE
          STM    ERRB 
          LDM    ERRA+1,T1
          STM    ERRB+1 
          LDD    T6          CONVERT CONVERTER STATUS 
          RJM    C2D
          STM    ERRC+1 
          LDD    T6 
          SHN    -6 
          RJM    C2D
          STM    ERRC 
          LDD    T7          CONVERT EQUIPMENT STATUS 
          RJM    C2D
          STM    ERRD+1 
          LDD    T7 
          SHN    -6 
          RJM    C2D
          STM    ERRD 
          LDC    ERRB+10000  DISPLAY ERROR AND WAIT FOR ACTION
          RJM    DIG
          LJM    ERRX        RETURN 
  
 ERRA     DATA   Z*CON* 
          DATA   Z*FCN* 
          DATA   Z*WRT* 
 ERRB     CON    0,0
          DATA   2HCS 
 ERRC     CON    0,0         CONVERTER STATUS 
          DATA   4H  DS 
 ERRD     CON    0,0         EQUIPMENT STATUS 
          CON    0
 LNO      SPACE  4,10 
**        LNO - LOAD NEXT OVERLAY.
* 
*         USES   T1 - T3. 
* 
*         CALLS  CON, *CDEP*. 
  
  
 LNO1     LDM    BUF+5*17+2  EXTRACT LOAD ADDRESS FROM *6PPM* TABLE 
          ADN    5
          STD    T1 
          STD    T3 
          LDC    BUF+5*17+4 
          STD    T2 
          LDI    T2          SET END OF OVERLAY 
          SHN    2
          ADI    T2 
          RAD    T3 
 LNO2     AOD    T2          ADVANCE BUFFER ADDRESS 
          LDI    T2          RELOCATE OVERLAY 
          STI    T1 
          AOD    T1          ADVANCE RELOCATION ADDRESS 
          LMD    T3 
          NJN    LNO2        IF NOT END OF OVERLAY
          RJM    CON         RECONNECT
  
 LNO      SUBR               ENTRY/EXIT 
          LDC    LNOA 
          LJM    CDEP        EXIT TO COMMON DRIVER
  
 LNOA     CON    BUF         LOAD ADDRESS 
          CON    LNO1        TRANSFER ADDRESS 
          CON    0,0,0
 MCI      SPACE  4,10 
**        MCI - MODIFY CHANNEL INSTRUCTIONS.
* 
*         ENTRY  (A) = ADDRESS OF INSTRUCTION LIST. 
*                (CN) = CHANNEL NUMBER. 
* 
*         USES   T6, T7.
  
  
 MCI1     STD    T7          SET INSTRUCTION ADDRESS
          LDI    T7          MODIFY INSTRUCTION 
          SCN    37 
          LMD    CN 
          STI    T7 
          AOD    T6          ADVANCE LIST ADDRESS 
 MCI2     LDI    T6 
          NJN    MCI1        IF NOT END OF LIST 
  
 MCI      SUBR               ENTRY/EXIT 
          STD    T6          SET LIST ADDRESS 
          UJN    MCI2        ENTER LOOP 
 WLB      SPACE  4,10 
**        WLB - WRITE LABEL BLOCK.
* 
*         ENTRY  (A) = BLOCK IDENTIFICATION.
* 
*         EXIT   LABEL BLOCK WRITTEN. 
* 
*         USES   RL.
* 
*         CALLS  WRT. 
  
  
 WLB      SUBR               ENTRY/EXIT 
          STM    EDTB 
          SHN    -6 
          SCN    77          SET BLOCK IDENTIFIER 
          LMN    1R 
          STM    EDTB+1 
          LDN    TRLL        SET LABEL RECORD LENGTH
          STD    RL 
          LDC    EDTB        SET LABEL ADDRESS
          STM    WRTB 
          RJM    WRT         WRITE LABEL BLOCK
          UJN    WLBX 
          TITLE  TAPE HANDLING SUBROUTINES. 
 CKR      SPACE  4,10 
**        CKR - CHECK READY, BUSY AND EOP.
* 
*         ENTRY  (T7) = UNIT STATUS.
* 
*         EXIT   (A) = 0 IF READY, NOT BUSY AND EOP OCCURRED. 
  
  
 CKR1     LDD    T7 
          LPN    3
          LMN    1
  
 CKR      SUBR               ENTRY/EXIT 
          LDD    TS 
          NJN    CKR1        IF 66X/67X TAPE SYSTEM 
          LDD    T7 
          LPC    1003 
          LMC    1001 
          UJN    CKRX        RETURN 
 CON      SPACE  4,10 
**        CON - CONNECT TAPE UNIT.
* 
*         ENTRY  (CONA) = CONNECT CODE FOR 3000 TYPE EQUIPMENT. 
* 
*         CALLS  ERR, FCN, STS. 
  
  
 CON3     FNC    30,TC       FORMAT UNIT
*         FNC    4,TC        (ATS UNIT) 
 CONC     EQU    *-1
          ACN    TC 
          LDN    2
          OAM    CONB,TC     OUTPUT PARAMETER BLOCK 
          FJM    *,TC 
          DCN    TC 
          RJM    STS         GET GENERAL STATUS 
 CON4     LDD    T7 
          LPC    7213 
*         LPC    7447        (65X TAPE SYSTEM)
 COND     EQU    *-1
          LMC    201
*         LMC    1005        (65X TAPE SYSTEM)
 CONE     EQU    *-1
          NJN    CON2        IF CONNECT REJECT
  
 CON      SUBR               ENTRY/EXIT 
 CON1     LDD    TS 
          NJN    CON3        IF 66X/67X TAPE SYSTEM 
          FNC    2000,TC
          FNC    5001,TC     CONNECT
 CONA     EQU    *-1
          RJM    STS         GET STATUS 
          NJN    CON2        IF CONNECT REJECT
          LDN    1           SELECT BINARY MODE 
          RJM    FCN
          LDD    T7                                                      DIMA219
          LPN    20                                                      DIMA219
          ZJN    CON4        IF TAPE NOT AT LOAD POINT                   DIMA219
          LDN    6           SELECT 800 BPI 
          RJM    FCN
          UJN    CON4        CHECK STATUS 
  
 CON2     LDN    0           *CANT CONNECT* 
          RJM    ERR         PROCESS ERROR
          UJN    CON1        RETRY
  
 CONB     VFD    1/1,3/0,1/1,2/0,1/0,4/0    (UNIT NUMBER ADDED) 
          VFD    1/1,1/1,1/0,1/1,2/0,1/1,5/0
 FCN      SPACE  4,10 
**        FCN - ISSUE EQUIPMENT FUNCTION. 
* 
*         ENTRY  (A) = FUNCTION.
*                (EQ) = EQUIPMENT NUMBER FOR 66X/67X. 
* 
*         EXIT   (T7) = EQUIPMENT STATUS. 
* 
*         CALLS  CKR, ERR, STS. 
  
  
 FCN3     RJM    CKR         CHECK READY, BUSY AND EOP
 FCNB     NJN    FCN2 
*         PSN    0           (END OF DUMP)
  
 FCN      SUBR               ENTRY/EXIT 
          ADD    EQ          ADD EQUIPMENT NUMBER 
          STM    FCNA        SET FUNCTION 
 FCN1     FNC    0,TC        ISSUE FUNCTION 
 FCNA     EQU    *-1
 FCN2     RJM    STS         CHECK STATUS 
          ZJN    FCN3        IF NO REJECT 
          LDN    1
          RJM    ERR         PROCESS ERROR
          UJN    FCN1        RETRY
 STS      SPACE  4,10 
**        STS - GET EQUIPMENT STATUS. 
* 
*         ENTRY  EQUIPMENT CONNECTED. 
* 
*         EXIT   (A) = (T6) = 6681 STATUS.
*                (T7) = EQUIPMENT STATUS. 
  
  
 STS1     LDN    70 
 STS2     FJM    STS4,TC     IF STATUS READY
          SBN    1
          NJN    STS2        WAIT STATUS READY
          DCN    TC 
 STS3     LDN    12          REQUEST GENERAL STATUS 
          ADD    EQ 
          FAN    TC 
          ACN    TC 
          EJM    STS1,TC     IF CHANNEL EMPTY 
 STS4     IAN    TC 
          DCN    TC 
          STD    T7 
          LDN    0
 STS5     STD    T6 
  
 STS      SUBR               ENTRY/EXIT 
          LDD    TS 
          NJN    STS3        IF 66X/67X TAPE SYSTEM 
          FNC    1300,TC     REQUEST EQUIPMENT STATUS 
          ACN    TC 
          IAN    TC 
          DCN    TC 
          STD    T7 
          FNC    1200,TC     REQUEST 6681 STATUS
          ACN    TC 
          IAN    TC 
          DCN    TC 
          UJN    STS5 
 WRT      SPACE  4,10 
**        WRT - WRITE TAPE. 
* 
*         ENTRY  (RL) = RECORD LENGTH.
*                (WRTB) = RECORD ADDRESS. 
* 
*         USES   T2, T3.
* 
*         CALLS  CKR, CON, ERR, FCN, STS. 
  
  
 WRT      SUBR               ENTRY/EXIT 
 WRT1     LDN    20          SET RETRY COUNT
          STD    T3 
 WRT2     FNC    1600,TC     BEGIN OUTPUT 
*         FNC    E050,TC     (66X/67X TAPE SYSTEM)
 WRTA     EQU    *-1
          ACN    TC 
 WRT3     LDD    RL 
          OAM    EDTB,TC
 WRTB     EQU    *-1
          FJM    *,TC 
          DCN    TC 
 WRT4     RJM    STS         CHECK STATUS 
          NJN    WRT6        IF 6681 ERROR
          RJM    CKR         CHECK READY, BUSY AND EOP
          NJN    WRT4 
          LDD    T7          CHECK WRITE STATUS 
          LPC    4010 
*         LPC    6440        (65X TAPE SYSTEM)
 WRTC     EQU    *-1
          ZJN    WRTX        IF OK
          SOD    T3          DECREMENT RETRY COUNT
          ZJN    WRT6        IF EXHAUSTED 
          LDC    113         BACKSPACE
*         LDC    12          (65X TAPE SYSTEM)
 WRTD     EQU    *-1
          RJM    FCN
          LDD    T3          CHECK TIME TO SKIP BAD SPOT
          LPN    3
          NJN    WRT5        IF NOT 
 WRTE     LDN    52          SKIP BAD SPOT
*         LDN    16          (65X TAPE SYSTEM)
          RJM    FCN
 WRT5     LJM    WRT2        RETRY
  
 WRT6     LDN    2           *WRITE ERROR*
          RJM    ERR         PROCESS ERROR
          RJM    CON         RE-CONNECT 
          LJM    WRT1        RETRY
          SPACE  4,10 
 OVLB     BSS    0           DUMP OVERLAY LOAD ADDRESS
          TITLE  DUMP PROCESSORS. 
 CXJP     SPACE  4,10 
 CXJP     BSS    0           CPU EXCHANGE PACKAGE 1 
          VFD    24/0,18/CMEC+33,18/0            P,A0,B0                 DIMA223
          VFD    24/0,18/0,18/1                  RA,A1,B1 
          VFD    24/CMEC+2000,18/0,18/1000       FL,A2,B2 
 CXJPA    VFD    24/0,18/0,18/CMEC+32            EM(PSD),A3,B3           DIMA223
          VFD    24/0,18/0,18/0                  RAX,A4,B4
          VFD    24/77777777,18/0,18/0           FLX,A5,B5
          VFD    24/0,18/0,18/0                  MA,A6,B6 
          VFD    24/CMEC+1000+40,18/0,18/0       EEA,A7,B7
 .1       SET    *-CXJP 
 CXJPL    EQU    .1/5 
 CPIL     SPACE  4,10 
 CPIL     BSS    0           CPU IDLE LOOP
          VFD    12/0400,18/0,15/61000,15/46000 
 ECP      SPACE  4,10 
**        ECP - EXCHANGE CYBER 176 CPU. 
* 
*         EXIT   CPU IS EXCHANGED TO ADDRESS *CMEC*.
* 
*         USES   T6, T7.
* 
*         CALLS  SCR. 
  
  
 ECP      SUBR               ENTRY/EXIT 
          LDC    FCCL+DSCU   CLEAR DEADSTART
          OAN.   SC+40
          IAN.   SC+40
          LDN    4           SET EXCHANGE BUFFER BIAS BITS
          STD    T6 
          LDN    EXBB                                                    DIMA219
          STD    T7          FIRST BIT NUMBER 
          LDN    CMEC/1000   BIT PATTERN                                 DIMA219
          RJM    SCR         SET S/C REGISTER 
          LDC    FCSB+DSCU   SET DEADSTART
          OAN.   SC+40
          IAN.   SC+40
          UJN    ECPX        RETURN 
 SCR      SPACE  4,10 
**        SCR - SET S/C REGISTER. 
* 
*         ENTRY  (A) = BIT PATTERN TO SET.
*                (T6) = NUMBER OF BITS TO SET.
*                (T7) = FIRST BIT NUMBER. 
* 
*         USES   T3, T6, T7.
  
  
 SCR      SUBR               ENTRY/EXIT 
 SCR1     STD    T3          SAVE BIT PATTERN 
          LPN    1           SAVE NEXT BIT FOR S/C
          ZJN    SCR2        IF BIT NOT SET 
          LDC    FCSB&FCCL   SET BIT FUNCTION 
 SCR2     LMC    FCCL        CLEAR BIT FUNCTION 
          ADD    T7          ADD BIT NUMBER TO SET/CLEAR
          OAN.   SC+40
          IAN.   SC+40
          AOD    T7          UPDATE BIT NUMBER
          SOD    T6          UPDATE BIT COUNT 
          ZJN    SCRX        IF ALL BITS DONE, RETURN 
          LDD    T3          UPDATE BIT PATTERN 
          SHN    -1 
          UJN    SCR1        LOOP FOR NEXT BIT
          SPACE  4,10 
 OVLC     BSS    0           DUMP OVERLAY LOAD ADDRESS
 DSC      SPACE  4,10 
**        DSC - DUMP STATUS/CONTROL REGISTERS.
* 
*         USES   T7, T8, RL.
* 
*         CALLS  WLB, WRT.
  
  
 DSC      SUBR               ENTRY/EXIT 
          IJM.   DSCX,SC     IF NOT CYBER 170 
          LDC    3LRSC       WRITE *SCR* LABEL BLOCK
          RJM    WLB
  
*         READ S/C REGISTER CONTENTS. 
  
 DSC1     LDN    0
          STD    T8 
          LDN    FCRD+NSCB-1 SET READ WORD FUNCTION 
          STD    T7 
 DSC2     OAN.   SC+40
 DSCA     EQU    DSC2 
*         OAN.   SC+40+20    (CHANNEL 36 PROCESSING)
 DSCB     IAN.   SC+40
*         IAN.   SC+40+20    (CHANNEL 36 PROCESSING)
          STM    DSCE,T8     STORE CONTENTS OF WORD 
          AOD    T8 
          SOD    T7 
          PJN    DSC2        IF NOT FINISHED READING REGISTER 
  
*         WRITE TOTAL OF 8 CM WORDS TO TAPE TO CREATE MULTIPLE OF 4 
*         CM WORDS NECESSARY FOR S FORMAT.
  
          LDN    50          SET RECORD LENGTH
          STD    RL 
          LDC    DSCD        SET RECORD ADDRESS 
          STM    WRTB 
          RJM    WRT         WRITE RECORD 
  
*         SET UP TO READ CHANNEL 36 S/C REGISTER. 
  
 DSCC     LDN    0
*         LDN    1           (CHANNEL 36 PRESENT)                        DIMA219
          ZJN    DSC3        IF S/C REGISTER PROCESSING COMPLETE         DIMA219
          SOM    DSCC        SET CHANNEL 36 DUMPED                       DIMA219
          LDN    20          SET CHANNEL 36 IN I/O INSTRUCTIONS 
          RAM    DSCA 
          LDN    20 
          RAM    DSCB 
          LDC    200         SET CHANNEL 36 IN HEADER WORD
          RAM    DSCD+2 
          LJM    DSC1        LOOP TO READ CHANNEL 36 REGISTER 
                                                                         DIMA219
 DSC3     LDC    FCCL+PPPE   CLEAR *STOP ON PP MEMORY PARITY ERROR*      DIMA219
          OAN.   SC+40                                                   DIMA219
          IAN.   SC+40                                                   DIMA219
          LDC    FCCL+PPCM   CLEAR *STOP ON CM READ ERROR*               DIMA219
          OAN.   SC+40                                                   DIMA219
          IAN.   SC+40                                                   DIMA219
          LJM    DSCX        RETURN                                      DIMA219
  
 DSCD     BSSZ   1           S/C REGISTER CONTENTS BUFFER 
          DATA   4LSC16 
          BSSZ   2
 DSCE     BSSZ   24 
 DP0      SPACE  4,10 
**        DP0 - DUMP PP0. 
* 
*         ENTRY  (PB) = RA OF WHERE PP0 SAVED.
* 
*         EXIT   (ON) = CONSTANT 1. 
* 
*         USES   T4, T5, RL.
* 
*         CALLS  WLB, WRT.
  
  
 DP0      SUBR               ENTRY/EXIT 
          LDC    3L PP       WRITE *PP* LABEL BLOCK 
          RJM    WLB
          LDC    PPS1/5 
          STD    T5 
          LDD    PB 
          ZJN    DP01        IF PP0 NOT SAVED 
          SHN    6
          CRM    BUF,T5 
          LDD    PB          SET PP0 SAVE INDICATOR 
          STM    BUF+PB 
          LDC    BUF         SET BUFFER ADDRESS 
 DP01     STD    T4 
          STM    WRTB 
          LDC    2RPP        SET PP IDENTIFICATION BYTE 
          STM    1,T4 
          LDC    2R00        SET PP NUMBER
          STM    2,T4 
          LDC    PPS1        SET RECORD LENGTH
          STD    RL 
          RJM    WRT         WRITE FIRST PART 
          LDC    PPS2/5 
          STD    T4 
          LDD    PB 
          ZJN    DP02        IF PP0 NOT SAVED 
          SHN    6
          ADD    T5 
          CRM    BUF,T4 
          UJN    DP03        DUMP SECOND PART OF PP0
  
 DP02     LDD    RL 
          STM    WRTB 
 DP03     LDC    PPS2        WRITE SECOND PART
          STD    RL 
          RJM    WRT
          LDN    1           DEFINE CONSTANT 1
          STD    ON 
          LJM    DP0X        RETURN 
 DPP      SPACE  4,10 
**        DPP - DUMP PP-S.
* 
*         USES   PN, RL.
* 
*         CALLS  C2D, WRT.
  
  
 DPP      SUBR               ENTRY/EXIT 
          LDN    0
          STD    PN 
          LDC    BUF         SET RECORD ADDRESS 
          STM    WRTB 
 DPP1     AOD    PN          ADVANCE PP NUMBER
          LMN    32 
          ZJN    DPPX        IF END OF PP-S 
          LDM    PPT,PN 
          ZJN    DPP1        IF PP NOT PRESENT                           DIMA271
          STM    DPPB 
          STM    DPPA 
          LMC    DCNI&IAMI   SET *DCN* INSTRUCTION
          STM    DPPC 
          LDC    PPS1        SET SECTION 1 LENGTH 
          STD    RL 
 DPPA     IAM.   BUF,** 
          LDC    2RPP        SET PP IDENTIFICATION BYTE 
          STM    BUF+1
          LDD    PN          CONVERT PP NUMBER
          RJM    C2D
          STM    BUF+2
          RJM    WRT         WRITE SECTION 1
          LDC    PPS2        SET SECTION 2 LENGTH 
          STD    RL 
 DPPB     IAM.   BUF,** 
 DPPC     DCN.   **          HANG PP
          RJM    WRT         WRITE SECTION 2
          LJM    DPP1        CONTINUE 
 PPT      SPACE  4,10 
**        PP CHANNEL TABLE. 
  
  
 PPT      BSS    0
          LOC    0
  
          CON    0           PP0
          DUP    9,1         LOWER 10 PP-S
          CON    0                                                       DIMA271
          CON    0,0         CHANNELS 12 AND 13                          DIMA271
  
          DUP    4,1         UNUSED PP-S
          CON    0                                                       DIMA271
  
          DUP    10,1        UPPER 10 PP-S
          CON    0                                                       DIMA271
          LOC    *O 
 DCM      SPACE  4,10 
**        DCM - DUMP CENTRAL MEMORY.
* 
*         USES   MB, RL, T8.
* 
*         CALLS  WLB, WRT.
  
  
 DCM      SUBR               ENTRY/EXIT 
          LDC    0           SET SIZE OF CENTRAL MEMORY 
 DCMA     EQU    *-1
          STM    EDTB+4 
          LDC    3L CM       WRITE *CM* LABEL BLOCK 
          RJM    WLB
  
*         DUMP CM.
  
          LDN    0           INITIALIZE BLOCK COUNT 
          STD    MB 
          LDC    1000        SET CM BLOCK SIZE
          STD    T8 
          LDC    5000        SET RECORD LENGTH
          STD    RL 
          LDC    BUF         SET BUFFER ADDRESS 
          STM    WRTB 
 DCM1     LDD    MB          READ CM BLOCK
          SHN    9D 
          CRM    BUF,T8 
          RJM    WRT         WRITE BLOCK
          AOD    MB          ADVANCE BLOCK COUNT
          LMM    EDTB+4 
          NJN    DCM1        IF NOT DONE
          STM    EDTB+4 
          LJM    DCMX        RETURN 
 DCP      SPACE  4,10 
**        DCP - DUMP CPU HARDWARE REGISTERS.
* 
*         USES   T1 - T5, T8, RL. 
* 
*         CALLS  ECP, WLB, WRT. 
  
  
 DCP      SUBR               ENTRY/EXIT 
          LDC    3LRCP
          RJM    WLB         WRITE CPU REGISTER LABEL 
  
*         WRITE EXCHANGE PACKAGE AND LOOP INTO CM.
  
          LDC    0           STORE CPU IDLE LOOP                         DIMA219
 DCPG     EQU    *-1                                                     DIMA219
*         LDC    CPIA        (CYBER 176)                                 DIMA219
          CWM    CPIL,ON
 DCP1     LDN    CXJPL       SET NUMBER OF WORDS IN EXCHANGE PACKAGE
          STD    T8 
          LDC    CMCP        MOVE RECORD HEADER WORD TO BUFFER
          CWM    DCPF,ON
          SBN    1
          CRM    BUF,ON 
          SBN    1           COPY EXCHANGE PACKAGE
          CWM    CXJP,T8
          LDM    OPTN        CHECK CPU OFF
 DCPA     SHN    21-0        CPU0 FLAG
*         SHN    21-1        (CPU1 FLAG)
          PJN    DCP2        IF CPU NOT OFF 
          AOM    BUF+4       SET CPU OFF FLAG IN HEADER WORD
          UJN    DCP5 
  
*         EXCHANGE CPU AND READ IN REGISTER CONTENTS. 
  
 DCP2     LDM    EDTA 
          ZJN    DCP3        IF NOT CYBER 176 
          RJM    ECP         EXCHANGE CPU 
          UJN    DCP4        READ REGISTER CONTENTS 
  
 DCP3     LDC    CMCP        EXCHANGE CPU 
 DCPB     EXN    0
*         EXN    1           (EXCHANGE CPU1 (CPU0 IF NO CPU1))
 DCP4     LDN    20          SET NUMBER OF WORDS TO READ
          STD    T5                                                      DIMA219
          LDC    CMCP        READ CPU HARDWARE REGISTERS
          CRM    BUF+5,T5                                                DIMA219
 DCP5     UJN    DCP7 
 DCPC     EQU    DCP5 
*         PSN                (BOTH CPUS CHECKED)
  
*         CHECK FOR TWO CPUS. 
  
          AOM    CXJP+11     SET B1 = 1 
          LDC    CMCP        WRITE EXCHANGE PACKAGE 
          CWM    CXJP,T8
          SBN    CXJPL       EXCHANGE CPU0
 DCPD     EXN    0
*         PSN                (CPU0 OFF) 
          ADN    1           CHECK B1 
          CRD    T1 
          LDD    T1+4 
          NJN    DCP7        IF TWO CPUS
 DCP6     LJM    DCPX        RETURN 
  
*         DUMP CPU REGISTER CONTENTS TO TAPE. 
*         WRITE TOTAL OF 24 CM WORDS TO TAPE TO CREATE MULTIPLE OF 4
*         CM WORDS NECESSARY FOR S FORMAT.
  
 DCP7     LDC    144         SET RECORD LENGTH
          STD    RL 
          LDC    BUF         SET BUFFER ADDRESS 
          STM    WRTB 
          RJM    WRT         WRITE RECORD 
  
*         SET UP FOR NEXT CPU.
  
          AOM    DCPB        SET EXCHANGE TO NEXT CPU 
          LPN    77 
          SBN    2
 DCPE     PJN    DCP6        IF BOTH CPUS CHECKED 
*         UJN    DCP6        (CYBER 176)
  
          LDM    BUF+4       CHECK CPU0 OFF 
          ZJN    DCP8        IF CPU0 ON 
          LDN    0           SET NO EXCHANGE TO CPU0
          STM    DCPD 
 DCP8     STM    DCPC        SET NO JUMP AFTER CPU1 EXCHANGED 
          SOM    DCPA        SET SHIFT COUNT
          SOM    CXJP+11     SET B1 = 0 
          AOM    DCPF+2      SET NEXT CPU IN HEADER 
          LJM    DCP1        LOOP TO EXCHANGE CPU1
  
 DCPF     CON    0           HEADER WORD
          DATA   4LCPU0 
          CON    0
          CON    0
          SPACE  4,10 
          ERRPL  *-BUF+2     OVERFLOW INTO TAPE BUFFER
          TITLE  PRESET.
**        PRS - PRESET *EDD* RESIDENT.
  
  
 PRS      SUBR               ENTRY/EXIT 
          IJM.   PRS1,SC     IF NOT A CYBER 170 
          LDC    FCSB+SCSL   CHECK FOR CYBER 176 BY TOGGLING BIT 72D
          OAN.   SC+40
          IAN.   SC+40
          LDC    FCTC+SCSL
          OAN.   SC+40
          IAN.   SC+40
          ZJN    PRS1        IF BIT NOT SET 
          LDC    FCTB+SCSL
          OAN.   SC+40
          IAN.   SC+40
          NJN    PRS1        IF BIT NOT CLEARED 
          AOM    EDTA        SET CYBER 176 FLAG 
          LDC    UJNI-PJNI
          RAM    DCPE 
          LDC    CPIA        SET CPU IDLE ADDRESS IN EXCHANGE PACKAGE    DIMA219
          STM    CXJP+1                                                  DIMA219
          STM    DCPG        RESET IDLE LOOP ADDRESS                     DIMA219
          SHN    14                                                      DIMA219
          STM    CPIL+1      MODIFY IDLE LOOP                            DIMA219
          SHN    -6                                                      DIMA219
          SCN    77                                                      DIMA219
          RAM    CPIL+2                                                  DIMA219
          LDN    CPIA/10000                                              DIMA219
          STM    CXJP                                                    DIMA219
          RAM    DCPG-1                                                  DIMA219
  
*         DETERMINE PPS CONFIGURATION.
  
 PRS1     LDN    0           PRESET 65X TAPE FORMAT 
          STD    TS 
          STD    DP 
          IJM.   PRS4,20     IF NO UPPER PPS
          STM    PRSB 
          AOM    DSCC 
          AOD    DP          SET UPPER PPS FLAG 
          LCN    12 
 PRS2     ADN    12          SET CHANNEL INDEX
          STD    T6 
          LMC    IAMI                                                    DIMA271
 PRSA     IJM.   PRS3,0      CHECK LOWER 10 PP-S
          STM    PPT,T6 
 PRS3     UJN    PRS4 
*         PSN    0           (UPPER PPS PRESENT)
 PRSB     EQU    PRS3 
          ADN    20 
 PRSC     IJM.   PRS4,20     CHECK UPPER 10 PP-S
          STM    PPT+20,T6
 PRS4     AOM    PRSC        ADVANCE CHANNEL NUMBER 
          AOM    PRSA        SET CHANNEL TEST FOR LOWER PP-S
          LPN    17 
          SBN    12 
          NJN    PRS2        IF NOT END OF PP-S 
          ACN.   0
          LDC    IAMI+0      TIE PP ON DISPLAY CHANNEL TO CHANNEL 0      DIMA271
          STM    PPT+CH                                                  DIMA271
          LDN    3
          OAM.   PRSH,CH
          DCN.   CH 
 PRS5     LDC    PRSI+10000  GET TAPE CHANNEL 
          RJM    DIG
          LPN    77 
          STD    CN 
          SBN    34 
          PJN    PRS5        IF CHANNEL TOO LARGE 
          FNC.   0,CH        DESELECT DISPLAY SYNC
          LDN    77 
          SBN    1
          NJN    *-1
          DCN.   CH 
          ACN.   CH 
          LDN    CH          RESET DISPLAY CHANNEL PP 
          RAM    PRSH+2 
          LDN    3
          OAM.   PRSH,0 
          DCN.   0
          LDD    CN          CHECK CHANNEL FOR PP 
          STD    DT 
          ZJN    PRS6        IF CHANNEL ZERO
          LPN    12 
          LMN    12 
          ZJN    PRS6        IF NO PP 
          LDC    IAMI+13      SET PP ON CHANNEL 13
          STM    PPT,CN 
 PRS6     LDC    CTTC        MODIFY CHANNEL INSTRUCTIONS
          RJM    MCI
  
*         CHECK STATUS OF PP BUFFER CHANNEL.
  
          LDN    DT 
          STD    T7 
          LDD    DS 
          LMN    PC 
          ZJN    PRS7        IF DEADSTART ON PP BUFFER CHANNEL
          SOD    T7 
          LDD    DT 
          LMN    PC 
          NJN    PRS9        IF DUMP NOT ON PP BUFFER CHANNEL 
 PRS7     LDN    12          CHANGE PP BUFFER CHANNEL TO 12 
          STD    CN 
          LMI    T7 
          NJN    PRS8        IF NO CONFLICT WITH DEADSTART/DUMP 
          AOD    CN          SET CHANNEL 13 
 PRS8     LDC    CTPC        MODIFY CHANNEL INSTRUCTIONS
          RJM    MCI
  
*         OUTPUT IDLERS TO PP-S.
  
 PRS9     LDM    PRSD                                                    DIMA271
          LMC    OAMI&ACNI
          STM    PRSH+2 
          LMC    IAMI&OAMI   SET BUFFER PP CHANNEL
          STM    PPT+PC 
          LDN    PRSHL       OUTPUT PP1 IDLER                            DIMA271
          OAM.   PRSH,1                                                  DIMA271
          DCN.   1                                                       DIMA271
 PRSD     ACN    PC                                                      DIMA271
          LDN    2           TRANSMIT IDLER TO REMAINING PP-S            DIMA271
          STD    T6                                                      DIMA271
          LDD    DT 
          NJN    PRS10       IF DUMP NOT ON CHANNEL ZERO
          LDC    IAMI+13     MOVE DISPLAY CHANNEL PP TO CHANNEL 13
          STM    PPT+CH 
 PRS10    LDM    PPT,T6                                                  DIMA271
          ZJN    PRS11       IF NO PP ON CHANNEL                         DIMA271
          LPN    37          SET CHANNEL NUMBER                          DIMA271
          STD    CN                                                      DIMA271
          LDC    CTXC        MODIFY CHANNEL INSTRUCTIONS                 DIMA271
          RJM    MCI                                                     DIMA271
          LDN    PRSML       TRANSMIT IDLE PACKAGE PRELOADER             DIMA271
 PRSE     OAM.   PRSM,2                                                  DIMA271
 PRSF     DCN.   2                                                       DIMA271
          ACN    XC                                                      DIMA271
          LDN    PRSNL       OUTPUT IDLE PACKAGE                         DIMA271
          OAM    PRSN,XC                                                 DIMA271
          DCN    XC                                                      DIMA271
          ACN    XC                                                      DIMA271
 PRS11    AOM    PRSE                                                    DIMA271
          AOM    PRSF        ADVANCE PP NUMBER                           DIMA271
          LPN    37                                                      DIMA271
          STD    T6                                                      DIMA271
          LMN    32                                                      DIMA271
          NJN    PRS10       IF NOT END OF PP-S                          DIMA271
                                                                         DIMA271
*         GET TAPE EQUIPMENT AND UNIT.                                   DIMA271
                                                                         DIMA271
          LDC    PRSJ+20000                                              DIMA271
          RJM    DIG                                                     DIMA271
          STD    T1          SAVE CONSOLE INPUT 
          LPC    7017        SET EQUIPMENT AND UNIT IN CONNECT ROUTINE
          STM    CONA 
          SCN    17          SAVE EQUIPMENT NUMBER
          STD    EQ 
          LDD    T1          DETERMINE CONTROLLER TYPE
          SHN    -6 
          LPN    3                                                       DIMA219
          NJN    PRS14       IF CONTROLLER TYPE SPECIFIED                DIMA219
          LDD    EQ                                                      DIMA219
          ZJN    PRS13       IF NULL EQUIPMENT (DEFAULT TO MTS)          DIMA219
          LDN    3-2                                                     DIMA219
 PRS13    ADN    2           SET TABLE INDEX                             DIMA219
 PRS14    STD    T2                                                      DIMA219
          LDM    PRSL-1,T2                                               DIMA219
          STD    T2                                                      DIMA219
          LDN    0                                                       DIMA219
          LJM    0,T2                                                    DIMA219
                                                                         DIMA219
*         PRESET DUMP TO 65X TAPE SYSTEM.                                DIMA219
                                                                         DIMA219
 PRS15    STD    EQ                                                      DIMA219
          LCN    51-15       SET WRITE TAPE MARK FUNCTION 
          RAM    .TF1 
          STM    .TF2                                                    DIMA219
          LDN    12          SET BACKSPACE FUNCTION 
          STM    WRTD 
          STM    .BK                                                     DIMA219
          LCN    52-16       SET ERASE FUNCTION 
          RAM    WRTE 
          LDC    7447        RESET STATUS MASKS 
          STM    COND 
          LDC    1005 
          STM    CONE 
          LDC    6440 
          STM    WRTC 
          LJM    PRS18       PROCESS DUMP 
  
*         PRESET DUMP TO 66X TAPE SYSTEM.                                DIMA219
                                                                         DIMA219
 PRS16    LDN    3           RELEASE OPPOSITE RESERVES
          ADD    EQ          ADD EQUIPMENT NUMBER 
          FAN    TC 
          LDC    100
          STM    PRSG 
          LDN    30-4 
                                                                         DIMA219
*         PRESET DUMP TO 67X TAPE SYSTEM.                                DIMA219
                                                                         DIMA219
 PRS17    ADN    4           SET FORMAT UNIT FUNCTION 
          ADD    EQ 
          STM    CONC 
          AOD    TS          SET ATS/MTS UNIT 
          LDD    T1          CONNECT TO UNIT
          LPN    17 
          ADN    20 
          RAM    CONB 
          LPN    37 
          RJM    FCN
          LDD    T7          SET DENSITY
          LPC    0
*         LPC    100         (MTS UNIT) 
 PRSG     EQU    *-1
          ADM    PRSG 
          RAM    CONB+1 
          LDD    T7          SET MT/NT IN FORMAT PARAMETER
          SHN    -1 
          LPN    40 
          RAM    CONB 
          LDN    50          SET WRITE FUNCTION 
          ADD    EQ 
          STM    WRTA 
  
*         GET DUMP LABEL INFORMATION. 
  
 PRS18    LDC    EDTC+10000  REQUEST DUMP NUMBER
          RJM    DIG
          RJM    C2D         CONVERT
          STM    EDTC+4 
          STM    EDTD+3 
          STM    EDTE+3 
  
*         CHECK REWIND DESIRED. 
  
          RJM    CON         CONNECT UNIT 
          LDC    PRSK 
          RJM    DIG
          NJN    PRS19       IF DISABLE REWIND
          LDN    10          REWIND 
          STM    .BK                                                     DIMA219
          RJM    FCN
 PRS19    LDC    SBUF        DETERMINE SIZE OF CENTRAL MEMORY 
          RJM    DMS
          STM    DCMA 
          LDM    EDTA                                                    DIMA223
          ZJN    PRS20       IF NOT CYBER 176                            DIMA223
          LDN    20          SET MONITOR FLAG IN EXCHANGE PACKAGE        DIMA223
          STM    CXJPA                                                   DIMA223
 PRS20    LJM    PRSX        RETURN                                      DIMA223
  
 PRSH     BSS    0           PP1 IDLE PROGRAM                            DIMA271
          CON    0                                                       DIMA271
          LCN    0
          IAM.   0,0
          IJM    *-PRSH,PC                                               DIMA219
          IAM    0,PC 
 PRSHL    EQU    *-PRSH-1    LENGTH OF PP1 IDLE PROGRAM                  DIMA271
  
 PRSI     DATA   C*MT CH  * 
 PRSJ     DATA   C*MT ECUU  * 
 PRSK     DATA   C*NONZERO INHIBITS REWIND *
                                                                         DIMA219
 PRSL     BSS    0                                                       DIMA219
          CON    PRS17       ATS                                         DIMA219
          CON    PRS16       MTS                                         DIMA219
          CON    PRS15       MMTC                                        DIMA219
                                                                         DIMA271
 PRSM     BSS    0           IDLE PACKAGE PRELOADER                      DIMA271
          CON    0                                                       DIMA271
          IAM    PPIA,XC                                                 DIMA271
 PRSML    EQU    *-PRSM      LENGTH OF PRELOADER                         DIMA271
                                                                         DIMA271
 PRSN     BSS    0           PP IDLE PACKAGE                             DIMA271
          LCN    0                                                       DIMA271
          OAM    0,XC                                                    DIMA271
          UJN    *-1                                                     DIMA271
          CON    PPIA-1                                                  DIMA271
 PRSNL    EQU    *-PRSN      LENGTH OF IDLE PACKAGE                      DIMA271
                                                                         DIMA271
          ERRNZ  PPIA+PRSNL-10001                                        DIMA271
          SPACE  4,10 
**        CHANNEL TABLES. 
  
  
          CHTB   TC 
          CHTB   PC 
          CHTB   XC                                                      DIMA271
          SPACE  4,10 
**        COMMON DECKS. 
  
  
 RCM$     EQU    0           SELECT RESTORE CM TEST CELLS 
*CALL     COMPDMS 
  
  
 SBUF     BSS    0           SCRATCH BUFFER FOR *COMPDMS* 
          TITLE  DEM - DUMP FLPP-S, EXTENDED MEMORY.
          IDENT  DEM,DFPX 
          COMMENT CTI EDD OVERLAY 
          COMMENT COPYRIGHT CONTROL DATA CORPORATION, 1979
*CALL,CDCCRN
 DFP      SPACE  4,10 
**        DFP - DUMP FLPP MEMORY. 
* 
*         USES   PN, RL, T6, T7.
* 
*         CALLS  C2D, SCR, WLB, WRT.
  
  
          ORG    OVLC 
  
 DFP      SUBR               ENTRY/EXIT 
          LDC    3RPFP       WRITE *FPP* LABEL BLOCK
          RJM    WLB
          LDC    FCCL+DDFP   CLEAR *DUMP FLPP*                           DIMA219
          OAN.   SC+40                                                   DIMA219
          IAN.   SC+40                                                   DIMA219
          LDN    0           INITIALIZE FLPP NUMBER                      DIMA219
          STD    PN 
          LDC    BUF         SET RECORD ADDRESS 
          STM    WRTB 
          LDC    FCCL+SPUM   CLEAR *STOP ON PPU MEMORY PARITY ERROR*     DIMA223
          OAN.   SC+40                                                   SCRR5A0
          IAN.   SC+40                                                   SCRR5A0
          ACN.   MC+40       ACTIVATE SCANNER CHANNEL                    DIMA219
  
*         SET SCANNER SELECT BITS.
  
 DFP1     LDN    4           SET SCANNER SELECT BITS                     DIMA219
          STD    T6          NUMBER OF BITS 
          LDC    SCSL        FIRST BIT NUMBER 
          STD    T7 
          LDD    PN          BIT PATTERN
          RJM    SCR         SET S/C REGISTER 
          LDC    FCSB+ENSC   ENABLE SCANNER INTERFACE 
          OAN.   SC+40
          IAN.   SC+40
  
*         ACTIVATE FLPP DEAD DUMP.
  
          RJM    DSP         DEADSTART FLPP                              DIMA219
          LDC    FCSB+DDFP   SET DEAD DUMP FLPP 
          OAN.   SC+40
          IAN.   SC+40
          LDC    FCCL+DDFP   CLEAR DEAD DUMP FLPP 
          OAN.   SC+40
          IAN.   SC+40
          EJM.   DFP2,MC+40  IF FLPP NOT PRESENT
  
*         DUMP SECTION ONE. 
  
          LDC    PPS1        SET SECTION 1 LENGTH 
          STD    RL 
          IAM.   BUF,MC+40
          LDC    2RFP        SET FLPP IDENTIFICATION
          STM    BUF+1
          LDD    PN          STORE FLPP NUMBER
          RJM    C2D
          STM    BUF+2
          RJM    WRT         WRITE SECTION 1
  
*         DUMP SECTION TWO. 
  
          LDC    PPS2        SET SECTION 2 LENGTH 
          STD    RL 
          SBN    5
          IAM.   BUF,MC+40
          RJM    WRT         WRITE SECTION 2
          RJM    DSP         REDEADSTART FLPP                            DIMA219
 DFP2     LDC    FCCL+ENSC   DISABLE SCANNER INTERFACE                   DIMA219
          OAN.   SC+40
          IAN.   SC+40
          AOD    PN          ADVANCE FLPP NUMBER                         DIMA219
          LMN    16                                                      DIMA219
          ZJN    DFP3        IF ALL FLPP-S DUMPED                        DIMA219
          LJM    DFP1        LOOP FOR NEXT FLPP 
                                                                         DIMA219
 DFP3     DCN.   MC          DEACTIVATE SCANNER CHANNEL                  DIMA219
          LDC    FCCL+PPUE   CLEAR *FLPP ERROR*                          DIMA219
          OAN.   SC+40                                                   DIMA219
          IAN.   SC+40                                                   DIMA219
          LJM    DFPX        RETURN                                      DIMA219
 DEM      SPACE  4,10 
**        DEM - DUMP EXTENDED MEMORY. 
* 
*         USES   MB, LL, RL, T8, T1 - T6. 
* 
*         CALLS  DIG, ECP, WLB, WRT.
  
  
 DEM      SUBR               ENTRY/EXIT 
          LDC    DEMB+20000  ASK FOR ECS SIZE 
          RJM    DIG
          ZJN    DEMX        IF NO ECS/LCM DUMP 
          STD    MB          SAVE BLOCK COUNT 
          STM    EDTB+4 
  
*         CHECK CPU OFF BITS. 
  
          LDM    OPTN 
          SHN    21-0 
          PJN    DEM1        IF CPU0 ON 
          SHN    1+21-1 
          MJN    DEMX        IF BOTH CPUS OFF 
          AOM    DEMA        SET UP EXCHANGE TO CPU1
  
*         WRITE CPU PROGRAM TO CM.
  
 DEM1     LDN    CXJPL       GET LENGTH OF EXCHANGE PACKAGE 
          STD    T1 
          LDN    DEMCL       GET LENGTH OF CPU PROGRAM
          STD    T2 
          LDN    1           SET B1 = 1 
          STM    CXJP+11
          LDC    CMEC+21     SET P FOR CPU PROGRAM
          STM    CXJP+1 
          SHN    -14
          STM    CXJP 
          LDC    CMEC        WRITE EXCHANGE PACKAGE TO CM                DIMA223
          CWM    CXJP,T1                                                 DIMA223
          ADN    21-CXJPL    COPY CPU PROGRAM TO CM                      DIMA223
          CWM    DEMC,T2                                                 DIMA223
          LDM    EDTA        CHECK IF CYBER 176 
          NJN    DEM3        IF CYBER 176 
          LDC    CMEC        EXCHANGE CPU                                DIMA223
 DEMA     EXN    0                                                       DIMA223
*         EXN    1           (CPU0 TURNED OFF)
  
*         GET ECS FLAG REGISTER.
  
 DEM2     LDC    CMEC+20+DEMCL  CHECK DATA READY
          CRD    CS                                                      DIMA223
          ADN    1
          CRD    T2 
          LDD    CS                                                      DIMA223
          ZJN    DEM2        IF NOT READY 
          LDD    T2+3        SET FLAG REGISTER IN LABEL 
          LMC    2L 
          STM    EDTB+2 
          LDD    T2+4 
          STM    EDTB+3 
  
*         INITIALIZE ECS TRANSFERS, WRITE ECS LABEL RECORD. 
  
          LDC    CMEC+20+DEMCL
          CWD    PS                                                      DIMA223
          UJN    DEM4        WRITE LABEL RECORD 
  
*         WRITE LCM DUMP ROUTINES TO CM.
  
 DEM3     LDN    DEMDL                                                   DIMA223
          STD    T2                                                      DIMA223
          LDC    CMEC+21     COPY CPU PROGRAM TO CM                      DIMA223
          CWM    DEMD,T2
          LDN    DEMEL       WRITE EXCHANGE PACKAGE 2 TO CM 
          STD    T1 
          LDC    CMEC+1000+40 
          CWM    DEME,T1
          LDC    FCCL+BCXC   CLEAR *BLOCK COPY EXIT CONTROL*             DIMA219
          OAN.   SC+40                                                   DIMA219
          IAN.   SC+40                                                   DIMA219
          RJM    ECP         EXCHANGE CYBER 176 CPU 
 DEM4     LDC    3RSEC       WRITE ECS/LCM LABEL RECORD 
          RJM    WLB
          LDC    1000        SET BLOCK SIZE 
          STD    T8 
          LDC    5000        SET RECORD LENGTH
          STD    RL 
          LDC    BUF         SET BUFFER ADDRESS 
          STM    WRTB 
          LDC    CMEC+22     STORE HANG INSTRUCTION                      DIMA223
          CWM    CPIL,ON                                                 DIMA223
  
*         DUMP ECS/LCM. 
  
 DEM5     LDC    CMEC+20+DEMCL  READ BLOCK FROM CM
          CRD    CS                                                      DIMA223
          LDD    CS                                                      DIMA223
          ZJN    DEM5        IF NOT READY 
          LDC    CMEC+20+DEMCL+1  READ BLOCK
          CRM    BUF,T8 
          SOD    MB          DECREMENT BLOCK COUNT                       DIMA223
          LDC    CMEC+20+DEMCL
          CWD    PS                                                      DIMA223
          RJM    WRT         WRITE BLOCK
          LDD    MB                                                      DIMA223
          NJN    DEM5        IF NOT ALL BLOCKS DUMPED 
          LJM    DEMX        RETURN 
  
 DEMB     DATA   C*ECS SIZE/1000* 
  
 DEMC     BSS    0           CPU PROGRAM FOR ECS
          VFD    15/43002      1.  MX0  2        SET STATUS FUNCTION
          VFD    15/76110          SX1  B1       INITIALIZE RESULT
          VFD    15/13777          BX7  X7-X7                            DIMA223
          VFD    15/20030          LX0  24       POSITION FUNCTION
  
          VFD    15/43252      2.  MX2  42       SET MASK 
          VFD    15/11020          BX0  X2*X0    FUNCTION ONLY
          VFD    15/43601          MX6  1                                DIMA223
          VFD    15/12001          BX0  X0+X1    INSERT TEST BIT
  
          VFD    30/0110000001 3.  RE   1        TEST FLAG REGISTER BIT 
          VFD    15/15502          BX5  -X2*X0   SET BIT IN RESULT       DIMA223
          VFD    15/12775          BX7  X7+X5                            DIMA223
  
          VFD    15/20101      4.  LX1  1        ADVANCE BIT
          VFD    15/15112          BX1  -X2*X1
          VFD    12/0311           NZ   X1,CMEC+22 IF NOT 18 BITS 
          VFD    18/CMEC+22 
  
          VFD    15/54700      5.  SA7  A0       STORE RESULT            DIMA223
          VFD    15/76220          SX2  B2       SET ADDRESS ADVANCE
          VFD    15/56630          SA6  B3       SET *CPU READY*
          VFD    15/13000          BX0  X0-X0    INITIALIZE ECS ADDRESS 
  
          VFD    30/5113000000 6.  SA1  B3+ 
          VFD    12/0331           NG   X1,CMEC+26 WAIT PP READY
          VFD    18/CMEC+26 
  
          VFD    12/0311       7.  NZ   X1,CMEC+30 IF DUMP NOT COMPLETE  DIMA223
          VFD    18/CMEC+30                                              DIMA223
          VFD    12/0100           RJ   CMEC+21  VOID INSTRUCTION STACK  DIMA223
          VFD    18/CMEC+21                                              DIMA223
          VFD    30/0112000000 10. RE   B2       READ ECS/LCM            DIMA223
          VFD    30/6100000000     SB0  0 
  
          VFD    15/56630      11. SA6  B3       SET CPU READY           DIMA223
          VFD    15/36002          IX0  X0+X2    ADVANCE ECS ADDRESS
          VFD    12/0400           EQ   CMEC+26  LOOP 
          VFD    18/CMEC+26 
  
          CON    0           INITIAL READY FLAG  (0 = PP READY) 
 .1       SET    *-DEMC 
 DEMCL    EQU    .1/5+1 
  
 DEMD     BSS    0           CPU PROGRAM FOR LCM
          VFD    12/0400       1.  EQ   CMEC+25  JUMP TO LCM CODE 
          VFD    18/CMEC+25 
          VFD    30/6100000000     SB0  0 
  
          VFD    30/6100000000 2.  SB0  0 
          VFD    30/6100000000     SB0  0 
  
          VFD    15/01300      3.  XJ            EXCHANGE BACK TO DUMP
          VFD    30/6100000000     SB0  0 
  
          VFD    15/46000          NO 
          VFD    12/0400       4.  EQ   CMEC+23  LCM ERROR RECOVERY 
          VFD    18/CMEC+23 
          VFD    30/6100000000     SB0  0 
  
          VFD    15/43601      5.  MX6  1        START OF LCM DUMP
          VFD    30/7100000000     SX0  0        INITIALIZE LCM ADDRESS 
          VFD    15/76220          SX2  B2       X2 = ADDRESS INCREMENT 
  
 .1       SET    *-DEMD                                                  DIMA223
 DEMDL    EQU    .1/5                                                    DIMA223
  
 DEME     BSS    0           EXCHANGE PACKAGE FOR LCM ERROR EXIT
          VFD    24/CMEC+24,18/0,18/0            P,A0,B0
          VFD    24/0,18/0,18/0                  RAS,A1,B1
          VFD    24/CMEC+2000,18/0,18/0          FLS,A2,B2
          VFD    24/200000,18/0,18/0             PSD,A3,B3               DIMA219
          VFD    24/0,18/0,18/0                  RAL,A4,B4
          VFD    24/17777777,18/0,18/0           FLL,A5,B5
          VFD    24/CMEC+1000+40,18/0,18/0       NEA,A6,B6
          VFD    24/0,18/0,18/0                  EEA,A7,B7
  
 .1       SET    *-DEME 
 DEMEL    EQU    .1/5 
 DSP      SPACE  4,10                                                    DIMA219
**        DSP - DEADSTART FLPP.                                          DIMA219
*                                                                        DIMA219
*         ENTRY  SCANNER CHANNEL ACTIVE.                                 DIMA219
*                FLPP SELECTED IN SCR.                                   DIMA219
*                SCANNER INTERFACE ENABLED.                              DIMA219
*                                                                        DIMA219
*         EXIT   FLPP DEADSTARTED.                                       DIMA219
*                FLPP PARITY ERROR CONTROL CLEARED.                      DIMA219
                                                                         DIMA219
                                                                         DIMA219
 DSP      SUBR               ENTRY/EXIT                                  DIMA219
          LDC    FCSB+DSFP   SET *DEADSTART FLPP*                        DIMA219
          OAN.   SC+40                                                   DIMA219
          IAN.   SC+40                                                   DIMA219
          LDC    FCCL+DSFP   CLEAR *DEADSTART FLPP*                      DIMA219
          OAN.   SC+40                                                   DIMA219
          IAN.   SC+40                                                   DIMA219
          EJM.   DSP1,MC     IF SCANNER CHANNEL EMPTY                    DIMA219
          IAN.   MC          IGNORE GARBAGE ON CHANNEL                   DIMA219
 DSP1     LDC    FCSB+CPUE   SET *CLEAR FLPP PARITY ERROR*               DIMA219
          OAN.   SC+40                                                   DIMA219
          IAN.   SC+40                                                   DIMA219
          LDC    FCCL+CPUE   CLEAR *CLEAR FLPP PARITY ERROR*             DIMA219
          OAN.   SC+40                                                   DIMA219
          IAN.   SC+40                                                   DIMA219
          UJN    DSPX        RETURN                                      DIMA219
          SPACE  4,10 
          ERRPL  *-BUF+2     OVERFLOW INTO TAPE BUFFER
          TITLE  DPC - DUMP PERIPHERAL CONTROLLERS. 
          IDENT  DPC,DBCX 
          COMMENT CTI EDD OVERLAY 
          COMMENT COPYRIGHT CONTROL DATA CORPORATION, 1979
*CALL,CDCCRN
 DBC      SPACE  4,10 
**        DBC - DUMP BUFFER CONTROLLERS.
* 
*         USES   T4, MB, CN, RL.
* 
*         CALLS  DIG, MCI, TOF, WLB, C2D, WRT.
  
  
          ORG    OVLB 
  
 DBC      SUBR               ENTRY/EXIT 
 DBC1     LDC    DBCC+10000  REQUEST CHANNEL NUMBER 
          RJM    DIG
          NJN    DBC2        IF NOT CHANNEL 0 
          LDD    T5 
          ZJN    DBCX        IF NULL INPUT
          LDN    0
 DBC2     STD    CN          SET CHANNEL NUMBER 
          SBN    14 
          MJN    DBC3        IF LOWER CHANNEL BANK
          SBN    20-14
          MJN    DBC1        IF ILLEGAL CHANNEL 
          SBN    34-20
          PJN    DBC1        IF ILLEGAL CHANNEL 
          LDD    DP          CHECK 2ND PPS PRESENT
          ZJN    DBC1        IF NO UPPER CHANNEL BANK 
 DBC3     LDD    DT 
          LMD    CN 
          ZJN    DBC1        IF DUMP TAPE CHANNEL 
          LDC    CTBC        MODIFY CHANNEL INSTRUCTIONS
          RJM    MCI
          LDC    414         TIMEOUT AUTOLOAD FUNCTION
          RJM    TOF
          ZJN    DBC1        IF FUNCTION REJECTED 
          ACN    BC 
          LDN    DBCDL       REINITIALIZE CONTROLWARE 
          OAM    DBCD,BC
          DCN    BC 
 DBCA     LDN    0
*         LDN    1           (LABEL BLOCK WRITTEN)
          NJN    DBC4        IF LABEL BLOCK WRITTEN 
          STM    EDTB+4 
          LDC    3L BC       WRITE *BC* LABEL BLOCK 
          RJM    WLB
          AOM    DBCA        SET LABEL BLOCK WRITTEN
 DBC4     LDN    61          PRESET 7155 AUTODUMP FUNCTION
          STD    T4 
          LDN    55          TIMEOUT *INITIATE TIMING* FUNCTION 
          RJM    TOF
          NJN    DBC5        IF 7155 CONTROLLER 
          LDN    1
          STD    T4 
          LDC    414         ISSUE AUTOLOAD FUNCTION
          RJM    TOF
          ACN    BC 
          LDN    DBCEL       LOAD AUTODUMP PROGRAM TO NON 7155
          OAM    DBCE,BC
          DCN    BC 
 DBC5     LDC    5000        SET RECORD LENGTH
          STD    RL 
          LDC    BUF         SET BUFFER ADDRESS 
          STM    WRTB 
          LDN    BCR1        SET FULL BLOCK COUNT 
          STD    MB 
          LDD    T4          INITIATE AUTODUMP
          RJM    TOF
          ACN    BC 
 DBC6     LDD    RL          INPUT CONTROLWARE BLOCK
          IAM    BUF,BC 
 DBCB     LDN    0
*         LDN    1           (FIRST BLOCK WRITTEN)
          NJN    DBC7        IF FIRST BLOCK WRITTEN 
          AOM    DBCB 
          LDC    2RCH        SET CHANNEL MNEMONIC 
          STM    BUF+1
          LDD    CN          CONVERT CHANNEL NUMBER 
          RJM    C2D
          STM    BUF+2       STORE IN BUFFER
 DBC7     RJM    WRT         WRITE CONTROLWARE BLOCK TO TAPE
          SOD    MB          DECREMENT BLOCK COUNT
          NJN    DBC6        IF NOT END OF FULL BLOCKS
          LDC    BCR3 
          STD    RL 
          SBN    BCR3-BCR2   INPUT SHORT BLOCK
          IAM    BUF,BC 
          DCN    BC 
          RJM    WRT         WRITE SHORT BLOCK
          SOM    DBCB 
          LDN    10          ISSUE OPERATION COMPLETE                    DIMA219
          RJM    TOF                                                     DIMA219
          LJM    DBC1        LOOP FOR NEXT CONTROLLER 
  
 DBCC     DATA   C*CONTROLWARE CHANNEL* 
  
 DBCD     BSS    0
          CON    0224,0000   9400 
          CON    0005,0000   0500 
          CON    0273,0376   BBFE 
 DBCDL    EQU    *-DBCD 
  
 DBCE     BSS    0
          CON    0000,0000   CON  0 
          CON    0011,0000   TCB  0,0 
          CON    0357,0001   FJR  $-1 
          CON    0014,0060   IAN  3 
          CON    0017,0000   OAA  0 
          CON    0012,0000   SCB  0,0 
          CON    0013,0000   CCB  0,0 
          CON    0030,0001   LDN  1 
          CON    0011,0006   TCB  0,6 
          CON    0357,0001   FJR  $-1 
          CON    0374,0000   OTI  0 
 DBCEL    EQU    *-DBCE 
          TITLE  SUBROUTINES. 
 TOF      SPACE  4,10 
**        TOF - TIMEOUT FUNCTION. 
* 
*         ENTRY  (A) = FUNCTION CODE. 
* 
*         EXIT   (A) = 0 IF FUNCTION REJECTED.
  
  
 TOF      SUBR               ENTRY/EXIT 
          FAN    BC          ISSUE FUNCTION 
          LCN    0
 TOF1     IJM    TOFX,BC     IF FUNCTION ACCEPTED 
          SBN    1
          NJN    TOF1        IF NOT TIMED OUT 
          DCN    BC 
          UJN    TOFX        RETURN 
          SPACE  4,10 
**        CHANNEL TABLE.
  
  
          CHTB   BC 
          SPACE  4,10 
          ERRPL  *-BUF+2     OVERFLOW INTO TAPE BUFFER
          END 
