trunk/src/mess/drivers/hp16500.c
| r242434 | r242435 | |
| 40 | 40 | |
| 41 | 41 | DECLARE_WRITE32_MEMBER(palette_w); |
| 42 | 42 | |
| 43 | | DECLARE_WRITE8_MEMBER(vram_w); |
| 44 | | DECLARE_READ8_MEMBER (vram_r); |
| 45 | | DECLARE_WRITE8_MEMBER(mask_w); |
| 46 | | DECLARE_WRITE8_MEMBER(val_w); |
| 43 | DECLARE_WRITE16_MEMBER(vram_w); |
| 44 | DECLARE_READ8_MEMBER (vram_r); |
| 45 | DECLARE_WRITE8_MEMBER (mask_w); |
| 46 | DECLARE_WRITE8_MEMBER (val_w); |
| 47 | 47 | |
| 48 | 48 | INTERRUPT_GEN_MEMBER(vblank); |
| 49 | 49 | |
| r242434 | r242435 | |
| 57 | 57 | |
| 58 | 58 | AM_RANGE(0x00200000, 0x0020efff) AM_RAM |
| 59 | 59 | |
| 60 | | AM_RANGE(0x00600000, 0x0061ffff) AM_WRITE8(vram_w, 0x00ff00ff) |
| 61 | | AM_RANGE(0x00600000, 0x0067ffff) AM_READ8 (vram_r, 0x00ff00ff) |
| 62 | | AM_RANGE(0x00700000, 0x00700003) AM_WRITE8(mask_w, 0xff000000) |
| 63 | | AM_RANGE(0x00740000, 0x00740003) AM_WRITE8(val_w, 0xff000000) |
| 60 | AM_RANGE(0x00600000, 0x0061ffff) AM_WRITE16(vram_w, 0xffffffff) |
| 61 | AM_RANGE(0x00600000, 0x0067ffff) AM_READ8 (vram_r, 0x00ff00ff) |
| 62 | AM_RANGE(0x00700000, 0x00700003) AM_WRITE8 (mask_w, 0xff000000) |
| 63 | AM_RANGE(0x00740000, 0x00740003) AM_WRITE8 (val_w, 0xff000000) |
| 64 | 64 | AM_RANGE(0x00800000, 0x009fffff) AM_RAM |
| 65 | 65 | ADDRESS_MAP_END |
| 66 | 66 | |
| r242434 | r242435 | |
| 79 | 79 | m_val = 0; |
| 80 | 80 | } |
| 81 | 81 | |
| 82 | | WRITE8_MEMBER(hp16500_state::vram_w) |
| 82 | // The test code is buggy, it writes a byte in the wrong position |
| 83 | // (even instead of odd). It still works because the 68k replicates |
| 84 | // the byte on the word and the hardware doesn't decode UDS/LDS. But |
| 85 | // that is why the handler needs to be 16 bits, or it won't be called |
| 86 | // in the first place. |
| 87 | |
| 88 | WRITE16_MEMBER(hp16500_state::vram_w) |
| 83 | 89 | { |
| 90 | if(!ACCESSING_BITS_0_7) |
| 91 | data = data | (data >> 8); |
| 84 | 92 | for(int i=0; i<4; i++) { |
| 85 | 93 | int off = offset + i * 0x10000; |
| 86 | 94 | if(data & (8 >> i)) |