5 ms·
The 286 added "in string" and "out string" instructions. It turned out that if peripherals had a small internal buffer it was more efficient to use these new in
by jecel 4y ago
The 286 added "in string" and "out string" instructions. It turned out that if peripherals had a small internal buffer it was more efficient to use these new instructions instead of using DMA hardware. This is why hard disk controllers for the original PC and XT used DMA but from the AT on they normally didn't.
- rep_lodsb 4y agoIt was the 186 which added those. Wasn't widely used in PCs because it included some built-in peripherals that weren't compatible with the "standard" ones used by IBM in their original PC. And that standard PC's DMA controller was originally intended for use with the 8-bit 8080 (eighty-eighty, not eighty-eight) processor. It was slow and only supported 16 bit addresses. IBM added a latch that would store the high address bits, but they weren't incremented when the lower bits wrapped around. So buffers had to be allocated in a way that they didn't cross those boundaries, and the BIOS disk functions would return an error if your code didn't do this properly.
- anyfoo 4y agoI grew up with a "Siemens PC-D", 80186 and not fully IBM compatible for the reasons you said. However, it seems that the folks at Siemens were very enthusiastic about it, and ported a lot of software that accessed the hardware more directly, including most Microsoft software (Windows, Word, the C compiler...) and GEM. The BIOS was actually on disk, so updatable, and the BIOS updates came with a README file from the PC-D team that again give me the impression that some at least really liked working on it. A marvelous machine. High resolution (if monochrome), Hercules-like graphics, for example. But the kicker was that it actually had an MMU[1], built from discrete logic chips, in order to run SINIX (a Xenix 8086 derivate, but with added MMU support among other things) and enjoy full memory protection. I reverse engineered that MMU, it's quite fun. Paging wasn't possible though. [1] Early on as a variant called "PC-X", but they apparently did away with the early board revisions, and all machines I've seen say "PC-D/PC-X" on the back, so they all have the MMU and can be both.
- adrian_b 4y ago80186 and 80286 have been launched simultaneously in February 1982, so you cannot say that one of them has introduced INS and OUTS before the other. Nevertheless, due to their high cost for those times none of these 2 CPUs had seen much use before two years and a half later, when IBM launched the IBM PC/AT in August 1984. Most programmers have encountered INS and OUTS for the first time while using PC/AT clones with 80286. Embedded computers with 80186 became common only some years later, when the price of 80186 dropped a lot.
- rasz 4y agoNEC V20/V30 were also very popular as an easy cheap upgrade for older computers.
- adrian_b 4y agoThat is right and I have also used some cheap and fast PC/XT clones made with those. However they have been launched only in 1984 and computers made with them have become available only some years after the PC/AT with 80286, most likely even later than the launch of 80386, so despite that they implemented all the 80186 extensions they do not count when discussing the timeline of the INS/OUTS introduction.