mirror of
https://github.com/holub/mame
synced 2025-04-20 23:42:22 +03:00
mz800: Separate from mz700 state class; use MSX-style joystick ports
This commit is contained in:
parent
6139c85344
commit
d5e08d91e7
@ -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 ¢_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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user