Rev 2470 | Rev 2522 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2470 | Rev 2499 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | ;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; ;; |
5 | ;; ;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 7... | Line 7... | ||
7 | 7 | ||
Line 8... | Line 8... | ||
8 | $Revision: 2470 $ |
8 | $Revision: 2499 $ |
9 | 9 | ||
10 | ; // Alver 22.06.2008 // { |
10 | ; // Alver 22.06.2008 // { |
11 | align 4 |
11 | align 4 |
Line 212... | Line 212... | ||
212 | ; edi = color 0x0RRGGBB |
212 | ; edi = color 0x0RRGGBB |
213 | ; ebp = font's header |
213 | ; ebp = font's header |
214 | pushad |
214 | pushad |
215 | mov dx, word[edx] |
215 | mov dx, word[edx] |
216 | movzx ecx, dl |
216 | movzx ecx, dl |
217 | test dl, 0xE0 ; ticks #32..255 |
217 | test dl, 0xE0 |
218 | jz .lntick.short |
218 | jz .lntick.short ; ticks #0..31 |
219 | cmp dl, 0xE0 |
219 | cmp dl, 0xE0 |
220 | jae .lntick.long |
220 | jae .lntick.long ; ticks #224..255 |
221 | cmp dl, 0xC0 |
221 | cmp dl, 0xD8 |
222 | jae .cstick |
222 | jae .cstick ; ticks #216..223 |
223 | .gptick: |
223 | .gptick: |
224 | push edx |
224 | push edx |
- | 225 | cmp dl, 38 |
|
- | 226 | jb .sptick ; special ticks #32-37 |
|
- | 227 | ; general ticks #38..215 |
|
225 | mov cl, dh |
228 | mov cl, dh |
226 | shr cl, 3 ; number of origin |
229 | shr cl, 3 ; number of origin |
227 | mov edx, [ebp+8] ; orig. table |
230 | mov edx, [ebp+8] ; orig. table |
228 | mov ch, byte[edx+ecx] ; orig. coords |
231 | mov ch, byte[edx+ecx] ; orig. coords |
229 | pop edx |
232 | pop edx |
230 | mov cl, dh |
233 | mov cl, dh |
231 | and cl, 7 ; three rotation bits |
234 | and cl, 7 ; three rotation bits |
232 | movzx edx, dl ; dl = gptick# |
235 | movzx edx, dl ; dl = gptick# |
233 | sub dl, 32 |
236 | cmp dl, 80 |
234 | cmp dl, (sdsh_data.v5-sdsh_data.v1) |
- | |
235 | jae .gptick.2 |
237 | jae .gptick.2 |
- | 238 | sub dl, 38 |
|
Line 236... | Line 239... | ||
236 | 239 | ||
237 | .gptick.1: |
240 | .gptick.1: |
238 | ; 1-byte tickgroups .v1-v4: |
241 | ; 1-byte tickgroups .v1-v4: |
239 | lea esi, [sdsh_data.v1+edx] |
242 | lea esi, [sdsh_data.v1+edx] |
240 | inc dh |
243 | inc dh ; dh = 1 vertex |
241 | sub dl, 2 ; .v1 : 2 ticks only (#32, 33) |
244 | sub dl, 2 ; .v1 : 2 ticks only (#38, 39) |
242 | jae .gptick.1v2v4 |
245 | jae .gptick.1v2v4 |
243 | mov dl, dh |
246 | mov dl, dh |
244 | mov dh, ch |
247 | mov dh, ch |
Line 245... | Line 248... | ||
245 | jmp .draw |
248 | jmp .draw |
246 | 249 | ||
- | 250 | .gptick.1v2v4: |
|
247 | .gptick.1v2v4: |
251 | ; 1-byte tickgroups .v2-v4 : 8, 16 and 16 ticks |
248 | ; 1-byte tickgroups .v2-v4 : 8 ticks each |
252 | inc dh ; dh = 2 vertice |
249 | inc dh |
253 | add dl, 8 |
Line 250... | Line 254... | ||
250 | shr dl, 3 |
254 | shr dl, 4 |
251 | jmp .gptick.done |
255 | jmp .gptick.done |
252 | - | ||
253 | .gptick.2: |
256 | |
254 | ; 2-byte tickgroups .v5-v8: 8 ticks each |
257 | .gptick.2: |
- | 258 | ; 2-byte tickgroups .v5-v8: 8 ticks each |
|
255 | sub dl, (sdsh_data.v5-sdsh_data.v1) |
259 | cmp dl, 112 |
256 | cmp dl, (sdsh_data.v9-sdsh_data.v5) |
260 | jae .gptick.3 |
257 | jae .gptick.3 |
261 | sub dl, 80 |
258 | lea esi, [sdsh_data.v5 + edx*2] |
262 | lea esi, [sdsh_data.v5 + edx*2] |
Line 259... | Line 263... | ||
259 | mov dh, 5 |
263 | mov dh, 5 |
260 | shr dl, 3 |
264 | shr dl, 3 |
261 | jmp .gptick.done |
- | |
262 | 265 | jmp .gptick.done |
|
263 | .gptick.3: |
266 | |
- | 267 | .gptick.3: |
|
264 | ; 3-byte tickgroups .v9-12: 4 ticks each |
268 | ; 3-byte tickgroups .v9-12: 4 ticks each |
265 | sub dl, (sdsh_data.v9-sdsh_data.v5) |
269 | cmp dl, 128 |
266 | cmp dl, (sdsh_data.v13-sdsh_data.v9) |
270 | jae .gptick.4 |
267 | jae .gptick.4 |
271 | sub dl, 112 |
Line 268... | Line 272... | ||
268 | lea esi, [sdsh_data.v9 + edx*2 + edx] |
272 | lea esi, [sdsh_data.v9 + edx*2 + edx] |
269 | mov dh, 9 |
273 | mov dh, 9 |
270 | shr dl, 2 |
274 | shr dl, 2 |
- | 275 | jmp .gptick.done |
|
271 | jmp .gptick.done |
276 | |
272 | - | ||
273 | .gptick.4: |
277 | .gptick.4: |
274 | ; 4-byte tickgroups .v13-16: 4 ticks each |
278 | ; 4-byte tickgroups .v13-16: 4 ticks each |
275 | sub dl, (sdsh_data.v13-sdsh_data.v9) |
279 | cmp dl, 128 ; fix this when needed |
Line 276... | Line 280... | ||
276 | cmp dl, 16 |
280 | jae .exit ; not implemented yet! |
Line 350... | Line 354... | ||
350 | shr cl, 4 ; x |
354 | shr cl, 4 ; x |
351 | add eax, ecx |
355 | add eax, ecx |
352 | pop ecx |
356 | pop ecx |
353 | call draw_tick |
357 | call draw_tick |
354 | .gptick.5: |
358 | .gptick.5: |
- | 359 | .sptick: |
|
355 | .exit: |
360 | .exit: |
356 | popad |
361 | popad |
357 | ret |
362 | ret |
Line 494... | Line 499... | ||
494 | pop eax |
499 | pop eax |
495 | ret |
500 | ret |
Line 496... | Line 501... | ||
496 | 501 | ||
497 | align 4 |
502 | align 4 |
498 | diff16 "ch_putpix : ",0,$ |
503 | diff16 "ch_putpix : ",0,$ |
499 | ch_putpixel: |
504 | ; ch_putpixel: |
500 | ; eax = x coordinate |
505 | ; eax = x coordinate |
501 | ; ebx = y coordinate |
506 | ; ebx = y coordinate |
502 | ; edi = 0x0RRGGBB |
507 | ; edi = 0x0RRGGBB |
503 | push edx |
508 | push edx |
Line 506... | Line 511... | ||
506 | lea edx, [edx+eax*4] |
511 | lea edx, [edx+eax*4] |
507 | mov [LFB_BASE+edx], edi |
512 | mov [LFB_BASE+edx], edi |
508 | pop edx |
513 | pop edx |
509 | ret |
514 | ret |
510 | ;) |
515 | ;) |
- | 516 | ch_putpixel: |
|
- | 517 | ; test version!!! ===== to be removed!! |
|
- | 518 | ; eax = x coordinate |
|
- | 519 | ; ebx = y coordinate |
|
- | 520 | ; edi = 0x0RRGGBB |
|
- | 521 | push edx |
|
- | 522 | mov edx, ebx |
|
- | 523 | shl edx, 1 |
|
- | 524 | imul edx, [BytesPerScanLine] |
|
- | 525 | lea edx, [edx+eax*8] |
|
- | 526 | add edx, LFB_BASE |
|
- | 527 | mov [edx], edi |
|
- | 528 | mov [edx+4], edi |
|
- | 529 | sub edx, [BytesPerScanLine] |
|
- | 530 | mov [edx], edi |
|
- | 531 | mov [edx+4], edi |
|
- | 532 | pop edx |
|
- | 533 | ret |
|
Line 511... | Line 534... | ||
511 | 534 |