Browse Prior Art Database

Method to Provide Low-Cost Keyboard Support

IP.com Disclosure Number: IPCOM000061243D
Original Publication Date: 1986-Jul-01
Included in the Prior Art Database: 2005-Mar-09
Document File: 2 page(s) / 15K

Publishing Venue

IBM

Related People

Davenport, SC: AUTHOR [+4]

Abstract

A method is described which provides a unique way to lower the power drain and product cost of a Personal Computer (PC) by moving the keyboard processing inboard into the main processor and eliminating the outboard keyboard processor. To an application program the keyboard interface is identical to that of a PC with an outboard controller including the generation of a hardware interrupt 1 request when scan codes are ready in PORT 60H. A 16 position scan code queue is also provided to prevent keystrokes from becoming lost when keys are pressed when programs have level 1 interrupts masked. The described implementation is specific to the IBM PC family of products where the keyboard interface is provided at port 60H and a data ready level 1 interrupt request is generated to the main processor.

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

Page 1 of 2

Method to Provide Low-Cost Keyboard Support

A method is described which provides a unique way to lower the power drain and product cost of a Personal Computer (PC) by moving the keyboard processing inboard into the main processor and eliminating the outboard keyboard processor. To an application program the keyboard interface is identical to that of a PC with an outboard controller including the generation of a hardware interrupt 1 request when scan codes are ready in PORT 60H. A 16 position scan code queue is also provided to prevent keystrokes from becoming lost when keys are pressed when programs have level 1 interrupts masked. The described implementation is specific to the IBM PC family of products where the keyboard interface is provided at port 60H and a data ready level 1 interrupt request is generated to the main processor. This method, however, could be applied in other instances where outboard processing needs to be moved inboard while maintaining the same functional interfaces to the programs running in the main processor. In the IBM PC the outboard keyboard controller signals the main processor that a key's scan code is ready to be read by signalling a level 1 system interrupt. A BIOS routine in the system ROM or a routine in the application program is activated by this interrupt and reads the scan code from an input I/O port at address 60H. The routine signals the outboard keyboard controller that port 60H may be loaded with the next key, if any is available, by setting and resetting a clear keyboard bit in port 61H. The interrupt generated by the keyboard controller is maskable by system software, and a keyboard buffer of 16 scan codes is provided in the keyboard controller to hold keys depressed while the interrupt is masked. The new method involves a mechanism to perform the keyboard scan code interpretation and translation in the main system processor while providing the same functional interface to the application program routine that is activated by a level 1 interrupt. This arrangement consists of both hardware and software. The hardware provides the following functions: 1) A circuit to scan the columns of a keyboard matrix and recognize a sense line change indicating a key change (depression or release). 2) A circuit to wait 5 msecs after the change was detected and to verify that the change is still present. This provides a key debounce function. 3) A circuit to place the row/column number of the key in an I/O register and generate a Non-Maskable- Interrupt (NMI) request to the main processor. 4) A circuit to provide an 8-bit holding register at I/O address 60H that, when written to by the processor, generates a level 1 system interrupt. 5) A circuit to generate a second NMI when the application program has set and reset the clear keyboard bit in Port 61H. This circuit holds the second NMI request pending until processing has been completed by the routine activated by any previous level 1 interrupt. The micr...