vendredi 2 février 2024

Commander X16, MSX, 8-bit Microcomputers

Since I am of a 'certain' age, I can say that for me, computing stopped somewhere between the end of the 80s and the beginning of the 90s. And yet, I worked in the 'either-called' IT field for almost 40 years. I stuck with boring IT all these years :-(

I obviously started with 8 bits, unfortunately I entered 'professional' mode at the time when 16 bits (Atari, Amiga) were starting to emerge. I found these machines fantastic compared to the IBM 'dung' and other compatible machines of the time.

I must say that for me, the computer cannot be seen as an object of mass manipulation as is the case today, but as an object allowing the expression of a certain art, and must therefore be to this service, and not the other way around.

OK, this being written...

I've long thought that 16-bit recreations would eventually create an alternative market. Actually no. A few FPGA creations from Atari STs or Amigas and then, nothing very concrete.

On the importance of community! A few years ago, I became interested in the MSX standard. Because it was the only architecture resembling a sort of 'standard', used in the world and open enough to allow a single person to create thanks to and with this type of machine. 

So I made a copy of Sergey Kiselev's MSX Omega computer. And, one thing led to another, I found myself creating material around this machine.


I also watched with great interest the videos of The 8-Bit Guy aka David Murray and his concept of a dream computer.

Wikipedia

After several years of questions, controversies and prototypes, an electronic board is finally available. At the time of these lines, this is the second version :


So I received a small package containing an order placed at the end of last year.

The content contains the bare minimum:


I must admit that I did not expect to order a PS2 keyboard and mouse more than 30 years later!

As for the motherboard, I must say that it is absolutely professional quality. I remember the first PC and PC-XT motherboard. This has nothing to do with. And I love the three ISA type connectors allowing the construction of various expansion boards.

In my opinion, this is what is missing from the MSX standard. But that can change ;-)

The Commander X16 is a machine in the spirit of the Commodore 64/128 based on 6502. The MSX is based on Z80. I think I'm going to stop at these two machines, it already represents a lot of work developing on these two platforms!

There is also the AgonLight machine, but I must say that it interests me less. It doesn't really have any means of extension. I find it too closed, but that's my personal opinion. If a new version is developed with what I consider to be the bare minimum, I might be interested in it.


In this post, I have only touched on the subject. These three machines involve the efforts of many people. I thank them here for their inspiring 'work'.

GoWin FPGA, why?

I discovered GoWin FPGAs a few years ago. I have nothing to say about these FPGAs. They work well, the software also works correctly. Everything is for the best in the best of all possible worlds then?

Hmm, not really! I ordered these FPGAs at the beginning of 2021. And, thanks or because of the shortage of components at that time, the price increased by 50%. Which makes these circuits, how to say... less interesting to use now.

Indeed, I design electronic systems for the 'enlightened' amateur domain, and not for the professional domain. The spectrum of manufacturing prices cannot be high. I therefore have to use components with the best quality/price ratio.

This is the reason why I decided to test a new family of FPGAs. I chose the Efinix brand and the FPGA TRION range. I know absolutely nothing about these components. Before ordering a development kit, I tested the IDE and, despite a small compilation problem, quickly corrected with a patch provided by Efinix, I was able to compile a previous Gowin FPGA project without problem, namely the FPGA implementation of the µPF1. 

Although for the moment I have not produced anything concrete with these new components, I believe I was able to successfully complete the 'feasibility' tests.

So, I ordered an Efinix kit:


The adventure goes on ;-)

A flash cartridge downloadable from USB : after the first tests in real life.

I had the opportunity to provide a prototype cartridge to Aoineko, the maintainer of the MSXgl graphics library : https://aoineko.org/msxgl/index.php?title=Main_Page

The cartridge works almost as expected. I have planned an improvement in the management of the USB bus because the cartridge tends to disconnect from time to time to his PC. 

I also added the possibility of declaring the cartridge in 64KB mode automatically. In fact, it is the cartridge itself which adapts according to the size of the file received from the PC.

When I studied the cartridge, I did it from the MSX computer I own, which is an OMEGA. So I placed the connector far enough away from the surface of the OMEGA. But this is not enough!

Oups!

So I placed the USB connector higher and took the opportunity to modify the placement of the processor which manages the USB bus. I wasn't totally happy with the USB signal tracks on the previous board. It's now much better. I also placed a precise 8MHz oscillator on this processor. This should make the USB bus work better.


On the other hand I also have cartridge cases. All I have to do now is have this cartridge version made.



lundi 15 janvier 2024

Happy new year everyone.

I hope 2024 brings many good things to as many people as possible in these difficult times, and especially to me because I think this year will be decisive. 

After leaving my crappy job in national education, I now also have to leave France, a country which is falling apart more and more quickly.

And to start 2024 off right, here is a little photography of the finished universal clock, finally equipped with a very beautiful red filter, which makes the displays readable in all circumstances :

As I explained in a previous article, this clock is based on the operation of the Texas Instrument TMS1122 processor.

It allows the programming of four outputs to the nearest second, over a week.

This can obviously enable the operation of any type of device with great flexibility. But it can also, and above all, allow load shedding from the domestic electricity network by programming large energy consumers so that they operate one after the other and not at the same time (when possible of course), in order to avoid strong current draws.

This makes it possible to subscribe to a lower electricity subscription and also to start certain devices during periods of the day when the billing for the KW consumed is the lowest. So that there is possible financial savings on the subscription AND on consumption.

In order to carry out some possible sales tests, I put this clock for sale on Etsy. I have had a good number of visits over the last few weeks. The presentation of the object on the Etsy site is not good at all. But it was for a first try. I will have to review my copy on this site now.

Creating a well-thought-out, well-finished, precise and reliable product is not an easy task. It takes a lot of time but the result is there...



mercredi 6 décembre 2023

A flash cartridge downloadable from USB, a few days later.

As I indicated in my previous post, I had almost reached the end of creating my USB downloadable cartridge, but unfortunately, the USB protocol generates periodic activity on the USB bus, which is disrupts operation of my cartridge. This involves unplugging the USB cable once the download is complete. This was not the objective that I had set for myself, namely to leave the cartridge connected to the PC while being used in an MSX computer.

So I had to find a solution. In fact it is very simple, use two processors on the card. The first manages USB communication, the second manages loading the cartridge and providing data to the MSX bus.

Yes, two processors. As the entire software aspect is already developed, all I will have to do is manage the communication between these two processors to finalize the project. As in any case the cost of the additional processor is comparable to that of a DIP FLASH, this solution is not that 'absurd'.

And the result of my thoughts is this:


I must say that the result is quite clean. I still have to check the placement of the notches because on the previous version, I realized that the insertion into the case was slightly forcing.

Ah yes, I also added the possibility of choosing the slot in which this cartridge should operate. Like this, the 'concept' is complete.

vendredi 1 décembre 2023

A flash cartridge downloadable from USB.

Everyone knows the cartridge system of microcomputers from the 80s. The MSX, a machine from that era, is no exception to the rule.

When you don't know anything about this type of machine, and when you finally get one, the first thing that comes to your mind is to see how it works. And so to do this, insert a cartridge, if possible of games, obviously!


This is when the problems start. How to do today when MSX has been commercially dead for more than 30 years. How to find such cartridges. It is of course possible to find them on the second-hand market. But buying 10 cartridges to test 10 games, well, that's not really viable.

The idea came very quickly to see if it was not possible to have a cartridge that could be refilled on demand, by SD card or USB device.

The Carnivore 2 cartridge, which also offers extras, uses a FLASH card to operate. You have to be able to find a compatible flash card, which is not always easy. I was never able to use the one I bought. The FPGA was poorly soldered and the cartridge quickly became unstable.


Straight into the trash :-(

There is the MegaFlashROM_SCC+_SD. It's the only one I managed to use. But to use it, there is a whole procedure to follow which is boring. And if you don't do this every day, you will have to find the documentation each time to successfully re-initialize the cartridge and copy your new game into it. The least we can say is that this solution is not practical at all. In addition, you have to use utilities that are provided in the cartridge while understanding what you are doing. And when you don't know anything about MSX, it's not engaging!


There is also the solution using a USB device like a key. For this, the rookie-drive-nx cartridge seems ideal. But also, after reading the documentation, I have never been able to get a USB device to be accepted by this cartridge: frustrating.


There is also the SD 512 but given the price of my three previous purchases, I decided I was going to discontinue the charges. So I haven't tested it.


Because, in fact, my goal was to test as easily as possible an MSX board that I had just built, Sergey Kiselev's OMEGA computer.


I had been dying to get my Omega board working for a while now. Because I don't want to spend more on a specific keyboard, I took the time to develop a USB keyboard converter to the OMEGA computer. 


I have also made the result of my work freely available on Github at this address: https://github.com/sillycony/USB-keyboard-to-OMEGA-converter.

So... I was looking for a solution to make this machine execute something in a simple way. This is how the idea of ​​creating a cartridge that can be downloaded via USB came to me.

I don't know if this is the easiest solution at the moment because I'm in the design phase and it's not yet finished despite several previous prototypes.

But I know that once finished, the cartridge will be very easy to use. Simply insert it into the cartridge port of the MSX machine while also connecting it to the USB port of your PC. Dragging and dropping your binary file onto the cartridge, which will be seen as a USB key, will be enough to make the ROM for the MSX available in a few seconds.

If the final solution for my cartridge is not ready yet, I am posting about it now because I have almost achieved what I wanted.


But why is the current beta version not satisfactory?

Well it's very simple: because the USB protocol imposes regular requests from the host to the device to check its proper functioning. And it happens every few seconds.

And? Well, the response process requires the processor on the cartridge to respond ;-). And that takes time. Even if the processor used is fast, while it responds to the USB request, it cannot respond to computer access via the cartridge bus. Result: the MSX computer crashes! But, when the USB cable is unplugged, everything works as expected, as shown in the picture above.

I even planned the automatic RESET of the MSX computer while loading a new binary, so that it then restarts on its own on the new game, or new application. It works very well.

I therefore need to dissociate the USB bus management function from that of the MSX bus management. Because I don't use a FLASH strictly speaking, but the flash contained inside the processor. 'Small capacity' flashes in DIP housing and parallel addressing are becoming more and more difficult to find and more and more expensive. 

So I don't have this problem with a processor equipped with the desired amount of Flash. In addition, it makes routing the printed circuit easier.

The final cartridge diagram looks like this:


I know, it's difficult to read. It's just a screenshot. But we can notice two big circuits there. These are the two processors used. The one on the right is in charge of the USB port, the one on the left is in charge of storing the binary of the cartridge and presenting it to the MSX bus. 

This will cost a little more to produce than expected, but as the two processors are the same models, I will be able to take advantage of the quantity order to reduce the final price.

The software is ready and validated. All I have to do is implement each processor with its part and add a small communication protocol between them. The most 'tricky' part consists of creating a new printed circuit board with more components. But I think I can use the design of the current cartridge to facilitate this new implementation.

I must say that this is now the second project that I have carried out with a professional type process with all that this implies of prototyping, extensive testing taking into consideration a whole bunch of parameters including price, ease of realization, reliability etc etc...

I must say that it is a very enriching experience... When I think of what the type of job I had at the French university was, just a few months ago... What mediocrity!

mardi 14 novembre 2023

UTC1122, AUTOMATION, RETRO COMUTING, MINIMAL COMPUTING.


Some improvements to the device's I/O circuit board. I also added a precision clock. I'm thinking of modifying the main clock program to use this precision clock.