diff options
Diffstat (limited to 'src/mess/machine/applefdc.h')
-rw-r--r-- | src/mess/machine/applefdc.h | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/src/mess/machine/applefdc.h b/src/mess/machine/applefdc.h deleted file mode 100644 index 38efb9036d2..00000000000 --- a/src/mess/machine/applefdc.h +++ /dev/null @@ -1,163 +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 __APPLEFDC_H__ -#define __APPLEFDC_H__ - -#include "emu.h" - - - -/*************************************************************************** - CONSTANTS -***************************************************************************/ - -#define APPLEFDC_PH0 0x01 -#define APPLEFDC_PH1 0x02 -#define APPLEFDC_PH2 0x04 -#define APPLEFDC_PH3 0x08 - -extern const device_type APPLEFDC; -extern const device_type IWM; -extern const device_type SWIM; - - - -/*************************************************************************** - INTERFACE -***************************************************************************/ - -struct applefdc_interface -{ - void (*set_lines)(device_t *device, UINT8 lines); - void (*set_enable_lines)(device_t *device, int enable_mask); - - UINT8 (*read_data)(device_t *device); - void (*write_data)(device_t *device, UINT8 data); - int (*read_status)(device_t *device); -}; - - - -/*************************************************************************** - BASE DEVICE -***************************************************************************/ - -class applefdc_base_device : public device_t -{ -public: - // read/write handlers - virtual UINT8 read(UINT8 offset); - virtual void write(UINT8 offset, UINT8 data); - - // read/write handlers overloads - UINT8 read(offs_t offset) { return read((UINT8) offset); } - void write(offs_t offset, UINT8 data) { write((UINT8) offset, data); } - DECLARE_READ8_MEMBER( read ) { return read((UINT8) offset); } - DECLARE_WRITE8_MEMBER( write ) { write((UINT8) offset, data); } - - // accessor - UINT8 get_lines(); - -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 *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); - - // device-level overrides - virtual void device_start(); - virtual void device_reset(); - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); - - // other protecteds - virtual void iwm_modereg_w(UINT8 data); - -private: - // data that is constant for the lifetime of the emulation - emu_timer * m_motor_timer; - applefdc_t m_type; - - // data that changes at emulation time - UINT8 m_write_byte; - UINT8 m_lines; /* flags from IWM_MOTOR - IWM_Q7 */ - UINT8 m_mode; /* 0-31; see above */ - UINT8 m_handshake_hack; /* not sure what this is for */ - - // functions - const applefdc_interface *get_interface(); - int iwm_enable2(); - UINT8 iwm_readenable2handshake(); - UINT8 statusreg_r(); - UINT8 read_reg(int lines); - void write_reg(UINT8 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, UINT32 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, UINT32 clock); -}; - - - -/*************************************************************************** - DEVICE CONFIGURATION MACROS -***************************************************************************/ - -#define MCFG_APPLEFDC_ADD(_tag, _intrf) \ - MCFG_DEVICE_ADD(_tag, APPLEFDC, 0) \ - MCFG_DEVICE_CONFIG(_intrf) - -#define MCFG_APPLEFDC_MODIFY(_tag, _intrf) \ - MCFG_DEVICE_MODIFY(_tag) \ - MCFG_DEVICE_CONFIG(_intrf) - -#define MCFG_IWM_ADD(_tag, _intrf) \ - MCFG_DEVICE_ADD(_tag, IWM, 0) \ - MCFG_DEVICE_CONFIG(_intrf) - -#define MCFG_IWM_MODIFY(_tag, _intrf) \ - MCFG_DEVICE_MODIFY(_tag) \ - MCFG_DEVICE_CONFIG(_intrf) - - -#endif /* __APPLEFDC_H__ */ |