mirror of
https://github.com/holub/mame
synced 2025-10-05 16:50:57 +03:00
(nw) moved some drivers from z80dart.h to z80sio.h
This commit is contained in:
parent
4954ab83f2
commit
c7e9183b58
@ -15,7 +15,7 @@
|
||||
#include "cpu/z80/z80daisy.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/z80pio.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/z80dma.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
#include "machine/clock.h"
|
||||
@ -93,9 +93,9 @@ static ADDRESS_MAP_START(altos5_io, AS_IO, 8, altos5_state)
|
||||
AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("ctc", z80ctc_device, read, write)
|
||||
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("pio1", z80pio_device, read, write)
|
||||
AM_RANGE(0x14, 0x17) AM_WRITE(port14_w)
|
||||
AM_RANGE(0x1c, 0x1f) AM_DEVREADWRITE("dart", z80dart_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x1c, 0x1f) AM_DEVREADWRITE("dart", z80sio_device, ba_cd_r, ba_cd_w)
|
||||
//AM_RANGE(0x20, 0x23) // Hard drive
|
||||
AM_RANGE(0x2c, 0x2f) AM_DEVREADWRITE("sio", z80sio0_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x2c, 0x2f) AM_DEVREADWRITE("sio", z80sio_device, ba_cd_r, ba_cd_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/* Input ports */
|
||||
@ -375,34 +375,34 @@ static MACHINE_CONFIG_START( altos5 )
|
||||
MCFG_DEVICE_ADD("pio1", Z80PIO, XTAL_8MHz / 2)
|
||||
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("dart", Z80DART, XTAL_8MHz / 2)
|
||||
MCFG_DEVICE_ADD("dart", Z80SIO, XTAL_8MHz / 2)
|
||||
// Channel A - console #3
|
||||
// Channel B - printer
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("sio", Z80SIO0, XTAL_8MHz / 2)
|
||||
MCFG_DEVICE_ADD("sio", Z80SIO, XTAL_8MHz / 2)
|
||||
// Channel A - console #2
|
||||
// WRDY connects to (altos5_state, fdc_intrq_w)
|
||||
// Channel B - console #1
|
||||
MCFG_Z80DART_OUT_TXDB_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80DART_OUT_DTRB_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
MCFG_Z80DART_OUT_RTSB_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80SIO_OUT_TXDB_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80SIO_OUT_DTRB_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
MCFG_Z80SIO_OUT_RTSB_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_8MHz / 2)
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("sio", z80dart_device, rxtxcb_w)) // SIO Ch B
|
||||
MCFG_Z80CTC_ZC1_CB(DEVWRITELINE("dart", z80dart_device, txca_w)) // Z80DART Ch A, SIO Ch A
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart" ,z80dart_device, rxca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio" ,z80sio0_device, txca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio" ,z80sio0_device, rxca_w))
|
||||
MCFG_Z80CTC_ZC2_CB(DEVWRITELINE("dart", z80dart_device, rxtxcb_w)) // Z80DART Ch B
|
||||
MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("sio", z80sio_device, rxtxcb_w)) // SIO Ch B
|
||||
MCFG_Z80CTC_ZC1_CB(DEVWRITELINE("dart", z80sio_device, txca_w)) // Z80DART Ch A, SIO Ch A
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart" ,z80sio_device, rxca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio" ,z80sio_device, txca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio" ,z80sio_device, rxca_w))
|
||||
MCFG_Z80CTC_ZC2_CB(DEVWRITELINE("dart", z80sio_device, rxtxcb_w)) // Z80DART Ch B
|
||||
|
||||
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio", z80sio0_device, rxb_w))
|
||||
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("sio", z80sio0_device, dcdb_w))
|
||||
MCFG_RS232_RI_HANDLER(DEVWRITELINE("sio", z80sio0_device, rib_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("sio", z80sio0_device, ctsb_w))
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio", z80sio_device, rxb_w))
|
||||
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("sio", z80sio_device, dcdb_w))
|
||||
//MCFG_RS232_RI_HANDLER(DEVWRITELINE("sio", z80sio_device, rib_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("sio", z80sio_device, ctsb_w))
|
||||
|
||||
MCFG_FD1797_ADD("fdc", XTAL_8MHz / 8)
|
||||
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(altos5_state, fdc_intrq_w))
|
||||
|
@ -45,7 +45,7 @@ I/O ports: These ranges are what is guessed
|
||||
#include "machine/upd765.h"
|
||||
#include "cpu/z80/z80daisy.h"
|
||||
#include "machine/z80pio.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/terminal.h"
|
||||
|
||||
@ -55,12 +55,11 @@ class czk80_state : public driver_device
|
||||
{
|
||||
public:
|
||||
czk80_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_terminal(*this, TERMINAL_TAG),
|
||||
m_fdc(*this, "fdc")
|
||||
{
|
||||
}
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_terminal(*this, "terminal")
|
||||
, m_fdc(*this, "fdc")
|
||||
{ }
|
||||
|
||||
DECLARE_DRIVER_INIT(czk80);
|
||||
DECLARE_MACHINE_RESET(czk80);
|
||||
@ -112,10 +111,10 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START(czk80_io, AS_IO, 8, czk80_state)
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x40, 0x40) AM_WRITE(port40_w)
|
||||
AM_RANGE(0x4c, 0x4f) AM_DEVREADWRITE("z80pio", z80pio_device, read, write)
|
||||
AM_RANGE(0x50, 0x53) AM_DEVREADWRITE("z80dart", z80dart_device, cd_ba_r, cd_ba_w)
|
||||
AM_RANGE(0x54, 0x57) AM_DEVREADWRITE("z80ctc", z80ctc_device, read, write)
|
||||
AM_RANGE(0x80, 0x80) AM_READ(port80_r) AM_DEVWRITE(TERMINAL_TAG, generic_terminal_device, write)
|
||||
AM_RANGE(0x4c, 0x4f) AM_DEVREADWRITE("pio", z80pio_device, read, write)
|
||||
AM_RANGE(0x50, 0x53) AM_DEVREADWRITE("dart", z80sio_device, cd_ba_r, cd_ba_w)
|
||||
AM_RANGE(0x54, 0x57) AM_DEVREADWRITE("ctc", z80ctc_device, read, write)
|
||||
AM_RANGE(0x80, 0x80) AM_READ(port80_r) AM_DEVWRITE("terminal", generic_terminal_device, write)
|
||||
AM_RANGE(0x81, 0x81) AM_READ(port81_r)
|
||||
/* Select one of the below */
|
||||
//AM_RANGE(0xc0, 0xc0) AM_READ(portc0_r)
|
||||
@ -130,9 +129,9 @@ INPUT_PORTS_END
|
||||
|
||||
static const z80_daisy_config daisy_chain[] =
|
||||
{
|
||||
{ "z80pio" },
|
||||
{ "z80dart" },
|
||||
{ "z80ctc" },
|
||||
{ "pio" },
|
||||
{ "dart" },
|
||||
{ "ctc" },
|
||||
{ nullptr }
|
||||
};
|
||||
|
||||
@ -196,24 +195,24 @@ static MACHINE_CONFIG_START( czk80 )
|
||||
MCFG_Z80_DAISY_CHAIN(daisy_chain)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(czk80_state, czk80)
|
||||
|
||||
MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
|
||||
MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0)
|
||||
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(czk80_state, kbd_put))
|
||||
MCFG_UPD765A_ADD("fdc", false, true)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", czk80_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
||||
|
||||
MCFG_DEVICE_ADD("z80ctc", Z80CTC, XTAL_16MHz / 4)
|
||||
MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_16MHz / 4)
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80CTC_ZC0_CB(WRITELINE(czk80_state, ctc_z0_w))
|
||||
MCFG_Z80CTC_ZC1_CB(WRITELINE(czk80_state, ctc_z1_w))
|
||||
MCFG_Z80CTC_ZC2_CB(WRITELINE(czk80_state, ctc_z2_w))
|
||||
|
||||
MCFG_DEVICE_ADD("z80dart", Z80DART, XTAL_16MHz / 4)
|
||||
//MCFG_Z80DART_OUT_TXDA_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
//MCFG_Z80DART_OUT_DTRA_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
//MCFG_Z80DART_OUT_RTSA_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("dart", Z80SIO, XTAL_16MHz / 4)
|
||||
//MCFG_Z80SIO_OUT_TXDA_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
//MCFG_Z80SIO_OUT_DTRA_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
//MCFG_Z80SIO_OUT_RTSA_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("z80pio", Z80PIO, XTAL_16MHz/4)
|
||||
MCFG_DEVICE_ADD("pio", Z80PIO, XTAL_16MHz/4)
|
||||
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
#include "machine/timer.h"
|
||||
#include "machine/upd765.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/z80pio.h"
|
||||
|
||||
#include "formats/nanos_dsk.h"
|
||||
@ -72,8 +72,8 @@ private:
|
||||
required_device<z80pio_device> m_pio;
|
||||
required_device<z80pio_device> m_pio_0;
|
||||
required_device<z80pio_device> m_pio_1;
|
||||
required_device<z80sio0_device> m_sio_0;
|
||||
required_device<z80sio0_device> m_sio_1;
|
||||
required_device<z80sio_device> m_sio_0;
|
||||
required_device<z80sio_device> m_sio_1;
|
||||
required_device<z80ctc_device> m_ctc_0;
|
||||
required_device<z80ctc_device> m_ctc_1;
|
||||
required_device<upd765a_device> m_fdc;
|
||||
@ -144,7 +144,7 @@ static ADDRESS_MAP_START( nanos_io , AS_IO, 8, nanos_state)
|
||||
|
||||
/* I/O card */
|
||||
AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("z80pio_0", z80pio_device, read, write)
|
||||
AM_RANGE(0x84, 0x87) AM_DEVREADWRITE("z80sio_0", z80sio0_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x84, 0x87) AM_DEVREADWRITE("z80sio_0", z80sio_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x88, 0x8B) AM_DEVREADWRITE("z80pio_1", z80pio_device, read, write)
|
||||
AM_RANGE(0x8C, 0x8F) AM_DEVREADWRITE("z80ctc_0", z80ctc_device, read, write)
|
||||
|
||||
@ -152,7 +152,7 @@ static ADDRESS_MAP_START( nanos_io , AS_IO, 8, nanos_state)
|
||||
AM_RANGE(0x92, 0x92) AM_WRITE(nanos_tc_w)
|
||||
AM_RANGE(0x94, 0x95) AM_DEVICE("upd765", upd765a_device, map)
|
||||
/* V24+IFSS card */
|
||||
AM_RANGE(0xA0, 0xA3) AM_DEVREADWRITE("z80sio_0", z80sio0_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0xA0, 0xA3) AM_DEVREADWRITE("z80sio_0", z80sio_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0xA4, 0xA7) AM_DEVREADWRITE("z80ctc_1", z80ctc_device, read, write)
|
||||
|
||||
/* 256-k RAM card I - 64k OS-Memory + 192k-RAM-Floppy */
|
||||
@ -492,11 +492,11 @@ static MACHINE_CONFIG_START( nanos )
|
||||
MCFG_DEVICE_ADD("z80pio_1", Z80PIO, XTAL_4MHz)
|
||||
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("z80sio_0", Z80SIO0, XTAL_4MHz)
|
||||
MCFG_Z80DART_OUT_INT_CB(WRITELINE(nanos_state, z80daisy_interrupt))
|
||||
MCFG_DEVICE_ADD("z80sio_0", Z80SIO, XTAL_4MHz)
|
||||
MCFG_Z80SIO_OUT_INT_CB(WRITELINE(nanos_state, z80daisy_interrupt))
|
||||
|
||||
MCFG_DEVICE_ADD("z80sio_1", Z80SIO0, XTAL_4MHz)
|
||||
MCFG_Z80DART_OUT_INT_CB(WRITELINE(nanos_state, z80daisy_interrupt))
|
||||
MCFG_DEVICE_ADD("z80sio_1", Z80SIO, XTAL_4MHz)
|
||||
MCFG_Z80SIO_OUT_INT_CB(WRITELINE(nanos_state, z80daisy_interrupt))
|
||||
|
||||
MCFG_DEVICE_ADD("z80pio", Z80PIO, XTAL_4MHz)
|
||||
MCFG_Z80PIO_IN_PA_CB(READ8(nanos_state, nanos_port_a_r))
|
||||
|
@ -51,7 +51,7 @@
|
||||
#include "cpu/z8000/z8000.h"
|
||||
#include "machine/upd765.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/z80dma.h"
|
||||
#include "machine/z80pio.h"
|
||||
#include "sound/beep.h"
|
||||
@ -87,6 +87,8 @@ public:
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_daisy(*this, "p8k_16_daisy")
|
||||
, m_pio2(*this, "pio2")
|
||||
, m_i8272(*this, "i8272")
|
||||
{ }
|
||||
|
||||
DECLARE_READ8_MEMBER(p8k_port0_r);
|
||||
@ -106,6 +108,8 @@ public:
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<p8k_16_daisy_device> m_daisy;
|
||||
optional_device<z80pio_device> m_pio2;
|
||||
optional_device<i8272a_device> m_i8272;
|
||||
};
|
||||
|
||||
/***************************************************************************
|
||||
@ -141,8 +145,8 @@ static ADDRESS_MAP_START(p8k_iomap, AS_IO, 8, p8k_state)
|
||||
AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE("pio1", z80pio_device, read_alt, write_alt)
|
||||
AM_RANGE(0x1c, 0x1f) AM_DEVREADWRITE("pio2", z80pio_device, read_alt, write_alt)
|
||||
AM_RANGE(0x20, 0x21) AM_DEVICE("i8272", i8272a_device, map)
|
||||
AM_RANGE(0x24, 0x27) AM_DEVREADWRITE("sio0", z80sio0_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x28, 0x2b) AM_DEVREADWRITE("sio1", z80sio0_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x24, 0x27) AM_DEVREADWRITE("sio", z80sio_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x28, 0x2b) AM_DEVREADWRITE("sio1", z80sio_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x2c, 0x2f) AM_DEVREADWRITE("ctc1", z80ctc_device, read, write)
|
||||
AM_RANGE(0x3c, 0x3c) AM_DEVREADWRITE("dma", z80dma_device, read, write)
|
||||
ADDRESS_MAP_END
|
||||
@ -195,9 +199,7 @@ WRITE_LINE_MEMBER( p8k_state::p8k_daisy_interrupt )
|
||||
|
||||
WRITE_LINE_MEMBER( p8k_state::p8k_dma_irq_w )
|
||||
{
|
||||
i8272a_device *i8272 = machine().device<i8272a_device>("i8272");
|
||||
i8272->tc_w(state);
|
||||
|
||||
m_i8272->tc_w(state);
|
||||
p8k_daisy_interrupt(state);
|
||||
}
|
||||
|
||||
@ -233,7 +235,7 @@ static const z80_daisy_config p8k_daisy_chain[] =
|
||||
{ "dma" }, /* FDC related */
|
||||
{ "pio2" },
|
||||
{ "ctc0" },
|
||||
{ "sio0" },
|
||||
{ "sio" },
|
||||
{ "sio1" },
|
||||
{ "pio0" },
|
||||
{ "pio1" },
|
||||
@ -245,8 +247,7 @@ static const z80_daisy_config p8k_daisy_chain[] =
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER( p8k_state::fdc_irq )
|
||||
{
|
||||
z80pio_device *z80pio = machine().device<z80pio_device>("pio2");
|
||||
z80pio->port_b_write(state ? 0x10 : 0x00);
|
||||
m_pio2->port_b_write(state ? 0x10 : 0x00);
|
||||
}
|
||||
|
||||
static SLOT_INTERFACE_START( p8k_floppies )
|
||||
@ -326,8 +327,8 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START(p8k_16_iomap, AS_IO, 16, p8k_state)
|
||||
// AM_RANGE(0x0fef0, 0x0feff) // clock
|
||||
AM_RANGE(0x0ff80, 0x0ff87) AM_DEVREADWRITE8("sio0", z80sio0_device, cd_ba_r, cd_ba_w, 0xff)
|
||||
AM_RANGE(0x0ff88, 0x0ff8f) AM_DEVREADWRITE8("sio1", z80sio0_device, cd_ba_r, cd_ba_w, 0xff)
|
||||
AM_RANGE(0x0ff80, 0x0ff87) AM_DEVREADWRITE8("sio", z80sio_device, cd_ba_r, cd_ba_w, 0xff)
|
||||
AM_RANGE(0x0ff88, 0x0ff8f) AM_DEVREADWRITE8("sio1", z80sio_device, cd_ba_r, cd_ba_w, 0xff)
|
||||
AM_RANGE(0x0ff90, 0x0ff97) AM_DEVREADWRITE8("pio0", z80pio_device, read_alt, write_alt, 0xff)
|
||||
AM_RANGE(0x0ff98, 0x0ff9f) AM_DEVREADWRITE8("pio1", z80pio_device, read_alt, write_alt, 0xff)
|
||||
AM_RANGE(0x0ffa0, 0x0ffa7) AM_DEVREADWRITE8("pio2", z80pio_device, read_alt, write_alt, 0xff)
|
||||
@ -361,7 +362,7 @@ static const z80_daisy_config p8k_16_daisy_chain[] =
|
||||
{
|
||||
{ "ctc0" },
|
||||
{ "ctc1" },
|
||||
{ "sio0" },
|
||||
{ "sio" },
|
||||
{ "sio1" },
|
||||
{ "pio0" },
|
||||
{ "pio1" },
|
||||
@ -416,8 +417,8 @@ static MACHINE_CONFIG_START( p8k )
|
||||
MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(p8k_state, io_write_byte))
|
||||
|
||||
MCFG_DEVICE_ADD("uart_clock", CLOCK, 307200)
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("sio0", z80sio0_device, txcb_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio0", z80sio0_device, rxcb_w))
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("sio", z80sio_device, txcb_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio", z80sio_device, rxcb_w))
|
||||
|
||||
MCFG_DEVICE_ADD("ctc0", Z80CTC, 1229000) /* 1.22MHz clock */
|
||||
// to implement: callbacks!
|
||||
@ -431,18 +432,18 @@ static MACHINE_CONFIG_START( p8k )
|
||||
// Baud Gen 0, Baud Gen 1, Baud Gen 2,
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("sio0", Z80SIO0, XTAL_4MHz)
|
||||
MCFG_Z80DART_OUT_TXDB_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80DART_OUT_DTRB_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
MCFG_Z80DART_OUT_RTSB_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio", Z80SIO, XTAL_4MHz)
|
||||
MCFG_Z80SIO_OUT_TXDB_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80SIO_OUT_DTRB_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
MCFG_Z80SIO_OUT_RTSB_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio0", z80sio0_device, rxb_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("sio0", z80sio0_device, ctsb_w))
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio", z80sio_device, rxb_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("sio", z80sio_device, ctsb_w))
|
||||
|
||||
MCFG_DEVICE_ADD("sio1", Z80SIO0, XTAL_4MHz)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL_4MHz)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("pio0", Z80PIO, 1229000)
|
||||
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
@ -478,8 +479,8 @@ static MACHINE_CONFIG_START( p8k_16 )
|
||||
MCFG_Z80_DAISY_CHAIN(p8k_16_daisy_chain)
|
||||
|
||||
MCFG_DEVICE_ADD("uart_clock", CLOCK, 307200)
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("sio0", z80sio0_device, txcb_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio0", z80sio0_device, rxcb_w))
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("sio", z80sio_device, txcb_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio", z80sio_device, rxcb_w))
|
||||
|
||||
/* peripheral hardware */
|
||||
MCFG_DEVICE_ADD("ctc0", Z80CTC, XTAL_4MHz)
|
||||
@ -488,18 +489,18 @@ static MACHINE_CONFIG_START( p8k_16 )
|
||||
MCFG_DEVICE_ADD("ctc1", Z80CTC, XTAL_4MHz)
|
||||
MCFG_Z80CTC_INTR_CB(WRITELINE(p8k_state, p8k_16_daisy_interrupt))
|
||||
|
||||
MCFG_DEVICE_ADD("sio0", Z80SIO0, XTAL_4MHz)
|
||||
MCFG_Z80DART_OUT_TXDB_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80DART_OUT_DTRB_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
MCFG_Z80DART_OUT_RTSB_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80DART_OUT_INT_CB(WRITELINE(p8k_state, p8k_16_daisy_interrupt))
|
||||
MCFG_DEVICE_ADD("sio", Z80SIO, XTAL_4MHz)
|
||||
MCFG_Z80SIO_OUT_TXDB_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80SIO_OUT_DTRB_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
MCFG_Z80SIO_OUT_RTSB_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80SIO_OUT_INT_CB(WRITELINE(p8k_state, p8k_16_daisy_interrupt))
|
||||
|
||||
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio0", z80sio0_device, rxb_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("sio0", z80sio0_device, ctsb_w))
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio", z80sio_device, rxb_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("sio", z80sio_device, ctsb_w))
|
||||
|
||||
MCFG_DEVICE_ADD("sio1", Z80SIO0, XTAL_4MHz)
|
||||
MCFG_Z80DART_OUT_INT_CB(WRITELINE(p8k_state, p8k_16_daisy_interrupt))
|
||||
MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL_4MHz)
|
||||
MCFG_Z80SIO_OUT_INT_CB(WRITELINE(p8k_state, p8k_16_daisy_interrupt))
|
||||
|
||||
MCFG_DEVICE_ADD("pio0", Z80PIO, XTAL_4MHz)
|
||||
MCFG_Z80PIO_OUT_INT_CB(WRITELINE(p8k_state, p8k_16_daisy_interrupt))
|
||||
|
@ -39,7 +39,7 @@ X - Test off-board memory banks
|
||||
#include "bus/rs232/rs232.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "cpu/z80/z80daisy.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/msm5832.h"
|
||||
#include "machine/i8255.h"
|
||||
#include "machine/com8116.h"
|
||||
@ -88,7 +88,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START(pulsar_io, AS_IO, 8, pulsar_state)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0xc0, 0xc3) AM_MIRROR(0x0c) AM_DEVREADWRITE("dart", z80dart_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0xc0, 0xc3) AM_MIRROR(0x0c) AM_DEVREADWRITE("dart", z80sio_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0xd0, 0xd3) AM_MIRROR(0x0c) AM_DEVREADWRITE("fdc", fd1797_device, read, write)
|
||||
AM_RANGE(0xe0, 0xe3) AM_MIRROR(0x0c) AM_DEVREADWRITE("ppi", i8255_device, read, write)
|
||||
AM_RANGE(0xf0, 0xff) AM_WRITE(baud_w)
|
||||
@ -222,23 +222,23 @@ static MACHINE_CONFIG_START( pulsar )
|
||||
|
||||
MCFG_MSM5832_ADD("rtc", XTAL_32_768kHz)
|
||||
|
||||
MCFG_DEVICE_ADD("dart", Z80DART, XTAL_4MHz)
|
||||
MCFG_Z80DART_OUT_TXDA_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80DART_OUT_DTRA_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
MCFG_Z80DART_OUT_RTSA_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("dart", Z80SIO, XTAL_4MHz)
|
||||
MCFG_Z80SIO_OUT_TXDA_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80SIO_OUT_DTRA_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
MCFG_Z80SIO_OUT_RTSA_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("dart", z80dart_device, rxa_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("dart", z80dart_device, ctsa_w))
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("dart", z80sio_device, rxa_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("dart", z80sio_device, ctsa_w))
|
||||
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
|
||||
|
||||
MCFG_DEVICE_ADD("brg", COM8116, XTAL_5_0688MHz)
|
||||
// Schematic has the labels for FT and FR the wrong way around, but the pin numbers are correct.
|
||||
MCFG_COM8116_FR_HANDLER(DEVWRITELINE("dart", z80dart_device, txca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart", z80dart_device, rxca_w))
|
||||
MCFG_COM8116_FT_HANDLER(DEVWRITELINE("dart", z80dart_device, txcb_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart", z80dart_device, rxcb_w))
|
||||
MCFG_COM8116_FR_HANDLER(DEVWRITELINE("dart", z80sio_device, txca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart", z80sio_device, rxca_w))
|
||||
MCFG_COM8116_FT_HANDLER(DEVWRITELINE("dart", z80sio_device, txcb_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart", z80sio_device, rxcb_w))
|
||||
|
||||
MCFG_FD1797_ADD("fdc", XTAL_4MHz / 2)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", pulsar_floppies, "525hd", floppy_image_device::default_floppy_formats)
|
||||
|
@ -29,7 +29,7 @@ Issues:
|
||||
#include "machine/keyboard.h"
|
||||
#include "machine/upd765.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/z80pio.h"
|
||||
#include "sound/beep.h"
|
||||
#include "video/i8275.h"
|
||||
@ -104,7 +104,7 @@ static ADDRESS_MAP_START(rc702_io, AS_IO, 8, rc702_state)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("crtc", i8275_device, read, write)
|
||||
AM_RANGE(0x04, 0x05) AM_DEVICE("fdc", upd765a_device, map)
|
||||
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("sio1", z80dart_device, cd_ba_r, cd_ba_w) // boot sequence doesn't program this
|
||||
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("sio1", z80sio_device, cd_ba_r, cd_ba_w) // boot sequence doesn't program this
|
||||
AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("ctc1", z80ctc_device, read, write)
|
||||
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("pio", z80pio_device, read, write)
|
||||
AM_RANGE(0x14, 0x17) AM_READ_PORT("DSW") AM_WRITE(port14_w) // motors
|
||||
@ -334,13 +334,13 @@ static MACHINE_CONFIG_START( rc702 )
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(rc702_state, clock_w))
|
||||
|
||||
MCFG_DEVICE_ADD("ctc1", Z80CTC, XTAL_8MHz / 2)
|
||||
MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("sio1", z80dart_device, txca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio1", z80dart_device, rxca_w))
|
||||
MCFG_Z80CTC_ZC1_CB(DEVWRITELINE("sio1", z80dart_device, rxtxcb_w))
|
||||
MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("sio1", z80sio_device, txca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio1", z80sio_device, rxca_w))
|
||||
MCFG_Z80CTC_ZC1_CB(DEVWRITELINE("sio1", z80sio_device, rxtxcb_w))
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("sio1", Z80DART, XTAL_8MHz / 2)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL_8MHz / 2)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("pio", Z80PIO, XTAL_8MHz / 2)
|
||||
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
@ -27,20 +27,17 @@
|
||||
#include "machine/terminal.h"
|
||||
#include "machine/z80dma.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
|
||||
#define TERMINAL_TAG "terminal"
|
||||
|
||||
class ts802_state : public driver_device
|
||||
{
|
||||
public:
|
||||
ts802_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_terminal(*this, TERMINAL_TAG)
|
||||
{
|
||||
}
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_terminal(*this, "terminal")
|
||||
{ }
|
||||
|
||||
DECLARE_DRIVER_INIT(ts802);
|
||||
DECLARE_MACHINE_RESET(ts802);
|
||||
@ -78,21 +75,21 @@ static ADDRESS_MAP_START(ts802_io, AS_IO, 8, ts802_state)
|
||||
// 04 - written once after OS boot to bank in RAM from 0000-3FFF instead of ROM. 4000-FFFF is always RAM.
|
||||
AM_RANGE(0x04, 0x07) AM_WRITE(port04_w)
|
||||
// 08-0B: Z80 CTC
|
||||
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("z80ctc", z80ctc_device, read, write)
|
||||
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ctc", z80ctc_device, read, write)
|
||||
// 0C-0F: Z80 SIO #1
|
||||
//AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("z80dart1", z80dart_device, ba_cd_r, ba_cd_w)
|
||||
//AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("dart1", z80sio_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x0c, 0x0c) AM_READ(port0c_r)
|
||||
AM_RANGE(0x0d, 0x0d) AM_READ(port0d_r) AM_DEVWRITE(TERMINAL_TAG, generic_terminal_device, write)
|
||||
AM_RANGE(0x0d, 0x0d) AM_READ(port0d_r) AM_DEVWRITE("terminal", generic_terminal_device, write)
|
||||
AM_RANGE(0x0e, 0x0e) AM_READ(port0e_r)
|
||||
AM_RANGE(0x0f, 0x0f) AM_READ(port0f_r)
|
||||
// 10: Z80 DMA
|
||||
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("z80dma", z80dma_device, read, write)
|
||||
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("dma", z80dma_device, read, write)
|
||||
// 14-17: WD 1793
|
||||
AM_RANGE(0x14, 0x17) AM_DEVREADWRITE("fdc", fd1793_device, read, write)
|
||||
// 18: floppy misc.
|
||||
AM_RANGE(0x18, 0x1c) AM_WRITE(port18_w)
|
||||
// 20-23: Z80 SIO #2
|
||||
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("z80dart2", z80dart_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("dart2", z80sio_device, ba_cd_r, ba_cd_w)
|
||||
// 48-4F: WD1000 harddisk controller
|
||||
// 80: LEDs
|
||||
AM_RANGE(0x80, 0x80) AM_WRITE(port80_w)
|
||||
@ -162,10 +159,10 @@ void ts802_state::kbd_put(u8 data)
|
||||
// not correct
|
||||
static const z80_daisy_config daisy_chain_intf[] =
|
||||
{
|
||||
{ "z80dart1" },
|
||||
{ "z80dart2" },
|
||||
{ "z80dma" },
|
||||
{ "z80ctc" },
|
||||
{ "dart1" },
|
||||
{ "dart2" },
|
||||
{ "dma" },
|
||||
{ "ctc" },
|
||||
{ nullptr }
|
||||
};
|
||||
#endif
|
||||
@ -191,10 +188,10 @@ static MACHINE_CONFIG_START( ts802 )
|
||||
MCFG_MACHINE_RESET_OVERRIDE(ts802_state, ts802)
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
|
||||
MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0)
|
||||
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ts802_state, kbd_put))
|
||||
|
||||
MCFG_DEVICE_ADD("z80dma", Z80DMA, XTAL_16MHz / 4)
|
||||
MCFG_DEVICE_ADD("dma", Z80DMA, XTAL_16MHz / 4)
|
||||
MCFG_Z80DMA_OUT_BUSREQ_CB(INPUTLINE("maincpu", INPUT_LINE_HALT))
|
||||
MCFG_Z80DMA_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80DMA_IN_MREQ_CB(READ8(ts802_state, memory_read_byte))
|
||||
@ -202,13 +199,13 @@ static MACHINE_CONFIG_START( ts802 )
|
||||
MCFG_Z80DMA_IN_IORQ_CB(READ8(ts802_state, io_read_byte))
|
||||
MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(ts802_state, io_write_byte))
|
||||
|
||||
MCFG_DEVICE_ADD("z80dart1", Z80DART, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("dart1", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("z80dart2", Z80DART, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("dart2", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("z80ctc", Z80CTC, XTAL_16MHz / 4)
|
||||
MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_16MHz / 4)
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_FD1793_ADD("fdc", XTAL_4MHz / 2) // unknown clock
|
||||
|
@ -51,7 +51,7 @@ PAGE SEL bit in PORT0 set to 1:
|
||||
#include "cpu/z80/z80daisy.h"
|
||||
#include "machine/keyboard.h"
|
||||
#include "machine/timer.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
#include "machine/z80sti.h"
|
||||
#include "video/mc6845.h"
|
||||
@ -134,7 +134,7 @@ static ADDRESS_MAP_START(ts803_io, AS_IO, 8, ts803_state)
|
||||
AM_RANGE(0x00, 0x0f) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x10, 0x1f) AM_READWRITE(port10_r, port10_w)
|
||||
AM_RANGE(0x20, 0x2f) AM_DEVREADWRITE("sti", z80sti_device, read, write)
|
||||
AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("dart", z80dart_device, cd_ba_r, cd_ba_w)
|
||||
AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("dart", z80sio_device, cd_ba_r, cd_ba_w)
|
||||
AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("fdc", fd1793_device, read, write)
|
||||
AM_RANGE(0x90, 0x9f) AM_READWRITE(disk_0_control_r,disk_0_control_w)
|
||||
AM_RANGE(0xa0, 0xbf) AM_READWRITE(porta0_r, porta0_w)
|
||||
@ -437,19 +437,19 @@ static MACHINE_CONFIG_START( ts803 )
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sti", z80sti_device, rc_w))
|
||||
|
||||
MCFG_DEVICE_ADD("dart_clock", CLOCK, (XTAL_16MHz / 13) / 8)
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("dart", z80dart_device, txca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart", z80dart_device, rxca_w))
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("dart", z80sio_device, txca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart", z80sio_device, rxca_w))
|
||||
|
||||
MCFG_DEVICE_ADD("sti", Z80STI, XTAL_16MHz/4)
|
||||
MCFG_Z80STI_OUT_TBO_CB(DEVWRITELINE("dart", z80dart_device, rxtxcb_w))
|
||||
MCFG_Z80STI_OUT_TBO_CB(DEVWRITELINE("dart", z80sio_device, rxtxcb_w))
|
||||
MCFG_Z80STI_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("dart", Z80DART, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80DART_OUT_TXDA_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_DEVICE_ADD("dart", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80SIO_OUT_TXDA_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
|
||||
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "keyboard")
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("dart", z80dart_device, rxa_w))
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("dart", z80sio_device, rxa_w))
|
||||
|
||||
/* floppy disk */
|
||||
MCFG_FD1793_ADD("fdc", XTAL_1MHz)
|
||||
|
@ -23,7 +23,7 @@ TODO:
|
||||
#include "cpu/z80/z80daisy.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/z80pio.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/z80dma.h"
|
||||
|
||||
class ts816_state : public driver_device
|
||||
@ -71,18 +71,18 @@ static ADDRESS_MAP_START(ts816_io, AS_IO, 8, ts816_state)
|
||||
AM_RANGE(0x04, 0x04) // Tape output latch byte 2
|
||||
AM_RANGE(0x05, 0x05) // Tape output latch byte 1
|
||||
AM_RANGE(0x07, 0x07) // Indicator load (LED)
|
||||
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("sio1", z80sio2_device, cd_ba_r, cd_ba_w) // SIO 1 for user 1 & 2
|
||||
AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE("sio5", z80sio2_device, cd_ba_r, cd_ba_w) // SIO 5 for user 9 & 10
|
||||
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("sio2", z80sio2_device, cd_ba_r, cd_ba_w) // SIO 2 for user 3 & 4
|
||||
AM_RANGE(0x28, 0x2b) AM_DEVREADWRITE("sio6", z80sio2_device, cd_ba_r, cd_ba_w) // SIO 6 for user 11 & 12
|
||||
AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("sio3", z80sio2_device, cd_ba_r, cd_ba_w) // SIO 3 for user 5 & 6
|
||||
AM_RANGE(0x38, 0x3b) AM_DEVREADWRITE("sio7", z80sio2_device, cd_ba_r, cd_ba_w) // SIO 7 for user 13 & 14
|
||||
AM_RANGE(0x40, 0x43) AM_DEVREADWRITE("sio4", z80sio2_device, cd_ba_r, cd_ba_w) // SIO 4 for user 7 & 8
|
||||
AM_RANGE(0x48, 0x4b) AM_DEVREADWRITE("sio8", z80sio2_device, cd_ba_r, cd_ba_w) // SIO 8 for user 15 & 16
|
||||
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("sio1", z80sio_device, cd_ba_r, cd_ba_w) // SIO 1 for user 1 & 2
|
||||
AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE("sio5", z80sio_device, cd_ba_r, cd_ba_w) // SIO 5 for user 9 & 10
|
||||
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("sio2", z80sio_device, cd_ba_r, cd_ba_w) // SIO 2 for user 3 & 4
|
||||
AM_RANGE(0x28, 0x2b) AM_DEVREADWRITE("sio6", z80sio_device, cd_ba_r, cd_ba_w) // SIO 6 for user 11 & 12
|
||||
AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("sio3", z80sio_device, cd_ba_r, cd_ba_w) // SIO 3 for user 5 & 6
|
||||
AM_RANGE(0x38, 0x3b) AM_DEVREADWRITE("sio7", z80sio_device, cd_ba_r, cd_ba_w) // SIO 7 for user 13 & 14
|
||||
AM_RANGE(0x40, 0x43) AM_DEVREADWRITE("sio4", z80sio_device, cd_ba_r, cd_ba_w) // SIO 4 for user 7 & 8
|
||||
AM_RANGE(0x48, 0x4b) AM_DEVREADWRITE("sio8", z80sio_device, cd_ba_r, cd_ba_w) // SIO 8 for user 15 & 16
|
||||
//AM_RANGE(0x50, 0x53) // SIO 0 for RS232 1 and part of tape interface
|
||||
AM_RANGE(0x50, 0x50) AM_READ(keyin_r) AM_DEVWRITE("terminal", generic_terminal_device, write)
|
||||
AM_RANGE(0x52, 0x52) AM_READ(status_r)
|
||||
AM_RANGE(0x58, 0x5b) AM_DEVREADWRITE("sio9", z80sio2_device, cd_ba_r, cd_ba_w) // SIO 9 for RS232 2 & 3
|
||||
AM_RANGE(0x58, 0x5b) AM_DEVREADWRITE("sio9", z80sio_device, cd_ba_r, cd_ba_w) // SIO 9 for RS232 2 & 3
|
||||
AM_RANGE(0x60, 0x60) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x68, 0x68) AM_WRITE(port68_w) // set 2nd bank latch
|
||||
AM_RANGE(0x70, 0x78) AM_WRITE(port78_w) // reset 2nd bank latch (manual can't decide between 70 and 78, so we take both)
|
||||
@ -266,26 +266,26 @@ static MACHINE_CONFIG_START( ts816 )
|
||||
MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0)
|
||||
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ts816_state, kbd_put))
|
||||
|
||||
//MCFG_DEVICE_ADD("sio0", Z80SIO2, XTAL_16MHz / 4)
|
||||
//MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio1", Z80SIO2, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio2", Z80SIO2, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio3", Z80SIO2, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio4", Z80SIO2, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio5", Z80SIO2, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio6", Z80SIO2, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio7", Z80SIO2, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio8", Z80SIO2, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio9", Z80SIO2, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
//MCFG_DEVICE_ADD("sio0", Z80SIO, XTAL_16MHz / 4)
|
||||
//MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio2", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio3", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio4", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio5", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio6", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio7", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio8", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio9", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("pio", Z80PIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include "cpu/z80/z80daisy.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/clock.h"
|
||||
#include "screen.h"
|
||||
|
||||
@ -58,7 +58,7 @@ private:
|
||||
required_shared_ptr<uint8_t> m_p_videoram;
|
||||
required_device<nvram_device> m_nvram;
|
||||
required_device<z80ctc_device> m_ctc;
|
||||
required_device<z80dart_device> m_dart;
|
||||
required_device<z80sio_device> m_dart;
|
||||
required_region_ptr<u8> m_p_chargen;
|
||||
};
|
||||
|
||||
@ -92,7 +92,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( uts20_io, AS_IO, 8, univac_state)
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("dart", z80dart_device, cd_ba_r, cd_ba_w)
|
||||
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("dart", z80sio_device, cd_ba_r, cd_ba_w)
|
||||
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("ctc", z80ctc_device, read, write)
|
||||
AM_RANGE(0x43, 0x43) AM_WRITE(port43_w)
|
||||
AM_RANGE(0x80, 0xbf) AM_RAM AM_SHARE("nvram")
|
||||
@ -187,15 +187,15 @@ static MACHINE_CONFIG_START( uts20 )
|
||||
MCFG_NVRAM_ADD_1FILL("nvram")
|
||||
|
||||
MCFG_DEVICE_ADD("uart_clock", CLOCK, 153600)
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("dart", z80dart_device, txca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart", z80dart_device, rxca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart", z80dart_device, txcb_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart", z80dart_device, rxcb_w))
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("dart", z80sio_device, txca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart", z80sio_device, rxca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart", z80sio_device, txcb_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart", z80sio_device, rxcb_w))
|
||||
|
||||
MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_4MHz)
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("dart", Z80DART, XTAL_4MHz)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("dart", Z80SIO, XTAL_4MHz)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user