What is MSX?
MSX was a standardized home computer platform co-conceived by Kazuhiko Nishi of ASCII Corporation and Microsoft Japan, announced in June 1983. The goal was ambitious: create an open standard that any manufacturer could license, ensuring software and hardware compatibility across all MSX machines—a vision that predated the IBM PC clone era and deeply influenced how the industry thought about interoperability.
Unlike proprietary systems such as the Commodore 64 or ZX Spectrum, MSX defined a minimum hardware specification. A program written for one MSX machine would run on any other, regardless of the manufacturer. This led to over 5 million units sold globally and adoption by more than 50 manufacturers across Japan, Europe, Latin America, and the Middle East.
System Architecture
The MSX standard defined a precise hardware architecture that every compliant machine had to implement. This was not a suggestion—it was a contract between manufacturers and the software ecosystem.
Memory Map & Slot System
The most distinctive architectural feature of MSX is its slot system. The Z80's 64 KB address space is divided into four 16 KB pages (Page 0–3), each of which can be mapped to one of up to four primary slots. Each primary slot can optionally be expanded into four sub-slots, giving a theoretical maximum of 16 addressable memory regions.
| Address Range | Page | Typical Content |
|---|---|---|
| 0000h – 3FFFh | Page 0 | BIOS ROM / Sub-ROM (MSX2+) |
| 4000h – 7FFFh | Page 1 | MSX BASIC ROM / Cartridge ROM |
| 8000h – BFFFh | Page 2 | Cartridge ROM, RAM expansions |
| C000h – FFFFh | Page 3 | Main Work RAM (always) |
I/O Port Map
| Port(s) | Device |
|---|---|
| 98h–9Bh | VDP (V9938/V9958) data & register access |
| A0h–A2h | PSG (AY-3-8910) sound chip |
| A8h–ABh | PPI (8255) — keyboard, slot select, CAS |
| B4h–B5h | RTC (MSX2+) — RP5C01 real-time clock |
| C0h–C3h | MSX-AUDIO (Y8950) — MSX2+ |
| 7Ch–7Dh | MSX-MUSIC (YM2413 / OPLL) |
| E6h–EBh | MSX-DOS / Disk ROM port region |
Minimum MSX 1 Specifications
Z80A @ 3.58 MHz
All MSX machines share this CPU, ensuring binary compatibility across the entire platform.
8–64 KB RAM
Minimum 8 KB VRAM (16 KB on MSX2). Main RAM 8–64 KB (16 KB typical MSX1, 64 KB on MSX2).
TMS9918A / V9938
Dedicated video processor handling all display output independently from the main CPU.
AY-3-8910 PSG
3-channel programmable sound generator, also hosting two joystick ports and a cassette interface.
CPU — Zilog Z80
Every MSX generation through MSX 2+ used the Zilog Z80A running at 3.579545 MHz (derived from the NTSC color subcarrier frequency). This was a deliberate choice: a well-documented, widely supported 8-bit processor with a rich instruction set and large developer community.
| Feature | Detail |
|---|---|
| Architecture | 8-bit data bus, 16-bit address bus |
| Clock Speed | 3.579545 MHz (NTSC) / 3.546893 MHz (PAL) |
| Registers | A, B, C, D, E, H, L + shadow set (A', B'…) |
| Index Registers | IX, IY (16-bit) |
| Stack Pointer | SP (16-bit) |
| Addressable RAM | 64 KB direct (expanded via slot paging) |
| Interrupt Modes | IM 0, IM 1, IM 2 (MSX uses IM 1) |
MSX turbo R — R800 CPU
The turbo R introduced ASCII Corporation's R800 processor—a 16-bit internal architecture CPU maintaining full Z80 instruction-set compatibility, but executing code 2–7× faster depending on memory access patterns. It featured a hardware multiplier and ran at 7.16 MHz effective throughput.
| Feature | R800 | Z80A |
|---|---|---|
| Internal Width | 16-bit | 8-bit |
| Clock | 7.16 MHz | 3.58 MHz |
| Multiply | Hardware (MULUB/MULUW) | Software only |
| Pipeline | 2-stage | None |
| Z80 Compatible | Yes (full binary) | — |
| RAM Access | DRAM burst mode | Standard |
The turbo R could switch between R800 and Z80 modes under software control, allowing compatibility with games that relied on Z80 timing for sound or gameplay.
Video — VDP Chips
TMS9918A — MSX 1
Texas Instruments' TMS9918A (or compatible clone) powered MSX 1 machines. It operated independently of the main Z80, handling all display generation autonomously. Communication was done via two I/O ports: one for data, one for register/address control.
| Mode | Resolution | Colors | Notes |
|---|---|---|---|
| Screen 0 | 40×24 text | 2 | Text mode, no sprites |
| Screen 1 | 32×24 tiles | 16 (2/tile) | Basic graphics, 32 sprites |
| Screen 2 | 256×192 | 16 (2/8px row) | High-res bitmap-ish |
| Screen 3 | 64×48 multicolor | 16 | Each pixel is 4×4 block |
Sprites on the TMS9918A are 8×8 or 16×16 pixels, with magnification. A limit of 32 sprites total and 4 sprites per scanline applied.
V9938 — MSX 2
Yamaha's V9938 was a quantum leap forward. It added 128 KB VRAM (expandable to 192 KB), hardware scroll, bitmap modes, and line-based interrupts.
| Mode | Resolution | Colors |
|---|---|---|
| Screen 5 | 256×212 | 16 from 512 |
| Screen 6 | 512×212 | 4 from 512 |
| Screen 7 | 512×212 | 16 from 512 |
| Screen 8 | 256×212 | 256 (fixed palette) |
| Screen 0 Wide | 80×24 text | 2 |
The V9938 also introduced hardware commands: LMMC, LMMM, HMMM, LINE, PSET, SRCH—allowing fast block copies, line drawing, and search operations offloaded from the Z80.
V9958 — MSX 2+ & turbo R
The V9958 extended the V9938 with two critical additions: YJK color encoding (enabling up to 19,268 simultaneous colors on screen) and a hardware horizontal scroll register. Screen modes 10, 11, and 12 were added.
| Mode | Colors | Method |
|---|---|---|
| Screen 10 | 12,499 | YJK + 16 attribute colors |
| Screen 11 | 12,499 | YJK + 16 standard colors |
| Screen 12 | 19,268 | Full YJK encoding |
Sound — Audio Evolution
AY-3-8910 PSG — All MSX Generations
The General Instrument AY-3-8910 (or compatible: YM2149, T7766A) provided the baseline audio for every MSX machine. Beyond sound, it doubled as a peripheral controller, hosting two 8-bit I/O ports used for joystick reading.
| Feature | Detail |
|---|---|
| Channels | 3 tone + 1 noise |
| Waveforms | Square wave + noise |
| Envelope | 1 shared envelope generator (8 shapes) |
| Frequency range | ~122 Hz – 125 kHz (tone) |
| Output | Analog mono (mixed) |
Y8950 MSX-AUDIO
The Yamaha Y8950 (MSX-AUDIO) brought FM synthesis to MSX via the OPL (FM Operator Type-L) core, plus a built-in ADPCM sample playback channel with 32 KB sample RAM. Found in the Panasonic FS-CA1 and MSX Music Modules.
| Feature | Detail |
|---|---|
| FM Channels | 9 operators (as 9×2-op or fewer ×4-op) |
| ADPCM | 1 channel, 4-bit ADPCM, 7.875 kHz default |
| Sample RAM | 32 KB internal |
| Rhythm Mode | 5 preset rhythm instruments |
YM2413 MSX-MUSIC (OPLL)
The simplified YM2413 OPLL was included on MSX 2+ machines (built-in) and available as an expansion for MSX 2. It offered 9 FM channels using 15 preset instrument patches plus one user-definable patch, or alternatively 6 FM channels + 5 rhythm channels.
| Feature | Detail |
|---|---|
| FM Channels | 9 melodic (2-op each) |
| Rhythm Mode | 6 melodic + 5 rhythm |
| Presets | 15 ROM patches + 1 user patch |
| Algorithm | 2-operator FM (OPL simplified) |
| Built-in | MSX 2+ and turbo R (mandatory) |
YMF278B — OPL4 (MSX turbo R era)
The premium Moonsound expansion card brought the YMF278B (OPL4), combining 24 FM channels with a wave table synthesizer capable of 24 simultaneous PCM samples from a 512 KB (expandable to 4 MB) ROM/RAM bank. It became the pinnacle of MSX audio.
Konami SCC — Wave Table Cartridge
Konami's proprietary SCC (Sound Creative Chip) and later SCC+ chips were embedded in game cartridges. Each channel had a 32-byte user-defined waveform table, enabling realistic instrument sounds far beyond the PSG. Used in titles like Gradius 2, Snatcher, and Space Manbow.
MSX Generations
Notable MSX Computers
Manufactured by Daewoo and distributed in Argentina and Latin America under the Talent brand, the DPC-200 became one of the most iconic MSX machines in South America, with localized Spanish BASIC and documentation.
Spectravideo's SVI-728 was among the earliest MSX-compliant machines released, reflecting SVI's role in co-defining the standard. Sold in North America and Europe, with a distinctive wedge design and built-in printer port.
The SVI-738 X'Press was Spectravideo's most advanced MSX 1 machine—a laptop-style portable with a built-in 3.5" floppy drive, making it one of the few MSX 1 machines to ship with disk storage standard.
Sony's Hit-Bit series was premium MSX hardware with excellent build quality. The HB-75P featured a distinctive blue keyboard and was one of Sony's best-selling MSX 1 machines in Europe.
Toshiba was among the launch manufacturers. The HX-10 (and its variants HX-10D, HX-10S) featured one of the better keyboards on early MSX machines and solid RF output. Popular in Japan and the Netherlands.
Philips was the dominant MSX manufacturer in the Netherlands. The VG-8235 was their flagship MSX 2, including a built-in 3.5" floppy drive and BASIC 2.0. Common in Dutch schools and homes throughout the late 80s.
Amstrad (and its German brand Schneider) produced the CPC 464/664/6128 computers, which were NOT MSX—they were Amstrad's own Z80 platform. However, Amstrad and Schneider also sold MSX-branded machines under the Schneider MSX name in Germany, which were rebranded Spectravideo or Philips units. The distinction is important: Amstrad's CPC line ran its own OS and is entirely separate from MSX.
Yamaha's CX5M was the musician's MSX—featuring a built-in SFG-01 FM sound module (based on the YM2151 OPM), MIDI interface, and bundled FM-MUSIC BASIC. The CX5M was used by serious musicians and music educators worldwide.
The first MSX turbo R machine, featuring the R800 CPU, 256 KB RAM, built-in MSX-MUSIC (OPLL), 8-bit PCM channel, and a 720 KB 3.5" floppy. Still the most common turbo R model today.
The ultimate MSX machine. The FS-A1GT added 512 KB RAM, a built-in MIDI interface, RS-232C port, and the Moonsound-compatible PCM stereo output. The pinnacle of commercial MSX hardware.
Sanyo produced a range of MSX machines in Japan, notable for their optional wafer tape (QD) drive. The PHC-28L used a non-standard storage format that was unique to Sanyo's MSX lineup.
Another Talent branded MSX from Latin America (Argentina), the TPC-312 was a popular budget MSX. Like the DPC-200, it was manufactured by Daewoo and localized for the Spanish-speaking market.
Peripherals & Expansions
Storage
Cassette Tape
MSX BASIC included CSAVE and CLOAD commands for cassette I/O at 1200 or 2400 baud. The PSG chip provided the baud tone generation; the PPI handled motor control.
Floppy Disk
MSX Disk BASIC added FILES, OPEN, LOAD, SAVE, and full file I/O. Drives: 5.25" 360 KB (MSX 1/2) or 3.5" 720 KB (MSX 2+). MSX-DOS provided a CP/M-compatible OS.
ROM Cartridges
The primary distribution medium for games and software. Cartridges could contain ROM only, ROM + RAM, or ROM + custom hardware (e.g., Konami SCC, mapper chips). Sizes from 8 KB to 1 MB+.
Display Output
| Output | Type | Available On |
|---|---|---|
| RF Modulator | Channel 3/4 UHF/VHF | All MSX machines |
| Composite Video | NTSC/PAL | Most MSX machines |
| RGB SCART / DIN | Analog RGB | Most MSX 2+ |
| S-Video (Y/C) | Luma/Chroma separation | Some MSX 2/2+ |
| VGA (via adapter) | Analog VGA | Third-party adapters |
Joystick & Input
MSX defined a standard DB-9 joystick port (two ports on every machine, via the AY-3-8910's I/O ports). Up to 8 directions + 2 fire buttons. Compatible with Atari-style joysticks. Some machines included a trackball, mouse, or touchpad. The MSX mouse used quadrature encoding on the joystick port.
Memory Expansion
Memory expansion cartridges allowed MSX 1 machines to reach 64–512 KB RAM through the slot system. MSX 2 machines commonly had memory mappers allowing up to 4 MB of addressable memory through bank switching via port FCh–FFh.
Printers
A Centronics-compatible parallel printer port was available on most MSX machines. MSX BASIC supported LPRINT and LLIST for printer output. Epson-compatible dot matrix printers were most commonly used.
Network & Communications
RS-232C / Serial
Optional on most MSX machines, mandatory on turbo R GT. Enabled modem connectivity, terminal emulation, and serial file transfer via MSX BASIC or MSX-DOS terminal software.
MIDI Interface
Available via the Yamaha SFG module (CX5M), MSX-MIDI standard, or turbo R's built-in MIDI. Allowed connection to synthesizers, drum machines, and sequencers.
MSX-Engine ICs
Later MSX designs integrated multiple chips into single ICs. Yamaha's S1985 (MSX-Engine) combined the PPI (8255), clock generator, and I/O management into one chip, reducing PCB complexity and cost. The T7775 further consolidated audio support.
MSX BASIC
MSX BASIC was developed by Microsoft (hence the Microsoft branding on early boot screens) and stored in 16–32 KB ROM. It was one of the most capable BASICs available on any 8-bit home computer, with direct access to all hardware features through reserved keywords and commands.
BASIC Versions
| Version | Platform | Key Additions |
|---|---|---|
| MSX BASIC 1.0 | MSX 1 | Core language, Screen 0–3, cassette I/O |
| MSX BASIC 2.0 | MSX 2 | Screen 4–8, VDP commands, VRAM access, RTC |
| MSX BASIC 3.0 | MSX 2+ | Screen 10–12 (YJK), scroll commands |
| MSX BASIC 4.0 | turbo R | PCM playback, R800 awareness |
Core Commands Reference
Screen & Graphics
10 REM MSX BASIC Graphics Demo
20 SCREEN 2 ' 256x192, 16 colors
30 COLOR 15,1,1 ' FG=white, BG=black, BORDER=black
40 LINE (0,0)-(255,191),9,BF ' filled box
50 CIRCLE (128,96),60,12 ' circle at center
60 PAINT (128,96),4,12 ' flood fill
70 PSET (100,80),15 ' plot single pixel
Sound & Music
10 BEEP ' system beep
20 PLAY "CDE FGA BC" ' music macro language (MML)
30 PLAY "T120 L8 CDEFGAB>C" ' T=tempo, L=note length
40 ' Three-voice simultaneous play:
50 PLAY "CEG","EGC","GCE" ' voices A, B, C
Sprites
10 SCREEN 2
20 SPRITE$(0)=CHR$(&HFF)&CHR$(&HFF)&CHR$(&H00)&CHR$(&H00) ' 8-byte pattern
30 PUT SPRITE 0,(100,80),15,0 ' sprite#, (x,y), color, pattern
40 ON SPRITE GOSUB 1000 ' collision interrupt handler
50 SPRITE ON
File I/O (Disk BASIC)
10 OPEN "DATA.TXT" FOR OUTPUT AS #1
20 PRINT #1, "Hello MSX!"
30 CLOSE #1
40 OPEN "DATA.TXT" FOR INPUT AS #2
50 INPUT #2, A$
60 PRINT A$
70 CLOSE #2
Hardware Register Access
10 ' Read/write VDP registers directly
20 VDP(1) = &HE0 ' VDP register 1: sprites on, 16KB VRAM
30 PRINT VDP(0) ' Read VDP status register
40 ' Direct I/O port access
50 OUT &HA0, 7 ' Select PSG register 7
60 OUT &HA1, &HB8 ' All tones on, noise off
70 X = INP(&HA2) ' Read PSG register value
MSX BASIC — Key Statements
| Statement | Function |
|---|---|
| SCREEN n | Set display mode (0–12 depending on generation) |
| COLOR fg,bg,border | Set foreground, background, border colors |
| VPOKE addr,val | Write directly to VRAM |
| VPEEK(addr) | Read from VRAM |
| SET PAGE | Select active display page (MSX2) |
| COPY | Block copy in VRAM using VDP commands |
| INTERVAL | Set timer interrupt interval |
| ON INTERVAL GOSUB | Timer-based interrupt handler |
| CALL SYSTEM | Enter MSX-DOS from BASIC |
| BLOAD / BSAVE | Load/save binary data to/from memory |
| USR(n) | Call machine-language subroutine |
| DEFUSR | Define address of USR routine |
MSX-DOS
MSX-DOS was an MSX-specific operating system closely modeled on CP/M-80 and partially compatible with MS-DOS (FAT12 disk format). MSX-DOS 2 (for MSX 2+) added subdirectories, environment variables, and extended memory management. Accessed via the CALL SYSTEM BASIC command or by booting with a disk containing MSXDOS.SYS and COMMAND.COM.
Legacy & Modern MSX
MSX left a profound mark on the gaming and computing industries. Hideo Kojima created Metal Gear on MSX2, and the platform was home to groundbreaking titles from Konami, ASCII, and HAL Laboratory. The MSX sound chip conventions influenced composers who later worked on Super Nintendo and PlayStation titles.
Today, MSX remains remarkably alive:
FPGA Implementations
The MiSTer FPGA platform includes a highly accurate MSX core covering all generations. The 1chipMSX (manufactured by Panasonic/ASCII in 2003) put an entire MSX 2+ system on a single FPGA chip.
Emulation
openMSX is the leading open-source cycle-accurate MSX emulator, supporting all generations including turbo R. BlueMSX and fMSX are also popular cross-platform options.
New Development
Developers continue releasing new MSX games and demos. Annual events like MSX Dev and active communities on platforms like MSX.org and Konamito keep the platform creative and vibrant.
MSX Association
The MSX Association (Japan) has revived the MSX brand with the MSX3 initiative and modern hardware projects, including HDMI-output machines targeting the retro gaming market.
Universal Home Computer Standard · 1983 – Forever