mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
pet/cbm2: HSG/HRG WIP. (nw)
This commit is contained in:
parent
cb4b0693cd
commit
5bcf71db9a
@ -14,6 +14,7 @@
|
||||
|
||||
- version A (EF9365, 512x512 interlaced, 1 page)
|
||||
- version B (EF9366, 512x256 non-interlaced, 2 pages)
|
||||
- 256KB version ROM
|
||||
|
||||
*/
|
||||
|
||||
@ -35,8 +36,8 @@
|
||||
// DEVICE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
const device_type CBM2_HRG_A = &device_creator<cbm2_graphic_cartridge_a_device>;
|
||||
const device_type CBM2_HRG_B = &device_creator<cbm2_graphic_cartridge_b_device>;
|
||||
const device_type CBM2_HRG_A = &device_creator<cbm2_hrg_a_t>;
|
||||
const device_type CBM2_HRG_B = &device_creator<cbm2_hrg_b_t>;
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -53,12 +54,32 @@ ROM_END
|
||||
// rom_region - device-specific ROM region
|
||||
//-------------------------------------------------
|
||||
|
||||
const rom_entry *cbm2_graphic_cartridge_device::device_rom_region() const
|
||||
const rom_entry *cbm2_hrg_t::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( cbm2_hrg );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ADDRESS_MAP( hrg_a_map )
|
||||
//-------------------------------------------------
|
||||
|
||||
static ADDRESS_MAP_START( hrg_a_map, AS_0, 8, cbm2_hrg_a_t )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
|
||||
AM_RANGE(0x0000, 0x7fff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ADDRESS_MAP( hrg_b_map )
|
||||
//-------------------------------------------------
|
||||
|
||||
static ADDRESS_MAP_START( hrg_b_map, AS_0, 8, cbm2_hrg_b_t )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
|
||||
AM_RANGE(0x0000, 0x3fff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG_FRAGMENT( cbm2_hrg_a )
|
||||
//-------------------------------------------------
|
||||
@ -69,9 +90,11 @@ static MACHINE_CONFIG_FRAGMENT( cbm2_hrg_a )
|
||||
MCFG_SCREEN_SIZE(512, 512)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 512-1)
|
||||
MCFG_SCREEN_REFRESH_RATE(25)
|
||||
MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette")
|
||||
|
||||
MCFG_DEVICE_ADD(EF9365_TAG, EF9365, 1750000)
|
||||
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, hrg_a_map)
|
||||
MCFG_EF936X_PALETTE("palette")
|
||||
MCFG_EF936X_BITPLANES_CNT(1);
|
||||
MCFG_EF936X_DISPLAYMODE(EF936X_512x512_DISPLAY_MODE);
|
||||
@ -88,9 +111,11 @@ static MACHINE_CONFIG_FRAGMENT( cbm2_hrg_b )
|
||||
MCFG_SCREEN_SIZE(512, 256)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette")
|
||||
|
||||
MCFG_DEVICE_ADD(EF9366_TAG, EF9365, 1750000)
|
||||
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, hrg_b_map)
|
||||
MCFG_EF936X_PALETTE("palette")
|
||||
MCFG_EF936X_BITPLANES_CNT(1);
|
||||
MCFG_EF936X_DISPLAYMODE(EF936X_512x256_DISPLAY_MODE);
|
||||
@ -102,12 +127,12 @@ MACHINE_CONFIG_END
|
||||
// machine configurations
|
||||
//-------------------------------------------------
|
||||
|
||||
machine_config_constructor cbm2_graphic_cartridge_a_device::device_mconfig_additions() const
|
||||
machine_config_constructor cbm2_hrg_a_t::device_mconfig_additions() const
|
||||
{
|
||||
return MACHINE_CONFIG_NAME( cbm2_hrg_a );
|
||||
}
|
||||
|
||||
machine_config_constructor cbm2_graphic_cartridge_b_device::device_mconfig_additions() const
|
||||
machine_config_constructor cbm2_hrg_b_t::device_mconfig_additions() const
|
||||
{
|
||||
return MACHINE_CONFIG_NAME( cbm2_hrg_b );
|
||||
}
|
||||
@ -119,10 +144,10 @@ machine_config_constructor cbm2_graphic_cartridge_b_device::device_mconfig_addit
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// cbm2_graphic_cartridge_device - constructor
|
||||
// cbm2_hrg_t - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
cbm2_graphic_cartridge_device::cbm2_graphic_cartridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
|
||||
cbm2_hrg_t::cbm2_hrg_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
|
||||
device_t(mconfig, type, name, tag, owner, clock, shortname, source),
|
||||
device_cbm2_expansion_card_interface(mconfig, *this),
|
||||
m_gdc(*this, EF9366_TAG),
|
||||
@ -130,13 +155,13 @@ cbm2_graphic_cartridge_device::cbm2_graphic_cartridge_device(const machine_confi
|
||||
{
|
||||
}
|
||||
|
||||
cbm2_graphic_cartridge_a_device::cbm2_graphic_cartridge_a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
cbm2_graphic_cartridge_device(mconfig, CBM2_HRG_A, "CBM 500/600/700 High Resolution Graphics (A)", tag, owner, clock, "cbm2_hrga", __FILE__)
|
||||
cbm2_hrg_a_t::cbm2_hrg_a_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
cbm2_hrg_t(mconfig, CBM2_HRG_A, "CBM 500/600/700 High Resolution Graphics (A)", tag, owner, clock, "cbm2_hrga", __FILE__)
|
||||
{
|
||||
}
|
||||
|
||||
cbm2_graphic_cartridge_b_device::cbm2_graphic_cartridge_b_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
cbm2_graphic_cartridge_device(mconfig, CBM2_HRG_B, "CBM 500/600/700 High Resolution Graphics (B)", tag, owner, clock, "cbm2_hrgb", __FILE__)
|
||||
cbm2_hrg_b_t::cbm2_hrg_b_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
cbm2_hrg_t(mconfig, CBM2_HRG_B, "CBM 500/600/700 High Resolution Graphics (B)", tag, owner, clock, "cbm2_hrgb", __FILE__)
|
||||
{
|
||||
}
|
||||
|
||||
@ -145,10 +170,8 @@ cbm2_graphic_cartridge_b_device::cbm2_graphic_cartridge_b_device(const machine_c
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void cbm2_graphic_cartridge_device::device_start()
|
||||
void cbm2_hrg_t::device_start()
|
||||
{
|
||||
m_gdc->set_color_entry(0, 0, 0, 0);
|
||||
m_gdc->set_color_entry(1, 0, 0xff, 00);
|
||||
}
|
||||
|
||||
|
||||
@ -156,7 +179,7 @@ void cbm2_graphic_cartridge_device::device_start()
|
||||
// device_reset - device-specific reset
|
||||
//-------------------------------------------------
|
||||
|
||||
void cbm2_graphic_cartridge_device::device_reset()
|
||||
void cbm2_hrg_t::device_reset()
|
||||
{
|
||||
m_gdc->reset();
|
||||
}
|
||||
@ -166,7 +189,7 @@ void cbm2_graphic_cartridge_device::device_reset()
|
||||
// cbm2_bd_r - cartridge data read
|
||||
//-------------------------------------------------
|
||||
|
||||
UINT8 cbm2_graphic_cartridge_device::cbm2_bd_r(address_space &space, offs_t offset, UINT8 data, int csbank1, int csbank2, int csbank3)
|
||||
UINT8 cbm2_hrg_t::cbm2_bd_r(address_space &space, offs_t offset, UINT8 data, int csbank1, int csbank2, int csbank3)
|
||||
{
|
||||
if (!csbank3)
|
||||
{
|
||||
@ -197,7 +220,7 @@ UINT8 cbm2_graphic_cartridge_device::cbm2_bd_r(address_space &space, offs_t offs
|
||||
}
|
||||
else if (offset >= 0x7ff0)
|
||||
{
|
||||
data = m_gdc->data_r(space, offset & 0x07);
|
||||
data = m_gdc->data_r(space, offset & 0x0f);
|
||||
}
|
||||
}
|
||||
|
||||
@ -209,7 +232,7 @@ UINT8 cbm2_graphic_cartridge_device::cbm2_bd_r(address_space &space, offs_t offs
|
||||
// cbm2_bd_w - cartridge data write
|
||||
//-------------------------------------------------
|
||||
|
||||
void cbm2_graphic_cartridge_device::cbm2_bd_w(address_space &space, offs_t offset, UINT8 data, int csbank1, int csbank2, int csbank3)
|
||||
void cbm2_hrg_t::cbm2_bd_w(address_space &space, offs_t offset, UINT8 data, int csbank1, int csbank2, int csbank3)
|
||||
{
|
||||
if (!csbank3)
|
||||
{
|
||||
@ -232,7 +255,7 @@ void cbm2_graphic_cartridge_device::cbm2_bd_w(address_space &space, offs_t offse
|
||||
}
|
||||
else if (offset >= 0x7ff0)
|
||||
{
|
||||
m_gdc->data_w(space, offset & 0x07, data);
|
||||
m_gdc->data_w(space, offset & 0x0f, data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -21,14 +21,14 @@
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// ======================> cbm2_graphic_cartridge_device
|
||||
// ======================> cbm2_hrg_t
|
||||
|
||||
class cbm2_graphic_cartridge_device : public device_t,
|
||||
public device_cbm2_expansion_card_interface
|
||||
class cbm2_hrg_t : public device_t,
|
||||
public device_cbm2_expansion_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
cbm2_graphic_cartridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
|
||||
cbm2_hrg_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
|
||||
|
||||
// optional information overrides
|
||||
virtual const rom_entry *device_rom_region() const override;
|
||||
@ -48,26 +48,26 @@ private:
|
||||
};
|
||||
|
||||
|
||||
// ======================> cbm2_graphic_cartridge_a_device
|
||||
// ======================> cbm2_hrg_a_t
|
||||
|
||||
class cbm2_graphic_cartridge_a_device : public cbm2_graphic_cartridge_device
|
||||
class cbm2_hrg_a_t : public cbm2_hrg_t
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
cbm2_graphic_cartridge_a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
cbm2_hrg_a_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
// optional information overrides
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
};
|
||||
|
||||
|
||||
// ======================> cbm2_graphic_cartridge_b_device
|
||||
// ======================> cbm2_hrg_b_t
|
||||
|
||||
class cbm2_graphic_cartridge_b_device : public cbm2_graphic_cartridge_device
|
||||
class cbm2_hrg_b_t : public cbm2_hrg_t
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
cbm2_graphic_cartridge_b_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
cbm2_hrg_b_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
// optional information overrides
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
|
@ -62,6 +62,26 @@ const rom_entry *cbm8000_hsg_t::device_rom_region() const
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ADDRESS_MAP( hsg_a_map )
|
||||
//-------------------------------------------------
|
||||
|
||||
static ADDRESS_MAP_START( hsg_a_map, AS_0, 8, cbm8000_hsg_a_t )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
|
||||
AM_RANGE(0x0000, 0x7fff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ADDRESS_MAP( hsg_b_map )
|
||||
//-------------------------------------------------
|
||||
|
||||
static ADDRESS_MAP_START( hsg_b_map, AS_0, 8, cbm8000_hsg_b_t )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
|
||||
AM_RANGE(0x0000, 0x3fff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG_FRAGMENT( cbm8000_hsg_a )
|
||||
//-------------------------------------------------
|
||||
@ -72,9 +92,11 @@ static MACHINE_CONFIG_FRAGMENT( cbm8000_hsg_a )
|
||||
MCFG_SCREEN_SIZE(512, 512)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 512-1)
|
||||
MCFG_SCREEN_REFRESH_RATE(25)
|
||||
MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette")
|
||||
|
||||
MCFG_DEVICE_ADD(EF9365_TAG, EF9365, 1750000)
|
||||
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, hsg_a_map)
|
||||
MCFG_EF936X_PALETTE("palette")
|
||||
MCFG_EF936X_BITPLANES_CNT(1);
|
||||
MCFG_EF936X_DISPLAYMODE(EF936X_512x512_DISPLAY_MODE);
|
||||
@ -91,9 +113,11 @@ static MACHINE_CONFIG_FRAGMENT( cbm8000_hsg_b )
|
||||
MCFG_SCREEN_SIZE(512, 256)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette")
|
||||
|
||||
MCFG_DEVICE_ADD(EF9366_TAG, EF9365, 1750000)
|
||||
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, hsg_b_map)
|
||||
MCFG_EF936X_PALETTE("palette")
|
||||
MCFG_EF936X_BITPLANES_CNT(1);
|
||||
MCFG_EF936X_DISPLAYMODE(EF936X_512x256_DISPLAY_MODE);
|
||||
@ -151,8 +175,6 @@ cbm8000_hsg_b_t::cbm8000_hsg_b_t(const machine_config &mconfig, const char *tag,
|
||||
|
||||
void cbm8000_hsg_t::device_start()
|
||||
{
|
||||
m_gdc->set_color_entry(0, 0, 0, 0);
|
||||
m_gdc->set_color_entry(1, 0, 0xff, 00);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user