Hi,
I've created a keyboard driver in asm that interacts directly with IO ports 60h and 64h. It works fine with a PS\2 keyboard.
Although every manual states that USB keyboards work by emulation of a PS\2 like behaviour in order for the processor to be able to interact with it, my routine...
the port 21h is the port to the mask register of the master PIC. My routine is supposed to poll for characters, while IRQ disabled, change them, and send the changed scan code to the OS.
The problem is that if I type too quickly, it seems the processor can't follow. When this happens, some...
I found a way to bypass the problem, I use function 02Dh to send to IO port 64h, and this way I write anything I want in output of the 8042.
Actually, my program polls for data in output of the keyboard (not the best way, that's sure).
Only problem, I use this to mask IRQ1
in al, 21h
or...
Yes, once I enter in Kernel Mode, I can easily mask IRQ1 on the PIC and do what ever I want directly whith IO ports 60 and 64 of the 8042 controller. Only problem, I have to, after that, send the carachters to the OS. Three possibilities :
- trigger int 9 : not allowed
- trigger int 16 : not...
does anyone know why int 16h is impossible to execute in protected mode. It crashes the system , and the line says "EXCEPTION_KERNEL_MODE_TRAP.
If it's possible to make it work, please reply.
Thanks a lot.
Nico.
does anyone know which entry of the IDT corresponds to IRQ1 (keyboard interrupt) in W2K/XP?
I'm puzzled. I've seen some doc that states that it corresponds to the 31st entry, but my Interrupt handler is never called. I'm just trying to delete whatever first keystroke has been hit in the first...
Hi everyone,
thx for all the help.
For your information, I found a great Kernel Mode Driver Development Kit, written by Four-F. It's in assembly, and really easy to use and to understand :
http://masmforum.com/website/tutorials/kmdtute/index.html
Take care.
Nico.
Something weard is happening. I'm trying (for debugging) to put the correct offset in the 33rd interrupt gate of the IDT. I intialize a variable called IDT33_offset.
This code doesn't work :
Chg_Init_Int33 proc near
push eax
push ebx...
On todays computers (windows 2k and XP) , does any one know to which interrupt in the IDT the IRQ 1 (keyboard interrupt) corresponds?
I found several sources that were contradictory. If you have a great website that gives it all, that would be great. Rq : Ralph Brown's interrupt list isn't up...
Hi again,
I'm buiding a Kernel-Mode driver, based on an article from the Assembler Journal (you might know it). The Development Kit they propose obliges me to include the files ntddk.inc and ntstatus.inc. UNfortunately, they don't provide the second one, assuming it is already in masm32. It is...
Thanks Mike,
after further readings, I come to the conclusion that writing a kernel-mode driver is the only way around it.
I found some sources that access to Ring 0 whithout driver, but they seem unfaithfull and surely system damaging. In addition, they usually tend to make the system...
Thanks rwong,
but actually I am trying to build an application (which would open from windows) that could acces directly the data from the keyboard, as it could have been easy to do with the old processors by writing my own int 9 interrupt handler.
Unfortunately, this seems quite difficult to...
Hi,
I'm trying to build an interrupt handler that directly accesses hardware, patching into the original interrupt handler (int 9). While reviewing documentation on the subject, it appears that actual windows operating systems, working in protected mode, won't allow me to:
- use the cli and...
Hi,
I am working on an assembly routine that interacts with the PS/2 keyboard inputs through the I/O ports 60h and 64h (to use with IRQ1 - int 16h).
I would like to do the sams qith a USB keyboard. I've read a big part of the USb anbd HID spec's, which helped me understand the data...
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.