Reply 20 of 36, by Jo22
Hi there. I didn't mean to hurt anyone's feelings here, my apologies if I did. 😥
I rather explained my point of view, which isn't necessarily correct.
However, I also can't deny what I know/remember from back then.
Windows 3.1 and Win32s were available to developers before Windows NT 3.1 and Windows 95.
So in reality, this was the original Win32 platform 32-Bit programs were being written to.
And Windows 95 isn't even true Win32, it's Win32c.
Then there's PCI. It's not just "another bus". It's a new architecture, essentially.
PCI used different types of interrupts (INTs rather than IRQs) and supported bus mastering and uses IDs, complete with text strings for the PCI cards.
The Pentium processor, as typically found on PCI motherboards, adds support for a new Programmable Interrupt Controller and a new System Timer.
https://en.wikipedia.org/wiki/Advanced_Progra … ller#APIC_timer
All in all, it's essentially a different type of x86 PC platform. Like Japanese PC-98 with its C-Bus, which differs from PC/AT with ISA.
That's why emulators like Qemu/Bochs has a separate machine type for it ("ISA PC").
That's what I meant to say. An 386/486 PC with ISA or VLB (or anotger local bus like Opti bus) is another platform.
Strictly speaking, classic x86 PCs ended with those traditional, non-PCI motherboards.
They're the last with native ISA bus, also. More or less, I mean.
Okay, strictly speaking, ISA runs natively on an 80286 PC without chipset only.
Any chipset with a memory controller insulates the processor's front side bus from the peripheral bus (ISA in that case).
Because doing so, the chipset can hide/set aside/re-map Extended Memory from the 80286 processor to simulate EMS or Shadow Memory.
Likewise, the PCI-ISA bridge found on Pentium motherboard does insulate ISA from the CPU.
All the IRQ/DMA stuff etc. is being done by the help of that bridge.
All other busses, EISA, MCA, VLB, Opti etc. do rather work in tandem with ISA, they're not controlling it.
That's why I said PCI was an alien technology (to Windows 95).
It's not just another slot/bus. It's a new x86 platform.
And Windows 95 was heavily being developed on in 1993/94, using Windows 3.1x/WfW 3.11 as a basis
(see Alpha and Beta builds of Chicago, Beta Archive etc. have documented them).
Both of which were not designed for PCI at the time. Or Plug&Play.
The PCI support and the drivers basing on it were new and not fully tested.
Yes, they worked. Their maturity is another question, though..
"Where do you want to go today?" was more like "Where do your IRQs want to end up today?".
Windows 95/Chicago was no new, ingenious development, it was an intermediate solution.
A hack (a remarkable one, albeit, I admit). Windows NT was supposed to replace it ASAP.
The separation into a "consumer" and "professional" line of Windows was just good marketing, it was not cleverly planned.
DOS-based Windows was meant to die in the 80s, altogether.
Unfortunately, the OS/2 dilemma, the success of Windows 3.0 and the slow development of NT made Windows 95 a necessity.
1993/94 were still pretty much still 486/VLB days.
I'm not saying thus that Windows 95 had to be limited to a 486 CPU
(though 586 introduced more complicated cache/pipeline/in-order or out-of-order execution) .
It's the motherboard that causes trouble/stability issues.
A 586 class CPU on a 486 era motherboard is more or less fine.
A Pentium Overdrive or 5x86 etc could be used here.
Or in other words: A 386/486 motherboard with ISA/VLB needs no chipset drivers!
To software, it's a generic PC motherboard.
With PCI motherboards, all the chipset driver drama slowly started.
(Edit: Except to those OSes not aware of it;
DOS and Windows 3.1x rely on BIOS mainly or use drivers with integrated PCI-support.)
Hm. I'm not sure if my wording is good to read. I hope so. 🤷♂️
Edit: Typos/formatting fixed (on PC).
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel
//My video channel//