user exits

user exits


user-id Index Level value
Syntax unumber
u$mode.name
u?mode.name
Category Definitions
Type Definition
Description allows direct references to assembler routines known as "modes". These are generally not needed for new applications and are provided primarily for backwards compatibility and specialty utilities that must access internal structures.

The "unumber" syntax is the standard way to call pre-defined user exits.  The number is a four-digit hexadecimal number.  Leading zeros may be omitted.  For available numbers, follow the "see also".

Users with assembly accounts may also enter their code via user exits. The standard way to do this is with the "u$mode.name" syntax which will jump directly into the mode called mode.name.  Every user exit call of this type requires an abs lookup.

On releases 7.0 and above, the user may initially use the "u?mode.name" syntax and store the result in a FlashBASIC variable. This will NOT execute the user exit, but will return a direct pointer to its location. After this, the mode can be repeatedly called by using that variables value as the conversion.  This is much faster than the "u$mode.name" syntax because no further abs lookups are needed. If the "u?mode.name" call returns a null, then the mode cannot be located.

On releases 7.0 and above, a numeric user exit which is not found in the user exit table is converted to a BASIC call to a subroutine named "U" followed by the number (like "u123").  If the system(0) function is executed at the beginning of this routine, it returns a 1 for an iconv() call or a 0 for an oconv() call.
Options
See Also user exits, Access user exits, FlashBASIC user exits, PROC u017e u8193 SYSTEM ICONV OCONV u005b
Example
Warnings User exits have always been dangerous, and as long as they remain, will continue to be. Extreme caution is advised in using them. Caveat emptor.

On previous versions of Pick, user exits were often used to enhance performance of Pick/BASIC applications.  With the advent of FlashBASIC on 6.0.0 releases and above, this is no longer necessary and can, in fact, cause the application to run slower than if it had been entirely coded in FlashBASIC.
Compatibility D3 7.0 R83 AP AP 6.1
user-id Index Level value