ASMB,R,L,C
      HED "RP.." FMGR ROUTINE TO DO :RP,X,Y,Z 
*     SOURCE: 92067-18231 
*     RELOC:  92067-16185 
*     PGMR:   D.L.B.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS     *
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,      *
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.       *
*  ***************************************************************
      NAM RP..,8 92067-16185 REV.2026 800306
* 
*   MODIFICATION RECORD:
*       DATE   REASON  (BY WHOM)
*  1)  800306  TO CALL "IDRP" INSTEAD OF "IDRPL" THUS ALLOWING
*              TYPE 6 FILES TO RESIDE ON ANY CARTRIDGE. 
*              REMOVED CARTRIDGE DEFAULT TO LU 2 AND 3. 
*              ADDED OPTIONAL THIRD PARAMETER:  PROGRAM NAME
*              DIFFERENT FROM FILE NAME.               (DCL)
* 
      ENT RP..
      EXT IDSGA,MSS.,EXEC,OPEN,IER.,.E.R. 
      EXT IDRPD,.ENTR,I.BUF,N.OPL                            800306 
      EXT IDRP,..BF.,..BL.                                   800306 
*      EXT BUF.,READF 
      SPC 1 
A     EQU 0 
      SPC 1 
DUMMY NOP           DUMMY PARAMETER 
PBUF  NOP           PARAMETER BUFFER
IERR  NOP           RETURNED ERROR PARAMETER
RP..  NOP           ENTRY 
      JSB .ENTR 
      DEF DUMMY 
      LDA PBUF      CALCULATE THE ADDRESS OF THE
      ADA O4        TWO PARAMETERS
      LDB A,I       GET PARAMETER TYPE
      INA           BUMP TO THE NAME
      STA PRAM2 
      SZB,RSS       CHECK IF SECOND PARAMETER 
      JMP SKPCC     SKIP THE :RP,,XXXXX 
      SPC 1 
      JSB IDSGA     FIND IF ID FOR 2ND PARAMETER
      DEF *+2 
PRAM2 DEF * 
      SEZ,RSS       FOUND?
      JMP FOUN1     YES, :RP,, IT 
      JSB MSS.      NO, OUTPUT FMGR 009 
      DEF *+2 
      DEF D2009 
      JMP SKPCC     NOW TRY :RP,
      SPC 1 
FOUN1 JSB IDRPD     DELETE THE ID 
      DEF *+3 
      DEF PRAM2,I   NAME OF ID
      DEF DUMMY     DONOT CHANGE 6P IF GOOD RETURN
      SZA           CHECK IF ANY ERRORS 
      JMP EXIT      YES, RETURN NOW 
      SPC 1 
      JSB EXEC      NO, RELEASE ANY TRACKS
      DEF *+3 
      DEF O5
      DEF OM1 
      SPC 1 
SKPCC LDA PBUF,I    GET THE 1ST PARAMETER TYPE
      SZA,RSS       CHECK IF 1ST PARAMETER
      JMP RP..,I    NO, JUST RETURN DONE
* 
      LDA PBUF      LOAD PARAMETER ARRAY ADDRESS             800306 
      ADA D8        POINT TO THIRD PARAMETER                 800306 
      LDB A,I       LOAD PARAMETER TYPE                      800306 
* 
      SZB,RSS       IF 3RD PARAMETER ABSENT                  800306 
      LDA PBUF        THEN DEFAULT PROG NAME TO FILE NAME    800306 
* 
      INA           POINT TO BEGINNING OF NAME               800306 
      STA PRAM3     SAVE PROGRAM NAME ADDRESS                800306 
* 
      JSB IDSGA     FIND IF EXISTS
      DEF *+2 
PRAM3 DEF *-*       (PROGRAM NAME)                           800306 
* 
      SEZ           CHECK IF FOUND? 
      JMP FOUN2     NO, THEN PROCEED TO :RP,
      LDA D23       YES, DUPLICATE PROGRAM
EXIT  STA IERR,I    RETURN FMGR 023 
      JMP RP..,I    ERROR RETURN, WITH ERROR CHANGED!!
      SPC 1 
FOUN2 LDA DFDIS,I   GET DISC SUBPARAMETER 
* 
** REMOVE THE CARTRIDGE DEFAULT TO LU 2 AND 3   (DCL)  800306 
**      SZA,RSS       IF NOT SPECIFIED, 
**      LDA OM2       TRY FINDING IT ON LU 2
* 
      STA DIS       SAVE IT 
      ISZ PBUF      POINT TO FILE NAME                       800306 
* 
      JSB OPEN      TRY OPENING THE TYPE 6 FILE 
      DEF *+7 
      DEF I.BUF     DCB 
      DEF .E.R.     ERROR RETURN
      DEF PBUF,I    FILE NAME 
      DEF O5        NON-EXCLUSIVE, FORCE TYPE 1 
      DEF N.OPL     FILE SECURITY CODE
      DEF DIS       DISC CRN/LU 
* 
** REMOVE THE CARTRIDGE DEFAULT TO LU 2 AND 3   (DCL)  800306 
**      LDA .E.R.     GET ERROR CODE
**      CPA OM6       FILE NOT FOUND? 
**      RSS           NOT FOUND, SO CHECK IF DISC WAS SPECIFIED 
**      JMP FOUN3     FOUND, SO CHECK FOR ANY ERROR AT ALL
**      LDA DFDIS,I   WAS DISC SPECIFIED AS A SUBPARAMETER? 
**      SZA 
**      JMP FOUN3     SPECIFIED, SO RETURN THE ERROR
**      LDA SECT3,I   NOT SPECIFIED, SO CHECK IF LU 3 EXISTS
**      SZA,RSS 
**      JMP FOUN3     NO LU 3, SO RETURN ERROR (NOT FOUND ON LU 2)
**
**      JSB OPEN      LU 3 EXISTS, TRY OPEN ON LU 3 
**      DEF *+7 
**      DEF I.BUF     DCB 
**      DEF .E.R.     ERROR RETURN
**      DEF PBUF,I    FILE NAME 
**      DEF O5        NON-EXCLUSIVE, FORCE TYPE 1 
**      DEF N.OPL     FILE SECURITY CODE
**      DEF OM3       LU 3
*** 
**FOUN3 LDA .E.R.     GET ERROR CODE
**      SSA           CHECK FOR OPEN ERROR
**      JMP FOUN4     YES, SO RETURN THE ERROR
*** 
**      JSB READF     NOW READ THE 1ST RECORD 
**      DEF *+5 
**      DEF I.BUF 
**      DEF .E.R. 
**      DEF BUF.
**      DEF D128
**FOUN4 EQU * 
* 
      JSB IER.      CHECK IF ANY ERROR
      DEF *+1 
* 
      JSB IDRP      NOW DO THE :RP,                          800306 
       DEF *+1+5                                             800306 
       DEF I.BUF     (DCB FOR FILE) 
       DEF DUMMY     (GET ERROR LOCALLY)
       DEF PRAM3,I   (PROGRAM NAME)                          800306 
       DEF ..BF.     (DISK COPY BUFFER)                      800306 
       DEF ..BL.     (BUFFER LENGTH)                         800306 
* 
      SZA,RSS       CHECK IF ANY ERROR? 
      JMP RP..,I    NO, RETURN DONE 
      JMP EXIT      YES, SET THE ERROR NUMBER 
* 
      SPC 1 
DFDIS DEF N.OPL+1 
DIS   NOP 
O4    OCT 4 
O5    OCT 5 
D8    DEC 8 
D23   DEC 23
D2009 DEC 2009
OM1   OCT -1
* 
**SECT3 EQU 1760B 
**D128  DEC 128 
**OM2   OCT -2
**OM3   OCT -3
**OM6   OCT -6
      END 
                                                                                                                                                                                                                                          