How can I read the ACK sent by keyboard ?

I’m not expert in driver development and I need your help. I’ve studied
hard on Peter Viscarola and Chris Cant books, but I still don’t have a
good comprehension about this matter.

My Picture:
I have a customized programmable keyboard.
To program it, I need to send a data packet to the keyboard, as follows:
I send one byte each time and wait for the keyboard acknowledge to confirm
if the this byte was received successfully.
I need it to allow my software to inform the user if a problem has
happened during data transmission.
For Win95/98 I do this by altering de VKD.vxd code.

My problem:
When I hook the keyboard, the ACK never comes, probably because it’s not
loaded in the buffer by i8042prt.
I used Numega Driver Agent to build my driver, but I cannot capture IRQ 1
(Keyboard).

My Questions:
Is impossible hook IRQ 1 using driver tools as DriverAgent ?
Is there any way to allow my driver to receive the ACK ?
Any suggestions ?

I would appreciate very much your help. Thanks in advance.

Best Regards

Wilson

You can easily do what you want by installing a device upper filter on
the ps/2 keyboard. Look at the kbdfiltr example in the DDK. You can
install an ISR hook and look at each byte that comes back from the
controller, but if all you need to do is write a series of bytes where
each byte is ACK’ed by the keyboard, you can send an IOCTL,
IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER, to i8042prt and it will do
all the work for you.

D

This posting is provided “AS IS” with no warranties, and confers no
rights

-----Original Message-----
From: Wilson Bernardes [mailto:xxxxx@fourth.com.br]
Sent: Friday, May 24, 2002 10:49 AM
To: NT Developers Interest List
Subject: [ntdev] How can I read the ACK sent by keyboard ?

I’m not expert in driver development and I need your help. I’ve studied
hard on Peter Viscarola and Chris Cant books, but I still don’t have a
good comprehension about this matter.

My Picture:
I have a customized programmable keyboard.
To program it, I need to send a data packet to the keyboard, as follows:
I send one byte each time and wait for the keyboard acknowledge to
confirm
if the this byte was received successfully.
I need it to allow my software to inform the user if a problem has
happened during data transmission.
For Win95/98 I do this by altering de VKD.vxd code.

My problem:
When I hook the keyboard, the ACK never comes, probably because it’s not
loaded in the buffer by i8042prt.
I used Numega Driver Agent to build my driver, but I cannot capture IRQ
1
(Keyboard).

My Questions:
Is impossible hook IRQ 1 using driver tools as DriverAgent ?
Is there any way to allow my driver to receive the ACK ?
Any suggestions ?

I would appreciate very much your help. Thanks in advance.

Best Regards

Wilson


You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to %%email.unsub%%