diff options
Diffstat (limited to 'src/mame/machine/apple3.cpp')
-rw-r--r-- | src/mame/machine/apple3.cpp | 16 |
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() |