home *** CD-ROM | disk | FTP | other *** search
- ; 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