Switchable I/O ports
This page was last modified 10:43, 4 July 2021 by Gdx.

When a value is written to the register 40h, this allows to access to the corresponding device(s) via ports 41h~4Fh. The value is an ID to select the device(s).

Here are the reserved or used IDs so far:

ID Devices
1 ASCII/Microsoft
2 Canon
3 Casio
4 Fujitsu
5 General
6 Hitachi
7 Kyocera
8 Matsushita (Used for MSX2+)
9 Mitsubishi
10 NEC
11 Yamaha
12 JVC
13 Philips
14 Pioneer
15 Sanyo
16 Sharp
17 SONY
18 Spectravideo
19 Toshiba
20 Mitsumi
21 Telematica
22 Gradiente
23 Sharp Brazil
24 GoldStar (LG)
25 Daewoo
26 Samsung
128 Matsushita's Image Scanner
165 WORP3
170 SuperSoniqs's Darky
171 SuperSoniqs's Darky second setting
212 1chipMSX / Zemmix Neo (KdL firmware)
254 ASCII's MPS2


ID numbers between 1 and 127 are ID numbers for MSX manufacturers for built-in devices, and ID numbers 128 to 254 are for external devices.

Writing 0 (or an unused value) to port 40h disables extended I/O ports.

Example of use with Panasonic MSX2+:

  • Write value 8 at port 40h to enable extended I/O ports for Panasonic MSX2+.
  • Read the port 040h. If the value read is 247, it is that it is a Panasonic MSX2+ having a Z80 with turbo mode (5.37MHz).
  • You can therefore write 0 to port 41h to activate turbo mode or 1 to deactivate it. Reading bit 0 of this port will tell you the current mode and bit 7 will show you the internal software switch state (0 for Off).