The Intel 386 SX CPU quickly replaced the 286 CPU in the early 1990s. For a time, it was a very popular CPU, especially for people who were wanting to run Microsoft Windows. Yet the two CPUs run at nearly identical speed. So what was the big deal? The 286 vs 386SX argument could be confusing in 1991, and it’s not much clearer today.
Here at OSAlert we pride ourselves in pointing you to the most relevant, up-to-date buying advice available on the internet.
> That meant no multitasking DOS programs, and no virtual memory.
IIRC the i80286 does have virtual memory. Limited to 1 gig of space and must swap full processes. Only 386+ got swap pages to virtual memory.
As far as I can tell, standard mode supported swapping at the 64Kb segment boundary as opposed to the enhanced mode paging at a 4Kb page boundary. Swapping entire processes in Windows is “less than ideal” to put it mildly, because the cooperative multitasking model and broadcast messages mean that the core message loop of Windows programs can be invoked far more often than the user might expect. This was also a huge advantage for Windows 3.x over OS/2 1.x, because it can swap out DOS programs without swapping out DOS – OS/2 kept all of DOS resident which meant the user needed to specify how much RAM to devote to DOS since it was permanently allocated.
The 286 had a stab at protected mode but it was incompatible with the 386 protected mode that windows 3 was primarily designed for. The 286 wasn’t really up to the task even though there were hacks that kind of work. Isolation was lacking and it lacked a v86 mode for safely running dos programs concurrently with each other and windows programs. Due to something of an intel oversight the 286 was incapable of exiting protected mode once entered. IBM worked around this flaw by creating mainboard circuitry to fire the reboot pin on the CPU while keeping memory, bus, and peripheral state intact, the BIOS would then get control and continue execution back in real mode. This technically worked but was clumsy and made mode switching extremely slow.
The 386 was the CPU that set us on the path to modern multitasking operating systems (at least as it relates to x86).
I mean there is a dedicated Windows 286. But yeah for the most part if you want to play a large chunk of software, it requires a 386 minimum. This is a hard lesson one learns when he sees an awesome looking Atari PC3 and buys it. Messes with the 286 and gets some old DOS goodness to work… then installs the enhancements to Ultima V which because of how the configuration program that comes with that, will not work as it requires EMM386.SYS! So then one goes onto a hunt for one of those mythical 286 -> 386 CPU upgrades…
“So then one goes onto a hunt for one of those mythical 286 -> 386 CPU upgrades…”
Friend of mine at high school had an MCA PS/2 50Z that was a 286 originally but he upgraded it with a 386.
No sound card in it but we had much fun writing asm PCM playback routines for the internal speaker for our 8514/A demo routines.
It was mainly due to a DOS limit, not the processor itself that was well capable of running several “modern” OSes including unices (Xenix, Coherent), DR concurrent DOS and probably others I forgot (thanks to the built-in MMU, that was lacking on other chips from the era).
Yes!, we had (and I still have) an IBM PC/AT 286 with an additional 512KB expansion memory card (making a total of 1MB), running an SCO Xenix 286 and capable of attending up to 5 Televideo 905 RS232 terminals using a Computone Intelliport card.
What a days!
@Mikaku
If truth be told most businesses don’t need much more than the modern equivalent of this. It’s just Intel and Microsoft want to sell more IC’s and cloud nonsense.
“ Here at OSAlert we pride ourselves in pointing you to the most relevant, up-to-date buying advice available on the internet.”
Just spat out my tea laughing, thanks for that
I could never play Sensible Soccer on my 286, due to the lack of extended memory – I only needed 8k more. Later in life I tried to get some, only to discover the motherboard didn’t actually had any memory slots for expansion.
Don’t forget about EMM386.EXE. Putting drivers in upper memory and doing EMS emulation was much harder on a 286.
This is not exactly straight forwards. EMM386.EXE was emulating a cards. There were such things as expanded memory cards for 286 systems.
https://retrocmp.de/hardware/rampage-286/rampage286.htm
Putting drivers in upper memory hand having extended memory system was physical hardware on the 286. Doing EMM386 like stuff in software was not really possible on a 286 due to clockspeed and the fact the 286 addressable memory was very limited. Yes the limited addressable memory also caused the 386sx issues.
Yes as Sodki said lot of 286 systems did not have memory slots for this expand because lot of there where at max memory so expand on the 286 was meant to go in the ISA slot. Of course the ISA card cost a lot. When the 386 came along it was cheaper to go 386 than a 286 with expanded memory card. EMM386 emulation means you could change the allocation around on the fly as where the card had you two memory types locked to what they where.
Yes the CXL idea today of having system ram over PCIe 5.0 is really a modern version of the old expanded memory cards of the 286 time frame.
I remember my first 16Mhz (!) 386SX machine, an IBM PS/2 Model 55, with 2MB (!!) of RAM and 30MB disk (!!!).
It was an amazing compared to my previous 8Mhz (w/ tube) 386 machine.
Heck, I even managed to run OS2 1.1 (?) on it!
Back in the day you could buy new processors with adapter sockets. It’s so long ago I cannot remember when these were produced or what sockets and processors they supported.
Today you can have a perfectly functional machine but nobody makes even plug compatible updated processors to support limited additional feature sets. Then of course you’re crippled by laptop IHV’s not updating firmware or removing whitelisting.
CPU sockets (and BIOS/EUFI) should be universal and fully backward/forward compatible like PCIE. Updating an old PC with a (more) modern CPU (AMD, ARM, Intel) should be five minutes work. Insert CPU into socket. Reboot.
How do you bring more PCIe lanes to the CPU if the socket doesn’t support it ?
@Brisvegas
Yup pretty much. But for Intel abusing its position I suspect more than one IHV would step up and supply a CPU to fit the socket and the laptop vendor wouldn’t be so intransigent about BIOS support
I will at some point when I have the time file a complaint with the relevant MP/minister/regulators. Brexit has caused other problems but there’s nothing stopping a friendly EU member making an issue of it with the Commission. I suspect plenty of Americans are fed up with things too.
@Kochise
The number of PCIE lanes doesn’t make much difference in practice. It’s more about supporting critical feature sets and lower TDP and core count than PCIE. No you won’t get the full theoretical performance but that’s not the problem you’re trying to solve it’s a bonus. If something is three times as fast not four times as fast I doubt many will complain. I also doubt anyone would complain if feature sets Intel decided to leave out for some variants because of “market differentiation” were added back in especially with Microsoft getting funny.
https://docs.microsoft.com/en-au/archive/blogs/larryosterman/faster-syscall-trap-redux
Sorry that write up has mistakes. Windows 3.0 did not have multi tasking of dos application on a 286 but cut back 3.1 did of course most people did not notice by then. The problem here was Microsoft had to find a bug in a processor to-do the change from protected mode to real mode and back again in a decent time frame this was not in the 286 manual.
As far as I remember, that main difference between 286 and 386 lines, were:
1. 32 bit registers, while all 286 registers were 16 bit, also address bus size has changed from 24bit to full 32bit.
2. Addressing modes – 386 has “real” MMU with page address translation, access exceptions and so on, this changed
3. Additional protected modes – making it possible to run not just “real” mode and segmented protected mode, but virtual real and 32bit protected mode as well.
Virtual real mode made it possible to use EMS memory managers which acted as hypervisors and were a lot faster than 286 era XMS which actually involved switching to protected mode and copying data from regions inaccessible in real mode and than switching back.
“The main reason the SX existed was Microsoft Windows. Windows would run on a 286, but not in 386 enhanced mode. That meant no multitasking DOS programs, and no virtual memory. Windows ran better on a 386DX or a 486 system, but those were expensive in the very early 1990s”
What is this noise?
Also seems to forget 386 was a new architecture, and had instructions and modes 286 did not.
The 386SX conceptually existed ever since the first 386 engineering sample. The earliest 386s were tested with modified 16-bit 286 motherboards. Once Intel could produce enough 386s to meet demand, putting out a lower performance model with a 16=bit interface was an obvious follow-on.
The 386SX-20 was $200 compared to a 286-20 at $80. To take advantage of DOS multitasking, it was necessary to buy several extra megabytes of RAM. The price jump to an even better performing 386 system was comparatively small. Until the AMD 386SX and hyper efficient 386SLC came to market, the 386SX was a chip that was too expensive for what it offered.
I remember these chips.
There were several manufacturers making 20 and 25 Mhz 286 chips as second-source to Intel, Harris Semiconductor chief amongst them. A 286-25 could outrun a 386SX at certain tasks.
That being said, Intel’s always been ruthlessly competitive. Having a 386sx allowed them to, with a minimum of effort, build out cheaper systems to push out competition. Since it was 16-bit externally it was less work to rework a 286 motherboard to use it.
I used a few of these. They ran Windows very well. Doom, not so much. Id software did more to push upgrades than Microsoft IMO :).