1 |
199 |
simons |
/*
|
2 |
|
|
* linux/drivers/char/tga.c
|
3 |
|
|
*
|
4 |
|
|
* Copyright (C) 1995 Jay Estabrook
|
5 |
|
|
*/
|
6 |
|
|
|
7 |
|
|
/*
|
8 |
|
|
* tga.c
|
9 |
|
|
*
|
10 |
|
|
* This module exports the console io support for DEC's TGA
|
11 |
|
|
*/
|
12 |
|
|
|
13 |
|
|
#include <linux/config.h> /* CONFIG_VGA_CONSOLE */
|
14 |
|
|
#include <linux/sched.h>
|
15 |
|
|
#include <linux/timer.h>
|
16 |
|
|
#include <linux/interrupt.h>
|
17 |
|
|
#include <linux/tty.h>
|
18 |
|
|
#include <linux/tty_flip.h>
|
19 |
|
|
#include <linux/kernel.h>
|
20 |
|
|
#include <linux/string.h>
|
21 |
|
|
#include <linux/errno.h>
|
22 |
|
|
#include <linux/kd.h>
|
23 |
|
|
#include <linux/malloc.h>
|
24 |
|
|
#include <linux/major.h>
|
25 |
|
|
#include <linux/mm.h>
|
26 |
|
|
#include <linux/ioport.h>
|
27 |
|
|
#include <linux/bios32.h>
|
28 |
|
|
#include <linux/pci.h>
|
29 |
|
|
|
30 |
|
|
#include <asm/io.h>
|
31 |
|
|
#include <asm/system.h>
|
32 |
|
|
#include <asm/segment.h>
|
33 |
|
|
#include <asm/bitops.h>
|
34 |
|
|
|
35 |
|
|
#include "kbd_kern.h"
|
36 |
|
|
#include "vt_kern.h"
|
37 |
|
|
#include "consolemap.h"
|
38 |
|
|
#include "selection.h"
|
39 |
|
|
#include "console_struct.h"
|
40 |
|
|
|
41 |
|
|
extern void register_console(void (*proc)(const char *));
|
42 |
|
|
extern void console_print(const char *);
|
43 |
|
|
extern void set_palette (void); /* vga.c */
|
44 |
|
|
|
45 |
|
|
/* TGA hardware description (minimal) */
|
46 |
|
|
/*
|
47 |
|
|
* Offsets within Memory Space
|
48 |
|
|
*/
|
49 |
|
|
#define TGA_ROM_OFFSET 0x0000000
|
50 |
|
|
#define TGA_REGS_OFFSET 0x0100000
|
51 |
|
|
#define TGA_8PLANE_FB_OFFSET 0x0200000
|
52 |
|
|
#define TGA_24PLANE_FB_OFFSET 0x0804000
|
53 |
|
|
#define TGA_24PLUSZ_FB_OFFSET 0x1004000
|
54 |
|
|
|
55 |
|
|
#define TGA_PLANEMASK_REG 0x0028
|
56 |
|
|
#define TGA_MODE_REG 0x0030
|
57 |
|
|
#define TGA_RASTEROP_REG 0x0034
|
58 |
|
|
#define TGA_DEEP_REG 0x0050
|
59 |
|
|
#define TGA_PIXELMASK_REG 0x005c
|
60 |
|
|
#define TGA_CURSOR_BASE_REG 0x0060
|
61 |
|
|
#define TGA_HORIZ_REG 0x0064
|
62 |
|
|
#define TGA_VERT_REG 0x0068
|
63 |
|
|
#define TGA_BASE_ADDR_REG 0x006c
|
64 |
|
|
#define TGA_VALID_REG 0x0070
|
65 |
|
|
#define TGA_CURSOR_XY_REG 0x0074
|
66 |
|
|
#define TGA_INTR_STAT_REG 0x007c
|
67 |
|
|
#define TGA_RAMDAC_SETUP_REG 0x00c0
|
68 |
|
|
#define TGA_BLOCK_COLOR0_REG 0x0140
|
69 |
|
|
#define TGA_BLOCK_COLOR1_REG 0x0144
|
70 |
|
|
#define TGA_CLOCK_REG 0x01e8
|
71 |
|
|
#define TGA_RAMDAC_REG 0x01f0
|
72 |
|
|
#define TGA_CMD_STAT_REG 0x01f8
|
73 |
|
|
|
74 |
|
|
/*
|
75 |
|
|
* useful defines for managing the BT485 on the 8-plane TGA
|
76 |
|
|
*/
|
77 |
|
|
#define BT485_READ_BIT 0x01
|
78 |
|
|
#define BT485_WRITE_BIT 0x00
|
79 |
|
|
|
80 |
|
|
#define BT485_ADDR_PAL_WRITE 0x00
|
81 |
|
|
#define BT485_DATA_PAL 0x02
|
82 |
|
|
#define BT485_PIXEL_MASK 0x04
|
83 |
|
|
#define BT485_ADDR_PAL_READ 0x06
|
84 |
|
|
#define BT485_ADDR_CUR_WRITE 0x08
|
85 |
|
|
#define BT485_DATA_CUR 0x0a
|
86 |
|
|
#define BT485_CMD_0 0x0c
|
87 |
|
|
#define BT485_ADDR_CUR_READ 0x0e
|
88 |
|
|
#define BT485_CMD_1 0x10
|
89 |
|
|
#define BT485_CMD_2 0x12
|
90 |
|
|
#define BT485_STATUS 0x14
|
91 |
|
|
#define BT485_CMD_3 0x14
|
92 |
|
|
#define BT485_CUR_RAM 0x16
|
93 |
|
|
#define BT485_CUR_LOW_X 0x18
|
94 |
|
|
#define BT485_CUR_HIGH_X 0x1a
|
95 |
|
|
#define BT485_CUR_LOW_Y 0x1c
|
96 |
|
|
#define BT485_CUR_HIGH_Y 0x1e
|
97 |
|
|
|
98 |
|
|
/*
|
99 |
|
|
* useful defines for managing the BT463 on the 24-plane TGAs
|
100 |
|
|
*/
|
101 |
|
|
#define BT463_ADDR_LO 0x0
|
102 |
|
|
#define BT463_ADDR_HI 0x1
|
103 |
|
|
#define BT463_REG_ACC 0x2
|
104 |
|
|
#define BT463_PALETTE 0x3
|
105 |
|
|
|
106 |
|
|
#define BT463_CUR_CLR_0 0x0100
|
107 |
|
|
#define BT463_CUR_CLR_1 0x0101
|
108 |
|
|
|
109 |
|
|
#define BT463_CMD_REG_0 0x0201
|
110 |
|
|
#define BT463_CMD_REG_1 0x0202
|
111 |
|
|
#define BT463_CMD_REG_2 0x0203
|
112 |
|
|
|
113 |
|
|
#define BT463_READ_MASK_0 0x0205
|
114 |
|
|
#define BT463_READ_MASK_1 0x0206
|
115 |
|
|
#define BT463_READ_MASK_2 0x0207
|
116 |
|
|
#define BT463_READ_MASK_3 0x0208
|
117 |
|
|
|
118 |
|
|
#define BT463_BLINK_MASK_0 0x0209
|
119 |
|
|
#define BT463_BLINK_MASK_1 0x020a
|
120 |
|
|
#define BT463_BLINK_MASK_2 0x020b
|
121 |
|
|
#define BT463_BLINK_MASK_3 0x020c
|
122 |
|
|
|
123 |
|
|
#define BT463_WINDOW_TYPE_BASE 0x0300
|
124 |
|
|
|
125 |
|
|
/*
|
126 |
|
|
* built-in font management constants
|
127 |
|
|
*
|
128 |
|
|
* NOTE: the built-in font is 8x16, and the video resolution
|
129 |
|
|
* is 640x480 @ 60Hz.
|
130 |
|
|
* This means we could put 30 rows of text on the screen (480/16).
|
131 |
|
|
* However, we wish to make then TGA look just like a VGA, as the
|
132 |
|
|
* default, so, we pad the character to 8x18, and leave some scan
|
133 |
|
|
* lines at the bottom unused.
|
134 |
|
|
*/
|
135 |
|
|
#define TGA_F_WIDTH 8
|
136 |
|
|
#define TGA_F_HEIGHT 16
|
137 |
|
|
#define TGA_F_HEIGHT_PADDED 18
|
138 |
|
|
|
139 |
|
|
int tga_type;
|
140 |
|
|
unsigned int tga_mem_base;
|
141 |
|
|
unsigned long tga_fb_base;
|
142 |
|
|
unsigned long tga_regs_base;
|
143 |
|
|
unsigned int tga_bpp, tga_fb_width, tga_fb_height, tga_fb_stride;
|
144 |
|
|
|
145 |
|
|
static unsigned int fb_offset_presets[4] = {
|
146 |
|
|
TGA_8PLANE_FB_OFFSET,
|
147 |
|
|
TGA_24PLANE_FB_OFFSET,
|
148 |
|
|
0xffffffff,
|
149 |
|
|
TGA_24PLUSZ_FB_OFFSET
|
150 |
|
|
};
|
151 |
|
|
|
152 |
|
|
static unsigned int deep_presets[4] = {
|
153 |
|
|
0x00014000,
|
154 |
|
|
0x0001440d,
|
155 |
|
|
0xffffffff,
|
156 |
|
|
0x0001441d
|
157 |
|
|
};
|
158 |
|
|
|
159 |
|
|
static unsigned int rasterop_presets[4] = {
|
160 |
|
|
0x00000003,
|
161 |
|
|
0x00000303,
|
162 |
|
|
0xffffffff,
|
163 |
|
|
0x00000303
|
164 |
|
|
};
|
165 |
|
|
|
166 |
|
|
static unsigned int mode_presets[4] = {
|
167 |
|
|
0x00002000,
|
168 |
|
|
0x00002300,
|
169 |
|
|
0xffffffff,
|
170 |
|
|
0x00002300
|
171 |
|
|
};
|
172 |
|
|
|
173 |
|
|
static unsigned int base_addr_presets[4] = {
|
174 |
|
|
0x00000000,
|
175 |
|
|
0x00000001,
|
176 |
|
|
0xffffffff,
|
177 |
|
|
0x00000001
|
178 |
|
|
};
|
179 |
|
|
|
180 |
|
|
#define TGA_WRITE_REG(v,r) \
|
181 |
|
|
{ writel((v), tga_regs_base+(r)); mb(); }
|
182 |
|
|
|
183 |
|
|
#define TGA_READ_REG(r) readl(tga_regs_base+(r))
|
184 |
|
|
|
185 |
|
|
#define BT485_WRITE(v,r) \
|
186 |
|
|
TGA_WRITE_REG((r),TGA_RAMDAC_SETUP_REG); \
|
187 |
|
|
TGA_WRITE_REG(((v)&0xff)|((r)<<8),TGA_RAMDAC_REG);
|
188 |
|
|
|
189 |
|
|
#define BT463_LOAD_ADDR(a) \
|
190 |
|
|
TGA_WRITE_REG(BT463_ADDR_LO<<2, TGA_RAMDAC_SETUP_REG); \
|
191 |
|
|
TGA_WRITE_REG((BT463_ADDR_LO<<10)|((a)&0xff), TGA_RAMDAC_REG); \
|
192 |
|
|
TGA_WRITE_REG(BT463_ADDR_HI<<2, TGA_RAMDAC_SETUP_REG); \
|
193 |
|
|
TGA_WRITE_REG((BT463_ADDR_HI<<10)|(((a)>>8)&0xff), TGA_RAMDAC_REG);
|
194 |
|
|
|
195 |
|
|
#define BT463_WRITE(m,a,v) \
|
196 |
|
|
BT463_LOAD_ADDR((a)); \
|
197 |
|
|
TGA_WRITE_REG(((m)<<2),TGA_RAMDAC_SETUP_REG); \
|
198 |
|
|
TGA_WRITE_REG(((m)<<10)|((v)&0xff),TGA_RAMDAC_REG);
|
199 |
|
|
|
200 |
|
|
extern char tga_builtin_font[];
|
201 |
|
|
|
202 |
|
|
void tga_init_video(void);
|
203 |
|
|
void tga_clear_screen(void);
|
204 |
|
|
|
205 |
|
|
void
|
206 |
|
|
tga_set_palette (void)
|
207 |
|
|
{
|
208 |
|
|
int i, j;
|
209 |
|
|
|
210 |
|
|
if (console_blanked || vt_cons[fg_console]->vc_mode == KD_GRAPHICS)
|
211 |
|
|
return;
|
212 |
|
|
|
213 |
|
|
|
214 |
|
|
if (tga_type == 0) { /* 8-plane */
|
215 |
|
|
BT485_WRITE(0x00, BT485_ADDR_PAL_WRITE);
|
216 |
|
|
TGA_WRITE_REG(BT485_DATA_PAL, TGA_RAMDAC_SETUP_REG);
|
217 |
|
|
|
218 |
|
|
for (i = 0; i < 16; i++) {
|
219 |
|
|
j = color_table[i];
|
220 |
|
|
TGA_WRITE_REG(default_red[j]|(BT485_DATA_PAL<<8),TGA_RAMDAC_REG);
|
221 |
|
|
TGA_WRITE_REG(default_grn[j]|(BT485_DATA_PAL<<8),TGA_RAMDAC_REG);
|
222 |
|
|
TGA_WRITE_REG(default_blu[j]|(BT485_DATA_PAL<<8),TGA_RAMDAC_REG);
|
223 |
|
|
}
|
224 |
|
|
} else {
|
225 |
|
|
BT463_LOAD_ADDR(0x0000);
|
226 |
|
|
TGA_WRITE_REG((BT463_PALETTE<<2), TGA_RAMDAC_REG);
|
227 |
|
|
|
228 |
|
|
for (i = 0; i < 16; i++) {
|
229 |
|
|
j = color_table[i];
|
230 |
|
|
TGA_WRITE_REG(default_red[j]|(BT463_PALETTE<<10), TGA_RAMDAC_REG);
|
231 |
|
|
TGA_WRITE_REG(default_grn[j]|(BT463_PALETTE<<10), TGA_RAMDAC_REG);
|
232 |
|
|
TGA_WRITE_REG(default_blu[j]|(BT463_PALETTE<<10), TGA_RAMDAC_REG);
|
233 |
|
|
}
|
234 |
|
|
}
|
235 |
|
|
}
|
236 |
|
|
|
237 |
|
|
void
|
238 |
|
|
tga_set_origin(unsigned short offset)
|
239 |
|
|
{
|
240 |
|
|
/*
|
241 |
|
|
* should not be called, but if so, do nothing...
|
242 |
|
|
*/
|
243 |
|
|
}
|
244 |
|
|
|
245 |
|
|
/*
|
246 |
|
|
* Hide the cursor from view, during blanking, usually...
|
247 |
|
|
*/
|
248 |
|
|
void
|
249 |
|
|
tga_hide_cursor(void)
|
250 |
|
|
{
|
251 |
|
|
unsigned long flags;
|
252 |
|
|
save_flags(flags); cli();
|
253 |
|
|
|
254 |
|
|
if (tga_type == 0) {
|
255 |
|
|
BT485_WRITE(0x20, BT485_CMD_2);
|
256 |
|
|
} else {
|
257 |
|
|
TGA_WRITE_REG(0x03, TGA_VALID_REG); /* SCANNING and BLANK */
|
258 |
|
|
}
|
259 |
|
|
|
260 |
|
|
restore_flags(flags);
|
261 |
|
|
}
|
262 |
|
|
|
263 |
|
|
void
|
264 |
|
|
tga_set_cursor(int currcons)
|
265 |
|
|
{
|
266 |
|
|
unsigned int idx, xt, yt, row, col;
|
267 |
|
|
unsigned long flags;
|
268 |
|
|
|
269 |
|
|
if (currcons != fg_console || console_blanked || vcmode == KD_GRAPHICS)
|
270 |
|
|
return;
|
271 |
|
|
|
272 |
|
|
#if 0
|
273 |
|
|
if (__real_origin != __origin)
|
274 |
|
|
tga_set_origin(__real_origin);
|
275 |
|
|
#endif
|
276 |
|
|
|
277 |
|
|
save_flags(flags); cli();
|
278 |
|
|
|
279 |
|
|
if (deccm) {
|
280 |
|
|
idx = (pos - video_mem_base) >> 1;
|
281 |
|
|
col = idx % 80;
|
282 |
|
|
row = (idx - col) / 80;
|
283 |
|
|
|
284 |
|
|
if (tga_type == 0) { /* 8-plane */
|
285 |
|
|
|
286 |
|
|
xt = col * TGA_F_WIDTH + 64;
|
287 |
|
|
yt = row * TGA_F_HEIGHT_PADDED + 64;
|
288 |
|
|
|
289 |
|
|
/* make sure it's enabled */
|
290 |
|
|
BT485_WRITE(0x22, BT485_CMD_2); /* WIN cursor type */
|
291 |
|
|
|
292 |
|
|
BT485_WRITE(xt, BT485_CUR_LOW_X);
|
293 |
|
|
BT485_WRITE((xt >> 8), BT485_CUR_HIGH_X);
|
294 |
|
|
BT485_WRITE(yt, BT485_CUR_LOW_Y);
|
295 |
|
|
BT485_WRITE((yt >> 8), BT485_CUR_HIGH_Y);
|
296 |
|
|
|
297 |
|
|
} else {
|
298 |
|
|
|
299 |
|
|
xt = col * TGA_F_WIDTH + 144;
|
300 |
|
|
yt = row * TGA_F_HEIGHT_PADDED + 35;
|
301 |
|
|
|
302 |
|
|
TGA_WRITE_REG(0x05, TGA_VALID_REG); /* SCANNING and CURSOR */
|
303 |
|
|
TGA_WRITE_REG(xt | (yt << 12), TGA_CURSOR_XY_REG);
|
304 |
|
|
}
|
305 |
|
|
|
306 |
|
|
} else
|
307 |
|
|
tga_hide_cursor();
|
308 |
|
|
restore_flags(flags);
|
309 |
|
|
}
|
310 |
|
|
|
311 |
|
|
unsigned long
|
312 |
|
|
tga_init(unsigned long kmem_start, const char **display_desc)
|
313 |
|
|
{
|
314 |
|
|
can_do_color = 1;
|
315 |
|
|
|
316 |
|
|
/*
|
317 |
|
|
* fake the screen memory with some CPU memory
|
318 |
|
|
*/
|
319 |
|
|
video_mem_base = kmem_start;
|
320 |
|
|
kmem_start += video_screen_size;
|
321 |
|
|
video_mem_term = kmem_start;
|
322 |
|
|
|
323 |
|
|
video_type = VIDEO_TYPE_TGAC;
|
324 |
|
|
|
325 |
|
|
*display_desc = "TGA";
|
326 |
|
|
|
327 |
|
|
return kmem_start;
|
328 |
|
|
}
|
329 |
|
|
|
330 |
|
|
/*
|
331 |
|
|
* NOTE: get_scrmem() and set_scrmem() are here only because
|
332 |
|
|
* the VGA version of set_scrmem() has some direct VGA references.
|
333 |
|
|
*/
|
334 |
|
|
void
|
335 |
|
|
tga_get_scrmem(int currcons)
|
336 |
|
|
{
|
337 |
|
|
memcpyw((unsigned short *)vc_scrbuf[currcons],
|
338 |
|
|
(unsigned short *)origin, video_screen_size);
|
339 |
|
|
origin = video_mem_start = (unsigned long)vc_scrbuf[currcons];
|
340 |
|
|
scr_end = video_mem_end = video_mem_start + video_screen_size;
|
341 |
|
|
pos = origin + y*video_size_row + (x<<1);
|
342 |
|
|
}
|
343 |
|
|
|
344 |
|
|
void
|
345 |
|
|
tga_set_scrmem(int currcons, long offset)
|
346 |
|
|
{
|
347 |
|
|
if (video_mem_term - video_mem_base < offset + video_screen_size)
|
348 |
|
|
offset = 0; /* strange ... */
|
349 |
|
|
memcpyw((unsigned short *)(video_mem_base + offset),
|
350 |
|
|
(unsigned short *) origin, video_screen_size);
|
351 |
|
|
video_mem_start = video_mem_base;
|
352 |
|
|
video_mem_end = video_mem_term;
|
353 |
|
|
origin = video_mem_base + offset;
|
354 |
|
|
scr_end = origin + video_screen_size;
|
355 |
|
|
pos = origin + y*video_size_row + (x<<1);
|
356 |
|
|
}
|
357 |
|
|
|
358 |
|
|
/*
|
359 |
|
|
* PIO_FONT support.
|
360 |
|
|
*
|
361 |
|
|
* for now, we will use/allow *only* our built-in font...
|
362 |
|
|
*/
|
363 |
|
|
int
|
364 |
|
|
tga_set_get_font(char * arg, int set, int ch512)
|
365 |
|
|
{
|
366 |
|
|
return -EINVAL;
|
367 |
|
|
}
|
368 |
|
|
|
369 |
|
|
/*
|
370 |
|
|
* Adjust the screen to fit a font of a certain height
|
371 |
|
|
*
|
372 |
|
|
* Returns < 0 for error, 0 if nothing changed, and the number
|
373 |
|
|
* of lines on the adjusted console if changed.
|
374 |
|
|
*
|
375 |
|
|
* for now, we only support the built-in font...
|
376 |
|
|
*/
|
377 |
|
|
int
|
378 |
|
|
tga_adjust_height(unsigned long fontheight)
|
379 |
|
|
{
|
380 |
|
|
return -EINVAL;
|
381 |
|
|
}
|
382 |
|
|
|
383 |
|
|
/* NOTE:
|
384 |
|
|
* this is here, and not in console.c, because the VGA version
|
385 |
|
|
* tests the controller type to see if color can be done. We *KNOW*
|
386 |
|
|
* that we can do color on the TGA... :-)
|
387 |
|
|
*
|
388 |
|
|
* FIXME? maybe the init codes for VGA and TGA could set
|
389 |
|
|
* a flag for (in)ability to do colormap set/get???
|
390 |
|
|
*/
|
391 |
|
|
|
392 |
|
|
int
|
393 |
|
|
tga_set_get_cmap(unsigned char * arg, int set) {
|
394 |
|
|
int i;
|
395 |
|
|
|
396 |
|
|
i = verify_area(set ? VERIFY_READ : VERIFY_WRITE, (void *)arg, 16*3);
|
397 |
|
|
if (i)
|
398 |
|
|
return i;
|
399 |
|
|
|
400 |
|
|
for (i=0; i<16; i++) {
|
401 |
|
|
if (set) {
|
402 |
|
|
default_red[i] = get_user(arg++) ;
|
403 |
|
|
default_grn[i] = get_user(arg++) ;
|
404 |
|
|
default_blu[i] = get_user(arg++) ;
|
405 |
|
|
} else {
|
406 |
|
|
put_user (default_red[i], arg++) ;
|
407 |
|
|
put_user (default_grn[i], arg++) ;
|
408 |
|
|
put_user (default_blu[i], arg++) ;
|
409 |
|
|
}
|
410 |
|
|
}
|
411 |
|
|
if (set) {
|
412 |
|
|
for (i=0; i<MAX_NR_CONSOLES; i++)
|
413 |
|
|
if (vc_cons_allocated(i)) {
|
414 |
|
|
int j, k ;
|
415 |
|
|
for (j=k=0; j<16; j++) {
|
416 |
|
|
vc_cons[i].d->vc_palette[k++] = default_red[j];
|
417 |
|
|
vc_cons[i].d->vc_palette[k++] = default_grn[j];
|
418 |
|
|
vc_cons[i].d->vc_palette[k++] = default_blu[j];
|
419 |
|
|
}
|
420 |
|
|
}
|
421 |
|
|
set_palette() ;
|
422 |
|
|
}
|
423 |
|
|
|
424 |
|
|
return 0;
|
425 |
|
|
}
|
426 |
|
|
|
427 |
|
|
/*
|
428 |
|
|
* dummy routines for the VESA blanking code, which is VGA only,
|
429 |
|
|
* so we don't have to carry that stuff around for the TGA...
|
430 |
|
|
*/
|
431 |
|
|
void tga_vesa_powerdown(void)
|
432 |
|
|
{
|
433 |
|
|
}
|
434 |
|
|
void tga_vesa_blank(void)
|
435 |
|
|
{
|
436 |
|
|
}
|
437 |
|
|
void tga_vesa_unblank(void)
|
438 |
|
|
{
|
439 |
|
|
}
|
440 |
|
|
void tga_set_vesa_blanking(const unsigned long arg)
|
441 |
|
|
{
|
442 |
|
|
}
|
443 |
|
|
|
444 |
|
|
/*
|
445 |
|
|
* video init code, called from within the PCI bus probing code;
|
446 |
|
|
* when TGA console is configured, at the end of the probing code,
|
447 |
|
|
* we call here to look for a TGA device, and proceed...
|
448 |
|
|
*
|
449 |
|
|
* note that this code MUST be called BEFORE console_init/con_init,
|
450 |
|
|
* so that either VGA or TGA are set up but not both. we had to move
|
451 |
|
|
* console_init to after pci_init in start_kernel to assure this.
|
452 |
|
|
*/
|
453 |
|
|
void
|
454 |
|
|
tga_console_find(void)
|
455 |
|
|
{
|
456 |
|
|
unsigned char pci_bus, pci_devfn;
|
457 |
|
|
int status;
|
458 |
|
|
|
459 |
|
|
/*
|
460 |
|
|
* first, find the TGA among the PCI devices...
|
461 |
|
|
*/
|
462 |
|
|
status = pcibios_find_device (PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TGA,
|
463 |
|
|
0, &pci_bus, &pci_devfn);
|
464 |
|
|
if (status == PCIBIOS_DEVICE_NOT_FOUND) {
|
465 |
|
|
/* PANIC!!! */
|
466 |
|
|
printk("tga_console_init: TGA not found!!! :-(\n");
|
467 |
|
|
return;
|
468 |
|
|
}
|
469 |
|
|
|
470 |
|
|
/*
|
471 |
|
|
* read BASE_REG_0 for memory address
|
472 |
|
|
*/
|
473 |
|
|
pcibios_read_config_dword(pci_bus, pci_devfn,
|
474 |
|
|
PCI_BASE_ADDRESS_0, &tga_mem_base);
|
475 |
|
|
tga_mem_base &= ~15;
|
476 |
|
|
#ifdef DEBUG
|
477 |
|
|
printk("tga_console_init: mem_base 0x%x\n", tga_mem_base);
|
478 |
|
|
#endif /* DEBUG */
|
479 |
|
|
|
480 |
|
|
tga_type = (readl((unsigned long)tga_mem_base) >> 12) & 0x0f;
|
481 |
|
|
if (tga_type != 0 && tga_type != 1 && tga_type != 3) {
|
482 |
|
|
printk("TGA type (0x%x) unrecognized!\n", tga_type);
|
483 |
|
|
return;
|
484 |
|
|
}
|
485 |
|
|
tga_init_video();
|
486 |
|
|
tga_clear_screen();
|
487 |
|
|
|
488 |
|
|
}
|
489 |
|
|
|
490 |
|
|
unsigned char PLLbits[7] = { 0x80, 0x04, 0x00, 0x24, 0x44, 0x80, 0xb8 };
|
491 |
|
|
|
492 |
|
|
const unsigned long bt485_cursor_source[64] = {
|
493 |
|
|
0x00000000000000ff,0x00000000000000ff,0x00000000000000ff,0x00000000000000ff,
|
494 |
|
|
0x00000000000000ff,0x00000000000000ff,0x00000000000000ff,0x00000000000000ff,
|
495 |
|
|
0x00000000000000ff,0x00000000000000ff,0x00000000000000ff,0x00000000000000ff,
|
496 |
|
|
0x00000000000000ff,0x00000000000000ff,0x00000000000000ff,0x00000000000000ff,
|
497 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
498 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
499 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
500 |
|
|
};
|
501 |
|
|
|
502 |
|
|
const unsigned int bt463_cursor_source[256] = {
|
503 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
504 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
505 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
506 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
507 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
508 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
509 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
510 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
511 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
512 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
513 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
514 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
515 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
516 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
517 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
518 |
|
|
0xffff0000, 0x00000000, 0x00000000, 0x00000000,
|
519 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
520 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
521 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
522 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
523 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
524 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
525 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
526 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
527 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
528 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
529 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
530 |
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
531 |
|
|
};
|
532 |
|
|
|
533 |
|
|
void
|
534 |
|
|
tga_init_video()
|
535 |
|
|
{
|
536 |
|
|
int i, j, temp;
|
537 |
|
|
unsigned char *cbp;
|
538 |
|
|
|
539 |
|
|
tga_regs_base = ((unsigned long)tga_mem_base + TGA_REGS_OFFSET);
|
540 |
|
|
tga_fb_base =
|
541 |
|
|
((unsigned long)tga_mem_base + fb_offset_presets[tga_type]);
|
542 |
|
|
|
543 |
|
|
/* first, disable video timing */
|
544 |
|
|
TGA_WRITE_REG(0x03, TGA_VALID_REG); /* SCANNING and BLANK */
|
545 |
|
|
|
546 |
|
|
/* write the DEEP register */
|
547 |
|
|
while (TGA_READ_REG(TGA_CMD_STAT_REG) & 1) /* wait for not busy */
|
548 |
|
|
continue;
|
549 |
|
|
|
550 |
|
|
mb();
|
551 |
|
|
TGA_WRITE_REG(deep_presets[tga_type], TGA_DEEP_REG);
|
552 |
|
|
while (TGA_READ_REG(TGA_CMD_STAT_REG) & 1) /* wait for not busy */
|
553 |
|
|
continue;
|
554 |
|
|
mb();
|
555 |
|
|
|
556 |
|
|
/* write some more registers */
|
557 |
|
|
TGA_WRITE_REG(rasterop_presets[tga_type], TGA_RASTEROP_REG);
|
558 |
|
|
TGA_WRITE_REG(mode_presets[tga_type], TGA_MODE_REG);
|
559 |
|
|
TGA_WRITE_REG(base_addr_presets[tga_type], TGA_BASE_ADDR_REG);
|
560 |
|
|
|
561 |
|
|
/* write the PLL for 640x480 @ 60Hz */
|
562 |
|
|
for (i = 0; i <= 6; i++) {
|
563 |
|
|
for (j = 0; j <= 7; j++) {
|
564 |
|
|
temp = (PLLbits[i] >> (7-j)) & 1;
|
565 |
|
|
if (i == 6 && j == 7)
|
566 |
|
|
temp |= 2;
|
567 |
|
|
TGA_WRITE_REG(temp, TGA_CLOCK_REG);
|
568 |
|
|
}
|
569 |
|
|
}
|
570 |
|
|
|
571 |
|
|
/* write some more registers */
|
572 |
|
|
TGA_WRITE_REG(0xffffffff, TGA_PLANEMASK_REG);
|
573 |
|
|
TGA_WRITE_REG(0xffffffff, TGA_PIXELMASK_REG);
|
574 |
|
|
TGA_WRITE_REG(0x12345678, TGA_BLOCK_COLOR0_REG);
|
575 |
|
|
TGA_WRITE_REG(0x12345678, TGA_BLOCK_COLOR1_REG);
|
576 |
|
|
|
577 |
|
|
/* init video timing regs for 640x480 @ 60 Hz */
|
578 |
|
|
TGA_WRITE_REG(0x018608a0, TGA_HORIZ_REG);
|
579 |
|
|
TGA_WRITE_REG(0x084251e0, TGA_VERT_REG);
|
580 |
|
|
|
581 |
|
|
if (tga_type == 0) { /* 8-plane */
|
582 |
|
|
|
583 |
|
|
tga_bpp = 1;
|
584 |
|
|
|
585 |
|
|
/* init BT485 RAMDAC registers */
|
586 |
|
|
BT485_WRITE(0xa2, BT485_CMD_0);
|
587 |
|
|
BT485_WRITE(0x01, BT485_ADDR_PAL_WRITE);
|
588 |
|
|
BT485_WRITE(0x14, BT485_CMD_3); /* cursor 64x64 */
|
589 |
|
|
BT485_WRITE(0x40, BT485_CMD_1);
|
590 |
|
|
BT485_WRITE(0x22, BT485_CMD_2); /* WIN cursor type */
|
591 |
|
|
BT485_WRITE(0xff, BT485_PIXEL_MASK);
|
592 |
|
|
|
593 |
|
|
/* fill palette registers */
|
594 |
|
|
BT485_WRITE(0x00, BT485_ADDR_PAL_WRITE);
|
595 |
|
|
TGA_WRITE_REG(BT485_DATA_PAL, TGA_RAMDAC_SETUP_REG);
|
596 |
|
|
|
597 |
|
|
for (i = 0; i < 16; i++) {
|
598 |
|
|
j = color_table[i];
|
599 |
|
|
TGA_WRITE_REG(default_red[j]|(BT485_DATA_PAL<<8),
|
600 |
|
|
TGA_RAMDAC_REG);
|
601 |
|
|
TGA_WRITE_REG(default_grn[j]|(BT485_DATA_PAL<<8),
|
602 |
|
|
TGA_RAMDAC_REG);
|
603 |
|
|
TGA_WRITE_REG(default_blu[j]|(BT485_DATA_PAL<<8),
|
604 |
|
|
TGA_RAMDAC_REG);
|
605 |
|
|
}
|
606 |
|
|
for (i = 0; i < 240*3; i += 4) {
|
607 |
|
|
TGA_WRITE_REG(0x55|(BT485_DATA_PAL<<8), TGA_RAMDAC_REG);
|
608 |
|
|
TGA_WRITE_REG(0x00|(BT485_DATA_PAL<<8), TGA_RAMDAC_REG);
|
609 |
|
|
TGA_WRITE_REG(0x00|(BT485_DATA_PAL<<8), TGA_RAMDAC_REG);
|
610 |
|
|
TGA_WRITE_REG(0x00|(BT485_DATA_PAL<<8), TGA_RAMDAC_REG);
|
611 |
|
|
}
|
612 |
|
|
|
613 |
|
|
/* initialize RAMDAC cursor colors */
|
614 |
|
|
BT485_WRITE(0, BT485_ADDR_CUR_WRITE);
|
615 |
|
|
|
616 |
|
|
BT485_WRITE(0xaa, BT485_DATA_CUR); /* overscan WHITE */
|
617 |
|
|
BT485_WRITE(0xaa, BT485_DATA_CUR); /* overscan WHITE */
|
618 |
|
|
BT485_WRITE(0xaa, BT485_DATA_CUR); /* overscan WHITE */
|
619 |
|
|
|
620 |
|
|
BT485_WRITE(0x00, BT485_DATA_CUR); /* color 1 BLACK */
|
621 |
|
|
BT485_WRITE(0x00, BT485_DATA_CUR); /* color 1 BLACK */
|
622 |
|
|
BT485_WRITE(0x00, BT485_DATA_CUR); /* color 1 BLACK */
|
623 |
|
|
|
624 |
|
|
BT485_WRITE(0x00, BT485_DATA_CUR); /* color 2 BLACK */
|
625 |
|
|
BT485_WRITE(0x00, BT485_DATA_CUR); /* color 2 BLACK */
|
626 |
|
|
BT485_WRITE(0x00, BT485_DATA_CUR); /* color 2 BLACK */
|
627 |
|
|
|
628 |
|
|
BT485_WRITE(0x00, BT485_DATA_CUR); /* color 3 BLACK */
|
629 |
|
|
BT485_WRITE(0x00, BT485_DATA_CUR); /* color 3 BLACK */
|
630 |
|
|
BT485_WRITE(0x00, BT485_DATA_CUR); /* color 3 BLACK */
|
631 |
|
|
|
632 |
|
|
/* initialize RAMDAC cursor RAM */
|
633 |
|
|
BT485_WRITE(0x00, BT485_ADDR_PAL_WRITE);
|
634 |
|
|
cbp = (unsigned char *)bt485_cursor_source;
|
635 |
|
|
for (i = 0; i < 512; i++) {
|
636 |
|
|
BT485_WRITE(*cbp++, BT485_CUR_RAM);
|
637 |
|
|
}
|
638 |
|
|
for (i = 0; i < 512; i++) {
|
639 |
|
|
BT485_WRITE(0xff, BT485_CUR_RAM);
|
640 |
|
|
}
|
641 |
|
|
|
642 |
|
|
} else { /* 24-plane or 24plusZ */
|
643 |
|
|
|
644 |
|
|
tga_bpp = 4;
|
645 |
|
|
|
646 |
|
|
TGA_WRITE_REG(0x01, TGA_VALID_REG); /* SCANNING */
|
647 |
|
|
|
648 |
|
|
/*
|
649 |
|
|
* init some registers
|
650 |
|
|
*/
|
651 |
|
|
BT463_WRITE(BT463_REG_ACC, BT463_CMD_REG_0, 0x40);
|
652 |
|
|
BT463_WRITE(BT463_REG_ACC, BT463_CMD_REG_1, 0x08);
|
653 |
|
|
BT463_WRITE(BT463_REG_ACC, BT463_CMD_REG_2, 0x40);
|
654 |
|
|
|
655 |
|
|
BT463_WRITE(BT463_REG_ACC, BT463_READ_MASK_0, 0xff);
|
656 |
|
|
BT463_WRITE(BT463_REG_ACC, BT463_READ_MASK_1, 0xff);
|
657 |
|
|
BT463_WRITE(BT463_REG_ACC, BT463_READ_MASK_2, 0xff);
|
658 |
|
|
BT463_WRITE(BT463_REG_ACC, BT463_READ_MASK_3, 0x0f);
|
659 |
|
|
|
660 |
|
|
BT463_WRITE(BT463_REG_ACC, BT463_BLINK_MASK_0, 0x00);
|
661 |
|
|
BT463_WRITE(BT463_REG_ACC, BT463_BLINK_MASK_1, 0x00);
|
662 |
|
|
BT463_WRITE(BT463_REG_ACC, BT463_BLINK_MASK_2, 0x00);
|
663 |
|
|
BT463_WRITE(BT463_REG_ACC, BT463_BLINK_MASK_3, 0x00);
|
664 |
|
|
|
665 |
|
|
/*
|
666 |
|
|
* fill the palette
|
667 |
|
|
*/
|
668 |
|
|
BT463_LOAD_ADDR(0x0000);
|
669 |
|
|
TGA_WRITE_REG((BT463_PALETTE<<2), TGA_RAMDAC_REG);
|
670 |
|
|
|
671 |
|
|
for (i = 0; i < 16; i++) {
|
672 |
|
|
j = color_table[i];
|
673 |
|
|
TGA_WRITE_REG(default_red[j]|(BT463_PALETTE<<10),
|
674 |
|
|
TGA_RAMDAC_REG);
|
675 |
|
|
TGA_WRITE_REG(default_grn[j]|(BT463_PALETTE<<10),
|
676 |
|
|
TGA_RAMDAC_REG);
|
677 |
|
|
TGA_WRITE_REG(default_blu[j]|(BT463_PALETTE<<10),
|
678 |
|
|
TGA_RAMDAC_REG);
|
679 |
|
|
}
|
680 |
|
|
for (i = 0; i < 512*3; i += 4) {
|
681 |
|
|
TGA_WRITE_REG(0x55|(BT463_PALETTE<<10), TGA_RAMDAC_REG);
|
682 |
|
|
TGA_WRITE_REG(0x00|(BT463_PALETTE<<10), TGA_RAMDAC_REG);
|
683 |
|
|
TGA_WRITE_REG(0x00|(BT463_PALETTE<<10), TGA_RAMDAC_REG);
|
684 |
|
|
TGA_WRITE_REG(0x00|(BT463_PALETTE<<10), TGA_RAMDAC_REG);
|
685 |
|
|
}
|
686 |
|
|
|
687 |
|
|
/*
|
688 |
|
|
* fill window type table after start of vertical retrace
|
689 |
|
|
*/
|
690 |
|
|
while (!(TGA_READ_REG(TGA_INTR_STAT_REG) & 0x01))
|
691 |
|
|
continue;
|
692 |
|
|
TGA_WRITE_REG(0x01, TGA_INTR_STAT_REG);
|
693 |
|
|
mb();
|
694 |
|
|
while (!(TGA_READ_REG(TGA_INTR_STAT_REG) & 0x01))
|
695 |
|
|
continue;
|
696 |
|
|
TGA_WRITE_REG(0x01, TGA_INTR_STAT_REG);
|
697 |
|
|
|
698 |
|
|
BT463_LOAD_ADDR(BT463_WINDOW_TYPE_BASE);
|
699 |
|
|
TGA_WRITE_REG((BT463_REG_ACC<<2), TGA_RAMDAC_SETUP_REG);
|
700 |
|
|
|
701 |
|
|
for (i = 0; i < 16; i++) {
|
702 |
|
|
TGA_WRITE_REG(0x00|(BT463_REG_ACC<<10), TGA_RAMDAC_REG);
|
703 |
|
|
TGA_WRITE_REG(0x01|(BT463_REG_ACC<<10), TGA_RAMDAC_REG);
|
704 |
|
|
TGA_WRITE_REG(0x80|(BT463_REG_ACC<<10), TGA_RAMDAC_REG);
|
705 |
|
|
}
|
706 |
|
|
|
707 |
|
|
/*
|
708 |
|
|
* init cursor colors
|
709 |
|
|
*/
|
710 |
|
|
BT463_LOAD_ADDR(BT463_CUR_CLR_0);
|
711 |
|
|
|
712 |
|
|
TGA_WRITE_REG(0x00|(BT463_REG_ACC<<10), TGA_RAMDAC_REG); /* background */
|
713 |
|
|
TGA_WRITE_REG(0x00|(BT463_REG_ACC<<10), TGA_RAMDAC_REG); /* background */
|
714 |
|
|
TGA_WRITE_REG(0x00|(BT463_REG_ACC<<10), TGA_RAMDAC_REG); /* background */
|
715 |
|
|
|
716 |
|
|
TGA_WRITE_REG(0xff|(BT463_REG_ACC<<10), TGA_RAMDAC_REG); /* foreground */
|
717 |
|
|
TGA_WRITE_REG(0xff|(BT463_REG_ACC<<10), TGA_RAMDAC_REG); /* foreground */
|
718 |
|
|
TGA_WRITE_REG(0xff|(BT463_REG_ACC<<10), TGA_RAMDAC_REG); /* foreground */
|
719 |
|
|
|
720 |
|
|
TGA_WRITE_REG(0x00|(BT463_REG_ACC<<10), TGA_RAMDAC_REG);
|
721 |
|
|
TGA_WRITE_REG(0x00|(BT463_REG_ACC<<10), TGA_RAMDAC_REG);
|
722 |
|
|
TGA_WRITE_REG(0x00|(BT463_REG_ACC<<10), TGA_RAMDAC_REG);
|
723 |
|
|
|
724 |
|
|
TGA_WRITE_REG(0x00|(BT463_REG_ACC<<10), TGA_RAMDAC_REG);
|
725 |
|
|
TGA_WRITE_REG(0x00|(BT463_REG_ACC<<10), TGA_RAMDAC_REG);
|
726 |
|
|
TGA_WRITE_REG(0x00|(BT463_REG_ACC<<10), TGA_RAMDAC_REG);
|
727 |
|
|
|
728 |
|
|
/*
|
729 |
|
|
* finally, init the cursor shape
|
730 |
|
|
*/
|
731 |
|
|
temp = tga_fb_base - 1024; /* this assumes video starts at base
|
732 |
|
|
and base is beyond memory start*/
|
733 |
|
|
|
734 |
|
|
for (i = 0; i < 256; i++) {
|
735 |
|
|
writel(bt463_cursor_source[i], temp + i*4);
|
736 |
|
|
}
|
737 |
|
|
TGA_WRITE_REG(temp & 0x000fffff, TGA_CURSOR_BASE_REG);
|
738 |
|
|
}
|
739 |
|
|
|
740 |
|
|
/* finally, enable video scan & cursor
|
741 |
|
|
(and pray for the monitor... :-) */
|
742 |
|
|
TGA_WRITE_REG(0x05, TGA_VALID_REG); /* SCANNING and CURSOR */
|
743 |
|
|
|
744 |
|
|
/* oh, and set the globals describing the resolution... :-) */
|
745 |
|
|
tga_fb_width = 640 * tga_bpp;
|
746 |
|
|
tga_fb_height = 480;
|
747 |
|
|
tga_fb_stride = tga_fb_width / sizeof(int);
|
748 |
|
|
}
|
749 |
|
|
|
750 |
|
|
void
|
751 |
|
|
tga_clear_screen()
|
752 |
|
|
{
|
753 |
|
|
register int i, j;
|
754 |
|
|
register unsigned int *dst;
|
755 |
|
|
|
756 |
|
|
dst = (unsigned int *) ((unsigned long)tga_fb_base);
|
757 |
|
|
for (i = 0; i < tga_fb_height; i++, dst += tga_fb_stride) {
|
758 |
|
|
for (j = 0; j < tga_fb_stride; j++) {
|
759 |
|
|
writel(0, (dst+j));
|
760 |
|
|
}
|
761 |
|
|
}
|
762 |
|
|
|
763 |
|
|
/* also clear out the "shadow" screen memory */
|
764 |
|
|
memset((char *)video_mem_base, 0, (video_mem_term - video_mem_base));
|
765 |
|
|
}
|
766 |
|
|
|
767 |
|
|
/*
|
768 |
|
|
* tga_blitc
|
769 |
|
|
*
|
770 |
|
|
* Displays an ASCII character at a specified character cell
|
771 |
|
|
* position.
|
772 |
|
|
*
|
773 |
|
|
* Called from scr_writew() when the destination is
|
774 |
|
|
* the "shadow" screen
|
775 |
|
|
*/
|
776 |
|
|
static unsigned int
|
777 |
|
|
fontmask_bits[16] = {
|
778 |
|
|
0x00000000,
|
779 |
|
|
0xff000000,
|
780 |
|
|
0x00ff0000,
|
781 |
|
|
0xffff0000,
|
782 |
|
|
0x0000ff00,
|
783 |
|
|
0xff00ff00,
|
784 |
|
|
0x00ffff00,
|
785 |
|
|
0xffffff00,
|
786 |
|
|
0x000000ff,
|
787 |
|
|
0xff0000ff,
|
788 |
|
|
0x00ff00ff,
|
789 |
|
|
0xffff00ff,
|
790 |
|
|
0x0000ffff,
|
791 |
|
|
0xff00ffff,
|
792 |
|
|
0x00ffffff,
|
793 |
|
|
0xffffffff
|
794 |
|
|
};
|
795 |
|
|
|
796 |
|
|
int
|
797 |
|
|
tga_blitc(unsigned int charattr, unsigned long addr)
|
798 |
|
|
{
|
799 |
|
|
int row, col, temp, c, attrib;
|
800 |
|
|
register unsigned int fgmask, bgmask, data, rowbits;
|
801 |
|
|
register unsigned int *dst;
|
802 |
|
|
register unsigned char *font_row;
|
803 |
|
|
register int i, j, stride;
|
804 |
|
|
|
805 |
|
|
c = charattr & 0x00ff;
|
806 |
|
|
attrib = (charattr >> 8) & 0x00ff;
|
807 |
|
|
|
808 |
|
|
/*
|
809 |
|
|
* extract foreground and background indices
|
810 |
|
|
* NOTE: we always treat blink/underline bits as color for now...
|
811 |
|
|
*/
|
812 |
|
|
fgmask = attrib & 0x0f;
|
813 |
|
|
bgmask = (attrib >> 4) & 0x0f;
|
814 |
|
|
|
815 |
|
|
i = (c & 0xff) << 4; /* NOTE: assumption of 16 bytes per character bitmap */
|
816 |
|
|
|
817 |
|
|
/*
|
818 |
|
|
* calculate (row,col) from addr and video_mem_base
|
819 |
|
|
*/
|
820 |
|
|
temp = (addr - video_mem_base) >> 1;
|
821 |
|
|
col = temp % 80;
|
822 |
|
|
row = (temp - col) / 80;
|
823 |
|
|
|
824 |
|
|
/*
|
825 |
|
|
* calculate destination address
|
826 |
|
|
*/
|
827 |
|
|
dst = (unsigned int *) ( (unsigned long)tga_fb_base
|
828 |
|
|
+ ( row * tga_fb_width * TGA_F_HEIGHT_PADDED )
|
829 |
|
|
+ ( col * TGA_F_WIDTH * tga_bpp) );
|
830 |
|
|
|
831 |
|
|
font_row = (unsigned char *)&tga_builtin_font[i];
|
832 |
|
|
stride = tga_fb_stride;
|
833 |
|
|
|
834 |
|
|
if (tga_type == 0) { /* 8-plane */
|
835 |
|
|
|
836 |
|
|
fgmask = fgmask << 8 | fgmask;
|
837 |
|
|
fgmask |= fgmask << 16;
|
838 |
|
|
bgmask = bgmask << 8 | bgmask;
|
839 |
|
|
bgmask |= bgmask << 16;
|
840 |
|
|
|
841 |
|
|
for ( j = 0; j < TGA_F_HEIGHT_PADDED; j++ ) {
|
842 |
|
|
if (j < TGA_F_HEIGHT) {
|
843 |
|
|
rowbits = font_row[j];
|
844 |
|
|
} else {
|
845 |
|
|
/* dup the last n rows only if char > 0x7f */
|
846 |
|
|
if (c & 0x80)
|
847 |
|
|
rowbits = font_row[j-(TGA_F_HEIGHT_PADDED-TGA_F_HEIGHT)];
|
848 |
|
|
else
|
849 |
|
|
rowbits = 0;
|
850 |
|
|
}
|
851 |
|
|
data = fontmask_bits[(rowbits>>4)&0xf];
|
852 |
|
|
data = (data & fgmask) | (~data & bgmask);
|
853 |
|
|
writel(data, dst);
|
854 |
|
|
data = fontmask_bits[rowbits&0xf];
|
855 |
|
|
data = (data & fgmask) | (~data & bgmask);
|
856 |
|
|
writel(data, (dst+1));
|
857 |
|
|
dst += stride;
|
858 |
|
|
}
|
859 |
|
|
} else { /* 24-plane */
|
860 |
|
|
|
861 |
|
|
fgmask = (default_red[fgmask] << 16) |
|
862 |
|
|
(default_grn[fgmask] << 8) |
|
863 |
|
|
(default_blu[fgmask] << 0);
|
864 |
|
|
bgmask = (default_red[bgmask] << 16) |
|
865 |
|
|
(default_grn[bgmask] << 8) |
|
866 |
|
|
(default_blu[bgmask] << 0);
|
867 |
|
|
|
868 |
|
|
for ( i = 0; i < TGA_F_HEIGHT_PADDED; i++ ) {
|
869 |
|
|
if (i < TGA_F_HEIGHT) {
|
870 |
|
|
rowbits = font_row[i];
|
871 |
|
|
} else {
|
872 |
|
|
/* dup the last n rows only if char > 0x7f */
|
873 |
|
|
if (c & 0x80)
|
874 |
|
|
rowbits = font_row[i-(TGA_F_HEIGHT_PADDED-TGA_F_HEIGHT)];
|
875 |
|
|
else
|
876 |
|
|
rowbits = 0;
|
877 |
|
|
}
|
878 |
|
|
data = 1 << (TGA_F_WIDTH - 1);
|
879 |
|
|
for (j = 0; j < TGA_F_WIDTH; j++, data >>= 1) {
|
880 |
|
|
if (rowbits & data)
|
881 |
|
|
writel(fgmask, (dst+j));
|
882 |
|
|
else
|
883 |
|
|
writel(bgmask, (dst+j));
|
884 |
|
|
}
|
885 |
|
|
dst += stride;
|
886 |
|
|
}
|
887 |
|
|
}
|
888 |
|
|
return (0);
|
889 |
|
|
}
|
890 |
|
|
|
891 |
|
|
/*
|
892 |
|
|
* font table of displayable characters.
|
893 |
|
|
*/
|
894 |
|
|
char tga_builtin_font[]={
|
895 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
896 |
|
|
0x00, 0x00, 0x7e, 0x81, 0xa5, 0x81, 0x81, 0xbd, 0x99, 0x81, 0x81, 0x7e, 0x00, 0x00, 0x00, 0x00,
|
897 |
|
|
0x00, 0x00, 0x7e, 0xff, 0xdb, 0xff, 0xff, 0xc3, 0xe7, 0xff, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x00,
|
898 |
|
|
0x00, 0x00, 0x00, 0x00, 0x6c, 0xfe, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00,
|
899 |
|
|
0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
900 |
|
|
0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0xe7, 0xe7, 0xe7, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
901 |
|
|
0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
902 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
903 |
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xc3, 0xc3, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
904 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x42, 0x42, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00,
|
905 |
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x99, 0xbd, 0xbd, 0x99, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff,
|
906 |
|
|
0x00, 0x00, 0x1e, 0x0e, 0x1a, 0x32, 0x78, 0xcc, 0xcc, 0xcc, 0xcc, 0x78, 0x00, 0x00, 0x00, 0x00,
|
907 |
|
|
0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
908 |
|
|
0x00, 0x00, 0x3f, 0x33, 0x3f, 0x30, 0x30, 0x30, 0x30, 0x70, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00,
|
909 |
|
|
0x00, 0x00, 0x7f, 0x63, 0x7f, 0x63, 0x63, 0x63, 0x63, 0x67, 0xe7, 0xe6, 0xc0, 0x00, 0x00, 0x00,
|
910 |
|
|
0x00, 0x00, 0x00, 0x18, 0x18, 0xdb, 0x3c, 0xe7, 0x3c, 0xdb, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
911 |
|
|
0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfe, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00,
|
912 |
|
|
0x00, 0x02, 0x06, 0x0e, 0x1e, 0x3e, 0xfe, 0x3e, 0x1e, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00,
|
913 |
|
|
0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
|
914 |
|
|
0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
|
915 |
|
|
0x00, 0x00, 0x7f, 0xdb, 0xdb, 0xdb, 0x7b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x00, 0x00, 0x00, 0x00,
|
916 |
|
|
0x00, 0x7c, 0xc6, 0x60, 0x38, 0x6c, 0xc6, 0xc6, 0x6c, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00,
|
917 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
918 |
|
|
0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00,
|
919 |
|
|
0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
920 |
|
|
0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00,
|
921 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0c, 0xfe, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
922 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0xfe, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
923 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
924 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x66, 0xff, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
925 |
|
|
0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x7c, 0x7c, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
926 |
|
|
0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x7c, 0x7c, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
927 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
928 |
|
|
0x00, 0x00, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
929 |
|
|
0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
930 |
|
|
0x00, 0x00, 0x00, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00,
|
931 |
|
|
0x18, 0x18, 0x7c, 0xc6, 0xc2, 0xc0, 0x7c, 0x06, 0x06, 0x86, 0xc6, 0x7c, 0x18, 0x18, 0x00, 0x00,
|
932 |
|
|
0x00, 0x00, 0x00, 0x00, 0xc2, 0xc6, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0x86, 0x00, 0x00, 0x00, 0x00,
|
933 |
|
|
0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
934 |
|
|
0x00, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
935 |
|
|
0x00, 0x00, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00,
|
936 |
|
|
0x00, 0x00, 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00,
|
937 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
938 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
939 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00,
|
940 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
941 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
942 |
|
|
0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00,
|
943 |
|
|
0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xce, 0xde, 0xf6, 0xe6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
944 |
|
|
0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00,
|
945 |
|
|
0x00, 0x00, 0x7c, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
946 |
|
|
0x00, 0x00, 0x7c, 0xc6, 0x06, 0x06, 0x3c, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
947 |
|
|
0x00, 0x00, 0x0c, 0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x0c, 0x0c, 0x1e, 0x00, 0x00, 0x00, 0x00,
|
948 |
|
|
0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xfc, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
949 |
|
|
0x00, 0x00, 0x38, 0x60, 0xc0, 0xc0, 0xfc, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
950 |
|
|
0x00, 0x00, 0xfe, 0xc6, 0x06, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00,
|
951 |
|
|
0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
952 |
|
|
0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x06, 0x06, 0x0c, 0x78, 0x00, 0x00, 0x00, 0x00,
|
953 |
|
|
0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
|
954 |
|
|
0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00,
|
955 |
|
|
0x00, 0x00, 0x00, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x00,
|
956 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
957 |
|
|
0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00,
|
958 |
|
|
0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x0c, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
959 |
|
|
0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xde, 0xde, 0xde, 0xdc, 0xc0, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
960 |
|
|
0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00,
|
961 |
|
|
0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0x66, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
962 |
|
|
0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
963 |
|
|
0x00, 0x00, 0xf8, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00, 0x00, 0x00,
|
964 |
|
|
0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
965 |
|
|
0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
966 |
|
|
0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xde, 0xc6, 0xc6, 0x66, 0x3a, 0x00, 0x00, 0x00, 0x00,
|
967 |
|
|
0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00,
|
968 |
|
|
0x00, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
969 |
|
|
0x00, 0x00, 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0xcc, 0x78, 0x00, 0x00, 0x00, 0x00,
|
970 |
|
|
0x00, 0x00, 0xe6, 0x66, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00,
|
971 |
|
|
0x00, 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
972 |
|
|
0x00, 0x00, 0xc3, 0xe7, 0xff, 0xff, 0xdb, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x00, 0x00, 0x00, 0x00,
|
973 |
|
|
0x00, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00,
|
974 |
|
|
0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
975 |
|
|
0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
976 |
|
|
0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xde, 0x7c, 0x0c, 0x0e, 0x00, 0x00,
|
977 |
|
|
0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00,
|
978 |
|
|
0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x60, 0x38, 0x0c, 0x06, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
979 |
|
|
0x00, 0x00, 0xff, 0xdb, 0x99, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
980 |
|
|
0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
981 |
|
|
0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x66, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00,
|
982 |
|
|
0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xdb, 0xdb, 0xff, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
|
983 |
|
|
0x00, 0x00, 0xc3, 0xc3, 0x66, 0x3c, 0x18, 0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x00, 0x00, 0x00, 0x00,
|
984 |
|
|
0x00, 0x00, 0xc3, 0xc3, 0xc3, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
985 |
|
|
0x00, 0x00, 0xff, 0xc3, 0x86, 0x0c, 0x18, 0x30, 0x60, 0xc1, 0xc3, 0xff, 0x00, 0x00, 0x00, 0x00,
|
986 |
|
|
0x00, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
987 |
|
|
0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00,
|
988 |
|
|
0x00, 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
989 |
|
|
0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
990 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
991 |
|
|
0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
992 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
993 |
|
|
0x00, 0x00, 0xe0, 0x60, 0x60, 0x78, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
994 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
995 |
|
|
0x00, 0x00, 0x1c, 0x0c, 0x0c, 0x3c, 0x6c, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
996 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
997 |
|
|
0x00, 0x00, 0x38, 0x6c, 0x64, 0x60, 0xf0, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
998 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0xcc, 0x78, 0x00,
|
999 |
|
|
0x00, 0x00, 0xe0, 0x60, 0x60, 0x6c, 0x76, 0x66, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00,
|
1000 |
|
|
0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
1001 |
|
|
0x00, 0x00, 0x06, 0x06, 0x00, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c, 0x00,
|
1002 |
|
|
0x00, 0x00, 0xe0, 0x60, 0x60, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00,
|
1003 |
|
|
0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
1004 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0xff, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00,
|
1005 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
|
1006 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
1007 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, 0x00,
|
1008 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0x0c, 0x1e, 0x00,
|
1009 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x76, 0x66, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
1010 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
1011 |
|
|
0x00, 0x00, 0x10, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1c, 0x00, 0x00, 0x00, 0x00,
|
1012 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
1013 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0x66, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00,
|
1014 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xdb, 0xdb, 0xff, 0x66, 0x00, 0x00, 0x00, 0x00,
|
1015 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0xc3, 0x00, 0x00, 0x00, 0x00,
|
1016 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, 0x00,
|
1017 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xcc, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
1018 |
|
|
0x00, 0x00, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00,
|
1019 |
|
|
0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
1020 |
|
|
0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x18, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00,
|
1021 |
|
|
0x00, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1022 |
|
|
0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1023 |
|
|
0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x0c, 0x06, 0x7c, 0x00, 0x00,
|
1024 |
|
|
0x00, 0x00, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
1025 |
|
|
0x00, 0x0c, 0x18, 0x30, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
1026 |
|
|
0x00, 0x10, 0x38, 0x6c, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
1027 |
|
|
0x00, 0x00, 0xcc, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
1028 |
|
|
0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
1029 |
|
|
0x00, 0x38, 0x6c, 0x38, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
1030 |
|
|
0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x60, 0x60, 0x66, 0x3c, 0x0c, 0x06, 0x3c, 0x00, 0x00, 0x00,
|
1031 |
|
|
0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
1032 |
|
|
0x00, 0x00, 0xc6, 0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
1033 |
|
|
0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
1034 |
|
|
0x00, 0x00, 0x66, 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
1035 |
|
|
0x00, 0x18, 0x3c, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
1036 |
|
|
0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
1037 |
|
|
0x00, 0xc6, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00,
|
1038 |
|
|
0x38, 0x6c, 0x38, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00,
|
1039 |
|
|
0x18, 0x30, 0x60, 0x00, 0xfe, 0x66, 0x60, 0x7c, 0x60, 0x60, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
1040 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x3b, 0x1b, 0x7e, 0xd8, 0xdc, 0x77, 0x00, 0x00, 0x00, 0x00,
|
1041 |
|
|
0x00, 0x00, 0x3e, 0x6c, 0xcc, 0xcc, 0xfe, 0xcc, 0xcc, 0xcc, 0xcc, 0xce, 0x00, 0x00, 0x00, 0x00,
|
1042 |
|
|
0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
1043 |
|
|
0x00, 0x00, 0xc6, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
1044 |
|
|
0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
1045 |
|
|
0x00, 0x30, 0x78, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
1046 |
|
|
0x00, 0x60, 0x30, 0x18, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
1047 |
|
|
0x00, 0x00, 0xc6, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78, 0x00,
|
1048 |
|
|
0x00, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
1049 |
|
|
0x00, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
1050 |
|
|
0x00, 0x18, 0x18, 0x7e, 0xc3, 0xc0, 0xc0, 0xc0, 0xc3, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
1051 |
|
|
0x00, 0x38, 0x6c, 0x64, 0x60, 0xf0, 0x60, 0x60, 0x60, 0x60, 0xe6, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
1052 |
|
|
0x00, 0x00, 0xc3, 0x66, 0x3c, 0x18, 0xff, 0x18, 0xff, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
1053 |
|
|
0x00, 0xfc, 0x66, 0x66, 0x7c, 0x62, 0x66, 0x6f, 0x66, 0x66, 0x66, 0xf3, 0x00, 0x00, 0x00, 0x00,
|
1054 |
|
|
0x00, 0x0e, 0x1b, 0x18, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0xd8, 0x70, 0x00, 0x00,
|
1055 |
|
|
0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
1056 |
|
|
0x00, 0x0c, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
1057 |
|
|
0x00, 0x18, 0x30, 0x60, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
1058 |
|
|
0x00, 0x18, 0x30, 0x60, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
1059 |
|
|
0x00, 0x00, 0x76, 0xdc, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
|
1060 |
|
|
0x76, 0xdc, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00,
|
1061 |
|
|
0x00, 0x3c, 0x6c, 0x6c, 0x3e, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1062 |
|
|
0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1063 |
|
|
0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x60, 0xc0, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
|
1064 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1065 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1066 |
|
|
0x00, 0xc0, 0xc0, 0xc2, 0xc6, 0xcc, 0x18, 0x30, 0x60, 0xce, 0x9b, 0x06, 0x0c, 0x1f, 0x00, 0x00,
|
1067 |
|
|
0x00, 0xc0, 0xc0, 0xc2, 0xc6, 0xcc, 0x18, 0x30, 0x66, 0xce, 0x96, 0x3e, 0x06, 0x06, 0x00, 0x00,
|
1068 |
|
|
0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00,
|
1069 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x6c, 0xd8, 0x6c, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1070 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x6c, 0x36, 0x6c, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1071 |
|
|
0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44,
|
1072 |
|
|
0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa,
|
1073 |
|
|
0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77,
|
1074 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1075 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1076 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1077 |
|
|
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
1078 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
1079 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1080 |
|
|
0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x06, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
1081 |
|
|
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
1082 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
1083 |
|
|
0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x06, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1084 |
|
|
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1085 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1086 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1087 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1088 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1089 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1090 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1091 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1092 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1093 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1094 |
|
|
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
1095 |
|
|
0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1096 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
1097 |
|
|
0x36, 0x36, 0x36, 0x36, 0x36, 0xf7, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1098 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
1099 |
|
|
0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
1100 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1101 |
|
|
0x36, 0x36, 0x36, 0x36, 0x36, 0xf7, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
1102 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1103 |
|
|
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1104 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1105 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
1106 |
|
|
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1107 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1108 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1109 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
1110 |
|
|
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xff, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
1111 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1112 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1113 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1114 |
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
1115 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
1116 |
|
|
0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
|
1117 |
|
|
0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
|
1118 |
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1119 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0xd8, 0xd8, 0xd8, 0xdc, 0x76, 0x00, 0x00, 0x00, 0x00,
|
1120 |
|
|
0x00, 0x00, 0x78, 0xcc, 0xcc, 0xcc, 0xd8, 0xcc, 0xc6, 0xc6, 0xc6, 0xcc, 0x00, 0x00, 0x00, 0x00,
|
1121 |
|
|
0x00, 0x00, 0xfe, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00,
|
1122 |
|
|
0x00, 0x00, 0x00, 0x00, 0xfe, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00,
|
1123 |
|
|
0x00, 0x00, 0x00, 0xfe, 0xc6, 0x60, 0x30, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
1124 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00,
|
1125 |
|
|
0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xc0, 0x00, 0x00, 0x00,
|
1126 |
|
|
0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
1127 |
|
|
0x00, 0x00, 0x00, 0x7e, 0x18, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00,
|
1128 |
|
|
0x00, 0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00,
|
1129 |
|
|
0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0x6c, 0x6c, 0x6c, 0x6c, 0xee, 0x00, 0x00, 0x00, 0x00,
|
1130 |
|
|
0x00, 0x00, 0x1e, 0x30, 0x18, 0x0c, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
1131 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xdb, 0xdb, 0xdb, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1132 |
|
|
0x00, 0x00, 0x00, 0x03, 0x06, 0x7e, 0xdb, 0xdb, 0xf3, 0x7e, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00,
|
1133 |
|
|
0x00, 0x00, 0x1c, 0x30, 0x60, 0x60, 0x7c, 0x60, 0x60, 0x60, 0x30, 0x1c, 0x00, 0x00, 0x00, 0x00,
|
1134 |
|
|
0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00,
|
1135 |
|
|
0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1136 |
|
|
0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
|
1137 |
|
|
0x00, 0x00, 0x00, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
|
1138 |
|
|
0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
|
1139 |
|
|
0x00, 0x00, 0x0e, 0x1b, 0x1b, 0x1b, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
1140 |
|
|
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xd8, 0xd8, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00,
|
1141 |
|
|
0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7e, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1142 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1143 |
|
|
0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1144 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1145 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1146 |
|
|
0x00, 0x0f, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xec, 0x6c, 0x6c, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00,
|
1147 |
|
|
0x00, 0xd8, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1148 |
|
|
0x00, 0x70, 0xd8, 0x30, 0x60, 0xc8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1149 |
|
|
0x00, 0x00, 0x00, 0x00, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00,
|
1150 |
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
1151 |
|
|
};
|