VideotexString

VideotexString

T.100

[73] PDF

[74] PDF p.25

[75] 通常状態の SI/SO PDF p.26

[77] 制定当時の ISO 2022 には96集合がなかった

[76] alphageometric option の SI/SO PDF p.27

[78] opcode (operational code) + associated data parameters

[79] DRCS PDF p.38

[83] 仕様書が見るからに未完成.

T.101

[13] T.101 : International interworking for Videotex services, tsbmail, https://www.itu.int/rec/T-REC-T.101-199411-I/en

[49] PDFフォントが埋め込まれていないらしく非ASCII文字は信用してはいけない。

[27] Videotex は日米欧3規格の統合に失敗した結果 T.101 は3規格を「Data Syntax」と称して並列に規定することになりました。

[28] そして3規格すべて商業的に失敗しました。。。

[1] Videotex character set - Wikipedia, , https://en.wikipedia.org/wiki/Videotex_character_set

[12] Viewdata - Wikipedia, , https://en.wikipedia.org/wiki/Viewdata

VideotexString

[20] "complete code" environment (ISO/IEC 2022 complete coding environment) を切り替える DOCS T.101 PDF1 p.18, p.20, p.41:

[21] 各 Data Syntax から PCD を使って ISO/IEC 9281 picture coding environment の audio mode, photographic mode, VEMMI mode を利用可能。 T.101 PDF1 p.41

[19] ASN.1 VideotexString: ISO/IEC 2022, Data Syntax I, Data Syntax II, Data Syntax III DOCS で相互に切替可能。 T.101 PDF1 p.41

[29] 3規格を識別するのみならず相互切り替え可能にする必要性はあったのか、 需要はあったのか、実装可能だったのかは謎です。

[39] Data Syntax の方に言及がない ISO/IEC 9281 picture coding への対応も、 実態はあったのでしょうかね?

[40] DI で識別される Data Syntax I と PCD で始まる ISO/IEC 9281 は区別可能だけどアーキテクチャとしておかしい。 また Data Syntax I から他に切り替える時どこにどう DOCS を挿入すればいいのか何も書いていない。 本体の状態遷移図に従うなら DI で識別されるバイト長が満了した後に DOCSPCD を書けるということか。

[41] 本体の状態遷移図には Data Syntax I に切り替えたらまず rank を書く(?)とあるが、その構文が本体にも附属書にも書いてなく謎。 (rank という概念は Data Syntax I に存在してはいるのだが。)

[113] Data Syntax II の profile は状態遷移図に書いてあり、 附属書にも規定があるのですが。。。

terminal identification

[46] 端末状態と照会・回答できる。 Data Syntax 共通。 PDF1 p.36, PDF1 p.102, PDF2 p.379, PDF3 p.119

host 1/15 2/0 4/0

terminal 1/15 2/0 bytes

bytes は [ 4/0, 7/15 ] の列

bytes4/0 で終端するか、 7/15 [ 6/0, 7/15 ]* [ 4/0, 5/15 ] で終端する。

[64] Data Syntax II には 1/15 に他の機能もある

Data Syntax I

[22] Data Syntax I (CAPTAIN) - 日本向け PDF1 p.102

[31] 4モードあって、 DI (Data Identifier) で識別します。

  • character mode
    • DI(C) 0b00100000
  • transparent mode
    • DI(T) 0b00110000
    • DI(T-CNT) 0b00111111 (継続を表す)
  • sound mode
    • DI(S) 0b01000001
  • message mode
    • DI(M) 0b01000000

[32] DI, LI, bytes を1セットとして繰り返します。

[33] LI (Length Indicator) は [ 0, 254 ] の1バイトでバイト長を表すか、 255バイトに続く大エンディアン2バイトでバイト長を表します。 ([ 0, 254 ] を1+2バイトで表すのも禁止されていない。)

[30] character mode (初期状態)

[35] transparent mode は PDU (Phorographic Data Unit) の連続。

[36] PDU は opcode (1バイト)、LIbytes

[34] DI(T) / DI(T-CNT) の境界と PDU の境界が一致していなければならないのか、 そうでないのかよくわからない。一致しなければならないとすると DI(T-CNT) は不要に思えるので、一致しなくても良いのかも。

[38] sound mode

[44] Sound tone set : 第1バイト Sound Tone Set (Pitch)、 第2バイト Sound Tone Set (Duration)

[45] Sound control

89
0SMCSLV
1SMP
2SRP
3
4EMC
5EPT
6
7
8LBLLRT
9JMP
10RPT
11BRA
12CTM

引数付き

  • SMC 3/0 3/11 3/N 3/11
  • SMP 3/P 3/11
  • SRP 3/P 3/11
  • LBL 3/N 3/11
  • JMP 3/N 3/11
  • RPT 3/M 3/11 3/N 3/11
  • BRA 3/M 3/11 3/N 3/11
  • SLV 3/L 3/11
  • CTM 3/P 3/11
  • LRT 3/N 3/11

(引数は1バイトとは限らない)

numeric parameter: [ 3/0, 3/9 ]+ delimiter: 3/11

[37] message mode

[47] C0 引数付き

  • 1/15 NSR >>36
  • 1/4 KMC P
  • 1/12 APS row column (cursor position)
    • 下位6ビット

[48] message modeC1character modeC1部分集合

[23] C1P-MACRO 9/5ARIB STD-B24MACRO 相当 + P-MACRO 4/2 P でマクロ文を返送要求 (ただしこちらは96集合P2/0 ... 7/15)

[42] 1バイト (左側) の引数が続くC1制御文字

  • COL
  • SZX
  • FLC
  • CDC

[43] 特殊文字の集合 Display Control set, PDI set, MVI set: opcode が [ 2/0, 3/0 ], operand が [ 4/0, 7/15 ]。 opcode の後、 opcode 依存の構文・長さで operand が続く。

  • 固定 operand
  • single-value operand : 下位6ビットが符号なし整数を表す
  • multi-value operand : 下位6ビット中、上位3ビットと下位3ビットがそれぞれ値を表す。 後続 operand バイトも同じ。 1 - 8 バイト。
    • coordinate operand - 上位が X、下位が Y。第1バイト1つ目が符号±、 2つ目が最上位ビット (0.5)、最終バイト3つ目が最下位ビットで、 符号付き2の補数を表す。
    • 色: 3ビットの上位から GRB の順で unsigned color value in RGB color system を表す。 unsigned binary decimal, 0 が lowest intensity、 1が highest intensity を表す。

Display Control set

  • P-RESET fixed 1バイト
  • P-DOMAIN fixed 2バイト
  • LOGICAL-PEL multi-value 2バイト
  • DISPLAY MODE fixed 1バイト
  • P-TEXT fixed 2バイト / multi-value 1バイト
  • RASTER multi-value 1バイト
  • HEADER RASTER multi-value 1バイト
  • SET LUT single-value 1バイト / multi-value 1バイト
  • P-BLINK single-value 2バイト / fixed 3バイト
  • AREA multi-value 2バイト
  • SET FRAME single-value 2n (n = # of frames)
  • ASSIGN FRAME signle-value 1バイト

Display Control Command Set

2 3
0
1P-RESET
2P-DOMAIN
3LOGICAL PEL
4DISPLAY MODEP-TEXT
5AREA
6SET FRAME
7ASSIGN FRAME
8RASTER HEADER
9RASTER
10SET LUT
11
12P-WAITP-BLINK
13
14
15

4/0 - 7/15 NUMERIC DATA

Data Syntax II

[50] Data Syntax II は欧州向け。

[51] VPDE (Videotex Presentation Data Element) の連続。

[52] VPDE は VPCE の後に VSCE (Videotex Service Control Element)。

[53] VPCE (Videotex Presentation Control Element) は US = 1/15 のあとに P, P は:

  • 4/0 - 7/15 : alphamosaic data
    • ALPHAMOSAIC display data
  • 2/0 - 2/15 : management data
    • 2/0 & 2/1 TERMINAL FACILITY IDENTIFIER
    • 2/3 Define DRCS
    • 2/6 Define COLOUR
    • 2/13 Define Format
    • 2/14 TIMING CONTROL
    • 2/15 RESET
  • 3/0 - 3/15 : other data
    • 3/0 Reserved for Geometric display data
    • 3/1 GEOMETRIC display data (3D)
    • 3/2 GEOMETRIC display data
    • 3/4 PHOTOGRAPHIC pixel data
    • 3/5 PHOTOGRAPHIC table data
    • 3/11 SOUND
    • 3/12 Reserved for private use
    • 3/14 TELESOFTWARE (Processable) data
    • 3/15 TRANSPARENT data

[56] PDF2, PDF2 p.49, p.53

[55] L-set PDF2 p.40

  • L-set に固定シフト (L-set activation)
    • "mosaic" (MBK MSR MSG MSY MSB MSM MSC MSW)
      • serial C1-controls 5/0 - 5/7
      • 次の row の先頭で G-set にシフトする
  • L-set から G-set にシフト (L-set deactivation)
    • FOREGROUND COLOUR "alpha" (ABK ANR ANG ANY ANB ANM ANC ANW)
    • parallel C1-set の呼び出し
    • entering new line
    • GLG集合の呼び出し

[117] row (line) の先頭でリセットされるというのが、 特定の符号だけではないらしく厄介

[118] G に戻るというのが G0/G1/G2/G3 のどれかではないので、 L に移動したときの前の状態を覚えておかないといけないっぽい

[57] C0

  • 0/14 SO
  • 0/15 SI
  • 1/2 RPT
  • 1/9 SS2
  • 1/11 ESC
  • 1/13 SS3
  • 1/15 APA = US
  • など

[54] 引数付き制御文字

  • RPT P (下位6ビット)
  • APA P P (各下位6ビット)

[58] attributes FOREGROUND COLOUR, BACKGROUND COLOUR, LINED, SIZE, FLASH, CONCEAL, INVERT, WINDOW/BOX

  • ESC 2/3 2/0 (Fe) = full screen attributes
  • ESC 2/3 2/1 (Fe) = full row attributes

Fe は parallel C1 set の ESC Feビット組合せ、 例えば 4/1 が Red foreground を表す。

[66] US 2/3 DRCS 関係 PDF2 p.248

[59] Geometric なデータの符号化 PDF2 p.175

primitive は opcode の後に operand を何個かで表す。

opcode は [ 2/0, 3/15 ]

operand は [ 4/0, 7/15 ] または文字列

文字列 character string は SOS 9/8 から始まり ST 9/12 で終わる

[119] これは serial/parallel C1 にはなく、別

[68] PHOTOGRAPHIC PDF2 p.223

  • C0 videotex control codes
  • [ 2/0, 3/15 ] photovideotex parameters
  • [ 4/0, 7/15 ] Pixel Data

[69] TELESOFTWARE PDF2 p.322

TDU = CI field、LI field、Parameter field

ただし basic kernel (という実装水準) は一部 CI field のみの TDU を使う。

CI (Command Identifier) 種別を表す

LI (Length Indicator) 長さを表す。 1バイトで [ 0, 254 ]、 3バイト (先頭バイト 15/15) で [ 255, 65534 ]

Parameter field は LI で指定された長さ。

[70] basic kernel のとき CI のみ: CI = 3/1, 3/2, 3/8, 3/6

[67] TRANSPARENT = US 3/15 PDF2 p.262

不透明データ。最初のバイト N が長さを表す。

  • N = 0 : 無制限
  • N = [ 1, 254] : バイト値の長さ
  • N = 255 : 未定義

バイト値が指定されていれば、 N の次から数え始めてそのバイト数で終了。

バイト値に関わらず、次の VPCE が検知されたら終了 (中断)。

US が出現すると次の VPCE とみなされる。回避するには2連続にする。 バイト数カウントは1バイト分になる。

[62] 状態リセット: 各種状態 + 文字コード状態を変更 p.264

  • General Display Reset
    • US 2/15 4/1 : serial C1 set を呼び出し
    • US 2/15 4/2 : parallel C1 set を呼び出し
    • Reset Control and Graphic Sets 相当の操作
    • その他状態リセット
  • Reset Control and Graphic Sets
    • 既定の図形文字集合を指示
    • G0 = GL
    • G2 = GR
    • alpha-mosaic data 状態に
    • US 2/15 4/3 : serial C1 set を呼び出し
    • US 2/15 4/4 : parallel C1 set を呼び出し
  • Service Break to Row X
    • G0 = primary set of graphic characters
    • G2 = supplementary set of graphic characters
    • G0 = GL
    • G2 = GR
    • US 2/15 4/0 RN : serial C1 set を呼び出し
    • US 2/15 4/5 RN : parallel C1 set を呼び出し
    • RN = [ 4/0, 7/15 ] : row (下位6ビット)
    • この後、 US 2/15 4/15 で変更前の状態にリセット

[63] DOCS の直後にはプロファイルを記述する p.398, PDF2 p.1

  • ESC 2/5 4/4 profile 4/0

profile:

profile は display mode ごと (alphamosaic, geometric, ASCII) 複数可

Data Syntax III

[71] 北米向け (NAPLPS)

[72] PDF3 p.8, p.109

[120] 4つの96集合は元々当時の ISO 2022 に違反した独自仕様で 94集合指示シーケンスを使っていたらしい。 現在は終端バイト4つとも他の関係ない94集合が登録されている。

[121] ISO 202296集合の概念が追加されて以後96集合用の指示シーケンスを使うことになり、 以前のものは互換用の扱いになったっぽい。 96集合 7/13ISO-IR に登録されている。 96集合 5/7ISO-IR で登録されていないが、 予約されている (図形文字集合ではないためか)。 7/107/11 は未登録。

[122] 7/107/11ISO 2022DRCS の概念が追加されて以後、 DRCS 扱いにすることになったらしく、終端バイトの前に 2/0 が挿入されることになった。 そこで指示シーケンスは (当初仕様では) 両者を併記することになったらしい。 (それは未対応の指示シーケンスは無視される(だけで無害)というエラー処理を想定しているらしい。 そのような規定は ISO/IEC 2022 にも T.101 にも見当たらないが。 ISO/IEC 2022 のエラー処理の項 ) ともかくこの2つの集合は4種類の指示シーケンスが存在することに。

[123] つまり旧式扱いになっている終端バイトは登録も予約もされず放置されたらしい。 しかし NAPLPS の実装は全種類対応しなければならない (将来的には旧シーケンスは廃止する予定らしいことが書かれている)。

audio data syntax

[84] ISO/IEC 9281 PCD (識別子 2/4) または ISO/IEC 2022 DOCS でこの構文に切り替えられる。 PDF3 p.120

[85] ISO/IEC 2022 DOCS を使う場合の構文が明記されていないが、 結局 PCD を使うということか?

photographic data syntax

[86] ISO/IEC 9281 PCD または ISO/IEC 2022 DOCS でこの構文に切り替えられる。 PDF3 p.131

  • PM 2/3
  • PI 04/00 - 07/15
    • 例えば JPEG 04/00

[87] 画像は複数 PE に分割可能、 中途なら次のバイトは ESC 7/0 CMIp、 完了なら次のバイトは ESC or US

T.107

[89] ISO/IEC 9281 PCD または ISO/IEC 2022 DOCS でこの構文に切り替えられる。 PDF p.97

ISO/IEC 9281 CMI

[90] T.51String

NAPLPS

[91] ISO/IEC 2022DOCSESC 2/5 4/1指示呼び出しされる符号化体系は、 ISO-IR 108 です。 (←謎説明)

NAPLPS = Nothern American Presentation Level Protocol Syntax (北米ビデオテックス通信規約)。

[92] AT&T がカナダ政府の Telidon system (1970年代後半 から1980年代前半に使われていた。) を基に開発した PLP (Presentation Level Protocol) が1983年11月に 米国 ANSI X3.110‐1983 や加国 CSA T500‐1983 として標準化されました。

[93] 日本語機能仕様 NAPLPS (NAPLPS JAPANESE LANGUAGE) は日本語機能を追加したもので、1987年9月制定。

[94] いわゆる画像符号化って奴ですね。 Alpha geometric data であって dot の集合じゃありません。 Vector 画像と言われる奴の仲間ですね。

ISO-IR 108

[95] 『Syntax of the North American Videotex/Teletext Presentation Level Protocol (NAPLPS)』。 ANSI X3.110‐1983 や CSA T500‐1983 で定義。

  • C0文字集合: 書式効果, 符号拡張制御, 転送制御, 機器制御
  • C1文字集合: テキスト書式上の制御及びマクロ, DRCS プログラム可能 texture mask, 非保護情報領域生成
  • 第1文字集合: ANSI X3.4‐1977 (ASCII)・CSA Z243.4‐1973 (94文字)
  • 補遺文字集合: 合成アクセント・発音区別符・ラテン基底字母 (CCITT Recommendation S.100‐1980 と追加文字)
  • Mosaic 集合: 絵情報を生成する。 (65文字)
  • 任意の図形記号の downline 読み込み用 DRCS 集合 (96文字)
  • 2列〜7列に割り当てる追加集合:
    • Picture Description Instruction (PDI; 図形描画命令) 集合: 絵情報の実行可能描画機能を提供 (96文字)
    • 表現層文字の符号表現の文字列を downline 読み込みするマクロ集合 (96文字)

[96] ISO/IEC 2022 から ESC 2/5 4/1指示呼び出しされ、 ESC 2/5 4/0 で ISO/IEC 2022 を指示・呼び出しします。

7ビット符号の時は固定シフト + GLESC Fe を使い、 8ビット符号の時は GRCR を使います。 G2 と G3 は単独シフトが使えます。 (SS2 = 1/9, SS3 = 1/13) (固定シフトも使えます。) ASCII は右には呼び出せません。

[124] 00000001.PDF - 108.pdf, , https://itscj.ipsj.or.jp/ir/108.pdf

文字集合

[97] 標準状態では GL = G0 = ASCII, GR = G1 = PDI, G2 = 補遺集合, G3 = Mosaic が指示されています。

  • I4 = 02/08 / 02/09 / 02/10 / 02/11
  • I6 = 02/13 / 02/14 / 02/15
IR指示指示(旧)
135C0ESC 02/01 04/11
136C1ESC 02/02 04/06
ASCIIESC I4 04/02
PDIESC I6 05/07ESC I4 05/07
マクロESC I6 02/00 07/10ESC I4 02/00 07/10
DRCSESC I6 02/00 07/11ESC I4 02/00 07/11
128補遺ESC I4 07/12
129MosaicESC I6 07/13ESC I4 07/13

[98] PDI の終端バイト(旧) 05/07 は ISO-IR で、互換のため 割り当てないとされています。 (PDI は図形文字集合でないので、 ISO-IR に登録してもらえなかったのかもしれません。)

[99] 96集合の指示の I6 の部分は互換性のため、実装は I4 になっていても読み込むのが良いんだそうな。 (94集合では 全然違う集合が割り当てられてますよ。おいおい。)

[100] 補遺集合中の結合文字は、最初の文字が結合文字 (現在位置の前進を伴わない文字) で、 2番目の文字が基底文字です。 非spacing文字

[101] NSR (1/15) で文字集合の指示・呼び出しは標準状態に戻ります。

識別子

[102] MIME などの Internet 媒体型image/naplps を使います。 version 引数が必須で、値の形式は 4*DIGIT (規格発行年) のようです。

[103] ファイル名の拡張子.pdi を使います。

メモ

[112] NAPLPS.TXT, https://www.fileformat.info/format/naplps/spec/c08f9438d54b4149b7f9c4b92e197191/view.htm

メモ