mirror of
https://github.com/holub/mame
synced 2025-05-11 08:38:47 +03:00
(MESS) palm.c: Reduced tagmap lookups (nw)
This commit is contained in:
parent
82a539c656
commit
c42c219682
@ -21,11 +21,15 @@ class palm_state : public driver_device
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
palm_state(const machine_config &mconfig, device_type type, const char *tag)
|
palm_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag)
|
||||||
m_maincpu(*this, "maincpu"),
|
, m_maincpu(*this, "maincpu")
|
||||||
m_lsi(*this, MC68328_TAG),
|
, m_lsi(*this, MC68328_TAG)
|
||||||
m_dac(*this, "dac"),
|
, m_dac(*this, "dac")
|
||||||
m_ram(*this, RAM_TAG)
|
, m_ram(*this, RAM_TAG)
|
||||||
|
, m_io_penx(*this, "PENX")
|
||||||
|
, m_io_peny(*this, "PENY")
|
||||||
|
, m_io_penb(*this, "PENB")
|
||||||
|
, m_io_portd(*this, "PORTD")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
@ -51,6 +55,11 @@ public:
|
|||||||
DECLARE_WRITE16_MEMBER(palm_spim_out);
|
DECLARE_WRITE16_MEMBER(palm_spim_out);
|
||||||
DECLARE_READ16_MEMBER(palm_spim_in);
|
DECLARE_READ16_MEMBER(palm_spim_in);
|
||||||
DECLARE_WRITE8_MEMBER(palm_dac_transition);
|
DECLARE_WRITE8_MEMBER(palm_dac_transition);
|
||||||
|
|
||||||
|
required_ioport m_io_penx;
|
||||||
|
required_ioport m_io_peny;
|
||||||
|
required_ioport m_io_penb;
|
||||||
|
required_ioport m_io_portd;
|
||||||
};
|
};
|
||||||
|
|
||||||
static offs_t palm_dasm_override(device_t &device, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, int options);
|
static offs_t palm_dasm_override(device_t &device, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, int options);
|
||||||
@ -62,7 +71,7 @@ static offs_t palm_dasm_override(device_t &device, char *buffer, offs_t pc, cons
|
|||||||
|
|
||||||
INPUT_CHANGED_MEMBER(palm_state::pen_check)
|
INPUT_CHANGED_MEMBER(palm_state::pen_check)
|
||||||
{
|
{
|
||||||
UINT8 button = machine().root_device().ioport("PENB")->read();
|
UINT8 button = m_io_penb->read();
|
||||||
|
|
||||||
if(button)
|
if(button)
|
||||||
mc68328_set_penirq_line(m_lsi, 1);
|
mc68328_set_penirq_line(m_lsi, 1);
|
||||||
@ -72,7 +81,7 @@ INPUT_CHANGED_MEMBER(palm_state::pen_check)
|
|||||||
|
|
||||||
INPUT_CHANGED_MEMBER(palm_state::button_check)
|
INPUT_CHANGED_MEMBER(palm_state::button_check)
|
||||||
{
|
{
|
||||||
UINT8 button_state = machine().root_device().ioport("PORTD")->read();
|
UINT8 button_state = m_io_portd->read();
|
||||||
|
|
||||||
mc68328_set_port_d_lines(m_lsi, button_state, (int)(FPTR)param);
|
mc68328_set_port_d_lines(m_lsi, button_state, (int)(FPTR)param);
|
||||||
}
|
}
|
||||||
@ -105,8 +114,8 @@ READ16_MEMBER(palm_state::palm_spim_in)
|
|||||||
static void palm_spim_exchange( device_t *device )
|
static void palm_spim_exchange( device_t *device )
|
||||||
{
|
{
|
||||||
palm_state *state = device->machine().driver_data<palm_state>();
|
palm_state *state = device->machine().driver_data<palm_state>();
|
||||||
UINT8 x = device->machine().root_device().ioport("PENX")->read();
|
UINT8 x = state->m_io_penx->read();
|
||||||
UINT8 y = state->ioport("PENY")->read();
|
UINT8 y = state->m_io_peny->read();
|
||||||
|
|
||||||
switch( state->m_port_f_latch & 0x0f )
|
switch( state->m_port_f_latch & 0x0f )
|
||||||
{
|
{
|
||||||
@ -122,10 +131,10 @@ static void palm_spim_exchange( device_t *device )
|
|||||||
|
|
||||||
void palm_state::machine_start()
|
void palm_state::machine_start()
|
||||||
{
|
{
|
||||||
address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);
|
address_space &space = m_maincpu->space(AS_PROGRAM);
|
||||||
space.install_read_bank (0x000000, machine().device<ram_device>(RAM_TAG)->size() - 1, machine().device<ram_device>(RAM_TAG)->size() - 1, 0, "bank1");
|
space.install_read_bank (0x000000, m_ram->size() - 1, m_ram->size() - 1, 0, "bank1");
|
||||||
space.install_write_bank(0x000000, machine().device<ram_device>(RAM_TAG)->size() - 1, machine().device<ram_device>(RAM_TAG)->size() - 1, 0, "bank1");
|
space.install_write_bank(0x000000, m_ram->size() - 1, m_ram->size() - 1, 0, "bank1");
|
||||||
membank("bank1")->set_base(machine().device<ram_device>(RAM_TAG)->pointer());
|
membank("bank1")->set_base(m_ram->pointer());
|
||||||
|
|
||||||
save_item(NAME(m_port_f_latch));
|
save_item(NAME(m_port_f_latch));
|
||||||
save_item(NAME(m_spim_data));
|
save_item(NAME(m_spim_data));
|
||||||
@ -138,8 +147,8 @@ void palm_state::machine_reset()
|
|||||||
{
|
{
|
||||||
// Copy boot ROM
|
// Copy boot ROM
|
||||||
UINT8* bios = machine().root_device().memregion("bios")->base();
|
UINT8* bios = machine().root_device().memregion("bios")->base();
|
||||||
memset(machine().device<ram_device>(RAM_TAG)->pointer(), 0, machine().device<ram_device>(RAM_TAG)->size());
|
memset(m_ram->pointer(), 0, m_ram->size());
|
||||||
memcpy(machine().device<ram_device>(RAM_TAG)->pointer(), bios, 0x20000);
|
memcpy(m_ram->pointer(), bios, 0x20000);
|
||||||
|
|
||||||
m_maincpu->reset();
|
m_maincpu->reset();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user