Table of Contents
JSSpeccy
I am pretty excited about the open-source JSSpeccy project and ideas about what I might learn from this. Firstly, the JavaScript code is really exemplary.
I’m already keen to learn & do more with WebAssembly. It’s used by the emulation core, which is based on the Fuse emulator AFAIK. The blend of WebAssembly and JavaScript here is worth further investigation.
It is a straightforward computer by today’s standards. The graphics and sound are really very limited but still charming. What most interests me is the simple machine based on a Z80 CPU. It would be interesting to program it using assembly language, inspect its machine code, and do some projects here in C.
The Art of Computer Programming
I have The Art of Computer Programming by Donald Knuth. These books use a machine language based on a mythical computer called MIX. I would like to get further into these books, and it would be a lot more fun for me to use the machine language of a more straightforward computer that I was familiar with years ago.
Classic ZX Spectrum Hardware
Besides briefly having had a ZX81, my first computer was a Sinclair ZX Spectrum+. My grandfather had the one with the rubber keys. Friends had those too.
A refurbished unit from eBay
I’ve ordered a refurbished ZX Spectrum from eBay:
![](https://blog.stever.dev/wp-content/uploads/2022/01/s-l1600-4-1024x876.jpg)
Sinclair ZX Spectrum 48K Computer
Issue 3BRefurbished, fully tested and working ready to last another 38+ years
Video output changed to composite instead of RF. No more tuning in!
Electrolytic capacitors replaced with high quality Vishay capacitors to prevent failure or damage.
Blue capacitors used to retain original motherboard look.
ULA soldered to motherboard and heatsink applied to protect and prolong the life of the Spectrum
New reliable keyboard membrane
New great looking faceplate
As might be expected for a computer nearly 40 years old, the case has the odd scuff and scrape but nothing ious, see pictures.Fully soak tested
Game loaded from cassette and played, see pictures
Tested working with Retroleum SMARTcard and DivMMC Future interfaces (not included)
Full set of case screws and rubber feetIncluded to get you started:
eBay item listing
New 9v power supply
New mono audio cable for loading from cassette
New composite video cable
![](https://blog.stever.dev/wp-content/uploads/2022/01/s-l1600-5-1024x639.jpg)
It looks pretty neat inside.
Some Modern Enhancements
Tapes take an age to load, and this unit has been tested with the DivMMC Future interface. I’ve ordered one of those to load from MMC memory cards. ESXDOS looks interesting. Add a “composite video to HDMI converter”, and I should have this on my desk beside my main computer.
Ideas
Writing programs in C and assembly language
Looks pretty easy to get started writing programs for the ZX Spectrum using Z88DK. An example project using this development kit is zx-spectrum-snake.
Testing programs on real hardware
Mostly I’m excited to code around the ZX Spectrum emulator in the browser. However, it would really be nice to run those projects on real hardware.
Development toolchain via WebAssembly?
Can programs for the Sinclair ZX Spectrum be written, compiled, and debugged entirely from within a web page?
I intend to find out.
Then, it would be interesting to create some kind of social coding environment.
Notes on Software Licenses
JSSpeccy
JSSpeccy is distributed under the GPLv3 license.
IANAL: I would be hesitant to embed JSSpeccy in any website that isn’t distributed under a license compatible with the GPLv3. (Maybe it’s OK if you don’t distribute the source code for the website in question?)
ZX Spectrum ROM
World of Spectrum Classic reports that:
Amstrad, the current owners of the Sinclair ZX Spectrum, allow free distribution of the ZX Spectrum ROMs (see the message from Amstrad as posted in comp.sys.sinclair for the details), and endorsed WoS at its 7.5 year anniversary.
Therefore, emulation of the machine is not illegal (as opposed to nearly all other computers that are emulated these days).
World Of Spectrum Classic
I remembered something about this, and it’s pretty cool. Nice one, Amstrad!
Amstrad have kindly given their permission for the redistribution of their copyrighted material but retain that copyright.
comp.sys.sinclair
It’s worth reading the whole message here.
The featured image is by Bill Bertram, CC-BY-SA 2.5