286 and network
I am a junkie. I have a wardrobe full of old iron. From Boolean IC chips in DIP packages to Voodoo5. Of course, all this is of no practical value, but some people enjoy the pleasure of messing with old pieces of iron. If you are one of them, I invite you under the cat, where I will tell you how the computer was based on the AMD 286 processor with the modern network, and what came of it.
The idea of screwing the network to the 286th was born a long time ago, since the easiest way to transfer data to a computer over the network is, in general, this is interesting. Does TCP / IP work? Does the web browser earn money? Although browsers under Dos, people on 286m have already repeatedly launched, but I have never seen 286go under Windows on the Internet. Well, the main goal is to connect to a home NAS, which stores all the software for my old hardware. And the NAS is more or less modern, and only TCP / IP can do it.
I already had the experience of connecting to this drive of old computers. Including while writing previous articles about old iron. But in previous articles I only looked at 32-bit processors, and everything is pretty easy there: even on 386SX-16, Windows 95 runs (yes, terribly slow, yes, the installation takes more than 9 hours, but it works), which has a native TCP stack / IP and a bunch of drivers for all kinds of network cards included. If you want to be more smart, that is, Windows for Workgroups 3.11, onto which, after installing Win32s, you can roll your own TCP / IP stack. And, although it will not be able to log in to a modern file server, open folders without a password become quite accessible to the PC even in this configuration. And Internet Explorer 5 runs even on 386SX, it would be enough memory!
image pulled from google
But alas, by 286 all this does not apply. The main difficulty is that the 286 processor is 16-bit, and Windows for Workgroups 3.11 is not available for it, since the Standard mode, which allowed its predecessor 3.1 to run on 16-bit processors, was cut out of 3.11. Unsatisfied at 286 and the Win32s extension (for obvious reasons), and, accordingly, it will not be possible to install the native Microsoft TCP / IP stack.
Thus, we return to DOS.
After a brief, thoughtful googling pattern, the TCP / IP picture for DOS became significantly less clear than it was before. Basically, it all came down to the fact that the application normally running under DOS itself has its own stack, and all it needs is a packet driver for the network card. But I was unable to find an application that allows you to mount remote disks.
However, I came across as many as 2 different network clients for DOS from Microsoft itself (MS Client and MS LAN Manager), and another very strange beast called Windows for Workgroups 3.1. Yes, it was 3.1, not 3.11, and this meant that everything might work in the standard mode.
What would be extremely interesting. Of course, I didn’t expect to see TCP / IP stack in 3.1, but also on Google I came across a description of the 16-bit TCP / IP stack from Microsoft. Interesting.
Having bought the distribution kit 3.1 on eBay, I proceeded to the installation.
image pulled from google
The system turned out to be a slightly modified 3.1 with a built-in network interface under DOS, very similar to the stripped-down MS LAN Manager. All the difference from the traditional 3.1 was reduced to the presence of the “mount network drive” button in the File Manager and the corresponding dialog box. Network configuration from under Windows itself was impossible. How to perform the setup from under DOS was not clear. Although after installing the system, it identified my network card as NE1000 or compatible, which was not far from the truth, because the Genius GR1222 card I used was true. But I had a native driver disc for this card, including under DOS. It remained unclear, however, how to configure the driver for the interrupt and the address of the I / O card.
Moreover, after reading Google it turned out that the driver for MS LAN Manager and the packet driver are two different things.
The situation with the drivers under DOS began to clear up a bit.
So, there were 3 big standards:
- Odi. This driver model used Novell to communicate with its Netware servers. I do not have Netvari, so it will not work.
- NDIS. This is a Microsoft model, for their LAN Manager and Windows. In theory, that is necessary.
- A batch driver that many DOS applications use.
So let's start with Microsoft products. Both MS Client and MS LAN Manager I have had for a long time, since very ancient times. But, according to Google, the MS Client TCP / IP stack did not work under Windows for Workgroups, so I started my experiments with MS LAN Manager.
The network card was defined as NE1000, which did not surprise me, and the program showed me the network protocol selection screen.
In Version 2.2c, the program supported TCP / IP !!! My joy knew no bounds. I just saw how I would be in 5-7 minutes writing an article on Habr from the 286th. But the reality was somewhat more complicated. At first, I chose to configure the protocol using DHCP, but after a reboot, the machine hung up at the stage of getting the address.
OK. Manually configure.
Now when rebooting, the machine swears at the wrong characters in the file PROTOCOL.INI
This is strange. I will not torment the reader with all my fabrications, I will only say that in the LAN Manager settings the IP address is written not through a dot, but separated by a space, like this:
192 168 1 101
When I realized this, the computer stopped swearing at the wrong settings when loading, and began downloading all the protocols, but after loading LAN Manager reported that it does not see any servers. It does not matter, but neither ping nor NET USE worked. And this is trouble.
Thinking, I decided that the case must be in the settings of the network card itself.
After a non-positive search in the .INI files, I found lines indicating the interrupt value and the I / O address of the network card. They were wrong. Corrected. Reboot.
Same thing again.
Ok, maybe Windows for Workgroups will help.
The first thing that changed in Windows is the network login window.
But in the end, Winda said the same thing as DOS: servers are not visible. Well, I thought, this is all due to the fact that she knocks on the Windows NT domain and does not see it. By the way, it is strange that Windows for Workgroups wants a domain, but oh well.
But the File Manager window also could not find a network drive.
It's not meant to be.
Okay, let's try changing the network adapter. I have several different ones, and I decided to try using the D-Link DE-220P. After setting up the card in MS LAN Manager and rebooting, a miracle happened: The
computer received an address via DHCP. Great, moving on.
The file manager saw the network drive:
In DOS, too, everything is fine
NET USE Z: \\HOSTNAME\SHARENAME
Excellent! What's inside?
So why did I paint all the failures with the previous network card, if everything was so simple, I changed the card and wrap everything up ...
Yes, because with the old hardware it is always like that. Always something does not work. Never, not once did I fail to assemble the old system from the first time from completely working components. It's impossible.
But now everything works. True, playing toys from a network drive will not work: without EMM386, all the LAN Managera software is loaded into the bottom 640KB, and there is very little space left for programs:
The browsers for Windows also did not work out yet, neither Netscape Navigator, nor MS Internet Explorer agreed to run at 286m, and older versions of NCSA Mosaic did not want to work with the TCP / IP LAN Manager stack. Which is probably not so important, because I wanted to have access to the network storage, and I have it. Yes, and under DOS there are browsers, and they work on 286. But still, a little offensive.
And, of course, the 286th computer with so much "lower" memory, as it is now, is absolutely useless. The fact is that software using “upper” memory under DOS requires 386 processors or higher, since operation of the 286th with memory above 1 MB is very specific ... even in protected mode, the processor is 16-bit and there is no linear addressing, and back to real mode, the 286th processor needed a hardware reset. Of course, there is a bug with the A20 line in real mode, and it was even used, but, all the same, almost all the software for the 286th is "sitting" in the lower 640 KB, and I will have to do the boot menu in DOS: either the network or the normal number memory, the third is not given. And, since the network runs under Windows under DOS, then selecting normal memory will not become a network under Windows. Which, of course, does not 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. We will use this.
I decided to make a menu with 3 items:
- Download without network drivers. This gives a maximum of "lower" memory. For DOS applications and games.
- Download with NDIS drivers. There is almost no memory left for DOS applications, so we will ship Windows immediately.
- Download with packet driver.
That's exactly the batch driver that allows many applications to work using the network under DOS. Included with the D-Link DE220, such a driver was, however, on the Internet, many drivers for a large number of cards, especially for the ISA bus. With any more or less common map problems should arise. And the ones that were not common were mostly NE2000 clones, so there should be no problems with them, but that’s as lucky as that.
In order to use TCP / IP with a packet driver, you need some other TCP / IP stack. For DOS, there is, for example, mTCP , and for Windows, Trumpet Winsock , the 1st version of which I still have from modem times.
It started, but I don't know if it worked. At least, now when you start the old NCSA Mosaic, a message about the absence of the TCP / IP stack was not issued, but the browser hung up the computer tightly, without ending the download.
Image from Google
Remains an old 16-bit TCP / IP stack for Windows. How to install it in an already installed system was not clear. Unlike WFWG 3.11, version 3.1 does not allow changing network settings directly from under Windows. I could not figure out how to do this from under DOS, but there is no installer in the installer stack itself.
Therefore, reinstall Windows. At a later stage of the installation, it determines the network card (this time, as NE2000-compatible, and does not give another choice), and allows you to configure the protocol ... Select the "untranslated or updated protocol"
and slip the distribution package of the 16-bit stack ... I saw and installed. The start is good. But it did not go further: neither under DOS nor under Windows the TCP / IP stack worked. It's a pity.
Well, okay, while I give up. In any case, I got a lot of fun from the mess with this piece of iron, it is cool. Even in spite of the fact that it is very cheap, the budget board for the 286. It was already released at the time of 386, uses a large Headland chip instead of a discrete logic placer, has SIMM slots, the processor runs at 16 MHz, while Intel left The market is 286x at 12 MHz. By the way, it will be necessary to change the oscillator to 24 MHz in order to get 12 on the processor ... and in general, the board is small and even looks inexpensive. But she is pleasant 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 late, it can work with memory in DIP packages. True, only with 1 MB, but for Windows you still need more ...
A few nostalgic screenshots of Windows:
Windows 286 only works in Standard mode. In this mode, any DOS application running from under Windows runs in full screen mode and completely blocks the operation of all other Windows applications. These are the features of 16i bits.