trunk/src/mame/drivers/pc9801.cpp
| r253165 | r253166 | |
| 1426 | 1426 | } |
| 1427 | 1427 | |
| 1428 | 1428 | // 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)) |
| 1430 | 1430 | { |
| 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 | { |
| 1431 | 1444 | UINT16 end_mask = dir ? ((1 << m_egc.count) - 1) : ~((1 << (16 - m_egc.count)) - 1); |
| 1432 | 1445 | // if the blit is less than 16 bits, adjust the masks |
| 1433 | 1446 | if(m_egc.first) |
| r253165 | r253166 | |
| 1457 | 1470 | out = data; |
| 1458 | 1471 | break; |
| 1459 | 1472 | case 1: |
| 1460 | | if(mem_mask == 0x00ff) |
| 1461 | | src = src | src << 8; |
| 1462 | | else if(mem_mask == 0xff00) |
| 1463 | | src = src | src >> 8; |
| 1464 | | |
| 1465 | 1473 | out = egc_do_partial_op(i, src, pat, m_video_ram_2[offset + (((i + 1) & 3) * 0x4000)]); |
| 1466 | 1474 | break; |
| 1467 | 1475 | case 2: |
| r253165 | r253166 | |
| 2263 | 2271 | AM_RANGE(0x0430, 0x0433) AM_READWRITE8(ide_ctrl_r, ide_ctrl_w, 0x00ff) |
| 2264 | 2272 | AM_RANGE(0x0640, 0x064f) AM_READWRITE(ide_cs0_r, ide_cs0_w) |
| 2265 | 2273 | 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 |
| 2267 | 2275 | AM_RANGE(0xbfd8, 0xbfdf) AM_WRITE8(pc9801rs_mouse_freq_w, 0xffff) |
| 2268 | 2276 | AM_RANGE(0xe0d0, 0xe0d3) AM_READ8(pc9801rs_midi_r, 0xffff) |
| 2269 | 2277 | AM_IMPORT_FROM(pc9801ux_io) |
| r253165 | r253166 | |
| 2512 | 2520 | // AM_RANGE(0x0c2d, 0x0c2d) cs4231 PCM board hi byte control |
| 2513 | 2521 | // AM_RANGE(0x0cc0, 0x0cc7) SCSI interface / <undefined> |
| 2514 | 2522 | // AM_RANGE(0x0cfc, 0x0cff) PCI bus |
| 2523 | AM_RANGE(0x1e8c, 0x1e8f) AM_NOP // IDE RAM switch |
| 2515 | 2524 | AM_RANGE(0x3fd8, 0x3fdf) AM_DEVREADWRITE8("pit8253", pit8253_device, read, write, 0xff00ff00) // <undefined> / pit mirror ports |
| 2516 | 2525 | AM_RANGE(0x7fd8, 0x7fdf) AM_DEVREADWRITE8("ppi8255_mouse", i8255_device, read, write, 0xff00ff00) |
| 2517 | 2526 | AM_RANGE(0x841c, 0x841f) AM_READWRITE8(sdip_0_r,sdip_0_w,0xffffffff) |