diff options
Diffstat (limited to 'sys/dev/syscons')
-rw-r--r-- | sys/dev/syscons/scgfbrndr.c | 2 | ||||
-rw-r--r-- | sys/dev/syscons/scmouse.c | 1 | ||||
-rw-r--r-- | sys/dev/syscons/scvgarndr.c | 4 | ||||
-rw-r--r-- | sys/dev/syscons/scvidctl.c | 6 | ||||
-rw-r--r-- | sys/dev/syscons/syscons.c | 34 | ||||
-rw-r--r-- | sys/dev/syscons/syscons.h | 10 |
6 files changed, 31 insertions, 26 deletions
diff --git a/sys/dev/syscons/scgfbrndr.c b/sys/dev/syscons/scgfbrndr.c index 32a9166..fa522f8 100644 --- a/sys/dev/syscons/scgfbrndr.c +++ b/sys/dev/syscons/scgfbrndr.c @@ -323,7 +323,7 @@ gfb_mouse(scr_stat *scp, int x, int y, int on) /* Display the mouse pointer image... */ (*vidsw[scp->sc->adapter]->putm)(scp->sc->adp, x, y, - mouse_pointer, 0xffffffff, 16); + mouse_pointer, 0xffffffff, 16, 8); } else { /* diff --git a/sys/dev/syscons/scmouse.c b/sys/dev/syscons/scmouse.c index ef5c026..73455f3 100644 --- a/sys/dev/syscons/scmouse.c +++ b/sys/dev/syscons/scmouse.c @@ -883,6 +883,7 @@ sc_mouse_ioctl(struct tty *tp, u_long cmd, caddr_t data, int flag, #ifndef SC_NO_FONT_LOADING if (ISTEXTSC(cur_scp) && (cur_scp->font != NULL)) sc_load_font(cur_scp, 0, cur_scp->font_size, + cur_scp->font_width, cur_scp->font + cur_scp->font_size * cur_scp->sc->mouse_char, cur_scp->sc->mouse_char, 4); diff --git a/sys/dev/syscons/scvgarndr.c b/sys/dev/syscons/scvgarndr.c index 3c52a24..81498ec 100644 --- a/sys/dev/syscons/scvgarndr.c +++ b/sys/dev/syscons/scvgarndr.c @@ -312,7 +312,7 @@ draw_txtcharcursor(scr_stat *scp, int at, u_short c, u_short a, int flip) font[i] ^= 0xff; } /* XXX */ - (*vidsw[sc->adapter]->load_font)(sc->adp, 0, h, font, + (*vidsw[sc->adapter]->load_font)(sc->adp, 0, h, 8, font, sc->cursor_char, 1); sc_vtb_putc(&scp->scr, at, sc->cursor_char, a); } else @@ -438,7 +438,7 @@ draw_txtmouse(scr_stat *scp, int x, int y) while (!(inb(crtc_addr + 6) & 0x08)) /* idle */ ; #endif c = scp->sc->mouse_char; - (*vidsw[scp->sc->adapter]->load_font)(scp->sc->adp, 0, 32, font_buf, + (*vidsw[scp->sc->adapter]->load_font)(scp->sc->adp, 0, 32, 8, font_buf, c, 4); sc_vtb_putc(&scp->scr, pos, c, sc_vtb_geta(&scp->scr, pos)); diff --git a/sys/dev/syscons/scvidctl.c b/sys/dev/syscons/scvidctl.c index dff5d89..f2debe3 100644 --- a/sys/dev/syscons/scvidctl.c +++ b/sys/dev/syscons/scvidctl.c @@ -694,11 +694,11 @@ sc_vid_ioctl(struct tty *tp, u_long cmd, caddr_t data, int flag, struct thread * * Don't load fonts for now... XXX */ if (scp->sc->fonts_loaded & FONT_8) - sc_load_font(scp, 0, 8, scp->sc->font_8, 0, 256); + sc_load_font(scp, 0, 8, 8, scp->sc->font_8, 0, 256); if (scp->sc->fonts_loaded & FONT_14) - sc_load_font(scp, 0, 14, scp->sc->font_14, 0, 256); + sc_load_font(scp, 0, 14, 8, scp->sc->font_14, 0, 256); if (scp->sc->fonts_loaded & FONT_16) - sc_load_font(scp, 0, 16, scp->sc->font_16, 0, 256); + sc_load_font(scp, 0, 16, 8, scp->sc->font_16, 0, 256); } #endif /* SC_NO_FONT_LOADING */ #endif diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index 5c8b843..adba5a1 100644 --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -1285,7 +1285,7 @@ scioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td) * Don't load if the current font size is not 8x8. */ if (ISTEXTSC(sc->cur_scp) && (sc->cur_scp->font_size < 14)) - sc_load_font(sc->cur_scp, 0, 8, sc->font_8, 0, 256); + sc_load_font(sc->cur_scp, 0, 8, 8, sc->font_8, 0, 256); return 0; case GIO_FONT8x8: /* get 8x8 dot font */ @@ -1311,7 +1311,7 @@ scioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td) if (ISTEXTSC(sc->cur_scp) && (sc->cur_scp->font_size >= 14) && (sc->cur_scp->font_size < 16)) - sc_load_font(sc->cur_scp, 0, 14, sc->font_14, 0, 256); + sc_load_font(sc->cur_scp, 0, 14, 8, sc->font_14, 0, 256); return 0; case GIO_FONT8x14: /* get 8x14 dot font */ @@ -1335,7 +1335,7 @@ scioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td) * Don't load if the current font size is not 8x16. */ if (ISTEXTSC(sc->cur_scp) && (sc->cur_scp->font_size >= 16)) - sc_load_font(sc->cur_scp, 0, 16, sc->font_16, 0, 256); + sc_load_font(sc->cur_scp, 0, 16, 8, sc->font_16, 0, 256); return 0; case GIO_FONT8x16: /* get 8x16 dot font */ @@ -2752,21 +2752,21 @@ scinit(int unit, int flags) bcopy(dflt_font_16, sc->font_16, sizeof(dflt_font_16)); sc->fonts_loaded = FONT_16 | FONT_14 | FONT_8; if (scp->font_size < 14) { - sc_load_font(scp, 0, 8, sc->font_8, 0, 256); + sc_load_font(scp, 0, 8, 8, sc->font_8, 0, 256); } else if (scp->font_size >= 16) { - sc_load_font(scp, 0, 16, sc->font_16, 0, 256); + sc_load_font(scp, 0, 16, 8, sc->font_16, 0, 256); } else { - sc_load_font(scp, 0, 14, sc->font_14, 0, 256); + sc_load_font(scp, 0, 14, 8, sc->font_14, 0, 256); } #else /* !SC_DFLT_FONT */ if (scp->font_size < 14) { - sc_save_font(scp, 0, 8, sc->font_8, 0, 256); + sc_save_font(scp, 0, 8, 8, sc->font_8, 0, 256); sc->fonts_loaded = FONT_8; } else if (scp->font_size >= 16) { - sc_save_font(scp, 0, 16, sc->font_16, 0, 256); + sc_save_font(scp, 0, 16, 8, sc->font_16, 0, 256); sc->fonts_loaded = FONT_16; } else { - sc_save_font(scp, 0, 14, sc->font_14, 0, 256); + sc_save_font(scp, 0, 14, 8, sc->font_14, 0, 256); sc->fonts_loaded = FONT_14; } #endif /* SC_DFLT_FONT */ @@ -3444,13 +3444,13 @@ set_mode(scr_stat *scp) if (!(scp->status & PIXEL_MODE) && ISFONTAVAIL(scp->sc->adp->va_flags)) { if (scp->font_size < 14) { if (scp->sc->fonts_loaded & FONT_8) - sc_load_font(scp, 0, 8, scp->sc->font_8, 0, 256); + sc_load_font(scp, 0, 8, 8, scp->sc->font_8, 0, 256); } else if (scp->font_size >= 16) { if (scp->sc->fonts_loaded & FONT_16) - sc_load_font(scp, 0, 16, scp->sc->font_16, 0, 256); + sc_load_font(scp, 0, 16, 8, scp->sc->font_16, 0, 256); } else { if (scp->sc->fonts_loaded & FONT_14) - sc_load_font(scp, 0, 14, scp->sc->font_14, 0, 256); + sc_load_font(scp, 0, 14, 8, scp->sc->font_14, 0, 256); } /* * FONT KLUDGE: @@ -3481,26 +3481,28 @@ sc_set_border(scr_stat *scp, int color) #ifndef SC_NO_FONT_LOADING void -sc_load_font(scr_stat *scp, int page, int size, u_char *buf, +sc_load_font(scr_stat *scp, int page, int size, int width, u_char *buf, int base, int count) { sc_softc_t *sc; sc = scp->sc; sc->font_loading_in_progress = TRUE; - (*vidsw[sc->adapter]->load_font)(sc->adp, page, size, buf, base, count); + (*vidsw[sc->adapter]->load_font)(sc->adp, page, size, width, buf, base, + count); sc->font_loading_in_progress = FALSE; } void -sc_save_font(scr_stat *scp, int page, int size, u_char *buf, +sc_save_font(scr_stat *scp, int page, int size, int width, u_char *buf, int base, int count) { sc_softc_t *sc; sc = scp->sc; sc->font_loading_in_progress = TRUE; - (*vidsw[sc->adapter]->save_font)(sc->adp, page, size, buf, base, count); + (*vidsw[sc->adapter]->save_font)(sc->adp, page, size, width, buf, base, + count); sc->font_loading_in_progress = FALSE; } diff --git a/sys/dev/syscons/syscons.h b/sys/dev/syscons/syscons.h index 542f301..45e96ae 100644 --- a/sys/dev/syscons/syscons.h +++ b/sys/dev/syscons/syscons.h @@ -252,9 +252,11 @@ typedef struct sc_softc { #define FONT_8 2 #define FONT_14 4 #define FONT_16 8 +#define FONT_22 8 u_char *font_8; u_char *font_14; u_char *font_16; + u_char *font_22; #endif u_char cursor_char; @@ -542,10 +544,10 @@ int sc_attach_unit(int unit, int flags); int set_mode(scr_stat *scp); void sc_set_border(scr_stat *scp, int color); -void sc_load_font(scr_stat *scp, int page, int size, u_char *font, - int base, int count); -void sc_save_font(scr_stat *scp, int page, int size, u_char *font, - int base, int count); +void sc_load_font(scr_stat *scp, int page, int size, int width, + u_char *font, int base, int count); +void sc_save_font(scr_stat *scp, int page, int size, int width, + u_char *font, int base, int count); void sc_show_font(scr_stat *scp, int page); void sc_touch_scrn_saver(void); |