Sinclair Zx Spectrum: absolutely better than Commodore 64 (2005)
alfonsomartone.itb.it
alfonsomartone.itb.it
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:
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.
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. :)
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
Fantasized getting an Amiga, but a colleague recommended this new "Mac" computer that seems geared to designers. And so it went...
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 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.
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).
Until I have made a Tesla test drive..
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!
The fact that we couldn't load games over hte christmas period, because the cassette player was broken, was the reason I started programming:
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 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.
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.
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.
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!
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.
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.
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 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.
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.
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.
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.
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 ;)
MSX is nowhere near a C64. It's just.. bland. Also ugly.
Its quite outstanding what you can do with the SID chip.
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.
I really had zero idea what was going on inside the machine and no-one to teach me.
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.
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."
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.
Of course breadbin is better! ;-)
I was planning on buying one, but ended up with a used VIC-20 instead.
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).