The Revised MSX Red Book


    Last revision on 2005/March/31 Thursday.

    Notes from the revisor:


1.Table of Contents
3.Programmable Peripheral Interface
4.Video Display Processor (MSX2/2+ under construction)
5.Programmable Sound Generator (under construction)
6.ROM BIOS (under construction)
7.ROM BASIC Interpreter (under construction)
8.Memory Usage Map (Workspace Area) (under construction)
9.Machine Code Programs (missing pages, read Forewords)
10.MSX2+ Hardware Schematics (from MSX Datapack, under construction)
10.Appendices (under construction)
11.Index (under construction)



    This book is about MSX computers and how they work. For technical and commercial reasons MSX computer manufacturers only make a limited amount of information available to the end user about the design of their machines. Usually this will be a fairly detailed description of Microsoft MSX BASIC together with a broad outline of the system hardware. While this level of documentation is adequate for the casual user it will inevitably prove limiting to anyone engaged in more sophisticated programming.

    The aim of this book is to provide a description of the standard MSX hardware and software at a level of detail sufficient to satisfy that most demanding of users, the machine code programmer. It is not an introductory course on programming and is necessarily of a rather technical nature. It is assumed that you already possess, or intend to acquire by other means, an understanding of the Z80 Microprocessor at the machine code level. As there are so many general purpose books already in existence about the Z80 any description of its characteristics would simply duplicate widely available information.


    The MSX Standard specifies the following as the major functional components in any MSX computer:

  1. Zilog Z80 Microprocessor
  2. Intel 8255 Programmable Peripheral Interface
  3. Texas 9929 Video Display Processor
  4. General Instrument 8910 Programmable Sound Generator
  6. 8 KB RAM minimum

    Although there are obviously a great many additional components involved in the design of an MSX computer they are all small-scale, non-programmable ones and therefore "invisible" to the user. Manufacturers generally have considerable freedom in the selection of these small-scale components. The programmable components cannot be varied and therefore all MSX machines are identical as far as the programmer is concerned.

    The advent of MSX2, MSX2+, turbo R and many peripheral devices, though, added more components to a "minimal functional" MSX machine. The following table shows the minimal requirements (an actual MSX may have more memory, for example, or a different VDP, other sound IC and so on):

MSX MSX2 MSX2+ turbo R
Memory ROM (minimal) 32KB
(32KB Main ROM + MSX-BASIC v.1.0)
(32KB Main ROM + MSX-BASIC v.2.0 + 16KB SubROM)
(32KB Main ROM + MSX-BASIC v.3.0 + 16KB SubROM + 16KB Kanji Driver + 16KB Kanji Converter)
(32KB Main ROM + MSX-BASIC v.4.0 + 16KB SubROM + 16KB Kanji Driver + 16KB Kanji Converter + ?)
RAM (minimal) 8KB 64KB 64KB ?
Video VDP TMS9918A V9938 V9958
VDP Frequency ? ? ? 21.477MHz
VRAM 16KB 64KB or 128KB 128KB
Maximal Resolution 256h x 192v x 16c 512h x 212v x 16
256h x 212v x 256c
(424v interlaced)
512h x 212v x 16
256h x 212v x 19268c
(424v interlaced)
Features 4 sprites in line 8 sprites in line;
vertical scroll
8 sprites in line;
vertical & horizontal scroll
Audio PSG AY-3-8910
FM - FM-PAC (extra) MSX-Music (optional) MSX-Music
PCM - 8 bits
CMT (Data-corder) 1200/2400 bps -
Keyboard 88 key matrix
Floppy Disk Drive 1DD (180KB), 2DD (360KB) or 2HD (720KB) (optional) 3.5" 2HD (720KB)
Printer (optional) 8 bits parallel Centronics
Cartridge Slot At least one slot is required
Joystick 1 (minimal) 2
Kanji Function Kanji ROM (optional) (optional) Level 1
(Level 2 optional)
Level 1 + 2
Kanji Input Application dependent MSX-JE MSX-JE
Real-time Clock - RPC5C01

    Chapters 1, 2 and 3 describe the operation of the Programmable Peripheral Interface, Video Display Processor and Programmable Sound Generator respectively. These three devices provide the interface between the Z80 and the peripheral hardware on a standard MSX machine. All occupy positions on the Z80 I/O (Input/output) Bus.

    Chapter 4 covers the software contained in the first part of the MSX ROM. This section of the ROM is concerned with controlling the machine hardware at the fine detail level and is known as the ROM BIOS (Basic Input Output System). It is structured in such a way that most of the functions a machine code programmer requires, such as keyboard and video drivers, are readily available.

    Chapter 5 describes the software contained in the remainder of the ROM, the Microsoft MSX BASIC Interpreter. Although this is largely a text-driven program, and consequently of less use to the programmer, a close examination reveals many points not documented by manufacturers.

    Chapter 6 is concerned with the organization of system memory. Particular attention is paid to the Workspace Area, that section of RAM from F380H to FFFFH, as this is used as a scratchpad by the BIOS and the BASIC Interpreter and contains much information of use to any application program.

    Chapter 7 gives some examples of machine code programs that make use of ROM features to minimize design effort.

    It is believed that this book contains zero defects, if you know otherwise the author would be delighted to hear from you. This book is dedicated to those people interested in solving problems hard to solve.

    This revised version of the book is dedicated to the Light, without which we would be all blind... - The Revisor.

Go to next chapter: P.P.I.