bt431, bt45x: make accessors public

This commit is contained in:
Patrick Mackinlay 2025-03-12 14:22:46 +07:00
parent faffe13522
commit 56ecdf4249
2 changed files with 27 additions and 26 deletions

View File

@ -54,15 +54,6 @@ public:
};
void map(address_map &map) ATTR_COLD;
bool cur_r(unsigned x, unsigned y) const;
protected:
static constexpr u16 ADDRESS_MASK = 0x01ff;
// device_t overrides
virtual void device_start() override ATTR_COLD;
virtual void device_reset() override ATTR_COLD;
template <unsigned S> u8 addr_r() { return m_address >> S; }
template <unsigned S> void addr_w(u8 data) { m_address = ((m_address & (0xff00 >> S)) | (u16(data) << S)) & ADDRESS_MASK; }
@ -72,6 +63,15 @@ protected:
u8 reg_r();
void reg_w(u8 data);
bool cur_r(unsigned x, unsigned y) const;
protected:
static constexpr u16 ADDRESS_MASK = 0x01ff;
// device_t overrides
virtual void device_start() override ATTR_COLD;
virtual void device_reset() override ATTR_COLD;
private:
void update();

View File

@ -44,12 +44,6 @@ public:
virtual void map(address_map &map) ATTR_COLD;
protected:
bt45x_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const u32 palette_colors, const u32 overlay_colors);
virtual void device_start() override ATTR_COLD;
virtual void device_reset() override ATTR_COLD;
u8 address_r();
void address_w(u8 data);
virtual u8 palette_r(address_space &space) = 0;
@ -59,6 +53,12 @@ protected:
virtual u8 overlay_r(address_space &space) = 0;
virtual void overlay_w(u8 data) = 0;
protected:
bt45x_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const u32 palette_colors, const u32 overlay_colors);
virtual void device_start() override ATTR_COLD;
virtual void device_reset() override ATTR_COLD;
// helpers
virtual void increment_address(const bool side_effects = false);
virtual u8 get_mask() const { return m_palette_colors - 1; }
@ -79,6 +79,12 @@ protected:
class bt45x_rgb_device_base : public bt45x_device_base, public device_palette_interface
{
public:
virtual u8 palette_r(address_space &space) override;
virtual void palette_w(u8 data) override;
virtual u8 overlay_r(address_space &space) override;
virtual void overlay_w(u8 data) override;
protected:
bt45x_rgb_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const u32 palette_colors, const u32 overlay_colors);
@ -86,17 +92,17 @@ protected:
virtual u32 palette_entries() const noexcept override { return m_palette_colors + m_overlay_colors; }
virtual u8 palette_r(address_space &space) override;
virtual void palette_w(u8 data) override;
virtual u8 overlay_r(address_space &space) override;
virtual void overlay_w(u8 data) override;
std::unique_ptr<std::array<u8, 3>[]> m_color_ram;
};
class bt45x_mono_device_base : public bt45x_device_base
{
public:
virtual u8 palette_r(address_space &space) override;
virtual void palette_w(u8 data) override;
virtual u8 overlay_r(address_space &space) override;
virtual void overlay_w(u8 data) override;
// helper instead of device_palette_interface
u8 lookup(u8 pixel, u8 overlay = 0) const
{
@ -111,11 +117,6 @@ protected:
virtual void device_start() override ATTR_COLD;
virtual u8 palette_r(address_space &space) override;
virtual void palette_w(u8 data) override;
virtual u8 overlay_r(address_space &space) override;
virtual void overlay_w(u8 data) override;
std::unique_ptr<u8[]> m_color_ram;
};
@ -161,12 +162,12 @@ class bt457_device : public bt45x_mono_device_base
public:
bt457_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
virtual u8 palette_r(address_space &space) override;
virtual void palette_w(u8 data) override;
virtual u8 overlay_r(address_space &space) override;
virtual void overlay_w(u8 data) override;
protected:
virtual void increment_address(const bool side_effects = false) override;
};