/* SP Error codes */

#define SPNOERR        0
#define SPACTIVE       1
#define SPINACTIVE     2
#define SPNOMEM        3
#define SPTOOMANY      4
#define SPBADRESULT    5
#define SPBADMODE      6
#define SPBADREF       7
#define SPPRODOS       8
#define SPCANTDOIT     9

/* SPCheck ErrCodes */

#define SPCBREAK       0x00
#define SPCMISSPELL    0x01
#define SPCMISPUNC     0x02
#define SPCCAP         0x04
#define SPCHYPH        0x08
#define SPCREPEAT      0x10

/* Handler result codes */

#define CODEMASK       0xff00
#define DATAMASK       0x00ff

#define SPHJUMP        0x0100
#define SPHSUBST       0x0200
#define SPHACCEPT      0x0300
#define SPHREPLACE     0x0400
#define SPHCANCEL      0x0500
#define SPHFINISH      0x0600

/* Various constants */

#define SPMAXUDICT     8
#define SPMAXALTS      16

#define SPMSENT        0
#define SPMNOSENT      1

/* SP calls */

extern pascal void SPStartUp();
extern pascal void SPShutDown();
extern pascal void SPCheck();
extern pascal char **SPSuggest();
extern pascal int  SPOpenUDict();
extern pascal void SPCloseUDict();
extern pascal void SPNewUDict();
extern pascal void SPAddWord();
extern pascal void SPEditUDict();

#define setbank		asm{	phb				\
							phb				\
							lda #^_toolErr	\
							pha				\
							plb				\
							pla				\
						}
#define restorebank	asm{ plb }

#ifndef SPTHID
#define SPTHID	0x0900	/* to be added to the real memory ID */
#endif