; a1 - dest
; a0 - src
; d0 - length

	xdef	_ListCopy

_ListCopy	move.l	a1,a2
	cmp.w	#-1,d0
	bne.s	.1
	move.w	(-2,a0),d0
.1	cmp.w	(-4,a1),d0
	bmi.s	.2
	move.w	(-4,a1),d0
.2	cmp.w	#1,d0
	bmi.s	.3
	move.w	d0,(-2,a1)
	subq.w	#1,d0
.l	move.l	(a0)+,(a1)+
	dbra	d0,.l
.3	move.l	a2,d0
	rts
