Настройки компьютера и операционной системы


Редактируем BIOS (Award Modular v.4.51) - часть 6


00000 – xxxxx

Файл одного из запакованных «модулей», например, awardext.rom

xxxxx – yyyyy

Cразу же дальше (т.е. без разрыва) идёт файл следующего запакованного модуля, например, cpucode.bin. Дальше (также без разрыва) – следующий. И так все имеющиеся в конкретном биосе “модули” (кроме original.tmp)

yyyyy – 1FFFFh

Свободное место, обычно заполняется «00» или «FF»

20000 – zzzzz+1

Файл запакованного original.tmp плюс один байт («дополнительного» CRC)

zzzzz+1 - ~37FFEh*

Свободное место, обычно заполняется «00» или «FF»

~3C000* – 3FFFFh

Бутблок

* - адреса могут отличаться, т.к. бывают прошивки с разными по величине бутблоками.

И значит, не надо дополнительно мучаться с оставшимися «модулями» - заархивированный LHA модуль original.tmpзаписываем по адресу 20000h в нашу прошивку (поверх, конечно) и для пересчёта CRC «пересохраняем» (“Update File”) в модбине.

Правка BootBlock-а.

BootBlock, располагающийся в самом конце биоса, как уже говорилось, не запакован (ведь кто-то должен всё распаковывать:). Поэтому с правкой тут особых проблем нет – берём любой hex-редактор и правим. CRC считается вплоть до 17FFFh для 1M-bit и 37FFFh для 2M-bit, так что если вы исправили что-то по более старшим адресам, обновлять CRC не нужно.

Примечание для программистов: не забывайте – в бутблоке не используется стэк (он на первой стадии инициализации запрещён), поэтому для исполнения своих подпрограмм пользоваться указателем sp

«вручную». Как? – проще взглянуть на любой кусок кода оттуда от любой прошивки и станет понятно.

Дата: 4.11.2003

Автор: Севко Роман

Источник: http://yusoft.kulichki.com




Начало  Назад  Вперед



Книжный магазин