Browse Prior Art Database

Method of Testing a Keyboard Controller on a Computer Without Involving the Operator

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

Publishing Venue

IBM

Related People

Davenport, C: AUTHOR [+2]

Abstract

A method is described to test a computer keyboard controller on each power-on without requiring key depression by the operator. The IBM Convertible Personal Computer utilizes reduced logic in the keyboard controller to save space and power. In previous personal computers a dedicated CPU is used as the keyboard controller with additional logic to scan all key positions and detect key changes. Diagnostics usually require that each key be depressed by the operator and visually verified by depiction of the depressed key on the display. The keyboard controller in the IBM Convertible has no dedicated processor. Instead, it consists of logic to sequentially drive each column line on the keyboard and sense each row line coming back from the keyboard.

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 46% of the total text.

Page 1 of 4

Method of Testing a Keyboard Controller on a Computer Without Involving the Operator

A method is described to test a computer keyboard controller on each power-on without requiring key depression by the operator. The IBM Convertible Personal Computer utilizes reduced logic in the keyboard controller to save space and power. In previous personal computers a dedicated CPU is used as the keyboard controller with additional logic to scan all key positions and detect key changes. Diagnostics usually require that each key be depressed by the operator and visually verified by depiction of the depressed key on the display. The keyboard controller in the IBM Convertible has no dedicated processor. Instead, it consists of logic to sequentially drive each column line on the keyboard and sense each row line coming back from the keyboard. A row line sensed to be in the same logic state as the driven column line indicates that a key is depressed at the intersection of the two lines. A current-state flip-flop exists in the controller for each key on the keyboard. This flip-flop stores the current state of the key. If the flip-flop is set, the key is depressed; if reset, the key is not depressed. The column counter and row sense line are used to select the particular flip-flop for that key. If the current state of the key does not match that of the flip-flop, a key change is indicated. At this time, a 5-millisecond debounce timer is activated, and at the end of that period, if the change is still there, the new state is considered valid. At that time, the new state of the key is clocked into the flip- flop and the column and row coordinate is loaded into a register to be sensed by the system CPU. An interrupt is generated at this time to inform the processor that a scan code is ready. If the flip-flop was reset, meaning the key was released, a break bit is set in the scan code register. If the flip-flop was set by the detection of the change, a typamatic timer is then started. If no other key has been depressed when the typamatic delay has expired, and the original key is still held down, a second interrupt is presented to the CPU. The initial typamatic interval is 500 milliseconds. Once this time is reached, successive interrupts are sent to the processor every 100 milliseconds if no other keys are depressed and the original key is not released. All queueing and translation of the scan codes is done by the system CPU. This method involves both hardware and software to diagnostically test the operation of the keyboard controller as described in the preceding history section. A method was required to test all parts of the keyboard control logic without requiring the operator to depress each key. This test had to be fast and unattended since it is run during each system power-on. The goal of the test was to test each flip-flop, column drive logic, row sense logic, and the 5-msec. debounce, 500- msec. typamatic delay, and 100-msec. delay timers. A d...