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

Последовательность инициализации адаптера NE2000

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

Процедура инициализации адаптера включает представленную ниже последовательность операций [99].

•     Настроить Регистр команды CR на страницу 0, записав в него < значение 21h.

•     Настроить Регистр управления форматом данных DCR (например, значение 49h соответствует режиму работы, в котором передача данных выполняется 16-разрядными словами, используется порядок передачи байтов, принятый в процессорах 80×86, адаптер находится в рабочем режиме, автоинициализация не используется, а размер очереди данных составляет 8 байт).

Читать »

Непосредственная работа с контроллером клавиатуры

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

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

Читать »

Вывод текста и статических изображений в графических режимах

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

Функции BIOS VGA не обеспечивают приемлемой скорости вывода символов на экран, поэтому в графических режимах текст выводится напрямую в видеопамять (растровое разложение символа передается по точкам).

Наиболее простым способом вывода на экран текста и статических изображений является метод масок. Вообще говоря, для создания изображения объекта необходимо два массива: массив, содержащий рисунок объекта, и массив, содержащий маску прозрачности, то есть указание, какие точки рисунка должны отображаться на экране, а в каких надлежит сохранить фон изображения. Однако с целью экономии памяти оба массива объединяют и именуют полученный результат маской объекта (рис. 4.11). Таким образом, маска представляет собой растровое изображение объекта, совмещенное с шаблоном прозрачности.

Читать »

Масштабирование изображений

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

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

Читать »

Риск потери информации, связанный с выполнением операций форматирования и записи данных

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

Непосредственная работа с контроллером дисков чаще всего применяется для записи или считывания данных в режиме реального

времени — например, при проведении экспериментов или при обработке видеоизображений. Режим реального времени предполагает непрерывную передачу информации — система должна успевать обрабатывать каждый пакет данных до поступления следующего пакета (иначе один из пакетов будет потерян). При работе с дисковыми накопителями непрерывность передачи информации может нарушаться при периодической термокалибровке привода головок, при выполнении процедуры самотестирования либо в результате фрагментации файлов. Для работы в реальном времени, вообще говоря, выпускаются специальные жесткие диски (например, мультимедийные цифровые видеомагнитофоны), но можно попробовать использовать и обычные диски с большим объемом буферной памяти, которая позволяет замаскировать термокалибровку и самотестирование. Альтернативным вариантом является создание буфера данных большого объема в оперативной памяти компьютера.

Читать »

Набор команд Epson для печати в растровом режиме

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

В отличие от группы команд ESC/P, ставших международным стандартом, набор команд для печати в растровом режиме используется только принтерами Epson. Общая тенденция компьютерной отрасли к полному отказу от текстового режима и переходу на растровую печать коснулась и всех младших моделей струйных принтеров Epson: они не поддерживают текстовый режим и печать битовых образов.

Читать »

Группа дисковых функций MS-DOS

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

В эту группу входят прерывания, предназначенные для выполнения основных функций операционной системы, в том числе для выполнения операций с логическими дисками, файлами и каталогами [3, 10]. Дисковые функции DOS обладают достаточной полнотой и универсальностью для решения любых задач в реальном режиме DOS. Они могут применяться и в режиме линейной адресации памяти, но информацию в расширенную память приходится пересылать через промежуточный буфер в первом мегабайте адресного пространства процессора. Впрочем, дополнительные пересылки не особенно замедляют работу: поиск данных на диске и передача информации между диском и процессором занимает гораздо больше времени, чем копирование такого же объема данных с одного участка оперативной памяти в другой.’

Читать »

Каталоги файлов

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

Каталог файлов представляет собой массив 32-байтных элементов — описателей файлов. С точки зрения операционной системы все

каталоги (кроме корневого каталога в системах FAT12 и FAT16) выглядят как файлы и могут содержать произвольное количество записей.

Читать »

Работа с мышью через интерфейс USB

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

Клавиатура и мышь по классификации, принятой для устройств USB, относятся к группе устройств человеко-машинного интерфейса (Human Interface Devices, сокращенно HID) [92].

Клавиатуры с интерфейсом USB до сих пор почти не применяются, так как в среднем стоят дороже стандартных клавиатур и никаких особых преимуществ в работе не дают. Кроме того, могут возникать проблемы, связанные со старым программным обеспечением для MS-DOS и с BIOS SETUP (теоретически во время начальной загрузки BIOS должен работать с клавиатурой USB в режиме эмуляции клавиатуры PS/2, но на практике эта возможность реализуется не всегда).

Читать »

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

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

Пример, показанный в листинге 1.1, предназначен для демонстрации особенностей функции 00h. Программа Testlntl6_00h выполняет одну простую операцию — отображает на экране ASCII-коды и скан-коды клавиш, которые пользователь нажимает на клавиатуре.

Программа функционирует в текстовом видеорежиме, особенности которого мы рассмотрим в главе 4 «Видеоконтроллеры». Вывод информации осуществляется напрямую в видеопамять, которая в цветном текстовом режиме размещается по адресу B8000h. Каждому символу экрана соответствует байт кода (ASCII) и байт атрибута, описывающий цвет символа и цвет фона знакоместа. Видеопамять при выводе на экран разбивается по строкам: в строке 80 символов, то есть 160 байт информации; вывод выполняется справа налево, сверху вниз. Таким образом, байт видеопамяти с нулевым номером соответствует ASCII-коду первого символа, следующий байт определяет его цвет, третий байт соответствует ASCII-коду второго символа и т. д.

Читать »

Регистры NЕ2000-совместимого адаптера

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

ЫЕ2000-совместимые адаптеры выпускаются в двух вариантах исполнения: для шины ISA и для шины PCI. Шина ISA практически вышла из употребления, поэтому ниже мы будем рассматривать только вариант, предназначенный для шины PCI.

Регистровые страницы

Читать »

Форматы передачи данных Serial Mouse

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

Внутренняя структура драйвера мыши определяется в первую очередь используемым мышью форматом передачи данных. Для устройств, подключаемых через последовательный порт, применяется ряд различных форматов: группа форматов, базирующихся на протоколе MS Mouse, и формат PC Mouse [35, 55, 58]. Группа форматов Microsoft Mouse в настоящее время стала основной для координатных устройств, подключаемых к последовательному порту, вытеснив из этой области другие виды протоколов. Все

Читать »

Примеры программ, непосредственно работающих с контроллером жесткого диска

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

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

•          процедура ReadHDDSector считывает с заданный сектор с указанного диска, используя LBA и протокол ввода РЮ;

Читать »

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

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

Прототипом этой группы послужил режим VGA с кодом 13h. В 256- цветных режимах каждой точке изображения на экране монитора соответствует один байт видеопамяти, в который записывается код цвета точки. Этот код не используется непосредственно, а служит индексом в специальном массиве, содержащем 256 строк по 3 элемента — таблице цветов ЦАП. Каждый из трех элементов строки таблицы задает интенсивность одного из основных цветов электронно-лучевой трубки (красного, зеленого или синего). Значения ин- тенсивностей, выбранные из строки, соответствующей хранящемуся в видеопамяти коду, поступают в ЦАП.

Читать »

Коды обязательных команд АТА

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

В соответствии со стандартом команды интерфейса АТА делятся на три основные группы:

•          обязательные (Mandatory) команды;

•          дополнительные (Optional) команды;

Читать »