Я только о том, чтобы мад воспринимал символы из второй половины таблицы ASCII. И строго говоря это не русификация и даже не кириллизация, а интернационализация и UTFизация
Возьмем, к примеру TBAMUD
Файл comm.c, в функции perform_socket_read
ищем строку с проверкой isascii(*ptr)&&isprint(*ptr)
и меняем ее на ((unsigned char)*ptr)>=32U
Почему так коряво, да потому что по умолчанию *ptr – это signed *char
Я там и единицу ставил (то есть всегда true), тоже работало, но лучше от символов, меньших пробела, защититься 😉
Возможно есть и другие места, где придется слегка модифицировать код, чтобы нормально проходили старшие символы (>127). И не надо забывать, что char signed!
UPDATE. 01-Apr-2017. То же касается и русификации ROM и вообще всех детей Diku
UPDATE. 03-Dec-2017. И не надо забывать, от командах протокола telnet, которые могут появиться, например в начале строки и испортить картину. Например, испортится ввод пароля или ввод команд. Вот пример таких последовательностей FF FD 01 и FF FE 01