


      $read.me (c)Copyright Sequiter Software Inc., 1990-1992.
         All rights reserved.
         ----------------------------------------------------------

              README -  Table of Contents

         I.   CodeBasic 5.1 Electronic Documentation Files.
    
         II.  CodeBasic 5.1 Manual Revisions.

         III. Undocumented New Additions/Changes
         
         IV.  DLLINFO Utility

         V.   DLLNAME Utility

         VI.  Examples.

         VII. Sequiter Public-Access Bulletin Board System.

         ----------------------------------------------------------

         I.    CodeBasic Electronic Documentation Files.

         It is highly recommended that any installed documentation
         files be read in addition to the CodeBasic manual.  These
         documentation files provide additional information not found
         in the CodeBasic manual. 

         This electronic documentation file has been suitably 
         formatted for hard-copy printing. To print this document, 
         simply direct the file to your printer, using the 'print' 
         command. 
                   eg. print $read.me 


         The complete list of documentation files that are present 
         on the CodeBasic disk are:


         GENERAL DOCUMENTATION: 

         $READ.ME       General user information, manual changes,
                        updates, and installation information. 
                        Always installed.


         README.DOS     Only installed if VB DOS/PDS option was 
                        selected during installation. Contains
                        online documentation for using CodeBasic
                        from Visual Basic for DOS or PDS 7.1


         README.RLZ     Only installed if the CodeBasic for Windows
                        option was selected during installation. Contains
                        online documentation for using CodeBasic
                        with CA-Realizer 2.0.

         CODECTRL.DOC   Provides last minute changes/fixes for using
                        CodeControls. Located in the \CODECTRL sub-directory.


         50UPGRAD.DOC   Provides information about the general differences
                        between CodeBasic 5.0 and 5.1. This file 
                        also provides information about upgrading
                        from 5.0 to 5.1
         INSTALL.DOC    Information on CodeBasic installation.  
                        Includes manual unfolding documentation.

         11UPGRAD.DOC   Information for users who are upgrading from
                        CodeBasic 1.1 or CodeBase 4.5 to CodeBasic 5.1.
                        Only installed if the 'Upgrade' option was 
                        selected during installation. Located in the
                        \11UPGRAD directory..


         ----------------------------------------------------------

         II.   CodeBasic / CodeReporter Manual Revisions


         CODEBASIC USER'S GUIDE:

         -    Pg 41 'Learning CodeBasic'

              When using CodeBasic for Windows, you no longer have to
              modify the 'fPath' variable located in USER.FRM. This
              variable has been changed from containing a hard-coded path 
              name to the CodeBasic examples directory, to instead using 
              the example application's path, as specified by the 
              App.Path property.


         -    Pg 159 'Requirements for BOT'
     
              Although not mentioned, BOT cannot use unique tags to help
              return querys. This is because a unique index may not
              contain entries for records that should be part of the
              query set.

         -   Pg 171 'Memory Optimizations'

              Although not mentioned, when using a debugging version of 
              the CodeBasic library, the value of CODE4.memStartMax should 
              be reduced substantially before calling d4optStart(). The
              reason is that CodeBasic optimization involves allocating
              many chunks of memory and storing these chunks in a linked
              list. When a debugging library is used, the linked list
              is checked for errors each time a new chunk is added. This
              substantially reduces performance.
                             
              
         CODEBASIC REFERENCE GUIDE:

         -    Pg 75  'd4packData'

              Due to internal changes, this function in no longer callable 
              from a Visual Basic application. Use d4pack() instead.


         -    Pg 90  'd4tagNext'

              The reference for function d4tagNext() is missing from the
              CodeBasic Reference Guide. The description is a follows:

              d4tagNext


                   Usage:         TAG4& = d4tagNext( DATA4&, tagOn& )

                   Description:   d4tagNext allows you to iterate 
                                  sequentially through all of the tags
                                  corresponding to the data file.

                   Parameters:    'tagOn' is the current tag in the 
                                  iteration.

                   Returns:       The next tag in the iteration, after
                                  'tagOn' is returned. if 'tagOn' is zero,
                                  the first tag is returned. If 'tagOn' is
                                  the last available tag, zero is returned.

                   See Also:      d4tagPrev


         -    Pg 129 'expr4type'

              The reference for function expr4type() is missing from the
              CodeBasic Reference Guide. The description is as follows:

              expr4type

                   Usage:         exType% = expr4type( EXPR& )

                   Description:   This function returns the type of dBASE
                                  expression associated with the expression
                                  'EXPR4'. 'EXPR4' is a pointer returned
                                  by e4parse(). For example, a character
                                  expression would return a type of 'r4str',
                                  as defined in CODEBASE.BAS (Win) or
                                  CODEBASE.BI (DOS).
                   Returns:
                        
                     r4date       A date formatted as "CCYYMMDD".

                     r4date_doub  A julian date, formatted as a double is
                                  returned. A value of 0 represents a
                                  blank date.

                     r4log        An integer with a true(1) or false(0) value.
                   
                     r4num_doub   A numeric value formatted as a double.

                     r4str        A string of characters.


         -    Pg 169 'relate4matchLen'

              Although not specifically mentioned, the RELATE4 pointer
              passed to this function should always be a pointer to a
              slave relation, not the top master. In other words, the
              pointer should have been returned from relate4createSlave() 
              and not relate4init().

         -    Pgs 179 - 188 Report Functions
              
              This entire chapter was written for use with CodeReporter
              version 1.0. Refer to Appendix "F" in the CodeReporter 2.0
              manual for documentation on the new report functions 
              available.



         ----------------------------------------------------------

         III.  Undocumented New Additions/Changes

         The following additions/changes have been made to the 
         DLLs/Libraries after printing of the CodeBasic manual.


         Additions:
         ~~~~~~~~~~

         Chapter: CodeBasic Settings and Variables


         CODE4.memSizeMemoExpr

         Usage:         rcl& = code4memSizeMemoExpr( CODE4&, size& )
         
         Description:   If a memo field has a length over 
                        CODE4.memSizeMemoExpr, the length over this 
                        value is ignored by the expression evaluation 
                        functions. Setting this value to a reasonably
                        small amount would allow you to build tags on 
                        memo fields.

                        The function expr4len() assumes that the 
                        memo field has exactly this length.                      with trimed fields.

                        By default, CODE4.memSizeMemoExpr is 1024.
                        The maximum value this member can be set to
                        is 64K.


         CODE4.fileFlush

         Usage:         rc% = code4fileFlush( CODE4&, flag% )

         Description    When this flag is set to true (1) any changes
                        made to a file are immediately flushed to
                        disk, regardless of whether CodeBasic or any
                        other file buffering is in effect.

                        This will slow down an application that makes
                        many changes or appends many records, but will
                        guarantee that changed information is immediately
                        saved to disk.

                        This flag is initially set to false (0).


         ----------------------------------------------------------

         IV.   DLLINFO Utility

         When you use or distribute your application, the name of the 
         CodeBasic DLL you use must be named CB5.DLL. Because of this
         fact, you may wish to ascertain which actual DLL CB5.DLL 
         represents. CodeBasic includes a small utility, DLLINFO.EXE
         which provides more information about CB5.DLL

         Syntax:   DLLINFO <dllname>

         DLLINFO.EXE can be found in the \CODECTRL subdirectory. When
         provided a valid DLL file name, the program responds by
         displaying a one line description of the DLL, including
         the DLLs format type (dBASE, Fox, etc.) and whether the
         DLL is a debug or non-debug version.


         ----------------------------------------------------------

         V.   DLLNAME Utility

         As explained in the booklet 'Getting Started with CodeBasic
         5.1', any CodeBasic DLL you use or distribute, should be named
         CB5.DLL, as this is the original name that the DLL was built
         as. This name, without the .DLL extension, is stored within the
         header of the DLL. If you distribute the DLL it with any other name
         Windows will not unload it from memory when that last application 
         using the DLL has terminated.

         If the situation occurs where you need to distribute the DLL
         under another name, you can do so by changing both the external
         and the internal name of the DLL. Because the internal name is
         limited to the size of the original name (3 characters), your
         external name should be the same length as well.

              e.g.  C:\> ren cb5.dll xyz.dll

         To change the internal name of the DLL, use the provided DLLNAME
         utility. This utility will modify the header information of
         the DLL, allowing you to change this internal name.

         The DLLNAME utility has the following syntax:

              DLLNAME <file name> <old internal name> <new internal name>

              e.g   C:\> DLLNAME CB5.DLL CB5 XYZ

         In the preceding example, the internal name of CB5.DLL would
         be changed from 'CB5' to 'XYZ'.

         Normally you do not have to change the name of the CodeBasic DLL.
         One exception would be in the case where you or your end user
         is using another product, which also uses the CodeBasic DLL, 
         which however is using either a different release version or 
         is using a different index format.

         DLLNAME.EXE is located in the \CODECTRL subdirectory.

         ----------------------------------------------------------
         VI.    Examples

         There are three sources of CodeBasic  examples:

         1. The User's and Reference Guide, for short examples 
            of function usage.

         2. The examples present on the CodeBasic  diskette.
            All examples installed are placed in the CodeBasic
            \WSAMPLES (Windows), \DSAMPLES (DOS) or 
            \DSAMPLES\PDS (PDS 7.1) subdirectories.

         3. Our BBS, which contains new examples produced by our
            developers and examples which users have uploaded.
            Please see 'Section VI', The CodeBasic Public-Access
            Bulletin Board System (BBS)' for more information.


         ** NOTE **

         Many of the examples provided on disk include the presence of
         data, index and memo files. Due to space limitations, only
         dBASE IV and FoxPro index and memo files are provided. Therefore
         some examples can only be run fully when using these libraries.

         ----------------------------------------------------------


         VII.    The Sequiter Public-Access Bulletin Board System (BBS)

         Any user with a modem may connect with the Sequiter
         Bulletin Board System.  Connection to the BBS is free, 
         although all users are responsible for their own long-
         distance toll charges.  The BBS operates twenty-four hours
         a day, seven days-a-week, excluding maintenance periods.  
         The BBS operates under the DOS environment, running
         WildCat(c) communications software.

         The BBS contains several CodeBasic-related files and
         documents that may be downloaded.  There is also a message
         system so that electronic correspondence may be left for
         Sequiter staff, or other BBS users.  The files include example
         programs, utilities, add-ons and enhancements, written by
         both Sequiter developers and CodeBasic users.  Users are
         invited to upload interesting CodeBasic-related files for the
         use of all BBS users.

         The phone number for the BBS is found on the back outside
         cover of the CodeBasic manual.  The phone number is currently
         (403)-437-2229. An additional line has been added that supports
         up to 9600 baud modems. The current number for this line is
         (403) 437-2301

         Settings for the connection are:

              1200, 2400 or 9600 baud
              ANSI terminal type.
              No parity.
              8 bits.
              1 stop bit.

         Upon connection to the Sequiter BBS, a new user will be
         prompted for some information and the selection of a private
         password.  After selection of your password, please memorize
         it since you will be asked for that password on future
         connections to the BBS.

         Sequiter Software is a registered member of the 'Data Based
         Advisor Forum' on CompuServe.  Through this forum, messages can
         be sent to Sequiter Technical Support.  Also, support and 
         demonstration files can be downloaded from the DBA library area.  
         To access the DBA forum, type 'GO DBA' at any CompuServe exclamation
         (!) prompt.

         Messages can be directed to Sequiter using the following CIS ID
         number:

              71321,1306

         This account is monitored for messages a minimum of three times
         a week.

         The following are detailed instructions as to how our customers
         can access Sequiter through the DBA Forum on Compuserv (CIS).
      
         1 - Once user is logged on to CIS, he can get to the DBA Forum
             from any "!" prompt by entering the command "GO DBA".
      
         2 - This will bring him into the DBA top menu, at which time the
             user selects menu item " 1 Data Based Advisor Forum ".
      
         3 - The next screen is the Welcome Screen, at which the user
             presses the <ENTER>, which then takes the user into the "Forum
             Menu".
      
         4 - If menu item " 3 LIBRARIES (Files) " is selected, the next
             menu to come up is one which lists all 17 library areas.  All
             Sequiter files will be located in area " 6 Libs, Addons, Tools".
      
         5 - After selecting this area, the user can then browse through
             this area, searching by a key word which identifies our
             packages (i.e. SEQUITER, CODEBASE, CODEBASIC, etc.), or if the
             user knows the name of the file he wants to download, he can
             simply select download.

      ---------------------------- END -----------------------------------





