diff options
-rw-r--r-- | scripts/src/bus.lua | 2 | ||||
-rw-r--r-- | src/devices/bus/bbc/tube/tube.cpp | 4 | ||||
-rw-r--r-- | src/devices/bus/bbc/tube/tube_arm.cpp | 151 | ||||
-rw-r--r-- | src/devices/bus/bbc/tube/tube_arm.h | 61 | ||||
-rw-r--r-- | src/mame/drivers/bbc.cpp | 48 |
5 files changed, 241 insertions, 25 deletions
diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua index 4c329ee49a3..62dcbe0ed8c 100644 --- a/scripts/src/bus.lua +++ b/scripts/src/bus.lua @@ -306,6 +306,8 @@ if (BUSES["BBC_TUBE"]~=null) then MAME_DIR .. "src/devices/bus/bbc/tube/tube_80186.h", MAME_DIR .. "src/devices/bus/bbc/tube/tube_80286.cpp", MAME_DIR .. "src/devices/bus/bbc/tube/tube_80286.h", + MAME_DIR .. "src/devices/bus/bbc/tube/tube_arm.cpp", + MAME_DIR .. "src/devices/bus/bbc/tube/tube_arm.h", MAME_DIR .. "src/devices/bus/bbc/tube/tube_casper.cpp", MAME_DIR .. "src/devices/bus/bbc/tube/tube_casper.h", MAME_DIR .. "src/devices/bus/bbc/tube/tube_z80.cpp", diff --git a/src/devices/bus/bbc/tube/tube.cpp b/src/devices/bus/bbc/tube/tube.cpp index 13bb4430230..ab232a6ce04 100644 --- a/src/devices/bus/bbc/tube/tube.cpp +++ b/src/devices/bus/bbc/tube/tube.cpp @@ -124,7 +124,7 @@ WRITE8_MEMBER(bbc_tube_slot_device::host_w) #include "tube_65c102.h" #include "tube_80186.h" #include "tube_80286.h" -//#include "tube_arm.h" +#include "tube_arm.h" #include "tube_casper.h" //#include "tube_x25.h" #include "tube_z80.h" @@ -140,7 +140,7 @@ SLOT_INTERFACE_START( bbc_extube_devices ) SLOT_INTERFACE("z80", BBC_TUBE_Z80) /* Acorn ANC04 Z80 2nd processor */ // SLOT_INTERFACE("32016", BBC_TUBE_32016) /* Acorn ANC05 32016 2nd processor */ // SLOT_INTERFACE("camb", BBC_TUBE_CAMB) /* Acorn ANC06 Cambridge Co-Processor */ -// SLOT_INTERFACE("arm", BBC_TUBE_ARM) /* Acorn ANC13 ARM Evaluation System */ + SLOT_INTERFACE("arm", BBC_TUBE_ARM) /* Acorn ANC13 ARM Evaluation System */ SLOT_INTERFACE("80286", BBC_TUBE_80286) /* Acorn 80286 2nd Processor */ // SLOT_INTERFACE("a500", BBC_TUBE_A500) /* Acorn A500 2nd Processor */ SLOT_INTERFACE("casper", BBC_TUBE_CASPER) /* Casper 68000 2nd Processor */ diff --git a/src/devices/bus/bbc/tube/tube_arm.cpp b/src/devices/bus/bbc/tube/tube_arm.cpp new file mode 100644 index 00000000000..7243f2989c7 --- /dev/null +++ b/src/devices/bus/bbc/tube/tube_arm.cpp @@ -0,0 +1,151 @@ +// license:BSD-3-Clause +// copyright-holders:Nigel Barnes +/********************************************************************** + + Acorn ANC13 ARM Evaluation System + +**********************************************************************/ + + +#include "emu.h" +#include "tube_arm.h" +#include "softlist_dev.h" + + +//************************************************************************** +// DEVICE DEFINITIONS +//************************************************************************** + +DEFINE_DEVICE_TYPE(BBC_TUBE_ARM, bbc_tube_arm_device, "bbc_tube_arm", "ARM Evaluation System") + + +//------------------------------------------------- +// ADDRESS_MAP( tube_arm_mem ) +//------------------------------------------------- + +static ADDRESS_MAP_START(tube_arm_mem, AS_PROGRAM, 32, bbc_tube_arm_device) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0x0000000, 0x03fffff) AM_READWRITE8(ram_r, ram_w, 0xffffffff) + AM_RANGE(0x1000000, 0x100001f) AM_DEVREADWRITE8("ula", tube_device, parasite_r, parasite_w, 0x000000ff) + AM_RANGE(0x3000000, 0x3003fff) AM_ROM AM_REGION("bootstrap", 0) AM_MIRROR(0xc000) +ADDRESS_MAP_END + +//------------------------------------------------- +// ROM( tube_arm ) +//------------------------------------------------- + +ROM_START( tube_arm ) + ROM_REGION(0x4000, "bootstrap", 0) + ROM_DEFAULT_BIOS("101") + ROM_SYSTEM_BIOS(0, "101", "Executive v1.00 (14th August 1986)") + ROMX_LOAD("ARMeval_101.rom", 0x0000, 0x4000, CRC(cab85473) SHA1(f86bbc4894e62725b8ef22d44e7f44d37c98ac14), ROM_BIOS(1)) + ROM_SYSTEM_BIOS(1, "100", "Executive v1.00 (6th June 1986)") + ROMX_LOAD("ARMeval_100.rom", 0x0000, 0x4000, CRC(ed80462a) SHA1(ba33eaf1a23cfef6fc1b88aa516ca2b3693e69d9), ROM_BIOS(2)) + ROM_SYSTEM_BIOS(2, "005", "Brazil v-.005 (8th August 1986)") + ROMX_LOAD("Brazil_005.rom", 0x0000, 0x4000, CRC(7c27c098) SHA1(abcc71cbc43489e89a87aac64e67b17daef5895a), ROM_BIOS(3)) +ROM_END + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER(bbc_tube_arm_device::device_add_mconfig) + MCFG_CPU_ADD("arm", ARM, XTAL_20MHz / 3) + MCFG_CPU_PROGRAM_MAP(tube_arm_mem) + + MCFG_TUBE_ADD("ula") + MCFG_TUBE_HIRQ_HANDLER(DEVWRITELINE(DEVICE_SELF_OWNER, bbc_tube_slot_device, irq_w)) + MCFG_TUBE_PNMI_HANDLER(INPUTLINE("arm", ARM_FIRQ_LINE)) + MCFG_TUBE_PIRQ_HANDLER(INPUTLINE("arm", ARM_IRQ_LINE)) + + /* internal ram */ + MCFG_RAM_ADD(RAM_TAG) + MCFG_RAM_DEFAULT_SIZE("4M") + MCFG_RAM_DEFAULT_VALUE(0x00) + + /* software lists */ + MCFG_SOFTWARE_LIST_ADD("flop_ls_arm", "bbc_flop_arm") +MACHINE_CONFIG_END + +//------------------------------------------------- +// rom_region - device-specific ROM region +//------------------------------------------------- + +const tiny_rom_entry *bbc_tube_arm_device::device_rom_region() const +{ + return ROM_NAME( tube_arm ); +} + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// bbc_tube_arm_device - constructor +//------------------------------------------------- + +bbc_tube_arm_device::bbc_tube_arm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, BBC_TUBE_ARM, tag, owner, clock), + device_bbc_tube_interface(mconfig, *this), + m_arm(*this, "arm"), + m_ula(*this, "ula"), + m_ram(*this, "ram"), + m_bootstrap(*this, "bootstrap"), + m_rom_select(true) +{ +} + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void bbc_tube_arm_device::device_start() +{ + m_slot = dynamic_cast<bbc_tube_slot_device *>(owner()); +} + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void bbc_tube_arm_device::device_reset() +{ + /* enable the reset vector to be fetched from ROM */ + m_rom_select = true; +} + + +//************************************************************************** +// IMPLEMENTATION +//************************************************************************** + +READ8_MEMBER(bbc_tube_arm_device::host_r) +{ + return m_ula->host_r(space, offset); +} + +WRITE8_MEMBER(bbc_tube_arm_device::host_w) +{ + m_ula->host_w(space, offset, data); +} + + +READ8_MEMBER(bbc_tube_arm_device::ram_r) +{ + uint8_t data; + + if (m_rom_select) + data = m_bootstrap->base()[offset & 0x3fff]; + else + data = m_ram->pointer()[offset]; + + return data; +} + +WRITE8_MEMBER(bbc_tube_arm_device::ram_w) +{ + /* clear ROM select on first write */ + if (!machine().side_effect_disabled()) m_rom_select = false; + + m_ram->pointer()[offset] = data; +} diff --git a/src/devices/bus/bbc/tube/tube_arm.h b/src/devices/bus/bbc/tube/tube_arm.h new file mode 100644 index 00000000000..6f2e43ef43d --- /dev/null +++ b/src/devices/bus/bbc/tube/tube_arm.h @@ -0,0 +1,61 @@ +// license:BSD-3-Clause +// copyright-holders:Nigel Barnes +/********************************************************************** + + Acorn ANC13 ARM Evaluation System + +**********************************************************************/ + + +#ifndef MAME_BUS_BBC_TUBE_ARM_H +#define MAME_BUS_BBC_TUBE_ARM_H + +#include "tube.h" +#include "cpu/arm/arm.h" +#include "machine/ram.h" +#include "machine/tube.h" + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> bbc_tube_arm_device + +class bbc_tube_arm_device : + public device_t, + public device_bbc_tube_interface +{ +public: + // construction/destruction + bbc_tube_arm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + DECLARE_READ8_MEMBER( ram_r ); + DECLARE_WRITE8_MEMBER( ram_w ); + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + + virtual DECLARE_READ8_MEMBER( host_r ) override; + virtual DECLARE_WRITE8_MEMBER( host_w ) override; + +private: + required_device<arm_cpu_device> m_arm; + required_device<tube_device> m_ula; + required_device<ram_device> m_ram; + required_memory_region m_bootstrap; + + bool m_rom_select; +}; + + +// device type definition +DECLARE_DEVICE_TYPE(BBC_TUBE_ARM, bbc_tube_arm_device) + + +#endif /* MAME_BUS_BBC_TUBE_ARM_H */ diff --git a/src/mame/drivers/bbc.cpp b/src/mame/drivers/bbc.cpp index 3e8734da8f7..b9def522eb2 100644 --- a/src/mame/drivers/bbc.cpp +++ b/src/mame/drivers/bbc.cpp @@ -225,7 +225,7 @@ static ADDRESS_MAP_START( bbcbp_mem, AS_PROGRAM, 8, bbc_state ) AM_RANGE(0xb000, 0xbfff) AM_READ_BANK("bank6") /* b000-bfff Rest of paged ROM area */ AM_RANGE(0xfe30, 0xfe3f) AM_READWRITE(bbc_fe_r, bbc_page_selectbp_w) /* R: fe30-fe3f NC Not Connected */ /* W: fe30-fe3f 84LS161 Paged ROM selector */ - AM_RANGE(0xfe80, 0xfe83) AM_WRITE(bbc_wd1770_status_w) /* fe80-fe83 1770 FDC Drive control register */ + AM_RANGE(0xfe80, 0xfe83) AM_READWRITE(bbc_fe_r, bbc_wd1770_status_w) /* fe80-fe83 1770 FDC Drive control register */ AM_RANGE(0xfe84, 0xfe9f) AM_DEVREADWRITE("wd1770", wd1770_device, read, write) /* fe84-fe9f 1770 FDC Floppy disc controller */ AM_RANGE(0xfee0, 0xfeff) AM_DEVREADWRITE("tube", bbc_tube_slot_device, host_r, host_w) /* fee0-feff Tube ULA Tube system interface */ AM_IMPORT_FROM(bbc_base) @@ -239,7 +239,7 @@ static ADDRESS_MAP_START( bbcbp128_mem, AS_PROGRAM, 8, bbc_state ) AM_RANGE(0xb000, 0xbfff) AM_READ_BANK("bank6") AM_WRITE(bbc_memorybp6_128_w) /* b000-bfff Rest of paged ROM area */ AM_RANGE(0xfe30, 0xfe3f) AM_READWRITE(bbc_fe_r, bbc_page_selectbp_w) /* R: fe30-fe3f NC Not Connected */ /* W: fe30-fe3f 84LS161 Paged ROM selector */ - AM_RANGE(0xfe80, 0xfe83) AM_WRITE(bbc_wd1770_status_w) /* fe80-fe83 1770 FDC Drive control register */ + AM_RANGE(0xfe80, 0xfe83) AM_READWRITE(bbc_fe_r, bbc_wd1770_status_w) /* fe80-fe83 1770 FDC Drive control register */ AM_RANGE(0xfe84, 0xfe9f) AM_DEVREADWRITE("wd1770", wd1770_device, read, write) /* fe84-fe9f 1770 FDC Floppy disc controller */ AM_RANGE(0xfee0, 0xfeff) AM_DEVREADWRITE("tube", bbc_tube_slot_device, host_r, host_w) /* fee0-feff Tube ULA Tube system interface */ AM_IMPORT_FROM(bbc_base) @@ -422,8 +422,13 @@ static INPUT_PORTS_START(bbc_keyboard) /* Keyboard columns 10 -> 12 are reserved for BBC Master */ PORT_START("COL10") + PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_START("COL11") + PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_START("COL12") + PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNUSED) INPUT_PORTS_END @@ -526,7 +531,7 @@ static INPUT_PORTS_START(bbc_dipswitch) PORT_MODIFY("COL6") PORT_DIPNAME(0x01, 0x01, "Boot") PORT_DIPLOCATION("KBD:5") - PORT_DIPSETTING( 0x00, "SHIFT" ) + PORT_DIPSETTING( 0x00, "BREAK" ) PORT_DIPSETTING( 0x01, "SHIFT-BREAK" ) PORT_MODIFY("COL7") @@ -778,7 +783,7 @@ FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_bbc ) FLOPPY_OPUS_DDCPM_FORMAT, FLOPPY_FSD_FORMAT, FLOPPY_PC_FORMAT -FLOPPY_FORMATS_END0 +FLOPPY_FORMATS_END FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_bbcm ) FLOPPY_ACORN_SSD_FORMAT, @@ -788,11 +793,11 @@ FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_bbcm ) FLOPPY_ACORN_DOS_FORMAT, FLOPPY_FSD_FORMAT, FLOPPY_PC_FORMAT -FLOPPY_FORMATS_END0 +FLOPPY_FORMATS_END FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_bbcmc ) FLOPPY_ACORN_ADFS_OLD_FORMAT -FLOPPY_FORMATS_END0 +FLOPPY_FORMATS_END static SLOT_INTERFACE_START( bbc_floppies_525 ) SLOT_INTERFACE("525sssd", FLOPPY_525_SSSD) @@ -1429,7 +1434,7 @@ static MACHINE_CONFIG_START( bbcm ) MCFG_ECONET_SLOT_ADD("econet254", 254, econet_devices, nullptr) /* analogue port */ - MCFG_BBC_ANALOGUE_SLOT_ADD("analogue", bbc_analogue_devices, "acornjoy") + MCFG_BBC_ANALOGUE_SLOT_ADD("analogue", bbc_analogue_devices, nullptr) /* 1mhz bus port */ MCFG_BBC_1MHZBUS_SLOT_ADD("1mhzbus", bbc_1mhzbus_devices, nullptr) @@ -1510,12 +1515,9 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( bbcmarm, bbcm ) /* Add ARM co-processor */ - //MCFG_DEVICE_MODIFY("extube") - //MCFG_SLOT_DEFAULT_OPTION("arm") - //MCFG_SLOT_FIXED(true) - - /* software lists */ - MCFG_SOFTWARE_LIST_ADD("flop_ls_arm", "bbc_flop_arm") + MCFG_DEVICE_MODIFY("extube") + MCFG_SLOT_DEFAULT_OPTION("arm") + MCFG_SLOT_FIXED(true) MACHINE_CONFIG_END @@ -2023,7 +2025,7 @@ ROM_START(bbcm) ROM_SYSTEM_BIOS( 1, "mos350", "Enhanced MOS 3.50" ) ROMX_LOAD("mos350.ic24", 0x20000, 0x20000, CRC(141027b9) SHA1(85211b5bc7c7a269952d2b063b7ec0e1f0196803), ROM_BIOS(2)) ROM_COPY("option", 0x20000, 0x40000, 0x4000) /* Move loaded roms into place */ - ROM_FILL(0x20000, 0x4000, 0xFFFF) + ROM_FILL(0x20000, 0x4000, 0xff) /* 00000 rom 0 SK3 Rear Cartridge bottom 16K */ /* 04000 rom 1 SK3 Rear Cartridge top 16K */ /* 08000 rom 2 SK4 Front Cartridge bottom 16K */ @@ -2064,7 +2066,7 @@ ROM_START(bbcmaiv) ROM_SYSTEM_BIOS( 0, "mos320", "MOS 3.20" ) ROMX_LOAD("mos320.ic24", 0x20000, 0x20000, CRC(0f747ebe) SHA1(eacacbec3892dc4809ad5800e6c8299ff9eb528f), ROM_BIOS(1)) ROM_COPY("option", 0x20000, 0x40000, 0x4000) /* Move loaded roms into place */ - ROM_FILL(0x20000, 0x4000, 0xFFFF) + ROM_FILL(0x20000, 0x4000, 0xff) /* 00000 rom 0 SK3 Rear Cartridge bottom 16K */ /* 04000 rom 1 SK3 Rear Cartridge top 16K */ /* 08000 rom 2 SK4 Front Cartridge bottom 16K */ @@ -2101,7 +2103,7 @@ ROM_START(bbcmet) ROMX_LOAD("mos400.ic24", 0x30000, 0x10000, CRC(81729034) SHA1(d4bc2c7f5e66b5298786138f395908e70c772971), ROM_BIOS(1)) ROM_COPY("option", 0x34000, 0x24000, 0xC000) /* Mirror */ ROM_COPY("option", 0x30000, 0x40000, 0x4000) /* Move loaded roms into place */ - ROM_FILL(0x30000, 0x4000, 0xFFFF) + ROM_FILL(0x30000, 0x4000, 0xff) /* 00000 rom 0 SK3 Rear Cartridge bottom 16K */ /* 04000 rom 1 SK3 Rear Cartridge top 16K */ /* 08000 rom 2 SK4 Front Cartridge bottom 16K */ @@ -2136,7 +2138,7 @@ ROM_START(bbcmarm) ROM_SYSTEM_BIOS( 0, "mos320", "Original MOS 3.20" ) ROMX_LOAD("mos320.ic24", 0x20000, 0x20000, CRC(0f747ebe) SHA1(eacacbec3892dc4809ad5800e6c8299ff9eb528f), ROM_BIOS(1)) ROM_COPY("option", 0x20000, 0x40000, 0x4000) /* Move loaded roms into place */ - ROM_FILL(0x20000, 0x4000, 0xFFFF) + ROM_FILL(0x20000, 0x4000, 0xff) /* 00000 rom 0 SK3 Rear Cartridge bottom 16K */ /* 04000 rom 1 SK3 Rear Cartridge top 16K */ /* 08000 rom 2 SK4 Front Cartridge bottom 16K */ @@ -2174,7 +2176,7 @@ ROM_START(bbcmc) ROM_SYSTEM_BIOS( 1, "mos500", "Original MOS 5.00" ) ROMX_LOAD("mos500.ic49", 0x30000, 0x10000, CRC(f6170023) SHA1(140d002d2d9cd34b47197a2ba823505af2a84633), ROM_BIOS(2)) ROM_COPY("option", 0x30000, 0x40000, 0x4000) /* Move loaded roms into place */ - ROM_FILL(0x30000, 0x4000, 0xFFFF) + ROM_FILL(0x30000, 0x4000, 0xff) /* 00000 rom 0 EXTERNAL */ /* 04000 rom 1 EXTERNAL */ /* 08000 rom 2 IC23 SPARE SOCKET */ @@ -2205,7 +2207,7 @@ ROM_START(bbcmc_ar) ROM_SYSTEM_BIOS( 0, "mos511i", "International MOS 5.11" ) ROMX_LOAD("mos511.ic49", 0x30000, 0x10000, BAD_DUMP CRC(8708803c) SHA1(d2170c8b9b536f3ad84a4a603a7fe712500cc751), ROM_BIOS(1)) /* Merged individual ROM bank dumps */ ROM_COPY("option", 0x30000, 0x40000, 0x4000) /* Move loaded roms into place */ - ROM_FILL(0x30000, 0x4000, 0xFFFF) + ROM_FILL(0x30000, 0x4000, 0xff) /* 00000 rom 0 EXTERNAL */ /* 04000 rom 1 EXTERNAL */ /* 08000 rom 2 IC23 International */ @@ -2238,7 +2240,7 @@ ROM_START(pro128s) ROM_SYSTEM_BIOS(0, "mos510o", "Olivetti MOS 5.10") ROMX_LOAD("mos510o.ic49", 0x30000, 0x10000, CRC(c16858d3) SHA1(ad231ed21a55e493b553703285530d1cacd3de7a), ROM_BIOS(1)) ROM_COPY("option", 0x30000, 0x40000, 0x4000) /* Move loaded roms into place */ - ROM_FILL(0x30000, 0x4000, 0xFFFF) + ROM_FILL(0x30000, 0x4000, 0xff) /* 00000 rom 0 EXTERNAL */ /* 04000 rom 1 EXTERNAL */ /* 08000 rom 2 IC23 SPARE SOCKET */ @@ -2269,7 +2271,7 @@ ROM_START(discmate) ROM_SYSTEM_BIOS(0, "mos320", "Original MOS 3.20") ROMX_LOAD("mos320.ic24", 0x20000, 0x20000, CRC(0f747ebe) SHA1(eacacbec3892dc4809ad5800e6c8299ff9eb528f), ROM_BIOS(1)) ROM_COPY("option", 0x20000, 0x40000, 0x4000) /* Move loaded roms into place */ - ROM_FILL(0x20000, 0x4000, 0xFFFF) + ROM_FILL(0x20000, 0x4000, 0xff) /* 00000 rom 0 SK3 Rear Cartridge bottom 16K */ /* 04000 rom 1 SK3 Rear Cartridge top 16K */ /* 08000 rom 2 SK4 Front Cartridge bottom 16K */ @@ -2306,7 +2308,7 @@ ROM_START(cfa3000) ROM_LOAD("Acorn_MOS_(Tinsley_64K)_Iss10.3.ic24", 0x30000, 0x10000, CRC(4413c3ee) SHA1(76d0462b4dabe2461010fce2341570ff3d606d54)) //ROM_COPY("option", 0x20000, 0x30000, 0x10000) /* Mirror MOS */ ROM_COPY("option", 0x30000, 0x40000, 0x04000) /* Move loaded roms into place */ - ROM_FILL(0x30000, 0x4000, 0xFFFF) + ROM_FILL(0x30000, 0x4000, 0xff) /* 00000 rom 0 SK3 Rear Cartridge bottom 16K */ /* 04000 rom 1 SK3 Rear Cartridge top 16K */ /* 08000 rom 2 SK4 Front Cartridge bottom 16K */ @@ -2358,7 +2360,7 @@ COMP ( 1986, bbcmt, bbcm, 0, bbcmt, bbcm, bbc_state, bbc, COMP ( 1986, bbcmaiv, bbcm, 0, bbcmaiv, bbcm, bbc_state, bbc, "Acorn", "BBC Master AIV", MACHINE_NOT_WORKING) COMP ( 1986, bbcmet, bbcm, 0, bbcmet, bbcm, bbc_state, bbc, "Acorn", "BBC Master ET", MACHINE_IMPERFECT_GRAPHICS) COMP ( 1986, bbcm512, bbcm, 0, bbcm512, bbcm, bbc_state, bbc, "Acorn", "BBC Master 512", MACHINE_NOT_WORKING) -COMP ( 1986, bbcmarm, bbcm, 0, bbcmarm, bbcm, bbc_state, bbc, "Acorn", "ARM Evaluation System", MACHINE_NOT_WORKING) +COMP ( 1986, bbcmarm, bbcm, 0, bbcmarm, bbcm, bbc_state, bbc, "Acorn", "BBC Master (ARM Evaluation)", MACHINE_NOT_WORKING) COMP ( 1986, ltmpm, bbcm, 0, ltmpm, ltmpm, bbc_state, bbc, "Lawrie T&M Ltd.", "LTM Portable (Master)", MACHINE_IMPERFECT_GRAPHICS) COMP ( 1986, bbcmc, 0, bbcm, bbcmc, bbcm, bbc_state, bbc, "Acorn", "BBC Master Compact", MACHINE_IMPERFECT_GRAPHICS) COMP ( 1986, bbcmc_ar, bbcmc, 0, bbcmc, bbcm, bbc_state, bbc, "Acorn", "BBC Master Compact (Arabic)", MACHINE_IMPERFECT_GRAPHICS) |