Re: Эмулятор клавиатуры
Posted: Fri Sep 11, 2009 1:43 pm
Если не секрет , какими?
Code: Select all
sys_cpuusage:
; .................................................................
; Event mask (+71)
mov EAX, dword [ECX+CURRENT_TASK+TASKDATA.event_mask]
stosd
+ ; Keyboard mode (+75)
+ mov al, dword [ecx*8 + SLOT_BASE + APPDATA.keyboard_mode]
+ stosb
pop esi
pop edi
; .................................................................
Code: Select all
draw_window:
test byte [red_type], 1
jnz @f
test byte [red_type], 2
jnz .draw_switch_button
start_draw_window 100,370,600,210,0x14224466,labelt
Code: Select all
still:
call get_receiver_window_slot_number
+ call get_receiver_window_keyboard_mode
+ call set_keyboard_mode
+ ; delete_switch_button
+ mov eax, 8
+ mov edx, 0x80700000
+ int 0x40
+ call draw_window.draw_switch_button
Code: Select all
.draw_switch_button:
mov eax, 6
mul byte [keyboard_mode]
add eax, SwitchText
stdcall draw_button, 513,28,46,20,106,0x00700000,eax,6,TEXTCOLOR ; Scan/ASCII switch
@@:
.draw_indicators_area:
call lights_on
+ xor al, al
+ xchg al, [red_type]
mov byte [red_type], 0
+ test al, 2
+ jnz .skip_end_draw_window
end_draw_window
+ .skip_end_draw_window:
В документации написано:Mario_r4 wrote:Хотя теоретически все приложения выделяют полный размер под буфер.
======================================================================
============= Функция 9 - информация о потоке выполнения. ============
======================================================================
Параметры:
* eax = 9 - номер функции
* ebx = указатель на буфер размера 1 Кб
Code: Select all
* В данный момент используется только часть буфера размером
71 = 0x47 байта. Тем не менее рекомендуется использовать буфер
размером 1 Кб для будущей совместимости, в будущем могут быть
добавлены некоторые поля.
А в kernel.asm:Mario_r4 wrote:А еще там:
Код:
* В данный момент используется только часть буфера размером
71 = 0x47 байта.
То есть, 75 на самом деле.; Event mask (+71)
mov EAX, dword [ECX+CURRENT_TASK+TASKDATA.event_mask]
stosd