regupw.asm
来自「开放源码的编译器open watcom 1.6.0版的源代码」· 汇编 代码 · 共 75 行
ASM
75 行
include ..\cwlib.inc
scode
;-------------------------------------------------------------------------------
;
;Update a particular rectangle of the display.
;
;On Entry:
;
;ECX - X coord.
;EDX - Y coord.
;ESI - width.
;EDI - depth.
;
;On Exit:
;
;nothing.
;
;ALL registers preserved.
;
WindowRegionUpdate:
public WindowRegionUpdate
_WindowRegionUpdate_ proc syscall
local @@Count:dword, @@Handle:dword
pushad
push WindowRegionFlag
push WindowRegionX
push WindowRegionY
push WindowRegionW
push WindowRegionD
;
mov WindowRegionFlag,-1
mov WindowRegionX,ecx
mov WindowRegionW,ecx
mov WindowRegionY,edx
mov WindowRegionD,edx
add WindowRegionW,esi
add WindowRegionD,edi
;
mov @@Count,MaxWinWindows
mov @@Handle,offset WinWindowList
;
@@0: mov ebx,@@Handle
mov ebx,[ebx]
cmp ebx,-1
jz @@1
mov ecx,Win_XCoord[ebx]
mov edx,Win_YCoord[ebx]
mov esi,Win_Wide[ebx]
mov edi,Win_Depth[ebx]
call WindowRegionClip
jnz @@1
;
mov esi,ebx
mov eax,WinMess_Draw
call WinMessageWindow
;
@@1: add @@Handle,4
dec @@Count
jnz @@0
;
pop WindowRegionD
pop WindowRegionW
pop WindowRegionY
pop WindowRegionX
pop WindowRegionFlag
popad
ret
_WindowRegionUpdate_ endp
efile
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?