New systems marked not working

------------------------------
Motorola M8120 [Xolod]
This commit is contained in:
Patrick Mackinlay 2023-06-30 17:06:56 +07:00
parent 6de4706c5c
commit 8512d4655c
5 changed files with 234 additions and 0 deletions

View File

@ -2635,6 +2635,8 @@ end
if (BUSES["VME"]~=null) then
files {
MAME_DIR .. "src/devices/bus/vme/mvme187.cpp",
MAME_DIR .. "src/devices/bus/vme/mvme187.h",
MAME_DIR .. "src/devices/bus/vme/tp881v.cpp",
MAME_DIR .. "src/devices/bus/vme/tp881v.h",
MAME_DIR .. "src/devices/bus/vme/vme.cpp",

View File

@ -0,0 +1,138 @@
// license:BSD-3-Clause
// copyright-holders:Patrick Mackinlay
/*
* Motorola MVME187
*
* Sources:
* - MVME187 RISC Single Board Computer Installation Guide (MVME187IG/D4), Motorola 1997
* - Single Board Computers Programmer's Reference Guide (VMESBCA1/PG1), Motorola 1996
*
* TODO:
* - skeleton only
*
* Skeleton is based on the variant of the MVME187 used in the Motorola M8120 system.
*
* M8120 variant
* - no SRAM
* - two additional serial ports (total 6)
* - no parallel port
* - only two ROM sockets
*/
/*
* M8120 parts
* -----------
* MC88100RC25
* MC88200RC25 x 2
* DS1643-150 8Kx8 NVRAM with RTC (MK48T08 compatible)
* 53C710 SCSI controller
* TL-SCSI285N SCSI voltage regulator
* DS1232S MicroMonitor chip
* KU82596CA-33 Ethernet controller
* D82C501AD Ethernet serial interface
* CL-CD2401-10QC-I x 2 Four-channel multi-protocol communications controller
* MC145406DW x 9 RS-232-D driver/receiver
*
* 51-W6281B01 1444F0011 Motorola custom ASIC (PCCChip2 or VMEChip2?)
* 51-W6280B02 16H7Y0005 Motorola custom ASIC (PCCChip2 or VMEChip2?)
* M5M27C202JK x 2 131072 word x 16 bit CMOS EEPROM
*
* DS1 run LED (green)
* DS2 stat LED (yellow)
* DS3 scsi LED (yellow)
* DS4 fail LED (red)
* abort switch
* reset switch
*
* 50.000MHz
* 20.0000MHz
*
* RAM mezzanine board has MEMC040 or MCECC memory controller ASIC
*/
#include "emu.h"
#include "mvme187.h"
#define VERBOSE 0
#include "logmacro.h"
DEFINE_DEVICE_TYPE(MVME187, mvme187_device, "mvme187", "Motorola MVME187")
mvme187_device::mvme187_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock)
: device_t(mconfig, MVME187, tag, owner, clock)
, device_vme_card_interface(mconfig, *this)
, m_cpu(*this, "cpu")
, m_mmu(*this, "mmu%u", 0U)
, m_rtc(*this, "rtc")
//, m_uart(*this, "uart")
, m_serial(*this, "serial%u", 0U)
//, m_scsi(*this, "scsi")
, m_lan(*this, "lan")
, m_boot(*this, "boot")
{
}
ROM_START(mvme187)
ROM_REGION32_BE(0x8'0000, "eprom", 0)
ROM_SYSTEM_BIOS(0, "m8120", "M8120 Debugger/Diagnostics Release Version 1.2 - 04/14/93")
ROMX_LOAD("6631b05c__03_08_94__8120.u1", 0x0002, 0x4'0000, CRC(d31cc388) SHA1(c2e613ded8d66102d3afa41ca763e997d9829d28), ROM_REVERSE | ROM_GROUPWORD | ROM_SKIP(2) | ROM_BIOS(0)) // M5M27C202JK
ROMX_LOAD("6631b06c__03_08_94__8120.u4", 0x0000, 0x4'0000, CRC(c62923e9) SHA1(62515c6e0dbeca6d18f373ad33e185096f10d2fc), ROM_REVERSE | ROM_GROUPWORD | ROM_SKIP(2) | ROM_BIOS(0)) // M5M27C202JK
ROM_END
static INPUT_PORTS_START(mvme187)
INPUT_PORTS_END
const tiny_rom_entry *mvme187_device::device_rom_region() const
{
return ROM_NAME(mvme187);
}
ioport_constructor mvme187_device::device_input_ports() const
{
return INPUT_PORTS_NAME(mvme187);
}
void mvme187_device::device_start()
{
}
void mvme187_device::device_reset()
{
m_boot.select(0);
}
void mvme187_device::device_add_mconfig(machine_config &config)
{
MC88100(config, m_cpu, 50_MHz_XTAL / 2);
m_cpu->set_addrmap(AS_PROGRAM, &mvme187_device::cpu_mem);
MC88200(config, m_mmu[0], 50_MHz_XTAL / 2, 0x77);
m_mmu[0]->set_mbus(m_cpu, AS_PROGRAM);
m_cpu->set_cmmu_i(m_mmu[0]);
MC88200(config, m_mmu[1], 50_MHz_XTAL / 2, 0x7f);
m_mmu[1]->set_mbus(m_cpu, AS_PROGRAM);
m_cpu->set_cmmu_d(m_mmu[1]);
DS1643(config, m_rtc);
RS232_PORT(config, m_serial[0], default_rs232_devices, "terminal");
RS232_PORT(config, m_serial[1], default_rs232_devices, nullptr);
RS232_PORT(config, m_serial[2], default_rs232_devices, nullptr);
RS232_PORT(config, m_serial[3], default_rs232_devices, nullptr);
RS232_PORT(config, m_serial[4], default_rs232_devices, nullptr);
RS232_PORT(config, m_serial[5], default_rs232_devices, nullptr);
//NCR53C7XX(config, m_scsi, 0);
I82596_BE32(config, m_lan, 20'000'000);
}
void mvme187_device::cpu_mem(address_map &map)
{
map(0x0000'0000, 0x00ff'ffff).view(m_boot);
m_boot[0](0x0000'0000, 0x0007'ffff).rom().region("eprom", 0);
m_boot[1](0x0000'0000, 0x00ff'ffff).ram();
map(0xff80'0000, 0xff87'ffff).rom().region("eprom", 0);
}

View File

@ -0,0 +1,51 @@
// license:BSD-3-Clause
// copyright-holders:Patrick Mackinlay
#ifndef MAME_BUS_VME_MVME187_H
#define MAME_BUS_VME_MVME187_H
#pragma once
#include "cpu/m88000/m88000.h"
#include "machine/53c7xx.h"
//#include "machine/cd2400.h"
#include "machine/i82586.h"
#include "machine/mc88200.h"
#include "machine/timekpr.h"
#include "bus/vme/vme.h"
#include "bus/rs232/rs232.h"
class mvme187_device
: public device_t
, public device_vme_card_interface
{
public:
mvme187_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock);
protected:
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
virtual void device_start() override;
virtual void device_reset() override;
private:
void cpu_mem(address_map &map);
required_device<mc88100_device> m_cpu;
required_device_array<mc88200_device, 2> m_mmu;
required_device<ds1643_device> m_rtc;
//required_device_array<cd2401, 2> m_uart;
required_device_array<rs232_port_device, 6> m_serial;
//required_device<ncr53c7xx_device> m_scsi;
required_device<i82596_device> m_lan;
memory_view m_boot;
};
DECLARE_DEVICE_TYPE(MVME187, mvme187_device)
#endif // MAME_BUS_VME_MVME187_H

View File

@ -31885,6 +31885,9 @@ m6805evs //
705r3prg //
705u3prg //
@source:motorola/m8120.cpp
m8120 // Motorola M8120
@source:motorola/mekd1.cpp
mekd1 // 1975 Motorola Evaluation Kit

View File

@ -0,0 +1,40 @@
// license:BSD-3-Clause
// copyright-holders:Patrick Mackinlay
/*
* Motorola M8120 system.
*/
#include "emu.h"
#include "bus/vme/mvme187.h"
namespace {
class m8120_state : public driver_device
{
public:
m8120_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
{
}
void m8120(machine_config &config);
};
void m8120_state::m8120(machine_config &config)
{
VME(config, "vme", 0);
vme_slot_device &slot(VME_SLOT(config, "vme:0", 0));
slot.set_vme_slot("vme", 0);
slot.option_set("mvme187", MVME187);
}
ROM_START(m8120)
ROM_END
} // anonymous namespace
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP( 1991, m8120, 0, 0, m8120, 0, m8120_state, empty_init, "Motorola", "M8120", MACHINE_IS_SKELETON )