Rev 4099 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1815 | yogev_ezra | 1 | ; |
1816 | yogev_ezra | 2 | ; MyKey. Version 0.2. |
1815 | yogev_ezra | 3 | ; |
4 | ; Author: Asper |
||
1816 | yogev_ezra | 5 | ; Date of issue: 29.12.2009 |
1815 | yogev_ezra | 6 | ; Compiler: FASM |
7 | ; Target: KolibriOS |
||
8 | ; |
||
9 | |||
10 | use32 |
||
11 | org 0x0 |
||
12 | |||
1816 | yogev_ezra | 13 | db 'MENUET01' ; 8 byte id |
1815 | yogev_ezra | 14 | dd 38 ; required os |
15 | dd STARTAPP ; program start |
||
16 | dd I_END ; program image size |
||
1816 | yogev_ezra | 17 | dd 0x1000000 ; required amount of memory |
18 | dd 0x1000000 ; stack heap |
||
19 | dd 0x0 |
||
20 | dd app_path |
||
1815 | yogev_ezra | 21 | |
3628 | fedesco | 22 | include 'lang.inc' ;language support |
23 | |||
3996 | mario79 | 24 | include 'string.inc' |
25 | ;include 'macros.inc' |
||
26 | include '../../../macros.inc' |
||
1829 | clevermous | 27 | include 'ASPAPI.INC' |
3996 | mario79 | 28 | ;include 'editbox_ex.mac' |
29 | include '../../../develop/libraries/box_lib/trunk/box_lib.mac' |
||
30 | ;include 'load_lib.mac' |
||
31 | include '../../../develop/libraries/box_lib/load_lib.mac' |
||
3014 | dunkaist | 32 | include '../../../dll.inc' |
1815 | yogev_ezra | 33 | |
34 | include 'debug.inc' |
||
35 | DEBUG equ 0;1 |
||
36 | |||
37 | N_KEYCOLOR equ 0x00EEEEEE ; Normal button color |
||
38 | C_KEYCOLOR equ 0x00CBE1E1 ; Control button color |
||
1816 | yogev_ezra | 39 | A_KEYCOLOR equ 0x00FF6400;258778 ; Active button color |
1815 | yogev_ezra | 40 | C_TEXTCOLOR equ 0x80000000 ; Button caption color |
41 | CA_TEXTCOLOR equ 0x80FFFFFF ; Active button caption color |
||
1816 | yogev_ezra | 42 | A_TEXTCOLOR equ 0x00FFFFFF ; Active text color |
1815 | yogev_ezra | 43 | |
1816 | yogev_ezra | 44 | WIN_X equ 265 |
45 | WIN_Y equ 50;175 |
||
46 | WIN_W equ 595 |
||
47 | WIN_H equ 415 ;570 |
||
48 | WIN_COLOR equ 0x040099BB;0x04EEEEEE |
||
1815 | yogev_ezra | 49 | |
1816 | yogev_ezra | 50 | ITEM_BUTTON_W equ 192;100 |
51 | ITEM_BUTTON_H equ 23 |
||
52 | ITEM_BUTTON_SPACE equ 0 |
||
53 | FIRST_ITEM_BUTTON_ID equ 7 |
||
1815 | yogev_ezra | 54 | |
1816 | yogev_ezra | 55 | BUT_W equ 80 |
56 | BUT_H equ 20 |
||
57 | |||
1815 | yogev_ezra | 58 | MAX_HOTKEYS_NUM equ 15 ; Bad bounding :/. Until we have normal listbox control. |
59 | PATH_MAX_CHARS equ 255 |
||
60 | |||
61 | @use_library |
||
62 | |||
63 | STARTAPP: |
||
1816 | yogev_ezra | 64 | ; Initialize memory |
65 | mcall 68, 11 |
||
66 | or eax,eax |
||
67 | jz close_app |
||
68 | ; Import libraries |
||
1815 | yogev_ezra | 69 | sys_load_library boxlib_name, sys_path, boxlib_name, system_dir0, err_message_found_lib, head_f_l, myimport,err_message_import, head_f_i |
70 | cmp eax,-1 |
||
71 | jz close_app |
||
1816 | yogev_ezra | 72 | stdcall dll.Load,importTable |
73 | test eax, eax |
||
74 | jnz close_app |
||
1815 | yogev_ezra | 75 | |
1900 | yogev_ezra | 76 | mcall 68, 12, MAX_HOTKEYS_NUM*PATH_MAX_CHARS ; Get memory for editboxes text |
1816 | yogev_ezra | 77 | mov dword [buf_cmd_line], eax |
78 | mov dword [edit1.text], eax |
||
79 | mcall 68, 12, MAX_HOTKEYS_NUM*PATH_MAX_CHARS |
||
80 | mov dword [buf_cmd_params], eax |
||
81 | mov dword [edit2.text], eax |
||
82 | mcall 68, 12, MAX_HOTKEYS_NUM*32 |
||
83 | mov dword [it_buf_cmd_line], eax |
||
84 | mov dword [it_edit.text], eax |
||
85 | |||
86 | call Load_HotkeyList |
||
87 | |||
1815 | yogev_ezra | 88 | mcall 66, 1, 1 ; Set keyboard mode to get scancodes. |
89 | mcall 26, 2, 1, ascii_keymap |
||
90 | |||
1816 | yogev_ezra | 91 | get_mykey_window_slot_number: |
92 | call draw_window |
||
93 | mcall 18, 7 |
||
94 | mov [mykey_window], eax |
||
1815 | yogev_ezra | 95 | |
96 | set_event_mask: |
||
3978 | Asper | 97 | mcall 40, 0xC0000027 |
1815 | yogev_ezra | 98 | |
99 | red: |
||
1816 | yogev_ezra | 100 | .test_slot: |
101 | mcall 18, 7 |
||
102 | mov ebx, [mykey_window] |
||
103 | cmp eax, ebx |
||
104 | jne @f |
||
105 | |||
106 | mov ecx, [it_window] |
||
107 | cmp ebx, ecx |
||
108 | je @f |
||
109 | .activate_it_window: |
||
110 | mov al, byte [it_alive] |
||
111 | test al, al |
||
112 | jz @f |
||
113 | mov byte [it_alive], 0 |
||
114 | |||
1900 | yogev_ezra | 115 | mcall 18, 3 ; Activate input thread window |
1816 | yogev_ezra | 116 | @@: |
1815 | yogev_ezra | 117 | call draw_window |
118 | |||
119 | still: |
||
120 | call reset_modifiers |
||
121 | |||
1816 | yogev_ezra | 122 | mcall 10 ; Wait for an event in the queue. |
1815 | yogev_ezra | 123 | |
124 | cmp al,1 ; redraw request ? |
||
125 | jz red |
||
126 | cmp al,2 ; key in buffer ? |
||
127 | jz key |
||
128 | cmp al,3 ; button in buffer ? |
||
129 | jz button |
||
130 | cmp al,6 |
||
131 | jz mouse |
||
132 | |||
133 | jmp still |
||
134 | |||
135 | key: |
||
1816 | yogev_ezra | 136 | mcall 2 |
1815 | yogev_ezra | 137 | |
138 | push eax |
||
139 | mcall 66, 3 |
||
1900 | yogev_ezra | 140 | ;mov edx, eax |
141 | ;and edx, 0x00000FF;F |
||
142 | mov dword [modifiers], eax;edx |
||
1815 | yogev_ezra | 143 | pop eax |
144 | |||
1816 | yogev_ezra | 145 | test word [edit1.flags], 10b |
1815 | yogev_ezra | 146 | jnz .editbox_input |
1816 | yogev_ezra | 147 | test word [edit2.flags], 10b |
1815 | yogev_ezra | 148 | jz @f |
149 | .editbox_input: |
||
150 | cmp ah, 0x80 ;if key up |
||
151 | ja still |
||
152 | cmp ah, 42 ;LShift |
||
153 | je still |
||
154 | cmp ah, 54 ;RShift |
||
155 | je still |
||
156 | cmp ah, 56 ;Alt |
||
157 | je still |
||
158 | cmp ah, 29 ;Ctrl |
||
159 | je still |
||
160 | cmp ah, 69 ;Pause/Break |
||
161 | je still |
||
162 | |||
1816 | yogev_ezra | 163 | mov esi, ascii_keymap |
164 | call Scan2ASCII |
||
1815 | yogev_ezra | 165 | |
1816 | yogev_ezra | 166 | push dword edit1 |
167 | call [edit_box_key] |
||
1815 | yogev_ezra | 168 | |
1816 | yogev_ezra | 169 | push dword edit2 |
170 | call [edit_box_key] |
||
171 | jmp still |
||
172 | @@: |
||
1815 | yogev_ezra | 173 | |
174 | ;------------------------ |
||
175 | mov cl, byte [hotkeys_num] |
||
1816 | yogev_ezra | 176 | .test_next_hotkey: |
1815 | yogev_ezra | 177 | dec cl |
178 | mov bl, cl |
||
179 | and ebx, 0xFF |
||
1900 | yogev_ezra | 180 | shl ebx, 2;5 |
181 | ; mov esi, ebx |
||
1815 | yogev_ezra | 182 | add ebx, dword Hotkeys.codes |
183 | |||
1816 | yogev_ezra | 184 | mov edx, dword [ebx] |
185 | cmp ah, dl |
||
1815 | yogev_ezra | 186 | jne @f |
187 | |||
188 | shr edx, 8 |
||
189 | cmp edx, dword [modifiers] |
||
190 | jne @f |
||
191 | |||
192 | push eax |
||
193 | mov eax, PATH_MAX_CHARS |
||
194 | mul cl |
||
195 | mov edx, eax |
||
1816 | yogev_ezra | 196 | add edx, dword [buf_cmd_params] |
197 | add eax, dword [buf_cmd_line] |
||
1815 | yogev_ezra | 198 | mov esi, eax |
199 | pop eax |
||
200 | call RunProgram |
||
201 | jmp .end_test |
||
1816 | yogev_ezra | 202 | @@: |
203 | or cl, cl |
||
204 | jnz .test_next_hotkey |
||
205 | .end_test: |
||
1815 | yogev_ezra | 206 | ;------------------------ |
207 | |||
208 | jmp still |
||
209 | |||
210 | button: |
||
1816 | yogev_ezra | 211 | mcall 17 ; Get pressed button code |
1815 | yogev_ezra | 212 | cmp ah, 1 ; Test x button |
213 | je close_app |
||
214 | |||
215 | cmp ah, 2 |
||
216 | jne @f |
||
217 | call AddHotKey |
||
218 | jmp red |
||
219 | @@: |
||
1816 | yogev_ezra | 220 | cmp ah, 5 |
221 | jne @f |
||
222 | call Load_HotkeyList |
||
223 | jmp red |
||
224 | @@: |
||
225 | cmp ah, 6 |
||
226 | jne @f |
||
227 | call WriteIni |
||
228 | xor edx, edx |
||
229 | mov esi, aRamSaver |
||
230 | call RunProgram |
||
231 | @@: |
||
1815 | yogev_ezra | 232 | |
1816 | yogev_ezra | 233 | cmp ah, FIRST_ITEM_BUTTON_ID ; Test if pressed buttons |
234 | jb still ; is a HotKey button... |
||
1815 | yogev_ezra | 235 | mov al, ah |
1816 | yogev_ezra | 236 | sub al, FIRST_ITEM_BUTTON_ID |
1815 | yogev_ezra | 237 | cmp al, byte [hotkeys_num] |
1816 | yogev_ezra | 238 | jnb still ; ...so, if not then still, |
1815 | yogev_ezra | 239 | |
240 | |||
241 | mov byte [butt], ah ; if yes then save pressed button ID |
||
1816 | yogev_ezra | 242 | and eax, 0xFF |
1815 | yogev_ezra | 243 | mov cl, byte PATH_MAX_CHARS |
244 | mul cl |
||
245 | mov ebx, eax |
||
1816 | yogev_ezra | 246 | add ebx, dword [buf_cmd_params] |
247 | add eax, dword [buf_cmd_line] |
||
1815 | yogev_ezra | 248 | |
249 | mov dword [edit1.text], eax |
||
250 | mov dword [edit2.text], ebx |
||
251 | |||
252 | mov esi, eax |
||
253 | call strlen |
||
254 | mov dword [edit1.size], ecx |
||
255 | mov dword [edit1.pos], ecx |
||
256 | |||
257 | mov esi, ebx |
||
258 | call strlen |
||
259 | mov dword [edit2.size], ecx |
||
260 | mov dword [edit2.pos], ecx |
||
261 | |||
1816 | yogev_ezra | 262 | jmp red |
1815 | yogev_ezra | 263 | |
264 | mouse: |
||
265 | push dword edit1 |
||
266 | call [edit_box_mouse] |
||
267 | push dword edit2 |
||
268 | call [edit_box_mouse] |
||
269 | |||
270 | jmp still |
||
271 | |||
272 | |||
273 | close_app: |
||
1816 | yogev_ezra | 274 | mov eax,-1 ; close this program |
275 | int 0x40 |
||
1815 | yogev_ezra | 276 | |
277 | |||
278 | draw_window: |
||
1816 | yogev_ezra | 279 | start_draw_window WIN_X,WIN_Y,WIN_W,WIN_H,WIN_COLOR,labelt, 11;labellen-labelt |
1815 | yogev_ezra | 280 | |
1816 | yogev_ezra | 281 | ;bar 5, 24, 585, 385, 0x800000 or 0x90D2 |
282 | ;rectangle2 6, 25, 585, 385, 0xFFFFFF, 0 |
||
1815 | yogev_ezra | 283 | |
1816 | yogev_ezra | 284 | ;bar 5, 24, BUT_W+4, 350, 0x008C00D2;0x800000 or A_KEYCOLOR |
285 | ;rectangle2 6, 25, BUT_W+4, 350, 0xFFFFFF, 0 |
||
1815 | yogev_ezra | 286 | |
287 | |||
1816 | yogev_ezra | 288 | push dword edit1 |
289 | call [edit_box_draw] |
||
290 | push dword edit2 |
||
291 | call [edit_box_draw] |
||
1815 | yogev_ezra | 292 | |
1816 | yogev_ezra | 293 | stdcall draw_button, 7,WIN_H-BUT_H-10,BUT_W,BUT_H,2,0x0050D250,AddKeyText, 0,C_TEXTCOLOR ; Add Hotkey. |
294 | if 0 |
||
295 | stdcall draw_button, 90,WIN_H-BUT_H-10,BUT_W,BUT_H,3,C_KEYCOLOR,DeleteKeyText,0,C_TEXTCOLOR ; Delete Hotkey. |
||
296 | stdcall draw_button, 173,WIN_H-BUT_H-10,BUT_W,BUT_H,4,C_KEYCOLOR,ManageKeyText,0,C_TEXTCOLOR ; Manage Hotkey. |
||
297 | end if |
||
298 | stdcall draw_button, WIN_W-BUT_W*2-14,WIN_H-BUT_H-10,BUT_W,BUT_H,5,0x0050D250,ReloadKeyText, 0,C_TEXTCOLOR ; Save Hotkeys list. |
||
299 | stdcall draw_button, WIN_W-BUT_W-7,WIN_H-BUT_H-10,BUT_W,BUT_H,6,0x0050D250,SaveKeyText, 0,C_TEXTCOLOR ; Save Hotkeys list. |
||
1815 | yogev_ezra | 300 | |
1816 | yogev_ezra | 301 | movzx ecx, byte [hotkeys_num] |
302 | cmp ecx, MAX_HOTKEYS_NUM |
||
303 | jng @f |
||
304 | mov ecx, MAX_HOTKEYS_NUM |
||
305 | @@: |
||
306 | mov eax, 30 |
||
307 | mov ebx, FIRST_ITEM_BUTTON_ID |
||
308 | @@: |
||
309 | or cl, cl |
||
310 | jz @f |
||
1815 | yogev_ezra | 311 | |
1816 | yogev_ezra | 312 | mov edx, ebx |
313 | sub edx, FIRST_ITEM_BUTTON_ID |
||
314 | shl edx, 5; edx=edx*32 |
||
315 | add edx, dword Hotkeys |
||
316 | |||
317 | cmp bl, byte [butt] |
||
318 | jne .l1 |
||
319 | stdcall draw_button, 7,eax,ITEM_BUTTON_W,ITEM_BUTTON_H,ebx,A_KEYCOLOR ,edx,0,CA_TEXTCOLOR |
||
320 | bar 220, 70, 350, 30, 0x00C8E1F0 ;0x800000 or A_KEYCOLOR |
||
321 | rectangle2 221, 71, 350, 30, 0xFFFFFF, 0 |
||
322 | mov esi, Hotkeys.code_names |
||
323 | sub edx, dword Hotkeys |
||
324 | shl edx, 1 |
||
325 | add esi, edx |
||
326 | stdcall outtextxy, 225, 80, esi, 64, C_TEXTCOLOR |
||
327 | jmp .l2 |
||
328 | .l1: |
||
329 | stdcall draw_button, 7,eax,ITEM_BUTTON_W,ITEM_BUTTON_H,ebx,N_KEYCOLOR,edx,0,C_TEXTCOLOR |
||
330 | .l2: |
||
331 | |||
332 | add eax, ITEM_BUTTON_H+ITEM_BUTTON_SPACE |
||
333 | inc ebx |
||
334 | dec cl |
||
335 | jmp @b |
||
336 | @@: |
||
337 | end_draw_window |
||
1815 | yogev_ezra | 338 | ret |
339 | |||
340 | |||
341 | AddHotKey: |
||
342 | mov al, byte [hotkeys_num] |
||
343 | cmp al, MAX_HOTKEYS_NUM |
||
344 | jge .end |
||
345 | inc al |
||
346 | mov byte [hotkeys_num], al |
||
347 | |||
1816 | yogev_ezra | 348 | mcall 51, 1, dword start_input_thread, dword input_thread_stack_top |
1815 | yogev_ezra | 349 | .end: |
1816 | yogev_ezra | 350 | ret |
1815 | yogev_ezra | 351 | |
352 | |||
1816 | yogev_ezra | 353 | Load_HotkeyList: |
354 | call ReadIni |
||
355 | |||
356 | mov al, byte [butt] |
||
357 | and eax, 0xFF |
||
358 | sub al, FIRST_ITEM_BUTTON_ID |
||
359 | mov cl, byte PATH_MAX_CHARS |
||
360 | mul cl |
||
361 | mov ebx, eax |
||
362 | add eax, dword [buf_cmd_line] |
||
363 | add ebx, dword [buf_cmd_params] |
||
364 | |||
365 | |||
1900 | yogev_ezra | 366 | ;mov [butt], FIRST_ITEM_BUTTON_ID |
1816 | yogev_ezra | 367 | mov esi, eax |
368 | call strlen |
||
369 | mov dword [edit1.size], ecx |
||
370 | mov dword [edit1.pos], ecx |
||
371 | |||
372 | mov esi, ebx |
||
373 | call strlen |
||
374 | mov dword [edit2.size], ecx |
||
375 | mov dword [edit2.pos], ecx |
||
376 | ret |
||
377 | |||
378 | |||
1815 | yogev_ezra | 379 | reset_modifiers: |
380 | pusha |
||
381 | mov esi, dword [it_hotkey_addr] |
||
382 | test esi, esi |
||
383 | jz .end_set_mods |
||
384 | |||
385 | lodsd |
||
386 | |||
1816 | yogev_ezra | 387 | ; Set new hotkey for the main thread |
388 | mov cl, al |
||
1815 | yogev_ezra | 389 | shr eax, 8 |
390 | |||
391 | xor edx, edx |
||
392 | push cx |
||
393 | mov cl, 3 |
||
394 | .next_pair: |
||
395 | shl edx, 4 |
||
396 | mov bl, al |
||
397 | and bl, 3 |
||
398 | |||
399 | or bl, bl |
||
400 | jz .l1 |
||
401 | |||
402 | cmp bl, 3 ; both? |
||
403 | jne @f |
||
404 | or dl, 2 |
||
405 | jmp .l1 |
||
406 | @@: |
||
407 | add bl, 2 |
||
408 | or dl, bl |
||
409 | .l1: |
||
410 | shr eax, 2 |
||
411 | dec cl |
||
412 | test cl, cl |
||
413 | jnz .next_pair |
||
414 | |||
415 | mov bx, dx |
||
416 | and bx, 0xF0F |
||
417 | xchg bl, bh |
||
418 | and dx, 0x0F0 |
||
419 | or dx, bx |
||
420 | pop cx |
||
421 | |||
422 | mcall 66, 4 |
||
1816 | yogev_ezra | 423 | mov dword [it_hotkey_addr], 0 |
1815 | yogev_ezra | 424 | .end_set_mods: |
1816 | yogev_ezra | 425 | popa |
1815 | yogev_ezra | 426 | ret |
427 | |||
428 | |||
429 | ;######################## Input Thread code start ########################## |
||
430 | |||
431 | start_input_thread: |
||
432 | mov ecx, 1 ; to get scancodes. |
||
1816 | yogev_ezra | 433 | mcall 26, 2, 1, it_ascii_keymap |
434 | mcall 66, 1 ; Set keyboard mode |
||
1815 | yogev_ezra | 435 | mov dword [it_hotkey_addr], 0 |
436 | it_set_editbox: |
||
437 | mov al, byte [hotkeys_num] |
||
438 | sub al, 1 |
||
439 | and eax, 0xFF |
||
440 | shl eax, 5 |
||
441 | add eax, dword Hotkeys.names |
||
442 | mov dword [it_edit.text], eax |
||
443 | |||
444 | mov esi, eax |
||
445 | call strlen |
||
446 | mov dword [it_edit.size], ecx |
||
447 | mov dword [it_edit.pos], ecx |
||
1816 | yogev_ezra | 448 | get_it_window_slot_number: |
449 | call it_draw_window |
||
450 | mcall 18, 7 |
||
451 | mov [it_window], eax |
||
1815 | yogev_ezra | 452 | |
453 | it_set_event_mask: |
||
454 | mcall 40, 39 |
||
455 | it_red: |
||
456 | call it_draw_window |
||
457 | |||
458 | it_still: |
||
1816 | yogev_ezra | 459 | mcall 10 ; Wait for an event in the queue. |
1815 | yogev_ezra | 460 | |
461 | cmp al,1 ; redraw request ? |
||
462 | jz it_red |
||
463 | cmp al,2 ; key in buffer ? |
||
464 | jz it_key |
||
465 | cmp al,3 ; button in buffer ? |
||
1816 | yogev_ezra | 466 | jz it_button |
1815 | yogev_ezra | 467 | cmp al,6 |
468 | jz it_mouse |
||
469 | |||
470 | jmp it_still |
||
471 | |||
472 | it_key: |
||
1816 | yogev_ezra | 473 | mcall 2 |
1815 | yogev_ezra | 474 | |
475 | mov byte [it_keycode], 0 |
||
476 | stdcall outtextxy, 10, 100, ctrl_key_names, 35, 0 |
||
1816 | yogev_ezra | 477 | |
478 | cmp ah, 1 ;Esc |
||
479 | jne @f |
||
480 | dec byte [hotkeys_num] |
||
481 | jmp close_app |
||
482 | @@: |
||
483 | |||
1815 | yogev_ezra | 484 | cmp ah, 0x80 ;if key up |
485 | ja .end |
||
486 | cmp ah, 42 ;[Shift] (left) |
||
487 | je .end |
||
488 | cmp ah, 54 ;[Shift] (right) |
||
489 | je .end |
||
490 | cmp ah, 56 ;[Alt] |
||
491 | je .end |
||
492 | cmp ah, 29 ;[Ctrl] |
||
493 | je .end |
||
494 | cmp ah, 69 ;[Pause Break] |
||
495 | je .end |
||
496 | |||
497 | mov byte [it_keycode], ah |
||
1816 | yogev_ezra | 498 | mov esi, it_ascii_keymap |
1815 | yogev_ezra | 499 | call Scan2ASCII |
500 | |||
1816 | yogev_ezra | 501 | test word [it_edit.flags], 10b |
1815 | yogev_ezra | 502 | jz .end |
503 | push dword it_edit |
||
504 | call [edit_box_key] |
||
505 | jmp it_still |
||
506 | .end: |
||
507 | |||
1816 | yogev_ezra | 508 | mcall 26, 2, 1, it_ascii_keymap |
1815 | yogev_ezra | 509 | call it_test_key_modifiers |
1816 | yogev_ezra | 510 | test dl, 3 |
511 | jz @f |
||
512 | push edx |
||
513 | mcall 26, 2, 2, it_ascii_keymap |
||
514 | pop edx |
||
515 | @@: |
||
516 | |||
1815 | yogev_ezra | 517 | mov al, byte [it_keycode] |
518 | test al, al |
||
519 | jz @f |
||
520 | shl edx, 8 |
||
521 | mov dl, al |
||
522 | |||
523 | mov eax, dword [it_hotkey_addr] |
||
524 | test eax, eax |
||
525 | jnz @f |
||
1816 | yogev_ezra | 526 | |
527 | call it_set_keycode_name |
||
528 | |||
1815 | yogev_ezra | 529 | mov al, byte [hotkeys_num] |
1816 | yogev_ezra | 530 | dec al |
1815 | yogev_ezra | 531 | and eax, 0xFF |
1816 | yogev_ezra | 532 | shl eax, 2;5 |
1815 | yogev_ezra | 533 | add eax, dword Hotkeys.codes |
534 | mov dword [eax], edx |
||
535 | mov dword [it_hotkey_addr], eax |
||
536 | |||
537 | mov cl, dl ; finally set hotkey |
||
538 | shr edx, 8 |
||
539 | mcall 66, 4 |
||
540 | @@: |
||
541 | |||
542 | jmp it_still |
||
543 | |||
544 | |||
545 | it_test_key_modifiers: |
||
546 | push eax |
||
547 | mcall 66, 3 ;get control keys state |
||
548 | mov edx, eax |
||
1900 | yogev_ezra | 549 | ;and edx, 0x00000FFF |
1815 | yogev_ezra | 550 | .lshift: |
551 | test al, 1 ; LShift ? |
||
552 | jz .rshift |
||
1816 | yogev_ezra | 553 | stdcall outtextxy, 10, 100, ctrl_key_names, 6, A_TEXTCOLOR |
1815 | yogev_ezra | 554 | .rshift: |
555 | test al, 2 ; RShift ? |
||
556 | jz .lctrl |
||
1816 | yogev_ezra | 557 | stdcall outtextxy, 184, 100, ctrl_key_names+29, 6, A_TEXTCOLOR |
1815 | yogev_ezra | 558 | .lctrl: |
559 | test al, 4 ; LCtrl ? |
||
560 | jz .rctrl |
||
1816 | yogev_ezra | 561 | stdcall outtextxy, 52, 100, ctrl_key_names+7, 5, A_TEXTCOLOR |
1815 | yogev_ezra | 562 | .rctrl: |
563 | test al, 8 ; RCtrl ? |
||
564 | jz .lalt |
||
1816 | yogev_ezra | 565 | stdcall outtextxy, 148, 100, ctrl_key_names+23, 5, A_TEXTCOLOR |
1815 | yogev_ezra | 566 | .lalt: |
567 | test al, 0x10 ; LAlt ? |
||
568 | jz .ralt |
||
1816 | yogev_ezra | 569 | stdcall outtextxy, 88, 100, ctrl_key_names+13, 4, A_TEXTCOLOR |
1815 | yogev_ezra | 570 | .ralt: |
571 | test al, 0x20 ; RAlt ? |
||
572 | jz @f |
||
1816 | yogev_ezra | 573 | stdcall outtextxy, 118, 100, ctrl_key_names+18, 4, A_TEXTCOLOR |
1815 | yogev_ezra | 574 | @@: |
575 | pop eax |
||
576 | ret |
||
577 | |||
1816 | yogev_ezra | 578 | |
579 | it_set_keycode_name: |
||
580 | pusha |
||
581 | mov al, byte [hotkeys_num] |
||
582 | dec al |
||
583 | and eax, 0xFF |
||
584 | shl eax, 6 |
||
585 | mov edi, Hotkeys.code_names |
||
586 | add edi, eax |
||
587 | |||
588 | mov ecx, 64 |
||
589 | xor ax, ax |
||
590 | call strnset |
||
591 | mcall 66, 3 ;get control keys state |
||
592 | .lshift: |
||
593 | test al, 1 ; LShift ? |
||
594 | jz .rshift |
||
595 | mov esi, ctrl_key_names |
||
596 | mov ecx, 6 |
||
597 | call strncat |
||
598 | |||
599 | mov esi, aPlus |
||
600 | mov ecx, 3 |
||
601 | call strncat |
||
1900 | yogev_ezra | 602 | ;stdcall outtextxy, 10, 100, ctrl_key_names, 6, 0x00FF0000 |
1816 | yogev_ezra | 603 | .rshift: |
604 | test al, 2 ; RShift ? |
||
605 | jz .lctrl |
||
606 | mov esi, ctrl_key_names+29 |
||
607 | mov ecx, 6 |
||
608 | call strncat |
||
609 | |||
610 | mov esi, aPlus |
||
611 | mov ecx, 3 |
||
612 | call strncat |
||
1900 | yogev_ezra | 613 | ;stdcall outtextxy, 184, 100, ctrl_key_names+29, 6, 0x00FF0000 |
1816 | yogev_ezra | 614 | .lctrl: |
615 | test al, 4 ; LCtrl ? |
||
616 | jz .rctrl |
||
617 | mov esi, ctrl_key_names+7 |
||
618 | mov ecx, 5 |
||
619 | call strncat |
||
620 | |||
621 | mov esi, aPlus |
||
622 | mov ecx, 3 |
||
623 | call strncat |
||
1900 | yogev_ezra | 624 | ;stdcall outtextxy, 52, 100, ctrl_key_names+7, 5, 0x00FF0000 |
1816 | yogev_ezra | 625 | .rctrl: |
626 | test al, 8 ; RCtrl ? |
||
627 | jz .lalt |
||
628 | mov esi, ctrl_key_names+23 |
||
629 | mov ecx, 5 |
||
630 | call strncat |
||
631 | |||
632 | mov esi, aPlus |
||
633 | mov ecx, 3 |
||
634 | call strncat |
||
1900 | yogev_ezra | 635 | ;stdcall outtextxy, 148, 100, ctrl_key_names+23, 5, 0x00FF0000 |
1816 | yogev_ezra | 636 | .lalt: |
637 | test al, 0x10 ; LAlt ? |
||
638 | jz .ralt |
||
639 | mov esi, ctrl_key_names+13 |
||
640 | mov ecx, 4 |
||
641 | call strncat |
||
642 | |||
643 | mov esi, aPlus |
||
644 | mov ecx, 3 |
||
645 | call strncat |
||
1900 | yogev_ezra | 646 | ;stdcall outtextxy, 88, 100, ctrl_key_names+13, 4, 0x00FF0000 |
1816 | yogev_ezra | 647 | .ralt: |
648 | test al, 0x20 ; RAlt ? |
||
649 | jz @f |
||
650 | mov esi, ctrl_key_names+18 |
||
651 | mov ecx, 4 |
||
652 | call strncat |
||
653 | |||
654 | mov esi, aPlus |
||
655 | mov ecx, 3 |
||
656 | call strncat |
||
1900 | yogev_ezra | 657 | ;stdcall outtextxy, 118, 100, ctrl_key_names+18, 4, 0x00FF0000 |
1816 | yogev_ezra | 658 | @@: |
659 | mov esi, it_ascii_keymap |
||
660 | and edx, 0xFF |
||
661 | add esi, edx |
||
662 | mov ecx, 1 |
||
663 | call strncat |
||
664 | |||
1900 | yogev_ezra | 665 | if 1;DEBUG |
666 | mov esi, edi;Hotkeys.code_names |
||
667 | call SysMsgBoardStr |
||
668 | newline |
||
669 | end if |
||
670 | |||
1816 | yogev_ezra | 671 | popa |
672 | ret |
||
673 | |||
674 | |||
675 | it_button: |
||
676 | mcall 17 ; Get pressed button code |
||
1900 | yogev_ezra | 677 | cmp ah, 1 ; Test x button |
1816 | yogev_ezra | 678 | jne @f |
679 | jmp close_app |
||
680 | @@: |
||
681 | jmp it_still |
||
682 | |||
1815 | yogev_ezra | 683 | it_mouse: |
684 | |||
685 | push dword it_edit |
||
686 | call [edit_box_mouse] |
||
687 | |||
688 | jmp it_still |
||
689 | |||
690 | it_draw_window: |
||
1816 | yogev_ezra | 691 | start_draw_window 450,WIN_Y+250,225,70,WIN_COLOR,it_labelt, 26;labellen-labelt |
1815 | yogev_ezra | 692 | |
1816 | yogev_ezra | 693 | push dword it_edit |
694 | call [edit_box_draw] |
||
1815 | yogev_ezra | 695 | |
1816 | yogev_ezra | 696 | stdcall outtextxy, 43, 50, it_hint, 0, 0x323232 |
697 | stdcall outtextxy, 10, 100, ctrl_key_names, 0, 0 |
||
698 | ;stdcall draw_button, 7,WIN_H-30,80,20,2,C_KEYCOLOR,AddKeyText, 0,C_TEXTCOLOR ; Add Hot key. |
||
699 | end_draw_window |
||
700 | mov byte [it_alive], 1 |
||
1815 | yogev_ezra | 701 | ret |
702 | |||
703 | ;######################## Input Thread code end ########################## |
||
704 | |||
705 | |||
1816 | yogev_ezra | 706 | ; Read configuration file |
707 | ReadIni: |
||
708 | ; Get path |
||
709 | mov edi, ini_path |
||
710 | mov esi, app_path |
||
711 | call strlen |
||
712 | |||
713 | .get_path: |
||
714 | cmp byte [app_path+ecx-1], '/' |
||
715 | je @f |
||
716 | loop .get_path |
||
717 | @@: |
||
718 | call strncpy |
||
719 | mov byte [ini_path+ecx], 0 |
||
720 | mov esi, aIni |
||
721 | call strlen |
||
722 | call strncat |
||
723 | |||
724 | ; Get hotkey number |
||
725 | invoke ini_get_int, ini_path, aMain, aKeynum, 0 |
||
726 | |||
727 | and eax, 0xFF |
||
728 | test al, al |
||
729 | jz .end |
||
730 | cmp al, MAX_HOTKEYS_NUM |
||
731 | jle @f |
||
732 | mov al, MAX_HOTKEYS_NUM |
||
733 | @@: |
||
734 | mov byte [hotkeys_num], al |
||
735 | |||
736 | mov ecx, eax |
||
737 | xor eax, eax |
||
738 | .get_next_hotkey_values: |
||
739 | call set_next_hotkey_section_name |
||
740 | ; Get hotkey name |
||
741 | mov edi, eax |
||
742 | shl edi, 5 ; edi=eax*32 |
||
743 | add edi, dword Hotkeys |
||
744 | push eax ecx |
||
745 | invoke ini_get_str, ini_path, aHotkey, aName, edi, 32, 0 |
||
746 | pop ecx eax |
||
747 | ; Get hotkey code |
||
748 | mov edi, eax |
||
749 | shl edi, 2 ; edi=eax*4 |
||
750 | add edi, dword Hotkeys.codes |
||
751 | push eax ecx edx |
||
752 | invoke ini_get_int, ini_path, aHotkey, aKeycode, 0 |
||
753 | mov dword [it_hotkey_addr], edi |
||
754 | stosd |
||
755 | ; set hotkey |
||
756 | call reset_modifiers |
||
757 | pop edx ecx eax |
||
758 | ; Get hotkey code_name |
||
759 | mov edi, eax |
||
760 | shl edi, 6 ; edi=eax*64 |
||
761 | add edi, dword Hotkeys.code_names |
||
762 | push eax ecx |
||
763 | invoke ini_get_str, ini_path, aHotkey, aKeycodeName, edi, 64, 0 |
||
764 | pop ecx eax |
||
765 | ; Get hotkey path and param |
||
766 | push eax ecx |
||
767 | mov cl, byte PATH_MAX_CHARS |
||
768 | mul cl |
||
769 | mov edi, eax |
||
770 | push edi |
||
771 | add edi, dword [buf_cmd_line] |
||
772 | invoke ini_get_str, ini_path, aHotkey, aPath, edi, 32, 0 |
||
773 | pop edi |
||
774 | add edi, dword [buf_cmd_params] |
||
775 | invoke ini_get_str, ini_path, aHotkey, aParam, edi, 32, 0 |
||
776 | pop ecx eax |
||
777 | |||
778 | inc al |
||
779 | dec ecx |
||
780 | test ecx, ecx |
||
781 | jnz .get_next_hotkey_values |
||
782 | .end: |
||
783 | ret |
||
784 | |||
785 | |||
786 | ; Write configuration file |
||
787 | WriteIni: |
||
788 | mov edi, ini_path |
||
789 | ; Set hotkey number |
||
790 | movzx ecx, byte [hotkeys_num] |
||
791 | invoke ini_set_int, ini_path, aMain, aKeynum, ecx |
||
792 | |||
793 | xor eax, eax |
||
794 | .get_next_hotkey_values: |
||
795 | call set_next_hotkey_section_name |
||
796 | ; Set hotkey name |
||
797 | push eax ecx |
||
798 | mov esi, eax |
||
799 | shl esi, 5 ; edi=eax*32 |
||
800 | add esi, dword Hotkeys |
||
801 | call strlen |
||
802 | invoke ini_set_str, ini_path, aHotkey, aName, esi, ecx |
||
803 | pop ecx eax |
||
804 | ; Set hotkey code |
||
805 | mov esi, eax |
||
806 | shl esi, 2 ; edi=eax*4 |
||
807 | add esi, dword Hotkeys.codes |
||
808 | push eax ecx edx |
||
809 | invoke ini_set_int, ini_path, aHotkey, aKeycode, dword [esi] |
||
810 | pop edx ecx eax |
||
811 | ; Set hotkey code_name |
||
812 | mov esi, eax |
||
813 | shl esi, 6 ; edi=eax*64 |
||
814 | add esi, dword Hotkeys.code_names |
||
815 | push eax ecx |
||
816 | call strlen |
||
817 | invoke ini_set_str, ini_path, aHotkey, aKeycodeName, esi, ecx |
||
818 | pop ecx eax |
||
819 | ; Set hotkey path and param |
||
820 | push eax ecx |
||
821 | ;inc al |
||
822 | mov cl, byte PATH_MAX_CHARS |
||
823 | mul cl |
||
824 | mov esi, eax |
||
825 | push esi |
||
826 | add esi, dword [buf_cmd_line] |
||
827 | call strlen |
||
828 | invoke ini_set_str, ini_path, aHotkey, aPath, esi, ecx |
||
829 | pop esi |
||
830 | add esi, dword [buf_cmd_params] |
||
831 | call strlen |
||
832 | invoke ini_set_str, ini_path, aHotkey, aParam, esi, ecx |
||
833 | pop ecx eax |
||
834 | |||
835 | inc al |
||
836 | dec ecx |
||
837 | test ecx, ecx |
||
838 | jnz .get_next_hotkey_values |
||
839 | .end: |
||
840 | ret |
||
841 | |||
842 | |||
843 | set_next_hotkey_section_name: ;(eax - num) |
||
844 | ; this code mainly from debug.inc |
||
845 | push eax ecx edi |
||
846 | mov edi, aHotkey |
||
847 | add edi, 6 ; + strlen("hotkey") |
||
848 | mov ecx, 10 |
||
849 | push -'0' |
||
850 | .l0: |
||
851 | xor edx, edx |
||
852 | div ecx |
||
853 | push edx |
||
854 | test eax, eax |
||
855 | jnz .l0 |
||
856 | .l1: |
||
857 | pop eax |
||
858 | add al, '0' |
||
859 | ;call debug_outchar |
||
860 | stosb |
||
861 | jnz .l1 |
||
862 | pop edi ecx eax |
||
863 | ret |
||
864 | |||
865 | |||
866 | ;**************************************** |
||
867 | ;* input: esi = pointer to keymap * |
||
868 | ;* ah = scan code * |
||
869 | ;* output: ah = ascii code * |
||
870 | ;**************************************** |
||
1815 | yogev_ezra | 871 | Scan2ASCII: |
872 | push esi |
||
873 | shr eax, 8 |
||
874 | add esi, eax |
||
875 | lodsb |
||
876 | shl eax, 8 |
||
877 | pop esi |
||
878 | ret |
||
879 | |||
880 | |||
881 | |||
882 | ;******************************************** |
||
883 | ;* input: esi = pointer to the file name * |
||
884 | ;* edx = pointer to the parametrs * |
||
885 | ;******************************************** |
||
886 | |||
887 | RunProgram: |
||
888 | pusha |
||
889 | mov dword [InfoStructure], 7 ; run program |
||
890 | mov dword [InfoStructure+4], 0 ; flags |
||
891 | mov dword [InfoStructure+8], edx ; pointer to the parametrs |
||
892 | mov dword [InfoStructure+12], 0 ; reserved |
||
893 | mov dword [InfoStructure+16], 0 ; reserved |
||
894 | mov dword [InfoStructure+20], 0 ; reserved |
||
895 | mov dword [InfoStructure+21], esi ; pointer to the file name |
||
1816 | yogev_ezra | 896 | mcall 70, InfoStructure |
1815 | yogev_ezra | 897 | cmp eax, 0 |
898 | jl .err_out |
||
899 | .out: |
||
900 | popa |
||
901 | clc |
||
902 | ret |
||
903 | .err_out: |
||
3628 | fedesco | 904 | if lang eq it |
3978 | Asper | 905 | print "Impossibile caricare il programma" |
3994 | mario79 | 906 | ;-------------------------------------- |
3628 | fedesco | 907 | else |
3978 | Asper | 908 | print "Can't load program" |
3993 | mario79 | 909 | |
3628 | fedesco | 910 | end if |
1815 | yogev_ezra | 911 | popa |
912 | stc |
||
913 | ret |
||
914 | |||
915 | |||
916 | ; DATA AREA |
||
917 | |||
918 | ; Application Title |
||
1816 | yogev_ezra | 919 | labelt db 'MyKey v.0.2' |
1900 | yogev_ezra | 920 | mykey_window dd 0 ; Slot number of MyKey |
1815 | yogev_ezra | 921 | |
922 | |||
923 | ;########### Input Thread data start ############ |
||
924 | |||
925 | ; Input Thread Title |
||
3628 | fedesco | 926 | if lang eq it |
927 | it_labelt db "Inserisci hotkey e nome " |
||
3994 | mario79 | 928 | ;-------------------------------------- |
3628 | fedesco | 929 | else |
930 | it_labelt db "Input hotkey and it's name" |
||
3993 | mario79 | 931 | |
3628 | fedesco | 932 | end if |
1815 | yogev_ezra | 933 | ;labellen: |
934 | it_edit edit_box 180, 20, 30, 0xffffff, 0xAA80, 0x0000ff, 0x0, 0x0, 31, it_buf_cmd_line, 0, 0 |
||
1816 | yogev_ezra | 935 | it_buf_cmd_line dd 0 ;db MAX_HOTKEYS_NUM*32 dup(0) ; !Make it dynamic!!! |
936 | it_window dd 0 ; Slot number of the input thread |
||
937 | it_alive db 0 ; Flag of the input thread existance |
||
1815 | yogev_ezra | 938 | it_keycode db 0 |
939 | it_hotkey_addr dd 0 |
||
3628 | fedesco | 940 | if lang eq it |
941 | it_hint db 'o premi Esc per cancellare',0 |
||
3994 | mario79 | 942 | ;-------------------------------------- |
3628 | fedesco | 943 | else |
944 | it_hint db 'or press Esc to cancel',0 |
||
3993 | mario79 | 945 | |
3628 | fedesco | 946 | end if |
1815 | yogev_ezra | 947 | ;########### Input Thread data end ############ |
948 | |||
949 | ;Button names |
||
3628 | fedesco | 950 | if lang eq it |
951 | AddKeyText db 'Aggiungi',0 |
||
952 | ReloadKeyText db 'Ricarica',0 |
||
953 | SaveKeyText db 'Salva',0 |
||
954 | ;DeleteKeyText db 'Delete',0 |
||
955 | ;ManageKeyText db 'Manage',0 |
||
3994 | mario79 | 956 | ;-------------------------------------- |
3628 | fedesco | 957 | else |
958 | AddKeyText db 'Add',0 |
||
959 | ReloadKeyText db 'Reload',0 |
||
960 | SaveKeyText db 'Save',0 |
||
961 | ;DeleteKeyText db 'Delete',0 |
||
962 | ;ManageKeyText db 'Manage',0 |
||
3993 | mario79 | 963 | |
3628 | fedesco | 964 | end if |
1815 | yogev_ezra | 965 | |
966 | hotkeys_num db 0;15 |
||
1900 | yogev_ezra | 967 | ;keyboard_mode db 0 ; Scan or ASCII keys to send ? 0 - ASCII , 1 - Scan |
1816 | yogev_ezra | 968 | butt db FIRST_ITEM_BUTTON_ID ; Pressed button ID |
1815 | yogev_ezra | 969 | modifiers dd 0 |
970 | |||
971 | ;Data structures for loadlib.mac and editbox_ex.mac [ |
||
972 | edit1 edit_box 350, 220, 30, 0xffffff, 0xAA80, 0x0000ff, 0x0, 0x0, PATH_MAX_CHARS+1, buf_cmd_line, 0, 0 |
||
973 | edit2 edit_box 350, 220, 50, 0xffffff, 0xAA80, 0x0000ff, 0x0, 0x0, PATH_MAX_CHARS+1, buf_cmd_params, 0, 0 |
||
974 | |||
1900 | yogev_ezra | 975 | buf_cmd_line dd 0 ;db MAX_HOTKEYS_NUM*PATH_MAX_CHARS dup(0) ; !Make it dynamic!!! |
976 | buf_cmd_params dd 0 ;db MAX_HOTKEYS_NUM*PATH_MAX_CHARS dup(0) ; !Make it dynamic!!! |
||
1815 | yogev_ezra | 977 | |
978 | sys_path: |
||
979 | system_dir0 db '/sys/lib/' |
||
980 | boxlib_name db 'box_lib.obj',0 |
||
981 | |||
3628 | fedesco | 982 | if lang eq it |
983 | err_message_found_lib db "Non trovo box_lib.obj",0 |
||
984 | head_f_i: |
||
985 | head_f_l db 'Errore di sistema',0 |
||
986 | err_message_import db 'Error di importazione di box_lib.obj',0 |
||
3994 | mario79 | 987 | ;-------------------------------------- |
3628 | fedesco | 988 | else |
989 | err_message_found_lib db "Can't find box_lib.obj",0 |
||
990 | head_f_i: |
||
991 | head_f_l db 'System error',0 |
||
992 | err_message_import db 'Error on import box_lib.obj',0 |
||
3993 | mario79 | 993 | |
3628 | fedesco | 994 | end if |
1815 | yogev_ezra | 995 | align 4 |
996 | myimport: |
||
997 | edit_box_draw dd aEdit_box_draw |
||
998 | edit_box_key dd aEdit_box_key |
||
999 | edit_box_mouse dd aEdit_box_mouse |
||
1000 | version_ed dd aVersion_ed |
||
1001 | dd 0,0 |
||
1002 | |||
9568 | IgorA | 1003 | aEdit_box_draw db 'edit_box_draw',0 |
1815 | yogev_ezra | 1004 | aEdit_box_key db 'edit_box_key',0 |
1005 | aEdit_box_mouse db 'edit_box_mouse',0 |
||
1006 | aVersion_ed db 'version_ed',0 |
||
1007 | |||
1816 | yogev_ezra | 1008 | align 16 |
1009 | importTable: |
||
1010 | library \ |
||
1011 | libini, 'libini.obj';, \ |
||
1900 | yogev_ezra | 1012 | ; boxlib, 'boxlib.obj', \ |
1013 | ; libio, 'libio.obj', \ |
||
1816 | yogev_ezra | 1014 | |
1015 | ;import boxlib, \ |
||
9568 | IgorA | 1016 | ;edit_box_draw , 'edit_box_draw', \ |
1816 | yogev_ezra | 1017 | ;edit_box_key , 'edit_box_key', \ |
1018 | ;edit_box_mouse , 'edit_box_mouse', \ |
||
1019 | ;version_ed , 'version_ed' |
||
1020 | |||
1021 | |||
1022 | import libini, \ |
||
1023 | ini_get_str ,'ini_get_str', \ |
||
1024 | ini_set_str ,'ini_set_str', \ |
||
1025 | ini_get_int ,'ini_get_int', \ |
||
1026 | ini_set_int ,'ini_set_int';, \ |
||
1027 | ; ini_get_color,'ini_get_color', \ |
||
1028 | ; ini_set_color,'ini_set_color' |
||
1029 | |||
1030 | |||
1815 | yogev_ezra | 1031 | ;] Data structures for loadlib.mac and editbox_ex.mac |
1032 | |||
1033 | InfoStructure: |
||
1034 | dd 0x0 ; subfunction number |
||
1035 | dd 0x0 ; position in the file in bytes |
||
1036 | dd 0x0 ; upper part of the position address |
||
1037 | dd 0x0 ; number of bytes to read |
||
1038 | dd 0x0 ; pointer to the buffer to write data |
||
1039 | db 0 |
||
1040 | dd 0 ; pointer to the filename |
||
1041 | |||
1042 | |||
1043 | I_END: ; End of application code and data marker |
||
1044 | |||
1045 | rb 300 ;input thread stack size |
||
1046 | input_thread_stack_top: |
||
1047 | |||
1048 | ascii_keymap: |
||
1049 | db 128 dup(?) |
||
1050 | ctrl_key_names db 'LShift LCtrl LAlt RAlt RCtrl RShift',0 |
||
1816 | yogev_ezra | 1051 | aPlus db ' + ',0 |
4099 | mario79 | 1052 | aIni db 'settings/mykey.ini',0 |
1816 | yogev_ezra | 1053 | aMain db 'main',0 |
1054 | aKeynum db 'keynum',0 |
||
1055 | aHotkey db 'hotkey',0,0,0 |
||
1056 | aName db 'name',0 |
||
1057 | aKeycode db 'keycode',0 |
||
1058 | aKeycodeName db 'keycode_name',0 |
||
1059 | aPath db 'path',0 |
||
1060 | aParam db 'param',0 |
||
1061 | aRamSaver db '/sys/rdsave',0 |
||
1815 | yogev_ezra | 1062 | |
1816 | yogev_ezra | 1063 | app_path rb 255 |
1064 | ini_path rb 255 |
||
1065 | |||
1900 | yogev_ezra | 1066 | Hotkeys: ;(name = 32 b) + (modifiers = 3 b) + (keycode = 1 b) = 36 byte for 1 hotkey |
1815 | yogev_ezra | 1067 | .names: |
1816 | yogev_ezra | 1068 | db 'My1',0 |
1069 | rb 28 |
||
1070 | db 'My2',0 |
||
1071 | rb 28 |
||
1072 | db 'My3',0 |
||
1073 | rb 28 |
||
1815 | yogev_ezra | 1074 | rb MAX_HOTKEYS_NUM*32-3 |
1075 | .codes: |
||
1076 | dd MAX_HOTKEYS_NUM dup (0) |
||
1816 | yogev_ezra | 1077 | .code_names: |
1078 | rb MAX_HOTKEYS_NUM*64 |
||
1079 | |||
1080 | it_ascii_keymap: |