Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 2117 → Rev 2118

/kernel/trunk/core/apic.inc
0,0 → 1,90
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; Copyright (C) KolibriOS team 2004-2011. All rights reserved. ;;
;; Distributed under terms of the GNU General Public License ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
align 4
pic_delay:
 
jmp pdl1
pdl1: ret
 
align 4
rerouteirqs:
 
cli
 
mov al,0x11 ; icw4, edge triggered
out 0x20,al
call pic_delay
out 0xA0,al
call pic_delay
 
mov al,0x20 ; generate 0x20 +
out 0x21,al
call pic_delay
mov al,0x28 ; generate 0x28 +
out 0xA1,al
call pic_delay
 
mov al,0x04 ; slave at irq2
out 0x21,al
call pic_delay
mov al,0x02 ; at irq9
out 0xA1,al
call pic_delay
 
mov al,0x01 ; 8086 mode
out 0x21,al
call pic_delay
out 0xA1,al
call pic_delay
 
mov al,255 ; mask all irq's
out 0xA1,al
call pic_delay
out 0x21,al
call pic_delay
 
mov ecx,0x1000
cld
picl1: call pic_delay
loop picl1
 
mov al,255 ; mask all irq's
out 0xA1,al
call pic_delay
out 0x21,al
call pic_delay
 
ret
 
 
align 4
;proc enable_irq stdcall, irq_line:dword
enable_irq: ; FIXME make fastcall
mov ebx, [esp+4] ;irq_line
mov edx, 0x21
cmp ebx, 8
jb @F
mov edx, 0xA1
sub ebx,8
@@:
in al,dx
btr eax, ebx
out dx, al
ret 4
 
 
align 4
;proc irq_eoi fastcall, irq_line:dword
irq_eoi:
cmp cl, 8
mov al, 0x20
jb @f
out 0xa0, al
@@:
out 0x20, al
ret
/kernel/trunk/core/irq.inc
143,22 → 143,7
ret
endp
 
align 4
proc enable_irq stdcall, irq_line:dword
mov ebx, [irq_line]
mov edx, 0x21
cmp ebx, 8
jb @F
mov edx, 0xA1
sub ebx,8
@@:
in al,dx
btr eax, ebx
out dx, al
ret
endp
 
 
macro irq_serv_h [num] {
forward
align 4
246,15 → 231,22
.exit:
mov [check_idle_semaphore],5
 
cmp bp, 8
mov al, 0x20
jb @f
out 0xa0, al
@@:
out 0x20, al
mov ecx, ebp
call irq_eoi
 
restore_ring3_context
add esp, 4
iret
 
align 4
irqD:
push eax
push ecx
xor eax,eax
out 0xf0,al
mov cl, 13
call irq_eoi
pop ecx
pop eax
iret
 
/kernel/trunk/core/sched.inc
27,8 → 27,8
add [next_usage_update],100
call updatecputimes
.nocounter:
mov al,0x20 ; send End Of Interrupt signal
out 0x20,al
xor ecx, ecx
call irq_eoi
btr dword[DONT_SWITCH], 0
jc .return
call find_next_task
/kernel/trunk/core/sys32.inc
120,7 → 120,7
reg_esi equ esp+0x04
reg_edi equ esp+0x00
 
Mov ds,ax,app_data ; çàãðóçèì ïðàâèëüíûå çíà÷åíèÿ
Mov ds,ax,app_data ; çàãðóçèì ïðàâèëüíûå çíà÷åíè
mov es,ax ; â ñåãìåíòíûå ðåãèñòðû
cld ; è ïðèâîäèì DF ê ñòàíäàðòó
movzx ebx,bl
238,18 → 238,6
 
 
align 4
irqD:
push eax
xor eax,eax
out 0xf0,al
mov al,0x20
out 0xa0,al
out 0x20,al
pop eax
iret
 
 
align 4
set_application_table_status:
push eax
 
/kernel/trunk/core/v86.inc
839,6 → 839,7
; mov byte [BOOT_VAR + 48Eh], 0FFh
; ret
 
align 4
v86_irq:
; push irq/pushad/jmp v86_irq
; eax = irq
898,12 → 899,8
pop ecx
.cont:
loop .scan
mov al, 20h
out 20h, al
cmp edi, 8
jb @f
out 0A0h, al
@@:
mov ecx, edi
call irq_eoi
popad
iretd
.found:
/kernel/trunk/drivers/com_mouse.asm
332,7 → 332,7
 
mov [esi+COM_MOUSE_DATA.MouseByteNumber],0
.EndMouseInterrupt:
 
mov al, 1
ret
 
;all initialized data place here
/kernel/trunk/drivers/sb16/sb16.asm
240,6 → 240,7
stdcall [callback],SB16Buffer1 ;for 64k buffer
end if
xor eax,eax
not eax
ret
 
.fill_second_half:
250,6 → 251,7
stdcall [callback],SB16Buffer3 ;for 64k buffer
end if
xor eax,eax
not eax
ret
endp
;-------------------------------------------------------------------------------
/kernel/trunk/kernel.asm
4119,64 → 4119,8
ret
end if
 
rerouteirqs:
 
cli
 
mov al,0x11 ; icw4, edge triggered
out 0x20,al
call pic_delay
out 0xA0,al
call pic_delay
 
mov al,0x20 ; generate 0x20 +
out 0x21,al
call pic_delay
mov al,0x28 ; generate 0x28 +
out 0xA1,al
call pic_delay
 
mov al,0x04 ; slave at irq2
out 0x21,al
call pic_delay
mov al,0x02 ; at irq9
out 0xA1,al
call pic_delay
 
mov al,0x01 ; 8086 mode
out 0x21,al
call pic_delay
out 0xA1,al
call pic_delay
 
mov al,255 ; mask all irq's
out 0xA1,al
call pic_delay
out 0x21,al
call pic_delay
 
mov ecx,0x1000
cld
picl1: call pic_delay
loop picl1
 
mov al,255 ; mask all irq's
out 0xA1,al
call pic_delay
out 0x21,al
call pic_delay
 
cli
 
ret
 
 
pic_delay:
 
jmp pdl1
pdl1: ret
 
 
sys_msg_board_str:
 
pushad
/kernel/trunk/kernel32.inc
221,7 → 221,7
include "core/exports.inc"
include "core/string.inc"
include "core/v86.inc" ; virtual-8086 manager
;include "core/apic.inc" ; Interrupt Controller functions
include "core/apic.inc" ; Interrupt Controller functions
include "core/irq.inc" ; irq handling functions
 
; GUI stuff