pet/cbm2: HSG/HRG WIP. (nw)

This commit is contained in:
Curt Coder 2016-01-01 23:14:46 +02:00
parent 4ae8e7fb88
commit 71e4a6e714
4 changed files with 51 additions and 45 deletions

View File

@ -26,7 +26,7 @@
//**************************************************************************
#define EF9365_TAG "ef9365"
#define EF9366_TAG "ef9366"
#define EF9366_TAG EF9365_TAG
#define SCREEN_TAG "screen"
@ -64,14 +64,17 @@ const rom_entry *cbm2_graphic_cartridge_device::device_rom_region() const
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( cbm2_hrg_a )
/* MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
MCFG_SCREEN_UPDATE_DEVICE(EF9365_TAG, ef9365_device, screen_update)
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 512-1)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
MCFG_SCREEN_UPDATE_DEVICE(EF9365_TAG, ef9365_device, screen_update)
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 512-1)
MCFG_SCREEN_REFRESH_RATE(25)
MCFG_EF9365_ADD(EF9365_TAG, gdp_intf)*/
MCFG_DEVICE_ADD(EF9365_TAG, EF9365, 1750000)
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
MCFG_EF936X_PALETTE("palette")
MCFG_EF936X_BITPLANES_CNT(1);
MCFG_EF936X_DISPLAYMODE(EF936X_512x512_DISPLAY_MODE);
MACHINE_CONFIG_END
@ -80,14 +83,17 @@ MACHINE_CONFIG_END
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( cbm2_hrg_b )
/* MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
MCFG_SCREEN_UPDATE_DEVICE(EF9366_TAG, ef9366_device, screen_update)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
MCFG_SCREEN_UPDATE_DEVICE(EF9366_TAG, ef9365_device, screen_update)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_EF9366_ADD(EF9366_TAG, gdp_intf)*/
MCFG_DEVICE_ADD(EF9366_TAG, EF9365, 1750000)
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
MCFG_EF936X_PALETTE("palette")
MCFG_EF936X_BITPLANES_CNT(1);
MCFG_EF936X_DISPLAYMODE(EF936X_512x256_DISPLAY_MODE);
MACHINE_CONFIG_END
@ -119,19 +125,18 @@ machine_config_constructor cbm2_graphic_cartridge_b_device::device_mconfig_addit
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) :
device_t(mconfig, type, name, tag, owner, clock, shortname, source),
device_cbm2_expansion_card_interface(mconfig, *this),
m_gdc(*this, EF9366_TAG),
m_bank3(*this, "bank3")
{
}
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__)
//m_gdc(*this, EF9365_TAG)
{
}
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__)
//m_gdc(*this, EF9366_TAG)
{
}
@ -142,6 +147,8 @@ cbm2_graphic_cartridge_b_device::cbm2_graphic_cartridge_b_device(const machine_c
void cbm2_graphic_cartridge_device::device_start()
{
m_gdc->set_color_entry(0, 0, 0, 0);
m_gdc->set_color_entry(1, 0, 0xff, 00);
}
@ -151,7 +158,7 @@ void cbm2_graphic_cartridge_device::device_start()
void cbm2_graphic_cartridge_device::device_reset()
{
//m_gdc->reset();
m_gdc->reset();
}
@ -190,7 +197,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 & 0x07);
}
}
@ -225,7 +232,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 & 0x07, data);
}
}
}

View File

@ -13,6 +13,7 @@
#include "emu.h"
#include "exp.h"
#include "video/ef9365.h"
@ -42,7 +43,7 @@ protected:
virtual void cbm2_bd_w(address_space &space, offs_t offset, UINT8 data, int csbank1, int csbank2, int csbank3) override;
private:
//required_device<ef9365_device> m_gdc;
required_device<ef9365_device> m_gdc;
required_memory_region m_bank3;
};

View File

@ -26,7 +26,7 @@
//**************************************************************************
#define EF9365_TAG "ef9365"
#define EF9366_TAG "ef9366"
#define EF9366_TAG EF9365_TAG
#define SCREEN_TAG "screen"
@ -62,29 +62,22 @@ const rom_entry *cbm8000_hsg_t::device_rom_region() const
}
//-------------------------------------------------
// screen_update -
//-------------------------------------------------
UINT32 cbm8000_hsg_t::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
//-------------------------------------------------
// MACHINE_CONFIG_FRAGMENT( cbm8000_hsg_a )
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( cbm8000_hsg_a )
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, cbm8000_hsg_t, screen_update)
MCFG_SCREEN_UPDATE_DEVICE(EF9365_TAG, ef9365_device, screen_update)
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, 0)
MCFG_DEVICE_ADD(EF9365_TAG, EF9365, 1750000)
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
MCFG_EF936X_PALETTE("palette")
MCFG_EF936X_BITPLANES_CNT(1);
MCFG_EF936X_DISPLAYMODE(EF936X_512x512_DISPLAY_MODE);
MACHINE_CONFIG_END
@ -94,13 +87,16 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_FRAGMENT( cbm8000_hsg_b )
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, cbm8000_hsg_t, screen_update)
MCFG_SCREEN_UPDATE_DEVICE(EF9366_TAG, ef9365_device, screen_update)
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, EF9366, 0)
MCFG_DEVICE_ADD(EF9366_TAG, EF9365, 1750000)
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
MCFG_EF936X_PALETTE("palette")
MCFG_EF936X_BITPLANES_CNT(1);
MCFG_EF936X_DISPLAYMODE(EF936X_512x256_DISPLAY_MODE);
MACHINE_CONFIG_END
@ -132,6 +128,7 @@ machine_config_constructor cbm8000_hsg_b_t::device_mconfig_additions() const
cbm8000_hsg_t::cbm8000_hsg_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_pet_expansion_card_interface(mconfig, *this),
m_gdc(*this, EF9365_TAG),
m_9000(*this, "9000"),
m_a000(*this, "a000")
{
@ -139,13 +136,11 @@ cbm8000_hsg_t::cbm8000_hsg_t(const machine_config &mconfig, device_type type, co
cbm8000_hsg_a_t::cbm8000_hsg_a_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
cbm8000_hsg_t(mconfig, CBM8000_HSG_A, "CBM 8000 High Speed Graphics (A)", tag, owner, clock, "cbm8000_hsg_a", __FILE__)
//m_gdc(*this, EF9365_TAG)
{
}
cbm8000_hsg_b_t::cbm8000_hsg_b_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
cbm8000_hsg_t(mconfig, CBM8000_HSG_B, "CBM 8000 High Speed Graphics (B)", tag, owner, clock, "cbm8000_hsg_b", __FILE__)
//m_gdc(*this, EF9366_TAG)
{
}
@ -156,6 +151,8 @@ 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);
}
@ -165,7 +162,7 @@ void cbm8000_hsg_t::device_start()
void cbm8000_hsg_t::device_reset()
{
//m_gdc->reset();
m_gdc->reset();
}
@ -219,7 +216,7 @@ UINT8 cbm8000_hsg_t::pet_bd_r(address_space &space, offs_t offset, UINT8 data, i
}
else if (offset >= 0xaf70 && offset < 0xaf80)
{
//data = m_gdc->data_r(space, offset & 0x0f);
data = m_gdc->data_r(space, offset & 0x0f);
}
break;
}
@ -253,6 +250,6 @@ void cbm8000_hsg_t::pet_bd_w(address_space &space, offs_t offset, UINT8 data, in
}
else if (offset >= 0xaf70 && offset < 0xaf80)
{
//m_gdc->data_w(space, offset & 0x0f, data);
m_gdc->data_w(space, offset & 0x0f, data);
}
}

View File

@ -13,6 +13,7 @@
#include "emu.h"
#include "exp.h"
#include "video/ef9365.h"
@ -23,7 +24,7 @@
// ======================> cbm8000_hsg_t
class cbm8000_hsg_t : public device_t,
public device_pet_expansion_card_interface
public device_pet_expansion_card_interface
{
public:
// construction/destruction
@ -45,7 +46,7 @@ protected:
virtual void device_reset() override;
private:
//required_device<ef9365_device> m_gdc;
required_device<ef9365_device> m_gdc;
required_memory_region m_9000;
required_memory_region m_a000;
};