diff options
Diffstat (limited to 'src/mess/video/apple2gs.c')
-rw-r--r-- | src/mess/video/apple2gs.c | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/src/mess/video/apple2gs.c b/src/mess/video/apple2gs.c deleted file mode 100644 index fb00047c30a..00000000000 --- a/src/mess/video/apple2gs.c +++ /dev/null @@ -1,168 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Nathan Woods,R. Belmont -/********************************************************************* - - video/apple2gs.c - - Apple IIgs video code - -*********************************************************************/ - - -#include "emu.h" -#include "includes/apple2.h" -#include "includes/apple2gs.h" - - - -VIDEO_START_MEMBER(apple2gs_state,apple2gs) -{ - m_bordercolor = 0; - apple2_video_start(m_slowmem, m_slowmem+0x10000, 0, 8); - m_legacy_gfx = auto_bitmap_ind16_alloc(machine(), 560, 192); - - save_item(m_bordercolor, "BORDERCLR"); - save_item(NAME(m_fgcolor)); - save_item(NAME(m_bgcolor)); -} - - - -UINT32 apple2gs_state::screen_update_apple2gs(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) -{ - const UINT8 *vram; - UINT32 *scanline; - UINT8 scb, b; - int col, palette; - UINT32 last_pixel = 0, pixel; - int beamy; - UINT16 *a2pixel; - - beamy = cliprect.min_y; - - if (m_newvideo & 0x80) - { - // in top or bottom border? - if ((beamy < BORDER_TOP) || (beamy >= 200+BORDER_TOP)) - { - // don't draw past the bottom border - if (beamy >= 231+BORDER_TOP) - { - return 0; - } - - scanline = &bitmap.pix32(beamy); - for (col = 0; col < BORDER_LEFT+BORDER_RIGHT+640; col++) - { - scanline[col] = m_a2_palette[m_bordercolor]; - } - } - else // regular screen area - { - int shrline = beamy - BORDER_TOP; - - scb = m_slowmem[0x19D00 + shrline]; - palette = ((scb & 0x0f) << 4); - - vram = &m_slowmem[0x12000 + (shrline * 160)]; - scanline = &bitmap.pix32(beamy); - - // draw left and right borders - for (col = 0; col < BORDER_LEFT; col++) - { - scanline[col] = m_a2_palette[m_bordercolor]; - scanline[col+BORDER_LEFT+640] = m_a2_palette[m_bordercolor]; - } - - if (scb & 0x80) // 640 mode - { - for (col = 0; col < 160; col++) - { - b = vram[col]; - scanline[col * 4 + 0 + BORDER_LEFT] = m_shr_palette[palette + 0 + ((b >> 6) & 0x03)]; - scanline[col * 4 + 1 + BORDER_LEFT] = m_shr_palette[palette + 4 + ((b >> 4) & 0x03)]; - scanline[col * 4 + 2 + BORDER_LEFT] = m_shr_palette[palette + 8 + ((b >> 2) & 0x03)]; - scanline[col * 4 + 3 + BORDER_LEFT] = m_shr_palette[palette + 12 + ((b >> 0) & 0x03)]; - } - } - else // 320 mode - { - for (col = 0; col < 160; col++) - { - b = vram[col]; - pixel = (b >> 4) & 0x0f; - - if ((scb & 0x20) && !pixel) - pixel = last_pixel; - else - last_pixel = pixel; - pixel += palette; - scanline[col * 4 + 0 + BORDER_LEFT] = m_shr_palette[pixel]; - scanline[col * 4 + 1 + BORDER_LEFT] = m_shr_palette[pixel]; - - b = vram[col]; - pixel = (b >> 0) & 0x0f; - - if ((scb & 0x20) && !pixel) - pixel = last_pixel; - else - last_pixel = pixel; - pixel += palette; - scanline[col * 4 + 2 + BORDER_LEFT] = m_shr_palette[pixel]; - scanline[col * 4 + 3 + BORDER_LEFT] = m_shr_palette[pixel]; - } - } - } - } - else - { - /* call legacy Apple II video rendering at scanline 0 to draw into the off-screen buffer */ - if (beamy == 0) - { - // check if DHR should be monochrome 560x192 - if (m_newvideo & 0x20) - { - m_monochrome_dhr = true; - } - else - { - m_monochrome_dhr = false; - } - - rectangle new_cliprect(0, 559, 0, 191); - screen_update_apple2(screen, *m_legacy_gfx, new_cliprect); - } - - if ((beamy < (BORDER_TOP+4)) || (beamy >= (192+4+BORDER_TOP))) - { - if (beamy >= (231+BORDER_TOP)) - { - return 0; - } - - scanline = &bitmap.pix32(beamy); - for (col = 0; col < BORDER_LEFT+BORDER_RIGHT+640; col++) - { - scanline[col] = m_a2_palette[m_bordercolor]; - } - } - else - { - scanline = &bitmap.pix32(beamy); - - // draw left and right borders - for (col = 0; col < BORDER_LEFT + 40; col++) - { - scanline[col] = m_a2_palette[m_bordercolor]; - scanline[col+BORDER_LEFT+600] = m_a2_palette[m_bordercolor]; - } - - a2pixel = &m_legacy_gfx->pix16(beamy-(BORDER_TOP+4)); - for (int x = 0; x < 560; x++) - { - scanline[40 + BORDER_LEFT + x] = m_a2_palette[*a2pixel++]; - } - } - } - return 0; -} |