/kernel/trunk/core/peload.inc |
---|
322,8 → 322,10 |
unmap_pages, 'UnmapPages', \ ; eax, ecx |
sys_msg_board_str, 'SysMsgBoardStr', \ |
get_timer_ticks, 'GetTimerTicks', \ |
get_stack_base, 'GetStackBase', \ |
delay_hs, 'Delay', \ ; ebx |
set_mouse_data, 'SetMouseData' |
set_mouse_data, 'SetMouseData', \ ; |
set_keyboard_data, 'SetKeyboardData' ; gcc fastcall |
/kernel/trunk/core/taskman.inc |
---|
1166,4 → 1166,13 |
ret |
endp |
align 4 |
get_stack_base: |
mov eax,[current_slot] |
mov eax,[eax+APPDATA.pl0_stack] |
ret |
include "debug.inc" |
/kernel/trunk/hid/keyboard.inc |
---|
94,12 → 94,34 |
pop eax |
ret |
align 4 |
set_keyboard_data: |
movzx eax,word[TASK_COUNT] ; top window process |
movzx eax,word[WIN_POS+eax*2] |
shl eax,8 |
mov al,[SLOT_BASE+eax+APPDATA.keyboard_mode] |
mov [keyboard_mode],al |
mov eax, ecx |
push ebx |
push esi |
push edi |
push ebp |
call send_scancode |
pop ebp |
pop edi |
pop esi |
pop ebx |
ret |
align 4 |
irq1: |
; save_ring3_context |
; mov ax, os_data |
; mov ds, ax |
; mov es, ax |
movzx eax,word[TASK_COUNT] ; top window process |
movzx eax,word[WIN_POS+eax*2] |
108,6 → 130,9 |
mov [keyboard_mode],al |
in al,0x60 |
send_scancode: |
mov [keyboard_data],al |
; ch = scancode |
310,11 → 335,6 |
.exit.irq1: |
mov [check_idle_semaphore],5 |
; mov al,0x20 ; ready for next irq |
; out 0x20,al |
; restore_ring3_context |
; iret |
ret |
set_lights: |
/kernel/trunk/kernel32.inc |
---|
144,7 → 144,7 |
.ev_count_ dd ? ;unused ;+20 |
.exc_handler dd ? ;+24 |
.except_mask dd ? ;+28 |
.pl0_stack dd ? ;unused ;+32 |
.pl0_stack dd ? ;+32 |
.heap_base dd ? ;+36 |
.heap_top dd ? ;+40 |
.cursor dd ? ;+44 |