Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

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

 

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

В настоящее время выпускается много различных моделей персональных компьютеров и серверных платформ. В компьютере могут быть установлены процессоры различных моделей и различные версии 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)

 

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

 

Функция Назначение
00h Включить мотор кассетного магнитофона (PC, PCjr)
01h Выключить мотор кассетного магнитофона (PC, PCjr)
02h Чтение с кассетного магнитофона (PC, PCjr)
03h Запись на кассетный магнитофон (PC, PCjr)
0Fh Ловушка форматирования дисков (PS/2)
21h Регистрация ошибок POST (PS/2) Для варианта №7, Лабораторной работы №2 – Определить состояние байта диагностики из области CMOS (0Eh) и написать программу, анализирующую возможные неисправности в системе.
40h Операции с профилем системы (Convertible)
41h Ожидание внешнего события (Convertible)
42h Отключение ПЭВМ (Convertible)
43h Чтение состояния системы (Convertible)
44h Управление встроенным модемом (Convertible)
4Fh Ловушка клавиатуры (многие)
80h Открыть устройство (многие)
81h Закрыть устройство (многие)
82h Освободить устройство (многие)
83h Ожидание события (многие)
84h Работа с джойстиком (многие)
85h Обработка SysReq (многие)
86h Задержка (AT, XT-286, PS/2)
87h Обмен с расширенной памятью (AT, XT-286, PS/2)
88h


Поделиться:


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

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