mirror of
https://github.com/holub/mame
synced 2025-07-02 16:49:22 +03:00
(MESS) p8k : sio -> dart, and kill trampolines
kaypro : be consistent
This commit is contained in:
parent
df21eba02c
commit
e9314bc4ec
@ -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", z80dart_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("z80sio_2x", z80sio0_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)
|
||||
|
@ -52,7 +52,7 @@
|
||||
#include "machine/upd765.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/z80pio.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80dma.h"
|
||||
#include "sound/beep.h"
|
||||
#include "machine/terminal.h"
|
||||
@ -90,25 +90,7 @@ public:
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER( p8k_daisy_interrupt );
|
||||
DECLARE_WRITE_LINE_MEMBER( p8k_dma_irq_w );
|
||||
DECLARE_WRITE16_MEMBER( pk8_sio_0_serial_transmit );
|
||||
DECLARE_WRITE16_MEMBER( pk8_sio_1_serial_transmit );
|
||||
DECLARE_READ16_MEMBER( p8k_16_sio0_r );
|
||||
DECLARE_WRITE16_MEMBER( p8k_16_sio0_w );
|
||||
DECLARE_READ16_MEMBER( p8k_16_sio1_r );
|
||||
DECLARE_WRITE16_MEMBER( p8k_16_sio1_w );
|
||||
DECLARE_READ16_MEMBER( p8k_16_pio0_r );
|
||||
DECLARE_WRITE16_MEMBER( p8k_16_pio0_w );
|
||||
DECLARE_READ16_MEMBER( p8k_16_pio1_r );
|
||||
DECLARE_WRITE16_MEMBER( p8k_16_pio1_w );
|
||||
DECLARE_READ16_MEMBER( p8k_16_pio2_r );
|
||||
DECLARE_WRITE16_MEMBER( p8k_16_pio2_w );
|
||||
DECLARE_READ16_MEMBER( p8k_16_ctc0_r );
|
||||
DECLARE_WRITE16_MEMBER( p8k_16_ctc0_w );
|
||||
DECLARE_READ16_MEMBER( p8k_16_ctc1_r );
|
||||
DECLARE_WRITE16_MEMBER( p8k_16_ctc1_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( p8k_16_daisy_interrupt );
|
||||
DECLARE_WRITE16_MEMBER( pk8_16_sio_0_serial_transmit );
|
||||
DECLARE_WRITE16_MEMBER( pk8_16_sio_1_serial_transmit );
|
||||
DECLARE_READ8_MEMBER(memory_read_byte);
|
||||
DECLARE_WRITE8_MEMBER(memory_write_byte);
|
||||
DECLARE_READ8_MEMBER(io_read_byte);
|
||||
@ -148,9 +130,9 @@ static ADDRESS_MAP_START(p8k_iomap, AS_IO, 8, p8k_state)
|
||||
AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE("z80pio_1", z80pio_device, read_alt, write_alt)
|
||||
AM_RANGE(0x1c, 0x1f) AM_DEVREADWRITE("z80pio_2", z80pio_device, read_alt, write_alt)
|
||||
AM_RANGE(0x20, 0x21) AM_DEVICE("i8272", i8272a_device, map)
|
||||
//AM_RANGE(0x24, 0x27) AM_DEVREADWRITE("z80sio_0", z80sio_device, read_alt, write_alt)
|
||||
//AM_RANGE(0x24, 0x27) AM_DEVREADWRITE("z80sio_0", z80sio0_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x24, 0x27) AM_READWRITE(p8k_port24_r,p8k_port24_w)
|
||||
AM_RANGE(0x28, 0x2b) AM_DEVREADWRITE("z80sio_1", z80sio_device, read_alt, write_alt)
|
||||
AM_RANGE(0x28, 0x2b) AM_DEVREADWRITE("z80sio_1", z80sio0_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x2c, 0x2f) AM_DEVREADWRITE("z80ctc_1", z80ctc_device, read, write)
|
||||
AM_RANGE(0x3c, 0x3c) AM_DEVREADWRITE("z80dma", z80dma_device, read, write)
|
||||
ADDRESS_MAP_END
|
||||
@ -250,7 +232,7 @@ READ8_MEMBER(p8k_state::memory_read_byte)
|
||||
WRITE8_MEMBER(p8k_state::memory_write_byte)
|
||||
{
|
||||
address_space& prog_space = m_maincpu->space(AS_PROGRAM);
|
||||
return prog_space.write_byte(offset, data);
|
||||
prog_space.write_byte(offset, data);
|
||||
}
|
||||
|
||||
READ8_MEMBER(p8k_state::io_read_byte)
|
||||
@ -262,42 +244,9 @@ READ8_MEMBER(p8k_state::io_read_byte)
|
||||
WRITE8_MEMBER(p8k_state::io_write_byte)
|
||||
{
|
||||
address_space& prog_space = m_maincpu->space(AS_IO);
|
||||
return prog_space.write_byte(offset, data);
|
||||
prog_space.write_byte(offset, data);
|
||||
}
|
||||
|
||||
/* Z80 SIO 0 */
|
||||
|
||||
WRITE16_MEMBER( p8k_state::pk8_sio_0_serial_transmit )
|
||||
{
|
||||
// send character to terminal
|
||||
}
|
||||
|
||||
static const z80sio_interface p8k_sio_0_intf =
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(p8k_state, p8k_daisy_interrupt), /* interrupt handler */
|
||||
DEVCB_NULL, /* DTR changed handler */
|
||||
DEVCB_NULL, /* RTS changed handler */
|
||||
DEVCB_NULL, /* BREAK changed handler */
|
||||
DEVCB_DRIVER_MEMBER16(p8k_state, pk8_sio_0_serial_transmit), /* transmit handler */
|
||||
DEVCB_NULL /* receive handler */
|
||||
};
|
||||
|
||||
/* Z80 SIO 1 */
|
||||
|
||||
WRITE16_MEMBER( p8k_state::pk8_sio_1_serial_transmit )
|
||||
{
|
||||
// send character to terminal
|
||||
}
|
||||
|
||||
static const z80sio_interface p8k_sio_1_intf =
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(p8k_state, p8k_daisy_interrupt), /* interrupt handler */
|
||||
DEVCB_NULL, /* DTR changed handler */
|
||||
DEVCB_NULL, /* RTS changed handler */
|
||||
DEVCB_NULL, /* BREAK changed handler */
|
||||
DEVCB_DRIVER_MEMBER16(p8k_state, pk8_sio_1_serial_transmit), /* transmit handler */
|
||||
DEVCB_NULL /* receive handler */
|
||||
};
|
||||
|
||||
/* Z80 Daisy Chain */
|
||||
|
||||
@ -405,97 +354,6 @@ MACHINE_RESET_MEMBER(p8k_state,p8k_16)
|
||||
{
|
||||
}
|
||||
|
||||
// TODO: all of this needs upgrading to current standards
|
||||
|
||||
READ16_MEMBER( p8k_state::p8k_16_sio1_r )
|
||||
{
|
||||
z80sio_device *device = machine().device<z80sio_device>("z80sio_1");
|
||||
switch (offset & 0x06)
|
||||
{
|
||||
case 0x00:
|
||||
return (UINT16)device->data_read(0);
|
||||
case 0x02:
|
||||
return (UINT16)device->data_read(1);
|
||||
case 0x04:
|
||||
return (UINT16)device->control_read(0);
|
||||
case 0x06:
|
||||
return (UINT16)device->control_read(1);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER( p8k_state::p8k_16_sio1_w )
|
||||
{
|
||||
z80sio_device *device = machine().device<z80sio_device>("z80sio_1");
|
||||
data &= 0xff;
|
||||
|
||||
switch (offset & 0x06)
|
||||
{
|
||||
case 0x00:
|
||||
device->data_write(0, (UINT8)data);
|
||||
break;
|
||||
case 0x02:
|
||||
device->data_write(1, (UINT8)data);
|
||||
break;
|
||||
case 0x04:
|
||||
device->control_write(0, (UINT8)data);
|
||||
break;
|
||||
case 0x06:
|
||||
device->control_write(1, (UINT8)data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
READ16_MEMBER( p8k_state::p8k_16_pio0_r )
|
||||
{
|
||||
return 0; //(UINT16)z80pio_r(machine().device("z80pio_0"), (offset & 0x06) >> 1);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER( p8k_state::p8k_16_pio0_w )
|
||||
{
|
||||
//z80pio_w(machine().device("z80pio_0"), (offset & 0x06) >> 1, (UINT8)(data & 0xff));
|
||||
}
|
||||
|
||||
READ16_MEMBER( p8k_state::p8k_16_pio1_r )
|
||||
{
|
||||
return 0; //(UINT16)z80pio_r(machine().device("z80pio_1"), (offset & 0x06) >> 1);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER( p8k_state::p8k_16_pio1_w )
|
||||
{
|
||||
//z80pio_w(machine().device("z80pio_1"), (offset & 0x06) >> 1, (UINT8)(data & 0xff));
|
||||
}
|
||||
READ16_MEMBER( p8k_state::p8k_16_pio2_r )
|
||||
{
|
||||
return 0; //(UINT16)z80pio_r(machine().device("z80pio_2"), (offset & 0x06) >> 1);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER( p8k_state::p8k_16_pio2_w )
|
||||
{
|
||||
//z80pio_w(machine().device("z80pio_2"), (offset & 0x06) >> 1, (UINT8)(data & 0xff));
|
||||
}
|
||||
|
||||
READ16_MEMBER( p8k_state::p8k_16_ctc0_r )
|
||||
{
|
||||
return (UINT16)machine().device<z80ctc_device>("z80ctc_0")->read(space,(offset & 0x06) >> 1);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER( p8k_state::p8k_16_ctc0_w )
|
||||
{
|
||||
machine().device<z80ctc_device>("z80ctc_0")->write(space, (offset & 0x06) >> 1, (UINT8)(data & 0xff));
|
||||
}
|
||||
|
||||
READ16_MEMBER( p8k_state::p8k_16_ctc1_r )
|
||||
{
|
||||
return (UINT16)machine().device<z80ctc_device>("z80ctc_1")->read(space,(offset & 0x06) >> 1);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER( p8k_state::p8k_16_ctc1_w )
|
||||
{
|
||||
machine().device<z80ctc_device>("z80ctc_1")->write(space, (offset & 0x06) >> 1, (UINT8)(data & 0xff));
|
||||
}
|
||||
|
||||
READ16_MEMBER( p8k_state::portff82_r )
|
||||
{
|
||||
if (offset == 3) // FF87
|
||||
@ -530,14 +388,14 @@ 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_READWRITE(p8k_16_sio0_r, p8k_16_sio0_w)
|
||||
//AM_RANGE(0x0ff80, 0x0ff87) AM_DEVREADWRITE8("z80sio_0", z80sio0_device, ba_cd_r, ba_cd_w, 0xff)
|
||||
AM_RANGE(0x0ff80, 0x0ff87) AM_READWRITE(portff82_r,portff82_w)
|
||||
AM_RANGE(0x0ff88, 0x0ff8f) AM_READWRITE(p8k_16_sio1_r, p8k_16_sio1_w) //"z80sio_1",
|
||||
AM_RANGE(0x0ff90, 0x0ff97) AM_READWRITE(p8k_16_pio0_r, p8k_16_pio0_w) //"z80pio_0",
|
||||
AM_RANGE(0x0ff98, 0x0ff9f) AM_READWRITE(p8k_16_pio1_r, p8k_16_pio1_w) //"z80pio_1",
|
||||
AM_RANGE(0x0ffa0, 0x0ffa7) AM_READWRITE(p8k_16_pio2_r, p8k_16_pio2_w) //"z80pio_2",
|
||||
AM_RANGE(0x0ffa8, 0x0ffaf) AM_READWRITE(p8k_16_ctc0_r, p8k_16_ctc0_w) //"z80ctc_0",
|
||||
AM_RANGE(0x0ffb0, 0x0ffb7) AM_READWRITE(p8k_16_ctc1_r, p8k_16_ctc1_w) //"z80ctc_1",
|
||||
AM_RANGE(0x0ff88, 0x0ff8f) AM_DEVREADWRITE8("z80sio_1", z80sio0_device, ba_cd_r, ba_cd_w, 0xff) //"z80sio_1",
|
||||
AM_RANGE(0x0ff90, 0x0ff97) AM_DEVREADWRITE8("z80pio_0", z80pio_device, read_alt, write_alt, 0xff) //"z80pio_0",
|
||||
AM_RANGE(0x0ff98, 0x0ff9f) AM_DEVREADWRITE8("z80pio_1", z80pio_device, read_alt, write_alt, 0xff) //"z80pio_1",
|
||||
AM_RANGE(0x0ffa0, 0x0ffa7) AM_DEVREADWRITE8("z80pio_2", z80pio_device, read_alt, write_alt, 0xff) //"z80pio_2",
|
||||
AM_RANGE(0x0ffa8, 0x0ffaf) AM_DEVREADWRITE8("z80ctc_0", z80ctc_device, read, write, 0xff) //"z80ctc_0",
|
||||
AM_RANGE(0x0ffb0, 0x0ffb7) AM_DEVREADWRITE8("z80ctc_1", z80ctc_device, read, write, 0xff) //"z80ctc_1",
|
||||
// AM_RANGE(0x0ffc0, 0x0ffc1) // SCR
|
||||
// AM_RANGE(0x0ffc8, 0x0ffc9) // SBR
|
||||
// AM_RANGE(0x0ffd0, 0x0ffd1) // NBR
|
||||
@ -559,39 +417,6 @@ WRITE_LINE_MEMBER( p8k_state::p8k_16_daisy_interrupt )
|
||||
// this must be studied a little bit more :-)
|
||||
}
|
||||
|
||||
/* Z80 SIO 0 */
|
||||
|
||||
WRITE16_MEMBER( p8k_state::pk8_16_sio_0_serial_transmit )
|
||||
{
|
||||
// send character to terminal
|
||||
}
|
||||
|
||||
static const z80sio_interface p8k_16_sio_0_intf =
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(p8k_state, p8k_16_daisy_interrupt), /* interrupt handler */
|
||||
DEVCB_NULL, /* DTR changed handler */
|
||||
DEVCB_NULL, /* RTS changed handler */
|
||||
DEVCB_NULL, /* BREAK changed handler */
|
||||
DEVCB_DRIVER_MEMBER16(p8k_state, pk8_16_sio_0_serial_transmit), /* transmit handler */
|
||||
DEVCB_NULL /* receive handler */
|
||||
};
|
||||
|
||||
/* Z80 SIO 1 */
|
||||
|
||||
WRITE16_MEMBER( p8k_state::pk8_16_sio_1_serial_transmit )
|
||||
{
|
||||
// send character to terminal
|
||||
}
|
||||
|
||||
static const z80sio_interface p8k_16_sio_1_intf =
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(p8k_state, p8k_16_daisy_interrupt), /* interrupt handler */
|
||||
DEVCB_NULL, /* DTR changed handler */
|
||||
DEVCB_NULL, /* RTS changed handler */
|
||||
DEVCB_NULL, /* BREAK changed handler */
|
||||
DEVCB_DRIVER_MEMBER16(p8k_state, pk8_16_sio_1_serial_transmit), /* transmit handler */
|
||||
DEVCB_NULL /* receive handler */
|
||||
};
|
||||
|
||||
/* Z80 Daisy Chain */
|
||||
|
||||
@ -665,8 +490,10 @@ static MACHINE_CONFIG_START( p8k, p8k_state )
|
||||
// Baud Gen 0, Baud Gen 1, Baud Gen 2,
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_Z80SIO_ADD("z80sio_0", 9600, p8k_sio_0_intf) /* 9.6kBaud default */
|
||||
MCFG_Z80SIO_ADD("z80sio_1", 9600, p8k_sio_1_intf) /* 9.6kBaud default */
|
||||
MCFG_Z80SIO0_ADD("z80sio_0", XTAL_4MHz, 0, 0, 0, 0)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80SIO0_ADD("z80sio_1", XTAL_4MHz, 0, 0, 0, 0)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("z80pio_0", Z80PIO, 1229000)
|
||||
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
@ -710,8 +537,10 @@ static MACHINE_CONFIG_START( p8k_16, p8k_state )
|
||||
MCFG_DEVICE_ADD("z80ctc_1", Z80CTC, XTAL_4MHz)
|
||||
MCFG_Z80CTC_INTR_CB(WRITELINE(p8k_state, p8k_16_daisy_interrupt))
|
||||
|
||||
MCFG_Z80SIO_ADD("z80sio_0", 9600, p8k_16_sio_0_intf)
|
||||
MCFG_Z80SIO_ADD("z80sio_1", 9600, p8k_16_sio_1_intf)
|
||||
MCFG_Z80SIO0_ADD("z80sio_0", XTAL_4MHz, 0, 0, 0, 0)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80SIO0_ADD("z80sio_1", XTAL_4MHz, 0, 0, 0, 0)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("z80pio_0", Z80PIO, XTAL_4MHz)
|
||||
MCFG_Z80PIO_OUT_INT_CB(WRITELINE(p8k_state, p8k_16_daisy_interrupt))
|
||||
|
@ -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<z80dart_device> m_sio;
|
||||
optional_device<z80dart_device> m_sio2x;
|
||||
required_device<z80sio0_device> m_sio;
|
||||
optional_device<z80sio0_device> m_sio2x;
|
||||
required_device<centronics_device> m_centronics;
|
||||
required_device<fd1793_t> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
|
Loading…
Reference in New Issue
Block a user