Для запису або читання даних з пам’яті пристрою MC 146818, як будь-якого
пристрою вводу/виводу, використовуються команди мікропроцесора OUT та IN. Порт 70h ділиться між регістром маски переривання NMI та регістром адреси пам’яті конфігурації. Для того, щоб регістр маски NMI був недоступний, потрібно, щоб біт 7 регістра адреси годинника реального часу (RTC) був скине-
ний.
Для запису даних про конфігурацію системи використовуються такі команди:
· OUT 70h, AL – визначає комірку пам’яті, в яку будуть записуватися дані;
70h – номер порту; AL – регістр повинен містити адресу комірки КМОН-пам’яті;
· OUT 71h, AL – передає дані для вибраної комірки пам’яті; 71h – номер порту; AL – містить дані.
Для читання вмісту комірки пам’яті використовуються такі команди:
· OUT 70h, AL – визначає комірку пам’яті, з якої будуть зчитуватися дані;
· IN AL, 71h – для читання даних, що зберігаються в комірці пам’яті, яка визначена попередньою командою; дані записуються в регістр AL процесора.
У таблиці 1 наведена інформація, що зберігається в комірках годинника реального часу MC 146818.
|
|
Таблиця 1 – Призначення регістрів КМОН-пам’яті
Регістр | Функція |
00h | Секунди поточного часу |
01h | Секунди будильника |
02h | Хвилини поточного часу |
03h | Хвилини будильника |
04h | Години поточного часу |
05h | Години будильника |
06h | День тиждня |
07h | Число |
08h | Місяць |
09h | Рік |
0Ah | Регістр стану A |
0Bh | Регістр стану B |
0Ch | Регістр стану C |
0Dh | Регістр стану D |
0Eh | Діагностичний байт |
0Fh | Байт коду скидання |
10h | Тип драйвера НГМД |
11h | Зарезервовано |
12h | Тип драйвера НТМД |
13h | Зарезервовано |
14h | Інстальовані пристрої |
15h, 16h | Розмір основної пам’яті |
17h, 18h | Інстальована розширена пам’ять |
19h | Тип драйвера C, якщо є додатковий драйвер |
1Ah | Тип драйвера D, якщо є додатковий драйвер |
1Bh – 2Ch | Зарезервовано |
2Dh | Додаткові прапорці |
2Eh, 2Fh | Значення контрольної суми |
30h, 31h | Пам’ять більша 1 Мб |
32h | Століття, частина дати та часу |
33h | Системна інформація |
34h – 3Eh | Зарезервовано |
3Fh | Не використовується |
Таблиця 2 – Структура регістра стану 0Ah (читання і запис крім D7)
Біт | Значення |
D3 – D0 | Коефіцієнт ділення частоти генератора годинника. Значення за замовчуванням 0110 (1,024 кГц) |
D6 – D4 | Основна частота генератора годинника. |
Значення за замовчуванням 010 (32,768 кГц) | |
D7 | 0 / 1 – читання пристрою дозволено / оновлення поточного часу |
Таблиця 3 – Структура регістра стану (читання і запис)
Біт | Значення |
D0 | 0 – без запам’ятовування годин дня 1 – із запам’ятовуванням годин дня |
D1 | 12-годинний режим 24-годинний режим |
D2 | 0 – час і дата у форматі BCD 1 – час і дата у двійковому форматі |
D3 | 0 – вихід генератора прямокутних імпульсів дозволений 1 – вибір вихідної частоти регістром A заборонено |
D4 | 0 – переривання після оновлення заборонено 1 – переривання після оновлення дозволено |
D5 | 0 – переривання від будильника заборонено 1 – переривання від будильника дозволено |
D6 | 0 – переривання з частотою, визначеною регістром A, заборонено 1 – переривання дозволено |
D7 | 0 – стандартні операції 1 – встановлення часу оновлення даних дозволено |
|
|
Таблиця 4 – Структура регістра стану 0Ch (тільки читання)
Біт | Значення |
D3 – D0 | 0000 – не використовується |
D4 | 1 – прапорець переривання після закінчення оновлення даних |
D5 | 1 – прапорець переривання від будильника |
D6 | 1 – прапорець періодичного переривання |
D7 | 1 – вихідний сигнал переривання активний |
Таблиця 5 – Структура регістра стану 0Dh (тільки читання)
Біт | Значення |
D6 – D0 | 0000000 – не використовуються |
D7 | 0 – годинник реального часу має автономне живлення 1 – годинник реального часу не має живлення |
Таблиця 6 – Структура регістра стану 0Eh
Біт | Значення |
D1, D0 | 00 – не використовуються |
D2 | 1 – час недійсний |
D3 | 1 – помилка НТМД |
D4 | 1 – розмір пам’яті визначений під час ініціалізації систем не відповідає розміру, зазначеному в конфігурації пам’яті |
D5 | 1 – при перевірці конфігурації системи під час ініціалізації виявлено відсутність пристроїв, заданих в конфігурації пам’яті |
D6 | 1 – невірна контрольна сума – помилка в ROM |
D7 | 1 – годинник реального часу не має живлення |
Таблиця 7 – Структура байта коду скидання 0Fh
Значення | Сенс |
00h | Нормальне скидання по живленню |
04h | Завантаження DOS з диска |
05h | Після ініціалізації обох контролерів переривання перехід до вектора скидання 0040:0067 |
09h | Повернути Block Move |
0Ah | Перехід до вектора скидання 0040:0067 – без ініціалізації кон- тролерів переривання |
Таблиця 8 – Структура байта типу драйвера НГМД 10h
Біт | Значення |
D3 – D0 | Тип драйвера другого НГМД: 0000 – драйвера НГМД немає 0001 – 360 кб 0010 – 1,2 Мб 0011 – резерв 0100 – 1,44 Мб 0101 – 1111 – резерв |
D7 – D4 | Тип драйвера першого НГМД: 0000 – драйвера НГМД немає 0001 – 360 кб 0010 – 1,2 Мб 0011 – 1111 – резерв |
Таблиця 9 – Структура байта типу драйвера НТМД 12h
Біт | Значення |
D3 – D0 | Тип драйвера другого НТМД: 0000 – драйвера НТМД немає 0001…1110 – 1…14 1111 – інші (байт 1Ah) |
D7 – D4 | Тип драйвера першого НТМД: 0000 – драйвера НТМД немає 0001…1110 – 1…14 1111 – інші (байт 19h) |
Таблиця 10 – Структура байтів об’єму основної пам’яті 15h, 16h
Значення | Об’єм пам’яті | |
16h | 15h | |
00h | 80h | 128 кб |
01h | 00h | 256 кб |
02h | 00h | 512 кб |
02h | 80h | 640 кб |
04h | 00h | 1 Мб |
Таблиця 11 – Структура байта інстальованих пристроїв 14h
Біт | Значення |
D0 | 0 – драйвер НГМД не інстальований 1 – драйвер НГМД інстальований |
D1 | 0 – співпроцесор не інстальований 1 – співпроцесор інстальований |
D3, D2 | 00 – не використовуються |
D5, D4 | Тип контролера дисплея та режим роботи: 00 – зарезервовано 01 – кольоровий/графічний, 40 рядків 10 – кольоровий/графічний, 80 рядків 11 – монохром/неграфічний |
D7, D6 | Число інстальованих драйверів НГМД: 00 – один драйвер 01 – два драйвери 10, 11 – зарезервовано |
Таблиця 12 – Структура байтів об’єму пам’яті розширення 17h, 18h
Значення | Об’єм пам’яті | |
17h | 18h | |
02h | 00h | 512 кб |
02h | 80h | 640 кб |
04h | 00h | 1 Мб |
… | … | … |
3Ch | 00h | 15 Мб |
Таблиця 13 – Структура байтів пам’яті вище 1 Мб 30h, 31h
Значення | Об’єм пам’яті | |
30h | 31h | |
02h | 00h | 512 кб |
02h | 80h | 640 кб |
04h | 00h | 1 Мб |
… | … | … |
3Ch | 00h | 15 Мб |
|
|
Таблиця 14 – Структура байта системної інформації 33h
Біт | Значення |
D5 – D0 | 000000 – не використовуються |
D6 | Використовуються програмою SETUP |
D7 | 1 – інстальовано більше 1 Мб пам’яті |