mjg59
16 hours ago
Meanwhile, roughly contemporaneously, the Motorola 68000 was a CPU with 32-bit registers and a 16-bit bus (there was also the 68008 which had an 8-bit bus) - but in the 80s both the PC and 68000 devices were generally referred to as 16-bit. I guess the argument is that the 8088 was a cut down 8086 (an unambiguously 16-bit CPU) while the 68k family didn't ship a 32-bit bus until the 68020, but it's interesting how handwavy terminology is here (see also the "64 bit" Atari Jaguar)
andai
14 hours ago
In the Atari ST article from yesterday I read the 68000 was very pleasant to program for. I wonder how does it compare to 808x?
mjg59
9 hours ago
808x registers are all 16 bit, despite it having a 20 bit address space. That means you can't fit a full memory address in a single register, which means memory is split into 64K "segments" and you have a separate segment register that tells the CPU which segment you're referring to (segments can overlap, so this is distinct from banked memory). On its own that makes writing 808x code fucking miserable.
bcrl
2 hours ago
Any programming in real mode with compilers meant that the programmer had to annotate pointers with near, far and huge. Plus you had to know if the stack segment was the same as the data segment...... ARRRRGGGGHHH.
I am glad that time is in the distant past now, although apparently plenty of brain cells remain dedicated to the 8088.
stmw
6 hours ago
Indeed, this aspect of early x86 is something more people need to know about... It still has its remnants in low-level code. Of course, 6502 and other 8-bit processors had similar issues tryign to go beyond the 64K addressing limit, but only the x86 line both baked this into the architecture and continued to carry it forward for compatibility for many years.