Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
IBM PC compatible
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Design limitations and more compatibility issues== Although the IBM PC was designed for expandability, the designers could not anticipate the hardware developments of the 1980s, nor the size of the industry they would engender. To make things worse, IBM's choice of the [[Intel 8088]] for the CPU introduced several limitations for developing software for the PC compatible platform. For example, the 8088 processor only had a 20-bit memory [[address space|addressing space]]. To expand ''PC''s beyond one megabyte, Lotus, Intel, and Microsoft jointly created [[expanded memory]] (EMS), a bank-switching scheme to allow more memory provided by add-in hardware, and accessed by a set of four 16-[[kilobyte]] "windows" inside the 20-bit addressing. Later, Intel CPUs had larger address spaces and could directly address 16 MB (80286) or more, causing Microsoft to develop [[extended memory]] (XMS) which did not require additional hardware. "Expanded" and "extended" memory have incompatible interfaces, so anyone writing software that used more than one megabyte had to provide for both systems for the greatest compatibility until MS-DOS began including EMM386, which simulated EMS memory using XMS memory. A [[protected mode]] OS can also be written for the 80286, but DOS application compatibility was more difficult than expected, not only because most DOS applications accessed the hardware directly, bypassing BIOS routines intended to ensure compatibility, but also that most BIOS requests were made by the first 32 interrupt vectors, which were marked as "reserved" for protected mode processor exceptions by Intel. [[Video card]]s suffered from their own incompatibilities. There was no standard interface for using higher-resolution [[SVGA]] graphics modes supported by later video cards. Each manufacturer developed their own methods of accessing the screen memory, including different mode numberings and different [[bank switching]] arrangements. The latter were used to address large images within a single 64 KB segment of memory. Previously, the VGA standard had used [[Planar (computer graphics)|planar]] video memory arrangements to the same effect, but this did not easily extend to the greater color depths and higher resolutions offered by SVGA adapters. An attempt at creating a standard named [[VESA BIOS Extensions]] (VBE) was made, but not all manufacturers used it. When the 386 was introduced, again a [[protected mode]] OS could be written for it. This time, DOS compatibility was much easier because of [[virtual 8086 mode]]. Unfortunately programs could not switch directly between them, so eventually, some new memory-model APIs were developed, [[VCPI]] and [[DOS Protected Mode Interface|DPMI]], the latter becoming the most popular. Because of the great number of third-party adapters and no standard for them, programming the PC could be difficult. Professional developers would operate a large test-suite of various known-to-be-popular hardware combinations. To give consumers some idea of what sort of PC they would need to operate their software, the [[Multimedia PC]] (MPC) standard was set during 1990. A PC that met the minimum MPC standard could be marketed with the MPC logo, giving consumers an easy-to-understand specification to look for. Software that could operate on the most minimally MPC-compliant PC would be guaranteed{{who|date=April 2014}} to operate on any MPC. The MPC level 2 and MPC level 3 standards were set later, but the term "MPC compliant" never became popular. After MPC level 3 during 1996, no further MPC standards were established.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)