Реферат: Программа – резидент переключателя альтернативной кодировки (русификатор)

<span Courier New"; mso-bidi-font-family:«Times New Roman»">                    Институт ПереподготовкиКадров

<span Courier New"; mso-bidi-font-family:«Times New Roman»">    Уральского Государственного Технического Университета

<span Courier New"; mso-bidi-font-family:«Times New Roman»">

<span Courier New"; mso-bidi-font-family:«Times New Roman»">

<span Courier New"; mso-bidi-font-family:«Times New Roman»">             Кафедра микропроцессорной техники

<span Courier New"; mso-bidi-font-family:«Times New Roman»">

<span Courier New"; mso-bidi-font-family:«Times New Roman»">

<span Courier New"; mso-bidi-font-family:«Times New Roman»">

<span Courier New"; mso-bidi-font-family:«Times New Roman»">

<span Courier New"; mso-bidi-font-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

еще рефераты
Еще работы по программированию, базе данных