Memotech MTX-512 on steroids? - "MTX Plus+"
This started with an idea that Lez Anderson floated at the
end of 2012 - to create an updated "MTX", a Z80 based, 8-bit computer,
running at 20MHz with enhanced graphics capabilities. Lez proposed running a "crash Z80
design course" on the Memotech Forum
on mtxworld
in August 2012, this sounded very interesting and I planned on taking part.
Unfortunately, the idea of a structured course did not get
sufficient interest to make it viable, but I am pressing on
regardless - you can see my progress
(or lack of!) on this page.
Things have gone a lot slower than I had intended, but I
think that things are close to completion now. If you are at all
interested in how this project evolved, then I think that it is
probably better to read the project updates, what few there are,
in reverse chronological order - so, to see the history of this
project, go to the bottom of the page and work up!
28/01/2017 - Current Status
Despite there being no obvious progress documented here, work
on MTXPlus+ has been continuing .....
When Andy demonstrated
HEXTRAIN
at
Memofest 2016, we found that it would not run on correctly
MTXPlus+. This was something of a disappointment as we had
thought that the system would be able to run all MTX software.
However, HEXTRAIN really pushes the VDP to the limit and subtle
timing differences between the MTX's V9929 and the supposedly
compatible V9958 in MTXPlus+ are enough to stop from HEXTRAIN
from working properly and results in an unusable display when
motion is being simulated on the screen. Tony Brewer has spent a
lot of time (thanks Tony!) trying to optimise the wait state
generator in MTXPlus+ so that it would allow HEXTRAIN to run.
Unfortunately, it has not been possible to overcome the timing
differences and we have had to give up on making MTXPlus+ run
HEXTRAIN.
Despite being sidetracked by these efforts, MTXPlus+ is now
back on track, albeit that the goal of 100% MTX compatibility
has now been derailed.
Enough of the (|HEX)train metaphors, and back to MTXPlus+ . .
. . . . more updates soon . . . .
26/08/2016 - System Speed Developments
Thanks to some clever logic designed by Tony Brewer, the
system now has some really flexible speed control features. By
dividing the master oscillator frequency, the CPLD (or GAL) on
the CPU board now generates 16 different frequencies that can be
used to clock the system at a range of frequencies pretty evenly
spaced between 4 MHz and 16 MHz. The user can select any one of
the available speeds in real time by sending an appropriate
value to the system control I/O port (FFh). This is a
significant enhancement over the coarse DIP switch settings
previously used to set the CPU clock frequency.
Martin is in the process of including additional commands
into MTXPlus+ BASIC to allow the system speed to be
read and controlled through BASIC commands.
In separate exercise, Tony has also enhanced the wait state
generation needed to allow the VDP and PIA to be clocked at the
faster rates. Instead of the GAL on the Video board using fixed
wait states set by DIP switches, the GAL now controls the wait
states based on the system clock frequency.
Adding these extra features has slightly delayed getting the
next PCB produced, but it has certainly been worth the wait.
29/07/2016 - First PCB Manufactured ! (-
Some issues though)
With the design of the CPU board nearing completion, I
decided that it was time to start thinking about getting some
PCB's made. I designed a
combined power & backplane board and got a sample run of
those made.
Unfortunately, there are a few errors with it - mainly to do
with some apparent changes between the component footprints that
the previous and current version of KiCad uses - at least,
that's my excuse. The biggest issue is around the TIP2955, I
probably picked the wrong footprint for that one, but it's not a
"fatal" error, it just needs some creative "bodging" when
fitting the power transistor.
The biggest issue is my misreading the photo on the
eBay item listing where I sourced the Boost Regulator that
provides +12VDC from the low voltage DC supply to the board. I
have reversed the Vin+ and Vin- terminals on the PCB. Again, that isn't
something that can't be worked around, but in the short term, I
have just not installed the Boost Regulator. It is only used for
automatic picture sizing with SCART and for the RS232 connection
which is not currently used.
16/07/2016 - Z80 CPU Board
The design of the Z80 CPU board is pretty much finalised,
once one final modification has been tested, I am planning on
getting some PCBs professionally manufactured. In the unlikely
event that you want to build your own MTXPlus+, see the details
on this page.
03/05/2016 - System Speed Rating & Enhanced CPU Board
Option
Although still a "work in progress", as it turns out, with
assistance from Tony Brewer, we have been able to increase the
clock speed of MTXPlus+ to the point where 16MHz is just about
stable - it just needs some minor "tuning", and even 20MHz may
be possible after all.
While testing MTXPlus+ with the speed optimisations referred
to above, I was having a number of stability issues that were
not necessarily related to the speed "tweaks". Martin had built
a second CPU board based on the Z8S180 enhanced Z80 processors
that Lez had supplied, so I decided to do the same to give me
another CPU board that I
could use to prove the rest of the system. This has held up
finalising the Z80 CPU board configuration, but it is now pretty
much done, so I can get back to finishing off the Z80 design.
23/01/2016 - System Speed Rating
We have decided that the rated speed of MTXPlus+ should be
reduced to 10MHz. Whilst this may be a little disappointing, it
probably should not be too much of a surprise that even 16MHz
was a little too ambitious. You can read a more detailed
explanation for this decision on the
notes page, but in
brief, although the CPU and memory can operate faster, the
system speed is constrained by the legacy devices used for the
peripherals, such as the PIA, CTC and SIO.
30/12/2015 - System Backplane
I had been experiencing issues with the stability of the
system for some time, at faster CPU speeds, the system was very
sensitive to the position and spacing of the boards on
my backplane, an issue I put
down to the lack of proper termination on the bus. I toyed with
the idea of trying to build a pair of bus terminators, but
eventually decided on a more extreme course of action! More
details can be found on my
notes page,
limited testing has shown that it does appear to have helped the
system's stability, at least up to 12Mz.
In an unrelated development, Martin has designed and built a
6502 co-processor board
for the original MTX, he has also done an MTXPlus+ version and
generously donated the first board to me.
31/10/2015 - General
Well, after a long delay in making progress on MTXPlus+ over
the summer, I have now picked up the project again.
Unfortunately, an issue with the keyboard interface on the I/O
board arose that caused a further delay that I could have done
without. It turned out to be a cable problem but the symptoms
were misleading and it took me a while to get to the bottom of
it. More details can be found on my
notes page.
31/01/2015 - Various
Lots of activity going on in the background, including trying
to find (with help) a hardware solution to allow the VDP on the
video board to be written to
at any CPU speed and optimising the buffer arrangement on the
CPU board. Perhaps the most
noteworthy progress though, is Martin's code to integrate the CF
with the MTX ROM. You can see an example of the work to date on
the I/O board
page.
15/01/2015 - I/O Board
Both the keyboard and parallel printer interfaces on Martin's
and I's I/O boards
have now been successfully tested with original MTX matrix
keyboards, and in my case, a genuine Memotech DMX80 printer
(Martin used a Star LC10). At this point, I have not tested the
CPLD implementation of the interfaces - that is on the "to-do"
list. The IDE/CF interfaces have also been successfully tested
using a test program in ROM and Martin is now working on
software to interface them to the MTX ROM.
03/01/2015 - MTXPlus+ Lives !
Wiring up my I/O board
took quite a bit of time and effort, as well as having the "74"
series logic chips installed, the two CPLDs needed almost as
many connections, so the board is pretty "busy". The good news
though is that with just the GAL and keyboard ICs installed, and
the ROM loaded with a copy of the original MTX OS,
ASSEM and BASIC ROMs, my MTXPlus+
is working! The system can accept and run BASIC programs - more
testing is required, but things are looking good so far.
22/12/2014 - I/O Board
Martin has pressed on ahead (again) and finished wiring his
I/O board - at least, enough of it to get MTXPlus+ up
and running! I need to finish off wiring my I/O board - I still
have a couple of days to make the Christmas deadline.
So - the end is in sight - a few bits & pieces to tidy up on
the different boards, but, MTXPlus+ is pretty close
to completion when running in MTX emulation mode. The enhanced
features of MTXPlus+ still require some work.
13/12/2014 - I/O Board
We seem to have a workable I/O board design and are ready to
actually start building - less than two weeks until Christmas,
but barring any unforeseen problems, we should still have a
working by Christmas!
29/11/2014 - CPU Board & I/O Board
Testing of the CPU board is
pretty much complete, a couple of issues have been identified
that will require some rewiring to resolve, but the issues are
not "show-stoppers" and can be worked around in the meantime.
The only interface that is missing before we have a useable
system is for the keyboard, this interface will be located on
the I/O board. Martin and I are just about to start construction
of the I/O boards,
concentrating on the keyboard interface and targeting completion
before Christmas - watch this space !
16/11/2014 - CPU Board
Construction of the CPU boards
is complete, and despite a couple of teething problems, testing
of them is close to completion. Martin put together a couple of
ROMs to do some basic memory testing and when used with the
video and
diagnostic boards that were
already built, gave us a nice testing toolkit. Current status is
that non-paging ROM and RAM memory access is now working, the
next step will be to configure the MTX Page Port logic and add
the RTC to the I/O decode logic.
20/10/2014 - CPU Board
The CPU board design and
layouts are now complete - the reason for more than one layout
is to support the two designs that Martin and I are working on.
The base board design is the same, but Martin is using
GALs
for the glue
logic whereas I am using a
CPLD. The higher capacity of the CPLD also allows me to
reduce the chip of my CPU board - removing the 74HC273 (page
port) and two 74HC183s (clock dividers) and putting their
functionality in the CPLD.
11/10/2014 - CPU Board
With the video board
being "finished", even if not fully tested, focus has now
moved back to the CPU board
03/10/2014 - Video Board
The Video Daughter Board
has now been completed, despite a bit of lost time due to a
faulty GAL, the
limited testing that I have done indicates that the video card
and DB is working as expected - in Composite Video mode anyway.
Further testing is required to try other video modes and the
alternative outputs, i.e., RGB and S-Video.
02/10/2014 - Bus Diagnostic Board
Updated Diagnostic Board revision to Version 1.01 to correct
error in the value of C19 (thanks to
Matthew Cook for the info)
25/09/2014 - General
Now that things have progressed to a stage when the hardware
is being built and tested, I have started to post copies of the
design files, such as schematics and firmware code, in native
format. Once a particular module has been built and tested, at
least to a basic level, the source files will be available via
links on the Design Data page.
There is not much available at the moment, but I have made a
start by releasing the
system bus drawing and the
power board in
KiCad
format.
21/09/2014 - Video Board
I have been a bit busy over the last couple of weeks, but
Martin has been pressing on and has just completed building the
video conditioning daughter board. From his limited testing so
far, the good news is that the video card & daughter board
appear to be working, though the composite video quality
is not great and some "tweaking" may be required, things are
looking good.
Update : tweaking the variable capacitor on the daughter
board has made a big difference, the composite video output is
pretty good, further testing is needed on the RGB outputs.
29/08/2014 - Video Board
Construction of my video base
board is complete, next step is building the video
conditioning daughter board
23/08/2014 - Video Board
Martin and I have started
construction of the video boards in preparation for testing
on our MTX512s
01/08/2014 - Video Board etc.
Progress has been a little slow again, too many concurrent
projects and the weather being nice has not helped, but here's a
brief update for what (little) happened in July.
The VDP adapter board works fine, but I was a bit too
cautious when laying it out, by reducing some of the overly
generous clearances between the SDIP and the pin header holes
and between the pin headers and the board edges, I have been
able to reduce the width of the adapter board by 0.5" to 1.3". I
does not sound like a lot, but it means an "extra" 5 columns
become available on the prototype board - making more room for
the rest of the components. I have ordered a batch of the
smaller footprint adapters.
I have redesigned the Video Board to use the smaller
footprint adapter and completed the design of the "digital"
video output conditioning board. The analogue (transistor) based
circuit is on hold at the moment as I am not overly confident in
the design. I may revisit it later, but probably only if the
digital board has problems.
The next step is to build the video board and test it on an
MTX512, connected via my MTXPlus+
diagnostic adapter board
and using temporary I/O ports so as not to conflict with the MTX
I/O port allocation.
26/06/2014 - Video Board - SDIP Adapter
I decided to design a "proper"
adapter board
for mounting the V9958 SDIP, rather than force-fitting it onto
the prototype video board. A small run of boards has been
manufactured, enough for a couple each for Martin and I, plus a
few extras. There seems to be quite a few kits that include a
V9958 being sold on ebay by Lez and others, so, to cover the
cost, I may see if there is any interest for the extra boards by
putting them on ebay. If there is any interest from the Memotech
community, I would be willing to give you first option on buying
one, if you are interested, make me an offer. (I don't plan on
finishing off the extra boards with an SDIP socket and SIL
connectors, I intend to just sell on the bare boards as I don't
have any spare SDIP-64 sockets.)
14/06/2014 - Video Board
As I mentioned previously, the focus of attention has now
moved to the video board. In another small design change, the
video board will now have a daughter board for the output video
circuitry, much like the original MTX did. More details on the
reason for this can be found on my
notes page.
07/06/2014 - CPU Board - Real Time Clock
The CPU board will include a RTC using the Dallas
DS12887 that Lez included in his "kit of parts".
As described on my Notes
page, I found this really
helpful article written by a Wilf Rigter around 1996. The
article demonstrates the use of the DS1287 (an earlier version
of the DS12882) with a ZX81 and included examples of Z80
assembler and BASIC programs to access the chip. Martin was able
to use this information with the DS12887 and modified address
decode logic to make a working RTC that will be included on the
MTXPlus+ CPU board and has posted the details on the Memotech
forum in
this thread.
06/06/2014 - Schedule Update
My original development schedule was based on developing the CPU board before
the video board, however, as Martin and I have created MTXPlus+ to
MTX
interface boards as part of the Diagnostic board
development, we now have the ability (by using
temporary I/O port addresses) to test a video board
on a standard MTX. So, in a change to the
planned development schedule, the video board has
been "promoted" to Phase III and is being developed
ahead of the CPU board.
02/06/2014 - Bus Diagnostic Board
Now that a couple of missing components have arrived, I have
put the finishing touches to the Bus
Diagnostic Card, i.e., the
Single Instruction Step circuit is complete, tested and appears
to "do what it says on the tin!
28/05/2014 - Bus Diagnostic Board - For MTX Computers
Well, OK, it's just an adapter to allow the MTXPlus
Diagnostic Board to be used with MTX computers. Martin built one
to help him diagnose a problem with an ailing MTX and I thought
that it was a good idea to build one too, The board only patches
the signals from the MTX cartridge port to the MTXPlus backplane
layout. Using the board on a good MTX will help me get an idea
of what the bus signals should look like for an operating Z80
before I get to testing the MTXPlus CPU board.
24/05/2014 - Bus Diagnostic Board
The Bus
Diagnostic Card is is now essentially complete and tested. I
(along with Martin) should now be able to get back to completing
the CPU board design and starting construction.
As an aside, although it never occurred to me when I envisaged
creating the diagnostic board, with a suitable adapter board, it
is possible to use the diagnostic board for fault finding on a
standard MTX computer. Martin is
doing just that at the
moment , using his diag board to fault find his faulty MTX.
01/05/2014 - Status
Construction of the Bus
Diagnostic Card is in progress . . . . .
15/04/2014 - CPLD "Development Board"
Testing of the CPLD "Development
Board" has now been completed, I can program the CPLD from
Quartus II and have successfully tested an early version of the
MTXPlus memory decode logic. The next mini-project will be the
construction of the MTXPlus "Bus
Diagnostic Card".
10/04/2014 - CPLD "Development Board"
The CPLD "Development
Board" is mechanically complete and has been electrically
tested, the next step is to try downloading my test program from
Quartus II via the JTAG interface. I have also completed my
power board, this board
will breakout the required voltages and control lines from the
ATX PSU as well as mounting fuses and load resistors on the +5V
and +12V lines.
03/04/2014 - CPLD "Development Board"
In preparation for programming the MTXPlus CPLD, I want
to be able to program and test (rather than just simulate) some
basic logic designs to get some familiarity with the Altera
development suite, Quartus II, and the EPM7128S
CPLD. To that end, I am building a small
"development"
board that will serve as a test bed for my CPLD logic.
26/03/2014 - More Freebies From Lez Anderson
Even though the idea for a formal design course has been
dropped, Lez is still very keen on encouraging people to get
into electronics and hardware design in particular. To that end,
he has made additional "kits" of parts available to a number of
members of the Memotech Forum
who expressed an interest in getting one. These kits contain a
range of very useful and interesting ICs - they are not old
parts that Lez happened to have lying around, they are "new old
stock" items that Lez bought from China to
give away to the group. A real big "thank you" to Lez
for this generous gesture. You can see the latest "bumper
bundle" that I received from Lez on the
Parts page, I shall be sending
on kits to the other interested folks shortly.
22/03/2014 - Backplane Bus Monitoring Board
The design "roadmap" for MTXPlus is based on phased
construction, with the CPU board being built first. Testing the
CPU board without peripherals such as a video board or keyboard
will be rather difficult, in order to allow a basic level of
monitoring and diagnostics to be done without a user interface,
the design now includes a backplane bus monitoring board. The
provisional design for the bus monitoring board is available on
its own page.
13/03/2014 - Update : and then there were two
:-)
Although there has not been a lot of obvious progress, things
are moving along and picking up pace. I have been spending quite
a bit of time getting to know more about the CPLD that I will be
using for the glue logic etc.
A more significant piece of news though, is that the project
is now a collaborative effort - Martin Allcorn has now gotten interested
and will provide valuable technical knowledge. I'm sure that
another active developer will provide additional drive to keep
the project moving! Based on our discussions, there have already
been some changes to the proposed
architecture which should help the design.
30/11/2013 - I spoke too soon - I now intend to use a
CPLD on the CPU board
to replace some of the discrete logic chips
15/11/2013 - CPU board
updated & more or less finalised - hopefully!
03/11/2013 - I now have a draft design
for the CPU board, it's not
finished, but it should be close to the final design
20/10/2013 - Update
Doesn't time fly! - Here were are, a year has gone by and
there is little, if any, progress to show. However, I have at
least made some fundamental design decisions. . . . . . .
My original idea was to create a single board computer like
the MTX512 - possibly even installing it in an original MTX
computer case. I have now decided that this is probably too
limiting, instead, the design will be modular, the major
functions, such as CPU & memory, I/O ports, video system, etc.,
will be built on their own circuit boards - linked together by a system
backplane,
similar to The N8VEM Home Brew Computer Project.
The
N8VEM is a small computer project, also based on the Z80,
using
Eurocard (160 x 100 mm) circuit boards, the design has
already been done - building a N8VEM computer is really an assembly
project, rather than design & build.
Taking on board the idea, I will be building my computer
using Eurocard sized boards and
DIN 41612
connectors, but the design will be my own, or at least, it will be
a combination of various other Z80 based designs that I like the look of and
might want to "steal" :-)
The N8VEM design is based on a small, 8-slot, Eurocard
backplane and I did think of starting with a bare N8VEM
backplane PCB and using that as the basis of my design. Bare
backplane boards are
available for $20, to that I would have needed to add, as a
minimum, the DIN 41612 connectors. I also know that if I had
gone this way, I would have been very tempted just to build a
"standard" N8VEM computer. So instead, I have
purchased a used Eurocard backplane from ebay and will build my
design to suit.
The basis of design are now documented on the
Architecture page.
Lez produced some high level material which was intended to
provide a starting point for the original design, although my
design is far removed from the original intent, you may be
interested in a copy of the original material - you can
download it from here.
________________________________________
22/10/2012 - Update - I'm on my own
:-(
Unfortunately, Lez did not get enough interest in his idea,
so has decided not to proceed with the course that he'd planned
and is selling off the rest of his hardware on eBay. I am still
keen on going ahead though, albeit, without a guiding hand.
Things will progress, but somewhat slower than I'd hoped.
05/09/2012 - Preparation - software revisited
The only weakness that I see in FreePCB is that it does not
allow schematics to be produced, although not strictly
necessary, I wanted the ability to produce schematics for the
design. The free version of
Eagle looks like a good PCB design tool, but the free
version only allows board sizes up to 100mm x 80mm - far to
small for this project. An internet search for other, free, PCB
design tools led me to
KiCad.
KiCad is another open source (GPL) tool which describes itself
as "software for the creation of electronic schematic diagrams
and printed circuit board artwork." Incidentally, (KiCad is the
software used by
Andy Key to produce his Memotech related
hardware such as
REMEMOTECH and
REMEMOrizer.)
Wings3D is an add-on for KiCad for creating 3D models from
the KiCad design. When you install KiCad, you are pointed to the
Wings3D website.
Having started to use KiCad to draw schematics of some legacy
MTX PCBs, I have decided that KiCad will be used for this
project, both for prototyping and generating
Gerber
files if I eventually get around to getting PCBs
professionally made.
28/08/2012 - Preparation - software
At some point, we'll need to design the PCB on which to build
the "computer". The software that will be used in this project
is FreePCB. "FreePCB is a
free, open-source PCB editor for Microsoft Windows, released
under the
GNU General Public License."
I
downloaded a copy of FreePCB and installed it
using the instructions on the download page. (You
need to install a complete distribution, then apply
updates on top to get the latest release version,
which, at the time of writing, was 1.359.) The
update also installs a copy of the free PCB routing
program. fpcRoute.
(A web based Java Application.) |
|
26/08/2012 - Preparation - documentation
Starting to gather technical data for the chips that we'll be
using, there are links on the
parts kit page but the final home for all of the technical
data for the project will be here.
24/08/2012 - Preparation
Lez has generously donated some components and other
miscellaneous parts, these won't be needed for a while, but it
does make it feel like the ball is rolling. You can see the list
and photos of the parts that Lez sent me
here.
|