add hpcmips/hpcsh common device directory

put bicons. (builtin console driver that don't require actual device driver)
This commit is contained in:
uch 2001-02-09 19:43:23 +00:00
parent c36eeffed0
commit 9f7e4a2f04
6 changed files with 1241 additions and 0 deletions

578
sys/dev/hpc/bicons.c Normal file
View File

@ -0,0 +1,578 @@
/* $NetBSD: bicons.c,v 1.1 2001/02/09 19:43:23 uch Exp $ */
/*-
* Copyright (c) 1999-2001
* Shin Takemura and PocketBSD Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the PocketBSD project
* and its contributors.
* 4. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
#define HALF_FONT
#include <sys/param.h>
#include <sys/device.h>
#include <sys/systm.h>
#include <sys/conf.h>
#include <dev/cons.h>
#include <machine/bootinfo.h>
#include <machine/bus.h>
#include <machine/platid.h>
#include <machine/stdarg.h>
#include <dev/hpc/biconsvar.h>
#include <dev/hpc/bicons.h>
extern u_int8_t font_clR8x8_data[];
extern u_int8_t font_clB8x8_data[];
#define FONT_HEIGHT 8
#define FONT_WIDTH 1
static void put_oxel_D2_M2L_3(u_int8_t *, u_int8_t, u_int8_t);
static void put_oxel_D2_M2L_3x2(u_int8_t *, u_int8_t, u_int8_t);
static void put_oxel_D2_M2L_0(u_int8_t *, u_int8_t, u_int8_t);
static void put_oxel_D2_M2L_0x2(u_int8_t *, u_int8_t, u_int8_t);
static void put_oxel_D4_M2L_F(u_int8_t *, u_int8_t, u_int8_t);
static void put_oxel_D4_M2L_Fx2(u_int8_t *, u_int8_t, u_int8_t);
static void put_oxel_D4_M2L_0(u_int8_t *, u_int8_t, u_int8_t);
static void put_oxel_D4_M2L_0x2(u_int8_t *, u_int8_t, u_int8_t);
static void put_oxel_D8_00(u_int8_t *, u_int8_t, u_int8_t);
static void put_oxel_D8_FF(u_int8_t *, u_int8_t, u_int8_t);
static void put_oxel_D16_0000(u_int8_t *, u_int8_t, u_int8_t);
static void put_oxel_D16_FFFF(u_int8_t *, u_int8_t, u_int8_t);
struct {
int type;
char *name;
void (*func)(u_int8_t *, u_int8_t, u_int8_t);
u_int8_t clear_byte;
int16_t oxel_bytes;
} fb_table[] = {
{ BIFB_D2_M2L_3, BIFBN_D2_M2L_3,
put_oxel_D2_M2L_3, 0, 2 },
{ BIFB_D2_M2L_3x2, BIFBN_D2_M2L_3x2,
put_oxel_D2_M2L_3x2, 0, 1 },
{ BIFB_D2_M2L_0, BIFBN_D2_M2L_0,
put_oxel_D2_M2L_0, 0xff, 2 },
{ BIFB_D2_M2L_0x2, BIFBN_D2_M2L_0x2,
put_oxel_D2_M2L_0x2, 0xff, 1 },
{ BIFB_D4_M2L_F, BIFBN_D4_M2L_F,
put_oxel_D4_M2L_F, 0x00, 4 },
{ BIFB_D4_M2L_Fx2, BIFBN_D4_M2L_Fx2,
put_oxel_D4_M2L_Fx2, 0x00, 2 },
{ BIFB_D4_M2L_0, BIFBN_D4_M2L_0,
put_oxel_D4_M2L_0, 0xff, 4 },
{ BIFB_D4_M2L_0x2, BIFBN_D4_M2L_0x2,
put_oxel_D4_M2L_0x2, 0xff, 2 },
{ BIFB_D8_00, BIFBN_D8_00,
put_oxel_D8_00, 0xff, 8 },
{ BIFB_D8_FF, BIFBN_D8_FF,
put_oxel_D8_FF, 0x00, 8 },
{ BIFB_D16_0000, BIFBN_D16_0000,
put_oxel_D16_0000, 0xff, 16 },
{ BIFB_D16_FFFF, BIFBN_D16_FFFF,
put_oxel_D16_FFFF, 0x00, 16 },
};
#define FB_TABLE_SIZE (sizeof(fb_table)/sizeof(*fb_table))
static u_int8_t *fb_vram;
static int16_t fb_line_bytes;
static u_int8_t fb_clear_byte;
int16_t bicons_ypixel;
int16_t bicons_xpixel;
#ifdef HALF_FONT
static int16_t fb_oxel_bytes = 1;
int16_t bicons_width = 80;
void (*fb_put_oxel)(u_int8_t *, u_int8_t, u_int8_t) = put_oxel_D2_M2L_3x2;
#else /* HALF_FONT */
static int16_t fb_oxel_bytes = 2;
int16_t bicons_width = 40;
void (*fb_put_oxel)(u_int8_t *, u_int8_t, u_int8_t) = put_oxel_D2_M2L_3;
#endif /* HALF_FONT */
int16_t bicons_height;
static int16_t curs_x;
static int16_t curs_y;
cdev_decl(biconsdev);
static int bicons_priority;
void biconscninit(struct consdev *);
void biconscnprobe(struct consdev *);
void biconscnputc(dev_t, int);
int biconscngetc(dev_t); /* harmless place holder */
static void draw_char(int, int, int);
static void clear(int, int);
static void scroll(int, int, int);
static void bicons_puts(char *);
static void bicons_printf(const char *, ...) __attribute__((__unused__));
void
biconscninit(struct consdev *cndev)
{
int fb_index = -1;
for (fb_index = 0; fb_index < FB_TABLE_SIZE; fb_index++)
if (fb_table[fb_index].type == bootinfo->fb_type)
break;
if (FB_TABLE_SIZE <= fb_index || fb_index == -1) {
/*
* Unknown frame buffer type, but what can I do ?
*/
fb_index = 0;
}
fb_vram = (u_int8_t *)bootinfo->fb_addr;
fb_line_bytes = bootinfo->fb_line_bytes;
bicons_xpixel = bootinfo->fb_width;
bicons_ypixel = bootinfo->fb_height;
fb_put_oxel = fb_table[fb_index].func;
fb_clear_byte = fb_table[fb_index].clear_byte;
fb_oxel_bytes = fb_table[fb_index].oxel_bytes;
bicons_width = bicons_xpixel / (8 * FONT_WIDTH);
bicons_height = bicons_ypixel / FONT_HEIGHT;
clear(0, bicons_ypixel);
curs_x = 0;
curs_y = 0;
bicons_puts("builtin console type = ");
bicons_puts(fb_table[fb_index].name);
bicons_puts("\n");
}
void
biconscnprobe(struct consdev *cndev)
{
int maj;
/* locate the major number */
for (maj = 0; maj < nchrdev; maj++)
if (cdevsw[maj].d_open == biconsdevopen)
break;
cndev->cn_dev = makedev(maj, 0);
cndev->cn_pri = bicons_priority;
}
void
bicons_set_priority(int priority)
{
bicons_priority = priority;
}
int
biconscngetc(dev_t dev)
{
printf("no input method. reboot me.\n");
while (1)
;
/* NOTREACHED */
}
void
biconscnputc(dev_t dev, int c)
{
int line_feed = 0;
switch (c) {
case 0x08: /* back space */
if (--curs_x < 0) {
curs_x = 0;
}
/* erase character ar cursor position */
draw_char(curs_x, curs_y, ' ');
break;
case '\r':
curs_x = 0;
break;
case '\n':
curs_x = 0;
line_feed = 1;
break;
default:
draw_char(curs_x, curs_y, c);
if (bicons_width <= ++curs_x) {
curs_x = 0;
line_feed = 1;
}
}
if (line_feed) {
if (bicons_height <= ++curs_y) {
/* scroll up */
scroll(FONT_HEIGHT, (bicons_height - 1) * FONT_HEIGHT,
- FONT_HEIGHT);
clear((bicons_height - 1) * FONT_HEIGHT, FONT_HEIGHT);
curs_y--;
}
}
}
void
bicons_puts(char *s)
{
while (*s)
biconscnputc(NULL, *s++);
}
void
bicons_putn(const char *s, int n)
{
while (0 < n--)
biconscnputc(NULL, *s++);
}
void
#ifdef __STDC__
bicons_printf(const char *fmt, ...)
#else
bicons_printf(fmt, va_alist)
char *fmt;
va_dcl
#endif
{
va_list ap;
char buf[0x100];
va_start(ap, fmt);
vsnprintf(buf, sizeof(buf), fmt, ap);
va_end(ap);
bicons_puts(buf);
}
static void
draw_char(int x, int y, int c)
{
int i;
u_int8_t *p;
if (!fb_vram)
return;
p = &fb_vram[(y * FONT_HEIGHT * fb_line_bytes) +
x * FONT_WIDTH * fb_oxel_bytes];
for (i = 0; i < FONT_HEIGHT; i++) {
(*fb_put_oxel)(p, font_clR8x8_data
[FONT_WIDTH * (FONT_HEIGHT * c + i)], 0xff);
p += (fb_line_bytes);
}
}
static void
clear(int y, int height)
{
u_int8_t *p;
if (!fb_vram)
return;
p = &fb_vram[y * fb_line_bytes];
while (0 < height--) {
memset(p, fb_clear_byte,
bicons_width * fb_oxel_bytes * FONT_WIDTH);
p += fb_line_bytes;
}
}
static void
scroll(int y, int height, int d)
{
u_int8_t *from, *to;
if (!fb_vram)
return;
if (d < 0) {
from = &fb_vram[y * fb_line_bytes];
to = from + d * fb_line_bytes;
while (0 < height--) {
memcpy(to, from, bicons_width * fb_oxel_bytes);
from += fb_line_bytes;
to += fb_line_bytes;
}
} else {
from = &fb_vram[(y + height - 1) * fb_line_bytes];
to = from + d * fb_line_bytes;
while (0 < height--) {
memcpy(to, from, bicons_xpixel * fb_oxel_bytes / 8);
from -= fb_line_bytes;
to -= fb_line_bytes;
}
}
}
/*=============================================================================
*
* D2_M2L_3
*
*/
static void
put_oxel_D2_M2L_3(u_int8_t *xaddr, u_int8_t data, u_int8_t mask)
{
#if 1
u_int16_t *addr = (u_int16_t *)xaddr;
static u_int16_t map0[] = {
0x0000, 0x0300, 0x0c00, 0x0f00, 0x3000, 0x3300, 0x3c00, 0x3f00,
0xc000, 0xc300, 0xcc00, 0xcf00, 0xf000, 0xf300, 0xfc00, 0xff00,
};
static u_int16_t map1[] = {
0x0000, 0x0003, 0x000c, 0x000f, 0x0030, 0x0033, 0x003c, 0x003f,
0x00c0, 0x00c3, 0x00cc, 0x00cf, 0x00f0, 0x00f3, 0x00fc, 0x00ff,
};
*addr = (map1[data >> 4] | map0[data & 0x0f]);
#else
static u_int8_t map[] = {
0x00, 0x03, 0x0c, 0x0f, 0x30, 0x33, 0x3c, 0x3f,
0xc0, 0xc3, 0xcc, 0xcf, 0xf0, 0xf3, 0xfc, 0xff,
};
u_int8_t *addr = xaddr;
*addr++ = (map[(data >> 4) & 0x0f] & map[(mask >> 4) & 0x0f]) |
(*addr & ~map[(mask >> 4) & 0x0f]);
*addr = (map[(data >> 0) & 0x0f] & map[(mask >> 0) & 0x0f]) |
(*addr & ~map[(mask >> 0) & 0x0f]);
#endif
}
/*=============================================================================
*
* D2_M2L_3x2
*
*/
static void
put_oxel_D2_M2L_3x2(u_int8_t *xaddr, u_int8_t data, u_int8_t mask)
{
register u_int8_t odd = (data & 0xaa);
register u_int8_t even = (data & 0x55);
*xaddr = (odd | (even << 1)) | ((odd >> 1) & even);
}
/*=============================================================================
*
* D2_M2L_0
*
*/
static void
put_oxel_D2_M2L_0(u_int8_t *xaddr, u_int8_t data, u_int8_t mask)
{
#if 1
u_int16_t *addr = (u_int16_t *)xaddr;
static u_int16_t map0[] = {
0xff00, 0xfc00, 0xf300, 0xf000, 0xcf00, 0xcc00, 0xc300, 0xc000,
0x3f00, 0x3c00, 0x3300, 0x3000, 0x0f00, 0x0c00, 0x0300, 0x0000,
};
static u_int16_t map1[] = {
0x00ff, 0x00fc, 0x00f3, 0x00f0, 0x00cf, 0x00cc, 0x00c3, 0x00c0,
0x003f, 0x003c, 0x0033, 0x0030, 0x000f, 0x000c, 0x0003, 0x0000,
};
*addr = (map1[data >> 4] | map0[data & 0x0f]);
#else
static u_int8_t map[] = {
0x00, 0x03, 0x0c, 0x0f, 0x30, 0x33, 0x3c, 0x3f,
0xc0, 0xc3, 0xcc, 0xcf, 0xf0, 0xf3, 0xfc, 0xff,
};
u_int8_t *addr = xaddr;
*addr++ = (~(map[(data >> 4) & 0x0f] & map[(mask >> 4) & 0x0f])) |
(*addr & ~map[(mask >> 4) & 0x0f]);
*addr = (~(map[(data >> 0) & 0x0f] & map[(mask >> 0) & 0x0f])) |
(*addr & ~map[(mask >> 0) & 0x0f]);
#endif
}
/*=============================================================================
*
* D2_M2L_0x2
*
*/
static void
put_oxel_D2_M2L_0x2(u_int8_t *xaddr, u_int8_t data, u_int8_t mask)
{
register u_int8_t odd = (data & 0xaa);
register u_int8_t even = (data & 0x55);
*xaddr = ~((odd | (even << 1)) | ((odd >> 1) & even));
}
/*=============================================================================
*
* D4_M2L_F
*
*/
static void
put_oxel_D4_M2L_F(u_int8_t *xaddr, u_int8_t data, u_int8_t mask)
{
u_int32_t *addr = (u_int32_t *)xaddr;
static u_int32_t map[] = {
0x0000, 0x0f00, 0xf000, 0xff00, 0x000f, 0x0f0f, 0xf00f, 0xff0f,
0x00f0, 0x0ff0, 0xf0f0, 0xfff0, 0x00ff, 0x0fff, 0xf0ff, 0xffff,
};
*addr = (map[data >> 4] | (map[data & 0x0f] << 16));
}
/*=============================================================================
*
* D4_M2L_Fx2
*
*/
static void
put_oxel_D4_M2L_Fx2(u_int8_t *xaddr, u_int8_t data, u_int8_t mask)
{
u_int16_t *addr = (u_int16_t *)xaddr;
static u_int16_t map[] = {
0x00, 0x08, 0x08, 0x0f, 0x80, 0x88, 0x88, 0x8f,
0x80, 0x88, 0x88, 0x8f, 0xf0, 0xf8, 0xf8, 0xff,
};
*addr = (map[data >> 4] | (map[data & 0x0f] << 8));
}
/*=============================================================================
*
* D4_M2L_0
*
*/
static void
put_oxel_D4_M2L_0(u_int8_t *xaddr, u_int8_t data, u_int8_t mask)
{
u_int32_t *addr = (u_int32_t *)xaddr;
static u_int32_t map[] = {
0xffff, 0xf0ff, 0x0fff, 0x00ff, 0xfff0, 0xf0f0, 0x0ff0, 0x00f0,
0xff0f, 0xf00f, 0x0f0f, 0x000f, 0xff00, 0xf000, 0x0f00, 0x0000,
};
*addr = (map[data >> 4] | (map[data & 0x0f] << 16));
}
/*=============================================================================
*
* D4_M2L_0x2
*
*/
static void
put_oxel_D4_M2L_0x2(u_int8_t *xaddr, u_int8_t data, u_int8_t mask)
{
u_int16_t *addr = (u_int16_t *)xaddr;
static u_int16_t map[] = {
0xff, 0xf8, 0xf8, 0xf0, 0x8f, 0x88, 0x88, 0x80,
0x8f, 0x88, 0x88, 0x80, 0x0f, 0x08, 0x08, 0x00,
};
*addr = (map[data >> 4] | (map[data & 0x0f] << 8));
}
/*=============================================================================
*
* D8_00
*
*/
static void
put_oxel_D8_00(u_int8_t *xaddr, u_int8_t data, u_int8_t mask)
{
int i;
u_int8_t *addr = xaddr;
for (i = 0; i < 8; i++) {
if (mask & 0x80) {
*addr = (data & 0x80) ? 0x00 : 0xFF;
}
addr++;
data <<= 1;
mask <<= 1;
}
}
/*=============================================================================
*
* D8_FF
*
*/
static void
put_oxel_D8_FF(u_int8_t *xaddr, u_int8_t data, u_int8_t mask)
{
int i;
u_int8_t *addr = xaddr;
for (i = 0; i < 8; i++) {
if (mask & 0x80) {
*addr = (data & 0x80) ? 0xFF : 0x00;
}
addr++;
data <<= 1;
mask <<= 1;
}
}
/*=============================================================================
*
* D16_0000
*
*/
static void
put_oxel_D16_0000(u_int8_t *xaddr, u_int8_t data, u_int8_t mask)
{
int i;
u_int16_t *addr = (u_int16_t *)xaddr;
for (i = 0; i < 8; i++) {
if (mask & 0x80) {
*addr = (data & 0x80) ? 0x0000 : 0xFFFF;
}
addr++;
data <<= 1;
mask <<= 1;
}
}
/*=============================================================================
*
* D16_FFFF
*
*/
static void
put_oxel_D16_FFFF(u_int8_t *xaddr, u_int8_t data, u_int8_t mask)
{
int i;
u_int16_t *addr = (u_int16_t *)xaddr;
for (i = 0; i < 8; i++) {
if (mask & 0x80) {
*addr = (data & 0x80) ? 0xFFFF : 0x0000;
}
addr++;
data <<= 1;
mask <<= 1;
}
}

38
sys/dev/hpc/bicons.h Normal file
View File

@ -0,0 +1,38 @@
/* $NetBSD: bicons.h,v 1.1 2001/02/09 19:43:23 uch Exp $ */
/*-
* Copyright (c) 1999-2001
* Shin Takemura and PocketBSD Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the PocketBSD project
* and its contributors.
* 4. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
void bicons_set_priority(int);
void bicons_putn(const char *, int);

242
sys/dev/hpc/biconsdev.c Normal file
View File

@ -0,0 +1,242 @@
/* $NetBSD: biconsdev.c,v 1.1 2001/02/09 19:43:23 uch Exp $ */
/*-
* Copyright (c) 1999-2001
* Shin Takemura and PocketBSD Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the PocketBSD project
* and its contributors.
* 4. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
/*
* Copyright (c) 1995
* The Regents of the University of California. All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* Ted Lemon.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
#include "biconsdev.h"
#if NBICONSDEV > 0
#include <sys/param.h>
#include <sys/proc.h>
#include <sys/systm.h>
#include <sys/buf.h>
#include <sys/ioctl.h>
#include <sys/tty.h>
#include <sys/conf.h>
#include <dev/cons.h>
#include <dev/hpc/bicons.h>
#include <dev/hpc/biconsvar.h>
struct tty biconsdev_tty[NBICONSDEV];
void biconsdevattach(int);
static void biconsdev_output(struct tty *);
cdev_decl(biconsdev);
void
biconsdevattach(int n)
{
struct tty *tp = &biconsdev_tty[0];
int maj;
/* locate the major number */
for (maj = 0; maj < nchrdev; maj++)
if (cdevsw[maj].d_open == biconsdevopen)
break;
/* Set up the tty queues now... */
clalloc(&tp->t_rawq, 1024, 1);
clalloc(&tp->t_canq, 1024, 1);
/* output queue doesn't need quoting */
clalloc(&tp->t_outq, 1024, 0);
/* Set default line discipline. */
tp->t_linesw = linesw[0];
tp->t_dev = makedev(maj, 0);
tp->t_ispeed = tp->t_ospeed = TTYDEF_SPEED;
tp->t_param = (int (*)(struct tty *, struct termios *))nullop;
tp->t_winsize.ws_row = bicons_height;
tp->t_winsize.ws_col = bicons_width;
tp->t_winsize.ws_xpixel = bicons_xpixel;
tp->t_winsize.ws_ypixel = bicons_ypixel;
tp->t_oproc = biconsdev_output;
}
static void
biconsdev_output(struct tty *tp)
{
int s, n;
char buf[OBUFSIZ];
s = spltty();
if (tp->t_state & (TS_TIMEOUT | TS_BUSY | TS_TTSTOP)) {
splx(s);
return;
}
tp->t_state |= TS_BUSY;
splx(s);
n = q_to_b(&tp->t_outq, buf, sizeof(buf));
bicons_putn(buf, n);
s = spltty();
tp->t_state &= ~TS_BUSY;
/* Come back if there's more to do */
if (tp->t_outq.c_cc) {
tp->t_state |= TS_TIMEOUT;
callout_reset(&tp->t_rstrt_ch, 1, ttrstrt, tp);
}
if (tp->t_outq.c_cc <= tp->t_lowat) {
if (tp->t_state&TS_ASLEEP) {
tp->t_state &= ~TS_ASLEEP;
wakeup((caddr_t)&tp->t_outq);
}
selwakeup(&tp->t_wsel);
}
splx(s);
}
int
biconsdevopen(dev_t dev, int flag, int mode, struct proc *p)
{
struct tty *tp = &biconsdev_tty[0];
int status;
if ((tp->t_state & TS_ISOPEN) == 0) {
/*
* Leave baud rate alone!
*/
ttychars(tp);
tp->t_iflag = TTYDEF_IFLAG;
tp->t_oflag = TTYDEF_OFLAG;
tp->t_lflag = TTYDEF_LFLAG;
tp->t_cflag = TTYDEF_CFLAG;
tp->t_state = TS_ISOPEN | TS_CARR_ON;
(void)(*tp->t_param)(tp, &tp->t_termios);
ttsetwater(tp);
} else if (tp->t_state & TS_XCLUDE && p->p_ucred->cr_uid != 0)
return (EBUSY);
status = (*tp->t_linesw->l_open)(dev, tp);
return status;
}
int
biconsdevclose(dev_t dev, int flag, int mode, struct proc *p)
{
struct tty *tp = &biconsdev_tty[0];
(*tp->t_linesw->l_close)(tp, flag);
ttyclose(tp);
return (0);
}
int
biconsdevread(dev_t dev, struct uio *uio, int flag)
{
struct tty *tp = &biconsdev_tty[0];
return ((*tp->t_linesw->l_read)(tp, uio, flag));
}
int
biconsdevwrite(dev_t dev, struct uio *uio, int flag)
{
struct tty *tp = &biconsdev_tty[0];
return ((*tp->t_linesw->l_write)(tp, uio, flag));
}
struct tty *
biconsdevtty(dev_t dev)
{
struct tty *tp = &biconsdev_tty[0];
return (tp);
}
int
biconsdevioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
{
struct tty *tp = &biconsdev_tty[0];
int error;
if ((error = tp->t_linesw->l_ioctl(tp, cmd, data, flag, p)) >= 0)
return (error);
if ((error = ttioctl(tp, cmd, data, flag, p)) >= 0)
return (error);
return (ENOTTY);
}
void
biconsdevstop(struct tty *tp, int rw)
{
}
#endif /* NBICONSDEV > 0 */

42
sys/dev/hpc/biconsvar.h Normal file
View File

@ -0,0 +1,42 @@
/* $NetBSD: biconsvar.h,v 1.1 2001/02/09 19:43:23 uch Exp $ */
/*-
* Copyright (c) 1999-2001
* Shin Takemura and PocketBSD Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the PocketBSD project
* and its contributors.
* 4. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
struct consdev;
extern struct consdev builtincd;
extern int16_t bicons_ypixel;
extern int16_t bicons_xpixel;
extern int16_t bicons_width;
extern int16_t bicons_height;

334
sys/dev/hpc/bifont.c Normal file
View File

@ -0,0 +1,334 @@
/* $NetBSD: bifont.c,v 1.1 2001/02/09 19:43:23 uch Exp $ */
/*-
* Copyright (c) 1999
* Shin Takemura and PocketBSD Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the PocketBSD project
* and its contributors.
* 4. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
unsigned char font_clB8x8_data[] = {
/*
COMMENT $XConsortium: clB8x8.bdf,v 1.2 94/04/11 12:07:01 gildea Exp $
COMMENT
COMMENT Copyright 1989 Dale Schumacher, dal@syntel.mn.org
COMMENT 399 Beacon Ave.
COMMENT St. Paul, MN 55104-3527
COMMENT
COMMENT Permission to use, copy, modify, and distribute this software and
COMMENT its documentation for any purpose and without fee is hereby
COMMENT granted, provided that the above copyright notice appear in all
COMMENT copies and that both that copyright notice and this permission
COMMENT notice appear in supporting documentation, and that the name of
COMMENT Dale Schumacher not be used in advertising or publicity pertaining to
COMMENT distribution of the software without specific, written prior
COMMENT permission. Dale Schumacher makes no representations about the
COMMENT suitability of this software for any purpose. It is provided "as
COMMENT is" without express or implied warranty.
*/
/* code 00 */ 0xff,0xdb,0x00,0x00,0x00,0x81,0xc3,0xff,
/* code 01 */ 0x08,0x14,0x22,0x77,0x14,0x14,0x14,0x1c,
/* code 02 */ 0x1c,0x14,0x14,0x14,0x77,0x22,0x14,0x08,
/* code 03 */ 0x08,0x0c,0x7a,0x41,0x7a,0x0c,0x08,0x00,
/* code 04 */ 0x08,0x18,0x2f,0x41,0x2f,0x18,0x08,0x00,
/* code 05 */ 0x3e,0x5d,0x6b,0x77,0x6b,0x5d,0x3e,0x00,
/* code 06 */ 0x7f,0x7f,0x7f,0x7e,0x7d,0x7b,0x77,0x00,
/* code 07 */ 0x77,0x6b,0x5d,0x3e,0x5d,0x6b,0x77,0x00,
/* code 08 */ 0x60,0x50,0x60,0x53,0x64,0x02,0x01,0x06,
/* code 09 */ 0x50,0x50,0x70,0x57,0x52,0x02,0x02,0x02,
/* code 0a */ 0x40,0x40,0x40,0x47,0x74,0x06,0x04,0x04,
/* code 0b */ 0x50,0x50,0x50,0x27,0x22,0x02,0x02,0x02,
/* code 0c */ 0x70,0x40,0x60,0x47,0x44,0x06,0x04,0x04,
/* code 0d */ 0x30,0x40,0x40,0x46,0x35,0x06,0x05,0x05,
/* code 0e */ 0x05,0x05,0x05,0x0d,0x0d,0x19,0x79,0x71,
/* code 0f */ 0xa0,0xa0,0xa0,0xb0,0xb0,0x98,0x9e,0x8e,
/* code 10 */ 0x18,0x66,0x66,0x00,0x66,0x66,0x18,0x00,
/* code 11 */ 0x00,0x06,0x06,0x00,0x06,0x06,0x00,0x00,
/* code 12 */ 0x18,0x06,0x06,0x18,0x60,0x60,0x18,0x00,
/* code 13 */ 0x18,0x06,0x06,0x18,0x06,0x06,0x18,0x00,
/* code 14 */ 0x00,0x66,0x66,0x18,0x06,0x06,0x00,0x00,
/* code 15 */ 0x18,0x60,0x60,0x18,0x06,0x06,0x18,0x00,
/* code 16 */ 0x18,0x60,0x60,0x18,0x66,0x66,0x18,0x00,
/* code 17 */ 0x18,0x06,0x06,0x00,0x06,0x06,0x00,0x00,
/* code 18 */ 0x18,0x66,0x66,0x18,0x66,0x66,0x18,0x00,
/* code 19 */ 0x18,0x66,0x66,0x18,0x06,0x06,0x18,0x00,
/* code 1a */ 0x00,0x00,0x3e,0x03,0x7f,0x63,0x3e,0x00,
/* code 1b */ 0x70,0x40,0x70,0x43,0x74,0x04,0x04,0x03,
/* code 1c */ 0x07,0x0f,0x1f,0x18,0x18,0x10,0x1e,0x17,
/* code 1d */ 0xf0,0xf8,0xec,0x04,0x04,0x04,0x3c,0x54,
/* code 1e */ 0x11,0x0b,0x0d,0x06,0x07,0x2e,0x39,0x38,
/* code 1f */ 0x04,0x28,0xd8,0x28,0xd0,0x10,0xe0,0x00,
/* code 20 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* code 21 */ 0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x18,
/* code 22 */ 0x14,0x14,0x14,0x00,0x00,0x00,0x00,0x00,
/* code 23 */ 0x00,0x24,0x7e,0x24,0x24,0x7e,0x24,0x00,
/* code 24 */ 0x08,0x1e,0x28,0x1c,0x0a,0x3c,0x08,0x00,
/* code 25 */ 0x20,0x52,0x24,0x08,0x12,0x25,0x02,0x00,
/* code 26 */ 0x38,0x40,0x20,0x30,0x4a,0x44,0x3a,0x00,
/* code 27 */ 0x0c,0x08,0x10,0x00,0x00,0x00,0x00,0x00,
/* code 28 */ 0x0c,0x18,0x30,0x30,0x30,0x18,0x0c,0x00,
/* code 29 */ 0x18,0x0c,0x06,0x06,0x06,0x0c,0x18,0x00,
/* code 2a */ 0x08,0x08,0x6b,0x1c,0x08,0x14,0x22,0x00,
/* code 2b */ 0x08,0x08,0x08,0x7f,0x08,0x08,0x08,0x00,
/* code 2c */ 0x00,0x00,0x00,0x00,0x00,0x18,0x10,0x20,
/* code 2d */ 0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x00,
/* code 2e */ 0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,
/* code 2f */ 0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,
/* code 30 */ 0x3c,0x66,0x66,0x66,0x66,0x66,0x3c,0x00,
/* code 31 */ 0x0c,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,
/* code 32 */ 0x3c,0x66,0x06,0x0c,0x18,0x30,0x7e,0x00,
/* code 33 */ 0x3c,0x66,0x06,0x1c,0x06,0x66,0x3c,0x00,
/* code 34 */ 0x0c,0x1c,0x3c,0x6c,0x7e,0x0c,0x1e,0x00,
/* code 35 */ 0x7e,0x60,0x7c,0x06,0x06,0x66,0x3c,0x00,
/* code 36 */ 0x1c,0x30,0x60,0x7c,0x66,0x66,0x3c,0x00,
/* code 37 */ 0x7e,0x66,0x06,0x0c,0x0c,0x18,0x18,0x00,
/* code 38 */ 0x3c,0x66,0x66,0x3c,0x66,0x66,0x3c,0x00,
/* code 39 */ 0x3c,0x66,0x66,0x3e,0x06,0x0c,0x38,0x00,
/* code 3a */ 0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00,
/* code 3b */ 0x00,0x18,0x18,0x00,0x00,0x18,0x10,0x20,
/* code 3c */ 0x00,0x07,0x1c,0x70,0x1c,0x07,0x00,0x00,
/* code 3d */ 0x00,0x00,0x7f,0x00,0x00,0x7f,0x00,0x00,
/* code 3e */ 0x00,0x70,0x1c,0x07,0x1c,0x70,0x00,0x00,
/* code 3f */ 0x3c,0x66,0x06,0x0c,0x18,0x00,0x18,0x00,
/* code 40 */ 0x3e,0x41,0x5d,0x55,0x5e,0x40,0x3e,0x00,
/* code 41 */ 0x18,0x18,0x3c,0x34,0x7e,0x62,0xe3,0x00,
/* code 42 */ 0x7e,0x63,0x63,0x7e,0x63,0x63,0x7e,0x00,
/* code 43 */ 0x1e,0x33,0x60,0x60,0x60,0x33,0x1e,0x00,
/* code 44 */ 0x7c,0x66,0x63,0x63,0x63,0x66,0x7c,0x00,
/* code 45 */ 0x7f,0x60,0x60,0x7c,0x60,0x60,0x7f,0x00,
/* code 46 */ 0x7f,0x60,0x60,0x7c,0x60,0x60,0x60,0x00,
/* code 47 */ 0x1e,0x33,0x60,0x60,0x67,0x33,0x1f,0x00,
/* code 48 */ 0x63,0x63,0x63,0x7f,0x63,0x63,0x63,0x00,
/* code 49 */ 0x7e,0x18,0x18,0x18,0x18,0x18,0x7e,0x00,
/* code 4a */ 0x1e,0x06,0x06,0x06,0x66,0x66,0x3c,0x00,
/* code 4b */ 0x63,0x66,0x6c,0x78,0x6c,0x66,0x63,0x00,
/* code 4c */ 0x60,0x60,0x60,0x60,0x60,0x60,0x7e,0x00,
/* code 4d */ 0x63,0x63,0x77,0x6b,0x6b,0x63,0x63,0x00,
/* code 4e */ 0x63,0x73,0x73,0x6b,0x6b,0x67,0x63,0x00,
/* code 4f */ 0x1c,0x36,0x63,0x63,0x63,0x36,0x1c,0x00,
/* code 50 */ 0x7e,0x63,0x63,0x7e,0x60,0x60,0x60,0x00,
/* code 51 */ 0x1c,0x36,0x63,0x63,0x63,0x36,0x1c,0x06,
/* code 52 */ 0x7e,0x63,0x63,0x7e,0x6c,0x66,0x63,0x00,
/* code 53 */ 0x3e,0x63,0x60,0x3e,0x03,0x63,0x3e,0x00,
/* code 54 */ 0x7e,0x18,0x18,0x18,0x18,0x18,0x18,0x00,
/* code 55 */ 0x63,0x63,0x63,0x63,0x63,0x63,0x3e,0x00,
/* code 56 */ 0x63,0x63,0x63,0x36,0x36,0x1c,0x1c,0x00,
/* code 57 */ 0x63,0x63,0x6b,0x6b,0x6b,0x77,0x63,0x00,
/* code 58 */ 0x66,0x66,0x3c,0x18,0x3c,0x66,0x66,0x00,
/* code 59 */ 0x66,0x66,0x3c,0x18,0x18,0x18,0x18,0x00,
/* code 5a */ 0x7e,0x06,0x0c,0x18,0x30,0x60,0x7e,0x00,
/* code 5b */ 0x1e,0x18,0x18,0x18,0x18,0x18,0x1e,0x00,
/* code 5c */ 0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,
/* code 5d */ 0x3c,0x0c,0x0c,0x0c,0x0c,0x0c,0x3c,0x00,
/* code 5e */ 0x18,0x34,0x62,0x00,0x00,0x00,0x00,0x00,
/* code 5f */ 0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x00,
/* code 60 */ 0x18,0x08,0x04,0x00,0x00,0x00,0x00,0x00,
/* code 61 */ 0x00,0x00,0x3f,0x63,0x63,0x67,0x3b,0x00,
/* code 62 */ 0x60,0x60,0x7e,0x63,0x63,0x63,0x7e,0x00,
/* code 63 */ 0x00,0x00,0x3e,0x60,0x60,0x60,0x3e,0x00,
/* code 64 */ 0x03,0x03,0x3f,0x63,0x63,0x63,0x3f,0x00,
/* code 65 */ 0x00,0x00,0x3e,0x63,0x7f,0x60,0x3e,0x00,
/* code 66 */ 0x1e,0x30,0x7c,0x30,0x30,0x30,0x30,0x00,
/* code 67 */ 0x00,0x00,0x3f,0x63,0x63,0x3f,0x03,0x3e,
/* code 68 */ 0x60,0x60,0x7e,0x63,0x63,0x63,0x63,0x00,
/* code 69 */ 0x18,0x00,0x78,0x18,0x18,0x18,0x7e,0x00,
/* code 6a */ 0x06,0x00,0x1e,0x06,0x06,0x06,0x06,0x3c,
/* code 6b */ 0x60,0x60,0x66,0x6c,0x78,0x6c,0x66,0x00,
/* code 6c */ 0x38,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,
/* code 6d */ 0x00,0x00,0x76,0x6b,0x6b,0x6b,0x63,0x00,
/* code 6e */ 0x00,0x00,0x6e,0x73,0x63,0x63,0x63,0x00,
/* code 6f */ 0x00,0x00,0x3e,0x63,0x63,0x63,0x3e,0x00,
/* code 70 */ 0x00,0x00,0x7e,0x63,0x63,0x63,0x7e,0x60,
/* code 71 */ 0x00,0x00,0x3f,0x63,0x63,0x63,0x3f,0x03,
/* code 72 */ 0x00,0x00,0x6e,0x70,0x60,0x60,0x60,0x00,
/* code 73 */ 0x00,0x00,0x3e,0x60,0x3c,0x06,0x7c,0x00,
/* code 74 */ 0x18,0x18,0x7e,0x18,0x18,0x18,0x0e,0x00,
/* code 75 */ 0x00,0x00,0x63,0x63,0x63,0x67,0x3b,0x00,
/* code 76 */ 0x00,0x00,0x77,0x36,0x36,0x1c,0x1c,0x00,
/* code 77 */ 0x00,0x00,0x63,0x6b,0x6b,0x6b,0x36,0x00,
/* code 78 */ 0x00,0x00,0x66,0x3c,0x18,0x3c,0x66,0x00,
/* code 79 */ 0x00,0x00,0x66,0x66,0x66,0x3e,0x06,0x3c,
/* code 7a */ 0x00,0x00,0x7e,0x0c,0x18,0x30,0x7e,0x00,
/* code 7b */ 0x0e,0x18,0x18,0x30,0x18,0x18,0x0e,0x00,
/* code 7c */ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,
/* code 7d */ 0x38,0x0c,0x0c,0x06,0x0c,0x0c,0x38,0x00,
/* code 7e */ 0x31,0x49,0x46,0x00,0x00,0x00,0x00,0x00,
/* code 7f */ 0x00,0x18,0x18,0x34,0x34,0x62,0x7e,0x00,
};
unsigned char font_clR8x8_data[] = {
/*
COMMENT $XConsortium: clR8x8.bdf,v 1.2 94/04/11 12:08:54 gildea Exp $
COMMENT
COMMENT Copyright 1989 Dale Schumacher, dal@syntel.mn.org
COMMENT 399 Beacon Ave.
COMMENT St. Paul, MN 55104-3527
COMMENT
COMMENT Permission to use, copy, modify, and distribute this software and
COMMENT its documentation for any purpose and without fee is hereby
COMMENT granted, provided that the above copyright notice appear in all
COMMENT copies and that both that copyright notice and this permission
COMMENT notice appear in supporting documentation, and that the name of
COMMENT Dale Schumacher not be used in advertising or publicity pertaining to
COMMENT distribution of the software without specific, written prior
COMMENT permission. Dale Schumacher makes no representations about the
COMMENT suitability of this software for any purpose. It is provided "as
COMMENT is" without express or implied warranty.
*/
/* code 00 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* code 01 */ 0x08,0x14,0x22,0x77,0x14,0x14,0x14,0x1c,
/* code 02 */ 0x1c,0x14,0x14,0x14,0x77,0x22,0x14,0x08,
/* code 03 */ 0x08,0x0c,0x7a,0x41,0x7a,0x0c,0x08,0x00,
/* code 04 */ 0x08,0x18,0x2f,0x41,0x2f,0x18,0x08,0x00,
/* code 05 */ 0x3e,0x5d,0x6b,0x77,0x6b,0x5d,0x3e,0x00,
/* code 06 */ 0x7f,0x7f,0x7f,0x7e,0x7d,0x7b,0x77,0x00,
/* code 07 */ 0x77,0x6b,0x5d,0x3e,0x5d,0x6b,0x77,0x00,
/* code 08 */ 0x60,0x50,0x60,0x53,0x64,0x02,0x01,0x06,
/* code 09 */ 0x50,0x50,0x70,0x57,0x52,0x02,0x02,0x02,
/* code 0a */ 0x40,0x40,0x40,0x47,0x74,0x06,0x04,0x04,
/* code 0b */ 0x50,0x50,0x50,0x27,0x22,0x02,0x02,0x02,
/* code 0c */ 0x70,0x40,0x60,0x47,0x44,0x06,0x04,0x04,
/* code 0d */ 0x30,0x40,0x40,0x46,0x35,0x06,0x05,0x05,
/* code 0e */ 0x05,0x05,0x05,0x0d,0x0d,0x0d,0x19,0x79,
/* code 0f */ 0xa0,0xa0,0xa0,0xb0,0xb0,0xb0,0x98,0x9e,
/* code 10 */ 0x18,0x42,0x42,0x00,0x42,0x42,0x18,0x00,
/* code 11 */ 0x00,0x02,0x02,0x00,0x02,0x02,0x00,0x00,
/* code 12 */ 0x18,0x02,0x02,0x18,0x40,0x40,0x18,0x00,
/* code 13 */ 0x18,0x02,0x02,0x18,0x02,0x02,0x18,0x00,
/* code 14 */ 0x00,0x42,0x42,0x18,0x02,0x02,0x00,0x00,
/* code 15 */ 0x18,0x40,0x40,0x18,0x02,0x02,0x18,0x00,
/* code 16 */ 0x18,0x40,0x40,0x18,0x42,0x42,0x18,0x00,
/* code 17 */ 0x18,0x02,0x02,0x00,0x02,0x02,0x00,0x00,
/* code 18 */ 0x18,0x42,0x42,0x18,0x42,0x42,0x18,0x00,
/* code 19 */ 0x18,0x42,0x42,0x18,0x02,0x02,0x18,0x00,
/* code 1a */ 0x00,0x00,0x3e,0x01,0x7f,0x41,0x3e,0x00,
/* code 1b */ 0x70,0x40,0x70,0x43,0x74,0x04,0x04,0x03,
/* code 1c */ 0x07,0x0f,0x1f,0x18,0x18,0x10,0x1e,0x17,
/* code 1d */ 0xf0,0xf8,0xec,0x04,0x04,0x04,0x3c,0x54,
/* code 1e */ 0x11,0x0b,0x0d,0x06,0x07,0x2e,0x39,0x38,
/* code 1f */ 0x04,0x28,0xd8,0x28,0xd0,0x10,0xe0,0x00,
/* code 20 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* code 21 */ 0x08,0x08,0x08,0x08,0x08,0x00,0x08,0x00,
/* code 22 */ 0x14,0x14,0x14,0x00,0x00,0x00,0x00,0x00,
/* code 23 */ 0x14,0x14,0x3e,0x14,0x3e,0x14,0x14,0x00,
/* code 24 */ 0x08,0x1e,0x28,0x1c,0x0a,0x3c,0x08,0x00,
/* code 25 */ 0x22,0x54,0x24,0x08,0x12,0x15,0x22,0x00,
/* code 26 */ 0x38,0x40,0x20,0x30,0x4a,0x44,0x3a,0x00,
/* code 27 */ 0x0c,0x08,0x10,0x00,0x00,0x00,0x00,0x00,
/* code 28 */ 0x04,0x08,0x10,0x10,0x10,0x08,0x04,0x00,
/* code 29 */ 0x10,0x08,0x04,0x04,0x04,0x08,0x10,0x00,
/* code 2a */ 0x08,0x08,0x6b,0x1c,0x08,0x14,0x22,0x00,
/* code 2b */ 0x08,0x08,0x08,0x7f,0x08,0x08,0x08,0x00,
/* code 2c */ 0x00,0x00,0x00,0x00,0x00,0x18,0x10,0x20,
/* code 2d */ 0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x00,
/* code 2e */ 0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,
/* code 2f */ 0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,
/* code 30 */ 0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,
/* code 31 */ 0x08,0x18,0x08,0x08,0x08,0x08,0x08,0x00,
/* code 32 */ 0x3c,0x42,0x04,0x08,0x10,0x20,0x7e,0x00,
/* code 33 */ 0x3c,0x42,0x02,0x1c,0x02,0x42,0x3c,0x00,
/* code 34 */ 0x04,0x0c,0x14,0x24,0x7e,0x04,0x0e,0x00,
/* code 35 */ 0x7e,0x40,0x40,0x7c,0x02,0x02,0x7c,0x00,
/* code 36 */ 0x1c,0x20,0x40,0x7c,0x42,0x42,0x3c,0x00,
/* code 37 */ 0x7e,0x02,0x04,0x04,0x08,0x08,0x10,0x00,
/* code 38 */ 0x3c,0x42,0x42,0x3c,0x42,0x42,0x3c,0x00,
/* code 39 */ 0x3c,0x42,0x42,0x3e,0x02,0x04,0x38,0x00,
/* code 3a */ 0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00,
/* code 3b */ 0x00,0x18,0x18,0x00,0x00,0x18,0x10,0x20,
/* code 3c */ 0x00,0x06,0x18,0x60,0x18,0x06,0x00,0x00,
/* code 3d */ 0x00,0x00,0x7f,0x00,0x00,0x7f,0x00,0x00,
/* code 3e */ 0x00,0x60,0x18,0x06,0x18,0x60,0x00,0x00,
/* code 3f */ 0x1c,0x22,0x02,0x04,0x08,0x00,0x08,0x00,
/* code 40 */ 0x1c,0x22,0x49,0x55,0x4a,0x20,0x1c,0x00,
/* code 41 */ 0x08,0x08,0x1c,0x14,0x3e,0x22,0x63,0x00,
/* code 42 */ 0x7e,0x41,0x41,0x7e,0x41,0x41,0x7e,0x00,
/* code 43 */ 0x1e,0x21,0x40,0x40,0x40,0x21,0x1e,0x00,
/* code 44 */ 0x7c,0x42,0x41,0x41,0x41,0x42,0x7c,0x00,
/* code 45 */ 0x7f,0x40,0x40,0x7c,0x40,0x40,0x7f,0x00,
/* code 46 */ 0x7f,0x40,0x40,0x7c,0x40,0x40,0x40,0x00,
/* code 47 */ 0x1e,0x21,0x40,0x47,0x41,0x21,0x1f,0x00,
/* code 48 */ 0x41,0x41,0x41,0x7f,0x41,0x41,0x41,0x00,
/* code 49 */ 0x3e,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,
/* code 4a */ 0x0e,0x02,0x02,0x02,0x42,0x42,0x3c,0x00,
/* code 4b */ 0x42,0x44,0x48,0x70,0x48,0x44,0x42,0x00,
/* code 4c */ 0x40,0x40,0x40,0x40,0x40,0x40,0x7e,0x00,
/* code 4d */ 0x41,0x63,0x55,0x49,0x41,0x41,0x41,0x00,
/* code 4e */ 0x41,0x61,0x51,0x49,0x45,0x43,0x41,0x00,
/* code 4f */ 0x1c,0x22,0x41,0x41,0x41,0x22,0x1c,0x00,
/* code 50 */ 0x7e,0x41,0x41,0x7e,0x40,0x40,0x40,0x00,
/* code 51 */ 0x1c,0x22,0x41,0x41,0x41,0x22,0x1c,0x07,
/* code 52 */ 0x7e,0x41,0x41,0x7e,0x44,0x42,0x41,0x00,
/* code 53 */ 0x3e,0x41,0x40,0x3e,0x01,0x41,0x3e,0x00,
/* code 54 */ 0x7f,0x08,0x08,0x08,0x08,0x08,0x08,0x00,
/* code 55 */ 0x41,0x41,0x41,0x41,0x41,0x41,0x3e,0x00,
/* code 56 */ 0x63,0x22,0x22,0x14,0x14,0x08,0x08,0x00,
/* code 57 */ 0x41,0x41,0x41,0x49,0x55,0x63,0x41,0x00,
/* code 58 */ 0x41,0x22,0x14,0x08,0x14,0x22,0x41,0x00,
/* code 59 */ 0x41,0x22,0x14,0x08,0x08,0x08,0x08,0x00,
/* code 5a */ 0x7f,0x02,0x04,0x08,0x10,0x20,0x7f,0x00,
/* code 5b */ 0x0e,0x08,0x08,0x08,0x08,0x08,0x0e,0x00,
/* code 5c */ 0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,
/* code 5d */ 0x38,0x08,0x08,0x08,0x08,0x08,0x38,0x00,
/* code 5e */ 0x08,0x14,0x22,0x00,0x00,0x00,0x00,0x00,
/* code 5f */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,
/* code 60 */ 0x18,0x08,0x04,0x00,0x00,0x00,0x00,0x00,
/* code 61 */ 0x00,0x00,0x3f,0x41,0x41,0x43,0x3d,0x00,
/* code 62 */ 0x40,0x40,0x7e,0x41,0x41,0x41,0x7e,0x00,
/* code 63 */ 0x00,0x00,0x3e,0x40,0x40,0x40,0x3e,0x00,
/* code 64 */ 0x01,0x01,0x3f,0x41,0x41,0x41,0x3f,0x00,
/* code 65 */ 0x00,0x00,0x3e,0x41,0x7f,0x40,0x3e,0x00,
/* code 66 */ 0x1e,0x20,0x78,0x20,0x20,0x20,0x20,0x00,
/* code 67 */ 0x00,0x00,0x3f,0x41,0x41,0x3f,0x01,0x3e,
/* code 68 */ 0x40,0x40,0x7e,0x41,0x41,0x41,0x41,0x00,
/* code 69 */ 0x08,0x00,0x38,0x08,0x08,0x08,0x3e,0x00,
/* code 6a */ 0x02,0x00,0x1e,0x02,0x02,0x02,0x02,0x3c,
/* code 6b */ 0x40,0x40,0x46,0x48,0x70,0x48,0x46,0x00,
/* code 6c */ 0x18,0x08,0x08,0x08,0x08,0x08,0x1c,0x00,
/* code 6d */ 0x00,0x00,0x76,0x49,0x49,0x49,0x41,0x00,
/* code 6e */ 0x00,0x00,0x5e,0x61,0x41,0x41,0x41,0x00,
/* code 6f */ 0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,
/* code 70 */ 0x00,0x00,0x7e,0x41,0x41,0x41,0x7e,0x40,
/* code 71 */ 0x00,0x00,0x3f,0x41,0x41,0x41,0x3f,0x01,
/* code 72 */ 0x00,0x00,0x2e,0x30,0x20,0x20,0x20,0x00,
/* code 73 */ 0x00,0x00,0x3e,0x40,0x3c,0x02,0x7c,0x00,
/* code 74 */ 0x10,0x10,0x7e,0x10,0x10,0x10,0x0e,0x00,
/* code 75 */ 0x00,0x00,0x41,0x41,0x41,0x43,0x3d,0x00,
/* code 76 */ 0x00,0x00,0x63,0x22,0x14,0x14,0x08,0x00,
/* code 77 */ 0x00,0x00,0x41,0x49,0x49,0x49,0x36,0x00,
/* code 78 */ 0x00,0x00,0x63,0x14,0x08,0x14,0x63,0x00,
/* code 79 */ 0x00,0x00,0x42,0x42,0x42,0x3e,0x02,0x3c,
/* code 7a */ 0x00,0x00,0x7e,0x04,0x18,0x20,0x7e,0x00,
/* code 7b */ 0x04,0x08,0x08,0x10,0x08,0x08,0x04,0x00,
/* code 7c */ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,
/* code 7d */ 0x10,0x08,0x08,0x04,0x08,0x08,0x10,0x00,
/* code 7e */ 0x31,0x49,0x46,0x00,0x00,0x00,0x00,0x00,
/* code 7f */ 0x00,0x08,0x08,0x14,0x14,0x22,0x3e,0x00,
};

7
sys/dev/hpc/files.bicons Normal file
View File

@ -0,0 +1,7 @@
# $NetBSD: files.bicons,v 1.1 2001/02/09 19:43:23 uch Exp $
file dev/hpc/bicons.c
file dev/hpc/bifont.c
defpseudo biconsdev
file dev/hpc/biconsdev.c biconsdev needs-count