Historical ATA Standard Drafts

After some digging, I discovered that several old drafts of the original ATA standard (later known as ATA-1) have been out in the public all along, or at least for a very long time, cleverly hiding among hundreds of SCSI-related documents. I don’t seem to be the only one who missed them. Here they are:

These old revisions may provide the best surviving documentation of existing ATA/IDE practice as it existed in 1989 and onward. The first working document was introduced in March 1989. The ANSI X3.221 standard was officially approved on May 12, 1994. The actual document text was finalized in late 1993.

Note that the 1991 drafts still did not include any LBA support or removable media support. It did include the IDENTIFY DRIVE command as well as the (optional) READ/WRITE MULTIPLE and SET MULTIPLE MODE commands, as well as slave DMA transfers and PIO modes 0, 1, and 2 (up to 8.33 MB/s interface transfer rate).

July 2020 Update: Two “new” ATA draft versions have been discovered in BBS archives, namely revisions 3.0 and 4. While the R3.0 document was a plain ASCII file, the R4 file was not and used IBM code page 437 extended characters. The file presented above was converted to UTF-8; the original R4 document is here. As the notes in R3.2 indicate, R3.0 from late 1991 did not yet have any concept of LBA.

October 2021 Update: Two more and even older ATA drafts came to light. The very first and very incomplete draft (not yet called ATA) from March 1989, and a much more complete revision 2.1. The R2.1 draft is quite recognizable as ATA. The document was converted from WordStar to PDF, using the same 2-up printing style that X3T9.2 used for draft standards back in the day. The original R2.1 draft is here.

Posted in IDE, PC history, Storage | 15 Comments

NetWare 3.12 vs. Large IDE Disks

Recently I had an occasion to find out why NetWare 3.12 using the shipped IDE driver (IDE.DSK) behaves, very, very strangely when let loose on disks bigger than about 500MB (a very foolish thing to even try). The driver loaded fine, discovered a 1GB disk fine, but when accessing it, it was extremely slow and produced a lot of errors.

After some debugging and disassembling IDE.DSK, the cause became obvious, but the chain of events that led to it was anything but.

The IDE.DSK driver in NetWare 3.12 dates from April 1993, meaning it’s older than the original ATA specification. The driver notably does not use LBA, because it was not yet standardized at the time; disks with LBA were perhaps just coming on the market, and they were generally not big enough to require LBA. Crucially, there were also no translating BIOSes yet.

The symptoms of the problem initially didn’t seem to make much sense. After working correctly for a short moment, NetWare would select non-existent device 1 (slave) on an IDE channel with only device 0 (master) present. Then it would read the alternate status register, get rather confused, and start endlessly re-calibrating and resetting the drive. In other words, completely unusable. So why would NetWare do such a thing?

Continue reading
Posted in Bugs, IDE, NetWare, PC history | 46 Comments

Fox in the Crypt

Some time ago I wrote a bit about examining the “branding” system which was used by XENIX and other SCO products and based on the crypt() UNIX library function. At the time I assumed that only SCO had used this scheme for their various UNIX derivatives and UNIX-based software. Imagine my surprise when I came across a copy of Multi-User FoxBASE+ 2.10 for DOS from June 1988 and found BRAND.EXE on the installation floppy. Could it really be the XENIX thing?

Sure enough, it really was. It even retained the same dual functionality in that if BRAND.EXE is renamed (or copied) to DEBRAND.EXE, it changes its behavior and can un-brand and encrypt a previously branded file.

Continue reading
Posted in PC history, SCO, Software Hacks, Xenix | 3 Comments

Yep, Norton Did It

Some time ago, the question of the oldest executable compression tool came up. EXEPACK was identified as a widespread and unexpectedly troublemaking specimen, but Realia SpaceMaker was reportedly older.

Only initially no one could come up with surviving executables compressed with SpaceMaker that were demonstrably older than EXEPACK (leave alone find old versions of SpaceMaker itself), although there were several unconfirmed hints that early versions of Norton Utilities used SpaceMaker.

Eventually an old executable compressed with SpaceMaker turned up: DVED.COM from September 1983, pre-dating the 1984 EXEPACK. But did Norton Utilities really use SpaceMaker?

Jeff Parsons of pcjs.org has now unearthed excellent circumstantial evidence: On floppies distributed with the Summer 1983 copies of the PC Disk Magazine, there were utilities authored by Peter Norton (though not specifically anything from the Norton Utilities). And those executables by Peter Norton were compressed with SpaceMaker.

In the meantime, the OS/2 Museum came into the possession of an image of an actual Norton Utilities 2.01 floppy. The files on the floppy are dated July 4, 1983, and yes, most of them are compressed with SpaceMaker. They contain the ‘MEMORY$’ signature near the beginning, and a decompression stub at the end. The rumors about Norton Utilities and SpaceMaker were true.

At this point, it is then known that yes, Peter Norton really used SpaceMaker for early Norton Utilities, and yes, SpaceMaker is really quite a bit older than EXEPACK; SpaceMaker may be considered the oldest known executable compression utility.

Posted in Compression, PC history | 6 Comments

My Second AMD

A few weeks ago I became a happy owner of a ThinkPad A485, the first ThinkPad (together with the E485 and related variants) to use an AMD CPU. History buffs will know that it’s far from the first ThinkPad with a non-Intel CPU; the very first ThinkPad-branded laptops (ThinkPad 700/720 in 1992) used IBM’s own 486 SLC and SLC2 processors, the 1995 ThinkPad 365 used Cyrix Cx486DX4 processors, and the 1996 ThinkPad 365E sported the IBM-built Cyrix 5×86. But for over 20 years, ThinkPad meant Intel, until the Summer of 2018.

What I just realized is that the A485 is only the second AMD-based machine I ever bought. The first one was a Lenovo IdeaPad Z75 in 2014, a laptop with an AMD A10 APU based on the infamous Bulldozer microarchitecture. Ironically I never had any real complaints about the Z75’s CPU, but the low-res display was absolutely horrible and made the laptop too painful to use very often. Continue reading

Posted in AMD, PC history, ThinkPad | 38 Comments

A Piece of History

A few months ago I received a well-used but not abused copy of Rakesh K. Agarwal’s book 80×86 Architecture and Programming (Volume II): Architecture Reference, published by Prentice Hall in 1991. This is an unusually well-informed book, no doubt because Agarwal was a member of the team that implemented the 80386 at Intel, and wrote some of the 80386’s microcode himself. The book is notable for being the second and only volume of a series (Volume I was apparently never published). Agarwal is also a co-author of an informative article titled The Intel 80386—Architecture and Implementation, published in the IEEE Micro magazine in December 1985.

80×86 Architecture & Programming Vol II

My copy  80×86 Architecture and Programming (Volume II): Architecture Reference came with handwritten notes sprinkled over various bits of the C-like pseudo-code that the book uses to explain the workings of the 386 microcode, as well as several explanatory notes in the instruction reference section. Continue reading

Posted in 386, Books, Cyrix, Intel, PC architecture, PC history | 6 Comments

DiskOnChip

This is a guest post by Nils aka stecdose

What Is DOC?

I would like to present a „storage card“ for the XT bus (8-bit ISA bus) that I built from scrap parts. It is based on a small device called DiskOnChip, or DOC.

8-bit DOC Card

DOC-based storage card

I have been using the card for about 3 years now and it has proven to be quite a handy tool. The storage card shows up as drive C: in a system and it is even bootable! Continue reading

Posted in Hardware Hacks, PC hardware | 11 Comments

FasterModeSwitch: Is It Really?

Short answer: Yes.

Before launching into the long answer, let’s recap what it even is. FasterModeSwitch is a SYSTEM.INI setting in Windows 3.1 which applies only to Standard (286) mode and can therefore be found in the [standard] section of the INI file. KB article Q83387 describes the setting accurately and explains everything… except what it actually does.

Here’s what Microsoft had to say on the subject: Enabling this setting causes Windows running in standard mode to use a faster method of switching from protected to real mode on many 80286-based computers. When this setting is enabled, Windows responds quicker to hardware interrupts, allowing better throughput for interrupt-intensive applications, such as communications applications. In addition, you should enable this setting if you are using a Zenith Z-248 system and are losing characters while typing, or if you are using an Olivetti M-250-E and lose control of the mouse.

Note: This setting has no affect [sic] on 80386-based computers. Some early IBM-AT and compatible computers do not have the BIOS support necessary to use this setting. Enabling this setting on these computers may cause them to hang when starting Windows.

The upshot then is that enabling FasterModeSwitch either speeds up Windows 3.1 or hangs it, depending on the machine’s BIOS implementation. Now, what does the setting really do, and why is the behavior system specific? Here’s the long answer… Continue reading

Posted in 286, BIOS, Microsoft, Windows | 10 Comments

Didn’t Expect That to Work

Once the ThinkPad T43p with a bad fan was in working shape again, I restored the preloaded software on it. Which meant Windows XP (this is a system from 2005).

It didn’t take long for me to establish that XP is really hard to use these days. Even Firefox doesn’t support it. Getting any kind of halfway modern software running on XP is simply a no go. After reading about fairly good experience with installing Windows 7 on T43/T43p, I decided to go the same route.

I happened to have a burned DVD with Windows 7 Ultimate lying around, so I tried that. After installation, there was no WiFi, but there was wired Ethernet—good enough. Windows Update successfully installed drivers for WiFi, graphics, and a number of other devices. The rest (power management, fingerprint software, hotkey OSD) I grabbed from Lenovo.

Once I was done, I had a reasonably functioning laptop (surprisingly well functioning for a 13-year old machine) with just one small problem—no Windows 7 license. The T43p obviously came with an XP Pro license. And I would probably be able to scrounge a Windows 7 Pro license, but I installed Windows 7 Ultimate without thinking much about the problem. Is it even possible to buy a Windows 7 license these days? Continue reading

Posted in ThinkPad, Windows | 22 Comments

Crazy World

After I successfully upgraded two Windows 10 VMs to the 1809 release at the beginning of October, I tried to do the same with more VMs and an actual laptop this week. But I couldn’t, no update was offered. While trying to find out how to install the 1809 update, I found out why I couldn’t—Microsoft withdrew it after the update, among other things, deleted users’ data.

Reading about the details left me stunned (though only momentarily, and now I can write about it). The complaints included this now-famous gem: “I have just updated my windows using the October update (10, version 1809) it deleted all my files of 23 years in amount of 220gb. This is unbelievable, I have been using Microsoft products since 1995 and nothing like that ever happened to me. […] I am extremely upset. Not sure what to do….please let me know.”

One would like to answer “easy—just restore the files from your latest backup” but that could perhaps be construed as insensitive.

The fact that someone has been using PCs for 20+ years and still hasn’t figured out that yes, your data can and will go poof is just mind-boggling. External hard disk? NAS? USB stick or two? A cloud backup if there’s nothing else? There are so many options. And are there really people so lucky that in over twenty years, they never had a bad sector on a hard disk, never a bricked SSD, never an accidental file delete caused by a slip of the finger? That’s amazing luck.

But then there is the other side of the story. Files got deleted because of confusion caused by “Known Folder Redirection” aka KFR, which manages to make symlinks look good. The key takeaways are that a) the complexity of Windows is out of control (not news, I know), and b) someone at Microsoft thinks that upon encountering a set of unknown user files, deleting them without asking is an appropriate response. That’s just… wow.

It also turned out that the file deletion bug was reported months ago but ignored, presumably (speculation on my part) because it was a) lost in the deluge of low-quality bug reports, and b) only affected a tiny fraction of users with who were convinced that there was nothing special about their configuration and anyone not seeing the bug was either not looking hard enough or lying. That at least is not surprising.

Posted in Bugs, Microsoft, Random Thoughts, Windows | 9 Comments