Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 995 → Rev 996

/kernel/branches/kolibri_pe/core/dll.c
454,10 → 454,10
thr_stack->ecx = 0;
thr_stack->eax = 0;
thr_stack->eip = entry;
thr_stack->cs = 0x1b;
thr_stack->cs = sel_app_code;
thr_stack->eflags = EFL_IOPL3 | EFL_IF;
thr_stack->pe_sp = 0x7FFFF000 + ((u32_t)ex_stack & 0xFFF);
thr_stack->pe_ss = 0x23;
thr_stack->pe_ss = sel_app_data;
 
};
 
585,13 → 585,12
 
DBG("import from %s\n",libname);
 
exp_dll = find_dll(&core_dll.link, libname);
if(exp_dll == NULL)
{
exp_dll = find_dll(&current_slot->dll_list, libname);
if(exp_dll != NULL)
if(exp_dll == NULL)
{
DBG("find %s\n", exp_dll->img_name);
}
else
{
int len = strlen(libname)+1;
 
memcpy(path, "/sys/lib/",9);
604,6 → 603,8
return false;
};
}
};
DBG("find %s\n", exp_dll->img_name);
 
exp = exp_dll->img_exp;
 
/kernel/branches/kolibri_pe/core/init.asm
218,26 → 218,9
 
; SAVE & CLEAR 0-0xffff
 
cld
xor esi, esi
mov edi,BOOT_VAR
mov ecx,0x10000 / 4
rep movsd
 
xor edi, edi
xor eax, eax
mov ecx,0x10000 / 4
rep stosd
 
mov edi, 0x40000
mov ecx, (0x90000-0x40000)/4
rep stosd
 
mov dword [_sys_pdbr], eax
mov dword [_sys_pdbr+4], eax
 
xchg bx, bx
 
movzx eax,word [BOOT_VAR+0x9008] ; screen mode
mov [scr_mode],eax
 
256,8 → 239,6
 
mov [_current_thread], eax
 
xchg bx, bx
 
mov ebx, [eax+THR.pdir]
mov ecx, cr3
cmp ebx, ecx
/kernel/branches/kolibri_pe/core/sys32.inc
592,26 → 592,25
pusha ; save window coordinates for window restoring
cld
shl esi,5
add esi,window_data
mov eax,[esi+WDATA.box.left]
mov eax,[window_data+esi+WDATA.box.left]
mov [dlx],eax
add eax,[esi+WDATA.box.width]
add eax,[window_data+esi+WDATA.box.width]
mov [dlxe],eax
mov eax,[esi+WDATA.box.top]
mov eax,[window_data+esi+WDATA.box.top]
mov [dly],eax
add eax,[esi+WDATA.box.height]
add eax,[window_data+esi+WDATA.box.height]
mov [dlye],eax
 
xor eax, eax
mov [esi+WDATA.box.left],eax
mov [esi+WDATA.box.width],eax
mov [esi+WDATA.box.top],eax
mov [esi+WDATA.box.height],eax
mov [esi+WDATA.cl_workarea],eax
mov [esi+WDATA.cl_titlebar],eax
mov [esi+WDATA.cl_frames],eax
mov dword [esi+WDATA.reserved],eax ; clear all flags: wstate, redraw, wdrawn
lea edi, [esi-window_data+draw_data]
mov [window_data+esi+WDATA.box.left],eax
mov [window_data+esi+WDATA.box.width],eax
mov [window_data+esi+WDATA.box.top],eax
mov [window_data+esi+WDATA.box.height],eax
mov [window_data+esi+WDATA.cl_workarea],eax
mov [window_data+esi+WDATA.cl_titlebar],eax
mov [window_data+esi+WDATA.cl_frames],eax
mov dword [window_data+esi+WDATA.reserved],eax ; clear all flags: wstate, redraw, wdrawn
lea edi, [esi+draw_data]
mov ecx,32/4
rep stosd
popa
812,9 → 811,6
xor esi, esi
call redrawscreen
 
mov [mouse_background], 0 ; no mouse background
mov [dont_draw_mouse], 0 ; draw mouse
 
mov [application_table_status],0
;mov esi,process_terminated
;call sys_msg_board_str
/kernel/branches/kolibri_pe/core/taskman.inc
432,7 → 432,7
mov [ecx*8+SLOT_BASE+APPDATA.saved_esp], ebx
mov [CURRENT_TASK+ecx+TASKDATA.state], 0
 
DEBUGF 1,"%s",new_process_running
; DEBUGF 1,"%s",new_process_running
.err:
mov eax,[process_number] ;set result
mov [application_table_status], 0 ;unlock application_table_status mutex
446,7 → 446,6
 
align 4
_pe_restart:
xchg bx, bx
add esp, 12
popad
iretd
/kernel/branches/kolibri_pe/core/v86.inc
94,9 → 94,9
pop eax
; first page - BIOS data (shared between all machines!)
; physical address = 0x1f0000
; linear address = BOOT_VAR = OS_BASE + 0x1f0000
mov dword [eax], (BOOT_VAR - OS_BASE) or 111b
mov dword [eax+800h], BOOT_VAR
; linear address = 0
mov dword [eax], 111b
mov dword [eax+800h], OS_BASE
; page before 0xA0000 - Extended BIOS Data Area (shared between all machines!)
; physical address = 0x9C000
; linear address = 0x8009C000