The Memotech MTX Series
Memotech Compact Flash System - Version 2
CFX - II
(Under Construction !)
CFX-II is a
development of CFX, which itself
was spin-off of the Compact Flash storage system developed for
MTXPlus+, our modern day,
fully compatible, MTX "super computer". For full details of the
development and features of CFX, see the
CFX project page.
life as SFX, see the now redundant
SFX page for the background. As the design progressed, it became clear
that we were really working on an enhanced CFX, rather than a
completely new idea, so the SFX name was dropped and we decided
to rebadge the new design as CFX-II.
Changes from CFX Version 1
The Compact Flash interface in MTXPlus+
and CFX uses two of the 8-bit ports of an 82C55 PPI to
facilitate 16 bit access to the IDE interface. As well as
supporting Compact Flash cards, this interface would
theoretically also allow hard drives or optical drives to be
used, however, the use of those types of devices is unlikely to
have any practical use on a 4MHz MTX.
It is possible to use the Compact Flash
in 8 bit mode which does not require the 82C55, Martin did some
testing in 8-bit mode and found that the data transfer rate was
actually about twice as fast as 16 bit mode. We decided to use 8-bit mode
for CFX-II which would be faster than
CFX and reduce the component
footprint, at the expense of 16 bit compatibility.
While SFX was still at the concept stage,
a couple of other enhancements were added. Martin and I had been
discussing the non-Memotech Silicon Disk that was present in one of my FDXs
and decided that adding a Silicon Disk to SFX was feasible. In
Memofest 2016, Bill Brendling had demonstrated an
80 Column card add on for CFX
based on the
Parallax Propeller. Bill's 80 column modification has been
added to CFX-II.
One of the limitations of using
CFX on a 32k MTX500 was the inability to run
CP/M, as the operating system needs 64k of RAM. This was also
the case with Memotech's SDX and FDX disk systems which only ran
on MTX512 and above computers. Since it was relatively
straightforward to add a 32k "skinny" DIP RAM to the
CFX-II board, this change was also included.
As with CFX,
CFX-II is self
contained - it does not require any modifications to the MTX
CFX-II comprises of
An SSTSF010 128 kB x 8 CMOS Flash
holding the CP/M, SDX and support ROM images
A 512 kB CMOS SRAM for the Silicon
A 32kb RAM in a narrow DIP package
for the 32k to 64k MTX memory expansion (optional)
Parallax Propeller Microcontroller Unit (MCU) for the 80
Column board hardware
A serial EPROM storing the executable
code for the Propeller chip
A Programmable Logic Device (CPLD)
incorporating all of the glue logic previously done in 74LS
JTAG Programming port for the CPLD
Programming interface for the serial
VGA Connector (external version) or
Pin header (internal version)
I/O Port Range
In Memotech's original design, I/O ports below 20h
can be provided by the motherboard and internal/external
add-ons. Ports 20 and above were to be provided from within the
FDX, the SDX ROM used ports 10h to 14h.
As with MAGROM, I wanted the flexibility to be able to mount
CFX internally, thus board space is at a premium. In Version 1
of CFX, the glue logic was done using 74 series components and
with the small
number of logic gates that it was possible to fit into the footprint, the range of I/O decode lines
was very limited, so Version 1
used Z80 I/O ports 6Ch to 6Fh. This port range was not used by Memotech and is shown as available on Andy Key's list of I/O
ports used by Memotech and for modern day add-ons1.
In Version 2 of CFX,
the glue logic is done in an Altera MAX7000
CPLD, although all of the address lines are connected to the
CPLD and the full range of Z80 I/O ports could be decoded, the
I/O port range has been maintained for compatibility reasons.
Since the emulation of the 80 column card
is done using different display hardware than Memotech used in
the FDX/SDX display controllers (Motorola
6845) and the ROM needed to be changed to support the new
hardware, there was no advantage in retaining the original 80
column card I/O port assignments () so ports 60h and
61h are used to interface with the Parallax
As well as the depth constraint, there is also a limit to the
width of an internal board if it is to be compatible with the
existing range of MTX expansion boards, RAM, ROM, and the
RS-232/FDX interface board (using only the RS232 ports).
|Each of these boards was half the width
of the expansion card area, i.e., up to two expansion
cards could be installed internally. (A combined
80-column/RS-232 board, taking up the full width of the
expansion card area was released later but is not
relevant to this discussion, since it was meant to
support Memotech's own disk based CP/M add-on using a
disk interface connected the the cartridge port on the
left hand side of the case. If you have one of those,
you probably don't need CFX-II.
The Version 1
CFX PCB was narrow enough that edge
connectors could be installed on both sides of the board
and it could be switched between internal and external
mounting at will - even if a Memotech memory board was
installed. With the increased component footprint of
CFX-II, this would no longer have been possible. If a
Memotech memory board is installed, the CFX-II PCB could
not have had the right hand side edge connector fitted
without removing the MTX computer side plate. In most
cases, this is not likely to be a problem as the Memotech memory board could be removed. It would only be
a problem if the Memotech memory board could not be
removed if it were soldered in.
The other space constraint on
the CFX PCB was driven by the price points set by the PCB
manufacturers that I use in China. There is a price break at
100mm x 100mm and the cost of CFX is minimised if I keep the
PCB size below this limit. Meeting this target with the
increased complexity of CFX-II proved to be a real
challenge, both to my component layout "skills" and the
track auto-router that I use. The only way that I could keep
to this PCB size limit was to remove the second edge
connector, meaning that the standard fit for CFX-II will be
However, based on
that I accidentally introduced with
Version 1.1 of the MAGROM
and the convenient solution suggested by Martin,
this isn't actually a barrier to installing the PCB
internally. Although the board would not be reversible,
depending on how the edge connector is fitted to the PCB,
the board can be installed either externally or internally.
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. See the
CFX-II firmware page for full details.
|Version 0.3 of the
provisional SFX design, incorporating a 32kB RAM, RTC,
82C55, 2 x GALs for I/O and Memory decode logic and
512kB Flash memory.
The Flash was intended to hold the
SFX System, CP/M and SDX ROMs, with the remaining
480kB originally intended to be used to store MAGROM game
|Martin's V0.3 prototype
|Solder side of the V0.3
|The prototype board running
an early version of the SFX
The screen shows the RTC working and the
system seeing the additional 32K of RAM - in this
case, the board in plugged into a 64K MTX, giving
96K total RAM.
This was as far as the
proposed SFX got before Bill showed off his 80
Column card board at
|With Bill's input, the
functionality of the board has now been expanded to
include VGA output from an emulated 80 Column board.
In addition, Silicon Disc functionality has been
As you can see from Martin's draft
V0.6 layout, the component footprint has increased,
which led us to drop the RTC from the scope of
SFX to save board space.
completed prototype V0.6 board, now taking up around
70% of a Eurocard size prototype board and does not
include the 32kb RAM addition.
|Fully assembled prototype,
powered on and working !
As you can see,
there are significantly more components on the board
than CFX, but I am still
hopeful that the final PCB will be suitable for both
internal and external mounting.
probably mean mounting some components on the
underside of the board so that the portion of the
board in the shallowest part of the MTX case can be
|Solder side of the
|The output from the
prototype board, showing the boot screen output from
the MTX monitor output and test output from the 80
column screen on a VGA monitor.
|Close up of the 80 column
output with the screen filled with 80 column text,
displayed on the VGA monitor.
|Initial test of the 80
Column output under CP/M using the SFX CP/M BIOS and
a very basic driver for the Propeller hardware.
|More development of the
CP/M driver - now with colour!
colour boot screen that would be seen on an FDX with
|Screenshot showing colour
NewWord running from CP/M.
At this point, the
80 Column Escape codes have not been implemented, so
scrolling does not work, but the screen display
|When, thanks to the hard work of
Martin and Bill, CFX-II
got to this stage, I started to think about building
my own prototype, with the addition of the 32kb RAM
expansion and using a CPLD, rather than 74 series
components for the glue logic.
having had lots more practice, my soldering "skills"
are still not great and the thought of wiring up
another complex prototype board did not really
appeal to me though. When I saw that my PCB
manufacturer had a bit of a sale on and that I could
get a small run of boards made pretty cheaply, I
decided to take a chance and get a few boards made
based on Martin's prototype with a few, hopefully,
low risk modifications added.
|I took Martin's design and
replaced the 74 series logic components with an
Altera MAX 7000 CPLD and added a 32kb CMOS RAM in a
skinny DIP package to enable the board to provide
the necessary RAM upgrade to allow a MTX 500 to run
|The second edge connector
included in CFX Version 1 was removed to meet the
size constraints described earlier.
Version 1 had all of the components squeezed into
the top 2/3 of the board to allow the PCB to fit
underneath the MTX keyboard when it was mounted
The increased component count for
Version 2 means that this is no longer possible but
the PCB should fit internally if mounted upside down
as has been done with the MAGROM Version 1.1 PCB.
|The KiCad 3D view of the
PCB showing how the board would look when configured
for connection to J10, the MTX expansion connector
on the left side of the case.
configuration, the edge connector would be mounted
below the PCB and a standard 15-pin "D" type VGA
socket installed to connect to the monitor.
Pin headers are included for cabled connections for
the VGA monitor, CPLD JTAG connector and a
programming connector for the serial EPROM.
Not shown are the 18 through hole resistors mounted
inside the 40 pin propeller socket.
|The size of the Memotech
option ROMs was 8kBytes, for CFX we need space for
the SDX and CP/M ROMs, i.e., 16kBytes in two 8kByte
"pages". Address lines A0 to A12
can address 0 to 8191d locations, and A13
allows a second block of 8kB to be addressed. In
CFX, the Page Port R0 line is used to select the
appropriate ROM page.
CFX was designed to use
Flash storage, although only 16kB is used, larger
devices can be used if available.
|CFX can also use EPROMs
provided that it is acceptable for the programming
voltage on Pin 1 to be 0v in normal operation.
A selection of compatible Flash and EPROM
devices are shown in the table - the component
datasheets are available by clicking on the
I shall shortly be taking orders for CFX-II,
please send me an e-mail if you are interested in buying
one. The price is
£tbc, including Postage & Packing to
the UK, plus
any applicable payment fees, e.g., Paypal (unless you pay
The standard build of CFX-II is for external mounting, if you
want to mount CFX internally, please check that you have
adequate space inside the MTX, please contact me for advice
if you are unsure. The internal option requires that the edge connector
is mounted the other way up from the external version, this
decision must be made at build time. You will also need a
short IDE extension cable, there
will be an extra charge of £4.00 for an internally mountable
CFX (to cover the cost of the cable), depending on the configuration of your MTX, the CF card
reader may be inside or outside the MTX case.
Note : For your convenience, I will include
a selection of MTX software on the CF card, for the
avoidance of doubt - you are not
paying for this software. Although the majority of the
included software is still under copyright, it is freely
available in various places on the Web, including my
software download pages.
Although it is extremely unlikely that the copyright
holders, even if they are still around, would want to assert
their rights to the software, it should not be distributed
for profit. The price of CFX
covers the cost of design, manufacturing and assembly of the
Please also note that, although the CF card contains a large
number of programs, although the majority will, not all
programs will run on the system, there are no guarantees
with the software ! Although I have tried much of the
software, there are many items that have not been tested, I
have put together
a "rough 'n' ready" list of what is on the first
partition, if you can share your experiences, I will update
Although CF Cards are relatively cheap, they are not
as common as SD cards and usually require an
external reader to be used with a PC. Many PCs have
built-in SD card readers, so for more convenient
file transfer, I can supply a CF to SD card adapter
and an SD card instead of a CF Flash card for an
Production Run (tba)
Connector Configuration, Feedback
Shipping address UK unless
otherwise noted (by Country Code)
For firmware upgrades,
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