WHOST is a set of programs that lets you remotely control a DOS computer using the serial port. It is very efficient, so it can run nicely over 28.8KB dialup modems, RS-485 hardwired connections,and even long-range (slow) wireless modems.
WHOST.ZIP | Contains the executables for the host and client and a couple sample batch files to get you started. |
DEMO.ZIP | Everything you need to see a nice demo of how a remote session looks. |
Once you get the program working over a null modem cable and are ready to switch to modems, you will need to figure out the correct command string to send to the modems to put them in the right mode and get them to dial/answer. Basically, you want to ensure that error correction and flow control are enabled on both modems. You also want the computers to talk to the modem at a higher baud rate than the modems talk to each other. Finally, you want the host modem to auto answer, and you want the client modem to dial the phone number of the host.
Here is an example setup for the host side (using com1, 38kb, factory setting profile #2)..
setbaud 3f8 38 "AT&F2S0=1!"
And the client side...
setbaud 2f8 19 "AT&F2DT555-1212!"
WHOST.EXE
=========
This is the TSR that runs on the DOS host.
Try WHOST /? For params.
WREMOTE.EXE
===========
This is the
client. It is a DOS program, but I’d imagine you should be able to get it to run
in a DOS window on a Windows machine. If not then maybe try a Virtual PC window.
SETBAUD.EXE
==========
A little utility that sets the baudrate of a
serial port and lets you send an init string to the attached modem. Run with no
args to see usage.
HOST.BAT
=========
An example batch file that
sets up COM2 and loads the WHOST program with the password “foobar” and waits
for a connection. Run this on the host.
GO.BAT
======
An example
batch file that you run on the client that will set up the modem on COM1 and
dial 555-1212 and wait for a connection to the host.
Q: Why on earth would I ever want to use WHOST when I can just run my DOS programs directly on my Windows machine using Virtual PC or VMWARE?
I love Virtual PC and think it a great tool, but here are a few examples when you might still need a real DOS machine...
The DOS machine needs to be physically located in a remote location (like inside a nuclear power plant smokestack or on top of denim cutting machine) because it is directly connected to some sensors and controllers.
You only have a license to run your DOS software on a single physical machine, but you want multiple people in multiple locations to be able to use the software.
Your DOS software is incompatible with Virtual PC.
You don't want to use a Windows machine because your DOS machine hasn't once crashed in over ten years and you like it that way.
You can't afford to buy a new Windows machine(s), especially when you already have a perfectly good Turbo XT machine(s).
Q: Why is WHOST better than PCAnywhere?
It really depends on what you need it for. If you want a super-simple program that always works and you don't need mouse or graphics support, you will probably be happier with WHOST. WHOST can be faster than other remote control programs depending on what you are doing on the host machine.
Q: What does setting the FIFO on the host do?
The fifo is a buffer that holds bytes waiting to be transmitted over the modem. Having a bigger fifo means that there will always be a byte ready and waiting to go out the instant the modem is ready no matter how busy the host CPU might be. The downside of a bigger fifo is that the screen might change while a byte is waiting in the fifo, so you are sending old data.
If you are running over a very slow link (like 1200bd), you will probably want a small fifo since things can wait in the fifo for a long time and any delay waiting for the CPU to feed the modem will be small compared to the ammount of time the data takes to actually get transmitted.
If you are running over a very fast link, you probably want a large fifo so that you can keep up with the modem.
Q: Can I run WHOST over a the internet?
WHOST is really designed for serial links. If you want to control a DOS machine over a network connection, check out TINY.
Q: What does the /M command line option do?
This option is only useful when running applications
specifically written to run on the WHOST host machine.
The application can control when screen updates are sent by periodically calling INT 0x97 after it has updated the screen. This can make WHOST run more efficiently since it will not end up sending half-finished screen updates.
This can also add fail-safe security since if the application
crashes, WHOST will stop sending screen updates and processing keystrokes so the
remote user will never be able to get access to a command prompt (or anything
but the intended application).
28.8Kb and 14.4Kb are typically data rates that two modems
will use to communicate with each other over a physical connection. You will
want the computer to talk to the modem at a higher rate than the modems talk to
each other at- this way you get better performance because (1) there will always
be data ready for the modem to send over the link so the link will not go idle
and the modem will not need to wait for the computer, and (2) the modems will
often use compression between them so you will be able to send logical data at a
faster rate than the modems send physically over the link. The modem and the
computer use flow control between them to make sure the computer stops sending
to the modem when the modem can't keep up. This system works very well to make
the most of the slow link.
So, when picking what rate the computer should use to talk to
the modem, you should pick the fastest rate that your computer can keep up with
rather than the data rate you think the modems will link at. This is typically a
function of the CPU speed of the computer and kind of serial port you have. If
you have a 28.8K modem, I'd try setting the PC baud rate to 115K and see if you
get any corruption. If so, then maybe drop down to 56Kb (or get a faster
computer, a better serial card and/or better serial cable).
Q: What is the license for WHOST?
WHOST is free for non-commercial use. If you really love WHOST, you can express your gratitude though a tax-deductible donation to The Aasha Foundation.
If you would like to include WHOST in a product you sell, please email me at the address below and we can work something very reasonable out.
You may distribute the WREMOTE client/player freely.
Q: What is the optional spawn argument do?
A: WHOST is not a TSR. Instead, it spwns a new program after setting itself up to listen for an incomming connect. By default, WHOST runs “C:\COMMAND.COM”, which makes it seem like a TSR excelt that any open connection will quit out (and WHOST will unload) if you EXIT from that spawned command shell. If your command.com is elsewhere, you can specify the full path and name as the optional “spawn” argument at the end of the WHOST command line. BTW, you can specify any program for the “span” – WHOST will run that program and wait for a connection and then will hang up the connection when that program quits. This can be very hand for security to make sure that someone coming in over remote control will automatically get disconnected if they manage to crash our quit out of the running program so that they never get command line access to the machine.
If you've read all the FAQ questions above and are still having a problem with WHOST, you can email me at...
9/26/08-Inital upload.
11/26/08 - Added FAQ about the /M option and fixed-up the help
text about this option in executable.
Added FAQ on baud rates. Fixed a
spelling error.
12/1/08 - Updated the quickstart based on helpfull suggestions from Joe at mailbag.
6/29/2010 - Added FAQ about the spawn arg.