mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
-dpb_brushproc: Added skeleton device for DPB-7000 Brush Processor Card. [Ryan Holtz]
-am25s55x: Initial device implementation for Am25S557 and 25S558 Combinatorial Multiplier chips. [Ryan Holtz] -dpb_combiner: Fixed validation, nw -dpb7000: Added devices for new Brush Processor Card skeleton, nw
This commit is contained in:
parent
f8f4f7998d
commit
56af5d0d26
@ -598,6 +598,18 @@ if (MACHINES["AICARTC"]~=null) then
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
--
|
||||
--@src/devices/machine/am25s55x.h,MACHINES["AM25S55X"] = true
|
||||
---------------------------------------------------
|
||||
|
||||
if (MACHINES["AM25S55X"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/machine/am25s55x.cpp",
|
||||
MAME_DIR .. "src/devices/machine/am25s55x.h",
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
--
|
||||
--@src/devices/machine/am2847.h,MACHINES["AM2847"] = true
|
||||
|
@ -408,6 +408,7 @@ MACHINES["ADC083X"] = true
|
||||
MACHINES["ADC1038"] = true
|
||||
MACHINES["ADC1213X"] = true
|
||||
MACHINES["AICARTC"] = true
|
||||
--MACHINES["AM25S55X"] = true
|
||||
--MACHINES["AM2847"] = true
|
||||
--MACHINES["AM2910"] = true
|
||||
MACHINES["AM53CF96"] = true
|
||||
|
@ -412,6 +412,7 @@ MACHINES["ADC083X"] = true
|
||||
MACHINES["ADC1038"] = true
|
||||
MACHINES["ADC1213X"] = true
|
||||
MACHINES["AICARTC"] = true
|
||||
MACHINES["AM25S55X"] = true
|
||||
MACHINES["AM2847"] = true
|
||||
MACHINES["AM2910"] = true
|
||||
MACHINES["AM53CF96"] = true
|
||||
@ -3895,6 +3896,8 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/dpb7000.cpp",
|
||||
MAME_DIR .. "src/mame/video/dpb_combiner.cpp",
|
||||
MAME_DIR .. "src/mame/video/dpb_combiner.h",
|
||||
MAME_DIR .. "src/mame/video/dpb_brushproc.cpp",
|
||||
MAME_DIR .. "src/mame/video/dpb_brushproc.h",
|
||||
MAME_DIR .. "src/mame/drivers/dps1.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/dsb46.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/dual68.cpp",
|
||||
|
204
src/devices/machine/am25s55x.cpp
Normal file
204
src/devices/machine/am25s55x.cpp
Normal file
@ -0,0 +1,204 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz
|
||||
/***************************************************************************
|
||||
|
||||
am25s55x.h
|
||||
AMD Am25S557/Am25S558 8x8-bit Combinatorial Multiplier
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "am25s55x.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
DEFINE_DEVICE_TYPE(AM25S557, am25s557_device, "am25s557", "AMD Am25S557 Combinatorial Multiplier")
|
||||
DEFINE_DEVICE_TYPE(AM25S558, am25s558_device, "am25s558", "AMD Am25S558 Combinatorial Multiplier")
|
||||
|
||||
//-------------------------------------------------
|
||||
// am25s55x_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
am25s55x_device::am25s55x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, type, tag, owner, clock)
|
||||
, m_x_in(0)
|
||||
, m_y_in(0)
|
||||
, m_xm(false)
|
||||
, m_ym(false)
|
||||
, m_oe(false)
|
||||
, m_round_s(false)
|
||||
, m_round_u(false)
|
||||
, m_s(*this)
|
||||
{
|
||||
}
|
||||
|
||||
am25s557_device::am25s557_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: am25s55x_device(mconfig, AM25S557, tag, owner, clock)
|
||||
, m_r(false)
|
||||
{
|
||||
}
|
||||
|
||||
am25s558_device::am25s558_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: am25s55x_device(mconfig, AM25S558, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
void am25s55x_device::device_start()
|
||||
{
|
||||
save_item(NAME(m_x_in));
|
||||
save_item(NAME(m_y_in));
|
||||
save_item(NAME(m_xm));
|
||||
save_item(NAME(m_ym));
|
||||
save_item(NAME(m_oe));
|
||||
save_item(NAME(m_round_s));
|
||||
save_item(NAME(m_round_u));
|
||||
save_item(NAME(m_x.u));
|
||||
save_item(NAME(m_y.u));
|
||||
save_item(NAME(m_s_out.u));
|
||||
|
||||
m_s.resolve_safe();
|
||||
}
|
||||
|
||||
void am25s55x_device::device_reset()
|
||||
{
|
||||
m_x_in = 0;
|
||||
m_y_in = 0;
|
||||
m_xm = false;
|
||||
m_ym = false;
|
||||
m_oe = false;
|
||||
m_round_s = false;
|
||||
m_round_u = false;
|
||||
|
||||
m_x.u = 0;
|
||||
m_y.u = 0;
|
||||
m_s_out.u = 0;
|
||||
}
|
||||
|
||||
void am25s55x_device::x_w(uint8_t data)
|
||||
{
|
||||
m_x_in = data;
|
||||
}
|
||||
|
||||
void am25s55x_device::y_w(uint8_t data)
|
||||
{
|
||||
m_y_in = data;
|
||||
}
|
||||
|
||||
void am25s55x_device::xm_w(int state)
|
||||
{
|
||||
m_xm = (bool)state;
|
||||
}
|
||||
|
||||
void am25s55x_device::ym_w(int state)
|
||||
{
|
||||
m_ym = (bool)state;
|
||||
}
|
||||
|
||||
void am25s55x_device::oe_w(int state)
|
||||
{
|
||||
m_oe = (bool)state;
|
||||
}
|
||||
|
||||
void am25s55x_device::multiply()
|
||||
{
|
||||
if (m_xm)
|
||||
{
|
||||
if (m_ym)
|
||||
{
|
||||
m_s_out.s = (int16_t)m_x.u * (int16_t)m_y.u;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_s_out.s = (int16_t)m_x.u * (uint16_t)m_y.u;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_ym)
|
||||
{
|
||||
m_s_out.s = (uint16_t)m_x.u * (int16_t)m_y.u;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_s_out.u = (uint16_t)m_x.u * (uint16_t)m_y.u;
|
||||
}
|
||||
}
|
||||
|
||||
if (m_round_u)
|
||||
m_s_out.u += 0x80;
|
||||
if (m_round_s)
|
||||
m_s_out.u += 0x40;
|
||||
|
||||
if (!m_oe)
|
||||
m_s(m_s_out.u);
|
||||
}
|
||||
|
||||
//
|
||||
// Am25S557, combined signed/unsigned rounding pin
|
||||
//
|
||||
|
||||
void am25s557_device::device_start()
|
||||
{
|
||||
am25s55x_device::device_start();
|
||||
save_item(NAME(m_r));
|
||||
}
|
||||
|
||||
void am25s557_device::device_reset()
|
||||
{
|
||||
am25s55x_device::device_reset();
|
||||
m_r = false;
|
||||
}
|
||||
|
||||
void am25s557_device::xm_w(int state)
|
||||
{
|
||||
am25s55x_device::xm_w(state);
|
||||
update_rounding();
|
||||
}
|
||||
|
||||
void am25s557_device::ym_w(int state)
|
||||
{
|
||||
am25s55x_device::ym_w(state);
|
||||
update_rounding();
|
||||
}
|
||||
|
||||
void am25s557_device::r_w(int state)
|
||||
{
|
||||
m_r = (bool)state;
|
||||
update_rounding();
|
||||
}
|
||||
|
||||
void am25s557_device::update_rounding()
|
||||
{
|
||||
if (m_r)
|
||||
{
|
||||
if (m_xm || m_ym)
|
||||
{
|
||||
m_round_s = true;
|
||||
m_round_u = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_round_s = false;
|
||||
m_round_u = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_round_s = false;
|
||||
m_round_u = false;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Am25S558, separate signed/unsigned rounding pins
|
||||
//
|
||||
|
||||
void am25s558_device::rs_w(int state)
|
||||
{
|
||||
m_round_s = (bool)state;
|
||||
}
|
||||
|
||||
void am25s558_device::ru_w(int state)
|
||||
{
|
||||
m_round_u = (bool)state;
|
||||
}
|
110
src/devices/machine/am25s55x.h
Normal file
110
src/devices/machine/am25s55x.h
Normal file
@ -0,0 +1,110 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz
|
||||
/***************************************************************************
|
||||
|
||||
am25s55x.h
|
||||
AMD Am25S557/Am25S558 8x8-bit Combinatorial Multiplier
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef MAME_MACHINE_AM25S55X_H
|
||||
#define MAME_MACHINE_AM25S55X_H
|
||||
|
||||
#pragma once
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// ======================> am25s557_base_device
|
||||
|
||||
class am25s55x_device : public device_t
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
am25s55x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
|
||||
void x_w(uint8_t data);
|
||||
void y_w(uint8_t data);
|
||||
virtual void xm_w(int state);
|
||||
virtual void ym_w(int state);
|
||||
void oe_w(int state);
|
||||
|
||||
auto s() { return m_s.bind(); }
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
void multiply();
|
||||
|
||||
union input_reg
|
||||
{
|
||||
int8_t s;
|
||||
uint8_t u;
|
||||
};
|
||||
|
||||
union output_reg
|
||||
{
|
||||
int16_t s;
|
||||
uint16_t u;
|
||||
};
|
||||
|
||||
uint8_t m_x_in;
|
||||
uint8_t m_y_in;
|
||||
bool m_xm;
|
||||
bool m_ym;
|
||||
bool m_oe;
|
||||
|
||||
bool m_round_s;
|
||||
bool m_round_u;
|
||||
|
||||
input_reg m_x;
|
||||
input_reg m_y;
|
||||
output_reg m_s_out;
|
||||
|
||||
devcb_write16 m_s;
|
||||
};
|
||||
|
||||
|
||||
// ======================> am25s557_device
|
||||
|
||||
class am25s557_device : public am25s55x_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
am25s557_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
|
||||
virtual void xm_w(int state) override;
|
||||
virtual void ym_w(int state) override;
|
||||
|
||||
void r_w(int state);
|
||||
|
||||
protected:
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
void update_rounding();
|
||||
|
||||
bool m_r;
|
||||
};
|
||||
|
||||
|
||||
// ======================> am25s558_device
|
||||
|
||||
class am25s558_device : public am25s55x_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
am25s558_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
|
||||
void rs_w(int state);
|
||||
void ru_w(int state);
|
||||
};
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(AM25S557, am25s557_device)
|
||||
DECLARE_DEVICE_TYPE(AM25S558, am25s558_device)
|
||||
|
||||
#endif // MAME_MACHINE_AM25S55X_H
|
@ -13,11 +13,13 @@
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "cpu/m6800/m6801.h"
|
||||
#include "machine/6850acia.h"
|
||||
#include "machine/am25s55x.h"
|
||||
#include "machine/am2910.h"
|
||||
#include "machine/com8116.h"
|
||||
#include "machine/input_merger.h"
|
||||
#include "machine/tdc1008.h"
|
||||
#include "video/mc6845.h"
|
||||
#include "video/dpb_brushproc.h"
|
||||
#include "video/dpb_combiner.h"
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
@ -68,6 +70,7 @@ public:
|
||||
, m_filter_ce(*this, "filter_ce")
|
||||
, m_filter_cf(*this, "filter_cf")
|
||||
, m_filter_cg(*this, "filter_cg")
|
||||
, m_brush_proc(*this, "brush_proc%u", 0U)
|
||||
, m_combiner(*this, "combiner")
|
||||
{
|
||||
}
|
||||
@ -158,6 +161,7 @@ private:
|
||||
required_device<tdc1008_device> m_filter_cf;
|
||||
required_device<tdc1008_device> m_filter_cg;
|
||||
|
||||
required_device_array<dpb7000_brushproc_card_device, 2> m_brush_proc;
|
||||
required_device<dpb7000_combiner_card_device> m_combiner;
|
||||
|
||||
emu_timer *m_diskseq_clk;
|
||||
@ -1180,6 +1184,10 @@ void dpb7000_state::dpb7000(machine_config &config)
|
||||
TDC1008(config, m_filter_cf);
|
||||
TDC1008(config, m_filter_cg);
|
||||
|
||||
// Brush Processor Cards
|
||||
DPB7000_BRUSHPROC(config, m_brush_proc[0]);
|
||||
DPB7000_BRUSHPROC(config, m_brush_proc[1]);
|
||||
|
||||
// Combiner Card
|
||||
DPB7000_COMBINER(config, m_combiner, 14.318181_MHz_XTAL);
|
||||
}
|
||||
@ -1222,6 +1230,9 @@ ROM_START( dpb7000 )
|
||||
ROM_REGION(0x800, "fddprom", 0)
|
||||
ROM_LOAD("17446a-gd-m2716.bin", 0x000, 0x800, CRC(a0be00ca) SHA1(48c4f8c07b9f6bc9b68698e1e326782e0b01e1b0))
|
||||
|
||||
ROM_REGION(0x100, "brushstore_prom", 0)
|
||||
ROM_LOAD("pb-02a-17421-ada.bin", 0x000, 0x100, CRC(84bf7029) SHA1(9d58322994f6f7e99a9c6478577559c8171670ed))
|
||||
|
||||
ROM_REGION(0xc00, "storeaddr_x_prom", 0)
|
||||
ROM_LOAD("pb-032-17425b-bbb.bin", 0x000, 0x400, CRC(2051a6e4) SHA1(3bd8a9015e77b034a94fe072a9753649b76f9f69))
|
||||
ROM_LOAD("pb-032-17425b-bcb.bin", 0x400, 0x400, CRC(01aaa6f7) SHA1(e31bff0c68f74996368443bfb58a3524a838f270))
|
||||
|
177
src/mame/video/dpb_brushproc.cpp
Normal file
177
src/mame/video/dpb_brushproc.cpp
Normal file
@ -0,0 +1,177 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz
|
||||
/***************************************************************************
|
||||
|
||||
dpb_brushproc.cpp
|
||||
DPB-7000/1 - Brush Processor Card
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "dpb_brushproc.h"
|
||||
|
||||
#define VERBOSE (1)
|
||||
#include "logmacro.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
DEFINE_DEVICE_TYPE(DPB7000_BRUSHPROC, dpb7000_brushproc_card_device, "dpb_brushproc", "Quantel DPB-7000 Brush Processor Card")
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// dpb7000_brushproc_card_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
dpb7000_brushproc_card_device::dpb7000_brushproc_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, DPB7000_BRUSHPROC, tag, owner, clock)
|
||||
, m_ext_in(0)
|
||||
, m_brush_in(0)
|
||||
, m_k_in(0)
|
||||
, m_k_enable(0)
|
||||
, m_k_zero(false)
|
||||
, m_k_invert(false)
|
||||
, m_func(0)
|
||||
, m_sel_eh(false)
|
||||
, m_b_bus_ah(false)
|
||||
, m_fcs(false)
|
||||
, m_store1(*this)
|
||||
, m_store2(*this)
|
||||
, m_cbus(*this)
|
||||
, m_pck(*this)
|
||||
, m_mult_fa(*this, "mult_fa")
|
||||
, m_mult_ga(*this, "mult_ga")
|
||||
, m_mult_gd(*this, "mult_gd")
|
||||
{
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::device_start()
|
||||
{
|
||||
save_item(NAME(m_store_in));
|
||||
save_item(NAME(m_ext_in));
|
||||
save_item(NAME(m_brush_in));
|
||||
|
||||
save_item(NAME(m_k_in));
|
||||
save_item(NAME(m_k_enable));
|
||||
save_item(NAME(m_k_zero));
|
||||
save_item(NAME(m_k_invert));
|
||||
|
||||
save_item(NAME(m_func));
|
||||
|
||||
save_item(NAME(m_sel_luma));
|
||||
save_item(NAME(m_sel_eh));
|
||||
save_item(NAME(m_b_bus_ah));
|
||||
save_item(NAME(m_fcs));
|
||||
|
||||
m_store1.resolve_safe();
|
||||
m_store2.resolve_safe();
|
||||
m_cbus.resolve_safe();
|
||||
m_pck.resolve_safe();
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::device_reset()
|
||||
{
|
||||
memset(m_store_in, 0, 2);
|
||||
m_ext_in = 0;
|
||||
m_brush_in = 0;
|
||||
|
||||
m_k_in = 0;
|
||||
m_k_enable = 0;
|
||||
m_k_zero = 0;
|
||||
m_k_invert = 0;
|
||||
|
||||
m_func = 0;
|
||||
|
||||
memset(m_sel_luma, 0, 2);
|
||||
m_sel_eh = 0;
|
||||
m_b_bus_ah = 0;
|
||||
m_fcs = 0;
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
AM25S558(config, m_mult_fa);
|
||||
AM25S558(config, m_mult_ga);
|
||||
AM25S558(config, m_mult_gd);
|
||||
}
|
||||
|
||||
ROM_START( dpb7000_brushproc )
|
||||
ROM_REGION(0x200, "brushproc_prom", 0)
|
||||
ROM_LOAD("pb-02c-17593-baa.bin", 0x000, 0x200, CRC(a74cc1f5) SHA1(3b789d5a29c70c93dec56f44be8c14b41915bdef))
|
||||
ROM_END
|
||||
|
||||
const tiny_rom_entry *dpb7000_brushproc_card_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( dpb7000_brushproc );
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::store1_w(uint8_t data)
|
||||
{
|
||||
m_store_in[0] = data;
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::store2_w(uint8_t data)
|
||||
{
|
||||
m_store_in[1] = data;
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::ext_w(uint8_t data)
|
||||
{
|
||||
m_ext_in = data;
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::brush_w(uint8_t data)
|
||||
{
|
||||
m_brush_in = data;
|
||||
}
|
||||
|
||||
|
||||
void dpb7000_brushproc_card_device::k_w(uint8_t data)
|
||||
{
|
||||
m_k_in = data;
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::k_en_w(int state)
|
||||
{
|
||||
m_k_enable = (bool)state;
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::k_zero_w(int state)
|
||||
{
|
||||
m_k_zero = (bool)state;
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::k_inv_w(int state)
|
||||
{
|
||||
m_k_invert = (bool)state;
|
||||
}
|
||||
|
||||
|
||||
void dpb7000_brushproc_card_device::func_w(uint8_t data)
|
||||
{
|
||||
m_func = data;
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::sel_lum1_w(int state)
|
||||
{
|
||||
m_sel_luma[0] = (bool)state;
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::sel_lum2_w(int state)
|
||||
{
|
||||
m_sel_luma[1] = (bool)state;
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::sel_eh_w(int state)
|
||||
{
|
||||
m_sel_eh = (bool)state;
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::b_bus_ah_w(int state)
|
||||
{
|
||||
m_b_bus_ah = (bool)state;
|
||||
}
|
||||
|
||||
void dpb7000_brushproc_card_device::fixed_col_select_w(int state)
|
||||
{
|
||||
m_fcs = (bool)state;
|
||||
}
|
90
src/mame/video/dpb_brushproc.h
Normal file
90
src/mame/video/dpb_brushproc.h
Normal file
@ -0,0 +1,90 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz
|
||||
/***************************************************************************
|
||||
|
||||
dpb_brushproc.h
|
||||
DPB-7000/1 - Brush Processor Card
|
||||
|
||||
TODO:
|
||||
- Everything
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef MAME_VIDEO_DPB_BRUSHPROC_H
|
||||
#define MAME_VIDEO_DPB_BRUSHPROC_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "machine/am25s55x.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// ======================> dpb7000_brushproc_card_device
|
||||
|
||||
class dpb7000_brushproc_card_device : public device_t
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
dpb7000_brushproc_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
|
||||
void store1_w(uint8_t data);
|
||||
void store2_w(uint8_t data);
|
||||
void ext_w(uint8_t data);
|
||||
void brush_w(uint8_t data);
|
||||
|
||||
void k_w(uint8_t data);
|
||||
void k_en_w(int state);
|
||||
void k_zero_w(int state);
|
||||
void k_inv_w(int state);
|
||||
|
||||
void func_w(uint8_t data);
|
||||
void sel_lum1_w(int state);
|
||||
void sel_lum2_w(int state);
|
||||
void sel_eh_w(int state);
|
||||
void b_bus_ah_w(int state);
|
||||
void fixed_col_select_w(int state);
|
||||
|
||||
auto store1() { return m_store1.bind(); }
|
||||
auto store2() { return m_store2.bind(); }
|
||||
auto cbus() { return m_cbus.bind(); }
|
||||
auto pck() { return m_pck.bind(); }
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
|
||||
uint8_t m_store_in[2];
|
||||
uint8_t m_ext_in;
|
||||
uint8_t m_brush_in;
|
||||
|
||||
uint8_t m_k_in;
|
||||
bool m_k_enable;
|
||||
bool m_k_zero;
|
||||
bool m_k_invert;
|
||||
|
||||
uint8_t m_func;
|
||||
|
||||
bool m_sel_luma[2];
|
||||
bool m_sel_eh;
|
||||
bool m_b_bus_ah;
|
||||
bool m_fcs;
|
||||
|
||||
devcb_write8 m_store1;
|
||||
devcb_write8 m_store2;
|
||||
devcb_write8 m_cbus;
|
||||
devcb_write_line m_pck;
|
||||
required_device<am25s558_device> m_mult_fa;
|
||||
required_device<am25s558_device> m_mult_ga;
|
||||
required_device<am25s558_device> m_mult_gd;
|
||||
};
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(DPB7000_BRUSHPROC, dpb7000_brushproc_card_device)
|
||||
|
||||
#endif // MAME_VIDEO_DPB_BRUSHPROC_H
|
@ -5,9 +5,6 @@
|
||||
dpb_combiner.cpp
|
||||
DPB-7000/1 - Combiner Card
|
||||
|
||||
TODO:
|
||||
- Hook up clocked logic (multipliers, blanking, etc.)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
@ -140,7 +137,7 @@ void dpb7000_combiner_card_device::device_add_mconfig(machine_config &config)
|
||||
TMC28KU(config, m_mult_ga);
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(clock(), 910, 0, 640, 525, 0, 480);
|
||||
m_screen->set_raw(DERIVED_CLOCK(1, 1), 910, 0, 640, 525, 0, 480);
|
||||
m_screen->set_screen_update(FUNC(dpb7000_combiner_card_device::screen_update));
|
||||
}
|
||||
|
||||
|
@ -5,9 +5,6 @@
|
||||
dpb_combiner.h
|
||||
DPB-7000/1 - Combiner Card
|
||||
|
||||
TODO:
|
||||
- Hook up clocked logic (multipliers, blanking, etc.)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef MAME_VIDEO_DPB_COMBINER_H
|
||||
|
Loading…
Reference in New Issue
Block a user