Subversion Repositories Kolibri OS

Compare Revisions

Problem with comparison.

Regard whitespace Rev HEAD → Rev 1

/trunk/gui/font.inc
0,0 → 1,225
align 4
dtext:
; eax x & y
; ebx font ( 0xX0000000 ) & color ( 0x00RRGGBB )
; ecx start of text
; edx length
; edi 1 force
 
test ebx,0x10000000
jnz dtext2
 
pushad
 
mov esi, edx
and esi, 0xff
test esi, esi ; zero length ?
jnz @f
popad
ret
@@:
align 4
.letnew:
 
push eax ecx edx
movzx ebx,ax
shr eax,16
movzx edx,byte [ecx]
mov ecx,[esp+3*4+32-16]
call drawletter
pop edx ecx eax
 
add eax,6*65536
 
inc ecx
dec edx
jnz .letnew
 
popad
ret
 
align 4
drawletter:
 
; eax x
; ebx y
; ecx color
; edx letter
; esi shl size
; edi force
 
pushad
call [disable_mouse]
xor eax, eax
xor ebx, ebx ; 0x37000+eax+ebx*8
inc esi
align 4
chc:
 
push eax
push ebx
 
mov edx,ebx
shl edx,3
add edx,eax
add edx,0x37000+8
mov ecx,[esp+32-12+8]
imul ecx,8*10
add edx,ecx
cmp [edx],byte 'o'
jnz .nopix
mov eax,[esp+4]
mov ebx,[esp+0]
add eax,[esp+32+2*4-4]
add ebx,[esp+32+2*4-16]
mov ecx,[esp+32+2*4-8]
;;;call [disable_mouse]
call [putpixel]
.nopix:
pop ebx
pop eax
 
inc eax
cmp eax,5 ; ebp
jne chc
 
xor eax, eax
 
inc ebx
cmp ebx,9 ; ebp
jne chc
 
popad
ret
 
 
dtext2:
 
; eax x & y
; ebx color
; ecx start of text
; edx length
; edi 1 force
 
pushad
 
mov esi,edx
and esi,0xff
test esi,esi ; zero length ?
jnz @f
popad
ret
@@:
 
align 4
letnew2:
 
push eax
push ecx
push edx
movzx ebx,ax
shr eax,16
movzx edx,byte [ecx]
mov ecx,[esp+3*4+32-16]
call drawletter2
pop edx
pop ecx
pop eax
 
push edx
movzx edx,byte [ecx]
imul edx,10*10
add edx,0x30000
cmp [edx+6],byte ' '
jne nocharadd8
add eax,8*65536
jmp charaddok
nocharadd8:
movzx edx,byte [edx+6]
sub edx,47
shl edx,16
add eax,edx
charaddok:
pop edx
 
inc ecx
dec edx
jnz letnew2
 
popad
ret
 
align 4
drawletter2:
 
; eax x
; ebx y
; ecx color
; edx letter
; esi shl size
; edi force
 
pushad
call [disable_mouse]
xor eax, eax
xor ebx, ebx ; +eax+ebx*8
inc esi
 
align 4
chc2:
 
push eax
push ebx
 
; cmp esi,1
; je noldiv
; xor edx,edx
; div esi
; push eax
; xor edx,edx
; mov eax,ebx
; div esi
; mov ebx,eax
; pop eax
; noldiv:
 
mov edx,ebx
;shl edx,3
imul edx,10
add edx,eax
add edx,0x30000+8+2
mov ecx,[esp+32-12+8]
;shl ecx,6
imul ecx,10*10
add edx,ecx
cmp [edx],byte 'o'
jnz nopix2
mov eax,[esp+4]
mov ebx,[esp+0]
add eax,[esp+32+2*4-4]
add ebx,[esp+32+2*4-16]
mov ecx,[esp+32+2*4-8]
;;;call [disable_mouse]
call [putpixel]
nopix2:
pop ebx
pop eax
 
;mov ebp,7
;imul ebp,esi
 
inc eax
cmp eax,7 ;ebp
jnz chc2
 
xor eax, eax
 
;mov ebp,9
;imul ebp,esi
 
inc ebx
cmp ebx,9 ; ebp
jnz chc2
 
popad
ret