Previous 199869 Revisions Next

r44654 Wednesday 3rd February, 2016 at 23:00:00 UTC by Carl
pc9801: more egc fixes (nw)
[src/mame/drivers]pc9801.cpp

trunk/src/mame/drivers/pc9801.cpp
r253165r253166
14261426   }
14271427
14281428   // mask off the bits past the end of the blit
1429   if(m_egc.count < 16)
1429   if((m_egc.count < 8) && (mem_mask != 0xffff))
14301430   {
1431      UINT16 end_mask = dir ? ((1 << m_egc.count) - 1) : ~((1 << (8 - m_egc.count)) - 1);
1432      // if the blit is less than 8 bits, adjust the masks
1433      if(m_egc.first)
1434      {
1435         if(dir)
1436            end_mask <<= dst_off & 7;
1437         else
1438            end_mask >>= dst_off & 7;
1439      }
1440      mask &= end_mask;
1441   }
1442   else if((m_egc.count < 16) && (mem_mask == 0xffff))
1443   {
14311444      UINT16 end_mask = dir ? ((1 << m_egc.count) - 1) : ~((1 << (16 - m_egc.count)) - 1);
14321445      // if the blit is less than 16 bits, adjust the masks
14331446      if(m_egc.first)
r253165r253166
14571470               out = data;
14581471               break;
14591472            case 1:
1460               if(mem_mask == 0x00ff)
1461                  src = src | src << 8;
1462               else if(mem_mask == 0xff00)
1463                  src = src | src >> 8;
1464
14651473               out = egc_do_partial_op(i, src, pat, m_video_ram_2[offset + (((i + 1) & 3) * 0x4000)]);
14661474               break;
14671475            case 2:
r253165r253166
22632271   AM_RANGE(0x0430, 0x0433) AM_READWRITE8(ide_ctrl_r, ide_ctrl_w, 0x00ff)
22642272   AM_RANGE(0x0640, 0x064f) AM_READWRITE(ide_cs0_r, ide_cs0_w)
22652273   AM_RANGE(0x0740, 0x074f) AM_READWRITE(ide_cs1_r, ide_cs1_w)
2266   AM_RANGE(0x1e80, 0x1e8f) AM_NOP // temp
2274   AM_RANGE(0x1e8c, 0x1e8f) AM_NOP // temp
22672275   AM_RANGE(0xbfd8, 0xbfdf) AM_WRITE8(pc9801rs_mouse_freq_w, 0xffff)
22682276   AM_RANGE(0xe0d0, 0xe0d3) AM_READ8(pc9801rs_midi_r, 0xffff)
22692277   AM_IMPORT_FROM(pc9801ux_io)
r253165r253166
25122520//  AM_RANGE(0x0c2d, 0x0c2d) cs4231 PCM board hi byte control
25132521//  AM_RANGE(0x0cc0, 0x0cc7) SCSI interface / <undefined>
25142522//  AM_RANGE(0x0cfc, 0x0cff) PCI bus
2523   AM_RANGE(0x1e8c, 0x1e8f) AM_NOP // IDE RAM switch
25152524   AM_RANGE(0x3fd8, 0x3fdf) AM_DEVREADWRITE8("pit8253", pit8253_device, read, write, 0xff00ff00) // <undefined> / pit mirror ports
25162525   AM_RANGE(0x7fd8, 0x7fdf) AM_DEVREADWRITE8("ppi8255_mouse", i8255_device, read, write, 0xff00ff00)
25172526   AM_RANGE(0x841c, 0x841f) AM_READWRITE8(sdip_0_r,sdip_0_w,0xffffffff)


Previous 199869 Revisions Next


© 1997-2024 The MAME Team