Expert C Programming

(Jeff_L) #1

Intel and Microsoft have effectively become the new IBM, reaping undeserved windfall profits from
their closed proprietary systems. IBM is trying desperately to regain its former position by using the
PowerPC to challenge Intel's hardware monopoly, and using OS/2 to challenge Microsoft's software
monopoly. The OS/2 challenge has probably failed, but it's too early to pass judgment on the PowerPC.


The 8088 processor, as used in the first IBM PC, was just a cheap 8-bit version of the 8086, allowing
the wealth of existing 8-bit support chips to be used. All further 80x86 refinements were of the
"smaller, faster, costlier, and more instructions" variety. The 80186 took this path, introducing 10 not-
very-important new instructions. The 80286 was just the 80186 (minus some built-in peripheral ports)
but with the first attempt to extend the address space. It moved the memory controller off-chip, and
provided an ambitiously named virtual mode in which the segment register isn't added to the offset,
but is used to index a table holding the actual segment address. This kind of addressing was also
known as protected mode and it was still 16-bit-based. MS-Windows uses 286 protected mode as its
standard addressing mode.


The 80386 is the 80286 with two new addressing modes: 32-bit protected mode and virtual 8086
mode. Microsoft's new flagship operating system, NT, and MS-Windows in enhanced mode both use
32-bit protected mode. This is why NT requires at least a 386 to run. The other kind of addressing,
virtual 8086 mode, creates a virtual 8086 machine with 1 Mbyte of address space. Several of them can
run at once, supporting multiple virtual MS-DOS sessions, each of which thinks it's running on its
own 8086. At about this time, you should be thinking that the gyrations necessary to cope with the
limitations of the original addressing scheme are pretty incredible, and you'd be right. The 80x86 is a
difficult and frustrating architecture for which to write compilers and application programs.


All these processors can have coprocessors, usually to implement floating point in hardware. The
8087 and 80287 coprocessors are identical, except that the 287 can address the same extended
memory as the 286. The 387 can address using the same modes as the 386, but also adds some built-in
transcendental functions.


Software Dogma


Choosing Components for the IBM PC


Some, perhaps most, of the IBM decisions about the PC were definitely made on non-
technical grounds. Before deciding on MS-DOS, IBM arranged a meeting with Gary Kildall
of Digital Research to consider CP/M. On the day of the meeting, so the story runs, the
weather was so good that Gary decided to fly his private plane instead. The IBM managers,
perhaps annoyed at being stood up, soon cut a deal with Microsoft instead.


Bill Gates had bought the rights to Seattle Computer Product's QDOS, [1] cleaned it up a
little, and renamed it "MS-DOS". The rest, as they say, is history. IBM was happy, Intel was
happy, and Microsoft was very, very happy. Digital Research was not happy, and Seattle
Computer Products became successively unhappier over the years as they realized they had
pretty much given away the rights to the best-selling computer program ever. They did
retain the right to sell MS-DOS if they sold the hardware at the same time, and this was why
you used to see copies of MS-DOS available from Seattle Computer Products, improbably

Free download pdf