Gateway AnyKey
The Gateway AnyKey is a programmable PC keyboard that was sold with desktop computers from the Gateway 2000 company roughly from 1990 to 1997. It was manufactured in at least five known versions and incarnations by Tucson, Arizona-based Maxi Switch, now a subsidiary of LiteOn Technology Corporation. The AnyKey is no longer manufactured, with the latest dated model available marked 1997. Maxi Switch, Gateway, and LiteOn currently do not offer any product labeled as or comparable to the AnyKey. The AnyKey keyboard is easily distinguished from other generic keyboards by an extra double column of F keys  on the left side, a unique eight directional arrow key pad 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 12 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 can be programmed. 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” keyboard have an asterisk (*), backslash (\), or hash (#) in the windows key locations, depending on the intended locale . Since the design of the AnyKey predates the “multimedia PC,” it lacks the additional multimedia keys (play, pause, volume) present on many modern keyboards. 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 keypress 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 aren’t lost if the computer is powered down, unplugged, or if the keyboard is unplugged or moved to a different computer. The  keyboard can be programmed to call up and execute software programs in the computer, but 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. The controller board inside the Anykey contains six integrated circuit packages (“chips”) in addition to various signal regulation hardware including 15 diodes, 11 capacitors, and nine resistors of unknown specific function in addition to four green LEDs for signalling purposes of (left to right)“NUM LOCK”, “CAPS LOCK”, “SCROLL LOCK”, and “PROGRAM”. The chips included are an Intel P8052AH  microcontroller, an Atmel AT28C16 16 kilobit EEPROM chip, and four Fairchild Semiconductor Decoder/Demultiplexer chips of various descriptions. The AnyKey is available in AT and PS/2 style configurations, and can be used with either configuration via a simple adapter. 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 constructed of a plastic chassis that is large compared to most modern keyboards (partially owing to the extra columns of keys on the left  side) and also slightly thicker than most keyboard casings of the present era. It is rounded on all corners and edges, with an overall rectangular shape. 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 type keyswitches, with all the switches and contact points on a single  sheet. The keyswitch layer contacts a single flexible membrane that detects all keypresses and directs them to the controller board via a pair of flexible edge connectors. While the AnyKey is branded as a Gateway product, the membrane layer clearly bears the inscription “Maxi Switch Inc,” revealing the true maker of the hardware. This membrane is backed by a metal plate approximately a sixteenth of an inch thick which serves to hold the membrane rigid and in place as well as giving the keyboard considerable heft. Held in place on top of the rubber dome layer is a plastic block  that holds the key pillars which in turn hold the keycaps themselves. The key pillars are individually replaceable but cannot be removed without dismantling the keyboard to separate the rubber dome layer from the plastic support layer and the removal of the latter from the assembly. The key caps are held onto the pillars via friction with cross shaped pegs. The key caps are easily removed for cleaning or rearrangement, as all keys on the keyboard use the same attachment method and, with the exception of the Space Bar, Enter, Shift, Tab, Control, Alt, and Caps Lock keys, they  are all the same size. In this manner, keys that have been remapped (like the commonly remapped arrow keys) can also be physically moved to the correct location on the board. Physical relocation of keytops should be done with caution as the slope of the keytops is raked into three pairs of rows, e.g. if the Z key is swapped with the F1 key, both keys will have different rake to those surrounding them. The rubber domes themselves are made of silicone rubber and are not therefore subject to oxidation or brittling through loss of plasticizer in the rubber. 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. The repeat rate is set by pressing the “Repeat Rate” key and then one of the top row F keys, with F1 being the slowest rate and F8 being the fastest — then press “Repeat Rate” again. 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 other 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 (depending on the revision of the keyboard, the Ctrl key may also need to be held down ), 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. CAUTION: Although Shift and Ctrl can be "reprogrammed" using Macros as described in the next section, they should not be "remapped". Unpredictable  results may occur, depending on how long those keys are held down. Therefore, in REMAP mode, pressing the sequence Shift (without holding it down), and then lowercase-A, "sometimes" remaps the A key to become another Shift key, but not dependably. However, the following restoration process dependable. 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. Ctrl+Alt+Q, Ctrl+Alt+F1). Macros are multiple presses of various keys in sequence of arbitrary length. The “extra” F keys on the left of the keyboard are essentially reserved for having macros programmed to them, though they mirror the function of the F keys along the top of the keyboard before they are programmed. The keyboard treats both sets of F keys as separate, however. Remapping or programming one of the F keys will not change the function of its counterpart . A macro is programmed to a key by pressing the “Program Macro” button 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 control, F keys, cursor movement, remapped keys, and "even other keys programmed with macros". 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. On versions that require Ctrl + "Program Macro" at start the  programming session, you still use "Program Macro" to end programming session. If the last 2 keystrokes are ctrl + "Program Macro" the ctrl stroke becomes part of the macro. When this macro is run "ctrl" key is stuck on preventing other macros running until another ctrl key press to clear the keyboard state. 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, sized about 25Kb, was offered by Gateway for saving and uploading AnyKey key mappings and macros, named “anykey.exe” or “anykey34.exe,” and may still be found by searching the  Internet. It offers three functions: Saving key mappings and settings from keyboard nonvolatile 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<—>USB adapter seems to work well for normal keyboard usage. Features. The programmability of the AnyKey results in complex rules being forged pertaining to its behavior. If a macro includes the press of a key that has another macro programmed to  it, the second macro will be ignored and the original function of the key will be programmed into the new macro. If a macro includes a key that has been remapped, the macro will be programmed with the remapped function of the key and not its original function. If a macro is too long to fit in the keyboard's memory, it will be truncated at the point that the keyboard ran out of programming memory. There is no upperbound limit to the length of a macro except the total free memory remaining in the keyboard, which is believed to  be a maximum of 16 kilobits (2048 x 8 bits) based on the controller board's inclusion of an Atmel AT28C16 EEPROM chip. The Number 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, however. Despite the fact that "AnyKey" is in the name, there is no "Any" key on these keyboards. Versions. At least five versions of the AnyKey are known to exist, with manufacturing dates starting in 1990 and ending in 1997. Functionally, the various versions of  the keyboard are almost identical. They differ in their connection method, marking, and in some minimal areas of behavior. The version and vintage of an AnyKey keyboard can be determined by reading a small paper label on the underside, generally placed near the lower center over the third screw hole. Unfortunately, these labels are unlaminated plain paper printed with a simple dot matrix printer and over time turn yellow and brittle and are easily damaged. In addition, the labels are very often placed such that one of the more important numbers – the date – is placed directly over one of the  screw holes that must be accessed to dismantle the keyboard. An Anykey that has been serviced undoubtedly has some of its date and model information destroyed. The oldest known version, unofficially dubbed “version 1”, is of an unknown part number. It has an AT style plug and has “Gateway 2000” in raised, painted lettering on its upper left face with a gold painted Gateway G logo. It has “AnyKey” printed on the upper right face, to the right of the “Program” inscription. There is a silvery gray label on the underside bearing the Gateway 2000 name and logo, the Anykey  logo, the keyboard's FCC ID number, an FCC Part 15 warning, and the least pertinent part of the model number: “2189014-XXX”. This keyboard can be programmed simply by pressing the Program Macro key. The internals of this version of keyboard are held together with many small yellow zinc plated screws that hold the metal plate, membrane, rubber dome layer, and plastic support layer together as well as holding all of the above into the chassis. The second known version is part number 2189014-00-211, unofficially dubbed “version 2”. Examples have been found with manufacture dates as early  as June 1991 and as late as November 1992. These are visually very similar to version 1 keyboards, with the same AT style plug and chassis. However, version 2 keyboards lack the “AnyKey” inscription on their face. The silver label on the reverse still bears the AnyKey moniker. This keyboard is held together with screws as is the previous version. [Macros must be programmed on this version by holding down control and pressing Program Macro. Simply pressing Program Macro does nothing.]—The foregoing may be true of some specimens of this model, but on at least one 'Program Macro' alone works . The Print Screen key has the additional label "Sys Rq" on the front edge, and the Pause key has the additional label "Break" on the front edge. Keytops from later AnyKey keyboards will not necessarily match cosmetically, as the later lettering is a little closer to the bottom of the keytop, and the strokes slightly thinner. The 2189014-00-211 Gateway AnyKey model contains a toroid on the inside, around the keyboard wires near the top middle of the keyboard, which might rub against the plastic membrane circuit board and cut the leftmost trace emerging from the left ribbon connector . The circuit board numbers of the dead, non-responsive, keys will be: 19 ("Program Macro"), 46 (number pad minus "-"), 90 (left side function key "F7"), 91 (left side function key "F8"), 97 ("B"), 98 ("N"), 102 (slash "/"), 104 (left arrow), 105 (space key between left and right arrow keys), 106 (right arrow), 110 (left side function key "F9"), 111 (left side function key "F10"), 113 (gray asterisk between left side Ctrl and Alt keys "*"), 115 (space bar), 116 (right side "Alt"), and 120 (down arrow). These numbers are printed on the plastic membrane next to each key switch, with the  exception of 106, which is obscured by a carbon bridge. The cut trace can be repaired by filling in the hole with conductive ink from a silver microtip conductive pen or possibly with copper paint from a rear-window defroster repair kit from an automobile supply store. The dried paint can then be covered with tape or epoxy. Soldering, which would damage the plastic membrane, is not a repair option. The toroid should be repositioned or covered with tape or something to blunt its edge. The third known version is part number 2189014-00-212. Examples have been found with  manufacture dates as early as January 1993 and as late as August 1993. These are visually very similar to part number 2189014-00-211, with the same AT style plug and chassis, silver label on the reverse bearing the AnyKey moniker, screws holding the keyboard together, macro programming requiring the control key, and lacking the AnyKey inscription on their face. An alternate version is part number 2189014-00-712 with a PS/2 style plug. The fourth known version is part number 2191011-00-911 and it is creatively dubbed “version 3”. Its most common vintage seems to be 1994. This  version has a PS/2 style plug and like the version 2 does not have the “AnyKey” inscription on its face. The silver gray label on the reverse is done away with, replaced with raised lettering that is very difficult to read. The raised lettering is otherwise identical to the writing on the labels of previous versions. As with the version 2's, this keyboard must be programmed by holding control while pressing Program Macro. Inside, this version's controller board is longer and narrower with a slightly different layout than previous versions. Unlike said previous versions, this version's chassis  is held together with screws but the internals are held together and bound to the lower half of the chassis by many plastic pegs that are a part of the support layer. These are pushed through the lower chassis and melted into a mushroom shape ("heat staked"), holding the keyboard together and making it impossible to disassemble for service without breaking or carefully drilling out the heat fastened pegs. After being dismantled, keyboards of this version are difficult to properly reassemble due to their lack of screws to align the internals. A fifth version exists that bears the model number  2194001-XX-XXX stamped into the bottom of the keyboard. In addition there is a specific model number (such as 2194001-00-002) on both a bar code sticker and a model number/serial number label that also includes a date such as "MAXI SWITCH MEXICO 01-21-95". This version has a PS/2-style plug and has five screws instead of the heat staked attachments. A sixth version is very similar to the fifth, but the stamped model number is changed to 2194002-XX-XXX. Its vintage is late 1995 to mid 1996, with the most recent model having  MAXI SWITCH 06-27-06 printed on the label. This version has a PS/2 style plug like "version 3" and also has screws securing the internals. A seventh(?) version exists "MAXI SWITCH MEXICO 08-23-96", another "05-28-97". At first glance the only obvious difference to previous models is that the PS/2 plug is bright orange. The real significance of this unit is the recognition of the extra Windows keys added. Rather than retool the unit to allow the addition of the three extra keys and therefore altering the standard layout around the space bar, a simple electronic  change was made to the decoder and some keys relabeled. Using an extended IBM Model M as a guide, to the left of the space are three keys: |CTRL |* |ALT | which are relabeled |CTRL |WIN|ALT | and on the right of the space bar, |ALT | * |CTRL | are labeled |ALT |WIN|MENU |. How many people remapped the MS keys to reproduce the right-hand CTRL key is unknown. The AnyKey keytops fit interchangeably with Cherry MX keytops. Value. Gateway bundled or offered the AnyKey keyboards with most of their desktop systems from 1990 to 1995. The keyboard  featured advanced programmability, making it possible for users to re-program the Anykey keyboards in unintentional ways. Manufacturing of the AnyKey ceased circa 1997 and Gateway stopped offering them shortly thereafter. Maxi Switch, the actual manufacturer of the AnyKey, got into financial trouble and was bought by LiteOn in 1990 where it remains a subsidiary as of January 2006. Production of the AnyKey has not resumed by Maxi Switch, LiteOn, or any of LiteOn's subsidiaries. The Anykey does not use the same distinctively loud buckling spring keyswitches of the older “battleship” keyboards. It is significantly larger, heavier, and more  durable than most modern keyboards (incorporating a sheet of steel running the width and length of the base, a ¼"-thick sheet of black plastic under the key bed, and weighing a bit over 3 lbs./400 grams) in addition to being serviceable (though some versions more serviceable than others; see above). The Anykey lacks Windows and multimedia keys except for model 2194002-XX-XXX, shipped by Gateway at the beginning of 1996 with Windows 95, which had “Windows” keys. There are Anykey keyboards dated as late as 1998. This model works correctly in normal mode under Windows 7. Gateway AnyKey The