Uchat 1.0/README.DOC

16.9 KB cefa2575aa579f36…
                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.