By Scott Baker
DDTerm is a terminal program that has been written especially for use
with bbs door games utilizing the DoorDriver door support library. (Currently,
this include GALACTIC WARZONE ver 7.5). While DDTerm may be used as a normal
terminal program at any time, it does have several special features which will
kick in when it is running with a door compiled using DoorDriver version
3.10 or above. (Galactic Warzone version 7.5 is currently the only door
available meeting that criteria).
When communicating with a DoorDriver 3.10+ door, DDTerm will have the
following extra features:
1) "Short" color codes. The door will send 3-byte color sequences
rather than the ANSI format 5+ byte sequences. This makes running
doors with color enabled almost as fast as running them without
2) Remote packet display capabilities. This is really the most
important feature of DDTerm. The door will transfer certain
"packets" to the user. Once transferred, the door will then
send messages to DDTerm so DDTerm may display these packets
locally rather than having them be sent remote each time they
are needed. (i.e. The galactic warzone main menu will only be
sent once across the modem. After that, all displays of the menu
are done locally)
3) Pop up windows. The host program can send a code to pop up a window
within DDTerm. This provides for a nicer display that your
average scrolling text displays.
4) Time limit updating. The host will automatically transmit the users
time limit information to DDTerm. DDTerm then can use this
information to keep an updated copy of how much time you have
before log off.
5) Context sensitive help.
6) For Galactic Warzone users, we have a built-in GW Sector Scan
utility. It is very useful to locate various planets, starbases,
7) Remote menus. The host program may send a remote menu code to DDTerm
which will pop up a menu on the screen. The menu may either be a
straight menu where selecting an option will act on that option, or
a toggle-menu where various items may be toggled on/off.
DDTerm also has a few special features which are available while
running under any door.
1) 200 line COLOR scrollback display. (The colors are preserved
in the scrollback - looks very nice)
2) FOSSIL driver support.
3) Built in async comm routines.
HOW TO INSTALL DDTERM
1) Create a directory for DDTERM. (DDTerm creates a lot of temporary
files; You probably don't want them in your terminal programs
2) Place the files you received in the DDTERM.ZIP file into that
directory (i.e. DDTERM.EXE, DDTERM.DOC, etc)
3) DDTERM may now be invoked by typing "DDTERM" at the dos command
line (with any optional parameters)
The best way to go about using DDTerm is to use your normal terminal
program to call up the BBS you wish to use, enter the doors area, and then
SHELL/EXIT to DDTERM from within your terminal program. (You may use a
DROP-TO-DOS feature of some terminal programs or you may set up DDTERM as an
external protocol from your terminal program)
DDTerm may be invoked with the following parameters:
DDTERM [COM n] [BAUD n] [FOSSIL]
The parameter COM will tell DDTerm which port to use (COM1 is
assumed.) You may also change the current port from within
The parameter BAUD will tell DDTerm what baud rate to use.
If you specify FOSSIL, DDTerm will attempt to use a FOSSIL driver.
Fossil drivers are commonly used by bbs systems as a standard way
to do serial communication. If you wish to use this option, then you
must already have a FOSSIL such as OpusComm, X00, or BNU loaded.
DDTERM COM 2 BAUD 2400
Invoke DDTerm using COM2 and 2400 baud.
DDTERM COM 3 BAUD 300 FOSSIL
Invoke DDTerm using COM3, 300 baud, and a fossil.
DDTERM BAUD 9600
Invoke DDTerm using COM1 at 9600 baud.
THE BASIC GOAL OF DDTERM
The basic goal of DDTerm is to provide a friendlier user interface -
since most doors are character-oriented programs, DDTerm tries to speed
things up and add a few windowing routines to make the door appear more
like a traditional applications program.
DDTerm will maintain a series of "packet files" on the user side of the
conection. These packet files contain the data for the packets that the
host sends across the modem. Packets are written to disk so that the host
need not retransmit them at the next logon.
A typical DDTerm session will look like the following:
[-------- DDTerm is invoked -------]
(normal terminal operation)
HOST: Send any string containing the characters "[DDTERM "
LOCAL: Send "DDTERMON"Chr(13) to enable DDTerm packet operation
HOST: Send packet #255, Host identifier (contains host name)
LOCAL: Receive host identifier and use it for packet filenames
(normal terminal operation) <-----<----<----<----<-----
[Send/Display a packet] /:\
HOST: Send "test" command to test for packet :
LOCAL: Check for packet presence (on disk or in RAM). If packet is :
packet data. /:\
(normal terminal operation) :
[Send color code] :
HOST: Send "Set-Foreground" or "Set-Background" command /:\
LOCAL: change color to new foreground/background :
(normal terminal operation) :
[-------- Loop until session is over ---------] >------>------>----->-----
As you can see, DDTerm operates as a mix between normal terminal
operation (i.e. sending ASCII characters back and forth) and a packet-protocol
based operation. The packet operation is enabled by the sending of commands
from the HOST (i.e. set-foreground, test, display, receive, etc)
1.00 -First public release
1.10 -Minor bug fixes, too numerous to mention
1.20 -Fixed scrollback to work on monochrome
-Changed HELP from ALT-H to ALT-Z (to make room for hang up)
-Added Hang-Up command
-Improved statistics screen slightly
1.30 -Speeded up "test" command slightly
-For speed reasons, DDTerm will no longer save packets less
than 256 bytes to disk.
-Major face lift - added a pull-down menu system that allows
you to access most commands.
-Revised ansi display code - users may now view the scrollback
buffer/status/etc without causing a packet error with the
-Added macro capability. Details are in DDTERM.CTL.
1.40 -added time limit to display
-added version identification command
2.00 -major version update
-added dialing directory and autodial command
-added context sensitive help capabilities
-added xmodem upload/download commands
-added xmodem autodownload command
2.10 -fixed problem with things displaying three times
-added one-line capability (see CTL file) - may increase
transmission speed dramatically - see CTL file for more
-added "reliability" options. Currently, only the above one-line
command is included
2.20 -Fixed minor problems with ONELINE option
-Added Log file option
-Added Screen Capture
-Added Galactic Warzone sector scanner utility
-Remote menu capability added
-Added upload/download options to the misc. menu and the
COM 3 & 4
If you use the fossil based I/O routines (with a fossil driver such as
BNU, X00, or OpusComm, you should have no problem). The internal comm routines
have been tested with COM 1 and 2, but I have had reports that support does
not work correctly with 3 and 4.
The Internal Async I/O routines came from a public domain async library
written by Mark Shultz of Rising Edge Data Services. The internal Xmodem
support came from a public domain package written by Andrew Bartels of Digital
Innovations. I would like to thank these individuals for placing their code in
the public domain for the rest of us to learn and use.
If you find this program useful, please send me a donation at my
address listed below. I can use all the money I can get to keep my BBS up
and running and further my programming projects.
6431 Tierra Catalina #48
Tucson, AZ 85718
BBS NUMBER: (602) 577-3650 2400,1200,300 baud.