1988 Networking: NetWare OS/2 Requester

A while ago, the question of antique NetWare OS/2 requesters came up. The oldest known surviving NetWare OS/2 Requester is version 1.2, which is designed to work with OS/2 1.2. There are clear mentions of older requesters supporting OS/2 1.1 and possibly even 1.0, but nothing seems to have survived.

Except something did survive, in an archive called REL102.ZIP–not a terribly obvious name. Said archive contains the “OS/2 Requester Developer’s Release” from April 6, 1988 (a bit over 31 years old as of this writing). This was clearly not the first such release, and the oldest files are from February 1988. Given its vintage, it’s obvious that the Requester was designed to work with OS/2 1.0.

1988 NetWare OS/2 Requester utilities

There are several device drivers and a number of OS/2 utilities (SLIST, ATTACH, MAP, etc.); a notable omission is LOGIN (although LOGOUT is included), possibly because LOGIN.EXE normally lives on a NetWare file server.

Continue reading
Posted in NetWare, Networking, OS/2, PC history, Virtualization | 16 Comments

NetWare 2.x Notes

Novell NetWare has quite a long history, but the older parts of it are now almost completely lost. In the mid-1980s, Novell offered Advanced NetWare, NetWare ELS, NetWare SFT, and other members of the NetWare 286 family.

With the partial exception of so-called non-dedicated NetWare 2.x servers, version 2.x and later of NetWare always had dedicated server machines with clients (called “shell” in the old days, later “workstation”) for DOS, OS/2, Macintosh, and more.

There was not much to see on a NetWare 2.x server console

Until the mid-1990s NetWare typically used its own networking protocol called IPX. NetWare networks could use Ethernet, Token-Ring, Arcnet, IBM PC Network, and other physical network layers. In later days, NetWare networks were almost exclusively Ethernet based (as the other technologies died out), and over time increasingly switched to TCP/IP transport.

Continue reading
Posted in NetWare, Networking, PC history | 14 Comments

LAN Manager 2.0 Primary Domain Controller

While messing around with late 1980s and early 1990s networking software, I had the need to switch a LAN Manager 2.0 server to the primary domain controller role, so that it could run the Netlogon service and I could use clients which log onto the network. It was difficult enough that I needed to write it down.

It’s not that the process is undocumented, and I do have the complete documentation set on the Microsoft Programmer’s Library CDs. But the documentation is quite difficult to find (even though the Programmer’s Library is decently searchable) and somehow not very clear.

First of all, there are of course two ways to do it, either from the full-screen user interface or from the command line. I will skip the UI part because clicking around is harder than running a few simple commands.

I will just note that when on the server machine, running NET is not the same as NET ADMIN, even though the interface looks deceptively similar, and in fact the initial screen is 100% identical:

LAN Manager 2.0 NET or NET ADMIN screen

But with NET ADMIN, there are additional options in the UI. Here is the Accounts menu when running NET:

Continue reading
Posted in LAN Manager, Microsoft, Networking | 3 Comments

Kryofluxing PC Floppies

Last year I finally bought a Kryoflux, unfortunately in the middle of moving house. Now I’m finally able to use it beyond verifying that it’s not completely broken. After imaging a few dozens of floppies, I can say one thing–Kryoflux is surprisingly difficult to use with PC 5¼″disks. There is a distinct impression that Kryoflux was designed to deal primarily with Amiga and C64 floppies, and although PC floppy formats present absolutely no difficulty for the Kryoflux hardware as such, using the software for archiving standard PC 5¼″ media is very far from simple.

Let’s start with the easy part. Imaging 3½″ media is relatively simple because PC 3½″drives are straightforward (well, let’s omit the special Japanese 1.6M media). 3½″ drives always rotate at 300 RPM and usually automatically handle media density based on the floppy itself. But if everything were easy, life wouldn’t be very interesting.

Continue reading
Posted in Floppies, Kryoflux, PC hardware | 11 Comments

Small World

The core of this story was originally a private e-mail, but I realized that it’s worth sharing with a slightly wider audience.

Readers may know that I’m very interested in the history of PC development tools, especially C compilers, and especially the Watcom C compilers. I therefore know that Watcom C/386 7.0 (1989) was the first Watcom 32-bit C compiler, and in fact one of the first 32-bit compilers for DOS. The first was probably MetaWare High C, which was never terribly popular due to the fact that it was both quite expensive and quite weird; it just never fit into the world of PCs all that well.

The Watcom C/386 7.0 compiler on the other hand was a close relative of Watcom’s award-winning 16-bit DOS compiler (versions 6.0, 6.5, and 7.0) which maintained a good degree of compatibility with Microsoft’s C compilers, and was therefore not nearly as alien as High C. Andrew Schulman took a look at the 386 compiler in a 1990 DDJ article.

Continue reading
Posted in PC history, Watcom | 16 Comments

Reading From Void

Recently I came across the following question: What happens when software reads the registers of a non-existent IDE controller? That is, what happens when software reads for example ports in the 1F0h-1F7h/3F6h range (primary IDE channel) when there is no device on that channel?

For the vast majority of devices, the answer is simple, reads return with all bits set (0FFh). That’s when no device decodes the given address, i.e. no one claims the bus cycle/transaction. But IDE is different, because there often is a device which decodes those addresses, namely the IDE controller, usually on the motherboard within the southbridge chip.

The answer then might be buried somewhere deep in the Intel ICH datasheets or similar documentation. But it’s not.

Continue reading
Posted in BIOS, IDE, PC hardware | 10 Comments

Ancient NetWare OS/2 Requesters?

Quite a while ago there was a discussion on this site about NetWare support for OS/2 versions prior to 1.3. Finding reliable information is difficult, especially when one doesn’t know exactly what to look for.

Spurred by the discovery of Novell NetWare 2.15 ELS II in my basement (obviously I knew it was some NetWare stuff, but until I learned much more about NetWare 2.x I didn’t realize it was a complete NetWare 286 server kit), I started pondering the question again. The NetWare release I had included a separately packaged NetWare Requester for OS/2 version 1.2 from May 1990.

NetWare Requester for OS/2 v1.2

It is very unclear from the documentation what the version of the Requester itself is, or if it even has one, but it’s crystal clear that it’s for OS/2 1.2 only, not any earlier version (and OS/2 1.3 had not been released yet). It relies on NWIFS.IFS, an Installable File System, which means it can’t possibly work with OS/2 1.0 or 1.1, as there was no IFS support in those versions.

Continue reading
Posted in NetWare, OS/2, PC history | 13 Comments

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