Rev 260 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 260 | Rev 264 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | encoding_raw: |
1 | encoding_raw: |
2 | DEBUGF 1,'FRAME: RAW\n' |
2 | DEBUGF 1,'RAW\n' |
Line 3... | Line -... | ||
3 | - | ||
4 | mov ax,[screen.width] ; |
3 | |
5 | mov bx,[frame.y] ; |
- | |
6 | mul bx ; |
- | |
7 | DEBUGF 1,'screen.width*frame.y=%u\n',ax |
- | |
8 | mov bx,3 ; |
- | |
9 | mul bx ; |
- | |
10 | shl edx,16 ; |
- | |
11 | mov dx,ax ; |
- | |
12 | mov ebx,edx ; mov ebx,[screen.width]*[frame.y]*3 |
- | |
13 | push ebx |
- | |
14 | DEBUGF 1,'screen.width*frame.y*3=%u\n',edx |
4 | mov ax,[frame.y] ; |
15 | mov ax,[frame.x] ; |
- | |
16 | mov bx,3 ; |
5 | mov bx,[screen.width] ; |
17 | mul bx ; |
6 | mul bx ; |
18 | shl edx,16 ; |
7 | shl edx,16 ; |
19 | mov dx,ax ; |
8 | mov dx,ax ; [screen.width]*[frame.y] |
20 | pop ebx |
9 | movzx eax,[frame.x] |
- | 10 | add edx,eax ; [screen.width]*[frame.y]+[frame.x] |
|
- | 11 | ||
21 | add ebx,edx ; add ebx,[frame.x]*3 |
12 | mov eax,3 ; |
- | 13 | mul edx ; ([screen.width]*[frame.y]+[frame.x])*3 |
|
22 | add ebx,framebuffer_data ; add ebx,framebuffer_data |
14 | |
23 | push ebx |
15 | add eax,framebuffer_data ; |
Line 24... | Line 16... | ||
24 | DEBUGF 1,'frame.x*3=%u\n',edx |
16 | push eax ; framebuffer_data+([screen.width]*[frame.y]+[frame.x])*3 |
25 | 17 | ||
26 | mov ax,[frame.width] ; |
18 | mov ax,[frame.width] ; |
27 | mov bx,3 ; |
19 | mov bx,3 ; |
28 | mul bx ; |
- | |
29 | shl edx,16 ; |
- | |
30 | mov dx,ax ; |
- | |
31 | DEBUGF 1,'frame.width*3=%u\n',edx |
20 | mul bx ; |
Line -... | Line 21... | ||
- | 21 | shl edx,16 ; |
|
- | 22 | mov dx,ax ; [frame.width]*3 |
|
32 | pop ebx |
23 | |
33 | add edx,ebx ; mov edx,ebx+[frame.width]*3 |
24 | pop eax ; |
- | 25 | add edx,eax ; framebuffer_data+([screen.width]*[frame.y]+[frame.x])*3+[frame.width]*3 |
|
34 | 26 | push eax ; |
|
- | 27 | push edx ; |
|
35 | push ebx |
28 | |
36 | push edx ; |
29 | mov ax,[frame.height] ; |
37 | mov ax,[frame.height] ; |
30 | dec ax ; |
38 | mov bx,3 ; |
31 | mov bx,3 ; |
39 | mul bx ; |
32 | mul bx ; |
40 | mov bx,[screen.width] ; |
33 | mov bx,[screen.width] ; |
41 | mul bx ; |
34 | mul bx ; |
42 | shl edx,16 ; |
35 | shl edx,16 ; |
43 | mov dx,ax ; |
- | |
44 | mov ecx,edx ; |
36 | mov dx,ax ; |
45 | pop edx ; |
37 | mov ecx,edx ; |
Line 46... | Line -... | ||
46 | DEBUGF 1,'frame.height*screen.width*3=%u\n',ecx |
- | |
47 | add ecx,edx ; mov ecx,edx+[frame.height]*[screen.width]*3 |
- | |
48 | pop ebx |
38 | pop edx ; |
49 | 39 | add ecx,edx ; mov ecx,edx+([frame.height]-1)*[screen.width]*3 |
|
50 | DEBUGF 1,'FRAME: framebuffer:%u ebx:%u ecx:%u edx:%u\n',framebuffer_data,ebx,ecx,edx |
40 | pop ebx |
Line 51... | Line 41... | ||
51 | 41 | ||
52 | .pixelloop32: |
- | |
53 | cmp ebx,ecx |
- | |
54 | jge next_rectangle |
- | |
55 | - | ||
56 | add esi,2 ; 32 bit code RAW |
- | |
57 | mov al,[esi] ; |
- | |
58 | mov [ebx],al ; |
- | |
59 | inc ebx ; |
- | |
60 | dec esi ; |
- | |
61 | ; |
- | |
62 | mov al,[esi] ; |
42 | .pixelloop32: |
63 | mov [ebx],al ; |
43 | cmp ebx,ecx |
64 | inc ebx ; |
- | |
65 | dec esi ; |
- | |
66 | ; |
- | |
67 | mov al,[esi] ; |
- | |
68 | mov [ebx],al ; |
- | |
69 | inc ebx ; |
- | |
70 | add esi,4 ; |
- | |
71 | - | ||
72 | ; mov ax,[esi] ; 16 bit code RAW |
- | |
73 | ; and ax,32 |
- | |
74 | ; mov [ebx],al |
- | |
75 | ; inc ebx |
- | |
76 | ; |
- | |
77 | ; mov ax,[esi] |
- | |
78 | ; shr ax,5 |
- | |
79 | ; and ax,32 |
- | |
80 | ; mov [ebx],al |
- | |
81 | ; inc ebx |
- | |
82 | ; |
- | |
83 | ; mov ax,[esi] |
- | |
84 | ; shr ax,10 |
- | |
85 | ; and ax,64 |
- | |
86 | ; mov [ebx],al |
- | |
87 | ; inc ebx |
- | |
88 | ; inc esi |
- | |
89 | ; inc esi |
- | |
90 | 44 | jge next_rectangle |
|
- | 45 | ||
91 | 46 | ; add esi,2 ; 32 bit code RAW - OK |
|
92 | ; mov al,[esi] ; 8 bit code RAW |
47 | ; mov al,[esi] ; |
93 | ; and al,7 ; |
- | |
94 | ; mov byte[ebx],0xff;al ; |
- | |
95 | ; inc ebx ; |
48 | ; mov [ebx],al ; |
96 | ; ; |
49 | ; inc ebx ; |
- | 50 | ; dec esi ; |
|
97 | ; mov al,[esi] ; |
51 | ; ; |
98 | ; shr al,3 ; |
52 | ; mov al,[esi] ; |
99 | ; and al,7 ; |
- | |
100 | ; mov [ebx],al ; |
- | |
101 | ; inc ebx ; |
53 | ; mov [ebx],al ; |
102 | ; ; |
54 | ; inc ebx ; |
- | 55 | ; dec esi ; |
|
- | 56 | ; ; |
|
- | 57 | ; mov al,[esi] ; |
|
- | 58 | ; mov [ebx],al ; |
|
- | 59 | ; inc ebx ; |
|
- | 60 | ; add esi,4 ; |
|
- | 61 | ||
- | 62 | ; push ecx ; 16 bit code RAW |
|
- | 63 | ; mov cl,51 |
|
- | 64 | ; |
|
- | 65 | ; mov ax,[esi] ; |
|
103 | ; mov al,[esi] ; |
66 | ; xchg al,ah |
- | 67 | ; and al,00011111b ; |
|
- | 68 | ; xchg al,ah |
|
- | 69 | ; mul cl |
|
- | 70 | ; mov [ebx],al ; |
|
- | 71 | ; inc ebx ; |
|
- | 72 | ; |
|
- | 73 | ; mov ax,[esi] ; |
|
- | 74 | ; xchg al,ah |
|
- | 75 | ; shr ax,5 ; |
|
- | 76 | ; xchg al,ah |
|
- | 77 | ; and al,00011111b ; |
|
- | 78 | ; mul cl |
|
- | 79 | ; mov [ebx],al ; |
|
- | 80 | ; inc ebx ; |
|
- | 81 | ; |
|
- | 82 | ; mov ax,[esi] ; |
|
- | 83 | ; xchg al,ah |
|
- | 84 | ; shr ax,10 ; |
|
104 | ; shr al,6 ; |
85 | ; and al,00011111b ; |
- | 86 | ; mul cl |
|
- | 87 | ; mov [ebx],al ; |
|
- | 88 | ; inc ebx ; |
|
- | 89 | ; |
|
- | 90 | ; inc esi ; |
|
- | 91 | ; inc esi ; |
|
- | 92 | ; pop ecx |
|
- | 93 | ||
- | 94 | push ecx ; 8 bit code RAW - OK |
|
- | 95 | mov cl,85 ; |
|
- | 96 | ; |
|
- | 97 | mov al,[esi] ; |
|
- | 98 | shr al,4 ; |
|
- | 99 | and al,3 ; |
|
- | 100 | mul cl ; |
|
- | 101 | mov [ebx],al ; |
|
- | 102 | inc ebx ; |
|
- | 103 | ; |
|
- | 104 | mov al,[esi] ; |
|
- | 105 | shr al,2 ; |
|
- | 106 | and al,3 ; |
|
- | 107 | mul cl ; |
|
- | 108 | mov [ebx],al ; |
|
- | 109 | inc ebx ; |
|
- | 110 | ; |
|
- | 111 | mov al,[esi] ; |
|
- | 112 | and al,3 ; |
|
Line 105... | Line 113... | ||
105 | ; and al,3 ; |
113 | mul cl ; |
106 | ; mov [ebx],al ; |
114 | mov byte[ebx],al ; |