Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5011 → Rev 5012

/kernel/trunk/boot/bootcode.inc
394,7 → 394,6
 
push 0
popf
sti
 
; set up esp
movzx esp, sp
402,15 → 401,20
push 0
pop es
 
xor cx, cx
@@:
in al, 64h
test al, 2
loopnz @b
 
mov al, 0xf6 ; Сброс клавиатуры, разрешить сканирование
out 0x60, al
xor cx, cx
wait_loop: ; variant 2
; reading state of port of 8042 controller
@@:
in al, 64h
and al, 00000010b ; ready flag
; wait until 8042 controller is ready
loopnz wait_loop
test al, 1
loopnz @b
in al, 0x60
 
;;;/diamond today 5.02.2008
; set keyboard typematic rate & delay
419,16 → 423,19
xor cx, cx
@@:
in al, 64h
test al, 2
test al, 1
loopnz @b
in al, 0x60
mov al, 0
out 0x60, al
xor cx, cx
@@:
in al, 64h
test al, 2
test al, 1
loopnz @b
in al, 0x60
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
sti
; --------------- APM ---------------------
and word [es:BOOT_APM_VERSION], 0 ; ver = 0.0 (APM not found)
mov ax, 0x5300
/kernel/trunk/hid/keyboard.inc
551,9 → 551,9
ps2_set_lights:
stdcall disable_irq, 1
mov al, 0xED
call kb_write
call kb_write_wait_ack
mov al, [esp+8]
call kb_write
call kb_write_wait_ack
stdcall enable_irq, 1
ret 8
 
/kernel/trunk/kernel.asm
971,17 → 971,10
 
; SET KEYBOARD PARAMETERS
mov al, 0xf6 ; reset keyboard, scan enabled
call kb_write
call kb_write_wait_ack
test ah, ah
jnz .no_keyboard
 
; wait until 8042 is ready
xor ecx, ecx
@@:
in al, 64h
and al, 00000010b
loopnz @b
 
iglobal
align 4
ps2_keyboard_functions:
992,18 → 985,14
endg
stdcall register_keyboard, ps2_keyboard_functions, 0
; mov al, 0xED ; Keyboard LEDs - only for testing!
; call kb_write
; call kb_read
; call kb_write_wait_ack
; mov al, 111b
; call kb_write
; call kb_read
; call kb_write_wait_ack
 
mov al, 0xF3 ; set repeat rate & delay
call kb_write
; call kb_read
call kb_write_wait_ack
mov al, 0; 30 250 ;00100010b ; 24 500 ;00100100b ; 20 500
call kb_write
; call kb_read
call kb_write_wait_ack
;// mike.dld [
call set_lights
;// mike.dld ]
4490,114 → 4479,40
; ret
;-----------------------------------------------------------------------------
align 4
kb_read:
kb_write_wait_ack:
 
push ecx edx
 
mov ecx, 0x1ffff; last 0xffff, new value in view of fast CPU's
kr_loop:
in al, 0x64
test al, 1
jnz kr_ready
loop kr_loop
mov ah, 1
jmp kr_exit
kr_ready:
push ecx
mov ecx, 32
kr_delay:
loop kr_delay
pop ecx
in al, 0x60
xor ah, ah
kr_exit:
 
pop edx ecx
 
ret
;-----------------------------------------------------------------------------
align 4
kb_write:
 
push ecx edx
 
mov dl, al
; mov ecx,0x1ffff ; last 0xffff, new value in view of fast CPU's
; kw_loop1:
; in al,0x64
; test al,0x20
; jz kw_ok1
; loop kw_loop1
; mov ah,1
; jmp kw_exit
; kw_ok1:
in al, 0x60
mov ecx, 0x1ffff; last 0xffff, new value in view of fast CPU's
kw_loop:
.wait_output_ready:
in al, 0x64
test al, 2
jz kw_ok
loop kw_loop
jz @f
loop .wait_output_ready
mov ah, 1
jmp kw_exit
kw_ok:
jmp .nothing
@@:
mov al, dl
out 0x60, al
mov ecx, 0x1ffff; last 0xffff, new value in view of fast CPU's
kw_loop3:
mov ecx, 0xfffff; last 0xffff, new value in view of fast CPU's
.wait_ack:
in al, 0x64
test al, 2
jz kw_ok3
loop kw_loop3
test al, 1
jnz @f
loop .wait_ack
mov ah, 1
jmp kw_exit
kw_ok3:
mov ah, 8
kw_loop4:
mov ecx, 0x1ffff; last 0xffff, new value in view of fast CPU's
kw_loop5:
in al, 0x64
test al, 1
jnz kw_ok4
loop kw_loop5
dec ah
jnz kw_loop4
kw_ok4:
jmp .nothing
@@:
in al, 0x60
xor ah, ah
kw_exit:
 
.nothing:
pop edx ecx
 
ret
;-----------------------------------------------------------------------------
align 4
kb_cmd:
 
mov ecx, 0x1ffff; last 0xffff, new value in view of fast CPU's
c_wait:
in al, 0x64
test al, 2
jz c_send
loop c_wait
jmp c_error
c_send:
mov al, bl
out 0x64, al
mov ecx, 0x1ffff; last 0xffff, new value in view of fast CPU's
c_accept:
in al, 0x64
test al, 2
jz c_ok
loop c_accept
c_error:
mov ah, 1
jmp c_exit
c_ok:
xor ah, ah
c_exit:
ret
 
 
setmouse: ; set mousepicture -pointer
; ps2 mouse enable