ASMB,R,L,C
*     NAME:   NAMF
*     SOURCE: 92070-18046 
*     RELOC:  92070-16046 
*     PGMR:   G.A.A.
*     MOD:    M.L.K.
* 
*  ***************************************************************
*  * (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 NAMF,7  92070-1X046  REV.1941  790709 
* 
      HED NAMF
      EXT .ENTR,CLOSE,NAM..,OPEN
      EXT CLD.R,.P1,.P2,.P3,.P4,.P6,.R1 
      ENT NAMF
      SUP 
* 
*     NAMF IS THE FILE NAME CHANGE MODULE OF THE
*     RTE FILE MANAGEMENT PACKADGE. 
* 
*     CALLING SEQUENCE: 
* 
*     CALL NAMF(IDCB,IERR,NAME,NNAME,IS,ILU)
* 
*     WHERE:
*         IDCB  IS A 144 WORD DATA CONTROL BLOCK
*               THIS AREA IS FREE AFTER THE CALL. 
* 
*         IERR  IS THE  ERROR RETURN LOCATION 
*               ERRORS  ARE RETURNED HERE AND IN
*               THE A REGISTER. 
*               DEFINED ERRORS ARE: 
* 
* 
*               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
* 
*         NNAME THE NEW 6 CHARACTER FILE NAME 
* 
*         IS    OPTIONAL - THE FILE SECURITY CODE 
* 
*         ILU   OPTIONAL - THE FILES DISC ID. 
      SKP 
NAMF  NOP           ENTRY POINT 
      LDA DZERO 
X     REP 3 
      STA *-X+NNAME 
      CLA 
      STA ZERO
      LDA NAMF
      STA DAMF
      JMP DAMF+1
* 
* 
DCB   DEF ZERO
IERR  DEF ZERO
NAME  DEF ZERO
NNAME DEF ZERO
IS    DEF ZERO
ILU   DEF ZERO
* 
* 
DAMF  NOP 
      JSB .ENTR     FETCH PARAM ADDRESSES 
      DEF DCB        TO LOCAL LIST
      SPC 1 
      LDA N10       LOAD FOR NOT ENOUGH PRAM REJECT 
      LDB NNAME     NEW NAME SUPPLIED?
      CPB DZERO 
      JMP EXIT      NO; GO EXIT 
      SPC 1 
      JSB NAM..     YES;NEW NAME
      DEF NAM.R     LEGAL 
      DEF NNAME,I    FOR A FILE NAME? 
NAM.R SZA 
      JMP EXIT      NO; EXIT
      JSB OPEN      CALL
      DEF OPRTN      TO 
      DEF DCB,I       OPEN
      DEF IERR,I       THE
      DEF NAME,I        FILE
      DEF ZERO           EXCLUSIVELY
      DEF IS,I            WITH
      DEF ILU,I            USER PRAMS 
OPRTN SSA           SUCESSFUL  OPEN?
      JMP EXIT      NO; EXIT
      LDA DCB       YES; CHECK
      ADA .7              THE 
      LDB A,I              SECURITY 
      LDA N7                CODE
      SSB,RSS                MATCH? 
      JMP CLOEX               NO; CLOSE AND EXIT
* 
      LDA .2
      STA .P1 
      LDB DCB 
      LDA B,I 
      STA .P2 
      INB 
      LDA B,I 
      STA .P3 
      DLD NNAME,I 
      DST .P4 
      LDA NNAME 
      ADA .2
      LDA A,I 
      STA .P6 
      JSB CLD.R 
* 
      LDA .R1       ERROR FLAG TO A 
      STA NAME      SAVE IT 
      SPC 1 
      RSS           SKIP ERROR ENTRY
CLOEX STA NAME       SAVE ERROR CODE
      JSB CLOSE     CLOSE 
      DEF CLOR1      THE
      DEF DCB,I       FILE
CLOR1 LDB NAME      GET ERROR CODE
      SZB            IF NONE SKIP 
      LDA B         ELSE USE IT 
EXIT  STA IERR,I    SET RETURN ERROR
      JMP DAMF,I    EXIT TO USER
      SPC 3 
*      CONSTANTS
* 
ZERO  NOP 
DZERO DEF ZERO
N7    DEC -7
.7    DEC 7 
N10   DEC -10 
.2    DEC 2 
A     EQU 0 
B     EQU 1 
END   EQU *         PROG. LENGTH
      SPC 1 
      END 
                                                                                                                                                                                                                                                              