Rev 4911 | Rev 4913 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4911 | Rev 4912 | ||
---|---|---|---|
Line 721... | Line 721... | ||
721 | ; in: ebp->index, ebx = coord |
721 | ; in: ebp->index, ebx = coord |
Line 722... | Line 722... | ||
722 | 722 | ||
Line 723... | Line 723... | ||
723 | draw_fpu_register_2: |
723 | draw_fpu_register_2: |
- | 724 | ||
724 | 725 | .str_buf equ esp |
|
725 | .str_buf equ esp |
726 | .cvt_buf equ .str_buf+32 |
726 | .bcd_man equ .str_buf+32 |
727 | .bcd_man equ .cvt_buf+16 |
727 | .bcd_exp equ .bcd_man+12 |
728 | .bcd_exp equ .bcd_man+10 |
- | 729 | .exp equ .bcd_exp+10 |
|
Line 728... | Line 730... | ||
728 | .exp equ .bcd_exp+12 |
730 | .tmp equ .exp+4 |
Line 729... | Line -... | ||
729 | .tmp equ .exp+4 |
- | |
730 | 731 | .lcl_end equ .tmp+4 |
|
- | 732 | ||
- | 733 | sub esp, 32+16+10+10+4+4 |
|
- | 734 | ||
- | 735 | mov edi, .str_buf |
|
- | 736 | shl ebp, 16 |
|
731 | sub esp, 32+12+12+4+4 |
737 | lea eax, ['ST0:'+ebp] |
732 | 738 | stosd |
|
733 | mov eax, 0x20202020 |
739 | mov eax, 0x20202020 |
734 | mov edi, .str_buf |
740 | stosd |
Line 735... | Line 741... | ||
735 | stosd |
741 | stosd |
736 | stosd |
742 | stosd |
Line 737... | Line -... | ||
737 | stosd |
- | |
738 | stosd |
- | |
739 | - | ||
740 | ;int3 |
743 | stosd |
741 | ;nop |
744 | stosd |
742 | 745 | ||
- | 746 | ;int3 |
|
743 | mov edx, ebp |
747 | ;nop |
744 | shl edx, 4 |
- | |
745 | 748 | ||
746 | movzx eax, word [_fsw] |
749 | movzx eax, word [_fsw] |
Line 747... | Line 750... | ||
747 | shr eax, 11 |
750 | shr eax, 11 |
748 | add eax, ebp |
751 | add eax, ebp |
749 | and eax, 7 |
752 | shr ebp, 12 |
Line 750... | Line 753... | ||
750 | 753 | and eax, 7 |
|
751 | bt dword [_ftw], eax |
754 | bt dword [_ftw], eax |
752 | jc .A6M |
755 | jc .A6M |
Line 753... | Line 756... | ||
753 | 756 | ||
754 | mov dword [.str_buf],' emp' |
757 | mov dword [.str_buf+8],' emp' |
Line 755... | Line 758... | ||
755 | mov word [.str_buf+4],'ty' |
758 | mov word [.str_buf+8+4],'ty' |
756 | jmp .display |
759 | jmp .display |
757 | 760 | ||
Line 758... | Line 761... | ||
758 | mov cx, [_st0+edx+8] |
761 | mov cx, [_st0+ebp+8] |
Line 759... | Line 762... | ||
759 | and cx, 0x7FFF ;clear sign flag |
762 | and cx, 0x7FFF ;clear sign flag |
760 | jz .A6M |
763 | jz .A6M |
761 | 764 | ||
Line 762... | Line 765... | ||
762 | cmp cx, 0x7FFF |
765 | cmp cx, 0x7FFF |
763 | jne .decode |
766 | jne .decode |
Line 764... | Line 767... | ||
764 | 767 | ||
765 | mov dword [.str_buf], ' inv' |
768 | mov dword [.str_buf+6], ' inv' |
766 | mov dword [.str_buf+4], 'alid' |
769 | mov dword [.str_buf+6+4], 'alid' |
767 | jmp .display |
770 | jmp .display |
768 | 771 | ||
769 | .A6M: |
772 | .A6M: |
770 | 773 | ||
Line 831... | Line 834... | ||
831 | fdivp |
834 | fdivp |
832 | .done: |
835 | .done: |
833 | fimul dword [n_digits] |
836 | fimul dword [n_digits] |
834 | fbstp tword [.bcd_man] |
837 | fbstp tword [.bcd_man] |
Line 835... | Line 838... | ||
835 | 838 | ||
836 | lea esi, [.bcd_man-1] |
839 | lea edi, [.cvt_buf] |
837 | mov edi, .str_buf |
- | |
838 | 840 | mov edx, dword [.bcd_man] |
|
839 | mov ecx, 9 |
- | |
840 | mov eax, 0x10000 |
- | |
841 | - | ||
842 | mov al, [esi+ecx+1] |
- | |
843 | cmp al, 0x80 ; check for sign |
- | |
844 | jne .mantis_2_str |
- | |
845 | mov al, '-' |
- | |
846 | stosb |
- | |
847 | - | ||
848 | .mantis_2_str: |
- | |
849 | - | ||
850 | mov al, [esi+ecx] |
- | |
851 | test al, al |
- | |
852 | jnz @f |
- | |
853 | - | ||
854 | bt eax, 16 |
- | |
855 | jc .skip_lb |
841 | mov ecx, 8 |
856 | @@: |
- | |
857 | mov ah, al |
- | |
858 | shr al, 4 |
- | |
859 | jnz .write_h |
- | |
860 | - | ||
861 | bt eax, 16 |
- | |
862 | jc .skip_hb |
- | |
863 | - | ||
864 | .write_h: |
- | |
865 | add al, 0x30 |
- | |
866 | stosb |
842 | @@: |
867 | btr eax, 16 |
- | |
868 | jnc .skip_hb |
- | |
869 | mov al, '.' |
- | |
870 | stosb |
- | |
871 | - | ||
872 | .skip_hb: |
- | |
873 | mov al, ah |
843 | xor eax, eax |
874 | and al, 0x0F |
- | |
875 | jnz .write_lb |
- | |
876 | - | ||
877 | bt eax, 16 |
- | |
878 | jc .skip_lb |
- | |
879 | - | ||
880 | .write_lb: |
- | |
881 | add al,0x30 |
- | |
882 | stosb |
- | |
883 | btr eax, 16 |
- | |
884 | jnc .skip_lb |
- | |
885 | mov al, '.' |
844 | shld eax, edx, 4 |
- | 845 | stosb |
|
- | 846 | shl edx, 4 |
|
Line -... | Line 847... | ||
- | 847 | loop @B |
|
- | 848 | ||
- | 849 | lea esi, [.cvt_buf+7] |
|
- | 850 | lea edi, [.str_buf+13] |
|
- | 851 | mov ecx, 7 |
|
886 | stosb |
852 | mov ah, 0x30 |
- | 853 | std |
|
- | 854 | .skip_z: |
|
- | 855 | lodsb |
|
887 | 856 | test al, al |
|
888 | .skip_lb: |
857 | jnz .body |
889 | loop .mantis_2_str |
858 | loop .skip_z |
- | 859 | .body: |
|
- | 860 | add al, ah |
|
890 | 861 | stosb |
|
891 | mov eax, [.exp] |
862 | lodsb |
892 | test eax, eax |
863 | jcxz .point |
- | 864 | loop .body |
|
- | 865 | .point: |
|
893 | jz .display |
866 | dec edi |
894 | 867 | add al, ah |
|
Line 895... | Line -... | ||
895 | mov ax, ' e' |
- | |
896 | stosw |
- | |
897 | - | ||
898 | lea esi, [.bcd_exp-1] |
868 | mov ah, '.' |
899 | mov ecx, 9 |
- | |
900 | mov eax,0x10000 |
869 | stosw |
901 | mov al, [esi+ecx+1] |
870 | |
902 | cmp al, 0x80 |
- | |
903 | jne .exp_2_str |
- | |
904 | mov al, '-' |
- | |
905 | stosb |
- | |
906 | - | ||
907 | .exp_2_str: |
- | |
908 | mov al, [esi+ecx] |
- | |
909 | test al, al |
- | |
910 | jnz @f |
- | |
911 | - | ||
912 | bt eax, 16 |
871 | bt word [_st0+ebp+8], 15 |
913 | jc .skip_lb2 |
- | |
914 | @@: |
- | |
Line 915... | Line 872... | ||
915 | mov ah, al |
872 | jnc .m_sign |
916 | shr al, 4 |
873 | mov al, '-' |
Line 917... | Line -... | ||
917 | jnz .write_h2 |
- | |
918 | - | ||
919 | bt eax, 16 |
- | |
920 | jc .skip_hb2 |
- | |
921 | - | ||
922 | .write_h2: |
- | |
923 | add al, 0x30 |
- | |
924 | stosb |
874 | mov [edi+1], al |
925 | btr eax, 16 |
875 | |
926 | 876 | .m_sign: |
|
Line -... | Line 877... | ||
- | 877 | cld |
|
927 | .skip_hb2: |
878 | |
- | 879 | mov dx, word [.bcd_exp] |
|
928 | 880 | test dx, dx |
|
- | 881 | jz .display |
|
Line 929... | Line 882... | ||
929 | mov al, ah |
882 | |
- | 883 | lea edi, [.str_buf+15] |
|
Line -... | Line 884... | ||
- | 884 | mov ax, 'E ' |
|
- | 885 | cmp byte [.bcd_exp+9], 0x80 |
|
- | 886 | jne .w_e_sign |
|
- | 887 | mov ax, 'E-' |
|
- | 888 | ||
- | 889 | .w_e_sign: |
|
- | 890 | stosw |
|
- | 891 | ||
- | 892 | mov ecx, 4 |
|
930 | and al, 0x0F |
893 | .skip_lz: |
931 | jnz .write_lb2 |
894 | xor eax, eax |
932 | 895 | shld ax,dx,4 |
|
933 | bt eax, 16 |
- | |
- | 896 | shl dx, 4 |
|
934 | jc .skip_lb2 |
897 | test al, al |
935 | 898 | jnz .w_exp |
|
Line 936... | Line 899... | ||
936 | .write_lb2: |
899 | loop .skip_lz |
Line 937... | Line 900... | ||
937 | 900 | .w_exp: |
|
938 | add al, 0x30 |
901 | add al, 0x30 |
Line 950... | Line 913... | ||
950 | cmp [bSuspended], 0 |
913 | cmp [bSuspended], 0 |
951 | jz .do_label |
914 | jz .do_label |
Line 952... | Line 915... | ||
952 | 915 | ||
Line 953... | Line 916... | ||
953 | mov ecx, (COLOR_TXT_NORMAL or 0x40000000) |
916 | mov ecx, (COLOR_TXT_NORMAL or 0x40000000) |
954 | 917 | ||
955 | mov eax, dword [_st0+edx] |
918 | mov eax, dword [_st0+ebp] |
Line 956... | Line 919... | ||
956 | cmp eax, dword [_st0+(oldcontext-context)+edx] |
919 | cmp eax, dword [_st0+(oldcontext-context)+ebp] |
957 | jne .scol |
920 | jne .scol |
958 | 921 | ||
Line 959... | Line 922... | ||
959 | mov eax, dword [_st0+edx+4] |
922 | mov eax, dword [_st0+ebp+4] |
960 | cmp eax, dword [_st0+(oldcontext-context)+edx+4] |
923 | cmp eax, dword [_st0+(oldcontext-context)+ebp+4] |
961 | jne .scol |
924 | jne .scol |
Line 962... | Line 925... | ||
962 | 925 | ||
963 | mov ax, word [_st0+edx+8] |
926 | mov ax, word [_st0+ebp+8] |
Line 964... | Line 927... | ||
964 | cmp ax, word [_st0+(oldcontext-context)+edx+8] |
927 | cmp ax, word [_st0+(oldcontext-context)+ebp+8] |
965 | je .do_label |
928 | je .do_label |
Line 966... | Line 929... | ||
966 | 929 | ||
967 | .scol: |
- | |
968 | mov ecx, (COLOR_TXT_CHANGED or 0x40000000) |
- | |
969 | - | ||
970 | .do_label: |
- | |
971 | ; draw a text string in the window |
- | |
972 | 930 | .scol: |
|
973 | mov eax, 4 |
931 | mov ecx, (COLOR_TXT_CHANGED or 0x40000000) |
974 | mov esi, eax |
932 | |
975 | lea edx, [fpu_strs+ebp*4] |
933 | .do_label: |
Line 976... | Line 934... | ||
976 | mov edi, COLOR_BG_NORMAL |
934 | ; draw a text string in the window |
977 | int 0x40 |
935 | |
Line 978... | Line 936... | ||
978 | 936 | mov eax, 4 |
|
Line 979... | Line 937... | ||
979 | mov esi, 16 |
937 | mov esi, 21 |