Computers Overview
Commodore PET
Sinclair ZX80
Sinclair ZX81
BBC Micro
Sinclair Spectrum
Memotech MTX
              80 Column
              Video Modes
          File Transfer
          Special Fit
      Hardware Hacks
      Legacy (1980s)
      PAL Reader
      PC Keyboard I/F
    User Groups
    Video Wall
Memotech CP/M
Atari ST
DEC 3000 AXP
Raspberry Pi



The Memotech MTX Series

Memotech Compact Flash System - Version 2

CFX - II Firmware

MTX CFX Boot Screen

CF Card Directory

 one ?)


The CFX-II ROM provides versions of both the MTX SDX BASIC ROM and a CP/M ROM based on the original Memotech CP/M ROM with 80 Column Card support.

The video display from the SDX BASIC ROM is generated by the MTX VDP, with output through the MTX TV and Video connectors.

The video display from the CP/M ROM is generated by the Parallax Propeller on the CFX-II board, with output through the VGA connector on the CFX-II PCB. Bill has documented Version 2 of his Parallax Propeller firmware in this file.



The Memotech SDX BASIC ROM added disk functions to MTX BASIC through USER commands, such as USER LOAD, USER SAVE, etc. These commands loaded and saved files in Memotech's .BAS format. Andy describes the structure of .BAS files on the formats page in the MEMU section of his Memotech site.

The same page also describes the structure of .RUN files, Memotech supplied some games in this format for systems with the SDX ROM. They were executed by the USER RUN command from BASIC.

These days, the majority of Memotech software is available in .mtx files, described by Andy as "disk files containing the same bytes, in the same order, as would be found on an MTX cassette tape." These files are used by most emulators, including MEMU and hardware enhancements such as REMEMOrizer but were not supported by the original SDX. Given the prevalence of .mtx files in the Memotech software library, Martin has added a USER MTX command to the SDX ROM in CFX to support loading of .mtx files from SDX BASIC.



CFX Version 1 used a copy of Andy's SCPM ROM that was written to enable CP/M to run on a Memotech computer without the need for an 80-Column card, the MTX VDP was used to generate a low quality 56 column text mode. Andy also patched NewWord to run in this 56 column mode. The SCPM ROM was eventually used in Memotech's Video Wall product.

CFX-II  includes an emulation of the Memotech 80 column card and generates full colour 80 Column output to a VGA monitor. MTX BASIC and games output is still through the original Memotech video output port.

As with CFX Version 1, CFX-II CP/M mode does has a significant speed advantage over SDX mode in certain cases. Due to the way that the CFX "disk" code works, program loading from SDX BASIC takes considerably longer than loading a comparable program from CP/M, for example, TURBO.RUN takes 4.6 seconds to load in CFX SDX mode, while TURBO.COM is near instantaneous from CFX CP/M mode.


CFX ROM Selection

Since CFX can co-exist with MAGROM and also has two different ROM images available, there has to be a mechanism for selecting the appropriate ROM to call when the MTX is powered on or reset. The MTX OS ROM checks for the presence of option ROMs in sequence, e.g., ROM 4, ROM 5, ROM 7, the CFX CP/M ROM is implemented as ROM 4.

After power on or reset, the MTX will boot from the CFX ROM, display the CFX splash screen and check for the presence of a "disk" (CF Card) in the card slot.

If a card can be read, the other boot time options are displayed for information and the user prompted to "Press <RET> to enter SDX BASIC".
If the "drive" cannot be read within the configured time-out period (currently ~15 seconds), a warning message is displayed and the remainder of the splash screen is displayed.

Pressing the <RET> key will enter SDX BASIC, albeit that there will be no "disk" available unless the CF card hardware is present and a card is inserted.
Selecting "I" from the boot screen brings up a helpful crib sheet showing the additional commands available from SDX BASIC.

Pressing <RET> continues to SDX BASIC
The boot time options are :-
Key combination (Reset + < key >) Mode
<M> MTX - no CFX or MAGROM support
<space> MAGROM
(none) CFX Boot ROM - displays Splash screen
  [   <RET> enters CFX - SDX BASIC   ]
  [   < I >   Displays SDX USER crib sheet ]
As a result of the ROM processing order noted earlier, there are a couple of incidental effects that can be used when hitting <RET> to exit the boot screen :-
<space> + <RET> boots MAGROM
<space> + <alpha key> boots MAGROM and loads the game found in the slot matching the key pressed, e.g., "0" would load Agrovator

Output from the emulated 80 column board displayed on a VGA monitor.

Propeller Firmware

The Propeller starts up in a colour mode, compatible with the MTX 80 column card using colour output, but can be switched to two alternative modes :

  • Compatible with the MTX 80 column card using monochrome output, or

  • An enhanced colour mode, providing the full capabilities of the Propeller card

The following character sequences (escape codes) are used to switch between modes:
Character Sequence Mode Selected
0x1B, 0x9C MTX 80 Column Card Colour compatible mode
0x1B, 0x9D MTX 80 Column Card Monochrome compatible mode 
0x1B, 0x9E Enhanced mode

Bill has fully documented the features of his Propeller firmware in this file.

Source Code
The CFX-II Boot PROM source code.

The Z80 assembly is for Martin's home-brew assembler that uses BBC style labeling. The Assembler is in the form of a zipped ARCFS archive. Read the "instructions" file for more details and restrictions on its use.

02/04/2018 : Build 278 (Production Version)

The code
01/07/2019 - Alternative Assembler Available

Until recently, the source code for the firmware in our Memotech hardware projects could only be assembled without modification if Martin's assembler was used. The assembler was written under BBC BASIC for RISCOS which meant that very few people were in a position to assemble the code themselves. Bill Brendling has released a new Z80 assembler written in Python that supports a number of formats, including Martin's assembler format. Bill's program is available for download here.


Change Log - Firmware
NB: For CFX Version 2.0 Only !

For upgrades to CFX Version 1, see this page


source Version Comment
  240116 Updated to include Bill Brendling's Extended Storage ABI developed for MFX.
The archive includes copies of :-, run HEXTRAIN (CF card must have the HEXTRAIN data partition), provides support for CF cards with a FAT partition
  210918 Corrected obscure bug in CFX-II Boot Code.
(Under certain conditions, the system would play the start-up chimes then become unresponsive. This update generates a Propeller reset under those conditions. Build 281)
  200510 Bill's Development Version with improved Propeller Code
Contains source code and ROM image of a new Z80 ROM for the CFX-II supporting the VGA screen types. Also loadable and files (plus source) for using the new screen types. The build binaries assume the new Propeller code, although the source can also be built for the old Propeller source.
278 Build 278 - "Production"
Parallax Propeller Source Code
n/a 200510 Monitor V11 Source and EPROM Object Files
n/a 171112 Includes source and EPROM Object files
Parallax Propeller Boot Serial EPROM
n/a (10) Monitor V10 EPROM Object file
If the firmware in your CFX is not at the latest version shown above and you have an EPROM programmer, you can download the latest firmware and upgrade CFX yourself. If you would like an upgrade to the latest firmware but do not have the means to do the upgrade yourself, I will do it for you for no charge, other than the cost of postage. Drop me an e-mail if you need this done.



Change Log - Hardware


First production board, committed to manufacturing, 21/02/2017











1 Andy Key's Memotech Hardware page

2 Que Publishing, Upgrading and Repairing PCs, 21st Edition, ISBN-13: 978-0-7897-5000-6. Sample Chapter : The ATA/IDE Interface


mailto: Webmaster

 Terms & Conditions