mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
New skeleton device: PleXCombo PX-320A DVD/CD-RW Drive [Firmware HQ]
This commit is contained in:
parent
41a333e791
commit
da07c8901b
@ -306,6 +306,8 @@ if (BUSES["ATA"]~=null) then
|
||||
MAME_DIR .. "src/devices/bus/ata/cr589.h",
|
||||
MAME_DIR .. "src/devices/bus/ata/idehd.cpp",
|
||||
MAME_DIR .. "src/devices/bus/ata/idehd.h",
|
||||
MAME_DIR .. "src/devices/bus/ata/px320a.cpp",
|
||||
MAME_DIR .. "src/devices/bus/ata/px320a.h",
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -11,6 +11,7 @@
|
||||
|
||||
#include "atapicdr.h"
|
||||
#include "idehd.h"
|
||||
#include "px320a.h"
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_ata_interface - constructor
|
||||
@ -68,4 +69,5 @@ void ata_devices(device_slot_interface &device)
|
||||
{
|
||||
device.option_add("hdd", IDE_HARDDISK);
|
||||
device.option_add("cdrom", ATAPI_CDROM);
|
||||
device.option_add("px320a", PX320A);
|
||||
}
|
||||
|
99
src/devices/bus/ata/px320a.cpp
Normal file
99
src/devices/bus/ata/px320a.cpp
Normal file
@ -0,0 +1,99 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:AJR
|
||||
/*******************************************************************************
|
||||
|
||||
Skeleton device for Plextor PleXCombo PX-320A IDE DVD/CD-RW drive.
|
||||
|
||||
*******************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "px320a.h"
|
||||
#include "cpu/fr/fr.h"
|
||||
|
||||
DEFINE_DEVICE_TYPE(PX320A, px320a_device, "px320a", "PleXCombo PX-320A CD-RW/DVD-ROM Drive")
|
||||
|
||||
px320a_device::px320a_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: device_t(mconfig, PX320A, tag, owner, clock)
|
||||
, device_ata_interface(mconfig, *this)
|
||||
, m_frcpu(*this, "frcpu")
|
||||
{
|
||||
}
|
||||
|
||||
void px320a_device::device_start()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
u16 px320a_device::read_dma()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
u16 px320a_device::read_cs0(offs_t offset, u16 mem_mask)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
u16 px320a_device::read_cs1(offs_t offset, u16 mem_mask)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void px320a_device::write_dma(u16 data)
|
||||
{
|
||||
}
|
||||
|
||||
void px320a_device::write_cs0(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
}
|
||||
|
||||
void px320a_device::write_cs1(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(px320a_device::write_dmack)
|
||||
{
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(px320a_device::write_csel)
|
||||
{
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(px320a_device::write_dasp)
|
||||
{
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(px320a_device::write_pdiag)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void px320a_device::frcpu_map(address_map &map)
|
||||
{
|
||||
map(0x00080000, 0x000fffff).rom().region("firmware", 0);
|
||||
}
|
||||
|
||||
void px320a_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
MB91101A(config, m_frcpu, 8000000); // FR type guessed; clock unknown
|
||||
m_frcpu->set_addrmap(AS_PROGRAM, &px320a_device::frcpu_map);
|
||||
}
|
||||
|
||||
ROM_START(px320a)
|
||||
ROM_REGION32_BE(0x80000, "firmware", 0)
|
||||
ROM_SYSTEM_BIOS(0, "v106", "Firmware v1.06")
|
||||
ROM_LOAD("sapp106.bin", 0x00000, 0x80000, CRC(2ba54c7a) SHA1(032cc5009fe84db902096ea2bb9dc2221601ab20))
|
||||
ROM_SYSTEM_BIOS(1, "v105", "Firmware v1.05")
|
||||
ROM_LOAD("sapp105.bin", 0x00000, 0x80000, CRC(3755a053) SHA1(fb966d506edb6e0a97ad64de3898ce9e75e22d7d))
|
||||
ROM_SYSTEM_BIOS(2, "v104", "Firmware v1.04a")
|
||||
ROM_LOAD("sapp104.bin", 0x00000, 0x80000, CRC(7197425f) SHA1(0b02508d668439a78ea8e3d97eddf5a3de6e2ba5))
|
||||
ROM_SYSTEM_BIOS(3, "v103", "Firmware v1.03")
|
||||
ROM_LOAD("sap1032.bin", 0x00000, 0x80000, CRC(9ff1c729) SHA1(6ed44bf8decaac2ee9127bdd66e0ff1fd52969c3))
|
||||
ROM_SYSTEM_BIOS(4, "v102", "Firmware v1.02")
|
||||
ROM_LOAD("sapp102.bin", 0x00000, 0x80000, CRC(9f96bea4) SHA1(5b70f32e83d8c19d2895d38d0f7e15f2eee326fd))
|
||||
ROM_END
|
||||
|
||||
const tiny_rom_entry *px320a_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME(px320a);
|
||||
}
|
42
src/devices/bus/ata/px320a.h
Normal file
42
src/devices/bus/ata/px320a.h
Normal file
@ -0,0 +1,42 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:AJR
|
||||
|
||||
#ifndef MAME_BUS_ATA_PX320A_H
|
||||
#define MAME_BUS_ATA_PX320A_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "atadev.h"
|
||||
|
||||
class px320a_device : public device_t, public device_ata_interface
|
||||
{
|
||||
public:
|
||||
px320a_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 frcpu_map(address_map &map);
|
||||
|
||||
required_device<cpu_device> m_frcpu;
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(PX320A, px320a_device)
|
||||
|
||||
#endif // MAME_BUS_ATA_PX320A_H
|
Loading…
Reference in New Issue
Block a user