From a99577d2eba3a0cb0396071fcc6b4a1132e4ef13 Mon Sep 17 00:00:00 2001 From: OBattler Date: Fri, 19 Dec 2025 22:30:28 +0100 Subject: [PATCH] ABit AB-BX6: Force bit 4 of CMOS register 39h to 1, fixes intermittent POST freezes on POST code AAh on later BIOS revisions. --- src/nvr_at.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/nvr_at.c b/src/nvr_at.c index ae7bd8bb4..2e04ddc6f 100644 --- a/src/nvr_at.c +++ b/src/nvr_at.c @@ -635,6 +635,13 @@ nvr_reg_write(uint16_t reg, uint8_t val, void *priv) nvr_reg_common_write(reg, val, nvr, local); break; + case 0x39: + if (machines[machine].init == machine_at_bx6_init) + nvr_reg_common_write(reg, val | 0x08, nvr, local); + else + nvr_reg_common_write(reg, val, nvr, local); + break; + default: /* non-RTC registers are just NVRAM */ nvr_reg_common_write(reg, val, nvr, local); break; @@ -794,6 +801,14 @@ nvr_read(uint16_t addr, void *priv) ret = nvr->regs[local->addr[addr_id]]; break; + case 0x39: + if (!(local->lock[local->addr[addr_id]] & 0x02)) { + ret = nvr->regs[local->addr[addr_id]]; + if (machines[machine].init == machine_at_bx6_init) + ret |= 0x08; + } + break; + case 0x3e: case 0x3f: if (!nvr->is_new && (local->flags & FLAG_AMI_1995_HACK)) {