/* text.c */

#ifndef text_H
#define text_H

#define EMBED_FONT   0 /*  1.. 4 */
#define EMBED_FIXED  5 /*  5.. 6 */
#define EMBED_STYLE 14 /* 14..29 */

void decode_text(unsigned *);
void z_encode_text(int, int, int, int);
void encode_text (int, unsigned, unsigned *);
void flush_buffer(void);
void reset_buffer(void);
void z_new_line (void);
void z_print_paddr(int);
void z_print_char(int);
void z_print_unicode(unsigned);
void z_check_unicode(unsigned);
void z_print(void);
void z_print_num(short);
void z_print_num_32(int);
void z_print_obj(int);
void z_print_addr(int);
void print_time (int, int);
void z_print_ret(void);
void z_buffer_mode(int);
void z_output_stream(int, short, int, short);
void z_set_text_style(int);
void write_char (int);
void write_string (const char *);
void write_zchar (int);
unsigned unicode_to_native(unsigned u, unsigned fail);
unsigned unicode_to_zscii(unsigned u, unsigned fail);
unsigned unicode_to_system(unsigned u, unsigned fail);
unsigned zscii_to_unicode(unsigned z);
unsigned native_to_unicode(unsigned c);
unsigned system_to_unicode(unsigned c);
char *unicode_string_to_native(char *dst, const zword_t *src, unsigned fail);
char *unicode_string_to_system(char *dst, const zword_t *src, unsigned fail);
zword_t *native_string_to_unicode(zword_t *dst, const char *src);
zword_t *system_string_to_unicode(zword_t *dst, const char *src);

#endif
