diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2001-02-07 07:47:08 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2001-02-07 07:47:08 +0000 |
commit | b3fc6f9f0a3a3472a9af49ace7c1a296bc6d1491 (patch) | |
tree | ffd3b6e60860873a7676248e3b7dd41e949dca3d /sys/arch/arm32/dev | |
parent | 8893b355d53fce68341d4b27579a5242a58ff37d (diff) |
We need to loose some weight.
If someone feels very opposed to this, the code is left in the Attic.
Just revive and _make_it_work_.
Diffstat (limited to 'sys/arch/arm32/dev')
-rw-r--r-- | sys/arch/arm32/dev/console/console.c | 1220 | ||||
-rw-r--r-- | sys/arch/arm32/dev/console/debugconsole.c | 88 | ||||
-rw-r--r-- | sys/arch/arm32/dev/console/dumb.c | 146 | ||||
-rw-r--r-- | sys/arch/arm32/dev/console/fonts/font_bold.h | 265 | ||||
-rw-r--r-- | sys/arch/arm32/dev/console/fonts/font_italic.h | 265 | ||||
-rw-r--r-- | sys/arch/arm32/dev/console/fonts/font_normal.h | 265 | ||||
-rw-r--r-- | sys/arch/arm32/dev/console/fonts/font_wide.h | 259 | ||||
-rw-r--r-- | sys/arch/arm32/dev/console/vidc.c | 255 | ||||
-rw-r--r-- | sys/arch/arm32/dev/console/vidc_mc.S | 213 | ||||
-rw-r--r-- | sys/arch/arm32/dev/console/vidcconsole.c | 1818 | ||||
-rw-r--r-- | sys/arch/arm32/dev/console/vt220.c | 2008 | ||||
-rw-r--r-- | sys/arch/arm32/dev/console/vt220.h | 117 | ||||
-rw-r--r-- | sys/arch/arm32/dev/rd_hooks.c | 98 |
13 files changed, 0 insertions, 7017 deletions
diff --git a/sys/arch/arm32/dev/console/console.c b/sys/arch/arm32/dev/console/console.c deleted file mode 100644 index a0beedf0bb1..00000000000 --- a/sys/arch/arm32/dev/console/console.c +++ /dev/null @@ -1,1220 +0,0 @@ -/* $NetBSD: console.c,v 1.6 1996/04/19 20:03:37 mark Exp $ */ - -/* - * Copyright (c) 1994-1995 Melvyn Tang-Richardson - * Copyright (c) 1994-1995 RiscBSD kernel team - * 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 RiscBSD kernel team - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE RISCBSD TEAM ``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 AUTHORS 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. - * - * RiscBSD kernel project - * - * console.c - * - * Console functions - * - * Created : 17/09/94 - */ - -#include <sys/types.h> -#include <sys/param.h> -#include <sys/conf.h> -#include <sys/proc.h> -#include <sys/signalvar.h> -#include <sys/device.h> -#include <sys/time.h> -#include <sys/systm.h> -#include <sys/errno.h> -#include <sys/tty.h> -#include <sys/ioctl.h> -#include <sys/uio.h> -#include <sys/malloc.h> -#include <sys/msgbuf.h> -#include <sys/user.h> -#include <sys/sysctl.h> -#include <sys/syslog.h> - -#include <dev/cons.h> - -#include <machine/vidc.h> -#include <machine/vconsole.h> -#include <machine/katelib.h> - -#include "vt.h" - -#define CONSOLE_VERSION "[V203C] " - -/* - * Externals - */ - -extern struct tty *constty; -extern int debug_flags; -#define consmap_col(x) (x & 0x3) -#define CONSMAP_BOLD 8 -#define CONSMAP_ITALIC 16 - -/* - * Local variables (to this file) - */ - -int locked=0; /* Nut - is this really safe ? */ -struct tty *physcon_tty[NVT]; -struct vconsole vconsole_master_store; -struct vconsole *vconsole_master = &vconsole_master_store; -struct vconsole *vconsole_current; -struct vconsole *vconsole_head; -struct vconsole *vconsole_default; -struct cfdriver rpc_cd; -extern struct vconsole *debug_vc; /* rename this to vconsole_debug */ -int physcon_major=4; -static char undefined_string[] = "UNDEFINED"; -int lastconsole; -static int printing=0; -static int want_switch=-1; - -/* - * Prototypes - */ - -int physcon_switch __P((u_int /*number*/)); -void physconstart __P((struct tty */*tp*/)); -static struct vconsole *vconsole_spawn __P((dev_t , struct vconsole *)); -int physconparam __P((struct tty */*tp*/, struct termios */*t*/)); -void consinit __P((void)); -int physcon_switchup __P((void)); -int physcon_switchdown __P((void)); - -/* - * Exported variables - */ - -#define BLANKINIT (10*60*60) -int vconsole_pending=0; -int vconsole_blankinit=BLANKINIT; -int vconsole_blankcounter=BLANKINIT; - -/* - * Now list all my render engines and terminal emulators - */ - -extern struct render_engine vidcconsole; -extern struct terminal_emulator vt220; - -/* - * These find functions should move the console it finds to the top of - * the list to achieve a caching type of operation. A doubly - * linked list would be faster methinks. - */ - -struct tty * -find_tp(dev) - dev_t dev; -{ - struct vconsole *vc; - struct vconsole *last=0; - int unit = minor (dev); - int s; - - s = spltty(); - for (vc=vconsole_head; vc != NULL; vc=vc->next) { - if (vc->number==unit) { - if (vc != vconsole_head) { - last->next = vc->next; - vc->next = vconsole_head; - vconsole_head = vc; - } - (void)splx(s); - return vc->tp; - } - last = vc; - } - (void)splx(s); - return NULL; -} - -struct vconsole * -find_vc(dev) - dev_t dev; -{ - struct vconsole *vc; - struct vconsole *last=NULL; - int unit = minor (dev); - int s; - - s = spltty(); - - for (vc=vconsole_head; vc!=NULL; vc=vc->next) { - if (vc->number==unit) { - if (vc!=vconsole_head) { - last->next = vc->next; - vc->next = vconsole_head; - vconsole_head = vc; - } - (void)splx(s); - return vc; - } - last=vc; - } - (void)splx(s); - return NULL; -} - -struct tty *console_tty = NULL; - -/* - * Place a graphics driver under virtual console switching control. - */ - -struct vconsole * -vconsole_spawn_re(dev, vc) - dev_t dev; - struct vconsole *vc; -{ - struct vconsole *new; - register int num = minor(dev); - - MALLOC(new, struct vconsole *, sizeof(struct vconsole), - M_DEVBUF,M_NOWAIT ); - - bzero ( (char *)new, sizeof(struct vconsole) ); - *new = *vc; - new->number = num; - new->next = vconsole_head; - new->tp = vc->tp; /* Implied */ - new->data=0; - new->t_scrolledback=0; - new->r_scrolledback=0; - new->r_data=0; - new->flags=LOSSY; - new->vtty = 0; - vconsole_head = new; - new->R_INIT ( new ); - new->SPAWN ( new ); - new->data = 0; - /*new->charmap = 0;*/ - new->flags=LOSSY; - new->proc = curproc; - new->vtty = 0; - return new; -} - -static struct vconsole * -vconsole_spawn(dev, vc) - dev_t dev; - struct vconsole *vc; -{ - struct vconsole *new; - register int num = minor(dev); - - if ( find_vc ( dev ) != 0 ) - return 0; - - MALLOC(new, struct vconsole *, sizeof(struct vconsole), - M_DEVBUF, M_NOWAIT ); - - bzero ( (char *)new, sizeof(struct vconsole) ); - *new = *vc; - new->number = num; - new->next = vconsole_head; - new->tp=NULL; - new->opened=0; - new->data=0; - new->t_scrolledback=0; - new->r_scrolledback=0; - new->r_data=0; - new->vtty = 1; - vconsole_head = new; - new->R_INIT ( new ); - new->FLASH ( new, 1 ); - new->CURSOR_FLASH ( new, 1 ); - new->SPAWN ( new ); - new->vtty = 1; - - MALLOC (new->charmap, int *, sizeof(int)*((new->xchars)*(new->ychars)), - M_DEVBUF, M_NOWAIT ); - - if (new->charmap==0) - return 0; - { - int counter=0; - for ( counter=0; counter<((new->xchars)*(new->ychars)); counter++ ) - (new->charmap)[counter]=' '; - } - new->TERM_INIT ( new ); - new->proc = curproc; - return new; -} - -void -vconsole_addcharmap(vc) - struct vconsole *vc; -{ - int counter=0; - - MALLOC (vc->charmap, int *, sizeof(int)*((vc->xchars)*(vc->ychars)), - M_DEVBUF, M_NOWAIT ); - for ( counter=0; counter<((vc->xchars)*(vc->ychars)); counter++ ) - (vc->charmap)[counter]=' '; -} - -int -physconopen(dev, flag, mode, p) - dev_t dev; - int flag; - int mode; - struct proc *p; -{ - struct vconsole *new; - - struct vconsole *vc; - int unit = minor(dev); - int found=0; - int majorhack=0; - int ret; - - /* - * To allow the raw consoles a permanat hook for ioctls - * Spawning another virtual console will actuall configure it - */ - - if ( unit >= NVT ) { - if ( find_vc(dev)==0 ) - return ENXIO; - } -/* - if (unit >= rpc_cd.cd_ndevs || !rpc_cd.cd_devs[unit]) - return ENXIO; -*/ - - /* If this virtual console is the real virtual console and hasn't got */ - /* a charmap then to allocate it one. We can be sure addcharmap works */ - /* here since this is the open routine. This is incase the console */ - /* was initialised before the system was brought up */ - - if ((unit==0)&&(vconsole_master->charmap==0)) { - if (vconsole_master==vconsole_current) - majorhack=1; - vconsole_addcharmap ( vconsole_master ); - vconsole_master->flags &= ~LOSSY; - } - - /* Check to see if this console has already been spawned */ - - for ( vc = vconsole_head; vc!=NULL; vc=vc->next ) { - if ( vc->number == unit ) { - found=1; - break; - } - } - - /* Sanity check. If we have no default console, set it to the master one */ - - if ( vconsole_default==0 ) - vconsole_default = vconsole_master; - - /* Ensure we have a vconsole structure. Allocate one if we dont already */ - - if (found==0) - new = vconsole_spawn ( dev, vconsole_default ); - else - new = vc; - - new->proc = p; - - /* Initialise the terminal subsystem for this device */ - -#define TP (new->tp) - - if (TP == NULL) - TP = ttymalloc(); - - physcon_tty[unit] = TP; - - TP->t_oproc = physconstart; - TP->t_param = physconparam; - TP->t_dev = dev; - if ((TP->t_state & TS_ISOPEN) == 0) { - TP->t_state |= TS_WOPEN; - ttychars(TP); - TP->t_iflag = TTYDEF_IFLAG; - TP->t_oflag = TTYDEF_OFLAG; - TP->t_cflag = TTYDEF_CFLAG; - TP->t_lflag = TTYDEF_LFLAG; - TP->t_ispeed = TP->t_ospeed = TTYDEF_SPEED; - physconparam(TP, &TP->t_termios); - ttsetwater(TP); - } else if (TP->t_state&TS_XCLUDE && p->p_ucred->cr_uid != 0) - return EBUSY; - TP->t_state |= TS_CARR_ON; - - new->opened=1; - - TP->t_winsize.ws_col = new->xchars; - TP->t_winsize.ws_row = new->ychars; - ret = ((*linesw[TP->t_line].l_open)(dev, TP)); - - if ( majorhack==1 ) { - struct vconsole *vc_store; - int counter; - int end; - int lines; - int xs; - - end = msgbufp->msg_bufx-1; - if (end>=MSG_BSIZE) end-=MSG_BSIZE; - - /* - * Try some cute things. Count the number of lines in the msgbuf - * then scroll the real screen up, just to fit the msgbuf on the - * screen, then sink all output, and spew the msgbuf to the - * new consoles charmap! - */ - - lines = 0; xs=0; - - for (counter=0;counter<end;counter++) { - xs++; - if (*((msgbufp->msg_bufc)+counter)==0x0a) { - if (xs>vc->xchars) lines++; - lines++; - xs=0; - } - } - - if ( lines < vc->ychars ) { - counter=vc->ycur; - while ( (counter--) > lines ) - new->PUTSTRING ( "\x0a", 1, new ); - } - - new->SLEEP(new); - - vc_store = vconsole_current; - vconsole_current = 0; /* !!! */ - - /* HAHA, cant do this */ - /* new->CLS ( new ); */ - - new->PUTSTRING ( "\x0c", 1, new ); - - /* - * Hmmm, I could really pass the whole damn thing to putstring - * since it doesn't have zeros, but I need to do the crlf - * conversion - */ - - xs=0; - - if ( end < 0 ) - panic ( "msgbuf trashed reboot and try again" ); - - for (counter=0;counter<end;counter++) { - if (*((msgbufp->msg_bufc)+counter)==0x0a) { - new->PUTSTRING ( "\x0d", 1, new ); - xs=0; - } - if ( (xs++)<new->xchars ) - new->PUTSTRING ((msgbufp->msg_bufc)+counter, 1, new ); - } - vconsole_master->ycur = lines; - vconsole_current = vc_store; - new->WAKE(new); - vconsole_current->xcur = 0; - - printf ( "\x0a" ); - } - - return(ret); -} - -/* - * int physconclose(dev_t dev, int flag, int mode, struct proc *p) - * - * Close the physical console - */ - -int -physconclose(dev, flag, mode, p) - dev_t dev; - int flag; - int mode; - struct proc *p; -{ - register struct tty *tp; - - tp = find_tp ( dev ); - if (tp == NULL) { - printf("physconclose: tp=0 dev=%04x\n", dev); - return(ENXIO); - } - (*linesw[tp->t_line].l_close)(tp, flag); - ttyclose(tp); - - return(0); -} - -int -physconread(dev, uio, flag) - dev_t dev; - struct uio *uio; - int flag; -{ - register struct tty *tp = find_tp ( dev ); - if (tp == NULL) { - printf("physconread: tp=0 dev=%04x\n", dev); - return(ENXIO); - } - return ((*linesw[tp->t_line].l_read)(tp, uio, flag)); -} - -int -physconwrite(dev, uio, flag) - dev_t dev; - struct uio *uio; - int flag; -{ - register struct tty *tp; - - tp = find_tp(dev); - - if (tp == NULL) { - printf("physconwrite: tp=0 dev=%04x\n", dev); - return(ENXIO); - } - - return((*linesw[tp->t_line].l_write)(tp, uio, flag)); -} - -struct tty * -physcontty(dev) - dev_t dev; -{ - return(find_tp(dev)); -} - -int ioctlconsolebug; - -int -physconioctl(dev, cmd, data, flag, p) - dev_t dev; - int cmd; - caddr_t data; - int flag; - struct proc *p; -{ - struct vconsole vconsole_new; - struct tty *tp=(struct tty *)0xDEADDEAD ; - int error; - int s; - struct vconsole *vc = find_vc(dev); - - ioctlconsolebug = cmd; - - tp = find_tp(dev); - - if ((vc==0)||(tp==0)) - return ENXIO; - - switch ( cmd ) { - case CONSOLE_SWITCHUP: - physcon_switchup (); - return 0; - case CONSOLE_SWITCHDOWN: - physcon_switchdown (); - return 0; - case CONSOLE_SWITCHTO: - if (!physcon_switch ( *(int *)data )) - return 0; - else - return EINVAL; - case CONSOLE_SWITCHPREV: - physcon_switch ( lastconsole ); - return 0; - case CONSOLE_CREATE: - if ( vconsole_spawn ( makedev ( physcon_major, *(int *)data ), - vconsole_default ) == 0 ) - return ENOMEM; - else - return 0; - break; - - case CONSOLE_RENDERTYPE: - strncpy ( (char *)data, vc->T_NAME, 20 ); - return 0; - - case CONSOLE_TERMTYPE: - strncpy ( (char *)data, vc->T_NAME, 20 ); - return 0; - - case CONSOLE_LOCK: - s = spltty(); - locked++; - (void)splx(s); - return 0; - case CONSOLE_UNLOCK: - s = spltty(); - locked--; - if ( locked<0 ) - locked=0; - (void)splx(s); - return 0; - case CONSOLE_SPAWN_VIDC: -/* - vconsole_new = *vconsole_default; -*/ - vconsole_new = *vc; - vconsole_new.render_engine = &vidcconsole; - if ( vconsole_spawn_re ( - makedev ( physcon_major, *(int *)data ), - &vconsole_new ) == 0 ) - return ENOMEM; - else - return 0; - - case CONSOLE_GETVC: - { -/* struct vconsole *vc_p; - vc_p = find_vc(dev); - *(int *)data = vc_p->number;*/ - *(int *)data = vconsole_current->number; - return 0; - } - - case CONSOLE_CURSORFLASHRATE: - vc->CURSORFLASHRATE ( vc, *(int *)data ); - return 0; - - case CONSOLE_BLANKTIME: - vconsole_blankinit = *(int *)data; - return 0; - - case CONSOLE_DEBUGPRINT: - { - struct vconsole *vc_p; - - vc_p = find_vc(makedev(physcon_major,*(int*)data)); - if (vc_p==0) return EINVAL; - printf ( "DEBUGPRINT for console %d\n", *(int*)data ); - printf ( "flags %08x vtty %01x\n", vc_p->flags, vc_p->vtty ); - printf ( "TTY INFO - winsize (%d, %d)\n", - vc_p->tp->t_winsize.ws_col, - vc_p->tp->t_winsize.ws_row); - vc_p->R_DEBUGPRINT ( vc_p ); - vc_p->T_DEBUGPRINT ( vc_p ); - return 0; - } - - default: - error = vc->IOCTL ( vc, dev, cmd, data, flag, p ); - if ( error >=0 ) - return error; - error = (*linesw[tp->t_line].l_ioctl)(tp, cmd, data, flag, p); - if (error >= 0) - return error; - error = ttioctl(tp, cmd, data, flag, p); - if (error >= 0) - return error; - } - return(ENOTTY); -} - -int -physconmmap(dev, offset, nprot) - dev_t dev; - int offset; - int nprot; -{ - struct vconsole *vc = find_vc(dev); - u_int physaddr; - - if (minor(dev) < 64) { - log(LOG_WARNING, "You should no longer use ttyv to mmap a frame buffer\n"); - log(LOG_WARNING, "For vidc use /dev/vidcvideo0\n"); - } - physaddr = vc->MMAP(vc, offset, nprot); - return(physaddr); -} - -/* - * Perform output on specified tty stream - */ - -void -physconstart(tp) - struct tty *tp; -{ - int s, len; - struct clist *cl; - struct vconsole *vc; - u_char buf[128]; - - s = spltty(); - - vc = find_vc ( tp->t_dev ); - - /* Are we ready to perform output */ - - if (tp->t_state & (TS_TIMEOUT | TS_BUSY | TS_TTSTOP)) { - (void)splx(s); - return; - } - - tp->t_state |= TS_BUSY; - - /* Fill our buffer with the data to print */ - - cl = &tp->t_outq; - - if ( vc->r_scrolledback ) vc->R_SCROLLBACKEND ( vc ); - if ( vc->t_scrolledback ) vc->T_SCROLLBACKEND ( vc ); - - (void)splx(s); - - /* Apparently we do this out of spl since it _IS_ fairly expensive */ - /* and it stops the serial ports overflowing */ - - while ( (len = q_to_b(cl, buf, 128)) ) { - if ( vc!=NULL ) - vc->PUTSTRING(buf, len, vc); - } - - s = spltty (); - - tp->t_state &= ~TS_BUSY; - - if (cl->c_cc) { - tp->t_state |= TS_TIMEOUT; - timeout_add(&tp->t_rstrt_to, 1); - } - - if (cl->c_cc <= tp->t_lowat) { - if (tp->t_state & TS_ASLEEP) { - tp->t_state &= ~TS_ASLEEP; - wakeup(cl); - } - selwakeup(&tp->t_wsel); - } - - if ( want_switch != -1 ) { - physcon_switch ( want_switch ); - want_switch=-1; - } - - (void)splx(s); -} - -int -physconparam(tp, t) - struct tty *tp; - struct termios *t; -{ - tp->t_ispeed = t->c_ispeed; - tp->t_ospeed = t->c_ospeed; - tp->t_cflag = t->c_cflag; - return(0); -} - -void -physconstop(tp, flag) - struct tty *tp; - int flag; -{ - /* Nothing necessary */ -} - -int -physconkbd(key) - int key; -{ - char *string; - register struct tty *tp; - int s; - - s = spltty(); - - tp = vconsole_current->tp; - - if (tp == NULL) return(1); - - if ((tp->t_state & TS_ISOPEN) == 0) { - (void)splx(s); - return(1); - } - - if (key < 0x100) - (*linesw[tp->t_line].l_rint)(key, tp); - else { - switch (key) { - case 0x100: - string = "\x1b[A"; - break; - case 0x101: - string = "\x1b[B"; - break; - case 0x102: - string = "\x1b[D"; - break; - case 0x103: - string = "\x1b[C"; - break; - case 0x104: - string = "\x1b[6~"; - break; - case 0x105: - string = "\x1b[5~"; - break; - case 0x108: - string = "\x1b[2~"; - break; - case 0x109: - string = "\x7f"; - break; - default: - string = ""; - break; - } - while (*string != 0) { - (*linesw[tp->t_line].l_rint)(*string, tp); - ++string; - } - } - (void)splx(s); - return(0); -} - -static int physconinit_called = 0; - -void -physconinit(cp) - struct consdev *cp; -{ - int *test; - int counter; - - /* - * Incase we're called more than once. All routines below here - * undergo once time initialisation - */ - - if ( physconinit_called ) - return; - - physconinit_called=1; - - locked=0; - - physcon_major = major ( cp->cn_dev ); - - /* - * Create the master console - */ - - vconsole_master->next = NULL; - vconsole_master->number = 0; - vconsole_master->opened = 1; - vconsole_master->tp = NULL; - - /* - * Right, here I can choose some render routines - */ - - vconsole_master->render_engine = &vidcconsole; - vconsole_master->terminal_emulator = &vt220; - - /* - * We will very soon loose the master console, and number 0 will - * become the current console so as not to waste a struct vconsole - */ - vconsole_current = vconsole_head = vconsole_master; - vconsole_master->data = NULL; - vconsole_master->vtty = 1; - - /* - * Perform initial checking - */ - - if ( vconsole_master->terminal_emulator->name == 0 ) - vconsole_master->terminal_emulator->name = undefined_string; - if ( vconsole_master->render_engine->name == 0 ) - vconsole_master->render_engine->name = undefined_string; - - /* - * Right, I have to assume the init and print procedures are ok - * or there's nothing else that can be done - */ - - vconsole_master->R_INIT ( vconsole_master); - vconsole_master->SPAWN ( vconsole_master ); - vconsole_master->TERM_INIT (vconsole_master); - vconsole_master->flags = LOSSY; - - /* - * Now I can do some productive verification - */ - - /* Ensure there are no zeros in the termulation and render_engine */ - - test = (int *) vconsole_master->render_engine; - for ( counter=0; counter<(sizeof(struct render_engine)/4)-1; counter++ ) - if (test[counter]==0) - panic ( "Render engine %i is missins a routine", - vconsole_master->render_engine->name ); - - test = (int *) vconsole_master->terminal_emulator; - for ( counter=0; counter<(sizeof(struct terminal_emulator)/4)-1; counter++ ) - if (test[counter]==0) - panic ( "Render engine %i is missing a routine", - vconsole_master->terminal_emulator->name ); -} - -/* - * void physconputstring(char *string, int length) - * - * Render a string on the physical console - */ - -void -physconputstring(string, length) - char *string; - int length; -{ - vconsole_current->PUTSTRING(string, length, vconsole_current); -} - -/* - * void physcongetchar(void) - * - * Get a character from the physical console - */ - -int getkey_polled __P(()); - -char -physcongetchar(void) -{ - return(getkey_polled()); -} - -void -consinit(void) -{ - static int consinit_called = 0; - - if (consinit_called != 0) - return; - - consinit_called = 1; - cninit(); - -/* Ok get our start up message in early ! */ - - printf("\x0cRiscBSD booting...\n%s\n", version); -} - -void -rpcconsolecnprobe(cp) - struct consdev *cp; -{ - int major; - -/* printf("rpcconsoleprobe: pc=%08x\n", cp);*/ - -/* - * Locate the major number for the physical console device - * We do this by searching the character device list until we find - * the device with the open function for the physical console - */ - - for (major = 0; major < nchrdev; ++major) { - if (cdevsw[major].d_open == physconopen) - break; - } - -/* Initialise the required fields */ - - cp->cn_dev = makedev(major, 0); - cp->cn_pri = CN_INTERNAL; -} - -#define RPC_BUF_LEN (64) -char rpc_buf[RPC_BUF_LEN]; -int rpc_buf_ptr = 0; - -#define RPC_BUF_FLUSH \ -{ \ - vconsole_current->PUTSTRING ( rpc_buf, rpc_buf_ptr, vconsole_current ); \ - rpc_buf_ptr=0; \ -} - -void -rpcconsolecninit(cp) - struct consdev *cp; -{ - physconinit(cp); /* woo Woo WOO!!!, woo, woo, yes ok bye */ -} - -void -rpcconsolecnputc(dev, character) - dev_t dev; - char character; -{ - extern int cold; - - if (( rpc_buf_ptr==RPC_BUF_LEN ) || (cold==0) ) - RPC_BUF_FLUSH - - rpc_buf[rpc_buf_ptr++] = character; - - if ((character == 0x0a )||(character==0x0d)||(character=='.')) - RPC_BUF_FLUSH -} - -int -console_switchdown() -{ - physcon_switchdown (); - return 0; -} - -int -console_switchup() -{ - physcon_switchup (); - return 0; -} - -int -console_unblank() -{ - vconsole_blankcounter = vconsole_blankinit; - vconsole_current->BLANK ( vconsole_current, BLANK_NONE ); - return 0; -} - -int -console_scrollback () -{ - if (vconsole_current==NULL) - return 0; - if ( vconsole_current->R_SCROLLBACK(vconsole_current) ==-1 ) { - if ( vconsole_current->T_SCROLLBACK(vconsole_current)==-1 ) { - } - } - return 0; -} - -int -console_scrollforward () -{ - if (vconsole_current==NULL) - return 0; - if ( vconsole_current->R_SCROLLFORWARD(vconsole_current) ==-1 ) { - if ( vconsole_current->T_SCROLLFORWARD(vconsole_current)==-1 ) { - } - } - return 0; -} - -int -console_switchlast () -{ - return (physcon_switch ( lastconsole )); -} - -int -physcon_switchdown () -{ - int start; - int next = (vconsole_current->number); - start=next; - do { - next--; - next = next&0xff; - if (next==start) return 0; - } while (physcon_switch ( next )); - return 0; -} - -int -physcon_switchup () -{ - int start; - int next = (vconsole_current->number); - start=next; - do { - next++; - next = next&0xff; - if (next==start) return 0; - } while (physcon_switch ( next )); - return 0; -} - -void -console_switch(number) - u_int number; -{ - physcon_switch ( number ); -} - -/* switchto */ -int -physcon_switch(number) - u_int number; -{ - register struct vconsole *vc; - int s = spltty (); - int ret; - - if ( locked!=0 ) { - ret=0; - goto out; - } - - if ( printing ) { - want_switch = number; - ret=0; - goto out; - } - - vc = find_vc ( makedev ( physcon_major, number ) ); - - if ( vc==0 ) { - ret = 1; - goto out; - } - - if ( vc==vconsole_current ) { - ret = 1; - goto out; - } - - /* Point of no return */ - - locked++; /* We cannot reenter this routine now */ - - /* De-activate the render engine functions */ - if ( vconsole_current->vtty==1 ) { - vconsole_current->SLEEP(vconsole_current); - vconsole_current->FLASH ( vc, 0 ); - vconsole_current->CURSOR_FLASH ( vc, 0 ); - } - - /* Swap in the new consoles state */ - - lastconsole = vconsole_current->number; - vconsole_current=vc; - vconsole_current->R_SWAPIN ( vc ); - - /* Re-activate the render engine functions */ - - if ( vconsole_current->vtty==1 ) { - vconsole_current->T_SWAPIN ( vc ); - vconsole_current->WAKE(vconsole_current); - vconsole_current->FLASH ( vc, 1 ); - vconsole_current->CURSOR_FLASH ( vc, 1 ); - } - - locked--; - - /* Tell the process about the switch, like the X server */ - - if ( vc->proc ) - psignal ( vc->proc, SIGIO ); - - ret = 0; -out: - (void)splx(s); - return(ret); -} - -char -rpcconsolecngetc(dev) - dev_t dev; -{ - return( physcongetchar () ); -} - -void -rpcconsolecnpollc(dev, on) - dev_t dev; - int on; -{ - RPC_BUF_FLUSH -} - -int -rpcprobe(parent, match, aux) - struct device *parent; - void *match; - void *aux; -{ - return(1); -} - -void -rpcattach(parent, self, aux) - struct device *parent; - struct device *self; - void *aux; -{ - printf(" riscbsd generic console driver %susing %s %s\n", - CONSOLE_VERSION, vconsole_master->terminal_emulator->name, - vconsole_master->render_engine->name); - - vconsole_master->T_ATTACH(vconsole_master, parent, self, aux); - vconsole_master->R_ATTACH(vconsole_master, parent, self, aux); -} - -/* -struct cfattach rpc_ca = { - sizeof(struct device), rpcprobe, rpcattach -}; - -struct cfdriver rpc_cd = { - NULL, "rpc", DV_TTY -}; -*/ - -struct cfattach vt_ca = { - sizeof(struct device), rpcprobe, rpcattach -}; - -struct cfdriver vt_cd = { - NULL, "rpc", DV_TTY -}; - -extern struct terminal_emulator vt220; - -struct render_engine *render_engine_tab[] = { - &vidcconsole, -}; - -struct terminal_emulator *terminal_emulator_tab[] = { - &vt220, -}; diff --git a/sys/arch/arm32/dev/console/debugconsole.c b/sys/arch/arm32/dev/console/debugconsole.c deleted file mode 100644 index 2fc947b4c2c..00000000000 --- a/sys/arch/arm32/dev/console/debugconsole.c +++ /dev/null @@ -1,88 +0,0 @@ -/* $NetBSD: debugconsole.c,v 1.2 1996/03/18 19:33:04 mark Exp $ */ - -/* - * Copyright (c) 1994-1995 Melvyn Tang-Richardson - * Copyright (c) 1994-1995 RiscBSD kernel team - * 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 RiscBSD kernel team - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE RISCBSD TEAM ``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 AUTHORS 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. - * - * RiscBSD kernel project - * - * debugconsole.c - * - * Console functions - * - * Created : 17/09/94 - */ - -#ifdef DEBUGTERM - -#include <sys/types.h> -#include <sys/param.h> -#include <sys/tty.h> -#include <machine/stdarg.h> -#include <machine/vconsole.h> - -#define TOTTY 0x02 - -/* - * This code allows the kernel developer to have a 'nice' virtual - * console for debugging information. - * - * It is more useful than say, printf since the output is - * - * a) isolated - * - */ - -struct vconsole *debug_vc=0; -struct tty *debug_tty=0; - -void -dprintf(fmt, va_alist) - char *fmt; -{ - if ( debug_vc==0 ) - return; - - dumb_putstring ( fmt, strlen(fmt), debug_vc ); -/* - va_list *ap; - - if ( debug_tty == NULL ) - return; - - va_start(ap, fmt); - kprintf(fmt, TOTTY, debug_tty, ap); - va_end(ap); -*/ -} - -#endif - diff --git a/sys/arch/arm32/dev/console/dumb.c b/sys/arch/arm32/dev/console/dumb.c deleted file mode 100644 index 40396cbf70b..00000000000 --- a/sys/arch/arm32/dev/console/dumb.c +++ /dev/null @@ -1,146 +0,0 @@ -/* $NetBSD: dumb.c,v 1.2 1996/03/18 19:33:05 mark Exp $ */ - -/* - * Copyright (c) 1994-1995 Melvyn Tang-Richardson - * Copyright (c) 1994-1995 RiscBSD kernel team - * 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 RiscBSD kernel team - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE RISCBSD TEAM ``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 AUTHORS 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. - * - * RiscBSD kernel project - * - * dumb.c - * - * Console functions - * - * Created : 17/09/94 - */ - -#include <sys/cdefs.h> -#include <sys/types.h> -#include <sys/param.h> -#include <sys/malloc.h> -#include <sys/device.h> -#include <machine/param.h> -#include <machine/katelib.h> -#include <machine/cpu.h> -#include <machine/bootconfig.h> -#include <machine/iomd.h> -#include <machine/vidc.h> -#include <machine/vconsole.h> - -#define TERMTYPE_PUTSTRING dumb_putstring -#define TERMTYPE_INIT dumb_init - -int -TERMTYPE_INIT(vc) - struct vconsole *vc; -{ - /* This dumb termial is so dumb it requires very little init */ - return 0; -} - -static void -do_scrollup(vc) - struct vconsole *vc; -{ - - if (vc==vconsole_current) - vc->SCROLLUP ( vc, 0, vc->ychars-1 ); - - vc->ycur=vc->ychars-1; - - if ( ((vc->flags)&(LOSSY)) == 0 ) { - int counter; - for ( counter=vc->xchars; counter < ((vc->ychars)*(vc->xchars)); counter++ ) { - vc->charmap[counter-vc->xchars] = vc->charmap[counter]; - } - for ( counter=vc->xchars*(vc->ychars-1); counter < (vc->xchars*vc->ychars); counter++ ) { - vc->charmap[counter]=0x20; - } - } -} - -static int -do_render(c, vc) - char c; - struct vconsole *vc; -{ - /* THE RENDER STAGE **********************************/ - if ((c>=0x20)&&(c<=0x7f)) { - if (((vc->flags)&(LOSSY))==0) { - vc->charmap[ vc->xcur + vc->ycur*vc->xchars ] = c | 7<<8; - } - - if ( vc==vconsole_current ) - vc->RENDER ( vc, c ); - - vc->xcur++; - } - - if ( vc->xcur >= vc->xchars ) { - vc->xcur=0; - vc->ycur++; - } - - if ( vc->ycur >= vc->ychars ) { - do_scrollup ( vc ); - vc->xcur=0; - vc->ycur=vc->ychars-1; - } -} - -int -TERMTYPE_PUTSTRING(string, length, vc) - char *string; - int length; - struct vconsole *vc; -{ - char c; - - while ( ((c=*(string++))!=0) && ((length--)>0)) { - if ((c<31)||(c>127)) c='*'; - switch (c) { - case 0x0a: - vc->ycur++; - if ( vc->ycur>=vc->ychars ) { - do_scrollup ( vc ); - vc->ycur=vc->ychars-1; - } - break; - - case 0x0d: - vc->xcur=0; - break; - - default: - do_render ( c, vc ); - break; - } - } -} diff --git a/sys/arch/arm32/dev/console/fonts/font_bold.h b/sys/arch/arm32/dev/console/fonts/font_bold.h deleted file mode 100644 index f3a792f24f5..00000000000 --- a/sys/arch/arm32/dev/console/fonts/font_bold.h +++ /dev/null @@ -1,265 +0,0 @@ -/* $OpenBSD: font_bold.h,v 1.2 2000/03/03 00:54:47 todd Exp $ */ -/* $NetBSD: font_bold.h,v 1.1 1996/01/31 23:20:07 mark Exp $ */ - -/* - * Copyright (c) 1994 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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 Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 BRINI 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. - * - * RiscBSD kernel project - * - * font_terminal14_bold.h - * - * Font for physical console driver - * - * Created : 18/09/94 - * Last updated : 15/10/94 - * - * Based on kate/display/14bold.h - * - */ - -unsigned char font_terminal_14bold_data[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x24, 0x7e, 0x7e, 0x24, 0x7e, 0x7e, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0x0c, 0x38, 0x60, 0x6c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x6c, 0x76, 0x3c, 0x30, 0x18, 0x78, 0xdc, 0x6c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x34, 0x34, 0x98, 0x7c, 0x66, 0x66, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x60, 0x30, 0x30, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x06, 0x0c, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x54, 0x38, 0xfe, 0x38, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x30, 0x30, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x66, 0x66, 0x66, 0x66, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x1c, 0x1a, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x70, 0x38, 0x1c, 0x0e, 0x66, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x60, 0x38, 0x60, 0x60, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, 0x68, 0x64, 0x66, 0xfe, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x06, 0x06, 0x3e, 0x60, 0x60, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x60, 0x60, 0x30, 0x30, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0c, 0x0c, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x18, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x60, 0x30, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x8e, 0xe6, 0xb6, 0xb6, 0xe6, 0x0e, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x66, 0x66, 0x66, 0x3e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x06, 0x06, 0x06, 0x06, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x0c, 0x0c, 0x3c, 0x0c, 0x0c, 0x0c, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x0c, 0x0c, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x06, 0x76, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc6, 0x66, 0x36, 0x1e, 0x1e, 0x36, 0x66, 0xc6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc6, 0xee, 0xfe, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x6e, 0x6e, 0x76, 0x76, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x66, 0x66, 0x66, 0x3e, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x76, 0x3c, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x66, 0x66, 0x66, 0x3e, 0x36, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x06, 0x3e, 0x7c, 0x60, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xd6, 0x7c, 0x28, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x3c, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7e, 0x60, 0x70, 0x38, 0x1c, 0x0e, 0x06, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x3c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x60, 0x7c, 0x66, 0x66, 0xfc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x06, 0x06, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x7e, 0x06, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x0c, 0x3e, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x3c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x1c, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x1e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x66, 0x36, 0x1e, 0x1e, 0x36, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0xd6, 0xd6, 0xd6, 0xd6, 0xc6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x06, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xcc, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x46, 0x3e, 0x7c, 0x62, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x3e, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x2c, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xd6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x6c, 0x38, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x3c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x70, 0x38, 0x1c, 0x0e, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x70, 0x18, 0x18, 0x30, 0x1c, 0x30, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0e, 0x18, 0x18, 0x0c, 0x38, 0x0c, 0x18, 0x18, 0x18, 0x0e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x4c, 0x7e, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0x36, 0x36, 0x76, 0x36, 0x36, 0x36, 0xfc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xd6, 0xf6, 0x16, 0xd6, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x66, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x3c, 0x66, 0x06, 0x66, 0x3c, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x78, 0x4c, 0x0c, 0x3e, 0x0c, 0x0c, 0xde, 0x7a, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x38, 0x6c, 0x6c, 0x38, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x66, 0x3c, 0x18, 0x7e, 0x18, 0x7e, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3c, 0x66, 0x0e, 0x3c, 0x66, 0x66, 0x3c, 0x70, 0x66, 0x3c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7e, 0xc3, 0xdb, 0xcb, 0xcb, 0xdb, 0xc3, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1c, 0x30, 0x3c, 0x36, 0x3c, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x6c, 0x36, 0x6c, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7e, 0x7e, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x81, 0x9d, 0xad, 0x9d, 0xad, 0x81, 0x7e, 0x3c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1c, 0x36, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1c, 0x32, 0x30, 0x1c, 0x06, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1c, 0x32, 0x18, 0x30, 0x32, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0xfe, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xfc, 0x5e, 0x5e, 0x5e, 0x5e, 0x5c, 0x58, 0x58, 0x58, 0x58, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x1c, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1c, 0x36, 0x36, 0x36, 0x1c, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x36, 0x6c, 0x36, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0c, 0x0e, 0x8c, 0x4c, 0x3e, 0x10, 0x68, 0x74, 0x6a, 0xfd, 0x60, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x0c, 0x0e, 0x8c, 0x4c, 0x3e, 0x10, 0x68, 0xd4, 0xc2, 0x61, 0x30, 0xf0, 0x00, 0x00, 0x00, - 0x00, 0x0c, 0x1e, 0x98, 0x4c, 0x38, 0x1e, 0x6c, 0x74, 0x6a, 0xfd, 0x60, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x0c, 0x46, 0x66, 0x3c, 0x00, 0x00, 0x00, - 0x00, 0x0c, 0x18, 0x00, 0x18, 0x3c, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x18, 0x00, 0x18, 0x3c, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x3c, 0x00, 0x18, 0x3c, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5c, 0x3a, 0x00, 0x18, 0x3c, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x66, 0x66, 0x00, 0x18, 0x3c, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x2c, 0x2c, 0x18, 0x18, 0x3c, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0x36, 0x36, 0x76, 0x3e, 0x36, 0x36, 0xf6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x06, 0x06, 0x06, 0x06, 0x66, 0x3c, 0x10, 0x18, 0x00, 0x00, - 0x00, 0x18, 0x30, 0x00, 0x7c, 0x0c, 0x0c, 0x3c, 0x0c, 0x0c, 0x0c, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x60, 0x30, 0x00, 0x7c, 0x0c, 0x0c, 0x3c, 0x0c, 0x0c, 0x0c, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x3c, 0x00, 0x7c, 0x0c, 0x0c, 0x3c, 0x0c, 0x0c, 0x0c, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x6c, 0x6c, 0x00, 0x7c, 0x0c, 0x0c, 0x3c, 0x0c, 0x0c, 0x0c, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0c, 0x18, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x18, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x3c, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x66, 0x66, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1c, 0x2c, 0x4c, 0x4c, 0x5e, 0x4c, 0x2c, 0x1c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5c, 0x3a, 0x00, 0x66, 0x66, 0x6e, 0x6e, 0x76, 0x76, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0c, 0x18, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x18, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x3c, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5c, 0x3a, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x66, 0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x78, 0x6c, 0x6c, 0x7c, 0x7c, 0x6c, 0x6c, 0x3c, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x0c, 0x18, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x18, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x3c, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x66, 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x18, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1e, 0x0c, 0x3c, 0x6c, 0x6c, 0x3c, 0x0c, 0x1e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x36, 0x66, 0x66, 0x66, 0x36, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x30, 0x00, 0x3c, 0x60, 0x7c, 0x66, 0x66, 0xfc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x00, 0x3c, 0x60, 0x7c, 0x66, 0x66, 0xfc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x3c, 0x00, 0x3c, 0x60, 0x7c, 0x66, 0x66, 0xfc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x58, 0x34, 0x00, 0x3c, 0x60, 0x7c, 0x66, 0x66, 0xfc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x6c, 0x6c, 0x00, 0x3c, 0x60, 0x7c, 0x66, 0x66, 0xfc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3c, 0x6e, 0x3c, 0x00, 0x3c, 0x60, 0x7c, 0x66, 0x66, 0xdc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xb2, 0xfc, 0x36, 0xb6, 0x6c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x06, 0x06, 0x66, 0x3c, 0x10, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0c, 0x18, 0x00, 0x3c, 0x66, 0x7e, 0x06, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x00, 0x3c, 0x66, 0x7e, 0x06, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x3c, 0x00, 0x3c, 0x66, 0x7e, 0x06, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0x3c, 0x66, 0x7e, 0x06, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0c, 0x18, 0x00, 0x1c, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x00, 0x1c, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x3c, 0x00, 0x1c, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x36, 0x36, 0x00, 0x1c, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x24, 0x18, 0x1c, 0x30, 0x7c, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x5c, 0x3a, 0x00, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0c, 0x18, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x3c, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x5c, 0x3a, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7e, 0x7e, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x6c, 0x7c, 0x7c, 0x6c, 0x3a, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0c, 0x18, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x3c, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x18, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x66, 0x3c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x0c, 0x3c, 0x6c, 0x6c, 0x6c, 0x6c, 0x3c, 0x0c, 0x0c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x66, 0x3c, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, - 0x00, 0x00, 0x00, 0x08, 0x1c, 0x2a, 0x49, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x49, 0x2a, 0x1c, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x02, 0xff, 0x02, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x40, 0xff, 0x40, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -font_struct font_terminal_14bold = { - 199, - 1, - 16, - 8, - 16, - 8, - 16, - 3184, - font_terminal_14bold_data -}; - -/* End of font14bold.h */ diff --git a/sys/arch/arm32/dev/console/fonts/font_italic.h b/sys/arch/arm32/dev/console/fonts/font_italic.h deleted file mode 100644 index dd9b00dedbe..00000000000 --- a/sys/arch/arm32/dev/console/fonts/font_italic.h +++ /dev/null @@ -1,265 +0,0 @@ -/* $OpenBSD: font_italic.h,v 1.2 2000/03/03 00:54:47 todd Exp $ */ -/* $NetBSD: font_italic.h,v 1.1 1996/01/31 23:20:13 mark Exp $ */ - -/* - * Copyright (c) 1994 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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 Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 BRINI 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. - * - * RiscBSD kernel project - * - * font_terminal14_italic.h - * - * Font for physical console driver - * - * Created : 18/09/94 - * Last updated : 15/10/94 - * - * Based on kate/display/14norm.h - * - */ - -unsigned char font_terminal_14italic_data[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x24, 0x24, 0x7e, 0x24, 0x7e, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x54, 0x18, 0x30, 0x54, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x24, 0x3a, 0x14, 0x10, 0x08, 0x28, 0x54, 0x24, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x14, 0x08, 0x54, 0x22, 0x22, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x08, 0x08, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x54, 0x38, 0x38, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x7c, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x18, 0x14, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x40, 0x20, 0x18, 0x04, 0x02, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x40, 0x38, 0x40, 0x40, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x30, 0x28, 0x24, 0x22, 0x7e, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7e, 0x02, 0x02, 0x3e, 0x42, 0x40, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x38, 0x04, 0x02, 0x3e, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7e, 0x40, 0x20, 0x10, 0x08, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x3c, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x7c, 0x40, 0x20, 0x1c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1c, 0x22, 0x20, 0x10, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x72, 0x4a, 0x4a, 0x72, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x42, 0x3e, 0x42, 0x42, 0x42, 0x3e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x02, 0x02, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x04, 0x04, 0x3c, 0x04, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x04, 0x04, 0x3c, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x72, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0x24, 0x14, 0x0c, 0x0c, 0x14, 0x24, 0x44, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x82, 0xc6, 0xaa, 0xaa, 0x92, 0x92, 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x4a, 0x4a, 0x52, 0x52, 0x62, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x42, 0x42, 0x3e, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x4a, 0x52, 0x3c, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x42, 0x42, 0x3e, 0x12, 0x22, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x3c, 0x40, 0x40, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x44, 0x44, 0x28, 0x28, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x92, 0x92, 0x92, 0x92, 0x6c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc6, 0x44, 0x28, 0x10, 0x10, 0x28, 0x44, 0xc6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7e, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x3a, 0x46, 0x42, 0x42, 0x42, 0x3e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x7e, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x70, 0x08, 0x08, 0x3c, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1c, 0x22, 0x22, 0x1c, 0x02, 0x3c, 0x42, 0x3c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x3a, 0x46, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x20, 0x00, 0x38, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x1c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x22, 0x12, 0x0e, 0x12, 0x22, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x92, 0x92, 0x92, 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x46, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x46, 0x42, 0x42, 0x42, 0x3e, 0x02, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x40, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x4c, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x3c, 0x40, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3c, 0x08, 0x08, 0x08, 0x48, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x28, 0x28, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x92, 0x92, 0x92, 0x6c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x24, 0x18, 0x18, 0x24, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x7c, 0x40, 0x42, 0x3c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x20, 0x10, 0x08, 0x04, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x08, 0x08, 0x10, 0x0c, 0x10, 0x08, 0x08, 0x08, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0c, 0x10, 0x10, 0x08, 0x30, 0x08, 0x10, 0x10, 0x10, 0x0c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x4c, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0x12, 0x12, 0x72, 0x12, 0x12, 0x12, 0xfc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x92, 0xf2, 0x12, 0x92, 0x6c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x24, 0x24, 0x00, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x38, 0x54, 0x14, 0x54, 0x38, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x48, 0x48, 0x08, 0x08, 0x3c, 0x08, 0x8c, 0x76, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0x38, 0x44, 0x44, 0x44, 0x38, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x28, 0x7c, 0x10, 0x7c, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x44, 0x04, 0x38, 0x44, 0x44, 0x38, 0x40, 0x44, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x82, 0xb2, 0x8a, 0x8a, 0xb2, 0x82, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0c, 0x10, 0x1c, 0x12, 0x1c, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x24, 0x12, 0x24, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7e, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x82, 0x9a, 0xaa, 0x9a, 0xaa, 0x82, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x7c, 0x10, 0x10, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x10, 0x08, 0x04, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x10, 0x20, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x24, 0x24, 0x12, 0x12, 0x6d, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7c, 0x2e, 0x2e, 0x2e, 0x2c, 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x0c, 0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0c, 0x12, 0x12, 0x12, 0x0c, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x24, 0x48, 0x24, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x06, 0x44, 0x24, 0x1e, 0x48, 0x64, 0x52, 0xf8, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x06, 0x44, 0x24, 0x1e, 0x68, 0x94, 0x42, 0x20, 0xf0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0c, 0x12, 0x08, 0x52, 0x2c, 0x50, 0x68, 0x54, 0xfa, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x08, 0x04, 0x44, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x10, 0x00, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x08, 0x00, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x24, 0x00, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4c, 0x32, 0x00, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x24, 0x24, 0x00, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf8, 0x14, 0x14, 0x72, 0x1e, 0x12, 0x12, 0xf2, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x02, 0x02, 0x02, 0x42, 0x3c, 0x10, 0x08, 0x00, 0x00, - 0x00, 0x08, 0x10, 0x00, 0x7c, 0x04, 0x04, 0x3c, 0x04, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x10, 0x00, 0x7c, 0x04, 0x04, 0x3c, 0x04, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x48, 0x00, 0x7c, 0x04, 0x04, 0x3c, 0x04, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x28, 0x28, 0x00, 0x7c, 0x04, 0x04, 0x3c, 0x04, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x10, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x10, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x28, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x28, 0x28, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x38, 0x48, 0x48, 0x48, 0x5c, 0x48, 0x48, 0x38, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4c, 0x32, 0x00, 0x42, 0x46, 0x4a, 0x4a, 0x52, 0x52, 0x62, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x10, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x08, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x24, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4c, 0x32, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x24, 0x24, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xbc, 0x42, 0x62, 0x52, 0x52, 0x4a, 0x46, 0x3e, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x10, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x08, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x24, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x24, 0x24, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x08, 0x00, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0e, 0x04, 0x3c, 0x44, 0x44, 0x3c, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x44, 0x26, 0x44, 0x44, 0x44, 0x34, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x24, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x58, 0x34, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x48, 0x48, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x44, 0x38, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x90, 0xfc, 0x12, 0x92, 0x6c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x02, 0x42, 0x3c, 0x08, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x3c, 0x42, 0x7e, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0x3c, 0x42, 0x7e, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x24, 0x00, 0x3c, 0x42, 0x7e, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x24, 0x00, 0x3c, 0x42, 0x7e, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x24, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x28, 0x28, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x12, 0x0c, 0x0c, 0x12, 0x3c, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x58, 0x34, 0x00, 0x3a, 0x46, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x24, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x58, 0x34, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x24, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x7c, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7c, 0x62, 0x52, 0x4a, 0x46, 0x3e, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x24, 0x00, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x24, 0x00, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0xc6, 0x44, 0x44, 0x28, 0x30, 0x10, 0x12, 0x0c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x04, 0x3c, 0x44, 0x44, 0x3c, 0x04, 0x0e, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x28, 0x28, 0x00, 0xc6, 0x44, 0x44, 0x28, 0x28, 0x10, 0x12, 0x0c, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, - 0x00, 0x00, 0x00, 0x08, 0x1c, 0x2a, 0x49, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x49, 0x2a, 0x1c, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x02, 0xff, 0x02, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x40, 0xff, 0x40, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -font_struct font_terminal_14italic = { - 199, - 1, - 16, - 8, - 16, - 8, - 16, - 3184, - font_terminal_14italic_data -}; - -/* End of font14norm.h */ diff --git a/sys/arch/arm32/dev/console/fonts/font_normal.h b/sys/arch/arm32/dev/console/fonts/font_normal.h deleted file mode 100644 index dfe8c017061..00000000000 --- a/sys/arch/arm32/dev/console/fonts/font_normal.h +++ /dev/null @@ -1,265 +0,0 @@ -/* $OpenBSD: font_normal.h,v 1.2 2000/03/03 00:54:48 todd Exp $ */ -/* $NetBSD: font_normal.h,v 1.1 1996/01/31 23:20:16 mark Exp $ */ - -/* - * Copyright (c) 1994 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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 Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 BRINI 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. - * - * RiscBSD kernel project - * - * font_terminal14_normal.h - * - * Font for physical console driver - * - * Created : 18/09/94 - * Last updated : 15/10/94 - * - * Based on kate/display/14norm.h - * - */ - -unsigned char font_terminal_14normal_data[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x24, 0x24, 0x7e, 0x24, 0x7e, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x54, 0x18, 0x30, 0x54, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x24, 0x3a, 0x14, 0x10, 0x08, 0x28, 0x54, 0x24, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x14, 0x08, 0x54, 0x22, 0x22, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x08, 0x08, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x54, 0x38, 0x38, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x7c, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x18, 0x14, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x40, 0x20, 0x18, 0x04, 0x02, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x40, 0x38, 0x40, 0x40, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x30, 0x28, 0x24, 0x22, 0x7e, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7e, 0x02, 0x02, 0x3e, 0x42, 0x40, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x38, 0x04, 0x02, 0x3e, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7e, 0x40, 0x20, 0x10, 0x08, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x3c, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x7c, 0x40, 0x20, 0x1c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1c, 0x22, 0x20, 0x10, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x72, 0x4a, 0x4a, 0x72, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x42, 0x3e, 0x42, 0x42, 0x42, 0x3e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x02, 0x02, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x04, 0x04, 0x3c, 0x04, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x04, 0x04, 0x3c, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x72, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0x24, 0x14, 0x0c, 0x0c, 0x14, 0x24, 0x44, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x82, 0xc6, 0xaa, 0xaa, 0x92, 0x92, 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x4a, 0x4a, 0x52, 0x52, 0x62, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x42, 0x42, 0x3e, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x4a, 0x52, 0x3c, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x42, 0x42, 0x3e, 0x12, 0x22, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x3c, 0x40, 0x40, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x44, 0x44, 0x28, 0x28, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x92, 0x92, 0x92, 0x92, 0x6c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc6, 0x44, 0x28, 0x10, 0x10, 0x28, 0x44, 0xc6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7e, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x3a, 0x46, 0x42, 0x42, 0x42, 0x3e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x7e, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x70, 0x08, 0x08, 0x3c, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1c, 0x22, 0x22, 0x1c, 0x02, 0x3c, 0x42, 0x3c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x3a, 0x46, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x20, 0x00, 0x38, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x1c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x22, 0x12, 0x0e, 0x12, 0x22, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x92, 0x92, 0x92, 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x46, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x46, 0x42, 0x42, 0x42, 0x3e, 0x02, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x40, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x4c, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x3c, 0x40, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3c, 0x08, 0x08, 0x08, 0x48, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x28, 0x28, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x92, 0x92, 0x92, 0x6c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x24, 0x18, 0x18, 0x24, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x7c, 0x40, 0x42, 0x3c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x20, 0x10, 0x08, 0x04, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x08, 0x08, 0x10, 0x0c, 0x10, 0x08, 0x08, 0x08, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0c, 0x10, 0x10, 0x08, 0x30, 0x08, 0x10, 0x10, 0x10, 0x0c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x4c, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0x12, 0x12, 0x72, 0x12, 0x12, 0x12, 0xfc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x92, 0xf2, 0x12, 0x92, 0x6c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x24, 0x24, 0x00, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x38, 0x54, 0x14, 0x54, 0x38, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x48, 0x48, 0x08, 0x08, 0x3c, 0x08, 0x8c, 0x76, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0x38, 0x44, 0x44, 0x44, 0x38, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x28, 0x7c, 0x10, 0x7c, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x44, 0x04, 0x38, 0x44, 0x44, 0x38, 0x40, 0x44, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x82, 0xb2, 0x8a, 0x8a, 0xb2, 0x82, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0c, 0x10, 0x1c, 0x12, 0x1c, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x24, 0x12, 0x24, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7e, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x82, 0x9a, 0xaa, 0x9a, 0xaa, 0x82, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x7c, 0x10, 0x10, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x10, 0x08, 0x04, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x10, 0x20, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x24, 0x24, 0x12, 0x12, 0x6d, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7c, 0x2e, 0x2e, 0x2e, 0x2c, 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x0c, 0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0c, 0x12, 0x12, 0x12, 0x0c, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x24, 0x48, 0x24, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x06, 0x44, 0x24, 0x1e, 0x48, 0x64, 0x52, 0xf8, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x06, 0x44, 0x24, 0x1e, 0x68, 0x94, 0x42, 0x20, 0xf0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0c, 0x12, 0x08, 0x52, 0x2c, 0x50, 0x68, 0x54, 0xfa, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x08, 0x04, 0x44, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x10, 0x00, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x08, 0x00, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x24, 0x00, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4c, 0x32, 0x00, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x24, 0x24, 0x00, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x18, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf8, 0x14, 0x14, 0x72, 0x1e, 0x12, 0x12, 0xf2, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x02, 0x02, 0x02, 0x42, 0x3c, 0x10, 0x08, 0x00, 0x00, - 0x00, 0x08, 0x10, 0x00, 0x7c, 0x04, 0x04, 0x3c, 0x04, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x10, 0x00, 0x7c, 0x04, 0x04, 0x3c, 0x04, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x48, 0x00, 0x7c, 0x04, 0x04, 0x3c, 0x04, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x28, 0x28, 0x00, 0x7c, 0x04, 0x04, 0x3c, 0x04, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x10, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x10, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x28, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x28, 0x28, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x38, 0x48, 0x48, 0x48, 0x5c, 0x48, 0x48, 0x38, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4c, 0x32, 0x00, 0x42, 0x46, 0x4a, 0x4a, 0x52, 0x52, 0x62, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x10, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x08, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x24, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4c, 0x32, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x24, 0x24, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xbc, 0x42, 0x62, 0x52, 0x52, 0x4a, 0x46, 0x3e, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x10, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x08, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x24, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x24, 0x24, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x08, 0x00, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0e, 0x04, 0x3c, 0x44, 0x44, 0x3c, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x44, 0x26, 0x44, 0x44, 0x44, 0x34, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x24, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x58, 0x34, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x48, 0x48, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x44, 0x38, 0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0xbc, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x90, 0xfc, 0x12, 0x92, 0x6c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x02, 0x42, 0x3c, 0x08, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x3c, 0x42, 0x7e, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0x3c, 0x42, 0x7e, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x24, 0x00, 0x3c, 0x42, 0x7e, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x24, 0x00, 0x3c, 0x42, 0x7e, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x24, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x28, 0x28, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x12, 0x0c, 0x0c, 0x12, 0x3c, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x58, 0x34, 0x00, 0x3a, 0x46, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x24, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x58, 0x34, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x24, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x7c, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7c, 0x62, 0x52, 0x4a, 0x46, 0x3e, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x24, 0x00, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x24, 0x00, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0xc6, 0x44, 0x44, 0x28, 0x30, 0x10, 0x12, 0x0c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x04, 0x3c, 0x44, 0x44, 0x3c, 0x04, 0x0e, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x28, 0x28, 0x00, 0xc6, 0x44, 0x44, 0x28, 0x28, 0x10, 0x12, 0x0c, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, - 0x00, 0x00, 0x00, 0x08, 0x1c, 0x2a, 0x49, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x49, 0x2a, 0x1c, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x02, 0xff, 0x02, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x40, 0xff, 0x40, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -font_struct font_terminal_14normal = { - 199, - 1, - 16, - 8, - 16, - 8, - 16, - 3184, - font_terminal_14normal_data -}; - -/* End of font14norm.h */ diff --git a/sys/arch/arm32/dev/console/fonts/font_wide.h b/sys/arch/arm32/dev/console/fonts/font_wide.h deleted file mode 100644 index 646ecec35a9..00000000000 --- a/sys/arch/arm32/dev/console/fonts/font_wide.h +++ /dev/null @@ -1,259 +0,0 @@ -/* $OpenBSD: font_wide.h,v 1.2 2000/03/03 00:54:48 todd Exp $ */ -/* $NetBSD: font_wide.h,v 1.1 1996/01/31 23:20:22 mark Exp $ */ - -/* - * Copyright (c) 1994 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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 Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 BRINI 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. - * - * RiscBSD kernel project - * - * font_terminal14_wide.h - * - * Font for physical console driver - * - * Created : 18/09/94 - * Last updated : 15/10/94 - * - * Based on kate/display/14widen.h - * - */ - -unsigned char font_terminal_14widen_data[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, - 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x01, 0x98, 0x01, 0xfe, 0x07, 0x98, - 0x01, 0xfe, 0x07, 0x98, 0x01, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0xfc, 0x03, 0x66, 0x04, 0xfc, - 0x03, 0x60, 0x06, 0x66, 0x06, 0xfc, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x06, 0x44, 0x03, 0xb8, 0x01, 0xc0, - 0x00, 0x60, 0x00, 0xb0, 0x03, 0x58, 0x04, 0x8c, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x98, 0x01, 0x98, 0x01, 0xf0, - 0x04, 0x8c, 0x05, 0x06, 0x03, 0x06, 0x03, 0xfc, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xc0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x30, - 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x00, 0xc0, 0x00, 0x80, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x60, 0x00, 0xc0, 0x00, 0x80, 0x01, 0x80, - 0x01, 0x80, 0x01, 0x80, 0x01, 0xc0, 0x00, 0x60, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x66, 0x06, 0xf8, 0x01, 0xf8, - 0x01, 0x66, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x60, 0x00, 0xfe, - 0x07, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x03, 0x80, 0x01, 0xc0, - 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x0c, 0x03, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x60, 0x00, 0x70, 0x00, 0x78, - 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, 0x06, 0x00, 0x06, 0x80, - 0x03, 0xe0, 0x01, 0x78, 0x00, 0x1e, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, 0x06, 0x00, 0x06, 0xe0, - 0x03, 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xc0, 0x01, 0xa0, 0x01, 0x90, - 0x01, 0x88, 0x01, 0x84, 0x01, 0xfe, 0x07, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x06, 0x00, 0x06, 0x00, 0xfe, - 0x03, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x0c, 0x00, 0x06, 0x00, 0xfe, - 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x03, 0x80, 0x01, 0xc0, - 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, 0x06, 0x06, 0x06, 0xfc, - 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0xfc, 0x07, 0x00, 0x06, 0x00, 0x03, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x30, - 0x00, 0x0c, 0x00, 0x30, 0x00, 0xc0, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, - 0x07, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x30, 0x00, 0xc0, - 0x00, 0x00, 0x03, 0xc0, 0x00, 0x30, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, 0x06, 0x00, 0x06, 0xc0, - 0x03, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, 0x06, 0xc6, 0x07, 0x66, - 0x06, 0x66, 0x06, 0xc6, 0x07, 0x06, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x98, 0x01, 0x0c, 0x03, 0x0c, - 0x03, 0xfe, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x06, 0x06, 0x06, 0x06, 0xfe, - 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, 0x06, 0x06, 0x00, 0x06, - 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x06, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x0c, 0x00, 0x0c, 0x00, 0xfc, - 0x03, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x0c, 0x00, 0x0c, 0x00, 0x0c, - 0x00, 0xfc, 0x03, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, 0x06, 0x06, 0x00, 0x06, - 0x00, 0x86, 0x07, 0x06, 0x06, 0x06, 0x06, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xfe, - 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x60, 0x00, 0x60, 0x00, 0x60, - 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x80, 0x01, 0x80, 0x01, 0x80, - 0x01, 0x80, 0x01, 0x80, 0x01, 0x86, 0x01, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x86, 0x01, 0x66, 0x00, 0x1e, - 0x00, 0x1e, 0x00, 0x66, 0x00, 0x86, 0x01, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, - 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x0e, 0x07, 0x9e, 0x07, 0xf6, - 0x06, 0x66, 0x06, 0x66, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x0e, 0x06, 0x1e, 0x06, 0x36, - 0x06, 0x66, 0x06, 0xc6, 0x06, 0x86, 0x07, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0xfe, 0x03, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x86, 0x07, 0xfc, 0x03, 0x00, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0xfe, 0x03, 0x86, 0x01, 0x06, 0x03, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, 0x06, 0x06, 0x00, 0xfc, - 0x03, 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x60, 0x00, 0x60, 0x00, 0x60, - 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x0c, 0x03, 0x98, 0x01, 0xf0, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x66, - 0x06, 0x66, 0x06, 0xf6, 0x06, 0x9c, 0x03, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x0c, 0x03, 0x98, 0x01, 0xf0, - 0x00, 0xf0, 0x00, 0x98, 0x01, 0x0c, 0x03, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x0c, 0x03, 0x98, 0x01, 0xf0, - 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x80, 0x01, 0xc0, 0x00, 0x60, - 0x00, 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, - 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0xf0, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, - 0x00, 0xc0, 0x00, 0x80, 0x01, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, - 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xf8, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x98, 0x01, 0x06, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x60, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, - 0x06, 0xfc, 0x07, 0x06, 0x06, 0x06, 0x06, 0xfc, 0x0d, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0xf6, 0x03, 0x0e, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x06, 0xf6, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, - 0x06, 0x06, 0x00, 0x06, 0x00, 0x06, 0x06, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0xfc, 0x06, 0x06, - 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0xfc, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, - 0x06, 0xfe, 0x07, 0x06, 0x00, 0x06, 0x06, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x18, 0x00, 0x18, 0x00, 0xfe, - 0x03, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0xfc, 0x07, 0x00, 0x06, 0x00, 0x03, 0xfc, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0xf6, 0x03, 0x0e, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x78, 0x00, 0x60, - 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, - 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0xf8, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x86, 0x01, 0x66, - 0x00, 0x1e, 0x00, 0x66, 0x00, 0x86, 0x01, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, - 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x03, 0x66, - 0x06, 0x66, 0x06, 0x66, 0x06, 0x66, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x03, 0x0e, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x03, 0x0e, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x06, 0xf6, 0x03, 0x06, 0x00, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x06, 0x06, - 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0xfc, 0x06, 0x00, 0x06, 0x00, 0x06, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x03, 0x38, - 0x06, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x06, - 0x04, 0xfc, 0x03, 0x00, 0x06, 0x06, 0x06, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0xfe, 0x01, 0x18, - 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0xfc, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, - 0x06, 0x0c, 0x03, 0x98, 0x01, 0xf0, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, - 0x06, 0x66, 0x06, 0x66, 0x06, 0xf6, 0x06, 0x9c, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x07, 0x98, - 0x01, 0xf0, 0x00, 0xf0, 0x00, 0x98, 0x01, 0x0e, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, - 0x06, 0x0c, 0x03, 0x98, 0x01, 0xf0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x1c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, - 0x07, 0xc0, 0x01, 0x70, 0x00, 0x1c, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x30, 0x00, 0x30, 0x00, 0x60, 0x00, 0x3c, - 0x00, 0x60, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0xe0, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, - 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x80, 0x01, 0x80, 0x01, 0xc0, 0x00, 0x80, - 0x07, 0xc0, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xf8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x06, 0x66, 0x06, 0xc6, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x66, 0x00, 0x66, 0x00, 0xe6, - 0x01, 0x66, 0x00, 0x66, 0x00, 0x66, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x66, -}; - -font_struct font_terminal_14widen = { - 193, - 2, - 13, - 12, - 13, - 12, - 13, - 5018, - font_terminal_14widen_data -}; - -/* End of font14widen.h */ diff --git a/sys/arch/arm32/dev/console/vidc.c b/sys/arch/arm32/dev/console/vidc.c deleted file mode 100644 index e289593fd56..00000000000 --- a/sys/arch/arm32/dev/console/vidc.c +++ /dev/null @@ -1,255 +0,0 @@ -/* $NetBSD: vidc.c,v 1.2 1996/03/18 19:33:07 mark Exp $ */ - -/* - * Copyright (c) 1994-1995 Melvyn Tang-Richardson - * Copyright (c) 1994-1995 RiscBSD kernel team - * 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 RiscBSD kernel team - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE RISCBSD TEAM ``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 AUTHORS 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. - * - * RiscBSD kernel project - * - * vidc.c - * - * Old console ioctl declarations - * - * Created : 17/09/94 - */ - -#include <sys/types.h> -#include <machine/vidc.h> -#include <machine/katelib.h> - -/* VIDC STUFF */ - -/* - * A structure containing ALL the information required to restore - * the VIDC20 to any given state. ALL vidc transactions should - * go through these procedures, which record the vidc's state. - * it may be an idea to set the permissions of the vidc base address - * so we get a fault, so the fault routine can record the state but - * I guess that's not really necessary for the time being, since we - * can make the kernel more secure later on. Also, it is possible - * to write a routine to allow 'reading' of the vidc registers. - */ - -struct vidc_state vidc_lookup = { - { 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, - 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, - 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, - 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, - 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, - 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, - 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, - 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 - }, - - VIDC_PALREG, - VIDC_BCOL, - VIDC_CP1 , - VIDC_CP2, - VIDC_CP3, - VIDC_HCR, - VIDC_HSWR, - VIDC_HBSR, - VIDC_HDSR, - VIDC_HDER, - VIDC_HBER, - VIDC_HCSR, - VIDC_HIR, - VIDC_VCR, - VIDC_VSWR, - VIDC_VBSR, - VIDC_VDSR, - VIDC_VDER, - VIDC_VBER, - VIDC_VCSR, - VIDC_VCER, - VIDC_EREG, - VIDC_FSYNREG, - VIDC_CONREG, - VIDC_DCTL -}; - -struct vidc_state vidc_current[1]; - -int -vidc_write(reg, value) - u_int reg; - int value; -{ - int counter; - - int *current; - int *tab; - - tab = (int *)&vidc_lookup; - current = (int *)vidc_current; - - /* End higly doddgy code */ -/* -WriteWord ( VIDC_BASE, reg | value ); -return 1; -*/ - - /* - * OK, the VIDC_PALETTE register is handled differently - * to the others on the VIDC, so take that into account here - */ - if (reg==VIDC_PALREG) { - vidc_current->palreg = 0; - WriteWord ( VIDC_BASE, reg | value ); - return 0; - } - - if (reg==VIDC_PALETTE) { - WriteWord ( VIDC_BASE, reg | value ); - vidc_current->palette[vidc_current->palreg] = value; - vidc_current->palreg++; - vidc_current->palreg = vidc_current->palreg & 0xff; - return 0; - } - - /* - * Undefine SAFER if you wish to speed things up (a little) - * although this means the function will assume things abou - * the structure of vidc_state. i.e. the first 256 words are - * the palette array - */ - -#define SAFER - -#ifdef SAFER -#define INITVALUE 0 -#else -#define INITVALUE 256 -#endif - - for ( counter=INITVALUE; counter<= sizeof(struct vidc_state); counter++ ) { - if ( reg==tab[counter] ) { - WriteWord ( VIDC_BASE, reg | value ); - current[counter] = value; - return 0; - } - } - return -1; -} - -void -vidc_setpalette(vidc) - struct vidc_state *vidc; -{ - int counter = 0; - - vidc_write(VIDC_PALREG, 0x00000000); - for (counter = 0; counter < 255; counter++) - vidc_write(VIDC_PALETTE, vidc->palette[counter]); -} - -void -vidc_setstate(vidc) - struct vidc_state *vidc; -{ - vidc_write ( VIDC_PALREG, vidc->palreg ); - vidc_write ( VIDC_BCOL, vidc->bcol ); - vidc_write ( VIDC_CP1, vidc->cp1 ); - vidc_write ( VIDC_CP2, vidc->cp2 ); - vidc_write ( VIDC_CP3, vidc->cp3 ); - vidc_write ( VIDC_HCR, vidc->hcr ); - vidc_write ( VIDC_HSWR, vidc->hswr ); - vidc_write ( VIDC_HBSR, vidc->hbsr ); - vidc_write ( VIDC_HDSR, vidc->hdsr ); - vidc_write ( VIDC_HDER, vidc->hder ); - vidc_write ( VIDC_HBER, vidc->hber ); - vidc_write ( VIDC_HCSR, vidc->hcsr ); - vidc_write ( VIDC_HIR, vidc->hir ); - vidc_write ( VIDC_VCR, vidc->vcr ); - vidc_write ( VIDC_VSWR, vidc->vswr ); - vidc_write ( VIDC_VBSR, vidc->vbsr ); - vidc_write ( VIDC_VDSR, vidc->vdsr ); - vidc_write ( VIDC_VDER, vidc->vder ); - vidc_write ( VIDC_VBER, vidc->vber ); - vidc_write ( VIDC_VCSR, vidc->vcsr ); - vidc_write ( VIDC_VCER, vidc->vcer ); -/* - * Right, dunno what to set these to yet, but let's keep RiscOS's - * ones for now, until the time is right to finish this code - */ - -/* vidc_write ( VIDC_EREG, vidc->ereg ); */ -/* vidc_write ( VIDC_FSYNREG, vidc->fsynreg ); */ -/* vidc_write ( VIDC_CONREG, vidc->conreg ); */ -/* vidc_write ( VIDC_DCTL, vidc->dctl ); */ - -} - - -void -vidc_getstate(vidc) - struct vidc_state *vidc; -{ - *vidc = *vidc_current; -} - -void -vidc_stdpalette() -{ - WriteWord(VIDC_BASE, VIDC_PALREG | 0x00000000); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL( 0, 0, 0)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL(255, 0, 0)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL( 0, 255, 0)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL(255, 255, 0)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL( 0, 0, 255)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL(255, 0, 255)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL( 0, 255, 255)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL(255, 255, 255)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL(128, 128, 128)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL(255, 128, 128)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL(128, 255, 128)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL(255, 255, 128)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL(128, 128, 255)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL(255, 128, 255)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL(128, 255, 255)); - WriteWord(VIDC_BASE, VIDC_PALETTE | VIDC_COL(255, 255, 255)); -} - -#if 0 -int -vidc_col(red, green, blue) - int red; - int green; - int blue; -{ - red = red & 0xFF; - green = green & 0xFF; - blue = blue & 0xFF; - - return ( (blue<<16) + (green<<8) + red ); -} - -#endif diff --git a/sys/arch/arm32/dev/console/vidc_mc.S b/sys/arch/arm32/dev/console/vidc_mc.S deleted file mode 100644 index d22ece5384a..00000000000 --- a/sys/arch/arm32/dev/console/vidc_mc.S +++ /dev/null @@ -1,213 +0,0 @@ -/* $NetBSD: vidc_mc.S,v 1.3 1996/03/18 19:33:08 mark Exp $ */ - -/* - * Copyright (c) 1994-1995 Melvyn Tang-Richardson - * Copyright (c) 1994-1995 RiscBSD kernel team - * 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 RiscBSD kernel team - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE RISCBSD TEAM ``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 AUTHORS 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. - * - * RiscBSD kernel project - * - * vidc_mc.S - * - * Console assembly functions - * - * Created : 17/09/94 - */ - -#include "assym.h" -#include <machine/iomd.h> - -lr .req r14 -pc .req r15 -sp .req r13 - -.text - .global _vidcconsole_loadtab -_vidcconsole_loadtab: - mov r0, r0 - ldmia r0!, { r2 } - ldmia r0!, { r2-r3 } - ldmia r0!, { r2-r4 } - ldmia r0!, { r2-r5 } - ldmia r0!, { r2-r6 } - ldmia r0!, { r2-r7 } - ldmia r0!, { r2-r8 } - ldmia r0!, { r2-r9 } - ldmia r0!, { r2-r10 } - ldmia r0!, { r2-r11 } - ldmia r0!, { r2-r12 } - ldmia r0!, { r2-r12, r14 } - - .global _vidcconsole_storetab -_vidcconsole_storetab: - mov r0, r0 - stmia r0!, { r2 } - stmia r0!, { r2-r3 } - stmia r0!, { r2-r4 } - stmia r0!, { r2-r5 } - stmia r0!, { r2-r6 } - stmia r0!, { r2-r7 } - stmia r0!, { r2-r8 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r10 } - stmia r0!, { r2-r11 } - stmia r0!, { r2-r12 } - stmia r0!, { r2-r12, r14 } - - .global _vidcconsole_pushtab -_vidcconsole_pushtab: - mov r0, r0 - stmfd r13!, { r0-r3 } - stmfd r13!, { r0-r7 } - stmfd r13!, { r0-r11 } - stmfd r13!, { r0-r14 } - - .global _vidcconsole_poptab -_vidcconsole_poptab: - mov r0, r0 - ldmfd r13!, { r0-r3 } - ldmfd r13!, { r0-r7 } - ldmfd r13!, { r0-r11 } - ldmfd r13!, { r0-r14 } - - .global _vidcconsole_enter -_vidcconsole_enter: - stmfd r13!, { r15 } - - .global _vidcconsole_exit -_vidcconsole_exit: - stmfd r13!, { r15 } - - .global _vidcconsolemc_render - - /* On entry r0 = addr */ - /* r1 = font */ - /* r2 = col */ - /* r3 = xres */ - - /* Optimise for 8x16 font */ - /* At the moment */ - -_vidcconsolemc_render: - - stmfd r13!, {r0-r9, lr} - - /* Generate colour mask */ - - mov r9, r2, lsr #16 - mov r4, r2, lsr #8 - and r9, r9, #0xff - and r4, r4, #0xff - and r2, r2, #0xff - - /* For each row (8 pixels) */ - -xloop: - ldrb r5, [r1], #1 - - mov r7, #0 - mov r8, #0 - -/* This loop will get *SOOOO* much faster with */ -/* the new algorithmn */ - tst r5, #8 - orrne r7, r2, r7, lsl #8 - orreq r7, r4, r7, lsl #8 - tst r5, #4 - orrne r7, r2, r7, lsl #8 - orreq r7, r4, r7, lsl #8 - tst r5, #2 - orrne r7, r2, r7, lsl #8 - orreq r7, r4, r7, lsl #8 - tst r5, #1 - orrne r7, r2, r7, lsl #8 - orreq r7, r4, r7, lsl #8 - tst r5, #0x80 - orrne r8, r2, r8, lsl #8 - orreq r8, r4, r8, lsl #8 - tst r5, #0x40 - orrne r8, r2, r8, lsl #8 - orreq r8, r4, r8, lsl #8 - tst r5, #0x20 - orrne r8, r2, r8, lsl #8 - orreq r8, r4, r8, lsl #8 - tst r5, #0x10 - orrne r8, r2, r8, lsl #8 - orreq r8, r4, r8, lsl #8 - - stmia r0, {r7, r8} - add r0, r0, r3 - - subs r9, r9, #1 - bne xloop - - ldmfd r13!, {r0-r9, pc} - - .global _vidcconsolemc_cls - - /* On entry r0 = start */ - /* r1 = end */ - /* r2 = col */ - - -_vidcconsolemc_cls: - stmfd r13!, {r0-r9, lr} - - mov r3, r2 - mov r4, r2 - mov r5, r2 - mov r6, r2 - mov r7, r2 - mov r8, r2 - mov r9, r2 - -loop: - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - stmia r0!, { r2-r9 } - - cmp r0, r1 - ble loop - - ldmfd r13!, {r0-r9, pc} - diff --git a/sys/arch/arm32/dev/console/vidcconsole.c b/sys/arch/arm32/dev/console/vidcconsole.c deleted file mode 100644 index bd8305e607e..00000000000 --- a/sys/arch/arm32/dev/console/vidcconsole.c +++ /dev/null @@ -1,1818 +0,0 @@ -/* $NetBSD: vidcconsole.c,v 1.7 1996/03/28 21:18:40 mark Exp $ */ - -/* - * Copyright (c) 1996 Robert Black - * Copyright (c) 1994-1995 Melvyn Tang-Richardson - * Copyright (c) 1994-1995 RiscBSD kernel team - * 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 RiscBSD kernel team - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE RISCBSD TEAM ``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 AUTHORS 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. - * - * RiscBSD kernel project - * - * vidcconsole.c - * - * Console assembly functions - * - * Created : 17/09/94 - * Last updated : 07/02/96 - */ - -/* woo */ - -#include <sys/cdefs.h> -#include <sys/types.h> -#include <sys/param.h> -#include <sys/systm.h> -#include <sys/malloc.h> -#include <sys/ioctl.h> -#include <sys/conf.h> -#include <sys/tty.h> -#include <sys/device.h> -#include <sys/map.h> -#include <sys/proc.h> -#include <sys/user.h> -#include <sys/syslog.h> -#include <sys/resourcevar.h> -#include <vm/vm.h> - -#include <machine/cpu.h> -#include <machine/param.h> -#include <machine/katelib.h> -#include <machine/cpu.h> -#include <machine/bootconfig.h> -#include <machine/iomd.h> -#include <machine/irqhandler.h> -#include <machine/pmap.h> -#include <machine/vidc.h> -#include <machine/vconsole.h> - -#include <arm32/dev/console/fonts/font_normal.h> -#include <arm32/dev/console/fonts/font_bold.h> -#include <arm32/dev/console/fonts/font_italic.h> - - -#define BCOPY bcopy - -#ifndef DEBUGTERM -#define dprintf(x) ; -#endif - -/* Options ************************************/ -#define ACTIVITY_WARNING -#define SCREENBLANKER -#undef INVERSE_CONSOLE -/**********************************************/ - -/* Internal defines only **********************/ -#define DEVLOPING -#undef SELFTEST -#undef SILLIES -/**********************************************/ - -#ifdef SILLIES -#define PRETTYCURSOR -#endif - -extern int physcon_major; -extern struct vconsole *vconsole_default; - -extern videomemory_t videomemory; - -extern font_struct font_terminal_14normal; -extern font_struct font_terminal_14bold; -extern font_struct font_terminal_14italic; - -#define font_normal font_terminal_14normal -#define font_bold font_terminal_14bold -#define font_italic font_terminal_14italic - -#define VIDC_ENGINE_NAME "VIDC" -#define R_DATA ((struct vidc_info *)vc->r_data) -#define MODE (R_DATA->mode) - -static int cold_init = 0; - -extern struct vconsole *vconsole_master; -extern struct vconsole *vconsole_current; -static struct vidc_mode vidc_initialmode; -static struct vidc_mode *vidc_currentmode; - -unsigned int dispstart; -unsigned int dispsize; -unsigned int dispbase; -unsigned int dispend; -unsigned int ptov; -unsigned int transfersize; -unsigned int vmem_base; -unsigned int phys_base; -int flash; -int cursor_flash; -char *cursor_normal; -char *cursor_transparent; -int p_cursor_normal; -int p_cursor_transparent; - -/* Local function prototypes */ -static void vidcconsole_cls __P(( struct vconsole */*vc*/ )); -static int vidc_cursor_init __P(( struct vconsole */*vc*/ )); -static int vidcconsole_cursorintr __P(( struct vconsole */*vc*/ )); -int vidcconsole_flashintr __P(( struct vconsole */*vc*/ )); -static int vidcconsole_textpalette __P(( struct vconsole */*vc*/ )); -static void vidcconsole_render __P(( struct vconsole */*vc*/, char /*c*/ )); -static void vidcconsole_mode __P(( struct vconsole */*vc*/, struct vidc_mode */*mode*/ )); -int vidcconsole_flash __P(( struct vconsole */*vc*/, int /*flash*/ )); -int vidcconsole_cursorflash __P(( struct vconsole */*vc*/, int /*flash*/ )); -int vidcconsole_flash_go __P(( struct vconsole */*vc*/ )); -int vidcconsole_blank __P(( struct vconsole */*vc*/, int /*type*/ )); -void vidcconsole_putchar __P(( dev_t dev, char c, struct vconsole *vc)); -extern int vidcconsolemc_cls __P(( unsigned char *, unsigned char *, int )); - -void (*line_cpfunc) __P(( char *, char * )); - -/* - * This will be called while still in the mode that we were left - * in after exiting from riscos - */ - -static irqhandler_t cursor_ih; -irqhandler_t flash_ih; - - -#ifndef HARDCODEDMODES -/* The table of modes is separately compiled */ -extern struct vidc_mode vidcmodes[]; -#else /* HARDCODEDMODES */ -#ifdef RC7500 -static struct vidc_mode vidcmodes[] = { - {31500,/**/48, 84, 30, 640, 30, 0,/**/3, 28, 0, 480, 0, 9,/**/0,/**/3}, - {36000,/**/72, 84, 34, 800, 34, 0,/**/2, 22, 0, 600, 0, 1,/**/0,/**/3}, -}; -#else /* RC7500 */ -/* We have a hard compiled table of modes and a list of definable modes */ -static struct vidc_mode vidcmodes[] = { - {32500,/**/52, 64, 30, 640, 30, 14,/**/3, 28, 0, 480, 0, 9,/**/0,/**/3}, - {65000,/**/128, 36, 60, 1024, 60 ,36,/**/6, 29, 0, 768, 0, 3,/**/0,/**/3}, -}; -#endif /* RC7500 */ -#endif /* HARDCODEDMODES */ - -#ifdef RC7500 -struct vfreq { - u_int frqcon; - int freq; -}; - -static struct vfreq vfreq[] = { - { VIDFREQ_25_18, 25175}, - { VIDFREQ_25_18, 25180}, - { VIDFREQ_28_32, 28320}, - { VIDFREQ_31_50, 31500}, - { VIDFREQ_36_00, 36000}, - { VIDFREQ_40_00, 40000}, - { VIDFREQ_44_90, 44900}, - { VIDFREQ_50_00, 50000}, - { VIDFREQ_65_00, 65000}, - { VIDFREQ_72_00, 72000}, - { VIDFREQ_75_00, 75000}, - { VIDFREQ_77_00, 77000}, - { VIDFREQ_80_00, 80000}, - { VIDFREQ_94_50, 94500}, - { VIDFREQ_110_0, 110000}, - { VIDFREQ_120_0, 120000}, - { VIDFREQ_130_0, 130000} -}; - -#define NFREQ (sizeof (vfreq) / sizeof(struct vfreq)) -u_int vfreqcon = 0; -#else /* RC7500 */ - -struct fsyn { - int r, v, f; -}; - -static struct fsyn fsyn_pref[] = { - { 6, 2, 8000 }, - { 4, 2, 12000 }, - { 3, 2, 16000 }, - { 2, 2, 24000 }, - { 41, 43, 25171 }, - { 50, 59, 28320 }, - { 3, 4, 32000 }, - { 2, 3, 36000 }, - { 31, 58, 44903 }, - { 12, 35, 70000 }, - { 0, 0, 00000 } -}; -#endif /* RC7500 */ - -static inline int -mod ( int n ) -{ - if (n<0) return (-n); - else return n; -} - -static int -vidcconsole_coldinit(vc) - struct vconsole *vc; -{ - int found; - int loop; - - line_cpfunc = NULL; - - /* Do this first so it dont look messy */ - - vidc_write ( VIDC_CP1, 0x0 ); - vidc_write ( VIDC_CP2, 0x0 ); - vidc_write ( VIDC_CP3, 0x0 ); - - /* Try to determine the current mode */ - vidc_initialmode.hder = bootconfig.width+1; - vidc_initialmode.vder = bootconfig.height+1; -/* - vidc_initialmode.hder = 1024; - vidc_initialmode.vder = 768; -*/ - vidc_initialmode.bitsperpixel = 1 << bootconfig.bitsperpixel; - -/* Nut - should be using videomemory.vidm_vbase - mark */ - - dispbase = vmem_base = dispstart = bootconfig.display_start; - phys_base = videomemory.vidm_pbase; - -/* Nut - should be using videomemory.vidm_size - mark */ - -#ifdef RC7500 - dispsize = videomemory.vidm_size; - transfersize = 16; -#else /* RC7500 */ - dispsize = bootconfig.vram[0].pages * NBPG; - transfersize = dispsize >> 10; -#endif /* RC7500 */ - - ptov = dispbase - phys_base; - - dispend = dispstart+dispsize; - - vidc_currentmode = &vidcmodes[0]; - loop = 0; - found = 0; - - while (vidcmodes[loop].pixel_rate != 0) { - if (vidcmodes[loop].hder == (bootconfig.width + 1) - && vidcmodes[loop].vder == (bootconfig.height + 1) - && vidcmodes[loop].frame_rate == bootconfig.framerate) { - vidc_currentmode = &vidcmodes[loop]; - found = 1; - } - ++loop; - } - - if (!found) { - vidc_currentmode = &vidcmodes[0]; - loop = 0; - found = 0; - - while (vidcmodes[loop].pixel_rate != 0) { - if (vidcmodes[loop].hder == (bootconfig.width + 1) - && vidcmodes[loop].vder == (bootconfig.height + 1)) { - vidc_currentmode = &vidcmodes[loop]; - found = 1; - } - ++loop; - } - } - - /* vidc_currentmode = &vidcmodes[0];*/ - vidc_currentmode->bitsperpixel = 1 << bootconfig.bitsperpixel; - - R_DATA->flash = R_DATA->cursor_flash = 0; - - dispstart = dispbase; - dispend = dispstart+dispsize; - - WriteWord ( IOMD_VIDINIT, dispstart-ptov ); - WriteWord ( IOMD_VIDSTART, dispstart-ptov ); - WriteWord ( IOMD_VIDEND, (dispend-transfersize)-ptov ); - return 0; -} - -struct vidc_mode newmode; - -static const int bpp_mask_table[] = { - 0, /* 1bpp */ - 1, /* 2bpp */ - 2, /* 4bpp */ - 3, /* 8bpp */ - 4, /* 16bpp */ - 6 /* 32bpp */ -}; - -void -vidcconsole_mode(vc, mode) - struct vconsole *vc; - struct vidc_mode *mode; -{ - register int acc; - int bpp_mask; - int log_bpp; - int tmp_bpp; - -#ifndef RC7500 - int best_r, best_v, best_match; -#endif - -/* - * Find out what bit mask we need to or with the vidc20 control register - * in order to generate the desired number of bits per pixel. - * log_bpp is log base 2 of the number of bits per pixel. - */ - - tmp_bpp = mode->bitsperpixel; - if (tmp_bpp < 1 || tmp_bpp > 32) - tmp_bpp = 8; /* Set 8 bpp if we get asked for something silly */ - - for (log_bpp = 0; tmp_bpp != 1; tmp_bpp >>= 1) - log_bpp++; - - bpp_mask = bpp_mask_table[log_bpp]; - -/* - printf ( "res = (%d, %d) rate = %d\n", mode->hder, mode->vder, mode->pixel_rate ); -*/ - - newmode = *mode; - vidc_currentmode = &newmode; - -#ifdef RC7500 - { - int i; - int old, new; - u_int nfreq; - - old = vfreq[0].freq; - nfreq = vfreq[0].frqcon; - for (i = 0; i < (NFREQ - 1); i++) { - new = vfreq[i].freq - mode->pixel_rate; - if (new < 0) - new = -new; - if (new < old) { - nfreq = vfreq[i].frqcon; - old = new; - } - if (new == 0) - break; - } - nfreq |= (vfreqcon & 0xf0); - vfreqcon = nfreq; - } -#else /* RC7500 */ - /* Program the VCO Look up a preferred value before choosing one */ - { - int least_error = mod (fsyn_pref[0].f - vidc_currentmode->pixel_rate); - int counter; - best_r = fsyn_pref[0].r; - best_match = fsyn_pref[0].f; - best_v = fsyn_pref[0].v; - - /* Look up */ - - counter=0; - - while ( fsyn_pref[counter].r != 0 ) { - if (least_error > mod (fsyn_pref[counter].f - vidc_currentmode->pixel_rate)) { - best_match = fsyn_pref[counter].f; - least_error = mod (fsyn_pref[counter].f - vidc_currentmode->pixel_rate); - best_r = fsyn_pref[counter].r; - best_v = fsyn_pref[counter].v; - } - counter++; - } - - if ( least_error > 0) { /* Accuracy of 1000Hz */ - int r, v, f; - for ( v=63; v>0; v-- ) - for ( r=63; r>0; r-- ) { - f = (v * VIDC_FREF/1000) / r; - if (least_error >= mod (f - vidc_currentmode->pixel_rate)) { - best_match = f; - least_error = mod (f - vidc_currentmode->pixel_rate); - best_r = r; - best_v = v; - } - } - } - - if ( best_r>63 ) best_r=63; - if ( best_v>63 ) best_v=63; - if ( best_r<1 ) best_r= 1; - if ( best_v<1 ) best_v= 1; - - } -/* - printf ( "best_v = %d best_r = %d best_f = %d\n", best_v, best_r, best_match ); -*/ -#endif /* RC7500 */ - - if (vc==vconsole_current) { -#ifdef RC7500 - outb(FREQCON, vfreqcon); - /* - * Need to program the control register first. - */ - if ( dispsize>1024*1024 ) { - if ( vidc_currentmode->hder>=800 ) - vidc_write ( VIDC_CONREG, 7<<8 | bpp_mask<<5); - else - vidc_write ( VIDC_CONREG, 6<<8 | bpp_mask<<5); - } else { - vidc_write ( VIDC_CONREG, 7<<8 | bpp_mask<<5); - } - - /* - * We don't use VIDC_FSYNREG. Program it low. - */ - vidc_write(VIDC_FSYNREG, 0x2020); -#else /* RC7500 */ - vidc_write ( VIDC_FSYNREG, (best_v-1)<<8 | (best_r-1)<<0 ); -#endif /* RC7500 */ - acc=0; - acc+=vidc_currentmode->hswr;vidc_write(VIDC_HSWR,(acc - 8 )& (~1) ); - acc+=vidc_currentmode->hbsr;vidc_write(VIDC_HBSR,(acc - 12 )& (~1) ); - acc+=vidc_currentmode->hdsr;vidc_write(VIDC_HDSR,(acc - 18 )& (~1) ); - acc+=vidc_currentmode->hder;vidc_write(VIDC_HDER,(acc - 18 )& (~1) ); - acc+=vidc_currentmode->hber;vidc_write(VIDC_HBER,(acc - 12 )& (~1) ); - acc+=vidc_currentmode->hcr ;vidc_write(VIDC_HCR ,(acc - 8)&(~3)); - - acc=0; - acc+=vidc_currentmode->vswr; vidc_write(VIDC_VSWR,(acc - 1 )); - acc+=vidc_currentmode->vbsr; vidc_write(VIDC_VBSR,(acc - 1 )); - acc+=vidc_currentmode->vdsr; vidc_write(VIDC_VDSR,(acc - 1 )); - acc+=vidc_currentmode->vder; vidc_write(VIDC_VDER,(acc - 1 )); - acc+=vidc_currentmode->vber; vidc_write(VIDC_VBER,(acc - 1 )); - acc+=vidc_currentmode->vcr; vidc_write(VIDC_VCR ,(acc - 1 )); - - WriteWord(IOMD_FSIZE, vidc_currentmode->vcr - + vidc_currentmode->vswr - + vidc_currentmode->vber - + vidc_currentmode->vbsr - 1 ); - - if ( dispsize==1024*1024 ) - vidc_write ( VIDC_DCTL, vidc_currentmode->hder>>2 | 1<<16 | 1<<12); - else - vidc_write ( VIDC_DCTL, vidc_currentmode->hder>>2 | 3<<16 | 1<<12); - - vidc_write ( VIDC_EREG, 1<<12 ); - if ( dispsize>1024*1024) { - if ( vidc_currentmode->hder>=800 ) - vidc_write ( VIDC_CONREG, 7<<8 | bpp_mask<<5); - else - vidc_write ( VIDC_CONREG, 6<<8 | bpp_mask<<5); - } else { - vidc_write ( VIDC_CONREG, 7<<8 | bpp_mask<<5); - } - } - - R_DATA->mode = *vidc_currentmode; - R_DATA->screensize = R_DATA->XRES * R_DATA->YRES * R_DATA->BITSPERPIXEL/8; - R_DATA->pixelsperbyte = 8 / R_DATA->BITSPERPIXEL; - R_DATA->frontporch = MODE.hswr + MODE.hbsr + MODE.hdsr; - R_DATA->topporch = MODE.vswr + MODE.vbsr + MODE.vdsr; - R_DATA->bytes_per_line = R_DATA->XRES * - R_DATA->font->y_spacing/R_DATA->pixelsperbyte; - R_DATA->bytes_per_scroll = (vc->ycur % R_DATA->font->y_spacing) - * vc->xcur / R_DATA->pixelsperbyte; - R_DATA->text_width = R_DATA->XRES / R_DATA->font->x_spacing; - R_DATA->text_height = R_DATA->YRES / R_DATA->font->y_spacing; - vc->xchars = R_DATA->text_width; - vc->ychars = R_DATA->text_height; -} - -void -physcon_display_base(base) - u_int base; -{ - dispstart = dispstart-dispbase + base; - dispbase = vmem_base = base; - dispend = base + dispsize; - ptov = dispbase - phys_base; -} - -static struct vidc_info masterinfo; -static int cursor_init = 0; - -int -vidcconsole_init(vc) - struct vconsole *vc; -{ - struct vidc_info *new; - int loop; - - if ( cold_init==0 ) { - vidcconsole_coldinit ( vc ); - } else { - if ( cursor_init == 0 ) - vidcconsole_flash_go ( vc ); - } - - /* - * If vc->r_data is initialised then this means that the previous - * render engine on this vconsole was not freed properly. I should - * not try to clear it up, since I could panic the kernel. Instead - * I forget about its memory, which could cause a memory leak, but - * this would be easily detectable and fixable - */ - -#ifdef SELFTEST - if ( vc->r_data != 0 ) { - printf( "*********************************************************\n" ); - printf( "You have configured SELFTEST mode in the console driver\n" ); - printf( "vc->rdata non zero. This could mean a new console\n" ); - printf( "render engine has not freed up its data structure when\n" ); - printf( "exiting.\n" ); - printf( "DO NOT COMPILE NON DEVELOPMENT KERNELS WITH SELFTEST\n" ); - printf( "*********************************************************" ); - } -#endif - - if ( vc==vconsole_master ) { - vc->r_data = (char *)&masterinfo; - } else { - MALLOC ( (vc->r_data), char *, sizeof(struct vidc_info), - M_DEVBUF, M_NOWAIT ); - } - - if (vc->r_data==0) - panic ( "render engine initialisation failed. CLEAN THIS UP!" ); - - R_DATA->normalfont = &font_normal; - R_DATA->italicfont = &font_italic; - R_DATA->boldfont = &font_bold; - R_DATA->font = R_DATA->normalfont; - - vidcconsole_mode ( vc, vidc_currentmode ); - R_DATA->scrollback_end = dispstart; - - new = (struct vidc_info *)vc->r_data; - - R_DATA->text_colours = 1 << R_DATA->BITSPERPIXEL; - if ( R_DATA->text_colours > 8 ) R_DATA->text_colours = 8; - -#ifdef INVERSE_CONSOLE - R_DATA->n_backcolour = R_DATA->text_colours - 1; - R_DATA->n_forecolour = 0; -#else - R_DATA->n_backcolour = 0; - R_DATA->n_forecolour = R_DATA->text_colours - 1; -#endif - - R_DATA->backcolour = R_DATA->n_backcolour; - R_DATA->forecolour = R_DATA->n_forecolour; - - R_DATA->forefillcolour = 0; - R_DATA->backfillcolour = 0; - - R_DATA->bold = 0; - R_DATA->reverse = 0; - - for (loop = 0; loop < R_DATA->pixelsperbyte; ++loop) { - R_DATA->forefillcolour |= (R_DATA->forecolour << - loop * R_DATA->BITSPERPIXEL); - R_DATA->backfillcolour |= (R_DATA->backcolour << - loop * R_DATA->BITSPERPIXEL); - } - - R_DATA->fast_render = R_DATA->forecolour | (R_DATA->backcolour<<8) | (R_DATA->font->pixel_height<<16); - R_DATA->blanked=0; - vc->BLANK ( vc, BLANK_NONE ); - - if ( vc == vconsole_current ) - vidcconsole_textpalette ( vc ); - - vidc_cursor_init ( vc ) ; - - if ( cold_init == 0 ) { - vidc_write ( VIDC_CP1, 0x0 ); - vidc_write ( VIDC_CP2, 0x0 ); - vidc_write ( VIDC_CP3, 0x0 ); - } - cold_init=1; - return 0; -} - -void -vidcconsole_putchar(dev, c, vc) - dev_t dev; - char c; - struct vconsole *vc; -{ - vc->PUTSTRING ( &c, 1, vc ); -} - -int -vidcconsole_spawn(vc) - struct vconsole *vc; -{ - vc->xchars = R_DATA->text_width; - vc->ychars = R_DATA->text_height; - vc->xcur = 0; - vc->ycur = 0; - vc->flags = 0; - return 0; -} - -int -vidcconsole_redraw(vc, x, y, a, b) - struct vconsole *vc; - int x, y; - int a, b; -{ - int xs, ys; - struct vidc_state vidc; - font_struct *p_font = R_DATA->font; - int p_forecol = R_DATA->forecolour; - int p_backcol = R_DATA->backcolour; - if (x<0) x=0; - if (y<0) y=0; - if (x>(vc->xchars-1)) x=vc->xchars-1; - if (y>(vc->ychars-1)) x=vc->ychars-1; - - if (a>(vc->xchars-1)) a=vc->xchars-1; - if (b>(vc->ychars-1)) b=vc->ychars-1; - - if (a<x) a=x; - if (b<y) b=y; - - - vidc = *vidc_current; - xs=vc->xcur; - ys=vc->ycur; - - vc->xcur = 0; - vc->ycur = 0; - if ( (vc->flags&LOSSY) == 0 ) - { - register int c; - /* This has *GOT* to be turboed */ - for ( vc->ycur=y; vc->ycur<=b; vc->ycur++ ) - { - for ( vc->xcur=x; vc->xcur<=a; vc->xcur++ ) - { - c = (vc->charmap)[vc->xcur+vc->ycur*vc->xchars]; - if ((c&BOLD)!=0) - R_DATA->font = R_DATA->boldfont; - else - R_DATA->font = R_DATA->normalfont; -R_DATA->fast_render = ((c>>8)&0x7)|(((c>>11)&0x7)<<8)| (R_DATA->font->pixel_height<<16); -if ( c & BLINKING ) - c+=1<<8 | 1; - if ((c&BLINKING)!=0) - { - R_DATA->forecolour+=16; - R_DATA->backcolour+=16; - } - vidcconsole_render( vc, c&0xff ); - } - } - } - vc->xcur = xs; - vc->ycur = ys; - R_DATA->forecolour = p_forecol; - R_DATA->backcolour = p_backcol; - R_DATA->font = p_font; - return 0; -} - - -int -vidcconsole_swapin(vc) - struct vconsole *vc; -{ - register int counter; - int xs, ys; - struct vidc_state vidc; - font_struct *p_font = R_DATA->font; - int p_forecol = R_DATA->forecolour; - int p_backcol = R_DATA->backcolour; - -#ifdef ACTIVITY_WARNING - vconsole_pending = 0; -#endif - vidc_write ( VIDC_CP1, 0x0 ); - - vidc = *vidc_current; - vidc_write ( VIDC_PALREG, 0x00000000 ); - for ( counter=0; counter<255; counter++ ) - vidc_write ( VIDC_PALETTE, 0x00000000 ); - xs=vc->xcur; - ys=vc->ycur; -/*TODO This needs to be vidc_restore (something) */ - vidcconsole_mode ( vc, &MODE ); - - vc->xcur = 0; - vc->ycur = 0; - if ( (vc->flags&LOSSY) == 0 ) - { - register int c; - /* This has *GOT* to be turboed */ - for ( vc->ycur=0; vc->ycur<vc->ychars; vc->ycur++ ) - { - for ( vc->xcur=0; vc->xcur<vc->xchars; vc->xcur++ ) - { - c = (vc->charmap)[vc->xcur+vc->ycur*vc->xchars]; - if ((c&BOLD)!=0) - R_DATA->font = R_DATA->boldfont; - else - R_DATA->font = R_DATA->normalfont; -/* - R_DATA->forecolour = ((c>>8)&0x7); - R_DATA->backcolour = ((c>>11)&0x7); -*/ -R_DATA->fast_render = ((c>>8)&0x7)|(((c>>11)&0x7)<<8)| (R_DATA->font->pixel_height<<16); -if ( c & BLINKING ) - c+=1<<8 | 1; - if ((c&BLINKING)!=0) - { - R_DATA->forecolour+=16; - R_DATA->backcolour+=16; - } - vidcconsole_render( vc, c&0xff ); - } - } - } - else - { - vc->CLS ( vc ); - } - - if ( vc->vtty==1 ) - { - vc->xcur = xs; - vc->ycur = ys; - vidcconsole_textpalette ( vc ); - vidc_write ( VIDC_CP1, 0xffffff ); - R_DATA->forecolour = p_forecol; - R_DATA->backcolour = p_backcol; - R_DATA->font = p_font; - } -/* Make the cursor blank */ - WriteWord(IOMD_CURSINIT,p_cursor_transparent); - return 0; - -} - -int -vidcconsole_mmap(vc, offset, nprot) - struct vconsole *vc; - int offset; - int nprot; -{ - if (offset > videomemory.vidm_size) - return (-1); - return(arm_byte_to_page(((videomemory.vidm_pbase) + (offset)))); -} - -extern void vidcconsolemc_render __P(( unsigned char *addr, unsigned char *fontaddr, - int fast_render, int xres )); - -void -vidcconsole_render(vc, c) - struct vconsole *vc; - char c; -{ - register unsigned char *fontaddr; - register unsigned char *addr; - - /* Calculate the font's address */ - - fontaddr = R_DATA->font->data - + ((c-(0x20)) * R_DATA->font->height - * R_DATA->font->width); - - addr = (unsigned char *)dispstart - + (vc->xcur * R_DATA->font->x_spacing) - + (vc->ycur * R_DATA->bytes_per_line); - - vidcconsolemc_render ( addr, fontaddr, R_DATA->fast_render, - R_DATA->XRES ); -} - -/* - * Uugh. vidc graphics dont support scrolling regions so we have to emulate - * it here. This would normally require much software scrolling which is - * horriblly slow, so I'm going to try and do a composite scroll, which - * causes problems for scrollback but it's less speed critical - */ - -void -vidcconsole_scrollup(vc, low, high) - struct vconsole *vc; - int low; - int high; -{ - unsigned char *start, *end; - - if ( ( low==0 ) && ( high==vc->ychars-1 )) - { - /* All hardware scroll */ - dispstart+=R_DATA->bytes_per_line; - if ( dispstart >= dispend ) - dispstart -= dispsize; - - high=high+1; /* Big hack */ - - WriteWord(IOMD_VIDINIT, dispstart - ptov ); - } - else - { - char *oldstart=(char *)dispstart; - - /* Composite scroll */ - - if ( (high-low) > (vc->ychars>>1) ) - { - /* Scroll region greater than half the screen */ - - dispstart+=R_DATA->bytes_per_line; - if ( dispstart >= dispend ) dispstart -= dispsize; - - WriteWord(IOMD_VIDINIT, dispstart - ptov ); - - if ( low!=0 ) - { - start = (unsigned char *)oldstart; - end=(unsigned char*)oldstart+((low+1) * R_DATA->bytes_per_line); - BCOPY ( start, start+R_DATA->bytes_per_line, - end-start-R_DATA->bytes_per_line); - } - - if ( high!=(vc->ychars-1) ) - { - start =(unsigned char *)dispstart+(high)*R_DATA->bytes_per_line; - end=(unsigned char*)dispstart+((vc->ychars)*R_DATA->bytes_per_line); - BCOPY ( start, start+R_DATA->bytes_per_line, - end-start-R_DATA->bytes_per_line); - } - high++; - } - else - { - /* Scroll region less than half the screen */ - - /* NO COMPOSITE SCROLL YET */ - - high++; - if (low<0) low=0; - if (high>(vc->ychars)) high=vc->ychars; - if (low>high) return; /* yuck */ - start = (unsigned char *)dispstart + ((low)*R_DATA->bytes_per_line); - end = (unsigned char *)dispstart + ((high)*R_DATA->bytes_per_line); - BCOPY ( start+R_DATA->bytes_per_line, start, - (end-start)-R_DATA->bytes_per_line ); - R_DATA->scrollback_end = dispstart; - } - } - memset ( (char *) dispstart + ((high-1)*R_DATA->bytes_per_line) , - R_DATA->backfillcolour, - R_DATA->bytes_per_line ); -} - -void -vidcconsole_scrolldown(vc, low, high) - struct vconsole *vc; - int low; - int high; -{ - unsigned char *start; - unsigned char *end; - - if ( low<0 ) low = 0; - if ( high>(vc->ychars-1) ) high=vc->ychars-1; - - if ( ( low==0 ) && ( high==vc->ychars-1 )) - { - dispstart-=R_DATA->bytes_per_line; - - if ( dispstart < dispbase ) - dispstart += dispsize; - - WriteWord(IOMD_VIDINIT, dispstart - ptov ); - } - else - { - if ( ((high-low) > (vc->ychars>>1)) ) - { -high--; - if (high!=(vc->ychars-1)) - { - start =(unsigned char*)dispstart+((high+1)*R_DATA->bytes_per_line); - end=(unsigned char*)dispstart+((vc->ychars)*R_DATA->bytes_per_line); - BCOPY ( start+R_DATA->bytes_per_line, start, - (end-start)-R_DATA->bytes_per_line ); - } - - dispstart-=R_DATA->bytes_per_line; - if ( dispstart < dispbase ) - dispstart += dispsize; - WriteWord(IOMD_VIDINIT, dispstart - ptov ); - start = (unsigned char *)dispstart + (low * R_DATA->bytes_per_line); - - if (low!=0) - { - end = (unsigned char *)dispstart + ((low+1)*R_DATA->bytes_per_line); - BCOPY ( (char*)(dispstart+R_DATA->bytes_per_line), - (char *)dispstart, - (int)((end-dispstart)-R_DATA->bytes_per_line )); - } - } - else - { - start = (unsigned char *)dispstart + (low * R_DATA->bytes_per_line); - end = (unsigned char *)dispstart + ((high+1) * R_DATA->bytes_per_line); - BCOPY ( start, start+R_DATA->bytes_per_line, end-start-R_DATA->bytes_per_line); - } - - } - memset ((char*) dispstart + (low*R_DATA->bytes_per_line) , - R_DATA->backfillcolour, R_DATA->bytes_per_line ); -} - -void -vidcconsole_cls(vc) - struct vconsole *vc; -{ -#ifdef RC7500 - dispstart = dispbase; - dispend = dispstart+dispsize; - - WriteWord ( IOMD_VIDINIT, dispstart-ptov ); - WriteWord ( IOMD_VIDSTART, dispstart-ptov ); - WriteWord ( IOMD_VIDEND, (dispend-transfersize)-ptov ); -#endif - - vidcconsolemc_cls ( (char *)dispstart, (char *)dispstart+R_DATA->screensize, R_DATA->backfillcolour ); - /* - memset((char *)dispstart, - R_DATA->backfillcolour, R_DATA->screensize); - */ - vc->xcur = vc->ycur = 0; -} - -void -vidcconsole_update(vc) - struct vconsole *vc; -{ -} - -static char vidcconsole_name[] = VIDC_ENGINE_NAME; - -static int scrollback_ptr = 0; - -int -vidcconsole_scrollback(vc) - struct vconsole *vc; -{ - int temp; - - if (scrollback_ptr==0) - scrollback_ptr=dispstart; - - temp = scrollback_ptr; - - scrollback_ptr-=R_DATA->bytes_per_line * (vc->ychars-2); - - if ( scrollback_ptr < dispbase ) - scrollback_ptr += dispsize; - - if ( (scrollback_ptr>dispstart)&& - (scrollback_ptr<(dispstart+R_DATA->screensize) ) ) - { - scrollback_ptr=temp; - return 0; - } - - vc->r_scrolledback = 1; - - WriteWord(IOMD_VIDINIT, scrollback_ptr - ptov ); - return 0; -} - -int -vidcconsole_scrollforward(vc) - struct vconsole *vc; -{ - register int temp; - - if (scrollback_ptr==0) - return 0; - - temp = scrollback_ptr; - - scrollback_ptr+=R_DATA->bytes_per_line * (vc->ychars - 2); - - if ( scrollback_ptr >= dispend ) - scrollback_ptr -= dispsize; - - if ( scrollback_ptr == dispstart ) - { - WriteWord(IOMD_VIDINIT, scrollback_ptr - ptov ); - scrollback_ptr=0; - vc->r_scrolledback = 0; - return 0; - } - - WriteWord(IOMD_VIDINIT, scrollback_ptr - ptov ); - return 0; -} - -int -vidcconsole_scrollbackend(vc) - struct vconsole *vc; -{ - scrollback_ptr = 0; - WriteWord(IOMD_VIDINIT, dispstart - ptov ); - vc->r_scrolledback = 0; - return 0; -} - -int -vidcconsole_clreos(vc, code) - struct vconsole *vc; - int code; -{ - char *addr; - char *endofscreen; - - addr = (unsigned char *)dispstart - + (vc->xcur * R_DATA->font->x_spacing) - + (vc->ycur * R_DATA->bytes_per_line); - - endofscreen = (unsigned char *)dispstart - + (vc->xchars * R_DATA->font->x_spacing) - + (vc->ychars * R_DATA->bytes_per_line); - - - switch (code) - { - case 0: - vidcconsolemc_cls ( addr, - (unsigned char *)dispend, - R_DATA->backfillcolour ); - if ((unsigned char *)endofscreen > (unsigned char *)dispend) { - char string[80]; - sprintf(string, "(addr=%08x eos=%08x dispend=%08x dispstart=%08x base=%08x)", - (u_int)addr, (u_int)endofscreen, dispend, dispstart, dispbase); - dprintf(string); - vidcconsolemc_cls((unsigned char *)dispbase, (unsigned char *)(dispbase + (endofscreen - dispend)), R_DATA->backfillcolour); - } - break; - - case 1: - vidcconsolemc_cls ( (unsigned char *)dispstart+R_DATA->screensize, - addr, - R_DATA->backfillcolour ); - break; - - case 2: - default: - vidcconsole_cls ( vc ); - break; - } - return 0; -} - -#define VIDC R_DATA->vidc - -int -vidcconsole_debugprint(vc) - struct vconsole *vc; -{ -#ifdef DEVLOPING - printf ( "VIDCCONSOLE DEBUG INFORMATION\n\n" ); - printf ( "res (%d, %d) charsize (%d, %d) cursor (%d, %d)\n" - , R_DATA->XRES, R_DATA->YRES - , vc->xchars, vc->ychars, vc->xcur, vc->ycur ); - printf ( "bytes_per_line %d\n" , R_DATA->bytes_per_line ); - printf ( "pixelsperbyte %d\n" , R_DATA->pixelsperbyte ); - printf ( "dispstart %08x\n" , dispstart ); - printf ( "dispend %08x\n" , dispend ); - printf ( "screensize %08x\n" , R_DATA->screensize ); - - printf ( "fontwidth %08x\n" , R_DATA->font->pixel_width ); - printf ( "fontheight %08x\n" , R_DATA->font->pixel_height ); - printf ( "\n" ); - printf ( "palreg = %08x bcol = %08x\n" , VIDC.palreg, VIDC.bcol ); - printf ( "cp1 = %08x cp2 = %08x cp3 = %08x\n" , VIDC.cp1, VIDC.cp2, VIDC.cp3 ); - printf ( "hcr = %08x hswr = %08x hbsr = %08x\n" , VIDC.hcr, VIDC.hswr, VIDC.hbsr ); - printf ( "hder = %08x hber = %08x hcsr = %08x\n" , VIDC.hder, VIDC.hber, VIDC.hcsr ); - printf ( "hir = %08x\n" , VIDC.hir ); - printf ( "vcr = %08x vswr = %08x vbsr = %08x\n" , VIDC.vcr, VIDC.vswr, VIDC.vbsr ); - printf ( "vder = %08x vber = %08x vcsr = %08x\n" , VIDC.vder, VIDC.vber, VIDC.vcsr ); - printf ( "vcer = %08x\n" , VIDC.vcer ); - printf ( "ereg = %08x fsynreg = %08x conreg = %08x\n" , VIDC.ereg, VIDC.fsynreg, VIDC.conreg ); - printf ( "\n" ); - printf ( "flash %08x, cursor_flash %08x", R_DATA->flash, R_DATA->cursor_flash ); -#else - printf ( "VIDCCONSOLE - NO DEBUG INFO\n" ); -#endif - return 0; -} - -#ifdef NICE_UPDATE -static int need_update = 0; - -void -vidcconsole_updatecursor(arg) - void *arg; -{ - struct vconsole *vc = vconsole_current; - - vidc_write(VIDC_HCSR, R_DATA->frontporch-17+ (vc->xcur)*R_DATA->font->pixel_width ); - vidc_write(VIDC_VCSR, R_DATA->topporch-2+ (vc->ycur+1)*R_DATA->font->pixel_height-2 + 3 - - R_DATA->font->pixel_height); - vidc_write(VIDC_VCER, R_DATA->topporch-2+ (vc->ycur+3)*R_DATA->font->pixel_height+2 + 3 ); - return; -} - -int -vidcconsole_cursorupdate(vc) - struct vconsole *vc; -{ - timeout ( vidcconsole_updatecursor, NULL, 20 ); - return 0; -} - -#else - -static int -vidcconsole_cursorupdate(vc) - struct vconsole *vc; -{ - vidc_write(VIDC_HCSR, R_DATA->frontporch-17+ (vc->xcur)*R_DATA->font->pixel_width ); - vidc_write(VIDC_VCSR, R_DATA->topporch-2+ (vc->ycur+1)*R_DATA->font->pixel_height-2 + 3 - - R_DATA->font->pixel_height); - vidc_write(VIDC_VCER, R_DATA->topporch-2+ (vc->ycur+3)*R_DATA->font->pixel_height+2 + 3 ); - return (0); -} - -#endif - -#define DEFAULT_CURSORSPEED (25) - -static int CURSORSPEED = DEFAULT_CURSORSPEED; - -static int -vidcconsole_cursorflashrate(vc, rate) - struct vconsole *vc; - int rate; -{ - CURSORSPEED = 60/rate; -} - -static int cursorcounter=DEFAULT_CURSORSPEED; -static int flashcounter=DEFAULT_CURSORSPEED; -#ifdef PRETTYCURSOR -static int pretty=0xff; -#endif - -static int cursor_col = 0x0; - -static int -vidcconsole_cursorintr(vc) - struct vconsole *vc; -{ - if ( cursor_flash==0 ) - return 0; - - /* - * We don't need this. - */ -#ifndef RC7500 - vconsole_blankcounter--; - - if ( vconsole_blankcounter<0 ) { - vconsole_blankcounter=vconsole_blankinit; - vidcconsole_blank ( vc, BLANK_OFF ); - } -#endif - - cursorcounter--; - if (cursorcounter<=0) { - cursorcounter=CURSORSPEED; - cursor_col = cursor_col ^ 0xffffff; -#ifdef ACTIVITY_WARNING - if (vconsole_pending) { - if ( cursor_col==0 ) - WriteWord(IOMD_CURSINIT,p_cursor_transparent); - else - WriteWord(IOMD_CURSINIT,p_cursor_normal); - vidc_write ( VIDC_CP1, cursor_col&0xff ); - } else -#endif - { - if ( cursor_col==0 ) - WriteWord(IOMD_CURSINIT,p_cursor_transparent); - else - WriteWord(IOMD_CURSINIT,p_cursor_normal); - vidc_write ( VIDC_CP1, 0xffffff ); - } - } - return(0); -} - -int -vidcconsole_flashintr(vc) - struct vconsole *vc; -{ - if ( flash==0 ) - return 0; - - flashcounter--; - if (flashcounter<=0) { - flashcounter=CURSORSPEED; - if ( cursor_col == 0 ) { - - vidc_write(VIDC_PALREG, 0x00000010); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL(255, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 255, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL(255, 255, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 255)); - vidc_write(VIDC_PALETTE, VIDC_COL(255, 0, 255)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 255, 255)); - vidc_write(VIDC_PALETTE, VIDC_COL(255, 255, 255)); - vidc_write(VIDC_PALETTE, VIDC_COL(128, 128, 128)); - vidc_write(VIDC_PALETTE, VIDC_COL(255, 128, 128)); - vidc_write(VIDC_PALETTE, VIDC_COL(128, 255, 128)); - vidc_write(VIDC_PALETTE, VIDC_COL(255, 255, 128)); - vidc_write(VIDC_PALETTE, VIDC_COL(128, 128, 255)); - vidc_write(VIDC_PALETTE, VIDC_COL(255, 128, 255)); - vidc_write(VIDC_PALETTE, VIDC_COL(255, 255, 255)); - } else { - vidc_write(VIDC_PALREG, 0x00000010); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - vidc_write(VIDC_PALETTE, VIDC_COL( 0, 0, 0)); - } - } - return(0); -} - -static int -vidc_cursor_init(vc) - struct vconsole *vc; -{ - extern char *cursor_data; - int counter; - int line; - - /* Blank the cursor while initialising it's sprite */ - - vidc_write ( VIDC_CP1, 0x0 ); - vidc_write ( VIDC_CP2, 0x0 ); - vidc_write ( VIDC_CP3, 0x0 ); - - cursor_normal = cursor_data; - cursor_transparent = cursor_data + (R_DATA->font->pixel_height * - R_DATA->font->pixel_width); - - cursor_transparent += 32; - cursor_transparent = (char *)((int)cursor_transparent & (~31) ); - - for ( line = 0; line<R_DATA->font->pixel_height; ++ line ) - { - for ( counter=0; counter<R_DATA->font->pixel_width/4;counter++ ) - cursor_normal[line*R_DATA->font->pixel_width + counter]=0x55; - for ( ; counter<8; counter++ ) - cursor_normal[line*R_DATA->font->pixel_width + counter]=0; - } - - for ( line = 0; line<R_DATA->font->pixel_height; ++ line ) - { - for ( counter=0; counter<R_DATA->font->pixel_width/4;counter++ ) - cursor_transparent[line*R_DATA->font->pixel_width + counter]=0x00; - for ( ; counter<8; counter++ ) - cursor_transparent[line*R_DATA->font->pixel_width + counter]=0; - } - - - p_cursor_normal = pmap_extract(kernel_pmap,(vm_offset_t)cursor_normal ); - p_cursor_transparent = pmap_extract(kernel_pmap,(vm_offset_t)cursor_transparent); - -/* - memset ( cursor_normal, 0x55, - R_DATA->font->pixel_width*R_DATA->font->pixel_height ); - - memset ( cursor_transparent, 0x55, - R_DATA->font->pixel_width*R_DATA->font->pixel_height ); -*/ - - /* Ok, now see the cursor */ - - vidc_write ( VIDC_CP1, 0xffffff ); - return 0; -} - -int -vidcconsole_setfgcol(vc, col) - struct vconsole *vc; - int col; -{ - register int loop; - - if ( R_DATA->forecolour >= 16 ) - R_DATA->forecolour=16; - else - R_DATA->forecolour=0; - - R_DATA->forefillcolour = 0; - - R_DATA->forecolour += col; - -/*TODO - if ( R_DATA->forecolour >> 1<<R_DATA->BITSPERPIXEL ) - R_DATA->forecolour>>1; -*/ - - for (loop = 0; loop < R_DATA->pixelsperbyte; ++loop) { - R_DATA->forefillcolour |= (R_DATA->forecolour << - loop * R_DATA->BITSPERPIXEL); - } - R_DATA->fast_render = R_DATA->forecolour | (R_DATA->backcolour<<8) | (R_DATA->font->pixel_height<<16); - return 0; -} - -int -vidcconsole_setbgcol(vc, col) - struct vconsole *vc; - int col; -{ - register int loop; - - if ( R_DATA->backcolour >= 16 ) - R_DATA->backcolour=16; - else - R_DATA->backcolour=0; - - R_DATA->backfillcolour = 0; - R_DATA->backcolour += col; - /*TODO - if ( R_DATA->backcolour >> 1<<R_DATA->BITSPERPIXEL ) - R_DATA->backcolour>>1; -*/ - - for (loop = 0; loop < R_DATA->pixelsperbyte; ++loop) { - R_DATA->backfillcolour |= (R_DATA->backcolour << - loop * R_DATA->BITSPERPIXEL); - } - return 0; -} - -int -vidcconsole_textpalette(vc) - struct vconsole *vc; -{ - R_DATA->forecolour = COLOUR_WHITE_8; - R_DATA->backcolour = COLOUR_BLACK_8; - - vidc_write( VIDC_PALREG , 0x00000000); - vidc_write( VIDC_PALETTE , VIDC_COL( 0, 0, 0)); - vidc_write( VIDC_PALETTE , VIDC_COL(255, 0, 0)); - vidc_write( VIDC_PALETTE , VIDC_COL( 0, 255, 0)); - vidc_write( VIDC_PALETTE , VIDC_COL(255, 255, 0)); - vidc_write( VIDC_PALETTE , VIDC_COL( 0, 0, 255)); - vidc_write( VIDC_PALETTE , VIDC_COL(255, 0, 255)); - vidc_write( VIDC_PALETTE , VIDC_COL( 0, 255, 255)); - vidc_write( VIDC_PALETTE , VIDC_COL(255, 255, 255)); - vidc_write( VIDC_PALETTE , VIDC_COL(128, 128, 128)); - vidc_write( VIDC_PALETTE , VIDC_COL(255, 128, 128)); - vidc_write( VIDC_PALETTE , VIDC_COL(128, 255, 128)); - vidc_write( VIDC_PALETTE , VIDC_COL(255, 255, 128)); - vidc_write( VIDC_PALETTE , VIDC_COL(128, 128, 255)); - vidc_write( VIDC_PALETTE , VIDC_COL(255, 128, 255)); - vidc_write( VIDC_PALETTE , VIDC_COL(255, 255, 255)); - -R_DATA->fast_render = R_DATA->forecolour | (R_DATA->backcolour<<8) | (R_DATA->font->pixel_height<<16); - return 0; -} - -int -vidcconsole_sgr (vc, type) - struct vconsole *vc; - int type; -{ - switch ( type ) - { - case 0: /* Normal */ - if (R_DATA->BITSPERPIXEL == 8) - { - R_DATA->n_forecolour = COLOUR_WHITE_8; - R_DATA->n_backcolour = COLOUR_BLACK_8; - } - - R_DATA->forecolour = R_DATA->n_forecolour; - R_DATA->backcolour = R_DATA->n_backcolour; - R_DATA->font = R_DATA->normalfont; - break; - - case 1: /* bold */ - R_DATA->font = R_DATA->boldfont; - break; - - case 22: /* not bold */ - R_DATA->font = R_DATA->normalfont; - break; - - case 5: /* blinking */ - if ( R_DATA->forecolour < 16 ) - { - R_DATA->forecolour+=16; - R_DATA->backcolour+=16; - R_DATA->n_forecolour+=16; - R_DATA->n_backcolour+=16; - } - break; - - case 25: /* not blinking */ - if ( R_DATA->forecolour >= 16 ) - { - R_DATA->forecolour-=16; - R_DATA->backcolour-=16; - R_DATA->n_forecolour-=16; - R_DATA->n_backcolour-=16; - } - break; - - case 7: /* reverse */ - R_DATA->forecolour = R_DATA->n_backcolour; - R_DATA->backcolour = R_DATA->n_forecolour; - break; - - case 27: /* not reverse */ - R_DATA->forecolour = R_DATA->n_forecolour; - R_DATA->backcolour = R_DATA->n_backcolour; - break; - } -R_DATA->fast_render = R_DATA->forecolour | (R_DATA->backcolour<<8) | (R_DATA->font->pixel_height<<16); - return 0; -} - -int -vidcconsole_scrollregion(vc, low, high) - struct vconsole *vc; - int low; - int high; -{ - return 0; -} - -int -vidcconsole_blank(vc, type) - struct vconsole *vc; - int type; -{ - vc->blanked=type; - switch (type) { - case 0: -#ifdef RC7500 - vidc_write ( VIDC_EREG, 0x51<<12 ); -#else - vidc_write ( VIDC_EREG, 1<<12 ); -#endif - break; - - case 1: /* not implemented yet */ - case 2: - case 3: - vidc_write ( VIDC_EREG, 0 ); - break; - } - return 0; -} - -extern struct tty *find_tp __P((dev_t dev)); - -int vidcconsole_ioctl ( struct vconsole *vc, dev_t dev, int cmd, caddr_t data, - int flag, struct proc *p ) -{ - int error; - struct tty *tp; - struct winsize ws; - switch ( cmd ) - { - case CONSOLE_MODE: - tp = find_tp(dev); - printf ( "mode ioctl called\n" ); - vidcconsole_mode ( vc, (struct vidc_mode *)data ); - vc->MODECHANGE ( vc ); - ws.ws_row=vc->ychars; - ws.ws_col=vc->xchars; - error = (*linesw[tp->t_line].l_ioctl)(tp, TIOCSWINSZ, (char *)&ws, flag, p); - error = ttioctl(tp, TIOCSWINSZ, (char *)&ws, flag, p); - return 0; - break; - - case CONSOLE_RESETSCREEN: - { - extern unsigned int dispbase; - extern unsigned int dispsize; - extern unsigned int ptov; - extern unsigned int transfersize; - - WriteWord ( IOMD_VIDINIT, dispbase-ptov ); - WriteWord ( IOMD_VIDSTART, dispbase-ptov ); - WriteWord ( IOMD_VIDEND, (dispbase+dispsize-transfersize)-ptov ); - return 0; - } - case CONSOLE_RESTORESCREEN: - { - extern unsigned int dispstart; - extern unsigned int dispsize; - extern unsigned int ptov; - extern unsigned int transfersize; - - WriteWord ( IOMD_VIDINIT, dispstart-ptov ); - WriteWord ( IOMD_VIDSTART, dispstart-ptov ); - WriteWord ( IOMD_VIDEND, (dispstart+dispsize-transfersize)-ptov ); - vidc_stdpalette(); - return 0; - } - case CONSOLE_GETINFO: - { - extern videomemory_t videomemory; - register struct console_info *inf = (void *)data; - - - inf->videomemory = videomemory; - inf->width = R_DATA->mode.hder; - inf->height = R_DATA->mode.vder; - inf->bpp = R_DATA->mode.bitsperpixel; - return 0; - } - case CONSOLE_PALETTE: - { - register struct console_palette *pal = (void *)data; - vidc_write(VIDC_PALREG, pal->entry); - vidc_write(VIDC_PALETTE, VIDC_COL(pal->red, pal->green, pal->blue)); - return 0; - } - } - return -1; -} - -int -vidcconsole_attach(vc, parent, self, aux) - struct vconsole *vc; - struct device *parent; - struct device *self; - void *aux; -{ - vidc_cursor_init ( vc ); - vidcconsole_flash_go ( vc ); - return 0; -} - -int -vidcconsole_flash_go(vc) - struct vconsole *vc; -{ - static lock=0; - if (lock==1) - return -1; - lock=0; - - cursor_ih.ih_func = vidcconsole_cursorintr; - cursor_ih.ih_arg = vc; - cursor_ih.ih_level = IPL_TTY; - cursor_ih.ih_name = "vsync"; - irq_claim ( IRQ_FLYBACK, &cursor_ih ); - - cursor_init = 0; - return 0; -} - -/* What does this function do ? */ -int -vidcconsole_flash(vc, flash) - struct vconsole *vc; - int flash; -{ - flash = flash; -} - -int -vidcconsole_cursorflash(vc, flash) - struct vconsole *vc; - int flash; -{ - cursor_flash = flash; - return(0); -} - -struct render_engine vidcconsole = { - vidcconsole_name, - vidcconsole_init, - - vidcconsole_putchar, - - vidcconsole_spawn, - vidcconsole_swapin, - vidcconsole_mmap, - vidcconsole_render, - vidcconsole_scrollup, - vidcconsole_scrolldown, - vidcconsole_cls, - vidcconsole_update, - vidcconsole_scrollback, - vidcconsole_scrollforward, - vidcconsole_scrollbackend, - vidcconsole_clreos, - vidcconsole_debugprint, - vidcconsole_cursorupdate, - vidcconsole_cursorflashrate, - vidcconsole_setfgcol, - vidcconsole_setbgcol, - vidcconsole_textpalette, - vidcconsole_sgr, - vidcconsole_blank, - vidcconsole_ioctl, - vidcconsole_redraw, - vidcconsole_attach, - vidcconsole_flash, - vidcconsole_cursorflash -}; - - - - - - - -struct vidcvideo_softc { - struct device device; - int sc_opened; -}; - -int -vidcvideo_probe(parent, match, aux) - struct device *parent; - void *match; - void *aux; -{ -/* - struct vidcvideo_softc *vidcvideosoftc = (void *)match; - struct mainbus_attach_args *mb = aux; -*/ - - return 1; -} - -void -vidcvideo_attach(parent, self, aux) - struct device *parent; - struct device *self; - void *aux; -{ - struct vidcvideo_softc *vidcvideosoftc = (void *)self; - vidcvideosoftc->sc_opened=0; - - printf ( ": vidc 20\n" ); -} - -struct cfattach vidcvideo_ca = { - sizeof (struct vidcvideo_softc), vidcvideo_probe, vidcvideo_attach -}; - -struct cfdriver vidcvideo_cd = { - NULL, "vidcvideo", DV_DULL -}; - -int -vidcvideoopen(dev, flags, fmt, p) - dev_t dev; - int flags; - int fmt; - struct proc *p; -{ - struct vidcvideo_softc *sc; - struct vconsole vconsole_new; - int unit = minor(dev); - int s; - - if ( unit >= vidcvideo_cd.cd_ndevs ) - return ENXIO; - sc = vidcvideo_cd.cd_devs[unit]; - if (!sc) - return ENXIO; - - s = spltty(); -/* if (sc->sc_opened) { - (void)splx(s); - return(EBUSY); - }*/ - ++sc->sc_opened; - (void)splx(s); - - if (sc->sc_opened == 1) { - vconsole_new = *vconsole_default; - vconsole_new.render_engine = &vidcconsole; - vconsole_spawn_re ( - makedev ( physcon_major, 64 + minor(dev) ), - &vconsole_new ); - } else { - log(LOG_WARNING, "Multiple open of/dev/vidcvideo0 by proc %d\n", p->p_pid); - } - - return 0; -} - -int -vidcvideoclose(dev, flags, fmt, p) - dev_t dev; - int flags; - int fmt; - struct proc *p; -{ - struct vidcvideo_softc *sc; - int unit = minor(dev); - int s; - - if ( unit >= vidcvideo_cd.cd_ndevs ) - return ENXIO; - sc = vidcvideo_cd.cd_devs[unit]; - if (!sc) - return ENXIO; - - s = spltty(); - --sc->sc_opened; - (void)splx(s); - - return 0; -} - -extern int physconioctl __P(( dev_t, int, caddr_t, int, struct proc *)); - -int -vidcvideoioctl(dev, cmd, data, flag, p) - dev_t dev; - int cmd; - caddr_t data; - int flag; - struct proc *p; -{ - dev = makedev(physcon_major, 64 + minor(dev)); - return ( physconioctl ( dev, cmd, data, flag, p )); -} - -extern int physconmmap __P((dev_t, int, int)); - -int -vidcvideommap(dev, offset, prot) - dev_t dev; - int offset; - int prot; -{ - dev = makedev(physcon_major, 64 + minor(dev)); - return(physconmmap(dev, offset, prot)); -} - diff --git a/sys/arch/arm32/dev/console/vt220.c b/sys/arch/arm32/dev/console/vt220.c deleted file mode 100644 index 41bb883da3b..00000000000 --- a/sys/arch/arm32/dev/console/vt220.c +++ /dev/null @@ -1,2008 +0,0 @@ -/* $NetBSD: vt220.c,v 1.3 1996/03/18 19:33:10 mark Exp $ */ - -/* - * Copyright (c) 1994-1995 Melvyn Tang-Richardson - * Copyright (c) 1994-1995 RiscBSD kernel team - * 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 RiscBSD kernel team - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE RISCBSD TEAM ``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 AUTHORS 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. - * - * RiscBSD kernel project - * - * vt220.c - * - * VT220 emulation functions - * - * Created : 17/09/94 - */ - -#include <sys/cdefs.h> -#include <sys/types.h> -#include <sys/param.h> -#include <sys/malloc.h> -#include <sys/tty.h> -#include <sys/conf.h> -#include <sys/device.h> -#include <sys/systm.h> -#include <sys/syslog.h> -#include <machine/param.h> -#include <machine/katelib.h> -#include <machine/cpu.h> -#include <machine/bootconfig.h> -#include <machine/iomd.h> -#include <machine/vconsole.h> -#include <machine/vidc.h> - -#include <arm32/dev/console/vt220.h> - -/* Temporary for debugging the vnode bug */ - -int vnodeconsolebug = 0; -u_int vnodeconsolebug1 = 0; -u_int vnodeconsolebug2 = 0; - -static char vt220_name[] = "vt100"; - -/* These defines are for the developer only !!!! */ -#define SELFTEST -#define dprintf(x) ; - -/*************************************************/ - -#define FGCOL 0x0700 -#define BGCOL 0x3800 - -/* Options */ -#define HARD_RESET_AT_INIT -#undef SIMPLE_CURSOR /* Define if any render engine is cursorless */ - -/*************************************************/ - -#define DA_VT220 "\033[?62;1;2;6;7;8;9c" - -char console_proc[41]; /* Is this debugging ? */ - -#ifdef SIMPLE_CURSOR -#define SIMPLE_CURSOR_CHAR ('_') -#endif - -#define TERMTYPE_PUTSTRING vt220_putstring -#define TERMTYPE_INIT vt220_init - -extern struct vconsole *vconsole_master; - -static int default_beepstate = 0; - -#define CDATA struct vt220_info *cdata = (struct vt220_info *)vc->data - -struct vt220_info master_termdata_store; -struct vt220_info *master_termdata = &master_termdata_store; - -int do_render __P(( char /*c*/, struct vconsole */*vc*/ )); -void do_render_noscroll __P(( char /*c*/, struct vconsole */*vc*/ )); -void do_scrollcheck __P(( struct vconsole */*vc*/ )); -void vt_ris __P((struct vconsole */*vc*/)); - -void -clr_params(cdata) - struct vt220_info *cdata; -{ - int i; - for (i=0; i<MAXPARMS; i++) - cdata->param[i] = 0; - cdata->parami = 0; -} - -int -TERMTYPE_INIT(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata; - - if (vc->data==NULL) { - if ( vc==vconsole_master ) { - vc->data = (char *) master_termdata; - } else { - MALLOC ( vc->data, char *, sizeof(struct vt220_info), - M_DEVBUF, M_NOWAIT ); - } - } - - cdata = (struct vt220_info *)vc->data; - - bzero ( (char *)cdata, sizeof (cdata) ); - -#ifdef HARD_RESET_AT_INIT - vt_ris ( vc ); -#else - cdata->state = STATE_INIT; - cdata->disable_function = 1; - cdata->m_om = 0; - vc->xcur = vc->ycur = 0; - cdata->beepoff=default_beepstate; - cdata->simple_cursor_store = ' '; - cdata->scrr_beg = 0; - cdata->scrr_len = vc->ychars; - cdata->scrr_end = vc->ychars-1; - cdata->simple_cursor_on = 0; - - for ( counter=0; counter<MAXTABSTOPS; counter++ ) { - if ( !(counter%8) ) - cdata->tab_stops[counter] = 1; - else - cdata->tab_stops[counter] = 0; - } -#endif - return 0; -} - -int -mapped_cls(vc) - struct vconsole *vc; -{ - int ptr; - if (vc->charmap == NULL) - return -1; - for ( ptr=0; ptr<(vc->xchars*vc->ychars); ptr++ ) - vc->charmap[ptr]=0x20; - return 0; -} - -void -do_scrolldown(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - -/* - if ( ( cdata->scrr_beg<0 ) || ( cdata->scrr_end>=vc->ychars) ) - dprintf ( "INVALID SCROLLDOWN" ); -*/ - - /* Clean up */ - -/* - if ( cdata->scrr_beg < 0 ) cdata->scrr_beg = 0; -*/ - if ( cdata->scrr_end >= vc->ychars ) cdata->scrr_end=vc->ychars-1; - - - if (vc==vconsole_current) - vc->SCROLLDOWN ( vc, cdata->scrr_beg, cdata->scrr_end ); - else - vconsole_pending=vc->number; - - if (vnodeconsolebug) { - if (ReadWord(0xf148a000) != vnodeconsolebug2) { - log(LOG_WARNING, "vnode 0xf148a000 v_flag changed from %08x to %08x in do_scrolldown(1)\n", - vnodeconsolebug2, ReadWord(0xf148a000)); - log(LOG_WARNING, "vc=%08x vcur=%08x charmap=%08x\n", vc, vconsole_current, vc->charmap); - } - } - -/* - * This version of the following code was responcible for the vnode bug - * It can trash part of the word that follows the allocated block - * e.g. charmap = 0xf1484000, size 0x6000 - * vnode = 0xf148a000 - * first word of vnode is trashed. - * bug is an adjustment of -1 for counting backwards was not made. - - if ( ((vc->flags)&(LOSSY)) == 0 ) { - int counter; - for ( counter=((cdata->scrr_end+1)*(vc->xchars)); - counter > (cdata->scrr_beg+1)*(vc->xchars) ; counter-- ) { - vc->charmap[counter] = vc->charmap[counter-vc->xchars]; - } - - for ( counter=(cdata->scrr_beg)*(vc->xchars); - counter < (cdata->scrr_beg+1)*(vc->xchars); counter++ ) { - vc->charmap[counter]=0x20; - } - } -*/ - if ( ((vc->flags)&(LOSSY)) == 0 ) { - int counter; - for ( counter=((cdata->scrr_end+1)*(vc->xchars)) - 1; - counter >= (cdata->scrr_beg+1)*(vc->xchars) ; counter-- ) { - vc->charmap[counter] = vc->charmap[counter-vc->xchars]; - } - - for ( counter=(cdata->scrr_beg)*(vc->xchars); - counter < (cdata->scrr_beg+1)*(vc->xchars); counter++ ) { - vc->charmap[counter]=0x20; - } - } - if (vnodeconsolebug) { - if (ReadWord(0xf148a000) != vnodeconsolebug2) { - log(LOG_WARNING, "vnode 0xf148a000 v_flag changed from %08x to %08x in do_scrolldown(2)\n", - vnodeconsolebug2, ReadWord(0xf148a000)); - log(LOG_WARNING, "vc=%08x vcur=%08x charmap=%08x\n", vc, vconsole_current, vc->charmap); - } - } -} - -void -do_scrollup(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - - if (vc==vconsole_current) - vc->SCROLLUP ( vc, cdata->scrr_beg, cdata->scrr_end ); - else - vconsole_pending = vc->number; - - if ( cdata->scrr_end == 0 ) - vc->ycur=vc->ychars-1; - else - vc->ycur=cdata->scrr_end; - -/* Do a cyclic buffer for this !!!!!!!!!!!!!! */ - if ( ((vc->flags)&(LOSSY)) == 0 ) { -/* bcopy was weird, do this for now */ - int counter; - for ( counter=(cdata->scrr_beg+1)*vc->xchars; - counter < ((cdata->scrr_end+1)*(vc->xchars)); counter++ ) { - vc->charmap[counter-vc->xchars] = vc->charmap[counter]; - } - for ( counter=vc->xchars*(cdata->scrr_end); - counter < (vc->xchars*(cdata->scrr_end+1)); counter++ ) { - vc->charmap[counter]=0x20; - } - } -} - -void -respond(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - - while (*cdata->report_chars && cdata->report_count > 0) { - (*linesw[vc->tp->t_line].l_rint) - (*cdata->report_chars++ & 0xff, vc->tp); - cdata->report_count--; - } -} - -void -vt_curadr(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - -#ifdef SELFTEST -strcpy ( console_proc, "vt_curadr" ); -#endif - - if ( cdata->m_om ) /* relative to scrolling region */ - { - cdata->param[0]+=cdata->scrr_beg; - if ( (cdata->param[0]==0) && (cdata->param[1]==0) ) - { - vc->xcur = 0; - vc->ycur = 0; - return; - } - /* Limit checking */ - cdata->param[0] = (cdata->param[0] <= 0) ? 1 : cdata->param[0]; - cdata->param[0] = (cdata->param[0] > vc->ychars) ? vc->ychars : cdata->param[0]; - cdata->param[1] = (cdata->param[1] <= 0) ? 1 : cdata->param[1]; - cdata->param[1] = (cdata->param[1] >= vc->xchars) ? (vc->xchars-1) : cdata->param[1]; - (cdata->param[0])--; - (cdata->param[1])--; - vc->ycur = cdata->param[0]; - vc->xcur = cdata->param[1]; - } - else - { - if ( (cdata->param[0]==0) && (cdata->param[1]==0) ) - { - vc->xcur = 0; - vc->ycur = 0; - return; - } - /* Limit checking */ - - (cdata->param[0])--; - (cdata->param[1])--; - - vc->ycur = cdata->param[0]; - vc->xcur = cdata->param[1]; - -{ - char buf[80]; - sprintf ( buf, "vc->xcur %d vc->ycur %d", vc->xcur, vc->ycur ); - dprintf ( buf ); -} - } -} - -extern void beep_generate(void); - -void -vt_reset_dec_priv_qm(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; -#ifdef SELFTEST -strcpy ( console_proc, "vt_reset_dec_priv_qm" ); -#endif - switch(cdata->param[0]) - { - case 7: /* AWM - auto wrap mode */ - beep_generate(); - cdata->flags &= ~F_AWM; - break; - case 0: /* error, ignored */ - case 1: /* CKM - cursor key mode */ - case 2: /* ANM - ansi/vt52 mode */ - case 3: /* COLM - column mode */ - case 4: /* SCLM - scrolling mode */ - case 5: /* SCNM - screen mode */ - case 8: /* ARM - auto repeat mode */ - case 9: /* INLM - interlace mode */ - case 10: /* EDM - edit mode */ - case 11: /* LTM - line transmit mode */ - case 12: /* */ - case 13: /* SCFDM - space compression / field delimiting */ - case 14: /* TEM - transmit execution mode */ - case 15: /* */ - case 16: /* EKEM - edit key execution mode */ - case 25: /* TCEM - text cursor enable mode */ - case 42: /* NRCM - 7bit NRC characters */ - break; - - case 6: /* OM - origin mode */ - cdata->m_om = 0; - break; - } -} - -void -vt_sc(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - -#ifdef SELFTEST - strcpy ( console_proc, "vt_sc" ); -#endif - - cdata->sc_G0 = cdata->G0; - cdata->sc_G1 = cdata->G1; - cdata->sc_G2 = cdata->G2; - cdata->sc_G3 = cdata->G3; - cdata->sc_GL = cdata->GL; - cdata->sc_GR = cdata->GR; - cdata->sc_xcur = vc->xcur; - cdata->sc_ycur = vc->ycur; - cdata->sc_om = cdata->m_om; - cdata->sflags = cdata->flags; -/* - cdata->sc_attr = cdata->c_attr; - cdata->sc_awm = cdata->m_awm; - cdata->sc_sel = cdata->selchar; - cdata->sc_vtsgr = cdata->vtsgr; - cdata->sc_flag = 1; -*/ -} - -void -vt_rc(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - cdata->G0 = cdata->sc_G0; - cdata->G1 = cdata->sc_G1; - cdata->G2 = cdata->sc_G2; - cdata->G3 = cdata->sc_G3; - cdata->GL = cdata->sc_GL; - cdata->GR = cdata->sc_GR; - vc->xcur = cdata->sc_xcur; - vc->ycur = cdata->sc_ycur; - cdata->m_om = cdata->sc_om; - cdata->flags = cdata->sflags; - -/* - cdata->c_attr = cdata->sc_attr; - cdata->awm = cdata->sc_awm; - cdata->sel = cdata->sc_selchar; - cdata->vtsgr = cdata->sc_vtsgr; - cdata->flag = 0; -*/ -} - -void -vt_clreol(vc) - struct vconsole *vc; -{ -/* - struct vt220_info *cdata = (struct vt220_info *)vc->data; -*/ - int counter; - int x = vc->xcur; - int y = vc->ycur; - -#ifdef SELFTEST - strcpy ( console_proc, "vt_clreol" ); -#endif - - for ( counter=vc->xcur; counter<vc->xchars; counter++ ) - do_render_noscroll ( ' ', vc ); - - vc->xcur = x; - vc->ycur = y; -} - -/* index, move cursor down */ - -void -vt_ind(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - -#ifdef SELFTEST - strcpy ( console_proc, "vt_ind" ); -#endif - - vc->ycur++; - - { - char buf[80]; - sprintf ( buf, "{vt_ind [%d,%d] [%d,%d] }", - vc->xcur, vc->ycur, cdata->scrr_beg, cdata->scrr_end); - dprintf ( buf ); - } - - do_scrollcheck ( vc ); -} - -void -vt_nel(vc) - struct vconsole *vc; -{ - vc->ycur++; - do_scrollcheck ( vc ); - vc->xcur=0; -} - -void -vt_ri(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - - if (vnodeconsolebug & 1) - vnodeconsolebug2 = ReadWord(0xf148a000); - - vc->ycur--; - - if (vc->ycur<=cdata->scrr_beg) - vc->ycur = cdata->scrr_beg; - - - if (vc->ycur <= cdata->scrr_beg) { - if (vnodeconsolebug & 4) { - if (ReadWord(0xf148a000) != vnodeconsolebug2) { - log(LOG_WARNING, "vnode 0xf148a000 v_flag changed from %08x to %08x in vt_ri(1)\n", - vnodeconsolebug2, ReadWord(0xf148a000)); - log(LOG_WARNING, "vc=%08x ycur=%d scrr_beg=%d\n", vc, vc->ycur, cdata->scrr_beg); - vnodeconsolebug2 = ReadWord(0xf148a000); - } - } - do_scrolldown ( vc ); - if (vnodeconsolebug & 4) { - if (ReadWord(0xf148a000) != vnodeconsolebug2) { - log(LOG_WARNING, "vnode 0xf148a000 v_flag changed from %08x to %08x in vt_ri(2)\n", - vnodeconsolebug2, ReadWord(0xf148a000)); - log(LOG_WARNING, "vc=%08x ycur=%d scrr_beg=%d charmap=%08x\n", vc, vc->ycur, cdata->scrr_beg, vc->charmap); - vnodeconsolebug2 = ReadWord(0xf148a000); - } - } - vc->ycur = cdata->scrr_beg; - } -} - -/* selective in line erase */ - -int -vt_sel(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - register int counter; - register int x = vc->xcur; - register int y = vc->ycur; - - switch ( cdata->param[0] ) - { - case 0: /* Delete to the end of the line */ - for ( counter=x; counter<vc->xchars; counter++ ) - do_render_noscroll ( ' ', vc ); - break; - - case 1: /* Delete to the beginning of the line */ - vc->xcur = 0; - for ( counter=0; counter<x; counter++ ) - do_render_noscroll ( ' ', vc ); - break; - - case 2: /* Delete the whole line */ - default: - vc->xcur = 0; - for ( counter=0; counter<vc->xchars; counter++ ) - do_render_noscroll ( ' ', vc ); - break; - } - - vc->xcur = x; - vc->ycur = y; - return 0; -} - -void -vt_cuu(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - cdata->param[0] = (cdata->param[0] <= 0) ? 1 : cdata->param[0]; - vc->ycur -= cdata->param[0]; - vc->ycur = vc->ycur < 0 ? 0 : vc->ycur; -} - -void -vt_cub(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - - cdata->param[0] = (cdata->param[0] <= 0) ? 1 : cdata->param[0]; - - vc->xcur -= cdata->param[0]; - cdata->param[0] = (cdata->param[0] < 0 ) ? 0 : cdata->param[0]; -} - -void -vt_da(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - static u_char *response = (u_char *)DA_VT220; - - cdata->report_chars = response; - cdata->report_count = 18; - respond(vc); -} - -void -vt_str(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - int counter; - - if (cdata == NULL) { - return; - } - - clr_params ( cdata ); - - cdata->state = STATE_INIT; - cdata->disable_function = 1; - cdata->m_om = 0; /* origin mode */ - vc->xcur = vc->ycur = 0; - cdata->beepoff=default_beepstate; - cdata->simple_cursor_store = ' '; - cdata->scrr_beg = 0; - cdata->scrr_len = vc->ychars; - cdata->scrr_end = vc->ychars-1; - cdata->simple_cursor_on = 0; - cdata->nfgcol = 7; - cdata->nbgcol = 0; - cdata->fgcol = cdata->nfgcol; - cdata->bgcol = cdata->nbgcol; - cdata->attribs=cdata->fgcol<<8 | cdata->bgcol<<11; - cdata->sc_flag = 0; /* save cursor position */ - cdata->flags = F_AWM; - cdata->irm = 0; - - for ( counter=0; counter<MAXTABSTOPS; counter++ ) - { - if ( !(counter%8) ) - cdata->tab_stops[counter] = 1; - else - cdata->tab_stops[counter] = 0; - } -} - -void -vt_ris(vc) - struct vconsole *vc; -{ - vc->xcur = vc->ycur = 0; - vt_str(vc); /* and soft terminal reset */ -} - -void -vt_cud(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - - cdata->param[0] = (cdata->param[0] <= 0) ? 1 : cdata->param[0]; - - cdata->param[0] = (cdata->param[0] > (cdata->scrr_end-vc->ycur)) - ? (cdata->scrr_end-vc->ycur) : cdata->param[0]; - - vc->ycur += cdata->param[0]; - - do_scrollcheck ( vc ); -} - -void -vt_tst(vc) - struct vconsole *vc; -{ - int counter, times; - - for ( times=0; times<100; times++ ); - for ( counter=32; counter<127; counter++ ) - do_render ( counter, vc ); -} - -void -vt_il(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - register int beg, end; - - if ( vc->ycur >= (vc->ychars-2) ) - return; - - cdata->param[0] = cdata->param[0]<=0 ? 1 : cdata->param[0]; - - beg = cdata->scrr_beg; - end = cdata->scrr_end; - - cdata->scrr_beg = vc->ycur; - cdata->scrr_end = vc->ychars-1; - - for ( ; cdata->param[0]>0; cdata->param[0]-- ) - do_scrolldown( vc ); - - cdata->scrr_beg = beg; - cdata->scrr_end = end; -} - -void -vt_ic(vc) - struct vconsole *vc; -{ - int counter; - int ox, oy; - int *ptr = vc->charmap + (vc->xcur + vc->ycur*vc->xchars); - for ( counter=vc->xchars-vc->xcur; counter>=0; counter-- ) - ptr[counter+1] = ptr[counter]; - ptr[0] = ' '; - ox = vc->xcur; oy = vc->ycur; - - for ( ; vc->xcur < vc->xchars; ) - do_render_noscroll ( vc->charmap[vc->xcur+vc->ycur*vc->xchars], vc ); - vc->xcur = ox; vc->ycur = oy; -} - -void -vt_dch(vc) - struct vconsole *vc; -{ - int counter; - int ox, oy; - int *ptr = vc->charmap + (vc->ycur*vc->xchars); - - for ( counter=vc->xcur; counter<(vc->xchars-1); counter++ ) - ptr[counter] = ptr[counter+1]; - - ptr[vc->xchars] = ' '; - - ox = vc->xcur; oy = vc->ycur; - - for ( ; vc->xcur < vc->xchars; ) - do_render_noscroll ( vc->charmap[vc->xcur+vc->ycur*vc->xchars], vc ); - - vc->xcur = ox; vc->ycur = oy; -} - -void -vt_dl(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - register int beg, end; - - cdata->param[0] = cdata->param[0]<=0 ? 1 : cdata->param[0]; - cdata->param[0] = cdata->param[0]>vc->xchars ? vc->xchars : cdata->param[0]; - -/* - vc->xcur=0; -*/ - - beg = cdata->scrr_beg; - end = cdata->scrr_end; - - cdata->scrr_beg = vc->ycur; - cdata->scrr_end = vc->ychars-1; - - for ( ; cdata->param[0]>0; cdata->param[0]-- ) - do_scrollup( vc ); - - cdata->scrr_beg = beg; - cdata->scrr_end = end; -} - -/* Set scrolling region */ - -void -vt_stbm(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - - if((cdata->param[0] == 0) && (cdata->param[1] == 0)) - { - cdata->xcur = 0; - cdata->ycur = 0; - cdata->scrr_beg = 0; - cdata->scrr_len = vc->ychars; - cdata->scrr_end = cdata->scrr_len - 1; - return; - } - if(cdata->param[1] <= cdata->param[0]) - return; - - /* range parm 1 */ - - cdata->scrr_beg = cdata->param[0]-1; - cdata->scrr_len = cdata->param[1] - cdata->param[0] + 1; - cdata->scrr_end = cdata->param[1]-1; - -/* - if (cdata->scrr_beg<0) - cdata->scrr_beg = 0; -*/ - - if (cdata->scrr_end>(vc->ychars-1)) - cdata->scrr_end = vc->ychars-1; - - cdata->scrr_len = cdata->scrr_end - cdata->scrr_beg - 1; -{ - char buf[80]; - sprintf ( buf, "scrr_beg %d, scrr_end %d", cdata->scrr_beg, - cdata->scrr_end ); - dprintf ( buf ); -} - - cdata->flags &= ~F_LASTCHAR; -} - -void -vt_dsr(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - static u_char *answr = (u_char *)"\033[0n"; - static u_char *panswr = (u_char *)"\033[?13n"; /* Printer Unattached */ - static u_char *udkanswr = (u_char *)"\033[?21n"; /* UDK Locked */ - static u_char *langanswr = (u_char *)"\033[?27;1n"; /* North American*/ - static u_char buffer[16]; - int i = 0; - - switch(cdata->param[0]) - { - case 5: /* return status */ - cdata->report_chars = answr; - cdata->report_count = 4; - respond(vc); - break; - - case 6: /* return cursor position */ - buffer[i++] = 0x1b; - buffer[i++] = '['; - if((vc->ycur+1) > 10) - buffer[i++] = ((vc->ycur+1) / 10) + '0'; - buffer[i++] = ((vc->ycur+1) % 10) + '0'; - buffer[i++] = ';'; - if((vc->xcur+1) > 10) - buffer[i++] = ((cdata->xcur+1) / 10) + '0'; - buffer[i++] = ((vc->xcur+1) % 10) + '0'; - buffer[i++] = 'R'; - buffer[i++] = '\0'; - - cdata->report_chars = buffer; - cdata->report_count = i; - respond(vc); - break; - - case 15: /* return printer status */ - cdata->report_chars = panswr; - cdata->report_count = 6; - respond(vc); - break; - - case 25: /* return udk status */ - cdata->report_chars = udkanswr; - cdata->report_count = 6; - respond(vc); - break; - - case 26: /* return language status */ - cdata->report_chars = langanswr; - cdata->report_count = 8; - respond(vc); - break; - - default: /* nothing else valid */ - break; - } -} - -void -vt_su(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - - cdata->param[0] = cdata->param[0]<=0 ? 1 : cdata->param[0]; - cdata->param[0] = cdata->param[0]>(vc->xchars-1) ? vc->xchars-1 : cdata->param[0]; - - do_scrollup ( vc ); -} - -void -vt_set_dec_priv_qm(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - - switch(cdata->param[0]) - { - case 7: /* AWM - auto wrap mode */ - cdata->flags |= F_AWM; - break; - - /* Implement these */ - case 1: /* CKM - cursor key mode */ - case 3: /* COLM - column mode */ - case 6: /* OM - origin mode */ - case 8: /* ARM - auto repeat mode */ - case 25: /* TCEM - text cursor enable mode */ - break; - - case 0: /* error, ignored */ - case 2: /* ANM - ansi/vt52 mode */ - case 4: /* SCLM - scrolling mode */ - case 5: /* SCNM - screen mode */ - case 9: /* INLM - interlace mode */ - case 10: /* EDM - edit mode */ - case 11: /* LTM - line transmit mode */ - case 12: /* */ - case 13: /* SCFDM - space compression / field delimiting */ - case 14: /* TEM - transmit execution mode */ - case 15: /* */ - case 16: /* EKEM - edit key execution mode */ - case 42: /* NRCM - 7bit NRC characters */ - break; - } -} - -void -vt_keyappl(vc) - struct vconsole *vc; -{ - dprintf ( "VT_KEYAPPL" ); -} - -void -vt_clrtab(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - int i; - - if(cdata->param[0] == 0) - cdata->tab_stops[vc->xcur] = 0; - else if(cdata->param[0] == 3) - { - for(i=0; i<MAXTABSTOPS; i++) - cdata->tab_stops[i] = 0; - } -} - -/* -void -vt_cuf(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - - cdata->param[0] = (cdata->param[0] <= 0) ? 1 : cdata->param[0]; - - vc->xcur += cdata->param[0]; - - cdata->param[0] = (cdata->param[0] > vc->xchars ) ? vc->xchars : cdata->param[0]; -} -*/ - -void -vt_cuf(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - register int p = cdata->param[0]; - - if(vc->xcur == ((vc->xchars)-1)) /* already at right margin */ - return; - if(p <= 0) /* parameter min = 1 */ - p = 1; - else if(p > ((vc->xchars)-1)) /* parameter max = 79 */ - p = ((vc->xchars)-1); - if((vc->xcur + p) > ((vc->xchars)-1)) /* not more than */ - p = ((vc->xchars)-1) - vc->xcur; - vc->xcur += p; -} - -void -vt_sgr(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - register int i=0; - - do - { - vc->SGR ( vc, cdata->param[i] ); - switch ( cdata->param[i++] ) - { - case 0: /* reset to normal attributes */ - cdata->fgcol = cdata->nfgcol; - cdata->bgcol = cdata->nbgcol; - cdata->attribs=cdata->fgcol<<8 | cdata->bgcol<<11; - break; - case 1: /* bold */ - cdata->attribs |= BOLD; - break; - case 4: /* underline */ - cdata->attribs |= UNDERLINE; - break; - case 5: /* blinking */ - cdata->attribs |= BLINKING; - break; - case 7: /* reverse */ - cdata->fgcol = cdata->nbgcol; - cdata->bgcol = cdata->nfgcol; - cdata->attribs |= REVERSE; - cdata->attribs&=~0x3F00; - cdata->attribs|=cdata->fgcol<<8 | cdata->bgcol<<11; - break; - case 22: /* not bold */ - cdata->attribs &= ~BOLD; - break; - case 24: /* not underlined */ - cdata->attribs &= ~UNDERLINE; - break; - case 25: /* not blinking */ - cdata->attribs &= ~BLINKING; - break; - case 27: /* not reverse */ - cdata->attribs &= ~REVERSE; - cdata->fgcol = cdata->nfgcol; - cdata->bgcol = cdata->nbgcol; - cdata->attribs&=~0x3F00; - cdata->attribs|=cdata->fgcol<<8 | cdata->bgcol<<11; - break; - - default: - if ( ( cdata->param[i-1] > 29 )&&( cdata->param[i-1] < 38 ) ) - { - vc->SETFGCOL ( vc, cdata->param[i-1] - 30 ); - cdata->fgcol = cdata->param[i-1] - 30; - cdata->attribs&=~0x3F00; - cdata->attribs|=cdata->fgcol<<8 | cdata->bgcol<<11; - - } - if ( ( cdata->param[i-1] > 39 )&&( cdata->param[i-1] < 48 ) ) - { - vc->SETBGCOL ( vc, cdata->param[i-1] - 40 ); - cdata->bgcol = cdata->param[i-1] - 40; - cdata->attribs&=~0x3F00; - cdata->attribs|=cdata->fgcol<<8 | cdata->bgcol<<11; - } - } - } while ( i<=cdata->parami ); -} - -void -vt_clreos(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - int ptr; - if ( vc == vconsole_current ) - vc->R_CLREOS ( vc, cdata->param[0] ); - else - vconsole_pending = vc->number; - - switch ( cdata->param[0] ) - { - case 0: /* Erase from cursor to end of screen */ - for ( ptr=vc->xcur + vc->ycur * vc->xchars - ; ptr<(vc->xchars*vc->ychars); ptr++ ) - vc->charmap[ptr]=0x20; - break; - - case 1: /* Erase from start to cursor */ - for ( ptr=0; - ptr<vc->ycur*vc->xchars + vc->xcur; - ptr++ ) - vc->charmap[ptr]=0x20; - break; - - case 2: /* Blitz the whole bloody thing */ - if ((vc->flags&LOSSY)==0) - mapped_cls(vc); - if (vc==vconsole_current) - vc->CLS(vc); - else - vconsole_pending = vc->number; - break; - } -} - -void -vt_set_ansi(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - - switch(cdata->param[0]) - { - case 0: /* error, ignored */ - case 1: /* GATM - guarded area transfer mode */ - case 2: /* KAM - keyboard action mode */ - case 3: /* CRM - Control Representation mode */ - case 20: /* LNM - line feed / newline mode */ - break; - - case 4: /* IRM - insert replacement mode */ - cdata->irm = 1; - break; - - case 5: /* SRTM - status report transfer mode */ - case 6: /* ERM - erasue mode */ - case 7: /* VEM - vertical editing mode */ - case 10: /* HEM - horizontal editing mode */ - case 11: /* PUM - position unit mode */ - case 12: /* SRM - send-receive mode */ - case 13: /* FEAM - format effector action mode */ - case 14: /* FETM - format effector transfer mode */ - case 15: /* MATM - multiple area transfer mode */ - case 16: /* TTM - transfer termination */ - case 17: /* SATM - selected area transfer mode */ - case 18: /* TSM - tabulation stop mode */ - case 19: /* EBM - editing boundary mode */ - break; - } -} - -void -vt_reset_ansi(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - - switch(cdata->param[0]) - { - /* Implement these */ - case 0: /* error, ignored */ - case 1: /* GATM - guarded area transfer mode */ - case 2: /* KAM - keyboard action mode */ - case 3: /* CRM - Control Representation mode */ - case 20: /* LNM - line feed / newline mode */ - break; - - case 4: /* IRM - insert replacement mode */ - cdata->irm = 0; - break; - - case 5: /* SRTM - status report transfer mode */ - case 6: /* ERM - erasue mode */ - case 7: /* VEM - vertical editing mode */ - case 10: /* HEM - horizontal editing mode */ - case 11: /* PUM - position unit mode */ - case 12: /* SRM - send-receive mode */ - case 13: /* FEAM - format effector action mode */ - case 14: /* FETM - format effector transfer mode */ - case 15: /* MATM - multiple area transfer mode */ - case 16: /* TTM - transfer termination */ - case 17: /* SATM - selected area transfer mode */ - case 18: /* TSM - tabulation stop mode */ - case 19: /* EBM - editing boundary mode */ - break; - } -} - -/* DRN */ - -void -do_render_noscroll(c, vc) - char c; - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - /* THE RENDER STAGE **********************************/ - - if ((c>=0x20)&&(c<=0x7f)) - { - if (((vc->flags)&(LOSSY))==0) - { - if ( vc->charmap[vc->xcur+vc->ycur*vc->xchars] != c|cdata->attribs ) - { - if ( vc==vconsole_current ) - vc->RENDER ( vc, c ); - else - vconsole_pending = vc->number; - } - vc->charmap[ vc->xcur + vc->ycur*vc->xchars ] = c|cdata->attribs; - } - else - { - if ( vc==vconsole_current ) - vc->RENDER ( vc, c ); - else - vconsole_pending = vc->number; - } - } - - vc->xcur++; - - /*do_scrollcheck ( vc );*/ -} - -#ifdef SIMPLE_CURSOR -void -simple_cursor_on(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - if (cdata->simple_cursor_on) - return 0; - if (vc!=vconsole_current) - return 0; - if (((vc->flags)&(LOSSY))==0) - { - cdata->simple_cursor_store = vc->charmap[ vc->xcur + vc->ycur*vc->xchars ]; - vc->RENDER ( vc, SIMPLE_CURSOR_CHAR ); - } - cdata->simple_cursor_on = 1; -} - -void -simple_cursor_off(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - if (!cdata->simple_cursor_on) - return 0; - if (vc!=vconsole_current) - return 0; - if (((vc->flags)&(LOSSY))==0) - { - vc->RENDER ( vc, cdata->simple_cursor_store ); - } - cdata->simple_cursor_on = 0; -} -#endif - -/* DSC */ -void -do_scrollcheck(vc) - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - - /* BOUNDARY CHECK ************************************/ - if ((vc->xcur >= (vc->xchars))&&((cdata->flags&F_AWM)!=0)) - { - cdata->flags|=F_LASTCHAR; - cdata->lastpos = vc->ycur*vc->xchars+vc->xcur; - } - - /* SCROLL CHECK *************************************/ - if ( vc->ycur >= cdata->scrr_end+1 ) - { - do_scrollup ( vc ); - } -} - -/* DR */ - -int -do_render(c, vc) - char c; - struct vconsole *vc; -{ - struct vt220_info *cdata = (struct vt220_info *)vc->data; - /* THE RENDER STAGE **********************************/ - - if (((cdata->flags&F_AWM)==0)&&(vc->xcur >= 20)) - return 0; - - if ( cdata->flags & F_LASTCHAR ) - { - if ( cdata->lastpos==vc->ycur*vc->xchars+vc->xchars) - { - vc->ycur++; - vc->xcur = 0; - cdata->flags &= ~F_LASTCHAR; - do_scrollcheck(vc); - } - else - { - cdata->flags &= ~F_LASTCHAR; - } - } - - if ((c>=0x20)&&(c<=0x7f)) - { - if (((vc->flags)&(LOSSY))==0) - { - if ( cdata->irm == 0 ) - { - if(vc->charmap[vc->xcur+vc->ycur*vc->xchars]!=c|cdata->attribs ) - { - if ( vc==vconsole_current ) - vc->RENDER ( vc, c ); - else - vconsole_pending = vc->number; - } - vc->charmap[vc->xcur+vc->ycur*vc->xchars ] = c|cdata->attribs; - } - else - { - int counter; - int ox, oy; - int *ptr = vc->charmap + (vc->xcur + vc->ycur*vc->xchars); - for ( counter=vc->xchars-vc->xcur; counter>=0; counter-- ) - ptr[counter+1] = ptr[counter]; - ptr[0] = c; - ox = vc->xcur; oy = vc->ycur; - - for ( ; vc->xcur < vc->xchars; ) - do_render_noscroll ( vc->charmap[vc->xcur+vc->ycur*vc->xchars], vc ); - vc->xcur = ox; vc->ycur = oy; - - } - } - else - { - if ( vc==vconsole_current ) - vc->RENDER ( vc, c ); - else - vconsole_pending = vc->number; - } - } - - vc->xcur++; - - do_scrollcheck ( vc ); - - if ( cdata->flags & F_LASTCHAR ) - vc->xcur--; - return 0; -} - -int -TERMTYPE_PUTSTRING(string, length, vc) - char *string; - int length; - struct vconsole *vc; -{ - struct vt220_info *cdata; - register char c; - char dc[] = "x\0"; - cdata = (struct vt220_info *)vc->data; - - /* A piece of saftey code */ - if ( vconsole_current->vtty == 0 ) - return 0; - -#ifdef SIMPLE_CURSOR - if ( vc==vconsole_current ) - if ( vc->CURSORUPDATE(vc)==-1 ) simple_cursor_off ( vc ); -#else - if ( vc==vconsole_current ) - vc->CURSORUPDATE (vc); -#endif - - while ( ((c=*(string++))!=0) && ((length--)>0) ) - { - - if ( cdata->state != STATE_INIT ) - cdata->flags &= ~F_LASTCHAR; - - if ( ( c == 0x0a ) || ( c== 0x0d ) ) - cdata->flags &= ~F_LASTCHAR; - -/* Middle mouse button freezes the display while active */ - - while ((ReadByte(IO_MOUSE_BUTTONS) & MOUSE_BUTTON_MIDDLE) == 0); - -/* Left mouse button slows down the display speed */ - - if ((ReadByte(IO_MOUSE_BUTTONS) & MOUSE_BUTTON_LEFT) == 0) - delay(5000); - -/* Always process characters in the range of 0x00 to 0x1f */ - - -#ifdef DEBUGTERM -*dc = c; -switch (c) -{ - case 0x0a: dprintf ( "[0a]" ); break; - case 0x0d: dprintf ( "[0d]" ); break; - case 0x0c: dprintf ( "[0c]" ); break; - case 0x1b: dprintf ( "[1b]" ); break; -} -#endif - if ( c <= 0x1f ) - { - if ( cdata->disable_function ) - { - if ( cdata->flags & F_LASTCHAR ) - { - if ( cdata->lastpos==vc->ycur*vc->xchars+vc->xchars) - { - vc->ycur++; - vc->xcur = 0; - cdata->flags &= ~F_LASTCHAR; - do_scrollcheck(vc); - } - else - { - cdata->flags &= ~F_LASTCHAR; - } - } - - switch (c) - { - case 0x00: /* NUL */ - case 0x01: /* SOH */ - case 0x02: /* STX */ - case 0x03: /* ETX */ - case 0x04: /* EOT */ - case 0x05: /* ENQ */ - case 0x06: /* ACK */ - break; - - case 0x07: /* BEL */ - beep_generate(); - if ( !cdata->beepoff ) - c = 'G'; - break; - - case 0x08: /* BS */ - cdata->flags &= ~F_LASTCHAR; - if ( vc->xcur>0 ) - vc->xcur--; - break; - - case 0x09: /* TAB */ - while ( vc->xcur < vc->xchars-1 ) - { - vc->xcur++; - if (cdata->tab_stops[vc->xcur]) - break; - } - break; - - case 0x0a: - cdata->flags &= ~F_LASTCHAR; - vc->ycur++; - do_scrollcheck ( vc ); - break; - - case 0x0c: - cdata->flags &= ~F_LASTCHAR; - if ((vc->flags&LOSSY)==0) - mapped_cls(vc); - if (vc==vconsole_current) - vc->CLS(vc); - vc->xcur=0; - vc->ycur=0; - - break; - case 0x0d: - cdata->flags &= ~F_LASTCHAR; - vc->xcur=0; - break; - - case 0x10: /* DLE */ - case 0x11: /* DC1/XON */ - case 0x12: /* DC2 */ - case 0x13: /* DC3/XOFF */ - case 0x14: /* DC4 */ - case 0x15: /* NAK */ - case 0x16: /* SYN */ - case 0x17: /* ETB */ - break; - - case 0x18: /* CAN */ - cdata->state = STATE_INIT; - clr_params(cdata); - break; - - case 0x19: /* EM */ - break; - - case 0x1a: /* SUB */ - cdata->state = STATE_INIT; - clr_params(cdata); - break; - - case 0x1b: /* ESC */ - cdata->state = STATE_ESC; - clr_params(cdata); - break; - - case 0x1c: /* FS */ - case 0x1d: /* GS */ - case 0x1e: /* RS */ - case 0x1f: /* US */ - break; - } - } - } - else - { - /* 0x20 to 0xff depends on current state */ - switch ( cdata->state ) - { - case STATE_INIT: - do_render ( c, vc ); - break; - - case STATE_ESC: -#ifdef DEBUGTERM -{ - char buf[]="x"; - buf[0] = c; - dprintf ( buf ); -} -#endif - switch (c) - { - case '7': /* SAVE CUSOR */ - vt_sc ( vc ); - cdata->state = STATE_INIT; - break; - - case '8': /* RESTORE CUSOR */ - vt_rc ( vc ); - cdata->state = STATE_INIT; - break; - - case '=': - vt_keyappl ( vc ); - cdata->state = STATE_INIT; - break; - - case '>': /* Keypad numeric mode */ -#ifdef DEBUGTERM -dprintf ( "\r\nKEYPAD NUMERIC MODE\r\n "); -#endif - cdata->state = STATE_INIT; - break; - - case 'D': - vt_ind ( vc ); - cdata->state = STATE_INIT; - break; - - case 'E': - vt_nel ( vc ); - cdata->state = STATE_INIT; - break; - - case 'H': - cdata->tab_stops[vc->xcur] = 1; - cdata->state = STATE_INIT; - break; - - case 'M': - vt_ri ( vc ); - cdata->state = STATE_INIT; - break; - - case 'N': - cdata->Gs = cdata->G2; - cdata->ss = 1; - cdata->state = STATE_INIT; - break; - - case 'O': - cdata->Gs = cdata->G3; - cdata->ss = 1; - cdata->state = STATE_INIT; - break; - - case 'P': - cdata->dcs_state = DCS_INIT; - cdata->state = STATE_DCS; - break; - - case 'Z': - vt_da ( vc ); - cdata->state = STATE_INIT; - break; - - case '~': - cdata->GR = cdata->G1; - cdata->state = STATE_INIT; - break; - - case '[': - clr_params ( cdata ); - cdata->state = STATE_CSI; - break; - - case '\\': - cdata->state = STATE_INIT; - break; - - case 'c': - vt_ris ( vc ); - cdata->state = STATE_CSI; - break; - - case 'n': - cdata->GL = cdata->G2; - cdata->state = STATE_INIT; - break; - - case 'o': - cdata->GL = cdata->G3; - cdata->state = STATE_INIT; - break; - - case '}': - cdata->GR = cdata->G2; - cdata->state = STATE_INIT; - break; - - case '|': - cdata->GR = cdata->G3; - cdata->state = STATE_INIT; - break; - - default: - do_render ( c, vc ); - cdata->state = STATE_INIT; - break; - } - break; - - case STATE_CSIQM: -#ifdef DEBUGTERM -{ - char buf[]="x"; - buf[0] = c; - dprintf ( buf ); -} -#endif - switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': /* parameters */ - cdata->param[cdata->parami] *= 10; - cdata->param[cdata->parami] += (c-'0'); - break; - - case ';': /* next parameter */ - cdata->parami = - (cdata->parami+1 < MAXPARMS) ? - cdata->parami+1 : cdata->parami; - break; - - case 'h': - vt_set_dec_priv_qm ( vc ); - cdata->state = STATE_INIT; - break; - - case 'l': - vt_reset_dec_priv_qm ( vc ); - cdata->state = STATE_INIT; - break; - - case 'n': - vt_dsr ( vc ); - cdata->state = STATE_INIT; - break; - - case 'K': - vt_sel ( vc ); - cdata->state = STATE_INIT; - break; - - default: - do_render ( '[', vc ); - do_render ( c, vc ); - cdata->state = STATE_INIT; - { - register int counter; - for ( counter=0; counter<=cdata->parami; counter++ ) - { - do_render ( '@', vc ); - } - } - do_render ( c, vc ); - break; - } - - case STATE_CSI: -#ifdef DEBUGTERM -{ - char buf[]="x"; - buf[0] = c; - dprintf ( buf ); -} -#endif - switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': /* parameters */ - cdata->param[cdata->parami] *= 10; - cdata->param[cdata->parami] += (c-'0'); - break; - - case ';': /* next parameter */ - cdata->parami = - (cdata->parami+1 < MAXPARMS) ? - cdata->parami+1 : cdata->parami; - break; - - case '?': /* ESC [ ? family */ - cdata->state = STATE_CSIQM; - break; - - case '@': /* insert char */ - vt_ic ( vc ); - cdata->state = STATE_INIT; - break; - - /* - case '!': - cdata->state = STATE_STR; - break; - */ - - case 'A': /* cursor up */ - vt_cuu ( vc ); - cdata->state = STATE_INIT; - break; - - case 'B': /* cursor down */ - vt_cud ( vc ); - cdata->state = STATE_INIT; - break; - - case 'C': - vt_cuf ( vc ); - cdata->state = STATE_INIT; - break; - - case 'D': /* cursor back */ - vt_cub ( vc ); - cdata->state = STATE_INIT; - break; - - case 'H': /* direct cursor addressing */ - vt_curadr ( vc ); - cdata->state = STATE_INIT; - break; - - case 'J': /* erase screen */ - vt_clreos ( vc ); - cdata->state = STATE_INIT; - break; - - cdata->state = STATE_INIT; - break; - - case 'K': /* erase line */ - vt_clreol ( vc ); - cdata->state = STATE_INIT; - break; - - case 'L': /* insert line */ - vt_il ( vc ); - cdata->state = STATE_INIT; - break; - - case 'M': /* delete line */ - vt_dl ( vc ); - cdata->state = STATE_INIT; - break; - - case 'P': /* Delete chars */ - vt_dch ( vc ); - cdata->state = STATE_INIT; - break; - - case 'S': /* scroll up */ - vt_su ( vc ); - cdata->state = STATE_INIT; - break; - - case 'c': - vt_da ( vc ); - cdata->state = STATE_INIT; - break; - - case 'f': - vt_curadr ( vc ); - cdata->state = STATE_INIT; - break; - - case 'h': - vt_set_ansi ( vc ); - cdata->state = STATE_INIT; - break; - - case 'l': - vt_reset_ansi ( vc ); - cdata->state = STATE_INIT; - break; - - case 'm': /* select graphic rendition */ - vt_sgr( vc ); - cdata->state = STATE_INIT; - break; - - case 'n': - vt_dsr ( vc ); - cdata->state = STATE_INIT; - break; - - case 'r': /* set scrolling region */ - vt_stbm ( vc ); - cdata->state = STATE_INIT; - break; - - case 'y': - vt_tst ( vc ); - cdata->state = STATE_INIT; - break; - - default: - do_render ( '[', vc ); - do_render ( c, vc ); - cdata->state = STATE_INIT; - { - register int counter; - for ( counter=0; counter<=cdata->parami; counter++ ) - { - do_render ( '@', vc ); - } - } - do_render ( c, vc ); - cdata->state = STATE_INIT; - break; - } - break; - - default: - cdata->state = STATE_INIT; - break; - } - } - } -#ifdef SIMPLE_CURSOR - if ( vc==vconsole_current ) - if ( vc->CURSORUPDATE(vc)==-1 ) - simple_cursor_on ( vc ); -#else - if ( vc==vconsole_current ) - vc->CURSORUPDATE (vc); -#endif - return 0; -} - -void -console_debug() -{ -} - -int -vt220_swapin(vc) - struct vconsole *vc; -{ -#ifdef SIMPLE_CURSOR - if ( vc==vconsole_current ) - if ( vc->CURSORUPDATE(vc)==-1 ) simple_cursor_on ( vc ); -#else - if ( vc==vconsole_current ) - vc->CURSORUPDATE (vc); -#endif - return 0; -} - -int -vt220_swapout(vc) - struct vconsole *vc; -{ - return 0; -} - - -int -vt220_sleep(vc) - struct vconsole *vc; -{ -#ifdef SIMPLE_CURSOR - if ( vc==vconsole_current ) - if ( vc->CURSORUPDATE(vc)==-1 ) simple_cursor_off ( vc ); -#else - if ( vc==vconsole_current ) - vc->CURSORUPDATE (vc); -#endif - vc->FLASH ( vc, 0 ); - vc->CURSOR_FLASH ( vc, 0 ); - return 0; -} - -int -vt220_wake(vc) - struct vconsole *vc; -{ - vc->FLASH ( vc, 1 ); - vc->CURSOR_FLASH ( vc, 1 ); - -#ifdef SIMPLE_CURSOR - if ( vc==vconsole_current ) - if ( vc->CURSORUPDATE(vc)==-1 ) - simple_cursor_on ( vc ); -#else - if ( vc==vconsole_current ) - vc->CURSORUPDATE (vc); -#endif - return 0; -} - -int -vt220_scrollback(vc) - struct vconsole *vc; -{ - return -1; -} - -int -vt220_scrollforward(vc) - struct vconsole *vc; -{ - return -1; -} - -int -vt220_scrollbackend(vc) - struct vconsole *vc; -{ - return -1; -} - -int -vt220_debugprint(vc) - struct vconsole *vc; -{ - printf ( "VT220 TERMINAL EMULATOR\n\n" ); - printf ( "no information\n" ); - printf ( "\n" ); - return 0; -} - -int -vt220_modechange(vc) - struct vconsole *vc; -{ - if (vc->number >= 64) - return(0); - - if (vc == NULL) { - return(EINVAL); - } - vt_str ( vc ); - if (vc->charmap) - { - free ( vc->charmap, M_DEVBUF ); - - MALLOC (vc->charmap, int *, sizeof(int)*((vc->xchars)*(vc->ychars)), M_DEVBUF, M_NOWAIT ); - if ((vc->flags&LOSSY)==0) - mapped_cls(vc); - if (vc==vconsole_current) - vc->CLS(vc); - vc->xcur=0; - vc->ycur=0; - } - - return 0; -} - -int -vt220_attach(vc, a, b, aux) - struct vconsole *vc; - struct device *a; - struct device *b; - void *aux; -{ - return 0; -} - -struct terminal_emulator vt220 = { - vt220_name, - vt220_init, - vt220_putstring, - vt220_swapin, - vt220_swapout, - vt220_sleep, - vt220_wake, - vt220_scrollback, - vt220_scrollforward, - vt220_scrollbackend, - vt220_debugprint, - vt220_modechange, - vt220_attach -}; diff --git a/sys/arch/arm32/dev/console/vt220.h b/sys/arch/arm32/dev/console/vt220.h deleted file mode 100644 index ef877f0919d..00000000000 --- a/sys/arch/arm32/dev/console/vt220.h +++ /dev/null @@ -1,117 +0,0 @@ -/* $NetBSD: vt220.h,v 1.2 1996/03/18 19:33:12 mark Exp $ */ - -/* - * Copyright (c) 1994-1995 Melvyn Tang-Richardson - * Copyright (c) 1994-1995 RiscBSD kernel team - * 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 RiscBSD kernel team - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE RISCBSD TEAM ``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 AUTHORS 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. - * - * RiscBSD kernel project - * - * vt220.h - * - * VT220 emulation header file - * - * Created : 17/09/94 - */ - -#define MAXTABSTOPS 132 - -#define STATE_INIT 0 -#define STATE_HASH 1 -#define STATE_BROPN 2 -#define STATE_BRCLO 3 -#define STATE_STAR 4 -#define STATE_PLUS 5 -#define STATE_MINUS 6 -#define STATE_DOT 7 -#define STATE_SLASH 8 -#define STATE_AMPSND 9 -#define SHP_INIT 10 -#define STATE_ESC 11 -#define STATE_CSIQM 14 -#define STATE_CSI 15 -#define STATE_DCS 16 -#define STATE_SCA 17 -#define STATE_STR 18 - -/* sub-states for Device Control String processing */ - -#define DCS_INIT 0 /* got ESC P ... */ -#define DCS_AND_UDK 1 /* got ESC P ... | */ -#define DCS_UDK_DEF 2 /* got ESC P ... | fnckey / */ -#define DCS_UDK_ESC 3 /* got ESC P ... | fnckey / ... ESC */ -#define DCS_DLD_DSCS 4 /* got ESC P ... { */ -#define DCS_DLD_DEF 5 /* got ESC P ... { dscs */ -#define DCS_DLD_ESC 6 /* got ESC P ... { dscs ... / ... ESC */ - -#define F_AWM (1) -#define F_LASTCHAR (2) -#define F_IRM (3) - -#define MAXPARMS 10 - -struct vt220_info { - int tab_stops[MAXTABSTOPS]; - int state; - int hp_state; - int disable_function; - int lastchar; - int beepoff; - int param[MAXPARMS]; - int parami; - u_char m_om, sc_om; /* flag, vt100 mode, origin mode */ - u_char scrr_beg; - u_char scrr_len; - u_char scrr_end; - int simple_cursor_store; - int simple_cursor_on; - - int dcs_state; - - int G0, G1, G2, G3, GL, GR, sc_G0, sc_G1, sc_G2, sc_G3, sc_GL, sc_GR; - int Gs, ss; - int xcur, ycur, sc_xcur, sc_ycur; - int sc_flag; - - char *report_chars; - int report_count; - int cursor_on; - - int fgcol, bgcol; - int nfgcol, nbgcol; - - int attribs; - int flags; - int sflags; - - int lastpos; - int irm; -}; - diff --git a/sys/arch/arm32/dev/rd_hooks.c b/sys/arch/arm32/dev/rd_hooks.c deleted file mode 100644 index 7aa97324645..00000000000 --- a/sys/arch/arm32/dev/rd_hooks.c +++ /dev/null @@ -1,98 +0,0 @@ -/* $NetBSD: rd_hooks.c,v 1.5 1996/03/28 21:14:13 mark Exp $ */ - -/* - * Copyright (c) 1995 Gordon W. Ross - * 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. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 <sys/param.h> -#include <sys/reboot.h> -#include <sys/device.h> - -#include <vm/vm.h> -#include <vm/vm_map.h> -#include <vm/vm_kern.h> - -#include <dev/ramdisk.h> - -#ifndef RAMDISK_SIZE -#define RAMDISK_SIZE 0 -#endif - -/*extern int boothowto;*/ -extern u_int ramdisc_size; -struct rd_conf *bootrd = NULL; - -int load_ramdisc_from_floppy __P((struct rd_conf *rd, dev_t dev)); - -/* - * This is called during autoconfig. - */ -int -rd_match_hook(parent, self, aux) - struct device *parent; - void *self; - void *aux; -{ - return (1); -} - -void -rd_attach_hook(unit, rd) - int unit; - struct rd_conf *rd; -{ - if (unit == 0) { - if (ramdisc_size == 0 && RAMDISK_SIZE) - ramdisc_size = (RAMDISK_SIZE * 1024); - - if (ramdisc_size != 0) { - rd->rd_size = round_page(ramdisc_size); - rd->rd_addr = (caddr_t)kmem_alloc(kernel_map, ramdisc_size); - rd->rd_type = RD_KMEM_FIXED; - bootrd = rd; - } - } - printf("rd%d: allocated %dK (%d blocks)\n", unit, rd->rd_size / 1024, rd->rd_size / DEV_BSIZE); -} - - -/* - * This is called during open (i.e. mountroot) - */ - -void -rd_open_hook(unit, rd) - int unit; - struct rd_conf *rd; -{ -/* I use the ramdisc for other testing ... */ -#if 0 - if (unit == 0) { - /* The root ramdisk only works single-user. */ - boothowto |= RB_SINGLE; - } -#endif -} |