Browse Prior Art Database

Simulation of Keystrokes Without Requirements for Host Assistance or Mechanical Means

IP.com Disclosure Number: IPCOM000035267D
Original Publication Date: 1989-Jun-01
Included in the Prior Art Database: 2005-Jan-28
Document File: 3 page(s) / 17K

Publishing Venue

IBM

Related People

Bealkowski, R: AUTHOR [+5]

Abstract

This article describes techniques which will satisfy the condition of having a correct keystroke value in the proper port and an interrupt without human or mechanical presence.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 34% of the total text.

Page 1 of 3

Simulation of Keystrokes Without Requirements for Host Assistance or Mechanical Means

This article describes techniques which will satisfy the condition of having a correct keystroke value in the proper port and an interrupt without human or mechanical presence.

There have been previous attempts to satisfy the concept of simulating keystrokes without human or mechanical presence. All have revolved around providing input when asked for. However, since the advent of personal computers (PCs) has come a class of programs known as hot-key programs. These programs wait for certain key combinations and upon receiving them, will change the computing environment. This class of programs cannot use other methods for simulating keystrokes. However, the technique of this disclosure will work with this class of programs as well as any program imaginable that requires keyboard input. A keyboard port that can be written as well as read by the host system is required as well as a keyboard interrupt that can be initiated by software. When initiated by software, the interrupt must be of equal or higher priority to the existing keyboard interrupt.

Another condition to satisfy is a software-initiated keyboard interrupt. To provide for this requires some knowledge of the Intel* 8042, 8253, and 8259 support chips. These chips will be necessary in some implementations disclosed herein.

In a PC system where an 8042 microcontroller is used to interface to the keyboard, the 8042 serializes and deserializes data between the system and the keyboard as well as performing other functions.

The 8253 is a timer chip. It enables the PCs to interrupt the machine at an average of 18.2 times each second. The 8259 is a priority interrupt processing chip. It allows multiple interrupts to occur and allows their processing according to a predetermined order. In some PCs keyboard activity is placed at priority 1, timer activity is priority O, all on a scale of O (highest priority) to 7 (lowest priority).

The criteria for simulating keystrokes involves the operation of a background task. This task is independent of any host application and is the source of the keystroke data which is to be simulated. First the task determines that the time is appropriate to pass a keystroke to the host. Standard semaphore techniques are used to ensure that the hardware or basic input output system (BIOS) is in a ready state as appropriate. Next, the task writes the host keyboard port with the keystroke data. Once written, the software initiates an interrupt that will be recognized by the host as a keyboard interrupt. This interrupt can be created by either software means or hardware means (e.g., a keyboard controller). Once the interrupt is created, the keystroke will appear to have originated from the keyboard.

There are several essential elements required. They are a writable keyboard port (either directly or indirectly) and a keyboard interrupt that can be initiated by software.

1

Page 2...