README.DOC for UltraChat Version 1.0
Last Updated 3/15/94
INTRODUCTION
This file, README.DOC, serves to present information about the
product which is not reflected in the UltraChat manual. This
includes documentation errors, additions, and clarifications.
PLEASE TAKE THE TIME NOW TO READ THROUGH THIS FILE, or do so at your
earliest convenience.
SOFTWARE MODS
Even the best software has bugs when it is as complex as UltraChat.
In order to keep your software current, eSoft distributes a program
update system to fix any bugs which we find in the software. You
can use this system to protect your software investment. Each fix
(called a mod) is assigned a number. This release includes all mods
up to and including:
┌───┐
│ 0 │ <--- MOD LEVEL OF THE SOFTWARE ON THESE DISKETTES
└───┘
The software update program (UPDATE.EXE) is on this diskette. The
latest software update data file (UPDATE.BIN) is always available at
no charge for download from the eSoft, Inc. Support Board (for
access information, see Chapter 12 of your TBBS manual). If you are
experiencing difficulty with the software, obtain and apply all
newer mods before taking any other action.
MANUAL ADDENDUM
TDBS-BASED MATCHMAKING SOFTWARE INCLUDED
eSoft has included a TDBS application called User Profile System, or
UPS for short. This application is included at no extra cost, along
with complete source code. It is designed to provide former DLX and
Oracomm sysops with a profile and matchmaking system that can
adequately replace those facilities of their previous BBS software
when moving to TBBS.
This application was developed under contract by Zone One. If you
wish to contact Zone One, you may leave e-mail on the eSoft Support
BBS to SCOTT STURGIS.
You are permitted to use the program and its source code in any way
you see fit. Although eSoft retains copyright in the program and
its source, you are permitted to make, redistribute, or even sell
changes you make.
The documentation for the UPS application is included in the file
UPS.DOC. This documentation, along with the application itself and
all related files are located in the \UPS sub-directory on the
UltraChat release disk(s).
Please note that the source code for UPS is *NOT* included on the
disk(s), rather, it has been posted and made available for download
on the eSoft Support BBS.
Also on the Support BBS is a stand-alone executable program for UPS
which provides maintenance functions. Due to the size of the
program file, we have chosen not to include it on your release
disk(s).
You can reach the eSoft Support BBS at (303) 699-8222.
USERLOG.PTR USAGE
UltraChat stores a number of items about users in the TBBS
USERLOG.PTR file. When you install UltraChat, you will likely
notice that the USERLOG.PTR file grows considerably in size. The
values saved are: three-line bio, announce string, private channel
topic name, private channel password, invisible status, no chat
status, logon announce suppression status, shortcut command
requirement status, and moan macro enable/disable status.
------------------------------------------------------
IMPORTANT! BECAUSE THIS INFORMATION IS STORED IN THE
USERLOG.PTR FILE, WE STRONGLY RECOMMEND THAT YOU KEEP
RELIABLE BACKUPS OF ALL THE USERLOG AND MESSAGE BASE
FILES. THESE FILES ARE INTERLINKED INTERNALLY, AND
SHOULD BE BACKED UP OR RESTORED TOGETHER. THESE FILES
ARE: USERLOG.BBS, USERLOG.PTR, USERLOG.INX, MSG.BBS
AND MSGHDR.BBS.
------------------------------------------------------
OPT DATA SWITCHES ADDED
A number of Opt Data switches have been added to support linking.
These are not discussed with the rest of the switches in Chapter 1,
but they are documented in Chapter 4 beginning on page 4-4. Also:
Added the /W switch, which tells UltraChat that for this command,
the string previously set to tell what a user is doing is to be
ignored. This will allow you to set something in a menu, but have
it ignored when UltraChat is actually entered.
Added the /X switch, which will take a user out of DOTBBS mode when
UltraChat is entered. This will be necessary when using a
DOTBBS#xx_CMD to call UltraChat again, as otherwise messages will
get queued and never printed.
Added the /A switch, when linking that line will strip ANSI sequences
from the remote system. Adding this should not affect anything
unless a link is generated.
Added the /U:<string> switch, which starts UltraChat as though it
was from the TBBS message read prompt except instead of printing
MISC#04_TEXT and assuming the user started their typing with /, this
function prints MISC#18_TEXT and assumes the user started the typing
with <string>, which will get shown right after the MISC#18_TEXT
string. For commands to be executed, this is treated as MODE=A. If
/U is not followed by anything, then it allows the user to type in a
full command as though that hadn't yet typed anything.
CONFIGURATION STATEMENTS ADDED
Added LINK_BOUNCE_TEXT string which gets sent to a user if they
tried to do a remote operation through a link and a remote site
couldn't do the operation for some reason. This string will have
the original text of what was trying to be sent appended to it. See
the sample configuration files for an example.
Added COLOR#05_TEXT as the default color to be used for text coming
from a monitored conference.
Added SECRETLY_MATCH <string> which makes <string> be matched as the
word "secretly" on moan macros. If it is matched, the moan is sent
ONLY to the person mentioned in the moan. This can be enhanced by
using the new insertion parameter %SECRETLY% which will print the
string configured as SECRETLY_DISPLAY if the moan macro was done
secretly. The word that matches SECRETLY_MATCH must be at the end
of the line of input for it to be matched.
Added NO_KEY_SWITCH which takes on/off as a parameter. If ON is
used, then when messages are printed before a menu displays, there
will be no Press any key prompt needed. If you use this, make sure
your menus don't do any screen clearing, or the users will never see
the messages.
Added CALL_LOG_FILE <filename> and CALL_LOG_TEXT <string> <number>.
These cause UltraChat to make entries in <filename> of the format
contained in <string> when a user logs on. The string is not added
if the user does not qualify for that string, or a CALL_LOG_FILE is
not defined, or if the user is marked invisible in the userlog. The
last <number> logons are stored. Each entry is a maximum of 79
bytes, and is terminated at the first carriage return, end of
string, or the 79th byte. When the file is first created, space is
reserved for <number> entries plus 1 extra entry for a header
record. Be sure you have enough disk space to hold 80 bytes per
entry if you make the number large. The maximum size is 65535
entries (which would create a file 5.3MB in size!).
To display the information in the call log file (see above),
CALLERS#01_CMD was added, which will take the information in the
file and display it one line at a time. CALLERS#01_HEADER as a
header line which should tell the caller what they are seeing, and
also should tell them about S to stop and P to pause. This call can
be used to replace the TBBS type=22 command with customized data of
any format that UltraChat can produce.
Added TIME=<start> <end> to RESTRICT blocks. <start> and <end> are
in 24 hour format, and UltraChat is smart enough to know about
midnight wraparound. For example:
RESTRICT TIME=01:00 05:00 ; from 1am-5am
RESTRICT TIME=22:00 08:00 ; from 10pm to 8am
The RESTRICT is only processed once each time the user enters chat,
so in the first example above, if the user entered chat at 4:59,
they would qualify for that restrict block until they exited chat.
When in trouble at the console (i.e., no commands are available), an
Alt-X keypress will now exit immediately to the menu. This will
work at all times, but is there specifically for when you are really
stuck!
CONFIGURATION COMMANDS ADDED
Added EXITBBS#01_CMD through EXITBBS#09_CMD which are the same as the
DOTBBS#xx_CMD types except that they act like the UC_CALL function
in UCHATAPI.PRG. In other words, they diddle with the user's clear
screen code and make him non-ANSI before exiting. This allows
starting up TDBS programs without clearing the screen. Those
programs will have to know about the convention used, which can be
done with the UC_RET call to fix the user back to normal in the
program. They can then use a UC_CALL function with a /Z to go back
to UltraChat and put the user back to normal again.
Added TOGGLE#06_CMD, TOGGLE#06_ON, and TOGGLE#06_OFF which allow a
user to "monitor" the channel they are in, even if they leave the
channel and go to another. Monitored output is prefaced with the
COLOR#05_TEXT string before sending to allow highlighting or other
prefixing for monitored traffic.
Added command element WHO#07_MONITOR string which gets printed
during a WHO#07_CMD (also executed when a channel is entered) if the
user on the line is "monitoring" the channel.
Added command element WHO#01_LINK through WHO#08_LINK for what is
printed when a line is linked to another system. Generally this
should be the same as the WHO#xx_NORMAL line, but you may want to
make it be special in some fashion. Make sure that if you allow
linking on your system, all WHO#xx_LINK lines exist and are made at
least equivalent to the corresponding WHO#xx_NORMAL string, or you
won't see the links listed!!!
Added LINK#04_CMD which is identical to LINK#02_CMD. This can allow
you to have long form and short form of remote WHO commands.
LINK#02_NOLINK - Sent if the name of the link doesn't exist.
LINK#02_SENT - Tells the user the request was sent (they
receive the data back interspersed with other
chat data to avoid waiting on the system
and to avoid line noise killing things.
LINK#03_SENDERR - This will be displayed if the link for some
reason does not accept the command, or if
the link is not an UltraChat to UltraChat
link.
IDENTIFICATION OF LINKED USERS AND SYSTEMS
When using the linking functionality of UltraChat in an UltraChat to
UltraChat link situation, it is possible to perform remote who and
sned (whisper) commands through the link. To do so, however, the
user in chat must identify the target and/or route for the linked
chat command.
For example, to send a message to a remote user (say user SYSOP on
machine TEST) you do it like an Internet address:
SYSOP@TEST
If you have a link from you to TEST to TESTA, like this:
+-----------+ +------+ +-------+
| MY SYSTEM | --- link ---> | TEST | --- link ---> | TESTA |
+-----------+ +------+ +-------+
then it would be:
SYSOP@TESTA.TEST
Basically, if you see a message from a remote system, take the user
name, add @, then list all the links shown on the message in reverse
order with periods between them. So, if you saw:
(M1) (M2) (M3) From Sysop: This is a test
To send a private messsage back, the address would be:
Sysop@M3.M2.M1
IMPORTANT: If you do not use an @, then the command will try to
execute for a local user.
INTERFACING WITH TDBS APPLICATIONS
Several Opt Data switches have been added for the express purpose of
allowing interaction between UltraChat and TDBS based program
applications. Sample code has been included with UltraChat to help
get TDBS developers started; refer to UCHATAPI.PRG and TEST.PRG.
These files are located in the \API sub-directory on the UltraChat
release disk(s).
See also the added EXITBBS#xx_CMD commands.
These new Opt Data switches are as follows:
/FI:<filename>
If present, UltraChat takes input from <filename> as though it
was typed from the keyboard. When the input stream ends,
UltraChat returns to the calling menu (or shell). Be sure to put
a carriage return at the end of any lines using this, as
otherwise nothing will get executed! The input is NOT echoed to
the user screen, but all command results and other strings are.
If you wish to have the input echoed, use /FIE: instead of /FI:.
/T
Tells UltraChat that it is in TDBS mode. When this switch is on
the Opt Data line, no matter how UltraChat exits, it will mark the
user as being in the conference, but in a TDBS application. This
means that in order for games, etc. to utilize the chat features
in a meaningful fashion, they probably want an Opt Data like the
following:
TYPE=203 Optdata=/T /DS:200,"Game Optdata","Game Description"
This will start up the game as well as give it a reasonable WHO
display description.
/Z
If present this tells UltraChat to do the same as the UC_RET call
does from the UCHATAPI.PRG program. It will reset the user's
clear screen codes and ANSI setting so it is normal again.
/S:<#>,<string>
For when UltraChat is used to "shell" to from another program.
When UltraChat is entered with this in Opt Data, instead of a
normal exit, the exit will be via a DOTBBS of type <#> with Opt
Data <string>. This can be used by TDBS programs to call
UltraChat, and tell UltraChat how to return back so the program
knows it was not being started, but rather "continued".
/FO:<filename>
This takes all output that would normally go on a user's screen
and instead sends it to <filename>. In places where there would
normally be a "Press any key..." the system will skip over it.
This allows programs to call UltraChat for various functions and
have it write the output to a file for them to analyze. If done
from a TDBS program, the /S:... will also need to be present to
make sure UltraChat does the proper stuff to get back to the
program in a way that it knows what happened.
MANUAL ERRATA
The following errors in the manual are known at this time, and are
referenced by page number below:
1-4, Option Modules and Memory Usage
The actual OM CODE memory size is 65,820 bytes, plus 548
bytes per defined line.
1-15, Sample Emulations, and 1-16, Mid-Page
In addition to the four emulations and sub-directories
given in this list, there is a fifth emulation and
sub-directory -- \UCHATN -- which is where the UltraChat
native mode emulation and related files are located.
UltraChat native mode provides a unique approach to
commands, coupled with the implementation of a broad
but simple to understand range of UltraChat functionality.
You can use it as-is, or as a base to work from to create
your own unique chat system.
3-17, General Chat Text Configuration Statements
These statements were inadvertently given the root name
"CHAT", but they ARE NOT RELATED to the "CHAT#xx_CMD"
commands or command responses in any fashion.
3-30, General Chat Commands
See the note in reference to page 3-17, above.
3-52, EDIT#04_CMD
Handles are not saved between calls as documented.
3-64, Missing Table
The table on the top of page 3-64 was accidentally omitted.
It is as follows:
MOAN TYPE OTHERS SEE TYPIST SEES
----------------------------------------------------------------------------
default moan DEFAULT_SENDS DEFAULT_RESPONSE
"yell"
user moan IF_USER_SENDS IF_USER_RESPONSE/DEFAULT_RESPONSE
"yell sysop" IF_MSG_SENDS IF_MSG_RESPONSE/DEFAULT_RESPONSE
public message
msg moan IF_MSG_SENDS IF_MSG_RESPONSE/DEFAULT_RESPONSE
"yell darn!" public message
user&msg moan IF_USER&MSG_SENDS IF_USER&MSG_RESPONSE/DEFAULT_RESPONSE
"yell sysop darn!" IF_MSG_SENDS IF_MSG_RESPONSE/DEFAULT_RESPONSE
public message
In addition, if IF_USER_SENDS or IF_USER&MSG_SENDS is used, the the
object of the user or user&msg moan will receive the appropriate
IF_x_SENDS_USER string if it exists. If that string does not
exist, then they will see what the rest of the conference sees.
4-21, Script Debugging
The last sentence of this paragraph does not apply, as
UltraChat does not offer file transfer in its scripting.