home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3282 < prev    next >
Internet Message Format  |  1991-05-03  |  28KB

  1. From: chip@chinacat.Unicom.COM (Chip Rosenthal)
  2. Newsgroups: comp.unix.xenix.sco,alt.sources
  3. Subject: Re: nroff driver for LaserJet IIP
  4. Message-ID: <1980@chinacat.Unicom.COM>
  5. Date: 3 May 91 16:34:18 GMT
  6.  
  7. In article <5859@ns-mx.uiowa.edu>
  8.     dhmadsen@icaen.uiowa.edu (Donald H Madsen) writes:
  9. >Does anyone have a nroff driver available for an HP LaserJet IIP
  10. >to be used with Xenix 2.3.3 and Text Processing System 2.3?
  11.  
  12. Below is something I used may years ago.  Unless terminal bit rot set
  13. in, it should be fine.  Hopefully from the Makefile you can figure
  14. out what has to be done to get the various font tables you need.
  15. Sorry there isn't any documentation.
  16.  
  17. Note that the text processing system is only 7-bit capable, and you
  18. need 8-bits to access the special characters.  This driver table emits
  19. for a character `c' with the MSB set, a two byte sequence:  { '\0177',
  20. c&0177 }.  I've got another program called `colpr' which will take
  21. these sequences as generated by nroff and convert them back.  I can
  22. send that out if anybody needs it.
  23.  
  24. --- cut here -----------------------------------------------------------------
  25. #! /bin/sh
  26. # this is a "shar" archive - run through "/bin/sh" to extract 3 files:
  27. #   Makefile tablj.c chartest.nroff
  28. # Wrapped by bin@chinacat on Fri May  3 11:26:08 CDT 1991
  29. # Unpacking this archive requires:  sed test wc (possibly mkdir)
  30. # Existing files will not be clobbered unless "-c" is specified on the cmd line.
  31. if test -f Makefile -a "$1" != "-c" ; then
  32.     echo "Makefile: file exists - will not be overwritten"
  33. else
  34.     echo "x - Makefile (file 1 of 3, 2195 chars)"
  35.     sed -e 's/^X//' << 'END_OF_FILE_Makefile' > Makefile
  36. X
  37. XSHELL = /bin/sh
  38. XCC = cc
  39. XCFLAGS = -O -M0
  40. XMKTERM = /usr/lib/term/mkterm.o
  41. X
  42. X# Available Fonts:
  43. X#
  44. X# name        font        symbol    size     effects
  45. X# ------------    --------------    ------    ------     --------------
  46. X# Fci10b    Courier        IBM-US    10cpi     bold
  47. X# Fci10bi    Courier        IBM-US     10cpi     bold,italic
  48. X# Fci12bi    Courier        IBM-US     12cpi     bold,italic
  49. X# Fli16        Line Printer    IBM-US    16.66cpi none
  50. X# Fpr12bi    Prestige Elite    Roman8    12cpi     bold,italic
  51. X
  52. XALL = Fci10bi Fci12bi Fli16
  53. X
  54. Xall:        $(ALL)
  55. Xinstall:    all        ; inst Install
  56. Xclean:                ; rm -f mk_tablj $(ALL) *.o a.out core
  57. Xclobber:    clean        ; inst -u Install
  58. X
  59. X# Fci10b
  60. X#    availability    LaserJet II Internal
  61. X#    font        Courier
  62. X#    symbol set    IBM-US
  63. X#    pitch        10 chars/inch
  64. X#    size        12 points
  65. X#    effects        bold
  66. XFci10b:        tablj.c
  67. X    $(CC) $(CFLAGS) -o mk_tablj -DNAME=\"$@\" \
  68. X        -DTYPE_COURIER -DSYMB_IBM_US -DPITCH=10 -DSIZE=12 -DBOLD \
  69. X        tablj.c $(MKTERM)
  70. X    ./mk_tablj ; rm mk_tablj
  71. X
  72. X# Fci10bi
  73. X#    availability    Cart S1
  74. X#    font        Courier
  75. X#    symbol set    IBM-US
  76. X#    pitch        10 chars/inch
  77. X#    size        12 points
  78. X#    effects        bold, italic
  79. XFci10bi:    tablj.c
  80. X    $(CC) $(CFLAGS) -o mk_tablj -DNAME=\"$@\" \
  81. X        -DTYPE_COURIER -DSYMB_IBM_US -DPITCH=10 -DSIZE=12 -DBOLD -DITALIC \
  82. X        tablj.c $(MKTERM)
  83. X    ./mk_tablj ; rm mk_tablj
  84. X
  85. X# Fci12bi
  86. X#    availability    Cart S1
  87. X#    font        Courier
  88. X#    symbol set    IBM-US
  89. X#    pitch        12 chars/inch
  90. X#    size        10 points
  91. X#    effects        bold, italic
  92. XFci12bi:    tablj.c
  93. X    $(CC) $(CFLAGS) -o mk_tablj -DNAME=\"$@\" \
  94. X        -DTYPE_COURIER -DSYMB_IBM_US -DPITCH=12 -DSIZE=10 -DBOLD -DITALIC \
  95. X        tablj.c $(MKTERM)
  96. X    ./mk_tablj ; rm mk_tablj
  97. X
  98. X# Fli16
  99. X#    availability    LaserJet II Internal
  100. X#    font        Line Printer
  101. X#    symbol set    IBM-US
  102. X#    pitch        16.66 chars/inch
  103. X#    size        8.5 points
  104. X#    effects        none
  105. XFli16:        tablj.c
  106. X    $(CC) $(CFLAGS) -o mk_tablj -DNAME=\"$@\" \
  107. X        -DTYPE_LINE_PRINTER -DSYMB_IBM_US -DPITCH=16.66 -DSIZE=8.5 \
  108. X        tablj.c $(MKTERM)
  109. X    ./mk_tablj ; rm mk_tablj
  110. X
  111. X# Fpr12bi
  112. X#    availability    several
  113. X#    font        Prestige Elite
  114. X#    symbol set    Roman8 (not fully implemented)
  115. X#    pitch        12 chars/inch
  116. X#    size        10 points
  117. X#    effects        bold, italic
  118. XFpr12bi:    tablj.c
  119. X    $(CC) $(CFLAGS) -o mk_tablj -DNAME=\"$@\" \
  120. X        -DTYPE_PRESTIGE -DSYMB_ROMAN8 -DPITCH=12 -DSIZE=10 -DBOLD -DITALIC \
  121. X        tablj.c $(MKTERM)
  122. X    ./mk_tablj ; rm mk_tablj
  123. X
  124. END_OF_FILE_Makefile
  125.     size="`wc -c < Makefile`"
  126.     if test 2195 -ne "$size" ; then
  127.     echo "Makefile: extraction error - got $size chars"
  128.     fi
  129. fi
  130. if test -f tablj.c -a "$1" != "-c" ; then
  131.     echo "tablj.c: file exists - will not be overwritten"
  132. else
  133.     echo "x - tablj.c (file 2 of 3, 19902 chars)"
  134.     sed -e 's/^X//' << 'END_OF_FILE_tablj.c' > tablj.c
  135. X#include <stdio.h>
  136. X#include "/usr/lib/term/terms.h"
  137. X#define INCH 240
  138. X
  139. X/*****************************************************************************
  140. X * nroff driver generator for HP LaserJet Printer.
  141. X *
  142. X * Thu Dec 22 17:09:54 CST 1988 - C. Rosenthal (chip@vector.UUCP)
  143. X *    Fixed vertical motions so tbl would work.  Cleaned up char set.
  144. X * Wed Dec 14 17:11:30 CST 1988 - C. Rosenthal (chip@vector.UUCP)
  145. X *    Substantial rewrite and cleanup.
  146. X * Thu Mar 17 13:54:53 CST 1988 - C. Rosenthal (chip@vector.UUCP)
  147. X *    Original composition.
  148. X *
  149. X *****************************************************************************
  150. X *
  151. X * This file is used to generate nroff(CT) printer drivers under SCO XENIX
  152. X * for the HP LaserJet printer.  Compiler definitions are used to select
  153. X * the parameters for the generated table.  The following parameters must
  154. X * be specified when compiling this module:
  155. X *
  156. X *    NAME        The name of the table to create, e.g. -DNAME="tablj".
  157. X *    SYMB_select    The symbol set to use, e.g. -DSYMB_ROMAN8.
  158. X *    TYPE_select    The font type to use, e.g. -DTYPE_COURIER
  159. X *    PITCH        The font pitch in chars/inch, e.g. -DPITCH=10
  160. X *    SIZE        The font size in points, e.g. -DSIZE=12
  161. X *
  162. X * The following symbol sets are available:
  163. X *
  164. X *    SYMB_ROMAN8        SYMB_IBM_US
  165. X *
  166. X * The following typefaces are available:
  167. X *
  168. X *    TYPE_LINE_PRINTER    TYPE_PICA        TYPE_ELITE
  169. X *    TYPE_COURIER        TYPE_HELV        TYPE_TMS_RMN
  170. X *    TYPE_GOTHIC        TYPE_SCRIPT        TYPE_PRESTIGE
  171. X *    TYPE_CASLON        TYPE_ORATOR        TYPE_PRESENTATIONS
  172. X *    TYPE_SWISS_721        TYPE_DUTCH_801
  173. X *
  174. X * In addition, the following optional parameters may be specified:
  175. X *
  176. X *    BOLD        Bold characters are available, e.g. -DBOLD.
  177. X *    ITALIC        Italic characters are available, e.g. -DITALIC.
  178. X *
  179. X * For example, the following command sequence will generate a "tablj"
  180. X * driver table which will work with the LaserJet II internal Courier font:
  181. X *
  182. X *    cc -O -M0 -DNAME=\"tablj\" -o mk_tablj \
  183. X *        -DTYPE_COURIER -DSYMB_ROMAN8 -DPITCH=10 -DSIZE=12 -DBOLD \
  184. X *        tablj.c mkterm.o
  185. X *    ./mk_tablj
  186. X *    rm -f ./mk_tablj tablj.o
  187. X *
  188. X ****************************************************************************/
  189. X
  190. X
  191. X/*
  192. X * Printer initialization string.
  193. X *
  194. X *                   .--------------------------------- reset
  195. X *                   |      .-------------------------- map \r to CR, \n to CRLF
  196. X *                   |      |       .------------------ disab line wrap
  197. X *                   |      |       |       .---------- portrait mode
  198. X *                   |      |       |       | .-------- disab performation skip
  199. X *                   |      |       |       | | .------ top margin = 0 lines
  200. X *                   |      |       |       | | | .---- 6 lines per inch
  201. X *                   |      |       |       | | | | .-- 66 lines per page
  202. X *                   |      |       |       | | | | |    */
  203. X#define INITSTR    "\033E\033&k2G\033&s1C\033&l0o0l0e6d66F"
  204. X/*               =====--------========------==--==--===    */
  205. X
  206. X/*
  207. X * Printer reset string.
  208. X */
  209. X#define RESETSTR    "\033E"
  210. X
  211. X/*
  212. X * Determine which symbol set to use.
  213. X */
  214. X#ifdef SYMB_ROMAN8
  215. X#   define SYMBOL "8U"
  216. X#endif
  217. X#ifdef SYMB_IBM_US
  218. X#   define SYMBOL "10U"
  219. X#endif
  220. X
  221. X/*
  222. X * Determine which font type to use.
  223. X */
  224. X#ifdef TYPE_LINE_PRINTER
  225. X#   define TYPEFACE 0
  226. X#endif
  227. X#ifdef TYPE_PICA
  228. X#   define TYPEFACE 1
  229. X#endif
  230. X#ifdef TYPE_ELITE
  231. X#   define TYPEFACE 2
  232. X#endif
  233. X#ifdef TYPE_COURIER
  234. X#   define TYPEFACE 3
  235. X#endif
  236. X#ifdef TYPE_HELV
  237. X#   define TYPEFACE 4
  238. X#endif
  239. X#ifdef TYPE_TMS_RMN
  240. X#   define TYPEFACE 5
  241. X#endif
  242. X#ifdef TYPE_GOTHIC
  243. X#   define TYPEFACE 6
  244. X#endif
  245. X#ifdef TYPE_SCRIPT
  246. X#   define TYPEFACE 7
  247. X#endif
  248. X#ifdef TYPE_PRESTIGE
  249. X#   define TYPEFACE 8
  250. X#endif
  251. X#ifdef TYPE_CASLON
  252. X#   define TYPEFACE 9
  253. X#endif
  254. X#ifdef TYPE_ORATOR
  255. X#   define TYPEFACE 10
  256. X#endif
  257. X#ifdef TYPE_PRESENTATIONS
  258. X#   define TYPEFACE 11
  259. X#endif
  260. X#ifdef TYPE_SWISS_721
  261. X#   define TYPEFACE 14
  262. X#endif
  263. X#ifdef TYPE_DUTCH_801
  264. X#   define TYPEFACE 15
  265. X#endif
  266. X
  267. X/*
  268. X * Constants used to generate roman, italic, and bold fonts.
  269. X */
  270. X#define STYLE_U         0    /* upright style        */
  271. X#define STYLE_I         1    /* italic style            */
  272. X#define STROKE_M     0    /* medium stroke        */
  273. X#define STROKE_B     3    /* bold stroke            */
  274. X
  275. X/*
  276. X * Character spacing select code - only fixed spacing supported.
  277. X */
  278. X#define SPACING 0
  279. X
  280. X/*
  281. X * Lines per inch - 6 lines/inch is hardcoded into INITSTR
  282. X */
  283. X#define LINES_INCH 6
  284. X
  285. X
  286. Xstatic char Setr[128];        /* select roman font        */
  287. Xstatic char Seti[128];        /* select italic font        */
  288. Xstatic char Setb[128];        /* select bold font        */
  289. Xstatic char Init[128];        /* initialize & select roman    */
  290. X
  291. X
  292. Xmkfont(buf,symbol,spacing,pitch,size,style,stroke,typeface)
  293. Xchar *buf;
  294. Xchar *symbol;
  295. Xint spacing;
  296. Xint pitch;
  297. Xint size;
  298. Xint stroke;
  299. Xint typeface;
  300. X{
  301. X    sprintf(buf, "\033&10O\033(%s\033(s%dp%dh%dv%ds%db%dT",
  302. X    symbol, spacing, pitch, size, style, stroke, typeface);
  303. X}
  304. X
  305. X
  306. Xuserterms()
  307. X{
  308. X    extern char *strcpy(), *strcat();
  309. X    extern struct termtable tablj;
  310. X
  311. X    mkfont(Setr, SYMBOL, SPACING, PITCH, SIZE, STYLE_U, STROKE_M, TYPEFACE);
  312. X
  313. X#ifdef BOLD
  314. X    mkfont(Setb, SYMBOL, SPACING, PITCH, SIZE, STYLE_U, STROKE_B, TYPEFACE);
  315. X#else
  316. X    Setb[0] = '\0';
  317. X#endif
  318. X
  319. X#ifdef ITALIC
  320. X    mkfont(Seti, SYMBOL, SPACING, PITCH, SIZE, STYLE_I, STROKE_M, TYPEFACE);
  321. X#else
  322. X    Seti[0] = '\0';
  323. X#endif
  324. X
  325. X    (void) strcat(strcpy(Init,INITSTR),Setr);
  326. X
  327. X    mkterm(NAME, &tablj);
  328. X
  329. X    exit(0);
  330. X}
  331. X
  332. X#define CSIZE    (INCH/PITCH)        /* inches per character    */
  333. X#define LSIZE    (INCH/LINES_INCH)    /* inches per line    */
  334. X
  335. Xstruct termtable tablj = {
  336. X    0,        /* bset        termio.c_oflag bits to set        */
  337. X    0,        /* breset    termio.c_oflag bits to reset        */
  338. X    CSIZE,    /* Hor        horizontal resolution            */
  339. X    LSIZE,    /* Vert        vertical resolution            */
  340. X    LSIZE,    /* Newline    space moved by newline character    */
  341. X    CSIZE,    /* Char        character size                */
  342. X    CSIZE,    /* Em        em size                    */
  343. X    LSIZE/2,    /* Halfline    space moved by half-linefeed up/down    */
  344. X    CSIZE,    /* Adj        quantum of space for margin adj        */
  345. X    Init,    /* twinit    initialize terminal string        */
  346. X    RESETSTR,    /* twrest    reset terminal string            */
  347. X    "\n",    /* twnl        string to move down a full line        */
  348. X    "\033&a-.5R",/* hlr        string to move up a half-line        */
  349. X    "\033&a+.5R",/* hlf        string to move down a half-line        */
  350. X    "\033&a-1R",/* flr        string to move up a full line        */
  351. X    Setb,    /* bdon        string to enable bold output        */
  352. X    Setr,    /* bdoff    string to disable bold output        */
  353. X    Seti,    /* iton        string to enable italics output        */
  354. X    Setr,    /* itoff    string to disable italics output    */
  355. X    "",        /* ploton    string to turn on plotting mode        */
  356. X    "",        /* plotoff    string to turn off plotting mode    */
  357. X    "",        /* up        string to move up one plot unit        */
  358. X    "",        /* down        string to move down one plot unit    */
  359. X    "",        /* right    string to move right one plot unit    */
  360. X    "",        /* left        string to move left one plot unit    */
  361. X
  362. X#ifdef SYMB_ROMAN8
  363. X    {
  364. X    "\001 ",    /*     space                    */
  365. X    "\001!",    /* !                        */
  366. X    "\001\"",    /* "                        */
  367. X    "\001#",    /* #                        */
  368. X    "\001$",    /* $                        */
  369. X    "\001%",    /* %                        */
  370. X    "\001&",    /* &                        */
  371. X    "\001'",    /* '    close                    */
  372. X    "\001(",    /* (                        */
  373. X    "\001)",    /* )                        */
  374. X    "\001*",    /* *                        */
  375. X    "\001+",    /* +                        */
  376. X    "\001,",    /* ,                        */
  377. X    "\001-",    /* -    hyphen                    */
  378. X    "\001.",    /* .                        */
  379. X    "\001/",    /* /                        */
  380. X    "\201\060",    /* 0                        */
  381. X    "\201\061",    /* 1                        */
  382. X    "\201\062",    /* 2                        */
  383. X    "\201\063",    /* 3                        */
  384. X    "\201\064",    /* 4                        */
  385. X    "\201\065",    /* 5                        */
  386. X    "\201\066",    /* 6                        */
  387. X    "\201\067",    /* 7                        */
  388. X    "\201\070",    /* 8                        */
  389. X    "\201\071",    /* 9                        */
  390. X    "\001:",    /* :                        */
  391. X    "\001;",    /* ;                        */
  392. X    "\001<",    /* <                        */
  393. X    "\001=",    /* =                        */
  394. X    "\001>",    /* >                        */
  395. X    "\001?",    /* ?                        */
  396. X    "\001@",    /* @                        */
  397. X    "\201A",    /* A                        */
  398. X    "\201B",    /* B                        */
  399. X    "\201C",    /* C                        */
  400. X    "\201D",    /* D                        */
  401. X    "\201E",    /* E                        */
  402. X    "\201F",    /* F                        */
  403. X    "\201G",    /* G                        */
  404. X    "\201H",    /* H                        */
  405. X    "\201I",    /* I                        */
  406. X    "\201J",    /* J                        */
  407. X    "\201K",    /* K                        */
  408. X    "\201L",    /* L                        */
  409. X    "\201M",    /* M                        */
  410. X    "\201N",    /* N                        */
  411. X    "\201O",    /* O                        */
  412. X    "\201P",    /* P                        */
  413. X    "\201Q",    /* Q                        */
  414. X    "\201R",    /* R                        */
  415. X    "\201S",    /* S                        */
  416. X    "\201T",    /* T                        */
  417. X    "\201U",    /* U                        */
  418. X    "\201V",    /* V                        */
  419. X    "\201W",    /* W                        */
  420. X    "\201X",    /* X                        */
  421. X    "\201Y",    /* Y                        */
  422. X    "\201Z",    /* Z                        */
  423. X    "\001[",    /* [                        */
  424. X    "\001\\",    /* \                        */
  425. X    "\001]",    /* ]                        */
  426. X    "\001^",    /* ^                        */
  427. X    "\001_",    /* _    dash                    */
  428. X    "\001`",    /* `    open                    */
  429. X    "\201a",    /* a                        */
  430. X    "\201b",    /* b                        */
  431. X    "\201c",    /* c                        */
  432. X    "\201d",    /* d                        */
  433. X    "\201e",    /* e                        */
  434. X    "\201f",    /* f                        */
  435. X    "\201g",    /* g                        */
  436. X    "\201h",    /* h                        */
  437. X    "\201i",    /* i                        */
  438. X    "\201j",    /* j                        */
  439. X    "\201k",    /* k                        */
  440. X    "\201l",    /* l                        */
  441. X    "\201m",    /* m                        */
  442. X    "\201n",    /* n                        */
  443. X    "\201o",    /* o                        */
  444. X    "\201p",    /* p                        */
  445. X    "\201q",    /* q                        */
  446. X    "\201r",    /* r                        */
  447. X    "\201s",    /* s                        */
  448. X    "\201t",    /* t                        */
  449. X    "\201u",    /* u                        */
  450. X    "\201v",    /* v                        */
  451. X    "\201w",    /* w                        */
  452. X    "\201x",    /* x                        */
  453. X    "\201y",    /* y                        */
  454. X    "\201z",    /* z                        */
  455. X    "\001{",    /* {                        */
  456. X    "\001|",    /* |                        */
  457. X    "\001}",    /* }                        */
  458. X    "\001~",    /* ~                        */
  459. X    "\000",        /* \|    1/6em narrow space            */
  460. X    "\001-",    /*    hyphen                    */
  461. X    "\001O\b+",    /* \(bu    bullet                     */
  462. X    "\002\[]",    /* \(sq    square                    */
  463. X    "\001-",    /* \(em    3/4 em dash                */
  464. X    "\001_",    /* \(ru    rule                    */
  465. X    "\001\177\167",    /* \(14    1/4                    */
  466. X    "\001\177\170",    /* \(12    1/2                    */
  467. X    "\001\177\165",    /* \(34    3/4                    */
  468. X    "\001-",    /*    minus                    */
  469. X    "\202fi",    /* \(fi    fi                    */
  470. X    "\202fl",    /* \(fl    fl                    */
  471. X    "\202ff",    /* \(ff    ff                    */
  472. X    "\203ffi",    /* \(Fi    ffi                    */
  473. X    "\203ffl",    /* \(Fl    ffl                    */
  474. X    "\001\177\063",    /* \(de    degree                     */
  475. X    "\001|\b-",    /* \(dg    dagger                    */
  476. X    "\001\177\075",    /* \(sc    section                    */
  477. X    "\001'",    /* \(fm    foot mark                */
  478. X    "\001'",    /* \(aa    acute accent                */
  479. X    "\001`",    /* \(ga    grave accent                */
  480. X    "\001_",    /* \(ul    underrule                */
  481. X    "\001/",    /* \(sl    slash (longer)                */
  482. X    "\000",        /* \^    1/12em half narrow space        */
  483. X    "\001 ",    /* \(     unpaddable space            */
  484. X    "\000",        /* \(*a    alpha                    */
  485. X    "\201\177\136",    /* \(*b    beta                    */
  486. X    "\000",        /* \(*g    gamma                    */
  487. X    "\000",        /* \(*d    delta                    */
  488. X    "\000",        /* \(*e    epsilon                    */
  489. X    "\000",        /* \(*z    zeta                    */
  490. X    "\000",        /* \(*y    eta                    */
  491. X        "\201O\b-",    /* \(*h    theta                    */
  492. X    "\201i",    /* \(*i    iota                    */
  493. X    "\201k",    /* \(*k    kappa                    */
  494. X    "\000",        /* \(*l    lambda                    */
  495. X    "\201\177\163",    /* \(*m    mu                    */
  496. X        "\201v",    /* \(*n    nu                    */
  497. X    "\000",        /* \(*c    xi                    */
  498. X    "\201o",    /* \(*o    omicron                    */
  499. X    "\000",        /* \(*p    pi                    */
  500. X        "\201p",    /* \(*r    rho                    */
  501. X    "\000",        /* \(*s    sigma                    */
  502. X    "\000",        /* \(*t    tau                    */
  503. X    "\201v",    /* \(*u    upsilon                    */
  504. X    "\000",        /* \(*f    phi                    */
  505. X    "\201x",    /* \(*x    chi                    */
  506. X    "\000",        /* \(*q    psi                    */
  507. X    "\000",        /* \(*w    omega                    */
  508. X    "\000",        /* \(*G    Gamma                    */
  509. X    "\000",        /* \(*D    Delta                    */
  510. X    "\000",        /* \(*H    Theta                    */
  511. X    "\000",        /* \(*L    Lambda                    */
  512. X    "\000",        /* \(*C    Xi                    */
  513. X    "\000",        /* \(*P    Pi                    */
  514. X    "\000",        /* \(*S    Sigma                    */
  515. X    "\000",        /*    ??????                    */
  516. X    "\201Y",    /* \(*U    Upsilon                    */
  517. X    "\000",        /* \(*F    Phi                    */
  518. X    "\000",        /* \(*Q    Psi                    */
  519. X    "\000",        /* \(*W    Omega                    */
  520. X    "\000",        /* \(sr    square root                */
  521. X    "\000",        /* \(ts    terminal sigma                */
  522. X    "\000",        /* \(rn    root en extender            */
  523. X    "\001>\b_",    /* \(>=    greater than or equal to        */
  524. X    "\001<\b_",    /* \(<= less than or equal to            */
  525. X    "\001=\b-",    /* \(==    identically equal            */
  526. X    "\001-",    /*    equation minus                */
  527. X    "\001=\b~",    /* \(~=    approx =                */
  528. X    "\001\126",    /* \(ap    approximates                */
  529. X    "\001=\b/",    /* \(!=    not equal                */
  530. X    "\000",        /* \(->    right arrow                */
  531. X    "\000",        /* \(<- left arrow                */
  532. X    "\000",        /* \(ua    up arrow                */
  533. X    "\000",        /* \(da    down arrow                */
  534. X    "\001=",    /*    equation equal                */
  535. X    "\001x",    /* \(mu    multiply                */
  536. X    "\001-\b:",    /* \(di    divide                    */
  537. X    "\001\177\176",    /* \(+-    plus-minus                */
  538. X    "\001U",    /* \(cu    cup (union)                */
  539. X    "\000",        /* \(ca    cap (intersection)            */
  540. X    "\000",        /* \(sb    subset of                */
  541. X    "\000",        /* \(sp    superset of                */
  542. X    "\000",        /* \(ib    improper subset                */
  543. X    "\000",        /* \(ip    improper superset            */
  544. X    "\000",        /* \(if    infinity                */
  545. X    "\000",        /* \(pd    partial derivative            */
  546. X    "\000",        /* \(gr    gradient                */
  547. X    "\000",        /* \(no    not                    */
  548. X    "\000",        /* \(is    integral sign                */
  549. X    "\000",        /* \(pt    proportional to                */
  550. X    "\001\177\122",    /* \(es    empty set                */
  551. X    "\000",        /* \(mo    member of                */
  552. X    "\001+",    /*    equation plus                */
  553. X    "\001r\bO",    /* \(rg    registered                */
  554. X    "\001c\bO",    /* \(co    copyright                */
  555. X    "\001\174",    /*    box rule                */
  556. X    "\001\177\077",    /* \(ct    cent sign                */
  557. X    "\001|\b=",    /* \(dd    dbl dagger                */
  558. X    "\002=>",    /* \(rh    right hand                */
  559. X    "\002<=",    /* \(lh    left hand                */
  560. X    "\001*",    /* \(**    math *                     */
  561. X    "\000",        /*    bell system sign            */
  562. X    "\001|",    /* \(or    or (was star)                */
  563. X    "\001O",    /* \(ci    circle                    */
  564. X    "\000",        /* \(lt    left top of big curly bracket        */
  565. X    "\000",        /* \(lb    left bottom of big curly bracket    */
  566. X    "\000",        /* \(rt    right top of big curly bracket        */
  567. X    "\000",        /* \(rb    right bot of big curly bracket        */
  568. X    "\000",        /* \(lc    left center of big curly bracket    */
  569. X    "\000",        /* \(rc    right center of big curly bracket    */
  570. X    "\001\174",    /* \(bv    bold vertical                */
  571. X    "\000",        /* \(lf    left floor (left bot of big sq bract)    */
  572. X    "\000",        /* \(rf    right floor (rb of ")            */
  573. X    "\000",        /* \(lc    left ceiling (lt of ")            */
  574. X    "\000"        /* \(rc    right ceiling (rt of ")            */
  575. X    }
  576. X#endif
  577. X
  578. X#ifdef SYMB_IBM_US
  579. X    {
  580. X    "\001 ",    /*     space                    */
  581. X    "\001!",    /* !                        */
  582. X    "\001\"",    /* "                        */
  583. X    "\001#",    /* #                        */
  584. X    "\001$",    /* $                        */
  585. X    "\001%",    /* %                        */
  586. X    "\001&",    /* &                        */
  587. X    "\001'",    /* '    close                    */
  588. X    "\001(",    /* (                        */
  589. X    "\001)",    /* )                        */
  590. X    "\001*",    /* *                        */
  591. X    "\001+",    /* +                        */
  592. X    "\001,",    /* ,                        */
  593. X    "\001-",    /* -    hyphen                    */
  594. X    "\001.",    /* .                        */
  595. X    "\001/",    /* /                        */
  596. X    "\201\060",    /* 0                        */
  597. X    "\201\061",    /* 1                        */
  598. X    "\201\062",    /* 2                        */
  599. X    "\201\063",    /* 3                        */
  600. X    "\201\064",    /* 4                        */
  601. X    "\201\065",    /* 5                        */
  602. X    "\201\066",    /* 6                        */
  603. X    "\201\067",    /* 7                        */
  604. X    "\201\070",    /* 8                        */
  605. X    "\201\071",    /* 9                        */
  606. X    "\001:",    /* :                        */
  607. X    "\001;",    /* ;                        */
  608. X    "\001<",    /* <                        */
  609. X    "\001=",    /* =                        */
  610. X    "\001>",    /* >                        */
  611. X    "\001?",    /* ?                        */
  612. X    "\001@",    /* @                        */
  613. X    "\201A",    /* A                        */
  614. X    "\201B",    /* B                        */
  615. X    "\201C",    /* C                        */
  616. X    "\201D",    /* D                        */
  617. X    "\201E",    /* E                        */
  618. X    "\201F",    /* F                        */
  619. X    "\201G",    /* G                        */
  620. X    "\201H",    /* H                        */
  621. X    "\201I",    /* I                        */
  622. X    "\201J",    /* J                        */
  623. X    "\201K",    /* K                        */
  624. X    "\201L",    /* L                        */
  625. X    "\201M",    /* M                        */
  626. X    "\201N",    /* N                        */
  627. X    "\201O",    /* O                        */
  628. X    "\201P",    /* P                        */
  629. X    "\201Q",    /* Q                        */
  630. X    "\201R",    /* R                        */
  631. X    "\201S",    /* S                        */
  632. X    "\201T",    /* T                        */
  633. X    "\201U",    /* U                        */
  634. X    "\201V",    /* V                        */
  635. X    "\201W",    /* W                        */
  636. X    "\201X",    /* X                        */
  637. X    "\201Y",    /* Y                        */
  638. X    "\201Z",    /* Z                        */
  639. X    "\001[",    /* [                        */
  640. X    "\001\\",    /* \                        */
  641. X    "\001]",    /* ]                        */
  642. X    "\001^",    /* ^                        */
  643. X    "\001_",    /* _    dash                    */
  644. X    "\001`",    /* `    open                    */
  645. X    "\201a",    /* a                        */
  646. X    "\201b",    /* b                        */
  647. X    "\201c",    /* c                        */
  648. X    "\201d",    /* d                        */
  649. X    "\201e",    /* e                        */
  650. X    "\201f",    /* f                        */
  651. X    "\201g",    /* g                        */
  652. X    "\201h",    /* h                        */
  653. X    "\201i",    /* i                        */
  654. X    "\201j",    /* j                        */
  655. X    "\201k",    /* k                        */
  656. X    "\201l",    /* l                        */
  657. X    "\201m",    /* m                        */
  658. X    "\201n",    /* n                        */
  659. X    "\201o",    /* o                        */
  660. X    "\201p",    /* p                        */
  661. X    "\201q",    /* q                        */
  662. X    "\201r",    /* r                        */
  663. X    "\201s",    /* s                        */
  664. X    "\201t",    /* t                        */
  665. X    "\201u",    /* u                        */
  666. X    "\201v",    /* v                        */
  667. X    "\201w",    /* w                        */
  668. X    "\201x",    /* x                        */
  669. X    "\201y",    /* y                        */
  670. X    "\201z",    /* z                        */
  671. X    "\001{",    /* {                        */
  672. X    "\001|",    /* |                        */
  673. X    "\001}",    /* }                        */
  674. X    "\001~",    /* ~                        */
  675. X    "\000",        /* \|    1/6em narrow space            */
  676. X    "\001-",    /*    hyphen                    */
  677. X    "\001\177\171",    /* \(bu    bullet                     */
  678. X    "\002\[]",    /* \(sq    square                    */
  679. X    "\001-",    /* \(em    3/4 em dash                */
  680. X    "\001_",    /* \(ru    rule                    */
  681. X    "\001\177\054",    /* \(14    1/4                    */
  682. X    "\001\177\053",    /* \(12    1/2                    */
  683. X    "\003\063/4",    /* \(34    3/4                    */
  684. X    "\001-",    /*    minus                    */
  685. X    "\202fi",    /* \(fi    fi                    */
  686. X    "\202fl",    /* \(fl    fl                    */
  687. X    "\202ff",    /* \(ff    ff                    */
  688. X    "\203ffi",    /* \(Fi    ffi                    */
  689. X    "\203ffl",    /* \(Fl    ffl                    */
  690. X    "\001\177\170",    /* \(de    degree                     */
  691. X    "\001|\b-",    /* \(dg    dagger                    */
  692. X    "\001\025",    /* \(sc    section                    */
  693. X    "\001'",    /* \(fm    foot mark                */
  694. X    "\001'",    /* \(aa    acute accent                */
  695. X    "\001`",    /* \(ga    grave accent                */
  696. X    "\001_",    /* \(ul    underrule                */
  697. X    "\001/",    /* \(sl    slash (longer)                */
  698. X    "\000",        /* \^    1/12em half narrow space        */
  699. X    "\001 ",    /* \(     unpaddable space            */
  700. X    "\201\177\140",    /* \(*a    alpha                    */
  701. X    "\201\177\141",    /* \(*b    beta                    */
  702. X    "\000",        /* \(*g    gamma                    */
  703. X    "\201\177\153",    /* \(*d    delta                    */
  704. X    "\201\177\156",    /* \(*e    epsilon                    */
  705. X    "\000",        /* \(*z    zeta                    */
  706. X    "\201\177\174",    /* \(*y    eta                    */
  707. X    "\201O\b-",    /* \(*h    theta                    */
  708. X    "\201i",    /* \(*i    iota                    */
  709. X    "\201k",    /* \(*k    kappa                    */
  710. X    "\000",        /* \(*l    lambda                    */
  711. X    "\201\177\146",    /* \(*m    mu                    */
  712. X    "\201v",    /* \(*n    nu                    */
  713. X    "\000",        /* \(*c    xi                    */
  714. X    "\201o",    /* \(*o    omicron                    */
  715. X    "\201\177\143",    /* \(*p    pi                    */
  716. X    "\201p",    /* \(*r    rho                    */
  717. X    "\201\177\145",    /* \(*s    sigma                    */
  718. X    "\201\177\147",    /* \(*t    tau                    */
  719. X    "\201v",    /* \(*u    upsilon                    */
  720. X    "\201\177\155",    /* \(*f    phi                    */
  721. X    "\201x",    /* \(*x    chi                    */
  722. X    "\000",        /* \(*q    psi                    */
  723. X    "\000",        /* \(*w    omega                    */
  724. X    "\201\177\142",    /* \(*G    Gamma                    */
  725. X    "\000",        /* \(*D    Delta                    */
  726. X    "\201\177\151",    /* \(*H    Theta                    */
  727. X    "\000",        /* \(*L    Lambda                    */
  728. X    "\000",        /* \(*C    Xi                    */
  729. X    "\000",        /* \(*P    Pi                    */
  730. X    "\201\177\144",    /* \(*S    Sigma                    */
  731. X    "\000",        /*    ??????                    */
  732. X    "\201Y",    /* \(*U    Upsilon                    */
  733. X    "\201\177\150",    /* \(*F    Phi                    */
  734. X    "\000",        /* \(*Q    Psi                    */
  735. X    "\201\177\152",    /* \(*W    Omega                    */
  736. X    "\001\177\173",    /* \(sr    square root                */
  737. X    "\000",        /* \(ts    terminal sigma                */
  738. X            /* \(rn    root en extender...next line...        */
  739. X    "\001\033&a-.85R_\033&a+.85R",    /* move up, '_', move down    */
  740. X    "\001\177\162",    /* \(>=    greater than or equal to        */
  741. X    "\001\177\163",    /* \(<= less than or equal to            */
  742. X    "\001\177\160",    /* \(==    identically equal            */
  743. X    "\001-",    /*    equation minus                */
  744. X    "\001=\b~",    /* \(~=    approx =                */
  745. X    "\001\177\167",    /* \(ap    approximates                */
  746. X    "\001=\b/",    /* \(!=    not equal                */
  747. X    "\001\032",    /* \(->    right arrow                */
  748. X            /* \(<- left arrow...next line...        */
  749. X    "\001\033&p1X\033",        /* 1 char transparent, \033    */
  750. X    "\001\030",    /* \(ua    up arrow                */
  751. X    "\001\031",    /* \(da    down arrow                */
  752. X    "\001=",    /*    equation equal                */
  753. X    "\001x",    /* \(mu    multiply                */
  754. X    "\001\177\166",    /* \(di    divide                    */
  755. X    "\001\177\161",    /* \(+-    plus-minus                */
  756. X    "\001U",    /* \(cu    cup (union)                */
  757. X    "\001\177\157",    /* \(ca    cap (intersection)            */
  758. X    "\000",        /* \(sb    subset of                */
  759. X    "\000",        /* \(sp    superset of                */
  760. X    "\000",        /* \(ib    improper subset                */
  761. X    "\000",        /* \(ip    improper superset            */
  762. X    "\001\177\154",    /* \(if    infinity                */
  763. X    "\000",        /* \(pd    partial derivative            */
  764. X    "\000",        /* \(gr    gradient                */
  765. X    "\001\177\052",    /* \(no    not                    */
  766. X    "\000",        /* \(is    integral sign                */
  767. X    "\000",        /* \(pt    proportional to                */
  768. X    "\001\177\155",    /* \(es    empty set                */
  769. X    "\001\177\156",    /* \(mo    member of                */
  770. X    "\001+",    /*    equation plus                */
  771. X    "\001r\bO",    /* \(rg    registered                */
  772. X    "\001c\bO",    /* \(co    copyright                */
  773. X    "\001\177\063",    /*    box rule                */
  774. X    "\001\177\033",    /* \(ct    cent sign                */
  775. X    "\001|\b=",    /* \(dd    dbl dagger                */
  776. X    "\002=>",    /* \(rh    right hand                */
  777. X    "\002<=",    /* \(lh    left hand                */
  778. X    "\001*",    /* \(**    math *                     */
  779. X    "\000",        /*    bell system sign            */
  780. X    "\001|",    /* \(or    or (was star)                */
  781. X    "\001O",    /* \(ci    circle                    */
  782. X    "\000",        /* \(lt    left top of big curly bracket        */
  783. X    "\000",        /* \(lb    left bottom of big curly bracket    */
  784. X    "\000",        /* \(rt    right top of big curly bracket        */
  785. X    "\000",        /* \(rb    right bot of big curly bracket        */
  786. X    "\000",        /* \(lc    left center of big curly bracket    */
  787. X    "\000",        /* \(rc    right center of big curly bracket    */
  788. X    "\001\177\063",    /* \(bv    bold vertical                */
  789. X    "\001\177\100",    /* \(lf    left floor (left bot of big sq bract)    */
  790. X    "\001\177\131",    /* \(rf    right floor (rb of ")            */
  791. X    "\001\177\132",    /* \(lc    left ceiling (lt of ")            */
  792. X    "\001\177\077"    /* \(rc    right ceiling (rt of ")            */
  793. X    }
  794. X#endif
  795. X
  796. X};
  797. X
  798. END_OF_FILE_tablj.c
  799.     size="`wc -c < tablj.c`"
  800.     if test 19902 -ne "$size" ; then
  801.     echo "tablj.c: extraction error - got $size chars"
  802.     fi
  803. fi
  804. if test -f chartest.nroff -a "$1" != "-c" ; then
  805.     echo "chartest.nroff: file exists - will not be overwritten"
  806. else
  807.     echo "x - chartest.nroff (file 3 of 3, 2225 chars)"
  808.     sed -e 's/^X//' << 'END_OF_FILE_chartest.nroff' > chartest.nroff
  809. X.nf
  810. XThis sentence has words in \fBbold\fR and \fIitalic\fR typeface.
  811. XThis is a test of the special characters:
  812. X
  813. X'    '    close quote
  814. X`    `    open quote
  815. X\(em    em    3/4Em dash
  816. X-    -    hyphen
  817. X\(hy    hy    hyphen
  818. X\-    -    current font minus
  819. X\(bu    bu    bullet
  820. X\(sq    sq    square
  821. X\(ru    ru    rule
  822. X\(14    14    1/4
  823. X\(12    12    1/2
  824. X\(fi    fi    fi
  825. X\(fl    fl    fl
  826. X\(ff    ff    ff
  827. X\(Fi    Fi    ffi
  828. X\(Fl    Fl    ffl
  829. X\(de    de    degree
  830. X\(dg    dg    dagger
  831. X\(fm    fm    foot mark
  832. X\(ct    ct    cent sign
  833. X\(rg    rg    registered
  834. X\(34    34    3/4
  835. X
  836. X\(pl    pl    plus
  837. X\(mi    mi    minus
  838. X\(eq    eq    equals
  839. X\(**    **    star
  840. X\(sc    sc    section
  841. X\(aa    aa    acute accent
  842. X\(ga    ga    grave accent
  843. X\(ul    ul    underrule
  844. X\(sl    sl    slash
  845. X
  846. X\(*a    *a    alpha
  847. X\(*b    *b    beta
  848. X\(*g    *g    gamma
  849. X\(*d    *d    delta
  850. X\(*e    *e    epsilon
  851. X\(*z    *z    zeta
  852. X\(*y    *y    eta
  853. X\(*h    *h    theta
  854. X\(*i    *i    iota
  855. X\(*k    *k    kappa
  856. X\(*l    *l    lambda
  857. X\(*m    *m    mu
  858. X\(*n    *n    nu
  859. X\(*c    *c    xi
  860. X\(*o    *o    omicron
  861. X\(*p    *p    pi
  862. X\(*r    *r    rho
  863. X\(*s    *s    sigma
  864. X\(ts    ts    terminal sigma
  865. X\(*t    *t    tau
  866. X\(*u    *u    upsilon
  867. X\(*f    *f    phi
  868. X\(*x    *x    chi
  869. X\(*q    *q    psi
  870. X\(*w    *w    omega
  871. X
  872. X\(*A    *A    Alpha
  873. X\(*B    *B    Beta
  874. X\(*G    *G    Gamma
  875. X\(*D    *D    Delta
  876. X\(*E    *E    Epsilon
  877. X\(*Z    *Z    Zeta
  878. X\(*Y    *Y    Eta
  879. X\(*H    *H    Theta
  880. X\(*I    *I    Iota
  881. X\(*K    *K    Kappa
  882. X\(*L    *L    Lambda
  883. X\(*M    *M    Mu
  884. X\(*N    *N    Nu
  885. X\(*C    *C    Xi
  886. X\(*O    *O    Omicron
  887. X\(*P    *P    Pi
  888. X\(*R    *R    Rho
  889. X\(*S    *S    Sigma
  890. X\(*T    *T    Tau
  891. X\(*U    *U    Upsilon
  892. X\(*F    *F    Phi
  893. X\(*X    *X    Chi
  894. X\(*Q    *Q    Psi
  895. X\(*W    *W    Omega
  896. X
  897. X\(sr    sr    square root
  898. X\(rn    rn    root en extender
  899. X\(>=    >=    >=
  900. X\(<=    <=    <=
  901. X\(==    ==    identically equals
  902. X\(=    =    approx equals
  903. X\(ap    ap    approximates
  904. X\(!=    !=    not equal
  905. X\(->    ->    right arrow
  906. X\(<-    <-    left arrow
  907. X\(ua    ua    up arrow
  908. X\(da    da    down arrow
  909. X\(mu    mu    multiply
  910. X\(di    di    divide
  911. X\(+-    +-    plus-minus
  912. X\(cu    cu    cup(union)
  913. X\(ca    ca    cap(intersection)
  914. X\(sb    sb    subset of
  915. X\(sp    sp    superset of
  916. X\(ib    ib    improper subset
  917. X\(ip    ip    improper superset
  918. X\(if    if    infinity
  919. X\(pd    pd    partial derivative
  920. X\(gr    gr    gradient
  921. X\(no    no    not
  922. X\(is    is    integral sign
  923. X\(pt    pt    proportional to
  924. X\(es    es    empty set
  925. X\(mo    mo    member of
  926. X\(br    br    box vertical rule
  927. X\(dd    dd    double dagger
  928. X\(rh    rh    right hand
  929. X\(lh    lh    left hand
  930. X\(bs    bs    null set
  931. X\(or    or    or
  932. X\(ci    ci    circle
  933. X\(lt    lt    left top brace
  934. X\(lb    lb    left bottom brace
  935. X\(rt    rt    right top brace
  936. X\(rb    rb    right bottom brace
  937. X\(lk    lk    left center brace
  938. X\(rk    rk    right center brace
  939. X\(bv    bv    bold vertical
  940. X\(lf    lf    left floor bracket
  941. X\(rf    rf    right floor bracket
  942. X\(lc    lc    left ceiling bracket
  943. X\(rc    rc    right ceiling bracket
  944. X.fi
  945. END_OF_FILE_chartest.nroff
  946.     size="`wc -c < chartest.nroff`"
  947.     if test 2225 -ne "$size" ; then
  948.     echo "chartest.nroff: extraction error - got $size chars"
  949.     fi
  950. fi
  951. echo "done - 3 files extracted"
  952. exit 0
  953. --- cut here -----------------------------------------------------------------
  954. -- 
  955. Chip Rosenthal  512-482-8260  |
  956. Unicom Systems Development    |    I saw Elvis in my wtmp file.
  957. <chip@chinacat.Unicom.COM>    |
  958.