Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 236 → Rev 237

/kernel/trunk/kernel.asm
23,7 → 23,6
 
;window_data equ 0x0000
;tss_data equ 0xD20000
;tss_step equ (128+2048) ; tss & i/o - 16384 ports, * 256=557056
tss_step equ (128+8192) ; tss & i/o - 65535 ports, * 256=557056*4
;draw_data equ 0xC00000
;sysint_stack_data equ 0xC03000
619,27 → 618,26
mov [0x3020+TASKDATA.pid], 1 ; process id number
mov [0x3020+TASKDATA.mem_start], 0 ; process base address
 
; set default flags & stacks
mov [l.eflags],dword 0x11202 ; sti and resume
mov [l.ss0], os_data
; osloop - TSS
mov eax,cr3
mov [l.cr3],eax
mov [l.eip],osloop
mov [l.esp],sysint_stack_data + 4096*2 ; uses slot 1 stack
mov [l.cs],os_code
mov [l.ss],os_data
mov [l.ds],os_data
mov [l.es],os_data
mov [l.fs],os_data
mov [l.gs],os_data
; move tss to tss_data+tss_step
mov esi,tss_sceleton
mov edi,tss_data+tss_step
mov ecx,120/4
mov ecx, (tss_step)/4
xor eax, eax
cld
rep movsd
rep stosd
 
mov edi,tss_data+tss_step
mov [edi+TSS._ss0], os_data
mov eax,cr3
mov [edi+TSS._cr3],eax
mov [edi+TSS._eip],osloop
mov [edi+TSS._eflags],dword 0x11202 ; sti and resume
mov [edi+TSS._esp],sysint_stack_data + 4096*2 ; uses slot 1 stack
mov [edi+TSS._cs],os_code
mov [edi+TSS._ss],os_data
mov [edi+TSS._ds],os_data
mov [edi+TSS._es],os_data
mov [edi+TSS._fs],os_data
mov [edi+TSS._gs],os_data
 
mov ax,tss0
ltr ax
 
699,21 → 697,13
cli
cmp byte [0x2f0000+0x9030],1
jne no_load_vrr_m
mov ebp,vrr_m
lea esi,[ebp+6] ; skip '/rd/1/'
xor ebx,ebx ; no parameters
xor edx,edx ; no flags
call fs_RamdiskExecute.flags
 
stdcall fs_exec_EX, vrr_m, dword 0, dword 0
cmp eax,2 ; if vrr_m app found (PID=2)
je first_app_found
 
no_load_vrr_m:
mov ebp,firstapp
lea esi,[ebp+6]
xor ebx,ebx ; no parameters
xor edx,edx ; no flags
call fs_RamdiskExecute.flags
 
stdcall fs_exec_EX, firstapp, dword 0, dword 0
cmp eax,2 ; continue if a process has been loaded
je first_app_found
mov eax, 0xDEADBEEF ; otherwise halt
799,7 → 789,6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
align 32
osloop:
 
call [draw_pointer]
call checkbuttons
call checkwindows