mirror of
https://github.com/holub/mame
synced 2025-04-16 21:44:32 +03:00
New machines marked as NOT_WORKING
---------------------------------- ADDS 2020 [Bitsavers]
This commit is contained in:
parent
9a40b302cc
commit
f98eb5a9f0
@ -4514,6 +4514,7 @@ files {
|
|||||||
MAME_DIR .. "src/mame/drivers/acd.cpp",
|
MAME_DIR .. "src/mame/drivers/acd.cpp",
|
||||||
MAME_DIR .. "src/mame/drivers/aceex.cpp",
|
MAME_DIR .. "src/mame/drivers/aceex.cpp",
|
||||||
MAME_DIR .. "src/mame/drivers/adacp150.cpp",
|
MAME_DIR .. "src/mame/drivers/adacp150.cpp",
|
||||||
|
MAME_DIR .. "src/mame/drivers/adds2020.cpp",
|
||||||
MAME_DIR .. "src/mame/drivers/aid80f.cpp",
|
MAME_DIR .. "src/mame/drivers/aid80f.cpp",
|
||||||
MAME_DIR .. "src/mame/drivers/airbase99.cpp",
|
MAME_DIR .. "src/mame/drivers/airbase99.cpp",
|
||||||
MAME_DIR .. "src/mame/drivers/alcat7100.cpp",
|
MAME_DIR .. "src/mame/drivers/alcat7100.cpp",
|
||||||
|
124
src/mame/drivers/adds2020.cpp
Normal file
124
src/mame/drivers/adds2020.cpp
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
// license:BSD-3-Clause
|
||||||
|
// copyright-holders:AJR
|
||||||
|
/***********************************************************************************************************************************
|
||||||
|
|
||||||
|
Skeleton driver for ADDS 2020 terminal.
|
||||||
|
|
||||||
|
***********************************************************************************************************************************/
|
||||||
|
|
||||||
|
#include "emu.h"
|
||||||
|
//#include "bus/rs232/rs232.h"
|
||||||
|
#include "cpu/mcs51/mcs51.h"
|
||||||
|
#include "machine/input_merger.h"
|
||||||
|
#include "machine/nvram.h"
|
||||||
|
#include "machine/scn_pci.h"
|
||||||
|
#include "video/scn2674.h"
|
||||||
|
#include "screen.h"
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
class adds2020_state : public driver_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
adds2020_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
|
: driver_device(mconfig, type, tag)
|
||||||
|
, m_maincpu(*this, "maincpu")
|
||||||
|
, m_epci(*this, "epci")
|
||||||
|
, m_avdc(*this, "avdc")
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void adds2020(machine_config &config);
|
||||||
|
|
||||||
|
private:
|
||||||
|
SCN2674_DRAW_CHARACTER_MEMBER(draw_character);
|
||||||
|
|
||||||
|
void unknown_0000_w(u8 data);
|
||||||
|
void unknown_9800_w(offs_t offset, u8 data);
|
||||||
|
|
||||||
|
void prog_map(address_map &map);
|
||||||
|
void ext_map(address_map &map);
|
||||||
|
void char_map(address_map &map);
|
||||||
|
|
||||||
|
required_device<mcs51_cpu_device> m_maincpu;
|
||||||
|
required_device<scn_pci_device> m_epci;
|
||||||
|
required_device<scn2674_device> m_avdc;
|
||||||
|
};
|
||||||
|
|
||||||
|
SCN2674_DRAW_CHARACTER_MEMBER(adds2020_state::draw_character)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void adds2020_state::unknown_0000_w(u8 data)
|
||||||
|
{
|
||||||
|
logerror("%s: Writing %02Xh to 0000h\n", machine().describe_context(), data);
|
||||||
|
}
|
||||||
|
|
||||||
|
void adds2020_state::unknown_9800_w(offs_t offset, u8 data)
|
||||||
|
{
|
||||||
|
logerror("%s: Writing %02Xh to %04Xh\n", machine().describe_context(), data, offset + 0x9800);
|
||||||
|
}
|
||||||
|
|
||||||
|
void adds2020_state::prog_map(address_map &map)
|
||||||
|
{
|
||||||
|
map(0x0000, 0xbfff).rom().region("firmware", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void adds2020_state::ext_map(address_map &map)
|
||||||
|
{
|
||||||
|
map(0x0000, 0x0000).w(FUNC(adds2020_state::unknown_0000_w));
|
||||||
|
map(0x4000, 0x5fff).ram().share("nvram");
|
||||||
|
map(0x6000, 0x7fff).ram();
|
||||||
|
map(0x8000, 0x8000).select(6).lr8([this](offs_t offset) { return m_epci->read(offset >> 1); }, "epci_r");
|
||||||
|
map(0x8001, 0x8001).select(6).lw8([this](offs_t offset, u8 data) { m_epci->write(offset >> 1, data); }, "epci_w");
|
||||||
|
map(0x8800, 0x8807).rw(m_avdc, FUNC(scn2674_device::read), FUNC(scn2674_device::write));
|
||||||
|
map(0x9800, 0x9801).w(FUNC(adds2020_state::unknown_9800_w));
|
||||||
|
}
|
||||||
|
|
||||||
|
void adds2020_state::char_map(address_map &map)
|
||||||
|
{
|
||||||
|
map(0x0000, 0x1fff).nopr(); // TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
static INPUT_PORTS_START(adds2020)
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
void adds2020_state::adds2020(machine_config &config)
|
||||||
|
{
|
||||||
|
I8031(config, m_maincpu, 10.92_MHz_XTAL); // P8031AH
|
||||||
|
m_maincpu->set_addrmap(AS_PROGRAM, &adds2020_state::prog_map);
|
||||||
|
m_maincpu->set_addrmap(AS_IO, &adds2020_state::ext_map);
|
||||||
|
|
||||||
|
INPUT_MERGER_ANY_HIGH(config, "mainint").output_handler().set_inputline(m_maincpu, MCS51_INT1_LINE);
|
||||||
|
|
||||||
|
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); // NEC D4464C-15L + 3.5V battery (only first 3K is actually saved)
|
||||||
|
|
||||||
|
SCN2661B(config, m_epci, 4.9152_MHz_XTAL);
|
||||||
|
m_epci->rxrdy_handler().set("mainint", FUNC(input_merger_device::in_w<0>));
|
||||||
|
|
||||||
|
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||||
|
//screen.set_raw(24_MHz_XTAL, 960, 0, 800, 361, 0, 338);
|
||||||
|
screen.set_raw(36_MHz_XTAL, 1440, 0, 1188, 361, 0, 338);
|
||||||
|
screen.set_screen_update(m_avdc, FUNC(scn2674_device::screen_update));
|
||||||
|
|
||||||
|
SCN2674(config, m_avdc, 36_MHz_XTAL / 9); // SCN2674B
|
||||||
|
m_avdc->set_character_width(9); // cell width guessed (10 in 80-column mode?)
|
||||||
|
m_avdc->set_screen("screen");
|
||||||
|
m_avdc->set_addrmap(0, &adds2020_state::char_map);
|
||||||
|
m_avdc->set_display_callback(FUNC(adds2020_state::draw_character));
|
||||||
|
m_avdc->breq_callback().set_inputline(m_maincpu, MCS51_T0_LINE);
|
||||||
|
m_avdc->intr_callback().set("mainint", FUNC(input_merger_device::in_w<1>));
|
||||||
|
|
||||||
|
// TODO: speaker
|
||||||
|
}
|
||||||
|
|
||||||
|
ROM_START(adds2020)
|
||||||
|
ROM_REGION(0xc000, "firmware", ROMREGION_ERASEFF)
|
||||||
|
ROM_LOAD("2020_v2.5_ua5.bin", 0x0000, 0x4000, CRC(2d9e3397) SHA1(9aec8fdfe064618c20b4ba85dd8b71a44e29bbd3))
|
||||||
|
ROM_LOAD("2020_v2.5_ua6.bin", 0x4000, 0x2000, CRC(f4cbda6f) SHA1(efe03a15d7eab4038de1e8118c6891d2078166fd))
|
||||||
|
ROM_LOAD("2020_v2.5_ua8.bin", 0x8000, 0x4000, CRC(4a8ac850) SHA1(ce02a0e904ed07930a891360f1e5779fbee8eaac))
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
} // anonymous namespace
|
||||||
|
|
||||||
|
COMP(1986, adds2020, 0, 0, adds2020, adds2020, adds2020_state, empty_init, "Applied Digital Data Systems", "ADDS 2020", MACHINE_IS_SKELETON)
|
@ -950,6 +950,9 @@ adacp150p //
|
|||||||
@source:adam.cpp
|
@source:adam.cpp
|
||||||
adam // Coleco Adam
|
adam // Coleco Adam
|
||||||
|
|
||||||
|
@source:adds2020.cpp
|
||||||
|
adds2020 //
|
||||||
|
|
||||||
@source:adm11.cpp
|
@source:adm11.cpp
|
||||||
adm12 //
|
adm12 //
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ actions_atj2279b.cpp
|
|||||||
acvirus.cpp
|
acvirus.cpp
|
||||||
adacp150.cpp
|
adacp150.cpp
|
||||||
adam.cpp
|
adam.cpp
|
||||||
|
adds2020.cpp
|
||||||
adm11.cpp
|
adm11.cpp
|
||||||
adm23.cpp
|
adm23.cpp
|
||||||
adm31.cpp
|
adm31.cpp
|
||||||
|
Loading…
Reference in New Issue
Block a user