*DECK OIP 
          IDENT  OIP,/CTI/LOAD
          PERIPH
          BASE   MIXED
          SST 
*CALL,VERS
          TITLE  OIP         CTI OPER. INTERVENTION PROCESSOR - "VERS"
          COMMENT CTI OPER. INTERVENTION PROCESSOR - "VERS" 
          COMMENT COPYRIGHT CONTROL DATA CORPORATION, 1979
*CALL,CDCCRN
 OIP      SPACE  4,10 
*****     OIP - OPERATOR INTERVENTION PROCESSOR - CTI.
* 
*         J. F. RIAN         78/06/09.
* 
*         OIP PROVIDES FOR OPERATOR INTERVENTION TO 
*             1. CHANGE DEADSTART PANEL PARAMETERS
*             2. CHANGE HARDWARE DESCRIPTOR TABLE ENTRIES 
*             3. EXECUTE THE DEADSTART DIAGNOSTIC SEQUENCER 
          SPACE  4,10 
***       IOQ CALLS OIP TO PROCESS THE *A* DISPLAY *I* OPTION.
          SPACE  4,10 
***       *B* DISPLAY.
* 
*         OIP INITIALLY DISPLAYS THE *B* DISPLAY AS FOLLOWS - 
*                                                                 SCREEN
****************************************************************** LINE 
*                             *B*                                *  01
*                                                                *  02
*               (CR) - ENTER OS LOAD AUTOMATIC                   *  03
*               (BS) - RETURN TO *A* DISPLAY                     *  04
*                                                                *  05
*                 D  - DEADSTART DIAGNOSTIC SEQ.                 *  06
*                 H  - HARDWARE RECONFIGURATION                  *  07
*                 P  - DEADSTART PANEL PARAMS                    *  08
*                                                                *   .
*                                                                *   .
*                                                                *   .
*               ERROR MESSAGE                                    *  23
*                                                                *  24
******************************************************************
* 
* 
*         IF THE OPERATOR RESPONDS WITH (CR) TO THE OIP *B* DISPLAY,
*         OIP CALLS MAD TO DO OS AUTOMATIC LOAD PROCESSING. 
* 
*         IF THE OPERATOR RESPONDS WITH (BS) TO THE OIP *B* DISPLAY,
*         OIP RETURNS TO IOQ, WHICH DISPLAYS THE *A* DISPLAY. 
* 
*         IF THE OPERATOR RESPONDS WITH *D* TO THE OIP *B* DISPLAY, 
*         OIP CALLS MAD TO INITIATE THE DEADSTART DIAGNOSTIC
*         SEQUENCER.
* 
* 
*         IF THE OPERATOR RESPONDS WITH *H* TO THE OIP *B* DISPLAY, 
*         OIP PROCESSES AS FOLLOWS -
* 
*             1. DISPLAYS THE *H* DISPLAY AND ACCEPTS KEYBOARD ENTRY OF 
*                HARDWARE RECONFIGURATION STATEMENTS. 
* 
*             2. IF STATEMENT INPUT IS ENDED VIA A SINGLE (CR), 
*                CALLS MAD TO DO OS AUTOMATIC LOAD PROCESSING.
* 
*             3. IF STATEMENT INPUT IS ENDED VIA A SINGLE (BS), 
*                RETURNS TO THE *B* DISPLAY.
* 
* 
*         IF THE OPERATOR RESPONDS WITH *P* TO THE OIP *B* DISPLAY, 
*         OIP PROCESSES AS FOLLOWS -
* 
*             1. DISPLAYS THE P-DISPLAY AND ACCEPTS KEYBOARD ENTRY OF 
*                DEADSTART PANEL CHANGE STATEMENTS. 
* 
*             2. IF STATEMENT INPUT IS ENDED VIA A SINGLE (CR), 
*                CALLS MAD TO DO OS AUTOMATIC LOAD PROCESSING.
* 
*             3. IF STATEMENT INPUT IS ENDED VIA A SINGLE (BS), 
*                RETURNS TO THE *B* DISPLAY.
* 
          SPACE  4,10 
***       *H* DISPLAY.
* 
*         THE *H* DISPLAY IS AS FOLLOWS - 
*                                                                 SCREEN
****************************************************************** LINE 
*                             *H*                                *  01
*                                                                *  02
*               (CR) - ENTER OS LOAD AUTOMATIC                   *  03
*               (BS) - RETURN TO *B* DISPLAY                     *  04
*                                                                *  05
*               CM = NNNNNN.      CEJ/MEJ = ON                   *  06
*                                     CMU = ON                   *  07
*                                                                *  08
*                         OFF ELEMENTS                           *  09
*                 CPU1    PP20    PP21    PP22                   *  10
*                 PP23    PP24    PP25    PP26                   *  11
*                 PP27    PP30    PP31    PPU1                   *  12
*                 PPU2    ....    ....    ....                   *  13
*                                                                *   .
*                                                                *   .
*                                                                *   .
*               ERROR MESSAGE                                    *  23
*               KEYBOARD BUFFER                                  *  24
******************************************************************
          SPACE  4,10 
***       HARDWARE RECONFIGURATION STATEMENTS.
* 
*         THE HARDWARE RECONFIGURATION STATEMENTS ARE OF THE FOLLOWING
*         FORM -
* 
*                KEYWORD=PARAMETER
* 
*         OIP RECOGNIZES THE FOLLOWING STATEMENTS - 
* 
*         KEYWORD    PARAMETER     FUNCTION 
* 
*         CM=        NNNNNN        DECLARES THE SIZE OF CENTRAL MEMORY
*                                  IN HUNDREDS OF WORDS. VALUE IS OCTAL.
*                                  THUS FOR - 
*                                     32K, NNNNNN = 1000
*                                     49K, NNNNNN = 1400
*                                     65K, NNNNNN = 2000
*                                     98K, NNNNNN = 3000
*                                    131K, NNNNNN = 4000
*                                    198K, NNNNNN = 6000
*                                    262K, NNNNNN = 10000 
* 
*         CPUN=      OFF/ON        DECLARES THE LOGICAL STATUS OF EACH
*                                  AVAILABLE CPU. VALID VALUES FOR N
*                                  ARE 0 AND 1. 
* 
*         PPN=       OFF/ON        DECLARES THE LOGICAL STATUS OF ONE 
*         PPN-M=     OFF/ON        OR MORE PERIPHERAL PROCESSORS. 
*                                  VALID VALUES FOR N AND M ARE ANY 
*                                  OCTAL NUMBERS FROM 3 THRU 31,
*                                  EXCLUDING 10 AND 12 THRU 17. 
* 
*         PPUN=      OFF/ON        DECLARES THE LOGICAL STATUS OF THE 
*         PPUN-M=    OFF/ON        INDICATED PHYSICAL FIRST LEVEL 
*                                  PERIPHERAL PROCESSOR (PPU). VALID
*                                  VALUES FOR N AND M ARE ANY OCTAL 
*                                  NUMBERS FROM 1 THRU 15.
* 
*         CEJ/MEJ=   OFF/ON        DECLARES THE LOGICAL STATUS OF 
*                                  CEJ/MEJ. IF THE STATUS IS *ON*,
*                                  CEJ/MEJ WILL BE USED IF PRESENT. 
* 
*         CMU=       OFF/ON        DECLARES THE LOGICAL STATUS OF THE 
*                                  CMU HARDWARE. IF THE STATUS IS 
*                                  *ON*, CMU WILL BE USED IF PRESENT. 
          SPACE  4,10 
***       *P* DISPLAY.
* 
*         THE *P* DISPLAY IS AS FOLLOWS - 
*                                                                 SCREEN
****************************************************************** LINE 
*                             *P*                                *  01
*                                                                *  02
*               (CR) - ENTER OS LOAD AUTOMATIC                   *  03
*               (BS) - RETURN TO *B* DISPLAY                     *  04
*                                                                *  05
*                  I = X    - INIT/RECOVERY LVL                  *  06
*                  C = XX   - CMRDECK NUMBER                     *  07
*                W12 = XXXX - D/S PANEL WORD 12                  *  08
*                W14 = XXXX - D/S PANEL WORD 14                  *  09
*                                                                *  10
*                                                                *   .
*                                                                *   .
*                                                                *   .
*               ERROR MESSAGE                                    *  23
*               KEYBOARD BUFFER                                  *  24
******************************************************************
          EJECT 
*CALL COMPMAC 
*CALL COMSCPA 
*CALL COMSCTI 
          SPACE  4,10 
**        INSTRUCTIONS USED AS CONSTANTS. 
  
  
 SHNI     EQU    1000        SHN
          SPACE  4,10 
**        DISPLAY DEFINITIONS.
  
  
 CH       EQU    10          DISPLAY CHANNEL
 DSFC     EQU    7001        SELECT LEFT SCREEN, 32 CHARACTERS/LINE 
  
          BASE   D
 XCIN     EQU    20B         X-COORDINATE INCREMENT 
 XC01     EQU    6000B       CHAR 01 X-COORDINATE 
 XC02     EQU    XC01+XCIN*1
 XC03     EQU    XC01+XCIN*2
 XC04     EQU    XC01+XCIN*3
 XC05     EQU    XC01+XCIN*4
 XC06     EQU    XC01+XCIN*5
 XC07     EQU    XC01+XCIN*6
 XC08     EQU    XC01+XCIN*7
 XC09     EQU    XC01+XCIN*8
 XC10     EQU    XC01+XCIN*9
 XC11     EQU    XC01+XCIN*10 
 XC12     EQU    XC01+XCIN*11 
 XC13     EQU    XC01+XCIN*12 
 XC14     EQU    XC01+XCIN*13 
 XC15     EQU    XC01+XCIN*14 
 XC16     EQU    XC01+XCIN*15 
 XC17     EQU    XC01+XCIN*16 
 XC18     EQU    XC01+XCIN*17 
 XC19     EQU    XC01+XCIN*18 
 XC20     EQU    XC01+XCIN*19 
 XC21     EQU    XC01+XCIN*20 
 XC22     EQU    XC01+XCIN*21 
 XC23     EQU    XC01+XCIN*22 
 XC24     EQU    XC01+XCIN*23 
 XC25     EQU    XC01+XCIN*24 
 XC26     EQU    XC01+XCIN*25 
 XC27     EQU    XC01+XCIN*26 
 XC28     EQU    XC01+XCIN*27 
 XC29     EQU    XC01+XCIN*28 
 XC30     EQU    XC01+XCIN*29 
 XC31     EQU    XC01+XCIN*30 
 XC32     EQU    XC01+XCIN*31 
  
 YCIN     EQU    24B         Y-COORDINATE INCREMENT 
 YC01     EQU    7730B             LINE 01 Y-COORDINATE 
 YC02     EQU    YC01-YCIN*1       LINE 02 Y-COORDINATE 
 YC03     EQU    YC01-YCIN*2
 YC04     EQU    YC01-YCIN*3
 YC05     EQU    YC01-YCIN*4
 YC06     EQU    YC01-YCIN*5
 YC07     EQU    YC01-YCIN*6
 YC08     EQU    YC01-YCIN*7
 YC09     EQU    YC01-YCIN*8
 YC10     EQU    YC01-YCIN*9
 YC11     EQU    YC01-YCIN*10 
 YC12     EQU    YC01-YCIN*11 
 YC13     EQU    YC01-YCIN*12 
 YC14     EQU    YC01-YCIN*13 
 YC15     EQU    YC01-YCIN*14 
 YC16     EQU    YC01-YCIN*15 
 YC17     EQU    YC01-YCIN*16 
 YC18     EQU    YC01-YCIN*17 
 YC19     EQU    YC01-YCIN*18 
 YC20     EQU    YC01-YCIN*19 
 YC21     EQU    YC01-YCIN*20 
 YC22     EQU    YC01-YCIN*21 
 YC23     EQU    YC01-YCIN*22 
 YC24     EQU    YC01-YCIN*23      LINE 24 Y-COORDINATE 
  
 YCER     EQU    YC23              KEYBOARD ERROR MESSAGE LINE
 YCKB     EQU    YC24              KEYBOARD BUFFER DISPLAY
  
          BASE   *
          SPACE  4,10 
**        DIRECT LOCATION ASSIGNMENTS 
  
  
 T0       EQU    0           TEMPORARIES
 T1       EQU    1
 T2       EQU    2
 T3       EQU    3
 T4       EQU    4
 T5       EQU    5
 T6       EQU    6
 T7       EQU    7
  
 AB       EQU    10 - 14     ASSEMBLY BUFFER
 KI       EQU    15          KEYBOARD INDEX 
 KM       EQU    16          KEYBOARD MESSAGE 
 KA       EQU    17          KEYBOARD CHARACTER ADDRESS 
          SPACE  4,10 
          TITLE  MAIN CONTROL.
 OIP      SPACE  4,10 
**        OIP - OPERATOR INTERVENTION PROCESSOR.
* 
*         ENTRY  PP10 ON CHANNEL 10.
* 
*         EXIT   PP10 ON CHANNEL 0. 
*                TO *OID*.
* 
*         USES   NONE.
* 
*         CALLS  NONE.
  
  
          ORG    /CTI/TRAN
  
  
 OIP      BSS    0
          ACN    0           MOVE DISPLAY PP TO CHANNEL 0 
          LDN    3
          OAM    OIPA,CH
          DCN    CH+40
          LJM    OID
  
 OIPA     CON    0
          LCN    0
          IAM    0,0
 OID      SPACE  4,20 
**        OID - OPERATOR INTERVENTION DISPLAY.
* 
*         ENTRY  NONE.
* 
*         EXIT   TO *OSL* IF (CR).
*                TO *IOQ* IF (BS).
*                TO *DDS* IF *D*. 
*                TO *HRC* IF *H*. 
*                TO *PAN* IF *P*. 
* 
*         USES   NONE.
* 
*         CALLS  CKB, DSB, KBI. 
  
  
 OID      RJM    CKB         CLEAR KEYBOARD BUFFER
 OID1     RJM    DSB         *O* DISPLAY
          RJM    DRD         DISPLAY REFRESH DELAY
          RJM    KBI         READ KEYBOARD
          NJN    OID5        IF (CR) OR (BS)
          LDM    KBUF 
          ZJN    OID1        IF NO DATA 
          LMN    1RD
          NJN    OID2        IF NOT *D* 
          LJM    DDS
  
 OID2     LMN    1RH&1RD
          NJN    OID3        IF NOT *H* 
          LJM    HRC
  
 OID3     LMN    1RP&1RH
          NJN    OID4        IF NOT *P* 
          LJM    PAN
  
 OID4     LDC    =C*INVALID OPTION* 
          STD    KM 
          UJN    OID1 
  
 OID5     LMN    1
          ZJN    OID4        IF END OF STATEMENT (CR) 
          LMN    2&1
          NJN    OID6        IF NOT (CR)
          LJM    OSL
 OID6     LJM    IOQ
 OSL      SPACE  4,10 
**        OSL - OS LOAD AUTOMATIC.
* 
*         ENTRY  NONE.
* 
*         EXIT   TO *MAD*.
* 
*         USES   NONE.
* 
*         CALLS  CDEP.
  
  
 OSL      RJM    CDS         CLEAR DISPLAY
          LDC    OSLA        CALL *MAD* 
          LJM    /CTI/CDEP
  
 OSLA     CON    /CTI/LOAD   CDIB 
          CON    /CTI/TRAN   CDTA 
          CON    0           CDRW 
          DATA   L*MAD*      CDNC 
 DDS      SPACE  4,10 
**        DDS - PREPARE FOR DEADSTART DIAGNOSTIC SEQUENCER. 
* 
*         ENTRY  NONE.
* 
*         EXIT   TO *OSL*.
* 
*         USES   NONE.
* 
*         CALLS  NONE.
  
  
 DDS      LDN    1           INDICATE DEADSTART DIAGNOSTIC SEQUENCER
          STM    /CTI/EBLP
          UJN    OSL         CALL *MAD* 
 IOQ      SPACE  4,10 
**        IOQ - RETURN TO *IOQ*.
* 
*         ENTRY  NONE.
* 
*         EXIT   TO *IOQ*.
* 
*         USES   NONE.
* 
*         CALLS  CDEP.
  
  
 IOQ      RJM    CDS         CLEAR DISPLAY
          LDC    IOQA        CALL *IOQ* 
          LJM    /CTI/CDEP
  
 IOQA     CON    /CTI/IOQB   CDIB 
          CON    /CTI/IOQALT CDTA 
          CON    1           CDRW 
          DATA   L*IOQ*      CDNC 
 HRC      SPACE  4,10 
**        HRC - HARDWARE RECONFIGURATION. 
* 
*         ENTRY  NONE.
* 
*         EXIT   TO *OSL* IF SINGLE (CR). 
*                TO *OID* IF SINGLE (BS). 
* 
*         USES   NONE.
* 
*         CALLS  CKB, DSH, KBI, XLS.
  
  
 HRC      RJM    CKB         CLEAR KEYBOARD BUFFER
 HRC1     RJM    DSH         DISPLAY H-DISPLAY
          RJM    DRD         DISPLAY REFRESH DELAY
          RJM    KBI         READ KEYBOARD
          ZJN    HRC1        IF STATEMENT INCOMPLETE
          LMN    1
          NJN    HRC2        IF NOT CONTROL STATEMENT 
          LDC    HSYN        TRANSLATE STATEMENT
          RJM    XLS
          UJN    HRC1 
  
 HRC2     LMN    2&1
          NJN    HRC3        IF NOT END OF INFORMATION (SINGLE CR)
          LJM    OSL
 HRC3     LJM    OID         GO TO B-DISPLAY (SINGLE BS)
  
**        HSYN - HARDWARE ATTRIBUTES SYNTAX TABLE 
  
 HSYN     CON    CMZ         CM 
          CON    CPX         CPUN 
          CON    PUN         PPUN 
          CON    PPX         PPN
          CON    CEJ         CEJ/MEJ
          CON    CMU         CMU
          CON    0           END OF TABLE 
 PAN      SPACE  4,10 
**        PAN - CHANGE DEADSTART PANEL PARAMETERS.
* 
*         ENTRY  NONE.
* 
*         EXIT   TO *OSL* IF SINGLE (CR). 
*                TO *OID* IF SINGLE (BS). 
* 
*         USES   NONE 
* 
*         CALLS  DSP, KBI, XLS. 
  
  
 PAN      RJM    CKB         CLEAR KEYBOARD BUFFER
 PAN1     RJM    DSP         DISPLAY P-DISPLAY
          RJM    DRD         DISPLAY REFRESH DELAY
          RJM    KBI         READ KEYBOARD
          ZJN    PAN1        IF STATEMENT INCOMPLETE
          LMN    1
          NJN    PAN2        IF NOT CONTROL STATEMENT 
          LDC    PSYN        TRANSLATE STATEMENT
          RJM    XLS
          UJN    PAN1 
  
 PAN2     LMN    2&1
          NJN    PAN3        IF NOT END OF INFORMATION (SINGLE CR)
          LJM    OSL
 PAN3     LJM    OID         GO TO B-DISPLAY (SINGLE BS)
  
*         PSYN - DEADSTART PANEL SYNTAX TABLE.
  
 PSYN     CON    REC         I=X. 
          CON    DEK         C=XX.
          CON    CMR         D = X.                                      DIMA244
          CON    W12         W12=XXXX.
          CON    W14         W14=XXXX.
          CON    0           END OF TABLE 
 DRD      SPACE  4,10 
**        DRD - DISPLAY REFRESH DELAY 
* 
*         ENTRY  NONE 
* 
*         EXIT   NONE 
 DRD      SUBR
          LDC    10000
          SBN    1
          NJN    *-1
          UJN    DRDX 
          TITLE  STATEMENT PROCESSORS.
 XLS      SPACE  4,15 
**        XLS - TRANSLATE STATEMENT.
* 
*         ENTRY  (A) = SYNTAX TABLE ADDRESS.
*                (KI) = KEYBOARD INDEX. 
*                (KBUF) = STATEMENT.
* 
*         EXIT   (KM) = ZERO IF NO ERROR. 
*                (KM) = ADDR OF ERROR MESSAGE, IF ERROR.
*                (KI) = ZERO IF NO ERROR. 
*                (KI) = INDEX TO END OF STATEMENT, IF ERROR.
* 
*         USES   T3.
* 
*         CALLS  CKB, CPS.
  
  
**        ILL - INVALID ENTRY RETURN FROM STATEMENT PROCESSOR.
  
 ILL      LDC    =C*INVALID ENTRY*
          STD    KM 
          UJN    XLSX 
  
**        KBR - NORMAL RETURN FROM STATEMENT PROCESSOR. 
  
 KBR      RJM    CKB         CLEAR KEYBOARD BUFFER
  
 XLS      SUBR               ENTRY/EXIT 
          STD    T3          SYNTAX TABLE ADDRESS 
          LDC    KBUF        KEYBOARD BUFFER ADDRESS
          STD    KA 
          LDD    T3 
          RJM    CPS         COMPARE KEYBOARD BUFFER VS SYNTAX TABLE
          ZJN    ILL         IF NO MATCH
          LJM    1,T3        GO TO STATEMENT PROCESSOR
 CMZ      SPACE  4,10 
**        CM=XXXXXX.
*         SET CENTRAL MEMORY SIZE = XXXXXX/100B WORDS.
  
  
 CMZ      DATA   C*CM=* 
          LDC    CMZA        DETERMINE MEMORY SIZE
          RJM    DMS
          SHN    3
          STD    T7 
          SHN    -14
          STD    T6 
          RJM    ASD         SPECIFIED SIZE 
          STD    T5 
          SHN    -14
          STD    T4 
          LDD    T6          VERIFY ACTUAL .GE. SPECIFIED SIZE
          SBD    T4 
          NJN    CMZ1        IF UPPER BITS UNLIKE 
          LDD    T7 
          SBD    T5 
 CMZ1     PJN    CMZ2        IF ACTUAL .GE. SPECIFIED SIZE
          LDC    =C*UNAVAILABLE*
          STD    KM 
          LJM    XLSX 
  
 CMZ2     LDD    T4          CHECK MINIMUM VALUE FOR CM 
          NJN    CMZ4        IF SPECIFIED .GT. MIN
          LDD    T5 
          ZJN    CMZ3        IF CM = 0
          SBN    20 
          PJN    CMZ3        IF SPECIFIED .GE. MIN
          LJM    ILL
  
 CMZ3     LDD    T4 
 CMZ4     STM    /CPA/CMSZ
          LDD    T5 
          STM    /CPA/CMSZ+1
          LJM    KBR
  
 RCM$     EQU    0           RESTORE CM TEST WORDS
*CALL     COMPDMS 
  
 CMZA     BSS    /COMPDMS/NMS*5 
 CPX      SPACE  4,10 
**        CPUX=ON/OFF.
*         DECLARES LOGICAL STATUS OF EACH AVAILABLE CPU.
  
  
 CPX      DATA   C*CPU* 
          LDI    KA          CHECK CHARACTER                             DIMA257
          SBN    33B                                                     DIMA257
          STD    AB+4                                                    DIMA257
          ZJN    CPX4        IF ZERO                                     DIMA257
          SBN    1                                                       DIMA257
          NJN    CPX1        IF NOT ONE                                  DIMA257
 CPX4     AOD    KA          ADVANCE CHARACTER                           DIMA257
          RJM    NFF         CHECK FOR *=ON* OR *=OFF*
          PJN    CPX2        IF LEGAL 
 CPX1     LJM    ILL
  
 CPX2     STD    T1          SAVE BIT VALUE 
          LDM    /CPA/OPTN   SAVE CPU STATUS
          STD    T7 
          LDC    /CPA/OPTN   STORE BIT FOR ON/OFF CPU 
          RJM    STB
          LDM    /CPA/OPTN
          LPN    3
          LMN    3
          ZJN    CPX3        IF BOTH CPU-S OFF
          LJM    KBR
  
  
 CPX3     LDD    T7          RESTORE CPU STATUS 
          STM    /CPA/OPTN
          LJM    ILL
 PPX      SPACE  4,10 
**        PPXX=ON/OFF.
*         SETS THE LOGICAL STATUS OF THE SPECIFIED PP.
  
  
 PPX      DATA   C*PP*
          RJM    RNG         GET *XX=ON/OFF* OR *XX-YY=ON/OFF*
          LDD    T7          CHECK RANGE LIMITS 
          SBN    12 
          MJN    PPX3        IF NOT INVALID 
          SBN    20-12
          PJN    PPX2        IF NOT INVALID 
 PPX1     LJM    ILL
  
 PPX2     SBN    32-20
          PJN    PPX1        IF INVALID 
          LDD    T6 
          SBN    20 
          MJN    PPX1        IF INVALID 
          SBN    32-20
          PJN    PPX1        IF INVALID 
          UJN    PPX4 
  
 PPX3     LDD    T6 
          SBN    3
          MJN    PPX1        IF INVALID 
          SBN    5
          ZJN    PPX1        IF INVALID 
          LDD    T7 
          SBN    10 
          ZJN    PPX1        IF INVALID 
 PPX4     LDD    T6 
          STD    AB+4 
          SBN    10 
          ZJN    PPX7 
          SBN    10 
          MJN    PPX5        IF 1ST CHASSIS PP
          STD    AB+4 
          LDC    /CPA/LPP1
          UJN    PPX6 
  
 PPX5     LDC    /CPA/LPP0
 PPX6     RJM    STB         STORE BIT FOR ON/OFF PP
 PPX7     AOD    T6 
          SBD    T7 
          MJN    PPX4        IF NOT DONE
          ZJN    PPX4        IF NOT DONE
          LJM    KBR
 PUN      SPACE  4,10 
**        PPUXX=ON/OFF. 
*         SETS THE LOGICAL STATUS OF THE SPECIFIED PPU. 
  
  
 PUN      DATA   C*PPU* 
          RJM    RNG         GET *XX=ON/OFF OR *XX-YY=ON/OFF* 
          LDD    T6          CHECK LIMITS 
          SBN    2
          PJN    PUN2        IF LOWER LIMIT VALID 
 PUN1     LJM    ILL
  
 PUN2     LDD    T7 
          SBN    16 
          PJN    PUN1        IF UPPER LIMIT INVALID 
 PUN3     LDD    T6 
          SBN    1
          STD    AB+4 
          SBN    14 
          MJN    PUN4        IF BIT IS IN *LPPU+1*
          STD    AB+4 
          LDC    /CPA/LPPU
          UJN    PUN5 
  
 PUN4     LDC    /CPA/LPPU+1
 PUN5     RJM    STB         STORE BIT FOR ON/OFF PPU 
          AOD    T6 
          SBD    T7 
          MJN    PUN3        IF NOT DONE
          ZJN    PUN3        IF NOT DONE
          LJM    KBR
 CEJ      SPACE  4,10 
**        CEJ/MEJ=ON/OFF. 
*         SETS LOGICAL STATUS OF CEJ/MEJ. 
  
  
 CEJ      DATA   C*CEJ/MEJ* 
          RJM    NFF         CHECK FOR *=ON* OR *=OFF*
          PJN    CEJ1        IF LEGAL 
          LJM    ILL
  
 CEJ1     STD    T1          SAVE BIT VALUE 
          LDN    2           SET BIT NUMBER TO STORE
          STD    AB+4 
          LDC    /CPA/OPTN   STORE BIT FOR ON/OFF CEJ/MEJ 
          RJM    STB
          LJM    KBR
 CMU      SPACE  4,10 
**        CMU=ON/OFF
*         SETS LOGICAL STATUS OF CMU. 
  
  
 CMU      DATA   C*CMU* 
          RJM    NFF         CHECK FOR *=ON* OR *=OFF*
          PJN    CMU1        IF LEGAL 
          LJM    ILL
  
 CMU1     STD    T1          SAVE BIT VALUE 
          LDN    3           SET BIT NUMBER TO STORE
          STD    AB+4 
          LDC    /CPA/OPTN   STORE BIT FOR ON/OFF CMU 
          RJM    STB
          LJM    KBR
 REC      SPACE  4,10 
**        I=X.
*         SET INITIALIZATION/RECOVERY LEVEL.
  
  
 REC      DATA   C*I=*
          RJM    ASD         ASSEMBLE DIGITS
          SBN    10 
          MJN    REC1        IF LEGAL 
          LJM    ILL
  
 REC1     LDM    /CPA/DSPNLZ+13  CHANGE DEAD START PANEL
          SHN    9D 
          SCN    7
          LMD    AB+4 
          SHN    9D 
          STM    /CPA/DSPNLZ+13 
          LJM    KBR
 DEK      SPACE  4,10 
**        C=XX. 
*         SET CMR DECK NUMBER.
  
  
 DEK      DATA   C*C=*
          RJM    ASD         ASSEMBLE DIGITS
          ADC    -100 
          MJN    DEK1        IF LEGAL 
          LJM    ILL
  
 DEK1     LDM    /CPA/DSPNLZ+13 
          SCN    77 
          LMD    AB+4 
          STM    /CPA/DSPNLZ+13 
          LJM    KBR
 CMR      SPACE  4,10                                                    DIMA244
**        D=X.                                                           DIMA244
*         SET DISPLAY CMRDECK PARAMETER                                  DIMA244
                                                                         DIMA244
 CMR      DATA   C*D=*                                                   DIMA244
          LDI    KA                                                      DIMA244
          SBN    1RN                                                     DIMA244
          ZJN    CMR2        IF  D=N                                     DIMA244
          SBN    1RY-1RN                                                 DIMA244
          ZJN    CMR1        IF  D=Y                                     DIMA244
          LJM    ILL                                                     DIMA244
                                                                         DIMA244
 CMR1     LDN    1                                                       DIMA244
 CMR2     STD    T1                                                      DIMA244
          LDN    6                                                       DIMA244
          STD    AB+4                                                    DIMA244
          LDC    /CPA/DSPNLZ+13                                          DIMA244
          RJM    STB         SET BIT VALUE                               DIMA244
          LJM    KBR                                                     DIMA244
 W12      SPACE  4,10 
**        W12=XXXX. 
*         SET DEADSTART PANEL WORD 12.
  
  
 W12      DATA   C*W12=*
          RJM    ASD         ASSEMBLE DIGITS
          ADC    -10000B
          MJN    W12A 
          LJM    ILL
 W12A     LDD    AB+4 
          STM    /CPA/DSPNLZ+12 
          LJM    KBR
 W14      SPACE  4,10 
**        W14=XXXX. 
*         SET DEADSTART PANEL WORD 14.
  
  
 W14      DATA   C*W14=*
          RJM    ASD         ASSEMBLE DIGITS
          ADC    -10000B
          MJN    W14A 
          LJM    ILL
 W14A     LDD    AB+4 
          STM    /CPA/DSPNLZ+14 
          LJM    KBR
 STB      SPACE  4,15 
**        STB - STORE BIT IN HARDWARE DESCRIPTOR TABLE. 
* 
*         ENTRY  (A) = ADDRESS OF HDT WORD. 
*                (T1) = BIT VALUE.
*                (AB+4) = BIT OFFSET IN HDT WORD. 
* 
*         EXIT   NONE.
* 
*         USES   T2, T3.
* 
*         CALLS  NONE.
  
  
 STB      SUBR               ENTRY/EXIT 
          STD    T2 
          LDD    AB+4        BIT NUMBER 
          LPN    17 
          ADC    SHNI 
          STM    STBA 
          STM    STBB 
          LDN    1           BUILD EXTRACTION MASK
 STBA     SHN    0
          LMC    7777 
          STM    STBC 
          LDD    T1          VALUE OF BIT TO STORE
          LPN    1
 STBB     SHN    0
          STD    T3 
          LDI    T2          EXTRACT ALL EXCEPT BIT TO STORE
          LPC    0
 STBC     EQU    *-1
          LMD    T3          INSERT BIT 
          STI    T2 
          UJN    STBX        RETURN 
 ASD      SPACE  4,15 
**        ASD - ASSEMBLE DIGITS.
* 
*         ENTRY  (KA) = ADDRESS OF CHARACTER STRING.
* 
*         EXIT   (A) = LOWER ASSEMBLY (16 BITS).
*                (AB - AB+4) = ASSEMBLED DIGITS.
*                TO *ILL* IF NO (CR). 
* 
*         USES   NONE.
* 
*         CALLS  CDR. 
  
  
 ASD1     LDD    AB+3        RETURN WITH LOWER ASSEMBLY 
          LPN    37 
          SHN    14 
          LMD    AB+4 
  
 ASD      SUBR               ENTRY/EXIT 
          RJM    CDR         CONVERT DIGITS RIGHT ADJUSTED
          ZJN    ASD1        IF (CR)
          LMN    1R.
          ZJN    ASD1        IF *.* 
          LJM    ILL         INVALID ENTRY
 CDR      SPACE  4,15 
**        CDR - CONVERT DIGITS RIGHT ADJUSTED.
* 
*         ENTRY  (KA) = ADDRESS OF CHARACTER STRING.
* 
*         EXIT   (A) = SEPARATOR CHARACTER. 
*                (AB - AB+4) = ASSEMBLY.
* 
*         USES   T1, T2.
* 
*         CALLS  NONE.
  
 CDR4     SBN    1R -1R8
          ZJN    CDR3        IF SPACE 
 CDR5     LDI    KA          RETURN WITH CHARACTER
  
 CDR      SUBR               ENTRY/EXIT 
          LDN    0           CLEAR ASSEMBLY AREA
          STD    AB 
          STD    AB+1 
          STD    AB+2 
          STD    AB+3 
          STD    AB+4 
 CDR1     LDI    KA          CHECK CHARACTER
          SBN    1R0
          MJN    CDR5        IF ALPHA 
          SBN    1R8-1R0
          PJN    CDR4        IF NOT OCTAL DIGIT 
          ADN    10          STORE DIGIT
          STD    T1 
          LDN    AB+4        SET BYTE ADDRESS 
          STD    T2 
 CDR2     LDI    T2          LOAD BYTE
          SHN    3
          LMD    T1          ADD NEW DIGIT
          STI    T2          STORE
          SHN    -14         SAVE OVERFLOW
          STD    T1 
          SOD    T2          ADVANCE BYTE ADDRESS 
          LMN    AB-1 
          NJN    CDR2        LOOP 
 CDR3     AOD    KA          ADVANCE CHARACTER
          UJN    CDR1        LOOP 
 CPS      SPACE  4,15 
**        CPS - COMPARE STRING. 
* 
*         ENTRY  (A) = SYNTAX TABLE ADDRESS.
*                (KA) = CHARACTER ADDRESS IN KEYBOARD BUFFER. 
* 
*         EXIT   (A) = SYNTAX TABLE ORDINAL IF MATCH. 
*                      0 IF NO MATCH. 
*                (KA) = LWA+1 OF KEYBOARD STRING, IF MATCH. 
*                (T3) = LWA+1 OF SYNTAX STRING. 
* 
*         USES   T1, T2, T3, T4.
* 
*         CALLS  NONE.
  
  
 CPS      SUBR               ENTRY/EXIT 
          SBN    1           SET CURRENT POSITION IN SYNTAX TABLE 
          STD    T1 
          STD    T2          SET 1ST POSITION - 1 IN SYNTAX TABLE 
 CPS1     AOD    T1          TRY NEXT SYNTAX TABLE ENTRY
          LDI    T1 
          ZJN    CPSX        IF END OF TABLE, RETURN (A) = 0
          STD    T3          ADDR OF SYNTAX TABLE STRING
          LDD    KA          ADDR OF KEYBOARD BUFFER STRING 
          STD    T4 
 CPS2     LDI    T3          COMPARE UPPER
          SHN    -6 
          ZJN    CPS3        IF COMPARE COMPLETE
          LMI    T4 
          NJN    CPS1        IF NO MATCH
          AOD    T4 
          LDI    T3 
          LPN    77 
          ZJN    CPS3        IF COMPARE COMPLETE
          LMI    T4 
          NJN    CPS1        IF NO MATCH
          AOD    T4 
          AOD    T3 
          UJN    CPS2 
  
 CPS3     LDD    T4          ADVANCE KEYBOARD BUFFER POINTER
          STD    KA 
          LDD    T1          COMPUTE SYNTAX TABLE ORDINAL 
          SBD    T2 
          UJN    CPSX        RETURN 
 RNG      SPACE  4,15 
**        RNG - GET RANGE VALUES. 
*                HANDLES *N* AND *N-M* FOR PPN, PPN-M,
*                PPUN, AND PPUN-M STATEMENTS. 
* 
*         ENTRY  (KA) = KEYBOARD BUFFER POINTER.
* 
*         EXIT   (T1) = 1 IF *OFF*. 
*                     = 0 IF *ON*.
*                (T6) = LOWER LIMIT.
*                (T7) = UPPER LIMIT.
*                TO *ILL* IF ERROR. 
* 
*         USES   NONE.
* 
*         CALLS  CDR, NFF.
  
  
 RNG      SUBR               ENTRY/EXIT 
          RJM    CDR         ASSEMBLE DIGITS
          LDD    AB+4 
          STD    T6          LOWER LIMIT
          STD    T7          UPPER LIMIT
          LDI    KA 
          LMN    1R-
          NJN    RNG1        IF NOT EXPRESSED AS RANGE OF VALUES
          AOD    KA          BYPASS *-* 
          RJM    CDR         ASSEMBLE DIGITS
          LDD    AB+4 
          STD    T7          UPPER LIMIT
 RNG1     RJM    NFF         CHECK FOR *=ON* OR *=OFF*
          PJN    RNG3        IF VALID SYNTAX
 RNG2     LJM    ILL
  
 RNG3     STD    T1          SAVE BIT VALUE (1=*OFF*) 
          LDD    T7          CHECK UPPER LIMIT .GE. LOWER LIMIT 
          SBD    T6 
          PJN    RNGX        IF VALID RANGE 
          UJN    RNG2 
 NFF      SPACE  4,15 
**        NFF - CHECK FOR *=ON* OR *=OFF*.
* 
*         ENTRY  (KA) = ADDRESS OF STRING.
* 
*         EXIT   (A) = 1 IF *=OFF*. 
*                (A) = 0 IF *=ON*.
*                (A) = - IF NEITHER.
* 
*         USES   T1.
* 
*         CALLS  CPS. 
  
  
 NFF2     LDD    T1          RETURN (A) = 0 FOR *ON*, (A) = 1 FOR *OFF* 
  
 NFF      SUBR               ENTRY/EXIT 
          LDC    NFFA        LOOK FOR *ON* OR *OFF* 
          RJM    CPS
          ZJN    NFF1        IF NO MATCH
          SBN    1           SET RETURN PARAMETER 
          STD    T1 
          LDI    KA          VERIFY (CR) OR *.* 
          ZJN    NFF2        IF (CR)
          LMN    1R.
          ZJN    NFF2        IF *.* 
  
 NFF1     LCN    1           RETURN (A) = -1 FOR MISMATCH 
          UJN    NFFX 
  
 NFFA     CON    =C*=ON*     1
          CON    =C*=OFF*    2
          CON    0           END OF TABLE 
          TITLE  KEYBOARD INPUT ROUTINES. 
 KBI      SPACE  4,35 
**        KBI - KEYBOARD INPUT. 
*         KBI READS A CHARACTER FROM THE KEYBOARD, AND INTERPRETS 
*         CONTROL CHARACTERS AS FOLLOWS - 
* 
*                (CR) PRECEDED BY OTHER CHARACTERS INDICATES END OF 
*                     STATEMENT.
* 
*                (CR) NOT PRECEDED BY OTHER CHARACTERS INDICATES END
*                     OF INFORMATION. 
* 
*                (BS) PRECEDED BY OTHER CHARACTERS INDICATES DELETE 
*                     THE PRECEDING CHARACTER.
* 
*                (BS) NOT PRECEDED BY OTHER CHARACTERS INDICATES END
*                     OF INFORMATION AND RETURN TO PREVIOUS STEP IN 
*                     THE PROCESS.
* 
*                (LEFT BLANK) INDICATES DELETE THE ENTIRE STATEMENT.
* 
*         ENTRY  (KBIA) = PREVIOUS CHARACTER. 
*                (KI) = INDEX INTO KEYBOARD BUFFER. 
*                (KBUF) = KEYBOARD BUFFER 
* 
*         EXIT   (A) = 0 IF NORMAL CHARACTER OR NO DATA.
*                (A) = 1 IF END OF STATEMENT (CR).
*                (A) = 2 IF END OF INFORMATION (CR ONLY). 
*                (A) = 3 IF RETURN TO PREVIOUS STEP (BS ONLY) 
* 
*         USES   T1.
* 
*         CALLS  KEY, CKB.
  
  
 KBI      SUBR               ENTRY/EXIT 
          RJM    KEY         INPUT CHARACTER
          ZJN    KBI1        IF NO INPUT
          LMC    60          (PRESET CR)
 KBIA     EQU    *-1
          ZJN    KBIX        IF SAME INPUT, RETURN A = 0
          LMM    KBIA 
 KBI1     STM    KBIA        SAVE CHARACTER 
          STD    T1 
          ZJN    KBIX        IF NO INPUT, RETURN A = 0
          LMN    60 
          NJN    KBI4        IF NOT (CR)
          LDD    KI 
          ZJN    KBI2        IF END OF INFORMATION
          LDN    1
          UJN    KBIX        RETURN A = 1 
  
 KBI2     LDN    2
 KBI3     UJN    KBIX        RETURN A = 2 
  
 KBI4     LMN    61&60
          NJN    KBI6        IF NOT (BS)
          LDD    KI 
          NJN    KBI5        IF NOT ((BS) AND 1ST CHAR) 
          LDN    3
          UJN    KBIX        RETURN A = 3 
  
 KBI5     SOD    KI          DO BACKSPACE 
          LDN    0           ERASE CHARACTER
          STM    KBUF,KI
          STD    KM          CLEAR KEYBOARD ERROR MESSAGE 
          UJN    KBI3        RETURN A = 0 
  
 KBI6     LMN    53&61
          NJN    KBI7        IF NOT (LEFT BLANK)
          RJM    CKB         CLEAR KEYBOARD BUFFER
          LDN    0
          UJN    KBI3        RETURN A = 0 
  
 KBI7     LMN    62&53
          NJN    KBI8        IF NOT *SPACE* 
          LDN    1R          SUBSTITUTE * * 
          STD    T1 
 KBI8     LDD    KI 
          LMN    KBUFL
          ZJN    KBI9        IF KEYBOARD BUFFER FULL
          LDD    T1          PUT CHARACTER IN KEYBOARD BUFFER 
          STM    KBUF,KI
          AOD    KI          INCREMENT KEYBOARD INDEX 
          LDN    0
 KBI9     LJM    KBIX        RETURN A = 0 
 KEY      SPACE  4,10 
**        KEY - READ KEYBOARD CHARACTER.
* 
*         ENTRY  NONE.
* 
*         EXIT   (A) = KEYBOARD CHARACTER.
* 
*         USES   NONE.
* 
*         CALLS  NONE.
  
  
 KEY      SUBR               ENTRY/EXIT 
          LDC    200         DELAY
          SBN    1
          NJN    *-1
          FNC    7020,CH     SELECT KEYBOARD INPUT
          ACN    CH 
          IAN    CH          INPUT CHARACTER
          DCN    CH 
          UJN    KEYX        RETURN 
 CKB      SPACE  4,10 
**        CKB - CLEAR KEYBOARD BUFFER.
* 
*         ENTRY  NONE.
* 
*         EXIT   (KBUF) = 0.
*                (KI) = 0.
*                (KM) = 0.
* 
*         USES   NONE.
* 
*         CALLS  NONE.
  
  
 CKB      SUBR               ENTRY/EXIT 
          LDN    0
          STD    KI 
 CKB1     LDN    0           CLEAR KEYBOARD BUFFER
          STM    KBUF,KI
          AOD    KI 
          LMN    KBUFL
          NJN    CKB1 
          STD    KI          CLEAR KEYBOARD BUFFER INDEX
          STD    KM          CLEAR ERROR MESSAGE
          UJN    CKBX        RETURN 
  
**        KBUF - KEYBOARD BUFFER. 
  
 KBUF     BSS    30D
 KBUFL    EQU    *-KBUF 
          CON    0           INSURE END OF LINE 
          TITLE  DISPLAY ROUTINES.
 DSB      SPACE  4,10 
**        DSB - DISPLAY B-DISPLAY.
* 
*         ENTRY  NONE.
* 
*         EXIT   NONE.
* 
*         USES   NONE.
* 
*         CALLS  DFN, DEM.
  
  
 DSB      SUBR               ENTRY/EXIT 
          RJM    DFN         FUNCTION DISPLAY 
          LDC    DSBAL       DISPLAY OPTIONS
          OAM    DSBA,CH+40 
          RJM    DEM         DISPLAY ERROR MESSAGE, IF ANY
          DCN    CH 
          UJN    DSBX        RETURN 
  
 DSBA     CON    XC15,YC01
          DATA   H/*O*/ 
          CON    XC01,YC03
          DATA   H*(CR) - ENTER OS LOAD AUTOMATIC*
          CON    XC01,YC04
          DATA   H/(BS) - RETURN TO *A* DISPLAY/
          CON    XC03,YC06
          DATA   H*D  - DEADSTART DIAGNOSTIC SEQ.*
          CON    XC03,YC07
          DATA   H*H  - HARDWARE RECONFIGURATION* 
          CON    XC03,YC08
          DATA   H*P  - DEADSTART PANEL PARAMS* 
 DSBAL    EQU    *-DSBA 
 DSH      SPACE  4,10 
**        DSH - DISPLAY H-DISPLAY.
* 
*         ENTRY  (HDT) = HARDWARE DESCRIPTOR TABLE. 
* 
*         EXIT   NONE.
* 
*         USES   T1.
* 
*         CALLS  DFN, D2O, D4O, DNF, DOE, DEM, DKB. 
  
  
 DSH      SUBR               ENTRY/EXIT 
          RJM    DFN         DISPLAY HEADER 
          LDC    DSHAL
          OAM    DSHA,CH+40 
  
*         DISPLAY CM = NNNNNN.  CEJ/MEJ = ON/OFF  CMU = ON/OFF. 
  
          LDN    DSHBL       *CM = *
          OAM    DSHB,CH+40 
          LDN    0
          STD    T1 
          LDM    /CPA/CMSZ
          RJM    D2O
          LDM    /CPA/CMSZ+1
          STD    T2 
          RJM    D4O
          LDC    2R.
          OAN    CH+40
  
          LDN    DSHCL       *  CEJ/MEJ = * 
          OAM    DSHC,CH+40 
          LDM    /CPA/OPTN
          SHN    -2 
          RJM    DNF
  
          LDN    DSHDL       *  CMU = * 
          OAM    DSHD,CH+40 
          LDM    /CPA/OPTN
          SHN    -3 
          RJM    DNF
  
          RJM    DOE         DISPLAY *OFF* ELEMENTS 
          RJM    DEM         DISPLAY ERROR MESSAGE, IF ANY. 
          RJM    DKB         DISPLAY KEYBOARD BUFFER
          DCN    CH 
          LJM    DSHX        RETURN 
  
 DSHA     CON    XC15,YC01
          DATA   H/*H*/ 
          CON    XC01,YC03
          DATA   H*(CR) - ENTER OS LOAD AUTOMATIC*
          CON    XC01,YC04
          DATA   H/(BS) - RETURN TO *O* DISPLAY/
 DSHAL    EQU    *-DSHA 
  
 DSHB     CON    XC01,YC06
          DATA   H*CM = * 
 DSHBL    EQU    *-DSHB 
  
 DSHC     CON    XC20 
          DATA   H*CEJ/MEJ = *
 DSHCL    EQU    *-DSHC 
  
 DSHD     CON    XC24,YC07
          DATA   H*CMU = *
 DSHDL    EQU    *-DSHD 
 DNF      SPACE  4,10 
**        DNF - DISPLAY *ON  * OR *OFF *. 
* 
*         ENTRY  (A) = BIT 0 CLEAR FOR *ON*.
*                (A) = BIT 0 SET FOR *OFF*. 
* 
*         EXIT   *ON  * OR *OFF * DISPLAYED.
* 
*         USES   NONE.
* 
*         CALLS  NONE.
  
  
 DNF      SUBR               ENTRY/EXIT 
          LPN    1
          NJN    DNF1        IF *OFF* 
          LDC    2RON 
          OAN    CH+40
          LDN    0
          UJN    DNF2 
  
 DNF1     LDC    2ROF 
          OAN    CH+40
          LDC    2RF
 DNF2     OAN    CH+40
          UJN    DNFX        RETURN 
  
 DOE      SPACE  4,10 
**        DOE - DISPLAY *OFF* ELEMENTS. 
* 
*         ENTRY  (HDT) = HARDWARE DESCRIPTOR TABLE. 
* 
*         EXIT   NONE.
* 
*         USES   T1, T2, T3.
* 
*         CALLS  DPP, DPU.
  
  
 DOE      SUBR               ENTRY/EXIT 
          LDN    DOEAL       DISPLAY *OFF ELEMENTS* 
          OAM    DOEA,CH+40 
  
          LDC    YC10        SET Y-COORDINATE FOR 1ST LINE
          STD    T1 
          LDN    0           SET COLUMN NUMBER
          STD    T2 
  
*         DISPLAY *OFF* CPU.
  
          LDM    /CPA/OPTN
          LPN    3
          ZJN    DOE1        IF BOTH CPU-S *ON* 
  
          RJM    SOL         HANDLE START OF LINE 
          LDC    2RCP        DISPLAY CPUX 
          OAN    CH+40
          LDM    /CPA/OPTN
          LPN    1
          LMN    1
          ADC    2RU0 
          OAN    CH+40
          LDN    0
          OAN    CH+40
          OAN    CH+40
          AOD    T2          INCR COLUMN NUMBER 
  
*         DISPLAY *OFF* PP-S. 
  
 DOE1     LDN    0           DISPLAY CHASSIS 1 *OFF* PP-S 
          STD    T3 
          LDM    /CPA/LPP0
          RJM    DPP
          LDN    20          DISPLAY CHASSIS 2 *OFF* PP-S 
          STD    T3 
          LDM    /CPA/LPP1
          RJM    DPP
  
*         DISPLAY *OFF* PPU-S.
  
          LDN    1           DISPLAY PPU-S 1-14B
          STD    T3 
          LDM    /CPA/LPPU+1
          RJM    DPU
          LDN    15          DISPLAY PPU15
          STD    T3 
          LDM    /CPA/LPPU
          LPN    1
          RJM    DPU
          LJM    DOEX        RETURN 
  
 DOEA     CON    XC11,YC09
          DATA   H*OFF ELEMENTS*
 DOEAL    EQU    *-DOEA 
 DPP      SPACE  4,15 
**        DPP - DISPLAY *OFF* PP-S. 
* 
*         ENTRY  (A) = (LPP0) OR (LPP1).
*                (T1) = Y-COORDINATE. 
*                (T2) = COLUMN NUMBER.
*                (T3) = STARTING PP NUMBER. 
* 
*         EXIT   (T1) = Y-COORDINATE. 
*                (T2) = COLUMN NUMBER.
* 
*         USES   T4.
* 
*         CALLS  SOL. 
  
  
 DPP      SUBR               ENTRY/EXIT 
          LPC    1777        *OFF* MASK 
 DPP1     STD    T4 
          ZJN    DPPX        IF REMAINING PP-S *ON* 
          LPN    1
          ZJN    DPP4        IF *ON*
  
          RJM    SOL         HANDLE START OF LINE IF NECESSARY
          LDC    2RPP 
          OAN    CH+40
          LDD    T3 
          LPN    70 
          NJN    DPP2        IF NO ZERO SUPPRESS
          LDD    T3 
          ADN    1R0
          SHN    6
          UJN    DPP3 
  
 DPP2     SHN    3
          LMD    T3 
          SCN    70 
          ADC    2R00 
 DPP3     OAN    CH+40
          LDN    0
          OAN    CH+40
          OAN    CH+40
          AOD    T2          INCR COLUMN NUMBER 
          LMN    4
          NJN    DPP4        IF NOT END OF LINE 
          STD    T2          SET START OF LINE
  
 DPP4     AOD    T3          INCR PP NUMBER 
          LDD    T4 
          SHN    -1 
          LJM    DPP1 
 DPU      SPACE  4,15 
**        DPU - DISPLAY *OFF* PPU-S.
* 
*         ENTRY  (A) = (LPPU) OR (LPPU+1).
*                (T1) = Y-COORDINATE. 
*                (T2) = COLUMN NUMBER.
*                (T3) = STARTING PPU NUMBER.
* 
*         EXIT   NONE.
* 
*         USES   T4.
* 
*         CALLS  SOL. 
  
  
 DPU      SUBR               ENTRY/EXIT 
 DPU1     STD    T4          *OFF* MASK 
          ZJN    DPUX        IF REMAINING PPU-S *ON*
          LPN    1
          ZJN    DPU4        IF *ON*
  
          RJM    SOL         HANDLE START OF LINE IF NECESSARY
          LDC    2RPP        DISPLAY *PPUX* OR *PPUXX*
          OAN    CH+40
          LDD    T3 
          LPN    70 
          NJN    DPU2        IF NO ZERO SUPPRESS
          LDD    T3 
          ADC    2RU0 
          OAN    CH+40
          LDN    0
          UJN    DPU3 
  
 DPU2     SHN    -3 
          ADC    2RU0 
          OAN    CH+40
          LDD    T3 
          LPN    7
          ADN    1R0
          SHN    6
 DPU3     OAN    CH+40
          LDN    0
          OAN    CH+40
          AOD    T2          INCR COLUMN NUMBER 
          LMN    4
          NJN    DPU4        IF NOT END OF LINE 
          STD    T2          SET START OF LINE
  
 DPU4     AOD    T3          INCR PPU NUMBER
          LDD    T4 
          SHN    -1 
          LJM    DPU1 
 SOL      SPACE  4,10 
**        SOL - START OF LINE.
* 
*         ENTRY  (T1) = Y-COORDINATE. 
*                (T2) = COLUMN NUMBER.
* 
*         EXIT   NONE.
* 
*         USES   NONE.
* 
*         CALLS  NONE.
  
  
 SOL      SUBR               ENTRY/EXIT 
          LDD    T2 
          NJN    SOLX        IF NOT START OF LINE 
          LDD    T1          OUTPUT COORDINATES 
          OAN    CH+40
          LDC    XC03 
          OAN    CH+40
          LCN    YCIN        DECR Y-COORDINATE
          RAD    T1 
          UJN    SOLX        RETURN 
 DSP      SPACE  4,10 
**        DSP - DISPLAY P-DISPLAY.
* 
*         ENTRY  (DSPNL) = DEADSTART PANEL IMAGE. 
* 
*         EXIT   NONE.
* 
*         USES   NONE.
* 
*         CALLS  D1D, D2D, D4D, DEM, DKB. 
  
  
 DSP      SUBR               ENTRY/EXIT 
          RJM    DFN         DISPLAY HEADER AND OPTIONS 
          LDN    DSPAL
          OAM    DSPA,CH+40 
          LDN    DSPBL       DISPLAY *I = X    - INIT/RECOVERY LVL* 
          OAM    DSPB,CH+40 
          LDM    /CPA/DSPNLZ+13 
          SHN    -9D
          RJM    D1D
          LDN    DSPCL
          OAM    DSPC,CH+40 
          LDN    DSPDL       DISPLAY *C = XX   - CMRDECK NUMBER*
          OAM    DSPD,CH+40 
          LDM    /CPA/DSPNLZ+13 
          RJM    D2D
          LDN    DSPEL
          OAM    DSPE,CH
          LDN    DSPJL       DISPLAY  *D=X    - DISPLAY CMRDECK *        DIMA244
          OAM    DSPJ,CH                                                 DIMA244
          LDM    /CPA/DSPNLZ+13                                          DIMA244
          SHN    -6                                                      DIMA244
          LPN    1                                                       DIMA244
          RJM    D1C                                                     DIMA244
          LDN    DSPKL                                                   DIMA244
          OAM    DSPK,CH                                                 DIMA244
                                                                         DIMA244
          LDN    DSPFL       DISPLAY *W12 = XXXX - D/S PANEL WORD 12* 
          OAM    DSPF,CH+40 
          LDM    /CPA/DSPNLZ+12 
          RJM    D4D
          LDN    DSPGL
          OAM    DSPG,CH+40 
          LDN    DSPHL       DISPLAY *W14 = XXXX - D/S PANEL WORD 14* 
          OAM    DSPH,CH+40 
          LDM    /CPA/DSPNLZ+14 
          RJM    D4D
          LDN    DSPIL
          OAM    DSPI,CH+40 
          RJM    DEM         DISPLAY ERROR MESSAGE, IF ANY
          RJM    DKB         DISPLAY KEYBOARD BUFFER
          DCN    CH 
          LJM    DSPX 
  
 DSPA     CON    XC15,YC01
          DATA   H/*P*/ 
          CON    XC01,YC03
          DATA   H*(CR) - ENTER OS LOAD AUTOMATIC*
          CON    XC01,YC04
          DATA   H/(BS) - RETURN TO *O* DISPLAY/
 DSPAL    EQU    *-DSPA 
  
 DSPB     CON    XC02,YC06
          DATA   H*  I = *
 DSPBL    EQU    *-DSPB 
  
 DSPC     CON    XC13,YC06
          DATA   H*- INIT/RECOVERY LVL* 
 DSPCL    EQU    *-DSPC 
  
 DSPD     CON    XC02,YC07
          DATA   H*  C = *
 DSPDL    EQU    *-DSPD 
  
 DSPE     CON    XC13,YC07
          DATA   H*- CMRDECK NUMBER*
 DSPEL    EQU    *-DSPE 
 DSPJ     CON    XC02,YC08                                               DIMA244
          DATA   H*  D = *                                               DIMA244
 DSPJL    EQU    *-DSPJ                                                  DIMA244
                                                                         DIMA244
 DSPK     CON    XC13,YC08                                               DIMA244
          DATA   H*- DISPLAY CMRDECK*                                    DIMA244
 DSPKL    EQU    *-DSPK                                                  DIMA244
  
 DSPF     CON    XC02,YC09                                               DIMA244
          DATA   H*W12 = *
 DSPFL    EQU    *-DSPF 
  
 DSPG     CON    XC13,YC09                                               DIMA244
          DATA   H*- D/S PANEL WORD 12* 
 DSPGL    EQU    *-DSPG 
  
 DSPH     CON    XC02,YC10                                               DIMA244
          DATA   H*W14 = *
 DSPHL    EQU    *-DSPH 
  
 DSPI     CON    XC13,YC10                                               DIMA244
          DATA   H*- D/S PANEL WORD 14* 
 DSPIL    EQU    *-DSPI 
 DEM      SPACE  4,10 
**        DEM - DISPLAY ERROR MESSAGE.
* 
*         ENTRY  (KM) = ADDRESS OF ERROR MESSAGE. 
* 
*         EXIT   NONE.
* 
*         USES   T1.
* 
*         CALLS  NONE.
  
  
 DEM      SUBR               ENTRY/EXIT 
          LDD    KM 
          ZJN    DEMX        IF NO ERROR MESSAGE
          SBN    1
          STD    T1 
          LDN    2
          OAM    DEMA,CH+40  OUTPUT COORDINATES 
 DEM1     AOD    T1          DISPLAY MESSAGE
          LDI    T1 
          OAN    CH+40
          NJN    DEM1 
          UJN    DEMX        RETURN 
  
 DEMA     CON    XC01,YCER
 DKB      SPACE  4,10 
**        DKB - DISPLAY KEYBOARD BUFFER.
* 
*         ENTRY  (KBUF) = KEYBOARD BUFFER.
* 
*         EXIT   NONE.
* 
*         USES   T1.
* 
*         CALLS  NONE.
  
  
 DKB      SUBR               ENTRY/EXIT 
          LDN    2           OUTPUT COORDINATES 
          OAM    DKBA,CH+40 
          LDN    0
          STD    T1 
 DKB1     LDM    KBUF,T1
          ZJN    DKBX        IF END OF KEYBOARD LINE
          SHN    6
          ADM    KBUF+1,T1
          OAN    CH+40
          LPN    77B
          ZJN    DKBX        IF END OF KEYBOARD LINE
          LDN    2
          RAD    T1 
          UJN    DKB1 
  
 DKBA     CON    XC01,YCKB
 DFN      SPACE  4,10 
**        DFN - DELAY AND FUNCTION DISPLAY. 
* 
*         ENTRY  NONE.
* 
*         EXIT   NONE.
* 
*         USES   NONE.
* 
*         CALLS  NONE.
  
  
 DFN      SUBR               ENTRY/EXIT 
          LDC    1000        DELAY
          SBN    1
          NJN    *-1
          FNC    DSFC,CH     SELECT LEFT SCREEN, 32 LINES PER SCREEN
          ACN    CH 
          UJN    DFNX        RETURN 
 CDS      SPACE  4,10 
**        CDS - CLEAR DISPLAY.
* 
*         ENTRY  PP 10 ON CHANNEL 0.
*                CHANNEL 10 USED FOR DISPLAY. 
* 
*         EXIT   PP 10 ON CHANNEL 10. 
* 
*         USES   NONE.
* 
*         CALLS  NONE.
  
  
 CDS      SUBR               ENTRY/EXIT 
          FNC    0,CH        CLEAR DISPLAY SYNC 
          LDC    1000        DELAY
          SBN    1
          NJN    *-1
          DCN    CH+40
          ACN    CH          MOVE PP 10 TO CHANNEL 10 
          LDN    3
          OAM    CDSA,0 
          DCN    0+40 
          UJN    CDSX        RETURN 
  
 CDSA     CON    0
          LCN    0
          IAM    0,CH 
 D1C      SPACE  4,10                                                    DIMA244
**        D1C - DISPLAY  ONE  CHARACTER,  Y  OR  N                       DIMA244
*                                                                        DIMA244
*         ENTRY  (A) = 1  IF  Y  (INDICATING  YES)  TO  BE  DISPLAYED    DIMA244
*                (A) = 0  IF  N  (INDICATING  NO)  NOT  TO  BE DISPLAYED DIMA244
*                                                                        DIMA244
*         EXIT   NONE                                                    DIMA244
*                                                                        DIMA244
*         USES   NONE                                                    DIMA244
*                                                                        DIMA244
*         CALLS  NONE                                                    DIMA244
                                                                         DIMA244
 D1C      SUBR               ENTRY/EXIT                                  DIMA244
          ZJN    D1C1                                                    DIMA244
          LDN    1RY                                                     DIMA244
          UJN    D1C2                                                    DIMA244
 D1C1     LDN    1RN                                                     DIMA244
 D1C2     SHN    6                                                       DIMA244
          OAN    CH                                                      DIMA244
          UJN    D1CX                                                    DIMA244
 D1D      SPACE  4,10 
**        D1D - DISPLAY 1 DIGIT.
* 
*         ENTRY  (A) = DIGIT RIGHT ADJUSTED.
* 
*         EXIT   NONE.
* 
*         USES   NONE.
* 
*         CALLS  NONE.
  
  
 D1D      SUBR               ENTRY/EXIT 
          LPN    7
          ADN    1R0
          SHN    6
          OAN    CH+40
          UJN    D1DX        RETURN 
 D2D      SPACE  4,10 
**        D2D - DISPLAY 2 DIGITS. 
* 
*         ENTRY  (A) = DIGITS RIGHT ADJUSTED. 
* 
*         EXIT   NONE.
* 
*         USES   T0, T1.
* 
*         CALLS  D2O. 
  
  
 D2D      SUBR               ENTRY/EXIT 
          STD    T0 
          LCN    77          INDICATE NO ZERO SUPPRESSION 
          STD    T1 
          LDD    T0          DISPLAY 2 DIGITS 
          RJM    D2O
          UJN    D2DX        RETURN 
 D4D      SPACE  4,10 
**        D4D - DISPLAY 4 DIGITS. 
* 
*         ENTRY  (A) = DIGITS RIGHT ADJUSTED. 
* 
*         EXIT   NONE.
* 
*         USES   T1, T2.
* 
*         CALLS  D4O. 
  
  
 D4D      SUBR               ENTRY/EXIT 
          STD    T2 
          LCN    77          INDICATE NO ZERO SUPPRESSION 
          STD    T1 
          RJM    D4O         DISPLAY 4 DIGITS 
          UJN    D4DX 
 D2O      SPACE  4,15 
**        D2O - DISPLAY 2 DIGITS WITH OPTIONAL ZERO SUPPRESSION.
* 
*         ENTRY  (A) = 2 DIGITS RIGHT ADJUSTED. 
*                (T1) = 0000 IF ZERO SUPPRESS.
*                (T1) = 7700 IF NO ZERO SUPPRESS. 
* 
*         EXIT   (T1) = 7700 IF NONZERO DIGIT ENCOUNTERED.
*                (T1) = UNCHANGED IF BOTH DIGITS ZERO.
* 
*         USES   T0, T1.
* 
*         CALLS  NONE.
  
  
 D2O      SUBR               ENTRY/EXIT 
          LPN    77 
          STD    T0 
          LMD    T1          ZERO SUPPRESS FLAG (XX00)
          NJN    D2O1        IF NOT SUPPRESS 2 ZEROES 
          OAN    CH+40
          UJN    D2OX        RETURN 
 D2O1     SHN    -3 
          ZJN    D2O2        IF SUPPRESS 1 ZERO 
          LPN    7
          ADN    1R0
          SHN    6
 D2O2     LMD    T0 
          SCN    70 
          ADN    1R0
          OAN    CH+40
          LCN    77 
          STD    T1 
          UJN    D2OX        RETURN 
 D4O      SPACE  4,15 
**        D4O - DISPLAY 4 DIGITS WITH OPTIONAL ZERO SUPPRESSION.
* 
*         ENTRY  (T1) = 0000 IF ZERO SUPPRESSION. 
*                (T1) = 7700 IF NO ZERO SUPPRESSION.
*                (T2) = DIGITS TO DISPLAY.
* 
*         EXIT   (T1) = 7700 IF NONZERO DIGIT ENCOUNTERED.
*                (T1) = UNCHANGED IF ALL DIGITS ZERO. 
* 
*         USES   NONE.
* 
*         CALLS  D2O. 
  
  
 D4O      SUBR               ENTRY/EXIT 
          LDD    T2          DISPLAY 2 DIGITS 
          SHN    -6 
          RJM    D2O
          LDD    T2          DISPLAY 2 DIGITS 
          RJM    D2O
          UJN    D4OX        RETURN 
          SPACE  4,10 
          END 
