mirror of
https://github.com/holub/mame
synced 2025-04-16 13:34:55 +03:00
-atarittl: Added netlist for Tank. currently runs at about 0.005% of full speed, unsure why.
This commit is contained in:
parent
b657250232
commit
e2231ddcd2
@ -219,9 +219,13 @@ project "netlist"
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_82S16.h",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_82S115.cpp",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_82S115.h",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_8277.cpp",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_8277.h",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_9310.cpp",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_9316.cpp",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_9316.h",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_9321.cpp",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_9321.h",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_9322.cpp",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_9322.h",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_am2847.cpp",
|
||||
@ -230,6 +234,8 @@ project "netlist"
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_dm9314.h",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_dm9334.cpp",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_dm9334.h",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_9321.cpp",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_9321.h",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_ne555.cpp",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_ne555.h",
|
||||
MAME_DIR .. "src/lib/netlist/devices/nld_mm5837.cpp",
|
||||
|
@ -1138,6 +1138,8 @@ files {
|
||||
MAME_DIR .. "src/mame/machine/nl_gtrak10.h",
|
||||
MAME_DIR .. "src/mame/machine/nl_stuntcyc.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_stuntcyc.h",
|
||||
MAME_DIR .. "src/mame/machine/nl_tank.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_tank.h",
|
||||
MAME_DIR .. "src/mame/drivers/atetris.cpp",
|
||||
MAME_DIR .. "src/mame/includes/atetris.h",
|
||||
MAME_DIR .. "src/mame/video/atetris.cpp",
|
||||
|
@ -189,10 +189,12 @@ NLOBJS := \
|
||||
$(NLOBJ)/devices/nld_74377.o \
|
||||
$(NLOBJ)/devices/nld_74393.o \
|
||||
$(NLOBJ)/devices/nld_74ls629.o \
|
||||
$(NLOBJ)/devices/nld_8277.o \
|
||||
$(NLOBJ)/devices/nld_82S16.o \
|
||||
$(NLOBJ)/devices/nld_82S115.o \
|
||||
$(NLOBJ)/devices/nld_9310.o \
|
||||
$(NLOBJ)/devices/nld_9316.o \
|
||||
$(NLOBJ)/devices/nld_9321.o \
|
||||
$(NLOBJ)/devices/nld_9322.o \
|
||||
$(NLOBJ)/devices/nld_am2847.o \
|
||||
$(NLOBJ)/devices/nld_dm9314.o \
|
||||
|
@ -73,6 +73,7 @@ namespace devices
|
||||
#if !(NL_USE_TRUTHTABLE_7448)
|
||||
LIB_ENTRY(7448)
|
||||
#endif
|
||||
LIB_ENTRY(MK28000)
|
||||
LIB_ENTRY(7450)
|
||||
LIB_ENTRY(7473)
|
||||
LIB_ENTRY(7473A)
|
||||
@ -117,9 +118,12 @@ namespace devices
|
||||
LIB_ENTRY(82S123)
|
||||
LIB_ENTRY(82S126)
|
||||
LIB_ENTRY(74S287)
|
||||
LIB_ENTRY(8277)
|
||||
LIB_ENTRY(9310)
|
||||
LIB_ENTRY(9314)
|
||||
LIB_ENTRY(9316)
|
||||
LIB_ENTRY(9321_GATE)
|
||||
LIB_ENTRY(9321)
|
||||
LIB_ENTRY(9322_GATE)
|
||||
LIB_ENTRY(9322)
|
||||
LIB_ENTRY(9334)
|
||||
@ -153,6 +157,7 @@ namespace devices
|
||||
LIB_ENTRY(74193_dip)
|
||||
LIB_ENTRY(74194_dip)
|
||||
LIB_ENTRY(74365_dip)
|
||||
LIB_ENTRY(8277_dip)
|
||||
LIB_ENTRY(9602)
|
||||
LIB_ENTRY(9314_dip)
|
||||
LIB_ENTRY(9334_dip)
|
||||
|
@ -79,10 +79,12 @@ NETLIST_EXTERNAL(base_lib)
|
||||
#include "nld_82S115.h"
|
||||
#include "nld_82S16.h"
|
||||
#include "nld_9316.h"
|
||||
#include "nld_9321.h"
|
||||
#include "nld_9322.h"
|
||||
#include "nld_tms4800.h"
|
||||
|
||||
#include "nld_am2847.h"
|
||||
#include "nld_8277.h"
|
||||
#include "nld_dm9314.h"
|
||||
#include "nld_dm9334.h"
|
||||
|
||||
|
@ -166,7 +166,7 @@ namespace netlist
|
||||
NETLIB_SUB(74193) A;
|
||||
};
|
||||
|
||||
NETLIB_DEVICE_IMPL(74193, "TTL_74193", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD,@VCC,@GND")
|
||||
NETLIB_DEVICE_IMPL(74193, "TTL_74193", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD,@VCC,@GND")
|
||||
NETLIB_DEVICE_IMPL(74193_dip, "TTL_74193_DIP", "")
|
||||
|
||||
} //namespace devices
|
||||
|
204
src/lib/netlist/devices/nld_8277.cpp
Normal file
204
src/lib/netlist/devices/nld_8277.cpp
Normal file
@ -0,0 +1,204 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz
|
||||
/*
|
||||
* nld_8277.cpp
|
||||
*
|
||||
* 8277: Dual 8-Bit Shift Register
|
||||
*
|
||||
* +--------------+
|
||||
* RESET |1 ++ 16| VCC
|
||||
* /Q7A |2 15| /Q7B
|
||||
* Q7A |3 14| Q7B
|
||||
* DSA |4 8277 13| DSB
|
||||
* D1A |5 12| D1B
|
||||
* D0A |6 11| D0B
|
||||
* CLKA |7 10| CLKB
|
||||
* GND |8 9| CLK
|
||||
* +--------------+
|
||||
*
|
||||
*/
|
||||
|
||||
#include "nld_8277.h"
|
||||
#include "netlist/nl_base.h"
|
||||
|
||||
namespace netlist
|
||||
{
|
||||
namespace devices
|
||||
{
|
||||
NETLIB_OBJECT(8277_shifter)
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(8277_shifter)
|
||||
, m_D0(*this, "D0", NETLIB_DELEGATE(inputs))
|
||||
, m_D1(*this, "D1", NETLIB_DELEGATE(inputs))
|
||||
, m_DS(*this, "DS", NETLIB_DELEGATE(inputs))
|
||||
, m_buffer(*this, "m_buffer", 0)
|
||||
, m_Q7(*this, "Q7")
|
||||
, m_Q7Q(*this, "Q7Q")
|
||||
, m_power_pins(*this)
|
||||
{
|
||||
}
|
||||
|
||||
public:
|
||||
void reset_shifter() noexcept
|
||||
{
|
||||
m_buffer = 0;
|
||||
m_Q7.push(0, NLTIME_FROM_NS(40));
|
||||
m_Q7Q.push(1, NLTIME_FROM_NS(40));
|
||||
}
|
||||
|
||||
void shift() noexcept
|
||||
{
|
||||
uint32_t in = (m_DS() ? m_D1() : m_D0());
|
||||
m_buffer <<= 1;
|
||||
m_buffer |= in;
|
||||
uint32_t out = (m_buffer >> 7) & 1;
|
||||
uint32_t outq = (~m_buffer >> 7) & 1;
|
||||
m_Q7.push(out, NLTIME_FROM_NS(40));
|
||||
m_Q7Q.push(outq, NLTIME_FROM_NS(40));
|
||||
}
|
||||
|
||||
logic_input_t m_D0;
|
||||
logic_input_t m_D1;
|
||||
logic_input_t m_DS;
|
||||
|
||||
state_var<uint8_t> m_buffer;
|
||||
|
||||
logic_output_t m_Q7;
|
||||
logic_output_t m_Q7Q;
|
||||
nld_power_pins m_power_pins;
|
||||
private:
|
||||
NETLIB_HANDLERI(inputs)
|
||||
{
|
||||
/* do nothing */
|
||||
}
|
||||
};
|
||||
|
||||
NETLIB_OBJECT(8277)
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(8277)
|
||||
, m_A(*this, "A")
|
||||
, m_B(*this, "B")
|
||||
, m_RESET(*this, "RESET", NETLIB_DELEGATE(shifter_reset))
|
||||
, m_CLK(*this, "CLK", NETLIB_DELEGATE(clk))
|
||||
, m_CLKA(*this, "CLKA", NETLIB_DELEGATE(clka))
|
||||
, m_CLKB(*this, "CLKB", NETLIB_DELEGATE(clkb))
|
||||
, m_last_CLK(*this, "m_last_CLK", 0)
|
||||
, m_last_CLKA(*this, "m_last_CLKA", 0)
|
||||
, m_last_CLKB(*this, "m_last_CLKB", 0)
|
||||
// FIXME: needs family!
|
||||
{
|
||||
register_subalias("RESET", m_RESET);
|
||||
register_subalias("CLK", m_CLK);
|
||||
register_subalias("CLKA", m_CLKA);
|
||||
register_subalias("CLKB", m_CLKB);
|
||||
register_subalias("D0A", m_A.m_D0);
|
||||
register_subalias("D1A", m_A.m_D1);
|
||||
register_subalias("DSA", m_A.m_DS);
|
||||
register_subalias("Q7A", m_A.m_Q7);
|
||||
register_subalias("Q7QA", m_A.m_Q7Q);
|
||||
register_subalias("D0B", m_B.m_D0);
|
||||
register_subalias("D1B", m_B.m_D1);
|
||||
register_subalias("DSB", m_B.m_DS);
|
||||
register_subalias("Q7B", m_B.m_Q7);
|
||||
register_subalias("Q7QB", m_B.m_Q7Q);
|
||||
|
||||
connect("A.VCC", "B.VCC");
|
||||
connect("A.GND", "B.GND");
|
||||
|
||||
register_subalias("VCC", "A.VCC");
|
||||
register_subalias("GND", "A.GND");
|
||||
}
|
||||
|
||||
NETLIB_RESETI()
|
||||
{
|
||||
m_last_CLK = 0;
|
||||
m_last_CLKA = 0;
|
||||
m_last_CLKB = 0;
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(8277_dip);
|
||||
private:
|
||||
NETLIB_HANDLERI(shifter_reset)
|
||||
{
|
||||
if (!m_RESET())
|
||||
{
|
||||
m_A.reset_shifter();
|
||||
m_B.reset_shifter();
|
||||
}
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(clk)
|
||||
{
|
||||
if (!m_last_CLK && m_CLK())
|
||||
{
|
||||
m_A.shift();
|
||||
m_B.shift();
|
||||
}
|
||||
m_last_CLK = m_CLK();
|
||||
m_last_CLKA = m_CLKA();
|
||||
m_last_CLKB = m_CLKB();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(clka)
|
||||
{
|
||||
if (!m_last_CLKA && m_CLKA())
|
||||
{
|
||||
m_A.shift();
|
||||
}
|
||||
m_last_CLKA = m_CLKA();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(clkb)
|
||||
{
|
||||
if (!m_last_CLKB && m_CLKB())
|
||||
{
|
||||
m_B.shift();
|
||||
}
|
||||
m_last_CLKB = m_CLKB();
|
||||
}
|
||||
|
||||
NETLIB_SUB(8277_shifter) m_A;
|
||||
NETLIB_SUB(8277_shifter) m_B;
|
||||
logic_input_t m_RESET;
|
||||
logic_input_t m_CLK;
|
||||
logic_input_t m_CLKA;
|
||||
logic_input_t m_CLKB;
|
||||
|
||||
state_var<uint32_t> m_last_CLK;
|
||||
state_var<uint32_t> m_last_CLKA;
|
||||
state_var<uint32_t> m_last_CLKB;
|
||||
};
|
||||
|
||||
NETLIB_OBJECT(8277_dip)
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(8277_dip)
|
||||
, A(*this, "A")
|
||||
{
|
||||
register_subalias("1", A.m_RESET);
|
||||
register_subalias("2", A.m_A.m_Q7Q);
|
||||
register_subalias("3", A.m_A.m_Q7);
|
||||
register_subalias("4", A.m_A.m_DS);
|
||||
register_subalias("5", A.m_A.m_D1);
|
||||
register_subalias("6", A.m_A.m_D0);
|
||||
register_subalias("7", A.m_CLKA);
|
||||
register_subalias("8", "A.GND");
|
||||
|
||||
register_subalias("9", A.m_CLK);
|
||||
register_subalias("10", A.m_CLKB);
|
||||
register_subalias("11", A.m_B.m_D0);
|
||||
register_subalias("12", A.m_B.m_D1);
|
||||
register_subalias("13", A.m_B.m_DS);
|
||||
register_subalias("14", A.m_B.m_Q7);
|
||||
register_subalias("15", A.m_B.m_Q7Q);
|
||||
register_subalias("16", "A.VCC");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
private:
|
||||
NETLIB_SUB(8277) A;
|
||||
};
|
||||
|
||||
NETLIB_DEVICE_IMPL(8277, "TTL_8277", "+RESET,+CLK,+CLKA,+D0A,+D1A,+DSA,+CLKB,+D0B,+D1B,+DSB,@VCC,@GND")
|
||||
NETLIB_DEVICE_IMPL(8277_dip, "TTL_8277_DIP", "")
|
||||
|
||||
} //namespace devices
|
||||
} // namespace netlist
|
27
src/lib/netlist/devices/nld_8277.h
Normal file
27
src/lib/netlist/devices/nld_8277.h
Normal file
@ -0,0 +1,27 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz
|
||||
|
||||
#ifndef NLD_8277_H_
|
||||
#define NLD_8277_H_
|
||||
|
||||
#include "netlist/nl_setup.h"
|
||||
|
||||
#define TTL_8277(name, cRESET, cCLK, cCLKA, cD0A, cD1A, cDSA, cCLKB, cD0B, cD1B, cDSB) \
|
||||
NET_REGISTER_DEV(TTL_8277, name) \
|
||||
NET_CONNECT(name, VCC, VCC) \
|
||||
NET_CONNECT(name, GND, GND) \
|
||||
NET_CONNECT(name, RESET, cRESET) \
|
||||
NET_CONNECT(name, CLK, cCLK) \
|
||||
NET_CONNECT(name, CLKA, cCLKA) \
|
||||
NET_CONNECT(name, CLKB, cCLKB) \
|
||||
NET_CONNECT(name, D0A, cD0A) \
|
||||
NET_CONNECT(name, D0B, cD0B) \
|
||||
NET_CONNECT(name, D1A, cD1A) \
|
||||
NET_CONNECT(name, D1B, cD1B) \
|
||||
NET_CONNECT(name, DSA, cDSA) \
|
||||
NET_CONNECT(name, DSB, cDSB)
|
||||
|
||||
#define TTL_8277_DIP(name) \
|
||||
NET_REGISTER_DEV(TTL_8277_DIP, name)
|
||||
|
||||
#endif /* NLD_2877_H_ */
|
103
src/lib/netlist/devices/nld_9321.cpp
Normal file
103
src/lib/netlist/devices/nld_9321.cpp
Normal file
@ -0,0 +1,103 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz
|
||||
/*
|
||||
* nld_9321.cpp
|
||||
*
|
||||
* 9321: Dual One-of-Four Decoder
|
||||
*
|
||||
* +------------+
|
||||
* /E |1 ++ 16| VCC
|
||||
* A0 |2 15| /E
|
||||
* A1 |3 14| A0
|
||||
* /D0 |4 9321 13| A1
|
||||
* /D1 |5 12| /D0
|
||||
* /D2 |6 11| /D1
|
||||
* /D3 |7 10| /D2
|
||||
* GND |8 9| /D3
|
||||
* +------------+
|
||||
*
|
||||
*/
|
||||
|
||||
#include "nld_9321.h"
|
||||
#include "netlist/nl_base.h"
|
||||
|
||||
namespace netlist
|
||||
{
|
||||
namespace devices
|
||||
{
|
||||
class NETLIB_NAME(9321);
|
||||
|
||||
NETLIB_OBJECT(9321_GATE)
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(9321_GATE)
|
||||
, m_enable(*this, "m_enable", true)
|
||||
, m_o(*this, "m_o", 0)
|
||||
, m_A(*this, 0, "A{}", NETLIB_DELEGATE(in))
|
||||
, m_D(*this, 0, "D{}")
|
||||
, m_E(*this, "E", NETLIB_DELEGATE(e))
|
||||
, m_power_pins(*this)
|
||||
{
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(in)
|
||||
{
|
||||
m_o = (m_A[1]() << 1) | m_A[0]();
|
||||
for (std::size_t i=0; i<4; i++)
|
||||
m_D[i].push((i == m_o && m_enable) ? 0 : 1, NLTIME_FROM_NS(21));
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(e)
|
||||
{
|
||||
m_enable = m_E();
|
||||
for (std::size_t i=0; i<4; i++)
|
||||
m_D[i].push((i == m_o && m_enable) ? 0 : 1, NLTIME_FROM_NS(18));
|
||||
}
|
||||
|
||||
public:
|
||||
state_var<bool> m_enable;
|
||||
state_var<uint8_t> m_o;
|
||||
object_array_t<logic_input_t, 2> m_A;
|
||||
object_array_t<logic_output_t, 4> m_D;
|
||||
logic_input_t m_E;
|
||||
nld_power_pins m_power_pins;
|
||||
};
|
||||
|
||||
NETLIB_OBJECT(9321)
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(9321)
|
||||
, m_A(*this, "A")
|
||||
, m_B(*this, "B")
|
||||
{
|
||||
register_subalias("AE1", m_A.m_E);
|
||||
register_subalias("BE1", m_B.m_E);
|
||||
register_subalias("AA0", m_A.m_A[0]);
|
||||
register_subalias("BA0", m_B.m_A[0]);
|
||||
register_subalias("AA1", m_A.m_A[1]);
|
||||
register_subalias("BA1", m_B.m_A[1]);
|
||||
register_subalias("AD0", m_A.m_D[0]);
|
||||
register_subalias("BD0", m_B.m_D[0]);
|
||||
register_subalias("AD1", m_A.m_D[1]);
|
||||
register_subalias("BD1", m_B.m_D[1]);
|
||||
register_subalias("AD2", m_A.m_D[2]);
|
||||
register_subalias("BD2", m_B.m_D[2]);
|
||||
register_subalias("AD3", m_A.m_D[3]);
|
||||
register_subalias("BD3", m_B.m_D[3]);
|
||||
|
||||
connect("A.VCC", "B.VCC");
|
||||
connect("A.GND", "B.GND");
|
||||
|
||||
register_subalias("GND", "A.GND");
|
||||
register_subalias("VCC", "B.VCC");
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(9321_dip);
|
||||
private:
|
||||
NETLIB_SUB(9321_GATE) m_A;
|
||||
NETLIB_SUB(9321_GATE) m_B;
|
||||
};
|
||||
|
||||
NETLIB_DEVICE_IMPL(9321_GATE, "TTL_9321_GATE", "")
|
||||
NETLIB_DEVICE_IMPL(9321, "TTL_9321", "+SELECT,+A1,+B1,+A2,+B2,+A3,+B3,+A4,+B4,+STROBE,@VCC,@GND")
|
||||
|
||||
} //namespace devices
|
||||
} // namespace netlist
|
16
src/lib/netlist/devices/nld_9321.h
Normal file
16
src/lib/netlist/devices/nld_9321.h
Normal file
@ -0,0 +1,16 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz
|
||||
|
||||
#ifndef NLD_9321_H_
|
||||
#define NLD_9321_H_
|
||||
|
||||
#include "netlist/nl_setup.h"
|
||||
|
||||
#define TTL_9321_GATE(...) \
|
||||
NET_REGISTER_DEVEXT(TTL_9321_GATE, __VA_ARGS__)
|
||||
|
||||
// usage: TTL_9321(name, cAE, cA0, cA1, cBE, cB0, cB1)
|
||||
#define TTL_9321(...) \
|
||||
NET_REGISTER_DEVEXT(TTL_9321, __VA_ARGS__)
|
||||
|
||||
#endif /* NLD_9321_H_ */
|
@ -236,6 +236,14 @@
|
||||
#define EPROM_2716(...) \
|
||||
NET_REGISTER_DEVEXT(EPROM_2716, __VA_ARGS__)
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Source: src/lib/netlist/devices/nld_roms.cpp
|
||||
// ---------------------------------------------------------------------
|
||||
// usage : PROM_MK28000(name, pOE1, pOE2, pAR, pA0, pA1, pA2, pA3, pA4, pA5, pA6, pA7, pA8, pA9, pA10, pA11)
|
||||
// auto connect: VCC, GND
|
||||
#define PROM_MK28000(...) \
|
||||
NET_REGISTER_DEVEXT(PROM_MK28000, __VA_ARGS__)
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Source: src/lib/netlist/devices/nld_7448.cpp
|
||||
// ---------------------------------------------------------------------
|
||||
@ -568,6 +576,13 @@
|
||||
#define TTL_9316(...) \
|
||||
NET_REGISTER_DEVEXT(TTL_9316, __VA_ARGS__)
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Source: src/lib/netlist/devices/nld_9321.cpp
|
||||
// ---------------------------------------------------------------------
|
||||
// usage: TTL_9321(name, cAE, cA0, cA1, cBE, cB0, cB1)
|
||||
#define TTL_9321(...) \
|
||||
NET_REGISTER_DEVEXT(TTL_9321, __VA_ARGS__)
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Source: src/lib/netlist/devices/nld_9322.cpp
|
||||
// ---------------------------------------------------------------------
|
||||
@ -661,6 +676,14 @@
|
||||
#define CD4538(...) \
|
||||
NET_REGISTER_DEVEXT(CD4538, __VA_ARGS__)
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Source: src/lib/netlist/devices/nld_8277.cpp
|
||||
// ---------------------------------------------------------------------
|
||||
// usage : TTL_8277(name, pRESET, pCLK, pCLKA, pD0A, pD1A, pDSA, pCLKB, pD0B, pD1B, pDSB)
|
||||
// auto connect: VCC, GND
|
||||
#define TTL_8277(...) \
|
||||
NET_REGISTER_DEVEXT(TTL_8277, __VA_ARGS__)
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Source: src/lib/netlist/devices/nld_schmitt.cpp
|
||||
// ---------------------------------------------------------------------
|
||||
@ -780,6 +803,13 @@
|
||||
#define TTL_AM2847_DIP(...) \
|
||||
NET_REGISTER_DEVEXT(TTL_AM2847_DIP, __VA_ARGS__)
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Source: src/lib/netlist/devices/nld_8277.cpp
|
||||
// ---------------------------------------------------------------------
|
||||
// usage : TTL_8277_DIP(name)
|
||||
#define TTL_8277_DIP(...) \
|
||||
NET_REGISTER_DEVEXT(TTL_8277_DIP, __VA_ARGS__)
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Source: src/lib/netlist/devices/nld_mm5837.cpp
|
||||
// ---------------------------------------------------------------------
|
||||
@ -1228,6 +1258,10 @@
|
||||
#define TTL_9316_DIP(...) \
|
||||
NET_REGISTER_DEVEXT(TTL_9316_DIP, __VA_ARGS__)
|
||||
|
||||
// usage : TTL_9321_DIP(name)
|
||||
#define TTL_9321_DIP(...) \
|
||||
NET_REGISTER_DEVEXT(TTL_9321_DIP, __VA_ARGS__)
|
||||
|
||||
// usage : TTL_9322_DIP(name)
|
||||
#define TTL_9322_DIP(...) \
|
||||
NET_REGISTER_DEVEXT(TTL_9322_DIP, __VA_ARGS__)
|
||||
@ -1434,6 +1468,10 @@
|
||||
#define EPROM_2716_DIP(...) \
|
||||
NET_REGISTER_DEVEXT(EPROM_2716_DIP, __VA_ARGS__)
|
||||
|
||||
// usage : PROM_MK28000_DIP(name)
|
||||
#define PROM_MK28000_DIP(...) \
|
||||
NET_REGISTER_DEVEXT(PROM_MK28000_DIP, __VA_ARGS__)
|
||||
|
||||
// usage : TTL_82S16_DIP(name)
|
||||
#define TTL_82S16_DIP(...) \
|
||||
NET_REGISTER_DEVEXT(TTL_82S16_DIP, __VA_ARGS__)
|
||||
|
@ -24,6 +24,80 @@ namespace netlist
|
||||
{
|
||||
namespace devices
|
||||
{
|
||||
NETLIB_OBJECT(mk28000_prom)
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(mk28000_prom)
|
||||
, m_enable_lo(*this, "m_enable_lo", false)
|
||||
, m_enable_hi(*this, "m_enable_hi", false)
|
||||
, m_latched_rom(*this, "m_latched_rom", 0)
|
||||
, m_A(*this, 1, "A{}", NETLIB_DELEGATE(addr))
|
||||
, m_ARQ(*this, "ARQ", NETLIB_DELEGATE(arq))
|
||||
, m_OE1(*this, "OE1", NETLIB_DELEGATE(oe1))
|
||||
, m_OE2(*this, "OE2", NETLIB_DELEGATE(oe2))
|
||||
, m_O(*this, 1, "O{}", 0)
|
||||
, m_ROM(*this, "ROM")
|
||||
, m_power_pins(*this)
|
||||
{
|
||||
}
|
||||
|
||||
private:
|
||||
inline NETLIB_HANDLERI(arq)
|
||||
{
|
||||
if (m_ARQ() == 0)
|
||||
{
|
||||
m_latched_rom = m_ROM[m_A()];
|
||||
}
|
||||
}
|
||||
|
||||
inline NETLIB_HANDLERI(oe1)
|
||||
{
|
||||
m_enable_lo = m_OE1();
|
||||
uint8_t o = m_enable_lo ? m_latched_rom : 0;
|
||||
for (std::size_t i=0; i<4; i++)
|
||||
{
|
||||
m_O.set_tristate(!m_enable_lo, NLTIME_FROM_NS(600), NLTIME_FROM_NS(600));
|
||||
m_O[i].push((o >> i) & 1, NLTIME_FROM_NS(600));
|
||||
}
|
||||
}
|
||||
|
||||
inline NETLIB_HANDLERI(oe2)
|
||||
{
|
||||
m_enable_hi = m_OE2();
|
||||
uint8_t o = m_enable_hi ? m_latched_rom : 0;
|
||||
for (std::size_t i=4; i<8; i++)
|
||||
{
|
||||
m_O.set_tristate(!m_enable_hi, NLTIME_FROM_NS(600), NLTIME_FROM_NS(600));
|
||||
m_O[i].push((o >> i) & 1, NLTIME_FROM_NS(600));
|
||||
}
|
||||
}
|
||||
|
||||
inline NETLIB_HANDLERI(addr)
|
||||
{
|
||||
uint8_t o = (m_enable_hi || m_enable_lo) ? m_latched_rom : 0;
|
||||
for (std::size_t i=0; i<4; i++)
|
||||
{
|
||||
m_O.set_tristate(!m_enable_lo, NLTIME_FROM_NS(600), NLTIME_FROM_NS(600));
|
||||
m_O[i].push((o >> i) & 1, NLTIME_FROM_NS(600));
|
||||
}
|
||||
for (std::size_t i=4; i<8; i++)
|
||||
{
|
||||
m_O.set_tristate(!m_enable_hi, NLTIME_FROM_NS(600), NLTIME_FROM_NS(600));
|
||||
m_O[i].push((o >> i) & 1, NLTIME_FROM_NS(600));
|
||||
}
|
||||
}
|
||||
|
||||
state_var<bool> m_enable_lo;
|
||||
state_var<bool> m_enable_hi;
|
||||
state_var<uint8_t> m_latched_rom;
|
||||
object_array_t<logic_input_t, 11> m_A;
|
||||
logic_input_t m_ARQ;
|
||||
logic_input_t m_OE1;
|
||||
logic_input_t m_OE2;
|
||||
object_array_t<tristate_output_t, 8> m_O;
|
||||
|
||||
param_rom_t<uint8_t, 11, 8> m_ROM;
|
||||
nld_power_pins m_power_pins;
|
||||
};
|
||||
|
||||
template <typename D>
|
||||
NETLIB_OBJECT(generic_prom)
|
||||
@ -154,16 +228,17 @@ namespace netlist
|
||||
using output_id = desc_const<1>; // 0: logic, 1: tristate, 2: open collector
|
||||
};
|
||||
|
||||
|
||||
using NETLIB_NAME(82S123) = NETLIB_NAME(generic_prom)<desc_82S123>; // 256 bits, 32x8, used as 256x4
|
||||
using NETLIB_NAME(82S126) = NETLIB_NAME(generic_prom)<desc_82S126>; // 1024 bits, 32x32, used as 256x4
|
||||
using NETLIB_NAME(74S287) = NETLIB_NAME(generic_prom)<desc_74S287>; // 1024 bits, 32x32, used as 256x4
|
||||
using NETLIB_NAME(2716) = NETLIB_NAME(generic_prom)<desc_2716>; // CE2Q = OE, CE1Q = CE
|
||||
using NETLIB_NAME(82S123) = NETLIB_NAME(generic_prom)<desc_82S123>; // 256 bits, 32x8, used as 256x4
|
||||
using NETLIB_NAME(82S126) = NETLIB_NAME(generic_prom)<desc_82S126>; // 1024 bits, 32x32, used as 256x4
|
||||
using NETLIB_NAME(74S287) = NETLIB_NAME(generic_prom)<desc_74S287>; // 1024 bits, 32x32, used as 256x4
|
||||
using NETLIB_NAME(2716) = NETLIB_NAME(generic_prom)<desc_2716>; // CE2Q = OE, CE1Q = CE
|
||||
using NETLIB_NAME(MK28000) = NETLIB_NAME(mk28000_prom); // 16384 bits, either 2048x8 or 4096x4, determined by OE1/OE2 use
|
||||
|
||||
NETLIB_DEVICE_IMPL(82S126, "PROM_82S126", "+CE1Q,+CE2Q,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,@VCC,@GND")
|
||||
NETLIB_DEVICE_IMPL(74S287, "PROM_74S287", "+CE1Q,+CE2Q,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,@VCC,@GND")
|
||||
NETLIB_DEVICE_IMPL(82S123, "PROM_82S123", "+CEQ,+A0,+A1,+A2,+A3,+A4,@VCC,@GND")
|
||||
NETLIB_DEVICE_IMPL(2716, "EPROM_2716", "+CE2Q,+CE1Q,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10,@VCC,@GND")
|
||||
NETLIB_DEVICE_IMPL(MK28000, "PROM_MK28000", "+OE1,+OE2,+ARQ,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10,+A11,@VCC,@GND")
|
||||
|
||||
} //namespace devices
|
||||
} // namespace netlist
|
||||
|
@ -26,4 +26,8 @@
|
||||
#define EPROM_2716(...) \
|
||||
NET_REGISTER_DEVEXT(EPROM_2716, __VA_ARGS__)
|
||||
|
||||
// PROM_MK28000(name, cOE1, cOE2, cAR, cA0, cA1, cA2, cA3, cA4, cA5, cA6, cA7, cA8, cA9, cA10, cA11)
|
||||
#define PROM_MK28000(...) \
|
||||
NET_REGISTER_DEVEXT(PROM_MK28000, __VA_ARGS__)
|
||||
|
||||
#endif /* NLD_ROMS_H_ */
|
||||
|
@ -355,6 +355,52 @@ static NETLIST_START(PROM_82S115_DIP)
|
||||
)
|
||||
NETLIST_END()
|
||||
|
||||
//- Identifier: PROM_MK28000_DIP
|
||||
//- Title: MK28000 (2048 x 8 or 4096 x 4) 16384-Bit TTL PROM
|
||||
//- Description: This dynamic ROM is organized internally as 2048 x 8 bits,
|
||||
//- but has separate enables for the upper and lower nybbles, permitting
|
||||
//- use as 4096 x 4 as well.
|
||||
//.
|
||||
//- Pinalias: VCC,A1,A2,A3,A4,A5,A6,A10,GND,A9,A8,A7,ARQ,OE2,A11,O8,O7,O6,O5,O4,O3,O2,O1,OE1
|
||||
//- Package: DIP
|
||||
//- Param: ROM
|
||||
//- The name of the source to load the rom content from
|
||||
//- NamingConvention: Naming conventions follow Mostek datasheet
|
||||
//- Limitations:
|
||||
//- None.
|
||||
|
||||
static NETLIST_START(PROM_MK28000_DIP)
|
||||
|
||||
PROM_MK28000(A)
|
||||
|
||||
DEFPARAM(ROM, "unknown")
|
||||
PARAM(A.ROM, "$(@.ROM)")
|
||||
ALIAS(1, A.VCC)
|
||||
ALIAS(2, A.A1)
|
||||
ALIAS(3, A.A2)
|
||||
ALIAS(4, A.A3)
|
||||
ALIAS(5, A.A4)
|
||||
ALIAS(6, A.A5)
|
||||
ALIAS(7, A.A6)
|
||||
ALIAS(8, A.A10)
|
||||
ALIAS(9, A.GND)
|
||||
ALIAS(10, A.A9)
|
||||
ALIAS(11, A.A8)
|
||||
ALIAS(12, A.A7)
|
||||
ALIAS(13, A.ARQ)
|
||||
ALIAS(14, A.OE2)
|
||||
ALIAS(15, A.A11)
|
||||
ALIAS(16, A.O8)
|
||||
ALIAS(17, A.O7)
|
||||
ALIAS(18, A.O6)
|
||||
ALIAS(19, A.O5)
|
||||
ALIAS(20, A.O4)
|
||||
ALIAS(21, A.O3)
|
||||
ALIAS(22, A.O2)
|
||||
ALIAS(23, A.O1)
|
||||
ALIAS(24, A.OE1)
|
||||
NETLIST_END()
|
||||
|
||||
/* 2102: 1024 x 1-bit Static RAM
|
||||
*
|
||||
* +--------------+
|
||||
@ -394,6 +440,7 @@ NETLIST_START(roms_lib)
|
||||
LOCAL_LIB_ENTRY(EPROM_2716_DIP)
|
||||
LOCAL_LIB_ENTRY(TTL_82S16_DIP)
|
||||
LOCAL_LIB_ENTRY(PROM_82S115_DIP)
|
||||
LOCAL_LIB_ENTRY(PROM_MK28000_DIP)
|
||||
LOCAL_LIB_ENTRY(RAM_2102A_DIP)
|
||||
|
||||
NETLIST_END()
|
||||
|
@ -30,6 +30,9 @@
|
||||
#define PROM_74S287_DIP(name) \
|
||||
NET_REGISTER_DEV(PROM_74S287_DIP, name)
|
||||
|
||||
#define PROM_MK28000_DIP(name) \
|
||||
NET_REGISTER_DEV(PROM_MK28000_DIP, name)
|
||||
|
||||
#define EPROM_2716_DIP(name) \
|
||||
NET_REGISTER_DEV(EPROM_2716_DIP, name)
|
||||
|
||||
|
@ -2846,6 +2846,32 @@ static NETLIST_START(TTL_9322_DIP)
|
||||
)
|
||||
NETLIST_END()
|
||||
|
||||
//- Identifier: TTL_9321_DIP
|
||||
//- Title: DM9321/DM8321 Dual 4-Line to 1-Line Data Selectors/Multiplexers
|
||||
//- Pinalias: AE,AA0,AA1,AD0,AD1,AD2,AD3,GND,BD3,BD2,BD1,BD0,BA1,BA0,BE,VCC
|
||||
//- Package: DIP
|
||||
//- NamingConvention: Naming conventions follow National Semiconductor datasheet
|
||||
//-
|
||||
static NETLIST_START(TTL_9321_DIP)
|
||||
TTL_9321_GATE(A)
|
||||
TTL_9321_GATE(B)
|
||||
|
||||
NET_C(A.VCC, B.VCC)
|
||||
NET_C(A.GND, B.GND)
|
||||
|
||||
DIPPINS( /* +--------------+ */
|
||||
A.E, /* /E |1 ++ 16| VCC */ A.VCC,
|
||||
A.A0, /* A0 |2 15| /E */ B.E,
|
||||
A.A1, /* A1 |3 14| A0 */ B.A0,
|
||||
A.D0, /* /D0 |4 9322 13| A1 */ B.A1,
|
||||
A.D1, /* /D1 |5 12| /D0 */ B.D0,
|
||||
A.D2, /* /D2 |6 11| /D1 */ B.D1,
|
||||
A.D3, /* /D3 |7 10| /D2 */ B.D2,
|
||||
A.GND, /* GND |8 9| /D3 */ B.D3
|
||||
/* +--------------+ */
|
||||
)
|
||||
NETLIST_END()
|
||||
|
||||
//- Identifier: TTL_9602_DIP
|
||||
//- Title: DM9602/DM6802 Dual Retriggerable, Resettable One Shots
|
||||
//- Description: These dual resettable, retriggerable one shots have two
|
||||
@ -3496,5 +3522,6 @@ NETLIST_START(ttl74xx_lib)
|
||||
LOCAL_LIB_ENTRY(TTL_9312_DIP)
|
||||
LOCAL_LIB_ENTRY(TTL_9310_DIP)
|
||||
LOCAL_LIB_ENTRY(TTL_9316_DIP)
|
||||
LOCAL_LIB_ENTRY(TTL_9321_DIP)
|
||||
LOCAL_LIB_ENTRY(TTL_9322_DIP)
|
||||
NETLIST_END()
|
||||
|
@ -418,6 +418,9 @@
|
||||
#define TTL_9316_DIP(name) \
|
||||
NET_REGISTER_DEV(TTL_9316_DIP, name)
|
||||
|
||||
#define TTL_9321_DIP(name) \
|
||||
NET_REGISTER_DEV(TTL_9321_DIP, name)
|
||||
|
||||
#define TTL_9322_DIP(name) \
|
||||
NET_REGISTER_DEV(TTL_9322_DIP, name)
|
||||
|
||||
|
@ -58,7 +58,7 @@ NETLIST_START(flyball)
|
||||
RES(R76, RES_K(100)) // RES., CARBON, 5%, 1/4W, 100K
|
||||
RES(R77, 820) // RES., CARBON, 5%, 1/4W, 820
|
||||
RES(R78, RES_K(100)) // RES., CARBON, 5%, 1/4W, 100K
|
||||
RES(R79, RES_K(820)) // RES., CARBON, 5%, 1/4W, 820K
|
||||
RES(R79, RES_K(1)) // RES., CARBON, 5%, 1/4W, 820K // Verified as 1K on a real board
|
||||
RES(R80, RES_K(330)) // RES., CARBON, 5%, 1/4W, 330 // (330 on parts list, but 330K on schematic, 330 does not work in the netlist)
|
||||
RES(R87, RES_K(1)) // RES., CARBON, 5%, 1/4W, 1K
|
||||
RES(R88, RES_K(3.3)) // RES., CARBON, 5%, 1/4W, 3.3K
|
||||
@ -68,7 +68,8 @@ NETLIST_START(flyball)
|
||||
RES(R92, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
|
||||
POT(R95, RES_K(10)) // TRIMPOT, 10K
|
||||
RES(R96, RES_K(47)) // RES., CARBON, 5%, 1/4W, 47K
|
||||
RES(R97, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
|
||||
RES(R97A, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
|
||||
RES(R97B, RES_K(24.4)) // RES., CARBON, 5%, 1/4W, 10K // Verified to exist on a real board
|
||||
RES(R98, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K
|
||||
RES(R99, RES_K(33)) // RES., CARBON, 5%, 1/4W, 33K
|
||||
|
||||
|
@ -56,12 +56,10 @@
|
||||
netlist system per-game:
|
||||
|
||||
TM-057 (Stunt Cycle)
|
||||
566 Voltage-Controlled Oscillator
|
||||
1N751A Zener Diode
|
||||
1N752A Zener Diode
|
||||
|
||||
TM-055 (Indy 4)
|
||||
7406 Hex Inverter Buffers/Drivers with O.C. H.V. Outputs (note: Might not be needed, could just clone from 7404)
|
||||
7417 Hex Buffers/Drivers
|
||||
9301 1-of-10 Decoder
|
||||
LM339 Quad Comparator
|
||||
@ -72,8 +70,10 @@
|
||||
#include "emu.h"
|
||||
|
||||
#include "machine/netlist.h"
|
||||
#include "netlist/nl_setup.h"
|
||||
#include "machine/nl_stuntcyc.h"
|
||||
#include "machine/nl_gtrak10.h"
|
||||
#include "machine/nl_tank.h"
|
||||
#include "netlist/devices/net_lib.h"
|
||||
#include "video/fixfreq.h"
|
||||
#include "screen.h"
|
||||
@ -85,12 +85,12 @@
|
||||
#define V_TOTAL (0x105+1) // 262
|
||||
#define H_TOTAL (0x1C6+1) // 454
|
||||
|
||||
#define HBSTART (H_TOTAL)
|
||||
#define HBEND (32)
|
||||
#define VBSTART (V_TOTAL)
|
||||
#define VBEND (16)
|
||||
#define HBSTART (H_TOTAL)
|
||||
#define HBEND (32)
|
||||
#define VBSTART (V_TOTAL)
|
||||
#define VBEND (16)
|
||||
|
||||
#define HRES_MULT (1)
|
||||
#define HRES_MULT (1)
|
||||
// end
|
||||
|
||||
#define SC_VIDCLOCK (14318000/2)
|
||||
@ -101,6 +101,14 @@
|
||||
#define SC_VBSTART (SC_VTOTAL)
|
||||
#define SC_VBEND (8)
|
||||
|
||||
#define TANK_VIDCLOCK (14318000)
|
||||
#define TANK_HTOTAL (904)
|
||||
#define TANK_VTOTAL (520)
|
||||
#define TANK_HBSTART (SC_HTOTAL)
|
||||
#define TANK_HBEND (32)
|
||||
#define TANK_VBSTART (SC_VTOTAL)
|
||||
#define TANK_VBEND (8)
|
||||
|
||||
#define GTRAK10_VIDCLOCK 14318181
|
||||
#define GTRAK10_HTOTAL 451
|
||||
#define GTRAK10_VTOTAL 521
|
||||
@ -120,16 +128,6 @@ public:
|
||||
required_device<fixedfreq_device> m_video;
|
||||
|
||||
void atarikee(machine_config &config);
|
||||
protected:
|
||||
|
||||
// driver_device overrides
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
|
||||
class stuntcyc_state : public driver_device
|
||||
@ -143,11 +141,23 @@ public:
|
||||
}
|
||||
|
||||
void stuntcyc(machine_config &config);
|
||||
protected:
|
||||
|
||||
// driver_device overrides
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
private:
|
||||
required_device<netlist_mame_device> m_maincpu;
|
||||
required_device<fixedfreq_device> m_video;
|
||||
};
|
||||
|
||||
class tank_state : public driver_device
|
||||
{
|
||||
public:
|
||||
tank_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_video(*this, "fixfreq")
|
||||
{
|
||||
}
|
||||
|
||||
void tank(machine_config &config);
|
||||
|
||||
private:
|
||||
required_device<netlist_mame_device> m_maincpu;
|
||||
@ -182,26 +192,6 @@ static NETLIST_START(atarikee)
|
||||
NETLIST_END()
|
||||
|
||||
|
||||
void atarikee_state::machine_start()
|
||||
{
|
||||
}
|
||||
|
||||
void atarikee_state::machine_reset()
|
||||
{
|
||||
}
|
||||
|
||||
void atarikee_state::video_start()
|
||||
{
|
||||
}
|
||||
|
||||
void stuntcyc_state::machine_start()
|
||||
{
|
||||
}
|
||||
|
||||
void stuntcyc_state::machine_reset()
|
||||
{
|
||||
}
|
||||
|
||||
void atarikee_state::atarikee(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
@ -217,7 +207,6 @@ void atarikee_state::atarikee(machine_config &config)
|
||||
m_video->set_threshold(0.30);
|
||||
}
|
||||
|
||||
//#define STUNTCYC_NL_CLOCK (14318181*69)
|
||||
#define STUNTCYC_NL_CLOCK (SC_HTOTAL*SC_VTOTAL*60*140)
|
||||
|
||||
void stuntcyc_state::stuntcyc(machine_config &config)
|
||||
@ -241,6 +230,36 @@ void stuntcyc_state::stuntcyc(machine_config &config)
|
||||
m_video->set_horz_scale(4);
|
||||
}
|
||||
|
||||
void tank_state::tank(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
NETLIST_CPU(config, m_maincpu, netlist::config::DEFAULT_CLOCK()).set_source(NETLIST_NAME(tank));
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("VIDEO_OUT", "fixfreq", FUNC(fixedfreq_device::update_composite_monochrome));
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:p1lup", "P1_LEFT_UP.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:p1ldown", "P1_LEFT_DOWN.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:p1rup", "P1_RIGHT_UP.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:p1rdown", "P1_RIGHT_DOWN.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:p2lup", "P2_LEFT_UP.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:p2ldown", "P2_LEFT_DOWN.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:p2rup", "P2_RIGHT_UP.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:p2rdown", "P2_RIGHT_DOWN.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:p1fire", "P1_FIRE.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:p2fire", "P2_FIRE.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:coin1", "COIN1.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:coin2", "COIN2.POS", 0);
|
||||
|
||||
/* video hardware */
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
FIXFREQ(config, m_video).set_screen("screen");
|
||||
m_video->set_monitor_clock(TANK_VIDCLOCK);
|
||||
m_video->set_horz_params(TANK_HTOTAL-84,TANK_HTOTAL-64,TANK_HTOTAL-16, TANK_HTOTAL);
|
||||
m_video->set_vert_params(TANK_VTOTAL-21,TANK_VTOTAL-17,TANK_VTOTAL-12, TANK_VTOTAL);
|
||||
m_video->set_fieldcount(1);
|
||||
m_video->set_threshold(0.89);
|
||||
m_video->set_gain(0.2);
|
||||
m_video->set_horz_scale(1);
|
||||
}
|
||||
|
||||
void gtrak10_state::gtrak10(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
@ -286,12 +305,30 @@ static INPUT_PORTS_START( gtrak10 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( stuntcyc )
|
||||
PORT_START("IN0") /* fake */
|
||||
PORT_START("IN0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_COIN1) NETLIST_LOGIC_PORT_CHANGED("maincpu", "coinsw")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_START1) NETLIST_LOGIC_PORT_CHANGED("maincpu", "startsw1")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_START2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "startsw2")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( tank )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_2WAY NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1lup")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1ldown")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1rup")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1rdown")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_2WAY PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1lup")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1ldown")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1rup")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1rdown")
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1fire")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p2fire")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "coin1")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "coin2")
|
||||
INPUT_PORTS_END
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Game driver(s)
|
||||
@ -486,7 +523,7 @@ ROM_START( tank )
|
||||
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
|
||||
|
||||
/* The "custom" 24-pin ROM used in Atari/Kee Games "Tank" is known as a MOSTEK MK28000P. */
|
||||
ROM_REGION( 0x0801, "gfx", ROMREGION_ERASE00 )
|
||||
ROM_REGION( 0x0801, "maincpu:gfx", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "90-2006.k10", 0x0000, 0x0800, CRC(87f5c365) SHA1(bc518a5795ef3ed8a7c0463653d70f60780ddda1) )
|
||||
ROM_END
|
||||
|
||||
@ -596,7 +633,7 @@ GAME(1974, qwakttl, 0, atarikee, 0, atarikee_state, empty_init,
|
||||
GAME(1975, sharkjaw, 0, atarikee, 0, atarikee_state, empty_init, ROT0, "Atari/Horror Games", "Shark JAWS [TTL]", MACHINE_IS_SKELETON)
|
||||
GAME(1975, steeplec, 0, atarikee, 0, atarikee_state, empty_init, ROT0, "Atari", "Steeplechase [TTL]", MACHINE_IS_SKELETON)
|
||||
GAME(1976, stuntcyc, 0, stuntcyc, stuntcyc, stuntcyc_state, empty_init, ROT0, "Atari", "Stunt Cycle [TTL]", MACHINE_IS_SKELETON)
|
||||
GAME(1974, tank, 0, atarikee, 0, atarikee_state, empty_init, ROT0, "Atari/Kee", "Tank/Tank Cocktail [TTL]", MACHINE_IS_SKELETON)
|
||||
GAME(1974, tank, 0, tank, tank, tank_state, empty_init, ROT0, "Atari/Kee", "Tank/Tank Cocktail [TTL]", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
|
||||
GAME(1975, tankii, 0, atarikee, 0, atarikee_state, empty_init, ROT0, "Atari/Kee", "Tank II [TTL]", MACHINE_IS_SKELETON)
|
||||
|
||||
// MISSING ROM DUMPS
|
||||
|
@ -1,6 +1,12 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz
|
||||
#ifndef MAME_MACHINE_NL_STUNTCYC_H
|
||||
#define MAME_MACHINE_NL_STUNTCYC_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "netlist/nl_setup.h"
|
||||
|
||||
NETLIST_EXTERNAL(stuntcyc)
|
||||
|
||||
#endif // MAME_MACHINE_NL_STUNTCYC_H
|
||||
|
1920
src/mame/machine/nl_tank.cpp
Normal file
1920
src/mame/machine/nl_tank.cpp
Normal file
File diff suppressed because it is too large
Load Diff
12
src/mame/machine/nl_tank.h
Normal file
12
src/mame/machine/nl_tank.h
Normal file
@ -0,0 +1,12 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz
|
||||
#ifndef MAME_MACHINE_NL_TANK_H
|
||||
#define MAME_MACHINE_NL_TANK_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "netlist/nl_setup.h"
|
||||
|
||||
NETLIST_EXTERNAL(tank)
|
||||
|
||||
#endif // MAME_MACHINE_NL_TANK_H
|
Loading…
Reference in New Issue
Block a user