Введение

Программисты, использующие операционную систему MS-DOS, часто вынуждены работать с различными устройствами компьютера на уровне команд ввода/вывода. Это связано прежде всего с тем, что MS-DOS не содержит сколько-нибудь существенной поддержки для большинства устройств компьютера. Практически функционально полная поддержка обеспечивается только для дисковой подсистемы. Такие устройства, как мышь, принтер, расширенная и дополнительная память и часы реального времени обслуживаются либо отдельными драйверами, либо программа вынуждена обращаться непосредственно к портам ввода/вывода этих устройств.

Для оптимального решения графических и вычислительных задач актуально использование арифметического сопроцессора 8087/80287/80387. Мы рассмотрим сопроцессор с точки зрения программиста - опишем форматы используемых данных, рассмотрим внутренние регистры сопроцессора и систему команд.

Данная книга содержит информацию об использовании драйверов и портов ввода/вывода некоторых устройств компьютера и поможет вам составлять эффективно работающие программы, использующие все особенности аппаратуры.

Описаны следующие устройства:

Глава 1 описывает основные способы определения конфигурации персонального компьютера. В книге 3 первого тома мы уже занимались определением конфигурации дисковой подсистемы. В этом томе будет рассказано о способах определения конфигурации других подсистем и, в частности, о способе определения типа центрального процессора.

Глава 2 посвящена клавиатуре. В ней рассказывается о том, как работает клавиатура, подробно описываются различные способы программирования клавиатуры - от использования портов ввода/вывода до средств операционной системы MS-DOS и стандартных библиотек трансляторов Microsoft QC 2.5 и C 6.0.

Глава 3 рассказывает об устройстве, принципе работы и программировании мыши - одного из наиболее распространенных устройств ввода для персонального компьютера. Приводятся многочисленные примеры программ для работы с мышью.

В главе 4 описаны часы реального времени, получающие питание от аккумулятора. Пользуясь сведениями, приведенными в этой главе, вы сможете не только определять или устанавливать дату и время, но и запускать периодические процессы, запускать процессы в определенные моменты времени. Последнее возможно при использовании режима "будильник".

Глава 5 расскажет вам о системном таймере. Вы научитесь программировать это устройство, играть с его помощью простейшие музыкальные мелодии, узнаете, как реализовать с помощью таймера генератор случайных чисел. Будет рассказано о способах формирования задержек в работе программы, длительность которых не зависит от производительности центрального процессора.

В главе 6 описан порт последовательной передачи данных и приведены все необходимые сведения для его использования (включая разводку разъемов).

В главе 7 описан порт параллельной передачи данных. Так как к этому порту обычно подключается принтер, то мы приведем сведения об использовании и программировании принтеров (матричных). Иногда порт параллельной передачи данных используют для управления каким-либо оборудованием, например, аналого-цифровым преобразователем. Пользуясь приведенными сведениями, вы сможете приспособить свой компьютер для управления такими внешними устройствами, не приобретая специальные интерфейсные адаптеры. В приложении приведена таблица команд для наиболее распространенных 9-игольчатых и 24-игольчатых принтеров Epson.

Глава 8 содержит сведения о программировании канала прямого доступа к памяти. Прямой доступ к памяти используется для организации быстрого ввода/вывода данных и всегда применяется для организации работы с дисками.

Глава 9 посвящена программированию контроллера прерываний. Известно, что обслуживание медленно работающих устройств ввода/вывода целесообразно выполнять с использованием механизма прерываний. Приведенная в главе 9 информация позволить вам самостоятельно программировать контроллер прерываний и вообще эффективно использовать прерывания в своих программах.

В главах 10 и 11 мы расскажем вам об использовании расширенной и дополнительной (Extended и Expanded) памяти компьютера. Вы сможете преодолеть барьер 640 К, установленный для MS-DOS реальным режимом работы процессора.

Глава 12 посвящена арифметическому сопроцессору. В настоящее время это устройство имеется практически в любом компьютере (за исключением, возможно, самых дешевых конфигураций IBM PC/XT). Арифметический сопроцессор значительно ускоряет выполнение расчетных и графических задач. Некоторые программные продукты (например, Autocad версий 10.0 и более поздних версий) просто отказываются работать на компьютере, не оснащенном сопроцессором.