summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/mindset.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/mindset.cpp')
-rw-r--r--src/mame/drivers/mindset.cpp54
1 files changed, 27 insertions, 27 deletions
diff --git a/src/mame/drivers/mindset.cpp b/src/mame/drivers/mindset.cpp
index cffba194b09..279ad92bbf8 100644
--- a/src/mame/drivers/mindset.cpp
+++ b/src/mame/drivers/mindset.cpp
@@ -330,7 +330,7 @@ protected:
required_device<dac_byte_interface> m_dac;
required_device_array<mindset_module, 6> m_modules;
- memory_access_cache<1, 0, ENDIANNESS_LITTLE> *m_gcps;
+ memory_access<20, 1, 0, ENDIANNESS_LITTLE>::cache m_gcps;
floppy_image_device *m_floppy[2];
u32 m_palette[16];
@@ -450,7 +450,7 @@ void mindset_state::machine_start()
m_yellow_led.resolve();
m_green_led.resolve();
- m_gcps = m_maincpu->space(AS_PROGRAM).cache<1, 0, ENDIANNESS_LITTLE>();
+ m_maincpu->space(AS_PROGRAM).cache(m_gcps);
for(int i=0; i<2; i++)
m_floppy[i] = m_fdco[i]->get_device();
@@ -1000,20 +1000,20 @@ u16 (*const mindset_state::gcp_blend[8])(u16, u16) = {
void mindset_state::blit(u16 packet_seg, u16 packet_adr)
{
- u16 mode = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 0) & 0xffff)));
- u16 src_adr = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 2) & 0xffff)));
- u16 src_sft = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 4) & 0xffff)));
- u16 dst_adr = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 6) & 0xffff)));
- u16 dst_sft = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 8) & 0xffff)));
- u16 width = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 10) & 0xffff)));
- u16 height = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 12) & 0xffff)));
- u16 sy = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 14) & 0xffff)));
- u16 dy = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 16) & 0xffff)));
- u16 rmask = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 18) & 0xffff)));
- u16 src_seg = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 20) & 0xffff)));
- u16 dst_seg = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 22) & 0xffff)));
- u16 wmask = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 24) & 0xffff)));
- u16 kmask = sw(m_gcps->read_word((packet_seg << 4) + ((packet_adr + 26) & 0xffff)));
+ u16 mode = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 0) & 0xffff)));
+ u16 src_adr = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 2) & 0xffff)));
+ u16 src_sft = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 4) & 0xffff)));
+ u16 dst_adr = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 6) & 0xffff)));
+ u16 dst_sft = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 8) & 0xffff)));
+ u16 width = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 10) & 0xffff)));
+ u16 height = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 12) & 0xffff)));
+ u16 sy = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 14) & 0xffff)));
+ u16 dy = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 16) & 0xffff)));
+ u16 rmask = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 18) & 0xffff)));
+ u16 src_seg = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 20) & 0xffff)));
+ u16 dst_seg = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 22) & 0xffff)));
+ u16 wmask = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 24) & 0xffff)));
+ u16 kmask = sw(m_gcps.read_word((packet_seg << 4) + ((packet_adr + 26) & 0xffff)));
// -f-w wnpi ktxm mm--
// f = fast (pure word copy)
@@ -1040,9 +1040,9 @@ void mindset_state::blit(u16 packet_seg, u16 packet_adr)
if(mode & 0x200) {
// pattern fill
- u16 src = m_gcps->read_word((src_seg << 4) + src_adr);
+ u16 src = m_gcps.read_word((src_seg << 4) + src_adr);
for(u16 w=0; w != width/2; w++) {
- m_gcps->write_word((dst_seg << 4) + dst_adr, src);
+ m_gcps.write_word((dst_seg << 4) + dst_adr, src);
dst_adr += 2;
}
@@ -1053,7 +1053,7 @@ void mindset_state::blit(u16 packet_seg, u16 packet_adr)
u16 src_cadr = src_adr;
u16 dst_cadr = dst_adr;
for(u32 w=0; w!=nw; w++) {
- m_gcps->write_word((dst_seg << 4) + dst_cadr, m_gcps->read_word((src_seg << 4) + src_cadr));
+ m_gcps.write_word((dst_seg << 4) + dst_cadr, m_gcps.read_word((src_seg << 4) + src_cadr));
src_cadr += 2;
dst_cadr += 2;
}
@@ -1095,14 +1095,14 @@ void mindset_state::blit(u16 packet_seg, u16 packet_adr)
u16 nw1 = nw;
u32 srcs = 0;
if(preload) {
- srcs = sw(m_gcps->read_word((src_seg << 4) + src_cadr)) << src_do_sft;
+ srcs = sw(m_gcps.read_word((src_seg << 4) + src_cadr)) << src_do_sft;
if(mode & 0x100)
src_cadr += 2;
}
do {
- srcs = (srcs << 16) | (sw(m_gcps->read_word((src_seg << 4) + src_cadr)) << src_do_sft);
+ srcs = (srcs << 16) | (sw(m_gcps.read_word((src_seg << 4) + src_cadr)) << src_do_sft);
u16 src = (srcs >> dst_do_sft) & rmask;
- u16 dst = sw(m_gcps->read_word((dst_seg << 4) + dst_cadr));
+ u16 dst = sw(m_gcps.read_word((dst_seg << 4) + dst_cadr));
u16 res = blend(src, dst);
if(mode & 0x40) {
u16 tmask;
@@ -1132,7 +1132,7 @@ void mindset_state::blit(u16 packet_seg, u16 packet_adr)
res = (dst & ~cmask) | (res & cmask);
- m_gcps->write_word((dst_seg << 4) + dst_cadr, sw(res));
+ m_gcps.write_word((dst_seg << 4) + dst_cadr, sw(res));
if(mode & 0x100)
src_cadr += 2;
dst_cadr += 2;
@@ -1151,9 +1151,9 @@ void mindset_state::blit(u16 packet_seg, u16 packet_adr)
void mindset_state::gcp_w(u16)
{
- u16 packet_seg = sw(m_gcps->read_word(0xbfd7a));
- u16 packet_adr = sw(m_gcps->read_word(0xbfd78));
- u16 global_mode = sw(m_gcps->read_word(0xbfd76));
+ u16 packet_seg = sw(m_gcps.read_word(0xbfd7a));
+ u16 packet_adr = sw(m_gcps.read_word(0xbfd78));
+ u16 global_mode = sw(m_gcps.read_word(0xbfd76));
if(0)
logerror("GCP: start %04x:%04x mode %04x (%05x)\n", packet_seg, packet_adr, global_mode, m_maincpu->pc());
@@ -1166,7 +1166,7 @@ void mindset_state::gcp_w(u16)
}
// 100 = done, 200 = done too???, 400 = collision?
- m_gcps->write_word(0xbfd74, m_gcps->read_word(0xbfd74) | 0x0700);
+ m_gcps.write_word(0xbfd74, m_gcps.read_word(0xbfd74) | 0x0700);
// Can trigger an irq, on mode & 2 (or is it 200?) (0x40 on 8282, ack on 0x41, which means the system 8042...)
}