OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [uclinux/] [uClinux-2.0.x/] [drivers/] [char/] [tga.c] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
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
};

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.