Saturday, December 23, 2023

When the Power Macintosh ran NetWare (featuring Wormhole and Cyberpunk)

This entry and the software we'll demonstrate is in large part thanks to an anonymous Apple developer who was part of the NetWare team. Thank you!
Ah, Novell NetWare, the network operating system of the 1990s. Nothing was quite like it. Until Windows NT muscled in on its action near the end of the decade, if you were sharing lots of files between lots of PCs, NetWare was in there somewhere. My earliest memory of NetWare was stealing liberating a copy of Borland Turbo Pascal from a campus NetWare 3.x server around 1993-4, which, because God has a sense of humour, was later the University I ended up working for.

Why, the very mention of NetWare almost certainly caused those of you familiar with it to get an instant mental image of MONITOR.NLM, like this as shown in Bochs:

But Novell wanted NetWare servers to be more than just PCs (and the PC ecosystem to be more than just Microsoft), and in an attempt to gain footholds elsewhere the company accumulated some strange bedfellows. HP, Sun and Data General were on board, and IBM did so in grander form, but surely the most unexpected company Novell tried to court was ... Apple.
Yes, that screenshot is a real Power Macintosh 6100 (actually a Performa 6116CD) in the Floodgap lab running exactly what you think it's running. As a matter of fact, that Apple logo superimposed on the '90s Novell "teeth" I led off with was a real resource image that came from it.

No, I don't mean Macintoshes accessing NetWare servers as clients: we mean Macs as NetWare servers themselves. As proof, we'll take an entire tour of Power Macintosh NetWare on the 6116CD and try to boot it on the Apple Network Server, its actual intended target. NetWare on the Mac really existed as part of the same bizarro universe that ported the Macintosh Finder to Novell DR-DOS — meaning it's time for yet another weird Apple story during Apple's weirdest days.

For as associated with PCs and DOS as NetWare ended up being, the first version of what would become NetWare didn't even run on x86. Novell was originally founded as Novell Data Systems, Inc., in Orem, Utah in 1980. They initially sold their own Z80-based CP/M hardware, which wasn't very lucrative as market competition grew, and as a means of distinguishing their offerings Novell management hit on the idea of networking the machines together. For this work the company contracted with SuperSet Software in 1981, founded by a group of Brigham Young University alumni (notably Drew Major who went on to become Novell's chief scientist). They developed S-Net, short for "ShareNet," a Motorola 68000-based server running CP/M-68K able to share data between CP/M clients. As CP/M marketshare started to shrink, S-Net was retrofitted to allow it to also serve MS-DOS PC clients and became the first version of NetWare in 1983.

This box shown here was actual "68B" server hardware Novell sold in the mid-1980s. In early networks client nodes were connected in a star arrangement, moving to more complex topologies as networks increased in size, but primary communication with the server both then and later was via the NetWare Core Protocol (NCP). Those nodes that were directly wired to an S-Net box communicated via RS-422, but larger networks transported NCP over the IPX and SPX protocols derived from Xerox Network Systems' IDP and SPP, which are roughly analogous to IP and TCP. (In 1991 Novell added TCP/IP support directly.) NCP supported file and print services, but unlike many contemporary server products, NetWare shared at the file level rather than the disk level. Instead of a client having to pull blocks from a remote volume to find a particular file or folder, a client simply asked the server directly for the resource, and the server did the lookup locally. Transactions were thus faster and accordingly more granular. Applications like NetWare's simple electronic mail facility were layered on top of the basic infrastructure.

To broaden the market further Novell ported NetWare away from their custom 68000 hardware to 8086 PCs in 1984, becoming NetWare 86 (the 68000 version duly became "NetWare 68"), and then Advanced NetWare 68 and 86 in 1985 which could support more than one server. The PC versions employed a custom NetWare File System (NWFS) format for NetWare partitions that allowed larger capacities and faster access than DOS FAT. (In fact, NWFS was a substantially modified form of FAT.) They were generally hardware-agnostic and any PC with sufficient memory would suffice if NetWare drivers existed for its storage and network cards. As NetWare was the best known network operating system at the time, most enterprise hardware companies supported it. A fault-tolerant version was also provided for those applications requiring high reliability. After the 80286 became available, in 1986 Novell released Advanced NetWare/286 (becoming NetWare 2.x), supporting up to 16MB of RAM in '286 protected mode and disks as large as 256MB (compared to the contemporary DOS limit of 32MB).

Novell also developed a VAX-specific NetWare 2 for VMS in 1988 which transparently interchanged files and allowed PCs to access VMS printers. Unlike the PC version, where NetWare assumed control of the entire machine, VMS NetWare ran on top of VMS. We'll come back to this momentarily.

Meanwhile, NetWare/386 (i.e., 3.x) in 1990 expanded PC NetWare further: part of its performance dominance came from aggressive caching in which the NWFS volume(s)' entire directories were kept in RAM, but this also meant the 16MB RAM limit in 2.x constrained how large its volumes could be. Taking advantage of 80386 32-bit protected mode for even more memory, 3.x's upgraded NWFS could also support drives as large as 1TB and files up to 4GB in size, in addition to introducing a much more efficient routing protocol for large networks. Additionally, it no longer cold-booted directly into the operating system, relying on MS-DOS to serve as a bootloader and repository for the kernel and critical system files, after which the NetWare kernel would take over as usual.

NetWare 3.x also introduced the concept of the NetWare Loadable Module, or NLM. In previous versions of NetWare, the kernel was monolithic, and changing options or drivers required relinking the kernel and restarting it (though this was also true of many other contemporary operating systems). In 3.x, drivers, system extensions and even applications could now be loaded and unloaded dynamically while the server was running, including third-party tools. However, NLMs still ran within the kernel's address space. Although 2.x and 3.x supported protected mode, NetWare largely used protected mode merely as a means to access more memory, and for maximum performance the entirety of the operating system and all NLMs loaded within it ran cooperatively multitasked at ring 0 (supervisor).

This architecture made NetWare much faster than other server operating systems, but at a technical cost. While it was possible to load NLMs into separate protection domains from the kernel, this was infrequently done in practice because cross-domain calls would then incur RPC (i.e., remote procedure call) overhead, and doing so didn't ameliorate all the possible pitfalls regardless. As there was no support for virtual memory, everything had to fit in physical RAM and there was little to prevent a long-running NLM with leaks from exhausting available space. Likewise, a malfunctioning or badly-written NLM could simply hog the CPU and hamper performance — or worse, trigger the dreaded ABEND (ABnormal END) system crash and/or lock up the machine, just like any "regular" kernel bug could.

Parallel to canonical NetWare was a Novell initiative called Portable NetWare in 1989 (we talked about this briefly before when I went through the story of how the Apple Network Server ended up running AIX), a descendant of NetWare for VMS developed jointly on the same codebase that would become 3.x. Unlike regular NetWare where NetWare itself was the kernel — but like VMS NetWare — Portable NetWare ran NetWare services on top of some other host operating system, and the host OS provided the device drivers, file system and cache. The source code was high-level, architecture-independent and POSIX-compliant.

Novell announced twenty-three vendors planned to support Portable NetWare, starting with Prime Computer on their 80386-based EXL 816 server running SVR3 and NCR on its 68K-based Tower/32 series, and Novell also listed Data General, Nortel, Sun, TOPS, and Unisys as leading partners along with Acer, Altos, Cubix, Datapoint, Harris, Hewlett-Packard, Intel, MIPS Computer Systems and Zenith. Novell themselves claimed they were working on their own in-house port of Portable NetWare to IBM OS/400 and that VMS NetWare would officially become a Portable NetWare flavour too (after all, it already was, more or less). IBM and Novell inked a joint licensing deal in 1991, additionally bringing Portable NetWare to IBM AIX (named NWserver) and OS/2.

In 1992, Apple announced its own deal with Novell. Not only would Macintosh users get full access to NetWare services, but the Macintosh Finder would become the front end for NetWare and Novell's DR-DOS — from Novell's recent acquisition of Digital Research, a nice bit of symmetry with NetWare's CP/M origins (despite Apple suing Digital Research in 1985 for GEM ripping off the Mac). Apple also planned to port Apple Events, QuickDraw GX and other key libraries to DR-DOS, yielding a hybrid Mac-on-DOS system that both companies believed would enable them to jointly take on Microsoft. (Novell CEO Ray Noorda even conducted talks with Apple CEO John Sculley about merging the companies, though nothing would come of it.) This was the Star Trek project, going "where no Mac had gone before" (to Intel), and was even quietly supported by Intel themselves who provided '486 systems for the porting work. The prototype came together in just over three months, including its own functional port of QuickTime, but PC manufacturers were uninterested due to their restrictive royalty terms with Microsoft and industry figures openly derided it (Bill Gates himself called it "lipstick on a chicken"). The project was controversial internally as well, and after Sculley's departure incoming CEO Michael Spindler killed it in 1993 as a potential threat to the upcoming PowerPC transition.

That didn't mean, however, that Spindler wanted nothing to do with Novell or NetWare. Apple's server group still needed a server-grade operating system (which the classic Mac OS could not satisfy), and while PowerOpen — in the form of "new A/UX" — at least at the time remained the eventual future strategy, neither it nor Pink, the intended successor to System 7, were anywhere near ready. With that context in mind, a proven popular server operating system Apple could simply slap on top of MacOS was a thoroughly plausible fallback. In 1993 Apple started work on its own internal port of Portable NetWare to run on top of Mac OS, variously codenamed Wormhole and Deep Space Nine, which used some of IBM's work on AIX NWserver but was based on System 7. Wormhole was intended for the PowerPC 601-based Green Giant, i.e., what would become the Workgroup Server 9150, but it met a poor reception with testers who wanted a Unix-based platform instead. As such, upon its release in April 1994 the Workgroup Server 9150 ended up just running MacOS like the contemporary Starbucks WGS 6150 and 8150 systems (and every other Workgroup Server to that point, the AWS 95 notwithstanding).

In the meantime, initial industry interest in Portable NetWare was waning, the implementations that did exist were slower and didn't always take good advantage of their host environments, and the core PC version could not run on the RISC servers that then dominated enterprise IT. Against this backdrop NetWare 4.x also came out in 1993, introducing central directory management (NetWare Directory Services) based on X.500, but also doing away with the Portable concept. Instead, the NetWare kernel itself would become cross-platform to yield Processor Independent NetWare (PIN), starting with a port to the DEC Alpha and an HP-sponsored one for PA-RISC. Like PC NetWare, after running the bootloader PIN would take over completely, running directly on the metal and serving everything natively from an NWFS volume.

With the release of Starbucks and Green Giant in April 1994, simultaneously with Novell announcing support for IPX under OpenTransport, Spindler (alongside the long-promised development of Apple's "Unix PowerPC server") vowed at least one Apple system would support Processor Independent NetWare too. This project was codenamed Cyberpunk.
Cyberpunk got as far as actual CDs being pressed for it, and this is one of them, as provided by our anonymous Apple developer (marked Apple Registered Confidential, so I've blacked out the hand-inked CD number even though it almost certainly doesn't mean anything anymore). Despite the label reading ".1", the disc actually contains a demo dated July 20, 1994, "r[evision ]5," and the disc itself is dated August 1994 based on the etching on the inner ring. It contains a bootable Mac OS 7.1.2 (the first version of System 7 to support Power Macs), a disk utility for cloning and partitioning, a disk image for installation, the bootloader (a MacOS application), the NetWare kernel, documentation, and other sundry utilities and client tools. We'll look more into the CD contents a little later.

At the time of its development there was no self-hosted Power Mac compiler, so the source code was written on a Macintosh but actually compiled using IBM xlC on RS/6000 AIX. (Recall that 32-bit AIX and classic PowerPC MacOS share the same PowerOpen ABI because of their interrelated history, and early in the Power Mac's existence the Macintosh Programmer's Workshop [MPW] also directly supported the AIX XCOFF binary format.) Although documentation on the disc references the 9150, the version of Mac OS 7.1.2 on the disc predates the 9150 and isn't bootable on it, so a fair bit of its development actually occurred on Piltdown Man (a/k/a PDM, i.e., the 6100). However, the documentation also makes reference to Cold Fusion (the 8100), which was introduced at the same time as the 6100 and 7100, treating the 8150 as the "standard" demonstration system. As the Workgroup Servers 6150 and 8150 are otherwise hardware-identical with the hoi-polloi 6100 and 8100 and the 6100's various Performa rebadges, it works with them too.

That said, those machines were merely stopgaps for development. The real target was the Shiner prototype, that big enterprise server Scully and then Spindler had long promised (viz., what would become the Apple Network Server), and the developer remembers Cyberpunk booting directly on early versions of the hardware. We'll look at that near the end. For now, let's first get it running on our local Performa 6116CD, the last and questionably mightiest of the Performa 6100 clones.

In general terms the Performa 611xCD series are just basic 8MB Power Macintosh 6100/60s with differing hard disk sizes and pack-in software bundles. The first Mac I ever personally owned was almost a Performa 6100 something-or-other but the seller wanted $200 for it (in 1999, about $350 in 2023) and I was a starving med student at the time, so I ended up with a cute little IIsi instead which I got for the price of "take it." Recapped, that IIsi is still in my collection and still works. This one I got from a seller about a decade-ish ago in the L.A. Antelope Valley who had pimped it out with a Sonnet G3 CPU card, a faster CD-ROM, a nice fat SCSI drive and 136MB of RAM. I nabbed it with the intention of it being the replacement AppleShare server when the NetBSD IIci bit the dust, but it didn't bite the dust and continues truckin' to this day, while my own hopped-up "SR-7100" became my preferred 601 system instead because it has more expansion options. I can't remember why I didn't take this to the Vintage Computer Festival consignment table when it was just sitting around, but boy am I glad I didn't, because getting this article off the ground might have been more difficult without it.
For the purposes of this demonstration, however, we're going to strip out all the previous owner's carefully added upgrades. I removed the hard disk for safekeeping and attached a BlueSCSI v1 to the external SCSI port so that I could backup the disk image when we were done (this turned out to be advantageous in other respects too). Naturally the Sonnet G3 had to come out of the PDS slot, and I also ended up having to replace the two 64MB RAM SIMMs with two 8MB ones for a reason we'll get to in a moment. I dug out an AAUI transceiver for the MACE (AMD AM79C950) Ethernet port and an HDI-45 to Mac DA-15 dongle for the Ariel II video, but my INOGENI VGA capture box only likes 60Hz video, so I had to tack on a Mac multisync adapter set to force a 640x480 VGA compatible display as well. We fire it up and insert the demo CD, holding down Command-Option-Shift-Delete to force alternate boot.
Happy Piltdown Man!
The "Welcome to Power Macintosh" message is unique to System 7.1.2 on PowerPC; no other version prior or since displayed it.
At the desktop, successfully having booted from the demo disc. The BlueSCSI volume is named Cyberpunk, but although BlueSCSI's compatibility has greatly improved, the disk utility on this CD reported an error and refused to initialize it. I ended up connecting it to my Mystic Colour Classic and running the trusty patched version of HD SC Setup 7.3.5 to initialize the disk for it first. At this point in installation the Cyberpunk volume is completely empty.

In the root folder of the demo CD is an original 7.1.2 System Folder which can boot the 6100, 7100 and 8100 (but not the 9150, tried and failed), various System installers (which we don't need for this), a basic Utilities folder with Disk First Aid and Disk Copy (not much use here), the actual NetWare Demo files and tools, and a copy of ClarisWorks 2.1 used for opening the files in the "Read me first" folder, which automatically opens to show its contents.

There are four documents on the disk specific to Cyberpunk, three of which are here: one that talks about how to set up the server, PC client and Mac client for Apple's demo ("Do not give this disk to non-Apple employees without specific permission of [redacted] (408-XXX-XXXX)"), one that actually contains the script for that demo (referencing the 9150, which this disk most certainly does not boot on), and one that talks briefly about the technical underpinnings and how the hard disk partitions work. Here we'll simply open the technical-partitions document which we will liberally refer to in this article.
Starting ClarisWorks, which was an Apple-site licensed copy.
I've redacted the author's name, but this person knows who they are. I converted these documents from ClarisWorks to PDF by loading the fonts onto my MDD G4, opening the documents there in ClarisWorks, printing each page as a TIFF using Print2Pict, and then binding the TIFFs together into a PDF with ImageMagick on my Linux workstation.
The meat is in the NetWare demo folder. Within that folder the "pc files" and "MAC CLIENT" folders contain their respective client software installs (as well as a Windows version of ClarisWorks), but I should parenthetically note that regular PC Netware 4.x looks like an AppleShare server to Macs on the network and ordinarily no separate client software is necessary. (This functionality was sold separately prior to 3.12 and from 5.x on; 3.12 came with a miniature AppleShare server with five licenses but 4.x has no such limitation.) However, Cyberpunk doesn't appear to implement this support, and it's not clear if the final version of Apple NetWare would have done so anyway because it might have cannibalized Apple's own file server sales.
Instead, what this software actually enables is letting Macs access NetWare servers over NCP (via MacIPX), i.e., a true NetWare client implementation for MacOS, and that particular functionality was what was shown to users in the demo. It includes its own kit of software to install and a demo document, in PC ClarisWorks 1.0 format, for the demonstrators to "collabourate" on for the audience's benefit.
The demo document was the actual Apple-Novell joint press release (titled "Greased Lightning") dated April 25, 1994 from when the Workgroup Servers were first released. You'll notice there is no Apple logo: part of the demonstration was to plunk the rainbow Apple logo into it and show that the edit was reflected on the other machine. Because this was just for show, the text was not paginated out fully, which I've done in the wider image so you can read the entire contents and see I haven't made all of this up. (I've got a photograph later, too.)

While Spindler is quoted, you'll also notice Ray Noorda isn't. That's because by then he wasn't Novell CEO anymore. We'll loop back around to this at the very end when we finish our story.

The version of the Mac client on this CD calls itself MacNCP and is tagged as a pre-alpha, and includes its own system folder as an insurance policy "in case anything goes wrong" (per the setup document).
This pre-alpha is a bit different from the later production version; among other changes, it doesn't seem like the Bindery Chooser (a Desk Accessory similar to the regular Chooser allowing you to browse NetWare's network database) made it into the release. While this client did subsequently become a formally released product, its development costs didn't really translate into NetWare sales (Cyberpunk's subterranean existence notwithstanding), and Novell jettisoned it after only a couple versions to a third-party developer. Since we're mostly just interested in the server software, we'll open up the third folder.
This folder contains all the pieces needed to install the demonstration NetWare server package. Starting at the top and going clockwise, we have a copy of a bootable 7.1.2 System Folder (again, except on the 9150) with the blessed set of INITs and CDEVs to get it rolling, an application called "PDMLoader" and a file named "NWStart" which from their icons are obviously related, the PowerPC version of INSTALL.NLM (i.e., the NetWare Loadable Module used for installation and configuration) marked for "emergency use only," and two other files also obviously related based on their icons named "PartitionMgr" and "Demo7/20.nsa."

In the centre is an application named Apple NetWare Setup marked with the same icon as used for the regular HDSC Setup hard disk utility. We'll start there.

Both the icon and the main screen clearly show that Apple NetWare Setup is descended from HD SC Setup, and even claims the same general version number (7.3) — and likewise inherits its same refusal to work with disks that are not Apple-ROMmed. The BlueSCSI v1 is just alike enough to an Apple ROM Quantum Fireball that NetWare Setup will accept it as a valid target and partition it, but it will not initialize it, which is why we did that step separately. Although I also tried with an OEM Seagate Hawk and Quantum Atlas II, NetWare Setup wouldn't even talk to them, just like unmodified HD SC Setup won't. The application should be hackable to allow third-party disks but there is no wfwr resource to change, meaning I'd likely have to dive into the CODE resources instead, so we'll proceed with the BlueSCSI since it works.
The ClarisWorks setup document says it requires at least a 160MB hard disk, so I created a 1.0GB disk image on the BlueSCSI and selected the largest "250Meg Mac + NetWare" pre-defined partition scheme (the setup document says use the "80Meg Mac + NetWare" option but this one works too). There is a bug here that it calls that scheme a "40Meg Mac" in the blurb box but it will indeed create a 250MB partition for MacOS and use the rest for NetWare, which is what we want. I didn't experiment with any custom partition sizes since I wasn't sure how this alpha demo would react to them.

Ordinarily, the partition scheme for a single one-volume Power Mac disk would consist of an Apple partition map (APM), various drivers and OS patches (as needed and described in the device's first sector), the actual HFS volume, and then any unallocated space (typically trivial). In Cyberpunk NetWare, however, the portion after the HFS volume starts with an XCOFF binary called NWstart, which we saw in the server install folder, and is in fact the NetWare kernel (more later). This seems to have been intended for Open Firmware-based systems (in this case Shiner) that would boot from it like a more typical "partition zero" loader, but this partition is unused on the supported NuBus Power Macs which don't have Open Firmware.

After NWstart comes the NetWare System Area, or NSA (not to be confused with those naughty little SIGINT spies), which only NetWare Setup knows how to create. The Mac sees this as one big partition in the APM, but NetWare divides it first into an INWDOS subpartition where the system files live (like C:\NWSERVER on PC NetWare), and then all the NetWare volumes follow in NWFS format, starting with SYS: (the primary). Those partitions will be created shortly; we'll make the Apple native partitions first.

Partitioning on the BlueSCSI is very fast, a matter of seconds. Once done, we can now quit the NetWare Setup utility ...
... and, after dragging that System Folder copy to the new Mac partition, we start up from the Cyberpunk volume.
The second step is to do the installation. With a NetWare 4 CD you'd run the installer from the disc, but we don't have that. What we do have is an image of the demo NSA, and now we'll drag that onto the PartitionMgr tool to copy it to disk.
Startup box, giving its full name as (uninterestingly) "Partition Manager" and reminding us that it is, in fact, Apple Confidential (not to be confused with the Owen Linzmeyer book).
The partitioning document explains that PartitionMgr will scan the available disks for one with an available NSA partition type in the APM. There is only one such disk in the system, so of course we select that.
Given an NSA image and a valid target partition, two install modes are possible: if the INWDOS segment gets corrupted (a real risk with alpha software) or needs to be updated, you can just do that without whacking your NWFS volumes. However, we don't have any NetWare volumes to preserve and need to create them to continue, so we go the second route to (re)format the entire NSA.
PartitionMgr creates two subpartitions in the NSA, as shown in the upper pane of the window. The partition types are those that would be used in a PC master boot record. Type 0xbb refers to the INWDOS segment and seems to be unique to PIN; type 0x65 is the standard partition type for an NWFS/386 filesystem and represents SYS:.
After the NSA is formatted and divvied up, the files in INWDOS are listed ...
... and PartitionMgr terminates cleanly.
If we start PartitionMgr up without an image, it will let you access what's already present (as explained in its About box, which reminds us that it is — you guessed it — Apple Confidential).
The lower pane is a scrolling view of the files in INWDOS. Because not all the NLMs had been ported to PowerPC yet, and of course practically none of the PC drivers would be relevant, this is a much smaller set than you might find in a regular production NetWare 4 installation. The NSA image contains its own SERVER.MLS license file (for 250 connections: even I don't have 250 NetWare-capable computers), but old NetWare hounds will wonder why there's no INSTALL.NLM other than the separately available emergency one. We'll get to that part later on when we talk about FIXUP.NLM, which is present.
The NWStart menu is non-functional in this version, but the NSA menu does work, and allows you to reformat the NSA, install another image, or copy and retrieve files from INWDOS for spot changes (or singly installing additional NLMs). There is no analogous option to handle files on the NWFS volume(s) because you can of course directly access such files when the server is up.
At this point we're finally ready to boot Cyberpunk. For convenience and so I could run this later without the CD, I copied the last two pieces to the Mac partition (PDMLoader and NWstart).
You can just drag or double-click NWstart, but I'll start up PDMLoader separately first to show you around a little. The name is clearly an acronym for Piltdown Man (the 6100's code name), but the setup document, which proffers the WGS 8150 as the standard demonstration system, also uses it (i.e., there's no Cold Fusion Loader, and certainly no Carl Sagan Butt-Head Astronomer Lawyers Are Wimps Loader since there wasn't ever a WGS 7150). As the systems have very similar hardware and chipsets, and identical ROMs, what works for one works for the others (again, except the 9150, which is slightly different).
PDMLoader will ask which disk has the NSA we want.
After that, it will ask for the NetWare image we want to run. This is where NWstart comes in, which we previously mentioned is in fact the kernel.

NWstart is an 3.4MB XCOFF binary that /usr/bin/file identifies as a executable (RISC System/6000 V3.1) or obj module. Strings within the file give it a 1993 copyright date (by both Apple and Novell), and it is not stripped, so it still has debugging symbols showing it to be written at least partially in C++. Although there is no accompanying xSYM debugger file, which will shortly be relevant, it also carries an entire on-board debugger of its own within it (QDB/601 version 1.0d4.1 (10/15/93), not to be confused with the Python debugger or the QNX debugger). The function symbols reference C++ types starting with obvious NetWare-specific names like NSI*, such as NSIConfiguration and NSIAlloc, and appear to contain the basic low level code for memory management, Ariel II display and screen control (with pieces of a xterm termcap entry), CUDA and ADB keyboard support (actual string: ouch! what you interrupting me for man?), queues and synchronization, and file, volume and disk management.

In this version of Cyberpunk, the only supported way to bring up NWstart is through the loader, analogous to things like the MkLinux boot extension since NuBus Power Macs can't boot either directly. On the other hand, NWstart has strings within it referencing AAPL,PPC6100 AAPL,PPC7100 AAPL,PPC8100 and AAPL,PPC9150 and even AAPL,PDM. These are Open Firmware identifiers and never appeared as such in any production version of those machines or their ROMs (the 6100, 7100, 8100 and label variants use the same ROM), and may explain one of the filenames (FakeOpenBoot.cp) as glue code to present a synthetic Open Firmware device tree to the kernel for systems that don't have one. Indeed, the kernel also seems to look for Open Firmware paths like /chosen, /mmio and /cpu (specifically the timebase-frequency and clock-frequency properties) despite the fact none of the systems here implement those either. Notably, no other model identifiers appear in this file — including AAPL,ShinerESB for the ANS, which does have Open Firmware, and wouldn't need such trickery.

The only credits string within it says Written by: Drew Major, Dale Neibaur, Kyle Powell, Howard Davis — who developed NetWare at Novell, not Apple. Many functions appear with "stubbed" messages and many strings still reference NetWare 386, so the work on the kernel was clearly unfinished.

If we click the Preferences button, we can select "targets" for the NetWare console and for the two, count 'em, two supported debugging options. We're going to run Cyberpunk on the 6100's built-in Ariel video (NuBus video cards are not supported), but it is also possible to redirect it to either the printer or modem port (19200bps 8-N-1, but make sure LocalTalk isn't on). QDB, the onboard debugger, can also run on the console simultaneously or be redirected to either of the serial ports as well (same speed).

The other supported debugger is R2Db, standing for "RISC Two-machine Debugger." Like regular MacsBug of the time it was a systemwide low-level debugger, but could also do source level debugging with an xSYM, which I mentioned we don't have. (As debug symbols are present in NWstart, it should be possible to generate it from the XCOFF binary in certain versions of MPW with something like makesym -o NWstart.xSYM NWstart but this exercise is left to the reader.) The name comes from the fact the interface doesn't run on the Power Mac: it runs on an attached 68K Mac running the R2Db client which came with contemporary builds of MPW, and was tethered to the Power Mac using a standard Mac printer cable (i.e., null modem) in any free serial port. On the Power Mac side a component called the PPC Debugger Nub communicates with the 68K Mac, accepting commands and reporting exceptions, breakpoints and machine state. According to our anonymous developer, much of the debugging work was done in R2Db.

QDB is more convenient, however, and for purposes of demonstration it is more than sufficient. We'll tick the box to enter QDB on startup and click Accept.

Finally, we select NWstart and click Select to start the kernel. Once the kernel successfully comes up, there's no returning to Mac OS without restarting the Power Mac.

At this point, I personally experienced two things that can go wrong with the boot process.

The first is memory size. Remember how I said that I needed to reduce the 136MB of RAM present to 24MB (i.e., 8MB soldered on the motherboard and two 8MB SIMMs)? The reason is that PDMLoader can't handle an address space that large and I meekly admit that the setup document even says so, saying the standardized system is a "Power Mac 8150 (8100/80) with 24 mb of memory - exactly". I figured this wasn't current information since it also happily accepted my 1.0GB disk image despite no version of Cyberpunk probably ever having run on a disk that large. Well, no. If you ignore their warning, you'll get this message, and PDMLoader will exit.
Assuming you have the right memory configuration, the Cyberpunk screen appears (this is a PICT resource that I extracted to show you earlier). The anonymous Apple developer commented that they had T-shirts of both this and Deep Space Nine. At the behest of Apple's attorneys (remember that Lawyers Are Wimps) the development team was obliged to contact Paramount to see if licensing was required for the DS9 tees; Paramount asked how many they planned to make, and laughed and said fine when they estimated around twenty-five. Notice the version number at the lower right (1.0.0d21).
The first boot stage puts small coloured dots at the upper left as a progress indicator. As the kernel bringup proceeds, a blue dash acts as a cursor, moving to the right leaving white dashes over the dots that have been completed. After a couple go by, we drop into the QDB debugger.
The breakpoint triggers in NSIConfiguration::InitializeQDB, a C++ method implemented expressly for this purpose. QDB is a basic debugging tool that operates at a relatively low level, but its main virtue is convenience, since it's ever-present and can run on the console without needing a sidecar serial terminal. Now that we know it's there and functions, we continue execution.
If you proceed through the bringup sequence successfully, you are rewarded with the message "in Loader PreludeStart" (which looks like it's part of the FakeOpenBoot) and jumps into the kernel via NSIStart.

The second way I found the boot can go wrong is if that message doesn't show up and the kernel hangs. If the blue boot cursor freezes before the last purple and yellow dots, and the PreludeStart message doesn't appear, the most likely cause is the bootloader doesn't like your hard disk. The setup document mentions something like this could happen with certain IBM-manufactured hard drives, though it also claimed it would do so after a whole bunch of messages are printed that we don't see here (presumably when the kernel has actually started), and that the issue was fixed for this alpha.

In my case, however, it happened with the BlueSCSI. My initial solution was to try those other non-Apple-ROMmed real SCSI drives, only to find out that NetWare Setup didn't like them and wouldn't partition them. The real fix, at least for the BlueSCSI v1, is to update the firmware: I suspect the change in v1.1-20220917 to improve compatibility with SCSI phase changes was responsible, but you should run at least v1.1-20231116, which is what we're using here. With that, bringup will complete and the kernel will begin execution.

We'll get lots of fun informational messages to speculate on, so pardon the surfeit of screen grabs to follow. I've tried to capture each of the messages it will display in at least one grab.

The first message gives the exact version of the kernel: "Novell NetWare Prototype v4.11 - Alpha 1.5" dated July 19, 1994, hot off the press on this July 20 disc. This version is notable because 4.11 was the first release of NetWare to support symmetric multiprocessing. While the PowerPC 601 is perfectly capable of SMP, and various non-Apple systems implemented it, no 601-based Power Mac ever shipped with multiple CPUs. Shiner, on the other hand, was intended to have an SMP option and prototypes were developed (hint to any ex-Apple employee that still has one: my working ANS 500 with AIX would love it and I'm happy to deal), so the kernel would have hopefully been ready as soon as the hardware was.

The font used is Monaco, in its original bitmapped monospace form, which gives Cyberpunk more of a Mac feel than Harpoon AIX on the ANS (uses the default AIX LFT console "Ergonomic Medium" font) or MkLinux (uses icky default PC VGA glyphs). It certainly goes a bit easier on my eyes than regular PC NetWare, that's for sure.

Loading device drivers for the 6100's NCR 53C94 SCSI controller and two devices, SCSI ID 1 (the BlueSCSI) and ID 3 (the CD, which was still mounted). The "restricted API call" warning occurs a lot in Cyberpunk. It's an alpha, after all.
Checking the SYS: volume.
Bringing up the time and setting the server name (NW_DEMO) and internal IPX network number.
Loading the network drivers (I don't know what the message about REAKONSTART means). The driver's filename APMAAMBI.LAN clumsily expands to "Apple MACE-AMIC Built-In" Ethernet (MACE is the on-board AMD Ethernet AM79C950 PHY; AMIC is the 343S0801 Apple Memory-mapped I/O Controller which handles most of the system's DMA and I/O).
Now into loading the NetWare components, starting with the Authentication Tool Box, NetWare 386 Policy Manager and Unicode Library. This library is quite possibly the first built-in support for Unicode on any Apple-developed operating system ed: on the Mac (Unicode was not officially supported until Mac OS 8.5 with the introduction of ATSUI). [UPDATE: Matej Horvat points out that Newton OS 1.0 (1993) does support Unicode built-in as UCS-2, and the Apple developer worked on multilingual text support in Pink/Taligent prior to this project, though obviously that system's history is murkier.]
Despite that, the system reports "code page 437" (i.e., DOS Latin). Next up is the loader for NetWare Directory Services, Time Synchronization and the User Utility.
But this is an Operating System From The Future. No matter what you set your Mac's clock to, when Cyberpunk boots it will always be Saturday, March 12, 2072 at 2:56:48pm Pacific Standard Time (for comparison, the classic Mac OS's time value overflows at 6 February 2040 at 06:28:15 UTC), so you needn't worry about the PRAM battery being out. We are duly warned that "[t]his is a PROTOTYPE version of a future NetWare product. It may not be DISCLOSED, REPRODUCED or DISTRIBUTED in any form."
And after the license information is displayed, the kernel is running, and we are at the command prompt. Welcome to NetWare ... on the Mac.
Now, it wouldn't be NetWare without running the monitor, which makes a good segue into talking about NLMs in Cyberpunk.

To this day Novell's Tech Center still has documentation on NetWare Development on the PowerPC due to the Cygnus port they sponsored, but this specific document is actually about Cyberpunk and even mentions the Workgroup Servers explicitly. Novell blessed three ways to compile NLMs. If you didn't have a Macintosh, you could create them either with the IBM cset C++ compiler (xlc under the hood; contemporary versions of straight-up xlc would also work, and were upwardly compatible) on RS/6000 AIX, or Cygnus' cross-compiled PowerPC gcc on Novell UnixWare, both of which will generate XCOFF objects. Otherwise, you compiled on the Mac using contemporary versions of MPW, which included Apple's PowerPC C compiler PPCC, and turned that object into an XCOFF with PPCLink.

Because you're not writing for MacOS, an SDK with headers and objects specifically for NetWare for PowerPC was made available, though this SDK is not on the Cyberpunk demo CD and appears to be lost. Regardless, once you had your XCOFF binary, you then fed it to the SDK-provided NLM linker (for MPW, this was facilitated with a script called NLMLink) along with two separate object files (the standard Mac PPCRuntime.o plus a NetWare-specific Prelude.o) and a definition file you create. This file would contain your XCOFF object's imports from the NetWare C library and other running NLMs, exports you want to make available to other NLMs, its copyright and version metadata, and how to invoke it (which routines to call to start and exit it, and whether it was "reentrant" or not, i.e., whether multiple processes could run from a single shared copy in RAM or required a copy per process).

Once linked, theoretically the NLM it produced could run directly on Cyberpunk, but officially to test and debug it you would "need the developer's version of NetWare for PowerPC from Novell. You can install it on any Power Macintosh computer." This version also appears to be lost.

With the load monitor command familiar to every former NetWare administrator, we start the "NetWare 386 [sic] Console Monitor."
The Monitor comes up in the usual colour scheme and even uses PC box-drawing and background characters. Pretty much all the typical vital statistics you'd see on a regular NetWare server is here, because hey, it's NetWare. Let's explore some of the guts.
First, what system modules are loaded? We scroll through the list:
This list includes both the Apple-specific hardware drivers (Ariel video and the ADB keyboard are handled within the kernel itself) as well as the NetWare-general modules, but seems a slightly smaller set than my model NetWare 4.1 installation in Bochs and likely not everything had been ported yet.
There is one hard disk, the "QUANTUM" being emulated by the BlueSCSI v1.
Within it NetWare only reports two partitions. That's because that's all it can see, despite knowing the entire virtual disk is 1GB; based on the partition blocks count, the two partitions are likely the 250MB Mac partition (subsuming all Apple partitions) and this larger one consuming almost all of the rest.
But despite all that space potentially available, the demo NSA gives us just 52MB for SYS:.
The MACE-AMIC LAN driver is set up for both IEEE 802.2 LLC and IEEE 802.3 Ethernet.
At least for 802.2, however, we can't see much more than that.
There are just two active connections, NW_DEMO.DEMO and NOT-LOGGED-IN.
The demo login appears to be active and operational, and we can get its status.
But we can't for the other connection, the one that's not logged in, because it's not logged in.
Cyberpunk NetWare also supports multiple virtual screens like regular NetWare. With the monitor running, there are three screens: one for the system console, one for NetWare Directory Services, and one currently for the monitor.
Directory Services seems to work, though I didn't test it much. But if you leave the monitor idle, something else works:
It's the NetWare Worm! It has to be NetWare if it has that! There is only one CPU, and the only Cyberpunk system that would have had two is Shiner with the unreleased SMP card, so only the single red worm will appear. (You can see it in its simulated multiprocessor glory apparently with this replica screensaver, or, if you're jwz, this one for XScreenSaver.)

The NetWare Worm is an important part of the historical record of Cyberpunk, by the way.

(Photo credit, Joe Pugliese, Associated Press.) This picture is of Michael Spindler himself on the same day as that April 25, 1994 press release, speaking at Cupertino in front of three systems with a NetWare box conspicuously sitting on top. The left machine cannot clearly be seen and the rightmost one not at all, but the middle one is most likely a WGS 8150, which we already know is the "standard" Cyberpunk system. On its screen we see the obvious red worm moving about as proof of what it was running.
Well, that's enough of that.
Various bugs do crop up in odd places, such as recurrent BAD MESSAGE, er, messages in the console.
Also, even though almost every typical NetWare 4 command is listed in the help summary, some of them seem ... irrelevant.
For example, you can REMOVE DOS (like you would do on PC NetWare to prevent someone exiting to DOS), but this is one of the "stubbed" functions, and just pretends. Because you can't remove the Macintosh Toolbox — it's in ROM, silly!
Bringing down the server with DOWN. However, if you Type EXIT to return to DOS., it reboots the Mac; it does not shut down.
So we do so from the Finder (though the 6100 has an external power switch).

I did try running QDB over the printer port using a null-modem cable while playing with Cyberpunk, but the entirety of QDB's output from startup to shutdown looks like this:


NSIConfiguration::InitializeQDB

PC=00152D2C

### A programmed user breakpoint occured

### User String: Startup Break
R0  0014b448  R3 003ed9ec  R9  50f04000  R15 00000000  R21 00000000  R27 00000000
SP  0048dde0  R4 00000000  R10 00000020  R16 00000000  R22 00000000  R28 07070000
TOC 00479efc  R5 004706f0  R11 00479648  R17 00000000  R23 00000000  R29 01010000
              R6 0056d9a0  R12 00000000  R18 00000000  R24 00000000  R30 003ea768
CTR 0014b448  R7 0056d970  R13 00000000  R19 00000000  R25 00000000  R31 003f0be0
LR  0015d5a8  R8 50f04000  R14 87f00005  R20 00000000  R26 00000000
CR  24000000  --E- -G-- ---- ---- ---- ---- ---- ----  XER 00000000  SRR1 00022000

00152D2C:0FE00000    twi        TO_LT|TO_GT|TO_EQ|TO_LOWER|TO_HIGHER,0,0x0                 #'****'
qdb>bugon
DebugStr's to QDB are enabled.
qdb>g
found disk: offset = 544864 length = 1552288
found disk: offset = 544864 length = 1552288
-- show off --
state = 3
|->vportbdata: treq 1 byteack 1 tip 1
|->direction 0 [0 = cuda->system] shift register interrupt 0

PC=00152D2C

### A programmed user breakpoint occur???

which didn't seem too helpful. Even with debugging messages on, very little debugging information actually seems to be displayed in this alpha. To see more, I guess I'd need to set up R2Db at some point.

One thing you'll notice we didn't play with is INSTALL.NLM, the NetWare installer, and the one marked "emergency use only." We didn't need it anyway since PartitionMgr did the setup for us, but it is in fact present, hidden as FIXUP.NLM. The reason why, according to the setup documentation, is because it had several fatal bugs and as you'll see retains some jarring DOS-isms.

Starting it up from the console, it knows it's not actually called "fixup."
Again, this is a fairly direct port of the PC NetWare original. I'm not going to make any changes here (there's nothing really to change to), but here are a couple points of interest, starting with the AUTOEXEC.NCF startup script:
The contents of the script unsurprisingly recapitulate the bootup sequence we saw. Interestingly, you'll note that (nonexistent?) "drive B:" is added to the search path.
If you try to install other product options, you'll also be asked to insert something into that phantom B:\\ (sic). Despite the fact that drive letter on a PC usually indicates a second floppy, here it appears to refer to the CD. This text is pretty much verbatim from PC NetWare. We have no other product options to install, so we'll cancel out.
On the other hand, if we try to install a license file (unnecessary, we have a 250 seat license already), it asks for the license floppy to go in drive A:.
Exiting the installer. There is an interesting message on the console that the installer didn't get all the stack space it wanted, which may partially explain why it was sometimes unstable.
So, the Shiner, the system Spindler intended all along to run NetWare. Sadly, the Cyberpunk CD will not boot directly on the Apple Network Server because there is no compatible loader. Indeed, if you try to force a production ANS to boot the disc as if it were a Mac OS CD, you'll get this notorious message (sorry for the screen photos — Open Firmware 1.1.22 does not generate a video signal compatible with my capture box):
And there it will hang until you hit Control-Open Apple-Reset. This version of OF is also too dumb to boot XCOFFs directly from CD, though it can boot them from a floppy disk (that's how the Network Server Diagnostic Utility disk works) and it will boot them over Ethernet if you have a BOOTP and TFTP server around. Naturally I just happen to.
In theory, though this isn't very reliable even for XCOFFs that work, something like boot enet:,diags.xcf should boot an XCOFF binary called diags.xcf from the TFTP server provided over BOOTP. Here I've chosen to do this in manual steps so you can see what should happen in the screenshot. The binary loads and then the XCOFF loader package in Open Firmware will process its sections and commence execution. This is a valid Network Server-compatible XCOFF that actually worked (occasionally), so I know this process does function, at least under ideal circumstances.
Unfortunately, this method won't boot NWstart. While the binary loads and is accepted as a valid XCOFF, it dies with CLAIM failed while trying to process it. Though repeating this process sometimes works with old versions of Open Firmware, it didn't make any difference here.

That message often indicates that OF could not reserve or map RAM. The NetBSD FAQ notes that this may require adjusting the load-base environment variable, which is the address to which the binary is loaded. Like all Power Macs of this generation, the Apple Network Server defaults to (hex) 4000, but for Cyberpunk I would only be guessing the proper value.

And that's assuming it's actually the problem, of course, because another possibility is that NWstart is just too big to load directly and needs a Shiner bootloader of its own — which isn't on the disc. Alternatively, the Apple developer recalled that the build he saw running may have depended on support in pre-production ROMs that wasn't in released systems, such as its ability to boot Mac OS.

Nevertheless, we can prove that the Apple Network Server was meant to run Cyberpunk, and this proof persists even in production systems.

In the ANS' Open Firmware 1.1.22, among the other Forth words are three ones that preconfigure the Open Firmware environment variables, namely setenv-monitor, setenv-aix and ... setenv-netware. I've reproduced that below:

0 > see setenv-netware
: setenv-netware
  "false" "real-mode?" $setenv "ttya:19200" "input-device" $setenv
  "ttya:19200" "output-device" $setenv ?esb if
    "scsi-int/sd@2:0"
    else
    "scsi-int/sd@3:0"
    then
  "boot-device" $setenv
  ; ok
0 >

This doesn't seem to pop up in the word list until you try to boot something, but if you ask for it specifically, you'll see it was actually present all along. Besides marveling at the fact this Forth word actually exists, notice that it checks to see if the unit is an ESB (this refers to the Shiner prototype; ?esb is invariably false on production ANSes) and sets the SCSI device and boot partition accordingly. However, it also seems to require that a "partition zero" bootloader be present, as all Open Firmware 1.x systems do, and that bootloader is not present on this CD. Despite the presence of an NWstart partition on the Cyberpunk disk image, it doesn't seem to be in the right format: if I connect the BlueSCSI v1 to my ANS' external SCSI, the ANS does see it but won't boot from any partition on it. Furthermore, devices 2/3 generally refer to the first hard drive tray on the ANS, not the CD (0) or DAT/8mm tape (1). It's possible the ANS version of Cyberpunk may never have been committed to a bootable optical disc and only existed on a hard drive which is also since lost.

The other settings appear to be irrelevant to our failure, as real-mode? is false by default, and the AIX word also sets up the serial port even though it works fine over the on-board VGA. Indeed, if the console setting were the problem, you would have expected the load to succeed, and then go haywire after it starts.

Are there other ghosts of Cyberpunk in the ANS ROM? Let's dump it and find out!

I went ahead and set the Open Firmware console to ttya, which is inexplicably labeled port 2, and wired it up over null modem to the M1 MacBook Air which I set to never sleep. The ANS has a 4MB ROM and does not need to be specially mapped into memory; the command h# ffc00000 h# 00400000 dump will emit the entire contents as hex. After a couple hours of capturing the output from picocom, I had the complete transcript and wrote a quick and dirty Perl script to spit out a binary for analysis. The ROM in my unit has an MD5 of 676809c236138574282fa8416c6c5a6d, an Apple checksum of $962F6C13 and a major/minor version of $077D.4EFA.

Compared to the "Tsunami" Power Macintosh 9500, the Power Mac the ANS was based on, it should be of little surprise due to Shiner's tortured development schedule that they have similar ROMs. For example, the eight JPEG images — actually four images cut up into pieces — present in most PCI Mac ROMs are also present in the ANS. (Since I don't think these Easter egg images are well-known, I've reproduced them below in the order they appear, reassembled and enlarged. Three of the four images were also part of a secret animation; see here and here.)

(This was the PowerSurge development team in an collage created by Kurt Clark's wife. Al Kossow is at 6 o'clock [thanks Al!], with Tom Saulpaugh and Kurt Clark going clockwise from him. Can you identify others?)
(Iguana iguana powersurgius refers to both PowerSurge, the codename for the PCI Power Mac project, and Herman, a live iguana who lived with engineer Dave Evans and was the mascot for System 7.5.2.)
(Infinite Loop at Apple.)
(This was the System 7.5.2 team photo. Dave Evans appears with Herman at the bottom. Other than Dave Evans, can you identify others?)

Instead, the ANS ROM is more notable for what it adds. The main things added to 1.1.22 over version 1.0.5 in most beige PCI Power Macs were an Open Firmware password protection mode (on AIX, this is synchronized with the root password), support for the added ANS hardware such as the different SCSI controller, the LCD panel (check out, among others, the word lcd-putc) and the state of the keyswitch, improved support for netbooting (though it's still hit or miss), a number of new debugging words, and of course support for AIX and removal of MacOS even though some bits of the Toolbox persist. Incidentally, here is each and every message the LCD can display (you can identify these because most of them are fixed size):

InitVia_msg         ~
CudaSyncAck_msg     ~
InitCuda_msg        ~
Jumping To RAM Prog.~
Testing Parity DIMMs~
MainLBU Enet Setup  ~
Sounding Boot Beep  ~
Sizing RAM DIMMs    ~
ROM SIMM Data Access~
Allocating RAM DIMMs~
MainLBU NVRAM Setup ~
CPU Card Info Setup ~
L2 Cache SIMM Setup ~
Testing L2Cache SIMM~
Exit to CallOpenBoot~
CudaNotResponding!!!~
TURN REAR KEY C.CLKW~
PULL OUT MOTHERBOARD~
HIT TINY RED BUTTON,~
CLOSE BOX & RESTART ~
Copyright (C) 1994-6~
Apple Computer, Inc.~
All Rights Reserved ~
 ROM v.1.1.22(2CPUs)~
  ROM vers.1.1.22   ~
Key Sw. Service Mode~
Video ID Bad~
MainLBU Video Failed~
MainLBU 825#1 Failed~
MainLBU 825#2 Failed~
 Taking Jump Vector ~
MHz 604, ~
MHzBus~
KB Level 2 Cache~
L2 Cache Test Begins~
L2Cache Bad@~
 MB Parity RAM  ~
 Megabytes RAM  ~
ParityAddrAtAddrFail~
 Megabytes RAM  ~
RAM Test #1 Begins  ~
ROM SIMM Test Begins~
NVRAM Test Begins   ~
RAM Test #2 Begins  ~
LONG RAM Test Begins~
Drive Fan Failed!   ~
Processor Fan Failed~
Temperature Too Hot!~
Temperature Warning!~
Left Power Fail!    ~
Right Power Fail!   ~
Left Power Hot!     ~
Right Power Hot!    ~
L2 Cache SIMM Failed~
ROM SIMM FAILED!    ~
MainLBU NVRAM Failed~
at Address  ~
 RAM DIMM ~
 Failed ~
 Failed ~
MBSoldered~
RAM/ROM/NVRAM:PASSED~

Notice that the strings above show SMP support remained in production systems (consistent with it being a late cancellation), and there is also an ANS-specific message guru meditation number 3 suggesting some Amigaphiles worked on Shiner. However, there doesn't seem to be any other specific support for NetWare, and the only place in the ROM that the string netware appears is in that particular Forth word. This leads me to conclude that whatever special support was required was either part of the prototype ROMs or never present in the firmware in the first place.

The fact the string persists at all was a symptom of the mad scramble to get Shiner out the door, as Michael Spindler's vows for PIN caused substantial delays in development — and for no good reason as Cyberpunk was ultimately destined never to see the light of day. Part of this was Apple's inability to service large customers effectively: although Apple planned to develop a robust enterprise support option for NetWare, even citing a 24-hour phone hotline, two-day repair guarantee and four-hour emergency response, internal sources indicated that the cash-strapped Apple was "wrestling" with how to actually provide such a service. The biggest reason, however, was Novell itself. In Ray Noorda's quixotic quest to take on Microsoft he had embarked on multiple acquisitions such as UnixWare from AT&T and the Digital Research buyout, with the aborted Apple merger being just one of many such attempts, and in March 1994 Noorda made his biggest move by buying fellow Utahn company WordPerfect for the staggering price of $1.4 billion (in 2023 over $2.8 billion).

The market was flabbergasted. While WordPerfect was still a significant force in word processing and had some presence in groupware, both its namesake product and current sales were stagnating, and industry observers widely believed Noorda had grossly overpaid to enter a business segment Novell had no clear strategy to dominate. With its stock plunging by nearly a quarter, Noorda was quietly forced out as CEO in April and replaced by Hewlett-Packard VP Robert Frankenberg, who was tasked with getting the company's finances and direction back on track.

Frankenberg, obviously, did not unilaterally end Novell's agreement with Apple over Cyberpunk, as that April 1994 press release I showed you earlier demonstrates. But by November Frankenberg had cut loose WordPerfect's multimedia consumer software (selling most of the rest including WordPerfect itself to Corel in 1996), said DR-DOS would no longer be updated (selling it to Caldera in 1996), ended the personal edition of UnixWare (selling UnixWare to the Santa Cruz Operation in 1995, but critically not Novell's Unix rights or copyrights as determined in SCO v. Novell), and also cancelled further development of the Processor Independent NetWare concept, which was later abandoned completely for the forthcoming NetWare 5. Frankenberg made it clear PIN was now officially dead on PA-RISC and Alpha and any architecture with an annual shipping base of less than a million units, meaning it was effectively dead on just about everything else, and Novell subsequently determined they themselves would port NetWare and UnixWare to non-Apple CHRP PowerPC systems separately.

For Apple's part, the build we saw here was the only version of Cyberpunk known to have been demonstrated to users. Although Cupertino still publicly indicated their support for a NetWare option as late as August 1995, Apple management eventually concluded NetWare was in decline and cancelled Cyberpunk outright in October. Novell's commissioned port of PowerPC NetWare was completed by Cygnus the same year, but it never ran on Power Macintosh hardware and saw little use overall, and was consequently the last version of NetWare ever released for any non-Intel platform. As for Shiner, Cyberpunk's intended target, Apple thus concentrated its corporate resources behind Harpoon AIX and Shiner duly launched in 1996 as the Apple Network Server line, solely supporting AIX and nothing but.

NetWare's last release was 6.5 in 2003, being subsequently integrated into Novell Open Enterprise Server and finally discontinued with Service Pack 8 in 2009. Today Novell's IP as well as Cyberpunk and Wormhole's last vestiges reside with OpenText after buyouts by the Attachmate Group in 2011, Micro Focus in 2014 and OpenText in 2023.

1 comment:

  1. Thank you for this long and detailed article, that was an interesting read!

    ReplyDelete

Comments are subject to moderation. Be nice.