Fixed bug with sending EOI in change_task procedure (it shouldn't send it).
git-svn-id: svn://kolibrios.org@100 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
ad6d923147
commit
d925b54ad5
@ -92,9 +92,14 @@ irq0:
|
||||
mov word [far_jump.sel], bx ; selector
|
||||
mov dword [far_jump.offs], eax ; offset
|
||||
|
||||
cmp [irq0needeoi],byte 0
|
||||
mov [irq0needeoi],byte 1
|
||||
jz .noeoi
|
||||
|
||||
mov al,0x20 ; send End Of Interrupt signal
|
||||
mov dx,0x20
|
||||
out dx,al
|
||||
.noeoi:
|
||||
|
||||
cmp [0xffff],byte 0
|
||||
je .switch
|
||||
@ -120,16 +125,23 @@ uglobal
|
||||
prev_slot dd ?
|
||||
event_sched dd ?
|
||||
endg
|
||||
iglobal
|
||||
irq0needeoi db 1
|
||||
endg
|
||||
|
||||
|
||||
align 4
|
||||
change_task:
|
||||
|
||||
pushfd
|
||||
cli
|
||||
mov [0xffff],byte 2
|
||||
|
||||
mov [irq0needeoi],byte 0
|
||||
dec dword [timer_ticks] ; because irq0 will increase it
|
||||
|
||||
int 0x20 ; irq0 handler
|
||||
popfd
|
||||
|
||||
ret
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user