diff options
author | Angelo Salese <angelosa@users.noreply.github.com> | 2012-08-23 01:12:58 +0000 |
---|---|---|
committer | Angelo Salese <angelosa@users.noreply.github.com> | 2012-08-23 01:12:58 +0000 |
commit | 492df31fcec9745c519a7c4a50d8bc14d519a4bf (patch) | |
tree | bf82494791251c2ae05707df55a731f3bd3cc6be /src/mess/drivers/pcfx.c | |
parent | cfddb29cf8ad502ef8e2831bdf27deff31673bc7 (diff) |
Fixed PAD latch and irq priority
Diffstat (limited to 'src/mess/drivers/pcfx.c')
-rw-r--r-- | src/mess/drivers/pcfx.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/mess/drivers/pcfx.c b/src/mess/drivers/pcfx.c index c23e5f74f86..2f2b88f8e74 100644 --- a/src/mess/drivers/pcfx.c +++ b/src/mess/drivers/pcfx.c @@ -4,10 +4,6 @@ Driver file to handle emulation of the NEC PC-FX. - - BIOS error codes (guesses): - - Blue screen = MCU pad communication error - - Cyan screen = SCSI communication error (current one) - ***************************************************************************/ @@ -22,7 +18,7 @@ struct _pcfx_pad_t { UINT8 ctrl[2]; UINT8 status[2]; - UINT16 latch[2]; + UINT32 latch[2]; }; class pcfx_state : public driver_device @@ -233,10 +229,10 @@ WRITE16_MEMBER( pcfx_state::irq_write ) // ----------xxx--- Priority level interrupt 14 // -------------xxx Priority level interrupt 15 case 0x80/4: - m_irq_priority[4] = ( data >> 0 ) & 0x07; - m_irq_priority[5] = ( data >> 3 ) & 0x07; - m_irq_priority[6] = ( data >> 6 ) & 0x07; - m_irq_priority[7] = ( data >> 9 ) & 0x07; + m_irq_priority[7] = ( data >> 0 ) & 0x07; + m_irq_priority[6] = ( data >> 3 ) & 0x07; + m_irq_priority[5] = ( data >> 6 ) & 0x07; + m_irq_priority[4] = ( data >> 9 ) & 0x07; check_irqs(); break; @@ -246,10 +242,10 @@ WRITE16_MEMBER( pcfx_state::irq_write ) // ----------xxx--- Priority level interrupt 10 // -------------xxx Priority level interrupt 11 case 0xC0/4: - m_irq_priority[0] = ( data >> 0 ) & 0x07; - m_irq_priority[1] = ( data >> 3 ) & 0x07; - m_irq_priority[2] = ( data >> 6 ) & 0x07; - m_irq_priority[3] = ( data >> 9 ) & 0x07; + m_irq_priority[3] = ( data >> 0 ) & 0x07; + m_irq_priority[2] = ( data >> 3 ) & 0x07; + m_irq_priority[1] = ( data >> 6 ) & 0x07; + m_irq_priority[0] = ( data >> 9 ) & 0x07; check_irqs(); break; } |