New machines marked as NOT_WORKING

----------------------------------
Azkoyen Design D6 [jordigahan, ClawGrip, Dirk Best]
Azkoyen Design (Euro) [maquinasdetabaco.com, Dirk Best]
This commit is contained in:
Dirk Best 2020-11-24 11:00:54 +01:00
parent 47346ceaec
commit 69454e20cd
5 changed files with 429 additions and 0 deletions

View File

@ -4388,6 +4388,7 @@ files {
MAME_DIR .. "src/mame/drivers/d6800.cpp", MAME_DIR .. "src/mame/drivers/d6800.cpp",
MAME_DIR .. "src/mame/drivers/d6809.cpp", MAME_DIR .. "src/mame/drivers/d6809.cpp",
MAME_DIR .. "src/mame/drivers/daruma.cpp", MAME_DIR .. "src/mame/drivers/daruma.cpp",
MAME_DIR .. "src/mame/drivers/design.cpp",
MAME_DIR .. "src/mame/drivers/dg680.cpp", MAME_DIR .. "src/mame/drivers/dg680.cpp",
MAME_DIR .. "src/mame/drivers/diablo1300.cpp", MAME_DIR .. "src/mame/drivers/diablo1300.cpp",
MAME_DIR .. "src/mame/drivers/didact.cpp", MAME_DIR .. "src/mame/drivers/didact.cpp",

302
src/mame/drivers/design.cpp Normal file
View File

@ -0,0 +1,302 @@
// license: BSD-3-Clause
// copyright-holders: Dirk Best
/***************************************************************************
Azkoyen "Design"
Tobacco vending machines
Hardware:
- Intel P8051
- 27C256 EPROM
- NEC D446C-2 SRAM
- OKI M62X428 RTC
- Rockwell 10937P-50 A8201-17 display controller
TODO:
- The coin mech isn't emulated
***************************************************************************/
#include "emu.h"
#include "cpu/mcs51/mcs51.h"
#include "machine/bankdev.h"
#include "machine/msm6242.h"
#include "machine/nvram.h"
#include "machine/roc10937.h"
#include "design6.lh"
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
class design6_state : public driver_device
{
public:
design6_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_iobank(*this, "iobank"),
m_vfd(*this, "vfd"),
m_buttons(*this, "in2_%u", 1U),
m_input_sel(0)
{ }
void design6(machine_config &config);
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
private:
required_device<i8051_device> m_maincpu;
required_device<address_map_bank_device> m_iobank;
required_device<roc10937_device> m_vfd;
required_ioport_array<4> m_buttons;
void mem_map(address_map &map);
void io_map(address_map &map);
void iobanked_map(address_map &map);
void port1_w(uint8_t data);
uint8_t in2_r();
uint8_t m_input_sel;
};
//**************************************************************************
// ADDRESS MAPS
//**************************************************************************
void design6_state::mem_map(address_map &map)
{
map(0x0000, 0x7fff).rom().region("maincpu", 0);
}
void design6_state::io_map(address_map &map)
{
map(0x0000, 0xffff).rw(m_iobank, FUNC(address_map_bank_device::read8), FUNC(address_map_bank_device::write8));
}
void design6_state::iobanked_map(address_map &map)
{
map(0x00000, 0x00000).portr("in0");
// map(0x00000, 0x00007).w // coin return motor
map(0x00010, 0x00010).portr("in1");
map(0x00015, 0x00015).lw8(NAME([this] (uint8_t data) { m_vfd->data(BIT(data, 0)); }));
map(0x00016, 0x00016).lw8(NAME([this] (uint8_t data) { m_vfd->sclk(BIT(data, 0)); }));
map(0x00017, 0x00017).lw8(NAME([this] (uint8_t data) { m_vfd->por(BIT(data, 0)); }));
map(0x00020, 0x00020).r(FUNC(design6_state::in2_r));
map(0x00030, 0x00030).portr("in3");
map(0x00060, 0x0006f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
map(0x10000, 0x107ff).ram().share("nvram");
}
//**************************************************************************
// INPUT PORT DEFINITIONS
//**************************************************************************
static INPUT_PORTS_START( design6 )
PORT_START("in0")
PORT_DIPUNKNOWN(0x01, IP_ACTIVE_HIGH) PORT_NAME("in0:0")
PORT_DIPUNKNOWN(0x02, IP_ACTIVE_HIGH) PORT_NAME("in0:1")
PORT_DIPUNKNOWN(0x04, IP_ACTIVE_HIGH) PORT_NAME("in0:2")
PORT_DIPUNKNOWN(0x08, IP_ACTIVE_HIGH) PORT_NAME("in0:3")
PORT_DIPUNKNOWN(0x10, IP_ACTIVE_HIGH) PORT_NAME("in0:4")
PORT_DIPUNKNOWN(0x20, IP_ACTIVE_HIGH) PORT_NAME("in0:5")
PORT_SERVICE(0x40, IP_ACTIVE_HIGH)
PORT_DIPUNKNOWN(0x80, IP_ACTIVE_HIGH) PORT_NAME("in0:7")
PORT_START("in1")
PORT_DIPNAME(0x01, 0x00, "Coin Return Pulse 3")
PORT_DIPSETTING( 0x01, DEF_STR( On ))
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPNAME(0x02, 0x00, "Coin Return Pulse 2")
PORT_DIPSETTING( 0x02, DEF_STR( On ))
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPNAME(0x04, 0x00, "Coin Return Pulse 1")
PORT_DIPSETTING( 0x04, DEF_STR( On ))
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPNAME(0x08, 0x08, "Empty Return 3")
PORT_DIPSETTING( 0x08, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
PORT_DIPNAME(0x10, 0x10, "Empty Return 2")
PORT_DIPSETTING( 0x10, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
PORT_DIPNAME(0x20, 0x20, "Empty Return 1")
PORT_DIPSETTING( 0x20, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
PORT_DIPNAME(0x40, 0x00, "Averia Tramp. 1")
PORT_DIPSETTING( 0x40, DEF_STR( On ))
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPUNKNOWN(0x80, IP_ACTIVE_HIGH) PORT_NAME("in1:7")
PORT_START("in2_1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_GAMBLE_PAYOUT) PORT_NAME("Coin Recovery")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_Q) PORT_NAME("Canal 1")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_W) PORT_NAME("Canal 2")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_E) PORT_NAME("Canal 3")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_R) PORT_NAME("Canal 4")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_T) PORT_NAME("Canal 5")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_Y) PORT_NAME("Canal 6")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START("in2_2")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_DIPUNKNOWN(0x04, IP_ACTIVE_HIGH) PORT_NAME("in2_2:2")
PORT_DIPUNKNOWN(0x08, IP_ACTIVE_HIGH) PORT_NAME("in2_2:3")
PORT_DIPUNKNOWN(0x10, IP_ACTIVE_HIGH) PORT_NAME("in2_2:4")
PORT_DIPUNKNOWN(0x20, IP_ACTIVE_HIGH) PORT_NAME("in2_2:5")
PORT_DIPUNKNOWN(0x40, IP_ACTIVE_HIGH) PORT_NAME("in2_2:6")
PORT_DIPUNKNOWN(0x80, IP_ACTIVE_HIGH) PORT_NAME("in2_2:7")
PORT_START("in2_3")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START("in2_4")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_DIPUNKNOWN(0x04, IP_ACTIVE_HIGH) PORT_NAME("in2_4:2")
PORT_DIPUNKNOWN(0x08, IP_ACTIVE_HIGH) PORT_NAME("in2_4:3")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_A) PORT_NAME("Remote Control A")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_B) PORT_NAME("Remote Control B")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_C) PORT_NAME("Remote Control C")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_D) PORT_NAME("Remote Control D")
PORT_START("in3")
PORT_DIPUNKNOWN(0x01, IP_ACTIVE_HIGH) PORT_NAME("in3:0")
PORT_DIPUNKNOWN(0x02, IP_ACTIVE_HIGH) PORT_NAME("in3:1")
PORT_DIPUNKNOWN(0x04, IP_ACTIVE_HIGH) PORT_NAME("in3:2")
PORT_DIPUNKNOWN(0x08, IP_ACTIVE_HIGH) PORT_NAME("in3:3")
PORT_DIPUNKNOWN(0x10, IP_ACTIVE_HIGH) PORT_NAME("in3:4")
PORT_DIPUNKNOWN(0x20, IP_ACTIVE_HIGH) PORT_NAME("in3:5")
PORT_DIPUNKNOWN(0x40, IP_ACTIVE_HIGH) PORT_NAME("in3:6")
PORT_DIPUNKNOWN(0x80, IP_ACTIVE_HIGH) PORT_NAME("in3:7")
INPUT_PORTS_END
static INPUT_PORTS_START( designe )
PORT_INCLUDE(design6)
PORT_MODIFY("in2_1")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_U) PORT_NAME("Canal 7")
PORT_MODIFY("in2_2")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_F) PORT_NAME("Canal 8")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_G) PORT_NAME("Canal 9")
PORT_MODIFY("in2_3")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_H) PORT_NAME("Canal 10")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_J) PORT_NAME("Canal 11")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_K) PORT_NAME("Canal 12")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_L) PORT_NAME("Canal 13")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_Y) PORT_NAME("Canal 14")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_X) PORT_NAME("Canal 15")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_C) PORT_NAME("Canal 16")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_V) PORT_NAME("Canal 17")
PORT_MODIFY("in2_4")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_N) PORT_NAME("Canal 18")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_M) PORT_NAME("Canal 19")
INPUT_PORTS_END
//**************************************************************************
// MACHINE EMULATION
//**************************************************************************
void design6_state::port1_w(uint8_t data)
{
// 7------- watchdog?
// -6------ ram write protect?
// --5----- ram enable?
// ---4---- not used?
// ----3210 input select
m_iobank->set_bank(BIT(data, 5));
m_input_sel = data & 0x0f;
}
uint8_t design6_state::in2_r()
{
uint8_t data = 0;
if (BIT(m_input_sel, 0)) data |= m_buttons[0]->read();
if (BIT(m_input_sel, 1)) data |= m_buttons[1]->read();
if (BIT(m_input_sel, 2)) data |= m_buttons[2]->read();
if (BIT(m_input_sel, 3)) data |= m_buttons[3]->read();
return data;
}
void design6_state::machine_start()
{
// register for save states
save_item(NAME(m_input_sel));
}
void design6_state::machine_reset()
{
}
//**************************************************************************
// MACHINE DEFINTIONS
//**************************************************************************
void design6_state::design6(machine_config &config)
{
I8051(config, m_maincpu, 6_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &design6_state::mem_map);
m_maincpu->set_addrmap(AS_IO, &design6_state::io_map);
m_maincpu->port_out_cb<1>().set(FUNC(design6_state::port1_w));
ADDRESS_MAP_BANK(config, m_iobank, 0);
m_iobank->set_map(&design6_state::iobanked_map);
m_iobank->set_addr_width(17);
m_iobank->set_data_width(8);
m_iobank->set_stride(0x10000);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
ROC10937(config, m_vfd);
MSM6242(config, "rtc", 32.768_kHz_XTAL);
config.set_default_layout(layout_design6);
}
//**************************************************************************
// ROM DEFINITIONS
//**************************************************************************
ROM_START( design6 )
ROM_REGION(0x8000, "maincpu", 0)
ROM_LOAD("1.bin", 0x0000, 0x8000, CRC(1155999c) SHA1(2896af89011c496f905ed0e57d7035a3b612c718))
ROM_END
ROM_START( designe )
ROM_REGION(0x8000, "maincpu", 0)
ROM_LOAD("designe.bin", 0x0000, 0x8000, CRC(693d40bd) SHA1(9596bbf9c367bc919393923460da15563d9447ca))
ROM_END
//**************************************************************************
// SYSTEM DRIVERS
//**************************************************************************
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS
GAME( 1995?, design6, 0, design6, design6, design6_state, empty_init, ROT0, "Azkoyen", "Design D6", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING )
GAME( 1995?, designe, 0, design6, designe, design6_state, empty_init, ROT0, "Azkoyen", "Design (Euro)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING )

121
src/mame/layout/design6.lay Normal file
View File

@ -0,0 +1,121 @@
<?xml version="1.0"?>
<!--
license: CC0
copyright-holders: Dirk Best
Azkoyen "Design 6" layout
-->
<mamelayout version="2">
<element name="bg_rect">
<rect>
<bounds left="0" top="0" right="1" bottom="1" />
<color red="0.20" green="0.20" blue="0.20" />
</rect>
</element>
<element name="lightgrey_disk">
<disk>
<bounds left="0" top="0" right="1" bottom="1" />
<color red="0.80" green="0.80" blue="0.80" />
</disk>
</element>
<element name="red_disk">
<disk>
<bounds left="0" top="0" right="1" bottom="1" />
<color red="0.80" green="0.10" blue="0.10" />
</disk>
</element>
<element name="text_REMOTE"><text string="REMOTE"><color red="0.80" green="0.80" blue="0.80" /></text></element>
<element name="text_R1"><text string="A"><color red="0.00" green="0.00" blue="0.00" /></text></element>
<element name="text_R2"><text string="B"><color red="0.00" green="0.00" blue="0.00" /></text></element>
<element name="text_R3"><text string="C"><color red="0.00" green="0.00" blue="0.00" /></text></element>
<element name="text_R4"><text string="D"><color red="0.00" green="0.00" blue="0.00" /></text></element>
<element name="text_CANAL"><text string="CANAL"><color red="0.80" green="0.80" blue="0.80" /></text></element>
<element name="text_1"><text string="1"><color red="0.00" green="0.00" blue="0.00" /></text></element>
<element name="text_2"><text string="2"><color red="0.00" green="0.00" blue="0.00" /></text></element>
<element name="text_3"><text string="3"><color red="0.00" green="0.00" blue="0.00" /></text></element>
<element name="text_4"><text string="4"><color red="0.00" green="0.00" blue="0.00" /></text></element>
<element name="text_5"><text string="5"><color red="0.00" green="0.00" blue="0.00" /></text></element>
<element name="text_6"><text string="6"><color red="0.00" green="0.00" blue="0.00" /></text></element>
<element name="text_RECUP"><text string="RECUP."><color red="0.80" green="0.80" blue="0.80" /></text></element>
<element name="vfd0">
<led16segsc>
<color red="0" green="0.6" blue="1.0" />
</led16segsc>
</element>
<view name="Default Layout">
<bounds x="0" y="0" width="280" height="90"/>
<!-- Remote -->
<element ref="bg_rect">
<bounds left="5" top="5" right="100" bottom="25" />
</element>
<element ref="text_REMOTE">
<bounds left="10" top="10" right="35" bottom="20" />
</element>
<repeat count="4">
<param name="mask" start="0x10" lshift="1" />
<param name="x1" start="40" increment="15" />
<param name="x2" start="41" increment="15" />
<param name="label" start="1" increment="1" />
<element ref="lightgrey_disk" inputtag="in2_4" inputmask="~mask~">
<bounds x="~x1~" y="10" width="10" height="10" />
</element>
<element ref="text_R~label~">
<bounds x="~x2~" y="11" width="8" height="8" />
</element>
</repeat>
<!-- Canal -->
<element ref="bg_rect">
<bounds left="5" top="55" right="130" bottom="75" />
</element>
<element ref="text_CANAL">
<bounds left="10" top="60" right="35" bottom="70" />
</element>
<repeat count="6">
<param name="mask" start="0x02" lshift="1" />
<param name="x1" start="40" increment="15" />
<param name="x2" start="41" increment="15" />
<param name="label" start="1" increment="1" />
<element ref="lightgrey_disk" inputtag="in2_1" inputmask="~mask~">
<bounds x="~x1~" y="60" width="10" height="10" />
</element>
<element ref="text_~label~">
<bounds x="~x2~" y="61" width="8" height="8" />
</element>
</repeat>
<!-- Coin Recover -->
<element ref="bg_rect">
<bounds left="140" top="55" right="190" bottom="75" />
</element>
<element ref="text_RECUP">
<bounds left="145" top="60" right="170" bottom="70" />
</element>
<element ref="red_disk" inputtag="in2_1" inputmask="0x01">
<bounds left="175" top="60" right="185" bottom="70" />
</element>
<!-- VFD -->
<repeat count="16">
<param name="n" start="15" increment="-1" />
<param name="x" start="120" increment="9" />
<element name="vfd~n~" ref="vfd0" state="0">
<bounds x="~x~" y="20" width="9" height="17"/>
</element>
</repeat>
</view>
</mamelayout>

View File

@ -12123,6 +12123,10 @@ karianx // (c) 1996 Deniam
logicpr2 // (c) 1997 Deniam (Japan) logicpr2 // (c) 1997 Deniam (Japan)
logicpro // (c) 1996 Deniam logicpro // (c) 1996 Deniam
@source:design.cpp
design6 // (c) Azkoyen
designe // (c) Azkoyen
@source:deshoros.cpp @source:deshoros.cpp
destiny // (c) 1983 destiny // (c) 1983

View File

@ -223,6 +223,7 @@ debut.cpp
decstation.cpp decstation.cpp
dectalk.cpp dectalk.cpp
decwritr.cpp decwritr.cpp
design.cpp
dfs500.cpp dfs500.cpp
dg680.cpp dg680.cpp
dgn_beta.cpp dgn_beta.cpp