*COMDECK  COMPQOD 
 QOD      CTEXT  COMPQOD - CTI QUERY OPERATOR FOR DEVICE. 
          SPACE  4,10 
          IF     -DEF,QUAL$,1 
          QUAL   QOD
          BASE   D
*         COMMENT  COPYRIGHT CONTROL DATA CORPORATION. 1978.
          TITLE  COMPQOD - CTI QUERY OPERATOR FOR DEVICE. 
 QOD      SPACE  4,10 
***       COMPQOD - CTI QUERY OPERATOR FOR DEVICE.
* 
*         R. A. TURGEON            6-22-78. 
          SPACE  4,10 
***       COMPQOD - CTI QUERY OPERATOR FOR DEVICE.
* 
*         COMPQOD IS A CALLABLE SUBROUTINE WHICH WILL QUERY THE 
*         OPERATOR FOR CONNECT CODES DEFINING A DEVICE LOCATION.
* 
*         ENTRY IS VIA               RJM    QOD 
* 
*         ENTRY  (A) = NNAAAA  WHERE
*                      AAAA = FWA OF A STRING TO BE DISPLAYED AND 
*                      NN = BYTE COUNT OF THIS STRING.
*                (REPADDR) = FWA OF TWO BYTE REPLY AREA WITH FORMAT 
*                            00CC/EEUU. 
*                            REPADDR IS A DIRECT CELL.
* 
*         EXIT   TWO BYTE REPLY AREA HAS BEEN MODIFIED AS DIRECTED
*                BY THE OPERATOR. 
* 
*         USES   D6,D7,D10,D11. 
          TITLE  DEFINITIONS
**        MISCELLANEOUS DEFINITIONS.
* 
  
 DCL      EQU    D6                DIRECT CELL FOR LENGTH 
 DCA      EQU    D7                DIRECT CELL FOR ADDRESS
 DCF      EQU    D10               DIRECT CELL FOR FLAG 
 DCW      EQU    D11               WORK CELL
          TITLE  MAIN ROUTINE 
          SPACE  4,10 
 QOD      ENM    X                 ENTRY/EXIT 
  
          STM    DISB              STORE ADDRESS OF TITLE 
          SHN    6
          LPN    77B
          STM    DISA              STORE LENGTH OF TITLE
          SPACE  4,10 
*         SET UP TO DISPLAY CHANNEL LINE. 
  
          LDC    BUFC-BUF 
          STD    DCL               STORE LENGTH 
          LDD    REPADDR
          STD    DCA               STORE ADDRESS OF WORD TO MODIFY. 
          LDN    0
          STD    DCF               SET FLAG = 0 FOR LOWER 6 BITS
  
 QOD1     RJM    DIS               DISPLAY
          RJM    PKI               PROCESS KEYBOARD INPUT 
          NJN    QOD1              IF NOT CR
          SPACE  4,10 
*         SET UP TO ADD EQUIPMENT LINE
  
          LDC    BUFE-BUF 
          STD    DCL
          AOD    DCA
          AOD    DCF
  
 QOD2     RJM    DIS
          RJM    PKI
          NJN    QOD2              IF NOT CR
          SPACE  4,10 
*         SET UP TO ADD UNIT LINE.
  
          LDC    BUFU-BUF 
          STD    DCL
          SOD    DCF
  
 QOD3     RJM    DIS
          RJM    PKI
          NJN    QOD3              IF NOT CR
  
          LJM    QODX              RETURN 
          TITLE  OUR DISPLAY BUFFER 
          SPACE  4,10 
 BUF      EQU    *                 START OF OUR BUFFER
  
 BUFL     SET    17                FIRST LINE 
          CON    YSET+762B-BUFL*22B 
          CON    XSET+0 
          DATA   H*CHANNEL - MN*
 BUFC     EQU    *
  
 BUFL     SET    BUFL+3 
          CON    YSET+762B-BUFL*22B 
          CON    XSET+0 
          DATA   H*EQUIPMENT -  M*
 BUFE     EQU    *
  
 BUFL     SET    BUFL+3 
          CON    YSET+762B-BUFL*22B 
          CON    XSET+0 
          DATA   H*UNIT -  MN*
 BUFU     EQU    *
          TITLE  QOD SUBROUTINES. 
          SPACE  4,10 
**        DIS - DISPLAYS CALLER TITLE AND OUR BUFFER. 
* 
*         DIS CONVERTS THE DATA IN THE TWO BYTE REPLY AREA TO 
*         DISPLAY CODE AND STORES IT INTO THE APPROPRIATE WORDS 
*         OF OUR DISPLAY BUFFER.  THEN IT DISPLAYS THE CALLERS
*         TITLE AND OUR DISPLAY BUFFER. 
* 
  
 DIS      ENM    X                 ENTRY/EXIT 
          LDI    REPADDR           FIRST BYTE OF REPLY AREA 
          RJM    CTO               CONVERT TO OCTAL 
          STM    BUFC-1            STORE CHANNEL
          LDM    1,REPADDR         SECOND BYTE OF REPLY AREA
          SHN    -6 
          RJM    CTO
          LPN    77B
          ADC    1R *100B 
          STM    BUFE-1            STORE EQUIPMENT
          LDM    1,REPADDR
          RJM    CTO
          STM    BUFU-1            STORE UNIT 
  
          FNC    F.SEL+F.SLS+F.CHR+F.CHM,CHD
          ACN    CHD
          LDC    ** 
 DISA     EQU    *-1
          OAM    **,CHD            DISPLAY CALLERS TITLE
 DISB     EQU    *-1
  
          LDD    DCL               LENGTH OF OUR ACTIVE BUFFER
          OAM    BUF,CHD           DISPLAY OUR BUFFER 
          DCN    CHD
          SBN    40B                                                     DIMA214
          MJN    *-1         REDUCE DISPLAY INTENSITY                    DIMA214
          LJM    DISX              RETURN 
          SPACE  4,10 
**        PKI - PROCESS KEYBOARD INPUT
* 
*         PKI FUNCTIONS THE DISPLAY CONSOLE FOR KEYBOARD INPUT. 
*         IF AN OCTAL DIGIT HAS BEEN ENTERED, THEN THAT PORTION 
*         OF THE REPLY AREA SPECIFIED BY DCA AND DCF IS MODIFIED. 
* 
*         EXIT   (A) = 0 IF INPUT = (CR)
*                (A) .NE. 0 IF NO INPUT OR INPUT NOT (CR) 
* 
  
 PKI1     LDN    1                 SET A NON-ZERO 
  
 PKI      ENM    X                 ENTRY/EXIT 
          FNC    F.SEL+F.KEY,CHD
          ACN    CHD
          IAN    CHD               READ KEYBOARD
          DCN    CHD
          ZJN    PKI1              IF NO INPUT
  
          SBN    60B
          ZJN    PKIX              IF (CR) ENTERED
  
*         TEST IF OCTAL DIGIT 
  
          ADN    60B-1R0
          MJN    PKI1              IF .LT. 1R0
          SBN    8
          PJN    PKI1              IF .GT.1R7 
  
          ADN    8                 NORMALIZE TO BE IN RANGE 0-7 
          STD    DCW
  
          LDD    DCF               GET UPPER/LOWER FLAG 
          NJN    PKI6              IF UPPER HALF TO BE MODIFIED 
  
          LDI    DCA               HERE IF CHANNEL OR UNIT
          SHN    3
          LPN    70B
          RAD    DCW
          LDI    DCA
          SCN    77B
          ADD    DCW
 PKI4     STI    DCA
          UJN    PKI1              RETURN 
  
 PKI6     LDI    DCA               HERE IF EQUIPMENT
          LPN    77B
          SHN    12 
          LMD    DCW
          SHN    6
          UJN    PKI4 
          SPACE  4,10 
**        CTO - CONVERT TO OCTAL DISPLAY
* 
*         ENTRY  (A) LOWER 6 BITS ARE VALUE TO BE CONVERTED 
* 
*         EXIT   LOWER 12 BITS OF (A) ARE RESULT. 
* 
*         USES   DCW
  
 CTO      ENM    X                 ENTRY/EXIT 
          LPN    77B               ISOLATE LOWER 6 BITS 
          STD    DCW
          SHN    3
          LMD    DCW
          SCN    70B
          ADC    2R00 
          UJN    CTOX              RETURN 
          SPACE  4,10 
          BASE   *
          IF     -DEF,QUAL$,1 
          QUAL   *
          ENDX
