Before the RIAA slaps a lawsuit on me, let me explain.
Getting TCP/IP to run on an older machine has some serious challenges:
My predicament is worse - I'm on a PCjr, which doesn't take ISA cards.
So a few years ago a friend of mine (and fellow PCjr nutcase) found that Xircom parallel-port to Ethernet adapters work fine on the Jr. You need to do a little tweaking, but with that you can run Telnet and FTP from Trumpet, or NCSA Telnet. Not a bad start. Trumpet isn't supported anymore, and there is no source code available. NCSA Telnet has source code available, but it is a giant monster.
Instead of living with what was out there, I decided to start writing my own .. Using Turbo C++ 3.0 on a 386-40 machine, creating executables that still run on the PCjr. The 386-40 has a real Ethernet card, while the PCjr has a Xircom adapter.
So far I've got ARP and UDP working. No TCP yet .. that's a big mess of code. I'm not stealing code from anywhere - this is all 'cleanroom' done by reading textbooks and googling.
To prove the UDP piece was working correctly, I wrote a 'fileserver' type program in Java that uses a simple protocol over UDP. That program can run on Windows or Linux. The client side runs on the old DOS machine. It basically does Xmodem over UDP.
So after a marathon hacking session, I've got it working. It only sends data to the server, and there are probably some bugs in it, but it does seem to send the data correctly.
On the 386-40 with a real Ethernet card it is pushing 170KB per second out to the file server. (The file is in a ram disk to eliminate any overhead that the file read might be causing.) I used a fairly good sized file for the test - 125KB.
The PCjr suprised me. It clocked in at about 16KB per second, which is less than one tenth of what the 386-40 can do. But when you consider that the PCjr is running at 4.77Mhz, doesn't have an L2 cache like the 386-40 does, and has to use the cruddy parallel-port adapter instead of a real bus attached Ethernet adapter, it's amazing that it did that well.
On the ToDo list:
In a few months this will be to the point where if you have a suitable machine that runs Java to use as a server, you can put a Xircom or a real Ethernet card on your machine and have a fairly lightweight and fast file transfer program. Beats shuffling floppies ..
Eventually when I get the TCP part done this will turn into a Telnet BBS. Running on the Jr of course.
Guys/Gals - don't just collect the machines. Use them!
Getting TCP/IP to run on an older machine has some serious challenges:
- Existing DOS TCP/IP software is out of date and not supported
- Memory is tight on a 5150 PC. Some features just can't be supported.
- Some source code exists, but then you have to be a master and porting/debugging.
My predicament is worse - I'm on a PCjr, which doesn't take ISA cards.
So a few years ago a friend of mine (and fellow PCjr nutcase) found that Xircom parallel-port to Ethernet adapters work fine on the Jr. You need to do a little tweaking, but with that you can run Telnet and FTP from Trumpet, or NCSA Telnet. Not a bad start. Trumpet isn't supported anymore, and there is no source code available. NCSA Telnet has source code available, but it is a giant monster.
Instead of living with what was out there, I decided to start writing my own .. Using Turbo C++ 3.0 on a 386-40 machine, creating executables that still run on the PCjr. The 386-40 has a real Ethernet card, while the PCjr has a Xircom adapter.
So far I've got ARP and UDP working. No TCP yet .. that's a big mess of code. I'm not stealing code from anywhere - this is all 'cleanroom' done by reading textbooks and googling.
To prove the UDP piece was working correctly, I wrote a 'fileserver' type program in Java that uses a simple protocol over UDP. That program can run on Windows or Linux. The client side runs on the old DOS machine. It basically does Xmodem over UDP.
So after a marathon hacking session, I've got it working. It only sends data to the server, and there are probably some bugs in it, but it does seem to send the data correctly.
On the 386-40 with a real Ethernet card it is pushing 170KB per second out to the file server. (The file is in a ram disk to eliminate any overhead that the file read might be causing.) I used a fairly good sized file for the test - 125KB.
The PCjr suprised me. It clocked in at about 16KB per second, which is less than one tenth of what the 386-40 can do. But when you consider that the PCjr is running at 4.77Mhz, doesn't have an L2 cache like the 386-40 does, and has to use the cruddy parallel-port adapter instead of a real bus attached Ethernet adapter, it's amazing that it did that well.
On the ToDo list:
- Cleanup this nasty pile of code I threw together.
- Add the ability to receive files as well
- Enhance the error checking
- Move to a 'sliding window' type system to improve throughput.
In a few months this will be to the point where if you have a suitable machine that runs Java to use as a server, you can put a Xircom or a real Ethernet card on your machine and have a fairly lightweight and fast file transfer program. Beats shuffling floppies ..
Eventually when I get the TCP part done this will turn into a Telnet BBS. Running on the Jr of course.
Guys/Gals - don't just collect the machines. Use them!