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 EF9365_TAG "ef9365"
#define EF9366_TAG "ef9366" #define EF9366_TAG EF9365_TAG
#define SCREEN_TAG "screen" #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 ) static MACHINE_CONFIG_FRAGMENT( cbm2_hrg_a )
/* MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
MCFG_SCREEN_UPDATE_DEVICE(EF9365_TAG, ef9365_device, screen_update) MCFG_SCREEN_UPDATE_DEVICE(EF9365_TAG, ef9365_device, screen_update)
MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 512-1) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 512-1)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_REFRESH_RATE(25)
MCFG_SCREEN_REFRESH_RATE(50)
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 MACHINE_CONFIG_END
@ -80,14 +83,17 @@ MACHINE_CONFIG_END
//------------------------------------------------- //-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( cbm2_hrg_b ) static MACHINE_CONFIG_FRAGMENT( cbm2_hrg_b )
/* MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
MCFG_SCREEN_UPDATE_DEVICE(EF9366_TAG, ef9366_device, screen_update) MCFG_SCREEN_UPDATE_DEVICE(EF9366_TAG, ef9365_device, screen_update)
MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) 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_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 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) : 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_t(mconfig, type, name, tag, owner, clock, shortname, source),
device_cbm2_expansion_card_interface(mconfig, *this), device_cbm2_expansion_card_interface(mconfig, *this),
m_gdc(*this, EF9366_TAG),
m_bank3(*this, "bank3") 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_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_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_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_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() 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() 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) 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) 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 "emu.h"
#include "exp.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; virtual void cbm2_bd_w(address_space &space, offs_t offset, UINT8 data, int csbank1, int csbank2, int csbank3) override;
private: private:
//required_device<ef9365_device> m_gdc; required_device<ef9365_device> m_gdc;
required_memory_region m_bank3; required_memory_region m_bank3;
}; };

View File

@ -26,7 +26,7 @@
//************************************************************************** //**************************************************************************
#define EF9365_TAG "ef9365" #define EF9365_TAG "ef9365"
#define EF9366_TAG "ef9366" #define EF9366_TAG EF9365_TAG
#define SCREEN_TAG "screen" #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 ) // MACHINE_CONFIG_FRAGMENT( cbm8000_hsg_a )
//------------------------------------------------- //-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( cbm8000_hsg_a ) static MACHINE_CONFIG_FRAGMENT( cbm8000_hsg_a )
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) 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_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 512-1) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 512-1)
MCFG_SCREEN_REFRESH_RATE(25) 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 MACHINE_CONFIG_END
@ -94,13 +87,16 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_FRAGMENT( cbm8000_hsg_b ) static MACHINE_CONFIG_FRAGMENT( cbm8000_hsg_b )
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) 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_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_REFRESH_RATE(50) 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 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) : 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_t(mconfig, type, name, tag, owner, clock, shortname, source),
device_pet_expansion_card_interface(mconfig, *this), device_pet_expansion_card_interface(mconfig, *this),
m_gdc(*this, EF9365_TAG),
m_9000(*this, "9000"), m_9000(*this, "9000"),
m_a000(*this, "a000") 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_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__) 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_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__) 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() 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() 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) else if (offset >= 0xaf70 && offset < 0xaf80)
{ {
//data = m_gdc->data_r(space, offset & 0x0f); data = m_gdc->data_r(space, offset & 0x0f);
} }
break; 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) 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 "emu.h"
#include "exp.h" #include "exp.h"
#include "video/ef9365.h"
@ -23,7 +24,7 @@
// ======================> cbm8000_hsg_t // ======================> cbm8000_hsg_t
class cbm8000_hsg_t : public device_t, class cbm8000_hsg_t : public device_t,
public device_pet_expansion_card_interface public device_pet_expansion_card_interface
{ {
public: public:
// construction/destruction // construction/destruction
@ -45,7 +46,7 @@ protected:
virtual void device_reset() override; virtual void device_reset() override;
private: private:
//required_device<ef9365_device> m_gdc; required_device<ef9365_device> m_gdc;
required_memory_region m_9000; required_memory_region m_9000;
required_memory_region m_a000; required_memory_region m_a000;
}; };