Главная » Железо

Примеры использования функций DOS

Добавлено Дата: 3 July, 2011 категория: Ассемблер, Железо

В прикладных программах чаще всего применяются функции записи и считывания файлов. Программа SaveRusFont, приведенная на листинге 6.1, записывает в текущий каталог диска текущий шрифт MS-DOS, полученный из памяти видеоконтроллера, в двоичном представлении (файл fontO.fnt) и в виде инверсного изображения в формате BMP (файл font0.bmp). Она является упрощенным вариантом программы формирования изображения стандартных американского и русского шрифтов MS-DOS, которую я использовал для создания рис. 1.1 и 1.2, приведенных в начале главы 1 «Работа с клавиатурой».

Читать »

Использование счетчика тактов в качестве таймера

Добавлено Дата: 2 July, 2011 категория: Ассемблер, Железо

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

Читать »

Контроллер прерываний

Добавлено Дата: 30 June, 2011 категория: Ассемблер, Железо

Устройства ввода информации сообщают центральному процессору о поступлении новых данных с помощью сигналов прерываний. Прерывания от клавиатуры, мыши PS/2-типа и других периферийных устройств, прежде чем поступить в процессор, проходят через контроллер прерываний, где подвергаются предварительной обработке. Контроллер позволяет управлять приоритетами, прохождением сигналов и адресами векторов прерываний.

Читать »

Организация видеопамяти в режимах типа DirectDraw

Добавлено Дата: 27 June, 2011 категория: Ассемблер, Железо

В режимах группы DirectDraw (HiColor и TrueColor) информация поступает на цифро-аналоговые преобразователи непосредственно из видеопамяти. Соответственно, красная, зеленая и синяя составляющие цвета точки представлены отдельными полями в выделенной для хранения точки области видеопамяти (от 2 до 4 байт на точку).

Читать »

Функции PCI BIOS

Добавлено Дата: 26 June, 2011 категория: Ассемблер, Железо

Поскольку конфигурационное пространство не имеет привязки к какой-либо определенной области адресного пространства компьютера, доступ к нему связан с определенными трудностями. С целью упрощения работы с устройствами PCI в BIOS персональных компьютеров были внесены специальные дополнительные функции. Доступ к функциям PCI BIOS при 16-разрядном вызове выполняется через функцию Blh прерывания lAh. Для 32-разрядных вызовов используется 32-разрядная точка входа защищенного режима. используют регистры процессора для передачи аргументов и получения результатов. При успешном выполнении

Читать »

Основные типы графических режимов

Добавлено Дата: 24 June, 2011 категория: Ассемблер, Железо

Современные видеоконтроллеры поддерживают разнообразные текстовые и графические режимы, различающиеся разрешением, палитрой используемых цветов, частотой кадровой развертки и т. д. Текстовые режимы различают по разрешению (числу отображаемых символов по горизонтали и вертикали) и цветовой палитре (возможен монохромный или 16-цветный режим).

Читать »

Поиск устройства PCI по коду класса

Добавлено Дата: 23 June, 2011 категория: Ассемблер, Железо

Поиск устройства определенного типа можно осуществлять по коду класса. Код класса состоит из трех байтов (рис. 3.3): старший байт задает базовый класс (Base Class), средний байт — подкласс (Sub- Class), младший байт — интерфейс (Interface). В таблице 3.3 приведен перечень базовых классов устройств PCI, а табл. 3.4 содержит полное описание кодов классов.

Читать »

Рисование линий при линейной адресации памяти

Добавлено Дата: 21 June, 2011 категория: Ассемблер, Железо

Сегментация видеопамяти существенно замедляет рисование линий в режимах с высоким разрешением, особенно при использовании

для переключения страниц прерываний VESA BIOS: при рисовании прямых под большим углом к горизонтали переключение приходится осуществлять через каждые несколько десятков точек. Переключение через регистры видеоконтроллера могут выполнять только Windows-драйверы, написанные программистами фирмы-изготови- теля, поскольку документация контроллера доступна только для них. Драйверы для других операционных систем обычно не предоставляются, и, следовательно, вывод линий осуществляется в режиме сегментации очень медленно.

Читать »

Программирование порта последовательной передачи данных

Добавлено Дата: 21 June, 2011 категория: Ассемблер, Железо

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

Последовательный порт передает и принимает информацию в асинхронном режиме. Формат передачи данных последовательного порта в обобщенном виде представлен на рис. 5.1.

Читать »

Порядок выполнения транзакций USB

Добавлено Дата: 20 June, 2011 категория: Ассемблер, Железо

Все транзакции на шине USB выполняются под управлением хост-

контроллера. Передача данных возможна только по запросам хоста:

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

Читать »

Конфигурационное пространство устройства PCI

Добавлено Дата: 19 June, 2011 категория: Ассемблер, Железо

Для программистов интерес в первую очередь представляют функции PCI BIOS, поскольку они позволяют получить доступ к информации об адресном пространстве и пространстве ввода-вывода подключенных к шине PCI устройств. Описание этих функций дано в PCI BIOS Specification [81], а также в руководстве PhoenixBIOS User’s Manual [85].

Читать »

Дескриптор интерфейса USB

Добавлено Дата: 18 June, 2011 категория: Ассемблер, Железо

Стандартный дескриптор интерфейса (Standard Interface Descriptor) содержит информацию об одном из интерфейсов, доступных

при определенной конфигурации устройства. Структура Стандартного дескриптора интерфейса показана в табл. 8.6.

Таблица 8.6. Структура Стандартного дескриптора интерфейса

Читать »

Принтеры: печать в растровом режиме

Добавлено Дата: 17 June, 2011 категория: Ассемблер, Железо

У программистов при работе с принтерами возникает та же самая проблема, что и при работе с другими типами аппаратуры: изготовители в документации обычно приводят наборы команд, но не дают ни пояснений, зачем эти команды нужны, ни рекомендаций по использованию, ни примеров — предполагается, что все и так понятно из названия команды. Есть только одна особенность: другие устройства еще не документированы, а принтеры — уже не документированы. В последнее время изготовители принтеров стали придерживаться теории, утверждающей, что пользователям знать о командах вообще ничего не нужно, и изъяли всякое упоминание о них из описаний типа User’s Manual, поставляемых вместе с принтерами. В общем-то, эта теория верна, однако для специалистов информацию можно было оставить хотя бы в Интернете…

Читать »

Формат PCX для 256-цветных изображений

Добавлено Дата: 16 June, 2011 категория: Ассемблер, Железо

Если необходимо экономить дисковое пространство, то для 256- цветных изображений лучше использовать формат PCX со сжатием по алгоритму Run Length Encoding (RLE). Файл PCX состоит из трех частей: заголовка, сжатого изображения и таблицы палитры. Формат заголовка файла PCX показан в табл. 4.11.

Читать »

Управление размещением графических изображений на странице

Добавлено Дата: 12 June, 2011 категория: Ассемблер, Железо

Перед началом выполнения процесса печати необходимо задать размеры ограничительных полей по краям страницы, определив четыре значения:

•           отступ от верхнего края листа бумаги (Top margin);

Читать »