Make a 16 bit OS support

From software point of view, it is fully 32 bit CPU. External data bus in an implementation detail. It is possible to port Haiku to 68k CPU in theory.

Yeah 68k is the exact same as the 386sx: 32 bit CPU with 16 bit data bus and 24 bit address bus. Other variants of the 68k and 386 (and 486 etc) have full width busses.

No one called the 386 a 16 bit CPU, but for some reason it happens all the time with the 68k.

Probably because 386SX was only a cut-down variant of the original fully 32-bit 386 (which was retroactively renamed to 386DX). I imagine if Intel had released a separate 32-bit CPU with 16-bit data bus and less than 32-bit address bus before releasing 386, it would also have been called 16/32-bit CPU.

Sure, going on 50 years ago. But it wasn’t 16 bit even in 1979.

I assume you are writing about 68000 which was released in 1979. 68000, as well as 68010 and 68012, has been consistently called 16-/32-bit processor by Motorola themselves and by NXP which now owns the IP of the 68k architecture.

https://datasheets.chipdb.org/Motorola/68000/mc68000.pdf

The MC68000 is the first implementation of the M68000 16-/32-bit processor architecture.

https://datasheets.chipdb.org/Motorola/68010/MC68010.pdf

Utilizing VLSI technology, the MC68010 is a fully implemented 16-bit microprocessor with 32-bit registers, a rich basic instruction set, and versatile addressing modes.

Yes, not 16 bit. People called it 16/32 bit. That’s nice. Great. I know. It’s still not 16 bit.

People? That’s what the chip manufacturer called it. I think they knew better than you or me, but I’m not going to die on that hill. It’s time to move on, as it’s getting off-topic.

It do not matter how manufacturer called it. 68k ISA has 32 bit addressing and 32 bit registers so it is definitely 32 bit architecture. 16 bit physical bus is an implementation detail and do not change how ISA is defined.

Similar thing happened with 16 bit Windows versions (1.0 - 3.11) that are often called as “DOS shell”, but is is also factually wrong. Starting from version 1.0, Windows had its own kernel, memory manager, executable file loader, cooperative task scheduler. So it can be called an actual OS, not just DOS application. DOS have a role of boot loader, file system driver in Windows, not kernel.

CPU bitness, nanometers etc. are often motivated by marketing reasons and not always factually correct.

Being called “16/32 bit” in some marketing over 40 years ago is not the same as calling it 16 bit. It is still often called 16 bit, incorrectly, today. 68k operates on 32 bit values stored in 32 bit registers, with 32 bit addressing for the 32 bit pointers, 32 bit program counter, stack pointer etc. It’s 32 bit.

The very first chip had a physical bus with 24 address bits and 16 data bits - but that was just the external bus. It used that bus to fetch 32 bit values into a 32 bit address space.

If we wanted to define architectures by the external bus then we’d have to do some pretty strange naming with today’s DDR memory.

Motorola’s decision to market it in some way as a 16/32 bit hybrid doesn’t change what it is or was. And “16 bit” and “16/32 bit” are not the same thing. I did not complain about “16/32 bit”, was already aware of it, and am not bothered by it.

1 Like

Oh, I see now what your point was. It’s certainly not a 16-bit processor and I never called it like that, hence the “pretend to” part in my first message.

I can speculate that the external bus width wasn’t the only reason that prevented Motorola from calling it a 32-bit CPU. Its ALU was 16-bit. So, while providing 32-bit registers to the programmer its internal parts were mostly not 32-bit, and that led to that hybrid architecture name.

Anyway, I think we’re on the same page. I’ll stop here before the mods extract it into a separate 68k topic :face_with_peeking_eye:

The z80 uses a 4 bit ALU, a 16 bit memory bus, and yet is an 8 bit CPU. These denominations are somewhat loosely defined, and there will always be a design that is “somewhere in between” (or if there isn’t, you could always invent one). It doesn’t really matter anyways. The main thing for this topic is that Haiku needs a lot of RAM compared to what’s typically available in 16 bit systems, and also probably some other features (like an mmu for virtual memory) not commonly found there. Indeed the original 68000 is problematic for that, with most of the issues fixed in the 68010 and the later generations.

See: BeBits - BeIASupportedHardware

In the part about cost-effective industrial and automotive control systems, you can take Haiku and modify it to your liking. But, it is Haiku-based. Not Haiku as we know it today. So, you’ll want a nice name for your project.

Sorry this post is a bit outdated I gave up on the idea but thank you for reading my post