Those guys look really old, I thought...
... and then caught a glimpse of the mirror.
The Register took a road trip last weekend to celebrate the ZX Spectrum's 40th birthday, and visited The National Museum of Computing in Bletchley Park and the Centre for Computing History in Cambridge in search of the origins (and clones) of the rubber-keyed marvel. Present at The National Museum of Computing (TNMOC) were …
That and Afterburner, both with the supplied music tape pumping out my cheap-ass clone Schneider ghetto blaster. I was a bit disappointed with Space Harrier, not that they didn't manage to squeeze it into 48K, but that they got the up/down controls back to front compared to the arcade machine. I had to crack open my joystick and make a modification using spade terminals to switch it round! No music came with that game tho.
I'd thank our parents too! My Dad knew in 1982 that if I wanted to an engineer like him then water, boiler rooms and sewage would not be my workshop but an office with a screen and keyboard. Code are my spanners of choice. My Dad still plays with computers but if hadn't push me, I'd not be in such a great position in life.
Memory limitations
They wanted the 16K version of the spectrum to have 8K of memory to use .. which was bigger than a BBC model A? B? running the same resolution....
But it was weird , wacky... and forced you to get creative in programming the dang thing
which helped this ZX spectrum owner get creative in how he programs.. which leads nicely into my career forcing robots and CNCs into doing weird and creative things..
It's convenient for the character generation that the bottom five bits of the low order byte represent the screen from left-to-right, and the bottom three bits of the high-order byte represent the 'three chunks' from top to bottom. It means that when you're copying character glyphs that you can set the low-order byte to the 'top' of the character, and iterate when drawing it downwards by incrementing the high byte.
But the missing bit of the puzzle here is getting the image to screen; there's no double-buffering or anything, the ULA just locks the memory that it need to draw the next scanline and reads it simultaneously with the CRT output. The Z80 CPU in the Speccy isn't fast enough to read/write the screen memory as quickly as is needed for video output, so it needs the custom hardware. Memory access to the screen display area is contended; it will take a couple more cycles to change values that the ULA is reading, since it absolutely needs priority. (If you're cunning, you can measure this behaviour to optimise your screen drawing code and minimise flicker.) And it happens that this weird memory layout is just right for outputting PAL video.
On the other hand, since the only screen output is direct writes to the framebuffer, then all Spectrum games have 60 Hz output - no console-style 'cinematic 30 fps' :-)
The Speccy screen layout doesn't so much divide into three blocks, as into 2K regions split into 8 by 32 "cells" [of eight 8x1 pixel groups each] within which useful relationships between addresses of screen-adjacent bytes as well as the corresponding sections of the attribute map are present.
Intuitively, within any row the eight pixel group to the immediate left or right of any character cell has an address one byte along in RAM but as a consequence of the row ordering within the 2K blocks the eight-pixel group below is also 256 bytes away. According to direction, each sideways step is thus achievable with an increment/decrement of the most or least significant byte of the address, and is consequently a single byte instruction in the corresponding machine code.
A technical explanation of how this arrangement correlates to ULA design is at http://www.breakintoprogram.co.uk/computers/zx-spectrum/screen-memory-layout
This description by Chris Smith (author of The ZX Spectrum ULA) might also help.
Of course, the book helps more. :)
It was that wacky for the same reason it was laid out similarly on the Apple II - the video hardware could also double as the DRAM refresh. Each "strip" was 256 bytes long, and prodded in turn by the scan generator to keep the 4116 DRAMs that formed the screen memory charged up.
If they had done it "linearly" then it would have taken too long to scan everything and corrupted the memory.
> Why was that so whacky?
The short and simple answer is that it saved memory.
At 256*192, a simple black and white display uses 6kb of memory. Conversely, a display using 8 bits of colour per pixel would use 48kb. Which wouldn't have left any memory to do anything else, unless Sinclair was willing to bump the RAM up to 64kb[*]!
Conversely, the colour overlay only used 768 bytes, since it only needs one byte per 8*8 block on screen.
And that meant that even the 16k Spectrum still had about 9kb of RAM free, which was enough to do something useful. Or to play games like Jetpac ;)
It's also worth noting that the ZX Spectrum wasn't the only computer to use this sort of technique, though most of it's rivals did offer other display modes.
https://en.wikipedia.org/wiki/Attribute_clash
Still, you gets what you pays for, and the ZX Spectrum was significantly cheaper than it's more flexible competition...
[*] 8 bit CPUs can generally only address up to 64kb of memory, which can be a mix of RAM and ROM. The basic Spectrum models had a 16kb ROM and then either 16kb or 48kb of memory. Conversely (and to somewhat simplify), the Commodore 64 had a 16kb ROM and 64kb of RAM, and the programmer could choose to either use the ROM + 48kb of RAM, or replace it with their own code and use the entire 64kb of RAM!
I think at the beginning of the 80s the terms "home computer", "personal computer", and "personal home computer" were pretty much used interchangeably and were around before the IBM PC was released in August 1981.
Then the IBM PC become the de facto standard and other PCs weren't any more because they weren't IBM.
> PC was a term reserved for the IBM monster at the time
No, it wasn't. The terms "personal computer" and "PC" predate the IBM PC by several years and originally referred to *any* personal computer. (*)
IBM simply used the pre-existing term to denote *their* take on the personal computer.
Later on, "PC" became more associated with that specific personal computer- most likely because it was in the name- and a de-facto synonym/abbreviation for "IBM PC compatible". The term *was* used less for other machines after this, most likely to avoid any confusion. But that wasn't the case "at the time" of the IBM PC's launch or for several years afterwards and- strictly speaking- still isn't.
"Home computer" was a type (i.e. subset) of personal computer generally aimed specifically at the home user- back when that was a distinct market segment with its own formats- and not a different thing altogether. (Similarly, "microcomputer" and its long-obsolete abbreviation "micro" overlapped with both back then).
(*) For example, the magazine "Personal Computer World" started in 1978- a full three years before the launch of the IBM PC- and continued to cover a wide range of formats until the IBM PC compatibles became dominant anyway.
Folk here keep mentioning Speccie games I've never heard of, so in a pique of nostalgia (a peek?) I read through the Wikipedia list of games. I old had about ten of them - dad wouldn't let me buy them for a year or more, my pals all had different machines, girls, school etc.
It's common today for computer games to be made into movies but I noticed that happened back then too. The Spectrum games 'The Hobbit' and 'Lord of the Rings' have since inspired movies.
Try the QAOP browser emulator for your quick fixes of Maziacs or, indeed, The Hobbit.
Does anyone remember a few hobbyist students in Cambridge selling a kitset joystick interface for the ZX? You could also buy it assembled but it wasn't as cheap or fun as the kitset. It plugged into the ZX backplane and had a standard joystick connector. It was configurable by DIP switches to adjust the joystick for different keys in games.
I owe my recent retirement from the Civil Service after nearly three decades of hacking, data processing and deskside support, to those years faffing about with a 48k Speccy, with Interface 1, two microdrives, a joystick, a full travel keyboard case I forget the name of, a speech synthesiser and a thermal typewriter I had to solder a custom RS232 cable for. Well, that and the earlier analytical training curtesy of Atari, Williams, Nintendo, Konami, Taito, Namco, Stern...
Icon in memory of Missile Command. I'd have preferred Space Duel...
I had the Currah μSpeech that slot into the rear of my Speccy. Cost about £30 at the time. Had the “benefit” that the Speccy audio was redirected through the tv speaker, with added RF noise!
I loved my μSpeech. Certain games would support it, too. Buck Rogers being one that I remember.
It was amazing, at the time, to hear your computer speak!
Oh, thanks for reminding me of that. A friend of mine just a few houses up the road from me had the Currah. I was amazed at how clever it seemed.
Another friend mid-way between us had a BBC B, the rich git. His parents were well overpaid (ISTR Daddy was a veterinarian).
Suburban Chester in the 1980s was a fun place for a kid!
Ah, my beloved Spectrum. I had the speech unit too, though much later in its life when I bought a bundle to replace a broken computer. I tried using it myself and it sounded very cool, but I didn't have much software that made use of it.
I also once found a hex machine code magazine type-in that could sample a sound (via the cassette player) and then replay it from RAM. It filled up the entire Spectrum memory with about 6 seconds worth of sound IIRC. I was very impressed at my humble speccy playing sound samples, and it worked fine-ish up to a point. The only downside was the sample replayed a little slower than the original from the cassette tape so I think I was far more impressed than my non-techie friends were!
With machinery, especially sideways drilling "trenchless holes", there's not much call for hole diggers these days. They few left have retrained as hole digging machine operators :-)
On the other hand, as the pot-holes in so many roads demonstrate, there does seem to be a shortage of properly trained hole-filler-inners. That could be a career choice :-)
The QL was also my first machine with a floppy (twin 3.5" in my case)! I upgraded to the QL after a Spectrum 48K.
What many don't appreciate about the QL is that it had a fully pre-emptive multi-tasking operating system with job prioritisation/scheduling, IO channels with redirection (windows, files, pipes), and possibly the most advanced version of (Super)BASIC.
All in a 48KB ROM.
Tony Tebby (QDOS) and Jan Jones (SuperBASIC) did an outstanding job designing and fitting all of that into such a small ROM.
And credit too to Laurence Reeves for squeezing even more functionality (and many bug fixes!) into the same ROM space with his "Minerva" reimplementation of QDOS after Sinclair Research went belly up.
I learned BCPL, Pascal, C and MC68000 Assembler (not necessarily in that order) on the QL and the latter set me up nicely when asked to programme DEC VAXen in MACRO32 in my first IT job - that was a LOT of fun!
There were far too many corners cut on the QL hardware which was in truth a bit of a disaster, but the effort that went into QDOS is so often overlooked.
Two of my many IT related treasures are a copy of the original ZX Spectrum and BBC Model B manuals, safely stored in the spare room. As the guy said in the article, manuals in those days were real documentation and they shaped the way I still write docs today. I write to my target audience, writing to the lowest common demoninator I know will need to read it and including everything you need to know without having to go away and learn tons. The Amstrad CPC manuals were real works of art, the originals in those binders and the wire-bound ones were just so clear and concise.
I must get myself Amstrad and Dragon32 manuals off ebay...
I worked briefly as a "Service Engineer" for the company that repaired ZX Spectrums that had gone wrong while still under guarantee. Most often the fault was with the power supply - it used to overheat very easily. If not, then most commonly a memory fault in one of the memory chips or a ULA issue. We hated replacing the ULA because of the number of pins that had to be desoldered and then resoldered by hand. The manufacturer didn't put them in sockets in order to save money on the build cost.
Home computers were a very new thing for most people, and the non-working Spectrums were often accompanied by letters that said "I broke it when I typed 'L' instead of 'P' by mistake". One reason why people were so scared of the new technology was just that - they were afraid something bad would happen if they pressed the "wrong" button. Only typists were used to a keyboard - everyone else was just used to hard-wired buttons that had a single function.