The Sinclair ZX Printer is another of Sinclair's clever minimalists designs.
A small, cheap printer to go with a small, cheap computer, the ZX81.
It connects to the expansion bus, but does not use the full bus, only one address line and five data lines.
It is mapped to any address where A2 is low, the code uses $FB, where all the other bits are high.
This follows the pattern used for the ZX80 IO, any address where A0 is low, with the code using $FE, again the address where the other bits are all high. The ZX81 added an NMI generator that was disabled by a write to any address where A1 was low, using $FD following the same pattern.
It is a very minimal design, just paper feed, and a moving single pixel head. This head burns tiny holes in special metalised printer paper (yes, really).
I have picked up quite a few of these other the years, usually as part of bundles with ZX81s.
Unfortunately, none of them work.
They seem to have two Achilles heel's, first the circuitry inside is based around a Feranti ULA, and like many of those in most of Sinclair's products, these tend to fail in time. Another victim of time is the drive belts, these test to degrade over time and fall apart.
(there is a third, which only applies if you actually get past the first two hurdles is getting hold of the special paper it uses)
At some point I need to go through all the ones I have and try to find one good ULA and one good belt (or get one of the 3D printed replacements) and get one running.
Until then, I am afraid all I can do is take photos of what it would look like if you connected a ZX Printer up to a Minstrel 3.
Ah, you say, but what if it is the Minstrel 3 at fault and the printers are fine.
Well, I have tested all of these several times over the years on ZX81s and Minstrels various and they have sadly never worked.
Alphacom 32
Another way to verify this is with an Alphacom 32.
This is a ZX Printer compatible printer, also sold as the TS2040 to go with the Timex/Sinclair range of computers like the TS1000 and TS1500.
This has several advantages over the ZX Printer.
Firstly, it has the words "Alphacom 32" written across the front in large, friendly, letters.
Secondly, they generally work, and I think you can actually still buy new-old-stock units, the last of the Timex stock (from the same place that had all the unassembled ZX81 kits).
Another advantage is that rather than the "burning holes into foil" approach, this is an early example of a thermal printer, a technology which is widely used these days.
Pretty much every till receipt and the labels on all the parcels you receive use a thermal printed label.
This means you can buy rolls of paper to drop straight into your Alphacom 32. (update - I just did)
The reason these are used for till receipts etc. is they are very simple and reliable, and require no ink cartridges or toners or anything other than till rolls.
Testing the Alphacom 32 on a Minstrel 3
The Alphacom 32 plugs into the back of your ZX81, or in this case, Minstrel 3.
It responds to the standard LPRINT, LLIST and COPY commands in ZX81 BASIC.
LPRINT is the equivalent of PRINT, it just sends the output to the printer.
LLIST is the equivalent of LIST, and as a bonus, it just keeps going, it doesn't stop after one screen full. Handy for those long listings.
COPY prints out a copy of whatever is on the screen to the printer.
That all seems to be working nicely.
Testing the Alphacom 32 on a Minstrel 4th
Wait? the Minstrel 4th doesn't have a ZX81 style edge connector.
Very true.
But it does have an RC2014 bus slot. And several people have been looking into running a ZX Printer on the RC2014 bus.
- https://rc2014.co.uk/modules/other-modules/zx-printer/
- https://www.robertprice.co.uk/robblog/using-a-zx-printer-on-an-rc2014/
George Beckett looked into this a while ago, and ordered some PCBs to Robert Price's design.
Thanks to George, who kindly sent me one of his spare PCBs so I could build it up and test it out.
There is a socket on the right for a 9V DC input, the pads are too small for the sockets I have, so for the moment I will leave that empty. It is only required for the ZX Printer, the Alphacom 32 has it's own supply (rather oddly 24V AC).
Rather than the "any address with A2 low" Sinclair approach, Robert has fully decoded the address, allowing it to be selected from a DIP switch.
I have set this to address $FB (1111 1011), the one used on the ZX81. It also servers as a visual representation of "an address where A2 is low", A2 being the third bit from the right (A0, A1, A2 etc.)
With that all connected up, I can run ZX81 BASIC on the Minstrel 4th, and talk over the RC2014 bus to the Alphacom 32, using the standard BASIC commands.
And there we go, a not-quite-a-ZX81 driving a not-quite-a-ZX-printer.
You might have guessed, I am here because I also wanted to try out the new Lambda 8300 BASIC for Minstrel 4th.
I am pleased to say that also worked fine.
The printout is not very readable, blue on white thermal paper dating back maybe as far as the 1980s.
I did try printing on a 6"x4" postage label from my label printer.
That's more readable, not quite feeding right, so I am sure the proper printer roll will be even better.
That was ZX81 BASIC and Lambda 8300 BASIC. It should be possible to use it from the other ROMs, it would need some code writing to pixelise what you want to print and send it to the printer. (there is an example on Robert Price's page, linked above)
As a final test, I did try the ZX Printer on the Minstrel 4th, if only to get the photo of that combination.
Not quite ideal due to the bodge wire I added for the 9V supply (I knew it wasn't going to work, otherwise I would have made more effort).
As expected, that doesn't work, not because of anything in the BASIC port, the Minstrel 4th hardware, or the interface card, simply a faulty printer. In this case, it just line feeds whenever you try to print.
Update
The new printer rolls have arrived.
2026 printer rolls are smaller than part used 1980s rolls. Who would have guessed?
That's looking good with the printers built in test pattern.
I repeated some of the tests.
It's much clearer, with the new paper.
The quality is pretty good, certainly the best quality of any vintage printer I have.
It is also by design pixel for pixel with the screen font, so none of the scaling issues you get with modern printers, no need for anti-aliasing or anything like that.
Handy for printing out listings for your programming masterpieces (of which that is not one)
Or screenshots of your favourite games.
I am impressed with the usability and quality of the output from the Alphacom 32, I suspect I will be using this more, especially as the only consumable (the printer roll) is still widely available.
I plan to follow this with a more in-depth look at the hardware of the ZX Printer, and repairs or rebuilds to get one working, but that will have to follow another day.
Adverts
There are all sort of kits, test gear and upgrades and recreations of the ZX80, ZX81, Jupiter ACE and Commodore PET in my Tindie store.
Including the Minstrel 2, Minstrel 3 and the newly updated Minstrel 4th
Patreon
If you enjoy posts like these, you can support me via Patreon, and get access to advance previews of blog posts plus exclusive posts.
You also get progress updates on new projects and other behind the scenes updates, as well as access to my Patreon only Discord server for even more regular updates, and to discuss your own projects.