mirror of
https://github.com/holub/mame
synced 2025-04-22 00:11:58 +03:00
ygv608.cpp: kill legacy register code (nw)
This commit is contained in:
parent
64c6e9fe6b
commit
5c712b4083
@ -74,101 +74,6 @@ enum {
|
||||
p7_ts = 0x04,
|
||||
p7_tn = 0x02,
|
||||
p7_sr = 0x01,
|
||||
|
||||
r0_pnya = 0x80, // if set, increment name table address after reads
|
||||
r0_b_a = 0x40, // if set, we're reading from the second plane of tile data
|
||||
r0_pny = 0x3f, // y-coordinate of current name table address
|
||||
|
||||
r1_pnxa = 0x80, // if set, increment name table address after read
|
||||
r1_res1 = 0x40,
|
||||
r1_pnx = 0x3f, // x-coordinate of current name table address
|
||||
|
||||
r2_cpaw = 0x80, // if set, increment color palette address after writes
|
||||
r2_cpar = 0x40, // if set, increment color palette address after reads
|
||||
// r2_res2 = 0x20,
|
||||
r2_b_a = 0x10,
|
||||
r2_scaw = 0x08, // if set, increment scroll address after writes
|
||||
r2_scar = 0x04, // if set, increment scroll address after reads
|
||||
r2_saaw = 0x02, // if set, increment sprite address after writes
|
||||
r2_saar = 0x01, // if set, increment sprite address after reads
|
||||
|
||||
r7_dckm = 0x80,
|
||||
r7_flip = 0x40,
|
||||
// r7_res7 = 0x30,
|
||||
r7_zron = 0x08, // if set, roz plane is active
|
||||
r7_md = 0x06, // determines 1 of 4 possible video modes
|
||||
r7_dspe = 0x01, // if set, display is enabled
|
||||
|
||||
r8_hds = 0xc0,
|
||||
r8_vds = 0x30,
|
||||
r8_rlrt = 0x08,
|
||||
r8_rlsc = 0x04,
|
||||
// r8_res8 = 0x02,
|
||||
r8_pgs = 0x01,
|
||||
|
||||
r9_pts = 0xc0,
|
||||
r9_slh = 0x38,
|
||||
r9_slv = 0x07,
|
||||
|
||||
r10_spa = 0xc0, // misc global sprite attributes (x/y flip or sprite size)
|
||||
r10_spas = 0x20, // if set, spa controls sprite flip, if clear, controls sprite size
|
||||
r10_sprd = 0x10, // if set, sprites are disabled
|
||||
r10_mcb = 0x0c,
|
||||
r10_mca = 0x03,
|
||||
|
||||
r11_scm = 0xc0,
|
||||
r11_yse = 0x20,
|
||||
r11_cbdr = 0x10,
|
||||
r11_prm = 0x0c, // determines one of 4 priority settings
|
||||
r11_ctpb = 0x02,
|
||||
r11_ctpa = 0x01,
|
||||
|
||||
r12_spf = 0xc0,
|
||||
r12_bpf = 0x38,
|
||||
r12_apf = 0x07,
|
||||
|
||||
// r14_res14 = 0xfc,
|
||||
r14_iep = 0x02, // if set, generate IRQ on position detection (?)
|
||||
r14_iev = 0x01, // if set, generate IRQ on vertical border interval draw
|
||||
|
||||
// these 4 are currently unimplemented by us
|
||||
r16_fpm = 0x80,
|
||||
r16_il8 = 0x40,
|
||||
r16_res16 = 0x20,
|
||||
r16_ih = 0x1f,
|
||||
|
||||
r17_ba1 = 0x70,
|
||||
r17_ba0 = 0x07,
|
||||
r18_ba3 = 0x70,
|
||||
r18_ba2 = 0x07,
|
||||
r19_ba5 = 0x70,
|
||||
r19_ba4 = 0x07,
|
||||
r20_ba7 = 0x70,
|
||||
r20_ba6 = 0x07,
|
||||
r21_bb1 = 0x70,
|
||||
r21_bb0 = 0x07,
|
||||
r22_bb3 = 0x70,
|
||||
r22_bb2 = 0x07,
|
||||
r23_bb5 = 0x70,
|
||||
r23_bb4 = 0x07,
|
||||
r24_bb7 = 0x70,
|
||||
r24_bb6 = 0x07,
|
||||
|
||||
r39_hsw = 0xe0,
|
||||
r39_hbw = 0x1f,
|
||||
|
||||
r40_htl89 = 0xc0,
|
||||
r40_hdw = 0x3f,
|
||||
|
||||
r43_vsw = 0xe0,
|
||||
r43_vbw = 0x1f,
|
||||
|
||||
r44_vsls = 0x40,
|
||||
r44_vdw = 0x1f,
|
||||
|
||||
r45_vtl8 = 0x80,
|
||||
r45_tres = 0x40,
|
||||
r45_vdp = 0x1f
|
||||
};
|
||||
|
||||
|
||||
@ -443,7 +348,7 @@ ygv608_device::ygv608_device( const machine_config &mconfig, const char *tag, de
|
||||
void ygv608_device::device_start()
|
||||
{
|
||||
memset(&m_ports, 0, sizeof(m_ports));
|
||||
memset(&m_regs, 0, sizeof(m_regs));
|
||||
// memset(&m_regs, 0, sizeof(m_regs));
|
||||
memset(&m_pattern_name_table, 0, sizeof(m_pattern_name_table));
|
||||
memset(&m_sprite_attribute_table, 0, sizeof(m_sprite_attribute_table));
|
||||
|
||||
@ -966,7 +871,7 @@ void ygv608_device::postload()
|
||||
void ygv608_device::register_state_save()
|
||||
{
|
||||
save_item(NAME(m_ports.b));
|
||||
save_item(NAME(m_regs.b));
|
||||
// save_item(NAME(m_regs.b));
|
||||
save_item(NAME(m_pattern_name_table));
|
||||
save_item(NAME(m_sprite_attribute_table.b));
|
||||
save_item(NAME(m_scroll_data_table));
|
||||
@ -1382,9 +1287,7 @@ READ8_MEMBER( ygv608_device::palette_data_r )
|
||||
READ8_MEMBER(ygv608_device::register_data_r)
|
||||
{
|
||||
int regNum = m_register_address & 0x3f;
|
||||
uint8_t res = m_regs.b[regNum];
|
||||
|
||||
//m_iospace->read_byte(regNum);
|
||||
uint8_t res = m_iospace->read_byte(regNum);
|
||||
|
||||
|
||||
if (m_register_autoinc_r == true)
|
||||
@ -1560,7 +1463,6 @@ WRITE8_MEMBER( ygv608_device::register_data_w )
|
||||
uint8_t regNum = m_register_address & 0x3f;
|
||||
//logerror( "R#%d = $%02X\n", regNum, data );
|
||||
|
||||
m_regs.b[regNum] = data;
|
||||
m_iospace->write_byte(regNum, data);
|
||||
|
||||
if (m_register_autoinc_w == true)
|
||||
@ -1614,12 +1516,18 @@ WRITE8_MEMBER( ygv608_device::system_control_w )
|
||||
// TODO: actual timing of this
|
||||
void ygv608_device::HandleYGV608Reset()
|
||||
{
|
||||
int i;
|
||||
/* Clear ports #0-7 */
|
||||
memset( &m_ports.b[0], 0, 8 );
|
||||
|
||||
/* Clear registers #0-38, #47-49 */
|
||||
memset( &m_regs.b[0], 0, 39 );
|
||||
memset( &m_regs.b[47], 0, 3 );
|
||||
for(i=0;i<39;i++)
|
||||
m_iospace->write_byte(i, 0x00);
|
||||
for(i=47;i<50;i++)
|
||||
m_iospace->write_byte(i, 0x00);
|
||||
|
||||
// memset( &m_regs.b[0], 0, 39 );
|
||||
// memset( &m_regs.b[47], 0, 3 );
|
||||
|
||||
/* Clear internal ram */
|
||||
memset( m_pattern_name_table, 0, 4096 );
|
||||
@ -1640,6 +1548,7 @@ void ygv608_device::HandleRomTransfers(uint8_t type)
|
||||
popmessage("ROM DMA used %02x",type);
|
||||
|
||||
#if 0
|
||||
// TODO: eventually update this code to latest
|
||||
static uint8_t *sdt = (uint8_t *)m_scroll_data_table;
|
||||
static uint8_t *sat = (uint8_t *)m_sprite_attribute_table.b;
|
||||
|
||||
@ -1698,7 +1607,7 @@ void ygv608_device::HandleRomTransfers(uint8_t type)
|
||||
// R#0R - Pattern Name Table Access pointer Y
|
||||
READ8_MEMBER( ygv608_device::pattern_name_table_y_r )
|
||||
{
|
||||
return ((m_xtile_autoinc == true) << 7) | ((m_plane_select_access == true) << 6) | m_xtile_ptr;
|
||||
return (m_ytile_autoinc << 7) | (m_plane_select_access << 6) | m_ytile_ptr;
|
||||
}
|
||||
|
||||
// R#0W - Pattern Name Table Access pointer Y
|
||||
@ -1718,7 +1627,7 @@ WRITE8_MEMBER( ygv608_device::pattern_name_table_y_w )
|
||||
// R#1R - Pattern Name Table Access pointer X
|
||||
READ8_MEMBER( ygv608_device::pattern_name_table_x_r )
|
||||
{
|
||||
return ((m_xtile_autoinc == true) << 7) | m_xtile_ptr;
|
||||
return (m_xtile_autoinc << 7) | m_xtile_ptr;
|
||||
}
|
||||
|
||||
// R#1W - Pattern Name Table Access pointer X
|
||||
@ -2286,132 +2195,3 @@ void ygv608_device::screen_configure()
|
||||
}
|
||||
|
||||
|
||||
void ygv608_device::ShowYGV608Registers()
|
||||
{
|
||||
int p, b;
|
||||
|
||||
logerror( "YGV608 Registers\n" );
|
||||
logerror(
|
||||
"\tR#00: $%02X : PNYA(%d),B/A(%c),PNY(%d)\n",
|
||||
m_regs.b[0],
|
||||
m_regs.s.r0 & r0_pnya,
|
||||
((m_plane_select_access == true) ? 'B' : 'A' ),
|
||||
m_regs.s.r0 & r0_pny);
|
||||
|
||||
logerror(
|
||||
"\tR#01: $%02X : PNXA(%d),PNX(%d)\n",
|
||||
m_regs.b[1],
|
||||
m_regs.s.r1 & r1_pnxa,
|
||||
m_regs.s.r1 & r1_pnx);
|
||||
|
||||
logerror(
|
||||
"\tR#02: $%02X : CPAW(%d),CPAR(%d),B/A(%d),SCAW(%d),SCAR(%d),SAAW(%d),SAAR(%d)\n",
|
||||
m_regs.b[2],
|
||||
m_regs.s.r2 & r2_cpaw,
|
||||
m_regs.s.r2 & r2_cpar,
|
||||
m_regs.s.r2 & r2_b_a,
|
||||
m_regs.s.r2 & r2_scaw,
|
||||
m_regs.s.r2 & r2_scar,
|
||||
m_regs.s.r2 & r2_saaw,
|
||||
m_regs.s.r2 & r2_saar);
|
||||
|
||||
logerror(
|
||||
"\tR#03: $%02X : SAA($%02X)\n",
|
||||
m_regs.b[3],
|
||||
m_sprite_address );
|
||||
|
||||
logerror(
|
||||
"\tR#04: $%02X : SCA($%02X)\n",
|
||||
m_regs.b[4],
|
||||
m_regs.s.sca );
|
||||
|
||||
logerror(
|
||||
"\tR#05: $%02X : CC($%02X)\n",
|
||||
m_regs.b[5],
|
||||
m_regs.s.cc );
|
||||
|
||||
logerror(
|
||||
"\tR#06: $%02X : SBA($%02X)\n",
|
||||
m_regs.b[6],
|
||||
m_sprite_bank );
|
||||
|
||||
logerror(
|
||||
"\tR#07: $%02X : DSPE(%d),MD(%d),ZRON(%d),FLIP(%d),DCKM(%d)\n",
|
||||
m_regs.b[7],
|
||||
m_regs.s.r7 & r7_dspe,
|
||||
m_regs.s.r7 & r7_md,
|
||||
m_regs.s.r7 & r7_zron,
|
||||
m_regs.s.r7 & r7_flip,
|
||||
m_regs.s.r7 & r7_dckm);
|
||||
|
||||
logerror(
|
||||
"\tR#08: $%02X : HDS(%d),VDS(%d),RLRT(%d),RLSC(%d),PGS(%d)\n",
|
||||
m_regs.b[8],
|
||||
m_regs.s.r8 & r8_hds,
|
||||
m_regs.s.r8 & r8_vds,
|
||||
m_regs.s.r8 & r8_rlrt,
|
||||
m_regs.s.r8 & r8_rlsc,
|
||||
m_regs.s.r8 & r8_pgs);
|
||||
|
||||
logerror(
|
||||
"\tR#11: $%02X : CTPA(%d),CTPB(%d),PRM(%d),CBDR(%d),YSE(%d),SCM(%d)\n",
|
||||
m_regs.b[11],
|
||||
m_regs.s.r11 & r11_ctpa,
|
||||
m_regs.s.r11 & r11_ctpb,
|
||||
m_regs.s.r11 & r11_prm,
|
||||
m_regs.s.r11 & r11_cbdr,
|
||||
m_regs.s.r11 & r11_yse,
|
||||
m_regs.s.r11 & r11_scm);
|
||||
|
||||
logerror(
|
||||
"\tR#40: $%02X : HTL9:8($%02X)=$%06X,HDW(%d)\n",
|
||||
m_regs.b[40],
|
||||
m_regs.s.r40 & r40_htl89, (int)(m_regs.s.r40 & r40_htl89) << 8,
|
||||
m_regs.s.r40 & r40_hdw);
|
||||
|
||||
logerror(
|
||||
"\tR#41: $%02X : HDSP($%02X)\n",
|
||||
m_regs.b[41],
|
||||
m_regs.s.hdsp );
|
||||
|
||||
logerror(
|
||||
"\tR#42: $%02X : HTL7:0($%02X)\n",
|
||||
m_regs.b[42],
|
||||
m_regs.s.htl );
|
||||
|
||||
logerror(
|
||||
"\t HTL=$%03X\n",
|
||||
( (int)(m_regs.s.r40 & r40_htl89) << 8 ) |
|
||||
( (int)m_regs.s.htl ) );
|
||||
|
||||
logerror(
|
||||
"\tR#47: $%02X : TB12:5($%02X) = $%06X\n",
|
||||
m_regs.b[47],
|
||||
m_regs.s.tb5, (int)m_regs.s.tb5 << 5 );
|
||||
|
||||
logerror(
|
||||
"\tR#48: $%02X : TB20:13($%02X) = $%06X\n",
|
||||
m_regs.b[48],
|
||||
m_regs.s.tb13, (int)m_regs.s.tb13 << 13 );
|
||||
|
||||
logerror(
|
||||
"\t TB=$%06X\n",
|
||||
( (int)m_regs.s.tb13 << 13 ) |
|
||||
( (int)m_regs.s.tb5 << 5 ) );
|
||||
|
||||
logerror(
|
||||
"\tR#49: $%02X : TN11:4($%02X) = $%04X\n",
|
||||
m_regs.b[49],
|
||||
m_regs.s.tn4, (int)m_regs.s.tn4 << 4 );
|
||||
|
||||
logerror(
|
||||
"ShortCuts:\n" );
|
||||
|
||||
for( p=0; p<2; p++ ) {
|
||||
logerror( "\t" );
|
||||
for( b=0; b<8; b++ ) {
|
||||
logerror( "%02X ", m_base_addr[p][b] );
|
||||
}
|
||||
logerror( "\n" );
|
||||
}
|
||||
}
|
||||
|
@ -120,76 +120,6 @@ private:
|
||||
uint8_t p7; // P#7 - system control port (read/write)
|
||||
};
|
||||
|
||||
struct YGV_REGS {
|
||||
uint8_t r0; // R#0 - pattern name table access ptr (r/w)
|
||||
uint8_t r1; // R#1 - pattern name table access ptr (r/w)
|
||||
uint8_t r2; // R#2 - built in ram access control
|
||||
uint8_t saa; // R#3 - sprite attribute table access ptr (r/w)
|
||||
uint8_t sca; // R#4 - scroll table access ptr (r/w)
|
||||
uint8_t cc; // R#5 - color palette access ptr (r/w)
|
||||
uint8_t sba; // R#6 - sprite generator base address (r/w)
|
||||
|
||||
// R#7 - R#11 - screen control (r/w)
|
||||
uint8_t r7; // misc screen control (r/w)
|
||||
uint8_t r8; // misc screen control (r/w)
|
||||
uint8_t r9; // misc screen control (r/w)
|
||||
uint8_t r10; // misc screen control (r/w)
|
||||
uint8_t r11; // misc screen control (r/w)
|
||||
|
||||
uint8_t r12; // R#12 - color palette selection (r/w)
|
||||
uint8_t bdc; // R#13 - border colour (wo)
|
||||
|
||||
// R#14 - R#16 - interrupt control
|
||||
uint8_t r14;
|
||||
uint8_t il;
|
||||
uint8_t r16;
|
||||
|
||||
// R#17 - R#24 - base address (wo)
|
||||
uint8_t r17;
|
||||
uint8_t r18;
|
||||
uint8_t r19;
|
||||
uint8_t r20;
|
||||
uint8_t r21;
|
||||
uint8_t r22;
|
||||
uint8_t r23;
|
||||
uint8_t r24;
|
||||
|
||||
// R#25 - R#38 - enlargement, contraction and rotation parameters (wo)
|
||||
uint8_t ax0;
|
||||
uint8_t ax8;
|
||||
uint8_t ax16;
|
||||
|
||||
uint8_t dx0;
|
||||
uint8_t dx8;
|
||||
uint8_t dxy0;
|
||||
uint8_t dxy8;
|
||||
|
||||
uint8_t ay0;
|
||||
uint8_t ay8;
|
||||
uint8_t ay16;
|
||||
|
||||
uint8_t dy0;
|
||||
uint8_t dy8;
|
||||
uint8_t dyx0;
|
||||
uint8_t dyx8;
|
||||
|
||||
// R#39 - R#46 - display scan control (wo)
|
||||
uint8_t r39;
|
||||
uint8_t r40;
|
||||
uint8_t hdsp;
|
||||
uint8_t htl;
|
||||
uint8_t r43;
|
||||
uint8_t r44;
|
||||
uint8_t r45;
|
||||
uint8_t vtl;
|
||||
|
||||
// R#47 - R#49 - rom transfer control (wo)
|
||||
uint8_t tb5;
|
||||
uint8_t tb13;
|
||||
uint8_t tn4;
|
||||
|
||||
};
|
||||
|
||||
static constexpr unsigned MAX_SPRITES = SPRITE_ATTR_TABLE_SIZE >> 2;
|
||||
|
||||
struct SPRITE_ATTR {
|
||||
@ -221,18 +151,12 @@ private:
|
||||
|
||||
void HandleYGV608Reset();
|
||||
void HandleRomTransfers(uint8_t type);
|
||||
void ShowYGV608Registers();
|
||||
|
||||
union {
|
||||
uint8_t b[8];
|
||||
YGV_PORTS s;
|
||||
} m_ports;
|
||||
|
||||
union {
|
||||
uint8_t b[50];
|
||||
YGV_REGS s;
|
||||
} m_regs;
|
||||
|
||||
/*
|
||||
* Built in ram
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user