WHOST

Overview

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 Features

WHOST Limitations

Download

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.

DEMO

  1. Unzip the files from DEMO.ZIP to a drive on a DOS computer.
  2. Run the PLAY.BAT file. This will play back a session I recorded in 1996 from a DOS machine running my famous Watcher program over a 28.8KB modem link.
  3. Enjoy the show and the memories!

Quick Start

  1. Set up two DOS machines next to each other. Call the left on the host and the right one the client.
  2. Connect COM1 on the host machine to COM2 on the client machine using a 7-wire null-modem cable.
  3. Run HOST.BAT on the host machine.
  4. RUN GO.BAT on the client machine.
  5. When prompted, enter the password "foobar" on the client machine.
  6. Enjoy!

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!"

 

Programs

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.

 

FAQ

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...

 

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).

Q: Why doesn't SETBAUD support 14.4kb or 28.8kb?

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.

Support

If you've read all the FAQ questions above and are still having a problem with WHOST, you can email me at...

support email address image

 

Updates

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.

###