Programming Windows: Wintel (Premium)

In 1980, IBM undertook an uncharacteristically fast development process for its first personal computer, cannily named the IBM Personal Computer, or PC. But it needed to cut some corners and bypass some old-school IBM traditions to come in on schedule. So, the first IBM PC was designed by a small team led by Don Estridge in Boca Raton, Florida that operated like a small, very non-IBM-like startup. And rather than leveraging IBM’s big, complicated internal hardware and software systems, the team went with open, inexpensive third-party offerings instead.

This expedient decision created the PC market we still enjoy today with the release of the first IBM PC in 1981. Thanks to IBM’s open design, other hardware makers were able to quickly copy the design, reverse-engineer the few secret bits in its BIOS, and create IBM-compatible PCs, or clones, of their own.

IBM chose an Intel x86 processor for the core of its first PC, instantly catapulting Intel and the x86 architecture to the center of the PC revolution to come. Intel had two x86 chips at the time, the 16-bit 8086, which was first released in 1978, and the 8088, a cost-reduced version that utilized an 8-bit data bus rather than the more powerful 16-bit bus used by the 8086; this was released in 1979. Both chips were technically 16-bit microprocessors because they both had 16-bit CPU registers and internal data buses. But because of the 8088’s more limited 8-bit data bus, it is often called an 8/16-bit design.

IBM chose the 8088 over the superior 8086, but it did so for pragmatic reasons: The 8088 was more readily available in the volume it expected to need, and it and the system boards it required were less expensive.

The 8088’s data bus constrained the system in unfortunate ways because the chip could process 16-bits of data internally, but it could only transfer 8-bits of data externally. In real-world terms, the 8088 was about half as fast as the 8086 at the same clock speed. Worse, this design had serious implications for the operating systems and applications that would run on the PC, and Microsoft and others had to pay close attention to the order in which instructions in its software ran. This made low-level languages like assembly language and then C the ideal choices for developers who would target this platform in the early days.

The Intel 8088 and 8086 ran in a single operating mode called real mode and they utilized a 20-bit segmented memory address space which limited the amount of RAM to 1 MB (1024 KB). That seemed like a lot of memory in 1980/1981---the consumer-oriented personal computers of the day typically offered just 4 KB to 64 KB of RAM, for example---and IBM semi-arbitrarily segmented the available address space to accommodate different needs. The first 640 KB was available to any software running on the chipset (operating system plus an application, typically) while the remaining 384 KB was divvied up between the BIOS, video, and peripherals.
...

Gain unlimited access to Premium articles.

With technology shaping our everyday lives, how could we not dig deeper?

Thurrott Premium delivers an honest and thorough perspective about the technologies we use and rely on everyday. Discover deeper content as a Premium member.

Tagged with

Share post

Please check our Community Guidelines before commenting

Windows Intelligence In Your Inbox

Sign up for our new free newsletter to get three time-saving tips each Friday

"*" indicates required fields

This field is for validation purposes and should be left unchanged.

Thurrott © 2024 Thurrott LLC