blob: ec27e0dd3a6a29307e310f8881a4ad317b2bcfa5 (
plain) (
tree)
|
|
// license:BSD-3-Clause
// copyright-holders:Krzysztof Strzecha
/***************************************************************************
primo.c
Functions to emulate the video hardware of Primo.
Krzysztof Strzecha
***************************************************************************/
#include "emu.h"
#include "includes/primo.h"
void primo_state::primo_draw_scanline(bitmap_ind16 &bitmap, int primo_scanline)
{
int x, i;
uint8_t data;
/* set up scanline */
uint16_t *scanline = &bitmap.pix16(primo_scanline);
/* address of current line in Primo video memory */
const uint8_t* primo_video_ram_line = (const uint8_t*)m_maincpu->space(AS_PROGRAM).get_read_ptr(m_video_memory_base + 32 * primo_scanline);
for (x=0; x<256; x+=8)
{
data = primo_video_ram_line[x/8];
for (i=0; i<8; i++)
scanline[x+i]=(data & (0x80>>i)) ? 1 : 0;
}
}
uint32_t primo_state::screen_update_primo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int primo_scanline;
for (primo_scanline=0; primo_scanline<192; primo_scanline++)
primo_draw_scanline( bitmap, primo_scanline);
return 0;
}
|