                                                                    
                dviprt Vv^`t@C dl                
                            version S.2                             

                          Copyright (C) 1994 ǎRaT (ASAYAMA Kazunori)
                                                    TPM03937@pcvan.or.jp
                                               GHF01532@niftyserve.or.jp

========================================================================
 PD Tv
========================================================================

  ́̕Adviprt ̐Vv^`t@C̎dlłB

========================================================================
 QD v^`t@C̃\[Xt@C (*.src) ̎dl
========================================================================

-----------
 2.1 
-----------

]̍ڂɂẮÂ܂܌pBȊOɁAȉ̍ڂǉB

 E encode
      rbgC[Wf[^̃GR[h̎ށBFAX, HEX (upper_position
     HEX_MODE Ɠl), PCL1 Ȃǂw肷B
 E y_dpi (version 2)
      c̉𑜓xBdviprt  -DPI IvVɑΉB

܂A]AK{ȉ̍ڂIvVɕύXB

 E maximal_unit
      w莞ɂ́A\ɑ傫ȒlB

 E minimal_unit
      w莞ɂ́Ao̓R[h̑傫ŏɂȂł낤lB

-----------------------------
 2.2 l̏o̓tH[}bg
-----------------------------

  ]̃tH[}bg̏ʌ݊ƂB

  ] \b2,\B2,\d3,\d4,\d5,\d? gāAȉ̂悤ȃtH[}bg
pӂB ̒ 'n' ͂̌\̂ƂA1 <= n <= 7A܂ n
== ? ł̂ƂB

(1) \bn  oCi  -> ʃoCg
(2) \Bn  oCi  -> ʃoCg
(3) \on   8 i ASCII eLXg
(4) \dn  10 i ASCII eLXg
(5) \hn  16 i ASCII eLXg ()
(6) \Hn  16 i ASCII eLXg (啶)
(7) \st  uv̒l̉񐔂o (ڂ͌q)

---------------
 2.3 ̕\L
---------------

  ͈ȉ̗vf琬B

(1) 
     E 'x' ܂ 'X' Ŏn܂鐔     16 i\L
          x ꕶꍇAq́u̐ΈʒuvƂ݂Ȃ
        Ă܂̂Œӂ邱ƁB
     E '0' Ŏn܂鐔                 8 i\L
     E '0' ȊO̐Ŏn܂鐔      10 i\L
(2) ϐ
     E w  o͕ (dots)
     E h  o͍ (dots)
     E r  ̉𑜓x (dpi)
     E R  c̉𑜓x (dpi)
     E p  ʂy[Wԍ
     E v  pins ̍ڂ̒l 8 Ŋ (o[WƂ̌݊̂
        ɗp)
     E c  constant ̍ڂŒ`ꂽl (o[WƂ̌݊̂߂ɗp
        )
     E s  o̓f[^̃oCg
          send_bit_image, bit_row_header, after_bit_image ̒ł̂ݎg
        B
     E d  ̑ (󎚃f[^␅XLbv̐̃hbg)
          send_bit_image, bit_row_header, after_bit_image, skip_spaces
        ̒ł̂ݎgB
     E x  ̐ΓIȈ󎚈ʒu (dot)
          R[ho͂钼Ö󎚈ʒuwĂB]āA
        send_bit_image, bit_row_header,after_bit_image,skip_spaces 
        󎚈ʒuړ̈ʒu~ x ̑ (x+d) p
        邱ƁBx ̒l after_bit_image  skip_spaces o͂ɍX
        VB NON_MOVING ̃v^̏ꍇAafter_bit_image 
        ł͍XV͂ꂸ skip_spaces o͂Ƃɂ̂ݍXV
        (܂ۂ̃v^̏ԂɈvƂ)B
     E y  ̐ΓIȈ󎚈ʒu (dot)
          x lAR[ho͂钼ÖʒuwĂBl line_feed
        o͂邲ƂɍXVAform_feed o͂ 0 Ƀ
        ZbgB
(3) Zq
         + Z          | _a
         - Z          & _
         * Z          ^ rI_a
         / Z          > EVtg
         % ]          < Vtg
(4) J '('   ')'

  gݍ킹āuv`Buv̕\L̓rɋ󔒕
ł͂ȂȂB

  ́Aʏ̒uL@ŋLqBAZq̊ԂɁuD揇ʂ͂ȂvA
珇ɉ߂BႦ΁Aȉ̂悤Ȃ̂uv̗B

   1).  p
   2).  (w+7)/8
   3).  r+R*128

  Ṓ̗AIɂ r+(R*128) ̈Ӗł邪Ał́A(r+R)*128
Ɖ߂BO҂̂悤ɉ߂̂ł΁Aʂp r+(R*128)
ƖIɉZw肷邩AR*128+r Ƃ΂悢B

  ]̏IvVA'D'A'DD'A'DDD'A'T'A'M'AɊւĂ͎ɂ\
œʂ𓾂邱Ƃ\ (optcfg łƁAɂ\
ɕϊ)B

   1). \b2DDD
         \b2,d>3
   2). \d?M
         \d?,d*c
   3). \d4DDT
         \d4,(d*v)>3

  ŹAAvP[Vł͕Ȃ 2 byte ŌvZB]āA
2 byte Ȃŕ\͈͂͂ݏo悤ȉZɂĂ͂̌
ʂ͕ۏ؂ȂB

---------------------------
 2.4 pl̏o
---------------------------

  ۂ send_bit_image ȂǂŎw肷ɂ́AʓIɂ́A

    format,expr

ƁAƎ ',' ŋ؂ċLqB',' ̑Oɂ͋󔒕uĂ
ȂȂB

   \d?,(w+7)/8

]ʂ̒l (ϐ d ̒l) o͂ꍇɂ format ݂̂w肷
΂悢 (܂]ʂ̎w@)B

   \b2DDD

  Aformat  \st ̏ꍇɂ́A]ʂʂ𐔒lƂďo
̂ł͂ȂA񐔂̎włƂ݂ȂẲ񐔕Aw肳ꂽ
o͂B

  ̏ꍇAo̓tH[}bg̎w̕@قȂA

    \st,expr,"strings"

̂悤ɁAŌ u,"strings"v KvɂȂB strings ̕o
镶̎wŁA_uNEH[e[V u"vň͂ށB"strings" ̓
͊{IɃGXP[vV[PXȂǂ́u"v̊OƓL@gA
͖BAu"v̂̂o͕Ɋ܂߂ꍇɂ
u\"v̂悤Ɂu\vŃGXP[vKvB܂A񒆂ł͏w
ɂ鐔l̏o͎͂włȂB

  Ⴆ΁A

    bit_row_header :  \st,"This \s is \s a \s pen.\n"

ƏĂ΁AX^s̐擪ɁÃ̕hbg񂾂 uThis is a
pen.vƂ񂪏o͂B


---------------------------------
 2.5 GXP[vV[PX̊g
---------------------------------

  ]A\SP  \ESC p\AVɎ C  like Ȃ̂
g悤ɂBA\ ̈ꕶɌĂ '\' ̂̂\AƂ
]̎dlp ('\' ̂̂\ɂ C ł \\  2 d
Kv)B

    \n  LF          \t  H-TAB
    \r  CR          \s  SPACE
    \f  FF          \e  ESC
    \v V-TAB        \"   "

-----------------------
 2.6 `t@C̗
-----------------------

 E PBM raw tH[}bg

        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

 E StarFax tH[}bg

        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
                   ;      ^^^   ^^^^^^^^^
                   ;      FAXo   -FAXIvṼftHg

========================================================================
 RD v^`t@C̃oCi (*.cfg)̎dl
========================================================================

  v^`t@C̐l (ItZbgAoCgȂ) ́ÃoC
gɊւ炸AʃoCg -> ʃoCg̏ɋL^ĂBȂASĂ
l͕ȂB

  ݒ荀ڂ́A^A^Av^R[h^ 3 ނLAꂼ
A^ 0`254 ̍ڔԍĂB

  ږƍڔԍ̑Ή́Awb_ s_cfg.h QƂ̂ƁB

-----------------
 3.1 Ŝ̍\
-----------------

    +----------------------+
    |       wb_       |
    +----------------------+
    |         C         |
    +----------------------+
    |      ^      |
    +----------------------+
    |         C         |
    +----------------------+
    |     ^     |
    +----------------------+
    |         C         |
    +----------------------+
    | v^R[h^ |
    +----------------------+
    |         C         |
    +----------------------+

---------------
 3.2 wb_
---------------

    ItZbg  oCg
            0          2   }WbNio[
            2          2   o[Wio[
            4          4   l^̍ڒl̈ʒũItZbg (t@C擪)
            8          4   ^̍ڒl̈ʒũItZbg
           12          4   v^R[h^̍ڒl̈ʒũItZbg
           16          1    'S'
           17          1   l 0xFF
           18          1   l 0xFF

-----------
 3.3 C
-----------

  oCgłĂ悢BႦ΁ARgAvP[V
̂߂̏ȂǁBA҂ɂĂ͌݊̊֌WAv^R[h
̐ɉe܂߂邱Ƃ͍D܂ȂB

-------------------
 3.4 ^̍
-------------------

    ItZbg  oCg
             0         1   ^̍ڂ̐ (0 ` 255)
             1         3   1 Ԗڂ̍
             4         3   2 Ԗڂ̍
             7         3   3 Ԗڂ̍
             :         :         :

e^̍ڂ́A

         <- 1 byte -><------ 2 byte ------>
         +----------+----------+----------+
         | ڔԍ |         l          |
         +----------+----------+----------+
  ڔԍƃt@C̏Ƃ͈vĂƂ͌ȂB܂Aڔԍ
́AAĂƂȂBAvP[Vł́AKڔԍm
߂ĒlǂݍޕKvB̌^̍ڂɂĂlB

  pins ̍ڂ s̐ 8 ŊlL^ĂBupper_position
̍ڂ́Aȉ̂悤ȃrbgtB[hƂČB

          15            8     7   6   5   4           0
         +-----------------+--------+---+---------------+
         |      gp     |sz|   |    gp     |
         +-----------------+--------+---+---------------+
                                      
                                   NON_MOVING
         sz̈Ӗ͈ȉ̂ƂB
              +------ rbg̔]
              | +---- sD
              | |
              0 0   HIGH_BIT
              0 1   LEFT_IS_HIGH
              1 0   LOW_BIT
              1 1   LEFT_IS_LOW

---------------------
 3.5 ^̍
---------------------

    ItZbg  oCg
             0         1   ^̍ڂ̐
             1       3+n   0 Ԗڂ̍ (n ͕̒)
             :         :         :

e^̍ڂ́A

         <- 1byte  -><------ 2byte -------><--------- n bytes --------->
         +----------+----------+----------+----------+---- ..... ------+
         | ڔԍ |        (n)      |            l              |
         +----------+----------+----------+----------+---- ..... ------+
̍Ōɂ́Anull ͕tĂȂB

-----------------------------
 3.6 v^R[h^̍
-----------------------------

    ItZbg  oCg
             0         1   v^R[h^̍ڂ̐
             1       3+n   0 Ԗڂ̍ (n ̓v^R[h̒)
             :         :         :

e^̍ڂ́A

         <- 1byte  -><------ 2byte -------><--------- n bytes --------->
         +----------+----------+----------+----------+---- ..... ------+
         | ڔԍ |        (n)      |            l              |
         +----------+----------+----------+----------+---- ..... ------+

ulv́A 2 ނ̃ubN 1 I n oCgłB

(1) f[^
      ̂܂܃v^ɑR[hBv^`̃\[X́A\b2 Ȃǂ
    to͈ȊO̕B 127 oCg𒴂ꍇɂ͕B

             <- 1byte  -><--------- m bytes --------->
             +----------+----------+---- ..... ------+
             |  (m) |            l              |
             +----------+----------+---- ..... ------+
            A m ́A 1 <= m <= 127B

(2) to
      ]Ǎʂw肳ꂽɏ]ăv^ɑBv
    ^`̃\[X \b2 Ȃǂ̕B

             <- 1byte  -><- 1byte -><--------- n bytes --------->
             +----------+----------+----------+---- ..... ------+
             |      |  (m) |                          |
             +----------+----------+----------+---- ..... ------+

      uv͕KAŏʃrbgĂB]āA1 oCgڂ̍ŏ
    ʃrbgΐf[^Ȃ̂to͂Ȃ̂̋ʂłB

      ܂Af[^̏ꍇƍ킹ƊeubN̐擪oCg 1 ȏ
    255 ȉ̒lA0 ƂȂ邱Ƃ͂Ȃ (f[^͕K 1 oCgȏ
    ܂܂ĂA͍ŏʃrbgĂ)B]āÂƂ
    pāA*.cfg ǂݍݎɃR[h̍Ō 0  1 oCgtĒu
    ΁Ao͎ɂ 0 Ŏn܂ubNɏo܂Ńv^R[h^̃f[
    ^̏𑱂΂悢ƂɂȂAȒPɂȂB

     m  255 𒴂悤Ȏ͋LqłȂB 255 oCg̎
    Ƃ́A 128AZq 127 ƂZłAł\łȂ
    Ȏ͕KvȂł낤B

    (A) 
          erbg͈ȉ̂悤ɂȂĂB

                   <--1--><--- 3 ---><-1--><--- 3 --->
                   +-----+----------+-----+----------+
                   |  1  |   `   | ISO |      |
                   +-----+----------+-----+----------+
                   u`v́A
                       oCi ʃoCg -> ʃoCg
                       oCi ʃoCg -> ʃoCg
                       ASCII eLXg 8 i
                       ASCII eLXg 10 i
                       ASCII eLXg 16 i 啶
                       ASCII eLXg 16 i 
                        (`)
                   uv (``ȊȌꍇɗL)
                       1 ` 7   
                            0   ϒ (` ASCII eLXg̏ꍇ̂)
                   uISOv (` ASCII eLXg̏ꍇɂ̂ݗL)
                        bit  1 Au`v ASCII TEXT ̂ƂA
                       o͂̍ŏI̕R[h 16 (10h)BႦ΁A
                       1000 Ƃl 10 i ASCII ŏo͂ꍇAISO
                       rbgĂ "100@" Ƃ ASCII 񂪏o
                       B

    (B) 
          1 oCgPʂƂĈȉ̂悤ȋt|[hL@ m oCg
        LĂB

        (a) 0 ` 127   lB̂܂ܐƂď΂悢B
        (b) 128 ` 159   ϐB𑜓xȂǁBԍŎw肳B
        (c) 160 ` 191   ݖgpB(\)
        (d) 192 ` 255   ZqBԍŎw肳B

          l 127 ܂ł\ȂA optcfg  127 ȉ̐
        gݍ킹āAl𐶐悤ȎɕϊBႦ΁A16
        i 7ff0 ́A

                      x1<14|x7f<7|x70

                   ( C ̎ŕ\΁A (0x01 << 14) | (0x7f << 7) | 0x70 )

        Ƃ *.cfg ɕۑB]āAAvP[Vł
        ʂȏsKv͂ȂẢZlɏ΂悢 (
        AvP[V͌Ȃ)B

          ̕]͈ȉ̂悤ɂčs΂悢B

          ܂Ax̐[X^bNpӂÂƂuv
        ̍Ō܂ŌJԂB(X^bN̐[́A炩ߌ߂ĂAX
        ^bNӂ悤ȕGȌvZ optcfg Ń`FbNĒ˂Ă
        )

        (a) l (ŏʃrbgĂȂ) ł΂̒l̂܂܃X
            ^bNɐςށB
        (b) ϐ (ŏʃrbgĂ肻̎̃rbgĂȂ)
            ł΁A̒lX^bNɐςށB
        (c) Zq ( 2 rbgĂ) ł΁AX^bNgbv
             2 ̐ƂĂĉZsAʂX^bNɐςށB

          ŏIIɃX^bNgbvɂ̂uvɏ]ďo͂΂
         (optcfg Ń`FbNsĂ̂ X^bNɗ] "  "
        c邱Ƃ͂肦ȂBlɃX^bNA_[t[邱Ƃ
        肦Ȃ ... `FbN̕KvȂ)B

    (C) ȁuv
         E o
              ́u`v̒l 7 łꍇɂ̂݁A̎w̌
            ̎w肪Bw蕔́A

                         <- 1byte  -><--------- n bytes --------->
                         +----------+----------+---- ..... ------+
                         |  (m) |            l              |
                         +----------+----------+---- ..... ------+
                          A m ́A 0 <= m <= 255B

            Ƃ`ĂBu`v 7 ̎ɂ͎]ʂ
            lƂďo͂ɁA̕]ʂ񐔂̎wƂ݂ȂA
            ̉񐔂Ŏw肳ꂽv^ɑ (\[Xt
            @C̏ \st ɑΉ)B


========================================================================
 SD *.src <--> *.cfg ݕϊvO (optcfg)
========================================================================

  dviprt  oCi`̃t@CA*.cfg ߂ł܂BeLXg`
̃t@C (*.src)  dviprt Ŏgꍇɂ͕K optcfg  *.cfg ɕϊ
ĂB̎dlɂĊgꂽ̂p *.src ̕ϊɂ
optcfg  version 3.0 ȍ~KvłB

-------------
 4.1 g
-------------

   optcfg [IvV]  SRCt@C1 [SRCt@C2 ... SRCt@CN]

  '['  ']' ň͂܂ꂽ͏ȗ\ȂƂ\Ă܂Bxɕ
̃t@Cϊꍇɂ̓t@CȂׂĂB̓t@C
gqftHg (oCi *.cfgA\[X *.src) Ɠꍇɂ͏ȗ
\łB

   1). escp_24.src -> escp_24.cfg ̕ϊs

  optcfg escp_24.src

   2). ǖك[h escp_24.cfg  pc-pr_24.cfg \[Xt@Cɕϊ

  optcfg -r -q escp_24 pc-pr_24

---------------------
 4.2 IvVꗗ
---------------------

 E -r   *.cfg -> *.src ϊs܂B*.cfg ͋dl̂̂󂯕t
     *.src ͐Vdl̂̂łB
 E -q   ǖك[hB*.cfg -> *.src ϊ̍ۂɃt@C̏㏑̊mF
    ߂܂B

-----------------
 4.3 RpC
-----------------

  optcfg.c dviprcfg.c s_cfg.h s_cfgblt.h JgfBNgɂāA
C RpC optcfg.c ܂ (dviprcfg.c  s_cfg.h s_cfgblt.h
 optcfg.c  include ܂)B

   1). bcc optcfg.c
   2). cc -O -o optcfg optcfg.c

  optcfg.c  UN*X  cc łRpCł邱ƂӐ}ďĂ
ۂɃRpC̃eXgs킯ł͗L܂Bs΂
񂭂B

=========================== End of document ============================
