trunk/src/mame/drivers/viper.cpp
| r253003 | r253004 | |
| 462 | 462 | |
| 463 | 463 | static inline UINT64 read64be_with_32le_device_handler(read32_delegate handler, address_space &space, offs_t offset, UINT64 mem_mask) |
| 464 | 464 | { |
| 465 | | UINT64 result; |
| 466 | 465 | mem_mask = FLIPENDIAN_INT64(mem_mask); |
| 467 | | result = read64le_with_32le_device_handler(handler, space, offset, mem_mask); |
| 466 | UINT64 result = 0; |
| 467 | if (ACCESSING_BITS_0_31) |
| 468 | result = (UINT64)(handler)(space, offset * 2, mem_mask & 0xffffffff); |
| 469 | if (ACCESSING_BITS_32_63) |
| 470 | result |= (UINT64)(handler)(space, offset * 2 + 1, mem_mask >> 32) << 32; |
| 468 | 471 | return FLIPENDIAN_INT64(result); |
| 469 | 472 | } |
| 470 | 473 | |
| r253003 | r253004 | |
| 473 | 476 | { |
| 474 | 477 | data = FLIPENDIAN_INT64(data); |
| 475 | 478 | mem_mask = FLIPENDIAN_INT64(mem_mask); |
| 476 | | write64le_with_32le_device_handler(handler, space, offset, data, mem_mask); |
| 479 | if (ACCESSING_BITS_0_31) |
| 480 | handler(space, offset * 2, data & 0xffffffff, mem_mask & 0xffffffff); |
| 481 | if (ACCESSING_BITS_32_63) |
| 482 | handler(space, offset * 2 + 1, data >> 32, mem_mask >> 32); |
| 477 | 483 | } |
| 478 | 484 | |
| 479 | 485 | /*****************************************************************************/ |