; EMPTY.MAC by ESKAY - v1.00 of 05/30/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
	'EMPTY v1.10 by ESKAY shows free user areas:',cr,lf,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:	ld	b,32
	ld	c,16		; 16 to a line max.
..dl:	ld	a,(hl)
	cp	0ffh
	call	nz,du
	inc	hl
	djnz	..dl
	call	print##
	cr,lf,lf,0
	rst	0
;
du:	push	af
	cp	10
	jr	nc,..dus
	ld	a,' '
	call	cout##
..dus:	pop	af
	call	pafdc##
	ld	a,' '
	call	cout##
	dec	c
	jp	z,crlf##
	ret
;
zeru:	cp	0e5h
	ret	z
	ld	e,a
	ld	d,0
	push	hl
	add	hl,de
	ld	(hl),0ffh
	pop	hl
	ret
;
	dseg
;
fcb:	db	0,'$       DIR',0,0,0,0
	ds	22
;
usrs:	db	0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
	db	16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
	ds	100
stack	equ	$
	end
