Switchable I/O ports
This page was last modified 16:03, 25 June 2020 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 IDs so far:

ID Maker
1 ASCII/Microsoft
2 Canon
3 Casio
4 Fujitsu
5 General
6 Hitachi
7 Kyocera
8 Matsushita (Panasonic)
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
ID Device
128 Image Scanner (Matsushita)
170 Darky (SuperSoniqs)
171 Darky (SuperSoniqs) second setting
212 1chipMSX / Zemmix Neo (KdL firmware)
254 MPS2 (ASCII)


ID numbers between 1 and 127 are manufacturer ID numbers for built-in devices, and ID numbers 128 to 254 are for peripheral device.

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 MSX.
  • Read the port 044h. If the value read is 247, it is that it is a Panasonic MSX2+ having a Z80 with turbo mode (5.37MHz).
  • So you can write 0 to port 41h to activate turbo mode or 1 to disable it.