#include "TRACK.h" //#pragma optimize( "", off ) /* Fizedsys = !"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ `abcdefghijklmnopqrstuvwxyz{|}~ €�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ  ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞß àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ */ unsigned char FONT_FixedSys[256][16] = { {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x18,0x3c,0x3c, 0x3c,0x18,0x18,0x00,0x18, 0x18,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x66,0x66,0x66, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x6c,0x6c,0xfe, 0x6c,0x6c,0x6c,0xfe,0x6c, 0x6c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x18,0x3c,0x66,0x06, 0x0c,0x18,0x30,0x60,0x66, 0x3c,0x18,0x18,0x00,0x00,0x00}, {0x00,0x0e,0x1b,0x5b,0x6e, 0x30,0x18,0x0c,0x76,0xda, 0xd8,0x70,0x00,0x00,0x00,0x00}, {0x00,0x00,0x1c,0x36,0x36, 0x1c,0x06,0xf6,0x66,0x66, 0xdc,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x18,0x18,0x18, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x30,0x18,0x18, 0x0c,0x0c,0x0c,0x0c,0x0c, 0x18,0x18,0x30,0x00,0x00,0x00}, {0x00,0x00,0x0c,0x18,0x18, 0x30,0x30,0x30,0x30,0x30, 0x18,0x18,0x0c,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x6c, 0x38,0xfe,0x38,0x6c,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x18, 0x18,0x7e,0x18,0x18,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x38, 0x38,0x30,0x18,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x7e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x38, 0x38,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x60,0x60,0x30, 0x30,0x18,0x18,0x0c,0x0c, 0x06,0x06,0x00,0x00,0x00,0x00}, {0x00,0x00,0x78,0xcc,0xec, 0xec,0xcc,0xdc,0xdc,0xcc, 0x78,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x30,0x38,0x3e, 0x30,0x30,0x30,0x30,0x30, 0x30,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x60,0x30,0x18,0x0c,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x60,0x38,0x60,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x0c,0x0c,0x6c, 0x6c,0x6c,0x66,0xfe,0x60, 0x60,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x60,0x60,0x30, 0x1e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x38,0x18,0x0c, 0x3e,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x60,0x30, 0x30,0x18,0x18,0x0c,0x0c, 0x0c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x6e,0x3c,0x76,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x66,0x66,0x7c,0x30,0x18, 0x1c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x38, 0x38,0x00,0x00,0x00,0x38, 0x38,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x38, 0x38,0x00,0x00,0x00,0x38, 0x38,0x30,0x18,0x00,0x00,0x00}, {0x00,0x00,0x60,0x30,0x18, 0x0c,0x06,0x0c,0x18,0x30, 0x60,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x7e,0x00,0x7e,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x06,0x0c,0x18, 0x30,0x60,0x30,0x18,0x0c, 0x06,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x30,0x18,0x18,0x00,0x18, 0x18,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0xc3,0xc3, 0xf3,0xdb,0xdb,0xf3,0x03, 0xfe,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3e,0x66,0x66, 0x66,0x3e,0x66,0x66,0x66, 0x3e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x06,0x06,0x06,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x1e,0x36,0x66, 0x66,0x66,0x66,0x66,0x36, 0x1e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x06,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x06,0x06,0x06, 0x06,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x06,0x06,0x76,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x66,0x66,0x66, 0x66,0x7e,0x66,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x60,0x60,0x60, 0x60,0x60,0x60,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x66,0x66,0x36, 0x36,0x1e,0x36,0x36,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x06,0x06,0x06, 0x06,0x06,0x06,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0xc6,0xc6,0xee, 0xd6,0xd6,0xd6,0xc6,0xc6, 0xc6,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0xc6,0xc6,0xce, 0xde,0xf6,0xe6,0xc6,0xc6, 0xc6,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3e,0x66,0x66, 0x66,0x3e,0x06,0x06,0x06, 0x06,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x30,0x60,0x00,0x00,0x00}, {0x00,0x00,0x3e,0x66,0x66, 0x66,0x3e,0x36,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x06, 0x0c,0x18,0x30,0x60,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x18,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x66,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x66,0x66,0x66, 0x66,0x66,0x66,0x66,0x3c, 0x18,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0xc6,0xc6,0xc6, 0xd6,0xd6,0xd6,0x6c,0x6c, 0x6c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x66,0x66,0x2c, 0x18,0x18,0x34,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x66,0x66,0x66, 0x66,0x3c,0x18,0x18,0x18, 0x18,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x60,0x60, 0x30,0x18,0x0c,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x0c,0x0c, 0x0c,0x0c,0x0c,0x0c,0x0c, 0x0c,0x0c,0x0c,0x3c,0x00,0x00}, {0x00,0x00,0x06,0x06,0x0c, 0x0c,0x18,0x18,0x30,0x30, 0x60,0x60,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x30,0x30, 0x30,0x30,0x30,0x30,0x30, 0x30,0x30,0x30,0x3c,0x00,0x00}, {0x18,0x3c,0x66,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xff,0x00,0x00}, {0x1c,0x18,0x30,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x06,0x06,0x3e, 0x66,0x66,0x66,0x66,0x66, 0x3e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x3c, 0x66,0x06,0x06,0x06,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x60,0x60,0x7c, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x3c, 0x66,0x66,0x7e,0x06,0x06, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x78,0x0c,0x0c, 0x0c,0x7e,0x0c,0x0c,0x0c, 0x0c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x7c, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x60,0x60,0x3e,0x00,0x00}, {0x00,0x00,0x06,0x06,0x3e, 0x66,0x66,0x66,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x18,0x18,0x00,0x1e, 0x18,0x18,0x18,0x18,0x18, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x30,0x30,0x00,0x3c, 0x30,0x30,0x30,0x30,0x30, 0x30,0x30,0x30,0x1e,0x00,0x00}, {0x00,0x00,0x06,0x06,0x66, 0x66,0x36,0x1e,0x36,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x1e,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x7e, 0xd6,0xd6,0xd6,0xd6,0xd6, 0xc6,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x3e, 0x66,0x66,0x66,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x3c, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x3e, 0x66,0x66,0x66,0x66,0x66, 0x3e,0x06,0x06,0x06,0x00,0x00}, {0x00,0x00,0x00,0x00,0x7c, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x60,0x60,0x60,0x00,0x00}, {0x00,0x00,0x00,0x00,0x66, 0x76,0x0e,0x06,0x06,0x06, 0x06,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x7c, 0x06,0x06,0x3c,0x60,0x60, 0x3e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x0c,0x0c,0x7e, 0x0c,0x0c,0x0c,0x0c,0x0c, 0x78,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x66, 0x66,0x66,0x66,0x66,0x3c, 0x18,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0xc6, 0xd6,0xd6,0xd6,0xd6,0x6c, 0x6c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x66, 0x66,0x3c,0x18,0x3c,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x30,0x18,0x0f,0x00,0x00}, {0x00,0x00,0x00,0x00,0x7e, 0x60,0x30,0x18,0x0c,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x30,0x18,0x18, 0x18,0x0c,0x06,0x0c,0x18, 0x18,0x18,0x30,0x00,0x00,0x00}, {0x00,0x00,0x18,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x18,0x18,0x18,0x18,0x00,0x00}, {0x00,0x00,0x0c,0x18,0x18, 0x18,0x30,0x60,0x30,0x18, 0x18,0x18,0x0c,0x00,0x00,0x00}, {0x00,0x00,0x8e,0xdb,0x71, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0xff,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x30,0x18,0x38, 0x38,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x38,0x38,0x30, 0x18,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x18,0x18,0x00,0x18,0x18, 0x3c,0x3c,0x3c,0x18,0x30,0x00}, {0x00,0x00,0x18,0x18,0x3c, 0x66,0x06,0x06,0x66,0x3c, 0x18,0x18,0x00,0x00,0x3c,0x00}, {0x00,0x00,0x3c,0x66,0x06, 0x06,0x3f,0x06,0x06,0x03, 0x7f,0x00,0x00,0x00,0xdc,0x00}, {0x00,0x00,0x00,0x66,0x3c, 0x66,0x66,0x3c,0x66,0x00, 0x00,0x00,0x00,0x00,0x66,0x00}, {0x00,0x00,0x66,0x66,0x66, 0x3c,0x7e,0x18,0x7e,0x18, 0x18,0x00,0x00,0x00,0x3c,0x00}, {0x00,0x00,0x18,0x18,0x18, 0x18,0x18,0x00,0x00,0x18, 0x18,0x18,0x18,0x18,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x06, 0x1c,0x3c,0x66,0x66,0x3c, 0x38,0x60,0x66,0x3c,0x00,0x00}, {0x00,0x66,0x66,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x00}, {0x00,0x00,0x7e,0xc3,0x99, 0xa5,0x85,0xa5,0x99,0xc3, 0x7e,0x00,0x00,0x00,0x30,0x00}, {0x00,0x00,0x3c,0x60,0x7c, 0x66,0x7c,0x00,0x7e,0x00, 0x00,0x00,0x00,0x00,0x3c,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0xcc,0x66,0x33,0x66, 0xcc,0x00,0x00,0x00,0x66,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x7e,0x60,0x60,0x00, 0x00,0x00,0x00,0x00,0x0c,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x7e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x30,0x00}, {0x00,0x00,0x7e,0xc3,0x9d, 0xa5,0xa5,0x9d,0xa5,0xc3, 0x7e,0x00,0x00,0x00,0x3c,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x66,0x00}, {0x00,0x3c,0x66,0x66,0x3c, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x18, 0x18,0x7e,0x18,0x18,0x00, 0x7e,0x00,0x00,0x00,0xdc,0x00}, {0x00,0x00,0x1c,0x30,0x18, 0x0c,0x3c,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x00}, {0x00,0x00,0x1c,0x30,0x18, 0x30,0x1c,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x30,0x00}, {0x38,0x18,0x0c,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x3c,0x00}, {0x00,0x00,0x00,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0xde,0x06,0x06,0x03,0xdc,0x00}, {0x00,0x00,0xf8,0x7c,0x7e, 0x7e,0x7e,0x7c,0x78,0x60, 0x60,0x60,0x60,0x60,0x66,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x38,0x38,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x18,0x30,0x1c,0x00,0x00}, {0x00,0x00,0x18,0x1c,0x18, 0x18,0x18,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x66,0x3c,0x00,0x7e,0x00, 0x00,0x00,0x00,0x00,0x30,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x33,0x66,0xcc,0x66, 0x33,0x00,0x00,0x00,0x3c,0x00}, {0x00,0x06,0x07,0xc6,0x66, 0x36,0x18,0xec,0xf6,0xdb, 0xf8,0xc0,0x00,0x00,0x66,0x00}, {0x00,0x06,0x07,0xc6,0x66, 0x36,0x18,0x7c,0xc6,0x63, 0x30,0xf0,0x00,0x00,0x30,0x00}, {0x00,0x07,0x0c,0xc6,0x6c, 0x37,0x18,0xec,0xf6,0xdb, 0xf8,0xc0,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x18,0x18,0x00,0x18,0x18, 0x0c,0x66,0x66,0x3c,0x00,0x00}, {0x18,0x00,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x76,0x00,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x66,0x3c,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0xf0,0x38,0x3c, 0x36,0xf6,0x3e,0x36,0x36, 0xf6,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x06,0x06,0x06,0x66,0x66, 0x3c,0x18,0x30,0x1c,0x00,0x00}, {0x18,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x06,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x06,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x06,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x06,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x3c,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x3c,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x3c,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x3c,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x1e,0x36,0x66, 0x66,0x6f,0x66,0x66,0x36, 0x1e,0x00,0x00,0x00,0x00,0x00}, {0x76,0x00,0xc6,0xc6,0xce, 0xde,0xf6,0xe6,0xc6,0xc6, 0xc6,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x76,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x42,0x66, 0x3c,0x18,0x3c,0x66,0x42, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7c,0x66,0x76, 0x76,0x7e,0x6e,0x6e,0x66, 0x3e,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x66,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x66,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x66,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x66,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x66,0x66,0x66, 0x66,0x3c,0x18,0x18,0x18, 0x18,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x06,0x06,0x3e, 0x66,0x66,0x66,0x3e,0x06, 0x06,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x1c,0x36,0x36, 0x36,0x66,0x66,0x66,0x66, 0x36,0x00,0x00,0x00,0x00,0x00}, {0x0e,0x0c,0x18,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x70,0x30,0x18,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x3c,0x66,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x8e,0xdb,0x71,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x66,0x66,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x3c,0x66,0x3c,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x76, 0xd8,0xd8,0xfe,0x1b,0x1b, 0xee,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x3c, 0x66,0x06,0x06,0x06,0x66, 0x3c,0x18,0x30,0x1c,0x00,0x00}, {0x0e,0x0c,0x18,0x00,0x3c, 0x66,0x66,0x7e,0x06,0x06, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x70,0x30,0x18,0x00,0x3c, 0x66,0x66,0x7e,0x06,0x06, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x3c,0x66,0x00,0x3c, 0x66,0x66,0x7e,0x06,0x06, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x66,0x66,0x00,0x3c, 0x66,0x66,0x7e,0x06,0x06, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x0e,0x0c,0x18,0x00,0x1e, 0x18,0x18,0x18,0x18,0x18, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x70,0x30,0x18,0x00,0x1e, 0x18,0x18,0x18,0x18,0x18, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x18,0x3c,0x66,0x00,0x1e, 0x18,0x18,0x18,0x18,0x18, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x66,0x66,0x00,0x1e, 0x18,0x18,0x18,0x18,0x18, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x6c,0x18,0x36, 0x78,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x8e,0xdb,0x71,0x00,0x3e, 0x66,0x66,0x66,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x0e,0x0c,0x18,0x00,0x3c, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x70,0x30,0x18,0x00,0x3c, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x3c,0x66,0x00,0x3c, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x8e,0xdb,0x71,0x00,0x3c, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x66,0x66,0x00,0x3c, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x18,0x18, 0x00,0x7e,0x00,0x18,0x18, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x7c, 0x66,0x76,0x7e,0x6e,0x66, 0x3e,0x00,0x00,0x00,0x00,0x00}, {0x0e,0x0c,0x18,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x70,0x30,0x18,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x3c,0x66,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x66,0x66,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x70,0x30,0x18,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x30,0x18,0x0f,0x00,0x00}, {0x00,0x00,0x06,0x06,0x06, 0x3e,0x66,0x66,0x66,0x66, 0x3e,0x06,0x06,0x06,0x00,0x00}, {0x00,0x66,0x66,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x30,0x18,0x0f,0x00,0x00} }; void FONT_FixedSysCorrect(unsigned char *FONT) { u32 Counter,Counter2; Counter = 255; while (Counter > 32) { Counter2 = 15; while (Counter2--) FONT_FixedSys[Counter][Counter2 + 1] = FONT_FixedSys[Counter][Counter2]; FONT_FixedSys[Counter][0] = FONT_FixedSys[Counter - 32][14]; FONT_FixedSys[Counter][15]= 0; Counter--; } } inline u8 *GSP_GetCharPtr(unsigned char C) { return (unsigned char *)FONT_FixedSys + (((u32)C) << 4); } void DRawTEXT_Soft2(u8 *pTEXT,u32 *pBase,s32 X, s32 Y, s32 Pitch , u32 Height , u32 Color , u32 X2 , u32 Y2 , u32 BackColor = 0 , DrwTEXT_UI *DTI = NULL) { u32 *pDEST,*pBaseEnd; s32 XEnd,YEnd; s32 ImgWidth = 16; pDEST = pBase; XEnd = X;YEnd = Y; if (DTI && DTI->FONT_Image) ImgWidth = DTI->FONT_Metrix->tmHeight; if (!DTI) { if (Y < -ImgWidth) return; if (Y > Height + ImgWidth) return; } pBaseEnd = pBase + Pitch*Height; if (X2) X2=1; if (Y2) Y2=1; if (FONT_FixedSys[0][0] != 0) FONT_FixedSysCorrect((unsigned char *)FONT_FixedSys); if (pBase > pBaseEnd) { pBase = pBaseEnd; pBaseEnd = pDEST; } pDEST += (Y-1 + ImgWidth) * (Pitch << Y2) + X; while (*pTEXT ) { u8 Value,ValueOr,ValueXOr,*pValue; u32 CounterX,CounterY; u32 *pDESTSave; ValueXOr = ValueOr = 0; pDESTSave = pDEST; if (DTI) { if (((DTI->CurrentCursorPos == DTI->CursorPos) ) /*|| ((DTI->CurrentCursorPos == DTI->CursorPos-1) && !(*(pTEXT+1)))*/) { DTI->CursorPosX = XEnd; DTI->CursorPosY = YEnd; if ( (!(DTI->Age & 256))) { if (DTI->InsertMode) ValueOr = 0xff; else if (DTI->CurrentCursorPos == DTI->CursorPos-1) ValueOr = 3<<6; else ValueOr = 3; } } if (((DTI->CurrentCursorPos >= DTI->SelStart) && (DTI->CurrentCursorPos < DTI->SelEnd)) || ((DTI->CurrentCursorPos >= DTI->SelEnd) && (DTI->CurrentCursorPos < DTI->SelStart))) ValueXOr = 0xff; } pValue = GSP_GetCharPtr(*(pTEXT)); if (DTI && DTI->ModePassword) { if (pTEXT[1] == 0) pValue = GSP_GetCharPtr(' '); else pValue = GSP_GetCharPtr('*'); } unsigned char CurrentChar; CurrentChar = *pTEXT; /* Draw Standar char 8x16 */ if (!DTI || (DTI->FONT_Image == NULL)) { CounterY = ImgWidth; while (CounterY--) { Value = *(pValue++) | ValueOr; Value ^= ValueXOr; CounterX = 8; while (CounterX--) { u32 Draw = (pDEST > pBase) && (pDEST < pBaseEnd) && (XEnd <= Pitch - 8 ) && (XEnd >= 0); if (DTI && DTI->DontDraw) Draw = 0; if (Draw) { if (Value & 1) { *pDEST = Color; *(pDEST+X2) = Color; if (Y2) { *(pDEST + Pitch) = Color; *(pDEST + Pitch + X2) = Color; } } else if (DTI) { *pDEST = BackColor; *(pDEST+X2) = BackColor; if (Y2) { *(pDEST + Pitch) = BackColor; *(pDEST + Pitch + X2) = BackColor; }//*/ } } pDEST += 1 << X2; Value >>= 1; } pDEST = pDEST - (8< 31) { u32 CF,CB; CF = Color; CB = BackColor; if (ValueXOr) { CF = BackColor; CB = Color; } if (ValueOr == 0xff) CB = CF; u32 Draw = 1; if (DTI && DTI->DontDraw) Draw = 0; if (DTI && DTI->ModePassword) { CurrentChar = '*'; if (pTEXT[1] == 0) CurrentChar = ' '; else CurrentChar = '*'; } s32 *pFontBASE = DTI->FONT_Image->GetBase(); if (Draw) for (int CX = 0 ; CX < DTI->FONT_CharBounds[CurrentChar].cx ; CX ++) { if ((XEnd + CX > 0) && (XEnd + CX < Pitch)) { for (int CY = 0 ; CY < DTI->FONT_CharBounds[CurrentChar].cy ; CY ++) { if (((pDEST - CY*Pitch > pBase) && (pDEST < pBaseEnd)) && (pDEST + CX - CY * Pitch > pBase) && (pDEST + CX - CY * Pitch < pBaseEnd)) { if (DTI->FONT_AlphaMode) { u32 Alpha; Alpha = ((u32)pFontBASE[DTI->FONT_CharPos[CurrentChar].cx+CX + (DTI->FONT_Image->SY - DTI->FONT_CharPos[CurrentChar].cy-CY-1) * DTI->FONT_Image->PITCH])>>24; if (Alpha) { u32 BlenddedCF,BlenddedCB; BlenddedCF = ((((CF & 0xff00ff) * Alpha)>>8) & 0xff00ff) + (((((CF & 0xff00ff00)>>8) * Alpha)) & 0xff00ff00); Alpha ^= 255; BlenddedCB = ((((CB & 0xff00ff) * Alpha)>>8) & 0xff00ff) + (((((CB & 0xff00ff00)>>8) * Alpha)) & 0xff00ff00); pDEST[CX - CY * Pitch] = BlenddedCF + BlenddedCB ; } else pDEST[CX - CY * Pitch] = CB; } else if (pFontBASE[DTI->FONT_CharPos[CurrentChar].cx+CX + (DTI->FONT_Image->SY - DTI->FONT_CharPos[CurrentChar].cy-CY - 1) * DTI->FONT_Image->PITCH]) { pDEST[CX - CY * Pitch] = CF; } else pDEST[CX - CY * Pitch] = CB; if ((ValueOr == 3<<6) && (CX>=(DTI->FONT_CharBounds[CurrentChar].cx-2))) pDEST[CX - CY * Pitch] = CF; if ((ValueOr == 3) && (CX<=2)) pDEST[CX - CY * Pitch] = CF; } } } } } } if (DTI) { if ((DTI->MouseY < Y + ImgWidth)) { if (DTI->MouseX >= XEnd) DTI->MouseToCursor = DTI->CurrentCursorPos; } DTI->CurrentCursorPos++; } if (!DTI || (DTI->FONT_Image == NULL)) { XEnd += 8 << X2; pDEST = pDESTSave + (8<FONT_CharBounds[CurrentChar].cx) << X2; pDEST = pDESTSave + ((DTI->FONT_CharBounds[CurrentChar].cx)<CurrentCursorPos++; DTI->XEnd = XEnd; } } void DRawTEXT_Soft(u8 *pTEXT,u32 *pBase,u32 X, u32 Y, s32 Pitch , u32 Height , u32 Color , u32 X2 , u32 Y2) { u8 *PtextBase; PtextBase = pTEXT; while (*pTEXT) { if (*pTEXT == '\n') { DRawTEXT_Soft2(PtextBase,pBase,X, Y, Pitch , Height , Color , X2 , Y2); Y -= 16; PtextBase = pTEXT+1; } pTEXT++; } DRawTEXT_Soft2(PtextBase,pBase,X, Y, Pitch , Height , Color , X2 , Y2); } u32 GetNumberOfLines(u8 *pTEXT) { u32 Ret; Ret = 0; while (*pTEXT++) { if (*pTEXT == '\n') Ret++; } return Ret + 1; } u32 GetLenght(u8 *pTEXT) { u32 Ret; Ret = 0; while (*pTEXT && (*pTEXT != '\n')) { Ret++; pTEXT++; } return Ret; } void DRawTEXT_Soft_B_Centered(u8 *pTEXT,u32 *pBase,s32 Pitch , u32 Height , u32 Color) { u32 ulNumberOfLine; s32 Y,X,L; ulNumberOfLine = GetNumberOfLines(pTEXT); Y = (Height>>1) + (ulNumberOfLine * 16)/2 - 16; while (ulNumberOfLine--) { L = GetLenght(pTEXT); X = (Pitch >> 1) - 4 * L ; if (L & 1) X -= 4; DRawTEXT_Soft2(pTEXT,pBase,X, Y, Pitch , Height , Color , 0, 0); Y-=16; pTEXT+=L + 1; } } void DRawTEXT_UserInterface(unsigned char *pTEXT,u32 *pBase,s32 Pitch , u32 Height , DrwTEXT_UI *D_UI) { u8 *PtextBase,*PtextBaseCursor,*ptextBase00; s32 X,Y; X = D_UI->X; Y = D_UI->Y; D_UI->YEnd = Y; ptextBase00 = PtextBase = pTEXT; PtextBaseCursor = pTEXT + D_UI->CursorPos; DRawTEXT_Soft2(PtextBase,pBase,X, Y, Pitch , Height , D_UI->ColorFront , 0 , 0 , D_UI->ColorBack,D_UI); } void DRawTEXT_Soft_B(u8 *pTEXT,u32 *pBase,u32 X, u32 Y, s32 Pitch , u32 Height , u32 Color) { DRawTEXT_Soft(pTEXT,pBase,X + 1, Y + 1, Pitch , Height , 0 , 0 , 0); DRawTEXT_Soft(pTEXT,pBase,X + 1, Y - 1, Pitch , Height , 0 , 0 , 0); DRawTEXT_Soft(pTEXT,pBase,X - 1, Y + 1, Pitch , Height , 0 , 0 , 0); DRawTEXT_Soft(pTEXT,pBase,X - 1, Y - 1, Pitch , Height , 0 , 0 , 0); DRawTEXT_Soft(pTEXT,pBase,X , Y , Pitch , Height , Color , 0 , 0); } void DRawTEXT_Soft_B2x(u8 *pTEXT,u32 *pBase,u32 X, u32 Y, s32 Pitch , u32 Height , u32 Color) { Y>>=1; DRawTEXT_Soft(pTEXT,pBase,X + 1, Y + 1, Pitch , Height , 0 , 1 , 1); DRawTEXT_Soft(pTEXT,pBase,X + 1, Y - 1, Pitch , Height , 0 , 1 , 1); DRawTEXT_Soft(pTEXT,pBase,X - 1, Y + 1, Pitch , Height , 0 , 1 , 1); DRawTEXT_Soft(pTEXT,pBase,X - 1, Y - 1, Pitch , Height , 0 , 1 , 1); DRawTEXT_Soft(pTEXT,pBase,X , Y , Pitch , Height , Color , 1 , 1); }