mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
-cpu/cop400, dsp16, hmcs40: Removed MCFG macros. [Ryan Holtz]
-drivers/advision, cidelsa, hh_cop400, hh_hmcs40, play_2, test_t400, thayers: Removed MACHINE_CONFIG macros. [Ryan Holtz] -machine/alpha8201: Removed MACHINE_CONFIG macros. [Ryan Holtz]
This commit is contained in:
parent
ce07b7377c
commit
c96b8ee280
@ -13,46 +13,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
// i/o pins
|
||||
|
||||
// L pins: 8-bit bi-directional
|
||||
#define MCFG_COP400_READ_L_CB(_devcb) \
|
||||
downcast<cop400_cpu_device &>(*device).set_read_l_callback(DEVCB_##_devcb);
|
||||
#define MCFG_COP400_WRITE_L_CB(_devcb) \
|
||||
downcast<cop400_cpu_device &>(*device).set_write_l_callback(DEVCB_##_devcb);
|
||||
// output state when pins are in tri-state, default 0
|
||||
#define MCFG_COP400_READ_L_TRISTATE_CB(_devcb) \
|
||||
downcast<cop400_cpu_device &>(*device).set_read_l_tristate_callback(DEVCB_##_devcb);
|
||||
|
||||
// G pins: 4-bit bi-directional
|
||||
#define MCFG_COP400_READ_G_CB(_devcb) \
|
||||
downcast<cop400_cpu_device &>(*device).set_read_g_callback(DEVCB_##_devcb);
|
||||
#define MCFG_COP400_WRITE_G_CB(_devcb) \
|
||||
downcast<cop400_cpu_device &>(*device).set_write_g_callback(DEVCB_##_devcb);
|
||||
|
||||
// D outputs: 4-bit general purpose output
|
||||
#define MCFG_COP400_WRITE_D_CB(_devcb) \
|
||||
downcast<cop400_cpu_device &>(*device).set_write_d_callback(DEVCB_##_devcb);
|
||||
|
||||
// IN inputs: 4-bit general purpose input
|
||||
#define MCFG_COP400_READ_IN_CB(_devcb) \
|
||||
downcast<cop400_cpu_device &>(*device).set_read_in_callback(DEVCB_##_devcb);
|
||||
|
||||
// SI/SO lines: serial in/out or counter/gen.purpose
|
||||
#define MCFG_COP400_READ_SI_CB(_devcb) \
|
||||
downcast<cop400_cpu_device &>(*device).set_read_si_callback(DEVCB_##_devcb);
|
||||
#define MCFG_COP400_WRITE_SO_CB(_devcb) \
|
||||
downcast<cop400_cpu_device &>(*device).set_write_so_callback(DEVCB_##_devcb);
|
||||
|
||||
// SK output line: logic-controlled clock or gen.purpose
|
||||
#define MCFG_COP400_WRITE_SK_CB(_devcb) \
|
||||
downcast<cop400_cpu_device &>(*device).set_write_sk_callback(DEVCB_##_devcb);
|
||||
|
||||
// CKI/CKO lines: only CKO input here
|
||||
#define MCFG_COP400_READ_CKO_CB(_devcb) \
|
||||
downcast<cop400_cpu_device &>(*device).set_read_cko_callback(DEVCB_##_devcb);
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
CONSTANTS
|
||||
***************************************************************************/
|
||||
@ -110,40 +70,36 @@ enum cop400_cko_bond {
|
||||
COP400_CKO_GENERAL_PURPOSE_INPUT
|
||||
};
|
||||
|
||||
|
||||
#define MCFG_COP400_CONFIG(_cki, _cko, _microbus) \
|
||||
downcast<cop400_cpu_device &>(*device).set_cki(_cki); \
|
||||
downcast<cop400_cpu_device &>(*device).set_cko(_cko); \
|
||||
downcast<cop400_cpu_device &>(*device).set_microbus(_microbus);
|
||||
|
||||
|
||||
class cop400_cpu_device : public cpu_device
|
||||
{
|
||||
public:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
|
||||
// configuration helpers
|
||||
template<class Object> devcb_base &set_read_l_callback(Object &&cb) { return m_read_l.set_callback(std::forward<Object>(cb)); }
|
||||
template<class Object> devcb_base &set_read_l_tristate_callback(Object &&cb) { return m_read_l_tristate.set_callback(std::forward<Object>(cb)); }
|
||||
template<class Object> devcb_base &set_write_l_callback(Object &&cb) { return m_write_l.set_callback(std::forward<Object>(cb)); }
|
||||
template<class Object> devcb_base &set_read_g_callback(Object &&cb) { return m_read_g.set_callback(std::forward<Object>(cb)); }
|
||||
template<class Object> devcb_base &set_write_g_callback(Object &&cb) { return m_write_g.set_callback(std::forward<Object>(cb)); }
|
||||
template<class Object> devcb_base &set_write_d_callback(Object &&cb) { return m_write_d.set_callback(std::forward<Object>(cb)); }
|
||||
template<class Object> devcb_base &set_read_in_callback(Object &&cb) { return m_read_in.set_callback(std::forward<Object>(cb)); }
|
||||
template<class Object> devcb_base &set_read_si_callback(Object &&cb) { return m_read_si.set_callback(std::forward<Object>(cb)); }
|
||||
template<class Object> devcb_base &set_write_so_callback(Object &&cb) { return m_write_so.set_callback(std::forward<Object>(cb)); }
|
||||
template<class Object> devcb_base &set_write_sk_callback(Object &&cb) { return m_write_sk.set_callback(std::forward<Object>(cb)); }
|
||||
template<class Object> devcb_base &set_read_cko_callback(Object &&cb) { return m_read_cko.set_callback(std::forward<Object>(cb)); }
|
||||
// L pins: 8-bit bi-directional
|
||||
auto read_l() { return m_read_l.bind(); }
|
||||
auto read_l_tristate() { return m_read_l_tristate.bind(); }
|
||||
auto write_l() { return m_write_l.bind(); }
|
||||
|
||||
// output state when pins are in tri-state, default 0
|
||||
auto read_l_tristate() { return m_read_l_tristate.bind(); }
|
||||
|
||||
// G pins: 4-bit bi-directional
|
||||
auto read_g() { return m_read_g.bind(); }
|
||||
auto write_g() { return m_write_g.bind(); }
|
||||
|
||||
// D outputs: 4-bit general purpose output
|
||||
auto write_d() { return m_write_d.bind(); }
|
||||
|
||||
// IN inputs: 4-bit general purpose input
|
||||
auto read_in() { return m_read_in.bind(); }
|
||||
|
||||
// SI/SO lines: serial in/out or counter/gen.purpose
|
||||
auto read_si() { return m_read_si.bind(); }
|
||||
auto write_so() { return m_write_so.bind(); }
|
||||
|
||||
// SK output line: logic-controlled clock or gen.purpose
|
||||
auto write_sk() { return m_write_sk.bind(); }
|
||||
|
||||
// CKI/CKO lines: only CKO input here
|
||||
auto read_cko() { return m_read_cko.bind(); }
|
||||
|
||||
void set_config(cop400_cki_bond cki, cop400_cko_bond cko, bool has_microbus)
|
||||
|
@ -17,81 +17,31 @@
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
|
||||
#define MCFG_DSP16_EXM(exm) \
|
||||
downcast<dsp16_device_base &>(*device).exm_w(exm);
|
||||
|
||||
#define MCFG_DSP16_EXM_HIGH() \
|
||||
downcast<dsp16_device_base &>(*device).exm_w(1);
|
||||
|
||||
#define MCFG_DSP16_EXM_LOW() \
|
||||
downcast<dsp16_device_base &>(*device).exm_w(0);
|
||||
|
||||
#define MCFG_DSP16_IACK_CB(obj) \
|
||||
downcast<dsp16_device_base &>(*device).set_iack_cb(DEVCB_##obj);
|
||||
|
||||
#define MCFG_DSP16_ICK_CB(obj) \
|
||||
downcast<dsp16_device_base &>(*device).set_ick_cb(DEVCB_##obj);
|
||||
|
||||
#define MCFG_DSP16_ILD_CB(obj) \
|
||||
downcast<dsp16_device_base &>(*device).set_ild_cb(DEVCB_##obj);
|
||||
|
||||
#define MCFG_DSP16_DO_CB(obj) \
|
||||
downcast<dsp16_device_base &>(*device).set_do_cb(DEVCB_##obj);
|
||||
|
||||
#define MCFG_DSP16_OCK_CB(obj) \
|
||||
downcast<dsp16_device_base &>(*device).set_ock_cb(DEVCB_##obj);
|
||||
|
||||
#define MCFG_DSP16_OLD_CB(obj) \
|
||||
downcast<dsp16_device_base &>(*device).set_old_cb(DEVCB_##obj);
|
||||
|
||||
#define MCFG_DSP16_OSE_CB(obj) \
|
||||
downcast<dsp16_device_base &>(*device).set_ose_cb(DEVCB_##obj);
|
||||
|
||||
#define MCFG_DSP16_PIO_R_CB(obj) \
|
||||
downcast<dsp16_device_base &>(*device).set_pio_r_cb(DEVCB_##obj);
|
||||
|
||||
#define MCFG_DSP16_PIO_W_CB(obj) \
|
||||
downcast<dsp16_device_base &>(*device).set_pio_w_cb(DEVCB_##obj);
|
||||
|
||||
#define MCFG_DSP16_PDB_W_CB(obj) \
|
||||
downcast<dsp16_device_base &>(*device).set_pdb_w_cb(DEVCB_##obj);
|
||||
|
||||
#define MCFG_DSP16_PSEL_CB(obj) \
|
||||
downcast<dsp16_device_base &>(*device).set_psel_cb(DEVCB_##obj);
|
||||
|
||||
#define MCFG_DSP16_PIDS_CB(obj) \
|
||||
downcast<dsp16_device_base &>(*device).set_pids_cb(DEVCB_##obj);
|
||||
|
||||
#define MCFG_DSP16_PODS_CB(obj) \
|
||||
downcast<dsp16_device_base &>(*device).set_pods_cb(DEVCB_##obj);
|
||||
|
||||
|
||||
class dsp16_device_base : public cpu_device, protected dsp16_disassembler::cpu
|
||||
{
|
||||
public:
|
||||
DECLARE_WRITE_LINE_MEMBER(exm_w);
|
||||
|
||||
// interrupt output callbacks
|
||||
template <typename Obj> devcb_base *set_iack_cb(Obj &&cb) { return &m_iack_cb.set_callback(std::forward<Obj>(cb)); }
|
||||
auto iack_cb() { return m_iack_cb.bind(); }
|
||||
|
||||
// serial output callbacks
|
||||
template <typename Obj> devcb_base *set_ick_cb(Obj &&cb) { return &m_ick_cb.set_callback(std::forward<Obj>(cb)); }
|
||||
template <typename Obj> devcb_base *set_ild_cb(Obj &&cb) { return &m_ild_cb.set_callback(std::forward<Obj>(cb)); }
|
||||
template <typename Obj> devcb_base *set_do_cb(Obj &&cb) { return &m_do_cb.set_callback(std::forward<Obj>(cb)); }
|
||||
template <typename Obj> devcb_base *set_ock_cb(Obj &&cb) { return &m_ock_cb.set_callback(std::forward<Obj>(cb)); }
|
||||
template <typename Obj> devcb_base *set_old_cb(Obj &&cb) { return &m_old_cb.set_callback(std::forward<Obj>(cb)); }
|
||||
template <typename Obj> devcb_base *set_ose_cb(Obj &&cb) { return &m_ose_cb.set_callback(std::forward<Obj>(cb)); }
|
||||
auto ick_cb() { return m_ick_cb.bind(); }
|
||||
auto ild_cb() { return m_ild_cb.bind(); }
|
||||
auto do_cb() { return m_do_cb.bind(); }
|
||||
auto ock_cb() { return m_ock_cb.bind(); }
|
||||
auto old_cb() { return m_old_cb.bind(); }
|
||||
auto ose_cb() { return m_ose_cb.bind(); }
|
||||
|
||||
// high-level active parallel I/O callbacks
|
||||
template <typename Obj> devcb_base *set_pio_r_cb(Obj &&cb) { return &m_pio_r_cb.set_callback(std::forward<Obj>(cb)); }
|
||||
template <typename Obj> devcb_base *set_pio_w_cb(Obj &&cb) { return &m_pio_w_cb.set_callback(std::forward<Obj>(cb)); }
|
||||
auto pio_r_cb() { return m_pio_r_cb.bind(); }
|
||||
auto pio_w_cb() { return m_pio_w_cb.bind(); }
|
||||
|
||||
// low-level parallel I/O callbacks
|
||||
template <typename Obj> devcb_base *set_pdb_w_cb(Obj &&cb) { return &m_pdb_w_cb.set_callback(std::forward<Obj>(cb)); }
|
||||
template <typename Obj> devcb_base *set_psel_cb(Obj &&cb) { return &m_psel_cb.set_callback(std::forward<Obj>(cb)); }
|
||||
template <typename Obj> devcb_base *set_pids_cb(Obj &&cb) { return &m_pids_cb.set_callback(std::forward<Obj>(cb)); }
|
||||
template <typename Obj> devcb_base *set_pods_cb(Obj &&cb) { return &m_pods_cb.set_callback(std::forward<Obj>(cb)); }
|
||||
auto pdb_w_cb() { return m_pdb_w_cb.bind(); }
|
||||
auto psel_cb() { return m_psel_cb.bind(); }
|
||||
auto pids_cb() { return m_pids_cb.bind(); }
|
||||
auto pods_cb() { return m_pods_cb.bind(); }
|
||||
|
||||
// interrupt outputs
|
||||
DECLARE_READ_LINE_MEMBER(iack_r) { return m_iack_out; }
|
||||
|
@ -94,8 +94,8 @@ hmcs40_cpu_device::hmcs40_cpu_device(const machine_config &mconfig, device_type
|
||||
, m_family(family)
|
||||
, m_polarity(polarity)
|
||||
, m_stack_levels(stack_levels)
|
||||
, m_read_r0(*this), m_read_r1(*this), m_read_r2(*this), m_read_r3(*this), m_read_r4(*this), m_read_r5(*this), m_read_r6(*this), m_read_r7(*this)
|
||||
, m_write_r0(*this), m_write_r1(*this), m_write_r2(*this), m_write_r3(*this), m_write_r4(*this), m_write_r5(*this), m_write_r6(*this), m_write_r7(*this)
|
||||
, m_read_r{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}}
|
||||
, m_write_r{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}}
|
||||
, m_read_d(*this)
|
||||
, m_write_d(*this)
|
||||
{
|
||||
@ -206,23 +206,11 @@ void hmcs40_cpu_device::device_start()
|
||||
reset_prescaler();
|
||||
|
||||
// resolve callbacks
|
||||
m_read_r0.resolve_safe(m_polarity & 0xf);
|
||||
m_read_r1.resolve_safe(m_polarity & 0xf);
|
||||
m_read_r2.resolve_safe(m_polarity & 0xf);
|
||||
m_read_r3.resolve_safe(m_polarity & 0xf);
|
||||
m_read_r4.resolve_safe(m_polarity & 0xf);
|
||||
m_read_r5.resolve_safe(m_polarity & 0xf);
|
||||
m_read_r6.resolve_safe(m_polarity & 0xf);
|
||||
m_read_r7.resolve_safe(m_polarity & 0xf);
|
||||
|
||||
m_write_r0.resolve_safe();
|
||||
m_write_r1.resolve_safe();
|
||||
m_write_r2.resolve_safe();
|
||||
m_write_r3.resolve_safe();
|
||||
m_write_r4.resolve_safe();
|
||||
m_write_r5.resolve_safe();
|
||||
m_write_r6.resolve_safe();
|
||||
m_write_r7.resolve_safe();
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
m_read_r[i].resolve_safe(m_polarity & 0xf);
|
||||
m_write_r[i].resolve_safe();
|
||||
}
|
||||
|
||||
m_read_d.resolve_safe(m_polarity);
|
||||
m_write_d.resolve_safe();
|
||||
@ -337,19 +325,7 @@ void hmcs40_cpu_device::device_reset()
|
||||
u8 hmcs40_cpu_device::read_r(int index)
|
||||
{
|
||||
index &= 7;
|
||||
u8 inp = 0;
|
||||
|
||||
switch (index)
|
||||
{
|
||||
case 0: inp = m_read_r0(index, 0xff); break;
|
||||
case 1: inp = m_read_r1(index, 0xff); break;
|
||||
case 2: inp = m_read_r2(index, 0xff); break;
|
||||
case 3: inp = m_read_r3(index, 0xff); break;
|
||||
case 4: inp = m_read_r4(index, 0xff); break;
|
||||
case 5: inp = m_read_r5(index, 0xff); break;
|
||||
case 6: inp = m_read_r6(index, 0xff); break;
|
||||
case 7: inp = m_read_r7(index, 0xff); break;
|
||||
}
|
||||
u8 inp = m_read_r[index](index, 0xff);
|
||||
|
||||
if (m_polarity)
|
||||
return (inp & m_r[index]) & 0xf;
|
||||
@ -362,18 +338,7 @@ void hmcs40_cpu_device::write_r(int index, u8 data)
|
||||
index &= 7;
|
||||
data &= 0xf;
|
||||
m_r[index] = data;
|
||||
|
||||
switch (index)
|
||||
{
|
||||
case 0: m_write_r0(index, data, 0xff); break;
|
||||
case 1: m_write_r1(index, data, 0xff); break;
|
||||
case 2: m_write_r2(index, data, 0xff); break;
|
||||
case 3: m_write_r3(index, data, 0xff); break;
|
||||
case 4: m_write_r4(index, data, 0xff); break;
|
||||
case 5: m_write_r5(index, data, 0xff); break;
|
||||
case 6: m_write_r6(index, data, 0xff); break;
|
||||
case 7: m_write_r7(index, data, 0xff); break;
|
||||
}
|
||||
m_write_r[index](index, data, 0xff);
|
||||
}
|
||||
|
||||
int hmcs40_cpu_device::read_d(int index)
|
||||
|
@ -14,18 +14,6 @@
|
||||
|
||||
// I/O ports setup
|
||||
|
||||
// max 8 4-bit R ports
|
||||
#define MCFG_HMCS40_READ_R_CB(R, _devcb) \
|
||||
downcast<hmcs40_cpu_device &>(*device).set_read_r##R##_callback(DEVCB_##_devcb);
|
||||
#define MCFG_HMCS40_WRITE_R_CB(R, _devcb) \
|
||||
downcast<hmcs40_cpu_device &>(*device).set_write_r##R##_callback(DEVCB_##_devcb);
|
||||
|
||||
// 16-bit discrete
|
||||
#define MCFG_HMCS40_READ_D_CB(_devcb) \
|
||||
downcast<hmcs40_cpu_device &>(*device).set_read_d_callback(DEVCB_##_devcb);
|
||||
#define MCFG_HMCS40_WRITE_D_CB(_devcb) \
|
||||
downcast<hmcs40_cpu_device &>(*device).set_write_d_callback(DEVCB_##_devcb);
|
||||
|
||||
enum
|
||||
{
|
||||
HMCS40_INPUT_LINE_INT0 = 0,
|
||||
@ -105,27 +93,13 @@ public:
|
||||
PORT_R7X
|
||||
};
|
||||
|
||||
// configuration helpers
|
||||
template <class Object> devcb_base &set_read_r0_callback(Object &&cb) { return m_read_r0.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_read_r1_callback(Object &&cb) { return m_read_r1.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_read_r2_callback(Object &&cb) { return m_read_r2.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_read_r3_callback(Object &&cb) { return m_read_r3.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_read_r4_callback(Object &&cb) { return m_read_r4.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_read_r5_callback(Object &&cb) { return m_read_r5.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_read_r6_callback(Object &&cb) { return m_read_r6.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_read_r7_callback(Object &&cb) { return m_read_r7.set_callback(std::forward<Object>(cb)); }
|
||||
// max 8 4-bit R ports
|
||||
template <std::size_t Bit> auto read_r() { return m_read_r[Bit].bind(); }
|
||||
template <std::size_t Bit> auto write_r() { return m_write_r[Bit].bind(); }
|
||||
|
||||
template <class Object> devcb_base &set_write_r0_callback(Object &&cb) { return m_write_r0.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_write_r1_callback(Object &&cb) { return m_write_r1.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_write_r2_callback(Object &&cb) { return m_write_r2.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_write_r3_callback(Object &&cb) { return m_write_r3.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_write_r4_callback(Object &&cb) { return m_write_r4.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_write_r5_callback(Object &&cb) { return m_write_r5.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_write_r6_callback(Object &&cb) { return m_write_r6.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_write_r7_callback(Object &&cb) { return m_write_r7.set_callback(std::forward<Object>(cb)); }
|
||||
|
||||
template <class Object> devcb_base &set_read_d_callback(Object &&cb) { return m_read_d.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_write_d_callback(Object &&cb) { return m_write_d.set_callback(std::forward<Object>(cb)); }
|
||||
// 16-bit discrete
|
||||
auto read_d() { return m_read_d.bind(); }
|
||||
auto write_d() { return m_write_d.bind(); }
|
||||
|
||||
protected:
|
||||
enum
|
||||
@ -214,8 +188,8 @@ protected:
|
||||
u16 m_d; // D pins state
|
||||
|
||||
// i/o handlers
|
||||
devcb_read8 m_read_r0, m_read_r1, m_read_r2, m_read_r3, m_read_r4, m_read_r5, m_read_r6, m_read_r7;
|
||||
devcb_write8 m_write_r0, m_write_r1, m_write_r2, m_write_r3, m_write_r4, m_write_r5, m_write_r6, m_write_r7;
|
||||
devcb_read8 m_read_r[8];
|
||||
devcb_write8 m_write_r[8];
|
||||
devcb_read16 m_read_d;
|
||||
devcb_write16 m_write_d;
|
||||
|
||||
|
@ -47,6 +47,7 @@ public:
|
||||
template <class Object> devcb_base &set_vck_callback(Object &&cb) { return m_vck_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_vck_legacy_callback(Object &&cb) { return m_vck_legacy_cb.set_callback(std::forward<Object>(cb)); }
|
||||
auto vck_callback() { return m_vck_cb.bind(); }
|
||||
auto vck_legacy_callback() { return m_vck_legacy_cb.bind(); }
|
||||
|
||||
// reset signal should keep for 2cycle of VCLK
|
||||
DECLARE_WRITE_LINE_MEMBER(reset_w);
|
||||
|
@ -190,13 +190,14 @@ const tiny_rom_entry *qsound_device::device_rom_region() const
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(qsound_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD("dsp", DSP16A, DERIVED_CLOCK(1, 1))
|
||||
MCFG_DEVICE_IO_MAP(dsp_io_map)
|
||||
MCFG_DSP16_OCK_CB(WRITELINE(*this, qsound_device, dsp_ock_w))
|
||||
MCFG_DSP16_PIO_R_CB(READ16(*this, qsound_device, dsp_pio_r))
|
||||
MCFG_DSP16_PIO_W_CB(WRITE16(*this, qsound_device, dsp_pio_w))
|
||||
MACHINE_CONFIG_END
|
||||
void qsound_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
DSP16A(config, m_dsp, DERIVED_CLOCK(1, 1));
|
||||
m_dsp->set_addrmap(AS_IO, &qsound_device::dsp_io_map);
|
||||
m_dsp->ock_cb().set(FUNC(qsound_device::dsp_ock_w));
|
||||
m_dsp->pio_r_cb().set(FUNC(qsound_device::dsp_pio_r));
|
||||
m_dsp->pio_w_cb().set(FUNC(qsound_device::dsp_pio_w));
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -20,7 +20,6 @@
|
||||
#include "emu.h"
|
||||
#include "includes/advision.h"
|
||||
|
||||
#include "cpu/cop400/cop400.h"
|
||||
#include "sound/volt_reg.h"
|
||||
#include "screen.h"
|
||||
#include "softlist.h"
|
||||
@ -62,7 +61,8 @@ INPUT_PORTS_END
|
||||
|
||||
/* Machine Driver */
|
||||
|
||||
MACHINE_CONFIG_START(advision_state::advision)
|
||||
void advision_state::advision(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
I8048(config, m_maincpu, XTAL(11'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &advision_state::program_map);
|
||||
@ -72,36 +72,37 @@ MACHINE_CONFIG_START(advision_state::advision)
|
||||
m_maincpu->p2_out_cb().set(FUNC(advision_state::av_control_w));
|
||||
m_maincpu->t1_in_cb().set(FUNC(advision_state::vsync_r));
|
||||
|
||||
MCFG_DEVICE_ADD(COP411_TAG, COP411, 52631*4) // COP411L-KCN/N, R11=82k, C8=56pF
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_4, COP400_CKO_RAM_POWER_SUPPLY, false)
|
||||
MCFG_COP400_READ_L_CB(READ8(*this, advision_state, sound_cmd_r))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, advision_state, sound_g_w))
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, advision_state, sound_d_w))
|
||||
COP411(config, m_soundcpu, 52631*4); // COP411L-KCN/N, R11=82k, C8=56pF
|
||||
m_soundcpu->set_config(COP400_CKI_DIVISOR_4, COP400_CKO_RAM_POWER_SUPPLY, false);
|
||||
m_soundcpu->read_l().set(FUNC(advision_state::sound_cmd_r));
|
||||
m_soundcpu->write_g().set(FUNC(advision_state::sound_g_w));
|
||||
m_soundcpu->write_d().set(FUNC(advision_state::sound_d_w));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(4*15)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
|
||||
MCFG_SCREEN_UPDATE_DRIVER(advision_state, screen_update)
|
||||
MCFG_SCREEN_SIZE(320, 200)
|
||||
MCFG_SCREEN_VISIBLE_AREA(84, 235, 60, 142)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_PALETTE_ADD("palette", 8)
|
||||
MCFG_PALETTE_INIT_OWNER(advision_state, advision)
|
||||
screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(4*15);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_screen_update(FUNC(advision_state::screen_update));
|
||||
screen.set_size(320, 200);
|
||||
screen.set_visarea(84, 235, 60, 142);
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
PALETTE(config, m_palette, 8).set_init(FUNC(advision_state::palette_init_advision));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
MCFG_DEVICE_ADD("dac", DAC_2BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
|
||||
DAC_2BIT_BINARY_WEIGHTED(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
|
||||
|
||||
/* cartridge */
|
||||
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "advision_cart")
|
||||
MCFG_GENERIC_MANDATORY
|
||||
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "advision_cart").set_must_be_loaded(true);
|
||||
|
||||
/* Software lists */
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list","advision")
|
||||
MACHINE_CONFIG_END
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("advision");
|
||||
}
|
||||
|
||||
/* ROMs */
|
||||
|
||||
|
@ -400,7 +400,8 @@ void cidelsa_state::machine_reset()
|
||||
|
||||
/* Machine Drivers */
|
||||
|
||||
MACHINE_CONFIG_START(cidelsa_state::destryer)
|
||||
void cidelsa_state::destryer(machine_config &config)
|
||||
{
|
||||
/* basic system hardware */
|
||||
cdp1802_device &cpu(CDP1802(config, CDP1802_TAG, DESTRYER_CHR1));
|
||||
cpu.set_addrmap(AS_PROGRAM, &cidelsa_state::destryer_map);
|
||||
@ -413,9 +414,10 @@ MACHINE_CONFIG_START(cidelsa_state::destryer)
|
||||
|
||||
/* sound and video hardware */
|
||||
destryer_video(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(cidelsa_state::destryera)
|
||||
void cidelsa_state::destryera(machine_config &config)
|
||||
{
|
||||
/* basic system hardware */
|
||||
cdp1802_device &cpu(CDP1802(config, CDP1802_TAG, DESTRYER_CHR1));
|
||||
cpu.set_addrmap(AS_PROGRAM, &cidelsa_state::destryera_map);
|
||||
@ -428,9 +430,10 @@ MACHINE_CONFIG_START(cidelsa_state::destryera)
|
||||
|
||||
/* sound and video hardware */
|
||||
destryer_video(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(cidelsa_state::altair)
|
||||
void cidelsa_state::altair(machine_config &config)
|
||||
{
|
||||
/* basic system hardware */
|
||||
cdp1802_device &cpu(CDP1802(config, CDP1802_TAG, ALTAIR_CHR1));
|
||||
cpu.set_addrmap(AS_PROGRAM, &cidelsa_state::altair_map);
|
||||
@ -461,9 +464,10 @@ MACHINE_CONFIG_START(cidelsa_state::altair)
|
||||
|
||||
/* sound and video hardware */
|
||||
altair_video(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(draco_state::draco)
|
||||
void draco_state::draco(machine_config &config)
|
||||
{
|
||||
/* basic system hardware */
|
||||
cdp1802_device &cpu(CDP1802(config, CDP1802_TAG, DRACO_CHR1));
|
||||
cpu.set_addrmap(AS_PROGRAM, &draco_state::draco_map);
|
||||
@ -475,14 +479,14 @@ MACHINE_CONFIG_START(draco_state::draco)
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
MCFG_DEVICE_ADD(COP402N_TAG, COP402, DRACO_SND_CHR1)
|
||||
MCFG_DEVICE_PROGRAM_MAP(draco_sound_map)
|
||||
MCFG_COP400_CONFIG( COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false )
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, draco_state, sound_bankswitch_w))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, draco_state, sound_g_w))
|
||||
MCFG_COP400_READ_L_CB(READ8(*this, draco_state, psg_r))
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, draco_state, psg_w))
|
||||
MCFG_COP400_READ_IN_CB(READ8(*this, draco_state, sound_in_r))
|
||||
cop402_cpu_device &cop(COP402(config, COP402N_TAG, DRACO_SND_CHR1));
|
||||
cop.set_addrmap(AS_PROGRAM, &draco_state::draco_sound_map);
|
||||
cop.set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false);
|
||||
cop.write_d().set(FUNC(draco_state::sound_bankswitch_w));
|
||||
cop.write_g().set(FUNC(draco_state::sound_g_w));
|
||||
cop.read_l().set(FUNC(draco_state::psg_r));
|
||||
cop.write_l().set(FUNC(draco_state::psg_w));
|
||||
cop.read_in().set(FUNC(draco_state::sound_in_r));
|
||||
|
||||
/* input/output hardware */
|
||||
cdp1852_device &ic29(CDP1852(config, "ic29")); // clock is really tied to CDP1869 CMSEL (pin 37)
|
||||
@ -503,7 +507,7 @@ MACHINE_CONFIG_START(draco_state::draco)
|
||||
|
||||
/* sound and video hardware */
|
||||
draco_video(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/* ROMs */
|
||||
|
||||
|
@ -62,7 +62,7 @@ public:
|
||||
{ }
|
||||
|
||||
// devices
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cop400_cpu_device> m_maincpu;
|
||||
optional_ioport_array<6> m_inp_matrix; // max 6
|
||||
output_finder<0x20, 0x20> m_out_x;
|
||||
output_finder<0x20> m_out_a;
|
||||
@ -313,24 +313,23 @@ static INPUT_PORTS_START( ctstein )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Blue Button")
|
||||
INPUT_PORTS_END
|
||||
|
||||
MACHINE_CONFIG_START(ctstein_state::ctstein)
|
||||
|
||||
void ctstein_state::ctstein(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", COP421, 850000) // approximation - RC osc. R=12K, C=100pF
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, ctstein_state, write_g))
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, ctstein_state, write_l))
|
||||
MCFG_COP400_WRITE_SK_CB(WRITELINE("speaker", speaker_sound_device, level_w))
|
||||
MCFG_COP400_READ_L_CB(READ8(*this, ctstein_state, read_l))
|
||||
COP421(config, m_maincpu, 850000); // approximation - RC osc. R=12K, C=100pF
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
|
||||
m_maincpu->write_g().set(FUNC(ctstein_state::write_g));
|
||||
m_maincpu->write_l().set(FUNC(ctstein_state::write_l));
|
||||
m_maincpu->write_sk().set(m_speaker, FUNC(speaker_sound_device::level_w));
|
||||
m_maincpu->read_l().set(FUNC(ctstein_state::read_l));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(hh_cop400_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_ctstein);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -455,39 +454,36 @@ static INPUT_PORTS_START( h2hsoccerc )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM )
|
||||
INPUT_PORTS_END
|
||||
|
||||
MACHINE_CONFIG_START(h2hbaskbc_state::h2hbaskbc)
|
||||
|
||||
void h2hbaskbc_state::h2hbaskbc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", COP420, 850000) // approximation - RC osc. R=43K, C=101pF
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_8, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, h2hbaskbc_state, write_d))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, h2hbaskbc_state, write_g))
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, h2hbaskbc_state, write_l))
|
||||
MCFG_COP400_READ_IN_CB(READ8(*this, h2hbaskbc_state, read_in))
|
||||
MCFG_COP400_WRITE_SO_CB(WRITELINE("speaker", speaker_sound_device, level_w))
|
||||
COP420(config, m_maincpu, 850000); // approximation - RC osc. R=43K, C=101pF
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_8, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
|
||||
m_maincpu->write_d().set(FUNC(h2hbaskbc_state::write_d));
|
||||
m_maincpu->write_g().set(FUNC(h2hbaskbc_state::write_g));
|
||||
m_maincpu->write_l().set(FUNC(h2hbaskbc_state::write_l));
|
||||
m_maincpu->read_in().set(FUNC(h2hbaskbc_state::read_in));
|
||||
m_maincpu->write_so().set(m_speaker, FUNC(speaker_sound_device::level_w));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(hh_cop400_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_h2hbaskbc);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(h2hbaskbc_state::h2hhockeyc)
|
||||
void h2hbaskbc_state::h2hhockeyc(machine_config &config)
|
||||
{
|
||||
h2hbaskbc(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
config.set_default_layout(layout_h2hhockeyc);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(h2hbaskbc_state::h2hsoccerc)
|
||||
void h2hbaskbc_state::h2hsoccerc(machine_config &config)
|
||||
{
|
||||
h2hbaskbc(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
config.set_default_layout(layout_h2hsoccerc);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -581,31 +577,32 @@ static INPUT_PORTS_START( einvaderc )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
MACHINE_CONFIG_START(einvaderc_state::einvaderc)
|
||||
|
||||
void einvaderc_state::einvaderc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", COP444L, 850000) // approximation - RC osc. R=47K, C=100pF
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
|
||||
MCFG_COP400_READ_IN_CB(IOPORT("IN.0"))
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, einvaderc_state, write_d))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, einvaderc_state, write_g))
|
||||
MCFG_COP400_WRITE_SK_CB(WRITELINE(*this, einvaderc_state, write_sk))
|
||||
MCFG_COP400_WRITE_SO_CB(WRITELINE(*this, einvaderc_state, write_so))
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, einvaderc_state, write_l))
|
||||
COP444L(config, m_maincpu, 850000); // approximation - RC osc. R=47K, C=100pF
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
|
||||
m_maincpu->read_in().set_ioport("IN.0");
|
||||
m_maincpu->write_d().set(FUNC(einvaderc_state::write_d));
|
||||
m_maincpu->write_g().set(FUNC(einvaderc_state::write_g));
|
||||
m_maincpu->write_sk().set(FUNC(einvaderc_state::write_sk));
|
||||
m_maincpu->write_so().set(FUNC(einvaderc_state::write_so));
|
||||
m_maincpu->write_l().set(FUNC(einvaderc_state::write_l));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_SVG_ADD("screen", "svg")
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_SIZE(913, 1080)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 913-1, 0, 1080-1)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
|
||||
screen.set_svg_region("svg");
|
||||
screen.set_refresh_hz(50);
|
||||
screen.set_size(913, 1080);
|
||||
screen.set_visarea(0, 913-1, 0, 1080-1);
|
||||
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(hh_cop400_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_einvaderc);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -710,26 +707,25 @@ static INPUT_PORTS_START( unkeinv )
|
||||
PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_SENSITIVITY(10) PORT_KEYDELTA(1) PORT_CENTERDELTA(0) PORT_CHANGED_MEMBER(DEVICE_SELF, unkeinv_state, position_changed, nullptr)
|
||||
INPUT_PORTS_END
|
||||
|
||||
MACHINE_CONFIG_START(unkeinv_state::unkeinv)
|
||||
|
||||
void unkeinv_state::unkeinv(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", COP421, 850000) // frequency guessed
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, unkeinv_state, write_g))
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, unkeinv_state, write_d))
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, unkeinv_state, write_l))
|
||||
MCFG_COP400_READ_L_CB(READ8(*this, unkeinv_state, read_l))
|
||||
MCFG_COP400_READ_L_TRISTATE_CB(CONSTANT(0xff))
|
||||
MCFG_COP400_WRITE_SO_CB(WRITELINE("speaker", speaker_sound_device, level_w))
|
||||
COP421(config, m_maincpu, 850000); // frequency guessed
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
|
||||
m_maincpu->write_g().set(FUNC(unkeinv_state::write_g));
|
||||
m_maincpu->write_d().set(FUNC(unkeinv_state::write_d));
|
||||
m_maincpu->write_l().set(FUNC(unkeinv_state::write_l));
|
||||
m_maincpu->read_l().set(FUNC(unkeinv_state::read_l));
|
||||
m_maincpu->read_l_tristate().set_constant(0xff);
|
||||
m_maincpu->write_so().set(m_speaker, FUNC(speaker_sound_device::level_w));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(hh_cop400_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_unkeinv);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -866,27 +862,26 @@ void lchicken_state::machine_start()
|
||||
save_item(NAME(m_motor_pos));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(lchicken_state::lchicken)
|
||||
|
||||
void lchicken_state::lchicken(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", COP421, 850000) // approximation - RC osc. R=12K, C=100pF
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, lchicken_state, write_l))
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, lchicken_state, write_d))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, lchicken_state, write_g))
|
||||
MCFG_COP400_READ_G_CB(READ8(*this, lchicken_state, read_g))
|
||||
MCFG_COP400_WRITE_SO_CB(WRITELINE(*this, lchicken_state, write_so))
|
||||
MCFG_COP400_READ_SI_CB(READLINE(*this, lchicken_state, read_si))
|
||||
COP421(config, m_maincpu, 850000); // approximation - RC osc. R=12K, C=100pF
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
|
||||
m_maincpu->write_l().set(FUNC(lchicken_state::write_l));
|
||||
m_maincpu->write_d().set(FUNC(lchicken_state::write_d));
|
||||
m_maincpu->write_g().set(FUNC(lchicken_state::write_g));
|
||||
m_maincpu->read_g().set(FUNC(lchicken_state::read_g));
|
||||
m_maincpu->write_so().set(FUNC(lchicken_state::write_so));
|
||||
m_maincpu->read_si().set(FUNC(lchicken_state::read_si));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("chicken_motor", lchicken_state, motor_sim_tick, attotime::from_msec(6000/0x100)) // ~6sec for a full rotation
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "chicken_motor").configure_periodic(FUNC(lchicken_state::motor_sim_tick), attotime::from_msec(6000/0x100)); // ~6sec for a full rotation
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(hh_cop400_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_lchicken);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -976,25 +971,24 @@ static INPUT_PORTS_START( funjacks )
|
||||
PORT_CONFSETTING( 0x08, "2" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
MACHINE_CONFIG_START(funjacks_state::funjacks)
|
||||
|
||||
void funjacks_state::funjacks(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", COP410, 1000000) // approximation - RC osc. R=47K, C=56pF
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_8, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, funjacks_state, write_d))
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, funjacks_state, write_l))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, funjacks_state, write_g))
|
||||
MCFG_COP400_READ_L_CB(READ8(*this, funjacks_state, read_l))
|
||||
MCFG_COP400_READ_G_CB(READ8(*this, funjacks_state, read_g))
|
||||
COP410(config, m_maincpu, 1000000); // approximation - RC osc. R=47K, C=56pF
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_8, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
|
||||
m_maincpu->write_d().set(FUNC(funjacks_state::write_d));
|
||||
m_maincpu->write_l().set(FUNC(funjacks_state::write_l));
|
||||
m_maincpu->write_g().set(FUNC(funjacks_state::write_g));
|
||||
m_maincpu->read_l().set(FUNC(funjacks_state::read_l));
|
||||
m_maincpu->read_g().set(FUNC(funjacks_state::read_g));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(hh_cop400_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_funjacks);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1071,25 +1065,24 @@ INPUT_CHANGED_MEMBER(funrlgl_state::reset_button)
|
||||
m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(funrlgl_state::funrlgl)
|
||||
|
||||
void funrlgl_state::funrlgl(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", COP410, 1000000) // approximation - RC osc. R=51K, C=91pF
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_8, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, funrlgl_state, write_d))
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, funrlgl_state, write_l))
|
||||
MCFG_COP400_READ_L_TRISTATE_CB(CONSTANT(0xff))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, funrlgl_state, write_g))
|
||||
MCFG_COP400_READ_G_CB(IOPORT("IN.0"))
|
||||
COP410(config, m_maincpu, 1000000); // approximation - RC osc. R=51K, C=91pF
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_8, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
|
||||
m_maincpu->write_d().set(FUNC(funrlgl_state::write_d));
|
||||
m_maincpu->write_l().set(FUNC(funrlgl_state::write_l));
|
||||
m_maincpu->read_l_tristate().set_constant(0xff);
|
||||
m_maincpu->write_g().set(FUNC(funrlgl_state::write_g));
|
||||
m_maincpu->read_g().set_ioport("IN.0");
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(hh_cop400_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_funrlgl);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1207,25 +1200,24 @@ static INPUT_PORTS_START( mdallas )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("North") // N
|
||||
INPUT_PORTS_END
|
||||
|
||||
MACHINE_CONFIG_START(mdallas_state::mdallas)
|
||||
|
||||
void mdallas_state::mdallas(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", COP444L, 1000000) // approximation - RC osc. R=57K, C=101pF
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, mdallas_state, write_l))
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, mdallas_state, write_d))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, mdallas_state, write_g))
|
||||
MCFG_COP400_READ_IN_CB(READ8(*this, mdallas_state, read_in))
|
||||
MCFG_COP400_WRITE_SO_CB(WRITELINE("speaker", speaker_sound_device, level_w))
|
||||
COP444L(config, m_maincpu, 1000000); // approximation - RC osc. R=57K, C=101pF
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
|
||||
m_maincpu->write_l().set(FUNC(mdallas_state::write_l));
|
||||
m_maincpu->write_d().set(FUNC(mdallas_state::write_d));
|
||||
m_maincpu->write_g().set(FUNC(mdallas_state::write_g));
|
||||
m_maincpu->read_in().set(FUNC(mdallas_state::read_in));
|
||||
m_maincpu->write_so().set(m_speaker, FUNC(speaker_sound_device::level_w));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(hh_cop400_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_mdallas);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1291,23 +1283,22 @@ static INPUT_PORTS_START( plus1 )
|
||||
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
MACHINE_CONFIG_START(plus1_state::plus1)
|
||||
|
||||
void plus1_state::plus1(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", COP410, 1000000) // approximation - RC osc. R=51K, C=100pF
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, plus1_state, write_d))
|
||||
MCFG_COP400_READ_G_CB(IOPORT("IN.0"))
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, plus1_state, write_l))
|
||||
MCFG_COP400_READ_L_CB(READ8(*this, plus1_state, read_l))
|
||||
COP410(config, m_maincpu, 1000000); // approximation - RC osc. R=51K, C=100pF
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
|
||||
m_maincpu->write_d().set(FUNC(plus1_state::write_d));
|
||||
m_maincpu->read_g().set_ioport("IN.0");
|
||||
m_maincpu->write_l().set(FUNC(plus1_state::write_l));
|
||||
m_maincpu->read_l().set(FUNC(plus1_state::read_l));
|
||||
|
||||
/* no visual feedback! */
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1419,25 +1410,24 @@ static INPUT_PORTS_START( lightfgt )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_COCKTAIL
|
||||
INPUT_PORTS_END
|
||||
|
||||
MACHINE_CONFIG_START(lightfgt_state::lightfgt)
|
||||
|
||||
void lightfgt_state::lightfgt(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", COP421, 950000) // approximation - RC osc. R=82K, C=56pF
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
|
||||
MCFG_COP400_WRITE_SO_CB(WRITELINE(*this, lightfgt_state, write_so))
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, lightfgt_state, write_d))
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, lightfgt_state, write_l))
|
||||
MCFG_COP400_WRITE_SK_CB(WRITELINE("speaker", speaker_sound_device, level_w))
|
||||
MCFG_COP400_READ_G_CB(READ8(*this, lightfgt_state, read_g))
|
||||
COP421(config, m_maincpu, 950000); // approximation - RC osc. R=82K, C=56pF
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
|
||||
m_maincpu->write_so().set(FUNC(lightfgt_state::write_so));
|
||||
m_maincpu->write_d().set(FUNC(lightfgt_state::write_d));
|
||||
m_maincpu->write_l().set(FUNC(lightfgt_state::write_l));
|
||||
m_maincpu->write_sk().set(m_speaker, FUNC(speaker_sound_device::level_w));
|
||||
m_maincpu->read_g().set(FUNC(lightfgt_state::read_g));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(hh_cop400_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_lightfgt);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1573,27 +1563,29 @@ base pulled high with 4.7K resistor, connects directly to G3, 1K resistor to G2,
|
||||
|
||||
*/
|
||||
|
||||
MACHINE_CONFIG_START(bship82_state::bship82)
|
||||
|
||||
void bship82_state::bship82(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", COP420, 750000) // approximation - RC osc. R=14K, C=100pF
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, bship82_state, write_d))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8("dac", dac_byte_interface, data_w))
|
||||
MCFG_COP400_READ_L_CB(READ8(*this, bship82_state, read_l))
|
||||
MCFG_COP400_READ_IN_CB(READ8(*this, bship82_state, read_in))
|
||||
MCFG_COP400_WRITE_SO_CB(WRITELINE(*this, bship82_state, write_so))
|
||||
MCFG_COP400_READ_SI_CB(IOPORT("IN.4"))
|
||||
COP420(config, m_maincpu, 750000); // approximation - RC osc. R=14K, C=100pF
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
|
||||
m_maincpu->write_d().set(FUNC(bship82_state::write_d));
|
||||
m_maincpu->write_g().set("dac", FUNC(dac_byte_interface::data_w));
|
||||
m_maincpu->read_l().set(FUNC(bship82_state::read_l));
|
||||
m_maincpu->read_in().set(FUNC(bship82_state::read_in));
|
||||
m_maincpu->write_so().set(FUNC(bship82_state::write_so));
|
||||
m_maincpu->read_si().set_ioport("IN.4");
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(hh_cop400_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_bship82);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("dac", DAC_4BIT_BINARY_WEIGHTED_SIGN_MAGNITUDE, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.125) // see above
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
DAC_4BIT_BINARY_WEIGHTED_SIGN_MAGNITUDE(config, "dac", 0).add_route(ALL_OUTPUTS, "mono", 0.125); // see above
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1705,22 +1697,22 @@ static INPUT_PORTS_START( qkracer )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Tables")
|
||||
INPUT_PORTS_END
|
||||
|
||||
MACHINE_CONFIG_START(qkracer_state::qkracer)
|
||||
|
||||
void qkracer_state::qkracer(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", COP420, 1000000) // approximation - RC osc. R=47K, C=100pF
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_32, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, qkracer_state, write_d))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, qkracer_state, write_g))
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, qkracer_state, write_l))
|
||||
MCFG_COP400_READ_IN_CB(READ8(*this, qkracer_state, read_in))
|
||||
MCFG_COP400_WRITE_SK_CB(WRITELINE(*this, qkracer_state, write_sk))
|
||||
COP420(config, m_maincpu, 1000000); // approximation - RC osc. R=47K, C=100pF
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_32, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
|
||||
m_maincpu->write_d().set(FUNC(qkracer_state::write_d));
|
||||
m_maincpu->write_g().set(FUNC(qkracer_state::write_g));
|
||||
m_maincpu->write_l().set(FUNC(qkracer_state::write_l));
|
||||
m_maincpu->read_in().set(FUNC(qkracer_state::read_in));
|
||||
m_maincpu->write_sk().set(FUNC(qkracer_state::write_sk));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(hh_cop400_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_qkracer);
|
||||
|
||||
/* no sound! */
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1796,26 +1788,28 @@ static INPUT_PORTS_START( vidchal )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) // TODO: light sensor
|
||||
INPUT_PORTS_END
|
||||
|
||||
MACHINE_CONFIG_START(vidchal_state::vidchal)
|
||||
|
||||
void vidchal_state::vidchal(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", COP420, 900000) // approximation
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, vidchal_state, write_d))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8("dac", dac_byte_interface, data_w))
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, vidchal_state, write_l))
|
||||
MCFG_COP400_READ_IN_CB(IOPORT("IN.0"))
|
||||
MCFG_COP400_WRITE_SK_CB(WRITELINE(*this, vidchal_state, write_sk))
|
||||
COP420(config, m_maincpu, 900000); // approximation
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
|
||||
m_maincpu->write_d().set(FUNC(vidchal_state::write_d));
|
||||
m_maincpu->write_g().set("dac", FUNC(dac_byte_interface::data_w));
|
||||
m_maincpu->write_l().set(FUNC(vidchal_state::write_l));
|
||||
m_maincpu->read_in().set_ioport("IN.0");
|
||||
m_maincpu->write_sk().set(FUNC(vidchal_state::write_sk));
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(hh_cop400_state::display_decay_tick), attotime::from_msec(1));
|
||||
config.set_default_layout(layout_vidchal);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("dac", DAC_4BIT_BINARY_WEIGHTED_SIGN_MAGNITUDE, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.125) // unknown DAC
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
DAC_4BIT_BINARY_WEIGHTED_SIGN_MAGNITUDE(config, "dac", 0).add_route(ALL_OUTPUTS, "mono", 0.125); // unknown DAC
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
|
||||
vref.set_output(5.0);
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -634,13 +634,13 @@ MACHINE_CONFIG_START(looping_state::looping)
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &looping_state::looping_sound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &looping_state::looping_sound_io_map);
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", COP420, COP_CLOCK)
|
||||
MCFG_COP400_CONFIG( COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false )
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, looping_state, cop_l_w))
|
||||
MCFG_COP400_READ_L_CB(READ8(*this, looping_state, cop_unk_r))
|
||||
MCFG_COP400_READ_G_CB(READ8(*this, looping_state, cop_unk_r))
|
||||
MCFG_COP400_READ_IN_CB(READ8(*this, looping_state, cop_unk_r))
|
||||
MCFG_COP400_READ_SI_CB(READLINE(*this, looping_state, cop_serial_r))
|
||||
cop420_cpu_device &cop(COP420(config, "mcu", COP_CLOCK));
|
||||
cop.set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false);
|
||||
cop.write_l().set(FUNC(looping_state::cop_l_w));
|
||||
cop.read_l().set(FUNC(looping_state::cop_unk_r));
|
||||
cop.read_g().set(FUNC(looping_state::cop_unk_r));
|
||||
cop.read_in().set(FUNC(looping_state::cop_unk_r));
|
||||
cop.read_si().set(FUNC(looping_state::cop_serial_r));
|
||||
|
||||
ls259_device &mainlatch(LS259(config, "mainlatch")); // C9 on CPU board
|
||||
// Q0 = A16
|
||||
|
@ -811,19 +811,19 @@ void newbrain_state::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
|
||||
MACHINE_CONFIG_START(newbrain_state::newbrain)
|
||||
// basic system hardware
|
||||
MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(16'000'000)/4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(newbrain_mreq)
|
||||
MCFG_DEVICE_IO_MAP(newbrain_iorq)
|
||||
Z80(config, m_maincpu, XTAL(16'000'000)/4);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &newbrain_state::newbrain_mreq);
|
||||
m_maincpu->set_addrmap(AS_IO, &newbrain_state::newbrain_iorq);
|
||||
|
||||
MCFG_DEVICE_ADD(COP420_TAG, COP420, XTAL(16'000'000)/4)
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, true)
|
||||
MCFG_COP400_READ_G_CB(READ8(*this, newbrain_state, cop_g_r))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, newbrain_state, cop_g_w))
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, newbrain_state, cop_d_w))
|
||||
MCFG_COP400_READ_IN_CB(READ8(*this, newbrain_state, cop_in_r))
|
||||
MCFG_COP400_WRITE_SO_CB(WRITELINE(*this, newbrain_state, k1_w))
|
||||
MCFG_COP400_WRITE_SK_CB(WRITELINE(*this, newbrain_state, k2_w))
|
||||
MCFG_COP400_READ_SI_CB(READLINE(*this, newbrain_state, tdi_r))
|
||||
COP420(config, m_cop, XTAL(16'000'000)/4);
|
||||
m_cop->set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, true);
|
||||
m_cop->read_g().set(FUNC(newbrain_state::cop_g_r));
|
||||
m_cop->write_g().set(FUNC(newbrain_state::cop_g_w));
|
||||
m_cop->write_d().set(FUNC(newbrain_state::cop_d_w));
|
||||
m_cop->read_in().set(FUNC(newbrain_state::cop_in_r));
|
||||
m_cop->write_so().set(FUNC(newbrain_state::k1_w));
|
||||
m_cop->write_sk().set(FUNC(newbrain_state::k2_w));
|
||||
m_cop->read_si().set(FUNC(newbrain_state::tdi_r));
|
||||
|
||||
// video hardware
|
||||
newbrain_video(config);
|
||||
@ -831,11 +831,11 @@ MACHINE_CONFIG_START(newbrain_state::newbrain)
|
||||
// devices
|
||||
MCFG_NEWBRAIN_EXPANSION_SLOT_ADD(NEWBRAIN_EXPANSION_SLOT_TAG, XTAL(16'000'000)/4, newbrain_expansion_cards, "eim")
|
||||
|
||||
MCFG_CASSETTE_ADD(CASSETTE_TAG)
|
||||
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED)
|
||||
CASSETTE(config, m_cassette1);
|
||||
m_cassette1->set_default_state((cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED));
|
||||
|
||||
MCFG_CASSETTE_ADD(CASSETTE2_TAG)
|
||||
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED)
|
||||
CASSETTE(config, m_cassette2);
|
||||
m_cassette2->set_default_state((cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED));
|
||||
|
||||
RS232_PORT(config, RS232_V24_TAG, default_rs232_devices, nullptr);
|
||||
RS232_PORT(config, RS232_PRN_TAG, default_rs232_devices, nullptr);
|
||||
@ -849,30 +849,33 @@ MACHINE_CONFIG_END
|
||||
// MACHINE_CONFIG( newbrain_ad )
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(newbrain_state::newbrain_ad)
|
||||
void newbrain_state::newbrain_ad(machine_config &config)
|
||||
{
|
||||
newbrain(config);
|
||||
config.set_default_layout(layout_newbrain);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG( newbrain_a )
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(newbrain_state::newbrain_a)
|
||||
void newbrain_state::newbrain_a(machine_config &config)
|
||||
{
|
||||
newbrain(config);
|
||||
config.set_default_layout(layout_newbraina);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG( newbrain_md )
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(newbrain_state::newbrain_md)
|
||||
void newbrain_state::newbrain_md(machine_config &config)
|
||||
{
|
||||
newbrain(config);
|
||||
config.set_default_layout(layout_newbrain);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -395,19 +395,20 @@ MACHINE_CONFIG_START(play_2_state::play_2)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(play_2_state::zira)
|
||||
void play_2_state::zira(machine_config &config)
|
||||
{
|
||||
play_2(config);
|
||||
MCFG_DEVICE_ADD("cop402", COP402, 2_MHz_XTAL)
|
||||
MCFG_DEVICE_PROGRAM_MAP(zira_sound_map)
|
||||
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false)
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, play_2_state, sound_d_w))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, play_2_state, sound_g_w))
|
||||
MCFG_COP400_READ_L_CB(READ8(*this, play_2_state, psg_r))
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, play_2_state, psg_w))
|
||||
MCFG_COP400_READ_IN_CB(READ8(*this, play_2_state, sound_in_r))
|
||||
cop402_cpu_device &cop402(COP402(config, "cop402", 2_MHz_XTAL));
|
||||
cop402.set_addrmap(AS_PROGRAM, &play_2_state::zira_sound_map);
|
||||
cop402.set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false);
|
||||
cop402.write_d().set(FUNC(play_2_state::sound_d_w));
|
||||
cop402.write_g().set(FUNC(play_2_state::sound_g_w));
|
||||
cop402.read_l().set(FUNC(play_2_state::psg_r));
|
||||
cop402.write_l().set(FUNC(play_2_state::psg_w));
|
||||
cop402.read_in().set(FUNC(play_2_state::sound_in_r));
|
||||
|
||||
AY8910(config, m_aysnd1, 2_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 1.00);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
void play_2_state::init_zira()
|
||||
{
|
||||
|
@ -23,7 +23,7 @@ public:
|
||||
|
||||
private:
|
||||
DECLARE_WRITE8_MEMBER( port_l_w );
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cop400_cpu_device> m_maincpu;
|
||||
};
|
||||
|
||||
WRITE8_MEMBER( t400_test_suite_state::port_l_w )
|
||||
@ -31,17 +31,19 @@ WRITE8_MEMBER( t400_test_suite_state::port_l_w )
|
||||
// printf("L: %u\n", data);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(t400_test_suite_state::test_t410)
|
||||
MCFG_DEVICE_ADD("maincpu", COP410, 1000000)
|
||||
MCFG_COP400_CONFIG( COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false )
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, t400_test_suite_state, port_l_w))
|
||||
MACHINE_CONFIG_END
|
||||
void t400_test_suite_state::test_t410(machine_config &config)
|
||||
{
|
||||
COP410(config, m_maincpu, 1000000);
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false);
|
||||
m_maincpu->write_l().set(FUNC(t400_test_suite_state::port_l_w));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(t400_test_suite_state::test_t420)
|
||||
MCFG_DEVICE_ADD("maincpu", COP420, 1000000)
|
||||
MCFG_COP400_CONFIG( COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, true )
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, t400_test_suite_state, port_l_w))
|
||||
MACHINE_CONFIG_END
|
||||
void t400_test_suite_state::test_t420(machine_config &config)
|
||||
{
|
||||
COP420(config, m_maincpu, 1000000);
|
||||
m_maincpu->set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, true);
|
||||
m_maincpu->write_l().set(FUNC(t400_test_suite_state::port_l_w));
|
||||
}
|
||||
|
||||
ROM_START( test410 )
|
||||
ROM_REGION( 0x200, "maincpu", 0 )
|
||||
|
@ -798,39 +798,42 @@ void thayers_state::machine_reset()
|
||||
|
||||
/* Machine Driver */
|
||||
|
||||
MACHINE_CONFIG_START(thayers_state::thayers)
|
||||
|
||||
void thayers_state::thayers(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(4'000'000))
|
||||
MCFG_DEVICE_PROGRAM_MAP(thayers_map)
|
||||
MCFG_DEVICE_IO_MAP(thayers_io_map)
|
||||
Z80(config, m_maincpu, XTAL(4'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &thayers_state::thayers_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &thayers_state::thayers_io_map);
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", COP421, XTAL(4'000'000)/2) // COP421L-PCA/N
|
||||
MCFG_COP400_CONFIG( COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false )
|
||||
MCFG_COP400_READ_L_CB(READ8(*this, thayers_state, cop_l_r))
|
||||
MCFG_COP400_WRITE_L_CB(WRITE8(*this, thayers_state, cop_l_w))
|
||||
MCFG_COP400_READ_G_CB(READ8(*this, thayers_state, cop_g_r))
|
||||
MCFG_COP400_WRITE_G_CB(WRITE8(*this, thayers_state, cop_g_w))
|
||||
MCFG_COP400_WRITE_D_CB(WRITE8(*this, thayers_state, cop_d_w))
|
||||
MCFG_COP400_READ_SI_CB(READLINE(*this, thayers_state, kbdata_r))
|
||||
MCFG_COP400_WRITE_SO_CB(WRITELINE(*this, thayers_state, kbclk_w))
|
||||
|
||||
MCFG_LASERDISC_PR7820_ADD("laserdisc")
|
||||
cop421_cpu_device &mcu(COP421(config, "mcu", XTAL(4'000'000)/2)); // COP421L-PCA/N
|
||||
mcu.set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false);
|
||||
mcu.read_l().set(FUNC(thayers_state::cop_l_r));
|
||||
mcu.write_l().set(FUNC(thayers_state::cop_l_w));
|
||||
mcu.read_g().set(FUNC(thayers_state::cop_g_r));
|
||||
mcu.write_g().set(FUNC(thayers_state::cop_g_w));
|
||||
mcu.write_d().set(FUNC(thayers_state::cop_d_w));
|
||||
mcu.read_si().set(FUNC(thayers_state::kbdata_r));
|
||||
mcu.write_so().set(FUNC(thayers_state::kbclk_w));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
|
||||
PIONEER_PR7820(config, m_pr7820, 0);
|
||||
m_pr7820->set_screen("screen");
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 256)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_video_attributes(VIDEO_SELF_RENDER);
|
||||
screen.set_raw(XTAL(14'318'181)*2, 910, 0, 704, 525, 44, 524);
|
||||
screen.set_screen_update("laserdisc", FUNC(laserdisc_device::screen_update));
|
||||
|
||||
PALETTE(config, "palette", 256);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
// SSI 263 @ 2MHz
|
||||
|
||||
MCFG_DEVICE_MODIFY("laserdisc")
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
m_pr7820->add_route(0, "lspeaker", 1.0);
|
||||
m_pr7820->add_route(1, "rspeaker", 1.0);
|
||||
}
|
||||
|
||||
/* ROMs */
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
|
||||
#include "bus/generic/slot.h"
|
||||
#include "bus/generic/carts.h"
|
||||
#include "cpu/cop400/cop400.h"
|
||||
#include "cpu/mcs48/mcs48.h"
|
||||
#include "sound/dac.h"
|
||||
#include "emupal.h"
|
||||
@ -35,7 +36,7 @@ public:
|
||||
{ }
|
||||
|
||||
required_device<i8048_device> m_maincpu;
|
||||
required_device<cpu_device> m_soundcpu;
|
||||
required_device<cop411_cpu_device> m_soundcpu;
|
||||
required_device<dac_byte_interface> m_dac;
|
||||
required_device<generic_slot_device> m_cart;
|
||||
required_memory_bank m_bank1;
|
||||
|
@ -272,7 +272,6 @@ Notes:
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/hmcs40/hmcs40.h"
|
||||
#include "alpha8201.h"
|
||||
|
||||
/**************************************************************************/
|
||||
@ -316,17 +315,17 @@ void alpha_8201_device::device_start()
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(alpha_8201_device::device_add_mconfig)
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", HD44801, DERIVED_CLOCK(1,1)) // 8H
|
||||
MCFG_HMCS40_READ_R_CB(0, READ8(*this, alpha_8201_device, mcu_data_r))
|
||||
MCFG_HMCS40_READ_R_CB(1, READ8(*this, alpha_8201_device, mcu_data_r))
|
||||
MCFG_HMCS40_WRITE_R_CB(0, WRITE8(*this, alpha_8201_device, mcu_data_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(1, WRITE8(*this, alpha_8201_device, mcu_data_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(2, WRITE8(*this, alpha_8201_device, mcu_data_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(3, WRITE8(*this, alpha_8201_device, mcu_data_w))
|
||||
MCFG_HMCS40_WRITE_D_CB(WRITE16(*this, alpha_8201_device, mcu_d_w))
|
||||
MACHINE_CONFIG_END
|
||||
void alpha_8201_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
HD44801(config, m_mcu, DERIVED_CLOCK(1,1)); // 8H
|
||||
m_mcu->read_r<0>().set(FUNC(alpha_8201_device::mcu_data_r));
|
||||
m_mcu->read_r<1>().set(FUNC(alpha_8201_device::mcu_data_r));
|
||||
m_mcu->write_r<0>().set(FUNC(alpha_8201_device::mcu_data_w));
|
||||
m_mcu->write_r<1>().set(FUNC(alpha_8201_device::mcu_data_w));
|
||||
m_mcu->write_r<2>().set(FUNC(alpha_8201_device::mcu_data_w));
|
||||
m_mcu->write_r<3>().set(FUNC(alpha_8201_device::mcu_data_w));
|
||||
m_mcu->write_d().set(FUNC(alpha_8201_device::mcu_d_w));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_reset - device-specific reset
|
||||
|
@ -9,6 +9,7 @@
|
||||
#ifndef MAME_MACHINE_ALPHA8201_H
|
||||
#define MAME_MACHINE_ALPHA8201_H
|
||||
|
||||
#include "cpu/hmcs40/hmcs40.h"
|
||||
|
||||
class alpha_8201_device : public device_t
|
||||
{
|
||||
@ -29,7 +30,7 @@ protected:
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
private:
|
||||
// devices/pointers
|
||||
required_device<cpu_device> m_mcu;
|
||||
required_device<hmcs40_cpu_device> m_mcu;
|
||||
|
||||
// internal state
|
||||
int m_bus; // shared RAM bus direction
|
||||
|
Loading…
Reference in New Issue
Block a user