Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 419 → Rev 420

/kernel/branches/flat_kernel/core/taskman.inc
1011,6 → 1011,8
mov ebx,[slot]
mov eax,ebx
shl ebx,5
lea ecx,[draw_data+ebx] ;ecx - pointer to draw data
 
; set window state to 'normal' (non-minimized/maximized/rolled-up) state
mov [ebx+window_data+WDATA.fl_wstate], WSTATE_NORMAL
mov [ebx+window_data+WDATA.fl_redraw], 1
1023,8 → 1025,6
mov eax,[process_number]
mov [ebx+4],eax ;set PID
 
mov ecx,ebx
add ecx,(draw_data-CURRENT_TASK) ;ecx - pointer to draw data
;set draw data to full screen
 
mov [ecx+0],dword 0
1058,7 → 1058,7
mov [edi+TSS._eip],eax ;set eip in TSS
mov eax, [esi+0x0C] ;app_esp
mov [edi+TSS._esp],eax ;set stack in TSS
mov [edi+TSS._eflags],dword 0x3202
mov [edi+TSS._eflags],dword 0x1202
 
mov [edi+TSS._cs],app_code ;selector of code segment
mov [edi+TSS._ss],app_data
1067,11 → 1067,41
mov [edi+TSS._fs],app_data
mov [edi+TSS._gs],graph_data ;selector of graphic segment
mov [edi+TSS._io],word 128
mov [edi+TSS._ss0], os_data
mov [edi+TSS._ss0], os_stack
mov ebx, [pl0_stack]
add ebx, RING0_STACK_SIZE
mov [edi+TSS._esp0],ebx
 
xor eax, eax
mov ebx, [pl0_stack]
lea ecx, [ebx+REG_EIP]
 
mov [ebx+REG_RET], dword irq0.return
mov [ebx+REG_EDI], eax
mov [ebx+REG_ESI], eax
mov [ebx+REG_EBP], eax
mov [ebx+REG_ESP], ecx ;ebx+REG_EIP
mov [ebx+REG_EBX], eax
mov [ebx+REG_EDX], eax
mov [ebx+REG_ECX], eax
mov [ebx+REG_EAX], eax
 
mov [ebx+REG_EFL_2], dword 0x1002
 
mov eax, [esi+0x08] ;app_eip
mov [ebx+REG_EIP], eax ;app_entry
mov [ebx+REG_CS], dword app_code
mov [ebx+REG_EFLAGS], dword 0x1202
 
mov eax, [esi+0x0C] ;app_esp
mov [ebx+REG_APP_ESP], eax ;app_stack
mov [ebx+REG_SS], dword app_data
 
lea ecx, [ebx+REG_RET]
mov ebx, [slot]
shl ebx, 8
mov [ebx+SLOT_BASE+APPDATA.saved_esp], ecx
 
mov ecx, edi ;ecx - address of application TSS
mov ebx,[slot]
shl ebx,3
1109,6 → 1139,37
mov esi,new_process_running
call sys_msg_board_str ;output information about succefull startup
ret
 
if 0
; set stack frame
 
xor eax, eax
lea ecx, [ebx+REG_EIP]
mov ebx, [pl0_stack]
mov esi,[params]
 
mov [ebx+REG_RET], dword irq0.return
mov [ebx+REG_EDI], eax
mov [ebx+REG_ESI], eax
mov [ebx+REG_EBP], eax
mov [ebx+REG_ESP], ecx ;ebx+REG_EIP
mov [ebx+REG_EBX], eax
mov [ebx+REG_EDX], eax
mov [ebx+REG_ECX], eax
mov [ebx+REG_EAX], eax
 
mov [ebx+REG_EFL_2], dword 0x1002
 
mov eax, [esi+0x08] ;app_eip
mov [ebx+REG_EIP], eax ;app_entry
mov [ebx+REG_CS], dword app_code
mov [ebx+REG_EFLAGS], dword 0x1202
 
mov eax, [esi+0x0C] ;app_esp
mov [ebx+REG_ESP], eax ;app_stack
mov [ebx+REG_SS], dword app_data
end if
 
endp
 
include "debug.inc"