386 LOADALL

I recently came across hints suggesting that in the 1987 timeframe, Microsoft contemplated the use of the 386 LOADALL instruction in OS/2. As far as I know, no released version of OS/2 (including the SDK betas) utilized the 386 LOADALL.

But it got me wondering. Did anyone use it in commercial software? And which 386 CPUs support LOADALL?

To be clear, the 386 LOADALL instruction is very similar to its infamous 286 sibling but it’s not compatible (even the opcode is different). On the 286, LOADALL could accomplish things that were not otherwise possible, but on the 386 there is little that LOADALL can do that can’t be done using documented interfaces (and that retail software would want to do).

Robert Collins has an excellent writeup on both LOADALL flavors with lots of details and test programs. The article contains the following rather interesting statement: “Very few people at Intel will acknowledge that LOADALL even exists in the 80386 mask. The official Intel line is that, due to U.S. Military pressure, LOADALL was removed from the 80386 mask over a year ago. However, running the program in Listing-2 demonstrates that LOADALL is alive, well, and still available on the latest stepping of the 80386.

So LOADALL was supposedly removed from 386s… except it maybe wasn’t. And it was top secret? Further searching revealed a surprising fact: The existence of 386 LOADALL instruction became a matter of public record no later than September 1, 1992 when Compaq’s U.S patent 5,144,551 was published. Continue reading

Posted in 386, Undocumented | 26 Comments

Missing Intel SDM Documents

I’ve been trying to complete my archive of Intel SDM documents circa 2000 and later. I have most of the editions archived but a few are missing. Readers of this blog could have something stashed away too, so perhaps someone could help? I’m looking for original PDFs with no modifications, at least not obvious ones. Continue reading

Posted in Documentation, Intel | 11 Comments

Lies, Damn Lies, and Wikipedia

While researching the history of 486s for a previous article, I came across a fascinating Wikipedia entry and its associated talk page. It’s a nice showcase of inmates running the asylum, and a reminder that Wikipedia can’t be considered an authoritative source of information because the quality of encyclopedia entries is wildly uneven. It’s not all bad, and it could be argued that the average is quite good, but there’s no minimum quality guarantee.

Even now the 486SX article contains demonstrably incorrect claims such as this: The FPU upgrade device was shipped as the i487, which was a full blown i486DX chip with an extra pin. The i487 was installed in an upgrade socket and the extra pin was either a power or ground pin that indicated that the i487 was installed. That signal was used to disable the i486SX when the i487 was installed. 

Well, no—there is an extra pin, but it has no electrical function whatsoever. It merely prevents the chip from being installed incorrectly. And there is a pin (NC#) indicating that an upgrade processor is present designed to “shut off” the original CPU, but it is one of the standard 168 pins. The text conflates facts and turns them into a falsehood. The pins are publicly documented in Intel datasheets and it’s not so hard to find the actual information. Continue reading

Posted in 486, Intel, PC history | 38 Comments

Intel OverDrive Part I: 486 OverDrive

Intel had a long history of offering retail processor upgrades for PCs. The last and by far the best known of those were the Intel OverDrive processors. But let’s start with the earlier history.

In 1987, Intel released the Inboard 386/AT, an ISA card with a 386 CPU used to upgrade existing PC/AT systems to 386s. In 1988 the Inboard 386/PC followed, a similar card for upgrading 8086-based PCs.

In 1992, Intel offered RapidCAD, a two-chip (for the CPU and FPU sockets) upgrade for 386 systems. The RapidCAD used a somewhat crippled 486 core with integrated FPU and although it didn’t greatly improve integer performance, it did significantly increase the floating-point power (70% improvement according to Intel) to overtake any discrete 387.

i486 DX, SX, and 487SX

When Intel introduced the i486 in 1989, the benefits (for Intel) of segmenting the market with SX and DX variants were well understood. Whereas the 386DX (1985) used a 32-bit external interface and the 386SX (1988) a 16-bit one, the 486DX and 486SX were almost identical in terms of external interface. The DX variant included a built-in FPU, the SX did not.

Intel 486SX-25

Early i486SX Processor

The 486SX was introduced in mid-1991, and its main purpose was to compete with faster 386 systems, especially those from AMD. At that time, the vast majority of software did not require a FPU, and most software didn’t use one even if available. Although the 486 had considerably better performance per clock, a 40 MHz 386 compared quite favorably to a much more expensive 25 MHz 486. The 486SX was intended to get OEMs to roll out 486 CPUs (which only Intel produced at the time) in larger numbers, understandably at prices lower than the top-of-the-line DX variants. Continue reading

Posted in 486, Intel, PC history | 6 Comments

Intel 486 Errata?

There don’t seem to be any specification updates or errata lists for any Intel 486 CPU anywhere. It’s odd because there are specification updates for 386s (and of course Pentiums) from Intel, and because the embedded 486s continued to be produced for a long long time (standard 486s well into the 2000s).

The 486 was released back when Intel believed that publishing errata would be damaging and it seems the policy was never changed, as it had been for the Pentium (after the infamous FDIV fiasco).

Someone, somewhere has the errata sheets. Anyone want to share? Continue reading

Posted in 486, Intel, PC history | 22 Comments

MS C 4.0 Documentation Added

Another library expansion. This time it’s Microsoft C 4.0 documentation (1986)—because it’s not available online, is not easy to find offline, and because Jeff asked for it.

MS C 4.0 was an early Microsoft compiler, implementing first glimpses of the not-yet finalized ANSI C standard. It was released in summer 1986 and superseded first by the little-known Microsoft C 5.0 in 1987, and more importantly by the very popular Microsoft C 5.1 in early 1988.

MS C 4.0 CLMicrosoft C 4.0 was notable for supporting Microsoft Windows. It was likely the compiler used for developing most Windows 1.x software available on the market.

An important addition in version 4.0 was CodeView, a full-screen source level debugger which superseded DEBUG and SYMDEB. 30 years ago, source level debuggers were fancy!

Posted in C, Documentation, DOS, Microsoft | 7 Comments

More on the C&T Super386

Since last week’s post, more information about the Chips and Technologies C&T has come to light.

It now appears that at least some 38605DX processors were made. Whether there is any surviving working system is still an open question (since a special motherboard would be required as well). On the other hand, there is still is no evidence that any of the SX variants existed beyond samples.

There is more on the sort-of-SMM in the Super386, called SuperState V. The U.S. Patent 5,455,909 provides an overview of the feature. The caveat is that the patent’s existence does not necessarily imply a specific implementation. The F8680 PC/CHIP is better documented but its SuperState R (R for Real, V for Virtual?) is not necessarily the same as the Super386’s SuperState V.

Last but not least, thanks to a reader suggestion and a kind stranger, an unfinished manuscript of the Super386 Programmer’s Reference Manual has been located. While it is very incomplete, it sheds some light on the one mysterious undocumented Super386 instruction. Continue reading

Posted in 386, C&T, Documentation | 32 Comments

The Forgotten 386

The CPUs that fit into a 386 socket are well known: Intel’s original, AMD’s exact copy, and Cyrix/TI upgrades. There is also IBM’s 386SLC which is close to a 386 but can’t be plugged into a standard 386 socket. The photo below shows a selection of eight more or less common PGA-132 processors with Intel/AMD and Cyrix/TI cores:

386 Socket CPUs

The ninth is not like the others—a C&T Super386.

The Chips & Technologies Super386 or J38600DX is so obscure that it’s not mentioned in most lists of x86 processors and not detected by most software.  Yet the C&T 386 was the first commercially available clean-room clone of the 386, beating Cyrix to market by several months (AMD’s Am386 chips were exact copies and not clones). So what went wrong? Continue reading

Posted in 386, C&T, PC history | 25 Comments

More ISA VGA Benchmarks

After establishing that Trident VGA cards are indeed very slow, the natural follow-up question is: Are there cards even slower than that? But not some 8-bit VGA card from the 1980s (or a Realtek from the 1990s), and not some exotic CAD accelerator, but rather some mainstream 16-bit ISA graphics card.

Those who remember the latter days of ISA graphics cards may guess the “winner”: Early S3 graphics accelerators! Such as this one:

S3 Graphics Card #1

This specimen from mid-1992 was not a cheap card, but it was popular. It was a graphics accelerator with 1MB VRAM (not DRAM) and an 80 MHz DAC. The S3 86C911 chip kicked off a very successful line of graphics adapters. Continue reading

Posted in Cirrus Logic, IBM, S3, VGA | 9 Comments

About Those Trident VGAs…

An earlier post mentioned that the performance of Trident-based ISA VGA cards leaves much to be desired. A reader pointed out that such cards tend to have switchable 8-bit/16-bit bus width and performance might suffer if the card is incorrectly jumpered.

After examining two different Trident cards in detail, it is clear that yes, those jumpers exist… but the Trident-based cards are so bad that it doesn’t matter anyway.

Trident TVGA8900B

The first card was this:

TVGA8900B

It’s a 1991 ISA VGA card sold under the Octek brand, using a Trident TVGA8900B chip. It’s notable for sporting full 1MB video memory, not typical for a cheap 1991 card. Continue reading

Posted in Trident, VGA | 17 Comments