| 
					
						| 
						 | The Memotech MTX Series | 
						
						 |  
				Memotech Multi-Function Expansion System 
				
				MFX Firmware 
				 one ?) Introduction 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, ROM and FPGA versions 
				highlighted in blue 
				are the current default versions for Cyclone II boards The GAL, ROM and FPGA versions 
				highlighted in red 
				are the current default versions for Cyclone IV boards Firmware The GAL code is least to change during 
				the lifetime 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.  Version 2.0 is the default version and is 
				applicable to the vast majority of MFX users, Versions 2.1 and 
				2.2 were created for specific usage cases. Version 3.0 provides support for ROM3, 
				required for MFX boards with a Cyclone IV FPGA and a RTC 
				installed in the VRAM socket. Enables the option to boot the 
				system with CP/M 3.1 (<Reset><3> 
				boot command)  
					
						| 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 (F) | 29/07/22 |  
						|  |  | MAGROM v1.1 compatibility - reduces available RAM to 
						384k | 2.1 (F) | 17/02/24 |  
						|  |  | Enables CP/M 3.1 boot option using ROM3 | 3.0 (G) | 05/09/24 |  
						|  |  | For computers with failed or missing on board RAM - see readme.txt 
						in the Zip file for details
 (Optional GAL16V8 code to 
						replace the on board MTX PAL for 0k.
 Currently 
						only supports 4000-05/06 3 ROM MTX computer boards)
 | 3.1 (H) | 13/10/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 |  | 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 (fatcopy.com) that 
						allows MFX to transfer files between the CP/M "disks" 
						and the FAT partition.
 NB: This enhancement  
						requires FPGA code revision 11/01/24
 The ROM supports commands 
						to enable additional video modes that Bill added to the 
						FPGA. Initialisation of the VDP will fail if this ROM is 
						used to boot an MFX with FPGA code revisions prior to 
						11/01/24.
 The enhanced 
						functions are described in Operator's Manual version 1.2 and greater.
 | 13:15 | 14/01/24 |  
						| in zip |  patch
 | The 24/01/14 ROM has been found to have a bug in the 
						CP/M 2.2 graphics driver that is only evident when using 
						line drawing graphics and the expanded screen size in CP/M mode. Most users will 
						never see the issue, but if required, the driver can be 
						patched after it has been loaded into RAM by loading the 
						COM file in this archive as required. | n/a | 07/09/25 |  
						| n/a |  | Adds 
						support for CP/M 3.1 Requires an MFX fitted with a 
						Cyclone IV FPGA and GAL version 3.0.
 <Reset> <C> to 
						Boot CP/M 2.2
 <Reset> <3> to Boot CP/M 3.1
 (Do not use : Replaced by Build 14/02/25
 | 19:01 | 19/01/25 |  
						| n/a |  | Includes 
						support for CP/M 3.1 Requires an MFX fitted with a 
						Cyclone IV FPGA and GAL version 3.0.
 <Reset> <C> to 
						Boot CP/M 2.2
 <Reset> <3> to Boot CP/M 3.1
 Implements FAT partition and backup/restore of CP/M 3 
						system tracks
 Contains a bug in the CP/M 2.2 graphics 
						driver
 (Do not use : Replaced by Build 06/09/25
 | 17:38 | 14/02/25 |  
						| in zip |  patch
 | It is possible to work around 
						the issue in the 240114 (Cyclone II) and 250214 (Cyclone 
						IV) ROMs by patching the copy of the driver loaded into 
						RAM without having to replace the ROM by loading the COM 
						file in this archive as required. | n/a | 07/09/25 |  
						| n/a |  | Includes 
						support for CP/M 3.1 Requires an MFX fitted with a 
						Cyclone IV FPGA and GAL version 3.0.
 <Reset> <C> to 
						Boot CP/M 2.2
 <Reset> <3> to Boot CP/M 3.1
 Implements FAT partition and backup/restore of CP/M 3 
						system tracks
 Fixes 80 column graphics bug 
						in CP/M 2.2 mode
 | 11:56 | 06/09/25 |  
 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.
 
 For MFXs shipped with ROM version 
				14/01/24 or later, the accompanying SD card includes a FAT32 
				partition which holds copies of the FPGA object file and the MFX 
				CP/M image.
 
 
 
					
						| 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 Operator's Manual 
						version 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 |  
						| n/a |  | Unreleased beta version for 
						aborted Cyclone IV EP4CE6 board (see the Engineering Changes 
						page for details)
 | 03-10 | 21/02/24 |  
						| n/a |  | Adds 
						support for the Cyclone IV EP4CE10 board Enables use 
						of a hardware RTC installed in the VDP socket and adds a 
						CPU memory buffer to support the use of banked RAM in 
						CP/M 3.1
 | 04-05 | 31/10/24 |  
						|  |  |  |  |  |  
 Software
 
 The programs below provide support for the non-standard 
				features of MFX, including the WIZnet Ethernet module and 
				various other support programs. Many of 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 |  | cpmvdp.com 
						- Start .com games from CP/M 
 Puts the VGA screen into VDP mode before starting the 
						game. Usage "cpmvdp filename.com"
 | 1.0 | 18/06/22 |  
						| in zip |  | ftpd.com - 
						File Transfer Protocol Daemon (MFX ftp host) httpd.com - 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 (Delete "-remove" from the .com 
						files to create the correct names)
 
 
							
								| 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 |  
						|  |  | htsd.com 
						- Hextrain for MFX with SD and SDHC Cards | 211001 | 01/10/22 |  
						| n/a |  | htes.com - 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 |  
						|  |  | fatcopy.com - 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 |  
						| n/a |  | go3.com - Softboot of CP/M 3.1 from 
						CP/M 2.2 system boot Allows older MFXs without 
						the EP4CE10 FPGA to run CP/M 3.
 Requires an SD card 
						with CP/M 2 and CP/M 3 partitions loaded.
 (Created by Martin)
 | 250126 | 26/01/25 |  Other
 
 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 |  | german.com 
						- patches CP/M for the German keyboard layout (QWERTZ). 
						Run at startup, or add to the startup 
						command string. | 1.0 | 20/10/23 |  
						|  |  |  |  |  |  
						|  |  |  |  |  |  
						|  |  |  |  |  |  
						|  |  |  |  |  |  
						|  |  |  |  |  |  
 User 
				Contributed
 
 
 
					
						| Download | Description | Version |  
						| Source | Object | Build | Date |  
						| n/a |  | MFXinfo.com - CP/M Version of MFXinfo Displays equivalent of BASIC USER INFO command under 
						CP/M
 Contributed by Eugen Kaschubinsky
 | - | 04/09/25 |  
						| in zip |  | date.com, time.com 
						- limited CP/M 2.2 RTC support for MFX Duplicates the 
						functionality of the USER RTX commands to enable the RTC 
						to be set & read from CP/M 2.2. CP/M 2.2 does not 
						support an RTC like CP/M 3 does, but the date/time 
						display is useful.
 Contributed by Eugen Kaschubinsky
 | - | 09/09/25 |  
						| in zip |  | temp.com - read the temperature of the 
						RTC module in MFX Duplicates the functionality of the 
						USER RTX3 command
 Contributed by Eugen Kaschubinsky
 | - | 11/09/25 |  
						| n/a |  | testcard.com - displays the colours 
						and characters available from the emulated 80 column 
						board Contributed by Eugen Kaschubinsky
 | - | 28/09/25 |  
						|  |  |  |  |  |  
						|  |  |  |  |  |  
 
 
 |