Gateway AnyKey

The Gateway AnyKey is a programmable computer keyboard that was sold exclusively by Gateway 2000, Inc., as an option for some of their desktop computers. Introduced in the spring of 1991, the keyboard was manufactured in at least five known versions and incarnations by Tucson, Arizona–based Maxi Switch, Inc., a subsidiary of the Lite-On Technology Corporation. It was also sold by Maxi Switch themselves, as the ProKey II (later the ProKey 124). The AnyKey proved popular, especially among power users and computer programmers, and soon gained a cult following. The AnyKey is no longer manufactured, Gateway having discontinued it by 1998 at the latest.

The AnyKey keyboard is easily distinguished from other generic keyboards by its wide footprint—20 in—necessitated by an extra double column of function keys on the left side, a unique eight directional arrow keys as opposed to the traditional inverted T, and a quartet of extra keys directly above the numeric pad that control the programmable aspects of the keyboard. They are labeled "Program Macro", "Suspend Macro", "Repeat Rate", and "Remap", reading left to right. All versions of the AnyKey are white or very light gray with some keys (notably the programming keys, extra function keys, and arrows) in a darker gray.

Features and construction
The AnyKey is a 124-key PC keyboard, comprising the usual complement of 101 keys as well as 23 additional keys. The keyboard includes twelve extra function keys, four programming keys, and four additional arrow keys for diagonal input, as well as one blank key in the center of the eight way arrow key area that normally acts as a second space bar but which can be reprogrammed.

The AnyKey has a fourth indicator light labeled "Program", located to the right of the Num Lock, Caps Lock, and Scroll Lock lights. Revisions of its design that predate the advent of the Windows key and Menu key in 1995 have an asterisk (*), backslash (\), or number sign (#) in the positions of these keys, depending on the intended locale.

A unique feature of the AnyKey is its hardware programmability. The keyboard contains an internal controller as well as an EEPROM chip that can store user-defined macros. Any key on the keyboard can be programmed to contain a macro of arbitrary length or can be programmed to act like any other key on the keyboard (remapped). This is done on the hardware level inside the keyboard's controller itself. No driver software is required to use the AnyKey's programming functionality, as the keyboard's own controller dictates which key-press codes are sent to the attached computer. A utility for MS-DOS exists to quickly remap the entire keyboard to a predefined configuration or save its current configuration to a file, but it is not required to use or program the keyboard. The AnyKey's EEPROM memory will retain its data even if the keyboard is unplugged indefinitely, so settings and programming are not lost if the computer is powered down, unplugged, or if the keyboard is unplugged or moved to a different computer.

The AnyKey was originally available only with an AT-style connector at the end of its 60-inch cable. Gateway provided a simple adapter with the purchase of an AnyKey, allowing it to be used with the PS/2 port, which Gateway started including in their machines circa 1991. As its design predates the implementation of the USB standard, no USB AnyKey keyboard was ever produced. However, a PS/2 to USB converter will allow the AnyKey to be used with modern USB systems.

The AnyKey is built out of a plastic chassis that, at 20 in wide, is quite large compared to most modern keyboards, primarily owing to the extra columns of keys on the left side. It is also slightly thicker than most keyboard casings of the present era and features a distinctive wedge shape similar to contemporaneous keyboard offerings by Dell. As with many keyboards, there are two plastic feet that can be flipped down from the upper corners to tilt the keyboard into a suitable typing position. There is also a long central plastic foot, on some versions, that can be flipped down to tilt the keyboard to a less severe angle than the two outside feet. The AnyKey uses rubber dome key switches, imparting a smooth, "mushy" key feel versus that of mechanical offerings, such as IBM's popular Model M keyboard.

Programming
The AnyKey keyboard is extensively programmable. This takes two forms: remapping, and macro programming. The only keys on the AnyKey that cannot be programmed in at least some way are those used to control the programming itself–"Program Macro", "Suspend Macro", "Repeat Rate", and "Remap". Any key on the keyboard—including letters, numbers, arrow keys, and even special keys like modifiers such as Shift, Alt, Ctrl, Enter, and the Space Bar—can be programmed.

Remapping
A key can be remapped (copied to a different location on the keyboard) by pressing the Remap key once, pressing the key to be copied, and then pressing the new key that will serve as the new destination for the old key's command. The Program light on the keyboard will flash as long as it is awaiting remapping commands. Multiple keys can be remapped without pressing Remap again. The Program light will continue blinking after one key has been remapped and the keyboard will await more remapping commands with the same method as before. On each keypress, the Remap light will pause, flashing momentarily to signal that a keypress has been registered. Pressing Remap again before completing a remapping cancels the operation. Pressing Remap after at least one remapping has been completed will save all the remappings but will cancel an incomplete one if it is in progress.

After remapping, the old key will retain its original function even after being remapped elsewhere, effectively creating two copies of the same key. After it is remapped somewhere else, the original or "old" key can be remapped to a different function or have a macro programmed to it.

To restore a remapped key to its original function, press the Remap key and then press the remapped key twice. This is known as "remapping a key to itself". Pressing the Remap key will cause the Program light to begin flashing, indicating that the very next key that is pressed will be remapped.

Macros
Any key can also be programmed with a macro and can be combined with key modifiers Alt, and/or Ctrl (e.g., ). Macros are multiple presses of various keys in sequence of arbitrary length. The extra function keys on the left of the keyboard are essentially reserved for having macros programmed to them, though they mirror the function of the function keys along the top of the keyboard before they are programmed. The keyboard treats both sets of function keys as separate, however. Remapping or programming one of the function keys will not change the function of its counterpart.

A macro is programmed to a key by pressing the Program Macro key once (depending on the revision of the keyboard, the Ctrl key may also need to be held down), pressing the key that will have the macro assigned to it once, and then entering the commands to be programmed. Any sequence of key presses is valid input, including letters, numbers, keys used in conjunction with Shift, Alt, and Ctrl, function keys, cursor movement, remapped keys, and even. The Program light flashes as long as the keyboard is accepting programming input. It pauses momentarily when the key to be assigned the macro is pressed to indicate that the keypress was picked up. Pressing Program Macro for a second time ends the programming session and saves the macro to the target key. Pressing it again before entering any programming input cancels the operation.

A key can be cleared of its macro by pressing Program Macro and then pressing the key twice. Pressing a programmed key will "play back" all the keypresses that were programmed into it at the current repeat rate of the keyboard.

The Program light normally remains solidly on or off depending on whether the keyboard is set to use macros, which can be toggled by pressing the Suspend Macro key. The state of the Program light does not reflect whether there are any macros programmed into the keyboard, merely whether the keyboard is in macro mode.

Pressing the Suspend Macro key will cause the Program light to go out and will cause all keys programmed with macros to behave with their usual functions instead of their programmed macros. Keys that have been remapped do not reset themselves while macros are suspended. Pressing Suspend Macro again relights the Program light and restores the macros to all programmed keys.

A DOS utility, ANYKEY.EXE, was offered by Gateway for saving and uploading AnyKey key mappings and macros. It offers three functions: Saving key mappings and settings from the keyboard's non-volatile memory to a file, uploading settings from the file to the keyboard's nonvolatile memory, and checking the file's integrity. It must run in DOS, and it may require the keyboard be connected through a PS/2 or AT-style 5-pin-DIN socket, though a PS/2-to-USB adapter seems to work well for normal keyboard usage.

Resetting
Holding the Control and Alt keys and pressing the Suspend Macro key clears all of the keyboard's programming. The Program light will flash while the keyboard erases its memory. Afterwards, it will go dark and all keys will be reset to their original function, all macros deleted, and all remappings reset. Holding down the Suspend Macro key while powering on the computer will also reset all keys to their original function.

Quirks
The AnyKey also has a user-programmable repeat rate (the rate at which a key will repeat its function on the computer if it is held down) that is handled by the controller inside the board and therefore overrides the BIOS or operating system controlled repeat rate on the attached computer. (On Linux, this has been known to conflict with the included kbdrate utility. ) The repeat rate is set by pressing the Repeat Rate key and then one of the top-row function keys, with F1 being the slowest rate and F8 being the fastest—then press "Repeat Rate" again.

The programmability of the AnyKey results in complex rules being forged pertaining to its behavior. For example, the Num Lock, Caps Lock, and Scroll Lock keys cannot have macros assigned to them, but they can be included in other macros. These keys can be remapped and remapped to others, however.

The keyboard can be programmed to call up and execute software programs in the computer, but the user must compensate for the time it takes the computer to execute the program via inserting a delay of 1–5 seconds before entering a subsequent series of commands.

Despite the fact that "AnyKey" is in the name, there is no "Any" key on these keyboards. In customer service lore, the blank key in the center of the AnyKey's arrow key cluster often served as a stand-in for the nonexistant "Any" key, however.

History
Gateway bundled or offered the AnyKey keyboards with most of their desktop systems from 1991 to around 1998. The keyboard featured advanced programmability, making it possible for novice users to reprogram the AnyKey keyboards in unintentional and arcane ways.

Manufacturing of the AnyKey ceased circa 1998, and Gateway stopped offering them shortly thereafter. Neither Maxi Switch, Gateway, nor Lite-On currently offer any product labeled as or comparable to the AnyKey.