New machines marked as NOT_WORKING

----------------------------------
ADDS 2020 [Bitsavers]
This commit is contained in:
AJR 2021-12-30 23:41:05 -05:00
parent 9a40b302cc
commit f98eb5a9f0
4 changed files with 129 additions and 0 deletions

View File

@ -4514,6 +4514,7 @@ files {
MAME_DIR .. "src/mame/drivers/acd.cpp",
MAME_DIR .. "src/mame/drivers/aceex.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/airbase99.cpp",
MAME_DIR .. "src/mame/drivers/alcat7100.cpp",

View 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)

View File

@ -950,6 +950,9 @@ adacp150p //
@source:adam.cpp
adam // Coleco Adam
@source:adds2020.cpp
adds2020 //
@source:adm11.cpp
adm12 //

View File

@ -26,6 +26,7 @@ actions_atj2279b.cpp
acvirus.cpp
adacp150.cpp
adam.cpp
adds2020.cpp
adm11.cpp
adm23.cpp
adm31.cpp