From 35734794841df3a0e0b431572b7abf4e3d72cff4 Mon Sep 17 00:00:00 2001 From: AJR Date: Sat, 23 Sep 2017 01:54:01 -0400 Subject: sun1: Use Am9513 (nw) --- src/mame/drivers/sun1.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/sun1.cpp b/src/mame/drivers/sun1.cpp index a9bd3436faf..a43554c4cc0 100644 --- a/src/mame/drivers/sun1.cpp +++ b/src/mame/drivers/sun1.cpp @@ -52,6 +52,7 @@ #include "emu.h" #include "bus/rs232/rs232.h" #include "cpu/m68000/m68000.h" +#include "machine/am9513.h" #include "machine/z80sio.h" @@ -79,8 +80,8 @@ static ADDRESS_MAP_START(sun1_mem, AS_PROGRAM, 16, sun1_state) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("p_ram") // 512 KB RAM / ROM at boot AM_RANGE(0x00200000, 0x00203fff) AM_ROM AM_REGION("user1",0) - AM_RANGE(0x00600000, 0x006000ff) AM_DEVREADWRITE8("iouart", upd7201_new_device, ba_cd_r, ba_cd_w, 0xff00) - AM_RANGE(0x00800000, 0x008000ff) AM_UNMAP // AM9513 timer at 5MHz + AM_RANGE(0x00600000, 0x00600007) AM_MIRROR(0x1ffff8) AM_DEVREADWRITE8("iouart", upd7201_new_device, ba_cd_r, ba_cd_w, 0xff00) + AM_RANGE(0x00800000, 0x00800003) AM_MIRROR(0x1ffffc) AM_DEVREADWRITE("timer", am9513_device, read16, write16) AM_RANGE(0x00a00000, 0x00bfffff) AM_UNMAP // page map AM_RANGE(0x00c00000, 0x00dfffff) AM_UNMAP // segment map AM_RANGE(0x00e00000, 0x00ffffff) AM_UNMAP // context register @@ -106,8 +107,17 @@ static MACHINE_CONFIG_START( sun1 ) MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) MCFG_CPU_PROGRAM_MAP(sun1_mem) - // UART is actually clocked by AM9513 (channel 4 = port A, channel 5 = port B) - MCFG_UPD7201_ADD("iouart", 0, 9600*16, 9600*16, 9600*16, 9600*16) + MCFG_DEVICE_ADD("timer", AM9513, 3993600) // actually XTAL_10MHz / 2 + MCFG_AM9513_FOUT_CALLBACK(DEVWRITELINE("timer", am9513_device, gate1_w)) + MCFG_AM9513_OUT1_CALLBACK(NOOP) // Watchdog; generates BERR/Reset + MCFG_AM9513_OUT2_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_6)) // User timer + MCFG_AM9513_OUT3_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_7)) // Refresh timer + MCFG_AM9513_OUT4_CALLBACK(DEVWRITELINE("iouart", upd7201_new_device, rxca_w)) + MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("iouart", upd7201_new_device, txca_w)) + MCFG_AM9513_OUT5_CALLBACK(DEVWRITELINE("iouart", upd7201_new_device, rxcb_w)) + MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("iouart", upd7201_new_device, txcb_w)) + + MCFG_UPD7201_ADD("iouart", 0, 0, 0, 0, 0) MCFG_Z80SIO_OUT_TXDA_CB(DEVWRITELINE("rs232a", rs232_port_device, write_txd)) MCFG_Z80SIO_OUT_DTRA_CB(DEVWRITELINE("rs232a", rs232_port_device, write_dtr)) MCFG_Z80SIO_OUT_RTSA_CB(DEVWRITELINE("rs232a", rs232_port_device, write_rts)) -- cgit v1.2.3