3 ms·
This is very cool! The IBM PC (and clone) hardware was progressing rapidly at the time: from an 8-bit 8088 @ 4.77Mhz with 64-256K RAM to much much faster 16-b
by kiwidrew 6y ago
This is very cool!
The IBM PC (and clone) hardware was progressing rapidly at the time: from an 8-bit 8088 @ 4.77Mhz with 64-256K RAM to much much faster 16-bit 80286/80386 systems @ 16Mhz+ with 2-4MB RAM in just a few short years.
As a consequence of this rapid progress, the software of the era didn't really exist for long enough to get heavily optimized and [with the exception of certain games] never pushed the PC/XT hardware to anywhere near its full capabilities.
- hakfoo 6y agoWhile the state of the art advanced fast, there was also a great deal of market spread. An early 386 would be several grand, but at the same time there were also floppy-only 8088 machines from about USD500 on up, and a significant installed base of XTs and clones. The software evolved far more slowly because of this-- you still had a lot of "It supports an 8088" or "it supports CGA" until the early 1990s.
- dragonwriter 6y agoSome nitpicks. (Mostly, “bitpicks”, I guess.) > from an 8-bit 8088 the 8088 was a 16-bit processor choked by pushing data through an 8-bit data bus. > 16-bit 80286/80386 systems Depending on exactly what period and systems you mean, this should probably be: 16-bit 8086/80286 (8086, of which the 8088 was the 8-bit-bus copy, was obviously earlier than 8088, but used later in PC clones) Or 16-/32-bit 80286/80386 (the 386 was a 32-bit processor.)
- ghaff 6y agoThe 286 was really a weird beast. It was a nice speed uptick from the 8088 but was still a 16-bit system in most respects. (As, truth be told, as was the 386 so long as it was still running DOS.)
- Koshkin 6y agoRe. i386, not exactly - there were numerous "DOS extenders" available, and some programs and games required it or included one on the install disk. DOOM, for example, used DOS/4G.
- anyfoo 6y agoThe 286 was almost entirely still a 16bit system. It had a 24bit address space for 16MB of memory, but then again the 8088 itself already had a 20bit address space (for 1MB), and both could only continuously address 64kB without segmentation. It was also famously called "braindead", mostly because switching into 286 Protected Mode to make use of its new features pretty much meant turning off 8088/8086 compatibility (unless you used some horrible tricks). When the 80386 came along with its real 32bit register set and address space, and significantly increased compatibility even in Protected Mode through vm86 and a few other additions, it really made a tremendous impact in comparison. And while DOS was still 16bit, it would now often run in memory managers (e.g. QEMM, EMM386...) as a vm86 task in Protected Mode, making some good use of some of the new 32bit features.
- hakfoo 6y agoI think you're being a bit harsh on the 286 with the benefit of hindsight. Remember that it hit the market in 1982. For it to have finished up in 1982, it likely started development before or just as the original IBM PC hit the market. At the time, there wasn't a huge installed base of can't-afford-to-break 8086 code, or much of a precedent for backwards compatibility on a wholesale platform change for PCs. They may well have figured anyone trying to build a 286 system would be targeting a fully protected-mode OS, and the non-protected mode support was more of a stopgap for compatibility and bootstrap purposes.
- anyfoo 6y agoThanks for pointing that out. I should clarify, I'm not calling it "brain-dead", that was famously Bill Gates (even noted so on the 286's Wikipedia page). I don't know or remember much about what the 286 was used for (besides IBM PS/2 systems), but I as well wouldn't be surprised if it was more targeted towards things like PBXs and industrial control, where Protected Mode without DOS compatibility made perfect sense...
- hakfoo 6y agoIt feels like there were a lot of missteps for the embedded market which got crushed beneath the juggernaut of PC-compatible x86 chips. The big one was the 80186/188-- basically an 8086/8088 with a few onboard timers and serial controllers and a few enhanced instructions, but the new goodies were not in a PC-compatible design. You do see them quite often in embedded devices. The more interesting one was the 80376-- a 386 which was protected-mode only, but also missed other key features so it wasn't just "take a 386 oS and change the bootloader."
- kiwidrew 6y agoYeah, "was the 8088 an 8-bit or a 16-bit processor?" doesn't have a straightforward answer... The main speedups from 8088 -> 80286 were moving from an 8-bit to a 16-bit external data bus and also the 80286's dedicated address generation unit which made calculating operand effective addresses much much faster. And the 80386, when running DOS programs in 16-bit real mode, was mostly just a glorified but very fast 80286. Especially the 80386DX with its 32-bit memory bus. It took a while for software like Desqview, EMM386, and Windows 3.1 (in 386 enhanced mode) to take advantage of the 80386's advanced features. The poor little 8088 had to squeeze both its instruction stream and the data stream through a tiny 8-bit bus, so it's really not that much different from say the Z80 (widely considered an 8-bit CPU) which nonetheless can do (limited) 16-bit operations on some of the internal registers.
- oso2k 6y agoAlso, the 286 was the last time we had truly synchronized, 0-wait state CPU-RAM combination with the 16MHz 286 and 16MHz RAM.
- dspillett 6y ago> Yeah, "was the 8088 an 8-bit or a 16-bit processor?" doesn't have a straightforward answer... "Bitness" is usually held to refer to the size of a processor's main register set, so the size of data units it is capable of processing internally most of the time, ignoring special cases. By that common definition the 8088 is definitely a 16-bit CPU. Especially as it was a modification of the 16-bit 8086 design and fully code compatible with it, the modification being that 8 bit data bus which slowed down talking to the outside world. Similarly the 386SX is a 32-bit unit. They took the original 386 and modified it in much the same way, giving it a 16-bit data bus to allow it to be used on much cheaper motherboard designs being the main defining change. The 386DX actually came first technically because it was essentially the original 386 lines renamed once the SX variants came along. The Z80 could perform a limited set of 16 bit operations such as partially 16-bit multiply (8-bit inputs to a 16-bit output) but was definitely an 8-bit unit overall as the majority of it's inwards were (and the majority of the 8088s innards were 16-bit, and the 386's (original/DX, or SX) were 32. If we count instruction outputs and not general purpose register size then the 6502 family would be 9-bit not 8 as most of its arithmetic instructions output 9 bits (the main 8, plus overflow in the flags register). The 486 would not be called 80-bit because of its floating point unit having 80-bit registers for intermediate operations, and early-ish Pentiums were still 32-bit when 64-bit chewing MMX instructions were added (in fact the very first Pentiums had 64-bit data busses so they could pump data into the on-die cache twice as fast to try keep up with the demands of the fast pipelined internals but where still considered 32-bit as said internals were). There are some CPU/GPU/other-PU designs where the distinction is rather muddy, but for Intel's main lines and those inheriting from them I'd say their bitness is pretty well defined.
- _the_inflator 6y ago>> As a consequence of this rapid progress I still remember all the peer group pressure we had due to hardware evolution: Bought a fast 486DX2? Well, I bought my Pentium 60. Got RAM? Well, I bought EDO-Ram. Memories... :D