Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
KEYBOARD
Document Type and Number:
WIPO Patent Application WO/1990/013179
Kind Code:
A1
Abstract:
A keyboard (100) provides a means for locking (105) the code transmission from a multi-code key to transmit only a single code to a computer or terminal. The keyboard also provides a set of auxiliary function keys (103) providing a less cumbersome user interface, including a means for configuring such auxiliary function keys to transmit the same function code as if the corresponding standard function key (102) were pressed in combination with a function modifier key (14). The keyboard also provides a means to alter the repeat rate and the delay rate of the keys of the keyboard, as well as a print screen key that does not print the contents of the screen when inadvertently pressed. Furthermore, the keyboard is capable of emulating Dvorak keyboard layouts. Finally, there is provided a means for downloadable software control of the above features.

Inventors:
LAZERE ARTHUR B (US)
KNILANS BRADLEY N (US)
BOSCH CHRISTOPHER J (US)
INGOLD WILLIAM E (US)
Application Number:
PCT/US1990/001821
Publication Date:
November 01, 1990
Filing Date:
April 04, 1990
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NORTHGATE COMPUTER SYSTEMS INC (US)
International Classes:
G06F3/023; (IPC1-7): H03K17/94
Foreign References:
US3973256A1976-08-03
US4680577A1987-07-14
US4823311A1989-04-18
US4844637A1989-07-04
Attorney, Agent or Firm:
Schumann, Michael D. (Gould Smith, Edell, Welter & Schmidt, 3100 Norwest Center, 90 South Seventh Stree, Minneapolis MN, US)
Download PDF:
Claims:
WHAT IS CLAIMED IS:
1. A keyboard used to communicate with an external device, comprising: 5 a plurality of function modifier keys; ϋ plurality of function keys, wherein each of said %function lceys performs one of a plurality of functions determined by whether a function key is pressed alone or in ' combination with one of said function modifier keys; © , a plurality of auxiliary function keys, wherein each of said auxiliary function keys corresponds to one of said <■ function keys; and function selection key means for causing each of said % auxiliary function keys to perform the function that the 5 corresponding function keys would perform if pressed in combination with one of said function modifier keys.
2. A keyboard according to claim 1 wherein said function modifier keys include at least one "Shift" key, "Ctrl" key 0 and "Alt:" ,key.
3. _*&. keyboard according to claim 1 wherein a multicode key capable of transmitting multiple codes, including a period code to the external device is locked by a locking 5 code key such that said multicode key sends a period code ' to the external device, regardless if a function modifier key is also pressed.
4. A keyboard according to claim 1 wherein a multicode 0 key capable of transmitting multiple codes, including a commaoode to the external device is locked by a locking cod§ key such that said multicode key sends a comma code to the external device, regardless if a function modifier key is also pressed. 5 .
5. A keyboard according to claim 3 and 4 wherein said locking code key is a toggle, such that the pressing of said locking code key a second time returns said multicode key to an unlocked position.
6. A keyboard according to claim 1 further comprising a rate select key for adjusting the rate at which a depressed key when held down repeats the transmission of a corresponding code from said depressed key to the external device.
7. A keyboard according to claim 1 further comprising a delay select key for adjusting the time delay between when a key is depressed and when a corresponding code repetition commences from said key to the external device.
8. A keyboard according to claim 6 and 7 wherein said rate select key and said delay select key comprise one and the same combined select key.
9. A keyboard according to claim 8 wherein the combined select key when pressed in combination with a function key alters the repeat rate of said keys, while the pressing of said combined select key followed by depressing and holding down of a function modifier key in combination with a function key alters the delay rate of said keys.
10. A keyboard according to claim 9 wherein the repeat rate and the delay rate are set according to Table 2 herein.
11. A keyboard according to claim 1 further comprising a print screen key which must be depressed twice in succession before a code is transmitted to the external device.
12. A keyboard according to claim 1 further comprising an emulation mode for Commodore Amiga computers. y.
13. A keyboard according to claim 12 wherein said emulation mode for Commodore Amiga computers is selected by at least one manually switchable mode select switch on said keyboard.
14. A keyboard according to claim 13 where said emulation mode for Commodore Amiga computers is set according to Table 1 herein.
15. A keyboard according to claim 1 further comprising emulation means for emulating multiple keyboard layouts.
16. A keyboard according to claim 15 wherein said multiple keyboard layouts includes at least one Dvorak keyboard layout.
17. A keyboard according to claim 16 wherein said Dvorak keyboard layout is substantially as shown in Figure 17 herein.
18. A keyboard according to claim 16 wherein said Dvorak keyboard layout is substantially as shown in Figure 18 herein.
19. A keyboard according to claim 15 wherein said emulation means is activated by at least one manually switchable mode selection switch on said keyboard.
20. A keyboard according to claim 1 further comprising five directional arrow keys, wherein said five directional arrow keys comprise a center key and four peripheral keys with one of each of said peripheral keys being located on each side of said center key, and wherein said four peripheral keys serve as up, down, right and left arrow keys, and further wherein said center key serves as a down arrow key.
21. The keyboard according to claim 20 wherein said center key is an "OMNI" key substantially as shown in FIG. 13 herein.
22. A keyboard according to claim 1 further comprising software control means for downloadable software control of one or more customized keyboard features.
23. A keyboard according to claim 22 wherein said customized keyboard features include comma/period locking code means, layout selection means and function key selection means.
24. A keyboard capable of emulating multiple keyboard layouts comprising: a keyboard with a plurality of keys; emulation means for emulating said multiple keyboard layouts; and activation means for causing said plurality of keys of said keyboard to emulate said, multiple keyboard layouts.
25. A keyboard according to claim 24 wherein said activation means comprises at least one manually switchable mode selection switch on said keyboard.
26. A keyboard according to claim 24 wherein said activation means comprises downloadable software control means for receiving an activation code from a microcomputer.
27. A keyboard according to claim 24 wherein said multiple keyboard layouts include at least one Dvorak keyboard layout. 34 .
28. A keyboard according to claim 27 wherein said Dvorak ^keyboard layout is substantially as shown in Figure 17 herein.
29. 5 _.
30. A keyboard according to claim 27 wherein said Dvorak keyboard layout is substantially as shown in Figure 18 herein.
31. 10 30. A keyboard according to claim 24 wherein said emulation means is located within the processor of said keyboard.
32. keyboard according to claim 30 wherein said 15 emulation means within said processor of said keyboard is capable of recognizing and receiving data representing said .multiple keyboard layouts from software residing in the memory of an attached microcomputer, and wherein the attached microcomputer contains downloadable software 20 control means for downloading said data representing said multiple keyboard layouts to said keyboard.
33. A keyboard capable of recognizing and receiving one or more downloadable customized keyboard features from 25 software residing in the memory of an attached microcomputer comprising: a keyboard; and keyboard control means located in the memory of said keyboard for recognizing and receiving at least one 30 downloaded customized keyboard feature from software residing in the memory of an attached microcomputer and configuring said keyboard according to said at least one of said downloadable customized keyboard feature.
Description:
KEYBOARD

Field of the Invention

The present invention relates to a keyboard for use on a computer or a terminal. More particularly, the present invention relates to a keyboard design which can operate on a wide variety of different computer systems, provides multikey rollover, and corrects a keyboard response problem associated with certain multitasking environments. In addition, the present keyboard provides means for controlling the repeat rate and delay rate of the keys of the keyboard, provides a means for locking the code transmission of a multicode key to transmit only one code, provides a means for configuring the- function of the function keys, regulates the print screen function, provides alternative Dvorak keyboard layouts and provides for downloadable software control of the above features.

Background of the Invention In the field of personal computers, data is entered into the computer by way of a keyboard. Keyboards are designed specifically for the type of computer they are intended to be used on. Since the communication protocol between computers and keyboards is not standardized, a keyboard cannot be moved from one type of computer to another. For example, the IBM PC type of computers use a "data and clock" communication protocol, with separate data and clock signals. Apple Macintosh computers use a "self- clocked data" communication protocol, with one signal containing both data and clock information. Keyboards designed to use only one of these protocols cannot be used with the other protocols. Consequently, users who must use more than one type of computer cannot have identical keyboards on them. On different keyboards, it is typical for the keys to be placed dif erently and for the keyboards to "feel" different when typed upon. These differences can lead to input errors and inefficient use as the user

readjusts to a different keyboard when switching computers.

Additionally, keyboard manufacturers must build a different keyboard for every type of computer they intend to supply keyboards for, increasing the manufacturing costs. Aside from the usual keys for alphabetic characters, numbers, and punctuation marks, computer keyboards also provide keys for special characters and functions. They typically have a number of function keys, whose function is determined by the program being run on the computer. There are usually ten, twelve, or fifteen function keys, labeled

Fl through F10, F12, or F15. On some computers, each function key can perform up to four different functions, depending, for example, upon whether the key is pressed alone or in combination with a function modifier key such as a "Shift", "Ctrl", or "Alt" key. While this allows relatively few keys to perform relatively many functions, the consequence is that most functions require two keys to be pressed, jpbis results in a cumbersome user interface that can cause i _ntefficient use. Prior art keyboards may exhibit a response problem in some multitasking environments, such as when the computer to which the keyboard is connected is being used as a nondedicated network file server. An example of such a nohdedicated network file server is a computer running with NOVELL'S Entry Level System (ELS) or NOVELL NETWARE in the nondedicated file server mode. A keyboard's transmission of data to the file server may be aborted by the network operating software so as to perform other tasks. The keyboard then waits a delay amount before again attempting to transmit the data. This can happen several times before a successful transmission to the computer, and several keystrokes may be queued, waiting to be sent. When the keyboard is finally able to transmit data to the computer, these stored up keystrokes appear all at once. To the user, the data appears on the screen in bursts, rather than

appearing as it is typed. In extreme cases, keystrokes may actually be lost.

Prior art keyboards such as disclosed in U.S. Patent Nos. 4,420,744 and 4,581,603 have provided a multikey rollover feature. This feature allows the keyboard to send correct data even when multiple keys are pressed at the same time. This situation occurs often when typing quickly. However, because the keyboard's key switches are arranged in a matrix, there are certain combinations of pressed keys which cannot be correctly handled. A key which has not been pressed may appear to the keyboard's processor to have been pressed. This "phantom" key must not be sent to the computer. Prior art methods of addressing the "phantom" key problem include isolation diodes on all key switches, and software routines to detect the phantom key condition and not transmit data to the computer until the condition clears. The diode approach adds cost and decreases the reliability of the keyboard. Software routines that proceed on a line by line basis without analyzing the entire matrix, will not transmit data during some phantom key conditions, but may also not transmit data in may cases where in fact no phantom key condition exists. They also may transmit data to the computer when a transient phantom key condition exists. Other software routines require that the entire key switch matrix be copied into the processor memory before determining whether the phantom condition exists. This requires a substantial amount of memory to be allocated to storing one or more copies of the switch matrix. In the types of processors typically used for keyboards, RAM is often a limited resource and there may not be enough available for the task.

The cumbersome arrangement and means of controlling many computer keyboards can result in inefficient use. For example, typically the period key is also capable of

transmitting a greater than symbol (>) , and the comma key is also capable of transmitting a lesser than symbol (<) , when pressed in combination with the shift key. With fast typists, such an arrangement often results in the greater than and lesser than symbols being inappropriately substituted for periods and commas, e.g. such that U.S.A. becomes U>S>A>.

Another problem in this regard is that computer keyboards are unresponsive to the typing rate and touch of individual typists. Thus, the rate at which a depressed key repeats its transmitted code, or the delay between when a key is depressed and when code repetition commences, may be suitable for one typist but be inappropriate for another. Adjustments in rate and delay typically require the cumbersome and time consuming process of modifying the defaults in the particular word processing program or other program resident in the computer.

Another problem with keyboards is that the print screen key can be inadvertently pressed while typing. Therefore, if the printer is in an activated mode when the print screen key is accidentally pressed, the user prints out an undesired version of the screen display. In addition, if the printer is in a deactivated mode and/or not connected to the computer when the print screen key is accidentally pressed, the computer system may lock-up, thus requiring the user to reset the system before continuing to type. Often, in such a instance, much of the prior typed material is lost and must be re-entered.

Another disadvantage with most keyboards is that they cannot emulate the Dvorak keyboard layouts which provide enhanced keyboard layouts for more efficient typing. Thus, many typists who are trained on Dvorak layouts are unable to utilize these more functional and efficient configurations unless they replace their standard keyboard with a keyboard having a Dvorak layout.

A further problem is that most keyboards only incorporate one set of function keys from Fl through F10, F12 or F15. On some keyboards, each function key can perform up to four functions, depending, for example, upon whether the function key is pressed alone or in combination with a function modifier key such as the "Shift", "Ctrl" or "Alt" keys. In addition, even if a keyboard incorporates an auxiliary set of function keys, the need to perform most of the functions by pressing two keys or more results in a cumbersome user interface that can cause inefficient use.

A final problem associated with computer keyboards is that they provide for limited system control of customization features. For example, while some keyboards provide for system control of the key rate and delay features, many of the other customization features, including those described above, if provided, need to be reset each time the computer and keyboard are turned on. Thus, a user must spend an inordinate amount of time at the beginning of each computing session adjusting the particular configurations desired, thereby resulting in inefficient use.

It is clear that there has existed a long and unfilled need in the prior art for a. computer keyboard that can function on multiple types of systems. There are also unfilled needs for a less cumbersome function key arrangement, better keyboard response characteristics in multitasking environments, and for improved "phantom" key detection in an multikey rollover feature. It is also clear that a long and unfilled need exists for a computer keyboard capable of being customized to a particular user interface, including providing for adjustment at the keyboard of the repeat rate and delay rate of the keys of the keyboard, providing a means for locking the code transmission of a multicode key to transmit only one code, providing a means for configuring the function of the function keys, regulating the print screen function,

providing alternative Dvorak keyboard layouts, and providing for downloaded software control of these features, thereby obviating the need to re-customize the keyboard each time it is turned on. The present invention 5 solves these and other problems.

SUMMARY OF THE INVENTION Accordingly, it is an advantage of one embodiment of a keyboard in accordance with the principles of the present 10 invention to provide a keyboard capable of operating on multiple types of computer systems.

An advantage of yet another embodiment is to provide a computer keyboard with an arrangement of function keys that is less cumbersome to use. JL5 An advantage of yet another embodiment is to provide a computer keyboard with a mode of operation wherein the respo ~ .se problem associated with some multitasking environments is alleviated.

An advantage of yet another embodiment is to provide 20 a computer keyboard with improved phantom key detection.

An advantage of yet another embodiment is to provide a computer keyboard which can be individually customized to a user, including the ability to lock keys capable of transmitting multiple codes such that only one code is 25 sent, and the ability to adjust by key entry at the keyboard-the repeat rate and delay rate of the keys of the keyboard.

An advantage of yet another embodiment is to provide a computer keyboard which does not print or attempt to

^30 print the screen contents when the print screen key is k inadvertently pressed. In one embodiment of a keyboard according to the present invention, the print screen key must be pressed twice in succession before the contents of the screen will be printed.

35 An advantage of yet another embodiment is to provide a computer keyboard capable of emulating multiple keyboard

layouts, including in a preferred embodiment, Dvorak keyboard layouts.

An advantage of yet another embodiment is to provide a computer keyboard with a set of function keys whose function can be configured such that upon being pressed they transmit the same function code as if they were pressed in combination with a particular function modifier key.

An advantage of yet another embodiment is to provide a computer keyboard which allows extensive system control of customization features such that these features can be downloaded from the system, i.e., computer.

These and various other advantages and features of novelty which characterize the present invention are pointed out with particularity in the claims annexed hereto and forming a part hereof. However, for a better understanding of the invention, its advantages and objects attained by its use, reference should be had to the drawings which form a further part hereof and to the accompanying descriptive matter in which there is illustrated and described an embodiment of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS Referring now to the drawings in which like reference numbers represent corresponding parts throughout:

FIG. 1 is a block diagram of a keyboard fashioned according to a preferred embodiment of the invention;

FIG. 2 shows four bits of data transfer using a "data and clock" communication protocol; FIG. 3 shows four bits of data transfer using a "self-clocked data" communication protocol;

FIG. 4 shows a connector panel of a keyboard fashioned according to a preferred embodiment of the present invention; FIG. 5A shows key placement according to a preferred embodiment of the present invention, and keytops with

printed legends suitable for use on an IBM PC type of computer;

FIG. 5B shows the same key placement as FIG. 5A, but with key tops printed with legends suitable for use on an 5 Apple Macintosh computer;

FIG. 6A shows the logic flow of the transmission abort procedure of the prior art and according to a preferred embodiment of the present invention in one mode of operation; JLO FIG. 6B shows the logic flow of an alternate transmission abort procedure according to a preferred embodiment of the present invention in yet another mode of operation, such as when in a multitasking environment;

FIG. 7 shows the logic flow of a phantom key detection 15 procedure according to a preferred embodiment of the present invention;

FIG. 8 shows an example of key switches connected in a matrix of rows and columns;

FIG. 9 is a functional block diagram of keyboard 20 operation according to a preferred embodiment of the present invention;

FIG. 10 shows key placement according to yet another preferred embodiment of the invention;

FIG. 11 shows an alternate connector panel of a 25 keyboard fashioned according to a preferred embodiment of the present invention;

FIG. 12 is a partial perspective view of a keyboard according to a preferred embodiment of the present invention, showing four function keys with front face 30 legends.

FIG. 13 shows key placement according to yet another preferred embodiment of the present invention, and keytops with printed legends suitable for use on an IBM PC type of computer; 35 FIG. 14 shows a connector panel with mode select switches of a keyboard shown in FIG. 13;

FIG. 15 shows the logic flow of an embodiment of the keyboard logic enabling configuration of a set of auxiliary function keys to perform upon being pressed as if they were pressed in combination with a particular function modifier key;

FIG. 16 shows the same key placement as FIG. 13, but with keytops printed with legends suitable for use on an Apple Macintosh computer;

FIG. 17 shows the embodiment of FIG. 13 emulating a first Dvorak keyboard layout, with the keytops being shown with printed legends representative of the key placement;

FIG. 18 shows the embodiment of FIG. 13 emulating a second Dvorak keyboard layout, with the keytops being shown with printed legends representative of the key placement; FIG. 19 is a functional block diagram of a microcomputer system environment utilizing a keyboard according to the present invention;

FIG. 20 shows the logic flow of an embodiment of a computer system with downloadable software system control of the customized keyboard features of a keyboard according to the present invention;

FIG. 21 shows the logic flow of an embodiment of the keyboard logic enabling downloadable software system control of the customized keyboard features of the present invention; and

FIG. 22 is a partial perspective view of the keyboard in FIG. 13 showing two keyboard keys with front face legends.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

Referring now to the drawings, FIG. 1 shows a block diagram of a computer keyboard according to a preferred embodiment of the present invention. Depressing a key on the keyboard operates an electrical key switch. An array of key switches are connected so as to form a matrix 13 as is well known in the prior art (see U.S Patent No.

4,581,603). Additional key switches except those operated by the function .modifier keys 14 are part of the matrix. The auxiliary function keys 15, while shown separately, are actually part of the matrix. The function modifier keys typical of keyboards are "Shift", "Ctrl" and "Alt". The auxiliary function keys are in addition to the function keys that appear on most keyboards. The auxiliary function keys 15 will be discussed in more detail later.

All the key switches can be read by the microprocessor 10.resident in the keyboard. The key switch matrix 13 including the auxiliary function keys 15, is scanned in a fashion known in the prior art, and the other key switches 14 are read directly by the processor. In this example, an Intel 80C32 processor is used, although other types could be substituted without departing from the scope of the invention. The 80C32 processor executes a program which is stored in a nonvolatile storage device such as an Erasable Progrtiπqaable Read Only Memory (EPROM) 12. Random Access Memory (RAM) 11 is contained within the processor package and is used for temporary storage of data during execution of the program-

Mode select switches 16 are read by the user and are read by the processor to detect the selected mode of operation. * The choices offered by one embodiment of the present invention include selecting between various communication protocols, various transmission abort procedures, and specifying the meaning of the auxiliary function keys.

Suitable output connectors 17 are provided to allow electrical connection of the keyboard to an external device such as a computer or a terminal. Electrical connection between the keyboard and the external device is accomplished by conventional electrical conductors having suitable end adapters (not shown) for electrical connection to the external device and the output connectors 17 of the keyboard. In this example, a 6-pin connector is provided

for connecting to an IBM type of personal computer and two 4-pin connectors are provided for connecting to an Apple Macintosh. These connectors are shown in FIG 4 and will be discussed later. It is understood that other connector arrangements and connection to other computers could be substituted without departing from the scope of the invention.

In operation, the processor 10 begins executing the program stored in EPROM 12, which controls the actions of the processor. The mode select switches 16 are read to determine the keyboard's selected mode of operation. When a key is pressed, the processor detect the key pressed condition, determines which key is pressed, and sends a code corresponding to the pressed key to the computer or terminal.

FIG. 9 shows a block diagram of how this may be accomplished according to a preferred embodiment of the present invention. When a key is pressed in the key switch matrix 13 at 70, or if a function key 15 is pressed at 72, this fact is detected at 73 by the processor 10. At 74, the processor 10 detects the operating mode selected at the mode select switches 16 and generates a code that represents the pressed key; i.e., a "clock and data" code 75, or a "self-clocked data" code 76, or a serial asynchronous ASCII code 77 as discussed below, depending upon the operating mode selected by the mode select switches 16. The code is then communicated to a computer 78 or a terminal 79.

There are two basic conventional and well known communications protocols used send data between the keyboard and the computer 78. In both, data is communicated serially on a data line. Clocking information is provided to keep track of which bit in the serial stream is currently presented on the data line. The clock also provides timing information so that the receiving device knows when the data line contains valid information. In an

embodiment of the present invention where both of these protocols are implemented, it is possible, through minor modification of encoding means 75 and 76 to accommodate minor encoding differences commonly known to exist, to emulate keyboards of several different brands of computers. A preferred embodiment of the present invention provides emulation modes for keyboard operation with the IBM PC and PS2, Amstrad, AT&T, Tandy, and Apple Macintosh computers including the Mac Plus and Apple's "ADB" products, the Mac SE, Mac GS, and Mac II.

FIG. 2 shows an example "data and clock" protocol timing diagram. In the this protocol, there are two signals, DATA and CLOCK. The DATA line conveys the information to be communicated while the CLOCK line controls when the receiving device should read the bit currently on the DATA line. The DATA line is read on the trailing edge of the CLOCK signal, and is at a stable and valid state for a suitable period before and after the CLOCK edge. If the DATA line is high during the clock edge, the bit is a 1. If it is low, then the bit is a 0. Complete details are not discussed since "data and clock" protocols are well know in the prior art, for example, see the IBM Technical Reference, Personal Computer Hardware Reference Library. FIG. 3 show a typical "self-clocked data" protocol timing diagram. In this protocol, data and clock information are contained in the same signal. The trailing edge of the signal marks the boundaries of bit cells, and when in a given cell the signal goes high determines whether the bit is a 1 or a 0. If the leading edge of the signal occurs in the first half of the bit cell, the bit is a 1. If it occurs in the second half, the bit is a 0. Again, complete details are not discussed since "self- clocked data" protocols are well known in the prior art, ..for example, see the Apple Macintosh Family Hardware Reference Manual, ISBN 0-201-19255-1.

The serial asynchronous ASCII encoder is used for communicating between the keyboard and a terminal. Various baud rates can be supported. Details of serial asynchronous ASCII communication protocol are well known in the prior art and will not be discussed here.

FIG. 4 shows an example of a connector panel located on the back of the keyboard. The "data and clock" communication protocol is most closely associated with IBM PC type computers, and a 6-pin connector 21 is provided for connecting to them. The "self-clocked data" communication protocol is most closely associated with the Apple Macintosh, and the two 4-pin connectors 20A,B are provided for connecting to them. Connectors 20A,B contain identical signals, and one is used to connect to the computer and the other to connect to an additional input device such as a mouse or other point and click type of input device. Again, complete details are not discussed since connections to IBM and Apple Macintosh computers are well know in the art. Reset switch 22 resets the keyboard or may cause certain Apple Macintosh computers to power up, depending on the operating mode selected.

The mode select switches 16 are accessible without opening the keyboard case. In one preferred embodiment of the present invention, the mode select switches 16 are eight, two position switches 23a-h in a DIP (Dual Inline Package) switch 23 located on the back of the keyboard. Switch 23d determines whether the keyboard will communicate using the TTL asynchronous ASCII encoder or one of the computer protocols. If ASCII is selected, then switches 23a-23c select the emulation mode as discussed above. Switch 23e swaps the positions of the "Caps Lock" key and the left side "Ctrl" key, as discussed above. Switch 23f selects between the two methods of controlling data transfer, which will be discussed in detail later.

Switσhes 23g,h set the auxiliary function mode as discussed below,

FIG. 11 shows a connector panel according to another embodiment of the present invention. A 6-pin connector 95 is provided for connecting to IBM PC type computers.

Switch 96 is used to select between IBM PC/XT and IBM PC/AT types,,as is well known in the art. Switch 97 swaps the positions of the "Caps Lock" key and the left side "Ctrl" key, as discussed below. It is understood that other connector panel arrangements may be substituted without departing from the scope of the invention.

FIG. 5A shows the key placement of a keyboard according to a preferred embodiment of the present invention, with key top legends suitable for use on an IBM type personal computer. The main section 28 of the keyboard contains the alphanumeric characters and the usual punctuation marks. In one embodiment of the present invention, the mode select switch 23e logically swaps the 0 "Caps Lock/, key and the left side "Ctrl" key, since some users prefer them in the opposition positions from that shown in FIG. 5A. The two key caps can then be swapped to reflect the new meanings of the two key switches. Function keys 25 are labeled Fl through F12 and are arranged in two columns along the left edge of the keyboard. The auxiliary function keys 15 are also labeled Fl through F12 and are

.f positioned along the top row of the keyboard. The

__ auxiliary function keys 15 preferably operate a membrane type of key switch. Additional function keys 27 are 0 labeled F13 through F15. There is a numeric keypad 24 as r is typical of IBM type keyboards. These keys double as

% cursor movement keys, issuing a number or a cursor movement command when pressed, depending upon the state of a "Num

Lock" key. There is also a separate cursor keypad 29, having the cursor movement keys positioned in the same manner as they appear in the numeric pad 24, (the cursor

movement keys have arrow indicia thereon indicating direction of cursor movement when pressed) .

Each of the auxiliary function keys 15 corresponds to the function key 25 of the same name. Their purpose is to render a less cumbersome user interface by providing easier access to the tasks assigned to the function keys 25, 27.

Each of the basic function keys 25, 27 in one preferred embodiment is capable of up to four functions, depending upon whether the key is pressed alone or in combination with on of the function modifier keys 14 (Shift, Ctrl, or

Alt) . The same functions are assigned to the auxiliary function keys 15, except that which of the four functions will be executed when the auxiliary function keys 15 are pressed depends not on the state of the function modifier keys 14, but on the auxiliary function mode as determined by the setting of the mode select switches 23g,h. For example, the mode select switches 23g,h can be set to an

"Alt" auxiliary function mode. Pressing the auxiliary function key Fl will send to the computer the same code as if the normal function key Fl had been pressed in conjunction with the Alt key. The auxiliary function keys

15 are preferably membrane type keys.

FIG. 5B shows the key placement of the same keyboard depicted in FIG. 5A, but with key top legends suitable for use on an Apple Macintosh computer.

FIG. 12 shows four of the function keys having front face legends.

FIG. 6A and FIG. 6B show two methods of controlling data transfer to the computer. A keyboard according to a preferred embodiment of the invention will use one of the two methods, depending upon the position of one of the mode select switch 23f.

The method of FIG. 6A is from IBM PC type keyboards of the prior art. The routine is entered at 30 when the keyboard processor 10 determines that there is data to send to the computer. At 38, the character to be sent is

loaded. Since the computer can disallow data transmission, a check is made at 31 to see if the transmission is allowed. If it is, then data transmission begins. If not, then execution returns to the main program. The transmission process normally loops through steps 32 through 35 until the last bit is sent, after which control is returned to the main program. However, sometimes the computer wishes to abort the transfer after it has started. This can occur in certain multitasking environments when the computer decides to switch tasks. The computer indicates the desire to abort by disallowing transmission. Whether the abort is allowed or not depends upon how far the transfer has progressed (see the IBM Technical Reference for details) . If at 35 the abort is allowed, the routine ends and returns control back to the main program. If control is returned to the main program with data left to be sent, then the transfer is tried again by returning to this routine after a period of time has elapsed.

This method of managing data transmission may cause a keyboard response problem in some multitasking environments. A computer executing multiple tasks will task switch on a regular basis, where the current task will be temporarily suspended and execution will proceed on another task. This "time sharing" allows all tasks to proceed, though slower than if each had a dedicated computer. The problem occurs if the multitasking environment disables the keyboard when switched away from the user's task. The prior art keyboard, in returning to its main program, will not retry a disallowed transmission until a delay time has passed. During this delay, several task switches may have occurred wherein the keyboard could have been sending data. The keyboard may thus have missed several opportunities or "windows" to send the data. When the keyboard does try the transmission again, there is no guarantee that the computer will be ready to take the data. If the retry attempt does not hit one of these windows, the

routine exits and the keyboard delays again. In the meantime, the user may continue to type. The result is that several keystrokes may accumulate in the keyboard waiting to be sent. A keystroke entered by the user but not seen on the screen will cause users to hesitate. In extreme cases, there actually may be more keystrokes entered than the keyboard can store, resulting in lost keystrokes.

FIG 6B shows an alternate method in accordance with the principles of the present invention of handling data transmission from the keyboard to the computer. In this figure, reference numerals designating steps corresponding to those of FIG. 6A are incremented by ten. The difference between this method and the method of FIG 6A is that if transmission is not allowed or is aborted, the routine does not return to the main program. Instead, the procedure waits at 41 until transmission is again allowed. This means that there is no risk of missing the next transmission window since the delay associated with returning to the main program is eliminated.

FIG 7 shows the logic flow of the phantom detection feature according to a preferred embodiment of the present invention. An example of a key switch matrix is shown in FIG. 8, where key switches 62A through 621 are connected in a matrix of X-line conductors 60A through 60C and Y-line conductors 61A through 61C. The procedure is entered at 50 when the processor detects that a key has been pressed. The keyswitch matrix is then scanned using conventional methods to determine the X-line and Y-line coordinates of each of the keys it detects as being pressed. Four tests are then performed, 52 through 55. If any of these tests "pass", then the phantom condition does not exist. If they all "fail", then a possible phantom condition exists and execution loops back from 56 to 51. Execution will remain in this loop until the possible phantom key condition goes away and one of the tests passes.

As is known in the art (see U.S. Patent No. 4,420,744), the phantom condition exists when three of the pressed keys are at points in the matrix such that they form three of the four corners of a square or rectangle. Test 52 is passed if only one key in the matrix is pressed. Test 53 is passed if all keys pressed are in the same X-line. It is clear that in either of these circumstances, three corners of a rectangle are not formed and thus no phantom exists. Test 54 is passed if no X-line has more than one key pressed in it. Test 55 is passed if no Y-line has more than one key pressed in it. Of course, the specific order that these tests are performed in can be altered without departing from the scope of the present invention. In the preferred embodiment, test 52 is performed first since it will often pass and can be performed guiekly.

FIG. 10 shows the key placement of a keyboard 92 according ]to an alternative embodiment of the present invention. Included is a main section 88 containing the alphanumeric characters and punctuation marks, a numeric keypads 84 where keys double as cursor movement keys depending upon whether the Num. Lock is active, and a cursor keypad 89. Twelve function keys 85 are provided along the left edge of the keyboard. A function key template 86 is provided, being a strip of material suitably mounted in a recess of the keyboard case. The template 86 includes indicia representing the outline of function keys Fl through F12. The template 86 provides a surface suitable for writing notes, such as concerning the operations of the function keys. It is erasable and so can be reused.

___ Illustrated in FIGS. 13 through 22 is an alternative embodiment to a keyboard according to the present invention. In particular, FIG. 13 shows the key placement of keyboard 100 with keytop legends suitable for use on an - IB ^ type personal computer. A main section 101 of the keyboard contains the alphanumeric characters and the usual

punctuation marks. In one embodiment of the present invention, the mode select switch llle, illustrated in FIG. 14 herein, logically swaps the "Caps Lock" key and the left side "Ctrl" key, since some users prefer them in the opposite positions from that shown in FIG. 13. The two key caps can then be swapped to reflect the new meanings of the two key switches. Likewise, In another embodiment of the present invention, the mode select switch lllf, illustrated in FIG. 14 herein, logically swaps the "*" key and the "\" key located on the lower right hand side of the main keyboard 101, since some users prefer them in the opposite positions from that shown in FIG. 13. The two key caps can then be swapped to reflect the new meanings of the two key switches. Function keys 102 are labeled Fl through F12 and are arranged in two columns along the left edge of the keyboard 100. Auxiliary function keys 103 are labeled SF1 through SF12 and are positioned along the top row of the keyboard. Additional function keys 104 are labeled "Comma Period Lock", "Rate Select" and "SF Select". There is a numeric keypad 105 as is typical of IBM type keyboards. These keys double as cursor movement keys, issuing a number or a cursor movement command when pressed, depending upon the state of a "Num Lock" key. There is also a separate cursor keypad 106, having the cursor movement keys positioned in the same manner as they appear in the numeric keypad 105, (the cursor movement keys have arrow indicia thereon indicating direction of cursor movement when pressed) .

The embodiment of the keyboard illustrated in FIG. 13, in addition to other emulation modes, also provides an emulation mode for keyboard operation with Commodore Amiga computers. Referring now to FIG. 14, as with the before described keyboards, such emulation is provided by a series of mode select switches llla-h, located on a connector panel 110 on the back of the keyboard. The mode select switches 111 comprise eight, two position switches llla-h

in a DIP (Dual Inline Package) switch 112. By placing switches llla-d in various combinations of on or off positions, the keyboard 100 of the present invention can be configured to communicate with the ten different computer systems shown in Table 1 below, including the Commodore Amiga 2000. Switch llle swaps the positions of the "Cap Lock" key and the left side "Ctrl" key, while switch lllf swaps the positions of the "*" key and the "\" key, as discussed above. Furthermore, switches lllg and lllh are utilized to set the keyboard 100 to the normal or Dvorak keyboard layouts, as discussed below. In addition, the connector panel 110 also contains a 6-pin connector 113 and two, 4-pin connectors 114A and 114B for connecting the keyboard 100 to the various computer systems shown in Table 1 below. A reset switch 115 which resets the keyboard or may cause certain Apple Macintosh computers to power up, depending on the operating mode selected, is also provided.

Table 1 KEYBOARD EMULATION SWITCH POSITIONS

Keyboard Switches HEX

Emulation Ilia 111b 111c Hid Code

IBM AT/PS2 0 0 0 0 000H

IBM XT 0 0 0 1 001H

AMSTRAD 0 0 1 0 002H

ATT 6300(PLUS) 0 0 1 1 003H

ATT WGS 0 1 0 0 004H

APPLE. ADB 0 1 0 1 005H

APPLE MAC+ 0 1 1 0 006H

TANDY 1000 0 1 1 1 007H

NOVEL (IBMAT) 1 0 0 0 008H

AMIGA 2000 1 0 0 1 009H

up, or off, position; 1 = down, or on, position

In the embodiment shown the "OMNI" key located in the center of the cursor pad 106, and surrounded on the top, right, bottom and left by four directional arrow keys,

serves as an additional down-arrow key for cursor movement in a down-screen direction when pressed.

In the embodiment shown the "Print Screen" key located in the cursor pad 106 must be depressed twice in succession, i.e. without pressing any other intervening keys, before a copy of the screen display is printed on an external printing device. The "Print Screen" key is configured in this manner to prevent the printing of the screen contents, or a lock-up of the computer system should the external printer be deactivated or disconnected, when the "Print Screen" key is accidentally pressed by a user. However, if the "Print Screen" key is pressed in conjunction with one of the function modifier keys to perform a different function, such as a "Sys Rq" as illustrated in FIG. 22, then the "Print Screen" key need only be pressed one time.

Each of the function keys 102, in the embodiment shown is capable of up to four functions, depending upon whether the key is pressed alone or in combination with one of the function modifier keys, shown as the "Shift", "Crtl" or "Alt" keys in FIG. 13. In addition, each of the auxiliary function keys 103 corresponds to the like numbered function key 102 in combination with a pressed "Shift" key. Their purpose is to render a less cumbersome user interface by providing easier access to the tasks assigned to the function keys 102 in combination with the "Shift" key, without the need to press both keys. Thus, upon power-up of the keyboard, the auxiliary function keys appear in the default "Shift" configuration. The additional function key 104 utilized as a function selection key, and labeled "SF Select", allows a user to alter the configuration of the auxiliary function keys 103 such that they will send to the computer the same code as if the corresponding function key was pressed in combination with either the "Alt" or "Ctrl" function modifier keys, or as if no function modifier key had been pressed. In addition, once the auxiliary function

keys; are configured in the "Alt", "Ctrl" or un-Shifted configuration, they can be reconfigured to the default Shifted configuration by use of the "SF Shift" key in combination with the "Shift" key. 5 FIG. 15 shows the logic flow of an embodiment of the keyboard, logic enabling configuration of a set of auxiliary function keys from their default Shift-Function configuration at 118, to perform upon being pressed as if they were pressed alone or in combination with a particular 0 function modifier key. Accordingly, at any time the configuration of the auxiliary function keys can be changed by first pressing and holding down the "SF Select" key at 119 and then pressing either the "Shift", "Ctrl" or "Alt" function modifier keys at 120, 121 or 122 respectively, or 5 the space bar key at 123 to configure the auxiliary function keys to the Shift-Function configuration at 124, Ctrl-Function configuration at 125, Alt-Function

___»

, configuration at 126 or Unshifted configuration at 127 respectively. For example, by depressing and holding down 0 the "SF Shift" key at 119 followed by the "Alt" key at 122, all of the auxiliary function keys are configured to the Alt-Function configuration at 126 such that they will send the same code -to the computer as if the corresponding function key 102 had been pressed in conjunction with the 5 "Alt" key. By depressing and holding down the "SF Select" key at 119 followed by the "Ctrl" key at 121, all of the

. auxiliary function keys are configured to the Ctrl-Function configuration ^ .at 125 such that they will send the same code to .the computer as if the corresponding function key 102 0 had been pressed in conjunction with the "Ctrl" key. Also, by depressing and holding down the "SF Select" key at 119 followed by the "Shift" key at 120, all of the auxiliary function keys * are configured to the Shift-Function

- configuration at 124 such that they will send the same code 5 .to the computer as if the corresponding function key 102 had been pressed in conjunction with the "Shift" key, thus

returning to the original default mode 118. Finally, if the "SF Select" key at 119 is first pressed and held, and the space bar key at 123 is pressed, all of the auxiliary function keys will be configured to the Unshifted configuration at 127 such that they will send the same code to the computer as if the corresponding function key 102 had been pressed alone.

In another preferred embodiment of the present invention, the additional function key 104 utilized as a locking code key, and labeled "Comma Period Lock", provides a means for locking the period - greater than key (.>) and the comma - lesser than key (,<) , such that the pressing of these keys, even in conjunction with the "Shift" key, will always send a period or comma to the computer. The "Comma Period Lock" serves as a toggle. By pressing it a second time, the period - greater than and comma - lesser than keys are returned to normal operation.

In another preferred embodiment of the present invention, the additional function key 104 labeled "Rate Select" provides a means for altering the rate at which a depressed key repeats its transmitted code to the computer, and a means for altering the time delay between when a key is depressed and when the corresponding code repetition commences. The repeat rate can be altered to any of the values shown in Table 2 below by first pressing the "Rate Select" key and then pressing the appropriate function key corresponding to repeat rate desired by a user. Likewise, the delay rate can be altered to any of the values shown in Table 2 below by first pressing the "Rate Select" key , which in this instance functions as a delay select key, and then holding down the "Shift" key and pressing the appropriate function key corresponding to the delay rate desired by a user. After being pressed to set a repeat rate or delay rate, the function keys return to their normal keyboard functions.

Table 2 SPEED CONTROL RATES

FUNCTION REPEAT RATES DELAY

KEY (Characters/Second) (Seconds)

Fl 3 0.25

F2 5 0.34

F3 7 0.43

F4* 10 0.50

F5 11 0.56

F6 13 0.62

F7 15 0.68

F8 19 0.75

F9 23 0.81

F10 35 0.87

Fll 60 0.93

F12 120 1.00

♦Default

FIG. 16 shows the key placement of the same keyboard depicted in FIG. 13, but with keytops suitable for use on an Apple Macintosh computer. In this embodiment, the "Comma Period Lock " key is located in the cursor pad 106, instead of with the additional function keys 104, as shown in FIG. 13. In addition, no "Rate Select" key is provided for the Apple Macintosh computer. Instead, such function is internally configured with the Apple software. Finally, the auxiliary function keys 103 and the function keys 102 have switched positions on the keyboard such that the auxiliary function keys are arranged in two columns on the left edge of the keyboard, while the function keys are positioned along the top row of the keyboard. The configuring of these auxiliary function keys may be controlled by a "SF Select" key, which though not shown in FIG. 14, can be placed at any convenient location on the keyboard. In addition, it should be further understood that such a SF Select function could also be controlled by at least one manually switchable mode select switch, such as those shown at reference numerals llla-h of FIG. 14 herein.

FIG. 17 shows the embodiment of FIG. 13 emulating a first Dvorak keyboard layout 100, with the keytops being shown with printed legends representative of the key placement. The function keys 102, auxiliary function keys 103, additional function keys 104, cursor keypad 106 and numeric keypad 105 maintain the same key arrangement as shown in FIG. 13. Only the main section of the keyboard 131 contains alphanumeric characters and the usual punctuation marks in altered positions from that depicted in FIG. 13.

FIG. 18 shows the embodiment of FIG. 13 emulating a second Dvorak keyboard layout 100, with the keytops being shown with printed legends representative of the key placement. The function keys 102, auxiliary function keys 103, additional function keys 104, cursor keypad 106 and numeric keypad 105 maintain the same key arrangement as shown in FIG. 13. Only the main section 133 of the keyboard contains alphanumeric characters and the usual punctuation marks in altered positions from that depicted in FIG. 13.

As previously indicated, selection of either the first or second Dvorak keyboard layout is preferably controlled by mode select switches lllg and lllh, as illustrated at FIG. 14 herein. When switch lllg is in the up, or off, position, the keyboard is configured to the normal keyboard configuration as illustrated at FIG. 13 herein. However, when switch lllg is in the down, or on, position, then the keyboard is configured to a Dvorak layout. Thereafter, the first Dvorak layout and second Dvorak layout are chosen by placing switch lllh in the up or down positions respectively. A user can then utilize a template, replace the keytops illustrated in FIG. 13 with keytops corresponding to the altered keys illustrated in FIGS. 17 and 18, or utilize any other appropriate means to change the physical appearance of the Keyboard illustrated in FIG. 13 such that it corresponds to the Dvorak configurations

illustrated in FIGS. 17 or 18. In addition, it will be appreciated that the keyboard of the present invention may emulate any other preferred keyboard layout, as well as the Dvorak layouts .illustrated in FIGS. 17 and 18 herein. FIG. 19 is a functional block diagram of a microcomputer system environment utilizing a keyboard 100 , according to the present invention. By pressing keys on the keyboard 100, codes corresponding to the pressed keys are sent to the microcomputer 135. Thereafter, the microcomputer 135 processes these codes such that they can be displayed on a display device 136, such as a CRT video monitor, can be printed on an external printer 137 or can be stored for later retrieval on storage media 138, such as a disk drive, hard drive or on tape media. In an alternative embodiment, the microcomputer 135 may include software, which in cooperation with logic present in the keyboard 100 will enable, at any time during operation, - downloading of customized keyboard features under software pontrol from the microcomputer 135 to the keyboard 100. Illustrated in FIG. 20 is the logic flow of an embodiment of the logic which might be present in the software of the microcomputer 135 for downloading the keyboard customization features to the keyboard 100 of the present invention. Upon start-up, at 140 of the microcomputer 135, .the software residing in the memory of the microcomputer 135 downloads the default customization features at 141 previously designated by an operator of the keyboards. 100. The operator is then provided with the opportunity to modify any of the previously set default customized features at 142. If the operator chooses not to modify _ any of the default customized features, the micro omputer 135 returns to normal operation at 143. .However, if the operator chooses to modify the default

* features p such modification is performed, and the newly set customized features are downloaded to the keyboard at 144, thereby replacing the previous default features. In

addition, it is also preferred that the operator can modify any of the default customized features at any point during operation of the microcomputer 135 and keyboard 100.

Illustrated in FIG. 21 is the logic flow of an embodiment of the keyboard logic enabling downloadable software control of the customized keyboard features of the keyboard 100 of the present invention. As discussed above, the microcomputer 135 will include software for downloading the customized keyboard features to the logic of the keyboard 100, which will then appropriately process this information and configure the keyboard 100 according to the downloaded commands and data. In the embodiment shown, when the microcomputer 135 downloads either the default customization features at 141, or the newly set customization features at 144, to the keyboard 100, the keyboard will first receive a system interrupt signal from the computer at 150. After receiving the system interrupt at 150, the keyboard 100 will receive input from the computer at 151 in either the form of a command or data. At 152, if the input is not in the form of data, but as a command, the keyboard 100 will then set the appropriate data type flag at 153, indicating the type of customized feature data to be input. Thereafter, the keyboard 100 sends an acknowledgment (ACK) to the computer at 154 and returns to normal operation at 155. The next interrupt received from the computer at 150 will then send the customized feature data necessary to configure the keyboard 100.

If the input received from the computer is in the form of data at 152, then the keyboard will perform a series of tests at 156-159 to determine which keyboard customized feature the particular data relates to, and then either saves the transmitted data at 160 for future use or sets the appropriate keyboard configuration at 161 according to that data transmitted. For example, at 156, if the data transmitted is in the form of Function Key Data (EC) , such

as a series keystrokes, including a series of commands, to be executed by a selected function key, then the keyboard 100 will saye the data at 160 for future retrieval when the corresponding selected function key is pressed during keyboard operation. Thereafter, the keyboard 100 will clear the data type flag at 162, previously set at 153, send an acknowledgement to the computer at 154, and return to normal operation at 155. In a similar fashion, if the data transmitted from the computer is in a form relating to the comma/period lock, Dvorak keyboard layouts or SF Select customization features of the present invention, then the keyboard 100 will determine if a comma/period lock data type flag at 157, Select Dvorak layout data type flag at 158 or SF Select data type flag at 159 have been set respectively. If any of these data type flags at 157-159 has been set, then the keyboard will set the appropriate keyboar configuration at 161, clear the previously set data type flags at 162, send an acknowledgement to the system at 154 and return to normal keyboard operation at 155. If, however, the transmitted data is in an unrecognizable form, then the keyboard 100 will send a Resend command to the computer at 163 and return to normal operation at 155.

In the embodiment shown, the keyboard logic of the keyboard 100 of the present invention can utilize downloadable software control to configure a selected function key such that the selected function key can perform a series of keystrokes, including a series of commands, upon being pressed. For example, the selected function key could be configured to transmit the code for the letter "A" as follows. After receiving a system interrupt from the computer at 150, the keyboard 100 receives input from the computer at 151 in the form of a command at 152, directing the keyboard 100 to prepare to receive data. The keyboard 100 then sets the appropriate date type flag at 153, sends an acknowledgment to the

computer at 154, and returns to normal operation at 155. The next interrupt received from the computer at 150 sends a data input at 151 and 152 in the form of function key date (EC) at 156, which corresponds to the keystroke position where the code for the letter "A" will be placed. The keyboard 100 saves the date at 160, clears the previously set data type flag at 162, sends an acknowledgment to the computer at 154, and returns to normal operation at 155. Thereafter, the keyboard 100 receives another system interrupt from the computer at 150, receives a second command input at 151 and 152, sets the appropriate data type flag at 153, sends an acknowledgment to the computer at 154, and returns to normal operation at 155. The final system interrupt from the computer at 150 is followed by an input of data at 151 and 152 in the form of the code corresponding to the letter "A". The keyboard 100 places this code at the previously saved keystroke position, clears the previously set data type flag at 162, sends an acknowledgment to the computer at 154, and returns to normal operation at 155. Thus, the selected function key is configured such that when pressed it will transmit the code corresponding to the letter "A" to the attached computer.

FIG. 22 is a partial perspective view of the keyboard in FIG. 13 showing two keyboard keys with front face legends.

It is to be understood that even though numerous characteristics and advantages of various embodiments of the present invention have been set forth in the foregoing description, this disclosure is illustrative only and changes may be made in detail to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed.