v07i088: command -- run programs in windows (Unix PC only)
Brandon S. Allbery - comp.sources.misc
allbery at uunet.UU.NET
Sat Jul 22 10:47:44 AEST 1989
Posting-number: Volume 7, Issue 88
Submitted-by: ins_anmy at JHUNIX.BITNET (Norman M Yarvin)
Archive-name: command
[...and whatever happened to "windy"? ++bsa]
Command is a program for the AT&T Unix PC. It is my replacement for the
functionality I use in the User Agent software provided with the Unix PC.
That is, it starts up new shells (actually, any program you want) in any
size/any position window.
Norman Yarvin
yarvin at cs.jhu.edu, (seismo!umcp-cs | allegra!hopkins) !jhunix!ins_anmy
#--------------------------------CUT HERE-------------------------------------
#! /bin/sh
#
# This is a shell archive. Save this into a file, edit it
# and delete all lines above this comment. Then give this
# file to sh by executing the command "sh file". The files
# will be extracted into the current directory owned by
# you with default permissions.
#
# The files contained herein are:
#
# -rw-r--r-- 1 norman people 2220 Jun 29 05:07 README
# -rw-r--r-- 1 norman people 5421 Jun 30 18:57 command.doc
# -rw-r--r-- 1 norman people 287 Jun 30 18:53 makefile
# -rw-r--r-- 1 norman people 1578 Jun 29 03:10 alias.c
# -rw-r--r-- 1 norman people 2053 Jun 29 03:10 command.c
# -rw-r--r-- 1 norman people 2223 Jun 29 03:10 edit.c
# -rw-r--r-- 1 norman people 670 Jun 29 03:10 internal.c
# -rw-r--r-- 1 norman people 1192 Jun 29 03:10 mouse.c
# -rw-r--r-- 1 norman people 2347 Jun 29 03:10 parse.c
# -rw-r--r-- 1 norman people 4150 Jun 29 03:10 window.c
# -rw-r--r-- 1 norman people 1513 Jun 29 14:24 config.h
# -rw-r--r-- 1 norman people 1310 Jun 29 03:10 mouse.h
# -rw-r--r-- 1 norman people 657 Jun 29 14:07 .cmdrc
# -rw-r--r-- 1 norman people 690 Jun 29 14:07 .cmdrc2
# -rw-r--r-- 1 norman people 123 Jun 29 03:16 mice/fighter.m
# -rw-r--r-- 1 norman people 590 Jun 29 03:16 mice/moron.m
# -rw-r--r-- 1 norman people 146 Jun 29 03:16 mice/mouse.m
# -rw-r--r-- 1 norman people 1061 Jun 29 03:16 mice/series.m
# -rw-r--r-- 1 norman people 214 Jun 29 03:16 mice/small.m
# -rw-r--r-- 1 norman people 480 Jun 29 03:16 mice/target.m
# -rw-r--r-- 1 norman people 1056 Jun 29 03:16 mice/target2.m
# -rw-r--r-- 1 norman people 659 Jun 29 03:16 mice/unix.m
# -rw-r--r-- 1 norman people 19563 Jun 29 03:18 36x102.font
#
echo 'x - README'
if test -f README; then echo 'shar: not overwriting README'; else
sed 's/^X//' << '________This_Is_The_END________' > README
XThis is version 1.0 of "command", a command interpreter for the Unix PC.
XNote that the Unix PC is a specific 68000-based unix machine made by AT&T,
Xnot a PC-compatible running Unix. Command contains much Unix PC specific
Xcode.
X
XCommand works in the following manner: it continually reads command lines
Xfrom the current window, and executes them. Command lines usually tell
Xcommand to make another window, and execute a program in the new window.
XCommand has a limited alias feature.
X
XOn initialization, command reads in the file $HOME/.cmdrc, and processes it
Xas if it had been typed in on the command line.
X
XCommand was written by me, Norman Yarvin, for my own use. It has very
Xlittle error checking, and probably a few bugs. It reflects my own
Xidiosyncrasies both in programming style and in its operation. However, it
Xis very flexible, and should, with a little effort, suit most people just
Xfine. I am releasing it into the public domain; if anybody tries to make a
Xbuck off selling public domain software for the Unix PC, they will go out of
Xbusiness anyway.
X
XTo set up command, you should modify config.h as you desire, then run make.
XDocumentation is in command.doc.
X
XIf you want to modify command, be warned: the statement at the head of
Xcommand.c is only half in jest. Clarity has been sacrificed at the altar of
Xefficiency.
X
XI have included the 36x102 font in this posting. I got this font over the
Xnet, and have made some modifications. I have also included two sample
X.cmdrc files: the first is the one I use, and is intended for the 36x102
Xfont; the other is for the standard 24x80 font.
X
XIf you want to use the 36x102 font, do it as follows. Convert the
X36x102 font to binary form, and install it in /usr/lib/wfont:
X
X# cfont 36x102.font >36x102.ft
X# mv 36x102.ft /usr/lib/wfont
X
XThen, either (1) add the statement
X
X sfont -s /usr/lib/wfont/36x102.ft 0
X
Xin /etc/.fontload (this makes it the default system font), or (2) define the
Xshell function
X
X $ setfont() { setf 6; setf $1 6; setf 0; setf $1 0; }
X
Xand then run
X
X $ setfont /usr/lib/wfont/36x102.ft
X
Xin each new window you create. The latter won't work properly with
Xcommand's line-and-column automatic setup, though. Maybe in version 1.1.
X
________This_Is_The_END________
if test `wc -l < README` -ne 55; then
echo 'shar: README was damaged during transit (should have been 55 bytes
fi
fi ; : end of overwriting check
echo 'x - command.doc'
if test -f command.doc; then echo 'shar: not overwriting command.doc'; else
sed 's/^X//' << '________This_Is_The_END________' > command.doc
XThis is documentation for version 1.0 of "command", a command interpreter
Xfor the Unix PC. Note that the Unix PC is a specific 68000-based unix
Xmachine made by AT&T, not a PC-compatible running Unix. Command is for the
XUnix PC only.
X
XOPERATION
X
X Command works in the following manner: it continually reads command
X lines from the current window, and executes them. Command lines
X usually tell command to make another window, and execute a program
X in the new window.
X
X On initialization, command reads in the file $HOME/.cmdrc, and
X processes it as if it had been typed in on the command line.
X
XEDITING
X
X When it is being typed in, the command line is displayed on the
X bottom of the screen. Text typed in will be inserted at the cursor
X position; in addition, the following emacs style editing keys are
X recognized:
X
X ^a go to beginning of line
X ^b go backward a character
X ^d delete next character
X ^e go to end of line
X ^f fo forward a character
X ^h or delete delete previous character
X ^k kill to end of line
X ^z <Msg> copy shell alias, execute command line
X ^m <Return> execute command line
X
X Command designates itsself the "system manager window", unless
X compiled without that option (see config.h). This just means that
X whenever <Msg> is pressed, command gets it, even if command is not
X the currently active window. When command reads the Msg key, it
X immediately executes a special alias called the shell alias (see the
X description of the alias internal command.).
X
X If ^d is pressed when there is no text on the command line, then
X command exits. This is meant to log you out, so the window is left
X in raw mode.
X
XTHE COMMAND LINE
X
X A command line consists of the following:
X
X a set of window parameters, enclosed in brackets (optional)
X
X a program name, followed by a list of blank-separated
X parameters to be passed to the program. (also optional)
X
X Any text after a hash mark (#) is a comment, and is ignored.
X
XWINDOW PARAMETERS
X
X Command keeps a set of current window parameters. This set is used
X to make all new windows. Each time window parameters are included on
X the command line, each command line window parameter overwrittes
X the corresponding current window parameter.
X
X Window parameters are any of the following:
X
X x<integer> set x coordinate of the upper left hand
X window corner to <integer>
X y<integer> set y coordinate of the upper left hand
X window corner to <integer>
X w<integer> set width of the upper left hand
X window corner to <integer>
X h<integer> set height of the upper left hand
X window corner to <integer>
X b toggle window border flag
X v toggle window variable character spacing flag
X u toggle window vertical scroll icon flag
X s toggle window horizontal scroll icon flag
X e toggle window help icon flag
X c toggle window cancel icon flag
X r toggle window resize icon flag
X m toggle window border move flag
X
X Any other characters are ignored.
X
XINTERNAL COMMANDS
X
X A program name is either the name of an internal command, or a full
X path name of an executable file (not a shell script). There are
X three internal commands in command v1.0: they are as follows:
X
X mouse mfile
X Command keeps a current mouse icon, used in the same way as
X the current window parameters. The "mouse" internal command
X reads in a new mouse from mfile. Mfile must be organized in
X the following fashion: a set of mouse parameters, then the
X word "data" (actually, just a "d" will do) followed by a
X newline, then a character bitmap. Mouse parameters are one
X of
X
X "hs" horizontal size
X "vs" vertical size
X "ha" horizontal adjust
X "va" vertical adjust
X
X followed by a single space, then an integer. A character
X bitmap is up to 32 lines of up to 32 characters each: for
X every non-blank character, the corresponding pixel is turned
X on.
X
X self
X Self resets the command window to the current window
X parameters and the current mouse.
X
X alias aname atext
X This command sets the alias aname to the value atext.
X Thereafter, if aname is used as a program name, aname will
X be replaced with atext on the command line. If aname is
X "sh", then the alias is also designated the "shell alias",
X and is executed immediately whenever <Msg> is pressed (see
X EDITING)
X
XEXECUTION
X
X If a program name is not one of the three internal commands, then it
X is executed in its own window. The window that is created has the
X following attributes:
X
X -- its size and shape are given by the current window
X parameters.
X
X -- its mouse is the current mouse.
X
X -- if this option is compiled in (see config.h), interrupt
X is set to ^c, kill is set to ^u, and 8'th bit stripping is
X turned off (so the meta-key can be used if you are using
X CAPCTL).
X
X -- The environment variables LINES, COLUMNS, and TERMCAP are
X set to the appropriate values for the new window's size.
X
X Note that path searching has not been implemented; a full path name
X (e.g /bin/ksh or /usr/local/bin/jove) must be given, or the program
X will not be found.
X
XIT WOULD BE NICE IF...
X
X Full path names were not required for all programs that command runs.
X
X Command history were implemented.
X
XBUGS
X
X For an unknown reason, jove does not work if executed directly from
X command. However, running "/bin/ksh -c /usr/local/bin/jove" does
X work. Yech.
X
XSEE ALSO
X
X The source code
X ./README
X ./.cmdrc, ./mice/* sample command rc / mouse icon files
________This_Is_The_END________
if test `wc -l < command.doc` -ne 159; then
echo 'shar: command.doc was damaged during transit (should have been 159
fi
fi ; : end of overwriting check
echo 'x - makefile'
if test -f makefile; then echo 'shar: not overwriting makefile'; else
sed 's/^X//' << '________This_Is_The_END________' > makefile
XCC=/bin/ccc
XCFLAGS=-g
XDEST=/usr/local/bin
XOBJS=edit.o command.o alias.o window.o parse.o internal.o mouse.o
X
Xcommand: $(OBJS)
X $(CC) $(CCFLAGS) -o command ${OBJS}
X
Xmouse.o: mouse.h config.h
X
Xalias.o window.o: config.h
X
Xinstall:
X su root -c "chown root.root command ; mv command $(DEST)"
________This_Is_The_END________
if test `wc -l < makefile` -ne 14; then
echo 'shar: makefile was damaged during transit (should have been 14 byt
fi
fi ; : end of overwriting check
echo 'x - alias.c'
if test -f alias.c; then echo 'shar: not overwriting alias.c'; else
sed 's/^X//' << '________This_Is_The_END________' > alias.c
X/*
X* alias.c -- for "command", a Unix PC command interpreter
X*/
X
X#include <sys/pte.h>
X#include <stdio.h>
X#include "config.h"
X
Xstruct alias { /* a binary tree
X struct alias *gt, *lt;
X char *alias, *text;
X};
X
Xchar *alloc();
Xchar shmac[80]=SHMAC;
X
Xstruct alias **afind(s) /* find an alias, or a p
Xchar *s;
X{
X static struct alias *head=NULL;
X struct alias **al;
X int i;
X
X for(al=&head; *al; ) {
X if(!(i=strcmp(s,(*al)->alias)))
X break;
X al = i<0 ? &(*al)->lt : &(*al)->gt;
X }
X return al;
X}
X
Xchar *alias(s) /* find
Xchar *s;
X{
X char *strcpy();
X struct alias *a;
X static char abuf[256];
X
X return (a=*afind(s)) ? strcpy(abuf,a->text) : NULL;
X}
X
Xchar *mkalias(alias,text)
Xchar *alias,*text;
X{
X struct alias **a;
X
X if(strcmp(alias,"sh")) /* is it
X strcpy(shmac,text);
X a=afind(alias);
X if(!*a) { /* does
X *a=(struct alias *)alloc(sizeof(struct alias));
X (*a)->alias=alloc(strlen(alias)+1);
X strcpy((*a)->alias,alias);
X }
X (*a)->text=alloc(strlen(text)+1);
X strcpy((*a)->text,text);
X}
X
Xchar *alloc(n) /* fast allocator for objects not to be
X{
X static char *brk=0, *ubrk; /* brk is actual breakpoint, ubr
X register char *oldubrk;
X register int size;
X char *sbrk();
X
X n+=1;
X n&=0xfffffffe;
X size=(n/BYTES_PER_PAGE+1)*BYTES_PER_PAGE;
X if(!brk)
X brk=(ubrk=sbrk(size))+size;
X if(ubrk+n >= brk){
X brk+=size;
X sbrk(size);
X }
X oldubrk=ubrk;
X ubrk+=n;
X return oldubrk;
X}
________This_Is_The_END________
if test `wc -l < alias.c` -ne 78; then
echo 'shar: alias.c was damaged during transit (should have been 78 byte
fi
fi ; : end of overwriting check
echo 'x - command.c'
if test -f command.c; then echo 'shar: not overwriting command.c'; else
sed 's/^X//' << '________This_Is_The_END________' > command.c
X/*******
X* *
X* / * WARNING: DO NOT ATTEMPT TO ALTER THIS PROGRAM. EXPOSED HIGH VOLTAGE.
X* /__ * USER-SERVICEABLE PARTS INSIDE. THIS PROGRAM IS TO BE SERVICED ONLY B
X* / * PROPERLY QUALIFIED SERVICE PERSONNEL. CONSULT THE SERVICE MANUAL FOR
X* / * PROPER SERVICE PROCEDURES TO ASSURE CONTINUED COMPLIANCE WITH FEDERAL
X* * PERFOMANCE STANDARDS.
X********
X*
X* command.c -- main routine of Unix PC command interpreter
X*
X* Written by Norman Yarvin. Send bug fixes to yarvin at cs.jhu.edu.
X* No copyright.
X*
X*/
X
X#include <fcntl.h>
X#include <signal.h>
X#include <stdio.h>
X
Xint initfd; /* .cmdr
Xchar **envp1;
X
Xmain(argc,argv,envp)
Xint argc;
Xchar **argv;
Xchar **envp;
X{
X char *strcpy(), *strcat(), *envinit(), *getcmd(), *initgetcmd(), initfil
X
X signal(SIGCLD,SIG_IGN);
X home=envinit(envp); /* get $HOME, set envp up for pa
X wsetup(); /* set u
X strcpy(initfile, home);
X strcat(initfile, "/.cmdrc");
X if((initfd=open(initfile,O_RDONLY))!=-1) {
X process(initgetcmd); /* initgetcmd re
X close(initfd);
X }
X process(getcmd); /* getcmd reads
X}
X
Xprocess(getcmd)
Xchar *(*getcmd)();
X{
X char *cmd, **argv;
X char **parse();
X
X while(cmd=(*getcmd)()) {
X if((argv=parse(cmd)) && *argv && !internal(argv))
X switch(fork()){
X case -1:
X error("fork failed"); /* we co
X default:
X break;
X case 0:
X wmake(*argv);
X execve(*argv, argv, envp1);
X perror(*argv); /* exec
X sleep(2);
X _exit(0);
X }
X }
X}
X
Xchar *initgetcmd()
X{
X static char buf[BUFSIZ], cmd[256];
X static int size, bp=BUFSIZ;
X register char c, *cmdp;
X
X cmdp=cmd;
X while((size = bp==BUFSIZ ? (bp=0,read(initfd,buf,BUFSIZ)) : size) != bp)
X c=buf[bp++];
X *cmdp++ = c=='\t' ? ' ' : c; /* tab -> space */
X if(c=='\n' || cmdp-cmd>254) {
X cmdp[-1]=0;
X return cmd;
X }
X }
X return 0;
X}
________This_Is_The_END________
if test `wc -l < command.c` -ne 82; then
echo 'shar: command.c was damaged during transit (should have been 82 by
fi
fi ; : end of overwriting check
echo 'x - edit.c'
if test -f edit.c; then echo 'shar: not overwriting edit.c'; else
sed 's/^X//' << '________This_Is_The_END________' > edit.c
X/*
X* edit.c -- for "command", a Unix PC command interpreter
X*/
X
X#include <sys/window.h>
X
Xextern struct utdata utdata;
Xextern char *cmd, shmac[];
X
Xchar *getcmd()
X{
X char c;
X int offset, first=1;
X register char *cmdp,*cp1,*cp2;
X
X for(*(cmdp=cmd)=0; ; ){
X if(*cmdp) {
X *cmdp|=0x80; /* highlight cur
X ioctl(0,WIOCSETTEXT,&utdata);
X *cmdp&=0x7f; /* remove highli
X } else {
X *cmdp=' '|0x80;
X cmdp[1]=0;
X ioctl(0,WIOCSETTEXT,&utdata);
X *cmdp=0;
X }
X read(0, &c, 1);
X if(first) {
X first=0;
X error("");
X }
X c&=0x7f; /* strip 8th bit
X switch(c) {
X case 0x01: /* ^a: to beginn
X cmdp=cmd;
X break;
X case 0x02: /* ^b: non-destr
X if(cmdp<=cmd)
X break;
X cmdp--;
X break;
X case 0x04: /* ^d: delete ne
X if(!*cmdp) {
X if(cmdp==cmd)
X return 0;
X break;
X }
X cp2=cmdp;
X for(cp1=cp2++; *cp1++=*cp2++; );
X break;
X case 0x05: /* ^e: end of li
X while(*cmdp)
X cmdp++;
X break;
X case 0x06: /* ^f: forward a
X if(!*cmdp)
X break;
X cmdp++;
X break;
X case 0x08: /* ^h: backspace
X case 0x7f: /* delete */
X if(cmdp<=cmd)
X break;
X cp2=cmdp--;
X for(cp1=cmdp; *cp1++=*cp2++; );
X break;
X case 0x0b: /* ^k: kill to e
X *cmdp=0;
X break;
X case 0x1a: /* ^z (Msg): cop
X for(cp1=shmac,cmdp=cmd; *cmdp++=*cp1++; );
X case 0x0d: /* ^m: return */
X return cmd;
X case 0x00: /* ^~ */
X case 0x03: /* ^c */
X case 0x07: /* ^g */
X case 0x0a: /* ^j */
X case 0x0c: /* ^l: redraw */
X case 0x0e: /* ^n */
X case 0x0f: /* ^o */
X case 0x10: /* ^p */
X case 0x11: /* ^q */
X case 0x12: /* ^r */
X case 0x13: /* ^s */
X case 0x14: /* ^t */
X case 0x16: /* ^v */
X case 0x17: /* ^w */
X case 0x18: /* ^x */
X case 0x19: /* ^y */
X break;
X case 0x09: /* ^i: tab inser
X c=' ';
X default: /* insert it */
X for(cp1=cmdp; *cp1; cp1++);
X if(cp1>=cmd+(WTXTLEN-2)) /* parenthesized
X break;
X cp2=cp1++;
X for(; cp1>cmdp; *cp1--=*cp2--);
X *cmdp++=c;
X }
X }
X}
________This_Is_The_END________
if test `wc -l < edit.c` -ne 102; then
echo 'shar: edit.c was damaged during transit (should have been 102 byte
fi
fi ; : end of overwriting check
echo 'x - internal.c'
if test -f internal.c; then echo 'shar: not overwriting internal.c'; else
sed 's/^X//' << '________This_Is_The_END________' > internal.c
X/*
X* internal.c -- for "command", a Unix PC command interpreter
X*/
X
Xint self(), readmouse();
X
Xstruct internal{
X char *name;
X int (*func)();
X} internals[] = {
X { "mouse", readmouse }, /* add functions
X { "self", self } /* and c
X};
X
X#define INTERNALS 2
X
Xinternal(argv)
Xchar **argv;
X{
X struct internal *top, *bot, *mid;
X int i;
X
X top=internals; /* binary search */
X bot=internals+(INTERNALS-1);
X while(top<bot) {
X mid=top+((bot-top)>>1);
X if(!(i=strcmp(*argv,mid->name))) {
X top=mid;
X break;
X }
X if(i<0)
X bot=mid;
X else
X top=mid+1;
X }
X if(strcmp(*argv,top->name))
X return 0;
X (*top->func)(argv);
X return 1;
X}
________This_Is_The_END________
if test `wc -l < internal.c` -ne 40; then
echo 'shar: internal.c was damaged during transit (should have been 40 b
fi
fi ; : end of overwriting check
echo 'x - mouse.c'
if test -f mouse.c; then echo 'shar: not overwriting mouse.c'; else
sed 's/^X//' << '________This_Is_The_END________' > mouse.c
X/*
X* mouse.c -- for "command", a Unix PC command interpreter
X*/
X
X#include "mouse.h"
X
Xreadmouse(argv)
Xchar **argv;
X{
X int fd;
X char buf[1500];
X register char *bp=buf, *end;
X register int i;
X unsigned short *data, *dend;
X
X if(!argv[1]) {
X error("Usage: mouse file");
X return;
X }
X if((fd=open(argv[1],0)) == -1){
X error("Can't open mouse data file");
X return;
X }
X bp[read(fd,bp,1500)]=0;
X close(fd);
X m_icon.ic_fc.fc_hs=32;
X m_icon.ic_fc.fc_vs=32;
X m_icon.ic_fc.fc_ha=0;
X m_icon.ic_fc.fc_va=0;
X for(dend=(data=m_icon.ic_raster)+64; data<dend; data++)
X *data=0;
X for(; *bp; bp++) { /* get i
X if(*bp=='h') {
X if(*++bp=='s')
X m_icon.ic_fc.fc_hs=getint(bp+1);
X else
X m_icon.ic_fc.fc_ha=getint(bp+1);
X } else if(*bp=='v') {
X if(*++bp=='s')
X m_icon.ic_fc.fc_vs=getint(bp+1);
X else
X m_icon.ic_fc.fc_va=getint(bp+1);
X }
X if(*bp=='d') {
X while(*bp++ != '\n');
X break;
X }
X }
X for(data=m_icon.ic_raster, i=1; data<dend&&*bp;){
X if(*bp=='\n') {
X data += (dend-data)%2 || m_icon.ic_fc.fc_hs<=16 ? 1 : 2;
X i=1;
X bp++;
X continue;
X }
X if(i >= 1<<16) {
X i=1;
X data++;
X }
X if(*bp++ != ' ')
X *data|=i;
X i<<=1;
X }
X}
________This_Is_The_END________
if test `wc -l < mouse.c` -ne 64; then
echo 'shar: mouse.c was damaged during transit (should have been 64 byte
fi
fi ; : end of overwriting check
echo 'x - parse.c'
if test -f parse.c; then echo 'shar: not overwriting parse.c'; else
sed 's/^X//' << '________This_Is_The_END________' > parse.c
X/*
X* parse.c -- for "command", a Unix PC command interpreter
X*/
X
X#include <sys/window.h>
X#include <stdio.h>
X
Xextern struct uwdata uwdata; /* set here, use
X
X#define BEGIN 0x00 /* states of com
X#define BLANK 0x01
X#define PARAM 0x02
X#define WPARAM 0x03
X
Xchar *argv[40];
X
Xchar **parse(cmd)
Xchar *cmd;
X{
X register char **argvp=argv, *cmdp, c;
X register int state=BEGIN;
X int first=1;
X char *alias(), *cmdp2=NULL;
X char *temp;
X
X for(cmdp=cmd; *cmdp && *cmdp!='#'; cmdp++); /* end cmd line
X *cmdp=' '; /* # des
X cmdp[1]=0;
X for(cmdp=cmd; (c=*cmdp) || cmdp2 && (c=*(cmdp=cmdp2)) && !(cmdp2=0); cmd
X switch(state) {
X case BEGIN: /* we start here
X if(c=='[') {
X state=WPARAM;
X break;
X }
X case BLANK: /* we're process
X if(c==' ')
X break;
X state=PARAM;
X *argvp++=cmdp;
X break;
X case PARAM: /* we're process
X if(c!=' ')
X break;
X *cmdp=0;
X if(first) {
X first=0;
X if(temp=alias(*argv)) {
X *(cmdp2=cmdp)=' ';
X cmdp=temp-1;
X argvp=argv;
X state=BEGIN;
X break;
X }
X }
X else if(argvp==argv+2 && !strcmp(*argv,"alias"))
X mkalias(argv[1], ++cmdp);
X return NULL;
X }
X state=BLANK;
X break;
X case WPARAM: /* we're processing wind
X switch(c) {
X case 'x' : uwdata.uw_x = getint(cmd
X case 'y' : uwdata.uw_y = getint(cmd
X case 'w' : uwdata.uw_width = getint(cmd
X case 'h' : uwdata.uw_height = getint(cmd
X case 'b' : uwdata.uw_uflags ^= NBORDER;
X case 'v' : uwdata.uw_uflags ^= VCWIDTH;
X case 'u' : uwdata.uw_uflags ^= BORDVSCRO
X case 's' : uwdata.uw_uflags ^= BORDHSCRO
X case 'e' : uwdata.uw_uflags ^= BORDHELP;
X case 'c' : uwdata.uw_uflags ^= BORDCANCE
X case 'r' : uwdata.uw_uflags ^= BORDRESIZ
X case 'm' : uwdata.uw_uflags ^= NBORDMOVE
X case ']' : state=BLANK;
X }
X break;
X }
X }
X *argvp=NULL;
X return argv;
X}
X
Xgetint(s) /* find whatever integer there i
Xchar *s;
X{
X register int i=0;
X int neg=0;
X
X if(s[1] == '-'){
X neg=1;
X s++;
X }
X while(*++s>='0' && *s<='9') {
X i*=10;
X i+=*s-'0';
X }
X return neg ? -i : i;
X}
________This_Is_The_END________
if test `wc -l < parse.c` -ne 100; then
echo 'shar: parse.c was damaged during transit (should have been 100 byt
fi
fi ; : end of overwriting check
echo 'x - window.c'
if test -f window.c; then echo 'shar: not overwriting window.c'; else
sed 's/^X//' << '________This_Is_The_END________' > window.c
X/*
X* window.c -- for "command", a Unix PC command interpreter
X*/
X
X#include <sys/window.h>
X#include <fcntl.h>
X#include <termio.h>
X#include "config.h"
X
Xextern struct umdata umdata; /* mouse icon --
X
Xstruct utdata utdata = {
X WTXTLABEL,
X "Command"
X};
X
Xstruct uwdata uwdata = {
X 288, /* upper-left-corner x (pixels)
X 0, /* upper-left-corner y (pixels)
X 378, /* width (pixels)
X 12, /* height (pixels)
X NBORDER /* various flags
X};
X
Xchar termcapd[9][40]={ "TERMCAP=:al=\\E[1L:am:bs:cd=\\E[0J:ce=\\E[0",
X "K:cl=\\E[2J\\E[H:cm=\\E[%i%2;%2H:dc=\\E[1P:d",
X "l=\\E[1M:do=\\E[B:ei=:ho=\\E[H:ic=\\E[1@:im=",
X ":kb=\\10:kd=\\E[B:kl=\\E[D:kr=\\E[C:ku=\\E[A:",
X "k1=\\EOc:k2=\\EOd:k3=\\EOe:k4=\\EOf:k5=\\EOg:",
X "k6=\\EOh:k7=\\EOi:k8=\\EOj:nd=\\E[C:se=\\E[m:",
X "so=\\E[7m:ue=\\E[m:up=\\E[A:us=\\E[4m:EE=\\E[",
X "m:DS=\\E[2m:CV=\\E[=C:CI=\\E[=1C:KM=/usr/li",
X "b/ua/kmap.s4:li#000:co#000:"
X};
Xchar *termcap=*termcapd; /* if you change these, change t
Xchar lines[]="LINES=000";
Xchar columns[]="COLUMNS=000";
X
X#define TERMCAP_XPOS 343 /* locations in
X#define TERMCAP_YPOS 336
X#define LINES_YPOS 6
X#define COLUMNS_XPOS 8
X
Xchar *cmd=utdata.ut_text;
Xchar **envp1;
Xstruct termio termio;
X
Xchar *envinit(envp)
Xchar **envp;
X{
X char *home;
X
X envp1=envp;
X for(;*envp;envp++){
X if(!strncmp(*envp,lines,5))
X *envp=lines;
X if(!strncmp(*envp,columns,7))
X *envp=columns;
X if(!strncmp(*envp,termcap,7))
X *envp=termcap;
X if(!strncmp(*envp,"HOME=",5))
X home=*envp+5;
X }
X return home; /* after a long
X}
X
Xwsetup() /* command window initia
X{
X ioctl(0, WIOCSETMOUSE, &umdata); /* see m
X ioctl(0, WIOCSETTEXT, &utdata); /* name
X utdata.ut_num = WTXTCMD; /* set u
X#ifdef SMGR
X ioctl(0, WIOCSYS, SYSSMGR); /* make the system manager (smgr is dead
X#endif
X
X ioctl(0, TCGETA, &termio);
X termio.c_lflag = 0; /* raw m
X termio.c_iflag = 0; /* don't
X termio.c_oflag = 0; /* don't
X termio.c_cc[4] = 1; /* one c
X termio.c_cc[5] = 0; /* no ti
X ioctl(0, TCSETA, &termio);
X write(1, "\33[2J\33[H\33[=1C", 12); /* clear screen,
X}
X
Xself() /* command window positi
X{
X write(1, "\33[2J\33[H\33[=1C", 12); /* clear screen,
X ioctl(0, WIOCSETMOUSE, &umdata); /* see m
X ioctl(0, WIOCSETD, &uwdata);
X}
X
Xerror(s) /* put s in "prompt" line -- clo
Xchar *s;
X{
X register char *cmdp;
X
X for(cmdp=cmd; *cmdp++=*s++;);
X utdata.ut_num=WTXTPROMPT;
X ioctl(0,WIOCSETTEXT,&utdata);
X utdata.ut_num=WTXTCMD;
X}
X
Xwmake(s) /* make a new wi
Xchar *s;
X{
X register int i,wd;
X
X close(0);
X close(1);
X close(2);
X setpgrp(); /* child will not die wh
X wd = open("/dev/window", O_RDWR);
X dup(wd);
X dup(wd);
X ioctl(wd, WIOCSETD, &uwdata);
X ioctl(wd, WIOCGETD, &uwdata);
X i = uwdata.uw_height/uwdata.uw_vs;
X termcap[TERMCAP_YPOS] = lines[LINES_YPOS] = i/100 + '0';
X termcap[TERMCAP_YPOS+1] = lines[LINES_YPOS+1] = (i/10)%10 + '0';
X termcap[TERMCAP_YPOS+2] = lines[LINES_YPOS+2] = i%10 + '0';
X i = uwdata.uw_width/uwdata.uw_hs;
X termcap[TERMCAP_XPOS] = columns[COLUMNS_XPOS] = i/100 + '0';
X termcap[TERMCAP_XPOS+1] = columns[COLUMNS_XPOS+1] = (i/10)%10 + '0';
X termcap[TERMCAP_XPOS+2] = columns[COLUMNS_XPOS+2] = i%10 + '0';
X utdata.ut_num=WTXTLABEL; /* tell
X if(!strcmp(CMDDESC, utdata.ut_text))
X strcpy(utdata.ut_text, s);
X ioctl(wd, WIOCSETTEXT, &utdata); /* command is wi
X ioctl(wd, WIOCSETMOUSE, &umdata); /* see m
X ioctl(wd, TCGETA, &termio);
X#ifdef NOSTRIP
X termio.c_iflag &= ~ISTRIP; /* don't
X#endif
X termio.c_cc[0] = INTR; /* inter
X termio.c_cc[3] = KILL; /* kill
X ioctl(wd, TCSETA, &termio);
X}
________This_Is_The_END________
if test `wc -l < window.c` -ne 138; then
echo 'shar: window.c was damaged during transit (should have been 138 by
fi
fi ; : end of overwriting check
echo 'x - config.h'
if test -f config.h; then echo 'shar: not overwriting config.h'; else
sed 's/^X//' << '________This_Is_The_END________' > config.h
X/*
X* config.h -- configuration file for "command", a Unix PC command interpreter
X*/
X
X/*
X * The defines in this file select options that (I think) improve the
X * functionality of command. However, some people may not like them, or they
X * might be incompatible with other software (nothing serious, though).
X */
X
X/*
X * If SMGR is defined, command will designate itsself the "screen manager"
X * (smgr). All this means is that when the <Msg> key is pressed, it goes to
X * command no matter what window is active. When command receives <Msg>, it
X * runs a special alias. The initial text of that alias is whatever is
X * defined as SHMAC.
X */
X
X#define SMGR
X#define SHMAC "/bin/ksh" /* invoked when <Msg> is pressed */
X
X/*
X * This is the description of the window in which command runs.
X */
X
X#define CMDDESC "Command"
X
X/*
X * If CTLC is defined, then in windows command makes, interrupt is set to ^c.
X * If CTLU is defined, kill is set to ^u.
X * If NOSTRIP is defined 8'th bit stripping is turned off (so that the
X * meta-key works, if you are using CAPCTL (the new keyboard driver)).
X */
X
X#define INTR 3 /* ^c */
X#define KILL 21 /* ^u */
X#define NOSTRIP
X
X/*
X * Command starts out with a default mouse. Here you have a choice between a
X * default mouse which is small and better shaped than than the system mouse,
X * or a default mouse which is a gunsight-like crosshair. Pick one or the
X * other, but not both!
X */
X
X#define M_SMALL /* small mouse */
X /* --OR-- */
X/*#define M_TARGET /* crosshair */
________This_Is_The_END________
if test `wc -l < config.h` -ne 48; then
echo 'shar: config.h was damaged during transit (should have been 48 byt
fi
fi ; : end of overwriting check
echo 'x - mouse.h'
if test -f mouse.h; then echo 'shar: not overwriting mouse.h'; else
sed 's/^X//' << '________This_Is_The_END________' > mouse.h
X/*
X* mouse.h -- for "command", a Unix PC command interpreter
X*/
X
X#include <sys/window.h>
X#include <sys/font.h>
X#include "config.h"
X
Xstruct icon m_icon = {
X 0, /* flags (unused)
X { /* font def
X#ifdef M_SMALL
X 16, /* horizontal size in bits
X 13, /* vertical size
X 0, /* horizontal adjust (signed)
X 0, /* vertical adjust (signed)
X#endif
X#ifdef M_TARGET
X 32, 21, -15, -10,
X#endif
X 0, /* horizontal increment
X 0, /* vertical increment (optional)
X 0 /* relative mini-raster pointer
X },
X { /* raster data
X#ifdef M_SMALL
X 0x1,0x2,0xc,0x3c,0xf8,0x3f8,0xff8,0x1f0,0x330,0x610,0xc00,0x1800
X#endif
X#ifdef M_TARGET
X 0x000f, 0x7800, 0x0001, 0x4000, 0x0001, 0x4000, 0x0001, 0x4000,
X 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0x8000, 0x0000,
X 0x8000, 0x0000, 0x8000, 0x0000, 0x7e00, 0x003f, 0x8000, 0x0000,
X 0x8000, 0x0000, 0x8000, 0x0000, 0x8000, 0x0000, 0x0000, 0x0000,
X 0x0000, 0x0000, 0x0001, 0x4000, 0x0001, 0x4000, 0x0001, 0x4000,
X 0x000f, 0x7800
X#endif
X }
X};
X
Xstruct umdata umdata = {
X MSICON, /* wakeup flags
X 0, /* motion rectangle x
X 0, /* motion rectangle y
X 0, /* motion rectangle w
X 0, /* motion rectangle h
X &m_icon /* ptr to icon if MSICON=1
X};
________This_Is_The_END________
if test `wc -l < mouse.h` -ne 47; then
echo 'shar: mouse.h was damaged during transit (should have been 47 byte
fi
fi ; : end of overwriting check
echo 'x - .cmdrc'
if test -f .cmdrc; then echo 'shar: not overwriting .cmdrc'; else
sed 's/^X//' << '________This_Is_The_END________' > .cmdrc
X# .cmdrc -- command initialization file
X#
X[x300 y0 w350 h12]self # relocate command window
Xalias s0 [x300 y0 w350 h12]self # make that an alias
Xalias w80 [x160 w560 y16 h192]/bin/ksh # if using the 36x102 font, this is a 24
Xalias w10 [x6 y210 w714 h80]/bin/ksh # and this is a 10x102 window
Xalias w0 [x0 y4 w714 h296]/bin/ksh # and this is a 37x102 window
Xalias w1 [x0 y12 w714 h288]/bin/ksh # and this is a 36x102 window
Xalias wa [x0 y16 w150 h192]/bin/ksh # and this is a tiny window
Xalias jove /bin/ksh -c /usr/local/jove # jove doesn't work plain
Xalias ksh /bin/ksh # useful
Xw80 # make two not completely overlapping
Xw0 # windows
________This_Is_The_END________
if test `wc -l < .cmdrc` -ne 13; then
echo 'shar: .cmdrc was damaged during transit (should have been 13 bytes
fi
fi ; : end of overwriting check
echo 'x - .cmdrc2'
if test -f .cmdrc2; then echo 'shar: not overwriting .cmdrc2'; else
sed 's/^X//' << '________This_Is_The_END________' > .cmdrc2
X# .cmdrc2 -- command initialization file for normal font
X#
X[x288 y0 w40 h12]self # relocate command window
Xalias s0 [x300 y0 w350 h12]self # make that an alias
Xalias w60 [x180 w540 y8 h180]/bin/ksh # if using the standard font, this is a
X # 15x60 window
Xalias w8 [x0 y200 w720 h96]/bin/ksh # and this is a 8x80 window
Xalias w0 [x0 y0 w720 h300]/bin/ksh # and this is a 25x80 window
Xalias w1 [x0 y12 w708 h288]/bin/ksh # and this is a 24x79 window
Xalias w2 [x0 y12 w720 h288]/bin/ksh # and this is a standard 24x80 window
Xalias jove /bin/ksh -c /usr/local/bin/jove # jove doesn't work plain
Xalias ksh /bin/ksh # useful
Xw60 # make two not completely overlapping
Xw1 # windows
________This_Is_The_END________
if test `wc -l < .cmdrc2` -ne 14; then
echo 'shar: .cmdrc2 was damaged during transit (should have been 14 byte
fi
fi ; : end of overwriting check
echo mkdir mice
mkdir mice
echo 'x - mice/fighter.m'
if test -f mice/fighter.m; then echo 'shar: not overwriting mice/fighter.m'; els
sed 's/^X//' << '________This_Is_The_END________' > mice/fighter.m
Xvs 14
Xdata
X#
X ##
X ###
X ######
X ##########
X ########
X ######
X #######
X ## ####
X # #####
X ##
X
________This_Is_The_END________
if test `wc -l < mice/fighter.m` -ne 14; then
echo 'shar: mice/fighter.m was damaged during transit (should have been
fi
fi ; : end of overwriting check
echo 'x - mice/moron.m'
if test -f mice/moron.m; then echo 'shar: not overwriting mice/moron.m'; else
sed 's/^X//' << '________This_Is_The_END________' > mice/moron.m
Xdata
XH H EEEE L L OO
XH H E L L O O
XHHHH EEE L L O O
XH H E L L O O
XH H EEEE LLL LLL OO
X
XM M OO RRR OO N N
XMM MM O O R R O O NN N
XM M M O O RRR O O N NN
XM M O O R R O O N N
XM M OO R R OO N N
X
X GGG OO FFFF U U CC K K
XG O O F U U C K K
XG GG O O FFF U U C KK
XG G O O F U U C K K
X GG OO F UU CC K K
X
XY Y OO U U RRR
X Y Y O O U U R R
X Y O O U U RRR
X Y O O U U R R
X Y OO UU R R
X
X SSS EEEE L FFFF
XS E L F
X SS EEE L FFF
X S E L F
XSSS EEEE LLL F
________This_Is_The_END________
if test `wc -l < mice/moron.m` -ne 30; then
echo 'shar: mice/moron.m was damaged during transit (should have been 30
fi
fi ; : end of overwriting check
echo 'x - mice/mouse.m'
if test -f mice/mouse.m; then echo 'shar: not overwriting mice/mouse.m'; else
sed 's/^X//' << '________This_Is_The_END________' > mice/mouse.m
Xdata
X ##########
X# #
X# ## ## ## #
X# ## ## ## #
X# ## ## ## #
X# ## ## ## #
X# #
X# #
X# #
X# #
X ##########
________This_Is_The_END________
if test `wc -l < mice/mouse.m` -ne 12; then
echo 'shar: mice/mouse.m was damaged during transit (should have been 12
fi
fi ; : end of overwriting check
echo 'x - mice/series.m'
if test -f mice/series.m; then echo 'shar: not overwriting mice/series.m'; else
sed 's/^X//' << '________This_Is_The_END________' > mice/series.m
Xdata
X#
X #
X ##
X ##
X ##
X ##
X ###
X ###
X ###
X ####
X ####
X ####
X ####
X ######
X ######
X ######
X ######
X ######
X ######
X #############
X #############
X #############
X #############
X #############
X #############
X #############
X #############
X #############
X #############
X #############
X #############
X #############
________This_Is_The_END________
if test `wc -l < mice/series.m` -ne 33; then
echo 'shar: mice/series.m was damaged during transit (should have been 3
fi
fi ; : end of overwriting check
echo 'x - mice/small.m'
if test -f mice/small.m; then echo 'shar: not overwriting mice/small.m'; else
sed 's/^X//' << '________This_Is_The_END________' > mice/small.m
Xdata
X#
X #
X ##
X ####
X #####
X #######
X #########
X #####
X ## ##
X # ##
X ##
X ##
X ##
________This_Is_The_END________
if test `wc -l < mice/small.m` -ne 14; then
echo 'shar: mice/small.m was damaged during transit (should have been 14
fi
fi ; : end of overwriting check
echo 'x - mice/target.m'
if test -f mice/target.m; then echo 'shar: not overwriting mice/target.m'; else
sed 's/^X//' << '________This_Is_The_END________' > mice/target.m
Xvs 19
Xvi -9
Xhi -15
Xdata
X #
X #
X #########
X ## ##
X ## ##
X # #
X # # #
X # # #
X # # #
X##### ########### #####
X # # #
X # # #
X # # #
X # #
X ## ##
X ## ##
X #########
X #
X #
________This_Is_The_END________
if test `wc -l < mice/target.m` -ne 23; then
echo 'shar: mice/target.m was damaged during transit (should have been 2
fi
fi ; : end of overwriting check
echo 'x - mice/target2.m'
if test -f mice/target2.m; then echo 'shar: not overwriting mice/target2.m'; els
sed 's/^X//' << '________This_Is_The_END________' > mice/target2.m
X#### ####
X# #
X# #
X# #
X
X
X #
X #
X #
X #
X ###### ######
X #
X #
X #
X #
X
X
X# #
X# #
X# #
X#### ####
X
X
X
X
X
X
X
X
X
X
X
________This_Is_The_END________
if test `wc -l < mice/target2.m` -ne 32; then
echo 'shar: mice/target2.m was damaged during transit (should have been
fi
fi ; : end of overwriting check
echo 'x - mice/unix.m'
if test -f mice/unix.m; then echo 'shar: not overwriting mice/unix.m'; else
sed 's/^X//' << '________This_Is_The_END________' > mice/unix.m
Xdata
X#
X ##
X ####
X #####
X ## ###
X ### ###
X ### ####
X ### ####
X ### # #####
X ### ######
X ### # ######
X #### #######
X #### # #######
X ########################
X ##########################
X ##
X # # # # # # # ###
X # # ## # # # # ####
X # # # # # # ## ####
X # # # # # # ## #####
X # # # ## # # # #####
X ### # # # # # ######
X
X #### # # # #### ###
X # # # # # # #
X # # # # # ### ###
X #### # # # # #
X # # # # # # # #
X # # ### #### #### ###
________This_Is_The_END________
if test `wc -l < mice/unix.m` -ne 30; then
echo 'shar: mice/unix.m was damaged during transit (should have been 30
fi
fi ; : end of overwriting check
echo 'x - 36x102.font'
if test -f 36x102.font; then echo 'shar: not overwriting 36x102.font'; else
sed 's/^X//' << '________This_Is_The_END________' > 36x102.font
X# magic 0x18e
X# flags 0x0
Xhs 7
Xvs 8
Xbasel 7
X
X############### Character 0x20, 040, 32
Xchar 32
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits
Xbits
Xbits
Xbits
Xbits
Xbits
X
X############### Character 0x21, 041, 33 ! ! ! ! ! ! ! ! ! !
Xchar 33
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits
Xbits *
Xbits
X
X############### Character 0x22, 042, 34 " " " " " " " " " "
Xchar 34
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits * *
Xbits * *
Xbits * *
Xbits
Xbits
Xbits
Xbits
Xbits
X
X############### Character 0x23, 043, 35 # # # # # # # # # #
Xchar 35
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits * *
Xbits * *
Xbits *****
Xbits * *
Xbits *****
Xbits * *
Xbits * *
Xbits
X
X############### Character 0x24, 044, 36 $ $ $ $ $ $ $ $ $ $
Xchar 36
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits ****
Xbits * *
Xbits ***
Xbits * *
Xbits ****
Xbits *
Xbits
X
X############### Character 0x25, 045, 37 % % % % % % % % % %
Xchar 37
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ** *
Xbits ** *
Xbits *
Xbits *
Xbits *
Xbits * **
Xbits * **
Xbits
X
X############### Character 0x26, 046, 38 & & & & & & & & & &
Xchar 38
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits * *
Xbits * *
Xbits *
Xbits * * *
Xbits * *
Xbits ** *
Xbits
X
X############### Character 0x27, 047, 39 ' ' ' ' ' ' ' ' ' '
Xchar 39
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits **
Xbits *
Xbits *
Xbits
Xbits
Xbits
Xbits
Xbits
X
X############### Character 0x28, 050, 40 ( ( ( ( ( ( ( ( ( (
Xchar 40
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x29, 051, 41 ) ) ) ) ) ) ) ) ) )
Xchar 41
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x2a, 052, 42 * * * * * * * * * *
Xchar 42
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits *
Xbits * * *
Xbits ***
Xbits ***
Xbits * * *
Xbits *
Xbits
X
X############### Character 0x2b, 053, 43 + + + + + + + + + +
Xchar 43
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits *
Xbits *
Xbits *****
Xbits *
Xbits *
Xbits
Xbits
X
X############### Character 0x2c, 054, 44 , , , , , , , , , ,
Xchar 44
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits
Xbits
Xbits
Xbits **
Xbits *
Xbits *
X
X############### Character 0x2d, 055, 45 - - - - - - - - - -
Xchar 45
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits
Xbits *****
Xbits
Xbits
Xbits
Xbits
X
X############### Character 0x2e, 056, 46 . . . . . . . . . .
Xchar 46
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits
Xbits
Xbits
Xbits *
Xbits *
Xbits
X
X############### Character 0x2f, 057, 47 / / / / / / / / / /
Xchar 47
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x30, 060, 48 0 0 0 0 0 0 0 0 0 0
Xchar 48
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ***
Xbits * *
Xbits * **
Xbits * * *
Xbits ** *
Xbits * *
Xbits ***
Xbits
X
X############### Character 0x31, 061, 49 1 1 1 1 1 1 1 1 1 1
Xchar 49
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits **
Xbits * *
Xbits *
Xbits *
Xbits *
Xbits *****
Xbits
X
X############### Character 0x32, 062, 50 2 2 2 2 2 2 2 2 2 2
Xchar 50
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ***
Xbits * *
Xbits *
Xbits ***
Xbits *
Xbits *
Xbits *****
Xbits
X
X############### Character 0x33, 063, 51 3 3 3 3 3 3 3 3 3 3
Xchar 51
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *****
Xbits *
Xbits *
Xbits **
Xbits *
Xbits * *
Xbits ***
Xbits
X
X############### Character 0x34, 064, 52 4 4 4 4 4 4 4 4 4 4
Xchar 52
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits **
Xbits * *
Xbits * *
Xbits *****
Xbits *
Xbits *
Xbits
X
X############### Character 0x35, 065, 53 5 5 5 5 5 5 5 5 5 5
Xchar 53
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *****
Xbits *
Xbits *
Xbits ****
Xbits *
Xbits * *
Xbits ***
Xbits
X
X############### Character 0x36, 066, 54 6 6 6 6 6 6 6 6 6 6
Xchar 54
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ***
Xbits * *
Xbits *
Xbits ****
Xbits * *
Xbits * *
Xbits ***
Xbits
X
X############### Character 0x37, 067, 55 7 7 7 7 7 7 7 7 7 7
Xchar 55
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *****
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x38, 070, 56 8 8 8 8 8 8 8 8 8 8
Xchar 56
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ***
Xbits * *
Xbits * *
Xbits ***
Xbits * *
Xbits * *
Xbits ***
Xbits
X
X############### Character 0x39, 071, 57 9 9 9 9 9 9 9 9 9 9
Xchar 57
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ***
Xbits * *
Xbits * *
Xbits ****
Xbits *
Xbits * *
Xbits ***
Xbits
X
X############### Character 0x3a, 072, 58 : : : : : : : : : :
Xchar 58
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits *
Xbits *
Xbits
Xbits
Xbits *
Xbits *
Xbits
X
X############### Character 0x3b, 073, 59 ; ; ; ; ; ; ; ; ; ;
Xchar 59
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits *
Xbits *
Xbits
Xbits
Xbits *
Xbits *
Xbits *
X
X############### Character 0x3c, 074, 60 < < < < < < < < < <
Xchar 60
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x3d, 075, 61 = = = = = = = = = =
Xchar 61
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits *****
Xbits
Xbits *****
Xbits
Xbits
Xbits
X
X############### Character 0x3e, 076, 62 > > > > > > > > > >
Xchar 62
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x3f, 077, 63 ? ? ? ? ? ? ? ? ? ?
Xchar 63
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ***
Xbits * *
Xbits *
Xbits **
Xbits *
Xbits
Xbits *
Xbits
X
X############### Character 0x40, 0100, 64 @ @ @ @ @ @ @ @ @ @
Xchar 64
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ***
Xbits * *
Xbits * * *
Xbits * ***
Xbits * **
Xbits *
Xbits ****
Xbits
X
X############### Character 0x41, 0101, 65 A A A A A A A A A A
Xchar 65
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits * *
Xbits * *
Xbits * *
Xbits *****
Xbits * *
Xbits * *
Xbits
X
X############### Character 0x42, 0102, 66 B B B B B B B B B B
Xchar 66
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ****
Xbits * *
Xbits * *
Xbits ****
Xbits * *
Xbits * *
Xbits ****
Xbits
X
X############### Character 0x43, 0103, 67 C C C C C C C C C C
Xchar 67
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ***
Xbits * *
Xbits *
Xbits *
Xbits *
Xbits * *
Xbits ***
Xbits
X
X############### Character 0x44, 0104, 68 D D D D D D D D D D
Xchar 68
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ****
Xbits * *
Xbits * *
Xbits * *
Xbits * *
Xbits * *
Xbits ****
Xbits
X
X############### Character 0x45, 0105, 69 E E E E E E E E E E
Xchar 69
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *****
Xbits *
Xbits *
Xbits ****
Xbits *
Xbits *
Xbits *****
Xbits
X
X############### Character 0x46, 0106, 70 F F F F F F F F F F
Xchar 70
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *****
Xbits *
Xbits *
Xbits ****
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x47, 0107, 71 G G G G G G G G G G
Xchar 71
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ***
Xbits * *
Xbits *
Xbits *
Xbits * **
Xbits * *
Xbits ****
Xbits
X
X############### Character 0x48, 0110, 72 H H H H H H H H H H
Xchar 72
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits * *
Xbits * *
Xbits * *
Xbits *****
Xbits * *
Xbits * *
Xbits * *
Xbits
X
X############### Character 0x49, 0111, 73 I I I I I I I I I I
Xchar 73
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ***
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits ***
Xbits
X
X############### Character 0x4a, 0112, 74 J J J J J J J J J J
Xchar 74
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits **
Xbits *
Xbits *
Xbits *
Xbits *
Xbits * *
Xbits ***
Xbits
X
X############### Character 0x4b, 0113, 75 K K K K K K K K K K
Xchar 75
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits * *
Xbits * *
Xbits * *
Xbits **
Xbits * *
Xbits * *
Xbits * *
Xbits
X
X############### Character 0x4c, 0114, 76 L L L L L L L L L L
Xchar 76
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *****
Xbits
X
X############### Character 0x4d, 0115, 77 M M M M M M M M M M
Xchar 77
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits * *
Xbits ** **
Xbits * * *
Xbits * * *
Xbits * * *
Xbits * *
Xbits * *
Xbits
X
X############### Character 0x4e, 0116, 78 N N N N N N N N N N
Xchar 78
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits * *
Xbits * *
Xbits ** *
Xbits * * *
Xbits * **
Xbits * *
Xbits * *
Xbits
X
X############### Character 0x4f, 0117, 79 O O O O O O O O O O
Xchar 79
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ***
Xbits * *
Xbits * *
Xbits * *
Xbits * *
Xbits * *
Xbits ***
Xbits
X
X############### Character 0x50, 0120, 80 P P P P P P P P P P
Xchar 80
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ****
Xbits * *
Xbits * *
Xbits ****
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x51, 0121, 81 Q Q Q Q Q Q Q Q Q Q
Xchar 81
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ***
Xbits * *
Xbits * *
Xbits * *
Xbits * * *
Xbits * *
Xbits ** *
Xbits
X
X############### Character 0x52, 0122, 82 R R R R R R R R R R
Xchar 82
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ****
Xbits * *
Xbits * *
Xbits ****
Xbits * *
Xbits * *
Xbits * *
Xbits
X
X############### Character 0x53, 0123, 83 S S S S S S S S S S
Xchar 83
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ***
Xbits * *
Xbits *
Xbits ***
Xbits *
Xbits * *
Xbits ***
Xbits
X
X############### Character 0x54, 0124, 84 T T T T T T T T T T
Xchar 84
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *****
Xbits * * *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x55, 0125, 85 U U U U U U U U U U
Xchar 85
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits * *
Xbits * *
Xbits * *
Xbits * *
Xbits * *
Xbits * *
Xbits ***
Xbits
X
X############### Character 0x56, 0126, 86 V V V V V V V V V V
Xchar 86
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits * *
Xbits * *
Xbits * *
Xbits * *
Xbits * *
Xbits *
Xbits *
Xbits
X
X############### Character 0x57, 0127, 87 W W W W W W W W W W
Xchar 87
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits * *
Xbits * *
Xbits * *
Xbits * * *
Xbits * * *
Xbits * * *
Xbits * *
Xbits
X
X############### Character 0x58, 0130, 88 X X X X X X X X X X
Xchar 88
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits * *
Xbits * *
Xbits * *
Xbits *
Xbits * *
Xbits * *
Xbits * *
Xbits
X
X############### Character 0x59, 0131, 89 Y Y Y Y Y Y Y Y Y Y
Xchar 89
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits * *
Xbits * *
Xbits * *
Xbits * *
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x5a, 0132, 90 Z Z Z Z Z Z Z Z Z Z
Xchar 90
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *****
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *****
Xbits
X
X############### Character 0x5b, 0133, 91 [ [ [ [ [ [ [ [ [ [
Xchar 91
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ****
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits ****
Xbits
X
X############### Character 0x5c, 0134, 92 \ \ \ \ \ \ \ \ \ \
Xchar 92
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x5d, 0135, 93 ] ] ] ] ] ] ] ] ] ]
Xchar 93
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits ****
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits ****
Xbits
X
X############### Character 0x5e, 0136, 94 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
Xchar 94
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits * *
Xbits * *
Xbits
Xbits
Xbits
Xbits
Xbits
X
X############### Character 0x5f, 0137, 95 _ _ _ _ _ _ _ _ _ _
Xchar 95
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits
Xbits
Xbits
Xbits
Xbits *****
Xbits
X
X############### Character 0x60, 0140, 96 ` ` ` ` ` ` ` ` ` `
Xchar 96
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits *
Xbits
Xbits
Xbits
Xbits
Xbits
X
X############### Character 0x61, 0141, 97 a a a a a a a a a a
Xchar 97
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits ** *
Xbits * **
Xbits * *
Xbits * **
Xbits ** *
Xbits
X
X############### Character 0x62, 0142, 98 b b b b b b b b b b
Xchar 98
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits * **
Xbits ** *
Xbits * *
Xbits ** *
Xbits * **
Xbits
X
X############### Character 0x63, 0143, 99 c c c c c c c c c c
Xchar 99
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits ***
Xbits *
Xbits *
Xbits *
Xbits ***
Xbits
X
X############### Character 0x64, 0144, 100 d d d d d d d d d d
Xchar 100
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits ** *
Xbits * **
Xbits * *
Xbits * **
Xbits ** *
Xbits
X
X############### Character 0x65, 0145, 101 e e e e e e e e e e
Xchar 101
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits ***
Xbits * *
Xbits *****
Xbits *
Xbits ****
Xbits
X
X############### Character 0x66, 0146, 102 f f f f f f f f f f
Xchar 102
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits * *
Xbits *
Xbits ***
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x67, 0147, 103 g g g g g g g g g g
Xchar 103
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits ** *
Xbits * **
Xbits * *
Xbits ** *
Xbits *
Xbits ***
X
X############### Character 0x68, 0150, 104 h h h h h h h h h h
Xchar 104
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits * **
Xbits ** *
Xbits * *
Xbits * *
Xbits * *
Xbits
X
X############### Character 0x69, 0151, 105 i i i i i i i i i i
Xchar 105
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits
Xbits **
Xbits *
Xbits *
Xbits *
Xbits ***
Xbits
X
X############### Character 0x6a, 0152, 106 j j j j j j j j j j
Xchar 106
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits
Xbits **
Xbits *
Xbits *
Xbits *
Xbits * *
Xbits **
X
X############### Character 0x6b, 0153, 107 k k k k k k k k k k
Xchar 107
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits * *
Xbits * *
Xbits ***
Xbits * *
Xbits * *
Xbits
X
X############### Character 0x6c, 0154, 108 l l l l l l l l l l
Xchar 108
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits **
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits ***
Xbits
X
X############### Character 0x6d, 0155, 109 m m m m m m m m m m
Xchar 109
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits ** *
Xbits * * *
Xbits * * *
Xbits * * *
Xbits * *
Xbits
X
X############### Character 0x6e, 0156, 110 n n n n n n n n n n
Xchar 110
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits * **
Xbits ** *
Xbits * *
Xbits * *
Xbits * *
Xbits
X
X############### Character 0x6f, 0157, 111 o o o o o o o o o o
Xchar 111
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits ***
Xbits * *
Xbits * *
Xbits * *
Xbits ***
Xbits
X
X############### Character 0x70, 0160, 112 p p p p p p p p p p
Xchar 112
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits * **
Xbits ** *
Xbits ** *
Xbits * **
Xbits *
Xbits *
X
X############### Character 0x71, 0161, 113 q q q q q q q q q q
Xchar 113
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits ** *
Xbits * **
Xbits * *
Xbits ** *
Xbits *
Xbits *
X
X############### Character 0x72, 0162, 114 r r r r r r r r r r
Xchar 114
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits * **
Xbits ** *
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x73, 0163, 115 s s s s s s s s s s
Xchar 115
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits ****
Xbits *
Xbits ***
Xbits *
Xbits ****
Xbits
X
X############### Character 0x74, 0164, 116 t t t t t t t t t t
Xchar 116
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits ***
Xbits *
Xbits *
Xbits * *
Xbits *
Xbits
X
X############### Character 0x75, 0165, 117 u u u u u u u u u u
Xchar 117
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits * *
Xbits * *
Xbits * *
Xbits * **
Xbits ** *
Xbits
X
X############### Character 0x76, 0166, 118 v v v v v v v v v v
Xchar 118
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits * *
Xbits * *
Xbits * *
Xbits * *
Xbits *
Xbits
X
X############### Character 0x77, 0167, 119 w w w w w w w w w w
Xchar 119
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits * *
Xbits * * *
Xbits * * *
Xbits * * *
Xbits * *
Xbits
X
X############### Character 0x78, 0170, 120 x x x x x x x x x x
Xchar 120
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits * *
Xbits * *
Xbits *
Xbits * *
Xbits * *
Xbits
X
X############### Character 0x79, 0171, 121 y y y y y y y y y y
Xchar 121
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits * *
Xbits * *
Xbits * **
Xbits ** *
Xbits *
Xbits ***
X
X############### Character 0x7a, 0172, 122 z z z z z z z z z z
Xchar 122
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits *****
Xbits *
Xbits *
Xbits *
Xbits *****
Xbits
X
X############### Character 0x7b, 0173, 123 { { { { { { { { { {
Xchar 123
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits *
Xbits **
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x7c, 0174, 124 | | | | | | | | | |
Xchar 124
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
Xbits *
X
X############### Character 0x7d, 0175, 125 } } } } } } } } } }
Xchar 125
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *
Xbits *
Xbits *
Xbits **
Xbits *
Xbits *
Xbits *
Xbits
X
X############### Character 0x7e, 0176, 126 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Xchar 126
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits
Xbits
Xbits *
Xbits * * *
Xbits *
Xbits
Xbits
Xbits
X
X############### Character 0x7f, 0177, 127 DEL DEL DEL DEL DEL
Xchar 127
Xhs 5
Xvs 8
Xha 1
Xva -7
Xhi 7
Xvi 0
Xbits *****
Xbits *****
Xbits *****
Xbits *****
Xbits *****
Xbits *****
Xbits *****
Xbits *****
X
________This_Is_The_END________
if test `wc -l < 36x102.font` -ne 1638; then
echo 'shar: 36x102.font was damaged during transit (should have been 163
fi
fi ; : end of overwriting check
exit 0
More information about the Comp.sources.misc
mailing list