Function Services site map

Function Services List
Modules are able to present a list of function services to the core. The list is a linear array made up of individual function service definitions, each of which define a single function supported by the module. These functions are then used to evaluate parameter strings into numeric results, for use in mathematical expressions.

The definitions in the function services list must be in alphabetical order by function name. A 2-byte (16-bit) zero value terminates the list.

Function Service Definition
Offset Size Description
0 2 bytes service routine pointer
2 2 bytes flags
4 2 bytes name pointer
6 2 bytes description text pointer
Service Routine Pointer
This is the offset into the module segment of the handler routine that processes this function.
Flags
This field is a set of flags that determine how the function is handled. The bitfields are defined as follows:
Bit Field Description
[0] Ignore pretend this function is not in the list
[1] Hide don't display info about this function
[15:2] Reserved these flags are reserved for future use
Name Pointer
This is the offset into the module segment of the function name, a null-terminated string.
Description Text Pointer
This is the offset into the module segment of the function description, a short string presented to the user in the master function list. If no description is provided, this field should be zeroed out.

Service Routine Environment
Call Context
The function service routine is called by the core with the following context:
Register Contents
sioffset of parameter string (treat string as read-only)
csmodule segment
dssegment of parameter string (core segment)
esmodule segment
gsCore Services Table segment
ss:spglobal stack, far return pointer on top
Return Context
The core expects the following context upon return from the service routine:
Register/Flag Contents
carry flagset if function evaluation failed
eaxvalue of function
ss:spglobal stack, far return pointer popped

- Previous - - Next -