sysfunction 65: 16bpp is now 5+6+5, and 5+5+5=15bpp

git-svn-id: svn://kolibrios.org@906 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond)
2008-11-03 21:40:50 +00:00
parent 5775f44b56
commit 2d73c440b4
2 changed files with 34 additions and 5 deletions

View File

@@ -3402,9 +3402,9 @@ IPC
* ebx = 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> * ebx = 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
* ecx = [ࠧ<><E0A0A7><EFBFBD> <20><> <20><><EFBFBD> x]*65536 + [ࠧ<><E0A0A7><EFBFBD> <20><> <20><><EFBFBD> y] * ecx = [ࠧ<><E0A0A7><EFBFBD> <20><> <20><><EFBFBD> x]*65536 + [ࠧ<><E0A0A7><EFBFBD> <20><> <20><><EFBFBD> y]
* edx = [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> x]*65536 + [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> y] * edx = [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> x]*65536 + [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> y]
* esi = <20><><20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8, 16, 24 <20><><EFBFBD> 32 * esi = <20><><20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8, 15, 16, 24 <20><><EFBFBD> 32
* edi = 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (256 梥⮢ 0x00RRGGBB); * edi = 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (256 梥⮢ 0x00RRGGBB);
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> esi = 16, 24 <20> 32 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> esi > 8
* ebp = ᬥ饭<E1ACA5><E9A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1ABA5><EFBFBD><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> * ebp = ᬥ饭<E1ACA5><E9A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1ABA5><EFBFBD><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
<20><EFBFBD><E2ADAE>⥫쭮 <20><EFBFBD><E0A5A4><EFBFBD> <20><EFBFBD><E2ADAE>⥫쭮 <20><EFBFBD><E0A5A4><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
@@ -3417,9 +3417,11 @@ IPC
<20><><EFBFBD><EFBFBD><EFBFBD><E0A8A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><E0A8A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
* <20><20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> 256 梥⮢, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, * <20><20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> 256 梥⮢, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 256. <><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 256.
* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> 16 <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>: 梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> * <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> 15 <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>: 梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> (<28> <20><><EFBFBD><E2AEA2> <20><EFBFBD><EFBFBD><E2A0A2><EFBFBD><EFBFBD><EFBFBD>) 0RRRRRGGGGGBBBBB - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> (<28> <20><><EFBFBD><E2AEA2> <20><EFBFBD><EFBFBD><E2A0A2><EFBFBD><EFBFBD><EFBFBD>) 0RRRRRGGGGGBBBBB -
<20><> 5 <20><><EFBFBD><EFBFBD><E1A5AB> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>. <20><> 5 <20><><EFBFBD><EFBFBD><E1A5AB> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>.
* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> 16 <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>: 梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> RRRRRGGGGGGBBBBB (<28><EFBFBD> 5+6+5).
* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> 24 <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>: 梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> * <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> 24 <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>: 梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD> - <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD>⥫쭮 ᨭ<><E1A8AD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD> - <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD>⥫쭮 ᨭ<><E1A8AD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A0A2><EFBFBD>騥 梥<><E6A2A5>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A0A2><EFBFBD>騥 梥<><E6A2A5>.

View File

@@ -4213,6 +4213,12 @@ sys_putimage_palette:
mov ebp, putimage_get8bpp mov ebp, putimage_get8bpp
mov esi, putimage_init8bpp mov esi, putimage_init8bpp
jmp sys_putimage_bpp jmp sys_putimage_bpp
@@:
cmp esi, 15
jnz @f
mov ebp, putimage_get15bpp
mov esi, putimage_init15bpp
jmp sys_putimage_bpp
@@: @@:
cmp esi, 16 cmp esi, 16
jnz @f jnz @f
@@ -4260,10 +4266,10 @@ putimage_get32bpp:
lodsd lodsd
ret 4 ret 4
putimage_init16bpp: putimage_init15bpp:
add eax, eax add eax, eax
ret ret
putimage_get16bpp: putimage_get15bpp:
; 0RRRRRGGGGGBBBBB -> 00000000RRRRR000GGGGG000BBBBB000 ; 0RRRRRGGGGGBBBBB -> 00000000RRRRR000GGGGG000BBBBB000
push ecx edx push ecx edx
movzx eax, word [esi] movzx eax, word [esi]
@@ -4279,7 +4285,28 @@ putimage_get16bpp:
or eax, ecx or eax, ecx
or eax, edx or eax, edx
pop edx ecx pop edx ecx
ret 4
putimage_init16bpp:
add eax, eax
ret ret
putimage_get16bpp:
; RRRRRGGGGGGBBBBB -> 00000000RRRRR000GGGGGG00BBBBB000
push ecx edx
movzx eax, word [esi]
add esi, 2
mov ecx, eax
mov edx, eax
and eax, 0x1F
and ecx, 0x3F shl 5
and edx, 0x1F shl 11
shl eax, 3
shl ecx, 5
shl edx, 8
or eax, ecx
or eax, edx
pop edx ecx
ret 4
; eax x beginning ; eax x beginning
; ebx y beginning ; ebx y beginning