From fa612073a6d42889bc33fbd517b625617a345b1e Mon Sep 17 00:00:00 2001 From: Curt Coder Date: Wed, 4 Oct 2017 21:21:28 +0300 Subject: abc800: Added skeleton for Databoard 4112-23 floppy disk controller. [Curt Coder] --- scripts/src/bus.lua | 2 + src/devices/bus/abcbus/abcbus.cpp | 3 + src/devices/bus/abcbus/db411223.cpp | 208 ++++++++++++++++++++++++++++++++++++ src/devices/bus/abcbus/db411223.h | 60 +++++++++++ 4 files changed, 273 insertions(+) create mode 100644 src/devices/bus/abcbus/db411223.cpp create mode 100644 src/devices/bus/abcbus/db411223.h diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua index 159d1cc7efe..21a6fb3802e 100644 --- a/scripts/src/bus.lua +++ b/scripts/src/bus.lua @@ -66,6 +66,8 @@ if (BUSES["ABCBUS"]~=null) then MAME_DIR .. "src/devices/bus/abcbus/abcbus.h", MAME_DIR .. "src/devices/bus/abcbus/abc890.cpp", MAME_DIR .. "src/devices/bus/abcbus/abc890.h", + MAME_DIR .. "src/devices/bus/abcbus/db411223.cpp", + MAME_DIR .. "src/devices/bus/abcbus/db411223.h", MAME_DIR .. "src/devices/bus/abcbus/fd2.cpp", MAME_DIR .. "src/devices/bus/abcbus/fd2.h", MAME_DIR .. "src/devices/bus/abcbus/hdc.cpp", diff --git a/src/devices/bus/abcbus/abcbus.cpp b/src/devices/bus/abcbus/abcbus.cpp index cf99539e142..ac707c4bdbb 100644 --- a/src/devices/bus/abcbus/abcbus.cpp +++ b/src/devices/bus/abcbus/abcbus.cpp @@ -80,6 +80,7 @@ void abcbus_slot_device::device_start() // slot devices #include "abc890.h" +#include "db411223.h" #include "fd2.h" #include "hdc.h" #include "lux10828.h" @@ -106,6 +107,7 @@ SLOT_INTERFACE_START( abc80_cards ) SLOT_INTERFACE("16k", ABC80_16KB_RAM_CARD) SLOT_INTERFACE("slow", LUXOR_55_10828) SLOT_INTERFACE("abc830", ABC830) + SLOT_INTERFACE("db411223", DATABOARD_4112_23) SLOT_INTERFACE("unidisk", UNIDISK) SLOT_INTERFACE_END @@ -125,6 +127,7 @@ SLOT_INTERFACE_START( abcbus_cards ) SLOT_INTERFACE("abc856", ABC856) SLOT_INTERFACE("abc890", ABC890) SLOT_INTERFACE("abc894", ABC894) + SLOT_INTERFACE("db411223", DATABOARD_4112_23) SLOT_INTERFACE("hdc", ABC_HDC) SLOT_INTERFACE("sio", ABC_SIO) SLOT_INTERFACE("slow", LUXOR_55_10828) diff --git a/src/devices/bus/abcbus/db411223.cpp b/src/devices/bus/abcbus/db411223.cpp new file mode 100644 index 00000000000..244cde4c0b4 --- /dev/null +++ b/src/devices/bus/abcbus/db411223.cpp @@ -0,0 +1,208 @@ +// license:BSD-3-Clause +// copyright-holders:Curt Coder +/********************************************************************** + + Databoard 4112-23 floppy disk controller emulation + +*********************************************************************/ + +#include "emu.h" +#include "db411223.h" + + + +//************************************************************************** +// MACROS / CONSTANTS +//************************************************************************** + +#define Z80_TAG "maincpu" + + +//************************************************************************** +// DEVICE DEFINITIONS +//************************************************************************** + +DEFINE_DEVICE_TYPE(DATABOARD_4112_23, databoard_4112_23_t, "db411223", "Databoard 4112-23") + + +//------------------------------------------------- +// ROM( databoard_4112_23 ) +//------------------------------------------------- + +ROM_START( databoard_4112_23 ) + ROM_REGION( 0x2000, Z80_TAG, 0 ) + ROM_LOAD("fpy_int_4112-23_teac_fd55.bin", 0x0000, 0x2000, CRC(9175ceb8) SHA1(95c150d3152df318abd9267915d5669d2ec33895)) +ROM_END + + +//------------------------------------------------- +// rom_region - device-specific ROM region +//------------------------------------------------- + +const tiny_rom_entry *databoard_4112_23_t::device_rom_region() const +{ + return ROM_NAME( databoard_4112_23 ); +} + + +//------------------------------------------------- +// ADDRESS_MAP( databoard_4112_23_mem ) +//------------------------------------------------- + +static ADDRESS_MAP_START( databoard_4112_23_mem, AS_PROGRAM, 8, databoard_4112_23_t ) + AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION(Z80_TAG, 0) +ADDRESS_MAP_END + + +//------------------------------------------------- +// ADDRESS_MAP( databoard_4112_23_io ) +//------------------------------------------------- + +static ADDRESS_MAP_START( databoard_4112_23_io, AS_IO, 8, databoard_4112_23_t ) +ADDRESS_MAP_END + + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( databoard_4112_23_t::device_add_mconfig ) + MCFG_CPU_ADD(Z80_TAG, Z80, 4000000) + MCFG_CPU_PROGRAM_MAP(databoard_4112_23_mem) + MCFG_CPU_IO_MAP(databoard_4112_23_io) +MACHINE_CONFIG_END + + +//------------------------------------------------- +// INPUT_PORTS( databoard_4112_23 ) +//------------------------------------------------- + +INPUT_PORTS_START( databoard_4112_23 ) +INPUT_PORTS_END + + +//------------------------------------------------- +// input_ports - device-specific input ports +//------------------------------------------------- + +ioport_constructor databoard_4112_23_t::device_input_ports() const +{ + return INPUT_PORTS_NAME( databoard_4112_23 ); +} + + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// databoard_4112_23_t - constructor +//------------------------------------------------- + +databoard_4112_23_t::databoard_4112_23_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, DATABOARD_4112_23, tag, owner, clock), + device_abcbus_card_interface(mconfig, *this), + m_maincpu(*this, Z80_TAG) +{ +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void databoard_4112_23_t::device_start() +{ +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void databoard_4112_23_t::device_reset() +{ + m_cs = false; +} + + + +//************************************************************************** +// ABC BUS INTERFACE +//************************************************************************** + +//------------------------------------------------- +// abcbus_cs - +//------------------------------------------------- + +void databoard_4112_23_t::abcbus_cs(uint8_t data) +{ +} + + +//------------------------------------------------- +// abcbus_stat - +//------------------------------------------------- + +uint8_t databoard_4112_23_t::abcbus_stat() +{ + uint8_t data = 0xff; + + if (m_cs) + { + } + + return data; +} + + +//------------------------------------------------- +// abcbus_inp - +//------------------------------------------------- + +uint8_t databoard_4112_23_t::abcbus_inp() +{ + uint8_t data = 0xff; + + if (m_cs) + { + } + + return data; +} + + +//------------------------------------------------- +// abcbus_out - +//------------------------------------------------- + +void databoard_4112_23_t::abcbus_out(uint8_t data) +{ + if (!m_cs) return; +} + + +//------------------------------------------------- +// abcbus_c1 - +//------------------------------------------------- + +void databoard_4112_23_t::abcbus_c1(uint8_t data) +{ + if (m_cs) + { + } +} + + +//------------------------------------------------- +// abcbus_c3 - +//------------------------------------------------- + +void databoard_4112_23_t::abcbus_c3(uint8_t data) +{ + if (m_cs) + { + m_maincpu->reset(); + } +} diff --git a/src/devices/bus/abcbus/db411223.h b/src/devices/bus/abcbus/db411223.h new file mode 100644 index 00000000000..1434db349aa --- /dev/null +++ b/src/devices/bus/abcbus/db411223.h @@ -0,0 +1,60 @@ +// license:BSD-3-Clause +// copyright-holders:Curt Coder +/********************************************************************** + + Databoard 4112-23 floppy disk controller emulation + +*********************************************************************/ + +#ifndef MAME_BUS_ABCBUS_DATABOARD_4112_23_H +#define MAME_BUS_ABCBUS_DATABOARD_4112_23_H + +#pragma once + +#include "abcbus.h" +#include "cpu/z80/z80.h" + + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> databoard_4112_23_t + +class databoard_4112_23_t : public device_t, + public device_abcbus_card_interface +{ +public: + // construction/destruction + databoard_4112_23_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + + // device_abcbus_interface overrides + virtual void abcbus_cs(uint8_t data) override; + virtual uint8_t abcbus_inp() override; + virtual void abcbus_out(uint8_t data) override; + virtual uint8_t abcbus_stat() override; + virtual void abcbus_c1(uint8_t data) override; + virtual void abcbus_c3(uint8_t data) override; + +private: + required_device m_maincpu; + + bool m_cs; +}; + + +// device type definition +DECLARE_DEVICE_TYPE(DATABOARD_4112_23, databoard_4112_23_t) + +#endif // MAME_BUS_ABCBUS_DATABOARD_4112_23_H -- cgit v1.2.3