<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 6429</anchor>:1991 5.6</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite>Standard master - ECMA-48_5th_edition_june_1991.pdf</cite>, <time>2021-01-16T09:56:56.000Z</time>, <time>2022-05-15T02:24:05.708Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ecma-international.org/wp-content/uploads/ECMA-48_5th_edition_june_1991.pdf#page=27">https://www.ecma-international.org/wp-content/uploads/ECMA-48_5th_edition_june_1991.pdf#page=27</anchor-external></li></ul></refs></section><section><h1>意味</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end>
制御のための論理的な単位としてデータストリーム中に
現れる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ビット組合せ</anchor>の列。 control string。 
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS X 0211</anchor>-1994 4.2.25)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 
データ列中に出現して、制御目的の論理実体となる。
See also <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">区切子制御文字</anchor></p></section><section><h1>呼称</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS X 0211</anchor>‐1994 の訳語:</p><ul><li>control sequence
→<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">制御シーケンス</anchor></li><li>control string →<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">制御列</anchor></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 情報系の他の分野では「列」は sequence の訳に当ててることが多く、
「制御列」はわかりにくい。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 
「string」は通例「文字列」と訳すが、ここでは
control string
の中に
command string と character string 
があるという構造なので、
control string を「制御文字列」と訳すのもまた混乱を招く。</p></section><section><h1>構文</h1><ol><li>control-string = cmd-string / char-string</li><li>cmd-string = cmd-opening-delimiter cmd-string terminating-delimiter</li><li>char-string = char-opening-delimiter char-string terminating-delimiter</li><li>cmd-opening-delimiter = APC / DCS / OCS / PM</li><li>char-opening-delimter = SOS</li><li>cmd-string = 1*( %x08-0D / %x20-7E )</li><li>char-string = 1*&lt;OCTET except SOS and ST&gt;</li><li>terminating-delimiter = ST</li></ol><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> 
<code class="ABNF">char-string</code> で <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SOS</anchor></code> 
を除いてあるのは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">制御ストリング</anchor>は入れ子に出来ないってことでしょう。</p><p>Command string で <code class="ABNF">%x08-0D</code> が使えるってのは、
特定の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">C0</anchor> 文字集合に依存してる気がしますがねぇ。この区間は 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 6429//C0文字集合</anchor>と解釈するのがいいんでしょうか?</p><p>あ、そもそも、 command string や character string
の中身は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">制御ストリング</anchor>の外側と同じように<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号拡張法</anchor>を使って
文字を表現するものなんですかね?</p><p>え? <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">制御ストリング</anchor>を解釈する受信装置に依存ですか? うーむ。</p><p><code class="ABNF">%x0E-0F / %xA0-FE</code> の扱いについては、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">7ビット符号と8ビット符号</anchor>参照。
<code class="ABNF">char-string</code> は任意のビット組合せが使えるらしいですが、 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GR</anchor> はこの方法で 
<samp><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SO</anchor></code><var>...</var><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SI</anchor></code></samp> 
にするとして、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CR</anchor> はどうしたらいいんでしょう?
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ESC</anchor> <var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Fe</anchor></var></code> ですか...?</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 
command string の方は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ビット組合せ</anchor>が限定された「命令」で、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>は文字列というよりは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ビット組合せ</anchor>列の性質が強いみたいです。
一方で
character string の方は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>になってます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> 
command string の方が古くからあって後から
<code>SOS</code>
が追加されたみたいですが、
既存の <code>ST</code> を流用しようとして似た用法で少し意味の違う2つを統合してしまって、
説明がわかりにくくなってる気がします。</p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VT<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">VT100</title></anchor></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite>Digital Ansi-Compliant Print Protocol Lev 2 Program. Ref. Man. - PPLV2PMB.PDF</cite>, <time>1995-08-31T14:32:02.000Z</time>, <time>2022-05-02T12:20:35.927Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://sup.xenya.si/sup/info/digital/MDS/jun99/Cd3/PRINTER/PPLV2PMB.PDF#page=57">http://sup.xenya.si/sup/info/digital/MDS/jun99/Cd3/PRINTER/PPLV2PMB.PDF#page=57</anchor-external></p><p>#page=105</p><p>#page=123</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <cite xml:lang="ja">Control functions - akinomyoga/contra</cite>, <time>2021-12-31T23:05:20.000Z</time>, <time>2022-12-11T08:12:27.206Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://akinomyoga.github.io/contra/escseq.html">https://akinomyoga.github.io/contra/escseq.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DRCS</anchor></p></section></body></html>