IBM Model M 122 key “Battleship”

I’ve had an IBM Model M 122 key teminal keyboard in my spares cupboard for ModelMKeyboardover a decade, unfortunately due to the fact it was originally connected to a minicomputer it has an RJ45 connector & A different keyboard protocol so changing the plug & connecting it to a PC will result in Windows not understanding a word the keyboard is saying.

I eventually got around to purchasing a Soarer’s converter from ebay, one that’ll convert from RJ45 to USB. These converters do more than just allow use of old keyboards with moden PC’s, they also allow key remapping, macros and layers which you can think of as alternative function keys.

The converter worked out of the box, although a few keys needed to be remapped as they’re in odd places.
I downloaded the documentation & software from https://deskthority.net/viewtopic.php?f=7&t=2510&start= & you’ll also need the HID listen program from: https://www.pjrc.com/teensy/hid_listen.html

Once extracted you’ll find the software & examples of scripts needed to configure your adaptor. The software is pretty straightforward to use & on Windows you can just drag a configuration script to the scaswr.bat file included.
The basic use of the script is to remap one key to another, you can do this by running the hid_listen program, pressing the key you want to remap & checking the output of the program. The data you want is the hex number preceded by +, so for example pressing F13 would be +68. Opening up the codes.html file & cross referencing the HID code with the name shows the F13 key is named unsuprisingly F13 although other keys are not so obvious. So if you wished to remap the F13 key to volume down, you’d look up the volume definition in the codes.html file & the following code would be used:

F13 MEDIA_VOLUME_DOWN

You are also able to create macros. Here’s an example mapping F21 to lock a windows session:

macro F21 #Windows lock
MAKE LGUI
MAKE L
BREAK LGUI
BREAK L
endmacro

The first line defines the macro to be mapped to F21, the # means all text to the right of that is a comment. The next two lines indicate pressing the left windows key and the L key, then lines 4 & 5 release the keys, endmacro show the end of the macro.

You can think of function layers as custom shift keys, holding them down changes what other keys do. To configure these, the first step is to define function mode, you can have up to 8. This example assignes Function 1 to layer 1 then sets key F1 to act as the function key:

layerblock
FN1 1
endblock

remapblock
FN1 F1
endblock

You can then define for example pressing F1 & 1 to act as the help key with:

remapblock
layer 1
1 HELP
endblock

So A simplified complete working configuration script (for example called renmap.sc) could be:

layerblock
FN1 1 #Define function
endblock

remapblock

#FKey definitions
EXTRA_F1 ESC
EXTRA_F2 MEDIA_WWW_HOME
EXTRA_F5 MEDIA_MY_COMPUTER
F13 MEDIA_VOLUME_DOWN
F14 MEDIA_VOLUME_UP
F15 MEDIA_MUTE
F16 MEDIA_MAIL

F22 PRINTSCREEN
F23 SCROLL_LOCK
F24 PAUSE
#Cursor key definitions
LANG_4 DOWN
DOWN FN1
RCTRL LGUI

#Numpad definitions
PAD_PLUS PAD_ENTER
PAD_MINUS TAB
ESC NUM_LOCK
NUM_LOCK PAD_SLASH
SCROLL_LOCK PAD_ASTERIX
EXTRA_SYSRQ PAD_MINUS
PAD_ASTERIX PAD_PLUS

#Main keyboard definitions
EUROPE_1 BACKSLASH # BACKSLASH is HASH

endblock

macroblock
Macro EXTRA_F3 #Call TaskManager
MAKE LCTRL
MAKE LSHIFT
MAKE ESC
BREAK ESC
BREAK LSHIFT
BREAK LCTRL
endmacro
macro F21 #Windows lock
MAKE LGUI
MAKE L
BREAK LGUI
BREAK L
endmacro
macro EXTRA_F7 #Copy
MAKE LCTRL
MAKE C
BREAK C
BREAK LCTRL
endmacro
macro EXTRA_F9 #Paste
MAKE LCTRL
MAKE V
BREAK V
BREAK LCTRL
endmacro
macro EXTRA_F4 #Undo
MAKE LCTRL
MAKE Z
BREAK Z
BREAK LCTRL
endmacro
macro EXTRA_F6 #Create virtual desktop
MAKE LGUI
MAKE LCTRL
MAKE D
BREAK D
BREAK LCTRL
BREAK LGUI
endmacro
macro EXTRA_F8 #Switch to virtual desktop right
MAKE LGUI
MAKE LCTRL
MAKE RIGHT
BREAK RIGHT
BREAK LCTRL
BREAK LGUI
endmacro
macro EXTRA_F10 #Switch to virtual desktop left
MAKE LGUI
MAKE LCTRL
MAKE LEFT
BREAK LEFT
BREAK LCTRL
BREAK LGUI
endmacro
endblock

You can get more information regarding programming the converter from https://www.reddit.com/r/MechanicalKeyboards/comments/2o25pm/simplified_instructions_for_programming_teensy/

Leave a Reply

Your email address will not be published. Required fields are marked *