1 typedef struct
2 {
3         int w, h;
4         uint8_t *dat;
5         uint8_t *line[0];
6 } BITMAP;
7 
8 extern BITMAP *screen;
9 
10 BITMAP *create_bitmap(int w, int h);
11 
12 typedef struct
13 {
14         uint8_t r, g, b;
15 } RGB;
16 
17 typedef RGB PALETTE[256];
18 
19 #define makecol(r, g, b)    ((b) | ((g) << 8) | ((r) << 16))
20 #define makecol32(r, g, b)  ((b) | ((g) << 8) | ((r) << 16))
21 
22 extern BITMAP *buffer32;
23 
24 int video_card_available(int card);
25 char *video_card_getname(int card);
26 struct device_t *video_card_getdevice(int card, int romset);
27 int video_card_has_config(int card, int romset);
28 int video_card_getid(char *s);
29 int video_old_to_new(int card);
30 int video_new_to_old(int card);
31 char *video_get_internal_name(int card);
32 int video_get_video_from_internal_name(char *s);
33 int video_is_mda();
34 int video_is_cga();
35 int video_is_ega_vga();
36 
37 extern int video_fullscreen, video_fullscreen_scale, video_fullscreen_first;
38 extern int video_force_aspect_ration;
39 extern int vid_disc_indicator;
40 
41 enum
42 {
43         FULLSCR_SCALE_FULL = 0,
44         FULLSCR_SCALE_43,
45         FULLSCR_SCALE_SQ,
46         FULLSCR_SCALE_INT
47 };
48 
49 extern int egareads,egawrites;
50 
51 extern int fullchange;
52 extern int changeframecount;
53 
54 extern uint8_t fontdat[2048][8];
55 extern uint8_t fontdatm[2048][16];
56 extern uint8_t fontdatksc5601[16384][32];
57 extern uint8_t fontdatksc5601_user[192][32];
58 
59 extern uint32_t *video_15to32, *video_16to32;
60 
61 extern int xsize,ysize;
62 
63 extern float cpuclock;
64 
65 extern int emu_fps, frames, video_frames, video_refresh_rate;
66 
67 extern int readflash;
68 
69 extern void (*video_recalctimings)();
70 
71 void video_blit_memtoscreen(int x, int y, int y1, int y2, int w, int h);
72 
73 extern void (*video_blit_memtoscreen_func)(int x, int y, int y1, int y2, int w, int h);
74 
75 extern int video_timing_read_b, video_timing_read_w, video_timing_read_l;
76 extern int video_timing_write_b, video_timing_write_w, video_timing_write_l;
77 extern int video_speed;
78 
79 extern int video_res_x, video_res_y, video_bpp;
80 
81 extern int vid_resize;
82 
83 void video_wait_for_blit();
84 void video_wait_for_buffer();
85 
86 typedef enum
87 {
88 	FONT_MDA,	/* MDA 8x14 */
89 	FONT_PC200,	/* MDA 8x14 and CGA 8x8, four fonts */
90 	FONT_CGA,	/* CGA 8x8, two fonts */
91 	FONT_WY700,	/* Wy700 16x16, two fonts */
92 	FONT_MDSI,	/* MDSI Genius 8x12 */
93 	FONT_T3100E,	/* Toshiba T3100e, four fonts */
94 	FONT_KSC5601,	/* Korean KSC-5601 */
95 	FONT_SIGMA400,	/* Sigma Color 400, 8x8 and 8x16 */
96 
97 } fontformat_t;
98 
99 void loadfont(char *s, fontformat_t format);
100 
101 void initvideo();
102 void video_init();
103 void closevideo();
104 
105 void video_updatetiming();
106 
107 void hline(BITMAP *b, int x1, int y, int x2, int col);
108 
109 void destroy_bitmap(BITMAP *b);
110 
111 extern uint32_t cgapal[16];
112 
113 #define DISPLAY_RGB 0
114 #define DISPLAY_COMPOSITE 1
115 #define DISPLAY_RGB_NO_BROWN 2
116 #define DISPLAY_GREEN 3
117 #define DISPLAY_AMBER 4
118 #define DISPLAY_WHITE 5
119 
120 void cgapal_rebuild(int display_type, int contrast);
121