59 lines
1.2 KiB
C
59 lines
1.2 KiB
C
/* tag: dict management headers
|
|
*
|
|
* Copyright (C) 2003 Patrick Mauritz, Stefan Reinauer
|
|
*
|
|
* See the file "COPYING" for further information about
|
|
* the copyright and warranty status of this work.
|
|
*/
|
|
|
|
#ifndef __DICT_H
|
|
#define __DICT_H
|
|
|
|
#define DICTID "OpenBIOS"
|
|
|
|
#define DOSEMIS 0
|
|
#define DOCOL 1
|
|
#define DOLIT 2
|
|
#define DOCON 3
|
|
#define DOVAR 4
|
|
#define DODFR 5
|
|
#define DODOES 6
|
|
|
|
#define MAXNFALEN 128
|
|
|
|
/* The header is 28/32 bytes on 32/64bit platforms */
|
|
|
|
typedef struct dictionary_header {
|
|
char signature[8];
|
|
u8 version;
|
|
u8 cellsize;
|
|
u8 endianess;
|
|
u8 compression;
|
|
u8 relocation;
|
|
u8 reserved[3];
|
|
u32 checksum;
|
|
u32 length;
|
|
ucell last;
|
|
} __attribute__((packed)) dictionary_header_t;
|
|
|
|
ucell lfa2nfa(ucell ilfa);
|
|
ucell load_dictionary(const char *data, ucell len);
|
|
void dump_header(dictionary_header_t *header);
|
|
ucell fstrlen(ucell fstr);
|
|
void fstrncpy(char *dest, ucell src, unsigned int maxlen);
|
|
ucell findsemis(ucell xt);
|
|
ucell findxtfromcell_wordlist(ucell incell, ucell wordlist);
|
|
ucell findxtfromcell(ucell incell);
|
|
|
|
/* program counter */
|
|
extern ucell PC;
|
|
|
|
extern unsigned char *dict;
|
|
extern cell dicthead;
|
|
extern cell dictlimit;
|
|
extern ucell *last;
|
|
#ifdef FCOMPILER
|
|
extern ucell *trampoline;
|
|
#endif
|
|
|
|
#endif
|