3 ms·
Interestingly the 286 had a protected mode but very few applications ever used it. There were upgrade kits with then stupid amounts of memory, like 16MB, for th
by astrodust 3y ago
Interestingly the 286 had a protected mode but very few applications ever used it. There were upgrade kits with then stupid amounts of memory, like 16MB, for then astronomical prices. I wonder how often those were used for anything.
- WalterBright 3y agoI used Rational Systems' 286 DOS extender a lot. It was a great boon to writing programs, because it would seg fault on a bad pointer access.
- phire 3y agoInformation about Rational System's 286 extender seems to be limited. What I found: Rational System were later renamed to Tenberry and their DOS/4G and DOS/4GW extenders were very popular (due to the latter being bundled with Waycom C). But they were for the 386. The version that worked on the 286 was called DOS/16M, because it supported 16MB of address space. Someone summarises the API here [1]. I was kind of hoping someone might have uploaded the manual to archive.org, but no luck. [1] https://groups.google.com/g/comp.sys.ibm.pc/c/zkgdj84bRkE/m/iYCdsWhhOkYJ?pli=1 https://groups.google.com/g/comp.sys.ibm.pc/c/zkgdj84bRkE/m/... Apparently it was called DOS/16M and the company was later renamed to
- WalterBright 3y agoI think I have a copy of DOS/16M in the basement somewhere. I have a copy of Pharlap's 32 bit extender, and their 16 bit extender. Zortech C/C++ also shipped with a nice 32 bit extender written by Joe and Doug Huffman, which was my favorite.
- ElectricalUnion 3y agoNot many I guess; the reason you basically required a "protected runtime" in the first place is because real mode (or a even better thing, the shiny new 386 virtual 8086 mode aka virtual real mode) was very important. Until the 386, leaving the protected mode was either completly unsupported (I think 186) or you needed heroics involving bugs in the keyboard irc handler (I think 286). Because the OS and most "normal" applications and libraries back them being real-mode only, it means you were locked out of most of the filesystem I/O, and a program with limited filesystem I/O is a very limited program indeed.
- phire 3y agoNot bugs. IBM literally wired up the keyboard controller to trigger the CPU's reset pin on request as a workaround for getting back to real mode. But not every system has that feature. Some motherboard chipsets had an even faster method for triggering reset; it was all very non-standard. But the most compatible way to get back to real mode on a 286 was by triggering a triple fault.
- rep_lodsb 3y ago186 didn't have protected mode :) On the 286, the only way out of protected mode was via a CPU reset. The keyboard controller (which was a separate chip on the motherboard, an 8042 microcontroller) had a documented command to do that, and one of the first things the BIOS entry point did was to check a flag indicating that the reset was intended to exit from protected mode, if so it gave control back to the application by jumping to a pointer it provided. Another way to reset the CPU was to cause a "triple fault" - an exception that can't be handled will try to invoke the double fault handler, when that also fails the CPU shuts down, sending a special bus cycle that external hardware would detect and trigger the reset. This actually became the preferred method since the keyboard controller was quite slow. So slow that it gives you enough time to run an undocumented instruction which dumps the entire CPU state: https://rep-lodsb.mataroa.blog/blog/intel-286-secrets-ice-mode-and-f1-0f-04/ https://rep-lodsb.mataroa.blog/blog/intel-286-secrets-ice-mo...
- pjmlp 3y agoWhen the 286 was designed, there was the idea that no one would like to return to real mode and would happily adopt OS/2 (1.x, not the later graphical one), Xenix and similar OSes, that of course didn't happen, thus 386 had to sort that out.
- Narishma 3y agoI think the 286 was designed way before any of that was a consideration. It was first released in 1982, just a couple of months after the IBM PC.
- 3y ago