TOOLBZ.SBR

                   An Enhanced Replacement for TOOLBX.SBR

                                     By
                             James A. Jarboe IV

Most ESP xcalls (SBR's) are relatively small. They make extensive use of
TOOLBX.SYS calls and therefore are usually only involved in the task of
getting the arguments from the BASIC program, passing the call to
TOOLBX.SYS and returning the results back to the BASIC program.

When DMSI managed ESP and TOOLBX.SYS there was a concern with the growing
number of ESP related xcalls (SBR's). To circumvent this and other
concerns, such as adding more features for BASIC program users, TOOLBX.SBR
was created.  TOOLBX.SBR was one XCALL (SBR) with many offsets that could
perform different functions.

As more and more users were utilizing the power of ESP, more and more
features were wanted. Most features that BASIC program users want, were
already available in TOOLBX.SYS but were normally only accessible from an
assembly language program using the TBX$????? calls.

The basic subroutine, TOOLBX.SBR helped overcome this restriction to
TOOLBX.SYS from a BASIC program. TOOLBX.SBR gave BASIC programs access to
some essential TOOLBX calls enabling the user to perform special ESP
functions from BASIC and enhance the performance of ESP screens in BASIC
programs.

The TOOLBZ.SBR basic subroutine (XCALL) provided on the AMUS Network is an
enhanced and expanded version of TOOLBX.SBR that is currently released with
ESP from Alpha Micro. It is 100% compatible with the three (3) current
calls that Alpha Micro provides in TOOLBX.SBR, 100% compatible with the
four (4) additional calls that was distributed from DMSI, and provides four
(4) more new calls for a total of eleven (11) calls within one XCALL to
TOOLBX.SYS from a Basic program.

Since the calling format is essentially the same for all calls, only
requiring different TBX$????? calls for particular functions, the current
size of TOOLBZ.SBR is only 946 bytes and fits in 2 disk blocks. Not bad for
eleven (11) xcalls.

With the current release of ESP from Alpha Micro, the TOOLBX.SBR basic
subroutine includes only three (3) offset calls. That version of the
TOOLBX.SBR subroutine gives basic programs accessibility to a few of the
TOOLBX.SYS calls. Those include the following:

TBX'FLDCNT  - Get ESP screen's Field count.
TBX'GETOLH  - Get a Field's on-line-help text.
TBX'SQFLSZ  - Get Sequential file size in bytes.

In one of the last DMSI releases of ESP, the TOOLBX.SBR included access to
a few more TOOLBX.SYS calls. The three above and the following.

TBX'HIDFLD  - Set a Field as HIDE or SHOW.
TBX'SKPFLD  - Set a Field as SKIP or ALLOW.
TBX'SELFLD  - Set a Field as SELECT or DESELECT mode.
TBX'GETFLUF - Get a Field's user Flags.

The TOOLBZ.SBR subroutine, provided on the AMUS Network includes and is
compatible with all of the above TOOLBX.SYS calls plus gives you the
following additional calls:

TBX'GETPUI  - Get a Field's Popup item value.
TBX'SETPUI  - Set a Field's Popup item value.
TBX'GETFID  - Get a Field number using Field's Permanent ID number.
TBX'GETFPN  - Get a Field Permanent ID number using Field number.

One of the drawbacks of TOOLBX.SBR distributed with ESP from Alpha Micro,
and the TOOLBX.SBR that was distributed from DMSI is lack of adequate
documentation.

While the following is not an extensive comprehensive documentation, it
should provide enough information to successfully incorporate the usage of
TOOLBZ.SBR into basic programs.

The TOOLBZ.SBR can be renamed or copied to the file name TOOLBX.SBR if you
so desire, and not loose any functionability with the currently released
version of TOOLBX.SBR.

Also, the BASIC include file, TOOLBZ.BSI is on the AMUS Network. This
include file contains the relative offset call values that are used to
access or call the various functions in TOOLBZ.SBR. The include file
TOOLBZ.BSI also includes information for field flags, and provides flag
values for the undocumented additional argument for the GTSCR.SBR xcall
routine.

The field usage flags that are used with the additional argument field in
GTSCR.SBR is not a new enhancement. The additional argument field has been
available with GTSCR.SBR for years. Only the documentation and flag values
have been lacking. See TOOLBZ.BSI, available on the AMUS Network, for
additional information about GTSCR.SBR.

The basic include file TOOLBZ.BSI can be renamed or copied to the file name
TOOLBX.BSI and still be compatible with the TOOLBX.BSI released with ESP
from Alpha Micro.

The TOOLBZ.SBR is one xcall with a number of offsets that perform the
desired function. The calling format in a basic program for all desired
functions is as follows:

   XCALL TOOLBZ, OFFSET, ARGUMENT, ARGUMENT, ARGUMENT

Where:

   OFFSET   = The desired function offset value as defined in TOOLBZ.BSI.
   ARGUMENT = The required argument as needed for the particular call.


Following are the calling formats and functions available in TOOLBZ.SBR.



TBX'FLDCNT  - Get an ESP Screen's Field count.

   This call will return the number of fields that are in an ESP screen.
   The ESP Screen must have been previously loaded using the xcall
   FETCH.SBR.


Usage:  xcall TOOLBZ, TBX'FLDCNT, SCREEN, FLDCNT

Where:
        TBX'FLDCNT  - Numeric value defined in TOOLBZ.BSI to process the
                       TBX'FLDCNT call.

        SCREEN      -  The ESP Screen buffer to access.

        FLDCNT      -  Numeric value of the number of fields of the
                       requested ESP SCREEN is returned to.



TBX'GETOLH  - Returns an ESP Screen's field on-line help text.

   This call will return the on-line text that is associated with the
   designated field. The ESP Screen must have been previously loaded using
   the xcall FETCH.SBR.


Usage:   xcall TOOLBZ, TBX'GETOLH, SCREEN, FIELD, OLHTEXT$

Where:
        TBX'GETOLH  -  Numeric value defined in TOOLBZ.BSI to process the
                       TBX'GETOLH call.

        SCREEN      -  The ESP Screen buffer to access.

        FIELD       -  The Field number to get the on-line help text
                       from.

        OLHTEXT$    -  String variable that the requested field's on-line
                       help text is returned to.



TBX'SQFLSZ -  Returns the size of a sequential file.

   This call will return the size in bytes of a designated sequential
   file. Most often this call is used to find the size of an ESP screen to
   see if it will fit into the designated buffer before loading the ESP
   screen into the variable buffer using the FETCH.SBR xcall.
   It can also be used to find the size in bytes of any sequential file.

Usage:   xcall TOOLBZ, TBX'SQFLSZ, FILE$, FSIZE

Where:
        TBX'SQFLSZ  -  Numeric value defined in TOOLBZ.BSI to process the
                       TBX'SQFLSZ call.

        FILE$       -  String name of the file to return the size of.

        FSIZE       -  Numeric field that the size of the sequential file
                       is returned to.



TBX'HIDFLD -  HIDEs or SHOWs an ESP screen field.

   This call will set the HIDE or SHOW status of a designated ESP screen
   field. If the HIDE status is set then the designated field will be
   hidden from view. If the SHOW status is set then a hidden field will be
   shown.  The ESP Screen must have been previously loaded using the xcall
   FETCH.SBR.


Usage:   xcall TOOLBX, TBX'HIDFLD, SCREEN, FIELD, FLAG

Where:
        TBX'HIDFLD  -  Numeric value defined in TOOLBZ.BSI to process the
                       TBX'HIDFLD call.

        SCREEN      -  The ESP Screen buffer to access.

        FIELD       -  Numeric value that designates which field to
                       HIDE or SHOW.

        FLAG        -  Numeric value to set to decide if this is to force
                       a HIDE or SHOW function.
                            HIDE = -1 or TRUE
                            SHOW =  0 or NOT(TRUE)



TBX'SKPFLD -  SKIPs or ALLOWs an ESP screen field.

   This call will set the SKIP or ALLOW status of a designated ESP screen
   field. If the SKIP status is set then the designated field will not be
   allowed to be entered into. If the ALLOW status is set then a
   previously SKIPped field will be ALLOWed to be entered into. The ESP
   Screen must have been previously loaded using the xcall FETCH.SBR.


Usage:   xcall TOOLBX, TBX'SKPFLD, SCREEN, FIELD, FLAG

Where:
        TBX'SKPFLD  -  Numeric value defined in TOOLBZ.BSI to process the
                       TBX'SKPFLD call.

        SCREEN      -  The ESP Screen buffer to access.

        FIELD       -  Numeric value that designates which field to SKIP
                       or ALLOW.

        FLAG        -  Numeric value to set to decide if this is to force
                       a SKIP or ALLOW function.
                            SKIP  = -1 or TRUE
                            ALLOW =  0 or NOT(TRUE)



TBX'SELFLD  - Sets the Select or Deselect value for an ESP screen field.

   This call will set the SELECT or DESELECT status of a designated ESP
   screen field. If the SELECT status is set then the designated field
   will be marked as SELECTed (bright display). If the DESELECT status is
   set then the field will be DESELECted (dim display). The best way to
   describe this feature is to relate it to how selections are made in
   SEDIT. When editing a field in SEDIT and you are trying to figure the
   settings of say the "Field flags:", it is possible to Press the F9
   function key that presents a window of possible field flag values to
   select from. The bright fields have the SELECT status set while the dim
   fields have the DESELECT status set. Pressing the SPACE bar will SELECT
   a Deselected field and DESELECT a selected field. This call presets the
   SELECT or DESELECT status before entering a selection screen. The
   information of whether a field has been selected or deselected can be
   obtained via the TBX'GETFLUF call. The ESP Screen must have been
   previously loaded using the xcall FETCH.SBR.


Usage:   xcall TOOLBX, TBX'SELFLD, SCREEN, FIELD, FLAG

Where:
        TBX'SELFLD  -  Numeric value defined in TOOLBZ.BSI to process the
                       TBX'SELFLD call.

        SCREEN      -  The ESP Screen buffer to access.

        FIELD       -  Numeric value that designates which field to SELECT
                       or DESELECT.

        FLAG        -  Numeric value to set to designated the field's
                       SELECT or DESELECT Status.



TBX'GETFLUF  -     Gets a field's user flag values.

   This call will return the current field usage flags. This call will
   return whether a field has status of HIDDEN, SKIPPED, or SELECTED. This
   call can return will return a single value or a logical sum of the
   current usage status of the designated field. The ESP Screen must have
   been previously loaded using the xcall FETCH.SBR.


Usage:   xcall TOOLBX, TBX'GETFLUF, SCREEN, FIELD, FLAGS

Where:
        TBX'SELFLD  -  Numeric value defined in TOOLBZ.BSI to process the
                       TBX'SELFLD call.

        SCREEN      -  The ESP Screen buffer to access.

        FIELD       -  Numeric value that designates which field to get
                       the Field User Flags from.

        FLAG        -  Returned Numeric value that designated the field's
                       user status. Can be one of or a logical sum of the
                       following values:
                            FLUF'HIDE      = 1
                            FLUF'SKIP      = 2
                            FLUF'SELECT    = 4



TBX'GETPUI  - Gets an ESP screen's field POPUP item value.

   This call will get the current POPUP Item value of a designated field.
   No matter what text is associated with a POPUP item, the value of the
   first selection on the POP-up MENU selection is one, the second is two,
   the third is three and so on. This call will return the current POPUP
   item value. The ESP Screen must have been previously loaded using the
   xcall FETCH.SBR.


Usage:   xcall TOOLBX, TBX'GETPUI, SCREEN, FIELD, VALUE

Where:
        TBX'GETPUI  -  Numeric value defined in TOOLBZ.BSI to process the
                       TBX'GETPUI call.

        SCREEN      -  The ESP Screen buffer to access.

        FIELD       -  Numeric value that designates which field to get
                       the POPUP item value.

        VALUE       -  Numeric value of the designated field's current
                       POPUP item.


TBX'SETPUI  - Sets an ESP screen's field POPUP item value.

   This call will set a POPUP Item value to a designated field. No matter
   what text is associated with a POPUP item the value of the first
   selection on the POP-up MENU selection is one, the second is two, the
   third is three and so on. This call can set the current POPUP item
   value so that the desired POP-UP text can be preset. The ESP Screen
   must have been previously loaded using the xcall FETCH.SBR.


Usage:   xcall TOOLBX, TBX'SETPUI, SCREEN, FIELD, VALUE

Where:
        TBX'SETPUI  -  Numeric value defined in TOOLBZ.BSI to process the
                       TBX'SETPUI call.

        SCREEN      -  The ESP Screen buffer to access.

        FIELD       -  Numeric value that designates which field to set
                       the POPUP item value.

        VALUE       -  Numeric value to set the POPUP item value of the
                       designated field.



TBX'GETFID - Gets a field number as referenced by the fields Permanent ID
             number.

   This call will return the current FIELD NUMBER by accessing the field's
   PERMANENT ID NUMBER. Each ESP field is assigned a PERMANENT ID number
   when it is created. This PERMANENT ID number is not modified until the
   field is deleted. The PERMANENT ID number is not to be confused with
   the ESP screen's field number. The field number is usually referred to
   as the entry sequence number. The PERMANENT ID can be displayed in
   SEDIT by setting the USRIMP READ SECURITY flag to 254. The PERMANENT ID
   number is displayed to the right of the Field number in SEDIT or the
   listing of an ESP screen that SEDIT creates with the /L option. The ESP
   Screen must have been previously loaded using the xcall FETCH.SBR.

Usage:   xcall TOOLBX, TBX'GETFID, SCREEN, FLDID, FLDNUM

Where:
        TBX'GETFID  -  Numeric value defined in TOOLBZ.BSI to process the
                       TBX'GETFID call.

        SCREEN      -  The ESP Screen buffer to access.

        FLDID       -  Numeric value that contains the Permanent Field ID
                       number that is to be accessed.

        FLDNUM      -  Returned Numeric value containing the Field number
                       of the requested Permanent Field ID.




TBX'GETFPN  - Gets an ESP screen's field's Permanent ID number as
             referenced by the field's Field Number.

   This call will return the permanent ID number of an ESP field by
   accessing the field's FIELD NUMBER. The FIELD NUMBER is not to be
   confused with the field's PERMANENT ID NUMBER. Each ESP field is
   assigned a permanent ID number when it is created. This permanent ID
   number is not modified until the field is deleted. An ESP Screen's
   FIELD NUMBER is usually referred to as the entry sequence number. The
   permanent ID can be displayed in SEDIT by setting the USRIMP READ
   SECURITY flag to 254. The Permanent ID number is displayed to the right
   of the Field number in SEDIT or the listing of an ESP screen that SEDIT
   creates with the /L option. The ESP Screen must have been previously
   loaded using the xcall FETCH.SBR.


Usage:   xcall TOOLBX, TBX'GETFPN, SCREEN, FLDNUM, FLDID

Where:
        TBX'GETFPN  -  Numeric value defined
in TOOLBZ.BSI to process the
                       TBX'GETFPN call.

        SCREEN      -  The ESP Screen buffer to access.

        FLDNUM      -  Numeric value that contains the Field number that
                       is to be accessed.

        FLDID       -  Returned Numeric value containing the Permanent
                       Field ID number of the requested field.


Also available on the AMUS Network is SCROLL.BAS and SELFLD.BAS which gives
specific examples of how to utilize some of the neat features available in
TOOLBZ.SBR. Call up the AMUS Network and get your copy today!