summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/apc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/apc.cpp')
-rw-r--r--src/mame/drivers/apc.cpp61
1 files changed, 25 insertions, 36 deletions
diff --git a/src/mame/drivers/apc.cpp b/src/mame/drivers/apc.cpp
index 9c010c25bbb..cf3686b1730 100644
--- a/src/mame/drivers/apc.cpp
+++ b/src/mame/drivers/apc.cpp
@@ -207,51 +207,38 @@ UPD7220_DISPLAY_PIXELS_MEMBER( apc_state::hgdc_display_pixels )
UPD7220_DRAW_TEXT_LINE_MEMBER( apc_state::hgdc_draw_text )
{
- const rgb_t *palette = m_palette->palette()->entry_list_raw();
- int xi,yi,yi_trans;
- int x;
- uint8_t char_size;
-// uint8_t interlace_on;
+ rgb_t const *const palette = m_palette->palette()->entry_list_raw();
// if(m_video_ff[DISPLAY_REG] == 0) //screen is off
// return;
-// interlace_on = m_video_reg[2] == 0x10; /* TODO: correct? */
- char_size = 19;
+// uint8_t interlace_on = m_video_reg[2] == 0x10; /* TODO: correct? */
+ uint8_t char_size = 19;
- for(x=0;x<pitch;x++)
+ for(int x=0;x<pitch;x++)
{
- uint8_t tile_data;
- uint8_t u_line, o_line, v_line, reverse, blink;
- uint8_t color;
- uint8_t tile,attr,pen;
- uint32_t tile_addr;
- uint8_t tile_sel;
-
-// tile_addr = addr+(x*(m_video_ff[WIDTH40_REG]+1));
- tile_addr = addr+(x*(1));
-
- tile = (m_video_ram_1[((tile_addr*2) & 0x1fff) >> 1] >> 8) & 0x00ff;
- tile_sel = m_video_ram_1[((tile_addr*2) & 0x1fff) >> 1] & 0x00ff;
- attr = (m_video_ram_1[((tile_addr*2 & 0x1fff) | 0x2000) >> 1] & 0x00ff);
-
- u_line = attr & 0x01;
- o_line = attr & 0x02;
- v_line = attr & 0x04;
- blink = attr & 0x08;
- reverse = attr & 0x10;
+// uint32_t tile_addr = addr+(x*(m_video_ff[WIDTH40_REG]+1));
+ uint32_t tile_addr = addr+(x*(1));
+
+ uint8_t tile = (m_video_ram_1[((tile_addr*2) & 0x1fff) >> 1] >> 8) & 0x00ff;
+ uint8_t tile_sel = m_video_ram_1[((tile_addr*2) & 0x1fff) >> 1] & 0x00ff;
+ uint8_t attr = (m_video_ram_1[((tile_addr*2 & 0x1fff) | 0x2000) >> 1] & 0x00ff);
+
+ uint8_t u_line = attr & 0x01;
+ uint8_t o_line = attr & 0x02;
+ uint8_t v_line = attr & 0x04;
+ uint8_t blink = attr & 0x08;
+ uint8_t reverse = attr & 0x10;
// secret= (attr & 1) ^ 1;
- color = (attr & 0xe0) >> 5;
+ uint8_t color = (attr & 0xe0) >> 5;
- for(yi=0;yi<lr;yi++)
+ for(int yi=0;yi<lr;yi++)
{
- yi_trans = (yi==0)?lr-1:yi-1;
- for(xi=0;xi<8;xi++)
+ int yi_trans = (yi==0)?lr-1:yi-1;
+ for(int xi=0;xi<8;xi++)
{
- int res_x,res_y;
-
- res_x = (x*8+xi);
- res_y = y+yi;
+ int res_x = (x*8+xi);
+ int res_y = y+yi;
if(!m_screen->visible_area().contains(res_x, res_y))
continue;
@@ -272,6 +259,7 @@ UPD7220_DRAW_TEXT_LINE_MEMBER( apc_state::hgdc_draw_text )
Data bus: 76543210 = pixels, in left->01234567->right order
*/
+ uint8_t tile_data;
if(tile_sel == 0x89)// Aux character RAM select TODO: correct triggering?
{
if(yi & 0x10)
@@ -291,13 +279,14 @@ UPD7220_DRAW_TEXT_LINE_MEMBER( apc_state::hgdc_draw_text )
if(cursor_on && cursor_addr == tile_addr && m_screen->frame_number() & 0x10)
tile_data^=0xff;
+ uint8_t pen;
if(yi >= char_size)
pen = 0;
else
pen = (tile_data >> (xi) & 1) ? color : 0;
if(pen)
- bitmap.pix32(res_y, res_x) = palette[pen];
+ bitmap.pix(res_y, res_x) = palette[pen];
}
}
}