ЗНАЕТЕ ЛИ ВЫ?

Определение конфигурации компьютера программными средствами.



Определение конфигурации компьютера программными средствами.

 

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

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

Конфигурация аппаратных средств записывается в область данных BIOS и в энергонезависимую память CMOS специальной программой BIOS Setup.

 

BIOS

(слайд №2)

Базовая система ввода-вывода (BIOS - Basic Input/Output System) - это программный интерфейс между программами и оборудованием ПЭВМ. BIOS изолирует операционную систему и прикладные программы от аппаратных особенностей конкретных устройств и позволяет программистам, пишущим на языках ассемблера, Си и т.п., выполнять операции ввода-вывода, не заботясь об адресах устройств или их аппаратных характеристиках. Кроме того, BIOS обеспечивает ряд системных услуг, например, позволяет узнать размер памяти ПЭВМ или текущее время дня.

Рекомендуется использовать запросы к BIOS вместо прямой манипуляции портами ввода-вывода при написании как системных, так и прикладных программ. Программирование на уровне BIOS уменьшает зависимость программ от изменения параметров оборудования ПЭВМ и, тем самым, повышает их мобильность.

После включения компьютера BIOS за несколько секунд выполняет проверку практически всех компонентов системы.

BIOS в своем нынешнем виде существует уже около 15 лет, и до сих пор ее работа не вызывает нареканий. Тем не менее, у этой системы уже есть преемник — EFI (Extensible Firmware Interface). Данный интерфейс поддерживает 64-битные системы, благодаря чему совместим и с компьютерами следующего поколения. Кроме того, обладающий графической оболочкой EFI обеспечивает возможность более простого конфигурирования ПК. Однако до сих пор эта новая технология проверки встречается только на компьютерах Macintosh и лишь немногих обычных ПК.

После включения питания ПК к работе приступает первая составляющая BIOSпрограмма самотестирования POST (Power On Self Test). Она проверяет корректность функционирования основных аппаратных компонентов ПК. После этого BIOS инициализирует чипсет компьютера.

Сначала система выполняет сброс центрального процессора, запрещая линии немаскируемых прерываний в нем (Non-Maskable Interrupt).

Почти одновременно с этим, как только поступает напряжение, выполняется аналогичная процедура для клавиатурного контроллера. На этапе Reset Determination (определение способа) BIOS проверяет, можно ли ограничиться только программным сбросом. Для этого считываются соответствующие биты в контроллере клавиатуры. Преимущество программного сброса заключается в том, что он выполняется на несколько миллисекунд быстрее.

Теперь BIOS осуществляет самопроверку, выполняя подсчет контрольной суммы на основе всех битов микросхемы своего ПЗУ. В сумме с определенной заданной величиной должно получиться значение «00».

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

Далее выполняется проверка CMOS-чипа (Complementary Metal Oxide Semiconductor), в котором хранятся пользовательские настройкиBIOS. Эти конфигурационные файлы считываются при каждом запуске системы. Сохранность данных и настроек в чипе зависит от того, подключена ли питающая его батарея.

Система тестирует также контрольную сумму микросхемы CMOS. Эта операция нацелена, прежде всего, на выявление неисправности батареи: при длительном сроке службы она будет не в состоянии обеспечить определенные компоненты микросхемы достаточным напряжением. Первые признаки неисправности — сброс пользовательских настроек BIOS и системного времени.

(слайд №3)

Затем POST тестирует работоспособность таймера, отвечающего за корректное распределение аппаратных прерываний (IRQ, Interrupt Request). Запрос на такое действие — команда, посылаемая процессору жестким диском или видеоплатой с целью оповестить CPU о наличии данных, подлежащих обработке. При этом с момента поступления запроса до начала обработки данных проходит определенный промежуток времени, который называется задержкой прерывания.

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

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

Поскольку количество свободных прерываний в системе ограничено, в современном компьютере несколько устройств располагаются на одной линии прерывания (Interrupt Sharing). В этом случае обработчик должен запускать на выполнение драйверы всех устройств, от которых мог поступить запрос. Это может вызвать проблемы, если написанный с ошибками драйвер слишком долго имеет статус активного. Другое устройство данной линии прерывания выполняет в это время запись информации в буфер, который в определенный момент окажется переполненным, что может привести к потере данных. Поэтому в современных ПК операционная система самостоятельно распределяет номера IRQ между периферийными устройствами.

Затем BIOS тестирует адресные линии в первом блоке памяти размером 1 Мбайт на наличие ошибок. Для этого POST осуществляет запись шаблонов данных в оперативную память с целью их последующего сравнения.

Далее BIOS определяет тип видеоадаптера, подвергает его и монитор ряду тестов, а затем инициализирует видеоплату. Только после этого на экране могут отображаться сообщения об ошибках.

Далее наступает очередь контроллераDMA (Direct Memory Access). Главный мост (Host Bridge), который также называют северным (мостом, связывает процессор и оперативную память с системной шиной материнской платы). Основное количество транзакций на шине выполняется между мостом и остальными периферийными устройствами. Для сокращения времени обработки своих данных последние могут напрямую обращаться к главному мосту и таким образом «без посредников» производить запись информации в оперативную память. В тесте BIOS вновь использует шаблоны данных, которые система помещает в ОЗУ.

Интерфейс клавиатуры также подлежит проверке. При его неисправности BIOS выдает сообщение об ошибке именно на данном этапе.

BIOS еще раз проверяет оптические приводы, жесткие диски и разъемы, перед тем как выполнить прерывание INT 19 и передать управление загрузчику, который отвечает за запуск операционной системы и обмен данными между жестким диском и его контроллером. Многие версии BIOS позволяют отключить выполнение IRQ 19 — это целесообразно в тех случаях, когда в системе имеется дополнительный дисковый контроллер, например PCI RAID.

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

Если все в порядке, BIOS сгенерирует короткий звуковой сигнал, после чего на загрузочном устройстве будет выполнен поиск запускаемой операционной системы. Если на данном этапе возникает ошибка, то причина, как правило, кроется в отсутствии главной загрузочной записиMBR (Master Boot Record). В этом случае можно попытаться оживить систему с помощью установочного DVD.

 

(слайд №4)

В последнее время также стали широко обсуждаться и развиваться вопросы, связанные с заменой BIOS интерфейсом UEFI (Unified Extensible Firmware Interface ). Данный интерфейс призван стать новым стандартом базовой системы для ПК.

Для чего нужны BIOS и UEFI?

 

Для обозначения базовой системы (микропрограммы) используют также термин Firmware: аппаратно реализованное (встроенное) ПО. Он указывает на то, что программа «зашита» в микросхему на материнской плате (то есть ее не нужно устанавливать) и запускается автоматически. Сразу после включения ПК BIOS и UEFI выполняют несколько задач:

  1. Тестирование оборудования.Вначале BIOS осуществляет базовую проверку основных узлов компьютера. При этом проверяются не все компоненты, а лишь те, которые необходимы для запуска ПК, например процессор и оперативная память.
  2. Загрузка настроек.После окончания процедуры самотестирования (она занимает меньше минуты) BIOS определяет некоторые настройки. Сюда относятся, например, частота оперативной памяти, время включения встроенных вентиляторов или выбор режима энергосбережения, в который перейдет компьютер после длительного простоя. Многие из настроек можно изменить и в самой операционной системе, однако большинство параметров BIOS устанавливает непосредственно перед запуском Windows. На данном этапе загрузки пользователь также может изменить некоторые настройки – например, включить или отключить отдельные интерфейсы на материнской плате (например, для жестких дисков или USB-устройств). Кроме того, есть возможность выбора последовательности, в которой компьютер будет обращаться к загрузочным устройствам при запуске операционной системы (например, сначала – к жесткому диску, затем – к приводу CD/DVD, а после – к USB-накопителю).
  3. Загрузка операционной системы. В заключение BIOS загружает ОС. После запуска системы и всех драйверов потребность в BIOS отпадает.

 

Почему BIOS должна уйти?

Разрабатывая BIOS, программисты не задумывались о том, в течение какого времени будет использоваться эта система. Поэтому в этой базовой системеесть несколько компонентов, изменение которых невозможно либо связано с весьма большими трудностями. Например, BIOS (без специальных ухищрений) способна распознать диск емкостью лишь до 2 Тб, а современные 3,5-дюймовые жесткие диски могут хранить уже до 3 Тб данных. В UEFI подобных ограничений нет.Притом новая система предоставляет единый интерфейс программирования – это облегчает разработку программ, запускаемых до загрузки операционной системы. Кроме того, UEFI позволяет интегрировать дополнительные функции, например программу резервного копирования данных. Наконец, в UEFI отсутствуют некоторые технически устаревшие функции, имеющиеся в BIOS, – например, переключение процессора при загрузке системы в медленный режим работы Real Mode.

 

Преимущества UEFI:

(слайд №5)

 

1. Поддержка жестких дисков большой емкости. Для управления жесткими дисками BIOS использует MBR (Master Boot Record, главная загрузочная запись) – она содержит информацию о разделах жесткого диска. Основной недостаток MBR: размер каждой записи в ней составляет 32 бита. В результате BIOS может контролировать приблизительно 4 млрд (232) секторов. К тому же базовая система «рассчитывает» на то, что размер каждого сектора составляет 512 байт; в итоге оказывается, что BIOS не может работать с дисками свыше 2 Тб. И если двадцать лет назад подобный объем считался несбыточной мечтой, то сейчас это суровая реальность. Секторы больших размеров позволили бы использовать диски емкостью 3 Тб, но не все программы из тех, которые напрямую обращаются к жесткому диску, работают с ними корректно. Что касается интерфейса UEFI, он использует для управления жесткими дисками технологию GPT (GUID Partition Table), обеспечивающую возможность записи на жесткий диск большего объема данных. В итоге стандарт GPT поддерживает жесткие диски емкостью до почти 8 млрд Тб.

  1. Встроенная BIOS. При использовании материнских плат на базе UEFI отпадает необходимость в BIOS, поскольку все функции BIOS содержатся в UEFI в виде так называемого модуля поддержки совместимости (Compatibility Support Module). Поэтому программа, использующая функции BIOS, работает и на компьютерах с UEFI.
  2. Простота управления.Для навигации по меню настроек и выбора программ можно пользоваться мышью. В BIOS, напомним, можно было работать только с помощью клавиатуры. К тому же интерфейс UEFI поддерживает более высокое разрешение.
  3. Преимущества в скорости загрузки.От включения компьютера до момента, пока BIOS загрузит операционную систему, проходит 30–60 с. UEFI работает быстрее.
  4. Встроенная операционная система.UEFI имеет также собственную оболочку. По сути – это миниатюрная операционная система, которая, как и DOS (далекий предок Windows), «понимает» только текстовые команды. Она может оказаться полезной для опытных пользователей или системных администраторов, пытающихся установить причины отказа загрузки основной ОС. Некоторые производители, в том числе компания MSI, предлагают для UEFI собственные операционные системы на базе Linux, загружаемые с CD/DVD.
  5. Дополнительные программы.Встроенная мини-ОС подходит и для установки дополнительных программ. Последние можно интегрировать в виде отдельных пунктов меню интерфейса UEFI либо загружать с CD/DVD. Однако это дело будущего – в настоящее время доступно небольшое количество приложений. К тому же речь идет, как правило, о вспомогательных утилитах и очень простых играх, например Pair Match.

Доступ к BIOS.

(слайд №6)

 

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

За процедурами BIOS закреплены прерывания Int 10h – Int 11Ah.

Например, Int 12h вызывает процедуру, которая возвращает вызвавшей ее программе размер оперативной памяти ПЭВМ.

Входные и выходные параметры процедур BIOS передаются в регистрах общего назначения центрального процессора ПЭВМ.

Например, для установки системного времени нужно подать следующие команды:

MOV AH, 1 ; Функция 1 - установка времени

MOV CX, HIGH_COUNT ; CX:DX = новое значение времени MOV DX,LOW_COUNT

INT 1AH ; Точка входа в BIOS, обслуживающая запросы к таймеру

Для чтения времени используется следующая программа:

MOV AH,0 ; Функция 0 - чтение времени

INT 1AH ; Запрос к BIOS. Результат будет возвращен в регистрах CX и DX.

Процедуры BIOS сохраняют значения всех регистров, кроме тех из них, в которых возвращаются значения.

 

Области данных BIOS.

(слайд №7)

 

Области данных BIOS - это либо области ОЗУ, в которых хранится текущая информация о состоянии ПЭВМ, либо области ПЗУ, в которых записаны аппаратные характеристики устройств.

Сведения о наличии основных устройств компьютера записывается в область данных BIOS с адресом 0000:0410 размером в двухбайтовое слово - слово конфигурации. С помощью прерывания INT 11h программа может получить в регистре AX слово конфигурации из указанной выше области данных BIOS.

Лекция №6.

Функции BIOS.

 

Int 10h - Управление экраном:

Для варианта №12, Лабораторной работы №2 - Определить режим видеоадаптера (текстовый, графический, разрешение(BIOS 10h)).

00h Задание видеорежима

01h Задание формы курсора

02h Задание позиции курсора

03h Чтение позиции и формы курсора

04h Чтение позиции светового пера

05h Задание активной страницы дисплея

06h Прокрутка окна вверх

07h Прокрутка окна вниз

08h Чтение атрибута и символа в текущей позиции курсора

09h Вывод атрибута и символа в текущую позицию курсора

0Ah Вывод символа в текущую позицию курсора

0Bh Задание цветовой палитры

0Ch Вывод пикселя на экран

0Dh Чтение пикселя

0Eh Вывод символов в режиме телетайпа

Примечания.

1.Это слово хранится в области данных BIOS по адресу 00413h.

2.Для определения размера расширенной памяти используйте Int 15h, функцию 88h. Для определения размера дополнительной памяти используйте Int 67h, функцию 42h.

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

 

Int 15h - Системные утилиты

 

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

88h Получить размер расширенной памяти (AT, XT-286, PS/2)

 

Выход: AX = число непрерывных 1K блоков сверх 1M (1024K)

 

Интерфейс EMS

 

Дополнительная память (EMS) способ для программ, запускающихся в реальном режиме, обращаться к памяти, находящейся за пределами первого мегабайта. EMS позволяет отобразить сегмент памяти, начинающийся обычно с 0D000h,на любые участки памяти.

Вызывать функции EMS (прерывание 67h) можно, только если в системе присутствует драйвер с именем ЕММХХХХ0.

Для проверки его существования можно, например, вызвать функцию 3Dh (открыть файл или устройство), причем на тот случай, если драйвер EMS отсутствует, а в текущей директории есть файл с именем ЕММХХХХ0, следует дополнительно вызвать функцию IOCTLINT 21hс АХ = 4400h и ВХ = идентификатор файла или устройства, полученный от функции 3Dh. Если значение бита 7 в DX после вызова этой функции 1, то драйвер EMS наверняка присутствует в системе.

 

INT 67h, АН = 42h — Получить объем памяти

 

Ввод: AH = 42h
Вывод: АН = 0 DX = объем EMS-памяти в 16-килобайтных страницах ВХ = объем свободной EMS-памяти в 16-килобайтных страницах

 

H - получить текущие параметры дисковода (НМД).

(слайд №19)

 

На входе: AH = 08h
DL = Адрес дисковода (0, 1, ..., 80h, 81h, ...)
На выходе: AH = Состояние дисковода после завершения последней операции
CF = 1, если произошла ошибка, 0, если ошибки нет
BL = тип дисковода (только для AT и PS2)
DL = количество НМД, обслуживаемых первым контроллером
DH = максимальный номер головки
CL = максимальный номер сектора
CH = максимальный номер цилиндра
ES:DI = адрес таблицы параметров дисковода
Примечание: PC, XT, AT, PS/2

 


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

 

не используется;
360К, 40 дорожек, 5,25 дюймов;
1,2М, 80 дорожек, 5,25 дюймов;
720 К, 80 дорожек, 3,5 дюйма;
1,44М, 80 дорожек, 3,5 дюйма.

 

Еще раз отметим, что прерывание INT 13h используется для организации ввода/вывода на диск. Для определения количества установленных НГМД используется значение из слова конфигурации прерывания INT 11h, а также для определения наличия НЖМД. Для того же, чтоб определить тип установленных НЖМД и НГМД можно использовать информацию, хранимую в CMOS-памяти.

 

H – Получить тип дисковода

(слайд №20)

 

На входе: AH = 15h
DL = Адрес дисковода (0, 1, ..., 80h, 81h, ...)
На выходе: AH = Тип дисковода
CX:DX = количество секторов размером 512 байтов
Примечание: AT, PS/2

 

Возвращаемый этой функцией тип дисковода может принимать следующие значения:

 

диск отсутствует;
НГМД без аппаратных средств обнаружения замены дискеты;
НГМД оснащенный средствами обнаружения замены дискеты;
НМД.

 

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

 

Mov al,12h

out 70h,al; задаем адрес в CMOS-памяти

jmp $+2; небольшая задержка

in al,71h ; записываем в AL считанное значение

 

Запись в CMOS-память выполняется аналогично.

При анализе конфигурации дисковой системы для нас представляют наибольший интерес ячейки CMOS-памяти со следующими адресами 14h, 10h и 12h.

 

В памяти CMOS хранится:

(слайд №22)

 

Адрес ячейки Содержимое
00h - 0Dh Используются часами реального времени Вариант №6.
0Eh Байт состояния диагностики при включении питания Вариант №7.
0Fh Байт состояния отключения
10h Тип НГМД Вариант №8.
11h Зарезервировано
12h Тип НМД (если меньше 15) Вариант №1.
13h Зарезервировано
14h Конфигурация оборудования Вариант №11.
15h - 16h Объем основной памяти Вариант №2.
17h - 18h Объем расширенной памяти Вариант №2.
19h Тип первого НМД (если он больше 15) Вариант №1
1Ah Тип второго НМД (если он больше 15) Вариант №1
1Bh - 20h Зарезервировано
21h - 2Dh Зарезервировано
2Eh - 2Fh Контрольная сумма ячеек 10h - 20h
30h - 31h Объем расширенной памяти Вариант №2.
32h Текущее столетие в двоично-десятичном коде (19h для 19-го столетия)
33h Различная информация
34h - 3Fh Зарезервировано

 

Рассмотрим подробно назначение отдельных ячеек CMOS-памяти.

 

Eh - байт диагностики

Для варианта №7, Лабораторной работы №2 –Определить состоние байта диагностики из области CMOS (0Eh) и написать программу, анализирующую возможные неисправности в системе.

 

Байт диагностики содержит результаты выполнения диагностики при включении питания компьютера. Выполнив анализ содержимого байта 0Eh, программа может выявить неисправность НМД, часов реального времени, разрядку аккумулятора и ошибки в конфигурации. Приведем формат этого байта:

 

Бит Описание
0-1 Не используется, равно 0
0 - неправильная установка часов реального времени; 1 - часы реального времени установлены правильно
0 - НМД исправен; 1 - неисправность НМД, невозможно загрузить операционную систему с жесткого диска
0 - размер оперативной памяти указан правильно; 1 - фактический размер оперативной памяти не соответствует указанному в памяти CMOS
0 - конфигурация указана правильно; 1 – ошибка в конфигурации системы, фактическая конфигурация не соответствует указанной в байте конфигурации оборудования (ячейка 14h)
0 - контрольная сумма памяти CMOS правильная; 1 - ошибка в контрольной сумме памяти CMOS
0 – аккумулятор, питающий память CMOS, исправен и заряжен; 1 - разрядка аккумулятора выше нормы

 

H - тип НГМД

Для варианта №8, Лабораторной работы №2 –Определить количество и тип установленных накопителей на гибких магнитных дисках (НГМД).

(слайд №24)

 

Младшая и старшая тетрады этого байта описывают, соответственно, второй и первый НГМД:

 

Значение Емкость, Кбайт Диаметр Количество секторов на одну дорожку Количество дорожек
НГМД не установлен - - -
5,25"
5,25"
3,5"
3,5"

12h - тип НМД C: и D:

Для варианта №1, Лабораторной работы №2 –Определить наличие и тип установленного в системе накопителя на жестких магнитных дисках (НЖМД).

 

Этот байт разделен на две тетрады аналогично байту, который описывает НГМД. Однако в тетраде можно закодировать только 16 значений, а различных типов НМД значительно больше. Поэтому тип 15 используется специальным образом - если тип НМД в младшей тетраде (диск C:) равен 15, то правильное значение типа находится в CMOS-памяти по адресу 19h. Аналогично для диска D: этот тип можно взять из байта по адресу 1Ah (если содержимое старшей тетрады байта с адресом 12h равно 15).

 

Если в вашем компьютере установлен НМД с интерфейсом ESDI , SCSI или другим специализированным интерфейсом, то, как правило, для работы с ними используется специальная "дисковая" базовая система ввода/вывода. Соответствующая микросхема ПЗУ может быть расположена непосредственно в контроллере. При этом в CMOS-памяти в ячейке 12h для типа диска может быть указано нулевое значение, несмотря на то, что диск установлен. Прерывание INT 11h , тем не менее, скажет вам, что в системе имеется НМД.

 

Если используется "дисковая" базовая система ввода/вывода, то она сама инициализирует таблицу параметров диска и выполняет обработку прерывания INT 13h . Так как MS-DOS при обращении к дискам использует именно это прерывание, то не возникает никаких проблем, связанных с отсутствием типа диска в CMOS-памяти. Другие операционные системы, такие как Windows NT и OS/2 , используют для работы с дисками специальные драйверы.

 

Приведем сокращенную таблицу параметров для стандартных типов НМД (зависит от версии BIOS):

(слайд №25)

 

Тип Количество цилиндров Количество головок Емкость диска в байтах
10.653.696
21.411.840
32.117.760
65.454.080
49.090.560
21.411.840
32.169.984
31.900.160
117.504.000
21.411.840
37.209.600
52.093.440
21.307.392
44.660.224
21.307.392
42.519.040
59.526.656
62.390.272
31.900.160
44.660.224
31.900.160
10.653.696
42.519.040
80.216.064
74.575.872
117.190.656
159.805.440
71.303.168
98.041.856
87.892.992
72.460.800
89.128.960
106.954.752
115.867.648
124.780.544
17.825.792
142.606.336
119.854.080
42.823.680

 

Для всех приведенных в таблице типов дисков на одной дорожке располагается 17 секторов.

Стандартный компьютер IBM PC/XT комплектуется обычно НМД с типом 1, тип 2 используется в стандартном компьютере IBM PC/AT. Остальные типы НМД используются главным образом старыми версиями BIOS.

 

Примечания.

Номер стыка в описанных ниже функциях задается так:

COM1,

COM2 и т. д.

При этом в PS/2 он может варьироваться от 0 до 3, в остальных ПЭВМ - от 0 до 1. Базовый адрес порта для стыка извлекается из области данных по адресу 00400h.

 

Рассмотрим некоторые функции данного прерывания более подробно:

 

INT 14h AH = 03 — Получить текущее состояние порта

 

Ввод: АН = 03h DX = номер порта (00h – 03h)
Вывод: АН = состояние линии AL = состояние модема

 


INT 14h АН = 00 — Инициализация последовательного порта

(слайд №32)

 

Ввод: АН = 00h AL = параметры инициализации: биты 7 – 5: 000 — 19 200 бод (110 бод без FOSSIL) 001 — 38 400 бод (150 бод без FOSSIL) 010 — 300 бод 011 — 600 бод 100 — 1200 бод 101 — 2400 бод 110 — 4800 бод 111 — 9600 бод биты 4 – 3: четность (01 — четная, 11 — нечетная, 00 или 10 — нет) бит 2: число стоп-бит (0 — один, 1 — два) биты 1 – 0: длина слова (00 — 5, 01 — 6, 10 — 7, 11 — 8) DX = номер порта (00h – 03h)
Вывод: АН = состояние порта бит 7: тайм-аут бит 6: буфер вывода пуст (без FOSSIL: регистр сдвига передатчика пуст) бит 5: в буфере вывода есть место (без FOSSIL: регистр хранения передатчика пуст) бит 4: обнаружено состояние BREAK бит 3: ошибка синхронизации бит 2: ошибка четности бит 1: ошибка переполнения — данные потеряны бит 0: в буфере ввода есть данные AL = состояние модема бит 7: обнаружена несущая (состояние линии DCD) бит 6: обнаружен звонок (состояние линии RI) бит 5: запрос для передачи (состояние линии DSR) бит 4: сброс для передачи (состояние линии CTS) бит 3: линия DCD изменила состояние бит 2: линия RI изменила состояние бит 1: линия DSR изменила состояние бит 0: линия CTS изменила состояние

 

Более того информацию о портах можно извлечь и из области данных BIOS (Data Area BIOS).

 


Как говорилось ранее, после зоны векторов прерываний идет область, называемая BIOS Data Area, где размещаются данные, полученные в ходе тестирования оборудования, буфера системных устройств, например буфер клавиатуры, и различные служебные регистры. Эта область данных имеет размер не менее 256 байтов и начинается с адреса 0000:0400h или 0040:0000h. Назначение наиболее интересных для пользователя зон в области BIOS Data Area следующее:

(слайд №33)

 

Адрес Размер, байт Назначение
040:000 4x2 Базовые адреса портов СОМ 1— COM4 Для варианта №4, Лабораторной работы №2 – Определить количество установленных параллельных и последовательных портов.
040:008 3x2 Базовые адреса портов LPT1— LPT3 Для варианта №4, Лабораторной работы №2 – Определить количество установленных параллельных и последовательных портов
040:010 040:017 2 39 Установленное оборудование Для варианта №11, Лабораторной работы №2 – Определить и вывести на экран список оборудования (BIOS 11h). Область флагов и буфер клавиатуры
040:049 Текущий видеорежим Для варианта №12, Лабораторной работы №2 – Определить режим видеоадаптера (текстовый, графический, разрешение) (BIOS 10h).
040:04А Ширина экрана (число колонок символов)
040:050 Позиция курсора (младшая половина — колонка, старшая — ряд)
040:060 Размер курсора (в младшем байте — последняя строка, в старшем — первая)
040:067 Область данных POST

Лекция №7.

Int 15h - Системные утилиты

Для варианта №5, Лабораторной работы №2 – Определить модель компьютера (BIOS 15h) и версию BIOS.

(слайд №34)

 

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

 





Последнее изменение этой страницы: 2016-04-26; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.239.233.139 (0.036 с.)