home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mega Top 1
/
os2_top1.zip
/
os2_top1
/
APPS
/
TEKST
/
DVID15G1
/
EMTEX
/
BOOK
/
ENGLISH
/
MAKEDOT.INF
(
.txt
)
< prev
Wrap
OS/2 Help File
|
1994-09-01
|
32KB
|
1,036 lines
ΓòÉΓòÉΓòÉ 1. 1 Introduction ΓòÉΓòÉΓòÉ
The makedot program is used to generate parameter files for dvidot. It has
two functions:
o conversion of a text file into a parameter file (DOT file)
o conversion of a parameter file (DOT file) into a text file
To modify parameter files they must first be converted into a text file which
can then be changed with an editor. The modified text file can then be
converted back into a parameter file again.
makedot can also be used for creating binary files as required for the
+init-files option of dvihplj and dvidot.
ΓòÉΓòÉΓòÉ 2. 2 Usage ΓòÉΓòÉΓòÉ
Converting a text file into a parameter file
Converting a parameter file into a text file
Converting between different DOT file formats
Converting a text file into a binary file
Converting a binary file into a text file
ΓòÉΓòÉΓòÉ 2.1. 2.1 Converting a text file into a parameter file ΓòÉΓòÉΓòÉ
The command
makedot -c [options] input_file [output_file]
converts the text file input_file into the DOT file output_file. The default
extension for the output file is DOT. If no output file name is given, the
name of the input file (with the extension DOT) is used. If you specify `-'
for the input file, the text file is read from standard input.
ΓòÉΓòÉΓòÉ 2.2. 2.2 Converting a parameter file into a text file ΓòÉΓòÉΓòÉ
The command
makedot -d [options] input_file [output_file]
converts the DOT file input_file into the text file output_file. The default
extension for the input file is DOT. If no output file name is given then the
input file name (without the extension DOT) is used. If you specify `-' for
the output file, the text file is written to standard output.
ΓòÉΓòÉΓòÉ 2.3. 2.3 Converting between different DOT file formats ΓòÉΓòÉΓòÉ
dvidot 1.4n and later cannot use old DOT files. These files must be converted
by makedot. The command
makedot -r [options] input_file [output_file]
converts the DOT file input_file into the DOT file output_file. If no output
file is specified, the input file will be overwritten by the converted file.
If `-o' is given, an output file compatible with older versions of makedot
will be created -- unless it cannot be converted due to usage of new features.
To convert a DOT file to the old format, use
makedot -ro <input file> [<output file>]
If `-q' is given, makedot doesn't display its logo line.
ΓòÉΓòÉΓòÉ 2.4. 2.4 Converting a text file into a binary file ΓòÉΓòÉΓòÉ
The command
makedot -b [options] input_file output_file
converts the text file input_file into the binary file output_file. If you
specify `-' for the input file, the text file is read from standard input.
ΓòÉΓòÉΓòÉ 2.5. 2.5 Converting a binary file into a text file ΓòÉΓòÉΓòÉ
The command
makedot -a [options] input_file output_file
converts the binary file input_file into the text file output_file. If you
specify `-' for the output file, the text file is written to standard output.
If `-q' is given, makedot doesn't display its logo line.
ΓòÉΓòÉΓòÉ 3. 3 Text file format for generating a parameter file ΓòÉΓòÉΓòÉ
A text file can contain comment lines which begin with `*' or `%', all the
characters after that character are ignored. Blank lines are also ignored.
All other lines contain a keyword followed by an equals sign. Parameters for
this keyword follow the equals sign. (There are keywords which don't require
parameters.)
ΓòÉΓòÉΓòÉ 3.1. 3.1 Keywords ΓòÉΓòÉΓòÉ
All keywords given below (but those shown in square brackets) must be used,
the order doesn't matter. Optional parts of a line are enclosed in square
brackets, alternatives are enclosed in parentheses and separated by a vertical
bar. The different kinds of argument are abbreviated as follows:
d dimension: number and TeX unit (px may be used as well)
e expression
n number
s code sequence
t text
These argument types are explained below. Depending on the setting of TYPE=,
different keywords can be used.
ΓòÉΓòÉΓòÉ 3.1.1. 3.1.1 Keywords for all parameter file types ΓòÉΓòÉΓòÉ
The following keywords can be used for both types of parameter files.
[COMMENT=[t]]
Comment: it is saved in the parameter file but ignored.
ENV_NAME=t
Name of an environment variable, from which dvidot should take options.
FONT_PATH=t
Path for font files. This is the default setting for the +font-files
option.
LOG_NAME=t
Name of the transcript file.
PAGE_HEIGHT=d
Page height. Default setting for +height.
PAGE_WIDTH=d
Page width. Default setting for +width.
RESOLUTION=n1 n2
Resolution. n1 is the default for +resolution-x, n2 is the default for
+resolution-y.
[TYPE=[(DOT | DOT_HORZ | BITMAP)]]
Type of the parameter file. With TYPE=DOT and TYPE=DOT_HORZ, a parameter
file for driving a dot-matrix printer will be created, with TYPE=BITMAP a
parameter file for creating graphics files will be created. If TYPE=
without an argument is used or if TYPE= is omitted, TYPE=DOT will be
assumed.
[VF_PATH=t]
Path for VF files. This is the default setting for the +virtual-fonts
option and should be left empty.
ΓòÉΓòÉΓòÉ 3.1.2. 3.1.2 Keywords for TYPE=DOT ΓòÉΓòÉΓòÉ
TYPE=DOT is used for printers where the pins are arranged vertically and each
byte of graphics data defines a column of dots. Most dot impact printers are
of this type. The following keywords can be used only in parameter files
containing TYPE=DOT.
BLANK_WIDTH=[n]
Width of a space character. Space characters are used at the left margin
to move the print head to the right. For this reason, the width of a
space character is required in graphics mode dots. If spaces should not
be used for this movement, then the argument must be left empty.
COLUMNS=n
Maximum number of horizontal dots in graphics mode. This value is an
upper bound for +width.
DOUBLE_SIDED_LONG=[s]
The code sequence for initializing the printer for +double-sided:long.
DOUBLE_SIDED_SHORT=[s]
The code sequence for initializing the printer for +double-sided:short.
EXIT=[s]
This sets the code sequence which is sent to the printer at the end of the
job.
FF_METHOD=(FF | LF)
Page throw method: either a FORM_FEED sequence or multiple line feeds (see
FORM_LENGTH).
FORM_FEED=[s]
The code sequence required for a page throw. It is necessary for
FF_METHOD=FF. The amount of feed (vertical motion units, or dots for
VMU=1) is available in the `form_feed' variable.
FORM_LENGTH=[d]
Form length. Default setting for +form-length. Needed only for
FF_METHOD=LF. If not given, dvidot will use the value set for the page
height as the form length.
GRAPH_END=[s]
This is the code sequence which is sent to the printer immediately after
the graphics data -- normally empty.
GRAPH_MODE=[s]
This sets the code sequence which selects the desired graphics mode. The
number of dots per line is available in the `pixels' variable.
INIT1=[s]
The printer initialization sequence which is output when the +slow:off
option (which is the default) is selected.
INIT2=[s]
The printer initialization sequence which is output when the +slow:on
option is selected.
LINE_FEED=[s]
The code sequence which causes a line feed. Also used with FF_METHOD=LF.
The amount of feed (vertical motion units, or dots for VMU=1) is available
in the `line_feed' variable. LINE_FEED won't be used (except for throwing
the page if FF_METHOD=LF is set) if a POS_Y sequence is given.
MAX_LF=n
This is the largest line feed which can be performed by a code sequence
expressed in graphics mode dots -- see LINE_FEED. Greater line feeds are
performed by using multiple smaller line feeds.
MAX_WIDTH=[n1 [n2]]
If the page width, converted to graphics mode dots, is set to one of these
values, it is reduced by 1 (dot), so that the printer does not execute an
automatic line feed when it reaches the right-hand margin. This will
leave a blank dot at the right margin.
METHOD=n1 n2
Printing method. The number n1 is the number of bytes that must be sent
to the printer to print a column of dots in the selected graphics mode (1
to 8). n2 is the number of passes per line (separated by the smallest
line spacing). If, for instance, the pin spacing is 1/72 inch and the
printer can move the paper in 1/216 inch steps reasonably reliably, then
n2 can be set to 3. In this way this example can attain a vertical
resolution of 216 DPI. Values from 1 to 6 can be used.
ONE_LINE_FEED=[n]
This value is used by INIT1 and INIT2 to program the printer's line
spacing. If LINE_FEED (see below) is used to reprogram the line spacing,
then the argument to ONE_LINE_FEED must be empty. The printer must
perform a line feed of n dots when it receives a LF character.
PINS=n1 n2
The bit numbers of the print head pins: n1 is the bit number corresponding
to the top pin and n2 is the bit number corresponding to the bottom pin
(most printers are set to PINS=0 7 or PINS=7 0). Values from 0 to 7 can
be entered.
POS_X=[s]
The code sequence which positions the print head horizontally. The
horizontal position required in graphics mode dots is available in the
`pos_x' variable.
POS_Y=[s]}
The code sequence which positions the print head to an absolute vertical
position. The vertical position required in graphics mode dots is
available in the `pos_y' variable. If a POS_Y sequence is given,
LINE_FEED is not used (except for throwing the page if FF_METHOD=LF is
set).
S_OPTION=(OFF | SLOW | DOUBLE_STRIKE)
This sets the meaning of the +slow option. When set to OFF there is no
+slow option. If set to SLOW, +slow:on selects INIT2 rather than INIT1.
If set to DOUBLE_STRIKE, the +slow:on option selects INIT2 instead of
INIT1 as well as making two passes over each output line. In the first
pass dots 1, 3, 5, ... are printed and in the second pass dots 2, 4, 6,
... This is intended for printers (like the FX-80) which cannot print two
consecutive dots with the same needle.
[VMU=n]
Vertical motion unit. This is the number of graphics dots per line feed
unit. For instance, if the printer can print at 360 DPI vertically, but
only can feed the paper in 1/180" units, set VMU=2. If VMU is not set or
set to 0, VMU=1 is assumed. VMU=1 means that vertical motion is expressed
in graphics dots.
ΓòÉΓòÉΓòÉ 3.1.3. 3.1.3 Keywords for TYPE=DOT_HORZ ΓòÉΓòÉΓòÉ
TYPE=DOT_HORZ is used for printers where each byte of graphics data defines 8
successive horizontally arranged dots. Some ink jet printers are of this
type. The following keywords can be used only in parameter files containing
TYPE=DOT_HORZ.
BITS=n1 n2
Bit ordering within a byte of graphics data. Bit n1 is at the left hand
side, bit n2 is at the right hand side. Only `BITS=7 0' or `BITS=0 7' can
be used.
COLUMNS=n
Maximum number of horizontal dots in graphics mode. This value is an
upper bound for +width.
DOUBLE_SIDED_LONG=[s]
The code sequence for initializing the printer for +double-sided:long.
DOUBLE_SIDED_SHORT=[s]
The code sequence for initializing the printer for +double-sided:short.
EXIT=[s]
This sets the code sequence which is sent to the printer at the end of the
job.
FF_METHOD=(FF | LF)
Page throw method: either a FORM_FEED sequence or multiple line feeds (see
FORM_LENGTH).
FIRST_BYTE=(TOP | BOTTOM) (LEFT | RIGHT)
This declaration defines which corner of the image relates to the first
byte of the first row to be printed. TOP prints the top row first, BOTTOM
prints the bottom row first. LEFT prints the left column of each row
first, RIGHT prints the right column of each row first. The following
settings are used most often:
FIRST_BYTE=TOP LEFT
FORM_FEED=[s]
The code sequence required for a page throw. It is necessary for
FF_METHOD=FF. The amount of feed (vertical motion units, or dots for
VMU=1) is available in the `form_feed' variable.
FORM_LENGTH=[d]
Form length. Default setting for +form-length. Needed only for
FF_METHOD=LF. If not given, dvidot will use the value set for the page
height as the form length.
INIT1=[s]
The printer initialization sequence which is output when the +slow:off
option (which is the default) is selected.
INIT2=[s]
The printer initialization sequence which is output when the +slow:on
option is selected.
LINE_FEED=[s]
The code sequence which causes a line feed. Also used with FF_METHOD=LF.
The amount of feed (vertical motion units, or dots for VMU=1) is available
in the `line_feed' variable. LINE_FEED won't be used (except for throwing
the page if FF_METHOD=LF is set) if a POS_Y sequence is given.
MAX_LF=n
This is the largest line feed which can be performed by a code sequence
expressed in graphics mode dots -- see LINE_FEED. Greater line feeds are
performed by using multiple smaller line feeds.
MAX_WIDTH=[n1 [n2]]
If the page width, converted to graphics mode dots, is set to one of these
values, it is reduced by 1 (dot), so that the printer does not execute an
automatic line feed when it reaches the right-hand margin. This will
leave a blank dot at the right margin.
ONE_LINE_FEED=[n]
This value is used by INIT1 and INIT2 to program the printer's line
spacing. If LINE_FEED (see below) is used to reprogram the line spacing,
then the argument to ONE_LINE_FEED must be empty. The printer must
perform a line feed of n dots when it receives a LF character.
POS_X=[s]
The code sequence which positions the print head horizontally. The
horizontal position required in graphics mode dots is available in the
`pos_x' variable.
[POS_Y=[s]]
The code sequence which positions the print head to an absolute vertical
position. The vertical position required in graphics mode dots is
available in the `pos_y' variable. If a POS_Y sequence is given,
LINE_FEED is not used (except for throwing the page if FF_METHOD=LF is
set).
ROW_BEGIN=[s]
This code sequence is written at the beginning of each row of data.
Graphics data will follow immediately. The width of the row (pixels) is
available in the `pixels' variable.
ROW_END=[s]
This code sequence is written immediately after each row of data. The
horizontal position may or may not be changed by ROW_END. It is assumed
that ROW_END moves the cursor to the next row.
S_OPTION=(OFF | SLOW)
This sets the meaning of the +slow option. When set to OFF there is no
+slow option. If set to SLOW, +slow:on selects INIT2 rather than INIT1.
[VMU=n]
Vertical motion unit. This is the number of graphics dots per line feed
unit. For instance, if the printer can print at 360 DPI vertically, but
only can feed the paper in 1/180" units, set VMU=2. If VMU is not set or
set to 0, VMU=1 is assumed. VMU=1 means that vertical motion is expressed
in graphics dots.
ΓòÉΓòÉΓòÉ 3.1.4. 3.1.4 Keywords for TYPE=BITMAP ΓòÉΓòÉΓòÉ
The following keywords can be used only in parameter files containing
TYPE=BITMAP.
ALIGN_WIDTH=n
The width of the bitmap will be rounded to an integral multiple of n
bytes. n can take the values 1, 2 and 4.
BITS=n1 n2
Bit ordering within a byte of graphics data. Bit n1 is at the left hand
side, bit n2 is at the right hand side. Only `BITS=7 0' or `BITS=0 7' can
be used.
CHECKSUM=n1 n2 t n4 e
Method for computing the value of the `checksum' variable for insertion in
the HEADER code sequence. First, `checksum' is set to n4. Then, a loop
will be performed over the HEADER sequence starting at byte position n1,
performing n2 iterations: depending on t, 1, 2 or 4 bytes will be fetched
from the header and assigned to the `value' variable; the expression e
will be evaluated and the result will be assigned to the `checksum'
variable; the position within the header is advanced by 1, 2 or 4,
depending on t. The value of the `checksum' variable after n2 iterations
will be the value inserted for `checksum' into the header code sequence.
For this computation, 0 will be inserted for the `checksum' and
`file_size' variables in the header code sequence. If you need to include
these variables in the computation of the checksum, you can try to do so
when inserting the checksum into the header.
You can use the following keywords for t:
BYTE 8 bits
WORD_LH 16 bits, least significant byte first
WORD_HL 16 bits, most significant byte first
LONG_LH 32 bits, least significant byte first
LONG_HL 32 bits, most significant byte first
Example:
CHECKSUM=0 16 WORD_LH 0 (checksum^value)
The checksum is computed as 16-bit XOR over the first 32 bytes.
If no checksum is required, you can use
CHECKSUM=0 0 BYTE 0 0
COMPRESS=(NO | MSP | PCX)
Type of compression for the graphics data. COMPRESS=NO doesn't compress
at all, the graphics data will be copied unmodified into the output file.
COMPRESS=MSP uses a compression method as used in MSP files, COMPRESS=PCX
uses a RLE type compression method as used in PCX files.
FIRST_BYTE=(TOP | BOTTOM) (LEFT | RIGHT)
This declaration defines which corner of the image relates to the first
byte of the graphics data. TOP puts the top row first, BOTTOM puts the
bottom row first. LEFT puts the left column of each row first, RIGHT puts
the right column of each row first. The following settings are used most
often:
FIRST_BYTE=TOP LEFT
HEADER=[s]
The header of the graphics file. This code sequence will be put at the
start of the graphics file. You can use the variables res_x, res_y,
width, height, checksum and file_size.
ROW_BEGIN=[s]
This code sequence is written at the beginning of each row of data.
Graphics data will follow immediately. The width of the row (pixels) is
available in the `pixels' variable. Usually empty.
ROW_END=[s]
This code sequence is written immediately after each row of data. Usually
empty.
TRAILER=[s]
This code sequence is written at the end of the graphics file. You can
use the variables res_x, res_y, width, height and checksum.
ΓòÉΓòÉΓòÉ 3.2. 3.2 Code sequences ΓòÉΓòÉΓòÉ
These sequences usually consist of several commands which are separated by
spaces. Each command can be constructed from the following tokens:
ASCII control codes and other names
These commands insert one byte:
NUL Code 00(hex) 0(dec).
SOH Code 01(hex) 1(dec).
STX Code 02(hex) 2(dec).
ETX Code 03(hex) 3(dec).
EOT Code 04(hex) 4(dec).
ENQ Code 05(hex) 5(dec).
ACK Code 06(hex) 6(dec).
BEL Code 07(hex) 7(dec).
BS Code 08(hex) 8(dec).
TAB Code 09(hex) 9(dec).
HT Code 09(hex) 9(dec).
LF Code 0A(hex) 10(dec).
VT Code 0B(hex) 11(dec).
FF Code 0C(hex) 12(dec).
CR Code 0D(hex) 13(dec).
SO Code 0E(hex) 14(dec).
SI Code 0F(hex) 15(dec).
DLE Code 10(hex) 16(dec).
DC1 Code 11(hex) 17(dec).
DC2 Code 12(hex) 18(dec).
DC3 Code 13(hex) 19(dec).
DC4 Code 14(hex) 20(dec).
NAK Code 15(hex) 21(dec).
SYN Code 16(hex) 22(dec).
ETB Code 17(hex) 23(dec).
CAN Code 18(hex) 24(dec).
EM Code 19(hex) 25(dec).
SUB Code 1A(hex) 26(dec).
ESC Code 1B(hex) 27(dec).
FS Code 1C(hex) 28(dec).
GS Code 1D(hex) 29(dec).
RS Code 1E(hex) 30(dec).
US Code 1F(hex) 31(dec).
DEL Code 7F(hex) 127(dec).
ASCII printing characters
These commands insert one or more bytes:
'x A single character: the character following the single quote ' is
sent as is.
"xxx" A string of characters: the characters following the double quote
" up to, but not including, the next " in the same line are sent
to the printer.
Numbers standing for a character's ASCII code
These commands insert one byte:
0### Octal number: # is a digit from 0 to 7.
0x## Hexadecimal number: # is a character from the set (0-9, A-F).
### Decimal number: # is a digit from 0 to 9. Note: a leading zero
will cause the number to be interpreted as octal (see 0###).
Control characters
This command insert one byte:
^A Control characters: ^a to ^a or ^A to ^Z stand for codes 1 to 26,
^@ stands for 0.
Repeating
This command performs a fixed number of repetitions of the immediately
following command:
REP# Repeat the following command # times (1 to 256). If there are
multiple successive REP commands, only the last one will be
obeyed.
Inserting a parameter
These commands evaluate an expression and insert the result as byte,
16-bit word or 32-bit word:
DEC# expression
Insert the value as decimal number (in characters) with leading zeros,
filled to # (1 to 9) places.
BYTE expression
Insert the lower 8 bits of the value as byte.
WORD_LH expression
Insert the lower 16 bits of the value using two bytes. The least
significant byte is inserted first.
WORD_HL expression
Insert the lower 16 bits of the value using two bytes. The most
significant byte is inserted first.
LONG_LH expression
Insert the value using four bytes. The least significant byte is
inserted first.
LONG_HL expression
Insert the value using four bytes. The most significant byte is
inserted first.
The value of an expression is computed using 32-bit arithmetic. An
expression can be built as shown here (the parentheses are required!):
decimal number
decimal number (0 to 2147483647)
hexadecimal number
hexadecimal number (0x0 to 0xffffffff)
variable
see below
( expression )
redundant parentheses
- expression
change sign
~ expression
bitwise NOT
( expression + expression )
addition
( expression - expression )
subtraction
( expression * expression )
multiplication
( expression / expression )
quotient
( expression % expression )
remainder
( expression & expression )
bitwise AND
( expression | expression )
bitwise OR
( expression ^ expression )
bitwise XOR
( expression << expression )
shift left (1 << 3 yields 8)
( expression >> expression )
shift right (10 >> 1 yields 5)
( expression < expression )
comparison: if less than, 0 otherwise
( expression = expression )
comparison: 1 if equal, 0 otherwise
Parentheses can only be omitted for successive operators of the same type,
the operators will be evaluated from left to right. Parentheses cannot be
omitted for `<<', `>>', `<' and `='. For instance,
(((1+2)+3)+4)
can be abbreviated to
(1+2+3+4)
On the other hand, no parentheses can be omitted in ((3*2)+1).
A <variable> is one of the following:
res_x
horizontal resolution (DPI, +resolution-x)
res_y
vertical resolution (DPI, +resolution-y)
width
sheet width (pixels, +width)
height
sheet height (pixels, +height)
one_lf
the value set with ONE_LINE_FEED=
blank
the value set with BLANK_WIDTH=
max_lf
the value set with MAX_LF=
pixels
the width of the current row of the bitmap
line_feed
the amount of line feed
form_feed
the amount of form feed
pos_x
horizontal position for POS_X=
checksum
checksum
value
used for computing the checksum
file_size
file length (only usable with HEADER=)
vmu
the value set with VMU=. If VMU= is not set or set to 0, the vmu
variable contains 1
Continuation line
If the last character of the line is a `\' preceded by a blank, the next
line (which must not be a comment line) will be a continuation line.
Using continuation lines, long code sequences can be entered more
conveniently. Each expression must be entered completely on in line.
ΓòÉΓòÉΓòÉ 3.3. 3.3 Examples of code sequences ΓòÉΓòÉΓòÉ
240 DPI graphics mode for the EPSON FX-80:
ESC '* 3 WORD_LH pixels
In hexadecimal this is: 1B 2A 03 n1 n2, where <n1>+256*<n2> is the width of
the graphics in dots.
Line feed for NEC P6:
FS '3 BYTE line_feed LF
In hexadecimal this is: 1C 33 n1 0A. The paper will be moved by <n1>/360
inch.
Horizontal positioning for a C.ITOH 8510A:
ESC 'F DEC4 pos_x
In hexadecimal this is: 1B 46 n1 n2 n3 n4, where n1 to n4 are numbers (30 to
39, hexadecimal) which give the horizontal position.
A 24 pin graphics mode, specify number of bytes + 1 (width * 3 + 1):
ESC "[g" WORD_LH ((pixels*3)+1) 5
In hexadecimal this is (the parameter is assumed to be 100):
1B 5B 67 2D 01 05
^^^^^
301 = 3*100+1
Nonsense example:
^A "abc" TAB ' 010 10 0x10 " ' " REP2 "ab" 0
This is: 01 61 62 63 09 20 08 0A 10 20 27 20 61 62 61 62 00.
Example for continuation lines:
INIT1=CAN DC2 ESC '5 0 ESC 'F ESC 'H ESC 'I 0 ESC 'T ESC 'U 0 \
ESC 'X 1 255 ESC "[@" 4 0 0 0 17 1 ESC '_ 0 ESC '- 0 \
ESC "[\" 4 0 0 0 0x68 0x01 ESC '3 BYTE one_lf CR
ΓòÉΓòÉΓòÉ 4. 4 Text file format for creating a binary file ΓòÉΓòÉΓòÉ
A text file can contain comment lines which begin with `*' or `%', all the
characters after that character are ignored. Blank lines are also ignored.
All other lines contain code sequences which are written to the binary file.
The code sequences used for creating a binary file are a subset of the code
sequences used for generating a parameter file.
ΓòÉΓòÉΓòÉ 4.1. 4.1 Code sequences ΓòÉΓòÉΓòÉ
These sequences usually consist of several commands which are separated by
spaces. Each command can be constructed from the following tokens:
ASCII control codes and other names
These commands insert one byte:
NUL Code 00(hex) 0(dec).
SOH Code 01(hex) 1(dec).
STX Code 02(hex) 2(dec).
ETX Code 03(hex) 3(dec).
EOT Code 04(hex) 4(dec).
ENQ Code 05(hex) 5(dec).
ACK Code 06(hex) 6(dec).
BEL Code 07(hex) 7(dec).
BS Code 08(hex) 8(dec).
TAB Code 09(hex) 9(dec).
HT Code 09(hex) 9(dec).
LF Code 0A(hex) 10(dec).
VT Code 0B(hex) 11(dec).
FF Code 0C(hex) 12(dec).
CR Code 0D(hex) 13(dec).
SO Code 0E(hex) 14(dec).
SI Code 0F(hex) 15(dec).
DLE Code 10(hex) 16(dec).
DC1 Code 11(hex) 17(dec).
DC2 Code 12(hex) 18(dec).
DC3 Code 13(hex) 19(dec).
DC4 Code 14(hex) 20(dec).
NAK Code 15(hex) 21(dec).
SYN Code 16(hex) 22(dec).
ETB Code 17(hex) 23(dec).
CAN Code 18(hex) 24(dec).
EM Code 19(hex) 25(dec).
SUB Code 1A(hex) 26(dec).
ESC Code 1B(hex) 27(dec).
FS Code 1C(hex) 28(dec).
GS Code 1D(hex) 29(dec).
RS Code 1E(hex) 30(dec).
US Code 1F(hex) 31(dec).
DEL Code 7F(hex) 127(dec).
ASCII printing characters
These commands insert one or more bytes:
'x A single character: the character following the single quote ' is
sent as is.
"xxx" A string of characters: the characters following the double quote
" up to, but not including, the next " in the same line are sent
to the printer.
Numbers standing for a character's ASCII code
These commands insert one byte:
0### Octal number: # is a digit from 0 to 7.
0x## Hexadecimal number: # is a character from the set (0-9, A-F).
### Decimal number: # is a digit from 0 to 9. Note: a leading zero
will cause the number to be interpreted as octal (see 0###).
Control characters
This command insert one byte:
^A Control characters: ^a to ^a or ^A to ^Z stand for codes 1 to 26,
^@ stands for 0.
ΓòÉΓòÉΓòÉ 5. 5 Notes ΓòÉΓòÉΓòÉ
Some of the settings can also be made through command line options of dvidot,
this way is recommended. Each printer (and printer mode) should have its own
parameter file. Parameter file settings which can be changed on the dvidot
command line should be given values which are reasonable but not expected to
cover all cases, as the right value can easily be put on the command line or
in the configuration file.
Please do not change the parameter files supplied -- if you must change them,
copy them to a file with a different name first.
When you have developed (and thoroughly tested) a set of parameters for a new
printer or mode, please send them to the author (address in the readme.eng
file), so that others can profit from it and so that a standard is upheld.
If you cannot create a parameter file for a printer using the methods above,
please get in touch with the author so that makedot and dvidot can be extended
to cover this new case.
ΓòÉΓòÉΓòÉ 6. 6 Appendix: Old method for inserting parameters in a code sequence ΓòÉΓòÉΓòÉ
If you need to read an old parameter file: here's the old method for inserting
parameters in code sequences. When converting old DOT files to new ones, the
code sequences will be automatically converted, therefore you don't have to
read this.
The following commands are used for inserting a numeric parameter in a code
sequence (see below for xx):
xx+#
Add # to parameter before inserting parameter
xx-#
Subtract # from parameter before inserting parameter
xx*#+#
Multiply parameter by the first number and add the second number before
inserting parameter
xx*#-#
Multiply parameter by the first number and add the second number before
inserting parameter
You cannot use xx alone, use xx+0 instead. Choose xx from the following:
D1 to D9
The parameter is inserted as a decimal number (in characters) with leading
zeros (D1: filled to one place, D9: filled to nine places).
L
The low byte of the parameter is inserted as a binary number.
H
The high byte of the parameter is inserted as a binary number.
LH
The parameter is inserted as a binary number in two bytes (the low byte
first then the high byte).
HL
The parameter is inserted as a binary number in two bytes (the high byte
first then the low byte).
The parameter depends on the context:
INIT1 one_line_feed
INIT2 one_line_feed
GRAPH_MODE pixels
LINE_FEED line_feed
POS_X pos_x