logoalt Hacker News

kstrauseryesterday at 4:25 PM7 repliesview on HN

A super minor nitpick: it’s jarring to see the Amiga referred to as 16 bit. It wasn’t described that way at the time: it was universally (that I saw anyway) called a 32 bit machine, and reasonably. It had a flat 32 bit address space (although the 68000 itself didn’t support all those address lines because what kind of supercomputer would need 4GB of RAM?). All the registers and operations were 32 bit. Some of the internal operations were implemented in 16 bits, but that was invisible to programmers. Newer models with definitively 32 bit CPUs like the 68060 were nearly 100% backward compatible with older models at the CPU instruction level, even if newer OSes weren’t backward compatible at the API level. In fact, the only program not forward compatible at the instruction level that I remember offhand was Microsoft’s AmigaBASIC. It used the top bits of pointers to store data because the 68000 would ignore them when accessing RAM due to that lack of address lines.

I just don’t see a way to justifiably call the Amiga a 16 bit machine. Although the A1000 had some 16 bit hardware paths, a maxed out A3000 definitely wasn’t 16 bit, and they were nearly completely compatible with each other minus newer features.

Amiga was full-on 32 bit machine. It’s weird to hear it called anything else.


Replies

amiga386yesterday at 8:55 PM

While the 68000's registers are 32-bit, the data bus is 16 bit, the A1000, A2000 and A500 that defined the range had 16-bit fetching chipsets, they literally had 24-bit address buses. None of this says "32-bit". It can't be overlooked.

Many games crashed on the 32-bit clean A3000, A1200, A600, A4000 because programmers used the upper byte of addresses for their IQ or whatever. (Similar issues with ARM2 to ARM3 in Acorns, even RISC OS itself can be categorized into '26-bit' and '32-bit clean' varieties due to Acorn thinking the memory space ignores the upper 6 bits so they can store what they like there)

The competition before the Amiga's launch solidly called itself "8-bit". The next generation called itself "16-bit" to hype itself. Later machines touted their "32-bit"ness, and then came the Nintendo 64 and PSX on MIPS processors...

All the hedges you made, "don't look here, look there" can be reversed to emphasize the 16-bitness!

Does this say something about you? Did you come to the Amiga later in its life, e.g. 1991-1993, when 68020s/030s/040s were an option? Or were you there in 1985 when it debuted?

show 2 replies
wk_endyesterday at 4:38 PM

This is a classic dispute when it comes to the 68000. I'm inclined to agree with your perspective, actually, but my impression is that it's highly contested.

Commodore and Atari marketed their 68K machines as 16/32-bit, which is I guess technically the most correct. And other 68000-based machines, like the Sega Mega Drive/Genesis, were marketed as 16-bit - it even says it right on top of the unit!

show 1 reply
marbletilesyesterday at 4:40 PM

I recall the A500 series as being thought of as 16-bit in the UK -- the 32-bit marketing started with the A1200, and devices based on it, like the CD32 (hence the name).

show 1 reply
pjmlpyesterday at 5:23 PM

As someone that was there, it was certainly referred to as 16 bit machine between my higschool and tiny demoscene city group.

As it followed up on our ZX Spectrum and Commodore 64 8 bit home computers.

teddyhyesterday at 8:26 PM

To someone who was around at the time, this sounds silly. Is the Commodore 64 then a 16-bit machine, because its address pointers are 16 bits? No, the Amiga and related 68000-based machines were generally considered to be 16-bit machines, and their predecessors were all considered to be 8-bit machines.

paozacyesterday at 4:47 PM

In the 80s it was fairly common to consider C64, Amstrad 464 and ZX Spectrum 8 bit, while Amiga and Atari ST 16 bit. In Italy we even had two separate video game magazines: Zzap! for 8 bit and The Games Machine for 16 bit.

mrandishyesterday at 6:43 PM

While I too am a huge fan of the legendary 68000, as well as the proud owner of many Amigas from 1985 onward, the marketing and media reports sometimes glossed over important technical details. The 68000 CPU, which all Amigas from 1985 to 1990 were designed around, does have 32-bit data and address registers but that doesn't mean it was purely a 32-bit architecture - even internally. Some important internal components like the ALU were only 16-bit. Additionally, the external data width was 16-bit, requiring two accesses to read or write a 32-bit register to RAM, which did have a meaningful performance impact since memory access is a critical bottleneck, especially in a CPU with no cache. As you note, at least this 'double pumping' was automatic and mostly hidden from programmers.

The 68000's address registers didn't have their upper 8 bits connected to external pins, limiting the directly addressable RAM to 16MB (24-bits). These external width compromises allowed the 68000 to fit in a 64 pin DIP package while the standard 68020, which did connect all 32 data and address lines, came in a 114 pin PGA package. Large packages with more pins were a significant cost while double-pumping data accesses and a 16MB limit on addressable RAM weren't significant issues for most 1980s desktop computers - especially since the 68000's elegantly orthogonal instruction set was so performant in other ways.

Thus, many of us more technically literate fans broadly thought of the 68000 as having 32-bits internally but 16-bit data / 24-bit address width externally. However, that was incorrect because the arithmetic logic unit (ALU) and two arithmetic units were also 16-bit only, generally requiring at least twice as many cycles even for purely internal 32-bit math operations, whereas the 68020 and later CPUs didn't. That's why the 68000 is probably best described as "a hybrid 16/32 bit internal architecture with 16-bit external data width and 24-bit addressing."

It gets even more confusing because some later Amiga models like the A1200 (1992) didn't have a standard 68020 but instead a lower cost version, the 68EC020, which also didn't have the top 8 address lines connected and came in a smaller 100 pin QFP package. So technically, it had the same addressable RAM limit as the 68000, although it had full 32-bit internal and external data widths, ALU, a 256 byte cache and many other other instruction set and clock speed improvements common to later 680x0 CPUs. The way a lot of us thought of the 68000's 16/32 architecture as being limited just in the memory addressing was really a more appropriate description of the difference between a full 68020 and 68EC020. The 68000's ALU being 16-bit is the inarguable smoking gun that makes it incorrect to think "it's really a 32-bit CPU internally" as I used to.

However, that should take nothing away from just how incredible the 68000 was. My first computer had the 68000's little brother, the 6809, which was generally the fastest 8-bit CPU clock-for-clock due to being an 8/16 bit design in much same way the 68000 was 16/32 bit. While the 6809 was incredibly fast, when I got a 68000-based A1000 in 1985 and programmed it in assembly language, it blew my mind how incredibly fast it was. Then in 1988 when I added an A2620 accelerator card to my A2000, it's full 68020 with 32-bit internals and direct 32-bit read/write to 4MB of RAM was like going from a Ferrari to a Lear Jet. Despite how the 68000 was confusingly marketed and inaccurately described by some media, it was truly a leap forward, but the reality is the 68020 was really the first true 32-bit CPU in the line.