Spectranet in a web browser

Thanks to amazing work by SpeccyTools, you can now use an emulated ZX Spectrum, complete with Spectranet extensions, booting straight into my TNFS site.

The Spectrum 48k keyboard had a rather... unique layout. This means that some symbols can only be used with odd key-press combos. To emulate SYMBOL SHIFT, use the Ctrl key. For example, to get a " character, use Ctrl-P. To get $, you'd use Ctrl-4 and so on.

What is this ?
It's an emulated ZX Spectrum running in a web browser. The "Speccy" was an 8-bit computer from the 80s that started my obsession with computers when I was a child. The Speccy scene continues to thrive and (as with most retro systems) someone has managed to get them connected to the internet.


I discovered this scene as I re-introduced myself to my childhood computer and wrote about in my DevOps for the Sinclair Spectrum series of articles (I'm the weirdo who mashed up Kubernetes and Sinclair BASIC). I built a sort of old-school BBS system you can browse either on the original computer from the 80s, or through an emulator.


Thanks to a recent set of patches to JSSpeccy (a WASM-based Spectrum emulator), it's now possible to emulate a Spectranet card, and browse the world of TNFS sites from a browser! This is my instance of JSSpeccy and backend components configured to boot straight into my TNFS site. All of which means you can now check out my project without having to configure an emulator or get hold of the real hardware.


Can I access other TNFS sites through this ?
Not at the moment. If you'd like to try others you can browse the listing run by Speccytools.org (the creators of this amazing fork of JSSpeccy).


Some files don't seem to work
Some games, demos and other files may not work correctly on this emulator. It is configured to emulate a 48K Spectrum model with Spectranet card fitted, so any 128K-only titles will almost certainly fail to load, or produce garbled sound etc. You could always try with the FUSE Emulator, or even better a real Speccy with Spectranet card! If you find a file that doesn't load on the real hardware, please let me know and I'll try and find a working version.


I think I found a bug in your site
I don't doubt it! It's a tangled mass of Sinclair BASIC, machine code routines and server-side API running on Linux/Kubernetes hosts. Frankly, I'm amazed it works this well! Still, if you find something not working as expected, or you have any comments or suggestions about this site please do contact me and let me know.


I get socket error messages
Unfortunately, the TNFS extensions in Sinclair BASIC don't seem to cope well with a large amount of packet loss or otherwise "crappy" connections. I've only seen this manifest itself when tethering to a poor 4G connection my laptop, but if you experience this on a perfectly normal network, please do let me know and I'll investigate further.


In the meantime, you can try re-loading the page or if you're dropped to a BASIC prompt, press the R key ("RUN") and press Enter to re-start the code.