diff --git a/src/devices/machine/pic8259.cpp b/src/devices/machine/pic8259.cpp index 40fe6fd916c..3064e212850 100644 --- a/src/devices/machine/pic8259.cpp +++ b/src/devices/machine/pic8259.cpp @@ -133,7 +133,10 @@ UINT32 pic8259_device::acknowledge() } } } - return 0; + logerror("Spurious IRQ\n"); + if(m_is_x86) + return m_base + 7; + return 0xcd0000 + (m_vector_addr_high << 8) + m_vector_addr_low + (7 << (3-m_vector_size)); } diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp index 66670fe7c9a..7185014c285 100644 --- a/src/mame/drivers/pc9801.cpp +++ b/src/mame/drivers/pc9801.cpp @@ -734,6 +734,7 @@ public: UINT8 freq_index; }m_mouse; TIMER_DEVICE_CALLBACK_MEMBER( mouse_irq_cb ); + DECLARE_READ8_MEMBER(unk_r); DECLARE_DRIVER_INIT(pc9801_kanji); inline void set_dma_channel(int channel, int state); @@ -2485,6 +2486,7 @@ static ADDRESS_MAP_START( pc9821_io, AS_IO, 32, pc9801_state ) AM_RANGE(0x0050, 0x0053) AM_WRITE8(pc9801rs_nmi_w, 0xffffffff) AM_RANGE(0x005c, 0x005f) AM_READ16(pc9821_timestamp_r,0xffffffff) AM_WRITENOP // artic AM_RANGE(0x0060, 0x0063) AM_DEVREADWRITE8("upd7220_chr", upd7220_device, read, write, 0x00ff00ff) //upd7220 character ports / + AM_RANGE(0x0060, 0x0063) AM_READ8(unk_r, 0xff00ff00) // mouse related (unmapped checking for AT keyb controller\PS/2 mouse?) AM_RANGE(0x0064, 0x0067) AM_WRITE8(vrtc_clear_w, 0x000000ff) AM_RANGE(0x0068, 0x006b) AM_WRITE8(pc9821_video_ff_w, 0x00ff00ff) //mode FF / AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("pit8253", pit8253_device, read, write, 0xff00ff00) @@ -2969,6 +2971,11 @@ WRITE8_MEMBER(pc9801_state::ppi_mouse_portc_w) m_mouse.control = data; } +READ8_MEMBER(pc9801_state::unk_r) +{ + return 0xff; +} + /**************************************** * * UPD765 interface diff --git a/src/mame/video/x68k.cpp b/src/mame/video/x68k.cpp index 13f6288b642..7a11c89175b 100644 --- a/src/mame/video/x68k.cpp +++ b/src/mame/video/x68k.cpp @@ -867,7 +867,7 @@ bool x68k_state::x68k_draw_gfx_scanline( bitmap_ind16 &bitmap, rectangle cliprec else bitmap.pix16(scanline, pixel) = (pal[colour] & 0xfffe) + blend; } - if(((m_video.reg[2] & 0x1800) == 0x1000) && (colour & 1)) + else if(((m_video.reg[2] & 0x1800) == 0x1000) && (colour & 1)) m_special.pix16(scanline, pixel) = colour; else bitmap.pix16(scanline, pixel) = colour;