home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / unix / volume26 / bannrs11 / part04 < prev    next >
Encoding:
Text File  |  1993-04-10  |  89.0 KB  |  3,885 lines

  1. Newsgroups: comp.sources.unix
  2. From: fkk@stasys.sta.sub.org (Frank Kaefer)
  3. Subject: v26i144: banners - a collection of banner programs, V1.1, Part04/07
  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 144
  9. Archive-Name: banners-1.1/part04
  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 4 (of 7)."
  18. # Contents:  banner-02/banner.c banner-05/kbandat.c banner-09/data.c
  19. #   banner-12/COPYING gothic/gothic.c
  20. # Wrapped by vixie@gw.home.vix.com on Sun Apr 11 23:19:21 1993
  21. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  22. if test -f 'banner-02/banner.c' -a "${1}" != "-c" ; then 
  23.   echo shar: Will not clobber existing file \"'banner-02/banner.c'\"
  24. else
  25. echo shar: Extracting \"'banner-02/banner.c'\" \(14988 characters\)
  26. sed "s/^X//" >'banner-02/banner.c' <<'END_OF_FILE'
  27. X/******************************
  28. X *   Banner.C, (c)1990 by     *
  29. X *     Michael Baudisch       *
  30. X *   lizard@cubenet.sub.org   *
  31. X ******************************/
  32. X
  33. X/*************************************************************************/
  34. X/*   Achtung!! Hier bitte fuer den jeweiligen Computer-typ einstellen!!  */
  35. X/*************************************************************************/
  36. X/* #define MS_DOS         /* Nur fuer MS-DOS-computer + kompatible */
  37. X/* #define AMIGA          /* Fuer die Amiganer */
  38. X#define UNIX           /* Fuer Unix-ler */
  39. X#define INTERN_DATA    /* Nur das eingebaute Data-file zaehlt */
  40. X/* #define STD_DATA_FILE "" /* tja, standard-daten-file halt */
  41. X            /* bequemer ist INTERN_DATA zu definieren :) */
  42. X
  43. X#ifndef MS_DOS
  44. X# ifndef INTERN_DATA
  45. X#  ifndef STD_DATA_FILE
  46. X /* Fuer Nicht-MsDos'ler: Path+name vom StdData */
  47. X#    define STD_DATA_FILE "./banner.dat"
  48. X#  endif
  49. X# endif
  50. X#endif                          
  51. X/*************************************************************************/
  52. X
  53. X#ifdef MS_DOS
  54. X#   include <process.h>
  55. X#endif
  56. X
  57. X#ifndef AMIGA
  58. X#   include <malloc.h>
  59. X#   include <string.h>
  60. X#endif
  61. X
  62. X#include <stdio.h>
  63. X#include <ctype.h>
  64. X
  65. X#ifdef INTERN_DATA
  66. unsigned char intern_data[] = {
  67. X0x012,0x055,0x020,0x000,0x0ff,0x041,0x001,0x007,0x042,0x001,0x00f,0x043,0x001,0x017,0x044,0x001,
  68. X0x01f,0x045,0x001,0x027,0x046,0x001,0x02f,0x047,0x001,0x037,0x048,0x001,0x03f,0x049,0x001,0x047,
  69. X0x04a,0x001,0x04f,0x04b,0x001,0x057,0x04c,0x001,0x05f,0x04d,0x001,0x067,0x04e,0x001,0x06f,0x04f,
  70. X0x001,0x077,0x050,0x001,0x07f,0x051,0x001,0x087,0x052,0x001,0x08f,0x053,0x001,0x097,0x054,0x001,
  71. X0x09f,0x055,0x001,0x0a7,0x056,0x001,0x0af,0x057,0x001,0x0b7,0x058,0x001,0x0bf,0x059,0x001,0x0c7,
  72. X0x05a,0x001,0x0cf,0x03a,0x001,0x0d7,0x03b,0x001,0x0df,0x03d,0x001,0x0e7,0x03f,0x001,0x0ef,0x028,
  73. X0x001,0x0f7,0x029,0x001,0x0ff,0x02d,0x002,0x007,0x02f,0x002,0x00f,0x021,0x002,0x017,0x02e,0x002,
  74. X0x01f,0x02c,0x002,0x027,0x02b,0x002,0x02f,0x02a,0x002,0x037,0x022,0x002,0x03f,0x023,0x002,0x047,
  75. X0x030,0x002,0x04f,0x031,0x002,0x057,0x032,0x002,0x05f,0x033,0x002,0x067,0x034,0x002,0x06f,0x035,
  76. X0x002,0x077,0x036,0x002,0x07f,0x037,0x002,0x087,0x038,0x002,0x08f,0x039,0x002,0x097,0x027,0x002,
  77. X0x09f,0x05c,0x002,0x0a7,0x061,0x002,0x0af,0x062,0x002,0x0b7,0x063,0x002,0x0bf,0x064,0x002,0x0c7,
  78. X0x065,0x002,0x0cf,0x066,0x002,0x0d7,0x067,0x002,0x0df,0x068,0x002,0x0e7,0x069,0x002,0x0ef,0x06a,
  79. X0x002,0x0f7,0x06b,0x002,0x0ff,0x06c,0x003,0x007,0x06d,0x003,0x00f,0x06e,0x003,0x017,0x06f,0x003,
  80. X0x01f,0x070,0x003,0x027,0x071,0x003,0x02f,0x072,0x003,0x037,0x073,0x003,0x03f,0x074,0x003,0x047,
  81. X0x075,0x003,0x04f,0x076,0x003,0x057,0x077,0x003,0x05f,0x078,0x003,0x067,0x079,0x003,0x06f,0x07a,
  82. X0x003,0x077,0x03c,0x003,0x07f,0x03e,0x003,0x087,0x07c,0x003,0x08f,0x05f,0x003,0x097,0x020,0x003,
  83. X0x09f,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x018,0x03c,0x066,0x066,0x07e,0x066,0x066,
  84. X0x000,0x0fc,0x066,0x066,0x07c,0x066,0x066,0x0fc,0x000,0x03c,0x066,0x0c0,0x0c0,0x0c0,0x066,0x03c,
  85. X0x000,0x0f8,0x06c,0x066,0x066,0x066,0x06c,0x0f8,0x000,0x0fe,0x062,0x068,0x078,0x068,0x062,0x0fe,
  86. X0x000,0x0fe,0x062,0x068,0x078,0x068,0x060,0x0f0,0x000,0x03c,0x066,0x0c0,0x0c0,0x0ce,0x066,0x03e,
  87. X0x000,0x066,0x066,0x066,0x07e,0x066,0x066,0x066,0x000,0x07e,0x018,0x018,0x018,0x018,0x018,0x07e,
  88. X0x000,0x01e,0x00c,0x00c,0x00c,0x0cc,0x0cc,0x078,0x000,0x0e6,0x066,0x06c,0x078,0x06c,0x066,0x0e6,
  89. X0x000,0x0f0,0x060,0x060,0x060,0x062,0x066,0x0fe,0x000,0x0c6,0x0ee,0x0fe,0x0fe,0x0d6,0x0c6,0x0c6,
  90. X0x000,0x0c6,0x0e6,0x0f6,0x0de,0x0ce,0x0c6,0x0c6,0x000,0x038,0x06c,0x0c6,0x0c6,0x0c6,0x06c,0x038,
  91. X0x000,0x0fc,0x066,0x066,0x07c,0x060,0x060,0x0f0,0x000,0x038,0x06c,0x0c6,0x0c6,0x0da,0x0cc,0x076,
  92. X0x000,0x0fc,0x066,0x066,0x07c,0x06c,0x066,0x0e6,0x000,0x03c,0x066,0x060,0x03c,0x006,0x066,0x03c,
  93. X0x000,0x07e,0x05a,0x018,0x018,0x018,0x018,0x03c,0x000,0x066,0x066,0x066,0x066,0x066,0x066,0x03c,
  94. X0x000,0x066,0x066,0x066,0x066,0x066,0x03c,0x018,0x000,0x0c6,0x0c6,0x0c6,0x0d6,0x0fe,0x0ee,0x0c6,
  95. X0x000,0x0c6,0x06c,0x038,0x038,0x06c,0x0c6,0x0c6,0x000,0x066,0x066,0x066,0x03c,0x018,0x018,0x03c,
  96. X0x000,0x0fe,0x0c6,0x08c,0x018,0x032,0x066,0x0fe,0x000,0x000,0x000,0x018,0x018,0x000,0x018,0x018,
  97. X0x000,0x000,0x000,0x018,0x018,0x000,0x018,0x018,0x030,0x000,0x000,0x07e,0x000,0x000,0x07e,0x000,
  98. X0x000,0x03c,0x066,0x066,0x00c,0x018,0x000,0x018,0x000,0x00c,0x018,0x030,0x030,0x030,0x018,0x00c,
  99. X0x000,0x030,0x018,0x00c,0x00c,0x00c,0x018,0x030,0x000,0x000,0x000,0x000,0x07e,0x000,0x000,0x000,
  100. X0x000,0x006,0x00c,0x018,0x030,0x060,0x0c0,0x080,0x000,0x018,0x018,0x018,0x018,0x018,0x000,0x018,
  101. X0x000,0x000,0x000,0x000,0x000,0x000,0x018,0x018,0x000,0x000,0x000,0x000,0x000,0x000,0x018,0x018,
  102. X0x030,0x000,0x018,0x018,0x07e,0x018,0x018,0x000,0x000,0x000,0x066,0x03c,0x0ff,0x03c,0x066,0x000,
  103. X0x000,0x066,0x066,0x066,0x000,0x000,0x000,0x000,0x000,0x06c,0x06c,0x0fe,0x06c,0x0fe,0x06c,0x06c,
  104. X0x000,0x07c,0x0c6,0x0ce,0x0d6,0x0e6,0x0c6,0x07c,0x000,0x018,0x038,0x018,0x018,0x018,0x018,0x07e,
  105. X0x000,0x03c,0x066,0x006,0x03c,0x060,0x066,0x07e,0x000,0x03c,0x066,0x006,0x01c,0x006,0x066,0x03c,
  106. X0x000,0x01c,0x03c,0x06c,0x0cc,0x0fe,0x00c,0x01e,0x000,0x07e,0x062,0x060,0x07c,0x006,0x066,0x03c,
  107. X0x000,0x03c,0x066,0x060,0x07c,0x066,0x066,0x03c,0x000,0x07e,0x046,0x006,0x00c,0x018,0x018,0x018,
  108. X0x000,0x03c,0x066,0x066,0x03c,0x066,0x066,0x03c,0x000,0x03c,0x066,0x066,0x03e,0x006,0x066,0x03c,
  109. X0x000,0x00c,0x018,0x030,0x000,0x000,0x000,0x000,0x000,0x0c0,0x060,0x030,0x018,0x00c,0x006,0x002,
  110. X0x000,0x000,0x000,0x078,0x00c,0x07c,0x0cc,0x076,0x000,0x0e0,0x060,0x07c,0x066,0x066,0x066,0x0dc,
  111. X0x000,0x000,0x000,0x03c,0x066,0x060,0x066,0x03c,0x000,0x01c,0x00c,0x07c,0x0cc,0x0cc,0x0cc,0x076,
  112. X0x000,0x000,0x000,0x03c,0x066,0x07e,0x060,0x03c,0x000,0x01c,0x036,0x030,0x078,0x030,0x030,0x078,
  113. X0x000,0x000,0x000,0x03e,0x066,0x066,0x03e,0x006,0x07c,0x0e0,0x060,0x06c,0x076,0x066,0x066,0x0e6,
  114. X0x000,0x018,0x000,0x038,0x018,0x018,0x018,0x03c,0x000,0x006,0x000,0x00e,0x006,0x006,0x066,0x066,
  115. X0x03c,0x0e0,0x060,0x066,0x06c,0x078,0x06c,0x0e6,0x000,0x038,0x018,0x018,0x018,0x018,0x018,0x03c,
  116. X0x000,0x000,0x000,0x06c,0x0fe,0x0d6,0x0d6,0x0c6,0x000,0x000,0x000,0x0dc,0x066,0x066,0x066,0x066,
  117. X0x000,0x000,0x000,0x03c,0x066,0x066,0x066,0x03c,0x000,0x000,0x000,0x0dc,0x066,0x066,0x07c,0x060,
  118. X0x0f0,0x000,0x000,0x076,0x0cc,0x0cc,0x07c,0x00c,0x01e,0x000,0x000,0x0dc,0x076,0x060,0x060,0x0f0,
  119. X0x000,0x000,0x000,0x03c,0x060,0x03c,0x006,0x07c,0x000,0x030,0x030,0x07c,0x030,0x030,0x036,0x01c,
  120. X0x000,0x000,0x000,0x066,0x066,0x066,0x066,0x03e,0x000,0x000,0x000,0x066,0x066,0x066,0x03c,0x018,
  121. X0x000,0x000,0x000,0x0c6,0x0d6,0x0d6,0x0fe,0x06c,0x000,0x000,0x000,0x0c6,0x06c,0x038,0x06c,0x0c6,
  122. X0x000,0x000,0x000,0x066,0x066,0x066,0x03e,0x006,0x07c,0x000,0x000,0x07e,0x04c,0x018,0x032,0x07e,
  123. X0x000,0x00c,0x018,0x030,0x060,0x030,0x018,0x00c,0x000,0x060,0x030,0x018,0x00c,0x018,0x030,0x060,
  124. X0x000,0x018,0x018,0x018,0x018,0x018,0x018,0x018,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x000,
  125. X0x0ff,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x000 };
  126. X#endif
  127. X
  128. typedef unsigned int UINT;
  129. typedef unsigned char UCHAR;
  130. typedef UCHAR * DATA;
  131. X
  132. X/*******************/
  133. X#define VERSION 1.3
  134. X#define PATCHLEVEL 2
  135. X/*******************/
  136. X
  137. X#ifndef SEEK_END
  138. X#define SEEK_END 2
  139. X#endif
  140. X
  141. X#define TRUE    1
  142. X#define FALSE   0
  143. X#define SIZE_LINE ((size_h+1)*size_y)
  144. X#define SIZE_LINE_Y (size_y)
  145. X#define SIZE_CHAR (size_x*size_y)
  146. X#define CLEAR_LINE 1
  147. X#define CLEAR_CHAR 2
  148. X#define CLEAR_ALL (CLEAR_LINE|CLEAR_CHAR)
  149. X#define XMAX (size_h)
  150. X
  151. void main        (/*int argc, char *argv[]*/);
  152. void help        (/*void*/);
  153. void shutdown    (/*char *txt*/);
  154. void clearmem    (/*int was*/);
  155. void newline     (/*void*/);
  156. void writeword   (/*char *txt*/);
  157. void putword     (/*char *txt*/);
  158. void calc_char   (/*char x*/);
  159. void insert_char (/*char chrx*/);
  160. void writechar   (/*char x*/);
  161. int  read_word   (/*FILE *fh*/);
  162. void banner_file (/*FILE *fh*/);
  163. X
  164. DATA zs = 0, chr = 0, line = 0;
  165. XFILE *fh = 0;
  166. char str[256], b_file[80], fchar = ' ', fchar2 = ' ';
  167. char shadow_char = ' ';  /* default: space */
  168. int size_h = 80, size_x = 8, size_y = 8;
  169. int xpos, empty = TRUE, chars=FALSE, pipe=FALSE, upper=FALSE;
  170. int italics = FALSE, inverse = FALSE, fcharf = FALSE, ultraflag = FALSE;
  171. X
  172. void main(argc,argv)
  173. int argc;
  174. char *argv[];
  175. X{
  176. long n;
  177. void *puffer;
  178. X    *str=*b_file='\0';
  179. X    if(argc==1||(argc==2&&!(strcmp(argv[1],"?")*strcmp(argv[1],"/?")*strcmp
  180. X        (argv[1],"/h"))))
  181. X    {
  182. X        help();
  183. X        shutdown("");
  184. X    }
  185. X    for(n=1;n<argc;n++)
  186. X    {
  187. X        if(*argv[n]=='/')
  188. X        {
  189. X            switch(tolower(argv[n][1]))
  190. X            {
  191. X                case 's':
  192. X                    sscanf(&argv[n][3],"%4u",&size_h);
  193. X                    break;
  194. X                case 'd':
  195. X                    strcpy(str,&argv[n][3]);
  196. X                    break;
  197. X#                ifndef AMIGA
  198. X                case 'f':
  199. X                    strcpy(b_file,&argv[n][3]);
  200. X                    break;
  201. X#                endif /* AMIGA */
  202. X                case '?':
  203. X                case 'h':
  204. X                    help();
  205. X                    break;
  206. X                case '#':
  207. X                    chars=TRUE;
  208. X                    break;
  209. X                case 'p':
  210. X                    pipe=TRUE;
  211. X                    break;
  212. X                case 'u':
  213. X                    upper=TRUE;
  214. X                    break;
  215. X                case 'r':
  216. X                    inverse=TRUE;
  217. X                    break;
  218. X                case 'i':
  219. X                    italics=TRUE;
  220. X                    size_h-=size_y;
  221. X                    break;
  222. X                case 'c':
  223. X                    fcharf=TRUE;
  224. X                    fchar=argv[n][2];
  225. X                    if(strlen(argv[n])>3)
  226. X                        fchar2=argv[n][3];
  227. X                    if(strlen(argv[n])>=5)
  228. X                        if(argv[n][4]=='!')
  229. X                            ultraflag=TRUE;
  230. X                    if(strlen(argv[n])>=6 && ultraflag)
  231. X                        shadow_char = argv[n][5];
  232. X                    break;
  233. X                default:
  234. X                    shutdown("Falsche Option! Aufruf mit /h oder /? listet alle Optionen.");
  235. X                    break;
  236. X            }
  237. X        }
  238. X    }
  239. X    if(!*str)
  240. X    {
  241. X#ifdef MS_DOS
  242. X        strcpy(str,argv[0]);
  243. X        strcpy(str+strlen(str)-3,"DAT");
  244. X#else
  245. X#     ifndef INTERN_DATA
  246. X#    ifndef STD_DATA_FILE
  247. X#       define STD_DATA_FILE "./banner.dat"
  248. X#    endif
  249. X        strcpy(str,STD_DATA_FILE);
  250. X#     endif
  251. X#endif
  252. X    }
  253. X#ifdef INTERN_DATA
  254. X        zs=(DATA)intern_data;
  255. X#else
  256. X        if(!(fh=fopen(str,"rb")))
  257. X        shutdown("Datenfile nicht gefunden!!");
  258. X    if(fseek(fh,0L,SEEK_END))
  259. X        shutdown("Interner Fehler.");
  260. X    if((n=ftell(fh))==-1)
  261. X        shutdown("Interner Fehler.");
  262. X        rewind(fh);          
  263. X#  ifdef MS_DOS
  264. X    if(!(zs=(DATA)malloc((size_t)n)))
  265. X        shutdown("Zu wenig Speicher!!");
  266. X        fread((void *)zs, (size_t)1, (size_t)n, (FILE *)fh);
  267. X#  else
  268. X        if(!(zs=(DATA)malloc((int)n)))
  269. X                shutdown("Zu wenig Speicher!!");
  270. X        fread((void *)zs, (int)1, (int)n, (FILE *)fh);
  271. X#  endif       
  272. X        fclose(fh);
  273. X#endif
  274. X    if(!(chr=(DATA)malloc(size_x*size_y)))
  275. X        shutdown("Zu wenig Speicher!!");
  276. X    if(!(line=(DATA)malloc(SIZE_LINE)))
  277. X        shutdown("Zu wenig Speicher!!");
  278. X    if( (float)( (int)VERSION*16)+(VERSION-1.0)*10.0<(float)zs[0])
  279. X        shutdown("Datenfile nicht fuer diese Version von Banner.C geeignet.");
  280. X    if(zs[0]<(UCHAR)0x12)
  281. X        upper=TRUE; /* 1.0 und 1.1 unterstuetzen NUR Grossbuchstaben! */
  282. X    clearmem(CLEAR_ALL);
  283. X    xpos=0;
  284. X    for(n=1;n<argc;n++)
  285. X    {
  286. X        if(argv[n][0]!='/')
  287. X        {
  288. X            writeword(argv[n]);
  289. X            if((xpos+=size_x)>XMAX-1)
  290. X                newline();
  291. X        }
  292. X    }
  293. X    if(xpos) newline();
  294. X#ifndef AMIGA
  295. X    if(*b_file)
  296. X    {
  297. X        if(!(fh=fopen(b_file,"rb")))
  298. X            shutdown("Kann zu bannerndes Datenfile nicht finden.");
  299. X        banner_file(fh);
  300. X        fclose(fh);
  301. X        newline();
  302. X    }
  303. X#endif
  304. X    if(pipe)
  305. X        banner_file(stdin);
  306. X    shutdown("");
  307. X}
  308. X
  309. void banner_file(fh)
  310. XFILE *fh;
  311. X{
  312. long m;
  313. X    while(!feof(fh))
  314. X    {
  315. X        m=(long)read_word(fh);
  316. X        if(strlen(str))
  317. X        {
  318. X            writeword(str);
  319. X            if((xpos+=size_x)>XMAX-1 || m)
  320. X            {
  321. X                newline();
  322. X                m=0L;
  323. X            }
  324. X        }
  325. X        if(m) newline();
  326. X    }
  327. X}
  328. X
  329. int read_word(fh)
  330. XFILE *fh;
  331. X{
  332. int flag = TRUE, n = 0, ret=0;
  333. char x;
  334. X    while(flag && n<250)
  335. X    {
  336. X        x=(char)fgetc(fh);
  337. X        if(x==' ' || !isprint(x))
  338. X            flag=FALSE;
  339. X        else
  340. X            str[n++]=x;
  341. X        ret=(x=='\n'||x=='\r'||x==(char)0x0a||x==(char)0x0d)?1:0;
  342. X    }
  343. X    str[n]='\0';
  344. X    return(ret);
  345. X}
  346. X
  347. void writeword(txt)
  348. char *txt;
  349. X{
  350. X    if(xpos+size_x*strlen(txt)>XMAX)
  351. X    {
  352. X        if(!xpos)
  353. X            putword(txt);
  354. X        else
  355. X        {
  356. X            newline();
  357. X            writeword(txt);
  358. X            return;
  359. X        }
  360. X    }
  361. X    else
  362. X        putword(txt);
  363. X}
  364. X
  365. void putword(txt)
  366. char *txt;
  367. X{
  368. int n;
  369. X    for(n=0;n<strlen(txt);n++)
  370. X        writechar(txt[n]);
  371. X}
  372. X
  373. void writechar(x)
  374. char x;
  375. X{
  376. char chr = upper?toupper(x):x;
  377. X    calc_char(chr);
  378. X    insert_char(chr);
  379. X    if((xpos+=size_x)>XMAX-1) newline();
  380. X}
  381. X
  382. void calc_char(x)
  383. char x;
  384. X{
  385. int n,m,a,b;
  386. X    fchar2|=(UCHAR)0x80;
  387. X    clearmem(CLEAR_CHAR);
  388. X    for(n=0,m=-1;n<zs[1] && m<0;n++)
  389. X    {
  390. X        if(zs[2+n*3]==x)
  391. X            m=n;
  392. X    }
  393. X    if(m<0) return;
  394. X    for(n=0;n<8;n++)
  395. X    {
  396. X        b=(int)zs[2+256*zs[m*3+3]+zs[m*3+4]+n];
  397. X        for(a=0;a<8;a++)
  398. X        {
  399. X            if(b&1)
  400. X                chr[n*8+7-a]=inverse?(UCHAR)fchar2:(chars?x:(fcharf?fchar:'#'));
  401. X            else
  402. X                chr[n*8+7-a]=inverse?(chars?x:(fcharf?fchar:'#')):(UCHAR)fchar2;
  403. X            b>>=1;
  404. X        }
  405. X    }
  406. X}
  407. X
  408. void insert_char(chrx)
  409. char chrx;
  410. X{
  411. int n,m;
  412. UCHAR x = fchar2, xold;
  413. X    empty=FALSE;
  414. X    for(n=0;n<8;n++)
  415. X    {
  416. X        for(m=0;m<8;m++)
  417. X        {
  418. X            xold=x;
  419. X            x=chr[8*n+m];
  420. X            if(!ultraflag)
  421. X                line[size_h*n+xpos+m]=(UCHAR)x&0x7f;
  422. X            else
  423. X            {
  424. X                if(x==(UCHAR)fchar2 && xold==(UCHAR)(chars?chrx:fchar))
  425. X                    x=(UCHAR)shadow_char;
  426. X                line[size_h*n+xpos+m]=(UCHAR)x&0x7f;
  427. X            }
  428. X        }
  429. X    }
  430. X}
  431. X
  432. void newline(/*void*/)
  433. X{
  434. int a,b,c,x, wrote;
  435. X    if(empty)
  436. X    {
  437. X        xpos=0;
  438. X        return;
  439. X    }
  440. X    empty=TRUE;
  441. X    xpos=0;
  442. X    for(a=0;a<SIZE_LINE_Y;a++)
  443. X    {
  444. X        wrote=0;
  445. X        if(italics)
  446. X        {
  447. X            for(b=0;b<(SIZE_LINE_Y-a);b++, wrote++)
  448. X                putchar(' ');
  449. X        }
  450. X        for(b=size_h-1,c=0;b>1 && !c;b--)
  451. X        {
  452. X            if(line[size_h*a+b]!=' ' && line[size_h*a+b]!='\0')
  453. X                c=(++b);
  454. X        }
  455. X        for(b=0;b<c && b<size_h;b++)
  456. X        {
  457. X            x=(int)line[size_h*a+b];
  458. X            if(!x) x=32;
  459. X            putchar(x);
  460. X            wrote++;
  461. X        }
  462. X        if(wrote<(size_h+(italics?SIZE_LINE_Y:0)))
  463. X            putchar('\n');
  464. X    }
  465. X    clearmem(CLEAR_LINE);
  466. X}
  467. X
  468. void clearmem(was)
  469. int was;
  470. X{
  471. register UINT n;
  472. X    if(was&CLEAR_CHAR)
  473. X    {
  474. X        for(n=0;n<SIZE_CHAR;n++)
  475. X            chr[n]=(char)32;
  476. X    }
  477. X    if(was&CLEAR_LINE)
  478. X    {
  479. X        for(n=0;n<SIZE_LINE;n++)
  480. X            line[n]=(char)0;
  481. X    }
  482. X}
  483. X
  484. void help(/*void*/)
  485. X{
  486. X    printf("\nBanner.c, V%1.1f (PL%d), (c)1990 by Lizard\n=======================================\n",
  487. X        VERSION, PATCHLEVEL);
  488. X#ifdef AMIGA
  489. X    puts("( Geschrieben urspruenglich fuer FALCON :-)");
  490. X#endif /* ;-) */
  491. X    puts("Aufruf:   Banner /<option1> /<opt2> /<opt3> [etc... :-)] <text>\n");
  492. X    puts("Moegliche Optionen:\n");
  493. X    puts(" /?          : Dieser Text hier. Auch: /h oder kein Parameter.");
  494. X    puts(" /S:<breite> : Breite des geBANNERten Textes (Horizontal/Gesamt), Default: 80");
  495. X    puts(" /D:<path>   : Anderes Zeichensatz-Datenfile hernehmen.");
  496. X#ifndef AMIGA
  497. X    puts(" /F:<path>   : File <path> bannern.");
  498. X#endif /* Tja, amiga hat nicht fopen("..","rb") !! */
  499. X    puts(" /#          : Die Buchstaben werden anstatt mit #'s mit den jeweiligen Chars");
  500. X    puts("               gebildet.");
  501. X    puts(" /P          : Pipe-option: Von stdin wird der zu bannernde Text gelesen.");
  502. X    puts(" /U          : Alles in Grossbuchstaben umwandeln.");
  503. X    puts(" /R          : Invertierte Darstellung.");
  504. X    puts(" /I          : Italics (schraege Buchstaben)");
  505. X    puts(" /Cxy!x      : 'Vordergrundfarbe'=x, 'Hintergrundfarbe'=y. y ist optional.");
  506. X    puts("             : Bei angegebenem '!' wird die Shadow-funktion aktiviert.");
  507. X    puts("             : x ist falls angegeben das 'Shadow-zeichen' (default:Space)");
  508. X    puts("-------------------------------------------------------------------");
  509. X}
  510. X
  511. void shutdown(txt)
  512. char *txt;
  513. X{
  514. X#ifdef MS_DOS
  515. X        fcloseall();
  516. X#endif
  517. X#ifndef INTERN_DATA
  518. X        if(zs) free((void *)zs);
  519. X#endif
  520. X    if(chr) free((char *)chr);
  521. X    if(line) free((char *)line);
  522. X    if(*txt) printf("\n%s\n",txt);
  523. X    exit(0);
  524. X}
  525. X
  526. X
  527. END_OF_FILE
  528. if test 14988 -ne `wc -c <'banner-02/banner.c'`; then
  529.     echo shar: \"'banner-02/banner.c'\" unpacked with wrong size!
  530. fi
  531. # end of 'banner-02/banner.c'
  532. fi
  533. if test -f 'banner-05/kbandat.c' -a "${1}" != "-c" ; then 
  534.   echo shar: Will not clobber existing file \"'banner-05/kbandat.c'\"
  535. else
  536. echo shar: Extracting \"'banner-05/kbandat.c'\" \(15981 characters\)
  537. sed "s/^X//" >'banner-05/kbandat.c' <<'END_OF_FILE'
  538. X/********************************************************/
  539. X/*                            */
  540. X/*    SEMI's BANNER ( DATA FILE for Ver 1.21- )    */
  541. X/*                            */
  542. X/********************************************************/
  543. X
  544. X#define    MAX_LEN     256            /* maximum length of inputed string */
  545. X#define    WIDTH      13            /* vertical width of characters */
  546. X#define    _WIDTH      14            /*    -- in even number */
  547. X#define    KOR_LEN    1024            /* 2^( the length of Korean ) */
  548. X
  549. X#define    CMD_CHR    '/'    /* character for mode change, toggle of Korean mode */
  550. X
  551. X#define    Eng_Ptn     1    /* the number of pattern-series of English */
  552. X#define    Eng_Num    95    /* the number of English Alphabets */
  553. X
  554. char    eng_chr[] = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!?@#$%^&*=+-_~`'\"()[]{}<>:;.,/\\|";
  555. X
  556. short    stepspace = 1;    /* set space steps between characters */
  557. X
  558. X#define    N_MODE    1    /* the number of modes, cmodes */
  559. X#define    N_CMODE    6
  560. X#define    MODE    0    /* the initial value for mode, cmode */
  561. X#define    CMODE    0
  562. X
  563. char    mod_chr[] = ".+";    /* character determining mode(English pattern) */
  564. short    mode = MODE;
  565. char    font_choice[][ 5 ] =    /* fonts for 0, 1, 2, 3 value each */
  566. X    { " .'|", " .\"!", " _\"O", "#\". ", "O\"_ ", "|'_ " };
  567. short    cmode = CMODE;
  568. X
  569. X#define    Fir_Ptn     6    /*   - Korean consonants in the 1st location */
  570. X#define    Fir_Num    19
  571. X#define    Sec_Ptn     2    /*     - vouelles */
  572. X#define Sec_Num    21
  573. X#define    Thi_Ptn     1    /*     - consonants in the last location */
  574. X#define    Thi_Num    27
  575. X
  576. char    *kor_key[] =    /* FIRST, SECOND, THIRD in keyboard */
  577. X    { "rsefaqtdwczxvgREQTW", "koiOjpuPlhhhhynnnnbmm", "rrRssseffffffffaqqtTdwczxvg" };
  578. X
  579. short    eng_fnt[ Eng_Ptn ][ Eng_Num ][ WIDTH+1 ] =    /* English fonts */
  580. X{{{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 },        /* SPACE */
  581. X  { 16, 16, 56, 56, 76, 76, 124, 134, 134, 463, 0, 0, 511, 512 },    /* A */
  582. X  { 504, 204, 198, 198, 252, 198, 195, 195, 198, 508, 0, 0, 511, 512 },
  583. X  { 122, 454, 386, 768, 768, 768, 768, 385, 450, 124, 0, 0, 1023, 1024 },
  584. X  { 504, 204, 198, 198, 195, 195, 195, 195, 198, 508, 0, 0, 511, 512 },
  585. X  { 510, 194, 192, 200, 248, 200, 192, 192, 193, 511, 0, 0, 511, 512 },
  586. X  { 255, 97, 96, 100, 124, 100, 96, 96, 96, 240, 0, 0, 255, 256 },
  587. X  { 122, 454, 386, 768, 768, 783, 774, 390, 454, 122, 0, 0, 1023, 1024 },
  588. X  { 975, 390, 390, 390, 510, 390, 390, 390, 390, 975, 0, 0, 1023, 1024 },
  589. X  { 15, 6, 6, 6, 6, 6, 6, 6, 6, 15, 0, 0, 15, 16 },
  590. X  { 15, 6, 6, 6, 6, 6, 6, 6, 102, 108, 56, 0, 127, 128 },
  591. X  { 486, 196, 200, 208, 240, 216, 204, 204, 198, 487, 0, 0, 511, 512 },
  592. X  { 480, 192, 192, 192, 192, 192, 192, 192, 193, 511, 0, 0, 511, 512 },
  593. X  { 903, 390, 462, 462, 462, 374, 374, 294, 294, 943, 0, 0, 1023, 1024 },
  594. X  { 391, 194, 226, 162, 178, 154, 142, 142, 134, 450, 0, 0, 511, 512 },
  595. X  { 124, 460, 390, 774, 771, 771, 771, 387, 454, 124, 0, 0, 1023, 1024 },
  596. X  { 252, 102, 99, 99, 99, 126, 96, 96, 96, 240, 0, 0, 255, 256 },
  597. X  { 124, 460, 390, 774, 771, 771, 787, 393, 198, 123, 0, 0, 1023, 1024 },
  598. X  { 504, 204, 198, 198, 252, 200, 196, 198, 199, 482, 0, 0, 511, 512 },
  599. X  { 122, 198, 194, 240, 124, 30, 7, 259, 390, 380, 0, 0, 511, 512 },
  600. X  { 255, 153, 24, 24, 24, 24, 24, 24, 24, 60, 0, 0, 255, 256 },
  601. X  { 487, 194, 194, 194, 194, 194, 194, 194, 100, 56, 0, 0, 511, 512 },
  602. X  { 487, 194, 194, 100, 100, 100, 56, 56, 16, 16, 0, 0, 511, 512 },
  603. X  { 7655, 3266, 3266, 1636, 1636, 1636, 952, 952, 272, 272, 0, 0, 8191, 8192 },
  604. X  { 247, 98, 52, 52, 24, 24, 44, 44, 70, 199, 0, 0, 255, 256 },
  605. X  { 247, 98, 52, 52, 24, 24, 24, 24, 24, 60, 0, 0, 255, 256 },
  606. X  { 510, 262, 12, 24, 48, 48, 96, 192, 385, 511, 0, 0, 511, 512 },
  607. X
  608. X  { 0, 0, 0, 60, 102, 14, 54, 102, 103, 58, 0, 0, 127, 128 },        /* a */
  609. X  { 224, 96, 96, 110, 115, 99, 97, 97, 98, 60, 0, 0, 255, 256 },
  610. X  { 0, 0, 0, 30, 35, 96, 96, 96, 49, 30, 0, 0, 127, 128 },
  611. X  { 14, 6, 6, 54, 78, 134, 134, 198, 206, 119, 0, 0, 255, 256 },
  612. X  { 0, 0, 0, 30, 35, 127, 96, 96, 49, 30, 0, 0, 127, 128 },
  613. X  { 6, 11, 24, 60, 24, 24, 24, 24, 24, 60, 0, 0, 63, 64 },
  614. X  { 0, 0, 0, 29, 54, 54, 28, 16, 62, 31, 33, 126, 60, 128 },
  615. X  { 224, 96, 96, 108, 118, 102, 102, 102, 102, 247, 0, 0, 255, 256 },
  616. X  { 6, 6, 0, 14, 6, 6, 6, 6, 6, 15, 0, 0, 15, 16 },
  617. X  { 3, 3, 0, 7, 3, 3, 3, 3, 3, 3, 3, 26, 12, 32 },
  618. X  { 224, 96, 96, 102, 100, 104, 120, 108, 102, 247, 0, 0, 255, 256 },
  619. X  { 14, 6, 6, 6, 6, 6, 6, 6, 6, 15, 0, 0, 15, 16 },
  620. X  { 0, 0, 0, 876, 438, 438, 438, 438, 438, 951, 0, 0, 1023, 1024 },
  621. X  { 0, 0, 0, 220, 102, 102, 102, 102, 102, 247, 0, 0, 255, 256 },
  622. X  { 0, 0, 0, 28, 38, 99, 99, 99, 51, 30, 0, 0, 127, 128 },
  623. X  { 0, 0, 0, 238, 115, 99, 97, 97, 98, 124, 96, 96, 240, 256 },
  624. X  { 0, 0, 0, 58, 70, 134, 134, 198, 206, 118, 6, 6, 15, 256 },
  625. X  { 0, 0, 0, 118, 59, 48, 48, 48, 48, 120, 0, 0, 127, 128 },
  626. X  { 0, 0, 0, 30, 50, 56, 12, 39, 51, 46, 0, 0, 63, 64 },
  627. X  { 0, 4, 12, 30, 12, 12, 12, 12, 13, 6, 0, 0, 31, 32 },
  628. X  { 0, 0, 0, 238, 102, 102, 102, 102, 102, 59, 0, 0, 255, 256 },
  629. X  { 0, 0, 0, 247, 98, 50, 52, 28, 24, 8, 0, 0, 255, 256 },
  630. X  { 0, 0, 0, 1911, 818, 818, 476, 476, 136, 136, 0, 0, 2047, 2048 },
  631. X  { 0, 0, 0, 119, 50, 28, 8, 28, 38, 103, 0, 0, 127, 128 },
  632. X  { 0, 0, 0, 247, 98, 50, 52, 28, 24, 8, 16, 208, 96, 256 },
  633. X  { 0, 0, 0, 126, 70, 12, 24, 48, 97, 127, 0, 0, 127, 128 },
  634. X  { 0, },    /* 0 */
  635. X  { 0, },
  636. X  { 0, },
  637. X  { 0, },
  638. X  { 0, },
  639. X  { 0, },
  640. X  { 0, },
  641. X  { 0, },
  642. X  { 0, },
  643. X  { 0, },
  644. X  { 0, },
  645. X  { 2, 7, 7, 7, 7, 2, 2, 2, 0, 2, 7, 2, 0, 8 },
  646. X},}
  647. X;
  648. X
  649. short    fir_fnt[ Fir_Ptn ][ Fir_Num ][ WIDTH ] =    /* first ( Korean ) */
  650. X
  651. X{{{ 992, 32, 32, 32, 32, 32, 64, 64, 64, 128, 128, 256, 512 },    /* Ab */
  652. X  { 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 992 },
  653. X  { 992, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 992 },
  654. X  { 992, 32, 32, 32, 32, 32, 992, 512, 512, 512, 512, 512, 992 },
  655. X  { 992, 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, 992 },
  656. X  { 544, 544, 544, 544, 544, 544, 992, 544, 544, 544, 544, 544, 992 },
  657. X  { 128, 128, 128, 128, 128, 320, 320, 320, 320, 544, 544, 544, 544 },
  658. X  { 128, 320, 320, 544, 544, 544, 544, 544, 544, 544, 320, 320, 128 },
  659. X  { 992, 128, 128, 128, 128, 320, 320, 320, 320, 544, 544, 544, 544 },
  660. X  { 128, 128, 992, 128, 128, 128, 128, 320, 320, 320, 544, 544, 544 },
  661. X  { 992, 32, 32, 32, 992, 32, 64, 64, 64, 128, 128, 256, 512 },
  662. X  { 992, 512, 512, 512, 512, 512, 992, 512, 512, 512, 512, 512, 992 },
  663. X  { 992, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 992 },
  664. X  { 128, 128, 992, 0, 0, 128, 320, 544, 544, 544, 544, 320, 128 },
  665. X  { 864, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 576 },
  666. X  { 864, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 864 },
  667. X  { 672, 672, 672, 672, 672, 672, 992, 672, 672, 672, 672, 672, 992 },
  668. X  { 320, 320, 320, 320, 320, 320, 320, 672, 672, 672, 672, 672, 672 },
  669. X  { 992, 320, 320, 320, 320, 320, 320, 672, 672, 672, 672, 672, 672 } },
  670. X
  671. X {{ 1022, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0 },        /* Al */
  672. X  { 512, 512, 512, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0 },
  673. X  { 1022, 512, 512, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0 },
  674. X  { 1022, 2, 1022, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0 },
  675. X  { 1022, 514, 514, 514, 514, 1022, 0, 0, 0, 0, 0, 0, 0 },
  676. X  { 514, 514, 1022, 514, 514, 1022, 0, 0, 0, 0, 0, 0, 0 },
  677. X  { 32, 32, 80, 136, 260, 514, 0, 0, 0, 0, 0, 0, 0 },
  678. X  { 248, 260, 514, 514, 260, 248, 0, 0, 0, 0, 0, 0, 0 },
  679. X  { 1022, 32, 80, 136, 260, 514, 0, 0, 0, 0, 0, 0, 0 },
  680. X  { 32, 1022, 32, 80, 136, 774, 0, 0, 0, 0, 0, 0, 0 },
  681. X  { 1022, 2, 2, 1022, 2, 2, 0, 0, 0, 0, 0, 0, 0 },
  682. X  { 1022, 512, 1022, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0 },
  683. X  { 1022, 136, 136, 136, 136, 1022, 0, 0, 0, 0, 0, 0, 0 },
  684. X  { 32, 1022, 0, 508, 514, 508, 0, 0, 0, 0, 0, 0, 0 },
  685. X  { 990, 66, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0 },
  686. X  { 990, 528, 528, 528, 528, 990, 0, 0, 0, 0, 0, 0, 0 },
  687. X  { 594, 594, 990, 594, 594, 990, 0, 0, 0, 0, 0, 0, 0 },
  688. X  { 136, 136, 136, 340, 340, 546, 0, 0, 0, 0, 0, 0, 0 },
  689. X  { 1022, 136, 136, 340, 340, 546, 0, 0, 0, 0, 0, 0, 0 } },
  690. X
  691. X {{ 992, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0 },        /* Alb */
  692. X  { 512, 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0 },
  693. X  { 992, 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0 },
  694. X  { 992, 32, 992, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0 },
  695. X  { 992, 544, 544, 544, 544, 992, 0, 0, 0, 0, 0, 0, 0 },
  696. X  { 544, 544, 992, 544, 544, 992, 0, 0, 0, 0, 0, 0, 0 },
  697. X  { 128, 128, 320, 320, 544, 544, 0, 0, 0, 0, 0, 0, 0 },
  698. X  { 128, 320, 544, 544, 320, 128, 0, 0, 0, 0, 0, 0, 0 },
  699. X  { 992, 128, 128, 320, 320, 544, 0, 0, 0, 0, 0, 0, 0 },
  700. X  { 128, 992, 128, 128, 320, 544, 0, 0, 0, 0, 0, 0, 0 },
  701. X  { 992, 32, 32, 992, 32, 32, 0, 0, 0, 0, 0, 0, 0 },
  702. X  { 992, 512, 992, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0 },
  703. X  { 992, 320, 320, 320, 320, 992, 0, 0, 0, 0, 0, 0, 0 },
  704. X  { 128, 992, 0, 448, 544, 448, 0, 0, 0, 0, 0, 0, 0 }, 
  705. X  { 864, 288, 288, 288, 288, 288, 0, 0, 0, 0, 0, 0, 0 },
  706. X  { 864, 576, 576, 576, 576, 864, 0, 0, 0, 0, 0, 0, 0 },
  707. X  { 672, 672, 992, 672, 672, 992, 0, 0, 0, 0, 0, 0, 0 },
  708. X  { 320, 320, 320, 672, 672, 672, 0, 0, 0, 0, 0, 0, 0 },
  709. X  { 992, 320, 320, 320, 672, 672, 0, 0, 0, 0, 0, 0, 0 } },
  710. X
  711. X {{ 992, 32, 32, 64, 64, 128, 768, 0, 0, 0, 0, 0, 0 },    /* AbA */
  712. X  { 512, 512, 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0 },
  713. X  { 992, 512, 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0 },
  714. X  { 992, 32, 32, 992, 512, 512, 992, 0, 0, 0, 0, 0, 0 },
  715. X  { 992, 544, 544, 544, 544, 544, 992, 0, 0, 0, 0, 0, 0 },
  716. X  { 544, 544, 544, 992, 544, 544, 992, 0, 0, 0, 0, 0, 0 },
  717. X  { 128, 128, 128, 320, 320, 544, 544, 0, 0, 0, 0, 0, 0 },
  718. X  { 128, 320, 544, 544, 544, 320, 128, 0, 0, 0, 0, 0, 0 },
  719. X  { 992, 128, 128, 320, 320, 544, 544, 0, 0, 0, 0, 0, 0 },
  720. X  { 128, 992, 128, 128, 320, 320, 544, 0, 0, 0, 0, 0, 0 },
  721. X  { 992, 32, 992, 32, 64, 128, 768, 0, 0, 0, 0, 0, 0 },
  722. X  { 992, 512, 512, 992, 512, 512, 992, 0, 0, 0, 0, 0, 0 },
  723. X  { 992, 320, 320, 320, 320, 320, 992, 0, 0, 0, 0, 0, 0 },
  724. X  { 128, 992, 0, 448, 544, 544, 448, 0, 0, 0, 0, 0, 0 },
  725. X  { 864, 288, 288, 288, 288, 288, 576, 0, 0, 0, 0, 0, 0 },
  726. X  { 864, 576, 576, 576, 576, 576, 864, 0, 0, 0, 0, 0, 0 },
  727. X  { 672, 672, 672, 992, 672, 672, 992, 0, 0, 0, 0, 0, 0 },
  728. X  { 320, 320, 320, 672, 672, 672, 672, 0, 0, 0, 0, 0, 0 },
  729. X  { 992, 320, 320, 320, 672, 672, 672, 0, 0, 0, 0, 0, 0 } },
  730. X
  731. X {{ 1022, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0 },        /* AlA */
  732. X  { 512, 512, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  733. X  { 1022, 512, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  734. X  { 1022, 2, 1022, 512, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  735. X  { 1022, 514, 514, 514, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  736. X  { 514, 514, 1022, 514, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  737. X  { 32, 80, 136, 260, 514, 0, 0, 0, 0, 0, 0, 0, 0 },
  738. X  { 112, 396, 514, 396, 112, 0, 0, 0, 0, 0, 0, 0, 0 },
  739. X  { 1022, 32, 80, 136, 774, 0, 0, 0, 0, 0, 0, 0, 0 },
  740. X  { 32, 1022, 32, 216, 774, 0, 0, 0, 0, 0, 0, 0, 0 },
  741. X  { 1022, 2, 1022, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
  742. X  { 1022, 512, 1022, 512, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  743. X  { 1022, 136, 136, 136, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
  744. X  { 32, 1022, 508, 514, 508, 0, 0, 0, 0, 0, 0, 0, 0 }, 
  745. X  { 990, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0 },
  746. X  { 990, 528, 528, 528, 990, 0, 0, 0, 0, 0, 0, 0, 0 },
  747. X  { 594, 594, 990, 594, 990, 0, 0, 0, 0, 0, 0, 0, 0 },
  748. X  { 136, 136, 340, 340, 546, 0, 0, 0, 0, 0, 0, 0, 0 },
  749. X  { 1022, 136, 136, 340, 546, 0, 0, 0, 0, 0, 0, 0, 0 } },
  750. X
  751. X {{ 992, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0 },    /* AlbA */
  752. X  { 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  753. X  { 992, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  754. X  { 992, 32, 992, 512, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  755. X  { 992, 544, 544, 544, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  756. X  { 544, 544, 992, 544, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  757. X  { 128, 128, 320, 320, 544, 0, 0, 0, 0, 0, 0, 0, 0 },
  758. X  { 448, 544, 544, 544, 448, 0, 0, 0, 0, 0, 0, 0, 0 },
  759. X  { 992, 128, 128, 320, 544, 0, 0, 0, 0, 0, 0, 0, 0 },
  760. X  { 128, 992, 128, 320, 544, 0, 0, 0, 0, 0, 0, 0, 0 },
  761. X  { 992, 32, 992, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0 },
  762. X  { 992, 512, 992, 512, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  763. X  { 992, 320, 320, 320, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  764. X  { 128, 992, 448, 544, 448, 0, 0, 0, 0, 0, 0, 0, 0 },
  765. X  { 864, 288, 288, 288, 288, 0, 0, 0, 0, 0, 0, 0, 0 },
  766. X  { 864, 576, 576, 576, 864, 0, 0, 0, 0, 0, 0, 0, 0 },
  767. X  { 672, 672, 992, 672, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
  768. X  { 320, 320, 320, 672, 672, 0, 0, 0, 0, 0, 0, 0, 0 },
  769. X  { 992, 320, 320, 672, 672, 0, 0, 0, 0, 0, 0, 0, 0 } } }
  770. X    ;
  771. X
  772. short    sec_fnt[ Sec_Ptn ][ Sec_Num ][ WIDTH ] =    /* second ( Korean ) */
  773. X
  774. X{{{ 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2 },        /* Wb, Wl, Wlb */
  775. X  { 10, 10, 10, 10, 10, 10, 14, 10, 10, 10, 10, 10, 10 },
  776. X  { 2, 2, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2, 2 },
  777. X  { 10, 10, 10, 10, 14, 10, 10, 10, 14, 10, 10, 10, 10 },
  778. X  { 2, 2, 2, 2, 2, 2, 14, 2, 2, 2, 2, 2, 2 },
  779. X  { 10, 10, 10, 10, 10, 10, 58, 10, 10, 10, 10, 10, 10 },
  780. X  { 2, 2, 2, 2, 14, 2, 2, 2, 14, 2, 2, 2, 2 },
  781. X  { 10, 10, 10, 10, 58, 10, 10, 10, 58, 10, 10, 10, 10 },
  782. X  { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
  783. X  { 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 1022 },
  784. X  { 2, 2, 2, 2, 2, 2, 3, 130, 130, 130, 130, 130, 994 },
  785. X  { 10, 10, 10, 10, 10, 10, 14, 138, 138, 138, 138, 138, 1002 },
  786. X  { 2, 2, 2, 2, 2, 2, 2, 130, 130, 130, 130, 130, 994 },
  787. X  { 0, 0, 0, 0, 0, 0, 0, 136, 136, 136, 136, 136, 1022 },
  788. X  { 0, 0, 0, 0, 0, 0, 0, 1022, 32, 32, 32, 32, 32 },
  789. X  { 2, 2, 2, 2, 2, 2, 2, 994, 130, 130, 142, 130, 130 },
  790. X  { 10, 10, 10, 10, 10, 10, 10, 1002, 138, 138, 186, 138, 138 },
  791. X  { 2, 2, 2, 2, 2, 2, 2, 994, 130, 130, 130, 130, 130 },
  792. X  { 0, 0, 0, 0, 0, 0, 0, 1022, 136, 136, 136, 136, 136 },
  793. X  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1022 },
  794. X  { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 994 } },
  795. X
  796. X {{ 2, 2, 2, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0 },        /* WbW, WlW, WlbW */
  797. X  { 10, 10, 10, 14, 10, 10, 10, 0, 0, 0, 0, 0, 0 },
  798. X  { 2, 2, 3, 2, 3, 2, 2, 0, 0, 0, 0, 0, 0 },
  799. X  { 10, 10, 14, 10, 14, 10, 10, 0, 0, 0, 0, 0, 0 },
  800. X  { 2, 2, 2, 14, 2, 2, 2, 0, 0, 0, 0, 0, 0 },
  801. X  { 10, 10, 10, 58, 10, 10, 10, 0, 0, 0, 0, 0, 0 },
  802. X  { 2, 2, 14, 2, 14, 2, 2, 0, 0, 0, 0, 0, 0 },
  803. X  { 10, 10, 58, 10, 58, 10, 10, 0, 0, 0, 0, 0, 0 },
  804. X  { 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0 },
  805. X  { 0, 0, 0, 0, 32, 32, 1022, 0, 0, 0, 0, 0, 0 },
  806. X  { 2, 2, 2, 3, 130, 130, 994, 0, 0, 0, 0, 0, 0 },
  807. X  { 10, 10, 10, 14, 138, 138, 1002, 0, 0, 0, 0, 0, 0 },
  808. X  { 2, 2, 2, 2, 130, 130, 994, 0, 0, 0, 0, 0, 0 },
  809. X  { 0, 0, 0, 0, 136, 136, 1022, 0, 0, 0, 0, 0, 0 },
  810. X  { 0, 0, 0, 0, 0, 0, 1022, 32, 32, 0, 0, 0, 0 },
  811. X  { 2, 2, 2, 14, 2, 2, 994, 130, 130, 0, 0, 0, 0 },
  812. X  { 10, 10, 10, 58, 10, 10, 1002, 138, 138, 0, 0, 0, 0 },
  813. X  { 2, 2, 2, 2, 2, 2, 994, 130, 130, 0, 0, 0, 0 },
  814. X  { 0, 0, 0, 0, 0, 0, 1022, 136, 136, 0, 0, 0, 0 },
  815. X  { 0, 0, 0, 0, 0, 0, 1022, 0, 0, 0, 0, 0, 0 },
  816. X  { 2, 2, 2, 2, 2, 2, 994, 0, 0, 0, 0, 0, 0 } } }
  817. X    ;
  818. X
  819. short    thi_fnt[ Thi_Ptn ][ Thi_Num ][ WIDTH ] =    /* third ( Korean ) */
  820. X
  821. X{{{ 0, 0, 0, 0, 0, 0, 0, 0, 1022, 2, 2, 2, 2 },        /* WbA, WlA, WlbA */
  822. X  { 0, 0, 0, 0, 0, 0, 0, 0, 968, 72, 84, 84, 98 },
  823. X  { 0, 0, 0, 0, 0, 0, 0, 0, 990, 66, 66, 66, 66 },
  824. X  { 0, 0, 0, 0, 0, 0, 0, 0, 512, 512, 512, 512, 1022 },
  825. X  { 0, 0, 0, 0, 0, 0, 0, 0, 574, 520, 520, 532, 994 },
  826. X  { 0, 0, 0, 0, 0, 0, 0, 0, 520, 574, 540, 546, 988 },
  827. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 512, 512, 512, 1022 },
  828. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 2, 1022, 512, 1022 },
  829. X  { 0, 0, 0, 0, 0, 0, 0, 0, 990, 66, 962, 514, 962 },
  830. X  { 0, 0, 0, 0, 0, 0, 0, 0, 990, 82, 978, 530, 990 },
  831. X  { 0, 0, 0, 0, 0, 0, 0, 0, 978, 82, 990, 530, 990 },
  832. X  { 0, 0, 0, 0, 0, 0, 0, 0, 968, 72, 980, 532, 994 },
  833. X  { 0, 0, 0, 0, 0, 0, 0, 0, 990, 80, 990, 528, 990 },
  834. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 84, 980, 532, 1022 },
  835. X  { 0, 0, 0, 0, 0, 0, 0, 0, 968, 126, 988, 546, 988 },
  836. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 514, 514, 514, 1022 },
  837. X  { 0, 0, 0, 0, 0, 0, 0, 0, 514, 514, 1022, 514, 1022 },
  838. X  { 0, 0, 0, 0, 0, 0, 0, 0, 584, 584, 980, 596, 994 },
  839. X  { 0, 0, 0, 0, 0, 0, 0, 0, 32, 80, 136, 260, 514 },
  840. X  { 0, 0, 0, 0, 0, 0, 0, 0, 136, 136, 340, 340, 546 },
  841. X  { 0, 0, 0, 0, 0, 0, 0, 0, 248, 260, 514, 260, 248 },
  842. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 32, 80, 136, 774 },
  843. X  { 0, 0, 0, 0, 0, 0, 0, 0, 32, 1022, 80, 136, 774 },
  844. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 2, 1022, 2, 2 },
  845. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 512, 1022, 512, 1022 },
  846. X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 136, 136, 136, 1022 },
  847. X  { 0, 0, 0, 0, 0, 0, 0, 0, 32, 1022, 508, 514, 508 } } }
  848. X    ;
  849. X
  850. END_OF_FILE
  851. echo shar: 30 control characters may be missing from \"'banner-05/kbandat.c'\"
  852. if test 15981 -ne `wc -c <'banner-05/kbandat.c'`; then
  853.     echo shar: \"'banner-05/kbandat.c'\" unpacked with wrong size!
  854. fi
  855. # end of 'banner-05/kbandat.c'
  856. fi
  857. if test -f 'banner-09/data.c' -a "${1}" != "-c" ; then 
  858.   echo shar: Will not clobber existing file \"'banner-09/data.c'\"
  859. else
  860. echo shar: Extracting \"'banner-09/data.c'\" \(19204 characters\)
  861. sed "s/^X//" >'banner-09/data.c' <<'END_OF_FILE'
  862. char *data[][10] = {
  863. X    { /* ^@ */
  864. X        "", "", "", "", "", "", "", "", "", "",
  865. X    },
  866. X    { /* ^A */
  867. X        "", "", "", "", "", "", "", "", "", "",
  868. X    },
  869. X    { /* ^B */
  870. X        "", "", "", "", "", "", "", "", "", "",
  871. X    },
  872. X    { /* ^C */
  873. X        "", "", "", "", "", "", "", "", "", "",
  874. X    },
  875. X    { /* ^D */
  876. X        "", "", "", "", "", "", "", "", "", "",
  877. X    },
  878. X    { /* ^E */
  879. X        "", "", "", "", "", "", "", "", "", "",
  880. X    },
  881. X    { /* ^F */
  882. X        "", "", "", "", "", "", "", "", "", "",
  883. X    },
  884. X    { /* ^G */
  885. X        "", "", "", "", "", "", "", "", "", "",
  886. X    },
  887. X    { /* ^H */
  888. X        "", "", "", "", "", "", "", "", "", "",
  889. X    },
  890. X    { /* ^I */
  891. X        "", "", "", "", "", "", "", "", "", "",
  892. X    },
  893. X    { /* ^J */
  894. X        "", "", "", "", "", "", "", "", "", "",
  895. X    },
  896. X    { /* ^K */
  897. X        "", "", "", "", "", "", "", "", "", "",
  898. X    },
  899. X    { /* ^L */
  900. X        "", "", "", "", "", "", "", "", "", "",
  901. X    },
  902. X    { /* ^M */
  903. X        "", "", "", "", "", "", "", "", "", "",
  904. X    },
  905. X    { /* ^N */
  906. X        "", "", "", "", "", "", "", "", "", "",
  907. X    },
  908. X    { /* ^O */
  909. X        "", "", "", "", "", "", "", "", "", "",
  910. X    },
  911. X    { /* ^P */
  912. X        "", "", "", "", "", "", "", "", "", "",
  913. X    },
  914. X    { /* ^Q */
  915. X        "", "", "", "", "", "", "", "", "", "",
  916. X    },
  917. X    { /* ^R */
  918. X        "", "", "", "", "", "", "", "", "", "",
  919. X    },
  920. X    { /* ^S */
  921. X        "", "", "", "", "", "", "", "", "", "",
  922. X    },
  923. X    { /* ^T */
  924. X        "", "", "", "", "", "", "", "", "", "",
  925. X    },
  926. X    { /* ^U */
  927. X        "", "", "", "", "", "", "", "", "", "",
  928. X    },
  929. X    { /* ^V */
  930. X        "", "", "", "", "", "", "", "", "", "",
  931. X    },
  932. X    { /* ^W */
  933. X        "", "", "", "", "", "", "", "", "", "",
  934. X    },
  935. X    { /* ^X */
  936. X        "", "", "", "", "", "", "", "", "", "",
  937. X    },
  938. X    { /* ^Y */
  939. X        "", "", "", "", "", "", "", "", "", "",
  940. X    },
  941. X    { /* ^Z */
  942. X        "", "", "", "", "", "", "", "", "", "",
  943. X    },
  944. X    { /* ^[ */
  945. X        "", "", "", "", "", "", "", "", "", "",
  946. X    },
  947. X    { /* ^\ */
  948. X        "", "", "", "", "", "", "", "", "", "",
  949. X    },
  950. X    { /* ^] */
  951. X        "", "", "", "", "", "", "", "", "", "",
  952. X    },
  953. X    { /* ^^ */
  954. X        "", "", "", "", "", "", "", "", "", "",
  955. X    },
  956. X    { /* ^_ */
  957. X        "", "", "", "", "", "", "", "", "", "",
  958. X    },
  959. X    { /* *SPC* */
  960. X        "         ",
  961. X        "         ",
  962. X        "         ",
  963. X        "         ",
  964. X        "         ",
  965. X        "         ",
  966. X        "         ",
  967. X        "         ",
  968. X        "         ",
  969. X        "         "
  970. X    },
  971. X    { /* ! */
  972. X        "@@@",
  973. X        "@@@",
  974. X        "@@@",
  975. X        " @ ",
  976. X        "   ",
  977. X        "@@@",
  978. X        "@@@",
  979. X        "   ",
  980. X        "   ",
  981. X        "   "
  982. X    },
  983. X    { /* " */
  984. X        "@@@ @@@",
  985. X        "@@@ @@@",
  986. X        " @   @ ",
  987. X        "@   @  ",
  988. X        "       ",
  989. X        "       ",
  990. X        "       ",
  991. X        "       ",
  992. X        "       ",
  993. X        "       "
  994. X    },
  995. X    { /* # */
  996. X        "         ",
  997. X        "  @   @  ",
  998. X        "@@@@@@@@@",
  999. X        "  @   @  ",
  1000. X        "@@@@@@@@@",
  1001. X        "  @   @  ",
  1002. X        "         ",
  1003. X        "         ",
  1004. X        "         ",
  1005. X        "         "
  1006. X    },
  1007. X    { /* $ */
  1008. X        "    @    ",
  1009. X        " @@@@@@@ ",
  1010. X        "@   @    ",
  1011. X        " @@@@@@@ ",
  1012. X        "    @   @",
  1013. X        " @@@@@@@ ",
  1014. X        "    @    ",
  1015. X        "         ",
  1016. X        "         ",
  1017. X        "         "
  1018. X    },
  1019. X    { /* % */
  1020. X        "@@    @",
  1021. X        "@@   @ ",
  1022. X        "    @  ",
  1023. X        "   @   ",
  1024. X        "  @    ",
  1025. X        " @   @@",
  1026. X        "@    @@",
  1027. X        "       ",
  1028. X        "       ",
  1029. X        "       "
  1030. X    },
  1031. X    { /* & */
  1032. X        " @@@   ",
  1033. X        "@   @  ",
  1034. X        " @ @   ",
  1035. X        "  @@   ",
  1036. X        " @  @ @",
  1037. X        "@    @ ",
  1038. X        " @@@@ @",
  1039. X        "       ",
  1040. X        "       ",
  1041. X        "       "
  1042. X    },
  1043. X    { /* ' */
  1044. X        "@@@",
  1045. X        "@@@",
  1046. X        " @ ",
  1047. X        "@  ",
  1048. X        "   ",
  1049. X        "   ",
  1050. X        "   ",
  1051. X        "   ",
  1052. X        "   ",
  1053. X        "   "
  1054. X    },
  1055. X    { /* ( */
  1056. X        "  @",
  1057. X        " @ ",
  1058. X        "@  ",
  1059. X        "@  ",
  1060. X        "@  ",
  1061. X        " @ ",
  1062. X        "  @",
  1063. X        "   ",
  1064. X        "   ",
  1065. X        "   "
  1066. X    },
  1067. X    { /* ) */
  1068. X        "@  ",
  1069. X        " @ ",
  1070. X        "  @",
  1071. X        "  @",
  1072. X        "  @",
  1073. X        " @ ",
  1074. X        "@  ",
  1075. X        "   ",
  1076. X        "   ",
  1077. X        "   "
  1078. X    },
  1079. X    { /* * */
  1080. X        "   @   ",
  1081. X        "@  @  @",
  1082. X        " @ @ @ ",
  1083. X        "  @@@  ",
  1084. X        " @ @ @ ",
  1085. X        "@  @  @",
  1086. X        "   @   ",
  1087. X        "       ",
  1088. X        "       ",
  1089. X        "       "
  1090. X    },
  1091. X    { /* + */
  1092. X        "         ",
  1093. X        "    @    ",
  1094. X        "    @    ",
  1095. X        "@@@@@@@@@",
  1096. X        "    @    ",
  1097. X        "    @    ",
  1098. X        "         ",
  1099. X        "         ",
  1100. X        "         ",
  1101. X        "         "
  1102. X    },
  1103. X    { /* , */
  1104. X        "   ",
  1105. X        "   ",
  1106. X        "   ",
  1107. X        "   ",
  1108. X        "   ",
  1109. X        "@@@",
  1110. X        "@@@",
  1111. X        " @ ",
  1112. X        "@  ",
  1113. X        "   "
  1114. X    },
  1115. X    { /* - */
  1116. X        "         ",
  1117. X        "         ",
  1118. X        "         ",
  1119. X        "@@@@@@@@@",
  1120. X        "         ",
  1121. X        "         ",
  1122. X        "         ",
  1123. X        "         ",
  1124. X        "         ",
  1125. X        "         "
  1126. X    },
  1127. X    { /* . */
  1128. X        "   ",
  1129. X        "   ",
  1130. X        "   ",
  1131. X        "   ",
  1132. X        "   ",
  1133. X        "@@@",
  1134. X        "@@@",
  1135. X        "   ",
  1136. X        "   ",
  1137. X        "   "
  1138. X    },
  1139. X    { /* / */
  1140. X        "      @",
  1141. X        "     @ ",
  1142. X        "    @  ",
  1143. X        "   @   ",
  1144. X        "  @    ",
  1145. X        " @     ",
  1146. X        "@      ",
  1147. X        "       ",
  1148. X        "       ",
  1149. X        "       "
  1150. X    },
  1151. X    { /* 0 */
  1152. X        "  @@@@@  ",
  1153. X        " @    @@ ",
  1154. X        "@    @  @",
  1155. X        "@   @   @",
  1156. X        "@  @    @",
  1157. X        " @@    @ ",
  1158. X        "  @@@@@  ",
  1159. X        "         ",
  1160. X        "         ",
  1161. X        "         "
  1162. X    },
  1163. X    { /* 1 */
  1164. X        " @ ",
  1165. X        "@@ ",
  1166. X        " @ ",
  1167. X        " @ ",
  1168. X        " @ ",
  1169. X        " @ ",
  1170. X        "@@@",
  1171. X        "   ",
  1172. X        "   ",
  1173. X        "   "
  1174. X    },
  1175. X    { /* 2 */
  1176. X        " @@@@@@@ ",
  1177. X        "@       @",
  1178. X        "        @",
  1179. X        "  @@@@@@ ",
  1180. X        " @       ",
  1181. X        "@        ",
  1182. X        "@@@@@@@@@",
  1183. X        "         ",
  1184. X        "         ",
  1185. X        "         "
  1186. X    },
  1187. X    { /* 3 */
  1188. X        " @@@@@@@ ",
  1189. X        "@       @",
  1190. X        "        @",
  1191. X        "  @@@@@@ ",
  1192. X        "        @",
  1193. X        "@       @",
  1194. X        " @@@@@@@ ",
  1195. X        "         ",
  1196. X        "         ",
  1197. X        "         "
  1198. X    },
  1199. X    { /* 4 */
  1200. X        "   @@@@  ",
  1201. X        "  @   @  ",
  1202. X        " @    @  ",
  1203. X        "@     @  ",
  1204. X        "@@@@@@@@@",
  1205. X        "      @  ",
  1206. X        "      @  ",
  1207. X        "         ",
  1208. X        "         ",
  1209. X        "         "
  1210. X    },
  1211. X    { /* 5 */
  1212. X        "@@@@@@@@@",
  1213. X        "@        ",
  1214. X        "@@@@@@@@ ",
  1215. X        "        @",
  1216. X        "        @",
  1217. X        "@       @",
  1218. X        " @@@@@@@ ",
  1219. X        "         ",
  1220. X        "         ",
  1221. X        "         "
  1222. X    },
  1223. X    { /* 6 */
  1224. X        " @@@@@@@ ",
  1225. X        "@       @",
  1226. X        "@        ",
  1227. X        "@@@@@@@@ ",
  1228. X        "@       @",
  1229. X        "@       @",
  1230. X        " @@@@@@@ ",
  1231. X        "         ",
  1232. X        "         ",
  1233. X        "         "
  1234. X    },
  1235. X    { /* 7 */
  1236. X        "@@@@@@@@@",
  1237. X        "       @ ",
  1238. X        "      @  ",
  1239. X        "     @   ",
  1240. X        "    @    ",
  1241. X        "    @    ",
  1242. X        "    @    ",
  1243. X        "         ",
  1244. X        "         ",
  1245. X        "         "
  1246. X    },
  1247. X    { /* 8 */
  1248. X        " @@@@@@@ ",
  1249. X        "@       @",
  1250. X        "@       @",
  1251. X        " @@@@@@@ ",
  1252. X        "@       @",
  1253. X        "@       @",
  1254. X        " @@@@@@@ ",
  1255. X        "         ",
  1256. X        "         ",
  1257. X        "         "
  1258. X    },
  1259. X    { /* 9 */
  1260. X        " @@@@@@@ ",
  1261. X        "@       @",
  1262. X        "@       @",
  1263. X        " @@@@@@@@",
  1264. X        "        @",
  1265. X        "@       @",
  1266. X        " @@@@@@@ ",
  1267. X        "         ",
  1268. X        "         ",
  1269. X        "         "
  1270. X    },
  1271. X    { /* : */
  1272. X        "   ",
  1273. X        "   ",
  1274. X        "@@@",
  1275. X        "@@@",
  1276. X        "   ",
  1277. X        "@@@",
  1278. X        "@@@",
  1279. X        "   ",
  1280. X        "   ",
  1281. X        "   "
  1282. X    },
  1283. X    { /* ; */
  1284. X        "   ",
  1285. X        "   ",
  1286. X        "@@@",
  1287. X        "@@@",
  1288. X        "   ",
  1289. X        "@@@",
  1290. X        "@@@",
  1291. X        " @ ",
  1292. X        "@  ",
  1293. X        "   "
  1294. X    },
  1295. X    { /* < */
  1296. X        "      @@",
  1297. X        "    @@  ",
  1298. X        "  @@    ",
  1299. X        "@@      ",
  1300. X        "  @@    ",
  1301. X        "    @@  ",
  1302. X        "      @@",
  1303. X        "        ",
  1304. X        "        ",
  1305. X        "        "
  1306. X    },
  1307. X    { /* = */
  1308. X        "         ",
  1309. X        "         ",
  1310. X        "         ",
  1311. X        "@@@@@@@@@",
  1312. X        "         ",
  1313. X        "@@@@@@@@@",
  1314. X        "         ",
  1315. X        "         ",
  1316. X        "         ",
  1317. X        "         ",
  1318. X    },
  1319. X    { /* > */
  1320. X        "@@      ",
  1321. X        "  @@    ",
  1322. X        "    @@  ",
  1323. X        "      @@",
  1324. X        "    @@  ",
  1325. X        "  @@    ",
  1326. X        "@@      ",
  1327. X        "        ",
  1328. X        "        ",
  1329. X        "        "
  1330. X    },
  1331. X    { /* ? */
  1332. X        " @@@@@@@ ",
  1333. X        "@       @",
  1334. X        "        @",
  1335. X        "    @@@@ ",
  1336. X        "    @    ",
  1337. X        "         ",
  1338. X        "    @    ",
  1339. X        "         ",
  1340. X        "         ",
  1341. X        "         "
  1342. X    },
  1343. X    { /* @ */
  1344. X        " @@@@@@@ ",
  1345. X        "@       @",
  1346. X        "@  @@@  @",
  1347. X        "@ @  @  @",
  1348. X        "@  @@@@@ ",
  1349. X        "@        ",
  1350. X        " @@@@@@@ ",
  1351. X        "         ",
  1352. X        "         ",
  1353. X        "         "
  1354. X    },
  1355. X    { /* A */
  1356. X        "   @@@   ",
  1357. X        "  @   @  ",
  1358. X        " @     @ ",
  1359. X        "@       @",
  1360. X        "@@@@@@@@@",
  1361. X        "@       @",
  1362. X        "@       @",
  1363. X        "         ",
  1364. X        "         ",
  1365. X        "         "
  1366. X    },
  1367. X    { /* B */
  1368. X        "@@@@@@@@ ",
  1369. X        "@       @",
  1370. X        "@       @",
  1371. X        "@@@@@@@@ ",
  1372. X        "@       @",
  1373. X        "@       @",
  1374. X        "@@@@@@@@ ",
  1375. X        "         ",
  1376. X        "         ",
  1377. X        "         "
  1378. X    },
  1379. X    { /* C */
  1380. X        "  @@@@@  ",
  1381. X        " @     @ ",
  1382. X        "@       @",
  1383. X        "@        ",
  1384. X        "@       @",
  1385. X        " @     @ ",
  1386. X        "  @@@@@  ",
  1387. X        "         ",
  1388. X        "         ",
  1389. X        "         "
  1390. X    },
  1391. X    { /* D */
  1392. X        "@@@@@@@  ",
  1393. X        "@      @ ",
  1394. X        "@       @",
  1395. X        "@       @",
  1396. X        "@       @",
  1397. X        "@      @ ",
  1398. X        "@@@@@@@  ",
  1399. X        "         ",
  1400. X        "         ",
  1401. X        "         "
  1402. X    },
  1403. X    { /* E */
  1404. X        "@@@@@@@@@",
  1405. X        "@        ",
  1406. X        "@        ",
  1407. X        "@@@@@@@  ",
  1408. X        "@        ",
  1409. X        "@        ",
  1410. X        "@@@@@@@@@",
  1411. X        "         ",
  1412. X        "         ",
  1413. X        "         "
  1414. X    },
  1415. X    { /* F */
  1416. X        "@@@@@@@@@",
  1417. X        "@        ",
  1418. X        "@        ",
  1419. X        "@@@@@@@  ",
  1420. X        "@        ",
  1421. X        "@        ",
  1422. X        "@        ",
  1423. X        "         ",
  1424. X        "         ",
  1425. X        "         "
  1426. X    },
  1427. X    { /* G */
  1428. X        "  @@@@@@ ",
  1429. X        " @      @",
  1430. X        "@        ",
  1431. X        "@    @@@@",
  1432. X        "@       @",
  1433. X        " @     @@",
  1434. X        "  @@@@@ @",
  1435. X        "         ",
  1436. X        "         ",
  1437. X        "         "
  1438. X    },
  1439. X    { /* H */
  1440. X        "@       @",
  1441. X        "@       @",
  1442. X        "@       @",
  1443. X        "@@@@@@@@@",
  1444. X        "@       @",
  1445. X        "@       @",
  1446. X        "@       @",
  1447. X        "         ",
  1448. X        "         ",
  1449. X        "         "
  1450. X    },
  1451. X    { /* I */
  1452. X        "@@@@@",
  1453. X        "  @  ",
  1454. X        "  @  ",
  1455. X        "  @  ",
  1456. X        "  @  ",
  1457. X        "  @  ",
  1458. X        "@@@@@",
  1459. X        "     ",
  1460. X        "     ",
  1461. X        "     "
  1462. X    },
  1463. X    { /* J */
  1464. X        "      @@@",
  1465. X        "       @ ",
  1466. X        "       @ ",
  1467. X        "       @ ",
  1468. X        "@      @ ",
  1469. X        " @    @  ",
  1470. X        "  @@@@   ",
  1471. X        "         ",
  1472. X        "         ",
  1473. X        "         "
  1474. X    },
  1475. X    { /* K */
  1476. X        "@       @",
  1477. X        "@      @ ",
  1478. X        "@     @  ",
  1479. X        "@@@@@@   ",
  1480. X        "@     @  ",
  1481. X        "@      @ ",
  1482. X        "@       @",
  1483. X        "         ",
  1484. X        "         ",
  1485. X        "         "
  1486. X    },
  1487. X    { /* L */
  1488. X        "@        ",
  1489. X        "@        ",
  1490. X        "@        ",
  1491. X        "@        ",
  1492. X        "@        ",
  1493. X        "@        ",
  1494. X        "@@@@@@@@@",
  1495. X        "         ",
  1496. X        "         ",
  1497. X        "         "
  1498. X    },
  1499. X    { /* M */
  1500. X        "@       @",
  1501. X        "@@     @@",
  1502. X        "@ @   @ @",
  1503. X        "@  @ @  @",
  1504. X        "@   @   @",
  1505. X        "@       @",
  1506. X        "@       @",
  1507. X        "         ",
  1508. X        "         ",
  1509. X        "         "
  1510. X    },
  1511. X    { /* N */
  1512. X        "@      @",
  1513. X        "@@     @",
  1514. X        "@ @    @",
  1515. X        "@  @   @",
  1516. X        "@   @  @",
  1517. X        "@    @ @",
  1518. X        "@     @@",
  1519. X        "        ",
  1520. X        "        ",
  1521. X        "        "
  1522. X    },
  1523. X    { /* O */
  1524. X        "  @@@@@  ",
  1525. X        " @     @ ",
  1526. X        "@       @",
  1527. X        "@       @",
  1528. X        "@       @",
  1529. X        " @     @ ",
  1530. X        "  @@@@@  ",
  1531. X        "         ",
  1532. X        "         ",
  1533. X        "         "
  1534. X    },
  1535. X    { /* P */
  1536. X        "@@@@@@@@ ",
  1537. X        "@       @",
  1538. X        "@       @",
  1539. X        "@@@@@@@@ ",
  1540. X        "@        ",
  1541. X        "@        ",
  1542. X        "@        ",
  1543. X        "         ",
  1544. X        "         ",
  1545. X        "         "
  1546. X    },
  1547. X    { /* Q */
  1548. X        "  @@@@@  ",
  1549. X        " @     @ ",
  1550. X        "@       @",
  1551. X        "@       @",
  1552. X        "@     @ @",
  1553. X        " @     @ ",
  1554. X        "  @@@@@ @",
  1555. X        "         ",
  1556. X        "         ",
  1557. X        "         "
  1558. X    },
  1559. X    { /* R */
  1560. X        "@@@@@@@@ ",
  1561. X        "@       @",
  1562. X        "@       @",
  1563. X        "@@@@@@@@ ",
  1564. X        "@     @  ",
  1565. X        "@      @ ",
  1566. X        "@       @",
  1567. X        "         ",
  1568. X        "         ",
  1569. X        "         "
  1570. X    },
  1571. X    { /* S */
  1572. X        " @@@@@@@ ",
  1573. X        "@       @",
  1574. X        "@        ",
  1575. X        " @@@@@@@ ",
  1576. X        "        @",
  1577. X        "@       @",
  1578. X        " @@@@@@@ ",
  1579. X        "         ",
  1580. X        "         ",
  1581. X        "         "
  1582. X    },
  1583. X    { /* T */
  1584. X        "@@@@@@@@@",
  1585. X        "    @    ",
  1586. X        "    @    ",
  1587. X        "    @    ",
  1588. X        "    @    ",
  1589. X        "    @    ",
  1590. X        "    @    ",
  1591. X        "         ",
  1592. X        "         ",
  1593. X        "         "
  1594. X    },
  1595. X    { /* U */
  1596. X        "@       @",
  1597. X        "@       @",
  1598. X        "@       @",
  1599. X        "@       @",
  1600. X        "@       @",
  1601. X        " @     @ ",
  1602. X        "  @@@@@  ",
  1603. X        "         ",
  1604. X        "         ",
  1605. X        "         "
  1606. X    },
  1607. X    { /* V */
  1608. X        "@       @",
  1609. X        "@       @",
  1610. X        "@       @",
  1611. X        "@       @",
  1612. X        " @     @ ",
  1613. X        "  @   @  ",
  1614. X        "   @@@   ",
  1615. X        "         ",
  1616. X        "         ",
  1617. X        "         "
  1618. X    },
  1619. X    { /* W */
  1620. X        "@       @",
  1621. X        "@       @",
  1622. X        "@   @   @",
  1623. X        "@  @ @  @",
  1624. X        "@ @   @ @",
  1625. X        "@@     @@",
  1626. X        "@       @",
  1627. X        "         ",
  1628. X        "         ",
  1629. X        "         "
  1630. X    },
  1631. X    { /* X */
  1632. X        "@       @",
  1633. X        " @     @ ",
  1634. X        "  @   @  ",
  1635. X        "   @@@   ",
  1636. X        "  @   @  ",
  1637. X        " @     @ ",
  1638. X        "@       @",
  1639. X        "         ",
  1640. X        "         ",
  1641. X        "         "
  1642. X    },
  1643. X    { /* Y */
  1644. X        "@       @",
  1645. X        " @     @ ",
  1646. X        "  @   @  ",
  1647. X        "   @ @   ",
  1648. X        "    @    ",
  1649. X        "    @    ",
  1650. X        "    @    ",
  1651. X        "         ",
  1652. X        "         ",
  1653. X        "         "
  1654. X    },
  1655. X    { /* Z */
  1656. X        "@@@@@@@@@",
  1657. X        "       @ ",
  1658. X        "     @@  ",
  1659. X        "    @    ",
  1660. X        "  @@     ",
  1661. X        " @       ",
  1662. X        "@@@@@@@@@",
  1663. X        "         ",
  1664. X        "         ",
  1665. X        "         "
  1666. X    },
  1667. X    { /* [ */
  1668. X        "@@@@@",
  1669. X        "@    ",
  1670. X        "@    ",
  1671. X        "@    ",
  1672. X        "@    ",
  1673. X        "@    ",
  1674. X        "@@@@@",
  1675. X        "     ",
  1676. X        "     ",
  1677. X        "     "
  1678. X    },
  1679. X    { /* \ */
  1680. X        "@      ",
  1681. X        " @     ",
  1682. X        "  @    ",
  1683. X        "   @   ",
  1684. X        "    @  ",
  1685. X        "     @ ",
  1686. X        "      @",
  1687. X        "       ",
  1688. X        "       ",
  1689. X        "       "
  1690. X    },
  1691. X    { /* ] */
  1692. X        "@@@@@",
  1693. X        "    @",
  1694. X        "    @",
  1695. X        "    @",
  1696. X        "    @",
  1697. X        "    @",
  1698. X        "@@@@@",
  1699. X        "     ",
  1700. X        "     ",
  1701. X        "     "
  1702. X    },
  1703. X    { /* ^ */
  1704. X        "   @   ",
  1705. X        "  @ @  ",
  1706. X        " @   @ ",
  1707. X        "@     @",
  1708. X        "       ",
  1709. X        "       ",
  1710. X        "       ",
  1711. X        "       ",
  1712. X        "       ",
  1713. X        "       "
  1714. X    },
  1715. X    { /* _ */
  1716. X        "         ",
  1717. X        "         ",
  1718. X        "         ",
  1719. X        "         ",
  1720. X        "         ",
  1721. X        "         ",
  1722. X        "@@@@@@@@@",
  1723. X        "         ",
  1724. X        "         ",
  1725. X        "         "
  1726. X    },
  1727. X    { /* ` */
  1728. X        "@@@",
  1729. X        "@@@",
  1730. X        " @ ",
  1731. X        "  @",
  1732. X        "   ",
  1733. X        "   ",
  1734. X        "   ",
  1735. X        "   ",
  1736. X        "   ",
  1737. X        "   "
  1738. X    },
  1739. X    
  1740. X    { /* a */
  1741. X        "         ",
  1742. X        "         ",
  1743. X        " @@@@@@  ",
  1744. X        "       @ ",
  1745. X        " @@@@@@@ ",
  1746. X        "@     @@ ",
  1747. X        " @@@@@ @@",
  1748. X        "         ",
  1749. X        "         ",
  1750. X        "         "
  1751. X    },
  1752. X    { /* b */
  1753. X        "@        ",
  1754. X        "@        ",
  1755. X        "@ @@@@@  ",
  1756. X        "@@     @ ",
  1757. X        "@       @",
  1758. X        "@@     @ ",
  1759. X        "@ @@@@@  ",
  1760. X        "         ",
  1761. X        "         ",
  1762. X        "         "
  1763. X    },
  1764. X    { /* c */
  1765. X        "       ",
  1766. X        "       ",
  1767. X        " @@@@@ ",
  1768. X        "@     @",
  1769. X        "@      ",
  1770. X        "@     @",
  1771. X        " @@@@@ ",
  1772. X        "       ",
  1773. X        "       ",
  1774. X        "       "
  1775. X    },
  1776. X    { /* d */
  1777. X        "        @",
  1778. X        "        @",
  1779. X        "  @@@@@ @",
  1780. X        " @     @@",
  1781. X        "@       @",
  1782. X        " @     @@",
  1783. X        "  @@@@@ @",
  1784. X        "         ",
  1785. X        "         ",
  1786. X        "         "
  1787. X    },
  1788. X    { /* e */
  1789. X        "         ",
  1790. X        "         ",
  1791. X        " @@@@@@@ ",
  1792. X        "@       @",
  1793. X        "@@@@@@@@@",
  1794. X        "@        ",
  1795. X        " @@@@@@@ ",
  1796. X        "         ",
  1797. X        "         ",
  1798. X        "         "
  1799. X    },
  1800. X    { /* f */
  1801. X        "  @@ ",
  1802. X        " @  @",
  1803. X        " @   ",
  1804. X        "@@@@@",
  1805. X        " @   ",
  1806. X        " @   ",
  1807. X        " @   ",
  1808. X        "     ",
  1809. X        "     ",
  1810. X        "     "
  1811. X    },
  1812. X    { /* g */
  1813. X        "       ",
  1814. X        "       ",
  1815. X        " @@@@ @",
  1816. X        "@    @@",
  1817. X        "@     @",
  1818. X        "@    @@",
  1819. X        " @@@@ @",
  1820. X        "      @",
  1821. X        "      @",
  1822. X        " @@@@@ "
  1823. X    },
  1824. X    { /* h */
  1825. X        "@       ",
  1826. X        "@       ",
  1827. X        "@ @@@@@ ",
  1828. X        "@@     @",
  1829. X        "@      @",
  1830. X        "@      @",
  1831. X        "@      @",
  1832. X        "        ",
  1833. X        "        ",
  1834. X        "        "
  1835. X    },
  1836. X    { /* i */
  1837. X        "    ",
  1838. X        "@   ",
  1839. X        "    ",
  1840. X        "@   ",
  1841. X        "@   ",
  1842. X        "@  @",
  1843. X        " @@ ",
  1844. X        "    ",
  1845. X        "    ",
  1846. X        "    "
  1847. X    },
  1848. X    { /* j */
  1849. X        "        ",
  1850. X        "       @",
  1851. X        "        ",
  1852. X        "       @",
  1853. X        "       @",
  1854. X        "       @",
  1855. X        "       @",
  1856. X        "@      @",
  1857. X        " @    @ ",
  1858. X        "  @@@@  "
  1859. X    },
  1860. X    { /* k */
  1861. X        "@     ",
  1862. X        "@     ",
  1863. X        "@    @",
  1864. X        "@   @ ",
  1865. X        "@@@@  ",
  1866. X        "@   @ ",
  1867. X        "@    @",
  1868. X        "      ",
  1869. X        "      ",
  1870. X        "      "
  1871. X    },
  1872. X    { /* l */
  1873. X        "@@ ",
  1874. X        " @ ",
  1875. X        " @ ",
  1876. X        " @ ",
  1877. X        " @ ",
  1878. X        " @ ",
  1879. X        "@@@",
  1880. X        "   ",
  1881. X        "   ",
  1882. X        "   "
  1883. X    },
  1884. X    { /* m */
  1885. X        "         ",
  1886. X        "         ",
  1887. X        "@ @@ @@@ ",
  1888. X        "@@  @   @",
  1889. X        "@   @   @",
  1890. X        "@   @   @",
  1891. X        "@   @   @",
  1892. X        "         ",
  1893. X        "         ",
  1894. X        "         "
  1895. X    },
  1896. X    { /* n */
  1897. X        "         ",
  1898. X        "         ",
  1899. X        "@ @@@@@  ",
  1900. X        "@@     @ ",
  1901. X        "@       @",
  1902. X        "@       @",
  1903. X        "@       @",
  1904. X        "         ",
  1905. X        "         ",
  1906. X        "         "
  1907. X    },
  1908. X    { /* o */
  1909. X        "         ",
  1910. X        "         ",
  1911. X        "  @@@@@  ",
  1912. X        " @     @ ",
  1913. X        "@       @",
  1914. X        " @     @ ",
  1915. X        "  @@@@@  ",
  1916. X        "         ",
  1917. X        "         ",
  1918. X        "         "
  1919. X    },
  1920. X    { /* p */
  1921. X        "         ",
  1922. X        "         ",
  1923. X        "@ @@@@@  ",
  1924. X        "@@     @ ",
  1925. X        "@       @",
  1926. X        "@@     @ ",
  1927. X        "@ @@@@@  ",
  1928. X        "@        ",
  1929. X        "@        ",
  1930. X        "@        "
  1931. X    },
  1932. X    { /* q */
  1933. X        "         ",
  1934. X        "         ",
  1935. X        "  @@@@@ @",
  1936. X        " @     @@",
  1937. X        "@       @",
  1938. X        " @     @@",
  1939. X        "  @@@@@ @",
  1940. X        "        @",
  1941. X        "        @",
  1942. X        "        @"
  1943. X    },
  1944. X    { /* r */
  1945. X        "     ",
  1946. X        "     ",
  1947. X        "@ @@ ",
  1948. X        "@@  @",
  1949. X        "@    ",
  1950. X        "@    ",
  1951. X        "@    ",
  1952. X        "     ",
  1953. X        "     ",
  1954. X        "     "
  1955. X    },
  1956. X    { /* s */
  1957. X        "         ",
  1958. X        "         ",
  1959. X        " @@@@@@@ ",
  1960. X        "@        ",
  1961. X        " @@@@@@@ ",
  1962. X        "        @",
  1963. X        " @@@@@@@ ",
  1964. X        "         ",
  1965. X        "         ",
  1966. X        "         "
  1967. X    },
  1968. X    { /* t */
  1969. X        "       ",
  1970. X        "   @   ",
  1971. X        "@@@@@@@",
  1972. X        "   @   ",
  1973. X        "   @   ",
  1974. X        "   @  @",
  1975. X        "    @@ ",
  1976. X        "       ",
  1977. X        "       ",
  1978. X        "       "
  1979. X    },
  1980. X    { /* u */
  1981. X        "         ",
  1982. X        "         ",
  1983. X        "@       @",
  1984. X        "@       @",
  1985. X        "@       @",
  1986. X        " @     @@",
  1987. X        "  @@@@@ @",
  1988. X        "         ",
  1989. X        "         ",
  1990. X        "         "
  1991. X    },
  1992. X    { /* v */
  1993. X        "         ",
  1994. X        "         ",
  1995. X        "@       @",
  1996. X        "@       @",
  1997. X        " @     @ ",
  1998. X        "  @   @  ",
  1999. X        "   @@@   ",
  2000. X        "         ",
  2001. X        "         ",
  2002. X        "         "
  2003. X    },
  2004. X    { /* w */
  2005. X        "         ",
  2006. X        "         ",
  2007. X        "@       @",
  2008. X        "@   @   @",
  2009. X        "@   @   @",
  2010. X        "@   @   @",
  2011. X        " @@@ @@@ ",
  2012. X        "         ",
  2013. X        "         ",
  2014. X        "         "
  2015. X    },
  2016. X    { /* x */
  2017. X        "       ",
  2018. X        "       ",
  2019. X        "@     @",
  2020. X        " @   @ ",
  2021. X        "  @@@  ",
  2022. X        " @   @ ",
  2023. X        "@     @",
  2024. X        "       ",
  2025. X        "       ",
  2026. X        "       "
  2027. X    },
  2028. X    { /* y */
  2029. X        "       ",
  2030. X        "       ",
  2031. X        "@     @",
  2032. X        "@     @",
  2033. X        "@     @",
  2034. X        "@     @",
  2035. X        " @@@@@@",
  2036. X        "      @",
  2037. X        "      @",
  2038. X        " @@@@@ "
  2039. X    },
  2040. X    { /* z */
  2041. X        "       ",
  2042. X        "       ",
  2043. X        "@@@@@@@",
  2044. X        "    @@ ",
  2045. X        "   @   ",
  2046. X        " @@    ",
  2047. X        "@@@@@@@",
  2048. X        "       ",
  2049. X        "       ",
  2050. X        "       "
  2051. X    },
  2052. X    { /* { */
  2053. X        "  @@@",
  2054. X        " @   ",
  2055. X        " @   ",
  2056. X        "@    ",
  2057. X        " @   ",
  2058. X        " @   ",
  2059. X        "  @@@",
  2060. X        "     ",
  2061. X        "     ",
  2062. X        "     "
  2063. X    },
  2064. X    { /* | */
  2065. X        "@",
  2066. X        "@",
  2067. X        "@",
  2068. X        " ",
  2069. X        "@",
  2070. X        "@",
  2071. X        "@",
  2072. X        " ",
  2073. X        " ",
  2074. X        " "
  2075. X    },
  2076. X    { /* } */
  2077. X        "@@@  ",
  2078. X        "   @ ",
  2079. X        "   @ ",
  2080. X        "    @",
  2081. X        "   @ ",
  2082. X        "   @ ",
  2083. X        "@@@  ",
  2084. X        "     ",
  2085. X        "     ",
  2086. X        "     "
  2087. X    },
  2088. X    { /* ~ */
  2089. X        "         ",
  2090. X        "  @@    @",
  2091. X        " @  @  @ ",
  2092. X        "@    @@  ",
  2093. X        "         ",
  2094. X        "         ",
  2095. X        "         ",
  2096. X        "         ",
  2097. X        "         ",
  2098. X        "         "
  2099. X    },
  2100. X    { /* *DEL* */
  2101. X        "@@@@@@@@@",
  2102. X        "@@@@@@@@@",
  2103. X        "@@@@@@@@@",
  2104. X        "@@@@@@@@@",
  2105. X        "@@@@@@@@@",
  2106. X        "@@@@@@@@@",
  2107. X        "@@@@@@@@@",
  2108. X        "         ",
  2109. X        "         ",
  2110. X        "         "
  2111. X    }
  2112. X    };
  2113. END_OF_FILE
  2114. if test 19204 -ne `wc -c <'banner-09/data.c'`; then
  2115.     echo shar: \"'banner-09/data.c'\" unpacked with wrong size!
  2116. fi
  2117. # end of 'banner-09/data.c'
  2118. fi
  2119. if test -f 'banner-12/COPYING' -a "${1}" != "-c" ; then 
  2120.   echo shar: Will not clobber existing file \"'banner-12/COPYING'\"
  2121. else
  2122. echo shar: Extracting \"'banner-12/COPYING'\" \(17982 characters\)
  2123. sed "s/^X//" >'banner-12/COPYING' <<'END_OF_FILE'
  2124. X            GNU GENERAL PUBLIC LICENSE
  2125. X               Version 2, June 1991
  2126. X
  2127. X Copyright (C) 1989, 1991 Free Software Foundation, Inc.
  2128. X                          675 Mass Ave, Cambridge, MA 02139, USA
  2129. X Everyone is permitted to copy and distribute verbatim copies
  2130. X of this license document, but changing it is not allowed.
  2131. X
  2132. X                Preamble
  2133. X
  2134. X  The licenses for most software are designed to take away your
  2135. freedom to share and change it.  By contrast, the GNU General Public
  2136. License is intended to guarantee your freedom to share and change free
  2137. software--to make sure the software is free for all its users.  This
  2138. General Public License applies to most of the Free Software
  2139. XFoundation's software and to any other program whose authors commit to
  2140. using it.  (Some other Free Software Foundation software is covered by
  2141. the GNU Library General Public License instead.)  You can apply it to
  2142. your programs, too.
  2143. X
  2144. X  When we speak of free software, we are referring to freedom, not
  2145. price.  Our General Public Licenses are designed to make sure that you
  2146. have the freedom to distribute copies of free software (and charge for
  2147. this service if you wish), that you receive source code or can get it
  2148. if you want it, that you can change the software or use pieces of it
  2149. in new free programs; and that you know you can do these things.
  2150. X
  2151. X  To protect your rights, we need to make restrictions that forbid
  2152. anyone to deny you these rights or to ask you to surrender the rights.
  2153. These restrictions translate to certain responsibilities for you if you
  2154. distribute copies of the software, or if you modify it.
  2155. X
  2156. X  For example, if you distribute copies of such a program, whether
  2157. gratis or for a fee, you must give the recipients all the rights that
  2158. you have.  You must make sure that they, too, receive or can get the
  2159. source code.  And you must show them these terms so they know their
  2160. rights.
  2161. X
  2162. X  We protect your rights with two steps: (1) copyright the software, and
  2163. X(2) offer you this license which gives you legal permission to copy,
  2164. distribute and/or modify the software.
  2165. X
  2166. X  Also, for each author's protection and ours, we want to make certain
  2167. that everyone understands that there is no warranty for this free
  2168. software.  If the software is modified by someone else and passed on, we
  2169. want its recipients to know that what they have is not the original, so
  2170. that any problems introduced by others will not reflect on the original
  2171. authors' reputations.
  2172. X
  2173. X  Finally, any free program is threatened constantly by software
  2174. patents.  We wish to avoid the danger that redistributors of a free
  2175. program will individually obtain patent licenses, in effect making the
  2176. program proprietary.  To prevent this, we have made it clear that any
  2177. patent must be licensed for everyone's free use or not licensed at all.
  2178. X
  2179. X  The precise terms and conditions for copying, distribution and
  2180. modification follow.
  2181. X
  2182. X            GNU GENERAL PUBLIC LICENSE
  2183. X   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
  2184. X
  2185. X  0. This License applies to any program or other work which contains
  2186. a notice placed by the copyright holder saying it may be distributed
  2187. under the terms of this General Public License.  The "Program", below,
  2188. refers to any such program or work, and a "work based on the Program"
  2189. means either the Program or any derivative work under copyright law:
  2190. that is to say, a work containing the Program or a portion of it,
  2191. either verbatim or with modifications and/or translated into another
  2192. language.  (Hereinafter, translation is included without limitation in
  2193. the term "modification".)  Each licensee is addressed as "you".
  2194. X
  2195. Activities other than copying, distribution and modification are not
  2196. covered by this License; they are outside its scope.  The act of
  2197. running the Program is not restricted, and the output from the Program
  2198. is covered only if its contents constitute a work based on the
  2199. Program (independent of having been made by running the Program).
  2200. Whether that is true depends on what the Program does.
  2201. X
  2202. X  1. You may copy and distribute verbatim copies of the Program's
  2203. source code as you receive it, in any medium, provided that you
  2204. conspicuously and appropriately publish on each copy an appropriate
  2205. copyright notice and disclaimer of warranty; keep intact all the
  2206. notices that refer to this License and to the absence of any warranty;
  2207. and give any other recipients of the Program a copy of this License
  2208. along with the Program.
  2209. X
  2210. You may charge a fee for the physical act of transferring a copy, and
  2211. you may at your option offer warranty protection in exchange for a fee.
  2212. X
  2213. X  2. You may modify your copy or copies of the Program or any portion
  2214. of it, thus forming a work based on the Program, and copy and
  2215. distribute such modifications or work under the terms of Section 1
  2216. above, provided that you also meet all of these conditions:
  2217. X
  2218. X    a) You must cause the modified files to carry prominent notices
  2219. X    stating that you changed the files and the date of any change.
  2220. X
  2221. X    b) You must cause any work that you distribute or publish, that in
  2222. X    whole or in part contains or is derived from the Program or any
  2223. X    part thereof, to be licensed as a whole at no charge to all third
  2224. X    parties under the terms of this License.
  2225. X
  2226. X    c) If the modified program normally reads commands interactively
  2227. X    when run, you must cause it, when started running for such
  2228. X    interactive use in the most ordinary way, to print or display an
  2229. X    announcement including an appropriate copyright notice and a
  2230. X    notice that there is no warranty (or else, saying that you provide
  2231. X    a warranty) and that users may redistribute the program under
  2232. X    these conditions, and telling the user how to view a copy of this
  2233. X    License.  (Exception: if the Program itself is interactive but
  2234. X    does not normally print such an announcement, your work based on
  2235. X    the Program is not required to print an announcement.)
  2236. X
  2237. These requirements apply to the modified work as a whole.  If
  2238. identifiable sections of that work are not derived from the Program,
  2239. and can be reasonably considered independent and separate works in
  2240. themselves, then this License, and its terms, do not apply to those
  2241. sections when you distribute them as separate works.  But when you
  2242. distribute the same sections as part of a whole which is a work based
  2243. on the Program, the distribution of the whole must be on the terms of
  2244. this License, whose permissions for other licensees extend to the
  2245. entire whole, and thus to each and every part regardless of who wrote it.
  2246. X
  2247. Thus, it is not the intent of this section to claim rights or contest
  2248. your rights to work written entirely by you; rather, the intent is to
  2249. exercise the right to control the distribution of derivative or
  2250. collective works based on the Program.
  2251. X
  2252. In addition, mere aggregation of another work not based on the Program
  2253. with the Program (or with a work based on the Program) on a volume of
  2254. a storage or distribution medium does not bring the other work under
  2255. the scope of this License.
  2256. X
  2257. X  3. You may copy and distribute the Program (or a work based on it,
  2258. under Section 2) in object code or executable form under the terms of
  2259. Sections 1 and 2 above provided that you also do one of the following:
  2260. X
  2261. X    a) Accompany it with the complete corresponding machine-readable
  2262. X    source code, which must be distributed under the terms of Sections
  2263. X    1 and 2 above on a medium customarily used for software interchange; or,
  2264. X
  2265. X    b) Accompany it with a written offer, valid for at least three
  2266. X    years, to give any third party, for a charge no more than your
  2267. X    cost of physically performing source distribution, a complete
  2268. X    machine-readable copy of the corresponding source code, to be
  2269. X    distributed under the terms of Sections 1 and 2 above on a medium
  2270. X    customarily used for software interchange; or,
  2271. X
  2272. X    c) Accompany it with the information you received as to the offer
  2273. X    to distribute corresponding source code.  (This alternative is
  2274. X    allowed only for noncommercial distribution and only if you
  2275. X    received the program in object code or executable form with such
  2276. X    an offer, in accord with Subsection b above.)
  2277. X
  2278. The source code for a work means the preferred form of the work for
  2279. making modifications to it.  For an executable work, complete source
  2280. code means all the source code for all modules it contains, plus any
  2281. associated interface definition files, plus the scripts used to
  2282. control compilation and installation of the executable.  However, as a
  2283. special exception, the source code distributed need not include
  2284. anything that is normally distributed (in either source or binary
  2285. form) with the major components (compiler, kernel, and so on) of the
  2286. operating system on which the executable runs, unless that component
  2287. itself accompanies the executable.
  2288. X
  2289. If distribution of executable or object code is made by offering
  2290. access to copy from a designated place, then offering equivalent
  2291. access to copy the source code from the same place counts as
  2292. distribution of the source code, even though third parties are not
  2293. compelled to copy the source along with the object code.
  2294. X
  2295. X  4. You may not copy, modify, sublicense, or distribute the Program
  2296. except as expressly provided under this License.  Any attempt
  2297. otherwise to copy, modify, sublicense or distribute the Program is
  2298. void, and will automatically terminate your rights under this License.
  2299. However, parties who have received copies, or rights, from you under
  2300. this License will not have their licenses terminated so long as such
  2301. parties remain in full compliance.
  2302. X
  2303. X  5. You are not required to accept this License, since you have not
  2304. signed it.  However, nothing else grants you permission to modify or
  2305. distribute the Program or its derivative works.  These actions are
  2306. prohibited by law if you do not accept this License.  Therefore, by
  2307. modifying or distributing the Program (or any work based on the
  2308. Program), you indicate your acceptance of this License to do so, and
  2309. all its terms and conditions for copying, distributing or modifying
  2310. the Program or works based on it.
  2311. X
  2312. X  6. Each time you redistribute the Program (or any work based on the
  2313. Program), the recipient automatically receives a license from the
  2314. original licensor to copy, distribute or modify the Program subject to
  2315. these terms and conditions.  You may not impose any further
  2316. restrictions on the recipients' exercise of the rights granted herein.
  2317. You are not responsible for enforcing compliance by third parties to
  2318. this License.
  2319. X
  2320. X  7. If, as a consequence of a court judgment or allegation of patent
  2321. infringement or for any other reason (not limited to patent issues),
  2322. conditions are imposed on you (whether by court order, agreement or
  2323. otherwise) that contradict the conditions of this License, they do not
  2324. excuse you from the conditions of this License.  If you cannot
  2325. distribute so as to satisfy simultaneously your obligations under this
  2326. License and any other pertinent obligations, then as a consequence you
  2327. may not distribute the Program at all.  For example, if a patent
  2328. license would not permit royalty-free redistribution of the Program by
  2329. all those who receive copies directly or indirectly through you, then
  2330. the only way you could satisfy both it and this License would be to
  2331. refrain entirely from distribution of the Program.
  2332. X
  2333. If any portion of this section is held invalid or unenforceable under
  2334. any particular circumstance, the balance of the section is intended to
  2335. apply and the section as a whole is intended to apply in other
  2336. circumstances.
  2337. X
  2338. It is not the purpose of this section to induce you to infringe any
  2339. patents or other property right claims or to contest validity of any
  2340. such claims; this section has the sole purpose of protecting the
  2341. integrity of the free software distribution system, which is
  2342. implemented by public license practices.  Many people have made
  2343. generous contributions to the wide range of software distributed
  2344. through that system in reliance on consistent application of that
  2345. system; it is up to the author/donor to decide if he or she is willing
  2346. to distribute software through any other system and a licensee cannot
  2347. impose that choice.
  2348. X
  2349. This section is intended to make thoroughly clear what is believed to
  2350. be a consequence of the rest of this License.
  2351. X
  2352. X  8. If the distribution and/or use of the Program is restricted in
  2353. certain countries either by patents or by copyrighted interfaces, the
  2354. original copyright holder who places the Program under this License
  2355. may add an explicit geographical distribution limitation excluding
  2356. those countries, so that distribution is permitted only in or among
  2357. countries not thus excluded.  In such case, this License incorporates
  2358. the limitation as if written in the body of this License.
  2359. X
  2360. X  9. The Free Software Foundation may publish revised and/or new versions
  2361. of the General Public License from time to time.  Such new versions will
  2362. be similar in spirit to the present version, but may differ in detail to
  2363. address new problems or concerns.
  2364. X
  2365. XEach version is given a distinguishing version number.  If the Program
  2366. specifies a version number of this License which applies to it and "any
  2367. later version", you have the option of following the terms and conditions
  2368. either of that version or of any later version published by the Free
  2369. Software Foundation.  If the Program does not specify a version number of
  2370. this License, you may choose any version ever published by the Free Software
  2371. XFoundation.
  2372. X
  2373. X  10. If you wish to incorporate parts of the Program into other free
  2374. programs whose distribution conditions are different, write to the author
  2375. to ask for permission.  For software which is copyrighted by the Free
  2376. Software Foundation, write to the Free Software Foundation; we sometimes
  2377. make exceptions for this.  Our decision will be guided by the two goals
  2378. of preserving the free status of all derivatives of our free software and
  2379. of promoting the sharing and reuse of software generally.
  2380. X
  2381. X                NO WARRANTY
  2382. X
  2383. X  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
  2384. XFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
  2385. OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
  2386. PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
  2387. OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  2388. MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
  2389. TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
  2390. PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
  2391. REPAIR OR CORRECTION.
  2392. X
  2393. X  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
  2394. WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
  2395. REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
  2396. INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
  2397. OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
  2398. TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
  2399. YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
  2400. PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
  2401. POSSIBILITY OF SUCH DAMAGES.
  2402. X
  2403. X             END OF TERMS AND CONDITIONS
  2404. X
  2405. X    Appendix: How to Apply These Terms to Your New Programs
  2406. X
  2407. X  If you develop a new program, and you want it to be of the greatest
  2408. possible use to the public, the best way to achieve this is to make it
  2409. free software which everyone can redistribute and change under these terms.
  2410. X
  2411. X  To do so, attach the following notices to the program.  It is safest
  2412. to attach them to the start of each source file to most effectively
  2413. convey the exclusion of warranty; and each file should have at least
  2414. the "copyright" line and a pointer to where the full notice is found.
  2415. X
  2416. X    <one line to give the program's name and a brief idea of what it does.>
  2417. X    Copyright (C) 19yy  <name of author>
  2418. X
  2419. X    This program is free software; you can redistribute it and/or modify
  2420. X    it under the terms of the GNU General Public License as published by
  2421. X    the Free Software Foundation; either version 2 of the License, or
  2422. X    (at your option) any later version.
  2423. X
  2424. X    This program is distributed in the hope that it will be useful,
  2425. X    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2426. X    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2427. X    GNU General Public License for more details.
  2428. X
  2429. X    You should have received a copy of the GNU General Public License
  2430. X    along with this program; if not, write to the Free Software
  2431. X    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2432. X
  2433. Also add information on how to contact you by electronic and paper mail.
  2434. X
  2435. If the program is interactive, make it output a short notice like this
  2436. when it starts in an interactive mode:
  2437. X
  2438. X    Gnomovision version 69, Copyright (C) 19yy name of author
  2439. X    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
  2440. X    This is free software, and you are welcome to redistribute it
  2441. X    under certain conditions; type `show c' for details.
  2442. X
  2443. The hypothetical commands `show w' and `show c' should show the appropriate
  2444. parts of the General Public License.  Of course, the commands you use may
  2445. be called something other than `show w' and `show c'; they could even be
  2446. mouse-clicks or menu items--whatever suits your program.
  2447. X
  2448. You should also get your employer (if you work as a programmer) or your
  2449. school, if any, to sign a "copyright disclaimer" for the program, if
  2450. necessary.  Here is a sample; alter the names:
  2451. X
  2452. X  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  2453. X  `Gnomovision' (which makes passes at compilers) written by James Hacker.
  2454. X
  2455. X  <signature of Ty Coon>, 1 April 1989
  2456. X  Ty Coon, President of Vice
  2457. X
  2458. This General Public License does not permit incorporating your program into
  2459. proprietary programs.  If your program is a subroutine library, you may
  2460. consider it more useful to permit linking proprietary applications with the
  2461. library.  If this is what you want to do, use the GNU Library General
  2462. Public License instead of this License.
  2463. END_OF_FILE
  2464. if test 17982 -ne `wc -c <'banner-12/COPYING'`; then
  2465.     echo shar: \"'banner-12/COPYING'\" unpacked with wrong size!
  2466. fi
  2467. # end of 'banner-12/COPYING'
  2468. fi
  2469. if test -f 'gothic/gothic.c' -a "${1}" != "-c" ; then 
  2470.   echo shar: Will not clobber existing file \"'gothic/gothic.c'\"
  2471. else
  2472. echo shar: Extracting \"'gothic/gothic.c'\" \(15980 characters\)
  2473. sed "s/^X//" >'gothic/gothic.c' <<'END_OF_FILE'
  2474. X/*
  2475. X * Print a line of text in Gothic (Black) Script. Very simple routine,
  2476. X * just a lot of data to worry about...
  2477. X * 
  2478. X * Remember to escape all backslashes when editing characters...
  2479. X *  -- hyc, 12-29-91
  2480. X *
  2481. X * $Log: gothic.c,v $
  2482. X * Revision 1.6  1992/08/14  07:11:20  hyc
  2483. X * Fix typos in back-slash and right bracket.
  2484. X *
  2485. X * Revision 1.5  1992/08/14  05:06:45  hyc
  2486. X * Streamlined MTS support.
  2487. X *
  2488. X * Revision 1.4  1992/08/14  04:26:49  hyc
  2489. X * Implement word-wrap in addition to previous character/line wrap.
  2490. X * Full 96 character printable ASCII set implemented.
  2491. X *
  2492. X */
  2493. X
  2494. X#ifdef _MTS
  2495. X#define _ADD 1
  2496. X#include <stdlib.h>
  2497. X#include <ctype.h>
  2498. X#else
  2499. X#include <stdio.h>
  2500. X#include <ctype.h>
  2501. X#undef toascii
  2502. X#define toascii(x) x
  2503. X#endif
  2504. X
  2505. X#ifndef __STDC__
  2506. X#define    const
  2507. X#endif
  2508. X
  2509. X#ifndef DEFWIDTH
  2510. X#define DEFWIDTH 79
  2511. X#endif
  2512. X
  2513. const struct letter {
  2514. X    const char     *lines[9];
  2515. X}               glyphs[96] = {
  2516. X    {
  2517. X    "  ",            /* space */
  2518. X    "  ",
  2519. X    "  ",
  2520. X    "  ",
  2521. X    "  ",
  2522. X    "  ",
  2523. X    "  ",
  2524. X    "  ",
  2525. X    "  "
  2526. X    },
  2527. X
  2528. X    {
  2529. X    "   ",            /* ! bang */
  2530. X    "/\\ ",
  2531. X    "\\/ ",
  2532. X    "}{ ",
  2533. X    "\\/ ",
  2534. X    "   ",
  2535. X    "<> ",
  2536. X    "   ",
  2537. X    "   "
  2538. X    },
  2539. X
  2540. X    {
  2541. X    "      ",        /* " double-quote */
  2542. X    "<> <> ",
  2543. X    " )  ) ",
  2544. X    "      ",
  2545. X    "      ",
  2546. X    "      ",
  2547. X    "      ",
  2548. X    "      ",
  2549. X    "      "
  2550. X    },
  2551. X
  2552. X    {
  2553. X    "          ",        /* # sharp */
  2554. X    "  <> <>   ",
  2555. X    "  }{ }{   ",
  2556. X    "<>++=++<> ",
  2557. X    "  }{ }{   ",
  2558. X    "<>++=++<> ",
  2559. X    "  }{ }{   ",
  2560. X    "  <> <>   ",
  2561. X    "          "
  2562. X    },
  2563. X
  2564. X    {
  2565. X    "       ",        /* $ dollar */
  2566. X    " _++_, ",
  2567. X    "||||   ",
  2568. X    "||--.  ",
  2569. X    " ~|||| ",
  2570. X    "  |||| ",
  2571. X    ",-__-  ",
  2572. X    "  ||   ",
  2573. X    "       "
  2574. X    },
  2575. X
  2576. X    {
  2577. X    "      ",        /* % per-cent */
  2578. X    "    , ",
  2579. X    "<>  / ",
  2580. X    "   /  ",
  2581. X    "  /   ",
  2582. X    " /    ",
  2583. X    "/  <> ",
  2584. X    "`     ",
  2585. X    "      "
  2586. X    },
  2587. X
  2588. X    {
  2589. X    "      ",        /* & ampersand */
  2590. X    " /\\   ",
  2591. X    " \\/   ",
  2592. X    " /\\ , ",
  2593. X    "/'\\\\, ",
  2594. X    "|  \\\\ ",
  2595. X    "\\\\-/\\ ",
  2596. X    "      ",
  2597. X    "      "
  2598. X    },
  2599. X
  2600. X    {
  2601. X    "   ",            /* ' single quote */
  2602. X    "<> ",
  2603. X    " ) ",
  2604. X    "   ",
  2605. X    "   ",
  2606. X    "   ",
  2607. X    "   ",
  2608. X    "   ",
  2609. X    "   "
  2610. X    },
  2611. X
  2612. X    {
  2613. X    "   ",            /* ( left paren */
  2614. X    " / ",
  2615. X    "// ",
  2616. X    "|| ",
  2617. X    "|| ",
  2618. X    "|| ",
  2619. X    "\\\\ ",
  2620. X    " \\ ",
  2621. X    "   "
  2622. X    },
  2623. X
  2624. X    {
  2625. X    "   ",            /* ) right paren */
  2626. X    "\\  ",
  2627. X    "\\\\ ",
  2628. X    "|| ",
  2629. X    "|| ",
  2630. X    "|| ",
  2631. X    "// ",
  2632. X    "/  ",
  2633. X    "   "
  2634. X    },
  2635. X
  2636. X    {
  2637. X    "        ",        /* * asterisk */
  2638. X    "        ",
  2639. X    " <> <>  ",
  2640. X    "  \\ /   ",
  2641. X    "<>-*-<> ",
  2642. X    "  / \\   ",
  2643. X    " <> <>  ",
  2644. X    "        ",
  2645. X    "        "
  2646. X    },
  2647. X
  2648. X    {
  2649. X    "       ",        /* + plus */
  2650. X    "       ",
  2651. X    "  <>   ",
  2652. X    "  }{   ",
  2653. X    "<>--<> ",
  2654. X    "  }{   ",
  2655. X    "  <>   ",
  2656. X    "       ",
  2657. X    "       "
  2658. X    },
  2659. X
  2660. X    {
  2661. X    "   ",            /* , comma */
  2662. X    "   ",
  2663. X    "   ",
  2664. X    "   ",
  2665. X    "   ",
  2666. X    "   ",
  2667. X    "<> ",
  2668. X    " ) ",
  2669. X    "   "
  2670. X    },
  2671. X
  2672. X    {
  2673. X    "      ",        /* - hyphen */
  2674. X    "      ",
  2675. X    "      ",
  2676. X    "      ",
  2677. X    "<>-<> ",
  2678. X    "      ",
  2679. X    "      ",
  2680. X    "      ",
  2681. X    "      "
  2682. X    },
  2683. X
  2684. X    {
  2685. X    "   ",            /* . period */
  2686. X    "   ",
  2687. X    "   ",
  2688. X    "   ",
  2689. X    "   ",
  2690. X    "   ",
  2691. X    "<> ",
  2692. X    "   ",
  2693. X    "   "
  2694. X    },
  2695. X
  2696. X    {
  2697. X    "      ",        /* / slash */
  2698. X    "    / ",
  2699. X    "   /  ",
  2700. X    "  //  ",
  2701. X    "  /   ",
  2702. X    " //   ",
  2703. X    " /    ",
  2704. X    "/     ",
  2705. X    "      "
  2706. X    },
  2707. X
  2708. X    {
  2709. X    "      ",        /* 0 */
  2710. X    " /\\\\  ",
  2711. X    "|| || ",
  2712. X    "|| || ",
  2713. X    "|| || ",
  2714. X    "|| || ",
  2715. X    " \\\\/  ",
  2716. X    "      ",
  2717. X    "      "
  2718. X    },
  2719. X
  2720. X    {
  2721. X    "     ",        /* 1 */
  2722. X    " /|  ",
  2723. X    "/||  ",
  2724. X    " ||  ",
  2725. X    " ||  ",
  2726. X    " ||  ",
  2727. X    ",/-' ",
  2728. X    "     ",
  2729. X    "     "
  2730. X    },
  2731. X
  2732. X    {
  2733. X    "     ",        /* 2 */
  2734. X    " /\\  ",
  2735. X    "(  ) ",
  2736. X    "  // ",
  2737. X    " //  ",
  2738. X    "/(   ",
  2739. X    "{___ ",
  2740. X    "     ",
  2741. X    "     "
  2742. X    },
  2743. X
  2744. X    {
  2745. X    "____ ",        /* 3 */
  2746. X    "` // ",
  2747. X    " //  ",
  2748. X    " \\\\  ",
  2749. X    "  )) ",
  2750. X    " //  ",
  2751. X    "/'   ",
  2752. X    "     ",
  2753. X    "     "
  2754. X    },
  2755. X
  2756. X    {
  2757. X    "  ,  ",        /* 4 */
  2758. X    " /|  ",
  2759. X    "/ |  ",
  2760. X    "__|_ ",
  2761. X    "---- ",
  2762. X    "  |  ",
  2763. X    " ,_, ",
  2764. X    "     ",
  2765. X    "     "
  2766. X    },
  2767. X
  2768. X    {
  2769. X    "____  ",        /* 5 */
  2770. X    "||  ` ",
  2771. X    "||_   ",
  2772. X    "|/ \\  ",
  2773. X    "   )) ",
  2774. X    "  //  ",
  2775. X    " /'   ",
  2776. X    "      ",
  2777. X    "      "
  2778. X    },
  2779. X
  2780. X    {
  2781. X    "      ",        /* 6 */
  2782. X    "  ,/  ",
  2783. X    " //   ",
  2784. X    "((_-  ",
  2785. X    "|| )) ",
  2786. X    "(( || ",
  2787. X    " \\//  ",
  2788. X    "      ",
  2789. X    "      "
  2790. X    },
  2791. X
  2792. X    {
  2793. X    "____  ",        /* 7 */
  2794. X    "`  || ",
  2795. X    "   /, ",
  2796. X    "  //  ",
  2797. X    " ((   ",
  2798. X    " ||   ",
  2799. X    " |'   ",
  2800. X    "      ",
  2801. X    "      "
  2802. X    },
  2803. X
  2804. X    {
  2805. X    "      ",        /* 8 */
  2806. X    " /\\\\  ",
  2807. X    "|| || ",
  2808. X    " \\ /  ",
  2809. X    " /\\\\  ",
  2810. X    "// \\\\ ",
  2811. X    "|| || ",
  2812. X    " \\\\/  ",
  2813. X    "      "
  2814. X    },
  2815. X
  2816. X    {
  2817. X    "      ",        /* 9 */
  2818. X    " /\\\\  ",
  2819. X    "|| || ",
  2820. X    "|| || ",
  2821. X    " \\/|| ",
  2822. X    "   || ",
  2823. X    " \\_/  ",
  2824. X    "      ",
  2825. X    "      "
  2826. X    },
  2827. X
  2828. X    {
  2829. X    "   ",            /* : */
  2830. X    "   ",
  2831. X    "   ",
  2832. X    "<> ",
  2833. X    "   ",
  2834. X    "   ",
  2835. X    "<> ",
  2836. X    "   ",
  2837. X    "   "
  2838. X    },
  2839. X
  2840. X    {
  2841. X    "   ",            /* ; */
  2842. X    "   ",
  2843. X    "   ",
  2844. X    "<> ",
  2845. X    "   ",
  2846. X    "   ",
  2847. X    "<> ",
  2848. X    " ) ",
  2849. X    "   "
  2850. X    },
  2851. X
  2852. X    {
  2853. X    "      ",        /* < */
  2854. X    "    / ",
  2855. X    "   /  ",
  2856. X    " //   ",
  2857. X    "<<    ",
  2858. X    " \\\\   ",
  2859. X    "   \\  ",
  2860. X    "    \\ ",
  2861. X    "      "
  2862. X    },
  2863. X
  2864. X    {
  2865. X    "      ",        /* = */
  2866. X    "      ",
  2867. X    "      ",
  2868. X    "<>-<> ",
  2869. X    "      ",
  2870. X    "<>-<> ",
  2871. X    "      ",
  2872. X    "      ",
  2873. X    "      "
  2874. X    },
  2875. X
  2876. X    {
  2877. X    "      ",        /* > */
  2878. X    "\\     ",
  2879. X    " \\    ",
  2880. X    "  \\\\  ",
  2881. X    "   >> ",
  2882. X    "  //  ",
  2883. X    " /    ",
  2884. X    "/     ",
  2885. X    "      "
  2886. X    },
  2887. X
  2888. X    {
  2889. X    " -_  ",        /* ? */
  2890. X    "/ \\\\ ",
  2891. X    "` || ",
  2892. X    "  |, ",
  2893. X    " ((  ",
  2894. X    "     ",
  2895. X    " <>  ",
  2896. X    "     ",
  2897. X    "     "
  2898. X    },
  2899. X
  2900. X    {
  2901. X    "      ",        /* @ */
  2902. X    " /\\\\  ",
  2903. X    "|| || ",
  2904. X    "||/|| ",
  2905. X    "||\\|  ",
  2906. X    "||    ",
  2907. X    " \\\\_, ",
  2908. X    "      ",
  2909. X    "      "
  2910. X    },
  2911. X
  2912. X
  2913. X#ifdef ITALIC
  2914. X    {
  2915. X    "           ",
  2916. X    " _--_,     ",
  2917. X    "   ,\\\\     ",
  2918. X    "  ~' \\\\    ",
  2919. X    "   |==\\\\   ",
  2920. X    "   |   \\\\. ",
  2921. X    " _---_  \\/ ",
  2922. X    "(          ",
  2923. X    "           "
  2924. X    },
  2925. X#else
  2926. X    {
  2927. X    "  ___    ",
  2928. X    " -   -_, ",
  2929. X    "(  ~/||  ",
  2930. X    "(  / ||  ",
  2931. X    " \\/==||  ",
  2932. X    " /_ _||  ",
  2933. X    "(  - \\\\, ",
  2934. X    "         ",
  2935. X    "         "
  2936. X    },
  2937. X#endif
  2938. X
  2939. X    {
  2940. X    "          ",
  2941. X    "_-_ _,,   ",
  2942. X    "   -/  )  ",
  2943. X    "  ~||_<   ",
  2944. X    "   || \\\\  ",
  2945. X    "   ,/--|| ",
  2946. X    "  _--_-'  ",
  2947. X    " (        ",
  2948. X    "          "
  2949. X    },
  2950. X
  2951. X    {
  2952. X    "         ",
  2953. X    "  ,- _~. ",
  2954. X    " (' /|   ",
  2955. X    "((  ||   ",
  2956. X    "((  ||   ",
  2957. X    " ( / |   ",
  2958. X    "  -____- ",
  2959. X    "         ",
  2960. X    "         "
  2961. X    },
  2962. X
  2963. X    {
  2964. X    "          ",
  2965. X    "-_____    ",
  2966. X    "  ' | -,  ",
  2967. X    " /| |  |` ",
  2968. X    " || |==|| ",
  2969. X    "~|| |  |, ",
  2970. X    " ~-____,  ",
  2971. X    "(         ",
  2972. X    "          "
  2973. X    },
  2974. X
  2975. X    {
  2976. X    "         ",
  2977. X    "  ,- _~, ",
  2978. X    " (' /| / ",
  2979. X    "((  ||/= ",
  2980. X    "((  ||   ",
  2981. X    " ( / |   ",
  2982. X    "  -____- ",
  2983. X    "         ",
  2984. X    "         "
  2985. X    },
  2986. X
  2987. X#ifdef ITALIC
  2988. X    {
  2989. X    "  __    ",
  2990. X    "_// --_/",
  2991. X    "  ||    ",
  2992. X    " ~+|-/  ",
  2993. X    "  ||    ",
  2994. X    "  ||    ",
  2995. X    " ,/     ",
  2996. X    "        ",
  2997. X    "        "
  2998. X    },
  2999. X#else
  3000. X    {
  3001. X    "    _ ,",
  3002. X    "  ,- - ",
  3003. X    " _||_  ",
  3004. X    "' ||   ",
  3005. X    "  ||   ",
  3006. X    "  |,   ",
  3007. X    "_-/    ",
  3008. X    "       ",
  3009. X    "       "
  3010. X    },
  3011. X#endif
  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    "  /,      ",
  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    "  \\\\  /  ",
  3221. X    "   \\\\/   ",
  3222. X    "  ==/\\== ",
  3223. X    "   / \\\\  ",
  3224. X    "\\\\/   \\\\,",
  3225. X    "         ",
  3226. X    "         "
  3227. X    },
  3228. X
  3229. X    {
  3230. X    "         ",
  3231. X    "-_   _   ",
  3232. X    "  |,- `  ",
  3233. X    " ~||__)) ",
  3234. X    " ~||__)) ",
  3235. X    "  |_ _,  ",
  3236. X    " -' -    ",
  3237. X    "( _-_    ",
  3238. X    " -   '   "
  3239. X    },
  3240. X
  3241. X    {
  3242. X    "      ",
  3243. X    "_-___ ",
  3244. X    "    / ",
  3245. X    "   /  ",
  3246. X    " =/=  ",
  3247. X    " /    ",
  3248. X    "/-__- ",
  3249. X    "      ",
  3250. X    "      "
  3251. X    },
  3252. X
  3253. X    {
  3254. X    "  __ ",        /* [ left bracket */
  3255. X    "||   ",
  3256. X    "||   ",
  3257. X    "||   ",
  3258. X    "||   ",
  3259. X    "||   ",
  3260. X    "||   ",
  3261. X    "||__ ",
  3262. X    "     "
  3263. X    },
  3264. X
  3265. X    {
  3266. X    "      ",        /* \ back-slash */
  3267. X    "\\     ",
  3268. X    " \\    ",
  3269. X    " \\\\   ",
  3270. X    "  \\   ",
  3271. X    "  \\\\  ",
  3272. X    "   \\  ",
  3273. X    "    \\ ",
  3274. X    "      "
  3275. X    },
  3276. X
  3277. X    {
  3278. X    "__   ",        /* ] right bracket */
  3279. X    "  || ",
  3280. X    "  || ",
  3281. X    "  || ",
  3282. X    "  || ",
  3283. X    "  || ",
  3284. X    "  || ",
  3285. X    "__|| ",
  3286. X    "     "
  3287. X    },
  3288. X
  3289. X    {
  3290. X    "  x   ",        /* ^ caret */
  3291. X    " / \\  ",
  3292. X    "/   \\ ",
  3293. X    "      ",
  3294. X    "      ",
  3295. X    "      ",
  3296. X    "      ",
  3297. X    "      ",
  3298. X    "      "
  3299. X    },
  3300. X
  3301. X    {
  3302. X    "      ",        /* _ underscore */
  3303. X    "      ",
  3304. X    "      ",
  3305. X    "      ",
  3306. X    "      ",
  3307. X    "      ",
  3308. X    "      ",
  3309. X    "_____ ",
  3310. X    "      "
  3311. X    },
  3312. X
  3313. X    {
  3314. X    "   ",            /* ` back-quote */
  3315. X    "<> ",
  3316. X    "(  ",
  3317. X    "   ",
  3318. X    "   ",
  3319. X    "   ",
  3320. X    "   ",
  3321. X    "   ",
  3322. X    "   "
  3323. X    },
  3324. X#ifdef ITALIC
  3325. X    {
  3326. X    "       ",
  3327. X    "       ",
  3328. X    "       ",
  3329. X    " _-_   ",
  3330. X    "|| \\\\, ",
  3331. X    "|| ||  ",
  3332. X    "\\\\/\\\\, ",
  3333. X    "       ",
  3334. X    "       "
  3335. X    },
  3336. X#else
  3337. X    {
  3338. X    "      ",
  3339. X    "      ",
  3340. X    "  _   ",
  3341. X    " < \\, ",
  3342. X    " /-|| ",
  3343. X    "(( || ",
  3344. X    " \\/\\\\ ",
  3345. X    "      ",
  3346. X    "      "
  3347. X    },
  3348. X#endif
  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#ifdef ITALIC
  3374. X    {
  3375. X    "        ",
  3376. X    "     ,  ",
  3377. X    "    ||  ",
  3378. X    " _-_||  ",
  3379. X    "|| \\\\|  ",
  3380. X    "||  ||  ",
  3381. X    " \\\\/\\\\, ",
  3382. X    "        ",
  3383. X    "        "
  3384. X    },
  3385. X#else
  3386. X    {
  3387. X    "      ",
  3388. X    " |\\   ",
  3389. X    "  \\\\  ",
  3390. X    " / \\\\ ",
  3391. X    "|| || ",
  3392. X    "|| || ",
  3393. X    " \\\\/  ",
  3394. X    "      ",
  3395. X    "      "
  3396. X    },
  3397. X#endif
  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    "      ",
  3425. X    "  _   ",
  3426. X    " / \\\\ ",
  3427. X    "|| || ",
  3428. X    "|| || ",
  3429. X    "\\\\_-| ",
  3430. X    " /  \\ ",
  3431. X    "'----`"
  3432. X    },
  3433. X#ifdef ITALIC
  3434. X    {
  3435. X    "      ",
  3436. X    " ,    ",
  3437. X    "||    ",
  3438. X    "||,<> ",
  3439. X    "|| || ",
  3440. X    "|| || ",
  3441. X    "<>,|| ",
  3442. X    "   |/ ",
  3443. X    "  ./  "
  3444. X    },
  3445. X
  3446. X    {
  3447. X    "   ",
  3448. X    "   ",
  3449. X    "<> ",
  3450. X    "-_ ",
  3451. X    "|| ",
  3452. X    "|| ",
  3453. X    "\\\\,",
  3454. X    "   ",
  3455. X    "   "
  3456. X    },
  3457. X#else
  3458. X    {
  3459. X    "      ",
  3460. X    ",,    ",
  3461. X    "||    ",
  3462. X    "||/\\\\ ",
  3463. X    "|| || ",
  3464. X    "|| || ",
  3465. X    "\\\\ |/ ",
  3466. X    "  _/  ",
  3467. X    "      "
  3468. X    },
  3469. X
  3470. X    {
  3471. X    "   ",
  3472. X    "   ",
  3473. X    " ' ",
  3474. X    "\\\\ ",
  3475. X    "|| ",
  3476. X    "|| ",
  3477. X    "\\\\ ",
  3478. X    "   ",
  3479. X    "   "
  3480. X    },
  3481. X#endif
  3482. X    {
  3483. X    "   ",
  3484. X    "   ",
  3485. X    " ' ",
  3486. X    "\\\\ ",
  3487. X    "|| ",
  3488. X    "|| ",
  3489. X    "|| ",
  3490. X    "|; ",
  3491. X    "/  "
  3492. X    },
  3493. X
  3494. X    {
  3495. X    "     ",
  3496. X    ",,   ",
  3497. X    "||   ",
  3498. X    "||/\\ ",
  3499. X    "||_< ",
  3500. X    "|| | ",
  3501. X    "\\\\,\\ ",
  3502. X    "     ",
  3503. X    "     "
  3504. X    },
  3505. X
  3506. X    {
  3507. X    "   ",
  3508. X    ",, ",
  3509. X    "|| ",
  3510. X    "|| ",
  3511. X    "|| ",
  3512. X    "|| ",
  3513. X    "\\\\ ",
  3514. X    "   ",
  3515. X    "   "
  3516. X    },
  3517. X
  3518. X    {
  3519. X    "         ",
  3520. X    "         ",
  3521. X    "         ",
  3522. X    "\\\\/\\\\/\\\\ ",
  3523. X    "|| || || ",
  3524. X    "|| || || ",
  3525. X    "\\\\ \\\\ \\\\ ",
  3526. X    "         ",
  3527. X    "         "
  3528. X    },
  3529. X
  3530. X    {
  3531. X    "      ",
  3532. X    "      ",
  3533. X    "      ",
  3534. X    "\\\\/\\\\ ",
  3535. X    "|| || ",
  3536. X    "|| || ",
  3537. X    "\\\\ \\\\ ",
  3538. X    "      ",
  3539. X    "      "
  3540. X    },
  3541. X
  3542. X    {
  3543. X    "      ",
  3544. X    "      ",
  3545. X    "      ",
  3546. X    " /'\\\\ ",
  3547. X    "|| || ",
  3548. X    "|| || ",
  3549. X    "\\\\,/  ",
  3550. X    "      ",
  3551. X    "      "
  3552. X    },
  3553. X
  3554. X    {
  3555. X    "      ",
  3556. X    "      ",
  3557. X    "      ",
  3558. X    "-_-_  ",
  3559. X    "|| \\\\ ",
  3560. X    "|| || ",
  3561. X    "||-'  ",
  3562. X    "|/    ",
  3563. X    "'     "
  3564. X    },
  3565. X
  3566. X    {
  3567. X    "      ",
  3568. X    "      ",
  3569. X    "      ",
  3570. X    " /'\\\\ ",
  3571. X    "|| || ",
  3572. X    "|| || ",
  3573. X    "\\\\,|| ",
  3574. X    "   || ",
  3575. X    "   '` "
  3576. X    },
  3577. X
  3578. X    {
  3579. X    "      ",
  3580. X    "      ",
  3581. X    "      ",
  3582. X    ",._-_ ",
  3583. X    " ||   ",
  3584. X    " ||   ",
  3585. X    " \\\\,  ",
  3586. X    "      ",
  3587. X    "      "
  3588. X    },
  3589. X
  3590. X    {
  3591. X    "      ",
  3592. X    "      ",
  3593. X    "      ",
  3594. X    " _-_, ",
  3595. X    "||_.  ",
  3596. X    " ~ || ",
  3597. X    ",-_-  ",
  3598. X    "      ",
  3599. X    "      "
  3600. X    },
  3601. X
  3602. X    {
  3603. X    "     ",
  3604. X    "  ,  ",
  3605. X    " ||  ",
  3606. X    "=||= ",
  3607. X    " ||  ",
  3608. X    " ||  ",
  3609. X    " \\\\, ",
  3610. X    "     ",
  3611. X    "     "
  3612. X    },
  3613. X
  3614. X    {
  3615. X    "      ",
  3616. X    "      ",
  3617. X    "      ",
  3618. X    "\\\\ \\\\ ",
  3619. X    "|| || ",
  3620. X    "|| || ",
  3621. X    "\\\\/\\\\ ",
  3622. X    "      ",
  3623. X    "      "
  3624. X    },
  3625. X
  3626. X    {
  3627. X    "     ",
  3628. X    "     ",
  3629. X    ";    ",
  3630. X    "\\\\/\\ ",
  3631. X    "|| | ",
  3632. X    "|| | ",
  3633. X    "\\\\/  ",
  3634. X    "     ",
  3635. X    "     "
  3636. X    },
  3637. X
  3638. X    {
  3639. X    "       ",
  3640. X    "       ",
  3641. X    ";      ",
  3642. X    "\\\\/\\/\\ ",
  3643. X    "|| | | ",
  3644. X    "|| | | ",
  3645. X    "\\\\/\\\\/ ",
  3646. X    "       ",
  3647. X    "       "
  3648. X    },
  3649. X
  3650. X    {
  3651. X    "      ",
  3652. X    "      ",
  3653. X    ",     ",
  3654. X    "\\\\ /` ",
  3655. X    " \\\\   ",
  3656. X    " /\\\\  ",
  3657. X    "/  \\; ",
  3658. X    "      ",
  3659. X    "      "
  3660. X    },
  3661. X#ifdef ITALIC
  3662. X    {
  3663. X    "      ",
  3664. X    "      ",
  3665. X    "      ",
  3666. X    "-_ -_ ",
  3667. X    "|| || ",
  3668. X    "|| || ",
  3669. X    "\\\\,|| ",
  3670. X    "   |/ ",
  3671. X    "  ./  "
  3672. X    },
  3673. X#else
  3674. X    {
  3675. X    "       ",
  3676. X    "       ",
  3677. X    "       ",
  3678. X    "'\\\\/\\\\ ",
  3679. X    " || ;' ",
  3680. X    " ||/   ",
  3681. X    " |/    ",
  3682. X    "(      ",
  3683. X    " -_-   "
  3684. X    },
  3685. X
  3686. X#endif
  3687. X    {
  3688. X    "    ",
  3689. X    "    ",
  3690. X    "    ",
  3691. X    "/\\\\ ",
  3692. X    " /  ",
  3693. X    "/\\\\ ",
  3694. X    " || ",
  3695. X    " /  ",
  3696. X    "(,  "
  3697. X    },
  3698. X
  3699. X    {
  3700. X    "   _ ",        /* { left curly bracket */
  3701. X    "  (  ",
  3702. X    "  )  ",
  3703. X    "  )  ",
  3704. X    "-{   ",
  3705. X    "  )  ",
  3706. X    "  )  ",
  3707. X    "  (_ ",
  3708. X    "     "
  3709. X    },
  3710. X
  3711. X    {
  3712. X    "   ",            /* | vertical bar */
  3713. X    "|| ",
  3714. X    "|| ",
  3715. X    "|| ",
  3716. X    "|| ",
  3717. X    "|| ",
  3718. X    "|| ",
  3719. X    "|| ",
  3720. X    "   "
  3721. X    },
  3722. X
  3723. X    {
  3724. X    "_    ",        /* } right curly bracket */
  3725. X    " )   ",
  3726. X    " (   ",
  3727. X    " (   ",
  3728. X    "  }- ",
  3729. X    " (   ",
  3730. X    " (   ",
  3731. X    "_)   ",
  3732. X    "     "
  3733. X    },
  3734. X
  3735. X    {
  3736. X    " _    ",        /* ~ tilde */
  3737. X    "/ \\_/ ",
  3738. X    "      ",
  3739. X    "      ",
  3740. X    "      ",
  3741. X    "      ",
  3742. X    "      ",
  3743. X    "      ",
  3744. X    "      "
  3745. X    }
  3746. X};
  3747. X
  3748. char           *outbuf;
  3749. void            print();
  3750. int             width = DEFWIDTH;
  3751. X#ifdef _MTS
  3752. X__fortran void  scards(), sprint();
  3753. short           len;
  3754. int             lnum, mods = 0, _noopen, rc;
  3755. X#define gets(buffer) \
  3756. X    scards(buffer,&len,&mods,&lnum, __retcode rc), \
  3757. X    buffer[len]='\0', \
  3758. X    rc == 0 ? 1 : 0
  3759. X#define puts(outbuf)    \
  3760. X    len = outptr - outbuf;    \
  3761. X    sprint(outbuf,&len,&mods,&lnum)
  3762. X#define NewLine \
  3763. X    len=1;    \
  3764. X    sprint(outbuf,&len,&mods,&lnum)
  3765. X#define BufAdj    1
  3766. X#define GE    >
  3767. X#else
  3768. X#define NewLine    putchar('\n')
  3769. X#define BufAdj    0
  3770. X#define GE    >=
  3771. X#endif
  3772. X
  3773. X
  3774. main(argc, argv)
  3775. X    int             argc;
  3776. X    char          **argv;
  3777. X{
  3778. X    char            buffer[256], *malloc();
  3779. X
  3780. X    if (argc > 1) {
  3781. X    if (argv[1][0] == '-') {
  3782. X        width = atoi(&argv[1][1]);
  3783. X        argc--;
  3784. X        argv++;
  3785. X    }
  3786. X    }
  3787. X    outbuf = malloc(width + 20);
  3788. X#ifdef _MTS
  3789. X    *outbuf = ' ';
  3790. X#endif
  3791. X
  3792. X    if (argc < 2) {        /* read message from stdin */
  3793. X    while (gets(buffer) != NULL)
  3794. X        print(buffer);
  3795. X    } else {
  3796. X    for (--argc; argc != 1; argc--) {
  3797. X        argv[argc]--;
  3798. X        *argv[argc] = ' ';
  3799. X    }
  3800. X    print(argv[1]);
  3801. X    }
  3802. X}
  3803. X
  3804. void
  3805. print(buf)
  3806. X    char           *buf;
  3807. X{
  3808. X    register int    i;
  3809. X    register char  *inptr, *outptr, *prevptr, *spinptr, *spptr;
  3810. X    register char const *dataptr;
  3811. X    int             wrapped;
  3812. X    char        oldc;
  3813. X
  3814. X    do {
  3815. X    wrapped = 0;
  3816. X    spinptr = buf;
  3817. X    for (i = 0; i < 9; i++) {
  3818. X        outptr = outbuf + BufAdj;
  3819. X        *outptr = '\0';
  3820. X        for (inptr = buf; *inptr; inptr++) {
  3821. X        prevptr = outptr;
  3822. X        if (isprint(*inptr))
  3823. X            dataptr = glyphs[toascii(*inptr) - toascii(' ')].lines[i];
  3824. X        else
  3825. X            dataptr = glyphs[0].lines[i];
  3826. X        if (dataptr == glyphs[0].lines[i]) {
  3827. X            spinptr = inptr+1;
  3828. X            spptr = outptr;
  3829. X        }
  3830. X        for (; *dataptr;)
  3831. X            *outptr++ = *dataptr++;
  3832. X        if (outptr - outbuf > width) {
  3833. X            wrapped = 1;
  3834. X            if (spinptr == buf) {
  3835. X                outptr = prevptr;
  3836. X            } else {
  3837. X            outptr = spptr;
  3838. X            inptr = spinptr;
  3839. X            if (spptr == prevptr)
  3840. X                inptr--;
  3841. X            }
  3842. X            oldc = *inptr;
  3843. X            *inptr = '\0';
  3844. X            break;
  3845. X        }
  3846. X        }
  3847. X        for (outptr--; outptr GE outbuf; outptr--)
  3848. X        if (*outptr != ' ')
  3849. X            break;
  3850. X        *++outptr = '\0';
  3851. X        puts(outbuf);
  3852. X    }
  3853. X    NewLine;
  3854. X    if (wrapped) {
  3855. X        buf = inptr;
  3856. X        *inptr = oldc;
  3857. X        if (oldc == ' ')
  3858. X        buf++;
  3859. X    }
  3860. X    } while (wrapped);
  3861. X}
  3862. END_OF_FILE
  3863. if test 15980 -ne `wc -c <'gothic/gothic.c'`; then
  3864.     echo shar: \"'gothic/gothic.c'\" unpacked with wrong size!
  3865. fi
  3866. # end of 'gothic/gothic.c'
  3867. fi
  3868. echo shar: End of archive 4 \(of 7\).
  3869. cp /dev/null ark4isdone
  3870. MISSING=""
  3871. for I in 1 2 3 4 5 6 7 ; do
  3872.     if test ! -f ark${I}isdone ; then
  3873.     MISSING="${MISSING} ${I}"
  3874.     fi
  3875. done
  3876. if test "${MISSING}" = "" ; then
  3877.     echo You have unpacked all 7 archives.
  3878.     rm -f ark[1-9]isdone
  3879. else
  3880.     echo You still need to unpack the following archives:
  3881.     echo "        " ${MISSING}
  3882. fi
  3883. ##  End of shell archive.
  3884. exit 0
  3885.