diff options
author | 2015-09-13 08:41:44 +0200 | |
---|---|---|
committer | 2015-09-13 08:41:44 +0200 | |
commit | f88cefad27a1737c76e09d99c9fb43e173506081 (patch) | |
tree | 2d8167d03579c46e226471747eb4407bd00ed6fa /src/devices/bus/isa/mufdc.h | |
parent | e92ac9e0fa8e99869894bea00589bbb526be30aa (diff) |
Move all devices into separate part of src tree (nw)
Diffstat (limited to 'src/devices/bus/isa/mufdc.h')
-rw-r--r-- | src/devices/bus/isa/mufdc.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/src/devices/bus/isa/mufdc.h b/src/devices/bus/isa/mufdc.h new file mode 100644 index 00000000000..bf33d8f4a6d --- /dev/null +++ b/src/devices/bus/isa/mufdc.h @@ -0,0 +1,94 @@ +// license:BSD-3-Clause +// copyright-holders:Dirk Best +/*************************************************************************** + + Multi Unique FDC + + 8-bit floppy controller, supports 4 drives with 360k, 720k, + 1.2MB or 1.44MB. It was sold under a few different names: + + - Ably-Tech FDC-344 + - Magitronic Multi Floppy Controller Card + - Micro-Q (same as FDC-344?) + - Modular Circuit Technology MCT-FDC-HD4 (not dumped) + +***************************************************************************/ + +#pragma once + +#ifndef __ISA_MUFDC_H__ +#define __ISA_MUFDC_H__ + +#include "emu.h" +#include "isa.h" +#include "imagedev/floppy.h" +#include "machine/upd765.h" + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> mufdc_device + +class mufdc_device : public device_t, + public device_isa8_card_interface +{ +public: + // construction/destruction + mufdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, UINT32 clock, const char *name, const char *shortname); + + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const; + virtual ioport_constructor device_input_ports() const; + + DECLARE_FLOPPY_FORMATS( floppy_formats ); + + DECLARE_READ8_MEMBER( fdc_input_r ); + DECLARE_WRITE_LINE_MEMBER( fdc_irq_w ); + DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); + +protected: + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + + // device_isa8_card_interface + virtual UINT8 dack_r(int line); + virtual void dack_w(int line, UINT8 data); + virtual void eop_w(int state); + +private: + required_device<pc_fdc_interface> m_fdc; + required_ioport m_config; +}; + +class fdc344_device : public mufdc_device +{ +public: + // construction/destruction + fdc344_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + virtual const rom_entry *device_rom_region() const; + +protected: + virtual void device_config_complete() { m_shortname = "fdc344"; } +}; + +class fdcmag_device : public mufdc_device +{ +public: + // construction/destruction + fdcmag_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + virtual const rom_entry *device_rom_region() const; + +protected: + virtual void device_config_complete() { m_shortname = "fdcmag"; } +}; + +// device type definition +extern const device_type ISA8_FDC344; +extern const device_type ISA8_FDCMAG; + +#endif |