|
|
| version 1.1, 2003/10/21 11:22:05 | version 1.2, 2005/02/16 09:31:55 |
|---|---|
| Line 1 | Line 1 |
| DCLOCK_X equ 56 | DCLOCK_WIDTH equ 56 |
| DCLOCK_Y equ 12 | DCLOCK_HEIGHT equ 12 |
| DCLOCK_YALIGN equ (56 / 8) | |
| DCLOCK_PATMAX equ 13 | DCLOCK_PATMAX equ 13 |
| struc dclock_t | struc dclock_t |
| Line 35 section .text | Line 36 section .text |
| global _dclock_make | global _dclock_make |
| global _dclock_out8 | global _dclock_out8 |
| global _dclock_out16 | global _dclock_out16 |
| global _dclock_out32 | |
| extern _dclock | extern _dclock |
| extern _dclockpal | extern _dclockpal |
| Line 109 makedclock_y0: movzx eax, byte [_dclock | Line 111 makedclock_y0: movzx eax, byte [_dclock |
| mov [_dclock + dclock_t.bak + ebx], al | mov [_dclock + dclock_t.bak + ebx], al |
| makedclock0put: mov ch, 3 | makedclock0put: mov ch, 3 |
| makedclock0_up: and [edi], dx | makedclock0_up: and [edi], dx |
| add edi, byte (DCLOCK_X / 8) | add edi, byte DCLOCK_YALIGN |
| dec ch | dec ch |
| jne short makedclock0_up | jne short makedclock0_up |
| shl eax, 4 | shl eax, 4 |
| Line 121 makedclock0_dn: movzx eax, byte [esi] | Line 123 makedclock0_dn: movzx eax, byte [esi] |
| and [edi], dx | and [edi], dx |
| or [edi], ax | or [edi], ax |
| inc esi | inc esi |
| add edi, byte (DCLOCK_X / 8) | add edi, byte DCLOCK_YALIGN |
| dec ch | dec ch |
| jne short makedclock0_dn | jne short makedclock0_dn |
| jmp short dmk_mnnt | jmp short dmk_mnnt |
| Line 132 makedclock_ani: movzx eax, byte [dclocky | Line 134 makedclock_ani: movzx eax, byte [dclocky |
| sub ch, al | sub ch, al |
| je short makedclock_an2 | je short makedclock_an2 |
| makedclkani_up: and [edi], dx | makedclkani_up: and [edi], dx |
| add edi, byte (DCLOCK_X / 8) | add edi, byte DCLOCK_YALIGN |
| dec ch | dec ch |
| jne short makedclkani_up | jne short makedclkani_up |
| makedclock_an2: movzx esi, byte [_dclock + dclock_t.now + ebx] | makedclock_an2: movzx esi, byte [_dclock + dclock_t.now + ebx] |
| Line 144 makedclkani_md: movzx eax, byte [esi] | Line 146 makedclkani_md: movzx eax, byte [esi] |
| and [edi], dx | and [edi], dx |
| or [edi], ax | or [edi], ax |
| inc esi | inc esi |
| add edi, (DCLOCK_X / 8) | add edi, DCLOCK_YALIGN |
| dec ch | dec ch |
| jne short makedclkani_md | jne short makedclkani_md |
| pop eax | pop eax |
| Line 159 makedclkani_dn: movzx eax, byte [esi] | Line 161 makedclkani_dn: movzx eax, byte [esi] |
| and [edi], dx | and [edi], dx |
| or [edi], ax | or [edi], ax |
| inc esi | inc esi |
| add edi, byte (DCLOCK_X / 8) | add edi, byte DCLOCK_YALIGN |
| dec ch | dec ch |
| jne short makedclkani_dn | jne short makedclkani_dn |
| jmp near dmk_mnnt | jmp near dmk_mnnt |
| Line 170 _dclock_out8: push ebx | Line 172 _dclock_out8: push ebx |
| push edi | push edi |
| push ebp | push ebp |
| mov ecx, [esp+16+4] | mov ecx, [esp+16+4] |
| sub dword [esp+16+8], byte DCLOCK_X | sub dword [esp+16+8], byte DCLOCK_WIDTH |
| mov esi, _dclock + dclock_t.dat | mov esi, _dclock + dclock_t.dat |
| mov edi, _dclockpal + dclockpal_t.pal8 | mov edi, _dclockpal + dclockpal_t.pal8 |
| mov bh, 4 | mov bh, 4 |
| do8_lp1: mov bl, 3 | .lp1: mov bl, 3 |
| do8_lp2: mov ebp, (DCLOCK_X / 8) | .lp2: mov ebp, DCLOCK_YALIGN |
| do8_lp3: movzx eax, byte [esi] | .lp3: movzx eax, byte [esi] |
| shr eax, 4 | shr eax, 4 |
| mov eax, [eax*4 + edi] | mov eax, [eax*4 + edi] |
| mov [ecx], eax | mov [ecx], eax |
| Line 187 do8_lp3: movzx eax, byte [esi] | Line 189 do8_lp3: movzx eax, byte [esi] |
| inc esi | inc esi |
| add ecx, byte 8 | add ecx, byte 8 |
| dec ebp | dec ebp |
| jne short do8_lp3 | jne short .lp3 |
| add ecx, [esp+16+8] | add ecx, [esp+16+8] |
| dec bl | dec bl |
| jne short do8_lp2 | jne short .lp2 |
| add edi, byte 4*16 | add edi, byte 4*16 |
| dec bh | dec bh |
| jne short do8_lp1 | jne short .lp1 |
| pop ebp | pop ebp |
| pop edi | pop edi |
| pop esi | pop esi |
| Line 208 _dclock_out16: push ebx | Line 210 _dclock_out16: push ebx |
| mov esi, _dclock + dclock_t.dat | mov esi, _dclock + dclock_t.dat |
| mov edi, _dclockpal + dclockpal_t.pal16 | mov edi, _dclockpal + dclockpal_t.pal16 |
| mov ecx, [esp+16+4] | mov ecx, [esp+16+4] |
| sub dword [esp+16+8], byte (DCLOCK_X * 2) | sub dword [esp+16+8], byte (DCLOCK_WIDTH * 2) |
| mov dh, 4 | mov dh, 4 |
| do16_lp1: mov dl, 3 | .lp1: mov dl, 3 |
| do16_lp2: mov ebp, (DCLOCK_X / 8) | .lp2: mov ebp, DCLOCK_YALIGN |
| do16_lp3: mov bl, [esi] | .lp3: mov bl, [esi] |
| mov bh, 8 | mov bh, 8 |
| do16_lp4: rcl bl, 1 | .lp4: rcl bl, 1 |
| sbb ax, ax | sbb ax, ax |
| and ax, [edi] | and ax, [edi] |
| mov [ecx], ax | mov [ecx], ax |
| add ecx, byte 2 | add ecx, byte 2 |
| dec bh | dec bh |
| jne short do16_lp4 | jne short .lp4 |
| inc esi | inc esi |
| dec ebp | dec ebp |
| jne short do16_lp3 | jne short .lp3 |
| add ecx, [esp+16+8] | add ecx, [esp+16+8] |
| dec dl | dec dl |
| jne short do16_lp2 | jne short .lp2 |
| add edi, 2 | add edi, byte 2 |
| dec dh | dec dh |
| jne short do16_lp1 | jne short .lp1 |
| pop ebp | |
| pop edi | |
| pop esi | |
| pop ebx | |
| ret | |
| align 16 | |
| _dclock_out32: push ebx | |
| push esi | |
| push edi | |
| push ebp | |
| mov esi, _dclock + dclock_t.dat | |
| mov edi, _dclockpal + dclockpal_t.pal32 | |
| mov ecx, [esp+16+4] | |
| sub dword [esp+16+8], (DCLOCK_WIDTH * 4) | |
| mov dh, 4 | |
| .lp1: mov dl, 3 | |
| .lp2: mov ebp, DCLOCK_YALIGN | |
| .lp3: mov bl, [esi] | |
| mov bh, 8 | |
| .lp4: rcl bl, 1 | |
| sbb eax, eax | |
| and eax, [edi] | |
| mov [ecx], eax | |
| add ecx, byte 4 | |
| dec bh | |
| jne short .lp4 | |
| inc esi | |
| dec ebp | |
| jne short .lp3 | |
| add ecx, [esp+16+8] | |
| dec dl | |
| jne short .lp2 | |
| add edi, byte 4 | |
| dec dh | |
| jne short .lp1 | |
| pop ebp | pop ebp |
| pop edi | pop edi |
| pop esi | pop esi |