amiga: added a pair of functions to the driver class. (nw)

This commit is contained in:
Ivan Vangelista 2014-03-15 08:37:15 +00:00
parent f6153bc499
commit fad0b00cba
2 changed files with 12 additions and 9 deletions

View File

@ -13,6 +13,7 @@ Ernesto Corvi & Mariusz Wojcieszek
#include "bus/centronics/ctronics.h"
#include "machine/6526cia.h"
#include "machine/amigafdc.h"
#include "machine/msm6242.h"
#include "cpu/m68000/m68000.h"
@ -391,6 +392,7 @@ public:
m_cia_1(*this, "cia_1"),
m_centronics(*this, "centronics"),
m_sound(*this, "amiga"),
m_rtc(*this, "rtc"),
m_fdc(*this, "fdc"),
m_chip_ram(*this, "chip_ram", 0),
m_custom_regs(*this, "custom_regs", 0),
@ -412,6 +414,7 @@ public:
required_device<legacy_mos6526_device> m_cia_1;
optional_device<centronics_device> m_centronics;
required_device<amiga_sound_device> m_sound;
optional_device<msm6242_device> m_rtc;
optional_device<amiga_fdc> m_fdc;
required_shared_ptr<UINT16> m_chip_ram;
UINT16 (*m_chip_ram_r)(amiga_state *state, offs_t offset);
@ -494,6 +497,9 @@ public:
TIMER_CALLBACK_MEMBER(finish_serial_write);
DECLARE_WRITE_LINE_MEMBER(amiga_cia_0_irq);
DECLARE_WRITE_LINE_MEMBER(amiga_cia_1_irq);
DECLARE_READ16_MEMBER( amiga_clock_r );
DECLARE_WRITE16_MEMBER( amiga_clock_w );
DECLARE_READ8_MEMBER(amiga_cia_1_porta_r);
DECLARE_WRITE_LINE_MEMBER( write_centronics_ack );

View File

@ -51,7 +51,6 @@ very fussy with the state machine.
#include "machine/amigakbd.h"
#include "machine/amigacd.h"
#include "machine/amigacrt.h"
#include "machine/msm6242.h"
#include "machine/nvram.h"
#include "sound/cdda.h"
#include "machine/i2cmem.h"
@ -106,17 +105,15 @@ static DECLARE_WRITE8_DEVICE_HANDLER( amiga_cia_0_portA_w );
Battery Backed-Up Clock (MSM6264)
***************************************************************************/
static READ16_HANDLER( amiga_clock_r )
READ16_MEMBER( amiga_state::amiga_clock_r )
{
msm6242_device *rtc = space.machine().device<msm6242_device>("rtc");
return rtc->read(space,offset / 2);
return m_rtc->read(space, offset / 2);
}
static WRITE16_HANDLER( amiga_clock_w )
WRITE16_MEMBER( amiga_state::amiga_clock_w )
{
msm6242_device *rtc = space.machine().device<msm6242_device>("rtc");
rtc->write(space,offset / 2, data);
m_rtc->write(space, offset / 2, data);
}
@ -242,7 +239,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START(cdtv_mem, AS_PROGRAM, 16, amiga_state )
AM_RANGE(0x000000, 0x0fffff) AM_RAMBANK("bank1") AM_SHARE("chip_ram")
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
AM_RANGE(0xdc0000, 0xdc003f) AM_READWRITE_LEGACY(amiga_clock_r, amiga_clock_w)
AM_RANGE(0xdc0000, 0xdc003f) AM_READWRITE(amiga_clock_r, amiga_clock_w)
AM_RANGE(0xdc8000, 0xdc87ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(amiga_custom_r, amiga_custom_w) AM_SHARE("custom_regs") /* Custom Chips */
AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE(amiga_autoconfig_r, amiga_autoconfig_w)
@ -1115,7 +1112,7 @@ static void amiga_reset(running_machine &machine)
if (machine.root_device().ioport("hardware")->read() & 0x08)
{
/* Install RTC */
state->m_maincpu_program_space->install_legacy_readwrite_handler(0xdc0000, 0xdc003f, FUNC(amiga_clock_r), FUNC(amiga_clock_w));
state->m_maincpu_program_space->install_readwrite_handler(0xdc0000, 0xdc003f, read16_delegate(FUNC(amiga_state::amiga_clock_r), state), write16_delegate(FUNC(amiga_state::amiga_clock_w), state));
}
else
{