141,6 → 141,7 |
@@: |
cmp edi, ecx |
jae .bigfilename |
|
lodsb |
stosb |
test al, al |
172,7 → 173,7 |
test eax, eax |
jz .err_hdr |
|
DEBUGF 1,"%s",new_process_loading |
; DEBUGF 1,"%s",new_process_loading |
|
lea ebx, [application_table_status] |
call wait_mutex |
226,8 → 227,8 |
mov [ebx+APPDATA.mem_size],ecx |
|
mov edi, [file_size] |
; add edi, 4095 |
; and edi, not 4095 |
add edi, 4095 |
and edi, not 4095 |
sub ecx, edi |
jna @F |
|
261,6 → 262,7 |
pop ebx |
mov eax, -ERROR_FILE_NOT_FOUND |
ret |
|
.failed: |
mov eax, [save_cr3] |
call set_cr3 |
279,6 → 281,7 |
ret |
endp |
|
|
align 4 |
proc pe_app_param stdcall path:dword, raw:dword, ex_pg_dir:dword, ex_stack:dword |
|
448,7 → 451,6 |
popad |
iretd |
|
|
align 4 |
proc get_new_process_place |
;input: |
674,9 → 676,10 |
add esp, 16 |
ret |
|
|
|
align 4 |
set_cr3: |
|
mov ebx, [current_slot] |
mov [ebx+APPDATA.dir_table], eax |
mov cr3, eax |
1045,9 → 1048,8 |
mov [app_eip], ebx |
mov [app_esp], ecx |
|
;mov esi,new_process_loading |
;call sys_msg_board_str |
DEBUGF 1,"%s",new_process_loading |
;DEBUGF 1,"%s",new_process_loading |
|
.wait_lock: |
cmp [application_table_status],0 |
je .get_lock |
1101,9 → 1103,7 |
stdcall set_app_params ,[slot],eax,dword 0,\ |
dword 0,dword 0 |
|
;mov esi,new_process_running |
;call sys_msg_board_str ;output information about succefull startup |
DEBUGF 1,"%s",new_process_running |
; DEBUGF 1,"%s",new_process_running |
|
mov [application_table_status],0 ;unlock application_table_status mutex |
mov eax,[process_number] ;set result |