RTC - Maverick-Shark/retroGuru GitHub Wiki
Links
-
PCXT rtc.v by @alfikpl Aleksander Osman
-
RTC8088 board by @spark2k06 dsclock.asm
🕒 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,25hrepresenta 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