/programs/develop/mtdbg/gui.inc |
715,6 → 715,7 |
add edx, ecx |
ret |
|
|
;----------------------------------------------------------------------------- |
; Display FPU register (ST0 - ST7) content |
; |
723,12 → 724,11 |
draw_fpu_register_2: |
|
.str_buf equ esp |
.bcd_man equ .str_buf+32 |
.bcd_exp equ .bcd_man+12 |
.exp equ .bcd_exp+12 |
.tmp equ .exp+4 |
.bcd_man equ esp+32 |
.bcd_exp equ esp+32+12 |
.exp_v equ esp+32+12+12 |
|
sub esp, 32+12+12+4+4 |
sub esp, 32+12+12+4 |
|
mov eax, 0x20202020 |
mov edi, .str_buf |
777,16 → 777,20 |
|
.decode: |
fld tword [_st0+edx] |
fldlg2 |
fld tword [_st0+edx] |
bt dword [_st0+edx+8], 15 ;check sign flag |
jnc @f |
fabs |
fld st0 |
fldlg2 |
fld st1 |
@@: |
fyl2x |
frndint |
fist dword [.exp] |
fist dword [.exp_v] |
fld st0 |
fbstp tword [.bcd_exp] |
|
push 8 |
fisub dword [esp] |
pop eax |
fldl2t |
fmulp |
fld st0 |
800,37 → 804,6 |
fscale |
fstp st1 |
fdivp |
|
fist dword [.tmp] |
cmp dword [.tmp], 10 |
jae .fixup |
|
fstp st1 |
jmp .done |
|
.fixup: |
fstp st0 |
|
inc dword [.exp] |
fild dword [.exp] |
fld st0 |
fbstp tword [.bcd_exp] |
|
fldl2t |
fmulp |
fld st0 |
frndint |
fxch |
fsub st,st1 |
|
f2xm1 |
fld1 |
faddp |
fscale |
fstp st1 |
fdivp |
.done: |
fimul dword [n_digits] |
fbstp tword [.bcd_man] |
|
lea esi, [.bcd_man-1] |
888,7 → 861,7 |
.skip_lb: |
loop .mantis_2_str |
|
mov eax, [.exp] |
mov eax, [.exp_v] |
test eax, eax |
jz .display |
|
983,7 → 956,7 |
int 0x40 |
|
sub ebx, 0x180000 |
add esp, 32+12+12+4+4 |
add esp, 32+12+12+4 |
|
ret |
|