summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Robbbert <robbbert@users.noreply.github.com>2014-04-29 15:49:14 +0000
committer Robbbert <robbbert@users.noreply.github.com>2014-04-29 15:49:14 +0000
commit26354a5d4bfe2d21901eb7f04d61112c19231518 (patch)
tree3261f28559aa997d30aea241e58867374236ff22 /src
parentcbe9e22672151eb7a6300c3065b5d12a07ffeb61 (diff)
(MESS) kaypro : sio -> dart
Diffstat (limited to 'src')
-rw-r--r--src/mess/drivers/kaypro.c15
-rw-r--r--src/mess/includes/kaypro.h10
-rw-r--r--src/mess/machine/kaypro.c30
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);
}