From d8e1b9c6f9c45213fdf6dc3f3eb3f3f0cf60ab40 Mon Sep 17 00:00:00 2001 From: arbee Date: Sun, 5 Dec 2021 23:00:49 -0500 Subject: [PATCH] apple2e: change most bankdev usage to memory views. [R. Belmont] --- src/mame/drivers/apple2e.cpp | 309 ++++++++++++++--------------------- 1 file changed, 121 insertions(+), 188 deletions(-) diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp index b0e8a77ad5a..0af566edd6f 100644 --- a/src/mame/drivers/apple2e.cpp +++ b/src/mame/drivers/apple2e.cpp @@ -330,17 +330,17 @@ public: required_ioport m_sysconfig; required_device m_speaker; optional_device m_cassette; - required_device m_upperbank; - required_device m_0000bank; - required_device m_0200bank; - required_device m_0400bank; - required_device m_0800bank; - required_device m_2000bank; - required_device m_4000bank; - required_device m_c100bank; - required_device m_c300bank; - required_device m_c400bank; - required_device m_c800bank; + memory_view m_upperbank; + memory_view m_0000bank; + memory_view m_0200bank; + memory_view m_0400bank; + memory_view m_0800bank; + memory_view m_2000bank; + memory_view m_4000bank; + memory_view m_c100bank; + memory_view m_c300bank; + memory_view m_c400bank; + memory_view m_c800bank; required_device m_lcbank; optional_device m_acia1, m_acia2; optional_device m_laserudc; @@ -845,7 +845,7 @@ WRITE_LINE_MEMBER(apple2e_state::a2bus_inh_w) { if (m_inh_bank != 1) { - m_upperbank->set_bank(1); + m_upperbank.select(1); m_inh_bank = 1; } } @@ -853,7 +853,7 @@ WRITE_LINE_MEMBER(apple2e_state::a2bus_inh_w) { if (m_inh_bank != 0) { - m_upperbank->set_bank(0); + m_upperbank.select(0); m_inh_bank = 0; } } @@ -867,7 +867,7 @@ WRITE_LINE_MEMBER(apple2e_state::a2bus_inh_w) // if no slots are inhibiting, make sure ROM is fully switched in if ((m_inh_slot == -1) && (m_inh_bank != 0)) { - m_upperbank->set_bank(0); + m_upperbank.select(0); m_inh_bank = 0; } } @@ -977,14 +977,14 @@ void apple2e_state::machine_start() { m_cassette->output(-1.0f); } - m_upperbank->set_bank(0); + m_upperbank.select(0); m_lcbank->set_bank(0); - m_0000bank->set_bank(0); - m_0200bank->set_bank(0); - m_0400bank->set_bank(0); - m_0800bank->set_bank(0); - m_2000bank->set_bank(0); - m_4000bank->set_bank(0); + m_0000bank.select(0); + m_0200bank.select(0); + m_0400bank.select(0); + m_0800bank.select(0); + m_2000bank.select(0); + m_4000bank.select(0); m_inh_bank = 0; m_migpage = 0; @@ -1535,54 +1535,54 @@ void apple2e_state::auxbank_update() if (!m_iscec) // real Apple II { - m_0000bank->set_bank(m_altzp ? 1 : 0); - m_0200bank->set_bank(ramwr); + m_0000bank.select(m_altzp ? 1 : 0); + m_0200bank.select(ramwr); if (m_80store) { if (m_page2) { - m_0400bank->set_bank(3); + m_0400bank.select(3); } else { - m_0400bank->set_bank(0); + m_0400bank.select(0); } } else { - m_0400bank->set_bank(ramwr); + m_0400bank.select(ramwr); } - m_0800bank->set_bank(ramwr); + m_0800bank.select(ramwr); if ((m_80store) && (m_video->m_hires)) { if (m_page2) { - m_2000bank->set_bank(3); + m_2000bank.select(3); } else { - m_2000bank->set_bank(0); + m_2000bank.select(0); } } else { - m_2000bank->set_bank(ramwr); + m_2000bank.select(ramwr); } - m_4000bank->set_bank(ramwr); + m_4000bank.select(ramwr); } else // CEC { if (m_ramrd) { - m_4000bank->set_bank(4); // read CEC bank, write normal RAM + m_4000bank.select(4); // read CEC bank, write normal RAM } else { - m_4000bank->set_bank(0); // read/write RAM + m_4000bank.select(0); // read/write RAM } } } @@ -1607,64 +1607,64 @@ void apple2e_state::update_slotrom_banks() } } - m_c100bank->set_bank(cxswitch); - m_c400bank->set_bank(cxswitch); + m_c100bank.select(cxswitch); + m_c400bank.select(cxswitch); //printf("intcxrom %d intc8rom %d cnxx_slot %d isiic %d romswitch %d\n", m_intcxrom, m_intc8rom, m_cnxx_slot, m_isiic, m_romswitch); if ((m_intcxrom) || (m_intc8rom) || (m_isiic)) { if (m_romswitch) { - m_c800bank->set_bank(2); + m_c800bank.select(2); } else { - m_c800bank->set_bank(1); + m_c800bank.select(1); } } else { - m_c800bank->set_bank(0); + m_c800bank.select(0); } if ((m_intcxrom) || (!m_slotc3rom) || (m_isiic)) { if (m_romswitch) { - m_c300bank->set_bank(2); + m_c300bank.select(2); } else { - m_c300bank->set_bank(1); + m_c300bank.select(1); } } else { - m_c300bank->set_bank(0); + m_c300bank.select(0); } } else // CEC has only ROM here { if (!m_intcxrom) { - m_c100bank->set_bank(3); - m_c400bank->set_bank(3); - m_c800bank->set_bank(3); + m_c100bank.select(3); + m_c400bank.select(3); + m_c800bank.select(3); } else { - m_c100bank->set_bank(4); - m_c400bank->set_bank(4); - m_c800bank->set_bank(4); + m_c100bank.select(4); + m_c400bank.select(4); + m_c800bank.select(4); } if ((m_intcxrom) || (!m_slotc3rom)) { - m_c300bank->set_bank(4); + m_c300bank.select(4); } else { - m_c300bank->set_bank(3); + m_c300bank.select(3); } } } @@ -3629,19 +3629,76 @@ void apple2e_state::auxram4000_w(offs_t offset, u8 data) { if (m_aux_bank_ptr) { void apple2e_state::base_map(address_map &map) { - map(0x0000, 0x01ff).m(m_0000bank, FUNC(address_map_bank_device::amap8)); - map(0x0200, 0x03ff).m(m_0200bank, FUNC(address_map_bank_device::amap8)); - map(0x0400, 0x07ff).m(m_0400bank, FUNC(address_map_bank_device::amap8)); - map(0x0800, 0x1fff).m(m_0800bank, FUNC(address_map_bank_device::amap8)); - map(0x2000, 0x3fff).m(m_2000bank, FUNC(address_map_bank_device::amap8)); - map(0x4000, 0xbfff).m(m_4000bank, FUNC(address_map_bank_device::amap8)); + map(0x0000, 0x01ff).view(m_0000bank); + m_0000bank[0](0x0000, 0x01ff).rw(FUNC(apple2e_state::ram0000_r), FUNC(apple2e_state::ram0000_w)); + m_0000bank[1](0x0000, 0x01ff).rw(FUNC(apple2e_state::auxram0000_r), FUNC(apple2e_state::auxram0000_w)); + + map(0x0200, 0x03ff).view(m_0200bank); + m_0200bank[0](0x0200, 0x03ff).rw(FUNC(apple2e_state::ram0200_r), FUNC(apple2e_state::ram0200_w)); // wr 0 rd 0 + m_0200bank[1](0x0200, 0x03ff).rw(FUNC(apple2e_state::auxram0200_r), FUNC(apple2e_state::ram0200_w)); // wr 0 rd 1 + m_0200bank[2](0x0200, 0x03ff).rw(FUNC(apple2e_state::ram0200_r), FUNC(apple2e_state::auxram0200_w)); // wr 1 rd 0 + m_0200bank[3](0x0200, 0x03ff).rw(FUNC(apple2e_state::auxram0200_r), FUNC(apple2e_state::auxram0200_w)); // wr 1 rd 1 + + map(0x0400, 0x07ff).view(m_0400bank); + m_0400bank[0](0x0400, 0x07ff).rw(FUNC(apple2e_state::ram0400_r), FUNC(apple2e_state::ram0400_w)); // wr 0 rd 0 + m_0400bank[1](0x0400, 0x07ff).rw(FUNC(apple2e_state::auxram0400_r), FUNC(apple2e_state::ram0400_w)); // wr 0 rd 1 + m_0400bank[2](0x0400, 0x07ff).rw(FUNC(apple2e_state::ram0400_r), FUNC(apple2e_state::auxram0400_w)); // wr 1 rd 0 + m_0400bank[3](0x0400, 0x07ff).rw(FUNC(apple2e_state::auxram0400_r), FUNC(apple2e_state::auxram0400_w)); // wr 1 rd 1 + + map(0x0800, 0x1fff).view(m_0800bank); + m_0800bank[0](0x0800, 0x1fff).rw(FUNC(apple2e_state::ram0800_r), FUNC(apple2e_state::ram0800_w)); + m_0800bank[1](0x0800, 0x1fff).rw(FUNC(apple2e_state::auxram0800_r), FUNC(apple2e_state::ram0800_w)); + m_0800bank[2](0x0800, 0x1fff).rw(FUNC(apple2e_state::ram0800_r), FUNC(apple2e_state::auxram0800_w)); + m_0800bank[3](0x0800, 0x1fff).rw(FUNC(apple2e_state::auxram0800_r), FUNC(apple2e_state::auxram0800_w)); + + map(0x2000, 0x3fff).view(m_2000bank); + m_2000bank[0](0x2000, 0x3fff).rw(FUNC(apple2e_state::ram2000_r), FUNC(apple2e_state::ram2000_w)); + m_2000bank[1](0x2000, 0x3fff).rw(FUNC(apple2e_state::auxram2000_r), FUNC(apple2e_state::ram2000_w)); + m_2000bank[2](0x2000, 0x3fff).rw(FUNC(apple2e_state::ram2000_r), FUNC(apple2e_state::auxram2000_w)); + m_2000bank[3](0x2000, 0x3fff).rw(FUNC(apple2e_state::auxram2000_r), FUNC(apple2e_state::auxram2000_w)); + + map(0x4000, 0xbfff).view(m_4000bank); + m_4000bank[0](0x4000, 0xbfff).rw(FUNC(apple2e_state::ram4000_r), FUNC(apple2e_state::ram4000_w)); + m_4000bank[1](0x4000, 0xbfff).rw(FUNC(apple2e_state::auxram4000_r), FUNC(apple2e_state::ram4000_w)); + m_4000bank[2](0x4000, 0xbfff).rw(FUNC(apple2e_state::ram4000_r), FUNC(apple2e_state::auxram4000_w)); + m_4000bank[3](0x4000, 0xbfff).rw(FUNC(apple2e_state::auxram4000_r), FUNC(apple2e_state::auxram4000_w)); + m_4000bank[4](0x4000, 0xbfff).rw(FUNC(apple2e_state::cec4000_r), FUNC(apple2e_state::ram4000_w)); + m_4000bank[5](0x4000, 0xbfff).rw(FUNC(apple2e_state::cec8000_r), FUNC(apple2e_state::ram8000_w)); + map(0xc000, 0xc07f).rw(FUNC(apple2e_state::c000_r), FUNC(apple2e_state::c000_w)); map(0xc080, 0xc0ff).rw(FUNC(apple2e_state::c080_r), FUNC(apple2e_state::c080_w)); - map(0xc100, 0xc2ff).m(m_c100bank, FUNC(address_map_bank_device::amap8)); - map(0xc300, 0xc3ff).m(m_c300bank, FUNC(address_map_bank_device::amap8)); - map(0xc400, 0xc7ff).m(m_c400bank, FUNC(address_map_bank_device::amap8)); - map(0xc800, 0xcfff).m(m_c800bank, FUNC(address_map_bank_device::amap8)); - map(0xd000, 0xffff).m(m_upperbank, FUNC(address_map_bank_device::amap8)); + + map(0xc100, 0xc2ff).view(m_c100bank); + m_c100bank[0](0xc100, 0xc2ff).rw(FUNC(apple2e_state::c100_r), FUNC(apple2e_state::c100_w)); + m_c100bank[1](0xc100, 0xc2ff).rw(FUNC(apple2e_state::c100_int_r), FUNC(apple2e_state::c100_w)); + m_c100bank[2](0xc100, 0xc2ff).rw(FUNC(apple2e_state::c100_int_bank_r), FUNC(apple2e_state::c100_w)); + m_c100bank[3](0xc100, 0xc2ff).r(FUNC(apple2e_state::c100_cec_r)).nopw(); + m_c100bank[4](0xc100, 0xc2ff).r(FUNC(apple2e_state::c100_cec_bank_r)).nopw(); + + map(0xc300, 0xc3ff).view(m_c300bank); + m_c300bank[0](0xc300, 0xc3ff).rw(FUNC(apple2e_state::c300_r), FUNC(apple2e_state::c300_w)); + m_c300bank[1](0xc300, 0xc3ff).rw(FUNC(apple2e_state::c300_int_r), FUNC(apple2e_state::c300_w)); + m_c300bank[2](0xc300, 0xc3ff).rw(FUNC(apple2e_state::c300_int_bank_r), FUNC(apple2e_state::c300_w)); + m_c300bank[3](0xc300, 0xc3ff).r(FUNC(apple2e_state::c300_cec_r)).nopw(); + m_c300bank[4](0xc300, 0xc3ff).r(FUNC(apple2e_state::c300_cec_bank_r)).nopw(); + + map(0xc400, 0xc7ff).view(m_c400bank); + m_c400bank[0](0xc400, 0xc7ff).rw(FUNC(apple2e_state::c400_r), FUNC(apple2e_state::c400_w)); + m_c400bank[1](0xc400, 0xc7ff).rw(FUNC(apple2e_state::c400_int_r), FUNC(apple2e_state::c400_w)); + m_c400bank[2](0xc400, 0xc7ff).rw(FUNC(apple2e_state::c400_int_bank_r), FUNC(apple2e_state::c400_w)); + m_c400bank[3](0xc400, 0xc7ff).rw(FUNC(apple2e_state::c400_cec_r), FUNC(apple2e_state::c400_cec_w)); + m_c400bank[4](0xc400, 0xc7ff).r(FUNC(apple2e_state::c400_cec_bank_r)).nopw(); + + map(0xc800, 0xcfff).view(m_c800bank); + m_c800bank[0](0xc800, 0xcfff).rw(FUNC(apple2e_state::c800_r), FUNC(apple2e_state::c800_w)); + m_c800bank[1](0xc800, 0xcfff).rw(FUNC(apple2e_state::c800_int_r), FUNC(apple2e_state::c800_w)); + m_c800bank[2](0xc800, 0xcfff).rw(FUNC(apple2e_state::c800_b2_int_r), FUNC(apple2e_state::c800_w)); + m_c800bank[3](0xc800, 0xcfff).r(FUNC(apple2e_state::c800_cec_r)).nopw(); + m_c800bank[4](0xc800, 0xcfff).r(FUNC(apple2e_state::c800_cec_bank_r)).nopw(); + + map(0xd000, 0xffff).view(m_upperbank); //m(m_upperbank, FUNC(address_map_bank_device::amap8)); + m_upperbank[0](0xd000, 0xffff).m(m_lcbank, FUNC(address_map_bank_device::amap8)); + m_upperbank[1](0xd000, 0xffff).rw(FUNC(apple2e_state::inh_r), FUNC(apple2e_state::inh_w)); } void apple2e_state::apple2c_map(address_map &map) @@ -3687,105 +3744,14 @@ void apple2e_state::ace500_map(address_map &map) void apple2e_state::ace2200_map(address_map &map) { base_map(map); + + // change the banking here to acommodate the Ace 2x00's ROM banking in at $A000 + m_4000bank[0](0x4000, 0xbfff).rw(FUNC(apple2e_state::ram4000_ace2200_r), FUNC(apple2e_state::ram4000_w)); + map(0xc090, 0xc097).w(FUNC(apple2e_state::laserprn_w)); map(0xc1c1, 0xc1c1).r(FUNC(apple2e_state::laserprn_busy_r)); } -void apple2e_state::r0000bank_map(address_map &map) -{ - map(0x0000, 0x01ff).rw(FUNC(apple2e_state::ram0000_r), FUNC(apple2e_state::ram0000_w)); - map(0x0200, 0x03ff).rw(FUNC(apple2e_state::auxram0000_r), FUNC(apple2e_state::auxram0000_w)); -} - -void apple2e_state::r0200bank_map(address_map &map) -{ - map(0x0000, 0x01ff).rw(FUNC(apple2e_state::ram0200_r), FUNC(apple2e_state::ram0200_w)); // wr 0 rd 0 - map(0x0200, 0x03ff).rw(FUNC(apple2e_state::auxram0200_r), FUNC(apple2e_state::ram0200_w)); // wr 0 rd 1 - map(0x0400, 0x05ff).rw(FUNC(apple2e_state::ram0200_r), FUNC(apple2e_state::auxram0200_w)); // wr 1 rd 0 - map(0x0600, 0x07ff).rw(FUNC(apple2e_state::auxram0200_r), FUNC(apple2e_state::auxram0200_w)); // wr 1 rd 1 -} - -void apple2e_state::r0400bank_map(address_map &map) -{ - map(0x0000, 0x03ff).rw(FUNC(apple2e_state::ram0400_r), FUNC(apple2e_state::ram0400_w)); // wr 0 rd 0 - map(0x0400, 0x07ff).rw(FUNC(apple2e_state::auxram0400_r), FUNC(apple2e_state::ram0400_w)); // wr 0 rd 1 - map(0x0800, 0x0bff).rw(FUNC(apple2e_state::ram0400_r), FUNC(apple2e_state::auxram0400_w)); // wr 1 rd 0 - map(0x0c00, 0x0fff).rw(FUNC(apple2e_state::auxram0400_r), FUNC(apple2e_state::auxram0400_w)); // wr 1 rd 1 -} - -void apple2e_state::r0800bank_map(address_map &map) -{ - map(0x0000, 0x17ff).rw(FUNC(apple2e_state::ram0800_r), FUNC(apple2e_state::ram0800_w)); - map(0x2000, 0x37ff).rw(FUNC(apple2e_state::auxram0800_r), FUNC(apple2e_state::ram0800_w)); - map(0x4000, 0x57ff).rw(FUNC(apple2e_state::ram0800_r), FUNC(apple2e_state::auxram0800_w)); - map(0x6000, 0x77ff).rw(FUNC(apple2e_state::auxram0800_r), FUNC(apple2e_state::auxram0800_w)); -} - -void apple2e_state::r2000bank_map(address_map &map) -{ - map(0x0000, 0x1fff).rw(FUNC(apple2e_state::ram2000_r), FUNC(apple2e_state::ram2000_w)); - map(0x2000, 0x3fff).rw(FUNC(apple2e_state::auxram2000_r), FUNC(apple2e_state::ram2000_w)); - map(0x4000, 0x5fff).rw(FUNC(apple2e_state::ram2000_r), FUNC(apple2e_state::auxram2000_w)); - map(0x6000, 0x7fff).rw(FUNC(apple2e_state::auxram2000_r), FUNC(apple2e_state::auxram2000_w)); -} - -void apple2e_state::r4000bank_map(address_map &map) -{ - map(0x00000, 0x07fff).rw(FUNC(apple2e_state::ram4000_r), FUNC(apple2e_state::ram4000_w)); - map(0x08000, 0x0ffff).rw(FUNC(apple2e_state::auxram4000_r), FUNC(apple2e_state::ram4000_w)); - map(0x10000, 0x17fff).rw(FUNC(apple2e_state::ram4000_r), FUNC(apple2e_state::auxram4000_w)); - map(0x18000, 0x1ffff).rw(FUNC(apple2e_state::auxram4000_r), FUNC(apple2e_state::auxram4000_w)); - map(0x20000, 0x23fff).rw(FUNC(apple2e_state::cec4000_r), FUNC(apple2e_state::ram4000_w)); - map(0x24000, 0x27fff).rw(FUNC(apple2e_state::cec8000_r), FUNC(apple2e_state::ram8000_w)); -} - -void apple2e_state::r4000bank_ace2200_map(address_map &map) -{ - map(0x00000, 0x07fff).rw(FUNC(apple2e_state::ram4000_ace2200_r), FUNC(apple2e_state::ram4000_w)); - map(0x08000, 0x0ffff).rw(FUNC(apple2e_state::auxram4000_r), FUNC(apple2e_state::ram4000_w)); - map(0x10000, 0x17fff).rw(FUNC(apple2e_state::ram4000_r), FUNC(apple2e_state::auxram4000_w)); - map(0x18000, 0x1ffff).rw(FUNC(apple2e_state::auxram4000_r), FUNC(apple2e_state::auxram4000_w)); - map(0x20000, 0x23fff).rw(FUNC(apple2e_state::cec4000_r), FUNC(apple2e_state::ram4000_w)); - map(0x24000, 0x27fff).rw(FUNC(apple2e_state::cec8000_r), FUNC(apple2e_state::ram8000_w)); -} - -void apple2e_state::c100bank_map(address_map &map) -{ - map(0x0000, 0x01ff).rw(FUNC(apple2e_state::c100_r), FUNC(apple2e_state::c100_w)); - map(0x0200, 0x03ff).rw(FUNC(apple2e_state::c100_int_r), FUNC(apple2e_state::c100_w)); - map(0x0400, 0x05ff).rw(FUNC(apple2e_state::c100_int_bank_r), FUNC(apple2e_state::c100_w)); - map(0x0600, 0x07ff).r(FUNC(apple2e_state::c100_cec_r)).nopw(); - map(0x0800, 0x09ff).r(FUNC(apple2e_state::c100_cec_bank_r)).nopw(); - -} - -void apple2e_state::c300bank_map(address_map &map) -{ - map(0x0000, 0x00ff).rw(FUNC(apple2e_state::c300_r), FUNC(apple2e_state::c300_w)); - map(0x0100, 0x01ff).rw(FUNC(apple2e_state::c300_int_r), FUNC(apple2e_state::c300_w)); - map(0x0200, 0x02ff).rw(FUNC(apple2e_state::c300_int_bank_r), FUNC(apple2e_state::c300_w)); - map(0x0300, 0x03ff).r(FUNC(apple2e_state::c300_cec_r)).nopw(); - map(0x0400, 0x04ff).r(FUNC(apple2e_state::c300_cec_bank_r)).nopw(); -} - -void apple2e_state::c400bank_map(address_map &map) -{ - map(0x0000, 0x03ff).rw(FUNC(apple2e_state::c400_r), FUNC(apple2e_state::c400_w)); - map(0x0400, 0x07ff).rw(FUNC(apple2e_state::c400_int_r), FUNC(apple2e_state::c400_w)); - map(0x0800, 0x0bff).rw(FUNC(apple2e_state::c400_int_bank_r), FUNC(apple2e_state::c400_w)); - map(0x0c00, 0x0fff).rw(FUNC(apple2e_state::c400_cec_r), FUNC(apple2e_state::c400_cec_w)); - map(0x1000, 0x13ff).r(FUNC(apple2e_state::c400_cec_bank_r)).nopw(); -} - -void apple2e_state::c800bank_map(address_map &map) -{ - map(0x0000, 0x07ff).rw(FUNC(apple2e_state::c800_r), FUNC(apple2e_state::c800_w)); - map(0x0800, 0x0fff).rw(FUNC(apple2e_state::c800_int_r), FUNC(apple2e_state::c800_w)); - map(0x1000, 0x17ff).rw(FUNC(apple2e_state::c800_b2_int_r), FUNC(apple2e_state::c800_w)); - map(0x1800, 0x1fff).r(FUNC(apple2e_state::c800_cec_r)).nopw(); - map(0x2000, 0x27ff).r(FUNC(apple2e_state::c800_cec_bank_r)).nopw(); -} - void apple2e_state::inhbank_map(address_map &map) { map(0x0000, 0x2fff).m(m_lcbank, FUNC(address_map_bank_device::amap8)); @@ -5184,36 +5150,6 @@ void apple2e_state::apple2e(machine_config &config) /* RAM */ RAM(config, m_ram).set_default_size("64K").set_default_value(0x00); - /* 0000 banking */ - ADDRESS_MAP_BANK(config, A2_0000_TAG).set_map(&apple2e_state::r0000bank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x200); - - /* 0200 banking */ - ADDRESS_MAP_BANK(config, A2_0200_TAG).set_map(&apple2e_state::r0200bank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x200); - - /* 0400 banking */ - ADDRESS_MAP_BANK(config, A2_0400_TAG).set_map(&apple2e_state::r0400bank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x400); - - /* 0800 banking */ - ADDRESS_MAP_BANK(config, A2_0800_TAG).set_map(&apple2e_state::r0800bank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x2000); - - /* 2000 banking */ - ADDRESS_MAP_BANK(config, A2_2000_TAG).set_map(&apple2e_state::r2000bank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x2000); - - /* 4000 banking */ - ADDRESS_MAP_BANK(config, A2_4000_TAG).set_map(&apple2e_state::r4000bank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x8000); - - /* C100 banking */ - ADDRESS_MAP_BANK(config, A2_C100_TAG).set_map(&apple2e_state::c100bank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x200); - - /* C300 banking */ - ADDRESS_MAP_BANK(config, A2_C300_TAG).set_map(&apple2e_state::c300bank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x100); - - /* C400 banking */ - ADDRESS_MAP_BANK(config, A2_C400_TAG).set_map(&apple2e_state::c400bank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x400); - - /* C800 banking */ - ADDRESS_MAP_BANK(config, A2_C800_TAG).set_map(&apple2e_state::c800bank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x800); - /* built-in language card emulation */ ADDRESS_MAP_BANK(config, A2_LCBANK_TAG).set_map(&apple2e_state::lcbank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x3000); @@ -5706,9 +5642,6 @@ void apple2e_state::ace2200(machine_config &config) m_screen->set_screen_update(FUNC(apple2e_state::screen_update_tt)); - config.device_remove(A2_4000_TAG); - ADDRESS_MAP_BANK(config, A2_4000_TAG).set_map(&apple2e_state::r4000bank_ace2200_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x8000); - // The Ace 2000 series has 3 physical slots, 2, 4/7, and 5. // 4/7 can be slot 4 or 7 via a jumper; we fix it to slot 7 here // because that's most useful (for e.g. cffa202).