{Начало массива из 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. КМОП—память отличается сравнительно большим временем доступа, поэтому между двумя