mirror of
https://github.com/holub/mame
synced 2025-05-25 23:35:26 +03:00
cit101: Add brightness control (nw)
This commit is contained in:
parent
8e768ae25e
commit
3bad31a73a
@ -104,6 +104,7 @@ private:
|
|||||||
u8 m_e0_latch;
|
u8 m_e0_latch;
|
||||||
|
|
||||||
bool m_blink;
|
bool m_blink;
|
||||||
|
u8 m_brightness;
|
||||||
|
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
required_device<screen_device> m_screen;
|
required_device<screen_device> m_screen;
|
||||||
@ -119,8 +120,11 @@ void cit101_state::machine_start()
|
|||||||
subdevice<i8251_device>("comuart")->write_cts(0);
|
subdevice<i8251_device>("comuart")->write_cts(0);
|
||||||
subdevice<i8251_device>("kbduart")->write_cts(0);
|
subdevice<i8251_device>("kbduart")->write_cts(0);
|
||||||
|
|
||||||
|
m_brightness = 0xff;
|
||||||
|
|
||||||
save_item(NAME(m_e0_latch));
|
save_item(NAME(m_e0_latch));
|
||||||
save_item(NAME(m_blink));
|
save_item(NAME(m_blink));
|
||||||
|
save_item(NAME(m_brightness));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -137,10 +141,10 @@ void cit101_state::draw_line(uint32_t *pixptr, int minx, int maxx, int line, boo
|
|||||||
u8 char_data = m_chargen[(m_mainram[rowaddr] << 4) | line];
|
u8 char_data = m_chargen[(m_mainram[rowaddr] << 4) | line];
|
||||||
if (last_line && BIT(attr, 0))
|
if (last_line && BIT(attr, 0))
|
||||||
char_data ^= 0xff;
|
char_data ^= 0xff;
|
||||||
rgb_t on_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t::black() : rgb_t::white();
|
rgb_t on_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t::black() : rgb_t(m_brightness, m_brightness, m_brightness);
|
||||||
rgb_t off_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t::white() : rgb_t::black();
|
rgb_t off_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t(m_brightness, m_brightness, m_brightness) : rgb_t::black();
|
||||||
if (BIT(attr, 3) && m_blink)
|
if (BIT(attr, 3) && m_blink)
|
||||||
on_color = rgb_t(0xc0, 0xc0, 0xc0);
|
on_color = rgb_t(m_brightness * 0.75, m_brightness * 0.75, m_brightness * 0.75);
|
||||||
bool last_bit = false;
|
bool last_bit = false;
|
||||||
for (int x = 0; x <= maxx; x++)
|
for (int x = 0; x <= maxx; x++)
|
||||||
{
|
{
|
||||||
@ -162,10 +166,10 @@ void cit101_state::draw_line(uint32_t *pixptr, int minx, int maxx, int line, boo
|
|||||||
char_data = m_chargen[(m_mainram[rowaddr] << 4) | line];
|
char_data = m_chargen[(m_mainram[rowaddr] << 4) | line];
|
||||||
if (last_line && BIT(attr, 0))
|
if (last_line && BIT(attr, 0))
|
||||||
char_data ^= 0xff;
|
char_data ^= 0xff;
|
||||||
on_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t::black() : rgb_t::white();
|
on_color = BIT(attr, 1) ? rgb_t::black() : rgb_t(m_brightness, m_brightness, m_brightness);
|
||||||
off_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t::white() : rgb_t::black();
|
off_color = BIT(attr, 1) ? rgb_t(m_brightness, m_brightness, m_brightness) : rgb_t::black();
|
||||||
if (BIT(attr, 3) && m_blink)
|
if (BIT(attr, 3) && m_blink)
|
||||||
on_color = rgb_t(0xc0, 0xc0, 0xc0);
|
on_color = rgb_t(m_brightness * 0.75, m_brightness * 0.75, m_brightness * 0.75);
|
||||||
last_bit = false;
|
last_bit = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -266,6 +270,8 @@ WRITE8_MEMBER(cit101_state::screen_control_w)
|
|||||||
|
|
||||||
WRITE8_MEMBER(cit101_state::brightness_w)
|
WRITE8_MEMBER(cit101_state::brightness_w)
|
||||||
{
|
{
|
||||||
|
// Function of upper 3 bits is unknown
|
||||||
|
m_brightness = pal5bit(~data & 0x1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(cit101_state::nvr_address_w)
|
WRITE8_MEMBER(cit101_state::nvr_address_w)
|
||||||
|
Loading…
Reference in New Issue
Block a user