Реферат: Программа – резидент переключателя альтернативной кодировки (русификатор)
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Институт ПереподготовкиКадров
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Уральского Государственного Технического Университета
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Кафедра микропроцессорной техники
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Оценка работы
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Члены комиссии
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> ПРОГРАММА – РЕЗИДЕНТ <span Courier New";mso-bidi-font-family:«Times New Roman»"> ПЕРЕКЛЮЧАТЕЛЯ АЛЬТЕРНАТИВНОЙ <span Courier New";mso-bidi-font-family:«Times New Roman»"> КОДИРОВКИ<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Курсовая работа
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Пояснительная записка
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Руководитель
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> к.т.н. доцент В. П. Кулюкин
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Слушатель
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Группа СП-913 А. А. Соколов
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> ЕКАТЕРИНБУРГ
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> 1997
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> Содержание
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> ПОСТАНОВКАЗАДАЧИ...................-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> ВВЕДЕНИЕ............................3
<span Times New Roman"">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> 1. ОПИСАНИЕ ПРОГРАММЫ...............4<span Courier New";mso-bidi-font-family:«Times New Roman»"> 1.1 ОБРАБОТКА 09
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">h.<span Courier New"; mso-bidi-font-family:«Times New Roman»">.................<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">.7<span Courier New"; mso-bidi-font-family:«Times New Roman»"><span Times New Roman"">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> 1.2 ОБРАБОТКА <span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">1<span Courier New"; mso-bidi-font-family:«Times New Roman»">0<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">h.<span Courier New"; mso-bidi-font-family:«Times New Roman»">.................<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">.9<span Courier New"; mso-bidi-font-family:«Times New Roman»"><span Courier New";mso-bidi-font-family:«Times New Roman»"> ЗАКЛЮЧЕНИЕ..........................10
<span Courier New";mso-bidi-font-family:«Times New Roman»"> БИБЛИОГРАФИЧЕСКИЙ СПИСОК...........11
<span Courier New";mso-bidi-font-family:«Times New Roman»"> ПРИЛОЖЕНИЕ 1 ТЕКСТПРОГРАММЫ........12
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> ВВЕДЕНИЕ
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> С самого начала существования
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">IBM<span Courier New"; mso-bidi-font-family:«Times New Roman»"> совместимых компьютеров всталапроблема вывода на экран и ввода с клавиатуры символов кириллицы. Тольконачиная с версии <span Courier New";mso-bidi-font-family:«Times New Roman»; mso-ansi-language:EN-US">MS DOS 6.0 <span Courier New";mso-bidi-font-family:«Times New Roman»">появиласьподдержка национальной 866 страницы. До появления версии <span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">MS DOS 6.0<span Courier New"; mso-bidi-font-family:«Times New Roman»"> проблему решали так называемыепрограммы русификаторы. Эти программы замещали символы дополнительного кодовогонабора. Делалось это путем подстановки шрифта прошитого в ПЗУ видеоадаптерасвоим. Эти программы были практически на каждом компьютере. Самыми известнымииз них являлись <span Courier New";mso-bidi-font-family:«Times New Roman»; mso-ansi-language:EN-US">ENHFONT, KEYRUSS, LMSCR&LMKEY, KYRILLIC. <span Courier New"; mso-bidi-font-family:«Times New Roman»">Был еще один способ решить проблемурусификации — перепрограммировать ПЗУ видеоадаптера, но он не нашел большогоприменения.<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-fareast-font-family:«Courier New»">1.
<span Courier New"; mso-bidi-font-family:«Times New Roman»">ОПИСАНИЕ ПРОГРАММЫ<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> Поскольку данная программа относиться ктипу программ, которые меняют шрифт загружающийся из ПЗУ видеоадаптера, тосначала она открывает файл находящийся в этом же каталоге в котором находитьсяшрифт 8х16. После этого программа читает 4096 байт и помещает их в буфер. Затемзагружаются полученные данные в видеобуфер, другими словами меняется текущийшрифт на новый. Следующий шаг программы это получение, сохранение и установкасвоих обработчиков 10
<span Courier New";mso-bidi-font-family:«Times New Roman»; mso-ansi-language:EN-US">h <span Courier New";mso-bidi-font-family:«Times New Roman»">и <span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">09h<span Courier New"; mso-bidi-font-family:«Times New Roman»"> прерываний. После данных операцийпрограмма завершает работу и остается резидентной используя 27<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">h<span Courier New"; mso-bidi-font-family:«Times New Roman»"> прерывание, причем в регистре <span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">DX<span Courier New"; mso-bidi-font-family:«Times New Roman»"> находится первый байт памяти послерезидентной части программы.<span Courier New";mso-bidi-font-family:«Times New Roman»"> Общая логика работы показана на рис. 1.1и 1.2
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<img src="/cache/referats/897/image002.gif" v:shapes="_x0000_s1027">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Рис. 1.1
<img src="/cache/referats/897/image004.gif" v:shapes="_x0000_s1028">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Рис. 1.2
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> 1.1 ОБРАБОТКА
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">INT 09h<span Courier New";mso-bidi-font-family: «Times New Roman»;mso-ansi-language:EN-US">
<span Courier New";mso-bidi-font-family: «Times New Roman»;mso-ansi-language:EN-US">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">Обработка
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">09h<span Courier New"; mso-bidi-font-family:«Times New Roman»"> программой представлена на рис. 1.3 и1.4<span Courier New";mso-bidi-font-family:«Times New Roman»;mso-ansi-language: EN-US"><span Courier New";mso-bidi-font-family: «Times New Roman»;mso-ansi-language:EN-US">
<span Courier New";mso-bidi-font-family: «Times New Roman»;mso-ansi-language:EN-US">
<img src="/cache/referats/897/image006.gif" v:shapes="_x0000_s1031">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">
<span Courier New";mso-bidi-font-family: «Times New Roman»">Рис. 1.3<img src="/cache/referats/897/image008.gif" v:shapes="_x0000_s1029">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Рис.1.4
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">1.2 ОБРАБОТКА
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">INT <span Courier New"; mso-bidi-font-family:«Times New Roman»">10<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">h<span Courier New"; mso-bidi-font-family:«Times New Roman»"><span Courier New";mso-bidi-font-family: «Times New Roman»;mso-ansi-language:EN-US">
<span Courier New";mso-bidi-font-family: «Times New Roman»;mso-ansi-language:EN-US">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">Обработка 10
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">h<span Courier New"; mso-bidi-font-family:«Times New Roman»"> программой представлена на рис. 1.5<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<img src="/cache/referats/897/image010.gif" v:shapes="_x0000_s1032">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Рис. 1.5
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">ЗАКЛЮЧЕНИЕ
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> Данная программа имеет следующиенедостатки:
·<span Times New Roman"">
<span Courier New";mso-bidi-font-family:«Times New Roman»">Можетиспользоваться только в ДОС — режиме·<span Times New Roman"">
<span Courier New";mso-bidi-font-family:«Times New Roman»">Клавишапереключающая раскладки неизменяемая·<span Times New Roman"">
<span Courier New";mso-bidi-font-family:«Times New Roman»">Вовремя работы программы файл со шрифтом должен находиться в том же каталоге, гденаходится русификатор·<span Times New Roman"">
<span Courier New";mso-bidi-font-family:«Times New Roman»">Файлшрифта должен быть только с именем «8<span Courier New";mso-bidi-font-family: «Times New Roman»;mso-ansi-language:EN-US">х16.fnt<span Courier New"; mso-bidi-font-family:«Times New Roman»">»<span Courier New";mso-bidi-font-family:«Times New Roman»">Неоспоримоедостоинство программы — занимаемое месторезидентом в памяти.
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">БИБЛИОГРАФИЧЕСКИЙ СПИСОК
<span Courier New"; mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-fareast-font-family:«Courier New»">1.<span Times New Roman"">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Абель П. Язык Ассемблера для IBM PC и<span Courier New";mso-bidi-font-family:«Times New Roman»">программирования М.:Высшая школа, 1992. 447с.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New"; mso-fareast-font-family:«Courier New»">2.<span Times New Roman"">
<span Courier New"; mso-bidi-font-family:«Times New Roman»"> Гук М. Аппаратные средства IBM PC СПб.: Питер,<span Courier New";mso-bidi-font-family:«Times New Roman»"> 1996. 224с.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> ПРИЛОЖЕНИЕ 1
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> ТЕКСТ ПРОГРАММЫ
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">.MODEL TINY
<span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:EN-US;layout-grid-mode:line">; <span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;layout-grid-mode:line">Все сегменты в одном<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">.CODE
<span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:EN-US;layout-grid-mode:line">;<span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;layout-grid-mode:line"> Как ком файл<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">.STARTUP
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">.286
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">LOCALS
<span Courier New";mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language: EN-US;layout-grid-mode:line">; Близкие переходы<span Courier New";mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode: line"><span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">JUMPS
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">jmp Install
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">RSHIFT_SCAN EQU 36h; RSHIFT scan code
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">FLAGS record inRussian:1,shiftPressed:1,keyPressed:1,reserved:6
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">iFlags FLAGS <0, 0, 0,0>
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">STable db
<span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;layout-grid-mode:line">'йцукенгшщзхъфывапpолджэячсмитьбюЙЦУКЕHГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ'<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">Hook09proc far; обpабока int 09h
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">pushax
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">pushbx
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">push cx
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">pushdi
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">pushds
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">pushes
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov ax,cs ; сегмент резидента
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov ds,ax ; данные в сегменте кода
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">in al,60h ; ситываем
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov ah,al ; и сохраняем
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">cmp al,RSHIFT_SCAN ;? правый
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">je gotShift ; пpовеpка нажатия
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">testal,80h ; верхний регистр
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jnz KeyUp ; а может быть клавишу отпустили?нет ?
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">test[iFlags], MASK inRussian; выделяем флаг русского набора
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jz OldHook09 ; если в английском, то стаpыйобpаботчик
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">pushax
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov ax,40h
<span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:EN-US;layout-grid-mode:line"><span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov es,ax ; es = сегмент данных BIOS
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">pop ax
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">cmp al,34h ; начало блока тpансляции
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jg OldHook09
<span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:EN-US;layout-grid-mode:line"><span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">cmp al,2Ch
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jl check2
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">sub al,2Ch
<span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:EN-US;layout-grid-mode:line"> <span Courier New";mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode: line">;<span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:EN-US;layout-grid-mode:line"> <span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;layout-grid-mode:line">проверка не символьная<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">add al,23
<span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:EN-US;layout-grid-mode:line"><span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jmp short Translate
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">check2:
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">cmp al,28h
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jg OldHook09
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">cmp al,1Eh
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jl check3
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">sub al,1Eh
<span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:EN-US;layout-grid-mode:line"> <span Courier New";mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode: line">; ли это<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">add al,12
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jmp short Translate
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">check3:
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">cmp al,1Bh
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jg OldHook09
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">cmp al,10h
<span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:EN-US;layout-grid-mode:line"><span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jl OldHook09
<span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:EN-US;layout-grid-mode:line"> <span Courier New";mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode: line">; клавиша<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language:EN-US; layout-grid-mode:line"><span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">sub al,10h ; конец блока, al = смещение втаблице
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">Translate:
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">or [iFlags], MASK keyPressed; выделяем флагнажатия клавиши
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov ah,es:[17h] ; а не нажат ли у нас shift
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">testah,11b ;
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jz lowerKey ; если не нижний регистр — то дальше
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">add al,32 ; увеличиваем смещение в табл.символов
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">lowerKey:
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov cx,es:[1Ah]; указатель на хвост буфеpаклавиатуpы (30-60)
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov bx,es:[1Ch] ; указатель на голову
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">cmp cx,60 ; голова на хвосте?
<span Courier New";mso-hansi-font-family: «Courier New»;color:black;layout-grid-mode:line;mso-char-type:symbol; mso-symbol-font-family:Wingdings;mso-no-proof:yes">J<span Courier New";mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode: line"><span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">je h_End ; да — на хвост
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">inc cx ; сместимся
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">inc cx
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">cmp cx,bx; голова и хвост похожи ?
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">je Quit ; тогда выходим
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jmp short insSymb ; ну тогда …
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">h_End:
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">cmp bx,30 ; хвост на голове ?
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">je Quit
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">insSymb:
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov di, offset STable ; di = указатель на таблицу символов
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov ah,0 ; ax = смещение
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">add di,ax
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov al,[di] ; al = символ
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov es:[bx],al ; помещаем символ в буфеp клавиатуpы (int 16h)
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">cmp bx,60 ; указатель хвоста дошел до конца?
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jne nextStep
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov bx,28 ; иначе переопределяем указатель
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">nextStep:
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">inc bx ; и еще разок
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">inc bx
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov es:[1Ch],bx ; предаем его значение в положенное место
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jmp short Quit ; конец, символ отpанслиpован
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">gotShift:
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">or [iFlags], MASK shiftPressed ; взводим флаг нажатия shift
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">and [iFlags], NOT MASK keyPressed ; обнуляем — клавиши
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jmp short OldHook09
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">KeyUp:
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">and al,7Fh ; убиpаем бит отпускания клавиши
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">cmp al,RSHIFT_SCAN
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jne OldHook09 ; если не shift — стаpый обpаботчик
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">test[iFlags], MASK keyPressed
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jnz throwShift ; если нажимали клавишу — сбpасываемshift
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">test[iFlags], MASK inRussian
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jz switchRussian ; если в английском — то на pусский
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">and [iFlags], NOT MASK inRussian ; а тут на английский
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jmp short OldHook09
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">switchRussian:
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">or [iFlags], MASK inRussian
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">jmp short OldHook09
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">throwShift:
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">and [iFlags], NOT MASK shiftPressed; сбpасываемпpизнак
<span Courier New";mso-bidi-font-family:«Times New Roman»; color:black;layout-grid-mode:line"> ; нажатияshift
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">OldHook09:
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">pop es
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">pop ds
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">pop di
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">pop cx
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">pop bx
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">pop ax
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">db 0EAh ; оптикод far jump
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">OldHandler09dd ? ; jump xxxx:yyyy
<span Courier New";mso-bidi-font-family: «Times New Roman»;color:black;layout-grid-mode:line">Quit:
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">in al,61h ; сбрасываем контроллер клавиатуры
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov ah,al ; и разрешаем обработку след.симв.
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">or al,80h ; клавиатура блокирована ?
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">out 61h,al ; сообщаем контроллеру
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">xchgah,al ; снимаем блокировку
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">out 61h,al
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">mov al,20h ; разрешение обработки аппаратных прерываний
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:line">out 20h,al ; 8259А
<span Courier New"; mso-bidi-font-family:«Times New Roman»;color:black;layout-grid-mode:lin