Subversion Repositories Kolibri OS

Rev

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

Rev 4900 Rev 4901
Line 760... Line 760...
760
.bcd_man  equ esp+32
760
.bcd_man  equ esp+32
761
.bcd_exp  equ esp+32+12
761
.bcd_exp  equ esp+32+12
Line 762... Line 762...
762
 
762
 
Line -... Line 763...
-
 
763
        sub     esp, 32+12+12
-
 
764
 
-
 
765
 
-
 
766
        mov     eax, 0x20202020
-
 
767
        mov     edi, .str_buf
-
 
768
        stosd
-
 
769
        stosd
-
 
770
        stosd
763
        sub     esp, 32+12+12
771
        stosd
764
 
772
 
Line -... Line 773...
-
 
773
        mov     edx, ebp
-
 
774
        shl     edx, 4
-
 
775
 
-
 
776
        movzx   eax, word [_fsw]
-
 
777
        shr     eax, 11
-
 
778
        add     eax, ebp
-
 
779
        and     eax, 7
-
 
780
 
-
 
781
        bt      dword [_ftw], eax
-
 
782
        jc     .A6M
-
 
783
 
-
 
784
        mov     dword [.str_buf],' epm'
-
 
785
        mov     word [.str_buf+4],'ty'
-
 
786
        jmp     .display
-
 
787
 
-
 
788
        mov     cx, [_st0+edx+8]
-
 
789
        and     cx, 0x7FFF              ;clear sign flag
-
 
790
        jz      .A6M
-
 
791
 
-
 
792
        cmp     cx, 0x7FFF
-
 
793
        jne     .decode
-
 
794
 
-
 
795
        mov     dword [.str_buf], ' inv'
-
 
796
        mov     dword [.str_buf+4], 'alid'
-
 
797
        jmp     .display
-
 
798
 
-
 
799
.A6M:
-
 
800
 
-
 
801
        mov     eax, dword [_st0+edx]
-
 
802
        or      eax, dword [_st0+edx+4]
-
 
803
        jnz     .decode
-
 
804
 
-
 
805
        mov     dword [.str_buf], ' 0.0'
-
 
806
        jmp     .display
765
        mov     edx, ebp
807
 
766
        shl     edx, 4
808
.decode:
767
 
809
 
768
        fld     tword [_st0+edx]
810
        fld     tword [_st0+edx]
769
        fldlg2
811
        fldlg2
770
        fld     tword [_st0+edx]
812
        fld     tword [_st0+edx]
771
        bt      dword [_st0+edx+8], 15
813
        bt      dword [_st0+edx+8], 15  ;check sign flag
772
        jnc @f
814
        jnc @f
773
        fabs
815
        fabs
Line 790... Line 832...
790
        fstp    st1
832
        fstp    st1
791
        fdivp
833
        fdivp
792
        fimul   dword [_10000000]
834
        fimul   dword [_10000000]
793
        fbstp   tword [.bcd_man]
835
        fbstp   tword [.bcd_man]
Line 794... Line -...
794
 
-
 
795
        mov     eax, 0x20202020
-
 
796
        mov     edi, .str_buf
-
 
797
        stosd
-
 
798
        stosd
-
 
799
        stosd
-
 
800
        stosd
-
 
801
 
836
 
802
        lea     esi, [.bcd_man-1]
837
        lea     esi, [.bcd_man-1]
Line 803... Line 838...
803
        mov     edi, .str_buf
838
        mov     edi, .str_buf
804
 
839
 
Line 832... Line 867...
832
        stosb
867
        stosb
833
        btr     eax, 16
868
        btr     eax, 16
834
        jnc     .skip_hb
869
        jnc     .skip_hb
835
        mov     al, '.'
870
        mov     al, '.'
836
        stosb
871
        stosb
-
 
872
 
837
.skip_hb:
873
.skip_hb:
838
        mov     al, ah
874
        mov     al, ah
839
        and     al, 0x0F
875
        and     al, 0x0F
840
        jnz     .write_lb
876
        jnz     .write_lb
Line 841... Line 877...
841
 
877
 
842
        bt      eax, 16
878
        bt      eax, 16
-
 
879
        jc      .skip_lb
843
        jc      .skip_lb
880
 
844
.write_lb:
881
.write_lb:
845
        add     al,0x30
882
        add     al,0x30
846
        stosb
883
        stosb
847
        btr     eax, 16
884
        btr     eax, 16
848
        jnc     .skip_lb
885
        jnc     .skip_lb
849
        mov     al, '.'
886
        mov     al, '.'
-
 
887
        stosb
850
        stosb
888
 
851
.skip_lb:
-
 
852
        dec     ecx
889
.skip_lb:
Line 853... Line 890...
853
        jnz     .mantis_2_str
890
        loop    .mantis_2_str
854
 
891
 
Line 855... Line 892...
855
        mov     ax, ' e'
892
        mov     ax, ' e'
Line 861... Line 898...
861
        mov     al, [esi+ecx+1]
898
        mov     al, [esi+ecx+1]
862
        cmp     al, 0x80
899
        cmp     al, 0x80
863
        jne     .exp_2_str
900
        jne     .exp_2_str
864
        mov     al, '-'
901
        mov     al, '-'
865
        stosb
902
        stosb
-
 
903
 
866
.exp_2_str:
904
.exp_2_str:
867
        mov     al, [esi+ecx]
905
        mov     al, [esi+ecx]
868
        test    al, al
906
        test    al, al
869
        jnz     @f
907
        jnz     @f
Line 875... Line 913...
875
        shr     al, 4
913
        shr     al, 4
876
        jnz     .write_h2
914
        jnz     .write_h2
Line 877... Line 915...
877
 
915
 
878
        bt      eax, 16
916
        bt      eax, 16
-
 
917
        jc      .skip_hb2
879
        jc      .skip_hb2
918
 
880
.write_h2:
919
.write_h2:
881
        add     al, 0x30
920
        add     al, 0x30
882
        stosb
921
        stosb
883
        btr     eax, 16
922
        btr     eax, 16
-
 
923
        stosb
884
        stosb
924
 
-
 
925
.skip_hb2:
885
.skip_hb2:
926
 
886
        mov     al, ah
927
        mov     al, ah
887
        and     al, 0x0F
928
        and     al, 0x0F
Line 888... Line 929...
888
        jnz     .write_lb2
929
        jnz     .write_lb2
889
 
930
 
-
 
931
        bt      eax, 16
890
        bt      eax, 16
932
        jc      .skip_lb2
-
 
933
 
891
        jc      .skip_lb2
934
.write_lb2:
892
.write_lb2:
935
 
893
        add     al, 0x30
936
        add     al, 0x30
-
 
937
        stosb
894
        stosb
938
        btr     eax, 16
895
        btr     eax, 16
-
 
896
.skip_lb2:
939
 
-
 
940
.skip_lb2:
-
 
941
        loop    .exp_2_str
Line 897... Line 942...
897
        dec ecx
942
 
898
        jnz .exp_2_str
943
.display:
899
 
944
 
900
        mov     ecx, (COLOR_TXT_INACTIVE or 0x40000000)
945
        mov     ecx, (COLOR_TXT_INACTIVE or 0x40000000)