{Начало массива из 17 байт, защищаемого контрольной суммой}

Diskette: Byte;{Тип накопителя ГД}

Re si Byte; {He используется}

HD Byte; {Тип накопителя ЖД}

Res2 Byte; {He используется}

Equipm Byte; {Байт оборудования}

BaseMem Word; {Объем основной памяти}

ExpnMem Word; {Объем расширенной памяти}

HD1 Byte; {Тип ЖД N1}

HD2 Byte; {Тип ЖД N2}

Res3 array [$1B..$20] of Byte; {He используется} {Конец защищаемого массива}

Res4 rray [$21..$2D] of Byte; {He используется}

Checks Word; {Контрольная сумма}

ExtendM Word; {Дополнительная память}

Century Byte; /Текущее столетие}

Miscell Byte; {Разная информация}

Res5 array [$34..$3F] of Byte) ;

2:(CMOS array [$0..$3F] of Byte) end;

Первые 10 байт этой структуры предназначены мя обслуживания системных часов. Информация в этих байтах хранится в так называемом двоично—десятичном формате (старший полубайт хранит десятки, а младший — единицы). Поскольку КМ ОП—память обычно питается от подзаряжаемого аккумулятора, системные часы работают даже после отключения ПК от сети и способны сохранять правильную дату практически неограниченно долго, если Вы регулярно включаете ПК/

Заметим, что поля ASec, AMin и AHour определяют момент времени инициации аппаратного прерывания IRQ8, с помощью которого можно автоматически запустить какую-либо программу реального времени (т.е. программу, которая должна исполняться в строго определенный момент реального времени).

Семнадцать байт, начиная с поля Diskette, защищены контрольной суммой, хранящейся «задом наперед» в поле Checks: младший байт содержит старшие разряды суммы, в то время как в соответствии со стандартом IBM в младшем байте должны храниться младшие биты слова. Проверка контрольной суммы осуществляется в ходе выполнения программы POST (программы контроля работоспособности ПК) при каждом включении компьютера и служит для оценки степени разряженности батарейки автономного питания КМОП — памяти.

Поле BaseMem хранит суммарный объем (в килобайтах) оперативной памяти ПК, а поля ExtdMem и ExtendM — объем дополнительной памяти.

Доступ к содержимому КМОП—памяти возможен только как к внешнему устройству, подключенному к портам $70 и $71: сначала в порт $70 следует поместить номер нужного байта (нумерация начинается с нуля), а затем прочитать значение этого байта из порта $71. КМОП—память отличается сравнительно большим временем доступа, поэтому между двумя