/* 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.
*/