mirror of
https://github.com/holub/mame
synced 2025-04-20 23:42:22 +03:00
(MESS) apple2gs: Add support for Vulcan Gold IDE card [R. Belmont, Spk]
This commit is contained in:
parent
a29a054900
commit
1fdf5afd72
@ -61,6 +61,7 @@
|
||||
//**************************************************************************
|
||||
|
||||
const device_type A2BUS_VULCAN = &device_creator<a2bus_vulcan_device>;
|
||||
const device_type A2BUS_VULCANGOLD = &device_creator<a2bus_vulcangold_device>;
|
||||
|
||||
#define VULCAN_ROM_REGION "vulcan_rom"
|
||||
#define VULCAN_ATA_TAG "vulcan_ata"
|
||||
@ -74,6 +75,11 @@ ROM_START( vulcan )
|
||||
ROM_LOAD( "ae vulcan rom v1.4.bin", 0x000000, 0x004000, CRC(798d5825) SHA1(1d668e856e33c6eeb10fe26975341afa8acb81f5) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( vulcangold )
|
||||
ROM_REGION(0x4000, VULCAN_ROM_REGION, 0)
|
||||
ROM_LOAD( "ae vulcan gold rom v2.0.bin", 0x000000, 0x004000, CRC(19bc3958) SHA1(96a22c2540fa603648a4e638e176eee76523b4e1) )
|
||||
ROM_END
|
||||
|
||||
/***************************************************************************
|
||||
FUNCTION PROTOTYPES
|
||||
***************************************************************************/
|
||||
@ -92,11 +98,16 @@ machine_config_constructor a2bus_vulcanbase_device::device_mconfig_additions() c
|
||||
// rom_region - device-specific ROM region
|
||||
//-------------------------------------------------
|
||||
|
||||
const rom_entry *a2bus_vulcanbase_device::device_rom_region() const
|
||||
const rom_entry *a2bus_vulcan_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( vulcan );
|
||||
}
|
||||
|
||||
const rom_entry *a2bus_vulcangold_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( vulcangold );
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
//**************************************************************************
|
||||
@ -113,6 +124,11 @@ a2bus_vulcan_device::a2bus_vulcan_device(const machine_config &mconfig, const ch
|
||||
{
|
||||
}
|
||||
|
||||
a2bus_vulcangold_device::a2bus_vulcangold_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
a2bus_vulcanbase_device(mconfig, A2BUS_VULCAN, "Applied Engineering Vulcan Gold IDE controller", tag, owner, clock, "a2vulgld", __FILE__)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
@ -125,16 +141,22 @@ void a2bus_vulcanbase_device::device_start()
|
||||
astring tempstring;
|
||||
m_rom = device().machine().root_device().memregion(this->subtag(tempstring, VULCAN_ROM_REGION))->base();
|
||||
|
||||
// disable 40 meg partition size limit / protection
|
||||
m_rom[0x59e] = 0xea;
|
||||
m_rom[0x59f] = 0xea;
|
||||
|
||||
save_item(NAME(m_lastdata));
|
||||
save_item(NAME(m_ram));
|
||||
save_item(NAME(m_rombank));
|
||||
save_item(NAME(m_rambank));
|
||||
}
|
||||
|
||||
void a2bus_vulcan_device::device_start()
|
||||
{
|
||||
// call base class
|
||||
a2bus_vulcanbase_device::device_start();
|
||||
|
||||
// disable 40 meg partition size limit / protection in v1.4 ROMs
|
||||
m_rom[0x59e] = 0xea;
|
||||
m_rom[0x59f] = 0xea;
|
||||
}
|
||||
|
||||
void a2bus_vulcanbase_device::device_reset()
|
||||
{
|
||||
m_rombank = m_rambank = 0;
|
||||
@ -177,7 +199,7 @@ UINT8 a2bus_vulcanbase_device::read_c0nx(address_space &space, UINT8 offset)
|
||||
return m_ata->read_cs0(space, offset, 0xff);
|
||||
|
||||
default:
|
||||
// printf("Read @ C0n%x\n", offset);
|
||||
logerror("a2vulcan: unknown read @ C0n%x\n", offset);
|
||||
break;
|
||||
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
a2vulcan.h
|
||||
|
||||
Applied Engineering Vulcan IDE controller
|
||||
Applied Engineering Vulcan and Vulcan Gold IDE controllers
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
@ -27,7 +27,6 @@ public:
|
||||
|
||||
// optional information overrides
|
||||
virtual machine_config_constructor device_mconfig_additions() const;
|
||||
virtual const rom_entry *device_rom_region() const;
|
||||
|
||||
protected:
|
||||
virtual void device_start();
|
||||
@ -55,11 +54,25 @@ class a2bus_vulcan_device : public a2bus_vulcanbase_device
|
||||
{
|
||||
public:
|
||||
a2bus_vulcan_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
virtual const rom_entry *device_rom_region() const;
|
||||
|
||||
protected:
|
||||
virtual void device_start();
|
||||
|
||||
protected:
|
||||
};
|
||||
|
||||
class a2bus_vulcangold_device : public a2bus_vulcanbase_device
|
||||
{
|
||||
public:
|
||||
a2bus_vulcangold_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
virtual const rom_entry *device_rom_region() const;
|
||||
|
||||
protected:
|
||||
};
|
||||
|
||||
// device type definition
|
||||
extern const device_type A2BUS_VULCAN;
|
||||
extern const device_type A2BUS_VULCANGOLD;
|
||||
|
||||
#endif /* __A2BUS_VULCAN__ */
|
||||
|
@ -310,6 +310,7 @@ static SLOT_INTERFACE_START(apple2_cards)
|
||||
SLOT_INTERFACE("arcbd", A2BUS_ARCADEBOARD) /* Third Millenium Engineering Arcade Board */
|
||||
SLOT_INTERFACE("midi", A2BUS_MIDI) /* Generic 6840+6850 MIDI board */
|
||||
SLOT_INTERFACE("vulcan", A2BUS_VULCAN) /* AE Vulcan IDE card */
|
||||
SLOT_INTERFACE("vulcangold", A2BUS_VULCANGOLD) /* AE Vulcan Gold IDE card */
|
||||
SLOT_INTERFACE("zipdrive", A2BUS_ZIPDRIVE) /* ZIP Technologies IDE card */
|
||||
SLOT_INTERFACE("echoiiplus", A2BUS_ECHOPLUS) /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */
|
||||
// SLOT_INTERFACE("mdturbo", A2BUS_UDRIVE_TURBO) /* ///SHH Systeme MicroDrive Turbo IDE card */
|
||||
|
Loading…
Reference in New Issue
Block a user