3 ms·
There was an OS especially made for the new 286 and its protected mode: Concurrent DOS by Digital Research (aka Gary Killdall). This OS would function strictly
by achairapart 3y ago
There was an OS especially made for the new 286 and its protected mode: Concurrent DOS by Digital Research (aka Gary Killdall).
This OS would function strictly in protected-mode, allowing users to take full advantage of the protected mode to perform multi-user, multitasking operations while running 8086 emulation.
But, by an irony of fate, this only worked on the B-1 prototype step of the chip. When Intel went out for production with a new C-1 step, it broke everything and Concurrent DOS was delayed[0] until it was too late, and then the OS was recycled as a Point of Sale for cash register software[1].
[0]: https://books.google.com/books?id=2y4EAAAAMBAJ&pg=PA17&redir_esc=y#v=onepage&q&f=false https://books.google.com/books?id=2y4EAAAAMBAJ&pg=PA17&redir... (Super DOS awaits new 80286)
[1]: https://books.google.com/books?id=oi8EAAAAMBAJ&pg=PA12&redir_esc=y#v=onepage&q&f=false https://books.google.com/books?id=oi8EAAAAMBAJ&pg=PA12&redir... (IBM to use a DRI Operating System)
- nekoashide 3y agoAnd now I know why that weird version of DOS existed a few decades ago when I was working on cash registers. Back then you ran across a lot of DOS compatible OS's and documentation. As long as all the same commands worked you were usually fine.
- rep_lodsb 3y agoThe 8086 emulation would work by trapping every segment register load, emulating the instruction's real mode semantics, and then loading the new CPU state using the undocumented LOADALL instruction. In principle this should work on any stepping. I'm not sure how Digital Research implemented it, but they might have relied on some detail of the exception handling that changed between steppings. For example, if early steppings left "invalid" values in segment registers instead of zeroing them, DR might have used these instead of going to the effort of emulating the faulting instruction? Concurrent DOS/286 became FlexOS, which seems to be available here (but I haven't tested it to see if this actually includes the real-mode emulation, it might have been a feature that was only in the prototype): http://bitsavers.trailing-edge.com/bits/DigitalResearch/FlexOS/ http://bitsavers.trailing-edge.com/bits/DigitalResearch/Flex... In any case, this way of running real mode code might just be too impractical. For "large model" programs using more than 64K data, every pointer dereference would have to be trapped and emulated, taking possibly thousands of clock cycles instead of just a few. You could optimize accesses to code and static data segments by defining protected-mode selectors for those, but running code that e.g. walks a linked list allocated on the heap might be intolerably slow. Also all of the memory allocated to the program would have to be in one contiguous block, since there is no linear->physical address translation in the 286.
- achairapart 3y agoI have no idea about the actual technical matter, but here is another take on this story[0] (at the end of the page "The true story or..."): Did you ever own an original IBM AT? On the IBM AT, the power-up post routine printed the words "AT Multiuser System" at the top of the screen during power up. What the heck is the AT Multiuser System??? The AT prototypes didn’t boot msdos, they booted a secret new OS. This new OS (I don’t know the code-name for it) was a multiuser dos. The design was simple, you buy an AT, and it comes with one or more 8 port serial cards. You buy Wyse terminals (the ones with the PC Emulation mode( as opposed to modes like VT100 emulation)) and put one one each desk, then you run serial cables to your AT. This OS was a true multitasking OS, and the AT was a small cheap minicomputer. THAT was what the AT was designed to be. Period. So what the heck happened? IBM had a successful project, the first manufacturing run filled the warehouse, the software was ready, and it was time to start packaging the retail boxes. The first of the manufactured systems used up the last of the initial supply of 286 chips, before Intel switched to a lower-cost run of the 286 chips. The new 286 chips had some minor changes to increase yields, allowing the price to be lowered. Apparently the yields were low on the original version that IBM started manufacturing with. At some point IBM found a bug in the OS that slipped through the QA tests... It was a subtle bug that only had an impact when the machine was multitasking with multiple users, and as it turns out it was only present on the systems with the new 286 chips. There was a lot of finger pointing and hand-wringing going on over it. Something was broken in the protected mode functions. IBM sales execs were either going to have to insist Intel use the more expensive low-yield version of the 286 chip, OR IBM was going to have to scrap the multiuser system. IBM is managed by the sales department. Someone in sales did the math... we use the expensive 286 chip, and sell one AT to each customer’s office of 15 to 20 people... OR we sell them 15 or 20 machines with a cheaper chip. Which makes more money? It was decided that scrapping the multiuser system would increase system sales volume in theory. Even if the 15 to 20 machines were PC’s instead of AT’s, more money was made selling more systems than selling one. So what happened to the multiuser system? The 8-port serial boards were ground into dust, except for a few units that escaped with the beta testers (I used to have a bunch of these). The Wyse terminals still had the PC emulation mode, but the expected sales volume of those never happened, so Wyse suffered as their R&D investment in the project was scrapped. DR got paid for their work on the OS, but they never got to see any revenue from sales. Bill Gates went from being a footnote in history to being who he is today. The first widely distributed multitasking OS never saw the light of day for several more years, and Gary went from being the grandfather of the small computer industry to a footnote. The operating system sat on a shelf for a couple years, but was dusted off and used when IBM started developing scanner cash registers. The new cash registers needed some sort of network or centralized computer, so DR got to sell a couple hundred copies of an OS that was supposed to sell millions (billions by today). The software got a new name, ConcurrentDOS. [0]: http://www.gaby.de/ekildall.htm http://www.gaby.de/ekildall.htm
- sacnoradhq 3y agoConcurrent DOS 286 1.0 (1985) was the product. It was known later as FlexOS 286. It evolved from the features of Concurrent CP/M-86.