diff options
author | 2014-04-29 15:49:14 +0000 | |
---|---|---|
committer | 2014-04-29 15:49:14 +0000 | |
commit | 26354a5d4bfe2d21901eb7f04d61112c19231518 (patch) | |
tree | 3261f28559aa997d30aea241e58867374236ff22 /src | |
parent | cbe9e22672151eb7a6300c3065b5d12a07ffeb61 (diff) |
(MESS) kaypro : sio -> dart
Diffstat (limited to 'src')
-rw-r--r-- | src/mess/drivers/kaypro.c | 15 | ||||
-rw-r--r-- | src/mess/includes/kaypro.h | 10 | ||||
-rw-r--r-- | src/mess/machine/kaypro.c | 30 |
3 files changed, 16 insertions, 39 deletions
diff --git a/src/mess/drivers/kaypro.c b/src/mess/drivers/kaypro.c index 53fa0ee863e..e6bd3a08492 100644 --- a/src/mess/drivers/kaypro.c +++ b/src/mess/drivers/kaypro.c @@ -62,7 +62,7 @@ static ADDRESS_MAP_START( kaypro2x_io, AS_IO, 8, kaypro_state ) AM_RANGE(0x00, 0x03) AM_DEVWRITE("brg", com8116_device, str_w) AM_RANGE(0x04, 0x07) AM_READWRITE(kaypro_sio_r, kaypro_sio_w) AM_RANGE(0x08, 0x0b) AM_DEVWRITE("brg", com8116_device, stt_w) - AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("z80sio_2x", z80sio_device, read, write) + AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("z80sio_2x", z80dart_device, ba_cd_r, ba_cd_w) AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("fdc", fd1793_t, read, write) AM_RANGE(0x14, 0x17) AM_READWRITE(kaypro2x_system_port_r,kaypro2x_system_port_w) AM_RANGE(0x18, 0x1b) AM_DEVWRITE("cent_data_out", output_latch_device, write) @@ -229,16 +229,17 @@ static MACHINE_CONFIG_START( kayproii, kaypro_state ) MCFG_DEVICE_ADD("brg", COM8116, XTAL_5_0688MHz) // WD1943, SMC8116 - MCFG_DEVICE_ADD("z80pio_g", Z80PIO, 2500000) + MCFG_DEVICE_ADD("z80pio_g", Z80PIO, XTAL_20MHz / 8) MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_Z80PIO_OUT_PA_CB(DEVWRITE8("cent_data_out", output_latch_device, write)) - MCFG_DEVICE_ADD("z80pio_s", Z80PIO, 2500000) + MCFG_DEVICE_ADD("z80pio_s", Z80PIO, XTAL_20MHz / 8) MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_Z80PIO_IN_PA_CB(READ8(kaypro_state, pio_system_r)) MCFG_Z80PIO_OUT_PA_CB(WRITE8(kaypro_state, kayproii_pio_system_w)) - MCFG_Z80SIO_ADD( "z80sio", 4800, kaypro_sio_intf ) /* start at 300 baud */ + MCFG_Z80SIO0_ADD("z80sio", XTAL_20MHz / 8, 0, 0, 0, 0) + MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_FD1793x_ADD("fdc", XTAL_20MHz / 20) MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(kaypro_state, fdc_intrq_w)) @@ -296,9 +297,11 @@ static MACHINE_CONFIG_START( kaypro2x, kaypro_state ) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") + MCFG_Z80SIO0_ADD("z80sio", XTAL_16MHz / 4, 0, 0, 0, 0) + MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + MCFG_Z80SIO0_ADD("z80sio_2x", XTAL_16MHz / 4, 0, 0, 0, 0) /* extra sio for modem and printer */ + MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_DEVICE_ADD("brg", COM8116, XTAL_5_0688MHz) // WD1943, SMC8116 - MCFG_Z80SIO_ADD( "z80sio", 4800, kaypro_sio_intf ) - MCFG_Z80SIO_ADD( "z80sio_2x", 4800, kaypro_sio_intf ) /* extra sio for modem and printer */ MCFG_FD1793x_ADD("fdc", XTAL_16MHz / 16) MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(kaypro_state, fdc_intrq_w)) MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(kaypro_state, fdc_drq_w)) diff --git a/src/mess/includes/kaypro.h b/src/mess/includes/kaypro.h index 166c5b5af4b..9777585065c 100644 --- a/src/mess/includes/kaypro.h +++ b/src/mess/includes/kaypro.h @@ -2,7 +2,7 @@ #include "cpu/z80/z80.h" #include "cpu/z80/z80daisy.h" #include "machine/z80pio.h" -#include "machine/z80sio.h" +#include "machine/z80dart.h" #include "machine/com8116.h" #include "bus/centronics/ctronics.h" #include "imagedev/snapquik.h" @@ -90,8 +90,8 @@ private: required_device<cpu_device> m_maincpu; optional_device<z80pio_device> m_pio_g; optional_device<z80pio_device> m_pio_s; - required_device<z80sio_device> m_sio; - optional_device<z80sio_device> m_sio2x; + required_device<z80dart_device> m_sio; + optional_device<z80dart_device> m_sio2x; required_device<centronics_device> m_centronics; required_device<fd1793_t> m_fdc; required_device<floppy_connector> m_floppy0; @@ -112,10 +112,6 @@ void kay_kbd_d_w( running_machine &machine, UINT8 data ); INPUT_PORTS_EXTERN( kay_kbd ); -/*----------- defined in machine/kaypro.c -----------*/ - -extern const z80sio_interface kaypro_sio_intf; - /*----------- defined in video/kaypro.c -----------*/ MC6845_UPDATE_ROW( kaypro2x_update_row ); diff --git a/src/mess/machine/kaypro.c b/src/mess/machine/kaypro.c index 83ee20bbba9..b427d37ff6a 100644 --- a/src/mess/machine/kaypro.c +++ b/src/mess/machine/kaypro.c @@ -162,45 +162,23 @@ WRITE8_MEMBER( kaypro_state::kaypro2x_system_port_w ) FFh 19200 */ -const z80sio_interface kaypro_sio_intf = -{ - DEVCB_DRIVER_LINE_MEMBER(kaypro_state,kaypro_interrupt), /* interrupt handler */ - DEVCB_NULL, /* DTR changed handler */ - DEVCB_NULL, /* RTS changed handler */ - DEVCB_NULL, /* BREAK changed handler */ - DEVCB_NULL, /* transmit handler - which channel is this for? */ - DEVCB_NULL /* receive handler - which channel is this for? */ -}; - READ8_MEMBER(kaypro_state::kaypro_sio_r) { - if (!offset) - return dynamic_cast<z80sio_device*>(machine().device("z80sio"))->data_read(0); - else if (offset == 1) -// return z80sio_d_r(machine().device("z80sio"), 1); return kay_kbd_d_r(machine()); else - if (offset == 2) - return dynamic_cast<z80sio_device*>(machine().device("z80sio"))->control_read(0); - else -// return z80sio_c_r(machine().device("z80sio"), 1); + if (offset == 3) return kay_kbd_c_r(machine()); + else + return m_sio->cd_ba_r(space, offset); } WRITE8_MEMBER(kaypro_state::kaypro_sio_w) { - if (!offset) - dynamic_cast<z80sio_device*>(machine().device("z80sio"))->data_write(0, data); - else if (offset == 1) -// z80sio_d_w(machine().device("z80sio"), 1, data); kay_kbd_d_w(machine(), data); else - if (offset == 2) - dynamic_cast<z80sio_device*>(machine().device("z80sio"))->control_write(0, data); - else - dynamic_cast<z80sio_device*>(machine().device("z80sio"))->control_write(1, data); + m_sio->cd_ba_w(space, offset, data); } |