From 4dd437314f72127147b2a364861df763f9d36554 Mon Sep 17 00:00:00 2001 From: arbee Date: Sat, 24 Sep 2022 20:28:48 -0400 Subject: apple: remove the legacy version of the SWIM device. [R. Belmont] --- src/mame/apple/swim.cpp | 223 ------------------------------------------------ src/mame/apple/swim.h | 56 ------------ 2 files changed, 279 deletions(-) delete mode 100644 src/mame/apple/swim.cpp delete mode 100644 src/mame/apple/swim.h diff --git a/src/mame/apple/swim.cpp b/src/mame/apple/swim.cpp deleted file mode 100644 index 04515a2129b..00000000000 --- a/src/mame/apple/swim.cpp +++ /dev/null @@ -1,223 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:R. Belmont -/********************************************************************* - - swim.c - - Implementation of the Apple SWIM FDC controller; used on (less) - early Macs - -*********************************************************************/ - -#include "emu.h" -#include "swim.h" - - -/*************************************************************************** - CONSTANTS -***************************************************************************/ - -#define LOG_SWIM 0 - -enum -{ - SWIM_MODE_IWM, - SWIM_MODE_SWIM, - SWIM_MODE_SWIM2, - SWIM_MODE_SWIM3 -}; - - -/*************************************************************************** - DEVICE -***************************************************************************/ - -DEFINE_DEVICE_TYPE(LEGACY_SWIM, swim_device, "swiml", "Apple SWIM (Sander/Woz Integrated Machine) (legacy)") - -//------------------------------------------------- -// ctor -//------------------------------------------------- - -swim_device::swim_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : applefdc_base_device(APPLEFDC_SWIM, mconfig, LEGACY_SWIM, tag, owner, clock) -{ -} - - - -//------------------------------------------------- -// device_start - device-specific start -//------------------------------------------------- - -void swim_device::device_start() -{ - // call inherited version - applefdc_base_device::device_start(); - - m_swim_mode = SWIM_MODE_IWM; - m_swim_magic_state = 0x00; - m_parm_offset = 0x00; - memset(m_ism_regs, 0, sizeof(m_ism_regs)); - memset(m_parms, 0, sizeof(m_parms)); -} - - - -//------------------------------------------------- -// device_reset - device-specific reset -//------------------------------------------------- - -void swim_device::device_reset() -{ - // call inherited version - applefdc_base_device::device_reset(); - - static uint8_t swim_default_parms[16] = - { - 0x38, 0x18, 0x41, 0x2e, 0x2e, 0x18, 0x18, 0x1b, - 0x1b, 0x2f, 0x2f, 0x19, 0x19, 0x97, 0x1b, 0x57 - }; - - for (int i = 0; i < 16; i++) - { - m_parms[i] = swim_default_parms[i]; - } - - m_swim_magic_state = 0; - m_swim_mode = SWIM_MODE_IWM; - m_parm_offset = 0; -} - - - -//------------------------------------------------- -// read - reads a byte from the FDC -//------------------------------------------------- - -uint8_t swim_device::read(offs_t offset) -{ - uint8_t result = 0; - - if (m_swim_mode == SWIM_MODE_IWM) - { - // IWM mode - result = applefdc_base_device::read(offset); - } - else if (m_swim_mode >= SWIM_MODE_SWIM) - { - // reading parameter RAM? - if ((offset & 7) == 3) - { - result = m_parms[m_parm_offset++]; - m_parm_offset &= 0xf; - } - else - { - result = m_ism_regs[offset&7]; - } - - if (LOG_SWIM) - logerror("SWIM: read %02x from offset %x\n", result, offset & 7); - } - return result; -} - - - -//------------------------------------------------- -// write - write a byte to the FDC -//------------------------------------------------- - -void swim_device::write(offs_t offset, uint8_t data) -{ - if (m_swim_mode == SWIM_MODE_IWM) - { - // IWM mode - applefdc_base_device::write(offset, data); - } - else if (m_swim_mode >= SWIM_MODE_SWIM) - { - if (LOG_SWIM) - logerror("SWIM: write %02x to offset %x\n", data, offset & 7); - - switch (offset & 7) - { - case 2: // write CRC - break; - - case 3: // write parameter - m_parms[m_parm_offset++] = data; - m_parm_offset &= 0xf; - break; - - case 6: // write zeros to status (also zeroes parameter RAM pointer) - m_ism_regs[6] &= ~data; - m_parm_offset = 0; - - if (data == 0xf8) // magic "revert to IWM" value - { - if (LOG_SWIM) - logerror("SWIM: reverting to IWM\n"); - m_swim_mode = SWIM_MODE_IWM; - } - break; - - case 7: // write ones to status - m_ism_regs[6] |= data; - break; - - default: - m_ism_regs[offset & 7] = data; - break; - - } - } -} - - - -//------------------------------------------------- -// iwm_modereg_w - changes the mode register -//------------------------------------------------- - -void swim_device::iwm_modereg_w(uint8_t data) -{ - // SWIM mode is unlocked by writing 1/0/1/1 in a row to bit 6 (which is unused on IWM) - // when SWIM mode engages, the IWM is disconnected from both the 68k and the drives, - // and the ISM is substituted. - - switch (m_swim_magic_state) - { - case 0: - case 2: - case 3: - if (data & 0x40) - { - m_swim_magic_state++; - } - else - { - m_swim_magic_state = 0; - } - break; - case 1: - if (!(data & 0x40)) - { - m_swim_magic_state++; - } - else - { - m_swim_magic_state = 0; - } - break; - } - - if (m_swim_magic_state == 4) - { - m_swim_magic_state = 0; - m_swim_mode = SWIM_MODE_SWIM; - } - - // call inherited version - applefdc_base_device::iwm_modereg_w(data); -} diff --git a/src/mame/apple/swim.h b/src/mame/apple/swim.h deleted file mode 100644 index ac3b072a449..00000000000 --- a/src/mame/apple/swim.h +++ /dev/null @@ -1,56 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:R. Belmont -/********************************************************************* - - swim.h - - Implementation of the Apple SWIM FDC controller; used on (less) - early Macs - -*********************************************************************/ -#ifndef MAME_MACHINE_SWIM_H -#define MAME_MACHINE_SWIM_H - -#pragma once - -#include "machine/applefdc.h" - - -/*************************************************************************** - DEVICE -***************************************************************************/ - -DECLARE_DEVICE_TYPE(LEGACY_SWIM, swim_device) - -class swim_device : public applefdc_base_device -{ -public: - swim_device(const machine_config &mconfig, const char *tag, device_t *owner, const applefdc_interface *intrf) - : swim_device(mconfig, tag, owner, (uint32_t)0) - { - set_config(intrf); - } - - swim_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // read/write - virtual uint8_t read(offs_t offset) override; - virtual void write(offs_t offset, uint8_t data) override; - -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - - // other overrides - virtual void iwm_modereg_w(uint8_t data) override; - -private: - uint8_t m_swim_mode = 0; - uint8_t m_swim_magic_state = 0; - uint8_t m_parm_offset = 0; - uint8_t m_ism_regs[8]{}; - uint8_t m_parms[16]{}; -}; - -#endif // MAME_MACHINE_SWIM_H -- cgit v1.2.3