Tuesday, 11 April 2017

Minstrel ZX80 Clone and the ZXpand

This is the ZXpand. A great addon for a ZX81 which allows you to easily load files from an SD card.
It also has 32K of RAM, the option to add a joystick and (on some boards) an AY3 sound module (as used in the 128K Spectrums). A few people have asked if this will work with the Minstrel ZX80 clone. Well, it should do.
Originally the ZXpand required some modifications to work with the Sinclair ZX80. You needed to modify the ROM enable line to work like the ZX81 does, and wire it to the pin on the edge connector (which is not connected on a ZX80). I had already done that as part of the Minstrel design.
The second change was to use the ZX81 style 8K BASIC ROM. Again that was already available on the Minstrel. So, I plugged it in and tried it out.
Nothing. black screen. I went back to a real ZX81 and the ZXpand was still working fine. The Minstrel was also still working fine. I tested that again with some RAM expansions.
Those were working fine, although pointless as the board already has 16K RAM which the RAM pack disables and replaces with it's own RAM, but that is working, and you can remove the RAM chip from the Minstrel.
Looking through various pages on the internet from 2011 when the ZXpand was released showed some alternative firmware was written. There is also mention in the user manual about a ZX80 jumper. I don't know if my board is an earlier or later version, but there is no jumper as far as I can see.
Meanwhile, I was making some minor modifications to the Minstrel PCB, getting ready to send off the design for the V2.4 boards. I thought it would be useful to just double check the edge connector pinout.
Well, what can I say. Looks like I made a mistake with the edge connector. Starting from the left, it should be D7, RAMCS, D0, D1, D2, D6, D5 etc. Don't know why Sinclair didn't put these in a sensible order, maybe to make routing the original ZX80 PCB easier. Checking my edge connector, I had wired D7, RAMCS, D1, D0, D2, D6, D5. Ooops, D0 and D1 are reversed.
A quick mod to the board, triple check with as various schematics and a ZX81 board and it now seems to be in the right order. Will the ZXpand work now?
Success, The first thing I tried was CAT (which replaces COPY on the Z key). That just gave a white screen. Pressing a key brought up the first page, pressing break brought up the last. I think it may be using SLOW mode here and not returning. Like a ZX80, the Minstrel does not (currently) support NMI slow mode, so remains in FAST mode until you press break. A minor issue that may have been resolved with the ZX80 mode jumper or alternate firmware?
Let's trying loading something, ZX80 Invaders I think.
Great, that works. Now something a bit more taxing.
No problems there either, and it is very fast at loading. So far everything that can run on the 8K BASIC ROM on the ZX80 seems to be working. I don't think this is an option for the 4K ROM version, but there isn't much software available for that anyway.
So the answer is yes, the Minstrel ZX80 clone works with the ZXpand, but owners of V2.3 and earlier Minstrel boards will need to make a minor modification. I think due to the address decoding, the RAM in the ZXpand has to be mapped as a block from 16K-48K, which is the default.
The modification to swap D0 and D1 on the edge connector it is probably easiest done on the back of the board, cutting the tracks at convenient points and wiring the vias to pins on the RAM socket.
You may be asking 'Ah!, but what about the RAM pack, Dave. How did the RAM pack work, Dave?'. Well, the external RAM just reads back whatever gets written to it, do having D0 and D1 transposed made no difference. Would have been the same with the lower address lines, swap any of those around and it would still have worked.

Minstrels boards, kits and fully assembled units can be bought from my Tindie Store.