diff options
Diffstat (limited to 'src/devices/video/pc_vga.cpp')
-rw-r--r-- | src/devices/video/pc_vga.cpp | 82 |
1 files changed, 40 insertions, 42 deletions
diff --git a/src/devices/video/pc_vga.cpp b/src/devices/video/pc_vga.cpp index f5a7f7148e9..db89bd2fd78 100644 --- a/src/devices/video/pc_vga.cpp +++ b/src/devices/video/pc_vga.cpp @@ -2221,12 +2221,12 @@ WRITE8_MEMBER(vga_device::mem_w) } } -READ8_MEMBER(vga_device::mem_linear_r) +uint8_t vga_device::mem_linear_r(offs_t offset) { return vga.memory[offset % vga.svga_intf.vram_size]; } -WRITE8_MEMBER(vga_device::mem_linear_w) +void vga_device::mem_linear_w(offs_t offset, uint8_t data) { vga.memory[offset % vga.svga_intf.vram_size] = data; } @@ -3328,9 +3328,8 @@ READ8_MEMBER(ati_vga_device::port_03c0_r) void ibm8514a_device::ibm8514_write_fg(uint32_t offset) { - address_space &space = machine().dummy_space(); offset %= m_vga->vga.svga_intf.vram_size; - uint8_t dst = m_vga->mem_linear_r(space,offset,0xff); + uint8_t dst = m_vga->mem_linear_r(offset); uint8_t src = 0; // check clipping rectangle @@ -3357,7 +3356,7 @@ void ibm8514a_device::ibm8514_write_fg(uint32_t offset) break; case 0x0060: // video memory - presume the memory is sourced from the current X/Y co-ords - src = m_vga->mem_linear_r(space,((ibm8514.curr_y * IBM8514_LINE_LENGTH) + ibm8514.curr_x),0xff); + src = m_vga->mem_linear_r(((ibm8514.curr_y * IBM8514_LINE_LENGTH) + ibm8514.curr_x)); break; } @@ -3365,61 +3364,60 @@ void ibm8514a_device::ibm8514_write_fg(uint32_t offset) switch(ibm8514.fgmix & 0x000f) { case 0x0000: - m_vga->mem_linear_w(space,offset,~dst,0xff); + m_vga->mem_linear_w(offset,~dst); break; case 0x0001: - m_vga->mem_linear_w(space,offset,0x00,0xff); + m_vga->mem_linear_w(offset,0x00); break; case 0x0002: - m_vga->mem_linear_w(space,offset,0xff,0xff); + m_vga->mem_linear_w(offset,0xff); break; case 0x0003: - m_vga->mem_linear_w(space,offset,dst,0xff); + m_vga->mem_linear_w(offset,dst); break; case 0x0004: - m_vga->mem_linear_w(space,offset,~src,0xff); + m_vga->mem_linear_w(offset,~src); break; case 0x0005: - m_vga->mem_linear_w(space,offset,src ^ dst,0xff); + m_vga->mem_linear_w(offset,src ^ dst); break; case 0x0006: - m_vga->mem_linear_w(space,offset,~(src ^ dst),0xff); + m_vga->mem_linear_w(offset,~(src ^ dst)); break; case 0x0007: - m_vga->mem_linear_w(space,offset,src,0xff); + m_vga->mem_linear_w(offset,src); break; case 0x0008: - m_vga->mem_linear_w(space,offset,~(src & dst),0xff); + m_vga->mem_linear_w(offset,~(src & dst)); break; case 0x0009: - m_vga->mem_linear_w(space,offset,(~src) | dst,0xff); + m_vga->mem_linear_w(offset,(~src) | dst); break; case 0x000a: - m_vga->mem_linear_w(space,offset,src | (~dst),0xff); + m_vga->mem_linear_w(offset,src | (~dst)); break; case 0x000b: - m_vga->mem_linear_w(space,offset,src | dst,0xff); + m_vga->mem_linear_w(offset,src | dst); break; case 0x000c: - m_vga->mem_linear_w(space,offset,src & dst,0xff); + m_vga->mem_linear_w(offset,src & dst); break; case 0x000d: - m_vga->mem_linear_w(space,offset,src & (~dst),0xff); + m_vga->mem_linear_w(offset,src & (~dst)); break; case 0x000e: - m_vga->mem_linear_w(space,offset,(~src) & dst,0xff); + m_vga->mem_linear_w(offset,(~src) & dst); break; case 0x000f: - m_vga->mem_linear_w(space,offset,~(src | dst),0xff); + m_vga->mem_linear_w(offset,~(src | dst)); break; } } void ibm8514a_device::ibm8514_write_bg(uint32_t offset) { - address_space &space = machine().dummy_space(); offset %= m_vga->vga.svga_intf.vram_size; - uint8_t dst = m_vga->mem_linear_r(space,offset,0xff); + uint8_t dst = m_vga->mem_linear_r(offset); uint8_t src = 0; // check clipping rectangle @@ -3446,7 +3444,7 @@ void ibm8514a_device::ibm8514_write_bg(uint32_t offset) break; case 0x0060: // video memory - presume the memory is sourced from the current X/Y co-ords - src = m_vga->mem_linear_r(space,((ibm8514.curr_y * IBM8514_LINE_LENGTH) + ibm8514.curr_x),0xff); + src = m_vga->mem_linear_r(((ibm8514.curr_y * IBM8514_LINE_LENGTH) + ibm8514.curr_x)); break; } @@ -3454,52 +3452,52 @@ void ibm8514a_device::ibm8514_write_bg(uint32_t offset) switch(ibm8514.bgmix & 0x000f) { case 0x0000: - m_vga->mem_linear_w(space,offset,~dst,0xff); + m_vga->mem_linear_w(offset,~dst); break; case 0x0001: - m_vga->mem_linear_w(space,offset,0x00,0xff); + m_vga->mem_linear_w(offset,0x00); break; case 0x0002: - m_vga->mem_linear_w(space,offset,0xff,0xff); + m_vga->mem_linear_w(offset,0xff); break; case 0x0003: - m_vga->mem_linear_w(space,offset,dst,0xff); + m_vga->mem_linear_w(offset,dst); break; case 0x0004: - m_vga->mem_linear_w(space,offset,~src,0xff); + m_vga->mem_linear_w(offset,~src); break; case 0x0005: - m_vga->mem_linear_w(space,offset,src ^ dst,0xff); + m_vga->mem_linear_w(offset,src ^ dst); break; case 0x0006: - m_vga->mem_linear_w(space,offset,~(src ^ dst),0xff); + m_vga->mem_linear_w(offset,~(src ^ dst)); break; case 0x0007: - m_vga->mem_linear_w(space,offset,src,0xff); + m_vga->mem_linear_w(offset,src); break; case 0x0008: - m_vga->mem_linear_w(space,offset,~(src & dst),0xff); + m_vga->mem_linear_w(offset,~(src & dst)); break; case 0x0009: - m_vga->mem_linear_w(space,offset,(~src) | dst,0xff); + m_vga->mem_linear_w(offset,(~src) | dst); break; case 0x000a: - m_vga->mem_linear_w(space,offset,src | (~dst),0xff); + m_vga->mem_linear_w(offset,src | (~dst)); break; case 0x000b: - m_vga->mem_linear_w(space,offset,src | dst,0xff); + m_vga->mem_linear_w(offset,src | dst); break; case 0x000c: - m_vga->mem_linear_w(space,offset,src & dst,0xff); + m_vga->mem_linear_w(offset,src & dst); break; case 0x000d: - m_vga->mem_linear_w(space,offset,src & (~dst),0xff); + m_vga->mem_linear_w(offset,src & (~dst)); break; case 0x000e: - m_vga->mem_linear_w(space,offset,(~src) & dst,0xff); + m_vga->mem_linear_w(offset,(~src) & dst); break; case 0x000f: - m_vga->mem_linear_w(space,offset,~(src | dst),0xff); + m_vga->mem_linear_w(offset,~(src | dst)); break; } } @@ -3547,7 +3545,7 @@ void ibm8514a_device::ibm8514_write(uint32_t offset, uint32_t src) ibm8514.src_x = 0; break; case 0x00c0: // use source plane - if (m_vga->mem_linear_r(machine().dummy_space(), src, 0xff) != 0x00) + if (m_vga->mem_linear_r(src) != 0x00) ibm8514_write_fg(offset); else ibm8514_write_bg(offset); @@ -3885,7 +3883,7 @@ WRITE16_MEMBER(ibm8514a_device::ibm8514_cmd_w) if((ibm8514.pixel_control & 0xc0) == 0xc0) { // only check read mask if Mix Select is set to 11 (VRAM determines mix) - if(m_vga->mem_linear_r(space,(src+x),0xff) & ~readmask) + if(m_vga->mem_linear_r((src+x)) & ~readmask) { // presumably every program is going to be smart enough to set the FG mix to use VRAM (0x6x) if(data & 0x0020) |