|
|
Справочник программиста на персональном компьютере фирмы IBM. Ввод/вывод
|
|
Страница 1 из 27 При асинхронной связи машина посылает или принимает байты информации по одному биту. Временные интервалы между байтами при этом несущественны, но времена между отдельными битами байта очень важны. Сигнал на линии может быть высокого или низкого уровня, что соответствует логическим нулю и единице, и говорят, что линия отмечена (marking), когда уровень высокий, и пустая (spacing), когда уровень низкий.
Раздел 1. Доступ к последовательному порту. Программирование микросхемы UART 8250. Инициализация последовательного порта. Установка текущего коммуникационного порта. Определение статуса коммуникационного порта. Инициализация и управление модемом. Передача данных. Получение данных. Посылка/получение данных с помощью коммуникационного прерывания. Сводка управляющих кодов, используемых при коммуникации. Раздел 2. Создание драйвера устройства. Создание заголовка драйвера. Создание стратегии устройства. Создание обработчика прерывания устройства. Доступ к драйверу устройства. Обнаружение и анализ ошибок устройства. Раздел 3. Использование специальных устройств ввода/вывода. Чтение/запись с кассетного магнитофона. Чтение позиции светового пера. Получение аналогового ввода через игровой порт. Получение цифрового ввода из игрового порта.
Глава 7. Ввод/вывод.
Раздел 1. Доступ к последовательному порту. Линия поддерживается в отмеченном состоянии, когда по ней нет передачи данных. При начале передачи байта данных сигнал падает в 0, отмечая стартовый бит. Затем следуют восемь битов данных (иногда меньше) в виде набора высоких и низких уровней. Последний бит данных может сопровождаться битом четности, используемым для обнаружения ошибок, а затем в последовательность включаются 1 или более стоп-битов, которым соответствует высокий уровень. Эти стоп-биты начинают отмеченное состояние, которое будет сохранять- ся до тех пор, пока не начнется передача следующего байта данных; число используемых стоп-битов существенно, поскольку они устанав- ливают минимальное время, которое должно пройти перед следующим стартовым битом. На рис. 7-1 показана эта последовательность. Конечно, передающая и приемная станции должны использовать один и тот же протокол для этих цепочек битов и они должны рабо- тать с одной и той же скоростью обмена (измеряемой в битах в секунду, называемых также бодами). При обмене могут легко возни- кать ошибки, поэтому коммуникационное оборудование предоставляет разнообразную информацию о статусе как самого порта, так и при- соединенного к нему модема. Задачей модема является преобразова- ние сигнала, генерируемого портом коммуникации, в акустический сигнал, который может затем быть передан по телефонному каналу. Большинство модемов предоставляют также дополнительные коммуника- ционные возможности, такие как автоматический вызов и ответ, которые не поддерживаются самим портом коммуникации.
|
|
-
Assembler,
COM в Ассемблере
В этой статье будет расказано о том, как использовать COM-интерфейсы в ваших программах, написанных на ассемблере. Не будет обсуждаться, что такое COM и как он применяется, но как его можно использовать, программируя на ассемблере. Здесь будет затронуто только применение существующих интерфейсов, а не реализация своих собственных, это будет рассмотрено в другой статье....
-
Assembler,
Пишем свой загрузочный сектор
Мы будем писать загрузочный сектор для трехдюймовой дискеты с файловой системой FAT12. После окончания начальной загрузки программа POST находит активное устройство и загружает с него короткую программу загрузки ОС - загрузочный сектор. Загрузочный сектор это первый физический сектор устройства, в данном случае дискеты и его размет равен всего ничего 512 байт. С помощью этих 512 байт кода мы должны найти основную часть загрузчика операционной системы, загрузить его в память и передать ему управл...
-
Assembler,
Программирование COM портов
Порт 3F8h. Этот порт соответствует регистру передавемых данных. Для передачи в порт 3F8h необходимо записать байт передаваемых данных. После приема данных от внешнего устройства они могут быть прочитаны из этого порта. В зависимости от состояния бита управляющего слова, выводимого в управ- ляющий регистр с адресом 3F8h, назначение порта 3F8h изменяться. Если этот бит равен 0,порт используется для записи передаваемых данных.Если же этот бит равен 1, порт используется для вывода з...
-
Assembler,
Переполнение буфера
В данной статье рассматривается пример использования переполнения стека под Windows 9x на платформе Intel x86. Изложение рассчитано на читателя, понимающего принципы работы персонального компьютера и более чем поверхностно знакомого с программированием....
-
Assembler,
Виртуальный драйвер для обслуживания аппаратных прерываний
Как уже отмечалось ранее, виртуальные драйверы служат прежде всего для виртуализации аппаратуры, то есть для предоставления одновременно выполняемым задачам возможности совместного использования устройств компьютера. Измерительная или управляющая аппаратура, подключаемая к компьютеру с целью создания автоматизированной установки, вряд ли будет эксплуатироваться в многозадачном режиме, однако использование для ее управления виртуального драйвера может заметно сократить программные издержки и умен...
-
Assembler,
Опыт дизассемблирования большой .com программы
В данной статье мне хочется рассказать о дизассемблировании большой программы (графического редактора). Не будучи знатоком ассемблера, не зная до сих пор, как использовать большинство возможностей своего дизассемблера (DisDoc 2.3), я все же решился написать эту статью, так как прекрасно помню, в какой кромешной тьме начинал заниматься дизассемблированием....
-
Assembler,
Оптимизация программ на Assembler
Несмотря на все более широкое распространение языков программирования и интегрированных сред программирования, оптимизация программ на ассемблере остается актуальной темой дискуссий для программистов. Можно упомянуть, например, форум програамистов, проведенный сетью PC MagNet, который стал ареной многочисленых "дуэлей": то один, то другой участник предлагал всем желающим решить небольшую, но интересную задачу программирования - и рассматривал присылаемые решения, ожидая, кто жее и как ...
-
Assembler,
Справочник программиста на персональном компьютере фирмы IBM. Приложения
Основной единицей хранения данных в компьютере является бит. В большинстве микрокомпьютеров восемь битов объединены в байт, при этом каждый бит байта может быть установлен или "включен" (= 1) или сброшен или "выключен" (= 0), допуская 256 разных вариантов. Таким образом, в одном байте можно представить 256 разных симво- лов (расширенный набор кодов ASCII) или целое число в диапазоне от 0 до 255. Хотя мы привыкли записывать эти числа в десятичной форме, они могут зап...
|
|
|