Редактируем Award Modular BIOS v6.00PG (окончание)

CRC "original.bin"

Контольная сумма в конце "original.bin" является "стандартной" - она считается как побайтовая сумма всего модуля (начиная с самого начала - адреса 90000 в нашем случае) до "нулевого" байта на конце. После чего "инвертированное" значение и является конечным значением - так, чтобы после при подсчете CRC по всему "диапазону" от начала до байта CRC (включая его) получался 0. Данную процедуру можно сделать многими утилитами, но есть важное НО:

Рис.34.Обведены заголовки и выделено главное отличие - стандартное для "оригинал.бина" место распаковки (5000:0000) в "lha"-шном заголовке обозначает другое, потому имеет совсем другое значение (A69D:8BF6): понятно, что с таким значением биос даже "при желании" - не заработает.
Рис.34.
Обведены заголовки и выделено главное отличие - стандартное для "оригинал.бина" место распаковки (5000:0000) в "lha"-шном заголовке обозначает другое, потому имеет совсем другое значение (A69D:8BF6): понятно, что с таким значением биос даже "при желании" - не заработает.
Замечание. Кстати, то, что модбин корректно "узнал" в подобном модуле "original.bin" - заслуга последних версий cbrom32, более старые версии (cbrom) - страшно бы матерились или даже зависли...

Кроме CRC, мы должны исправить заголовок упакованного модуля "original.bin" - он "похож", но, всё-таки, принципиально отличается от сделанного LHA, потому, не исправив его, мы получим нестартующую систему. И именно этим занимается modbin.

Рис.35.Открываем сделанный файл в модбине.
Рис.35. Открываем сделанный файл в модбине.
Рис.36.Облом-с! "Слишком свежий" был выбран примерчик - даже самый последний модбин не захотел проглотить 8Мбит-ный биос, не признав в нём Аварда...
Рис.36.
Облом-с! "Слишком свежий" был выбран примерчик - даже самый последний модбин не захотел проглотить 8Мбит-ный биос, не признав в нём Аварда...
Рис.37.Для примера, как "должно было бы быть" - продемонстрируем на другом (4М-битном) биосе (от GA-8IPE1000Pro), сделанным таким же образом. Открываем его в модбине...
Рис.37.
Для примера, как "должно было бы быть" - продемонстрируем на другом (4М-битном) биосе (от GA-8IPE1000Pro), сделанным таким же образом. Открываем его в модбине...
Рис.38.В отличие от предыдущего, он благополучно открывается...
Рис.38.
В отличие от предыдущего, он благополучно открывается...
Рис.39.Сохраняем его под нужным именем (можно "поверх" открываемого).
Рис.39.
Сохраняем его под нужным именем (можно "поверх" открываемого).

 

Статья пишется "по ходу", потому для меня это тоже "сюрприз". К сожалению, но факт - стабильностью/"совместимостью"/"всеядностью" - не блещут никакие версии модбина. Будем надеяться, что в будущем эта печальная реальность изменится, но пока нужно стать "пионерами" и быть готовым всегда и ко всему. :)

Выйти из данной ситуации поможет вышеупомянутое правило - модбин "работает" лишь с одним (единственным) модулем - "original.bin", остальные ему абсолютно не нужны. Этим и воспользуемся, придётся "обработать" модуль "original.bin" - "отдельно".

Рис.40.Для этого можно использовать другой биос, который "примет" используемая версия модбина. Покопавшись в соседних каталогах, был обнаружен "приятный" двухмегабитный биос от GA-8I848P Rev.1.x - на нём и проведем нужные действия.
Рис.40. Для этого можно использовать другой биос, который "примет" используемая версия модбина. Покопавшись в соседних каталогах, был обнаружен "приятный" двухмегабитный биос от GA-8I848P Rev.1.x - на нём и проведем нужные действия.
Рис.41.Сначала "стираем" все модули в биосе. Для этого выделяем область от начала...
Рис.41.
Сначала "стираем" все модули в биосе. Для этого выделяем область от начала...
Рис.42....до конца (ищем "стандартно" по FFFFFFFF)...
Рис.42.
...до конца (ищем "стандартно" по FFFFFFFF)...
Рис.43. и забиваем ее эфэфками (ALT-F2 для hiew).
Рис.43.
и забиваем ее эфэфками (ALT-F2 для hiew).
Рис.44.Полученная "заготовка" (без модулей) - готова!
Рис.44.
Полученная "заготовка" (без модулей) - готова!
Рис.45.cbrom в отсутствие модулей немного "растерялся". :) Но нас это не пугает - так и задумано! :)
Рис.45.
cbrom в отсутствие модулей немного "растерялся". :) Но нас это не пугает - так и задумано! :)
Рис.46.Повторяем процедуру получения запакованного архива изменённого файла "original.bin" для вставки, или берем предусмотрительно ранее заготовленный "1.lzh" (см. Рис.22.).
Рис.46.
Повторяем процедуру получения запакованного архива изменённого файла "original.bin" для вставки, или берем предусмотрительно ранее заготовленный "1.lzh" (см. Рис.22.).
Рис.47.Выделяем всё (CTRL-* в hiew) и записываем в самое начало сделанной "заготовки".
Рис.47.
Выделяем всё (CTRL-* в hiew) и записываем в самое начало сделанной "заготовки".
Рис.48.Теперь полученный биос благополучно открывается модбином...
Рис.48.
Теперь полученный биос благополучно открывается модбином...
Рис.49....Исправляем нужное в нём...
Рис.49.
...Исправляем нужное в нём...
Рис.50....И сохраняем.
Рис.50.
...И сохраняем.
Изображение:F8edit cbrom good.gif
Рис.51.
Проверяем - cbrom больше не "ругается"...
Рис.52.Далее из сохранённого файла нужно извлечь отредактированный и уже "пересчитанный" модуль "original.bin". Для этого выделяем его от начала...
Рис.52.
Далее из сохранённого файла нужно извлечь отредактированный и уже "пересчитанный" модуль "original.bin". Для этого выделяем его от начала...
Рис.53....до конца.
Рис.53.
...до конца.
Рис.54.Захватываем, кроме нулевого байта, и байт CRC (54h в нашем случае).
Рис.54.
Захватываем, кроме нулевого байта, и байт CRC (54h в нашем случае).
Рис.55.И сохраняем в новый файл.
Рис.55.
И сохраняем в новый файл.
Рис.56.Теперь к нашему уже полностью "готовому" (с корректным заголовком и правльной CRC на конце) запакованному модулю "original.bin" дописываем аналогично сделанному на этапе Рис.30. содержимое "хвоста", только БЕЗ байта CRC в начале (ведь у нас уже он есть - правильно пересчитанный). "Хвост" делаем аналогично процедуре на Рис.23-29.
Рис.56.
Теперь к нашему уже полностью "готовому" (с корректным заголовком и правльной CRC на конце) запакованному модулю "original.bin" дописываем аналогично сделанному на этапе Рис.30. содержимое "хвоста", только БЕЗ байта CRC в начале (ведь у нас уже он есть - правильно пересчитанный). "Хвост" делаем аналогично процедуре на Рис.23-29.
Рис.57.И (аналогично шагу на Рис.32) записываем полученный "слепок" в предварительно "вычещенный" от модулей (аналогично шагам на Рис.41-44) наш будущий биос. Модули начинались, как помним (Рис.15.), с адреса 90000 - туда и вставляем полученный слепок.
Рис.57.
И (аналогично шагу на Рис.32) записываем полученный "слепок" в предварительно "вычещенный" от модулей (аналогично шагам на Рис.41-44) наш будущий биос. Модули начинались, как помним (Рис.15.), с адреса 90000 - туда и вставляем полученный слепок.
Рис.58."Модбинная" стадия завершена.
Рис.58.
"Модбинная" стадия завершена.

"Общая" CRC биоса

В отличие от модбина, cbrom обладает достаточной стабильностью и проблем с пересчетом CRC ("его" контрольной суммы - в конце всех модулей; напомню, CRC-байт "original.bin" он не "трогает"). Для работы лучше всего пользоваться самым последним – на момент написания это CBROM.EXE V1.55 10/12/05 Release. Для пересчета CRC достаточно проделать любую операцию с биосом (просмотр по опции /D - не в счёт). Например, просто добавить и после удалить какой-то "ненужный" файлик.

cbrom myfile.bin /other 1234:5678 nanana.ttt
cbrom myfile.bin /other 1234:5678 release
Замечание - можно посоветовать только не выбирать слишком большие "просто файлики" - 1-5кБ, иначе они могут не "влезть", и обновления CRC не произойдёт.

Всё, BIOS - готов!

Примечание - биос по-прежнему не будет открываться модбином, однако это уже не "наша вина" - будем ждать, пока не выпустят новую версию, с которой не придется для каждого редактирования опций повторять процедуру, описанную в шагах Рис.40-58. И пусть не смущает кажущаяся "длительность" и "мудрёность" процедуры, при достаточном освоении "азов" сие есть действитьльно - элементарно. (..., Ватсон! :) )

Начало

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей