From 0e793af92a893764900b547a2d0c928cd11f5162 Mon Sep 17 00:00:00 2001 From: Patrick Mackinlay Date: Tue, 24 Jan 2023 15:22:00 +0700 Subject: labtam: various improvements * added 8086 CPU card variant of VDU/COMM card * added additional firmware versions for z80sbc and ns32k cards --- src/devices/bus/multibus/labtam_3232.cpp | 15 ++- src/devices/bus/multibus/labtam_vducom.cpp | 145 +++++++++++++++++++++-------- src/devices/bus/multibus/labtam_vducom.h | 41 +++++--- src/devices/bus/multibus/labtam_z80sbc.cpp | 9 +- src/mame/ausnz/labtam.cpp | 9 +- 5 files changed, 160 insertions(+), 59 deletions(-) diff --git a/src/devices/bus/multibus/labtam_3232.cpp b/src/devices/bus/multibus/labtam_3232.cpp index 35181ea4a78..11eab51a107 100644 --- a/src/devices/bus/multibus/labtam_3232.cpp +++ b/src/devices/bus/multibus/labtam_3232.cpp @@ -34,10 +34,17 @@ labtam_3232_device::labtam_3232_device(machine_config const &mconfig, char const ROM_START(labtam_3232) ROM_REGION32_LE(0x10000, "eprom", 0) - ROM_LOAD32_BYTE("sash_0__g87.bin", 0x0000, 0x4000, CRC(31132de0) SHA1(39f7c1f146346a53c253284ba3437b5f9217f439)) - ROM_LOAD32_BYTE("sash_1__g87.bin", 0x0001, 0x4000, CRC(09b4e8ba) SHA1(b722386fc6e4a634472d5a0501eb41e12d89f7dc)) - ROM_LOAD32_BYTE("sash_2__g87.bin", 0x0002, 0x4000, CRC(d76457b0) SHA1(efd18e0347b0181a0d2aa80098bd4fdb60a82788)) - ROM_LOAD32_BYTE("sash_3__g87.bin", 0x0003, 0x4000, CRC(7817d1b8) SHA1(032df47e1ba34653b5837f68eefa3ecaac17a483)) + ROM_SYSTEM_BIOS(0, "i87", "Version I87 87/09/28") + ROMX_LOAD("sash_0__i87.rom0", 0x0000, 0x4000, CRC(52d760bb) SHA1(bb5d281cc27799827433c6d30570db84e3dfd5b0), ROM_SKIP(3) | ROM_BIOS(0)) + ROMX_LOAD("sash_1__i87.rom1", 0x0001, 0x4000, CRC(a6e8bf4b) SHA1(c4435d1b0692040b0e515dd1944784c1efd853dc), ROM_SKIP(3) | ROM_BIOS(0)) + ROMX_LOAD("sash_2__i87.rom2", 0x0002, 0x4000, CRC(5346c475) SHA1(3651b6afc9712efd181221c56dd3d2f954d226cd), ROM_SKIP(3) | ROM_BIOS(0)) + ROMX_LOAD("sash_3__i87.rom3", 0x0003, 0x4000, CRC(ec3c0c5b) SHA1(0959d9257e94caa2f18aeb00f55824426084b8c8), ROM_SKIP(3) | ROM_BIOS(0)) + + ROM_SYSTEM_BIOS(1, "g87", "Version G87 87/07/09") + ROMX_LOAD("sash_0__g87.rom0", 0x0000, 0x4000, CRC(31132de0) SHA1(39f7c1f146346a53c253284ba3437b5f9217f439), ROM_SKIP(3) | ROM_BIOS(1)) + ROMX_LOAD("sash_1__g87.rom1", 0x0001, 0x4000, CRC(09b4e8ba) SHA1(b722386fc6e4a634472d5a0501eb41e12d89f7dc), ROM_SKIP(3) | ROM_BIOS(1)) + ROMX_LOAD("sash_2__g87.rom2", 0x0002, 0x4000, CRC(d76457b0) SHA1(efd18e0347b0181a0d2aa80098bd4fdb60a82788), ROM_SKIP(3) | ROM_BIOS(1)) + ROMX_LOAD("sash_3__g87.rom3", 0x0003, 0x4000, CRC(7817d1b8) SHA1(032df47e1ba34653b5837f68eefa3ecaac17a483), ROM_SKIP(3) | ROM_BIOS(1)) ROM_END static INPUT_PORTS_START(labtam_3232) diff --git a/src/devices/bus/multibus/labtam_vducom.cpp b/src/devices/bus/multibus/labtam_vducom.cpp index 3ea3647ad5b..3c7fd137a30 100644 --- a/src/devices/bus/multibus/labtam_vducom.cpp +++ b/src/devices/bus/multibus/labtam_vducom.cpp @@ -28,10 +28,11 @@ enum u7_mask : u8 U7_BLANK = 0x80, // disable blanked screen }; -DEFINE_DEVICE_TYPE(LABTAM_VDUCOM, labtam_vducom_device, "labtam_vducom", "Labtam 8086 VDU COMM") +DEFINE_DEVICE_TYPE(LABTAM_8086CPU, labtam_8086cpu_device, "labtam_8086cpu", "Labtam 8086 CPU") +DEFINE_DEVICE_TYPE(LABTAM_VDUCOM, labtam_vducom_device, "labtam_vducom", "Labtam 8086 VDU COMM") -labtam_vducom_device::labtam_vducom_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) - : device_t(mconfig, LABTAM_VDUCOM, tag, owner, clock) +labtam_vducom_device_base::labtam_vducom_device_base(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, u32 clock) + : device_t(mconfig, type, tag, owner, clock) , device_multibus_interface(mconfig, *this) , m_cpu(*this, "cpu") , m_pic(*this, "pic") @@ -48,12 +49,41 @@ labtam_vducom_device::labtam_vducom_device(machine_config const &mconfig, char c { } +labtam_8086cpu_device::labtam_8086cpu_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) + : labtam_vducom_device_base(mconfig, LABTAM_8086CPU, tag, owner, clock) +{ +} + +labtam_vducom_device::labtam_vducom_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) + : labtam_vducom_device_base(mconfig, LABTAM_VDUCOM, tag, owner, clock) +{ +} + +ROM_START(labtam_8086cpu) + ROM_REGION16_LE(0x10000, "eprom", 0) + + ROM_SYSTEM_BIOS(0, "v0", "v0") + ROMX_LOAD("slave_1__0_v0.u34", 0xc000, 0x2000, CRC(f5007dd0) SHA1(2362852d88bf32ce605ad394244dc6e21a6df5c6), ROM_SKIP(1) | ROM_BIOS(0)) + ROMX_LOAD("slave_1__1_v0.u44", 0xc001, 0x2000, CRC(2de2e667) SHA1(c575d5d53f2fe99569af002c636754dedca09e3b), ROM_SKIP(1) | ROM_BIOS(0)) + + ROM_SYSTEM_BIOS(1, "v1", "v1") + ROMX_LOAD("slave_1__0_v1.u34", 0xc000, 0x2000, CRC(ba6311aa) SHA1(403fdb8834ec7e3ff7cae3e1ad93238a8f4d1ed6), ROM_SKIP(1) | ROM_BIOS(1)) + ROMX_LOAD("slave_1__1_v1.u44", 0xc001, 0x2000, CRC(2de2e667) SHA1(c575d5d53f2fe99569af002c636754dedca09e3b), ROM_SKIP(1) | ROM_BIOS(1)) + + // FIXME: this version not recognized as 8086 card by z80sbc? + ROM_SYSTEM_BIOS(2, "v2", "v2") + ROMX_LOAD("slave_1__0_v2.u34", 0xc000, 0x2000, CRC(f56d4843) SHA1(53a1a9c6f0816511ff651efada09b39126866d37), ROM_SKIP(1) | ROM_BIOS(2)) + ROMX_LOAD("slave_1__1_v2.u44", 0xc001, 0x2000, CRC(a6fdbc6f) SHA1(3716142eed6bc68e1a85330c2dfc1d1148074087), ROM_SKIP(1) | ROM_BIOS(2)) +ROM_END + ROM_START(labtam_vducom) ROM_REGION16_LE(0x10000, "eprom", 0) - ROM_LOAD16_BYTE("vdu_com__k84.1-0.u26", 0x0000, 0x4000, CRC(ac27697e) SHA1(eeec9cff06181dffe95a37aefb2b3789a0959b4f)) - ROM_LOAD16_BYTE("vdu_com__k84.1-1.u39", 0x0001, 0x4000, CRC(8b3e567d) SHA1(5ce821004155d02b87ed7b6d14989a9fffc38c6a)) - ROM_LOAD16_BYTE("vdu_com__k84.1-2.u34", 0x8000, 0x4000, CRC(70a2c615) SHA1(67d265be3101dfe33fa705447e1394410e55f518)) - ROM_LOAD16_BYTE("vdu_com__k84.1-3.u44", 0x8001, 0x4000, CRC(dcd7ce03) SHA1(727e5fa72d6088ddf9e8613656d713754d628538)) + ROM_SYSTEM_BIOS(0, "k84", "Version K84") + + ROMX_LOAD("vdu_com__k84.1-0.u26", 0x0000, 0x4000, CRC(ac27697e) SHA1(eeec9cff06181dffe95a37aefb2b3789a0959b4f), ROM_SKIP(1) | ROM_BIOS(0)) + ROMX_LOAD("vdu_com__k84.1-1.u39", 0x0001, 0x4000, CRC(8b3e567d) SHA1(5ce821004155d02b87ed7b6d14989a9fffc38c6a), ROM_SKIP(1) | ROM_BIOS(0)) + ROMX_LOAD("vdu_com__k84.1-2.u34", 0x8000, 0x4000, CRC(70a2c615) SHA1(67d265be3101dfe33fa705447e1394410e55f518), ROM_SKIP(1) | ROM_BIOS(0)) + ROMX_LOAD("vdu_com__k84.1-3.u44", 0x8001, 0x4000, CRC(dcd7ce03) SHA1(727e5fa72d6088ddf9e8613656d713754d628538), ROM_SKIP(1) | ROM_BIOS(0)) ROM_END static INPUT_PORTS_START(labtam_vducom) @@ -79,6 +109,29 @@ static INPUT_PORTS_START(labtam_vducom) PORT_DIPUNUSED_DIPLOC(0xa0, 0xa0, "E4:6,8") INPUT_PORTS_END +static INPUT_PORTS_START(labtam_8086cpu) + PORT_START("E4") + PORT_DIPNAME(0x01, 0x01, "Keyboard Select 1") PORT_DIPLOCATION("E4:1") + PORT_DIPSETTING(0x00, DEF_STR(Yes)) + PORT_DIPSETTING(0x01, DEF_STR(No)) + PORT_DIPNAME(0x02, 0x00, "Disable Graphics") PORT_DIPLOCATION("E4:2") + PORT_DIPSETTING(0x00, DEF_STR(Yes)) + PORT_DIPSETTING(0x02, DEF_STR(No)) + PORT_DIPNAME(0x04, 0x04, "Keyboard Select 0") PORT_DIPLOCATION("E4:3") + PORT_DIPSETTING(0x00, DEF_STR(Yes)) + PORT_DIPSETTING(0x04, DEF_STR(No)) + PORT_DIPNAME(0x08, 0x08, "Killer Enable") PORT_DIPLOCATION("E4:4") + PORT_DIPSETTING(0x00, DEF_STR(Yes)) + PORT_DIPSETTING(0x08, DEF_STR(No)) + PORT_DIPNAME(0x10, 0x10, "Init NVRAM") PORT_DIPLOCATION("E4:5") + PORT_DIPSETTING(0x00, DEF_STR(Yes)) + PORT_DIPSETTING(0x10, DEF_STR(No)) + PORT_DIPNAME(0x40, 0x40, "Terminal Mode") PORT_DIPLOCATION("E4:7") + PORT_DIPSETTING(0x00, DEF_STR(Yes)) + PORT_DIPSETTING(0x40, DEF_STR(No)) + PORT_DIPUNUSED_DIPLOC(0xa0, 0xa0, "E4:6,8") +INPUT_PORTS_END + static const gfx_layout vducom_char_set_1 = { 8, 12, 64, 1, @@ -107,23 +160,33 @@ const tiny_rom_entry *labtam_vducom_device::device_rom_region() const return ROM_NAME(labtam_vducom); } +const tiny_rom_entry *labtam_8086cpu_device::device_rom_region() const +{ + return ROM_NAME(labtam_8086cpu); +} + ioport_constructor labtam_vducom_device::device_input_ports() const { return INPUT_PORTS_NAME(labtam_vducom); } -void labtam_vducom_device::device_resolve_objects() +ioport_constructor labtam_8086cpu_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(labtam_8086cpu); +} + +void labtam_vducom_device_base::device_resolve_objects() { m_bus->int_callback<3>().set(m_pic, FUNC(pic8259_device::ir6_w)); } -void labtam_vducom_device::device_start() +void labtam_vducom_device_base::device_start() { save_item(NAME(m_start)); save_item(NAME(m_u7)); } -void labtam_vducom_device::device_reset() +void labtam_vducom_device_base::device_reset() { if (!m_installed) m_installed = true; @@ -137,11 +200,11 @@ void labtam_vducom_device::device_reset() m_mbus.select(0); } -void labtam_vducom_device::device_add_mconfig(machine_config &config) +void labtam_vducom_device_base::device_add_mconfig(machine_config &config) { I8086(config, m_cpu, 16_MHz_XTAL / 2); - m_cpu->set_addrmap(AS_PROGRAM, &labtam_vducom_device::cpu_mem); - m_cpu->set_addrmap(AS_IO, &labtam_vducom_device::cpu_pio); + m_cpu->set_addrmap(AS_PROGRAM, &labtam_vducom_device_base::cpu_mem); + m_cpu->set_addrmap(AS_IO, &labtam_vducom_device_base::cpu_pio); m_cpu->set_irq_acknowledge_callback(m_pic, FUNC(pic8259_device::inta_cb)); AM9513(config, m_ctc[0], 4'000'000); @@ -169,24 +232,27 @@ void labtam_vducom_device::device_add_mconfig(machine_config &config) X2212(config, m_nvram[0]); X2212(config, m_nvram[1]); - MC6845(config, m_crtc, 1'000'000); - m_crtc->set_show_border_area(false); - m_crtc->set_hpixels_per_column(16); - m_crtc->set_update_row_callback(FUNC(labtam_vducom_device::update_row)); - m_crtc->set_screen(m_screen); - m_crtc->out_vsync_callback().set(m_pic, FUNC(pic8259_device::ir0_w)); + if (type() == LABTAM_VDUCOM) + { + MC6845(config, m_crtc, 1'000'000); + m_crtc->set_show_border_area(false); + m_crtc->set_hpixels_per_column(16); + m_crtc->out_vsync_callback().set(m_pic, FUNC(pic8259_device::ir0_w)); - PALETTE(config, m_palette, FUNC(labtam_vducom_device::palette_init), 4); + m_crtc->set_update_row_callback(FUNC(labtam_vducom_device_base::update_row)); + m_crtc->set_screen(m_screen); + PALETTE(config, m_palette, FUNC(labtam_vducom_device_base::palette_init), 4); - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(1'000'000, 62*16, 2*16, 52*16, 78*4, 3*4, 75*4); - m_screen->set_screen_update(m_crtc, FUNC(mc6845_device::screen_update)); + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(1'000'000, 62 * 16, 2 * 16, 52 * 16, 78 * 4, 3 * 4, 75 * 4); + m_screen->set_screen_update(m_crtc, FUNC(mc6845_device::screen_update)); - // gfxdecode is only to show the font data in the tile viewer - GFXDECODE(config, "gfx", m_palette, labtam_vducom); + // gfxdecode is only to show the font data in the tile viewer + GFXDECODE(config, "gfx", m_palette, labtam_vducom); + } } -void labtam_vducom_device::cpu_mem(address_map &map) +void labtam_vducom_device_base::cpu_mem(address_map &map) { map(0x00000, 0x0ffff).ram().share("ram1"); map(0x10000, 0x1ffff).ram().share("ram0"); @@ -194,29 +260,32 @@ void labtam_vducom_device::cpu_mem(address_map &map) map(0x80000, 0xfffff).view(m_mbus); m_mbus[0](0x80000, 0x8ffff).rom().region("eprom", 0).mirror(0x70000); - m_mbus[1](0x80000, 0xfffff).rw(FUNC(labtam_vducom_device::bus_mem_r), FUNC(labtam_vducom_device::bus_mem_w)); + m_mbus[1](0x80000, 0xfffff).rw(FUNC(labtam_vducom_device_base::bus_mem_r), FUNC(labtam_vducom_device_base::bus_mem_w)); } -void labtam_vducom_device::cpu_pio(address_map &map) +void labtam_vducom_device_base::cpu_pio(address_map &map) { - map(0x0000, 0x7fff).rw(FUNC(labtam_vducom_device::bus_pio_r), FUNC(labtam_vducom_device::bus_pio_w)); + map(0x0000, 0x7fff).rw(FUNC(labtam_vducom_device_base::bus_pio_r), FUNC(labtam_vducom_device_base::bus_pio_w)); - map(0xe000, 0xe000).rw(m_crtc, FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w)); - map(0xe002, 0xe002).rw(m_crtc, FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w)); + if (type() == LABTAM_VDUCOM) + { + map(0xe000, 0xe000).rw(m_crtc, FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w)); + map(0xe002, 0xe002).rw(m_crtc, FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w)); + } map(0xe400, 0xe403).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff); map(0xe600, 0xe607).rw(m_com[0], FUNC(upd7201_device::ba_cd_r), FUNC(upd7201_device::ba_cd_w)).umask16(0x00ff); map(0xe800, 0xe807).rw(m_com[1], FUNC(upd7201_device::ba_cd_r), FUNC(upd7201_device::ba_cd_w)).umask16(0x00ff); map(0xea00, 0xea03).rw(m_ctc[0], FUNC(am9513_device::read8), FUNC(am9513_device::write8)).umask16(0x00ff); map(0xec00, 0xec03).rw(m_ctc[1], FUNC(am9513_device::read8), FUNC(am9513_device::write8)).umask16(0x00ff); - map(0xee00, 0xefff).rw(FUNC(labtam_vducom_device::nvram_r), FUNC(labtam_vducom_device::nvram_w)).umask16(0x00ff); + map(0xee00, 0xefff).rw(FUNC(labtam_vducom_device_base::nvram_r), FUNC(labtam_vducom_device_base::nvram_w)).umask16(0x00ff); - map(0xf000, 0xf00f).rw(FUNC(labtam_vducom_device::u15_r), FUNC(labtam_vducom_device::u7_w)).umask16(0x00ff); + map(0xf000, 0xf00f).rw(FUNC(labtam_vducom_device_base::u15_r), FUNC(labtam_vducom_device_base::u7_w)).umask16(0x00ff); map(0xf200, 0xf200).lw8([this](u8 data) { m_start = (m_start & 0xff00) | u16(data) << 0; }, "start_lo"); map(0xf400, 0xf400).lw8([this](u8 data) { m_start = (m_start & 0x00ff) | u16(data) << 8; }, "start_hi"); map(0xfe00, 0xfe00).lw8([this](u8 data) { m_nvram[0]->store(1); m_nvram[1]->store(1); }, "store_array"); } -void labtam_vducom_device::palette_init(palette_device &palette) +void labtam_vducom_device_base::palette_init(palette_device &palette) { // 0=black, 1=dim, 2=normal, 3=bold @@ -228,7 +297,7 @@ void labtam_vducom_device::palette_init(palette_device &palette) // non-interlace: two planes 800x300, each 32k, 2bpp -> 4 levels (black, dim, normal, bold) // interlace: one plane 800x600, 64k, (black, normal) -MC6845_UPDATE_ROW(labtam_vducom_device::update_row) +MC6845_UPDATE_ROW(labtam_vducom_device_base::update_row) { required_shared_ptr const ram = m_ram[BIT(m_u7, 2)]; offs_t const offset = (m_start >> 1) + ma * 4 + ra * 50; @@ -249,7 +318,7 @@ MC6845_UPDATE_ROW(labtam_vducom_device::update_row) } } -void labtam_vducom_device::u7_w(offs_t offset, u8 data) +void labtam_vducom_device_base::u7_w(offs_t offset, u8 data) { LOG("u7_w offset %d data %d (%s)\n", offset, data, machine().describe_context()); @@ -261,14 +330,14 @@ void labtam_vducom_device::u7_w(offs_t offset, u8 data) m_mbus.select(BIT(m_u7, 0)); } -void labtam_vducom_device::bus_mem_w(offs_t offset, u16 data, u16 mem_mask) +void labtam_vducom_device_base::bus_mem_w(offs_t offset, u16 data, u16 mem_mask) { offs_t const address = (BIT(m_u7, 1) ? 0x80000 : 0) | (offset << 1); m_bus->space(AS_PROGRAM).write_word(address, data, mem_mask); } -u16 labtam_vducom_device::bus_mem_r(offs_t offset, u16 mem_mask) +u16 labtam_vducom_device_base::bus_mem_r(offs_t offset, u16 mem_mask) { offs_t const address = (BIT(m_u7, 1) ? 0x80000 : 0) | (offset << 1); diff --git a/src/devices/bus/multibus/labtam_vducom.h b/src/devices/bus/multibus/labtam_vducom.h index 9db27d05fdd..a92b1a94df1 100644 --- a/src/devices/bus/multibus/labtam_vducom.h +++ b/src/devices/bus/multibus/labtam_vducom.h @@ -21,18 +21,14 @@ #include "screen.h" -class labtam_vducom_device +class labtam_vducom_device_base : public device_t , public device_multibus_interface { -public: - labtam_vducom_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); - protected: - // device_t overrides - virtual const tiny_rom_entry *device_rom_region() const override; + labtam_vducom_device_base(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, u32 clock); + virtual void device_add_mconfig(machine_config &config) override; - virtual ioport_constructor device_input_ports() const override; virtual void device_resolve_objects() override; virtual void device_start() override; virtual void device_reset() override; @@ -60,9 +56,9 @@ private: required_device_array m_ctc; required_device_array m_com; required_device_array m_nvram; - required_device m_crtc; - required_device m_palette; - required_device m_screen; + optional_device m_crtc; + optional_device m_palette; + optional_device m_screen; required_shared_ptr_array m_ram; required_ioport m_e4; @@ -74,6 +70,29 @@ private: bool m_installed; }; -DECLARE_DEVICE_TYPE(LABTAM_VDUCOM, labtam_vducom_device) +class labtam_8086cpu_device : public labtam_vducom_device_base +{ +public: + labtam_8086cpu_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); + +protected: + virtual ioport_constructor device_input_ports() const override; + virtual const tiny_rom_entry *device_rom_region() const override; +}; + +class labtam_vducom_device : public labtam_vducom_device_base +{ +public: + labtam_vducom_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); + +protected: + virtual ioport_constructor device_input_ports() const override; + virtual const tiny_rom_entry *device_rom_region() const override; + +private: +}; + +DECLARE_DEVICE_TYPE(LABTAM_8086CPU, labtam_8086cpu_device) +DECLARE_DEVICE_TYPE(LABTAM_VDUCOM, labtam_vducom_device) #endif // MAME_BUS_MULTIBUS_LABTAM_VDUCOM_H diff --git a/src/devices/bus/multibus/labtam_z80sbc.cpp b/src/devices/bus/multibus/labtam_z80sbc.cpp index 013add4f7e8..fb1de0badeb 100644 --- a/src/devices/bus/multibus/labtam_z80sbc.cpp +++ b/src/devices/bus/multibus/labtam_z80sbc.cpp @@ -88,11 +88,16 @@ labtam_z80sbc_device::labtam_z80sbc_device(machine_config const &mconfig, char c } ROM_START(labtam_z80sbc) + ROM_SYSTEM_BIOS(0, "c85", "Version C85") + ROM_SYSTEM_BIOS(1, "a85", "Version A85") + ROM_REGION(0x2000, "eprom0", 0) - ROM_LOAD("z80_boot__a85_0.u59", 0x0000, 0x2000, CRC(4453c938) SHA1(b04987a07ff7e21f7eb354162ad14b59d17096dd)) + ROMX_LOAD("z80_boot__c85_0.u59", 0x0000, 0x2000, CRC(472b39ad) SHA1(689c194dee29f895fb4f3e901adab3267e0e2823), ROM_BIOS(0)) + ROMX_LOAD("z80_boot__a85_0.u59", 0x0000, 0x2000, CRC(4453c938) SHA1(b04987a07ff7e21f7eb354162ad14b59d17096dd), ROM_BIOS(1)) ROM_REGION(0x2000, "eprom1", 0) - ROM_LOAD("z80_boot__a85_1.u53", 0x0000, 0x2000, CRC(b7d489ea) SHA1(5bd6f3dd1c1f6f3e07706293bfc46a9bfc43d1f2)) + ROMX_LOAD("z80_boot__c85_1.u53", 0x0000, 0x2000, CRC(8cb2374d) SHA1(20f6ec9ba9c8fb453f6497ffa0fb1dc3611e7d7f), ROM_BIOS(0)) + ROMX_LOAD("z80_boot__a85_1.u53", 0x0000, 0x2000, CRC(b7d489ea) SHA1(5bd6f3dd1c1f6f3e07706293bfc46a9bfc43d1f2), ROM_BIOS(1)) ROM_END static INPUT_PORTS_START(labtam_z80sbc) diff --git a/src/mame/ausnz/labtam.cpp b/src/mame/ausnz/labtam.cpp index cfcee9809f1..ac89c8bf11c 100644 --- a/src/mame/ausnz/labtam.cpp +++ b/src/mame/ausnz/labtam.cpp @@ -88,9 +88,10 @@ void labtam_state::machine_reset() static void labtam_cards(device_slot_interface &device) { - device.option_add("labtam_3232", LABTAM_3232); - device.option_add("labtam_vducom", LABTAM_VDUCOM); - device.option_add("labtam_z80sbc", LABTAM_Z80SBC); + device.option_add("labtam_3232", LABTAM_3232); + device.option_add("labtam_8086cpu", LABTAM_8086CPU); + device.option_add("labtam_vducom", LABTAM_VDUCOM); + device.option_add("labtam_z80sbc", LABTAM_Z80SBC); } void labtam_state::labtam(machine_config &config) @@ -100,7 +101,7 @@ void labtam_state::labtam(machine_config &config) MULTIBUS_SLOT(config, "slot:0", m_bus, labtam_cards, nullptr, false); MULTIBUS_SLOT(config, "slot:1", m_bus, labtam_cards, nullptr, false); MULTIBUS_SLOT(config, "slot:2", m_bus, labtam_cards, nullptr, false); - MULTIBUS_SLOT(config, "slot:3", m_bus, labtam_cards, nullptr, false); + MULTIBUS_SLOT(config, "slot:3", m_bus, labtam_cards, "labtam_8086cpu", false); MULTIBUS_SLOT(config, "slot:4", m_bus, labtam_cards, "labtam_vducom", false); MULTIBUS_SLOT(config, "slot:5", m_bus, labtam_cards, "labtam_z80sbc", false); } -- cgit v1.2.3