removed the simplest 6522 port callbacks [smf]

This commit is contained in:
smf- 2014-01-02 18:08:30 +00:00
parent 838276728a
commit 8f1e301775
21 changed files with 163 additions and 199 deletions

View File

@ -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))

View File

@ -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);

View File

@ -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))

View File

@ -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))

View File

@ -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);

View File

@ -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 */

View File

@ -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))

View File

@ -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))

View File

@ -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)

View File

@ -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

View File

@ -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))

View File

@ -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 )

View File

@ -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))

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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));

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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)
{
}