/ / Zapnite / vypnite klávesnicu PS / 2 Caps Lock LED v vlastnom jadre - c, montáž, klávesnica, jadro

Zapnite / vypnite klávesnicu PS / 2 Caps Lock LED v užívateľskom jadre - c, montáž, klávesnica, jadro

Rozvíjam jadro s montážou a C a v procese zavádzania, chcem, aby jadro otočilo tlačidlo uzamknutia Caps off potom som našiel odkaz na LED na kľúči tu, Ako môžem túto funkciu nazývať C alebo montážou (nasm štýl)?

odpovede:

1 pre odpoveď č. 1
SetKeyBoardLeds:
push  eax
mov   al,0xed
out   60h,al
KeyBoardWait:
in    al,64h
test  al,10b
jne   KeyBoardWait
mov   al,byte [keyBoardStatus]
and   al,111b
out   60h,al
pop   eax
ret

napr:

   mov   [keyBoardStatus],0xb0    ; Initialise keyboard LED state
call  SetKeyBoardLeds
;--------------------------------- This will toggle CapsLock LED
xor   [keyBoardStatus],4
call  SetKeyBoardLeds
;---------------------------------
and   [keyBoardStatus],0xfb
call  SetKeyBoardLeds

kde keyBoardStatus je bajt (bude držať aktuálny stav LED klávesnice).


0 pre odpoveď č. 2

Môžeš čítať môj kód na zmienku: irq_ex2.c: Príklad obsluhy prerušenia. Tento kód sa viaže na IRQ 1, čo je IRQ klávesnice ovládanej podľa architektúry Intel. Potom, keď prijme prerušenie klávesnice, číta informácie o stavovom svetelnom a kódovom kóde do pracovnej fronty. lisovania:

  • ESC ---> Caps Lock Vypnuté

  • F1, F2 ---> Caps Lock ON