mirror of
https://github.com/holub/mame
synced 2025-04-21 07:52:35 +03:00
abc80: Refactor ABC Memory Card to use generic slots. [Curt Coder]
New working software list items ------------------------------- abc80_rom: ABC-DOS, ABC-DOS DD, UFD-DOS v.20, IEC Option 4027 v1.02.4b, Printer option 9704, Printer option 9704 0.1 [Curt Coder]
This commit is contained in:
parent
f2b71f7eac
commit
9759222381
83
hash/abc80_rom.xml
Normal file
83
hash/abc80_rom.xml
Normal file
@ -0,0 +1,83 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
<!--
|
||||
license:CC0-1.0
|
||||
-->
|
||||
<softwarelist name="abc80_rom" description="Luxor ABC 80 memory card ROMs">
|
||||
|
||||
<software name="abcdos">
|
||||
<!-- Scandia Metric FD2 -->
|
||||
<description>ABC-DOS</description>
|
||||
<year>19??</year>
|
||||
<publisher>unknown</publisher>
|
||||
|
||||
<part name="rom" interface="abc80_dos">
|
||||
<dataarea name="rom" size="0x1000">
|
||||
<rom name="abcdos.3d" size="0x1000" crc="2cb2192f" sha1="a6b3a9587714f8db807c05bee6c71c0684363744"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dosdd80">
|
||||
<!-- ABC 830 -->
|
||||
<description>ABC-DOS DD</description>
|
||||
<year>19??</year>
|
||||
<publisher>unknown</publisher>
|
||||
|
||||
<part name="rom" interface="abc80_dos">
|
||||
<dataarea name="rom" size="0x1000">
|
||||
<rom name="abcdos.3d" size="0x1000" crc="36db4c15" sha1="ae462633f3a9c142bb029beb14749a84681377fa"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="ufd20">
|
||||
<!-- ABC 830 -->
|
||||
<description>UFD-DOS v.20</description>
|
||||
<year>19??</year>
|
||||
<publisher>unknown</publisher>
|
||||
|
||||
<part name="rom" interface="abc80_dos">
|
||||
<dataarea name="rom" size="0x1000">
|
||||
<rom name="abcdos.3d" size="0x1000" crc="69b09c0b" sha1="403997a06cf6495b8fa13dc74eff6a64ef7aa53e"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="iec">
|
||||
<description>IEC option 4027 v1.02.4b</description>
|
||||
<year>19??</year>
|
||||
<publisher>unknown</publisher>
|
||||
|
||||
<part name="rom" interface="abc80_iec">
|
||||
<dataarea name="rom" size="0x400">
|
||||
<rom name="abc80-iec-option-4027-ver1.02.4b" size="0x400" crc="b4998599" sha1="1d46d1334599c31025cc8481daa4d38d470a7b48"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="prn">
|
||||
<description>Printer option 9704</description>
|
||||
<year>19??</year>
|
||||
<publisher>unknown</publisher>
|
||||
|
||||
<part name="rom" interface="abc80_prn">
|
||||
<dataarea name="rom" size="0x400">
|
||||
<rom name="abc80-printer-option-9704.3b" size="0x400" crc="f2f0d808" sha1="6355495542e77411137426effbe1059532735bb2"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="prna" cloneof="prn">
|
||||
<description>Printer option 9704 0.1</description>
|
||||
<year>19??</year>
|
||||
<publisher>unknown</publisher>
|
||||
|
||||
<part name="rom" interface="abc80_prn">
|
||||
<dataarea name="rom" size="0x400">
|
||||
<rom name="abc80-printer-option-9704-0.1.3b" size="0x400" crc="5bfaee54" sha1="fc62d8c27c69c7ca0870faa922ccd7aa1b650ecf"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
@ -67,38 +67,15 @@ DEFINE_DEVICE_TYPE(ABC_MEMORY_CARD, abc_memory_card_device, "abc_memcard", "ABC
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ROM( abc_dos )
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
ROM_START( abc_dos )
|
||||
ROM_REGION( 0x1000, "dos", 0 )
|
||||
ROM_DEFAULT_BIOS("ufd20")
|
||||
ROM_SYSTEM_BIOS( 0, "abcdos", "ABC-DOS" ) // Scandia Metric FD2
|
||||
ROMX_LOAD( "abcdos.3d", 0x0000, 0x1000, CRC(2cb2192f) SHA1(a6b3a9587714f8db807c05bee6c71c0684363744), ROM_BIOS(0) )
|
||||
ROM_SYSTEM_BIOS( 1, "dosdd80", "ABC-DOS DD" ) // ABC 830
|
||||
ROMX_LOAD( "dosdd80.3d", 0x0000, 0x1000, CRC(36db4c15) SHA1(ae462633f3a9c142bb029beb14749a84681377fa), ROM_BIOS(1) )
|
||||
ROM_SYSTEM_BIOS( 2, "ufd20", "UFD-DOS v.20" ) // ABC 830
|
||||
ROMX_LOAD( "ufddos20.3d", 0x0000, 0x1000, CRC(69b09c0b) SHA1(403997a06cf6495b8fa13dc74eff6a64ef7aa53e), ROM_BIOS(2) )
|
||||
|
||||
ROM_REGION( 0x400, "iec", 0 )
|
||||
ROM_LOAD( "abc80-iec-option-4027-ver1.02.4b", 0x000, 0x400, CRC(b4998599) SHA1(1d46d1334599c31025cc8481daa4d38d470a7b48) )
|
||||
|
||||
ROM_REGION( 0x400, "opt", 0 )
|
||||
ROM_LOAD_OPTIONAL( "spare.4a", 0x000, 0x400, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x400, "prn", 0 )
|
||||
ROM_LOAD( "abc80-printer-option-9704.3b", 0x000, 0x400, CRC(f2f0d808) SHA1(6355495542e77411137426effbe1059532735bb2) )
|
||||
ROM_LOAD( "abc80-printer-option-9704-0.1.3b", 0x000, 0x400, CRC(5bfaee54) SHA1(fc62d8c27c69c7ca0870faa922ccd7aa1b650ecf) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// rom_region - device-specific ROM region
|
||||
//-------------------------------------------------
|
||||
|
||||
const tiny_rom_entry *abc_memory_card_device::device_rom_region() const
|
||||
void abc_memory_card_device::device_add_mconfig(machine_config & config)
|
||||
{
|
||||
return ROM_NAME( abc_dos );
|
||||
GENERIC_SOCKET(config, m_dos_rom, generic_plain_slot, "abc80_dos", "bin");
|
||||
GENERIC_SOCKET(config, m_iec_rom, generic_plain_slot, "abc80_iec", "bin");
|
||||
GENERIC_SOCKET(config, m_opt_rom, generic_plain_slot, "abc80_opt", "bin");
|
||||
GENERIC_SOCKET(config, m_prn_rom, generic_plain_slot, "abc80_prn", "bin");
|
||||
}
|
||||
|
||||
|
||||
@ -146,19 +123,19 @@ uint8_t abc_memory_card_device::abcbus_xmemfl(offs_t offset)
|
||||
|
||||
if (offset >= 0x6000 && offset < 0x7000)
|
||||
{
|
||||
data = m_dos_rom->base()[offset & 0xfff];
|
||||
data = m_dos_rom->read_rom(offset & 0xfff);
|
||||
}
|
||||
if (offset >= 0x7000 && offset < 0x7400)
|
||||
{
|
||||
data = m_iec_rom->base()[offset & 0x3ff];
|
||||
data = m_iec_rom->read_rom(offset & 0x3ff);
|
||||
}
|
||||
if (offset >= 0x7400 && offset < 0x7800)
|
||||
{
|
||||
data = m_opt_rom->base()[offset & 0x3ff];
|
||||
data = m_opt_rom->read_rom(offset & 0x3ff);
|
||||
}
|
||||
if (offset >= 0x7800 && offset < 0x7c00)
|
||||
{
|
||||
data = m_prn_rom->base()[offset & 0x3ff];
|
||||
data = m_prn_rom->read_rom(offset & 0x3ff);
|
||||
}
|
||||
|
||||
return data;
|
||||
|
@ -12,6 +12,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "abcbus.h"
|
||||
#include "bus/generic/carts.h"
|
||||
#include "bus/generic/slot.h"
|
||||
|
||||
|
||||
|
||||
@ -28,7 +30,7 @@ public:
|
||||
abc_memory_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
// optional information overrides
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
@ -39,10 +41,10 @@ protected:
|
||||
virtual uint8_t abcbus_xmemfl(offs_t offset) override;
|
||||
|
||||
private:
|
||||
required_memory_region m_dos_rom;
|
||||
required_memory_region m_iec_rom;
|
||||
required_memory_region m_opt_rom;
|
||||
required_memory_region m_prn_rom;
|
||||
required_device<generic_slot_device> m_dos_rom;
|
||||
required_device<generic_slot_device> m_iec_rom;
|
||||
required_device<generic_slot_device> m_opt_rom;
|
||||
required_device<generic_slot_device> m_prn_rom;
|
||||
};
|
||||
|
||||
|
||||
|
@ -550,6 +550,7 @@ void abc80_state::abc80(machine_config &config)
|
||||
// software list
|
||||
SOFTWARE_LIST(config, "cass_list").set_original("abc80_cass");
|
||||
SOFTWARE_LIST(config, "flop_list").set_original("abc80_flop");
|
||||
SOFTWARE_LIST(config, "rom_list").set_original("abc80_rom");
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user