Add dump and skeleton device for Conner Peripherals CD-2024 hard disk [Bitsavers]

This commit is contained in:
AJR 2023-05-17 14:09:20 -04:00
parent 9d75e32ba9
commit cc2bc77004
4 changed files with 145 additions and 0 deletions

View File

@ -481,6 +481,8 @@ if (BUSES["ATA"]~=null) then
MAME_DIR .. "src/devices/bus/ata/atapicdr.h",
MAME_DIR .. "src/devices/bus/ata/atapihle.cpp",
MAME_DIR .. "src/devices/bus/ata/atapihle.h",
MAME_DIR .. "src/devices/bus/ata/cp2024.cpp",
MAME_DIR .. "src/devices/bus/ata/cp2024.h",
MAME_DIR .. "src/devices/bus/ata/cr589.cpp",
MAME_DIR .. "src/devices/bus/ata/cr589.h",
MAME_DIR .. "src/devices/bus/ata/gdrom.cpp",

View File

@ -10,6 +10,7 @@
#include "atadev.h"
#include "atapicdr.h"
#include "cp2024.h"
#include "idehd.h"
#include "px320a.h"
@ -71,4 +72,5 @@ void ata_devices(device_slot_interface &device)
device.option_add("cdrom", ATAPI_CDROM);
device.option_add("px320a", PX320A);
device.option_add("cf", ATA_CF);
device.option_add("cp2024", CP2024);
}

View File

@ -0,0 +1,101 @@
// license:BSD-3-Clause
// copyright-holders:AJR
/*******************************************************************************
Skeleton device for Conner Peripherals CP-2024 2.5 IDE hard disk drive.
Codename: "Kato"
ICs: Linear Technology LT1072 (DIP8)
Cirrus Logic SH110-00PC (PLCC28)
Cirrus Logic CL-SH265-25QC-C (QFP100)
Microchip 27C256-20/L (PLCC32)
Motorola SC80566FN (PLCC52)
Texas Instruments LS01 (SOP14)
S-MOS 61100-003 (QFP64)
Cirrus Logic 61094-4 (PLCC44)
LSI Logic(?) 61089-003 (PLCC52)
*******************************************************************************/
#include "emu.h"
#include "cp2024.h"
#include "cpu/mc68hc11/mc68hc11.h"
DEFINE_DEVICE_TYPE(CP2024, cp2024_device, "cp2024", "Conner Peripherals CP-2024 hard disk")
cp2024_device::cp2024_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: device_t(mconfig, CP2024, tag, owner, clock)
, device_ata_interface(mconfig, *this)
{
}
void cp2024_device::device_start()
{
}
u16 cp2024_device::read_dma()
{
return 0;
}
u16 cp2024_device::read_cs0(offs_t offset, u16 mem_mask)
{
return 0;
}
u16 cp2024_device::read_cs1(offs_t offset, u16 mem_mask)
{
return 0;
}
void cp2024_device::write_dma(u16 data)
{
}
void cp2024_device::write_cs0(offs_t offset, u16 data, u16 mem_mask)
{
}
void cp2024_device::write_cs1(offs_t offset, u16 data, u16 mem_mask)
{
}
WRITE_LINE_MEMBER(cp2024_device::write_dmack)
{
}
WRITE_LINE_MEMBER(cp2024_device::write_csel)
{
}
WRITE_LINE_MEMBER(cp2024_device::write_dasp)
{
}
WRITE_LINE_MEMBER(cp2024_device::write_pdiag)
{
}
void cp2024_device::mcu_map(address_map &map)
{
//map(0x0000, 0x00ff).m("sh265", FUNC(cl_sh265_device::map));
map(0x8000, 0xffff).rom().region("eprom", 0);
}
void cp2024_device::device_add_mconfig(machine_config &config)
{
mc68hc11a1_device &mcu(MC68HC11A1(config, "mcu", 10'000'000)); // clock unknown
mcu.set_addrmap(AS_PROGRAM, &cp2024_device::mcu_map);
}
ROM_START(cp2024)
ROM_REGION(0x8000, "eprom", 0)
ROM_LOAD("27c256.bin", 0x0000, 0x8000, CRC(574b5904) SHA1(79bccc33835ba01fc4eb33fb4d412a691e7790c2))
ROM_END
const tiny_rom_entry *cp2024_device::device_rom_region() const
{
return ROM_NAME(cp2024);
}

View File

@ -0,0 +1,40 @@
// license:BSD-3-Clause
// copyright-holders:AJR
#ifndef MAME_BUS_ATA_CP2024_H
#define MAME_BUS_ATA_CP2024_H
#pragma once
#include "atadev.h"
class cp2024_device : public device_t, public device_ata_interface
{
public:
cp2024_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
static constexpr feature_type unemulated_features() { return feature::DISK; }
protected:
virtual void device_start() override;
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
virtual u16 read_dma() override;
virtual u16 read_cs0(offs_t offset, u16 mem_mask = 0xffff) override;
virtual u16 read_cs1(offs_t offset, u16 mem_mask = 0xffff) override;
virtual void write_dma(u16 data) override;
virtual void write_cs0(offs_t offset, u16 data, u16 mem_mask = 0xffff) override;
virtual void write_cs1(offs_t offset, u16 data, u16 mem_mask = 0xffff) override;
virtual DECLARE_WRITE_LINE_MEMBER(write_dmack) override;
virtual DECLARE_WRITE_LINE_MEMBER(write_csel) override;
virtual DECLARE_WRITE_LINE_MEMBER(write_dasp) override;
virtual DECLARE_WRITE_LINE_MEMBER(write_pdiag) override;
private:
void mcu_map(address_map &map);
};
DECLARE_DEVICE_TYPE(CP2024, cp2024_device)
#endif // MAME_BUS_ATA_CP2024_H