mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
use generic code for lkage.cpp
This commit is contained in:
parent
e8d7b39a94
commit
9893cff3ac
@ -3608,7 +3608,6 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/lgp.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/lkage.cpp",
|
||||
MAME_DIR .. "src/mame/includes/lkage.h",
|
||||
MAME_DIR .. "src/mame/machine/lkage.cpp",
|
||||
MAME_DIR .. "src/mame/video/lkage.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/lsasquad.cpp",
|
||||
MAME_DIR .. "src/mame/includes/lsasquad.h",
|
||||
|
@ -139,7 +139,6 @@ static ADDRESS_MAP_START( lkage_map, AS_PROGRAM, 8, lkage_state )
|
||||
AM_RANGE(0xf000, 0xf003) AM_RAM AM_SHARE("vreg") /* video registers */
|
||||
AM_RANGE(0xf060, 0xf060) AM_WRITE(lkage_sound_command_w)
|
||||
AM_RANGE(0xf061, 0xf061) AM_WRITENOP AM_READ(sound_status_r)
|
||||
AM_RANGE(0xf062, 0xf062) AM_READWRITE(lkage_mcu_r,lkage_mcu_w)
|
||||
AM_RANGE(0xf063, 0xf063) AM_WRITENOP /* pulsed; nmi on sound cpu? */
|
||||
AM_RANGE(0xf080, 0xf080) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0xf081, 0xf081) AM_READ_PORT("DSW2")
|
||||
@ -147,7 +146,6 @@ static ADDRESS_MAP_START( lkage_map, AS_PROGRAM, 8, lkage_state )
|
||||
AM_RANGE(0xf083, 0xf083) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xf084, 0xf084) AM_READ_PORT("P1")
|
||||
AM_RANGE(0xf086, 0xf086) AM_READ_PORT("P2")
|
||||
AM_RANGE(0xf087, 0xf087) AM_READ(lkage_mcu_status_r)
|
||||
AM_RANGE(0xf0a0, 0xf0a3) AM_RAM /* unknown */
|
||||
AM_RANGE(0xf0c0, 0xf0c5) AM_RAM AM_SHARE("scroll")
|
||||
AM_RANGE(0xf0e1, 0xf0e1) AM_WRITENOP /* pulsed */
|
||||
@ -156,6 +154,18 @@ static ADDRESS_MAP_START( lkage_map, AS_PROGRAM, 8, lkage_state )
|
||||
AM_RANGE(0xf400, 0xffff) AM_RAM_WRITE(lkage_videoram_w) AM_SHARE("videoram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( lkage_map_mcu, AS_PROGRAM, 8, lkage_state )
|
||||
AM_IMPORT_FROM(lkage_map)
|
||||
AM_RANGE(0xf062, 0xf062) AM_DEVREADWRITE("bmcu", taito68705_mcu_device, mcu_r, mcu_w)
|
||||
AM_RANGE(0xf087, 0xf087) AM_DEVREAD("bmcu", taito68705_mcu_device, mcu_status_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( lkage_map_boot, AS_PROGRAM, 8, lkage_state )
|
||||
AM_IMPORT_FROM(lkage_map)
|
||||
AM_RANGE(0xf062, 0xf062) AM_READWRITE(fake_mcu_r,fake_mcu_w)
|
||||
AM_RANGE(0xf087, 0xf087) AM_READ(fake_status_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
READ8_MEMBER(lkage_state::port_fetch_r)
|
||||
{
|
||||
@ -166,17 +176,6 @@ static ADDRESS_MAP_START( lkage_io_map, AS_IO, 8, lkage_state )
|
||||
AM_RANGE(0x4000, 0x7fff) AM_READ(port_fetch_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( lkage_m68705_map, AS_PROGRAM, 8, lkage_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
|
||||
AM_RANGE(0x0000, 0x0000) AM_READWRITE(lkage_68705_port_a_r,lkage_68705_port_a_w)
|
||||
AM_RANGE(0x0001, 0x0001) AM_READWRITE(lkage_68705_port_b_r,lkage_68705_port_b_w)
|
||||
AM_RANGE(0x0002, 0x0002) AM_READWRITE(lkage_68705_port_c_r,lkage_68705_port_c_w)
|
||||
AM_RANGE(0x0004, 0x0004) AM_WRITE(lkage_68705_ddr_a_w)
|
||||
AM_RANGE(0x0005, 0x0005) AM_WRITE(lkage_68705_ddr_b_w)
|
||||
AM_RANGE(0x0006, 0x0006) AM_WRITE(lkage_68705_ddr_c_w)
|
||||
AM_RANGE(0x0010, 0x007f) AM_RAM
|
||||
AM_RANGE(0x0080, 0x07ff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
@ -489,20 +488,6 @@ void lkage_state::machine_start()
|
||||
save_item(NAME(m_mcu_val));
|
||||
save_item(NAME(m_sound_nmi_enable));
|
||||
save_item(NAME(m_pending_nmi));
|
||||
|
||||
save_item(NAME(m_port_a_in));
|
||||
save_item(NAME(m_port_a_out));
|
||||
save_item(NAME(m_ddr_a));
|
||||
save_item(NAME(m_port_b_in));
|
||||
save_item(NAME(m_port_b_out));
|
||||
save_item(NAME(m_ddr_b));
|
||||
save_item(NAME(m_port_c_in));
|
||||
save_item(NAME(m_port_c_out));
|
||||
save_item(NAME(m_ddr_c));
|
||||
save_item(NAME(m_mcu_sent));
|
||||
save_item(NAME(m_main_sent));
|
||||
save_item(NAME(m_from_main));
|
||||
save_item(NAME(m_from_mcu));
|
||||
}
|
||||
|
||||
void lkage_state::machine_reset()
|
||||
@ -514,26 +499,13 @@ void lkage_state::machine_reset()
|
||||
m_sound_nmi_enable = 0;
|
||||
m_pending_nmi = 0;
|
||||
|
||||
m_port_a_in = 0;
|
||||
m_port_a_out = 0;
|
||||
m_ddr_a = 0;
|
||||
m_port_b_in = 0;
|
||||
m_port_b_out = 0;
|
||||
m_ddr_b = 0;
|
||||
m_port_c_in = 0;
|
||||
m_port_c_out = 0;
|
||||
m_ddr_c = 0;
|
||||
m_mcu_sent = 0;
|
||||
m_main_sent = 0;
|
||||
m_from_main = 0;
|
||||
m_from_mcu = 0;
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( lkage, lkage_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, MAIN_CPU_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP(lkage_map)
|
||||
MCFG_CPU_PROGRAM_MAP(lkage_map_mcu)
|
||||
MCFG_CPU_IO_MAP(lkage_io_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", lkage_state, irq0_line_hold)
|
||||
|
||||
@ -541,8 +513,7 @@ static MACHINE_CONFIG_START( lkage, lkage_state )
|
||||
MCFG_CPU_PROGRAM_MAP(lkage_sound_map)
|
||||
/* IRQs are triggered by the YM2203 */
|
||||
|
||||
MCFG_CPU_ADD("mcu", M68705,MCU_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP(lkage_m68705_map)
|
||||
MCFG_DEVICE_ADD("bmcu", TAITO68705_MCU,MCU_CLOCK)
|
||||
|
||||
|
||||
/* video hardware */
|
||||
@ -583,7 +554,7 @@ static MACHINE_CONFIG_START( lkageb, lkage_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80,MAIN_CPU_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP(lkage_map)
|
||||
MCFG_CPU_PROGRAM_MAP(lkage_map_boot)
|
||||
MCFG_CPU_IO_MAP(lkage_io_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", lkage_state, irq0_line_hold)
|
||||
|
||||
@ -633,7 +604,7 @@ ROM_START( lkage )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 code (sound CPU) */
|
||||
ROM_LOAD( "a54-04.54", 0x0000, 0x8000, CRC(541faf9a) SHA1(b142ff3bd198f700697ec06ea92db3109ab5818e) )
|
||||
|
||||
ROM_REGION( 0x10000, "mcu", 0 ) /* 68705 MCU code */
|
||||
ROM_REGION( 0x10000, "bmcu:mcu", 0 ) /* 68705 MCU code */
|
||||
ROM_LOAD( "a54-09.53", 0x0000, 0x0800, CRC(0e8b8846) SHA1(a4a105462b0127229bb7edfadd2e581c7e40f1cc) )
|
||||
|
||||
ROM_REGION( 0x4000, "user1", 0 ) /* data */
|
||||
@ -663,7 +634,7 @@ ROM_START( lkageo )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 code (sound CPU) */
|
||||
ROM_LOAD( "a54-04.54", 0x0000, 0x8000, CRC(541faf9a) SHA1(b142ff3bd198f700697ec06ea92db3109ab5818e) )
|
||||
|
||||
ROM_REGION( 0x10000, "mcu", 0 ) /* 68705 MCU code */
|
||||
ROM_REGION( 0x10000, "bmcu:mcu", 0 ) /* 68705 MCU code */
|
||||
ROM_LOAD( "a54-09.53", 0x0000, 0x0800, CRC(0e8b8846) SHA1(a4a105462b0127229bb7edfadd2e581c7e40f1cc) )
|
||||
|
||||
ROM_REGION( 0x4000, "user1", 0 ) /* data */
|
||||
@ -693,7 +664,7 @@ ROM_START( lkageoo )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 code (sound CPU) */
|
||||
ROM_LOAD( "a54-04.54", 0x0000, 0x8000, CRC(541faf9a) SHA1(b142ff3bd198f700697ec06ea92db3109ab5818e) )
|
||||
|
||||
ROM_REGION( 0x10000, "mcu", 0 ) /* 68705 MCU code */
|
||||
ROM_REGION( 0x10000, "bmcu:mcu", 0 ) /* 68705 MCU code */
|
||||
ROM_LOAD( "a54-09.53", 0x0000, 0x0800, CRC(0e8b8846) SHA1(a4a105462b0127229bb7edfadd2e581c7e40f1cc) )
|
||||
|
||||
ROM_REGION( 0x4000, "user1", 0 ) /* data */
|
||||
@ -876,7 +847,7 @@ ROM_START( bygone )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 code (sound CPU) */
|
||||
ROM_LOAD( "a53_07.ic54", 0x0000, 0x8000, CRC(72f69a77) SHA1(dfc1050a4123b3c83ae733ece1b6fe2836beb901) )
|
||||
|
||||
ROM_REGION( 0x10000, "mcu", 0 ) /* 68705 MCU code */
|
||||
ROM_REGION( 0x10000, "bmcu:mcu", 0 ) /* 68705 MCU code */
|
||||
ROM_LOAD( "a51_09.ic53", 0x0000, 0x0800, CRC(0e8b8846) SHA1(a4a105462b0127229bb7edfadd2e581c7e40f1cc) ) /* the same as lkage */
|
||||
|
||||
ROM_REGION( 0x4000, "user1", 0 ) /* data */
|
||||
@ -945,13 +916,6 @@ DRIVER_INIT_MEMBER(lkage_state,lkage)
|
||||
m_sprite_dx=0;
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(lkage_state,lkageb)
|
||||
{
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0xf062, 0xf062, read8_delegate(FUNC(lkage_state::fake_mcu_r),this));
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0xf087, 0xf087, read8_delegate(FUNC(lkage_state::fake_status_r),this));
|
||||
m_maincpu->space(AS_PROGRAM).install_write_handler(0xf062, 0xf062, write8_delegate(FUNC(lkage_state::fake_mcu_w),this));
|
||||
m_sprite_dx=0;
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(lkage_state,bygone)
|
||||
{
|
||||
@ -961,7 +925,7 @@ DRIVER_INIT_MEMBER(lkage_state,bygone)
|
||||
GAME( 1984, lkage, 0, lkage, lkage, lkage_state, lkage, ROT0, "Taito Corporation", "The Legend of Kage", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, lkageo, lkage, lkage, lkage, lkage_state, lkage, ROT0, "Taito Corporation", "The Legend of Kage (older)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, lkageoo, lkage, lkage, lkage, lkage_state, lkage, ROT0, "Taito Corporation", "The Legend of Kage (oldest)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, lkageb, lkage, lkageb, lkageb, lkage_state, lkageb, ROT0, "bootleg", "The Legend of Kage (bootleg set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, lkageb2, lkage, lkageb, lkageb, lkage_state, lkageb, ROT0, "bootleg", "The Legend of Kage (bootleg set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, lkageb3, lkage, lkageb, lkageb, lkage_state, lkageb, ROT0, "bootleg", "The Legend of Kage (bootleg set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, lkageb, lkage, lkageb, lkageb, lkage_state, lkage, ROT0, "bootleg", "The Legend of Kage (bootleg set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, lkageb2, lkage, lkageb, lkageb, lkage_state, lkage, ROT0, "bootleg", "The Legend of Kage (bootleg set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, lkageb3, lkage, lkageb, lkageb, lkage_state, lkage, ROT0, "bootleg", "The Legend of Kage (bootleg set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, bygone, 0, lkage, bygone, lkage_state, bygone, ROT0, "Taito Corporation", "Bygone (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -2,6 +2,7 @@
|
||||
// copyright-holders:Phil Stroffolino
|
||||
|
||||
#include "machine/gen_latch.h"
|
||||
#include "machine/taito68705interface.h"
|
||||
|
||||
class lkage_state : public driver_device
|
||||
{
|
||||
@ -14,7 +15,7 @@ public:
|
||||
m_videoram(*this, "videoram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_mcu(*this, "mcu"),
|
||||
m_bmcu(*this, "bmcu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_soundlatch(*this, "soundlatch") { }
|
||||
@ -38,21 +39,6 @@ public:
|
||||
int m_sound_nmi_enable;
|
||||
int m_pending_nmi;
|
||||
|
||||
/* mcu */
|
||||
uint8_t m_from_main;
|
||||
uint8_t m_from_mcu;
|
||||
int m_mcu_sent;
|
||||
int m_main_sent;
|
||||
uint8_t m_port_a_in;
|
||||
uint8_t m_port_a_out;
|
||||
uint8_t m_ddr_a;
|
||||
uint8_t m_port_b_in;
|
||||
uint8_t m_port_b_out;
|
||||
uint8_t m_ddr_b;
|
||||
uint8_t m_port_c_in;
|
||||
uint8_t m_port_c_out;
|
||||
uint8_t m_ddr_c;
|
||||
|
||||
/* lkageb fake mcu */
|
||||
uint8_t m_mcu_val;
|
||||
int m_mcu_ready; /* cpu data/mcu ready status */
|
||||
@ -60,7 +46,7 @@ public:
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
optional_device<cpu_device> m_mcu;
|
||||
optional_device<taito68705_mcu_device> m_bmcu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
@ -73,22 +59,10 @@ public:
|
||||
DECLARE_READ8_MEMBER(fake_mcu_r);
|
||||
DECLARE_WRITE8_MEMBER(fake_mcu_w);
|
||||
DECLARE_READ8_MEMBER(fake_status_r);
|
||||
DECLARE_READ8_MEMBER(lkage_68705_port_a_r);
|
||||
DECLARE_WRITE8_MEMBER(lkage_68705_port_a_w);
|
||||
DECLARE_WRITE8_MEMBER(lkage_68705_ddr_a_w);
|
||||
DECLARE_READ8_MEMBER(lkage_68705_port_b_r);
|
||||
DECLARE_WRITE8_MEMBER(lkage_68705_port_b_w);
|
||||
DECLARE_WRITE8_MEMBER(lkage_68705_ddr_b_w);
|
||||
DECLARE_READ8_MEMBER(lkage_68705_port_c_r);
|
||||
DECLARE_WRITE8_MEMBER(lkage_68705_port_c_w);
|
||||
DECLARE_WRITE8_MEMBER(lkage_68705_ddr_c_w);
|
||||
DECLARE_WRITE8_MEMBER(lkage_mcu_w);
|
||||
DECLARE_READ8_MEMBER(lkage_mcu_r);
|
||||
DECLARE_READ8_MEMBER(lkage_mcu_status_r);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(lkage_videoram_w);
|
||||
DECLARE_DRIVER_INIT(bygone);
|
||||
DECLARE_DRIVER_INIT(lkage);
|
||||
DECLARE_DRIVER_INIT(lkageb);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_tx_tile_info);
|
||||
|
@ -1,141 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Phil Stroffolino
|
||||
/***************************************************************************
|
||||
|
||||
machine.c
|
||||
|
||||
Functions to emulate general aspects of the machine (RAM, ROM, interrupts,
|
||||
I/O ports)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/lkage.h"
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Legend of Kage 68705 protection interface
|
||||
|
||||
The following is ENTIRELY GUESSWORK!!!
|
||||
And moreover, the game seems to work anyway regardless of what the mcu returns.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
READ8_MEMBER(lkage_state::lkage_68705_port_a_r)
|
||||
{
|
||||
//logerror("%04x: 68705 port A read %02x\n", space.device().safe_pc(), m_port_a_in);
|
||||
return (m_port_a_out & m_ddr_a) | (m_port_a_in & ~m_ddr_a);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(lkage_state::lkage_68705_port_a_w)
|
||||
{
|
||||
//logerror("%04x: 68705 port A write %02x\n", space.device().safe_pc(), data);
|
||||
m_port_a_out = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(lkage_state::lkage_68705_ddr_a_w)
|
||||
{
|
||||
m_ddr_a = data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Port B connections:
|
||||
*
|
||||
* all bits are logical 1 when read (+5V pullup)
|
||||
*
|
||||
* 1 W when 1->0, enables latch which brings the command from main CPU (read from port A)
|
||||
* 2 W when 0->1, copies port A to the latch for the main CPU
|
||||
*/
|
||||
|
||||
READ8_MEMBER(lkage_state::lkage_68705_port_b_r)
|
||||
{
|
||||
return (m_port_b_out & m_ddr_b) | (m_port_b_in & ~m_ddr_b);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(lkage_state::lkage_68705_port_b_w)
|
||||
{
|
||||
//logerror("%04x: 68705 port B write %02x\n", space.device().safe_pc(), data);
|
||||
|
||||
if ((m_ddr_b & 0x02) && (~data & 0x02) && (m_port_b_out & 0x02))
|
||||
{
|
||||
m_port_a_in = m_from_main;
|
||||
if (m_main_sent)
|
||||
m_mcu->set_input_line(0, CLEAR_LINE);
|
||||
|
||||
m_main_sent = 0;
|
||||
logerror("read command %02x from main cpu\n", m_port_a_in);
|
||||
}
|
||||
|
||||
if ((m_ddr_b & 0x04) && (data & 0x04) && (~m_port_b_out & 0x04))
|
||||
{
|
||||
logerror("send command %02x to main cpu\n", m_port_a_out);
|
||||
m_from_mcu = m_port_a_out;
|
||||
m_mcu_sent = 1;
|
||||
}
|
||||
|
||||
m_port_b_out = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(lkage_state::lkage_68705_ddr_b_w)
|
||||
{
|
||||
m_ddr_b = data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
READ8_MEMBER(lkage_state::lkage_68705_port_c_r)
|
||||
{
|
||||
m_port_c_in = 0;
|
||||
if (m_main_sent)
|
||||
m_port_c_in |= 0x01;
|
||||
if (!m_mcu_sent)
|
||||
m_port_c_in |= 0x02;
|
||||
|
||||
//logerror("%04x: 68705 port C read %02x\n", space.device().safe_pc(), m_port_c_in);
|
||||
return (m_port_c_out & m_ddr_c) | (m_port_c_in & ~m_ddr_c);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(lkage_state::lkage_68705_port_c_w)
|
||||
{
|
||||
logerror("%04x: 68705 port C write %02x\n", space.device().safe_pc(), data);
|
||||
m_port_c_out = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(lkage_state::lkage_68705_ddr_c_w)
|
||||
{
|
||||
m_ddr_c = data;
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(lkage_state::lkage_mcu_w)
|
||||
{
|
||||
logerror("%04x: mcu_w %02x\n", space.device().safe_pc(), data);
|
||||
m_from_main = data;
|
||||
m_main_sent = 1;
|
||||
m_mcu->set_input_line(0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
READ8_MEMBER(lkage_state::lkage_mcu_r)
|
||||
{
|
||||
logerror("%04x: mcu_r %02x\n", space.device().safe_pc(), m_from_mcu);
|
||||
m_mcu_sent = 0;
|
||||
return m_from_mcu;
|
||||
}
|
||||
|
||||
READ8_MEMBER(lkage_state::lkage_mcu_status_r)
|
||||
{
|
||||
int res = 0;
|
||||
|
||||
/* bit 0 = when 1, mcu is ready to receive data from main cpu */
|
||||
/* bit 1 = when 1, mcu has sent data to the main cpu */
|
||||
//logerror("%04x: mcu_status_r\n", space.device().safe_pc());
|
||||
if (!m_main_sent)
|
||||
res |= 0x01;
|
||||
if (m_mcu_sent)
|
||||
res |= 0x02;
|
||||
|
||||
return res;
|
||||
}
|
Loading…
Reference in New Issue
Block a user