Model "M" Keyboard
The heavy, clicky monster we all love

Disclaimer: The links and information are provided on an "as-is" basis. I am not responsible if you try a modification and burn out your keyboard controller. For depot level service, I recommend Unicomp.

Hardware Interface Technical Reference, Keyboard 101- and 102-Key

Keying On A Standard by Bob Smith
Keyboard scan-codes
25 Years of the Model M (by Chris McDonough)
Modify Model M PCB ("Modern" Systems, KVM switches, others) by John Szybowski

Model M page "Type Hard or Go Home" Dead Available on Internet Archive
Buckling Spring Page (by Sandy)
ClickyKeyboard Restoration and collection, Sells KBs, cables, and parts.
   Model M Buyer's Guide by ClickyKeyboards (We're Not Worthy!)
Convert your Model M Keyboard to Bluetooth with Bluefruit EZ-Key HID

SDL Connector:
   AMP 1-520424-2 Product Page
   Application Specifications
   Instruction Sheets

Key Switches
   Buckling Switch (The REAL clicky keyboard)
   Capacitive switch
Keyboard Evolution
Keyboard Trivia
   Keyboard Mechanics
   International Keyboards
   Programming Consations
   PS/2 Model M PCBs
     Pinout for J8 (LED Tape Socket)
   RS/6000 Model M PCBs
   Terminal Model M PCBs
Signal Voltages
AT Keyboard and SDL Pinouts
PS/2 Keyboard and SDL Pinouts
RS/6000 Keyboard and SDL Pinouts
Keyboard Keyclicks Without Keyboard Speaker? Model M Without Speaker on RS6000
   Optional Keyboard Cable with Speaker
M$ Elite Keyboard (Don't use it!)
Keyboard Emulator
   Dr. Jim Wayne Bobbitt Style Hack
   Running Without a Keyboard (or mouse!)
Belkin OmniView SE Incompatible
Cleaning the Keyboard (How to Open the KB)
   Socket Sizes Needed
Fixing the detached plastic base (no need for screw and nut mod)
Keyboard Error Codes
   Scan Code Followed by 301 Error
   Error 305
Speaker Grille
Model M parts from Unicomp - SDL cables, springs, matrix, key caps...
Present Model M Manufacturer
General Keyboard Maintenance

Location of Keyboard Connector

From Peter:
   On PS/2s, the keyboard port is the one closest to the power supply.

Keyboard Keys
Buckling Spring illustrations are from Wikipedia Model M keyboard, Design

Buckling Key Switch

Buckling spring key on key press and release.

Graph of key force over key travel for a buckling spring key. Visible in graph position 1C the fast force drop when the spring buckles.

Source: U.S. Patent 4,118,611 (Google Patents), issued to IBM in 1978

Capacitive Switches

   A capacitive switch works when two plates (usually made of plastic) are connected in a switch matrix designed to detect changes in the capacitance of the circuit.

   When the key is pressed, the plunger moves the top plate relative to the fixed bottom plate. Usually a mechanism provides for a distinct over-center tactile feedback with a resounding “click.” As the top plate moves, the capacitance between the two plates changes and is detected by the comparator circuitry in the keyboard.

   This type of switch is nearly immune to corrosion and dirt. These switches are very resistant to key bounce problems that result in multiple characters appearing from a single strike. They are also the most durable in the industry—rated for 25 million or more keystrokes, as opposed to 10 to 20 million for other designs. The tactile feedback is unsurpassed because a relatively loud click and strong over-center feel normally are provided. The only drawback to this design is the cost.

    Capacitive switch keyboards are among the most expensive designs, but the quality of the feel and their durability are worth it.

Keyboard Evolution

Peter Wendt wrote:
   The "M"-keyboard "as we know it" with the 101/102 keys design and the LEDs for NumLock, CapsLock and ScrollLock has been introduced along with the PS/2 in 1987.
   The "MF-II Text/Data Keyboard" was available earlier as "MF-1" for XT, XT-286 and AT and seemed to have a dual-mode interface, since it had no LEDs and worked along with the slower PC/XT keyboard interface (non-bidirectional).

   The MF-1 keyboard had been introduced in 1985 for the PC/XT/AT line to allow people to use F-keys, cursor control and separate number pad - particularly for use with a 3270 / 5250 host emulation (introduced the separate Print / SysReq, Scroll and Pause/Break keys along with the sixtett of keys between cursor and Print / SysReq used mainly for the IBM Assistant software series). Therefore you will find a line with "(C) 1985 IBM Corp." on the decal underside of the M-keyboard. This is the year where the original (non-LED) design had been patented.

   The oldest "MF-II" keyboards (with LEDs) you may find will be those produced by IBM for the launch of the PS/2 in early 1987. They presented the family as a whole new product line - new designs, new keyboard, new monitors, new formats and new expansion bus. Before that the old "clickety-click" keyboard with 10 F-Keys to the left ruled. And before that the PC and XT 88-key with no F-Keys at all.

   The "new" design of the MF-II was primarily made by moving the F-Keys above the text- /datakeys like the PF-Keys (programmable function keys) on the3270 Terminals of that time - however only 12 of them, not 24. "No one ever needs 24 function keys ..." (No one ever needs more than 640KB RAM ...)

   This keyboard made it over the whole world. Even most nowadays keyboards copy the same basic layout. No matter if they split the keyboard into halves or half-round layout - the basic arrangement is the same as on the keyboard IBM *designed* in around 1980 for the 3278 / 79 graphic terminal and later altered the same design for the PS/2 family.

   Also a very unique feature of the "M" keyboard -not copied by the cloners- is the two-parts keycap. The most intriguing version is the "transparent keycaps" version sold for host programmers. The "letter" keycaps can be taken off and were replaced by transparent keycaps - with small pieces of paper between key body and cap.

   This allows programmers to define own keyboard "Symbols" and have appropriate lettering on them during the development phase. I must have a set of these caps around anywhere - along with a "letter mat" for ALGOL or APL-2 programming language symbols.

Keyboard Trivia 
IBM PS/2 A Reference Guide, TJ Byers, Intertext Publications, McGraw-Hill Book Company, 1221 Avenue of the Americas, NY, NY 10020, 1989  ISBN: 0-07-009527-2

Keyboard Mechanics (Page 162 - 164)
   The keyboard is actually a small computer in itself. The keyboard system consists of a Motorola 6805 microprocessor within the keyboard and an Intel 8042 controller on the PS/2’s planar board. The 8042 keyboard controller directs communications traffic between the computer and the keyboard. The controller communicates with the keyboard via a serial link that supports an 11-bit protocol with parity checking.

   The microprocessor detects depressed keys by scanning the keyboard in logical order and analyzing each key’s status. All keys are classified as being in one of two states: make or break. When a key is pressed, the 6805 microprocessor recognizes the condition and reports it to the PS/2 computer as a key make. It does this by generating an interrupt signal and displaying the scan line number of the key detected. When the key is released, it’s break code is sent to the PS/2.

   The keyboard processor also contains a 16-byte character buffer that allows the keyboard to store up to 16 keystrokes. Should the PS/2 be busy and unable to acknowledge an interrupt, the keyboard buffer safely s remembers the keystroke until the PS/2 has time to assimilate the input. Should you exceed the 16-character limit, the seventeenth keystroke is simply discarded.

   Whenever a keyboard interrupt is generated, the BIOS program queries the keyboard computer for the keystroke number. In order to successfully execute the exchange, bi-directional communications must exist between the two units. Communications between the PS/2 and keyboard are carried out through I/O ports 60h and 64h, input and output, respectively. For every keyboard interrupt, the PS/2 responds with a keyboard query. Data transmissions to and from the keyboard consist of an 11-bit word that is sent asynchronously over the serial data port.

   The keyboard and computer communicate over a pair of clock and data lines. At the end of these lines is an open collector transistor that allows either the keyboard or computer to force the line low. When a keystroke is detected, the keyboard checks the status of the clock line. If the line is low, the keystroke is stored in the buffer and transmission is deferred until a later time. If, on the other hand, it finds the clock line high, the keyboard does a similar check on the status of the data line. When both lines are high, it means the computer is ready to accept data from the keyboard, and the keyboard proceeds to send out it’s 11-bit code. The code begins with a 0 start bit, followed by 8 data bits, a parity bit, and a stop bit. For each bit transmitted over the data line, a coincidence bit is transmitted on the clock line. This clock bit is used by the computer to decode the data bits. Please note that the decoding process can only take place when the keylock on the front panel is on. Keystrokes entered while the keylock is off (keyboard receiver inhibited) will be lost.

   During transmission, the keyboard checks the clock line for a high level at least every 60mS. If the computer lowers the clock line after the keyboard starts sending data, it signifies that the computer is unable to accept any more data from the keyboard. Consequently, the keystroke is returned to the buffer and communications halted until the clock line goes high again.

   Instructions can also be sent from the computer to the keyboard. When the computer wishes to communicate with the keyboard, the PS/2 forces the clock line low for more than 60mS while it prepares it’s message. This action alerts the keyboard that an incoming message is pending. When the computer is ready, it allows the clock line to go high while pulling the data line low. The data is then sent over the data line, which by now has assumed a high-impedance value.

   While all this is going on, the keyboard constantly checks the status of the clock. As soon as the clock line goes high, it begins counting the computer input bits. After the tenth bit, the keyboard forces the data line low. This action signals the computer that the data was received. Each system command or data transmission to the keyboard requires a response from the keyboard before the system send it’s next output. Typically, the keyboard responds within 20mS. If the keyboard response is invalid or has a parity error, the computer sends the command or data again.

   By knowing the timing sequence, it is possible to make modifications to the keyboard through software. This two-way link is vital to the PS/2’s performance. The two-way communications channel is also used to evaluate the well-being of the keyboard’s microprocessor when the computer is first turned on and after each reset operation. (Ed. This is the BAT - Basic Assurance Test).

   When passing data from the keyboard to the PS/2, though, you must be aware that the keyboard’s microprocessor has no idea as to the significance of the keys it is reporting. As far as it’s concerned, the keys have no meaning whatsoever. Each key is assigned a unique 8-bit code which is transmitted to the computer following a make. It is up to the BIOS program inside the PS/2 to decide how the keystroke should be interpreted. The 8042 translates the scan codes it receives from the 6805 to those recognized by the BIOS. The translation table is stored in ROM on the 8042 chip and is not accessible to programs. However, the PS/2 keyboard has the capability of switching scan code sets. In fact, the keyboard offers a choice of three scan code sets. 

International Keyboards (Pages 167 - 168)
   An interesting feature of the IBM PS/2 is it’s international keyboard design. IBM no doubt had it’s eye on a very large market when it conceived the PS/2, and the keyboard reflects this attitude. In fact, the international version of the PS/2 actually has a slightly different keyboard than the US version. Instead of 101 keys, the international keyboard supports 102 keys. This keyboard, which is referred to as the WT (World Trade) keyboard in IBM documentation, is available only outside the US. It differs only slightly from the US version in that it has an additional alphabetical key nestled in the crook of the entry key, which is a larger, hook-shaped key rather than the slim Entry key of the US keyboard. The backslash (\) is located between the Z and the left shift key (as it was on the original IBM PC keyboard). Because the PS/2 cannot distinguish between the two keyboards , the setup software asks the user to identify the keyboard by indicating the shape of the Enter key.

   The reason the PS/2 can support two different types of keyboards is the way the BIOS handles keyboard inputs. As you recall, the keyboard is unaware of the keystrokes it inputs to the system. It simply cites the number of downed key when queried by the 8042 controller chip. It is the responsibility of the BIOS chip to convert the key depressions into ASCII codes and symbols. In the normal default mode, this translates into the US English set of ASCII alphanumeric characters. In the international PS/2 models, another set of scan codes is used to interpret keyboard input.

PS/2 Model M PCBs

DOB is 01SEP88 PN 1393291 PCB is 170mm x 50mm

U1 NS 239 2161 SA A60425
U2 HD6805V1N13P
J5 lower left 1/4" QD tab.
Y1 4000.0 xtal

PCB from 08SEP89 is similar, the outline for J2 is gone, Y1 is now a little poly coated three pin package.

DOB is 19NOV91 PN 1395601  PCB is 150mm x 38mm

U1 TI 2392161-60425 137 3 Q CK U2 ST EF6805U3P-B

PCB is 91-ish PCB is PN 1395604

U2 Motorola 1394079 (possibly IBM house #)

DOB 31JAN92  PN 1397553  PCB is 150mm x 38mm

  This is a simper design. J3 and J8 have been combined into a 12 pin header, J3.

DOB 20MAR93 PN is 1398012 PCB is 162mm x 50mm

U1 TI SN7406N U2 ST EF6805U3P-B

   CP1 and CP2 (B9HC0114 102MX8) are now back. See the outline for J2 ( four pin header) right below the SDL port?

Pinout for J8
  This little dapper devil switches orientation between horizontal and vertical. The LED tape has to bend on the vertical.

   The Ground trace is almost twice as wide as the other three. The ground trace is always towards Pin 1. 

RS/6000 Model M PCBs
DOB of 05-31-91 PCB is 1394596, whole KB is 1394540 (ID# 4023580)

U1, U3 2392161 (IBM part number for a standard 7406 TTL chip)
U2 1394599 HD6805V1RN18P CPU with embedded code
J10 Speaker connector
CP1, CP2 B9HC0114 102M x 8 capacitor packs

Rick Ekblaw sent me the original image and said-
   You will notice that this scan is most similar to your P/N 1393291 scan.  It is also 170mm x 50mm in size, and the connector layouts are basically the same.  There are some minor layout differences, and the second 7406 open-collector hex inverter and the J10 speaker connector are the obvious additions.  One side of J10 goes directly to pin 6 on the SDL connector, which is why the RS/6000 keyboard cable can not have the "missing pin" found on some PS/2 keyboard cables.
    The speaker is a little 8 ohm, 0.2W job, IBM part number 1392326. (Ed. I have got to get me an RS/6000 keyboard!!!)

PCB is 1394596

From Gereon Wenzel

Terminal Model M PCBs

From Gereon Wenzel

J7 (three pin header, upper left) KB cable connector (?).
U2 Motorola 1387587 (possibly IBM house #)
U3 unpopulated
U1, U4, U5 SN7406N (?)

   Why is the upper right tape receptacle of the Terminal keyboard shorted with a sheet of alloy?

Programming Considerations (Pages 173 - 176)
   Since the introduction of the IBM Personal Computer line in 1980, IBM has changed the keyboard twice. The first change came with the release of the IBM AT. The 84-key keyboard that accompanied the first model of the AT has a different key layout and produces scan codes distinct from those of the original 83-key PC keyboard. The scan code sets on the two keyboards are different because, for reasons of physical circuit design, it is most efficient to assign scan codes by key location. To maintain software application compatibility with the two keyboards, IBM added a scan code translator to the 8042 controller. After translation, the controller’s  output for a given key is the same as that key’s output for the PC keyboard controller.

   The 101-key enhanced keyboard used for the PS/2 introduced yet another keyboard layout. However, instead of coming up with a new set of scan codes for the new layout, IBM devised three. The Select Scan Code command (followed by an option byte of 1, 2, or 3) activates the scan code set of that number. An option byte of zero causes the keyboard to respond with the number of the currently active scan code set. The code sets differ in the values generated for the press and release of each key.

   By default, the PS/2 keyboard boots to the 84-key set (set 2) used by the original AT keyboard and does not recognize the presence of the new keys. For most keys, it sends a single-byte press code and a two-byte release code consisting of F0H followed by the press code. These codes need to be translated by the BIOS interrupt 09H routine. For example, the “B” key sends scan code 32H to the BIOS, which interprets it as an “M”. However, with code translation enabled, the 8042 controller translates the scan code to 30H, which is properly interpreted by the BIOS as a “B”. The translation process also converts each two-byte release code to a one-byte code that is the same as the press code with the high bit turned on.

   When scan code set 1 is activated, the keyboard produces codes that match the result of translating scan code 2. For the keys common to the enhanced and original PC keyboards, this code set produces the same press and release codes as the original keyboard. In effect, this code set moves the translation from the 8042 to the 6805, thus disabling scan code translation at the 8042 level. Support for the 17 enhanced keys is available through the second scan code set. However, only DOS 4.0 (Ed. and above) can access these extended keys from the keyboard without special programming practices. When using DOS 3.3, you must use the extended interrupt 16H BIOS functions, AH=10H and AH=11H.

   Scan code set 3 is similar to scan code set 1 in that it produces the same scan codes for the majority of the ASCII keys and uses the same press/release coding convention. However, some keys are curiously reassigned. For example, with the scan code set 3 activated and 8042 translation enabled, the CapsLock key behaves like the left Ctrl key, and the NumLock key acts like Esc. In fact, if the keyboard were to be relabeled, it would look exactly like the 84-key layout of the original AT keyboard. The support for this scan code set is not yet complete, and using it’s features may result in programming errors.

From Tony
I've encountered 3 different quality levels of the IBM 101's so far.
1) Removable cable, heavy, clicky feel (the best)
2) Fixed cable, but same weight and click feel (OK) <-- Lexmark built
3) Fixed cable, non-click squishy feel (horrible) <-- Lexmark built
All of the Win95 style 104's I've seen sucked.

Signal Voltages
The keyboard and auxiliary device signals are driven by open-collector drivers pulled to 5Vdc through a pull-up resistor. 

Sink current Max
Hi-level output V Min
5.0 Vdc minus pull-up 
Low-level Output v Max
0.5 Vdc
High-level input v Min
2.0 Vdc 
Low-level input v Max
0.8 Vdc 

AT Style Pinout for Keyboard Connector and SDL

SDL = Shielded Data Link, a type of shielded connector created by AMP and used by IBM and others for keyboard cables 

+5.0 Vdc
Frame Gnd
SH - Shield

PS/2 Style Pinout for Keyboard Connector and SDL

PS/2 Signal SDL DC V
+5.0 Vdc
Frame Gnd
SH - Shield

RS/6000 Style Pinout for Keyboard Connector and SDL

PS/2 Signal SDL DC V
Spkr Signal


+5.0 Vdc
Spkr Gnd

Frame Gnd

SH - Shield

Note that the RS/6000 Keyboard port has the speaker signal and speaker ground signals that the PS/2 keyboard port lacks.

Keyboard Keyclicks Without Keyboard Speaker?
  Some systems were shipped without a speaker in the keyboard or system unit (specifically, the "Quiet Touch"). The following shows the keyboard attached to a speaker box with a 3 ft. cable which attaches to the standard I/O port K. The speaker box has a keyboard connector to pass the keyboard signals through to the keyboard. The keyboard cable is supplied with the keyboard.

Optional Keyboard Cable with Speaker  (FC #6599 or FRU 93H8878)

PS/2 Keyboard on RS6000 Keyboard Port 

Gathering data, but maybe cobble together a small enclosure with a fully wired RS6000 Keyboard port, pull out the two connectors needed for a speaker mounted in the enclosure, and pass just the keyboard signals to a normally wired KB port to feed a Model M.

Note: I am totally unsure of trying to run a RS6000 Model M with speaker or the Optional Keyboard Cable with Speaker off of a Personal System/2 Keyboard port. IBM refers to Pins 2 and 6 as "Reserved" on a PS/2. If you are lucky, they are Non Connect (N/C). What happens if you plug a fully wired RS6000 keyboard cable into a PS/2 keyboard port is undefined.

UPDATE: Older RS6000 probably need a keyboard with an RS6000 compatible uProcessor. Later systems could use a PS/2 keyboard, IIRC. So using the optional KB cable w/speaker and a Model M with PS/2 compatible uProcessor might not work on an earlier RS6000. An RS6000 KB might not work on a PS/2, due to a different KB uProcessor.

M$ Elite Keyboard
Hi John !
>I bought a micro soft elite keyboard plugged it into the keyboard port , fired up the ole 9577 Lacuna and the screen locks at the IBM screen. 

From Peter Wendt
   Uh ... that's normal. System self-protection you know ... :-) The Elite Keyboard has a different keyboard ID than "normal" keyboards have - and it is intended for "ATX" machines AFAIK and behaves different after a power on.

   Most likely the 77 Lacuna keyboard controller gets a bit confused by all of that - and hangs the system.  Had that with several Cherry "space saving" keyboards with integrated trackball as well.

Keyboard emulator

   The Guardian for PS/2 -- APKME (thanks for the link, Brian Sammon)

From Jim Shorney
> I was wondering if anyone could help me with finding an inexpensive (i.e. >$20 or less) source for keyboard/mouse emulators. 

   Get a cheap keyboard, take the microcontroller circuit board out, whack the cable to 6 inches or so, and reconnect the microcontroller board. Do the same with a cheap mouse.  Wrap in tape or put it in a small plastic 'project box' to insulate things.

   The extent of my idea was to provide a small widget that will allow a turnkey system to come up and perform its designated task without needing to have a real keyboard connected, or requiring any operator intervention.  No provision is provided, or needed, to connect a real keyboard in this scenario.

   You might investigate Radio Shack's free cuecat.  It has a keyboard passthrough, and although the barcode reader puts out garbage on a model 95, the hardware may prove useful for your need.

Fools Rush in Where Angels Fear to Tread 
   Is there a way to perform the Dr. Jim Bobbitt method of constructing a emulator that will allow for one to plug in a keyboard, run up the system, do whatever, then unplug the keyboard and walk away?

Holy BAT, Batman!
Tim Clarke scrawled:
> What would the results of plugging a second keyboard into the hacked  emulator? Would the real KB run a BAT as soon as it got power?

   A keyboard *always* sends in a BAT message after power-up, provided that it can control the clock and data lines to it's satisfaction.

   Both the Keyboard and Mouse can be disconnected and reconnected to an IBM PS/2 *after* POST and O/S boot has completed. The (A)BIOS "sees" the BAT message from whichever device and re-establishes current state (as kept in the (A)BIOS data area(s)).

   This is effectively what happens when using a manual KVM. The biggest bugaboo is that there mustn't be a mouse message "in-flight" at the exact instant of disconnection as the PS/2 mouse protocol doesn't have the "start bit" in the first byte of the message, allowing resync if a message is partially incomplete and a new BAT message comes in. Also, the way in which the physical contacts are broken can cause problems whereby spurious message bytes are "seen"/sent. This is mainly a problem with the mouse, due to the multi-byte messages without sync-bit and usually causes the mouse to freeze or, worse yet, leap about the place and cause the buttons to operate incorrectly.

   The above is the situation with direct physical connection (or via a "dumb" manual switch) *and* with O/Ss which correctly use the (A)BIOS to drive the devices at the physical level. WinBlowsHard drivers *don't* do this. Nor do Linux ones, it would seem, although I have no direct experience of this. So the above doesn't apply to Win 3.x, Win9x and possibly Win2K and NT.

Impact of Cutting Data and Clock Lines
Don Hills hanging on to the underside of the earth wrote:
Now, a reading from the Good Book(*)...

   Traffic on data and clock lines is asynchronous - no keyboard pressing or mouse moving, no traffic. Both lines are high when no traffic, and are standard TTL type open collector at each end. So you can break and reconnect the clock and data lines without problems. Just maintain power to the keyboard and mouse at all times- a weakness of manual switch-boxes, especially if you switch slowly or an intermediate position is not used or has a powered-down system on it. If you're building a smart switch box, design it to not switch until the clock and data lines have been idle for half a second or so to make sure you don't switch in the middle of a transmission.

(*)The IBM PS/2 Hardware Interface Technical Reference Manual.

Hold That Thought!
Dr. Jim Shorney has the prescription-
> Could a flip-flop or other IC catch the current state of the data/clock and hold it for the new kb? The idea is to keep the system from detecting the loss of data/clock during the insertion of the new KB.

One thought: grab some 4066 CMOS quad analog switch chips and wire them to tri-state one keyboard while the other is switched through, and vice versa.

Keyboard Emulator Hack (Dr. Jim Wayne Bobbitt style)

Wild Bill clears leather with:
   Well, it wasn't hard. The first thing I needed was a busted keyboard. My dad found one alongside the highway that had blown off of a truck. It was all broken, so I opened it up and pulled the controller board inside...after disconnecting all the connections on the board that went to the keys. I left the keyboard cable attached to the controller. To make it look cleaner, I also desoldered the Num, Caps, and Scroll lock LEDs.

   I went to RadioShack and got the casing, as well as a 5 volt blue LED. Forget exactly which one it was--but it is black plastic and the package said something about an RS232 port space.

To mount the keyboard controller inside the casing, I ran a screw through part of the casing and a hole in the controller circuit board.
  As for the blue LED, that was easy. The LED is 5 volts and so is the keyboard supply voltage. So I looked at your keyboard page to get the pinouts, tested with a DMM, and when I found where +5V and a ground came in, I simply spliced in the LED's wires. (Ed. upper two wires, white and yellow)  Then just put the whole mess into the casing, after making place for the LED and cable to come out of.

Running without a Keyboard (or mouse)
   Is there a way to get a 95A to boot without a keyboard attached ?  I want it to boot to NT4 as a file and printer server with no keyboard, mouse, or monitor attached.

Helmut P. Einfalt wins for the simplest suggestion:
   Change the <Set configuration>--<Bypass System Programs on Error> to <Enable>. This will give you an error code on the front panel if no keyboard is plugged into the machine, but it will skip over that error and continue booting NT.
   I'm not sure what the system does when you try to plug in a keyboard once it's running... but you might test its reaction to that.

Ed. Not sure what systems have "Bypass System Programs on Error" or similar. I do know some systems have a "Network Server Mode" though.

Belkin OmniView SE Incompatible
From Tim Clarke
Hi All,
    Just suffered a severe disappointment with these (F1D104u - UK PSU). They *Do Not* work with PS/2 BIOSes, as PS/2s run the keyboard in Scan Code Set 2. The only "workaround" is to disconnect and reconnect the keyboard from/to the KVM after switching to another port. Similarly, when the keyboard is correctly in Scan Code Set 2 the "hot-key" sequence is not recognised. Lastly, although the mouse does continue to work, the "sensitivity" is set to default after a switch. 

Al Savage Responds
   I'm running two OmniViews: one's a four-port SE (I think it's an F1D104, but it's 300 miles away on my server farm right now, running three 8590s and a clone) and a two-port F1D064 here at home.  Both work with 8580s and 8590s routinely with no problem.  I use the hot key sequence on the four-port most often (<Ctrl-Alt-LShift-n>), and the button select on the two-port mostly.  Both methods work.
   Now, ask me about OS/2, scrollms.exe wheel driver, and the OmniView, and you'll get a different story.  W95 works fine with Intellimouse/Logitech wheel mouse, but not OS/2 w/the OmniView. 

Tim Clarke salvos back
Hi Al,
    from the claimed O/S compatibility list for the F1D104 and the problems I've experienced (in both DOS and OS/2) I assume that Win xxx, Linux and Netware all use keyboard drivers that reprogram the keyboard to run in the non-default Scan Code Set 1. If your OmniView "hot-key sequence" is as described, it sounds like you have an F1D074 or earlier firmware.

Cleaning the Keyboard
> Can I safely open the keyboard or will all the springs, keys, etc. jump out  and land on the floor?

From Bob Eager
   Remove the four hex head screws underneath (one needs a long thin hex socket). Detach the cable too. Turn the keyboard the right way up, and remove the top half of the casing. All should be OK.
   I use a pastry brush to clean it. You can remove most of the keys (except for some of the 'long' ones which are best left alone). Be very careful not to squash the spring when putting the key assembly back. Best to tilt the keyboard, and let the spring 'fall' into the slot in the key as it is pushed in (try it and all will be clear). Take the keytop shells off to clean, of course. 

From Helmut P. Einfalt
   And after you've done that, put all keycaps into an old stocking (ask your better half if she has one with a ladder for you...), knot it so as to keep the contents as loose as possible, and take that bag as well both halves of the keyboard shell to the dishwasher.
   Wash it with a standard dishwasher program -- you'll not recognize your keyboard afterwards anymore... (And yes, you must take out the electronic innards before washing). If you don't believe me, go ask Don Peter....    Did that on the original PS/2 mouse, too.... Works like a charm. 

From Peter
   Do *not* remove the lower part of the keycaps - only the upper part with the "lettering". The keycaps are a two-part assembly: the "pushrod" and the keycap itself. Remove all keycaps - be careful with the spacebar and the "bigger ones". 

Socket Sizes Needed
From Myself, god-Emperor of Microchannel
   I used a 7/32 socket - (5.5mm metric size is) a nutdriver or a deep socket. The important thing is something deep enough to fit in the well that most of the screws are in. 

From Peter
   I got a SKG (Made in Germany) No. 493, 5.5mm Chrome Vanadium. From the "tool wall" of our local super-market for about $3US. Looks like a long screwdriver with a thin walled socket as tip. Works perfectly well since 1987 ...) 

Dr. Jim
   Speaking of Snap-on, they do carry a nice long socket that works for these.  We bought one for our shop; not cheap, but worth it.  5.5mm, IIRC. 

Allthumbs says:
   I'm in Canada so the part number may not be applicable south of the border, but this will do the trick. Go to Sears and buy a 7/32" Craftsman deep socket, part number 0942771. You don't even have to buy the 1/4" wrench to fit the socket onto, you can just use the little plastic holder that the socket comes with, because there usually isn't much torque on the screws that hold the IBM keyboards together. Just apply even steady force and you can solve this little problem for about three dollars. (Ed. I now agree after opening up three Model Ms with the socket alone)

Fixing the detached plastic base

I was delving deeply into the azure realm, when I noticed my Industrial Model M keys were "flexing" before they would do a left Shift-(letter). This was odd, at the time I swapped out the keyboard and thought nothing of it. I finally opened up the case, only to find a goodly number of the melted plastic studs had snapped off, hence the flexing when the key forced the plastic frame down close enough to the curved metal base to create a closed switch...

Searching the web brought up many mods using either wood screws, metal screws, or the omega device, nut and bolt. Being the lazy kind, I asked on the PS/2 Hardware forum for advice. As usual, it came from a man used to the glare of camera strobes and the sighs of starlets that can't catch his attention...

Dr. Jim Shorney takes time from filming infomercials and gives us a prescription:

"Diamond Jim" to his clique, otherwise known as "The Solder God to the Stars" let slip his new Hollywood method of re-attaching the plastic base to the curved metal base:

"The guys that write these nice tutorials don't know about plastite screws. I found a size that works well from McMaster-Carr. Worship me some more and I may enlighten you.

"From the Holy Coffee Can of M-bits...

2-28 x 1/4 TX PLUS HF PT 48 TORXPLUS — T6 Drive
McMaster-Carr SKU 95893A153 50-pack

Also bought #48 and #49 drill bits via ePay to cover all bases."

"Material locks against the triangular (tri-lobular) shank to ensure a vibration-resistant connection. Also known as Plastite screws, they have coarse, sharply angled threads and a blunt tip. They provide maximum holding strength with minimal stress in formable plastics such as polypropylene and polycarbonate. Length is measured from under the head for pan head screws and from the top of the head for flat head screws."

Incompatible IBM Keyboard
From Charles Lasitter
   Part 84G2524 / FRU 84G2529, mfg date 09/28/99, vendor: Unicomp; IBM has managed to do the unthinkable.  It now makes PS/2 input devices that can't stand the sight of real PS/2 equipment.
   Specifically, keyboards made by this vendor for IBM work great in crAptivas, but don't like Model 77s, 95s, and so on.  Generates the "301" keyboard error right away in the Model 95 computers, and generates nonsense keyboard output attached to a Model 77.
   I had several TrackPoint keyboards with sticky / weak left mouse button bars, and I submitted them for service.  The failure was really one of annoyance / hindrance, as opposed to just plain broken keyboards.
   Well, these keyboards were returned in their place, and the manufacturer was a new one.  I can't remember the first manufacturer, but I'd advise you to try FIND OUT before you go buying or giving up any currently working trackpoint keyboard of this type.

Keyboard Errors

Error Code Description
KB errors
KB reset or stuck-key failure (XX 301 XX = scan code in hex)
System unit keylock switch is locked
User-indicated KB test error
KB or system-board error KB controller failure
KB or system-board error KB clock high
KB +5v error  PS/2 KB fuse (on motherboard) blown
KB error
KB cable error
KB LED card or cable failure
KB LED card or cable failure
KB interface cable failure
KB LED card or cable failure

Scan Code Followed by 301 Error

This error is from a problem with a specific key, in this case the Left-Alt key, scancode 11.
The error list above is correct, but confusing.

301 KB reset or stuck-key failure (XX 301 XX = scan code in hex) would result in "Scan Code" "301" or in this case "11" "301"

If E0 or E1 is displayed, one of the "special keys" is sending the first half of their 2-byte code to the system.

Just try it out on a running system - reboot and hold one key until the system restarts.
You will end up in the exact error like described. And find the value before 301 in the scan-code tables.

Physical check
To test, which of the keys is malfunctioning, press any key after the other, beginning left / top row down to the right lower key.
Any key must act as normal, make an audible "click" when pressed and also immediately after being released again. The feel while pressing must be exactly and not sticky at all.
If one key causes no reaction or appears as already pressed suspect it to be the -or one of the- defective.

Error 305
From Peter:
Error code 305 at power-up means "+5 VDC on keyboard missing".
This might indicate a broken cable, but also a blown keyboard/auxiliary device-fuse. On many boards this fuse is not replaceable!
Or at least will require a lot work to a) locate and b) replace it.

Speaker Grille

>Well I know this has nothing to do with cleaning but... what is that hole on the bottom of PS/2 keyboard. It looks like a mounting place for some kind of a speaker or what?! 

   The first series of the MF-keyboard called MF-1 which lacked the 3 status LEDs had in fact a speaker. It was designed for the XT family of IBM PCs and was intended to be used for "professional typists", which prefered to have a "click" in addition to the mechanical "keyclick" itself. There was a software available, which enables / disables the speaker click ... standard was "On" AFAIK. Worked with that thing for some time back in 1987 ...
   The MF-II design 101/102 keys *with* the 3 status LEDs inherited the entire case - and the speaker "grille" was left as an artifact and no longer used or needed. Guess it was cheaper for IBM keeping the old molding forms - and produce two keyboards on the same machinery.

Model M Parts
    If you have a desktop, the 5' cable might work for you. But for myself, I prefer the 10' cable. If you have a 80/85/95, you have to go to the floor and behind the system. If you have a desktop, you usually have to run the cable behind the system. This way you can sit away from the monitor.

Looks grim to find the long PS/2 to SDL cable, you will probably have to get a male/female PS/2 cable...

Model M Cables (Looks like they are 5' long)
1398094 Detachable Y Cable
1379947 Detachable Y Cable - Black
1395110 Detachable PS2 Cable - Pearl

Model M Parts
PVPLASM Pivot Plate & Spring Assembly
INSERT Stabilizer Insert (Enter key, Black - Vertical Keys, White - Horizontal Keys)
MEM Membrane assembly (Enter membrane assembly P/N you wish to purchase)
49G2224 Replacement Pointing Stick Caps
LED LED Overlay - Num / Caps / Scroll Lock (Model Ms used "Pebble - LEDs on bottom")
BUTTONS Buttons, printed, unprinted, sets, singles...

Present Model M Manufacturer

Unicomp bought the buckling spring technology from Lexmark.

Ian Warford wrote:
   They most certainly are still manufacturing them. They even (according to the sales guy I talked with) plan on making some black buckling spring 101's next year. Oh, they also make 104 key windows keyboards that feel the same as the old IBM ones (Ed. almost the same).

Note the manufacture date on my Model M. (Ed. Image edited for size)

42H1292 IBM 101 key buckling-spring KB. Reg $79 Sale $49.00
1393278 IBM "SpaceSaver", heavy-duty 84 key KB Reg $79 Sale $69.
71G5794 IBM PS/2 Enhanced Quiet Touch KB with 2 Button Mouse

General Keyboard Maintenance

From Peter:
Most of the original IBM-keyboards have separate keycaps, which can be removed very easy. Under this cap sits the key-'corpus' and underneath a small spring. This spring is fixed with a contact-plate inside the keyboard.
Attention: It is very easy to bend, deform or pull out this spring... but very hard to get one back onto the contact-plate to make the key work properly again. Take care!

In case you accidently removed the key-button entirely from the keyboard:

  • make sure, that the spring isn't off from the contact-plate by gently touching it. If it returns to vertical position it is okay.
  • separate the keycap and the lower button part
  • look inside the button: there's a small plastic nose to set the spring into.
    The U-shaped cutout must be positioned to the rear of the keyboard.
  • lift up the keyboard at the frontside
  • make sure that the spring falls to the rear of the surrounding collar
  • slide the button inside the collar and gently press it down until you hear the button snap in and contact-plate clicking
    Watch out not to bend or damage the spring during this process !
  • check the function of the key
    Clicking must be audible and the tactile 'feel' must be as usual.
  • Now install the keycap again

You will have to remove the keytop in case some dirt (mainly coffee or Coca-Cola) sits between keybutton and the collar. Keys then tend to stick, the feeling while pressing the key is somewhat soft and sticky and the 'click' after releasing the key is somewhat delayed. Cleaning inside of the button (...not the cap !) and the key-collar with alcohol will mostly solve these problems.

It is a good idea to maintain the keyboard frequently.

Remove all keycaps except the space-bar and probably the two larger keys on the right side ([+] and [ENTER] from the numeric keypad). These keys have additional metal guides at the underside and are hard to re-assemble.
Use a small screwdriver or the special IBM 'Keycaps Puller Tool' to remove the caps. If you are not concerned ... well ... remove all caps.

Use a longhaired, harder brush to clean the areas around the keys from dirt. In most cases this is just dust, but sometimes there are hair-needles, nails, screws, clamps and other stuff. Turn the keyboard upside down and shake it...!
It would have been a good idea having tried this over a waste-bin, right?
Better next time.

Cleaning the dirty, sticky keycaps is easy if you have a washing-machine or a dishwasher. I prefer dish-washers.
Fill all the keycaps in one of these plastic nets which are used to pack oranges. Use a piece of wire or a nylon strap to have the net securely closed. Then put it in the dish-washer. Use some cleaner on it - as if you wanted to clean your dishes like usual.
After this they look like new.

I use the same procedure on the entire keyboard housing by the way. It is quite easy to disassemble. 3 hex-screws from the underside, remove keyboard assembly and internal circuit board and put the two housing halves in the dish-washer too.

Now, this is much harder if you have only a washing-machine. It is Not recommended to treat the keyboard housings this way - they will break in pieces. The keycaps can be washed as well. But not too hot. I had good results in pre-washing with 30° C and put them inside of one old nylon stocking. Basically the same procedure as with the dishwasher...

Content created and/or collected by:
Louis Ohland, Peter Wendt, William Walsh, David Beem, Tatsuo Sunagawa, Jim Shorney, Tim Clarke, Kevin Bowling, Tomáš Slavotínek, and many others.

Ardent Tool of Capitalism - MAD Edition! is maintained by Tomáš Slavotínek.
Last update: 05 Aug 2021 - Changes & Credits | Legal Info & Contact