Die Struktur KEYT, auf die der Cookie-Eintrag verweist, ist folgendermaßen definiert:
typedef struct
{
long magic;
long size;
short cdecl (*GetExpMaxNr)(void);
long resvd0;
short cdecl (*GetExpNrFromId)(short eid);
char cdecl (*CharAtari2X)(short enr, char echr);
short cdecl (*GetImpMaxNr)(void);
long resvd1;
short cdecl (*GetImpNrFromId)(short iid);
char cdecl (*CharX2Atari)(short inr, char ichr);
void cdecl (*BlockAtari2X)(short enr, long elen,
char *echrs);
void cdecl (*BlockX2Atari)(short inr, long ilen,
char *ichrs);
char *cdecl (*GetExpNameFromNr)(short enr);
char *cdecl (*GetImpNameFromNr)(short inr);
char *cdecl (* GetExpShortNameFromNr)(short enr);
char *cdecl (* GetImpShortNameFromNr)(short inr);
short cdecl (*GetRelease)(void);
short cdecl (*GetExpIdFromNr)(short enr);
short cdecl (*GetImpIdFromNr)(short inr);
short cdecl (*GetExpNrFromName)(char *name);
short cdecl (*GetImpNrFromName)(char *name);
long cdecl (*GetEuro)(void);
short cdecl (*CharX2Unicode(short enr, char echr);
char cdecl (*CharUnicode2X)(short inr, short iunicode); void cdecl (*BlockX2Unicode( short *unicode, short nr,
char *x_chrs, long len );
void cdecl (*BlockUnicode2X( char *x_chrs, short nr,
short *unicode, long len );
short cdecl (*GetExpMinNr)(void);
short cdecl (*GetImpMinNr)(void);
long cdecl (*CharXUtf2Unicode)( short nr, char *string,
long len, short *read_chars );
char *cdecl (*CharUnicode2XUtf)( short nr, long lunicode,
char *result, short *used_chars );
void cdecl (*BlockXUtf2Unicode)( short *unicode,
long *uni_len, short nr, char *string,
long len );
void cdecl (*BlockUnicode2XUtf)( char *string,
long *str_len, short nr, short *unicode,
long len );
void cdecl (*BlockXUtf2U2XUtf)( char *dest,
long *dest_len, short dest_nr,
char *source, long src_len,
short src_nr );
void cdecl (*BlockXUtf2XUtf)( char *dest,
long *dest_len, short dest_nr,
char *source, long src_len,
short src_nr );
short cdecl (*GetInfoShort)(short nr,
short what, short *info);
short cdecl (*GetInfoString)(short nr, short what,
char *info, short maxLen);
} KEYT;
Wichtig: Seit KEYTAB Rel. 05 muß Size größer gleich 56 sein, damit GetExpNameFromNr und GetImpNameFromNr aufgerufen werden dürfen.
Für Experten: cdecl erwartet die Rückgabe immer in d0, bis KEYTAB Rel. 04 wurde der Zeiger auf die Namen aber in a0 zurückgegeben.