From ff4d74bc47b14d245da0b229472d94c459c73937 Mon Sep 17 00:00:00 2001 From: John Tsiombikas Date: Wed, 4 May 2022 20:03:03 +0300 Subject: [PATCH] README: added DOS PC networking setup notes --- README.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/README.md b/README.md index 7a41535..e4c910c 100644 --- a/README.md +++ b/README.md @@ -145,3 +145,71 @@ defined in `cdpmi.h`: #define virt_to_phys(v) ((v) + __djgpp_base_address) #define phys_to_virt(p) ((p) - __djgpp_base_address) + +Notes about moving code to/from a DOS computer +---------------------------------------------- +The easiest way to move code back and forth to a DOS computer, is to connect it +to the local network. For this you need a DOS packet driver for your NIC, which +thankfully most NIC vendors seem to provide, and a number of useful network +utilities which come with their own TCP/IP stack (mTCP and WATTCP). The +following are recommended: + + - [http://www.brutman.com/mTCP](mTCP) + - [http://www.watt-32.net](WATTCP) + - [http://sshdos.sourceforge.net](ssh2dos) + - [http://www.2net.co.uk/rsync.html](rsync) + +Here's an example batch file I'm using to set up the network: + + @echo off + c:\net\rtspkt\rtspkt 0x61 + set MTCPCFG=c:\net\mtcp\mtcp.cfg + set WATT_ROOT=c:\net\watt + set WATTCP.CFG=c:\net\watt\bin + set ETC=c:\net\watt\bin + set PATH=%PATH%;c:\net\mtcp;c:\net\watt\bin + +The rtspkt program is the packet driver for my realtek NIC, and I'm instructing +it to use interrupt 61h. The rest are environment variables needed by mTCP and +WATTCP. If you run out of environment space you might need to increase it with +`SHELL=C:\DOS\COMMAND.COM /e:1024 /p` in `config.sys`, or just put all binaries +in a single place instead of adding multiple directories to the `PATH`. + +### mTCP configuration +The `mtcp.cfg` file configures the mTCP TCP/IP stack. Go through the file, which +comes with mTCP, and make any necessary changes. For instance I've set +`packetint 0x61` to match the packet driver interrupt, and I'm using static IP +assignments, so I've set it up like this: + + ipaddr 192.168.0.21 + netmask 255.255.0.0 + gateway 192.168.1.1 + nameserver 1.1.1.1 + +### WATTCP configuration +The `wattcp.cfg` file is in the wattcp bin directory, and includes similar +configuration options: + + my_ip = 192.168.0.21 + hostname = "retrop1" + netmask = 255.255.0.0 + nameserver = 1.1.1.1 + gateway = 192.168.1.1 + domain.suffix = localdomain + pkt.vector = 0x61 + hosts = $(ETC)\hosts + +### Server-side configuration +The `pull.bat` file in the demo repo uses rsync to get the source code from the +git repo on my main GNU/Linux computer. To avoid having to type passwords all +the time, I've configures rsyncd to allow access to the demo directory in the +`/etc/rsyncd.conf` file: + + [dosdemo] + path = /home/nuclear/code/demoscene/dosdemo + comment = DOS demo project + +Since the DOS rsync utility is unfortunately read-only, the `push.bat` relies on +ssh2dos instead, which does require a password. The sshd on the server might +need to be configured to allow older encryption algorithms, depending on your +current setup. -- 1.7.10.4