apple2e: change most bankdev usage to memory views. [R. Belmont]

This commit is contained in:
arbee 2021-12-05 23:00:49 -05:00
parent 2d140f79c5
commit d8e1b9c6f9

View File

@ -330,17 +330,17 @@ public:
required_ioport m_sysconfig;
required_device<speaker_sound_device> m_speaker;
optional_device<cassette_image_device> m_cassette;
required_device<address_map_bank_device> m_upperbank;
required_device<address_map_bank_device> m_0000bank;
required_device<address_map_bank_device> m_0200bank;
required_device<address_map_bank_device> m_0400bank;
required_device<address_map_bank_device> m_0800bank;
required_device<address_map_bank_device> m_2000bank;
required_device<address_map_bank_device> m_4000bank;
required_device<address_map_bank_device> m_c100bank;
required_device<address_map_bank_device> m_c300bank;
required_device<address_map_bank_device> m_c400bank;
required_device<address_map_bank_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<address_map_bank_device> m_lcbank;
optional_device<mos6551_device> m_acia1, m_acia2;
optional_device<applefdc_base_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).