Ноутбуки   
   Софт   
   Компьютеры   
   Компьютерные фирмы   
  Меню сайта

BIOS

SSD-накопители

Акустика для ПК

Видеокарты

Видеокарты - История

Джойстики, клавиатуры и мыши

Дигитайзеры

Жесткие диски

Жесткие диски - история

Звуковые карты

Именитые люди компьютерной индустрии

История компьютеров

Карманные компьютеры

Компьютер десктоп - готовая сборка

Компьютерные фирмы

Компьютеры в теории и практике

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

Корпуса, вентиляторы, блоки питания

Маршрутизаторы, коммутаторы, хабы

Материнские платы

Модемы

Модули памяти

Мониторы

Мониторы и видеокарты - история

Новости

Ноутбуки и субноутбуки

Оборудование беспроводной связи, bluetooth, wi-fi

Оптические накопители CD, DVD, Blueray

Оргтехника

Память - история

Плоттеры

Принтеры

Процессоры

Процессоры - история

Сетевые карты

Сетевые фильтры, ИБП

Сети

Сканеры

Сменные жесткие диски

Советские ПК

ТВ-тюнеры

Типы компьютеров

Устройства архивации данных и стримеры

Факс

Флоппи-дисководы

Флэшки и всяко-разно

Шины и чипсеты - история




Главная страница Прайс-лист Интернет-магазин

Описание специальных прерываний

Как уже упоминалось в главе 3, три строки в таблице векторов прерываний используются не по прямому назначению для хранения адресов программ обслуживания прерываний , а для хранения адресов базовых таблиц системы (поскольку эти таблицы размещаются в ПЗУ). Ниже мы поясним назначение этих таблиц.
Первая таблица (с кодом фиктивного прерывания 29) содержит адрес таблицы инициализации видеодисплея, используемой для контроля управляющих кодов для экранов дисплеев. Таблица размещается в ПЗУ по адресу F000: F0A4 и включает три подтаблицы с видеопараметрами. Каждая подтаблица имеет четыре строки по одной строке на каждый из четырех режимов отображения: монохромный, 40-столбцовый цветной, текстовой, 80-столбцовый цветной, текстовой и оба графических режима. Одна из подтаблиц фиксирует размер в байтах буфера дисплея, соответствующего текущему режиму. (Подробно эти вопросы рассматриваются в главе 8 и 9).
Еще одна подтаблица фиксирует ширину граф, учитываемую при автоматическом переходе от одной строки в другую. Практическая польза от модификации этой таблицы близка к нулю, поэтому в дальнейшем она рассматривается не будет.
Адрес второй таблицы (соответствует прерыванию 30) указывает на таблицу параметров дискет. Эта таблица содержит данные, предназначенные для контроля временных параметров различных операций, выполняемых с дискетой. Таблица расположена в ПЗУ по адресу F000 : EFC7. Сразу же после выпуска компьютера IBM/PC стало ясно, что некоторые временные характеристики, внесенные в эту таблицу весьма приблизительны и являются причиной слишком медленной работы дискового накопителя. Среди многочисленных изменений, внесенных в DOS версии 1.10 были данные, снижающие время обращения к дисковому накопителю. Здесь использовался классический метод - в процессе самонастройки дисковая операционная система создавала новую версию таблицы в обычной памяти и заменяла ее адрес в векторе, инициализируемой по прерыванию 30. Поскольку при выполнении любой операции с диском производится обращение к этой таблице, то после замены адреса вектора, активной становилась новая таблица. В главе 7 (посвященной описанию дискового накопителя) мы рассмотрим детали, связанные с этой таблицей и укажем внесенные изменения.
Адрес третьей таблицы, получаемой по фиктивному прерыванию 31, указывает на область генератора графических символов, используемых при формировании на дисплее символов CH$(128), ..., CHR$(255) в любом из двух графических режимов. Стандартной таблицы этого типа попросту не существует. Если две предыдущие таблицы всегда находятся в ПЗУ, то данная таблица в ПЗУ отсутствует. А коль скоро это так, то вектор прерывания будет содержать нулевое значение (является признаком отсутствия таблицы) до тех пор, пока программа не построит такую таблицу и не занесет соответствующий адрес в вектор прерывания. При изучении графического режима работы (глава 9) мы увидим, что существует много интересных вещей, связанных с таблицей генерации символов.
Все эти общие положения, касающиеся ПЗУ, образуют ту основу, опираясь на которую мы перейдем к рассмотрению широких возможностей отдельных узлов IBM/PC. Этому посвящены пять следующих глав. Начнем с дисковых накопителей, рассматривая их до того как программа построит таблицу и поместит адрес этой таблицы в соответствующий вектор прерываний.
Приложение 6.1. Текст программы проверки метки версии ПЗУ (Паскаль).
module Listing_6_1;
type
string8 = string(8);
bios_ptr_type = ads of string8;
var
bios_date : bios_ptr_type;
procedure check_rom_bios_date;
begin
bios_date.s :=#F000;
bios_date.r :=#FFF5;
if bios_date^='04/24/81' then
begin
end
else
begin
end;
end;
end.



Анализ содержимого ПЗУ - метод деассемблирования

Анализ содержимого ПЗУ - реконструкция интерпретатора

Анализ содержимого ПЗУ средствами программы DEBUG

Две версии BIOSа

Дополнительные процедуры системы BIOS

Механизм выборки информации из ПЗУ

Описание специальных прерываний

Организация ПЗУ и его использование

Процедура обслуживания клавиатуры в системе BIOS

Система BIOS в ПЗУ

Служебные процедуры обслуживания дискет системы BIOS в ПЗУ

Средства управления видеотерминалом уровня BIOS-ПЗУ




Немного рекламы:


















































































Rambler's Top100