contrib/OWB: add correct SDL dependency, fix compilers used
[AROS-Contrib.git] / freetype1 / test / gmain.c
blobe5b1e7ebe9baa81f007a69fe020fe88fc9330e96
1 /*******************************************************************
3 * gmain.c graphics utility main body 1.1
5 * This file defines a common implementation of the graphics
6 * utility used by the FreeType test programs. It relies on
7 * system-specific drivers, like 'gfs_os.c', which interface is
8 * described in the file 'gdriver.h'.
10 * Copyright 1996-1999 by
11 * David Turner, Robert Wilhelm, and Werner Lemberg.
13 * This file is part of the FreeType project, and may only be used
14 * modified and distributed under the terms of the FreeType project
15 * license, LICENSE.TXT. By continuing to use, modify or distribute
16 * this file you indicate that you have read the license and
17 * understand and accept it fully.
19 ******************************************************************/
21 #include "gdriver.h"
22 #include "gmain.h"
24 #ifndef FAILURE
25 #define FAILURE 0
26 #endif
28 #ifndef SUCCESS
29 #define SUCCESS 1
30 #endif
32 char* Vio; /* pointer to VRAM or display buffer */
34 int vio_ScanLineWidth; /* scan line width in bytes */
36 int vio_Width;
37 int vio_Height;
39 int gcursor_x = 0;
40 int gcursor_y = 0;
42 int gwindow_width = 0;
43 int gwindow_height = 0;
45 unsigned char gray_palette[5];
48 typedef void TFunction_Print_8x8_Char( int x,
49 int y,
50 unsigned char c );
52 TFunction_Print_8x8_Char* Print_8x8_Char;
54 /* font characters */
56 unsigned char font_8x8[2048] =
58 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
59 0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E,
60 0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E,
61 0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00,
62 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00,
63 0x38, 0x7C, 0x38, 0xFE, 0xFE, 0x92, 0x10, 0x7C,
64 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C,
65 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00,
66 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF,
67 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00,
68 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF,
69 0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78,
70 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18,
71 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0,
72 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x67, 0xE6, 0xC0,
73 0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99,
74 0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00,
75 0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00,
76 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, 0x18,
77 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00,
78 0x7F, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00,
79 0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0x86, 0xFC,
80 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00,
81 0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF,
82 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00,
83 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00,
84 0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00,
85 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00,
86 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00,
87 0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00,
88 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00,
89 0x00, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00,
90 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
91 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00,
92 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00,
93 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00,
94 0x18, 0x7E, 0xC0, 0x7C, 0x06, 0xFC, 0x18, 0x00,
95 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00,
96 0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00,
97 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
98 0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00,
99 0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00,
100 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00,
101 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00,
102 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30,
103 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
104 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
105 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00,
106 0x7C, 0xCE, 0xDE, 0xF6, 0xE6, 0xC6, 0x7C, 0x00,
107 0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xFC, 0x00,
108 0x78, 0xCC, 0x0C, 0x38, 0x60, 0xCC, 0xFC, 0x00,
109 0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00,
110 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x1E, 0x00,
111 0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00,
112 0x38, 0x60, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00,
113 0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00,
114 0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00,
115 0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0x18, 0x70, 0x00,
116 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00,
117 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30,
118 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00,
119 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00,
120 0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00,
121 0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00,
122 0x7C, 0xC6, 0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00,
123 0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0x00,
124 0xFC, 0x66, 0x66, 0x7C, 0x66, 0x66, 0xFC, 0x00,
125 0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0x66, 0x3C, 0x00,
126 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00,
127 0xFE, 0x62, 0x68, 0x78, 0x68, 0x62, 0xFE, 0x00,
128 0xFE, 0x62, 0x68, 0x78, 0x68, 0x60, 0xF0, 0x00,
129 0x3C, 0x66, 0xC0, 0xC0, 0xCE, 0x66, 0x3A, 0x00,
130 0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00,
131 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
132 0x1E, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00,
133 0xE6, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00,
134 0xF0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00,
135 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00,
136 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00,
137 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00,
138 0xFC, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00,
139 0x7C, 0xC6, 0xC6, 0xC6, 0xD6, 0x7C, 0x0E, 0x00,
140 0xFC, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0xE6, 0x00,
141 0x7C, 0xC6, 0xE0, 0x78, 0x0E, 0xC6, 0x7C, 0x00,
142 0xFC, 0xB4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
143 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0x00,
144 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00,
145 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00,
146 0xC6, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0xC6, 0x00,
147 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x78, 0x00,
148 0xFE, 0xC6, 0x8C, 0x18, 0x32, 0x66, 0xFE, 0x00,
149 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00,
150 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, 0x00,
151 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00,
152 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00,
153 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
154 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
155 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
156 0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66, 0xDC, 0x00,
157 0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00,
158 0x1C, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00,
159 0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
160 0x38, 0x6C, 0x64, 0xF0, 0x60, 0x60, 0xF0, 0x00,
161 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
162 0xE0, 0x60, 0x6C, 0x76, 0x66, 0x66, 0xE6, 0x00,
163 0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
164 0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78,
165 0xE0, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0xE6, 0x00,
166 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
167 0x00, 0x00, 0xCC, 0xFE, 0xFE, 0xD6, 0xD6, 0x00,
168 0x00, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00,
169 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
170 0x00, 0x00, 0xDC, 0x66, 0x66, 0x7C, 0x60, 0xF0,
171 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0x1E,
172 0x00, 0x00, 0xDC, 0x76, 0x62, 0x60, 0xF0, 0x00,
173 0x00, 0x00, 0x7C, 0xC0, 0x70, 0x1C, 0xF8, 0x00,
174 0x10, 0x30, 0xFC, 0x30, 0x30, 0x34, 0x18, 0x00,
175 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
176 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00,
177 0x00, 0x00, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00,
178 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00,
179 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
180 0x00, 0x00, 0xFC, 0x98, 0x30, 0x64, 0xFC, 0x00,
181 0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, 0x00,
182 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00,
183 0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, 0x00,
184 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
185 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00,
186 0x7C, 0xC6, 0xC0, 0xC6, 0x7C, 0x0C, 0x06, 0x7C,
187 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
188 0x1C, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
189 0x7E, 0x81, 0x3C, 0x06, 0x3E, 0x66, 0x3B, 0x00,
190 0xCC, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
191 0xE0, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
192 0x30, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
193 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0x78, 0x0C, 0x38,
194 0x7E, 0x81, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
195 0xCC, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
196 0xE0, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
197 0xCC, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
198 0x7C, 0x82, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00,
199 0xE0, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
200 0xC6, 0x10, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
201 0x30, 0x30, 0x00, 0x78, 0xCC, 0xFC, 0xCC, 0x00,
202 0x1C, 0x00, 0xFC, 0x60, 0x78, 0x60, 0xFC, 0x00,
203 0x00, 0x00, 0x7F, 0x0C, 0x7F, 0xCC, 0x7F, 0x00,
204 0x3E, 0x6C, 0xCC, 0xFE, 0xCC, 0xCC, 0xCE, 0x00,
205 0x78, 0x84, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
206 0x00, 0xCC, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
207 0x00, 0xE0, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
208 0x78, 0x84, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
209 0x00, 0xE0, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
210 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
211 0xC3, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x00,
212 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
213 0x18, 0x18, 0x7E, 0xC0, 0xC0, 0x7E, 0x18, 0x18,
214 0x38, 0x6C, 0x64, 0xF0, 0x60, 0xE6, 0xFC, 0x00,
215 0xCC, 0xCC, 0x78, 0x30, 0xFC, 0x30, 0xFC, 0x30,
216 0xF8, 0xCC, 0xCC, 0xFA, 0xC6, 0xCF, 0xC6, 0xC3,
217 0x0E, 0x1B, 0x18, 0x3C, 0x18, 0x18, 0xD8, 0x70,
218 0x1C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
219 0x38, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
220 0x00, 0x1C, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
221 0x00, 0x1C, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
222 0x00, 0xF8, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0x00,
223 0xFC, 0x00, 0xCC, 0xEC, 0xFC, 0xDC, 0xCC, 0x00,
224 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00,
225 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00,
226 0x18, 0x00, 0x18, 0x18, 0x30, 0x66, 0x3C, 0x00,
227 0x00, 0x00, 0x00, 0xFC, 0xC0, 0xC0, 0x00, 0x00,
228 0x00, 0x00, 0x00, 0xFC, 0x0C, 0x0C, 0x00, 0x00,
229 0xC6, 0xCC, 0xD8, 0x36, 0x6B, 0xC2, 0x84, 0x0F,
230 0xC3, 0xC6, 0xCC, 0xDB, 0x37, 0x6D, 0xCF, 0x03,
231 0x18, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x18, 0x00,
232 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00,
233 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00,
234 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88,
235 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA,
236 0xDB, 0xF6, 0xDB, 0x6F, 0xDB, 0x7E, 0xD7, 0xED,
237 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
238 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18,
239 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18,
240 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36,
241 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36,
242 0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18,
243 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36,
244 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
245 0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36,
246 0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00,
247 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00,
248 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00,
249 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18,
250 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00,
251 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00,
252 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18,
253 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18,
254 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
255 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18,
256 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18,
257 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36,
258 0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00,
259 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36,
260 0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00,
261 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36,
262 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36,
263 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00,
264 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36,
265 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00,
266 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00,
267 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18,
268 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36,
269 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00,
270 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00,
271 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18,
272 0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36,
273 0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36,
274 0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18,
275 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00,
276 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18,
277 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
278 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
279 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
280 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
281 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
282 0x00, 0x00, 0x76, 0xDC, 0xC8, 0xDC, 0x76, 0x00,
283 0x00, 0x78, 0xCC, 0xF8, 0xCC, 0xF8, 0xC0, 0xC0,
284 0x00, 0xFC, 0xCC, 0xC0, 0xC0, 0xC0, 0xC0, 0x00,
285 0x00, 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x00,
286 0xFC, 0xCC, 0x60, 0x30, 0x60, 0xCC, 0xFC, 0x00,
287 0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0x70, 0x00,
288 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xC0,
289 0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x00,
290 0xFC, 0x30, 0x78, 0xCC, 0xCC, 0x78, 0x30, 0xFC,
291 0x38, 0x6C, 0xC6, 0xFE, 0xC6, 0x6C, 0x38, 0x00,
292 0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x6C, 0xEE, 0x00,
293 0x1C, 0x30, 0x18, 0x7C, 0xCC, 0xCC, 0x78, 0x00,
294 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, 0x00,
295 0x06, 0x0C, 0x7E, 0xDB, 0xDB, 0x7E, 0x60, 0xC0,
296 0x38, 0x60, 0xC0, 0xF8, 0xC0, 0x60, 0x38, 0x00,
297 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x00,
298 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00,
299 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x7E, 0x00,
300 0x60, 0x30, 0x18, 0x30, 0x60, 0x00, 0xFC, 0x00,
301 0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0xFC, 0x00,
302 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18,
303 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0x70,
304 0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00,
305 0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00,
306 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00,
307 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
308 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
309 0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, 0x1C,
310 0x58, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00,
311 0x70, 0x98, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00,
312 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00,
313 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
317 void Print_8x8_Mono( int x, int y, unsigned char c )
319 int offset, i;
320 unsigned char* bitm;
322 if ( !Vio )
323 return;
325 offset = x + y * vio_ScanLineWidth * 8;
326 bitm = font_8x8 + (int)c * 8;
328 for ( i = 0; i < 8; i++ )
330 Vio[offset] = *bitm;
331 bitm++;
332 offset += vio_ScanLineWidth;
337 void Print_8x8_Gray( int x, int y, unsigned char c )
339 int offset, i, bit;
340 unsigned char* bitm;
342 if ( !Vio )
343 return;
345 offset = x * 8 + y * vio_ScanLineWidth * 8;
346 bitm = font_8x8 + (int)c * 8;
348 for ( i = 0; i < 8; i++ )
350 bit = 0x80;
351 while ( bit > 0 )
353 if ( bit & *bitm )
354 Vio[offset] = (char)0x0f;
355 else
356 Vio[offset] = 0x00;
358 bit >>= 1;
359 offset++;
361 offset += vio_ScanLineWidth - 8;
362 bitm++;
367 int SetGraphScreen( int mode )
369 gcursor_x = 0;
370 gcursor_y = 0;
372 switch( mode )
374 case Graphics_Mode_Mono:
375 if ( !Driver_Set_Graphics( mode ) )
376 return FAILURE;
378 gwindow_width = vio_ScanLineWidth;
379 gwindow_height = vio_Height / 8;
381 Print_8x8_Char = Print_8x8_Mono;
382 break;
384 case Graphics_Mode_Gray:
385 if ( !Driver_Set_Graphics( mode ) )
386 return FAILURE;
388 gwindow_width = vio_ScanLineWidth / 8;
389 gwindow_height = vio_Height / 8;
391 Print_8x8_Char = Print_8x8_Gray;
392 break;
394 default:
395 /* Invalid function call */
396 return FAILURE;
399 return SUCCESS;
403 /* restore previous (or text) video mode */
405 int RestoreScreen( void )
407 gcursor_x = 0;
408 gcursor_y = 0;
409 gwindow_height = 0;
410 gwindow_height = 0;
412 return Driver_Restore_Mode();
416 void Display_Bitmap_On_Screen( char* buffer, int line, int col )
418 Driver_Display_Bitmap( buffer, line, col );
422 void Goto_XY( int x, int y )
424 gcursor_x = x;
425 gcursor_y = y;
429 void Print_Str( char* string )
431 if ( !string ) return;
433 while ( *string )
435 switch ( *string )
437 case '\n':
438 gcursor_x = 0;
439 gcursor_y++;
440 if ( gcursor_y > gwindow_height ) gcursor_y = 0;
441 break;
443 default:
444 (*Print_8x8_Char)( gcursor_x, gcursor_y, *string );
446 gcursor_x++;
448 if ( gcursor_x >= gwindow_width )
450 gcursor_x = 0;
451 gcursor_y++;
453 if ( gcursor_y >= gwindow_height ) gcursor_y = 0;
456 string++;
461 void Print_XY( int x, int y, char* string )
463 Goto_XY( x, y );
464 Print_Str( string );
475 /* End */