;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;; ;; Distributed under terms of the GNU General Public License ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $Revision: 1300 $ ; // Alver 22.06.2008 // { align 4 dtext_asciiz_esi: ; for skins title out push eax xor eax, eax inc eax jmp dtext.1 ; } \\ Alver \\ align 4 dtext: ; Text String Output (rw by Johnny_B[john@kolibrios.org]) ; ebx x & y ; ecx style ( 0xX0000000 ) & color ( 0x00RRGGBB ) ; X = ABnnb: ; nn = font ; A = 0 <=> output esi characters; otherwise output ASCIIZ string ; B = 1 <=> fill background with color eax ; edx start of text ; edi 1 force ; // Alver 22.06.2008 // { push eax xor eax, eax .1: ; } \\ Alver \\ pushad call [_display.disable_mouse] movsx eax, bx ; eax=y sar ebx, 16 ; ebx=x xchg eax, ebx ; eax=x, ebx=y cmp esi, 255 jb .loop mov esi, 255 .loop: test ecx, ecx js .test_asciiz dec esi js .end jmp @f .test_asciiz: cmp byte [edx], 0 jz .end ; // Alver 22.06.2008 // { cmp byte [esp+28], 1 jne @f dec esi js .end ; } \\ Alver \\ @@: inc edx pushad movzx edx, byte [edx-1] test ecx, 0x10000000 jnz .font2 mov esi, 9 lea ebp, [FONT_I+8*edx+edx] .symloop1: mov dl, byte [ebp] or dl, 1 shl 6 .pixloop1: shr dl, 1 jz .pixloop1end jnc .nopix call [putpixel] jmp .pixloop1cont .nopix: test ecx, 0x40000000 jz .pixloop1cont push ecx mov ecx, [esp+4+20h+20h] call [putpixel] pop ecx .pixloop1cont: inc eax jmp .pixloop1 .pixloop1end: sub eax, 6 inc ebx inc ebp dec esi jnz .symloop1 popad add eax, 6 jmp .loop .font2: add edx, edx lea ebp, [FONT_II+4*edx+edx+1] push 9 movzx esi, byte [ebp-1] .symloop2: mov dl, byte [ebp] push esi .pixloop2: shr dl, 1 jnc .nopix2 call [putpixel] jmp .pixloop2cont .nopix2: test ecx, 0x40000000 jz .pixloop2cont push ecx mov ecx, [esp+12+20h+20h] call [putpixel] pop ecx .pixloop2cont: inc eax dec esi jnz .pixloop2 pop esi sub eax, esi inc ebx inc ebp dec dword [esp] jnz .symloop2 pop eax add dword [esp+28], esi popad jmp .loop .end: popad pop eax ; << // Alver 22.06.2008 // << ret