Фролов А.В., Фролов Г.В. Аппаратное обеспечение IBM PC: В 2-х ч. Ч. 1.—М.: "ДИАЛОГ-МИФИ", 1992.—208 с— (Библиотека- системного программиста; Т. 2) ISBN 5-86404-024-Х (Т. 2, ч. 1) Учебно-справочное пособие по использованию драйверов и портов ввода/вывода различных устройств компьютера и составлению эффективных программ, использующих все особенности аппаратуры. В первой части подробно описаны клавиатура, мышь, таймер, часы реального времени, асинхронный адаптер, порт параллельной передачи данных. Для описанных устройств приводится методика программирования на всех уровнях - от использования портов ввода/вывода до высокоуровневых средств стандартных библиотек трансляторов Microsoft QuickC 2.5 и С 6.0. Книга содержит большое количество примеров, составленных на языках Ассемблера и С. Дополнительно можно приобрести дискеты с примерами программ.
ВВЕДЕНИЕ
Программисты, использующие операционную систему MS-DOS, часто вынуждены работать с различными устройствами компьютера на уровне команд ввода /вывода. Это связано прежде всего с тем, что MS-DOS не содержит сколько-нибудь существенной поддержки для большинства устройств компьютера. Практически функционально полная поддержка обеспечивается только для дисковой подсистемы. Такие устройства, как мышь, принтер, расширенная и дополнительная память и часы реального времени, либо обслуживаются отдельными драйверами, либо программа вынуждена обращаться непосредственно к портам ввода/вывода этих устройств.
Для оптимального решения графических и вычислительны^ задач актуально использование арифметического сопроцессора 8087/80287/80387. Мы рассмотрим сопроцессор с точки зрения программиста - опишем форматы используемых данных, рассмотрим внутренние регистры сопроцессора и систему команд.
Данная книга содержит информацию об использовании драйверов и портов ввода/вывода некоторых устройств компьютера и поможет Вам составлять эффективно работающие программы, использующие все особенности аппаратуры.
Описаны следующие устройства:
¦ клавиатура;
¦ мышь;
м часы реального времени;
¦ таймер;
¦ порт последовательной передачи данных (асинхронный адаптер);
¦ порт параллельной передачи данных и принтер;
¦ коцтроллер прямого доступа к памяти;
¦ контроллер прерываний;
¦ расширенная и дополнительная память;
¦ арифметический сопроцессор.
Глава 1 описывает основные способы определения конфигурации персонального компьютера. В книге 3 первого тома мы уже
ОГЛАВЛЕНИЕ
Введение....................................................... 3
Глава 1. КОНФИГУРАЦИЯ ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА ....... 6
1.1.* Определение типа компьютера и версии BIOS................ 8
1.2. Установка перемычек на материнской плате.................. 15
1.3. КМОП-память и конфигурация компьютера ................... 18
1.4 Использование BIOS для определения конфигурации .......... 26
1.5. Определение типа процессора .............................. 28
Глава 2. КЛАВИАТУРА............................................ 30
2.1. Принципы работы клавиатуры ............................... 30
2.2. Порты для работы с клавиатурой ............................ 33
2.3. Аппаратное прерывание клавиатуры......................... 37
2.4. Средства BIOS для работы с клавиатурой .................... 40
Чтение символа с ожиданием (40). Проверка буфера на наличие в нем символов (43). Получение состояния переключающих клавиш (45). Установка временных характеристик клавиатуры (47). Запись символов в буфер клавиатуры (49). Чтение символа с ожиданием для 101-клавишной клавиатуры (50). Проверка буфера на наличие в нем символов для 101-клавишной клавиатуры i(50). Получение состояния переключающих клавиш для 101-клавишной клавиатуры (50)
2.5. Средства MS-DOS для работы с клавиатурой................. 51
Буферизованный ввод с эхо-выводом (52). Буферизованный ввод без эхо-вывода (53). Нефильтрованный ввод без эхо-вывода (53). Ввод/вывод на консоль (54). Ввод строки символов (54). Проверка состояния стандартного ввода (55). Сброс буфера клавиатуры (56)
2.6. Клавиатурные функции библиотеки Microsoft С ............... 56
Глава 3. МЫШЬ .................................................. 61
3.1. Как устроена мышь?........................................ 61
3.2. Драйверы мыши в MS-DOS.................................. 64
3.3. Прерывание для обслуживания мыши........................ 64
Инициализация мыши (65). Включить курсор мыши (67). Выключить курсор мыши (68). Определить положение курсора (70). Установить курсор (73). Определить положение курсора при нажатии клавиши (75). Определить положение курсора при отпускании клавиши (77). Задать диапазон движения курсора по горизонтали (81). Задать диапазон движения курсора по вертикали (82). Задать форму курсора в графическом режиме (83). Задать форму курсора в текстовом режиме (86). Определить содержимое счетчиков перемещения (88). Установить драйвер событий (91). Включить эмуляцию светового пера. (97). Выключить эмуляцию светового пера (97). Задать скорость перемещения курсора мыши (97). Установить область исключения для курсора (97). Задать увеличенный графический курсор (PC MOUSE) (98). Определить порог удвоения скорости (98). Заменить драйвер событий (99). Определить размер буфера состояния
драйвера (100). Сохранить состояние драйвера (100). Восстановить состояние драйвера (101). Установить альтернативный драйвер событий (101). Получить адрес альтернативного драйвера событий (102). Установить чувствительность мыши (102). Определить чувствительность мыши (103). Установить частоту прерываний для Inport Mouse (103). Установить номер видеостраницы (104). Определить номер видеостраницы (104). Отключить драйвер мыши (104). Восстановить драйвер мыши (105). Сбросить драйвер мыши (105). Определить тип мыши (105) Глава 4. ЧАСЫ РЕАЛЬНОГО ВРЕМЕНИ........................... 106
4.1. Прочитать показания часов реального времени .............. 108
4.2. Установить часы реального времени ........................ 108
4.3. Прочитать дату из часов реального времени................. 108
4.4. Установить дату в часах реального времени................. 109
4.5. Установить будильник..................................... 109
4.6. Сброс будильника ......................................... 109
4.7. Использование часов реального времени ................... 110
Глава 5. СИСТЕМНЫЙ ТАЙМЕР .................................. 116
5.1. Микросхемы таймера 8253/8254........................... 117
5.2. Программирование таймера на уровне портов.............. 120
5.3. Средства BIOS для работы, с таймером...................... 124
5.4. Средства MS-DOS для работы с таймером................... 127
5.5. Таймер и музыка .......................................... 129
5.6. Генерация случайных чисел ................................ 134
Глава 6. ПОРТ ПОСЛЕДОВАТЕЛЬНОЙ ПЕРЕДАЧИ ДАННЫХ ..... 138
6.1. Основные понятия и термины............................... 138
6.2. Аппаратная реализация.................................... 139
6.3. Порты асинхронного адаптера............................. 142
6.4. Поддержка асинхронного адаптера в BIOS .................. 145
6.5. Программирование асинхронного адаптера ................. 147
Инициализация асинхронного адаптера (148). Передача данных (151). Прием данных (152). Пример программы передачи данных (153). Использование прерываний (154) Глава 7. ПРИНТЕР ............................................... 156
7.1. Подключение принтера к компьютеру ....................... 156
7.2. Работа параллельного принтерного порта ................... 157
7.3. Средства BIOS для работы с принтером ..................... 161
7.4. Средства MS-DOS для работы с принтером.................. 165
7.5. Установка переключателей конфигурации................... 170
7.6. Программирование режимов принтера...................... 172
7.7. Печать русских букв....................................... 174
7.8. Печать в графическом режиме ............................. 179
Глава 8. КОНТРОЛЛЕР ПРЕРЫВАНИЯ ........................... 187
8.1. Механизм прерываний..................................... 187
8.2. Таблица векторов прерываний ............................. 189
8.3. Маскирование прерываний................................ 192
8.4. Изменение таблицы векторов прерываний.................. 193
8.5. Особенности обработки аппаратных прерываний........... 198
8.6. Контроллер прерываний 8259 ......,....................... 202


Hosted by uCoz