| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
- 43 -
E.6. КлавиатураF
E6.1. Клавиатура IBM PC/XTF
Связь с клавиатурой осуществляется через порты ППИ 60h и
61h (см. 5.2). При нажатии клавиши происходит аппаратное
прерывание IRQ1, связанное с вектором Int 9. Если Вы хотите
обрабатывать это прерывание сами, то программа обработки
прерывания должна иметь следующий вид:
Int_09h:
push ax
push di
push es
in al,60h ;скан. код клавиши из РА
les di,buffer ;адрес буфера
stosb ;сохранить код в буфере
pop es
pop di
in al,61h ;ввод порта РВ
mov ah,al
or al,80h ;установить бит "подтверждения ввода"
out 61h,al
xchg ah,al ;вывести старое значение РВ
out 61h,al
mov al,20h ;послать сигнал EOI
out 20h,al ;контроллеру прерываний
pop ax
iret
Перечень скан-кодов всех клавиш приведен в приложении 1. Вы
можете запретить прерывания от клавиатуры либо маскировкой бита
1 в регистре IMR контроллера прерываний, либо установкой бита 6
порта РВ ППИ:
in al,21h ;чтение IMR
or al,2 ;установка бита 1
out 21h,al ;запись IMR
или
in al,61h ;чтение РВ
or al,40h ;установка бита 6
out 61h,al ;запись РВ
Для разрешения работы клавиатуры необходимо выполнить
обратные действия.
- 44 -
E6.2. Клавиатура IBM PC ATF
Взаимодействие с клавиатурой в PC AT базируется на
микропроцессоре Intel 8042; благодаря этому программист имеет
гораздо большие возможности по управлению клавиатурой, нежели в
PC/XT.
Управление клавиатурой производится обращением к порту
ввода-вывода 64h. Для совместимости со старыми ПЭВМ допустимо
использование порта 60h. Если приведенные ниже примеры не
работают на Вашей ПЭВМ, то используйте порт 60h.
Порт 64h предназначен для вывода команд и данных и для
чтения состояния клавиатуры. Обшая схема посылки команд клавиа-
турe такова:
cli ;запрет прерываний
call wait_kbd ;ожидание готовности клавиатуры
mov al,cmd_code ;код команды
out 64h,al ;вывод в порт
sti ;разрешение прерываний
Для команд, сопровождающихся байтом данных, эта схема
принимает вид:
cli
call wait_kbd
mov al,cmd_code ;код команды
out 64h,al
call wait_kbd
mov al,data_value ;байт данных
out 64h,al
sti
Проверка ожидания готовности клавиатуры может иметь вид:
wait_kbd:
mov cx,2500h ;задержка порядка 10 мсек
test_kbd:
in al,64h ;читаем состояние клавиатуры
test al,2 ;проверка бита готовности
loopnz test_kbd
ret
Авторам известны следующие команды контроллера клавиатуры
(этот список, вероятно, не полон и может содержать ошибки, т. к.
собран из различных источников):
Код команды Описание
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
0FFh Сброс клавиатуры и запуск внутреннего теста.
0FEh Повторить последнюю передачу.
0FDh Вызов прерывания IRQ1.
- 45 -
0F6h Привести клавиатуру в исходное состояние и
разрешить сканирование.
0f5h Привести клавиатуру в исходное состояние и
запретить сканирование.
0F4h Сбросить буфер клавиатуры и начать сканирование.
0F3h Задать задержку и скорость ввода символов.
Первоначально клавиатура начинает повторять
нажатую клавишу через 0,5 сек со скоростью
10 повторов в секунду. Вы можете изменить эти
параметры, послав следующий байт данных:
7 6 5 4 3 2 1 0
ЪДДВДДВДДВДДВДДВДДВДДВДДї
і0 і і і Биты:
АДДБДДЕДДБДДБДДБВДБДДБДДЩ ДДДДД
і АДДДДДДДД> 0-4:количеств повторов в секунду
АДДДДДДДДДДДДДДДДДД> 5-6:начальная задержка в мсек:
00=250, 01=500, 10=750, 11=1000
Количество повторов задается следующей таблицей:
ЪДДДДДДВДДДДДДДДВДДДДДДВДДДДДДДДВДДДДДДВДДДДДДДДї
іКонст.іСкоростьіКонст.іСкоростьіКонст.іСкоростьі
ГДДДДДДЕДДДДДДДДЕДДДДДДЕДДДДДДДДЕДДДДДДЕДДДДДДДДґ
і 00h і 30.0 і 0Bh і 10.9 і 16h і 4.3 і
і 01h і 26.7 і 0Ch і 10.0 і 17h і 4.0 і
і 02h і 24.0 і 0Dh і 9.2 і 18h і 3.7 і
і 03h і 21.8 і 0Eh і 8.6 і 19h і 3.3 і
і 04h і 20.0 і 0Fh і 8.0 і 1Ah і 3.0 і
і 05h і 18.5 і 10h і 7.5 і 1Bh і 2.7 і
і 06h і 17.1 і 11h і 6.7 і 1Ch і 2.5 і
і 07h і 16.0 і 12h і 6.0 і 1Dh і 2.3 і
і 08h і 15.0 і 13h і 5.5 і 1Eh і 2.1 і
і 09h і 13.3 і 14h і 5.0 і 1Fh і 2.0 і
і 0Ah і 12.0 і 15h і 4.6 і і і
АДДДДДДБДДДДДДДДБДДДДДДБДДДДДДДДБДДДДДДБДДДДДДДДЩ
0EEh Эхо (для диагностики). Просто возвращает 0ЕЕh.
0EDh Управление светодиодами клавиатуры. Для включения
или выключения светодиодов пошлите такой байт
данных:
7 6 5 4 3 2 1 0
ЪДДВДДВДДВДДВДДВДДВДДВДДї
іX X X X X і і і і Биты:
АДДБДДБДДБДДБДДБВДБВДБВДЩ ДДДДД
і і АДД> 0: 1 = включить ScrollLock
і АДДДДД> 1: 1 = включить NumLock
АДДДДДДДД> 2: 1 = включить CapsLock
0DFh Разрешить 20-битовую адресацию.
0DDh Запретить 20-битовую адресацию.
- 46 -
0D1h Запись в порт вывода 8042.
0D0h Чтение порта вывода 8042.
0C0h Чтение порта ввода 8042.
0AEh Разрешение клавиатуры.
0ADh Запрещение клавиатуры.
0ACh Чтение ОЗУ контроллера.
0ABh Тест синхронизации и данных.
0AAh Внутренний тест клавиатуры.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
- 47 -
E7. ДисплеиF
E7.1. Общее описаниеF
Программирование дисплея ПЭВМ IBM PC определяется типом
дисплейного адаптера и типом видеомонитора, подключенного к
этому адаптеру. В этой главе описаны четыре наиболее
распространенных видеоадаптера IBM PC, а именно:
- монохромный графический адаптер MGA;
- цветной графический адаптер CGA;
|
adfun.ru
|
|
|
|