PERFORCE change 76986 for review
Marcel Moolenaar
marcel at FreeBSD.org
Sat May 14 14:23:16 PDT 2005
http://perforce.freebsd.org/chv.cgi?CH=76986
Change 76986 by marcel at marcel_nfs on 2005/05/14 21:23:02
Flesh-out the low-level console:
o Reject characters outside the 7-bit unsigned range.
o Process selected control characters.
o Diplay glyphs for non-control characters. Trim the
font table from the first 32 character ghyphs. Since
we only accept 7-bit characters, we can also trim the
table at the high end (not done yet).
Backspace erases.
Affected files ...
.. //depot/projects/tty/sys/dev/vtc/vtc_con.c#7 edit
.. //depot/projects/tty/sys/dev/vtc/vtc_font.c#2 edit
Differences ...
==== //depot/projects/tty/sys/dev/vtc/vtc_con.c#7 (text+ko) ====
@@ -93,21 +93,50 @@
{
static int col = 0, row = 0;
struct vtc_conout *vc = cp->cn_arg;
- int width = vc->vtc_con_width;
+ int ch, width;
u_char *glyph;
+ /* Sanity check. */
+ if (c <= 0 || c >= 0x7f)
+ return;
+
+ width = vc->vtc_con_width;
switch (c) {
- case 0x0a:
+ case 8: /* BS */
+ if (col > 0)
+ col--;
+ ch = ' ';
+ break;
+ case 9: /* HT */
+ col = (col + 7) & 7;
+ if (col >= 80)
+ col = 79;
+ ch = 0;
+ break;
+ case 10: /* LF */
+ case 11: /* VT (processed as LF) */
+ case 12: /* FF (processed as LF) */
col = 0;
row++;
+ ch = 0;
+ break;
+ case 13: /* CR */
+ col = 0;
+ ch = 0;
break;
default:
- glyph = vtc_font_8x16 + (c * 16);
+ ch = (c >= ' ') ? c : 0;
+ break;
+ }
+
+ if (ch != 0) {
+ glyph = vtc_font_8x16 + ((ch - ' ') * 16);
vc->vtc_con_bitblt(vc, BITBLT_H1TOFB, (uintptr_t)glyph,
width * row * 16 + col * 8, 8, 16, 0, 7);
- col++;
- break;
+ if (c != 8)
+ col++;
}
+
if (col >= 80) {
col = 0;
row++;
==== //depot/projects/tty/sys/dev/vtc/vtc_font.c#2 (text+ko) ====
@@ -27,31 +27,14 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-unsigned char vtc_font_8x16[16*256] = {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126,129,165,129,129,189,153,129,129,
-126,0,0,0,0,0,0,126,255,219,255,255,195,231,255,255,126,0,0,0,0,0,0,0,0,
-108,254,254,254,254,124,56,16,0,0,0,0,0,0,0,0,16,56,124,254,124,56,16,0,
-0,0,0,0,0,0,0,24,60,60,231,231,231,24,24,60,0,0,0,0,0,0,0,24,60,126,255,
-255,126,24,24,60,0,0,0,0,0,0,0,0,0,0,24,60,60,24,0,0,0,0,0,0,255,255,255,
-255,255,255,231,195,195,231,255,255,255,255,255,255,0,0,0,0,0,60,102,66,
-66,102,60,0,0,0,0,0,255,255,255,255,255,195,153,189,189,153,195,255,255,
-255,255,255,0,0,30,14,26,50,120,204,204,204,204,120,0,0,0,0,0,0,60,102,
-102,102,102,60,24,126,24,24,0,0,0,0,0,0,63,51,63,48,48,48,48,112,240,224,
-0,0,0,0,0,0,127,99,127,99,99,99,99,103,231,230,192,0,0,0,0,0,0,24,24,219,
-60,231,60,219,24,24,0,0,0,0,0,128,192,224,240,248,254,248,240,224,192,128,
-0,0,0,0,0,2,6,14,30,62,254,62,30,14,6,2,0,0,0,0,0,0,24,60,126,24,24,24,
-126,60,24,0,0,0,0,0,0,0,102,102,102,102,102,102,102,0,102,102,0,0,0,0,0,
-0,127,219,219,219,123,27,27,27,27,27,0,0,0,0,0,124,198,96,56,108,198,198,
-108,56,12,198,124,0,0,0,0,0,0,0,0,0,0,0,254,254,254,254,0,0,0,0,0,0,24,
-60,126,24,24,24,126,60,24,126,0,0,0,0,0,0,24,60,126,24,24,24,24,24,24,24,
-0,0,0,0,0,0,24,24,24,24,24,24,24,126,60,24,0,0,0,0,0,0,0,0,0,24,12,254,
-12,24,0,0,0,0,0,0,0,0,0,0,0,48,96,254,96,48,0,0,0,0,0,0,0,0,0,0,0,0,192,
-192,192,254,0,0,0,0,0,0,0,0,0,0,0,40,108,254,108,40,0,0,0,0,0,0,0,0,0,0,
-16,56,56,124,124,254,254,0,0,0,0,0,0,0,0,0,254,254,124,124,56,56,16,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,60,60,60,24,24,24,0,24,24,
-0,0,0,0,0,102,102,102,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,108,254,108,108,
-108,254,108,108,0,0,0,0,24,24,124,198,194,192,124,6,6,134,198,124,24,24,
-0,0,0,0,0,0,194,198,12,24,48,96,198,134,0,0,0,0,0,0,56,108,108,56,118,220,
+unsigned char vtc_font_8x16[16 * (256 - 32)] = {
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,24,60,60,60,24,24,24,0,24,24,0,0,0,0,
+0,102,102,102,36,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,108,108,254,108,108,108,254,108,108,0,0,0,0,
+24,24,124,198,194,192,124,6,6,134,198,124,24,24,0,0,
+
+0,0,0,0,194,198,12,24,48,96,198,134,0,0,0,0,0,0,56,108,108,56,118,220,
204,204,204,118,0,0,0,0,0,48,48,48,96,0,0,0,0,0,0,0,0,0,0,0,0,0,12,24,48,
48,48,48,48,48,24,12,0,0,0,0,0,0,48,24,12,12,12,12,12,12,24,48,0,0,0,0,
0,0,0,0,0,102,60,255,60,102,0,0,0,0,0,0,0,0,0,0,0,24,24,126,24,24,0,0,0,
More information about the p4-projects
mailing list