mirror of
https://github.com/holub/mame
synced 2025-04-16 21:44:32 +03:00
New machines marked as NOT_WORKING
---------------------------------- MBC020-65 CPU/Video Board (Torque Systems OEM)
This commit is contained in:
parent
9fe840d3fe
commit
6b0288beee
@ -3758,6 +3758,7 @@ files {
|
|||||||
createMESSProjects(_target, _subtarget, "synertek")
|
createMESSProjects(_target, _subtarget, "synertek")
|
||||||
files {
|
files {
|
||||||
MAME_DIR .. "src/mame/drivers/ktm3.cpp",
|
MAME_DIR .. "src/mame/drivers/ktm3.cpp",
|
||||||
|
MAME_DIR .. "src/mame/drivers/mbc020.cpp",
|
||||||
MAME_DIR .. "src/mame/drivers/sym1.cpp",
|
MAME_DIR .. "src/mame/drivers/sym1.cpp",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
147
src/mame/drivers/mbc020.cpp
Normal file
147
src/mame/drivers/mbc020.cpp
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
// license:BSD-3-Clause
|
||||||
|
// copyright-holders:AJR
|
||||||
|
/****************************************************************************
|
||||||
|
|
||||||
|
Preliminary driver for single-board computers by Synertek/Sym Systems.
|
||||||
|
|
||||||
|
The bottom edge connector is compatible with Motorola's EXORciser/
|
||||||
|
Micromodule bus. One of MBC020's other connectors is claimed to allow
|
||||||
|
"Direct Attachment to a CRT Monitor"; this was omitted in MBC010.
|
||||||
|
|
||||||
|
MBC010 and MBC020 were available with either a SY6512 CPU (-65) or
|
||||||
|
MC6800 CPU (-68), running at either 1 or 2 MHz.
|
||||||
|
|
||||||
|
Though the timing circuit includes dynamic RAM refresh control, the
|
||||||
|
onboard RAM is entirely static (6 SY2114s or equivalent, plus an optional
|
||||||
|
socketed 6116).
|
||||||
|
|
||||||
|
"Sym Systems Corp." may have been a short-lived spinoff or subsidiary of
|
||||||
|
Synertek, named in reference to their SYM-1 SBC. Synertek clearly did not
|
||||||
|
insist on in-house sourcing of the 6500-series peripherals, since their
|
||||||
|
catalog photo of the MBC020 includes a Motorola-branded MC6845 CRTC, and
|
||||||
|
the dumped board has a Rockwell VIA and AMI ACIA.
|
||||||
|
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include "emu.h"
|
||||||
|
#include "bus/rs232/rs232.h"
|
||||||
|
#include "cpu/m6502/m6502.h"
|
||||||
|
#include "machine/6522via.h"
|
||||||
|
#include "machine/mos6551.h"
|
||||||
|
#include "video/mc6845.h"
|
||||||
|
#include "screen.h"
|
||||||
|
|
||||||
|
class mbc020_state : public driver_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
mbc020_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
|
: driver_device(mconfig, type, tag)
|
||||||
|
, m_maincpu(*this, "maincpu")
|
||||||
|
, m_chargen(*this, "chargen")
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void mbc020(machine_config &config);
|
||||||
|
|
||||||
|
private:
|
||||||
|
MC6845_UPDATE_ROW(update_row);
|
||||||
|
MC6845_ON_UPDATE_ADDR_CHANGED(update_cb);
|
||||||
|
|
||||||
|
void mem_map(address_map &map);
|
||||||
|
|
||||||
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_region_ptr<u8> m_chargen;
|
||||||
|
};
|
||||||
|
|
||||||
|
MC6845_UPDATE_ROW(mbc020_state::update_row)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
MC6845_ON_UPDATE_ADDR_CHANGED(mbc020_state::update_cb)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void mbc020_state::mem_map(address_map &map)
|
||||||
|
{
|
||||||
|
map(0x0000, 0x03ff).ram();
|
||||||
|
map(0x8000, 0x8fff).rom().region("monitor", 0x2000);
|
||||||
|
map(0x9000, 0x900f).m("via", FUNC(via6522_device::map));
|
||||||
|
map(0x9a00, 0x9a03).rw("acia", FUNC(mos6551_device::read), FUNC(mos6551_device::write));
|
||||||
|
map(0x9c00, 0x9c00).rw("crtc", FUNC(sy6545_1_device::status_r), FUNC(sy6545_1_device::address_w));
|
||||||
|
map(0x9c01, 0x9c01).rw("crtc", FUNC(sy6545_1_device::register_r), FUNC(sy6545_1_device::register_w));
|
||||||
|
map(0xa000, 0xafff).ram();
|
||||||
|
map(0xb000, 0xcfff).rom().region("monitor", 0);
|
||||||
|
map(0xf800, 0xffff).rom().region("monitor", 0x2800);
|
||||||
|
}
|
||||||
|
|
||||||
|
static INPUT_PORTS_START(mbc020)
|
||||||
|
PORT_START("PA")
|
||||||
|
PORT_CONFNAME(0x38, 0x30, "Baud Rate")
|
||||||
|
PORT_CONFSETTING(0x00, "110")
|
||||||
|
PORT_CONFSETTING(0x08, "300")
|
||||||
|
PORT_CONFSETTING(0x10, "600")
|
||||||
|
PORT_CONFSETTING(0x18, "1200")
|
||||||
|
PORT_CONFSETTING(0x20, "2400")
|
||||||
|
PORT_CONFSETTING(0x28, "4800")
|
||||||
|
PORT_CONFSETTING(0x30, "9600")
|
||||||
|
PORT_CONFSETTING(0x38, "19200")
|
||||||
|
PORT_BIT(0xc3, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
static DEVICE_INPUT_DEFAULTS_START( terminal )
|
||||||
|
DEVICE_INPUT_DEFAULTS( "RS232_RXBAUD", 0xff, RS232_BAUD_9600 )
|
||||||
|
DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_9600 )
|
||||||
|
DEVICE_INPUT_DEFAULTS( "RS232_STARTBITS", 0xff, RS232_STARTBITS_1 )
|
||||||
|
DEVICE_INPUT_DEFAULTS( "RS232_DATABITS", 0xff, RS232_DATABITS_7 )
|
||||||
|
DEVICE_INPUT_DEFAULTS( "RS232_PARITY", 0xff, RS232_PARITY_NONE )
|
||||||
|
DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_2 )
|
||||||
|
DEVICE_INPUT_DEFAULTS_END
|
||||||
|
|
||||||
|
void mbc020_state::mbc020(machine_config &config)
|
||||||
|
{
|
||||||
|
M6512(config, m_maincpu, 16_MHz_XTAL / 8); // SYU6512A
|
||||||
|
m_maincpu->set_addrmap(AS_PROGRAM, &mbc020_state::mem_map);
|
||||||
|
|
||||||
|
via6522_device &via(VIA6522(config, "via", 16_MHz_XTAL / 8)); // R6522AP
|
||||||
|
via.readpa_handler().set_ioport("PA");
|
||||||
|
|
||||||
|
mos6551_device &acia(MOS6551(config, "acia", 16_MHz_XTAL / 8)); // S6551AP
|
||||||
|
acia.set_xtal(1.8432_MHz_XTAL);
|
||||||
|
acia.txd_handler().set("rs232", FUNC(rs232_port_device::write_txd));
|
||||||
|
acia.rts_handler().set("rs232", FUNC(rs232_port_device::write_rts));
|
||||||
|
acia.dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr));
|
||||||
|
|
||||||
|
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||||
|
screen.set_raw(16_MHz_XTAL, 1016, 0, 640, 263, 0, 225);
|
||||||
|
screen.set_screen_update("crtc", FUNC(sy6545_1_device::screen_update));
|
||||||
|
|
||||||
|
sy6545_1_device &crtc(SY6545_1(config, "crtc", 16_MHz_XTAL / 8)); // SY6545-1
|
||||||
|
crtc.set_screen("screen");
|
||||||
|
crtc.set_show_border_area(false);
|
||||||
|
crtc.set_char_width(8);
|
||||||
|
crtc.set_update_row_callback(FUNC(mbc020_state::update_row));
|
||||||
|
crtc.set_on_update_addr_change_callback(FUNC(mbc020_state::update_cb));
|
||||||
|
|
||||||
|
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal"));
|
||||||
|
rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal));
|
||||||
|
rs232.rxd_handler().set("acia", FUNC(mos6551_device::write_rxd));
|
||||||
|
rs232.dsr_handler().set("acia", FUNC(mos6551_device::write_dsr));
|
||||||
|
rs232.cts_handler().set("acia", FUNC(mos6551_device::write_cts));
|
||||||
|
}
|
||||||
|
|
||||||
|
ROM_START(mbc020) // Silkscreened on PCB: "© 1980 by SYM Systems Corp."
|
||||||
|
ROM_REGION(0x3000, "monitor", 0) // "SERVOMON VER 4.0 COPYRIGHT JUL-1983 TORQUE SYSTEMS INC."
|
||||||
|
ROM_LOAD("20013-4.u13", 0x0000, 0x1000, CRC(53cbfc68) SHA1(72834ac1d8e8feed1941c7b7d53b264d8333a496)) // TMS2532JL-35
|
||||||
|
ROM_LOAD("20014-4.u14", 0x1000, 0x1000, CRC(f7ed5508) SHA1(a6d644f07c889c24291fe6d64f9ef90ef34324ba)) // TMS2532JL-35
|
||||||
|
ROM_LOAD("20015-4.u15", 0x2000, 0x1000, CRC(17485482) SHA1(57a6f684dd5111f2499b655f27794116aef354d7)) // TMS2532JL-35
|
||||||
|
|
||||||
|
ROM_REGION(0x800, "chargen", 0)
|
||||||
|
ROM_LOAD("02-0054a.u5", 0x000, 0x800, CRC(3ed97af7) SHA1(26d5a1c96b9896336e7ccf9e66dbeb2733ab4593))
|
||||||
|
|
||||||
|
ROM_REGION(0x20, "mmap", 0) // memory mapping PROM (decodes A11–A15)
|
||||||
|
ROM_LOAD("n82s123n.u17", 0x00, 0x20, NO_DUMP)
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
COMP(1983, mbc020, 0, 0, mbc020, mbc020, mbc020_state, empty_init, "Sym Systems / Torque Systems", "MBC020-65 CPU/Video Board (Torque Systems OEM)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW)
|
@ -22150,6 +22150,9 @@ greatgun // (c) 1983
|
|||||||
mazerbla // (c) 1983
|
mazerbla // (c) 1983
|
||||||
mazerblaa // (c) 1983
|
mazerblaa // (c) 1983
|
||||||
|
|
||||||
|
@source:mbc020.cpp
|
||||||
|
mbc020 //
|
||||||
|
|
||||||
@source:mbc200.cpp
|
@source:mbc200.cpp
|
||||||
mbc200 //
|
mbc200 //
|
||||||
|
|
||||||
|
@ -541,6 +541,7 @@ macquadra700.cpp
|
|||||||
magiceyes_pollux_vr3520f.cpp
|
magiceyes_pollux_vr3520f.cpp
|
||||||
magnum.cpp
|
magnum.cpp
|
||||||
mattelchess.cpp
|
mattelchess.cpp
|
||||||
|
mbc020.cpp
|
||||||
mbc200.cpp
|
mbc200.cpp
|
||||||
mbc55x.cpp
|
mbc55x.cpp
|
||||||
mbee.cpp
|
mbee.cpp
|
||||||
|
Loading…
Reference in New Issue
Block a user