mirror of
https://github.com/holub/mame
synced 2025-04-16 21:44:32 +03:00
New machines marked as NOT_WORKING
--- Omron Luna [Plamen Mihaylov]
This commit is contained in:
parent
82f27190f0
commit
24e14ba50a
@ -1345,6 +1345,7 @@ function linkProjects_mame_mess(_target, _subtarget)
|
||||
"olivetti",
|
||||
"olympia",
|
||||
"omnibyte",
|
||||
"omron",
|
||||
"openuni",
|
||||
"orion",
|
||||
"osborne",
|
||||
@ -3279,6 +3280,11 @@ files {
|
||||
MAME_DIR .. "src/mame/includes/ob68k1a.h",
|
||||
}
|
||||
|
||||
createMESSProjects(_target, _subtarget, "omron")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/drivers/luna_68k.cpp",
|
||||
}
|
||||
|
||||
createMESSProjects(_target, _subtarget, "openuni")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/drivers/hektor.cpp",
|
||||
|
151
src/mame/drivers/luna_68k.cpp
Normal file
151
src/mame/drivers/luna_68k.cpp
Normal file
@ -0,0 +1,151 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Patrick Mackinlay
|
||||
|
||||
/*
|
||||
* Omron Luna M68K systems.
|
||||
*
|
||||
* Sources:
|
||||
* - https://wiki.netbsd.org/ports/luna68k/
|
||||
*
|
||||
* TODO:
|
||||
* - skeleton only
|
||||
*/
|
||||
/*
|
||||
* WIP
|
||||
*
|
||||
* This driver is currently based on a VME-based Luna with a 25MHz 68030, which
|
||||
* differs from the systems supported by NetBSD. Boards installed are:
|
||||
*
|
||||
* C25 CPU, FPU, serial, RTC, 68030 + 68882 @ 25MHz?
|
||||
* IOC2 I/O controller (floppy, SCSI, serial), 68000 @ 10MHz?
|
||||
* GPU8 graphics processor + serial, 68020 @ 20MHz? + +68881 @ 16MHz?
|
||||
* DPU8 video/framebuffer, Bt458 @ 108MHz
|
||||
* CMC communications (GPIB, Ethernet, serial), 68020 @ 12.5MHz?
|
||||
*
|
||||
*/
|
||||
#include "emu.h"
|
||||
|
||||
#include "cpu/m68000/m68000.h"
|
||||
|
||||
// memory
|
||||
#include "machine/ram.h"
|
||||
|
||||
// various hardware
|
||||
#include "machine/mc146818.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/am9513.h"
|
||||
|
||||
// busses and connectors
|
||||
#include "bus/rs232/rs232.h"
|
||||
|
||||
#include "debugger.h"
|
||||
|
||||
#define VERBOSE 0
|
||||
#include "logmacro.h"
|
||||
|
||||
namespace {
|
||||
|
||||
class luna_68k_state : public driver_device
|
||||
{
|
||||
public:
|
||||
luna_68k_state(machine_config const &mconfig, device_type type, char const *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_cpu(*this, "cpu")
|
||||
, m_ram(*this, "ram")
|
||||
, m_rtc(*this, "rtc")
|
||||
, m_sio(*this, "sio")
|
||||
, m_stc(*this, "stc")
|
||||
, m_serial(*this, "serial%u", 0U)
|
||||
{
|
||||
}
|
||||
|
||||
void luna(machine_config &config);
|
||||
void init();
|
||||
|
||||
protected:
|
||||
// driver_device overrides
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
// address maps
|
||||
void cpu_map(address_map &map);
|
||||
void cpu_autovector_map(address_map &map);
|
||||
|
||||
// machine config
|
||||
void common(machine_config &config);
|
||||
|
||||
private:
|
||||
// devices
|
||||
required_device<m68030_device> m_cpu;
|
||||
required_device<ram_device> m_ram;
|
||||
required_device<ds1287_device> m_rtc;
|
||||
required_device<upd7201_device> m_sio;
|
||||
required_device<am9513_device> m_stc;
|
||||
required_device_array<rs232_port_device, 2> m_serial;
|
||||
};
|
||||
|
||||
void luna_68k_state::init()
|
||||
{
|
||||
}
|
||||
|
||||
void luna_68k_state::machine_start()
|
||||
{
|
||||
}
|
||||
|
||||
void luna_68k_state::machine_reset()
|
||||
{
|
||||
}
|
||||
|
||||
void luna_68k_state::cpu_map(address_map &map)
|
||||
{
|
||||
map(0x00000000, 0x0001ffff).rom().region("eprom", 0); // TODO: no doubt this is banked out after boot
|
||||
|
||||
map(0x40000000, 0x4001ffff).rom().region("eprom", 0);
|
||||
|
||||
map(0x50000000, 0x50000007).rw(m_sio, FUNC(upd7201_device::cd_ba_r), FUNC(upd7201_device::cd_ba_w)).umask32(0x00ff00ff);
|
||||
map(0x60000000, 0x60000003).rw(m_stc, FUNC(am9513_device::read16), FUNC(am9513_device::write16));
|
||||
|
||||
map(0x70000000, 0x70000003).lr32([]() { return 0x00fe0000; }, "sw3"); // FIXME: possibly CPU board DIP switch?
|
||||
}
|
||||
|
||||
void luna_68k_state::cpu_autovector_map(address_map &map)
|
||||
{
|
||||
map(0xfffffff3, 0xfffffff3).lr8(NAME([]() { return m68000_base_device::autovector(1); }));
|
||||
map(0xfffffff5, 0xfffffff5).lr8(NAME([]() { return m68000_base_device::autovector(2); }));
|
||||
map(0xfffffff7, 0xfffffff7).lr8(NAME([]() { return m68000_base_device::autovector(3); }));
|
||||
map(0xfffffff9, 0xfffffff9).lr8(NAME([]() { return m68000_base_device::autovector(4); }));
|
||||
map(0xfffffffb, 0xfffffffb).lr8(NAME([]() { return m68000_base_device::autovector(5); }));
|
||||
map(0xfffffffd, 0xfffffffd).lr8(NAME([]() { return m68000_base_device::autovector(6); }));
|
||||
map(0xffffffff, 0xffffffff).lr8(NAME([]() { return m68000_base_device::autovector(7); }));
|
||||
}
|
||||
|
||||
void luna_68k_state::luna(machine_config &config)
|
||||
{
|
||||
M68030(config, m_cpu, 50_MHz_XTAL / 2);
|
||||
m_cpu->set_addrmap(AS_PROGRAM, &luna_68k_state::cpu_map);
|
||||
m_cpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &luna_68k_state::cpu_autovector_map);
|
||||
|
||||
// 8 SIMMs for RAM arranged as two groups of 4, soldered
|
||||
RAM(config, m_ram);
|
||||
m_ram->set_default_size("16M");
|
||||
|
||||
DS1287(config, m_rtc, 32'768);
|
||||
|
||||
UPD7201(config, m_sio, 9'830'000); // D9.83B0
|
||||
|
||||
// TODO: one of these is for console, other is keyboard
|
||||
RS232_PORT(config, m_serial[0], default_rs232_devices, nullptr);
|
||||
RS232_PORT(config, m_serial[1], default_rs232_devices, nullptr);
|
||||
|
||||
AM9513(config, m_stc, 9'830'000); // FIXME: clock? sources?
|
||||
}
|
||||
|
||||
ROM_START(luna)
|
||||
ROM_REGION32_BE(0x20000, "eprom", 0)
|
||||
ROM_LOAD16_WORD_SWAP("0283__ac__8117__1.05.ic88", 0x00000, 0x20000, CRC(c46dec54) SHA1(22ef9274f4ef85d446d56cce13a68273dc55f10a))
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
COMP(1989?, luna, 0, 0, luna, 0, luna_68k_state, init, "Omron", "Luna", MACHINE_IS_SKELETON)
|
@ -20120,6 +20120,9 @@ luckybalc // (c) 1996 Sielcon Games
|
||||
luckybald // (c) 1996 Sielcon Games
|
||||
luckybale // (c) 1996 Sielcon Games
|
||||
|
||||
@source:luna_68k.cpp
|
||||
luna // Omron Luna
|
||||
|
||||
@source:lvcards.cpp
|
||||
lvcards // (c) 1985 Tehkan
|
||||
lvcardsa // (c) 1985 Tehkan
|
||||
|
Loading…
Reference in New Issue
Block a user