mirror of
https://github.com/holub/mame
synced 2025-04-20 15:32:45 +03:00
galpanic2: Fix command completion
This commit is contained in:
parent
ed872d1bd2
commit
14a4d13338
@ -192,15 +192,15 @@ void galpani2_state::galpani2_mcu_nmi1()
|
||||
uint8_t len = mspace.read_byte(0x100020);
|
||||
for(uint8_t slot = 0; slot < len; slot += 4) {
|
||||
uint8_t command = mspace.read_byte(0x100021 + slot);
|
||||
uint16_t address = 0x100000 | mspace.read_word(0x100022 + slot);
|
||||
uint32_t address = 0x100000 | mspace.read_word(0x100022 + slot);
|
||||
|
||||
switch (command)
|
||||
{
|
||||
case 0x02: { //Copy N bytes from RAM2 to RAM1?, gp2se is the only one to use it, often!
|
||||
uint16_t src = mspace.read_word(address + 0x100002);
|
||||
uint16_t dst = mspace.read_word(address + 0x100006);
|
||||
uint16_t size = mspace.read_word(address + 0x100008);
|
||||
logerror("MCU master %02x:%04x copy s:%04x, m:%04x, size:%04x\n", slot, address, src, dst, size);
|
||||
uint16_t src = mspace.read_word(address + 2);
|
||||
uint16_t dst = mspace.read_word(address + 6);
|
||||
uint16_t size = mspace.read_word(address + 8);
|
||||
logerror("MCU master %02x:%06x copy s:%04x, m:%04x, size:%04x\n", slot, address, src, dst, size);
|
||||
|
||||
for(uint16_t i = 0; i != size; i++)
|
||||
{
|
||||
@ -212,10 +212,10 @@ void galpani2_state::galpani2_mcu_nmi1()
|
||||
}
|
||||
|
||||
case 0x0a: { // Copy N bytes from RAM1 to RAM2
|
||||
uint16_t src = mspace.read_word(address + 0x100002);
|
||||
uint16_t dst = mspace.read_word(address + 0x100006);
|
||||
uint16_t size = mspace.read_word(address + 0x100008);
|
||||
logerror("MCU master %02x:%04x copy m:%04x, s:%04x, size:%04x\n", slot, address, src, dst, size);
|
||||
uint16_t src = mspace.read_word(address + 2);
|
||||
uint16_t dst = mspace.read_word(address + 6);
|
||||
uint16_t size = mspace.read_word(address + 8);
|
||||
logerror("MCU master %02x:%06x copy m:%04x, s:%04x, size:%04x\n", slot, address, src, dst, size);
|
||||
|
||||
for(uint16_t i = 0; i != size; i++)
|
||||
{
|
||||
@ -242,7 +242,7 @@ void galpani2_state::galpani2_mcu_nmi1()
|
||||
|
||||
/* Raise a "job done" flag */
|
||||
if (command)
|
||||
mspace.write_word(address + 0x100000, 0xffff);
|
||||
mspace.write_word(address, 0xffff);
|
||||
}
|
||||
if (len)
|
||||
mspace.write_byte(0x100020, 0x00);
|
||||
@ -255,19 +255,25 @@ void galpani2_state::galpani2_mcu_nmi2()
|
||||
uint8_t len = sspace.read_byte(0x101012);
|
||||
for(uint8_t slot = 0; slot < len; slot += 4) {
|
||||
uint8_t command = sspace.read_byte(0x101013 + slot);
|
||||
uint16_t address = 0x100000 | sspace.read_word(0x101014 + slot);
|
||||
uint32_t address = 0x100000 | sspace.read_word(0x101014 + slot);
|
||||
|
||||
switch (command)
|
||||
{
|
||||
case 0x0c: {
|
||||
uint16_t a = sspace.read_word(address);
|
||||
logerror("MCU slave %02x:%06x: command 0c: %04x\n", slot, address, a);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
machine().debug_break();
|
||||
logerror("MCU slave %02x:%04x: unknown command %02x\n", slot, address, command);
|
||||
logerror("MCU slave %02x:%06x: unknown command %02x\n", slot, address, command);
|
||||
break;
|
||||
}
|
||||
|
||||
/* Raise a "job done" flag */
|
||||
if (command)
|
||||
sspace.write_word(address + 0x100000, 0xffff);
|
||||
sspace.write_word(address, 0xffff);
|
||||
}
|
||||
if (len)
|
||||
sspace.write_byte(0x101012, 0x00);
|
||||
|
Loading…
Reference in New Issue
Block a user