Subversion Repositories Kolibri OS

Rev

Rev 4909 | Rev 4911 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4909 Rev 4910
Line 713... Line 713...
713
        pop     edx
713
        pop     edx
714
        pop     esi
714
        pop     esi
715
        add     edx, ecx
715
        add     edx, ecx
716
        ret
716
        ret
Line 717... Line -...
717
 
-
 
718
 
717
 
719
;-----------------------------------------------------------------------------
718
;-----------------------------------------------------------------------------
720
;                  Display FPU register (ST0 - ST7) content
719
;                  Display FPU register (ST0 - ST7) content
721
;
720
;
Line 722... Line 721...
722
; in: ebp->index, ebx = coord
721
; in: ebp->index, ebx = coord
Line 723... Line 722...
723
 
722
 
724
draw_fpu_register_2:
723
draw_fpu_register_2:
725
 
724
 
726
.str_buf  equ esp
725
.str_buf  equ esp
-
 
726
.bcd_man  equ .str_buf+32
Line 727... Line 727...
727
.bcd_man  equ esp+32
727
.bcd_exp  equ .bcd_man+12
Line 728... Line 728...
728
.bcd_exp  equ esp+32+12
728
.exp      equ .bcd_exp+12
729
.exp_v    equ esp+32+12+12
729
.tmp      equ .exp+4
730
 
730
 
731
        sub     esp, 32+12+12+4
731
        sub     esp, 32+12+12+4+4
Line 775... Line 775...
775
        mov     dword [.str_buf], ' 0.0'
775
        mov     dword [.str_buf], ' 0.0'
776
        jmp     .display
776
        jmp     .display
Line 777... Line 777...
777
 
777
 
778
.decode:
778
.decode:
779
        fld     tword [_st0+edx]
-
 
780
        fldlg2
-
 
781
        fld     tword [_st0+edx]
-
 
782
        bt      dword [_st0+edx+8], 15  ;check sign flag
-
 
783
        jnc @f
779
        fld     tword [_st0+edx]
-
 
780
        fabs
784
        fabs
781
        fld     st0
-
 
782
        fldlg2
785
@@:
783
        fld     st1
786
        fyl2x
784
        fyl2x
787
        frndint
785
        frndint
-
 
786
        fist    dword [.exp]
-
 
787
        fld     st0
-
 
788
        fbstp   tword [.bcd_exp]
-
 
789
 
-
 
790
        fldl2t
-
 
791
        fmulp
-
 
792
        fld     st0
-
 
793
        frndint
-
 
794
        fxch
-
 
795
        fsub    st,st1
-
 
796
 
-
 
797
        f2xm1
-
 
798
        fld1
-
 
799
        faddp
-
 
800
        fscale
-
 
801
        fstp    st1
-
 
802
        fdivp
-
 
803
 
-
 
804
        fist    dword [.tmp]
-
 
805
        cmp     dword [.tmp], 10
-
 
806
        jae     .fixup
-
 
807
 
-
 
808
        fstp    st1
-
 
809
        jmp     .done
-
 
810
 
-
 
811
.fixup:
-
 
812
        fstp st0
-
 
813
 
-
 
814
        inc     dword [.exp]
788
        fist    dword [.exp_v]
815
        fild    dword [.exp]
789
        fld     st0
816
        fld     st0
790
        fbstp   tword [.bcd_exp]
-
 
791
        push    8
-
 
792
        fisub   dword [esp]
-
 
-
 
817
        fbstp tword [.bcd_exp]
793
        pop     eax
818
 
794
        fldl2t
819
        fldl2t
795
        fmulp
820
        fmulp
796
        fld     st0
821
        fld st0
797
        frndint
822
        frndint
Line 802... Line 827...
802
        fld1
827
        fld1
803
        faddp
828
        faddp
804
        fscale
829
        fscale
805
        fstp    st1
830
        fstp st1
806
        fdivp
831
        fdivp
-
 
832
.done:
-
 
833
        fimul dword [n_digits]
807
        fbstp   tword [.bcd_man]
834
        fbstp   tword [.bcd_man]
Line 808... Line 835...
808
 
835
 
809
        lea     esi, [.bcd_man-1]
836
        lea     esi, [.bcd_man-1]
Line 859... Line 886...
859
        stosb
886
        stosb
Line 860... Line 887...
860
 
887
 
861
.skip_lb:
888
.skip_lb:
Line 862... Line 889...
862
        loop    .mantis_2_str
889
        loop    .mantis_2_str
863
 
890
 
864
        mov     eax, [.exp_v]
891
        mov     eax, [.exp]
Line 865... Line 892...
865
        test    eax, eax
892
        test    eax, eax
866
        jz      .display
893
        jz      .display
Line 954... Line 981...
954
        mov     edx, .str_buf
981
        mov     edx, .str_buf
955
        add     ebx, 0x180000
982
        add     ebx, 0x180000
956
        int     0x40
983
        int     0x40
Line 957... Line 984...
957
 
984
 
958
        sub     ebx, 0x180000
985
        sub     ebx, 0x180000
Line 959... Line 986...
959
        add     esp, 32+12+12+4
986
        add     esp, 32+12+12+4+4
Line 960... Line 987...
960
 
987