Previous 199869 Revisions Next

r20514 Saturday 26th January, 2013 at 21:00:12 UTC by Wilbert Pol
(MESS) micronic.c: Tagmap cleanups (nw)
[src/mess/drivers]micronic.c
[src/mess/includes]micronic.h

trunk/src/mess/includes/micronic.h
r20513r20514
2222{
2323public:
2424   micronic_state(const machine_config &mconfig, device_type type, const char *tag)
25      : driver_device(mconfig, type, tag),
26         m_maincpu(*this, Z80_TAG),
27         m_lcdc(*this, HD61830_TAG),
28         m_beep(*this, BEEPER_TAG),
29         m_rtc(*this, MC146818_TAG),
30         m_ram(*this, RAM_TAG)
31      ,
32      m_ram_base(*this, "ram_base"){ }
25      : driver_device(mconfig, type, tag)
26      , m_maincpu(*this, Z80_TAG)
27      , m_lcdc(*this, HD61830_TAG)
28      , m_beep(*this, BEEPER_TAG)
29      , m_rtc(*this, MC146818_TAG)
30      , m_ram(*this, RAM_TAG)
31      , m_ram_base(*this, "ram_base")
32      , m_bank1(*this, "bank1")
33      , m_bit0(*this, "BIT0")
34      , m_bit1(*this, "BIT1")
35      , m_bit2(*this, "BIT2")
36      , m_bit3(*this, "BIT3")
37      , m_bit4(*this, "BIT4")
38      , m_bit5(*this, "BIT5")
39      , m_backbattery(*this, "BACKBATTERY")
40      , m_mainbattery(*this, "MAINBATTERY")
41   { }
3342
3443   required_device<cpu_device> m_maincpu;
3544   required_device<hd61830_device> m_lcdc;
r20513r20514
6170   bool m_lcd_backlight;
6271   UINT8 m_status_flag;
6372   virtual void palette_init();
73
74protected:
75   required_memory_bank m_bank1;
76   required_ioport m_bit0;
77   required_ioport m_bit1;
78   required_ioport m_bit2;
79   required_ioport m_bit3;
80   required_ioport m_bit4;
81   required_ioport m_bit5;
82   required_ioport m_backbattery;
83   required_ioport m_mainbattery;
6484};
6585
6686#endif
trunk/src/mess/drivers/micronic.c
r20513r20514
117117
118118READ8_MEMBER( micronic_state::keypad_r )
119119{
120   static const char *const bitnames[] = {"BIT0", "BIT1", "BIT2", "BIT3", "BIT4", "BIT5"};
121   UINT8 port, bit, data = 0;
120   UINT8 data = 0;
122121
123   for (bit = 0; bit < 8; bit++)
122   for (UINT8 bit = 0; bit < 8; bit++)
123   {
124124      if (m_kp_matrix & (1 << bit))
125         for (port = 0; port < 6; port++)
126            data |= ioport(bitnames[port])->read() & (0x01 << bit) ? 0x01 << port : 0x00;
125      {
126         data |= m_bit0->read() & (0x01 << bit) ? 0x01 : 0x00;
127         data |= m_bit1->read() & (0x01 << bit) ? 0x02 : 0x00;
128         data |= m_bit2->read() & (0x01 << bit) ? 0x04 : 0x00;
129         data |= m_bit3->read() & (0x01 << bit) ? 0x08 : 0x00;
130         data |= m_bit4->read() & (0x01 << bit) ? 0x10 : 0x00;
131         data |= m_bit5->read() & (0x01 << bit) ? 0x20 : 0x00;
132      }
133   }
127134   return data;
128135}
129136
r20513r20514
156163
157164READ8_MEMBER( micronic_state::irq_flag_r )
158165{
159   return (ioport("BACKBATTERY")->read()<<4) | (ioport("MAINBATTERY")->read()<<3) | (keypad_r(space, offset) ? 0 : 1);
166   return (m_backbattery->read()<<4) | (m_mainbattery->read()<<3) | (keypad_r(space, offset) ? 0 : 1);
160167}
161168
162169WRITE8_MEMBER( micronic_state::bank_select_w )
163170{
164171   if (data < 2)
165172   {
166      membank("bank1")->set_entry(data);
173      m_bank1->set_entry(data);
167174      m_maincpu->space(AS_PROGRAM).unmap_write(0x0000, 0x7fff);
168175   }
169176   else
170177   {
171      membank("bank1")->set_entry((data <= m_banks_num) ? data : m_banks_num);
178      m_bank1->set_entry((data <= m_banks_num) ? data : m_banks_num);
172179      m_maincpu->space(AS_PROGRAM).install_write_bank(0x0000, 0x7fff, "bank1");
173180   }
174181}
r20513r20514
329336void micronic_state::machine_start()
330337{
331338   /* ROM banks */
332   membank("bank1")->configure_entries(0x00, 0x02, memregion(Z80_TAG)->base(), 0x10000);
339   m_bank1->configure_entries(0x00, 0x02, memregion(Z80_TAG)->base(), 0x10000);
333340
334341   /* RAM banks */
335342   m_banks_num = (m_ram->size()>>15) + 1;
336   membank("bank1")->configure_entries(0x02, m_banks_num - 1, m_ram->pointer(), 0x8000);
343   m_bank1->configure_entries(0x02, m_banks_num - 1, m_ram->pointer(), 0x8000);
337344
338345   /* register for state saving */
339346//  save_item(NAME(state->));
r20513r20514
341348
342349void micronic_state::machine_reset()
343350{
344   membank("bank1")->set_entry(0);
351   m_bank1->set_entry(0);
345352   m_maincpu->space(AS_PROGRAM).unmap_write(0x0000, 0x7fff);
346353}
347354

Previous 199869 Revisions Next


© 1997-2024 The MAME Team