MyKey.asm: fixed version from Asper

git-svn-id: svn://kolibrios.org@1900 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Yogev Ezra 2011-03-05 18:32:56 +00:00
parent 812af66c89
commit 9e1fc1c321

View File

@ -68,8 +68,7 @@ STARTAPP:
test eax, eax test eax, eax
jnz close_app jnz close_app
; Get memory for editboxes text mcall 68, 12, MAX_HOTKEYS_NUM*PATH_MAX_CHARS ; Get memory for editboxes text
mcall 68, 12, MAX_HOTKEYS_NUM*PATH_MAX_CHARS
mov dword [buf_cmd_line], eax mov dword [buf_cmd_line], eax
mov dword [edit1.text], eax mov dword [edit1.text], eax
mcall 68, 12, MAX_HOTKEYS_NUM*PATH_MAX_CHARS mcall 68, 12, MAX_HOTKEYS_NUM*PATH_MAX_CHARS
@ -133,7 +132,9 @@ key:
push eax push eax
mcall 66, 3 mcall 66, 3
mov dword [modifiers], eax ;mov edx, eax
;and edx, 0x00000FF;F
mov dword [modifiers], eax;edx
pop eax pop eax
test word [edit1.flags], 10b test word [edit1.flags], 10b
@ -171,7 +172,8 @@ key:
dec cl dec cl
mov bl, cl mov bl, cl
and ebx, 0xFF and ebx, 0xFF
shl ebx, 2 shl ebx, 2;5
; mov esi, ebx
add ebx, dword Hotkeys.codes add ebx, dword Hotkeys.codes
mov edx, dword [ebx] mov edx, dword [ebx]
@ -347,11 +349,6 @@ Load_HotkeyList:
call ReadIni call ReadIni
mov al, byte [butt] mov al, byte [butt]
mov ah, byte [hotkeys_num]
cmp al, ah
jle @f
mov al, ah
@@:
and eax, 0xFF and eax, 0xFF
sub al, FIRST_ITEM_BUTTON_ID sub al, FIRST_ITEM_BUTTON_ID
mov cl, byte PATH_MAX_CHARS mov cl, byte PATH_MAX_CHARS
@ -361,6 +358,7 @@ Load_HotkeyList:
add ebx, dword [buf_cmd_params] add ebx, dword [buf_cmd_params]
;mov [butt], FIRST_ITEM_BUTTON_ID
mov esi, eax mov esi, eax
call strlen call strlen
mov dword [edit1.size], ecx mov dword [edit1.size], ecx
@ -543,6 +541,7 @@ it_test_key_modifiers:
push eax push eax
mcall 66, 3 ;get control keys state mcall 66, 3 ;get control keys state
mov edx, eax mov edx, eax
;and edx, 0x00000FFF
.lshift: .lshift:
test al, 1 ; LShift ? test al, 1 ; LShift ?
jz .rshift jz .rshift
@ -595,6 +594,7 @@ it_set_keycode_name:
mov esi, aPlus mov esi, aPlus
mov ecx, 3 mov ecx, 3
call strncat call strncat
;stdcall outtextxy, 10, 100, ctrl_key_names, 6, 0x00FF0000
.rshift: .rshift:
test al, 2 ; RShift ? test al, 2 ; RShift ?
jz .lctrl jz .lctrl
@ -605,6 +605,7 @@ it_set_keycode_name:
mov esi, aPlus mov esi, aPlus
mov ecx, 3 mov ecx, 3
call strncat call strncat
;stdcall outtextxy, 184, 100, ctrl_key_names+29, 6, 0x00FF0000
.lctrl: .lctrl:
test al, 4 ; LCtrl ? test al, 4 ; LCtrl ?
jz .rctrl jz .rctrl
@ -615,6 +616,7 @@ it_set_keycode_name:
mov esi, aPlus mov esi, aPlus
mov ecx, 3 mov ecx, 3
call strncat call strncat
;stdcall outtextxy, 52, 100, ctrl_key_names+7, 5, 0x00FF0000
.rctrl: .rctrl:
test al, 8 ; RCtrl ? test al, 8 ; RCtrl ?
jz .lalt jz .lalt
@ -625,6 +627,7 @@ it_set_keycode_name:
mov esi, aPlus mov esi, aPlus
mov ecx, 3 mov ecx, 3
call strncat call strncat
;stdcall outtextxy, 148, 100, ctrl_key_names+23, 5, 0x00FF0000
.lalt: .lalt:
test al, 0x10 ; LAlt ? test al, 0x10 ; LAlt ?
jz .ralt jz .ralt
@ -635,6 +638,7 @@ it_set_keycode_name:
mov esi, aPlus mov esi, aPlus
mov ecx, 3 mov ecx, 3
call strncat call strncat
;stdcall outtextxy, 88, 100, ctrl_key_names+13, 4, 0x00FF0000
.ralt: .ralt:
test al, 0x20 ; RAlt ? test al, 0x20 ; RAlt ?
jz @f jz @f
@ -645,6 +649,7 @@ it_set_keycode_name:
mov esi, aPlus mov esi, aPlus
mov ecx, 3 mov ecx, 3
call strncat call strncat
;stdcall outtextxy, 118, 100, ctrl_key_names+18, 4, 0x00FF0000
@@: @@:
mov esi, it_ascii_keymap mov esi, it_ascii_keymap
and edx, 0xFF and edx, 0xFF
@ -652,6 +657,12 @@ it_set_keycode_name:
mov ecx, 1 mov ecx, 1
call strncat call strncat
if 1;DEBUG
mov esi, edi;Hotkeys.code_names
call SysMsgBoardStr
newline
end if
popa popa
ret ret
@ -895,7 +906,7 @@ RunProgram:
; Application Title ; Application Title
labelt db 'MyKey v.0.2' labelt db 'MyKey v.0.2'
mykey_window dd 0 ; Slot number of MyKey main thread mykey_window dd 0 ; Slot number of MyKey
;########### Input Thread data start ############ ;########### Input Thread data start ############
@ -921,6 +932,7 @@ SaveKeyText db 'Save',0
hotkeys_num db 0;15 hotkeys_num db 0;15
;keyboard_mode db 0 ; Scan or ASCII keys to send ? 0 - ASCII , 1 - Scan
butt db FIRST_ITEM_BUTTON_ID ; Pressed button ID butt db FIRST_ITEM_BUTTON_ID ; Pressed button ID
modifiers dd 0 modifiers dd 0
@ -928,8 +940,8 @@ modifiers dd 0
edit1 edit_box 350, 220, 30, 0xffffff, 0xAA80, 0x0000ff, 0x0, 0x0, PATH_MAX_CHARS+1, buf_cmd_line, 0, 0 edit1 edit_box 350, 220, 30, 0xffffff, 0xAA80, 0x0000ff, 0x0, 0x0, PATH_MAX_CHARS+1, buf_cmd_line, 0, 0
edit2 edit_box 350, 220, 50, 0xffffff, 0xAA80, 0x0000ff, 0x0, 0x0, PATH_MAX_CHARS+1, buf_cmd_params, 0, 0 edit2 edit_box 350, 220, 50, 0xffffff, 0xAA80, 0x0000ff, 0x0, 0x0, PATH_MAX_CHARS+1, buf_cmd_params, 0, 0
buf_cmd_line dd 0 buf_cmd_line dd 0 ;db MAX_HOTKEYS_NUM*PATH_MAX_CHARS dup(0) ; !Make it dynamic!!!
buf_cmd_params dd 0 buf_cmd_params dd 0 ;db MAX_HOTKEYS_NUM*PATH_MAX_CHARS dup(0) ; !Make it dynamic!!!
sys_path: sys_path:
system_dir0 db '/sys/lib/' system_dir0 db '/sys/lib/'
@ -957,7 +969,8 @@ align 16
importTable: importTable:
library \ library \
libini, 'libini.obj';, \ libini, 'libini.obj';, \
; boxlib, 'boxlib.obj' \ ; boxlib, 'boxlib.obj', \
; libio, 'libio.obj', \
;import boxlib, \ ;import boxlib, \
;edit_box_draw , 'edit_box', \ ;edit_box_draw , 'edit_box', \
@ -1010,7 +1023,7 @@ aRamSaver db '/sys/rdsave',0
app_path rb 255 app_path rb 255
ini_path rb 255 ini_path rb 255
Hotkeys: ;(name = 32 b) + (modifiers = 3 b) + (keycode = 1 b) + (keycode_name = 64 b) = 100 bytes for 1 hotkey Hotkeys: ;(name = 32 b) + (modifiers = 3 b) + (keycode = 1 b) = 36 byte for 1 hotkey
.names: .names:
db 'My1',0 db 'My1',0
rb 28 rb 28