/* BFC02EA0 */ char toupper(char c) { if(ascii_desc[c] & 2) c -= ' '; /* понизить регистр символа */ return c; } unsigned char ascii_desc[128] = { 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x08,0x08,0x08,0x08,0x08,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x18,0x10,0x10,0x10,0x10,0x10,0x10,0x10, 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, /* 0-9 */ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, 0x04,0x04,0x10,0x10,0x10,0x10,0x10,0x10, /* A-Z */ 0x10,0x41,0x41,0x41,0x41,0x41,0x41,0x01, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, 0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, /* a-z */ 0x10,0x42,0x42,0x42,0x42,0x42,0x42,0x02, 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, 0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20 }; /* примечания: тип параметров изменен на char! ascii_desc - BFC0DDB1. это таблица на 128 байт, каждый из них описывает соответсвующий символ из набора ASCII: биты: 0-1: 0 - без регистра, 1 - верхний регистр, 2 - нижний регистр 2 : символ-цифра 3 : управляющий символ (пробел, табуляция и пр.) 4 : cимвол-буква 5 : непечатный символ 6 : символ-шестнадцатеричная цифра 7 : не используется вполне возможно, что в оригинале описание ascii_desc идет через #define. */