Rev 92 | Rev 105 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 92 | Rev 102 | ||
---|---|---|---|
Line 794... | Line 794... | ||
794 | 794 | ||
795 | pusha ; save window coordinates for window restoring |
795 | pusha ; save window coordinates for window restoring |
796 | cld |
796 | cld |
797 | shl esi,5 |
797 | shl esi,5 |
798 | add esi,window_data |
798 | add esi,window_data |
799 | mov ax,[esi+0] |
799 | mov eax,[esi+WDATA.left] |
800 | mov word [dlx],ax |
800 | mov [dlx],eax |
801 | add ax,[esi+8] |
801 | add eax,[esi+WDATA.width] |
802 | mov word [dlxe],ax |
802 | mov [dlxe],eax |
803 | mov ax,[esi+4] |
803 | mov eax,[esi+WDATA.top] |
804 | mov word [dly],ax |
804 | mov [dly],eax |
805 | add ax,[esi+12] |
805 | add eax,[esi+WDATA.height] |
- | 806 | mov [dlye],eax |
|
806 | mov word [dlye],ax |
807 | |
807 | mov [esi+0],word 0 |
808 | mov [esi+WDATA.left], 0 |
808 | mov [esi+8],word 5 |
809 | mov [esi+WDATA.width], 5 |
809 | mov ax,[0xFE04] |
810 | mov eax,[0xFE04] |
810 | mov [esi+4],ax |
811 | mov [esi+WDATA.top],eax |
811 | mov [esi+12],word 5 |
812 | mov [esi+WDATA.height], 5 |
812 | xor eax, eax |
813 | xor eax, eax |
813 | mov [esi+16],eax;dword 0 |
814 | mov [esi+16],eax |
814 | mov [esi+20],eax;dword 0 |
815 | mov [esi+20],eax |
815 | mov [esi+24],eax;dword 0 |
816 | mov [esi+24],eax |
816 | mov [esi+28],eax;dword 0 |
- | |
817 | popa |
- | |
818 | - | ||
819 | pusha |
- | |
820 | mov edi,esi |
- | |
821 | shl edi,5 |
- | |
822 | add edi,window_data |
- | |
823 | mov ecx,32/4 |
- | |
824 | xor eax, eax |
- | |
825 | ; cld |
- | |
826 | rep stosd |
- | |
827 | - | ||
828 | mov eax,[0xFE04] ; set window to start from maxy+1 |
- | |
829 | add eax,2 |
- | |
830 | - | ||
831 | mov edi,esi |
- | |
832 | shl edi,5 |
817 | mov [esi+28],eax |
833 | mov [edi+4+window_data],eax |
- | |
834 | - | ||
835 | add edi,draw_data |
818 | lea edi, [esi-window_data+draw_data] |
836 | mov ecx,32/4 |
- | |
837 | xor eax, eax |
819 | mov ecx,32/4 |
838 | rep stosd |
820 | rep stosd |
Line 839... | Line 821... | ||
839 | popa |
821 | popa |
840 | 822 | ||
Line 859... | Line 841... | ||
859 | mov edi,esi |
841 | mov edi,esi |
860 | shl edi,8 |
842 | shl edi,8 |
861 | add edi,0x80000 |
843 | add edi,0x80000 |
862 | mov ecx,256/4 |
844 | mov ecx,256/4 |
863 | xor eax, eax |
845 | xor eax, eax |
864 | ; cld |
- | |
865 | rep stosd |
846 | rep stosd |
866 | popa |
847 | popa |
Line 867... | Line 848... | ||
867 | 848 | ||
868 | pusha ; name to spaces |
849 | pusha ; name to spaces |
869 | mov edi,esi |
850 | mov edi,esi |
870 | shl edi,8 |
851 | shl edi,8 |
871 | add edi,0x80000 |
852 | add edi,0x80000 |
872 | mov ecx,11 |
853 | mov ecx,11 |
873 | mov eax,' ' |
- | |
874 | ; cld |
854 | mov eax,' ' |
875 | rep stosb |
855 | rep stosb |
Line -... | Line 856... | ||
- | 856 | popa |
|
- | 857 | ||
876 | popa |
858 | |
877 | 859 | ; activate window |
|
- | 860 | movzx eax, word [0xC000 + esi*2] |
|
878 | pusha ; C000 --> C400 |
861 | cmp eax, [0x3004] |
879 | mov eax, 0xc000 |
862 | jne .dont_activate |
880 | mov esi, 0 |
863 | pushad |
881 | nlc40: |
864 | .check_next_window: |
- | 865 | dec eax |
|
882 | add eax, 2 |
866 | cmp eax, 1 |
- | 867 | jbe .nothing_to_activate |
|
883 | inc esi |
868 | lea esi, [0xc400+eax*2] |
- | 869 | movzx edi, word [esi] ; edi = process |
|
- | 870 | shl edi, 5 |
|
- | 871 | cmp [0x3000 + edi + 0xa], byte 9 ; skip dead slots |
|
884 | cmp esi, [0x3004] |
872 | je .check_next_window |
885 | jae nlc41 |
873 | add edi, window_data |
886 | movzx ecx, word [eax] |
874 | call waredraw |
887 | mov [0xC400 + ecx*2], si |
875 | mov [0xf400], byte 0 |
888 | jmp nlc40 |
876 | mov [0xf500], byte 0 |
- | 877 | .nothing_to_activate: |
|
Line 889... | Line 878... | ||
889 | nlc41: |
878 | popad |
890 | popa |
879 | .dont_activate: |
891 | 880 | ||
892 | push esi ; remove hd1 & cd & flp reservation |
881 | push esi ; remove hd1 & cd & flp reservation |
Line 920... | Line 909... | ||
920 | loop newirqfree |
909 | loop newirqfree |
921 | popa |
910 | popa |
Line 922... | Line 911... | ||
922 | 911 | ||
923 | - | ||
924 | pusha ; remove all port reservations |
912 | |
925 | mov [deleted_process],esi |
913 | pusha ; remove all port reservations |
926 | mov edx,esi |
914 | mov edx,esi |
927 | shl edx, 5 ;imul edx,0x20 |
915 | shl edx, 5 ;imul edx,0x20 |
Line 995... | Line 983... | ||
995 | ; movzx eax,word [dlx] |
983 | ; movzx eax,word [dlx] |
996 | ; movzx ebx,word [dly] |
984 | ; movzx ebx,word [dly] |
997 | ; movzx ecx,word [dlxe] |
985 | ; movzx ecx,word [dlxe] |
998 | ; movzx edx,word [dlye] |
986 | ; movzx edx,word [dlye] |
999 | call calculatescreen |
987 | call calculatescreen |
1000 | cli |
- | |
1001 | mov eax,[deleted_process] |
- | |
1002 | cmp eax,[active_process] |
- | |
1003 | jne no_activate_process |
- | |
1004 | call read_active_process_stack |
- | |
1005 | no_activate_process: |
- | |
1006 | sti |
- | |
1007 | xor eax, eax |
988 | xor eax, eax |
1008 | xor esi, esi |
989 | xor esi, esi |
1009 | call redrawscreen |
990 | call redrawscreen |
Line 1010... | Line 991... | ||
1010 | 991 | ||
1011 | mov [0xfff4],byte 0 ; no mouse background |
992 | mov [0xfff4],byte 0 ; no mouse background |
Line 1012... | Line 993... | ||
1012 | mov [0xfff5],byte 0 ; draw mouse |
993 | mov [0xfff5],byte 0 ; draw mouse |
1013 | 994 | ||
1014 | mov [application_table_status],0 |
995 | mov [application_table_status],0 |
1015 | mov esi,process_terminated |
- | |
1016 | call sys_msg_board_str |
- | |
1017 | ret |
- | |
1018 | - | ||
1019 | save_active_process_stack: |
- | |
1020 | cmp [active_proc_stack_coun],0xa400+0x400-4 |
- | |
1021 | jne @f |
- | |
1022 | mov [active_proc_stack_coun],0xa400-4 |
- | |
1023 | @@: |
- | |
1024 | push eax |
- | |
1025 | push ebx |
- | |
1026 | mov eax,[active_process] |
- | |
1027 | shl eax,5 |
- | |
1028 | add eax,0x3000 |
- | |
1029 | mov [eax-twdw+31],byte 1 |
- | |
1030 | add [active_proc_stack_coun],4 |
- | |
1031 | mov eax,[active_process] |
- | |
1032 | mov ebx,[active_proc_stack_coun] |
- | |
1033 | mov [ebx],eax |
- | |
1034 | pop ebx |
- | |
Line 1035... | Line -... | ||
1035 | pop eax |
- | |
1036 | ret |
- | |
1037 | - | ||
1038 | read_active_process_stack: |
- | |
1039 | cmp [active_proc_stack_coun],0xa400-4 |
- | |
1040 | jne @f |
- | |
1041 | mov [active_proc_stack_coun],0xa400+0x400-4 |
- | |
1042 | @@: |
- | |
1043 | push eax |
- | |
1044 | push ebx |
- | |
1045 | mov ebx,[active_proc_stack_coun] |
- | |
1046 | mov eax,[ebx] |
- | |
1047 | mov [0xff01],eax ; activate |
- | |
1048 | sub [active_proc_stack_coun],4 |
- | |
1049 | mov [active_process_flag],1 |
996 | mov esi,process_terminated |
Line 1050... | Line 997... | ||
1050 | pop ebx |
997 | call sys_msg_board_str |
1051 | pop eax |
998 | |
1052 | ret |
999 | ret |