Newsgroup: comp.sources.misc


Article 1201 of comp.sources.misc:
Path: icdoc!ukc!mcsun!uunet!allbery
>From: dds@cc.ic.ac.uk (Diomidis Spinellis)
Newsgroups: comp.sources.misc
Subject: v11i080: Pbmtochar, chartopbm
Message-ID: <82376@uunet.UU.NET>
Date: 26 Mar 90 00:15:03 GMT
Sender: allbery@uunet.UU.NET
Lines: 490
Approved: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
Content-Length: 20318
Posting-number: Volume 11, Issue 80
Submitted-by: dds@cc.ic.ac.uk (Diomidis Spinellis)
Archive-name: pbmtochar/part01

Ever wondered how you could create line printer art?  I am referring to
those line printer pictures composed by ASCII characters.
Here are two additions for pbmplus.  Pbmtochar reads a portable bitmap and
outputs a picture drawn by using characters.  Chartopbm reads a text file
and produces a bitmap containing those characters.  Unlike pbmtoascii,
pbmtochar pattern matches against the X11 8x13 fixed width font and thus
creates much smaller output.  Converting a text file into a bitmap and
then back to text doesn't change the file (appart from non-printable characters
and space padding).  Both programs don't depend on the ASCII character set.
I used the 8x13 font, because it produced the best results on printers.

Diomidis Spinellis (dds@cc.ic.ac.uk)

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  README pbmtochar.1 pbmtochar.c chartopbm.1 chartopbm.c
#   8x13.h
# Wrapped by dds@suna on Thu Mar 15 16:30:22 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'README'\"
else
echo shar: Extracting \"'README'\" \(1291 characters\)
sed "s/^X//" >'README' <<'END_OF_FILE'
XEver wondered how you could create line printer art?  I am referring to
Xthose line printer pictures composed by ASCII characters.
XHere are two additions for pbmplus.  Pbmtochar reads a portable bitmap and
Xoutputs a picture drawn by using characters.  Chartopbm reads a text file
Xand produces a bitmap containing those characters.  Unlike pbmtoascii,
Xpbmtochar pattern matches against the X11 8x13 fixed width font and thus
Xcreates much smaller output.  Converting a text file into a bitmap and
Xthen back to text doesn't change the file (appart from non-printable characters
Xand space padding).  Both programs don't depend on the ASCII character set.
XI used the 8x13 font, because it produced the best results on printers.
X
XIn order to use these programs you need to compile them with the rest of
Xthe pbmplus collection.  The collection was posted in volume9 of 
Xcomp.sources.misc.  Add the programs and manual pages to the pbm directory
Xof pbmplus and add the appropriate entries to the Makefile.
X
X--
XDiomidis Spinellis                  Internet:                 dds@cc.ic.ac.uk
XDepartment of Computing             UUCP:                    ...!ukc!iccc!dds
XImperial College                    JANET:                    dds@uk.ac.ic.cc
XLondon SW7 2BZ                      #include "/dev/tty"
END_OF_FILE
if test 1291 -ne `wc -c <'README'`; then
    echo shar: \"'README'\" unpacked with wrong size!
fi
# end of 'README'
fi
if test -f 'pbmtochar.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'pbmtochar.1'\"
else
echo shar: Extracting \"'pbmtochar.1'\" \(1081 characters\)
sed "s/^X//" >'pbmtochar.1' <<'END_OF_FILE'
X.TH gemtopbm 1 "6 October 1989"
X.SH NAME
Xpbmtochar - convert a portable bitmap into a character picture
X.SH SYNOPSIS
Xpbmtochar [pbmfile]
X.SH DESCRIPTION
XReads a portable bitmap as input.
XProduces a character picture as output.  This is done by pattern matching
Xa built-in fixed width font to the bitmap.  It is assumed that characters
Xon the output device are black (true for printers and white screen terminals).
XIf the output is to be displayed on a terminal where the characters are
Xbrighter than the background (most tty terminals) then the input must be
Xinversed using pnminvert(1).
X.SH BUGS
XThe built-in character font may not exactly match the font of the output
Xdevice.
X.SH "SEE ALSO"
Xpbm(5), pnminvert(1)
X.SH AUTHOR
XCopyright (C) 1989 Diomidis D. Spinellis
X(dds@cc.ic.ac.uk)
X
XPermission to use, copy, modify, and distribute this software and its
Xdocumentation for any purpose and without fee is hereby granted,
Xprovided that the above copyright notice appear in all copies and that
Xboth that copyright notice and this permission notice appear in
Xsupporting documentation.
END_OF_FILE
if test 1081 -ne `wc -c <'pbmtochar.1'`; then
    echo shar: \"'pbmtochar.1'\" unpacked with wrong size!
fi
# end of 'pbmtochar.1'
fi
if test -f 'pbmtochar.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'pbmtochar.c'\"
else
echo shar: Extracting \"'pbmtochar.c'\" \(2562 characters\)
sed "s/^X//" >'pbmtochar.c' <<'END_OF_FILE'
X/*
X * pbmtochar.c - read a portable bitmap and produce character graphics
X * 
X * Copyright (C) 1989 Diomidis D. Spinellis.
X * 
X * Permission to use, copy, modify, and distribute this software and its
X * documentation for any purpose and without fee is hereby granted, provided
X * that the above copyright notice appear in all copies and that both that
X * copyright notice and this permission notice appear in supporting
X * documentation.  This software is provided "as is" without express or
X * implied warranty.
X *
X * Comments and additions should be sent to the author:
X *
X *                     Diomidis D. Spinellis
X *                     1 Myrsinis Str.
X *                     GR-145 62 Kifissia
X *                     GREECE
X *		       (dds@cc.ic.ac.uk)
X *
X * $Header: pbmtochar.c,v 1.4 89/10/06 22:41:44 dds Rel $
X *
X */
X
X#include <stdio.h>
X#include "pbm.h"
X#include "8x13.h"
X
X#ifndef lint
Xstatic char RCSid[] = "$Header: pbmtochar.c,v 1.4 89/10/06 22:41:44 dds Rel $";
X#endif
X
Xmain(argc, argv)
X	int             argc;
X	char           *argv[];
X{
X	FILE           *ifd;
X	bit		**bits;
X	int             rows, cols, row, col;
X	int		bestmatch = -1;
X	char		*bestmatchchar;
X	register	b2;
X	register	bit *p;
X	register	match;
X	register	bit **pp;
X	register	b1;
X	register	char *fp;
X	bit		**ppstart, **ppend;
X
X	pm_progname = argv[0];
X
X	if (argc > 2)
X		pm_usage("[pbmfile]");
X
X	if (argc == 2)
X		ifd = pm_openr(argv[1]);
X	else
X		ifd = stdin;
X
X	bits = pbm_readpbm(ifd, &cols, &rows);
X
X	pm_close(ifd);
X
X	/*
X	 * The following code is UGLY, but fast.
X	 * It was hand optimised by inlining three functions into each other,
X	 * converting all array references to pointers and doing some loop
X	 * inductions.  The result is 3 times faster than the original.
X	 * The original was compiled with gcc -O and the inline keyword was
X	 * used.
X	 */
X	for (	row = 0, ppstart = bits, ppend = bits + FROW;
X		row + FROW - 1 < rows; row +=  FROW, ppstart = ppend, ppend += FROW) {
X		for (col = 0; col + FCOL - 1 < cols; col += FCOL) {
X			bestmatch = -1;
X			for (fp = &font[0][0]; fp < &font[NUMCHARS][FROW];) {
X				match = 0;
X				for (pp = ppstart; pp < ppend; pp++) {
X					b1 = *fp++;
X					for (p = *pp + col, b2 = 0x80; b2 != (0x80 >> FCOL); b2 >>= 1, p++)
X						if (b1 & b2) {
X							if (*p == PBM_BLACK)
X								match++;
X						} else {
X							if (*p == PBM_WHITE)
X								match++;
X						}
X				}
X				if (match > bestmatch) {
X					bestmatch = match;
X					bestmatchchar = fp;
X				}
X			}
X			putchar(patternchars[(bestmatchchar - &font[0][0]) / FROW - 1]);
X		}
X		putchar('\n');
X	}
X	exit(0);
X}
END_OF_FILE
if test 2562 -ne `wc -c <'pbmtochar.c'`; then
    echo shar: \"'pbmtochar.c'\" unpacked with wrong size!
fi
# end of 'pbmtochar.c'
fi
if test -f 'chartopbm.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'chartopbm.1'\"
else
echo shar: Extracting \"'chartopbm.1'\" \(725 characters\)
sed "s/^X//" >'chartopbm.1' <<'END_OF_FILE'
X.TH gemtopbm 1 "6 October 1989"
X.SH NAME
Xchartopbm - convert a text file into a portable bitmap
X.SH SYNOPSIS
Xgemtopbm [textfile]
X.SH DESCRIPTION
XReads a text file as input.
XProduces a portable bitmap as output.  A fixed width font is used.
X.SH BUGS
XCharacters not recognised are converted to spaces.  This includes tabs and
Xbackspaces.
X.SH "SEE ALSO"
Xpbm(5)
X.SH AUTHOR
XCopyright (C) 1989 Diomidis D. Spinellis
X(dds@cc.ic.ac.uk)
X
XPermission to use, copy, modify, and distribute this software and its
Xdocumentation for any purpose and without fee is hereby granted,
Xprovided that the above copyright notice appear in all copies and that
Xboth that copyright notice and this permission notice appear in
Xsupporting documentation.
END_OF_FILE
if test 725 -ne `wc -c <'chartopbm.1'`; then
    echo shar: \"'chartopbm.1'\" unpacked with wrong size!
fi
# end of 'chartopbm.1'
fi
if test -f 'chartopbm.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'chartopbm.c'\"
else
echo shar: Extracting \"'chartopbm.c'\" \(2840 characters\)
sed "s/^X//" >'chartopbm.c' <<'END_OF_FILE'
X/*
X * chartopbm.c - read text and produce a portable bitmap
X * 
X * Copyright (C) 1989 Diomidis D. Spinellis.
X * 
X * Permission to use, copy, modify, and distribute this software and its
X * documentation for any purpose and without fee is hereby granted, provided
X * that the above copyright notice appear in all copies and that both that
X * copyright notice and this permission notice appear in supporting
X * documentation.  This software is provided "as is" without express or
X * implied warranty.
X * 
X * Comments and additions should be sent to the author:
X *
X *                     Diomidis D. Spinellis
X *                     1 Myrsinis Str.
X *                     GR-145 62 Kifissia
X *                     GREECE
X *		       (dds@cc.ic.ac.uk)
X *
X * $Header: chartopbm.c,v 1.2 89/10/06 22:41:52 dds Rel $
X * 
X */
X
X#include <stdio.h>
X#include <ctype.h>
X#ifdef SYSV
X#include <string.h>
X#else				/* SYSV */
X#include <strings.h>
X#define strchr index
X#endif				/* SYSV */
X#include "pbm.h"
X#include "8x13.h"
X
X#ifndef lint
Xstatic char     RCSid[] = "$Header: chartopbm.c,v 1.2 89/10/06 22:41:52 dds Rel $";
X#endif
X
X#define LINELEN 1024
X
X
Xmain(argc, argv)
X	int             argc;
X	char           *argv[];
X{
X	struct linestruct {
X		char           	  *line;
X		struct linestruct *next;
X	}               *lines, *lp, **plp;
X	FILE           *ifd;
X	char            line[LINELEN];
X	register        b;
X	register char  *p;
X	char           *p1;
X	register bit   *bp;
X	register	r, c;
X	int             rows = 0, cols = 0;
X	int             len;
X	char           *malloc();
X	bit	       *bitrow;
X
X	pm_progname = argv[0];
X
X	if (argc > 2)
X		pm_usage("[textfile]");
X
X	if (argc == 2)
X		ifd = pm_openr(argv[1]);
X	else
X		ifd = stdin;
X
X
X	/* Read the file into a linked list of lines */
X	plp = &lines;
X	while (fgets(line, LINELEN, ifd)) {
X		if (!(lp = (struct linestruct *)malloc(sizeof(struct linestruct))))
X			pm_error("out of memory", 0, 0, 0, 0, 0);
X		len = strlen(line);
X		if (!(lp->line = malloc(len + 1)))
X			pm_error("out of memory", 0, 0, 0, 0, 0);
X		(void)strcpy(lp->line, line);
X		*plp = lp;
X		plp = &(lp->next);
X		rows++;
X		if (len > cols)
X			cols = len;
X	}
X	lp->next = 0;
X
X	pm_close(ifd);
X
X	/* Write out the PBM. */
X	pbm_writepbminit(stdout, cols * FCOL, rows * FROW);
X	bitrow = pbm_allocrow(cols * FCOL);
X
X	for (lp = lines; lp; lp = lp->next)
X		for (r = 0; r < FROW; r++) {
X			bp = bitrow;
X			/* Write the line */
X			for (p = lp->line; *p; p++)
X				if (!(p1 = strchr(patternchars, *p)))
X					for (c = 0; c < FCOL; c++)
X						*bp++ = PBM_WHITE;
X				else
X					for (b = 0x80; b != (0x80 >> FCOL); b >>= 1)
X						*bp++ = (font[p1 - patternchars][r] & b) ? PBM_BLACK : PBM_WHITE;
X			/* Zero pad the rest of the line */
X			for (c = 0; c < cols - strlen(lp->line) * FCOL; c++)
X				*bp++ = PBM_WHITE;
X			pbm_writepbmrow(stdout, bitrow, cols * FCOL);
X		}
X	exit(0);
X}
END_OF_FILE
if test 2840 -ne `wc -c <'chartopbm.c'`; then
    echo shar: \"'chartopbm.c'\" unpacked with wrong size!
fi
# end of 'chartopbm.c'
fi
if test -f '8x13.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'8x13.h'\"
else
echo shar: Extracting \"'8x13.h'\" \(7037 characters\)
sed "s/^X//" >'8x13.h' <<'END_OF_FILE'
X/*
X * The X-Window system 8x13 fixed font.
X * The font is in the public domain.
X */
X
Xchar patternchars[] = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
X#define FROW 13
X#define FCOL 8
X#define NUMCHARS 95
Xchar font[NUMCHARS][FROW] = {
X{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, 
X{0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x10, 0x00, 0x00, }, 
X{0x24, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, 
X{0x00, 0x24, 0x24, 0x7e, 0x24, 0x7e, 0x24, 0x24, 0x00, 0x00, 0x00, }, 
X{0x00, 0x10, 0x3c, 0x50, 0x38, 0x14, 0x78, 0x10, 0x00, 0x00, 0x00, }, 
X{0x22, 0x52, 0x24, 0x08, 0x08, 0x10, 0x24, 0x2a, 0x44, 0x00, 0x00, }, 
X{0x00, 0x00, 0x30, 0x48, 0x48, 0x30, 0x4a, 0x44, 0x3a, 0x00, 0x00, }, 
X{0x38, 0x30, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, 
X{0x04, 0x08, 0x08, 0x10, 0x10, 0x10, 0x08, 0x08, 0x04, 0x00, 0x00, }, 
X{0x20, 0x10, 0x10, 0x08, 0x08, 0x08, 0x10, 0x10, 0x20, 0x00, 0x00, }, 
X{0x00, 0x00, 0x24, 0x18, 0x7e, 0x18, 0x24, 0x00, 0x00, 0x00, 0x00, }, 
X{0x00, 0x00, 0x10, 0x10, 0x7c, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x30, 0x40, 0x00, }, 
X{0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x10, 0x00, }, 
X{0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, }, 
X{0x18, 0x24, 0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00, }, 
X{0x10, 0x30, 0x50, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, }, 
X{0x3c, 0x42, 0x42, 0x02, 0x04, 0x18, 0x20, 0x40, 0x7e, 0x00, 0x00, }, 
X{0x7e, 0x02, 0x04, 0x08, 0x1c, 0x02, 0x02, 0x42, 0x3c, 0x00, 0x00, }, 
X{0x04, 0x0c, 0x14, 0x24, 0x44, 0x44, 0x7e, 0x04, 0x04, 0x00, 0x00, }, 
X{0x7e, 0x40, 0x40, 0x5c, 0x62, 0x02, 0x02, 0x42, 0x3c, 0x00, 0x00, }, 
X{0x1c, 0x20, 0x40, 0x40, 0x5c, 0x62, 0x42, 0x42, 0x3c, 0x00, 0x00, }, 
X{0x7e, 0x02, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x00, 0x00, }, 
X{0x3c, 0x42, 0x42, 0x42, 0x3c, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, }, 
X{0x3c, 0x42, 0x42, 0x46, 0x3a, 0x02, 0x02, 0x04, 0x38, 0x00, 0x00, }, 
X{0x00, 0x00, 0x10, 0x38, 0x10, 0x00, 0x00, 0x10, 0x38, 0x10, 0x00, }, 
X{0x00, 0x00, 0x10, 0x38, 0x10, 0x00, 0x00, 0x38, 0x30, 0x40, 0x00, }, 
X{0x02, 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, }, 
X{0x40, 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, 0x00, }, 
X{0x3c, 0x42, 0x42, 0x02, 0x04, 0x08, 0x08, 0x00, 0x08, 0x00, 0x00, }, 
X{0x3c, 0x42, 0x42, 0x4e, 0x52, 0x56, 0x4a, 0x40, 0x3c, 0x00, 0x00, }, 
X{0x18, 0x24, 0x42, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00, 0x00, }, 
X{0xfc, 0x42, 0x42, 0x42, 0x7c, 0x42, 0x42, 0x42, 0xfc, 0x00, 0x00, }, 
X{0x3c, 0x42, 0x40, 0x40, 0x40, 0x40, 0x40, 0x42, 0x3c, 0x00, 0x00, }, 
X{0xfc, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xfc, 0x00, 0x00, }, 
X{0x7e, 0x40, 0x40, 0x40, 0x78, 0x40, 0x40, 0x40, 0x7e, 0x00, 0x00, }, 
X{0x7e, 0x40, 0x40, 0x40, 0x78, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, }, 
X{0x3c, 0x42, 0x40, 0x40, 0x40, 0x4e, 0x42, 0x46, 0x3a, 0x00, 0x00, }, 
X{0x42, 0x42, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, }, 
X{0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, }, 
X{0x1e, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x44, 0x38, 0x00, 0x00, }, 
X{0x42, 0x44, 0x48, 0x50, 0x60, 0x50, 0x48, 0x44, 0x42, 0x00, 0x00, }, 
X{0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7e, 0x00, 0x00, }, 
X{0x82, 0x82, 0xc6, 0xaa, 0x92, 0x92, 0x82, 0x82, 0x82, 0x00, 0x00, }, 
X{0x42, 0x42, 0x62, 0x52, 0x4a, 0x46, 0x42, 0x42, 0x42, 0x00, 0x00, }, 
X{0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, }, 
X{0x7c, 0x42, 0x42, 0x42, 0x7c, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, }, 
X{0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x52, 0x4a, 0x3c, 0x02, 0x00, }, 
X{0x7c, 0x42, 0x42, 0x42, 0x7c, 0x50, 0x48, 0x44, 0x42, 0x00, 0x00, }, 
X{0x3c, 0x42, 0x40, 0x40, 0x3c, 0x02, 0x02, 0x42, 0x3c, 0x00, 0x00, }, 
X{0xfe, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, }, 
X{0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, }, 
X{0x82, 0x82, 0x44, 0x44, 0x44, 0x28, 0x28, 0x28, 0x10, 0x00, 0x00, }, 
X{0x82, 0x82, 0x82, 0x82, 0x92, 0x92, 0x92, 0xaa, 0x44, 0x00, 0x00, }, 
X{0x82, 0x82, 0x44, 0x28, 0x10, 0x28, 0x44, 0x82, 0x82, 0x00, 0x00, }, 
X{0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, }, 
X{0x7e, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x40, 0x7e, 0x00, 0x00, }, 
X{0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x00, 0x00, }, 
X{0x80, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x02, 0x00, 0x00, }, 
X{0x78, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x78, 0x00, 0x00, }, 
X{0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, }, 
X{0x38, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x3c, 0x02, 0x3e, 0x42, 0x46, 0x3a, 0x00, 0x00, }, 
X{0x40, 0x40, 0x40, 0x5c, 0x62, 0x42, 0x42, 0x62, 0x5c, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x3c, 0x42, 0x40, 0x40, 0x42, 0x3c, 0x00, 0x00, }, 
X{0x02, 0x02, 0x02, 0x3a, 0x46, 0x42, 0x42, 0x46, 0x3a, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x3c, 0x42, 0x7e, 0x40, 0x40, 0x3c, 0x00, 0x00, }, 
X{0x1c, 0x22, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x3a, 0x44, 0x44, 0x38, 0x40, 0x3c, 0x42, 0x3c, }, 
X{0x40, 0x40, 0x40, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, }, 
X{0x00, 0x10, 0x00, 0x30, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, }, 
X{0x00, 0x04, 0x00, 0x0c, 0x04, 0x04, 0x04, 0x04, 0x44, 0x44, 0x38, }, 
X{0x40, 0x40, 0x40, 0x44, 0x48, 0x70, 0x48, 0x44, 0x42, 0x00, 0x00, }, 
X{0x30, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0xec, 0x92, 0x92, 0x92, 0x92, 0x82, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x5c, 0x62, 0x42, 0x62, 0x5c, 0x40, 0x40, 0x40, }, 
X{0x00, 0x00, 0x00, 0x3a, 0x46, 0x42, 0x46, 0x3a, 0x02, 0x02, 0x02, }, 
X{0x00, 0x00, 0x00, 0x5c, 0x22, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x3c, 0x42, 0x30, 0x0c, 0x42, 0x3c, 0x00, 0x00, }, 
X{0x00, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x22, 0x1c, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x44, 0x44, 0x44, 0x44, 0x44, 0x3a, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x44, 0x44, 0x44, 0x28, 0x28, 0x10, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x82, 0x82, 0x92, 0x92, 0xaa, 0x44, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x00, 0x00, }, 
X{0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x46, 0x3a, 0x02, 0x42, 0x3c, }, 
X{0x00, 0x00, 0x00, 0x7e, 0x04, 0x08, 0x10, 0x20, 0x7e, 0x00, 0x00, }, 
X{0x0e, 0x10, 0x10, 0x08, 0x30, 0x08, 0x10, 0x10, 0x0e, 0x00, 0x00, }, 
X{0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, }, 
X{0x70, 0x08, 0x08, 0x10, 0x0c, 0x10, 0x08, 0x08, 0x70, 0x00, 0x00, }, 
X{0x24, 0x54, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, 
X};
END_OF_FILE
if test 7037 -ne `wc -c <'8x13.h'`; then
    echo shar: \"'8x13.h'\" unpacked with wrong size!
fi
# end of '8x13.h'
fi
echo shar: End of shell archive.
exit 0
--
Diomidis Spinellis                  Internet:                 dds@cc.ic.ac.uk
Department of Computing             UUCP:                    ...!ukc!iccc!dds
Imperial College                    JANET:                    dds@uk.ac.ic.cc
London SW7 2BZ                      #include "/dev/tty"




Newsgroup comp.sources.misc contents
Newsgroup list
Diomidis Spinellis home page

Creative Commons License Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a Creative Commons Attribution-Share Alike 3.0 Greece License.