Back to home page

Quest Cross Reference

 
 

    


Warning, cross-references for /mame/src/quest/quest.c need to be fixed.

0001 
0002 #include "osdepend.h"
0003 #include "stdlib.h"
0004 #include "string.h"
0005 #include "syscall.h"
0006 
0007 #define NULL 0
0008 
0009 #define STATUS_ADDR     0x3da 
0010 
0011 int play_sound;
0012 
0013 static struct osd_bitmap *bitmap;
0014 static int first_free_pen;
0015 static char key[128];
0016 
0017 static unsigned char old_red[256];
0018 static unsigned char old_green[256];
0019 static unsigned char old_blue[256];
0020 
0021 #if 0
0022 static unsigned char g_8x8_font[2048] =
0023 {
0024     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0025     0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E,
0026     0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E,
0027     0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00,
0028     0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00,
0029     0x38, 0x7C, 0x38, 0xFE, 0xFE, 0x92, 0x10, 0x7C,
0030     0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C,
0031     0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00,
0032     0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF,
0033     0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00,
0034     0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF,
0035     0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78,
0036     0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18,
0037     0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0,
0038     0x7F, 0x63, 0x7F, 0x63, 0x63, 0x67, 0xE6, 0xC0,
0039     0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99,
0040     0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00,
0041     0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00,
0042     0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, 0x18, 
0043     0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00, 
0044     0x7F, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00, 
0045     0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0x86, 0xFC, 
0046     0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00, 
0047     0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF,
0048     0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00,
0049     0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00,
0050     0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, 
0051     0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00, 
0052     0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, 
0053     0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00, 
0054     0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00, 
0055     0x00, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00, 
0056     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0057     0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00,
0058     0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 
0059     0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00, 
0060     0x18, 0x7E, 0xC0, 0x7C, 0x06, 0xFC, 0x18, 0x00, 
0061     0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00,
0062     0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00,
0063     0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
0064     0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00, 
0065     0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00,
0066     0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, 
0067     0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 
0068     0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30,
0069     0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
0070     0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
0071     0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00,
0072     0x7C, 0xCE, 0xDE, 0xF6, 0xE6, 0xC6, 0x7C, 0x00, 
0073     0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xFC, 0x00, 
0074     0x78, 0xCC, 0x0C, 0x38, 0x60, 0xCC, 0xFC, 0x00, 
0075     0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00, 
0076     0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x1E, 0x00, 
0077     0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00, 
0078     0x38, 0x60, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00,
0079     0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00,
0080     0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00, 
0081     0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0x18, 0x70, 0x00, 
0082     0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 
0083     0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, 
0084     0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00, 
0085     0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, 
0086     0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00,
0087     0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00, 
0088     0x7C, 0xC6, 0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00, 
0089     0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0x00, 
0090     0xFC, 0x66, 0x66, 0x7C, 0x66, 0x66, 0xFC, 0x00, 
0091     0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0x66, 0x3C, 0x00, 
0092     0xF8, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, 
0093     0xFE, 0x62, 0x68, 0x78, 0x68, 0x62, 0xFE, 0x00, 
0094     0xFE, 0x62, 0x68, 0x78, 0x68, 0x60, 0xF0, 0x00,
0095     0x3C, 0x66, 0xC0, 0xC0, 0xCE, 0x66, 0x3A, 0x00, 
0096     0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00, 
0097     0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 
0098     0x1E, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, 
0099     0xE6, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00, 
0100     0xF0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00, 
0101     0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00,
0102     0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, 
0103     0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 
0104     0xFC, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00, 
0105     0x7C, 0xC6, 0xC6, 0xC6, 0xD6, 0x7C, 0x0E, 0x00, 
0106     0xFC, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0xE6, 0x00,
0107     0x7C, 0xC6, 0xE0, 0x78, 0x0E, 0xC6, 0x7C, 0x00, 
0108     0xFC, 0xB4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
0109     0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0x00, 
0110     0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00,
0111     0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00, 
0112     0xC6, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0xC6, 0x00, 
0113     0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x78, 0x00,
0114     0xFE, 0xC6, 0x8C, 0x18, 0x32, 0x66, 0xFE, 0x00,
0115     0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00,
0116     0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, 0x00,
0117     0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00, 
0118     0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, 
0119     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 
0120     0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 
0121     0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, 
0122     0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66, 0xDC, 0x00, 
0123     0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00,
0124     0x1C, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00,
0125     0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, 
0126     0x38, 0x6C, 0x64, 0xF0, 0x60, 0x60, 0xF0, 0x00, 
0127     0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, 
0128     0xE0, 0x60, 0x6C, 0x76, 0x66, 0x66, 0xE6, 0x00, 
0129     0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, 
0130     0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 
0131     0xE0, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0xE6, 0x00,
0132     0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 
0133     0x00, 0x00, 0xCC, 0xFE, 0xFE, 0xD6, 0xD6, 0x00, 
0134     0x00, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 
0135     0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 
0136     0x00, 0x00, 0xDC, 0x66, 0x66, 0x7C, 0x60, 0xF0, 
0137     0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0x1E, 
0138     0x00, 0x00, 0xDC, 0x76, 0x62, 0x60, 0xF0, 0x00, 
0139     0x00, 0x00, 0x7C, 0xC0, 0x70, 0x1C, 0xF8, 0x00,
0140     0x10, 0x30, 0xFC, 0x30, 0x30, 0x34, 0x18, 0x00, 
0141     0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 
0142     0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, 
0143     0x00, 0x00, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00, 
0144     0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00, 
0145     0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, 
0146     0x00, 0x00, 0xFC, 0x98, 0x30, 0x64, 0xFC, 0x00,
0147     0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, 0x00, 
0148     0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, 
0149     0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, 0x00, 
0150     0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0151     0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00,
0152     0x7C, 0xC6, 0xC0, 0xC6, 0x7C, 0x0C, 0x06, 0x7C, 
0153     0x00, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
0154     0x1C, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, 
0155     0x7E, 0x81, 0x3C, 0x06, 0x3E, 0x66, 0x3B, 0x00,
0156     0xCC, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, 
0157     0xE0, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, 
0158     0x30, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
0159     0x00, 0x00, 0x7C, 0xC6, 0xC0, 0x78, 0x0C, 0x38,
0160     0x7E, 0x81, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
0161     0xCC, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
0162     0xE0, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, 
0163     0xCC, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, 
0164     0x7C, 0x82, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, 
0165     0xE0, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, 
0166     0xC6, 0x10, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 
0167     0x30, 0x30, 0x00, 0x78, 0xCC, 0xFC, 0xCC, 0x00, 
0168     0x1C, 0x00, 0xFC, 0x60, 0x78, 0x60, 0xFC, 0x00,
0169     0x00, 0x00, 0x7F, 0x0C, 0x7F, 0xCC, 0x7F, 0x00,
0170     0x3E, 0x6C, 0xCC, 0xFE, 0xCC, 0xCC, 0xCE, 0x00, 
0171     0x78, 0x84, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, 
0172     0x00, 0xCC, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, 
0173     0x00, 0xE0, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, 
0174     0x78, 0x84, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 
0175     0x00, 0xE0, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 
0176     0x00, 0xCC, 0x00, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
0177     0xC3, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x00, 
0178     0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 
0179     0x18, 0x18, 0x7E, 0xC0, 0xC0, 0x7E, 0x18, 0x18, 
0180     0x38, 0x6C, 0x64, 0xF0, 0x60, 0xE6, 0xFC, 0x00, 
0181     0xCC, 0xCC, 0x78, 0x30, 0xFC, 0x30, 0xFC, 0x30, 
0182     0xF8, 0xCC, 0xCC, 0xFA, 0xC6, 0xCF, 0xC6, 0xC3, 
0183     0x0E, 0x1B, 0x18, 0x3C, 0x18, 0x18, 0xD8, 0x70, 
0184     0x1C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
0185     0x38, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, 
0186     0x00, 0x1C, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, 
0187     0x00, 0x1C, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 
0188     0x00, 0xF8, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0x00, 
0189     0xFC, 0x00, 0xCC, 0xEC, 0xFC, 0xDC, 0xCC, 0x00, 
0190     0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00, 
0191     0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00,
0192     0x18, 0x00, 0x18, 0x18, 0x30, 0x66, 0x3C, 0x00, 
0193     0x00, 0x00, 0x00, 0xFC, 0xC0, 0xC0, 0x00, 0x00, 
0194     0x00, 0x00, 0x00, 0xFC, 0x0C, 0x0C, 0x00, 0x00, 
0195     0xC6, 0xCC, 0xD8, 0x36, 0x6B, 0xC2, 0x84, 0x0F, 
0196     0xC3, 0xC6, 0xCC, 0xDB, 0x37, 0x6D, 0xCF, 0x03,
0197     0x18, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x18, 0x00, 
0198     0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00,
0199     0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00, 
0200     0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88,
0201     0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 
0202     0xDB, 0xF6, 0xDB, 0x6F, 0xDB, 0x7E, 0xD7, 0xED, 
0203     0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
0204     0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18,
0205     0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18,
0206     0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36,
0207     0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36, 
0208     0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, 
0209     0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36, 
0210     0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 
0211     0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, 
0212     0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, 
0213     0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00,
0214     0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00,
0215     0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, 
0216     0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, 
0217     0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, 
0218     0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, 
0219     0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, 
0220     0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 
0221     0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18,
0222     0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, 
0223     0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, 
0224     0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00, 
0225     0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36, 
0226     0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, 
0227     0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, 
0228     0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 
0229     0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00,
0230     0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, 
0231     0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 
0232     0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, 
0233     0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, 
0234     0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, 
0235     0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, 
0236     0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00,
0237     0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, 
0238     0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36, 
0239     0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36,
0240     0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18, 
0241     0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00,
0242     0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, 
0243     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0244     0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 
0245     0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
0246     0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 
0247     0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 
0248     0x00, 0x00, 0x76, 0xDC, 0xC8, 0xDC, 0x76, 0x00,
0249     0x00, 0x78, 0xCC, 0xF8, 0xCC, 0xF8, 0xC0, 0xC0,
0250     0x00, 0xFC, 0xCC, 0xC0, 0xC0, 0xC0, 0xC0, 0x00,
0251     0x00, 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x00,
0252     0xFC, 0xCC, 0x60, 0x30, 0x60, 0xCC, 0xFC, 0x00,
0253     0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0x70, 0x00,
0254     0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xC0,
0255     0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x00,
0256     0xFC, 0x30, 0x78, 0xCC, 0xCC, 0x78, 0x30, 0xFC,
0257     0x38, 0x6C, 0xC6, 0xFE, 0xC6, 0x6C, 0x38, 0x00,
0258     0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x6C, 0xEE, 0x00,
0259     0x1C, 0x30, 0x18, 0x7C, 0xCC, 0xCC, 0x78, 0x00,
0260     0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, 0x00,
0261     0x06, 0x0C, 0x7E, 0xDB, 0xDB, 0x7E, 0x60, 0xC0,
0262     0x38, 0x60, 0xC0, 0xF8, 0xC0, 0x60, 0x38, 0x00,
0263     0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x00,
0264     0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00,
0265     0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x7E, 0x00,
0266     0x60, 0x30, 0x18, 0x30, 0x60, 0x00, 0xFC, 0x00,
0267     0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0xFC, 0x00,
0268     0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18,
0269     0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0x70,
0270     0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00,
0271     0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00,
0272     0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00,
0273     0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
0274     0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
0275     0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, 0x1C,
0276     0x58, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00,
0277     0x70, 0x98, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00,
0278     0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00,
0279     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
0280 };
0281 #endif
0282 
0283 static unsigned char g_8x16_font[4096] =
0284 {
0285     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0286     0x00, 0x00, 0x7E, 0x81, 0xA5, 0x81, 0x81, 0xBD, 0x99, 0x81, 0x81, 0x7E, 0x00, 0x00, 0x00, 0x00, 
0287     0x00, 0x00, 0x7E, 0xFF, 0xDB, 0xFF, 0xFF, 0xC3, 0xE7, 0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, 0x00, 
0288     0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 
0289     0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0290     0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0xE7, 0xE7, 0xE7, 0x99, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 
0291     0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x7E, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
0292     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0293     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0294     0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 
0295     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
0296     0x00, 0x00, 0x1E, 0x0E, 0x1A, 0x32, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, 
0297     0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
0298     0x00, 0x00, 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x30, 0x30, 0x70, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00,
0299     0x00, 0x00, 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x63, 0x63, 0x67, 0xE7, 0xE6, 0xC0, 0x00, 0x00, 0x00, 
0300     0x00, 0x00, 0x00, 0x18, 0x18, 0xDB, 0x3C, 0xE7, 0x3C, 0xDB, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 
0301     0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFE, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 
0302     0x00, 0x02, 0x06, 0x0E, 0x1E, 0x3E, 0xFE, 0x3E, 0x1E, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 
0303     0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00,
0304     0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
0305     0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 
0306     0x00, 0x7C, 0xC6, 0x60, 0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00, 
0307     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00,
0308     0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 
0309     0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 
0310     0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 
0311     0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0312     0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0313     0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0314     0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6C, 0xFE, 0x6C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0315     0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x7C, 0x7C, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 
0316     0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x7C, 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 
0317     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0318     0x00, 0x00, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 
0319     0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0320     0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE, 0x6C, 0x6C, 0x6C, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 
0321     0x18, 0x18, 0x7C, 0xC6, 0xC2, 0xC0, 0x7C, 0x06, 0x86, 0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00, 0x00, 
0322     0x00, 0x00, 0x00, 0x00, 0xC2, 0xC6, 0x0C, 0x18, 0x30, 0x60, 0xC6, 0x86, 0x00, 0x00, 0x00, 0x00,
0323     0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 
0324     0x00, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0325     0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, 
0326     0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 
0327     0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0328     0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0329     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00,
0330     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0331     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 
0332     0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 
0333     0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xCE, 0xD6, 0xD6, 0xE6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0334     0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00,
0335     0x00, 0x00, 0x7C, 0xC6, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 
0336     0x00, 0x00, 0x7C, 0xC6, 0x06, 0x06, 0x3C, 0x06, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
0337     0x00, 0x00, 0x0C, 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x0C, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00, 
0338     0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xFC, 0x0E, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
0339     0x00, 0x00, 0x38, 0x60, 0xC0, 0xC0, 0xFC, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0340     0x00, 0x00, 0xFE, 0xC6, 0x06, 0x06, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 
0341     0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0342     0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x06, 0x06, 0x0C, 0x78, 0x00, 0x00, 0x00, 0x00, 
0343     0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
0344     0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 
0345     0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00, 
0346     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0347     0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 
0348     0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x0C, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
0349     0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xDE, 0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0350     0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 
0351     0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x66, 0x66, 0xFC, 0x00, 0x00, 0x00, 0x00, 
0352     0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, 0xC0, 0xC2, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00,
0353     0x00, 0x00, 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, 0x00, 0x00, 0x00, 
0354     0x00, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, 
0355     0x00, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, 
0356     0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xDE, 0xC6, 0xC6, 0x66, 0x3A, 0x00, 0x00, 0x00, 0x00, 
0357     0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 
0358     0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 
0359     0x00, 0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, 
0360     0x00, 0x00, 0xE6, 0x66, 0x6C, 0x6C, 0x78, 0x78, 0x6C, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, 
0361     0x00, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, 
0362     0x00, 0x00, 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 
0363     0x00, 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE, 0xCE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 
0364     0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, 
0365     0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, 
0366     0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xDE, 0x7C, 0x0C, 0x0E, 0x00, 0x00, 
0367     0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
0368     0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x60, 0x38, 0x0C, 0x06, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0369     0x00, 0x00, 0x7E, 0x7E, 0x5A, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 
0370     0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0371     0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 
0372     0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 
0373     0x00, 0x00, 0xC6, 0xC6, 0x6C, 0x6C, 0x38, 0x38, 0x6C, 0x6C, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
0374     0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
0375     0x00, 0x00, 0xFE, 0xC6, 0x86, 0x0C, 0x18, 0x30, 0x60, 0xC2, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 
0376     0x00, 0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00, 0x00, 0x00, 
0377     0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 
0378     0x00, 0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00, 0x00, 0x00, 
0379     0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0380     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 
0381     0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0382     0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 
0383     0x00, 0x00, 0xE0, 0x60, 0x60, 0x78, 0x6C, 0x66, 0x66, 0x66, 0x66, 0xDC, 0x00, 0x00, 0x00, 0x00,
0384     0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0385     0x00, 0x00, 0x1C, 0x0C, 0x0C, 0x3C, 0x6C, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 
0386     0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0387     0x00, 0x00, 0x38, 0x6C, 0x64, 0x60, 0xF0, 0x60, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, 
0388     0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xCC, 0x78, 0x00,
0389     0x00, 0x00, 0xE0, 0x60, 0x60, 0x6C, 0x76, 0x66, 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, 
0390     0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 
0391     0x00, 0x00, 0x06, 0x06, 0x00, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3C, 0x00, 
0392     0x00, 0x00, 0xE0, 0x60, 0x60, 0x66, 0x6C, 0x78, 0x78, 0x6C, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, 
0393     0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
0394     0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xFE, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0x00, 0x00, 0x00, 0x00, 
0395     0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 
0396     0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0397     0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00,
0398     0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0x0C, 0x1E, 0x00, 
0399     0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x76, 0x62, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, 
0400     0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0x60, 0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0401     0x00, 0x00, 0x10, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00, 
0402     0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 
0403     0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 
0404     0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00, 0x00, 0x00, 0x00, 
0405     0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x38, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, 
0406     0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0xF8, 0x00, 
0407     0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xCC, 0x18, 0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 
0408     0x00, 0x00, 0x0E, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0E, 0x00, 0x00, 0x00, 0x00, 
0409     0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 
0410     0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00,
0411     0x00, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0412     0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
0413     0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, 0xC2, 0x66, 0x3C, 0x0C, 0x06, 0x7C, 0x00, 0x00, 
0414     0x00, 0x00, 0xCC, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 
0415     0x00, 0x0C, 0x18, 0x30, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0416     0x00, 0x10, 0x38, 0x6C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 
0417     0x00, 0x00, 0xCC, 0xCC, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 
0418     0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
0419     0x00, 0x38, 0x6C, 0x38, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
0420     0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x60, 0x60, 0x66, 0x3C, 0x0C, 0x06, 0x3C, 0x00, 0x00, 0x00, 
0421     0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0422     0x00, 0x00, 0xC6, 0xC6, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0423     0x00, 0x60, 0x30, 0x18, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0424     0x00, 0x00, 0x66, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
0425     0x00, 0x18, 0x3C, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 
0426     0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
0427     0x00, 0xC6, 0xC6, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 
0428     0x38, 0x6C, 0x38, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
0429     0x18, 0x30, 0x60, 0x00, 0xFE, 0x66, 0x60, 0x7C, 0x60, 0x60, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, 
0430     0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x76, 0x36, 0x7E, 0xD8, 0xD8, 0x6E, 0x00, 0x00, 0x00, 0x00, 
0431     0x00, 0x00, 0x3E, 0x6C, 0xCC, 0xCC, 0xFE, 0xCC, 0xCC, 0xCC, 0xCC, 0xCE, 0x00, 0x00, 0x00, 0x00, 
0432     0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0433     0x00, 0x00, 0xC6, 0xC6, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
0434     0x00, 0x60, 0x30, 0x18, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
0435     0x00, 0x30, 0x78, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 
0436     0x00, 0x60, 0x30, 0x18, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 
0437     0x00, 0x00, 0xC6, 0xC6, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0x78, 0x00, 
0438     0x00, 0xC6, 0xC6, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00,
0439     0x00, 0xC6, 0xC6, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0440     0x00, 0x18, 0x18, 0x3C, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 
0441     0x00, 0x38, 0x6C, 0x64, 0x60, 0xF0, 0x60, 0x60, 0x60, 0x60, 0xE6, 0xFC, 0x00, 0x00, 0x00, 0x00, 
0442     0x00, 0x00, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
0443     0x00, 0xF8, 0xCC, 0xCC, 0xF8, 0xC4, 0xCC, 0xDE, 0xCC, 0xCC, 0xCC, 0xC6, 0x00, 0x00, 0x00, 0x00, 
0444     0x00, 0x0E, 0x1B, 0x18, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0x70, 0x00, 0x00, 
0445     0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 
0446     0x00, 0x0C, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 
0447     0x00, 0x18, 0x30, 0x60, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0448     0x00, 0x18, 0x30, 0x60, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 
0449     0x00, 0x00, 0x76, 0xDC, 0x00, 0xDC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 
0450     0x76, 0xDC, 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE, 0xCE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 
0451     0x00, 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0452     0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0453     0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x60, 0xC0, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 
0454     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 
0455     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 
0456     0x00, 0xC0, 0xC0, 0xC2, 0xC6, 0xCC, 0x18, 0x30, 0x60, 0xCE, 0x93, 0x06, 0x0C, 0x1F, 0x00, 0x00, 
0457     0x00, 0xC0, 0xC0, 0xC2, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xCE, 0x9A, 0x3F, 0x06, 0x0F, 0x00, 0x00,
0458     0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 
0459     0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0460     0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0461     0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 
0462     0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 
0463     0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77,
0464     0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
0465     0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 
0466     0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 
0467     0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 
0468     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 
0469     0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
0470     0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 
0471     0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
0472     0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 
0473     0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0474     0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0475     0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0476     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 
0477     0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0478     0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0479     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
0480     0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 
0481     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0482     0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 
0483     0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
0484     0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 
0485     0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0486     0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 
0487     0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0488     0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 
0489     0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 
0490     0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0491     0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 
0492     0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0493     0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0494     0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 
0495     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 
0496     0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0497     0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0498     0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 
0499     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 
0500     0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 
0501     0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 
0502     0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0503     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 
0504     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
0505     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
0506     0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 
0507     0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 
0508     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0509     0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0xD8, 0xD8, 0xD8, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00,
0510     0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xC6, 0xFC, 0xC6, 0xC6, 0xFC, 0xC0, 0xC0, 0xC0, 0x00, 0x00,
0511     0x00, 0x00, 0xFE, 0xC6, 0xC6, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00,
0512     0x00, 0x00, 0x00, 0x00, 0x80, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00,
0513     0x00, 0x00, 0x00, 0xFE, 0xC6, 0x60, 0x30, 0x18, 0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00,
0514     0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00,
0515     0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00,
0516     0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
0517     0x00, 0x00, 0x00, 0x7E, 0x18, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00,
0518     0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00,
0519     0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x6C, 0x6C, 0x6C, 0xEE, 0x00, 0x00, 0x00, 0x00,
0520     0x00, 0x00, 0x1E, 0x30, 0x18, 0x0C, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00,
0521     0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0xDB, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0522     0x00, 0x00, 0x00, 0x03, 0x06, 0x7E, 0xCF, 0xDB, 0xF3, 0x7E, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00,
0523     0x00, 0x00, 0x1C, 0x30, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x60, 0x30, 0x1C, 0x00, 0x00, 0x00, 0x00,
0524     0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
0525     0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
0526     0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00,
0527     0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
0528     0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
0529     0x00, 0x00, 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
0530     0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00,
0531     0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
0532     0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0533     0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0534     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0535     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0536     0x00, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x6C, 0x3C, 0x1C, 0x00, 0x00, 0x00, 0x00,
0537     0x00, 0xD8, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0538     0x00, 0x70, 0x98, 0x30, 0x60, 0xC8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0539     0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00,
0540     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
0541 };
0542 
0543 
0544 typedef struct {
0545   unsigned short port;
0546   unsigned char index;
0547   unsigned char value;
0548 } Register;
0549 
0550 static Register scr224x288[] = {
0551     { 0x3c2, 0x00, 0xe3},{ 0x3d4, 0x00, 0x5f},{ 0x3d4, 0x01, 0x37},
0552     { 0x3d4, 0x02, 0x38},{ 0x3d4, 0x03, 0x82},{ 0x3d4, 0x04, 0x4a},
0553     { 0x3d4, 0x05, 0x9a},{ 0x3d4, 0x06, 0x55},{ 0x3d4, 0x07, 0xf0},
0554     { 0x3d4, 0x08, 0x00},{ 0x3d4, 0x09, 0x61},{ 0x3d4, 0x10, 0x40},
0555     { 0x3d4, 0x11, 0x2c},{ 0x3d4, 0x12, 0x3f},{ 0x3d4, 0x13, 0x1c},
0556     { 0x3d4, 0x14, 0x40},{ 0x3d4, 0x15, 0x40},{ 0x3d4, 0x16, 0x4a},
0557     { 0x3d4, 0x17, 0xa3},{ 0x3c4, 0x01, 0x01},{ 0x3c4, 0x04, 0x0e},
0558     { 0x3ce, 0x05, 0x40},{ 0x3ce, 0x06, 0x05},{ 0x3c0, 0x10, 0x41},
0559     { 0x3c0, 0x13, 0x0}
0560 };
0561 
0562 
0563 static inline unsigned char inb( unsigned short usPort ) {
0564 
0565     unsigned char uch;
0566     
0567     asm volatile( "inb %1,%0" : "=a" (uch) : "Nd" (usPort) );
0568     return uch;
0569 }
0570 
0571 
0572 static inline void outb( unsigned char uch, unsigned short usPort ) {
0573 
0574     asm volatile( "outb %0,%1" : : "a" (uch), "Nd" (usPort) );
0575 }
0576 
0577 
0578 static void set_bios_mode_13h( void ) {
0579 
0580   int i;
0581 
0582   char sequencer[] = { 0x03, 0x01, 0x0F, 0x00, 0x0E };
0583   char attribute[] = { 0x41, 0x00, 0x0F, 0x03, 0x00 };
0584   char graphics[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F, 0xFF };
0585   char crt[] = { 0x5F, 0x4F, 0x50, 0x82, 0x54, 0x80, 0xBF, 0x1F, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x9C, 0x0E, 0x8F, 0x28, 0x40, 0x96, 0xB9, 0xA3, 0xFF };
0586 
0587 
0588   /* Setup sequencer register values */
0589   for( i = 0; i < 5; i++ ) {
0590     outb( i, 0x3C4 );
0591     outb( sequencer[i], 0x3C5 );
0592   }
0593 
0594   /* Setup atttribute controller register values */
0595   for( i = 0; i < 5; i++ ) {
0596     inb( STATUS_ADDR );     /* Reset flip-flop to index mode for next
0597                  * write to port 0x3C0 */
0598     outb( ( i + 0x10 ) | 0x20, 0x3C0 );
0599     outb( attribute[i], 0x3C0 );
0600   }
0601 
0602   /* Setup graphics controller register values */
0603   for( i = 0; i < 9; i++ ) {
0604     outb( i, 0x3CE );
0605     outb( graphics[i], 0x3CF );
0606   }
0607 
0608   /* Setup CRT controller register values */
0609   for( i = 0; i < 25; i++ ) {
0610     outb( i, 0x3D4 );
0611     outb( crt[i], 0x3D5 );
0612   }
0613   
0614   /* Misc output write register */
0615   outb( 0x63, 0x3C2 );
0616 }
0617 
0618 
0619 static void set_bios_mode_03h( void ) {
0620 
0621   int i;
0622 
0623   char sequencer[] = { 0x03, 0x00, 0x03, 0x00, 0x02 };
0624   char attribute[] = { 0x0C, 0x00, 0x0F, 0x08, 0x00 };
0625   char graphics[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0E, 0x00, 0xFF }; 
0626   char crt[] = { 0x5F, 0x4F, 0x50, 0x82, 0x55, 0x81, 0xBF, 0x1F, 0x00, 0x4F, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x50, 0x9C, 0x0E, 0x8F, 0x28, 0x1F, 0x96, 0xB9, 0xA3, 0xFF };
0627  
0628   /* Setup sequencer register values */
0629   for( i = 0; i < 5; i++ ) {
0630     outb( i, 0x3C4 );
0631     outb( sequencer[i], 0x3C5 );
0632   }
0633 
0634   /* Setup atttribute controller register values */
0635   for( i = 0; i < 5; i++ ) {
0636       inb( STATUS_ADDR );   /* Reset flip-flop to index mode for next
0637                  * write to port 0x3C0 */
0638       outb( ( i + 0x10 ) | 0x20, 0x3C0 );
0639       outb( attribute[i], 0x3C0 );
0640   }
0641 
0642   /* Setup graphics controller register values */
0643   for( i = 0; i < 9; i++ ) {
0644     outb( i, 0x3CE );
0645     outb( graphics[i], 0x3CF );
0646   }
0647 
0648   /* Setup CRT controller register values */
0649   for( i = 0; i < 25; i++ ) {
0650     outb( i, 0x3D4 );
0651     outb( crt[i], 0x3D5 );
0652   }
0653   
0654   /* Misc output write register */
0655   outb( 0x67, 0x3C2 );
0656 }
0657 
0658 
0659 /* This is used to change video mode -- for now, we use it to switch to
0660    224x288 */
0661 static void update_video_mode( Register *regs, int length ) {
0662 
0663   int i;
0664 
0665   for( i = 0; i < length; i++ ) {
0666     if( regs[i].port == 0x3C2 )
0667       outb( regs[i].value, regs[i].port );
0668     else {
0669       if( regs[i].port == 0x3C0 ) {
0670     inb( STATUS_ADDR );
0671     outb(  regs[i].index | 0x20, regs[i].port );
0672     outb(  regs[i].value, regs[i].port );
0673       }
0674       else {
0675     outb( regs[i].index, regs[i].port );
0676     outb( regs[i].value, regs[i].port+1 );
0677       }
0678     }
0679   }
0680   /* Need bit 5 of attribute controller set to enable display */
0681   outb( 0x34, 0x3C0 );
0682   inb( 0x3C0 );         /* Need a pairwise set of ops on each port,
0683                    hence we do this call here */
0684 }
0685 
0686 
0687 static int poll_keyboard( void ) {
0688   return getcode ();
0689 }
0690 
0691 int osd_init( int argc,char **argv ) {
0692 
0693   return 0;
0694 }
0695 
0696 int osd_key_pressed (int keycode) {
0697   
0698   int c;
0699 
0700   c = poll_keyboard();
0701   if( c & 0x80 )        /* Release key scan code */
0702     key[c & 0x7F] = 0;
0703   else
0704     key[c & 0x7F] = 1;
0705 
0706   return key[c & 0x7F];
0707 }
0708 
0709 
0710 /* Wait for a key press and return the keycode */
0711 int osd_read_key( void ) {
0712   int c;
0713   do {
0714     c = poll_keyboard();
0715     if( c & 0x80 )      /* Release key scan code */
0716       key[c & 0x7F] = 0;
0717     else
0718       key[c & 0x7F] = 1;
0719   } while (c & 0x80);           /* while a "break" code */
0720 
0721   return c;
0722 }
0723 
0724 
0725 /* Create a bitmap. --??-- MSDOS version calls clearbitmap() allegro library
0726    routine to appropriately initialize it to the background color. */
0727 
0728 struct osd_bitmap *osd_create_bitmap( int width,int height ) {
0729 
0730   struct osd_bitmap *bitmap;
0731   
0732   if ((bitmap = malloc( sizeof( struct osd_bitmap ) + 
0733             (height-1)*sizeof(unsigned char *))) != 0) {
0734     int i;
0735     unsigned char *bm;
0736 
0737     bitmap->width = width;
0738     bitmap->height = height;
0739     if ((bm = malloc( width * height * sizeof(unsigned char)) ) == 0) {
0740       free( bitmap );
0741       return 0;
0742     }
0743 
0744     for( i = 0;i < height;i++ )
0745       bitmap->line[i] = &bm[i * width];
0746 
0747     bitmap->private = bm;
0748 
0749     /* clearbitmap(bitmap); --??-- MSDOS calls this */
0750   }
0751 
0752   return bitmap;
0753 }
0754 
0755 
0756 void osd_free_bitmap( struct osd_bitmap *bitmap ) {
0757 
0758   if( bitmap ) {
0759     free( bitmap->private );
0760     free( bitmap );
0761   }
0762 }
0763 
0764 
0765 /* Create a display screen, or window, large enough to accomodate a bitmap
0766    of the given dimensions. Here, we force the resolution to be 224x288 by
0767    modifying VGA BIOS mode 13h
0768 */
0769 struct osd_bitmap *osd_create_display( int width,int height ) {
0770   
0771   /* Set display register values temporarily for BIOS mode 13h: 320x200x256
0772      colours */
0773   set_bios_mode_13h();
0774   
0775   /* Now, modify settings to force 224x288 widthxheight */
0776   update_video_mode( scr224x288, sizeof( scr224x288 ) / sizeof( Register ));
0777   bitmap = osd_create_bitmap( width, height );
0778   
0779   return bitmap;
0780 }
0781 
0782 
0783 void osd_close_display( void ) {
0784 
0785   int i;
0786   unsigned char *buf = g_8x16_font;
0787   int pen = first_free_pen;
0788   first_free_pen = 0;
0789 
0790   for( i = 0; i < pen; i++ )
0791       osd_obtain_pen( old_red[ i ], old_green[ i ], old_blue[ i ] ); 
0792 
0793   /* Turn off even-odd addressing (set flat addressing) */
0794   outb( 0x04, 0x3C4 );      /* sequencer index 0x04 */
0795   outb( 0x06, 0x3C5 );      /* sequencer data 0x06 */
0796 
0797   /* Set plane 2 by first setting the read plane...*/
0798   outb( 0x04, 0x3CE );
0799   outb( 0x02, 0x3CF );
0800   /* ...and then setting the write plane */
0801   outb( 0x02, 0x3C4 );
0802   outb( 0x04, 0x3C5 );
0803 
0804   /* Here, we write the fontmap (for 8x16 fonts) to plane 2 of video RAM so
0805    * that we have valid fonts on return to text mode */
0806   for( i = 0; i < 256; i++ ) {
0807     memcpy( (void *)( 0x200000 + i * 32 ), buf, 16 );
0808     buf += 16;
0809   }
0810 
0811   set_bios_mode_03h();
0812   osd_free_bitmap( bitmap );
0813 }
0814 
0815 
0816 int osd_obtain_pen( unsigned char red, unsigned char green, unsigned char blue ) {
0817   
0818   /* Save old palette entries and update with new values */
0819   outb( first_free_pen, 0x3C7 ); /* DAC Address Read Mode Register */
0820   old_red[ first_free_pen ] = inb( 0x3C9 ) << 2;
0821   old_green[ first_free_pen ] = inb( 0x3C9 ) << 2;
0822   old_blue[ first_free_pen ] = inb( 0x3C9 ) << 2;
0823 
0824   outb( first_free_pen, 0x3C8 ); /* DAC Address Write Mode Register */
0825   outb( red >> 2, 0x3C9 ); /* DAC Data Register */
0826   outb( green >> 2, 0x3C9 );
0827   outb( blue >> 2, 0x3C9 );
0828   
0829   return first_free_pen++;
0830 }
0831 
0832 
0833 void osd_update_display( void ) {
0834 
0835   memcpy( (void *)0x200000, bitmap->private, bitmap->width * bitmap->height );
0836 }
0837 
0838 
0839 /* --??-- Below are just empty wrapper functions needed for resolving
0840    symbols */
0841 
0842 void osd_update_audio(void) {
0843 
0844 }
0845 
0846 void osd_play_sample(int channel,unsigned char *data,int len,int freq,int volume,int loop) {
0847 
0848 }
0849 
0850 void osd_play_streamed_sample(int channel,unsigned char *data,int len,int freq,int volume) {
0851 
0852 }
0853 
0854 void osd_adjust_sample(int channel,int freq,int volume) {
0855 
0856 }
0857 
0858 void osd_stop_sample(int channel) {
0859 
0860 }
0861 
0862 void osd_poll_joystick(void) {
0863 
0864 }
0865 
0866 int osd_joy_pressed(int joycode) {
0867 
0868     return 0;
0869 }
0870 
0871 void osd_exit(void) { 
0872 
0873 }
0874