Computers Overview
Commodore PET
Sinclair ZX80
Sinclair ZX81
BBC Micro
Sinclair Spectrum
Memotech MTX
      Hardware Hacks
      Legacy (1980s)
      PAL Reader
    User Groups
    Video Wall
Memotech CP/M
Atari ST
DEC 3000 AXP
Raspberry Pi



The Memotech MTX Series

Memotech Multi-Function Expansion System

MFX Firmware

MTX CFX Boot Screen

CF Card Directory

 one ?)


This page is the repository for the firmware and custom software programs used by the Memotech Multi Function Expansion board, MFX. The PCB includes

  • A GAL22V10 that performs ROM and RAM decoding

  • A 128kB Flash ROM that contains the Z80 compatible system ROM functions

  • An Altera Cyclone II EP2C5T144C8N FPGA that contains the VGA drivers and other custom functions

(Some) source files are provided for reference, only the object files are actually required to perform the upgrades.



The GAL code is unlikely to change during the life of the product. The code references the hardwired connections to the MTX page port, some Z80 control signals (/RD and /MREQ), the configuration jumpers and the high order bits of the address bus. Unless an error in the paging logic comes to light, there should be no requirement to update the GAL. The GAL object files are JED files produced in  MicroChip's PLD programming application, WINCUPL.


Download GAL Program Version
Source Object Build Date
 Initial release  1.0 26/03/22
 Corrects a problem with the RAM paging logic   2.0 29/07/22
  MAGROM v1.1 compatibility - reduces available RAM to 384k 2.1 17/02/24

The Flash ROM contains some enhancements to the SDX ROM. It is possible that some minor additional features could be added or errors discovered in the current ROM code. Should either of these occur, the ROM will likely be updated and made available for download on this page. Provided that the user has a suitable EPROM programmer, updating the ROM should be a trivial task, however, updated ROMs will be available for upgrade or purchase through the link at the bottom of the page.

Download ROM Image Version
Source Object Build Date
n/a  Development  117 16/06/22
n/a  Initial release - for use with SD cards 1GB or smaller  134 11/07/22
n/a Beta version - adds limited support for SDHC cards
[Larger capacity SD/SDHC cards are now supported, but the maximum useable space (~270MB) is unchanged.]
Note: In this release, Hextrain can only be run from SD (not SDHC) card(Do not use : Replaced by Build 167)
166 25/09/22
n/a Updated beta version - corrects bug in USER VGA introduced in Build 166 (Now considered stable)
Bill has now modified Hextrain to be able to use both SD and SD/HC cards. Bill's version, including sources and executables are available in this archive, or the SD executable is available below.
167 29/09/22

After Build 167, the version numbering was changed to make it easier to keep track of changes when multiple developers (i.e., Martin and Bill) were working on the code. The version number is now shown as the build time and date, e.g., 21:30 29 Sep 2023 on the MFX startup screen.
n/a Beta version - adds support for SD cards partitioned in the PC sense, i.e., the CP/M "partitions" (disk images) and HEXTRAIN data file are saved to an area of the card with a Partition ID of 52 (CP/M). The remainder of the card can now he configured as a FAT32 partition for use with a PC.
Bill added this functionality and wrote a CP/M utility ( that allows MFX to transfer files between the CP/M "disks" and the FAT partition.
This enhancement does NOT require an update to the FPGA. However, the ROM also supports commands to enable additional video modes that Bill added to the FPGA. Usage of these commands does need the updated FPGA version described below.
These functions are described in versions of the Operator's Manual 1.2 and greater.
13:15 14/01/24

The FGPA is mounted on a small development board piggy-backed on top of the MFX PCB. The FPGA contains the VGA and SD card drivers and other custom functions. It is possible that some minor additional features could be added or errors discovered in the current FPGA code. Should either of these occur, the FPGA code will likely be updated and made available for download on this page.

Upgrading of the FPGA code is a slightly more complex task than upgrading the ROM, it requires that the user has a copy of the Altera Quartus II design suite (a free version is available) and a suitable device programmer (under 10 from eBay, even cheaper from Aliexpress). Due to the orientation of the FPGA development board, it would need to be removed from the MFX PCB in order to perform the upgrade. It may be that the best way for the user to access an updated FPGA code version is to return the FPGA module to me to upgrade. There would be no charge for this, other than for the cost of return postage.

The FPGA binary includes a serial number generated at compile time which includes the owner's initials and a unique serial number. To keep these serial numbers accurate, generic downloads of the FPGA code are not available but I will generate an updated file for you on request. Alternatively, you can return the FPGA board for upgrade as described above.

The fact that the FPGA firmware is not freely available may be a cause for concern to some. Rest assured, that should I be unavailable for any reason (is that a bus I see coming?), a copy of the firmware source files and a generic version of the object file are available in a secure developer's area of the Memotech forum, accessible to other MFX developers who would be be able to provide a copy should the need arise.

Download FPGA Code Version
Source Object Build Date
n/a Initial release (ASP .pof file) 01-00 17/07/22
n/a Corrects an error in the shadow Page Port logic. Only affects boards with serial numbers below xx-10, and even then, most users will be unaffected by this issue. 01-01 27/10/22
n/a Adds additional video modes and functions contributed by Bill
These functions are all described in versions of the Operator's Manual 1.2 and greater.
(See the notes above on how existing users can get their MFX upgraded to this firmware revision.)
02-05 11/01/24


The programs below provide support for the non-standard features of MFX, including the WIZnet Ethernet module and various other support programs. These programs were kindly developed by Bill Brendling and are described in more detail in the MFX Operator's Guide..

Download Description Version
Source Object Build Date
in zip - Start .com games from CP/M

Puts the VGA screen into VDP mode before starting the game. Usage "cpmvdp"
1.0 18/06/22
in zip - File Transfer Protocol Daemon (MFX ftp host) - Http Daemon (MFX web server)
(Do not use : Replaced by Build 230307)
220530 30/05/22
in zip Updated ftpd and httpd to accept command line options to specify the default web server index filename (httpd only) and log file name
switch meaning example default
-h  index file name -h index.htm index.htm
-l log file name -l ftpd.log (none)
230307 07/03/23 - Hextrain for MFX with SD and SDHC Cards 211001 01/10/22
n/a - Run HEXTRAIN using Bill's Enhanced Storage ABI.
A ROM version of January 2024 or later is required to implement these functions.
231210 10/12/23 - Transfer files between the CP/M and FAT partitions.
A ROM version of January 2024 or later is required to implement these functions.
240114 14/01/24


The MTX language ROMs do not provide support for country specific keyboard layouts such as AZERTY (France) and QWERTZ (Germany), meaning that the keys typed are interpreted by the CP/M keyboard drivers as their UK equivalents. Martin has taken the key mapping from the German language ROM and created a small program to patch CP/M for the German language keyboard layout.

It should be possible to do the same for other language variants, please email if you need this functionality to be added for your keyboard language.

Download Description Version
Source Object Build Date
n/a - patches CP/M for the German keyboard layout (QWERTZ). Run at startup, or add to the startup command string. 1.0 20/10/23

Download   Version
Source Object Build Date


mailto: Webmaster

 Terms & Conditions