RTC - Maverick-Shark/retroGuru GitHub Wiki

Links


🕒 RTC MSM6242B – Programación en PC XT / DOS

Guía práctica para leer (y mostrar) la fecha y hora desde un RTC OKI MSM6242B
utilizando ensamblador 8088 y DEBUG.EXE en DOS real o emulado.


📘 Descripción general

El MSM6242B es un reloj en tiempo real (RTC) compatible con muchos sistemas PC/XT.
A diferencia del MC146818 (usado en los PC/AT), este chip no usa los puertos 70h/71h.
En su lugar, tiene registros mapeados directamente en el espacio de E/S (I/O).

Típicamente, las tarjetas RTC para XT usan una dirección base como 0x240 o 0x320.


🧭 Mapa de registros del MSM6242B

Registro Dirección (base + offset) Descripción Formato
0 base + 0 Segundos BCD
1 base + 1 Minutos BCD
2 base + 2 Horas BCD
3 base + 3 Día de la semana Binario
4 base + 4 Día del mes BCD
5 base + 5 Mes BCD
6 base + 6 Año (00–99) BCD
7 base + 7 Registro de control

💡 Nota: Los valores de tiempo y fecha están almacenados en BCD
(por ejemplo, 25h representa 25 decimal).


⚙️ Acceso típico en PC XT

Base = 240h → Registros 240h–247h

Para leer los segundos:

MOV DX,240
IN  AL,DX

Para leer los minutos:

MOV DX,241
IN  AL,DX

... y así sucesivamente hasta el registro de año (246h).

-A 100
MOV DX,240
IN  AL,DX
MOV BL,AL        ; seg
INC DX           ; incrementa en 1
IN  AL,DX
MOV BH,AL        ; min
INC DX           ; incrementa en 1
IN  AL,DX
MOV CL,AL        ; hora