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