286 and the network

Original author: @old_gamer
  • Translation
Author of the original post in Russian: old_gamer


I'm a ragman. I have a closet full of old hardware. From Boolean logic microchips in DIP-cases to Voodoo5. Of course, there's no practical value in all of this, but some people enjoy messing with old hardware. If you are one of them, I invite you under the cut, where I will tell you how the computer based on AMD 286 processor worked with a modern network, and what came out of it.

The idea to connect the network to the 286th was born a long time ago, because the easiest way to transfer the data to a computer is via the network, and indeed, it's interesting. Will TCP/IP work? Will the web browser work? Although the browsers for DOS have already been launched on the 286th, but I've never seen the 286th under Windows on the Internet. Well, and the main purpose is to connect to the domestic NAS on which all the software for my old hardware is stored. And NAS is more or less modern, and «knows» only TCP/IP.

I've already had experience in connecting the old computers to this drive. Including while writing the previous articles about the old hardware. But in the previous articles, I've only reviewed the 32-bit processors, and it's pretty easy: Windows 95 works even on 386SX-16 (yes, terribly slowly, yes, installation takes more than 9 hours, but it works), which has a native TCP/IP stack and a heap of drivers for various network cards in a set. If you want quicker, there is Windows for Workgroups 3.11, on which it's possible to roll a native TCP/IP stack after installation of Win32s. And, although it won't be able to log on to a modern file server, open folders without a password are quite currently available for the PC even in this configuration. And Internet Explorer 5 runs even on 386SX, having enough memory!

This picture is from Google

But alas, all this is not applicable to 286. The main difficulty is that the 286 processor is a 16-bit processor, and Windows for Workgroups 3.11 is not available for it, since the Standard mode that allowed its predecessor 3.1 to run on 16-bit processors was cut from 3.11. The Win32s extension is not available on 286 as well (for obvious reasons), and, accordingly, you won't be able to install the native Microsoft TCP/IP stack.

Thus, we return to DOS.

After a brief thoughtful googling, the picture with TCP/IP for DOS has become much less clear than it was before. Basically, it all came down to the fact that a normally running DOS application itself has its own stack, and all it needs is a package network card driver. But I couldn't find an application that allows to mount remote disks.

However, I came across as much as 2 different network clients for DOS from Microsoft (MS Client and MS LAN Manager), and another very strange beast called Windows for Workgroups 3.1. Yes, it is 3.1, not 3.11, and this meant that, perhaps, everything will work in the standard mode.

Which would be very interesting. Of course, I didn't expect to see the TCP/IP stack in 3.1, but I also came across a description of the 16-bit TCP/IP stack from Microsoft in Google. That's interesting.
Having bought the distribution 3.1 on eBay, I started the installation.

The picture is from Google

The system was a slightly modified 3.1 with a built-in network interface for DOS, very similar to the stripped-down MS LAN Manager. All the difference from the traditional 3.1 was reduced to existence of the only button «to connect a network drive» in the File Manager and the corresponding dialog box. Setting up the network from under Windows itself was impossible. How to perform the configuration from under the DOS wasn't clear. Although after installing the system, it identified my network card as NE1000 or compatible, which was not far from the truth, because I used the Genius GR1222 card and it reallly was compatible. But I had a native disk with drivers for this card, including the ones for DOS. It was still unclear, however, how to configure the driver for the interruption and the i/o address of the card.

Moreover, after reading the articles on Google it turned out that the driver for MS LAN Manager and the batch driver are two different things.

The situation with drivers for DOS began to clear up a little.

So, there were 3 big standards:

  1. ODI. This driver model was used by Novell to communicate with its Netware servers. I don't have NetWare, so it won't work.
  2. NDIS. This is the Microsoft model, for their LAN Manager and Windows. It's supposed to be the right thing.
  3. Packet driver, which is used by many DOS-applications.

So, let's start with Microsoft products. I have had both MS Client and MS LAN Manager for a long time, since very old days. But, according to Google, TCP / IP stack MS Client didn't work with Windows for Workgroups, so I started my experiments with MS LAN Manager.

The network card was defined as NE1000, which didn't surprise me, and the program showed me the network Protocol selection screen.


In the version 2.2c the program supported TCP/IP!!! My joy knew no bounds. I just saw myself there in 5-7 minutes, writing article on Habr on the 286th. But the reality turned out to be more complicated. At first, I chose to configure the Protocol using DHCP, but after rebooting the machine got stuck at the stage of getting the address.

ОК. Let's configure manually.

Now when you restart the machine, it swears at the wrong characters in the file PROTOCOL.INI
It's weird. I won't torment the reader with all my inventions, I will only say that in the LAN Manager settings the IP address is written not through a dot, but through a space, like this:

192 168 1 101

When I understood it, the computer ceased to swear at wrong settings at loading, and began to load all the protocols, but after loading LAN Manager reported that it doesn't see any servers. It doesn't matter, but neither ping, nor NET USE didn't work. That's a trouble.
Having thought, I decided that problem must be in the settings of the network card.
After a brief search in the .INI files, I found the lines indicating the interrupt value and the i/o addresses of the network card. They were wrong. Corrected. Reload.
Same again.
Okay, maybe Windows for Workgroups will help.
The first thing that has changed in Windows is the network login window.


But in the end, Windows said the same thing that the DOS said: servers not found. Okay, I thought, this is all due to the fact that it knocks on the Windows NT domain and doesn't see it. By the way, it is weird that Windows for Workgroups wants into the domain, but okay.

But the File Manager window couldn't find the network drive either.


It's just not meant to be.

Okay, let's try to change the network adapter. I have a few different ones and I decided to try using D-Link DE-220P. After configuring the card in MS LAN Manager and rebooting, a miracle happened:


The computer received the address via DHCP. Great, moving on.

File Manager found the network drive:


It's alright in DOS, too,



Great! What's inside?



So, why I've been describing all the failures with the previous network card if everything was so simple, changed the card, and everything is okay…

Because with old hardware it's always this way. Something always doesn't work. Never, not once have I been able to build up an old system from the first time from the fully working components. That isn't possible.

But now everything works. However, you won't be able to play games from the network drive: without EMM386 all the software of LAN Manager is loaded in the bottom 640KB, and for the programs there is a very little space:


With the Browsers for Windows, too, it has not yet happened, neither Netscape Navigator nor MS Internet Explorer haven't agreed to run on 286, and NCSA Mosaic old versions didn't want to work with the stack of TCP/IP LAN Manager. Which is probably not so important, because I wanted to have access to the online storage, and I have it. And there are browsers for DOS, too, and they work on 286. But still, it hurts a little.

And, of course, the 286th computer with as much of the «lower» memory, as it is now, is absolutely useless. The fact is that the software that uses the «top» memory for the DOS requires 386 processor or higher, since the 286th with memory above 1 MB is very specific… even in the protected mode, the processor is 16-bit, and there is no linear addressing, and to return to the real mode, the 286th processor would require a hardware reset. Of course, there is a bug with the A20 line in real mode, and it was even used, but still, almost all the software for the 286th «rests» in the lower 640 KB, and I will have to do the boot menu in the DOS: either the network or the normal amount of memory, the third is not given. And, as the network under Windows starts from under the DOS, at the choice of the normal memory there won't no network also under Windows. That, of course, doesn't matter for such an ancient machine, but you need to make it possible to choose the boot configuration. Fortunately, DOS 6.22 supports the boot menu. Let's take advantage of this.

I decided to make a menu with 3 items:

  1. Boot without network drivers. This gives the maximum of the «lower» memory. For the DOS-applications and games.
  2. Boot with the NDIS-drivers. There's almost no memory for the DOS-applications left, so we immediately boot Windows.
  3. Boot with the batch driver.

Here is the batch driver and it allows you to run many applications that use the network under the DOS. Such driver was in the set with D-Link DE220, however, there are many drivers for a large number of cards on the Internet, especially for the ISA bus. There should be no problems with any more or less common card problems. And the ones that weren't common were mostly NE2000 clones, so there shouldn't be any problems with them, but that’s as lucky as that.

In order to use TCP/IP with the packet driver, you need some other TCP/IP stack. There is mTCP for DOS, for example, and Trumpet Winsock for Windows, the 1st version of which I still have since the modem times.

It started, but I don't know if it worked. At least, now at the start of the old NCSA Mosaic the message on absence of the TCP/IP stack was not given, but the browser tightly hung up the computer, without finishing loading.

The image from Google

The old 16-bit TCP/IP stack for Windows was left. How to install it in the already installed system was unclear. Unlike WFWG 3.11, the 3.1 version doesn't allow you to change network settings directly from Windows. I couldn't figure out how to do it from under the DOS, and there's no installer stack in the installation package.

So, then we reset Windows. At a later stage of installation, it determines the network card (this time as NE2000-compatible, and it doesn't give the option of choosing another), and allows you to configure the Protocol… Select «Unlisted or updated protocol»


and slip the 16-bit stack distribution… Found and installed. That's a good start. But it did not go any further: neither under the DOS, nor under Windows the TCP/IP stack didn't work. That's a pity.

All right, I give up for now. In any case, I got a lot of fun from the mess with this piece of hardware, it's cool. Even though it's a very low fee for the 286. It was released in the days of 386, it uses a large chip Headland instead of a scattering of discrete logic, has SIMM slots, the processor operates at a frequency of 16 MHz, at a time when Intel left the 286x market with 12 MHz. By the way, it will be necessary to change the oscillator to 24 MHz to get 12 on the CPU… and anyway, the fee is small and even seems inexpensive. But it's nice and very fast. It takes less than a second from the moment the computer is turned on until the start of the memory check. And even though the board is quite young, it can work with memory in DIP-cases. However, only with 1 MB, while Windows still need more…


Some nostalgic screenshots of Windows:


Windows 286 only works in Standard mode. In this mode, any DOS application running under Windows runs in full screen mode and completely blocks all other Windows applications. These are the features of 16 bit.


Also popular now: