mz800: Separate from mz700 state class; use MSX-style joystick ports

This commit is contained in:
AJR 2022-12-22 17:05:43 -05:00
parent 6139c85344
commit d5e08d91e7
4 changed files with 112 additions and 102 deletions

View File

@ -143,7 +143,7 @@ void mz_state::mz700_io(address_map &map)
map(0xe6, 0xe6).w(FUNC(mz_state::mz700_bank_6_w));
}
void mz_state::mz800_mem(address_map &map)
void mz800_state::mz800_mem(address_map &map)
{
map(0x0000, 0x0fff).bankr("bankr0").bankw("bankw0");
map(0x1000, 0x1fff).bankrw("bank1");
@ -154,40 +154,40 @@ void mz_state::mz800_mem(address_map &map)
map(0xe000, 0xffff).m(m_bankf, FUNC(address_map_bank_device::amap8));
}
void mz_state::mz800_bankf(address_map &map)
void mz800_state::mz800_bankf(address_map &map)
{
// bank 0: ram (mz700_bank1)
map(0x0000, 0x1fff).ram();
// bank 1: devices (mz700_bank3)
map(0x2000, 0x2003).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x2004, 0x2007).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0x2008, 0x200b).rw(FUNC(mz_state::mz700_e008_r), FUNC(mz_state::mz700_e008_w));
map(0x2008, 0x200b).rw(FUNC(mz800_state::mz700_e008_r), FUNC(mz800_state::mz700_e008_w));
map(0x200c, 0x200f).noprw();
map(0x2010, 0x3fff).rom().region("monitor", 0x2010);
// bank 2: switched out (mz700_bank5)
map(0x4000, 0x5fff).noprw();
}
void mz_state::mz800_io(address_map &map)
void mz800_state::mz800_io(address_map &map)
{
map.global_mask(0xff);
map(0xcc, 0xcc).w(FUNC(mz_state::mz800_write_format_w));
map(0xcd, 0xcd).w(FUNC(mz_state::mz800_read_format_w));
map(0xce, 0xce).rw(FUNC(mz_state::mz800_crtc_r), FUNC(mz_state::mz800_display_mode_w));
map(0xcf, 0xcf).w(FUNC(mz_state::mz800_scroll_border_w));
map(0xcc, 0xcc).w(FUNC(mz800_state::mz800_write_format_w));
map(0xcd, 0xcd).w(FUNC(mz800_state::mz800_read_format_w));
map(0xce, 0xce).rw(FUNC(mz800_state::mz800_crtc_r), FUNC(mz800_state::mz800_display_mode_w));
map(0xcf, 0xcf).w(FUNC(mz800_state::mz800_scroll_border_w));
map(0xd0, 0xd3).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xd4, 0xd7).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0xe0, 0xe0).rw(FUNC(mz_state::mz800_bank_0_r), FUNC(mz_state::mz800_bank_0_w));
map(0xe1, 0xe1).rw(FUNC(mz_state::mz800_bank_1_r), FUNC(mz_state::mz700_bank_1_w));
map(0xe2, 0xe2).w(FUNC(mz_state::mz700_bank_2_w));
map(0xe3, 0xe3).w(FUNC(mz_state::mz700_bank_3_w));
map(0xe4, 0xe4).w(FUNC(mz_state::mz700_bank_4_w));
map(0xe5, 0xe5).w(FUNC(mz_state::mz700_bank_5_w));
map(0xe6, 0xe6).w(FUNC(mz_state::mz700_bank_6_w));
map(0xea, 0xea).rw(FUNC(mz_state::mz800_ramdisk_r), FUNC(mz_state::mz800_ramdisk_w));
map(0xeb, 0xeb).w(FUNC(mz_state::mz800_ramaddr_w));
map(0xf0, 0xf0).portr("atari_joy1").w(FUNC(mz_state::mz800_palette_w));
map(0xf1, 0xf1).portr("atari_joy2");
map(0xe0, 0xe0).rw(FUNC(mz800_state::mz800_bank_0_r), FUNC(mz800_state::mz800_bank_0_w));
map(0xe1, 0xe1).rw(FUNC(mz800_state::mz800_bank_1_r), FUNC(mz800_state::mz700_bank_1_w));
map(0xe2, 0xe2).w(FUNC(mz800_state::mz700_bank_2_w));
map(0xe3, 0xe3).w(FUNC(mz800_state::mz700_bank_3_w));
map(0xe4, 0xe4).w(FUNC(mz800_state::mz700_bank_4_w));
map(0xe5, 0xe5).w(FUNC(mz800_state::mz700_bank_5_w));
map(0xe6, 0xe6).w(FUNC(mz800_state::mz700_bank_6_w));
map(0xea, 0xea).rw(FUNC(mz800_state::mz800_ramdisk_r), FUNC(mz800_state::mz800_ramdisk_w));
map(0xeb, 0xeb).w(FUNC(mz800_state::mz800_ramaddr_w));
map(0xf0, 0xf0).r(m_joy[0], FUNC(msx_general_purpose_port_device::read)).w(FUNC(mz800_state::mz800_palette_w));
map(0xf1, 0xf1).r(m_joy[1], FUNC(msx_general_purpose_port_device::read));
map(0xf2, 0xf2).w("sn76489n", FUNC(sn76489_device::write));
map(0xfc, 0xff).rw("z80pio", FUNC(z80pio_device::read), FUNC(z80pio_device::write));
}
@ -311,22 +311,6 @@ static INPUT_PORTS_START( mz800 )
PORT_MODIFY("JOY")
PORT_BIT(0x1f, 0x00, IPT_UNUSED)
PORT_START("atari_joy1")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(1) PORT_8WAY
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) PORT_8WAY
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) PORT_8WAY
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) PORT_8WAY
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(1)
PORT_START("atari_joy2")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) PORT_8WAY
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) PORT_8WAY
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) PORT_8WAY
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) PORT_8WAY
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2)
PORT_START("system_settings")
PORT_DIPNAME(0x01, 0x00, "Mode selection")
PORT_DIPLOCATION("SW:4")
@ -380,8 +364,6 @@ void mz_state::mz700(machine_config &config)
ADDRESS_MAP_BANK(config, "banke").set_map(&mz_state::mz700_banke).set_options(ENDIANNESS_LITTLE, 8, 16, 0x2000);
MCFG_MACHINE_RESET_OVERRIDE(mz_state, mz700)
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(XTAL(17'734'470)/2, 568, 0, 40*8, 312, 0, 25*8);
@ -429,21 +411,20 @@ void mz_state::mz700(machine_config &config)
}
void mz_state::mz800(machine_config &config)
void mz800_state::mz800(machine_config &config)
{
mz700(config);
config.device_remove("banke");
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &mz_state::mz800_mem);
m_maincpu->set_addrmap(AS_IO, &mz_state::mz800_io);
m_maincpu->set_addrmap(AS_PROGRAM, &mz800_state::mz800_mem);
m_maincpu->set_addrmap(AS_IO, &mz800_state::mz800_io);
ADDRESS_MAP_BANK(config, "bankf").set_map(&mz_state::mz800_bankf).set_options(ENDIANNESS_LITTLE, 8, 16, 0x2000);
ADDRESS_MAP_BANK(config, "bankf").set_map(&mz800_state::mz800_bankf).set_options(ENDIANNESS_LITTLE, 8, 16, 0x2000);
MCFG_MACHINE_RESET_OVERRIDE(mz_state, mz800)
subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_mz800);
m_screen->set_screen_update(FUNC(mz_state::screen_update_mz800));
m_screen->set_screen_update(FUNC(mz800_state::screen_update_mz800));
SN76489(config, "sn76489n", XTAL(17'734'470)/5).add_route(ALL_OUTPUTS, "mono", 1.0);
@ -453,12 +434,17 @@ void mz_state::mz800(machine_config &config)
/* devices */
m_pit->set_clk<0>(XTAL(17'734'470)/16);
m_ppi->out_pa_callback().set(FUNC(mz800_state::pio_port_a_w));
z80pio_device& pio(Z80PIO(config, "z80pio", XTAL(17'734'470)/5));
pio.out_int_callback().set(FUNC(mz_state::mz800_z80pio_irq));
pio.in_pa_callback().set(FUNC(mz_state::mz800_z80pio_port_a_r));
pio.out_pa_callback().set(FUNC(mz_state::mz800_z80pio_port_a_w));
pio.out_int_callback().set_inputline(m_maincpu, 0);
pio.in_pa_callback().set(FUNC(mz800_state::mz800_z80pio_port_a_r));
pio.out_pa_callback().set(FUNC(mz800_state::mz800_z80pio_port_a_w));
pio.out_pb_callback().set("cent_data_out", FUNC(output_latch_device::write));
MSX_GENERAL_PURPOSE_PORT(config, m_joy[0], msx_general_purpose_port_devices, "joystick");
MSX_GENERAL_PURPOSE_PORT(config, m_joy[1], msx_general_purpose_port_devices, "joystick");
CENTRONICS(config, m_centronics, centronics_devices, "printer");
output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
@ -510,8 +496,8 @@ ROM_END
GAME DRIVERS
***************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP( 1982, mz700, 0, 0, mz700, mz700, mz_state, init_mz700, "Sharp", "MZ-700", 0 )
COMP( 1982, mz700j, mz700, 0, mz700, mz700, mz_state, init_mz700, "Sharp", "MZ-700 (Japan)", 0 )
COMP( 1984, mz800, 0, 0, mz800, mz800, mz_state, init_mz800, "Sharp", "MZ-800", MACHINE_NOT_WORKING )
COMP( 1984, mz1500, 0, 0, mz800, mz800, mz_state, init_mz800, "Sharp", "MZ-1500", MACHINE_NOT_WORKING ) // Japanese version of the MZ-800
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP( 1982, mz700, 0, 0, mz700, mz700, mz_state, init_mz700, "Sharp", "MZ-700", 0 )
COMP( 1982, mz700j, mz700, 0, mz700, mz700, mz_state, init_mz700, "Sharp", "MZ-700 (Japan)", 0 )
COMP( 1984, mz800, 0, 0, mz800, mz800, mz800_state, init_mz800, "Sharp", "MZ-800", MACHINE_NOT_WORKING )
COMP( 1984, mz1500, 0, 0, mz800, mz800, mz800_state, init_mz800, "Sharp", "MZ-1500", MACHINE_NOT_WORKING ) // Japanese version of the MZ-800

View File

@ -12,6 +12,7 @@
#pragma once
#include "bus/centronics/ctronics.h"
#include "bus/msx/ctrl/ctrl.h"
#include "imagedev/cassette.h"
#include "machine/bankdev.h"
#include "machine/74145.h"
@ -44,42 +45,25 @@ public:
, m_cursor_timer(*this, "cursor")
{ }
void mz800(machine_config &config);
void mz700(machine_config &config);
void init_mz800();
void init_mz700();
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
private:
uint8_t mz700_e008_r();
void mz700_e008_w(uint8_t data);
uint8_t mz800_bank_0_r();
void mz700_bank_0_w(uint8_t data);
void mz800_bank_0_w(uint8_t data);
uint8_t mz800_bank_1_r();
void mz700_bank_1_w(uint8_t data);
void mz700_bank_2_w(uint8_t data);
void mz700_bank_3_w(uint8_t data);
void mz700_bank_4_w(uint8_t data);
void mz700_bank_5_w(uint8_t data);
void mz700_bank_6_w(uint8_t data);
uint8_t mz800_crtc_r();
void mz800_write_format_w(uint8_t data);
void mz800_read_format_w(uint8_t data);
void mz800_display_mode_w(uint8_t data);
void mz800_scroll_border_w(uint8_t data);
uint8_t mz800_ramdisk_r();
void mz800_ramdisk_w(uint8_t data);
void mz800_ramaddr_w(uint8_t data);
void mz800_palette_w(uint8_t data);
void mz800_cgram_w(offs_t offset, uint8_t data);
DECLARE_MACHINE_RESET(mz700);
DECLARE_MACHINE_RESET(mz800);
uint32_t screen_update_mz700(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_mz800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(ne556_cursor_callback);
TIMER_DEVICE_CALLBACK_MEMBER(ne556_other_callback);
DECLARE_WRITE_LINE_MEMBER(pit_out0_changed);
@ -88,18 +72,12 @@ private:
uint8_t pio_port_c_r();
void pio_port_a_w(uint8_t data);
void pio_port_c_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(mz800_z80pio_irq);
uint8_t mz800_z80pio_port_a_r();
void mz800_z80pio_port_a_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(write_centronics_busy);
DECLARE_WRITE_LINE_MEMBER(write_centronics_perror);
void mz700_banke(address_map &map);
void mz700_io(address_map &map);
void mz700_mem(address_map &map);
void mz800_bankf(address_map &map);
void mz800_io(address_map &map);
void mz800_mem(address_map &map);
int m_mz700 = 0; /* 1 if running on an mz700 */
@ -111,8 +89,6 @@ private:
int m_mz700_ram_lock = 0; /* 1 if ram lock is active */
int m_mz700_ram_vram = 0; /* 1 if vram is banked in */
/* mz800 specific */
std::unique_ptr<uint8_t[]> m_cgram;
uint8_t *m_p_chargen = nullptr;
int m_mz700_mode = 0; /* 1 if in mz700 mode */
@ -129,7 +105,6 @@ private:
std::unique_ptr<uint8_t[]> m_videoram;
uint8_t m_speaker_level = 0;
uint8_t m_prev_state = 0;
uint16_t m_mz800_ramaddr = 0;
uint8_t m_mz800_palette[4];
uint8_t m_mz800_palette_bank = 0;
@ -149,4 +124,50 @@ private:
required_device<timer_device> m_cursor_timer;
};
class mz800_state : public mz_state
{
public:
mz800_state(const machine_config &mconfig, device_type type, const char *tag)
: mz_state(mconfig, type, tag)
, m_joy(*this, "joy%u", 1U)
{ }
void mz800(machine_config &config);
void init_mz800();
protected:
virtual void machine_reset() override;
private:
uint8_t mz800_bank_0_r();
void mz800_bank_0_w(uint8_t data);
uint8_t mz800_bank_1_r();
uint8_t mz800_crtc_r();
void mz800_write_format_w(uint8_t data);
void mz800_read_format_w(uint8_t data);
void mz800_display_mode_w(uint8_t data);
void mz800_scroll_border_w(uint8_t data);
uint8_t mz800_ramdisk_r();
void mz800_ramdisk_w(uint8_t data);
void mz800_ramaddr_w(uint8_t data);
void mz800_palette_w(uint8_t data);
void mz800_cgram_w(offs_t offset, uint8_t data);
uint32_t screen_update_mz800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint8_t mz800_z80pio_port_a_r();
void mz800_z80pio_port_a_w(uint8_t data);
void pio_port_a_w(uint8_t data);
void mz800_bankf(address_map &map);
void mz800_io(address_map &map);
void mz800_mem(address_map &map);
required_device_array<msx_general_purpose_port_device, 2> m_joy;
std::unique_ptr<uint8_t[]> m_cgram;
uint16_t m_mz800_ramaddr = 0;
};
#endif // MAME_INCLUDES_MZ700_H

View File

@ -53,7 +53,7 @@ void mz_state::init_mz700()
membank("bankd")->configure_entry(1, m_videoram.get()); // vram
}
void mz_state::init_mz800()
void mz800_state::init_mz800()
{
m_mz700 = false;
m_mz700_mode = true;//false;
@ -97,7 +97,7 @@ void mz_state::machine_start()
m_prev_state = 0;
}
MACHINE_RESET_MEMBER( mz_state, mz700 )
void mz_state::machine_reset()
{
membank("bankr0")->set_entry(1); //rom
membank("bankw0")->set_entry(0); //ram
@ -105,7 +105,7 @@ MACHINE_RESET_MEMBER( mz_state, mz700 )
m_banke->set_bank(1); //devices
}
MACHINE_RESET_MEMBER( mz_state, mz800 )
void mz800_state::machine_reset()
{
// default to mz700 mode or mz1500 won't start.
membank("bankr0")->set_entry(1); //rom
@ -145,7 +145,7 @@ void mz_state::mz700_e008_w(uint8_t data)
BANK SWITCHING
***************************************************************************/
uint8_t mz_state::mz800_bank_0_r()
uint8_t mz800_state::mz800_bank_0_r()
{
//address_space &spc = m_maincpu->space(AS_PROGRAM);
@ -197,7 +197,7 @@ void mz_state::mz700_bank_0_w(uint8_t data)
membank("bankr0")->set_entry(0); // ram
}
void mz_state::mz800_bank_0_w(uint8_t data)
void mz800_state::mz800_bank_0_w(uint8_t data)
{
//address_space &spc = m_maincpu->space(AS_PROGRAM);
@ -207,7 +207,7 @@ void mz_state::mz800_bank_0_w(uint8_t data)
membank("bankr0")->set_entry(0); // ram
}
uint8_t mz_state::mz800_bank_1_r()
uint8_t mz800_state::mz800_bank_1_r()
{
//address_space &spc = m_maincpu->space(AS_PROGRAM);
@ -525,6 +525,14 @@ void mz_state::pio_port_a_w(uint8_t data)
m_cursor_timer->enable(BIT(data, 7));
}
void mz800_state::pio_port_a_w(uint8_t data)
{
mz_state::pio_port_a_w(data);
m_joy[0]->pin_8_w(BIT(data, 4));
m_joy[1]->pin_8_w(BIT(data, 5));
}
void mz_state::pio_port_c_w(uint8_t data)
{
@ -574,11 +582,6 @@ void mz_state::pio_port_c_w(uint8_t data)
Z80 PIO
***************************************************************************/
WRITE_LINE_MEMBER(mz_state::mz800_z80pio_irq)
{
m_maincpu->set_input_line(0, state);
}
WRITE_LINE_MEMBER(mz_state::write_centronics_busy)
{
m_centronics_busy = state;
@ -589,7 +592,7 @@ WRITE_LINE_MEMBER(mz_state::write_centronics_perror)
m_centronics_perror = state;
}
uint8_t mz_state::mz800_z80pio_port_a_r()
uint8_t mz800_state::mz800_z80pio_port_a_r()
{
uint8_t result = 0;
@ -600,14 +603,14 @@ uint8_t mz_state::mz800_z80pio_port_a_r()
return result;
}
void mz_state::mz800_z80pio_port_a_w(uint8_t data)
void mz800_state::mz800_z80pio_port_a_w(uint8_t data)
{
m_centronics->write_init(BIT(data, 6));
m_centronics->write_strobe(BIT(data, 7));
}
/* port CE */
uint8_t mz_state::mz800_crtc_r()
uint8_t mz800_state::mz800_crtc_r()
{
uint8_t data = 0x00;
LOG(1,"mz800_crtc_r",("%02X\n",data),machine());
@ -616,7 +619,7 @@ uint8_t mz_state::mz800_crtc_r()
/* port EA */
uint8_t mz_state::mz800_ramdisk_r()
uint8_t mz800_state::mz800_ramdisk_r()
{
uint8_t *mem = memregion("user1")->base();
uint8_t data = mem[m_mz800_ramaddr];
@ -627,13 +630,13 @@ uint8_t mz_state::mz800_ramdisk_r()
}
/* port CC */
void mz_state::mz800_write_format_w(uint8_t data)
void mz800_state::mz800_write_format_w(uint8_t data)
{
LOG(1,"mz800_write_format_w",("%02X\n", data),machine());
}
/* port CD */
void mz_state::mz800_read_format_w(uint8_t data)
void mz800_state::mz800_read_format_w(uint8_t data)
{
LOG(1,"mz800_read_format_w",("%02X\n", data),machine());
}
@ -644,7 +647,7 @@ void mz_state::mz800_read_format_w(uint8_t data)
* bit 1 1: 4bpp/2bpp 0: 2bpp/1bpp
* bit 0 ???
*/
void mz_state::mz800_display_mode_w(uint8_t data)
void mz800_state::mz800_display_mode_w(uint8_t data)
{
m_mz700_mode = BIT(data, 3);
m_hires_mode = BIT(data, 2);
@ -660,13 +663,13 @@ void mz_state::mz800_display_mode_w(uint8_t data)
}
/* port CF */
void mz_state::mz800_scroll_border_w(uint8_t data)
void mz800_state::mz800_scroll_border_w(uint8_t data)
{
LOG(1,"mz800_scroll_border_w",("%02X\n", data),machine());
}
/* port EA */
void mz_state::mz800_ramdisk_w(uint8_t data)
void mz800_state::mz800_ramdisk_w(uint8_t data)
{
uint8_t *mem = memregion("user1")->base();
LOG(2,"mz800_ramdisk_w",("[%04X] <- %02X\n", m_mz800_ramaddr, data),machine());
@ -676,14 +679,14 @@ void mz_state::mz800_ramdisk_w(uint8_t data)
}
/* port EB */
void mz_state::mz800_ramaddr_w(uint8_t data)
void mz800_state::mz800_ramaddr_w(uint8_t data)
{
m_mz800_ramaddr = (m_maincpu->state_int(Z80_BC) & 0xff00) | (data & 0xff);
LOG(1,"mz800_ramaddr_w",("%04X\n", m_mz800_ramaddr),machine());
}
/* port F0 */
void mz_state::mz800_palette_w(uint8_t data)
void mz800_state::mz800_palette_w(uint8_t data)
{
if (data & 0x40)
{

View File

@ -61,7 +61,7 @@ uint32_t mz_state::screen_update_mz700(screen_device &screen, bitmap_ind16 &bitm
Not working.
***************************************************************************/
uint32_t mz_state::screen_update_mz800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
uint32_t mz800_state::screen_update_mz800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
if (m_mz700_mode)
return screen_update_mz700(screen, bitmap, cliprect);
@ -96,7 +96,7 @@ uint32_t mz_state::screen_update_mz800(screen_device &screen, bitmap_ind16 &bitm
CGRAM
***************************************************************************/
void mz_state::mz800_cgram_w(offs_t offset, uint8_t data)
void mz800_state::mz800_cgram_w(offs_t offset, uint8_t data)
{
m_cgram[offset] = data;
}