mirror of
https://github.com/holub/mame
synced 2025-04-19 15:11:37 +03:00
h63484 ==> hd63484 (nw)
This commit is contained in:
parent
7a99e2939c
commit
cc088d53a6
@ -244,18 +244,6 @@ if (VIDEOS["GF7600GS"]~=null) then
|
||||
}
|
||||
end
|
||||
|
||||
--------------------------------------------------
|
||||
--
|
||||
--@src/devices/video/h63484.h,VIDEOS["H63484"] = true
|
||||
--------------------------------------------------
|
||||
|
||||
if (VIDEOS["H63484"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/video/h63484.cpp",
|
||||
MAME_DIR .. "src/devices/video/h63484.h",
|
||||
}
|
||||
end
|
||||
|
||||
--------------------------------------------------
|
||||
--
|
||||
--@src/devices/video/hd44102.h,VIDEOS["HD44102"] = true
|
||||
@ -304,6 +292,18 @@ if (VIDEOS["HD61830"]~=null) then
|
||||
}
|
||||
end
|
||||
|
||||
--------------------------------------------------
|
||||
--
|
||||
--@src/devices/video/hd63484.h,VIDEOS["HD63484"] = true
|
||||
--------------------------------------------------
|
||||
|
||||
if (VIDEOS["HD63484"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/video/hd63484.cpp",
|
||||
MAME_DIR .. "src/devices/video/hd63484.h",
|
||||
}
|
||||
end
|
||||
|
||||
--------------------------------------------------
|
||||
--
|
||||
--@src/devices/video/hd66421.h,VIDEOS["HD66421"] = true
|
||||
|
@ -285,11 +285,11 @@ VIDEOS["DM9368"] = true
|
||||
VIDEOS["GF7600GS"] = true
|
||||
VIDEOS["EPIC12"] = true
|
||||
VIDEOS["FIXFREQ"] = true
|
||||
VIDEOS["H63484"] = true
|
||||
--VIDEOS["HD44102"] = true
|
||||
--VIDEOS["HD44352"] = true
|
||||
VIDEOS["HD44780"] = true
|
||||
VIDEOS["HD61830"] = true
|
||||
VIDEOS["HD63484"] = true
|
||||
--VIDEOS["HD66421"] = true
|
||||
VIDEOS["HUC6202"] = true
|
||||
VIDEOS["HUC6260"] = true
|
||||
|
@ -281,11 +281,11 @@ VIDEOS["EF9365"] = true
|
||||
VIDEOS["GF4500"] = true
|
||||
--VIDEOS+= EPIC12"] = true
|
||||
--VIDEOS+= FIXFREQ"] = true
|
||||
--VIDEOS+= H63484"] = true
|
||||
VIDEOS["HD44102"] = true
|
||||
VIDEOS["HD44352"] = true
|
||||
VIDEOS["HD44780"] = true
|
||||
VIDEOS["HD61830"] = true
|
||||
--VIDEOS+= HD63484"] = true
|
||||
VIDEOS["HD66421"] = true
|
||||
VIDEOS["HUC6202"] = true
|
||||
VIDEOS["HUC6260"] = true
|
||||
|
@ -2,34 +2,27 @@
|
||||
// copyright-holders:Angelo Salese, Sandro Ronco
|
||||
/***************************************************************************
|
||||
|
||||
HD63484 ACRTC (rewrite in progress)
|
||||
HD63484 ACRTC
|
||||
|
||||
TODO:
|
||||
- 8-bit support for FIFO, parameters and command values
|
||||
- execution cycles;
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "h63484.h"
|
||||
#include "hd63484.h"
|
||||
|
||||
#define LOG 0
|
||||
#define FIFO_LOG 0
|
||||
#define CMD_LOG 0
|
||||
|
||||
// default address map
|
||||
static ADDRESS_MAP_START( h63484_vram, AS_0, 16, h63484_device )
|
||||
// AM_RANGE(0x00000, 0x7ffff) AM_RAM
|
||||
// AM_RANGE(0x80000, 0xfffff) AM_NOP
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// h63484_device - constructor
|
||||
// hd63484_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
h63484_device::h63484_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, H63484, "HD63484 CRTC", tag, owner, clock, "hd63484", __FILE__),
|
||||
hd63484_device::hd63484_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, HD63484, "HD63484 CRTC", tag, owner, clock, "hd63484", __FILE__),
|
||||
device_memory_interface(mconfig, *this),
|
||||
device_video_interface(mconfig, *this),
|
||||
m_auto_configure_screen(true),
|
||||
@ -46,7 +39,7 @@ h63484_device::h63484_device(const machine_config &mconfig, const char *tag, dev
|
||||
m_cl0(0),
|
||||
m_cl1(0), m_ccmp(0), m_mask(0), m_cpx(0),
|
||||
m_dcr(0),
|
||||
m_space_config("videoram", ENDIANNESS_BIG, 16, 20, -1, nullptr, *ADDRESS_MAP_NAME(h63484_vram))
|
||||
m_space_config("videoram", ENDIANNESS_BIG, 16, 20, -1)
|
||||
{
|
||||
}
|
||||
|
||||
@ -63,14 +56,14 @@ enum
|
||||
FIFO_COMMAND
|
||||
};
|
||||
|
||||
#define H63484_SR_CER 0x80 // Command Error
|
||||
#define H63484_SR_ARD 0x40 // Area Detect
|
||||
#define H63484_SR_CED 0x20 // Command End
|
||||
#define H63484_SR_LPD 0x10 // Light Pen Strobe Detect
|
||||
#define H63484_SR_RFF 0x08 // Read FIFO Full
|
||||
#define H63484_SR_RFR 0x04 // Read FIFO Ready
|
||||
#define H63484_SR_WFR 0x02 // Write FIFO Ready
|
||||
#define H63484_SR_WFE 0x01 // Write FIFO Empty
|
||||
#define HD63484_SR_CER 0x80 // Command Error
|
||||
#define HD63484_SR_ARD 0x40 // Area Detect
|
||||
#define HD63484_SR_CED 0x20 // Command End
|
||||
#define HD63484_SR_LPD 0x10 // Light Pen Strobe Detect
|
||||
#define HD63484_SR_RFF 0x08 // Read FIFO Full
|
||||
#define HD63484_SR_RFR 0x04 // Read FIFO Ready
|
||||
#define HD63484_SR_WFR 0x02 // Write FIFO Ready
|
||||
#define HD63484_SR_WFE 0x01 // Write FIFO Empty
|
||||
|
||||
|
||||
static const char *const acrtc_regnames[0x100/2] =
|
||||
@ -290,57 +283,57 @@ enum
|
||||
COMMAND_RGCPY
|
||||
};
|
||||
|
||||
#define H63484_COMMAND_ORG 0x0400 // p: 2
|
||||
#define H63484_COMMAND_WPR 0x0800 // & ~0x1f p: 1
|
||||
#define H63484_COMMAND_RPR 0x0c00 // & ~0x1f p: 0
|
||||
#define H63484_COMMAND_WPTN 0x1800 // & ~0xf p: 1 + n
|
||||
#define H63484_COMMAND_RPTN 0x1c00 // & ~0xf p: 1
|
||||
#define H63484_COMMAND_DRD 0x2400 // p: 2
|
||||
#define H63484_COMMAND_DWT 0x2800 // p: 2
|
||||
#define H63484_COMMAND_DMOD 0x2c00 // & ~3 p: 2
|
||||
#define H63484_COMMAND_RD 0x4400 // p: 0
|
||||
#define H63484_COMMAND_WT 0x4800 // p: 1
|
||||
#define H63484_COMMAND_MOD 0x4c00 // & ~3 p: 1
|
||||
#define H63484_COMMAND_CLR 0x5800 // p: 3
|
||||
#define H63484_COMMAND_SCLR 0x5c00 // & ~3 p: 3
|
||||
#define H63484_COMMAND_CPY 0x6000 // & ~0x0f03 p: 4
|
||||
#define H63484_COMMAND_SCPY 0x7000 // & ~0x0f03 p: 4
|
||||
#define H63484_COMMAND_AMOVE 0x8000 // p: 2
|
||||
#define H63484_COMMAND_RMOVE 0x8400 // p: 2
|
||||
#define H63484_COMMAND_ALINE 0x8800 // & ~0x00ff p: 2
|
||||
#define H63484_COMMAND_RLINE 0x8c00 // & ~0x00ff p: 2
|
||||
#define H63484_COMMAND_ARCT 0x9000 // & ~0x00ff p: 2
|
||||
#define H63484_COMMAND_RRCT 0x9400 // & ~0x00ff p: 2
|
||||
#define H63484_COMMAND_APLL 0x9800 // & ~0x00ff p: 1 + n
|
||||
#define H63484_COMMAND_RPLL 0x9c00 // & ~0x00ff p: 1 + n
|
||||
#define H63484_COMMAND_APLG 0xa000 // & ~0x00ff p: 1 + n
|
||||
#define H63484_COMMAND_RPLG 0xa400 // & ~0x00ff p: 1 + n
|
||||
#define H63484_COMMAND_CRCL 0xa800 // & ~0x01ff p: 1
|
||||
#define H63484_COMMAND_ELPS 0xac00 // & ~0x01ff p: 3
|
||||
#define H63484_COMMAND_AARC 0xb000 // & ~0x01ff p: 4
|
||||
#define H63484_COMMAND_RARC 0xb400 // & ~0x01ff p: 4
|
||||
#define H63484_COMMAND_AEARC 0xb800 // & ~0x01ff p: 6
|
||||
#define H63484_COMMAND_REARC 0xbc00 // & ~0x01ff p: 6
|
||||
#define H63484_COMMAND_AFRCT 0xc000 // & ~0x00ff p: 2
|
||||
#define H63484_COMMAND_RFRCT 0xc400 // & ~0x00ff p: 2
|
||||
#define H63484_COMMAND_PAINT 0xc800 // & ~0x01ff p: 0
|
||||
#define H63484_COMMAND_DOT 0xcc00 // & ~0x00ff p: 0
|
||||
#define H63484_COMMAND_PTN 0xd000 // & ~0x0fff p: 1
|
||||
#define H63484_COMMAND_AGCPY 0xe000 // & ~0x0fff p: 4
|
||||
#define H63484_COMMAND_RGCPY 0xf000 // & ~0x0fff p: 4
|
||||
#define HD63484_COMMAND_ORG 0x0400 // p: 2
|
||||
#define HD63484_COMMAND_WPR 0x0800 // & ~0x1f p: 1
|
||||
#define HD63484_COMMAND_RPR 0x0c00 // & ~0x1f p: 0
|
||||
#define HD63484_COMMAND_WPTN 0x1800 // & ~0xf p: 1 + n
|
||||
#define HD63484_COMMAND_RPTN 0x1c00 // & ~0xf p: 1
|
||||
#define HD63484_COMMAND_DRD 0x2400 // p: 2
|
||||
#define HD63484_COMMAND_DWT 0x2800 // p: 2
|
||||
#define HD63484_COMMAND_DMOD 0x2c00 // & ~3 p: 2
|
||||
#define HD63484_COMMAND_RD 0x4400 // p: 0
|
||||
#define HD63484_COMMAND_WT 0x4800 // p: 1
|
||||
#define HD63484_COMMAND_MOD 0x4c00 // & ~3 p: 1
|
||||
#define HD63484_COMMAND_CLR 0x5800 // p: 3
|
||||
#define HD63484_COMMAND_SCLR 0x5c00 // & ~3 p: 3
|
||||
#define HD63484_COMMAND_CPY 0x6000 // & ~0x0f03 p: 4
|
||||
#define HD63484_COMMAND_SCPY 0x7000 // & ~0x0f03 p: 4
|
||||
#define HD63484_COMMAND_AMOVE 0x8000 // p: 2
|
||||
#define HD63484_COMMAND_RMOVE 0x8400 // p: 2
|
||||
#define HD63484_COMMAND_ALINE 0x8800 // & ~0x00ff p: 2
|
||||
#define HD63484_COMMAND_RLINE 0x8c00 // & ~0x00ff p: 2
|
||||
#define HD63484_COMMAND_ARCT 0x9000 // & ~0x00ff p: 2
|
||||
#define HD63484_COMMAND_RRCT 0x9400 // & ~0x00ff p: 2
|
||||
#define HD63484_COMMAND_APLL 0x9800 // & ~0x00ff p: 1 + n
|
||||
#define HD63484_COMMAND_RPLL 0x9c00 // & ~0x00ff p: 1 + n
|
||||
#define HD63484_COMMAND_APLG 0xa000 // & ~0x00ff p: 1 + n
|
||||
#define HD63484_COMMAND_RPLG 0xa400 // & ~0x00ff p: 1 + n
|
||||
#define HD63484_COMMAND_CRCL 0xa800 // & ~0x01ff p: 1
|
||||
#define HD63484_COMMAND_ELPS 0xac00 // & ~0x01ff p: 3
|
||||
#define HD63484_COMMAND_AARC 0xb000 // & ~0x01ff p: 4
|
||||
#define HD63484_COMMAND_RARC 0xb400 // & ~0x01ff p: 4
|
||||
#define HD63484_COMMAND_AEARC 0xb800 // & ~0x01ff p: 6
|
||||
#define HD63484_COMMAND_REARC 0xbc00 // & ~0x01ff p: 6
|
||||
#define HD63484_COMMAND_AFRCT 0xc000 // & ~0x00ff p: 2
|
||||
#define HD63484_COMMAND_RFRCT 0xc400 // & ~0x00ff p: 2
|
||||
#define HD63484_COMMAND_PAINT 0xc800 // & ~0x01ff p: 0
|
||||
#define HD63484_COMMAND_DOT 0xcc00 // & ~0x00ff p: 0
|
||||
#define HD63484_COMMAND_PTN 0xd000 // & ~0x0fff p: 1
|
||||
#define HD63484_COMMAND_AGCPY 0xe000 // & ~0x0fff p: 4
|
||||
#define HD63484_COMMAND_RGCPY 0xf000 // & ~0x0fff p: 4
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
ROM( h63484 )
|
||||
ROM( hd63484 )
|
||||
-------------------------------------------------*/
|
||||
|
||||
// devices
|
||||
const device_type H63484 = &device_creator<h63484_device>;
|
||||
const device_type HD63484 = &device_creator<hd63484_device>;
|
||||
|
||||
|
||||
ROM_START( h63484 )
|
||||
ROM_REGION( 0x100, "h63484", 0 )
|
||||
ROM_LOAD( "h63484.bin", 0x000, 0x100, NO_DUMP ) /* internal control ROM */
|
||||
ROM_START( hd63484 )
|
||||
ROM_REGION( 0x100, "hd63484", 0 )
|
||||
ROM_LOAD( "hd63484.bin", 0x000, 0x100, NO_DUMP ) /* internal control ROM */
|
||||
ROM_END
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -348,7 +341,7 @@ ROM_END
|
||||
// any address spaces owned by this device
|
||||
//-------------------------------------------------
|
||||
|
||||
const address_space_config *h63484_device::memory_space_config(address_spacenum spacenum) const
|
||||
const address_space_config *hd63484_device::memory_space_config(address_spacenum spacenum) const
|
||||
{
|
||||
return (spacenum == AS_0) ? &m_space_config : nullptr;
|
||||
}
|
||||
@ -358,16 +351,16 @@ const address_space_config *h63484_device::memory_space_config(address_spacenum
|
||||
// rom_region - device-specific ROM region
|
||||
//-------------------------------------------------
|
||||
|
||||
const rom_entry *h63484_device::device_rom_region() const
|
||||
const rom_entry *hd63484_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( h63484 );
|
||||
return ROM_NAME( hd63484 );
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// readword - read a word at the given address
|
||||
//-------------------------------------------------
|
||||
|
||||
inline UINT16 h63484_device::readword(offs_t address)
|
||||
inline UINT16 hd63484_device::readword(offs_t address)
|
||||
{
|
||||
return space().read_word(address << 1);
|
||||
}
|
||||
@ -377,13 +370,13 @@ inline UINT16 h63484_device::readword(offs_t address)
|
||||
// writeword - write a word at the given address
|
||||
//-------------------------------------------------
|
||||
|
||||
inline void h63484_device::writeword(offs_t address, UINT16 data)
|
||||
inline void hd63484_device::writeword(offs_t address, UINT16 data)
|
||||
{
|
||||
space().write_word(address << 1, data);
|
||||
}
|
||||
|
||||
|
||||
inline void h63484_device::inc_ar(int value)
|
||||
inline void hd63484_device::inc_ar(int value)
|
||||
{
|
||||
if(m_ar & 0x80)
|
||||
{
|
||||
@ -394,7 +387,7 @@ inline void h63484_device::inc_ar(int value)
|
||||
}
|
||||
}
|
||||
|
||||
inline void h63484_device::fifo_w_clear()
|
||||
inline void hd63484_device::fifo_w_clear()
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -403,11 +396,11 @@ inline void h63484_device::fifo_w_clear()
|
||||
|
||||
m_fifo_ptr = -1;
|
||||
|
||||
m_sr |= H63484_SR_WFR;
|
||||
m_sr |= H63484_SR_WFE;
|
||||
m_sr |= HD63484_SR_WFR;
|
||||
m_sr |= HD63484_SR_WFE;
|
||||
}
|
||||
|
||||
inline void h63484_device::queue_w(UINT8 data)
|
||||
inline void hd63484_device::queue_w(UINT8 data)
|
||||
{
|
||||
if (m_fifo_ptr < 15)
|
||||
{
|
||||
@ -416,9 +409,9 @@ inline void h63484_device::queue_w(UINT8 data)
|
||||
m_fifo[m_fifo_ptr] = data;
|
||||
|
||||
if (m_fifo_ptr == 16)
|
||||
m_sr &= ~H63484_SR_WFR;
|
||||
m_sr &= ~HD63484_SR_WFR;
|
||||
|
||||
m_sr &= ~H63484_SR_WFE;
|
||||
m_sr &= ~HD63484_SR_WFE;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -427,7 +420,7 @@ inline void h63484_device::queue_w(UINT8 data)
|
||||
}
|
||||
}
|
||||
|
||||
inline void h63484_device::dequeue_w(UINT8 *data)
|
||||
inline void hd63484_device::dequeue_w(UINT8 *data)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -442,15 +435,15 @@ inline void h63484_device::dequeue_w(UINT8 *data)
|
||||
|
||||
m_fifo_ptr--;
|
||||
|
||||
m_sr |= H63484_SR_WFR;
|
||||
m_sr |= HD63484_SR_WFR;
|
||||
|
||||
if (m_fifo_ptr == -1)
|
||||
m_sr |= H63484_SR_WFE;
|
||||
m_sr |= HD63484_SR_WFE;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
inline void h63484_device::fifo_r_clear()
|
||||
inline void hd63484_device::fifo_r_clear()
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -459,11 +452,11 @@ inline void h63484_device::fifo_r_clear()
|
||||
|
||||
m_fifo_r_ptr = -1;
|
||||
|
||||
m_sr &= ~H63484_SR_RFR;
|
||||
m_sr &= ~H63484_SR_RFF;
|
||||
m_sr &= ~HD63484_SR_RFR;
|
||||
m_sr &= ~HD63484_SR_RFF;
|
||||
}
|
||||
|
||||
inline void h63484_device::queue_r(UINT8 data)
|
||||
inline void hd63484_device::queue_r(UINT8 data)
|
||||
{
|
||||
if (m_fifo_r_ptr < 15)
|
||||
{
|
||||
@ -472,9 +465,9 @@ inline void h63484_device::queue_r(UINT8 data)
|
||||
m_fifo_r[m_fifo_r_ptr] = data;
|
||||
|
||||
if (m_fifo_r_ptr == 16)
|
||||
m_sr |= H63484_SR_RFF;
|
||||
m_sr |= HD63484_SR_RFF;
|
||||
|
||||
m_sr |= H63484_SR_RFR;
|
||||
m_sr |= HD63484_SR_RFR;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -483,7 +476,7 @@ inline void h63484_device::queue_r(UINT8 data)
|
||||
}
|
||||
}
|
||||
|
||||
inline void h63484_device::dequeue_r(UINT8 *data)
|
||||
inline void hd63484_device::dequeue_r(UINT8 *data)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -498,10 +491,10 @@ inline void h63484_device::dequeue_r(UINT8 *data)
|
||||
|
||||
m_fifo_r_ptr--;
|
||||
|
||||
m_sr &= ~H63484_SR_RFF;
|
||||
m_sr &= ~HD63484_SR_RFF;
|
||||
|
||||
if (m_fifo_r_ptr == -1)
|
||||
m_sr &= ~H63484_SR_RFR;
|
||||
m_sr &= ~HD63484_SR_RFR;
|
||||
}
|
||||
}
|
||||
|
||||
@ -509,7 +502,7 @@ inline void h63484_device::dequeue_r(UINT8 *data)
|
||||
// recompute_parameters -
|
||||
//-------------------------------------------------
|
||||
|
||||
inline void h63484_device::recompute_parameters()
|
||||
inline void hd63484_device::recompute_parameters()
|
||||
{
|
||||
if(!m_auto_configure_screen || m_hdw < 3 || m_hc == 0 || m_vc == 0) //bail out if screen params aren't valid
|
||||
return;
|
||||
@ -541,91 +534,91 @@ inline void h63484_device::recompute_parameters()
|
||||
IMPLEMENTATION
|
||||
*****************************************************************************/
|
||||
|
||||
int h63484_device::translate_command(UINT16 data)
|
||||
int hd63484_device::translate_command(UINT16 data)
|
||||
{
|
||||
/* annoying switch-case sequence, but it's the only way to get invalid commands ... */
|
||||
switch (data)
|
||||
{
|
||||
case H63484_COMMAND_ORG: return COMMAND_ORG;
|
||||
case H63484_COMMAND_DRD: return COMMAND_DRD;
|
||||
case H63484_COMMAND_DWT: return COMMAND_DWT;
|
||||
case H63484_COMMAND_RD: return COMMAND_RD;
|
||||
case H63484_COMMAND_WT: return COMMAND_WT;
|
||||
case H63484_COMMAND_CLR: return COMMAND_CLR;
|
||||
case H63484_COMMAND_AMOVE: return COMMAND_AMOVE;
|
||||
case H63484_COMMAND_RMOVE: return COMMAND_RMOVE;
|
||||
case HD63484_COMMAND_ORG: return COMMAND_ORG;
|
||||
case HD63484_COMMAND_DRD: return COMMAND_DRD;
|
||||
case HD63484_COMMAND_DWT: return COMMAND_DWT;
|
||||
case HD63484_COMMAND_RD: return COMMAND_RD;
|
||||
case HD63484_COMMAND_WT: return COMMAND_WT;
|
||||
case HD63484_COMMAND_CLR: return COMMAND_CLR;
|
||||
case HD63484_COMMAND_AMOVE: return COMMAND_AMOVE;
|
||||
case HD63484_COMMAND_RMOVE: return COMMAND_RMOVE;
|
||||
}
|
||||
|
||||
switch(data & ~0x3)
|
||||
{
|
||||
case H63484_COMMAND_DMOD: return COMMAND_DMOD;
|
||||
case H63484_COMMAND_MOD: return COMMAND_MOD;
|
||||
case H63484_COMMAND_SCLR: return COMMAND_SCLR;
|
||||
case HD63484_COMMAND_DMOD: return COMMAND_DMOD;
|
||||
case HD63484_COMMAND_MOD: return COMMAND_MOD;
|
||||
case HD63484_COMMAND_SCLR: return COMMAND_SCLR;
|
||||
}
|
||||
|
||||
switch(data & ~0xf)
|
||||
{
|
||||
case H63484_COMMAND_WPTN: return COMMAND_WPTN;
|
||||
case H63484_COMMAND_RPTN: return COMMAND_RPTN;
|
||||
case HD63484_COMMAND_WPTN: return COMMAND_WPTN;
|
||||
case HD63484_COMMAND_RPTN: return COMMAND_RPTN;
|
||||
}
|
||||
|
||||
switch(data & ~0x1f)
|
||||
{
|
||||
case H63484_COMMAND_WPR: return COMMAND_WPR;
|
||||
case H63484_COMMAND_RPR: return COMMAND_RPR;
|
||||
case HD63484_COMMAND_WPR: return COMMAND_WPR;
|
||||
case HD63484_COMMAND_RPR: return COMMAND_RPR;
|
||||
}
|
||||
|
||||
switch(data & ~0x0f03)
|
||||
{
|
||||
case H63484_COMMAND_CPY: return COMMAND_CPY;
|
||||
case H63484_COMMAND_SCPY: return COMMAND_SCPY;
|
||||
case HD63484_COMMAND_CPY: return COMMAND_CPY;
|
||||
case HD63484_COMMAND_SCPY: return COMMAND_SCPY;
|
||||
}
|
||||
|
||||
switch(data & ~0x00ff)
|
||||
{
|
||||
case H63484_COMMAND_ALINE: return COMMAND_ALINE;
|
||||
case H63484_COMMAND_RLINE: return COMMAND_RLINE;
|
||||
case H63484_COMMAND_ARCT: return COMMAND_ARCT;
|
||||
case H63484_COMMAND_RRCT: return COMMAND_RRCT;
|
||||
case H63484_COMMAND_APLL: return COMMAND_APLL;
|
||||
case H63484_COMMAND_RPLL: return COMMAND_RPLL;
|
||||
case H63484_COMMAND_APLG: return COMMAND_APLG;
|
||||
case H63484_COMMAND_RPLG: return COMMAND_RPLG;
|
||||
case H63484_COMMAND_AFRCT: return COMMAND_AFRCT;
|
||||
case H63484_COMMAND_RFRCT: return COMMAND_RFRCT;
|
||||
case H63484_COMMAND_DOT: return COMMAND_DOT;
|
||||
case HD63484_COMMAND_ALINE: return COMMAND_ALINE;
|
||||
case HD63484_COMMAND_RLINE: return COMMAND_RLINE;
|
||||
case HD63484_COMMAND_ARCT: return COMMAND_ARCT;
|
||||
case HD63484_COMMAND_RRCT: return COMMAND_RRCT;
|
||||
case HD63484_COMMAND_APLL: return COMMAND_APLL;
|
||||
case HD63484_COMMAND_RPLL: return COMMAND_RPLL;
|
||||
case HD63484_COMMAND_APLG: return COMMAND_APLG;
|
||||
case HD63484_COMMAND_RPLG: return COMMAND_RPLG;
|
||||
case HD63484_COMMAND_AFRCT: return COMMAND_AFRCT;
|
||||
case HD63484_COMMAND_RFRCT: return COMMAND_RFRCT;
|
||||
case HD63484_COMMAND_DOT: return COMMAND_DOT;
|
||||
}
|
||||
|
||||
switch(data & ~0x01ff)
|
||||
{
|
||||
case H63484_COMMAND_CRCL: return COMMAND_CRCL;
|
||||
case H63484_COMMAND_ELPS: return COMMAND_ELPS;
|
||||
case H63484_COMMAND_AARC: return COMMAND_AARC;
|
||||
case H63484_COMMAND_RARC: return COMMAND_RARC;
|
||||
case H63484_COMMAND_AEARC: return COMMAND_AEARC;
|
||||
case H63484_COMMAND_REARC: return COMMAND_REARC;
|
||||
case H63484_COMMAND_PAINT: return COMMAND_PAINT;
|
||||
case HD63484_COMMAND_CRCL: return COMMAND_CRCL;
|
||||
case HD63484_COMMAND_ELPS: return COMMAND_ELPS;
|
||||
case HD63484_COMMAND_AARC: return COMMAND_AARC;
|
||||
case HD63484_COMMAND_RARC: return COMMAND_RARC;
|
||||
case HD63484_COMMAND_AEARC: return COMMAND_AEARC;
|
||||
case HD63484_COMMAND_REARC: return COMMAND_REARC;
|
||||
case HD63484_COMMAND_PAINT: return COMMAND_PAINT;
|
||||
}
|
||||
|
||||
switch(data & ~0x0fff)
|
||||
{
|
||||
case H63484_COMMAND_PTN: return COMMAND_PTN;
|
||||
case H63484_COMMAND_AGCPY: return COMMAND_AGCPY;
|
||||
case H63484_COMMAND_RGCPY: return COMMAND_RGCPY;
|
||||
case HD63484_COMMAND_PTN: return COMMAND_PTN;
|
||||
case HD63484_COMMAND_AGCPY: return COMMAND_AGCPY;
|
||||
case HD63484_COMMAND_RGCPY: return COMMAND_RGCPY;
|
||||
}
|
||||
|
||||
return COMMAND_INVALID;
|
||||
}
|
||||
|
||||
inline void h63484_device::command_end_seq()
|
||||
inline void hd63484_device::command_end_seq()
|
||||
{
|
||||
//h63484->param_ptr = 0;
|
||||
m_sr |= H63484_SR_CED;
|
||||
//hd63484->param_ptr = 0;
|
||||
m_sr |= HD63484_SR_CED;
|
||||
|
||||
/* TODO: we might need to be more aggressive and clear the params in there */
|
||||
}
|
||||
|
||||
int h63484_device::get_bpp()
|
||||
int hd63484_device::get_bpp()
|
||||
{
|
||||
int gbm = (m_ccr >> 8) & 0x07;
|
||||
|
||||
@ -636,7 +629,7 @@ int h63484_device::get_bpp()
|
||||
return 1;
|
||||
}
|
||||
|
||||
void h63484_device::calc_offset(INT16 x, INT16 y, UINT32 &offset, UINT8 &bit_pos)
|
||||
void hd63484_device::calc_offset(INT16 x, INT16 y, UINT32 &offset, UINT8 &bit_pos)
|
||||
{
|
||||
int bpp = get_bpp();
|
||||
int ppw = 16 / bpp;
|
||||
@ -662,7 +655,7 @@ void h63484_device::calc_offset(INT16 x, INT16 y, UINT32 &offset, UINT8 &bit_pos
|
||||
bit_pos *= bpp;
|
||||
}
|
||||
|
||||
UINT16 h63484_device::get_dot(INT16 x, INT16 y)
|
||||
UINT16 hd63484_device::get_dot(INT16 x, INT16 y)
|
||||
{
|
||||
UINT8 bpp = get_bpp();
|
||||
UINT32 offset = 0;
|
||||
@ -673,7 +666,7 @@ UINT16 h63484_device::get_dot(INT16 x, INT16 y)
|
||||
return (readword(offset) >> bit_pos) & ((1 << bpp) - 1);
|
||||
}
|
||||
|
||||
bool h63484_device::set_dot(INT16 x, INT16 y, INT16 px, INT16 py)
|
||||
bool hd63484_device::set_dot(INT16 x, INT16 y, INT16 px, INT16 py)
|
||||
{
|
||||
int xs = m_pex - m_psx + 1;
|
||||
int ys = m_pey - m_psy + 1;
|
||||
@ -717,7 +710,7 @@ bool h63484_device::set_dot(INT16 x, INT16 y, INT16 px, INT16 py)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool h63484_device::set_dot(INT16 x, INT16 y, UINT16 color)
|
||||
bool hd63484_device::set_dot(INT16 x, INT16 y, UINT16 color)
|
||||
{
|
||||
UINT8 bpp = get_bpp();
|
||||
UINT32 offset = 0;
|
||||
@ -773,7 +766,7 @@ bool h63484_device::set_dot(INT16 x, INT16 y, UINT16 color)
|
||||
return false; // TODO: return area detection status
|
||||
}
|
||||
|
||||
void h63484_device::draw_line(INT16 sx, INT16 sy, INT16 ex, INT16 ey)
|
||||
void hd63484_device::draw_line(INT16 sx, INT16 sy, INT16 ex, INT16 ey)
|
||||
{
|
||||
UINT16 delta_x = abs(ex - sx) * 2;
|
||||
UINT16 delta_y = abs(ey - sy) * 2;
|
||||
@ -817,7 +810,7 @@ void h63484_device::draw_line(INT16 sx, INT16 sy, INT16 ex, INT16 ey)
|
||||
}
|
||||
}
|
||||
|
||||
void h63484_device::draw_ellipse(INT16 cx, INT16 cy, double dx, double dy, double s_angol, double e_angol, bool c)
|
||||
void hd63484_device::draw_ellipse(INT16 cx, INT16 cy, double dx, double dy, double s_angol, double e_angol, bool c)
|
||||
{
|
||||
double inc = 1.0 / (MAX(dx, dy) * 100);
|
||||
for (double angol = s_angol; fabs(angol - e_angol) >= inc*2; angol += inc * (c ? -1 : +1))
|
||||
@ -831,7 +824,7 @@ void h63484_device::draw_ellipse(INT16 cx, INT16 cy, double dx, double dy, doubl
|
||||
}
|
||||
}
|
||||
|
||||
void h63484_device::paint(INT16 sx, INT16 sy)
|
||||
void hd63484_device::paint(INT16 sx, INT16 sy)
|
||||
{
|
||||
/*
|
||||
This is not accurate since real hardware can only paint 4 'unpaintable' areas,
|
||||
@ -887,7 +880,7 @@ void h63484_device::paint(INT16 sx, INT16 sy)
|
||||
}
|
||||
}
|
||||
|
||||
UINT16 h63484_device::command_rpr_exec()
|
||||
UINT16 hd63484_device::command_rpr_exec()
|
||||
{
|
||||
switch(m_cr & 0x1f)
|
||||
{
|
||||
@ -925,7 +918,7 @@ UINT16 h63484_device::command_rpr_exec()
|
||||
}
|
||||
}
|
||||
|
||||
void h63484_device::command_wpr_exec()
|
||||
void hd63484_device::command_wpr_exec()
|
||||
{
|
||||
switch(m_cr & 0x1f)
|
||||
{
|
||||
@ -985,7 +978,7 @@ void h63484_device::command_wpr_exec()
|
||||
}
|
||||
}
|
||||
|
||||
void h63484_device::command_clr_exec()
|
||||
void hd63484_device::command_clr_exec()
|
||||
{
|
||||
UINT8 mm = m_cr & 0x03;
|
||||
UINT16 d = m_pr[0];
|
||||
@ -1032,7 +1025,7 @@ void h63484_device::command_clr_exec()
|
||||
m_rwp[m_rwp_dn] &= 0xfffff;
|
||||
}
|
||||
|
||||
void h63484_device::command_cpy_exec()
|
||||
void hd63484_device::command_cpy_exec()
|
||||
{
|
||||
UINT8 mm = m_cr & 0x03;
|
||||
UINT8 dsd = (m_cr >> 8) & 0x07;
|
||||
@ -1103,7 +1096,7 @@ void h63484_device::command_cpy_exec()
|
||||
m_rwp[m_rwp_dn] &= 0xfffff;
|
||||
}
|
||||
|
||||
void h63484_device::command_line_exec()
|
||||
void hd63484_device::command_line_exec()
|
||||
{
|
||||
INT16 x = (INT16)m_pr[0];
|
||||
INT16 y = (INT16)m_pr[1];
|
||||
@ -1120,7 +1113,7 @@ void h63484_device::command_line_exec()
|
||||
m_cpy = y;
|
||||
}
|
||||
|
||||
void h63484_device::command_rct_exec()
|
||||
void hd63484_device::command_rct_exec()
|
||||
{
|
||||
INT16 dX = m_pr[0];
|
||||
INT16 dY = m_pr[1];
|
||||
@ -1151,7 +1144,7 @@ void h63484_device::command_rct_exec()
|
||||
draw_line(m_cpx, dY, m_cpx, m_cpy);
|
||||
}
|
||||
|
||||
void h63484_device::command_gcpy_exec()
|
||||
void hd63484_device::command_gcpy_exec()
|
||||
{
|
||||
UINT8 dsd = (m_cr >> 8) & 0x07;
|
||||
UINT8 s = BIT(m_cr, 11);
|
||||
@ -1204,7 +1197,7 @@ void h63484_device::command_gcpy_exec()
|
||||
|
||||
}
|
||||
|
||||
void h63484_device::command_frct_exec()
|
||||
void hd63484_device::command_frct_exec()
|
||||
{
|
||||
INT16 X = (INT16)m_pr[0];
|
||||
INT16 Y = (INT16)m_pr[1];
|
||||
@ -1227,7 +1220,7 @@ void h63484_device::command_frct_exec()
|
||||
m_cpy += (Y + d1_inc);
|
||||
}
|
||||
|
||||
void h63484_device::command_ptn_exec()
|
||||
void hd63484_device::command_ptn_exec()
|
||||
{
|
||||
INT16 szx = ((m_pr[0] >> 0) & 0xff);
|
||||
INT16 szy = ((m_pr[0] >> 8) & 0xff);
|
||||
@ -1304,7 +1297,7 @@ void h63484_device::command_ptn_exec()
|
||||
}
|
||||
}
|
||||
|
||||
void h63484_device::command_plg_exec()
|
||||
void hd63484_device::command_plg_exec()
|
||||
{
|
||||
int sx = m_cpx;
|
||||
int sy = m_cpy;
|
||||
@ -1343,7 +1336,7 @@ void h63484_device::command_plg_exec()
|
||||
}
|
||||
}
|
||||
|
||||
void h63484_device::command_arc_exec()
|
||||
void hd63484_device::command_arc_exec()
|
||||
{
|
||||
INT16 xc = (INT16)m_pr[0];
|
||||
INT16 yc = (INT16)m_pr[1];
|
||||
@ -1370,7 +1363,7 @@ void h63484_device::command_arc_exec()
|
||||
m_cpy = ye;
|
||||
}
|
||||
|
||||
void h63484_device::command_earc_exec()
|
||||
void hd63484_device::command_earc_exec()
|
||||
{
|
||||
UINT16 a = m_pr[0];
|
||||
UINT16 b = m_pr[1];
|
||||
@ -1401,19 +1394,19 @@ void h63484_device::command_earc_exec()
|
||||
m_cpy = ye;
|
||||
}
|
||||
|
||||
void h63484_device::process_fifo()
|
||||
void hd63484_device::process_fifo()
|
||||
{
|
||||
UINT8 data;
|
||||
|
||||
dequeue_w(&data);
|
||||
|
||||
if (m_sr & H63484_SR_CED)
|
||||
if (m_sr & HD63484_SR_CED)
|
||||
{
|
||||
m_cr = (data & 0xff) << 8;
|
||||
dequeue_w(&data);
|
||||
m_cr |= data & 0xff;
|
||||
m_param_ptr = 0;
|
||||
m_sr &= ~H63484_SR_CED;
|
||||
m_sr &= ~HD63484_SR_CED;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1427,8 +1420,8 @@ void h63484_device::process_fifo()
|
||||
{
|
||||
case COMMAND_INVALID:
|
||||
if (CMD_LOG) logerror("HD63484 '%s': <invalid %04x>\n", tag(), m_cr);
|
||||
printf("H63484 '%s' Invalid Command Byte %02x\n", tag(), m_cr);
|
||||
m_sr |= H63484_SR_CER; // command error
|
||||
printf("HD63484 '%s' Invalid Command Byte %02x\n", tag(), m_cr);
|
||||
m_sr |= HD63484_SR_CER; // command error
|
||||
command_end_seq();
|
||||
break;
|
||||
|
||||
@ -1769,14 +1762,14 @@ void h63484_device::process_fifo()
|
||||
}
|
||||
}
|
||||
|
||||
void h63484_device::exec_abort_sequence()
|
||||
void hd63484_device::exec_abort_sequence()
|
||||
{
|
||||
fifo_w_clear();
|
||||
fifo_r_clear();
|
||||
m_sr = H63484_SR_WFR | H63484_SR_WFE | H63484_SR_CED; // hard-set to 0x23
|
||||
m_sr = HD63484_SR_WFR | HD63484_SR_WFE | HD63484_SR_CED; // hard-set to 0x23
|
||||
}
|
||||
|
||||
UINT16 h63484_device::video_registers_r(int offset)
|
||||
UINT16 hd63484_device::video_registers_r(int offset)
|
||||
{
|
||||
UINT16 res = (m_vreg[offset] << 8) | (m_vreg[offset+1] & 0xff);
|
||||
|
||||
@ -1798,7 +1791,7 @@ UINT16 h63484_device::video_registers_r(int offset)
|
||||
return res;
|
||||
}
|
||||
|
||||
void h63484_device::video_registers_w(int offset)
|
||||
void hd63484_device::video_registers_w(int offset)
|
||||
{
|
||||
UINT16 vreg_data;
|
||||
|
||||
@ -1912,13 +1905,13 @@ void h63484_device::video_registers_w(int offset)
|
||||
}
|
||||
}
|
||||
|
||||
READ16_MEMBER( h63484_device::status_r )
|
||||
READ16_MEMBER( hd63484_device::status_r )
|
||||
{
|
||||
// kothello is coded so that upper byte of this should be 0xff (tests with jc opcode). Maybe it's just unconnected?
|
||||
return m_sr | 0xff00;
|
||||
}
|
||||
|
||||
READ16_MEMBER( h63484_device::data_r )
|
||||
READ16_MEMBER( hd63484_device::data_r )
|
||||
{
|
||||
UINT16 res;
|
||||
|
||||
@ -1939,13 +1932,13 @@ READ16_MEMBER( h63484_device::data_r )
|
||||
return res;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER( h63484_device::address_w )
|
||||
WRITE16_MEMBER( hd63484_device::address_w )
|
||||
{
|
||||
if(ACCESSING_BITS_0_7)
|
||||
m_ar = data & 0xfe;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER( h63484_device::data_w )
|
||||
WRITE16_MEMBER( hd63484_device::data_w )
|
||||
{
|
||||
if(ACCESSING_BITS_8_15)
|
||||
m_vreg[m_ar] = (data & 0xff00) >> 8;
|
||||
@ -1958,17 +1951,17 @@ WRITE16_MEMBER( h63484_device::data_w )
|
||||
inc_ar(2);
|
||||
}
|
||||
|
||||
READ8_MEMBER( h63484_device::status_r )
|
||||
READ8_MEMBER( hd63484_device::status_r )
|
||||
{
|
||||
return m_sr;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( h63484_device::address_w )
|
||||
WRITE8_MEMBER( hd63484_device::address_w )
|
||||
{
|
||||
m_ar = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER( h63484_device::data_r )
|
||||
READ8_MEMBER( hd63484_device::data_r )
|
||||
{
|
||||
UINT8 res = 0xff;
|
||||
|
||||
@ -1982,7 +1975,7 @@ READ8_MEMBER( h63484_device::data_r )
|
||||
return res;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( h63484_device::data_w )
|
||||
WRITE8_MEMBER( hd63484_device::data_w )
|
||||
{
|
||||
m_vreg[m_ar] = data;
|
||||
|
||||
@ -2000,7 +1993,7 @@ WRITE8_MEMBER( h63484_device::data_w )
|
||||
inc_ar(1);
|
||||
}
|
||||
|
||||
void h63484_device::device_start()
|
||||
void hd63484_device::device_start()
|
||||
{
|
||||
m_display_cb.bind_relative_to(*owner());
|
||||
|
||||
@ -2011,9 +2004,9 @@ void h63484_device::device_start()
|
||||
// device_reset - device-specific reset
|
||||
//-------------------------------------------------
|
||||
|
||||
void h63484_device::device_reset()
|
||||
void hd63484_device::device_reset()
|
||||
{
|
||||
m_sr = H63484_SR_CED | H63484_SR_WFR | H63484_SR_WFE;
|
||||
m_sr = HD63484_SR_CED | HD63484_SR_WFR | HD63484_SR_WFE;
|
||||
m_ccr = m_omr = m_edg = m_dcr = m_hsw = 0;
|
||||
m_hc = m_hds = m_hdw = m_hws = m_hww = 0;
|
||||
m_vc = m_vws = m_vww = m_vds = m_vsw = 0;
|
||||
@ -2049,7 +2042,7 @@ void h63484_device::device_reset()
|
||||
// draw_graphics_line -
|
||||
//-------------------------------------------------
|
||||
|
||||
void h63484_device::draw_graphics_line(bitmap_ind16 &bitmap, const rectangle &cliprect, int vs, int y, int layer_n, bool active, bool ins_window)
|
||||
void hd63484_device::draw_graphics_line(bitmap_ind16 &bitmap, const rectangle &cliprect, int vs, int y, int layer_n, bool active, bool ins_window)
|
||||
{
|
||||
int bpp = get_bpp();
|
||||
int ppw = 16 / bpp;
|
||||
@ -2106,7 +2099,7 @@ void h63484_device::draw_graphics_line(bitmap_ind16 &bitmap, const rectangle &cl
|
||||
// update_screen -
|
||||
//-------------------------------------------------
|
||||
|
||||
UINT32 h63484_device::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
UINT32 hd63484_device::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int l0 = cliprect.min_y + (BIT(m_dcr, 13) ? m_sp[0] : 0);
|
||||
int l1 = l0 + m_sp[1];
|
||||
@ -2129,7 +2122,7 @@ UINT32 h63484_device::update_screen(screen_device &screen, bitmap_ind16 &bitmap,
|
||||
return 0;
|
||||
}
|
||||
|
||||
void h63484_device::register_save_state()
|
||||
void hd63484_device::register_save_state()
|
||||
{
|
||||
save_item(NAME(m_ar));
|
||||
save_item(NAME(m_vreg));
|
@ -9,48 +9,48 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __H63484__
|
||||
#define __H63484__
|
||||
#ifndef __HD63484__
|
||||
#define __HD63484__
|
||||
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
|
||||
typedef device_delegate<void (bitmap_ind16 &bitmap, const rectangle &cliprect, int y, int x, UINT16 data)> h63484_display_delegate;
|
||||
typedef device_delegate<void (bitmap_ind16 &bitmap, const rectangle &cliprect, int y, int x, UINT16 data)> hd63484_display_delegate;
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
DEVICE CONFIGURATION MACROS
|
||||
***************************************************************************/
|
||||
|
||||
#define MCFG_H63484_ADD(_tag, _clock, _map) \
|
||||
MCFG_DEVICE_ADD(_tag, H63484, _clock) \
|
||||
#define MCFG_HD63484_ADD(_tag, _clock, _map) \
|
||||
MCFG_DEVICE_ADD(_tag, HD63484, _clock) \
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, _map)
|
||||
|
||||
#define MCFG_H63484_ADDRESS_MAP(_map) \
|
||||
#define MCFG_HD63484_ADDRESS_MAP(_map) \
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, _map)
|
||||
|
||||
#define MCFG_H63484_DISPLAY_CALLBACK_OWNER(_class, _method) \
|
||||
h63484_device::static_set_display_callback(*device, h63484_display_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
|
||||
#define MCFG_HD63484_DISPLAY_CALLBACK_OWNER(_class, _method) \
|
||||
hd63484_device::static_set_display_callback(*device, hd63484_display_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
|
||||
|
||||
#define MCFG_H63484_AUTO_CONFIGURE_SCREEN(_val) \
|
||||
h63484_device::static_set_auto_configure_screen(*device, _val);
|
||||
#define MCFG_HD63484_AUTO_CONFIGURE_SCREEN(_val) \
|
||||
hd63484_device::static_set_auto_configure_screen(*device, _val);
|
||||
|
||||
#define H63484_DISPLAY_PIXELS_MEMBER(_name) void _name(bitmap_ind16 &bitmap, const rectangle &cliprect, int y, int x, UINT16 data)
|
||||
#define HD63484_DISPLAY_PIXELS_MEMBER(_name) void _name(bitmap_ind16 &bitmap, const rectangle &cliprect, int y, int x, UINT16 data)
|
||||
|
||||
|
||||
// ======================> h63484_device
|
||||
// ======================> hd63484_device
|
||||
|
||||
class h63484_device : public device_t,
|
||||
class hd63484_device : public device_t,
|
||||
public device_memory_interface,
|
||||
public device_video_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
h63484_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
hd63484_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
static void static_set_display_callback(device_t &device, h63484_display_delegate callback) { downcast<h63484_device &>(device).m_display_cb = callback; }
|
||||
static void static_set_auto_configure_screen(device_t &device, bool auto_configure_screen) { downcast<h63484_device &>(device).m_auto_configure_screen = auto_configure_screen; }
|
||||
static void static_set_display_callback(device_t &device, hd63484_display_delegate callback) { downcast<hd63484_device &>(device).m_display_cb = callback; }
|
||||
static void static_set_auto_configure_screen(device_t &device, bool auto_configure_screen) { downcast<hd63484_device &>(device).m_auto_configure_screen = auto_configure_screen; }
|
||||
|
||||
DECLARE_WRITE16_MEMBER( address_w );
|
||||
DECLARE_WRITE16_MEMBER( data_w );
|
||||
@ -116,7 +116,7 @@ private:
|
||||
|
||||
void register_save_state();
|
||||
|
||||
h63484_display_delegate m_display_cb;
|
||||
hd63484_display_delegate m_display_cb;
|
||||
bool m_auto_configure_screen;
|
||||
|
||||
UINT8 m_ar;
|
||||
@ -189,6 +189,6 @@ private:
|
||||
};
|
||||
|
||||
// device type definition
|
||||
extern const device_type H63484;
|
||||
extern const device_type HD63484;
|
||||
|
||||
#endif /* __H63484_H__ */
|
||||
#endif /* __HD63484_H__ */
|
@ -157,7 +157,7 @@ Quick Jack administration/service mode:
|
||||
#include "emu.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "sound/ay8910.h"
|
||||
#include "video/h63484.h"
|
||||
#include "video/hd63484.h"
|
||||
#include "machine/microtch.h"
|
||||
#include "machine/mc68681.h"
|
||||
#include "machine/msm6242.h"
|
||||
@ -288,8 +288,8 @@ WRITE16_MEMBER(adp_state::input_w)
|
||||
|
||||
static ADDRESS_MAP_START( skattv_mem, AS_PROGRAM, 16, adp_state )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("h63484", h63484_device, status_r, address_w)
|
||||
AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("h63484", h63484_device, data_r, data_w)
|
||||
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w)
|
||||
AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w)
|
||||
AM_RANGE(0x800100, 0x800101) AM_READWRITE(input_r, input_w)
|
||||
AM_RANGE(0x800140, 0x800143) AM_DEVREADWRITE8("aysnd", ay8910_device, data_r, address_data_w, 0x00ff) //18b too
|
||||
AM_RANGE(0x800180, 0x80019f) AM_DEVREADWRITE8("duart68681", mc68681_device, read, write, 0xff )
|
||||
@ -299,8 +299,8 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( skattva_mem, AS_PROGRAM, 16, adp_state )
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||
AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE8("rtc",msm6242_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("h63484", h63484_device, status_r, address_w)
|
||||
AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("h63484", h63484_device, data_r, data_w)
|
||||
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w)
|
||||
AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w)
|
||||
AM_RANGE(0x800100, 0x800101) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0x800140, 0x800143) AM_DEVREADWRITE8("aysnd", ay8910_device, data_r, address_data_w, 0x00ff) //18b too
|
||||
AM_RANGE(0x800180, 0x80019f) AM_DEVREADWRITE8("duart68681", mc68681_device, read, write, 0xff )
|
||||
@ -310,8 +310,8 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( quickjac_mem, AS_PROGRAM, 16, adp_state )
|
||||
AM_RANGE(0x000000, 0x01ffff) AM_ROM
|
||||
AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE8("rtc",msm6242_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("h63484", h63484_device, status_r, address_w) // bad
|
||||
AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("h63484", h63484_device, data_r, data_w) // bad
|
||||
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w) // bad
|
||||
AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w) // bad
|
||||
AM_RANGE(0x800100, 0x800101) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0x800140, 0x800143) AM_DEVREADWRITE8("aysnd", ay8910_device, data_r, address_data_w, 0x00ff) //18b too
|
||||
AM_RANGE(0x800180, 0x80019f) AM_DEVREADWRITE8("duart68681", mc68681_device, read, write, 0xff )
|
||||
@ -330,8 +330,8 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( funland_mem, AS_PROGRAM, 16, adp_state )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE8("rtc",msm6242_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("h63484", h63484_device, status_r, address_w)
|
||||
AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("h63484", h63484_device, data_r, data_w)
|
||||
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w)
|
||||
AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w)
|
||||
AM_RANGE(0x800088, 0x800089) AM_DEVWRITE8("ramdac", ramdac_device, index_w, 0x00ff)
|
||||
AM_RANGE(0x80008a, 0x80008b) AM_DEVWRITE8("ramdac", ramdac_device, pal_w, 0x00ff)
|
||||
AM_RANGE(0x80008c, 0x80008d) AM_DEVWRITE8("ramdac", ramdac_device, mask_w, 0x00ff)
|
||||
@ -343,8 +343,8 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( fstation_mem, AS_PROGRAM, 16, adp_state )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("h63484", h63484_device, status_r, address_w)
|
||||
AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("h63484", h63484_device, data_r, data_w)
|
||||
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w)
|
||||
AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w)
|
||||
AM_RANGE(0x800100, 0x800101) AM_READWRITE(input_r, input_w)
|
||||
AM_RANGE(0x800140, 0x800143) AM_DEVREADWRITE8("aysnd", ay8910_device, data_r, address_data_w, 0x00ff) //18b too
|
||||
AM_RANGE(0x800180, 0x80019f) AM_DEVREADWRITE8("duart68681", mc68681_device, read, write, 0xff )
|
||||
@ -516,17 +516,17 @@ INTERRUPT_GEN_MEMBER(adp_state::adp_int)
|
||||
}
|
||||
*/
|
||||
|
||||
static ADDRESS_MAP_START( adp_h63484_map, AS_0, 16, adp_state )
|
||||
static ADDRESS_MAP_START( adp_hd63484_map, AS_0, 16, adp_state )
|
||||
AM_RANGE(0x00000, 0x1ffff) AM_MIRROR(0x60000) AM_RAM
|
||||
AM_RANGE(0x80000, 0x9ffff) AM_MIRROR(0x60000) AM_ROM AM_REGION("gfx1", 0)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( fashiong_h63484_map, AS_0, 16, adp_state )
|
||||
static ADDRESS_MAP_START( fashiong_hd63484_map, AS_0, 16, adp_state )
|
||||
AM_RANGE(0x00000, 0x1ffff) AM_MIRROR(0x60000) AM_RAM
|
||||
AM_RANGE(0x80000, 0xfffff) AM_ROM AM_REGION("gfx1", 0)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( fstation_h63484_map, AS_0, 16, adp_state )
|
||||
static ADDRESS_MAP_START( fstation_hd63484_map, AS_0, 16, adp_state )
|
||||
AM_RANGE(0x00000, 0x7ffff) AM_ROM AM_REGION("gfx1", 0)
|
||||
AM_RANGE(0x80000, 0xfffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
@ -557,14 +557,14 @@ static MACHINE_CONFIG_START( quickjac, adp_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
|
||||
MCFG_SCREEN_SIZE(384, 280)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("h63484", h63484_device, update_screen)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("hd63484", hd63484_device, update_screen)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 0x10)
|
||||
|
||||
MCFG_PALETTE_INIT_OWNER(adp_state,adp)
|
||||
|
||||
MCFG_H63484_ADD("h63484", 0, adp_h63484_map)
|
||||
MCFG_HD63484_ADD("hd63484", 0, adp_hd63484_map)
|
||||
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_SOUND_ADD("aysnd", AY8910, 3686400/2)
|
||||
@ -595,8 +595,8 @@ static MACHINE_CONFIG_DERIVED( backgamn, skattv )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( fashiong, skattv )
|
||||
MCFG_DEVICE_MODIFY("h63484")
|
||||
MCFG_H63484_ADDRESS_MAP(fashiong_h63484_map)
|
||||
MCFG_DEVICE_MODIFY("hd63484")
|
||||
MCFG_HD63484_ADDRESS_MAP(fashiong_hd63484_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static ADDRESS_MAP_START( ramdac_map, AS_0, 8, adp_state )
|
||||
@ -611,8 +611,8 @@ static MACHINE_CONFIG_DERIVED( funland, quickjac )
|
||||
MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x100)
|
||||
MCFG_RAMDAC_ADD("ramdac", ramdac_map, "palette")
|
||||
|
||||
MCFG_DEVICE_MODIFY("h63484")
|
||||
MCFG_H63484_ADDRESS_MAP(fstation_h63484_map)
|
||||
MCFG_DEVICE_MODIFY("hd63484")
|
||||
MCFG_HD63484_ADDRESS_MAP(fstation_hd63484_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( fstation, funland )
|
||||
|
@ -32,7 +32,7 @@ Also seem to be running on the same/similar hardware:
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "sound/2612intf.h"
|
||||
#include "video/h63484.h"
|
||||
#include "video/hd63484.h"
|
||||
#include "video/ramdac.h"
|
||||
|
||||
#include "segajw.lh"
|
||||
@ -186,8 +186,8 @@ CUSTOM_INPUT_MEMBER( segajw_state::coin_sensors_r )
|
||||
static ADDRESS_MAP_START( segajw_map, AS_PROGRAM, 16, segajw_state )
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||
|
||||
AM_RANGE(0x080000, 0x080001) AM_DEVREADWRITE("hd63484", h63484_device, status_r, address_w)
|
||||
AM_RANGE(0x080002, 0x080003) AM_DEVREADWRITE("hd63484", h63484_device, data_r, data_w)
|
||||
AM_RANGE(0x080000, 0x080001) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w)
|
||||
AM_RANGE(0x080002, 0x080003) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w)
|
||||
|
||||
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("DSW0")
|
||||
AM_RANGE(0x180004, 0x180005) AM_READWRITE8(soundlatch2_byte_r, audiocpu_cmd_w, 0x00ff)
|
||||
@ -404,7 +404,7 @@ static MACHINE_CONFIG_START( segajw, segajw_state )
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_UPDATE_DEVICE("hd63484", h63484_device, update_screen)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("hd63484", hd63484_device, update_screen)
|
||||
MCFG_SCREEN_SIZE(720, 480)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 720-1, 0, 448-1)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
@ -412,7 +412,7 @@ static MACHINE_CONFIG_START( segajw, segajw_state )
|
||||
MCFG_PALETTE_ADD("palette", 16)
|
||||
MCFG_RAMDAC_ADD("ramdac", ramdac_map, "palette")
|
||||
|
||||
MCFG_H63484_ADD("hd63484", 8000000, segajw_hd63484_map) // unknown clock
|
||||
MCFG_HD63484_ADD("hd63484", 8000000, segajw_hd63484_map) // unknown clock
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
@ -22,7 +22,7 @@ displayed.
|
||||
#include "emu.h"
|
||||
#include "cpu/nec/nec.h"
|
||||
#include "audio/seibu.h"
|
||||
#include "video/h63484.h"
|
||||
#include "video/hd63484.h"
|
||||
|
||||
|
||||
class shanghai_state : public driver_device
|
||||
@ -100,8 +100,8 @@ ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( shanghai_portmap, AS_IO, 16, shanghai_state )
|
||||
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("h63484", h63484_device, status_r, address_w)
|
||||
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("h63484", h63484_device, data_r, data_w)
|
||||
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w)
|
||||
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w)
|
||||
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE8("ymsnd", ym2203_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x40, 0x41) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x44, 0x45) AM_READ_PORT("P2")
|
||||
@ -114,16 +114,16 @@ static ADDRESS_MAP_START( shangha2_portmap, AS_IO, 16, shanghai_state )
|
||||
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x10, 0x11) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x20, 0x21) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x30, 0x31) AM_DEVREADWRITE("h63484", h63484_device, status_r, address_w)
|
||||
AM_RANGE(0x32, 0x33) AM_DEVREADWRITE("h63484", h63484_device, data_r, data_w)
|
||||
AM_RANGE(0x30, 0x31) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w)
|
||||
AM_RANGE(0x32, 0x33) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w)
|
||||
AM_RANGE(0x40, 0x43) AM_DEVREADWRITE8("ymsnd", ym2203_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x50, 0x51) AM_WRITE(shanghai_coin_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( kothello_map, AS_PROGRAM, 16, shanghai_state )
|
||||
AM_RANGE(0x00000, 0x07fff) AM_RAM
|
||||
AM_RANGE(0x08010, 0x08011) AM_DEVREADWRITE("h63484", h63484_device, status_r, address_w)
|
||||
AM_RANGE(0x08012, 0x08013) AM_DEVREADWRITE("h63484", h63484_device, data_r, data_w)
|
||||
AM_RANGE(0x08010, 0x08011) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w)
|
||||
AM_RANGE(0x08012, 0x08013) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w)
|
||||
AM_RANGE(0x09010, 0x09011) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x09012, 0x09013) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x09014, 0x09015) AM_READ_PORT("SYSTEM")
|
||||
@ -354,7 +354,7 @@ static INPUT_PORTS_START( shangha2 )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static ADDRESS_MAP_START( h63484_map, AS_0, 16, shanghai_state )
|
||||
static ADDRESS_MAP_START( hd63484_map, AS_0, 16, shanghai_state )
|
||||
AM_RANGE(0x00000, 0x3ffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -372,14 +372,14 @@ static MACHINE_CONFIG_START( shanghai, shanghai_state )
|
||||
//MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
|
||||
MCFG_SCREEN_SIZE(384, 280)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("h63484", h63484_device, update_screen)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("hd63484", hd63484_device, update_screen)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 256)
|
||||
MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
|
||||
MCFG_PALETTE_INIT_OWNER(shanghai_state,shanghai)
|
||||
|
||||
MCFG_H63484_ADD("h63484", 0, h63484_map)
|
||||
MCFG_HD63484_ADD("hd63484", 0, hd63484_map)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -408,13 +408,13 @@ static MACHINE_CONFIG_START( shangha2, shanghai_state )
|
||||
//MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
|
||||
MCFG_SCREEN_SIZE(384, 280)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("h63484", h63484_device, update_screen)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("hd63484", hd63484_device, update_screen)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 256)
|
||||
MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
|
||||
|
||||
MCFG_H63484_ADD("h63484", 0, h63484_map)
|
||||
MCFG_HD63484_ADD("hd63484", 0, hd63484_map)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -446,13 +446,13 @@ static MACHINE_CONFIG_START( kothello, shanghai_state )
|
||||
//MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
|
||||
MCFG_SCREEN_SIZE(384, 280)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("h63484", h63484_device, update_screen)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("hd63484", hd63484_device, update_screen)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 256)
|
||||
MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
|
||||
|
||||
MCFG_H63484_ADD("h63484", 0, h63484_map)
|
||||
MCFG_HD63484_ADD("hd63484", 0, hd63484_map)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
@ -16,10 +16,6 @@
|
||||
* Super 8 Ways FC (DB98103-011, Fruit combination), 1989, Sigma.
|
||||
|
||||
|
||||
The HD63484 ACRTC support is a bit hacky and incomplete,
|
||||
due to its preliminary emulation state.
|
||||
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
Hardware Notes:
|
||||
@ -133,7 +129,7 @@
|
||||
#include "machine/6850acia.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "sound/3812intf.h"
|
||||
#include "video/h63484.h"
|
||||
#include "video/hd63484.h"
|
||||
|
||||
#include "sigmab52.lh"
|
||||
|
||||
@ -320,8 +316,8 @@ static ADDRESS_MAP_START( jwildb52_map, AS_PROGRAM, 8, sigmab52_state )
|
||||
|
||||
AM_RANGE(0xf720, 0xf727) AM_DEVREADWRITE("6840ptm_1", ptm6840_device, read, write)
|
||||
|
||||
AM_RANGE(0xf730, 0xf730) AM_DEVREADWRITE("hd63484", h63484_device, status_r, address_w)
|
||||
AM_RANGE(0xf731, 0xf731) AM_DEVREADWRITE("hd63484", h63484_device, data_r, data_w)
|
||||
AM_RANGE(0xf730, 0xf730) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w)
|
||||
AM_RANGE(0xf731, 0xf731) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w)
|
||||
|
||||
AM_RANGE(0xf740, 0xf740) AM_READ(in0_r)
|
||||
AM_RANGE(0xf741, 0xf741) AM_READ_PORT("IN1")
|
||||
@ -600,10 +596,10 @@ static MACHINE_CONFIG_START( jwildb52, sigmab52_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(1024, 1024)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 544-1, 0, 436-1)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("hd63484", h63484_device, update_screen)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("hd63484", hd63484_device, update_screen)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_H63484_ADD("hd63484", SEC_CLOCK, jwildb52_hd63484_map)
|
||||
MCFG_HD63484_ADD("hd63484", SEC_CLOCK, jwildb52_hd63484_map)
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 16)
|
||||
|
||||
|
@ -686,8 +686,8 @@ static ADDRESS_MAP_START( realpunc_map, AS_PROGRAM, 16, taitob_state )
|
||||
AM_RANGE(0x18c000, 0x18c001) AM_WRITE(realpunc_output_w)
|
||||
TC0180VCU_MEMRW( 0x200000 )
|
||||
AM_RANGE(0x280000, 0x281fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
AM_RANGE(0x300000, 0x300001) AM_DEVREADWRITE("hd63484", h63484_device, status_r, address_w)
|
||||
AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE("hd63484", h63484_device, data_r, data_w)
|
||||
AM_RANGE(0x300000, 0x300001) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w)
|
||||
AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w)
|
||||
// AM_RANGE(0x320000, 0x320001) AM_NOP // ?
|
||||
AM_RANGE(0x320002, 0x320003) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, master_comm_w, 0xff00)
|
||||
ADDRESS_MAP_END
|
||||
@ -2912,8 +2912,8 @@ static MACHINE_CONFIG_START( realpunc, taitob_state )
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(taitob_state,realpunc)
|
||||
|
||||
MCFG_H63484_ADD("hd63484", 0, realpunc_hd63484_map)
|
||||
MCFG_H63484_AUTO_CONFIGURE_SCREEN(false)
|
||||
MCFG_HD63484_ADD("hd63484", 0, realpunc_hd63484_map)
|
||||
MCFG_HD63484_AUTO_CONFIGURE_SCREEN(false)
|
||||
|
||||
MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 0)
|
||||
MCFG_TC0180VCU_BG_COLORBASE(0xc0)
|
||||
|
@ -384,7 +384,6 @@ ROM_END
|
||||
|
||||
DRIVER_INIT_MEMBER(wildpkr_state,wildpkr)
|
||||
{
|
||||
//HD63484_start(machine());
|
||||
}
|
||||
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
// copyright-holders:Jarek Burczynski
|
||||
#include "machine/mb87078.h"
|
||||
#include "machine/taitoio.h"
|
||||
#include "video/h63484.h"
|
||||
#include "video/hd63484.h"
|
||||
#include "video/tc0180vcu.h"
|
||||
|
||||
class taitob_state : public driver_device
|
||||
@ -64,7 +64,7 @@ public:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
device_t *m_ym;
|
||||
optional_device<h63484_device> m_hd63484;
|
||||
optional_device<hd63484_device> m_hd63484;
|
||||
required_device<tc0180vcu_device> m_tc0180vcu;
|
||||
optional_device<tc0640fio_device> m_tc0640fio;
|
||||
optional_device<tc0220ioc_device> m_tc0220ioc;
|
||||
|
Loading…
Reference in New Issue
Block a user