summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/apple3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/apple3.cpp')
-rw-r--r--src/mame/machine/apple3.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/mame/machine/apple3.cpp b/src/mame/machine/apple3.cpp
index df3ef3b9be3..8fe3adf80ce 100644
--- a/src/mame/machine/apple3.cpp
+++ b/src/mame/machine/apple3.cpp
@@ -258,11 +258,12 @@ READ8_MEMBER(apple3_state::apple3_c0xx_r)
break;
case 0xdb:
- apple3_write_charmem();
+ m_charwrt = true;
// printf("ENCWRT on (write_charmem (r))\n");
break;
case 0xdc:
+ m_charwrt = false;
// printf("ENCSEL off\n");
break;
@@ -437,11 +438,12 @@ WRITE8_MEMBER(apple3_state::apple3_c0xx_w)
break;
case 0xdb:
- apple3_write_charmem();
+ m_charwrt = true;
// printf("ENCWRT on (write_charmem (w))\n");
break;
case 0xdc:
+ m_charwrt = false;
// printf("ENCSEL off\n");
break;
@@ -473,6 +475,14 @@ WRITE8_MEMBER(apple3_state::apple3_c0xx_w)
}
}
+WRITE_LINE_MEMBER(apple3_state::vbl_w)
+{
+ if ((state) && (m_charwrt))
+ {
+ apple3_write_charmem();
+ }
+}
+
uint8_t *apple3_state::apple3_bankaddr(uint16_t bank, offs_t offset)
{
if (bank != (uint16_t) ~0)
@@ -631,6 +641,7 @@ void apple3_state::machine_reset()
m_cnxx_slot = -1;
m_analog_sel = 0;
m_ramp_active = false;
+ m_charwrt = false;
m_fdc->set_floppies_4(floppy0, floppy1, floppy2, floppy3);
@@ -727,6 +738,7 @@ void apple3_state::init_apple3()
save_item(NAME(m_vb));
save_item(NAME(m_vc));
save_item(NAME(m_smoothscr));
+ save_item(NAME(m_charwrt));
}
void apple3_state::device_post_load()