N.AES creates a cookie with the name 'nAES'. Its value is a pointer to a structure (readable), which is made up as follows:
typedef struct { unsigned int version; unsigned int date; unsigned int time; unsigned int flags; CNF_VAR **config; unsigned long unused_2; } N_AESINFO;
version: | The hexadecimal-coded version number of N.AES. A value of
0x0058 would mean a version number 0.5.8, a value of 0x0107 the
version 1.0.7
| ||||||||||
date/time: | The creation date and the creation time in TOS format, i.e.
as returned by Tgetdate and Tgettime.
Note: The time that is output on booting N.AES corresponds to the time of compilation of a given N.AES source file; the time value that is found in the cookie is set by means of a patch program and is actually the relevant specification. | ||||||||||
flags: | Bit mask, whose bits have the following meaning:
| ||||||||||
config: | Pointer to a list of the CNF variables, which may be altered
while the system is running. Memory is allocated as (global). The
bundled N_CONTRL.CPX uses it.
/* cnf types */ #define CNF_TEND 0 /* Marks the end of the list. */ #define CNF_TBOOL 1 /* True/false. */ #define CNF_TWORD 2 /* 16-bit signed value */ #define CNF_TLONG 3 /* Further ones may follow! */ typedef enum {false, true} bool; typedef struct { union cnf_typ { bool b; WORD w; LONG l; } val; /* The contents */ WORD typ; /* Type, CNF_T... */ BYTE text[22]; /* Name, as in N_AES.CNF. */ } CNF_INF; typedef struct { BYTE typ[16]; /* Category, text from the strings * * of the dialog tree CNF_TREE of * * N_AESSYS.RSC. * * e.g. 'Fenster' or 'System'. */ CNF_INF *cnf_inf; /* The variables themselves */ } CNF_VAR; The end of the list is signalled by a NULL-pointer. | ||||||||||
unused_2: | Free space for later N.AES versions
|