diff options
Diffstat (limited to 'src/emu/cpu/m68000/68307bus.c')
-rw-r--r-- | src/emu/cpu/m68000/68307bus.c | 59 |
1 files changed, 51 insertions, 8 deletions
diff --git a/src/emu/cpu/m68000/68307bus.c b/src/emu/cpu/m68000/68307bus.c index 801c75deb6d..f551534339e 100644 --- a/src/emu/cpu/m68000/68307bus.c +++ b/src/emu/cpu/m68000/68307bus.c @@ -1,10 +1,11 @@ /* 68307 MBUS module */ +/* all ports on this are 8-bit? */ #include "emu.h" #include "m68kcpu.h" -READ16_HANDLER( m68307_internal_mbus_r ) +READ8_HANDLER( m68307_internal_mbus_r ) { m68ki_cpu_core *m68k = m68k_get_safe_token(&space->device()); m68307_mbus* mbus = m68k->m68307MBUS; @@ -15,22 +16,38 @@ READ16_HANDLER( m68307_internal_mbus_r ) int pc = cpu_get_pc(&space->device()); - switch (offset<<1) + switch (offset) { + case m68307BUS_MADR: + logerror("%08x m68307_internal_mbus_r %08x (MADR - M-Bus Address Register)\n", pc, offset); + return space->machine().rand(); + + case m68307BUS_MFDR: + logerror("%08x m68307_internal_mbus_r %08x (MFDR - M-Bus Frequency Divider Register)\n", pc, offset); + return space->machine().rand(); + + case m68307BUS_MBCR: + logerror("%08x m68307_internal_mbus_r %08x (MFDR - M-Bus Control Register)\n", pc, offset); + return space->machine().rand(); + case m68307BUS_MBSR: - logerror("%08x m68307_internal_mbus_r %08x, (%04x) (MBSR - Status Register)\n", pc, offset*2,mem_mask); + logerror("%08x m68307_internal_mbus_r %08x (MBSR - M-Bus Status Register)\n", pc, offset); + return space->machine().rand(); + + case m68307BUS_MBDR: + logerror("%08x m68307_internal_mbus_r %08x (MBDR - M-Bus Data I/O Register)\n", pc, offset); return space->machine().rand(); default: - logerror("%08x m68307_internal_mbus_r %08x, (%04x)\n", pc, offset*2,mem_mask); - return 0x0000; + logerror("%08x m68307_internal_mbus_r %08x (UNKNOWN / ILLEGAL)\n", pc, offset); + return 0x00; } } - return 0xffff; + return 0xff; } -WRITE16_HANDLER( m68307_internal_mbus_w ) +WRITE8_HANDLER( m68307_internal_mbus_w ) { m68ki_cpu_core *m68k = m68k_get_safe_token(&space->device()); m68307_mbus* mbus = m68k->m68307MBUS; @@ -39,7 +56,33 @@ WRITE16_HANDLER( m68307_internal_mbus_w ) if (mbus) { int pc = cpu_get_pc(&space->device()); - logerror("%08x m68307_internal_mbus_w %08x, %04x (%04x)\n", pc, offset*2,data,mem_mask); + + switch (offset) + { + case m68307BUS_MADR: + logerror("%08x m68307_internal_mbus_w %08x, %02x (MADR - M-Bus Address Register)\n", pc, offset,data); + break; + + case m68307BUS_MFDR: + logerror("%08x m68307_internal_mbus_w %08x, %02x (MFDR - M-Bus Frequency Divider Register)\n", pc, offset,data); + break; + + case m68307BUS_MBCR: + logerror("%08x m68307_internal_mbus_w %08x, %02x (MFDR - M-Bus Control Register)\n", pc, offset,data); + break; + + case m68307BUS_MBSR: + logerror("%08x m68307_internal_mbus_w %08x, %02x (MBSR - M-Bus Status Register)\n", pc, offset,data); + break; + + case m68307BUS_MBDR: + logerror("%08x m68307_internal_mbus_w %08x, %02x (MBDR - M-Bus Data I/O Register)\n", pc, offset,data); + break; + + default: + logerror("%08x m68307_internal_mbus_w %08x, %02x (UNKNOWN / ILLEGAL)\n", pc, offset,data); + break; + } } } |