home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ZSYS / SIMTEL20 / SYSLIB / SLIB1.LBR / SDIR10.Z80 < prev    next >
Text File  |  2000-06-30  |  2KB  |  80 lines

  1. ;
  2. ; SYSLIB Module Name:  SDIR10
  3. ; Author:  Richard Conn
  4. ; Part of SYSLIB3 SDIR Series
  5. ; SYSLIB Version Number:  3.6
  6. ; Module Version Number:  1.5
  7.  
  8.     public    sdmove,sdfchk
  9.  
  10.     MACLIB    SDIRHDR.LIB
  11.  
  12. ;*
  13. ;*  COPY FROM HL TO DE FOR B BYTES
  14. ;*
  15. SDMOVE:
  16.     LD    A,(HL)    ; GET BYTE
  17.     LD    (DE),A    ; PUT BYTE
  18.     INC    HL    ; PT TO NEXT
  19.     INC    DE
  20.     DEC    B    ; COUNT DOWN
  21.     JP    NZ,SDMOVE
  22.     RET
  23.  
  24. ;*
  25. ;*  WE HAVE A NAME MATCH -- NOW CHECK FLAGS
  26. ;*    RETURN Z IF MATCH, NZ IF NO MATCH
  27. ;*
  28. SDFCHK:
  29.     PUSH    DE    ; SAVE FCB PTR
  30.     PUSH    HL    ; SAVE ENTRY PTR
  31.     LD    DE,10    ; CHECK SYSTEM BIT
  32.     ADD    HL,DE    ; HL PTS TO SYSTEM BIT
  33.     LD    A,(HL)    ; GET BYTE
  34.     POP    HL    ; RESTORE PTRS
  35.     POP    DE
  36.     AND    80H    ; MASK FOR SYSTEM BIT
  37.     LD    A,(SELFLG)    ; GET FLAG BYTE
  38.     JP    Z,DSNSBIT
  39. ;
  40. ; IT IS A SYSTEM FILE, SO LOOK AT BIT 6 OF FLAG
  41. ;
  42.     AND    40H    ; LOOK AT BIT 6
  43.     JP    NZ,DSUSER    ; OK, SO LOOK AT USER
  44.     JP    DSNOMAT    ; CONTINUE PROCESSING
  45. ;
  46. ; IT IS A NON-SYSTEM FILE, SO LOOK AT BIT 7 OF FLAG
  47. ;
  48. DSNSBIT:
  49.     AND    80H    ; LOOK AT BIT 7
  50.     JP    Z,DSNOMAT    ; NOT SET, SO SKIP ENTRY AS FAILING TEST
  51. ;
  52. ; NOW CHECK FOR PROPER USER AREA
  53. ;
  54. DSUSER:
  55.     LD    A,(SELFLG)    ; GET FLAG
  56.     AND    20H    ; CHECK FOR ALL USERS
  57.     JP    NZ,DSYESMAT    ; MATCH IF SET
  58.     LD    A,(SELFLG)    ; GET FLAG
  59.     AND    1FH    ; GET USER NUMBER (LOW 5 BITS)
  60.     LD    B,A    ; SAVE IN B
  61.     LD    A,(HL)    ; COMPARE USER NUMBER TO DIR ENTRY
  62.     AND    1FH    ; LOOK AT USER NUMBER
  63.     CP    B    ; COMPARE TO PASSED USER NUMBER
  64.     JP    NZ,DSNOMAT    ; SKIP IF NOT SAME USER NUMBER
  65. ;
  66. ;  MATCH, SO RETURN Z
  67. ;
  68. DSYESMAT:
  69.     XOR    A    ; SET ZERO
  70.     RET
  71. ;
  72. ;  NOT A MATCH, SO RETURN NZ
  73. ;
  74. DSNOMAT:
  75.     LD    A,0FFH    ; SET NO ZERO
  76.     OR    A
  77.     RET
  78.  
  79.     END
  80.