Rev 345 | Rev 363 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 345 | Rev 357 | ||
---|---|---|---|
Line 29... | Line 29... | ||
29 | cmp edi,8*(max_processes+5) |
29 | cmp edi,8*(max_processes+5) |
30 | jbe setgdtl2 |
30 | jbe setgdtl2 |
Line 31... | Line 31... | ||
31 | 31 | ||
Line 32... | Line -... | ||
32 | ret |
- | |
33 | 32 | ret |
|
Line 34... | Line 33... | ||
34 | 33 | ||
35 | build_interrupt_table: |
34 | build_interrupt_table: |
36 | 35 | ||
Line 621... | Line 620... | ||
621 | mov eax, [.slot] |
620 | mov eax, [.slot] |
622 | shl eax, 8 |
621 | shl eax, 8 |
623 | mov eax,[PROC_BASE+eax+APPDATA.dir_table] |
622 | mov eax,[PROC_BASE+eax+APPDATA.dir_table] |
624 | stdcall destroy_app_space, eax |
623 | stdcall destroy_app_space, eax |
Line 625... | Line 624... | ||
625 | 624 | ||
626 | ;; mov esi, [.slot] |
- | |
627 | pop esi ;restore stack |
625 | mov esi, [.slot] |
628 | cmp [fpu_owner],esi ; if user fpu last -> fpu user = 1 |
626 | cmp [fpu_owner],esi ; if user fpu last -> fpu user = 1 |
Line 629... | Line 627... | ||
629 | jne fpu_ok_1 |
627 | jne @F |
630 | 628 | ||
631 | mov [fpu_owner],1 |
629 | mov [fpu_owner],1 |
632 | mov eax, [256+PROC_BASE+APPDATA.fpu_state] |
630 | mov eax, [256+PROC_BASE+APPDATA.fpu_state] |
633 | bt [cpu_caps], CAPS_SSE |
631 | bt [cpu_caps], CAPS_SSE |
634 | clts |
632 | clts |
635 | jnc .no_SSE |
633 | jnc .no_SSE |
636 | fxrstor [eax] |
634 | fxrstor [eax] |
637 | jmp fpu_ok_1 |
635 | jmp @F |
638 | .no_SSE: |
636 | .no_SSE: |
639 | fnclex |
637 | fnclex |
Line 640... | Line 638... | ||
640 | frstor [eax] |
638 | frstor [eax] |
641 | fpu_ok_1: |
639 | @@: |
Line 745... | Line 743... | ||
745 | pop ecx |
743 | pop ecx |
746 | pop ecx |
744 | pop ecx |
747 | .nodebug: |
745 | .nodebug: |
748 | popad |
746 | popad |
Line 749... | Line 747... | ||
749 | 747 | ||
750 | pusha ; at 0x80000+ |
748 | mov ebx, [.slot] |
- | 749 | shl ebx, 8 |
|
- | 750 | mov ebx,[PROC_BASE+ebx+APPDATA.pl0_stack] |
|
- | 751 | ||
- | 752 | stdcall kernel_free, ebx |
|
- | 753 | ||
751 | mov edi,esi |
754 | mov edi, [.slot] |
752 | shl edi,8 |
755 | shl edi,8 |
- | 756 | add edi,0x80000 |
|
- | 757 | mov eax, 0x20202020 |
|
- | 758 | stosd |
|
- | 759 | stosd |
|
753 | add edi,0x80000 |
760 | stosd |
754 | mov ecx,256/4 |
761 | mov ecx,244/4 |
755 | xor eax, eax |
762 | xor eax, eax |
756 | rep stosd |
- | |
757 | popa |
- | |
758 | - | ||
759 | pusha ; name to spaces |
- | |
760 | mov edi,esi |
- | |
761 | shl edi,8 |
- | |
762 | add edi,0x80000+APPDATA.app_name |
- | |
763 | mov ecx,11 |
- | |
764 | mov eax,' ' |
- | |
765 | rep stosb |
- | |
766 | popa |
- | |
Line 767... | Line 763... | ||
767 | 763 | rep stosd |
|
768 | 764 | ||
769 | ; activate window |
765 | ; activate window |
770 | movzx eax, word [0xC000 + esi*2] |
766 | movzx eax, word [0xC000 + esi*2] |
Line 822... | Line 818... | ||
822 | mov [edi-4],dword 0 |
818 | mov [edi-4],dword 0 |
823 | nofreeirq: |
819 | nofreeirq: |
824 | loop newirqfree |
820 | loop newirqfree |
825 | popa |
821 | popa |
Line 826... | Line -... | ||
826 | - | ||
827 | 822 | ||
828 | pusha ; remove all port reservations |
823 | pusha ; remove all port reservations |
829 | mov edx,esi |
824 | mov edx,esi |
830 | shl edx, 5 |
825 | shl edx, 5 |
831 | add edx,0x3000 |
826 | add edx,0x3000 |
Line 908... | Line 903... | ||
908 | mov [0xfff5],byte 0 ; draw mouse |
903 | mov [0xfff5],byte 0 ; draw mouse |
Line 909... | Line 904... | ||
909 | 904 | ||
910 | mov [application_table_status],0 |
905 | mov [application_table_status],0 |
911 | mov esi,process_terminated |
906 | mov esi,process_terminated |
- | 907 | call sys_msg_board_str |
|
912 | call sys_msg_board_str |
908 | add esp, 4 |
913 | ret |
909 | ret |
Line 914... | Line 910... | ||
914 | restore .slot |
910 | restore .slot |
915 | 911 |