summaryrefslogtreecommitdiff
path: root/Master/tlpkg/dviout/CFG
diff options
context:
space:
mode:
authorTakuji Tanaka <ttk@t-lab.opal.ne.jp>2021-05-16 11:34:18 +0000
committerTakuji Tanaka <ttk@t-lab.opal.ne.jp>2021-05-16 11:34:18 +0000
commitea1b469e3a8432f0522040ce3f03bb6a216e7b4e (patch)
tree5e3a4427ce8a9ac7bfaabcf4ec6c46f972ec78c3 /Master/tlpkg/dviout/CFG
parent0e18620a87e0545fea07d46726ca3b3458ba49c2 (diff)
dviout Ver.3.19.0
Sync with https://www.tug.org/svn/dviout/tags/3.19.0/inst/ git-svn-id: svn://tug.org/texlive/trunk@59220 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/dviout/CFG')
-rw-r--r--Master/tlpkg/dviout/CFG/newcfg.txt529
-rw-r--r--Master/tlpkg/dviout/CFG/newcfg_ja.txt529
-rw-r--r--Master/tlpkg/dviout/CFG/optcfg.dvibin0 -> 86124 bytes
3 files changed, 529 insertions, 529 deletions
diff --git a/Master/tlpkg/dviout/CFG/newcfg.txt b/Master/tlpkg/dviout/CFG/newcfg.txt
deleted file mode 100644
index c2083467dea..00000000000
--- a/Master/tlpkg/dviout/CFG/newcfg.txt
+++ /dev/null
@@ -1,529 +0,0 @@
-■ ■
-■ dviprt 新プリンタ定義ファイル 仕様書 ■
-■ version S.2 ■
-
- Copyright (C) 1994 淺山和典 (ASAYAMA Kazunori)
- TPM03937@pcvan.or.jp
- GHF01532@niftyserve.or.jp
-
-========================================================================
-● 1. 概要
-========================================================================
-
- この文書は、dviprt の新しいプリンタ定義ファイルの仕様書です。
-
-========================================================================
-● 2. プリンタ定義ファイルのソースファイル (*.src) の仕様
-========================================================================
-
------------
-★ 2.1 項目
------------
-
-従来の項目については、そのまま継承する。それ以外に、以下の項目を追加。
-
- ・ encode
- ビットイメージデータのエンコードの種類。FAX, HEX (upper_position
- の HEX_MODE と同値), PCL1 などを指定する。
- ・ y_dpi (version 2)
- 縦方向の解像度。dviprt の -DPI オプションに対応。
-
-また、従来、必須だった以下の項目をオプションに変更。
-
- ・ maximal_unit
- 未指定時には、十分に大きな値。
-
- ・ minimal_unit
- 未指定時には、出力コードの大きさが最小になるであろう値。
-
------------------------------
-★ 2.2 数値の出力フォーマット
------------------------------
-
- 従来のフォーマットの上位互換とする。
-
- 従来の \b2,\B2,\d3,\d4,\d5,\d? を拡張して、以下のようなフォーマットを
-用意する。 この中で 'n' はその桁数を表すものとし、1 <= n <= 7、または n
-== ? であるものとする。
-
-(1) \bn バイナリ 下位 -> 上位バイト
-(2) \Bn バイナリ 上位 -> 下位バイト
-(3) \on 8 進 ASCII テキスト
-(4) \dn 10 進 ASCII テキスト
-(5) \hn 16 進 ASCII テキスト (小文字)
-(6) \Hn 16 進 ASCII テキスト (大文字)
-(7) \st 文字列を「式」の値の回数だけ出力 (詳しくは後述)
-
----------------
-★ 2.3 式の表記
----------------
-
- 式は以下の要素から成る。
-
-(1) 整数
- ・ 'x' または 'X' で始まる数 16 進表記
- x 一文字だけ書いた場合、後述の「水平方向の絶対位置」とみなされ
- てしまうので注意すること。
- ・ '0' で始まる数 8 進表記
- ・ '0' 以外の数字で始まる数 10 進表記
-(2) 内部変数
- ・ w 出力幅 (dots)
- ・ h 出力高 (dots)
- ・ r 横方向の解像度 (dpi)
- ・ R 縦方向の解像度 (dpi)
- ・ p 通しページ番号
- ・ v pins の項目の値を 8 で割ったもの (旧バージョンとの互換のため
- に用意)
- ・ c constant の項目で定義された値 (旧バージョンとの互換のために用
- 意)
- ・ s 出力データのバイト数
- send_bit_image, bit_row_header, after_bit_image の中でのみ使え
- る。
- ・ d 横方向の送り (印字データや水平スキップの水平方向のドット数)
- send_bit_image, bit_row_header, after_bit_image, skip_spaces
- の中でのみ使える。
- ・ x 水平方向の絶対的な印字位置 (dot)
- コードを出力する直前の印字位置を指している。従って、
- send_bit_image, bit_row_header,after_bit_image,skip_spaces 中で
- 印字位置が移動した後の位置が欲しければ x の代わりに (x+d) を用い
- ること。x の値は after_bit_image や skip_spaces を出力した後に更
- 新される。ただし NON_MOVING のプリンタの場合、after_bit_image の
- 後では更新はされず skip_spaces を出力したあとにのみ更新される
- (つまり実際のプリンタの状態に一致するということ)。
- ・ y 垂直方向の絶対的な印字位置 (dot)
- x 同様、コードを出力する直前の位置を指している。値は line_feed
- を一回出力するごとに更新され、form_feed を出力した直後に 0 にリ
- セットされる。
-(3) 演算子
- + 加算 | 論理和
- - 減算 & 論理積
- * 乗算 ^ 排他的論理和
- / 除算 > 右シフト
- % 剰余 < 左シフト
-(4) 開き括弧 '(' と 閉じ括弧 ')'
-
- これらを組み合わせて「式」を形成する。「式」の表記の途中に空白文字を含
-んではならない。
-
- 式は、通常の中置記法で記述する。ただし、演算子の間に「優先順位はなく」、
-左側から順に解釈される。例えば、以下のようなものが「式」の例。
-
- 例 1). p
- 例 2). (w+7)/8
- 例 3). r+R*128
-
- 最後の例は、慣例的には r+(R*128) の意味であるが、ここでは、(r+R)*128
-と解釈される。前者のように解釈させたいのであれば、括弧を用いて r+(R*128)
-と明示的に演算順序を指定するか、R*128+r とすればよい。
-
- 従来の書式オプション、'D'、'DD'、'DDD'、'T'、'M'、に関しては式による表
-現で同じ結果を得ることが可能 (optcfg でこれらを処理すると、式による表現
-に変換される)。
-
- 例 1). \b2DDD
- \b2,d>3
- 例 2). \d?M
- \d?,d*c
- 例 3). \d4DDT
- \d4,(d*v)>3
-
- 演算は、アプリケーション内部では符号なしの 2 byte で計算される。従って、
-2 byte 符号なし整数で表される範囲からはみ出すような演算についてはその結
-果は保証されない。
-
----------------------------
-★ 2.4 式を用いた数値の出力
----------------------------
-
- 実際に send_bit_image などで指定するには、一般的には、
-
- format,expr
-
-と、書式と式を ',' で区切って記述する。',' の前後には空白文字を置いては
-ならない。
-
- 例 \d?,(w+7)/8
-
-従来通りの値 (内部変数 d の値) を出力する場合には format のみを指定すれ
-ばよい (つまり従来通りの指定方法)。
-
- 例 \b2DDD
-
- ただし、format が \st の場合には、式を評価結果した結果を数値として出力
-するのではなく、それを回数の指定であるとみなしてその回数分、指定された文
-字列を出力する。
-
- この場合、出力フォーマットの指定の方法が異なり、
-
- \st,expr,"strings"
-
-のように、最後に 「,"strings"」 が必要になる。この strings の部分が出力
-する文字列の指定で、ダブルクウォーテーション 「"」で囲む。"strings" の内
-部は基本的にエスケープシーケンスなどの「"」の外側と同じ記法が使え、空白
-文字は無視される。ただし、「"」そのものを出力文字列に含めたい場合には
-「\"」のように「\」でエスケープする必要がある。また、文字列中では書式指
-定による数値の出力は指定できない。
-
- 例えば、
-
- bit_row_header : \st,"This \s is \s a \s pen.\n"
-
-と書いておけば、ラスタ行の先頭に、その幅のドット数回だけ 「This is a
-pen.」という文字列が出力される。
-
-
----------------------------------
-★ 2.5 エスケープシーケンスの拡張
----------------------------------
-
- 従来、\SP と \ESC が利用可能だったが、新たに次の C 言語 like なものも
-使えるようにする。ただし、\ の一文字に限っては '\' そのものを表す、とい
-う従来の仕様を引き継ぐ ('\' そのものを表すには C 言語では \\ と 2 つ重ね
-る必要がある)。
-
- \n LF \t H-TAB
- \r CR \s SPACE
- \f FF \e ESC
- \v V-TAB \" 文字 "
-
------------------------
-★ 2.6 定義ファイルの例
------------------------
-
- ・ PBM raw フォーマット
-
- name : PBM image format
- upper_position : LEFT_IS_HIGH
- pins : 8
- minimal_unit : 10000
- maximal_unit : 10000
- bit_image_mode : P4 \n \d?,w \s \d?,h \n
- ; ^^^^^ ^^^^^
- ; 幅 高さ
- normal_mode :
- send_bit_image :
- after_bit_image :
- skip_spaces :
- line_feed :
- form_feed :
- dpi : 118
-
- ・ StarFax フォーマット
-
- name : Starfax format
- upper_position : LEFT_IS_HIGH
- pins : 8
- minimal_unit : 10000
- maximal_unit : 10000
- bit_image_mode : SF \x01 \x00 \x00 \x00 \x00 \x00
- \x00 \x40 \x00 \x00 \x00 \x00 \x00
- normal_mode : \x00 \x08 \x80 \x00 \x08 \x80 \x00 \x08 \x80
- send_bit_image :
- after_bit_image :
- skip_spaces :
- line_feed :
- form_feed : \x00 \x08 \x80 \x00 \x08 \x80 \x00 \x08 \x80
- dpi : 208
- encode : FAX 1728;2280
- ; ^^^ ^^^^^^^^^
- ; FAX出力 -FAXオプションのデフォルト引数
-
-========================================================================
-● 3. プリンタ定義ファイルのバイナリ (*.cfg)の仕様
-========================================================================
-
- プリンタ定義ファイル中の整数値 (オフセット、バイト数など) は、そのバイ
-ト数に関らず、下位バイト -> 上位バイトの順に記録されている。なお、全ての
-整数値は符号なし。
-
- 設定項目は、整数型、文字列型、プリンタコード型の 3 種類が有り、それぞ
-れ、型毎に 0〜254 の項目番号を持っている。
-
- 項目名と項目番号の対応は、ヘッダ s_cfg.h を参照のこと。
-
------------------
-★ 3.1 全体の構造
------------------
-
- +----------------------+
- | ヘッダ部 |
- +----------------------+
- | 任意 |
- +----------------------+
- | 整数型項目 |
- +----------------------+
- | 任意 |
- +----------------------+
- | 文字列型項目 |
- +----------------------+
- | 任意 |
- +----------------------+
- | プリンタコード型項目 |
- +----------------------+
- | 任意 |
- +----------------------+
-
----------------
-★ 3.2 ヘッダ部
----------------
-
- オフセット バイト数
- 0 2 マジックナンバー
- 2 2 バージョンナンバー
- 4 4 数値型の項目値の位置のオフセット (ファイル先頭から)
- 8 4 文字列型の項目値の位置のオフセット
- 12 4 プリンタコード型の項目値の位置のオフセット
- 16 1 文字 'S'
- 17 1 値 0xFF
- 18 1 値 0xFF
-
------------
-★ 3.3 任意
------------
-
- 何を何バイト書き込んでいてもよい。例えば、コメントや特定アプリケーショ
-ンのための情報など。ただし、後者については互換性の関係上、プリンタコード
-の生成に影響する情報を含めることは好ましくない。
-
--------------------
-★ 3.4 整数型の項目
--------------------
-
- オフセット バイト数
- 0 1 整数型の項目の数 (0 〜 255)
- 1 3 1 番目の項目
- 4 3 2 番目の項目
- 7 3 3 番目の項目
- : : :
-
-各整数型の項目は、
-
- <- 1 byte -><------ 2 byte ------>
- +----------+----------+----------+
- | 項目番号 | 値 |
- +----------+----------+----------+
- 項目番号とファイル中の順序とは一致しているとは限らない。また、項目番号
-は、連続しているとも限らない。アプリケーション側では、必ず項目番号を確か
-めて値を読み込む必要がある。他の型の項目についても同様。
-
- pins の項目は ピンの数を 8 で割った値が記録されている。upper_position
-の項目は、以下のようなビットフィールドとして見る。
-
- 15 8 7 6 5 4 0
- +-----------------+--------+---+---------------+
- | 未使用 |ピン配列| | 未使用 |
- +-----------------+--------+---+---------------+
- ↑
- NON_MOVING
- ピン配列の意味は以下のとおり。
- +------ ビット順の反転
- | +---- 行優先
- | |
- 0 0 HIGH_BIT
- 0 1 LEFT_IS_HIGH
- 1 0 LOW_BIT
- 1 1 LEFT_IS_LOW
-
----------------------
-★ 3.5 文字列型の項目
----------------------
-
- オフセット バイト数
- 0 1 文字列型の項目の数
- 1 3+n 0 番目の項目 (n は文字列の長さ)
- : : :
-
-各文字列型の項目は、
-
- <- 1byte -><------ 2byte -------><--------- n bytes --------->
- +----------+----------+----------+----------+---- ..... ------+
- | 項目番号 | 長さ(n) | 値 |
- +----------+----------+----------+----------+---- ..... ------+
-文字列の最後には、null 文字は付加されていない。
-
------------------------------
-★ 3.6 プリンタコード型の項目
------------------------------
-
- オフセット バイト数
- 0 1 プリンタコード型の項目の数
- 1 3+n 0 番目の項目 (n はプリンタコードの長さ)
- : : :
-
-各文字列型の項目は、
-
- <- 1byte -><------ 2byte -------><--------- n bytes --------->
- +----------+----------+----------+----------+---- ..... ------+
- | 項目番号 | 長さ(n) | 値 |
- +----------+----------+----------+----------+---- ..... ------+
-
-「値」は、次の 2 種類のブロックが 1 次元的に n バイト並んでいる。
-
-(1) 生データ
- そのままプリンタに送るコード。プリンタ定義のソース中の、\b2 などの
- 書式付き出力以外の部分。 127 バイトを超える場合には分割される。
-
- <- 1byte -><--------- m bytes --------->
- +----------+----------+---- ..... ------+
- | 長さ(m) | 値 |
- +----------+----------+---- ..... ------+
- ただし、長さ m は、 1 <= m <= 127。
-
-(2) 書式付き出力
- 式を評価し、その結果を指定された書式に従ってプリンタに送る。プリン
- タ定義のソース中の \b2 などの部分。
-
- <- 1byte -><- 1byte -><--------- n bytes --------->
- +----------+----------+----------+---- ..... ------+
- | 書式 | 長さ(m) | 式 |
- +----------+----------+----------+---- ..... ------+
-
- 「書式」は必ず、最上位ビットが立っている。従って、1 バイト目の最上
- 位ビットを見れば生データなのか書式付き出力なのかの区別ができる。
-
- また、生データの場合と合わせると各ブロックの先頭バイトは 1 以上
- 255 以下の値を取り、0 となることはない (生データは必ず 1 バイト以上
- 含まれており、書式は最上位ビットが立っている)。従って、このことを利
- 用して、*.cfg 読み込み時にコードの最後に 0 を 1 バイト付け加えて置け
- ば、出力時には 0 で始まるブロックに出会うまでプリンタコード型のデー
- タの処理を続ければよいことになり、処理が簡単になる。
-
- 長さ m が 255 を超えるような式は記述できない。長さが 255 バイトの式
- とは、数 128、演算子数 127 という演算であり、これでも表現できないよ
- うな式は必要ないであろう。
-
- (A) 書式
- 各ビットは以下のようになっている。
-
- <--1--><--- 3 ---><-1--><--- 3 --->
- +-----+----------+-----+----------+
- | 1 | 形式 | ISO | 桁数 |
- +-----+----------+-----+----------+
- 「形式」は、
- バイナリ 下位バイト -> 上位バイト
- バイナリ 上位バイト -> 下位バイト
- ASCII テキスト 8 進数
- ASCII テキスト 10 進数
- ASCII テキスト 16 進数 大文字
- ASCII テキスト 16 進数 小文字
- 文字列 (特殊形)
- 「桁数」 (形式が特殊形以外の場合に有効)
- 1 〜 7 桁数
- 0 可変長 (形式が ASCII テキストの場合のみ)
- 「ISO」 (形式が ASCII テキストの場合にのみ有効)
- この bit が 1 かつ、「形式」が ASCII TEXT のとき、
- 出力の最終桁の文字コードに 16 (10h)を加える。例えば、
- 1000 という数値を 10 進 ASCII で出力したい場合、ISO
- ビットが立っていると "100@" という ASCII 文字列が出力
- される。
-
- (B) 式
- 1 バイトを単位として以下のような逆ポーランド記法で m バイトの
- 長さだけ記されている。
-
- (a) 0 〜 127 数値。そのまま整数として処理すればよい。
- (b) 128 〜 159 内部変数。解像度など。番号で指定される。
- (c) 160 〜 191 現在未使用。(予約済)
- (d) 192 〜 255 演算子。番号で指定される。
-
- 数値は 127 までしか表せないが、これは optcfg 側で 127 以下の数
- を組み合わせて、同じ値を生成するような式に変換される。例えば、16
- 進 7ff0 は、
-
- x1<14|x7f<7|x70
-
- ( C 言語の式で表せば、 (0x01 << 14) | (0x7f << 7) | 0x70 )
-
- という式で *.cfg 中に保存される。従って、アプリケーション側では
- 特別な処理を行う必要はなく、他の演算同様に処理すればよい (そもそ
- もアプリケーション側からは見分けがつかない)。
-
- 式の評価は以下のようにして行えばよい。
-
- まず、ある程度の深さを持ったスタックを用意し、次のことを「式」
- の最後まで繰り返す。(スタックの深さは、あらかじめ決めておき、ス
- タックがあふれるような複雑な計算は optcfg でチェックして跳ねてお
- く)
-
- (a) 数値 (最上位ビットが立っていない) であればその値をそのままス
- タックに積む。
- (b) 変数 (最上位ビットが立っておりその次のビットが立っていない)
- であれば、その値をスタックに積む。
- (c) 演算子 (上位 2 ビットが立っている) であれば、スタックトップ
- から 2 つの数をとってきて演算を行い、結果をスタックに積む。
-
- 最終的にスタックトップにあるものを「書式」に従って出力すればよ
- い (optcfg でチェックを行っておくので スタックに余分な " ごみ "
- が残ることはありえない。同様にスタックがアンダーフローすることも
- ありえない ... チェックの必要なし)。
-
- (C) 特殊な「書式」
- ・ 文字列出力
- 書式部の「形式」の値が 7 である場合にのみ、式の指定の後に
- 文字列の指定が続く。文字列指定部は、
-
- <- 1byte -><--------- n bytes --------->
- +----------+----------+---- ..... ------+
- | 長さ(m) | 値 |
- +----------+----------+---- ..... ------+
- ただし、長さ m は、 0 <= m <= 255。
-
- という形をしている。「形式」が 7 の時には式を評価した結果を
- 数値として出力する代わりに、式の評価結果を回数の指定とみなし、
- その回数だけここで指定された文字列をプリンタに送る (ソースフ
- ァイル中の書式 \st に対応)。
-
-
-========================================================================
-● 4. *.src <--> *.cfg 相互変換プログラム (optcfg)
-========================================================================
-
- dviprt は バイナリ形式のファイル、*.cfg しか解釈できません。テキスト形
-式のファイル (*.src) を dviprt で使う場合には必ず optcfg で *.cfg に変換
-してください。この仕様において拡張されたものを用いた *.src の変換には
-optcfg の version 3.0 以降が必要です。
-
--------------
-★ 4.1 使い方
--------------
-
- optcfg [オプション] SRCファイル1 [SRCファイル2 ... SRCファイルN]
-
- '[' と ']' で囲まれた部分は省略が可能なことを表しています。一度に複数
-のファイルを変換する場合にはファイル名をならべてください。入力ファイルの
-拡張子がデフォルト (バイナリは *.cfg、ソースは *.src) と同じ場合には省略
-が可能です。
-
- 例 1). escp_24.src -> escp_24.cfg の変換を行う
-
- optcfg escp_24.src
-
- 例 2). 寡黙モードで escp_24.cfg と pc-pr_24.cfg をソースファイルに変換
-
- optcfg -r -q escp_24 pc-pr_24
-
----------------------
-★ 4.2 オプション一覧
----------------------
-
- ・ -r *.cfg -> *.src 変換を行います。*.cfg は旧仕様のものも受け付けま
- すが生成される *.src は新仕様のものです。
- ・ -q 寡黙モード。*.cfg -> *.src 変換の際にファイルの上書きの確認を求
- めません。
-
------------------
-★ 4.3 コンパイル
------------------
-
- optcfg.c dviprcfg.c s_cfg.h s_cfgblt.h をカレントディレクトリにおいて、
-C コンパイラに optcfg.c を処理させます (dviprcfg.c と s_cfg.h s_cfgblt.h
-は optcfg.c から include されます)。
-
- 例 1). bcc optcfg.c
- 例 2). cc -O -o optcfg optcfg.c
-
- optcfg.c は UN*X の cc でもコンパイルできることを意図して書かれていま
-すが実際にコンパイルのテストを行ったわけでは有りません。不具合があればご
-一報ください。
-
-=========================== End of document ============================
diff --git a/Master/tlpkg/dviout/CFG/newcfg_ja.txt b/Master/tlpkg/dviout/CFG/newcfg_ja.txt
new file mode 100644
index 00000000000..5484841afb3
--- /dev/null
+++ b/Master/tlpkg/dviout/CFG/newcfg_ja.txt
@@ -0,0 +1,529 @@
+笆 笆
+笆 dviprt 譁ー繝励Μ繝ウ繧ソ螳夂セゥ繝輔ぃ繧、繝ォ 莉墓ァ俶嶌 笆
+笆 version S.2 笆
+
+ Copyright (C) 1994 豺コ螻ア蜥悟ク (ASAYAMA Kazunori)
+ TPM03937@pcvan.or.jp
+ GHF01532@niftyserve.or.jp
+
+========================================================================
+笳 シ托シ 讎りヲ
+========================================================================
+
+ 縺薙ョ譁譖ク縺ッ縲‥viprt 縺ョ譁ー縺励>繝励Μ繝ウ繧ソ螳夂セゥ繝輔ぃ繧、繝ォ縺ョ莉墓ァ俶嶌縺ァ縺吶
+
+========================================================================
+笳 シ抵シ 繝励Μ繝ウ繧ソ螳夂セゥ繝輔ぃ繧、繝ォ縺ョ繧ス繝シ繧ケ繝輔ぃ繧、繝ォ (*.src) 縺ョ莉墓ァ
+========================================================================
+
+-----------
+笘 2.1 鬆逶ョ
+-----------
+
+蠕捺擂縺ョ鬆逶ョ縺ォ縺、縺縺ヲ縺ッ縲√◎縺ョ縺セ縺セ邯呎価縺吶k縲ゅ◎繧御サ・螟悶↓縲∽サ・荳九ョ鬆逶ョ繧定ソス蜉縲
+
+ 繝サ encode
+ 繝薙ャ繝医う繝。繝シ繧ク繝繝シ繧ソ縺ョ繧ィ繝ウ繧ウ繝シ繝峨ョ遞ョ鬘槭FAX, HEX (upper_position
+ 縺ョ HEX_MODE 縺ィ蜷悟、), PCL1 縺ェ縺ゥ繧呈欠螳壹☆繧九
+ 繝サ y_dpi (version 2)
+ 邵ヲ譁ケ蜷代ョ隗」蜒丞コヲ縲Eviprt 縺ョ -DPI 繧ェ繝励す繝ァ繝ウ縺ォ蟇セ蠢懊
+
+縺セ縺溘∝セ捺擂縲∝ソ鬆医□縺」縺滉サ・荳九ョ鬆逶ョ繧偵が繝励す繝ァ繝ウ縺ォ螟画峩縲
+
+ 繝サ maximal_unit
+ 譛ェ謖螳壽凾縺ォ縺ッ縲∝香蛻縺ォ螟ァ縺阪↑蛟、縲
+
+ 繝サ minimal_unit
+ 譛ェ謖螳壽凾縺ォ縺ッ縲∝コ蜉帙さ繝シ繝峨ョ螟ァ縺阪&縺梧怙蟆上↓縺ェ繧九〒縺ゅm縺蛟、縲
+
+-----------------------------
+笘 2.2 謨ー蛟、縺ョ蜃コ蜉帙ヵ繧ゥ繝シ繝槭ャ繝
+-----------------------------
+
+ 蠕捺擂縺ョ繝輔か繝シ繝槭ャ繝医ョ荳贋ス堺コ呈鋤縺ィ縺吶k縲
+
+ 蠕捺擂縺ョ \b2,\B2,\d3,\d4,\d5,\d? 繧呈僑蠑オ縺励※縲∽サ・荳九ョ繧医≧縺ェ繝輔か繝シ繝槭ャ繝医r
+逕ィ諢上☆繧九 縺薙ョ荳ュ縺ァ 'n' 縺ッ縺昴ョ譯∵焚繧定。ィ縺吶b縺ョ縺ィ縺励1 <= n <= 7縲√∪縺溘ッ n
+== ? 縺ァ縺ゅk繧ゅョ縺ィ縺吶k縲
+
+(1) \bn 繝舌う繝翫Μ 荳倶ス -> 荳贋ス阪ヰ繧、繝
+(2) \Bn 繝舌う繝翫Μ 荳贋ス -> 荳倶ス阪ヰ繧、繝
+(3) \on 8 騾イ ASCII 繝繧ュ繧ケ繝
+(4) \dn 10 騾イ ASCII 繝繧ュ繧ケ繝
+(5) \hn 16 騾イ ASCII 繝繧ュ繧ケ繝 (蟆乗枚蟄)
+(6) \Hn 16 騾イ ASCII 繝繧ュ繧ケ繝 (螟ァ譁蟄)
+(7) \st 譁蟄怜励r縲悟シ上阪ョ蛟、縺ョ蝗樊焚縺縺大コ蜉 (隧ウ縺励¥縺ッ蠕瑚ソー)
+
+---------------
+笘 2.3 蠑上ョ陦ィ險
+---------------
+
+ 蠑上ッ莉・荳九ョ隕∫エ縺九i謌舌k縲
+
+(1) 謨エ謨ー
+ 繝サ 'x' 縺セ縺溘ッ 'X' 縺ァ蟋九∪繧区焚 16 騾イ陦ィ險
+ x 荳譁蟄励□縺第嶌縺縺溷エ蜷医∝セ瑚ソー縺ョ縲梧ーエ蟷ウ譁ケ蜷代ョ邨カ蟇セ菴咲スョ縲阪→縺ソ縺ェ縺輔l
+ 縺ヲ縺励∪縺縺ョ縺ァ豕ィ諢上☆繧九%縺ィ縲
+ 繝サ '0' 縺ァ蟋九∪繧区焚 8 騾イ陦ィ險
+ 繝サ '0' 莉・螟悶ョ謨ー蟄励〒蟋九∪繧区焚 10 騾イ陦ィ險
+(2) 蜀驛ィ螟画焚
+ 繝サ w 蜃コ蜉帛ケ (dots)
+ 繝サ h 蜃コ蜉幃ォ (dots)
+ 繝サ r 讓ェ譁ケ蜷代ョ隗」蜒丞コヲ (dpi)
+ 繝サ R 邵ヲ譁ケ蜷代ョ隗」蜒丞コヲ (dpi)
+ 繝サ p 騾壹@繝壹シ繧ク逡ェ蜿キ
+ 繝サ v pins 縺ョ鬆逶ョ縺ョ蛟、繧 8 縺ァ蜑イ縺」縺溘b縺ョ (譌ァ繝舌シ繧ク繝ァ繝ウ縺ィ縺ョ莠呈鋤縺ョ縺溘a
+ 縺ォ逕ィ諢)
+ 繝サ c constant 縺ョ鬆逶ョ縺ァ螳夂セゥ縺輔l縺溷、 (譌ァ繝舌シ繧ク繝ァ繝ウ縺ィ縺ョ莠呈鋤縺ョ縺溘a縺ォ逕ィ
+ 諢)
+ 繝サ s 蜃コ蜉帙ョ繝シ繧ソ縺ョ繝舌う繝域焚
+ send_bit_image, bit_row_header, after_bit_image 縺ョ荳ュ縺ァ縺ョ縺ソ菴ソ縺
+ 繧九
+ 繝サ d 讓ェ譁ケ蜷代ョ騾√j (蜊ー蟄励ョ繝シ繧ソ繧豌エ蟷ウ繧ケ繧ュ繝繝励ョ豌エ蟷ウ譁ケ蜷代ョ繝峨ャ繝域焚)
+ send_bit_image, bit_row_header, after_bit_image, skip_spaces
+ 縺ョ荳ュ縺ァ縺ョ縺ソ菴ソ縺医k縲
+ 繝サ x 豌エ蟷ウ譁ケ蜷代ョ邨カ蟇セ逧縺ェ蜊ー蟄嶺ス咲スョ (dot)
+ 繧ウ繝シ繝峨r蜃コ蜉帙☆繧狗峩蜑阪ョ蜊ー蟄嶺ス咲スョ繧呈欠縺励※縺繧九ょセ薙▲縺ヲ縲
+ send_bit_image, bit_row_header,after_bit_image,skip_spaces 荳ュ縺ァ
+ 蜊ー蟄嶺ス咲スョ縺檎ァサ蜍輔@縺溷セ後ョ菴咲スョ縺梧ャイ縺励¢繧後ー x 縺ョ莉」繧上j縺ォ (x+d) 繧堤畑縺
+ 繧九%縺ィ縲Y 縺ョ蛟、縺ッ after_bit_image 繧 skip_spaces 繧貞コ蜉帙@縺溷セ後↓譖エ
+ 譁ー縺輔l繧九ゅ◆縺縺 NON_MOVING 縺ョ繝励Μ繝ウ繧ソ縺ョ蝣エ蜷医‖fter_bit_image 縺ョ
+ 蠕後〒縺ッ譖エ譁ー縺ッ縺輔l縺 skip_spaces 繧貞コ蜉帙@縺溘≠縺ィ縺ォ縺ョ縺ソ譖エ譁ー縺輔l繧
+ (縺、縺セ繧雁ョ滄圀縺ョ繝励Μ繝ウ繧ソ縺ョ迥カ諷九↓荳閾エ縺吶k縺ィ縺縺縺薙→)縲
+ 繝サ y 蝙ら峩譁ケ蜷代ョ邨カ蟇セ逧縺ェ蜊ー蟄嶺ス咲スョ (dot)
+ x 蜷梧ァ倥√さ繝シ繝峨r蜃コ蜉帙☆繧狗峩蜑阪ョ菴咲スョ繧呈欠縺励※縺繧九ょ、縺ッ line_feed
+ 繧剃ク蝗槫コ蜉帙☆繧九#縺ィ縺ォ譖エ譁ー縺輔l縲’orm_feed 繧貞コ蜉帙@縺溽峩蠕後↓ 0 縺ォ繝ェ
+ 繧サ繝繝医&繧後k縲
+(3) 貍皮ョ怜ュ
+ + 蜉邂 | 隲也炊蜥
+ - 貂帷ョ & 隲也炊遨
+ * 荵礼ョ ^ 謗剃サ也噪隲也炊蜥
+ / 髯、邂 > 蜿ウ繧キ繝輔ヨ
+ % 蜑ー菴 < 蟾ヲ繧キ繝輔ヨ
+(4) 髢九″諡ャ蠑ァ '(' 縺ィ 髢峨§諡ャ蠑ァ ')'
+
+ 縺薙l繧峨r邨縺ソ蜷医o縺帙※縲悟シ上阪r蠖「謌舌☆繧九ゅ悟シ上阪ョ陦ィ險倥ョ騾比クュ縺ォ遨コ逋ス譁蟄励r蜷ォ
+繧薙〒縺ッ縺ェ繧峨↑縺縲
+
+ 蠑上ッ縲騾壼クク縺ョ荳ュ鄂ョ險俶ウ輔〒險倩ソー縺吶k縲ゅ◆縺縺励∵シ皮ョ怜ュ舌ョ髢薙↓縲悟━蜈磯菴阪ッ縺ェ縺上阪
+蟾ヲ蛛エ縺九i鬆縺ォ隗」驥医&繧後k縲ゆセ九∴縺ー縲∽サ・荳九ョ繧医≧縺ェ繧ゅョ縺後悟シ上阪ョ萓九
+
+ 萓 1). p
+ 萓 2). (w+7)/8
+ 萓 3). r+R*128
+
+ 譛蠕後ョ萓九ッ縲∵」萓狗噪縺ォ縺ッ r+(R*128) 縺ョ諢丞袖縺ァ縺ゅk縺後√%縺薙〒縺ッ縲(r+R)*128
+縺ィ隗」驥医&繧後k縲ょ燕閠縺ョ繧医≧縺ォ隗」驥医&縺帙◆縺縺ョ縺ァ縺ゅl縺ー縲∵峡蠑ァ繧堤畑縺縺ヲ r+(R*128)
+縺ィ譏守、コ逧縺ォ貍皮ョ鈴蠎上r謖螳壹☆繧九°縲ヽ*128+r 縺ィ縺吶l縺ー繧医>縲
+
+ 蠕捺擂縺ョ譖ク蠑上が繝励す繝ァ繝ウ縲'D'縲'DD'縲'DDD'縲'T'縲'M'縲√↓髢「縺励※縺ッ蠑上↓繧医k陦ィ
+迴セ縺ァ蜷後§邨先棡繧貞セ励k縺薙→縺悟庄閭ス (optcfg 縺ァ縺薙l繧峨r蜃ヲ逅縺吶k縺ィ縲∝シ上↓繧医k陦ィ迴セ
+縺ォ螟画鋤縺輔l繧)縲
+
+ 萓 1). \b2DDD
+ \b2,d>3
+ 萓 2). \d?M
+ \d?,d*c
+ 萓 3). \d4DDT
+ \d4,(d*v)>3
+
+ 貍皮ョ励ッ縲√い繝励Μ繧ア繝シ繧キ繝ァ繝ウ蜀驛ィ縺ァ縺ッ隨ヲ蜿キ縺ェ縺励ョ 2 byte 縺ァ險育ョ励&繧後k縲ょセ薙▲縺ヲ縲
+2 byte 隨ヲ蜿キ縺ェ縺玲紛謨ー縺ァ陦ィ縺輔l繧狗ッ蝗イ縺九i縺ッ縺ソ蜃コ縺吶h縺縺ェ貍皮ョ励↓縺、縺縺ヲ縺ッ縺昴ョ邨
+譫懊ッ菫晁ィシ縺輔l縺ェ縺縲
+
+---------------------------
+笘 2.4 蠑上r逕ィ縺縺滓焚蛟、縺ョ蜃コ蜉
+---------------------------
+
+ 螳滄圀縺ォ send_bit_image 縺ェ縺ゥ縺ァ謖螳壹☆繧九↓縺ッ縲∽ク闊ャ逧縺ォ縺ッ縲
+
+ format,expr
+
+縺ィ縲∵嶌蠑上→蠑上r ',' 縺ァ蛹コ蛻縺」縺ヲ險倩ソー縺吶k縲',' 縺ョ蜑榊セ後↓縺ッ遨コ逋ス譁蟄励r鄂ョ縺縺ヲ縺ッ
+縺ェ繧峨↑縺縲
+
+ 萓 \d?,(w+7)/8
+
+蠕捺擂騾壹j縺ョ蛟、 (蜀驛ィ螟画焚 d 縺ョ蛟、) 繧貞コ蜉帙☆繧句エ蜷医↓縺ッ format 縺ョ縺ソ繧呈欠螳壹☆繧
+縺ー繧医> (縺、縺セ繧雁セ捺擂騾壹j縺ョ謖螳壽婿豕)縲
+
+ 萓 \b2DDD
+
+ 縺溘□縺励’ormat 縺 \st 縺ョ蝣エ蜷医↓縺ッ縲∝シ上r隧穂セ。邨先棡縺励◆邨先棡繧呈焚蛟、縺ィ縺励※蜃コ蜉
+縺吶k縺ョ縺ァ縺ッ縺ェ縺上√◎繧後r蝗樊焚縺ョ謖螳壹〒縺ゅk縺ィ縺ソ縺ェ縺励※縺昴ョ蝗樊焚蛻縲∵欠螳壹&繧後◆譁
+蟄怜励r蜃コ蜉帙☆繧九
+
+ 縺薙ョ蝣エ蜷医∝コ蜉帙ヵ繧ゥ繝シ繝槭ャ繝医ョ謖螳壹ョ譁ケ豕輔′逡ー縺ェ繧翫
+
+ \st,expr,"strings"
+
+縺ョ繧医≧縺ォ縲∵怙蠕後↓ 縲,"strings"縲 縺悟ソ隕√↓縺ェ繧九ゅ%縺ョ strings 縺ョ驛ィ蛻縺悟コ蜉
+縺吶k譁蟄怜励ョ謖螳壹〒縲√ム繝悶Ν繧ッ繧ヲ繧ゥ繝シ繝繝シ繧キ繝ァ繝ウ 縲"縲阪〒蝗イ繧縲"strings" 縺ョ蜀
+驛ィ縺ッ蝓コ譛ャ逧縺ォ繧ィ繧ケ繧ア繝シ繝励す繝シ繧ア繝ウ繧ケ縺ェ縺ゥ縺ョ縲"縲阪ョ螟門エ縺ィ蜷後§險俶ウ輔′菴ソ縺医∫ゥコ逋ス
+譁蟄励ッ辟。隕悶&繧後k縲ゅ◆縺縺励√"縲阪◎縺ョ繧ゅョ繧貞コ蜉帶枚蟄怜励↓蜷ォ繧√◆縺蝣エ蜷医↓縺ッ
+縲圭"縲阪ョ繧医≧縺ォ縲圭縲阪〒繧ィ繧ケ繧ア繝シ繝励☆繧句ソ隕√′縺ゅk縲ゅ∪縺溘∵枚蟄怜嶺クュ縺ァ縺ッ譖ク蠑乗欠
+螳壹↓繧医k謨ー蛟、縺ョ蜃コ蜉帙ッ謖螳壹〒縺阪↑縺縲
+
+ 萓九∴縺ー縲
+
+ bit_row_header : \st,"This \s is \s a \s pen.\n"
+
+縺ィ譖ク縺縺ヲ縺翫¢縺ー縲√Λ繧ケ繧ソ陦後ョ蜈磯ュ縺ォ縲√◎縺ョ蟷縺ョ繝峨ャ繝域焚蝗槭□縺 縲卦his is a
+pen.縲阪→縺縺譁蟄怜励′蜃コ蜉帙&繧後k縲
+
+
+---------------------------------
+笘 2.5 繧ィ繧ケ繧ア繝シ繝励す繝シ繧ア繝ウ繧ケ縺ョ諡。蠑オ
+---------------------------------
+
+ 蠕捺擂縲―SP 縺ィ \ESC 縺悟茜逕ィ蜿ッ閭ス縺縺」縺溘′縲∵眠縺溘↓谺。縺ョ C 險隱 like 縺ェ繧ゅョ繧
+菴ソ縺医k繧医≧縺ォ縺吶k縲ゅ◆縺縺励― 縺ョ荳譁蟄励↓髯舌▲縺ヲ縺ッ '\' 縺昴ョ繧ゅョ繧定。ィ縺吶√→縺
+縺蠕捺擂縺ョ莉墓ァ倥r蠑輔″邯吶$ ('\' 縺昴ョ繧ゅョ繧定。ィ縺吶↓縺ッ C 險隱槭〒縺ッ \\ 縺ィ 2 縺、驥阪ュ
+繧句ソ隕√′縺ゅk)縲
+
+ \n LF \t H-TAB
+ \r CR \s SPACE
+ \f FF \e ESC
+ \v V-TAB \" 譁蟄 "
+
+-----------------------
+笘 2.6 螳夂セゥ繝輔ぃ繧、繝ォ縺ョ萓
+-----------------------
+
+ 繝サ PBM raw 繝輔か繝シ繝槭ャ繝
+
+ name : PBM image format
+ upper_position : LEFT_IS_HIGH
+ pins : 8
+ minimal_unit : 10000
+ maximal_unit : 10000
+ bit_image_mode : P4 \n \d?,w \s \d?,h \n
+ ; ^^^^^ ^^^^^
+ ; 蟷 鬮倥&
+ normal_mode :
+ send_bit_image :
+ after_bit_image :
+ skip_spaces :
+ line_feed :
+ form_feed :
+ dpi : 118
+
+ 繝サ StarFax 繝輔か繝シ繝槭ャ繝
+
+ name : Starfax format
+ upper_position : LEFT_IS_HIGH
+ pins : 8
+ minimal_unit : 10000
+ maximal_unit : 10000
+ bit_image_mode : SF \x01 \x00 \x00 \x00 \x00 \x00
+ \x00 \x40 \x00 \x00 \x00 \x00 \x00
+ normal_mode : \x00 \x08 \x80 \x00 \x08 \x80 \x00 \x08 \x80
+ send_bit_image :
+ after_bit_image :
+ skip_spaces :
+ line_feed :
+ form_feed : \x00 \x08 \x80 \x00 \x08 \x80 \x00 \x08 \x80
+ dpi : 208
+ encode : FAX 1728;2280
+ ; ^^^ ^^^^^^^^^
+ ; FAX蜃コ蜉 -FAX繧ェ繝励す繝ァ繝ウ縺ョ繝繝輔か繝ォ繝亥シ墓焚
+
+========================================================================
+笳 シ難シ 繝励Μ繝ウ繧ソ螳夂セゥ繝輔ぃ繧、繝ォ縺ョ繝舌う繝翫Μ (*.cfg)縺ョ莉墓ァ
+========================================================================
+
+ 繝励Μ繝ウ繧ソ螳夂セゥ繝輔ぃ繧、繝ォ荳ュ縺ョ謨エ謨ー蛟、 (繧ェ繝輔そ繝繝医√ヰ繧、繝域焚縺ェ縺ゥ) 縺ッ縲√◎縺ョ繝舌う
+繝域焚縺ォ髢「繧峨★縲∽ク倶ス阪ヰ繧、繝 -> 荳贋ス阪ヰ繧、繝医ョ鬆縺ォ險倬鹸縺輔l縺ヲ縺繧九ゅ↑縺翫∝ィ縺ヲ縺ョ
+謨エ謨ー蛟、縺ッ隨ヲ蜿キ縺ェ縺励
+
+ 險ュ螳夐逶ョ縺ッ縲∵紛謨ー蝙九∵枚蟄怜怜梛縲√励Μ繝ウ繧ソ繧ウ繝シ繝牙梛縺ョ 3 遞ョ鬘槭′譛峨j縲√◎繧後◇
+繧後∝梛豈弱↓ 0ス254 縺ョ鬆逶ョ逡ェ蜿キ繧呈戟縺」縺ヲ縺繧九
+
+ 鬆逶ョ蜷阪→鬆逶ョ逡ェ蜿キ縺ョ蟇セ蠢懊ッ縲√倥ャ繝 s_cfg.h 繧貞盾辣ァ縺ョ縺薙→縲
+
+-----------------
+笘 3.1 蜈ィ菴薙ョ讒矩
+-----------------
+
+ +----------------------+
+ | 繝倥ャ繝驛ィ |
+ +----------------------+
+ | 莉サ諢 |
+ +----------------------+
+ | 謨エ謨ー蝙矩逶ョ |
+ +----------------------+
+ | 莉サ諢 |
+ +----------------------+
+ | 譁蟄怜怜梛鬆逶ョ |
+ +----------------------+
+ | 莉サ諢 |
+ +----------------------+
+ | 繝励Μ繝ウ繧ソ繧ウ繝シ繝牙梛鬆逶ョ |
+ +----------------------+
+ | 莉サ諢 |
+ +----------------------+
+
+---------------
+笘 3.2 繝倥ャ繝驛ィ
+---------------
+
+ 繧ェ繝輔そ繝繝 繝舌う繝域焚
+ 0 2 繝槭ず繝繧ッ繝翫Φ繝舌シ
+ 2 2 繝舌シ繧ク繝ァ繝ウ繝翫Φ繝舌シ
+ 4 4 謨ー蛟、蝙九ョ鬆逶ョ蛟、縺ョ菴咲スョ縺ョ繧ェ繝輔そ繝繝 (繝輔ぃ繧、繝ォ蜈磯ュ縺九i)
+ 8 4 譁蟄怜怜梛縺ョ鬆逶ョ蛟、縺ョ菴咲スョ縺ョ繧ェ繝輔そ繝繝
+ 12 4 繝励Μ繝ウ繧ソ繧ウ繝シ繝牙梛縺ョ鬆逶ョ蛟、縺ョ菴咲スョ縺ョ繧ェ繝輔そ繝繝
+ 16 1 譁蟄 'S'
+ 17 1 蛟、 0xFF
+ 18 1 蛟、 0xFF
+
+-----------
+笘 3.3 莉サ諢
+-----------
+
+ 菴輔r菴輔ヰ繧、繝域嶌縺崎セシ繧薙〒縺縺ヲ繧ゅh縺縲ゆセ九∴縺ー縲√さ繝。繝ウ繝医d迚ケ螳壹い繝励Μ繧ア繝シ繧キ繝ァ
+繝ウ縺ョ縺溘a縺ョ諠蝣ア縺ェ縺ゥ縲ゅ◆縺縺励∝セ瑚縺ォ縺、縺縺ヲ縺ッ莠呈鋤諤ァ縺ョ髢「菫ゆク翫√励Μ繝ウ繧ソ繧ウ繝シ繝
+縺ョ逕滓舌↓蠖ア髻ソ縺吶k諠蝣ア繧貞性繧√k縺薙→縺ッ螂ス縺セ縺励¥縺ェ縺縲
+
+-------------------
+笘 3.4 謨エ謨ー蝙九ョ鬆逶ョ
+-------------------
+
+ 繧ェ繝輔そ繝繝 繝舌う繝域焚
+ 0 1 謨エ謨ー蝙九ョ鬆逶ョ縺ョ謨ー (0 ス 255)
+ 1 3 1 逡ェ逶ョ縺ョ鬆逶ョ
+ 4 3 2 逡ェ逶ョ縺ョ鬆逶ョ
+ 7 3 3 逡ェ逶ョ縺ョ鬆逶ョ
+ : : :
+
+蜷謨エ謨ー蝙九ョ鬆逶ョ縺ッ縲
+
+ <- 1 byte -><------ 2 byte ------>
+ +----------+----------+----------+
+ | 鬆逶ョ逡ェ蜿キ | 蛟、 |
+ +----------+----------+----------+
+ 鬆逶ョ逡ェ蜿キ縺ィ繝輔ぃ繧、繝ォ荳ュ縺ョ鬆蠎上→縺ッ荳閾エ縺励※縺繧九→縺ッ髯舌i縺ェ縺縲ゅ∪縺溘鬆逶ョ逡ェ蜿キ
+縺ッ縲騾」邯壹@縺ヲ縺繧九→繧る剞繧峨↑縺縲ゅい繝励Μ繧ア繝シ繧キ繝ァ繝ウ蛛エ縺ァ縺ッ縲∝ソ縺夐逶ョ逡ェ蜿キ繧堤「コ縺
+繧√※蛟、繧定ェュ縺ソ霎シ繧蠢隕√′縺ゅk縲ゆサ悶ョ蝙九ョ鬆逶ョ縺ォ縺、縺縺ヲ繧ょ酔讒倥
+
+ pins 縺ョ鬆逶ョ縺ッ 繝斐Φ縺ョ謨ー繧 8 縺ァ蜑イ縺」縺溷、縺瑚ィ倬鹸縺輔l縺ヲ縺繧九Vpper_position
+縺ョ鬆逶ョ縺ッ縲∽サ・荳九ョ繧医≧縺ェ繝薙ャ繝医ヵ繧」繝シ繝ォ繝峨→縺励※隕九k縲
+
+ 15 8 7 6 5 4 0
+ +-----------------+--------+---+---------------+
+ | 譛ェ菴ソ逕ィ |繝斐Φ驟榊慾 | 譛ェ菴ソ逕ィ |
+ +-----------------+--------+---+---------------+
+ 竊
+ NON_MOVING
+ 繝斐Φ驟榊励ョ諢丞袖縺ッ莉・荳九ョ縺ィ縺翫j縲
+ +------ 繝薙ャ繝磯縺ョ蜿崎サ「
+ | +---- 陦悟━蜈
+ | |
+ 0 0 HIGH_BIT
+ 0 1 LEFT_IS_HIGH
+ 1 0 LOW_BIT
+ 1 1 LEFT_IS_LOW
+
+---------------------
+笘 3.5 譁蟄怜怜梛縺ョ鬆逶ョ
+---------------------
+
+ 繧ェ繝輔そ繝繝 繝舌う繝域焚
+ 0 1 譁蟄怜怜梛縺ョ鬆逶ョ縺ョ謨ー
+ 1 3+n 0 逡ェ逶ョ縺ョ鬆逶ョ (n 縺ッ譁蟄怜励ョ髟キ縺)
+ : : :
+
+蜷譁蟄怜怜梛縺ョ鬆逶ョ縺ッ縲
+
+ <- 1byte -><------ 2byte -------><--------- n bytes --------->
+ +----------+----------+----------+----------+---- ..... ------+
+ | 鬆逶ョ逡ェ蜿キ | 髟キ縺(n) | 蛟、 |
+ +----------+----------+----------+----------+---- ..... ------+
+譁蟄怜励ョ譛蠕後↓縺ッ縲]ull 譁蟄励ッ莉伜刈縺輔l縺ヲ縺縺ェ縺縲
+
+-----------------------------
+笘 3.6 繝励Μ繝ウ繧ソ繧ウ繝シ繝牙梛縺ョ鬆逶ョ
+-----------------------------
+
+ 繧ェ繝輔そ繝繝 繝舌う繝域焚
+ 0 1 繝励Μ繝ウ繧ソ繧ウ繝シ繝牙梛縺ョ鬆逶ョ縺ョ謨ー
+ 1 3+n 0 逡ェ逶ョ縺ョ鬆逶ョ (n 縺ッ繝励Μ繝ウ繧ソ繧ウ繝シ繝峨ョ髟キ縺)
+ : : :
+
+蜷譁蟄怜怜梛縺ョ鬆逶ョ縺ッ縲
+
+ <- 1byte -><------ 2byte -------><--------- n bytes --------->
+ +----------+----------+----------+----------+---- ..... ------+
+ | 鬆逶ョ逡ェ蜿キ | 髟キ縺(n) | 蛟、 |
+ +----------+----------+----------+----------+---- ..... ------+
+
+縲悟、縲阪ッ縲∵ャ。縺ョ 2 遞ョ鬘槭ョ繝悶Ο繝繧ッ縺 1 谺。蜈逧縺ォ n 繝舌う繝井クヲ繧薙〒縺繧九
+
+(1) 逕溘ョ繝シ繧ソ
+ 縺昴ョ縺セ縺セ繝励Μ繝ウ繧ソ縺ォ騾√k繧ウ繝シ繝峨ゅ励Μ繝ウ繧ソ螳夂セゥ縺ョ繧ス繝シ繧ケ荳ュ縺ョ縲―b2 縺ェ縺ゥ縺ョ
+ 譖ク蠑丈サ倥″蜃コ蜉帑サ・螟悶ョ驛ィ蛻縲 127 繝舌う繝医r雜縺医k蝣エ蜷医↓縺ッ蛻蜑イ縺輔l繧九
+
+ <- 1byte -><--------- m bytes --------->
+ +----------+----------+---- ..... ------+
+ | 髟キ縺(m) | 蛟、 |
+ +----------+----------+---- ..... ------+
+ 縺溘□縺励髟キ縺 m 縺ッ縲 1 <= m <= 127縲
+
+(2) 譖ク蠑丈サ倥″蜃コ蜉
+ 蠑上r隧穂セ。縺励√◎縺ョ邨先棡繧呈欠螳壹&繧後◆譖ク蠑上↓蠕薙▲縺ヲ繝励Μ繝ウ繧ソ縺ォ騾√k縲ゅ励Μ繝ウ
+ 繧ソ螳夂セゥ縺ョ繧ス繝シ繧ケ荳ュ縺ョ \b2 縺ェ縺ゥ縺ョ驛ィ蛻縲
+
+ <- 1byte -><- 1byte -><--------- n bytes --------->
+ +----------+----------+----------+---- ..... ------+
+ | 譖ク蠑 | 髟キ縺(m) | 蠑 |
+ +----------+----------+----------+---- ..... ------+
+
+ 縲梧嶌蠑上阪ッ蠢縺壹∵怙荳贋ス阪ン繝繝医′遶九▲縺ヲ縺繧九ょセ薙▲縺ヲ縲1 繝舌う繝育岼縺ョ譛荳
+ 菴阪ン繝繝医r隕九l縺ー逕溘ョ繝シ繧ソ縺ェ縺ョ縺区嶌蠑丈サ倥″蜃コ蜉帙↑縺ョ縺九ョ蛹コ蛻・縺後〒縺阪k縲
+
+ 縺セ縺溘∫函繝繝シ繧ソ縺ョ蝣エ蜷医→蜷医o縺帙k縺ィ蜷繝悶Ο繝繧ッ縺ョ蜈磯ュ繝舌う繝医ッ 1 莉・荳
+ 255 莉・荳九ョ蛟、繧貞叙繧翫0 縺ィ縺ェ繧九%縺ィ縺ッ縺ェ縺 (逕溘ョ繝シ繧ソ縺ッ蠢縺 1 繝舌う繝井サ・荳
+ 蜷ォ縺セ繧後※縺翫j縲∵嶌蠑上ッ譛荳贋ス阪ン繝繝医′遶九▲縺ヲ縺繧)縲ょセ薙▲縺ヲ縲√%縺ョ縺薙→繧貞茜
+ 逕ィ縺励※縲*.cfg 隱ュ縺ソ霎シ縺ソ譎ゅ↓繧ウ繝シ繝峨ョ譛蠕後↓ 0 繧 1 繝舌う繝井サ倥¢蜉縺医※鄂ョ縺
+ 縺ー縲∝コ蜉帶凾縺ォ縺ッ 0 縺ァ蟋九∪繧九ヶ繝ュ繝繧ッ縺ォ蜃コ莨壹≧縺セ縺ァ繝励Μ繝ウ繧ソ繧ウ繝シ繝牙梛縺ョ繝繝シ
+ 繧ソ縺ョ蜃ヲ逅繧堤カ壹¢繧後ー繧医>縺薙→縺ォ縺ェ繧翫∝ヲ逅縺檎ー。蜊倥↓縺ェ繧九
+
+ 髟キ縺 m 縺 255 繧定カ縺医k繧医≧縺ェ蠑上ッ險倩ソー縺ァ縺阪↑縺縲る聞縺輔′ 255 繝舌う繝医ョ蠑
+ 縺ィ縺ッ縲∵焚 128縲∵シ皮ョ怜ュ先焚 127 縺ィ縺縺貍皮ョ励〒縺ゅj縲√%繧後〒繧り。ィ迴セ縺ァ縺阪↑縺繧
+ 縺縺ェ蠑上ッ蠢隕√↑縺縺ァ縺ゅm縺縲
+
+ (A) 譖ク蠑
+ 蜷繝薙ャ繝医ッ莉・荳九ョ繧医≧縺ォ縺ェ縺」縺ヲ縺繧九
+
+ <--1--><--- 3 ---><-1--><--- 3 --->
+ +-----+----------+-----+----------+
+ | 1 | 蠖「蠑 | ISO | 譯∵焚 |
+ +-----+----------+-----+----------+
+ 縲悟ス「蠑上阪ッ縲
+ 繝舌う繝翫Μ 荳倶ス阪ヰ繧、繝 -> 荳贋ス阪ヰ繧、繝
+ 繝舌う繝翫Μ 荳贋ス阪ヰ繧、繝 -> 荳倶ス阪ヰ繧、繝
+ ASCII 繝繧ュ繧ケ繝 8 騾イ謨ー
+ ASCII 繝繧ュ繧ケ繝 10 騾イ謨ー
+ ASCII 繝繧ュ繧ケ繝 16 騾イ謨ー 螟ァ譁蟄
+ ASCII 繝繧ュ繧ケ繝 16 騾イ謨ー 蟆乗枚蟄
+ 譁蟄怜 (迚ケ谿雁ス「)
+ 縲梧。∵焚縲 (蠖「蠑上′迚ケ谿雁ス「莉・螟悶ョ蝣エ蜷医↓譛牙柑)
+ 1 ス 7 譯∵焚
+ 0 蜿ッ螟蛾聞 (蠖「蠑上′ ASCII 繝繧ュ繧ケ繝医ョ蝣エ蜷医ョ縺ソ)
+ 縲栗SO縲 (蠖「蠑上′ ASCII 繝繧ュ繧ケ繝医ョ蝣エ蜷医↓縺ョ縺ソ譛牙柑)
+ 縺薙ョ bit 縺 1 縺九▽縲√悟ス「蠑上阪′ ASCII TEXT 縺ョ縺ィ縺阪
+ 蜃コ蜉帙ョ譛邨よ。√ョ譁蟄励さ繝シ繝峨↓ 16 (10h)繧貞刈縺医k縲ゆセ九∴縺ー縲
+ 1000 縺ィ縺縺謨ー蛟、繧 10 騾イ ASCII 縺ァ蜃コ蜉帙@縺溘>蝣エ蜷医!SO
+ 繝薙ャ繝医′遶九▲縺ヲ縺繧九→ "100@" 縺ィ縺縺 ASCII 譁蟄怜励′蜃コ蜉
+ 縺輔l繧九
+
+ (B) 蠑
+ 1 繝舌う繝医r蜊倅ス阪→縺励※莉・荳九ョ繧医≧縺ェ騾繝昴シ繝ゥ繝ウ繝芽ィ俶ウ輔〒 m 繝舌う繝医ョ
+ 髟キ縺輔□縺題ィ倥&繧後※縺繧九
+
+ (a) 0 ス 127 謨ー蛟、縲ゅ◎縺ョ縺セ縺セ謨エ謨ー縺ィ縺励※蜃ヲ逅縺吶l縺ー繧医>縲
+ (b) 128 ス 159 蜀驛ィ螟画焚縲りァ」蜒丞コヲ縺ェ縺ゥ縲ら分蜿キ縺ァ謖螳壹&繧後k縲
+ (c) 160 ス 191 迴セ蝨ィ譛ェ菴ソ逕ィ縲(莠育エ貂)
+ (d) 192 ス 255 貍皮ョ怜ュ舌ら分蜿キ縺ァ謖螳壹&繧後k縲
+
+ 謨ー蛟、縺ッ 127 縺セ縺ァ縺励°陦ィ縺帙↑縺縺後√%繧後ッ optcfg 蛛エ縺ァ 127 莉・荳九ョ謨ー
+ 繧堤オ縺ソ蜷医o縺帙※縲∝酔縺伜、繧堤函謌舌☆繧九h縺縺ェ蠑上↓螟画鋤縺輔l繧九ゆセ九∴縺ー縲16
+ 騾イ 7ff0 縺ッ縲
+
+ x1<14|x7f<7|x70
+
+ ( C 險隱槭ョ蠑上〒陦ィ縺帙ー縲 (0x01 << 14) | (0x7f << 7) | 0x70 )
+
+ 縺ィ縺縺蠑上〒 *.cfg 荳ュ縺ォ菫晏ュ倥&繧後k縲ょセ薙▲縺ヲ縲√い繝励Μ繧ア繝シ繧キ繝ァ繝ウ蛛エ縺ァ縺ッ
+ 迚ケ蛻・縺ェ蜃ヲ逅繧定。後≧蠢隕√ッ縺ェ縺上∽サ悶ョ貍皮ョ怜酔讒倥↓蜃ヲ逅縺吶l縺ー繧医> (縺昴b縺
+ 繧ゅい繝励Μ繧ア繝シ繧キ繝ァ繝ウ蛛エ縺九i縺ッ隕句縺代′縺、縺九↑縺)縲
+
+ 蠑上ョ隧穂セ。縺ッ莉・荳九ョ繧医≧縺ォ縺励※陦後∴縺ー繧医>縲
+
+ 縺セ縺壹√≠繧狗ィ句コヲ縺ョ豺ア縺輔r謖√▲縺溘せ繧ソ繝繧ッ繧堤畑諢上@縲∵ャ。縺ョ縺薙→繧偵悟シ上
+ 縺ョ譛蠕後∪縺ァ郢ー繧願ソ斐☆縲(繧ケ繧ソ繝繧ッ縺ョ豺ア縺輔ッ縲√≠繧峨°縺倥a豎コ繧√※縺翫″縲√せ
+ 繧ソ繝繧ッ縺後≠縺オ繧後k繧医≧縺ェ隍髮代↑險育ョ励ッ optcfg 縺ァ繝√ぉ繝繧ッ縺励※霍ウ縺ュ縺ヲ縺
+ 縺)
+
+ (a) 謨ー蛟、 (譛荳贋ス阪ン繝繝医′遶九▲縺ヲ縺縺ェ縺) 縺ァ縺ゅl縺ー縺昴ョ蛟、繧偵◎縺ョ縺セ縺セ繧ケ
+ 繧ソ繝繧ッ縺ォ遨阪縲
+ (b) 螟画焚 (譛荳贋ス阪ン繝繝医′遶九▲縺ヲ縺翫j縺昴ョ谺。縺ョ繝薙ャ繝医′遶九▲縺ヲ縺縺ェ縺)
+ 縺ァ縺ゅl縺ー縲√◎縺ョ蛟、繧偵せ繧ソ繝繧ッ縺ォ遨阪縲
+ (c) 貍皮ョ怜ュ (荳贋ス 2 繝薙ャ繝医′遶九▲縺ヲ縺繧) 縺ァ縺ゅl縺ー縲√せ繧ソ繝繧ッ繝医ャ繝
+ 縺九i 2 縺、縺ョ謨ー繧偵→縺」縺ヲ縺阪※貍皮ョ励r陦後>縲∫オ先棡繧偵せ繧ソ繝繧ッ縺ォ遨阪縲
+
+ 譛邨ら噪縺ォ繧ケ繧ソ繝繧ッ繝医ャ繝励↓縺ゅk繧ゅョ繧偵梧嶌蠑上阪↓蠕薙▲縺ヲ蜃コ蜉帙☆繧後ー繧
+ 縺 (optcfg 縺ァ繝√ぉ繝繧ッ繧定。後▲縺ヲ縺翫¥縺ョ縺ァ 繧ケ繧ソ繝繧ッ縺ォ菴吝縺ェ " 縺斐∩ "
+ 縺梧ョ九k縺薙→縺ッ縺ゅj縺医↑縺縲ょ酔讒倥↓繧ケ繧ソ繝繧ッ縺後い繝ウ繝繝シ繝輔Ο繝シ縺吶k縺薙→繧
+ 縺ゅj縺医↑縺 ... 繝√ぉ繝繧ッ縺ョ蠢隕√↑縺)縲
+
+ (C) 迚ケ谿翫↑縲梧嶌蠑上
+ 繝サ 譁蟄怜怜コ蜉
+ 譖ク蠑城Κ縺ョ縲悟ス「蠑上阪ョ蛟、縺 7 縺ァ縺ゅk蝣エ蜷医↓縺ョ縺ソ縲∝シ上ョ謖螳壹ョ蠕後↓
+ 譁蟄怜励ョ謖螳壹′邯壹¥縲よ枚蟄怜玲欠螳夐Κ縺ッ縲
+
+ <- 1byte -><--------- n bytes --------->
+ +----------+----------+---- ..... ------+
+ | 髟キ縺(m) | 蛟、 |
+ +----------+----------+---- ..... ------+
+ 縺溘□縺励髟キ縺 m 縺ッ縲 0 <= m <= 255縲
+
+ 縺ィ縺縺蠖「繧偵@縺ヲ縺繧九ゅ悟ス「蠑上阪′ 7 縺ョ譎ゅ↓縺ッ蠑上r隧穂セ。縺励◆邨先棡繧
+ 謨ー蛟、縺ィ縺励※蜃コ蜉帙☆繧倶サ」繧上j縺ォ縲∝シ上ョ隧穂セ。邨先棡繧貞屓謨ー縺ョ謖螳壹→縺ソ縺ェ縺励
+ 縺昴ョ蝗樊焚縺縺代%縺薙〒謖螳壹&繧後◆譁蟄怜励r繝励Μ繝ウ繧ソ縺ォ騾√k (繧ス繝シ繧ケ繝
+ 繧。繧、繝ォ荳ュ縺ョ譖ク蠑 \st 縺ォ蟇セ蠢)縲
+
+
+========================================================================
+笳 シ費シ *.src <--> *.cfg 逶ク莠貞、画鋤繝励Ο繧ー繝ゥ繝 (optcfg)
+========================================================================
+
+ dviprt 縺ッ 繝舌う繝翫Μ蠖「蠑上ョ繝輔ぃ繧、繝ォ縲*.cfg 縺励°隗」驥医〒縺阪∪縺帙s縲ゅユ繧ュ繧ケ繝亥ス「
+蠑上ョ繝輔ぃ繧、繝ォ (*.src) 繧 dviprt 縺ァ菴ソ縺蝣エ蜷医↓縺ッ蠢縺 optcfg 縺ァ *.cfg 縺ォ螟画鋤
+縺励※縺上□縺輔>縲ゅ%縺ョ莉墓ァ倥↓縺翫>縺ヲ諡。蠑オ縺輔l縺溘b縺ョ繧堤畑縺縺 *.src 縺ョ螟画鋤縺ォ縺ッ
+optcfg 縺ョ version 3.0 莉・髯阪′蠢隕√〒縺吶
+
+-------------
+笘 4.1 菴ソ縺譁ケ
+-------------
+
+ optcfg [繧ェ繝励す繝ァ繝ウ] SRC繝輔ぃ繧、繝ォ1 [SRC繝輔ぃ繧、繝ォ2 ... SRC繝輔ぃ繧、繝ォN]
+
+ '[' 縺ィ ']' 縺ァ蝗イ縺セ繧後◆驛ィ蛻縺ッ逵∫払縺悟庄閭ス縺ェ縺薙→繧定。ィ縺励※縺縺セ縺吶ゆク蠎ヲ縺ォ隍謨ー
+縺ョ繝輔ぃ繧、繝ォ繧貞、画鋤縺吶k蝣エ蜷医↓縺ッ繝輔ぃ繧、繝ォ蜷阪r縺ェ繧峨∋縺ヲ縺上□縺輔>縲ょ・蜉帙ヵ繧。繧、繝ォ縺ョ
+諡。蠑オ蟄舌′繝繝輔か繝ォ繝 (繝舌う繝翫Μ縺ッ *.cfg縲√た繝シ繧ケ縺ッ *.src) 縺ィ蜷後§蝣エ蜷医↓縺ッ逵∫払
+縺悟庄閭ス縺ァ縺吶
+
+ 萓 1). escp_24.src -> escp_24.cfg 縺ョ螟画鋤繧定。後≧
+
+ optcfg escp_24.src
+
+ 萓 2). 蟇。鮟吶Δ繝シ繝峨〒 escp_24.cfg 縺ィ pc-pr_24.cfg 繧偵た繝シ繧ケ繝輔ぃ繧、繝ォ縺ォ螟画鋤
+
+ optcfg -r -q escp_24 pc-pr_24
+
+---------------------
+笘 4.2 繧ェ繝励す繝ァ繝ウ荳隕ァ
+---------------------
+
+ 繝サ -r *.cfg -> *.src 螟画鋤繧定。後>縺セ縺吶*.cfg 縺ッ譌ァ莉墓ァ倥ョ繧ゅョ繧ょ女縺台サ倥¢縺セ
+ 縺吶′逕滓舌&繧後k *.src 縺ッ譁ー莉墓ァ倥ョ繧ゅョ縺ァ縺吶
+ 繝サ -q 蟇。鮟吶Δ繝シ繝峨*.cfg -> *.src 螟画鋤縺ョ髫帙↓繝輔ぃ繧、繝ォ縺ョ荳頑嶌縺阪ョ遒コ隱阪r豎
+ 繧√∪縺帙s縲
+
+-----------------
+笘 4.3 繧ウ繝ウ繝代う繝ォ
+-----------------
+
+ optcfg.c dviprcfg.c s_cfg.h s_cfgblt.h 繧偵き繝ャ繝ウ繝医ョ繧」繝ャ繧ッ繝医Μ縺ォ縺翫>縺ヲ縲
+C 繧ウ繝ウ繝代う繝ゥ縺ォ optcfg.c 繧貞ヲ逅縺輔○縺セ縺 (dviprcfg.c 縺ィ s_cfg.h s_cfgblt.h
+縺ッ optcfg.c 縺九i include 縺輔l縺セ縺)縲
+
+ 萓 1). bcc optcfg.c
+ 萓 2). cc -O -o optcfg optcfg.c
+
+ optcfg.c 縺ッ UN*X 縺ョ cc 縺ァ繧ゅさ繝ウ繝代う繝ォ縺ァ縺阪k縺薙→繧呈э蝗ウ縺励※譖ク縺九l縺ヲ縺縺セ
+縺吶′螳滄圀縺ォ繧ウ繝ウ繝代う繝ォ縺ョ繝繧ケ繝医r陦後▲縺溘o縺代〒縺ッ譛峨j縺セ縺帙s縲ゆク榊キ蜷医′縺ゅl縺ー縺
+荳蝣ア縺上□縺輔>縲
+
+=========================== End of document ============================
diff --git a/Master/tlpkg/dviout/CFG/optcfg.dvi b/Master/tlpkg/dviout/CFG/optcfg.dvi
new file mode 100644
index 00000000000..834e67b6393
--- /dev/null
+++ b/Master/tlpkg/dviout/CFG/optcfg.dvi
Binary files differ