Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×

25th Anniversary of the Sinclair ZX Spectrum 310

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."
This discussion has been archived. No new comments can be posted.

25th Anniversary of the Sinclair ZX Spectrum

Comments Filter:
  • by Bananatree3 ( 872975 ) * on Monday April 23, 2007 @08:53AM (#18839061)
    All of us math students with Ti-89/92 partial with the ZX can emulate it right on the calculator [ticalc.org]. 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!)
  • by iainl ( 136759 ) on Monday April 23, 2007 @08:54AM (#18839071)
    Obviously. God, I wish I hadn't sqandered all my mod points on tedious factual argument elsewhere.

    Specifically, Jetpac, Knight Lore, 3D Deathchase and Quazatron along with better versions of Elite, Head Over Heels, Spindizzy and R-Type mean C64 LOSES.
  • by Zaiff Urgulbunger ( 591514 ) on Monday April 23, 2007 @09:09AM (#18839181)
    ...although it should be noted that Elite was better on the BBC Model-B; especially if you had analogue joysticks.
  • by GaryPatterson ( 852699 ) on Monday April 23, 2007 @09:15AM (#18839229)
    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.
  • by Alioth ( 221270 ) <no@spam> on Monday April 23, 2007 @09:48AM (#18839485) Journal
    No, I'm not joking. ZX BASIC was miles ahead of Commodore BASIC.

    The CPU itself is also unarguably faster. While the 6502 and 6510 generally can perform more instructions per cycle (the fastest 6502/6510 instructions complete in 3 clock cycles rather than the Z80's 4 clock cycles), this is more than made up for by the Z80 having more registers and 16-bit register pairing - meaning programs need far fewer instructions to write. Add to that the Spectrum being clocked 3.5 times faster than the C64, it makes a noticable difference.

    An example: to do 16 bit addition, the 6502 would need 20 cycles to do what the Z80 can do in a mere 11 cycles.
  • by Maury Markowitz ( 452832 ) on Monday April 23, 2007 @09:51AM (#18839507) Homepage
    "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
  • by Alioth ( 221270 ) <no@spam> on Monday April 23, 2007 @09:51AM (#18839521) Journal
    The "classic" Z80 (as used in the Spectrum) is still made and can be bought from most electronics supplies firms (only in CMOS versions these days, but the CMOS version is a drop-in replacement for the old NMOS version). Zilog also make several advanced variants designed for microcontrollers, including one with a built in Ethernet MAC (the eZ80). They are cheap and easy to use, and are popular because of this.
  • by Alioth ( 221270 ) <no@spam> on Monday April 23, 2007 @10:12AM (#18839767) Journal
    The Russians have done it.

    http://www.worldofspectrum.org/forums/showthread.p hp?t=15756 [worldofspectrum.org]
  • by Dogtanian ( 588974 ) on Monday April 23, 2007 @10:14AM (#18839795) Homepage
    Huh? The C64's MS BASIC implementation was crude and archaic; it originated on the PET. That lacked support for the most simple facilities; you had to use POKEs to get them. The Spectrum BASIC was not brilliant, but it was better than that.

    I think that your problem with Spectrum programming is due to Sinclair's "keyword" system. This first appeared on the ZX80 [wikipedia.org]. 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 [wikipedia.org] , 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.
  • by goombah99 ( 560566 ) on Monday April 23, 2007 @10:19AM (#18839881)
    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.

  • by Alioth ( 221270 ) <no@spam> on Monday April 23, 2007 @10:42AM (#18840141) Journal
    Two inaccuracies:
    The fastest 6502 instructions were not one cycle, but two cycles.
    The fastest Z80 instructions were four cycles.

    A very good 6502 programmer could write a program for the 1MHz 6502 in Commodore machines run as quickly as a run-of-the-mill Z80 programmer could on the Spectrum.

    While the slowest 6502 cycles instructions were around 7 clock cycles, and the slowest Z80 instructions (the index register instructions) were real dogs, one or two of them taking up to 20 cycles to complete, this was more than made up by register pairing. A Z80 could do a 16 bit add in 11 cycles, where the 6502 would take on the order of 20 (and use more memory).

    There was a lot more to the Z80 than a slight improvement over the 8080 - it had not a few but many more instructions (all the DD and ED prefixes), including the addition of extra registers such as the index registers. The Z80 also had more interrupt modes than the 8080, including the very useful IM 2 which meant you could trivially wrest interrupt control from the ROM program (which simply wouldn't be possible with an 8080 based machine). It not only had the block move instructions (LDIR and LDDR) but also block I/O transfer instructions and block search instructions which helped keep the memory footprint of many programs down.
  • by Alioth ( 221270 ) <no@spam> on Monday April 23, 2007 @10:49AM (#18840217) Journal
    I've never seen a computer that used I/O mapped screen memory on a Z80. Memory mapping was natural for the Z80 too. The Spectrum's framebuffer was memory mapped and started at address 0x4000. Memory mapped I/O was also common on Z80 based machines, but having a 16-bit I/O address space as well meant that you could save valuable memory address space for...well, memory.

    DRAM refresh was also not a problem for the Z80 - the Z80 actually had built in DRAM refresh circuitry - this is one reason it was so popular, because you didn't need a big pile of glue logic to do DRAM refresh because the Z80 provided a /RFSH pin which did this for you. No wait states were caused by the refresh.

    The Z80 is not an 8080, it merely has binary compatibility with the 8080. The chip is electronically quite different.

    Also, static RAM uses considerably less power than dynamic RAM. DRAM was cheaper, that's all.
  • by Dogtanian ( 588974 ) on Monday April 23, 2007 @10:51AM (#18840237) Homepage

    Yes now you mention it, you're right. But I still thought of them as sprites, I used to think of "sprite" clashing. What's the difference, in the end? Character placeholders are "virtual" 8x8 sprites, if you mess around in your code anyway, no?
    I think they mean hardware sprite support. "Sprites" on the Spectrum were all generated by "manual" software manipulation of pixels on the screen. The C64 and Atari 400/800/XL/XE included hardware support for sprites. For example, on the Atari 800, you could superimpose differently-coloured PMGs (hardware sprites) onto a monochromatic background; actually, PMGs were the height of the screen, so by changing their position on different scan lines, you could generate multiple sprites from one hardware PMG and not have to worry about messing up the background. (The ability to easily change palette/PMG position/character set/etc on multiple scan lines was one of those tricks that made the Atari powerful and able to overcome some of its limitations).
  • Re:Ich Bin German (Score:2, Informative)

    by maxwell demon ( 590494 ) on Monday April 23, 2007 @11:14AM (#18840571) Journal
    What you complained about is absolutely unrelated to the BASIC implementation of the Spectrum. It's the Spectrum's input method you had problems with.

    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.

  • by Vanders ( 110092 ) on Monday April 23, 2007 @11:53AM (#18841201) Homepage
    I never really understood why Commodore chose to use the (by then 'obsolete') 6502 for their computers

    Because Commodore owned MOS Technology, along with the designers and fabrication facilities to make all their own chips. They didn't need to pay anyone for the 6510's they were putting into all of their hardware; during the high-point of Commodore they litterly cost them a couple of cents each.

    The real question is how Commodore failed to improve on the basic 6502 design in any significant way. The short answer is of course "Bad management", but then this is Commodore we're talking about.
  • Speccys in the US (Score:3, Informative)

    by itsdapead ( 734413 ) on Monday April 23, 2007 @01:26PM (#18842471)

    The machine may well have done well in the US too, had Timex -- the company building the machine under license in the US -- wasn't already in financial trouble and about to fold.

    There were 3 big barriers (at the time) to stop British machines taking off in the US:

    1. The TV standard - NTSC has less scan lines than PAL, so while a US computer could easily be tweaked to output frequencies that a PAL TV could cope with, going the other way tended to mean losing a row or two of text or graphics from the screen - which broke any software with the screen size hard-coded in (which, in those days, was most of it).
    2. EM emission standards. At the time, I don't think the UK had got round to regulating this and a Speccy or BBC Micro had no EM shielding and would wipe out any FM radio within earshot, so cases etc. had to be redesigned to accommodate EM shielding.
    3. Price - despite the Pound varying between $1.40 and $2 over the years, there is a long and continuing (*cough* Microsoft *cough*) history of US firms setting UK prices by crossing out the $ sign to a £. In the UK, Spectrum vs. C64 argument tended to be a non-argument because the former was so cheap. This advantage tended to evaporate once the computers hit the US market. Once the price advantage was removed it became kinda obvious that the C64 was better built and had more sophisticated hardware than the Speccy. Likewise, the Apple ][ was fairly unaffordable in the UK and never had much market share - leaving an open niche for the BBC Micro that didn't exist in the US. Sadly, instead of consolidating this niche by producing a BBC with more memory and 80-column text (actually, the first would have enabled the latter) Acorn tried to compete with Sinclair by prodicing a BBC-with-all-the-good-features-removed and lost ground.
  • by Goatboy ( 22601 ) on Monday April 23, 2007 @02:28PM (#18843311)
    Actually the screen was divided into 3 interlaced sections - this could be seen quite clearly when a game loaded a title screen - and it made addressing it directly less than straightforward; iirc I used to use a lookup table to write to the screen.
  • by julesh ( 229690 ) on Monday April 23, 2007 @03:17PM (#18843997)
    A Z80 could do a 16 bit add in 11 cycles - it took the 6502 around 20 cycles to do the same thing. The fastest 6502 instructions took 3 clock cycles to complete, the fastest Z80 instructions took four.

    Many 6502 instructions completed in only 2 cycles, although I believe the decode phase of the instruction was executed in parallel with the register write phase of the previous instruction, so in some circumstances it may have taken 3 cycles to execute the same instruction.

    Re 16 bit add, and assuming one memory operand and other operand in A and X registers:

    CLC (2 cycles)
    ADC (3 cycles)
    TAY (2 cycles)
    TXA (2 cycles)
    ADC (3 cycles)

    12 cycles; results are in Y and A registers. Can be cut to 10 cycles if you know the carry flag will be clear on entry.

    In Z80, again with one reg and one mem, this time the mem is pointed to by HL (Z80 doesn't support direct addressing) and the reg value is in DE.

    LD BC, (HL) (10 cycles)
    ADD BC, DE (11 cycles)

    Result is in BC, total time to execute is 21 cycles. Can be cut to 11 cycles if both operands are in registers. Given that most of the time your values won't be in registers and that the 6502 runs at half the number of cycles per second as the Z80, it's pretty much neck and neck. In the case where you have an inner loop with data requirements that fit in your available 6 pairs of general purpose registers, though, the Z80's a clear winner.

    Machines like the BBC Micro got better performance than the Spectrum not from the 6502, but because they had more hardware support which meant the CPU didn't have to do everything.

    The main thing that made the BBC faster than the Spectrum, IMO, was its BASIC interpreter's support for integer variables.

The moon is made of green cheese. -- John Heywood

Working...