summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/pc98_cbus/fdd_2dd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/pc98_cbus/fdd_2dd.cpp')
-rw-r--r--src/devices/bus/pc98_cbus/fdd_2dd.cpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/devices/bus/pc98_cbus/fdd_2dd.cpp b/src/devices/bus/pc98_cbus/fdd_2dd.cpp
new file mode 100644
index 00000000000..98b00f35a9f
--- /dev/null
+++ b/src/devices/bus/pc98_cbus/fdd_2dd.cpp
@@ -0,0 +1,75 @@
+// license:BSD-3-Clause
+// copyright-holders:Angelo Salese
+/**************************************************************************************************
+
+FDD 2DD bridge for 1st gen HW
+
+**************************************************************************************************/
+
+#include "emu.h"
+#include "fdd_2dd.h"
+
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE(FDD_2DD_BRIDGE, fdd_2dd_bridge_device, "pc98_fdd_2dd", "PC-98 2DD FDD bridge")
+
+fdd_2dd_bridge_device::fdd_2dd_bridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, FDD_2DD_BRIDGE, tag, owner, clock)
+ , device_pc98_cbus_slot_interface(mconfig, *this)
+ , m_bios(*this, "bios")
+{
+}
+
+ROM_START( fdd_2dd )
+ ROM_REGION( 0x8000, "bios", ROMREGION_ERASEFF )
+ // from an onboard pc9801f
+ ROM_LOAD16_BYTE( "urf01-01.bin", 0x00000, 0x4000, CRC(2f5ae147) SHA1(69eb264d520a8fc826310b4fce3c8323867520ee) )
+ ROM_LOAD16_BYTE( "urf02-01.bin", 0x00001, 0x4000, CRC(62a86928) SHA1(4160a6db096dbeff18e50cbee98f5d5c1a29e2d1) )
+ROM_END
+
+const tiny_rom_entry *fdd_2dd_bridge_device::device_rom_region() const
+{
+ return ROM_NAME( fdd_2dd );
+}
+
+void fdd_2dd_bridge_device::device_add_mconfig(machine_config &config)
+{
+ // TODO: move from base driver
+}
+
+
+void fdd_2dd_bridge_device::device_start()
+{
+}
+
+void fdd_2dd_bridge_device::device_reset()
+{
+}
+
+void fdd_2dd_bridge_device::remap(int space_id, offs_t start, offs_t end)
+{
+ if (space_id == AS_PROGRAM)
+ {
+ // TODO: any option to disconnect the ROM?
+ logerror("map ROM at 0xd6000-0xd6fff\n");
+ m_bus->space(AS_PROGRAM).install_rom(
+ 0xd6000,
+ 0xd6fff,
+ m_bios->base()
+ );
+
+ }
+ else if (space_id == AS_IO)
+ {
+ m_bus->install_device(0x0000, 0xffff, *this, &fdd_2dd_bridge_device::io_map);
+ }
+}
+
+void fdd_2dd_bridge_device::io_map(address_map &map)
+{
+ // TODO: map me
+}
+