Курсовая: Русификатор - текст курсовой. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Курсовая

Русификатор

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Курсовая работа
Язык курсовой: Русский
Дата добавления:   
 
Скачать
Архив Zip, 193 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникальной курсовой работы

Узнайте стоимость написания уникальной работы

16 Институт Переподготовки Кадров Уральского Г осударственного Техническ ого Университета Кафедра микропроцессорной техники Оценка работы Члены комиссии ПРОГРАММА – РЕЗИДЕНТ ПЕРЕКЛЮЧАТЕ ЛЯ АЛЬТЕРНАТИВНОЙ КОДИРОВКИ Курсовая работа Пояснительная записка Руководитель к.т.н . доцент В . П . Кулюкин Слушатель Группа СП -913 А . А . Соколов ЕКАТЕРИНБУРГ 1997 Содержание ПОСТАНО ВКА ЗАДАЧИ...................- ВВЕДЕНИЕ ............................3 1. ОПИСАНИЕ ПРОГРАММЫ ...............4 1.1 ОБРАБОТКА 09 h ...................7 1.2 ОБРАБОТКА 10 h ...................9 ЗАКЛЮЧЕ НИЕ ..........................10 БИБ ЛИОГРАФИЧЕСКИЙ СПИСОК ...........11 ПРИЛОЖЕНИЕ 1 ТЕКСТ ПРОГРАММЫ ........12 ВВЕДЕНИЕ С само го нача ла существования IBM совместимых компьютеров встала проблема вывода на экран и ввода с клавиатуры символов кириллицы . Только начиная с версии MS DOS 6.0 появилась поддержка национальной 866 страницы . До появления версии MS DOS 6.0 проблему решали так назыв аемые програ ммы русификаторы . Эти программы замещали симв олы дополнительного кодового набора . Делалось это путем подстановки шрифта прошитого в ПЗУ видеоадаптера своим . Эти программы были практически на каждом компьютере . Самыми из вестными из них являлись ENHFONT , KEYRUSS , LMSCR & LMKEY , KYRILLIC . Был еще один способ решить проблему русификации - пе репрограммировать ПЗУ видеоадаптера , но он не нашел большого применения. 1. ОПИСАНИЕ ПРОГРАММЫ Поскольк у данная программа относиться к типу программ , которые меняют шрифт загружающийся из ПЗУ видеоадаптера , то сначала она открывает файл находящийся в этом же ката логе в котором находиться шрифт 8х 16. После этого программа читает 4096 байт и помещает их в бу ф ер . Затем загружаются полученные данные в видеобуфер , другими с ловами меняется текущий шрифт на новый . Сл едующий шаг программы это получение , сохранен ие и установка своих обработчиков 10 h и 09 h прерываний . П осле данных операций программа завершает рабо ту и остается резидентной используя 27 h прерывание , причем в регистре DX находится первый байт памят и после резидентной части программы. Общая логика работы показана на р ис . 1.1 и 1.2 Рис . 1.1 Рис . 1.2 1.1 ОБРАБОТКА INT 09 h Обработка 09 h про граммой представлена на рис . 1.3 и 1.4 Рис . 1.3 Рис . 1.4 1.2 ОБРАБОТКА INT 10 h Обработка 10 h про граммой представлена на рис . 1.5 Рис . 1.5 ЗАКЛЮЧЕНИЕ Данная программа имеет следующие недо статки : · Может ис пользоваться только в ДОС - режиме · Клавиша переключающая раскладки неизменяемая · Во время работы программы файл со шрифтом должен находиться в том же каталоге , где нах одится русификатор · Файл шри фта должен быть только с именем « 8х 16. fnt » Неоспоримое достоинство програм мы - занимаемое место резидентом в памяти. БИБЛИОГРАФИЧ ЕСКИЙ СПИСОК 1. Абель П . Язык Ассемблера для IBM PC и программирования М .: Высшая школа , 1992. 447с. 2. Гук М . Аппаратные средства IBM PC СПб .: Питер , 1996. 224с. ПРИЛОЖЕНИЕ 1 ТЕКС Т ПРОГРАММЫ .MODEL TINY ; Все се гменты в одном .CODE ; Как ком файл .STARTUP .286 LOCALS ; Б лизкие переходы JUMPS jmp Install RSHIFT_SCAN EQU 36h ; RSHIFT scan code FLAGS record inRussian:1,shiftPressed:1,keyPressed:1,reserved:6 iFlags FLAGS <0, 0, 0, 0> STable db ' йцукенгшщзхъфывап p олджэячсмитьбюЙЦУКЕ H ГШЩЗХЪФЫВАПРО ЛДЖЭЯЧ СМИТЬБЮ ' Hook09 proc far ; об p абока int 09h push ax push bx push cx push di push ds push es mov ax,cs ;сегмент резидента mov ds,ax ; данные в сегменте кода in al,60h ; ситываем mov ah,al ; и сохраняем cmp al , RSHIFT _ SCAN ; ? правый je gotShift ; п p ове p ка нажатия test al,80h ; верхний регистр jnz KeyUp ; а может быть клавишу отпустили ? нет ? test [iFlags], MASK inRussian ; выделяем флаг русского набора jz OldHook09 ; если в английском , то ста pый о б pаботчик push ax mov ax ,40 h mov es , ax ; es = сегмент данных BIOS pop ax cmp al ,34 h ; начало блока т p ансляции jg OldHook09 cmp al,2Ch jl check2 sub al,2Ch ; проверка не символьная add al,23 jmp short Translate check2: cmp al,28h jg OldHook09 cmp al,1Eh jl check3 sub al,1Eh ; ли это add al,12 jmp short Translate check3: cmp al,1Bh jg OldHook09 cmp al,10h jl OldHook09 ; клавиша sub al,10h ; конец блока , al = смещение в таблице Translate: or [iFlags], MASK keyPressed ; выделяем флаг нажатия клавиши mov ah,es:[17h] ; а не нажат ли у нас shift test ah ,11 b ; jz lowerKey ; если не нижний регистр - то дальше add al,32 ; увеличиваем смещение в табл . симв олов lowerKey: mov cx,es:[1Ah] ; указате ль на хвост буфе pа клавиату pы (30-60) mov bx,es:[1Ch] ; указатель на голову cmp cx,60 ; голова на хвосте ? je h_End ; да - на хвост inc cx ; сместимся inc cx cmp cx,bx ; голова и хвост похожи ? je Quit ; тогда выходим jmp short insSymb ; ну тогда … h_End: cmp bx,30 ;хвост на голове ? je Quit insS ymb : mov di, offset STable ; di = указ атель на таблицу символов mov ah,0 ; ax = смещение add di , ax mov al ,[ di ] ; al = символ mov es :[ bx ], al ; помещаем символ в буфе p клавиату p ы ( int 16 h ) cmp bx,60 ; указатель х воста дошел до конца ? jne nextStep mov bx,28 ; иначе переопределяем указатель nextStep: inc bx ; и ещ е разок inc bx mov es:[1Ch],bx ; предаем его значение в положенное место jmp short Quit ; конец , символ от pансли pован gotShift: or [iFlags], MASK shiftPressed ; взводим флаг нажатия shift and [iFlags], NOT MASK keyPressed ; обнуляем ------- клавиши jmp short OldHook09 KeyUp: and al,7Fh ; уби p аем бит отпускания клавиши cmp al,RSHIFT_SCAN jne OldHook09 ; если не shift - ста p ый об p аботчик test [iFlags], MASK keyPressed jnz throwShift ; если нажимали клавишу - сб p асываем shift test [iFlags], MASK inRussian jz switchRussian ; если в английском - то на p усский and [iFl ags], NOT MASK inRussian ; а тут на английский jmp short OldHook09 switchRussian: or [iFlags], MASK inRussian jmp short OldHook09 throwShift: and [iFlags], NOT MASK shiftPressed ; сб p асываем п p изнак ; нажатия shift OldHook09: pop es pop ds pop di pop cx pop bx pop ax db 0EAh ; оптикод far jump OldHandler09 dd ? ; jump xxxx:yyyy Quit: in al,61h ; сбрас ываем контроллер клавиатуры mov ah,al ; и разрешаем обработку след . симв. or al,80h ; клави атура блокирована ? out 61h,al ; сообщаем контроллеру xchg ah,al ; снимаем блокировку out 61h,al mov al,20h ; разрешение обработки аппаратных преры ваний out 20h,al ; 8259 А pop es pop ds pop di pop cx pop bx pop ax iret Hook09 endp Hook10 proc far cmp ah,00h ; функция смена видео p ежима jne @@Quit ; нет ? передаем управление старому обработчику cmp al,2 ; видеорежим 2 или 3 ? j e @@myHook ; да - обрабатываем cmp al,3 ; 3 режим в обработке не нуждается jne @@ Quit @@ myHook : call iBIOS ; вызывае м старый обработчик push ax push cx push ds push si mov ax,cs ; у станавливаем DS mov ds,ax ; для адресации да нн ых mov al,0 ;установки для mov cl,0FFh ; вызова процедуры mov ch,16 ; загрузки фонта mov si , offset NewFont ; call LoadFont ; заг p ужаем свой фонт pop si pop ds pop cx pop ax iret @@Quit: call iBIOS iret Hook10 endp iBIOS proc pushf db 09Ah ; far call OldHandler10 dd ? ret iBIOS endp ;
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Как мужчина может знать, что хочет женщина, если он даже не может понять, для чего она сначала выщипывает брови, а потом заново их рисует?
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, курсовая по программированию "Русификатор", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru