diff --git a/hw/vga.c b/hw/vga.c index ce1754f75f137c3d61dabbb65ab0f1a2f7bd15ba..f05dd1c575eac2aa50d63a0b19b15006b2f81335 100644 --- a/hw/vga.c +++ b/hw/vga.c @@ -1138,7 +1138,7 @@ static void vga_draw_text(VGAState *s, int full_update) /* total width & height */ cheight = (s->cr[9] & 0x1f) + 1; cw = 8; - if (s->sr[1] & 0x01) + if (!(s->sr[1] & 0x01)) cw = 9; if (s->sr[1] & 0x08) cw = 16; /* NOTE: no 18 pixel wide */ @@ -1154,7 +1154,7 @@ static void vga_draw_text(VGAState *s, int full_update) height = (height + 1) / cheight; } if (width != s->last_width || height != s->last_height || - cw != s->last_cw || cw != s->last_cw) { + cw != s->last_cw || cheight != s->last_ch) { dpy_resize(s->ds, width * cw, height * cheight); s->last_width = width; s->last_height = height; diff --git a/hw/vga_template.h b/hw/vga_template.h index 810b4b128b27adfc387b02d73b18e2b8692be36f..766257c09e57fd2e7adb997cc466c51114941cca 100644 --- a/hw/vga_template.h +++ b/hw/vga_template.h @@ -127,14 +127,14 @@ static void glue(vga_draw_glyph9_, DEPTH)(uint8_t *d, int linesize, else ((uint16_t *)d)[8] = bgcol; #else - ((uint32_t *)d)[0] = ((-(font_data >> 7)) & xorcol) ^ bgcol; - ((uint32_t *)d)[1] = ((-(font_data >> 6) & 1) & xorcol) ^ bgcol; - ((uint32_t *)d)[2] = ((-(font_data >> 5) & 1) & xorcol) ^ bgcol; - ((uint32_t *)d)[3] = ((-(font_data >> 4) & 1) & xorcol) ^ bgcol; - ((uint32_t *)d)[4] = ((-(font_data >> 3) & 1) & xorcol) ^ bgcol; - ((uint32_t *)d)[5] = ((-(font_data >> 2) & 1) & xorcol) ^ bgcol; - ((uint32_t *)d)[6] = ((-(font_data >> 1) & 1) & xorcol) ^ bgcol; - v = ((-(font_data >> 0) & 1) & xorcol) ^ bgcol; + ((uint32_t *)d)[0] = (-((font_data >> 7)) & xorcol) ^ bgcol; + ((uint32_t *)d)[1] = (-((font_data >> 6) & 1) & xorcol) ^ bgcol; + ((uint32_t *)d)[2] = (-((font_data >> 5) & 1) & xorcol) ^ bgcol; + ((uint32_t *)d)[3] = (-((font_data >> 4) & 1) & xorcol) ^ bgcol; + ((uint32_t *)d)[4] = (-((font_data >> 3) & 1) & xorcol) ^ bgcol; + ((uint32_t *)d)[5] = (-((font_data >> 2) & 1) & xorcol) ^ bgcol; + ((uint32_t *)d)[6] = (-((font_data >> 1) & 1) & xorcol) ^ bgcol; + v = (-((font_data >> 0) & 1) & xorcol) ^ bgcol; ((uint32_t *)d)[7] = v; if (dup9) ((uint32_t *)d)[8] = v;