Оглавление
Предисловие 3
Об авторах 6
Как читать эту книгу 7
Глава 1. Ввод-вывод в персональных компьютерах 9
Микропроцессоры Intel 80x86
и их интерфейс ввода-вывода 9
Особенности выполнения ввода-вывода 11
Глава 2. Интервальный таймер 13
Общее описание 13
Управляющий байт таймера 16
Инициализация таймера 17
Чтение счетчика таймера 18
Чтение состояния таймера 20
Режимы работы таймера 23
Назначение каналов таймера в IBM PC 30
Особенности PS/2 32
Глава 3. Часы 35
Регистры часов 35
Программирование часов 39
Глава 4. Программируемый контроллер прерываний 41
Механизм прерываний 41
Контроллер прерываний
и его взаимодействие с процессором 42
Описание режимов работы 46
Программирование контроллера прерываний 49
Глава 5. Контроллер прямого доступа к памяти (DMA) 59
Общее описание 59
Принцип работы контроллера DMA 60
Режимы работы 60
Типы передачи 61
Описание регистров 61
Расширение контроллера DMA для машин.
класса AT и PS/2. 68
Особенности PS/2 70
Программирование DMA 74
Назначение каналов в IBM PC 78
Глава 6. Контроллер гибких дисков 79
Характеристики накопителей и дискет 79
Регистры контроллера 83
Система команд контроллера 88
Регистры состояния 99
Рекомендации по программированию 102
Глава 7. Клавиатура 107
Общее описание 107
Регистры и порты контроллера клавиатуры 111
Команды контроллера клавиатуры 113
Команды управления клавиатурой 119
Команды клавиатуры 122
Команды контроллера клавиатуры PS/2 123
Глава 8. Контроллер последовательного интерфейса 125
Состав контроллера последовательного интерфейса 125
Основы программирования контроллера
последовательного интерфейса 136
Глава 9. Контроллер параллельного порта 147
Общее описание 147
Описание регистров 149
Программирование параллельного порта 152
Глава 10. Дополнительные возможности 153
Управляющий регистр В 153
Управляющий регистр А 155
Немаскируемые прерывания (NMI) 156
Адресная линия 20 (А20) 157
Приложение 1. Порты ввода-вывода 159
Приложение 2. Пример программирования таймера 161
Приложение 3. Пример программирования часов 169
Приложение 4. Пример программирования DMA 181
Приложение 5. Пример программирования
контроллера гибких дисков 185
Приложение 6. Пример программирования
контроллера клавиатуры 203
Приложение 7. Набор scan-кодов З 207
Приложение 8. Пример программирования
параллельного порта 211
Приложение 9. Пример программирования линии А20 215
Список литературы 222