dp8344: Split into two device types (only nominally different for now) (nw)

This commit is contained in:
AJR 2019-12-01 19:30:17 -05:00
parent ac55cbc84d
commit 968130b847
5 changed files with 53 additions and 11 deletions

View File

@ -47,7 +47,9 @@
// GLOBAL VARIABLES
//**************************************************************************
DEFINE_DEVICE_TYPE(DP8344, dp8344_device, "dp8344", "DP8344 BCP")
// device type definitions
DEFINE_DEVICE_TYPE(DP8344A, dp8344a_device, "dp8344a", "DP8344A BCP")
DEFINE_DEVICE_TYPE(DP8344B, dp8344b_device, "dp8344b", "DP8344B BCP")
//**************************************************************************
@ -60,8 +62,8 @@ ALLOW_SAVE_TYPE(dp8344_device::inst_state);
// dp8344_device - constructor
//-------------------------------------------------
dp8344_device::dp8344_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: cpu_device(mconfig, DP8344, tag, owner, clock)
dp8344_device::dp8344_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
: cpu_device(mconfig, type, tag, owner, clock)
, m_inst_config("instruction", ENDIANNESS_LITTLE, 16, 16, -1)
, m_data_config("data", ENDIANNESS_LITTLE, 8, 16, 0)
, m_inst_space(nullptr)
@ -112,6 +114,27 @@ dp8344_device::dp8344_device(const machine_config &mconfig, const char *tag, dev
}
//-------------------------------------------------
// dp8344a_device - constructor
//-------------------------------------------------
dp8344a_device::dp8344a_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: dp8344_device(mconfig, DP8344A, tag, owner, clock)
{
}
//-------------------------------------------------
// dp8344b_device - constructor
//-------------------------------------------------
dp8344b_device::dp8344b_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: dp8344_device(mconfig, DP8344B, tag, owner, clock)
{
// TODO: emulate differences between DP8344A and DP8344B
}
//-------------------------------------------------
// memory_space_config - return a vector of
// configuration structures for memory spaces

View File

@ -45,9 +45,6 @@ public:
BCP_ASP, BCP_DSP
};
// construction/destruction
dp8344_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// callback configuration
auto birq_out_cb() { return m_birq_out_cb.bind(); }
auto data_out_cb() { return m_data_out_cb.bind(); }
@ -64,6 +61,9 @@ public:
void remote_write(offs_t offset, u8 data);
protected:
// construction/destruction
dp8344_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
// device-specific overrides
virtual void device_resolve_objects() override;
virtual void device_start() override;
@ -212,7 +212,26 @@ private:
u8 m_tfifo_head;
};
// device type declaration
DECLARE_DEVICE_TYPE(DP8344, dp8344_device)
// ======================> dp8344a_device
class dp8344a_device : public dp8344_device
{
public:
// device type constructor
dp8344a_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
// ======================> dp8344b_device
class dp8344b_device : public dp8344_device
{
public:
// device type constructor
dp8344b_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
// device type declarations
DECLARE_DEVICE_TYPE(DP8344A, dp8344a_device)
DECLARE_DEVICE_TYPE(DP8344B, dp8344b_device)
#endif // MAME_CPU_BCP_DP8344_H

View File

@ -50,7 +50,7 @@ void cbnt2039_state::cbnt2039(machine_config &config)
{
//F8680(config, m_maincpu, OSC1);
DP8344(config, m_bcp, 18.8696_MHz_XTAL); // DP8344BV; Y1 = "RXD8.000"; Y2 = "RXD18.86"
DP8344B(config, m_bcp, 18.8696_MHz_XTAL); // DP8344BV; Y1 = "RXD8.000"; Y2 = "RXD18.86"
m_bcp->set_addrmap(AS_PROGRAM, &cbnt2039_state::bcp_prog_map);
m_bcp->set_addrmap(AS_DATA, &cbnt2039_state::bcp_data_map);

View File

@ -81,7 +81,7 @@ void is48x_state::is482(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &is48x_state::mem_map);
m_maincpu->set_addrmap(AS_IO, &is48x_state::io_map);
DP8344(config, m_bcp, 18.867_MHz_XTAL); // DP8344BV
DP8344B(config, m_bcp, 18.867_MHz_XTAL); // DP8344BV
m_bcp->set_addrmap(AS_PROGRAM, &is48x_state::bcp_inst_map);
m_bcp->set_addrmap(AS_DATA, &is48x_state::bcp_data_map);

View File

@ -60,7 +60,7 @@ INPUT_PORTS_END
void telex1192_state::telex1192(machine_config &config)
{
DP8344(config, m_bcp, 18.8696_MHz_XTAL);
DP8344A(config, m_bcp, 18.8696_MHz_XTAL);
m_bcp->set_addrmap(AS_PROGRAM, &telex1192_state::inst_map);
m_bcp->set_addrmap(AS_DATA, &telex1192_state::data_map);