diff --git a/src/mame/drivers/fs3216.cpp b/src/mame/drivers/fs3216.cpp index 1f7587af9a3..cd6ab696765 100644 --- a/src/mame/drivers/fs3216.cpp +++ b/src/mame/drivers/fs3216.cpp @@ -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));