home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
pascal
/
rmdoor30.zip
/
RMDOOR.DOC
< prev
next >
Wrap
Text File
|
1992-08-18
|
19KB
|
991 lines
RMDoor
Version 3.0
Copyright (c) 1991-1992 By Mark Goodwin and Randy Hunt
RMDoor i
COPYRIGHT NOTICE
----------------
RMDoor is a copyrighted program being distributed under the shareware
concept. As such you may use RMDoor for a period of 30 days without
registering the software. After the 30 day evaluation period, you
must register your copy of RMDoor or you will be in violation of
United States and International copyright laws.
As a shareware program, RMDoor may be freely distributed through a
BBS. Shareware distributors may distribute copies of RMDoor on disk
for a modest disk duplication charge not to exceed $6 per disk.
RMDoor ii
WARRANTY
--------
RMDoor is distributed without warranty. In no event will Mark Goodwin
or Randy Hunt be liable to you for damages, including any loss of
profits, lost savings, or other incidental or consequential damages
arising out of your use of or inability to use the program, even if
Mark Goodwin, Randy Hunt, or an authorized representative has been
advised of the possibility of such damages. Mark Goodwin and Randy
Hunt will not be liable for any such claim by any other party.
RMDoor iii
TABLE OF CONTENTS
-----------------
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . 1
USING RMDOOR . . . . . . . . . . . . . . . . . . . . . . . . . . 2
RUNNING AN RMDOOR DOOR . . . . . . . . . . . . . . . . . . . . . 3
SPECIAL KEYS . . . . . . . . . . . . . . . . . . . . . . . . . . 4
THE RMDOOR VARIABLES . . . . . . . . . . . . . . . . . . . . . . 5
ansicolor . . . . . . . . . . . . . . . . . . . . . . . . . 5
baudrate . . . . . . . . . . . . . . . . . . . . . . . . . . 5
bbsname . . . . . . . . . . . . . . . . . . . . . . . . . . 5
callingfrom . . . . . . . . . . . . . . . . . . . . . . . . 5
doorname . . . . . . . . . . . . . . . . . . . . . . . . . . 5
lockedrate . . . . . . . . . . . . . . . . . . . . . . . . . 5
minutesleft . . . . . . . . . . . . . . . . . . . . . . . . 5
phonenumber . . . . . . . . . . . . . . . . . . . . . . . . 6
seclevel . . . . . . . . . . . . . . . . . . . . . . . . . . 6
sysopname . . . . . . . . . . . . . . . . . . . . . . . . . 6
userfirstname . . . . . . . . . . . . . . . . . . . . . . . 6
username . . . . . . . . . . . . . . . . . . . . . . . . . . 6
THE RMDOOR PROCEDURES AND FUNCTIONS . . . . . . . . . . . . . . . 7
rmclrscr . . . . . . . . . . . . . . . . . . . . . . . . . . 7
rmdisplayfile . . . . . . . . . . . . . . . . . . . . . . . 7
rmgetbackground . . . . . . . . . . . . . . . . . . . . . . 7
rmgetforeground . . . . . . . . . . . . . . . . . . . . . . 7
rmgotoxy . . . . . . . . . . . . . . . . . . . . . . . . . . 7
rmreadi . . . . . . . . . . . . . . . . . . . . . . . . . . 7
rmreadkey . . . . . . . . . . . . . . . . . . . . . . . . . 7
rmreadl . . . . . . . . . . . . . . . . . . . . . . . . . . 8
rmreads . . . . . . . . . . . . . . . . . . . . . . . . . . 8
rmsetcolor . . . . . . . . . . . . . . . . . . . . . . . . . 8
rmtimeleft . . . . . . . . . . . . . . . . . . . . . . . . . 9
rmtimeon . . . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwrite . . . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwritei . . . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwritel . . . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwriteln . . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwritelni . . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwritelnl . . . . . . . . . . . . . . . . . . . . . . . . . 10
SUPPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
REGISTRATION . . . . . . . . . . . . . . . . . . . . . . . . . . 12
RMDoor 1
INTRODUCTION
------------
RMDoor is a comprehensive set of Turbo Pascal routines designed to
enable programmers to easily write doors for BBSes. The following are
some of RMDoor's many features:
Assembly language serial input/output routines for maximum
speed.
Fully supports high speed modems: 16550 FIFO buffering and
locked serial ports.
Built in ANSI terminal emulator. No need to have ANSI.SYS
loaded in memory.
Supports all of the most popular door data file formats:
TriBBS, PCBoard, GAP (DOOR.SYS), Spitfire, WildCat!, RBBS,
and WWIV. Thus, a door built around RMDoor is compatible
with a wide range of BBS software.
RMDoor 2
USING RMDOOR
------------
Because RMDoor comes supplied is a Turbo Pascal unit it can be
seamlessly integrated with your door program by simply including the
following two lines in your door program:
{$M $4000,0,0}
uses rmdoor;
The first line is a {$M} compiler directive and is necessary to enable
RMDoor's Drop to DOS function. If you omit this line from your door
program, RMDoor will not be able to drop to DOS and will display an
appropriate error message to the sysop. NOTE: The {$M} compiler
directive also affects your program's heap space. Be sure that the
final two values are set accordingly if you dynamically allocate
memory.
The second line is a "uses" statement and simply instructs Turbo
Pascal to include the RMDOOR.TPU unit in your compiled door program.
RMDoor 3
RUNNING AN RMDOOR DOOR
----------------------
An RMDoor-based door program is run by entering a command similar to
the following:
door config
In the above command line, "door" is the name of your door's EXE file
and the "config" parameter is the name of the door's configuration
file. The configuration file can have any name the sysop chooses, but
it must reside in the same directory as the door. The configuration
file is an ASCII text file with the following format:
Line 1: Door data file type.
Line 2: Path to the door data file(s).
Line 3: BBS name.
Line 4: Sysop's name.
Line 5: Locked baud rate.
As illustrated above, the door's data file type is specified in line 1
and can be PCB for PCBoard, GAP for GAP (DOOR.SYS), SF for Spitfire,
RBBS for RBBS, WC for WildCat!, TRIBBS for TriBBS, or WWIV for WWIV.
The locked baud rate is specified in line 5. If the sysop doesn't
lock his serial port, he must specify 0 for the locked baud rate.
NOTE: Although many door formats do pass the locked baud rate in the
door data files, some older formats such as RBBS do not. For
conformity, RMDoor requires that you specify the locked baud rate in
line 5 and ignores any value passed in the door data files.
The following is a sample door configuration file:
PCB
C:\tribbs\
The Lobster Buoy
Mark Goodwin
38400
RMDoor can be run locally without a door data file (handy for the
sysop to use the door without logging on to the BBS) by specifying
LOCAL after the configuration file parameter in the DOS command line.
RMDoor will request the user to enter his name before running the
door.
RMDoor 4
SPECIAL KEYS
------------
While a door is running, the sysop can press certain special keys to
perform a variety of functions. The following is a list of the
functions that the RMDoor special keys perform:
Key(s) Function
HOME Toggles between the user status window and a help
display that lists the RMDoor special keys.
F6 Takes 5 minutes away from the caller.
NOTE: This will NOT be returned to BBS.
F7 Gives 5 minutes to the caller.
NOTE: This will NOT be returned to the BBS.
F9 Quit the door and return the caller to the BBS.
F10 Enter chat mode. Pressing the ESC key exits the
chat mode.
Alt+D Drop to DOS.
RMDoor 5
THE RMDOOR VARIABLES
--------------------
The following are the global variables that RMDoor supplies for the
door author's convenience:
ansicolor : boolean;
The ansicolor variable is set to True for a caller using ANSI color
graphics or to False for a monochrome caller.
baudrate : longint;
The baudrate variable holds the caller's baud rate. This is the
callers actual connection rate and not the locked baud rate. NOTE:
RMDoor will set baudrate to 0 for local calls.
bbsname : string;
The bbsname variable holds the BBS's name.
callingfrom : string;
The callingfrom variable holds the user's city and state. This may
not be supported by all door formats and will be set to a null string
if not.
doorname : string;
The doorname variable holds the door's name. The door's name will be
displayed in the user status window. NOTE: It is the door author's
responsibility to assign a value to this variable.
lockedrate : longint;
The lockedrate variable holds the serial port's locked baud rate, if
any.
minutesleft : integer;
The minutesleft variable holds the number of minutes the caller had
remaining when he entered the door.
RMDoor 6
phonenumber : string;
The phonenumber variable holds the user's phone number. This may not
be supported by all door formats and will be set to a null string if
not.
seclevel : integer;
The seclevel variable holds the caller's security level.
sysopname : string;
The sysopname variable holds the sysop's name.
userfirstname : string;
The userfirstname variable holds the user's first name.
username : string;
The username variable holds the user's name.
RMDoor 7
THE RMDOOR PROCEDURES AND FUNCTIONS
-----------------------------------
The following is a explanation of procedures and functions that RMDoor
provides:
procedure rmclrscr;
The rmclrscr procedure clears both the local and remote displays.
procedure rmdisplayfile(filename : string; pause : boolean);
The rmdisplayfile procedure displays a file to both the local and the
remote displays. The file to be displayed is specified by "filename".
The "pause" parameter specifies whether or not the display is to be
paused every 24 lines.
function rmgetbackground : integer;
The rmgetbackground function returns the current background color.
function rmgetforeground : integer;
The rmgetforeground function returns the current foreground color.
procedure rmgotoxy(x, y : integer);
The rmgotoxy procedure positions the cursor for both the local and
remote displays. The cursor's new column position is specified by the
"x" parameter and its new row position is specified by the "y"
parameter. NOTE: This will only work if the user has ANSI enabled
(RMDoor will ignore this statement if called when the user does not
have ANSI enabled).
function rmreadi : integer;
The rmreadi function returns the value of an integer that is entered
either locally or remotely.
function rmreadkey : char;
The rmreadkey function waits for either a key to be pressed or a
character to come in through the serial port. As soon as a character
is available, its value will be returned by rmreadkey.
RMDoor 8
function rmreadl : longint;
The rmreadl function returns the value of a longint that is entered
either locally or remotely.
function rmreads : string;
The rmreads function returns the value of a string that is entered
either locally or remotely.
procedure rmsetcolor(f, b : integer);
The rmsetcolor procedure sets the foreground color (the "f" parameter)
and the background color (the "b" parameter) for both the local and
remote displays. NOTE: The colors will only be set if the caller has
ANSI color graphics enabled. The foreground colors are as follows:
0 - Black
1 - Blue
2 - Green
3 - Cyan
4 - Red
5 - Magenta
6 - Brown
7 - White
8 - Dark grey
9 - Light blue
10 - Light green
11 - Light cyan
12 - Light red
13 - Light magenta
14 - Yellow
15 - Bright white
The background colors are as follows:
0 - Black
1 - Blue
2 - Green
3 - Cyan
4 - Red
5 - Magenta
6 - Brown
7 - White
8 - Black with blinking foreground
9 - Blue with blinking foreground
10 - Green with blinking foreground
11 - Cyan with blinking foreground
12 - Red with blinking foreground
13 - Magenta with blinking foreground
RMDoor 9
14 - Yellow with blinking foreground
15 - White with blinking foreground
function rmtimeleft : integer;
The rmtimeleft function returns the number of minutes the caller has
remaining.
function rmtimeon : integer;
The rmtimeon function returns the number of minutes that the caller
has been in the door.
procedure rmwrite(s:string);
The rmwrite procedure displays a string both locally and remotely.
procedure rmwritei(i : integer);
The rmwritei procedure displays an integer both locally and remotely.
procedure rmwritel(l : longint);
The rmwritel procedure displays a longint both locally and remotely.
procedure rmwriteln(s:string);
The rmwriteln procedure displays a string both locally and remotely.
After displaying the string, RMDoor will send a CR/LF pair to the
local and remote displays.
procedure rmwritelni(i : integer);
The rmwritelni procedure displays an integer both locally and
remotely. After displaying the integer, RMDoor will send a CR/LF pair
to the local and remote displays.
procedure rmwritelnl(l : longint);
The rmwritelnl procedure displays a longint both locally and remotely.
After displaying the longint, RMDoor will send a CR/LF pair to the
local and remote displays.
RMDoor 10
SUPPORT
-------
You may obtain assistance with a RMDoor related problem by calling
either The Lobster Buoy at 207-941-0805.
RMDoor 11
REGISTRATION
------------
Registration of RMDoor is only $25.00. Please use the form in the
file REGISTER.TXT. When you register RMDoor, you will receive a
letter of verification and a note on how to turn your shareware
version of RMDoor into a registered version.