logoalt Hacker News

EdgyGreybeardtoday at 5:56 AM4 repliesview on HN

This is cool. Granted, the language presented here is absolutely horrid, but at the same time so much better than what was available at the time. The ZX Spectrum was a quirky ball of low-cost hacks (the Ferranti ULA that implemented most hardware stuff was driven beyond its intended use hard, with brilliant-yet-horrible features such as using the same pin for audio input and output...). Its BASIC lacked most features that are taken for granted these days, like control blocks: GOTO-another-line-number was the only way back in the days, and the resulting spaghetti code was... rough.

Inline assembly, which also hadn't been invented yet other than by embedding raw opcodes in DATA statements, is absolutely required to get the performance required for gaming: I still cherish my HiSoft Devpac tape (officially purchased and shipped from the UK at great expense and requiring extensive negotiations with the local customs people, for whom this entire 'software' thing was a bit new...) and Z80 assembly reference (pirated from a library with the school photocopier). So, in one sense, the limited BASIC was a blessing: it required you to really get to know your machine, which is probably the first and last time in my life that happened: I've not considered the timing implications of the CRT and optimized my code around that for a long time.

Nice to see people are still enjoying a 44-year-old platform!


Replies

obliquelytoday at 10:58 AM

Minor nitpick: inline assembly had been invented already. Indeed it had been implemented and shipped for the Acorn Atom in 1980. The Atom packed a quirky but effective BASIC with an inline 6502 assembler into its 8Kb ROM. And a BASIC with rather more features, and an inline assembler, was shipped with the BBC Micro, slightly ahead of the ZX Spectrum launch. Folks on the Cambridge scene had the chops to do better versions of BASIC, they just didn't make it into any Sinclair products until the QL. (And, a later Sinclair product, the Z88, of course, shipped with the Z80 version of BBC Basic a few years later, this time with an inline Z80 assembler.)

Borieltoday at 6:45 AM

I’m the author of the compiler. I started it 18yrs ago, well before AI, mainly as a PoC. But people started to ask for more and more features … The compiler tries hard to mimic the original Sinclair BASIC but also allows a more modern syntax similar to QBasic / FreeBASIC.

show 3 replies
ivolimmentoday at 6:24 AM

Even though the language is 'horrid' I have a weird attraction to it. I have been programming in various BASIC languages for more than 20 years. The last years I maintained a self developed application for my Mom in Visual Basic. Somehow I got things done in that language.

Zardoz84today at 6:23 AM

Don't talk bad about ZX Basic. It had :

- IF THEN

- FOR

- GOSUB / RETURN

- DEFN

- GOTO

- READ / DATA

That was the same thing that any 8 bit BASIC of the era.

I have yet my books of learning BASIC (for kids), and there for ZX Spectrum, Commodore, Apple 2, etc... And only had that. The only thing that I remeber lacking compared againts other BASICs, was the ON GOTO, ON GOSUB and ELSE . On the control of flow in BASIC... That is all.

I will not see something more advanced (and without numbering the lines), like while and do loops, or select case, proper subrutines and functions, until I touch Turbo BASIC (and QBASIC)

show 1 reply