summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/abc80x.cpp
diff options
context:
space:
mode:
author Curt Coder <curtcoder@mail.com>2018-05-11 15:26:39 +0300
committer Curt Coder <curtcoder@mail.com>2018-05-11 16:39:58 +0300
commitf43edc73b1241dc9b6e2259f298d99a4f7ae7013 (patch)
tree98e67cf3b975c861e2df8542009e946ecd7e0481 /src/mame/drivers/abc80x.cpp
parente9a3601dbb2be91a2d5f4c3a6efff9194b688b5e (diff)
abc800: Cleanup. (nw)
Diffstat (limited to 'src/mame/drivers/abc80x.cpp')
-rw-r--r--src/mame/drivers/abc80x.cpp275
1 files changed, 77 insertions, 198 deletions
diff --git a/src/mame/drivers/abc80x.cpp b/src/mame/drivers/abc80x.cpp
index 76a226086d5..d65e5596458 100644
--- a/src/mame/drivers/abc80x.cpp
+++ b/src/mame/drivers/abc80x.cpp
@@ -141,16 +141,15 @@ Notes:
TODO:
- - cassette
+ - abc802 video is all black
- abc806 RTC
- abc806 disks except ufd631 won't boot
+ - cassette
*/
#include "emu.h"
#include "includes/abc80x.h"
-#include "softlist.h"
-#include "speaker.h"
//**************************************************************************
@@ -181,20 +180,6 @@ READ8_MEMBER( abc800_state::pling_r )
}
-//-------------------------------------------------
-// pling_r - speaker read
-//-------------------------------------------------
-
-READ8_MEMBER( abc802_state::pling_r )
-{
- m_pling = !m_pling;
-
- m_discrete->write(space, NODE_01, m_pling);
-
- return 0xff;
-}
-
-
//**************************************************************************
// MEMORY BANKING
@@ -587,7 +572,7 @@ void abc802_state::abc802_io(address_map &map)
map(0x03, 0x03).mirror(0x18).w(ABCBUS_TAG, FUNC(abcbus_slot_device::c2_w));
map(0x04, 0x04).mirror(0x18).w(ABCBUS_TAG, FUNC(abcbus_slot_device::c3_w));
map(0x05, 0x05).mirror(0x18).w(ABCBUS_TAG, FUNC(abcbus_slot_device::c4_w));
- map(0x05, 0x05).mirror(0x08).r(this, FUNC(abc802_state::pling_r));
+ map(0x05, 0x05).mirror(0x18).r(this, FUNC(abc800_state::pling_r));
map(0x07, 0x07).mirror(0x18).r(ABCBUS_TAG, FUNC(abcbus_slot_device::rst_r));
map(0x20, 0x23).mirror(0x0c).rw(m_dart, FUNC(z80dart_device::ba_cd_r), FUNC(z80dart_device::ba_cd_w));
map(0x31, 0x31).mirror(0x06).r(m_crtc, FUNC(mc6845_device::register_r));
@@ -637,6 +622,7 @@ void abc806_state::abc806_io(address_map &map)
map(0x03, 0x03).mirror(0xff18).w(ABCBUS_TAG, FUNC(abcbus_slot_device::c2_w));
map(0x04, 0x04).mirror(0xff18).w(ABCBUS_TAG, FUNC(abcbus_slot_device::c3_w));
map(0x05, 0x05).mirror(0xff18).w(ABCBUS_TAG, FUNC(abcbus_slot_device::c4_w));
+ map(0x05, 0x05).mirror(0xff18).r(this, FUNC(abc800_state::pling_r));
map(0x06, 0x06).mirror(0xff18).w(this, FUNC(abc806_state::hrs_w));
map(0x07, 0x07).mirror(0xff18).r(ABCBUS_TAG, FUNC(abcbus_slot_device::rst_r)).w(this, FUNC(abc806_state::hrc_w));
map(0x20, 0x23).mirror(0xff0c).rw(m_dart, FUNC(z80dart_device::ba_cd_r), FUNC(z80dart_device::ba_cd_w));
@@ -747,12 +733,6 @@ WRITE_LINE_MEMBER( abc800_state::ctc_z1_w )
}
}
-WRITE_LINE_MEMBER( abc800_state::ctc_z2_w )
-{
- m_dart->rxca_w(state);
- m_dart->txca_w(state);
-}
-
//-------------------------------------------------
// Z80SIO
//-------------------------------------------------
@@ -1146,31 +1126,22 @@ QUICKLOAD_LOAD_MEMBER( abc800_state, bac )
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( abc800c )
+// MACHINE_CONFIG( common )
//-------------------------------------------------
-MACHINE_CONFIG_START(abc800c_state::abc800c)
+MACHINE_CONFIG_START(abc800_state::common)
// basic machine hardware
MCFG_DEVICE_ADD(Z80_TAG, Z80, ABC800_X01/2/2)
MCFG_Z80_DAISY_CHAIN(abc800_daisy_chain)
MCFG_DEVICE_OPCODES_MAP(abc800_m1)
- MCFG_DEVICE_PROGRAM_MAP(abc800c_mem)
- MCFG_DEVICE_IO_MAP(abc800c_io)
-
- // video hardware
- abc800c_video(config);
-
- // sound hardware
- SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD(DISCRETE_TAG, DISCRETE, abc800_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
// peripheral hardware
MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, ABC800_X01/2/2)
MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
MCFG_Z80CTC_ZC0_CB(WRITELINE(*this, abc800_state, ctc_z0_w))
MCFG_Z80CTC_ZC1_CB(WRITELINE(*this, abc800_state, ctc_z1_w))
- MCFG_Z80CTC_ZC2_CB(WRITELINE(*this, abc800_state, ctc_z2_w))
+ MCFG_Z80CTC_ZC2_CB(WRITELINE(Z80DART_TAG, z80dart_device, rxca_w))
+ MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(Z80DART_TAG, z80dart_device, txca_w))
MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO2, ABC800_X01/2/2)
MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
@@ -1180,7 +1151,7 @@ MACHINE_CONFIG_START(abc800c_state::abc800c)
MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(*this, abc800_state, sio_txdb_w))
MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(*this, abc800_state, sio_txdb_w))
MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
-
+
MCFG_DEVICE_ADD(Z80DART_TAG, Z80DART, ABC800_X01/2/2)
MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd))
MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr))
@@ -1188,7 +1159,7 @@ MACHINE_CONFIG_START(abc800c_state::abc800c)
MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(ABC_KEYBOARD_PORT_TAG, abc_keyboard_port_device, txd_w))
MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_CASSETTE_ADD("cassette")
+ MCFG_CASSETTE_ADD(CASSETTE_TAG)
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED)
MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr)
@@ -1201,99 +1172,84 @@ MACHINE_CONFIG_START(abc800c_state::abc800c)
MCFG_RS232_DCD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, dcda_w))
MCFG_RS232_CTS_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, ctsa_w))
- MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, "abc800")
+ MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, nullptr)
MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, dcdb_w))
- // ABC bus
- MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, "abc830")
+ MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, nullptr)
- // internal ram
- MCFG_RAM_ADD(RAM_TAG)
- MCFG_RAM_DEFAULT_SIZE("16K")
- MCFG_RAM_EXTRA_OPTIONS("32K")
+ // sound hardware
+ SPEAKER(config, "mono").front_center();
+ MCFG_DEVICE_ADD(DISCRETE_TAG, DISCRETE, abc800_discrete)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
// software list
MCFG_SOFTWARE_LIST_ADD("flop_list", "abc800")
MCFG_SOFTWARE_LIST_ADD("hdd_list", "abc800_hdd")
+
+ // quickload
+ MCFG_QUICKLOAD_ADD("quickload", abc800_state, bac, "bac", 2)
MACHINE_CONFIG_END
//-------------------------------------------------
-// MACHINE_CONFIG( abc800m )
+// MACHINE_CONFIG( abc800c )
//-------------------------------------------------
-MACHINE_CONFIG_START(abc800m_state::abc800m)
+MACHINE_CONFIG_START(abc800c_state::abc800c)
+ common(config);
+
// basic machine hardware
- MCFG_DEVICE_ADD(Z80_TAG, Z80, ABC800_X01/2/2)
- MCFG_Z80_DAISY_CHAIN(abc800_daisy_chain)
- MCFG_DEVICE_OPCODES_MAP(abc800_m1)
- MCFG_DEVICE_PROGRAM_MAP(abc800m_mem)
- MCFG_DEVICE_IO_MAP(abc800m_io)
+ MCFG_DEVICE_MODIFY(Z80_TAG)
+ MCFG_DEVICE_PROGRAM_MAP(abc800c_mem)
+ MCFG_DEVICE_IO_MAP(abc800c_io)
// video hardware
- abc800m_video(config);
-
- // sound hardware
- SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD(DISCRETE_TAG, DISCRETE, abc800_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ abc800c_video(config);
// peripheral hardware
- MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, ABC800_X01/2/2)
- MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_Z80CTC_ZC0_CB(WRITELINE(*this, abc800_state, ctc_z0_w))
- MCFG_Z80CTC_ZC1_CB(WRITELINE(*this, abc800_state, ctc_z1_w))
- MCFG_Z80CTC_ZC2_CB(WRITELINE(*this, abc800_state, ctc_z2_w))
+ MCFG_DEVICE_MODIFY(ABC_KEYBOARD_PORT_TAG)
+ MCFG_SLOT_DEFAULT_OPTION("abc800")
+ MCFG_SLOT_FIXED(true)
- MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO2, ABC800_X01/2/2)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(*this, abc800_state, sio_txdb_w))
- MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(*this, abc800_state, sio_txdb_w))
- MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(*this, abc800_state, sio_txdb_w))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
+ MCFG_DEVICE_MODIFY(ABCBUS_TAG)
+ MCFG_SLOT_DEFAULT_OPTION("abc830")
- MCFG_DEVICE_ADD(Z80DART_TAG, Z80DART, ABC800_X01/2/2)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(ABC_KEYBOARD_PORT_TAG, abc_keyboard_port_device, txd_w))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
+ // internal ram
+ MCFG_RAM_ADD(RAM_TAG)
+ MCFG_RAM_DEFAULT_SIZE("16K")
+ MCFG_RAM_EXTRA_OPTIONS("32K")
+MACHINE_CONFIG_END
- MCFG_CASSETTE_ADD("cassette")
- MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED)
- MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, ctsa_w))
+//-------------------------------------------------
+// MACHINE_CONFIG( abc800m )
+//-------------------------------------------------
- MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, ctsa_w))
+MACHINE_CONFIG_START(abc800m_state::abc800m)
+ common(config);
+
+ // basic machine hardware
+ MCFG_DEVICE_MODIFY(Z80_TAG)
+ MCFG_DEVICE_PROGRAM_MAP(abc800m_mem)
+ MCFG_DEVICE_IO_MAP(abc800m_io)
- MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, "abc800")
- MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
- MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
- MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, dcdb_w))
+ // video hardware
+ abc800m_video(config);
- // ABC bus
- MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, "abc830")
+ // peripheral hardware
+ MCFG_DEVICE_MODIFY(ABC_KEYBOARD_PORT_TAG)
+ MCFG_SLOT_DEFAULT_OPTION("abc800")
+ MCFG_SLOT_FIXED(true)
+
+ MCFG_DEVICE_MODIFY(ABCBUS_TAG)
+ MCFG_SLOT_DEFAULT_OPTION("abc830")
// internal ram
MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("16K")
MCFG_RAM_EXTRA_OPTIONS("32K")
-
- // software list
- MCFG_SOFTWARE_LIST_ADD("flop_list", "abc800")
- MCFG_SOFTWARE_LIST_ADD("hdd_list", "abc800_hdd")
-
- MCFG_QUICKLOAD_ADD("quickload", abc800_state, bac, "bac", 2)
MACHINE_CONFIG_END
@@ -1302,74 +1258,30 @@ MACHINE_CONFIG_END
//-------------------------------------------------
MACHINE_CONFIG_START(abc802_state::abc802)
+ common(config);
+
// basic machine hardware
- MCFG_DEVICE_ADD(Z80_TAG, Z80, ABC800_X01/2/2)
- MCFG_Z80_DAISY_CHAIN(abc800_daisy_chain)
- MCFG_DEVICE_OPCODES_MAP(abc800_m1)
+ MCFG_DEVICE_MODIFY(Z80_TAG)
MCFG_DEVICE_PROGRAM_MAP(abc802_mem)
MCFG_DEVICE_IO_MAP(abc802_io)
// video hardware
abc802_video(config);
- // sound hardware
- SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD(DISCRETE_TAG, DISCRETE, abc800_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-
// peripheral hardware
- MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, ABC800_X01/2/2)
- MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_Z80CTC_ZC0_CB(WRITELINE(*this, abc800_state, ctc_z0_w))
- MCFG_Z80CTC_ZC1_CB(WRITELINE(*this, abc800_state, ctc_z1_w))
- MCFG_Z80CTC_ZC2_CB(WRITELINE(*this, abc800_state, ctc_z2_w))
-
- MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO2, ABC800_X01/2/2)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(*this, abc800_state, sio_txdb_w))
- MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(*this, abc800_state, sio_txdb_w))
- MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(*this, abc800_state, sio_txdb_w))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
-
- MCFG_DEVICE_ADD(Z80DART_TAG, Z80DART, ABC800_X01/2/2)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(ABC_KEYBOARD_PORT_TAG, abc_keyboard_port_device, txd_w))
+ MCFG_DEVICE_MODIFY(Z80DART_TAG)
MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(*this, abc802_state, lrs_w))
MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(*this, abc802_state, mux80_40_w))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_CASSETTE_ADD("cassette")
- MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED)
+ MCFG_DEVICE_MODIFY(ABC_KEYBOARD_PORT_TAG)
+ MCFG_SLOT_DEFAULT_OPTION("abc55")
- MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, ctsa_w))
-
- MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, ctsa_w))
-
- MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, "abc55")
- MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
- MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
- MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, dcdb_w))
-
- // ABC bus
- MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, "abc834")
+ MCFG_DEVICE_MODIFY(ABCBUS_TAG)
+ MCFG_SLOT_DEFAULT_OPTION("abc834")
// internal ram
MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("64K")
-
- // software list
- //MCFG_SOFTWARE_LIST_ADD("flop_list", "abc802")
- MCFG_SOFTWARE_LIST_ADD("hdd_list", "abc800_hdd")
MACHINE_CONFIG_END
@@ -1378,10 +1290,10 @@ MACHINE_CONFIG_END
//-------------------------------------------------
MACHINE_CONFIG_START(abc806_state::abc806)
+ common(config);
+
// basic machine hardware
- MCFG_DEVICE_ADD(Z80_TAG, Z80, ABC800_X01/2/2)
- MCFG_Z80_DAISY_CHAIN(abc800_daisy_chain)
- MCFG_DEVICE_OPCODES_MAP(abc800_m1)
+ MCFG_DEVICE_MODIFY(Z80_TAG)
MCFG_DEVICE_PROGRAM_MAP(abc806_mem)
MCFG_DEVICE_IO_MAP(abc806_io)
@@ -1391,46 +1303,14 @@ MACHINE_CONFIG_START(abc806_state::abc806)
// peripheral hardware
MCFG_E0516_ADD(E0516_TAG, ABC806_X02)
- MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, ABC800_X01/2/2)
- MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_Z80CTC_ZC0_CB(WRITELINE(*this, abc800_state, ctc_z0_w))
- MCFG_Z80CTC_ZC1_CB(WRITELINE(*this, abc800_state, ctc_z1_w))
- MCFG_Z80CTC_ZC2_CB(WRITELINE(*this, abc800_state, ctc_z2_w))
-
- MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO2, ABC800_X01/2/2)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(*this, abc800_state, sio_txdb_w))
- MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(*this, abc800_state, sio_txdb_w))
- MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(*this, abc800_state, sio_txdb_w))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
-
- MCFG_DEVICE_ADD(Z80DART_TAG, Z80DART, ABC800_X01/2/2)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(ABC_KEYBOARD_PORT_TAG, abc_keyboard_port_device, txd_w))
+ MCFG_DEVICE_MODIFY(Z80DART_TAG)
MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(*this, abc806_state, keydtr_w))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
-
- MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, ctsa_w))
-
- MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, ctsa_w))
- MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, "abc77")
- MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
- MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
- MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, dcdb_w))
+ MCFG_DEVICE_MODIFY(ABC_KEYBOARD_PORT_TAG)
+ MCFG_SLOT_DEFAULT_OPTION("abc77")
- // ABC bus
- MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, "abc832")
+ MCFG_DEVICE_MODIFY(ABCBUS_TAG)
+ MCFG_SLOT_DEFAULT_OPTION("abc832")
// internal ram
MCFG_RAM_ADD(RAM_TAG)
@@ -1438,8 +1318,7 @@ MACHINE_CONFIG_START(abc806_state::abc806)
MCFG_RAM_EXTRA_OPTIONS("512K")
// software list
- MCFG_SOFTWARE_LIST_ADD("flop_list", "abc806")
- MCFG_SOFTWARE_LIST_ADD("hdd_list", "abc800_hdd")
+ MCFG_SOFTWARE_LIST_ADD("flop_list2", "abc806")
MACHINE_CONFIG_END
@@ -1716,7 +1595,7 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
-COMP( 1981, abc800c, 0, 0, abc800c, abc800, abc800c_state, 0, "Luxor Datorer AB", "ABC 800 C/HR", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-COMP( 1981, abc800m, abc800c, 0, abc800m, abc800, abc800m_state, 0, "Luxor Datorer AB", "ABC 800 M/HR", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-COMP( 1983, abc802, 0, 0, abc802, abc802, abc802_state, 0, "Luxor Datorer AB", "ABC 802", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-COMP( 1983, abc806, 0, 0, abc806, abc806, abc806_state, 0, "Luxor Datorer AB", "ABC 806", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+COMP( 1981, abc800c, 0, 0, abc800c, abc800, abc800c_state, 0, "Luxor Datorer AB", "ABC 800 C/HR", MACHINE_SUPPORTS_SAVE )
+COMP( 1981, abc800m, abc800c, 0, abc800m, abc800, abc800m_state, 0, "Luxor Datorer AB", "ABC 800 M/HR", MACHINE_SUPPORTS_SAVE )
+COMP( 1983, abc802, 0, 0, abc802, abc802, abc802_state, 0, "Luxor Datorer AB", "ABC 802", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+COMP( 1983, abc806, 0, 0, abc806, abc806, abc806_state, 0, "Luxor Datorer AB", "ABC 806", MACHINE_SUPPORTS_SAVE )