Cyrillic fonts on MSX1

Page 1/2
| 2

By treblig

Rookie (22)

treblig's picture

27-05-2022, 08:50

Hi,

I have a Canon V20 MSX1, with EU / GB keyboard (it has the pound sign on a key next to the 'return' key.) With help of [code] and [graph] keys, I can get some special characters, but not the Cyrillic fonts.

  • Is there a way to get and use them on a MSX1 via the keyboard? Or is this only possible on an e.g. Russian MSX computer?
  • Is there a way to use Cyrillic fonts in self made MSX Basic 1.0 programs?
  • When I have a document on a Mac/PC with Cyrillic fonts in UTF8, what character set do I need to convert it to to make it readable on an MSX1?

Many thanks in advance!

Login or register to post comments

By gdx

Enlighted (5510)

gdx's picture

27-05-2022, 09:37

MSX computers are not really designed to use different languages. So you must use a version designed for your language. You can still display Japanese characters with a Kanji-ROM but this is limited to software compatible with the Kanji-ROM. There is very little software for MSX1 which exploits it.

There also a recent cartridge from Korea that alow to support the UTF-8 coded texts. It supports Japanese characters and Hangul but I do not know if Cyrillic font is included. I don't know either if it can be used on the MSX1s. In any case, there is no software.

By Manuel

Ascended (18794)

Manuel's picture

27-05-2022, 13:22

The standard character set doesn't contain Cyrillic characters, only on Russian machines it's there. See the overview at for example this thread post: https://www.msx.org/forum/msx-talk/general-discussion/msx-ch...

By aoineko

Champion (448)

aoineko's picture

27-05-2022, 16:24

MSX machine contains a default font in its BIOS ROM.
It can be used directly by programs and games.
To change it, you would have to replace the BIOS of your machine (and it will only work with other machines that have the same font).

That say, nothing prevents you from loading your font in memory (cartridge, binary, file, etc.) and using it in your own programs (with the encoding of your choice).
All depends of your needs.

By treblig

Rookie (22)

treblig's picture

29-05-2022, 11:48

Thank you all for the kind and informative answers. My first try will be @aoineko 's idea to somehow extract a Cyrillic font from a Russian MSX (with openMSX) with peek/poke, save it to tape as a binary file and then load it into the memory of the Canon V20 (real) MSX. Thank you @Manuel for the link to the character maps and machine names.

By aoineko

Champion (448)

aoineko's picture

29-05-2022, 13:47

You have the address of the font in the Main-ROM at 0004h.
You just have to extract the second half of the font (first 128 characters are "almost" international).
So you have to copy 128*8 bytes (1 KB) from [0004h] + 128*8.

Similarly, you only need to update the second half the font in VRAM.
Just copy your 1 KB data to Pattern Generator Table address + 128*8.

I think that do the trick to display Russian characters in Basic or MSX-DOS.

PS: You will need to repeat the operation if you change the screen mode as the default font will be reloaded in VRAM.

By sdsnatcher73

Prophet (3237)

sdsnatcher73's picture

29-05-2022, 14:42

Couldn’t you BSAVE from VRAM (on a Russian MSX) and BLOAD directly to VRAM? (Opposed to reading from the BIOS). This may only work with a diskdrive.

By gdx

Enlighted (5510)

gdx's picture

29-05-2022, 14:54

aoineko wrote:

You just have to extract the second half of the font (first 128 characters are "almost" international).

Russian MSX don't only have Cyrillic fonts as a difference. I think this change is insufficient to properly use Russian programs, PRINT USING can probably cause problems, and it can become a problem for non-Russian programs.

aoineko wrote:

Similarly, you only need to update the second half the font in VRAM.

There is also the system variable CGPNT at 0F91Fh which avoids retransferring the font each time the screen mode changes.

By treblig

Rookie (22)

treblig's picture

29-05-2022, 15:44

@sdsnatcher73 As far as I know, one cannot bsave or bload directly from and to VRAM on an MSX1.

By treblig

Rookie (22)

treblig's picture

07-06-2022, 21:45

I want to thank everyone who helped me with this question. With openMSX, I was able to copy the font map from a Yamaha YIS-503IIR from vram to ram and bsave that block of memory. Then I reversed the procedure on the (real) Canon V-20 with bload -> peek -> vpoke. It works like a charm.

Included is a photo of the language learning program I'm developing (work in progress).

The only thing I have not solved yet is how to use the cyrillic characters on the keyboard of the MSX, like you can on a real YIS-503IIR. The official Russian machine has a toggle button that let one switch between the latin-cyrillic font map. I guess that won't be possible on the Canon V-20.



By sdsnatcher73

Prophet (3237)

sdsnatcher73's picture

07-06-2022, 14:47

You probably have to hold the code key while typing. in Russian machine the code key will „lock“ like the CAPS but on European or International machine it does not.

Page 1/2
| 2