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
/
CPM
/
TURBODSG
/
USRSTAT.MQC
/
USRSTAT.MAC
Wrap
Text File
|
2000-06-30
|
2KB
|
160 lines
; USRSTAT.MAC by ESKAY - v1.00 of 05/31/85
;
; this program finds all empty user areas on the current
; drive and displays them. turbodos only.
;
cr equ 0dh
lf equ 0ah
;
cseg
;
.z80
.request syslib
;
start: ld sp,stack
call print##
cr,lf
' USRSTAT v1.00 by ESKAY',cr,lf,lf
'User area usage display. This program displays the total number',cr,lf
'of directory entries used in each user area ---- please wait...',0
ld de,fcb
call f$open##
..lp: ld de,fcb
call f$read##
jp nz,done
ld ix,80h
ld hl,usrs
ld a,(ix+0)
call zeru
ld a,(ix+20h)
call zeru
ld a,(ix+40h)
call zeru
ld a,(ix+60h)
call zeru
jr ..lp
;
done: call print
cr,lf,lf,lf
' USR FILES USR FILES USR FILES',cr,lf
'-------------------------------------------------',cr,lf,0
ld b,32 ; users 0..31
ld hl,usrs
ld de,0
loop: call pute
call print##
' :',0
push de
ld e,(hl)
inc hl
ld d,(hl)
inc hl
ex de,hl
call phldc##
ex de,hl
push hl
ld hl,(tot)
add hl,de
ld (tot),hl
pop hl
pop de
inc de
ld a,(div)
dec a
ld (div),a
jr z,..odd
call print##
' ',0
jr ..evn
;
..odd: call crlf##
ld a,3
ld (div),a
..evn: djnz loop
call print##
cr,lf,lf
'Total directory entries used : ',0
ld c,25
call 5
ld c,19
ld e,a
call 50h
ld hl,8
and 0fh
dec a
lp1: add hl,hl
dec a
jr nz,lp1
ex de,hl
ld hl,0
lp2: add hl,de
dec c
jr nz,lp2
ex de,hl
ld hl,(tot)
call phlfdc##
call print##
' of ',0
ex de,hl
call phlfdc##
call print##
' (',0
or a
sbc hl,de
call phlfdc##
call print##
' free)',0
call crlf##
rst 0
;
pute: ld a,e
push af
call print##
' ',0
cp 10
jr nc,..g10
ld a,' '
call cout##
..g10: pop af
jp pafdc##
;
zeru: cp 0e5h
jr nz,..ne5
ld a,32
..ne5: ld e,a
ld d,0
push hl
add hl,de
add hl,de
ld e,(hl)
inc hl
ld d,(hl)
inc de
ld (hl),d
dec hl
ld (hl),e
pop hl
ret
;
dseg
;
div: db 3
tot: dw 0
fcb: db 0,'$ DIR',0,0,0,0
ds 22
;
usrs: dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
ds 100
stack equ $
end
',0
jr ..evn
;
..odd: call crlf##
ld a,3
ld (div),a
..evn: djnz loop
call print##
cr,lf,lf
'Total d