mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
ti99: Adding cartridge types to softlist
This commit is contained in:
parent
a5095efde7
commit
a105ecb624
@ -4405,4 +4405,40 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Softlist entry for MiniMemory -->
|
||||
<software name="minimem">
|
||||
<description>Mini Memory</description>
|
||||
<year>1981</year>
|
||||
<publisher>Texas Instruments</publisher>
|
||||
<info name="serial" value="PHM 3058"/>
|
||||
<part name="cart" interface="ti99_cart">
|
||||
<feature name="pcb" value="minimem" />
|
||||
<dataarea name="grom_socket" size="0x1800">
|
||||
<rom name="phm3058g3.bin" size="0x1800" crc="e2fc7485" sha1="ab62d115b0a9357bc9c988020a8d75f1642981e8" offset="0x0000" />
|
||||
</dataarea>
|
||||
<dataarea name="rom_socket" size="0x1000">
|
||||
<rom name="phm3058c.bin" size="0x1000" crc="c705118e" sha1="5c037b5ff34320921da142fc2038de35807b51e9" offset="0x0000" />
|
||||
</dataarea>
|
||||
<dataarea name="nvram" size="4096">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Softlist entry for SuperSpace2 cartridge -->
|
||||
<software name="supersp2">
|
||||
<description>SuperSpace II</description>
|
||||
<year>1986</year>
|
||||
<publisher>DataBioTics</publisher>
|
||||
<info name="serial" value="DBC2SS"/>
|
||||
<part name="cart" interface="ti99_cart">
|
||||
<feature name="pcb" value="super" />
|
||||
<dataarea name="grom_socket" size="0x1800">
|
||||
<rom name="phm3055g3.bin" size="0x1800" crc="2abf46b5" sha1="9686225c4aa04dcb42d7029ad3d7a31344eae361" offset="0x0000" />
|
||||
</dataarea>
|
||||
<dataarea name="nvram" size="32768">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
||||
|
@ -218,12 +218,6 @@ void gromport_device::device_reset()
|
||||
m_reset_on_insert = (ioport("CARTRESET")->read()==0x01);
|
||||
}
|
||||
|
||||
// void gromport_device::set_grom_base(UINT16 grombase, UINT16 grommask)
|
||||
// {
|
||||
// m_grombase = grombase;
|
||||
// m_grommask = grommask;
|
||||
// }
|
||||
|
||||
/*
|
||||
Shall we reset the console when a cartridge has been inserted?
|
||||
This is triggered by the cartridge by pulling down /RESET via a capacitor.
|
||||
@ -1160,6 +1154,9 @@ static const pcb_type sw_pcbdefs[] =
|
||||
{
|
||||
{ PCB_STANDARD, "standard" },
|
||||
{ PCB_PAGED, "paged" },
|
||||
{ PCB_MINIMEM, "minimem" },
|
||||
{ PCB_SUPER, "super" },
|
||||
{ PCB_MBX, "mbx" },
|
||||
{ PCB_GROMEMU, "gromemu" },
|
||||
{ 0, nullptr}
|
||||
};
|
||||
@ -1235,8 +1232,27 @@ void ti99_cartridge_device::prepare_cartridge()
|
||||
memcpy(regr->base() + 0x2000, rom_ptr, rom2_length);
|
||||
}
|
||||
|
||||
// NVRAM cartridges are not supported by softlists (we need to find a way to load the nvram contents first)
|
||||
if (!m_softlist)
|
||||
// (NV)RAM cartridges
|
||||
if (m_softlist)
|
||||
{
|
||||
// Do we have NVRAM?
|
||||
if (get_software_region("nvram")!=nullptr)
|
||||
{
|
||||
m_pcb->m_ram_size = get_software_region_length("nvram");
|
||||
m_pcb->m_nvram.resize(m_pcb->m_ram_size);
|
||||
m_pcb->m_ram_ptr = &m_pcb->m_nvram[0];
|
||||
battery_load(m_pcb->m_ram_ptr, m_pcb->m_ram_size, 0xff);
|
||||
}
|
||||
|
||||
// Do we have RAM?
|
||||
if (get_software_region("ram")!=nullptr)
|
||||
{
|
||||
m_pcb->m_ram_size = get_software_region_length("ram");
|
||||
m_pcb->m_ram.resize(m_pcb->m_ram_size);
|
||||
m_pcb->m_ram_ptr = &m_pcb->m_ram[0];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pcb->m_ram_size = m_rpk->get_resource_length("ram_socket");
|
||||
if (m_pcb->m_ram_size > 0)
|
||||
@ -1364,6 +1380,16 @@ void ti99_cartridge_device::call_unload()
|
||||
m_rpk->close(); // will write NVRAM contents
|
||||
delete m_rpk;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Softlist
|
||||
bool has_nvram = (get_software_region("nvram")!=nullptr);
|
||||
if (has_nvram)
|
||||
{
|
||||
int nvsize = get_software_region_length("nvram");
|
||||
battery_save(m_pcb->m_ram_ptr, nvsize);
|
||||
}
|
||||
}
|
||||
|
||||
delete m_pcb;
|
||||
m_pcb = nullptr;
|
||||
|
@ -1,11 +1,9 @@
|
||||
// license:LGPL-2.1+
|
||||
// copyright-holders:Michael Zapf
|
||||
/***************************************************************************
|
||||
Gromport of the TI-99 consoles
|
||||
Gromport (Cartridge port) of the TI-99 consoles
|
||||
|
||||
For details see gromport.c
|
||||
|
||||
Michael Zapf, July 2012
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef __GROMPORT__
|
||||
@ -42,9 +40,6 @@ public:
|
||||
template<class _Object> static devcb_base &static_set_reset_callback(device_t &device, _Object object) { return downcast<gromport_device &>(device).m_console_reset.set_callback(object); }
|
||||
|
||||
void cartridge_inserted();
|
||||
// void set_grom_base(UINT16 grombase, UINT16 grommask);
|
||||
// UINT16 get_grom_base() { return m_grombase; }
|
||||
// UINT16 get_grom_mask() { return m_grommask; }
|
||||
|
||||
protected:
|
||||
virtual void device_start() override;
|
||||
@ -59,8 +54,6 @@ private:
|
||||
devcb_write_line m_console_reset;
|
||||
int m_mask;
|
||||
int m_romgq;
|
||||
// UINT16 m_grombase;
|
||||
// UINT16 m_grommask;
|
||||
};
|
||||
|
||||
SLOT_INTERFACE_EXTERN(gromport4);
|
||||
@ -338,6 +331,8 @@ protected:
|
||||
int m_grom_address; // for gromemu
|
||||
int m_ram_page; // for super
|
||||
const char* m_tag;
|
||||
dynamic_buffer m_nvram; // for MiniMemory
|
||||
dynamic_buffer m_ram; // for MBX
|
||||
};
|
||||
|
||||
/******************** Standard cartridge ******************************/
|
||||
|
Loading…
Reference in New Issue
Block a user