home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / falcon / utility / fs2 / fslogo.c < prev    next >
C/C++ Source or Header  |  1993-05-08  |  9KB  |  171 lines

  1. #define    WIDTH    304
  2. #define    HEIGHT    75
  3.  
  4. static unsigned short pFalconMask[385] = {
  5.   0x7D0A, 0xB13A, 0x3407, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0x8901,
  6.   0xF509, 0x0E14, 0x4306, 0xC501, 0x0C01, 0x1404, 0x4501, 0xC501,
  7.   0x2402, 0x4401, 0xEB01, 0xFF00, 0x3101, 0xFF00, 0x3101, 0xFF00,
  8.   0x3101, 0xFF00, 0x3701, 0xFF00, 0x2A01, 0xFF00, 0xFF00, 0xFF00,
  9.   0x9301, 0xFF00, 0xFF00, 0xFF00, 0x9801, 0xFF00, 0xFF00, 0x5C01,
  10.   0xFF00, 0x2005, 0xFF00, 0xFF00, 0xFF00, 0x9F05, 0x0C0B, 0x480B,
  11.   0x230B, 0xA103, 0x0B03, 0x4203, 0x0B04, 0x1C03, 0x0B03, 0x1C09,
  12.   0x090A, 0x6402, 0x1102, 0x3E02, 0x1202, 0x1802, 0x1102, 0x1307,
  13.   0x0F03, 0x0A03, 0x5F02, 0x1502, 0x3A02, 0x1601, 0x1502, 0x1502,
  14.   0x2601, 0x1002, 0x4101, 0x1A01, 0x0A05, 0x0A01, 0x3702, 0x0A06,
  15.   0x0902, 0x1102, 0x0A05, 0x0A02, 0x2202, 0x1301, 0x5A01, 0x0803,
  16.   0x0502, 0x0901, 0x3501, 0x0A02, 0x0603, 0x0801, 0x0F01, 0x0A02,
  17.   0x0502, 0x0A01, 0x2001, 0x0804, 0x0A01, 0x3E01, 0x2102, 0x0A01,
  18.   0x0901, 0x3301, 0x0A01, 0x0B02, 0x1501, 0x0902, 0x0902, 0x0901,
  19.   0x1E01, 0x0702, 0x0401, 0x4701, 0x1A01, 0x0702, 0x0B01, 0x0901,
  20.   0x3101, 0x0A01, 0x0C02, 0x0701, 0x0C01, 0x0901, 0x0D01, 0x0901,
  21.   0x0C06, 0x0A01, 0x0602, 0x0701, 0x0901, 0x3A02, 0x2501, 0x1501,
  22.   0x2F01, 0x0A01, 0x0C01, 0x1501, 0x0901, 0x0F01, 0x0901, 0x1101,
  23.   0x0F01, 0x0A01, 0x370C, 0x3301, 0x3801, 0x0A01, 0x2C01, 0x1101,
  24.   0x1B01, 0x0D01, 0x1501, 0x6D01, 0x4101, 0x2301, 0x2501, 0x1E01,
  25.   0x8E01, 0x2C01, 0x2D01, 0x0901, 0x1301, 0x0901, 0x2B01, 0xB701,
  26.   0x6801, 0x8601, 0x3401, 0x2D01, 0x0901, 0x1501, 0x0901, 0x610C,
  27.   0xDD01, 0x5202, 0x1B01, 0x0901, 0x4101, 0x0A01, 0x1001, 0x0901,
  28.   0xA201, 0x1B02, 0x0502, 0x5F02, 0x0502, 0x0801, 0x2B01, 0x6F01,
  29.   0x1C05, 0x6305, 0x1401, 0x1701, 0x2201, 0xFF00, 0x8801, 0x2B06,
  30.   0x3201, 0x0A01, 0x2201, 0x2D01, 0x9506, 0xFF00, 0x2803, 0xFF00,
  31.   0x2B03, 0xFF00, 0x2C02, 0x1002, 0xFF00, 0x1B02, 0x0D05, 0xFF00,
  32.   0x1C01, 0x0C03, 0xFF00, 0x0705, 0x1302, 0x0B02, 0xFF00, 0x2101,
  33.   0x0C01, 0xFF00, 0x2F01, 0xFF00, 0x2301, 0x0B01, 0xFF00, 0x2301,
  34.   0x0B01, 0x4C01, 0xE101, 0x1E05, 0x1F01, 0x2D01, 0x2D01, 0xFF00,
  35.   0x0D01, 0x1701, 0x8F01, 0x0A01, 0x6705, 0xFF00, 0x1401, 0x2201,
  36.   0x2B01, 0x8F01, 0x4501, 0x2101, 0xD901, 0x6C01, 0x1501, 0xE101,
  37.   0x0A01, 0x2201, 0x2901, 0xA101, 0x5501, 0x0501, 0x0801, 0x0901,
  38.   0x1301, 0x0901, 0x9101, 0x4701, 0x0A01, 0x1201, 0xD901, 0x3801,
  39.   0x0A01, 0x1701, 0x0A01, 0x0901, 0x1101, 0x0901, 0x5701, 0x0B01,
  40.   0x2F01, 0x0D01, 0x0C01, 0x0301, 0x2901, 0x0A01, 0x0F01, 0x1201,
  41.   0x0901, 0x0F01, 0x0901, 0x5701, 0x0D02, 0x2201, 0x0B01, 0x0B01,
  42.   0x2002, 0x0902, 0x0F01, 0x0A01, 0x0C02, 0x0601, 0x0D01, 0x0901,
  43.   0x0D01, 0x0901, 0x1202, 0x0902, 0x0E02, 0x0902, 0x1509, 0x100A,
  44.   0x1901, 0x0B01, 0x0901, 0x0601, 0x0801, 0x0101, 0x0501, 0x0306,
  45.   0x0D06, 0x0A01, 0x0A01, 0x0A01, 0x0701, 0x0F01, 0x0902, 0x0902,
  46.   0x0901, 0x0D06, 0x0D06, 0x0206, 0x0D06, 0x4C01, 0x0B02, 0x0502,
  47.   0x0601, 0x0A01, 0x2E01, 0x0A02, 0x0503, 0x0701, 0x1101, 0x0A02,
  48.   0x0502, 0x0A01, 0x8F01, 0x0C05, 0x0701, 0x0201, 0x0E01, 0x2902,
  49.   0x0A05, 0x0901, 0x1302, 0x0A05, 0x0A02, 0x9102, 0x1501, 0x1101,
  50.   0x2C01, 0x1601, 0x1601, 0x1701, 0x9502, 0x1102, 0x0502, 0x0A01,
  51.   0x2E03, 0x1102, 0x1802, 0x1302, 0x5523, 0x2003, 0x0C02, 0x0901,
  52.   0x0801, 0x0719, 0x1203, 0x0B03, 0x1C04, 0x0B04, 0x1419, 0x0219,
  53.   0x0700 };
  54.  
  55. static unsigned short pFalconData[400] = {
  56.   0xFF00, 0xAF08, 0xB338, 0x3607, 0xFF00, 0xFF00, 0xFF00, 0x1E09,
  57.   0x0C16, 0x4306, 0xC501, 0x0A01, 0x1604, 0x0901, 0x3B01, 0xC501,
  58.   0x2402, 0x4401, 0xEB01, 0xFF00, 0x3101, 0xFF00, 0x3101, 0xFF00,
  59.   0x3101, 0xFF00, 0xFF00, 0x6201, 0xFF00, 0x3401, 0xFF00, 0xFF00,
  60.   0x5E01, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xF501, 0x0201,
  61.   0xFF00, 0xFF00, 0xFF00, 0x7F03, 0xFF00, 0x3F03, 0xFF00, 0xFF00,
  62.   0x7009, 0x4A09, 0x2509, 0xA303, 0x0903, 0x4403, 0x0904, 0x1E03,
  63.   0x0903, 0x1E07, 0x0B08, 0x6602, 0x0407, 0x0402, 0x4002, 0x0408,
  64.   0x0402, 0x1A02, 0x0407, 0x0402, 0x1507, 0x0F03, 0x0803, 0x6102,
  65.   0x0303, 0x0702, 0x0402, 0x3C02, 0x0402, 0x0803, 0x0301, 0x1702,
  66.   0x0402, 0x0702, 0x0402, 0x2801, 0x0306, 0x0502, 0x4301, 0x1A01,
  67.   0x0302, 0x0C01, 0x0501, 0x3902, 0x0501, 0x0D02, 0x0202, 0x1302,
  68.   0x0402, 0x0B02, 0x0402, 0x2402, 0x0202, 0x0601, 0x0601, 0x5C01,
  69.   0x0301, 0x0F01, 0x0501, 0x3701, 0x0601, 0x1001, 0x0301, 0x1101,
  70.   0x0501, 0x0F01, 0x0501, 0x1006, 0x0C01, 0x0202, 0x0901, 0x0601,
  71.   0x4001, 0x1E01, 0x1601, 0x3501, 0x0601, 0x1101, 0x1401, 0x0501,
  72.   0x1101, 0x0501, 0x1501, 0x0A01, 0x0201, 0x0C01, 0x4501, 0x1A01,
  73.   0x0502, 0x0E01, 0x0601, 0x3301, 0x0601, 0x1002, 0x0501, 0x0E01,
  74.   0x0501, 0x1301, 0x0501, 0x1501, 0x0801, 0x0201, 0x1401, 0x3C02,
  75.   0x2301, 0x0E01, 0x0601, 0x3101, 0x0601, 0x1001, 0x1501, 0x2101,
  76.   0x1F01, 0x440E, 0x6C01, 0x3401, 0x1501, 0x2201, 0x1201, 0x0601,
  77.   0xAE01, 0x2601, 0x2301, 0x1D01, 0x8801, 0x0601, 0x2E01, 0x2D01,
  78.   0x0601, 0x1701, 0x0601, 0x1901, 0x480E, 0xDB01, 0x5402, 0x1B01,
  79.   0x0701, 0x4401, 0x0701, 0x1201, 0x0701, 0x0A01, 0x2701, 0x7101,
  80.   0x1B02, 0x0302, 0x6102, 0x0302, 0xA601, 0x1C03, 0x4601, 0x1E03,
  81.   0x1401, 0x1901, 0x2001, 0xEC01, 0x2901, 0x7201, 0x6C01, 0xFF00,
  82.   0xFF00, 0x2006, 0x3201, 0x2D01, 0x2B01, 0x9706, 0xFF00, 0x2803,
  83.   0x0804, 0xFF00, 0x1F03, 0x0605, 0xFF00, 0x2102, 0x0603, 0xFF00,
  84.   0x0903, 0x1802, 0x0602, 0xFF00, 0x2601, 0x0701, 0xFF00, 0x2602,
  85.   0x0701, 0xFF00, 0x2601, 0x0801, 0xFF00, 0x2F01, 0xFF00, 0x2701,
  86.   0x0701, 0x4401, 0x2D01, 0x2B01, 0x8701, 0x5601, 0xE001, 0x2103,
  87.   0xFF00, 0x8101, 0x0701, 0x1901, 0x0701, 0x8701, 0x0701, 0x4701,
  88.   0x2203, 0xFF00, 0x1401, 0xFF00, 0x2801, 0x2001, 0x0C01, 0x2701,
  89.   0xA401, 0x5801, 0x0A01, 0x0601, 0x1701, 0x0601, 0xDB01, 0x0701,
  90.   0xF001, 0x3701, 0x1D01, 0x0201, 0x0C01, 0x0601, 0x1501, 0x0601,
  91.   0x9201, 0x1401, 0x3601, 0x0601, 0x1401, 0x1101, 0x2101, 0x8B01,
  92.   0x1901, 0x3A01, 0x0601, 0x1601, 0x0F01, 0x0501, 0x1301, 0x0501,
  93.   0x5B01, 0x0901, 0x2701, 0x0701, 0x0F01, 0x0201, 0x0101, 0x0501,
  94.   0x0501, 0x0201, 0x2801, 0x0601, 0x1101, 0x0201, 0x1101, 0x0501,
  95.   0x1101, 0x0501, 0x5B01, 0x0B02, 0x2601, 0x0701, 0x0D01, 0x0201,
  96.   0x1D02, 0x0702, 0x1301, 0x0601, 0x0E02, 0x0201, 0x1301, 0x0501,
  97.   0x0F01, 0x0501, 0x1602, 0x0702, 0x1002, 0x0702, 0x1709, 0x0E0A,
  98.   0x1D01, 0x0701, 0x0B01, 0x0201, 0x0401, 0x0501, 0x0301, 0x0201,
  99.   0x0606, 0x0B06, 0x0E02, 0x0501, 0x0C01, 0x0301, 0x1502, 0x0402,
  100.   0x0B02, 0x0402, 0x1106, 0x0B06, 0x0406, 0x0B06, 0x5002, 0x0602,
  101.   0x0702, 0x0201, 0x0C03, 0x0201, 0x2E01, 0x0502, 0x0703, 0x0301,
  102.   0x1801, 0x0502, 0x0702, 0x0501, 0x9702, 0x0607, 0x0202, 0x0702,
  103.   0x0801, 0x3003, 0x0407, 0x0402, 0x1A02, 0x0507, 0x0502, 0x5721,
  104.   0x2203, 0x0A02, 0x0B01, 0x0601, 0x0917, 0x1403, 0x0903, 0x1E04,
  105.   0x0904, 0x1617, 0x0417, 0x570A, 0x0E06, 0x3809, 0x2509, 0x5400 };
  106.  
  107.  
  108. static long oldpalette[16],thesize,*thescr;
  109.  
  110. static void _show(unsigned char *ptr,int c,unsigned short *line,
  111.                   int width,int planes)
  112. {
  113.     unsigned short    buffer[WIDTH/16];
  114.     unsigned short    *word;
  115.     int                runlength,mode;
  116.     int                i,j,k,bit;
  117.     unsigned short    data = 0;
  118.     
  119.     if ((runlength = *ptr) == 0) {runlength = *++ptr; mode = 1;}
  120.     else mode = 0;
  121.     for (k = WIDTH/16; k--; buffer[k] = 0);
  122.     for (i = HEIGHT; i--; line += width/16*planes) {
  123.         for (j = WIDTH/16, word = line; j--;) {
  124.             for (k = 16; k--;) {
  125.                 data = (data << 1) | mode;
  126.                 if (!--runlength) {
  127.                     runlength = *++ptr;
  128.                     if (!runlength) runlength = *++ptr;
  129.                     else mode = 1-mode; } }
  130.             buffer[j] = data ^= buffer[j];
  131.             for (k = planes, bit = c?c:i*14/HEIGHT+2; k--; bit >>= 1) {
  132.                 if (bit & 1)
  133.                     *word++ |= data;
  134.                 else
  135.                     *word++ &=~data; } } }
  136. }
  137.  
  138. void showlogo(int x,int y,unsigned short *scr,
  139.               int width,int height,int planes)
  140. {
  141.     extern void        VsetRGB(int,int,long *);
  142.     extern void        VgetRGB(int,int,long *);
  143.     static long        mypalette[16] =
  144.             {0x000040L,0x4B4B4BL,0xE11D15L,0xE16F15L,
  145.              0xE1C815L,0xA8E115L,0x56E115L,0x15E136L,
  146.              0x15E18FL,0x15E1E1L,0x158FE1L,0x1536E1L,
  147.              0x5615E1L,0xA815E1L,0xE115C8L,0xE1156FL};
  148.     unsigned short    *line;
  149.     long            count,*ptr;
  150.  
  151.     VgetRGB(0,16,oldpalette);
  152.     VsetRGB(0,16,mypalette);
  153.     for (ptr = thescr = (long *)scr,
  154.          count = thesize = (long)width*height/32*planes; count--;
  155.          *ptr++ = 0L);
  156.     x = (x+15)&~15;
  157.     line = scr+((long)y*width+x)/16*planes;
  158.     _show((unsigned char *)pFalconMask,1,line,width,planes);
  159.     _show((unsigned char *)pFalconData,0,line,width,planes);
  160.     return;
  161. }
  162.  
  163. void hidelogo(void)
  164. {
  165.     long            count,*ptr;
  166.  
  167.     for (ptr = thescr,count = thesize; count--; *ptr++ = 0L);
  168.     VsetRGB(0,16,oldpalette);
  169.     return;
  170. }
  171.