Инструменты пользователя

Инструменты сайта


msx:rtc

MSX — RTC

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.

Блок 0 (часы)

Регистр Биты Значение
3 2 1 0
0 Секунды (1–я цифра)
1 Секунды (2–я цифра)
2 Минуты (1–я цифра)
3 Минуты (2–я цифра)
4 Часы (1–я цифра)
5 Часы (2–я цифра)
6 День недели:
  • 0 воскресенье
  • 1 понедельник
  • 2 вторник
  • 3 среда
  • 4 четверг
  • 5 пятница
  • 6 суббота
7 День (1–я цифра)
8 День (2–я цифра)
9 Месяц (1–я цифра)
A Месяц (2–я цифра)
B Год (1–я цифра)
C Год (2–я цифра)

Для работы с регистрами из MSX BASIC используются операторы:

Блок 1 (будильник)

Регистр Биты Значение
3 2 1 0
0 Не используется
1
2 Минуты (1–я цифра)
3 Минуты (2–я цифра)
4 Часы (1–я цифра)
5 Часы (2–я цифра)
6 День недели:
  • 0 воскресенье
  • 1 понедельник
  • 2 вторник
  • 3 среда
  • 4 четверг
  • 5 пятница
  • 6 суббота
7 День (1–я цифра)
8 День (2–я цифра)
9 Не используется
A Режим 12/24 часа
B Високосный год
C Не используется

Блок 2

Регистр Биты Значение
3 2 1 0
0 ID
1 коррекция X (от -8 до +7)
2 коррекция Y (от -8 до +7)
3 И Э
  • И тип интерф.
  • Э тип экрана
4 Ширина экрана (младшие биты)
5 Ширина экрана (старшие биты)
6 Цвет изображения
7 Цвет фона
8 Цвет бордюра
9 М П К Ф
  • М скорость магнитофона
  • П тип принтера
  • К звук клавиш
  • Ф вкл./выкл. отображения текста функциональных клавиш
A Т Т Г Г Звук клавиш:
  • Т тип
  • Г громкость
B Цвет заголовка
C Код страны:
  • 00 Японский
  • 01 Русский (на Sanyo и Sony)
  • 02 Английский (международный)
  • 03 Английский (Великобритания)
  • 04 Французский
  • 05 Немецкий
  • 07 Испанский
  • 09 Корейский
  • 0А Русский (только на Yamaha)

Для работы с регистрами из MSX BASIC используются операторы:

Блок 3 (настройка)

Блок 3 имеет три функции, зависящие от значения ID (регистр 0), поэтому одновременная установка приветствия заголовка, пароля и подсказки невозможна

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

ID=1 (пароль)

Регистр Биты Значение
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

ID=2 (подсказка в MSX-BASIC)

Регистр Биты Значение
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

Регистр 13 (MODE)

Функции регистра режима (MODE)

Выбор блока: Два младших бита регистра MODE (M1,M0) используются для указания блока перед чтением/записью в регистры 0..12. Регистры 13..15 доступны при любых значениях MODE.

Включение/выключение будильника: Переключение бита 2 регистра MODE (AE) включает/выключает будильник. Однако нужно иметь в виду, что MSX-2 будильник не поддерживает.

Завершение подсчета времени: Запись нуля в бит 3 выключает счет секунд, и функция часов останавливается. Запись единицы возобновляет счет.

Биты
3 2 1 0
TE AE M1 M0

Регистр 14 (TEST)

Функции регистра теста (TEST)

Регистр теста 14 используется для быстрого увеличения верхнего счетчика и для подтверждения того, что дата и время считаются правильно. Установка в единицу каждого бита этого регистра означает прямую установку пульса 2^14 (=16384 Hz) в счетчики дня (D), часа (H), минуты (M), секунды (S).

Биты
3 2 1 0
D H M S

Регистр 15 (RESET)

Функции регистра сброса (RESET)

Сброс будильника: Установка в единицу бита 0 (AR) вызывает сброс в ноль всех регистров будильника.

Точная установка секунд: Установка в единицу бита 1 (CR) означает сброс дробей секунд.

Включение/выключение пульса часов: Установка в единицу бита 2 (C16) означает выход пульса 16 Hz, а запись нуля в бит 3 (C1) - 1 Hz. Система MSX-2 эти возможности не поддерживает.

Биты
3 2 1 0
C1 C16 CR AR

Процедуры BIOS

FIXME

Следующие процедуры 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

Ссылки

msx/rtc.txt · Последние изменения: 2022-09-09 22:27 — GreyWolf