*DECK MAD 
          IDENT  MAD,/CTI/LOAD
          PERIPH
          BASE   MIXED
          SST 
 RCM$     EQU    0           RESTORE CM TEST WORDS IN *COMPDMS* 
*CALL,VERS
          TITLE  MAD         CTI MAINFRAME ATTRIBUTE DETERMINATOR-"VERS"
          COMMENT CTI MAINFRAME ATTRIBUTE DETERMINATOR-"VERS" 
          COMMENT COPYRIGHT CONTROL DATA CORPORATION, 1979
*CALL,CDCCRN
          SPACE  4
*****     MAD - MAINFRAME ATTRIBUTE DETERMINATOR. 
*         R. E. DENNIS.      78/05/12.
          SPACE 4,10
**        COMMON DECKS. 
*CALL COMPMAC 
*CALL COMSCPA 
*CALL COMSCTI 
*CALL COMSSCR 
          TITLE  LOCAL DEFINITIONS. 
**        DIRECT LOCATION ASSIGNMENTS.
  
  
          ORG    /CTI/LOAD
 T0       EQU    0
 T1       EQU    1
 T2       EQU    2
 T3       EQU    3
 T4       EQU    4
 T5       EQU    5
 T6       EQU    6
 T7       EQU    7
 CM       VFD    60/0 
          BSS    67-* 
 EL       CON    20 
 ON       CON    1
 HN       CON    100
 TH       CON    1000 
 TR       CON    3
          BSS    100-*
          SPACE  4,10 
**        ASSEMBLY CONSTANTS. 
  
  
 CH       EQU    10          DISPLAY CHANNEL
 IC       EQU    15          INTERLOCK REGISTER CHANNEL 
 MC       EQU    0           MAINTENANCE CHANNEL
 SC       EQU    16          STATUS AND CONTROL REGISTER CHANNEL
 AJMI     EQU    6400 
 SHNI     EQU    1000        SHN
 DCD      SPACE  4,10                                                    DIMA255
**        DISPLAY CONTROLLER DEFINITIONS.                                DIMA255
*                                                                        DIMA255
*                                                                        DIMA255
                                                                         DIMA255
                                                                         DIMA255
 DSFC     EQU    7001B       SELECT LEFT SCREEN, 32 CHARACTERS/LINE      DIMA255
 YC09     EQU    7470B                                                   DIMA255
 YC12     EQU    7374B                                                   DIMA255
 YC13     EQU    7350B                                                   DIMA255
 YC16     EQU    7254B                                                   DIMA255
 YCER     EQU    7040B       KEYBOARD ERROR MESSAGE LINE                 DIMA255
 XC01     EQU    6000B                                                   DIMA255
          TITLE  MAIN PROGRAM.
  
  
          ORG    /CTI/TRAN
 MAD      BSS    0
 MAD1     RJM    CHS         SET CHANNEL STATUS 
          RJM    DOT         DETERMINE 170 TYPE 
          PJN    MAD2        IF NOT C176
          LDC    FCSB+CCIO   PERFORM CPU CLEAR IO FUNCTION
          OAN    SC+40
          IAN    SC+40
          LDC    FCCL+CCIO
          OAN    SC+40
          IAN    SC+40
          LJM    MAD4 
  
 MAD2     LDN    1
          STM    /CPA/PPPU         SET NO PPU-S 
          LCN    0
          STM    /CPA/PPPU+1
          LDM    /CPA/DSPNLZ+13  CHECK RECOVERY LEVEL 
          SHN    -11B 
          LPN    7
          SBN    3
          MJN    MAD2.5      IF MEMORY NOT TO BE RECOVERED
          LDN    1                 SAVE LOW CORE
          CRM    BUF,ON 
          LDD    HN 
          CRM    BUF+5,HN 
 MAD2.5   LDN    2
          STD    T1 
          LDN    0           WRITE STOP PROGRAMS TO CM
          CWM    CPOA,T1
          AJM    MAD3,IC     IF CYBER 7X
          LDC    200         SET NO INTERLOCK REGISTER
          RAM    /CPA/OPTN
 MAD3     RJM    CPT         DETERMINE CPU 0 TYPE 
          RJM    CPC         DETERMINE CPU COUNT
          RJM    CXJ         DETERMINE CENTRAL EXCHANGE STATUS
          RJM    CCU         CHECK CMU
          RJM    ECH         ESTABLISH CPU HAND-OFF STATE 
          LDN    1           RESTORE LOW CORE 
          CWM    BUF,ON 
          LDD    HN 
          CWM    BUF+5,HN 
  
*         DETERMINE MODEL TYPE
  
 MAD4     LDM    /CPA/OPTN
          LPC    100B 
          NJN    MAD4.1      IF NO SCR, NOT MODEL D 
          LDC    FCTC+PPCT   TEST AND CLEAR BIT 84D 
          OAN    SC+40B 
          IAN    SC+40B 
          ZJN    MAD4.1      NOT MODEL D
          LDC    FCTS+PPCT   TEST AND SET BIT 84D 
          OAN    SC+40B 
          IAN    SC+40B 
          ZJN    MAD4.1      NOT MODEL D, WAS IN 2X SPEED 
          UJN    MAD4.2 
 MAD4.1   LDM    /CPA/OPTN
          LPC    7377B
          ADC    400B 
          STM    /CPA/OPTN   SET NOT MODEL D BIT
  
*         DETERMINE MEMORY SIZE 
  
 MAD4.2   LDM    /CPA/CMSZ   CHECK FOR MEMORY DEFINE
          ADM    /CPA/CMSZ+1
          NJN    MAD4A       IF MEMORY ALREADY SPECIFIED
          LDC    BUF         DETERMINE SIZE OF CENTRAL MEMORY 
          RJM    DMS
          SHN    3           SET MEMORY SIZE/100
          STM    /CPA/CMSZ+1
          SHN    -14
          STM    /CPA/CMSZ
  
*         LOGICALLY OFF PHYSICALLY NOT PRESENT ELEMENTS.
  
 MAD4A    LDN    0           TURN OFF PP-S NOT PRESENT
          STD    T1 
 MAD5     LDD    T1 
          LMN    77 
          ADC    SHNI 
          STM    MADA 
          STM    MADB 
          LDM    /CPA/PPP0
 MADA     SHN    0
          LPN    1
          ZJN    MAD6        IF PP PRESENT
          LDC    /CPA/LPP0   *OFF* THE PP 
          RJM    SAB
 MAD6     LDM    /CPA/PPP1
 MADB     SHN    0
          LPN    1
          ZJN    MAD7        IF PP PRESENT
          LDC    /CPA/LPP1   *OFF* THE PP 
          RJM    SAB
 MAD7     AOD    T1          INCREMENT BIT OFFSET 
          LMN    10D
          NJN    MAD5        IF NOT DONE WITH BOTH CHASSIS
          STD    T1          BIT OFFSET FOR PPU15 
          LDM    /CPA/PPPU   *OFF* NOT PRESENT PPU-S
          LPN    1
          ZJN    MAD8        IF PPU15 PRESENT 
          LDC    /CPA/LPPU   *OFF* PPU 15 
          RJM    SAB
 MAD8     LDD    T1 
          LMN    77 
          ADC    SHNI 
          STM    MADC 
          LDM    /CPA/PPPU+1
 MADC     SHN    0
          LPN    1
          ZJN    MAD9        IF PPU PRESENT 
          LDC    /CPA/LPPU+1 *OFF* PPU
          RJM    SAB
 MAD9     AOD    T1          INCREMENT BIT OFFSET 
          LMN    12D
          NJN    MAD8        IF NOT DONE
*         UJN    LNP         EXIT TO NEXT PROGRAM 
 LNP      SPACE  4,10 
**        LNP - LOAD NEXT PROGRAM.
  
  
 LNP      BSS    0
          LDC    LNPB        CALL *PCM* 
          LJM    /CTI/CDEP
  
 LNPB     CON    /CTI/LOAD   CDIB 
          CON    /CTI/TRAN   CDTA 
          CON    0           CDRW 
          DATA   L*PCM*      CDNC 
 SAB      SPACE  4,10 
**        SAB - SET A BIT.
* 
*         ENTRY  (A) = ADDRESS OF WORD. 
*                (T1) = BIT OFFSET IN WORD. 
* 
*         EXIT   SPECIFIED BIT SET. 
* 
*         USES   T2, T3.
* 
*         CALLS  NONE.
  
  
 SAB      SUBR               ENTRY/EXIT 
          STD    T2          ADDRESS OF WORD
          LDD    T1          BIT OFFSET 
          LPN    17 
          ADC    SHNI 
          STM    SABA 
          STM    SABB 
          LDN    1
 SABA     SHN    0
          LMC    7777 
          STM    SABC 
          LDN    1
 SABB     SHN    0
          STD    T3 
          LDI    T2          SET BIT IN WORD
          LPC    0
 SABC     EQU    *-1
          LMD    T3 
          STI    T2 
          UJN    SABX        RETURN 
          TITLE  PRIMARY SUBROUTINES. 
**        COMMON DECK.
*CALL     COMPDMS 
 CCU      SPACE  4,10 
**        CCU - DETERMINE COMPARE MOVE UNIT (CMU) STATUS. 
  
  
 CCU      SUBR               ENTRY/EXIT 
          LDM    /CPA/OPTN
          SHN    21-3 
          MJN    CCUX        IF CMU OFF 
          LDD    HN          STORE EXCHANGE PACKAGE FOR CMU TEST PROGRAM
          CWM    CCUA,EL
          CWM    CXJB,EL     STORE EXCHANGE PACKAGE FOR MONITOR PROGRAM 
          CWM    CXJC,EL     STORE EXCHANGE PACKAGE FOR STOP PROGRAM
          CWM    CCUB,TR     STORE CMU TEST PROGRAM 
          CWM    3*5+CCUB,TR
          LDC    172         STORE MONITOR MODE PROGRAM 
          CWM    CXJE,ON
          LDM    /CPA/OPTN                                               DIMA272
          SHN    21-0                                                    DIMA272
          PJN    CCU1A                                                   DIMA272
          AOM    CCU1B                                                   DIMA272
 CCU1A    BSS    0                                                       DIMA272
          LDD    HN          EXCHANGE CPU 
 CCU1B    BSS    0           INSTRUCTION MODIFIED FOR CPU0=OFF           DIMA272
          EXN    0
          ADN    77          DELAY
          SBN    1
          NJN    *-1
          LDC    164         CHECK FOR CMU ACTION 
          CRM    CCUB,ON
          LDM    CCUB 
          NJN    CCU1        IF CMU HARDWARE AVAILABLE
          LDN    10          SET CMU NOT PRESENT
          RAM    /CPA/OPTN
 CCU1     LJM    CCUX        RETURN 
 CHS      SPACE  4,10 
**        CHS - SET CHANNEL STATUS. 
  
  
 CHS      SUBR               ENTRY/EXIT 
          LDN    0           CLEAR CHANNEL STATUS INDEX 
          STD    T2 
          LDN    11          SET UPPER CHANNEL
          STD    T1 
          AJM    CHS1,20     IF CHANNEL 20 PRESENT
          LDC    1777        SET CHASSIS 2 PPS NOT PRESENT
          STM    /CPA/PPP1
          SOM    CHSB 
 CHS1     LDD    T2          SET CHANNEL SENSE
          SHN    4
          LMD    T1 
          LMC    AJMI 
          STM    CHSA 
          LDM    /CPA/PPP0,T2  SHIFT STATUS BYTE
          SHN    1
  
*         NOTE-  THIS CODE CHECKS PPU PRESENT, NOT CHANNEL PRESENT. 
  
 CHSA     AJM    CHS2,**     CHECK CHANNEL
          LMN    1           SET CHANNEL INACTIVE 
 CHS2     STM    /CPA/PPP0,T2 
          SOD    T1          ADVANCE CHANNEL
          PJN    CHS1        LOOP FOR 10 CHANNELS 
          LDN    11          RESET UPPER CHANNEL
          STD    T1 
          AOD    T2          ADVANCE CHANNEL STATUS BYTE
 CHSB     LMN    2
          NJN    CHS1        LOOP FOR ALL CHANNELS
          SOM    /CPA/PPP0   SET PP 0 PRESENT 
          LJM    CHSX        EXIT 
 CPC      SPACE  4,10 
**        CPC - DETERMINE CPU COUNT.
  
  
 CPC      SUBR               ENTRY/EXIT 
          LDM    /CPA/OPTN   CHECK CPU 1
          SHN    21-1 
          MJN    CPCX        IF TURNED OFF
          SHN    1-0
          MJN    CPCX        IF TURNED OFF
          LDN    0
          STM    CPOC+4      (B1) = 0 
          LDD    HN          STORE EXCHANGE PACKAGE 
          CWM    CPOB,EL
          CWM    CPOD,TR     STORE PROGRAM
          SBN    23          EXCHANGE CPU 1 
          EXN    1
          LDD    HN          RESTORE EXCHANGE PACKAGE 
          CWM    CPOB,EL
          SBN    20 
          EXN    0           EXCHANGE CPU 0 
          ADN    1           READ (B1)
          CRD    CM 
          LDD    CM+4        SET CPU 1 STATUS 
          NJN    CPCX        IF CPU 1 AVAILABLE 
          LDN    2
          RAM    /CPA/OPTN
          LJM    CPCX        RETURN 
 CPT      SPACE  4,10 
**        CPT - DETERMINE CPU 0 TYPE. 
  
  
 CPT      SUBR               ENTRY/EXIT 
          LDM    /CPA/OPTN
          SHN    21-0 
          PJN    CPT1        IF CPU 0 ON
          AOM    CPTA        SET TO EXCHANGE CPU - 1
          AOM    CPTB 
 CPT1     LDD    HN          STORE EXCHANGE PACKAGE 
          CWM    CPOB,EL
          CWM    CPOD,TR     STORE TEST PROGRAM 
          SBN    23          EXCHANGE CPU 
 CPTA     EXN    0
*         EXN    1           (CPU - 0 OFF)
          CRD    CM          WAIT FOR COMPLETION OF EXCHANGE
          LDN    77 
          SBN    1
          NJN    *-1
 CPTB     RPN    0
*         RPN    1           (CPU - 0 OFF)
          NJN    CPTX        IF 6600 CPU
          LDN    20          SET NO INSTRUCTION STACK 
          RAM    /CPA/OPTN
          UJN    CPTX        RETURN 
 CXJ      SPACE  4,10 
**        CXJ - DETERMINE CENTRAL EXCHANGE STATUS.
  
  
 CXJ      SUBR               ENTRY/EXIT 
          LDM    /CPA/OPTN
          SHN    21-0 
          PJN    CXJ1        IF CPU 0 ON
          AOM    XJ1         SET CPU 1
 CXJ1     LDM    /CPA/OPTN
          SHN    21-2 
          MJN    CXJX        IF CENTRAL EXCHANGE OFF
          LDD    HN          STORE FIRST EXCHANGE PACKAGE 
          CWM    CXJA,EL
          CWM    CXJB,EL     STORE SECOND EXCHANGE PACKAGE
          CWM    CXJC,EL     STORE THIRD EXCHANGE PACKAGE 
          LDC    170         STORE TEST PROGRAMS
          CWM    CXJD,TR
          LDD    HN          EXCHANGE CPU 
 XJ1      EXN    0
          SBN    1           DELAY
          NJN    *-1
          LDN    0                                                       DIMA242
          CRD    CM                                                      DIMA242
          LDD    CM                                                      DIMA242
          SHN    21B-10B                                                 DIMA242
          MJN    CXJX        IF CENTRAL EXCHANGE PRESENT                 DIMA242
          LDN    4           SET CENTRAL EXCHANGE NOT PRESENT 
          RAM    /CPA/OPTN
          RJM    FDC         FREE DISPLAY CHANNEL                        DIMA255
          RJM    DOA         DISPLAY OPERATOR ALERT                      DIMA255
          RJM    RDS1        RETURN DEADSTART STATE                      DIMA255
          LJM    CXJX        RETURN 
 DOT      SPACE  4,10 
**        DOT - DETERMINE 170 STATUS. 
  
  
 DOT9     LDC    100         SET NO SCR REGISTER
          RAM    /CPA/OPTN
  
 DOT      SUBR               ENTRY/EXIT 
          LDC    4000B
          RAM    /CPA/OPTN   SET C170 BIT FOR DDS 
          IJM    DOT9,SC     IF NOT A CYBER 17X 
          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    DOTX        IF BIT NOT SET, NOT X76
          LDC    FCTB+SCSL
          OAN    SC+40
          IAN    SC+40
          NJN    DOTX        IF BIT NOT CLEARED, NOT X76
          STD    T3 
          LDM    /CPA/OPTN                                               DIMA255
          LPC    4565B                                                   DIMA255
          LMC    3212B                                                   DIMA284
          STM    /CPA/OPTN                                               DIMA255
          LDN    FCRD+12     READ BYTE 12 OF SCR
          OAN    SC 
          IAN    SC 
          LPC    7400 
          ZJN    DOT1 
          LJM    DOT1.5      IF C176
 DOT1     LDC    -2000       SET C76A CODE
          RAM    /CPA/OPTN
          LDC    FCSB+CCRO   SET CM RANK 1 ERROR CLEAR BIT
          OAN    SC 
          IAN    SC 
          LDC    FCCL+CCRO   CLEAR CM RANK 1 ERROR CLEAR BIT
          OAN    SC 
          IAN    SC 
          LDC    FCSB+CCRT   SET CM RANK 2 ERROR CLEAR BIT
          OAN    SC 
          IAN    SC 
          LDC    FCCL+CCRT   CLEAR CM RANK 2 ERROR CLEAR BIT
          OAN    SC 
          IAN    SC 
          LDC    FCTB+60     TEST BIT 48D 
          OAN    SC 
          IAN    SC 
          NJN    DOT1.3      IF C76A
          LDC    1000        SET C76B CODE
          RAM    /CPA/OPTN
 DOT1.3   LDC    FCCL+SECD   CLEAR CM SECDED ERROR
          OAN    SC 
          IAN    SC 
  
*         DEADSTART FIRST LEVEL PPU-S.
  
 DOT1.5   LDC    FCCL+DDFP   CLEAR DEADSTART DUMP BIT 
          RJM    SFC
 DOT2     AOD    T3 
          RJM    ASE         ACTIVATE SCANNER ENABLE
          LDN    DSFP        DEADSTART FUNCTION CODE
          RJM    DSP         DEADSTART PPU
          RJM    CSE         CLEAR SCANNER ENABLE AND CHANNEL 
          LDD    T3 
          LMN    15 
          NJN    DOT2        IF NOT ALL PPU-S 
          LDM    /CPA/LPPU+1      LOGICAL PPU BYTE
          STD    T4 
          LDN    0           PHYSICAL PPU BYTE
          STD    T5 
          LDM    /CPA/LPPU   CHECK PPU 15 
          ZJN    DOT3        IF ON
          LJM    DOT7        IF OFF 
 DOT3     RJM    ASE         ACTIVATE SCANNER ENABLE
          LDN    DDFP        DEADSTART DUMP PPU FUNCTION
          RJM    DSP
          LDN    77B
 DOT4     FJM    DOT4.1,MC   IF PPU PRESENT 
          SBN    1
          PJN    DOT4        IF NOT TIMED OUT 
          UJN    DOT4.4 
  
 DOT4.1   LDN    DSFP        DEADSTART LOAD PPU FUNCTION
          RJM    DSP
*                            THIS DEADSTART LOAD OPERATION WILL 
*                            EMPTY THE SCANNER CHANNEL AND THE
*                            NEXT OPERATION WILL ESTABLISH A
*                            TRUE DEADSTART STATE FOR THE PPU.
          LDN    DSFP 
          RJM    DSP
          LDN    DOTAL       OUTPUT IDLE LOOP 
          OAM    DOTA,MC
          LDC    7777B-DOTAL
          STD    T6 
 DOT4.2   ZJN    DOT6 
          LDN    0
          OAN    MC          PAD PPU MEMORY WITH ZEROS
          SOD    T6 
          UJN    DOT4.2 
  
 DOT4.4   LDD    T3 
          LMN    15 
          NJN    DOT5        IF NOT PPU 15
          LDM    /CPA/PPPU   SET PPU 15 NOT PRESENT 
          LMN    1
          STM    /CPA/PPPU
 DOT5     LDD    T5          SET PPU NOT PRESENT
          LMN    1
          STD    T5 
 DOT6     LDN    DSFP        DEADSTART PPU FUNCTION 
          RJM    DSP         RE-DEADSTART PPU 
          RJM    CSE         CLEAR SCANNER ENABLE AND CHANNEL 
 DOT7     SOD    T3 
          ZJN    DOT8        IF ALL PPU-S CHECKED 
          LDD    T5          SET PHYSICAL BYTE FOR NEXT PPU 
          SHN    1
          STD    T5 
          LDD    T4          SET LOGICAL BYTE FOR NEXT PPU
          SHN    1
          STD    T4 
          SHN    -14
          NJN    DOT7        IF PPU OFF 
          LJM    DOT3        REPEAT FOR NEXT PPU
  
 DOT8     LDD    T5          SET PPU-S PRESENT
          STM    /CPA/PPPU+1
          LDC    FCCL+PPUE   CLEAR *PPU ERROR* BIT
          RJM    SFC
          LCN    0           SET EXIT CODE FOR C176/C76 
          LJM    DOTX        RETURN 
  
*         IDLE LOOP FOR EXECUTION BY FLPP-S 
  
 DOTA     PSN 
          PSN 
          PSN 
          PSN 
          UJN    *-3
 DOTAL    EQU    *-DOTA 
 ECH      SPACE  4,10 
**        ECH - ESTABLISH CPU STATE.
  
  
 ECH      SUBR               ENTRY/EXIT 
          LDN    1           WRITE STOP PROGRAM                          DIMA242
          STD    T1                                                      DIMA242
          LDN    0                                                       DIMA242
          CWM    CPOA,T1                                                 DIMA242
          LDD    HN          WRITE EXCHANGE PACKAGE FOR STOP PROGRAM
          CWM    CXJC,EL
          LDM    /CPA/OPTN
          SHN    21-0 
          MJN    ECH1        IF CPU 0 OFF 
          LDD    HN          EXCHANGE CPU 0 
          EXN    0
          LDM    /CPA/OPTN
          SHN    21-1 
          MJN    ECHX        IF CPU 1 OFF 
          LDD    HN          REWRITE EXCHANGE PACKAGE 
          CWM    CXJC,EL
 ECH1     LDD    HN          EXCHANGE CPU 1 
          EXN    1
          UJN    ECHX        RETURN 
 FDC      SPACE  4,10                                                    DIMA255
**        FDC - FREE DISPLAY CHANNEL                                     DIMA255
*                                                                        DIMA255
*         FDC HANGS PP 10 ON CHANNEL 12                                  DIMA255
*                                                                        DIMA255
                                                                         DIMA255
                                                                         DIMA255
 FDC      SUBR               ENTRY/EXIT                                  DIMA255
          ACN    12B                                                     DIMA255
          LDN    FDCL        LENGTH OF IDLE PROGRAM                      DIMA255
          OAM    FDCA,CH     SEND IDLE PROGRAM                           DIMA255
          FJM    *,CH                                                    DIMA255
          DCN    CH                                                      DIMA255
          UJN    FDCX        RETURN                                      DIMA255
                                                                         DIMA255
 FDCA     CON    0           PP 10 PROGRAM                               DIMA255
          LDN    0                                                       DIMA255
 FDCB     IAM    0,12B       READ NEW PROGRAM                            DIMA255
 FDCL     EQU    *-FDCA      LENGTH OF IDLE PROGRAM                      DIMA255
 DOA      SPACE  4,10                                                    DIMA255
**        DOA - DISPLAY OPERATOR ALERT                                   DIMA255
*                                                                        DIMA255
*         EXIT   CONTINUE DEADSTART WITH NON CEJ/MEJ USAGE               DIMA255
*                                                                        DIMA255
*         USES   PKI                                                     DIMA255
*                                                                        DIMA255
                                                                         DIMA255
                                                                         DIMA255
 DOA      SUBR               ENTRY/EXIT                                  DIMA255
 DOA1     LDC    11000B      DELAY                                       DIMA255
          SBN    1                                                       DIMA255
          NJN    *-1                                                     DIMA255
          FNC    DSFC,CH     SELECT LEFT SCREEN, 32 CHARACTERS/LINE      DIMA255
          ACN    CH                                                      DIMA255
          LDC    DSBAL       LENGTH OF DISPLAY BUFFER                    DIMA255
 DOAL     EQU    *-1         LENGTH OF ERROR DISPLAY BUFFER              DIMA255
          OAM    DSBA,CH                                                 DIMA255
          FJM    *,CH        WAIT                                        DIMA255
          DCN    CH                                                      DIMA255
          RJM    PKI         PROCESS KEYBOARD INPUT                      DIMA255
          ZJN    DOA1        IF NO ENTRY OR ERROR                        DIMA255
          UJN    DOAX        CONTINUE NON CEJ/MEJ USAGE                  DIMA255
                                                                         DIMA255
                                                                         DIMA255
                                                                         DIMA255
                                                                         DIMA255
 DSBA     CON    XC01,YC09                                               DIMA255
          DATA   H*CEJ/MEJ OPTION NOT ENABLED*                           DIMA255
          CON    XC01,YC12                                               DIMA255
          DATA   H*FOR CEJ/MEJ USAGE, ENABLE SWITCH*                     DIMA255
          CON    XC01,YC13                                               DIMA255
          DATA   H*ON DEADSTART PANEL AND DEADSTART*                     DIMA255
          CON    XC01,YC16                                               DIMA255
          DATA   H*(CR)  FOR NON CEJ/MEJ USAGE*                          DIMA255
 DSBAL    EQU    *-DSBA                                                  DIMA255
          CON    XC01,YCER                                               DIMA255
          DATA   H*INVALID ENTRY*                                        DIMA255
 DSBEL    EQU    *-DSBA                                                  DIMA255
 RDS1     SPACE  4,10                                                    DIMA255
**        RDS1 - RETURN DEADSTART STATE                                  DIMA255
*                                                                        DIMA255
*         RDS1 RETURNS PP 10 TO THE DEADSTART STATE                      DIMA255
*                                                                        DIMA255
                                                                         DIMA255
                                                                         DIMA255
 RDS1     SUBR               ENTRY/EXIT                                  DIMA255
          FNC    0,CH                                                    DIMA255
          LDN    77B                                                     DIMA255
          SBN    1           WAIT                                        DIMA255
          NJN    *-1                                                     DIMA255
          IJM    RDS3,CH                                                 DIMA255
          DCN    CH                                                      DIMA255
 RDS3     ACN    CH          PREPARE CHANNEL                             DIMA255
          LDN    RDS.L       PP10 IS ON CHANNEL 12B                      DIMA366
          OAM    RDSA,12B                                                DIMA255
          FJM    *,12B                                                   DIMA255
          DCN    12B                                                     DIMA255
          UJN    RDS1X       RETURN                                      DIMA255
                                                                         DIMA255
 RDSA     CON    0           PP 10 PROGRAM                               DIMA255
          LDN    0                                                       DIMA255
          IAM    0,CH                                                    DIMA255
 RDS.L    EQU    *-RDSA                                                  DIMA366
          TITLE  SECONDARY SUBROUTINES. 
 DSP      SPACE  4,10 
**        DSP  - DEADSTART FIRST LEVEL PPU-S. 
* 
*         ENTRY  (A)  =  FUNCTION.
* 
*         EXIT   PPU DEADSTARTED AND PPU
*                ERROR STATUS CLEARED.
* 
* 
*         CALLS  SFC. 
  
  
 DSP      SUBR               ENTRY/EXIT 
          ADC    FCCL 
          STM    DSPB 
          ADC    FCSB-FCCL
          STM    DSPA 
          LDC    FCSB+DSFP   DEADSTART PPU
*         LDC    FCSB+DDFP   DEADSTART DUMP PPU 
 DSPA     EQU    *-1
          RJM    SFC
          LDC    FCCL+DSFP   CLEAR DEADSTART BIT
*         LDC    FCCL+DDFP   CLEAR DEADSTART DUMP BIT 
 DSPB     EQU    *-1
          RJM    SFC
          LDC    FCSB+CPUE   SET *CLEAR PPU* ERROR
          RJM    SFC
          LDC    FCCL+CPUE   CLEAR *CLEAR PPU* ERROR
          RJM    SFC
          LJM    DSPX        RETURN 
 CSE      SPACE  4,10 
**        CSE - CLEAR SCANNER ENABLE AND CHANNEL
* 
*         ENTRY  SCANNER INTERFACE IS ENABLED AND 
*                SCANNER CHANNEL IS ACTIVE
* 
*         EXIT   SCANNER INTERFACE IS DISABLED AND
*                SCANNER CHANNEL IS INACTIVE
  
  
 CSE      SUBR               ENTRY/EXIT 
          LDC    FCCL+ENSC   CLEAR SCANNER ENABLE 
          OAN    SC+40
          IAN    SC+40
          DCN    MC 
          UJN    CSEX        RETURN 
          SPACE  4,10 
**        ASE  - ACTIVATE SCANNER ENABLE. 
* 
*         ENTRY  SCANNER CHANNEL IS INACTIVE AND
*                SCANNER INTERFACE IS DISABLED. 
* 
*                (T3) = PPU NUMBER. 
* 
*         EXIT   ACTIVE SCANNER CHANNEL, PPU NUMBER 
*                INSERTED IN SCR AND SCANNER
*                INTERFACE IS ENABLED.
* 
*         CALLS  IPN,SFC. 
  
  
 ASE      SUBR               ENTRY/EXIT 
          ACN    MC          ACTIVATE SCANNER CHANNEL 
          RJM    IPN         INSERT PPU NUMBER IN S/C REGISTER
          LDC    FCSB+ENSC   ENABLE SCANNER INTERFACE 
          RJM    SFC
          UJN    ASEX        RETURN 
          SPACE  4,10 
**        SFC  - SEND FUNCTION TO S/C REGISTER
* 
*         ENTRY  (A) = FUNCTION 
* 
*         EXIT   (A) = FUNCTION REPLY 
  
  
 SFC      SUBR               ENTRY/EXIT 
          OAN    SC+40B 
          IAN    SC+40B 
          UJN    SFCX        RETURN 
 IPN      SPACE  4,10 
**        IPN - INSERT FIRST LEVEL PPU NUMBER IN S/C REGISTER.
* 
*         ENTRY  (T3) = FLPP NUMBER.
* 
*         EXIT   (A) = 0. 
* 
*         USES   T1, T2.
  
  
 IPN1     LDD    T1          CHECK NEXT BIT 
          SHN    -1 
 IPN2     STD    T1 
          LPN    1
          ZJN    IPN3        IF BIT TO BE CLEARED 
          LDC    FCSB&FCCL
 IPN3     LMD    T2 
          OAN    SC+40
          IAN    SC+40
          AOD    T2          ADVANCE BIT NUMBER 
          LMC    FCCL+SCSL+4
          NJN    IPN1        IF NOT END OF BITS 
  
 IPN      SUBR               ENTRY/EXIT 
          LDC    FCCL+SCSL   PRESET FUNCTION AND BIT NUMBER 
          STD    T2 
          LDD    T3 
          UJN    IPN2        ENTER LOOP 
 PKI      SPACE  4,10                                                    DIMA255
**        PKI - PROCESS KEYBOARD INPUT.                                  DIMA255
*                                                                        DIMA255
*         PKI FUNCTIONS THE DISPLAY CONSOLE FOR KEYBOARD INPUT, AND      DIMA255
*         CHECKS THE INPUT FOR A VALID RESPONSE.  IF NO INPUT HAS        DIMA255
*         BEEN ENTERED, PKI RETURNS WITH (A) ZERO.  IF THE INPUT IS      DIMA255
*         NOT VALID, (A) IS ZERO AND AN ERROR MESSAGE HAS BEEN           DIMA255
*         ACTIVATED.  IF CARRIAGE RETURN IS SELECTED, (A) IS SET TO      DIMA255
*         A ONE.  IF LEFT BLANK KEY IS ENTERED, THE ERROR MESSAGE        DIMA255
*         IS CLEARED.                                                    DIMA255
*                                                                        DIMA255
*         EXIT   (A) = 0, NO INPUT OR INPUT ERROR.                       DIMA255
*                (A) = 1, CONTINUE WITH NON CEJ/MEJ USAGE                DIMA255
*                                                                        DIMA255
                                                                         DIMA255
                                                                         DIMA255
 PKI      SUBR               ENTRY/EXIT                                  DIMA255
          FNC    7020B,CH    SELECT KEYBOARD INPUT                       DIMA255
          ACN    CH                                                      DIMA255
          IAN    CH          READ KEYBOARD                               DIMA255
          DCN    CH                                                      DIMA255
          ZJN    PKIX        IF NO INPUT RETURN                          DIMA255
          SBN    60B                                                     DIMA255
          ZJN    PKIA        IF CARRIAGE RETURN                          DIMA255
          ADN    5                                                       DIMA255
          ZJN    PKIB        IF LEFT BLANK                               DIMA255
          LDC    DSBEL       SET MESSAGE LENGTH FOR ERROR                DIMA255
 PKIC     STM    DOAL                                                    DIMA255
          LDN    0                                                       DIMA255
          UJN    PKIX        RETURN                                      DIMA255
 PKIA     LDN    1                                                       DIMA255
          UJN    PKIX        RETURN AND CONTINUE NON CEJ/MEJ             DIMA255
 PKIB     LDC    DSBAL       SET MESSAGE LENGTH FOR NO ERROR             DIMA255
          UJN    PKIC                                                    DIMA255
          TITLE  CPU TEST PROGRAMS. 
**        CPU TEST PROGRAMS.
  
  
 CPOA     VFD    30/0400000000,30/0    CPU 0 STOP 
          VFD    30/0400000001,30/0    CPU 1 STOP 
  
  
*         EXCHANGE PACKAGE FOR CPU TYPE.
  
 CPOB     VFD    6/0,18/120,18/0,18/0 
 CPOC     VFD    6/0,18/0,18/0,18/1  (B1) = 1 TO CPU 1
          VFD    6/0,18/200,18/0,18/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
  
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    30/0200000000,30/0          JUMP IF 6400 
          VFD    60/0 
  
*         TEST PROGRAM FOR CPU TYPE.
  
 CPOD     VFD    30/5160000121,30/6100046000 STORE IN (P+1) 
          VFD    30/0200000001,30/0          EXECUTE IF 6600
  
  
*         EXCHANGE PACKAGES FOR CEJ/MEJ OPTION. 
  
 CXJA   VFD    6/0,18/170,18/0,18/0  (P) = PROGRAM 1
          VFD    60/0                                                    DIMA242
          VFD    6/0,18/200,18/0,18/0                                    DIMA242
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    6/0,18/120,18/0,18/0  (MA) = SECOND EXCHANGE PACKAGE 
          VFD    60/0 
  
 CXJB     VFD    6/0,18/172,18/0,18/0  (P) = PROGRAM 2
          VFD    60/0 
          VFD    6/0,18/200,18/0,18/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    6/0,18/100,18/0,18/0  (MA) = FIRST EXCHANGE PACKAGE
          VFD    60/0 
  
 CXJC     VFD    6/0,18/00,18/0,18/0   (P) = PROGRAM 3
          VFD    6/0,18/0,18/0,18/0 
          VFD    6/0,18/200,18/0,18/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
  
*         TEST PROGRAMS FOR CEJ/MEJ OPTION. 
  
 CXJD     VFD    30/0130000000,30/0  XJ TO (MA) 
          VFD    30/0400000071,30/0 
  
 CXJE     VFD    30/0130000140,30/0  XJ TO STOP PROGRAM 
 TCHS     SPACE  4
*         EXCHANGE PACKAGE FOR CMU OPTION TEST. 
  
 CCUA     VFD    6/0,18/60,18/0,18/0  (P) = CMU TEST PROGRAM
          VFD    6/0,18/100,18/0,18/0 
          VFD    6/0,18/100,18/0,18/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    6/0,18/120,18/0,18/0  (MA) = SECOND EXCHANGE PACKAGE 
          VFD    60/0 
*         TEST PROGRAM FOR CMU OPTION.
  
 CCUB     VFD    9/465,3/0,18/63,4/2,26/64  *DM* INSTRUCTION
          VFD    30/0130000000,30/0 
          VFD    30/0400000061,30/0 
          VFD    24/77777777,36/0  CHARACTERS TO MOVE 
          VFD    60/0        LOCATION TO PLACE CHARACTERS 
 BUF      SPACE  4,10 
**        BUF - LOW CORE BUFFER.
  
  
 BUF      EQU    *
 BUFL     EQU    101*5
  
          ERRNG  /CTI/IPLB-BUF-BUFL 
  
          END 
