Перед обновлением BIOS рекомендуется создать резервную копию текущего содержимого ПЗУ. Дело в том, что многие производители материнских плат помещают на своих сайтах только последние версии BIOS, которые иногда могут вызывать проблемы или не соответствовать вашим потребностям. Имея резервную копию, всегда можно вернуться к ранее существовавшей на компьютере версии BIOS. Для создания резервной копии запустите программу обновления BIOS своей материнской платы и посмотрите, предлагает ли она резервное копирование. Если не предлагает, посмотрите на сайте производителя материнской платы, какие версии BIOS на нем доступны для загрузки и есть ли среди них та, которая установлена в текущий момент на вашем компьютере. Если возможности создать резервную копию нет и на сайте отсутствует текущая версия BIOS вашего компьютера, придется использовать альтернативные методы.
Одним из достоинств программатора EPROM является то, что его можно использовать в качестве устройства резервного копирования съемных ПЗУ на случай, если они впоследствии выйдут из строя. В то же время большинство выпускаемых сегодня материнских плат содержит припаянные микросхемы ПЗУ. В данном случае единственный выход — воспользоваться программой DEBUG для чтения содержимого ПЗУ и его сохранения в файле на диске. Хранимая в файле резервная копия содержимого ПЗУ может пригодиться и для других целей. К примеру, в ней можно найти выводимые на экран информационные строки; также можно дизассемблировать программный код и выяснить, как он работает.
Код ПЗУ обычно занимает 128 Кбайт ОЗУ в виде двух сегментов по 64 Кбайт: E0000– EFFFF и F0000–FFFFF. BIOS видеоадаптеров или других плат хранятся по адресам C0000– CFFFF и D0000–DFFFF. В связи с особенностями программы DEBUG каждый сегмент объемом 64 Кбайт необходимо сохранять отдельно.
Чтобы воспользоваться программой DEBUG для сохранения сегментов E000 и F000, введите ряд команд.
C:\>DEBUG ; Запуск программы DEBUG
-R BX ; Изменение регистра BX (размер файла высокого по-рядка)
BX 0000 ; Со значения 0
:1 ; На значение 1 (указывает на файл объемом 64 Кбайт)
-N SEG-E.ROM ; Название файла
-M E000:0 FFFF CS:0 ; Перемещение 64 Кбайт данных из BIOS в текущий сегмент кода
-W 0 ; Запись файла со смещением 0 в сегмент кода
Запись 10000 байт ; 10000h = 64K
-N SEG-F.ROM ; Имя файла
-M F000:0 FFFF CS:0 ; Перемещение 64 Кбайт данных из BIOS в текущий сегмент кода
-W 0 ; Запись файла со смещением 0 в сегмент кода
Запись 10000 байт ; 10000h = 64K
-Q ; Завершение работы DEBUG
Результат работы этой совокупности команд в Windows XP представлен на рисунке ниже.
Приведенные выше инструкции позволяют сохранить сегменты объемом 64 Кбайт по адресам E0000–EFFFF и F0000–FFFFF в файлах. Для этого вначале указывается размер файла, затем — его имя, после чего код BIOS копируется в выделенный сегмент. После этого данные можно записать на диск.
Если вы решили сохранить содержимое ПЗУ, в том числе BIOS видеоадаптера и ПЗУ других адаптеров, повторите описанные выше действия, однако при запуске программы DEBUG необходимо указать начальные адреса C000:0 и D000:0. Не забудьте указывать различные имена файлов. Следует заметить, что BIOS видеоадаптера может занимать не весь сегмент C0000 и, кроме того, некоторые адаптеры могут использовать сегменты C0000 и D0000 не полностью. В данном случае Windows может использовать соответствующие участки памяти для хранения других данных.
Обратите внимание, что приведенные выше команды необходимо выполнять в строго определенном порядке. Например, команда Name всегда должна предшествовать команде Move; в противном случае часть данных в начале текущего сегмента кода будет удалена.