Total Downloads

2,702,031

Total Files

9,210

Latest Update

10

Programming Windows: IBM Defends the Original PC (Premium)

Posted July 21, 2019 | Dev | Hardware | IBM | Intel | Programming Windows | Windows


In Programming Windows: Wintel (Premium), I described how IBM decided to enter the personal computing market in 1980 and did so in less than a year by choosing open, inexpensive third-party hardware and software solutions. Key among the components IBM chose was the Intel 8088, a cost-reduced version of the 16-bit 8086.

As noted previously, 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.

That last bit would bedevil IBM, PC clone makers, software makers like Microsoft, and users for years to come.

Intel first worked around the real mode weirdness by supporting up to 16 MB of RAM in protected mode, plus memory protection and management functionality, in its 16-bit 80286 processor. Bill Gates would decry this half-step as a “brain-dead” kludge that didn’t really solve the problems because it separated its memory into 256 KB segments that could only be accessed one at a time.

With the 80386, however, Intel finally delivered the chipset that PC industry needed, in part because it final sought design feedback from key players like Microsoft. The 386 was fully 32-bit and could address up to 4 GB of RAM. It provided a flat, non-segmented memory space. Better still, it could switch between real, protected, and its own 386 protected mode on the fly, and in the latter mode, it offered a virtual 8086 capability that allowed Windows to concurrently run multiple instances of MS-DOS applications simultaneously.

During this transition, Microsoft evolved Windows to support the new Intel chipset capabilities. Windows/286 specifically targeted the 80286 and its unique features, and Windows/386 did the same for the 80386; both were released in 1988. Windows 3.0, from 1990, could run in any mode supported by any Intel x86 processor, and would try to choose the best mode automatically; it also provided improved memory management when running on a 286 or 386. And then Windows 3.1, released in 1993, finally supported a true 32-bit 386 Enhanced Mode and up to 256 MB of RAM.

If you accept that Windows 3.1 finally pushed the PC past the issues that were created by IBM’s weird segmentation of the 8088 address space, then 12 years had elapsed. But if you feel that it wasn’t until 1995 and Windows 95, which required a 386 or better and its flat 32-bit memory space, then this fix took 14 years. Either way, that’s a long time.

So, I was curious to see whether IBM ever owned up to this mess.

History shows us that IBM sought to move past the technical limitations of MS-DOS by co-creating with Microsoft a new DOS, eventually called OS/2, that would first embrace the 80286 and then the 80386 and newer Intel processors, helping to move past real mode and into era defined by protected mode and then a full 32-bit address space. Likewise, we know that the IBM of the day—in a way of thinking that Microsoft later emulated—cared so much about its existing customers that it slowed the evolution of its platforms to accommodate those with older, less capable PCs. It also moved very slowly to ship new PCs—by then, under the brand PS/2—powered by 286 and 386 chips.

Right around this time, almost 10 years into the PC era, Byte Magazine published a 15th-anniversary issue in which it gathered over 60 of “the world’s most influential people in personal computing to predict the future [and] analyze the future.” This issue of our industry’s most important publication is fascinating on a number of levels. But a related article in the issue that discusses the creation of the original IBM PC, written by David J. Bradley, a member of the team that designed that machine, is just as fascinating.

Bradley allowed Byte to photograph and publish for the first time one of the first two IBM PC motherboards, front and back. (The other one was given to Microsoft so that it could create MS-DOS.)

That’s really cool. But I was even more interested to read Bradley’s defense of IBM using of the 8088 and of its decision to segment the PC’s access of the 8088 address space, creating the infamous 640 KB barrier. You know, the decisions that would dog an entire industry for 12-14 years.

IBM went the Intel x86 route because of its previous experience creating the DataMaster computer in 1987. That proto-PC was a one-piece design with a 12-inch monochrome display, two 5.25-inch floppy disk drives, and an 8-bit Intel 8085 CPU. The resulting machine “didn’t have the flexibility needed for a personal computer,” Bradley wrote. Because of the limitations of 8085’s 64 KB address space, IBM had to invent a paging mechanism that allowed the machine to address at least 256 KB of RAM. And in doing so, it became very familiar with the Intel architecture and supporting chipsets.

Like many personal computers of the day, the DataMaster included a built-in BASIC interpreter, though this wasn’t a Microsoft design but was rather the convergence of two IBM implementations. The delays in getting that converged BASIC completed delayed the release of DataMaster by a year.

“That experience taught us two things about getting a product to market rapidly,” he wrote. “We needed to use an existing BASIC, and we needed to streamline the IBM development process.

Obviously, IBM solved the first problem by approach Microsoft for a BASIC interpreter for its first PC. And it solved the typical IBM development process issue by creating that PC as a skunkworks project that bypassed the mothership and used open, off-the-shelf, and third-party components. (Well, mostly. The original IBM PC used the same keyboard as the DataMaster, Bradley says.)

As for the 8088, IBM knew that it needed to use a 16-bit processor to gain access to a large address space: The 64 KB address limit of the 8085 “had to be overcome.” That processor, and the peripherals that would come with the PC, needed to be available immediately. And IBM couldn’t afford a long learning process: It needed a “system with a DMA controller, an interrupt controller, timers, and parallel ports,” and they all needed to be familiar.

Given its experience with the 8085, IBM would need to use the Intel 8088 or 8086, both of which were more modern, 16-bit descendants of the 8085.

“We chose the 8088 because of its 8-bit bus,” Bradley claimed. (Emphasis mine.) “The smaller bus saved money in the areas of RAM, ROM, and logic for the simple system. A bonus we got from using this Intel processor was the numeric coprocessor [which was a separate chip]. The 8087 [numeric processor] gave the 8088 a fast partner for floating-point calculations. But since the 8087 wasn’t yet available when the PC was announced, we simply left an empty socket on the board and didn’t disclose a use for it.”

The first IBM PC came with 16 MB of RAM and it could be expandable to 64 KB on the system board. Using expansion cards, you could get up to 256 KB of RAM, which Bradley says was “an impressive amount for a personal computer at that time.”

He was right. The leading personal computers of the day were all 8-bit designs that shipped with considerably less RAM than that. The Apple II, for example, maxed out at 48 MB. And later 8-bit designs pushed the limit with 64 MB and, eventually, 128 MB of RAM.

But what about that weird, seemingly arbitrary 640 KB limitation for DOS?

“The 8088 has an address space of 1 MB,” Bradley explained. “We reserved the upper 128 KB for ROM on the system board. We wanted the video memory on the display adapters to be in the processor address space, so we reserved a 128 KB section of memory for them. Finally, we reserved 128 KB of memory for ROM or RAM on other adapter cards. At the time, we thought those allocations were generous.”

For the math averse, 128 + 128 + 128 is 384. And when you subtract 384 KB of RAM from the 1 MB (1024 KB) address space supported by the 8088, you’re left with … wait for it … 640 KB of RAM.

“Since the capacity of the original IBM PC was 256 KB of RAM, and the norm for systems of that time was 64 KB, we felt comfortable with the design,” Bradley continued. “Although 640 KB did become a limitation, so did the other reserved areas. I don’t think there was a better way of arranging the memory that would have made a difference.”

Bradley also comments about the supporting chips that further helped the 8088 in the original IBM PC, like the DMA (direct memory access) that sped I/O performance, the interrupt controller that supported type ahead, and the three-channel timer/counter that helped the machine tell time (at least while it was powered on). And the bus architecture that, yes, was based on the design from the DataMaster and was, arguably, one of the IBM PC’s strongest selling points: A machine that could be updated, seemingly infinitely.

“One thing we didn’t foresee when we defined the system bus was the proliferation of adapter cards for the PC,” he noted. “Although the variety turned out to be a good thing because it gave customers a wide choice of options, we hadn’t allowed enough I/0 addresses for all the cards that eventually were developed. Original expansion cards decoded only a 10-bit address, and many cards used 8 or 16 addresses. Consequently, almost every card ended up with a set of switches to select the I/0 address it would respond to and the interrupt line it would use in a given system. While the DIP switches were workable, they required the user to review all the documentation every time another card had to be installed. The answer was a programmable method of device selection, which was one of the reasons for the change to the Micro Channel architecture in the PS/2 family.”

That’s a bit disingenuous: IBM’s move to MCA was driven by its desire to seize control of the PC industry from the clone makers that had copied IBM’s designs. But the technical need was certainly there, and clone makers responded to MCA with an open 32-bit bus design called EISA that provided the same benefits but without IBM’s expensive licensing costs. That IBM later supported EISA too is, perhaps, ironic.

Whatever. Bradley’s description of how and why the original IBM PC was designed is certainly credible and it’s a more logical explanation than I had expected. And it’s a story that deserves to be told.

“When we first began development of the IBM PC, we didn’t appreciate the potential of the product,” he concluded. “The company originally estimated it would market a total of about 250,000 units over a five-year period. As it turned out, there were some months when we built and sold nearly that many systems. IBM has since delivered millions of PCs to the marketplace. The sales estimates may have been faulty, but the product certainly wasn’t. I’m very happy to have been a part of it.”

Tagged with , ,



Source link

  • vans shoes
  • kyrie 4
  • lebron james shoes
  • kyrie irving shoes
  • puma fenty
  • lebron soldier 11
  • asics shoes
  • stephen curry shoes
  • pg shoes
  • puma fenty slides
  • lebron 14
  • kyrie 4
  • puma rihanna creepers
  • nmd human race
  • curry shoes
  • yeezy shoes
  • adidas nmd
  • lebron soldier 10
  • puma fenty
  • lebron soldier
  • lebron 15
  • kyrie 4
  • kd shoes
  • nike vapormax
  • stephen curry shoes
  • kyrie 4
  • kyrie 1
  • curry shoes
  • kyrie 2
  • adidas nmd shoes
  • stephen curry shoes
  • john wall shoes
  • http://www.kyrie4.us.com
  • adidas yeezy boost
  • yeezy boost
  • nike pg 2
  • kyrie irving shoes
  • adidas john wall
  • yeezy boost
  • j wall shoes
  • http://www.asicsshoes.us.com
  • curry 3 shoes
  • kyrie irving jersey
  • curry 3
  • kd 9
  • kd shoes
  • Kevin Durant shoes
  • http://www.kd-9.org
  • yeezy boost 350 v2
  • kd shoes
  • Curry 3
  • Curry 1
  • kevin durant shoes
  • yeezy boost
  • adidas nmd Runner
  • adidas nmd r1
  • kobe 10
  • adidas crazy explosive
  • air max 90
  • kobe 10 shoes
  • adidas nmd xr1
  • kobe shoes
  • curry one
  • kyrie irving shoes
  • adidas nmd
  • vans outlet
  • vans for sale
  • Curry 3
  • yeezy 350 boost
  • kobe bryant shoes
  • lebron soldier
  • under armour shoes
  • http://www.kyrie4.com
  • nike lebron soldier
  • adidas tubular instinct
  • vibram
  • vibram fivefingers
  • adidas tubular instinct boost
  • adidas ultra boost
  • adidas tubular
  • lebron soldier shoes
  • kids shoes
  • air jordan shoes
  • air max shoes
  • air force 1
  • nike air max
  • air max nike
  • lebron soldier shoes
  • soldier shoes
  • air max 90
  • air max 95
  • adidas nmd human race
  • nmd human race
  • kyrie 4
  • kobe 11
  • Curry One
  • Kobe Shoes
  • harden shoes
  • kobe 11 shoes
  • Curry 2
  • Harden 1
  • Curry 2
  • James Harden Shoes
  • lebron soldier
  • nike epic react
  • nike kyrie flytrap
  • nike epic react flyknit
  • lebron 10 soldier
  • nike lebron soldier
  • Curry Shoes 2015
  • Harden 1 Shoes
  • James Harden Shoes
  • Harden Shoes
  • James Harden 1
  • Under Armour Curry Shoes
  • kobe x
  • Kobe 10
  • Cheap Harden 1
  • kobe bryant shoes
  • kobe shoes
  • Lebron James Shoes
  • Cheap Curry Shoes
  • yeezy 950
  • Curry One Mvp
  • Nike Harden Shoes
  • Nike Kobe Shoes
  • Harden Shoes
  • Under Armour Store
  • Curry 2 Shoes
  • Curry Shoes
  • curry 1
  • curry 5
  • http://www.curry-5.us
  • Stephen Curry Shoes
  • Under Armour curry one
  • James Harden Shoes
  • stephen curry shoes
  • Steph Curry 1
  • Stephen Curry Shoes
  • kobe basketball Shoes
  • Nike Harden Shoes
  • fila shoes
  • fila
  • Nike James Harden Shoes
  • Harden Shoes For sale
  • Harden Shoes Sale
  • yeezy boost
  • new balance shoes
  • kanye west shoes
  • http://www.yeezyshoes.us.com
  • kobe x shoes
  • kd 8
  • adidas nmd xr1
  • balenciaga triple s
  • adidas yeezy boost
  • balenciaga triple s Shoes
  • adidas nmd r1
  • adidas yeezy outlet
  • adidas nmd
  • adidas nmd runner
  • adidas nmd pk
  • adidas nmd footlocker
  • adidas nmd r1 primeknit
  • new era caps
  • kobe bryant shoes
  • lebron soldier 11
  • kobe shoes
  • kyrie 3
  • nike kyrie 3
  • kyrie 3 shoes
  • air max shoes
  • yeezy boost
  • nike air max shoes
  • nike air max
  • kevin durant shoes
  • kd vii
  • kd 7
  • curry 3
  • curry 3 shoes
  • ua curry 3
  • curry 3 low
  • kyrie 3
  • adidas porsche shoes
  • adidas porsche design shoes
  • lebron james shoes
  • kobe shoes 2015
  • nike air shoes
  • nike air max shoes
  • kyrie 3
  • kyrie 3 shoes
  • nike kyire 3
  • cheap air max shoes
  • air max shoes
  • kd vii shoes
  • kd shoes
  • kevin durant shoes
  • adidas zx flux
  • adidas zx
  • jordan retro
  • nike soccer cleats
  • adidas tubular
  • adidas flux
  • cheap kd shoes
  • adidas ultra boost
  • kobe shoes nba
  • palladium boots
  • lebron soldier 10
  • air jordan 32
  • lebron soldier
  • lebron soldier shoes
  • kd 11
  • nike lebron soldier
  • air jordan retro/a>
  • cheap kobe shoes
  • soldier 10
  • adidas ultra boost shoes
  • adidas ultra boost
  • kevin durant shoes
  • kobe bryant shoes
  • jordan retro shoes
  • hyperdunk 2017
  • kd 7 shoes
  • porsche design shoes
  • curry 5
  • adidas porsche design
  • adidas shoes
  • kevin bryant shoes
  • kd shoes store
  • kd 7
  • Cristiano Ronaldo CR7
  • herve leger dresses
  • kobe shoes
  • curry 5 shoes
  • anello backpack
  • kobe bryant shoes
  • kd shoes
  • lebron shoes
  • kd sneaker
  • http://www.curry-5.com
  • adidas alphabounce
  • adidas boost
  • adidas d rose 7
  • jeremy scott adidas
  • nike sb dunk
  • jeremy scott wings
  • Nike CR7
  • jeremy scott shoes
  • js wings
  • lebron shoes
  • kobe shoes
  • balenciaga shoes
  • kobe bryant shoes
  • kyrie irving shoes
  • nike epic react flyknit
  • nike epic react
  • asics gel kayano 23
  • http://www.kyrie3.com
  • canada goose
  • lebron james shoes
  • asics gel kayano 22
  • Nike Lebron James Shoes
  • lebron soldier 12
  • Lebron James Shoes
  • asics gel lyte iii
  • adidas eqt
  • kd 10
  • nike kd 10
  • kyrie 3
  • adidas nmd womens
  • keen uneek sandals
  • prada shoes
  • air jordan 31
  • nike air poresto
  • nike air vapormax
  • nike huarache
  • nike vapormax shoes
  • nike mercurial
  • stephen curry shoes
  • kyrie irving shoes
  • kyrie irving basketball shoes
  • reebok pump fury
  • reebok pump superme
  • air max 270
  • kevin durant jersey
  • adidas iniki
  • adidas porsche design
  • lebron shoes
  • http://www.lebron-shoes.us
  • adidas porsche
  • wholesale hats
  • nike air more uptempo
  • kobe bryant jersey
  • wholesale caps
  • curry 5
  • http://www.curry-5.us
  • adidas superstar
  • curry 4
  • curry 4
  • kd 10
  • air max 270
  • Nike Pegasus 35
  • nike air max 270
  • adidas deerupt
  • supreme yeezys
  • nike kd 10
  • kevin durant 10
  • nike epic react
  • birkenstock sandals
  • nike epic react flyknit
  • nike kids shoes
  • adidas pure boost
  • lebron james shoes
  • calvin klein underwear
  • curry 4
  • birkenstock sandals
  • http://www.kyrie-4.com
  • curry 4 footlocker
  • http://www.birkenstocksandals.us.com
  • nmd r1
  • harden vol 2
  • stephen curry jersey
  • kobe shoes
  • nike roshe run
  • curry 4 shoes
  • new balance running shoes
  • ecco
  • childrens shoes
  • boys shoes
  • girls shoes
  • ecco Shoes
  • asics gel kayano 24
  • puma suede
  • kyrie 4 confetti
  • nike zoom vaporfly
  • birkenstock
  • mizuno shoes
  • ultra boost shoes
  • adidas clothing