AMIBIOS8® обеспечивает два механизма изменения содержимого Flash ROM Flash Update и BIOS Recovery. Если в процессе старта загрузочного блока обнаружено несовпадение контрольных сумм BIOS, это приводит к запуску процедуры восстановления (BIOS Recovery) содержимого Flash ROM. Процедура Flash Update используется для обновления BIOS и используется в сеансе операционной системы с привлечением специализированных утилит.
AMIBIOS8® позволяет выбрать устройство, на котором расположен носитель с образом BIOS для процедуры Recovery. По умолчанию в таком качестве используется накопитель на гибких магнитных дисках (FDD), что позволяет инициировать процесс перезаписи Flash ROM в процессе выполнения POST. Для этого в корневую директорию гибкого магнитного диска нужно записать файл BIOS с зарезервированным именем AMIBOOT.ROM и удерживать комбинацию клавиш + с момента старта системной платы до момента обращения BIOS к накопителю FDD. Процесс визуализируется на мониторе в виде прогресс-индикатора, а успешное завершение сопровождается серией из девяти звуковых сигналов.
Зарезервированное имя AMIBOOT.ROM может быть изменено разработчиком платформы по своему усмотрению. Обычно, но совсем не обязательно, оно хранится по смещению 0FFB6h от начала последнего сегмента образа BIOS и на платформах ASUS, например, содержит имя системной платы.
Использование зарезервированной комбинации клавиш позволяет не только восстановить или обновить системный BIOS, но и выполнить установку параметров CMOS по умолчанию (Clear CMOS). Если в процессе перезаписи необходимо также очистить NVRAM, следует пользоваться комбинацией , комбинация клавиш + позволит выполнить обновление BIOS без изменения содержимого CMOS.
Дополню - вышеописанное верно и для древних амишников, вот, например что имеется в бутблоке "эпохальной" Zida TX98:
[code:1]F000:E7D8 Get_Pressed_Key: ; DATA XREF: F000:off_0_E7D6o
F000:E7D8 in al, 60h ; AT Keyboard controller 8042.
F000:E7DA
F000:E7DA check_CTRL: ; CTRL pressed
F000:E7DA cmp al, 1Dh
F000:E7DC jnz short check_F ; "F" key pressed
F000:E7DE or ah, 16h
F000:E7E1
F000:E7E1 check_F: ; CODE XREF: F000:E7DCj
F000:E7E1 cmp al, 21h ; '!' ; "F" key pressed
F000:E7E3 jnz short check_J ; "J" key
F000:E7E5 or ah, 1
F000:E7E8
F000:E7E8 check_J: ; CODE XREF: F000:E7E3j
F000:E7E8 cmp al, 24h ; '$' ; "J" key
F000:E7EA jnz short check_Home
F000:E7EC or ah, 40h
F000:E7EF
F000:E7EF check_Home: ; CODE XREF: F000:E7EAj
F000:E7EF cmp al, cs:Home
F000:E7F4 jnz short check_PageDown
F000:E7F6 or ah, 8
F000:E7F9
F000:E7F9 check_PageDown: ; CODE XREF: F000:E7F4j
F000:E7F9 cmp al, cs:Page_Down
F000:E7FE jnz short loc_0_E803
F000:E800 or ah, 20h
F000:E803
F000:E803 loc_0_E803: ; CODE XREF: F000:E7FEj
F000:E803 mov bl, ah
F000:E805 mov al, 0F7h ; '
Это несложно проверить. Ищем POST код 0D6h:
По переменной _test определяемся со скан-кодами:
Открытая книга: icbook.com.ua
Отправить комментарий