Скачать 3.55 Mb.
|
БлагодарностиМы выражаем благодарность генеральному директору АО “ДиалогНаука” Антимонову Сергею Григорьевичу и его заместителю Лященко Юрию Павловичу за возможность размещения информации о наших книгах на сервере Web по адресу http://www.dials.ccas.ru/frolov, а также за возможность доступа к сети Internet через сервер АО “ДиалогНаука”. Мы также благодарим корректора Кустова В. С. и сотрудников издательского отдела АО “Диалог-МИФИ” Голубева О. А., Голубева А. О., Дмитриеву Н. В., Виноградову Е. К., Кузьминову О. А. Авторский компакт-дискВ сентябре 1997 года в продаже появился авторский компакт-диск (как спецвыпуск журнала “Аурамедиа”), на котором вы можете найти наши первые книги серий “Библиотека системного программиста” и “Персональный компьютер. Шаг за шагом” в исходных текстах, дискеты ко всем книгам серии “Библиотека системного программиста”, статьи, написанные нами для периодических изданий, библиотеку программ FreeWare и ShareWare, ссылки на интересные ресурсы Internet, вернисаж художника Алексея Абрамкина и другую информацию. Компакт-диск можно приобрести непосредственно в издательстве “Аурамедиа” и “Диалог-МИФИ”, а также по подписке. Как связаться с авторамиПолную информацию о всех наших книгах серий “Библиотека системного программиста” и “Персональный компьютер. Шаг за шагом”, а также дискеты к книгам, статьи и другую информацию вы можете найти в сети Internet на серверах Web по следующим адресам: http://www.glasnet.ru/~frolov http://www.dials.ccas.ru/frolov Вы можете передать нам свои замечания и предложения по содержанию этой и других наших книг через электронную почту по адресам: [email protected] [email protected] Если электронная почта вам недоступна, присылайте ваши отзывы в АО “Диалог-МИФИ” по адресу: 115409, Москва, ул. Москворечье, 31, корп. 2, тел. 324-43-77 Приносим свои извинения за то что не можем ответить на каждое письмо. Мы также не занимаемся продажей и рассылкой книг, дискет, компакт-дисков, рекламы, отдельных фрагментов наших книг и исходных текстов к книгам. По этим вопросам обращайтесь непосредственно в издательство “Диалог-МИФИ”. Авторский комопакт-диск можно приобрести также в издательстве “Аурамедиа”. 1 Определение конфигурации компьютераЕсли ваша программа работает с устройствами компьютера на низком уровне или использует какие-либо аппаратные особенности периферии, она должна «уметь» определять конфигурацию аппаратных средств. В настоящее время выпускается много различных моделей персональных компьютеров и серверных платформ с процессором Intel, совместимых или не очень с оригинальным компьютером IBM PC/AT. В компьютере могут быть установлены процессоры различных моделей и различные версии BIOS. Что же касается номенклатуры периферийных устройств, таких как сетевые контроллеры, видеоадаптеры, сетевые и звуковые адаптеры, то она практически безгранична. Для наиболее распространенных моделей персональных компьютеров конфигурация аппаратных средств задается установкой перемычек на системной плате (motherboard) и платах контроллеров периферийных устройств, а также записывается в область данных BIOS и в энергонезависимую память CMOS специальной программой BIOS Setup. В следующем разделе мы рассмотрим средства BIOS, позволяющие определить конфигурацию компьютера. Об энергонезависимой памяти CMOS мы расскажем позже. Определение конфигурации с помощью BIOSВо время инициализации системы BIOS опрашивает порты, к которым подключены перемычки, и определяет содержимое ячеек памяти CMOS, содержащие информацию о конфигурации компьютера. Результат записывается в область данных BIOS, откуда программа может его извлечь с помощью прерываний BIOS. Сведения о наличии основных устройств компьютера записывается в область данных BIOS с адресом 0000:0410 размером в двухбайтовое слово - слово конфигурации. С помощью прерывания INT 11h программа может получить в регистре AX слово конфигурации из указанной выше области данных BIOS.
Наличие НМДСейчас уже трудно найти компьютер, в котором не было бы жесткого диска (разве лишь вам встретится бездисковая рабочая станция для локальной сети или сетевой компьютер для Internet). Тем не менее, анализируя нулевой бит слова конфигурации, полученного в регистре AX от прерывания INT 11h, вы можете определить, оборудован ли данный компьютер жестким диском. Если этот бит установлен в единицу, то оборудован, если нет – жесткий диск отсутствует. Наличие арифметического сопроцессораДо появления процессора i486 арифметический сопроцессор, значительно ускоряющий вычисления с плавающей точкой, был необязательным устройством. На системной плате компьютера для него предусматривалось отдельное гнездо. Процессор i486 выпускался в двух модификациях – с встроенным арифметическим сопроцессором и без сопроцессора. В современных компьютерах на базе процессора Pentium арифметический сопроцессор присутствует всегда и находится в корпусе центрального процессора. Анализируя бит с номером 1 в значении, полученном в регистре AX от прерывания INT 11h, вы можете определить факт наличия в системе арифметического сопроцессора. Если сопроцессор установлен, программа может использовать его для выполнения вычислений. Каким именно образом - вы узнаете из главы нашей книги, посвященной этому устройству. Начальный режим работы видеоадаптераБиты с номерами 4 и 5 слова конфигурации содержат номер начального режима видеоадаптера. В современных компьютерах применяется, как правило, режим с номером 10b - цветной, 80 текстовых строк по 25 символов в каждой строке. Количество установленных НГМДПоле размером два бита с номерами 6 и 7 содержит количество накопителей НГМД, установленных в системе, минус единица. То есть, если в компьютере установлен один НГМД, в этом поле записано нулевое значение, если два – значение 1 и так далее. Современные модели компьютеров обычно оборудуют одним накопителем НГМД, предназначенным для чтения дискет размером 3,5 дюйма. Что же касается дискет размером 5,25 дюйма, то они уже ушли в прошлое. Наличие контроллера прямого доступа DMAКонтроллер прямого доступа DMA применяется для непосредственной передачи данных из периферийных устройств в оперативную память компьютера, минуя центральный процессор. Этот контроллер есть во всех современных компьютерах, поэтому бит с номером 8 обычно установлен в единицу. Количество асинхронных последовательных адаптеровВ поле, образованное битами 9, 10 и 11, хранится количество асинхронных последовательных адаптеров, установленных в системе и обнаруженных BIOS в процессе инициализации. Игровой адаптерЕсли установлен бит с номером 12, к компьютеру подключен игровой адаптер, предназанченный для джойстика. Последовательный порт компьютера PCjrМаловероятно, что вам попадется в руки антикварный образец компьютера PCjr, но, тем не менее, установленный 13 бит слова конфигурации означает, что этот компьютер оборудован последовательным портом. Количество параллельных адаптеровВ поле, образованное битами с номерами 14 и 15, записывается количество параллельных адаптеров, обнаруженных на этапе инициализации. Размер оперативной памятиВ компьютере имеются различные виды оперативной памяти. В первых компьютерах применялся так называемый реальный режим работы процессора, не позволявший адресовать более 1 Мбайт памяти. Начальная область адресов от 0 до 640 Кбайт использовалась для оперативной памяти, а область от 640 Кбайт до 1 Мбайт – для памяти и регистров периферийных устройств, таких как видеоадаптеры и дисковые контроллеры. Раньше оперативная память была очень дорогая, поэтому далеко не в каждом компьютере было установлен максимально возможный объем – 1 Мбайт. Можно было встретить компьютеры с объемом оперативной памяти, например, 512 Кбайт. Программы в те времена, конечно, тоже были не очень требовательны к объему памяти. С появлением операционных систем Microsoft Windows и IBM OS/2 требования к объему памяти, установленной в компьютере, резко возросли. Компания Intel выпустила процессор i80286, способный адресовать в защищенном режиме до 16 Мбайт физической памяти. Теперь память с адресами в пределах первого мегабайта стала называться стандартной, а выше этого предела - расширенной (extended). Размер расширенной памяти определяется во время инициализации компьютера и записывается в память CMOS, откуда ее нетрудно извлечь. Стандартная оперативная памятьПрерывание INT 12h возвращает в регистре AX размер стандартной оперативной памяти в килобайтах. Заметим, что это значение, хранящееся в области данных BIOS с адресом 0040h:0013h, не превышает 640 Кбайт, даже если в компьютере установлено более 64 Мбайт оперативной памяти. Расширенная оперативная памятьФункция 88h прерывания INT 15h позволяет определить размер доступной расширенной памяти в килобайтах, возвращая соответствующее значение в регистре AX. Учтите, что если в системе установлен драйвер расширенной памяти, такой как, например, HIMEM.SYS, указанная выше функция может вернуть нулевое значение. Это происходит из-за того что драйвер берет на себя функции управления расширенной памятью. Заметим также, что с помощью параметра /int15 вы можете указать драйверу HIMEM.SYS размер зарезервированной расширенной памяти, доступной через интерфейс прерывания INT 15h: device=c:\dos\himem.sys /int15=xxxx Программа HDWCFGПрограмма HDWCFG определяет конфигурацию аппаратных средств компьютера, пользуясь для этого описанными выше функциями BIOS. Полученная конфигурация отображается на консоли, как это показано ниже: HDWCFG (C)A. Frolov, 1997 Configuration word: C823 HDD present NPU present RAM banks: 0 Video Mode: 2 Nubber of FDD: 1 Nubber of COM ports: 2 Number of LPT ports: 3 RAM istalled: 640 Kbytes Extended RAM istalled: 0 Исходный текст программы HDWCFG представлен в листинге 1.1. Листинг 1.1. Файл hdwcfg\hdwcfg.c // ===================================================== // Получение информации о конфигурации компьютера // при помощи BIOS // // (C) Фролов А.В, 1997 // // E-mail: [email protected] // WWW: http://www.glasnet.ru/~frolov // или // http://www.dials.ccas.ru/frolov // ===================================================== #include #include #include #include // Битовые поля слова конфигурации typedef struct _HDWCFG { unsigned HddPresent: 1; // 0 unsigned NpuPresent: 1; // 1 unsigned AmountOfRAM: 2; // 2-3 unsigned VideoMode: 2; // 4-5 unsigned NumberOfFdd: 2; // 6-7 unsigned DmaPresent: 1; // 8 unsigned NumberOfCom: 3; // 9-11 unsigned GamePresent: 1; // 12 unsigned JrComPresent: 1; // 13 unsigned NumberOfLpt: 2; // 14-15 } HDWCFG; int main(void) { union REGS rg; HDWCFG HdwCfg; unsigned uword; printf("\nHDWCFG (C)A. Frolov, 1997"); // Вызываем прерывание INT 11h для получения // слова конфигурации компьютера rg.h.ah = 0x0; int86(0x11, &rg, &rg); // Получаем слово конфигурации и сохраняем // его в структуре HdwCfg uword = (unsigned int)rg.x.ax; memcpy(&HdwCfg, &uword, 2); // Выводим на экран конфигурацию компьютера printf("\n\nConfiguration word: %04.4X", HdwCfg); if(HdwCfg.HddPresent) printf("\nHDD present"); if(HdwCfg.NpuPresent) printf("\nNPU present"); printf("\nRAM banks: %d", HdwCfg.AmountOfRAM); printf("\nVideo Mode: %d", HdwCfg.VideoMode); printf("\nNubber of FDD: %d", HdwCfg.NumberOfFdd + 1); if(HdwCfg.DmaPresent) printf("\nDMA present"); printf("\nNubber of COM ports: %d", HdwCfg.NumberOfCom); if(HdwCfg.GamePresent) printf("\nGame adapter present"); if(HdwCfg.JrComPresent) printf("\nPCjr Com present"); printf("\nNumber of LPT ports: %d", HdwCfg.NumberOfLpt); // Вызываем прерывание INT 12h для определения // объема основной оперативной памяти компьютера rg.h.ah = 0x0; int86(0x12, &rg, &rg); // Выводим объем оперативной памяти printf("\nRAM istalled: %d Kbytes", (unsigned int)rg.x.ax); // Получаем объем расширенной оперативной памяти, // доступной через прерывание INT 15h rg.h.ah = 0x88; int86(0x15, &rg, &rg); // Выводим объем расширенной оперативной памяти printf("\nExtended RAM istalled: %ld Kbytes", (unsigned int)rg.x.ax); getch(); return 0; } |
![]() |
М. Ю. Храмцов С. В. Шарф Руководство системного программиста (администратора)... Руководство системного программиста (администратора) системы управления прохождением задач мвс-1000/7 (версия 1, RedHat) |
![]() |
Руководство системного программиста «Электронный бюджет» подсистема обеспечения интеграции, ведения реестров и формуляров |
![]() |
Руководство системного программиста (администратора) Муниципальный модуль распределённой автоматизированной системы государственного банка данных о детях |
![]() |
Руководство системного программиста лист утверждения бкмд. 425530.... Программное обеспечение системы централизованного управления персональными мобильными устройствами и платформами в корпоративных... |
![]() |
Руководство системного программиста З по выполнению государственных функций и оказанию государственных услуг, заинтересованным лицам территориальными управлениями Росоэз... |
![]() |
Система цифровой регистрации изображений комплект программного обеспечения Программный документ “Руководство системного программиста” содержит сведения о “Комплексе программ для получения и визуализации данных,... |
![]() |
Инструкция по проведению регламентных и восстановительных работ rus. Гаро. 00001-25 32 02 Пк типа ibm pc в операционной системе Windows’98 и имеющих квалификацию инженера-программиста или системного инженера. Инструкция... |
![]() |
Инструкция читателя в онлайн-проекте «Библиотека ЛитРес» Аннотация... «Библиотека ЛитРес» (biblio litres ru) позволяет читателям библиотек получить бесплатный доступ к электронным книгам, представленным... |
![]() |
Муниципальный модуль прикладного программного обеспечения «аист»... Настоящий документ является эксплуатационным документом на муниципальный модуль прикладного программного обеспечения «Аист» (далее... |
![]() |
В. П. Казанцев инструкция по охране труда для инженера-программиста Инструкция, регламентирует безопасный, с точки зрения охраны труда, порядок действий инженера-программиста в процессе исполнения... |
![]() |
Сектор Абонемента ЛитРес Библиотека (поиск "ЛитРес" или "Библиотека"), ссылка на приложение: https://play google com/store/apps/details?id=ru litres... |
![]() |
Учебно-методический комплекс по дисциплине наименование дисциплины... Системного подхода, системной инженерии и с обширным арсеналом методов и моделей системного анализа. Это даст необходимую методологическую... |
![]() |
Должностная инструкция системного администратора информационной системы персональных данных Настоящая инструкция определяет основные обязанности, права и ответственность системного администратора информационной системы доу... |
![]() |
Пример описания технических требований системного блока №1 2 2 Пример... Устройство бесперебойного питания для рабочих станций. Типовая конфигурация №1 21 |
![]() |
Пример описания технических требований системного блока №1 2 2 Пример... Устройство бесперебойного питания для рабочих станций. Типовая конфигурация №1 22 |
![]() |
Пример описания технических требований системного блока №1 2 2 Пример... Устройство бесперебойного питания для рабочих станций. Типовая конфигурация №1 17 |
Поиск |