summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/apple2e.c
diff options
context:
space:
mode:
author arbee <rb6502@users.noreply.github.com>2014-11-16 23:43:06 -0500
committer arbee <rb6502@users.noreply.github.com>2014-11-16 23:43:06 -0500
commit4f1c2bb9883b91ab03264d285b0d48f8e1e64a5e (patch)
tree42435dcf573d17f6ec1a3a83eebb4f9980f66574 /src/mess/drivers/apple2e.c
parent678c63e6ff85ff18e0fb1f2f3712948de8c1c989 (diff)
(MESS) apple2: fix up laser128 series to boot again. (nw)
Diffstat (limited to 'src/mess/drivers/apple2e.c')
-rw-r--r--src/mess/drivers/apple2e.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/mess/drivers/apple2e.c b/src/mess/drivers/apple2e.c
index 99951c21670..be7e8693462 100644
--- a/src/mess/drivers/apple2e.c
+++ b/src/mess/drivers/apple2e.c
@@ -476,6 +476,11 @@ READ8_MEMBER(apple2e_state::memexp_r)
{
UINT8 retval = m_exp_regs[offset];
+ if (!m_exp_ram)
+ {
+ return 0xff;
+ }
+
if (offset == 3)
{
if (m_exp_liveptr <= m_exp_addrmask)
@@ -497,6 +502,11 @@ READ8_MEMBER(apple2e_state::memexp_r)
WRITE8_MEMBER(apple2e_state::memexp_w)
{
+ if (!m_exp_ram)
+ {
+ return;
+ }
+
switch (offset & 0xf)
{
case 0:
@@ -2277,6 +2287,26 @@ static ADDRESS_MAP_START( apple2c_memexp_map, AS_PROGRAM, 8, apple2e_state )
AM_RANGE(0xd000, 0xffff) AM_DEVICE(A2_UPPERBANK_TAG, address_map_bank_device, amap8)
ADDRESS_MAP_END
+static ADDRESS_MAP_START( laser128_map, AS_PROGRAM, 8, apple2e_state )
+ AM_RANGE(0x0000, 0x01ff) AM_DEVICE(A2_0000_TAG, address_map_bank_device, amap8)
+ AM_RANGE(0x0200, 0x03ff) AM_DEVICE(A2_0200_TAG, address_map_bank_device, amap8)
+ AM_RANGE(0x0400, 0x07ff) AM_DEVICE(A2_0400_TAG, address_map_bank_device, amap8)
+ AM_RANGE(0x0800, 0x1fff) AM_DEVICE(A2_0800_TAG, address_map_bank_device, amap8)
+ AM_RANGE(0x2000, 0x3fff) AM_DEVICE(A2_2000_TAG, address_map_bank_device, amap8)
+ AM_RANGE(0x4000, 0xbfff) AM_DEVICE(A2_4000_TAG, address_map_bank_device, amap8)
+ AM_RANGE(0xc000, 0xc07f) AM_READWRITE(c000_r, c000_w)
+// AM_RANGE(0xc098, 0xc09b) AM_DEVREADWRITE(IIC_ACIA1_TAG, mos6551_device, read, write)
+// AM_RANGE(0xc0a8, 0xc0ab) AM_DEVREADWRITE(IIC_ACIA2_TAG, mos6551_device, read, write)
+ AM_RANGE(0xc0d0, 0xc0d3) AM_READWRITE(memexp_r, memexp_w)
+ AM_RANGE(0xc0e0, 0xc0ef) AM_DEVREADWRITE(LASER128_UDC_TAG, applefdc_base_device, read, write)
+ AM_RANGE(0xc080, 0xc0ff) AM_READWRITE(c080_r, c080_w)
+ AM_RANGE(0xc100, 0xc2ff) AM_DEVICE(A2_C100_TAG, address_map_bank_device, amap8)
+ AM_RANGE(0xc300, 0xc3ff) AM_DEVICE(A2_C300_TAG, address_map_bank_device, amap8)
+ AM_RANGE(0xc400, 0xc7ff) AM_DEVICE(A2_C400_TAG, address_map_bank_device, amap8)
+ AM_RANGE(0xc800, 0xcfff) AM_DEVICE(A2_C800_TAG, address_map_bank_device, amap8)
+ AM_RANGE(0xd000, 0xffff) AM_DEVICE(A2_UPPERBANK_TAG, address_map_bank_device, amap8)
+ADDRESS_MAP_END
+
static ADDRESS_MAP_START( r0000bank_map, AS_PROGRAM, 8, apple2e_state )
AM_RANGE(0x0000, 0x01ff) AM_READWRITE(ram0000_r, ram0000_w)
AM_RANGE(0x0200, 0x03ff) AM_READWRITE(auxram0000_r, auxram0000_w)
@@ -3299,6 +3329,9 @@ static const floppy_interface floppy_interface =
};
static MACHINE_CONFIG_DERIVED( laser128, apple2c )
+ MCFG_CPU_REPLACE("maincpu", M65C02, 1021800) /* close to actual CPU frequency of 1.020484 MHz */
+ MCFG_CPU_PROGRAM_MAP(laser128_map)
+
MCFG_APPLEFDC_ADD(LASER128_UDC_TAG, fdc_interface)
MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(floppy_interface,15,16)
@@ -3311,9 +3344,16 @@ static MACHINE_CONFIG_DERIVED( laser128, apple2c )
MCFG_A2BUS_SLOT_ADD("a2bus", "sl5", apple2_cards, NULL)
MCFG_A2BUS_ONBOARD_ADD("a2bus", "sl6", A2BUS_LASER128, NULL)
MCFG_A2BUS_SLOT_ADD("a2bus", "sl7", apple2_cards, NULL)
+
+ MCFG_RAM_MODIFY(RAM_TAG)
+ MCFG_RAM_DEFAULT_SIZE("128K")
+ MCFG_RAM_EXTRA_OPTIONS("128K, 384K, 640K, 896K, 1152K")
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( laser128ex2, apple2c )
+ MCFG_CPU_REPLACE("maincpu", M65C02, 1021800) /* close to actual CPU frequency of 1.020484 MHz */
+ MCFG_CPU_PROGRAM_MAP(laser128_map)
+
MCFG_APPLEFDC_ADD(LASER128_UDC_TAG, fdc_interface)
MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(floppy_interface,15,16)
@@ -3326,6 +3366,10 @@ static MACHINE_CONFIG_DERIVED( laser128ex2, apple2c )
MCFG_A2BUS_ONBOARD_ADD("a2bus", "sl5", A2BUS_LASER128, NULL)
MCFG_A2BUS_ONBOARD_ADD("a2bus", "sl6", A2BUS_LASER128, NULL)
MCFG_A2BUS_ONBOARD_ADD("a2bus", "sl7", A2BUS_LASER128, NULL)
+
+ MCFG_RAM_MODIFY(RAM_TAG)
+ MCFG_RAM_DEFAULT_SIZE("128K")
+ MCFG_RAM_EXTRA_OPTIONS("128K, 384K, 640K, 896K, 1152K")
MACHINE_CONFIG_END
/***************************************************************************