How Apple Created Hackintosh, Part I

At a developer conference in June 2005, Apple announced that OS X will transition from PowerPC to Intel processors. The first Intel Macs (sometimes nicknamed “Mactels”) were introduced several months later, in January 2006. The announcement generated significant interest in the PC world, and everyone started wondering: Is OS X going to run on my PC? The then-current OS X 10.4 Tiger was in many ways superior to Windows XP, and while Windows ruled the business world, Macs were very strong in the media creation department.

Soon after the conference, Apple shipped custom development systems to interested parties who were willing to pay $999 for the privilege. The systems came with an Intel version of OS X 10.4.1 which refused to run on any standard PC, even though the Apple development systems were extremely close to a vanilla PC.

No Intel OS X for you

No later than August 2005 (still months before the official release), the first hacked versions of OS X Tiger for x86 appeared. This in turn spawned an entire strange subterranean cult of Hackintosh, populated largely by people whose time is worth very little and who put a lot of effort into creating an entirely untested and unsupported system.

But how did Hackintosh appear on the scene so quickly? The person most responsible for that was none other than Steve Jobs, and to understand why, we have to rewind another 20 years back. Continue reading

Posted in Apple, Intel, PC history, Pre-release | 10 Comments

MS KB Articles

A recent blog post over at explores some of the mysteries surrounding information that at one point or another was published as a Microsoft KnowledgeBase article (or a KB article for short).

It’s not entirely clear where the KB articles originally came from or when, or what happened to them.  The current best guess is that the KB articles started being written around 1987 and were likely accessible through some online service (dial-up, that is). They were never particularly well organized and relied on using keywords, which were themselves not clearly defined. The KB articles were written by Microsoft support personnel with input from product development, and often corresponded directly to bugs reported by customers. Finding something was a little difficult, and it appears that the main purpose was to publish something that customers could be pointed to.

KB articles were also updated, so the a KB article with a given number in 1989 was not necessarily identical to the same KB article in 1992. The information content was largely the same but the exact text was not. Some KB articles were also removed entirely, not always for obvious reasons.

Many KB articles contain useful information not found anywhere else, but finding them can be tricky. Sometime in the mid to late 1990s, Microsoft started publishing KB articles on the web and that became the official KB repository. But many KB articles never made it there in the first place (such as KB articles related to OS/2, which Microsoft had thoroughly disowned by then). Does that mean the old KB articles are gone? Well, not exactly… Continue reading

Posted in Documentation, Microsoft, PC history | 15 Comments

PC-MOS/386 Source Code

I missed this when it was initially announced. The source code for PC-MOS/386 version 5.01 is now available on github under the GPLv3 license. It requires the user to supply Borland C++ 3.1 in order to build, but there are binaries checked in as well, including a bootable floppy image.

PC-MOS is a multi-tasking/multi-user DOS clone. It was one of the first commercial products which used the 386’s virtual-8086 mode when it was released in early 1987 (but not the first, that was almost certainly CEMM in 1986).

It is worth noting that PC-MOS also supported 286 systems. It required custom hardware and also used the well-undocumented LOADALL instruction (see MOXMEM.INC).

The source code is unfortunately not organized in a very clear fashion; there are for example three separate and not quite identical copies of the PC-MOS kernel.

There is an interesting reference to “Bimini 2-SX” aka IBM 486SLC, which apparently had a bug affecting PC-MOS/386: “When executing a CALL or JMP instruction with a negative
displacement within a 32-bit code segment and an operand prefix override is used (i.e., to limit the target address to 16 bits), the resulting target address is computed incorrectly.” (see _386.ASM in the mos5src directory for additional detail).

Posted in 386, DOS, Source code | 7 Comments

Audio Frequency Data Acquisition

Readers of this blog may have noticed that besides OS/2 software, I have interested in PC sound cards. I thought I had a decent idea about the major milestones in PC sound history, but I had to perform a few adjustments after a kind reader sent me this card:

The IBM M-ACPA/A sound card

Now, the above card is obviously a Microchannel adapter; the connector looks like PCI, and it is in fact physically identical, but logically it’s completely different. It is the IBM M-ACPA/A (ACPA stands for Audio Capture/Playback Adapter).

I had heard of ACPA sound cards before, but I hadn’t known the exact specs, and I didn’t realize just how old they were. The card in the photo is from mid-1991, a contemporary of the Sound Blaster Pro, but it’s already the second generation (Revision B). Continue reading

Posted in IBM, MCA, PC hardware, PC history, PS/2, Sound, Sound Blaster | 12 Comments

Slow Season Again

As regular readers probably noticed, it’s the slow season once again. I’m traveling, with restricted Internet access and/or limited computer time.

Which is not to say that there’s nothing to write about, just not enough time to do it. For example there are more questions or not-quite-answers about SYSENTER, and there’s a slightly updated NT video miniport in the pipeline.

Things will get better around mid-September at the latest.

Posted in Site Management | 8 Comments

SYSENTER, Where Are You?

It has only recently been brought to my attention that Intel’s SYSENTER/SYSEXIT instructions have rather unusual past, and their origin is shrouded in mystery and confusion. One facet of the usage of these instructions is also a little unorthodox.

Depending on who you ask, the SYSENTER/SYSEXIT instruction pair was introduced either in the Pentium Pro or in the Pentium II. But that makes absolutely no sense on the face of it, right? Either the Pentium Pro supported these instructions or it didn’t. Well…

The Pentium Pro (aka P6) was introduced in November 1995 and it was the first member of a tremendously successful family of processors which destroyed all of x86’s RISC rivals in the late 1990s, and quite possibly saved Intel after the Itanium and NetBurst debacles. The Pentium Pro and its immediate successors, Pentium II and Pentium III, turned out to be immensely scalable and between 1995 and 2001, raised the clock speed from 150 MHz (original Pentium Pro) all the way to 1.4 GHz (Pentium III-S and other Tualatin PIII variants). Continue reading

Posted in Intel, PC history, Undocumented | 12 Comments

Of G-Men and Farmers

There’s an interesting story concerning this Midiman GMan General MIDI sound module. It involves Midiman (better known as M-Audio), the Farmers Insurance Exchange, and also Dream/Atmel, Crystal Semiconductor, and Roland. (Apologies for the beat-up specimen.)

Midiman MIDI GMan sound module

The story of course concerns the famous Sound Canvas sound banks that Dream/Crystal offered for use with the SAM 9203, 9233, and related synthesizers. It was well known in the 1990s that the Dream/Crystal instrument banks sounded just like Roland’s, and that Roland eventually sued them. But the details were not well known, and they’re interesting. Continue reading

Posted in Crystal Semi, Dream, Legal, MIDI, Roland, Sound | 20 Comments

Would You Believe It?

The following article was printed in Computer Shopper, June 1992 issue (page 152). Commentary follows.

The Big Squeeze

Compression Scheme Shatters Storage Logjam

Todd Daniel believes he has found a way to revolutionize data storage as we know it.

DataFiles/16, a zip-style data-compression product released by Wider Electronic Bandwidth Technologies (WEB), allows users to compress data at a 16-to-1 ratio. That’s a major advance when you compare it with Stacker 2.0’s 2-to-1 ratio.

DataFiles/16 relies purely on mathematical algorithms; it works with almost any binary file. Because of the math involved, the ratio of compression is directly proportional to the size of the uncompressed file. In order to get the full effect of 16-to-1 compression, the original file must be at least 64K.

During a demonstration at our offices, Daniel, the company’s vice president of research and development, compressed a 2.5Mb file down to about 500 bytes, four levels of DataFiles/16. Because successive levels compress at a lower ratio as the volume of the file decreases, DataFiles/16 directly zips and unzips files to the chosen level.

After compressing a file, users can compress the data another eight times with DataFiles/16. This gives DataFiles/16 the potential to compress most files to under 1,024 bytes, whether the original file is 64K or 2.6 gigabytes. By comparison, SuperStor 2.0’s new compression technique can be performed only once.

By June, WEB plans to release its first hardware packages utilizing the same method. The two new device-driver cards will operate impeccably, compressing and decompressing data on the fly at ratios of 8-to-1 and 16-to-1, respectively.

A standard defragmentation program will optimize data arrangement, while an optional disk cache will speed access time. Both cards will come in DOS, Macintosh, and Unix versions. The DOS version is scheduled for a July release, and the company says the others will follow shortly.

The implications of WEBs data-compression technique in the communications field have yet to be calculated, but Daniel says a 16-to-1 ratio could save certain companies up to 5 percent of their storage costs. If DataFiles/16 lives up to its early promise, data compression will have taken a quantum leap forward.    — Jim O’Brien

Continue reading

Posted in PC history, PC press | 63 Comments

Brightening Up

A depressingly yellowed Roland CM-64 led me to try retr0bright for the first time. The short story is that despite a few minor missteps, the experiment was a success. Yes, it really does work! Here’s what the CM-64 looked like (bottom), for comparison next to a much better preserved Roland CM-300 (top).

A sad looking Roland CM-64

I followed the original recipe using 11.9% hydrogen peroxide stabilized with etidronic and phosphoric acid. The problem was that either I used too large spoon or misjudged what a “heaped tablespoonful” means. I ended up with too much Xanthan gum which a) caused severe difficulties for the blender, and b) resulted in a very thick and clumpy gel instead of a smooth substance. Continue reading

Posted in Fixes, Hardware Hacks, Roland | 7 Comments

VME Fixed on AMD Ryzen

As expected, AMD fixed the problem with VME that affected Ryzen processors. The fix is shipped in the form of a microcode patch as part of AGESA, currently being rolled out by OEMs as part of a BIOS update. Which means that depending on the OEM and board, a fix may or may not be available for a given system today.

The patch level for the fixed microcode is 8001126 or higher. The older microcode revision 800111C (part of AGESA is known to have trouble with VME.

Posted in AMD, Bugs | 17 Comments