.request syslib
sfirst	equ	17
snext	equ	18
;
	extrn	bdos,print,crlf,cout,phldc
;
begin:	lxi	sp,stack
	call	print
	db	0dh,0ah
	db	'Current disk:      (this may take a minute...)',0dh,0ah
	db	'            ',0
	MVI	C,25
	CALL	BDOS
	MVI	C,19
	mov	e,a
	call	50h
	lxi	h,8
	ani	0fh
	dcr	a
lp1:	dad	h
	dcr	a
	jnz	lp1
	xchg
	lxi	h,0
lp2:	dad	d
	dcr	c
	jnz	lp2
	call	phldc
	call	print
	db	' total dir entries, ',0
	lxi	d,5ch
	push	d
	mvi	a,'?'
	mvi	b,12
fill:	stax	d
	inx	d
	dcr	b
	jnz	fill
	pop	d
	call	wildex
	call	phldc
	call	print
	db	' entries used.',0dh,0ah,0
	rst	0
;
wildex:	lxi	h,0
	shld	count
	mvi	c,sfirst
	call	bdos
	cpi	0ffh
	rz			;nothing found -- error
	call	moven		;move name
wloop:	mvi	c,snext		;search for next
	call	bdos
	cpi	0ffh
	jz	done		;finished
	call	moven
	jmp	wloop
;
done:	ora	a
	lhld	count
	ret
;
moven:	push	psw
	add	a
	add	a
	add	a
	add	a
	add	a
	adi	80h
	mov	l,a
	mvi	h,0
	mov	a,m
	cpi	0e5h
	jz	nof
	lhld	count
	inx	h
	shld	count
nof:	pop	psw
	lhld	tot
	inx	h
	shld	tot
	ret
;
count:	dw	0
tot:	dw	0
	ds	100
stack	equ	$
	end
