Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
ZX Spectrum: Q&A with some of the folks who worked on legendary PC (theregister.com)
103 points by sohkamyung on April 30, 2022 | hide | past | favorite | 92 comments


It seems anachronistic to refer to the Spectrum as a PC rather than as a microcomputer.

I miss the term microcomputer, but now that everything contains microprocessors (up to and including supercomputers), I suppose it makes more sense to call personal computers personal computers.


Home computer would be the correct and more specific term: https://en.m.wikipedia.org/wiki/Home_computer


Kraftwerk agree.


I program my home computer.

Beam myself into the future.


Feels very weird to me too. The problem is that PC meant something much more specific at the time and nobody would have called the Spectrum or even an Amiga or Macintosh a PC.


The Spectrum came out in 01982, only a few months after the IBM PC. That was long before IBM's monopoly power (well, and Ziff-Davis) had redefined "PC" to mean "IBM PC compatible". The Amiga and Macintosh didn't exist yet. Most "personal computers" ran CP/M at the time.


They were called like that in other languages, at least in Spanish ("ordenador personal"). Probably it helped that we didn't see IBM compatible PCs at home until the late 80's - early 90's.


I thought that too but on reflection not so sure. The leading computer magazine in the U.K. was ‘Personal Computer World’ and although microcomputer was probably more commonly used I think PC was also used too.

Of course the use of PC to denote IBM PC compatibles really only became common in the mid 1980s although - perhaps surprisingly - the IBM PC launched before the Spectrum.


I don't think the speccy was ever commonly referred to as a "PC" - "home computer" was the pervasive term. PCW was much more business focused from what I recall.


Just Googled early ads for the Spectrum and the first one on Google calls it a personal computer.

https://imgur.com/gallery/58TeAKT

There might have been a degree of ‘upselling’ on Sinclair’s part though!

Also agreed that the ‘PC’ abbreviation would have been relatively uncommon.

PCW covered everything! They had all the Sinclairs on the cover as well as heavyweight business machines. Even had a regular assembly language column.


That's "personal computer", not "Personal Computer" as in PC. I'm sure many company executives before electricity had their own "personal computers", whether mechanical or meat.


Well given that mini computers don't exist anymore and mainframes barely it don't think microcomputer makes sense.


I think the tricky thing here is that what used to be called a microcomputer (or apparently a home computer, though that's new to me) is kind of making a comeback (with things like the Pi 400 and some various efforts at building new all-but-the-screen-in-one portable-ish computers in the image of the c64 or spectrum or appleII) and they really ought to be distinguished from what we now call a PC (or laptop, for that matter).

But it would be confusing to repurpose minicomputer for it, given that microcomputer is a term still used to some extent, and is more present in most people's memory.


That's like saying that a calling a steamengine a steamengine doesn't make sense anymore, because they don't really exist anymore.


No, micro is relative to mini. Steam is how it does what it does.


IIRC the ZX Spectrum’s ROM included a stack based VM for floating point calculations with a ‘bytecode’ defining the operations - largely I think to cram more instructions into the 16k. The full disassembly is available at

https://skoolkid.github.io/rom/maps/all.html


Yes, exactly, and a channels abstraction to output formatted text on different targets: screen, printer, ...


I'm glad the Spectrum's manual gets a call-out here - that thing really was a masterpiece of accessible technical writing.


And it has to be said being spiral-bound made the book actually practical for reference while typing.


Was a thing of beauty. https://worldofspectrum.org/ZXBasicManual/

Simple, concise, useful.


Everything about the Spectrum was insanely clever - from the industrial design, to the circuit, to the software, to the manual, to the marketing.

It was for all practical purposes a toy - and also a masterpiece of accessible engineering.


I remember correctly, I remember learning Sinclair BASIC from the manual, when I was 8 years old (1983).


When I gave away my Spectra I kept the manuals.


I always thought that maybe they went too far with the compromises with the Spectrum. Yep, it was still a huge success (and I had one when I was 8 years old) but maybe with a few tens of bucks more three of the terrible limits could be removed: the limitations in the color attribute, the terrible sound (even without a chip, maybe also a sin-wave generator to be summed to the square wave one and driven together), a default joystick port. With such features the C64 could have had a much harder time to compete.


How would you solve color clash with a few tens of dollars? Iirc it’s a memory bandwidth limit, you don’t have enough time to load more than a few bits per pixel, so FG/BG+ 8x(on/off) is usually all you can get. And you load the sprite data during HBLANK.


The NES, released the year after the Spectrum, is probably the paragon of this: four colors per tile including the background (instead of the Spectrum's two) with hardware sprite compositing like the C64 (also with three non-background colors per sprite on both the C64 and the NES). Kids still play NES games today; only retrocomputing enthusiasts play Spectrum games, despite the first-class gameplay in many of them, and I think the shitty color is a major reason for this. An overview of the NES's deeply funky capabilities is in https://en.wikipedia.org/wiki/Nintendo_Entertainment_System#...; details are in https://www.nesdev.org/wiki/PPU_programmer_reference.

Hardware sprite compositing has three huge advantages in this context: sprite colors don't pollute the background as they do on the Spectrum, you don't tie up the CPU and RAM moving sprites around, and you can get hardware collision detection, which is a huge advantage for 2-D games.

All of this was already known at the time. James Hague describes the experience of writing games on the Atari 800 (01979) in https://prog21.dadgum.com/173.html. Even the Atari 2600 (01977) did sprite compositing and collision detection in hardware, despite lacking the budget for a framebuffer: https://en.wikipedia.org/wiki/Television_Interface_Adaptor. I guess Sinclair just thought the Spectrum could get by without it, just like the ZX81 got by without graphics hardware at all. And plenty of Spectrum games do achieve truly astounding visuals despite its limitations. But color clash is a huge problem.


NES was a game machine, built specifically to work like arcade machines of the time.

Spectrum was trying to be a general purpose computer. It had a BASIC in the ROM, for goodness' sake!

That it was able to do that, at a similar pricepoint to the NES, earlier, and yet in spite of lacking dedicated arcade-style sprite hardware, it still turned into a successful gaming platform? That's pretty impressive.

Not being sprite-centric also meant that Spectrum games included early 3D titles like Mercenary, Sentinel, Elite, and even Freescape games like Driller which featured fully shaded polygons.

Apparently Elite made it to the NES in 1991. I have no idea how that was achieved.


Yeah, kind of.

It's nice that it had color but it's too bad the color was ugly.

It's nice that it had sound but it's too bad the sound was ugly beeps.

Since they weren't constrained by CP/M compatibility, if they'd used a 6502 instead of the Z80, they could have delivered a hell of a lot more compute, and consequently better 3-D, at a lower price point. It's too bad they didn't do that. It's what the Apple ][, the C64, the Commodore PET, the Atari 2600, the Atari 400/800, the NES, and the Acorn System 1 did.

Sprites and tiles would have made it a hell of a lot easier to write games in BASIC (at least 2-D games), which is what a lot of us wanted to do with the machine at the time, and they also enabled things like the mouse pointer and mouse velocity slider in the C64 version of GEOS—which, incidentally, also suffered badly from the color clash problem, and was also ugly.

The Atari 800 also had BASIC in ROM (albeit in a plug-in cartridge) in 01979 and also had tiles and sprites. The TI-99/4 in 01979 also had sprites and 8×8 two-color tiles, inherited from the ColecoVision, and BASIC in ROM. The BASIC instruction manual, if it was the same as the TI-99/4A, taught you how to do animations by redefining characters in the pattern table. The Apple ][ and ][+, also in 01979, were the ones that were most similar to the Spectrum: they had BASIC in ROM and only 6 ugly colors in high-resolution mode (280×192) and no sprites, but 16 colors in low-resolution mode (a much nicer selection than the Spectrum's, but dependent on NTSC).

01979 was three years earlier than the Spectrum. Sinclair was trying to sell a personal computer with stripped-down 01979 graphics in 01982, 1½ Moore's-law cycles later. The Spectrum came out after the IBM PC and the CGA. You could run AutoCAD on those, though not until December.

Basically I think that hindsight shows that the Spectrum made some really bad technical choices on the Spectrum, and they kind of ruined the company. Sinclair could have been another Apple or ARM (another offspring of Sinclair Radionics) instead of another Amstrad.


> Sinclair was trying to sell a personal computer with stripped-down 01979 graphics in 01982, 1½ Moore's-law cycles later.

Moore’s law goes two ways: power in the same space doubles, or you can build something of the same power in half the space.

And crudely, space = chips. If you can use less chips you can save money.

Sinclair made something at least as capable as an Apple ][ using much less silicon and brought it to market at a much lower price point.

Sinclair “was trying” to sell it? It SOLD! It was spectacularly successful!


It had half the colors of an Apple ][, dramatically worse sound, and arguably even less computing power, but it's true that it was ten times cheaper and had more RAM.

It sold well in Europe due to poverty and because the non-NTSC Apple ][s and Apple ][+s sold in Europe were black-and-white only. It didn't do very well in Japan or South America, and perhaps most importantly, it completely flopped in the US. It did poorly enough that, following the flops of the Sinclair QL and the TV80, the remains of Sinclair Research were sold off to Amstrad in 01986.

But it didn't have to be that way. As with the DEC VT100, with the benefit of hindsight we can see how some moderate design changes would have made it immensely more capable.


The Z80 was not much slower than the 6502 (2x slower at the same clock speed if you factor in the more complex operations). The limitations of the spectrum were not related to the CPU itself, but the fact the CPU had to do everything, and even this way the raw hardware capabilities were shit.


How would you redesign it with the benefit of hindsight?


Is it that? Or 256x192x4 bits per pixel would have taken ... 24k of the Spectrum's 48k ram?


Or, for the original model, 24K of the 16K of RAM, which I think gets more to the problem :)

A full 4bit graphics mode that used a 24K screenbuffer would probably have found use, even with the heavy RAM cost, though. The Spectrum's lack of graphics modes was probably important for cost from the point of view of keeping the video electronics simple and cheap, though.


The NES, released the next year, had 2K of video RAM, 54 colors, and approximately 2 bits of color per pixel.


Yes, because the NES had a tile/sprite system, rather than a screen buffer.

When deciding what color the video scan beams need to be at a particular point on the screen, a Spectrum is just looking up the corresponding pixel in the screen buffer to determine if it's foreground or background, then the corresponding attribute block to find out what the foreground and background colors are.

The NES is keeping track of whether the current pixel is within one of the eight sprites that overlap that scanline (of the 64 total sprites whose positions it knew at the start of the frame), and if so it's grabbing that sprite's corresponding pixel from the tile VRAM; if not, it's working out which tile in the background tilemap it's over, finding the corresponding tile image in VRAM, and grabbing a pixel from that.

That's a really clever trick if what you want to do is display sprite and tilemap based graphics!

But it does you no good if you want to do something like draw a circle.

It also required, on the NES, a dedicated PPU chip specifically to handle all those shenanigans. Sinclair were using a ULA to build their video hardware; Nintendo were making custom chips.


> But it does you no good if you want to do something like draw a circle.

Don't know about the UK / rest of western world but in eastern europe the spectrum clones were running quite a bit of homemade software for scientific/engineering purposes.

Including graphs. No graphs with a NES tile/sprite system.


If you took the tradeoffs I outlined in https://news.ycombinator.com/item?id=31222661 with a 256-tile pattern table you'd still be able to plot arbitrary graphs in a 128×128 region of the (256×192) screen and a pretty broad class of graphs at fullscreen, anything that only touched an average of 8 8×8 tiles out of each 8×192 column. And you could do it in 3 colors instead of 1, and plausibly you could use those tradeoffs to improve the resolution to something like 256×256, which would have given you significantly better vertical resolution on your lineplots.

Overall I think that would have been better, not worse.

The NES sucked at that kind of thing, in part because the pattern tables were usually stored in cartridge ROMs, but mostly because outside Japan you weren't allowed to program it. People did do this kind of thing on the TI-99/4A, which had the sprite/tile graphics chip TI developed (the same one later used in the ColecoVision), with 256 8×8 redefinable tiles in RAM: http://www.academic.ro/TI994A/

If you really wanted to provide high-resolution data plotting capabilities on a TV you could provide an NES-style 3-bit horizontal scrolling delay register that shifted from 0 to 7 pixels off the start of the line, then reset it during each HBI. That would allow you to displace what would otherwise be a plain vertical line horizontally by 576 different pixel-accurate displacements, allowing you to plot 576 data points, albeit with only 8-bit precision and 90° rotated from the conventional representation.

A sprite engine that allowed you to reload the coordinates of the sprites every scan line would have the same merit, but be capable of plotting potentially several lines in different colors, and without disrupting the background.

If your sprites, unlike those actually present in hardware at the time, additionally had a variable X dimension, and repeated their pixels until reaching that X dimension, you could use each sprite to draw a stippled trapezoid at 2× or 3× the framebuffer vertical resolution by tweaking its X position and X dimension every scan line.

Hindsight.


Yeah, it did have a tile/sprite system, and it's true that arbitrary pixel graphics inherently take more space—but not necessarily more memory bandwidth, and memory latency is a non-issue if you can bank it heavily enough. Screen scanout memory accesses are so pipelinable that the Apple I used six 1024-bit Signetics 2504 shift registers for its 1024-character "tilemap". And if you only want to draw one circle you can quite plausibly draw segments of the circle into tiles in the pattern table (assuming you have a writable pattern table, which most NES games didn't, but of course the Sinclair would have had to) even if you don't have a big enough pattern table for every tile on the screen to be different.

To be concrete, if you have a 256×192 screen divided into 32×24 tiles of 8×8 pels (as the Spectrum ZX did) the biggest full circle you can draw is 192 pixels tall. It only has 74 distinct tiles, counting "all filled" and "all empty" as distinct tiles, and if you can mirror those horizontally and vertically (as the Atari 2600 did for its backgrounds) you can make do with 20.

I think a very reasonable balance would have been a pattern table of 256 distinct 8×8 tiles with 2 bits per pixel, totaling 4096 bytes of RAM; a tilemap of 1024 8-bit tile indices and 1024 16-bit tile attribute words, including three 4-bit colors and two mirroring flags (and two spare bits), totaling another 3072 bytes; and 2–8 sprites of 8×8 or 16×16, also 2 bits per pixel, totaling maybe 256 more bytes. This would have given you spectacular, NES-quality sprite and tilemap graphics, but with enough flexibility to do the 3-D isometric graphics in the Spectrum's most spectacular games. And it would have left you a lot more space for game logic. (Maybe you could have stolen a bit from the tile attribute word to get 512 pattern table entries, nearly as many as the 768 tile positions on the screen.)

Could the gate array in the Spectrum have done it? Maybe. Let's say each of the 192 logical pixel lines gets scanned out three times. On 576 out of 625 PAL lines, 50 times a second, you have to spew out those 256 pixels in PAL's 51.95 μs, a dot clock of 4.928 MHz, 203 ns per pixel. (So far, this is exactly what the Spectrum did do.) Each 2-bit pixel value controls a 4-way mux among four colors, three loaded from the attribute word and one loaded from the background color. (Separately you have a sprite engine that's maybe doing the same thing from a sprite or two, and one pipeline stage later you mux between the background and the sprite foreground under the control of a registered bit from the sprite engine.) Every 8 pixels, 1.62 μs, you need to clock in the colors from the next attribute word—exactly as the Spectrum in fact did, but 12 bits instead of I think 6—out of the 384 bits of colors for the 32 tiles on the current row.

These are the only parts of the display driver that have to be fast: the 512 bits of the current pixel line, the 384 bits of colors, the perhaps 32 bits of pixels and 12 bits of color per sprite, and the shifting and mux logic. This is definitely more than the 256 bits of pixels and I think 192 bits of colors the Spectrum actually did have to handle at this speed, but only moderately more. And the difference in visual expressivity would have been night and day. Maybe you could even have afforded higher vertical resolution (as, again, the NES did).

There are other tasks that need to happen concurrently: every 3 scan lines (192 μs) the pixel line needs to be reloaded from the tilemap and the pattern table, a task which involves indexing into the pattern table 32 times by combining 32 bytes from the tilemap with a (possibly inverted) 3-bit line index, and possibly pixel-reversing the row loaded from the tile; this can be done either during the 64 μs of the third scan line (500 ns per index), if the 512 bits are dual-ported, or during the entire leisurely 192 μs period (1.5 μs per index), if you double-buffer them and switch back and forth between two 512-bit buffers every third scan line. And every 8 pixel lines (1536 μs), the 384 bits of color attributes need to be loaded from the attribute memory. And of course the sprite states need to be updated, which may involve loading a new sprite from RAM or just incrementing a counter or two. Because these tasks are so slow (totaling maybe 2.46 μs/byte) they can all be done by a single state machine timeshared between them, maybe driven by an EPROM.

Since the 512 bits of the current pixel line are accessed in a strictly sequential shift-register fashion, and can be reloaded during the third scan line after scanout, even the old Signetics 2503 dual 512-bit PMOS shift register chip (DIP-8 or TO-99, 10 MHz typical, 4 MHz guaranteed, available 5 years earlier) might have been adequate. But I suspect much better chips were available by 01981. The 384 bits of color attributes are also accessed in a similar sequential fashion but at a much lower rate: they just need to be loaded into the color MUX inputs in 12-bit chunks at 617 kHz.

I count 27 chips on the motherboard in the photo at https://en.wikipedia.org/wiki/ZX_Spectrum#/media/File:ZXspec..., including what I think are 16 memory chips, so adding an extra chip like the 2503 might have increased the cost by 3%.

If you could stick the pattern table off in its own 4096-byte or 8192-byte RAM area instead of sharing the bus with the CPU, it would probably make the machine a bit faster too, but I suspect that wasn't practical because you couldn't get 4-bit-wide or 8-bit-wide RAM chips yet. I guess you could have used a 1-bit-wide pattern-table RAM chip and indexed it bit-serially, especially if your 512-bit pixel buffer was double-buffered (note that the 2503 was in fact two 512-bit buffers.)

But that's all with the benefit of hindsight, and without really knowing how tiny or slow their gate array was, or what alternatives there were for memory chips, or how much they cost. Undoubtedly at the time I would have been as blind as anybody else and, if I didn't make the same mistakes Sinclair did, I would have made others that would likely have been just as bad.


This is a great analysis of the kinds of compromise that 8 bit system designers were all making. They all made very different choices - the Cambrian explosion of different graphics architectures at the time were all different responses to how to get the coveted marketing checkbox of ‘full color high resolution graphics’.

It was definitely not clear at the time which approaches were best. Could Sinclair have made a different computer? Absolutely, yes. Would it have had the same impact? Unknown.

From the perspective of a programmer who grew up in the UK in the 1980s the idea that the Spectrum was a failure riddled with design mistakes is just completely ahistorical. It was the dominant home computer, it was the dominant computer gaming platform, and it sparked the careers of thousands of British coders.


All that smart hardware and you end up with a device that can only run side scrollers and top down jrpgs, because that's what you can do with a tiled background and a few sprites.

Could the NES run the first isometric games that showed up on the spectrum, for example? Or even some of the first primitive adventure games that used the built in graphics primitives to accompany the text with some graphics.


The NES mostly couldn't, but it also had only 2K of RAM. The NES did end up with a quite faithful port of Marble Madness, but not until 01989, 5 years after the game's initial arcade release (which used a 68010!). The Spectrum port of Marble Madness was abominable, but that wasn't really the Spectrum's fault. However, the NES port did feature a full-screen viewport onto a smoothly-scrolling isometric playfield, which as far as I can tell no Spectrum game ever managed. (Maybe Golden Axe is closest?)

I'm really interested in the question of how to use an NES-like tile engine to draw a 3-D world without perspective, like Fairlight, Knight Lore, half of Quazatron, Highway Encounter, The Great Escape, or Ant Attack—though remember that the Spectrum also had first-person shooters with perspective, like DeathChase, Tau Ceti, or 3D Starstrike, which maybe would have been harder to incorporate. I think there are at least four reasonable answers and one total cheat.

1. You can take an "oblique" rather than "isometric" approach, like Target Renegade, Golden Axe, and many old technical drawings. Your X-Y plane is the screen, and Z goes off at a diagonal, typically 45°. So your X vector is just [1 0], your Y vector is [0 -1], and your Z vector is, say, [1 -1]. Single tiles of surfaces in the X-Y plane are just single tiles on the screen, and that's adequate for when an X-Y surface occults a surface in any other orientation, as long as it's at a tile boundary. A tile of an X-Z (horizontal) surface becomes two right triangles, one in the lower right of a screen tile and one in the upper left of the tile to its right. Similarly, a tile of a Y-Z (vertical but not screen-parallel) surface becomes two right triangles, one in the upper left of a screen tile and one in the lower right of the tile above it.

So, to make oblique renderings of axis-parallel arbitrary solid shapes out of a single X-Z texture, a single X-Y texture, and a single Y-Z texture (as in Ant Attack, though Ant Attack is isometric), all joined at tile boundaries, you need only 5 tiles: all X-Y, all X-Z, all Y-Z, and two that are half X-Z and half Y-Z. If you can have free-standing X-Z and Y-Z surfaces that occult an X-Y surface, like some of the walls in Highway Encounter, you need 4 more tiles: half X-Y and half either X-Z or Y-Z. An additional texture on the Y-Z plane costs you 3 additional tiles, or 5 with free-standing surfaces and arbitrary occultations. Similarly, non-straight edges, like in Where Time Stood Still, cost you an extra tile or two.

2. You can do "isometric" tiles with 45° angles instead of the correct 30° angles, so your X vector is [-1 -1], your Y vector is [0 -1] as before, and our Z vector is [1 -1]. This requires a larger variety of different tiles, has the same degree of geometric distortion, and might actually look worse: for a single texture on each plane you need not only the X-Y, Y-Z, X-Z, Y-Z/X-Z, and X-Z/Y-Z tiles from before, but also Y-Z\X-Z, X-Y/Y-Z, and 8 other combinations, 15 in all.

3. To do "isometric" with the correct 30° angles and only a little bit of geometric distortion, with your XYZ vectors being [-1 -½], [0 -1], and [1 -½], you can have four positions for a boundary within each tile: \ lower half, / lower half, \ upper half, and / upper half. This results in 27 tiles given one texture per plane, though not all will necessarily occur.

The tradeoff for all this complexity is that now you have four colors per tile instead of two, possibly higher resolution, and faster screen updates, which enable a scrolling full-screen viewport. Note that, of the 3-D Spectrum games I mentioned above, only DeathChase, Knight Lore, and Fairlight have a nearly-full-screen viewport onto the playfield, and the latter two achieve it by having an almost totally static background with a 1–2-second "loading" pause in between rooms. By contrast, a tilemap would allow you to rapidly scroll a large viewport, as long as it was done in multiples of the tile size.

4. Instead of precomposing a pattern table that draws a full-screen "isometric" world, you can draw with total freedom into a small viewport by writing into the pattern table. (On the NES the pattern table was typically in ROM, but of course that would be impossible for a cartridgeless machine like the Spectrum.) This allows you to not only do partial occlusion effects and subpixel scrolling like The Great Escape but even perspective rendering like Driller and 3D Starstrike.

It might enable you to do faster perspective rendering like Driller because you could get better fill rates on the interiors of stippled surfaces by reusing a stippled tile. (Maybe Driller could have managed more than 1fps.) And Driller wouldn't have had to be black and white: four colors in a tile means that a tile containing an edge between two checkerboard stipples can contain four colors, two per checkerboard.

5. If you can change the base address register for the pattern table, maybe you can do it three times per screen during the HBI, thus clawing back the ability to treat the tiled screen as a full-screen raw framebuffer, without having to dedicate RAM to it all the time or losing the ability to scroll it rapidly. This might even enable you to cut the tilemap entries from 8 bits to 7—all you need for ASCII anyway—using the 8th bit for a half-brightness flag or something.

Hindsight.


Yes, and!


> but maybe with a few tens of bucks more three of the terrible limits could be removed: the limitations in the color attribute

Today, i think it is an ingenious design feature, if we consider memory size and bandwidth as a hard constraint (which was, as memory was significant expense in that time). It uses 1.125 b/px, which is almost as efficient as an monochrome mode, while still offers all 16 colors on screen.

In contrast, e.g., CGA has either hi-res (640x200) monochrome, low-res (320x200) 4 color, or super-low-res (160x100) 16 color mode. If it had offered a graphic mode with block colors, it could have almost hi-res with 16 colors, just with block color limitation. If for exa


Those are definitely the three biggest weaknesses of the Spectrum. They fixed only the sound with the 128 onwards. Was the success of the Spectrum based on its price, though? If they had added those features, how much more expensive would it have been?


It would have failed to compete with the BBC B, which had the official backing of the BBC and a much more robust and upmarket feel.

Different goals. The Spectrum was a set of engineering compromises, but they were chosen carefully and the result was an influential best-seller. A "better" machine would have been more expensive and less successful.


It's interesting though that the Spectrum did well in the UK and USSR (as clones), but the almost identical Timex-Sinclair 2068 flopped hard in the US.

I wonder if timing played a role-- it hit the market while the US video game/home computer market was already in a price-shock. Other competitors were in fire-sale mode (TI, Coleco) or at least seriously repositioning in the market (Atari).

On the other hand, it's possible the Sinclair compromises weren't appealing to American customers who had a broader selection to choose from-- even if it was competitively priced, the 2068's "it's better than a ZX81" keyboard doesn't look good compared to a bargain-priced VIC-20 or TI-99/4A.


Controversial opinion, but the BBC would have been better with a Speccy like graphics mode. The full colour modes on the Beeb left too little memory (12k) - when the Speccy had about 40k left.


>Those are definitely the three biggest weaknesses of the Spectrum.

The poor keyboard is the worst fault with the Spectrum.


Anybody who likes this should read the book, The ZX Spectrum ULA: How To Design A Microcomputer, which runs you through how the computer actually works.


Back when programming was an art and a programmer needed to know the underlying hardware that the software was running on intimately. Nowadays the nearest you get to that is with embedded programming. Makes you wonder why computers need to get faster so that we can run the latest code.


This grossly understates the level of complexity involved in even the simplest things we take for granted in general purpose operating systems on general purpose hardware nowadays.

In order for you to read this comment, your computer is interacting at an astonishing speed with possibly wireless networking hardware, transmitting, receiving and error correcting on the fly in order to establish a secure, trustworthy connection to a server, from which it can receive an encrypted message containing the text of this message.

Having received it, together with a bunch of high level layout instructions, your machine has then determined how to lay out a visual display of hundreds of thousands of pixels, drawing at sub pixel resolution dynamic glyphs drawn from font data that it is loading on demand from a storage medium that indexes data using a permission-based filesystem and continually optimizes the arrangement of the data.

Your computer may never have been called upon to draw this symbol in this particular typeface and size and color before: 喜 - yet it can do so almost instantaneously when you browse to this comment. Isn’t that kind of magical?

Those glyphs are composited over a color background and sent to a high resolution display device with at least two orders of magnitude more pixels than a ZX spectrum.

While all this is going on you can be running a dozen more equally complex operations. You might have an audio file or data stream playing, or even a video stream.

Don’t make the mistake of underestimating the vast gulf of capability between an ‘80s 8 bit micro and a modern computer.


That's a good description of the inherent complexity in modern compute, but there's a whole lot of accidental complexity as well. Which is why, e.g. many modern OS's and "apps" still cannot keep up with normal typing speeds without adding many seconds of latency. That's a significant impact on UX and a severe regression wrt. earlier systems. Plus lots of random slowdowns due to background processes doing whatever, etc.


Okay, do me a favor.

Go to https://jsspeccy.zxdemo.org/, and start up the spectrum emulator.

Choose '48 BASIC'.

Once the emulated speccy boots up (oh, yeah - notice you have to wait for a noticeable delay while it initializes all 48K of RAM there...), press and hold down the 'C' key. It should start typing:

CONTINUE CONTINUE CONTINUE CONTINUE CONTINUE ...

Within a couple of seconds, the input latency will have become noticeable.

After about half a screen is filled up with CONTINUEs you can take your finger off the keyboard, and it will keep slowly typing CONTINUEs for a second or so more. Now try typing some letters. Feel that delay between your input and the character appearing on the screen?

I can attest from personal experience that this is an accurate and faithful emulation of exactly how a 48K Spectrum behaved.

There was no golden age where computers were instant and always responsive. Floppy disks chugging away while little watches and hourglasses replaced your mouse pointer were the norm throughout the pre-internet era. On a terminal connected to a minicomputer, you could watch the text come in character by character on your terminal.


This is correct. I grew up on a spectrum 48k and as a kid I remember often wasting time trying to find the longest keyword thinking that the lag was a function of the number of keywords in the buffer. I believe RANDOMIZE (T) was the longest keyword


Very much so!

It was only last week I made a submission about porting a trivial text-adventure game (which I wrote) from CP/M to the ZX Spectrum.

The features I have available are laughable, even basic things like entering text have to be done "by hand", no readline, no sounds, and doing everything manually is a recipe for confusion unless you're very careful.

Still fun to play with such machines though, even now, and some of the games hold up pretty well even if we ignore the nostalgia component.


You forgot real time orthography and gramar checking while I'm writing this comment.

When I was young, you had to press a special button to make WinWord find the pile of errors you made. When I was younger, the ZX Spectrum had no spell checker.


Reading back over my comment I could have used some of that :)

But yes, I was focused on just pulling down and displaying a comment, not even touching on the input processing capabilities.

And this is stuff that a computer does without even breaking a sweat - this is just constant background activity supporting the vastly more complex stuff the machine can do if you task it to.

A ZX Spectrum reading data from a tape drive at about 1400 bits per second required almost its entire CPU’s attention. At that speed just loading the 1614 UTF8 bytes of my comment above into memory would take over 9 seconds, during which time the computer is doing literally nothing else.


I had a ZX81 with the extra package of 16 KB of RAM (not a typo, only KB). During load and save time, the screen was just noise because the CPU handle the TV signal and it can't load the data and keep updating the screen.


The ZX80 could literally not do screen sync when the CPU was doing anything else at all. Pressing a key would cause the screen to go flicker.


There were some ingenious games for the ZX80 which used cycle counting to precisely time the beam being offscreen to process keyboard input. This allow flicker free keyboard games like you can see on YouTube.


Agreed 0xFCE2! Indeed, the game industry and robotics still care about performance, since it affects joy (we want smooth framerates, VR headsets can make you sick as low frames per second) and safety (robot control often has real-time requirements). My first computer was a commodore 64 (like you?) and I care about performance, so I enjoy working in those areas.


I really think most game devs don't reallzcare about performance, how many games out there use more than one core/thread?

There's so much game engine/abstraction hell going on, I can't imagine they could care a lot about what's going on at a low level


Indeed, I was referring to C++ or Rust game engine developers. For example Teardown, by Dennis Gustafsson: https://mobile.twitter.com/tuxedolabs?lang=en a nice game and well optimized c++ custom game engine.

Many game developers use Unreal Engine or Unity, thise game engines have been optimized pretty well.


Don't forget about HFT


> why computers need to get faster so that we can run the latest code

Wirth's law

https://en.wikipedia.org/wiki/Wirth%27s_law


Your comment reminded me of The Story of Mel:

https://en.m.wikipedia.org/wiki/The_Story_of_Mel


Mel would disapprove of modern computers.


What baffled me most about that time, was that (some) developers would use PCs to develop ZX spectrum games. This was e.g. described in Bob Papes fantastic book "It's behind you", where he recalls the development of R-Type. Nowadays you would definelty do so, and you still can, e.g. with using C with z88dk and target a whole palette of Z80 targets.



As a kid growing up in the 80, the spectrum were for the dorky and unpopular and the c64 was the fancy option with the coolest games and demos (this is all of course within the microcosm of the already nerdy)


> the dorky and unpopular

AKA the kids whose parents didn't have a lot of money.


That's weird.. I don't recall feeling like it was a money thing that I had a Spectrum, only that my parents had made the 'wrong' call on a 50/50 decision (though I will forever be grateful for that early exposure to programming!)

Trying to search for local prices back then is tricky, but they look to have been in the same ballpark (£180-200).


This 1983 ad has the 48k Speccy at £129.95[0] and the C64 at £345[1]. Admittedly I think the C64 came down in price not too long after.

[0] https://archive.org/details/your-computer-magazine-1983-08/p...

[1] https://archive.org/details/your-computer-magazine-1983-08/p...


The spectrum was way cheaper than a C64.

The speccy had a launch price of £125 (£175 for the 48k version), the C64 launched at £399 in the UK.


The c64 peripherals we’re way more expensive too. Commodore had an official cassette player as well as a floppy disk drive that weren’t cheap. Though I suspect I in the long run probably spent more money on worn out joysticks


Yes, that’s quite frankly a big part of what made kids unpopular when I was a kid. Don’t know what it’s like these days but I suspect it hasn’t changed that much


ZX Spectrum, the OG Raspberry Pi 400.


Ouch, that one made me wince!

The RaspPi is very much an heir of the Acorn machines. Obviously your point still stands, but...


The rivalry was captured well by the BBC docudrama "Micro Men" (aka Syntax Era):

https://en.wikipedia.org/wiki/Micro_Men


Yes! I've pretty much watched it to death... I was always an Acorn fan, but these days I also have a ZX Spectrum Next.


Ooh. The Next is a premium item, isn't it?


It was such a great idea that I couldn't not jump on the Kickstarter. It was a little pricey, but the case, build, presentation and software were all terrific. The team did an amazing job.


It looks beautiful from the pictures I've seen. I'd love to own one, but cannot justify the price. I didn't have a Speccy but a C64 as a kid, so I went with the cheaper (and more cheaply built) TheC64 from RetroGames Ltd. It's just a working keyboard C64 lookalike with an ARM inside running an old version of VICE.

The Next looks like a much more premium thing. I'd really like one ;)


If you want to properly go down the rabbit hole as a C64 fan, then there's always the Mega65 (https://mega65.org/). Makes the Next look like a bargain-bin item.


As somebody who grew up with the Amstrad CPC in France (it was the best selling 8-bit micro there), I've always found the cult status of the ZX Spectrum in the UK difficult to rationalise. IMO, it's the biggest f***ing rose-tinted reality distortion field in all of retrocomputing.

I appreciate that the Spectrum was an affordable entry point into the fascinating world of computing, and that it had a bit of a first mover advantage in the UK market. But the vastly superior C64 was released only a few months later, and the also-British Amstrad CPC two years after that. How could the Speccy remain so popular ?

Let me try to explain :

The Amstrad had a built-in colour monitor + tape drive for the same price as the C64 (with also a cheaper green screen option), a fully RGB video signal (unlike the C64), a faster clocked Z80 CPU than the Spectrum, the best graphics capability of the three by far (16 colours 160x200 with a great palette, 4 colours 320x200, monochrome 640x200, no colour clash), the same AY sound chip found later in the 128K Spectrum, standard Atari-style joystick ports, a decent keyboard, and the easiest and most capable BASIC flavour too.

The C64 had a weird palette (no red !), but also hardware sprites which allowed smooth arcade-like gameplay, and the undisputed king of sound chips : the SID.

I can't think of a single hardware advantage for the Spectrum.

Contrary to popular belief in the UK, the Amstrad's worldwide unit sales (3 million in 6 years) were not far from the Amiga (4 million in 7 years) or even the Spectrum (5 million in 10 years). They're all dwarfed by the C64's ~15 million, though.

Software availability was similar : most games were released on all 3 platforms. The Amstrad did suffer from some disappointing (but easy to avoid) lazy Spectrum game ports from smaller UK publishers, but the larger ones (e.g. Ocean) also produced some of its finest games (the Amstrad ports of Gryzor, Chase HQ, Operation Wolf, Rainbow Islands, Dragon Ninja... are all the best 8-bit conversions of the arcade). This was also balanced by French & Spanish publishers that were all Amstrad-first.

In short : IMHO the most interesting and relevant 8-bit match is "C64 vs Amstrad CPC". These two were actually playing in the same league.

Yet, the dominant conversation online today still seems to be all about "C64 vs Spectrum" and I find that puzzling, as if people were still seriously arguing today that the Atari ST was a more capable and legendary computer than the Amiga.

Bitmap Books released a series of "visual commpedium" art books featuring the Amiga (of course), the C64 (fair enough), the Spectrum (lol for a gfx book), but still not the Amstrad CPC to this day.

Some of this may be down to ignorance : I came across people who were simply unaware of the CPC's graphics prowess compared to the Spectrum, as they had only ever seen "green screen" Amstrads, if any. Others had lazy Speccy ports in mind when they argued the CPC was slower and couldn't do smooth scrolling (I show them Pinball Dreams : https://youtu.be/yl_MSCpGC0M?t=1377)

But I wonder if besides the nostalgia goggles & ignorance, there's maybe a different taste for pixel art aesthetics at play ?

I was stunned to hear that some people preferred the Spectrum in this games graphics comparison I've put together : https://imgur.com/a/D7Ocd

What ?! I'm curious to know what unbiased younger people think about that one...


My spectrum was quickly forgotten as soon as I got my hands on an Amiga 500, so I'm not one of the people you're talking about.

But I suspect by concentrating on graphics quality and games you're missing where the nostalgia comes from.

The spectrum was fun to learn to program on in a way eg the C64 wasn't. It had a tangible personality even though it was cheap and a bit shit. Whenever I hear someone reminiscing about their spectrum, it usually isn't about the graphics or games but about it being their entry point into programming and how that lead to a career. It had a user friendly BASIC dialect (unlike the C64) and came with good programming manuals.

Nobody I knew with a C64 (or people I later heard about growing up with a C64) programmed it. It was just a games machine to them.


> The spectrum was fun to learn to program on in a way eg the C64 wasn't.

But again you're pitting the Spectrum against the C64 and leaving out the CPC, which had an even more capable and accessible BASIC.

I can understand the appeal of the Spectrum in its first couple of years, but I'm not sure why the UK market never shifted towards Amstrad vs C64 once the clearly superior (and also British) CPC was introduced in 1984. It did shift to the vastly more expensive Amiga later on after all.


>As somebody who grew up with the Amstrad CPC in France (it was the best selling 8-bit micro there), I've always found the cult status of the ZX Spectrum in the UK difficult to rationalise. IMO, it's the biggest f**ing rose-tinted reality distortion field in all of retrocomputing.

I don't get it either.

64 was and is clearly the better choice over Spectrum—superior in every single way other than perhaps the BASIC—but the relatively small price difference even then (and even more 40 years later) was enough to cause many Britons to choose the latter. That said, there is a reason why 64 dominated the wealthier US, Canada, Germany, and Australia.

The only explanation I can come up with is that we all feel nostalgia for our youth, no matter the circumstances. But there is a difference between respecting the creativity borne of technical limits (what happens with ZX81), and actually celebrating those limits as virtues as happens with Spectrum.

One might feel nostalgic for the happy days of youth, even if one grew up in a poor ghetto. But not so much if one associated with others with better living quarters. Nowhere in the UK is a town where families could only afford Spectrums; rather, every schoolyard rang with debates between Spectrum, C64, Amstrad, and BBC Micro owners on their computers' merits. (They all uniformly pitied the owners of Oric, Dragon, and other true also-rans in the UK market.) It's one thing as a 13-year old Spectrum user to stand up to the taunts of the C64 owners by bravely citing any possible superiority (or, in this case, minimizing the uniform inferiority), but to still do so 40 years later?!?


Small price difference? When I bought a Spectrum as a kid, the C64 cost about 2/3rds again as much and way out of reach.


> I was stunned to hear that some people preferred the Spectrum in this games graphics comparison I've put together : https://imgur.com/a/D7Ocd

Maybe it has nothing to do with graphics. Having no nostalgia for either machines, in the video comparisons I've seen on youtube the Spectrum games tend to run much smoother than the CPC versions.


A lot of people I knew with the Amstrad CPC at the time (80s) had the included green/black monitor, normally set up in their "3rd bedroom" so a lot of the improved graphics were totally lost on them. My friend had an Amstrad at the time with that monitor and it lacking colour was a huge disadvantage. The Spectrum hooked up to our family TV over RF with colour looked way better, just because it had colour.

People mentioning the Amiga 500, at the time that came out, I think our Spectrum was at least 5 years old, cost £150 at release and the A500 launched at around £400 to £500, I think the Atari ST was similar in cost in the UK, so the price differential was massive. I remember being very jealous of friends playing the included games like "Bart vs. Space Mutants", "Black Lamp" and making "Say" spit out swear words on command.

I remember petitioning my parents to buy one and it was a flat "NO" on cost alone. Also, Speccy cassettes were a regular buy on weekend shopping trips at £2 or £3 a go, whereas a lot of Amiga titles were regularly retailing at £20+ (I'm thinking the old Ocean/US Gold arcade conversion titles), so it was totally outside of my parents budget at that time. I had lots of fun though with the early Codemasters games like Dizzy, etc., so no great loss.

From memory, interest rates were unexpectedly suddenly sky high and they had somewhat over extended themselves on a big house extension, which luckily, gave me my own "Spectrum room" with a dedicated 14" Philips colour TV for Spectrum fun, so swings and roundabouts I guess.

I finally got a second hand A500+ a few years later and immersed myself in all the games I'd "missed", got "online" in around 1990 or so with a US robotics modem my mother would "borrow" at weekends from her bank job and then the cost problems quickly became all about me racking up massive phone bills over the weekends dialling into local BBS's. Fun times.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: