/* > h.tty
*/

#define TRUE 1
#define FALSE 0

#define ON 1
#define OFF 0

#define NONE 0
#define UNDER 1
#define UNDERANDOVER 2

#define NOCHAR 0

#define SCR_RIGHT 0
#define SCR_LEFT  1
#define SCR_DOWN  2
#define SCR_UP    3

#define homecursor() vdu(30)
#define upcursor() vdu(11)
#define downcursor() vdu(10)
#define resetwindow() vdu(26)

#define define_char(x) vdu(23); vdu(x)

#define vsync() mosbyte1(19)

#define rcolour(c) curcolour = c; colour(c);

#define NORMFUNC 0x80
#define SHFTFUNC 0x90
#define CTRLFUNC 0xA0
#define CURSORS  0xB0
#define PADCODE  0xC0

#define FUNCPAD 0
#define CURSPAD 1

#define ESCCh 27

typedef void (*f_ptr)();

extern void vdunull(int);
extern void scroll(int);
extern void textwindow(int, int, int, int);
extern void logicalcolour(int, int);
extern error *mosbyte3r(int, int, int);
extern void mosbyte3(int, int, int);
extern void mosbyte1(int);
extern void mosbyte2(int, int);
extern void final(int, char *);
extern void keypoll(void);
extern reg_set regs, *regptr;

extern void set_xon_xoff(int);
extern f_ptr define_keypoller(void (*)());
extern int  rsgetch(void);
extern int  pollch(void);
extern void sendchar(int);
extern void inter(void);

extern void rsintercept(void);
extern void rsrelease(void);
extern int  rsgetcount(void);
extern void rsinsert(int, int);
extern int  rsremove(int);
extern void rspurge(int);
extern int  rscount(int, int);

extern void kbintercept(void);
extern void kbrelease(void);
extern int  kbgetcount(void);
extern void kbinsert(int, int);
extern int  kbremove(int);
extern void kbpurge(int);
extern int  kbcount(int, int);


/* end */

