summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/bbc/tube/tube_zep100.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/bbc/tube/tube_zep100.cpp')
-rw-r--r--src/devices/bus/bbc/tube/tube_zep100.cpp50
1 files changed, 29 insertions, 21 deletions
diff --git a/src/devices/bus/bbc/tube/tube_zep100.cpp b/src/devices/bus/bbc/tube/tube_zep100.cpp
index e7f223a992f..6ec898bb705 100644
--- a/src/devices/bus/bbc/tube/tube_zep100.cpp
+++ b/src/devices/bus/bbc/tube/tube_zep100.cpp
@@ -45,12 +45,20 @@ void bbc_tube_zep100_device::tube_zep100_io(address_map &map)
//-------------------------------------------------
ROM_START( tube_zep100 )
+ ROM_REGION(0x4000, "exp_rom", 0)
+ ROM_DEFAULT_BIOS("mcp120")
+ ROM_SYSTEM_BIOS(0, "mcp120", "MCP v1.20 (CBL)") // 1985
+ ROMX_LOAD("mcp120cbl.rom", 0x0000, 0x4000, CRC(851d0879) SHA1(2e54ef15692ba7dd9fcfd1ef0d660464a772b156), ROM_BIOS(0))
+ ROM_SYSTEM_BIOS(1, "mcp041", "MCP v0.41 (CBL)") // 1983
+ ROMX_LOAD("mcp041cbl.rom", 0x0000, 0x4000, CRC(b36f07f4) SHA1(bd53f09bf73357845a6f97df1ee9e5aea5cdca90), ROM_BIOS(1))
+ ROM_SYSTEM_BIOS(2, "cpn071", "CPN 0.71") // 1982
+ ROMX_LOAD("cpn71.rom", 0x0000, 0x2000, CRC(fcb1bdc8) SHA1(756e22f6d76eb26206765f92c78c7152944102b6), ROM_BIOS(2))
+ ROM_RELOAD( 0x2000, 0x2000)
+
ROM_REGION(0x2000, "rom", 0)
- ROM_DEFAULT_BIOS("cccp102")
- ROM_SYSTEM_BIOS(0, "cccp102", "CCCP 1.02")
ROMX_LOAD("cccp102.rom", 0x0000, 0x2000, CRC(2eb40a21) SHA1(e6ee738e5f2f8556002b79d18caa8ef21f14e08d), ROM_BIOS(0))
- ROM_SYSTEM_BIOS(1, "cccp094", "CCCP 0.94")
ROMX_LOAD("cccp094.rom", 0x0000, 0x2000, CRC(49989bd4) SHA1(62b57c858a3baa4ff943c31f77d331c414772a61), ROM_BIOS(1))
+ ROMX_LOAD("cccp094.rom", 0x0000, 0x2000, CRC(49989bd4) SHA1(62b57c858a3baa4ff943c31f77d331c414772a61), ROM_BIOS(2))
ROM_END
//-------------------------------------------------
@@ -59,11 +67,11 @@ ROM_END
void bbc_tube_zep100_device::device_add_mconfig(machine_config &config)
{
- Z80(config, m_z80, XTAL(4'000'000));
+ Z80(config, m_z80, 4_MHz_XTAL);
m_z80->set_addrmap(AS_PROGRAM, &bbc_tube_zep100_device::tube_zep100_mem);
m_z80->set_addrmap(AS_IO, &bbc_tube_zep100_device::tube_zep100_io);
- VIA6522(config, m_via, XTAL(4'000'000) / 2);
+ VIA6522(config, m_via, 4_MHz_XTAL / 2);
m_via->writepb_handler().set(FUNC(bbc_tube_zep100_device::via_pb_w));
m_via->cb2_handler().set(m_ppi, FUNC(i8255_device::pc2_w));
m_via->ca2_handler().set(m_ppi, FUNC(i8255_device::pc6_w));
@@ -75,12 +83,10 @@ void bbc_tube_zep100_device::device_add_mconfig(machine_config &config)
m_ppi->out_pc_callback().set(FUNC(bbc_tube_zep100_device::ppi_pc_w));
/* internal ram */
- RAM(config, m_ram);
- m_ram->set_default_size("64K");
- m_ram->set_default_value(0x00);
+ RAM(config, m_ram).set_default_size("64K").set_default_value(0x00);
/* software lists */
- SOFTWARE_LIST(config, "flop_ls_torch").set_type("bbc_flop_torch", SOFTWARE_LIST_ORIGINAL_SYSTEM);
+ SOFTWARE_LIST(config, "flop_ls_torch").set_type("bbc_flop_torch", SOFTWARE_LIST_ORIGINAL_SYSTEM).set_filter("Z80");
}
//-------------------------------------------------
@@ -100,16 +106,21 @@ const tiny_rom_entry *bbc_tube_zep100_device::device_rom_region() const
// bbc_tube_zep100_device - constructor
//-------------------------------------------------
+bbc_tube_zep100_device::bbc_tube_zep100_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, type, tag, owner, clock)
+ , device_bbc_tube_interface(mconfig, *this)
+ , m_rom_enabled(true)
+ , m_z80(*this, "z80")
+ , m_via(*this, "via")
+ , m_ppi(*this, "ppi")
+ , m_ram(*this, "ram")
+ , m_rom(*this, "rom")
+ , m_port_b(0)
+{
+}
+
bbc_tube_zep100_device::bbc_tube_zep100_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, BBC_TUBE_ZEP100, tag, owner, clock),
- device_bbc_tube_interface(mconfig, *this),
- m_z80(*this, "z80"),
- m_via(*this, "via"),
- m_ppi(*this, "ppi"),
- m_ram(*this, "ram"),
- m_rom(*this, "rom"),
- m_port_b(0),
- m_rom_enabled(true)
+ : bbc_tube_zep100_device(mconfig, BBC_TUBE_ZEP100, tag, owner, clock)
{
}
@@ -119,7 +130,6 @@ bbc_tube_zep100_device::bbc_tube_zep100_device(const machine_config &mconfig, co
void bbc_tube_zep100_device::device_start()
{
- m_slot = dynamic_cast<bbc_tube_slot_device *>(owner());
}
//-------------------------------------------------
@@ -128,8 +138,6 @@ void bbc_tube_zep100_device::device_start()
void bbc_tube_zep100_device::device_reset()
{
- m_via->reset();
-
m_rom_enabled = true;
}