home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
D!Zone (Collector's Edition)
/
D_ZONE_CD.ISO
/
programs
/
editors
/
bnudm125
/
sersetup.txt
< prev
Wrap
Text File
|
1994-12-06
|
25KB
|
652 lines
│
││ BNU DOOM Serial driver version 1.2.5
│││ DOOM Network interface is copyright 1994 by Id Software Inc.
││ BNU SIO Driver is copyright 1994 by David L Nugent
│ & Unique Computing P/L
BNU for DOOM is a drop-in replacement for Id Software's
SERSETUP.EXE provided with DOOM 1.2. This version, however,
provides a full and complete interrupt driven serial driver
implementation and therefore does not suffer many of the
shortcomings in Id's original driver which was much too
simplistic to provide the services necessary for running on
today's typical modem configurations or at faster speeds
than 9600 baud.
This work is a derivative and blending of Id's published
source for SERSETUP and my own BNU FOSSIL driver plus some
useful enhancements to the original dialer. This driver
provides full support for the 8250 family of UARTs, including
the 8250, 16450, 16550 (original, used in older PS/2's),
16550A(FN), 16551-4 (CMOS and packaged versions of the 16550)
Intel 82510 and the TYPE3. It provides hardware flow control,
the ability to run at *any* baud rate supported by the UART,
configurable inbound/outbound buffer sizes.
Before you ask, BNU is an acronym for Basic Networking
Utility, referring to its use in the FidoNet community as
the base level of communications. FOSSIL in this context
means "Fido Opus SEAdog Standard Interface Layer", which is
a phrase used to describe the set of common interrupt
functions developed as a common layer for many FidoNet
applications. SIO (which you'll see in SERSETUP's banner)
means "serial input/output".
This driver does not use FOSSIL services, so you need not
install one nor need to even know what one is.
INSTALLATION
This driver is almost a drop-in replacement for Id's
original. First, rename Id's version to "SERSETUP.OLD" and
copy in SERSETUP.EXE from this archive into your DOOM
directory.
If you have used your modem to call other DOOM players and
have an init string that works, then all the rules have
just changed - you will almost certainly have to change your
initialisation string from the one you used with Id's
SERSETUP.
Specifically, you'll need to:
- Enable V42bis (if available)
- Enable error correction (optional)
- ENABLE HARDWARE FLOW CONTROL
(ALSO REFERRED TO AS RTS/CTS HANDLING)
The latter is the most important if you intend to use an error
corrected link, the others optional. Error correction and
compression are transparent to the data stream. BNU automatically
provides CTS/RTS signal handling to take care of the "spurts" of
data it receives as a result of the protocol used between the
modems. If you only have MNP5 compression, try it since it may
work fine - disable it if play becomes too jerky. Compression is
likely to slow down the game and make it less responsive, but
implementations vary so trying it won't hurt.
- You need 9600 baud or greater!
Don't consider attempting to run DOOM at any lesser speed -
it just doesn't work. You'll get a connect, but movement is
so slow that it is entirely unplayable. At 4800 baud it's
like molasses at 50 fathoms! At 2400, it's like attempting
to play DOOM inside a Jupiter Mining Corps' stasis booth -
i.e. pretty much a waste of time. Try it on a direct connect
if you like, it is amusing, but don't donate money to your
PTT provider trying it out if you only have 2400 baud modems
or less. At 7200 you might get a slow moving game going, but
9600 is really where it becomes playable. In fact, if you
have a 16450 and/or a slower 386, you may find that 9600
provides the most playable game (it is, after all, the speed
for which the networking interface was developed by Id).
- If you use error correction and/or compression, use a baud
rate greater than the actual connect speed.
For V32 modems, use 19200 (more probably won't be an
advantage and makes your system work harder - sometimes
causing jerky play). V32b modems should use 38400 or 19200.
This driver *may* work with the HST protocols (but probably
not brilliantly) and will certainly do just fine with ZYXEL
16.8K and 19.2K. VFC and V34 modems will probably need the
port set at 38400 or 57600 (incidentally, if anyone has parallel
port specs for use with these modems, or knows where these can
be obtained, please let me know at the Email address noted
at the end of this document).
MODEM.CFG has some additional (optional) lines which you can use:
Line 1: Modem init string (+)
Line 2: Modem hang up string (+)
Line 3: Default baud rate (if not specified, 9600 is used)
Line 4: Receive buffer size (defaults to 2048 bytes)
Line 5: Transmit buffer size (defaults to receive buffer size)
+ Also present in Id's SERSETUP
Anything after the fifth line is ignored. Note that to make your
existing MODEM.CFG compatible with this driver, it is advisable
to either complete the above values or add empty lines for the
additional fields as numbers starting on the additional lines may
cause spurious options to be set.
As far as possible, this rework of SERSETUP is compatible with
DOOM's SETUP.EXE. In fact, with the addition of configurable port
settings via the environment (see below 'nonstandard settings')
this version should be more compatible than the original, allowing
SETUP to be used with non-standard port configurations.
SERIAL CONNECTIONS
SERSETUP's dialer has been reworked into something that may work
a little more intelligently than the original. Specifically, it
supports these types of connections:
- Direct connection (no modem)
Run SERSETUP with none of the following present on the command
line: -modem, -voice, -dial, -answer
In the absence of these options, direct connect is the default.
- Dialup and answer via modem (answer mode, dial mode)
One end uses "-dial <number>" (where <number> is replaced by the
telephone number to dial), and the other and uses "-answer".
The dialing end's modem will call out to the other, and the
answering end attempts to pick up the phone line and establish
carrier when it sees "RING".
- Connection via an existing modem <-> modem connection
This is similar to the direct connect. However, if you use the
-modem switch, you may optionally hang up the telephone line
on completion of the game.
- Switching voice -> data prior and data -> voice after play
This avoids making unnecessary calls by allowing easy switching
between voice and data.
As with dialup, this requires an originating (dialing) end
and an answering end, the difference between them being that
some parts of establishing the connection aren't present.
The originating system is told to 'pick up' the line immediately
and the answering end told to issue connection tones without
waiting for RING.
At the originating end, use "-voice D" on the command line to
force originate mode. Your modem may offer other parameters
which do the same thing, perhaps a little better. In that case,
use "-voice <command>" where '<command>' is the recommended
string to place the modem into originate mode.
At the answering end, use "-answer -noinit", which skips the
modem initialisation and sends the command "ATA" (answer call)
to the modem immediately without waiting for RING.
All responses now have time-outs, and redial is automatic should the
number called result in "BUSY" or "NO CARRIER". SERSETUP also
understands response strings such as "VOICE" and "NO DIAL TONE",
failing the call should they be detected and exiting cleanly.
Note that hanging up after a call is now optional. The default (by
hitting ENTER at the prompt presented at the time) is to hang up.
NONSTANDARD SETTINGS
DOOM 1.2's SETUP.EXE did not allow any but the standard port (1-4)
selections. This means that those use run their modem on other
serial ports, or ports configured slightly differently than standard
had to either change these to the standard settings or use SERSETUP
from the command line. The original SERSETUP did attempt to provide
a way to use non-standard configurations; however, the code