Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4899 → Rev 4900

/programs/develop/mtdbg/gui.inc
697,6 → 697,12
push edx
push ecx
push esi
 
sub esp, 8
 
fld tword [esi]
fistp qword [esp]
 
mov eax, esi
mov esi, ecx
 
727,11 → 733,15
imul esi, 60000h
lea edx, [ebx+esi]
mov esi, ecx
pop ecx
 
mov ecx, esp
 
; draw a number in the window
; color is the same as for previous text draw function
; ebx : [20] show 16 chars set [30] bit - qword
mcall 47, 40100101h
add esp, 8
pop ecx
lea ebx, [edx+60000h*18]
mov esi, ecx
pop ecx
741,6 → 751,196
ret
 
;-----------------------------------------------------------------------------
; Display FPU register (ST0 - ST7) content
;
; in: esi->value, ebx = coord
draw_fpu_register_2:
 
.str_buf equ esp
.bcd_man equ esp+32
.bcd_exp equ esp+32+12
 
sub esp, 32+12+12
 
mov edx, ebp
shl edx, 4
 
fld tword [_st0+edx]
fldlg2
fld tword [_st0+edx]
bt dword [_st0+edx+8], 15
jnc @f
fabs
@@:
fyl2x
frndint
fld st0
fbstp tword [.bcd_exp]
fldl2t
fmulp
fld st0
frndint
fxch
fsub st,st1
 
f2xm1
fld1
faddp
fscale
fstp st1
fdivp
fimul dword [_10000000]
fbstp tword [.bcd_man]
 
mov eax, 0x20202020
mov edi, .str_buf
stosd
stosd
stosd
stosd
 
lea esi, [.bcd_man-1]
mov edi, .str_buf
 
mov ecx, 9
mov eax, 0x10000
 
mov al, [esi+ecx+1]
cmp al, 0x80 ; check for sign
jne .mantis_2_str
mov al, '-'
stosb
 
.mantis_2_str:
 
mov al, [esi+ecx]
test al, al
jnz @f
 
bt eax, 16
jc .skip_lb
@@:
mov ah, al
shr al, 4
jnz .write_h
 
bt eax, 16
jc .skip_hb
 
.write_h:
add al, 0x30
stosb
btr eax, 16
jnc .skip_hb
mov al, '.'
stosb
.skip_hb:
mov al, ah
and al, 0x0F
jnz .write_lb
 
bt eax, 16
jc .skip_lb
.write_lb:
add al,0x30
stosb
btr eax, 16
jnc .skip_lb
mov al, '.'
stosb
.skip_lb:
dec ecx
jnz .mantis_2_str
 
mov ax, ' e'
stosw
 
lea esi, [.bcd_exp-1]
mov ecx, 9
mov eax,0x10000
mov al, [esi+ecx+1]
cmp al, 0x80
jne .exp_2_str
mov al, '-'
stosb
.exp_2_str:
mov al, [esi+ecx]
test al, al
jnz @f
 
bt eax, 16
jc .skip_lb2
@@:
mov ah, al
shr al, 4
jnz .write_h2
 
bt eax, 16
jc .skip_hb2
.write_h2:
add al, 0x30
stosb
btr eax, 16
stosb
.skip_hb2:
mov al, ah
and al, 0x0F
jnz .write_lb2
 
bt eax, 16
jc .skip_lb2
.write_lb2:
add al, 0x30
stosb
btr eax, 16
.skip_lb2:
dec ecx
jnz .exp_2_str
 
mov ecx, (COLOR_TXT_INACTIVE or 0x40000000)
cmp [debuggee_pid], 0
jz .do_label
cmp [bSuspended], 0
jz .do_label
 
mov ecx, (COLOR_TXT_NORMAL or 0x40000000)
 
mov eax, dword [_st0+edx]
cmp eax, dword [_st0+(oldcontext-context)+edx]
jne .scol
 
mov eax, dword [_st0+edx+4]
cmp eax, dword [_st0+(oldcontext-context)+4]
jne .scol
 
mov ax, word [_st0+edx+8]
cmp ax, word [_st0+(oldcontext-context)+8]
je .do_label
 
.scol:
mov ecx, (COLOR_TXT_CHANGED or 0x40000000)
 
.do_label:
; draw a text string in the window
 
mov eax, 4
mov esi, eax
lea edx, [fpu_strs+ebp*4]
mov edi, COLOR_BG_NORMAL
int 0x40
 
mov esi, 16
mov edx, .str_buf
add ebx, 0x180000
int 0x40
 
sub ebx, 0x180000
add esp, 32+12+12
 
ret
 
 
;-----------------------------------------------------------------------------
; Show FPU MMX register content
;
; in: esi->value, edx->string, ecx = string length, ebx = coord
911,6 → 1111,8
 
; MMX registers
 
push ebp
 
push 8
mov edx, mmx_strs
mov ebx, (registers_x_pos+2)*10000h+registers_y_pos+142
927,20 → 1129,23
 
;FPU registers
 
;int3
nop
 
mov [esp], byte 8
mov edx, fpu_strs
xor ebp, ebp
mov ebx, (registers_x_pos+2)*10000h+registers_y_pos+232
mov esi, _st0
 
align 4
.draw_fpu_regs:
 
call draw_fpu_register
call draw_fpu_register_2
add ebx, 10
add esi, 16
inc ebp
dec dword [esp]
jnz .draw_fpu_regs
pop eax ;restore stack
pop ebp
 
mov ecx, COLOR_TXT_INACTIVE
cmp [debuggee_pid], 0
/programs/develop/mtdbg/mtdbg.asm
2328,11 → 2328,13
db '-YMM6-'
db '-YMM7-'
 
align 4
debuggee_pid dd 0
bSuspended db 0
bAfterGo db 0
temp_break dd 0
reg_mode db 1
_10000000 dd 10000000
 
include 'disasm_tbl.inc'
 
2442,10 → 2444,19
dd ?
 
_sse_flags:
 
 
_fcw dw ?
_fsw dw ?
_ftw db ?
db ?
_fop dw ?
_fpu_ip dd ?
dw ?
dw ?
 
dq ?
dq ?
dq ?
dq ?
 
fpu_context:
mmx_context: