UINT32 pc1512_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { if (m_vdu_mode & MODE_ENABLE_VIDEO) { m_blink_ctr++; if (m_blink_ctr == 0x08) { m_cursor = !m_cursor; } else if (m_blink_ctr == 0x10) { m_cursor = !m_cursor; m_blink = !m_blink; m_blink_ctr = 0; } switch (get_display_mode(m_vdu_mode)) { case ALPHA_40: case GRAPHICS_1: screen.set_visible_area(0, 359, 0, 245); break; case ALPHA_80: case GRAPHICS_2: screen.set_visible_area(0, 831, 0, 245); break; } switch (get_display_mode(m_vdu_mode)) { case ALPHA_40: case ALPHA_80: case GRAPHICS_1: bitmap.fill(PALETTE[m_vdu_color & 0x0f], cliprect); break; case GRAPHICS_2: bitmap.fill(PALETTE[m_vdu_border & 0x0f], cliprect); break; } m_vdu->screen_update(screen, bitmap, cliprect); } else { bitmap.fill(RGB_BLACK, cliprect); } return 0; }
UINT32 interact_state::screen_update_interact(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT8 *videoram = m_videoram; screen.set_visible_area(0, 113, 0, 75); hector_hr(bitmap, videoram, 77, 32); return 0; }
bool abc802_state::screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect) { // HACK expand visible area to workaround MC6845 screen.set_visible_area(0, 767, 0, 311); // draw text m_crtc->update(&bitmap, &cliprect); return 0; }
UINT32 hec2hrp_state::screen_update_hec2hrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT8 *videoram = m_videoram; UINT8 *videoram_HR = m_hector_videoram; if (m_hector_flag_hr==1) { if (m_hector_flag_80c==0) { screen.set_visible_area(0, 243, 0, 227); hector_hr(bitmap , &videoram_HR[0], 227, 64); } else { screen.set_visible_area(0, 243*2, 0, 227); hector_80c(bitmap , &videoram_HR[0], 227, 64); } } else { screen.set_visible_area(0, 113, 0, 75); hector_hr(bitmap, videoram, 77, 32); } return 0; }