ここまでで、実身はレコードの並びであり、それを読み書きする方法が分かりました。では、レコードの中身はどうなっているのでしょうか。レコードとはで、レコードは、そのレコードタイプごとに中身の書き方が決まっていると書きました。表を再掲載します。
レコードタイプ | データ構成の規定 | |
---|---|---|
0 | リンクレコード | 標準データタイプ |
1 | TAD主レコード | TADデータ構成 |
8 | 実行機能付箋レコード | TADデータ構成 |
リンクレコードは標準データタイプとなっています。標準データタイプとはBやWなどの基本的な型のことです。include/typedef.hに定義されていますし、仕様書第1章 基本データタイプにあります。リンクレコードはそのうちのLINK型のデータそのもののことです。
では、TADデータ構成とは何でしょうか。これが以降で扱うデータとなります。仕様書3.3 TAD データ構成の概要に定義されています。引用すると「TAD データ構成は、セグメントと呼ばれるデータ要素の一次元要素連鎖であり、」「セグメントには、固定バイト長の固定長セグメントと、可変バイト長の可変長セグメントがある。」となっています。つまり、実身がレコードの並びであったのと同様に(TADデータ構成である)レコードはセグメントの並びであるということです。それぞれの細かい定義はそこにある通りです。ただし、一つ注意すると、現在の超漢字はintel 486DX以降のプロセッサ、つまりlittle endianのプロセッサを対象にしています。従って、TADデータ構成は仕様書付録 B 準TAD規格にあるような規格になっています。バイトオーダが異なることに注意して下さい。
さて、プログラムを作る前に、セグメントの実体が把握できるとTADの何たるかが想像しやすいと思います。大よよさんのTAD教育ダンプは極めて便利なソフトウェアです。これを使ってTADの中身を見ることができます。
準TAD規格はTAD規格と異なっています。充分注意して下さい。プログラムするうちに慣れると思いますが、最初はかなり混乱すると思います。TAD規格と異なる部分を挙げておきます。その他の点についても仕様書付録 B 準TAD規格を参照して下さい。
通常の文字コード | 1または2バイト・コード | 文字コードは全部2バイトです。 |
---|---|---|
制御コード | (0x00 〜0x20 ) の1バイト・コード | これは1バイトではなく2バイトです。 |
仕様書付録 A TADセグメント一覧に
特殊文字指定付箋 TS_TUB (0xA3)
とありますが、これはTS_TUBではなくTS_TCHARの間違いです。