forked from KolibriOS/kolibrios
Keyboard indicators utility keybi added
git-svn-id: svn://kolibrios.org@1918 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
22602ae43d
commit
dcd377f304
162
programs/system/keybi/keybi.asm
Normal file
162
programs/system/keybi/keybi.asm
Normal file
@ -0,0 +1,162 @@
|
||||
|
||||
; Keyboard indicators v0.1
|
||||
; by Albom
|
||||
|
||||
use32
|
||||
org 0
|
||||
db 'MENUET01'
|
||||
dd 1
|
||||
dd _start
|
||||
dd _end
|
||||
dd _memory
|
||||
dd _stack
|
||||
dd _param
|
||||
dd 0
|
||||
|
||||
|
||||
_start:
|
||||
|
||||
call _key_set
|
||||
call _wnd_draw
|
||||
|
||||
_event_wait:
|
||||
|
||||
mov eax, 10
|
||||
int 0x40
|
||||
|
||||
cmp eax, 1
|
||||
jne @f
|
||||
call _wnd_draw
|
||||
|
||||
@@:
|
||||
cmp eax, 2
|
||||
jne @f
|
||||
call _key_check
|
||||
|
||||
@@:
|
||||
cmp eax, 3
|
||||
jne @f
|
||||
call _btn_check
|
||||
|
||||
@@:
|
||||
|
||||
|
||||
jmp _event_wait
|
||||
|
||||
_key_set:
|
||||
mov eax, 66
|
||||
mov edx, 0
|
||||
mov ebx, 4
|
||||
mov cl, 69
|
||||
int 0x40
|
||||
|
||||
mov eax, 66
|
||||
mov edx, 0
|
||||
mov ebx, 4
|
||||
mov cl, 58
|
||||
int 0x40
|
||||
|
||||
mov eax, 66
|
||||
mov edx, 0
|
||||
mov ebx, 4
|
||||
mov cl, 70
|
||||
int 0x40
|
||||
|
||||
ret
|
||||
|
||||
|
||||
_wnd_draw:
|
||||
pusha
|
||||
|
||||
mov eax, 12
|
||||
mov ebx, 1
|
||||
int 0x40
|
||||
|
||||
xor eax, eax
|
||||
mov ebx, 10*65536+100
|
||||
mov ecx, 10*65536+30
|
||||
mov edx, 0x34ffffff
|
||||
mov edi, _ind
|
||||
int 0x40
|
||||
|
||||
call _indicators_check
|
||||
|
||||
mov eax, 12
|
||||
mov ebx, 2
|
||||
int 0x40
|
||||
|
||||
popa
|
||||
ret
|
||||
|
||||
_key_check:
|
||||
pusha
|
||||
mov eax, 2
|
||||
int 0x40
|
||||
|
||||
call _indicators_check
|
||||
|
||||
popa
|
||||
ret
|
||||
|
||||
_btn_check:
|
||||
pusha
|
||||
mov eax, 17
|
||||
int 0x40
|
||||
cmp ah, 1
|
||||
jne @f
|
||||
mov eax, -1
|
||||
int 0x40
|
||||
@@:
|
||||
popa
|
||||
ret
|
||||
|
||||
|
||||
_indicators_check:
|
||||
pusha
|
||||
mov eax, 66
|
||||
mov ebx, 3
|
||||
int 40h
|
||||
|
||||
test_ins:
|
||||
test eax, 0x80
|
||||
jz @f
|
||||
mov [_ind], '*'
|
||||
jmp test_caps
|
||||
@@:
|
||||
mov [_ind], 'o'
|
||||
|
||||
test_caps:
|
||||
test eax, 0x40
|
||||
jz @f
|
||||
mov [_ind+1], '*'
|
||||
jmp test_scroll
|
||||
@@:
|
||||
mov [_ind+1], 'o'
|
||||
|
||||
test_scroll:
|
||||
test eax, 0x100
|
||||
jz @f
|
||||
mov [_ind+2], '*'
|
||||
jmp test_ok
|
||||
@@:
|
||||
mov [_ind+2], 'o'
|
||||
|
||||
test_ok:
|
||||
mov eax, 71
|
||||
mov ebx, 1
|
||||
mov ecx, _ind
|
||||
int 0x40
|
||||
popa
|
||||
ret
|
||||
|
||||
_ind db 'ooo', 0
|
||||
|
||||
_param:
|
||||
rb 256
|
||||
|
||||
_end:
|
||||
|
||||
align 32
|
||||
rb 2048
|
||||
_stack:
|
||||
_memory:
|
Loading…
Reference in New Issue
Block a user