; a0 - estr
; a1 - str
; d1 - start
; d0 - length

	xdef	_MidEStr

_MidEStr	add.l	d1,a1
	move.l	a0,a2
	moveq	#0,d1
	move.w	(-4,a0),d1
	cmp.l	d0,d1
	bpl.s	.skip
	move.l	d1,d0
.skip	move.l	d0,d2
	subq.l	#1,d0
.loop	move.b	(a1)+,(a0)+
	beq.s	.done
	dbra	d0,.loop
	clr.b	(a0)+
.done	addq.w	#1,d0
	sub.w	d0,d2
	move.w	d2,(-2,a2)
	move.l	a2,d0
	rts
