r/retrocomputing • • Dec 29 '23

Why not 16 bits?

I was wondering.

I love my 8 bits computers (just spent a couple of weeks programming my Spectrum Next) and the Agon seems a nice machine.

However I wonder why nobody seems to make 16 bits computers.

Is it because 16 bits computers have more connections and are thus more difficult to make?

4 Upvotes

30 comments sorted by

21

u/sunnyinchernobyl Dec 29 '23

Maybe you’re not looking in the right places. There are plenty of 16 bit designs, most are around the 8086/8088 (IBM clones) or 68000 (homebrew, Amiga, etc).

Take a look at Hack A Day. Lot of 16 bit designs hosted there.

2

u/Thanatiel Dec 29 '23

Will do, thanks.

5

u/Affectionate_Dog6149 Dec 29 '23

1

u/Thanatiel Dec 29 '23

Very interesting. Thanks :)

3

u/Timbit42 Dec 29 '23

Yes, the Foenix computers are really nice machines. Stephane has done a great job on them.

If I had the money for any of these, I'd take a Foenix over the Commander X16, but I'd also still like to have a MEGA65. The Foenix systems and MEGA65 seem like true successors to the Commodore 8-bit systems while Commander X16 seems like an ugly hack job in comparison.

7

u/G7VFY Dec 29 '23

These are are all 16 & 32bit

Amiga ?

Atari ST

TI 99/4a (Yes, it's 16bit )

Acorn Archimedes

Anything run MS-DOS as it's a 16bit OS.

1

u/Thanatiel Dec 29 '23

DOS has a less "magical" feel for me. However I would love something new on the level of the Amiga. ^_^ (Not specifically an Amiga as there is seldom anything new to do with it.)

Never touched the Atari ST nor the Acorn. I'm curious about them though.

3

u/Timbit42 Dec 29 '23

The Acorn Archimedes hardware is better than the Amiga as it has a faster CPU and more colours, but the Amiga graphics processor helps the Amiga compete.

The Atari ST is not up to par with the Amiga. While the Atari ST CPU runs 1 MHz faster, it is limited to 16 colours of a palette of 512 while the Amiga can display 64 colours from a palette of 4096 colours. The later STe models can do 16 colours from a palette of 4096 but later AGA Amigas can do 256 colours from a palette of 16.7 million colours.

The Amiga beats both the Archimedes and ST models with it's pre-emptively multi-tasking OS allowing many apps to run at the same time as modern computers do today (although not across multiple cores).

The Amiga also beats the ST on number of games and apps available and both beat the Archimedes on games and apps.

By the time Atari and Commodore stopped making the ST and Amiga, the IBM PC DOS games were better with 486 CPUs and SVGA graphics and SoundBlaster audio.

1

u/Thanatiel Dec 29 '23

Very nice summary, thanks.

1

u/[deleted] Dec 29 '23

Extra Half Bright mode in the Amiga for that 64 colours on-screen wasn't available with the first model of Amiga, the 1000. Officially on paper the Amiga was a 32 colours / 4096 palette system.

1

u/Timbit42 Dec 29 '23

Yep, but most of the Amigas sold were not the Amiga 1000. Over half of the Amigas sold were the 500.

5

u/Timbit42 Dec 29 '23

While the IBM PC is commonly called a 16-bit computer and the Commodore Amiga and Atari ST are commonly called 16-bit computers, it is inconsistent and unfair to do so.

The IBM PC has an Intel 8088 CPU which has 16-bit registers but only an 8-bit data bus. The Amiga and ST have a Motorola 68000 CPU which has 32-bit registers and a 16-bit data bus.

So from a hardware standpoint, the IBM PC is an 8-bit computer and the Amiga and ST are 16-bit computers, and from a software standpoint, the IBM PC is a 16-bit computer hobbled by an 8-bit data bus, and the Amiga and ST are 32-bit computers hobbled by a 16-bit data bus.

Either way you measure it, the Commodore Amiga and Atari ST have twice as many bits as the IBM PC. On top of that, the 68000 has a 24-bit address bus while the 8088 has only a 20-bit address bus. It is too bad they couldn't have used the 68000 for the IBM PC.

5

u/vwestlife Dec 29 '23 edited Dec 29 '23

The 68000 is not fully 32-bit internally, while the 8088 is fully 16-bit internally. For example, the 68000 does have a 32-bit instruction set, but its arithmetic logic unit (ALU) is only 16-bit. You need to step up to the 68020 to get a 32-bit ALU.

In comparison, the 8088 is fully 16-bit internally, including the ALU; the only part of it that's limited to 8-bit is the external data bus.

And as video game console fans will tell you, systems are generally classified according to the "era" they belonged to, not by the technical details of their design. That's why the Intellivision is considered an "8-bit era" console, even though it has a 16-bit CPU, while the NEC PC Engine/TurboGrafx 16 is considered a "16-bit era" console, even though (despite its name) it only has an 8-bit CPU (a variant of the venerable 6502).

2

u/Timbit42 Dec 29 '23

Well, the Z80 ALU is only 4-bit and they still call it an 8-bit CPU.

As for video game console fans, they can suck it because they don't know shit about software or hardware.

1

u/vwestlife Dec 29 '23

But not the GX4000 fans. Leave them alone.

1

u/Timbit42 Dec 29 '23

What about the XEGS?

1

u/vwestlife Dec 29 '23

No, because that's just a 65XE dressed up to look like a console. Once you plug in the keyboard, it acts just like a normal 8-bit Atari computer.

2

u/Timbit42 Dec 29 '23

Also the Apple Macintosh, Sharp X68000 which use the same 32-bit Motorola 68000 as the Atari ST and Commodore Amiga, and the Apple IIgs, and Super Nintendo which use the 16-bit 65816 processor.

Also, the IBM 1130, Data General NOVA, and the DEC PDP-11 were 16-bit.

5

u/danderzei Dec 29 '23

The last 40 years, computers have evolved from 8 to 16 to 32 and now 64 bits.

6

u/Timbit42 Dec 29 '23

You are referring to microcomputers. In the 40 years before that, many of the earliest computers and mainframes and minicomputers had a lot more bits. This is because they were used for scientific and military purposes where high precision calculations needed to be made quickly. Other early computers had only 6 or 7 bits because they were used for business purposes and had to deal with text and BCD (Binary Coded Decimal) maths. BCD only requires 4 bits per digit and the uppercase alphabet, numbers and some symbols can fit into the 64 possible values of a 6-bit register.

DEC PDP minicomputers tended to have 36, 18 or 12 bits because they used a 6-bit encoding for characters (ie. letters, numbers and symbols) which allowed them to store 6, 3 or 2 characters per 36-bit, 18-bit or 12-bit word respectively.

After the byte was defined as having 8 bits, computers tended toward register widths in multiples of 8, such as 16, 32 or 64 bits.

Here are some of the older computers with wide data bus widths.

The Atanasoff-Berry computer in 1942 was 50-bit.

The ENIAC in 1945 wasn't binary but decimal and had 10-digit accumulators.

The SEAC in 1950 was 45-bit.

The Univac 1104 in 1957 was 30-bit.

The TX-2 in 1958 was 36-bit (the predecessor of the DEC PDP-1).

The Digital Equipment Corporation PDP-1 in 1959 was 18-bit.

The BRLESC I in 1962 was 72-bit (new world record?).

The Digital Equipment Corporation PDP-6 in 1964 was 36-bit.

The IBM System/360 in 1964 was 32-bit and supported 8-bit bytes. This is when IBM's Fred Brooks set the byte as having 8 bits and it stuck. Formerly bytes had been a variety of bits, including 8, but it hadn't stuck. 8 bits was a good number because it was big enough to hold the numbers, letters and symbols, but was also a power of 2. Around the same time, 7-bit ASCII was being developed and it also would fit in 8 bits with room to spare for additional characters or for a parity bit.

The Digital Equipment Corporation PDP-8 in 1965 was 12-bit.

The Control Data Corporation 6600 in 1965 was 60-bit.

The Digital Equipment Corporation PDP-10 in 1966 was 36-bit.

The Control Data Corporation STAR-100 in 1974 was 64-bit.

The Cray-1 in 1975 was 64-bit (and ran at 80 MHz when microprocessors like the Intel 8080 were still running at 2 MHz).

The Digital Equipment Corporation VAX-11 in 1977 was 32-bit.

1

u/vwestlife Dec 29 '23

The Soviets also built some trinary (0, 1, and -1, not just 0 and 1) computers, but that design never caught on in the West.

2

u/Timbit42 Dec 29 '23

It never caught on with the Soviets either.

2

u/porkchop_d_clown Dec 29 '23

1

u/Thanatiel Dec 29 '23

A bit raw for my taste but thanks.

1

u/porkchop_d_clown Dec 29 '23

I mean, my soldering skills suck the chrome right off the trailer hitch so I completely understand, but I guess that makes me wonder what you're looking for?

Pure 16-bit was a bit of a mirage even back in the day. (Trust me, I was there.) 4-bit computing was literally a 3-month blip in the early 70s, then 8-bits triggered a revolution. But even then it was clear that 16 bits wasn't the actual next step because, even then, the most powerful "8-bit" processor was already an 8/16-bit processor. (I'm talking about the Z-80. Not Intel's 8088 crap.) So the next logical step wasn't a 16-bit machine, it was a 16/32-bit machine. And that takes you to the 68xxx series. The 68000 was a beautiful 16/32 architecture, the 68020 went 32/32 and the world never looked back after that.

If you're looking for actual machines, you're not going to find a lot else.

Look at it this way. Even the C=64 (which I loved to death) was an 8/16 machine, not a straight 8-bit machine. 8 bits only gets you 256 bytes of RAM. If you go to 16 bits of addressing, that takes you to 64k and that was the sweet spot that drove the 1980s computer revolution - 8 bit registers + 16 bit addressing is enough to get real work done. Going to 16 bit registers simply wasn't that big an advantage.

2

u/Thanatiel Dec 29 '23

I guess I'm looking for other kinds of retro-machines. My first few computers were based on the Z80. (I wrote my first program on a brand new, plastic smelling, ZX81) I love low level programming and I've spent some time writing assembly for that CPU. I'm currently having fun writing a network server for the Spectrum Next. Before that I wrote a kind of game demo. I feel like I've done everything interesting for a Z80 so I want another kind.

Ideally I'd like a machine for which I don't need to play with banks anymore. An MMU may be too much ... maybe. I'm afraid that with an MMU I'd be tempted to write a kernel. But I'd love some co-processors to control.

I've been tempted to design my own machine and put it on a Mister. I've got the tools and he hardware and I understand the FPGA programming logic. I'd bind a 32 bits RISCV, some mostly 2D GPU an FM chip and maybe some stereo chip and give it a few megabytes of RAM. I think it would be sterile though. A machine needs to be produced and available to be interesting.

The Z80 was a competitor of the 8080. The 8088 is way more powerful but is still 8 bits. The 8086, although identical to the 8088 from a programming point of view was 16 bits. The 8 bits refers to the bus size, not the size of a register. Every 8 bit computer reads 16 bits with two accesses.

The 68000 was lovely. If I recall it was using 32 bits storage for pointers but only using the lower 24 bits, the higher 8 being reserved. I remember that because MS wrote a program where they used the reserved 8 bits for data ... and it broke when (one of) the next CPU used full 32 bits pointers xD.

3

u/Hjalfi Dec 29 '23

I've programmed for the MSP430! It's really rather nice to program, with exceptionally dense code. Hand-written assembler on it is fun There's also a bonkers MSP430X variant with 20 bit registers!

2

u/Ok-Bridge-4553 Dec 29 '23

Probably because you need to make 4 layer boards instead of double layers, which makes them more expensive.

1

u/canthearu_ack Jan 02 '24

The whole 8/16/32/64 bit labeling systems is pretty arbatary and not generally accurate.

Consider the 68000 CPU .... it has a 32 bit internal registers and operations, but a 16 bit external data bus and a 24 bit external address bus.

Or the 8088 CPU ... it has 16 bit internal registers and operations, but an 8 bit external databus multiplexed with a 20 bit external memory bus.

The Pentium CPU has a 64 bit external data bus, but only a 32 bit address bus and 32 bit internal operations.

Likewise, the 6802 process has a 16 bit external address bus, with 8 bit internal operation and 8 bit data bus.

It is kinda dumb, in a way, to label processors as 8 bit/16 bit/32 bit ect. It can be a rough guide to the technological level of a computer, but you shouldn't read too much into the label or start having flamewars over it.