mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
removed the simplest 6522 port callbacks [smf]
This commit is contained in:
parent
838276728a
commit
8f1e301775
@ -40,15 +40,11 @@ static const ay8910_interface mockingboard_ay8910_interface =
|
||||
|
||||
MACHINE_CONFIG_FRAGMENT( mockingboard )
|
||||
MCFG_DEVICE_ADD(VIA1_TAG, VIA6522, 1022727)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via1_in_a))
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via1_in_b))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_a))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_b))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via1_irq_w))
|
||||
|
||||
MCFG_DEVICE_ADD(VIA2_TAG, VIA6522, 1022727)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via2_in_a))
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via2_in_b))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_a))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_b))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via2_irq_w))
|
||||
@ -64,15 +60,11 @@ MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_FRAGMENT( phasor )
|
||||
MCFG_DEVICE_ADD(VIA1_TAG, VIA6522, 1022727)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via1_in_a))
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via1_in_b))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_a))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_b))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via1_irq_w))
|
||||
|
||||
MCFG_DEVICE_ADD(VIA2_TAG, VIA6522, 1022727)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via2_in_a))
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via2_in_b))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_a))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_b))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via2_irq_w))
|
||||
@ -95,15 +87,11 @@ MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_FRAGMENT( echoplus )
|
||||
MCFG_DEVICE_ADD(VIA1_TAG, VIA6522, 1022727)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via1_in_a))
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via1_in_b))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_a))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_b))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via1_irq_w))
|
||||
|
||||
MCFG_DEVICE_ADD(VIA2_TAG, VIA6522, 1022727)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via2_in_a))
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via2_in_b))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_a))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_b))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via2_irq_w))
|
||||
@ -323,21 +311,11 @@ WRITE_LINE_MEMBER( a2bus_ayboard_device::via2_irq_w )
|
||||
}
|
||||
}
|
||||
|
||||
READ8_MEMBER( a2bus_ayboard_device::via1_in_a )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( a2bus_ayboard_device::via1_out_a )
|
||||
{
|
||||
m_porta1 = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER( a2bus_ayboard_device::via1_in_b )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( a2bus_ayboard_device::via1_out_b )
|
||||
{
|
||||
if (!(data & 4))
|
||||
@ -426,21 +404,11 @@ WRITE8_MEMBER( a2bus_ayboard_device::via1_out_b )
|
||||
}
|
||||
}
|
||||
|
||||
READ8_MEMBER( a2bus_ayboard_device::via2_in_a )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( a2bus_ayboard_device::via2_out_a )
|
||||
{
|
||||
m_porta2 = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER( a2bus_ayboard_device::via2_in_b )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( a2bus_ayboard_device::via2_out_b )
|
||||
{
|
||||
if (!(data & 4))
|
||||
|
@ -32,12 +32,8 @@ public:
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER( via1_irq_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( via2_irq_w );
|
||||
DECLARE_READ8_MEMBER(via1_in_a);
|
||||
DECLARE_READ8_MEMBER(via1_in_b);
|
||||
DECLARE_WRITE8_MEMBER(via1_out_a);
|
||||
DECLARE_WRITE8_MEMBER(via1_out_b);
|
||||
DECLARE_READ8_MEMBER(via2_in_a);
|
||||
DECLARE_READ8_MEMBER(via2_in_b);
|
||||
DECLARE_WRITE8_MEMBER(via2_out_a);
|
||||
DECLARE_WRITE8_MEMBER(via2_out_b);
|
||||
|
||||
|
@ -959,6 +959,9 @@ MACHINE_START_MEMBER(gameplan_state,gameplan)
|
||||
save_item(NAME(m_video_y));
|
||||
save_item(NAME(m_video_command));
|
||||
save_item(NAME(m_video_data));
|
||||
|
||||
/* this is needed for trivia quest */
|
||||
m_via_0->write_pb5(1);
|
||||
}
|
||||
|
||||
|
||||
@ -997,7 +1000,6 @@ static MACHINE_CONFIG_START( gameplan, gameplan_state )
|
||||
|
||||
/* via */
|
||||
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(gameplan_state, vblank_r))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(gameplan_state, video_data_w))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(gameplan_state, gameplan_video_command_w))
|
||||
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, video_command_trigger_w))
|
||||
|
@ -153,6 +153,9 @@ MACHINE_START_MEMBER(gameplan_state,trvquest)
|
||||
save_item(NAME(m_video_y));
|
||||
save_item(NAME(m_video_command));
|
||||
save_item(NAME(m_video_data));
|
||||
|
||||
/* this is needed for trivia quest */
|
||||
m_via_0->write_pb5(1);
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(gameplan_state,trvquest)
|
||||
@ -193,7 +196,6 @@ static MACHINE_CONFIG_START( trvquest, gameplan_state )
|
||||
|
||||
/* via */
|
||||
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(gameplan_state,vblank_r))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(gameplan_state, video_data_w))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(gameplan_state, gameplan_video_command_w))
|
||||
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, video_command_trigger_w))
|
||||
|
@ -89,7 +89,6 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(gameplan_video_command_w);
|
||||
DECLARE_WRITE8_MEMBER(leprechn_video_command_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(video_command_trigger_w);
|
||||
DECLARE_READ8_MEMBER(vblank_r);
|
||||
void gameplan_get_pens( pen_t *pens );
|
||||
void leprechn_get_pens( pen_t *pens );
|
||||
DECLARE_WRITE_LINE_MEMBER(via_irq);
|
||||
|
@ -239,13 +239,6 @@ WRITE_LINE_MEMBER(gameplan_state::via_irq)
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER(gameplan_state::vblank_r)
|
||||
{
|
||||
/* this is needed for trivia quest */
|
||||
return 0x20;
|
||||
}
|
||||
|
||||
|
||||
TIMER_CALLBACK_MEMBER(gameplan_state::via_0_ca1_timer_callback)
|
||||
{
|
||||
/* !VBLANK is connected to CA1 */
|
||||
|
@ -71,7 +71,6 @@ public:
|
||||
, m_crtc(*this, "mc6845")
|
||||
{ }
|
||||
|
||||
DECLARE_READ8_MEMBER(pb_r);
|
||||
DECLARE_WRITE8_MEMBER(kbd_put);
|
||||
DECLARE_READ8_MEMBER(videoram_r);
|
||||
DECLARE_WRITE8_MEMBER(a6809_address_w);
|
||||
@ -86,7 +85,6 @@ public:
|
||||
private:
|
||||
UINT8 m_cass_data[4];
|
||||
bool m_cass_state;
|
||||
UINT8 m_term_data;
|
||||
UINT8 m_video_index;
|
||||
required_device<via6522_device> m_via;
|
||||
required_device<cassette_image_device> m_cass;
|
||||
@ -117,7 +115,14 @@ INPUT_PORTS_END
|
||||
|
||||
MACHINE_RESET_MEMBER( a6809_state, a6809)
|
||||
{
|
||||
m_term_data = 0;
|
||||
m_via->write_pb0(0);
|
||||
m_via->write_pb1(0);
|
||||
m_via->write_pb2(0);
|
||||
m_via->write_pb3(0);
|
||||
m_via->write_pb4(0);
|
||||
m_via->write_pb5(0);
|
||||
m_via->write_pb6(0);
|
||||
m_via->write_pb7(0);
|
||||
}
|
||||
|
||||
static MC6845_UPDATE_ROW( a6809_update_row )
|
||||
@ -188,11 +193,6 @@ WRITE8_MEMBER( a6809_state::a6809_register_w )
|
||||
m_cursor_address = data | (temq & 0x3f00);
|
||||
}
|
||||
|
||||
READ8_MEMBER( a6809_state::pb_r )
|
||||
{
|
||||
return m_term_data | m_cass_data[2];
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( a6809_state::cass_w )
|
||||
{
|
||||
m_cass_state = state;
|
||||
@ -217,16 +217,23 @@ TIMER_DEVICE_CALLBACK_MEMBER(a6809_state::a6809_p)
|
||||
if (cass_ws != m_cass_data[0])
|
||||
{
|
||||
m_cass_data[0] = cass_ws;
|
||||
m_cass_data[2] = ((m_cass_data[1] < 12) ? 128 : 0);
|
||||
m_via->write_pb7(m_cass_data[1] < 12);
|
||||
m_cass_data[1] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( a6809_state::kbd_put )
|
||||
{
|
||||
m_term_data = data & 0x7f;
|
||||
if (data == 8) m_term_data = 0x7f; // allow backspace to work
|
||||
UINT8 d = data & 0x7f;
|
||||
if (d == 8) d = 0x7f; // allow backspace to work
|
||||
|
||||
m_via->write_pb0((d>>0)&1);
|
||||
m_via->write_pb1((d>>1)&1);
|
||||
m_via->write_pb2((d>>2)&1);
|
||||
m_via->write_pb3((d>>3)&1);
|
||||
m_via->write_pb4((d>>4)&1);
|
||||
m_via->write_pb5((d>>5)&1);
|
||||
m_via->write_pb6((d>>6)&1);
|
||||
m_via->write_cb1(1);
|
||||
m_via->write_cb1(0);
|
||||
}
|
||||
@ -259,7 +266,6 @@ static MACHINE_CONFIG_START( a6809, a6809_state )
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD("via", VIA6522, XTAL_4MHz / 4)
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(a6809_state, pb_r))
|
||||
MCFG_VIA6522_CB2_HANDLER(WRITELINE(a6809_state, cass_w))
|
||||
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6809e_device, irq_line))
|
||||
|
||||
|
@ -106,8 +106,6 @@ static MACHINE_CONFIG_START( apple3, apple3_state )
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(apple3_state, apple3_via_0_out_b))
|
||||
|
||||
MCFG_DEVICE_ADD("via6522_1", VIA6522, 2000000)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(apple3_state, apple3_via_1_in_a))
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(apple3_state, apple3_via_1_in_b))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(apple3_state, apple3_via_1_out_a))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(apple3_state, apple3_via_1_out_b))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(apple3_state, apple2_via_1_irq_func))
|
||||
|
@ -28,18 +28,15 @@ class ec65_state : public driver_device
|
||||
public:
|
||||
ec65_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_via_0(*this, VIA6522_0_TAG),
|
||||
m_p_videoram(*this, "videoram"),
|
||||
m_via_0(*this, VIA6522_0_TAG),
|
||||
m_via_1(*this, VIA6522_1_TAG),
|
||||
m_p_videoram(*this, "videoram"),
|
||||
m_maincpu(*this, "maincpu") { }
|
||||
|
||||
DECLARE_READ8_MEMBER(ec65_via_read_a);
|
||||
DECLARE_READ8_MEMBER(ec65_via_read_b);
|
||||
DECLARE_WRITE8_MEMBER(ec65_via_write_a);
|
||||
DECLARE_WRITE8_MEMBER(ec65_via_write_b);
|
||||
DECLARE_WRITE8_MEMBER(kbd_put);
|
||||
UINT8 *m_p_chargen;
|
||||
UINT8 m_keyboard_input;
|
||||
optional_device<via6522_device> m_via_0;
|
||||
optional_device<via6522_device> m_via_1;
|
||||
required_shared_ptr<UINT8> m_p_videoram;
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
@ -94,24 +91,6 @@ static ACIA6850_INTERFACE( ec65_acia_intf )
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
||||
READ8_MEMBER( ec65_state::ec65_via_read_a)
|
||||
{
|
||||
return m_keyboard_input;
|
||||
}
|
||||
|
||||
READ8_MEMBER( ec65_state::ec65_via_read_b)
|
||||
{
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( ec65_state::ec65_via_write_a )
|
||||
{
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( ec65_state::ec65_via_write_b )
|
||||
{
|
||||
}
|
||||
|
||||
/* Input ports */
|
||||
static INPUT_PORTS_START( ec65 )
|
||||
INPUT_PORTS_END
|
||||
@ -120,7 +99,14 @@ WRITE8_MEMBER( ec65_state::kbd_put )
|
||||
{
|
||||
if (data)
|
||||
{
|
||||
m_keyboard_input = data;
|
||||
m_via_0->write_pa0((data>>0)&1);
|
||||
m_via_0->write_pa1((data>>1)&1);
|
||||
m_via_0->write_pa2((data>>2)&1);
|
||||
m_via_0->write_pa3((data>>3)&1);
|
||||
m_via_0->write_pa4((data>>4)&1);
|
||||
m_via_0->write_pa5((data>>5)&1);
|
||||
m_via_0->write_pa6((data>>6)&1);
|
||||
m_via_0->write_pa7((data>>7)&1);
|
||||
m_via_0->write_ca1(1);
|
||||
m_via_0->write_ca1(0);
|
||||
}
|
||||
@ -134,6 +120,14 @@ static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
|
||||
|
||||
void ec65_state::machine_reset()
|
||||
{
|
||||
m_via_1->write_pb0(1);
|
||||
m_via_1->write_pb1(1);
|
||||
m_via_1->write_pb2(1);
|
||||
m_via_1->write_pb3(1);
|
||||
m_via_1->write_pb4(1);
|
||||
m_via_1->write_pb5(1);
|
||||
m_via_1->write_pb6(1);
|
||||
m_via_1->write_pb7(1);
|
||||
}
|
||||
|
||||
void ec65_state::video_start()
|
||||
@ -231,12 +225,8 @@ static MACHINE_CONFIG_START( ec65, ec65_state )
|
||||
MCFG_ACIA6850_ADD(ACIA6850_TAG, ec65_acia_intf)
|
||||
|
||||
MCFG_DEVICE_ADD(VIA6522_0_TAG, VIA6522, XTAL_4MHz / 4)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(ec65_state, ec65_via_read_a))
|
||||
|
||||
MCFG_DEVICE_ADD(VIA6522_1_TAG, VIA6522, XTAL_4MHz / 4)
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(ec65_state, ec65_via_read_b))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(ec65_state, ec65_via_write_a))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(ec65_state, ec65_via_write_b))
|
||||
|
||||
MCFG_DEVICE_ADD(ACIA6551_TAG, MOS6551, XTAL_1_8432MHz)
|
||||
MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
|
||||
|
@ -173,7 +173,6 @@ static MACHINE_CONFIG_START( lisa, lisa_state )
|
||||
|
||||
/* via */
|
||||
MCFG_DEVICE_ADD("via6522_0", VIA6522, 500000)
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(lisa_state, COPS_via_in_b))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(lisa_state, COPS_via_out_a))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(lisa_state, COPS_via_out_b))
|
||||
MCFG_VIA6522_CA1_HANDLER(WRITELINE(lisa_state, COPS_via_out_ca2))
|
||||
@ -181,7 +180,6 @@ static MACHINE_CONFIG_START( lisa, lisa_state )
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(lisa_state, COPS_via_irq_func))
|
||||
|
||||
MCFG_DEVICE_ADD("via6522_1", VIA6522, 500000)
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(lisa_state, parallel_via_in_b))
|
||||
|
||||
MCFG_SCC8530_ADD("scc", 7833600, line_cb_t(FUNC(lisa_state::set_scc_interrupt), static_cast<lisa_state *>(owner)))
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -260,7 +260,6 @@ static MACHINE_CONFIG_START( microtan, microtan_state )
|
||||
/* via */
|
||||
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(microtan_state, via_0_in_a))
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(microtan_state, via_0_in_b))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(microtan_state, via_0_out_a))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(microtan_state, via_0_out_b))
|
||||
MCFG_VIA6522_CA2_HANDLER(WRITELINE(microtan_state, via_0_out_ca2))
|
||||
@ -268,8 +267,6 @@ static MACHINE_CONFIG_START( microtan, microtan_state )
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(microtan_state, via_0_irq))
|
||||
|
||||
MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(microtan_state, via_1_in_a))
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(microtan_state, via_1_in_b))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(microtan_state, via_1_out_a))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(microtan_state, via_1_out_b))
|
||||
MCFG_VIA6522_CA2_HANDLER(WRITELINE(microtan_state, via_1_out_ca2))
|
||||
|
@ -55,13 +55,16 @@ class mirage_state : public driver_device
|
||||
{
|
||||
public:
|
||||
mirage_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_fdc(*this, "wd1772")
|
||||
{ }
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_fdc(*this, "wd1772"),
|
||||
m_via(*this, "via6522")
|
||||
{
|
||||
}
|
||||
|
||||
required_device<m6809e_device> m_maincpu;
|
||||
required_device<wd1772_t> m_fdc;
|
||||
required_device<via6522_device> m_via;
|
||||
|
||||
virtual void machine_reset();
|
||||
|
||||
@ -76,8 +79,6 @@ public:
|
||||
UINT32 screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE8_MEMBER(mirage_via_write_porta);
|
||||
DECLARE_WRITE8_MEMBER(mirage_via_write_portb);
|
||||
DECLARE_READ8_MEMBER(mirage_via_read_porta);
|
||||
DECLARE_READ8_MEMBER(mirage_via_read_portb);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(acia_irq_w);
|
||||
|
||||
@ -220,20 +221,6 @@ WRITE8_MEMBER(mirage_state::mirage_via_write_portb)
|
||||
}
|
||||
}
|
||||
|
||||
// port A: front panel
|
||||
READ8_MEMBER(mirage_state::mirage_via_read_porta)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// port B:
|
||||
// bit 6: IN FDC disk ready
|
||||
// bit 5: IN 5503 sync (?)
|
||||
READ8_MEMBER(mirage_state::mirage_via_read_portb)
|
||||
{
|
||||
return 0x60;
|
||||
}
|
||||
|
||||
static ACIA6850_INTERFACE( mirage_acia6850_interface )
|
||||
{
|
||||
0, // tx clock
|
||||
@ -255,8 +242,6 @@ static MACHINE_CONFIG_START( mirage, mirage_state )
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||
|
||||
MCFG_DEVICE_ADD("via6522", VIA6522, 1000000)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(mirage_state, mirage_via_read_porta))
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(mirage_state, mirage_via_read_portb))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mirage_state, mirage_via_write_porta))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mirage_state, mirage_via_write_portb))
|
||||
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6809e_device, irq_line))
|
||||
@ -292,6 +277,28 @@ DRIVER_INIT_MEMBER(mirage_state,mirage)
|
||||
|
||||
m_l_hi = m_r_hi = 9;
|
||||
m_l_segs = m_r_segs = 0;
|
||||
|
||||
// port A: front panel
|
||||
m_via->write_pa0(0);
|
||||
m_via->write_pa1(0);
|
||||
m_via->write_pa2(0);
|
||||
m_via->write_pa3(0);
|
||||
m_via->write_pa4(0);
|
||||
m_via->write_pa5(0);
|
||||
m_via->write_pa6(0);
|
||||
m_via->write_pa7(0);
|
||||
|
||||
// port B:
|
||||
// bit 6: IN FDC disk ready
|
||||
// bit 5: IN 5503 sync (?)
|
||||
m_via->write_pb0(0);
|
||||
m_via->write_pb1(0);
|
||||
m_via->write_pb2(0);
|
||||
m_via->write_pb3(0);
|
||||
m_via->write_pb4(0);
|
||||
m_via->write_pb5(1);
|
||||
m_via->write_pb6(1);
|
||||
m_via->write_pb7(0);
|
||||
}
|
||||
|
||||
CONS( 1984, enmirage, 0, 0, mirage, mirage, mirage_state, mirage, "Ensoniq", "Ensoniq Mirage", GAME_NOT_WORKING )
|
||||
|
@ -332,7 +332,6 @@ static MACHINE_CONFIG_START( nimbus, rmnimbus_state )
|
||||
MCFG_ER59256_ADD(ER59256_TAG)
|
||||
|
||||
MCFG_DEVICE_ADD(VIA_TAG, VIA6522, 1000000)
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(rmnimbus_state,nimbus_via_read_portb))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(CENTRONICS_TAG, centronics_device, write))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(rmnimbus_state,nimbus_via_write_portb))
|
||||
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(CENTRONICS_TAG, centronics_device, strobe_w))
|
||||
|
@ -27,7 +27,14 @@ class apple3_state : public apple2_state
|
||||
{
|
||||
public:
|
||||
apple3_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: apple2_state(mconfig, type, tag) { }
|
||||
: apple2_state(mconfig, type, tag),
|
||||
m_via_0(*this, "via6522_0"),
|
||||
m_via_1(*this, "via6522_1")
|
||||
{
|
||||
}
|
||||
|
||||
required_device<via6522_device> m_via_0;
|
||||
required_device<via6522_device> m_via_1;
|
||||
|
||||
UINT32 m_flags;
|
||||
UINT8 m_via_0_a;
|
||||
@ -61,8 +68,6 @@ public:
|
||||
DECLARE_VIDEO_START(apple3);
|
||||
UINT32 screen_update_apple3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(apple3_interrupt);
|
||||
DECLARE_READ8_MEMBER(apple3_via_1_in_a);
|
||||
DECLARE_READ8_MEMBER(apple3_via_1_in_b);
|
||||
DECLARE_WRITE8_MEMBER(apple3_via_0_out_a);
|
||||
DECLARE_WRITE8_MEMBER(apple3_via_0_out_b);
|
||||
DECLARE_WRITE8_MEMBER(apple3_via_1_out_a);
|
||||
|
@ -207,10 +207,8 @@ public:
|
||||
TIMER_CALLBACK_MEMBER(set_COPS_ready);
|
||||
DECLARE_WRITE8_MEMBER(COPS_via_out_a);
|
||||
DECLARE_WRITE_LINE_MEMBER(COPS_via_out_ca2);
|
||||
DECLARE_READ8_MEMBER(COPS_via_in_b);
|
||||
DECLARE_WRITE8_MEMBER(COPS_via_out_b);
|
||||
DECLARE_WRITE_LINE_MEMBER(COPS_via_out_cb2);
|
||||
DECLARE_READ8_MEMBER(parallel_via_in_b);
|
||||
|
||||
void field_interrupts();
|
||||
void set_parity_error_pending(int value);
|
||||
|
@ -67,13 +67,10 @@ public:
|
||||
TIMER_CALLBACK_MEMBER(microtan_read_cassette);
|
||||
TIMER_CALLBACK_MEMBER(microtan_pulse_nmi);
|
||||
DECLARE_READ8_MEMBER(via_0_in_a);
|
||||
DECLARE_READ8_MEMBER(via_0_in_b);
|
||||
DECLARE_WRITE8_MEMBER(via_0_out_a);
|
||||
DECLARE_WRITE8_MEMBER(via_0_out_b);
|
||||
DECLARE_WRITE_LINE_MEMBER(via_0_out_ca2);
|
||||
DECLARE_WRITE_LINE_MEMBER(via_0_out_cb2);
|
||||
DECLARE_READ8_MEMBER(via_1_in_a);
|
||||
DECLARE_READ8_MEMBER(via_1_in_b);
|
||||
DECLARE_WRITE8_MEMBER(via_1_out_a);
|
||||
DECLARE_WRITE8_MEMBER(via_1_out_b);
|
||||
DECLARE_WRITE_LINE_MEMBER(via_1_out_ca2);
|
||||
|
@ -396,7 +396,8 @@ public:
|
||||
m_ay8910(*this, AY8910_TAG),
|
||||
m_scsibus(*this, SCSIBUS_TAG ":host"),
|
||||
m_ram(*this, RAM_TAG),
|
||||
m_eeprom(*this, ER59256_TAG)
|
||||
m_eeprom(*this, ER59256_TAG),
|
||||
m_via(*this, VIA_TAG)
|
||||
{
|
||||
}
|
||||
|
||||
@ -406,6 +407,7 @@ public:
|
||||
required_device<scsicb_device> m_scsibus;
|
||||
required_device<ram_device> m_ram;
|
||||
required_device<er59256_device> m_eeprom;
|
||||
required_device<via6522_device> m_via;
|
||||
|
||||
UINT32 m_debug_machine;
|
||||
// i186_state m_i186;
|
||||
@ -468,7 +470,6 @@ public:
|
||||
DECLARE_READ16_MEMBER(sio_serial_receive);
|
||||
DECLARE_WRITE_LINE_MEMBER(nimbus_fdc_intrq_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(nimbus_fdc_drq_w);
|
||||
DECLARE_READ8_MEMBER(nimbus_via_read_portb);
|
||||
DECLARE_WRITE8_MEMBER(nimbus_via_write_portb);
|
||||
DECLARE_WRITE_LINE_MEMBER(nimbus_via_irq_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(nimbus_ack_w);
|
||||
|
@ -249,11 +249,9 @@ WRITE8_MEMBER(apple3_state::apple3_c0xx_w)
|
||||
|
||||
INTERRUPT_GEN_MEMBER(apple3_state::apple3_interrupt)
|
||||
{
|
||||
via6522_device *via_1 = machine().device<via6522_device>("via6522_1");
|
||||
|
||||
via_1->write_ca2((AY3600_keydata_strobe_r(machine()) & 0x80) ? 1 : 0);
|
||||
via_1->write_cb1(machine().primary_screen->vblank());
|
||||
via_1->write_cb2(machine().primary_screen->vblank());
|
||||
m_via_1->write_ca2((AY3600_keydata_strobe_r(machine()) & 0x80) ? 1 : 0);
|
||||
m_via_1->write_cb1(machine().primary_screen->vblank());
|
||||
m_via_1->write_cb2(machine().primary_screen->vblank());
|
||||
}
|
||||
|
||||
|
||||
@ -444,11 +442,8 @@ void apple3_state::apple3_update_memory()
|
||||
|
||||
/* reinstall VIA handlers */
|
||||
{
|
||||
via6522_device *via_0 = machine().device<via6522_device>("via6522_0");
|
||||
via6522_device *via_1 = machine().device<via6522_device>("via6522_1");
|
||||
|
||||
space.install_readwrite_handler(0xFFD0, 0xFFDF, 0, 0, read8_delegate(FUNC(via6522_device::read),via_0), write8_delegate(FUNC(via6522_device::write),via_0));
|
||||
space.install_readwrite_handler(0xFFE0, 0xFFEF, 0, 0, read8_delegate(FUNC(via6522_device::read),via_1), write8_delegate(FUNC(via6522_device::write),via_1));
|
||||
space.install_readwrite_handler(0xFFD0, 0xFFDF, 0, 0, read8_delegate(FUNC(via6522_device::read),m_via_0.target()), write8_delegate(FUNC(via6522_device::write),m_via_0.target()));
|
||||
space.install_readwrite_handler(0xFFE0, 0xFFEF, 0, 0, read8_delegate(FUNC(via6522_device::read),m_via_1.target()), write8_delegate(FUNC(via6522_device::write),m_via_1.target()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -464,10 +459,6 @@ void apple3_state::apple3_via_out(UINT8 *var, UINT8 data)
|
||||
}
|
||||
|
||||
|
||||
/* these are here to appease the Apple /// confidence tests */
|
||||
READ8_MEMBER(apple3_state::apple3_via_1_in_a){ return ~0; }
|
||||
READ8_MEMBER(apple3_state::apple3_via_1_in_b){ return ~0; }
|
||||
|
||||
WRITE8_MEMBER(apple3_state::apple3_via_0_out_a)
|
||||
{
|
||||
apple3_via_out(&m_via_0_a, data);
|
||||
@ -690,6 +681,26 @@ DRIVER_INIT_MEMBER(apple3_state,apple3)
|
||||
m_via_0_a = ~0;
|
||||
m_via_1_a = ~0;
|
||||
m_via_1_irq = 0;
|
||||
|
||||
/* these are here to appease the Apple /// confidence tests */
|
||||
m_via_1->write_pa0(1);
|
||||
m_via_1->write_pa1(1);
|
||||
m_via_1->write_pa2(1);
|
||||
m_via_1->write_pa3(1);
|
||||
m_via_1->write_pa4(1);
|
||||
m_via_1->write_pa5(1);
|
||||
m_via_1->write_pa6(1);
|
||||
m_via_1->write_pa7(1);
|
||||
|
||||
m_via_1->write_pb0(1);
|
||||
m_via_1->write_pb1(1);
|
||||
m_via_1->write_pb2(1);
|
||||
m_via_1->write_pb3(1);
|
||||
m_via_1->write_pb4(1);
|
||||
m_via_1->write_pb5(1);
|
||||
m_via_1->write_pb6(1);
|
||||
m_via_1->write_pb7(1);
|
||||
|
||||
apple3_update_memory();
|
||||
|
||||
m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(apple3_state::apple3_opbase), this));
|
||||
|
@ -387,6 +387,7 @@ TIMER_CALLBACK_MEMBER(lisa_state::read_COPS_command)
|
||||
address_space &space = m_maincpu->space(AS_PROGRAM);
|
||||
|
||||
m_COPS_Ready = 0;
|
||||
m_via0->write_pb6(m_COPS_Ready);
|
||||
|
||||
/*logerror("read_COPS_command : trying to send data to VIA\n");*/
|
||||
COPS_send_data_if_possible();
|
||||
@ -557,6 +558,7 @@ TIMER_CALLBACK_MEMBER(lisa_state::read_COPS_command)
|
||||
TIMER_CALLBACK_MEMBER(lisa_state::set_COPS_ready)
|
||||
{
|
||||
m_COPS_Ready = 1;
|
||||
m_via0->write_pb6(m_COPS_Ready);
|
||||
|
||||
/* impulsion width : +/- 20us */
|
||||
machine().scheduler().timer_set(attotime::from_usec(20), timer_expired_delegate(FUNC(lisa_state::read_COPS_command),this));
|
||||
@ -620,6 +622,7 @@ void lisa_state::plug_keyboard()
|
||||
void lisa_state::init_COPS()
|
||||
{
|
||||
m_COPS_Ready = 0;
|
||||
m_via0->write_pb6(m_COPS_Ready);
|
||||
|
||||
reset_COPS();
|
||||
}
|
||||
@ -663,18 +666,6 @@ WRITE_LINE_MEMBER(lisa_state::COPS_via_out_ca2)
|
||||
CB1 : not used
|
||||
CB2 (O) : sound output
|
||||
*/
|
||||
READ8_MEMBER(lisa_state::COPS_via_in_b)
|
||||
{
|
||||
int val = 0;
|
||||
|
||||
if (m_COPS_Ready)
|
||||
val |= 0x40;
|
||||
|
||||
if (m_FDIR)
|
||||
val |= 0x10;
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(lisa_state::COPS_via_out_b)
|
||||
{
|
||||
@ -734,24 +725,6 @@ void lisa_state::COPS_via_irq_func(int val)
|
||||
CB1 : not used
|
||||
CB2 (I) : current parity latch value
|
||||
*/
|
||||
READ8_MEMBER(lisa_state::parallel_via_in_b)
|
||||
{
|
||||
int val = 0;
|
||||
|
||||
if (m_DISK_DIAG)
|
||||
val |= 0x40;
|
||||
|
||||
/* tell there is no hard disk : */
|
||||
val |= 0x1;
|
||||
|
||||
/* keep busy high to work around a bug??? */
|
||||
//val |= 0x2;
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1010,6 +983,18 @@ void lisa_state::machine_reset()
|
||||
m_video_address_latch = 0;
|
||||
m_videoram_ptr = (UINT16 *) m_ram_ptr;
|
||||
|
||||
m_FDIR = 0;
|
||||
m_via0->write_pb4(m_FDIR);
|
||||
|
||||
/* tell there is no hard disk : */
|
||||
m_via1->write_pb0(1);
|
||||
|
||||
/* keep busy high to work around a bug??? */
|
||||
//m_via1->write_pb1(1);
|
||||
|
||||
m_DISK_DIAG = 0;
|
||||
m_via1->write_pb6(m_DISK_DIAG);
|
||||
|
||||
/* reset COPS keyboard/mouse controller */
|
||||
init_COPS();
|
||||
|
||||
@ -1177,9 +1162,11 @@ void lisa_state::lisa_fdc_ttl_glue_access(offs_t offset)
|
||||
break;
|
||||
case 6:
|
||||
m_DISK_DIAG = offset & 1;
|
||||
m_via1->write_pb6(m_DISK_DIAG);
|
||||
break;
|
||||
case 7:
|
||||
m_FDIR = offset & 1; /* Interrupt request to 68k */
|
||||
m_via0->write_pb4(m_FDIR);
|
||||
field_interrupts();
|
||||
break;
|
||||
}
|
||||
|
@ -162,13 +162,6 @@ READ8_MEMBER(microtan_state::via_0_in_a)
|
||||
return data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(microtan_state::via_0_in_b)
|
||||
{
|
||||
int data = 0xff;
|
||||
LOG(("microtan_via_0_in_b %02X\n", data));
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(microtan_state::via_0_out_a)
|
||||
{
|
||||
LOG(("microtan_via_0_out_a %02X\n", data));
|
||||
@ -201,19 +194,6 @@ WRITE_LINE_MEMBER(microtan_state::via_0_irq)
|
||||
/**************************************************************
|
||||
* VIA callback functions for VIA #1
|
||||
**************************************************************/
|
||||
READ8_MEMBER(microtan_state::via_1_in_a)
|
||||
{
|
||||
int data = 0xff;
|
||||
LOG(("microtan_via_1_in_a %02X\n", data));
|
||||
return data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(microtan_state::via_1_in_b)
|
||||
{
|
||||
int data = 0xff;
|
||||
LOG(("microtan_via_1_in_b %02X\n", data));
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(microtan_state::via_1_out_a)
|
||||
{
|
||||
@ -492,13 +472,39 @@ DRIVER_INIT_MEMBER(microtan_state,microtan)
|
||||
m_timer = timer_alloc(TIMER_READ_CASSETTE);
|
||||
|
||||
m_via6522_0->write_ca1(1);
|
||||
m_via6522_0->write_cb1(1);
|
||||
m_via6522_0->write_ca2(1);
|
||||
|
||||
m_via6522_0->write_pb0(1);
|
||||
m_via6522_0->write_pb1(1);
|
||||
m_via6522_0->write_pb2(1);
|
||||
m_via6522_0->write_pb3(1);
|
||||
m_via6522_0->write_pb4(1);
|
||||
m_via6522_0->write_pb5(1);
|
||||
m_via6522_0->write_pb6(1);
|
||||
m_via6522_0->write_pb7(1);
|
||||
m_via6522_0->write_cb1(1);
|
||||
m_via6522_0->write_cb2(1);
|
||||
|
||||
m_via6522_1->write_pa0(1);
|
||||
m_via6522_1->write_pa1(1);
|
||||
m_via6522_1->write_pa2(1);
|
||||
m_via6522_1->write_pa3(1);
|
||||
m_via6522_1->write_pa4(1);
|
||||
m_via6522_1->write_pa5(1);
|
||||
m_via6522_1->write_pa6(1);
|
||||
m_via6522_1->write_pa7(1);
|
||||
m_via6522_1->write_ca1(1);
|
||||
m_via6522_1->write_cb1(1);
|
||||
m_via6522_1->write_ca2(1);
|
||||
|
||||
m_via6522_1->write_pb0(1);
|
||||
m_via6522_1->write_pb1(1);
|
||||
m_via6522_1->write_pb2(1);
|
||||
m_via6522_1->write_pb3(1);
|
||||
m_via6522_1->write_pb4(1);
|
||||
m_via6522_1->write_pb5(1);
|
||||
m_via6522_1->write_pb6(1);
|
||||
m_via6522_1->write_pb7(1);
|
||||
m_via6522_1->write_cb1(1);
|
||||
m_via6522_1->write_cb2(1);
|
||||
}
|
||||
|
||||
|
@ -1242,6 +1242,15 @@ void rmnimbus_state::machine_reset()
|
||||
|
||||
DRIVER_INIT_MEMBER(rmnimbus_state,nimbus)
|
||||
{
|
||||
/* USER VIA 6522 port B is connected to the BBC user port */
|
||||
m_via->write_pb0(1);
|
||||
m_via->write_pb1(1);
|
||||
m_via->write_pb2(1);
|
||||
m_via->write_pb3(1);
|
||||
m_via->write_pb4(1);
|
||||
m_via->write_pb5(1);
|
||||
m_via->write_pb6(1);
|
||||
m_via->write_pb7(1);
|
||||
}
|
||||
|
||||
void rmnimbus_state::machine_start()
|
||||
@ -2970,11 +2979,6 @@ collector output only. It usially acts as the printer strobe line.
|
||||
***********************************************************************/
|
||||
|
||||
/* USER VIA 6522 port B is connected to the BBC user port */
|
||||
READ8_MEMBER(rmnimbus_state::nimbus_via_read_portb)
|
||||
{
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(rmnimbus_state::nimbus_via_write_portb)
|
||||
{
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user