Приложение В Функции программирования Flash в AMIBIOS
За программирование Flash в AMIBIOS отвечает функция E0h прерывания INT 16h. При вызове прерывания INT 16h номер функции должен находиться в регистре AH, номер подфункции – в регистре AL. При возврате из функции регистр AL содержит FAh как подтверждение, что данная функция прерывания поддерживается. Флаг CF равен нулю при успешном выполнении и равен единице при ошибке.
Для уверенности в успешном выполнении функций необходимо всегда проверять AL=FAh на выходе.
Flash AMIBIOS, подфункция 00h
Получить номер версии интерфейса Flash BIOS
Вход:
AH=E0h
AL=00h
Выход:
AL=FAh
CF=1 – интерфейс Flash-BIOS отсутствует
CF=0 – интерфейс Flash-BIOS присутствует
BX – номер версии в формате BCDОписание. Возвращает номер версии интерфейса Flash-BIOS в BCD-формате. Например, версия 2.00 возвратит в BX число 0200h.
Примечание. Эту функцию можно использовать для детектирования наличия интерфейса Flash-BIOS. При возврате регистр AL должен обязательно быть равен FAh.
Изменяемые регистры: AX, BX
Вход:
AH=E0h
AL=01hВыход:
AL=FAh
CF=0, если функция выполнена успешно
BX – размер области памяти (в байтах), необходимый для сохранения текущего состояния чипа
CF=1, если при выполнении функции возникли ошибкиОписание. Возвращает размер области памяти (в байтах), необходимый для сохранения текущего состояния чипа.
Изменяемые регистры: AX, BX
Вход:
AH=E0h
AL=02h
ES:DI – указатель на буфер для сохранения текущего состояния чипаВыход:
AL=FAh
CF=0, если функция выполнена успешно
CF=1, если при выполнении функции возникли ошибкиОписание. Данная подфункция сохраняет текущее состояние чипа в обозначенной области данных и подготавливает чип к разрешению доступа в EPROM.
Примечание. Необходимо сохранить текущее состояние кэш, управления электропитанием (Power Management), затенения (Shadow) и прочее. При нефатальной ошибке будет возможно вернуть эти значения. Подготовка чипа к работе с Flash EPROM включает в себя отключение затенения RAM, внешнего и внутреннего кэш, управления электропитанием и так далее. Необходимо сохранить эти значения перед началом операции. Отключение кэш позволит с полной уверенностью обращаться напрямую в адресное пространство ROM, не беспокоясь о том, что кэш может этому помешать. Если нужное адресное пространство ROM кэшируется только при включенном затенении «Shadow Enabled» (то есть кэшируется только затененная RAM, а не ROM), отмена кэширования происходит при отмене затенения RAM, и в данном случае отмены кэширования не требуется. Если ROM кэшируется, то кэш необходимо отключить.
Изменяемые регистры: AX
Вход:
AH=E0h
AL=03h
ES:DI – указатель на буфер, где хранится состояние чипа, которое необходимо восстановитьВыход:
AL=FAh
CF=0, если функция выполнена успешно
CF=1, если при выполнении функции возникли ошибкиОписание. Данная подфункция восстанавливает состояние чипа из области памяти, в которую он был сохранен подфункцией 02h.
Изменяемые регистры: AX
Вход:
AH=E0h
AL=04hВыход:
AL=FAh
CF=0, если функция выполнена успешно
CF=1, если при выполнении функции возникли ошибкиОписание. Понижает напряжение программирования (Vpp) до нормального уровня. Необходима задержка для стабилизации напряжений.
Примечание. На некоторых компьютерах эта подфункция совпадает с подфункцией 06h «Защитить Flash от записи».
Изменяемые регистры: AX
Вход:
AH=E0h
AL=05hВыход:
AL=FAh
CF=0, если функция выполнена успешно
CF=1, если при выполнении функции возникли ошибкиОписание. Повышает Vpp до уровня, необходимого для программирования (12В для 12-вольтовых Flash EPROM). Необходима задержка для стабилизации напряжений.
Примечание. На некоторых компьютерах эта подфункция совпадает с подфункцией 07h «Разрешить запись во Flash».