home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume26 / banners / part03 < prev    next >
Text File  |  1993-04-07  |  102KB  |  5,439 lines

  1. Newsgroups: comp.sources.unix
  2. From: fkk@stasys.sta.sub.org (Frank Kaefer)
  3. Subject: v26i111: banners - a collection of banner programs, Part03/05
  4. Sender: unix-sources-moderator@vix.com
  5. Approved: paul@vix.com
  6.  
  7. Submitted-By: fkk@stasys.sta.sub.org (Frank Kaefer)
  8. Posting-Number: Volume 26, Issue 111
  9. Archive-Name: banners/part03
  10.  
  11. #! /bin/sh
  12. # This is a shell archive.  Remove anything before this line, then unpack
  13. # it by saving it into a file and typing "sh file".  To overwrite existing
  14. # files, type "sh file -c".  You can also feed this as standard input via
  15. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  16. # will see the following message at the end:
  17. #        "End of archive 3 (of 5)."
  18. # Contents:  banner-2/banner.c banner-3/banr.c banner-5/cursive.c
  19. #   banner-5/kbandat.c banner-9/data.c cursive-2/font.c
  20. # Wrapped by vixie@gw.home.vix.com on Thu Apr  8 12:26:14 1993
  21. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  22. if test -f 'banner-2/banner.c' -a "${1}" != "-c" ; then 
  23.   echo shar: Will not clobber existing file \"'banner-2/banner.c'\"
  24. else
  25. echo shar: Extracting \"'banner-2/banner.c'\" \(14453 characters\)
  26. sed "s/^X//" >'banner-2/banner.c' <<'END_OF_FILE'
  27. X/******************************
  28. X *   Banner.C, (c)1990 by     *
  29. X *     Michael Baudisch       *
  30. X ******************************/
  31. X
  32. X/*************************************************************************/
  33. X/*   Achtung!! Hier bitte fuer den jeweiligen Computer-typ einstellen!!  */
  34. X/*************************************************************************/
  35. X/* #define MS_DOS  */       /* Nur fuer MS-DOS-computer + kompatible */
  36. X/* #define AMIGA   */       /* Fuer die Amiganer */
  37. X#   define UNIX             /* Fuer Unix-ler */
  38. X#   define INTERN_DATA      /* Nur das eingebaute Data-file zaehlt */
  39. X
  40. X#ifndef MS_DOS
  41. X# ifndef INTERN_DATA
  42. X#  define STD_DATA_FILE ""  /* Fuer Nicht-MsDos'ler: Path+name vom StdData */
  43. X# endif
  44. X#endif                          
  45. X/*************************************************************************/
  46. X
  47. X#ifdef MS_DOS
  48. X#   include <process.h>
  49. X#endif
  50. X
  51. X#ifndef AMIGA
  52. X#   include <malloc.h>
  53. X#   include <string.h>
  54. X#endif
  55. X
  56. X#include <stdio.h>
  57. X#include <ctype.h>
  58. X
  59. X#ifdef INTERN_DATA
  60. unsigned char intern_data[] = {
  61. X0x012,0x055,0x020,0x000,0x0ff,0x041,0x001,0x007,0x042,0x001,0x00f,0x043,0x001,0x017,0x044,0x001,
  62. X0x01f,0x045,0x001,0x027,0x046,0x001,0x02f,0x047,0x001,0x037,0x048,0x001,0x03f,0x049,0x001,0x047,
  63. X0x04a,0x001,0x04f,0x04b,0x001,0x057,0x04c,0x001,0x05f,0x04d,0x001,0x067,0x04e,0x001,0x06f,0x04f,
  64. X0x001,0x077,0x050,0x001,0x07f,0x051,0x001,0x087,0x052,0x001,0x08f,0x053,0x001,0x097,0x054,0x001,
  65. X0x09f,0x055,0x001,0x0a7,0x056,0x001,0x0af,0x057,0x001,0x0b7,0x058,0x001,0x0bf,0x059,0x001,0x0c7,
  66. X0x05a,0x001,0x0cf,0x03a,0x001,0x0d7,0x03b,0x001,0x0df,0x03d,0x001,0x0e7,0x03f,0x001,0x0ef,0x028,
  67. X0x001,0x0f7,0x029,0x001,0x0ff,0x02d,0x002,0x007,0x02f,0x002,0x00f,0x021,0x002,0x017,0x02e,0x002,
  68. X0x01f,0x02c,0x002,0x027,0x02b,0x002,0x02f,0x02a,0x002,0x037,0x022,0x002,0x03f,0x023,0x002,0x047,
  69. X0x030,0x002,0x04f,0x031,0x002,0x057,0x032,0x002,0x05f,0x033,0x002,0x067,0x034,0x002,0x06f,0x035,
  70. X0x002,0x077,0x036,0x002,0x07f,0x037,0x002,0x087,0x038,0x002,0x08f,0x039,0x002,0x097,0x027,0x002,
  71. X0x09f,0x05c,0x002,0x0a7,0x061,0x002,0x0af,0x062,0x002,0x0b7,0x063,0x002,0x0bf,0x064,0x002,0x0c7,
  72. X0x065,0x002,0x0cf,0x066,0x002,0x0d7,0x067,0x002,0x0df,0x068,0x002,0x0e7,0x069,0x002,0x0ef,0x06a,
  73. X0x002,0x0f7,0x06b,0x002,0x0ff,0x06c,0x003,0x007,0x06d,0x003,0x00f,0x06e,0x003,0x017,0x06f,0x003,
  74. X0x01f,0x070,0x003,0x027,0x071,0x003,0x02f,0x072,0x003,0x037,0x073,0x003,0x03f,0x074,0x003,0x047,
  75. X0x075,0x003,0x04f,0x076,0x003,0x057,0x077,0x003,0x05f,0x078,0x003,0x067,0x079,0x003,0x06f,0x07a,
  76. X0x003,0x077,0x03c,0x003,0x07f,0x03e,0x003,0x087,0x07c,0x003,0x08f,0x05f,0x003,0x097,0x020,0x003,
  77. X0x09f,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x018,0x03c,0x066,0x066,0x07e,0x066,0x066,
  78. X0x000,0x0fc,0x066,0x066,0x07c,0x066,0x066,0x0fc,0x000,0x03c,0x066,0x0c0,0x0c0,0x0c0,0x066,0x03c,
  79. X0x000,0x0f8,0x06c,0x066,0x066,0x066,0x06c,0x0f8,0x000,0x0fe,0x062,0x068,0x078,0x068,0x062,0x0fe,
  80. X0x000,0x0fe,0x062,0x068,0x078,0x068,0x060,0x0f0,0x000,0x03c,0x066,0x0c0,0x0c0,0x0ce,0x066,0x03e,
  81. X0x000,0x066,0x066,0x066,0x07e,0x066,0x066,0x066,0x000,0x07e,0x018,0x018,0x018,0x018,0x018,0x07e,
  82. X0x000,0x01e,0x00c,0x00c,0x00c,0x0cc,0x0cc,0x078,0x000,0x0e6,0x066,0x06c,0x078,0x06c,0x066,0x0e6,
  83. X0x000,0x0f0,0x060,0x060,0x060,0x062,0x066,0x0fe,0x000,0x0c6,0x0ee,0x0fe,0x0fe,0x0d6,0x0c6,0x0c6,
  84. X0x000,0x0c6,0x0e6,0x0f6,0x0de,0x0ce,0x0c6,0x0c6,0x000,0x038,0x06c,0x0c6,0x0c6,0x0c6,0x06c,0x038,
  85. X0x000,0x0fc,0x066,0x066,0x07c,0x060,0x060,0x0f0,0x000,0x038,0x06c,0x0c6,0x0c6,0x0da,0x0cc,0x076,
  86. X0x000,0x0fc,0x066,0x066,0x07c,0x06c,0x066,0x0e6,0x000,0x03c,0x066,0x060,0x03c,0x006,0x066,0x03c,
  87. X0x000,0x07e,0x05a,0x018,0x018,0x018,0x018,0x03c,0x000,0x066,0x066,0x066,0x066,0x066,0x066,0x03c,
  88. X0x000,0x066,0x066,0x066,0x066,0x066,0x03c,0x018,0x000,0x0c6,0x0c6,0x0c6,0x0d6,0x0fe,0x0ee,0x0c6,
  89. X0x000,0x0c6,0x06c,0x038,0x038,0x06c,0x0c6,0x0c6,0x000,0x066,0x066,0x066,0x03c,0x018,0x018,0x03c,
  90. X0x000,0x0fe,0x0c6,0x08c,0x018,0x032,0x066,0x0fe,0x000,0x000,0x000,0x018,0x018,0x000,0x018,0x018,
  91. X0x000,0x000,0x000,0x018,0x018,0x000,0x018,0x018,0x030,0x000,0x000,0x07e,0x000,0x000,0x07e,0x000,
  92. X0x000,0x03c,0x066,0x066,0x00c,0x018,0x000,0x018,0x000,0x00c,0x018,0x030,0x030,0x030,0x018,0x00c,
  93. X0x000,0x030,0x018,0x00c,0x00c,0x00c,0x018,0x030,0x000,0x000,0x000,0x000,0x07e,0x000,0x000,0x000,
  94. X0x000,0x006,0x00c,0x018,0x030,0x060,0x0c0,0x080,0x000,0x018,0x018,0x018,0x018,0x018,0x000,0x018,
  95. X0x000,0x000,0x000,0x000,0x000,0x000,0x018,0x018,0x000,0x000,0x000,0x000,0x000,0x000,0x018,0x018,
  96. X0x030,0x000,0x018,0x018,0x07e,0x018,0x018,0x000,0x000,0x000,0x066,0x03c,0x0ff,0x03c,0x066,0x000,
  97. X0x000,0x066,0x066,0x066,0x000,0x000,0x000,0x000,0x000,0x06c,0x06c,0x0fe,0x06c,0x0fe,0x06c,0x06c,
  98. X0x000,0x07c,0x0c6,0x0ce,0x0d6,0x0e6,0x0c6,0x07c,0x000,0x018,0x038,0x018,0x018,0x018,0x018,0x07e,
  99. X0x000,0x03c,0x066,0x006,0x03c,0x060,0x066,0x07e,0x000,0x03c,0x066,0x006,0x01c,0x006,0x066,0x03c,
  100. X0x000,0x01c,0x03c,0x06c,0x0cc,0x0fe,0x00c,0x01e,0x000,0x07e,0x062,0x060,0x07c,0x006,0x066,0x03c,
  101. X0x000,0x03c,0x066,0x060,0x07c,0x066,0x066,0x03c,0x000,0x07e,0x046,0x006,0x00c,0x018,0x018,0x018,
  102. X0x000,0x03c,0x066,0x066,0x03c,0x066,0x066,0x03c,0x000,0x03c,0x066,0x066,0x03e,0x006,0x066,0x03c,
  103. X0x000,0x00c,0x018,0x030,0x000,0x000,0x000,0x000,0x000,0x0c0,0x060,0x030,0x018,0x00c,0x006,0x002,
  104. X0x000,0x000,0x000,0x078,0x00c,0x07c,0x0cc,0x076,0x000,0x0e0,0x060,0x07c,0x066,0x066,0x066,0x0dc,
  105. X0x000,0x000,0x000,0x03c,0x066,0x060,0x066,0x03c,0x000,0x01c,0x00c,0x07c,0x0cc,0x0cc,0x0cc,0x076,
  106. X0x000,0x000,0x000,0x03c,0x066,0x07e,0x060,0x03c,0x000,0x01c,0x036,0x030,0x078,0x030,0x030,0x078,
  107. X0x000,0x000,0x000,0x03e,0x066,0x066,0x03e,0x006,0x07c,0x0e0,0x060,0x06c,0x076,0x066,0x066,0x0e6,
  108. X0x000,0x018,0x000,0x038,0x018,0x018,0x018,0x03c,0x000,0x006,0x000,0x00e,0x006,0x006,0x066,0x066,
  109. X0x03c,0x0e0,0x060,0x066,0x06c,0x078,0x06c,0x0e6,0x000,0x038,0x018,0x018,0x018,0x018,0x018,0x03c,
  110. X0x000,0x000,0x000,0x06c,0x0fe,0x0d6,0x0d6,0x0c6,0x000,0x000,0x000,0x0dc,0x066,0x066,0x066,0x066,
  111. X0x000,0x000,0x000,0x03c,0x066,0x066,0x066,0x03c,0x000,0x000,0x000,0x0dc,0x066,0x066,0x07c,0x060,
  112. X0x0f0,0x000,0x000,0x076,0x0cc,0x0cc,0x07c,0x00c,0x01e,0x000,0x000,0x0dc,0x076,0x060,0x060,0x0f0,
  113. X0x000,0x000,0x000,0x03c,0x060,0x03c,0x006,0x07c,0x000,0x030,0x030,0x07c,0x030,0x030,0x036,0x01c,
  114. X0x000,0x000,0x000,0x066,0x066,0x066,0x066,0x03e,0x000,0x000,0x000,0x066,0x066,0x066,0x03c,0x018,
  115. X0x000,0x000,0x000,0x0c6,0x0d6,0x0d6,0x0fe,0x06c,0x000,0x000,0x000,0x0c6,0x06c,0x038,0x06c,0x0c6,
  116. X0x000,0x000,0x000,0x066,0x066,0x066,0x03e,0x006,0x07c,0x000,0x000,0x07e,0x04c,0x018,0x032,0x07e,
  117. X0x000,0x00c,0x018,0x030,0x060,0x030,0x018,0x00c,0x000,0x060,0x030,0x018,0x00c,0x018,0x030,0x060,
  118. X0x000,0x018,0x018,0x018,0x018,0x018,0x018,0x018,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x000,
  119. X0x0ff,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x000 };
  120. X#endif
  121. X
  122. typedef unsigned int UINT;
  123. typedef unsigned char UCHAR;
  124. typedef UCHAR * DATA;
  125. X
  126. X/*******************/
  127. X#define VERSION 1.3
  128. X/*******************/
  129. X
  130. X#ifndef SEEK_END
  131. X#define SEEK_END 2
  132. X#endif
  133. X
  134. X#define TRUE    1
  135. X#define FALSE   0
  136. X#define SIZE_LINE ((size_h+1)*size_y)
  137. X#define SIZE_LINE_Y (size_y)
  138. X#define SIZE_CHAR (size_x*size_y)
  139. X#define CLEAR_LINE 1
  140. X#define CLEAR_CHAR 2
  141. X#define CLEAR_ALL (CLEAR_LINE|CLEAR_CHAR)
  142. X#define XMAX (size_h)
  143. X
  144. void main        (/*int argc, char *argv[]*/);
  145. void help        (/*void*/);
  146. void shutdown    (/*char *txt*/);
  147. void clearmem    (/*int was*/);
  148. void newline     (/*void*/);
  149. void writeword   (/*char *txt*/);
  150. void putword     (/*char *txt*/);
  151. void calc_char   (/*char x*/);
  152. void insert_char (/*char chrx*/);
  153. void writechar   (/*char x*/);
  154. int  read_word   (/*FILE *fh, char *txt*/);
  155. void banner_file (/*FILE *fh*/);
  156. X
  157. DATA zs = 0, chr = 0, line = 0;
  158. XFILE *fh = 0;
  159. UCHAR str[256], b_file[80], fchar = ' ', fchar2 = ' ';
  160. int size_h = 80, size_x = 8, size_y = 8;
  161. int xpos, empty = TRUE, chars=FALSE, pipe=FALSE, upper=FALSE;
  162. int italics = FALSE, inverse = FALSE, fcharf = FALSE, ultraflag = FALSE;
  163. X
  164. void main(argc,argv)
  165. int argc;
  166. char *argv[];
  167. X{
  168. long n,m;
  169. void *puffer;
  170. X    *str=*b_file='\0';
  171. X    if(argc==1||(argc==2&&!(strcmp(argv[1],"?")*strcmp(argv[1],"/?")*strcmp
  172. X                                                    (argv[1],"/h"))))
  173. X    {
  174. X        help();
  175. X        shutdown("");
  176. X    }
  177. X    for(n=1;n<argc;n++)
  178. X    {
  179. X        if(*argv[n]=='/')
  180. X        {
  181. X            switch(tolower(argv[n][1]))
  182. X            {
  183. X                case 's':
  184. X                    sscanf(&argv[n][3],"%4u",&size_h);
  185. X                    break;
  186. X                case 'd':
  187. X                    strcpy(str,&argv[n][3]);
  188. X                    break;
  189. X                case 'f':
  190. X                    strcpy(b_file,&argv[n][3]);
  191. X                    break;
  192. X                case '?':
  193. X                case 'h':
  194. X                    help();
  195. X                    break;
  196. X                case '#':
  197. X                    chars=TRUE;
  198. X                    break;
  199. X                case 'p':
  200. X                    pipe=TRUE;
  201. X                    break;
  202. X                case 'u':
  203. X                    upper=TRUE;
  204. X                    break;
  205. X                case 'r':
  206. X                    inverse=TRUE;
  207. X                    break;
  208. X                case 'i':
  209. X                    italics=TRUE;
  210. X                    size_h-=size_y;
  211. X                    break;
  212. X                case 'c':
  213. X                    fcharf=TRUE;
  214. X                    fchar=argv[n][2];
  215. X                    if(strlen(argv[n])>3)
  216. X                        fchar2=argv[n][3];
  217. X                    if(argv[n][4]=='!')
  218. X                        ultraflag=TRUE;
  219. X                    break;
  220. X                default:
  221. X                    shutdown("Falsche Option! Aufruf mit /h oder /? listet alle Optionen.");
  222. X                    break;
  223. X            }
  224. X        }
  225. X    }
  226. X    if(!*str)
  227. X    {
  228. X#ifdef MS_DOS
  229. X        strcpy(str,argv[0]);
  230. X        strcpy(str+strlen(str)-3,"DAT");
  231. X#else
  232. X# ifdef STD_DATA_FILE
  233. X        strcpy(str,STD_DATA_FILE);
  234. X# endif
  235. X#endif
  236. X    }
  237. X#ifdef INTERN_DATA
  238. X        zs=(DATA)intern_data;
  239. X#else
  240. X        if(!(fh=fopen(str,"rb")))
  241. X        shutdown("Datenfile nicht gefunden!!");
  242. X    if(fseek(fh,0L,SEEK_END))
  243. X        shutdown("Interner Fehler.");
  244. X    if((n=ftell(fh))==-1)
  245. X        shutdown("Interner Fehler.");
  246. X        rewind(fh);          
  247. X#  ifdef MS_DOS
  248. X    if(!(zs=(DATA)malloc((size_t)n)))
  249. X        shutdown("Zu wenig Speicher!!");
  250. X        fread((void *)zs, (size_t)1, (size_t)n, (FILE *)fh);
  251. X#  else
  252. X        if(!(zs=(DATA)malloc((int)n)))
  253. X                shutdown("Zu wenig Speicher!!");
  254. X        fread((void *)zs, (int)1, (int)n, (FILE *)fh);
  255. X#  endif       
  256. X        fclose(fh);
  257. X#endif
  258. X    if(!(chr=(DATA)malloc(size_x*size_y)))
  259. X        shutdown("Zu wenig Speicher!!");
  260. X    if(!(line=(DATA)malloc(SIZE_LINE)))
  261. X        shutdown("Zu wenig Speicher!!");
  262. X    if( (float)( (int)VERSION*16)+(VERSION-1.0)*10.0<(float)zs[0])
  263. X        shutdown("Datenfile nicht fuer diese Version von Banner.C geeignet.");
  264. X    if(zs[0]<(UCHAR)0x12)
  265. X        upper=TRUE; /* 1.0 und 1.1 unterstuetzen NUR Grossbuchstaben! */
  266. X    clearmem(CLEAR_ALL);
  267. X    xpos=0;
  268. X    for(n=1;n<argc;n++)
  269. X    {
  270. X        if(argv[n][0]!='/')
  271. X        {
  272. X            writeword(argv[n]);
  273. X            if((xpos+=size_x)>XMAX-1)
  274. X                newline();
  275. X        }
  276. X    }
  277. X    if(xpos) newline();
  278. X#ifndef AMIGA
  279. X    if(*b_file)
  280. X    {
  281. X        if(!(fh=fopen(b_file,"rb")))
  282. X            shutdown("Kann zu bannerndes Datenfile nicht finden.");
  283. X        banner_file(fh);
  284. X        fclose(fh);
  285. X        newline();
  286. X    }
  287. X#endif
  288. X    if(pipe)
  289. X        banner_file(stdin);
  290. X    shutdown("");
  291. X}
  292. X
  293. void banner_file(fh)
  294. XFILE *fh;
  295. X{
  296. long m;
  297. X    while(!feof(fh))
  298. X    {
  299. X        m=(long)read_word(fh,str);
  300. X        if(strlen(str))
  301. X        {
  302. X            writeword(str);
  303. X            if((xpos+=size_x)>XMAX-1 || m)
  304. X            {
  305. X                newline();
  306. X                m=0L;
  307. X            }
  308. X        }
  309. X        if(m) newline();
  310. X    }
  311. X}
  312. X
  313. int read_word(fh,txt)
  314. XFILE *fh;
  315. char *txt;
  316. X{
  317. int flag = TRUE, n = 0, ret=0;
  318. char x;
  319. X    while(flag && n<250)
  320. X    {
  321. X        x=(char)fgetc(fh);
  322. X        if(x==' ' || !isprint(x))
  323. X            flag=FALSE;
  324. X        else
  325. X            str[n++]=x;
  326. X        ret=(x=='\n'||x=='\r'||x==(char)0x0a||x==(char)0x0d)?1:0;
  327. X    }
  328. X    str[n]='\0';
  329. X    return(ret);
  330. X}
  331. X
  332. void writeword(txt)
  333. char *txt;
  334. X{
  335. X    if(xpos+size_x*strlen(txt)>XMAX)
  336. X    {
  337. X        if(!xpos)
  338. X            putword(txt);
  339. X        else
  340. X        {
  341. X            newline();
  342. X            writeword(txt);
  343. X            return;
  344. X        }
  345. X    }
  346. X    else
  347. X        putword(txt);
  348. X}
  349. X
  350. void putword(txt)
  351. char *txt;
  352. X{
  353. int n;
  354. X    for(n=0;n<strlen(txt);n++)
  355. X        writechar(txt[n]);
  356. X}
  357. X
  358. void writechar(x)
  359. char x;
  360. X{
  361. char chr = upper?toupper(x):x;
  362. X    calc_char(chr);
  363. X    insert_char(chr);
  364. X    if((xpos+=size_x)>XMAX-1) newline();
  365. X}
  366. X
  367. void calc_char(x)
  368. char x;
  369. X{
  370. int n,m,a,b;
  371. UINT b2;
  372. X    fchar2|=(UCHAR)0x80;
  373. X    clearmem(CLEAR_CHAR);
  374. X    for(n=0,m=-1;n<zs[1] && m<0;n++)
  375. X    {
  376. X        if(zs[2+n*3]==x)
  377. X            m=n;
  378. X    }
  379. X    if(m<0) return;
  380. X    for(n=0;n<8;n++)
  381. X    {
  382. X        b=(int)zs[2+256*zs[m*3+3]+zs[m*3+4]+n];
  383. X        b2=(UINT)(b<0?256+b:b);
  384. X        for(a=0;a<8;a++)
  385. X        {
  386. X            if(b&1)
  387. X                chr[n*8+7-a]=inverse?(UCHAR)fchar2:(chars?x:(fcharf?fchar:'#'));
  388. X            else
  389. X                chr[n*8+7-a]=inverse?(chars?x:(fcharf?fchar:'#')):(UCHAR)fchar2;
  390. X            b>>=1;
  391. X        }
  392. X    }
  393. X}
  394. X
  395. void insert_char(chrx)
  396. char chrx;
  397. X{
  398. int n,m,a;
  399. UCHAR x = fchar2, xold;
  400. X    empty=FALSE;
  401. X    for(n=0;n<8;n++)
  402. X    {
  403. X        for(m=0;m<8;m++)
  404. X        {
  405. X            xold=x;
  406. X            x=chr[8*n+m];
  407. X            if(!ultraflag)
  408. X                line[size_h*n+xpos+m]=(UCHAR)x&0x7f;
  409. X            else
  410. X            {
  411. X                if(x==fchar2 && xold==(chars?chrx:fchar))
  412. X                    x=(UCHAR)' ';
  413. X                line[size_h*n+xpos+m]=(UCHAR)x&0x7f;
  414. X            }
  415. X        }
  416. X    }
  417. X}
  418. X
  419. void newline(/*void*/)
  420. X{
  421. int a,b,c,x, wrote, flag;
  422. X    if(empty)
  423. X    {
  424. X        xpos=0;
  425. X        return;
  426. X    }
  427. X    empty=TRUE;
  428. X    xpos=0;
  429. X    for(a=0;a<SIZE_LINE_Y;a++)
  430. X    {
  431. X        wrote=0;
  432. X        if(italics)
  433. X        {
  434. X            for(b=0;b<(SIZE_LINE_Y-a);b++, wrote++)
  435. X                putchar(' ');
  436. X        }
  437. X        for(b=size_h-1,c=0;b>1 && !c;b--)
  438. X        {
  439. X            if(line[size_h*a+b]!=' ' && line[size_h*a+b]!='\0')
  440. X                c=++b;
  441. X        }
  442. X        for(b=0;b<c && b<size_h;b++)
  443. X        {
  444. X            x=(int)line[size_h*a+b];
  445. X            if(!x) x=32;
  446. X            putchar(x);
  447. X            wrote++;
  448. X        }
  449. X        if(wrote<(size_h+(italics?SIZE_LINE_Y:0)))
  450. X            putchar('\n');
  451. X    }
  452. X    clearmem(CLEAR_LINE);
  453. X}
  454. X
  455. void clearmem(was)
  456. int was;
  457. X{
  458. register UINT n;
  459. X    if(was&CLEAR_CHAR)
  460. X    {
  461. X        for(n=0;n<SIZE_CHAR;n++)
  462. X            chr[n]=(char)32;
  463. X    }
  464. X    if(was&CLEAR_LINE)
  465. X    {
  466. X        for(n=0;n<SIZE_LINE;n++)
  467. X            line[n]=(char)0;
  468. X    }
  469. X}
  470. X
  471. void help(/*void*/)
  472. X{
  473. X    printf("\nBanner.c, V%1.1f, (c)1990 by Lizard\n=================================\n",VERSION);
  474. X#ifdef AMIGA
  475. X    puts("( Geschrieben fuer FALCON :-)");
  476. X#endif /* ;-) */
  477. X    puts("Aufruf:   Banner /<option1> /<opt2> /<opt3> [etc... :-)] <text>\n");
  478. X    puts("Moegliche Optionen:\n");
  479. X    puts(" /?          : Dieser Text hier. Auch: /h oder kein Parameter.");
  480. X    puts(" /S:<breite> : Breite des geBANNERten Textes (Horizontal/Gesamt), Default: 80");
  481. X    puts(" /D:<path>   : Anderes Zeichensatz-Datenfile hernehmen.");
  482. X#ifndef AMIGA
  483. X    puts(" /F:<path>   : File <path> bannern.");
  484. X#endif /* Tja, amiga hat nicht fopen("..","rb") !! */
  485. X    puts(" /#          : Die Buchstaben werden anstatt mit #'s mit den jeweiligen Chars");
  486. X    puts("               gebildet.");
  487. X    puts(" /P          : Pipe-option: Von stdin wird der zu bannernde Text gelesen.");
  488. X    puts(" /U          : Alles in Grossbuchstaben umwandeln.");
  489. X    puts(" /R          : Invertierte Darstellung.");
  490. X    puts(" /I          : Italics (schraege Buchstaben)");
  491. X    puts(" /Cxy!       : 'Vordergrundfarbe'=x, 'Hintergrundfarbe'=y. y ist optional.");
  492. X    puts("             : Bei angegebenem '!' wird die Shadow-funktion aktiviert.");
  493. X    puts("-------------------------------------------------------------------");
  494. X}
  495. X
  496. void shutdown(txt)
  497. char *txt;
  498. X{
  499. X#ifdef MS_DOS
  500. X        fcloseall();
  501. X#endif
  502. X#ifndef INTERN_DATA
  503. X        if(zs) free((void *)zs);
  504. X#endif
  505. X    if(chr) free((void *)chr);
  506. X    if(line) free((void *)line);
  507. X    if(*txt) printf("\n%s\n",txt);
  508. X    exit(0);
  509. X}
  510. END_OF_FILE
  511. if test 14453 -ne `wc -c <'banner-2/banner.c'`; then
  512.     echo shar: \"'banner-2/banner.c'\" unpacked with wrong size!
  513. fi
  514. # end of 'banner-2/banner.c'
  515. fi
  516. if test -f 'banner-3/banr.c' -a "${1}" != "-c" ; then 
  517.   echo shar: Will not clobber existing file \"'banner-3/banr.c'\"
  518. else
  519. echo shar: Extracting \"'banner-3/banr.c'\" \(12385 characters\)
  520. sed "s/^X//" >'banner-3/banr.c' <<'END_OF_FILE'
  521. X/*
  522. X
  523. NAME
  524. X     banr - print strings in large letters
  525. X
  526. SYNOPSIS
  527. X     banr [-n]
  528. X
  529. DESCRIPTION
  530. X     banr prints its standard input in large letters (but smaller than
  531. X     banner(1)) on the standard output.
  532. X
  533. OPTIONS
  534. X     -n  Forces no underlining to be used even if the capability exists.
  535. X
  536. SEE ALSO
  537. X     banner(1)
  538. X
  539. AUTHOR
  540. X     Art Messenger 10/22/87
  541. X     art@wilbur.coyote.trw.com
  542. X
  543. X*/
  544. X
  545. X/* compile with -ltermcap */
  546. X
  547. X#include <stdio.h>
  548. X
  549. X#define    TRUE    1
  550. X#define    FALSE    0
  551. X#define when    break;case
  552. X#define wlse    break;default
  553. X
  554. char usagem[] = "Usage: %s [-n]\n";
  555. X
  556. struct font {
  557. X    struct {
  558. X    char *line,*ulmask;
  559. X    } c[4];
  560. X} character[128] = {    /* the font file: variable width */
  561. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x00 */
  562. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x01 */
  563. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x02 */
  564. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x03 */
  565. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x04 */
  566. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x05 */
  567. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x06 */
  568. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x07 */
  569. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x08 */
  570. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x09 */
  571. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x0a */
  572. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x0b */
  573. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x0c */
  574. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x0d */
  575. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x0e */
  576. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x0f */
  577. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x10 */
  578. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x11 */
  579. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x12 */
  580. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x13 */
  581. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x14 */
  582. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x15 */
  583. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x16 */
  584. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x17 */
  585. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x18 */
  586. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x19 */
  587. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x1a */
  588. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x1b */
  589. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x1c */
  590. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x1d */
  591. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x1e */
  592. X    { {"",""},{"",""},{"",""},{"",""} },    /* 0x1f */
  593. X    { {"  ","  "},
  594. X      {"  ","  "},
  595. X      {"  ","  "},
  596. X      {"  ","  "} },        /* 0x20: ' ' */
  597. X    { {" "," "},
  598. X      {"|"," "},
  599. X      {"."," "},
  600. X      {" "," "} },            /* 0x21: ! */
  601. X    { {"  ","  "},
  602. X      {"//","  "},
  603. X      {"  ","  "},
  604. X      {"  ","  "} },        /* 0x22: " */
  605. X    { {"   ","   "},
  606. X      {"|_|","_ _"},
  607. X      {"|_|","_ _"},
  608. X      {"| |","   "} },        /* 0x23: # */
  609. X    { {" __", "   "},
  610. X      {"(| ", " _ "},
  611. X      {"_|)", " _ "},
  612. X      {"   ", "   "} },        /* 0x24: $ */
  613. X    { {"  ","  "},
  614. X      {"o/","  "},
  615. X      {"/o","  "},
  616. X      {"  ","  "} },        /* 0x25: % */
  617. X    { {"  ","  "},
  618. X      {"o ","  "},
  619. X      {"(X","  "},
  620. X      {"  ","  "} },        /* 0x26: & */
  621. X    { {" "," "},
  622. X      {"/"," "},
  623. X      {" "," "},
  624. X      {" "," "} },            /* 0x27: ' */
  625. X    { {" "," "},
  626. X      {"/"," "},
  627. X      {"\\"," "},
  628. X      {" "," "} },            /* 0x28: ( */
  629. X    { {" "," "},
  630. X      {"\\"," "},
  631. X      {"/"," "},
  632. X      {" "," "} },            /* 0x29: ) */
  633. X    { {"  ","  "},
  634. X      {"\\/","__"},
  635. X      {"/\\","  "},
  636. X      {"  ","  "} },        /* 0x2a: * */
  637. X    { {"   ","   "},
  638. X      {"_|_"," _ "},
  639. X      {" | ","   "},
  640. X      {"   ","   "} },        /* 0x2b: + */
  641. X    { {" "," "},
  642. X      {" "," "},
  643. X      {"o"," "},
  644. X      {"/"," "} },            /* 0x2c: , */
  645. X    { {"  ","  "},
  646. X      {"__","  "},
  647. X      {"  ","  "},
  648. X      {"  ","  "} },        /* 0x2d: - */
  649. X    { {" "," "},
  650. X      {" "," "},
  651. X      {"o"," "},
  652. X      {" "," "} },            /* 0x2e: . */
  653. X    { {"  ","  "},
  654. X      {" /","  "},
  655. X      {"/ ","  "},
  656. X      {"  ","  "} },        /* 0x2f: / */
  657. X    { {" _ ", "   "},
  658. X      {"/.\\", "   "},
  659. X      {"\\_/", "   "},
  660. X      {"   ", "   "} },        /* 0x30: 0 */
  661. X    { {" ", " "},
  662. X      {"|", " "},
  663. X      {"|", " "},
  664. X      {" ", " "} },            /* 0x31: 1 */
  665. X    { {"_ ", "  "},
  666. X      {" )", "  "},
  667. X      {"/_", "_ "},
  668. X      {"  ", "  "} },        /* 0x32: 2 */
  669. X    { {"_ ", "  "},
  670. X      {"_)", "  "},
  671. X      {"_)", "  "},
  672. X      {"  ", "  "} },        /* 0x33: 3 */
  673. X    { {"   ", "   "},
  674. X      {"/_|", "_  "},
  675. X      {"  |", "   "},
  676. X      {"   ", "   "} },        /* 0x34: 4 */
  677. X    { {" __", "   "},
  678. X      {"|_ ", "   "},
  679. X      {"._)", "   "},
  680. X      {"   ", "   "} },        /* 0x35: 5 */
  681. X    { {"   ", "   "},
  682. X      {" / ", " _ "},
  683. X      {"(_)", "   "},
  684. X      {"   ", "   "} },        /* 0x36: 6 */
  685. X    { {"__", "  "},
  686. X      {" /", "  "},
  687. X      {"/ ", "  "},
  688. X      {"  ", "  "} },        /* 0x37: 7 */
  689. X    { {" _ ", "   "},
  690. X      {"(_)", "   "},
  691. X      {"(_)", "   "},
  692. X      {"   ", "   "} },        /* 0x38: 8 */
  693. X    { {" _ ", "   "},
  694. X      {"(_)", "   "},
  695. X      {" / ", "   "},
  696. X      {"   ", "   "} },        /* 0x39: 9 */
  697. X    { {" ", " "},
  698. X      {"o", " "},
  699. X      {"o", " "},
  700. X      {" ", " "} },            /* 0x3a: : */
  701. X    { {" ", " "},
  702. X      {"o", " "},
  703. X      {"o", " "},
  704. X      {"/", " "} },            /* 0x3b: ; */
  705. X    { {" ", " "},
  706. X      {"/", " "},
  707. X      {"\\", " "},
  708. X      {" ", " "} },            /* 0x3c: < */
  709. X    { {"  ", "  "},
  710. X      {"__", "  "},
  711. X      {"__", "  "},
  712. X      {"  ", "  "} },        /* 0x3d: = */
  713. X    { {" ", " "},
  714. X      {"\\", " "},
  715. X      {"/", " "},
  716. X      {" ", " "} },            /* 0x3e: > */
  717. X    { {" _ ", "   "},
  718. X      {"' )", "   "},
  719. X      {" ! ", "   "},
  720. X      {"   ", "   "} },        /* 0x3f: ? */
  721. X    { {"   ", "   "},
  722. X      {" _ ", "   "},
  723. X      {"(Q)", " __"},
  724. X      {"   ", "   "} },        /* 0x40: @ */
  725. X    { {" _ ", "    "},
  726. X      {"/_\\", "   "},
  727. X      {"| |", "_ _"},
  728. X      {"   ", "   "} },        /* 0x41: A */
  729. X    { {"__ ", "   "},
  730. X      {"|_)", "   "},
  731. X      {"|_)", "_  "},
  732. X      {"   ", "   "} },        /* 0x42: B */
  733. X    { {" _ ", "   "},
  734. X      {"/ '", "   "},
  735. X      {"\\_,", "   "},
  736. X      {"   ", "   "} },        /* 0x43: C */
  737. X    { {"__ ", "   "},
  738. X      {"| \\", "   "},
  739. X      {"|_/", "_  "},
  740. X      {"   ", "   "} },        /* 0x44: D */
  741. X    { {"___", "   "},
  742. X      {"|_ ", "   "},
  743. X      {"|__", "_  "},
  744. X      {"   ", "   "} },        /* 0x45: E */
  745. X    { {"___", "   "},
  746. X      {"|_ ", "   "},
  747. X      {"|  ", "_  "},
  748. X      {"   ", "   "} },        /* 0x46: F */
  749. X    { {" _ ", "   "},
  750. X      {"/ _", "   "},
  751. X      {"\\_|", "   "},
  752. X      {"   ", "   "} },        /* 0x47: G */
  753. X    { {"_ _", "   "},
  754. X      {"|_|", "   "},
  755. X      {"| |", "_ _"},
  756. X      {"   ", "   "} },        /* 0x48: H */
  757. X    { {"_", " "},
  758. X      {"|", " "},
  759. X      {"|", "_"},
  760. X      {" ", " "} },            /* 0x49: I */
  761. X    { {" _", "  "},
  762. X      {" |", "  "},
  763. X      {"\\/", "  "},
  764. X      {"  ", "  "} },        /* 0x4a: J */
  765. X    { {"_ _", "   "},
  766. X      {"|_/", "   "},
  767. X      {"| \\", "_ _"},
  768. X      {"   ", "   "} },        /* 0x4b: K */
  769. X    { {"_  ", "   "},
  770. X      {"|  ", "   "},
  771. X      {"|__", "_  "},
  772. X      {"   ", "   "} },        /* 0x4c: L */
  773. X    { {"_  _", "    "},
  774. X      {"|\\/|", "    "},
  775. X      {"|  |", "_  _"},
  776. X      {"    ", "    "} },        /* 0x4d: M */
  777. X    { {"_  _", "    "},
  778. X      {"|\\ |", "    "},
  779. X      {"| \\|", "_  _"},
  780. X      {"    ", "    "} },        /* 0x4e: N */
  781. X    { {" _ ", "   "},
  782. X      {"/ \\", "   "},
  783. X      {"\\_/", "   "},
  784. X      {"   ", "   "} },        /* 0x4f: O */
  785. X    { {"__ ", "   "},
  786. X      {"|_)", "   "},
  787. X      {"|  ", "_  "},
  788. X      {"   ", "   "} },        /* 0x50: P */
  789. X    { {" _ ", "   "},
  790. X      {"/ \\", "   "},
  791. X      {"\\_X", "   "},
  792. X      {"   ", "   "} },        /* 0x51: Q */
  793. X    { {"__ ", "   "},
  794. X      {"|_)", "   "},
  795. X      {"| \\", "_ _"},
  796. X      {"   ", "   "} },        /* 0x52: R */
  797. X    { {" _ ", "   "},
  798. X      {"(_'", "   "},
  799. X      {",_)", "   "},
  800. X      {"   ", "   "} },        /* 0x53: S */
  801. X    { {"___", "   "},
  802. X      {" | ", "   "},
  803. X      {" | ", " _ "},
  804. X      {"   ", "   "} },        /* 0x54: T */
  805. X    { {"_ _", "   "},
  806. X      {"| |", "   "},
  807. X      {"\\_/", "   "},
  808. X      {"   ", "   "} },        /* 0x55: U */
  809. X    { {"_  _", "    "},
  810. X      {"\\  /", "    "},
  811. X      {" \\/ ", "    "},
  812. X      {"    ", "    "} },        /* 0x56: V */
  813. X    { {"_  _", "    "},
  814. X      {"|  |", "    "},
  815. X      {"\\/\\/", "    "},
  816. X      {"    ", "    "} },        /* 0x57: W */
  817. X    { {"_ _", "   "},
  818. X      {"\\_/", "   "},
  819. X      {"/ \\", "_ _"},
  820. X      {"   ", "   "} },        /* 0x58: X */
  821. X    { {"_ _", "   "},
  822. X      {"\\_/", "   "},
  823. X      {" | ", " _ "},
  824. X      {"   ", "   "} },        /* 0x59: Y */
  825. X    { {"__", "  "},
  826. X      {" /", "  "},
  827. X      {"/_", "_ "},
  828. X      {"  ", "  "} },        /* 0x5a: Z */
  829. X    { {"__","  "},
  830. X      {"| ","  "},
  831. X      {"|_","_ "},
  832. X      {"  ","  "} },        /* 0x5b: [ */
  833. X    { {"  ","  "},
  834. X      {"\\ ","  "},
  835. X      {" \\","  "},
  836. X      {"  ","  "} },        /* 0x5c: \ */
  837. X    { {"__","  "},
  838. X      {" |","  "},
  839. X      {"_|"," _"},
  840. X      {"  ","  "} },        /* 0x5d: ] */
  841. X    { {"  ","  "},
  842. X      {"/\\","  "},
  843. X      {"  ","  "},
  844. X      {"  ","  "} },        /* 0x5e: ^ */
  845. X    { {"  ","  "},
  846. X      {"  ","  "},
  847. X      {"__","  "},
  848. X      {"  ","  "} },        /* 0x5f: _ */
  849. X    { {" "," "},
  850. X      {"\\"," "},
  851. X      {" "," "},
  852. X      {" "," "} },            /* 0x60: ` */
  853. X    { {"   ", "   "},
  854. X      {" _.", "   "},
  855. X      {"(_|", "   "},
  856. X      {"   ", "   "} },        /* 0x61: a */
  857. X    { {"   ", "   "},
  858. X      {"|_ ", "   "},
  859. X      {"|_)", "   "},
  860. X      {"   ", "   "} },        /* 0x62: b */
  861. X    { {"  ", "  "},
  862. X      {" _", "  "},
  863. X      {"|_", "  "},
  864. X      {"  ", "  "} },        /* 0x63: c */
  865. X    { {"   ", "   "},
  866. X      {" _|", "   "},
  867. X      {"(_|", "   "},
  868. X      {"   ", "   "} },        /* 0x64: d */
  869. X    { {"   ", "   "},
  870. X      {" _ ", "   "},
  871. X      {"(-'", " _ "},
  872. X      {"   ", "   "} },        /* 0x65: e */
  873. X    { {" _", "  "},
  874. X      {"|_", "_ "},
  875. X      {"| ", "  "},
  876. X      {"  ", "  "} },        /* 0x66: f */
  877. X    { {"   ", "   "},
  878. X      {" _ ", "   "},
  879. X      {"(_|", "   "},
  880. X      {"._)", "   "} },        /* 0x67: g */
  881. X    { {"   ", "   "},
  882. X      {"|_ ", "   "},
  883. X      {"| |", "   "},
  884. X      {"   ", "   "} },        /* 0x68: h */
  885. X    { {" ", " "},
  886. X      {".", " "},
  887. X      {"|", " "},
  888. X      {" ", " "} },            /* 0x69: i */
  889. X    { {"  ", "  "},
  890. X      {" .", "  "},
  891. X      {" |", "  "},
  892. X      {"./", "  "} },        /* 0x6a: j */
  893. X    { {"  ", "  "},
  894. X      {"| ", "  "},
  895. X      {"|<", "  "},
  896. X      {"  ", "  "} },        /* 0x6b: k */
  897. X    { {" ", " "},
  898. X      {"|", " "},
  899. X      {"|", "_"},
  900. X      {" ", " "} },            /* 0x6c: l */
  901. X    { {"     ", "     "},
  902. X      {"._ _ ", "     "},
  903. X      {"| | |", "     "},
  904. X      {"     ", "     "} },        /* 0x6d: m */
  905. X    { {"   ", "   "},
  906. X      {"._ ", "   "},
  907. X      {"| |", "   "},
  908. X      {"   ", "   "} },        /* 0x6e: n */
  909. X    { {"   ", "   "},
  910. X      {" _ ", "   "},
  911. X      {"(_)", "   "},
  912. X      {"   ", "   "} },        /* 0x6f: o */
  913. X    { {"   ", "   "},
  914. X      {"._ ", "   "},
  915. X      {"|_)", "   "},
  916. X      {"|  ", "   "} },        /* 0x70: p */
  917. X    { {"   ", "   "},
  918. X      {" _.", "   "},
  919. X      {"(_|", "   "},
  920. X      {"  |", "   "} },        /* 0x71: q */
  921. X    { {"  ", "  "},
  922. X      {"._", "  "},
  923. X      {"| ", "  "},
  924. X      {"  ", "  "} },        /* 0x72: r */
  925. X    { {" ", " "},
  926. X      {"_", " "},
  927. X      {"\\", "_"},
  928. X      {" ", " "} },            /* 0x73: s */
  929. X    { {" ", " "},
  930. X      {"|", "_"},
  931. X      {"|", " "},
  932. X      {" ", " "} },            /* 0x74: t */
  933. X    { {"   ", "   "},
  934. X      {"   ", "   "},
  935. X      {"|_|", "   "},
  936. X      {"   ", "   "} },        /* 0x75: u */
  937. X    { {"  ", "  "},
  938. X      {"  ", "  "},
  939. X      {"\\/", "  "},
  940. X      {"  ", "  "} },        /* 0x76: v */
  941. X    { {"    ", "    "},
  942. X      {"    ", "    "},
  943. X      {"\\/\\/", "    "},
  944. X      {"    ", "    "} },        /* 0x77: w */
  945. X    { {"  ", "  "},
  946. X      {"  ", "  "},
  947. X      {"><", "  "},
  948. X      {"  ", "  "} },        /* 0x78: x */
  949. X    { {"   ", "   "},
  950. X      {"   ", "   "},
  951. X      {"\\_/", "   "},
  952. X      {"_/ ", "   "} },        /* 0x79: y */
  953. X    { {" ", " "},
  954. X      {"_", " "},
  955. X      {"/", "_"},
  956. X      {" ", " "} },            /* 0x7a: z */
  957. X    { {" "," "},
  958. X      {"("," "},
  959. X      {"("," "},
  960. X      {" "," "} },            /* 0x7b: { */
  961. X    { {" "," "},
  962. X      {"|"," "},
  963. X      {"|"," "},
  964. X      {" "," "} },            /* 0x7c: | */
  965. X    { {" "," "},
  966. X      {")"," "},
  967. X      {")"," "},
  968. X      {" "," "} },            /* 0x7d: } */
  969. X    { {"  ","  "},
  970. X      {"^v","  "},
  971. X      {"  ","  "},
  972. X      {"  ","  "} },        /* 0x7e: ~ */
  973. X    { {"",""},{"",""},{"",""},{"",""} }    /* 0x7f */
  974. X};
  975. X
  976. char *rindex();
  977. X
  978. main(argc,argv)
  979. X    int argc;
  980. X    char *argv[];
  981. X{
  982. X    int
  983. X    nflag=FALSE,        /* -n: don't underline */
  984. X    uflag=FALSE,        /* do underlining */
  985. X    i;
  986. X    char
  987. X    *arg0,            /* the name of this program */
  988. X    line[BUFSIZ],        /* input line */
  989. X    *tname,            /* name of TERM variable */
  990. X    bp[BUFSIZ],        /* buffer used by termcap stuff */
  991. X    buf[BUFSIZ],        /* buffer to place us and ue strings */
  992. X    *area=buf,        /* pointer into buf */
  993. X    *us,*ue,        /* underline start and end strings */
  994. X    *s,
  995. X    *tgetstr(),*getenv();
  996. X
  997. X    /* parse arguments */
  998. X    arg0 = rindex(*argv,'/') ? rindex(*argv,'/')+1 : *argv;
  999. X    while (*++argv)
  1000. X    if (**argv == '-')
  1001. X        switch (*++*argv) {
  1002. X        when 'n':
  1003. X            nflag=TRUE;
  1004. X        wlse:
  1005. X            usage(arg0);
  1006. X        }
  1007. X    else usage(arg0);
  1008. X
  1009. X    /* check for underline ability */
  1010. X    if (!nflag && (tname=getenv("TERM")) && tgetent(bp,tname)==1) {
  1011. X    /* only do if changing to underlining takes no space (I'm lazy) */
  1012. X    uflag= tgetnum("ug") <= 0
  1013. X        && (us=tgetstr("us",&area))
  1014. X        && (ue=tgetstr("ue",&area));
  1015. X    }
  1016. X
  1017. X    /* now portray the strings */
  1018. X    while (fgets(line,BUFSIZ,stdin))
  1019. X    for (i=0;i<4;i++)
  1020. X        for (s= line; *s; s++) {
  1021. X        putouts(*s & 0177,i,uflag,us,ue);
  1022. X        if (s[1])
  1023. X            putchar(' ');
  1024. X        }
  1025. X    exit(0);
  1026. X}
  1027. X
  1028. putouts(ch,i,uflag,us,ue)
  1029. X    int ch,i,uflag;
  1030. X    char *us,*ue;
  1031. X{
  1032. X    int ul,putch();
  1033. X    char *l,*u;
  1034. X
  1035. X    if (ch == '\n')
  1036. X    putchar(ch);
  1037. X    else {
  1038. X    l = character[ch].c[i].line;
  1039. X    u = character[ch].c[i].ulmask;
  1040. X    while (*l) {
  1041. X        if (ul = (uflag && (*l=='_' || *u=='_')))
  1042. X        tputs(us,1,putch);
  1043. X        if (uflag && *l=='_')
  1044. X        putchar(' ');
  1045. X        else
  1046. X        putchar(*l);
  1047. X        if (ul)
  1048. X        tputs(ue,1,putch);
  1049. X        
  1050. X        ++l; ++u;
  1051. X    }
  1052. X    }
  1053. X}
  1054. X
  1055. putch(ch) { putchar(ch); }
  1056. X
  1057. X/* usage -- print usage message and exit */
  1058. usage(arg0)
  1059. X    char *arg0;
  1060. X{
  1061. X    fprintf(stderr,usagem,arg0);
  1062. X    exit(1);
  1063. X}
  1064. END_OF_FILE
  1065. if test 12385 -ne `wc -c <'banner-3/banr.c'`; then
  1066.     echo shar: \"'banner-3/banr.c'\" unpacked with wrong size!
  1067. fi
  1068. # end of 'banner-3/banr.c'
  1069. fi
  1070. if test -f 'banner-5/cursive.c' -a "${1}" != "-c" ; then 
  1071.   echo shar: Will not clobber existing file \"'banner-5/cursive.c'\"
  1072. else
  1073. echo shar: Extracting \"'banner-5/cursive.c'\" \(19392 characters\)
  1074. sed "s/^X//" >'banner-5/cursive.c' <<'END_OF_FILE'
  1075. X/*        CURSIVE SIGNATURE PROGRAM        Version 0.10
  1076. X *              (c) 1985 - Jan Wolter
  1077. X *
  1078. X *  Purpose:    This program translates text into crude cursive script.
  1079. X *        It works on any terminal with a fairly normal character
  1080. X *        set (must have backslashes and underscores and suchlike).
  1081. X *        The font includes all upper and lower case letters, most
  1082. X *        punctuation, and a few symbols.  No numbers are included
  1083. X *        (It's difficult to make a nice italicized set of numbers).
  1084. X *        Cursive was originally written to generate fancy signatures
  1085. X *        for electronic mail messages, but other uses may occur to
  1086. X *        you.  The attractiveness of the font varies greatly with
  1087. X *        the display device.
  1088. X *
  1089. X *  Usage:    If no command line arguments are given, cursive reads the
  1090. X *        text to translate from standard input.  Otherwise the args
  1091. X *        are translated (e.g. "cursive Jan Wolter" prints my name).
  1092. X *        Output is always to standard output.  A couple command line
  1093. X *        arguments are recognized:
  1094. X *
  1095. X *          -in    Sets the amount of space to insert between letters.
  1096. X *            The default is "-i1".  "-i0" gives interesting
  1097. X *            results.
  1098. X *          -tn    Sets the length of the trailing line off the end
  1099. X *            of each word.  The default is "-t1".
  1100. X *
  1101. X *        One character in the text is treated in a special way:
  1102. X *
  1103. X *          '_'   Can be inserted in text to slightly lengthen the
  1104. X *            the spacing between two letters, or add a longer
  1105. X *            tail to the end of a word.
  1106. X *
  1107. X *  Internals:    Unfortunately, the program is a kludge and the font is
  1108. X *        somewhat difficult to edit.  It should be easy to port
  1109. X *        though.  Systems with short integers or unsigned characters
  1110. X *        should be no problem.  You should probably run "xstr" on the
  1111. X *        font.c file, but if you haven't got "xstr", just compiling it
  1112. X *        the usual way works fine.
  1113. X *
  1114. X *  Copyright:    Both the cursive program and the font it generates are
  1115. X *        copyrighted by yours truly.  However, both may be used
  1116. X *        and distributed freely.  You even have my permission to
  1117. X *        sell it, or include in it a system that you sell.  I only
  1118. X *        ask that my name be retained on this program, or any direct
  1119. X *        decendents of this program with approximately the same
  1120. X *        visibility as in this posting.
  1121. X *
  1122. X *  Mail:    I'm interested in any comments you have on this program.
  1123. X *        I can be mailed at "janc@crim.eecs.umich.edu".  Better yet,
  1124. X *        if you are into teleconferencing, call M-Net at (313) 994-6333
  1125. X *        and type "newuser" at the "login:" prompt to give yourself an
  1126. X *        account.  Send mail to janc, or join the "ugames" conference.
  1127. X *
  1128. X *        Have fun,
  1129. X *                  ___                _     __  _
  1130. X *                 (   >              ' )   /   // _/_
  1131. X *                  __/___.  ____      / / / __|/  /  _  __
  1132. X *                 / / (_/|_/ / <__   (_(_/ (_) \_<__</_/ (__
  1133. X *                <_/
  1134. X */
  1135. X
  1136. X#include <stdio.h>
  1137. X
  1138. X
  1139. X/*
  1140. X#include "cursive.h"
  1141. X*/
  1142. X
  1143. X/*****************************************************************************
  1144. X * "cursive.h"                                                               *
  1145. X *****************************************************************************/
  1146. X
  1147. struct letter {
  1148. X    char *line[6];            /* What's on each of the six lines */
  1149. X    char spcs[6];            /* Number of leading spaces for each */
  1150. X    short tailin,tailout;        /* Where the lines in and out go */
  1151. X    };
  1152. X
  1153. X/* Special Codes for Character Table */
  1154. X
  1155. X#define XX  -1        /* Ignore character */
  1156. X#define SP  -2          /* Space */
  1157. X#define ST  -3          /* Extend trailer */
  1158. X#define SA  -4        /* Alternate font number */    /* Not used */
  1159. X#define SN  -5        /* Numbers */            /* Not used */
  1160. X
  1161. X#define CHARWIDTH 10
  1162. X
  1163. extern struct letter list[];
  1164. extern short code1[], code2[];
  1165. X
  1166. char *buffer[6];    /* memory buffers to build up line in */
  1167. int c[6];        /* current index in each of the buffer lines */
  1168. int tail[6];        /* which buffer lines have tails in them */
  1169. int lasttail;        /* which line was the last letter's tail */
  1170. int space;        /* how much white space before the next letter */
  1171. int interspace = 1;    /* how much to spread adjacent letters out */
  1172. int taillen = 1;    /* how long the tails on ends of words should be */
  1173. char firstletter;    /* is this the first letter on the line? */
  1174. char message[256] = "";    /* message to print */
  1175. X
  1176. X/*
  1177. X * end of "cursive.h"
  1178. X */
  1179. X
  1180. char *malloc();
  1181. X
  1182. main(argc,argv)
  1183. int argc;
  1184. char **argv;
  1185. X{
  1186. int i;
  1187. char *s,*m;
  1188. char ch;
  1189. X
  1190. X    m = message;
  1191. X    for (i = 1; i < argc; i++)
  1192. X    {
  1193. X        if (*argv[i] == '-')
  1194. X            switch(ch = argv[i][1])
  1195. X            {
  1196. X            case 'i':
  1197. X            case 't':
  1198. X                s = argv[i]+2;
  1199. X                if (*s == '\000')
  1200. X                    if (++i < argc)
  1201. X                        s = argv[i];
  1202. X                if (*s < '0' || *s > '9')
  1203. X                {
  1204. X                    printf("%s: Illegal value %s\n",
  1205. X                        argv[0],s);
  1206. X                    exit(1);
  1207. X                }
  1208. X                if (ch == 'i')
  1209. X                    interspace = atoi(s);
  1210. X                else
  1211. X                    taillen = atoi(s);
  1212. X                break;
  1213. X            default:
  1214. X                printf("usage: %s [-tn] [-in] message\n",
  1215. X                    argv[0]);
  1216. X                exit(1);
  1217. X            }
  1218. X        else
  1219. X        {
  1220. X            if (m != message)
  1221. X                *(m++) = ' ';
  1222. X            for (s=argv[i]; *s != '\000'; s++)
  1223. X                *(m++) = *s;
  1224. X        }
  1225. X    }
  1226. X    /* Do the deed */
  1227. X    if (m != message)
  1228. X    {
  1229. X        /* Message from the arg list */
  1230. X        *(m++) = 0;
  1231. X        prline(message);
  1232. X    }
  1233. X    else
  1234. X    {
  1235. X        /* Message from standard input */
  1236. X        while (gets(message) != NULL)
  1237. X            prline(message);
  1238. X    }
  1239. X}
  1240. X
  1241. X
  1242. X/* Add the given letter to the end of the current line */
  1243. X
  1244. place(let)
  1245. struct letter *let;
  1246. X{
  1247. int i,j,n;
  1248. int col;
  1249. int max = -10000;
  1250. char pad;
  1251. char *l;
  1252. X
  1253. X    if (firstletter)
  1254. X    {
  1255. X        col = space;        /* Leading spaces */
  1256. X        firstletter = 0;
  1257. X    }
  1258. X    else
  1259. X    {
  1260. X        /* Find the furthest left position we can place this letter */
  1261. X        for(i=0; i<6; i++)
  1262. X        {
  1263. X            if (let->line[i][0] != '\000' &&
  1264. X                (col = c[i] - let->spcs[i]) > max)
  1265. X                max = col;
  1266. X        }
  1267. X
  1268. X        /* Insert some spaces between letters */
  1269. X        col = max + space + interspace;
  1270. X    }
  1271. X
  1272. X    for(i=0; i<6; i++)
  1273. X
  1274. X        /* If Nothing on this Line, Skip It */
  1275. X        if (let->line[i][0] != '\000')
  1276. X        {
  1277. X            /* Number of Spaces to Put on this Line? */
  1278. X            n = col - c[i] + let->spcs[i];
  1279. X
  1280. X            /* Flyers off Ends of Letters */
  1281. X            if (tail[i])
  1282. X                for (j = 0;
  1283. X                     j < 5 && n > space + 2; j++,n--)
  1284. X                    buffer[i][c[i]++] = '_';
  1285. X
  1286. X            /* Connecting Lines Between Letters */
  1287. X            pad = (lasttail == i && let->tailin == i) ? '_' : ' ';
  1288. X
  1289. X            /* In the middle of the intersection of South and */
  1290. X            /* East University, someone is playing the piano. */
  1291. X            for ( ; n > 0; n--)
  1292. X                buffer[i][c[i]++] = pad;
  1293. X
  1294. X            /* Copy in the letter text */
  1295. X            for (l = let->line[i]; *l != '\000'; l++)
  1296. X                buffer[i][c[i]++] = *l;
  1297. X
  1298. X            tail[i] = (i == let->tailout);
  1299. X        }
  1300. X
  1301. X    lasttail = let->tailout;
  1302. X    space = 0;
  1303. X}
  1304. X
  1305. X/* Lengthen the last trailer by n */
  1306. tailer(n)
  1307. int n;
  1308. X{
  1309. int j;
  1310. X    if (lasttail >= 0)
  1311. X        for (j = 0; j < n; j++)
  1312. X            buffer[lasttail][c[lasttail]++] = '_';
  1313. X}
  1314. X
  1315. X/* Handle a line */
  1316. prline(s)
  1317. char *s;
  1318. X{
  1319. int l,i;
  1320. char *ch;
  1321. short lcode;
  1322. X
  1323. X    lasttail = -1;
  1324. X    firstletter = 1;
  1325. X    space = 0;
  1326. X    /* Get some memory to put the output into */
  1327. X    l = strlen(s) * (CHARWIDTH + interspace);
  1328. X    for (i=0;i<6;i++)
  1329. X    {
  1330. X        buffer[i] = malloc((unsigned)l);
  1331. X        tail[i] = c[i] = 0;
  1332. X    }
  1333. X
  1334. X    /* do each letter */
  1335. X    for (ch=s; *ch != '\000'; ch++)
  1336. X    {
  1337. X
  1338. X        *ch &= '\177';
  1339. X        /* Find the letter */
  1340. X        lcode = (lasttail != 2) ? code1[*ch] : code2[*ch];
  1341. X        if (lcode >= 0)
  1342. X            place(&list[lcode]);
  1343. X        else
  1344. X            /* Various Special characters */
  1345. X            switch(lcode)
  1346. X            {
  1347. X            case SP:
  1348. X                /* Insert white space before next letter */
  1349. X                tailer(taillen);
  1350. X                space += 3;
  1351. X                lasttail = -1;
  1352. X                break;
  1353. X            case ST:
  1354. X                /* Lengthen the last tail */
  1355. X                if (lasttail >= 0)
  1356. X                    buffer[lasttail][c[lasttail]++] = '_';
  1357. X                break;
  1358. X            }
  1359. X    }
  1360. X    tailer(taillen);
  1361. X
  1362. X    /* print the line and release the memory */
  1363. X    for (i=0;i<6;i++)
  1364. X    {
  1365. X        buffer[i][c[i]++] = '\n';
  1366. X        write(1,buffer[i],c[i]);
  1367. X        free(buffer[i]);
  1368. X    }
  1369. X}
  1370. X
  1371. X
  1372. X/*****************************************************************************
  1373. X * "font.c"                                                                  *
  1374. X *****************************************************************************/
  1375. X
  1376. X/* CURSIVE FONT FILE
  1377. X *
  1378. X * This font is copyrighted by Jan Wolter.  See notes in "cursive.c".
  1379. X *
  1380. X * Several of the letters are rather ugly, but the wonder is not how
  1381. X * well it sings.  A few uppercase letters are a bit too tall.  The
  1382. X * font has to some extent been chosen to make my name look good to me.
  1383. X * Those of you with different names will have to take pot luck, or fix
  1384. X * it to taste.  Editing this file must be done with some care.  The
  1385. X * numbers on the defines must match the index numbers of the letter
  1386. X * in the list[] structure.  The six numbers after the character are how
  1387. X * many blank spaces must be added to the beginning of each of the six
  1388. X * scan lines to make them line up.  The last two numbers are the scan
  1389. X * line numbers in which the character is connected to the preceeding and
  1390. X * succeeding characters.  -1 means it isn't.  There are two versions of
  1391. X * each lower case letter, one with the line coming in on line 2, and one
  1392. X * with the line coming in on line 3.
  1393. X */
  1394. X
  1395. X/*
  1396. X#include "cursive.h"
  1397. X*/
  1398. X
  1399. struct letter list[] = {
  1400. X
  1401. X#define LA  0        /* a type 1 */ 
  1402. X    { {
  1403. X    "",
  1404. X    "",
  1405. X     "__.",
  1406. X    "(_/|",
  1407. X    "",
  1408. X    ""
  1409. X    },
  1410. X    {0,0,1,0,0,0},
  1411. X    3,3
  1412. X    },
  1413. X
  1414. X#define LB  1        /* b type 1 */
  1415. X    { {
  1416. X    "",
  1417. X      "/",
  1418. X      "/_",
  1419. X    "/_)",
  1420. X    "",
  1421. X    ""
  1422. X    },
  1423. X    {0,2,1,0,0,0},
  1424. X    3,2
  1425. X    },
  1426. X
  1427. X#define LC  2        /* c type 1 */
  1428. X    { {
  1429. X    "",
  1430. X    "",
  1431. X     "_.",
  1432. X    "(_",
  1433. X    "",
  1434. X    ""}
  1435. X    ,
  1436. X    {0,0,1,0,0,0},
  1437. X    3,3
  1438. X    },
  1439. X
  1440. X#define LD  3        /* d type 1 */
  1441. X    { {
  1442. X    "",
  1443. X        "/",
  1444. X     "__/",
  1445. X    "(_/",
  1446. X    "",
  1447. X    ""
  1448. X    },
  1449. X    {0,4,1,0,0,0},
  1450. X    3,3
  1451. X    },
  1452. X
  1453. X#define LE  4        /* e type 1 */
  1454. X    { {
  1455. X    "",
  1456. X    "",
  1457. X     "_",
  1458. X    "</",
  1459. X    "",
  1460. X    ""
  1461. X    },
  1462. X    {0,0,1,0,0,0},
  1463. X    3,3
  1464. X    },
  1465. X
  1466. X#define LF  5        /* f type 1 */
  1467. X    { {
  1468. X    "",
  1469. X        "/)",
  1470. X       "// ",
  1471. X      "//",
  1472. X     "/>",
  1473. X    "</ "
  1474. X    },
  1475. X    {0,4,3,2,1,0},
  1476. X    3,3
  1477. X    },
  1478. X
  1479. X#define LG  6        /* g type 1 */
  1480. X    { {
  1481. X    "",
  1482. X    "",
  1483. X     "_,",
  1484. X    "(_)",
  1485. X     "/|",
  1486. X    "|/"
  1487. X    },
  1488. X    {0,0,1,0,1,0},
  1489. X    3,3
  1490. X    },
  1491. X
  1492. X#define LH  7        /* h type 1 */
  1493. X    { {
  1494. X    "",
  1495. X      "/",
  1496. X     "/_",
  1497. X    "/ /",
  1498. X    "",
  1499. X    ""
  1500. X    },
  1501. X    {0,2,1,0,0,0},
  1502. X    3,3
  1503. X    },
  1504. X
  1505. X#define LI  8        /* i type 1 */
  1506. X    { {
  1507. X    "",
  1508. X    "",
  1509. X     "o",
  1510. X    "<",
  1511. X    "",
  1512. X    ""
  1513. X    },
  1514. X    {0,0,1,0,0,0},
  1515. X    3,3
  1516. X    },
  1517. X
  1518. X#define LJ  9        /* j type 1 */
  1519. X    { {
  1520. X    "",
  1521. X    "",
  1522. X        "o",
  1523. X       "/",
  1524. X      "/",
  1525. X    "-'"
  1526. X    },
  1527. X    {0,0,4,3,2,0},
  1528. X    3,3
  1529. X    },
  1530. X
  1531. X#define LK 10        /* k type 1 */
  1532. X    { {
  1533. X    "",
  1534. X      "/",
  1535. X     "/_ ",
  1536. X    "/ <",
  1537. X    "",
  1538. X    ""
  1539. X    },
  1540. X    {0,2,1,0,0,0},
  1541. X    3,3
  1542. X    },
  1543. X
  1544. X#define LL 11        /* l type 1 */
  1545. X    { {
  1546. X       "_",
  1547. X      "//",
  1548. X     "//",
  1549. X    "</",
  1550. X    "",
  1551. X    ""
  1552. X    },
  1553. X    {3,2,1,0,0,0},
  1554. X    3,3
  1555. X    },
  1556. X
  1557. X#define LM 12        /* m type 1 */
  1558. X    { {
  1559. X    "",
  1560. X    "",
  1561. X     "______",
  1562. X    "/ / / <",
  1563. X    "",
  1564. X    ""
  1565. X    },
  1566. X    {0,0,1,0,0,0},
  1567. X    3,3
  1568. X    },
  1569. X
  1570. X#define LN 13        /* n type 1 */
  1571. X    { {
  1572. X    "",
  1573. X    "",
  1574. X     "____",
  1575. X    "/ / <",
  1576. X    "",
  1577. X    ""
  1578. X    },
  1579. X    {0,0,1,0,0,0},
  1580. X    3,3
  1581. X    },
  1582. X
  1583. X#define LO 14        /* o type 1 */
  1584. X    { {
  1585. X    "",
  1586. X    "",
  1587. X     "_",
  1588. X    "(_)",
  1589. X    "",
  1590. X    ""
  1591. X    },
  1592. X    {0,0,1,0,0,0},
  1593. X    3,2
  1594. X    },
  1595. X
  1596. X#define LP 15        /* p type 1 */
  1597. X    { {
  1598. X    "",
  1599. X    "",
  1600. X       "_",
  1601. X      "/_)",
  1602. X     "/",
  1603. X    "'"
  1604. X    },
  1605. X    {0,0,3,2,1,0},
  1606. X    3,3
  1607. X    },
  1608. X
  1609. X#define LQ 16        /* q type 1 */
  1610. X    { {
  1611. X    "",
  1612. X    "",
  1613. X     "_,",
  1614. X    "(_)",
  1615. X     "/>",
  1616. X    "|/"
  1617. X    },
  1618. X    {0,0,1,0,1,0},
  1619. X    3,3
  1620. X    },
  1621. X
  1622. X#define LR 17        /* r type 1 */
  1623. X    { {
  1624. X    "",
  1625. X    "",
  1626. X     "__",
  1627. X    "/ (",
  1628. X    "",
  1629. X    ""
  1630. X    },
  1631. X    {0,0,1,0,0,0},
  1632. X    3,3
  1633. X    },
  1634. X
  1635. X#define LS 18        /* s type 1 */
  1636. X    { {
  1637. X    "",
  1638. X    "",
  1639. X     "_",
  1640. X    "/_)",
  1641. X    "",
  1642. X    ""
  1643. X    },
  1644. X    {0,0,1,0,0,0},
  1645. X    3,3
  1646. X    },
  1647. X
  1648. X#define LT 19        /* t type 1 */
  1649. X    { {
  1650. X    "",
  1651. X     "_/_",
  1652. X     "/",
  1653. X    "<_",
  1654. X    "",
  1655. X    ""
  1656. X    },
  1657. X    {0,1,1,0,0,0},
  1658. X    3,3
  1659. X    },
  1660. X
  1661. X#define LU 20        /* u type 1 */
  1662. X    { {
  1663. X    "",
  1664. X    "",
  1665. X     ". .",
  1666. X    "(_/",
  1667. X    "",
  1668. X    ""
  1669. X    },
  1670. X    {0,0,1,0,0,0},
  1671. X    3,3
  1672. X    },
  1673. X
  1674. X#define LV 21        /* v type 1 */
  1675. X    { {
  1676. X    "",
  1677. X    "",
  1678. X    ", ",
  1679. X    "\\/",
  1680. X    "",
  1681. X    ""
  1682. X    },
  1683. X    {0,0,0,0,0,0},
  1684. X    3,2
  1685. X    },
  1686. X
  1687. X#define LW 22        /* w type 1 */
  1688. X    { {
  1689. X    "",
  1690. X    "",
  1691. X     ", , ,",
  1692. X    "(_(_/",
  1693. X    "",
  1694. X    ""
  1695. X    },
  1696. X    {0,0,1,0,0,0},
  1697. X    3,3
  1698. X    },
  1699. X
  1700. X#define LX 23        /* x type 1 */
  1701. X    { {
  1702. X    "",
  1703. X    "",
  1704. X     "_.,",
  1705. X    "/ /\\",
  1706. X    "",
  1707. X    ""
  1708. X    },
  1709. X    {0,0,1,0,0,0},
  1710. X    3,3
  1711. X    },
  1712. X
  1713. X#define LY 24        /* y type 1 */
  1714. X    { {
  1715. X    "",
  1716. X    "",
  1717. X     "__  ,",
  1718. X    "/ (_/",
  1719. X       "/",
  1720. X      "'"
  1721. X     },
  1722. X    {0,0,1,0,3,2},
  1723. X    3,3
  1724. X    },
  1725. X
  1726. X#define LZ 25        /* z type 1 */
  1727. X    { {
  1728. X    "",
  1729. X    "",
  1730. X     "__.",
  1731. X    "/  |",
  1732. X      "(|",
  1733. X    ""
  1734. X    },
  1735. X    {0,0,1,0,2,0},
  1736. X    3,3
  1737. X    },
  1738. X
  1739. X#define NA 26        /* a type 2 */
  1740. X    { {
  1741. X    "",
  1742. X    "",
  1743. X     "__.",
  1744. X    "(_/|",
  1745. X    "",
  1746. X    ""
  1747. X    },
  1748. X    {0,0,1,0,0,0},
  1749. X    2,3
  1750. X    },
  1751. X
  1752. X#define NB 27        /* b type 2 */
  1753. X    { {
  1754. X    "",
  1755. X      "/",
  1756. X     "/_",
  1757. X    "/_)",
  1758. X    "",
  1759. X    ""
  1760. X    },
  1761. X    {0,2,1,0,0,0},
  1762. X    2,2
  1763. X    },
  1764. X
  1765. X#define NC 28        /* c type 2 */
  1766. X    { {
  1767. X    "",
  1768. X    "",
  1769. X    "__.",
  1770. X    "(_",
  1771. X    "",
  1772. X    ""
  1773. X    },
  1774. X    {0,0,0,0,0,0},
  1775. X    2,3
  1776. X    },
  1777. X
  1778. X#define ND 29        /* d type 2 */
  1779. X    { {
  1780. X    "",
  1781. X        "/",
  1782. X    "___/",
  1783. X    "(_/",
  1784. X    "",
  1785. X    ""
  1786. X    },
  1787. X    {0,4,0,0,0,0},
  1788. X    2,3
  1789. X    },
  1790. X
  1791. X#define NE 30        /* e type 2 */
  1792. X    { {
  1793. X    "",
  1794. X    "",
  1795. X     "/>",
  1796. X    "(_",
  1797. X    "",
  1798. X    ""
  1799. X    },
  1800. X    {0,0,1,0,0,0},
  1801. X    2,3
  1802. X    },
  1803. X
  1804. X#define NF 31        /* f type 2 */
  1805. X    { {
  1806. X    "",
  1807. X        "/)",
  1808. X       "//",
  1809. X      "/_",
  1810. X     "/>",
  1811. X    "</"
  1812. X    },
  1813. X    {0,4,3,2,1,0},
  1814. X    2,3
  1815. X    },
  1816. X
  1817. X#define NG 32        /* g type 2 */
  1818. X    { {
  1819. X    "",
  1820. X    "",
  1821. X    "__,",
  1822. X    "(_)",
  1823. X     "/|",
  1824. X    "|/"
  1825. X    },
  1826. X    {0,0,0,0,1,0},
  1827. X    2,3
  1828. X    },
  1829. X
  1830. X#define NH 33        /* h type 2 */
  1831. X    { {
  1832. X    "",
  1833. X      "/",
  1834. X     "/_",
  1835. X    "/ /",
  1836. X    "",
  1837. X    ""
  1838. X    },
  1839. X    {0,2,1,0,0,0},
  1840. X    2,3
  1841. X    },
  1842. X
  1843. X#define NI 34        /* i type 2 */
  1844. X    { {
  1845. X    "",
  1846. X    "",
  1847. X     "o",
  1848. X    "<_",
  1849. X    "",
  1850. X    ""
  1851. X    },
  1852. X    {0,0,1,0,0,0},
  1853. X    2,3
  1854. X    },
  1855. X
  1856. X#define NJ 35        /* j type 2 */
  1857. X    { {
  1858. X    "",
  1859. X    "",
  1860. X       "_o",
  1861. X       "/_",
  1862. X      "/",
  1863. X    "-'"
  1864. X    },
  1865. X    {0,0,3,3,2,0},
  1866. X    2,3
  1867. X    },
  1868. X
  1869. X#define NK 36        /* k type 2 */
  1870. X    { {
  1871. X    "",
  1872. X      "/",
  1873. X     "/_",
  1874. X    "/ <",
  1875. X    "",
  1876. X    ""
  1877. X    },
  1878. X    {0,2,1,0,0,0},
  1879. X    2,3
  1880. X    },
  1881. X
  1882. X#define NL 37        /* l type 2 */
  1883. X    { {
  1884. X      "_",
  1885. X     "//",
  1886. X    "|/",
  1887. X     "\\",
  1888. X    "",
  1889. X    ""
  1890. X    },
  1891. X    {2,1,0,1,0,0},
  1892. X    2,3
  1893. X    },
  1894. X
  1895. X#define NM 38        /* m type 2 */
  1896. X    { {
  1897. X    "",
  1898. X    "",
  1899. X    "_______",
  1900. X    "/ / / <",
  1901. X    "",
  1902. X    ""
  1903. X    },
  1904. X    {0,0,0,0,0,0},
  1905. X    2,3
  1906. X    },
  1907. X
  1908. X#define NN 39        /* n type 2 */
  1909. X    { {
  1910. X    "",
  1911. X    "",
  1912. X    "_____",
  1913. X    "/ / <",
  1914. X    "",
  1915. X    ""
  1916. X    },
  1917. X    {0,0,0,0,0,0},
  1918. X    2,3
  1919. X    },
  1920. X
  1921. X#define NO 40        /* o type 2 */
  1922. X    { {
  1923. X    "",
  1924. X    "",
  1925. X    "___",
  1926. X    "(_)",
  1927. X    "",
  1928. X    ""
  1929. X    },
  1930. X    {0,0,0,0,0,0},
  1931. X    2,2
  1932. X    },
  1933. X
  1934. X#define NP 41        /* p type 2 */
  1935. X    { {
  1936. X    "",
  1937. X    "",
  1938. X      "__",
  1939. X      "/_)",
  1940. X     "/",
  1941. X    "'"
  1942. X    },
  1943. X    {0,0,2,2,1,0},
  1944. X    2,3
  1945. X    },
  1946. X
  1947. X#define NQ 42        /* q type 2 */
  1948. X    { {
  1949. X    "",
  1950. X    "",
  1951. X    "__,",
  1952. X    "(_)",
  1953. X     "/>",
  1954. X    "|/"
  1955. X    },
  1956. X    {0,0,0,0,1,0},
  1957. X    2,3
  1958. X    },
  1959. X
  1960. X#define NR 43        /* r type 2 */
  1961. X    { {
  1962. X    "",
  1963. X    "",
  1964. X    ",_",
  1965. X     "(",
  1966. X    "",
  1967. X    ""
  1968. X    },
  1969. X    {0,0,0,1,0,0},
  1970. X    2,3
  1971. X    },
  1972. X
  1973. X#define NS 44        /* s type 2 */
  1974. X    { {
  1975. X    "",
  1976. X    "",
  1977. X    "___ ",
  1978. X     "\\_)_",
  1979. X    "",
  1980. X    ""
  1981. X    },
  1982. X    {0,0,0,1,0,0},
  1983. X    2,3
  1984. X    },
  1985. X
  1986. X#define NT 45        /* t type 2 */
  1987. X    { {
  1988. X    "",
  1989. X     "_/_",
  1990. X    "_/",
  1991. X    "(_",
  1992. X    "",
  1993. X    ""
  1994. X    },
  1995. X    {0,1,0,0,0,0},
  1996. X    2,3
  1997. X    },
  1998. X
  1999. X#define NU 46        /* u type 2 */
  2000. X    { {
  2001. X    "",
  2002. X    "",
  2003. X    "_. .",
  2004. X    "(_/",
  2005. X    "",
  2006. X    ""
  2007. X    },
  2008. X    {0,0,0,0,0,0},
  2009. X    2,3
  2010. X    },
  2011. X
  2012. X#define NV 47        /* v type 2 */
  2013. X    { {
  2014. X    "",
  2015. X    "",
  2016. X    "  .",
  2017. X    "\\/",
  2018. X    "",
  2019. X    ""
  2020. X    },
  2021. X    {0,0,0,0,0,0},
  2022. X    2,3
  2023. X    },
  2024. X
  2025. X#define NW 48        /* w type 2 */
  2026. X    { {
  2027. X    "",
  2028. X    "",
  2029. X    "_, , ,",
  2030. X    "(_(_/",
  2031. X    "",
  2032. X    ""
  2033. X    },
  2034. X    {0,0,0,0,0,0},
  2035. X    2,3
  2036. X    },
  2037. X
  2038. X#define NX 49        /* x type 2 */
  2039. X    { {
  2040. X    "",
  2041. X    "",
  2042. X    "_.,",
  2043. X     "/\\",
  2044. X    "",
  2045. X    ""
  2046. X    },
  2047. X    {0,0,0,1,0,0},
  2048. X    2,3
  2049. X    },
  2050. X
  2051. X#define NY 50        /* y type 2 */
  2052. X    { {
  2053. X    "",
  2054. X    "",
  2055. X    "_  ,",
  2056. X    "(_/__",
  2057. X     "/",
  2058. X    "'"
  2059. X    },
  2060. X    {0,0,0,0,1,0},
  2061. X    2,3
  2062. X    },
  2063. X
  2064. X#define NZ 51        /* z type 2 */
  2065. X    { {
  2066. X    "",
  2067. X    "",
  2068. X    "__.",
  2069. X      "|",
  2070. X     "(|",
  2071. X    ""
  2072. X    },
  2073. X    {0,0,0,2,1,0},
  2074. X    2,3
  2075. X    },
  2076. X
  2077. X#define UA 52        /* A */
  2078. X    { {
  2079. X       "__",
  2080. X      "/  )",
  2081. X     "/--/",
  2082. X    "/  (",
  2083. X    "",
  2084. X    ""
  2085. X    },
  2086. X    {3,2,1,0,0,0},
  2087. X    3,3
  2088. X    },
  2089. X
  2090. X#define UB 53        /* B  */
  2091. X    { {
  2092. X       "__",
  2093. X      "/  )",
  2094. X     "/--<",
  2095. X    "/___/",
  2096. X    "",
  2097. X    ""
  2098. X    },
  2099. X    {3,2,1,0,0,0},
  2100. X    3,3
  2101. X    },
  2102. X
  2103. X#define UC 54        /* C */
  2104. X    { {
  2105. X       "__",
  2106. X      "/  )",
  2107. X     "/",
  2108. X    "(__/",
  2109. X    "",
  2110. X    ""
  2111. X    },
  2112. X    {3,2,1,0,0,0},
  2113. X    -1,-1
  2114. X    },
  2115. X
  2116. X#define UD 55        /* D  */
  2117. X    { {
  2118. X       "__",
  2119. X      "/  )",
  2120. X     "/  /",
  2121. X    "/__/",
  2122. X    "",
  2123. X    ""
  2124. X    },
  2125. X    {3,2,1,0,0,0},
  2126. X    3,3
  2127. X    },
  2128. X
  2129. X#define UE 56        /* E */
  2130. X    { {
  2131. X       "__",
  2132. X      "/  `",
  2133. X     "/--",
  2134. X    "(___,",
  2135. X    "",
  2136. X    ""
  2137. X    },
  2138. X    {3,2,1,0,0,0},
  2139. X    -1,-1
  2140. X    },
  2141. X
  2142. X#define UF 57        /* F */
  2143. X    { {
  2144. X       "_____",
  2145. X       " /  '",
  2146. X     ",-/-,",
  2147. X    "(_/",
  2148. X    "",
  2149. X    ""
  2150. X    },
  2151. X    {3,3,1,0,0,0},
  2152. X    -1,-1
  2153. X    },
  2154. X
  2155. X#define UG 58        /* G */
  2156. X    { {
  2157. X      "()  ,",
  2158. X      "/`-'|",
  2159. X     "/   /",
  2160. X    "/__-<",
  2161. X    "",
  2162. X    ""
  2163. X    },
  2164. X    {2,2,1,0,0,0},
  2165. X    -1,3
  2166. X    },
  2167. X
  2168. X#define UH 59        /* H */
  2169. X    { {
  2170. X     "_    ,",
  2171. X    "' )  /",
  2172. X     "/--/",
  2173. X    "/  (",
  2174. X    "",
  2175. X    ""
  2176. X    },
  2177. X    {1,0,1,0,0,0},
  2178. X    -1,3
  2179. X    },
  2180. X
  2181. X#define UI 60        /* I */
  2182. X    { {
  2183. X         "_",
  2184. X        "| )",
  2185. X    ",---|/",
  2186. X     "\\_/ \\",
  2187. X    "",
  2188. X    ""
  2189. X    },
  2190. X    {5,4,0,1,0,0},
  2191. X    -1,3
  2192. X    },
  2193. X
  2194. X#define UJ 61        /* J */
  2195. X    { {
  2196. X      "___",
  2197. X     "(   >",
  2198. X      "__/",
  2199. X     "/ /",
  2200. X    "<_/",
  2201. X    ""
  2202. X    },
  2203. X    {2,1,2,1,0,0},
  2204. X    -1,2
  2205. X    },
  2206. X
  2207. X#define UK 62        /* K */
  2208. X    { {
  2209. X     "_   ,",
  2210. X    "' ) /",
  2211. X     "/-<",
  2212. X    "/   )",
  2213. X    "",
  2214. X    ""
  2215. X    },
  2216. X    {1,0,1,0,0,0},
  2217. X    -1,-1
  2218. X    },
  2219. X
  2220. X#define UL 63        /* L */
  2221. X    { {
  2222. X       "_",
  2223. X     "_//",
  2224. X     "/",
  2225. X    "/___",
  2226. X    "",
  2227. X    ""
  2228. X    },
  2229. X    {3,1,1,0,0,0},
  2230. X    -1,-1
  2231. X    },
  2232. X
  2233. X#define UM 64        /* M */
  2234. X    { {
  2235. X     "_ _ _",
  2236. X    "' ) ) )",
  2237. X     "/ / /",
  2238. X    "/ ' (",
  2239. X    "",
  2240. X    ""
  2241. X    },
  2242. X    {1,0,1,0,0,0},
  2243. X    -1,3
  2244. X    },
  2245. X
  2246. X#define UN 65        /* N */
  2247. X    { {
  2248. X     "_ __",
  2249. X    "' )  )",
  2250. X     "/  /",
  2251. X    "/  (",
  2252. X    "",
  2253. X    ""
  2254. X    },
  2255. X    {1,0,1,0,0,0},
  2256. X    -1,3
  2257. X    },
  2258. X
  2259. X#define UO 66        /* O */
  2260. X    { {
  2261. X       "__",
  2262. X      "/ ')",
  2263. X     "/  /",
  2264. X    "(__/",
  2265. X    "",
  2266. X    ""
  2267. X    },
  2268. X    {3,2,1,0,0,0},
  2269. X    -1,-1
  2270. X    },
  2271. X
  2272. X#define UP 67        /* P */
  2273. X    { {
  2274. X     "_ __",
  2275. X    "' )  )",
  2276. X     "/--'",
  2277. X    "/",
  2278. X    "",
  2279. X    ""
  2280. X    },
  2281. X    {1,0,1,0,0,0},
  2282. X    -1,-1
  2283. X    },
  2284. X
  2285. X#define UQ 68        /* Q */
  2286. X    { {
  2287. X       "__",
  2288. X      "/  )",
  2289. X     "/  /",
  2290. X    "(_\\/",
  2291. X       "`",
  2292. X    ""
  2293. X    },
  2294. X    {3,2,1,0,3,0},
  2295. X    -1,-1
  2296. X    },
  2297. X
  2298. X#define UR 69        /* R */
  2299. X    { {
  2300. X     "_ __",
  2301. X    "' )  )",
  2302. X     "/--'",
  2303. X    "/  \\",
  2304. X    "",
  2305. X    ""
  2306. X    },
  2307. X    {1,0,1,0,0,0},
  2308. X    -1,3
  2309. X    },
  2310. X
  2311. X#define US 70        /* S */
  2312. X    { {
  2313. X      "()",
  2314. X      "/\\",
  2315. X     "/  )",
  2316. X    "/__/_",
  2317. X    "",
  2318. X    ""
  2319. X    },
  2320. X    {2,2,1,0,0,0},
  2321. X    -1,3
  2322. X    },
  2323. X
  2324. X#define UT 71        /* T */
  2325. X    { {
  2326. X      "______",
  2327. X        "/  ",
  2328. X     "--/",
  2329. X    "(_/",
  2330. X    "",
  2331. X    ""
  2332. X    },
  2333. X    {2,4,1,0,0,0},
  2334. X    -1,-1
  2335. X    },
  2336. X
  2337. X#define UU 72        /* U */
  2338. X    { {
  2339. X     "_    _",
  2340. X    "' )  /",
  2341. X     "/  /",
  2342. X    "(__/",
  2343. X    "",
  2344. X    ""
  2345. X    },
  2346. X    {1,0,1,0,0,0},
  2347. X    -1,0
  2348. X    },
  2349. X
  2350. X#define UV 73        /* V */
  2351. X    { {
  2352. X     "_    ",
  2353. X    "' )  /",
  2354. X     "(  /",
  2355. X      "\\/",
  2356. X    "",
  2357. X    ""
  2358. X    },
  2359. X    {1,0,1,2,0,0},
  2360. X    -1,0
  2361. X    },
  2362. X
  2363. X#define UW 74        /* W */
  2364. X    { {
  2365. X     "_     ",
  2366. X    "' )   /",
  2367. X     "/ / /",
  2368. X    "(_(_/",
  2369. X    "",
  2370. X    ""
  2371. X    },
  2372. X    {1,0,1,0,0,0},
  2373. X    -1,0
  2374. X    },
  2375. X
  2376. X#define UX 75        /* X */
  2377. X    { {
  2378. X     "_   ,",
  2379. X    "' \\ /",
  2380. X       "X",
  2381. X      "/ \\",
  2382. X    "",
  2383. X    ""
  2384. X    },
  2385. X    {1,0,3,2,0,0},
  2386. X    -1,3
  2387. X    },
  2388. X
  2389. X#define UY 76        /* Y */
  2390. X    { {
  2391. X     "_    ,",
  2392. X    "' )  /",
  2393. X     "/  /",
  2394. X    "(__/",
  2395. X     "//",
  2396. X    "(/"
  2397. X    },
  2398. X    {1,0,1,0,1,0},
  2399. X    -1,3
  2400. X    },
  2401. X
  2402. X#define UZ 77        /* Z */
  2403. X    { {
  2404. X    "___",
  2405. X      "/",
  2406. X     "/",
  2407. X    "/__",
  2408. X    "",
  2409. X    ""
  2410. X    },
  2411. X    {0,2,1,0,0,0},
  2412. X    -1,-1
  2413. X    },
  2414. X
  2415. X#define PE 78         /* ! */
  2416. X    { {
  2417. X       "/",
  2418. X      "/",
  2419. X     "'",
  2420. X    "o",
  2421. X    "",
  2422. X    ""
  2423. X    },
  2424. X    {3,2,1,0,0,0},
  2425. X    -1,-1
  2426. X    },
  2427. X
  2428. X#define PU 79        /* " */
  2429. X    { {
  2430. X    "o o",
  2431. X    "' '",
  2432. X    "",
  2433. X    "",
  2434. X    "",
  2435. X    ""
  2436. X    },
  2437. X    {0,0,0,0,0,0},
  2438. X    -1,-1
  2439. X    },
  2440. X
  2441. X#define PX 80        /* # */
  2442. X    { {
  2443. X       "/ /",
  2444. X     "-/-/-",
  2445. X    "-/-/-",
  2446. X    "/ /",
  2447. X    "",
  2448. X    ""
  2449. X    },
  2450. X    {3,1,0,0,0,0},
  2451. X    -1,-1
  2452. X    },
  2453. X
  2454. X#define PK 81        /* $ */
  2455. X    { {
  2456. X      ",-/-",
  2457. X     "(_/",
  2458. X      "/ )",
  2459. X    "-/-'",
  2460. X    "",
  2461. X    ""
  2462. X    },
  2463. X    {2,1,2,0,0,0},
  2464. X    -1,-1
  2465. X    },
  2466. X
  2467. X#define PF 82        /* ' */
  2468. X    { {
  2469. X    "o",
  2470. X    "'",
  2471. X    "",
  2472. X    "",
  2473. X    "",
  2474. X    ""
  2475. X    },
  2476. X    {0,0,0,0,0,0},
  2477. X    -1,-1
  2478. X    },
  2479. X
  2480. X#define PC 83        /* , */
  2481. X    { {
  2482. X    "",
  2483. X    "",
  2484. X    "",
  2485. X    "o",
  2486. X    "'",
  2487. X    ""
  2488. X    },
  2489. X    {0,0,0,0,0,0},
  2490. X    -1,-1
  2491. X    },
  2492. X
  2493. X#define PM 84        /* - */
  2494. X    { {
  2495. X    "",
  2496. X    "",
  2497. X    "---",
  2498. X    "",
  2499. X    "",
  2500. X    ""
  2501. X    },
  2502. X    {0,0,0,0,0,0},
  2503. X    -1,-1
  2504. X    },
  2505. X
  2506. X#define PP 85        /* . */
  2507. X    { {
  2508. X    "",
  2509. X    "",
  2510. X    "",
  2511. X    "o",
  2512. X    "",
  2513. X    ""
  2514. X    },
  2515. X    {0,0,0,0,0,0},
  2516. X    -1,-1
  2517. X    },
  2518. X
  2519. X#define PD 86        /* : */
  2520. X    { {
  2521. X    "",
  2522. X      "o",
  2523. X    "",
  2524. X    "o",
  2525. X    "",
  2526. X    ""
  2527. X    },
  2528. X    {0,2,0,0,0,0},
  2529. X    -1,-1
  2530. X    },
  2531. X
  2532. X#define PS 87        /* ; */
  2533. X    { {
  2534. X    "",
  2535. X      "o",
  2536. X    "",
  2537. X    "o",
  2538. X    "'",
  2539. X    ""
  2540. X    },
  2541. X    {0,2,0,0,0,0},
  2542. X    -1,-1
  2543. X    },
  2544. X
  2545. X#define PQ 88        /* ? */
  2546. X    { {
  2547. X      "__",
  2548. X      "__)",
  2549. X     "/",
  2550. X    "o",
  2551. X    "",
  2552. X    ""
  2553. X    },
  2554. X    {2,2,1,0,0,0},
  2555. X    -1,-1
  2556. X    },
  2557. X
  2558. X#define PB 89        /* ` */
  2559. X    { {
  2560. X    "o",
  2561. X    "`",
  2562. X    "",
  2563. X    "",
  2564. X    "",
  2565. X    ""
  2566. X    },
  2567. X    {0,0,0,0,0,0},
  2568. X    -1,-1
  2569. X    }
  2570. X    };
  2571. X
  2572. short code1[] = {
  2573. X     /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15 */
  2574. X    XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
  2575. X    XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
  2576. X    SP, PE, PU, PX, PK, XX, XX, PF, XX, XX, XX, XX, PC, PM, PP, XX,
  2577. X    SN, SN, SN, SN, SN, SN, SN, SN, SN, SN, PD, PS, XX, XX, XX, PQ,
  2578. X    XX, UA, UB, UC, UD, UE, UF, UG, UH, UI, UJ, UK, UL, UM, UN, UO,
  2579. X    UP, UQ, UR, US, UT, UU, UV, UW, UX, UY, UZ, XX, XX, XX, XX, ST,
  2580. X    PB, LA, LB, LC, LD, LE, LF, LG, LH, LI, LJ, LK, LL, LM, LN, LO,
  2581. X    LP, LQ, LR, LS, LT, LU, LV, LW, LX, LY, LZ, XX, XX, XX, XX, XX };
  2582. X
  2583. short code2[] = {
  2584. X     /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15 */
  2585. X    XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
  2586. X    XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
  2587. X    SP, PE, PU, PX, PK, XX, XX, PF, XX, XX, XX, XX, PC, PM, PP, XX,
  2588. X    SN, SN, SN, SN, SN, SN, SN, SN, SN, SN, PD, PS, XX, XX, XX, PQ,
  2589. X    XX, UA, UB, UC, UD, UE, UF, UG, UH, UI, UJ, UK, UL, UM, UN, UO,
  2590. X    UP, UQ, UR, US, UT, UU, UV, UW, UX, UY, UZ, XX, XX, XX, XX, ST,
  2591. X    PB, NA, NB, NC, ND, NE, NF, NG, NH, NI, NJ, NK, NL, NM, NN, NO,
  2592. X    NP, NQ, NR, NS, NT, NU, NV, NW, NX, NY, NZ, XX, XX, XX, XX, XX };
  2593. X/*
  2594. X * end of "font.c"
  2595. X */
  2596. END_OF_FILE
  2597. if test 19392 -ne `wc -c <'banner-5/cursive.c'`; then
  2598.     echo shar: \"'banner-5/cursive.c'\" unpacked with wrong size!
  2599. fi
  2600. # end of 'banner-5/cursive.c'
  2601. fi
  2602. if test -f 'banner-5/kbandat.c' -a "${1}" != "-c" ; then 
  2603.   echo shar: Will not clobber existing file \"'banner-5/kbandat.c'\"
  2604. else
  2605. echo shar: Extracting \"'banner-5/kbandat.c'\" \(15981 characters\)
  2606. sed "s/^X//" >'banner-5/kbandat.c' <<'END_OF_FILE'
  2607. X/********************************************************/
  2608. X/*                            */
  2609. X/*    SEMI's BANNER ( DATA FILE for Ver 1.21- )    */
  2610. X/*                            */
  2611. X/********************************************************/
  2612. X
  2613. X#define    MAX_LEN     256            /* maximum length of inputed string */
  2614. X#define    WIDTH      13            /* vertical width of characters */
  2615. X#define    _WIDTH      14            /*    -- in even number */
  2616. X#define    KOR_LEN    1024            /* 2^( the length of Korean ) */
  2617. X
  2618. X#define    CMD_CHR    '/'    /* character for mode change, toggle of Korean mode */
  2619. X
  2620. X#define    Eng_Ptn     1    /* the number of pattern-series of English */
  2621. X#define    Eng_Num    95    /* the number of English Alphabets */
  2622. X
  2623. char    eng_chr[] = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!?@#$%^&*=+-_~`'\"()[]{}<>:;.,/\\|";
  2624. X
  2625. short    stepspace = 1;    /* set space steps between characters */
  2626. X
  2627. X#define    N_MODE    1    /* the number of modes, cmodes */
  2628. X#define    N_CMODE    6
  2629. X#define    MODE    0    /* the initial value for mode, cmode */
  2630. X#define    CMODE    0
  2631. X
  2632. char    mod_chr[] = ".+";    /* character determining mode(English pattern) */
  2633. short    mode = MODE;
  2634. char    font_choice[][ 5 ] =    /* fonts for 0, 1, 2, 3 value each */
  2635. X    { " .'|", " .\"!", " _\"O", "#\". ", "O\"_ ", "|'_ " };
  2636. short    cmode = CMODE;
  2637. X
  2638. X#define    Fir_Ptn     6    /*   - Korean consonants in the 1st location */
  2639. X#define    Fir_Num    19
  2640. X#define    Sec_Ptn     2    /*     - vouelles */
  2641. X#define Sec_Num    21
  2642. X#define    Thi_Ptn     1    /*     - consonants in the last location */
  2643. X#define    Thi_Num    27
  2644. X
  2645. char    *kor_key[] =    /* FIRST, SECOND, THIRD in keyboard */
  2646. X    { "rsefaqtdwczxvgREQTW", "koiOjpuPlhhhhynnnnbmm", "rrRssseffffffffaqqtTdwczxvg" };
  2647. X
  2648. short    eng_fnt[ Eng_Ptn ][ Eng_Num ][ WIDTH+1 ] =    /* English fonts */
  2649. X{{{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 },        /* SPACE */
  2650. X  { 16, 16, 56, 56, 76, 76, 124, 134, 134, 463, 0, 0, 511, 512 },    /* A */
  2651. X  { 504, 204, 198, 198, 252, 198, 195, 195, 198, 508, 0, 0, 511, 512 },
  2652. X  { 122, 454, 386, 768, 768, 768, 768, 385, 450, 124, 0, 0, 1023, 1024 },
  2653. X  { 504, 204, 198, 198, 195, 195, 195, 195, 198, 508, 0, 0, 511, 512 },
  2654. X  { 510, 194, 192, 200, 248, 200, 192, 192, 193, 511, 0, 0, 511, 512 },
  2655. X  { 255, 97, 96, 100, 124, 100, 96, 96, 96, 240, 0, 0, 255, 256 },
  2656. X  { 122, 454, 386, 768, 768, 783, 774, 390, 454, 122, 0, 0, 1023, 1024 },
  2657. X  { 975, 390, 390, 390, 510, 390, 390, 390, 390, 975, 0, 0, 1023, 1024 },
  2658. X  { 15, 6, 6, 6, 6, 6, 6, 6, 6, 15, 0, 0, 15, 16 },
  2659. X  { 15, 6, 6, 6, 6, 6, 6, 6, 102, 108, 56, 0, 127, 128 },
  2660. X  { 486, 196, 200, 208, 240, 216, 204, 204, 198, 487, 0, 0, 511, 512 },
  2661. X  { 480, 192, 192, 192, 192, 192, 192, 192, 193, 511, 0, 0, 511, 512 },
  2662. X  { 903, 390, 462, 462, 462, 374, 374, 294, 294, 943, 0, 0, 1023, 1024 },
  2663. X  { 391, 194, 226, 162, 178, 154, 142, 142, 134, 450, 0, 0, 511, 512 },
  2664. X  { 124, 460, 390, 774, 771, 771, 771, 387, 454, 124, 0, 0, 1023, 1024 },
  2665. X  { 252, 102, 99, 99, 99, 126, 96, 96, 96, 240, 0, 0, 255, 256 },
  2666. X  { 124, 460, 390, 774, 771, 771, 787, 393, 198, 123, 0, 0, 1023, 1024 },
  2667. X  { 504, 204, 198, 198, 252, 200, 196, 198, 199, 482, 0, 0, 511, 512 },
  2668. X  { 122, 198, 194, 240, 124, 30, 7, 259, 390, 380, 0, 0, 511, 512 },
  2669. X  { 255, 153, 24, 24, 24, 24, 24, 24, 24, 60, 0, 0, 255, 256 },
  2670. X  { 487, 194, 194, 194, 194, 194, 194, 194, 100, 56, 0, 0, 511, 512 },
  2671. X  { 487, 194, 194, 100, 100, 100, 56, 56, 16, 16, 0, 0, 511, 512 },
  2672. X  { 7655, 3266, 3266, 1636, 1636, 1636, 952, 952, 272, 272, 0, 0, 8191, 8192 },
  2673. X  { 247, 98, 52, 52, 24, 24, 44, 44, 70, 199, 0, 0, 255, 256 },
  2674. X  { 247, 98, 52, 52, 24, 24, 24, 24, 24, 60, 0, 0, 255, 256 },
  2675. X  { 510, 262, 12, 24, 48, 48, 96, 192, 385, 511, 0, 0, 511, 512 },
  2676. X
  2677. X  { 0, 0, 0, 60, 102, 14, 54, 102, 103, 58, 0, 0, 127, 128 },        /* a */
  2678. X  { 224, 96, 96, 110, 115, 99, 97, 97, 98, 60, 0, 0, 255, 256 },
  2679. X  { 0, 0, 0, 30, 35, 96, 96, 96, 49, 30, 0, 0, 127, 128 },
  2680. X  { 14, 6, 6, 54, 78, 134, 134, 198, 206, 119, 0, 0, 255, 256 },
  2681. X  { 0, 0, 0, 30, 35, 127, 96, 96, 49, 30, 0, 0, 127, 128 },
  2682. X  { 6, 11, 24, 60, 24, 24, 24, 24, 24, 60, 0, 0, 63, 64 },
  2683. X  { 0, 0, 0, 29, 54, 54, 28, 16, 62, 31, 33, 126, 60, 128 },
  2684. X  { 224, 96, 96, 108, 118, 102, 102, 102, 102, 247, 0, 0, 255, 256 },
  2685. X  { 6, 6, 0, 14, 6, 6, 6, 6, 6, 15, 0, 0, 15, 16 },
  2686. X  { 3, 3, 0, 7, 3, 3, 3, 3, 3, 3, 3, 26, 12, 32 },
  2687. X  { 224, 96, 96, 102, 100, 104, 120, 108, 102, 247, 0, 0, 255, 256 },
  2688. X  { 14, 6, 6, 6, 6, 6, 6, 6, 6, 15, 0, 0, 15, 16 },
  2689. X  { 0, 0, 0, 876, 438, 438, 438, 438, 438, 951, 0, 0, 1023, 1024 },
  2690. X  { 0, 0, 0, 220, 102, 102, 102, 102, 102, 247, 0, 0, 255, 256 },
  2691. X  { 0, 0, 0, 28, 38, 99, 99, 99, 51, 30, 0, 0, 127, 128 },
  2692. X  { 0, 0, 0, 238, 115, 99, 97, 97, 98, 124, 96, 96, 240, 256 },
  2693. X  { 0, 0, 0, 58, 70, 134, 134, 198, 206, 118, 6, 6, 15, 256 },
  2694. X  { 0, 0, 0, 118, 59, 48, 48, 48, 48, 120, 0, 0, 127, 128 },
  2695. X  { 0, 0, 0, 30, 50, 56, 12, 39, 51, 46, 0, 0, 63, 64 },
  2696. X  { 0, 4, 12, 30, 12, 12, 12, 12, 13, 6, 0, 0, 31, 32 },
  2697. X  { 0, 0, 0, 238, 102, 102, 102, 102, 102, 59, 0, 0, 255, 256 },
  2698. X  { 0, 0, 0, 247, 98, 50, 52, 28, 24, 8, 0, 0, 255, 256 },
  2699. X  { 0, 0, 0, 1911, 818, 818, 476, 476, 136, 136, 0, 0, 2047, 2048 },
  2700. X  { 0, 0, 0, 119, 50, 28, 8, 28, 38, 103, 0, 0, 127, 128 },
  2701. X  { 0, 0, 0, 247, 98, 50, 52, 28, 24, 8, 16, 208, 96, 256 },
  2702. X  { 0, 0, 0, 126, 70, 12, 24, 48, 97, 127, 0, 0, 127, 128 },
  2703. X  { 0, },    /* 0 */
  2704. X  { 0, },
  2705. X  { 0, },
  2706. X  { 0, },
  2707. X  { 0, },
  2708. X  { 0, },
  2709. X  { 0, },
  2710. X  { 0, },
  2711. X  { 0, },
  2712. X  { 0, },
  2713. X  { 0, },
  2714. X  { 2, 7, 7, 7, 7, 2, 2, 2, 0, 2, 7, 2, 0, 8 },
  2715. X},}
  2716. X;
  2717. X
  2718. short    fir_fnt[ Fir_Ptn ][ Fir_Num ][ WIDTH ] =    /* first ( Korean ) */
  2719. X
  2720. X{{{ 992, 32, 32, 32, 32, 32, 64, 64, 64, 128, 128, 256, 512 },    /* Ab */
  2721. X  { 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 992 },
  2722. X  { 992, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 992 },
  2723. X  { 992, 32, 32, 32, 32, 32, 992, 512, 512, 512, 512, 512, 992 },
  2724. X  { 992, 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, 992 },
  2725. X  { 544, 544, 544, 544, 544, 544, 992, 544, 544, 544, 544, 544, 992 },
  2726. X  { 128, 128, 128, 128, 128, 320, 320, 320, 320, 544, 544, 544, 544 },
  2727. X  { 128, 320, 320, 544, 544, 544, 544, 544, 544, 544, 320, 320, 128 },
  2728. X  { 992, 128, 128, 128, 128, 320, 320, 320, 320, 544, 544, 544, 544 },
  2729. X  { 128, 128, 992, 128, 128, 128, 128, 320, 320, 320, 544, 544, 544 },
  2730. X  { 992, 32, 32, 32, 992, 32, 64, 64, 64, 128, 128, 256, 512 },
  2731. X  { 992, 512, 512, 512, 512, 512, 992, 512, 512, 512, 512, 512, 992 },
  2732. X  { 992, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 992 },
  2733. X  { 128, 128, 992, 0, 0, 128, 320, 544, 544, 544, 544, 320, 128 },
  2734. X  { 864, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 576 },
  2735. X  { 864, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 864 },
  2736. X  { 672, 672, 672, 672, 672, 672, 992, 672, 672, 672, 672, 672, 992 },
  2737. X  { 320, 320, 320, 320, 320, 320, 320, 672, 672, 672, 672, 672, 672 },
  2738. X  { 992, 320, 320, 320, 320, 320, 320, 672, 672, 672, 672, 672, 672 } },
  2739. X
  2740. X {{ 1022, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0 },        /* Al */
  2741. X  { 512, 512, 512, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0 },
  2742. X  { 1022, 512, 512, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0 },
  2743. X  { 1022, 2, 1022, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0 },
  2744. X  { 1022, 514, 514, 514, 514, 1022, 0, 0, 0, 0, 0, 0, 0 },
  2745. X  { 514, 514, 1022, 514, 514, 1022, 0, 0, 0, 0, 0, 0, 0 },
  2746. X  { 32, 32, 80, 136, 260, 514, 0, 0, 0, 0, 0, 0, 0 },
  2747. X  { 248, 260, 514, 514, 260, 248, 0, 0, 0, 0, 0, 0, 0 },
  2748. X  { 1022, 32, 80, 136, 260, 514, 0, 0, 0, 0, 0, 0, 0 },
  2749. X  { 32, 1022, 32, 80, 136, 774, 0, 0, 0, 0, 0, 0, 0 },
  2750. X  { 1022, 2, 2, 1022, 2, 2, 0, 0, 0, 0, 0, 0, 0 },
  2751. X  { 1022, 512, 1022, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0 },
  2752. X  { 1022, 136, 136, 136, 136, 1022, 0, 0, 0, 0, 0, 0, 0 },
  2753. X  { 32, 1022, 0, 508, 514, 508, 0, 0, 0, 0, 0, 0, 0 },
  2754. X  { 990, 66, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0 },
  2755. X  { 990, 528, 528, 528, 528, 990, 0, 0, 0, 0, 0, 0, 0 },
  2756. X  { 594, 594, 990, 594, 594, 990, 0, 0, 0, 0, 0, 0, 0 },
  2757. X  { 136, 136, 136, 340, 340, 546, 0, 0, 0, 0, 0, 0, 0 },
  2758. X  { 1022, 136, 136, 340, 340, 546, 0, 0, 0, 0, 0, 0, 0 } },
  2759. X
  2760. X {{ 992, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0 },        /* Alb */
  2761. X  { 512, 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0 },
  2762. X  { 992, 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0 },
  2763. X  { 992, 32, 992, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0 },
  2764. X  { 992, 544, 544, 544, 544, 992, 0, 0, 0, 0, 0, 0, 0 },
  2765. X  { 544, 544, 992, 544, 544, 992, 0, 0, 0, 0, 0, 0, 0 },
  2766. X  { 128, 128, 320, 320, 544, 544, 0, 0, 0, 0, 0, 0, 0 },
  2767. X  { 128, 320, 544, 544, 320, 128, 0, 0, 0, 0, 0, 0, 0 },
  2768. X  { 992, 128, 128, 320, 320, 544, 0, 0, 0, 0, 0, 0, 0 },
  2769. X  { 128, 992, 128, 128, 320, 544, 0, 0, 0, 0, 0, 0, 0 },
  2770. X  { 992, 32, 32, 992, 32, 32, 0, 0, 0, 0, 0, 0, 0 },
  2771. X  { 992, 512, 992, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0 },
  2772. X  { 992, 320, 320, 320, 320, 992, 0, 0, 0, 0, 0, 0, 0 },
  2773. X  { 128, 992, 0, 448, 544, 448, 0, 0, 0, 0, 0, 0, 0 }, 
  2774. X  { 864, 288, 288, 288, 288, 288, 0, 0, 0, 0, 0, 0, 0 },
  2775. X  { 864, 576, 576, 576, 576, 864, 0, 0, 0, 0, 0, 0, 0 },
  2776. X  { 672, 672, 992, 672, 672, 992, 0, 0, 0, 0, 0, 0, 0 },
  2777. X  { 320, 320, 320, 672, 672, 672, 0, 0, 0, 0, 0, 0, 0 },
  2778. X  { 992, 320, 320, 320, 672, 672, 0, 0, 0, 0, 0, 0, 0 } },
  2779. X
  2780. X {{ 992, 32, 32, 64, 64, 128, 768, 0, 0, 0, 0, 0, 0 },    /* AbA */
  2781. X  { 512, 512, 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0 },
  2782. X  { 992, 512, 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0 },
  2783. X  { 992, 32, 32, 992, 512, 512, 992, 0, 0, 0, 0, 0, 0 },
  2784. X  { 992, 544, 544, 544, 544, 544, 992, 0, 0, 0, 0, 0, 0 },
  2785. X  { 544, 544, 544, 992, 544, 544, 992, 0, 0, 0, 0, 0, 0 },
  2786. X  { 128, 128, 128, 320, 320, 544, 544, 0, 0, 0, 0, 0, 0 },
  2787. X  { 128, 320, 544, 544, 544, 320, 128, 0, 0, 0, 0, 0, 0 },
  2788. X  { 992, 128, 128, 320, 320, 544, 544, 0, 0, 0, 0, 0, 0 },
  2789. X  { 128, 992, 128, 128, 320, 320, 544, 0, 0, 0, 0, 0, 0 },
  2790. X  { 992, 32, 992, 32, 64, 128, 768, 0, 0, 0, 0, 0, 0 },
  2791. X  { 992, 512, 512, 992, 512, 512, 992, 0, 0, 0, 0, 0, 0 },
  2792. X  { 992, 320, 320, 320, 320, 320, 992, 0, 0, 0, 0, 0, 0 },
  2793. X  { 128, 992, 0, 448, 544, 544, 448, 0, 0, 0, 0, 0, 0 },
  2794. X  { 864, 288, 288, 288, 288, 288, 576, 0, 0, 0, 0, 0, 0 },
  2795. X  { 864, 576, 576, 576, 576, 576, 864, 0, 0, 0, 0, 0, 0 },
  2796. X  { 672, 672, 672, 992, 672, 672, 992, 0, 0, 0, 0, 0, 0 },
  2797. X  { 320, 320, 320, 672, 672, 672, 672, 0, 0, 0, 0, 0, 0 },
  2798. X  { 992, 320, 320, 320, 672, 672, 672, 0, 0, 0, 0, 0, 0 } },
  2799. X
  2800. X {{ 1022, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0 },        /* AlA */
  2801. X  { 512, 512, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  2802. X  { 1022, 512, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  2803. X  { 1022, 2, 1022, 512, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  2804. X  { 1022, 514, 514, 514, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  2805. X  { 514, 514, 1022, 514, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  2806. X  { 32, 80, 136, 260, 514, 0, 0, 0, 0, 0, 0, 0, 0 },
  2807. X  { 112, 396, 514, 396, 112, 0, 0, 0, 0, 0, 0, 0, 0 },
  2808. X  { 1022, 32, 80, 136, 774, 0, 0, 0, 0, 0, 0, 0, 0 },
  2809. X  { 32, 1022, 32, 216, 774, 0, 0, 0, 0, 0, 0, 0, 0 },
  2810. X  { 1022, 2, 1022, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
  2811. X  { 1022, 512, 1022, 512, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  2812. X  { 1022, 136, 136, 136, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  2813. X  { 32, 1022, 508, 514, 508, 0, 0, 0, 0, 0, 0, 0, 0 }, 
  2814. X  { 990, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0 },
  2815. X  { 990, 528, 528, 528, 990, 0, 0, 0, 0, 0, 0, 0, 0 },
  2816. X  { 594, 594, 990, 594, 990, 0, 0, 0, 0, 0, 0, 0, 0 },
  2817. X  { 136, 136, 340, 340, 546, 0, 0, 0, 0, 0, 0, 0, 0 },
  2818. X  { 1022, 136, 136, 340, 546, 0, 0, 0, 0, 0, 0, 0, 0 } },
  2819. X
  2820. X {{ 992, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0 },    /* AlbA */
  2821. X  { 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  2822. X  { 992, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  2823. X  { 992, 32, 992, 512, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  2824. X  { 992, 544, 544, 544, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  2825. X  { 544, 544, 992, 544, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  2826. X  { 128, 128, 320, 320, 544, 0, 0, 0, 0, 0, 0, 0, 0 },
  2827. X  { 448, 544, 544, 544, 448, 0, 0, 0, 0, 0, 0, 0, 0 },
  2828. X  { 992, 128, 128, 320, 544, 0, 0, 0, 0, 0, 0, 0, 0 },
  2829. X  { 128, 992, 128, 320, 544, 0, 0, 0, 0, 0, 0, 0, 0 },
  2830. X  { 992, 32, 992, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0 },
  2831. X  { 992, 512, 992, 512, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  2832. X  { 992, 320, 320, 320, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  2833. X  { 128, 992, 448, 544, 448, 0, 0, 0, 0, 0, 0, 0, 0 },
  2834. X  { 864, 288, 288, 288, 288, 0, 0, 0, 0, 0, 0, 0, 0 },
  2835. X  { 864, 576, 576, 576, 864, 0, 0, 0, 0, 0, 0, 0, 0 },
  2836. X  { 672, 672, 992, 672, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  2837. X  { 320, 320, 320, 672, 672, 0, 0, 0, 0, 0, 0, 0, 0 },
  2838. X  { 992, 320, 320, 672, 672, 0, 0, 0, 0, 0, 0, 0, 0 } } }
  2839. X    ;
  2840. X
  2841. short    sec_fnt[ Sec_Ptn ][ Sec_Num ][ WIDTH ] =    /* second ( Korean ) */
  2842. X
  2843. X{{{ 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2 },        /* Wb, Wl, Wlb */
  2844. X  { 10, 10, 10, 10, 10, 10, 14, 10, 10, 10, 10, 10, 10 },
  2845. X  { 2, 2, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2, 2 },
  2846. X  { 10, 10, 10, 10, 14, 10, 10, 10, 14, 10, 10, 10, 10 },
  2847. X  { 2, 2, 2, 2, 2, 2, 14, 2, 2, 2, 2, 2, 2 },
  2848. X  { 10, 10, 10, 10, 10, 10, 58, 10, 10, 10, 10, 10, 10 },
  2849. X  { 2, 2, 2, 2, 14, 2, 2, 2, 14, 2, 2, 2, 2 },
  2850. X  { 10, 10, 10, 10, 58, 10, 10, 10, 58, 10, 10, 10, 10 },
  2851. X  { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
  2852. X  { 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 1022 },
  2853. X  { 2, 2, 2, 2, 2, 2, 3, 130, 130, 130, 130, 130, 994 },
  2854. X  { 10, 10, 10, 10, 10, 10, 14, 138, 138, 138, 138, 138, 1002 },
  2855. X  { 2, 2, 2, 2, 2, 2, 2, 130, 130, 130, 130, 130, 994 },
  2856. X  { 0, 0, 0, 0, 0, 0, 0, 136, 136, 136, 136, 136, 1022 },
  2857. X  { 0, 0, 0, 0, 0, 0, 0, 1022, 32, 32, 32, 32, 32 },
  2858. X  { 2, 2, 2, 2, 2, 2, 2, 994, 130, 130, 142, 130, 130 },
  2859. X  { 10, 10, 10, 10, 10, 10, 10, 1002, 138, 138, 186, 138, 138 },
  2860. X  { 2, 2, 2, 2, 2, 2, 2, 994, 130, 130, 130, 130, 130 },
  2861. X  { 0, 0, 0, 0, 0, 0, 0, 1022, 136, 136, 136, 136, 136 },
  2862. X  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1022 },
  2863. X  { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 994 } },
  2864. X
  2865. X {{ 2, 2, 2, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0 },        /* WbW, WlW, WlbW */
  2866. X  { 10, 10, 10, 14, 10, 10, 10, 0, 0, 0, 0, 0, 0 },
  2867. X  { 2, 2, 3, 2, 3, 2, 2, 0, 0, 0, 0, 0, 0 },
  2868. X  { 10, 10, 14, 10, 14, 10, 10, 0, 0, 0, 0, 0, 0 },
  2869. X  { 2, 2, 2, 14, 2, 2, 2, 0, 0, 0, 0, 0, 0 },
  2870. X  { 10, 10, 10, 58, 10, 10, 10, 0, 0, 0, 0, 0, 0 },
  2871. X  { 2, 2, 14, 2, 14, 2, 2, 0, 0, 0, 0, 0, 0 },
  2872. X  { 10, 10, 58, 10, 58, 10, 10, 0, 0, 0, 0, 0, 0 },
  2873. X  { 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0 },
  2874. X  { 0, 0, 0, 0, 32, 32, 1022, 0, 0, 0, 0, 0, 0 },
  2875. X  { 2, 2, 2, 3, 130, 130, 994, 0, 0, 0, 0, 0, 0 },
  2876. X  { 10, 10, 10, 14, 138, 138, 1002, 0, 0, 0, 0, 0, 0 },
  2877. X  { 2, 2, 2, 2, 130, 130, 994, 0, 0, 0, 0, 0, 0 },
  2878. X  { 0, 0, 0, 0, 136, 136, 1022, 0, 0, 0, 0, 0, 0 },
  2879. X  { 0, 0, 0, 0, 0, 0, 1022, 32, 32, 0, 0, 0, 0 },
  2880. X  { 2, 2, 2, 14, 2, 2, 994, 130, 130, 0, 0, 0, 0 },
  2881. X  { 10, 10, 10, 58, 10, 10, 1002, 138, 138, 0, 0, 0, 0 },
  2882. X  { 2, 2, 2, 2, 2, 2, 994, 130, 130, 0, 0, 0, 0 },
  2883. X  { 0, 0, 0, 0, 0, 0, 1022, 136, 136, 0, 0, 0, 0 },
  2884. X  { 0, 0, 0, 0, 0, 0, 1022, 0, 0, 0, 0, 0, 0 },
  2885. X  { 2, 2, 2, 2, 2, 2, 994, 0, 0, 0, 0, 0, 0 } } }
  2886. X    ;
  2887. X
  2888. short    thi_fnt[ Thi_Ptn ][ Thi_Num ][ WIDTH ] =    /* third ( Korean ) */
  2889. X
  2890. X{{{ 0, 0, 0, 0, 0, 0, 0, 0, 1022, 2, 2, 2, 2 },        /* WbA, WlA, WlbA */
  2891. X  { 0, 0, 0, 0, 0, 0, 0, 0, 968, 72, 84, 84, 98 },
  2892. X  { 0, 0, 0, 0, 0, 0, 0, 0, 990, 66, 66, 66, 66 },
  2893. X  { 0, 0, 0, 0, 0, 0, 0, 0, 512, 512, 512, 512, 1022 },
  2894. X  { 0, 0, 0, 0, 0, 0, 0, 0, 574, 520, 520, 532, 994 },
  2895. X  { 0, 0, 0, 0, 0, 0, 0, 0, 520, 574, 540, 546, 988 },
  2896. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 512, 512, 512, 1022 },
  2897. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 2, 1022, 512, 1022 },
  2898. X  { 0, 0, 0, 0, 0, 0, 0, 0, 990, 66, 962, 514, 962 },
  2899. X  { 0, 0, 0, 0, 0, 0, 0, 0, 990, 82, 978, 530, 990 },
  2900. X  { 0, 0, 0, 0, 0, 0, 0, 0, 978, 82, 990, 530, 990 },
  2901. X  { 0, 0, 0, 0, 0, 0, 0, 0, 968, 72, 980, 532, 994 },
  2902. X  { 0, 0, 0, 0, 0, 0, 0, 0, 990, 80, 990, 528, 990 },
  2903. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 84, 980, 532, 1022 },
  2904. X  { 0, 0, 0, 0, 0, 0, 0, 0, 968, 126, 988, 546, 988 },
  2905. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 514, 514, 514, 1022 },
  2906. X  { 0, 0, 0, 0, 0, 0, 0, 0, 514, 514, 1022, 514, 1022 },
  2907. X  { 0, 0, 0, 0, 0, 0, 0, 0, 584, 584, 980, 596, 994 },
  2908. X  { 0, 0, 0, 0, 0, 0, 0, 0, 32, 80, 136, 260, 514 },
  2909. X  { 0, 0, 0, 0, 0, 0, 0, 0, 136, 136, 340, 340, 546 },
  2910. X  { 0, 0, 0, 0, 0, 0, 0, 0, 248, 260, 514, 260, 248 },
  2911. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 32, 80, 136, 774 },
  2912. X  { 0, 0, 0, 0, 0, 0, 0, 0, 32, 1022, 80, 136, 774 },
  2913. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 2, 1022, 2, 2 },
  2914. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 512, 1022, 512, 1022 },
  2915. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 136, 136, 136, 1022 },
  2916. X  { 0, 0, 0, 0, 0, 0, 0, 0, 32, 1022, 508, 514, 508 } } }
  2917. X    ;
  2918. X
  2919. END_OF_FILE
  2920. echo shar: 30 control characters may be missing from \"'banner-5/kbandat.c'\"
  2921. if test 15981 -ne `wc -c <'banner-5/kbandat.c'`; then
  2922.     echo shar: \"'banner-5/kbandat.c'\" unpacked with wrong size!
  2923. fi
  2924. # end of 'banner-5/kbandat.c'
  2925. fi
  2926. if test -f 'banner-9/data.c' -a "${1}" != "-c" ; then 
  2927.   echo shar: Will not clobber existing file \"'banner-9/data.c'\"
  2928. else
  2929. echo shar: Extracting \"'banner-9/data.c'\" \(19204 characters\)
  2930. sed "s/^X//" >'banner-9/data.c' <<'END_OF_FILE'
  2931. char *data[][10] = {
  2932. X    { /* ^@ */
  2933. X        "", "", "", "", "", "", "", "", "", "",
  2934. X    },
  2935. X    { /* ^A */
  2936. X        "", "", "", "", "", "", "", "", "", "",
  2937. X    },
  2938. X    { /* ^B */
  2939. X        "", "", "", "", "", "", "", "", "", "",
  2940. X    },
  2941. X    { /* ^C */
  2942. X        "", "", "", "", "", "", "", "", "", "",
  2943. X    },
  2944. X    { /* ^D */
  2945. X        "", "", "", "", "", "", "", "", "", "",
  2946. X    },
  2947. X    { /* ^E */
  2948. X        "", "", "", "", "", "", "", "", "", "",
  2949. X    },
  2950. X    { /* ^F */
  2951. X        "", "", "", "", "", "", "", "", "", "",
  2952. X    },
  2953. X    { /* ^G */
  2954. X        "", "", "", "", "", "", "", "", "", "",
  2955. X    },
  2956. X    { /* ^H */
  2957. X        "", "", "", "", "", "", "", "", "", "",
  2958. X    },
  2959. X    { /* ^I */
  2960. X        "", "", "", "", "", "", "", "", "", "",
  2961. X    },
  2962. X    { /* ^J */
  2963. X        "", "", "", "", "", "", "", "", "", "",
  2964. X    },
  2965. X    { /* ^K */
  2966. X        "", "", "", "", "", "", "", "", "", "",
  2967. X    },
  2968. X    { /* ^L */
  2969. X        "", "", "", "", "", "", "", "", "", "",
  2970. X    },
  2971. X    { /* ^M */
  2972. X        "", "", "", "", "", "", "", "", "", "",
  2973. X    },
  2974. X    { /* ^N */
  2975. X        "", "", "", "", "", "", "", "", "", "",
  2976. X    },
  2977. X    { /* ^O */
  2978. X        "", "", "", "", "", "", "", "", "", "",
  2979. X    },
  2980. X    { /* ^P */
  2981. X        "", "", "", "", "", "", "", "", "", "",
  2982. X    },
  2983. X    { /* ^Q */
  2984. X        "", "", "", "", "", "", "", "", "", "",
  2985. X    },
  2986. X    { /* ^R */
  2987. X        "", "", "", "", "", "", "", "", "", "",
  2988. X    },
  2989. X    { /* ^S */
  2990. X        "", "", "", "", "", "", "", "", "", "",
  2991. X    },
  2992. X    { /* ^T */
  2993. X        "", "", "", "", "", "", "", "", "", "",
  2994. X    },
  2995. X    { /* ^U */
  2996. X        "", "", "", "", "", "", "", "", "", "",
  2997. X    },
  2998. X    { /* ^V */
  2999. X        "", "", "", "", "", "", "", "", "", "",
  3000. X    },
  3001. X    { /* ^W */
  3002. X        "", "", "", "", "", "", "", "", "", "",
  3003. X    },
  3004. X    { /* ^X */
  3005. X        "", "", "", "", "", "", "", "", "", "",
  3006. X    },
  3007. X    { /* ^Y */
  3008. X        "", "", "", "", "", "", "", "", "", "",
  3009. X    },
  3010. X    { /* ^Z */
  3011. X        "", "", "", "", "", "", "", "", "", "",
  3012. X    },
  3013. X    { /* ^[ */
  3014. X        "", "", "", "", "", "", "", "", "", "",
  3015. X    },
  3016. X    { /* ^\ */
  3017. X        "", "", "", "", "", "", "", "", "", "",
  3018. X    },
  3019. X    { /* ^] */
  3020. X        "", "", "", "", "", "", "", "", "", "",
  3021. X    },
  3022. X    { /* ^^ */
  3023. X        "", "", "", "", "", "", "", "", "", "",
  3024. X    },
  3025. X    { /* ^_ */
  3026. X        "", "", "", "", "", "", "", "", "", "",
  3027. X    },
  3028. X    { /* *SPC* */
  3029. X        "         ",
  3030. X        "         ",
  3031. X        "         ",
  3032. X        "         ",
  3033. X        "         ",
  3034. X        "         ",
  3035. X        "         ",
  3036. X        "         ",
  3037. X        "         ",
  3038. X        "         "
  3039. X    },
  3040. X    { /* ! */
  3041. X        "@@@",
  3042. X        "@@@",
  3043. X        "@@@",
  3044. X        " @ ",
  3045. X        "   ",
  3046. X        "@@@",
  3047. X        "@@@",
  3048. X        "   ",
  3049. X        "   ",
  3050. X        "   "
  3051. X    },
  3052. X    { /* " */
  3053. X        "@@@ @@@",
  3054. X        "@@@ @@@",
  3055. X        " @   @ ",
  3056. X        "@   @  ",
  3057. X        "       ",
  3058. X        "       ",
  3059. X        "       ",
  3060. X        "       ",
  3061. X        "       ",
  3062. X        "       "
  3063. X    },
  3064. X    { /* # */
  3065. X        "         ",
  3066. X        "  @   @  ",
  3067. X        "@@@@@@@@@",
  3068. X        "  @   @  ",
  3069. X        "@@@@@@@@@",
  3070. X        "  @   @  ",
  3071. X        "         ",
  3072. X        "         ",
  3073. X        "         ",
  3074. X        "         "
  3075. X    },
  3076. X    { /* $ */
  3077. X        "    @    ",
  3078. X        " @@@@@@@ ",
  3079. X        "@   @    ",
  3080. X        " @@@@@@@ ",
  3081. X        "    @   @",
  3082. X        " @@@@@@@ ",
  3083. X        "    @    ",
  3084. X        "         ",
  3085. X        "         ",
  3086. X        "         "
  3087. X    },
  3088. X    { /* % */
  3089. X        "@@    @",
  3090. X        "@@   @ ",
  3091. X        "    @  ",
  3092. X        "   @   ",
  3093. X        "  @    ",
  3094. X        " @   @@",
  3095. X        "@    @@",
  3096. X        "       ",
  3097. X        "       ",
  3098. X        "       "
  3099. X    },
  3100. X    { /* & */
  3101. X        " @@@   ",
  3102. X        "@   @  ",
  3103. X        " @ @   ",
  3104. X        "  @@   ",
  3105. X        " @  @ @",
  3106. X        "@    @ ",
  3107. X        " @@@@ @",
  3108. X        "       ",
  3109. X        "       ",
  3110. X        "       "
  3111. X    },
  3112. X    { /* ' */
  3113. X        "@@@",
  3114. X        "@@@",
  3115. X        " @ ",
  3116. X        "@  ",
  3117. X        "   ",
  3118. X        "   ",
  3119. X        "   ",
  3120. X        "   ",
  3121. X        "   ",
  3122. X        "   "
  3123. X    },
  3124. X    { /* ( */
  3125. X        "  @",
  3126. X        " @ ",
  3127. X        "@  ",
  3128. X        "@  ",
  3129. X        "@  ",
  3130. X        " @ ",
  3131. X        "  @",
  3132. X        "   ",
  3133. X        "   ",
  3134. X        "   "
  3135. X    },
  3136. X    { /* ) */
  3137. X        "@  ",
  3138. X        " @ ",
  3139. X        "  @",
  3140. X        "  @",
  3141. X        "  @",
  3142. X        " @ ",
  3143. X        "@  ",
  3144. X        "   ",
  3145. X        "   ",
  3146. X        "   "
  3147. X    },
  3148. X    { /* * */
  3149. X        "   @   ",
  3150. X        "@  @  @",
  3151. X        " @ @ @ ",
  3152. X        "  @@@  ",
  3153. X        " @ @ @ ",
  3154. X        "@  @  @",
  3155. X        "   @   ",
  3156. X        "       ",
  3157. X        "       ",
  3158. X        "       "
  3159. X    },
  3160. X    { /* + */
  3161. X        "         ",
  3162. X        "    @    ",
  3163. X        "    @    ",
  3164. X        "@@@@@@@@@",
  3165. X        "    @    ",
  3166. X        "    @    ",
  3167. X        "         ",
  3168. X        "         ",
  3169. X        "         ",
  3170. X        "         "
  3171. X    },
  3172. X    { /* , */
  3173. X        "   ",
  3174. X        "   ",
  3175. X        "   ",
  3176. X        "   ",
  3177. X        "   ",
  3178. X        "@@@",
  3179. X        "@@@",
  3180. X        " @ ",
  3181. X        "@  ",
  3182. X        "   "
  3183. X    },
  3184. X    { /* - */
  3185. X        "         ",
  3186. X        "         ",
  3187. X        "         ",
  3188. X        "@@@@@@@@@",
  3189. X        "         ",
  3190. X        "         ",
  3191. X        "         ",
  3192. X        "         ",
  3193. X        "         ",
  3194. X        "         "
  3195. X    },
  3196. X    { /* . */
  3197. X        "   ",
  3198. X        "   ",
  3199. X        "   ",
  3200. X        "   ",
  3201. X        "   ",
  3202. X        "@@@",
  3203. X        "@@@",
  3204. X        "   ",
  3205. X        "   ",
  3206. X        "   "
  3207. X    },
  3208. X    { /* / */
  3209. X        "      @",
  3210. X        "     @ ",
  3211. X        "    @  ",
  3212. X        "   @   ",
  3213. X        "  @    ",
  3214. X        " @     ",
  3215. X        "@      ",
  3216. X        "       ",
  3217. X        "       ",
  3218. X        "       "
  3219. X    },
  3220. X    { /* 0 */
  3221. X        "  @@@@@  ",
  3222. X        " @    @@ ",
  3223. X        "@    @  @",
  3224. X        "@   @   @",
  3225. X        "@  @    @",
  3226. X        " @@    @ ",
  3227. X        "  @@@@@  ",
  3228. X        "         ",
  3229. X        "         ",
  3230. X        "         "
  3231. X    },
  3232. X    { /* 1 */
  3233. X        " @ ",
  3234. X        "@@ ",
  3235. X        " @ ",
  3236. X        " @ ",
  3237. X        " @ ",
  3238. X        " @ ",
  3239. X        "@@@",
  3240. X        "   ",
  3241. X        "   ",
  3242. X        "   "
  3243. X    },
  3244. X    { /* 2 */
  3245. X        " @@@@@@@ ",
  3246. X        "@       @",
  3247. X        "        @",
  3248. X        "  @@@@@@ ",
  3249. X        " @       ",
  3250. X        "@        ",
  3251. X        "@@@@@@@@@",
  3252. X        "         ",
  3253. X        "         ",
  3254. X        "         "
  3255. X    },
  3256. X    { /* 3 */
  3257. X        " @@@@@@@ ",
  3258. X        "@       @",
  3259. X        "        @",
  3260. X        "  @@@@@@ ",
  3261. X        "        @",
  3262. X        "@       @",
  3263. X        " @@@@@@@ ",
  3264. X        "         ",
  3265. X        "         ",
  3266. X        "         "
  3267. X    },
  3268. X    { /* 4 */
  3269. X        "   @@@@  ",
  3270. X        "  @   @  ",
  3271. X        " @    @  ",
  3272. X        "@     @  ",
  3273. X        "@@@@@@@@@",
  3274. X        "      @  ",
  3275. X        "      @  ",
  3276. X        "         ",
  3277. X        "         ",
  3278. X        "         "
  3279. X    },
  3280. X    { /* 5 */
  3281. X        "@@@@@@@@@",
  3282. X        "@        ",
  3283. X        "@@@@@@@@ ",
  3284. X        "        @",
  3285. X        "        @",
  3286. X        "@       @",
  3287. X        " @@@@@@@ ",
  3288. X        "         ",
  3289. X        "         ",
  3290. X        "         "
  3291. X    },
  3292. X    { /* 6 */
  3293. X        " @@@@@@@ ",
  3294. X        "@       @",
  3295. X        "@        ",
  3296. X        "@@@@@@@@ ",
  3297. X        "@       @",
  3298. X        "@       @",
  3299. X        " @@@@@@@ ",
  3300. X        "         ",
  3301. X        "         ",
  3302. X        "         "
  3303. X    },
  3304. X    { /* 7 */
  3305. X        "@@@@@@@@@",
  3306. X        "       @ ",
  3307. X        "      @  ",
  3308. X        "     @   ",
  3309. X        "    @    ",
  3310. X        "    @    ",
  3311. X        "    @    ",
  3312. X        "         ",
  3313. X        "         ",
  3314. X        "         "
  3315. X    },
  3316. X    { /* 8 */
  3317. X        " @@@@@@@ ",
  3318. X        "@       @",
  3319. X        "@       @",
  3320. X        " @@@@@@@ ",
  3321. X        "@       @",
  3322. X        "@       @",
  3323. X        " @@@@@@@ ",
  3324. X        "         ",
  3325. X        "         ",
  3326. X        "         "
  3327. X    },
  3328. X    { /* 9 */
  3329. X        " @@@@@@@ ",
  3330. X        "@       @",
  3331. X        "@       @",
  3332. X        " @@@@@@@@",
  3333. X        "        @",
  3334. X        "@       @",
  3335. X        " @@@@@@@ ",
  3336. X        "         ",
  3337. X        "         ",
  3338. X        "         "
  3339. X    },
  3340. X    { /* : */
  3341. X        "   ",
  3342. X        "   ",
  3343. X        "@@@",
  3344. X        "@@@",
  3345. X        "   ",
  3346. X        "@@@",
  3347. X        "@@@",
  3348. X        "   ",
  3349. X        "   ",
  3350. X        "   "
  3351. X    },
  3352. X    { /* ; */
  3353. X        "   ",
  3354. X        "   ",
  3355. X        "@@@",
  3356. X        "@@@",
  3357. X        "   ",
  3358. X        "@@@",
  3359. X        "@@@",
  3360. X        " @ ",
  3361. X        "@  ",
  3362. X        "   "
  3363. X    },
  3364. X    { /* < */
  3365. X        "      @@",
  3366. X        "    @@  ",
  3367. X        "  @@    ",
  3368. X        "@@      ",
  3369. X        "  @@    ",
  3370. X        "    @@  ",
  3371. X        "      @@",
  3372. X        "        ",
  3373. X        "        ",
  3374. X        "        "
  3375. X    },
  3376. X    { /* = */
  3377. X        "         ",
  3378. X        "         ",
  3379. X        "         ",
  3380. X        "@@@@@@@@@",
  3381. X        "         ",
  3382. X        "@@@@@@@@@",
  3383. X        "         ",
  3384. X        "         ",
  3385. X        "         ",
  3386. X        "         ",
  3387. X    },
  3388. X    { /* > */
  3389. X        "@@      ",
  3390. X        "  @@    ",
  3391. X        "    @@  ",
  3392. X        "      @@",
  3393. X        "    @@  ",
  3394. X        "  @@    ",
  3395. X        "@@      ",
  3396. X        "        ",
  3397. X        "        ",
  3398. X        "        "
  3399. X    },
  3400. X    { /* ? */
  3401. X        " @@@@@@@ ",
  3402. X        "@       @",
  3403. X        "        @",
  3404. X        "    @@@@ ",
  3405. X        "    @    ",
  3406. X        "         ",
  3407. X        "    @    ",
  3408. X        "         ",
  3409. X        "         ",
  3410. X        "         "
  3411. X    },
  3412. X    { /* @ */
  3413. X        " @@@@@@@ ",
  3414. X        "@       @",
  3415. X        "@  @@@  @",
  3416. X        "@ @  @  @",
  3417. X        "@  @@@@@ ",
  3418. X        "@        ",
  3419. X        " @@@@@@@ ",
  3420. X        "         ",
  3421. X        "         ",
  3422. X        "         "
  3423. X    },
  3424. X    { /* A */
  3425. X        "   @@@   ",
  3426. X        "  @   @  ",
  3427. X        " @     @ ",
  3428. X        "@       @",
  3429. X        "@@@@@@@@@",
  3430. X        "@       @",
  3431. X        "@       @",
  3432. X        "         ",
  3433. X        "         ",
  3434. X        "         "
  3435. X    },
  3436. X    { /* B */
  3437. X        "@@@@@@@@ ",
  3438. X        "@       @",
  3439. X        "@       @",
  3440. X        "@@@@@@@@ ",
  3441. X        "@       @",
  3442. X        "@       @",
  3443. X        "@@@@@@@@ ",
  3444. X        "         ",
  3445. X        "         ",
  3446. X        "         "
  3447. X    },
  3448. X    { /* C */
  3449. X        "  @@@@@  ",
  3450. X        " @     @ ",
  3451. X        "@       @",
  3452. X        "@        ",
  3453. X        "@       @",
  3454. X        " @     @ ",
  3455. X        "  @@@@@  ",
  3456. X        "         ",
  3457. X        "         ",
  3458. X        "         "
  3459. X    },
  3460. X    { /* D */
  3461. X        "@@@@@@@  ",
  3462. X        "@      @ ",
  3463. X        "@       @",
  3464. X        "@       @",
  3465. X        "@       @",
  3466. X        "@      @ ",
  3467. X        "@@@@@@@  ",
  3468. X        "         ",
  3469. X        "         ",
  3470. X        "         "
  3471. X    },
  3472. X    { /* E */
  3473. X        "@@@@@@@@@",
  3474. X        "@        ",
  3475. X        "@        ",
  3476. X        "@@@@@@@  ",
  3477. X        "@        ",
  3478. X        "@        ",
  3479. X        "@@@@@@@@@",
  3480. X        "         ",
  3481. X        "         ",
  3482. X        "         "
  3483. X    },
  3484. X    { /* F */
  3485. X        "@@@@@@@@@",
  3486. X        "@        ",
  3487. X        "@        ",
  3488. X        "@@@@@@@  ",
  3489. X        "@        ",
  3490. X        "@        ",
  3491. X        "@        ",
  3492. X        "         ",
  3493. X        "         ",
  3494. X        "         "
  3495. X    },
  3496. X    { /* G */
  3497. X        "  @@@@@@ ",
  3498. X        " @      @",
  3499. X        "@        ",
  3500. X        "@    @@@@",
  3501. X        "@       @",
  3502. X        " @     @@",
  3503. X        "  @@@@@ @",
  3504. X        "         ",
  3505. X        "         ",
  3506. X        "         "
  3507. X    },
  3508. X    { /* H */
  3509. X        "@       @",
  3510. X        "@       @",
  3511. X        "@       @",
  3512. X        "@@@@@@@@@",
  3513. X        "@       @",
  3514. X        "@       @",
  3515. X        "@       @",
  3516. X        "         ",
  3517. X        "         ",
  3518. X        "         "
  3519. X    },
  3520. X    { /* I */
  3521. X        "@@@@@",
  3522. X        "  @  ",
  3523. X        "  @  ",
  3524. X        "  @  ",
  3525. X        "  @  ",
  3526. X        "  @  ",
  3527. X        "@@@@@",
  3528. X        "     ",
  3529. X        "     ",
  3530. X        "     "
  3531. X    },
  3532. X    { /* J */
  3533. X        "      @@@",
  3534. X        "       @ ",
  3535. X        "       @ ",
  3536. X        "       @ ",
  3537. X        "@      @ ",
  3538. X        " @    @  ",
  3539. X        "  @@@@   ",
  3540. X        "         ",
  3541. X        "         ",
  3542. X        "         "
  3543. X    },
  3544. X    { /* K */
  3545. X        "@       @",
  3546. X        "@      @ ",
  3547. X        "@     @  ",
  3548. X        "@@@@@@   ",
  3549. X        "@     @  ",
  3550. X        "@      @ ",
  3551. X        "@       @",
  3552. X        "         ",
  3553. X        "         ",
  3554. X        "         "
  3555. X    },
  3556. X    { /* L */
  3557. X        "@        ",
  3558. X        "@        ",
  3559. X        "@        ",
  3560. X        "@        ",
  3561. X        "@        ",
  3562. X        "@        ",
  3563. X        "@@@@@@@@@",
  3564. X        "         ",
  3565. X        "         ",
  3566. X        "         "
  3567. X    },
  3568. X    { /* M */
  3569. X        "@       @",
  3570. X        "@@     @@",
  3571. X        "@ @   @ @",
  3572. X        "@  @ @  @",
  3573. X        "@   @   @",
  3574. X        "@       @",
  3575. X        "@       @",
  3576. X        "         ",
  3577. X        "         ",
  3578. X        "         "
  3579. X    },
  3580. X    { /* N */
  3581. X        "@      @",
  3582. X        "@@     @",
  3583. X        "@ @    @",
  3584. X        "@  @   @",
  3585. X        "@   @  @",
  3586. X        "@    @ @",
  3587. X        "@     @@",
  3588. X        "        ",
  3589. X        "        ",
  3590. X        "        "
  3591. X    },
  3592. X    { /* O */
  3593. X        "  @@@@@  ",
  3594. X        " @     @ ",
  3595. X        "@       @",
  3596. X        "@       @",
  3597. X        "@       @",
  3598. X        " @     @ ",
  3599. X        "  @@@@@  ",
  3600. X        "         ",
  3601. X        "         ",
  3602. X        "         "
  3603. X    },
  3604. X    { /* P */
  3605. X        "@@@@@@@@ ",
  3606. X        "@       @",
  3607. X        "@       @",
  3608. X        "@@@@@@@@ ",
  3609. X        "@        ",
  3610. X        "@        ",
  3611. X        "@        ",
  3612. X        "         ",
  3613. X        "         ",
  3614. X        "         "
  3615. X    },
  3616. X    { /* Q */
  3617. X        "  @@@@@  ",
  3618. X        " @     @ ",
  3619. X        "@       @",
  3620. X        "@       @",
  3621. X        "@     @ @",
  3622. X        " @     @ ",
  3623. X        "  @@@@@ @",
  3624. X        "         ",
  3625. X        "         ",
  3626. X        "         "
  3627. X    },
  3628. X    { /* R */
  3629. X        "@@@@@@@@ ",
  3630. X        "@       @",
  3631. X        "@       @",
  3632. X        "@@@@@@@@ ",
  3633. X        "@     @  ",
  3634. X        "@      @ ",
  3635. X        "@       @",
  3636. X        "         ",
  3637. X        "         ",
  3638. X        "         "
  3639. X    },
  3640. X    { /* S */
  3641. X        " @@@@@@@ ",
  3642. X        "@       @",
  3643. X        "@        ",
  3644. X        " @@@@@@@ ",
  3645. X        "        @",
  3646. X        "@       @",
  3647. X        " @@@@@@@ ",
  3648. X        "         ",
  3649. X        "         ",
  3650. X        "         "
  3651. X    },
  3652. X    { /* T */
  3653. X        "@@@@@@@@@",
  3654. X        "    @    ",
  3655. X        "    @    ",
  3656. X        "    @    ",
  3657. X        "    @    ",
  3658. X        "    @    ",
  3659. X        "    @    ",
  3660. X        "         ",
  3661. X        "         ",
  3662. X        "         "
  3663. X    },
  3664. X    { /* U */
  3665. X        "@       @",
  3666. X        "@       @",
  3667. X        "@       @",
  3668. X        "@       @",
  3669. X        "@       @",
  3670. X        " @     @ ",
  3671. X        "  @@@@@  ",
  3672. X        "         ",
  3673. X        "         ",
  3674. X        "         "
  3675. X    },
  3676. X    { /* V */
  3677. X        "@       @",
  3678. X        "@       @",
  3679. X        "@       @",
  3680. X        "@       @",
  3681. X        " @     @ ",
  3682. X        "  @   @  ",
  3683. X        "   @@@   ",
  3684. X        "         ",
  3685. X        "         ",
  3686. X        "         "
  3687. X    },
  3688. X    { /* W */
  3689. X        "@       @",
  3690. X        "@       @",
  3691. X        "@   @   @",
  3692. X        "@  @ @  @",
  3693. X        "@ @   @ @",
  3694. X        "@@     @@",
  3695. X        "@       @",
  3696. X        "         ",
  3697. X        "         ",
  3698. X        "         "
  3699. X    },
  3700. X    { /* X */
  3701. X        "@       @",
  3702. X        " @     @ ",
  3703. X        "  @   @  ",
  3704. X        "   @@@   ",
  3705. X        "  @   @  ",
  3706. X        " @     @ ",
  3707. X        "@       @",
  3708. X        "         ",
  3709. X        "         ",
  3710. X        "         "
  3711. X    },
  3712. X    { /* Y */
  3713. X        "@       @",
  3714. X        " @     @ ",
  3715. X        "  @   @  ",
  3716. X        "   @ @   ",
  3717. X        "    @    ",
  3718. X        "    @    ",
  3719. X        "    @    ",
  3720. X        "         ",
  3721. X        "         ",
  3722. X        "         "
  3723. X    },
  3724. X    { /* Z */
  3725. X        "@@@@@@@@@",
  3726. X        "       @ ",
  3727. X        "     @@  ",
  3728. X        "    @    ",
  3729. X        "  @@     ",
  3730. X        " @       ",
  3731. X        "@@@@@@@@@",
  3732. X        "         ",
  3733. X        "         ",
  3734. X        "         "
  3735. X    },
  3736. X    { /* [ */
  3737. X        "@@@@@",
  3738. X        "@    ",
  3739. X        "@    ",
  3740. X        "@    ",
  3741. X        "@    ",
  3742. X        "@    ",
  3743. X        "@@@@@",
  3744. X        "     ",
  3745. X        "     ",
  3746. X        "     "
  3747. X    },
  3748. X    { /* \ */
  3749. X        "@      ",
  3750. X        " @     ",
  3751. X        "  @    ",
  3752. X        "   @   ",
  3753. X        "    @  ",
  3754. X        "     @ ",
  3755. X        "      @",
  3756. X        "       ",
  3757. X        "       ",
  3758. X        "       "
  3759. X    },
  3760. X    { /* ] */
  3761. X        "@@@@@",
  3762. X        "    @",
  3763. X        "    @",
  3764. X        "    @",
  3765. X        "    @",
  3766. X        "    @",
  3767. X        "@@@@@",
  3768. X        "     ",
  3769. X        "     ",
  3770. X        "     "
  3771. X    },
  3772. X    { /* ^ */
  3773. X        "   @   ",
  3774. X        "  @ @  ",
  3775. X        " @   @ ",
  3776. X        "@     @",
  3777. X        "       ",
  3778. X        "       ",
  3779. X        "       ",
  3780. X        "       ",
  3781. X        "       ",
  3782. X        "       "
  3783. X    },
  3784. X    { /* _ */
  3785. X        "         ",
  3786. X        "         ",
  3787. X        "         ",
  3788. X        "         ",
  3789. X        "         ",
  3790. X        "         ",
  3791. X        "@@@@@@@@@",
  3792. X        "         ",
  3793. X        "         ",
  3794. X        "         "
  3795. X    },
  3796. X    { /* ` */
  3797. X        "@@@",
  3798. X        "@@@",
  3799. X        " @ ",
  3800. X        "  @",
  3801. X        "   ",
  3802. X        "   ",
  3803. X        "   ",
  3804. X        "   ",
  3805. X        "   ",
  3806. X        "   "
  3807. X    },
  3808. X    
  3809. X    { /* a */
  3810. X        "         ",
  3811. X        "         ",
  3812. X        " @@@@@@  ",
  3813. X        "       @ ",
  3814. X        " @@@@@@@ ",
  3815. X        "@     @@ ",
  3816. X        " @@@@@ @@",
  3817. X        "         ",
  3818. X        "         ",
  3819. X        "         "
  3820. X    },
  3821. X    { /* b */
  3822. X        "@        ",
  3823. X        "@        ",
  3824. X        "@ @@@@@  ",
  3825. X        "@@     @ ",
  3826. X        "@       @",
  3827. X        "@@     @ ",
  3828. X        "@ @@@@@  ",
  3829. X        "         ",
  3830. X        "         ",
  3831. X        "         "
  3832. X    },
  3833. X    { /* c */
  3834. X        "       ",
  3835. X        "       ",
  3836. X        " @@@@@ ",
  3837. X        "@     @",
  3838. X        "@      ",
  3839. X        "@     @",
  3840. X        " @@@@@ ",
  3841. X        "       ",
  3842. X        "       ",
  3843. X        "       "
  3844. X    },
  3845. X    { /* d */
  3846. X        "        @",
  3847. X        "        @",
  3848. X        "  @@@@@ @",
  3849. X        " @     @@",
  3850. X        "@       @",
  3851. X        " @     @@",
  3852. X        "  @@@@@ @",
  3853. X        "         ",
  3854. X        "         ",
  3855. X        "         "
  3856. X    },
  3857. X    { /* e */
  3858. X        "         ",
  3859. X        "         ",
  3860. X        " @@@@@@@ ",
  3861. X        "@       @",
  3862. X        "@@@@@@@@@",
  3863. X        "@        ",
  3864. X        " @@@@@@@ ",
  3865. X        "         ",
  3866. X        "         ",
  3867. X        "         "
  3868. X    },
  3869. X    { /* f */
  3870. X        "  @@ ",
  3871. X        " @  @",
  3872. X        " @   ",
  3873. X        "@@@@@",
  3874. X        " @   ",
  3875. X        " @   ",
  3876. X        " @   ",
  3877. X        "     ",
  3878. X        "     ",
  3879. X        "     "
  3880. X    },
  3881. X    { /* g */
  3882. X        "       ",
  3883. X        "       ",
  3884. X        " @@@@ @",
  3885. X        "@    @@",
  3886. X        "@     @",
  3887. X        "@    @@",
  3888. X        " @@@@ @",
  3889. X        "      @",
  3890. X        "      @",
  3891. X        " @@@@@ "
  3892. X    },
  3893. X    { /* h */
  3894. X        "@       ",
  3895. X        "@       ",
  3896. X        "@ @@@@@ ",
  3897. X        "@@     @",
  3898. X        "@      @",
  3899. X        "@      @",
  3900. X        "@      @",
  3901. X        "        ",
  3902. X        "        ",
  3903. X        "        "
  3904. X    },
  3905. X    { /* i */
  3906. X        "    ",
  3907. X        "@   ",
  3908. X        "    ",
  3909. X        "@   ",
  3910. X        "@   ",
  3911. X        "@  @",
  3912. X        " @@ ",
  3913. X        "    ",
  3914. X        "    ",
  3915. X        "    "
  3916. X    },
  3917. X    { /* j */
  3918. X        "        ",
  3919. X        "       @",
  3920. X        "        ",
  3921. X        "       @",
  3922. X        "       @",
  3923. X        "       @",
  3924. X        "       @",
  3925. X        "@      @",
  3926. X        " @    @ ",
  3927. X        "  @@@@  "
  3928. X    },
  3929. X    { /* k */
  3930. X        "@     ",
  3931. X        "@     ",
  3932. X        "@    @",
  3933. X        "@   @ ",
  3934. X        "@@@@  ",
  3935. X        "@   @ ",
  3936. X        "@    @",
  3937. X        "      ",
  3938. X        "      ",
  3939. X        "      "
  3940. X    },
  3941. X    { /* l */
  3942. X        "@@ ",
  3943. X        " @ ",
  3944. X        " @ ",
  3945. X        " @ ",
  3946. X        " @ ",
  3947. X        " @ ",
  3948. X        "@@@",
  3949. X        "   ",
  3950. X        "   ",
  3951. X        "   "
  3952. X    },
  3953. X    { /* m */
  3954. X        "         ",
  3955. X        "         ",
  3956. X        "@ @@ @@@ ",
  3957. X        "@@  @   @",
  3958. X        "@   @   @",
  3959. X        "@   @   @",
  3960. X        "@   @   @",
  3961. X        "         ",
  3962. X        "         ",
  3963. X        "         "
  3964. X    },
  3965. X    { /* n */
  3966. X        "         ",
  3967. X        "         ",
  3968. X        "@ @@@@@  ",
  3969. X        "@@     @ ",
  3970. X        "@       @",
  3971. X        "@       @",
  3972. X        "@       @",
  3973. X        "         ",
  3974. X        "         ",
  3975. X        "         "
  3976. X    },
  3977. X    { /* o */
  3978. X        "         ",
  3979. X        "         ",
  3980. X        "  @@@@@  ",
  3981. X        " @     @ ",
  3982. X        "@       @",
  3983. X        " @     @ ",
  3984. X        "  @@@@@  ",
  3985. X        "         ",
  3986. X        "         ",
  3987. X        "         "
  3988. X    },
  3989. X    { /* p */
  3990. X        "         ",
  3991. X        "         ",
  3992. X        "@ @@@@@  ",
  3993. X        "@@     @ ",
  3994. X        "@       @",
  3995. X        "@@     @ ",
  3996. X        "@ @@@@@  ",
  3997. X        "@        ",
  3998. X        "@        ",
  3999. X        "@        "
  4000. X    },
  4001. X    { /* q */
  4002. X        "         ",
  4003. X        "         ",
  4004. X        "  @@@@@ @",
  4005. X        " @     @@",
  4006. X        "@       @",
  4007. X        " @     @@",
  4008. X        "  @@@@@ @",
  4009. X        "        @",
  4010. X        "        @",
  4011. X        "        @"
  4012. X    },
  4013. X    { /* r */
  4014. X        "     ",
  4015. X        "     ",
  4016. X        "@ @@ ",
  4017. X        "@@  @",
  4018. X        "@    ",
  4019. X        "@    ",
  4020. X        "@    ",
  4021. X        "     ",
  4022. X        "     ",
  4023. X        "     "
  4024. X    },
  4025. X    { /* s */
  4026. X        "         ",
  4027. X        "         ",
  4028. X        " @@@@@@@ ",
  4029. X        "@        ",
  4030. X        " @@@@@@@ ",
  4031. X        "        @",
  4032. X        " @@@@@@@ ",
  4033. X        "         ",
  4034. X        "         ",
  4035. X        "         "
  4036. X    },
  4037. X    { /* t */
  4038. X        "       ",
  4039. X        "   @   ",
  4040. X        "@@@@@@@",
  4041. X        "   @   ",
  4042. X        "   @   ",
  4043. X        "   @  @",
  4044. X        "    @@ ",
  4045. X        "       ",
  4046. X        "       ",
  4047. X        "       "
  4048. X    },
  4049. X    { /* u */
  4050. X        "         ",
  4051. X        "         ",
  4052. X        "@       @",
  4053. X        "@       @",
  4054. X        "@       @",
  4055. X        " @     @@",
  4056. X        "  @@@@@ @",
  4057. X        "         ",
  4058. X        "         ",
  4059. X        "         "
  4060. X    },
  4061. X    { /* v */
  4062. X        "         ",
  4063. X        "         ",
  4064. X        "@       @",
  4065. X        "@       @",
  4066. X        " @     @ ",
  4067. X        "  @   @  ",
  4068. X        "   @@@   ",
  4069. X        "         ",
  4070. X        "         ",
  4071. X        "         "
  4072. X    },
  4073. X    { /* w */
  4074. X        "         ",
  4075. X        "         ",
  4076. X        "@       @",
  4077. X        "@   @   @",
  4078. X        "@   @   @",
  4079. X        "@   @   @",
  4080. X        " @@@ @@@ ",
  4081. X        "         ",
  4082. X        "         ",
  4083. X        "         "
  4084. X    },
  4085. X    { /* x */
  4086. X        "       ",
  4087. X        "       ",
  4088. X        "@     @",
  4089. X        " @   @ ",
  4090. X        "  @@@  ",
  4091. X        " @   @ ",
  4092. X        "@     @",
  4093. X        "       ",
  4094. X        "       ",
  4095. X        "       "
  4096. X    },
  4097. X    { /* y */
  4098. X        "       ",
  4099. X        "       ",
  4100. X        "@     @",
  4101. X        "@     @",
  4102. X        "@     @",
  4103. X        "@     @",
  4104. X        " @@@@@@",
  4105. X        "      @",
  4106. X        "      @",
  4107. X        " @@@@@ "
  4108. X    },
  4109. X    { /* z */
  4110. X        "       ",
  4111. X        "       ",
  4112. X        "@@@@@@@",
  4113. X        "    @@ ",
  4114. X        "   @   ",
  4115. X        " @@    ",
  4116. X        "@@@@@@@",
  4117. X        "       ",
  4118. X        "       ",
  4119. X        "       "
  4120. X    },
  4121. X    { /* { */
  4122. X        "  @@@",
  4123. X        " @   ",
  4124. X        " @   ",
  4125. X        "@    ",
  4126. X        " @   ",
  4127. X        " @   ",
  4128. X        "  @@@",
  4129. X        "     ",
  4130. X        "     ",
  4131. X        "     "
  4132. X    },
  4133. X    { /* | */
  4134. X        "@",
  4135. X        "@",
  4136. X        "@",
  4137. X        " ",
  4138. X        "@",
  4139. X        "@",
  4140. X        "@",
  4141. X        " ",
  4142. X        " ",
  4143. X        " "
  4144. X    },
  4145. X    { /* } */
  4146. X        "@@@  ",
  4147. X        "   @ ",
  4148. X        "   @ ",
  4149. X        "    @",
  4150. X        "   @ ",
  4151. X        "   @ ",
  4152. X        "@@@  ",
  4153. X        "     ",
  4154. X        "     ",
  4155. X        "     "
  4156. X    },
  4157. X    { /* ~ */
  4158. X        "         ",
  4159. X        "  @@    @",
  4160. X        " @  @  @ ",
  4161. X        "@    @@  ",
  4162. X        "         ",
  4163. X        "         ",
  4164. X        "         ",
  4165. X        "         ",
  4166. X        "         ",
  4167. X        "         "
  4168. X    },
  4169. X    { /* *DEL* */
  4170. X        "@@@@@@@@@",
  4171. X        "@@@@@@@@@",
  4172. X        "@@@@@@@@@",
  4173. X        "@@@@@@@@@",
  4174. X        "@@@@@@@@@",
  4175. X        "@@@@@@@@@",
  4176. X        "@@@@@@@@@",
  4177. X        "         ",
  4178. X        "         ",
  4179. X        "         "
  4180. X    }
  4181. X    };
  4182. END_OF_FILE
  4183. if test 19204 -ne `wc -c <'banner-9/data.c'`; then
  4184.     echo shar: \"'banner-9/data.c'\" unpacked with wrong size!
  4185. fi
  4186. # end of 'banner-9/data.c'
  4187. fi
  4188. if test -f 'cursive-2/font.c' -a "${1}" != "-c" ; then 
  4189.   echo shar: Will not clobber existing file \"'cursive-2/font.c'\"
  4190. else
  4191. echo shar: Extracting \"'cursive-2/font.c'\" \(11797 characters\)
  4192. sed "s/^X//" >'cursive-2/font.c' <<'END_OF_FILE'
  4193. X/* CURSIVE FONT FILE
  4194. X *
  4195. X * This font is copyrighted by Jan Wolter.  See notes in "cursive.c".
  4196. X *
  4197. X * Several of the letters are rather ugly, but the wonder is not how
  4198. X * well it sings.  A few uppercase letters are a bit too tall.  The
  4199. X * font has to some extent been chosen to make my name look good to me.
  4200. X * Those of you with different names will have to take pot luck, or fix
  4201. X * it to taste.  Editing this file must be done with some care.  The
  4202. X * numbers on the defines must match the index numbers of the letter
  4203. X * in the list[] structure.  The six numbers after the character are how
  4204. X * many blank spaces must be added to the beginning of each of the six
  4205. X * scan lines to make them line up.  The last two numbers are the scan
  4206. X * line numbers in which the character is connected to the preceeding and
  4207. X * succeeding characters.  -1 means it isn't.  There are two versions of
  4208. X * each lower case letter, one with the line coming in on line 2, and one
  4209. X * with the line coming in on line 3.
  4210. X */
  4211. X
  4212. X/*
  4213. X * $Log:    font.c,v $
  4214. X * Revision 1.2  87/12/05  09:19:30  hyc
  4215. X * Cleaned up some of the characters, made them nicer looking.
  4216. X * To me, anyway.
  4217. X * 
  4218. X */
  4219. X
  4220. X#include "cursive.h"
  4221. X
  4222. struct letter list[] = {
  4223. X
  4224. X#define LA  0        /* a type 1 */ 
  4225. X    { {
  4226. X    "",
  4227. X    "",
  4228. X     "__.",
  4229. X    "(_(",
  4230. X    "",
  4231. X    ""
  4232. X    },
  4233. X    {0,0,1,0,0,0},
  4234. X    3,3
  4235. X    },
  4236. X
  4237. X#define LB  1        /* b type 1 */
  4238. X    { {
  4239. X    "",
  4240. X      "/",
  4241. X      "/_",
  4242. X    "/_)",
  4243. X    "",
  4244. X    ""
  4245. X    },
  4246. X    {0,2,1,0,0,0},
  4247. X    3,2
  4248. X    },
  4249. X
  4250. X#define LC  2        /* c type 1 */
  4251. X    { {
  4252. X    "",
  4253. X    "",
  4254. X     "_.",
  4255. X    "(_",
  4256. X    "",
  4257. X    ""}
  4258. X    ,
  4259. X    {0,0,1,0,0,0},
  4260. X    3,3
  4261. X    },
  4262. X
  4263. X#define LD  3        /* d type 1 */
  4264. X    { {
  4265. X    "",
  4266. X        "/",
  4267. X     "__/",
  4268. X    "(_(",
  4269. X    "",
  4270. X    ""
  4271. X    },
  4272. X    {0,4,1,0,0,0},
  4273. X    3,3
  4274. X    },
  4275. X
  4276. X#define LE  4        /* e type 1 */
  4277. X    { {
  4278. X    "",
  4279. X    "",
  4280. X     "_",
  4281. X    "(<",
  4282. X    "",
  4283. X    ""
  4284. X    },
  4285. X    {0,0,1,0,0,0},
  4286. X    3,3
  4287. X    },
  4288. X
  4289. X#define LF  5        /* f type 1 */
  4290. X    { {
  4291. X    "",
  4292. X        "/)",
  4293. X       "// ",
  4294. X      "//",
  4295. X     "/>",
  4296. X    "</ "
  4297. X    },
  4298. X    {0,4,3,2,1,0},
  4299. X    3,3
  4300. X    },
  4301. X
  4302. X#define LG  6        /* g type 1 */
  4303. X    { {
  4304. X    "",
  4305. X    "",
  4306. X     "_,",
  4307. X    "(_)",
  4308. X     "/|",
  4309. X    "|/"
  4310. X    },
  4311. X    {0,0,1,0,1,0},
  4312. X    3,3
  4313. X    },
  4314. X
  4315. X#define LH  7        /* h type 1 */
  4316. X    { {
  4317. X    "",
  4318. X      "/",
  4319. X     "/_",
  4320. X    "/ /",
  4321. X    "",
  4322. X    ""
  4323. X    },
  4324. X    {0,2,1,0,0,0},
  4325. X    3,3
  4326. X    },
  4327. X
  4328. X#define LI  8        /* i type 1 */
  4329. X    { {
  4330. X    "",
  4331. X    "",
  4332. X     "o",
  4333. X    "(",
  4334. X    "",
  4335. X    ""
  4336. X    },
  4337. X    {0,0,1,0,0,0},
  4338. X    3,3
  4339. X    },
  4340. X
  4341. X#define LJ  9        /* j type 1 */
  4342. X    { {
  4343. X    "",
  4344. X    "",
  4345. X        "o",
  4346. X       "/",
  4347. X      "/",
  4348. X    "-'"
  4349. X    },
  4350. X    {0,0,4,3,2,0},
  4351. X    3,3
  4352. X    },
  4353. X
  4354. X#define LK 10        /* k type 1 */
  4355. X    { {
  4356. X    "",
  4357. X      "/",
  4358. X     "/_ ",
  4359. X    "/ <",
  4360. X    "",
  4361. X    ""
  4362. X    },
  4363. X    {0,2,1,0,0,0},
  4364. X    3,3
  4365. X    },
  4366. X
  4367. X#define LL 11        /* l type 1 */
  4368. X    { {
  4369. X    "",
  4370. X      "/)",
  4371. X     "//",
  4372. X    "(/",
  4373. X    "",
  4374. X    ""
  4375. X    },
  4376. X    {0,2,1,0,0,0},
  4377. X    3,3
  4378. X    },
  4379. X
  4380. X#define LM 12        /* m type 1 */
  4381. X    { {
  4382. X    "",
  4383. X    "",
  4384. X     "____",
  4385. X    "/) ) )",
  4386. X    "",
  4387. X    ""
  4388. X    },
  4389. X    {0,0,1,0,0,0},
  4390. X    3,3
  4391. X    },
  4392. X
  4393. X#define LN 13        /* n type 1 */
  4394. X    { {
  4395. X    "",
  4396. X    "",
  4397. X     "__",
  4398. X    "/) )",
  4399. X    "",
  4400. X    ""
  4401. X    },
  4402. X    {0,0,1,0,0,0},
  4403. X    3,3
  4404. X    },
  4405. X
  4406. X#define LO 14        /* o type 1 */
  4407. X    { {
  4408. X    "",
  4409. X    "",
  4410. X     "_",
  4411. X    "(_)",
  4412. X    "",
  4413. X    ""
  4414. X    },
  4415. X    {0,0,1,0,0,0},
  4416. X    3,2
  4417. X    },
  4418. X
  4419. X#define LP 15        /* p type 1 */
  4420. X    { {
  4421. X    "",
  4422. X    "",
  4423. X       "_",
  4424. X      "/_)",
  4425. X     "/",
  4426. X    "'"
  4427. X    },
  4428. X    {0,0,3,2,1,0},
  4429. X    3,3
  4430. X    },
  4431. X
  4432. X#define LQ 16        /* q type 1 */
  4433. X    { {
  4434. X    "",
  4435. X    "",
  4436. X     "_,",
  4437. X    "(_)",
  4438. X     "/>",
  4439. X    "|/"
  4440. X    },
  4441. X    {0,0,1,0,1,0},
  4442. X    3,3
  4443. X    },
  4444. X
  4445. X#define LR 17        /* r type 1 */
  4446. X    { {
  4447. X    "",
  4448. X    "",
  4449. X     "__",
  4450. X    "/ (",
  4451. X    "",
  4452. X    ""
  4453. X    },
  4454. X    {0,0,1,0,0,0},
  4455. X    3,3
  4456. X    },
  4457. X
  4458. X#define LS 18        /* s type 1 */
  4459. X    { {
  4460. X    "",
  4461. X    "",
  4462. X     "_",
  4463. X    "/_)",
  4464. X    "",
  4465. X    ""
  4466. X    },
  4467. X    {0,0,1,0,0,0},
  4468. X    3,3
  4469. X    },
  4470. X
  4471. X#define LT 19        /* t type 1 */
  4472. X    { {
  4473. X    "",
  4474. X     "_/_",
  4475. X     "/",
  4476. X    "(_",
  4477. X    "",
  4478. X    ""
  4479. X    },
  4480. X    {0,1,1,0,0,0},
  4481. X    3,3
  4482. X    },
  4483. X
  4484. X#define LU 20        /* u type 1 */
  4485. X    { {
  4486. X    "",
  4487. X    "",
  4488. X     ". .",
  4489. X    "(_/",
  4490. X    "",
  4491. X    ""
  4492. X    },
  4493. X    {0,0,1,0,0,0},
  4494. X    3,3
  4495. X    },
  4496. X
  4497. X#define LV 21        /* v type 1 */
  4498. X    { {
  4499. X    "",
  4500. X    "",
  4501. X    ", ",
  4502. X    "\\/",
  4503. X    "",
  4504. X    ""
  4505. X    },
  4506. X    {0,0,0,0,0,0},
  4507. X    3,2
  4508. X    },
  4509. X
  4510. X#define LW 22        /* w type 1 */
  4511. X    { {
  4512. X    "",
  4513. X    "",
  4514. X     ", , ,",
  4515. X    "(_(_/",
  4516. X    "",
  4517. X    ""
  4518. X    },
  4519. X    {0,0,1,0,0,0},
  4520. X    3,3
  4521. X    },
  4522. X
  4523. X#define LX 23        /* x type 1 */
  4524. X    { {
  4525. X    "",
  4526. X    "",
  4527. X     "_.,",
  4528. X    "/ /\\",
  4529. X    "",
  4530. X    ""
  4531. X    },
  4532. X    {0,0,1,0,0,0},
  4533. X    3,3
  4534. X    },
  4535. X
  4536. X#define LY 24        /* y type 1 */
  4537. X    { {
  4538. X    "",
  4539. X    "",
  4540. X     ", ,",
  4541. X    "(_/",
  4542. X     "/",
  4543. X    "'"
  4544. X     },
  4545. X    {0,0,1,0,1,0},
  4546. X    3,3
  4547. X    },
  4548. X
  4549. X#define LZ 25        /* z type 1 */
  4550. X    { {
  4551. X    "",
  4552. X    "",
  4553. X     "__.",
  4554. X    "/  |",
  4555. X      "(|",
  4556. X    ""
  4557. X    },
  4558. X    {0,0,1,0,2,0},
  4559. X    3,3
  4560. X    },
  4561. X
  4562. X#define NA 26        /* a type 2 */
  4563. X    { {
  4564. X    "",
  4565. X    "",
  4566. X     "__.",
  4567. X    "(_(",
  4568. X    "",
  4569. X    ""
  4570. X    },
  4571. X    {0,0,1,0,0,0},
  4572. X    2,3
  4573. X    },
  4574. X
  4575. X#define NB 27        /* b type 2 */
  4576. X    { {
  4577. X    "",
  4578. X      "/",
  4579. X     "/_",
  4580. X    "/_)",
  4581. X    "",
  4582. X    ""
  4583. X    },
  4584. X    {0,2,1,0,0,0},
  4585. X    2,2
  4586. X    },
  4587. X
  4588. X#define NC 28        /* c type 2 */
  4589. X    { {
  4590. X    "",
  4591. X    "",
  4592. X    "__.",
  4593. X    "(_",
  4594. X    "",
  4595. X    ""
  4596. X    },
  4597. X    {0,0,0,0,0,0},
  4598. X    2,3
  4599. X    },
  4600. X
  4601. X#define ND 29        /* d type 2 */
  4602. X    { {
  4603. X    "",
  4604. X        "/",
  4605. X    "___/",
  4606. X    "(_(",
  4607. X    "",
  4608. X    ""
  4609. X    },
  4610. X    {0,4,0,0,0,0},
  4611. X    2,3
  4612. X    },
  4613. X
  4614. X#define NE 30        /* e type 2 */
  4615. X    { {
  4616. X    "",
  4617. X    "",
  4618. X     "_",
  4619. X    "(<",
  4620. X    "",
  4621. X    ""
  4622. X    },
  4623. X    {0,0,1,0,0,0},
  4624. X    2,3
  4625. X    },
  4626. X
  4627. X#define NF 31        /* f type 2 */
  4628. X    { {
  4629. X    "",
  4630. X        "/)",
  4631. X       "//",
  4632. X      "/_",
  4633. X     "/>",
  4634. X    "</"
  4635. X    },
  4636. X    {0,4,3,2,1,0},
  4637. X    2,3
  4638. X    },
  4639. X
  4640. X#define NG 32        /* g type 2 */
  4641. X    { {
  4642. X    "",
  4643. X    "",
  4644. X    "__,",
  4645. X    "(_)",
  4646. X     "/|",
  4647. X    "|/"
  4648. X    },
  4649. X    {0,0,0,0,1,0},
  4650. X    2,3
  4651. X    },
  4652. X
  4653. X#define NH 33        /* h type 2 */
  4654. X    { {
  4655. X    "",
  4656. X      "/",
  4657. X     "/_",
  4658. X    "/ /",
  4659. X    "",
  4660. X    ""
  4661. X    },
  4662. X    {0,2,1,0,0,0},
  4663. X    2,3
  4664. X    },
  4665. X
  4666. X#define NI 34        /* i type 2 */
  4667. X    { {
  4668. X    "",
  4669. X    "",
  4670. X     "o",
  4671. X    "(_",
  4672. X    "",
  4673. X    ""
  4674. X    },
  4675. X    {0,0,1,0,0,0},
  4676. X    2,3
  4677. X    },
  4678. X
  4679. X#define NJ 35        /* j type 2 */
  4680. X    { {
  4681. X    "",
  4682. X    "",
  4683. X       "_o",
  4684. X       "/_",
  4685. X      "/",
  4686. X    "-'"
  4687. X    },
  4688. X    {0,0,3,3,2,0},
  4689. X    2,3
  4690. X    },
  4691. X
  4692. X#define NK 36        /* k type 2 */
  4693. X    { {
  4694. X    "",
  4695. X      "/",
  4696. X     "/_",
  4697. X    "/ <",
  4698. X    "",
  4699. X    ""
  4700. X    },
  4701. X    {0,2,1,0,0,0},
  4702. X    2,3
  4703. X    },
  4704. X
  4705. X#define NL 37        /* l type 2 */
  4706. X    { {
  4707. X      "_",
  4708. X     "//",
  4709. X    "|/",
  4710. X     "\\",
  4711. X    "",
  4712. X    ""
  4713. X    },
  4714. X    {2,1,0,1,0,0},
  4715. X    2,3
  4716. X    },
  4717. X
  4718. X#define NM 38        /* m type 2 */
  4719. X    { {
  4720. X    "",
  4721. X    "",
  4722. X    "_____",
  4723. X    "/) ) )",
  4724. X    "",
  4725. X    ""
  4726. X    },
  4727. X    {0,0,0,0,0,0},
  4728. X    2,3
  4729. X    },
  4730. X
  4731. X#define NN 39        /* n type 2 */
  4732. X    { {
  4733. X    "",
  4734. X    "",
  4735. X    "___",
  4736. X    "/) )",
  4737. X    "",
  4738. X    ""
  4739. X    },
  4740. X    {0,0,0,0,0,0},
  4741. X    2,3
  4742. X    },
  4743. X
  4744. X#define NO 40        /* o type 2 */
  4745. X    { {
  4746. X    "",
  4747. X    "",
  4748. X    "___",
  4749. X    "(_)",
  4750. X    "",
  4751. X    ""
  4752. X    },
  4753. X    {0,0,0,0,0,0},
  4754. X    2,2
  4755. X    },
  4756. X
  4757. X#define NP 41        /* p type 2 */
  4758. X    { {
  4759. X    "",
  4760. X    "",
  4761. X      "__",
  4762. X      "/_)",
  4763. X     "/",
  4764. X    "'"
  4765. X    },
  4766. X    {0,0,2,2,1,0},
  4767. X    2,3
  4768. X    },
  4769. X
  4770. X#define NQ 42        /* q type 2 */
  4771. X    { {
  4772. X    "",
  4773. X    "",
  4774. X    "__,",
  4775. X    "(_)",
  4776. X     "/>",
  4777. X    "|/"
  4778. X    },
  4779. X    {0,0,0,0,1,0},
  4780. X    2,3
  4781. X    },
  4782. X
  4783. X#define NR 43        /* r type 2 */
  4784. X    { {
  4785. X    "",
  4786. X    "",
  4787. X    ",_",
  4788. X     "(",
  4789. X    "",
  4790. X    ""
  4791. X    },
  4792. X    {0,0,0,1,0,0},
  4793. X    2,3
  4794. X    },
  4795. X
  4796. X#define NS 44        /* s type 2 */
  4797. X    { {
  4798. X    "",
  4799. X    "",
  4800. X    "___ ",
  4801. X     "\\_)_",
  4802. X    "",
  4803. X    ""
  4804. X    },
  4805. X    {0,0,0,1,0,0},
  4806. X    2,3
  4807. X    },
  4808. X
  4809. X#define NT 45        /* t type 2 */
  4810. X    { {
  4811. X    "",
  4812. X     "_/_",
  4813. X    "_/",
  4814. X    "(_",
  4815. X    "",
  4816. X    ""
  4817. X    },
  4818. X    {0,1,0,0,0,0},
  4819. X    2,3
  4820. X    },
  4821. X
  4822. X#define NU 46        /* u type 2 */
  4823. X    { {
  4824. X    "",
  4825. X    "",
  4826. X    "_. .",
  4827. X    "(_/",
  4828. X    "",
  4829. X    ""
  4830. X    },
  4831. X    {0,0,0,0,0,0},
  4832. X    2,3
  4833. X    },
  4834. X
  4835. X#define NV 47        /* v type 2 */
  4836. X    { {
  4837. X    "",
  4838. X    "",
  4839. X    "  .",
  4840. X    "\\/",
  4841. X    "",
  4842. X    ""
  4843. X    },
  4844. X    {0,0,0,0,0,0},
  4845. X    2,3
  4846. X    },
  4847. X
  4848. X#define NW 48        /* w type 2 */
  4849. X    { {
  4850. X    "",
  4851. X    "",
  4852. X    "_, , ,",
  4853. X    "(_(_/",
  4854. X    "",
  4855. X    ""
  4856. X    },
  4857. X    {0,0,0,0,0,0},
  4858. X    2,3
  4859. X    },
  4860. X
  4861. X#define NX 49        /* x type 2 */
  4862. X    { {
  4863. X    "",
  4864. X    "",
  4865. X    "_.,",
  4866. X     "/\\",
  4867. X    "",
  4868. X    ""
  4869. X    },
  4870. X    {0,0,0,1,0,0},
  4871. X    2,3
  4872. X    },
  4873. X
  4874. X#define NY 50        /* y type 2 */
  4875. X    { {
  4876. X    "",
  4877. X    "",
  4878. X    "_  ,",
  4879. X    "(_/__",
  4880. X     "/",
  4881. X    "'"
  4882. X    },
  4883. X    {0,0,0,0,1,0},
  4884. X    2,3
  4885. X    },
  4886. X
  4887. X#define NZ 51        /* z type 2 */
  4888. X    { {
  4889. X    "",
  4890. X    "",
  4891. X    "__.",
  4892. X      "|",
  4893. X     "(|",
  4894. X    ""
  4895. X    },
  4896. X    {0,0,0,2,1,0},
  4897. X    2,3
  4898. X    },
  4899. X
  4900. X#define UA 52        /* A */
  4901. X    { {
  4902. X       "__",
  4903. X      "/  )",
  4904. X     "/--/",
  4905. X    "/  (",
  4906. X    "",
  4907. X    ""
  4908. X    },
  4909. X    {3,2,1,0,0,0},
  4910. X    3,3
  4911. X    },
  4912. X
  4913. X#define UB 53        /* B  */
  4914. X    { {
  4915. X       "__",
  4916. X      "/  )",
  4917. X     "/--<",
  4918. X    "/___/",
  4919. X    "",
  4920. X    ""
  4921. X    },
  4922. X    {3,2,1,0,0,0},
  4923. X    3,3
  4924. X    },
  4925. X
  4926. X#define UC 54        /* C */
  4927. X    { {
  4928. X       "__",
  4929. X      "/  )",
  4930. X     "/",
  4931. X    "(__/",
  4932. X    "",
  4933. X    ""
  4934. X    },
  4935. X    {3,2,1,0,0,0},
  4936. X    -1,-1
  4937. X    },
  4938. X
  4939. X#define UD 55        /* D  */
  4940. X    { {
  4941. X       "__",
  4942. X      "/  )",
  4943. X     "/  /",
  4944. X    "/__/",
  4945. X    "",
  4946. X    ""
  4947. X    },
  4948. X    {3,2,1,0,0,0},
  4949. X    3,3
  4950. X    },
  4951. X
  4952. X#define UE 56        /* E */
  4953. X    { {
  4954. X       "__",
  4955. X      "/  `",
  4956. X     "/--",
  4957. X    "(___,",
  4958. X    "",
  4959. X    ""
  4960. X    },
  4961. X    {3,2,1,0,0,0},
  4962. X    -1,-1
  4963. X    },
  4964. X
  4965. X#define UF 57        /* F */
  4966. X    { {
  4967. X       "_____",
  4968. X       " /  '",
  4969. X     ",-/-,",
  4970. X    "(_/",
  4971. X    "",
  4972. X    ""
  4973. X    },
  4974. X    {3,3,1,0,0,0},
  4975. X    -1,-1
  4976. X    },
  4977. X
  4978. X#define UG 58        /* G */
  4979. X    { {
  4980. X      "()  ,",
  4981. X      "/`-'|",
  4982. X     "/   /",
  4983. X    "/__-<",
  4984. X    "",
  4985. X    ""
  4986. X    },
  4987. X    {2,2,1,0,0,0},
  4988. X    -1,3
  4989. X    },
  4990. X
  4991. X#define UH 59        /* H */
  4992. X    { {
  4993. X     "_    ,",
  4994. X    "' )  /",
  4995. X     "/--/",
  4996. X    "/  (",
  4997. X    "",
  4998. X    ""
  4999. X    },
  5000. X    {1,0,1,0,0,0},
  5001. X    -1,3
  5002. X    },
  5003. X
  5004. X#define UI 60        /* I */
  5005. X    { {
  5006. X      "__",
  5007. X     "(  )",
  5008. X       "/",
  5009. X    "\\_/",
  5010. X    "",
  5011. X    ""
  5012. X    },
  5013. X    {2,1,3,0,0,0},
  5014. X    -1,-1
  5015. X    },
  5016. X
  5017. X#define UJ 61        /* J */
  5018. X    { {
  5019. X      "___",
  5020. X     "(   )",
  5021. X      "__/",
  5022. X     "/ /",
  5023. X    "(_/",
  5024. X    ""
  5025. X    },
  5026. X    {2,1,2,1,0,0},
  5027. X    -1,2
  5028. X    },
  5029. X
  5030. X#define UK 62        /* K */
  5031. X    { {
  5032. X     "_   ,",
  5033. X    "' ) /",
  5034. X     "/-<",
  5035. X    "/   )",
  5036. X    "",
  5037. X    ""
  5038. X    },
  5039. X    {1,0,1,0,0,0},
  5040. X    -1,-1
  5041. X    },
  5042. X
  5043. X#define UL 63        /* L */
  5044. X    { {
  5045. X       "_",
  5046. X     "_//",
  5047. X     "/",
  5048. X    "/___",
  5049. X    "",
  5050. X    ""
  5051. X    },
  5052. X    {3,1,1,0,0,0},
  5053. X    -1,-1
  5054. X    },
  5055. X
  5056. X#define UM 64        /* M */
  5057. X    { {
  5058. X     "_ _ _",
  5059. X    "' ) ) )",
  5060. X     "/ / /",
  5061. X    "/ ' (",
  5062. X    "",
  5063. X    ""
  5064. X    },
  5065. X    {1,0,1,0,0,0},
  5066. X    -1,3
  5067. X    },
  5068. X
  5069. X#define UN 65        /* N */
  5070. X    { {
  5071. X     "_ __",
  5072. X    "' )  )",
  5073. X     "/  /",
  5074. X    "/  (",
  5075. X    "",
  5076. X    ""
  5077. X    },
  5078. X    {1,0,1,0,0,0},
  5079. X    -1,3
  5080. X    },
  5081. X
  5082. X#define UO 66        /* O */
  5083. X    { {
  5084. X       "__",
  5085. X      "/ ')",
  5086. X     "/  /",
  5087. X    "(__/",
  5088. X    "",
  5089. X    ""
  5090. X    },
  5091. X    {3,2,1,0,0,0},
  5092. X    -1,-1
  5093. X    },
  5094. X
  5095. X#define UP 67        /* P */
  5096. X    { {
  5097. X     "_ __",
  5098. X    "' )  )",
  5099. X     "/--'",
  5100. X    "/",
  5101. X    "",
  5102. X    ""
  5103. X    },
  5104. X    {1,0,1,0,0,0},
  5105. X    -1,-1
  5106. X    },
  5107. X
  5108. X#define UQ 68        /* Q */
  5109. X    { {
  5110. X       "__",
  5111. X      "/  )",
  5112. X     "/  /",
  5113. X    "(_\\/",
  5114. X       "`",
  5115. X    ""
  5116. X    },
  5117. X    {3,2,1,0,3,0},
  5118. X    -1,-1
  5119. X    },
  5120. X
  5121. X#define UR 69        /* R */
  5122. X    { {
  5123. X     "_ __",
  5124. X    "' )  )",
  5125. X     "/--'",
  5126. X    "/  \\",
  5127. X    "",
  5128. X    ""
  5129. X    },
  5130. X    {1,0,1,0,0,0},
  5131. X    -1,3
  5132. X    },
  5133. X
  5134. X#define US 70        /* S */
  5135. X    { {
  5136. X      "()",
  5137. X      "/\\",
  5138. X     "/  )",
  5139. X    "/__/_",
  5140. X    "",
  5141. X    ""
  5142. X    },
  5143. X    {2,2,1,0,0,0},
  5144. X    -1,3
  5145. X    },
  5146. X
  5147. X#define UT 71        /* T */
  5148. X    { {
  5149. X      "______",
  5150. X        "/  ",
  5151. X     "--/",
  5152. X    "(_/",
  5153. X    "",
  5154. X    ""
  5155. X    },
  5156. X    {2,4,1,0,0,0},
  5157. X    -1,-1
  5158. X    },
  5159. X
  5160. X#define UU 72        /* U */
  5161. X    { {
  5162. X     "_    _",
  5163. X    "' )  /",
  5164. X     "/  /",
  5165. X    "(__/",
  5166. X    "",
  5167. X    ""
  5168. X    },
  5169. X    {1,0,1,0,0,0},
  5170. X    -1,0
  5171. X    },
  5172. X
  5173. X#define UV 73        /* V */
  5174. X    { {
  5175. X     "_    ",
  5176. X    "' )  /",
  5177. X     "(  /",
  5178. X      "\\/",
  5179. X    "",
  5180. X    ""
  5181. X    },
  5182. X    {1,0,1,2,0,0},
  5183. X    -1,0
  5184. X    },
  5185. X
  5186. X#define UW 74        /* W */
  5187. X    { {
  5188. X     "_     ",
  5189. X    "' )   /",
  5190. X     "/ / /",
  5191. X    "(_(_/",
  5192. X    "",
  5193. X    ""
  5194. X    },
  5195. X    {1,0,1,0,0,0},
  5196. X    -1,0
  5197. X    },
  5198. X
  5199. X#define UX 75        /* X */
  5200. X    { {
  5201. X     "_   ,",
  5202. X    "' \\ /",
  5203. X       "X",
  5204. X      "/ \\",
  5205. X    "",
  5206. X    ""
  5207. X    },
  5208. X    {1,0,3,2,0,0},
  5209. X    -1,3
  5210. X    },
  5211. X
  5212. X#define UY 76        /* Y */
  5213. X    { {
  5214. X     "_    ,",
  5215. X    "' )  /",
  5216. X     "/  /",
  5217. X    "(__/",
  5218. X     "//",
  5219. X    "(/"
  5220. X    },
  5221. X    {1,0,1,0,1,0},
  5222. X    -1,3
  5223. X    },
  5224. X
  5225. X#define UZ 77        /* Z */
  5226. X    { {
  5227. X    "___",
  5228. X      "/",
  5229. X     "/",
  5230. X    "/__",
  5231. X    "",
  5232. X    ""
  5233. X    },
  5234. X    {0,2,1,0,0,0},
  5235. X    -1,-1
  5236. X    },
  5237. X
  5238. X#define PE 78         /* ! */
  5239. X    { {
  5240. X       "/",
  5241. X      "/",
  5242. X     "'",
  5243. X    "o",
  5244. X    "",
  5245. X    ""
  5246. X    },
  5247. X    {3,2,1,0,0,0},
  5248. X    -1,-1
  5249. X    },
  5250. X
  5251. X#define PU 79        /* " */
  5252. X    { {
  5253. X    "o o",
  5254. X    "' '",
  5255. X    "",
  5256. X     " ",
  5257. X    "",
  5258. X    ""
  5259. X    },
  5260. X    {0,0,0,1,0,0},
  5261. X    -1,-1
  5262. X    },
  5263. X
  5264. X#define PX 80        /* # */
  5265. X    { {
  5266. X       "/ /",
  5267. X     "-/-/-",
  5268. X    "-/-/-",
  5269. X    "/ /",
  5270. X    "",
  5271. X    ""
  5272. X    },
  5273. X    {3,1,0,0,0,0},
  5274. X    -1,-1
  5275. X    },
  5276. X
  5277. X#define PK 81        /* $ */
  5278. X    { {
  5279. X      ",-/-",
  5280. X     "(_/",
  5281. X      "/ )",
  5282. X    "-/-'",
  5283. X    "",
  5284. X    ""
  5285. X    },
  5286. X    {2,1,2,0,0,0},
  5287. X    -1,-1
  5288. X    },
  5289. X
  5290. X#define PF 82        /* ' */
  5291. X    { {
  5292. X     "o",
  5293. X     "'",
  5294. X    "",
  5295. X    " ",
  5296. X    "",
  5297. X    ""
  5298. X    },
  5299. X    {1,1,0,0,0,0},
  5300. X    -1,-1
  5301. X    },
  5302. X
  5303. X#define PC 83        /* , */
  5304. X    { {
  5305. X    "",
  5306. X    "",
  5307. X    "",
  5308. X    "o",
  5309. X    "'",
  5310. X    ""
  5311. X    },
  5312. X    {0,0,0,0,0,0},
  5313. X    -1,-1
  5314. X    },
  5315. X
  5316. X#define PM 84        /* - */
  5317. X    { {
  5318. X    "",
  5319. X    "",
  5320. X    "---",
  5321. X     " ",
  5322. X    "",
  5323. X    ""
  5324. X    },
  5325. X    {0,0,0,1,0,0},
  5326. X    -1,-1
  5327. X    },
  5328. X
  5329. X#define PP 85        /* . */
  5330. X    { {
  5331. X    "",
  5332. X    "",
  5333. X    "",
  5334. X    "o",
  5335. X    "",
  5336. X    ""
  5337. X    },
  5338. X    {0,0,0,0,0,0},
  5339. X    -1,-1
  5340. X    },
  5341. X
  5342. X#define PD 86        /* : */
  5343. X    { {
  5344. X    "",
  5345. X      "o",
  5346. X    "",
  5347. X    "o",
  5348. X    "",
  5349. X    ""
  5350. X    },
  5351. X    {0,2,0,0,0,0},
  5352. X    -1,-1
  5353. X    },
  5354. X
  5355. X#define PS 87        /* ; */
  5356. X    { {
  5357. X    "",
  5358. X      "o",
  5359. X    "",
  5360. X    "o",
  5361. X    "'",
  5362. X    ""
  5363. X    },
  5364. X    {0,2,0,0,0,0},
  5365. X    -1,-1
  5366. X    },
  5367. X
  5368. X#define PQ 88        /* ? */
  5369. X    { {
  5370. X      "__",
  5371. X      "__)",
  5372. X     "/",
  5373. X    "o",
  5374. X    "",
  5375. X    ""
  5376. X    },
  5377. X    {2,2,1,0,0,0},
  5378. X    -1,-1
  5379. X    },
  5380. X
  5381. X#define PB 89        /* ` */
  5382. X    { {
  5383. X      "o",
  5384. X      "`",
  5385. X    "",
  5386. X    " ",
  5387. X    "",
  5388. X    ""
  5389. X    },
  5390. X    {2,2,0,0,0,0},
  5391. X    -1,-1
  5392. X    }
  5393. X    };
  5394. X
  5395. short code1[] = {
  5396. X     /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15 */
  5397. X    XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
  5398. X    XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
  5399. X    SP, PE, PU, PX, PK, XX, XX, PF, XX, XX, XX, XX, PC, PM, PP, XX,
  5400. X    SN, SN, SN, SN, SN, SN, SN, SN, SN, SN, PD, PS, XX, XX, XX, PQ,
  5401. X    XX, UA, UB, UC, UD, UE, UF, UG, UH, UI, UJ, UK, UL, UM, UN, UO,
  5402. X    UP, UQ, UR, US, UT, UU, UV, UW, UX, UY, UZ, XX, XX, XX, XX, ST,
  5403. X    PB, LA, LB, LC, LD, LE, LF, LG, LH, LI, LJ, LK, LL, LM, LN, LO,
  5404. X    LP, LQ, LR, LS, LT, LU, LV, LW, LX, LY, LZ, XX, XX, XX, XX, XX };
  5405. X
  5406. short code2[] = {
  5407. X     /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15 */
  5408. X    XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
  5409. X    XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
  5410. X    SP, PE, PU, PX, PK, XX, XX, PF, XX, XX, XX, XX, PC, PM, PP, XX,
  5411. X    SN, SN, SN, SN, SN, SN, SN, SN, SN, SN, PD, PS, XX, XX, XX, PQ,
  5412. X    XX, UA, UB, UC, UD, UE, UF, UG, UH, UI, UJ, UK, UL, UM, UN, UO,
  5413. X    UP, UQ, UR, US, UT, UU, UV, UW, UX, UY, UZ, XX, XX, XX, XX, ST,
  5414. X    PB, NA, NB, NC, ND, NE, NF, NG, NH, NI, NJ, NK, NL, NM, NN, NO,
  5415. X    NP, NQ, NR, NS, NT, NU, NV, NW, NX, NY, NZ, XX, XX, XX, XX, XX };
  5416. END_OF_FILE
  5417. if test 11797 -ne `wc -c <'cursive-2/font.c'`; then
  5418.     echo shar: \"'cursive-2/font.c'\" unpacked with wrong size!
  5419. fi
  5420. # end of 'cursive-2/font.c'
  5421. fi
  5422. echo shar: End of archive 3 \(of 5\).
  5423. cp /dev/null ark3isdone
  5424. MISSING=""
  5425. for I in 1 2 3 4 5 ; do
  5426.     if test ! -f ark${I}isdone ; then
  5427.     MISSING="${MISSING} ${I}"
  5428.     fi
  5429. done
  5430. if test "${MISSING}" = "" ; then
  5431.     echo You have unpacked all 5 archives.
  5432.     rm -f ark[1-9]isdone
  5433. else
  5434.     echo You still need to unpack the following archives:
  5435.     echo "        " ${MISSING}
  5436. fi
  5437. ##  End of shell archive.
  5438. exit 0
  5439.