#define WIDTH 304 #define HEIGHT 75 static unsigned short pFalconMask[385] = { 0x7D0A, 0xB13A, 0x3407, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0x8901, 0xF509, 0x0E14, 0x4306, 0xC501, 0x0C01, 0x1404, 0x4501, 0xC501, 0x2402, 0x4401, 0xEB01, 0xFF00, 0x3101, 0xFF00, 0x3101, 0xFF00, 0x3101, 0xFF00, 0x3701, 0xFF00, 0x2A01, 0xFF00, 0xFF00, 0xFF00, 0x9301, 0xFF00, 0xFF00, 0xFF00, 0x9801, 0xFF00, 0xFF00, 0x5C01, 0xFF00, 0x2005, 0xFF00, 0xFF00, 0xFF00, 0x9F05, 0x0C0B, 0x480B, 0x230B, 0xA103, 0x0B03, 0x4203, 0x0B04, 0x1C03, 0x0B03, 0x1C09, 0x090A, 0x6402, 0x1102, 0x3E02, 0x1202, 0x1802, 0x1102, 0x1307, 0x0F03, 0x0A03, 0x5F02, 0x1502, 0x3A02, 0x1601, 0x1502, 0x1502, 0x2601, 0x1002, 0x4101, 0x1A01, 0x0A05, 0x0A01, 0x3702, 0x0A06, 0x0902, 0x1102, 0x0A05, 0x0A02, 0x2202, 0x1301, 0x5A01, 0x0803, 0x0502, 0x0901, 0x3501, 0x0A02, 0x0603, 0x0801, 0x0F01, 0x0A02, 0x0502, 0x0A01, 0x2001, 0x0804, 0x0A01, 0x3E01, 0x2102, 0x0A01, 0x0901, 0x3301, 0x0A01, 0x0B02, 0x1501, 0x0902, 0x0902, 0x0901, 0x1E01, 0x0702, 0x0401, 0x4701, 0x1A01, 0x0702, 0x0B01, 0x0901, 0x3101, 0x0A01, 0x0C02, 0x0701, 0x0C01, 0x0901, 0x0D01, 0x0901, 0x0C06, 0x0A01, 0x0602, 0x0701, 0x0901, 0x3A02, 0x2501, 0x1501, 0x2F01, 0x0A01, 0x0C01, 0x1501, 0x0901, 0x0F01, 0x0901, 0x1101, 0x0F01, 0x0A01, 0x370C, 0x3301, 0x3801, 0x0A01, 0x2C01, 0x1101, 0x1B01, 0x0D01, 0x1501, 0x6D01, 0x4101, 0x2301, 0x2501, 0x1E01, 0x8E01, 0x2C01, 0x2D01, 0x0901, 0x1301, 0x0901, 0x2B01, 0xB701, 0x6801, 0x8601, 0x3401, 0x2D01, 0x0901, 0x1501, 0x0901, 0x610C, 0xDD01, 0x5202, 0x1B01, 0x0901, 0x4101, 0x0A01, 0x1001, 0x0901, 0xA201, 0x1B02, 0x0502, 0x5F02, 0x0502, 0x0801, 0x2B01, 0x6F01, 0x1C05, 0x6305, 0x1401, 0x1701, 0x2201, 0xFF00, 0x8801, 0x2B06, 0x3201, 0x0A01, 0x2201, 0x2D01, 0x9506, 0xFF00, 0x2803, 0xFF00, 0x2B03, 0xFF00, 0x2C02, 0x1002, 0xFF00, 0x1B02, 0x0D05, 0xFF00, 0x1C01, 0x0C03, 0xFF00, 0x0705, 0x1302, 0x0B02, 0xFF00, 0x2101, 0x0C01, 0xFF00, 0x2F01, 0xFF00, 0x2301, 0x0B01, 0xFF00, 0x2301, 0x0B01, 0x4C01, 0xE101, 0x1E05, 0x1F01, 0x2D01, 0x2D01, 0xFF00, 0x0D01, 0x1701, 0x8F01, 0x0A01, 0x6705, 0xFF00, 0x1401, 0x2201, 0x2B01, 0x8F01, 0x4501, 0x2101, 0xD901, 0x6C01, 0x1501, 0xE101, 0x0A01, 0x2201, 0x2901, 0xA101, 0x5501, 0x0501, 0x0801, 0x0901, 0x1301, 0x0901, 0x9101, 0x4701, 0x0A01, 0x1201, 0xD901, 0x3801, 0x0A01, 0x1701, 0x0A01, 0x0901, 0x1101, 0x0901, 0x5701, 0x0B01, 0x2F01, 0x0D01, 0x0C01, 0x0301, 0x2901, 0x0A01, 0x0F01, 0x1201, 0x0901, 0x0F01, 0x0901, 0x5701, 0x0D02, 0x2201, 0x0B01, 0x0B01, 0x2002, 0x0902, 0x0F01, 0x0A01, 0x0C02, 0x0601, 0x0D01, 0x0901, 0x0D01, 0x0901, 0x1202, 0x0902, 0x0E02, 0x0902, 0x1509, 0x100A, 0x1901, 0x0B01, 0x0901, 0x0601, 0x0801, 0x0101, 0x0501, 0x0306, 0x0D06, 0x0A01, 0x0A01, 0x0A01, 0x0701, 0x0F01, 0x0902, 0x0902, 0x0901, 0x0D06, 0x0D06, 0x0206, 0x0D06, 0x4C01, 0x0B02, 0x0502, 0x0601, 0x0A01, 0x2E01, 0x0A02, 0x0503, 0x0701, 0x1101, 0x0A02, 0x0502, 0x0A01, 0x8F01, 0x0C05, 0x0701, 0x0201, 0x0E01, 0x2902, 0x0A05, 0x0901, 0x1302, 0x0A05, 0x0A02, 0x9102, 0x1501, 0x1101, 0x2C01, 0x1601, 0x1601, 0x1701, 0x9502, 0x1102, 0x0502, 0x0A01, 0x2E03, 0x1102, 0x1802, 0x1302, 0x5523, 0x2003, 0x0C02, 0x0901, 0x0801, 0x0719, 0x1203, 0x0B03, 0x1C04, 0x0B04, 0x1419, 0x0219, 0x0700 }; static unsigned short pFalconData[400] = { 0xFF00, 0xAF08, 0xB338, 0x3607, 0xFF00, 0xFF00, 0xFF00, 0x1E09, 0x0C16, 0x4306, 0xC501, 0x0A01, 0x1604, 0x0901, 0x3B01, 0xC501, 0x2402, 0x4401, 0xEB01, 0xFF00, 0x3101, 0xFF00, 0x3101, 0xFF00, 0x3101, 0xFF00, 0xFF00, 0x6201, 0xFF00, 0x3401, 0xFF00, 0xFF00, 0x5E01, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xF501, 0x0201, 0xFF00, 0xFF00, 0xFF00, 0x7F03, 0xFF00, 0x3F03, 0xFF00, 0xFF00, 0x7009, 0x4A09, 0x2509, 0xA303, 0x0903, 0x4403, 0x0904, 0x1E03, 0x0903, 0x1E07, 0x0B08, 0x6602, 0x0407, 0x0402, 0x4002, 0x0408, 0x0402, 0x1A02, 0x0407, 0x0402, 0x1507, 0x0F03, 0x0803, 0x6102, 0x0303, 0x0702, 0x0402, 0x3C02, 0x0402, 0x0803, 0x0301, 0x1702, 0x0402, 0x0702, 0x0402, 0x2801, 0x0306, 0x0502, 0x4301, 0x1A01, 0x0302, 0x0C01, 0x0501, 0x3902, 0x0501, 0x0D02, 0x0202, 0x1302, 0x0402, 0x0B02, 0x0402, 0x2402, 0x0202, 0x0601, 0x0601, 0x5C01, 0x0301, 0x0F01, 0x0501, 0x3701, 0x0601, 0x1001, 0x0301, 0x1101, 0x0501, 0x0F01, 0x0501, 0x1006, 0x0C01, 0x0202, 0x0901, 0x0601, 0x4001, 0x1E01, 0x1601, 0x3501, 0x0601, 0x1101, 0x1401, 0x0501, 0x1101, 0x0501, 0x1501, 0x0A01, 0x0201, 0x0C01, 0x4501, 0x1A01, 0x0502, 0x0E01, 0x0601, 0x3301, 0x0601, 0x1002, 0x0501, 0x0E01, 0x0501, 0x1301, 0x0501, 0x1501, 0x0801, 0x0201, 0x1401, 0x3C02, 0x2301, 0x0E01, 0x0601, 0x3101, 0x0601, 0x1001, 0x1501, 0x2101, 0x1F01, 0x440E, 0x6C01, 0x3401, 0x1501, 0x2201, 0x1201, 0x0601, 0xAE01, 0x2601, 0x2301, 0x1D01, 0x8801, 0x0601, 0x2E01, 0x2D01, 0x0601, 0x1701, 0x0601, 0x1901, 0x480E, 0xDB01, 0x5402, 0x1B01, 0x0701, 0x4401, 0x0701, 0x1201, 0x0701, 0x0A01, 0x2701, 0x7101, 0x1B02, 0x0302, 0x6102, 0x0302, 0xA601, 0x1C03, 0x4601, 0x1E03, 0x1401, 0x1901, 0x2001, 0xEC01, 0x2901, 0x7201, 0x6C01, 0xFF00, 0xFF00, 0x2006, 0x3201, 0x2D01, 0x2B01, 0x9706, 0xFF00, 0x2803, 0x0804, 0xFF00, 0x1F03, 0x0605, 0xFF00, 0x2102, 0x0603, 0xFF00, 0x0903, 0x1802, 0x0602, 0xFF00, 0x2601, 0x0701, 0xFF00, 0x2602, 0x0701, 0xFF00, 0x2601, 0x0801, 0xFF00, 0x2F01, 0xFF00, 0x2701, 0x0701, 0x4401, 0x2D01, 0x2B01, 0x8701, 0x5601, 0xE001, 0x2103, 0xFF00, 0x8101, 0x0701, 0x1901, 0x0701, 0x8701, 0x0701, 0x4701, 0x2203, 0xFF00, 0x1401, 0xFF00, 0x2801, 0x2001, 0x0C01, 0x2701, 0xA401, 0x5801, 0x0A01, 0x0601, 0x1701, 0x0601, 0xDB01, 0x0701, 0xF001, 0x3701, 0x1D01, 0x0201, 0x0C01, 0x0601, 0x1501, 0x0601, 0x9201, 0x1401, 0x3601, 0x0601, 0x1401, 0x1101, 0x2101, 0x8B01, 0x1901, 0x3A01, 0x0601, 0x1601, 0x0F01, 0x0501, 0x1301, 0x0501, 0x5B01, 0x0901, 0x2701, 0x0701, 0x0F01, 0x0201, 0x0101, 0x0501, 0x0501, 0x0201, 0x2801, 0x0601, 0x1101, 0x0201, 0x1101, 0x0501, 0x1101, 0x0501, 0x5B01, 0x0B02, 0x2601, 0x0701, 0x0D01, 0x0201, 0x1D02, 0x0702, 0x1301, 0x0601, 0x0E02, 0x0201, 0x1301, 0x0501, 0x0F01, 0x0501, 0x1602, 0x0702, 0x1002, 0x0702, 0x1709, 0x0E0A, 0x1D01, 0x0701, 0x0B01, 0x0201, 0x0401, 0x0501, 0x0301, 0x0201, 0x0606, 0x0B06, 0x0E02, 0x0501, 0x0C01, 0x0301, 0x1502, 0x0402, 0x0B02, 0x0402, 0x1106, 0x0B06, 0x0406, 0x0B06, 0x5002, 0x0602, 0x0702, 0x0201, 0x0C03, 0x0201, 0x2E01, 0x0502, 0x0703, 0x0301, 0x1801, 0x0502, 0x0702, 0x0501, 0x9702, 0x0607, 0x0202, 0x0702, 0x0801, 0x3003, 0x0407, 0x0402, 0x1A02, 0x0507, 0x0502, 0x5721, 0x2203, 0x0A02, 0x0B01, 0x0601, 0x0917, 0x1403, 0x0903, 0x1E04, 0x0904, 0x1617, 0x0417, 0x570A, 0x0E06, 0x3809, 0x2509, 0x5400 }; static long oldpalette[16],thesize,*thescr; static void _show(unsigned char *ptr,int c,unsigned short *line, int width,int planes) { unsigned short buffer[WIDTH/16]; unsigned short *word; int runlength,mode; int i,j,k,bit; unsigned short data = 0; if ((runlength = *ptr) == 0) {runlength = *++ptr; mode = 1;} else mode = 0; for (k = WIDTH/16; k--; buffer[k] = 0); for (i = HEIGHT; i--; line += width/16*planes) { for (j = WIDTH/16, word = line; j--;) { for (k = 16; k--;) { data = (data << 1) | mode; if (!--runlength) { runlength = *++ptr; if (!runlength) runlength = *++ptr; else mode = 1-mode; } } buffer[j] = data ^= buffer[j]; for (k = planes, bit = c?c:i*14/HEIGHT+2; k--; bit >>= 1) { if (bit & 1) *word++ |= data; else *word++ &=~data; } } } } void showlogo(int x,int y,unsigned short *scr, int width,int height,int planes) { extern void VsetRGB(int,int,long *); extern void VgetRGB(int,int,long *); static long mypalette[16] = {0x000040L,0x4B4B4BL,0xE11D15L,0xE16F15L, 0xE1C815L,0xA8E115L,0x56E115L,0x15E136L, 0x15E18FL,0x15E1E1L,0x158FE1L,0x1536E1L, 0x5615E1L,0xA815E1L,0xE115C8L,0xE1156FL}; static int lookup[9] = {1,1,2,2,0,0,0,0,0}; unsigned short *line; long count,*ptr; VgetRGB(0,16,oldpalette); VsetRGB(0,16,mypalette); for (ptr = thescr = (long *)scr, count = thesize = (long)width*height/32*planes; count--; *ptr++ = 0L); x = (x+15)&~15; line = scr+((long)y*width+x)/16*planes; _show((unsigned char *)pFalconMask,1,line,width,planes); _show((unsigned char *)pFalconData,lookup[planes],line,width,planes); return; } void hidelogo(void) { long count,*ptr; for (ptr = thescr,count = thesize; count--; *ptr++ = 0L); VsetRGB(0,16,oldpalette); return; }