From 7960cb4cfe17f7dbf01a4fc8b100c7860d68864b Mon Sep 17 00:00:00 2001 From: OBattler Date: Sun, 9 Nov 2025 06:22:21 +0100 Subject: [PATCH] CS8220: Actually update the memory state at initialization, makes the entirety of RAM accessible. --- src/chipset/cs8220.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/chipset/cs8220.c b/src/chipset/cs8220.c index d66ac5246..3050b069a 100644 --- a/src/chipset/cs8220.c +++ b/src/chipset/cs8220.c @@ -252,23 +252,31 @@ cs8220_init(UNUSED(const device_t *info)) break; } - if (dev->ram_banks[0].size > 0x00000000) + mem_set_mem_state(0x00000000, (mem_size << 10) + 0x00060000, MEM_READ_EXTANY | MEM_WRITE_EXTANY); + + if (dev->ram_banks[0].size > 0x00000000) { mem_mapping_add(&dev->ram_banks[0].mapping, dev->ram_banks[0].virt, dev->ram_banks[0].size, cs8220_mem_read, cs8220_mem_readw, NULL, cs8220_mem_write, cs8220_mem_writew, NULL, ram + dev->ram_banks[0].phys, MEM_MAPPING_INTERNAL, &(dev->ram_banks[0])); + mem_set_mem_state(dev->ram_banks[0].virt, dev->ram_banks[0].size, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL); + } - if (dev->ram_banks[1].size > 0x00000000) + if (dev->ram_banks[1].size > 0x00000000) { mem_mapping_add(&dev->ram_banks[1].mapping, dev->ram_banks[1].virt, dev->ram_banks[1].size, cs8220_mem_read, cs8220_mem_readw, NULL, cs8220_mem_write, cs8220_mem_writew, NULL, ram + dev->ram_banks[1].phys, MEM_MAPPING_INTERNAL, &(dev->ram_banks[1])); + mem_set_mem_state(dev->ram_banks[1].virt, dev->ram_banks[2].size, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL); + } - if (dev->ram_banks[2].size > 0x00000000) + if (dev->ram_banks[2].size > 0x00000000) { mem_mapping_add(&dev->ram_banks[2].mapping, dev->ram_banks[2].virt, dev->ram_banks[2].size, cs8220_mem_read, cs8220_mem_readw, NULL, cs8220_mem_write, cs8220_mem_writew, NULL, ram + dev->ram_banks[2].phys, MEM_MAPPING_INTERNAL, &(dev->ram_banks[2])); + mem_set_mem_state(dev->ram_banks[2].virt, dev->ram_banks[2].size, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL); + } io_sethandler(0x00a4, 0x0002, cs8220_in, NULL, NULL, cs8220_out, NULL, NULL, dev);