Windows.


OpaqueBlt() TransparentBlt() - 2


rep movsw ;

jnc short @@skip01 ; ,

movsb ;

@@skip01:

sub di,VIEW_WIDTH ;

mov cx,dx ;

shr ,1 ; 2

rep movsw ;

jnc short @@skip02 ; ,

movsb ;

@@skip02:

add di,ax ;

dec bx ;

jnz short @@loop01 ;

pop ds ;

ret ;

endp OpaqueBlt

;

; MemBuf.

; , ""

;

proc TransparentBIt

ARG Bitmap:dword,StartY:word,Height:word,ScrollSplit:word USES si,di

les di,[MemBuf] ;

mov ax,[StartY] ; Y-

mov ex, ax ;

sal ax,ᠠ ; 64

sal ex,8 ; 256

add ax, ex ; 320

add di,ax ; MemBuf

mov dx,[ScrollSplit] ;

;

mov bx,VIEW_WIDTH ;

sub bx,dx ;

push ds ; , ,

lds si,[Bitmap] ;

@@l01;

add di,dx ;

mov , ; ;

; ;

@@l02;

mov l,[si] ;

inc si ;

cmp al,TRANSPARENT ; ""?

je short @@skip01 ; ...,