diff --git a/src/machine/m_at_slot1.c b/src/machine/m_at_slot1.c index 630231046..d4a4742e5 100644 --- a/src/machine/m_at_slot1.c +++ b/src/machine/m_at_slot1.c @@ -425,7 +425,7 @@ static const device_config_t bx6_config[] = { .bios = { { .name = "Award Modular BIOS v4.51PG - Revision EG", - .internal_name = "bx6_eg", + .internal_name = "bx6", .bios_type = BIOS_NORMAL, .files_no = 1, .local = 0, @@ -434,7 +434,7 @@ static const device_config_t bx6_config[] = { }, { .name = "Award Modular BIOS v4.51PG - Revision QS", - .internal_name = "bx6", + .internal_name = "bx6_qs", .bios_type = BIOS_NORMAL, .files_no = 1, .local = 0, diff --git a/src/nvr_at.c b/src/nvr_at.c index ae7bd8bb4..38a97560b 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)) { @@ -1216,6 +1231,9 @@ nvr_at_init(const device_t *info) if (nvr->is_new && (machines[machine].init == machine_at_spitfire_init)) nvr->regs[0x33] = nvr->regs[0x34] = 0xff; + if (nvr->is_new && (machines[machine].init == machine_at_bx6_init)) + nvr->regs[0x39] = 0x09; + return nvr; }