summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/applefdc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/applefdc.h')
-rw-r--r--src/devices/machine/applefdc.h156
1 files changed, 0 insertions, 156 deletions
diff --git a/src/devices/machine/applefdc.h b/src/devices/machine/applefdc.h
deleted file mode 100644
index afdf13de0d8..00000000000
--- a/src/devices/machine/applefdc.h
+++ /dev/null
@@ -1,156 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Nathan Woods, Raphael Nabet, R. Belmont
-/*********************************************************************
-
- applefdc.h
-
- Implementation of various Apple Floppy Disk Controllers, including
- the classic Apple controller and the IWM (Integrated Woz Machine)
- chip
-
- Nate Woods
- Raphael Nabet
- R. Belmont
-
-*********************************************************************/
-
-#ifndef MAME_MACHINE_APPLEFDC_H
-#define MAME_MACHINE_APPLEFDC_H
-
-#pragma once
-
-
-
-/***************************************************************************
- CONSTANTS
-***************************************************************************/
-
-#define APPLEFDC_PH0 0x01
-#define APPLEFDC_PH1 0x02
-#define APPLEFDC_PH2 0x04
-#define APPLEFDC_PH3 0x08
-
-DECLARE_DEVICE_TYPE(APPLEFDC, applefdc_device)
-DECLARE_DEVICE_TYPE(IWM, iwm_device)
-
-
-
-/***************************************************************************
- INTERFACE
-***************************************************************************/
-
-struct applefdc_interface
-{
- void (*set_lines)(device_t *device, uint8_t lines);
- void (*set_enable_lines)(device_t *device, int enable_mask);
-
- uint8_t (*read_data)(device_t *device);
- void (*write_data)(device_t *device, uint8_t data);
- int (*read_status)(device_t *device);
-};
-
-
-
-/***************************************************************************
- BASE DEVICE
-***************************************************************************/
-
-class applefdc_base_device : public device_t
-{
-public:
- // configuration helpers
- void set_config(const applefdc_interface *intrf) { m_interface = intrf; }
-
- // read/write handlers
- virtual uint8_t read(uint8_t offset);
- virtual void write(uint8_t offset, uint8_t data);
-
- // read/write handlers overloads
- DECLARE_READ8_MEMBER( bus_r ) { return read(uint8_t(offset)); }
- DECLARE_WRITE8_MEMBER( bus_w ) { write(uint8_t(offset), data); }
-
- // accessor
- uint8_t get_lines();
-
- virtual void device_reset() override;
-
-protected:
- enum applefdc_t
- {
- APPLEFDC_APPLE2, /* classic Apple II disk controller (pre-IWM) */
- APPLEFDC_IWM, /* Integrated Woz Machine */
- APPLEFDC_SWIM /* Sander/Woz Integrated Machine */
- };
-
- // constructor
- applefdc_base_device(applefdc_t fdc_type, const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
-
- // device-level overrides
- virtual void device_start() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
-
- // other protecteds
- virtual void iwm_modereg_w(uint8_t data);
-
-private:
- // data that is constant for the lifetime of the emulation
- emu_timer * m_motor_timer;
- applefdc_t m_type;
- const applefdc_interface *m_interface;
-
- // data that changes at emulation time
- uint8_t m_write_byte;
- uint8_t m_lines; /* flags from IWM_MOTOR - IWM_Q7 */
- uint8_t m_mode; /* 0-31; see above */
- uint8_t m_handshake_hack; /* not sure what this is for */
-
- // functions
- const applefdc_interface *get_interface();
- int iwm_enable2();
- uint8_t iwm_readenable2handshake();
- uint8_t statusreg_r();
- uint8_t read_reg(int lines);
- void write_reg(uint8_t data);
- void turn_motor_onoff(bool status);
- void iwm_access(int offset);
-};
-
-
-
-/***************************************************************************
- APPLE FDC - Used on Apple II
-***************************************************************************/
-
-class applefdc_device : public applefdc_base_device
-{
-public:
- applefdc_device(const machine_config &mconfig, const char *tag, device_t *owner, const applefdc_interface *intrf)
- : applefdc_device(mconfig, tag, owner, (uint32_t)0)
- {
- set_config(intrf);
- }
-
- applefdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-};
-
-
-
-/***************************************************************************
- IWM - Used on early Macs
-***************************************************************************/
-
-class iwm_device : public applefdc_base_device
-{
-public:
- iwm_device(const machine_config &mconfig, const char *tag, device_t *owner, const applefdc_interface *intrf)
- : iwm_device(mconfig, tag, owner, (uint32_t)0)
- {
- set_config(intrf);
- }
-
- iwm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-
- static constexpr feature_type imperfect_features() { return feature::DISK; }
-};
-
-#endif // MAME_MACHINE_APPLEFDC_H