RTC (Real-time clock) — часы реального времени. Напряжение питания 3 В, для питания используются 2×AA(LR6).
Применяется с MSX 2.
Микросхема имеет в себе четыре блока (каждый блок состоит из 13 4-битных регистров, которые имеют адреса с 0 по 12):
Кроме этого, имеются еще три 4-битных регистра для выбора блока или функций управления. Они имеют номера с 13 по 15. Из регистров с 0 по 12 и регистра режима (MODE) 13 можно читать информацию, можно также и записывать данные в эти регистры. Регистры теста (TEST) 14 и сброса (RESET) могут использоваться только для записи.
Дата и время хранятся в блоке 0, значения для будильника — в блоке 1. Секунды для будильника не устанавливаются. Когда времена часов и будильника совпадают, ничего не происходит.
В часах год представляется двумя цифрами (регистры 11 и 12). Эти две последние цифры года увеличиваются на 80. Таким образом год 0 означает календарный год 1980.
Регистр 10 блока 1 используется для выбора между 12- и 24-часовой режимами часов. Режим 12 часов устанавливается, когда бит 0 сброшен в 0, а шкала 24 часа — когда он установлен в 1.
Если установлен режим 24-часового времени, то бит 1 регистра 5 блока 0 определяет время дня — до полудня или после.
Когда оба младших бита регистра 11 блока 1 равны нулю, это означает високосный год, в котором февраль имеет 29 дней. При выполнении оператора SET DATE
эти биты определяются делением года нацело на 4.
Регистр | Биты | Значение | |||
---|---|---|---|---|---|
3 | 2 | 1 | 0 | ||
0 | Секунды (1–я цифра) | ||||
1 | — | Секунды (2–я цифра) | |||
2 | Минуты (1–я цифра) | ||||
3 | — | Минуты (2–я цифра) | |||
4 | Часы (1–я цифра) | ||||
5 | — | — | Часы (2–я цифра) | ||
6 | — | День недели:
|
|||
7 | День (1–я цифра) | ||||
8 | — | — | День (2–я цифра) | ||
9 | Месяц (1–я цифра) | ||||
A | — | — | Месяц (2–я цифра) | ||
B | Год (1–я цифра) | ||||
C | Год (2–я цифра) |
Для работы с регистрами из MSX BASIC используются операторы:
Регистр | Биты | Значение | |||
---|---|---|---|---|---|
3 | 2 | 1 | 0 | ||
0 | — | — | — | — | Не используется |
1 | — | — | — | — | |
2 | Минуты (1–я цифра) | ||||
3 | — | Минуты (2–я цифра) | |||
4 | Часы (1–я цифра) | ||||
5 | — | — | Часы (2–я цифра) | ||
6 | — | День недели:
|
|||
7 | День (1–я цифра) | ||||
8 | — | — | День (2–я цифра) | ||
9 | — | — | — | — | Не используется |
A | — | — | — | Режим 12/24 часа | |
B | — | — | Високосный год | ||
C | — | — | — | — | Не используется |
Регистр | Биты | Значение | |||
---|---|---|---|---|---|
3 | 2 | 1 | 0 | ||
0 | ID | ||||
1 | коррекция X (от -8 до +7) | ||||
2 | коррекция Y (от -8 до +7) | ||||
3 | — | — | И | Э |
|
4 | Ширина экрана (младшие биты) | ||||
5 | Ширина экрана (старшие биты) | ||||
6 | Цвет изображения | ||||
7 | Цвет фона | ||||
8 | Цвет бордюра | ||||
9 | М | П | К | Ф |
|
A | Т | Т | Г | Г | Звук клавиш:
|
B | — | — | Цвет заголовка | ||
C | Код страны:
|
Для работы с регистрами из MSX BASIC используются операторы:
Блок 3 имеет три функции, зависящие от значения ID (регистр 0), поэтому одновременная установка приветствия заголовка, пароля и подсказки невозможна
Регистр | Биты | Значение | |||
---|---|---|---|---|---|
3 | 2 | 1 | 0 | ||
0 | 0 | 0 | 0 | 0 | Вариант: заголовок |
1 | 1–й символ заголовка (младшие биты) | ||||
2 | 1–й символ заголовка (старшие биты) | ||||
3 | 2–й символ заголовка (младшие биты) | ||||
4 | 2–й символ заголовка (старшие биты) | ||||
5 | 3–й символ заголовка (младшие биты) | ||||
6 | 3–й символ заголовка (старшие биты) | ||||
7 | 4–й символ заголовка (младшие биты) | ||||
8 | 4–й символ заголовка (старшие биты) | ||||
9 | 5–й символ заголовка (младшие биты) | ||||
A | 5–й символ заголовка (старшие биты) | ||||
B | 6–й символ заголовка (младшие биты) | ||||
C | 6–й символ заголовка (старшие биты) |
Для работы с регистрами из MSX BASIC используется оператор SET TITLE
Регистр | Биты | Значение | |||
---|---|---|---|---|---|
3 | 2 | 1 | 0 | ||
0 | 0 | 0 | 1 | 0 | Вариант: пароль |
1 | Использование ID=1 | ||||
2 | Использование ID=2 | ||||
3 | Использование ID=3 | ||||
4 | Сжатые до 4 бит данные пароля × 4 | ||||
5 | |||||
6 | |||||
7 | |||||
8 | Флаг наличия ключевого картриджа | ||||
9 | Значение ключевого картриджа | ||||
A | |||||
B | |||||
C |
Для работы с регистрами из MSX BASIC используется оператор SET PASSWORD
Регистр | Биты | Значение | |||
---|---|---|---|---|---|
3 | 2 | 1 | 0 | ||
0 | 0 | 1 | 0 | 0 | Вариант: подсказка |
1 | 1–й символ подсказки (младшие биты) | ||||
2 | 1–й символ подсказки (старшие биты) | ||||
3 | 2–й символ подсказки (младшие биты) | ||||
4 | 2–й символ подсказки (старшие биты) | ||||
5 | 3–й символ подсказки (младшие биты) | ||||
6 | 3–й символ подсказки (старшие биты) | ||||
7 | 4–й символ подсказки (младшие биты) | ||||
8 | 4–й символ подсказки (старшие биты) | ||||
9 | 5–й символ подсказки (младшие биты) | ||||
A | 5–й символ подсказки (старшие биты) | ||||
B | 6–й символ подсказки (младшие биты) | ||||
C | 6–й символ подсказки (старшие биты) |
Для работы с регистрами из MSX BASIC используется оператор SET PROMPT
Функции регистра режима (MODE)
Выбор блока: Два младших бита регистра MODE (M1,M0) используются для указания блока перед чтением/записью в регистры 0..12. Регистры 13..15 доступны при любых значениях MODE.
Включение/выключение будильника: Переключение бита 2 регистра MODE (AE) включает/выключает будильник. Однако нужно иметь в виду, что MSX-2 будильник не поддерживает.
Завершение подсчета времени: Запись нуля в бит 3 выключает счет секунд, и функция часов останавливается. Запись единицы возобновляет счет.
Биты | |||
---|---|---|---|
3 | 2 | 1 | 0 |
TE | AE | M1 | M0 |
Функции регистра теста (TEST)
Регистр теста 14 используется для быстрого увеличения верхнего счетчика и для подтверждения того, что дата и время считаются правильно. Установка в единицу каждого бита этого регистра означает прямую установку пульса 2^14 (=16384 Hz) в счетчики дня (D), часа (H), минуты (M), секунды (S).
Биты | |||
---|---|---|---|
3 | 2 | 1 | 0 |
D | H | M | S |
Функции регистра сброса (RESET)
Сброс будильника: Установка в единицу бита 0 (AR) вызывает сброс в ноль всех регистров будильника.
Точная установка секунд: Установка в единицу бита 1 (CR) означает сброс дробей секунд.
Включение/выключение пульса часов: Установка в единицу бита 2 (C16) означает выход пульса 16 Hz, а запись нуля в бит 3 (C1) - 1 Hz. Система MSX-2 эти возможности не поддерживает.
Биты | |||
---|---|---|---|
3 | 2 | 1 | 0 |
C1 | C16 | CR | AR |
Следующие процедуры BIOS предназначены для доступа к регистрам. Поскольку эта процедуры находится в SUB ROM, они вызывается с использованием межслотового вызова.
REDCLK (01F5/SUB) | Считывает регистр по адресу, указанному в регистре C, и сохраняет его в регистре A |
WRTCLK (01F9/SUB) | Записывает содержимое регистра A в регистр по адресу, указанному в регистре C. Адрес указывается в формате, аналогично REDCLK |
Метод спецификации регистра:
Биты | ||||||||
---|---|---|---|---|---|---|---|---|
Адрес [C] | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Значение [A] | 0 | 0 | M1 | M0 | A3 | A2 | A1 | A0 |
номер блока | номер регистра |
MSX Datapack, программа PROMPT.MAC