mardi 30 novembre 2021

MSX, CANIVORE & various thoughts on the MSX standard and amateur work

Several months ago, I started building an MSX compatible computer board. This is Sergey Kiselev's OMEGA project


I have no complaints about this project. Apart from the difficulty of supplying certain components and possible assembly errors, the computer works as soon as it is switched on.

I have already had the opportunity to discuss the cost of producing such a project. This is why I did not realized the keyboard proposed in this project, but rather a USB adapter allowing the use of a standard keyboard at low cost.


In order to put this computer into real operation, I therefore obtained a CARNIVORE 2 cartridge which provides, among other things, access to a storage medium in the form of a FLASH card:


And now is the time for things to get complicated!

At first, I tried to run the cartridge with a flash card that I had. Despite my best efforts, and although the cartridge menus were displayed, the flash card was never taken into account. So I ended up looking for a possible compatibility problem with my flash card. The flash card that I have and that works on my PC :


You can find a list of compatible flash cards here: https://sysadminmosaic.ru/en/msx/carnivore2/qvl_list. I was indeed able to find this type of card in the list:


So I began to suspect the operation of the CARNIVORE cartridge. The first approach is to redo the welds. In order not to damage anything, I therefore used a hot air iron. I am used to work with this type of material so no problem. The result was the inability to start the cartridge itself.

So this time I visually inspected the cartridge and this is what I discovered:


From what I have been able to observe, it seems obvious to me that under these conditions the access to the memories of the cartridge, and therefore to the program in ROM seems highly compromised. 

This is the original placement of the component. I absolutely did not touch the legs of the FPGA. The fact that the cartridge started when I got it seems have been a miracle. In the current situation, it is not possible to properly realign the pins of the FPGA. The only solution would be to remove this component and replace it with an FPGA with the pins correctly aligned. This problem only exists on one of the four sides of the component.

Well, the Cyclone II series FPGAs are no longer manufactured. And moreover it seems very difficult today to obtain such circuits!

Which brings me, after having worked for several months on this MSX board, to the following thoughts:

  • Personal creations always come up against the problem of the case. Which one for OMEGA?
  • Two cartridge ports, at the time it was probably perfect, but today?
  • Operating mode selection by pressing specific keys at start-up: boring and outdated!
  • C-bios is not a system. It just offers the minimum API to run some cartridges.
  • Difficulty finding a version of the system corresponding to the needs.
  • Slowness of this type of machine. More efficient solutions are possible ...
  • Video resolution is really minimal ...
  • Lack of structured, up-to-date and relevant documentation...
  • Use of bad technical solutions for some realization. In the case of CARNIVORE, fpga, resistance adaptations to voltage differences etc...
  • Etc...

While this type of machine could, if updated, provide real pleasures of use and programming, it is clear that entering the MSX world from scratch is not a trivial task. And yet, this type of machine can provide real development potential but still requires a flattening of the concept I think.

Don't make me say what I didn't say: making an OMEGA board and even starting it is a real pleasure. So far I haven't managed to start any application, and that's really annoying. 

But hey, that makes it possible to think of modifications allowing to improve the situation ...

vendredi 5 novembre 2021

Keyboard for OMEGA MSX Computer : it works!

It took me much less time than expected to be able to interact with the OMEGA board:

Before testing my USB to keyboard adapter board, I had tested the reception of codes from the USB keyboard. So I knew it was working. But I still didn't know how MSX BIOS scans the matrix keyboard.

After a few attempts and oscilloscope tests, I was able to send 'things' to OMEGA. But obviously not the right codes. After having researched the official codes of the MSX keyboards, I realized that the BIOS installed on OMEGA manages the Japanese keyboard! Why not!...

My first goal being to be able to type a little Basic program and run it, I decided to code the essential characters. First, the alphabet:


I am totally amazed at how easy it was to turn on my USB / OMEGA keyboard interface. I didn't have any issues with the design of the board, everything worked right from the start. Coding the software of the small STM32G0 processor was really very easy with the STmicro IDE.

For now, the coding is more of the quick and dirty type but it works very well!

On the way to my first "Hello World" program ;-)



mercredi 3 novembre 2021

MSX OMEGA & CARNIVORE 2

The MSX OMEGA main board:

So far all I have managed to do with the OMEGA MSX board is boot to the free C-BIOS bios: 

The problem is that C-BIOS is a really minimalist bios that only allows you to start an application on a cartridge. 

Now, I find myself with two problems.

The first is that I now need to test my USB keyboard adapter on the OMEGA motherboard. However, I do not have any game cartridges. Under these conditions the system does not allow me to do anything.

As Sergey Kiselev specifies, Omega is compatible with the Sanyo PHC-23J machine. So I recreated a bios starting from the basic ROM and the extended ROM of this system. Obviously, I have no commercial rights to this ROM, but the use is strictly private and as a development resource in my case.

And voilà: 


I am now under Microsoft Basic. I will therefore be able to continue the development of my USB interface and particularly the management of signals with the OMEGA PPI.

I remember in 1988, I joined a company that still had a small microcomputer running Microsoft Basic. It was used to program the very fashionable LED display strips at the time. I had just turned on this machine and had fallen the same way directly on the Basic's screen. I don't remember if this machine was an MSX type or not. I don't remember the manufacturer either. Regardless, 33 years later, I'm here again :-)

And the question is: does the Carnivore 2 card work under this environment?

Is that enough for you as an answer?

Carnivore 2 works exactly as described in the documentation. For the moment I have not prepared a FLASH card so the list of files is empty. 

There is still a bit of work to be done before I can use my Carnivore 2 card for mass storage. Indeed, the Flash card must be prepared through the Carnivore application. Besides the fact that I will only be able to do this when my keyboard interface is working, it seems that some files must also be installed on the Flash card (auto-start mode). I don't know if this is absolutely necessary but whatever. This procedure can only be done through a floppy disk drive. I now need to acquire a floppy interface to complete my system.

It's really nice to see this system come to life step by step.