nroff driver for LaserJet IIP

Chip Rosenthal chip at chinacat.Unicom.COM
Sat May 4 02:34:18 AEST 1991


In article <5859 at ns-mx.uiowa.edu>
	dhmadsen at icaen.uiowa.edu (Donald H Madsen) writes:
>Does anyone have a nroff driver available for an HP LaserJet IIP
>to be used with Xenix 2.3.3 and Text Processing System 2.3?

Below is something I used may years ago.  Unless terminal bit rot set
in, it should be fine.  Hopefully from the Makefile you can figure
out what has to be done to get the various font tables you need.
Sorry there isn't any documentation.

Note that the text processing system is only 7-bit capable, and you
need 8-bits to access the special characters.  This driver table emits
for a character `c' with the MSB set, a two byte sequence:  { '\0177',
c&0177 }.  I've got another program called `colpr' which will take
these sequences as generated by nroff and convert them back.  I can
send that out if anybody needs it.

--- cut here -----------------------------------------------------------------
#! /bin/sh
# this is a "shar" archive - run through "/bin/sh" to extract 3 files:
#   Makefile tablj.c chartest.nroff
# Wrapped by bin at chinacat on Fri May  3 11:26:08 CDT 1991
# Unpacking this archive requires:  sed test wc (possibly mkdir)
# Existing files will not be clobbered unless "-c" is specified on the cmd line.
if test -f Makefile -a "$1" != "-c" ; then
    echo "Makefile: file exists - will not be overwritten"
else
    echo "x - Makefile (file 1 of 3, 2195 chars)"
    sed -e 's/^X//' << 'END_OF_FILE_Makefile' > Makefile
X
XSHELL = /bin/sh
XCC = cc
XCFLAGS = -O -M0
XMKTERM = /usr/lib/term/mkterm.o
X
X# Available Fonts:
X#
X# name		font		symbol	size	 effects
X# ------------	--------------	------	------	 --------------
X# Fci10b	Courier		IBM-US	10cpi	 bold
X# Fci10bi	Courier		IBM-US 	10cpi	 bold,italic
X# Fci12bi	Courier		IBM-US 	12cpi	 bold,italic
X# Fli16		Line Printer	IBM-US	16.66cpi none
X# Fpr12bi	Prestige Elite	Roman8	12cpi	 bold,italic
X
XALL = Fci10bi Fci12bi Fli16
X
Xall:		$(ALL)
Xinstall:	all		; inst Install
Xclean:				; rm -f mk_tablj $(ALL) *.o a.out core
Xclobber:	clean		; inst -u Install
X
X# Fci10b
X#	availability	LaserJet II Internal
X#	font		Courier
X#	symbol set	IBM-US
X#	pitch		10 chars/inch
X#	size		12 points
X#	effects		bold
XFci10b:		tablj.c
X	$(CC) $(CFLAGS) -o mk_tablj -DNAME=\"$@\" \
X	    -DTYPE_COURIER -DSYMB_IBM_US -DPITCH=10 -DSIZE=12 -DBOLD \
X	    tablj.c $(MKTERM)
X	./mk_tablj ; rm mk_tablj
X
X# Fci10bi
X#	availability	Cart S1
X#	font		Courier
X#	symbol set	IBM-US
X#	pitch		10 chars/inch
X#	size		12 points
X#	effects		bold, italic
XFci10bi:	tablj.c
X	$(CC) $(CFLAGS) -o mk_tablj -DNAME=\"$@\" \
X	    -DTYPE_COURIER -DSYMB_IBM_US -DPITCH=10 -DSIZE=12 -DBOLD -DITALIC \
X	    tablj.c $(MKTERM)
X	./mk_tablj ; rm mk_tablj
X
X# Fci12bi
X#	availability	Cart S1
X#	font		Courier
X#	symbol set	IBM-US
X#	pitch		12 chars/inch
X#	size		10 points
X#	effects		bold, italic
XFci12bi:	tablj.c
X	$(CC) $(CFLAGS) -o mk_tablj -DNAME=\"$@\" \
X	    -DTYPE_COURIER -DSYMB_IBM_US -DPITCH=12 -DSIZE=10 -DBOLD -DITALIC \
X	    tablj.c $(MKTERM)
X	./mk_tablj ; rm mk_tablj
X
X# Fli16
X#	availability	LaserJet II Internal
X#	font		Line Printer
X#	symbol set	IBM-US
X#	pitch		16.66 chars/inch
X#	size		8.5 points
X#	effects		none
XFli16:		tablj.c
X	$(CC) $(CFLAGS) -o mk_tablj -DNAME=\"$@\" \
X	    -DTYPE_LINE_PRINTER -DSYMB_IBM_US -DPITCH=16.66 -DSIZE=8.5 \
X	    tablj.c $(MKTERM)
X	./mk_tablj ; rm mk_tablj
X
X# Fpr12bi
X#	availability	several
X#	font		Prestige Elite
X#	symbol set	Roman8 (not fully implemented)
X#	pitch		12 chars/inch
X#	size		10 points
X#	effects		bold, italic
XFpr12bi:	tablj.c
X	$(CC) $(CFLAGS) -o mk_tablj -DNAME=\"$@\" \
X	    -DTYPE_PRESTIGE -DSYMB_ROMAN8 -DPITCH=12 -DSIZE=10 -DBOLD -DITALIC \
X	    tablj.c $(MKTERM)
X	./mk_tablj ; rm mk_tablj
X
END_OF_FILE_Makefile
    size="`wc -c < Makefile`"
    if test 2195 -ne "$size" ; then
	echo "Makefile: extraction error - got $size chars"
    fi
fi
if test -f tablj.c -a "$1" != "-c" ; then
    echo "tablj.c: file exists - will not be overwritten"
else
    echo "x - tablj.c (file 2 of 3, 19902 chars)"
    sed -e 's/^X//' << 'END_OF_FILE_tablj.c' > tablj.c
X#include <stdio.h>
X#include "/usr/lib/term/terms.h"
X#define INCH 240
X
X/*****************************************************************************
X * nroff driver generator for HP LaserJet Printer.
X *
X * Thu Dec 22 17:09:54 CST 1988 - C. Rosenthal (chip at vector.UUCP)
X *	Fixed vertical motions so tbl would work.  Cleaned up char set.
X * Wed Dec 14 17:11:30 CST 1988 - C. Rosenthal (chip at vector.UUCP)
X *	Substantial rewrite and cleanup.
X * Thu Mar 17 13:54:53 CST 1988 - C. Rosenthal (chip at vector.UUCP)
X *	Original composition.
X *
X *****************************************************************************
X *
X * This file is used to generate nroff(CT) printer drivers under SCO XENIX
X * for the HP LaserJet printer.  Compiler definitions are used to select
X * the parameters for the generated table.  The following parameters must
X * be specified when compiling this module:
X *
X *	NAME		The name of the table to create, e.g. -DNAME="tablj".
X *	SYMB_select	The symbol set to use, e.g. -DSYMB_ROMAN8.
X *	TYPE_select	The font type to use, e.g. -DTYPE_COURIER
X *	PITCH		The font pitch in chars/inch, e.g. -DPITCH=10
X *	SIZE		The font size in points, e.g. -DSIZE=12
X *
X * The following symbol sets are available:
X *
X *	SYMB_ROMAN8		SYMB_IBM_US
X *
X * The following typefaces are available:
X *
X *	TYPE_LINE_PRINTER	TYPE_PICA		TYPE_ELITE
X *	TYPE_COURIER		TYPE_HELV		TYPE_TMS_RMN
X *	TYPE_GOTHIC		TYPE_SCRIPT		TYPE_PRESTIGE
X *	TYPE_CASLON		TYPE_ORATOR		TYPE_PRESENTATIONS
X *	TYPE_SWISS_721		TYPE_DUTCH_801
X *
X * In addition, the following optional parameters may be specified:
X *
X *	BOLD		Bold characters are available, e.g. -DBOLD.
X *	ITALIC		Italic characters are available, e.g. -DITALIC.
X *
X * For example, the following command sequence will generate a "tablj"
X * driver table which will work with the LaserJet II internal Courier font:
X *
X *	cc -O -M0 -DNAME=\"tablj\" -o mk_tablj \
X *	    -DTYPE_COURIER -DSYMB_ROMAN8 -DPITCH=10 -DSIZE=12 -DBOLD \
X *	    tablj.c mkterm.o
X *	./mk_tablj
X *	rm -f ./mk_tablj tablj.o
X *
X ****************************************************************************/
X
X
X/*
X * Printer initialization string.
X *
X *                   .--------------------------------- reset
X *                   |      .-------------------------- map \r to CR, \n to CRLF
X *                   |      |       .------------------ disab line wrap
X *                   |      |       |       .---------- portrait mode
X *                   |      |       |       | .-------- disab performation skip
X *                   |      |       |       | | .------ top margin = 0 lines
X *                   |      |       |       | | | .---- 6 lines per inch
X *                   |      |       |       | | | | .-- 66 lines per page
X *                   |      |       |       | | | | |	*/
X#define INITSTR	"\033E\033&k2G\033&s1C\033&l0o0l0e6d66F"
X/*               =====--------========------==--==--===	*/
X
X/*
X * Printer reset string.
X */
X#define RESETSTR	"\033E"
X
X/*
X * Determine which symbol set to use.
X */
X#ifdef SYMB_ROMAN8
X#   define SYMBOL "8U"
X#endif
X#ifdef SYMB_IBM_US
X#   define SYMBOL "10U"
X#endif
X
X/*
X * Determine which font type to use.
X */
X#ifdef TYPE_LINE_PRINTER
X#   define TYPEFACE 0
X#endif
X#ifdef TYPE_PICA
X#   define TYPEFACE 1
X#endif
X#ifdef TYPE_ELITE
X#   define TYPEFACE 2
X#endif
X#ifdef TYPE_COURIER
X#   define TYPEFACE 3
X#endif
X#ifdef TYPE_HELV
X#   define TYPEFACE 4
X#endif
X#ifdef TYPE_TMS_RMN
X#   define TYPEFACE 5
X#endif
X#ifdef TYPE_GOTHIC
X#   define TYPEFACE 6
X#endif
X#ifdef TYPE_SCRIPT
X#   define TYPEFACE 7
X#endif
X#ifdef TYPE_PRESTIGE
X#   define TYPEFACE 8
X#endif
X#ifdef TYPE_CASLON
X#   define TYPEFACE 9
X#endif
X#ifdef TYPE_ORATOR
X#   define TYPEFACE 10
X#endif
X#ifdef TYPE_PRESENTATIONS
X#   define TYPEFACE 11
X#endif
X#ifdef TYPE_SWISS_721
X#   define TYPEFACE 14
X#endif
X#ifdef TYPE_DUTCH_801
X#   define TYPEFACE 15
X#endif
X
X/*
X * Constants used to generate roman, italic, and bold fonts.
X */
X#define STYLE_U		 0	/* upright style		*/
X#define STYLE_I		 1	/* italic style			*/
X#define STROKE_M	 0	/* medium stroke		*/
X#define STROKE_B	 3	/* bold stroke			*/
X
X/*
X * Character spacing select code - only fixed spacing supported.
X */
X#define SPACING 0
X
X/*
X * Lines per inch - 6 lines/inch is hardcoded into INITSTR
X */
X#define LINES_INCH 6
X
X
Xstatic char Setr[128];		/* select roman font		*/
Xstatic char Seti[128];		/* select italic font		*/
Xstatic char Setb[128];		/* select bold font		*/
Xstatic char Init[128];		/* initialize & select roman	*/
X
X
Xmkfont(buf,symbol,spacing,pitch,size,style,stroke,typeface)
Xchar *buf;
Xchar *symbol;
Xint spacing;
Xint pitch;
Xint size;
Xint stroke;
Xint typeface;
X{
X    sprintf(buf, "\033&10O\033(%s\033(s%dp%dh%dv%ds%db%dT",
X	symbol, spacing, pitch, size, style, stroke, typeface);
X}
X
X
Xuserterms()
X{
X    extern char *strcpy(), *strcat();
X    extern struct termtable tablj;
X
X    mkfont(Setr, SYMBOL, SPACING, PITCH, SIZE, STYLE_U, STROKE_M, TYPEFACE);
X
X#ifdef BOLD
X    mkfont(Setb, SYMBOL, SPACING, PITCH, SIZE, STYLE_U, STROKE_B, TYPEFACE);
X#else
X    Setb[0] = '\0';
X#endif
X
X#ifdef ITALIC
X    mkfont(Seti, SYMBOL, SPACING, PITCH, SIZE, STYLE_I, STROKE_M, TYPEFACE);
X#else
X    Seti[0] = '\0';
X#endif
X
X    (void) strcat(strcpy(Init,INITSTR),Setr);
X
X    mkterm(NAME, &tablj);
X
X    exit(0);
X}
X
X#define CSIZE	(INCH/PITCH)		/* inches per character	*/
X#define LSIZE	(INCH/LINES_INCH)	/* inches per line	*/
X
Xstruct termtable tablj = {
X    0,		/* bset		termio.c_oflag bits to set		*/
X    0,		/* breset	termio.c_oflag bits to reset		*/
X    CSIZE,	/* Hor		horizontal resolution			*/
X    LSIZE,	/* Vert		vertical resolution			*/
X    LSIZE,	/* Newline	space moved by newline character	*/
X    CSIZE,	/* Char		character size				*/
X    CSIZE,	/* Em		em size					*/
X    LSIZE/2,	/* Halfline	space moved by half-linefeed up/down	*/
X    CSIZE,	/* Adj		quantum of space for margin adj		*/
X    Init,	/* twinit	initialize terminal string		*/
X    RESETSTR,	/* twrest	reset terminal string			*/
X    "\n",	/* twnl		string to move down a full line		*/
X    "\033&a-.5R",/* hlr		string to move up a half-line		*/
X    "\033&a+.5R",/* hlf		string to move down a half-line		*/
X    "\033&a-1R",/* flr		string to move up a full line		*/
X    Setb,	/* bdon		string to enable bold output		*/
X    Setr,	/* bdoff	string to disable bold output		*/
X    Seti,	/* iton		string to enable italics output		*/
X    Setr,	/* itoff	string to disable italics output	*/
X    "",		/* ploton	string to turn on plotting mode		*/
X    "",		/* plotoff	string to turn off plotting mode	*/
X    "",		/* up		string to move up one plot unit		*/
X    "",		/* down		string to move down one plot unit	*/
X    "",		/* right	string to move right one plot unit	*/
X    "",		/* left		string to move left one plot unit	*/
X
X#ifdef SYMB_ROMAN8
X    {
X	"\001 ",	/* 	space					*/
X	"\001!",	/* !						*/
X	"\001\"",	/* "						*/
X	"\001#",	/* #						*/
X	"\001$",	/* $						*/
X	"\001%",	/* %						*/
X	"\001&",	/* &						*/
X	"\001'",	/* '	close					*/
X	"\001(",	/* (						*/
X	"\001)",	/* )						*/
X	"\001*",	/* *						*/
X	"\001+",	/* +						*/
X	"\001,",	/* ,						*/
X	"\001-",	/* -	hyphen					*/
X	"\001.",	/* .						*/
X	"\001/",	/* /						*/
X	"\201\060",	/* 0						*/
X	"\201\061",	/* 1						*/
X	"\201\062",	/* 2						*/
X	"\201\063",	/* 3						*/
X	"\201\064",	/* 4						*/
X	"\201\065",	/* 5						*/
X	"\201\066",	/* 6						*/
X	"\201\067",	/* 7						*/
X	"\201\070",	/* 8						*/
X	"\201\071",	/* 9						*/
X	"\001:",	/* :						*/
X	"\001;",	/* ;						*/
X	"\001<",	/* <						*/
X	"\001=",	/* =						*/
X	"\001>",	/* >						*/
X	"\001?",	/* ?						*/
X	"\001@",	/* @						*/
X	"\201A",	/* A						*/
X	"\201B",	/* B						*/
X	"\201C",	/* C						*/
X	"\201D",	/* D						*/
X	"\201E",	/* E						*/
X	"\201F",	/* F						*/
X	"\201G",	/* G						*/
X	"\201H",	/* H						*/
X	"\201I",	/* I						*/
X	"\201J",	/* J						*/
X	"\201K",	/* K						*/
X	"\201L",	/* L						*/
X	"\201M",	/* M						*/
X	"\201N",	/* N						*/
X	"\201O",	/* O						*/
X	"\201P",	/* P						*/
X	"\201Q",	/* Q						*/
X	"\201R",	/* R						*/
X	"\201S",	/* S						*/
X	"\201T",	/* T						*/
X	"\201U",	/* U						*/
X	"\201V",	/* V						*/
X	"\201W",	/* W						*/
X	"\201X",	/* X						*/
X	"\201Y",	/* Y						*/
X	"\201Z",	/* Z						*/
X	"\001[",	/* [						*/
X	"\001\\",	/* \						*/
X	"\001]",	/* ]						*/
X	"\001^",	/* ^						*/
X	"\001_",	/* _	dash					*/
X	"\001`",	/* `	open					*/
X	"\201a",	/* a						*/
X	"\201b",	/* b						*/
X	"\201c",	/* c						*/
X	"\201d",	/* d						*/
X	"\201e",	/* e						*/
X	"\201f",	/* f						*/
X	"\201g",	/* g						*/
X	"\201h",	/* h						*/
X	"\201i",	/* i						*/
X	"\201j",	/* j						*/
X	"\201k",	/* k						*/
X	"\201l",	/* l						*/
X	"\201m",	/* m						*/
X	"\201n",	/* n						*/
X	"\201o",	/* o						*/
X	"\201p",	/* p						*/
X	"\201q",	/* q						*/
X	"\201r",	/* r						*/
X	"\201s",	/* s						*/
X	"\201t",	/* t						*/
X	"\201u",	/* u						*/
X	"\201v",	/* v						*/
X	"\201w",	/* w						*/
X	"\201x",	/* x						*/
X	"\201y",	/* y						*/
X	"\201z",	/* z						*/
X	"\001{",	/* {						*/
X	"\001|",	/* |						*/
X	"\001}",	/* }						*/
X	"\001~",	/* ~						*/
X	"\000",		/* \|	1/6em narrow space			*/
X	"\001-",	/*	hyphen					*/
X	"\001O\b+",	/* \(bu	bullet			 		*/
X	"\002\[]",	/* \(sq	square					*/
X	"\001-",	/* \(em	3/4 em dash				*/
X	"\001_",	/* \(ru	rule					*/
X	"\001\177\167",	/* \(14	1/4					*/
X	"\001\177\170",	/* \(12	1/2					*/
X	"\001\177\165",	/* \(34	3/4					*/
X	"\001-",	/*	minus					*/
X	"\202fi",	/* \(fi	fi					*/
X	"\202fl",	/* \(fl	fl					*/
X	"\202ff",	/* \(ff	ff					*/
X	"\203ffi",	/* \(Fi	ffi					*/
X	"\203ffl",	/* \(Fl	ffl					*/
X	"\001\177\063",	/* \(de	degree			 		*/
X	"\001|\b-",	/* \(dg	dagger					*/
X	"\001\177\075",	/* \(sc	section					*/
X	"\001'",	/* \(fm	foot mark				*/
X	"\001'",	/* \(aa	acute accent				*/
X	"\001`",	/* \(ga	grave accent				*/
X	"\001_",	/* \(ul	underrule				*/
X	"\001/",	/* \(sl	slash (longer)				*/
X	"\000",		/* \^	1/12em half narrow space		*/
X	"\001 ",	/* \( 	unpaddable space			*/
X	"\000",		/* \(*a	alpha					*/
X	"\201\177\136",	/* \(*b	beta					*/
X	"\000",		/* \(*g	gamma					*/
X	"\000",		/* \(*d	delta					*/
X	"\000",		/* \(*e	epsilon					*/
X	"\000",		/* \(*z	zeta					*/
X	"\000",		/* \(*y	eta					*/
X    	"\201O\b-",	/* \(*h	theta					*/
X	"\201i",	/* \(*i	iota					*/
X	"\201k",	/* \(*k	kappa					*/
X	"\000",		/* \(*l	lambda					*/
X	"\201\177\163",	/* \(*m	mu					*/
X    	"\201v",	/* \(*n	nu					*/
X	"\000",		/* \(*c	xi					*/
X	"\201o",	/* \(*o	omicron					*/
X	"\000",		/* \(*p	pi					*/
X    	"\201p",	/* \(*r	rho					*/
X	"\000",		/* \(*s	sigma					*/
X	"\000",		/* \(*t	tau					*/
X	"\201v",	/* \(*u	upsilon					*/
X	"\000",		/* \(*f	phi					*/
X	"\201x",	/* \(*x	chi					*/
X	"\000",		/* \(*q	psi					*/
X	"\000",		/* \(*w	omega					*/
X	"\000",		/* \(*G	Gamma					*/
X	"\000",		/* \(*D	Delta					*/
X	"\000",		/* \(*H	Theta					*/
X	"\000",		/* \(*L	Lambda					*/
X	"\000",		/* \(*C	Xi					*/
X	"\000",		/* \(*P	Pi					*/
X	"\000",		/* \(*S	Sigma					*/
X	"\000",		/*	??????					*/
X	"\201Y",	/* \(*U	Upsilon					*/
X	"\000",		/* \(*F	Phi					*/
X	"\000",		/* \(*Q	Psi					*/
X	"\000",		/* \(*W	Omega					*/
X	"\000",		/* \(sr	square root				*/
X	"\000",		/* \(ts	terminal sigma				*/
X	"\000",		/* \(rn	root en extender			*/
X	"\001>\b_",	/* \(>=	greater than or equal to		*/
X	"\001<\b_",	/* \(<= less than or equal to			*/
X	"\001=\b-",	/* \(==	identically equal			*/
X	"\001-",	/*	equation minus				*/
X	"\001=\b~",	/* \(~=	approx =				*/
X	"\001\126",	/* \(ap	approximates				*/
X	"\001=\b/",	/* \(!=	not equal				*/
X	"\000",		/* \(->	right arrow				*/
X	"\000",		/* \(<- left arrow				*/
X	"\000",		/* \(ua	up arrow				*/
X	"\000",		/* \(da	down arrow				*/
X	"\001=",	/*	equation equal				*/
X	"\001x",	/* \(mu	multiply				*/
X	"\001-\b:",	/* \(di	divide					*/
X	"\001\177\176",	/* \(+-	plus-minus				*/
X	"\001U",	/* \(cu	cup (union)				*/
X	"\000",		/* \(ca	cap (intersection)			*/
X	"\000",		/* \(sb	subset of				*/
X	"\000",		/* \(sp	superset of				*/
X	"\000",		/* \(ib	improper subset				*/
X	"\000",		/* \(ip	improper superset			*/
X	"\000",		/* \(if	infinity				*/
X	"\000",		/* \(pd	partial derivative			*/
X	"\000",		/* \(gr	gradient				*/
X	"\000",		/* \(no	not					*/
X	"\000",		/* \(is	integral sign				*/
X	"\000",		/* \(pt	proportional to				*/
X	"\001\177\122",	/* \(es	empty set				*/
X	"\000",		/* \(mo	member of				*/
X	"\001+",	/*	equation plus				*/
X	"\001r\bO",	/* \(rg	registered				*/
X	"\001c\bO",	/* \(co	copyright				*/
X	"\001\174",	/*	box rule				*/
X	"\001\177\077",	/* \(ct	cent sign				*/
X	"\001|\b=",	/* \(dd	dbl dagger				*/
X	"\002=>",	/* \(rh	right hand				*/
X	"\002<=",	/* \(lh	left hand				*/
X	"\001*",	/* \(**	math * 					*/
X	"\000",		/*	bell system sign			*/
X	"\001|",	/* \(or	or (was star)				*/
X	"\001O",	/* \(ci	circle					*/
X	"\000",		/* \(lt	left top of big curly bracket		*/
X	"\000",		/* \(lb	left bottom of big curly bracket	*/
X	"\000",		/* \(rt	right top of big curly bracket		*/
X	"\000",		/* \(rb	right bot of big curly bracket		*/
X	"\000",		/* \(lc	left center of big curly bracket	*/
X	"\000",		/* \(rc	right center of big curly bracket	*/
X	"\001\174",	/* \(bv	bold vertical				*/
X	"\000",		/* \(lf	left floor (left bot of big sq bract)	*/
X	"\000",		/* \(rf	right floor (rb of ")			*/
X	"\000",		/* \(lc	left ceiling (lt of ")			*/
X	"\000"		/* \(rc	right ceiling (rt of ")			*/
X    }
X#endif
X
X#ifdef SYMB_IBM_US
X    {
X	"\001 ",	/* 	space					*/
X	"\001!",	/* !						*/
X	"\001\"",	/* "						*/
X	"\001#",	/* #						*/
X	"\001$",	/* $						*/
X	"\001%",	/* %						*/
X	"\001&",	/* &						*/
X	"\001'",	/* '	close					*/
X	"\001(",	/* (						*/
X	"\001)",	/* )						*/
X	"\001*",	/* *						*/
X	"\001+",	/* +						*/
X	"\001,",	/* ,						*/
X	"\001-",	/* -	hyphen					*/
X	"\001.",	/* .						*/
X	"\001/",	/* /						*/
X	"\201\060",	/* 0						*/
X	"\201\061",	/* 1						*/
X	"\201\062",	/* 2						*/
X	"\201\063",	/* 3						*/
X	"\201\064",	/* 4						*/
X	"\201\065",	/* 5						*/
X	"\201\066",	/* 6						*/
X	"\201\067",	/* 7						*/
X	"\201\070",	/* 8						*/
X	"\201\071",	/* 9						*/
X	"\001:",	/* :						*/
X	"\001;",	/* ;						*/
X	"\001<",	/* <						*/
X	"\001=",	/* =						*/
X	"\001>",	/* >						*/
X	"\001?",	/* ?						*/
X	"\001@",	/* @						*/
X	"\201A",	/* A						*/
X	"\201B",	/* B						*/
X	"\201C",	/* C						*/
X	"\201D",	/* D						*/
X	"\201E",	/* E						*/
X	"\201F",	/* F						*/
X	"\201G",	/* G						*/
X	"\201H",	/* H						*/
X	"\201I",	/* I						*/
X	"\201J",	/* J						*/
X	"\201K",	/* K						*/
X	"\201L",	/* L						*/
X	"\201M",	/* M						*/
X	"\201N",	/* N						*/
X	"\201O",	/* O						*/
X	"\201P",	/* P						*/
X	"\201Q",	/* Q						*/
X	"\201R",	/* R						*/
X	"\201S",	/* S						*/
X	"\201T",	/* T						*/
X	"\201U",	/* U						*/
X	"\201V",	/* V						*/
X	"\201W",	/* W						*/
X	"\201X",	/* X						*/
X	"\201Y",	/* Y						*/
X	"\201Z",	/* Z						*/
X	"\001[",	/* [						*/
X	"\001\\",	/* \						*/
X	"\001]",	/* ]						*/
X	"\001^",	/* ^						*/
X	"\001_",	/* _	dash					*/
X	"\001`",	/* `	open					*/
X	"\201a",	/* a						*/
X	"\201b",	/* b						*/
X	"\201c",	/* c						*/
X	"\201d",	/* d						*/
X	"\201e",	/* e						*/
X	"\201f",	/* f						*/
X	"\201g",	/* g						*/
X	"\201h",	/* h						*/
X	"\201i",	/* i						*/
X	"\201j",	/* j						*/
X	"\201k",	/* k						*/
X	"\201l",	/* l						*/
X	"\201m",	/* m						*/
X	"\201n",	/* n						*/
X	"\201o",	/* o						*/
X	"\201p",	/* p						*/
X	"\201q",	/* q						*/
X	"\201r",	/* r						*/
X	"\201s",	/* s						*/
X	"\201t",	/* t						*/
X	"\201u",	/* u						*/
X	"\201v",	/* v						*/
X	"\201w",	/* w						*/
X	"\201x",	/* x						*/
X	"\201y",	/* y						*/
X	"\201z",	/* z						*/
X	"\001{",	/* {						*/
X	"\001|",	/* |						*/
X	"\001}",	/* }						*/
X	"\001~",	/* ~						*/
X	"\000",		/* \|	1/6em narrow space			*/
X	"\001-",	/*	hyphen					*/
X	"\001\177\171",	/* \(bu	bullet			 		*/
X	"\002\[]",	/* \(sq	square					*/
X	"\001-",	/* \(em	3/4 em dash				*/
X	"\001_",	/* \(ru	rule					*/
X	"\001\177\054",	/* \(14	1/4					*/
X	"\001\177\053",	/* \(12	1/2					*/
X	"\003\063/4",	/* \(34	3/4					*/
X	"\001-",	/*	minus					*/
X	"\202fi",	/* \(fi	fi					*/
X	"\202fl",	/* \(fl	fl					*/
X	"\202ff",	/* \(ff	ff					*/
X	"\203ffi",	/* \(Fi	ffi					*/
X	"\203ffl",	/* \(Fl	ffl					*/
X	"\001\177\170",	/* \(de	degree			 		*/
X	"\001|\b-",	/* \(dg	dagger					*/
X	"\001\025",	/* \(sc	section					*/
X	"\001'",	/* \(fm	foot mark				*/
X	"\001'",	/* \(aa	acute accent				*/
X	"\001`",	/* \(ga	grave accent				*/
X	"\001_",	/* \(ul	underrule				*/
X	"\001/",	/* \(sl	slash (longer)				*/
X	"\000",		/* \^	1/12em half narrow space		*/
X	"\001 ",	/* \( 	unpaddable space			*/
X	"\201\177\140",	/* \(*a	alpha					*/
X	"\201\177\141",	/* \(*b	beta					*/
X	"\000",		/* \(*g	gamma					*/
X	"\201\177\153",	/* \(*d	delta					*/
X	"\201\177\156",	/* \(*e	epsilon					*/
X	"\000",		/* \(*z	zeta					*/
X	"\201\177\174",	/* \(*y	eta					*/
X	"\201O\b-",	/* \(*h	theta					*/
X	"\201i",	/* \(*i	iota					*/
X	"\201k",	/* \(*k	kappa					*/
X	"\000",		/* \(*l	lambda					*/
X	"\201\177\146",	/* \(*m	mu					*/
X	"\201v",	/* \(*n	nu					*/
X	"\000",		/* \(*c	xi					*/
X	"\201o",	/* \(*o	omicron					*/
X	"\201\177\143",	/* \(*p	pi					*/
X	"\201p",	/* \(*r	rho					*/
X	"\201\177\145",	/* \(*s	sigma					*/
X	"\201\177\147",	/* \(*t	tau					*/
X	"\201v",	/* \(*u	upsilon					*/
X	"\201\177\155",	/* \(*f	phi					*/
X	"\201x",	/* \(*x	chi					*/
X	"\000",		/* \(*q	psi					*/
X	"\000",		/* \(*w	omega					*/
X	"\201\177\142",	/* \(*G	Gamma					*/
X	"\000",		/* \(*D	Delta					*/
X	"\201\177\151",	/* \(*H	Theta					*/
X	"\000",		/* \(*L	Lambda					*/
X	"\000",		/* \(*C	Xi					*/
X	"\000",		/* \(*P	Pi					*/
X	"\201\177\144",	/* \(*S	Sigma					*/
X	"\000",		/*	??????					*/
X	"\201Y",	/* \(*U	Upsilon					*/
X	"\201\177\150",	/* \(*F	Phi					*/
X	"\000",		/* \(*Q	Psi					*/
X	"\201\177\152",	/* \(*W	Omega					*/
X	"\001\177\173",	/* \(sr	square root				*/
X	"\000",		/* \(ts	terminal sigma				*/
X			/* \(rn	root en extender...next line...		*/
X	"\001\033&a-.85R_\033&a+.85R",	/* move up, '_', move down	*/
X	"\001\177\162",	/* \(>=	greater than or equal to		*/
X	"\001\177\163",	/* \(<= less than or equal to			*/
X	"\001\177\160",	/* \(==	identically equal			*/
X	"\001-",	/*	equation minus				*/
X	"\001=\b~",	/* \(~=	approx =				*/
X	"\001\177\167",	/* \(ap	approximates				*/
X	"\001=\b/",	/* \(!=	not equal				*/
X	"\001\032",	/* \(->	right arrow				*/
X			/* \(<- left arrow...next line...		*/
X	"\001\033&p1X\033",		/* 1 char transparent, \033	*/
X	"\001\030",	/* \(ua	up arrow				*/
X	"\001\031",	/* \(da	down arrow				*/
X	"\001=",	/*	equation equal				*/
X	"\001x",	/* \(mu	multiply				*/
X	"\001\177\166",	/* \(di	divide					*/
X	"\001\177\161",	/* \(+-	plus-minus				*/
X	"\001U",	/* \(cu	cup (union)				*/
X	"\001\177\157",	/* \(ca	cap (intersection)			*/
X	"\000",		/* \(sb	subset of				*/
X	"\000",		/* \(sp	superset of				*/
X	"\000",		/* \(ib	improper subset				*/
X	"\000",		/* \(ip	improper superset			*/
X	"\001\177\154",	/* \(if	infinity				*/
X	"\000",		/* \(pd	partial derivative			*/
X	"\000",		/* \(gr	gradient				*/
X	"\001\177\052",	/* \(no	not					*/
X	"\000",		/* \(is	integral sign				*/
X	"\000",		/* \(pt	proportional to				*/
X	"\001\177\155",	/* \(es	empty set				*/
X	"\001\177\156",	/* \(mo	member of				*/
X	"\001+",	/*	equation plus				*/
X	"\001r\bO",	/* \(rg	registered				*/
X	"\001c\bO",	/* \(co	copyright				*/
X	"\001\177\063",	/*	box rule				*/
X	"\001\177\033",	/* \(ct	cent sign				*/
X	"\001|\b=",	/* \(dd	dbl dagger				*/
X	"\002=>",	/* \(rh	right hand				*/
X	"\002<=",	/* \(lh	left hand				*/
X	"\001*",	/* \(**	math * 					*/
X	"\000",		/*	bell system sign			*/
X	"\001|",	/* \(or	or (was star)				*/
X	"\001O",	/* \(ci	circle					*/
X	"\000",		/* \(lt	left top of big curly bracket		*/
X	"\000",		/* \(lb	left bottom of big curly bracket	*/
X	"\000",		/* \(rt	right top of big curly bracket		*/
X	"\000",		/* \(rb	right bot of big curly bracket		*/
X	"\000",		/* \(lc	left center of big curly bracket	*/
X	"\000",		/* \(rc	right center of big curly bracket	*/
X	"\001\177\063",	/* \(bv	bold vertical				*/
X	"\001\177\100",	/* \(lf	left floor (left bot of big sq bract)	*/
X	"\001\177\131",	/* \(rf	right floor (rb of ")			*/
X	"\001\177\132",	/* \(lc	left ceiling (lt of ")			*/
X	"\001\177\077"	/* \(rc	right ceiling (rt of ")			*/
X    }
X#endif
X
X};
X
END_OF_FILE_tablj.c
    size="`wc -c < tablj.c`"
    if test 19902 -ne "$size" ; then
	echo "tablj.c: extraction error - got $size chars"
    fi
fi
if test -f chartest.nroff -a "$1" != "-c" ; then
    echo "chartest.nroff: file exists - will not be overwritten"
else
    echo "x - chartest.nroff (file 3 of 3, 2225 chars)"
    sed -e 's/^X//' << 'END_OF_FILE_chartest.nroff' > chartest.nroff
X.nf
XThis sentence has words in \fBbold\fR and \fIitalic\fR typeface.
XThis is a test of the special characters:
X
X'	'	close quote
X`	`	open quote
X\(em	em	3/4Em dash
X-	-	hyphen
X\(hy	hy	hyphen
X\-	-	current font minus
X\(bu	bu	bullet
X\(sq	sq	square
X\(ru	ru	rule
X\(14	14	1/4
X\(12	12	1/2
X\(fi	fi	fi
X\(fl	fl	fl
X\(ff	ff	ff
X\(Fi	Fi	ffi
X\(Fl	Fl	ffl
X\(de	de	degree
X\(dg	dg	dagger
X\(fm	fm	foot mark
X\(ct	ct	cent sign
X\(rg	rg	registered
X\(34	34	3/4
X
X\(pl	pl	plus
X\(mi	mi	minus
X\(eq	eq	equals
X\(**	**	star
X\(sc	sc	section
X\(aa	aa	acute accent
X\(ga	ga	grave accent
X\(ul	ul	underrule
X\(sl	sl	slash
X
X\(*a	*a	alpha
X\(*b	*b	beta
X\(*g	*g	gamma
X\(*d	*d	delta
X\(*e	*e	epsilon
X\(*z	*z	zeta
X\(*y	*y	eta
X\(*h	*h	theta
X\(*i	*i	iota
X\(*k	*k	kappa
X\(*l	*l	lambda
X\(*m	*m	mu
X\(*n	*n	nu
X\(*c	*c	xi
X\(*o	*o	omicron
X\(*p	*p	pi
X\(*r	*r	rho
X\(*s	*s	sigma
X\(ts	ts	terminal sigma
X\(*t	*t	tau
X\(*u	*u	upsilon
X\(*f	*f	phi
X\(*x	*x	chi
X\(*q	*q	psi
X\(*w	*w	omega
X
X\(*A	*A	Alpha
X\(*B	*B	Beta
X\(*G	*G	Gamma
X\(*D	*D	Delta
X\(*E	*E	Epsilon
X\(*Z	*Z	Zeta
X\(*Y	*Y	Eta
X\(*H	*H	Theta
X\(*I	*I	Iota
X\(*K	*K	Kappa
X\(*L	*L	Lambda
X\(*M	*M	Mu
X\(*N	*N	Nu
X\(*C	*C	Xi
X\(*O	*O	Omicron
X\(*P	*P	Pi
X\(*R	*R	Rho
X\(*S	*S	Sigma
X\(*T	*T	Tau
X\(*U	*U	Upsilon
X\(*F	*F	Phi
X\(*X	*X	Chi
X\(*Q	*Q	Psi
X\(*W	*W	Omega
X
X\(sr	sr	square root
X\(rn	rn	root en extender
X\(>=	>=	>=
X\(<=	<=	<=
X\(==	==	identically equals
X\(=	=	approx equals
X\(ap	ap	approximates
X\(!=	!=	not equal
X\(->	->	right arrow
X\(<-	<-	left arrow
X\(ua	ua	up arrow
X\(da	da	down arrow
X\(mu	mu	multiply
X\(di	di	divide
X\(+-	+-	plus-minus
X\(cu	cu	cup(union)
X\(ca	ca	cap(intersection)
X\(sb	sb	subset of
X\(sp	sp	superset of
X\(ib	ib	improper subset
X\(ip	ip	improper superset
X\(if	if	infinity
X\(pd	pd	partial derivative
X\(gr	gr	gradient
X\(no	no	not
X\(is	is	integral sign
X\(pt	pt	proportional to
X\(es	es	empty set
X\(mo	mo	member of
X\(br	br	box vertical rule
X\(dd	dd	double dagger
X\(rh	rh	right hand
X\(lh	lh	left hand
X\(bs	bs	null set
X\(or	or	or
X\(ci	ci	circle
X\(lt	lt	left top brace
X\(lb	lb	left bottom brace
X\(rt	rt	right top brace
X\(rb	rb	right bottom brace
X\(lk	lk	left center brace
X\(rk	rk	right center brace
X\(bv	bv	bold vertical
X\(lf	lf	left floor bracket
X\(rf	rf	right floor bracket
X\(lc	lc	left ceiling bracket
X\(rc	rc	right ceiling bracket
X.fi
END_OF_FILE_chartest.nroff
    size="`wc -c < chartest.nroff`"
    if test 2225 -ne "$size" ; then
	echo "chartest.nroff: extraction error - got $size chars"
    fi
fi
echo "done - 3 files extracted"
exit 0
--- cut here -----------------------------------------------------------------
-- 
Chip Rosenthal  512-482-8260  |
Unicom Systems Development    |    I saw Elvis in my wtmp file.
<chip at chinacat.Unicom.COM>    |



More information about the Alt.sources mailing list