ASMB,R,L,C
*     NAME:   NAM.. 
*     SOURCE: 92064-18077 
*     RELOC:  92064-16068 
*     PGMR:   G.A.A.
*     MOD:    G.L.M 
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977.  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 NAM..,7  92064-16068  REV.1650  760927
* 
      ENT NAM.. 
      EXT .ENTR 
      SPC 3 
*     THIS ROUTINE CHECK FOR A LEGAL FILE NAME
*     CALLING SEQUENCE: 
* 
*     JSB NAM.. 
*     DEF *+2 
*     DEF NAME
* 
*     ON RETURN A=0 IF A LEGAL NAME  -15 IF NOT LEGAL 
* 
*     LEGAL NAMES MUST START WITH A NON NUMERIC NON BLANK 
*     ASCII CHARACTER 
*     AND MUST NOT CONTAIN +, OR - AS ANY CHARACTER 
* 
*     FILE NAMES BEGINNING "LU.." ARE ILLEGAL 
* 
      SPC 3 
LU@@  ASC 1,LU
@@    ASC 1,..
NAME  NOP           ADDRESS OF THE NAME 
NAM.. NOP           ENTRY POINT 
      JSB .ENTR     GET THE PRAMS 
      DEF NAME
* 
      DLD NAME,I    FETCH 1ST 4 CHARS OF NAME 
      CPA LU@@      CAN'T ALLOW 
      RSS 
      JMP NAM2        REFERENCES
      CPB @@             TO 
      JMP ER15              LU..
* 
NAM2  LDB N6        SET TO CHECK
      STB COUNT      6 CHARACTERS 
      LDB NAME
      RBL 
      LDA NAME,I    DO SPECIAL EXTRA CHECK
      ALF,CLE,ALF    ON 
      AND B377        FIRST CHARACTER 
      ADA N60B       IF NUMERIC OR BLANK
      SEZ,CME         THEN
      ADA N10          TAKE 
      SEZ               THE 
      CPA N20B          ERR 
      JMP ER15           EXIT 
CREA1 CLE,ERB        GET THE NAME ADDRESS 
      LDA B,I        GET A NAME WORD
      ELB           RESTORE ADDRESS FOR NEXT TIME 
      SLB,INB,RSS   INCREMENT SKIP IF ODD ELSE
      ALF,ALF        ROTATE 
      AND B377        MASK IT 
      CPA COLON     IF COLON
      CLA           FOURCE ERROR
      ADA N40B      BETWEEN " " 
      SZA,RSS       IF BLANK THEN 
      JMP BLNK      TAKE NOTE 
      SEZ,CME        AND
      ADA N13B        "*" 
      SEZ,CLE,RSS      INCLUSIVE? 
      JMP CREA2         YES - OK
      ADA N3        NO;  BETWEEN
      SEZ,CME        "." AND
      ADA N62B        "_" 
CREA2 ISZ NAME      CHARACTER AFTER BLANK?? 
      SEZ           NO; LEGAL OTHER WISE??
      JMP ER15      NO GO TAKE ERROR EXIT 
CREA3 ISZ COUNT      DONE?
      JMP CREA1       NO; DO NEXT CHARACTER 
      CLA,RSS       GOOD NAME EXIT
ER15  LDA N15       ERROR EXIT
      JMP NAM..,I 
      SPC 1 
BLNK  CCA           SET BLANK FLAG
      STA NAME      SO WE CAN DETECT
      JMP CREA3     INBEDDED BLANKS 
      SPC 2 
COUNT NOP 
COLON OCT 72
N62B  OCT -62 
N3    DEC -3
N13B  OCT -13 
N40B  OCT -40 
B377  OCT 377 
N20B  OCT -20 
N60B  OCT -60 
N6    DEC -6
N10   DEC -10 
N15   DEC -15 
A     EQU 0 
B     EQU 1 
      END 
                                                                                                                                                                                                                                  