(chip->rom_readback_addr++ - 1) was confusing. Also added infor on dsp-related regs

This commit is contained in:
Michaël Banaan Ananas 2011-08-16 09:32:58 +00:00
parent e4930bd300
commit de5f2f7c2f

View File

@ -823,6 +823,13 @@ static void write_to_register(ymz280b_state *chip, int data)
{
switch (chip->current_register)
{
/* DSP related (not implemented yet) */
case 0x80: // d0-2: DSP Rch, d3: enable Rch (0: yes, 1: no), d4-6: DSP Lch, d7: enable Lch (0: yes, 1: no)
case 0x81: // d0: enable control of $82 (0: yes, 1: no)
case 0x82: // DSP data
logerror("YMZ280B: DSP register write %02X = %02X\n", chip->current_register, data);
break;
case 0x84: /* ROM readback / RAM write (high) */
chip->rom_readback_addr &= 0xffff;
chip->rom_readback_addr |= (data<<16);
@ -843,6 +850,7 @@ static void write_to_register(ymz280b_state *chip, int data)
chip->ext_ram_write(chip->rom_readback_addr, data);
else
logerror("YMZ280B attempted RAM write to %X\n", chip->rom_readback_addr);
chip->rom_readback_addr = (chip->rom_readback_addr + 1) & 0xffffff;
break;
case 0xfe: /* IRQ mask */
@ -925,7 +933,11 @@ READ8_DEVICE_HANDLER( ymz280b_r )
ymz280b_state *chip = get_safe_token(device);
if ((offset & 1) == 0)
return chip->ext_ram_read(chip->rom_readback_addr++ - 1);
{
UINT8 read = chip->ext_ram_read.isnull() ? 0 : chip->ext_ram_read(chip->rom_readback_addr);
chip->rom_readback_addr = (chip->rom_readback_addr + 1) & 0xffffff;
return read;
}
else
return compute_status(chip);
}