DnDBBS(R) v2.7a SYSOP DOCUMENTATION -- INSTALLATION AND SETUP (01/01/90)
The Adventure system requires you to have an IBM (or compatible) PC, XT, AT
with DOS 3.0 or higher, Serial port and Hayes Smartmodem. A minimum of 384K
is needed and an 80 column monitor. A fixed disk drive is highly recommended.
The Adventure System (version 2.1) is distributed by PC-SIG on disk 1131.
If you are installing DnDBBS onto a dual drive floppy system place the
distribution diskette number one in drive A: and type INSTALL F. If you are
installing DnDBBS onto a hard disk drive system place the two distribution
disks into drives A: and B: and type INSTALL H.
The Adventure System is also distributed to Bulletin Board Systems in four
files called DND27-1.ZIP, DND27-2.ZIP, DND27-3.ZIP, and DND27-4.ZIP. You must
use PKUNZIP.EXE to separate these files into their components.
MODEM SWITCH SETTINGS
The Hayes modem switch settings must be set similiar to the following:
Switch setting number 5 being the most important. It must be set to the
down position so the modem does not automatically answer the phone. Instead,
DnDBBS will tell the modem to answer the phone on the first ring with the
Hayes modem command ATA. DnDBBS configures serial ports for 300, 1200, 2400 or
9600 baud at no parity, 8 data bits, 1 stop bit by reading in the Hayes
connect string which is CONNECT and the baud rate (i.e. CONNECT 300).
FOSSIL DEVICE DRIVER NOT REQUIRED!!
Fossil is a generic driver which contains code for screen functions, keyboard
functions, and most important, communications routines. DnDBBS can access
these comm routines for its modem input and output, initializing, and xon/xoff
and rts/cts flow control. Normally all you need to do is put the statement
DEVICE=X00.SYS in your CONFIG.SYS file and boot up to install the driver.
This will operate comm port number 1. If you are running port 2, or even 8
ports, fossil will take care of them. X00.SYS does not need to be installed
if you are running DnDBBS in the local mode. The default configuration is
NOT to load fossil support. This option in config modem variables can be
toggled on for fido and opus systems.
The fossil driver is available for downloading on most BBSes as X00_109C.ZIP
or X00V111B.ZIP or filenames similar to these.
RECORD LOCKING WITH SHARE
A requirement of operating DnDBBS in multiple partitions is to use SHARE.EXE
This program is located on your DOS disk. Install it by placing the program
in your boot root directory and adding the statement SHARE to your AUTOEXEC
batch file. DnDBBS will not run properly without share installed. If you
operate several partitions (i.e. doubledos) without share, then you run the
risk of having FAT or disk sectors scrambled. Share intercepts the DOS calls
to file accesses and compares them to an internal table of locked records.
This allows DnDBBS to be fully compatible with multiple partitions.
CONSOLE ANSI SUPPORT
DnDBBS sends color code changes directly to the ANSI.SYS device driver. This
is done by calling an assembly program distributed with the source called
SCRN.ASM (compiled with MASM as SCRN.OBJ). The ANSI driver is found on your
DOS disk. Install it by placing the program on your boot root directory and
add the statement DEVICE=ANSI.SYS in the file CONFIG.SYS and reboot.
Desqview users type DVANSI.COM in the DnDBBS partition before running dnd.
COMPILING AND LINKING WITH QUICKBASIC 4.5
The MICROSOFT QUICKBASIC Version 4.5 allows the separate compilation of
program modules so the 64K restriction is broken. Each source code module
occupies its own 64K segment in memory. This way programs can grow to the
maximum of 640K. The data segment is 64K and shared by all source code
modules. The DnDBBS opening screen will display the number of bytes free
in the BASIC data segment. QB 4.5 DOES require a DTR compiler patch!
QuickBASIC also allows memory to be allocated to the heap which is an area
of RAM beyond the program data segment and code segment. When fixed strings
and numeric arrays are redimensioned they are allocated to extra hundreds
of K of RAM in the heap. This allows full use of all memory by DnDBBS.
To compile the source programs type the following: (or use the batch programs)
/S to write strings to the disk without overflowing the compiler memory.
/X to error trap and resume to next or same statement.
/O so the program will run without the runtime files.
To link the object modules type:
/E to reduce executable filesize and make it load faster
QB.LIB is a Quick BASIC 4.5 library which contains precompiled code supporting
the CALL INTERRUPT statement. This is used to support the FOSSIL driver and
the DOS function calls. BCOM45.LIB is the default library also used to link
into DnDBBS for the /O switch on the compiler command line.
The assembly program DNDUTIL.ASM provided with the source can be compiled
with the Macro Assembler 5.0. This file contains a generic screen driver
which provides special cases of scrolling before line 25 used by BASIC for
the status line, and has routines to save and restore the cursor when
displaying the status line. This file also contains an assembly routine
which provides an interface to DOS to allow DnDBBS to check the disk for
an existing file without creating it. This is used for multipartition and
networking systems to send messages in multinodes.
Compile Batch programs are distributed with the source in DND27-4.ZIP. If you
have the following files in your DnDBBS directory you can compile the source
with a batch program:
DNDUTIL.OBJ, MASM.EXE, QB.EXE, LINK.EXE, BCOM45.LIB, QB.LIB
COMMAND LINE OPTIONS
The command line options are parameters you type type after the command
DNDBBS at the DOS prompt. If there are any parameters at all, the first must
be the node number. All command line options must be separated by a space.
The other two optional parameters are LOCAL and DEBUG. For example:
DNDBBS 1 LOCAL
DNDBBS LOCAL DEBUG
DNDBBS 1 DEBUG
DNDBBS 1 LOCAL DEBUG
There are two extra command line options to the DNDBBS command. They toggle
printer and disk session logging. For disk logging the session is logged to
the file DNDBBSx.LOG (where x is the node number). The command switch for
disk logging is /L and the command switch for printer logging is /P. They
must be the last options on the DNDBBS command. For example:
DNDBBS LOCAL /L /P
The disk and printer toggles are displayed on the opening screen in the area
right of the status and memory displays. These options can also be toggled
from within the opening menu by pressing ALT-L for disk logging and ALT-P
for printer logging. They can also be toggled at any time during the program
when a remote user is online. The status line will be updated with the word
PRT and LOG in the last half of the user name in the status line when toggled
on. The statusline can be toggled from user statistics to the interactive
sysop function keys with the escape key.
RUNNING DNDBBS AS A SINGLE USER PROGRAM
To run the adventure at your computer without a modem or serial port type
DNDBBS LOCAL and you will be able to enter the program from your keyboard.
This way you do not require to run as a bulletin board service, or need to
have a modem, or have the fossil driver installed.
The modem does not answer the phone. This is probably because the modem is
not initializing correctly. Try rebooting and then running the program.
Also try initializing the modem with another communications program. If none
of these work then your modem might not support the Hayes command set. When
you boot DnDBBS the copyright screen is displayed for five seconds, fossil
is initialized, then the opening screen appears. The status indicator will
show the message "Waiting for Calls" if the modem has initialized correctly.
If the status indicator shows "Reset Timeout" or "Init Timeout" this means
the modem has not sent the string "OK" back to DnDBBS and the modem may not
have initialized properly. In this case DnDBBS continues normally.
The modem must send the string RING so the DnDBBS knows when to tell the
modem to answer the phone. DnDBBS will send the modem command ATA to pick
the phone off hook and initiate carrier.
1) The program does not read the configuration file.
Delete all .CFG files and start over with DNDCNFG. Dndcnfg loads
zero into all config values. Load your .CFG file with control-r or
load default values with control-d in dndcnfg.
2) The program does not recognize the configuration in step 1.
You have not written a new one out to disk. Make sure you use the
control-w command before exiting config. Or the .cfg is file is from an
old version. (See step 3.)
3) When installing a new version of DnDBBS, the config structure may have
changed. Delete all old .cfg files and rebuild from scratch in dndcnfg.
DnDBBS(R) v2.7a SYSOP DOCUMENTATION -- CONFIGURING AND SETUP (01/01/90)
This text file assumes you are installing DnDBBS into a fixed disk system, and
that your computer is an MS-DOS compatible, or 100% IBM compatible clone. This
software does not support other machines which claim to run IBM programs (such
as an atari or amiga with IBM emulators) because the source code is written for
MS-DOS bios and function calls, and uses ANSI escape sequences for IBM.
Create a subdirectory on your fixed disk unit and copy the DnDBBS .ZIPs or
files (if you have already unzipped them). DnDBBS looks for files in various
DOS directories depending on your configuration.
This section is primarily text on creating and maintaining the configure file
for DnDBBS. The program will look for this file in the default directory it is
booted from. If the configure file is not found then the program aborts with
an error message to run dndcnfg.
Start the configure program by changing to its DOS directory and typing:
DNDCNFG (optionally, dndcnfg can be loaded while in DnDBBS by typing
*config, or function key 3 from the opening screen.)
You will be presented with a color screen containing eight options:
Logon Variables Command Variables
Processing Variables Modem Variables
File Variables Custom Equations
Rooms Variables Quit Configure
And a selection on the bottom line:
Cursor Select -|> Enter Choice
^d Load Config Defaults ^w Write Config ^r Read Config
At this point you can select one of eight options with the cursor keypad,
and the enter key. The screen will clear with the parameters which can be
configured for that option.
To select the option for loading configuration files or defaults, and to
write the configure file, type control-r or control-d and control-w. The ^
symbol is short for the control key, then the letter at the same time.
The critical operating parameters are the datapath to the .DAT files, the
datapath to the .DOC files, the datapath to the temporary work directory
(or a RAM disk), and datapath to the DOOR information file. These are in the
file variables screen. The modem variables contains the door path and type.
When you have entered the critical options, write the configuration out to the
DNDBBS.CFG file. Note: if you are running DnDBBS as a door you must use a Node
Number. The node number is used for the configuration filename. For node 1 the
file created is DNDBBS1.CFG for node 2 it is DNDBBS2.CFG, etc. You will be
prompted for the node number, or to press enter for no node number. The plain
configuration file DNDBBS.CFG is read by LOCAL mode (i.e. when the sysop runs
the program from DOS or boots as a standalone BBS.)
Once you have written a configuration file to disk, you can run DnDBBS as a
local program with the command DNDBBS LOCAL, or run it in BBS mode with the
command DnDBBS. In this mode the program takes control of the modem and
answers it for incoming calls. The status indicator in the opening screen
shows the activity of the modem before the caller gets connected. DnDBBS will
answer at speeds up to 9600 baud. Your modem must be 100% Hayes compatible and
support the entire Hayes command set. Here is a sample of the DnDBBS to modem
conversation while in BBS mode:
From DnDBBS to modem:
From modem to DnDBBS
OK (status indicator will display "Reset OK")
From DnDBBS to modem:
ATQ1E0S0=0S2=255 (or some similiar modem intialization code)
From modem to DnDBBS:
OK (status indicator will display "Init OK")
(Now DnDBBS should show the status "Waiting for Call")
From modem to DnDBBS:
RING (text string sent by the modem when the phone rings)
From DnDBBS to modem:
From modem to DnDBBS:
CONNECT 1200 (or connect 2400 or 9600)
(at this point if DnDBBS has not detected a carrier signal within 30
seconds then it hangs up the modem DTR signal and recycles)
FURTHER CONFIGURING FOR COMMUNICATIONS PORTS
For sysops using multinode systems, networks, or multitasking applications,
you may need to configure DnDBBS for a specific communication port number
besides the default of COM1. Config modem variables screen allows you to
set the port to any other number from 1 to 8 (The fossil device driver
can access up to 8 ports on an AT). In order to do this you must modify
the command line on the device=x00.sys in config.sys. Read x00.doc for
further information. If you do not have fossil loaded then you have to
specify the serial port address for ports above 2. The default for port 1
is 3f8 and for port 2 is 2f8. They must be entered in hexidecimal. Technically
DnDBBS is capable of accessing any modem port in any range by the addressing
of the UART chip port (be it 2F8, 3F8, or 9F8).
DOOR INFORMATION AND NODES
To run DnDBBS as a DOOR place the node number after the DNDBBS command (for
example: DNDBBS 1). To specify the node parameter from a Batch file use the
node number for the first replacement parameter (for example: DNDBBS %1).
Select the option in dndcnfg for the DOOR type. There are three options:
RBBS, OPUS, PCBOARD12 and PCBOARD14. They read DORINFOx.DEF, LASTUSEx.BBS,
and PCBOARD.SYS, respectively. The RBBS door information file contains the
communications port. OPUS may be running as a multiple node setup or as a
single partition with no node numbers. In the last case, DnDBBS will first
look for LASTUSEx.BBS then look for LASTUSER.BBS regardless of which node
is specified. Select the dndcnfg option for the pathname where the DOOR
information file is to be found. Dndcnfg will add the trailing \ if you
forget it, for example: C:\OPUS\ Then select the dndcnfg option for the
Here is a sample batch file to call DnDBBS from RBBS (this batch file is named
DND.BAT and it is called from RCTTY.BAT from RBBS.BAT with the command DND 1):
For futher RBBS batch file programming read the RBBS documentation. There are
many involved batch routines for files RBBS.BAT, RCTTY.BAT, and RBBSTM.BAT.
RBBS uses the file MENU5 to look for the keyword to boot the batch file.
I.E. In MENU5 you must have the batch file name in uppercase surrounded by
spaces so RBBS can find it. Then RBBS attaches .BAT to this string and
checks the disk for the filename. For example, MENU5 could look like this:
RBBS DOORS MENU SYSTEM
Type in one of the following door options to run:
DND - The Adventure System
DND500 - DND 500 Sectors
An environment string is a system variable locally known to DOS and the
program DOS executes. Basically you place an environment string into the DOS
system variable space with the SET command. DnDBBS will recognize these strings
and use them for disk access. There are five environment strings for DnDBBS:
Place the strings into the DOS environment with SET command. For example:
The PATH command can also be included to point to your DnDBBS executable
directory. Say the path C:\RBBS\DND\ is the actual directory you have the
files on your disk. With this feature you could also place the path to look
for DNDBBS.EXE to boot up from any drive at any time by combining the
environment strings with the PATH command. For example:
Now, with the path command, and all set commands, DnDBBS will boot up from
anywhere in your computer. Note: The environment strings set for DOS will
over-ride all configuration pathname options. Make sure to place a trailing \
after the SET statements. DnDBBS will put them there if you forget.
A well organized DnDBBS system would make full use of the datapath options.
The disk drive structure could look something like this:
C:\ C:\RBBS\DND C:\RBBS\DND\DATA
CONFIG.SYS DND*.EXE ROOMS.DAT WELCOME.DAT BANK.HLP
AUTOEXEC.BAT DNDBBSx.CFG OBJECTS.DAT NOTICE.DAT CASINO.HLP
X00.SYS PLAYER.LOG TREASURE.DAT PRELOG.DAT MAIL.HLP
SHARE.EXE DNDBBS.ERR MONSTERS.DAT LOGOFF.DAT MAILEDIT.HLP
ANSI.SYS DNDBBS.DAY MONCLASS.DAT PRIMESS.DAT DNDEDIT.HLP
DNDBBSx.LOG MONTALK.DAT PRITABLE.DAT *.CTN
DNDRANK.DAT SPELLS.DAT PUBMESS.DAT
C:\RBBS\DND\DOC E:\ C:\RBBS\DND\SOURCE
DNDBBS.DOC DNDEXITx.DAT *.BAS *.INC *.BAT *.OBJ *.MAP *.BAK *.ASM
README.1ST NODEWRKx.DA? QB.LIB MASM.EXE BC.EXE BCOM45.LIB LINK.EXE
X00.DOC (or RAM disk)
DOOR INFORMATION FILE STRUCTURES
The following DOOR files have all been verified to work:
Door option 1-RBBS(17.1-2) 13 lines ascii text
ZIPPIT RBBS (bbs name)
ERIK (bbs sysop first name)
OREDSON (bbs sysop last name)
COM1 (comm port used, COM0 for RBBS local sysop)
9600 BAUD,N,8,1 (baud rate and parameters string)
1 (network type)
SYSOP ("SYSOP" for local access, otherwise the user's
first name, and this line last name)
MPLS, MN. (users city state)
2 (graphics preference)
100 (the user level)
359 (user time left)
20 (time remaining)
Door option 2-OPUS(1.03b) random record, binary stuff. DnDBBS reads bytes
165 and 166 as a packed integer with cvi (basic convert two byte string to
integer) which is the baud rate. This door has been verified to work on
1.03b and it most likely works on other OPUS versions.
BCOM45.LIB DTR Patch
Much to my dismay I discovered the QB4.5 DOES require a DTR patch. Here is
the text to apply the patch.
Before beginning, make sure you have backup copies of BCOM45.LIB.
With Debug in a DOS path, type:
s cs:0 ffff b0 00 e3 01
Debug should show:
where xxxx can be any number depending upon where Debug loaded the program
into memory. In any case, the number is not important.
Debug should show:
This is where QB graciously resets the comm port to parameters it thinks the
comm port should have.
To fix the problem, Type:
(then hit control-c to exit entry)
(then hit control-c to exit entry)
where [Enter] is the Enter key (do not type the characters)!
To verify that you typed everything correctly, Type:
Debug should show:
To save the corrections Type:
Debug should show:
Writing 35EF7 bytes
Now type Q and you are finished patching BCOM45.LIB
========== END OF DOCUMENTATION ==========