ASMB,Q,C
      HED FINFO: HP 3000 RFA SUBROUTINE * (C) HEWLETT-PACKARD CO. 
      NAM FINFO,7 91750-1X117 REV.2013 790326 MEF 
      SPC 1 
******************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS      *
*  * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,       *
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
*  * THE PRIOR WRITTEN CONSENT OF THE HEWLETT-PACKARD COMPANY.   *
******************************************************************
      SPC 2 
      ENT FINFO 
* 
      EXT D$RQB 
      EXT .ENTR,D$INI,D$RFH,D$STW,D$PRM,D3KMS 
      EXT D$ERR,D$IPM,D$NPM,D$SPM 
      SPC 2 
      UNL           NEXT 5 LINES ARE FOR PRODUCTION ENGINEERING 
*  NAME: FINFO
*SOURCE: 91750-18117
* RELOC: 91750-1X117
*  PGMR: DMT
      LST 
*************************  FINFO  ************************* 
*                                                         * 
*     SOURCE: 91750-18117                                 * 
*                                                         * 
*     BINARY: 91750-1X117                                 * 
*                                                         * 
*     PROGRAMMER: JIM HARTSELL                            * 
*                                                         * 
*     DATE: AUGUST 13, 1975                               * 
*                                                         * 
*---------------------------------------------------------* 
*                                                         * 
*   MODIFIED FOR DS/1000 ENHANCEMENTS BY DMT BEGINNING    * 
*   MARCH 26, 1979.                                       * 
*                                                         * 
*********************************************************** 
      SPC 2 
B     EQU 1 
      SUP 
      SPC 2 
FINFO NOP           ENTRY POINT.
      LDA DPRAM     CLEAR OLD PARAM ADDRESSES.
      STA ENTRY 
      LDB COUNT 
      CLA 
      STA ENTRY,I 
      ISZ ENTRY 
      INB,SZB 
      JMP *-3 
      LDA FINFO 
      STA ENTRY 
      JMP BEGIN 
COUNT DEC -20 
* 
PRAMS NOP           FILE NUMBER.
      NOP           FILE NAME ARRAY (14 WORDS). 
      NOP           FOPTIONS. 
      NOP           AOPTIONS. 
      NOP           RECORD SIZE.
      NOP           DEVICE TYPE.
      NOP           LOGICAL DEVICE #. 
      NOP           HARDWARE ADDRESS. 
      NOP           FILE CODE.
      NOP           RECORD POINTER (DBL-WORD).
      NOP           END-OF-FILE (DBL-WORD). 
      NOP           FILE LIMITS (DBL-WORD). 
      NOP           # RECORDS XF (DBL-WORD).
      NOP           # PHYS I/O XF (DBL-WORD). 
      NOP           BLOCK SIZE. 
      NOP           EXTENT SIZE.
      NOP           NUMBER OF EXTENTS.
      NOP           USER LABELS.
      NOP           CREATOR ID (4 WORDS). 
      NOP           LABEL  ADDRESS (DBL-WORD).
* 
ENTRY NOP           ENTRY POINT.
BEGIN JSB .ENTR     GET ADDRESSES OF USER PARAMS. 
DPRAM DEF PRAMS 
      CLA           CLEAR ERROR CODE FOR FCHEK. 
      CLB 
      DST D$ERR 
* 
      SKP 
* 
* BUILD FRONT END OF REQUEST BUFFER.
* 
      LDA DPRAM     ADDR OF 1ST PARAM TO SEND.
      JSB D$INI     INITIALIZE BUFFER STUFFERS. 
* 
      JSB D$RFH     SET UP FIXED FORMAT.
* 
      LDA B15 
      JSB D$STW     FINFO CODE = 15 OCTAL.
* 
* MOVE USER PARAMS TO REQUEST BUFFER. 
* 
      CCA           MOVE FNUM.
      JSB D$PRM 
* 
* SET UP DBL-WORD PARAMETER MASK FOR 20 PARAMS: BIT 3 OF 1ST WORD 
* REPRESENTS THE FILNUM PARAM; BIT 0 OF 2ND WORD REPRESENTS 
* LABADDR.  IF A BIT IS SET, THAT PARAMETER WAS SPECIFIED IN
* THE CALLING SEQUENCE. 
* 
      LDA DPRAM     ADDR OF 1ST PARAM ADDRESS.
      LDB N4        CHECK 1ST 4 PARAMS FOR MASK(1). 
      JSB BTMSK     BUILD MASK WORD 1.
      JSB D$STW     STORE WORD 1 OF MASK IN REQUEST.
      LDA DPRAM 
      ADA B4        ADDR OF 5TH PARAM ADDRESS.
      LDB N16       CHECK LAST 16 PARAMS FOR MASK(2). 
      JSB BTMSK     BUILD MASK WORD 2.
      JSB D$STW     STORE WORD 2 OF MASK IN REQUEST.
* 
* REQUEST BUFFER READY. SEND TO QUEX'S CLASS, 
* AND WAIT FOR REPLY. 
* 
      JSB D3KMS     SHIP REQUEST BUFFER TO QUEX.
      DEF *+2 
      DEF BIT15     NO ABORT. 
      JMP ABERR     ERROR RETURN. 
* 
* PASS RETURN PARAMETERS TO THE CALLER IF PARAM SPECIFIED.
* 
      STA TEMP      SAVE STATUS WORD. 
* 
      LDB D$RQB     IF REPLY PARAM NOT RETURNED,
      ADB B7         STORE ZERO IN PARAM SLOT.
      LDA B,I       REPLY BYTE COUNT. 
      ADB D44 
      STB TEMP1     POINTER TO LAST PARAM.
      INA 
      ARS           REPLY WORD COUNT. 
      ADA N44       # PARAMS WORDS TO CLEAR.
      SSA,RSS 
      JMP RTP       ALL PARAMS RETURNED.
LOOP  CLB 
      STB TEMP1,I 
      LDB TEMP1 
      ADB N1
      STB TEMP1 
      INA,SZA 
      JMP LOOP
* 
RTP   LDA DPRAM     INITIALIZE: 
      INA            (A) = ADDR OF 1ST RETURN PARAM ADDR. 
      LDB D$RQB 
      ADB D9         (B) = ADDR OF 1ST REPLY VALUE. 
      JSB D$IPM 
* 
      LDA N14       RETURN FILE NAME (14 WORDS).
      JSB D$SPM 
* 
      LDA N7        RETURN FOPTIONS THRU FILECODE.
      CCB             (SINGLE WORD VALUES)
      JSB D$NPM 
* 
      LDA N5        RETURN RECPT THRU PHYSCOUNT.
      LDB N2          (DOUBLE WORD VALUES)
      JSB D$NPM 
* 
      LDA N4        RETURN BLKSIZE THRU USERLABELS. 
      CCB             (SINGLE WORD VALUES)
      JSB D$NPM 
* 
      LDA N4        RETURN CREATORID. 
      JSB D$SPM       (4-WORD VALUES) 
* 
      LDA N2        RETURN LABADDR. 
      JSB D$SPM 
* 
      LDA TEMP      RESTORE STATUS WORD.
      JMP ENTRY,I   RETURN TO USER. (A) = STATUS. 
* 
ABERR DST D$ERR     STORE CODE FOR FCHEK RETRIEVAL. 
      CLA 
      JMP ENTRY,I   RETURN. 
* 
* SUBROUTINE TO BUILD PARAMETER BIT MASK. 
*   (A) = ADDR OF 1ST PARAM.
*   (B) = # PARAMS. 
* 
BTMSK NOP 
      STA TEMP      SAVE PARAM ADDR.
      STB TEMP1     SAVE # PARAMS.
      CLA,RSS       RESET BIT MASK WORD.
MSK   RAL           SHIFT ACCUMULATED BITS. 
      LDB TEMP,I    SEE IF PARAM GIVEN. 
      SZB 
      IOR B1        YES. SET THE BIT. 
      ISZ TEMP
      ISZ TEMP1 
      JMP MSK       LOOP FOR N PARAMS.
      JMP BTMSK,I   RETURN. (A) = BIT MASK. 
      SPC 4 
* 
* CONSTANTS AND WORKING STORAGE.
* 
B1    OCT 1 
B4    OCT 4 
B7    OCT 7 
B15   OCT 15
D9    DEC 9 
D44   DEC 44
N1    DEC -1
N2    DEC -2
N4    DEC -4
N5    DEC -5
N7    DEC -7
N14   DEC -14 
N16   DEC -16 
N44   DEC -44 
BIT15 OCT 100000
TEMP  NOP 
TEMP1 NOP 
* 
      END 
                                                                                                                                                                                            