Macros

Macro is an identifier defined in preprocessor. It has a name and it can contains one or more tokens. You can define new macro using DEFINE directive. For example:

DEFINE WIDTH 640

Every identifier WIDTH in the source code below this definition will be replaced by token 640. For example line:

MOV4i WIDTH AX

Will be expanded into:

MOV4i 640 AX

There can be many tokens defined inside a macro after its name. Macros don't affect namespaces. Macro names are case insensitive. Macros cannot be changed or redefined. There can be only one definition of macro with particular name in all the source code. Macro must be defined before it is used.

You can also define an empty macro - macro that has name, but doesn't have a content:

define MY_MACRO

These macros cannot be expanded in source code (you cannot use identifiers with the name of that macro), but they are useful in conditional compilation to check whether macro with given name is defined.