Contents of the NMODEM.DOC file
By Chris Cox
Required hardware & software.
An IBM compatible PC for use as the modem server.
An IBM compatible PC for use as the modem user.
A NetBIOS compatible local area network.
A modem for use at the modem server.
Note this program requires the use of a modem which can be con-
figured to completely ignore the status of the RS232c Data Termi-
nal Ready (DTR) status line. If your modem hangs up the tele-
phone line when the DTR line is lost, MSVR will not function.
This is a brief synopsis of the purpose, configuration require-
ments, and usage of NetBIOS Modem, by Chris Cox.
At this time, NetBIOS Modem is still under extensive development
however, in its present form, it does fill a void in many local
area networks: that of allowing more than one person to use a
NetBIOS Modem relies on the communications capabilities afforded
by any network which, either relies on, or at least supports
(such as Novell's NetWare), the NetBIOS communications interface.
Unlike many of it's commercial counterparts, NetBIOS Modem does
not create an interface which adhere's to any formal, or de facto
IBM PC communications structure at this time. Hence, anyone who
needs to use the modem MUST use the included terminal emulation
program VTERM.EXE. It is anticipated that this will not be the
case in the future, but for the time being, that's the way it is!
Please be warned, this package has only had limited testing on
one network, so it is not impossible that there are additional
bug's to those which will be described in appendix A of this
If you find any additional bug's, please report them to me either
via CompuServe 72711,1775, or MCI Mail account "Christopher G.
As is standard with most software, by using this package, you
agree to indemnify me against, and I specifically refuse to carry
any liability from your, or anybody else's, use of this package
or any part of it.
You may distribute this package freely, as long as NO CHARGE of
any form is made, including duplication, etc. In addition, all
files supplied in this package as listed on the following page
must be included, and no additions or removals are allowed.
Files included in this package are as follows:
NMODEM.DOC This document.
MSVR.EXE The executable program which runs on the PC
acting as the modem server.
VTERM.EXE The executable program which runs on the PC
using the modem server (i.e. the user!).
VT$DIAL.DAT An optional ASCII file which contains the
name and number of frequently called systems
(Please note it is optional whether or not
you use this file.)
The file VT$DIAL.DAT is a simple ASCII file which contains the
name and telephone numbers of any services which you regularly
call using the NetBIOS Modem. Use of this file is entirely
optional. As it contains just ASCII data, you may create and
edit it using any ASCII editor, including EDLIN. The format of
this file will be described after the pre-usage configuration
which follows on the next page...
The only file which has to be available to anyone who needs to
use your modem is VTERM.EXE.
Conversely, the personal computer which is to function as the
modem server only needs to have access to the file MSVR.EXE.
If you wish to make use of the dialing directory, ensure that you
call VTERM from the directory in which VT$DIAL.DAT is stored. If
you are using the NetBIOS Modem on a Novell NetWare network, and
you place VT$DIAL.DAT in the SYS:PUBLIC directory, then it can be
found by any user who has SYS:PUBLIC included in their search
path AS LONG AS THAT USER's LOGGED DRIVE IS A NETWORK DRIVE, when
they execute VTERM.
Only one user at a time can access any one modem. If another
user is connected to the modem, then an error message will be
sent to the second user, and the program will exit back to DOS.
However, mode than one copy of MSVR can be run simultaneously as
long as any additional copies operate at a different baud rate.
Baud rates supported are 110, 300, 1200, 2400, 4800, 9600, 19.2k,
38.4k, & 57.6k baud. The program has only been tested up to 9600
baud at this time. The default baudrate, if not specified, is
2400, as with version 1.0.
The current version of NetBIOS Modem requires the use of a PC
dedicated to operation as a modem-server. Version 2.0 has been
tested under DesqView 2.26 and operates successfully in a multi-
MSVR requires a Hayes-compatible modem, connected to your PC via
either COM1:, COM2:, COM3:, or COM4:.
Usage is straightforward. Simply type the command
MSVR [port] [baud-rate]
where [port] is a number between 1 and 4. The
default value is 1 for COM1:.
and [baud-rate] is one of 110, 300, 1200, 2400,
4800, 9600, 19200, 38400, 57600. The default
value is 2400.
Please note that MSVR should be run before running VTERM. If MSVR
has not been run, or there is not a server available at the
specified baud-rate, VTERM will fail and give an error message.
Usage of VTERM is even easier. It has only one optional parame-
ter which may be used to specify the baudrate. To use a baud-
rate other than 2400, MSVR must be run with the alternative baud-
rate specified. If no baud-rate is supplied, 2400 will be used.
and you're on your way.
As stated before the format of the dialing directory is very
simple. Each entry in the directory consists of a NAME and a
NUMBER. That's it. Nothing more, nothing less. Please note,
however, if you do create a dialing directory, it must have the
entry LAST following the final directory entry, and there can be
no more than 20 (twenty) entries in the directory.
Consider the contents of the VT$DIAL.DAT file supplied...
CompuServe (Minneapolis port)
This file contains two valid entries, followed by the LAST entry.
The fields in the file are line-delimited, i.e. each name &
number is terminated by a Carriage Return / Line Feed sequence.
This file is so simple, it could even be created by entering the
following command (and in fact was...)
COPY CON VT$DIAL.DAT
MCI Mail - 2400 Baud
CompuServe (Minneapolis port)
^Z (Control Key & Z)
Please don't forget the twenty entry limit!
The directory is available at any time in VTERM by pressing the
Version 2.0 adds the capability to send and receive files using
the XModem & YModem (1k-XModem) protocols. YModem BATCH is not
supported in version 2.0.
XModem & YModem facilitate the transmission and reception of
files with their inherrent error checking protocols. The file
transfer feature is activated by pressing the function key.
You will see a window popup on your screen asking you to enter
The first is the name of the file which you want to send or
receive. You may enter upto 64 characters into this field,
allowing for the files full pathname. If you leave this field
blank, pressing ESCAPE will return you to the terminal emulator.
Two of the other fields have default values assigned to them.
One of these fields is used to select X or YModem - the default
is XModem. The other is used to specify NAK or CRC XModem. This
option defaults to CRC, which is a significantly better error
checking method than the original NAK form of XModem. YModem
always uses CRC, irrespective of the method you select.
The fourth field you must specify is for Upload or Download.
There is no default value for this field, so you must choose
either U or D.
Once you have filled in the necessary fields, press the ESCAPE
key to initiate the file transfer.
Remember, if you want to leave the file transfer mode without
sending or receiving a file, leave the filename field blank, and
Appendix A - Known bugs.
The bug that caused characters to be dropped has been eliminated,
by dropping the DTR status line when sending a packet to the user
running VTERM. This now requires that your modem ignore the
status of the DTR line.
*** FIXED ***
So far, there's only one known bug, and it's more of a
nuisance than a problem! The problem is that occasion-
ally (about once every two of three screensful of text)
a character will get printed twice, or alternatively, a
character will get dropped.
By monitoring the screen on the modem server, it can be
seen that for some reason this character is actually
appearing twice in, or being dropped from, the RS232
input buffer. This does not occur with other programs
which use the same C asynchronous communications li-
brary, and so appears to be caused intermittently by
the NetBIOS calls. This is undergoing further examina-