MSX Computers

Introduction

MSX is a computer standard (specification) from ASCII Corporation with Microsoft that became reality in June 1983, based initially around the 8-bit Z80 CPU, with the aim to ensure compatibility between computers. Various computers using the standard were manufactured by a number of companies including Panasonic, Philips, Sony, Toshiba, and Yamaha. Typically Microsoft would provide their version of the BASIC programming language built into the computer, known as 'MicroSoft eXtended BASIC', which is where 'MSX' comes from although there are debates as to the true meaning of 'MSX'.

The MSX computers were sold throughout the world between 1983 and 1993 and were a success in Asia, South America and Europe, but North America never got their hands on the computers, which is strange considering Microsoft's involvement but may have been down to North America already having well established American computers from Apple, Atari and Commodore.

The original MSX line was followed up with MSX2 in 1985, MSX2+ (Japan only) in 1988, and MSX TurboR (Japan only, 16-bit) in 1991, each standard bringing more advanced features. Although MSX did not become the computer standard throughout the world in the way originally envisioned, it was very successful and served as a starting point for many getting into computers for the first time and is fondly remembered by many today with a loyal fanbase. 

Unfortunately, as was also the case of porting games to other systems, games ported to the MSX from other computers, such as the Spectrum, did not take advantage of the MSX's better hardware in order to make the porting easier and quicker.

Even though MSX was a standard, different machines by different manufacturers implemented slightly differently, so (for example) colours produced by the computers may appear different between machines (complicated further by the TV/monitor being used potentially changing the colours further still).

Please see YouTuber Nostalgia Nerd's video on MSX to complement this introduction:

Sony HB-75B

The HB-75B (HitBit) from Sony is a MSX 1 computer that was released on 1st June 1984 for £299 and is the Great Britain version of the HB-75 (the version intended for Japan), an improved version of the HB-55 from 1983, having more RAM and a better keyboard. As well as the HB-75B revision intended for Great Britain, there were other variants of the HB-75 released in different markets with their own model numbers:

HB-75AS Australia
HB-75F France
HB-75D Germany
HB-75P Other European countries

While this section focuses on the HB-75B, much of the information should be mostly applicable to the HB-75 and the other variations.

The specification for the computer is as follows:

Z80A CPU, NEC version (D780C-1).
TMS9929A PAL video display processor.
AY-3-8910A PSG Programmable Sound Generator.
48KB ROM (16KB for integrated software, 32KB for BASIC).
64KB RAM (in slot 2).
16 colours including black, white and transparent.
32 sprites, 8x8 or 16x16 bits.
Mono sound.

The HB-75B is rated for 240V 50Hz and has a QWERTY keyboard with 75 keys including a '£' key, compared to other microcomputers of the time the HB-75B is quite enjoyable to type on - only the arrow keys I found required a bit more force to operate that I would have liked. The computer measures approximately 405x67x245 mm (W/H/D) and weighs around 3.5 KG, the weight is mainly due to the transformer which is situated in one corner rear the left side. For connecting to a TV/monitor the HB-75B has RF, RGB+A SCART, and composite+A via DIN. There are two cartridges slots, one at the top, and the other at the rear.

Optionally, a HBI-55 data cartridge could be purchased separately (but was packaged with the Japanese HB-75), which stores data from the built-in computer software, 4KB in total, and can be used in either slot A  or slot B. Data on the cartridge is retained by a lithium battery which will run down after about 5 years so it's recommended to transfer data to another cartridge before that happens. The HBI-55 cartridge nowadays goes for hundreds but it is possible to make your own.

When you power on the computer you are presented with a screen called the 'Personal Data Bank' which allows you to access an address manager, scheduler, memo, transfer (or Copy if a HBI-55 cartridge is inserted), and BASIC. There is also a BASIC + DATA CARTRIDGE option if the HBI-55 cartridge is present. The options are selected with arrow key up/down and selected with the return key. I found it a bit annoying to have to select BASIC every time the machine boots rather than going straight to BASIC.

Programs can be loaded from and saved to a tape recorder via the 8 pin DIN with appropriate cable (supports remote control of the recorder). In addition to tape, a software cartridge can be run either from slot A (the top slot, which has priority) with the illustration toward you or slot B (the rear slot) with the illustration side facing up. Slot B also supports a disk drive controller. Note that the Japanese model has just one cartridge slot and an expansion bus at the rear that does not support software cartridges.

The HB-75B was my first MSX computer (although I already had the Sega SC-3000 which is MSX-like) and while looking for an MSX computer to buy I was in particular looking for one with a built-in SCART socket (a rare thing for a microcomputer), thinking it would be an easy way to get RGB from a computer (which I was wrong - see further on). A possible reason why SCART was included on some Japanese designed microcomputers is that Japan has RGB21 (RGB Mult) which is similar to SCART, with the main difference being the pinout is different, so adapting would be quite straightforward.

As mentioned, I thought I could just plug a standard SCART lead into the computer and the other end into the RGB enabled socket of my LG plasma TV only to find that the image continually switched on and off. Trying it on my SCART to HDMI upscaler the image didn't switch on and off but instead constantly shifted position left to right, which was almost as annoying. 

Composite video, however, was solid so that led me to believe that if there was a fault it was in the RGB circuit not the video chip itself, which operates independently of composite. Though investigations online and probing the computer I came to the conclusion that the problem was with using modern TVs and other devices on the HB-75B, which are more particular about the video signals. Indeed, the HB-75B switches the SCART blanking signal on and off at about 15.7KHz (the same frequency as the horizontal sweep in a CRT screen), which is strange, as the blanking signal should be steady to ensure the TV is in RGB mode (rapid switching of blanking is a SCART feature that can be used for overlays, take note, but makes no sense in this context since it would be overlaying RGB on composite). 

So the solution I found was to place a 220uF electrolytic capacitor into the SCART lead, its anode connected to blanking (pin 16) and its cathode to blanking GND (pin 18), which resulted in a steady image. If you jam the capacitor into the SCART pins where the wires are connected you won't even need to do any soldering. Note that with the capacitor in place it doesn't matter what end of the SCART lead you plug into the TV/upscaler.

Even with a steady image I found there were fairly faint 'jail bars' - vertical streaks across the screen, and with MSX computers the jail bars are affected by the current screen mode; in screen 0 they're very apparent but in screen 1 less noticeable. Jail bars are something I was used to with other retro computers and games machines and indeed it seems it was common for different types of MSX computers to have jail bars due to the VDP used but they can be reduced somewhat. You can read more at: 

https://www.msx.org/forum/msx-talk/hardware/direct-tms9928-gbs8200-ypbpr-connection?page=2

In summary, jail bars can be caused by the VDP/DRAMs/power supply/dried capacitors on the analog board. A ceramic capacitor soldered from the V+ pin to ground on the VDP chip may minimize but will not totally eliminate the jail bars.

Although I wasn't too bothered about jail bars I did follow another recommendation online to extract the sync pulses from the composite video using an LM1881 circuit and feed that into the SCART's composite video input but found that made no noticeable difference in video quality.

BASIC

In this section we will briefly look at the BASIC built into the computer to give a taste of how it can be used. Keywords can be entered in any case (but are always displayed in capitals when listed), and the arrow keys can be used to edit listings, something that wasn't common in all BASICs of the time. Pressing Control-U deletes the current line but only clears what's on screen, if editing a program and press Control-U and follow by pressing return the line will not be removed from the program. To delete a line from a BASIC program you need to delete everything but the line number and press return.

The SCREEN keyword sets the screen mode, use a value between 0 to 3:

SCREEN mode

The value for mode can be one of:

0 text screen 1 37x24 characters (default)

1 text screen 2 29x24 characters

2 high resolution graphic mode 256x192 dots

3 low resolution graphic mode (multi-colour) 256x192 dots (64x48 blocks)

To change the colours used, use the COLOR keyword, which has the following format:

COLOR foreground, background, border

The colour values for foreground, background, border are:

0 clear/transparent

1 black

2 medium green

3 light green

4 dark blue

5 light blue

6 dark red

7 blue/cyan

8 medium red

9 light red

10 dark yellow

11 light yellow

12 dark yellow/dark green

13 purple/magenta

14 grey

15 white

Note: the computer defaults to screen 0, changing the border colour will not have an affect, you will need to use a different screen mode to change the border colour.

COLOR parameters can be skipped with a comma and other parameters can be left out, example:

COLOR ,1

Changes the background colour only, skipping foreground colour, and not specifying border colour (third parameter).

I found it can be difficult to see the difference between some colours, example, 6 (dark red) and 8 (medium red) has a very subtle difference on my TV through RGB SCART.

Use the following to test for yourself:

SCCREEN 1

COLOR 15,6,8

This is also the case for emulators, such as openMSX, so it shows it's an issue with the design or how our eyes respond to colour. Comparing 12 (dark green) and 2 (medium green) is much easier to tell apart, as it also light red and medium red.

Pressing shift + F1 in BASIC is very handy as it sets default colours of 15 for foreground (white) and 4 for background and border (dark blue), useful if accidentally set character and background colours to the same, for example.

As an illustration of how to use a joystick in BASIC you can use the following program to display the status of the direction buttons of a joystick connected to JOY A:

10 PRINT STICK(1): GOTO 10

The value displayed will be:

0 no button

1 up

2 up+right

3 right

4 down+right

5 down

6 down+left

7 left

8 up+left

Note that the HB-75B labels the joystick ports as A and B, which corresponds to ports 1 and 2 on other machines/documentation.

To check the direction buttons of a joystick in port B pass 2 into STICK() instead.

To get the status of the two trigger buttons for joystick A use:

10 PRINT STRIG(1);:PRINT STRIG(3): GOTO 10

The status of trigger A will be displayed first, followed by trigger B on the same line. For a joystick in port B pass 2 and 4 respectively to STRIG().

If using a Mega drive joypad, which is what I used for testing, you will get all four directions but only trigger 1, which is the B button.

Resources

AY-3-8910/AY-3-8912/AY-3-8913 datasheet:

https://map.grauw.nl/resources/sound/generalinstrument_ay-3-8910.pdf

Sony HB-55P/75P/75B Service Manual (GB):

https://archive.org/details/sonyhb5575sm


Sony HB-75/HB-55 Flyer (Japanese):

https://archive.org/details/sonyhb75hb55


Sony HBI-55 Data Cartridge Service Manual (GB):

https://archive.org/details/sony55hbmsm



TMS9918A/TMS9928A/TMS9929A video display processors data manual:

http://www.bitsavers.org/components/ti/TMS9900/TMS9918A_TMS9928A_TMS9929A_Video_Display_Processors_Data_Manual_Nov82.pdf



Resources - all MSX computers

https://www.msx.org/

All content of this and related pages is copyright (c) James S. 2023-2024