From 3f10af182dd0d60f3761ec19639a066b7817bea5 Mon Sep 17 00:00:00 2001 From: drochner Date: Fri, 26 Jun 1998 21:05:20 +0000 Subject: [PATCH] do the charcter mapping in a separate function --- sys/dev/ic/pcdisplay_subr.c | 42 +++++++++++++------------------------ sys/dev/ic/pcdisplayvar.h | 6 +++++- sys/dev/ic/vga.c | 3 ++- 3 files changed, 21 insertions(+), 30 deletions(-) diff --git a/sys/dev/ic/pcdisplay_subr.c b/sys/dev/ic/pcdisplay_subr.c index d1e9ef5c41a1..4b028b57095d 100644 --- a/sys/dev/ic/pcdisplay_subr.c +++ b/sys/dev/ic/pcdisplay_subr.c @@ -1,4 +1,4 @@ -/* $NetBSD: pcdisplay_subr.c,v 1.4 1998/06/20 21:55:05 drochner Exp $ */ +/* $NetBSD: pcdisplay_subr.c,v 1.5 1998/06/26 21:05:20 drochner Exp $ */ /* * Copyright (c) 1995, 1996 Carnegie-Mellon University. @@ -68,25 +68,18 @@ pcdisplay_cursor(id, on, row, col) } } -static u_char iso2ibm437[] = +#if 0 +unsigned int +pcdisplay_mapchar_simple(id, uni) + void *id; + int uni; { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0xff, 0xad, 0x9b, 0x9c, 0, 0x9d, 0, 0x40, - 0x6f, 0x63, 0x61, 0xae, 0, 0, 0, 0, - 0xf8, 0xf1, 0xfd, 0x33, 0, 0xe6, 0, 0xfa, - 0, 0x31, 0x6f, 0xaf, 0xac, 0xab, 0, 0xa8, - 0x41, 0x41, 0x41, 0x41, 0x8e, 0x8f, 0x92, 0x80, - 0x45, 0x90, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, - 0x81, 0xa5, 0x4f, 0x4f, 0x4f, 0x4f, 0x99, 0x4f, - 0x4f, 0x55, 0x55, 0x55, 0x9a, 0x59, 0, 0xe1, - 0x85, 0xa0, 0x83, 0x61, 0x84, 0x86, 0x91, 0x87, - 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, - 0, 0xa4, 0x95, 0xa2, 0x93, 0x6f, 0x94, 0x6f, - 0x6f, 0x97, 0xa3, 0x96, 0x81, 0x98, 0, 0 -}; + if (uni < 128) + return (uni); + + return (1); /* XXX ??? smiley */ +} +#endif void pcdisplay_putchar(id, row, col, c, attr) @@ -98,23 +91,16 @@ pcdisplay_putchar(id, row, col, c, attr) struct pcdisplayscreen *scr = id; bus_space_tag_t memt = scr->hdl->ph_memt; bus_space_handle_t memh = scr->hdl->ph_memh; - u_char dc; int off; - if (c < 128) - dc = c; - else if (c < 256) - dc = iso2ibm437[c - 128]; - else - return; off = row * scr->type->ncols + col; if (scr->active) bus_space_write_2(memt, memh, off * 2, - dc | (attr << 8)); + c | (attr << 8)); else - scr->mem[off] = dc | (attr << 8); + scr->mem[off] = c | (attr << 8); } void diff --git a/sys/dev/ic/pcdisplayvar.h b/sys/dev/ic/pcdisplayvar.h index 2804053178bc..ed1fb766f236 100644 --- a/sys/dev/ic/pcdisplayvar.h +++ b/sys/dev/ic/pcdisplayvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: pcdisplayvar.h,v 1.2 1998/06/20 21:55:06 drochner Exp $ */ +/* $NetBSD: pcdisplayvar.h,v 1.3 1998/06/26 21:05:20 drochner Exp $ */ /* * Copyright (c) 1998 @@ -77,6 +77,10 @@ static inline void _pcdisplay_6845_write(ph, reg, val) _pcdisplay_6845_write(ph, offsetof(struct reg_mc6845, reg), val) void pcdisplay_cursor __P((void *, int, int, int)); +#if 0 +unsigned int pcdisplay_mapchar_simple __P((void *, int)); +#endif +unsigned int pcdisplay_mapchar __P((void *, int)); void pcdisplay_putchar __P((void *, int, int, u_int, long)); void pcdisplay_copycols __P((void *, int, int, int,int)); void pcdisplay_erasecols __P((void *, int, int, int, long)); diff --git a/sys/dev/ic/vga.c b/sys/dev/ic/vga.c index f2976c4226bd..9e96e0c63a01 100644 --- a/sys/dev/ic/vga.c +++ b/sys/dev/ic/vga.c @@ -1,4 +1,4 @@ -/* $NetBSD: vga.c,v 1.6 1998/06/20 21:55:06 drochner Exp $ */ +/* $NetBSD: vga.c,v 1.7 1998/06/26 21:05:20 drochner Exp $ */ /* * Copyright (c) 1995, 1996 Carnegie-Mellon University. @@ -87,6 +87,7 @@ static int vga_alloc_attr __P((void *, int, int, int, long *)); const struct wsdisplay_emulops vga_emulops = { pcdisplay_cursor, + pcdisplay_mapchar, pcdisplay_putchar, pcdisplay_copycols, pcdisplay_erasecols,