3 ms·
The 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
by rep_lodsb 3y ago
The 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
- whartung 3y agoIs there any detail as to what the chip did before the change, and no longer did after? Did Intel change the spec of the chip, or was IBM leveraging undocumented behavior?
- rasz 3y agoIts fiction.
- deleted 3y ago[deleted]
- achairapart 3y agoThe story may be opinionated, but for sure Intel and DR went back and forth a lot on this, till a late E-2 step, as quoted in another InfoWorld article[0]. [0]: https://books.google.com/books?id=_y4EAAAAMBAJ&pg=PA21&redir_esc=y#v=onepage&q&f=false https://books.google.com/books?id=_y4EAAAAMBAJ&pg=PA21&redir...
- rasz 3y agoThis nonsense reads like something penned by John Titor.
- rep_lodsb 3y agoAgree! I don't have an original AT, but that string appears nowhere in the ROM images I found. There is also a fairly accurate web-based emulator, and it doesn't print this message: https://www.pcjs.org/machines/pcx86/ibm/5170/cga/ https://www.pcjs.org/machines/pcx86/ibm/5170/cga/ I also doubt that IBM had anything to do with the development of Concurrent DOS, which AFAIK was based on earlier multitasking versions of CP/M. It's highly unlikely that IBM worked together with DR on a "secret" 16-bit protected mode OS, only to throw it away and then start over with OS/2, this time in collaboration with Microsoft.
- icedchai 3y agoMy dad had an original IBM AT at work, back in '85 or '86, and I don't remember seeing that message. I rebooted the machine several times. It was sure built like a tank though. And I loved that keyboard, even as a kid.