r/zxspectrum 14d ago

I built a browser-based ZX-Spectrum BASIC playground. Would love feedback from former bedroom coders

I’ve been experimenting with bringing the ZX-Spectrum programming experience into a modern browser.

CodeSpeccy is a small playground for writing and running BASIC-style programs with that classic Spectrum feel.

Early draft ... feedback welcome!

48 Upvotes

21 comments sorted by

9

u/garyk1968 14d ago

Link for the idle :) : https://speccy.codeguppy.com/

I like it!

3

u/dual4mat 14d ago

Be right back - going up into the loft to find my copies of Input magazine from the eighties

2

u/codeobserver 14d ago

See link in the screenshot ...

2

u/Last_Eggplant5742 14d ago

cool!
I like the idea that you can use normal characters in the external program window and use this token keys inside the spectrum screen.

2

u/chicharro_frito 14d ago

I like this more than I'd expect! What are your plans for it?

2

u/One-Friendship2366 13d ago

it works perfectly with my game written in basic!
Nice job! 💫

2

u/MugUK 12d ago

If you want a load of test material, I've got almost 200 Speccy BASIC games (and some utils) where the BASUC code is stored as text files. So, in theory, copy and paste into your tool.

https://mug-uk.co.uk/zx-spectrum-basic-listings/

1

u/codeobserver 12d ago

You have a nice collection and site! Yes ... I tried some of your .TAP files. They load directly in the codespeccy playground.

Question: do you think people would find useful to have a Share button in codespeccy to share a BASIC playground? ... or perhaps the ability to load a .TAP file via querystring?

2

u/MugUK 11d ago

I was worried that your BASIC tool wouldn't recognise the way the TXT (not TAP) files stored the UDGs and Extended Mode graphics, plus embedded colours in a string. They work by storing them with a \ symbol then a letter (for UDGs) for example.

The site contents are for those who want to know how old Spectrum games and utils were coded, without having to run it via an emulator first.

1

u/MugUK 10d ago

The one thing I've found is that if I use the option in ZX Preview to break the BASIC listing into one command per line, which I've done in a lot of the rips, then it won't work in your tool.

Any chance of a "fix ugly listings" as, naturally, they don't work. E.g. Air Raid by CCS

1 GO SUB 9900:\

FLASH 0:\

BRIGHT 0:\

INVERSE 0:\

OVER 0:\

LET k=17:\

LET fl1=0:\

LET y=10:\

LET c=20:\

LET shot=40:\

LET point=0:\

LET savcas=0

2 LET jet=0:\

DIM w(15,1):\

LET w(11,1)=6000:\

LET w(12,1)=6009:\

LET w(13,1)=70:\

LET w(14,1)=60:\

LET w(15,1)=6009:\

LET w(1,1)=6000:\

LET w(2,1)=6009:\

LET w(3,1)=425:\

LET w(4,1)=70:\

LET w(5,1)=60:\

LET w(6,1)=53:\

LET w(7,1)=53:\

LET w(8,1)=53:\

LET w(9,1)=53:\

LET w(10,1)=53:\

LET demo=0:\

DIM q(10,2):\

LET para=0:\

LET kol=0:\

LET level=1:\

DIM k$(1,13):\

LET last=0:\

DIM t$(10,13):\

DIM p(10,1):\

LET k=0:\

LET x=0

3D Golf worked well, until I remembered that you were supposed to save your own courses, before attempting to play some as the original tape copy had none. D'oh!

2

u/MugUK 10d ago

I'll do more experimentation with the 100% BASIC rips I've got on my site. I'll start redoing those listings with have the "one command per line" option.

I can see this being useful for when I do pure BASIC translations, and I've got a few "ready to roll" that I did a few years ago, but if they use external binary files (UDG, m/c routines, new fonts etc.), I'll have to merge the BASIC with the other files. Easy enough to do with DOS's file copy /b parameter.

Then I can start plugging your tool (if that's OK with you) :)

1

u/OlderWarly99 14d ago

Neat idea!, very clean interface too.

1

u/Admiral-ZX 14d ago

Great work! On a mobile device it’s somewhat messy, but on a desktop it’s great!

1

u/codeobserver 11d ago

Fixed some layout issues on mobile but still the full experience is on desktop

1

u/NitroWing1500 14d ago

I got told off for trying to load a 128 game 😆

1

u/WhatAGoodDoggy 13d ago

Works be great if you could output as a tap file or something to get it into a real Speccy

2

u/codeobserver 1d ago

You can save the TAP.

1

u/pasca2020 9d ago

This is cool. Takes me right back to my bedroom coding in the 80s/90s

1

u/MugUK 8d ago

I keep getting a "Build failed: TypeError: t.filter is not a function" error. Any idea why?

The source code isn't using the "one command per line", but it does feature the SpecBAS listing style of including the UDGs in a text string with \a for USR "a" etc.

It's the two golf games that are at the top of my downloads. I translated them from German to English so I'd like to compile them into .TAP format and get them onto Spectrum Computing etc.

1

u/codeobserver 1d ago

Please share your code that you're trying to run.