#ifndef v6ro_H
#define v6ro_H

void v6ro_scroll_line(void);
void v6ro_update_window(void);
#ifdef wimp_H
void v6ro_redraw_window(wimp_draw *r);
#endif
void v6ro_display_char(int c);
void v6ro_display_string(const zword_t *text, int len);
int v6ro_fit_word(const zword_t *line_buffer, int len);
void v6ro_initialize_screen(int w, int h);
int v6ro_resize_screen(int w, int h);
void v6ro_select_window(int w);
#ifdef os_H
void v6ro_set_colours(os_colour fg, os_colour bg, int w);
#endif
void v6ro_clear_screen(void);
void v6ro_clear_window(int w);
void v6ro_move_cursor(zword_t y, zword_t x);
void v6ro_get_cursor_position(int *row, int *col);
void v6ro_update_margins(void);
void v6ro_place_caret(void);
int v6ro_input_line(int buflen, char *buffer, int timeout, int *read_size);
void v6ro_open_gfx(void);
void v6ro_clear_line(int value);
void v6ro_scroll_pixels(int w, int n);
void v6ro_plot_picture(int n, gfx_dir *p, int y, int x);
void v6ro_remove_picture(int n, gfx_dir *p, int y, int x);
void switchoutput(int);
void v6ro_cache_picture(gfx_dir *p);
void v6ro_clear_cache(void);
void v6ro_set_attribute(int attr);
void v6ro_set_font(int font);
void v6ro_remove_menu(int menu);
void v6ro_add_menu(int menu, int entries, char *entry[]);
int v6ro_text_length(const zword_t *buffer, int len);
int v6ro_text_length_z(const char *buffer, int len);
void v6ro_input_blank(const zword_t *buffer, int left);
void v6ro_input_place_caret(const zword_t *buffer, int left, int pos);
int v6ro_input_get_left(const zword_t *buffer);
int v6ro_input_will_fit(const zword_t *buffer, unsigned u);
unsigned v6ro_char_size(int font, int style);

#ifdef osspriteop_H
extern osspriteop_area * restrict v6_screen_area;
extern osspriteop_header *v6_screen;
extern osspriteop_trans_tab *v6_trans_tab;
extern int screencols;
#endif

extern int hires_screen;
extern int update_often;

extern int bitmap_width, bitmap_height, bitmap_depth;

extern unsigned colourmem[8][2];

#define V6_PIX_X 2
#ifdef HIRES_COORDS
#define V6_PIX_Y 2
#else
#define V6_PIX_Y 4
#endif
#ifdef HIRES_COORDS
#define V6_CHAR_H 16
#else
#define V6_CHAR_H 8
#endif
#define V6_CHAR_W 8

#endif
