Оглавление
Предисловие 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