MFX with a difference grows up
Posted: 21 Jan 2025 20:15
Elsewhere I wrote
Writing a CPM3 BIOS turned out to be a not so trivial process but it's mostly done now
I also needed to re-write or at least tweak the MFX as well. I'm not finished there are some missing features I still plan to add, but it's basically usable as it it now, no no need to keep things under wraps.
To retain support for the traditional CPM 2.2 on the MTX, requires a separate boot rom for CPM3. Since MFX is already using rom pages 4,5 and 6, that meant re-programming the GAL to open up rom slot 3 as well. Other hardware changes are the RTC fitted to to the old VRAM socket and changes to the FPGA to provide acces to both the SPI clock and set up an off CPU memory buffer to support the banked memory.
While I was writing ROM code I also tweaked the boot screen to show the CPM 3 boot option and changed the colours to match the new red FPGA and black PCB Under the current setup, CPM 2 has access to 4 of it's 8 meg partitions instead of 8. Where the 5th to 8th partitions used to be are the CPM3 partitions. This was done so that CPM 2 can still run HexTrain unaltered, it's not like the extra partitions were needed, they weren't even visible to SDX Basic.
Reset 3 boots into CPM 3, as with CPM 2 hitting enter will interrupt the boot process and put you into a small monitor. Whilst its based on Zmon from CPM 2 there are several differences for the MFX hardware, primarily there's no RS232 support.
Assuming the monitor is not entered CPM 3 boots up looking something like this. The BIOS is completely self contained, there are no drivers taking up valuable high memory. Eveything is contained within the standard banked memory arrangement. The BDOS takes 1.5k and the BIOS another 1.5k of high memory. Everything else is free for user programs, the rest of the BDOS and BIOS is in a separate memory bank and paged in as required.
The boot loader is kept as small as possible to remain within the first 128 bytes of the first sector. This means in in emergency I can actually boot CPM 3 with the CPM 2 boot rom.
More to come when I have some more photo's to add.
Well it seems that someone was me!
Writing a CPM3 BIOS turned out to be a not so trivial process but it's mostly done now

To retain support for the traditional CPM 2.2 on the MTX, requires a separate boot rom for CPM3. Since MFX is already using rom pages 4,5 and 6, that meant re-programming the GAL to open up rom slot 3 as well. Other hardware changes are the RTC fitted to to the old VRAM socket and changes to the FPGA to provide acces to both the SPI clock and set up an off CPU memory buffer to support the banked memory.
While I was writing ROM code I also tweaked the boot screen to show the CPM 3 boot option and changed the colours to match the new red FPGA and black PCB Under the current setup, CPM 2 has access to 4 of it's 8 meg partitions instead of 8. Where the 5th to 8th partitions used to be are the CPM3 partitions. This was done so that CPM 2 can still run HexTrain unaltered, it's not like the extra partitions were needed, they weren't even visible to SDX Basic.
Reset 3 boots into CPM 3, as with CPM 2 hitting enter will interrupt the boot process and put you into a small monitor. Whilst its based on Zmon from CPM 2 there are several differences for the MFX hardware, primarily there's no RS232 support.
Assuming the monitor is not entered CPM 3 boots up looking something like this. The BIOS is completely self contained, there are no drivers taking up valuable high memory. Eveything is contained within the standard banked memory arrangement. The BDOS takes 1.5k and the BIOS another 1.5k of high memory. Everything else is free for user programs, the rest of the BDOS and BIOS is in a separate memory bank and paged in as required.
The boot loader is kept as small as possible to remain within the first 128 bytes of the first sector. This means in in emergency I can actually boot CPM 3 with the CPM 2 boot rom.
More to come when I have some more photo's to add.