Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Sinclair Zx Spectrum: absolutely better than Commodore 64 (2005) (itb.it)
91 points by grujicd on Oct 25, 2019 | hide | past | favorite | 74 comments


Watch it. Wars were started for less.

The Spectrum was my first ever computer, and the Commodore 64 my second.. Or rather, our computer, as it was shared by the adults in our family and their adult friends, who only let me use it with supervision so I wouldn't break anything. :)

My best memories from that era are the MAGAZINES.

The art, the wacky reviewers (some of them fictional characters), the slang, the in-jokes, the readers' letters, the tips, the maps, the type-in programs, the pull-out posters, previews, developer diaries..

It really was a great time to be growing up, and computers and video games were the best hobby, because there was never a period when there wasn't something NEW.

There was always something to be amazed at. Always something to look forward to. New software and new hardware were constantly coming out. All other interests seemed so dull and uneventful. Ooh, 16 colors! then ooh, 32! then omg, you won't believe this, 256!!

Entire genres being born right before your eyes. Sound channels were also increasing, music the kind you didn't hear anywhere else, speech synthesis to call your friends naughty words with, mice like they used in posh offices, game controllers like in that arcade your parents never let you stay long enough in, new operating systems... what's an operating system? Why do we need one? Computers run just fine without it..

I wouldn't pick any other childhood.

I fantasized about owning an Amiga but the C64 was good enough too. I still remember the very first game I played on it and its music:

https://www.youtube.com/watch?v=slBHx5_8fms


I had the exact same childhood. Somehow I feel that the limited resources of the computers back then made the games more fun and original. There was a lot of creativity. People would come up with new concepts all the time, you never knew what the next cool games would be like.

Another notable point is that not everybody had a computer (at least where I lived). Something like 10-20% of the kids were actively using their computer, so you could be part of a tribe.

It was also easy to get into programming. The OS presented itself as a basic interpreter, and any manual that you would buy with your computer would explain how to write simple programs.

It was definitely a particular era. I wonder if there is something equivalent today. What do 8-years old kids do nowadays? besides watching youtube videos.


There's quite a big community around Scratch, also with Python on Raspberry Pi (at least in the UK), but nothing on the scale of the 80s.


Sure, but it's hard to compare that to the home computer era, we were the first generation with a computer of our own, and grown-ups had literally no clue. The systems where very limited and the gaps had to be filled by the imagination. It was a magic time in history that won't return.


> It was a magic time in history that won't return.

That is such a true and sad realization..

I guess it applies to other fields of technology which have rapid progress at the start and there's a lot of room to explore and few visible boundaries.

Like seafaring. When people first invented boats they had literally the entire world made open to them, that they could previously only imagine.

Personal computers were like the invention of seafaring for the mind.

I guess the next frontier like that is space, where literally the entire universe is waiting to be discovered. :)


A few days ago our 8 years old was asking my wife how she got introduced to computers. She described how she transcribed with the help of her sister games listings from magazines to her C64. When she described how the process took a few days long of typing hex number he was completely astonished. My wife and I, both having the same background, looked at each other unable to express the marvel of succeeding in getting it to work, often times after numberless tries, to a child whose primary reference of a computer is an iPad. Later we discussed how grateful we were to having lived in such an era where the sheer naïveté allowed us to learn and experiment in ways now out of reach.


Typing in programs from magazines was one way to learn how to program. After a while you couldn't help but pick up some knowledge about the machine.


TRS-80 Model 1 and Byte magazine for me. Thanks for bringing back good memories.

Fantasized getting an Amiga, but a colleague recommended this new "Mac" computer that seems geared to designers. And so it went...


Oh man, the magazines. I did a lot of growing up following along with the Your Sinclair crew. If I'd been ten years older I might even have got more than half the jokes.


Yep, T'zer, Gordo Greatbelly... or were they Sinclair User? And Lloyd Mangram and the rest of the ZZAP! gang. For me they were all one big cool clique that felt like the friends I never had.

Since the decline of gaming magazines the Western game industry hasn't really been able to recapture that feel of .. glam.

> If I'd been ten years older I might even have got more than half the jokes.

Same, and they were my first exposure to naughty stuff too. I couldn't understand why my folks didn't want me looking at that Game Over ad or Martech's Vixen poster (with Corinne Russell) for too long, or why my older friends wanted to "borrow" those magazines so often hah


Hilarious story. I repaired both for a living at the time for Cafka (when they were still small), an Amsterdam computer store that did great business until one day the owner went to his accountant and upon returning shot himself. He never factored in paying taxes.

The C64 had pretty good hardware, but absolutely terrible software. The BASIC it shipped with was just good enough to load machine language from disk to run it, compared to let's say BBC Micro basic it didn't stand a chance, so it isn't all that surprising that the Spectrum ran rings around it when it came to basic (pun intended) functionality.

Both the Spectrum and the C64 were left in the dust by the BBC by the way, but it cost a large amount of money so that shouldn't be a surprise. It was also built like a tank and came with a ton of expansion options. Pity it wasn't a three way match :)


And yet the C64 (and VIC) far outsold the BBC Micro and the Spectrum.

And yes, BBC Basic was a very nice language, but it wasn't very fast for real-world tasks. Way back then I implemented the KERMIT file transfer protocol (and a VT100 terminal emulator) in BBC Basic and it was very slow. I re-wrote it in 6502 assembler to make it really usable. So for anything serious you needed to do on the BBC Micro, you needed to write it in assembler.

And don't get me started on that "reset" key that could be hit by accident at any time. Or the crap DFS disk file system.


Ah, but the assembler was built in, for other computers that was extra, and the 'reset' key (aka the 'break' key) was annoying but the BASIC interpreter had the 'old' command which would usually - but not always... - restore your code.

Still, to make that key a keyboard key right next to a function key wasn't the best UI decision, to put it mildly.

As for speed, it wasn't very fast in absolute terms, but it was very fast compared to other BASIC implementations, and pretty much bug free (only one bug was ever found in the code, which I think is absolutely amazing for a ROM that size).


The built-in assembler was really not suitable for anything other than writing some small snippets to be called from Basic - the KERMIT/VT100 implementation I wrote, which was quite full-feature, was written using a 3rd party disk-based assembler, which was much easier to work with.


I wrote my own, didn't have money for 3rd party stuff, already did a 6809 version together with a friend so it was relatively easy. Even so, the built in assembler was a bonus item and it worked pretty good to bootstrap new stuff including ROM images and proper assemblers.


Side note: ZX Spectrum was my first computer, and since then I have never ever experienced such a joy about working with new gadget.. I even thought it was some childhood effect, never to be repeated again. Can't describe in words, I think everyone here know what I mean.

Until I have made a Tesla test drive..


Totally get it - part of it was that you could fully control and understand that machine. It could do so much and you were able to fully master it!

Modern computers are largely black boxes full of software that you can't understand and end up using through experiences that sit on top of dozens inscrutable layers. Not the Spectrum - you had the full power and control always!


I could hardly understand it at that time. What a kid could do? I was playing games, tweaking strip dice vars to always assign points to myself, moving circles across the screen with Basic, and trying to peek poke that alien assembler universe, one byte at a time.


That's ok. But it was possible to do it if you wanted.


Mine as well and a similar feeling, 33 years later and still a programmer, never wanted to do or be anything else.


I grew up in the UK, and my first computer (shared with the family) was a ZX Spectrum.

The fact that we couldn't load games over hte christmas period, because the cassette player was broken, was the reason I started programming:

https://blog.steve.fi/how_i_started_programming.html


The jack socket on my 48k+ had a fault where you needed to hold the plug at a specific angle or it wouldn't make contact. You had to do that and remain motionless for the entire loading cycle. Something like 40% of the tapes I bought never actually loaded, and I was never sure if it was because I wasn't holding it right, or they were faulty out of the box.

And no, I never had the confidence at the time to take the lid off and see if I could fix it. It was just too precious to take the risk.


I couldn't afford to buy any games between the February when I got the Spectrum (1983) until my birthday the following November, so I learned a lot of programming in that time.


I know what you mean. Not about Tesla though...


First program I ever wrote on a Sinclair Spectrum was to spin a disk on the screen.

I was disappointed with the performance, so for the second program I precalculated the sin/cos values and stored them in an array (and learnt that all programming is an exercise in caching).

I was still disappointed with the performance, so the third program I wrote was a hex loader so I could poke machine code straight into it (had to run down to the local electronics store to pick up copy of the Z80 assembler manual). I then was happy with the speed.

That kickstarted a career in software development which I still derive immense enjoyment from.


Oh my! Your story is a very significant overlap with mine!

I started programming at an age of 11 years, when I did not even know the meaning of sin and cos.

The spinning 3D ring I had created was slow like yours, speeded up by caching sin and cos values like yours. The final one had entire frames precomputed in memory and cycled by hand-written machine code into the video memory space. That last one was when I was when 14 years of age.


The Zx has a Z80 3.5 MHz where the C64 has a 6510 1.0 MHz. With this difference it would take major limitations in the graphics/sound hw of the Zx to come off worse.

Edit: I had an Atari 6502 1.79 MHz and I wouldn't say it was clearly superior to the C64 because the C64 had more flexible sprites and sound. What I would say is that the Atari peeps I met were more hacker-like than the C64 folks who were more like users/gamers.


> major limitations in the graphics/sound hw of the Zx

That's exactly the case. The C64 had hardware sprites and scrolling, and one of the best sound chips of all time with the SID. The Spectrum had a memory-mapped bitmap display with low resolution color, and a CPU-controlled beeper. And the Spectrum's CPU advantage wasn't as much as the clock speeds suggest, because the 6502 could get more done per cycle, and the Spectrum's CPU had wait states when accessing the 16K block of RAM containing the graphics RAM.

I played a lot of Spectrum games as a child, but looking at it objectively, the C64 is a far superior machine. However, both systems were crippled by the single-button joystick standard of the time. The greatest feature of the NES was the B button.


I never really thought about the joystick button limitation at the time. The original Atari 800/400 had 4 joystick ports so someone could have used two ports 10-bits of input per player for a 2-player game. Each cardinal direction (NSWE was 1-bit with pairs being closed for diagonals).


Well if you look at the amazing conversion of Carrier Command on the Spectrum compared to the thing that was called carrier command that was released on the Commodore I don't see how anyone can wi h a straight face say the Commodore was a superior machine.

For a certain type of game to Commie could produce faster smoother games, but outside that niche (side scrolling plafomers/horizontal shmups) it barely even got to the start line vs the speccy.


The Spectrum had major limitations with the graphics, which I'll get to, but the 'sound' was nothing more than a single io pin on the Z80 wired to a piezo sounder (or the cassette 'line-out'). To make a tone you had to run an assembly program to toggle the io port pin on and off at the correct frequency. When you made a tone in basic your program paused until the tone was done.

The graphics were a 256x192 memory mapped 1bit buffer (6144 bytes). There was an additional 768 byte buffer that determined what the on and off color was for each 8x8 square of screen pixels. There were 8 possible colors, the byte used 3 bits to select the on color, 3 bits to select the off color, 1 bit to determine if the colors were 'bright' and 1 bit to determine if the colors would flash (alternate every second).

Many games would have a 'play area' that was monochrome to avoid the issues of so called color clash where differently colored sprites overlapped and fought over the color selection.

The further problem with the screen (and the major headache as soon as you wanted to do anything performant) was that the buffer was not laid out linearly.

The top line of the screen (y=0) was at ram address 0 (byte 16384 in memory, rom space went first) and spanned 32 bytes (256 pixels). The next 32 bytes were y=8 on screen. Then y=16 etc. Once you got to byte 256 you were back at y=1 on the screen. Next 32 bytes was y=9 etc. Line y=2 started at byte 512... If you're paying attention (and if you are just imagine what the code to blit sprites looked like) we've only covered the top third of the screen. At byte 2048 you get into the second third of the screen (y=64) and the pattern repeats.

I loved the Spectrum (had the 48k and +2, with MGT +D and Swift Disk disk interfaces) but damn that screen layout!


That's very interesting and unfortunate.

The Atari had a brilliant 'display list' method where you defined the screen as a series of raster lines and each raster line could be in a different graphics mode varying from 1-bit monochrome graphics, 2-bit 4-color, 4-bit 16-color and there were scan-line doubling versions of many modes that used the same memory but covered more vertical lines. The character modes similarly defined 8x8 sized blocks that varied in size with each character mode, or 4x8 in 4 color which the character bitmaps being read from modifiable RAM. The display list itself was defined in RAM so you could dynamically change the screen layout, even in sync with the horizontal flyback swapping color definitions between lines. The player-missle 'sprites' were crippled compared to the C64 but worked well enough with hardware collision detection, but was limited to 4 on any scanline as Ms. Pacman would show unwanted flicker of ghosts being alternately rendered.


Fairly late on (maybe 1989? 1990?) I came across a Spectrum music layout and composition app demo which did a fairly respectable score render and had 4-channel sound. I was gobsmacked.


That reminds me of when (around the same time) I discovered Composer 669 that on a i386 running in DOS flat (32-bit mode) could in real-time, mix 8 channels of sampled audio pitch shifted to each note.


It's a bit pointless to compare the Z80's performance to the 6502's by clock frequency alone because the Z80 did "less work" per clock cycle. For instance the Z80 did one memory access in 3 clock cycles, while the 6502 did a memory access in 1 clock cycle. The fastest Z80 instructions were 4 clock cycles, the fastest 6502 instructions 2. So just comparing by frequency a 1 MHz 6502 would be roughly equivalent to a 2 or 3 MHz Z80.

But then you have the completely different instruction sets and design philosophies too. To extract the most performance out of the 6502 you need a completely different approach to programming than on the Z80.

And in general, the C64's architecture is a lot more complex then the ZX Spectrums. The C64's architecture was very expensive but optimized for getting a lot of stuff changing on the screen with very few clock ticks. The ZX Spectrum's architecture was much more simple and rigid, but much cheaper to build (even from standard parts, as the many Eastern European ZX Spectrum clones proved).

Now, comparing the Amstrad CPC against the C64 would be much more interesting ;)


You can't compare directly compare clock rates like that, since the 6502 family takes 2-4x fewer cycles to perform the same operations.


The Z80 takes 3-6 clock cycles to execute a single instruction. The 6502 executed one instruction per clock cycle. So a 3.5MHz Z80 gives comparable performance to a 1MHz 6502.

The Z80 had more registers than the 6502, which is nice, but the 6502 instruction set included immediate values, which is super helpful.

Overall you can't argue about CPU performance without writing non-trivial programs which do the same thing in both Z80 and 6502 assembly and benchmarking them. The architectures are simply too dissimilar.


Fortunately people did do that at the time so we can see the results.

And the Spectrum had thousands of sophisticated 3d games running in real time and the C64... Didn't. It had the games it's sprite bitting hardware could support. People didn't even try the sophisticated software that was coming out on the Speccy.


...uhm... what were those "sophisticated 3D games" on the ZX Spectrum?

There were a lot of "isometric top-down camera" games with a static non-scrolling background, but those were hardly taxing, as the background was "slowly" rendered upfront and didn't need to update each frame.


And the C64 couldn't even manage them.

But then there is wire frame 3d games and the freescape games that ran far faster on the Speccy than the Commodore.

Then there is Carrier Command.


Wow, to this day people are still having clock speed size contests. It's not so simple. The Z80 has more cycles per instruction.


Everyone knows MSX were the truly superior computers at the time

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


Nah, I had a C64c and access to YIS503II MSX.

MSX is nowhere near a C64. It's just.. bland. Also ugly.


Oh yeah, I heard about those :) Nice one.


Title is factually correct. Article is superfluous.


The craziest c64 thing I've seen recently is this 48Khz audio player https://www.youtube.com/watch?v=UYAf_awh5XA, blog post here http://brokenbytes.blogspot.com/2018/03/a-48khz-digital-musi....

Its quite outstanding what you can do with the SID chip.


Except that pesky -used chewinggum- keyboard..


Just get a Spectrum+, a better keyboard than some modern laptops... :)


Apart from when you hit a key at just the wrong angle and it sticks.


Ha, didn't have that problem with my A4000 keyboard.


I love the Z80; it was my second (the first was a luggable IBM XT clone; it truly sucked compared to the home computers of that time) CPU experience beginning of the 80s and it was great. I couldn't imagine anything better and I have not found anything better. I do a lot of embedded asm coding now with modern CPUs and it is just not as nice to me as writing asm on a Z80 system is. Probably because I did so much of it at a young age; it is still fun and fluent. No manuals/internet needed on msx or spectrum, which is also fun; if anything tells me it is not only nostalgia, it is that; being able to write programs without needing to look everything up or download libraries. Not practical these days (mostly because everything has to be modular, so almost nothing ships with batteries included anymore), but still preferable in my opinion.


I'm reliving my youth by programming assembly which is running on a real Z80 processor, driven by an arduino mega.


I collected old (60s-80s) machines for many years when they were still free or very cheap. So I have all kinds of ZX spectrums and MSXs and others (very rare dual cpu Z80) to play around on reliving my youth. With Symbos [0] it is a lot of fun.

[0] http://www.symbos.de/


If you can find it, MicroMen is a really good watch you’ll all enjoy (this is just a link to the trailer) https://m.youtube.com/watch?v=fGiGrf2YyZE


We can see then, there are some advantages and disadvantages each one. Clearly, ZX Spectrum has a better included BASIC software; will allow you to make large strings, screen pausing automatically, and the Commodore 64 system software must take up too much RAM that only 38911 out of 64K is available for BASIC (or maybe it is due to bank switching; I don't know). But because they compare disks with tapes we cannot compare the loading speed properly, and do not know which is better.


For those who're interested in the 1980s "micro wars", BBC's Micro Men TV movie (2009) is a nice dramatized glimpse of it:

https://www.youtube.com/watch?v=XXBxV6-zamM

Though it does paint Clive Sinclair (the Steve Jobs of the UK) in a somewhat unflattering light.


Just from a usability standpoint, what is it about the ZX Spectrum that could possibly make up for the horrific rubber keyboard?


They released a Spectrum+ that has a much better keyboard.


It went from horrific to merely bad. That model also had a 30% unit failure rate.


When you were typing in BASIC, a single keypress gave you an entire word, and it wouldn't let you make a syntax error.


I wish I knew back then all the technic knowledge I have now.

I really had zero idea what was going on inside the machine and no-one to teach me.


I was lucky enough to be able to get a couple of books from the local library with coding examples. Usually these would be the usbourne books - which had BASIC listings for multiple home-computers at the time.

I did come across a couple of books that briefly documented assembly language stuff, and of course the (orange) manuals included with the computer contained a lot of good information.

Even now I have my Z80 books, they've moved house with me and even emigrated to a whole new country.


Do you mean the Usborne books? For some serious nostalgia, you can read them for free at https://usborne.com/browse-books/features/computer-and-codin....


Yup, thanks for the correction.


Can the Sinclair do nearly full-screen 16fps video and 8khz digital audio streamed and real time decompressed from a floppy? Demoscene shows how vastly more capable the C64 was. Look at the hi-res ultra-color art in this demo. (watch from beginning to see some of the art)

https://youtu.be/FTtKHLZTbtA?t=653


"..for BASIC"

and as everyone should know "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."


ZX Spectrum of my childhood. Some of greatest moments spent thanks to it. Determined my career.

And superior to C64 :), except turbo loader was just a thing we couldn't have properly.

Raspberry Pi could become something similar with a little love and support.


Silly ZX Spectrum people.

Of course breadbin is better! ;-)


The Commodore 64 is the best selling 8-bit computer in the world. Nobody really used the Spectrum outside the UK and eastern Europe.


It was sold as the Timex Sinclair in the USA.

I was planning on buying one, but ended up with a used VIC-20 instead.


Commodore USA had a trade in offer that you got 100$ off the cost of a C64 if you bought a new C64 and traded in the ZX81. You could pick up ZX81s for 50 bucks at the time. Meanwhile Commodore was flooded with ZX81s that they didn't know what to do with. Then the C128 came along and the needed Z80 chips. The rest is history.


The Timex Sinclair was a variation on the ZX81, not a Spectrum.


The Timex Sinclair 2068 was the US Spectrum variant:

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


Well, I had many Sinclair's:

ZX80

ZX81

Spectrum (original)

QL <- the best less known computer of all times

Spectrum+ (first one broke and I still had a lot of small programs for it)

while living in Italy (please read as not UK, not Eastern Europe) and there were at the time lots of (italian) users besides magazines, clubs and what not about them.

The C64 came a little later than the spectrum (a question of months, but those were fast moving times about computers) in 1982, and everyone that already had a computer in 1981 were loosely divided in two:

1) those that had a ZX81 before all went for the spectrum sometimes even pre-ordering it or having it bought in the UK

2) a number of the VIC-20 users (that frankly was worse - keyboard aside - than the ZX81) went for the spectrum

There was also a huge difference pricewise, the Spectrum was around 400,000 the C64 was 973,500 Lire (think of 200 Euro vs. 500 Euro).




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

Search: