Initial commit
This commit is contained in:
75
LIB386/LIB_SVGA/S_BLOCK3.ASM
Normal file
75
LIB386/LIB_SVGA/S_BLOCK3.ASM
Normal file
@@ -0,0 +1,75 @@
|
||||
;----------------------------------------------------------------------------
|
||||
; S_BLOCK.ASM 386
|
||||
; (c) Adeline 1993
|
||||
;----------------------------------------------------------------------------
|
||||
.386P
|
||||
jumps
|
||||
.model SMALL, SYSCALL
|
||||
|
||||
.data
|
||||
|
||||
include f:\projet\lib386\lib_svga\svga.ash
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
.code
|
||||
|
||||
public NoLanguage CopyBlockIncrust
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; CopyBlockIncrust( x0, y0, x1, y1, *src, xd, yd, *dst )
|
||||
;
|
||||
CopyBlockIncrust proc uses esi edi ebx ebp,\
|
||||
x0:DWORD, y0:DWORD, x1:DWORD, y1:DWORD, src:DWORD,\
|
||||
xd:DWORD, yd:DWORD, dst:DWORD
|
||||
|
||||
mov edx, x0
|
||||
mov ecx, y0
|
||||
mov ebx, x1
|
||||
mov eax, y1
|
||||
;----------------------
|
||||
|
||||
mov esi, TabOffLine[ecx*4] ; y0
|
||||
add esi, src
|
||||
add esi, edx ; SI Offset Src
|
||||
|
||||
mov edi, yd
|
||||
mov edi, TabOffLine[edi*4]
|
||||
add edi, dst
|
||||
add edi, xd ; DI Offset Dst
|
||||
|
||||
sub ebx, edx
|
||||
inc ebx ; BX Delta Y
|
||||
|
||||
sub eax, ecx
|
||||
inc eax ; AX Delta X
|
||||
mov ebp, eax
|
||||
|
||||
mov edx, Screen_X
|
||||
sub edx, ebx ; DX Delta Screen
|
||||
Again:
|
||||
mov ecx, ebx
|
||||
|
||||
loopx: lodsb
|
||||
or al, al
|
||||
jz incrust
|
||||
mov byte ptr[edi], al
|
||||
incrust: inc edi
|
||||
dec ecx
|
||||
jnz loopx
|
||||
|
||||
add esi, edx
|
||||
add edi, edx
|
||||
dec ebp
|
||||
jne short Again
|
||||
CopyBlock_End: ret
|
||||
CopyBlockIncrust endp
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; The
|
||||
End
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user