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.

One curiosity of Watcom C/386 7.0 was that it did not come with a debugger or even a linker. It was meant to be used with Phar Lap’s 386|DOS extender, or alternatively with the A.I. Architects/Eclipse OS/386 extender, and those supplied their own linkers and debuggers.

The above mentioned DDJ article mentions that the compiler was also distributed by Novell and could be used for developing NLMs for the new-fangled NetWare 386. Novell likewise supplied their own linker.

The Novell mention piqued my curiosity because I’ve been looking for old NetWare development tools. I downloaded Watcom C/386 7.0 from a well-known site and immediately noticed that the images aren’t original, and may have been improperly created (there’s an odd looking ZIP file on the last disk).

A slightly different Watcom C/386 7.0 archive can be found on another site, improperly classified as being “for OS/2”. Although Watcom was an early supporter of 32-bit OS/2 development, Watcom C/386 7.0 pre-dates even the earliest 32-bit OS/2 SDK and of course does not support OS/2 development. But the actual disk images were identical at any rate. So no help there.

I have a clear memory (as clear as it can be after 20+ years) of downloading a copy of Watcom C/386 7.0 from some BBS, probably using a 14.4 kbps modem, and then re-creating the six 360K floppies for installation. Maybe those might be better than the downloads.

So I found my old homemade floppies from the 1990s in the basement, took a good look at the contents… and discovered that they are 100% identical to the ones I downloaded. Even though I certainly never uploaded my floppy images to any of those sites.

That actually explained one oddity about the downloaded disk images — the boot sector is from 32-bit OS/2, certainly not expected for DOS software from the late 1980s. But in 1996 (when the floppies were created), I did use OS/2 Warp, on a 100 MHz Pentium, or maybe a Cyrix 6×86 at the time. So that is where the OS/2 boot sectors came from.

Conclusion, if anyone screwed up the floppy image creation (if it was screwed up, which is unclear), it was me. Not helpful! I wish I could find the “original” files, but so far I’ve had no luck, and it may not even exist anymore.

But while I was looking at the images, I realized that on the first disk there’s a file (LABEL.TOT) clearly showing that the package was in fact the “C Network Compiler/386”, with a long number “735-000641-001” which looks very much like a Novell part number. That’s something I would not have recognized back in ’96.

It appears that NetWare essentially took the Watcom C/386 7.0 disks (four of them), put different labels on them, and added two disks with Btrieve and NLM development kits, respectively. (The first four disks contain no mentions of NetWare to speak of, and look like plain Watcom C/386 7.0.)

And thus the Novell C Network Compiler/386 was born, the first tool to support NetWare NLM development in C. Even though the Compaq Deskpro 386 was already three years old, 386 operating systems on PCs were still very exotic in 1989, but things were at least moving in the right direction. Now who has the original NetWare 386 disks…

This entry was posted in PC history, Watcom. Bookmark the permalink.

16 Responses to Small World

  1. Julien Oster says:

    I liked the Watcom compilers well, but now of course I want to know about MetaWare High C, and what was so weird and unfitting about it!

  2. Michal Necasek says:

    What was weird about it? Everything. Command line syntax, run-time library, you name it. From my brief experience with MetaWare High C (MWHC), it was not at all a bad compiler, but it was alien, at least to someone used to Microsoft and Borland. It was fairly portable and rather UNIX-y, but not in a good way somehow, at least not on DOS. There was a 16-bit MWHC DOS compiler as well, but very exotic.

    Now that I think about it, that DDJ article also alludes to the “culture shock” induced by MWHC.

    My impression is that MWHC was the only game in town for 32-bit extended DOS C development in the late 1980s, but it was pretty quickly displaced by Watcom, especially in combination with DOS/4GW.

    MetaWare’s compilers popped up in all kinds of places though, like IBM’s AIX PS/2 or OS/2 for PowerPC (there was an x86 MWHC compiler for 32-bit OS/2 as well).

  3. I remember when I bought the CD only version of Watcom C/C++ 10.0 I was so excited that it included so many SDKs. In them all was the NetWare SDK, along with the AutoCAD. I never used the later, but I never did do anything serous with the netware stuff.

    OS/2 2.x & Win32 were just far superior platforms.

  4. Michal Necasek says:

    Maybe worth mentioning that one could use the Watcom 10.0 CD to produce a 61-disk set of installation floppies. Which is exactly why it was only shipped on a CD 🙂

  5. The embarrassing thing is that until I saw that someone had uploaded it on, I never noticed that the lightening bolt was actually a W…

    I do remember seeing zip files that aligned with disks, but I was so lucky to have scored a single speed NEC external SCSI CD & 8 bit controller card… 650MB at floppy disks speeds… lol

  6. Richard Wells says:

    Another early 386 C Compiler was Microway’s NDP C-386. It was reviewed alongside Microware’s High C 386 in several places in 1988. EDM claims Microway NDP Fortran 386 was released in 1986 with C a year later; Microway itself claims to have been the first to release 386 compilers but sets the release date as 1988.

    NDP C-386 was K&R C, very minimal but with great math libraries. Later versions got more ANSI compatibility but still focused on the math heavy market.

    High C was an early adopter of the ANSI standard plus had the unconventional Pascal inspired proprietary instructions. Some of the strangeness involved their close relation with Ashton Tate; High C was the compiler used for dBase. Lock in works both ways.

  7. Michal Necasek says:

    Yes, NDP was one of the most exotic 386 C compilers (besides Fortran they had Pascal as well). The big difference between MetaWare and Watcom was that NDP was a hardware vendor, focusing as you say on the math market. They sold FPUs and also some custom boards.

    One of the earliest 386 C compilers was also Microsoft’s, which was initially only available for XENIX so people tend to forget that it existed. Internally Microsoft used it since the late 1980s for 32-bit OS/2 and i386 NT development. Basically Microsoft had a 386 compiler for about five years before 32-bit Visual C++ was released.

  8. MiaM says:

    Joke: As we are discussing 32-bit code, shouldn’t it rather be large world, huge world or similar rather than small world? 🙂 🙂 🙂 🙂

  9. Michal Necasek says:

    Flat world.

  10. Richard Cranium says:

    OT: Good to see you back up, Michal. Hope you’ve fixed your spam problem. 🙂

  11. Michal Necasek says:

    We shall see, but probably not right away. Taking the site offline probably confused spammers, but that won’t last forever. Then we’ll see if the anti-spam measures make a difference.

    For whatever reason, the amount of spam was relatively low in December, then it about doubled in January, and then doubled again in February. Not a good curve to be on.

  12. Glad you are back!

    I get an insane amount of spam. I’m using Akismet Anti-Spam to deal with it, and it seems to be doing a pretty good job so far. It’s this one.

    It’s an ever growing PITA. Sigh.

    Although some simple reCAPTCHA is what I probably should do, some days I get upwards of 10,000 spams a day. One thing is for sure, moving to PHP7 has been nothing short of incredible when it comes to resource usage. Shockingly compilers always kill crap interpreters.

  13. Michal Necasek says:

    I have Akismet installed too, without that I couldn’t have comments enabled at all. I’m curious how the reCAPTCHA stuff will work. Clearly it did not completely block comments so far…

  14. Yuhong Bao says:

    The redirect on the page was not changed.

  15. Michal Necasek says:

    Correct. I won’t change that until the comment traffic is known to be under control.

  16. GL1zdA says:

    I think the MetaWare C compiler was mostly used to “port” code from Unices to DOS. It was the compiler of choice for example for the SGI IrisVision SDK, I’ve even managed to compile and run some IrisGL samples on my PS/2 with a set of IrisVision boards.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.