Diff for /np2/win9x/dclockd.x86 between versions 1.1 and 1.4

version 1.1, 2003/10/21 11:22:05 version 1.4, 2011/02/02 13:50:29
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 12  DCLOCK_PATMAX equ  13 Line 13  DCLOCK_PATMAX equ  13
 .drawing                resw    1  .drawing                resw    1
 .clk_x                  resb    1  .clk_x                  resb    1
 .pad                    resb    1  .pad                    resb    1
 .dat  
                                 endstruc                                  endstruc
   
                                 struc dclockpos_t                                  struc dclockpos_t
Line 35  section .text Line 35  section .text
         global  _dclock_make          global  _dclock_make
         global  _dclock_out8          global  _dclock_out8
         global  _dclock_out16          global  _dclock_out16
           global  _dclock_out24
           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_size
                                 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 205  _dclock_out16: push ebx Line 207  _dclock_out16: push ebx
                                 push    esi                                  push    esi
                                 push    edi                                  push    edi
                                 push    ebp                                  push    ebp
                                 mov             esi, _dclock + dclock_t.dat                                  mov             esi, _dclock + dclock_t_size
                                 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             ebp
                                 pop             edi                                  pop             edi
                                 pop             esi                                  pop             esi
                                 pop             ebx                                  pop             ebx
                                 ret                                  ret
   
         ends                                  align   16
   _dclock_out24:  push    ebx
                                   push    esi
                                   push    edi
                                   push    ebp
                                   mov             esi, _dclock + dclock_t_size
                                   mov             edi, _dclockpal + dclockpal_t.pal32
                                   mov             ecx, [esp+16+4]
                                   sub             dword [esp+16+8], (DCLOCK_WIDTH * 3)
                                   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+0], al
                                   shr             eax, 8
                                   mov             [ecx+1], al
                                   mov             [ecx+2], ah
                                   add             ecx, byte 3
                                   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             edi
                                   pop             esi
                                   pop             ebx
                                   ret
   
                                   align   16
   _dclock_out32:  push    ebx
                                   push    esi
                                   push    edi
                                   push    ebp
                                   mov             esi, _dclock + dclock_t_size
                                   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             edi
                                   pop             esi
                                   pop             ebx
                                   ret
   

Removed from v.1.1  
changed lines
  Added in v.1.4


RetroPC.NET-CVS <cvs@retropc.net>