          EJECT
*         CTEXT  CTP$DFT REQUEST PROCESSOR 2.
*
*         THIS DECK DEFINES O.S. REQUESTS. THE REQUESTS DEFINED ARE *ACA*,
*         *ADR*, *AHE, *FPR*, *GMR*, *MVP*, *RDL* AND *RPL*.
 ACA      SPACE  4,10
**        ACA - READ/WRITE COMMON DISK AREA.
*
*         EXIT   TO *PDE* IF *2AP* ERROR ENCOUNTERED.
*
*         USES   T1, T5, W0 - W7.
*
*         CALLS  LRP, PFC, SPB, *ERR*.


          ROUTINE  ACA

          RJM    LRP         LOAD REQUEST POINTER
          CRDL   W0          READ FUNCTION PARAMETERS
          ADN    1
          CRDL   W4          READ POINTER PARAMETER
          LDN    20B         FUNCTION NUMBER
          STM    CALB
          STM    RTP1
          LDDL   W3          5/0,1/V,1/S,1/P,1/0,1/W,1/C,5/0
          LPC    0#740
          LMML   CALB
          STML   CALB
          LDD    W1
          STM    CALB+1      UPPER 12 BITS OF NAME
          LDD    W2
          STM    CALB+2      LOWER 12 BITS OF NAME
          LDD    W3          WRITE BIT
          LPC    0#40
          NJP    ACA10       IF WRITE TO BE PERFORMED
          CALL   PFC         PREPARE FOR *2AP* CALL
          LDML   CALB+1      CHECK FOR ERROR
          ZJN    ACA5        IF NO ERROR ON CALL
          SBN    76+1
          PJN    ACA5        IF NO ERROR ON CALL
          LDC    0#4002      NO RETURN / SET STATUS / OFFSET TO STATUS WORD
          STML   RTP2
          CALL   PDE         PROCESS DISK ERROR ENCOUNTERED BY *2AP*

 ACA5     RJM    LRP         LOAD REQUEST POINTER
          CRDL   W4          READ SPECIAL CASE FOR CEL
          LDD    W7
          LPC    0#20
          NJP    ACA20       IF CEL SECTOR, IGNORE VALID CHECK
          LDM    CALB+1
          SHN    21-12       GET V BIT
          MJP    ACA20       IF DATA IS VALID
          LDC    0#300       DFT INVALID CDA DATA READ
          LJM    ERR10       RETURN RESPONSE

*         WRITE DATA TO CDA.

 ACA10    LDC    360/4
          STD    T1
          LDML   W3
          SHN    21-11
          MJN    ACA15       IF 16 BIT DATA
          LDC    500/4
          STD    T1
 ACA15    LDD    T1
          SBDL   W7
          MJP    ERR         IF SECTOR LIMIT < LENGTH TO WRITE
          LDD    W7
          STD    W2
          SHN    2
          STM    CALB+3      SAVE PP WORD COUNT
          LRD    W5
          LDML   TOUB        *2AP* OUTPUT BUFFER OFFSET FOR LINKAGE BYTES
          STML   ACAA
          LDD    W4
          ADC    RR
          CRML   **,W2       READ IN DATA TO BE WRITTEN
 ACAA     EQU    *-1
          CALL   PFC         PREPARE FOR *2AP* CALL
          LDML   CALB+1
          ZJP    ACAX        IF NO ERRORS ON FUNCTION CALL
          SBN    76+1
          PJP    ACAX        IF NO ERRORS ON FUNCTION CALL
          LDC    0#4002      NO RETURN / SET STATUS / OFFSET TO ERROR STATUS WORD
          STML   RTP2
          CALL   PDE         PROCESS DISK ERROR ENCOUNTERED BY *2AP*

*         READ DATA FROM CDA.

 ACA20    LDM    CALB+1
          LPC    0#1FF       SAVE WORD COUNT
          ADN    3           ROUND UP TO NEAREST NUMBER OF CM WORDS
          SHN    -2          CM WORD COUNT
          STD    T5
          RJM    LRP         LOAD REQUEST POINTER
          ADN    1           RETURN LENGTH OF DATA READ
          CRDL   W4
          LDDL   W7
          STDL   T1
          LDDL   T5
          STDL   W7
          RJM    LRP         LOAD REQUEST POINTER
          ADN    1
          CWDL   W4
          LDDL   T1          COMPARE LENGTHS
          SBD    T5
          MJP    ERR         IF BUFFER LENGTH < WORD COUNT READ
          LRD    W5          POINTER
          RJM    SPB         SET PP BOUNDARY
          LDML   TOUB        *2AP* OUTPUT BUFFER
          STML   ACAB
          LDD    W4
          ADC    RR
          CWML   **,T5       WRITE DATA TO CENTRAL MEMORY
 ACAB     EQU    *-1
          LJM    ACAX        RETURN
 ADR      SPACE  4,10
**        ADR - ACCESS DEADSTART SECTOR.
*
*         EXIT   TO *PDE* IF *2AP* ERROR ENCOUNTERED.
*
*         USES   W0 - W7.
*
*         CALLS  LRP, PFC, *ERR*.


          ROUTINE  ADR

          RJM    LRP         LOAD REQUEST POINTER
          CRDL   W0          GET PARAMETERS FOR *2AP*
          LDN    30B         FUNCTION FOR READ DEADSTART SECTOR
          STM    CALB
          STM    RTP1
          LDDL   W2          DISK TYPE
          LPC    0#FF
          SHN    6
          STDL   T1
          LDDL   W1          CHANNEL
          LPC    0#FF
          LMDL   T1          6/DEVICE TYPE, 6/CHANNEL
          STM    CALB+1
          LDDL   W2          UNIT
          SHN    -10
          STM    CALB+2
          RJM    LRP         LOAD REQUEST POINTER
          ADN    1
          CRDL   W4          GET POINTER TO DATA
          LDML   W7          CHECK LENGTH
          SBK    500/4
          MJP    ERR         IF R-POINTER LENGTH IS LESS THAN ONE SECTOR
          LDC    500/4
          STD    W7
          LDDL   W3          GET WHETHER TO WRITE OR READ
          SHN    -10
          ZJP    ADR10       IF READ THE SECTOR
          LDC    130B        FUNCTION TO WRITE THE SECTOR
          STM    CALB
          LRD    W5          GET R-REGISTER
          LDML   TINB        *2AP* INPUT BUFFER
          STML   ADRA
          LDD    W4          GET A OFFSET
          ADC    RR
          CRML   **,W7       READ TO *2AP* BUFFER
 ADRA     EQU    *-1
          CALL   PFC         PRESERVE DATA AND CALL *2AP*
          LDML   CALB+1
          ZJP    ADRX        IF NO ERRORS ON CALL, RETURN
 ADR5     LDC    0#4002      NO RETURN / SET STATUS / OFFSET TO ERROR STATUS WORD
          STML   RTP2
          CALL   PDE         PROCESS DISK ERROR ENCOUNTERED BY *2AP*

 ADR10    CALL   PFC         PRESERVE DATA AND CALL *2AP*
          LDML   CALB+1
          NJN    ADR5        IF ERROR ON FUNCTION, RETURN *2AP* ERROR STATUS
          LRD    W5
          RJM    SPB         SET PP BOUNDARY
          LDML   TOUB        *2AP* OUTPUT BUFFER W/ LINKAGE BYTES
          STML   ADRB
          LDD    W4          OFFSET
          ADC    RR
          CWML   **,W7       WRITE SECTOR TO MEMORY
 ADRB     EQU    *-1
          LJM    ADRX        RETURN
 AHE      SPACE  4,15
**        AHE - ACCESS HARDWARE DESCRIPTOR.
*
*         THIS ROUTINE EITHER READS OR WRITES A SPECIFIED
*         DESCRIPTOR IN THE *MRT*.
*
*         WHEN A WRITE IS PERFORMED, THE OLD AND NEW DESCRIPTOR FIRST WORDS
*         (PP) MUST BE IDENTICAL (MATCH IN SIZE AND TYPE).  AFTER UPDATING
*         THE CM MRT, THE UPDATED MRT WILL BE WRITTEN TO THE CIP OR CONSOLE
*         DISK SO SUBSEQUENT DEADSTARTS WILL RETAIN THE UPDATED STATUS.
*         IF THE DESCRIPTOR IS A CPU DESCRIPTOR, AND THE CPU STATUS HAS BEEN
*         CHANGED FROM ON TO DOWN/OFF, THEN THE MEMORY PORT IS DISABLED.
*
*         EXIT   TO *PDE* IF *2AP* ERROR ENCOUNTERED.
*
*         CALLS  FHE, LRP, PFC, PHT, SPB, WHE, *DIP*, *ERR*.


          ROUTINE  AHE       ENTRY/EXIT

          RJM    PHT         PRESET HARDWARE TABLE
          RJM    LRP         LOAD REQUEST POINTER
          CRDL   W0          FETCH REQUEST PARAMETERS
          ADN    1
          CRDL   W4
          LDDL   W2          NUMBER
          SHN    14-0        POSITION THE NUMBER OF THE ELEMENT
          ADDL   W3          6/NUMBER, 12/TYPE
          RJM    FHE         FIND HARDWARE ELEMENT
          MJP    ERR         IF NOT FOUND
          LDML   HBUF        CALCULATE WORD COUNT OF DATA IN *HBUF*
          SHN    -6
          ADN    3
          SHN    -2
          STD    T7
          LDDL   W1          READ INDICATOR
          ZJN    AHE10       IF WRITE REQUEST
          LDDL   W7          CHECK BUFFER SIZE
          SBD    T7
          MJP    ERR         IF BUFFER WILL NOT HOLD DATA
          LRD    W5
          RJM    SPB         SET PP BOUNDS
          LDDL   W4          OFFSET
          ADC    RR
          CWML   HBUF,T7     WRITE *HBUF* TO BUFFER
          LJM    AHEX        RETURN

*         PROCESS WRITE REQUEST.

 AHE10    LDDL   W7          CM WORD SIZE MUST MATCH
          SBD    T7
          NJP    ERR         IF MISMATCH ON SIZE TO BE WRITTEN
          LDN    CMXLEN/4
          STD    T1
          LRD    W5          READ IN NEW MRT DEFINITION
          LDDL   W4
          ADC    RR
          CRML   AHEA,T1

*         IF WRITING A CPU DESCRIPTOR, SAVE THE ON/DOWN/OFF STATUS OF THE
*         CURRENT DESCRIPTOR.  IF THE STATUS IS CHANGING FROM ON TO DOWN OR
*         OFF, *DFT* NEEDS TO DISABLE THE MEMORY PORT.

          LDM    HBUF+CPRHDR
          LPN    77
          LMN    PROCID
          NJN    AHE20       IF NOT CPU DESCRIPTOR
          LDM    HBUF+CPRSTAT+PSCPOFF
          LPC    1001        SAVE ON/OFF, UP/DOWN BITS
          STM    AHEB
 AHE20    LDC    AHEA        FWA OF NEW MRT DEFINITION
          STDL   T5
          LDDL   W2          NUMBER
          SHN    14-0        POSITION THE NUMBER OF THE ELEMENT
          ADDL   W3          6/NUMBER, 12/TYPE
          RJM    WHE         WRITE HARDWARE ELEMENT
          PJN    AHE30       IF WRITE COMPLETE
          LJM    ERR         PROCESS ERROR

*         IF WRITING A CPU DESCRIPTOR, DETERMINE IF THE CPU STATUS HAS CHANGED
*         SUCH THAT THE MEMORY PORT NEEDS TO BE DISABLED.

 AHE30    LDM    AHEA+CPRHDR
          LPN    77
          LMN    PROCID
          NJP    AHE40       IF NOT CPU DESCRIPTOR
          READMR RDATA,CMCC,ECMR  READ MEMORY ENVIRONMENT CONTROL
          LDM    AHEB        CHECK IF CPU WAS ON
          NJN    AHE40       IF CPU WAS NOT ON

*         THE CPU WAS ON.  IF IT HAS BEEN CHANGED TO OFF OR DOWN IN THE NEW
*         DESCRIPTOR, THEN DISABLE THE MEMORY PORT.

          LDM    AHEA+CPRSTAT+PSCPOFF  CHECK THE NEW DESCRIPTOR
          LPC    1001
          ZJN    AHE40       IF NOT CHANGED TO OFF OR DOWN
          LDN    SSMR
          STD    RN
          LDM    HBUF+CPRPC
          RJM    RMR
          LPN    0#8
          ZJP    ERR         IF PROCESSOR NOT HALTED
          CALL   DIP         DISABLE MEMORY PORT

*         ISSUE *2AP* REQUEST TO WRITE THE MRT TO DISK.  FOR S0/S0E,
*         IT WILL BE WRITTEN TO THE CONSOLE DISK VIA PACKETS.

 AHE40    LDM    S0FLG       CHECK MAINFRAME TYPE
          ZJN    AHE50       IF NOT S0/S0E
          AOM    MRTU        INDICATE THAT MRT LOGGING IS REQUIRED
          LJM    AHEX        RETURN

 AHE50    LDN    33B         FUNCTION NUMBER
          STML   CALB
          STM    RTP1
          CALL   PFC         PREPARE FOR *2AP* CALL
          LDML   CALB+1
          ZJP    AHEX        IF NO ERROR, RETURN
          SBN    76+1
          PJP    AHEX        IF NO ERROR, RETURN
          LDC    0#4002      NO RETURN / SET STATUS / OFFSET TO ERROR STATUS WORD
          STML   RTP2
          CALL   PDE         PROCESS DISK ERROR ENCOUNTERED BY *2AP*

 AHEA     BSS    CMXLEN
 AHEB     BSS    1           CPU STATUS
 FPR      SPACE  4,10
**        FPR - FETCH PROCESSOR INFORMATION.
*
*         ENTRY  (VE REQUEST+2) = CPU NUMBER OR 10 FOR FIRST ACTIVE CPU.
*
*         CALLS  FHE, LRP, *ERR*.


          ROUTINE FPR

          RJM    LRP         LOAD REQUEST POINTER
          CRDL   W4
          LDD    W5          GET CP PARAMETER
          LPN    7           ISOLATE CPU NUMBER
          STD    CP
 FPR10    SHN    14
          ADN    PROCID
          RJM    //FHE       FETCH HARDWARE INFORMATION
          MJP    ERR         IF NO MORE CPUS
          LDM    HBUF+CPRSTAT+PSCPOFF  CHECK CPU STATUS
          LPC    1001
          ZJP    FPRX        IF CPU IS ON
          LDD    W5
          LPN    10
          NJN    FPR20       IF LOOKING FOR FIRST ACTIVE CPU
          LJM    ERR         REPORT ERROR

 FPR20    AOD    CP
          UJN    FPR10       CHECK NEXT CPU
 GMR      SPACE  4,10
**        GMR - GET MAINTENANCE REGISTERS.
*
*         USES   RN, T2, W0 - W7.
*
*         CALLS  LRP, *ERR*.


          ROUTINE  GMR

          RJM    LRP         LOAD REQUEST POINTER
          CRDL   W0          READ FUNCTION PARAMETERS
          ADN    1
          CRDL   W4          READ POINTER PARAMETER
          LDDL   W7
          SBN    2
          MJP    ERR         IF RESULT BUFFER < 2 WORDS LONG
          LRD    W5
          RJM    SPB         SET PP BOUNDS
          LDDL   W2          MAINTENANCE REGISTER PORT
          LPC    0#F0F       EXTRACT MAINTENANCE CHANNEL PORT AND TYPE FIELDS
          STML   GMRA
          LDDL   W3          MAINTENANCE REGISTER NUMBER
          STDL   RN          SET REGISTER NUMBER
          READMR RDATA,GMRA
          NJP    ERR         IF READ IS INCOMPLETE
          LDN    2
          STD    T2
          LDDL   W4          OFFSET
          ADC    RR
          CWML   RDATA,T2    WRITE REGISTER BLOCK
          LJM    GMRX        RETURN

 GMRA     BSS    1           PORT
 MVP      SPACE  4,10
**        MVP - MANAGE VIRTUAL PROCESSOR.
*
*         THIS ROUTINE PERFORMS THE SPECIFIED ACTION ON THE SPECIFIED CPU.
*
*         USES   T7, W0 - W3.
*
*         CALLS  ERR, FHE, LRP, RMR, *DIP*, *ENP*.
*
*         MACROS FUNCMR, WRITMR.


          ROUTINE  MVP       ENTRY/EXIT

          RJM    LRP         LOAD REQUEST POINTER
          CRDL   W0          FETCH REQUEST PARAMETERS
          LDDL   W1          GET CPU NUMBER
          SHN    -8D
          STM    RTP2
          SHN    14
          ADN    PROCID
          RJM    //FHE       FETCH HARDWARE INFORMATION
          MJP    ERR         IF CPU NOT FOUND
          LDN    SSMR        SET SUMMARY STATUS REGISTER
          STD    RN
          LDML   HBUF+CPRPC  SET CONNECT CODE
          STDL   EC
          LDDL   W1          CHECK ACTION
          LPC    377
          ZJP    MVP60       IF START CPU REQUEST

*         PROCESS HALT CPU REQUEST.

          READMR RDATA,CMCC,ECMR  READ MEMORY ENVIRONMENT CONTROL
          RJM    CMP         CHECK MEMORY PORT
          NJP    ERR         IF MEMORY PORT DISABLED
          LDML   HBUF+CPRPC  SET CONNECT CODE
          STDL   EC
          LDN    SSMR
          STD    RN

          FUNCMR ,MRHP       HALT PROCESSOR
 MVP10    LDDL   EC          CHECK IF CPU HALTED
          RJM    RMR         READ SUMMARY STATUS
          LPN    0#8
          ZJN    MVP10       IF NOT HALTED
          LDM    RTP2
          STD    T7
          SHN    2
          RAD    T7
          ERRNZ  CPNR-5      CODE ASSUMES VALUE
          LDML   TCPU+CPUM,T7  CHECK IF 990 MAINFRAME
          SHN    -4
          LMN    4
          ZJN    MVP15       IF 990 MAINFRAME
          LDML   TCPU+CPUM,T7
          SHN    -4
          LMN    3
          NJN    MVP20       IF NOT 860, 960, OR 990

 MVP15    FUNCMR HBUF+CPRPC,MRMC  MASTER CLEAR PROCESSOR
 MVP20    LDML   HEOM        HALF EXCHANGE OUT MONITOR
          STM    MVPA+7
          SHN    -8D
          STM    MVPA+6
          LDM    CSAR
          STD    RN
          WRITMR MVPA,HBUF+CPRPC
          FUNCMR HBUF+CPRPC,MRSP  START PROCESSOR
          LDC    200D        WAIT 100 MICROSECONDS
 MVP30    SBN    1
          NJN    MVP30       IF DELAY NOT COMPLETE
 MVP40    LDN    SSMR        READ SUMMARY STATUS
          STD    RN
          LDD    EC
          RJM    RMR
          LPN    0#8
          ZJN    MVP40       IF PROCESSOR NOT HALTED
          LDM    RTP2
          STD    T7
          SHN    2
          RAD    T7
          ERRNZ  CPNR-5      CODE ASSUMES VALUE
          LDML   TCPU+CPUM,T7  CHECK IF THETA MAINFRAME
          SHN    -4
          LMN    4
          ZJN    MVP45       IF 990 MAINFRAME
          LDML   TCPU+CPUM,T7
          SHN    -4
          LMN    3
          NJN    MVP50       IF NOT 860, 960, OR 990
 MVP45    FUNCMR HBUF+CPRPC,MRMC  MASTERCLEAR PROCESSOR

 MVP50    CALL   DIP         DISABLE MEMORY PORT
          LJM    MVPX        RETURN

*         PROCESS START CPU REQUEST.

 MVP60    LDDL   EC          ENSURE THAT THE CPU IS CURRENTLY HALTED
          RJM    RMR         READ SUMMARY STATUS
          STD    T7
          LPN    0#8
          ZJP    MVP80       IF NOT CURRENTLY HALTED
          LDD    T7          CHECK IF CPU IN MONITOR MODE
          LPN    0#20
          ZJP    MVP80       IF CPU IN JOB MODE
          CALL   ENP         ENABLE MEMORY PORT
          LDML   HEIM        SET START ADDRESS FOR MONITOR MODE
          STM    MVPA+7
          SHN    -8D
          STM    MVPA+6
          LDML   CSAR
          STDL   RN
          WRITMR MVPA,HBUF+CPRPC  WRITE START ADDRESS
          FUNCMR HBUF+CPRPC,MRSP       START PROCESSOR
          LDC    200D        WAIT 100 MICROSECONDS
 MVP70    SBN    1
          NJN    MVP70       DELAY
          LJM    MVPX        RETURN

 MVP80    LJM    ERR

 MVPA     BSSZ   10          CONTROL STORE ADDRESS
 RDL      SPACE  4,15
**        RDL - REQUEST DATA LENGTH.
*
*         EXIT   TO *PDE* IF *2AP* ERROR ENCOUNTERED.
*
*         USES   W0 - W3.
*
*         CALLS  LRP, PFC.
*
*         NOTES  THE REQUESTED DATA MUST BE GREATER THAN THREE
*                CM WORDS IN LENGTH; OTHERWISE, AN ERROR WILL BE
*                INDICATED WHEN NONE OCCURRED.


          ROUTINE  RDL

          RJM    LRP         LOAD REQUEST POINTER
          CRDL   W0
          LDC    1020B       READ 16-BIT DATA SECTOR
          STM    CALB
          LPN    77
          STM    RTP1
          LDD    W1          UPPER 12 BITS OF NAME
          STM    CALB+1
          LDD    W2          LOWER 12 BITS OF NAME
          STM    CALB+2
          CALL   PFC         PREPARE FOR *2AP* CALL
          LDML   CALB+1      CHECK FOR ERROR
          ZJN    RDL0        IF NO ERROR ON CALL
          SBN    76+1
          PJN    RDL0        IF NO ERROR ON CALL
          LDC    0#4001      NO RETURN / SET STATUS / OFFSET TO ERROR STATUS WORD
          STML   RTP2
          CALL   PDE         PROCESS DISK ERROR ENCOUNTERED BY *2AP*

 RDL0     RJM    LRP         LOAD REQUEST POINTER
          CRDL   W0
          LDDL   W1          CHECK IF REQUEST FOR *CEL* LENGTH
          CODE   D
          LMC    2RCE
          CODE   *
          NJN    RDL1        IF NOT *CEL*
          LDDL   W2
          CODE   D
          LMC    2RL
          CODE   *
          ZJN    RDL2        IF *CEL*, IGNORE VALID CHECK
 RDL1     LDM    CALB+1
          SHN    21-12
          MJN    RDL2        IF DATA IS VALID
          LDC    0#300       DFT INVALID CDA DATA READ
          LJM    ERR10       RETURN RESPONSE

 RDL2     LDML   CALB+1      RETURN PROGRAM LENGTH
          LPC    0#1FF
          ADN    3           ROUND UP TO NEAREST NUMBER OF CM WORDS
          SHN    -2
          STML   W3
          RJM    LRP         LOAD REQUEST POINTER
          CWDL   W0
          LJM    RPLX        RETURN
 RPL      SPACE  4,15
**        RPL - REQUEST PROGRAM LENGTH.
*
*         EXIT   TO *PDE* IF *2AP* ERROR ENCOUNTERED.
*
*         USES   W0 - W3.
*
*         CALLS  LRP, PFC.
*
*         NOTES  THE REQUESTED PROGRAM MUST BE GREATER THAN THREE
*                CM WORDS IN LENGTH; OTHERWISE, AN ERROR WILL BE
*                INDICATED WHEN NONE OCCURRED.


          ROUTINE  RPL

          RJM    LRP         LOAD REQUEST POINTER
          CRDL   W0
          LDN    23B         FUNCTION NUMBER
          STM    CALB
          STM    RTP1
          LDD    W1          UPPER 12 BITS OF NAME
          STM    CALB+1
          LDD    W2          LOWER 12 BITS OF NAME
          STM    CALB+2
          CALL   PFC         PREPARE FOR *2AP* CALL
          LDML   CALB+1      CHECK FOR ERROR
          ZJN    RPL1        IF NO ERROR ON CALL
          SBN    76+1
          PJN    RPL1        IF NO ERROR ON CALL
          LDC    0#4001      NO RETURN / SET STATUS / OFFSET TO ERROR STATUS WORD
          STML   RTP2
          CALL   PDE         PROCESS DISK ERROR ENCOUNTERED BY *2AP*

 RPL1     RJM    LRP         LOAD REQUEST POINTER
          CRDL   W0
          LDML   CALB+1      RETURN PROGRAM LENGTH
          STML   W3
          RJM    LRP         LOAD REQUEST POINTER
          CWDL   W0
          LJM    RPLX        RETURN
 COMMON   SPACE  4,10
**        COMMON DECKS.


 WHE$     EQU    0           DEFINE *WHE* ROUTINE IN DSI$GET HARDWARE ELEMENT
 QUAL$    EQU    0           SELECT UNQUALIFIED COMMON DECKS
*copy     dsi$get_hardware_element

*         END    CTP$DFT REQUEST PROCESSOR 2
