From 74b647597be246d4e94e23ac7dc428ed1caf3ccb Mon Sep 17 00:00:00 2001 From: Ricardo Barreira Date: Sun, 22 Sep 2019 13:36:16 +0100 Subject: cfx9850 fixes (graph mode zoom menu and memory size) (#5674) * hcd62121: Added xor instruction with indirect addressing (needed for zoom menu in graph mode to work). * cfx9850.cpp: Reduce RAM size to 32 KB (0000-7FFF) and add overlapping region 8000-FFFF. The code that detects memory size assumes that FFFF aliases 7FFF. --- src/devices/cpu/hcd62121/hcd62121.cpp | 17 +++++++++++++++++ src/mame/drivers/cfx9850.cpp | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/devices/cpu/hcd62121/hcd62121.cpp b/src/devices/cpu/hcd62121/hcd62121.cpp index 53e9a1ed5da..4a99178dde5 100644 --- a/src/devices/cpu/hcd62121/hcd62121.cpp +++ b/src/devices/cpu/hcd62121/hcd62121.cpp @@ -1175,6 +1175,23 @@ void hcd62121_cpu_device::execute_run() } break; + case 0x50: /* xorb ir1,r2 */ + case 0x51: /* xorw ir1,r2 */ + case 0x52: /* xorq ir1,r2 */ + case 0x53: /* xort ir1,r2 */ + { + int size = datasize(op); + u8 reg1 = read_op(); + u8 reg2 = read_op(); + + read_iregreg(size, reg1, reg2, true); + + op_xor(size); + + write_iregreg(size, reg1, reg2); + } + break; + case 0x54: /* cmpb ir1,r2 */ case 0x55: /* cmpw ir1,r2 */ case 0x56: /* cmpq ir1,r2 */ diff --git a/src/mame/drivers/cfx9850.cpp b/src/mame/drivers/cfx9850.cpp index fa965bbdae8..f26d3485f92 100644 --- a/src/mame/drivers/cfx9850.cpp +++ b/src/mame/drivers/cfx9850.cpp @@ -75,7 +75,7 @@ void cfx9850_state::cfx9850_mem(address_map &map) // AM_RANGE( 0x100000, 0x10ffff ) // some memory mapped i/o??? // AM_RANGE( 0x110000, 0x11ffff ) // some memory mapped i/o??? map(0x200000, 0x27ffff).rom().region("bios", 0); - map(0x400000, 0x40ffff).ram(); + map(0x400000, 0x407fff).mirror(0x008000).ram(); map(0x600000, 0x6007ff).mirror(0xf800).ram().share("display_ram"); // AM_RANGE( 0xe10000, 0xe1ffff ) // some memory mapped i/o??? } -- cgit v1.2.3-70-g09d2