Вывод знаков русского алфавита и псевдографики
в консольное окно DOS-режима.

    Всем программистам известно, что скан-коды символов русского алфавита начинаются с числа 128. Но если посмотреть их реальное значения в таблице скан-кодов операционной системы MS-DOS, то они все они отрицательны. Это сделано потому, что на один символ выделяется только один байт оперативной памяти, а в один байт можно записывать числа, входящие только в диапазон от -127 до 127.
    Следовательно, при выводе на экран неанглийской буквы к ее скан-коду добавляется поправочный коэффициент, переводящий код в положительное значение, соответствующее табличному. Но возникает вопрос, чему равен этот коэффициент поправки? Код буквы "А" равен -64, чтобы получить ее табличное значение, равное 128 надо прибавить к реальному скан-коду -64. Применив при для вывода на монитор русского текста такой оператор

             printf( "%c", CharArray[ i ] + 'А' );

Вы частично сможете решить задачу. Вы спросите почему частично? Дело в том, что после буквы "п" в таблице следуют скан-коды псевдографики, вместо положенной русской буквы. Поэтому к оператору поправки придется добавить еще и контроль расположения выводимой буквы в таблице, что будет иметь такой вид:

           if( CharArray[ i ] >= 'А' && CharArray[ i ] < 'р' )
             printf( "%c", CharArray[ i ] + 'А' );
          else
             printf( "%c", CharArray[ i ] + 'р' );

это целиком решит проблему вывода русского текста на экран монитора в режиме консоли MS-DOS.
    Продемонстрировать применение этого принципа вывода руского текста может программа RUSS_CON.EXE, в окне которой наглядно будут отображены отличия массивов скан-кодов:



    Код программы Вы можете вызвать здесь.

Аннотация