[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
BLINKER Programming Functions
------------------------------------------------------------------------------
Overview
Blinker features a number of functions which provide the program
developer with increased control over the runtime overlay environment
and additional profiling and debugging information.
These functions may be used to fine tune an existing program by
monitoring and recording its performance in both memory usage and speed
while it is executing. They may also be used while developing a new
program to ensure that the design and implementation decisions being
made are not adversely affecting program performance.
All the functions which produce output take a file handle as an optional
parameter, and all output from the function will be sent to that file
handle. The handle is not validated, and should be either 1, to send
output to the screen, 2 to send output to the standard error device, 4
to send output to the printer, or the handle of a file opened by the
program.
The default handle may be set at link time using the BLINKER DEBUG
HANDLE command or in the program using the Debug Handle function
(BLIDBGHAN()) detailed below. If no handle is specified then the output
is sent to DOS file handle 1 (the screen).
Many of the Clipper specific functions relating to profiling and
debugging are only enabled when the BLINKER CLIPPER PROFILE ON command
is specified at link time. (See Chapter 6 for further information on
this command.) The functions affected by this command are: BLICURCAL(),
BLICURDSK(), BLICURNME(), BLIDBGHAN(), BLIDISSTS(), BLIDISTRC(),
BLIPRFMOD(), BLITOTCAL() and BLITOTDSK().
Each function is described here with the effect that it will have on the
run time overlay environment, an example of how to use it, and a
description of when it may be used (if there are any restrictions).
Blinker functions called from BASIC which receive string parameters or
return string values have a different function name - the letters 'BAS'
are appended to the name. For example, the BASIC version of BLIDEMDTE()
is called BLIDEMDTEBAS()
Naming Conventions
Assembler programmers note: when calling from assembler you should
prepend an underbar character to the function names in order to comply
with C naming conventions.
BASIC programmers note: when calling any of the Blinker functions which
pass or return string values, append the suffix 'BAS' to the normal nine
character function name.
Notational Conventions
Many of the functions provided by Blinker can be accessed from several
languages, using the standard C calling conventions.
Blinker provides specific interfaces for the C language, Microsoft Basic
PDS & QuickBasic, and for Clipper Summer '87 and 5.01. If you are using
a language not mentioned here, it is likely that your compiler can be
directed to use the C calling convention to access Blinker functions.
Consult your compiler documentation for further information on mixed
language programming.
The tables on the following pages detail the notational convention used
to describe the types of parameters and return values, and the
appropriate data types for each calling convention.
Each parameter, (or return value) is preceded by a two letter prefix
denoting the type of the value, which also implies the way the parameter
is passed to the function.
Parameter type conventions
The following tables show the data types used as parameters and return
values from all Blinker functions. The prefixes have the following
meanings:
ni numeric signed integer (signed word)
nu numeric unsigned integer (unsigned word)
nl numeric long integer (signed dword)
c character string (byte)
l logical (boolean) (word)
For each language listed in the table (Clipper, Basic, and C) the
language declaration for each type is given (no type declaration is
needed in the Clipper language, but the passed parameters must be of the
correct type).
Logical (or boolean) values are only directly supported for Clipper. All
other languages should use the numeric integer type, passing a zero
value to indicate false, and a non zero value to indicate true. Return
values from the functions use the same convention.
For languages not listed, use the data types which match the C types.
Calling conventions
The Blinker functions are provided with Clipper, BASIC and C interfaces.
The Clipper interface uses the Nantucket extend system, and requires no
special treatment as far as the Clipper programmer is concerned.
The BASIC interface is identical to the C interface for simple data
types, but strings require special treatment. For this reason, any of
the Blinker functions which pass or return string values have the suffix
'BAS' appended to the normal function name.
The C interface uses the following calling conventions:
o Simple data types are passed on the stack
o Strings are passed by far reference
o Parameters are passed in reverse order, ie the last
parameter is pushed onto the stack first.
which are the same as standard C calling conventions. Languages for
which no interface is provided should use the C interface.
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson