ASMB,R,L,C
      HED (FMP) NAMF: RENAME A FILE 
*     NAME:   NAMF
*     SOURCE: 92071-18046 
*     RELOC:  92071-16046 
*     PGMR:   G.A.A.
*     MOD:    M.L.K., E.D.B.
* 
*  ***************************************************************
*  * (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 HEWLETT-PACKARD COMPANY.       *
*  ***************************************************************
* 
      NAM NAMF,7 92071-1X046 REV.2041 800408
* 
      ENT NAMF
* 
      EXT CLOSE, OPEN, NAM..
      EXT CLD.R, .P1, .P2, .P4, .P5, .R1
      EXT .ENTR, $SETP
* 
      EXT F.DCB, F.LU,  F.ST1 
      SUP 
      SKP 
* 
*     DESCRIPTION 
* 
*     NAMF IS THE FILE NAME CHANGE MODULE OF THE
*     RTE FILE MANAGEMENT PACKADGE. 
* 
*     CALLING SEQUENCE: 
* 
*     CALL NAMF(IDCB,IERR,NAME,NNAME,ISECU,ICR) 
* 
*     WHERE:
* 
*     IDCB   IS A SCRATCH DATA CONTROL BLOCK (144-WORD ARRAY) 
*            THIS AREA IS FREE AFTER THE CALL.
* 
*     IERR   WILL BE THE ERROR RETURN CODE. 
*            ALSO RETURNED IN THE A-REG.
* 
*     NAME   THE OLD 6 CHARACTER FILE NAME (3-WORD ARRAY).
* 
*     NNAME  THE NEW 6 CHARACTER FILE NAME (3-WORD ARRAY).
* 
*     ISECU  THE FILE'S SECURITY CODE (OPTIONAL). 
* 
*     ICR    THE FILE'S DISC ID (OPTIONAL). 
* 
*     POSSIBLE ERRORS:
* 
*      0   NO ERROR 
*     -1   DISC DOWN
*     -2   DUPLICATE NAME 
*     -6   CARTRIDGE OR FILE NOT FOUND
*     -7   INVALID SECURITY CODE
*     -8   FILE CURRENTLY OPEN
*     -10  NOT ENOUGH PARAMETERS
*     -13  THE REQUIRED DISC IS LOCKED
*     -15  ILLEGAL NEW NAME 
      SKP 
* 
*     ENTRY 
* 
NAMF  NOP           ENTRY POINT 
      LDA DZERO 
      STA NNAME 
      STA ISECU 
      STA ICR 
      LDA NAMF
      STA DAMF
      JMP DAMF+1
* 
IDCB  NOP 
IERR  NOP 
NAME  NOP 
NNAME DEF ZERO
ISECU DEF ZERO
ICR   DEF ZERO
* 
DAMF  NOP 
      JSB .ENTR     FETCH PARAM ADDRESSES 
      DEF IDCB       TO LOCAL LIST
* 
      LDB NNAME     NEW NAME SUPPLIED?
      CPB DZERO 
      JMP ER10      NO; GO EXIT 
* 
      LDA IDCB      SET UP POINTERS INTO DCB
      LDB F.DCB 
      JSB $SETP 
      DEF .16 
      NOP 
      SKP 
* 
*     PROCESS REQUEST 
* 
      JSB NAM..     YES; IS THE NEW NAME
      DEF *+2        LEGAL
      DEF NNAME,I     FOR A FILE NAME?
* 
      SZA 
      JMP EREX      NO; EXIT
* 
      JSB OPEN      CALL
      DEF *+7        TO 
      DEF IDCB,I      OPEN
      DEF IERR,I       THE
      DEF NAME,I        FILE
      DEF ZERO           EXCLUSIVELY
      DEF ISECU,I         WITH
      DEF ICR,I            USER PRAMS 
* 
      SSA           SUCCESSFUL  OPEN? 
      JMP EREX      NO; EXIT
* 
      LDA F.ST1,I   GET FIRST STATUS WORD 
      SSA,RSS       IF SECCD DOESN'T MATCH, 
      JMP ER7        THEN CLOSE AND EXIT
* 
*     SET UP D.RTR NAME CHANGE CALL 
* 
      LDA .2        GET FUNCTION CODE 
      STA .P1        SAVE FOR D.RTR 
* 
      DLD F.LU,I    GET DIRECTORY ENTRY ADDRESS 
      DST .P2        SAVE FOR D.RTR 
* 
      LDA NNAME,I  GET NEW NAME 
      STA .P4       SAVE FOR D.RTR
      ISZ NNAME 
      DLD NNAME,I 
      DST .P5 
* 
      JSB CLD.R     CALL D.RTR
* 
      LDA .R1       GET ERROR CODE
      JMP EREX       AND EXIT 
      SKP 
* 
*     EXIT
* 
ER7   LDA N7        BAD SECURITY CODE 
      JMP EREX
* 
ER10  LDA N10       NOT ENOUGH PARAMETERS 
      JMP EREX
* 
EREX  STA IERR,I    SAVE ERROR CODE 
      JSB CLOSE     CLOSE 
      DEF *+2        THE
      DEF IDCB,I      FILE
* 
      LDA IERR,I    GET ERROR CODE
      JMP DAMF,I     AND RETURN 
      SKP 
* 
*     STORAGE AREA
* 
ZERO  NOP 
* 
N7    DEC -7
N10   DEC -10 
* 
.2    DEC 2 
.16   DEC 16
* 
DZERO DEF ZERO
* 
A     EQU 0 
B     EQU 1 
* 
END   EQU *         PROG. LENGTH
* 
      END 
                                