Программирование CMOS

Статья - Компьютеры, программирование

Другие статьи по предмету Компьютеры, программирование

ВВЕДЕНИЕ

 

.,CMOS-.CMOS,.,CMOS;WindowsVxDSYS.,.,CMOS;(!).CMOS;-.,DEBUG.EXE,Windows/DOS.">В эпоху интенсивного развития высоких технологий и технологий Internet программирование для отошло на второй план. А между тем практически невозможно реализовать ничего стоящего без правильной конфигурации оборудования, в частности CMOS - энергонезависимой памяти компьютера. В данной статье мы рассмотрим устройство CMOS, его структуру и возможности программирования. Сразу оговорюсь, что программировать CMOS желательно из реального режима ОС; под ОС Windows это делается с помощью специальных драйверов VxD или SYS. В Сети существует достаточно источников документации по построению таковых, поэтому я на них останавливаться не буду. Естественно, что проводить все ниже перечисленные действия по записи значений в CMOS следует с особой осторожностью; иногда (!) можно потерять практически все значения конфигурации ПК. В таковом случае необходимо очистить CMOS; как это сделать - смотрите в документации к вашей материнской плате. Также я буду использовать язык ассемблера для иллюстрации конкретных примеров, а так же широко распространенный отладчик DEBUG.EXE, который прилагается практически с каждой версией ОС Windows/DOS.

 

ДАННЫЕ CMOS

 

CMOS является нечто вроде базы данных, которая предназначена для хранения информации о конфигурации ПК. Однако, в отличие от реальной БД, которая имеет реальный образ на магнитном носителе, CMOS хранит свои данные на микросхеме многократной записи (write many-read many). Программа установки BIOS SETUP при записи сохраняет в ней свою системную информацию, которую впоследствии сама же и считывает (при загрузке ПК). Каждая ячейка имеет размер в 1 байт.

Таблица данных имеет следующий вид

 

АдресНазначение00H-0DHRTC (Real Time Clock) - часы реального времени (таймер)0EHБайт статуса процедуры POST (результат загрузки ПК)0FHБайт завершения работы ПК10НТип дисковода11НЗарезервировано12НТип(ы) винчестера (если значение 15)1BH-20HЗарезервировано21H-2DHЗарезервировано2EH-2FHКонтрольная сумма CMOS (от 10Н - 20Н)30Н-31НРазмер расширенной памяти за пределом 1 Мб32ННомер текущего века в BCD нотации (например 17Н)33НДругая информация34Н-3АНЗарезервировано

Некоторые адреса CMOS, защищены контрольной суммой. То есть запись в диапазон адресов 10Н-20Н должен сопровождаться корректи