home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume7 / command < prev    next >
Encoding:
Text File  |  1989-07-21  |  69.2 KB  |  3,023 lines

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