1999/05/20 版
本説明書では、1B/V3、および B-right/V システムにおける現状のマイクロカード実身のデータ構造を説明しています。
なお、ここで説明しているデータ構造は、 将来、変更または拡張されることがあります。 後述するフォーマットデータレコードでの注意事項を参照してください。
マイクロカード実身には以下のマイクロカード固有のデータレコードが、
それぞれ 1 個ずつ任意の順番で含まれます。
ただし、フォーマットデータレコード以外は省略される場合もあります。
レコードタイプ サブタイプ フォーマットデータレコード 31 1 カードデータレコード 31 2 インデックスデータレコード 31 3 仮身データレコード 31 4
また、印刷書式として指定した仮身、
および仮身データ項目として設定した仮身に対応する実身を示すリンクレコー
ドも含まれます。
同一の実身を示す仮身データ項目が 2 個以上存在している場合でも、
対応するリンクレコードは 1 個だけとなります。
カード全体の情報および項目形式を示す以下の構造のデータを含みます。
レコードサイズは、(32 + 24 × 項目数) バイトとなります。
TC
id1
識別データ 1 (= 0x2343 [C]) TC
id2
識別データ 2 (= 0x2352 [R]) TC
id3
識別データ 3 (= 0x2344 [D]) UH
version
バージョン (= 0x100) UH
ncards
カード数 (最大 30000) UH
datalen
カードデータ(1 枚)のバイト数 UH
reserved[9]
予約 UH
nitems
項目数 (最大 64) IFMT
fmt[nitems]
項目形式の配列
※ | TC : |
16 ビット TRON コードデータ |
UH : |
16 ビット符号なしデータ | |
データはすべて Little Endian 形式です。 |
IFMT
は項目ごとの形式を示す以下の構造のデータです(24 バイト)。
TC
name[8]
項目名 (TRON コード 8 文字) UH
offset
項目データオフセット
カードデータの先頭からのバイトオフセットを示す (先頭項目は 4)UH
kind
項目データ種別
0 : なし 1 : 数値データ 2 : 文字列データ 3 : 仮身データ UH
nchars
項目文字数 (最大 500) UH
tchars
一覧表示文字数 (最大 50)
本説明書の内容は、識別データ
(id1
〜 id3
)、
およびバージョン (version
)
の値が上記で示した値に完全に一致している場合のみ適用されます。
将来、データ構造が変更または拡張された場合は、
この識別データまたはバージョンの値が変更されることになります。
カード全体のデータを示す以下の構造のデータを含みます。
レコードサイズは、( datalen
× ncards
)
バイトとなります。
カードが 1 枚も存在しない場合は、本レコードは省略されます。
CARD card[ncards]
カードごとのデータの配列
CARD
は、1 枚のカードのデータを示す以下の構造のデータです。
UH
startmark
開始マーク (= 0xA5B6) UH
datalen
カードデータ(1 枚)のバイト数 ITEM
item[nitems]
項目データの配列
datalen
は、上記データ全体のバイト数を示し、
フォーマットデータレコード内に含まれる
datalen
と同じ値となります。
ITEM
は、各項目のデータを示す以下の構造のデータで、
項目の種別ごとに異なる構造、サイズを持ちます。
DOUBLE number |
倍精度浮動小数点数 |
nchars
+ 1) バイト)
TC string[nchars + 1] |
TRON コード文字列 + TNULL(0) |
UH vobjnumber |
仮身番号(0:なし) |
UH notused[23] |
未使用 |
カードの順番を示すデータを示す以下の構造のデータを含みます。
レコードサイズは、( 2 × ncards
) バイトとなります。
カードが 1 枚も存在しない場合、
またはカードの順番がカードデータレコード内での順番と同一の場合、
本レコードは省略されます。
UH index[ncards]
インデックスの配列
インデックスの下位 15 ビットにより、
カードデータレコード内での位置を示す
0 〜 (ncards
− 1)
の番号となります。最上位ビットは未使用です。
1 枚目のカードデータ card[index[0] & 0x7fff]
2 枚目のカードデータ card[index[1] & 0x7fff]
:: :: 最後のカードデータ card[index[ncards - 1] & 0x7fff]
仮身に関連するデータを示す以下の構造のデータを含みます。
仮身データ項目が 1 個も存在せず、
かつ印刷書式の仮身が指定されていない場合、
本レコードは省略されます。
VDATA vdata[]
仮身データの配列
VDATA
は、仮身データを示す以下の構造のデータです
(44 + α バイト)。
UH
vobjnumber
仮身番号(1〜) UH
linknumber
リンク番号(0〜) UH
attr[5]
リンク属性データ VOBJSEG
vseg
仮身セグメント(可変長)
仮身データ項目 ( ITEM
)
内で指定された仮身番号と同一の仮身番号を持つ仮身データが、
その項目に適用されます。
印刷書式を示す仮身には、仮身番号 1 または 2 が使用され、 項目データとしての仮身を示す仮身番号は 5 以上の値が使用されます。
リンク番号は、対応するリンクレコードの出現順 ( 0 〜 ) を示します。
リンクレコードは同一実身に対して 1 個だけ存在し、 リンクレコード内の属性データは使用されずに、 仮身データ内の属性データが使用されます。
このページのはじめに戻る
技術情報トのページにもどる
超漢字開発者サイトのページにもどる