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 >
Wrap
Text File
|
2000-06-30
|
2KB
|
80 lines
;
; SYSLIB Module Name: SDIR10
; Author: Richard Conn
; Part of SYSLIB3 SDIR Series
; SYSLIB Version Number: 3.6
; Module Version Number: 1.5
public sdmove,sdfchk
MACLIB SDIRHDR.LIB
;*
;* COPY FROM HL TO DE FOR B BYTES
;*
SDMOVE:
LD A,(HL) ; GET BYTE
LD (DE),A ; PUT BYTE
INC HL ; PT TO NEXT
INC DE
DEC B ; COUNT DOWN
JP NZ,SDMOVE
RET
;*
;* WE HAVE A NAME MATCH -- NOW CHECK FLAGS
;* RETURN Z IF MATCH, NZ IF NO MATCH
;*
SDFCHK:
PUSH DE ; SAVE FCB PTR
PUSH HL ; SAVE ENTRY PTR
LD DE,10 ; CHECK SYSTEM BIT
ADD HL,DE ; HL PTS TO SYSTEM BIT
LD A,(HL) ; GET BYTE
POP HL ; RESTORE PTRS
POP DE
AND 80H ; MASK FOR SYSTEM BIT
LD A,(SELFLG) ; GET FLAG BYTE
JP Z,DSNSBIT
;
; IT IS A SYSTEM FILE, SO LOOK AT BIT 6 OF FLAG
;
AND 40H ; LOOK AT BIT 6
JP NZ,DSUSER ; OK, SO LOOK AT USER
JP DSNOMAT ; CONTINUE PROCESSING
;
; IT IS A NON-SYSTEM FILE, SO LOOK AT BIT 7 OF FLAG
;
DSNSBIT:
AND 80H ; LOOK AT BIT 7
JP Z,DSNOMAT ; NOT SET, SO SKIP ENTRY AS FAILING TEST
;
; NOW CHECK FOR PROPER USER AREA
;
DSUSER:
LD A,(SELFLG) ; GET FLAG
AND 20H ; CHECK FOR ALL USERS
JP NZ,DSYESMAT ; MATCH IF SET
LD A,(SELFLG) ; GET FLAG
AND 1FH ; GET USER NUMBER (LOW 5 BITS)
LD B,A ; SAVE IN B
LD A,(HL) ; COMPARE USER NUMBER TO DIR ENTRY
AND 1FH ; LOOK AT USER NUMBER
CP B ; COMPARE TO PASSED USER NUMBER
JP NZ,DSNOMAT ; SKIP IF NOT SAME USER NUMBER
;
; MATCH, SO RETURN Z
;
DSYESMAT:
XOR A ; SET ZERO
RET
;
; NOT A MATCH, SO RETURN NZ
;
DSNOMAT:
LD A,0FFH ; SET NO ZERO
OR A
RET
END