ASMB,R,L,C
      HED NAMF
*     NAME:   NAMF
*     SOURCE: 92067-18129 
*     RELOC:  92067-16125 
*     PGMR:   G.A.A.,N.J.S. 
* 
*  ***************************************************************
*  * (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 92067-16125 REV.2001 790924
      ENT NAMF
      EXT EXEC, .ENTR, CLOSE, NAM.., OPEN, RMPAR
      EXT SESSN, ISMVE, $SMID, OVRD.
* 
*     NAMF IS THE FILE NAME CHANGE MODULE OF THE
*     RTE FILE MANAGEMENT PACKAGE.
* 
*     CALLING SEQUENCE: 
* 
*     CALL NAMF(IDCB,IERR,NAME,NNAME,IS,ILU,DUM,ILNAM)
* 
*     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   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
*              -19  ILLEGAL ACCESS ON A SYSTEM DISC 
*              -32  CARTRIDGE NOT FOUND 
* 
*         NNAME THE NEW 6 CHARACTER FILE NAME 
* 
*         IS    OPTIONAL - THE FILE SECURITY CODE 
* 
*         ILU   OPTIONAL - THE FILES DISC ID. 
* 
*         DUM   OPTIONAL - DUMMY PARAMETER TO SEPERATE ILMAN FROM 
*                          THE DOCUMENTED PARAMETERS. 
* 
*         ILNAM OPTIONAL - NOT DOCUMENTED FOR EXTERNAL USE.  IF SET 
*                          TO 70707B NAMF WILL ALLOW A FILE TO BE 
*                          RENAMED WITH AN ILLEGAL FILE NAME. 
* 
* 
      SPC 3 
DCB   DEF ZERO      DEFINE
IERR  DEF ZERO       PARAMATER
NAME  DEF ZERO        ADDRESSES 
NNAME DEF ZERO
IS    DEF ZERO
ILU   DEF ZERO
DUM   DEF ZERO
ILNAM DEF ZERO
      NOP 
      SPC 1 
NAMF  NOP           ENTRY POINT 
      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 
      LDA ILNAM,I   GET ILLEGAL NAME PARAMETER
      CPA ILNMF     EQUAL TO 70707B?
      JMP NAM.0     YES - SKIP NAM.. CALL.
      JSB NAM..     YES;NEW NAME
      DEF NAM.R     LEGAL 
      DEF NNAME,I    FOR A FILE NAME? 
NAM.R SZA 
      JMP EXIT      NO; EXIT
NAM.0 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
* 
      CPA .6        TYPE 6??
      RSS           YES - SPECIAL CHECK TO ALLOW RENAME OF TYPE 6 FILE
*                           ON LU 2 OR 3 IF CALLER IS PERSON WHO SP'ED IT 
      JMP NAMF1     NOPE - CONTINUE NORMAL RENAME 
* 
      JSB SESSN     SEE IF IN SESSION 
      DEF *+2 
      DEF XEQT
* 
      SEZ           IN SESSION? 
      JMP NAMF1     NO - WILL BE ABLE TO RENAME ANY TYPE 6 FILE SO SKIP 
      STB BUF       KEEP SESSION ID 
      JSB ISMVE     LOOK IN SCB AND GET USER ID 
      DEF *+5 
      DEF BUF       SESSION ID
      DEF $SMID     OFFSET
      DEF ID        PUT ID HERE 
      DEF .1        GET ONLY 1 WORD 
* 
      LDB DCB       GET ADDRESS OF DCB
      LDA B,I       GET 1ST WORD OF DCB 
      AND B77       MASK TO LU
      ADA PRC       ADD IN SPECIAL FUNCTION BITS
      STA DCB2       AND SAVE FOR EXEC CALL 
      ADB .3        POSITION TO TRACK WORD
      LDA B,I       GET TRACK 
      STA TRACK      AND SAVE FOR EXEC CALL 
      INB           INCREMENT POINTER TO 2ND WORD OF DCB
      LDA B,I       GET SECTOR FROM DCB 
      STA SECT       AND SAVE FOR EXEC CALL 
* 
      JSB EXEC      READ 39 WORDS OF 1ST RECORD INTO BUF
      DEF *+7 
      DEF .1
      DEF DCB2
      DEF BUF 
      DEF .39 
      DEF TRACK 
      DEF SECT
* 
      LDA N1        PRESET IN CASE OF ERROR 
      CPB .39       CHECK TRANSMISSION LOG
      RSS           OK
      JMP EXIT      ERROR EXIT
* 
      LDA ABUF      GET ADDRESS OF BUFFER 
      ADA .38       POSITION TO 39TH WORD 
      LDA A,I       THIS SHOULD BE THE ID WORD
      AND B7777     MASK TO LOWER 12 BITS 
      CPA ID         SAME AS CALLERS? 
      RSS           YEP - LET HIM RENAME IT 
      JMP NAMF1     NO GO AHEAD - WILL GET KICKED OUT WITH SECURITY CHECKS
* 
      LDA OVRD.     SET OVEALLOW OPEN ON LU2 WITH WRITE ACCESS
      STA BUF       KEEP AROUND TEMPORARILY 
      IOR BIT14     SET BIT 14  - P,G,S - IF NOT ALREADY SET
      STA OVRD.      AND REPLACE
      JSB OPEN
      DEF OPRN1     REOPEN WITH OVERRIDE SET
      DEF DCB,I 
      DEF IERR,I
      DEF NAME,I
      DEF ZERO
      DEF IS,I
      DEF ILU,I 
OPRN1 SSA           ERRORS??
      JMP EXIT      YES - ERROR EXIT
      LDA BUF       REPLACE OVRD. THE WAY IT WAS BEFORE 
      STA OVRD. 
* 
NAMF1 LDA DCB       YES; CHECK
      ADA .7              THE 
      LDB A,I              SECURITY 
      LDA N7                CODE
      SSB,RSS                MATCH? 
      JMP CLOEX               NO; CLOSE AND EXIT
      DLD DCB,I     GET DCB2 TO B 
      STB DCB2       AND SAVE IT
      JSB EXEC      CALL
      DEF EXR3       D.RTR
      DEF .23         TO
      DEF D.RTR        CHANGE 
      DEF XEQT          THE 
      DEF .2             FILE 
      DEF DCB,I           NAME
      DEF DCB2
      DEF ZERO
      DEF NNAME,I 
      DEF .3
EXR3  JSB RMPAR     CALL RMPAR TO GET 
      DEF *+2        RETURN PARAMETERS
      DEF NAME        TO LOCAL AREA.
      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
      LDB DZERO     RESET 
      STB NNAME       ADDRESSES 
      STB IS
      STB ILU 
      STB DUM 
      STB ILNAM 
      JMP NAMF,I    EXIT TO USER
      SPC 3 
DCB2  NOP 
ID    NOP 
TRACK NOP 
SECT  NOP 
ZERO  NOP 
DZERO DEF ZERO
BUF   BSS 39
ABUF  DEF BUF 
* 
.1    DEC 1 
.2    DEC 2 
.3    DEC 3 
.6    DEC 6 
.7    DEC 7 
.38   DEC 38
.39   DEC 39
N1    DEC -1
N7    DEC -7
N10   DEC -10 
* 
B77   OCT 77
B177  OCT 177 
B7777 OCT 7777
PRC   OCT 74000 
BIT14 OCT 40000 
.23   DEC 23
ILNMF OCT 70707 
D.RTR ASC 3,D.RTR 
      SPC 2 
*     ASSEMBLY AIDS 
      SPC 1 
A     EQU 0 
B     EQU 1 
XEQT  EQU 1717B 
      SPC 1 
END   EQU *         PROG. LENGTH
      SPC 1 
      END 
                                                                                                                                    