Библиотека системного программиста
тридцать третий том
© А.В. Фролов, Г.В. Фролов, 1997
Аппаратное обеспечение персонального компьютера
Часть 1
Аннотация
В книге приведено описание методик программирования аппаратуры персональных компьютеров, выполненных с применением процессоров Intel, на уровне портов, прерываний DOS и BIOS, а также на уровне функций драйверов.
Подробно описана процедура определения конфигурации компьютера, в том числе типа процессора, рассказано о способах работы с клавиатурой, мышью, часами реального времени, системным таймером, асинхронным портом последовательной передачи данных, параллельным портом, контроллером прерываний и контроллером прямого доступа к памяти. Описаны функции, предназначенные для работы с расширенной памятью, а также команды арифметического сопроцессора. Отдельная глава посвящена работе с драйвером устройства CD-ROM.
Введение
Несмотря на широкое распространение новых операционных систем, таких как Microsoft Windows 95, Microsoft Windows NT и IBM OS/2 Warp, а также новых технологий программирования, ориентированных на Internet и средства высокого уровня, до сих пор остается актуальным создание программ, работающих с аппаратурой компьютера через порты, прерывания и функции драйверов. Многие разработчики занимаются созданием драйверов для нестандартной аппаратуры, и поэтому нуждаются в описании регистров периферийных устройств и методик работы с этими устройствами на уровне регистров и прерываний.
Перечисленные выше вопросы были рассмотрены нами во 2 томе «Библиотеки системного программиста» с названием «Аппаратное обеспечение IBM PC”, который был издан в 1992 году. С тех пор аппаратура персонального компьютера претерпела определенные изменения, не говоря уже о возникновении и широком распространении новых периферийных устройств. Поэтому мы решили переиздать упомянутый том «Библиотеки системного программиста», обновив и дополнив его новой информацией.
Первая глава нашей книги посвящена определению конфигурации компьютера. Мы научим вас определять состав аппаратных средств компьютера с помощью функций BIOS, а также анализируя содержимое энергонезависимой памяти CMOS. Много внимания мы уделим определению типа центрального процессора. С помощью программы, исходные тексты которой есть в первой главе, можно распознать процессоры начиная от теперь уже исторической модели Intel 8086 до суперсовременного Intel Pentium II.
Во второй главе мы расскажем о работе с клавиатурой на уровне портов ввода/вывода, прерываний, функций BIOS и MS-DOS. Вся эта информация необходима разработчикам диалоговых программ для операционной системы MS-DOS. Что же касается приложений Microsoft Windows, то способы работы с клавиатурой в среде этой операционной системы мы описали в 11 томе “Библиотеки системного программиста”, который называется “Операционная система Microsoft Windows для программиста”.
Третья глава посвящена мыши. Это устройство удобно для пользователя, поэтому вам не стоит игнорировать мышь в своих программах. Помимо традиционных функций драйвера мыши мы описали методику программирования новой мыши Microsoft IntelliPoint в среде Microsoft Windows (в среде MS-DOS эта мышь работает как обычная двухкнопочная). Мышь Microsoft IntelliPoint имеет новый орган управления - небольшое колесико, которое можно вращать, а также нажимать подобно обычной клавише.
В четвертой главе описаны способы работы с часами реального времени. Вы можете применять эти часы для определения текущей даты и времени или для установки будильника, после срабатывания которого компьютер начнет выполнять какие-либо действия.
В пятой главе мы рассмотрели другое устройство компьютера, имеющее отношение ко времени - системный таймер. Этот таймер удобно использовать для организации программных задержек, для генерации звуковых сигналов, как простых, так и музыкальных, а также как генератор случайных чисел.
В шестой и седьмой главах нашей книги мы рассмотрели последовательный асинхнонный адаптер и параллельный адаптер. Первый из них чаще всего используется для подключения модема, а второй - для подключения принтера. Пользуясь информацией, приведенной в нашей книге, вы сможете программировать эти адаптеры на уровне портов ввода/вывода, функций BIOS и MS-DOS.
Восьмая глава посвящена контроллеру прямого доступа к памяти. В ней мы рассказали о назначении портов этого контроллера в компьютерах IBM PC/XT и IBM PC/AT.
В девятой главе описана методика работы с устройством чтения компакт-дисков, которым сейчас оборудован практически каждый компьютер. Мы рассмотрели применение функций программного расширения MSCDEX, а также команд драйвера устройства чтения компакт-дисков. Эта информация поможет вам определить различные характеристики устройства и параметры компакт-дисков, такие, например, как способность проигрывать звуковые компакт-диски, количество, размер и тип дорожек на компакт-диске и так далее. Обращаясь непосредственно к драйверу устройства, ваша программа сможет выполнять непосредственное чтение секторов и дорожек компакт-диска, запускать и останавливать проигрывание звуковых дорожек и другие аналогичные операции.
Десятая глава необходима тем, кто разрабатывает программы, связанные с вычислениями. В этой главе мы рассказали про арифметический сопроцессор и привели методики его программирования. Этот сопроцессор значительно ускоряет арифметические вычисления, особенно вычисления с плавающей запятой. В качестве примера мы привели исходные тексты программы, проверяющий сопроцессор на наличие ошибки при выполнении команды деления, которая встречалась в первых моделях процессора Pentium.
И, наконец, последняя, одиннадцатая глава посвящена работе с расширенной памятью с помощью интерфейса драйвера HIMEM.SYS. Используя функции этого интерфейса, ваша программа, предназначенная для операционной системы MS-DOS, сможет воспользоваться расширенной памятью, недоступной для непосредственной адресации в реальном режиме работы процессора.
Исходные тексты всех программ вы можете купить на дискете, которая продается вместе с книгой. Эти тексты, так же как и исходные тексты программ из всех предыдущих томов “Библиотеки системного программиста”, вы можете найти на нашем авторском компакт-диске. Подробая информация об авторском компакт-диске есть в сети Internet на нашем сервере по адресу http://www.glasnet.ru/~frolov или http://www.dials.ccas.ru/frolov.
|