2023 was the 10th anniversary of
the first Memofest,which was held in 2013 hosted by Jim Wills, marking that
anniversary, a small get together was arranged for
2023. After various ideas were kicked around, Bill Brendling kindly agreed to host at his place in the
London area.
(Most photos and [edited] text commentary courtesy of Bill Brendling)
|
Very few people were able to
travel, but a number of "attendees" were
able to remotely access the event using Skype.
As usual, Mark made the effort to travel and was joined
by Dave Snowdon, a recent addition to the community.
Martin, Jim, Claus and myself dialed in to the
Skype conference at various points during the day, |
|
Some low quality Skype screen captures of the remote
attendees . . .
Martin, perhaps having learned a
lesson from last year's "Memofix",
set out his stall early with his choice of T-shirt. |
|
Jim, with an FDX in the background (although the MTX is
actually running MFX). |
|
Zooming in over his left shoulder, you can see that he
is shamelessly plugging
his latest offering
|
|
Claus called in from afar too |
|
As is customary, Bill provided an MTX themed cake for
his visitors.
Unfortunately, he did not take a
photo of the cake before the gannets descended, other
than this image (of most if it) captured through Skype.
The cake was a recreation of the Zilog Z80, with the
correct number of pins! |
|
By the time that Bill took a photo, the Z80 had been
reduced to a Z30!
The cake looked delicious! |
|
|
Exhibits on display |
Bill's selection of
Memotech kit on display, including :
his original MTX with SDX disc drive and 80
column board his second MTX
various test and development tools
a number of
Raspberry Pi
Pico devices
more details below . . .
|
|
Close up of Bill's
"production" MTX
This was purchased new.
Ever since buying the SDX this machine has been
used almost exclusively with CP/M. That may
partly because none of the documentation
supplied by Memotech indicated that it could be
used with ROM BASIC with USER commands to access
the disk.
Whenever [Bill] wanted to use
BASIC [he] used FDXB.
|
|
Close up of Bill's
second MTX
It was acquired probably some
time in the 90s, and has sat in a cupboard ever
since. It was fished out to demonstrate the MFX.
It suffers from rather stiff keys owing to the
lack of use.
[This is a common problem
with MTX computers that have not been used
regularly, and in most cases, improves when the
keys are vigorously exercised] |
|
This is one of the test
boards that Bill built while developing new
firmware for the FPGA on the
MFX
(more on that later . . .)
It is a
partial reproduction of the MFX, with interfaces
for the video SRAM, VGA output and SD card. A
Raspberry Pi Pico stands in for the Z80. Because
the Pico is a 3.3v device (compared to the 5v
Z80) no level shifters are required.
Unfortunately, the programming connectors on the
FPGA board are not on the same 0.1 inch grid as
the main FPGA connections, so it is not possible
to include sockets for these on the matrix
board.
Instead the FPGA board is hung
over the edge of the test board and a ribbon
cable is used to connect to the programming
socket. The Pico can then either program the
FPGA or test it without having to unplug
anything.
|
|
For testing an
assembled MFX board Bill built a second test
unit.
This board can be plugged into the
MFX edge connector to test everything on the
board. This board is not able to do any
reprogramming, but it does have a wandering
probe to test the logic value on any of the pins
on the MFX.
|
|
When developing the
VHDL code for the FPGA [Bill] has frequently
found it useful to simulate the operation of the
code. For this [Bill] uses ghdl.
The resulting logic signals can then be
displayed in GTKWave |
|
Bill also demonstrated his latest version of MEMU for
the Pico which adds:
The emulation
configuration dialog. Silicon disks,
including huge disk support.
These features were
already in the PC versions of MEMU. Adding them to the
Pico version means that this can now run HexTrain.
The Pico,
and the VGA
Demo board it is sitting on are both commercially
available boards, with a total cost of under £25.
For all the details of HexTrain and the very clever
coding which makes it possible to run on an MTX see the HexTrain
page Andy Key's website.
|
|
Close up of the Pico
and the VGA
Demo board |
|
Dave [Snowdon] bought along his MTX512.
It was
the first one [Bill had] noticed as having the RS232
ports fitted.
Opening the case revealed an FDX
interface board fitted, although Dave has never had an
FDX. We powered the MTX up, and apart from a fairly
severe case of keyboard bounce it seemed to be in fully
working order.
(Sorry no photo of Dave's machine,
but photos of the RS232 board can be found
on this page.)
Although Dave did not bring it
along, he says he has a 5 1/4 inch version of the SDX,
but perhaps no disk drives. Modern storage options that
he could try are an MFX,
although that would require removing the FDX / RS232
interface. Alternately a CFX or CFX-II could
be fitted externally. We did briefly demo my CFX-II
fitted to Dave's MTX.
[Ed. As Dave does not have
an FDX, as noted in the
MFX User's
Guide, removing the RS232 board is likely to have a
minor impact, "it is suggested that the loss of RS232
functionality is mitigated by MFX’s TCP/IP networking
capabilities."] |
Update : after the event, Dave posted a
picture on the forum of the internals of his MTX512 with
RS232 board fitted.
NB: in order
to install MFX, the RS232 com port 25 way D connectors
would also need to be removed. |
|
Martin showed this off . . . .
At first glance,
it is a
Memotech FDX system box
In reality, it is an
Altera DE1 development board running a copy of Andy
Key's
REMEMOTECH.
Martin has designed and 3D
printed a half size model of the FDX case and mounted
the DE1 inside it. Completing the picture is a mini VGA
screen and PC keyboard.
Looks good doesn't
it? |
|
Martin did a demo of Bill's MTX webserver in operation,
Martin's MFX was serving files over the internet for
display on a web browser at Bills house.
Bill was
keen to point out that "The credit for the MTX webserver
should be at least 99% Andy Key, [he] only added a few
tweaks. [Bill] might claim a little more credit for the
FTP server, but even that would not have been possible
without Andy's work." |
(no photo) |
Jim demonstrated running Bill's FTP server on MFX,
transferring files over the network from PC to the MTX
with MFX installed. |
|
To illustrate how MFX's network capability makes file
transfer between PC and MFX quick and easy, Jim
downloaded Claus's Fruit Panic
game conversion, (released at last year's Memofest),
from my website, unzipped it, transferred it to MFX and
ran the game - all in a couple of minutes or so. |
|
|
|
MFX Firmware Developments |
As noted above, Bill has made some significant
enhancements to the FPGA firmware in his MFX and
demonstrated a number of these during the event.
Some of these, such as foreign character display and SD
card enhancements, would likely be very useful to other
MFX owners. Other features, such as the expanded colour
pallets, will only be appreciated if software is written
to take advantage of them - lets hear it from you
budding Z80 programmers! |
[Bill] has added 64-colour support to the 80-column
display, rather than just 8 colours |
|
The MFX hardware is actually capable of producing 4096
(slightly) different colours (12-bits, although not on
the same screen).
[Bill] has added a colour
palette (or lookup table) to the video output stage
which can map 256 input colours to any of the 4K output
colours |
|
The 80-column display has a font of 256 text characters
and 256 graphics characters. [Bill has] made the text
font completely redefinable:
This shows a font
for code page 850, which provides the accented
characters needed for European languages. CP850 is not
actually ideal as that a number of the accented
characters are on codes 0x80-0x87 which the MTX uses for
the function keys. CP1252 would be better as that has
the accented characters on higher codes, but [Bill has]
yet to find a font for this. |
|
[Bill has] also added a 320x240 pixel graphics mode
[He is] still considering further graphics modes:
320 x 240 x 2-bits per pixel 320 x 240 x 3-bits per
pixel 160 x 120 x 8-bits per pixel [he has] yet to write
the ROM code which will enable any of these enhancements
to be used from BASIC. None of these enhancements
require any hardware modifications, only an update to
the FPGA hardware, so they may become available as an
MTX upgrade at some point. |
|
The VDP emulation has also been enhanced. Martin had
already added multi-colour sprites which the TMS9929A
cannot do. [Bill has] further added multi-colour
40-column text. |
|
The emulated VDP output also goes through the colour
palette so that any of the 16 VDP colours can be mapped
to any of the 4K colours the MFX can produce |
|
All of the recent Memotech storage devices (CFX, CFX-II
and MFX) store the CP/M disk images as successive 8MB
slices at the beginning of the storage media, perhaps
followed by the HexTrain data file. This leaves the rest
of the, usually much larger, storage device unusable.
Also, each of the devices use different hardware
to access the storage space. As a result, any program
such as HexTrain which wishes to make use of the extra
storage capacity needs to have a different version for
each device.
To work around this [Bill has] been
developing an "Extended Storage" interface, which can be
implemented on each device to provide a standard way of
accessing the entire capacity of the storage device.
This consists of a few extra code entry points near the
top of memory (similar to the existing disk access
routines at 0xFFF0 - 0xFFFE). Programs can then simply
call these routines and will obtain access to the
storage by whatever means is appropriate to the device.
That means that there only needs to be one version of
the program.
One feature of this interface is
that it will be possible to partition the media in the
DOS/Windows sense. One partition can contain the CP/M
disk images (and HexTrain data). Another partition can
be FAT formatted, readable and writeable from Windows or
Linux without requiring any special software. Then a
CP/M program using the Extended Storage interface can
move files between the FAT partition and CP/M drive
images |
So far this is for CP/M only, not from ROM BASIC.
If completed, implementing this will just require
ROM updates for the devices. Existing (un-partitioned)
media will continue to work.
[Ed. Martin and
Dave found this really interesting and will engage
further with Bill to investigate incorporating this
feature in our devices, including MFX.] |
|
|
Software |
Bill also demonstrated some of his legacy software
originally written for his SDX, including [his] PCB
design program. Essentially a monochrome paint program
for drawing PCB pads. Function keys are used to place IC
pads of different sizes and styles. The designs were
then printed on an HP ink jet printer and then used to
photo-etch the PCB boards.
(The program and
manual are available
here) |
|
Bill also demoed his IBMDISC
utility. Although intended for CP/M discs, the 3.5 inch
SDX can be persuaded to read and write DOS (FAT)
formatted 720K floppy discs. Files can then be copied
between the DOS floppy and the CP/M RAM disk. That is my
usual method of transferring files between the MTX and
my PC. The fact that it is an old program can be seen
from the year 2000 bug in the file dates.
(The
program and manual are available
here) |
|
Jim demonstrated the Sound Effects and Music code for
the Memotech that he and [Bill] have been working on
together. Jim has code (EnvoSound, originally from
RollaBearing) for producing sophisticated sound effects
from the Memotech SN76489 sound chip. This code applies
complex sound and frequency envelopes to the generated
sound, controlled by a large number of parameters. To
assist in designing sound effects [Bill] developed a
program (NoteEdit) to allow
interactive selection of all the parameters and test
playing the resulting sounds: |
|
As well as sound effects, games need music. EnvoSound
can produce the individual notes, but they need to
sequenced to play a tune. Jim decided that the easiest
way to compose music is as MIDI files. These can then be
processed by Python code on a PC to produce compact
"Memotech Sound" files (*.msd) which can be embedded in
a game.
To test the resulting music, a
stand-alone player (msdplay)
has been developed which can play the *.msd files.
The executables for NoteEdit,
msdplay and one example file (blackbd.msd)
can be downloaded from
this link |
|
|
AOB |
Other topics that were covered during the day include:
EPROM & PIC programmers using printer port.
History of CFX,
Propeller
video &
CFX-II leading to
MFX.
Andy's read-only
PROM disk emulator.
MTX_Lib and
the Code::Blocks GUI for developing Memotech
programs in C. [Bill's]
implementation of a
ZMachine
interpreter for playing text adventure games.
Any use of PIO socket?
[I mentioned the
PAL
reader that Tony Brewer designed for me]
[Some interesting
projects were covered in a few electronics magazines
back in the day] CTC an asset for
MTX. Jim gave a review of his
porting of original MTX games to modern hardware (PCs
and Phones).
|
|
Memotech Hospital |
No patients were admitted to the Memotech Hospital this
year :-) |