|
Modules are able to present a list of macro services to the core. The list is a linear array made up of individual macro service definitions, each of which define a single macro supported by the module. These macros are then uses as a type of active memory, allowing users to store and retrieve strings from them, but also allowing the module to perform actions as the macro is accessed. (for an example of this, see the $MD5 macro)
There are a couple notible differences in the macro service definition when compared to the ones for commands and functions. The definitions in the macro services list need not be in alphabetical order, and the macro name can specified by a far pointer rather than a near one. These differences are designed to make it easier for a module to dynamically add macros to the list at runtime, as is done when user variables are created.
A 2-byte (16-bit) zero value terminates the list.
|
| Offset |
Size |
Description |
| 0 |
2 bytes |
service routine pointer |
| 2 |
2 bytes |
flags |
| 4 |
2 bytes |
name pointer |
| 6 |
2 bytes |
name segment |
| 8 |
2 bytes |
identifier |
|