Memofest 2017

Memofest 2017 was held on 14th October at Martin Allcorns place in Hastings.

Attendees were Bill, Mike, Mark, Paul, Jim, Claus, Jon, Martin and myself. Dave attended briefly via Skype, from a Singapore airport lounge :-

Martin has a whole room as a hardware and software lab.


Martin has an Altera DE1, configured as a REMEMOTECH :-

I mentioned that there had been a bugfix in REMEMOTECH relating to crossing clock domains, which affects the sound chip.

MTX Mini

Here we see a MTX "mini", which appear to be a subset of an MTX, capable of running CP/M, using Bill's propeller based 80 column card :-

It also has a snazzy case with a DIY keyboard :-

Video card

There was also a video card of some description, with a V9938 on it :-

CFX version 2 and Sidisc

There was also a CFX version 2. Also in the MTX was the secret teaser board, which was a 2MB Sidisc card :-

I had originally (and incorrectly) suspected the teaser board was a MSX Emulator, with lots of games in EPROM.


Martins MTXplus+ was here too :-

As Martin and Dave both have MTXplus+'s made with properly manufactured boards, this freed up the wire-wrapped prototype, which Martin sent to me a couple of months prior to Memofest.


I demonstrated HEXTRAIN on the MTXplus+. The package has been updated to include the MTXplus+ version, and also a description has been added explaining what it took to get it work.

Obviously I used the MTXplus+ that Martin sent to test this on. In addition, many emails were exchanged with him, and between us we worked out what was going on. So many thanks are due - Thanks Martin.

We were able to show this to Dave over Skype, and a few other things, in the brief time available.

I mentioned that I had added the MEMU feature for detecting VDP I/O accesses that are too close together, that Claus had asked for. I had used this to discover that MTX Basic and almost all programs do not drive the VDP very aggressively, which is why the timing incompatibilies in the V9938 and V9958 chips had not been exposed. HEXTRAIN, Speculator and my Z ZX Spectrum emulator are more aggressive though.

If I had been there longer, I would have also mentioned that this MEMU feature identified a bug in SMG, where it corrupts video output. Luckily however, this corruption is to a part of VRAM that is not on display.

Z80 coding contest

The contest is described on MEMORUM.

Tony announced that the Z80 coding contest results were :-

Best PRNG16: 37 bytes, 169 T-states
Best PRNG17: 51 bytes, 211 T-states

The above numbers are from Tonys version, so nobody "won" the contest.

There was general agreement about the types of optimisations that could be used to reduce the size of the solution, including :-

Our solutions used various combinations of the above, but how does this compare with what Tony did?

Tony had advised me that if you set p=0xa53f,q=0xc7ac, the next two PRNs will include the ASCII characters "AKey". So I advised him that p=0x5bef,q=0xa0b3 and p=0x1edb,q=0x32f3 both produce "Tony", so he must be twice as random as me :-)

Remote Command mode

I demonstrated an SDX with a the latest Boot ROM with the "Remote Command mode" feature, and the ZMON Remote Command mode tool running on Linux talking to it over RS232. I downloaded Mission Alphatron in this way :-

The point of this is that it is getting harder to attach floppy disc drives to PCs, and use tools like MFLOPPY to read and write them.

New game

Paul revealed his new game :-

I tried it and wasn't very good at it. Despite this, I held the high-score!

Gamebase and Launch

Jim wants a GUI to launch MEMU.

So we spent a little time trying to set up Gamebase to run MEMU. If MEMU displays an error and terminates, it writes a message to stderr, but this does not result in a pop-up error window in Gamebase, making it a bit tricky to diagnose problems.

Bill has written Launch, downloadable from Daves site. This is written in Python using TkInter, and Bill was able to show it running from his laptop.

Shadow VDP

Bill squeezed a 9929A into a Propeller. He has a novel system involving 2 cogs rendering character data, 2 cogs rending sprites, 2 cogs outputing data, 1 interfacing with the Z80, leaving 1 cog spare. There are challenges in the design in synchronising the video clocks in each of the cogs.

By ignoring IN A,(2) and by not raising VDP interrupts, this can be added to an MTX that still has its original 9929A, acting as a shadow video chip, producing a shadow screen, on VGA.

The only downside is that the 9929A refreshes at 50MHz and the shadow VDP refreshes at 60Hz, and this can mean the shadow screen can be redrawing when the 9929A is in the vertical blank, and being updated by the Z80. Perhaps this explains the black sprites seen at the top of the screen when playing Toado?

Here is one MTX displaying 3 screens :-


Martin handed me a NFX card and suggested I write some software for it. It has an ethernet socket, a module which includes a network stack, and an MTX edge connector. The module contains some internal memory (presumably to hold control parameters and packets that are sent or received). This is accessible through 4 I/O ports. I said I'd give it a go...


There was of course cake. This time it was a fruit cake, with a Pothole Pete theme :-

After this I had to leave, but the event continued, and evidence follows...

If I had stayed, I would have mentioned :-

!MTX emulator on the Risc PC

Martin demoed his emulator, using a copy of "Revenge of the Chamberoids". Here is the same thing running in MEMU :-

Other CP/M systems

Jon had brought a TRS80 and an Amstrad system, and the group had a play with these.

Having had a conversation with Jon about these, its clear he knows all about CP/M, including resizing CP/M and writing CP/M disk drivers.

Hardware Hospital

Mark and Martin had a look at Paul's MTX, but were unable to reproduce the symptoms before Mark had to leave.

Martin even added the shadow VDP to increase the load on the PSU, and still no problems. This is where the "one MTX three screens" photo shown above comes from.

Addendum: The next day the hospital continued. Paul's system was fixed by adding insulating tape between the daughter board and a capacitor, to prevent shorting. Jim's red MTX was also fixed, per this write up. This was the fix for fault seen at Memofest 2015.


10 minutes after the event, the cat reclaimed the room :-

Again, a great day, with lots of great hardware and software, lots of great food, and lots of great people.

Where will Memofest 2018 be?

This page maintained by Andy Key