Catch up with ITE data structure changes.
This commit is contained in:
parent
8c395495bf
commit
570949e0e4
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ite.c,v 1.10 1995/10/04 06:54:47 thorpej Exp $ */
|
||||
/* $NetBSD: ite.c,v 1.11 1996/03/03 04:23:33 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988 University of Utah.
|
||||
|
@ -51,57 +51,51 @@
|
|||
#include <sys/param.h>
|
||||
#include <dev/cons.h>
|
||||
#include <hp300/dev/device.h>
|
||||
#include <hp300/dev/itevar.h>
|
||||
#include <hp300/stand/itevar.h>
|
||||
#include <hp300/dev/grfreg.h>
|
||||
#include <hp300/stand/consdefs.h>
|
||||
#include <hp300/stand/samachdep.h>
|
||||
|
||||
extern int nodev();
|
||||
extern u_char ite_readbyte();
|
||||
extern int ite_writeglyph();
|
||||
|
||||
extern int topcat_init(), topcat_putc();
|
||||
extern int topcat_clear(), topcat_cursor(), topcat_scroll();
|
||||
extern int gbox_init(), gbox_clear();
|
||||
extern int gbox_putc(), gbox_cursor(), gbox_scroll();
|
||||
extern int rbox_init(), rbox_clear();
|
||||
extern int rbox_putc(), rbox_cursor(), rbox_scroll();
|
||||
extern int dvbox_init(), dvbox_clear();
|
||||
extern int dvbox_putc(), dvbox_cursor(), dvbox_scroll();
|
||||
extern int hyper_init(), hyper_clear();
|
||||
extern int hyper_putc(), hyper_cursor(), hyper_scroll();
|
||||
void ite_deinit_noop __P((struct ite_data *));
|
||||
|
||||
struct itesw itesw[] = {
|
||||
GID_TOPCAT,
|
||||
topcat_init, nodev, topcat_clear, topcat_putc,
|
||||
topcat_cursor, topcat_scroll, ite_readbyte, ite_writeglyph,
|
||||
GID_GATORBOX,
|
||||
gbox_init, nodev, gbox_clear, gbox_putc,
|
||||
gbox_cursor, gbox_scroll, ite_readbyte, ite_writeglyph,
|
||||
GID_RENAISSANCE,
|
||||
rbox_init, nodev, rbox_clear, rbox_putc,
|
||||
rbox_cursor, rbox_scroll, ite_readbyte, ite_writeglyph,
|
||||
GID_LRCATSEYE,
|
||||
topcat_init, nodev, topcat_clear, topcat_putc,
|
||||
topcat_cursor, topcat_scroll, ite_readbyte, ite_writeglyph,
|
||||
GID_HRCCATSEYE,
|
||||
topcat_init, nodev, topcat_clear, topcat_putc,
|
||||
topcat_cursor, topcat_scroll, ite_readbyte, ite_writeglyph,
|
||||
GID_HRMCATSEYE,
|
||||
topcat_init, nodev, topcat_clear, topcat_putc,
|
||||
topcat_cursor, topcat_scroll, ite_readbyte, ite_writeglyph,
|
||||
GID_DAVINCI,
|
||||
dvbox_init, nodev, dvbox_clear, dvbox_putc,
|
||||
dvbox_cursor, dvbox_scroll, ite_readbyte, ite_writeglyph,
|
||||
GID_HYPERION,
|
||||
hyper_init, nodev, hyper_clear, hyper_putc,
|
||||
hyper_cursor, hyper_scroll, ite_readbyte, ite_writeglyph,
|
||||
{ GID_TOPCAT,
|
||||
topcat_init, ite_deinit_noop, topcat_clear, topcat_putc,
|
||||
topcat_cursor, topcat_scroll, ite_readbyte, ite_writeglyph },
|
||||
|
||||
{ GID_GATORBOX,
|
||||
gbox_init, ite_deinit_noop, gbox_clear, gbox_putc,
|
||||
gbox_cursor, gbox_scroll, ite_readbyte, ite_writeglyph },
|
||||
|
||||
{ GID_RENAISSANCE,
|
||||
rbox_init, ite_deinit_noop, rbox_clear, rbox_putc,
|
||||
rbox_cursor, rbox_scroll, ite_readbyte, ite_writeglyph },
|
||||
|
||||
{ GID_LRCATSEYE,
|
||||
topcat_init, ite_deinit_noop, topcat_clear, topcat_putc,
|
||||
topcat_cursor, topcat_scroll, ite_readbyte, ite_writeglyph },
|
||||
|
||||
{ GID_HRCCATSEYE,
|
||||
topcat_init, ite_deinit_noop, topcat_clear, topcat_putc,
|
||||
topcat_cursor, topcat_scroll, ite_readbyte, ite_writeglyph },
|
||||
|
||||
{ GID_HRMCATSEYE,
|
||||
topcat_init, ite_deinit_noop, topcat_clear, topcat_putc,
|
||||
topcat_cursor, topcat_scroll, ite_readbyte, ite_writeglyph },
|
||||
|
||||
{ GID_DAVINCI,
|
||||
dvbox_init, ite_deinit_noop, dvbox_clear, dvbox_putc,
|
||||
dvbox_cursor, dvbox_scroll, ite_readbyte, ite_writeglyph },
|
||||
|
||||
{ GID_HYPERION,
|
||||
hyper_init, ite_deinit_noop, hyper_clear, hyper_putc,
|
||||
hyper_cursor, hyper_scroll, ite_readbyte, ite_writeglyph },
|
||||
};
|
||||
int nitesw = sizeof(itesw) / sizeof(itesw[0]);
|
||||
|
||||
/* these guys need to be in initialized data */
|
||||
int itecons = -1;
|
||||
struct ite_softc ite_softc[NITE] = { 0 };
|
||||
struct ite_data ite_data[NITE] = { 0 };
|
||||
int ite_scode[NITE] = { 0 };
|
||||
|
||||
/*
|
||||
|
@ -113,7 +107,7 @@ iteconfig()
|
|||
int dtype, fboff, i;
|
||||
struct hp_hw *hw;
|
||||
struct grfreg *gr;
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
|
||||
i = 0;
|
||||
for (hw = sc_table; hw < &sc_table[MAXCTLRS]; hw++) {
|
||||
|
@ -131,7 +125,7 @@ iteconfig()
|
|||
if (i >= NITE)
|
||||
break;
|
||||
ite_scode[i] = hw->hw_sc;
|
||||
ip = &ite_softc[i];
|
||||
ip = &ite_data[i];
|
||||
ip->isw = &itesw[dtype];
|
||||
ip->regbase = (caddr_t) gr;
|
||||
fboff = (gr->gr_fbomsb << 8) | gr->gr_fbolsb;
|
||||
|
@ -172,7 +166,7 @@ iteprobe(cp)
|
|||
struct consdev *cp;
|
||||
{
|
||||
register int ite;
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
int unit, pri;
|
||||
|
||||
#ifdef CONSDEBUG
|
||||
|
@ -190,7 +184,7 @@ iteprobe(cp)
|
|||
if (ite < whichconsole)
|
||||
continue;
|
||||
#endif
|
||||
ip = &ite_softc[ite];
|
||||
ip = &ite_data[ite];
|
||||
if ((ip->flags & (ITE_ALIVE|ITE_CONSOLE))
|
||||
!= (ITE_ALIVE|ITE_CONSOLE))
|
||||
continue;
|
||||
|
@ -212,12 +206,12 @@ iteinit(cp)
|
|||
struct consdev *cp;
|
||||
{
|
||||
int ite = cp->cn_dev;
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
|
||||
if (itecons != -1)
|
||||
return;
|
||||
|
||||
ip = &ite_softc[ite];
|
||||
ip = &ite_data[ite];
|
||||
|
||||
ip->curx = 0;
|
||||
ip->cury = 0;
|
||||
|
@ -237,7 +231,7 @@ iteputchar(dev, c)
|
|||
dev_t dev;
|
||||
register int c;
|
||||
{
|
||||
register struct ite_softc *ip = &ite_softc[itecons];
|
||||
register struct ite_data *ip = &ite_data[itecons];
|
||||
register struct itesw *sp = ip->isw;
|
||||
|
||||
c &= 0x7F;
|
||||
|
@ -276,7 +270,7 @@ iteputchar(dev, c)
|
|||
}
|
||||
|
||||
itecheckwrap(ip, sp)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register struct itesw *sp;
|
||||
{
|
||||
if (++ip->curx == ip->cols) {
|
||||
|
@ -292,7 +286,7 @@ itecheckwrap(ip, sp)
|
|||
}
|
||||
|
||||
ite_clrtoeol(ip, sp, y, x)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register struct itesw *sp;
|
||||
register int y, x;
|
||||
{
|
||||
|
@ -312,3 +306,10 @@ itegetchar(dev)
|
|||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
/* ARGSUSED */
|
||||
void
|
||||
ite_deinit_noop(ip)
|
||||
struct ite_data *ip;
|
||||
{
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ite_dv.c,v 1.7 1994/10/26 07:27:31 cgd Exp $ */
|
||||
/* $NetBSD: ite_dv.c,v 1.8 1996/03/03 04:23:35 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988 University of Utah.
|
||||
|
@ -47,15 +47,19 @@
|
|||
#ifdef ITECONSOLE
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <hp300/dev/itevar.h>
|
||||
#include <hp300/stand/itevar.h>
|
||||
#include <hp300/dev/itereg.h>
|
||||
#include <hp300/dev/grf_dvreg.h>
|
||||
|
||||
#define REGBASE ((struct dvboxfb *)(ip->regbase))
|
||||
#define WINDOWMOVER dvbox_windowmove
|
||||
|
||||
void dvbox_windowmove __P((struct ite_data *, int, int, int, int,
|
||||
int, int, int));
|
||||
|
||||
void
|
||||
dvbox_init(ip)
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -129,8 +133,9 @@ dvbox_init(ip)
|
|||
db_waitbusy(ip->regbase);
|
||||
}
|
||||
|
||||
void
|
||||
dvbox_putc(ip, c, dy, dx, mode)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int dy, dx;
|
||||
int c, mode;
|
||||
{
|
||||
|
@ -139,8 +144,9 @@ dvbox_putc(ip, c, dy, dx, mode)
|
|||
ip->ftheight, ip->ftwidth, RR_COPY);
|
||||
}
|
||||
|
||||
void
|
||||
dvbox_cursor(ip, flag)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int flag;
|
||||
{
|
||||
if (flag == DRAW_CURSOR)
|
||||
|
@ -153,8 +159,9 @@ dvbox_cursor(ip, flag)
|
|||
erase_cursor(ip)
|
||||
}
|
||||
|
||||
void
|
||||
dvbox_clear(ip, sy, sx, h, w)
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
register int sy, sx, h, w;
|
||||
{
|
||||
dvbox_windowmove(ip, sy * ip->ftheight, sx * ip->ftwidth,
|
||||
|
@ -163,8 +170,9 @@ dvbox_clear(ip, sy, sx, h, w)
|
|||
RR_CLEAR);
|
||||
}
|
||||
|
||||
void
|
||||
dvbox_scroll(ip, sy, sx, count, dir)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int sy, count;
|
||||
int dir, sx;
|
||||
{
|
||||
|
@ -179,8 +187,9 @@ dvbox_scroll(ip, sy, sx, count, dir)
|
|||
ip->cols * ip->ftwidth, RR_COPY);
|
||||
}
|
||||
|
||||
void
|
||||
dvbox_windowmove(ip, sy, sx, dy, dx, h, w, func)
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
int sy, sx, dy, dx, h, w, func;
|
||||
{
|
||||
register struct dvboxfb *dp = REGBASE;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ite_gb.c,v 1.7 1994/10/26 07:27:33 cgd Exp $ */
|
||||
/* $NetBSD: ite_gb.c,v 1.8 1996/03/03 04:23:36 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988 University of Utah.
|
||||
|
@ -48,15 +48,19 @@
|
|||
|
||||
#include <sys/param.h>
|
||||
|
||||
#include <hp300/dev/itevar.h>
|
||||
#include <hp300/stand/itevar.h>
|
||||
#include <hp300/dev/itereg.h>
|
||||
#include <hp300/dev/grf_gbreg.h>
|
||||
|
||||
#define REGBASE ((struct gboxfb *)(ip->regbase))
|
||||
#define WINDOWMOVER gbox_windowmove
|
||||
|
||||
void gbox_windowmove __P((struct ite_data *, int, int, int, int,
|
||||
int, int, int));
|
||||
|
||||
void
|
||||
gbox_init(ip)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
{
|
||||
REGBASE->write_protect = 0x0;
|
||||
REGBASE->interrupt = 0x4;
|
||||
|
@ -109,8 +113,9 @@ gbox_init(ip)
|
|||
ip->ftwidth, RR_COPYINVERTED);
|
||||
}
|
||||
|
||||
void
|
||||
gbox_putc(ip, c, dy, dx, mode)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int dy, dx;
|
||||
int c, mode;
|
||||
{
|
||||
|
@ -119,8 +124,9 @@ gbox_putc(ip, c, dy, dx, mode)
|
|||
ip->ftheight, ip->ftwidth, RR_COPY);
|
||||
}
|
||||
|
||||
void
|
||||
gbox_cursor(ip, flag)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int flag;
|
||||
{
|
||||
if (flag == DRAW_CURSOR)
|
||||
|
@ -133,8 +139,9 @@ gbox_cursor(ip, flag)
|
|||
erase_cursor(ip)
|
||||
}
|
||||
|
||||
void
|
||||
gbox_clear(ip, sy, sx, h, w)
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
register int sy, sx, h, w;
|
||||
{
|
||||
gbox_windowmove(ip, sy * ip->ftheight, sx * ip->ftwidth,
|
||||
|
@ -153,8 +160,9 @@ gbox_clear(ip, sy, sx, h, w)
|
|||
(w) * ip->ftwidth, \
|
||||
RR_COPY)
|
||||
|
||||
void
|
||||
gbox_scroll(ip, sy, sx, count, dir)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int sy;
|
||||
int dir, sx, count;
|
||||
{
|
||||
|
@ -171,8 +179,9 @@ gbox_scroll(ip, sy, sx, count, dir)
|
|||
gbox_blockmove(ip, sy + i, sx, dy + i, 0, 1, ip->cols);
|
||||
}
|
||||
|
||||
void
|
||||
gbox_windowmove(ip, sy, sx, dy, dx, h, w, mask)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
int sy, sx, dy, dx, mask;
|
||||
register int h, w;
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ite_hy.c,v 1.2 1994/10/26 07:27:34 cgd Exp $ */
|
||||
/* $NetBSD: ite_hy.c,v 1.3 1996/03/03 04:23:37 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988 University of Utah.
|
||||
|
@ -48,7 +48,7 @@
|
|||
#ifdef ITECONSOLE
|
||||
#include <sys/param.h>
|
||||
|
||||
#include <hp300/dev/itevar.h>
|
||||
#include <hp300/stand/itevar.h>
|
||||
#include <hp300/dev/itereg.h>
|
||||
#include <hp300/dev/grf_hyreg.h>
|
||||
|
||||
|
@ -59,8 +59,13 @@
|
|||
#define charX(ip,c) \
|
||||
(((c) % (ip)->cpl) * ((((ip)->ftwidth + 7) / 8) * 8) + (ip)->fontx)
|
||||
|
||||
void hyper_ite_fontinit __P((struct ite_data *));
|
||||
void hyper_windowmove __P((struct ite_data *, int, int, int, int,
|
||||
int, int, int));
|
||||
|
||||
void
|
||||
hyper_init(ip)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
{
|
||||
int width;
|
||||
|
||||
|
@ -86,8 +91,9 @@ hyper_init(ip)
|
|||
ip->ftwidth, RR_COPYINVERTED);
|
||||
}
|
||||
|
||||
void
|
||||
hyper_ite_fontinit(ip)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
{
|
||||
register u_char *fbmem, *dp;
|
||||
int c, l, b;
|
||||
|
@ -114,8 +120,9 @@ hyper_ite_fontinit(ip)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
hyper_putc(ip, c, dy, dx, mode)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int dy, dx;
|
||||
int c, mode;
|
||||
{
|
||||
|
@ -124,8 +131,9 @@ hyper_putc(ip, c, dy, dx, mode)
|
|||
ip->ftheight, ip->ftwidth, RR_COPY);
|
||||
}
|
||||
|
||||
void
|
||||
hyper_cursor(ip, flag)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
int flag;
|
||||
{
|
||||
switch (flag) {
|
||||
|
@ -141,8 +149,9 @@ hyper_cursor(ip, flag)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
hyper_clear(ip, sy, sx, h, w)
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
register int sy, sx, h, w;
|
||||
{
|
||||
hyper_windowmove(ip, sy * ip->ftheight, sx * ip->ftwidth,
|
||||
|
@ -151,8 +160,9 @@ hyper_clear(ip, sy, sx, h, w)
|
|||
RR_CLEAR);
|
||||
}
|
||||
|
||||
void
|
||||
hyper_scroll(ip, sy, sx, count, dir)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int sy, count;
|
||||
int dir, sx;
|
||||
{
|
||||
|
@ -247,8 +257,9 @@ int endtab[32] =
|
|||
0xFFFFFFFE
|
||||
};
|
||||
|
||||
void
|
||||
hyper_windowmove(ip, sy, sx, dy, dx, h, w, func)
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
int sy, sx, dy, dx, h, w, func;
|
||||
{
|
||||
unsigned int *psrcBase, *pdstBase;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ite_rb.c,v 1.7 1994/10/26 07:27:37 cgd Exp $ */
|
||||
/* $NetBSD: ite_rb.c,v 1.8 1996/03/03 04:23:38 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988 University of Utah.
|
||||
|
@ -47,7 +47,7 @@
|
|||
#ifdef ITECONSOLE
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <hp300/dev/itevar.h>
|
||||
#include <hp300/stand/itevar.h>
|
||||
#include <hp300/dev/itereg.h>
|
||||
|
||||
#include <hp300/dev/grf_rbreg.h>
|
||||
|
@ -55,8 +55,12 @@
|
|||
#define REGBASE ((struct rboxfb *)(ip->regbase))
|
||||
#define WINDOWMOVER rbox_windowmove
|
||||
|
||||
void rbox_windowmove __P((struct ite_data *, int, int, int, int,
|
||||
int, int, int));
|
||||
|
||||
void
|
||||
rbox_init(ip)
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -125,8 +129,9 @@ rbox_init(ip)
|
|||
ip->ftwidth, RR_COPYINVERTED);
|
||||
}
|
||||
|
||||
void
|
||||
rbox_putc(ip, c, dy, dx, mode)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int dy, dx;
|
||||
int c, mode;
|
||||
{
|
||||
|
@ -135,8 +140,9 @@ rbox_putc(ip, c, dy, dx, mode)
|
|||
ip->ftheight, ip->ftwidth, RR_COPY);
|
||||
}
|
||||
|
||||
void
|
||||
rbox_cursor(ip, flag)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int flag;
|
||||
{
|
||||
if (flag == DRAW_CURSOR)
|
||||
|
@ -149,8 +155,9 @@ rbox_cursor(ip, flag)
|
|||
erase_cursor(ip)
|
||||
}
|
||||
|
||||
void
|
||||
rbox_clear(ip, sy, sx, h, w)
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
register int sy, sx, h, w;
|
||||
{
|
||||
rbox_windowmove(ip, sy * ip->ftheight, sx * ip->ftwidth,
|
||||
|
@ -159,8 +166,9 @@ rbox_clear(ip, sy, sx, h, w)
|
|||
RR_CLEAR);
|
||||
}
|
||||
|
||||
void
|
||||
rbox_scroll(ip, sy, sx, count, dir)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int sy, count;
|
||||
int dir, sx;
|
||||
{
|
||||
|
@ -175,8 +183,9 @@ rbox_scroll(ip, sy, sx, count, dir)
|
|||
ip->cols * ip->ftwidth, RR_COPY);
|
||||
}
|
||||
|
||||
void
|
||||
rbox_windowmove(ip, sy, sx, dy, dx, h, w, func)
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
int sy, sx, dy, dx, h, w, func;
|
||||
{
|
||||
register struct rboxfb *rp = REGBASE;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ite_subr.c,v 1.7 1994/10/26 07:27:39 cgd Exp $ */
|
||||
/* $NetBSD: ite_subr.c,v 1.8 1996/03/03 04:23:40 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988 University of Utah.
|
||||
|
@ -47,11 +47,11 @@
|
|||
#ifdef ITECONSOLE
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <hp300/dev/itevar.h>
|
||||
#include <hp300/stand/itevar.h>
|
||||
#include <hp300/dev/itereg.h>
|
||||
|
||||
ite_fontinfo(ip)
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
{
|
||||
u_long fontaddr = getword(ip, getword(ip, FONTROM) + FONTADDR);
|
||||
|
||||
|
@ -83,7 +83,7 @@ ite_fontinfo(ip)
|
|||
}
|
||||
|
||||
ite_fontinit(ip)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
{
|
||||
int bytewidth = (((ip->ftwidth - 1) / 8) + 1);
|
||||
int glyphsize = bytewidth * ip->ftheight;
|
||||
|
@ -111,14 +111,15 @@ ite_fontinit(ip)
|
|||
*/
|
||||
u_char
|
||||
ite_readbyte(ip, disp)
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
int disp;
|
||||
{
|
||||
return((u_char) *(((u_char *)ip->regbase) + disp));
|
||||
}
|
||||
|
||||
void
|
||||
ite_writeglyph(ip, fbmem, glyphp)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register u_char *fbmem, *glyphp;
|
||||
{
|
||||
register int bn;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ite_tc.c,v 1.7 1994/10/26 07:27:41 cgd Exp $ */
|
||||
/* $NetBSD: ite_tc.c,v 1.8 1996/03/03 04:23:41 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988 University of Utah.
|
||||
|
@ -47,7 +47,7 @@
|
|||
#ifdef ITECONSOLE
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <hp300/dev/itevar.h>
|
||||
#include <hp300/stand/itevar.h>
|
||||
#include <hp300/dev/itereg.h>
|
||||
#include <hp300/dev/grfreg.h>
|
||||
#include <hp300/dev/grf_tcreg.h>
|
||||
|
@ -55,8 +55,12 @@
|
|||
#define REGBASE ((struct tcboxfb *)(ip->regbase))
|
||||
#define WINDOWMOVER topcat_windowmove
|
||||
|
||||
void topcat_windowmove __P((struct ite_data *, int, int, int, int,
|
||||
int, int, int));
|
||||
|
||||
void
|
||||
topcat_init(ip)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
{
|
||||
|
||||
/*
|
||||
|
@ -110,8 +114,9 @@ topcat_init(ip)
|
|||
ip->ftwidth, RR_COPYINVERTED);
|
||||
}
|
||||
|
||||
void
|
||||
topcat_putc(ip, c, dy, dx, mode)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int dy, dx;
|
||||
int c, mode;
|
||||
{
|
||||
|
@ -120,8 +125,9 @@ topcat_putc(ip, c, dy, dx, mode)
|
|||
ip->ftheight, ip->ftwidth, RR_COPY);
|
||||
}
|
||||
|
||||
void
|
||||
topcat_cursor(ip, flag)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int flag;
|
||||
{
|
||||
if (flag == DRAW_CURSOR)
|
||||
|
@ -134,8 +140,9 @@ topcat_cursor(ip, flag)
|
|||
erase_cursor(ip)
|
||||
}
|
||||
|
||||
void
|
||||
topcat_clear(ip, sy, sx, h, w)
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
register int sy, sx, h, w;
|
||||
{
|
||||
topcat_windowmove(ip, sy * ip->ftheight, sx * ip->ftwidth,
|
||||
|
@ -144,8 +151,9 @@ topcat_clear(ip, sy, sx, h, w)
|
|||
RR_CLEAR);
|
||||
}
|
||||
|
||||
void
|
||||
topcat_scroll(ip, sy, sx, count, dir)
|
||||
register struct ite_softc *ip;
|
||||
register struct ite_data *ip;
|
||||
register int sy, count;
|
||||
int dir, sx;
|
||||
{
|
||||
|
@ -160,8 +168,9 @@ topcat_scroll(ip, sy, sx, count, dir)
|
|||
ip->cols * ip->ftwidth, RR_COPY);
|
||||
}
|
||||
|
||||
void
|
||||
topcat_windowmove(ip, sy, sx, dy, dx, h, w, func)
|
||||
struct ite_softc *ip;
|
||||
struct ite_data *ip;
|
||||
int sy, sx, dy, dx, h, w, func;
|
||||
{
|
||||
register struct tcboxfb *rp = REGBASE;
|
||||
|
|
|
@ -0,0 +1,231 @@
|
|||
/* $NetBSD: itevar.h,v 1.1 1996/03/03 04:23:42 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988 University of Utah.
|
||||
* Copyright (c) 1990, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* the Systems Programming Group of the University of Utah Computer
|
||||
* Science Department.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* from: Utah $Hdr: itevar.h 1.15 92/12/20$
|
||||
*
|
||||
* @(#)itevar.h 8.1 (Berkeley) 6/10/93
|
||||
*/
|
||||
|
||||
/*
|
||||
* Standalone version of hp300 ITE.
|
||||
*/
|
||||
|
||||
#define ITEUNIT(dev) minor(dev)
|
||||
|
||||
#define getbyte(ip, offset) \
|
||||
((*(ip)->isw->ite_readbyte)(ip, offset))
|
||||
|
||||
#define getword(ip, offset) \
|
||||
((getbyte(ip, offset) << 8) | getbyte(ip, (offset) + 2))
|
||||
|
||||
#define writeglyph(ip, offset, fontbuf) \
|
||||
((*(ip)->isw->ite_writeglyph)((ip), (offset), (fontbuf)))
|
||||
|
||||
struct ite_data {
|
||||
int flags;
|
||||
struct tty *tty;
|
||||
struct itesw *isw;
|
||||
struct grf_data *grf;
|
||||
caddr_t regbase, fbbase;
|
||||
short curx, cury;
|
||||
short cursorx, cursory;
|
||||
short cblankx, cblanky;
|
||||
short rows, cols;
|
||||
short cpl;
|
||||
short dheight, dwidth;
|
||||
short fbheight, fbwidth;
|
||||
short ftheight, ftwidth;
|
||||
short fontx, fonty;
|
||||
short attribute;
|
||||
u_char *attrbuf;
|
||||
short planemask;
|
||||
short pos;
|
||||
char imode, escape, fpd, hold;
|
||||
caddr_t devdata; /* display dependent data */
|
||||
};
|
||||
|
||||
struct itesw {
|
||||
int ite_hwid;
|
||||
void (*ite_init) __P((struct ite_data *));
|
||||
void (*ite_deinit) __P((struct ite_data *));
|
||||
void (*ite_clear) __P((struct ite_data *, int, int, int, int));
|
||||
void (*ite_putc) __P((struct ite_data *, int, int, int, int));
|
||||
void (*ite_cursor) __P((struct ite_data *, int));
|
||||
void (*ite_scroll) __P((struct ite_data *, int, int, int, int));
|
||||
u_char (*ite_readbyte) __P((struct ite_data *, int));
|
||||
void (*ite_writeglyph) __P((struct ite_data *, u_char *, u_char *));
|
||||
};
|
||||
|
||||
/* Flags */
|
||||
#define ITE_ALIVE 0x01 /* hardware exists */
|
||||
#define ITE_INITED 0x02 /* device has been initialized */
|
||||
#define ITE_CONSOLE 0x04 /* device can be console */
|
||||
#define ITE_ISCONS 0x08 /* device is console */
|
||||
#define ITE_ACTIVE 0x10 /* device is being used as ITE */
|
||||
#define ITE_INGRF 0x20 /* device in use as non-ITE */
|
||||
#define ITE_CURSORON 0x40 /* cursor being tracked */
|
||||
|
||||
#define attrloc(ip, y, x) \
|
||||
(ip->attrbuf + ((y) * ip->cols) + (x))
|
||||
|
||||
#define attrclr(ip, sy, sx, h, w) \
|
||||
bzero(ip->attrbuf + ((sy) * ip->cols) + (sx), (h) * (w))
|
||||
|
||||
#define attrmov(ip, sy, sx, dy, dx, h, w) \
|
||||
bcopy(ip->attrbuf + ((sy) * ip->cols) + (sx), \
|
||||
ip->attrbuf + ((dy) * ip->cols) + (dx), \
|
||||
(h) * (w))
|
||||
|
||||
#define attrtest(ip, attr) \
|
||||
((* (u_char *) attrloc(ip, ip->cury, ip->curx)) & attr)
|
||||
|
||||
#define attrset(ip, attr) \
|
||||
((* (u_char *) attrloc(ip, ip->cury, ip->curx)) = attr)
|
||||
|
||||
/*
|
||||
* X and Y location of character 'c' in the framebuffer, in pixels.
|
||||
*/
|
||||
#define charX(ip,c) \
|
||||
(((c) % (ip)->cpl) * (ip)->ftwidth + (ip)->fontx)
|
||||
|
||||
#define charY(ip,c) \
|
||||
(((c) / (ip)->cpl) * (ip)->ftheight + (ip)->fonty)
|
||||
|
||||
/*
|
||||
* The cursor is just an inverted space.
|
||||
*/
|
||||
#define draw_cursor(ip) { \
|
||||
WINDOWMOVER(ip, ip->cblanky, ip->cblankx, \
|
||||
ip->cury * ip->ftheight, \
|
||||
ip->curx * ip->ftwidth, \
|
||||
ip->ftheight, ip->ftwidth, RR_XOR); \
|
||||
ip->cursorx = ip->curx; \
|
||||
ip->cursory = ip->cury; }
|
||||
|
||||
#define erase_cursor(ip) \
|
||||
WINDOWMOVER(ip, ip->cblanky, ip->cblankx, \
|
||||
ip->cursory * ip->ftheight, \
|
||||
ip->cursorx * ip->ftwidth, \
|
||||
ip->ftheight, ip->ftwidth, RR_XOR);
|
||||
|
||||
/* Character attributes */
|
||||
#define ATTR_NOR 0x0 /* normal */
|
||||
#define ATTR_INV 0x1 /* inverse */
|
||||
#define ATTR_UL 0x2 /* underline */
|
||||
#define ATTR_ALL (ATTR_INV | ATTR_UL)
|
||||
|
||||
/* Keyboard attributes */
|
||||
#define ATTR_KPAD 0x4 /* keypad transmit */
|
||||
|
||||
/* Replacement Rules */
|
||||
#define RR_CLEAR 0x0
|
||||
#define RR_COPY 0x3
|
||||
#define RR_XOR 0x6
|
||||
#define RR_COPYINVERTED 0xc
|
||||
|
||||
#define SCROLL_UP 0x01
|
||||
#define SCROLL_DOWN 0x02
|
||||
#define SCROLL_LEFT 0x03
|
||||
#define SCROLL_RIGHT 0x04
|
||||
#define DRAW_CURSOR 0x05
|
||||
#define ERASE_CURSOR 0x06
|
||||
#define MOVE_CURSOR 0x07
|
||||
|
||||
#define KBD_SSHIFT 4 /* bits to shift status */
|
||||
#define KBD_CHARMASK 0x7F
|
||||
|
||||
/* keyboard status */
|
||||
#define KBD_SMASK 0xF /* service request status mask */
|
||||
#define KBD_CTRLSHIFT 0x8 /* key + CTRL + SHIFT */
|
||||
#define KBD_CTRL 0x9 /* key + CTRL */
|
||||
#define KBD_SHIFT 0xA /* key + SHIFT */
|
||||
#define KBD_KEY 0xB /* key only */
|
||||
|
||||
#define KBD_CAPSLOCK 0x18
|
||||
|
||||
#define KBD_EXT_LEFT_DOWN 0x12
|
||||
#define KBD_EXT_LEFT_UP 0x92
|
||||
#define KBD_EXT_RIGHT_DOWN 0x13
|
||||
#define KBD_EXT_RIGHT_UP 0x93
|
||||
|
||||
#define TABSIZE 8
|
||||
#define TABEND(ip) ((ip)->tty->t_winsize.ws_col - TABSIZE)
|
||||
|
||||
extern struct ite_data ite_data[];
|
||||
extern struct itesw itesw[];
|
||||
extern int nitesw;
|
||||
|
||||
/*
|
||||
* Prototypes.
|
||||
*/
|
||||
u_char ite_readbyte __P((struct ite_data *, int));
|
||||
void ite_writeglyph __P((struct ite_data *, u_char *, u_char *));
|
||||
|
||||
/*
|
||||
* Framebuffer-specific ITE prototypes.
|
||||
*/
|
||||
void topcat_init __P((struct ite_data *));
|
||||
void topcat_clear __P((struct ite_data *, int, int, int, int));
|
||||
void topcat_putc __P((struct ite_data *, int, int, int, int));
|
||||
void topcat_cursor __P((struct ite_data *, int));
|
||||
void topcat_scroll __P((struct ite_data *, int, int, int, int));
|
||||
|
||||
void gbox_init __P((struct ite_data *));
|
||||
void gbox_clear __P((struct ite_data *, int, int, int, int));
|
||||
void gbox_putc __P((struct ite_data *, int, int, int, int));
|
||||
void gbox_cursor __P((struct ite_data *, int));
|
||||
void gbox_scroll __P((struct ite_data *, int, int, int, int));
|
||||
|
||||
void rbox_init __P((struct ite_data *));
|
||||
void rbox_clear __P((struct ite_data *, int, int, int, int));
|
||||
void rbox_putc __P((struct ite_data *, int, int, int, int));
|
||||
void rbox_cursor __P((struct ite_data *, int));
|
||||
void rbox_scroll __P((struct ite_data *, int, int, int, int));
|
||||
|
||||
void dvbox_init __P((struct ite_data *));
|
||||
void dvbox_clear __P((struct ite_data *, int, int, int, int));
|
||||
void dvbox_putc __P((struct ite_data *, int, int, int, int));
|
||||
void dvbox_cursor __P((struct ite_data *, int));
|
||||
void dvbox_scroll __P((struct ite_data *, int, int, int, int));
|
||||
|
||||
void hyper_init __P((struct ite_data *));
|
||||
void hyper_clear __P((struct ite_data *, int, int, int, int));
|
||||
void hyper_putc __P((struct ite_data *, int, int, int, int));
|
||||
void hyper_cursor __P((struct ite_data *, int));
|
||||
void hyper_scroll __P((struct ite_data *, int, int, int, int));
|
Loading…
Reference in New Issue