TDBS 1.1 - TDBS 1.1 Errata and Workarounds

Contact:   eSoft, Inc. (Makers of TBBS)
           15200 E. Girard Ave., Suite 3000
           Aurora, CO  80014
           (303) 699-6565      Voice
           (303) 699-6872      Fax
           (303) 699-8222      BBS
           support@esoft.com   E-Mail

TDBS 1.1 ERRATA AND WORKAROUNDS
-------------------------------

THIS INFORMATION APPLIES ONLY TO TDBS VERSION 1.1

NOTE:  True software bugs that seriously affect the operation and usefulness of 
TDBS will be repaired with TMODS (field modifications or "patches" you can 
apply yourself) whenever possible.  This file contains a listing of 
workarounds, things that a TDBS developer should be aware of when creating 
applications.  It also contains corrections to the manual itself. 

THIS FILE MAY BE UPDATED FROM TIME TO TIME AS NEW ITEMS ARE DISCOVERED AND 
ADDED. 



                           Cursor Right Control Key

The manual (on pages 2-16 and 4-75) shows that Ctrl-K (^K) is the keyboard 
substitute for cursor right.  Although this was correct for TDBS 1.0, it is 
not for TDBS 1.1.  For technical reasons, the key combination had to be 
changed to accommodate memo field support.  The actual cursor right keyboard 
substitute is Ctrl-O (^O).  Of course, arrow keys can be used in local mode 
and remotely by properly configured terminals or terminal emulators. 

                 Extended Key Support in TBBS 2.1 Single Line

Due to a non-repairable element of the TBBS 2.1 Single Line driver program 
(TBBSDVR.COM), function and cursor control keys do not operate from the local 
console.  They are fully functional and operate normally from a remote 
terminal, assuming the remote is properly configured.  This is not a problem 
for TBBS Multi-Line that is current on TBBS software MODS. 

                           Control Character Display

Because of the online environment in which TDBS operates, control keys cannot 
be transmitted from or displayed by the application via the CHR() function or 
through other display means.  Control characters are from ASCII decimal 0 
through ASCII decimal 26 inclusive.  (There are some minor exceptions, such as 
CHR(7) which is an ASCII bell character, and can be used to send a "beep" to 
the remote caller.) 

                               OPDATA() Function

The OPDATA() function is undocumented.  This function allows you to return as a 
string the entire OptData line from the TBBS menu entry that called the TDBS 
application.  PLEASE NOTE THE SPELLING OF THE FUNCTION!  The function is 
OPDATA() (note the missing "T"), not OPTDATA() as it is normally spelled in 
TBBS environments. 

This function allows you to pass parameters from the TBBS OptData "command 
line" to the application.  See a separate Tech Note for instructions on ways 
to use the OPDATA() function. 

                      SET FORMAT TO Manual Clarification

The SET FORMAT TO command is properly documented on page 4-109, but is not 
properly documented in the example on page 2-33. 

In an auto-compile situation (where you type "TDBS <prog_name>" to compile the 
application) format files MUST have a file extension of .PRG, NOT an extension 
of .FMT as shown in the example. Further, the file extension must NOT be given 
in the code, or a compile-time error will result. 

For example, this is NOT correct:

        SET FORMAT TO FOOBAR.FMT

This is also NOT correct:

        SET FORMAT TO FOOBAR.PRG

This IS correct, and will compile properly, ASSUMING the format file is named 
FOOBAR.PRG: 

        SET FORMAT TO FOOBAR

You may use format files with a .FMT extension if you wish, but you must create 
a .TDB multiple-procedure control file and designate them explicitly, as 
described beginning on page 1-11 of the TDBS manual.  Even if you do choose to 
do this, you still must NOT designate a file extension in your source code. 

                     ULPEEK(), ULPOKE(), ULREPLACE() Usage

It should be noted that the userlog functions of TDBS - ULPEEK(), ULPOKE() and 
ULREPLACE() - DO NOT have immediate effect under TBBS 2.1.  This limitation 
will go away when used under TBBS 2.2, but for the TBBS 2.1 version, any 
revised settings "stick" only after the user hangs-up and dials back into the 
system.  (The only exceptions are the ANSI and IBM Graphics settings which 
appear to have immediate effect.) 

                             DOTBBS Clarification

DOTBBS, the TDBS command to invoke TBBS menu calls, is NOT functional under 
TBBS 2.1.  This command will ONLY work under TBBS 2.2 and higher versions.  
Your program can check whether DOTBBS is supported or not by using the 
DOTBBS() function documented on page 5-39. 

The DOTBBS command has limitations with certain menu command types.  The 
following menu command types are ONE-WAY, meaning that they DO NOT return to 
the calling TDBS program on exit: 

        Menu navigation                 Types 5, 45, 12
        Call termination/restart        Types 10 and 43
        All Expansion Module calls      Types 200, 205, etc.

If any of these menu command types are invoked through DOTBBS, the TDBS program 
is shut-down (executing any ON DISCONNECT functions first, as though the 
caller had hung-up), then the menu function is performed as though it was 
called from the original menu (from which the TDBS program was executed). 


                  COPY STRUCTURE EXTENDED Documentation Error

On page 4-36 of the manual, it shows a command as follows: 

        COPY STRUCTURE EXTENDED TO <file>

This is not correct.  The actual command is consistent with dBASE, and is 
documented properly on page 4-4 of the TDBS manual as follows: 

        COPY TO <file> STRUCTURE EXTENDED

The example shown in the manual on page 4-36 will work as documented when the 
command is changed as described. 

                        Math Co-Processor Requirements

The following operations in TDBS require a math co-processor to be installed in 
the machine on which TBBS/TDBS runs: 

        SQRT()          Function
        EXP()           Function
        LOG()           Function
        X**Y (X^Y)      Operator

                           SET FILTER TO Limitation

Due to a design flaw in TDBS, the program is limited to one active filter.  In 
dBASE, you can independently SET FILTERs for each active, open database.  This 
is not possible with TDBS.  SET FILTER remains active until you SELECT a new 
database or issue a different SET FILTER command.  This problem is not 
patchable through a MOD. 
        
- END -
TDBS0002
Rev. 7/91

Copyright (C) 1994 eSoft, Inc., All Rights Reserved.  Permission granted
to distribute this file in its entirety, without modification, to any
interested party.  Any other use requires the written permission of
eSoft, Inc.

IMPORTANT:  The information herein is subject to change without notice.
Please call or write to confirm factual information of importance to you
or your organization.

