dipswitches keys and charsets - cayce-msx/msxpp-quick-ref GitHub Wiki

DIP switches, keys and character sets

DIP switches & status LEDs

  • SX1 & related: LEDs are in reverse order of DIP switches. There's one extra (8 vs. 9) to show clock speed (3 states).
  • SX2 & related: there is only one LED ("main LED") which flashes on disk access ("LED 1" below). On the SX2, it's visible through the transparent pane, located left of the "SX|2" logo.

Bold = standard setting

All but RAM mapper size & microSD can be changed at runtime using keyboard.

Switches LED Name Series Setting Key Meaning
1 8/9 - OFF/OFF CPU Clock Both OFF F12 3.58MHz
OFF/ON >> ON/OFF ON 4.10MHz to 8.06MHz (10.74MHz system bus)
F12: 3.58MHz >> 5.37MHz (Turbo Pana) >> Custom Speed
2 / 3 6/7 Video Output Both OFF / OFF (Shft-) Composite / S-Video: 15kHz 50Hz+60Hz interlaced
OFF / ON PrtScr RGB: 15kHz 50Hz+60Hz interlaced - requires VGA to SCART cable
ON / OFF VGA Mode for LED TV/display: 31kHz 50Hz+60Hz progressive (square pixels @60Hz)
ON / ON VGA+ (CRT, legacy, hardware scanlines on Zemmix Neo): 31kHz 50Hz+60Hz progressive
4 5 Cartridge Slot-1 Cyclone I OFF Shft-F12 Slot-1
ON 3.9.1 and earlier: ESE-MegaSCC+ 1024kB (shared with 2nd half of ESE-MegaSCC+/RAM Slot-2, when in 2048kB mode)
ON 3.9.2 and later: ESE-MegaSCC+ 2048kB (shared with 2nd half of Slot-2, when in ASCII-16K 4096kB mode)
4 5 Cartridge Slot-1 & I/O Slot-3 SM-X/SX-2 see above see above - with the difference that slots 1 and 3 are enabled/disabled in tandem
5 / 6 3/4 Cartridge Slot-2 Both OFF / OFF Shft-ScrLk Slot-2
OFF / ON ESE-MegaRAM ASCII-8K 1024kB (2048kB since v3.9.2; upper half read-only)
ON / OFF 3.9.1 and earlier: ESE-MegaSCC+ 2048kB
ON / OFF 3.9.2 and later: ESE-MegaSCC+ 2048kB (shared with 2nd half of ASCII-8K 2048kB mode)
ON / ON ESE-MegaRAM ASCII-16K 2048kB (4096kB since v3.9.2; upper half read-only)
7 2 OFF Memory Mapper Both OFF - 2048kB RAM
2 ON ON 4096kB RAM
7 2 OFF EPBIOS SM-X/SX-2 OFF - EP-BIOS 1
2 ON ON EP-BIOS 2
8 1 OFF MicroSD slot Both OFF - Disabled (recommended when connecting external storage via cartridge)
1 flash on R/W ON Enabled (default)

Note: dipswitch 7 is shared; EP-BIOS 1 always selects 2048kB RAM and EP-BIOS 2 always selects 4096kB RAM. This can be overridden by holding right-CTRL during boot; that will enable 4096kB RAM even when dipswitch 7 is OFF (thus EPBIOS 1 is loaded).

Keyboard mapping

On SX1 & related, LEDs 2-9 show new volume briefly after changes, as a volume bar. Note: the volume bar goes right to left (volume 2 lights LEDs 8&9, etc).

Key LED (where avail.) Series Function / MSX key
left-CTRL CTRL
Home CLS/HOME
End STOP
Win SPACE
F6 or left-ALT GRAPH
F7 or Menu/App Num Lock KANA/Code/Country lock
F8 SELECT
F9 temp. volume bar PSG vol+
SHIFT + F9 temp. volume bar PSG vol-
F10 temp. volume bar SCC vol+
SHIFT + F10 temp. volume bar SCC vol-
F11 temp. volume bar FM vol+
SHIFT + F11 temp. volume bar FM vol-
PAGE UP temp. volume bar vol+
PAGE DOWN temp. volume bar vol-
F12 Toggle CPU speed 3.58MHz > 5.37MHz > 8.06MHz (or custom)
(SHIFT +) PRINTSCREEN Toggle CVBS/S-Video > SCART RGB 15kHz > VGA TV 31kHz > VGA+ CRT 31kHz
SCROLL LOCK Scroll Lock Cyclone I Toggle tape in/out ('CMT') on the red/right channel. Makes a 'tick' sound on any connected speakers.
SCROLL LOCK Scroll Lock Cyclone IV-E Toggle OPL3
SHIFT + F12 Toggle slotmode of cartridge Slot-1: external > SCC+ 1M
SHIFT + SCROLL LOCK Scroll Lock! * Toggle slotmode of cartridge Slot-2: external > MegaRAM ASCII8 1M > SCC+ 2M > MegaRAM ASCII16 2M
right-CTRL Turbo-R & FS-A1W(S)X 実行/Jikkou/Execute/Yes (right of space bar)
right-ALT Turbo-R & FS-A1W(S)X 取消/Torikeshi/Cancel/No (left of space bar)
Pause / break all off exc. Wi-Fi Turbo-R & FS-A1*X Pause key (firmware/details.txt calls this "Blackout Mode")
left-CTRL + SHIFT + PGDOWN Cyclone IV-E Autofire ON/OFF toggle
left-CTRL + SHIFT + PGUP main Cyclone IV-E Autofire Status LED OFF
left-CTRL + PGUP/DOWN Cyclone IV-E Autofire Speed
left-CTRL + F12 OCM-PLD 3.9.2 Warm Reset (GETRESET)
left-CTRL + SHIFT + F12 OCM-PLD 3.9.2 Cold reset (GETRESET /C)
Hard reset key - short click <1s OCM-PLD 3.9+ Quick reset
Hard reset key - long click >1s OCM-PLD 3.9+ Reload SDBIOS / EPBIOS
Hard reset key - click during initial blinking ** OCM-PLD 3.9+ Cancel loading of SDBIOS; start EPBIOS instead

*) pressing Shift-Scroll Lock, to flip through slot-2 modes on my USB keyboard (with Adder USB-to-PS/2 converter) actually enables the Scroll Lock LED! This is a bit awkward, because MSX++ signals "CMT mode", i.e., tape input enabled, with that LED. So in this case, the LED is on, but CMT mode is off. Not sure if this works the same on all keyboards.

**) On OCM-PLD 3.9.0 and higher, to force loading of EPBIOS even though there is an SDBIOS on the inserted μSD card: first hard reset the machine by holding the reset button longer than a second. Then wait until the MicroSD slot R/W indicator (SX1: leftmost, SX2: main LED) starts flashing, and click the reset button again. (A regular short click will do.) The required timing is pretty precise, but it does work.

Startup keys

A few keys can be held at startup. This will reconfigure the MSX++. Note: this is supported since version 3.9.2.

Key Version Function
right-ALT OCM-PLD 3.9.2 set Slot0 in Primary mode (to boot C-BIOS)
right-CTRL OCM-PLD 3.9.2 enable Extra-Mapper 4096KB (to boot EPBIOS1 with 4MiB)

These two settings can not be combined; Extra-Mapper is located in Slot0-1.

Keyboards, keyboards

So, you thought because you can tailor the OCM-PLD firmware to a few keyboard types (BR, ES, FR, IT, US, JP), the MSX keyboard would synchronise with that? Well, at least I did ;)

(With 'synchronising' I mean: BIOS address &H002C would flip from 0 to 1 through 6, and the key matrix would be interpreted as, e.g., International or Spanish / Argentinian.)

Alas, no, the firmware keyboard type only has an effect on how the PS/2 key presses are interpreted. With SETSMART -15 (Set Japanese Keyboard Layout) / SETSMART -16 (Set Non-Japanese Keyboard Layout - which is the default) - or more conveniently with KEYBOARD.COM /J respectively KEYBOARD.COM /N - you can switch between key press translation modes:

  • Japanese: make it appear like you're typing on a Japanese keyboard
    • For example, when (on my US-International Ansi104 keyboard) typing shift-2, the keyboard symbol says "@" but a " appears. I press symbol ] and [ appears, etc.
    • this mode is the default (enabled at boot) when flashing a OCM-PLD firmware with JP keyboard
  • Non-Japanese Keyboard: use the layout as hardcoded into your OCM-PLD firmware - which can be BR, ES, FR, IT or US

Note that the above is true only when using a Yen or Backslash MainROM BIOS. See Western charset how that changes with the third MainROM type.

More details: see OCM-PLD Pack at

  • esemsx3/src/peripheral/eseps2_spec/eseps2_spec_english.txt
  • esemsx3/src/peripheral/keymap_work/scan_codes_us_jp.htm
  • esemsx3/src/peripheral/keymap_work/scan_codes_set_2.htm

Yen charset

The "Yen" charset is the same as any Japanese MSX contains.

Turbo-R_JP complete font

Backslash charset

The "Backslash" charset is the same as Yen, but then ¥ replaced by . It helps for more familiar DOS path names - for those that are more accustomed to .

This charset is the default when creating an SDBIOS with make-sdb.bat/make-sdbios.sh, and is part of the standard EPBIOS.

The YENSLASH.COM tool from OCM-PLD msxtools can be used to change Yen to backslash and vice versa, at runtime.

Western charset

When you load an SD-BIOS with a 'Western' MainROM, these are the characters that can be shown on screen. They are the same as, e.g., the NMS8250.

Taken from openMSX:

<2 rows with characters that could not be copy-pasted>
 !"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{|}~
ÇüéâäàåçêëèïîìÄÅ
ÉæÆôöòûùÿÖÜ¢£¥□□
áíóúñѪº¿□¬□□¡«»
Ãã□□Õõ□□□□□□□□¶§
<4 rows with characters that could not be copy-pasted>

A full screenshot:

MSX2_EN complete font

Keyboard entry with Western font

Recommended setup:

  • KEYBOARD.COM /J: Japanese-106
    • might feel counterintuitive, but works!
  • Physical keyboard: ISO105
    • When using a (Dutch) Ansi104 keyboard, you'll not be able to enter the | and \ characters! PS/2 set 2 scancode 61h will be missing.
  • OCM-PLD 3.9.1

The results resemble the keymap published by KdL. That keymap is actually an unedited hires scan from the NMS8280 user manual.

I've adapted that keymap for ISO105 keyboards to convey the following information:

  • it's only valid in Japanese keyboard mode (KEYBOARD.COM /J)
    • only if you flash the Japanese OCM-PLD firmware build, then that mode will be enabled at boot
    • the US firmware, however (which comes pre-installed with 8bits4ever device), sets the KEYBOARD /N layout at boot
  • the `~-key maps to MSX 'SELECT' (which MSX++ also maps from F8)
    • fun fact: SELECT (and thus ` in this mode, with or without SHIFT) clears the command line in COMMAND2.COM v2.4x. (COMMAND-2.44-TNI/history.txt mentions a few line editing key combos, but not this one)
  • ` and ~ (and the four symbols as shown on the keymap topleft) must instead be entered using the rightmost \|-key (which is missing on KdLs keymap)
  • the leftmost \|-key is the (only) way to enter characters \ and | (and the two symbols as shown on the keymap bottomleft)
    • ⚠️ my SX1 with OCM-PLD 3.9.0 fails on this. It triggers unmapped MSX key r15b7 ("N/A"), not r1b4. I can't find a bugfix description for 3.9.1, so I'm not sure what causes this.
  • as you'd expect with Western layout, CODE (F7) is not a lock like caps lock, but rather a modifier like shift and graph (left-alt/F6)
  • some of these symbols appear only in BASIC, not in DOS (yes, I made that mistake). Probably related to DOS itself; not the hardware, firmware or configuration.

Note that this setup does not map the DEAD/accents key (r2b5)! A true JP-106 keyboard is required for this (or any other keyboard that generates PS/2 set 2 scancode 51h). So you'll need to use (or memorise) the keymap linked above to enter characters like é and î.

Keyboard entry with Western font and (default) non-Japanese keyboard mode (not recommended)

At boot, the non-Japanese keyboard mode is set by default. With a Western MainROM that mode will actually remap keys very awkwardly.

Also, ')' cannot be entered.

Fun fact: the DEAD/accents key is partially mapped in this mode:

  • SHIFT+'-' followed by 'a' displays á
  • SHIFT+F7+'-' followed by 'a' displays ä
  • etc.

So of the full set of accents `´^¨ only ´¨ can be entered (type éë but not èê).

Character wanted on screen Key(s) to press Remark
regular chars
a-z a-z same
0-9 0-9 same
numeric row
{ `
- (minus) - same
_ (underscore) =
+ SHIFT+`: ~
! SHIFT+1: ! same
[ SHIFT+2: @
# SHIFT+3: # same
$ SHIFT+4: $ same
% SHIFT+5: % same
= SHIFT+6: ^
^ SHIFT+7: &
" SHIFT+8: *
* SHIFT+9: (
( SHIFT+0: )
) not possible! not possible to enter this char
: SHIFT+=: +
SHIFT-DEAD/accent key SHIFT+-: _ makes only half of the diacritics accessible
chars right of o,p
] [
` (backtick) ]
\ \ same (ANSI104 keyb)
} SHIFT+[: {
~ SHIFT+]: }
| SHIFT+: | same (ANSI104 keyb)
chars right of k,l
; ; same
& ' (single quote)
\ \ same (ISO105 keyb)
' (single quote) SHIFT+;: :
@ SHIFT+': "
| SHIFT+: | same (ISO105 keyb)
chars right of n,m
, , same
. . same
/ / same
< SHIFT+,: < same
> SHIFT+.: > same
? SHIFT+?: ? same
Accented characters (subset) awkward entry...
ä F7+a
é F7+u
î F7+e
Æ F7+SHIFT+j Scandinavian ligature
ij F7+; Dutch ligature
Ñ F7+SHIFT+n
Greek (subset)
Φ F7+SHIFT+2 lower case phi
σ F7+] lower case normal sigma
μ F7+m lower case mu - has some logic to it
other (subset)
ƒ F7+1
¿ F7+SHIFT+/ has some logic to it

Photo of all key combos. Note that not all 253 characters from the charset are present. keymap Western-International

Note that you can 'look up' the special characters: find the wanted character in the 'International key matrix', then type the corresponding key found in the 'Japanese key matrix'. For instance, for '^' that is row 0, bit 6 in the INT matrix (plus SHIFT). The JP matrix row 0, bit 6 reads '&' so that is what you need to type (using SHIFT+7) to get ^ on screen.

⚠️ **GitHub.com Fallback** ⚠️