[4]

> 動的再指定可能文字セット (DRCS) は、視覚的外観を、
[[使用]]に先立って指定し[[送信]]する[[文字集合]]とする。
このような指定は、明示又は[[引用]]によって行ってよい。
これらの[[文字]]は、[[アルファベット]]、
[[音節文字]]、[[表意文字]]、[[特殊記号]]又は[[絵文字]][[要素]]であってよい。
一度指定されると、 [[DRCS]] は、適切な[[エスケープシーケンス]]で
[[G0]]〜[[G3]] の[[符号要素]]として[[指示]]できる[[図形文字集合]]の[[レパートリ]]の一つとみなされる。
> [[DRCS]] を[[指示]]するために、 14.3 の[[指示]]機能を追加[[指示子]]の
[CODE(charname)@en[[[SELECT-DRCS]]]] とともに[[使用]]する。
[SRC[[[JIS X 0202]]:1998 14.4.1]]

[5]
仕様書:
- [[JIS X 0202]]:1998 
-- [CSECTION[14.4 動的再指定可能文字セット (DRCS)]]

[6] '''指示''':
[[DRCS]] を[[指示]]する時は、[[図形文字集合]]を[[指示]]する機能。
[CODE(charname)@en[[[G[VAR[n]]D[VAR[m]]]]]] ([[1バイト集合]]) または
[CODE(charname)@en[[[G[VAR[n]]DM[VAR[m]]]]]] ([[複数バイト集合]])
の2番目か3番目の[[中間バイト]] (94 / 96 と [[G0]]〜[[G3]] 
のいずれかを選ぶ[[中間バイト]] [CODE(char)[02/08]]〜[CODE(char)[02/15]]
の直後) に [CODE(charname)@en[[[SELECT-DRCS]]]] [[指示子]]
([CODE(char)[02/00]]) を指定します。

具体的な[[集合]]は [CODE(charname)@en[[[SELECT-DRCS]]]]
[[指示子]]の後に続く[[中間バイト]] (あれば) 
と[[終端バイト]]により識別されます。

[SRC[[[JIS X 0202]]:1998 14.4.2]]

[7] '''終端バイト''':
[CODE(charname)@en[[[SELECT-DRCS]]]] [[指示子]]を使う場合、
[[終端バイト]]はすべて ([CODE(char)@en[[[Ft]]]] も
[CODE(char)@en[[[Fp]]]] も) [[私用]]となり、
[[利用者]]が割当てられます。
[SRC[[[JIS X 0202]]:1998 14.4.2, 13.3.3]]

[12] 
[[終端バイト]]は [CODE(char)[04/00]] 
から順番に割当てることが推奨されています。
(集合の型毎に63個は余分な[[中間バイト]]なしで識別できます。)
[SRC[[[JIS X 0202]]:1998 14.4.2]]
と書いてありますが [CODE(char)@en[[[Fp]]]]
も使えるので、実は79個あります。

[13] [[7/14]] も[[空集合][空集合 (ISO/IEC 2022)]]でなく
[[DRCS]] になるようです。

- [1] [CODE[DRCS]] : Dynamic Redefinable Character Set の redefinable が、「再定義」ではなく「再指定」と訳されているのがまたなんとも。

[8] [Q@en[character set]] を [Q[文字集合]] と訳しているはずの
[[JIS X 0202]]:1998 がなぜか [[DRCS]] だけ
[Q[文字セット]]と訳しているのも不思議なところ。

- [2] さて、例えば DRCS な 94 [[図形文字集合]] ([[終端バイト]] [VAR[F]] = [CODE[04/00]] とする。) を [[G0]] に[[指示]]するとすると、その[[指示シーケンス]]は、 [CODE[ESC 02/08 02/00 04/00]] となります。同様に 94[SUP[2]] 図形文字集合 ([VAR[F]] = [CODE[04/01]]) を [[G1]] に指示するには、 [CODE[ESC 02/04 02/09 02/00 04/01]] となります。
- [3] >>2 更に例を出しましょうか? 96図形文字集合 ([VAR[F]] = [CODE[04/03]]) を [[G2]] に [CODE[ESC 02/14 02/00 04/03]]。96[SUP[3]] 図形文字集合 ([VAR[F]] = [CODE[06/15]]) を [[G3]] に [CODE[ESC 02/04 02/15 02/00 06/15]]。

[9]
>>6 なんと [[JIS X 0202]]:1998 では誤植で
[CODE(char)[00/20]] だなんて書いてあります[AA(fw)[wwwwww]]

[10] [[Teletext]] : 非 [[ISO/IEC 2022]]

[11] [[T.61]]:

- [[94集合]] [N[2/0]] [N[4/0]] - [N[2/0]] [N[7/14]]
- [[94[SUP[[VAR[n]]]]集合]] [N[2/0]] [N[4/0]] - [N[2/0]] [N[7/14]]


[14] 
[[DRCS]] が導入された当初の [[ISO 2022]] には、
[[複数バイト集合]]のバイト数の規定が何もありませんでした。

[15] 
現在の [[ISO/IEC 2022]] は[[終端バイト]]によって[[複数バイト集合]]のバイト数の制約があり、
[[DRCS]] にもそれが適用されると考えられます。
[SEE[ [[指示シーケンス]] ]]

[17] 
[[DEC-PPL]]
は[[指示シーケンス]]の
[[94集合]] [N[2/0]] [N[4/0]]
と
[[96集合]] [N[2/0]] [N[4/0]]
を
「Downloaded character set」
としていました。
[SRC[>>16]]

[18] 実質 [[DRCS]] ですが、独自仕様のように説明されています。
[[ISO/IEC 2022]] が [[DRCS]] を規定する前から使われていたのでしょうか。


[19] 
[[ARIB STD-B3]],
[[ARIB STD-B24]]
は次のものを使っています。

- [[94[SUP[2]]集合]] [N[2/0]] [N[4/0]]
- [[94集合]] [N[2/0]] [N[4/1]] - [N[2/0]] [N[4/15]]

[[ARIBの文字コード]]も参照。

[21] 
[[Videotex]] Data Syntax I

- [[94集合]] 2/0 4/1 DRCS I set
- [[94[SUP[2]]集合]] 2/0 4/0 DRCS II set

[22] 
[[Videotex]] Data Syntax II

- [[94集合]] 2/0 4/1 Chinese graphic DRCS
- [[94集合]] 2/0 4/0 Chinese character DRCS

[23] 
[[Videotex]] Data Syntax III

- [[96集合]] 2/0 7/10 Macro set
- [[96集合]] 2/0 7/11 DRCS

(特例により[[94集合]]用[[指示シーケンス]]でも[[指示]]できる、
[N[2/0]] を省略しても[[指示]]できる.
[SEE[ [[指示シーケンス]] ]])

[24] 
[[GB 8565.2]]
は
[[94集合]],
[[96集合]],
[[94[SUP[2]]集合]],
[[96[SUP[2]]集合]]を使うとし、
[[指示シーケンス]]を
[CODE(charname)@en[ESC]] [VAR[I]] [N[2/0]] [VAR[F]],
[CODE(charname)@en[ESC]] [N[2/4]] [VAR[I]] [N[2/0]] [VAR[F]]
とし、
[VAR[F]] 
は登録によるとしていました。

[25] 明記していませんが、他の箇所の書き方から推測すれば、
[[ISO-IR]] 登録をいっているようです。
[[ISO 2022]] の [[DRCS]] は登録不要ですが、
通常集合と同じように[[終端バイト]]を登録させる構想だった時期もあるのでしょうか。




[20] [[DRCS]] の文字の定義: [[T.62]], [[Teletext]], 
[[ARIB STD-B3]],
[[ARIB STD-B24]], [[Videotex]]

[26] [[DIS 10646]]

[27] [[DRCSTerm]] : [N[2/0]] [ [N[4/0]], [N[7/14]] ]
([[94集合]]用[[指示シーケンス]]ながらも[[96集合]])

[29] [[DRCS-SIXEL]] : [N[2/0]] [ [N[3/0]], [N[7/14]] ]
([[94集合]]用[[指示シーケンス]]ながらも[[96集合]]),
[N[2/0]] [ [N[3/0]], [N[7/14]] ]
([[96集合]])


[28] 
[[Unicode]] との対応関係: [[ARIBの文字コード]], [[DRCSTerm]]

[REFS[
- [16] [CITE[Digital Ansi-Compliant Print Protocol Lev 2 Program. Ref. Man. - PPLV2PMB.PDF]], [TIME[1995-08-31T14:32:02.000Z]], [TIME[2022-05-02T13:36:24.457Z]] <http://sup.xenya.si/sup/info/digital/MDS/jun99/Cd3/PRINTER/PPLV2PMB.PDF#page=162>
]REFS]


[30] [CITE@en[DECDLD—Dynamically Redefinable Character Sets]], [TIME[2022-12-11T09:38:53.000Z]] <https://vt100.net/docs/vt510-rm/DECDLD.html>