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.
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.
The documentation is extremely sparse, containing only a brief READ.ME file. There is no
information about installing and configuring the Requester. Fortunately, the documentation for NetWare OS/2 Requester version 1.1 yielded a few good hints.
It is notable that this pre-release Requester includes network drivers which are modular
(separate .SYS driver for each supported network card) but do not use ODI, or at least there is no separate LSL (Link Support Layer). The drivers are at least somewhat configurable using a NWREQ.CFG file (later called NET.CFG), which makes them a precursor to (or an early version of) ODI, which was officially introduced in 1989 with NetWare 386.
There was only one hitch, there was no driver for the network hardware emulated by VirtualBox. And because the driver model was not like any released version of the NetWare Requester for OS/2, the chances of finding a driver for AMD PCnet or NE2100 (leave alone Intel E1000) were zero.
So I sat down and wrote emulation of the venerable (or infamous?) 3Com EtherLink 3C501. For a while I was stumped by the fact that soon after Novell’s OS/2 E3C501.SYS driver loads, it just sits in a loop, not making any progress. After some head scratching I realized that this must have been an intentional stall inserted to make debugging easier (the machine stops when the NIC driver and IPX.SYS are loaded but before network traffic starts, so it’s possible to set breakpoints in interesting places). That sort of functionality (for lack of a better word) reflects the state of the preview OS/2 Requester. It is easy to patch out the loop in the driver, or attach a debugger and skip past it (“ew cs:ip 9090” in the VirtualBox VM debugger, writing two NOP instructions at the current code location to overwrite the “jmp $” instruction).
As shown above, the Novell drivers call themselves “Alpha”, which is accurate.
Does It Work?
Yes, it really does! Mostly. At boot-up, the OS/2 machine finds the nearest NetWare file
server (NetWare version 2.1 or later required, tested with 2.12, 2.15, and 3.12 servers)
and automatically maps the L: drive to SYS:LOGIN, standard for NetWare OS/2 requesters.
What does not work is logging in, because there’s no LOGIN executable for OS/2 (or rather none that would run with this pre-release Requester). It is possible that the problem was that NetWare servers then available had no support for OS/2 clients and no ability to handle OS/2 login scripts. Maybe.
Whatever the reason for the missing LOGIN, the ATTACH command works well enough, and allows accessing file servers and mapping network drives. File sharing works very well even in this early version of the OS/2 Requester, both in OS/2 sessions and in the DOS box.
Basic OS/2 utilities like ATTACH, MAP, SLIST, or WHOAMI work well. There is not much
and none of the later utilities from the version 1.2 NetWare OS/2 Requester or later work due to changes to NWCALLS.DLL.
NetWare utilities in the DOS box do not work and produce odd errors. IPX support appears to exist in the DOS box but isn’t fully functional. Whether it should be working is entirely unclear from the tiny amount of available documentation.
Both OS/2 sessions and the DOS box can receive messages, such those produced by the BROADCAST or SEND commands on the server console, or notifications from a server going down.
How Does It Work?
It appears that the early NetWare OS/2 Requester works very much like old NetWare DOS shells. That’s even reflected in naming, the NWREQ.SYS driver creates a device named NWSHELL$, and the background process NWDAEMON.EXE calls itself the “shell daemon”.
Precisely how the requester works is unclear. OS/2 1.0 did not have an architected mechanism for redirectors to hook into the file operations. On DOS, NetWare shells hooked INT 21h, but on OS/2 the mechanism had to be different. Whatever it was, it was likely similar to what the early versions of the Microsoft LAN Manager workstation and the IBM LAN Server requester used.
Starting with OS/2 1.2, all major OS/2 networking clients (NetWare, LAN Manager/LAN Server) used installable file systems (IFSs) to add network drives, but on OS/2 1.0 and 1.1 it had to be done differently.
In 1988-1989, a networked OS/2 workstation was probably very much a rarity. For that reason alone, reviving the ancient NetWare OS/2 Requester was quite satisfying.