9 minutes
Book Review: Next Tech by Simon N Goodwin
Along with several thousand of my close friends, I have backed the third Kickstarter campaign for the ZX Spectrum Next. This is a beautifully designed, community-led recreation/extension of the venerable ZX Spectrum microcomputer. Using the wonders of FPGA technology, this runs a mildly enhanced 8-bit Z80 CPU (described as a “Z80n”), with 2MB of banked RAM and supported by 3 AY sound chips, hardware DACs, ESP-based WiFi, single channel DMA, analogue and HDMI video out, Amiga-like Copper coprocessor and a bolted-on Raspberry Pi. Remaining almost fully compatible with the tens of thousands of legacy Spectrum games, software packages and peripherals, it aims to counter many of the legendary deficiencies of the original hardware with multicolour high resolution graphics, hardware sprites and scrolling, greatly increased clock speeds and elimination of RAM contention.
Compared to the original machine, it is a complex (and ever-evolving) beast. Whilst the hardware is open, it runs a modernised version of Sinclair BASIC atop a closed-source operating system layer, which provides niceties like SD-card disk access. With so many moving parts, this device has been difficult to emulate. At the time of writing, there are 2 available emulators for PCs, and neither is complete or accurate.
I have been digesting some PDF copies of the manuals which were provided with the Issue 1 and 2 machines. They’re lengthy and well written documents but feel as if they’re still only scratching the surface of what the machine can do. I was looking for a document which would go deeper into the esoterics like machine-code based sprite and tilemap control, sound generation, RAM banking, ULA contention and access to the broader hardware. There is a lot of information out there, but much of it is outdated or is hard to access on Facebook posts and similar. So I was delighted and intrigued to stumble upon Mr Goodwin’s tome.
About the author
Simon Goodwin’s name may be familiar to many 8-bit enthusiasts, as he was a frequent columnist and contributor to the thriving magazine scene in the 1980s. His articles tended to focus on the technical aspects of the devices of the day, and it is clear that his main passion was the Speccy itself. Having gone on to have a successful career developing for later computers and consoles, he has now looped back to the device which lit the spark 4 decades ago.
The presentation
Let’s address the elephant in the room already: although we should not judge, the cover of this book is horrific. I have rarely held a book which has attracted more disparaging comments, from incredulity to outright hostility. I’m guessing the big yellow AI-generated saxophone-cum-towerblock is supposed to evoke the wonder of the artwork distributed with the ZX81 and Spectrum back in the day. But it is grim. A blank cover with text would have been infinitely more attractive. Anyway…
This is a c. 500 page PUR-bound paperback on good quality stock. The printing is monochrome and clear, albeit the italic font used for captions is a little light. The main text, code blocks and copious illustrations are legible. However, the margins are small and, being perfectly bound, text can get a little lost in the gutter. Your readers have ageing eyes, Simon; give us some clear space! I do wonder whether spiral binding would have been a better choice; to eliminate the guttering, to stop the book flopping closed when typing in listings, and to give that authentic 1980s feel? Nevertheless, beyond the cover illustration this feels like a quality product.
The style
I was expecting this to be a reference work, and in many ways it is. But the book is much more discursive, conversational and unfocused (in a good way!) than a traditional manual. Much of the content is presented as a tutorial, working through lengthy BASIC and machine code examples. There are frequent - and expansive - digressions going into topics such as the evolution of the SECAM television standard, the irresistible urge to poke the innards of the closed source operating system, and the joys of soldering an LED to the pins of a joystick port. In amongst all of this, the author manages to impart nugget after nugget of good practice regarding interrupt timings, DMA access, modern BASIC, memory strategies, efficient choice of Z80 opcodes, debugging, profiling and optimisation. It is treacherous to “skip ahead”, as gold will be missed.
I have learnt much more from this book than from the official manuals. However, I do wonder whether I could locate that information easily when I need it in the future? The key points are buried in the text - as I said, this is not a typical reference book.
Perhaps unsurprisingly, given the provenance, the text reminds me of the long-form articles which were prevalent in the computing magazines up until 1984-85. They tended to be exploratory, inquisitive and insightful. At that time, the mysteries of the extant machines had not been fully unlocked, and the potential was not yet fully known. I suppose we’re in a similar situation, right now, with the Spectrum Next? At times, the author’s frustration at dealing with the undocumented and closed-source aspects of the machine is palpable. It is fascinating to see the diagnostic steps he takes to bring light to these areas; from flashing the BORDER area to work out machine timings to hacking through the VHDL files.
Mr Goodwin expresses a clear preference (or ambition) that all diagnosis and development for this machine should be performed on this machine. There is no recourse to compiling applications on a desktop PC and transferring the results; everything he presents can be done on the device. I’m not entirely convinced by the workflow, but it does show how much he is invested in the success of the project. It is delightful, if a little bloody-minded. There is evidence of a virtuous feedback loop, where problems he has encountered have been addressed upstream to the benefit of all. That makes a strong argument for drinking one’s own champagne.
The emphasis is on using the built-in NextBASIC for as much as possible. It appears to be a fast-evolving language, with some examples at the start of the book becoming almost obsolete by the end as a result of improvements made from the aforementioned virtuous feedback loop. Backwards compatibility with Sinclair BASIC often seems to be a hindrance here: there’s a mess of line numbers and convoluted memory paging gymnastics which dull the cutting edges of the language. Neither is it clear what the backwards compatibility achieves? The Next can be switched to assume a legacy personality for those wedded to Sinclair BASIC. The author is patient in addressing these deficiencies, albeit clearly longs for the transformative approach taken by the QL and Sam Coupé machines rather than the iterative approach adopted here.
There is intelligent use of machine code where necessary. The examples are well constructed, commented and described. The expanded opcodes offered by the Z80n processor are used where they bring benefit. Some foreknowledge of Z80 would be beneficial to the reader, but is not required.
The content
The book kicks into gear in Chapter 2, with a discussion of the different ROMs and “personalities” available to the Next, which offer greater and lesser compatibility with legacy Spectrum software. Chapter 3 expands on this with an exploration of the new video modes and clock timings, with and explanation of output incompatibilities framed by a lengthy digression into the evolution of video output standards. The introductory chapters are closed with a section on hardware hacking for readers who are aware of the hot end of a soldering iron.
There follows a section on NextBASIC, spanning several chapters. There is an expansive tutorial on improvements the author made to a fully-fledged text editor application which is inspiring and disheartening in equal measure. Scaling a NextBASIC application beyond about 40KB is clearly an adventure best undertaken by the bold.
A more machine-code dense section comes next, although the focus is on extending the capabilities available to BASIC programs. There’s an introduction to NextOS’s “driver” infrastructure, and a generic driver is constructed which can be used to hook into the hardware interrupts. This opens opportunities for multitasking, and the author employs these to create improved sprite handling routines which are available to BASIC programs. A similar chapter comes later, offering improved access to the AY sound chips from BASIC with routines which do not block input.
Interleaved with that section is a large and comprehensive chapter on the banked memory model and the direct memory access hardware, culminating in the production of an audio streaming routine. I found this the most valuable section of the book, and the one I’ll likely revisit the most.
The software sections wind down with an exploration of the less documented “Layer 3” tile-based graphical capabilities of the Next. Without having a machine in front of me, I struggled to follow this section, to be honest. It is one to come back to when I get my grubby hands on some hardware.
In the final chapters, Mr Goodwin explores FPGA programming, demonstrating an elementary audio DAC constructed from VHDL. This leads to the coda, which introduces alternate cores which can be run on the FPGA. The main focus is on the BBC core, BBC BASIC and the way this core interacts with the Raspberry Pi coprocessor board. Clearly, there is much potential for the default Spectrum Next core to use this device more productively.
My impression
It has been 35 years since I owned a ZX Spectrum. Back then, in pre-internet days, everything I knew about the machine came from magazines and library books. The original Spectrum was a simple device, even for its time. Subsequently, with the benefit of the resources of the whole internet, efficient emulation and remarkable books like the ULA book and the ROM disassembly, I feel I know the computer completely. I can tell an issue 3 motherboard from an issue 2 at 50 yards. I know which capacitors are most likely to fail and the symptoms they’d cause. I can grasp the complexities of the raster timing and memory contention.
With the Spectrum Next, I feel as if I’m back in those early days. There is much to explore and poke and prod. The ROM is undocumented, the hardware has untapped potential and the wisdom of others is partially hidden behind the walls of Facebook and private discussion.
Simon N Goodwin’s book lights a torch here. It is inspiring, frustrating, educational and confusing whilst being immensely entertaining to an 8-bit geek like me. His writing is always approachable. I hope the book is as successful as he needs it to be to allow him to go on to write further volumes. I’ll be first in the queue to buy them.
Details
Next Tech: Get the Best from your ZX Spectrum Next by Simon N Goodwin. 2024 (1st) Edition, De Re Books, Warwick, UK. ISBN: 978-1-0685131-0-7. Purchased by me through Amazon UK for £25. Errata and code downloads at author’s website.
1843 Words
2025-07-29 09:00