Home KEYTAB für Entwickler KEYTAB für Entwickler KEYTAB für Pascal-Programmierer
   KEYTAB
 KEYTAB für Entwickler

KEYTAB für C-Programmierer

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.


Copyright © Martin Elsässer (eMail-Adressen)
Letzte Aktualisierung am 3. November 2006
Home KEYTAB für Entwickler KEYTAB für Entwickler KEYTAB für Pascal-Programmierer