Rev 418 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 418 | Rev 419 | ||
---|---|---|---|
Line 204... | Line 204... | ||
204 | and edi, not 4095 |
204 | and edi, not 4095 |
205 | sub ecx, edi |
205 | sub ecx, edi |
206 | jna @F |
206 | jna @F |
Line 207... | Line 207... | ||
207 | 207 | ||
208 | xor eax, eax |
208 | xor eax, eax |
209 | add edi, new_app_base |
209 | ; add edi, new_app_base |
210 | cld |
210 | cld |
211 | rep stosb |
211 | rep stosb |
212 | @@: |
212 | @@: |
Line 731... | Line 731... | ||
731 | mov ecx, 0x8000 |
731 | mov ecx, 0x8000 |
732 | @@: |
732 | @@: |
733 | mov eax, [slot] |
733 | mov eax, [slot] |
734 | shl eax,8 |
734 | shl eax,8 |
735 | mov ebx, [offset] |
735 | mov ebx, [offset] |
736 | add ebx, new_app_base |
736 | ; add ebx, new_app_base |
737 | push ecx |
737 | push ecx |
738 | stdcall map_memEx, [proc_mem_map],\ |
738 | stdcall map_memEx, [proc_mem_map],\ |
739 | [SLOT_BASE+eax+0xB8],\ |
739 | [SLOT_BASE+eax+0xB8],\ |
740 | ebx, ecx |
740 | ebx, ecx |
741 | pop ecx |
741 | pop ecx |
Line 797... | Line 797... | ||
797 | mov ecx, 0x8000 |
797 | mov ecx, 0x8000 |
798 | @@: |
798 | @@: |
799 | mov eax, [slot] |
799 | mov eax, [slot] |
800 | shl eax,8 |
800 | shl eax,8 |
801 | mov ebx, [offset] |
801 | mov ebx, [offset] |
802 | add ebx, new_app_base |
802 | ; add ebx, new_app_base |
803 | push ecx |
803 | push ecx |
804 | stdcall map_memEx, [proc_mem_map],\ |
804 | stdcall map_memEx, [proc_mem_map],\ |
805 | [SLOT_BASE+eax+0xB8],\ |
805 | [SLOT_BASE+eax+0xB8],\ |
806 | ebx, ecx |
806 | ebx, ecx |
807 | pop ecx |
807 | pop ecx |
Line 877... | Line 877... | ||
877 | xor eax, eax |
877 | xor eax, eax |
878 | cld |
878 | cld |
879 | rep stosd ;clean extended information about new thread |
879 | rep stosd ;clean extended information about new thread |
880 | mov esi,ebx |
880 | mov esi,ebx |
881 | mov edi,edx |
881 | mov edi,edx |
- | 882 | mov byte [edi], '@' |
|
- | 883 | inc edi |
|
882 | mov ecx,11 |
884 | mov ecx,11 |
883 | rep movsb ;copy process name |
885 | rep movsb ;copy process name |
Line 884... | Line 886... | ||
884 | 886 | ||
885 | mov eax,[ebx+APPDATA.heap_base] |
887 | mov eax,[ebx+APPDATA.heap_base] |
Line 989... | Line 991... | ||
989 | jc @f |
991 | jc @f |
Line 990... | Line 992... | ||
990 | 992 | ||
991 | cmp eax, [SLOT_BASE+APPDATA.mem_size+ebx*8] |
993 | cmp eax, [SLOT_BASE+APPDATA.mem_size+ebx*8] |
Line 992... | Line 994... | ||
992 | ja @f |
994 | ja @f |
993 | 995 | ||
994 | add edx, new_app_base |
996 | ; add edx, new_app_base |
995 | stdcall k_strncpy, edx, [cmd_line], 256 |
997 | stdcall k_strncpy, edx, [cmd_line], 256 |
996 | @@: |
998 | @@: |
997 | mov edx,[params] |
999 | mov edx,[params] |
Line 1001... | Line 1003... | ||
1001 | mov eax, edx |
1003 | mov eax, edx |
1002 | add eax, 1024 |
1004 | add eax, 1024 |
1003 | jc @f |
1005 | jc @f |
1004 | cmp eax, [SLOT_BASE+APPDATA.mem_size+ebx*8] |
1006 | cmp eax, [SLOT_BASE+APPDATA.mem_size+ebx*8] |
1005 | ja @f |
1007 | ja @f |
1006 | add edx, new_app_base |
1008 | ; add edx, new_app_base |
1007 | stdcall k_strncpy, edx, [app_path], 1024 |
1009 | stdcall k_strncpy, edx, [app_path], 1024 |
1008 | @@: |
1010 | @@: |
1009 | mov ebx,[slot] |
1011 | mov ebx,[slot] |
1010 | mov eax,ebx |
1012 | mov eax,ebx |
1011 | shl ebx,5 |
1013 | shl ebx,5 |
Line 1054... | Line 1056... | ||
1054 | mov esi,[params] |
1056 | mov esi,[params] |
1055 | mov eax, [esi+0x08] ;app_eip |
1057 | mov eax, [esi+0x08] ;app_eip |
1056 | mov [edi+TSS._eip],eax ;set eip in TSS |
1058 | mov [edi+TSS._eip],eax ;set eip in TSS |
1057 | mov eax, [esi+0x0C] ;app_esp |
1059 | mov eax, [esi+0x0C] ;app_esp |
1058 | mov [edi+TSS._esp],eax ;set stack in TSS |
1060 | mov [edi+TSS._esp],eax ;set stack in TSS |
1059 | mov [edi+TSS._eflags],dword 0x1202 |
1061 | mov [edi+TSS._eflags],dword 0x3202 |
Line 1060... | Line 1062... | ||
1060 | 1062 | ||
1061 | mov [edi+TSS._cs],app_code ;selector of code segment |
1063 | mov [edi+TSS._cs],app_code ;selector of code segment |
1062 | mov [edi+TSS._ss],app_data |
1064 | mov [edi+TSS._ss],app_data |
1063 | mov [edi+TSS._ds],app_data |
1065 | mov [edi+TSS._ds],app_data |