Slashdot Mirror


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."

3 of 310 comments (clear)

  1. Your problem is caused by the "keyword" system by Dogtanian · · Score: 4, Informative
    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. 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).
  2. The Birthplace of the Megahertz wars by goombah99 · · Score: 4, Informative

    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.
    1. Re:The Birthplace of the Megahertz wars by Alioth · · Score: 4, Informative

      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.