diff options
-rw-r--r-- | src/devices/bus/abcbus/lux4105.cpp | 8 | ||||
-rw-r--r-- | src/devices/bus/scsi/s1410.cpp | 3 | ||||
-rw-r--r-- | src/mame/drivers/abc1600.cpp | 60 | ||||
-rw-r--r-- | src/mame/includes/abc1600.h | 49 |
4 files changed, 71 insertions, 49 deletions
diff --git a/src/devices/bus/abcbus/lux4105.cpp b/src/devices/bus/abcbus/lux4105.cpp index fbcf1dec72c..8a502c2886f 100644 --- a/src/devices/bus/abcbus/lux4105.cpp +++ b/src/devices/bus/abcbus/lux4105.cpp @@ -126,17 +126,17 @@ void luxor_4105_device::device_add_mconfig(machine_config &config) INPUT_PORTS_START( luxor_4105 ) PORT_START("1E") - PORT_DIPNAME( 0x03, 0x00, "Stepping" ) PORT_DIPLOCATION("1E:1,2") + PORT_DIPNAME( 0x03, 0x03, "Stepping" ) PORT_DIPLOCATION("1E:1,2") PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x01, "Half (Seagate/Texas)" ) PORT_DIPSETTING( 0x02, "Half (Tandon)" ) PORT_DIPSETTING( 0x03, "Buffered" ) - PORT_DIPNAME( 0x0c, 0x00, "Heads" ) PORT_DIPLOCATION("1E:3,4") + PORT_DIPNAME( 0x0c, 0x04, "Heads" ) PORT_DIPLOCATION("1E:3,4") PORT_DIPSETTING( 0x00, "2" ) PORT_DIPSETTING( 0x04, "4" ) PORT_DIPSETTING( 0x08, "6" ) PORT_DIPSETTING( 0x0c, "8" ) - PORT_DIPNAME( 0xf0, 0x00, "Drive Type" ) PORT_DIPLOCATION("1E:5,6,7,8") + PORT_DIPNAME( 0xf0, 0x30, "Drive Type" ) PORT_DIPLOCATION("1E:5,6,7,8") PORT_DIPSETTING( 0x00, "Seagate ST506" ) PORT_DIPSETTING( 0x10, "Rodime RO100" ) PORT_DIPSETTING( 0x20, "Shugart SA600" ) @@ -285,7 +285,7 @@ uint8_t luxor_4105_device::abcbus_stat() 1 ? 2 ? 3 ? - 4 + 4 0 5 6 ? (tested at 014D9A, after command 08 sent and 1 byte read from SASI, should be 1) 7 diff --git a/src/devices/bus/scsi/s1410.cpp b/src/devices/bus/scsi/s1410.cpp index 5416089fd9d..d8ed4887cd1 100644 --- a/src/devices/bus/scsi/s1410.cpp +++ b/src/devices/bus/scsi/s1410.cpp @@ -112,7 +112,8 @@ ROM_START( s1410 ) ROM_REGION( 0x1000, Z8400A_TAG, 0 ) ROM_LOAD( "104521f", 0x0000, 0x1000, CRC(305b8e76) SHA1(9efaa53ae86bc111bd263ad433e083f78a000cab) ) ROM_LOAD( "104521g", 0x0000, 0x1000, CRC(24385115) SHA1(c389f6108cd5ed798a090acacce940ee43d77042) ) - ROM_LOAD( "104788d", 0x0000, 0x1000, CRC(2e385e2d) SHA1(7e2c349b2b6e95f2134f82cffc38d86b8a68390d) ) + ROM_LOAD( "104788d", 0x0000, 0x1000, CRC(2e385e2d) SHA1(7e2c349b2b6e95f2134f82cffc38d86b8a68390d) ) // BASF 6188 + ROM_LOAD( "104788e", 0x0000, 0x1000, CRC(40a7195d) SHA1(bf68e99dad182bfcbb5d488aeb440cba572a6ef8) ) // Seagate ST-251 ROM_REGION( 0x20, "103911", 0 ) ROM_LOAD( "103911", 0x00, 0x20, NO_DUMP ) // DM74S288N diff --git a/src/mame/drivers/abc1600.cpp b/src/mame/drivers/abc1600.cpp index 72cb46dfb53..79d507d0c87 100644 --- a/src/mame/drivers/abc1600.cpp +++ b/src/mame/drivers/abc1600.cpp @@ -70,8 +70,9 @@ - port C, open drain output bit PC1 (RTC/NVRAM data) - hard disk - 4105 SASI interface card - - SASI interface (scsibus.cpp) - - connect RS-232 port A + - connect RS-232 printer port + - Z80 SCC/DART interrupt chain + - Z80 SCC DMA request */ @@ -619,12 +620,12 @@ WRITE8_MEMBER( abc1600_state::dart_w ) READ8_MEMBER( abc1600_state::scc_r ) { - return m_scc->reg_r(A1_A2); + return m_scc->ab_dc_r(A2_A1); } WRITE8_MEMBER( abc1600_state::scc_w ) { - m_scc->reg_w(A1_A2, data); + m_scc->ab_dc_w(A2_A1, data); } @@ -894,14 +895,43 @@ void abc1600_state::abc1600(machine_config &config) m_dma2->out_iorq_callback().set(ABC1600_MAC_TAG, FUNC(abc1600_mac_device::dma2_iorq_w)); Z80DART(config, m_dart, 64_MHz_XTAL / 16); - m_dart->out_txda_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd)); - m_dart->out_dtra_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr)); - m_dart->out_rtsa_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts)); - m_dart->out_txdb_callback().set(ABC_KEYBOARD_PORT_TAG, FUNC(abc_keyboard_port_device::txd_w)); m_dart->out_int_callback().set_inputline(m_maincpu, M68K_IRQ_5); // shared with SCC + m_dart->out_txda_callback().set(RS232_PR_TAG, FUNC(rs232_port_device::write_txd)); + //m_dart->out_dtra_callback().set(RS232_PR_TAG, FUNC(rs232_port_device::write_dcd)); + //m_dart->out_rtsa_callback().set(RS232_PR_TAG, FUNC(rs232_port_device::write_cts)); + m_dart->out_txdb_callback().set(ABC_KEYBOARD_PORT_TAG, FUNC(abc_keyboard_port_device::txd_w)); + + abc_keyboard_port_device &kb(ABC_KEYBOARD_PORT(config, ABC_KEYBOARD_PORT_TAG, abc_keyboard_devices, "abc99")); + kb.out_rx_handler().set(m_dart, FUNC(z80dart_device::rxb_w)); + kb.out_trxc_handler().set(m_dart, FUNC(z80dart_device::rxtxcb_w)); + kb.out_keydown_handler().set(m_dart, FUNC(z80dart_device::dcdb_w)); - SCC8530(config, m_scc, 64_MHz_XTAL / 16); - m_scc->intrq_callback().set_inputline(MC68008P8_TAG, M68K_IRQ_5); + rs232_port_device &rs232pr(RS232_PORT(config, RS232_PR_TAG, default_rs232_devices, nullptr)); + rs232pr.rxd_handler().set(Z8470AB1_TAG, FUNC(z80dart_device::rxa_w)); + //rs232pr.rts_handler().set(Z8470AB1_TAG, FUNC(z80dart_device::ctsa_w)); + //rs232pr.dtr_handler().set(Z8470AB1_TAG, FUNC(z80dart_device::dcda_w)); + + SCC8530N(config, m_scc, 64_MHz_XTAL / 16); + m_scc->out_int_callback().set_inputline(MC68008P8_TAG, M68K_IRQ_5); + //m_scc->out_wreqa_callback().set(FUNC(abc1600_state::sccrq_w)); + //m_scc->out_wreqb_callback().set(FUNC(abc1600_state::sccrq_w)); + m_scc->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd)); + m_scc->out_dtra_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr)); + m_scc->out_rtsa_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts)); + m_scc->out_txdb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd)); + m_scc->out_dtrb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr)); + m_scc->out_rtsb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts)); + + rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(Z8530B1_TAG, FUNC(scc8530_device::rxa_w)); + rs232a.cts_handler().set(Z8530B1_TAG, FUNC(scc8530_device::ctsa_w)); + rs232a.dcd_handler().set(Z8530B1_TAG, FUNC(scc8530_device::dcda_w)); + rs232a.ri_handler().set(Z8530B1_TAG, FUNC(scc8530_device::synca_w)); + rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(Z8530B1_TAG, FUNC(scc8530_device::rxb_w)); + rs232b.cts_handler().set(Z8530B1_TAG, FUNC(scc8530_device::ctsb_w)); + rs232b.dcd_handler().set(Z8530B1_TAG, FUNC(scc8530_device::dcdb_w)); + rs232b.ri_handler().set(Z8530B1_TAG, FUNC(scc8530_device::syncb_w)); Z8536(config, m_cio, 64_MHz_XTAL / 16); m_cio->irq_wr_cb().set_inputline(MC68008P8_TAG, M68K_IRQ_2); @@ -923,16 +953,6 @@ void abc1600_state::abc1600(machine_config &config) FLOPPY_CONNECTOR(config, SAB1797_02P_TAG":1", abc1600_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, SAB1797_02P_TAG":2", abc1600_floppies, "525qd", floppy_image_device::default_floppy_formats); - RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr); - - rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr)); - rs232b.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w)); - - abc_keyboard_port_device &kb(ABC_KEYBOARD_PORT(config, ABC_KEYBOARD_PORT_TAG, abc_keyboard_devices, "abc99")); - kb.out_rx_handler().set(m_dart, FUNC(z80dart_device::rxb_w)); - kb.out_trxc_handler().set(m_dart, FUNC(z80dart_device::rxtxcb_w)); - kb.out_keydown_handler().set(m_dart, FUNC(z80dart_device::dcdb_w)); - abcbus_slot_device &bus0i(ABCBUS_SLOT(config, "bus0i", 64_MHz_XTAL / 16, abc1600bus_cards, nullptr)); bus0i.irq_callback().set(m_cio, FUNC(z8536_device::pa7_w)); abcbus_slot_device &bus0x(ABCBUS_SLOT(config, "bus0x", 64_MHz_XTAL / 16, abc1600bus_cards, nullptr)); diff --git a/src/mame/includes/abc1600.h b/src/mame/includes/abc1600.h index 2122c4ddf77..1a15fcb766c 100644 --- a/src/mame/includes/abc1600.h +++ b/src/mame/includes/abc1600.h @@ -6,19 +6,19 @@ #define MAME_INCLUDES_ABC1600_H #include "bus/abcbus/abcbus.h" +#include "bus/abckb/abckb.h" #include "bus/rs232/rs232.h" #include "cpu/m68000/m68000.h" -#include "machine/8530scc.h" -#include "bus/abckb/abckb.h" +#include "imagedev/floppy.h" #include "machine/abc1600mac.h" #include "machine/e0516.h" #include "machine/nmc9306.h" #include "machine/ram.h" #include "machine/wd_fdc.h" #include "machine/z80dma.h" +#include "machine/z80scc.h" #include "machine/z80sio.h" #include "machine/z8536.h" -#include "imagedev/floppy.h" #include "video/abc1600.h" @@ -45,6 +45,7 @@ #define BUS2_TAG "bus2" #define RS232_A_TAG "rs232a" #define RS232_B_TAG "rs232b" +#define RS232_PR_TAG "rs232pr" #define ABC_KEYBOARD_PORT_TAG "kb" @@ -58,26 +59,26 @@ class abc1600_state : public driver_device { public: - abc1600_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, MC68008P8_TAG), - m_dma0(*this, Z8410AB1_0_TAG), - m_dma1(*this, Z8410AB1_1_TAG), - m_dma2(*this, Z8410AB1_2_TAG), - m_dart(*this, Z8470AB1_TAG), - m_scc(*this, Z8530B1_TAG), - m_cio(*this, Z8536B1_TAG), - m_fdc(*this, SAB1797_02P_TAG), - m_rtc(*this, E050_C16PC_TAG), - m_nvram(*this, NMC9306_TAG), - m_ram(*this, RAM_TAG), - m_floppy0(*this, SAB1797_02P_TAG":0"), - m_floppy1(*this, SAB1797_02P_TAG":1"), - m_floppy2(*this, SAB1797_02P_TAG":2"), - m_bus0i(*this, BUS0I_TAG), - m_bus0x(*this, BUS0X_TAG), - m_bus1(*this, BUS1_TAG), - m_bus2(*this, BUS2_TAG) + abc1600_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, MC68008P8_TAG), + m_dma0(*this, Z8410AB1_0_TAG), + m_dma1(*this, Z8410AB1_1_TAG), + m_dma2(*this, Z8410AB1_2_TAG), + m_dart(*this, Z8470AB1_TAG), + m_scc(*this, Z8530B1_TAG), + m_cio(*this, Z8536B1_TAG), + m_fdc(*this, SAB1797_02P_TAG), + m_rtc(*this, E050_C16PC_TAG), + m_nvram(*this, NMC9306_TAG), + m_ram(*this, RAM_TAG), + m_floppy0(*this, SAB1797_02P_TAG":0"), + m_floppy1(*this, SAB1797_02P_TAG":1"), + m_floppy2(*this, SAB1797_02P_TAG":2"), + m_bus0i(*this, BUS0I_TAG), + m_bus0x(*this, BUS0X_TAG), + m_bus1(*this, BUS1_TAG), + m_bus2(*this, BUS2_TAG) { } required_device<m68000_base_device> m_maincpu; @@ -85,7 +86,7 @@ public: required_device<z80dma_device> m_dma1; required_device<z80dma_device> m_dma2; required_device<z80dart_device> m_dart; - required_device<scc8530_legacy_device> m_scc; + required_device<scc8530_device> m_scc; required_device<z8536_device> m_cio; required_device<fd1797_device> m_fdc; required_device<e0516_device> m_rtc; |