Release: Bug fixes and improvements
The new zeST release mostly brings under-the-hood fixes, but with important stability and compatibility improvements.
Support for larger ROMs
There used to be “bi-TOS” hardware mods, mostly on Mega ST computers. Those mods allowed the user to switch between two possible operating system versions: the latest, improved TOS 2.06 that you can find on the Mega STE, and the original TOS 1.04 for compatibility. Those two versions were installed on different ROM chips that could be selected using a hardware switch.
An interesting challenge at the time, was that those two ROMs are not the same size (TOS 1.04 is 192 kB, and TOS 2.06 is 256 kB). More importantly, the ROM memory mapped address was different between the two versions. Hardware mods were using clever hardware trickery to allow the ST hardware to manage an external, larger ROM and map it to the correct address in the address space.
zeST now directly supports 256 kB, 512 kB and 1 MB ROMs, in addition to 192 kB. This allows you to use TOS 2.06, and also the larger binary versions of EmuTOS. Starting from now, the supplied default EmuTOS image file in zeST is a 256 kB version.
MFP fixes
The implementation of the Multi-Function Peripheral (MFP) chip has been improved so it supports more accurate timings. The timings are now more consistent with those I obtained on the real hardware with a logic analyser. This at least fixes a low border opening bug in the Flipo Demo by Oxygene.
Shifter bus access fixes
A completely useless, and therefore necessary, fix was to reproduce the way the video chip shifter accesses memory addresses that do not physically exist. For instance, if your computer has 1 MB of RAM, what happens if you set the screen address partially or totally after that 1 MB ? On the real ST, it results in bus noise: this is random-looking pixels that actually contain the value of the data bus when the 68000 CPU is accessing the RAM.
Until now, zeST was showing background pixels (colour 0). This is now fixed. You can see the results on this video or that video.
Shifter desync fix
This bug fix was quite simple to solve. Because of the latest changes in the Shifter implementation, the full screen desktop driver was not working properly anymore. It seems the resolution must be changed only when the screen is not being displayed, so the typical way to solve this is wait for the VBL (vertical blank interrupt) before making the resolution changes. This is a general good practice anyway, so the driver has been fixed to proceed like this.
Random IKBD bug fix
This bug gave me a real hard time, because it occurred only on certain builds of the FPGA configuration binary. Basically, on seemingly random occasions, the keyboard and mouse refused to work. On the ST, keyboard and mouse are managed by the IKBD (Intelligent Keyboard), a separate microcontroller on the keyboard. zeST has its own implementation of the IKBD, which on some occasions, refused to send the keyboard and mouse data to the main system.
The bug was largely described in this issue on GitHub. It is now (hopefully!) fixed.
I am relieved it is finally dealt with, because it should no longer disrupt my work when debugging any other stuff on the board.
That’s all folks!
This is all for this release. Expect other improvements in the future.
As usual, download and installation instructions are available on the getting started page.