;copyword.asm - contains i86_wcopy()

_TEXT	SEGMENT  BYTE PUBLIC 'CODE'
_TEXT	ENDS
_DATA	SEGMENT  WORD PUBLIC 'DATA'
_DATA	ENDS
CONST	SEGMENT  WORD PUBLIC 'CONST'
CONST	ENDS
_BSS	SEGMENT  WORD PUBLIC 'BSS'
_BSS	ENDS
DGROUP	GROUP	CONST,	_BSS,	_DATA
	ASSUME  CS: _TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUP
_TEXT      SEGMENT

;i86_wcopy(source, dest, count)
;copy count 16-bit words from source to dest.  Count must not be zero.
	PUBLIC	_i86_wcopy
_i86_wcopy	PROC far
	push	bp
	mov	bp,sp
	push es
	push di
	push ds
	push si
	push cx

	mov	ax,[bp+6+2]	;s seg
	mov ds,ax
	mov	si,[bp+4+2]	;s offset
	mov ax,[bp+10+2]  ;d seg
	mov es,ax
	mov di,[bp+8+2]  ;d offset
	mov cx,[bp+12+2]  ;count

	cld
	rep movsw

	pop cx
	pop si
	pop ds
	pop di
	pop es
	pop	bp
	ret	
_i86_wcopy	ENDP

_TEXT	ENDS
END
