fs3216: Green screen and some attributes (nw)

This commit is contained in:
AJR 2019-01-03 22:31:07 -05:00
parent 944bb8d8d0
commit b37d675988

View File

@ -109,10 +109,13 @@ MC6845_UPDATE_ROW(fs3216_state::crt_update_row)
for (int i = 0; i < x_count; i++)
{
u16 chr = m_videoram[(ma + i) & 0x7ff];
rgb_t fg = rgb_t::white();
rgb_t fg = BIT(chr, 13) ? rgb_t::white() : rgb_t(0xc0, 0xc0, 0xc0);
rgb_t bg = rgb_t::black();
u16 dots = m_chargen[(chr & 0xff) << 4 | ra] << 1;
if (ra == 9 && BIT(chr, 12))
dots = 0x1ff;
for (int n = 9; n > 0; n--, dots <<= 1)
*px++ = BIT(dots, 8) ? fg : bg;
}
@ -239,7 +242,7 @@ void fs3216_state::clb_map(address_map &map)
map(0x3a8000, 0x3a8fff).ram().share("videoram"); // 2x M58725P
map(0x3b0000, 0x3b1fff).rom().region("comm_a", 0);
map(0x3c0000, 0x3c1fff).rom().region("comm_b", 0);
map(0x3e0000, 0x3e1fff).rom().region("wd1001_clb", 0);
//map(0x3e0000, 0x3e1fff).rom().region("wd1001_clb", 0);
map(0x3f5000, 0x3f5001).w(FUNC(fs3216_state::mmu_init_w));
map(0x3f6000, 0x3f6001).w(FUNC(fs3216_state::fdc_reset_w));
map(0x3f6800, 0x3f6fff).rw(FUNC(fs3216_state::fdc_ram_r), FUNC(fs3216_state::fdc_ram_w)).umask16(0x00ff);
@ -290,6 +293,7 @@ void fs3216_state::fs3216(machine_config &config)
crtc.set_update_row_callback(FUNC(fs3216_state::crt_update_row), this);
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_color(rgb_t::green());
screen.set_raw(14.58_MHz_XTAL, 900, 0, 720, 270, 0, 250);
screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));