home *** CD-ROM | disk | FTP | other *** search
- From decwrl!ucbvax!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!ginosko!uunet!allbery Thu Aug 3 08:50:21 PDT 1989
- Article 980 of comp.sources.misc:
- Path: decwrl!ucbvax!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!ginosko!uunet!allbery
- From: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
- Newsgroups: comp.sources.misc
- Subject: v07i088: command -- run programs in windows (Unix PC only)
- Message-ID: <61150@uunet.UU.NET>
- Date: 22 Jul 89 00:47:44 GMT
- Sender: allbery@uunet.UU.NET
- Reply-To: ins_anmy@JHUNIX.BITNET (Norman M Yarvin)
- Lines: 3016
- Approved: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
-
- Posting-number: Volume 7, Issue 88
- Submitted-by: ins_anmy@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@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@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
-
-
-