4 ms·
my bad lol ... was thinking 8088, Z80
by RockyMcNuts 11y ago
my bad lol ... was thinking 8088, Z80
- JoeAltmaier 11y agoHey, the 80186 was 8-bit, so maybe you were thinking of that?
- protomyth 11y agoThe 80186 was also a 16-bit chip with a 20-bit address (like the 8086).
- JoeAltmaier 11y ago8-bit bus interface?
- protomyth 11y agoThe 8088, 80188 had 8-bit buses, but I haven't met anyone who claimed that made them 8-bit chips. Neither really affected programmers and it was a maneuver to make the chip a bit cheaper. The 68008 was the same way, and used in some Sinclair designs.
- JoeAltmaier 11y agoRight, that makes sense. Programmatically they were still 16-bit. But as an OS engineer, the 8-bit bus was very much evident when writing drivers, moving data, initializing memory etc.
- protomyth 11y agoHow would the code be different between the 8088 and 8086? The execution unit and internal bus are exactly the same between the chips. The only thing I can think of is that it took twice as long to write data out, but it was the exact same instructions. The prefetch queues were different sizes also.
- JoeAltmaier 11y agoDriver writers care about latency, program DMA devices, set up memory factors (RAS/CAS, bank addresses etc) and bus width is visible there. Also atomic operations were done with bus-lock - a 16-bit update took two bus cycles! So the high and low parts could be non-atomically updated.
- protomyth 11y agoThanks. I wonder what Microsoft did for MS-DOS? I remember a few clones with 86's instead of 88's.
- JoeAltmaier 11y agoDOS isn't an OS at all. The BIOS did the hardware-specific stuff, including the floppy driver(!) DOS was almost pure software services. For cases where DOS had used an instruction that would change, Intel rolled over and crippled that instruction in 16-bit machines (at least for a while) so it would behave the same.
- protomyth 11y agoYep, the Z80 was an 8-bit CPU, but the 8088 was regarded as a 16-bit CPU. It did have a 8-bit external data bus (the 8086 had 16-bit) to make it cheaper, but the register sizes and instructions were the same as the 8086.
- dTal 11y agoIt's not quite as straightforward as that with the Z80 either - it has 16 bit addressing, a few 16-bit registers (which can also be treated as two separate 8-bit registers), and instructions for manipulating 16-bit numbers. The 16-bit operations feel a bit like second-class citizens, which I suppose is why it's still regarded as an 8-bit CPU, but they are there.