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) |