Программирование CMOS на Assembler - Данные CMOS
ОГЛАВЛЕНИЕ
Данные CMOS
CMOS является нечто вроде базы данных, которая предназначена для хранения информации о конфигурации ПК. Однако, в отличие от реальной БД, которая имеет реальный образ на магнитном носителе, CMOS хранит свои данные на микросхеме многократной записи (write many-read many). Программа установки BIOS SETUP при записи сохраняет в ней свою системную информацию, которую впоследствии сама же и считывает (при загрузке ПК). Каждая ячейка имеет размер в 1 байт.
Таблица данных имеет следующий вид:
Адрес | Назначение |
00H-0DH | RTC (Real Time Clock) - часы реального времени (таймер) |
0EH | Байт статуса процедуры POST (результат загрузки ПК) |
0FH | Байт завершения работы ПК |
10Н | Тип дисковода |
11Н | Зарезервировано |
12Н | Тип(ы) винчестера (если значение < 15) |
13Н | Зарезервировано |
14Н | Байт конфигурации оборудования |
15Н-16Н | Размр базовой памяти |
17Н-18Н | Размер памяти за пределом 1 Мб |
19Н | Тип винчестера С: (если значение > 15) |
1АН | Тип винчестера D: (если значение > 15) |
1BH-20H | Зарезервировано |
21H-2DH | Зарезервировано |
2EH-2FH | Контрольная сумма CMOS (от 10Н - 20Н) |
30Н-31Н | Размер расширенной памяти за пределом 1 Мб |
32Н | Номер текущего века в BCD нотации (например 17Н) |
33Н | Другая информация |
34Н-3АН | Зарезервировано |
Ячейки таблицы, показанные красным цветом, представляют собой адреса CMOS, защищенные контрольной суммой. То есть запись в диапазон адресов 10Н-20Н должен сопровождаться корректировкой значений в ячейках 2ЕН-2FH. Иначе можно получить сообщение о неправильной установке параметров или о «усохшей» батарее CMOS. Контрольная сумма представляет собой 16-битную сумму всех значений, записанных в ячейки CMOS с 10Н по 20Н. В ячейку 2ЕН пишется старший байт суммы, а в 2FH - младший. В любом случае, мой вам совет - сначала сохраните старое значение CMOS (да и вообще все значения CMOS)а потом просто вычитайте или складывайте нужные значения с полученной контрольной суммой. Так проще.