home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / compsrcs / misc / volume07 / command < prev    next >
Encoding:
Internet Message Format  |  1991-08-27  |  69.6 KB

  1. From decwrl!ucbvax!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!ginosko!uunet!allbery Thu Aug  3 08:50:21 PDT 1989
  2. Article 980 of comp.sources.misc:
  3. Path: decwrl!ucbvax!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!ginosko!uunet!allbery
  4. From: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  5. Newsgroups: comp.sources.misc
  6. Subject: v07i088: command -- run programs in windows (Unix PC only)
  7. Message-ID: <61150@uunet.UU.NET>
  8. Date: 22 Jul 89 00:47:44 GMT
  9. Sender: allbery@uunet.UU.NET
  10. Reply-To: ins_anmy@JHUNIX.BITNET (Norman M Yarvin)
  11. Lines: 3016
  12. Approved: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  13.  
  14. Posting-number: Volume 7, Issue 88
  15. Submitted-by: ins_anmy@JHUNIX.BITNET (Norman M Yarvin)
  16. Archive-name: command
  17.  
  18. [...and whatever happened to "windy"?  ++bsa]
  19.  
  20. Command is a program for the AT&T Unix PC.  It is my replacement for the
  21. functionality I use in the User Agent software provided with the Unix PC.
  22. That is, it starts up new shells (actually, any program you want) in any
  23. size/any position window.
  24.      
  25.                                         Norman Yarvin
  26.         yarvin@cs.jhu.edu, (seismo!umcp-cs | allegra!hopkins) !jhunix!ins_anmy
  27.      
  28. #--------------------------------CUT HERE-------------------------------------
  29. #! /bin/sh
  30. #
  31. # This is a shell archive.  Save this into a file, edit it
  32. # and delete all lines above this comment.  Then give this
  33. # file to sh by executing the command "sh file".  The files
  34. # will be extracted into the current directory owned by
  35. # you with default permissions.
  36. #
  37. # The files contained herein are:
  38. #
  39. # -rw-r--r--  1 norman  people     2220 Jun 29 05:07 README
  40. # -rw-r--r--  1 norman  people     5421 Jun 30 18:57 command.doc
  41. # -rw-r--r--  1 norman  people      287 Jun 30 18:53 makefile
  42. # -rw-r--r--  1 norman  people     1578 Jun 29 03:10 alias.c
  43. # -rw-r--r--  1 norman  people     2053 Jun 29 03:10 command.c
  44. # -rw-r--r--  1 norman  people     2223 Jun 29 03:10 edit.c
  45. # -rw-r--r--  1 norman  people      670 Jun 29 03:10 internal.c
  46. # -rw-r--r--  1 norman  people     1192 Jun 29 03:10 mouse.c
  47. # -rw-r--r--  1 norman  people     2347 Jun 29 03:10 parse.c
  48. # -rw-r--r--  1 norman  people     4150 Jun 29 03:10 window.c
  49. # -rw-r--r--  1 norman  people     1513 Jun 29 14:24 config.h
  50. # -rw-r--r--  1 norman  people     1310 Jun 29 03:10 mouse.h
  51. # -rw-r--r--  1 norman  people      657 Jun 29 14:07 .cmdrc
  52. # -rw-r--r--  1 norman  people      690 Jun 29 14:07 .cmdrc2
  53. # -rw-r--r--  1 norman  people      123 Jun 29 03:16 mice/fighter.m
  54. # -rw-r--r--  1 norman  people      590 Jun 29 03:16 mice/moron.m
  55. # -rw-r--r--  1 norman  people      146 Jun 29 03:16 mice/mouse.m
  56. # -rw-r--r--  1 norman  people     1061 Jun 29 03:16 mice/series.m
  57. # -rw-r--r--  1 norman  people      214 Jun 29 03:16 mice/small.m
  58. # -rw-r--r--  1 norman  people      480 Jun 29 03:16 mice/target.m
  59. # -rw-r--r--  1 norman  people     1056 Jun 29 03:16 mice/target2.m
  60. # -rw-r--r--  1 norman  people      659 Jun 29 03:16 mice/unix.m
  61. # -rw-r--r--  1 norman  people    19563 Jun 29 03:18 36x102.font
  62. #
  63. echo 'x - README'
  64. if test -f README; then echo 'shar: not overwriting README'; else
  65. sed 's/^X//' << '________This_Is_The_END________' > README
  66. XThis is version 1.0 of "command", a command interpreter for the Unix PC.
  67. XNote that the Unix PC is a specific 68000-based unix machine made by AT&T,
  68. Xnot a PC-compatible running Unix.  Command contains much Unix PC specific
  69. Xcode.
  70. X
  71. XCommand works in the following manner: it continually reads command lines
  72. Xfrom the current window, and executes them.  Command lines usually tell
  73. Xcommand to make another window, and execute a program in the new window.
  74. XCommand has a limited alias feature.
  75. X
  76. XOn initialization, command reads in the file $HOME/.cmdrc, and processes it
  77. Xas if it had been typed in on the command line.
  78. X
  79. XCommand was written by me, Norman Yarvin, for my own use.  It has very
  80. Xlittle error checking, and probably a few bugs.  It reflects my own
  81. Xidiosyncrasies both in programming style and in its operation.  However, it
  82. Xis very flexible, and should, with a little effort, suit most people just
  83. Xfine.  I am releasing it into the public domain; if anybody tries to make a
  84. Xbuck off selling public domain software for the Unix PC, they will go out of
  85. Xbusiness anyway.
  86. X
  87. XTo set up command, you should modify config.h as you desire, then run make.
  88. XDocumentation is in command.doc.
  89. X
  90. XIf you want to modify command, be warned: the statement at the head of
  91. Xcommand.c is only half in jest.  Clarity has been sacrificed at the altar of
  92. Xefficiency.
  93. X
  94. XI have included the 36x102 font in this posting.  I got this font over the
  95. Xnet, and have made some modifications.  I have also included two sample
  96. X.cmdrc files: the first is the one I use, and is intended for the 36x102
  97. Xfont; the other is for the standard 24x80 font.
  98. X
  99. XIf you want to use the 36x102 font, do it as follows.  Convert the
  100. X36x102 font to binary form, and install it in /usr/lib/wfont:
  101. X
  102. X# cfont 36x102.font >36x102.ft
  103. X# mv 36x102.ft /usr/lib/wfont
  104. X
  105. XThen, either (1) add the statement
  106. X
  107. X       sfont -s /usr/lib/wfont/36x102.ft 0
  108. X
  109. Xin /etc/.fontload (this makes it the default system font), or (2) define the
  110. Xshell function
  111. X
  112. X       $ setfont() { setf 6; setf $1 6; setf 0; setf $1 0; }
  113. X
  114. Xand then run
  115. X
  116. X       $ setfont /usr/lib/wfont/36x102.ft
  117. X
  118. Xin each new window you create.  The latter won't work properly with
  119. Xcommand's line-and-column automatic setup, though.  Maybe in version 1.1.
  120. X
  121. ________This_Is_The_END________
  122. if test `wc -l < README` -ne 55; then
  123.         echo 'shar: README was damaged during transit (should have been 55 bytes
  124. fi
  125. fi              ; : end of overwriting check
  126. echo 'x - command.doc'
  127. if test -f command.doc; then echo 'shar: not overwriting command.doc'; else
  128. sed 's/^X//' << '________This_Is_The_END________' > command.doc
  129. XThis is documentation for version 1.0 of "command", a command interpreter
  130. Xfor the Unix PC.  Note that the Unix PC is a specific 68000-based unix
  131. Xmachine made by AT&T, not a PC-compatible running Unix.  Command is for the
  132. XUnix PC only.
  133. X
  134. XOPERATION
  135. X
  136. X       Command works in the following manner: it continually reads command
  137. X       lines from the current window, and executes them.  Command lines
  138. X       usually tell command to make another window, and execute a program
  139. X       in the new window.
  140. X
  141. X       On initialization, command reads in the file $HOME/.cmdrc, and
  142. X       processes it as if it had been typed in on the command line.
  143. X
  144. XEDITING
  145. X
  146. X       When it is being typed in, the command line is displayed on the
  147. X       bottom of the screen.  Text typed in will be inserted at the cursor
  148. X       position; in addition, the following emacs style editing keys are
  149. X       recognized:
  150. X
  151. X               ^a              go to beginning of line
  152. X               ^b              go backward a character
  153. X               ^d              delete next character
  154. X               ^e              go to end of line
  155. X               ^f              fo forward a character
  156. X               ^h or delete    delete previous character
  157. X               ^k              kill to end of line
  158. X               ^z <Msg>        copy shell alias, execute command line
  159. X               ^m <Return>     execute command line
  160. X
  161. X       Command designates itsself the "system manager window", unless
  162. X       compiled without that option (see config.h).  This just means that
  163. X       whenever <Msg> is pressed, command gets it, even if command is not
  164. X       the currently active window.  When command reads the Msg key, it
  165. X       immediately executes a special alias called the shell alias (see the
  166. X       description of the alias internal command.).
  167. X
  168. X       If ^d is pressed when there is no text on the command line, then
  169. X       command exits.  This is meant to log you out, so the window is left
  170. X       in raw mode.
  171. X
  172. XTHE COMMAND LINE
  173. X
  174. X       A command line consists of the following:
  175. X
  176. X               a set of window parameters, enclosed in brackets (optional)
  177. X
  178. X               a program name, followed by a list of blank-separated
  179. X               parameters to be passed to the program. (also optional)
  180. X
  181. X       Any text after a hash mark (#) is a comment, and is ignored.
  182. X
  183. XWINDOW PARAMETERS
  184. X
  185. X       Command keeps a set of current window parameters.  This set is used
  186. X       to make all new windows.  Each time window parameters are included on
  187. X       the command line, each command line window parameter overwrittes
  188. X       the corresponding current window parameter.
  189. X
  190. X       Window parameters are any of the following:
  191. X
  192. X               x<integer>      set x coordinate of the upper left hand
  193. X                               window corner to <integer>
  194. X               y<integer>      set y coordinate of the upper left hand
  195. X                               window corner to <integer>
  196. X               w<integer>      set width of the upper left hand
  197. X                               window corner to <integer>
  198. X               h<integer>      set height of the upper left hand
  199. X                               window corner to <integer>
  200. X               b               toggle window border flag
  201. X               v               toggle window variable character spacing flag
  202. X               u               toggle window vertical scroll icon flag
  203. X               s               toggle window horizontal scroll icon flag
  204. X               e               toggle window help icon flag
  205. X               c               toggle window cancel icon flag
  206. X               r               toggle window resize icon flag
  207. X               m               toggle window border move flag
  208. X
  209. X       Any other characters are ignored.
  210. X
  211. XINTERNAL COMMANDS
  212. X
  213. X       A program name is either the name of an internal command, or a full
  214. X       path name of an executable file (not a shell script).  There are
  215. X       three internal commands in command v1.0: they are as follows:
  216. X
  217. X       mouse mfile
  218. X               Command keeps a current mouse icon, used in the same way as
  219. X               the current window parameters.  The "mouse" internal command
  220. X               reads in a new mouse from mfile.  Mfile must be organized in
  221. X               the following fashion: a set of mouse parameters, then the
  222. X               word "data" (actually, just a "d" will do) followed by a
  223. X               newline, then a character bitmap.  Mouse parameters are one
  224. X               of
  225. X
  226. X                       "hs"    horizontal size
  227. X                       "vs"    vertical size
  228. X                       "ha"    horizontal adjust
  229. X                       "va"    vertical adjust
  230. X
  231. X               followed by a single space, then an integer.  A character
  232. X               bitmap is up to 32 lines of up to 32 characters each: for
  233. X               every non-blank character, the corresponding pixel is turned
  234. X               on.
  235. X
  236. X       self
  237. X               Self resets the command window to the current window
  238. X               parameters and the current mouse.
  239. X
  240. X       alias aname atext
  241. X               This command sets the alias aname to the value atext.
  242. X               Thereafter, if aname is used as a program name, aname will
  243. X               be replaced with atext on the command line.  If aname is
  244. X               "sh", then the alias is also designated the "shell alias",
  245. X               and is executed immediately whenever <Msg> is pressed (see
  246. X               EDITING)
  247. X
  248. XEXECUTION
  249. X
  250. X       If a program name is not one of the three internal commands, then it
  251. X       is executed in its own window.  The window that is created has the
  252. X       following attributes:
  253. X
  254. X               -- its size and shape are given by the current window
  255. X                  parameters.
  256. X
  257. X               -- its mouse is the current mouse.
  258. X
  259. X               -- if this option is compiled in (see config.h), interrupt
  260. X                  is set to ^c, kill is set to ^u, and 8'th bit stripping is
  261. X                  turned off (so the meta-key can be used if you are using
  262. X                  CAPCTL).
  263. X
  264. X               -- The environment variables LINES, COLUMNS, and TERMCAP are
  265. X                  set to the appropriate values for the new window's size.
  266. X
  267. X       Note that path searching has not been implemented; a full path name
  268. X       (e.g /bin/ksh or /usr/local/bin/jove) must be given, or the program
  269. X       will not be found.
  270. X
  271. XIT WOULD BE NICE IF...
  272. X
  273. X       Full path names were not required for all programs that command runs.
  274. X
  275. X       Command history were implemented.
  276. X
  277. XBUGS
  278. X
  279. X       For an unknown reason, jove does not work if executed directly from
  280. X       command.  However, running "/bin/ksh -c /usr/local/bin/jove" does
  281. X       work.  Yech.
  282. X
  283. XSEE ALSO
  284. X
  285. X       The source code
  286. X       ./README
  287. X       ./.cmdrc, ./mice/*      sample command rc / mouse icon files
  288. ________This_Is_The_END________
  289. if test `wc -l < command.doc` -ne 159; then
  290.         echo 'shar: command.doc was damaged during transit (should have been 159
  291. fi
  292. fi              ; : end of overwriting check
  293. echo 'x - makefile'
  294. if test -f makefile; then echo 'shar: not overwriting makefile'; else
  295. sed 's/^X//' << '________This_Is_The_END________' > makefile
  296. XCC=/bin/ccc
  297. XCFLAGS=-g
  298. XDEST=/usr/local/bin
  299. XOBJS=edit.o command.o alias.o window.o parse.o internal.o mouse.o
  300. X
  301. Xcommand: $(OBJS)
  302. X       $(CC) $(CCFLAGS) -o command ${OBJS}
  303. X
  304. Xmouse.o: mouse.h config.h
  305. X
  306. Xalias.o window.o: config.h
  307. X
  308. Xinstall:
  309. X       su root -c "chown root.root command ; mv command $(DEST)"
  310. ________This_Is_The_END________
  311. if test `wc -l < makefile` -ne 14; then
  312.         echo 'shar: makefile was damaged during transit (should have been 14 byt
  313. fi
  314. fi              ; : end of overwriting check
  315. echo 'x - alias.c'
  316. if test -f alias.c; then echo 'shar: not overwriting alias.c'; else
  317. sed 's/^X//' << '________This_Is_The_END________' > alias.c
  318. X/*
  319. X* alias.c -- for "command", a Unix PC command interpreter
  320. X*/
  321. X
  322. X#include <sys/pte.h>
  323. X#include <stdio.h>
  324. X#include "config.h"
  325. X
  326. Xstruct alias {                                                 /* a binary tree
  327. X       struct alias *gt, *lt;
  328. X       char *alias, *text;
  329. X};
  330. X
  331. Xchar *alloc();
  332. Xchar shmac[80]=SHMAC;
  333. X
  334. Xstruct alias **afind(s)                                /* find an alias, or a p
  335. Xchar *s;
  336. X{
  337. X       static struct alias *head=NULL;
  338. X       struct alias **al;
  339. X       int i;
  340. X
  341. X       for(al=&head; *al; ) {
  342. X               if(!(i=strcmp(s,(*al)->alias)))
  343. X                       break;
  344. X               al = i<0 ? &(*al)->lt : &(*al)->gt;
  345. X       }
  346. X       return al;
  347. X}
  348. X
  349. Xchar *alias(s)                                                         /* find
  350. Xchar *s;
  351. X{
  352. X       char *strcpy();
  353. X       struct alias *a;
  354. X       static char abuf[256];
  355. X
  356. X       return (a=*afind(s)) ? strcpy(abuf,a->text) : NULL;
  357. X}
  358. X
  359. Xchar *mkalias(alias,text)
  360. Xchar *alias,*text;
  361. X{
  362. X       struct alias **a;
  363. X
  364. X       if(strcmp(alias,"sh"))                                          /* is it
  365. X               strcpy(shmac,text);
  366. X       a=afind(alias);
  367. X       if(!*a) {                                                       /* does
  368. X               *a=(struct alias *)alloc(sizeof(struct alias));
  369. X               (*a)->alias=alloc(strlen(alias)+1);
  370. X               strcpy((*a)->alias,alias);
  371. X       }
  372. X       (*a)->text=alloc(strlen(text)+1);
  373. X       strcpy((*a)->text,text);
  374. X}
  375. X
  376. Xchar *alloc(n)                         /* fast allocator for objects not to be
  377. X{
  378. X       static char *brk=0, *ubrk;              /* brk is actual breakpoint, ubr
  379. X       register char *oldubrk;
  380. X       register int size;
  381. X       char *sbrk();
  382. X
  383. X       n+=1;
  384. X       n&=0xfffffffe;
  385. X       size=(n/BYTES_PER_PAGE+1)*BYTES_PER_PAGE;
  386. X       if(!brk)
  387. X               brk=(ubrk=sbrk(size))+size;
  388. X       if(ubrk+n >= brk){
  389. X               brk+=size;
  390. X               sbrk(size);
  391. X       }
  392. X       oldubrk=ubrk;
  393. X       ubrk+=n;
  394. X       return oldubrk;
  395. X}
  396. ________This_Is_The_END________
  397. if test `wc -l < alias.c` -ne 78; then
  398.         echo 'shar: alias.c was damaged during transit (should have been 78 byte
  399. fi
  400. fi              ; : end of overwriting check
  401. echo 'x - command.c'
  402. if test -f command.c; then echo 'shar: not overwriting command.c'; else
  403. sed 's/^X//' << '________This_Is_The_END________' > command.c
  404. X/*******
  405. X*      *
  406. X*   /  *  WARNING: DO NOT ATTEMPT TO ALTER THIS PROGRAM.  EXPOSED HIGH VOLTAGE.
  407. X*  /__ *  USER-SERVICEABLE PARTS INSIDE.  THIS PROGRAM IS TO BE SERVICED ONLY B
  408. X*    / *  PROPERLY QUALIFIED SERVICE PERSONNEL.  CONSULT THE SERVICE MANUAL FOR
  409. X*   /  *  PROPER SERVICE PROCEDURES TO ASSURE CONTINUED COMPLIANCE WITH FEDERAL
  410. X*      *  PERFOMANCE STANDARDS.
  411. X********
  412. X*
  413. X* command.c -- main routine of Unix PC command interpreter
  414. X*
  415. X* Written by Norman Yarvin.  Send bug fixes to yarvin@cs.jhu.edu.
  416. X* No copyright.
  417. X*
  418. X*/
  419. X
  420. X#include <fcntl.h>
  421. X#include <signal.h>
  422. X#include <stdio.h>
  423. X
  424. Xint initfd;                                                            /* .cmdr
  425. Xchar **envp1;
  426. X
  427. Xmain(argc,argv,envp)
  428. Xint argc;
  429. Xchar **argv;
  430. Xchar **envp;
  431. X{
  432. X       char *strcpy(), *strcat(), *envinit(), *getcmd(), *initgetcmd(), initfil
  433. X
  434. X       signal(SIGCLD,SIG_IGN);
  435. X       home=envinit(envp);                     /* get $HOME, set envp up for pa
  436. X       wsetup();                                                       /* set u
  437. X       strcpy(initfile, home);
  438. X       strcat(initfile, "/.cmdrc");
  439. X       if((initfd=open(initfile,O_RDONLY))!=-1) {
  440. X               process(initgetcmd);                            /* initgetcmd re
  441. X               close(initfd);
  442. X       }
  443. X       process(getcmd);                                        /* getcmd reads
  444. X}
  445. X
  446. Xprocess(getcmd)
  447. Xchar *(*getcmd)();
  448. X{
  449. X       char *cmd, **argv;
  450. X       char **parse();
  451. X
  452. X       while(cmd=(*getcmd)()) {
  453. X               if((argv=parse(cmd)) && *argv && !internal(argv))
  454. X                       switch(fork()){
  455. X                               case -1:
  456. X                                       error("fork failed");           /* we co
  457. X                               default:
  458. X                                       break;
  459. X                               case 0:
  460. X                                       wmake(*argv);
  461. X                                       execve(*argv, argv, envp1);
  462. X                                       perror(*argv);                  /* exec
  463. X                                       sleep(2);
  464. X                                       _exit(0);
  465. X                       }
  466. X       }
  467. X}
  468. X
  469. Xchar *initgetcmd()
  470. X{
  471. X       static char buf[BUFSIZ], cmd[256];
  472. X       static int size, bp=BUFSIZ;
  473. X       register char c, *cmdp;
  474. X
  475. X       cmdp=cmd;
  476. X       while((size = bp==BUFSIZ ? (bp=0,read(initfd,buf,BUFSIZ)) : size) != bp)
  477. X               c=buf[bp++];
  478. X               *cmdp++ = c=='\t' ? ' ' : c;            /* tab -> space */
  479. X               if(c=='\n' || cmdp-cmd>254) {
  480. X                       cmdp[-1]=0;
  481. X                       return cmd;
  482. X               }
  483. X       }
  484. X       return 0;
  485. X}
  486. ________This_Is_The_END________
  487. if test `wc -l < command.c` -ne 82; then
  488.         echo 'shar: command.c was damaged during transit (should have been 82 by
  489. fi
  490. fi              ; : end of overwriting check
  491. echo 'x - edit.c'
  492. if test -f edit.c; then echo 'shar: not overwriting edit.c'; else
  493. sed 's/^X//' << '________This_Is_The_END________' > edit.c
  494. X/*
  495. X* edit.c -- for "command", a Unix PC command interpreter
  496. X*/
  497. X
  498. X#include <sys/window.h>
  499. X
  500. Xextern struct utdata utdata;
  501. Xextern char *cmd, shmac[];
  502. X
  503. Xchar *getcmd()
  504. X{
  505. X       char c;
  506. X       int offset, first=1;
  507. X       register char *cmdp,*cp1,*cp2;
  508. X
  509. X       for(*(cmdp=cmd)=0; ; ){
  510. X               if(*cmdp) {
  511. X                       *cmdp|=0x80;                            /* highlight cur
  512. X                       ioctl(0,WIOCSETTEXT,&utdata);
  513. X                       *cmdp&=0x7f;                            /* remove highli
  514. X               } else {
  515. X                       *cmdp=' '|0x80;
  516. X                       cmdp[1]=0;
  517. X                       ioctl(0,WIOCSETTEXT,&utdata);
  518. X                       *cmdp=0;
  519. X               }
  520. X               read(0, &c, 1);
  521. X               if(first) {
  522. X                       first=0;
  523. X                       error("");
  524. X               }
  525. X               c&=0x7f;                                        /* strip 8th bit
  526. X               switch(c) {
  527. X                       case 0x01:                              /* ^a: to beginn
  528. X                               cmdp=cmd;
  529. X                               break;
  530. X                       case 0x02:                              /* ^b: non-destr
  531. X                               if(cmdp<=cmd)
  532. X                                       break;
  533. X                               cmdp--;
  534. X                               break;
  535. X                       case 0x04:                              /* ^d: delete ne
  536. X                               if(!*cmdp) {
  537. X                                       if(cmdp==cmd)
  538. X                                               return 0;
  539. X                                       break;
  540. X                               }
  541. X                               cp2=cmdp;
  542. X                               for(cp1=cp2++; *cp1++=*cp2++; );
  543. X                               break;
  544. X                       case 0x05:                              /* ^e: end of li
  545. X                               while(*cmdp)
  546. X                                       cmdp++;
  547. X                               break;
  548. X                       case 0x06:                              /* ^f: forward a
  549. X                               if(!*cmdp)
  550. X                                       break;
  551. X                               cmdp++;
  552. X                               break;
  553. X                       case 0x08:                              /* ^h: backspace
  554. X                       case 0x7f:                              /* delete */
  555. X                               if(cmdp<=cmd)
  556. X                                       break;
  557. X                               cp2=cmdp--;
  558. X                               for(cp1=cmdp; *cp1++=*cp2++; );
  559. X                               break;
  560. X                       case 0x0b:                              /* ^k: kill to e
  561. X                               *cmdp=0;
  562. X                               break;
  563. X                       case 0x1a:                              /* ^z (Msg): cop
  564. X                               for(cp1=shmac,cmdp=cmd; *cmdp++=*cp1++; );
  565. X                       case 0x0d:                              /* ^m: return */
  566. X                               return cmd;
  567. X                       case 0x00:                              /* ^~ */
  568. X                       case 0x03:                              /* ^c */
  569. X                       case 0x07:                              /* ^g */
  570. X                       case 0x0a:                              /* ^j */
  571. X                       case 0x0c:                              /* ^l: redraw */
  572. X                       case 0x0e:                              /* ^n */
  573. X                       case 0x0f:                              /* ^o */
  574. X                       case 0x10:                              /* ^p */
  575. X                       case 0x11:                              /* ^q */
  576. X                       case 0x12:                              /* ^r */
  577. X                       case 0x13:                              /* ^s */
  578. X                       case 0x14:                              /* ^t */
  579. X                       case 0x16:                              /* ^v */
  580. X                       case 0x17:                              /* ^w */
  581. X                       case 0x18:                              /* ^x */
  582. X                       case 0x19:                              /* ^y */
  583. X                               break;
  584. X                       case 0x09:                              /* ^i: tab inser
  585. X                               c=' ';
  586. X                       default:                                /* insert it */
  587. X                               for(cp1=cmdp; *cp1; cp1++);
  588. X                               if(cp1>=cmd+(WTXTLEN-2))        /* parenthesized
  589. X                                       break;
  590. X                               cp2=cp1++;
  591. X                               for(; cp1>cmdp; *cp1--=*cp2--);
  592. X                               *cmdp++=c;
  593. X               }
  594. X       }
  595. X}
  596. ________This_Is_The_END________
  597. if test `wc -l < edit.c` -ne 102; then
  598.         echo 'shar: edit.c was damaged during transit (should have been 102 byte
  599. fi
  600. fi              ; : end of overwriting check
  601. echo 'x - internal.c'
  602. if test -f internal.c; then echo 'shar: not overwriting internal.c'; else
  603. sed 's/^X//' << '________This_Is_The_END________' > internal.c
  604. X/*
  605. X* internal.c -- for "command", a Unix PC command interpreter
  606. X*/
  607. X
  608. Xint self(), readmouse();
  609. X
  610. Xstruct internal{
  611. X       char *name;
  612. X       int (*func)();
  613. X} internals[] = {
  614. X       { "mouse", readmouse },                                 /* add functions
  615. X       { "self", self }                                                /* and c
  616. X};
  617. X
  618. X#define INTERNALS      2
  619. X
  620. Xinternal(argv)
  621. Xchar **argv;
  622. X{
  623. X       struct internal *top, *bot, *mid;
  624. X       int i;
  625. X
  626. X       top=internals;                                  /* binary search */
  627. X       bot=internals+(INTERNALS-1);
  628. X       while(top<bot) {
  629. X               mid=top+((bot-top)>>1);
  630. X               if(!(i=strcmp(*argv,mid->name))) {
  631. X                       top=mid;
  632. X                       break;
  633. X               }
  634. X               if(i<0)
  635. X                       bot=mid;
  636. X               else
  637. X                       top=mid+1;
  638. X       }
  639. X       if(strcmp(*argv,top->name))
  640. X               return 0;
  641. X       (*top->func)(argv);
  642. X       return 1;
  643. X}
  644. ________This_Is_The_END________
  645. if test `wc -l < internal.c` -ne 40; then
  646.         echo 'shar: internal.c was damaged during transit (should have been 40 b
  647. fi
  648. fi              ; : end of overwriting check
  649. echo 'x - mouse.c'
  650. if test -f mouse.c; then echo 'shar: not overwriting mouse.c'; else
  651. sed 's/^X//' << '________This_Is_The_END________' > mouse.c
  652. X/*
  653. X* mouse.c -- for "command", a Unix PC command interpreter
  654. X*/
  655. X
  656. X#include "mouse.h"
  657. X
  658. Xreadmouse(argv)
  659. Xchar **argv;
  660. X{
  661. X       int fd;
  662. X       char buf[1500];
  663. X       register char *bp=buf, *end;
  664. X       register int i;
  665. X       unsigned short *data, *dend;
  666. X
  667. X       if(!argv[1]) {
  668. X               error("Usage: mouse file");
  669. X               return;
  670. X       }
  671. X       if((fd=open(argv[1],0)) == -1){
  672. X               error("Can't open mouse data file");
  673. X               return;
  674. X       }
  675. X       bp[read(fd,bp,1500)]=0;
  676. X       close(fd);
  677. X       m_icon.ic_fc.fc_hs=32;
  678. X       m_icon.ic_fc.fc_vs=32;
  679. X       m_icon.ic_fc.fc_ha=0;
  680. X       m_icon.ic_fc.fc_va=0;
  681. X       for(dend=(data=m_icon.ic_raster)+64; data<dend; data++)
  682. X               *data=0;
  683. X       for(; *bp; bp++) {                                              /* get i
  684. X               if(*bp=='h') {
  685. X                       if(*++bp=='s')
  686. X                               m_icon.ic_fc.fc_hs=getint(bp+1);
  687. X                       else
  688. X                               m_icon.ic_fc.fc_ha=getint(bp+1);
  689. X               } else if(*bp=='v') {
  690. X                       if(*++bp=='s')
  691. X                               m_icon.ic_fc.fc_vs=getint(bp+1);
  692. X                       else
  693. X                               m_icon.ic_fc.fc_va=getint(bp+1);
  694. X               }
  695. X               if(*bp=='d') {
  696. X                       while(*bp++ != '\n');
  697. X                       break;
  698. X               }
  699. X       }
  700. X       for(data=m_icon.ic_raster, i=1; data<dend&&*bp;){
  701. X               if(*bp=='\n') {
  702. X                       data += (dend-data)%2 || m_icon.ic_fc.fc_hs<=16 ? 1 : 2;
  703. X                       i=1;
  704. X                       bp++;
  705. X                       continue;
  706. X               }
  707. X               if(i >= 1<<16) {
  708. X                       i=1;
  709. X                       data++;
  710. X               }
  711. X               if(*bp++ != ' ')
  712. X                       *data|=i;
  713. X               i<<=1;
  714. X       }
  715. X}
  716. ________This_Is_The_END________
  717. if test `wc -l < mouse.c` -ne 64; then
  718.         echo 'shar: mouse.c was damaged during transit (should have been 64 byte
  719. fi
  720. fi              ; : end of overwriting check
  721. echo 'x - parse.c'
  722. if test -f parse.c; then echo 'shar: not overwriting parse.c'; else
  723. sed 's/^X//' << '________This_Is_The_END________' > parse.c
  724. X/*
  725. X* parse.c -- for "command", a Unix PC command interpreter
  726. X*/
  727. X
  728. X#include <sys/window.h>
  729. X#include <stdio.h>
  730. X
  731. Xextern struct uwdata uwdata;                                   /* set here, use
  732. X
  733. X#define BEGIN  0x00                                            /* states of com
  734. X#define BLANK  0x01
  735. X#define PARAM  0x02
  736. X#define WPARAM 0x03
  737. X
  738. Xchar *argv[40];
  739. X
  740. Xchar **parse(cmd)
  741. Xchar *cmd;
  742. X{
  743. X       register char **argvp=argv, *cmdp, c;
  744. X       register int state=BEGIN;
  745. X       int first=1;
  746. X       char *alias(), *cmdp2=NULL;
  747. X       char *temp;
  748. X
  749. X       for(cmdp=cmd; *cmdp && *cmdp!='#'; cmdp++);             /* end cmd line
  750. X       *cmdp=' ';                                                      /* # des
  751. X       cmdp[1]=0;
  752. X       for(cmdp=cmd; (c=*cmdp) || cmdp2 && (c=*(cmdp=cmdp2)) && !(cmdp2=0); cmd
  753. X               switch(state) {
  754. X                       case BEGIN:                             /* we start here
  755. X                               if(c=='[') {
  756. X                                       state=WPARAM;
  757. X                                       break;
  758. X                               }
  759. X                       case BLANK:                             /* we're process
  760. X                               if(c==' ')
  761. X                                       break;
  762. X                               state=PARAM;
  763. X                               *argvp++=cmdp;
  764. X                               break;
  765. X                       case PARAM:                             /* we're process
  766. X                               if(c!=' ')
  767. X                                       break;
  768. X                               *cmdp=0;
  769. X                               if(first) {
  770. X                                       first=0;
  771. X                                       if(temp=alias(*argv)) {
  772. X                                               *(cmdp2=cmdp)=' ';
  773. X                                               cmdp=temp-1;
  774. X                                               argvp=argv;
  775. X                                               state=BEGIN;
  776. X                                               break;
  777. X                                       }
  778. X                               }
  779. X                               else if(argvp==argv+2 && !strcmp(*argv,"alias"))
  780. X                                       mkalias(argv[1], ++cmdp);
  781. X                                       return NULL;
  782. X                               }
  783. X                               state=BLANK;
  784. X                               break;
  785. X                       case WPARAM:                    /* we're processing wind
  786. X                               switch(c) {
  787. X                                       case 'x' : uwdata.uw_x      = getint(cmd
  788. X                                       case 'y' : uwdata.uw_y      = getint(cmd
  789. X                                       case 'w' : uwdata.uw_width  = getint(cmd
  790. X                                       case 'h' : uwdata.uw_height = getint(cmd
  791. X                                       case 'b' : uwdata.uw_uflags ^= NBORDER;
  792. X                                       case 'v' : uwdata.uw_uflags ^= VCWIDTH;
  793. X                                       case 'u' : uwdata.uw_uflags ^= BORDVSCRO
  794. X                                       case 's' : uwdata.uw_uflags ^= BORDHSCRO
  795. X                                       case 'e' : uwdata.uw_uflags ^= BORDHELP;
  796. X                                       case 'c' : uwdata.uw_uflags ^= BORDCANCE
  797. X                                       case 'r' : uwdata.uw_uflags ^= BORDRESIZ
  798. X                                       case 'm' : uwdata.uw_uflags ^= NBORDMOVE
  799. X                                       case ']' : state=BLANK;
  800. X                               }
  801. X                               break;
  802. X               }
  803. X       }
  804. X       *argvp=NULL;
  805. X       return argv;
  806. X}
  807. X
  808. Xgetint(s)                                      /* find whatever integer there i
  809. Xchar *s;
  810. X{
  811. X       register int i=0;
  812. X       int neg=0;
  813. X
  814. X       if(s[1] == '-'){
  815. X               neg=1;
  816. X               s++;
  817. X       }
  818. X       while(*++s>='0' && *s<='9') {
  819. X               i*=10;
  820. X               i+=*s-'0';
  821. X       }
  822. X       return neg ? -i : i;
  823. X}
  824. ________This_Is_The_END________
  825. if test `wc -l < parse.c` -ne 100; then
  826.         echo 'shar: parse.c was damaged during transit (should have been 100 byt
  827. fi
  828. fi              ; : end of overwriting check
  829. echo 'x - window.c'
  830. if test -f window.c; then echo 'shar: not overwriting window.c'; else
  831. sed 's/^X//' << '________This_Is_The_END________' > window.c
  832. X/*
  833. X* window.c -- for "command", a Unix PC command interpreter
  834. X*/
  835. X
  836. X#include <sys/window.h>
  837. X#include <fcntl.h>
  838. X#include <termio.h>
  839. X#include "config.h"
  840. X
  841. Xextern struct umdata umdata;                                   /* mouse icon --
  842. X
  843. Xstruct utdata utdata = {
  844. X       WTXTLABEL,
  845. X       "Command"
  846. X};
  847. X
  848. Xstruct uwdata uwdata = {
  849. X       288,                                    /* upper-left-corner x (pixels)
  850. X       0,                                      /* upper-left-corner y (pixels)
  851. X       378,                                    /* width (pixels)
  852. X       12,                                     /* height (pixels)
  853. X       NBORDER                                 /* various flags
  854. X};
  855. X
  856. Xchar termcapd[9][40]={ "TERMCAP=:al=\\E[1L:am:bs:cd=\\E[0J:ce=\\E[0",
  857. X                       "K:cl=\\E[2J\\E[H:cm=\\E[%i%2;%2H:dc=\\E[1P:d",
  858. X                       "l=\\E[1M:do=\\E[B:ei=:ho=\\E[H:ic=\\E[1@:im=",
  859. X                       ":kb=\\10:kd=\\E[B:kl=\\E[D:kr=\\E[C:ku=\\E[A:",
  860. X                       "k1=\\EOc:k2=\\EOd:k3=\\EOe:k4=\\EOf:k5=\\EOg:",
  861. X                       "k6=\\EOh:k7=\\EOi:k8=\\EOj:nd=\\E[C:se=\\E[m:",
  862. X                       "so=\\E[7m:ue=\\E[m:up=\\E[A:us=\\E[4m:EE=\\E[",
  863. X                       "m:DS=\\E[2m:CV=\\E[=C:CI=\\E[=1C:KM=/usr/li",
  864. X                       "b/ua/kmap.s4:li#000:co#000:"
  865. X};
  866. Xchar *termcap=*termcapd;                       /* if you change these, change t
  867. Xchar lines[]="LINES=000";
  868. Xchar columns[]="COLUMNS=000";
  869. X
  870. X#define TERMCAP_XPOS   343                                     /* locations in
  871. X#define TERMCAP_YPOS   336
  872. X#define LINES_YPOS     6
  873. X#define COLUMNS_XPOS   8
  874. X
  875. Xchar *cmd=utdata.ut_text;
  876. Xchar **envp1;
  877. Xstruct termio termio;
  878. X
  879. Xchar *envinit(envp)
  880. Xchar **envp;
  881. X{
  882. X       char *home;
  883. X
  884. X       envp1=envp;
  885. X       for(;*envp;envp++){
  886. X               if(!strncmp(*envp,lines,5))
  887. X                       *envp=lines;
  888. X               if(!strncmp(*envp,columns,7))
  889. X                       *envp=columns;
  890. X               if(!strncmp(*envp,termcap,7))
  891. X                       *envp=termcap;
  892. X               if(!strncmp(*envp,"HOME=",5))
  893. X                       home=*envp+5;
  894. X       }
  895. X       return home;                                            /* after a long
  896. X}
  897. X
  898. Xwsetup()                                               /* command window initia
  899. X{
  900. X       ioctl(0, WIOCSETMOUSE, &umdata);                                /* see m
  901. X       ioctl(0, WIOCSETTEXT, &utdata);                                 /* name
  902. X       utdata.ut_num = WTXTCMD;                                        /* set u
  903. X#ifdef SMGR
  904. X       ioctl(0, WIOCSYS, SYSSMGR);     /* make the system manager (smgr is dead
  905. X#endif
  906. X
  907. X       ioctl(0, TCGETA, &termio);
  908. X       termio.c_lflag = 0;                                             /* raw m
  909. X       termio.c_iflag = 0;                                             /* don't
  910. X       termio.c_oflag = 0;                                             /* don't
  911. X       termio.c_cc[4] = 1;                                             /* one c
  912. X       termio.c_cc[5] = 0;                                             /* no ti
  913. X       ioctl(0, TCSETA, &termio);
  914. X       write(1, "\33[2J\33[H\33[=1C", 12);                     /* clear screen,
  915. X}
  916. X
  917. Xself()                                                 /* command window positi
  918. X{
  919. X       write(1, "\33[2J\33[H\33[=1C", 12);                     /* clear screen,
  920. X       ioctl(0, WIOCSETMOUSE, &umdata);                                /* see m
  921. X       ioctl(0, WIOCSETD, &uwdata);
  922. X}
  923. X
  924. Xerror(s)                                       /* put s in "prompt" line -- clo
  925. Xchar *s;
  926. X{
  927. X       register char *cmdp;
  928. X
  929. X       for(cmdp=cmd; *cmdp++=*s++;);
  930. X       utdata.ut_num=WTXTPROMPT;
  931. X       ioctl(0,WIOCSETTEXT,&utdata);
  932. X       utdata.ut_num=WTXTCMD;
  933. X}
  934. X
  935. Xwmake(s)                                                       /* make a new wi
  936. Xchar *s;
  937. X{
  938. X       register int i,wd;
  939. X
  940. X       close(0);
  941. X       close(1);
  942. X       close(2);
  943. X       setpgrp();                                      /* child will not die wh
  944. X       wd = open("/dev/window", O_RDWR);
  945. X       dup(wd);
  946. X       dup(wd);
  947. X       ioctl(wd, WIOCSETD, &uwdata);
  948. X       ioctl(wd, WIOCGETD, &uwdata);
  949. X       i = uwdata.uw_height/uwdata.uw_vs;
  950. X       termcap[TERMCAP_YPOS] = lines[LINES_YPOS] = i/100 + '0';
  951. X       termcap[TERMCAP_YPOS+1] = lines[LINES_YPOS+1] = (i/10)%10 + '0';
  952. X       termcap[TERMCAP_YPOS+2] = lines[LINES_YPOS+2] = i%10 + '0';
  953. X       i = uwdata.uw_width/uwdata.uw_hs;
  954. X       termcap[TERMCAP_XPOS] = columns[COLUMNS_XPOS] = i/100 + '0';
  955. X       termcap[TERMCAP_XPOS+1] = columns[COLUMNS_XPOS+1] = (i/10)%10 + '0';
  956. X       termcap[TERMCAP_XPOS+2] = columns[COLUMNS_XPOS+2] = i%10 + '0';
  957. X       utdata.ut_num=WTXTLABEL;                                        /* tell
  958. X       if(!strcmp(CMDDESC, utdata.ut_text))
  959. X               strcpy(utdata.ut_text, s);
  960. X       ioctl(wd, WIOCSETTEXT, &utdata);                        /* command is wi
  961. X       ioctl(wd, WIOCSETMOUSE, &umdata);                               /* see m
  962. X       ioctl(wd, TCGETA, &termio);
  963. X#ifdef NOSTRIP
  964. X       termio.c_iflag &= ~ISTRIP;                                      /* don't
  965. X#endif
  966. X       termio.c_cc[0] = INTR;                                          /* inter
  967. X       termio.c_cc[3] = KILL;                                          /* kill
  968. X       ioctl(wd, TCSETA, &termio);
  969. X}
  970. ________This_Is_The_END________
  971. if test `wc -l < window.c` -ne 138; then
  972.         echo 'shar: window.c was damaged during transit (should have been 138 by
  973. fi
  974. fi              ; : end of overwriting check
  975. echo 'x - config.h'
  976. if test -f config.h; then echo 'shar: not overwriting config.h'; else
  977. sed 's/^X//' << '________This_Is_The_END________' > config.h
  978. X/*
  979. X* config.h -- configuration file for "command", a Unix PC command interpreter
  980. X*/
  981. X
  982. X/*
  983. X * The defines in this file select options that (I think) improve the
  984. X * functionality of command.  However, some people may not like them, or they
  985. X * might be incompatible with other software (nothing serious, though).
  986. X */
  987. X
  988. X/*
  989. X * If SMGR is defined, command will designate itsself the "screen manager"
  990. X * (smgr).  All this means is that when the <Msg> key is pressed, it goes to
  991. X * command no matter what window is active.  When command receives <Msg>, it
  992. X * runs a special alias.  The initial text of that alias is whatever is
  993. X * defined as SHMAC.
  994. X */
  995. X
  996. X#define SMGR
  997. X#define SHMAC  "/bin/ksh"              /* invoked when <Msg> is pressed */
  998. X
  999. X/*
  1000. X * This is the description of the window in which command runs.
  1001. X */
  1002. X
  1003. X#define CMDDESC        "Command"
  1004. X
  1005. X/*
  1006. X * If CTLC is defined, then in windows command makes, interrupt is set to ^c.
  1007. X * If CTLU is defined, kill is set to ^u.
  1008. X * If NOSTRIP is defined 8'th bit stripping is turned off (so that the
  1009. X * meta-key works, if you are using CAPCTL (the new keyboard driver)).
  1010. X */
  1011. X
  1012. X#define INTR   3               /* ^c */
  1013. X#define KILL   21              /* ^u */
  1014. X#define NOSTRIP
  1015. X
  1016. X/*
  1017. X * Command starts out with a default mouse.  Here you have a choice between a
  1018. X * default mouse which is small and better shaped than than the system mouse,
  1019. X * or a default mouse which is a gunsight-like crosshair.  Pick one or the
  1020. X * other, but not both!
  1021. X */
  1022. X
  1023. X#define M_SMALL                                /* small mouse */
  1024. X                                       /* --OR-- */
  1025. X/*#define M_TARGET                     /* crosshair */
  1026. ________This_Is_The_END________
  1027. if test `wc -l < config.h` -ne 48; then
  1028.         echo 'shar: config.h was damaged during transit (should have been 48 byt
  1029. fi
  1030. fi              ; : end of overwriting check
  1031. echo 'x - mouse.h'
  1032. if test -f mouse.h; then echo 'shar: not overwriting mouse.h'; else
  1033. sed 's/^X//' << '________This_Is_The_END________' > mouse.h
  1034. X/*
  1035. X* mouse.h -- for "command", a Unix PC command interpreter
  1036. X*/
  1037. X
  1038. X#include <sys/window.h>
  1039. X#include <sys/font.h>
  1040. X#include "config.h"
  1041. X
  1042. Xstruct icon m_icon = {
  1043. X       0,                                      /* flags (unused)
  1044. X       {                                       /* font def
  1045. X#ifdef M_SMALL
  1046. X               16,                             /* horizontal size in bits
  1047. X               13,                             /* vertical size
  1048. X               0,                              /* horizontal adjust (signed)
  1049. X               0,                              /* vertical adjust (signed)
  1050. X#endif
  1051. X#ifdef M_TARGET
  1052. X               32, 21, -15, -10,
  1053. X#endif
  1054. X               0,                              /* horizontal increment
  1055. X               0,                              /* vertical increment (optional)
  1056. X               0                               /* relative mini-raster pointer
  1057. X       },
  1058. X       {                                       /* raster data
  1059. X#ifdef M_SMALL
  1060. X               0x1,0x2,0xc,0x3c,0xf8,0x3f8,0xff8,0x1f0,0x330,0x610,0xc00,0x1800
  1061. X#endif
  1062. X#ifdef M_TARGET
  1063. X               0x000f, 0x7800, 0x0001, 0x4000, 0x0001, 0x4000, 0x0001, 0x4000,
  1064. X               0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0x8000, 0x0000,
  1065. X               0x8000, 0x0000, 0x8000, 0x0000, 0x7e00, 0x003f, 0x8000, 0x0000,
  1066. X               0x8000, 0x0000, 0x8000, 0x0000, 0x8000, 0x0000, 0x0000, 0x0000,
  1067. X               0x0000, 0x0000, 0x0001, 0x4000, 0x0001, 0x4000, 0x0001, 0x4000,
  1068. X               0x000f, 0x7800
  1069. X#endif
  1070. X       }
  1071. X};
  1072. X
  1073. Xstruct umdata umdata = {
  1074. X       MSICON,                                 /* wakeup flags
  1075. X       0,                                      /* motion rectangle x
  1076. X       0,                                      /* motion rectangle y
  1077. X       0,                                      /* motion rectangle w
  1078. X       0,                                      /* motion rectangle h
  1079. X       &m_icon                                 /* ptr to icon if MSICON=1
  1080. X};
  1081. ________This_Is_The_END________
  1082. if test `wc -l < mouse.h` -ne 47; then
  1083.         echo 'shar: mouse.h was damaged during transit (should have been 47 byte
  1084. fi
  1085. fi              ; : end of overwriting check
  1086. echo 'x - .cmdrc'
  1087. if test -f .cmdrc; then echo 'shar: not overwriting .cmdrc'; else
  1088. sed 's/^X//' << '________This_Is_The_END________' > .cmdrc
  1089. X# .cmdrc -- command initialization file
  1090. X#
  1091. X[x300 y0 w350 h12]self                 # relocate command window
  1092. Xalias s0 [x300 y0 w350 h12]self                # make that an alias
  1093. Xalias w80 [x160 w560 y16 h192]/bin/ksh # if using the 36x102 font, this is a 24
  1094. Xalias w10 [x6 y210 w714 h80]/bin/ksh   # and this is a 10x102 window
  1095. Xalias w0 [x0 y4 w714 h296]/bin/ksh     # and this is a 37x102 window
  1096. Xalias w1 [x0 y12 w714 h288]/bin/ksh    # and this is a 36x102 window
  1097. Xalias wa [x0 y16 w150 h192]/bin/ksh    # and this is a tiny window
  1098. Xalias jove /bin/ksh -c /usr/local/jove # jove doesn't work plain
  1099. Xalias ksh /bin/ksh                     # useful
  1100. Xw80                                    # make two not completely overlapping
  1101. Xw0                                     # windows
  1102. ________This_Is_The_END________
  1103. if test `wc -l < .cmdrc` -ne 13; then
  1104.         echo 'shar: .cmdrc was damaged during transit (should have been 13 bytes
  1105. fi
  1106. fi              ; : end of overwriting check
  1107. echo 'x - .cmdrc2'
  1108. if test -f .cmdrc2; then echo 'shar: not overwriting .cmdrc2'; else
  1109. sed 's/^X//' << '________This_Is_The_END________' > .cmdrc2
  1110. X# .cmdrc2 -- command initialization file for normal font
  1111. X#
  1112. X[x288 y0 w40 h12]self                  # relocate command window
  1113. Xalias s0 [x300 y0 w350 h12]self                # make that an alias
  1114. Xalias w60 [x180 w540 y8 h180]/bin/ksh  # if using the standard font, this is a
  1115. X                                       # 15x60 window
  1116. Xalias w8 [x0 y200 w720 h96]/bin/ksh    # and this is a 8x80 window
  1117. Xalias w0 [x0 y0 w720 h300]/bin/ksh     # and this is a 25x80 window
  1118. Xalias w1 [x0 y12 w708 h288]/bin/ksh    # and this is a 24x79 window
  1119. Xalias w2 [x0 y12 w720 h288]/bin/ksh    # and this is a standard 24x80 window
  1120. Xalias jove /bin/ksh -c /usr/local/bin/jove # jove doesn't work plain
  1121. Xalias ksh /bin/ksh                     # useful
  1122. Xw60                                    # make two not completely overlapping
  1123. Xw1                                     # windows
  1124. ________This_Is_The_END________
  1125. if test `wc -l < .cmdrc2` -ne 14; then
  1126.         echo 'shar: .cmdrc2 was damaged during transit (should have been 14 byte
  1127. fi
  1128. fi              ; : end of overwriting check
  1129. echo mkdir mice
  1130. mkdir mice
  1131. echo 'x - mice/fighter.m'
  1132. if test -f mice/fighter.m; then echo 'shar: not overwriting mice/fighter.m'; els
  1133. sed 's/^X//' << '________This_Is_The_END________' > mice/fighter.m
  1134. Xvs 14
  1135. Xdata
  1136. X#
  1137. X ##
  1138. X  ###
  1139. X   ######
  1140. X   ##########
  1141. X   ########
  1142. X    ######
  1143. X    #######
  1144. X    ##  ####
  1145. X    #    #####
  1146. X         ##
  1147. X
  1148. ________This_Is_The_END________
  1149. if test `wc -l < mice/fighter.m` -ne 14; then
  1150.         echo 'shar: mice/fighter.m was damaged during transit (should have been
  1151. fi
  1152. fi              ; : end of overwriting check
  1153. echo 'x - mice/moron.m'
  1154. if test -f mice/moron.m; then echo 'shar: not overwriting mice/moron.m'; else
  1155. sed 's/^X//' << '________This_Is_The_END________' > mice/moron.m
  1156. Xdata
  1157. XH  H EEEE L   L    OO
  1158. XH  H E    L   L   O  O
  1159. XHHHH EEE  L   L   O  O
  1160. XH  H E    L   L   O  O
  1161. XH  H EEEE LLL LLL  OO
  1162. X
  1163. XM   M  OO  RRR   OO  N  N
  1164. XMM MM O  O R  R O  O NN N
  1165. XM M M O  O RRR  O  O N NN
  1166. XM   M O  O R R  O  O N  N
  1167. XM   M  OO  R  R  OO  N  N
  1168. X
  1169. X GGG  OO    FFFF U  U  CC K  K
  1170. XG    O  O   F    U  U C   K K
  1171. XG GG O  O   FFF  U  U C   KK
  1172. XG  G O  O   F    U  U C   K K
  1173. X GG   OO    F     UU   CC K  K
  1174. X
  1175. XY   Y  OO  U  U RRR
  1176. X Y Y  O  O U  U R  R
  1177. X  Y   O  O U  U RRR
  1178. X  Y   O  O U  U R R
  1179. X  Y    OO   UU  R  R
  1180. X
  1181. X SSS EEEE L   FFFF
  1182. XS    E    L   F
  1183. X SS  EEE  L   FFF
  1184. X   S E    L   F
  1185. XSSS  EEEE LLL F
  1186. ________This_Is_The_END________
  1187. if test `wc -l < mice/moron.m` -ne 30; then
  1188.         echo 'shar: mice/moron.m was damaged during transit (should have been 30
  1189. fi
  1190. fi              ; : end of overwriting check
  1191. echo 'x - mice/mouse.m'
  1192. if test -f mice/mouse.m; then echo 'shar: not overwriting mice/mouse.m'; else
  1193. sed 's/^X//' << '________This_Is_The_END________' > mice/mouse.m
  1194. Xdata
  1195. X ##########
  1196. X#          #
  1197. X# ## ## ## #
  1198. X# ## ## ## #
  1199. X# ## ## ## #
  1200. X# ## ## ## #
  1201. X#          #
  1202. X#          #
  1203. X#          #
  1204. X#          #
  1205. X ##########
  1206. ________This_Is_The_END________
  1207. if test `wc -l < mice/mouse.m` -ne 12; then
  1208.         echo 'shar: mice/mouse.m was damaged during transit (should have been 12
  1209. fi
  1210. fi              ; : end of overwriting check
  1211. echo 'x - mice/series.m'
  1212. if test -f mice/series.m; then echo 'shar: not overwriting mice/series.m'; else
  1213. sed 's/^X//' << '________This_Is_The_END________' > mice/series.m
  1214. Xdata
  1215. X#
  1216. X #
  1217. X  ##
  1218. X  ##
  1219. X    ##
  1220. X    ##
  1221. X      ###
  1222. X      ###
  1223. X      ###
  1224. X         ####
  1225. X         ####
  1226. X         ####
  1227. X         ####
  1228. X             ######
  1229. X             ######
  1230. X             ######
  1231. X             ######
  1232. X             ######
  1233. X             ######
  1234. X                   #############
  1235. X                   #############
  1236. X                   #############
  1237. X                   #############
  1238. X                   #############
  1239. X                   #############
  1240. X                   #############
  1241. X                   #############
  1242. X                   #############
  1243. X                   #############
  1244. X                   #############
  1245. X                   #############
  1246. X                   #############
  1247. ________This_Is_The_END________
  1248. if test `wc -l < mice/series.m` -ne 33; then
  1249.         echo 'shar: mice/series.m was damaged during transit (should have been 3
  1250. fi
  1251. fi              ; : end of overwriting check
  1252. echo 'x - mice/small.m'
  1253. if test -f mice/small.m; then echo 'shar: not overwriting mice/small.m'; else
  1254. sed 's/^X//' << '________This_Is_The_END________' > mice/small.m
  1255. Xdata
  1256. X#
  1257. X #
  1258. X  ##
  1259. X  ####
  1260. X   #####
  1261. X   #######
  1262. X   #########
  1263. X    #####
  1264. X    ##  ##
  1265. X    #    ##
  1266. X          ##
  1267. X           ##
  1268. X            ##
  1269. ________This_Is_The_END________
  1270. if test `wc -l < mice/small.m` -ne 14; then
  1271.         echo 'shar: mice/small.m was damaged during transit (should have been 14
  1272. fi
  1273. fi              ; : end of overwriting check
  1274. echo 'x - mice/target.m'
  1275. if test -f mice/target.m; then echo 'shar: not overwriting mice/target.m'; else
  1276. sed 's/^X//' << '________This_Is_The_END________' > mice/target.m
  1277. Xvs 19
  1278. Xvi -9
  1279. Xhi -15
  1280. Xdata
  1281. X               #
  1282. X               #
  1283. X           #########
  1284. X         ##         ##
  1285. X       ##             ##
  1286. X      #                 #
  1287. X     #         #         #
  1288. X    #          #          #
  1289. X    #          #          #
  1290. X#####     ###########     #####
  1291. X    #          #          #
  1292. X    #          #          #
  1293. X     #         #         #
  1294. X      #                 #
  1295. X       ##             ##
  1296. X         ##         ##
  1297. X           #########
  1298. X               #
  1299. X               #
  1300. ________This_Is_The_END________
  1301. if test `wc -l < mice/target.m` -ne 23; then
  1302.         echo 'shar: mice/target.m was damaged during transit (should have been 2
  1303. fi
  1304. fi              ; : end of overwriting check
  1305. echo 'x - mice/target2.m'
  1306. if test -f mice/target2.m; then echo 'shar: not overwriting mice/target2.m'; els
  1307. sed 's/^X//' << '________This_Is_The_END________' > mice/target2.m
  1308. X####                       ####
  1309. X#                             #
  1310. X#                             #
  1311. X#                             #
  1312. X
  1313. X
  1314. X               #
  1315. X               #
  1316. X               #
  1317. X               #
  1318. X         ###### ######
  1319. X               #
  1320. X               #
  1321. X               #
  1322. X               #
  1323. X
  1324. X
  1325. X#                             #
  1326. X#                             #
  1327. X#                             #
  1328. X####                       ####
  1329. X
  1330. X
  1331. X
  1332. X
  1333. X
  1334. X
  1335. X
  1336. X
  1337. X
  1338. X
  1339. X
  1340. ________This_Is_The_END________
  1341. if test `wc -l < mice/target2.m` -ne 32; then
  1342.         echo 'shar: mice/target2.m was damaged during transit (should have been
  1343. fi
  1344. fi              ; : end of overwriting check
  1345. echo 'x - mice/unix.m'
  1346. if test -f mice/unix.m; then echo 'shar: not overwriting mice/unix.m'; else
  1347. sed 's/^X//' << '________This_Is_The_END________' > mice/unix.m
  1348. Xdata
  1349. X#
  1350. X ##
  1351. X  ####
  1352. X   #####
  1353. X    ## ###
  1354. X    ###  ###
  1355. X     ###  ####
  1356. X     ###    ####
  1357. X     ###  #  #####
  1358. X     ###      ######
  1359. X     ###   #   ######
  1360. X    ####        #######
  1361. X   ####     #    #######
  1362. X  ########################
  1363. X ##########################
  1364. X                          ##
  1365. X #   #  #    #  #  #    # ###
  1366. X #   #  ##   #  #   #  #  ####
  1367. X #   #  # #  #  #    ##   ####
  1368. X #   #  #  # #  #    ##   #####
  1369. X #   #  #   ##  #   #  #  #####
  1370. X  ###   #    #  #  #    # ######
  1371. X
  1372. X ####   #   #  #     ####   ###
  1373. X #   #  #   #  #     #     #
  1374. X #   #  #   #  #     ###    ###
  1375. X ####   #   #  #     #         #
  1376. X #  #   #   #  #     #     #   #
  1377. X #   #   ###   ####  ####   ###
  1378. ________This_Is_The_END________
  1379. if test `wc -l < mice/unix.m` -ne 30; then
  1380.         echo 'shar: mice/unix.m was damaged during transit (should have been 30
  1381. fi
  1382. fi              ; : end of overwriting check
  1383. echo 'x - 36x102.font'
  1384. if test -f 36x102.font; then echo 'shar: not overwriting 36x102.font'; else
  1385. sed 's/^X//' << '________This_Is_The_END________' > 36x102.font
  1386. X# magic 0x18e
  1387. X# flags 0x0
  1388. Xhs    7
  1389. Xvs    8
  1390. Xbasel 7
  1391. X
  1392. X############### Character 0x20, 040, 32
  1393. Xchar 32
  1394. Xhs   5
  1395. Xvs   8
  1396. Xha   1
  1397. Xva   -7
  1398. Xhi   7
  1399. Xvi   0
  1400. Xbits
  1401. Xbits
  1402. Xbits
  1403. Xbits
  1404. Xbits
  1405. Xbits
  1406. Xbits
  1407. Xbits
  1408. X
  1409. X############### Character 0x21, 041, 33   ! ! ! ! ! ! ! ! ! !
  1410. Xchar 33
  1411. Xhs   5
  1412. Xvs   8
  1413. Xha   1
  1414. Xva   -7
  1415. Xhi   7
  1416. Xvi   0
  1417. Xbits   *
  1418. Xbits   *
  1419. Xbits   *
  1420. Xbits   *
  1421. Xbits   *
  1422. Xbits
  1423. Xbits   *
  1424. Xbits
  1425. X
  1426. X############### Character 0x22, 042, 34   " " " " " " " " " "
  1427. Xchar 34
  1428. Xhs   5
  1429. Xvs   8
  1430. Xha   1
  1431. Xva   -7
  1432. Xhi   7
  1433. Xvi   0
  1434. Xbits  * *
  1435. Xbits  * *
  1436. Xbits  * *
  1437. Xbits
  1438. Xbits
  1439. Xbits
  1440. Xbits
  1441. Xbits
  1442. X
  1443. X############### Character 0x23, 043, 35   # # # # # # # # # #
  1444. Xchar 35
  1445. Xhs   5
  1446. Xvs   8
  1447. Xha   1
  1448. Xva   -7
  1449. Xhi   7
  1450. Xvi   0
  1451. Xbits  * *
  1452. Xbits  * *
  1453. Xbits *****
  1454. Xbits  * *
  1455. Xbits *****
  1456. Xbits  * *
  1457. Xbits  * *
  1458. Xbits
  1459. X
  1460. X############### Character 0x24, 044, 36   $ $ $ $ $ $ $ $ $ $
  1461. Xchar 36
  1462. Xhs   5
  1463. Xvs   8
  1464. Xha   1
  1465. Xva   -7
  1466. Xhi   7
  1467. Xvi   0
  1468. Xbits   *
  1469. Xbits  ****
  1470. Xbits * *
  1471. Xbits  ***
  1472. Xbits   * *
  1473. Xbits ****
  1474. Xbits   *
  1475. Xbits
  1476. X
  1477. X############### Character 0x25, 045, 37   % % % % % % % % % %
  1478. Xchar 37
  1479. Xhs   5
  1480. Xvs   8
  1481. Xha   1
  1482. Xva   -7
  1483. Xhi   7
  1484. Xvi   0
  1485. Xbits **  *
  1486. Xbits **  *
  1487. Xbits    *
  1488. Xbits   *
  1489. Xbits  *
  1490. Xbits *  **
  1491. Xbits *  **
  1492. Xbits
  1493. X
  1494. X############### Character 0x26, 046, 38   & & & & & & & & & &
  1495. Xchar 38
  1496. Xhs   5
  1497. Xvs   8
  1498. Xha   1
  1499. Xva   -7
  1500. Xhi   7
  1501. Xvi   0
  1502. Xbits  *
  1503. Xbits * *
  1504. Xbits * *
  1505. Xbits  *
  1506. Xbits * * *
  1507. Xbits *  *
  1508. Xbits  ** *
  1509. Xbits
  1510. X
  1511. X############### Character 0x27, 047, 39   ' ' ' ' ' ' ' ' ' '
  1512. Xchar 39
  1513. Xhs   5
  1514. Xvs   8
  1515. Xha   1
  1516. Xva   -7
  1517. Xhi   7
  1518. Xvi   0
  1519. Xbits  **
  1520. Xbits   *
  1521. Xbits  *
  1522. Xbits
  1523. Xbits
  1524. Xbits
  1525. Xbits
  1526. Xbits
  1527. X
  1528. X############### Character 0x28, 050, 40   ( ( ( ( ( ( ( ( ( (
  1529. Xchar 40
  1530. Xhs   5
  1531. Xvs   8
  1532. Xha   1
  1533. Xva   -7
  1534. Xhi   7
  1535. Xvi   0
  1536. Xbits   *
  1537. Xbits  *
  1538. Xbits *
  1539. Xbits *
  1540. Xbits *
  1541. Xbits  *
  1542. Xbits   *
  1543. Xbits
  1544. X
  1545. X############### Character 0x29, 051, 41   ) ) ) ) ) ) ) ) ) )
  1546. Xchar 41
  1547. Xhs   5
  1548. Xvs   8
  1549. Xha   1
  1550. Xva   -7
  1551. Xhi   7
  1552. Xvi   0
  1553. Xbits   *
  1554. Xbits    *
  1555. Xbits     *
  1556. Xbits     *
  1557. Xbits     *
  1558. Xbits    *
  1559. Xbits   *
  1560. Xbits
  1561. X
  1562. X############### Character 0x2a, 052, 42   * * * * * * * * * *
  1563. Xchar 42
  1564. Xhs   5
  1565. Xvs   8
  1566. Xha   1
  1567. Xva   -7
  1568. Xhi   7
  1569. Xvi   0
  1570. Xbits
  1571. Xbits   *
  1572. Xbits * * *
  1573. Xbits  ***
  1574. Xbits  ***
  1575. Xbits * * *
  1576. Xbits   *
  1577. Xbits
  1578. X
  1579. X############### Character 0x2b, 053, 43   + + + + + + + + + +
  1580. Xchar 43
  1581. Xhs   5
  1582. Xvs   8
  1583. Xha   1
  1584. Xva   -7
  1585. Xhi   7
  1586. Xvi   0
  1587. Xbits
  1588. Xbits   *
  1589. Xbits   *
  1590. Xbits *****
  1591. Xbits   *
  1592. Xbits   *
  1593. Xbits
  1594. Xbits
  1595. X
  1596. X############### Character 0x2c, 054, 44   , , , , , , , , , ,
  1597. Xchar 44
  1598. Xhs   5
  1599. Xvs   8
  1600. Xha   1
  1601. Xva   -7
  1602. Xhi   7
  1603. Xvi   0
  1604. Xbits
  1605. Xbits
  1606. Xbits
  1607. Xbits
  1608. Xbits
  1609. Xbits  **
  1610. Xbits   *
  1611. Xbits  *
  1612. X
  1613. X############### Character 0x2d, 055, 45   - - - - - - - - - -
  1614. Xchar 45
  1615. Xhs   5
  1616. Xvs   8
  1617. Xha   1
  1618. Xva   -7
  1619. Xhi   7
  1620. Xvi   0
  1621. Xbits
  1622. Xbits
  1623. Xbits
  1624. Xbits *****
  1625. Xbits
  1626. Xbits
  1627. Xbits
  1628. Xbits
  1629. X
  1630. X############### Character 0x2e, 056, 46   . . . . . . . . . .
  1631. Xchar 46
  1632. Xhs   5
  1633. Xvs   8
  1634. Xha   1
  1635. Xva   -7
  1636. Xhi   7
  1637. Xvi   0
  1638. Xbits
  1639. Xbits
  1640. Xbits
  1641. Xbits
  1642. Xbits
  1643. Xbits   *
  1644. Xbits   *
  1645. Xbits
  1646. X
  1647. X############### Character 0x2f, 057, 47   / / / / / / / / / /
  1648. Xchar 47
  1649. Xhs   5
  1650. Xvs   8
  1651. Xha   1
  1652. Xva   -7
  1653. Xhi   7
  1654. Xvi   0
  1655. Xbits     *
  1656. Xbits     *
  1657. Xbits    *
  1658. Xbits   *
  1659. Xbits  *
  1660. Xbits *
  1661. Xbits *
  1662. Xbits
  1663. X
  1664. X############### Character 0x30, 060, 48   0 0 0 0 0 0 0 0 0 0
  1665. Xchar 48
  1666. Xhs   5
  1667. Xvs   8
  1668. Xha   1
  1669. Xva   -7
  1670. Xhi   7
  1671. Xvi   0
  1672. Xbits  ***
  1673. Xbits *   *
  1674. Xbits *  **
  1675. Xbits * * *
  1676. Xbits **  *
  1677. Xbits *   *
  1678. Xbits  ***
  1679. Xbits
  1680. X
  1681. X############### Character 0x31, 061, 49   1 1 1 1 1 1 1 1 1 1
  1682. Xchar 49
  1683. Xhs   5
  1684. Xvs   8
  1685. Xha   1
  1686. Xva   -7
  1687. Xhi   7
  1688. Xvi   0
  1689. Xbits   *
  1690. Xbits  **
  1691. Xbits * *
  1692. Xbits   *
  1693. Xbits   *
  1694. Xbits   *
  1695. Xbits *****
  1696. Xbits
  1697. X
  1698. X############### Character 0x32, 062, 50   2 2 2 2 2 2 2 2 2 2
  1699. Xchar 50
  1700. Xhs   5
  1701. Xvs   8
  1702. Xha   1
  1703. Xva   -7
  1704. Xhi   7
  1705. Xvi   0
  1706. Xbits  ***
  1707. Xbits *   *
  1708. Xbits     *
  1709. Xbits  ***
  1710. Xbits *
  1711. Xbits *
  1712. Xbits *****
  1713. Xbits
  1714. X
  1715. X############### Character 0x33, 063, 51   3 3 3 3 3 3 3 3 3 3
  1716. Xchar 51
  1717. Xhs   5
  1718. Xvs   8
  1719. Xha   1
  1720. Xva   -7
  1721. Xhi   7
  1722. Xvi   0
  1723. Xbits *****
  1724. Xbits     *
  1725. Xbits    *
  1726. Xbits   **
  1727. Xbits     *
  1728. Xbits *   *
  1729. Xbits  ***
  1730. Xbits
  1731. X
  1732. X############### Character 0x34, 064, 52   4 4 4 4 4 4 4 4 4 4
  1733. Xchar 52
  1734. Xhs   5
  1735. Xvs   8
  1736. Xha   1
  1737. Xva   -7
  1738. Xhi   7
  1739. Xvi   0
  1740. Xbits    *
  1741. Xbits   **
  1742. Xbits  * *
  1743. Xbits *  *
  1744. Xbits *****
  1745. Xbits    *
  1746. Xbits    *
  1747. Xbits
  1748. X
  1749. X############### Character 0x35, 065, 53   5 5 5 5 5 5 5 5 5 5
  1750. Xchar 53
  1751. Xhs   5
  1752. Xvs   8
  1753. Xha   1
  1754. Xva   -7
  1755. Xhi   7
  1756. Xvi   0
  1757. Xbits *****
  1758. Xbits *
  1759. Xbits *
  1760. Xbits ****
  1761. Xbits     *
  1762. Xbits *   *
  1763. Xbits  ***
  1764. Xbits
  1765. X
  1766. X############### Character 0x36, 066, 54   6 6 6 6 6 6 6 6 6 6
  1767. Xchar 54
  1768. Xhs   5
  1769. Xvs   8
  1770. Xha   1
  1771. Xva   -7
  1772. Xhi   7
  1773. Xvi   0
  1774. Xbits  ***
  1775. Xbits *   *
  1776. Xbits *
  1777. Xbits ****
  1778. Xbits *   *
  1779. Xbits *   *
  1780. Xbits  ***
  1781. Xbits
  1782. X
  1783. X############### Character 0x37, 067, 55   7 7 7 7 7 7 7 7 7 7
  1784. Xchar 55
  1785. Xhs   5
  1786. Xvs   8
  1787. Xha   1
  1788. Xva   -7
  1789. Xhi   7
  1790. Xvi   0
  1791. Xbits *****
  1792. Xbits     *
  1793. Xbits    *
  1794. Xbits   *
  1795. Xbits   *
  1796. Xbits   *
  1797. Xbits   *
  1798. Xbits
  1799. X
  1800. X############### Character 0x38, 070, 56   8 8 8 8 8 8 8 8 8 8
  1801. Xchar 56
  1802. Xhs   5
  1803. Xvs   8
  1804. Xha   1
  1805. Xva   -7
  1806. Xhi   7
  1807. Xvi   0
  1808. Xbits  ***
  1809. Xbits *   *
  1810. Xbits *   *
  1811. Xbits  ***
  1812. Xbits *   *
  1813. Xbits *   *
  1814. Xbits  ***
  1815. Xbits
  1816. X
  1817. X############### Character 0x39, 071, 57   9 9 9 9 9 9 9 9 9 9
  1818. Xchar 57
  1819. Xhs   5
  1820. Xvs   8
  1821. Xha   1
  1822. Xva   -7
  1823. Xhi   7
  1824. Xvi   0
  1825. Xbits  ***
  1826. Xbits *   *
  1827. Xbits *   *
  1828. Xbits  ****
  1829. Xbits     *
  1830. Xbits *   *
  1831. Xbits  ***
  1832. Xbits
  1833. X
  1834. X############### Character 0x3a, 072, 58   : : : : : : : : : :
  1835. Xchar 58
  1836. Xhs   5
  1837. Xvs   8
  1838. Xha   1
  1839. Xva   -7
  1840. Xhi   7
  1841. Xvi   0
  1842. Xbits
  1843. Xbits   *
  1844. Xbits   *
  1845. Xbits
  1846. Xbits
  1847. Xbits   *
  1848. Xbits   *
  1849. Xbits
  1850. X
  1851. X############### Character 0x3b, 073, 59   ; ; ; ; ; ; ; ; ; ;
  1852. Xchar 59
  1853. Xhs   5
  1854. Xvs   8
  1855. Xha   1
  1856. Xva   -7
  1857. Xhi   7
  1858. Xvi   0
  1859. Xbits
  1860. Xbits   *
  1861. Xbits   *
  1862. Xbits
  1863. Xbits
  1864. Xbits   *
  1865. Xbits   *
  1866. Xbits  *
  1867. X
  1868. X############### Character 0x3c, 074, 60   < < < < < < < < < <
  1869. Xchar 60
  1870. Xhs   5
  1871. Xvs   8
  1872. Xha   1
  1873. Xva   -7
  1874. Xhi   7
  1875. Xvi   0
  1876. Xbits    *
  1877. Xbits   *
  1878. Xbits  *
  1879. Xbits *
  1880. Xbits  *
  1881. Xbits   *
  1882. Xbits    *
  1883. Xbits
  1884. X
  1885. X############### Character 0x3d, 075, 61   = = = = = = = = = =
  1886. Xchar 61
  1887. Xhs   5
  1888. Xvs   8
  1889. Xha   1
  1890. Xva   -7
  1891. Xhi   7
  1892. Xvi   0
  1893. Xbits
  1894. Xbits
  1895. Xbits *****
  1896. Xbits
  1897. Xbits *****
  1898. Xbits
  1899. Xbits
  1900. Xbits
  1901. X
  1902. X############### Character 0x3e, 076, 62   > > > > > > > > > >
  1903. Xchar 62
  1904. Xhs   5
  1905. Xvs   8
  1906. Xha   1
  1907. Xva   -7
  1908. Xhi   7
  1909. Xvi   0
  1910. Xbits  *
  1911. Xbits   *
  1912. Xbits    *
  1913. Xbits     *
  1914. Xbits    *
  1915. Xbits   *
  1916. Xbits  *
  1917. Xbits
  1918. X
  1919. X############### Character 0x3f, 077, 63   ? ? ? ? ? ? ? ? ? ?
  1920. Xchar 63
  1921. Xhs   5
  1922. Xvs   8
  1923. Xha   1
  1924. Xva   -7
  1925. Xhi   7
  1926. Xvi   0
  1927. Xbits  ***
  1928. Xbits *   *
  1929. Xbits     *
  1930. Xbits   **
  1931. Xbits   *
  1932. Xbits
  1933. Xbits   *
  1934. Xbits
  1935. X
  1936. X############### Character 0x40, 0100, 64   @ @ @ @ @ @ @ @ @ @
  1937. Xchar 64
  1938. Xhs   5
  1939. Xvs   8
  1940. Xha   1
  1941. Xva   -7
  1942. Xhi   7
  1943. Xvi   0
  1944. Xbits  ***
  1945. Xbits *   *
  1946. Xbits * * *
  1947. Xbits * ***
  1948. Xbits * **
  1949. Xbits *
  1950. Xbits  ****
  1951. Xbits
  1952. X
  1953. X############### Character 0x41, 0101, 65   A A A A A A A A A A
  1954. Xchar 65
  1955. Xhs   5
  1956. Xvs   8
  1957. Xha   1
  1958. Xva   -7
  1959. Xhi   7
  1960. Xvi   0
  1961. Xbits   *
  1962. Xbits  * *
  1963. Xbits *   *
  1964. Xbits *   *
  1965. Xbits *****
  1966. Xbits *   *
  1967. Xbits *   *
  1968. Xbits
  1969. X
  1970. X############### Character 0x42, 0102, 66   B B B B B B B B B B
  1971. Xchar 66
  1972. Xhs   5
  1973. Xvs   8
  1974. Xha   1
  1975. Xva   -7
  1976. Xhi   7
  1977. Xvi   0
  1978. Xbits ****
  1979. Xbits *   *
  1980. Xbits *   *
  1981. Xbits ****
  1982. Xbits *   *
  1983. Xbits *   *
  1984. Xbits ****
  1985. Xbits
  1986. X
  1987. X############### Character 0x43, 0103, 67   C C C C C C C C C C
  1988. Xchar 67
  1989. Xhs   5
  1990. Xvs   8
  1991. Xha   1
  1992. Xva   -7
  1993. Xhi   7
  1994. Xvi   0
  1995. Xbits  ***
  1996. Xbits *   *
  1997. Xbits *
  1998. Xbits *
  1999. Xbits *
  2000. Xbits *   *
  2001. Xbits  ***
  2002. Xbits
  2003. X
  2004. X############### Character 0x44, 0104, 68   D D D D D D D D D D
  2005. Xchar 68
  2006. Xhs   5
  2007. Xvs   8
  2008. Xha   1
  2009. Xva   -7
  2010. Xhi   7
  2011. Xvi   0
  2012. Xbits ****
  2013. Xbits *   *
  2014. Xbits *   *
  2015. Xbits *   *
  2016. Xbits *   *
  2017. Xbits *   *
  2018. Xbits ****
  2019. Xbits
  2020. X
  2021. X############### Character 0x45, 0105, 69   E E E E E E E E E E
  2022. Xchar 69
  2023. Xhs   5
  2024. Xvs   8
  2025. Xha   1
  2026. Xva   -7
  2027. Xhi   7
  2028. Xvi   0
  2029. Xbits *****
  2030. Xbits *
  2031. Xbits *
  2032. Xbits ****
  2033. Xbits *
  2034. Xbits *
  2035. Xbits *****
  2036. Xbits
  2037. X
  2038. X############### Character 0x46, 0106, 70   F F F F F F F F F F
  2039. Xchar 70
  2040. Xhs   5
  2041. Xvs   8
  2042. Xha   1
  2043. Xva   -7
  2044. Xhi   7
  2045. Xvi   0
  2046. Xbits *****
  2047. Xbits *
  2048. Xbits *
  2049. Xbits ****
  2050. Xbits *
  2051. Xbits *
  2052. Xbits *
  2053. Xbits
  2054. X
  2055. X############### Character 0x47, 0107, 71   G G G G G G G G G G
  2056. Xchar 71
  2057. Xhs   5
  2058. Xvs   8
  2059. Xha   1
  2060. Xva   -7
  2061. Xhi   7
  2062. Xvi   0
  2063. Xbits  ***
  2064. Xbits *   *
  2065. Xbits *
  2066. Xbits *
  2067. Xbits *  **
  2068. Xbits *   *
  2069. Xbits  ****
  2070. Xbits
  2071. X
  2072. X############### Character 0x48, 0110, 72   H H H H H H H H H H
  2073. Xchar 72
  2074. Xhs   5
  2075. Xvs   8
  2076. Xha   1
  2077. Xva   -7
  2078. Xhi   7
  2079. Xvi   0
  2080. Xbits *   *
  2081. Xbits *   *
  2082. Xbits *   *
  2083. Xbits *****
  2084. Xbits *   *
  2085. Xbits *   *
  2086. Xbits *   *
  2087. Xbits
  2088. X
  2089. X############### Character 0x49, 0111, 73   I I I I I I I I I I
  2090. Xchar 73
  2091. Xhs   5
  2092. Xvs   8
  2093. Xha   1
  2094. Xva   -7
  2095. Xhi   7
  2096. Xvi   0
  2097. Xbits  ***
  2098. Xbits   *
  2099. Xbits   *
  2100. Xbits   *
  2101. Xbits   *
  2102. Xbits   *
  2103. Xbits  ***
  2104. Xbits
  2105. X
  2106. X############### Character 0x4a, 0112, 74   J J J J J J J J J J
  2107. Xchar 74
  2108. Xhs   5
  2109. Xvs   8
  2110. Xha   1
  2111. Xva   -7
  2112. Xhi   7
  2113. Xvi   0
  2114. Xbits    **
  2115. Xbits     *
  2116. Xbits     *
  2117. Xbits     *
  2118. Xbits     *
  2119. Xbits *   *
  2120. Xbits  ***
  2121. Xbits
  2122. X
  2123. X############### Character 0x4b, 0113, 75   K K K K K K K K K K
  2124. Xchar 75
  2125. Xhs   5
  2126. Xvs   8
  2127. Xha   1
  2128. Xva   -7
  2129. Xhi   7
  2130. Xvi   0
  2131. Xbits *   *
  2132. Xbits *  *
  2133. Xbits * *
  2134. Xbits **
  2135. Xbits * *
  2136. Xbits *  *
  2137. Xbits *   *
  2138. Xbits
  2139. X
  2140. X############### Character 0x4c, 0114, 76   L L L L L L L L L L
  2141. Xchar 76
  2142. Xhs   5
  2143. Xvs   8
  2144. Xha   1
  2145. Xva   -7
  2146. Xhi   7
  2147. Xvi   0
  2148. Xbits *
  2149. Xbits *
  2150. Xbits *
  2151. Xbits *
  2152. Xbits *
  2153. Xbits *
  2154. Xbits *****
  2155. Xbits
  2156. X
  2157. X############### Character 0x4d, 0115, 77   M M M M M M M M M M
  2158. Xchar 77
  2159. Xhs   5
  2160. Xvs   8
  2161. Xha   1
  2162. Xva   -7
  2163. Xhi   7
  2164. Xvi   0
  2165. Xbits *   *
  2166. Xbits ** **
  2167. Xbits * * *
  2168. Xbits * * *
  2169. Xbits * * *
  2170. Xbits *   *
  2171. Xbits *   *
  2172. Xbits
  2173. X
  2174. X############### Character 0x4e, 0116, 78   N N N N N N N N N N
  2175. Xchar 78
  2176. Xhs   5
  2177. Xvs   8
  2178. Xha   1
  2179. Xva   -7
  2180. Xhi   7
  2181. Xvi   0
  2182. Xbits *   *
  2183. Xbits *   *
  2184. Xbits **  *
  2185. Xbits * * *
  2186. Xbits *  **
  2187. Xbits *   *
  2188. Xbits *   *
  2189. Xbits
  2190. X
  2191. X############### Character 0x4f, 0117, 79   O O O O O O O O O O
  2192. Xchar 79
  2193. Xhs   5
  2194. Xvs   8
  2195. Xha   1
  2196. Xva   -7
  2197. Xhi   7
  2198. Xvi   0
  2199. Xbits  ***
  2200. Xbits *   *
  2201. Xbits *   *
  2202. Xbits *   *
  2203. Xbits *   *
  2204. Xbits *   *
  2205. Xbits  ***
  2206. Xbits
  2207. X
  2208. X############### Character 0x50, 0120, 80   P P P P P P P P P P
  2209. Xchar 80
  2210. Xhs   5
  2211. Xvs   8
  2212. Xha   1
  2213. Xva   -7
  2214. Xhi   7
  2215. Xvi   0
  2216. Xbits ****
  2217. Xbits *   *
  2218. Xbits *   *
  2219. Xbits ****
  2220. Xbits *
  2221. Xbits *
  2222. Xbits *
  2223. Xbits
  2224. X
  2225. X############### Character 0x51, 0121, 81   Q Q Q Q Q Q Q Q Q Q
  2226. Xchar 81
  2227. Xhs   5
  2228. Xvs   8
  2229. Xha   1
  2230. Xva   -7
  2231. Xhi   7
  2232. Xvi   0
  2233. Xbits  ***
  2234. Xbits *   *
  2235. Xbits *   *
  2236. Xbits *   *
  2237. Xbits * * *
  2238. Xbits *  *
  2239. Xbits  ** *
  2240. Xbits
  2241. X
  2242. X############### Character 0x52, 0122, 82   R R R R R R R R R R
  2243. Xchar 82
  2244. Xhs   5
  2245. Xvs   8
  2246. Xha   1
  2247. Xva   -7
  2248. Xhi   7
  2249. Xvi   0
  2250. Xbits ****
  2251. Xbits *   *
  2252. Xbits *   *
  2253. Xbits ****
  2254. Xbits * *
  2255. Xbits *  *
  2256. Xbits *   *
  2257. Xbits
  2258. X
  2259. X############### Character 0x53, 0123, 83   S S S S S S S S S S
  2260. Xchar 83
  2261. Xhs   5
  2262. Xvs   8
  2263. Xha   1
  2264. Xva   -7
  2265. Xhi   7
  2266. Xvi   0
  2267. Xbits  ***
  2268. Xbits *   *
  2269. Xbits *
  2270. Xbits  ***
  2271. Xbits     *
  2272. Xbits *   *
  2273. Xbits  ***
  2274. Xbits
  2275. X
  2276. X############### Character 0x54, 0124, 84   T T T T T T T T T T
  2277. Xchar 84
  2278. Xhs   5
  2279. Xvs   8
  2280. Xha   1
  2281. Xva   -7
  2282. Xhi   7
  2283. Xvi   0
  2284. Xbits *****
  2285. Xbits * * *
  2286. Xbits   *
  2287. Xbits   *
  2288. Xbits   *
  2289. Xbits   *
  2290. Xbits   *
  2291. Xbits
  2292. X
  2293. X############### Character 0x55, 0125, 85   U U U U U U U U U U
  2294. Xchar 85
  2295. Xhs   5
  2296. Xvs   8
  2297. Xha   1
  2298. Xva   -7
  2299. Xhi   7
  2300. Xvi   0
  2301. Xbits *   *
  2302. Xbits *   *
  2303. Xbits *   *
  2304. Xbits *   *
  2305. Xbits *   *
  2306. Xbits *   *
  2307. Xbits  ***
  2308. Xbits
  2309. X
  2310. X############### Character 0x56, 0126, 86   V V V V V V V V V V
  2311. Xchar 86
  2312. Xhs   5
  2313. Xvs   8
  2314. Xha   1
  2315. Xva   -7
  2316. Xhi   7
  2317. Xvi   0
  2318. Xbits *   *
  2319. Xbits *   *
  2320. Xbits *   *
  2321. Xbits  * *
  2322. Xbits  * *
  2323. Xbits   *
  2324. Xbits   *
  2325. Xbits
  2326. X
  2327. X############### Character 0x57, 0127, 87   W W W W W W W W W W
  2328. Xchar 87
  2329. Xhs   5
  2330. Xvs   8
  2331. Xha   1
  2332. Xva   -7
  2333. Xhi   7
  2334. Xvi   0
  2335. Xbits *   *
  2336. Xbits *   *
  2337. Xbits *   *
  2338. Xbits * * *
  2339. Xbits * * *
  2340. Xbits * * *
  2341. Xbits  * *
  2342. Xbits
  2343. X
  2344. X############### Character 0x58, 0130, 88   X X X X X X X X X X
  2345. Xchar 88
  2346. Xhs   5
  2347. Xvs   8
  2348. Xha   1
  2349. Xva   -7
  2350. Xhi   7
  2351. Xvi   0
  2352. Xbits *   *
  2353. Xbits *   *
  2354. Xbits  * *
  2355. Xbits   *
  2356. Xbits  * *
  2357. Xbits *   *
  2358. Xbits *   *
  2359. Xbits
  2360. X
  2361. X############### Character 0x59, 0131, 89   Y Y Y Y Y Y Y Y Y Y
  2362. Xchar 89
  2363. Xhs   5
  2364. Xvs   8
  2365. Xha   1
  2366. Xva   -7
  2367. Xhi   7
  2368. Xvi   0
  2369. Xbits *   *
  2370. Xbits *   *
  2371. Xbits *   *
  2372. Xbits  * *
  2373. Xbits   *
  2374. Xbits   *
  2375. Xbits   *
  2376. Xbits
  2377. X
  2378. X############### Character 0x5a, 0132, 90   Z Z Z Z Z Z Z Z Z Z
  2379. Xchar 90
  2380. Xhs   5
  2381. Xvs   8
  2382. Xha   1
  2383. Xva   -7
  2384. Xhi   7
  2385. Xvi   0
  2386. Xbits *****
  2387. Xbits     *
  2388. Xbits    *
  2389. Xbits   *
  2390. Xbits  *
  2391. Xbits *
  2392. Xbits *****
  2393. Xbits
  2394. X
  2395. X############### Character 0x5b, 0133, 91   [ [ [ [ [ [ [ [ [ [
  2396. Xchar 91
  2397. Xhs   5
  2398. Xvs   8
  2399. Xha   1
  2400. Xva   -7
  2401. Xhi   7
  2402. Xvi   0
  2403. Xbits ****
  2404. Xbits *
  2405. Xbits *
  2406. Xbits *
  2407. Xbits *
  2408. Xbits *
  2409. Xbits ****
  2410. Xbits
  2411. X
  2412. X############### Character 0x5c, 0134, 92   \ \ \ \ \ \ \ \ \ \
  2413. Xchar 92
  2414. Xhs   5
  2415. Xvs   8
  2416. Xha   1
  2417. Xva   -7
  2418. Xhi   7
  2419. Xvi   0
  2420. Xbits *
  2421. Xbits *
  2422. Xbits  *
  2423. Xbits   *
  2424. Xbits    *
  2425. Xbits     *
  2426. Xbits     *
  2427. Xbits
  2428. X
  2429. X############### Character 0x5d, 0135, 93   ] ] ] ] ] ] ] ] ] ]
  2430. Xchar 93
  2431. Xhs   5
  2432. Xvs   8
  2433. Xha   1
  2434. Xva   -7
  2435. Xhi   7
  2436. Xvi   0
  2437. Xbits  ****
  2438. Xbits     *
  2439. Xbits     *
  2440. Xbits     *
  2441. Xbits     *
  2442. Xbits     *
  2443. Xbits  ****
  2444. Xbits
  2445. X
  2446. X############### Character 0x5e, 0136, 94   ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
  2447. Xchar 94
  2448. Xhs   5
  2449. Xvs   8
  2450. Xha   1
  2451. Xva   -7
  2452. Xhi   7
  2453. Xvi   0
  2454. Xbits   *
  2455. Xbits  * *
  2456. Xbits *   *
  2457. Xbits
  2458. Xbits
  2459. Xbits
  2460. Xbits
  2461. Xbits
  2462. X
  2463. X############### Character 0x5f, 0137, 95   _ _ _ _ _ _ _ _ _ _
  2464. Xchar 95
  2465. Xhs   5
  2466. Xvs   8
  2467. Xha   1
  2468. Xva   -7
  2469. Xhi   7
  2470. Xvi   0
  2471. Xbits
  2472. Xbits
  2473. Xbits
  2474. Xbits
  2475. Xbits
  2476. Xbits
  2477. Xbits *****
  2478. Xbits
  2479. X
  2480. X############### Character 0x60, 0140, 96   ` ` ` ` ` ` ` ` ` `
  2481. Xchar 96
  2482. Xhs   5
  2483. Xvs   8
  2484. Xha   1
  2485. Xva   -7
  2486. Xhi   7
  2487. Xvi   0
  2488. Xbits   *
  2489. Xbits   *
  2490. Xbits    *
  2491. Xbits
  2492. Xbits
  2493. Xbits
  2494. Xbits
  2495. Xbits
  2496. X
  2497. X############### Character 0x61, 0141, 97   a a a a a a a a a a
  2498. Xchar 97
  2499. Xhs   5
  2500. Xvs   8
  2501. Xha   1
  2502. Xva   -7
  2503. Xhi   7
  2504. Xvi   0
  2505. Xbits
  2506. Xbits
  2507. Xbits  ** *
  2508. Xbits *  **
  2509. Xbits *   *
  2510. Xbits *  **
  2511. Xbits  ** *
  2512. Xbits
  2513. X
  2514. X############### Character 0x62, 0142, 98   b b b b b b b b b b
  2515. Xchar 98
  2516. Xhs   5
  2517. Xvs   8
  2518. Xha   1
  2519. Xva   -7
  2520. Xhi   7
  2521. Xvi   0
  2522. Xbits *
  2523. Xbits *
  2524. Xbits * **
  2525. Xbits **  *
  2526. Xbits *   *
  2527. Xbits **  *
  2528. Xbits * **
  2529. Xbits
  2530. X
  2531. X############### Character 0x63, 0143, 99   c c c c c c c c c c
  2532. Xchar 99
  2533. Xhs   5
  2534. Xvs   8
  2535. Xha   1
  2536. Xva   -7
  2537. Xhi   7
  2538. Xvi   0
  2539. Xbits
  2540. Xbits
  2541. Xbits  ***
  2542. Xbits *
  2543. Xbits *
  2544. Xbits *
  2545. Xbits  ***
  2546. Xbits
  2547. X
  2548. X############### Character 0x64, 0144, 100   d d d d d d d d d d
  2549. Xchar 100
  2550. Xhs   5
  2551. Xvs   8
  2552. Xha   1
  2553. Xva   -7
  2554. Xhi   7
  2555. Xvi   0
  2556. Xbits     *
  2557. Xbits     *
  2558. Xbits  ** *
  2559. Xbits *  **
  2560. Xbits *   *
  2561. Xbits *  **
  2562. Xbits  ** *
  2563. Xbits
  2564. X
  2565. X############### Character 0x65, 0145, 101   e e e e e e e e e e
  2566. Xchar 101
  2567. Xhs   5
  2568. Xvs   8
  2569. Xha   1
  2570. Xva   -7
  2571. Xhi   7
  2572. Xvi   0
  2573. Xbits
  2574. Xbits
  2575. Xbits  ***
  2576. Xbits *   *
  2577. Xbits *****
  2578. Xbits *
  2579. Xbits  ****
  2580. Xbits
  2581. X
  2582. X############### Character 0x66, 0146, 102   f f f f f f f f f f
  2583. Xchar 102
  2584. Xhs   5
  2585. Xvs   8
  2586. Xha   1
  2587. Xva   -7
  2588. Xhi   7
  2589. Xvi   0
  2590. Xbits    *
  2591. Xbits   * *
  2592. Xbits   *
  2593. Xbits  ***
  2594. Xbits   *
  2595. Xbits   *
  2596. Xbits   *
  2597. Xbits
  2598. X
  2599. X############### Character 0x67, 0147, 103   g g g g g g g g g g
  2600. Xchar 103
  2601. Xhs   5
  2602. Xvs   8
  2603. Xha   1
  2604. Xva   -7
  2605. Xhi   7
  2606. Xvi   0
  2607. Xbits
  2608. Xbits
  2609. Xbits  ** *
  2610. Xbits *  **
  2611. Xbits *   *
  2612. Xbits  ** *
  2613. Xbits     *
  2614. Xbits  ***
  2615. X
  2616. X############### Character 0x68, 0150, 104   h h h h h h h h h h
  2617. Xchar 104
  2618. Xhs   5
  2619. Xvs   8
  2620. Xha   1
  2621. Xva   -7
  2622. Xhi   7
  2623. Xvi   0
  2624. Xbits *
  2625. Xbits *
  2626. Xbits * **
  2627. Xbits **  *
  2628. Xbits *   *
  2629. Xbits *   *
  2630. Xbits *   *
  2631. Xbits
  2632. X
  2633. X############### Character 0x69, 0151, 105   i i i i i i i i i i
  2634. Xchar 105
  2635. Xhs   5
  2636. Xvs   8
  2637. Xha   1
  2638. Xva   -7
  2639. Xhi   7
  2640. Xvi   0
  2641. Xbits   *
  2642. Xbits
  2643. Xbits  **
  2644. Xbits   *
  2645. Xbits   *
  2646. Xbits   *
  2647. Xbits  ***
  2648. Xbits
  2649. X
  2650. X############### Character 0x6a, 0152, 106   j j j j j j j j j j
  2651. Xchar 106
  2652. Xhs   5
  2653. Xvs   8
  2654. Xha   1
  2655. Xva   -7
  2656. Xhi   7
  2657. Xvi   0
  2658. Xbits    *
  2659. Xbits
  2660. Xbits   **
  2661. Xbits    *
  2662. Xbits    *
  2663. Xbits    *
  2664. Xbits *  *
  2665. Xbits  **
  2666. X
  2667. X############### Character 0x6b, 0153, 107   k k k k k k k k k k
  2668. Xchar 107
  2669. Xhs   5
  2670. Xvs   8
  2671. Xha   1
  2672. Xva   -7
  2673. Xhi   7
  2674. Xvi   0
  2675. Xbits *
  2676. Xbits *
  2677. Xbits *   *
  2678. Xbits *  *
  2679. Xbits ***
  2680. Xbits *  *
  2681. Xbits *   *
  2682. Xbits
  2683. X
  2684. X############### Character 0x6c, 0154, 108   l l l l l l l l l l
  2685. Xchar 108
  2686. Xhs   5
  2687. Xvs   8
  2688. Xha   1
  2689. Xva   -7
  2690. Xhi   7
  2691. Xvi   0
  2692. Xbits  **
  2693. Xbits   *
  2694. Xbits   *
  2695. Xbits   *
  2696. Xbits   *
  2697. Xbits   *
  2698. Xbits  ***
  2699. Xbits
  2700. X
  2701. X############### Character 0x6d, 0155, 109   m m m m m m m m m m
  2702. Xchar 109
  2703. Xhs   5
  2704. Xvs   8
  2705. Xha   1
  2706. Xva   -7
  2707. Xhi   7
  2708. Xvi   0
  2709. Xbits
  2710. Xbits
  2711. Xbits ** *
  2712. Xbits * * *
  2713. Xbits * * *
  2714. Xbits * * *
  2715. Xbits *   *
  2716. Xbits
  2717. X
  2718. X############### Character 0x6e, 0156, 110   n n n n n n n n n n
  2719. Xchar 110
  2720. Xhs   5
  2721. Xvs   8
  2722. Xha   1
  2723. Xva   -7
  2724. Xhi   7
  2725. Xvi   0
  2726. Xbits
  2727. Xbits
  2728. Xbits * **
  2729. Xbits **  *
  2730. Xbits *   *
  2731. Xbits *   *
  2732. Xbits *   *
  2733. Xbits
  2734. X
  2735. X############### Character 0x6f, 0157, 111   o o o o o o o o o o
  2736. Xchar 111
  2737. Xhs   5
  2738. Xvs   8
  2739. Xha   1
  2740. Xva   -7
  2741. Xhi   7
  2742. Xvi   0
  2743. Xbits
  2744. Xbits
  2745. Xbits  ***
  2746. Xbits *   *
  2747. Xbits *   *
  2748. Xbits *   *
  2749. Xbits  ***
  2750. Xbits
  2751. X
  2752. X############### Character 0x70, 0160, 112   p p p p p p p p p p
  2753. Xchar 112
  2754. Xhs   5
  2755. Xvs   8
  2756. Xha   1
  2757. Xva   -7
  2758. Xhi   7
  2759. Xvi   0
  2760. Xbits
  2761. Xbits
  2762. Xbits * **
  2763. Xbits **  *
  2764. Xbits **  *
  2765. Xbits * **
  2766. Xbits *
  2767. Xbits *
  2768. X
  2769. X############### Character 0x71, 0161, 113   q q q q q q q q q q
  2770. Xchar 113
  2771. Xhs   5
  2772. Xvs   8
  2773. Xha   1
  2774. Xva   -7
  2775. Xhi   7
  2776. Xvi   0
  2777. Xbits
  2778. Xbits
  2779. Xbits  ** *
  2780. Xbits *  **
  2781. Xbits *   *
  2782. Xbits  ** *
  2783. Xbits     *
  2784. Xbits     *
  2785. X
  2786. X############### Character 0x72, 0162, 114   r r r r r r r r r r
  2787. Xchar 114
  2788. Xhs   5
  2789. Xvs   8
  2790. Xha   1
  2791. Xva   -7
  2792. Xhi   7
  2793. Xvi   0
  2794. Xbits
  2795. Xbits
  2796. Xbits * **
  2797. Xbits **  *
  2798. Xbits *
  2799. Xbits *
  2800. Xbits *
  2801. Xbits
  2802. X
  2803. X############### Character 0x73, 0163, 115   s s s s s s s s s s
  2804. Xchar 115
  2805. Xhs   5
  2806. Xvs   8
  2807. Xha   1
  2808. Xva   -7
  2809. Xhi   7
  2810. Xvi   0
  2811. Xbits
  2812. Xbits
  2813. Xbits  ****
  2814. Xbits *
  2815. Xbits  ***
  2816. Xbits     *
  2817. Xbits ****
  2818. Xbits
  2819. X
  2820. X############### Character 0x74, 0164, 116   t t t t t t t t t t
  2821. Xchar 116
  2822. Xhs   5
  2823. Xvs   8
  2824. Xha   1
  2825. Xva   -7
  2826. Xhi   7
  2827. Xvi   0
  2828. Xbits   *
  2829. Xbits   *
  2830. Xbits  ***
  2831. Xbits   *
  2832. Xbits   *
  2833. Xbits   * *
  2834. Xbits    *
  2835. Xbits
  2836. X
  2837. X############### Character 0x75, 0165, 117   u u u u u u u u u u
  2838. Xchar 117
  2839. Xhs   5
  2840. Xvs   8
  2841. Xha   1
  2842. Xva   -7
  2843. Xhi   7
  2844. Xvi   0
  2845. Xbits
  2846. Xbits
  2847. Xbits *   *
  2848. Xbits *   *
  2849. Xbits *   *
  2850. Xbits *  **
  2851. Xbits  ** *
  2852. Xbits
  2853. X
  2854. X############### Character 0x76, 0166, 118   v v v v v v v v v v
  2855. Xchar 118
  2856. Xhs   5
  2857. Xvs   8
  2858. Xha   1
  2859. Xva   -7
  2860. Xhi   7
  2861. Xvi   0
  2862. Xbits
  2863. Xbits
  2864. Xbits *   *
  2865. Xbits *   *
  2866. Xbits  * *
  2867. Xbits  * *
  2868. Xbits   *
  2869. Xbits
  2870. X
  2871. X############### Character 0x77, 0167, 119   w w w w w w w w w w
  2872. Xchar 119
  2873. Xhs   5
  2874. Xvs   8
  2875. Xha   1
  2876. Xva   -7
  2877. Xhi   7
  2878. Xvi   0
  2879. Xbits
  2880. Xbits
  2881. Xbits *   *
  2882. Xbits * * *
  2883. Xbits * * *
  2884. Xbits * * *
  2885. Xbits  * *
  2886. Xbits
  2887. X
  2888. X############### Character 0x78, 0170, 120   x x x x x x x x x x
  2889. Xchar 120
  2890. Xhs   5
  2891. Xvs   8
  2892. Xha   1
  2893. Xva   -7
  2894. Xhi   7
  2895. Xvi   0
  2896. Xbits
  2897. Xbits
  2898. Xbits *   *
  2899. Xbits  * *
  2900. Xbits   *
  2901. Xbits  * *
  2902. Xbits *   *
  2903. Xbits
  2904. X
  2905. X############### Character 0x79, 0171, 121   y y y y y y y y y y
  2906. Xchar 121
  2907. Xhs   5
  2908. Xvs   8
  2909. Xha   1
  2910. Xva   -7
  2911. Xhi   7
  2912. Xvi   0
  2913. Xbits
  2914. Xbits
  2915. Xbits *   *
  2916. Xbits *   *
  2917. Xbits *  **
  2918. Xbits  ** *
  2919. Xbits     *
  2920. Xbits  ***
  2921. X
  2922. X############### Character 0x7a, 0172, 122   z z z z z z z z z z
  2923. Xchar 122
  2924. Xhs   5
  2925. Xvs   8
  2926. Xha   1
  2927. Xva   -7
  2928. Xhi   7
  2929. Xvi   0
  2930. Xbits
  2931. Xbits
  2932. Xbits *****
  2933. Xbits    *
  2934. Xbits   *
  2935. Xbits  *
  2936. Xbits *****
  2937. Xbits
  2938. X
  2939. X############### Character 0x7b, 0173, 123   { { { { { { { { { {
  2940. Xchar 123
  2941. Xhs   5
  2942. Xvs   8
  2943. Xha   1
  2944. Xva   -7
  2945. Xhi   7
  2946. Xvi   0
  2947. Xbits    *
  2948. Xbits   *
  2949. Xbits   *
  2950. Xbits **
  2951. Xbits   *
  2952. Xbits   *
  2953. Xbits    *
  2954. Xbits
  2955. X
  2956. X############### Character 0x7c, 0174, 124   | | | | | | | | | |
  2957. Xchar 124
  2958. Xhs   5
  2959. Xvs   8
  2960. Xha   1
  2961. Xva   -7
  2962. Xhi   7
  2963. Xvi   0
  2964. Xbits   *
  2965. Xbits   *
  2966. Xbits   *
  2967. Xbits   *
  2968. Xbits   *
  2969. Xbits   *
  2970. Xbits   *
  2971. Xbits   *
  2972. X
  2973. X############### Character 0x7d, 0175, 125   } } } } } } } } } }
  2974. Xchar 125
  2975. Xhs   5
  2976. Xvs   8
  2977. Xha   1
  2978. Xva   -7
  2979. Xhi   7
  2980. Xvi   0
  2981. Xbits  *
  2982. Xbits   *
  2983. Xbits   *
  2984. Xbits    **
  2985. Xbits   *
  2986. Xbits   *
  2987. Xbits  *
  2988. Xbits
  2989. X
  2990. X############### Character 0x7e, 0176, 126   ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
  2991. Xchar 126
  2992. Xhs   5
  2993. Xvs   8
  2994. Xha   1
  2995. Xva   -7
  2996. Xhi   7
  2997. Xvi   0
  2998. Xbits
  2999. Xbits
  3000. Xbits  *
  3001. Xbits * * *
  3002. Xbits    *
  3003. Xbits
  3004. Xbits
  3005. Xbits
  3006. X
  3007. X############### Character 0x7f, 0177, 127   DEL DEL DEL DEL DEL
  3008. Xchar 127
  3009. Xhs   5
  3010. Xvs   8
  3011. Xha   1
  3012. Xva   -7
  3013. Xhi   7
  3014. Xvi   0
  3015. Xbits *****
  3016. Xbits *****
  3017. Xbits *****
  3018. Xbits *****
  3019. Xbits *****
  3020. Xbits *****
  3021. Xbits *****
  3022. Xbits *****
  3023. X
  3024. ________This_Is_The_END________
  3025. if test `wc -l < 36x102.font` -ne 1638; then
  3026.         echo 'shar: 36x102.font was damaged during transit (should have been 163
  3027. fi
  3028. fi              ; : end of overwriting check
  3029. exit 0
  3030.  
  3031.  
  3032.