/kernel/trunk/core/sched.inc |
---|
40,7 → 40,6 |
mov ebx,[0x3000] |
xor esi,esi ;esi - should we change task? |
cmp [0xffff], byte 1 |
je .do_not_change_task |
66,20 → 65,11 |
mov [0x3000],ebx |
mov [0x3010],edi |
jmp @f |
.do_not_change_task: |
inc esi ;set don't change task flag |
@@: |
call _rdtsc |
mov [edi+0x18],eax |
cmp [0xffff],byte 0 |
je @f |
dec byte [0xffff] |
@@: |
shl ebx, 3 |
xor eax, eax |
add ebx, tss0 |
90,14 → 80,15 |
mov dx,0x20 |
out dx,al |
test esi,esi ; skip jmp to TSS if we aren't going to switch tasks |
jnz @f |
cmp [0xffff],byte 0 |
je .switch |
dec byte [0xffff] |
jmp @f |
.switch: |
jmp pword [0xB000] |
inc [context_counter] ;noname & halyavin |
jmp pword [0xB000] |
@@: |
@@: |
pop es ds |
popad |
iret |
/kernel/trunk/core/sys32.inc |
---|
282,12 → 282,15 |
mov eax,[0x3000] |
shl eax,8 |
cmp [0x80000+eax+0xB0],byte 0 |
jnz .system_error |
jz @f |
mov esi,system_error |
call sys_msg_board_str |
@@: |
mov eax,[0x3000] |
imul eax,tss_step |
mov eax,[eax+tss_data+l.eip-tss_sceleton] |
.out_eip: |
mov [write_error_to],process_eip+43 |
call writehex |
302,21 → 305,12 |
ret |
.system_error: |
mov esi,system_error |
call sys_msg_board_str |
mov eax,[0x3000] |
shl eax,7 |
mov eax,[eax+0x298000+l.eip-tss_sceleton] |
jmp .out_eip |
; irq1 -> hid/keyboard.inc |
macro irqhh [num] |
macro irqh [num] |
{ |
forward |
p_irq#num : |
325,7 → 319,7 |
jmp irq_c |
} |
irqhh 2,3,4,5,6,7,8,9,10,11,12,14,15 |
irqh 2,3,4,5,6,7,8,9,10,11,12,14,15 |
irq_c: |
push ds es |
359,7 → 353,6 |
iret |
irqhandler: |
push edi |
/kernel/trunk/memmap.inc |
---|
193,7 → 193,7 |
; 600000 -> 6FFFFF hd cache |
; |
; 700000 -> 71ffff tcp memory (128 kb) |
; 720000 -> 75ffff interrupt stacks (256 kpl * 1024) |
; 720000 -> 75ffff free (256 kb) |
; |
; 760000 -> 76ffff !vrr driver |
; 770000 -> 777fff tcp memory ( 32 kb) |