* some more optimizations in GetPixel16

git-svn-id: trunk@40986 -
This commit is contained in:
nickysn 2019-01-22 12:58:02 +00:00
parent 0c440183c6
commit 985ec0688a

View File

@ -1702,37 +1702,41 @@ end;
inc dx
mov cx, di
not cx
and cl,7
mov bh, 080h
shr bh, cl
{ read plane 3 }
mov ah,es:[si] { read display memory }
shr ah,cl
and ah,01h { save bit in AH }
and ah,bh { save bit in AH }
{ read plane 2 }
mov al,2 { Select plane to read }
out dx,al
mov bl,es:[si]
shr bl,cl
shr bl,1
rcl ah,1 { save bit in AH }
and bl,bh
rol ah,1
or ah,bl { save bit in AH }
{ read plane 1 }
dec ax { Select plane to read }
out dx,al
mov bl,es:[si]
shr bl,cl
shr bl,1
rcl ah,1 { save bit in AH }
and bl,bh
rol ah,1
or ah,bl { save bit in AH }
{ read plane 0 }
dec ax { Select plane to read }
out dx,al
mov bl,es:[si]
shr bl,cl
shr bl,1
rcl ah,1 { save bit in AH }
and bl,bh
rol ah,1
or ah,bl { save bit in AH }
inc cx
rol ah,cl
mov al,ah { 16-bit pixel in AX }
{ 1 byte shorter than 'xor ah, ah'; will always set ah to 0, because sign(al)=0 }