brender-v1.1.2/FW/BLOCKOPS.ASM
2022-05-04 18:14:23 -07:00

51 lines
1.1 KiB
NASM

;; Copyright (c) 1992,1993-1995 Argonaut Technologies Limited. All rights reserved.
;;
;; $Id: blockops.asm 1.5 1995/05/25 13:23:06 sam Exp $
;; $Locker: $
;;
;; Various operations on fixed 16.16 numbers
;;
.386p
.model flat,c
.data
db '$Id: blockops.asm 1.5 1995/05/25 13:23:06 sam Exp $',0
align 4
.code
; void BR_ASM_CALL BrBlockFill(void *dest_ptr, int value, int dwords);
;
BrBlockFill proc uses eax ecx edi es, dest:ptr dword, value:dword, count:dword
mov ax,ds
mov es,ax
mov eax,value
mov ecx,count
mov edi,dest
rep stosd
ret
BrBlockFill endp
; void BR_ASM_CALL BrBlockCopy(void *dest_ptr, void *src_ptr, int dwords);
;
BrBlockCopy proc uses ecx esi edi es, dest:ptr dword, src:ptr dword, count:dword
mov ax,ds
mov es,ax
mov esi,src
mov ecx,count
mov edi,dest
rep movsd
ret
BrBlockCopy endp
; void BR_ASM_CALL BrFarBlockCopy(void __far *dest_ptr, void *src_ptr, int dwords);
;
BrFarBlockCopy proc uses ecx esi edi es, dest:far ptr dword, src:ptr dword, count:dword
mov ecx,count
mov esi,src
les edi,dest
rep movsd
ret
BrFarBlockCopy endp
end