From df16f3b64b24e8fd6d8c2a409d69371121dc9233 Mon Sep 17 00:00:00 2001 From: Robert Pengelly Date: Sun, 18 Oct 2026 09:18:27 +0100 Subject: [PATCH] Implement DOS INT 21h AH=2Ah get system date --- interrupts.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/interrupts.c b/interrupts.c index f5009ac..d990a5d 100644 --- a/interrupts.c +++ b/interrupts.c @@ -3800,6 +3800,24 @@ static void int_21 (CPU8086 *cpu) { } + case 0x2A: { /* Get System Date */ + + time_t now = time (NULL); + const struct tm *local = localtime (&now); + + if (local != NULL) { + + set_reg8 (cpu, REG_AX, (uint8_t) local->tm_wday); + + cpu->regs[REG_CX] = (uint16_t) (local->tm_year + 1900); + cpu->regs[REG_DX] = (uint16_t) (((uint16_t) (local->tm_mon + 1) << 8) | (uint16_t) local->tm_mday); + + } + + break; + + } + case 0x2F: { /* Get DTA address */ uint16_t dta_seg; -- 2.34.1