ASMB,R,L,C
*     NAME:   F.SET 
*     SOURCE: 92067-18223 
*     RELOC:  92067-16185 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (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 F.SET,8 92067-16185 REV.1903 760719 
      EXT .ENTR 
      EXT N.OPL 
      ENT F.SET     FILTER SET UP ENTRY 
      ENT F.TST     FILTER TEST ENTRY 
* 
*     FILTER FOR DL COMMAND 
* 
*     THIS ROUTINE SET UP THE FILTER MASKS AND TESTS NAMES AGAINST THEM 
* 
NAME  NOP 
F.SET NOP           ONE PARAMETER  THE FILE NAME
      JSB .ENTR     GET PRAM
      DEF NAME
      JSB NAMF      GET MASK AND TEST FOR FIRST WORD
      STA CPA1      SET THE VALUES
      STB MSK1      FOR LATER 
      JSB NAMF      GET SAME FOR WORD 2 
      STA CPA2      AND SAVE
      STB MSK2
      JSB NAMF      SAME FOR NAME 3 
      STA CPA3
      STB MSK3
      LDA DN.OP     GET ADDRESS OF SUB PRAMS
      RAL,CLE,SLA,ERA CLEAR INDIRECT
      LDA A,I       GET ADDRESS 
      STA NAME      SET ADDRESS 
      JSB SUTY      GET MASK FOR SC 
      STA CPASC     SAVE SC VALUE ONE 
      CMA,SSA,INA   SET MASK 2
      CMA,INA       USE SAME IF POSITIVE CODE PROVIDED
      STA CPASM 
      STB MSKSC 
      ISZ NAME      STEP TO 
      JSB SUTY      GET MASK FOR TYPE 
      STB MSKTY 
      STA CPATY 
      JSB SUTY
      STB MSKSZ 
      ADA A         DOUBLE SIZE TO GET SECTORS
      STA CPASZ 
      JSB SUTY      NOW GET RECORD LENGTH 
      STB MSKRL 
      STA CPARL     SET VALUES
      JMP F.SET,I   RETURN ALL MASKS SET UP 
* 
NAMF  NOP           NAME DON'T CARE SET UP
      LDA NAME,I    GET VALUE 
      AND C377      ISOLATE THE HIGH CHAR 
      CPA "HM"      IS "-"? 
      CLB,RSS       YES SET MASK
      LDB C377      NO, SET KEEP MASK 
      XOR NAME,I    GET OTHER CHAR. 
      CPA "LM"      IS "-"? 
      RSS           YES LEAVE ZERO MASK 
      ADB B377      NO SET THE LOW BITS 
      LDA NAME,I    GET THE VALUE 
      AND B         MASK IT 
      ISZ NAME      STEP FOR NEXT TIME
      JMP NAMF,I    RETURN A=VALUE, B= MASK 
* 
SUTY  NOP           TYPE MASK SET ROUTINE 
      LDA NAME,I    GET CURRENT PRAM
      SZA,RSS       SET MASK BASED ON IF SUPPLIED 
      CLB,RSS 
      CCB           B IS MASK ,A IS VALUE 
      ISZ NAME      STEP TO NEXT ENTRY
      JMP SUTY,I    RETURN
* 
B377  OCT 377 
C377  OCT 177400
CPA1  NOP 
CPA2  NOP 
CPA3  NOP 
CPASC NOP 
CPASM NOP 
CPATY NOP 
CPASZ NOP 
CPARL NOP 
* 
MSK1  NOP 
MSK2  NOP 
MSK3  NOP 
MSKSC NOP 
MSKTY NOP 
MSKSZ NOP 
MSKRL NOP 
"HM"  OCT 26400 
"LM"  OCT 55
DN.OP DEF N.OPL 
* 
* 
DADD  NOP 
F.TST NOP           MASK TEST ROUTINE PRAM IS ADDRESS OF DIRECTORY ENTRY
      JSB .ENTR 
      DEF DADD
      LDB DADD,I    GET THE ADDRESS 
      LDA B,I       GET NAME1 
      AND MSK1      KEEP UN MASKED CHAR 
      CPA CPA1      IF OK CONTINUE
      INB,RSS       ELSE
      JMP NO        TAKE NO EXIT
* 
      LDA B,I       NAME 2
      AND MSK2
      CPA CPA2
      INB,RSS 
      JMP NO
* 
      LDA B,I 
      AND MSK3
      CPA CPA3
      INB,RSS 
      JMP NO
* 
      LDA B,I 
      AND MSKTY     TYPE TEST 
      CPA CPATY 
      INB,RSS 
      JMP NO
* 
      INB 
      INB           STEP OVER DISC ADDRESS
      LDA B,I       GET SIZE
      AND MSKSZ 
      CPA CPASZ 
      INB,RSS 
      JMP NO
* 
      LDA B,I 
      AND MSKRL 
      CPA CPARL 
      INB,RSS       RECORD LENGTH OK? 
      JMP NO
* 
      LDA B,I       SECURITY CODE 
      AND MSKSC 
      CPA CPASC     TWO CHANCES HERE
      RSS 
      CPA CPASM     OK? 
      CCA,RSS       YES 
NO    CLA           NO MATCH EXIT 
      JMP F.TST,I   RETURN
* 
A     EQU 0 
B     EQU 1 
      END 
                                                                                                                                                                                                                                                  