|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
|
ZX Spectrum Projects
The ZX Spectrum was my first computer, bought in 1983 with all my paper round savings. I loved it, spending hours on it. I got bored of the games pretty quickly, taught myself Z80 assembly language and wrote all sorts of programs, all now sadly lost to time. And then I moved on, as is the whim of a fickle youngster. With my original Spectrum sold many years ago to fund my Atari ST, when I resurrected my interest a couple of years back emulation was the only option. Until, that is, in the summer of 2022 when I bought a couple of ZX Spectrums on eBay, sold as seen, for spares or repair. They were broken, so, knowing an awful lot more about such things now than I did the last time I had a Spectrum in my hands, I fixed them, then largely picked up where I'd left off in the late 80s. I learned more about the machine, the Z80 and the digital electronics which made it all work. Amazing that 40 years on I'm still learning all sorts of things from the little machine. This page of my website catalogues my ZX Spectrum projects, from the simple to the absurdly complicated. All my work is open source or open hardware design, links to my Github page are provided. ZX Spectrum Expansion System, Recreated
My recreation of the ZX Spectrum Expansion System from 1984. The original product gave you a ZX Microdrive high speed tape storage device, plus an Interface One to connect it to the Spectrum. My 2023 solution gives you 8 (virtual, SD-card backed) Microdrives, and, unlike every other virtual Microdrive at the moment, doesn't require an Interface One. Details are here, the project design and Raspberry Pi Pico sources are here. ZX Spectrum Hardware Diagnostics Board
This is a hardware diagnostics board for the 16K/48K ZX Spectrum. The device samples the signals and power lines on the Spectrum's edge connector and presents a range of data and statistics which describe the state of the Spectrum. It useful to get a quick impression of the state of a Spectrum's Z80, ULA and other hardware. Pico ROM Interface
This is an implementation of a fairly typical ROM interface board, only one which uses a Raspberry Pi Pico microcontroller board as its main component and hence is far more programmable and flexible than the typical implementation which uses an EPROM or flash chip. It can carry several ROMs and will page them in turn when the magic button on top is pressed. The project is written up on my Raspberry Pi Pico based ZX Spectrum ROM interface page, and the sources are on my Github project. There's some more discussion on the Spectrum Computing page about it. Tom Daly used this project as the basis for his ZXPicoIF2ROM work. Lower RAM Module
When I was looking for a new lower RAM module - see next item - I realised that there aren't any open designs. So I created one. It's a rather standard approach, using a modern SRAM IC in place of the original 8 DRAM ICs, but as far as I know it's still the only free, open design for this module ever created. Replacing the ZX Spectrum Lower RAM
This isn't so much a project as a photo essay I did for Spectrum Computing. It's a write up, with lots of photos, of how to replace the lower RAM in a 48K Spectrum. My page describing the process is here and the original link is here. Space Raiders Disassembly
Space Raiders is a simple Spectrum game from 1982. I chose it as a basis to learn how to use the Skoolkit Z80 disassembler. Here's my Space Raiders disassembly, the full Skoolkit source is in my Space Raiders Github project Game: The Virus
The Virus, my second game for the ZX Spectrum. I started off by trying to recreate the boids algorithm for the Spectrum, but that didn't really go too well. Seconds-per-frame, as opposed to frames-per-second sort of thing. After a massive optimisation effort it still wasn't great, but was good enough to build another game from. Another original concept, no one's done a game like this before or since, it was well received. Source is in The Virus Github project. Game: Wonky One Key
Wonky One Key is the first game I wrote (that I finished) for the ZX Spectrum. I was learning how to use the SP1 sprites library in the z88dk 'C' development environment for the Spectrum. I tried to do something original, which was to create a game which only had a single control key. The concept worked, it's not a bad game and it was well received at Spectrum Computing. The source code is in my ZX Wonky One Key Github project. BE Debugging
BE is a tool used by the Storage Group at IBM where I've worked on and off for many years. Its function is to present in a hierarchical manner a block of data built up by a "flight recorder" module in a program. The program runs and builds this data block in memory. When the program hits an error the error handler captures the data block and presents it so it can be saved to disk. From there a tool like BE can be used to inspect it, yielding information about the state of the program when it hit the error. It's the IBM Storage Group's standard first failure data collection (FFDC) tool. I ported the BE subsystem to the Spectrum so it can be used to debug Z80 and z88dk 'C' programs. I wrote it up here, and the software is on my Github page. Short video here: z88dk FUSE Source Level Debugging
This is a modification to the Z80 debugger in the FUSE Spectrum emulator. It adds to the debugger the ability to open and display a 'C' source file from a z88dk-based software project and have the debugger follow the source code as the Z80 single steps the generated Z80 machine code. There's a lot of parsing of z88dk map, symbol and list files here, plus some rather clever GTK code to track the source code lines as the Z80 follows them. I wrote up the details in a post for Spectrum Computing. My FUSE build is on my SourceForge page. z88dk Getting Started Guide
I'm the author and maintainer of The ZX Spectrum Programmer's Z88DK Getting Started Guide, a series of articles which introduces the z88dk 'C' compiler based toolkit from the perspective of the ZX Spectrum programmer. The series covers many issues pertaining to the ZX Spectrum, including the screen, sprites, multi-colour tricks, etc. The guide has been adopted as part of the official z88dk documentation and is hosted on the project's Github page.
ZX Spectrum 12V and -5V Converter Circuit Investigation
With a spot of help from someone who's a lot cleverer than I am, I did a write up on how the Spectrum's DC-DC converter circuit works. |
||||||||||||||||||||||
Site and content Copyright 2023 Derek Fountain - All Rights Reserved |