Mike Chambers
Veteran Member
- Joined
- Sep 2, 2006
- Messages
- 2,621
thought there would be some pretty good interest in this, i see the topic mentioned somewhat often.
firstly, i've been writing my own TCP/IP stack for DOS (MiniTCP) in 100% assembly. i wanted to try writing one that's a TSR, and to try and keep it as small/fast as possible. it doesn't actually do TCP yet, but it does perfectly handle the ARP, IP, and UDP layers (and it does properly forward packets for outside the local subnet out through a gateway) plus responds to ICMP pings. to test out the UDP code thoroughly, i thought it'd be cool to write a new VNC-like remote control app for DOS. it's MUCH faster than Tiny and telnetd. not only the network stack, but also the actual remote control server is in assembly as well.
so far, MiniTCP itself uses only 18 KB total memory as a TSR (including buffers) at this point, but it will definitely increase a bit once i add the TCP layer. the remote control app takes an additional 5 KB of RAM as TSR, so you're looking at a total of only 23 KB RAM usage for the whole setup here.
when the remote control is running, i only see about a 30-40% slowdown on my IBM 5150. it could use significantly less CPU if i were to have it check less lines on the screen for updates per clock tick. screenshot of the cheap little test client i wrote in VB6 (because it was fast to throw together just to see if the server worked)
^that's connected to the 5150 running the server.
the VB6 client is pretty slow (gotta love PSET) but tomorrow i was going to redo it proper in C, and plan to upload everything for everybody to try out then.
for some raw UDP performance numbers, my 12 MHz 286 with an NE2000-compatible NIC receives at 560 KB/s.
EDIT: as i posted later on, you can download it now:
firstly, i've been writing my own TCP/IP stack for DOS (MiniTCP) in 100% assembly. i wanted to try writing one that's a TSR, and to try and keep it as small/fast as possible. it doesn't actually do TCP yet, but it does perfectly handle the ARP, IP, and UDP layers (and it does properly forward packets for outside the local subnet out through a gateway) plus responds to ICMP pings. to test out the UDP code thoroughly, i thought it'd be cool to write a new VNC-like remote control app for DOS. it's MUCH faster than Tiny and telnetd. not only the network stack, but also the actual remote control server is in assembly as well.
so far, MiniTCP itself uses only 18 KB total memory as a TSR (including buffers) at this point, but it will definitely increase a bit once i add the TCP layer. the remote control app takes an additional 5 KB of RAM as TSR, so you're looking at a total of only 23 KB RAM usage for the whole setup here.
when the remote control is running, i only see about a 30-40% slowdown on my IBM 5150. it could use significantly less CPU if i were to have it check less lines on the screen for updates per clock tick. screenshot of the cheap little test client i wrote in VB6 (because it was fast to throw together just to see if the server worked)
^that's connected to the 5150 running the server.
the VB6 client is pretty slow (gotta love PSET) but tomorrow i was going to redo it proper in C, and plan to upload everything for everybody to try out then.
for some raw UDP performance numbers, my 12 MHz 286 with an NE2000-compatible NIC receives at 560 KB/s.
EDIT: as i posted later on, you can download it now:
server for DOS:
http://rubbermallet.org/remoter-server.zip
client for windows:
http://rubbermallet.org/remoter-client.zip
the IP stack doesn't do DHCP yet, so before you run minitcp.com you'll need to run setip.exe which will let you modify the IP, subnet mask, and gateway IP it will use. run minitcp.com first, then remoter.com
for the client, once the server is running on a DOS machine just run remoter.exe with the IP address of the server on the command line. oh, and just a note... it only supports 80x25 text mode so far, and it wont work with an MDA.
Last edited: