google est ton ami.
sinon, les int 16h du bios sont legerement pourraves, il est preferable de recoder l'irq 1, int9 en mode reel.
pour cela, il suffit tout simplement de reassigner le vecteur 9 de la table d'interruptions.
le code commence par une sauvegarde des registres modifiés, puis, une verification de presence de nouveau scancode avec le port 64h. ensuite, lire le port 60h, le passer dans une look up table. ensuite, verifier si c'est un make code, un break code ou un extended code.
ensuite, en faire ce qu'on veu puis dire au pic que l'irq à bien été traitée. etrestauration des registres puis iret.
pour de plus amples informations, voire sur ce site http://board.flatassembler.net ou ce site http://www.osdev.org
voilà
|