diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /dviware/quicspool/man |
Initial commit
Diffstat (limited to 'dviware/quicspool/man')
-rw-r--r-- | dviware/quicspool/man/cat.l | 226 | ||||
-rw-r--r-- | dviware/quicspool/man/cati.l | 216 | ||||
-rw-r--r-- | dviware/quicspool/man/dumpdesc.l_backup | 30 | ||||
-rw-r--r-- | dviware/quicspool/man/getopt.l | 145 | ||||
-rw-r--r-- | dviware/quicspool/man/glob.l | 180 | ||||
-rw-r--r-- | dviware/quicspool/man/makefile | 46 | ||||
-rw-r--r-- | dviware/quicspool/man/makefile.trw | 48 | ||||
-rw-r--r-- | dviware/quicspool/man/pktoch.l_backup | 47 | ||||
-rw-r--r-- | dviware/quicspool/man/profile.l | 285 | ||||
-rw-r--r-- | dviware/quicspool/man/profile5.l | 237 | ||||
-rw-r--r-- | dviware/quicspool/man/qmsquery.l | 258 | ||||
-rw-r--r-- | dviware/quicspool/man/quicspool.l_backup | 321 | ||||
-rw-r--r-- | dviware/quicspool/man/shift.l | 37 | ||||
-rw-r--r-- | dviware/quicspool/man/standard.l | 266 | ||||
-rw-r--r-- | dviware/quicspool/man/tfm2difont.l_backup | 79 | ||||
-rw-r--r-- | dviware/quicspool/man/tfm2ofont.l_backup | 48 |
16 files changed, 2469 insertions, 0 deletions
diff --git a/dviware/quicspool/man/cat.l b/dviware/quicspool/man/cat.l new file mode 100644 index 0000000000..cac7d3a814 --- /dev/null +++ b/dviware/quicspool/man/cat.l @@ -0,0 +1,226 @@ +.\" $Header: cat.l,v 1.1 88/01/15 12:58:13 simpson Rel $ +.\" $Log: cat.l,v $ +.\" Revision 1.1 88/01/15 12:58:13 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:56:49 simpson +.\" beta test +.\" +.TH CAT 5 TRW +.UC 4 +.SH NAME +cat \- GSI CAT-4/8 phototypesetter code +.SH DESCRIPTION +The Graphic Systems Industries CAT phototypesetter is driven by sending it a +sequence of one-byte codes +which specify characters, fonts, sizes, and other control information. +.PP +The CAT's basic unit of length is 1/432 of an inch (6 units to a +typesetter's ``point''). +The quantum of horizontal motion is one unit. +The quantum of vertical motion is three units (1/144 of an inch, 1/2 point). +.PP +The top two bits of the code classify it as one of three major +types: +an +.I escape +code (top bit 1), +a +.I flash +code (top bits 00), +or a control code (top bits 01). +A code of all zeros is ignored; a code of all ones is illegal. +.PP +A flash code specifies flashing one of 63 characters, as given by the +remaining six bits. +Since this is not enough to specify all possible characters, or even +all characters in a single font \- there are 108 per font \- +various control codes (described later) select a font and either +the +.I lower +or +.I upper +half of the font. +The lower half is the first 63 characters of the font; +the upper half is the remaining 45. +A flash code of 46 or higher in the upper half is illegal. +.PP +An escape code specifies horizontal motion. +The size of the motion, in horizontal quanta, is the one's-complement +of the low seven bits of the code. +The direction of the motion is set by control codes. +Hitting the right or left margin limit switch is illegal and will +cause the machine to stop. +The machine starts out, after initialization, hard against the left +margin limit switch; an initial escape of 16 units +.I must +be given before starting work, and the position after this motion +should be the limit of all future leftward motions. +From this point, the distance to the right margin limit switch +is about 7.5 inches. +.PP +A code with the top three bits 011 is a +.I lead +code, +specifying vertical motion. +The remaining five bits are the one's-complement of the size of +the motion, in vertical quanta. +The direction of motion is set by control codes. +The amount of vertical motion is, in principle, limited only by +running off the paper in the upward direction and by the limited +capacity of the output cartridge in the downward direction. +.PP +A code with the top four bits 0101 is a size-change code, which +specifies movement of the lens turret and the doubler lens to +change point size. +These codes are as follows: +.PP +.RS +.nf +.ta 2c +Size Code + +6 0101\|1000 +7 0101\|0000 +8 0101\|0001 +9 0101\|0111 +10 0101\|0010 +11 0101\|0011 +12 0101\|0100 +14 0101\|0101 +16 0101\|1001 +18 0101\|0110 +20 0101\|1010 +22 0101\|1011 +24 0101\|1100 +28 0101\|1101 +36 0101\|1110 +.DT +.fi +.RE +.PP +Size changes involving the doubler lens alter the horizontal position. +Changes from single to double sizes should be followed by a forward +escape of 55 quanta; changes from double to single sizes should be +followed by a reverse escape of 55 quanta. +The single sizes are 6, 7, 8, 9, 10, 11, 12, 14, and 18; +the double sizes are 16, 20, 22, 24, 28, and 36. +.PP +The control codes with the top four bits 0100 specify miscellaneous +control codes, not all of which have valid meanings. +They are: +.PP +.RS +.ta 6c +.nf +initialize 0100\|0000 +stop 0100\|1001 +upper rail 0100\|0010 +lower rail 0100\|0001 +upper magazine 0100\|0011 +lower magazine 0100\|0100 +tilt up 0100\|1110 +tilt down 0100\|1111 +upper font half 0100\|0110 +lower font half 0100\|0101 +escape forward 0100\|0111 +escape backward 0100\|1000 +lead forward 0100\|1010 +lead backward 0100\|1100 +.fi +.DT +.RE +.PP +The +.I initialize +code causes leftward motion to the left margin limit +switch, +and sets the following modes: +escape forward, lead forward, lower font half, +lower rail, lower mag, tilt down. +Note that the left margin limit switch does not define a precise +position, and hence reinitializing the machine +will destroy precise left-margin alignment. +.PP +The +.I stop +code stops the machine, which must be manually +restarted (normally after changing output cartridges); +this code should be used only at the end of a run. +.PP +Fonts are selected by the combination of +.IR rail , +.IR magazine , +and +.IR tilt . +The tilt codes do not exist on the 4-font CAT; this is the only user-visible +difference between the 4-font and 8-font machines. +The correspondence between rail/magazine/tilt and font number is as follows: +.PP +.RS +.nf +.ta 2c 5c 7c 9c +rail magazine tilt 4 font 8 font + +lower lower up 1 1 +lower lower down 1 2 +upper lower up 2 3 +upper lower down 2 4 +lower upper up 3 5 +lower upper down 3 6 +upper upper up 4 7 +upper upper down 4 8 +.DT +.fi +.RE +.PP +Several additional commands were introduced locally to ease +the simulation of the CAT on a variety of raster plotters. +Each is several bytes long. +The first byte is the +.I extension +control code 0100\|1011. +The remaining bytes specify the command and its argument +(if any, treated as an unsigned integer). +The commands are: +.PP +.RS +.nf +.ta 6c +big lead 0000\|0001 +big escape 0000\|0010 +formfeed 0000\|0011 +.fi +.DT +.RE +.PP +The +.I "big lead" +code specifies vertical motion whose magnitude is +64 * the following byte. +The +.I "big escape" +code specifies horizontal motion whose magnitude is +128 * the following byte. +The +.I formfeed +code specifies an advance to the next page resetting the current +row and column to <0,0>. +.PP +A complete CAT file should begin with an +.I initialize +code followed +by an +.IR escape -16 +code, +and should end with 14 inches of trailer and a +.I stop +code. +.SH AUTHORS +Henry Spencer, University of Toronto +.br +Michael Gorlick, TRW +.SH BUGS +The documentation and the hardware disagree on the initial tilt setting; +the above describes the hardware. + diff --git a/dviware/quicspool/man/cati.l b/dviware/quicspool/man/cati.l new file mode 100644 index 0000000000..602a55cc4a --- /dev/null +++ b/dviware/quicspool/man/cati.l @@ -0,0 +1,216 @@ +.\" $Header: cati.l,v 1.1 88/01/15 12:58:16 simpson Rel $ +.\" $Log: cati.l,v $ +.\" Revision 1.1 88/01/15 12:58:16 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:56:50 simpson +.\" beta test +.\" +.TH CATI 1 TRW +.UC 4 +.SH NAME +cati \- GSI CAT-4/8 phototypesetter interpreter +.SH SYNOPSIS +.B cati +[ +.B -l +] [ +.B -v +] [ file ... ] +.SH DESCRIPTION +.I Cati +writes a commentary on standard output +interpreting each command as it would act on the phototypesetter. +The options are: +.TP +.B -l +print a one line summary of the leading and nothing else. +.TP +.B -v +turn on verbose mode where each individual lead or escape command is printed. +The default is terse mode where only a one line summary +of an ubroken series of lead or escape commands is printed. +.PP +If +.I file +is omitted +.I cati +reads from standard input. +.PP +The output notation is: +.TP +.RI > " E F B T" +> (<) denotes forward (backward) escape. +.I E +is the accumulated escape of an unbroken series of escape commands. +.IR F " (" B ) +is the total forward (backward) escape to date. +.I T +is the magnitude of all escape (in either direction) to date. +All numerical values are in CAT horizontal units. +.TP +.RI + " L F B T" ++ (-) denotes forward (backward) leading. +.I L +is the accumulated leading of an unbroken series of lead commands. +.IR F " (" B ) +is the total forward (backward) leading to date. +.I T +is the magnitude of all leading (in either direction) to date. +All numerical values are in CAT vertical units. +.TP +Initialize +an +.I initialize +control code. +.TP +.RI "Lower rail (font " N ) +a +.I "lower rail" +control code. +.I N +is the font selected by the mode change. +.TP +.RI "Upper rail (font " N ) +an +.I "upper rail" +control code. +.I N +is the font selected by the mode change. +.TP +.RI "Upper magazine (font " N ) +an +.I "upper magazine" +control code. +.I N +is the font selected by the mode change. +.TP +.RI "Lower magazine (font " N ) +a +.I "lower magazine" +control code. +.I N +is the font selected by the mode change. +.TP +Font half lower +a +.I "lower font half" +control code. +.TP +Font half upper +an +.I "upper font half" +control code. +.TP +.RI "> mode" " F B T" +an +.I "escape mode" +control code. +> (<) denotes forward (backward) escape mode. +.IR "F " ( B ) +is the total amount of forward (backward) escape to date. +.I T +is the magnitude of all escape to date. +All numerical values are in CAT horizontal units. +.TP +STOP +a +.I stop +control code. +.TP +.RI "+ mode" " F B T" +a +.I "lead mode" +control code. ++ (-) denotes forward (backward) lead mode. +.IR "F " ( B ) +is the total amount of forward (backward) leading to date. +.I T +is the magnitude of all leading to date. +All numerical values are in CAT vertical units. +.TP +.RI "Tilt up (font " N ) +a +.I "tilt up" +control code. +.I N +is the font selected by the mode change. +.TP +.RI "Tilt down (font " N ) +a +.I "tilt down" +control code. +.I N +is the font selected by the mode change. +.TP +.RI Size " N" +a +.I "point size change control" +code. +.I N +is the selected point size. +If the size change is a single to double transition the parenthetical +remark `(double)' will follow +.IR N . +If the size change is a double to single transition the parenthetical +remark `(single)' will follow +.IR N . +.TP +Flash \fIF \fR(font \fIN IH \fRsize \fIS \fR<\fIR\fR,\fIC\fR>) +a +.I flash +code. +.I F +is the flashed character. +.I Cati +assumes that regular filmstrips are mounted are mounted on font positions +1-6 and 8 and that the Bell Special Mathematical font is mounted on position +7. +These assumptions are compatible with the default mountings +.IR troff (1) +assumes for the CAT-4. +.I N +is the font position 1-8. +.I I +is the filmstrip index of the character and +.I H +is the current font half +where L or U denote the lower and upper font halfs respectively. +.I S +is the current point size. +.I R +and +.I C +are the current row and column expressed in CAT vertical and +horizontal units respectively. +.TP +Formfeed +a +.I formfeed +control code. +.PP +In verbose mode each escape or leading command in the code stream +is printed. +The output notation is: +.TP +.RI "> " E +> (<) denotes forward (backward) escape. +.I E +is the magnitude of the escape in CAT horizontal units. +.TP +.RI "+ " L ++ (-) denotes forward (backware) leading. +.I L +is the magintude of the leading in CAT vertical units. +.TP +.RI ">> " E +>> (<<) denotes big forward (backward) escape. +.I E +is the magnitude of the escape in CAT horizontal units. +.TP +.RI "++ " L +++ (--) denotes big forward (backward) leading. +.I L +is the magnitude of the leading in CAT vertical units. +.SH SEE ALSO +troff(1), cat(5) diff --git a/dviware/quicspool/man/dumpdesc.l_backup b/dviware/quicspool/man/dumpdesc.l_backup new file mode 100644 index 0000000000..10e517ce46 --- /dev/null +++ b/dviware/quicspool/man/dumpdesc.l_backup @@ -0,0 +1,30 @@ +.\" $Header: dumpdesc.l.backup,v 1.1 88/01/15 12:58:18 simpson Rel $ +.\" $Log: dumpdesc.l.backup,v $ +.\" Revision 1.1 88/01/15 12:58:18 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:56:51 simpson +.\" beta test +.\" +.TH DUMPDESC 1 TRW +.UC +.SH NAME +dumpdesc \- symbolically dump out the contents of a ditroff DESC file +.SH ORIGIN +TRW +.SH SYNOPSIS +dumpDESC +.I DESCfile +.SH DESCRIPTION +.IR Dumpdesc (1) +symbolically dumps out the contents of a DESC.out file created by +.I makedev. +The first argument should be the name of the \fIbinary\fP DESC file (usually +DESC.out). +.SH FILES +.ta \w'--FONTDIR--' +--FONTDIR-- directory containing DESC.out file +.SH AUTHOR +Scott Simpson +.SH SEE ALSO +font(5) diff --git a/dviware/quicspool/man/getopt.l b/dviware/quicspool/man/getopt.l new file mode 100644 index 0000000000..c1a50de8b0 --- /dev/null +++ b/dviware/quicspool/man/getopt.l @@ -0,0 +1,145 @@ +.\" $Header: getopt.l,v 1.1 88/01/15 12:58:20 simpson Rel $ +.\" $Log: getopt.l,v $ +.\" Revision 1.1 88/01/15 12:58:20 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:56:51 simpson +.\" beta test +.\" +.TH GETOPT 3 +.SH NAME +getopt \- get option letter from argument vector +.SH SYNOPSIS +.B int getopt (argc, argv, optstring) +.br +.B int argc; +.br +.B char \(**\(**argv; +.br +.B char \(**optstring; +.PP +.B extern char \(**optarg; +.br +.B extern int optind; +.PP +cc ... -ltrw +.SH DESCRIPTION +.I Getopt\^ +returns the next option letter in +.I argv\^ +that matches +a letter in +.IR optstring . +.I Optstring\^ +is a string of recognized option letters; +if a letter is followed by a colon, the option +is expected to have an argument that may or +may not be separated from it by white space. +.I Optarg\^ +is set to point to the start of the option argument +on return from +.IR getopt . +.PP +.I Getopt\^ +places in +.I optind\^ +the +.I argv\^ +index of the next argument to be processed. +Because +.I optind\^ +is external, it is normally initialized to zero +automatically before the first call to +.IR getopt . +.PP +When all options have been processed +(i.e., up to the first non-option argument), +.I getopt\^ +returns +.SM +.BR EOF . +The special option +.B \-\- +may be used to delimit the end of the options; +.SM +.B EOF +will be returned, and +.B \-\- +will be skipped. +.SH DIAGNOSTICS +.I Getopt\^ +prints an error message on +.I stderr\^ +and returns a +question mark +.RB ( ? ) +when it encounters an option letter not included in +.IR optstring . +.SH WARNING +The above routine uses \fB<stdio.h>\fP, which causes +it to increase the size of programs, +not otherwise using standard I/O, more +than might be expected. +.SH EXAMPLE +The following code fragment shows how one might process the arguments +for a command that can take the mutually exclusive options +.B a +and +.BR b , +and the options +.B f +and +.BR o , +both of which require arguments: +.PP +.RS +.nf +.ss 18 +main (argc, argv) +int argc; +char \(**\(**argv; +{ + int c; + extern int optind; + extern char \(**optarg; + \&\f3.\fP + \&\f3.\fP + \&\f3.\fP + while ((c = getopt (argc, argv, "abf:o:")) != \s-1EOF\s+1) + switch (c) { + case \(fma\(fm: + if (bflg) + errflg++; + else + aflg++; + break; + case \(fmb\(fm: + if (aflg) + errflg++; + else + bproc( ); + break; + case \(fmf\(fm: + ifile = optarg; + break; + case \(fmo\(fm: + ofile = optarg; + bufsiza = 512; + break; + case \(fm?\(fm: + errflg++; + } + if (errflg) { + fprintf (stderr, "usage: . . . "); + exit (2); + } + for ( ; optind < argc; optind++) { + if (access (argv[optind], 4)) { + \&\f3.\fP + \&\f3.\fP + \&\f3.\fP +} +.ss 12 +.fi +.RE +.\" @(#)getopt.3c 5.2 of 5/18/82 diff --git a/dviware/quicspool/man/glob.l b/dviware/quicspool/man/glob.l new file mode 100644 index 0000000000..667ab942cc --- /dev/null +++ b/dviware/quicspool/man/glob.l @@ -0,0 +1,180 @@ +.\" $Header: glob.l,v 1.1 88/01/15 12:58:23 simpson Rel $ +.\" $Log: glob.l,v $ +.\" Revision 1.1 88/01/15 12:58:23 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:56:52 simpson +.\" beta test +.\" +.TH GLOB 3 TRW +.UC +.SH NAME +glob \- shell style pattern matching +.SH SYNOPSIS +.nf +.B #include <local/glob.h> + +.B int glob_compile(pattern, buffer) +.B char *pattern; +.B char *buffer; + +.B int glob_execute(buffer, s) +.B char *buffer; +.B char *s; + +.B int glob_match (pattern, s) +.B char *pattern; +.B char *s; +.fi + +.B cc +[ flags ] files +.B -lglob +[ libraries ] +.fi +.SH DESCRIPTION +.I Glob +is a pattern matching facility similar to that of +.IR sh (1) +and +.IR csh (1). +.PP +A pattern specifies a set of strings of characters. +A member of this set of strings is said to be matched by the pattern. +.TP +(1) +Any character except a special character matches itself. +The special characters are [ * and ?. +.TP +(2) +A ? matches any character. +.TP +(3) +A nonempty string +.I s +bracketed +.RI [ s ] +matches any character in +.IR s . +In +.I s +] may only appear as the first letter. +A substring +.IR a \- b , +with +.I a +and +.I b +in ascending ASCII order, +stands for the inclusive range of ASCII characters. +.TP +(4) +A * matches 0 or more characters. +.PP +.I Glob_compile +compiles a +.I pattern +into an internal form suitable for matching, +placing the result in the character array +.IR buffer . +.I Buffer +must be a character array of size +.BR GLOB_MAX_PATTERN . +.I Glob_compile +returns 0 if the +.I pattern +was compiled successfully; +otherwise a negative error code is returned. +.PP +.I Glob_execute +checks the argument string +.I s +against the compiled +.IR pattern . +.I Glob_execute +returns 1 if the string +.I s +matches the compiled pattern in +.IR buffer , +0 if the string +.I s +failed to match the compiled pattern in +.IR buffer , +and a negative error code if the compiled pattern was invalid. +.PP +The strings passed to both +.I glob_compile +and +.I glob_execute +may have trailing or embedded newline characters; +they are terminated by nulls. +.PP +.I Glob_match +compiles +.I pattern +and matches it against the argument string +.IR s . +It returns 1 if the string +.I s +matches the pattern; +0 if the string +.I s +fails to match the pattern +and a negative error code if the pattern was invalid. +.SH AUTHOR +Michael Gorlick, TRW +.SH SEE ALSO +regex(3) +.SH DIAGNOSTICS +The following diagnostic codes are provided: +.TP +GLOB_OK +returned by +.I glob_compile +indicating the pattern compiled successfully; +.TP +GLOB_PATTERN_TOO_BIG +returned by +.I glob_compile +or +.I glob_match +indicating the compiled pattern overflowed the buffer; +.TP +GLOB_PATTERN_EMPTY +returned by +.I glob_compile +or +.I glob_match +indicating the pattern is the empty string; +.TP +GLOB_BRACKET_MISSING +returned by +.I glob_compile +or +.I glob_match +indicating that a set expression +.RI [ s ] +is missing the terminating bracket ]; +.TP +GLOB_RANGE_INVERTED +returned by +.I glob_compile +or +.I glob_match +indicating a range expression in a set +is inverted, for example [z-a]; +.TP +GLOB_SET_TOO_BIG +returned by +.I glob_compile +or +.I glob_match +indicating a compiled set requires more than 127 bytes +(a single character consumes 2 bytes and a range consumes 3 bytes); +.TP +GLOB_EXECUTION_ERROR +returned by +.I glob_execute +or +.I glob_match +indicating an internal error. diff --git a/dviware/quicspool/man/makefile b/dviware/quicspool/man/makefile new file mode 100644 index 0000000000..1b3cc4acb0 --- /dev/null +++ b/dviware/quicspool/man/makefile @@ -0,0 +1,46 @@ +# $Header: Makefile,v 1.1 88/01/15 12:58:09 simpson Rel $ +# $Log: Makefile,v $ +#Revision 1.1 88/01/15 12:58:09 simpson +#initial release +# +#Revision 0.1 87/12/11 17:56:47 simpson +#beta test +# +WBTEXFONT=/usr/lib/tex/imagenfonts +WWTEXFONT=/usr/lib/tex/qmsfonts +DITROFFFONT=/usr/lib/font/devqms +OTROFFFONT=/usr/lib/font +FILTER=/usr/local/lib/lpr + +all: + +configure: + sed s:--WBTEX--:$(WBTEXFONT): < quicspool.l.backup | \ + sed s:--WWTEX--:$(WWTEXFONT): | sed s:--OFONT--:$(OTROFFFONT): | \ + sed s:--DIFONT--:$(DITROFFFONT): | sed s:--FILTER--:$(FILTER): \ + > quicspool.l + sed s:--FONTDIR--:$(DITROFFFONT): < dumpdesc.l.backup > dumpdesc.l + sed s:--WBTEX--:$(WBTEXFONT): < pktoch.l.backup | \ + sed s:--WWTEX--:$(WWTEXFONT): | sed s:--OFONT--:$(OTROFFFONT): | \ + sed s:--DIFONT--:$(DITROFFFONT): > pktoch.l + sed s:--FONTDIR--:$(OTROFFFONT): < tfm2ofont.l.backup > tfm2ofont.l + sed s:--FONTDIR--:$(DITROFFFONT): < tfm2difont.l.backup > tfm2difont.l + +clean: + -rm dumpdesc.l pktoch.l tfm2ofont.l tfm2difont.l quicspool.l + +install: + install -c cat.l /usr/man/manl + install -c cati.l /usr/man/manl + install -c dumpdesc.l /usr/man/manl + install -c getopt.l /usr/man/manl + install -c glob.l /usr/man/manl + install -c pktoch.l /usr/man/manl + install -c profile.l /usr/man/manl + install -c profile5.l /usr/man/manl + install -c qmsquery.l /usr/man/manl + install -c quicspool.l /usr/man/manl + install -c shift.l /usr/man/manl + install -c standard.l /usr/man/manl + install -c tfm2ofont.l /usr/man/manl + install -c tfm2difont.l /usr/man/manl diff --git a/dviware/quicspool/man/makefile.trw b/dviware/quicspool/man/makefile.trw new file mode 100644 index 0000000000..d73250e7c9 --- /dev/null +++ b/dviware/quicspool/man/makefile.trw @@ -0,0 +1,48 @@ +# $Header: Makefile.TRW,v 1.1 88/01/15 12:58:12 simpson Rel $ +# $Log: Makefile.TRW,v $ +#Revision 1.1 88/01/15 12:58:12 simpson +#initial release +# +#Revision 0.1 87/12/11 17:56:48 simpson +#beta test +# +WBTEXFONT=/usr/lib/tex/imagenfonts +WWTEXFONT=/usr/lib/tex/qmsfonts +DITROFFFONT=/usr/lib/font/devqms +OTROFFFONT=/usr/lib/font +FILTER=/usr/local/lib/lpr + +all: + +configure: + sed s:--WBTEX--:$(WBTEXFONT): < quicspool.l.backup | \ + sed s:--WWTEX--:$(WWTEXFONT): | sed s:--OFONT--:$(OTROFFFONT): | \ + sed s:--DIFONT--:$(DITROFFFONT): | sed s:--FILTER--:$(FILTER): \ + > quicspool.l + sed s:--FONTDIR--:$(DITROFFFONT): < dumpdesc.l.backup > dumpdesc.l + sed s:--WBTEX--:$(WBTEXFONT): < pktoch.l.backup | \ + sed s:--WWTEX--:$(WWTEXFONT): | sed s:--OFONT--:$(OTROFFFONT): | \ + sed s:--DIFONT--:$(DITROFFFONT): > pktoch.l + sed s:--FONTDIR--:$(OTROFFFONT): < tfm2ofont.l.backup > tfm2ofont.l + sed s:--FONTDIR--:$(DITROFFFONT): < tfm2difont.l.backup > tfm2difont.l + +clean: + -rm dumpdesc.l pktoch.l tfm2ofont.l tfm2difont.l quicspool.l + +install: + install -c cat.l /usr/man/manl/cat.5 + install -c cati.l /usr/man/manl/cati.1 + install -c dumpdesc.l /usr/man/manl/dumpdesc.1 + install -c getopt.l /usr/man/manl/getopt.3 + install -c glob.l /usr/man/manl/glob.3 + install -c pktoch.l /usr/man/manl/pktoch.1 + install -c profile.l /usr/man/manl/profile.3 + install -c profile5.l /usr/man/manl/profile.5 + install -c qmsquery.l /usr/man/manl/qmsquery.3 + install -c quicspool.l /usr/man/manl/quicspool.7 + install -c shift.l /usr/man/manl/shift.3 + install -c standard.l /usr/man/manl/standard.5 + install -c tfm2ofont.l /usr/man/manl/tfm2ofont.1 + install -c tfm2difont.l /usr/man/manl/tfm2ofont.1 + install -c lpr.l /usr/man/man1/lpr.1 + install -c pac.l /usr/man/man8/pac.8 diff --git a/dviware/quicspool/man/pktoch.l_backup b/dviware/quicspool/man/pktoch.l_backup new file mode 100644 index 0000000000..b76bec1a18 --- /dev/null +++ b/dviware/quicspool/man/pktoch.l_backup @@ -0,0 +1,47 @@ +.\" $Header: pktoch.l.backup,v 1.1 88/01/15 12:58:29 simpson Rel $ +.\" $Log: pktoch.l.backup,v $ +.\" Revision 1.1 88/01/15 12:58:29 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:56:55 simpson +.\" beta test +.\" +.if t .ds TX T\h'-.1667m'\v'.22m'E\h'-.125m'\v'-.22m'X +.if n .ds TX TeX +.if t .ds LX L\v'-.22m'a\v'.22m'T\h'-.1667m'\v'.22m'E\h'-.125m'\v'-.22m'X +.if n .ds LX LaTeX +.TH PKTOCH 1 TRW +.UC +.SH NAME +pktoch \- print out the contents of a packed format (pk) pixel file +.SH ORIGIN +TRW +.SH SYNOPSIS +pktoch pkfile chfile +.SH DESCRIPTION +.IR Pktoch (1) +prints out the bit map of a packed format (pk) format pixel file on the second +argument. +The output bit map is a readable ascii file containing a dump of the +information in the packed font file. +A dump of each character bit map is given so you can see the bitmap of the +characters. Ones in the bitmaps are represented by *s and zeros are +represented by periods. +Other information, such as the +.I x +and +.I y +offset are also given. +The format of a pk file is beyond the scope of this manual page. +.SH FILES +.nf +.ta \w'--WBTEX-- 'u +--WBTEX-- \*(TX write-black engine font directory +--WWTEX-- \*(TX write-write engine font directory +--DIFONT--/w?fonts raster font directories +.SH AUTHOR +Scott Simpson +.SH SEE ALSO +pxtoch(1), tex(1) +.SH BUGS +The opposite conversion program is not yet written. diff --git a/dviware/quicspool/man/profile.l b/dviware/quicspool/man/profile.l new file mode 100644 index 0000000000..9b02878686 --- /dev/null +++ b/dviware/quicspool/man/profile.l @@ -0,0 +1,285 @@ +.\" $Header: profile.l,v 1.1 88/01/15 12:58:31 simpson Rel $ +.\" $Log: profile.l,v $ +.\" Revision 1.1 88/01/15 12:58:31 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:56:56 simpson +.\" beta test +.\" +.TH PROFILE 3 TRW +.UC 4 +.SH NAME +profile \- read/write configuration files +.SH SYNOPSIS +.nf +.B #include <stdio.h> +.B #include <local/profile.h> + +.B PROFILE_STANZA *profile_read_stanza(f) +.B FILE *f; + +.B PROFILE_STANZA *profile_read_profile(f) +.B FILE *f; + +.B profile_write_stanza(f, s) +.B FILE *f; +.B PROFILE_STANZA *s; + +.B profile_write_profile(f, s) +.B FILE *f; +.B PROFILE_STANZA *s; + +.B profile_free_stanza(s) +.B PROFILE_STANZA *s; + +.B PROFILE_MARKER *profile_has_marker(s, m) +.B PROFILE_STANZA *s; +.B char *m; + +.B PROFILE_STANZA *profile_has_stanza(s, marker) +.B PROFILE_STANZA *s; +.B char *marker[]; + +.B PROFILE_BINDING *profile_has_binding(s, b) +.B PROFILE_STANZA *s; +.B char *b; + +.B PROFILE_STANZA *profile_stanza_space() + +.B PROFILE_MARKER *profile_marker_space(n) +.B int n; + +.B PROFILE_BINDING *profile_binding_space(n) +.B int n; + +.B PROFILE_VALUE *profile_value_space(n) +.B int n; +.fi +.SH DESCRIPTION +.I Profile_read_stanza +reads a single stanza from a configuration file returning +a pointer to the stanza if successful and NULL on error or end of file. +A stanza is defined as: +.nf +.ta 1i +\w'typedef 'u + + typedef struct PROFILE_STANZA { + PROFILE_MARKER *marker; + PROFILE_BINDING *binding; + struct PROFILE_STANZA *previous; + struct PROFILE_STANZA *next; + } PROFILE_STANZA; +.fi +.PP +.I Marker +and +.I binding +point to linked lists of markers and bindings respectively. +If +.I marker +is +.B NULL +the stanza has no markers. +If +.I binding +is +.B NULL +the stanza has no bindings. +.I Previous +and +.I next +are ignored and may be used to doubly link successive stanzas together. +.DT +.PP +A marker is defined as: +.nf +.ta 1i +\w'typedef 'u + + typedef struct PROFILE_MARKER { + char *text; + struct PROFILE_MARKER *previous; + struct PROFILE_MARKER *next; + } PROFILE_MARKER; +.fi +.DT +.PP +.I Text +is a string containing the literal text of the marker +and is always nonempty. +.IR Previous " (" next ) +is a pointer to the previous (next) marker in the sequence. +In the first (last) marker +.IR previous " (" next ) +is +.BR NULL . +.PP +A binding is defined as: +.nf +.ta 1i +\w'typedef 'u + + typedef struct PROFILE_BINDING { + char *name; + PROFILE_VALUE *value; + struct PROFILE_BINDING *previous; + struct PROFILE_BINDING *next; + } PROFILE_BINDING; +.fi +.DT +.PP +.I Name +is the literal text of the name of the binding and is always nonempty. +.I Value +is a pointer to the list of values associated with the name. +If +.I value +is +.B NULL +then the binding consists solely of a name with no associated value. +.IR Previous " (" next ) +points to the previous (next) binding in the sequence. +In the first (last) binding +.IR previous " (" next ) +is +.BR NULL . +.PP +A value is defined as: +.nf +.ta 1i +\w'typedef 'u +\w'union { 'u + + typedef struct PROFILE_VALUE { + char class; + union { + long int i; + double f; + char c; + char *s; + } value; + struct PROFILE_VALUE *previous; + struct PROFILE_VALUE *next; + } PROFILE_VALUE; +.fi +.DT +.PP +.I Class +is always one of: +.TP +PROFILE_CHARACTER +the value is a character constant contained in +.IR c . +.TP +PROFILE_HEX +the value is a hex constant contained in +.IR i . +.TP +PROFILE_INTEGER +the value is an integer constant contained in +.IR i . +.TP +PROFILE_FLOAT +the value is a real constant contained in +.IR f . +.TP +PROFILE_OCTAL +the value is an octal constant contained in +.IR i . +.TP +PROFILE_STRING +the value is a string constant contained in +.IR s . +.TP +PROFILE_OTHER +the value is not recognizably +character, +hex, +integer, +float, +octal +or string. +The literal text is contained in +.IR s . +.PP +.IR Previous " (" next ) +points to the previous (next) value in the sequence. +In the first (last) value +.IR previous " (" next ) +is +.BR NULL . +.PP +.I Profile_read_profile +reads an entire configuration file and builds a bi-directional, +circularly linked list of stanzas using the +.I previous +and +.I next +pointers. +The value returned is a pointer to the first stanza in the list. +.PP +.I Profile_write_stanza +writes a stanza in a canonical form suitable for input by +.IR profile_read_stanza . +Markers are output one to a line. +Each binding is indented by a single tab. +Names and values are separated, one from the other, +by a single blank. +.PP +.I Profile_write_profile +writes all the stanzas in a linked list by applying +.I profile_write_stanza +to each stanza in the list. +The list need not be doubly linked. +.PP +.I Profile_free_stanza +frees all storage associated with a stanza. +.PP +.I Profile_has_marker +searches the marker list of a stanza for a match to the given marker, +.IR m . +A pointer to the marker is returned on success and +.B NULL +on failure. +.PP +.I Profile_has_stanza +searches a linked list of stanzas for a stanza that has all the +markers in +.I marker. +.I Marker +must be terminated by a null entry. +.PP +.I Profile_has_binding +searches the binding list of a stanza +for a binding with a match to the given name. +A pointer to the binding is returned on success and +.B NULL +on failure. +.PP +The following routines are useful for constructing stanzas on the fly. +.I Profile_stanza_space +allocates storage for a stanza. +.I Profile_marker_space +allocates storage for a marker including sufficient space for +.I n +characters of text plus a terminating null byte. +.I Profile_binding_space +allocates storage for a binding including sufficient space for +.I n +characters of name text plus a terminating null byte. +.I Profile_value_space +allocates storage for a value. +If +.I n +is positive and non-zero the component +.IR value . s +is initialized as a +.IR n +1 +character array. +All of the above routines return a pointer on success and +.B NULL +on failure. +All storage is zero filled. +The routine +.IR free (3) +may be safely used to release storage allocated by these routines. +.SH AUTHOR +Michael Gorlick, TRW +.SH SEE ALSO +malloc(3), profile(5) diff --git a/dviware/quicspool/man/profile5.l b/dviware/quicspool/man/profile5.l new file mode 100644 index 0000000000..29657c9cb4 --- /dev/null +++ b/dviware/quicspool/man/profile5.l @@ -0,0 +1,237 @@ +.\" $Header: profile5.l,v 1.1 88/01/15 12:58:34 simpson Rel $ +.\" $Log: profile5.l,v $ +.\" Revision 1.1 88/01/15 12:58:34 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:56:57 simpson +.\" beta test +.\" +.TH PROFILE 5 TRW +.UC 4 +.SH NAME +profile \- configuration file format +.SH SYNOPSIS +.B #include <local/profile.h> +.SH DESCRIPTION +.I Profile +is a general purpose configuration file facility. +.PP +Each profile is an ASCII file containing a sequence of one or more +.IR stanzas . +Each stanza in turn consists of a sequence of +.I markers +followed by a sequence of +.IR bindings . +The characters `{' (left brace) and `}' (right brace) +delimit the beginning and end respectively of the stanza bindings. +Each binding consists of a name +followed by an optional sequence of values. +.SH MARKERS +Markers are arbitrary patterns in the style of +.IR glob (3) +delimited by white space. +The list of markers may be empty. +There is no limit to the number of markers. +Examples of markers are: +.nf + + queue + /usr/lib + 1776 + a_long_marker + file[0-9]*.? +.fi +.SH BINDINGS +Bindings are the association of names with values. +There is one binding to a line each consisting of a name followed +by an optional sequence of values. +Names and values are separated, +one from the other, +by blanks or tabs. +Here a newline preceded by a backslash is equivalent to a blank. +The list of bindings may be empty. +There is no limit to the number of bindings. +By convention each binding is indented by a single tab. +.SH NAMES +Names are arbitrary patterns in the style of +.IR glob (3) +delimited by white space. +.SH VALUES +Values are +integer, +real, +octal, +hex, +character, +or +string +constants. +Arbitrary text, +not recognizably one of the aforementioned types, +is classified as +.I other +and is a legitimate value. +.TP +integer +A sequence of digits optionally preceded by a minus sign. +Every integer constant is taken to be long. +.TP +floating +A floating constant consists of an optional minus sign, +an integer part +a decimal point, +a fraction part, +an +.B e +or +.BR E , +and an optionally signed integer exponent. +The integer and fraction parts both consist of a sequence of digits. +Either the integer part or the fraction part (not both) +may be missing; +either the decimal point or the +.B e +and the exponent (not both) may be missing. +Every floating constant is taken to be double-precision. +.TP +hex +A sequence of hexidecimal digits preceded by +.B 0x +or +.BR 0X . +The hexidecimal digits are 0-9, a-e and A-F. +Every hex constant is taken to be long. +.TP +octal +A sequence of octal digits preceded by +.B 0o +or +.B 0O +(digit zero followed by a letter o). +The octal digits are 0-7. +Every octal constant is taken to be long. +.TP +character +A character constant is a character enclosed in single quotes. +Certain non-graphic characters, +the single quote ', +the caret ^ and +the backslash \\, +may be represented according to the following table of escape sequences: +.ta 1i +\w'carriage return 'u +.nf + + newline \\n + horizontal tab \\t + backspace \\b + carriage return \\r + form feed \\f + escape \\e + backslash \\\\ + single quote \\' + caret \\^ + control-@ ^@ + control-A ^A + ... ... + control-Z ^Z + control-[ ^[ + control-\\ ^\\ + control-^ ^^ + control-_ ^_ + delete ^? + bit pattern \\\fIddd\fR + +.fi +.DT +The escape \\\fIddd\fR +consists of the backslash followed by 1, 2, or 3 octal digits +which are taken to specify the value of the desired character. +If the character following a backslash (caret) is not one of those +specified, the backslash (caret) is ignored. +.TP +string +A string is a sequence of characters surrounded by double quotes, as in +\fB"..."\fR. +In a string, +the double quote character \fB"\fR must be preceded by a \\; +in addition, +the same escapes as described for character constants may be used. +.PP +Examples of values are: +.nf + + 7 + -1.293e3 + 0x10a5 + 0o1273 + 'x' + "a string" + an_other_value +.fi +.SH COMMENTS +Comments may appear anywhere within a profile. +They are introduced by the character `#' and are terminated by +the succeeding newline. +.SH EXAMPLES +The empty stanza. +.nf + +{ +} +.fi +.PP +A stanza in the configuration file of a fictitious network server. +.nf +.ta \w'queue 'u +\w'cost_per_packet 'u +\w'0o125 0x1af 'u + +queue net* +{ + priority 7 # integer + expect "who is it" # string + send '?' # character + flags[0-9] 0o125 0x1af # octal and hex + cost_per_packet 0.28 # floating + device /dev/net # other + homebrew # a name with no associated value +} +.fi +.DT +.PP +A password file entry recast as a stanza. +.nf +.ta \w'brown 'u +\w'password 'u + +brown +{ + password /bObOZtyGclMV + userid 225 + groupid 30 + home /home/brown + shell /bin/csh +} +.fi +.DT +.PP +A termcap entry recast as a stanza. +.nf +.ta \w'adm3a 'u +\w'mm 'u + +adm3a +{ + fullname "lsi adm3a" + am + bs + cm "\\e=%+ %+ " + cl "1^Z" + co 80 + li 24 + ho '^^' + ma "^K^P" + nd '^L' + up '^K' +} +.fi +.SH AUTHOR +Michael Gorlick, TRW +.SH SEE ALSO +glob(3), profile(3) diff --git a/dviware/quicspool/man/qmsquery.l b/dviware/quicspool/man/qmsquery.l new file mode 100644 index 0000000000..e5b833ef72 --- /dev/null +++ b/dviware/quicspool/man/qmsquery.l @@ -0,0 +1,258 @@ +.\" $Header: qmsquery.l,v 1.1 88/01/15 12:58:36 simpson Rel $ +.\" $Log: qmsquery.l,v $ +.\" Revision 1.1 88/01/15 12:58:36 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:56:58 simpson +.\" beta test +.\" +.TH QMSQUERY 3 TRW +.UC +.SH NAME +qmsquery \- routines to query the status of a QMS printer +.SH SYNOPSIS +.nf +#include <local/qms.h> +.sp +qmsopen(writefd, readfd) +int writefd, readfd; +.sp +struct qmsmap *qmsmap(north, south, west, east) +double north, south, west, east; +.sp +struct qmspag *qmspag() +.sp +struct qmsovl *qmsovl() +.sp +struct qmspfp *qmspfp() +.sp +struct qmsopc *qmsopc() +.sp +struct qmsram *qmsram() +.sp +struct qmsfnt *qmsfnt() +.sp +struct qmsver *qmsver() +.sp +qmsclose() +.sp +void qmsmapfree(mapinfo) +struct qmsmap *mapinfo; +.sp +void qmsovlfree(ovlinfo) +struct qmsovl *ovlinfo; +.sp +void qmspfpfree(pfpinfo) +struct qmspfp *pfpinfo; +.sp +void qmsopcfree(opcinfo) +struct qmsopc *opcinfo; +.sp +void qmsfntfree(fntinfo) +struct qmsfnt *fntinfo; +.fi +.SH DESCRIPTION +These routines query the QMS printer for internal information. The QMS +printer must be connected through two sets of serial lines. +The QMS laser printers read data through one serial line (the daughter +board port) +and send status +information through their debugger port on another serial line. +Qmsopen and qmsclose return 1 on success, 0 on error. +The *free routines free the space containing the structures returned +by the rest of the routines. +NULL is used by qmsmap, qmspag, qmsovl, qmspfp, qmsopc, qmsram, qmsfnt and +qmsver to designate an empty list or an error. +All of the +routines except qmsopen, qmsclose and the *free routines +will displace the current position in the QMS printer +so you have to reposition the virtual QMS cursor with the tab and justify +commands after using these routines. +All of the coordinates are given in inches and +the routines will change the +QMS input syntax to inches if it is not already. +Since the routines are written in +.IR lex (1) +and +.IR yacc (1), +the +.I -ll +library must be loaded when using the routines. +A variety of structures stored in the header file +.I qms.h +are used to return information. +.nf +.sp +/* Structure returned when requesting MAP info */ +struct qmsmap { + int count; /* Byte count */ + int checksum; + char *data; /* "count" bytes of data terminated by NULL */ + struct qmsmap *next; +}; + +/* Structure returned when requesting PAG info */ +struct qmspag { + char PO; /* Orientation. 'P' or 'L' */ + float TM; /* Top margin */ + float BM; /* Bottom margin */ + float LM; /* Left margin */ + float RM; /* Right margin */ + float LPI; /* Lines per inch */ + float CPI; /* Characters per inch. 0 == Proportional */ + short PT; /* Paper Tray. 0 == Top tray. 1 == Bottom Tray */ + short PS; /* Page Size. 0 == Short. 1 == Long. 2 == European A-4 */ + char SO; /* Stacker Offset. 'Y' or 'N' */ + short CC; /* Copy Count */ +}; + +/* Structure returned when requesting OVL info */ +struct qmsovl { + enum { regular, automatic } ovltype; + /* The number and size are only valid for regular overlays */ + int ovlnumber; /* Overlay number */ + int ovlsize; /* Overlay size in bytes */ + struct qmsovl *next; +}; + +/* Structure returned when requesting PFP info */ +struct qmspfp { + char *module; /* Name of installed module */ + struct qmspfp *next; +}; + +/* Structure returned when requesting OPC info */ +struct qmsopc { + struct optnode *OC1, *OC2, *OC3, *OC4, *OC5; +}; + +struct optnode { + short option; /* Number of option */ + struct optnode *next; +}; + +/* Structure returned when requesting RAM info */ +struct qmsram { + short TR; /* Total Ram memory in printer */ + short AR; /* Current Available Ram memory */ + short FR; /* Font Ram memory used */ + short OR; /* Overlay Ram memory used */ +}; + +/* Structure returned when requesting FNTB info */ +struct qmsfnt { + struct fontnode *rom; /* List of rom fonts */ + struct fontnode *ram; /* List of ram fonts */ +}; + +struct fontnode { + char orientation; /* 'P' or 'L' */ + short number; /* Font number */ + long bytes; /* Number of bytes in printer */ + char version; + char class; /* '1' or '2' */ + struct fontnode *next; +}; + +/* Structure returned when requesting version information */ +struct qmsver { + float version; /* Version of QUIC */ + float firmware; /* Version of the firmware */ + struct date { /* Date of the firmware */ + short month; + short day; + short year; /* Without the 1900 */ + } date; +}; +.sp +.fi +Please refer to the above structures for the discussion of the following +routines. +.TP +qmsopen(writefd, readfd) +This routine does some internal housekeeping before you can use any of +the other routines. +It should be called exactly once before all the other +routines. +Writefd is an open file descriptor on the line to the QMS printer +(the daughter board port). +Readfd is an open file descriptor on the line to the QMS printer debugger +port. It is used for reading status information from the QMS printer. +These routines do not fiddle with the tty bits. Do this elsewhere. +.TP +qmsmap(north, south, west, east) +This function returns a hex dump of a portion of the QMS page memory. +The coordinates of the dump should be given in inches from the top and left +of the page. The linked list returned is allocated by +.IR malloc (3) +and sorted in the order the data comes from the QMS printer. +That is, the first node of data is the first line of data returned by the +QMS printer. +.TP +qmspag() +This function returns information about page formatting specifications. +The value returned is static and overwritten by each call. +.TP +qmsovl() +This function returns information on currently defined overlays. +The linked list returned is allocated by +.IR malloc (3). +If an automatic overlay is loaded then one and only one of the nodes in +the list will have ovltype automatic. +The variables ovlnumber and ovlsize are not used for an automatic overlay. +The return value ovlinfo is NULL if no overlays are loaded. +.TP +qmspfp() +This function returns a linked list of the currently installed PFP modules. +The linked list is allocated by +.IR malloc (3). +If no PFP modules are installed, pfpinfo is NULL. +.TP +qmsopc() +This function returns information on the currently set option classes. +The return structure contains a set of five linked lists allocated by +.I malloc (3) +but the structure qmsopc is static and its values are overwritten after each +call. +If no options are set for one of the five option classes then the +appropriate list is +NULL. +.TP +qmsram() +This function returns information about ram usage in the printer. +The value returned is static and overwritten after each call. +The ram values are given in blocks. QMS ram memory consists of 16 bit words +in 1024 byte blocks. +.TP +qmsfnt() +This function returns two lists containing the rom and ram fonts loaded. +The qmsfnt structure is static but the two lists are allocated by +.IR malloc (3). +If no rom or ram fonts are loaded the appropriate list is NULL. +.TP +qmsver() +This function returns information about the firmware. +The version information returned is stored in a static area that is +overwritten with each call. +.TP +qmsclose() +This function closes the tty lines used by the above routines. It should +be called when you are done using the routines. +.PP +The *free routines return the space allocated by +.IR malloc (3) +for further use. +Free space routines only exist for the routines above which use +.IR malloc (3) +to allocate space. Static areas are not freed by the free routines. +.SH FILES +.nf +.ta \w'/dev/tty* 'u +/dev/tty* Usually the two serial lines to the printer +.fi +.SH AUTHOR +Scott Simpson, TRW +.SH SEE ALSO +lex(1), yacc(1), malloc(3) +.br +QUIC Programming Manual diff --git a/dviware/quicspool/man/quicspool.l_backup b/dviware/quicspool/man/quicspool.l_backup new file mode 100644 index 0000000000..495f42d4c1 --- /dev/null +++ b/dviware/quicspool/man/quicspool.l_backup @@ -0,0 +1,321 @@ +.\" $Header: quicspool.l.backup,v 1.2 88/02/03 08:55:18 simpson Exp $ +.\" $Log: quicspool.l.backup,v $ +.\" Revision 1.2 88/02/03 08:55:18 simpson +.\" added tpic support +.\" +.\" Revision 1.1 88/01/15 12:58:40 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:56:59 simpson +.\" beta test +.\" +.de BD +.nf +.in +3m +.sp +.. +.de ED +.fi +.in -3m +.sp +.. +.if t .ds TX T\h'-.1667m'\v'.22m'E\h'-.125m'\v'-.22m'X +.if n .ds TX TeX +.if t .ds LX L\v'-.22m'a\v'.22m'T\h'-.1667m'\v'.22m'E\h'-.125m'\v'-.22m'X +.if n .ds LX LaTeX +.TH QUICSPOOL 7 TRW +.UC +.SH NAME +quicspool \- idiosyncracies of the QMS filters for the Berkeley +spooling system +.SH ORIGIN +TRW +.SH DESCRIPTION +.I Quicspool +is a set of filters for driving QMS or Talaris laser printers under the +Berkeley spooling system. +The filters have some features that are not documented in the +manual pages. These features are described here. +.PP +Raw input files should be sent to +.IR lpr (1) +with the +.B -l +option. +The raw option turns off translation of line feeds into +carriage-return/line-feed combinations. +Since the data sent to the printer is scanned by +.IR lex (1), +the ASCII null character should not be sent. +.PP +The \*(TX and device-independent troff (ditroff) +printer filters recognize certain commands that are not part of standard +\*(TX and ditroff. +\*(TX recognizes +the ``\especial'' command when it is +given the keyword +``overlay'' +followed by a file in parentheses. +This file could possibly have +been generated by a graphics package and should be a sequence of QUIC +commands to dump out to the printer at that point in the \*(TX +document. +For example, the \*(TX command +.BD +\especial{overlay(\estring~/quicfile)} +.ED +would cause the filter to look for the file +``quicfile'' +in the user's home directory and output it to the printer at that +point. +The ``\estring'' control sequence is necessary or \*(TX expands ~ into +.BD +\epenalty \e@M \e +.ED +which is not what you want. +Ditroff also recognizes the ``overlay'' keyword but it has a different syntax. +If you insert the command +.BD +\e!x X overlay(~/quicfile) +.ED +in your ditroff document, the contents of +``quicfile'' +are dumped to the printer at that point. +.PP +Tilde escapes are recognized just as in the C shell; that is, names may +be given after the tilde. Spaces are ignored in the string +except within the keyword +``overlay'' +or within the file name where they would serve as delimiters. +Relative pathnames are not recommended since the filters run in the +spooling directory of the printer. +To preserve protections, the filters switch to the uid of the user +after they begin execution. +.PP +The \*(TX driver also provides support for +.IR tpic , +a graphics drawing package for \*(TX that is equivalent to the +.IR pic (1) +program for AT&Ts device-independent troff. +Tpic was written by Tim Morgan at UC Irvine (morgan@ics.uci.edu). +.PP +The \*(TX user can use his or her own fonts, possibly created by +METAFONT, by giving a full pathname to \*(TX's font definition command or +putting the appropriate fonts in the path of the +TEXFONTS environment variable. Normally, \*(TX uses this path to +search for \*(TX Font Metric (tfm) files for font width information. +This path is also searched by the \*(TX filter for packed font raster files +(pk format). +A font file can be converted from the generic font format created by +METAFONT to the pk format with the program +.IR gftopk (1). +Since the filter process is not an ancestor of the user's login +shell, its execution environment +is that of root. Consequently, the filter searches the ``.profile'' file +(if you are using the Bourne or Korn shell) or the ``.cshrc'' and ``.login'' +files (if you are using the C shell) for the TEXFONTS environment +variable. +The filter looks for a line of the form +.BD +TEXFONTS=... +.ED +or +.BD +setenv TEXFONTS ... +.ED +in the appropriate file and uses the string represented by the +ellipses as the path for TEXFONTS. +The filter recognizes continuation lines in the file but the path +should not be surrounded by quotes since it does not do shell +interpretation. Tilde escapes and the prefix $HOME are recognized in +a shell pathname. There should be a single space before and after +the word ``TEXFONTS'' when you are using the C shell. +If the user is from a remote host, then obviously the environment +variable scheme will not work so no files are searched. Also, fonts +that are not loaded from the system font directory are deleted at the +completion of every job. This way, users will not accidently use someone +else's previously loaded font. +.PP +There are two queues for each printer\-one for portrait mode and one for +landscape mode. The landscape queue normally has the same name as the portrait +queue but the landscape queue's name is suffixed with an `l'. +Suppose you have a portrait queue called +``grumpy'' +and a corresponding landscape queue +``grumpyl''. +If you queue a file to the grumpy queue and a file is already printing in the +grumpyl queue, then when you do an +.IR lpq (1) +you will get a message +.BD +waiting for grumpy to become ready (offline ?) +.ED +stating that the grumpy job cannot begin until the grumpyl job is completed. +You can list the grumpyl queue using the +.B -P +flag of lpq. +.SH \*(TX FONTS +It is important when using \*(TX to make sure that the size of the PK font +you are requesting exists. +If the size does not exist, then the closest size is selected. This +can cause some strange output when a document is printed if you +use a font that doesn't exist. +Fonts normally have a name that looks something like +.BD +font\fId\fP.\fIm\fPpk +.ED +where ``font\fId\fP'' is the name of the font you give to \*(TX, +.I d +is the design size of the font (i.e., the size the font looks best +at) and +.I m +is the magnification. +Normally fonts are designed with a particular size in mind. +For example, although cmr10.200pk and cmr5.400pk are both ten points +high on a 200 dots per inch device, the cmr5 font is a magnified five +point font that looks crummy at twice its regular size. +The version designed for ten points has its characters thinned out +and looks better at the size it was intended for. +Some fonts look good at any magnification and these fonts normally +have the +.I d +missing from the file name. +.PP +The equation 5\fIm\fP/1.5, where +.I m +is as above, +gives the appropriate scale factor if you wish to declare a particular font +to \*(TX. +For example, if the +largest cmr10 font is cmr10.746pk (i.e., \emagstep5), then you +can declare +this font in \*(TX by +.BD +\efont\ebigfont=cmr10 scaled 2487 +.ED +If you wish to declare a font using \*(TX's ``at \fIsize\fP'', +you would use the equation \fIdm\fP/300. +For example, you could also declare the cmr10 font by +.BD +\efont\ebigfont=cmr10 at 24.866pt +.ED +.SH GENERIC QUEUEING +Lpr queues to a specific printer. +If you wish to queue to any idle printer, you can use the +.I glpr +script. +When your site has multiple printers, this script will look for an idle QMS +printer if there is one, and queue to it. +If it cannot find an idle printer, it will attempt to queue to a printer that +is not stopped or disabled. +If you wish to queue in landscape mode, +give the +.B -L +option to the script. +There is also a +.I glpq +script that prints out the jobs in each queue. +.SH TROFF SCRIPTS +There are two versions of troff on the market: C/A/T troff for the GSI CAT-4 +phototypesetter +and AT&T's ditroff, +which supports a variety +of devices. +The quicspool software supports the QMS printer for both versions of troff. +The naming convention for your +troff varies depending on whether you have purchased +ditroff or not. +If you have a stock BSD system and you have not purchased +ditroff, then the C/A/T troff will be named ``troff\|''. If you have purchased +ditroff, then the C/A/T troff will be named ``otroff\|'' +and ditroff will be named ``troff\|''. +The C/A/T troff corresponds to the +.B -t +option of lpr and ditroff corresponds to the +.B -n +option. +Unfortunately, you can not simply pipe output from either troff directly +into lpr and get correct output. +Instead, use the script +.I qtroff +if you wish to use the C/A/T troff and +.I ditroff +if you wish to use the device-independent troff. +You needn't pipe the output from these scripts into lpr. +The scripts queue the output automatically. +.PP +Since both troff and lpr have some conflicting options, the scripts need +to resolve who to pass the flags to on the command line. +The flags are passed as follows: +.sp +.in +1i +.ta +1i +to otroff \fIo\fP,\fIn\fP,\fIm\fP,\fIR\fP,\fIi\fP,\fIq\fP,\fIf\fP,\fIb\fP,\fIa\fP,\fIp\fP,\fIF\fP +.br +to ditroff \fIo\fP,\fIn\fP,\fIm\fP,\fIR\fP,\fIi\fP,\fIq\fP,\fIz\fP,\fIa\fP,\fIT\fP +.br +to lpr \fIP\fP,\fI#\fP,\fIC\fP,\fIJ\fP,\fI1\fP,\fI2\fP,\fI3\fP,\fI4\fP,\fIw\fP,\fIl\fP,\fIt\fP,\fId\fP,\fIg\fP,\fIv\fP,\fIc\fP,\fIr\fP,\fIM\fP,\fIh\fP,\fIs\fP,\fIL\fP +.in -1i +.sp +Notice that +.B -m +option of lpr +and the +.B -r +option of troff +are not available. +If you wish to pass these two options on to lpr or troff, +you can use the capital +letters +.B -M +and +.BR -R , +respectively. +Since these scripts call +.I glpr +you can give the option +.B -L +to get landscape mode output. +.PP +If you are running +.IR eqn (1) +or +.IR pic (1) +and you are running ditroff, you will need to give the +.B -Tqms +flag to eqn and/or pic. +.IR Tbl (1) +does not need such a flag. +If your system administrator has not installed the appropriate changes to +your ditroff version of eqn and pic, try using the +.B -TX9700 +flag instead. +If you have ditroff and you wish to pipe the output from eqn to +.I qtroff +instead of +.IR ditroff , +you will need to give the +.B -Tcat +option to eqn to generate output for the C/A/T phototypesetter. +.PP +The bell system logo (\e(bs) has been replaced by the TRW logo (\(bs) +in both versions of troff. +.SH FILES +.nf +.ta \w'--WBTEX-- 'u +--WBTEX-- \*(TX write-black engine font directory +--WWTEX-- \*(TX write-white engine font directory +--OFONT-- old troff font directory +--DIFONT-- device independent troff font directory +--FILTER-- filter directory +.fi +.SH AUTHOR +Scott Simpson +.SH SEE ALSO +csh(1), eqn(1), gftopk(1), +ksh(1), lex(1), lpq(1), lpr(1), lprm(1), mf(1), pic(1), sh(1), tbl(1), +tex(1), troff(1), lpc(8) +.SH BUGS +Shading of ellipses in +.I tpic +does not work. diff --git a/dviware/quicspool/man/shift.l b/dviware/quicspool/man/shift.l new file mode 100644 index 0000000000..0de48b7805 --- /dev/null +++ b/dviware/quicspool/man/shift.l @@ -0,0 +1,37 @@ +.\" $Header: shift.l,v 1.1 88/01/15 12:58:43 simpson Rel $ +.\" $Log: shift.l,v $ +.\" Revision 1.1 88/01/15 12:58:43 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:57:00 simpson +.\" beta test +.\" +.TH SHIFT 3 TRW +.UC +.SH NAME +string_downshift, string_upshift \- shift case of strings +.SH SYNOPSIS +.nf +.B char *string_downshift(s) +.B char *s; + +.B char *string_upshift(s) +.B char *s; + +.B cc ... -ltrw +.fi +.SH DESCRIPTION +.I String_downshift +shifts +.I s +in place to lowercase. +.I String_upshift +shifts +.I s +in place to uppercase. +Both routines return +.I s. +.SH AUTHOR +Michael Gorlick, TRW +.SH SEE ALSO +ctype(3), string(3) diff --git a/dviware/quicspool/man/standard.l b/dviware/quicspool/man/standard.l new file mode 100644 index 0000000000..5146c71c44 --- /dev/null +++ b/dviware/quicspool/man/standard.l @@ -0,0 +1,266 @@ +.\" $Header: standard.l,v 1.1 88/01/15 12:58:46 simpson Rel $ +.\" $Log: standard.l,v $ +.\" Revision 1.1 88/01/15 12:58:46 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:57:01 simpson +.\" beta test +.\" +.TH STANDARD 5 TRW +.UC +.SH NAME +standard \- standard include file for portability +.SH ORIGIN +TRW +.SH SYNOPSIS +#include <local/standard.h> +.SH DESCRIPTION +.I Standard +is a set of defines, macro definitions and typedefs that provide +portable constructs +and machine specific information +for different machine architectures and C compilers. +Basically, the include file is divided up into four sections: +machine +environment +information, +standard type definitions, +useful constants and useful macros. +.PP +The environment of the computer a program is executing on is described by +the following defines: +.TP +HAS_UNSIGNED_SHORT +If defined, unsigned shorts are supported. +.TP +CHAR_IS_SIGNED +If defined, chars are signed. +.TP +HAS_UNSIGNED_CHAR +If defined, unsigned chars are supported. +.TP +HAS_UNSIGNED_LONG +If defined, unsigned longs are supported. +.TP +HAS_VOID +If defined, the void function type is supported. +.TP +BITS_PER_CHAR +Defined as the number of bits in a char. +.TP +BITS_PER_SHORT +Defined as the number of bits in a short. +.TP +BITS_PER_INT +Defined as the number of bits in an int. +.TP +BITS_PER_LONG +Defined as the number of bits in a long. +.TP +BITS_PER_POINTER +Defined as the number of bits in a pointer. +.PP +There are a set of machine independent type definitions and macros. +.TP +Tiny +A signed character type. +.TP +TINY(\fIx\fP) +An extraction macro for a signed character. The value of the macro is an +integer that will be sign extended if the most significant bit of the +character is one. +.TP +UnsignedTiny +An unsigned character type. +.TP +UNSIGNED_TINY(\fIx\fP) +An extraction macro for an unsigned character. The value of the macro is an +integer that will not be signed extended even if the most significant bit +of the character is one. +.TP +Short +Simply a short type. All compilers have a short type but this is included +for lexical consistency. +.TP +UnsignedShort +An unsigned short type. +.TP +UNSIGNED_SHORT(\fIx\fP) +An extraction macro for an unsigned short. +The value of the macro is an integer that will not be sign extended even if +the most significant bit of the short is one. +.TP +Integer +The int type. Included for lexical consistency. +.TP +UnsignedInteger +The unsigned integer type. +.TP +Long +The long type. +.TP +UnsignedLong +An unsigned long type. +.TP +UNSIGNED_LONG(\fIx\fP) +An extraction macro for an unsigned long integer. +Not all compilers support unsigned longs so we may have to simulate them. +.TP +TinyBoolean +A tiny boolean value. Boolean types take on only the values TRUE and FALSE. +.TP +Boolean +A regular boolean value. +.TP +Character +The char type. Included for lexical consistency. +.TP +TinyBits +A type used only for bit set, clear and test operations. +.TP +Bits +The regular size bit type. +.TP +LongBits +The long size bit type. +.TP +Void +The void type. If the void type is not supported then it is defined as +an int. +.TP +Import +The storage class used when importing variables from separate files. +It is defined to be the keyword +.I extern. +.TP +Export +The storage class used when exporting variables from separate files. +In C, you needn't +declare that a variable is available to other files if it is declared +outside a function so this is defined as a no-op. +.TP +Local +The static storage class. +.PP +A number of useful constants are also defined. +.TP +TRUE and FALSE +The values 1 and 0 respectively. +.TP +SUCCEED and FAIL +The values 0 and 1 respectively. These are normally used as exit statuses. +.TP +ON +A long with all the bits set. +.TP +OFF +A long with no bits set. +.TP +STANDARD_IN +Defined as 0. +.TP +STANDARD_OUT +Defined as 1. +.TP +STANDARD_ERROR +Defined as 2. +.TP +MAX_TINY +The maximum value a Tiny type can hold. +.TP +MIN_TINY +The minimum value a Tiny type can hold. +.TP +MAX_UNSIGNED_TINY +The maximum value an UnsignedTiny type can hold. +.TP +MIN_UNSIGNED_TINY +The minimum value an UnsignedTiny type can hold. +.TP +MAX_SHORT +The maximum value a Short type can hold. +.TP +MIN_SHORT +The minimum value a Short type can hold. +.TP +MAX_UNSIGNED_SHORT +The maximum value an UnsignedShort type can hold. +.TP +MIN_UNSIGNED_SHORT +The minimum value an UnsignedShort type can hold. +.TP +MAX_INTEGER +The maximum value an Integer type can hold. +.TP +MIN_INTEGER +The minimum value an Integer type can hold. +.TP +MAX_UNSIGNED_INTEGER +The maximum value an UnsignedInteger type can hold. +.TP +MIN_UNSIGNED_INTEGER +The minimum value an UnsignedInteger type can hold. +.TP +MAX_LONG +The maximum value a Long type can hold. +.TP +MIN_LONG +The minimum value a Long type can hold. +.TP +MAX_UNSIGNED_LONG +The maximum value an UnsignedLong type can hold. +.TP +MIN_UNSIGNED_LONG +The minimum value an UnsignedLong type can hold. +.TP +BITS_PER_BYTE +The number of bits in a byte. +.PP +A number of useful macro are also defined. +.TP +MAX(\fIx\fP, \fIy\fP) +Returns the maximum value of +.I x +and +.I y. +.TP +MIN(\fIx\fP, \fIy\fP) +Returns the minimum value of +.I x +and +.I y. +.TP +ABS(\fIx\fP) +Returns the absolute value of its parameter. This works for integers and +reals. +.TP +ROUND(\fIx\fP) +Returns +its parameter rounded to the nearest integer value. +.TP +CEILING(\fIx\fP) +Returns the ceiling of its parameter. +.TP +FLOOR(\fIx\fP) +Returns the floor of its parameter. +.TP +EQ(\fIs\fP, \fIt\fP) +Returns true if the two strings passed to it as parameters are equal. +.TP +EQN(\fIs\fP, \fIt\fP, \fIn\fP) +Returns true if the two strings passed to it as parameters are equal in +the first +.I n +characters (as in +.IR strcmp ). +.SH FILES +.nf +.ta \w'/usr/include/local/standenviron.h 'u +/usr/include/local/standard.h +/usr/include/local/standenviron.h +/usr/include/local/standtype.h +/usr/include/local/standconst.h +/usr/include/local/standmacro.h +.fi +.SH AUTHOR +Michael Gorlick diff --git a/dviware/quicspool/man/tfm2difont.l_backup b/dviware/quicspool/man/tfm2difont.l_backup new file mode 100644 index 0000000000..b4b9a15df3 --- /dev/null +++ b/dviware/quicspool/man/tfm2difont.l_backup @@ -0,0 +1,79 @@ +.\" $Header: tfm2difont.l.backup,v 1.1 88/01/15 12:58:48 simpson Rel $ +.\" $Log: tfm2difont.l.backup,v $ +.\" Revision 1.1 88/01/15 12:58:48 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:57:02 simpson +.\" beta test +.\" +.if t .ds TX T\h'-.1667m'\v'.22m'E\h'-.125m'\v'-.22m'X +.if n .ds TX TeX +.TH TFM2DIFONT 1 TRW +.UC +.SH NAME +tfm2difont \- convert tfm files to ditroff compatible width tables +.SH ORIGIN +TRW +.SH SYNOPSIS +tfm2difont +.B [ -s ] +.B [ -w +.I width +.B ] +.B [ -l +.I ligature +.B ] +\&... +file... +.SH DESCRIPTION +.IR Tfm2difont (1) +converts tfm files to ditroff compatible width tables which can subsequently +be run through +.I makedev +and used with ditroff. +A file is created with the same name as the tfm file with the `.tfm' extension +removed. +The `name' and `internalname' are set to the same name as the font. +.PP +The +.B -s +flag causes the font(s) to be considered special. +The +.B -w +flag allows you to set +.I spacewidth. +Normally, a non-special font is assumed to have the ligatures +.BR ff , +.BR fi , +.BR fl , +.B ffi +and +.BR ffl . +The +.B -l +flag causes a named ligature to be removed. +Any number of +.B -l +flags may be given. +Ligatures are ignored if the font is special since special fonts don't have +ligatures. +Because the `a' character is used for kerning information in non-special +fonts, it must exist in a non-special font. +.PP +The created width table contains the size of the characters at 10 points +.RI ( unitwidth +in the DESC file). +.IR Troff (1) +scales the width of characters depending on the size currently in use. +So, if a 5 point font is being used, the width is halved. +Because of this, you cannot create a separate font with reshaped characters +for five points with +METAFONT. +\*(TX allows you to do this though. +.SH FILES +.ta \w'--FONTDIR-- ' +--FONTDIR-- device-independent troff font directory +.SH AUTHOR +Scott Simpson +.SH SEE ALSO +mf(1), tex(1), font(5) diff --git a/dviware/quicspool/man/tfm2ofont.l_backup b/dviware/quicspool/man/tfm2ofont.l_backup new file mode 100644 index 0000000000..37b930f742 --- /dev/null +++ b/dviware/quicspool/man/tfm2ofont.l_backup @@ -0,0 +1,48 @@ +.\" $Header: tfm2ofont.l.backup,v 1.1 88/01/15 12:58:52 simpson Rel $ +.\" $Log: tfm2ofont.l.backup,v $ +.\" Revision 1.1 88/01/15 12:58:52 simpson +.\" initial release +.\" +.\" Revision 0.1 87/12/11 17:57:03 simpson +.\" beta test +.\" +.if t .ds TX T\h'-.1667m'\v'.22m'E\h'-.125m'\v'-.22m'X +.if n .ds TX TeX +.TH TFM2OFONT 1 TRW +.UC +.SH NAME +tfm2ofont \- convert tfm files to old troff compatible width tables +.SH ORIGIN +TRW +.SH SYNOPSIS +tfm2ofont +.B [ -s ] +file... +.SH DESCRIPTION +.IR Tfm2ofont (1) +converts tfm files to old +troff compatible width tables (C program files) which can subsequently +be compiled +and used with troff. +A file is created with the same name as the tfm file with the `.tfm' extension +removed, `ft' prepended and `.c' appended. +.PP +The +.B -s +flag causes the font(s) to be considered special. +.PP +.IR Otroff (1) +scales the width of characters depending on the size currently in use. +So, if a 5 point font is being used, the width is halved. +Because of this, you cannot create a separate font with reshaped characters +for five points with +METAFONT. +\*(TX allows you to do this though. +.SH FILES +.ta \w'--FONTDIR-- ' +--FONTDIR-- old troff font directory +.SH AUTHOR +Scott Simpson +.SH SEE ALSO +mf(1), tex(1), troff(1) + |