25th Anniversary of the Sinclair ZX Spectrum
Alioth writes "Twenty five years ago today, Sinclair Research launched Britain's most popular home computer of the 1980s — the Sinclair ZX Spectrum. Costing about one third of the price of its rivals such as the Commodore 64 while having a faster CPU and a better BASIC interpreter, the machine sold well in many guises throughout the 1980s and had more than a staggering 9,000 software titles. The machine may well have done well in the US too, had Timex — the company building the machine under license in the US — not already been in financial trouble and about to fold. The machine was also extremely successful in Russia, although not for Sinclair Research — because the Russians made dozens of different clones of the machine, and did so right into the mid 1990s. The machine still has a healthy retro scene, including the development of new commercial software by Cronosoft, and new hardware such as the DivIDE, which allows a standard PC hard disc or compact flash card to be connected to the machine."
The Speccy was better than the C64. Obviously.
All of us math students with Ti-89/92 partial with the ZX can emulate it right on the calculator. No more waiting to be at home to play our favorite ZX programs. (mind you the screen may be small, but it's still better than nothing!)
I learnt to program on my Spectrum - and a lot more besides. It wasn't just a gaming console, and it's significance for the industry was much wider also.
A friend who did ASM on these chips said that the Z80 processors and variations there of is still (or at least until recently) the most common microprocessor in the world.
Apparently they are common in dishwashers, washing machines and other programmable appliances. (Can your dishwasher run Linux?)
http://en.wikipedia.org/wiki/Z80
I started with a Sinclair ZX81, 1Kb of RAM expanded to 16Kb with a "RAM pack" that had an edge connector to the main PCB inside. It got hot (as did the power supply) and was often unstable. You could suddenly lose everything you were working on because the system just froze.
Along came the ZX Spectrum, 48Kb (and later 128Kb) with 8 colours (the ZX81 was black & white), sprites (the ZX81 was limited to the built in character set which included blocks & things until someone worked out how to hack that) and rubber keys (the ZX81 had touch sensitive membrane things).
It was a revolution, at my school we swapped tapes which didn't always load, had multiface cartridges to enter POKEs (changing a value at a particular memory address) for cheats and in order to create backups... and a big magazine scene.
I even ran an emulator on my PC to play one game in particular: the game that everyone tried to beat, and still fiendishly hard (and created by a mysterious genius who "disappeared", Matthew Smith) : Manic Miner (link to a Windows version).
Those were the days. The UK 8 bit scene was dominated by this machine.
Conversion Rate Optimisation French / English consultant
Here's me and a million other Brits aged 25-35 saying 'thank you' for the Spectrum. If it wasn't for this little rubber wonder I doubt I'd be sat at this desk today, working in IT as a career. I'll be botting up the emulator" tonight to celebrate!
It's also worth noting Amstrad's healthy attitude to the retro scene (they bought Sinclair Research in 1986, and many of those million Brits will think of Spectra every time they watch The Apprentice...). Anyway, the Spectrum ROM was cracked & emulated before permission was sought. When someone decided to approach Amstrad to seek permission, one Cliff Wilson stepped forward with a simple reply: "Yes, do what you like with the Spectrum ROM, just don't charge money for it and don't remove our copyright message." Such an open attitude towards the scene in 1999 means that it's still thriving today.
Hey Hey 16k
Slashdot Burying Stories About Slashdot Media Owned
It was the first computer in our household, and in many ways by far the most significant.
I remember learning BASIC and assembly (Z80), playing Elite all through one night, playing games and learning lots of stuff.
And that little silver-paper thermal printer!
I've still got the 1981 ZX-Spectrum 48K in a box somewhere, with tapes of many games and that printer (and some spare 'paper'). The keyboard membrane has pretty much had it, making the computer almost useless, but one day I'll get a replacement, just for the nostalgia.
I got my spec
trum 48k to c
onnect to the
internet and
work with sla
shdot.
REM disconnec
t
I'll admit I ordered games from Britain, copied them and sold them to my mates and people I hardly knew. I was only 13. Attic Attack was a big seller. Happily my life of crime finished there, and my life of programming took off.
I've also made a 25th anniversary hardware project for the Sinclair Spectrum - an add-on board to be used for helping diagnose problems with sick Sinclair Spectrums:
http://www.alioth.net/Projects/Spectrum-Diag
It uses LEDs to display the test progress and status, so even if you can't get a picture out of the Spectrum, you can at least find out if the CPU and memory is working, and a good idea whether the ULA is servicable.
Oolite: Elite-like game. For Mac, Linux and Windows
And I blame it all on my using a ZX81's membrane keyboard when puberty hit. Instead of developing sleek, feminine fingertips I have hands that resemble welding gloves.
:P
Thanks a lot, you bastards.
"Commodore 64 while having a faster CPU"
It did not have a faster CPU. It had a CPU running at a higher external bus clock. You'd think that after all these years that people would realize that MHz != performance, but I guess not.
The 6502 ran on a bus multiplier, meaning it ran faster internally than it did externally. This is true of practically any modern CPU, but was not so common back in the day. In general terms the 1MHz 6502 and 4MHz Z80 ran at the same internal speeds. That said, the 6502 was much more efficient and RISC-like. In practically any benchmark that scales for speed, the 6502 comes out ahead.
Arguably the fastest, in theory, 8-bit machine was the Atari series. They ran a 2 MHz 6502 (declocked to sync with video), which was twice as fast as any of the other 6502 machines and effectively the same as an 8MHz Z80. But again, these machines always finished at the bottom of the heap in BASIC benchmarks, which again demonstrates the point at the top.
Maury
Not really much to add, but I feel compelled to post in homage of the computer that changed the life of so many people, including my own.
My very first computer was a ZX Spectrum 48k. I still remember the beautiful banner: "(c) 1982 Sinclair Research, Ltd. Chuckie Egg II was my very first game, and BASIC the very first programming language I tried. The ZX Spectrum and the Timex had an almost monopoly here in Portugal in the '80's, to the extent that I never really saw a C64. The Timex plant in Portugal continued making them after the main branch closed its doors, and exported the machine to several countries (Poland was one of the main markets IIRC).
To Sir Clive: Hip! Hip! Hurrah!
I started with a ZX81 and its 1kb of RAM, little flush keys and built-in BASIC. Moved up (or should I say 'was moved' - I was five years old) - to a ZX Spectrum when that came out. Ahh, the white-knuckle action of Arcadia! The blistering platform mayhem of Horace and the Spiders (by Psion no less)! I spent many a late night (sometimes not retiring until 8pm) hammering away at the rubber keys, navigating some hideous pixellated sprite.
Damn I can still hear the staticky 'eeeeeee-ktsch' of the tape drive now.
Modern computing seems so flat, routine and devoid of character by comparison. What happened?
---- scrm
The Russians have done it.
p hp?t=15756
http://www.worldofspectrum.org/forums/showthread.
Oolite: Elite-like game. For Mac, Linux and Windows
I think that your problem with Spectrum programming is due to Sinclair's "keyword" system. This first appeared on the ZX80. A single touch of a ZX80 key gave you a whole BASIC keyword (e.g. PRINT, GOTO). This was fast and simple. Symbols were accessed with SHIFT, and you could still type single letters when it was required.
A similar system was used on the ZX81 , but because it was more powerful, there were more keywords to squeeze onto the keyboard. Thus, some keywords required the user to type SHIFT+NEWLINE *then* hit the key.
Sinclair retained the "keyword" system for the ZX Spectrum. Unfortunately, this was *much* more complicated, and there were lots of keywords to fit in. This made the system complicated. Even at its release, the Spectrum was criticised for this. From "Your Computer" magazine:- Sinclair invented the "one-touch key" system for the ZX-80, which ensured that the computer knew that the first key pressed after a line number, or after the word Then, would produce a keyword, such as Let, Print, Poke or Goto. This meant that programming was fast and positive. The ZX-81 demanded a sequence of key presses - such as Shift, then Function, then a key - to get the results you wanted. Sinclair is obviously wedded to the one-touch entry system, but it is really not suited to the Spectrum. The sequence of key presses required for Ink and Atn, for example, requires the same number of key presses as would be needed to type the word in directly. [..] The one-touch entry system, retained from the ZX-81, is not suitable for the Spectrum and leads to complicated multi-shift operations when keying some functions. It should have been discarded. I also found the Spectrum's keyword system too complicated. I remember having an argument in the school playground where a Spectrum owner said that he could type "RANDOMIZE" in less key presses than my machine.
Of course, at that time, I didn't realise that many BASIC keywords on my Atari 800XL could be abbreviated; for example "PRINT" could be "?", "LIST" could be "L.", and so on. Sinclair should have done that on the Spectrum instead.
Incidentally, when the enhanced 128K Spectrum was released, the new BASIC abandoned the keyword system.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
I remember that machine well - a friend of mine actually had one. Without the memory expansion pack, it was pretty much useless. Still, if you you wanted a computer (And who didn't?) you couldn't get any cheaper than that. I remember towards the end, they were literally giving them away for free at our local service station with purchase of an oil change.
The 1 Mhz 6502 was significantly faster and had a more advanced instruction set than the 3.5Mhz Z-80.
The Z-80 was essentially an 8080 with twice as many registers but no significant changes to the instruction set. the Z-80's. (well DMA but it was hard to use). I/O was a separate operation than memory access. And most instructions took 4 clock cycles but some took more and a few took 3.
The 6502 had a much leaner but more powerful instruction set with some very sophisticated computed branch offset instructions. It had fewer registered but mapped all of the first 256 bytes to behave like registers. (At that time It did not pay a significant speed penalty for accessing main memory over register memory.) All I/O was memory mapped. This allowed a simpler bus structure.
it ran at 1Mhz but most instructions were 1 cycle so it was faster than the Z-80.
These design features allowed for the two greatest innovations in modern computing history. Dynamic memory and Graphical displays
1) Dynamic memory.
Prior to the pet and apple, nearly all computers used Static memory which was not dense and used lots of power. Many bankrupt companies had tries to use Dynamic memory with the 8080. They all failed because no one successfully mastered the problem of robustly refreshing the memory without severely compromising the machine. The problem was that irregulat 3,4,5,6 cycle instructions set length. one could not predict easily when and how much of the time the memory bus would be in use by the CPU. As a result the refresh controller had to just opportunstically try to refresh the memory. This resulted in complex logic that sometimes failed to get through the whole row-address space in the required time. As a result, the only viable approach was to insert wait states into the process to give the refresh a guarenteed access. This slowed the CPU and also had complex logic. It even messed up timing loops like those used in I/O for baud rates and such.
The 6502 had a regular heart beat. The second half of the cycle was gaurenteed not to access memory. So the refersh sould be poot on the back side of the cycle. no special logic was needed. No wait states.
Of course eventually refresh controllers got better and that did allow the intels to work with dynamic memory. But the 6502 got their first.
2) Graphics.
Most graphics on the 8080/z-80 used I/O ports. Think CGI graphics. There were of course exceptions. But the reason for the lack of memory mapping was How was the video card supposed to access the main memory. It would have had to use wait states. lots of them. and would have halved the CPU rate.
Memory mapped graphics were of course natural for 6502. Wozniak went one better. He used that backside clock cycle to access the memory for the video output. Now wait you say, how can he use the backside clock cycle to video access if it's already in use for the refresh? That's the genius part. He used the video access as the refresh. The video was just incrementing over the entire row-addrress space in a very regular cycle. Refresh was assured and no circuits was needed.
the Dynamic ram and overall lower chip counts, simpler bus logic, video, refresh all meant smaller power supplies too. the expansion cards required less logic to decode the complex bus signals so the expansion cards on the apple were literally 1/4 the size of the ones on the s-100 bus that was standard in the 8080 world.
Some drink at the fountain of knowledge. Others just gargle.
Finally, I can post this without feeling like off-topic pimping... I've actually written and published a book (http://zxgoldenyears.com/) on the ZX Spectrum (full-colour, coffee table format) which I decided to do last year as a 'tribute' to the machine that defined my youth... The Spectrum was a fantastic machine for the time, even though it had weedy sound. It's a shame the Clive lost his way after the Spectrum+ and didn't add enough improvements to the 128k edition of the machine. I wonder if things would have been different if he'd just repackaged the American enhanced Timex TS2068 and brought it over. Still, even though I lot of my friends had Commodore 64s (http:c64goldenyears.com), I still preferred the speccy. Andrew
The ZX Spectrum Book 1982-199x
Living in Eastern Europe, we didn't have access to most western hardware/software.
When I was 7, my father built a 48K Spectrum from scratch using smuggled components (the Z80 processor, the EEPROMs), parts from other computers (the case and keyboard); he made the PCB by himself as well as copying and programming the ROMs. I still remember the hardware debugging sessions.
Later we managed to make the Interface II (I think that was its name) addon board and get a floppy drive to work. It was an East-German Robotron 5.25" drive; we were using 360Kb Bulgarian floppies (sorry, can't remember the brand).
It was a wonderful machine and it's the way I got into computers and learn assembler (Zeus ruled). At 12 I was busy cracking the games' copy protection to be able to copy them from tape to disks. Oh, btw, games had to be smuggled in too - one network used airline pilots, some of the few kind of people who could travel outside the country with ease. Don't get me started with books, it was hard even to photocopy one, as access to photocopiers was restricted.
Yes, the BBC Micro was definitely the mightiest of the 8 bits - without a doubt. The BASIC interpreter was definitely the best of the bunch (it had a built in assembler, too) and it had great support for hardware add-ons. We had Beebs at school and an Econet network (which IIRC was simply a matter of adding an extra chip to a socket in the machine). A friend and I wrote a MUD for the BBC and Econet, loosely modelled on Shades. It was an ungodly mix of BBC BASIC and 6502 assembly (and it was a surprise it ran at all), but it had client-server aspects as well as peer-to-peer aspects before either of us who wrote it had heard either of those terms. Fun times.
Oolite: Elite-like game. For Mac, Linux and Windows
My dad told me a story about a friend of his that purchased a Sinclair. He was so excited to have a computer. He hooked it up, turned it on, and thought he'd ask it a simple question. "Who was the first president of the United States?" "SYNTAX ERROR" What?! My dad explained to him that he had to write a program to tell the computer how to answer that question. "Well if I have to tell it what I already know, what's the point?"!
Yeah, he didn't get it. Actually, I imagine he's a lot more into computers these days. Finally got what he wanted, twenty years later.
"I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)
The Acorn Archimedes was meant to be a powerful innovative PC. But the "market" was aimed to IBM PCs and to Amigas The Amiga was a fantastic and cutting-edge machine when it came out. Don't compare it against the PC which (even at its launch) was conservative and based on pre-existing off-the-shelf technology.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
To highlight just one point where ZX BASIC is clearly superior than C64 BASIC:
How hard was it to write a program which let you input an arbitrary function (which used only built-in BASIC commands), and plot its graph on the screen? Well, you'd have to write your own expression parser, despite the fact that a parser for BASIC expression was already built into the computer!
OTOH, with the ZX Spectrum, the parsing could be done with a simple VAL. That is, input your formula into some string variable (say, f$), and then evaluate it at any time with VAL f$. The only BASIC I've seen to have that capability was ZX BASIC. I don't understand why, after all those were all interpreters, and thus had to have the parsing code in memory anyway. All that was missing was a way to call it on your strings.
The same text again in German, in case you didn't understand the English above -- Derselbe Text nochmal auf Deutsch, für den Fall, daß Du das Englisch oben nicht verstanden hast.
Worüber Du Dich beschwert hast, hat überhaupt nichts mit der BASIC-Implementierung des Spectrum zu tun. Es ist die Eingabemethode, mit der Du Probleme hattest.
Um nur einen Punkt hervorzuheben, in dem das ZX-BASIC dem C64-Basic überlegen war:
Wie schwierig war es, auf dem C64 ein Programm zu schreiben, das es erlaubte, eine beliebige Funktion einzugeben und dann ihren Graphen auf dem Bildschirm zu zeichnen? Nun, Du hättest einen eigenen Parser für Ausdrücke schreiben müssen, obwohl ein Parser für BASIC-Ausdrücke bereits in den Computer "eingebaut" war!
Andererseits konnte mit dem ZX Spectrum das Parsen mit einem einfachen VAL erledigt werden. Also, gib Deine Formel in eine Stringvariable (z.B. f$) ein, und werte sie jederzeit mit VAL f$ aus. Das einzige BASIC mit dieser Möglichkeit, das mit untergekommen ist, ist ZX-BASIC. Ich verstehe nicht, warum, denn letztlich waren sie alle Interpreter, und mussten also den Paser-Code ohnehin im Speicher haben. Alles, was fehlte, war eine Möglichkeit, ihn auf eigenen Strings auszuführen.
The Tao of math: The numbers you can count are not the real numbers.
I worked for Acorn from '79 to -'82, primarily programming (in assembler) the 6502 based BBC micro (and it's little brother the Electron), and from what I can recall the 6502 was - at same clock speed - faster than the Z80. The Z80's main advantage was being available in higher clock speeds, althogh the 6502 did I think get up to 4MHz in the end
While the Z80 had more registers, the 6502 had "page 0" addresses that allowed offset-only access to the first 256 bytes of RAM, which in a way made up for it. The 6502 instruction set was very minimal, and in fact was the inspiration for the ARM RISC processor designed by Acorn (originall ARM = Acorn RISC Machine, later re-acronymed as Advanced RISC machine).
The trick with getting performance out of the 6502 (or any of the early 8 bitters) was to execute as few instructions as possible - things like the BBC Basic and Acorns's ISO Pascal (I was 1/2 of the team that wrote the latter) were written in extremely hand optimized assember. You would never do JSR sub; RET - always JMP sub instead. Never do LD A, 0 (two bytes), always XOR A, A (one byte, same effect) instead. Never JMP addr, when you knew the state of the CPU flags and could do JRZ addr (jump relative on zero flag vs jump absolute) instead.
These are only a few examples, but it was surprising how much fucntionality you could fit into a tiny space by using efficient code like this. The Acorn ISO Pascal implementation fitted into 2 16KB EPROMS, yet packed in a full ISO compliant Pascal compiler (written in Pascal, and self-compiling to an internal pseudo-code - 16KB), the pseudo-code interpreter, run-time library (floating point, heap, I/O, etc), full screen editor (in 4KB of code) with regular expression search/replace, block move etc, and a command line interpreter.. The pseudo-code interpreter, etc, comprised the other 16KB and were all written in super-tight assembler... and the interpreter had to self-relocate itself out of EPROM into RAM to be able to run the compiler since the two 16K EPROMS (1 = compiler in pseudo-code, 2 = p-code interpreter, etc) occupied the same address space in the BBC micro.
Computing was generally a hell of a lot more fun back then, partly because it was new but also partly because of the challenge of getting stuff like this to run given the limitied CPU/memory resources. I hate to think how big a modern ISO Pascal implementation with all the extras (interpreter, library, screen editor, etc) would be - maybe a factor of 1000 times bigger (32MB vs 32K) or thereabouts?!
Those really were the good old days, although it's also exciting what's possible given the speed/memory available today.
There were 3 big barriers (at the time) to stop British machines taking off in the US:
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.