Browse Prior Art Database

Keyboard Driver for Personal Computer

IP.com Disclosure Number: IPCOM000038911D
Original Publication Date: 1987-Mar-01
Included in the Prior Art Database: 2005-Feb-01
Document File: 4 page(s) / 40K

Publishing Venue

IBM

Related People

Pham, XN: AUTHOR [+2]

Abstract

A software keyboard driver (KDRIVE) is described that is simple to set up and run. It is hardware independent and does not require any hardware experience to set up or to use. In addition, its parameters are under software control so they can be changed easily. Traditionally, keyboard simulation is done with hardware drivers. These drivers are expensive and require physical connections between devices. Usually, their setups are time consuming and tedious. Additionally, the steps taken to drive a workstation are lengthy and complicated. Before an operator can follow correctly these steps, he normally has to spend a large amount of time to learn the driver's physical interconnection configuration which often intimidates a non- hardware engineering person. Moreover, the hardware driver's parameters are fixed.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 42% of the total text.

Page 1 of 4

Keyboard Driver for Personal Computer

A software keyboard driver (KDRIVE) is described that is simple to set up and run. It is hardware independent and does not require any hardware experience to set up or to use. In addition, its parameters are under software control so they can be changed easily. Traditionally, keyboard simulation is done with hardware drivers.

These drivers are expensive and require physical connections between devices. Usually, their setups are time consuming and tedious. Additionally, the steps taken to drive a workstation are lengthy and complicated. Before an operator can follow correctly these steps, he normally has to spend a large amount of time to learn the driver's physical interconnection configuration which often intimidates a non- hardware engineering person. Moreover, the hardware driver's parameters are fixed. They cannot be changed on the fly. The new program arrangement consists of two phases - SCAN and DRIVE. Input to the SCAN phase is a Script-like file containing keystrokes that the operator wants entered, keyboard controls such as SHIFT and ESCAPE, and execution controls such as keying rates and pauses. Any illegal controls and keystrokes will be discarded at this time. The output of this phase is a binary file containing scan codes of the keystrokes and other control information. The binary file is in a form such that, byte by byte, it can be sent to a keyboard interrupt handler (09h), just as interrupts come from a real hardware keyboard.

The main purposes of the SCAN phase are: a. To convert an ASCII keystroke scenario file into a

binary file containing scan codes and execution

codes.

b. To filter out illegal keystrokes, keyboard

controls, and execution controls.

c. To reduce overhead in the driving phase. Input to the DRIVE phase is the scan code file from the previous phase. AT each timer tick (every

54.9 milliseconds), the program becomes active,

processes one byte, and decides whether to send it to

the software keyboard interrupt handler. This action

is repeated until the end of the scan code file or the

software activation switch is turned off. If it is deactivated by the software switch, it becomes active again with a Print-Screen Key interrupt from the keyboard. Thus, it is a complex piece of software which interacts with different hardware interrupts - timer interrupt, print-screen interrupt, and keyboard interrupt. One major objective is to drive a workstation fast with minimum overhead. To meet this objective, the most time consuming job is done in the SCAN phase. In this phase, most keystrokes are converted into one-byte scan codes. In reality, every keystroke from a keyboard will generate two scan codes - one for a MAKE, and one for a BREAK. However, most of the time, the BREAK is filtered out in the keyboard interrupt handler (09h). Therefore, it is not necessary to generate two scan codes, a MAKE and a BREAK, for every keystroke. This technique significantly reduces the stor...