Previous 199869 Revisions Next

r21076 Thursday 14th February, 2013 at 20:24:00 UTC by Wilbert Pol
(MESS) palm.c: Reduced tagmap lookups (nw)
[src/mess/drivers]palm.c

trunk/src/mess/drivers/palm.c
r21075r21076
2121{
2222public:
2323   palm_state(const machine_config &mconfig, device_type type, const char *tag)
24      : driver_device(mconfig, type, tag),
25   m_maincpu(*this, "maincpu"),
26   m_lsi(*this, MC68328_TAG),
27   m_dac(*this, "dac"),
28   m_ram(*this, RAM_TAG)
24      : driver_device(mconfig, type, tag)
25      , m_maincpu(*this, "maincpu")
26      , m_lsi(*this, MC68328_TAG)
27      , m_dac(*this, "dac")
28      , m_ram(*this, RAM_TAG)
29      , m_io_penx(*this, "PENX")
30      , m_io_peny(*this, "PENY")
31      , m_io_penb(*this, "PENB")
32      , m_io_portd(*this, "PORTD")
2933   { }
3034
3135   required_device<cpu_device> m_maincpu;
r21075r21076
5155   DECLARE_WRITE16_MEMBER(palm_spim_out);
5256   DECLARE_READ16_MEMBER(palm_spim_in);
5357   DECLARE_WRITE8_MEMBER(palm_dac_transition);
58
59   required_ioport m_io_penx;
60   required_ioport m_io_peny;
61   required_ioport m_io_penb;
62   required_ioport m_io_portd;
5463};
5564
5665static offs_t palm_dasm_override(device_t &device, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, int options);
r21075r21076
6271
6372INPUT_CHANGED_MEMBER(palm_state::pen_check)
6473{
65   UINT8 button = machine().root_device().ioport("PENB")->read();
74   UINT8 button = m_io_penb->read();
6675
6776   if(button)
6877      mc68328_set_penirq_line(m_lsi, 1);
r21075r21076
7281
7382INPUT_CHANGED_MEMBER(palm_state::button_check)
7483{
75   UINT8 button_state = machine().root_device().ioport("PORTD")->read();
84   UINT8 button_state = m_io_portd->read();
7685
7786   mc68328_set_port_d_lines(m_lsi, button_state, (int)(FPTR)param);
7887}
r21075r21076
105114static void palm_spim_exchange( device_t *device )
106115{
107116   palm_state *state = device->machine().driver_data<palm_state>();
108   UINT8 x = device->machine().root_device().ioport("PENX")->read();
109   UINT8 y = state->ioport("PENY")->read();
117   UINT8 x = state->m_io_penx->read();
118   UINT8 y = state->m_io_peny->read();
110119
111120   switch( state->m_port_f_latch & 0x0f )
112121   {
r21075r21076
122131
123132void palm_state::machine_start()
124133{
125   address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);
126   space.install_read_bank (0x000000, machine().device<ram_device>(RAM_TAG)->size() - 1, machine().device<ram_device>(RAM_TAG)->size() - 1, 0, "bank1");
127   space.install_write_bank(0x000000, machine().device<ram_device>(RAM_TAG)->size() - 1, machine().device<ram_device>(RAM_TAG)->size() - 1, 0, "bank1");
128   membank("bank1")->set_base(machine().device<ram_device>(RAM_TAG)->pointer());
134   address_space &space = m_maincpu->space(AS_PROGRAM);
135   space.install_read_bank (0x000000, m_ram->size() - 1, m_ram->size() - 1, 0, "bank1");
136   space.install_write_bank(0x000000, m_ram->size() - 1, m_ram->size() - 1, 0, "bank1");
137   membank("bank1")->set_base(m_ram->pointer());
129138
130139   save_item(NAME(m_port_f_latch));
131140   save_item(NAME(m_spim_data));
r21075r21076
138147{
139148   // Copy boot ROM
140149   UINT8* bios = machine().root_device().memregion("bios")->base();
141   memset(machine().device<ram_device>(RAM_TAG)->pointer(), 0, machine().device<ram_device>(RAM_TAG)->size());
142   memcpy(machine().device<ram_device>(RAM_TAG)->pointer(), bios, 0x20000);
150   memset(m_ram->pointer(), 0, m_ram->size());
151   memcpy(m_ram->pointer(), bios, 0x20000);
143152
144153   m_maincpu->reset();
145154}

Previous 199869 Revisions Next


© 1997-2024 The MAME Team