Вопрос № 178573: Здравствуйте! Помогите пожалуйста написать программу по загружаемым символьным наборам. Задание - заменить букву английского алфавита "u" на соответствующую на клавише букву pусского алфавита "г". После выполнен...
Вопрос № 178573:
Здравствуйте!
Помогите пожалуйста написать программу по загружаемым символьным наборам.
Задание - заменить букву английского алфавита "u" на соответствующую на клавише букву pусского алфавита "г". После выполнения задания восстановить изобpажение на экpане.
Предпочтителен - TASM, но буду рад и другим вариантам. Процессор - 64-битный.
Пример программирования знакогенератора для замены матрицы одного символа приведен в приложении. Предполагается, что видеоадаптер — VGA. Программа это не проверяет. Сначала программа определяет высоту символьной матрицы. Затем, если матрица стандартная (8, 14 или 16 байт), то запрашивается адрес таблицы определения шрифта. Перед вызовом функции регистр CX устанавливается в -1, после возврата из прерывания можно проверить CX — если значение не изменилось, то соответствующая
функция недоступна. (Программа эту проверку не делает.) Затем сохраняется текущая матрица для буквы 'u' и заменяется на матрицу для буквы 'г'. Перед выходом матрица буквы 'u' восстанавливается.
Компилировать в COM-файл.
Программа нормально работает в DOSBOX (у меня используется русификатор UNISCR). В окне DOS в оконном режиме — не работает, в полноэкранном — работает наполовину: матрица 'u' заменяется, но не на 'г'
; — на соответствующем месте в таблице, указатель на которую возвращает ф-я 1130h, рисунок буквы 'u с черточкой'. Чтобы гарантировать замену на 'г', программа должна сама предоставить 3 матрицы: для шрифтов 8x8, 8x14 и 8x16. Вот, например, матрица 8x16:
db 0, 0, 0, 0, 0FEh, 66h, 60h, 60h, 60h, 60h, 60h, 60h, 0F0h, 0, 0, 0 ; г
Успехов!
Приложение:
Ответ отправил: amnick, Студент
Ответ отправлен: 28.05.2010, 17:20
Номер ответа: 261731
Оценка ответа: 5 Комментарий к оценке: Спасибо огромное!!
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261731
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.