マイクロカード実身データ構造説明書


1999/05/20 版

本説明書では、1B/V3、および B-right/V システムにおける現状のマイクロカード実身のデータ構造を説明しています。

なお、ここで説明しているデータ構造は、 将来、変更または拡張されることがあります。 後述するフォーマットデータレコードでの注意事項を参照してください。


実身レコード構成


マイクロカード実身には以下のマイクロカード固有のデータレコードが、 それぞれ 1 個ずつ任意の順番で含まれます。
ただし、フォーマットデータレコード以外は省略される場合もあります。

 レコードタイプサブタイプ
フォーマットデータレコード311
カードデータレコード 312
インデックスデータレコード313
仮身データレコード 314

また、印刷書式として指定した仮身、 および仮身データ項目として設定した仮身に対応する実身を示すリンクレコー ドも含まれます。
同一の実身を示す仮身データ項目が 2 個以上存在している場合でも、 対応するリンクレコードは 1 個だけとなります。

このページのはじめに戻る


フォーマットデータレコード


カード全体の情報および項目形式を示す以下の構造のデータを含みます。
レコードサイズは、(32 + 24 × 項目数) バイトとなります。

TCid1 識別データ 1 (= 0x2343 [C])
TCid2 識別データ 2 (= 0x2352 [R])
TCid3 識別データ 3 (= 0x2344 [D])
UHversion バージョン (= 0x100)
UHncards カード数 (最大 30000)
UHdatalen カードデータ(1 枚)のバイト数
UHreserved[9] 予約
UHnitems 項目数 (最大 64)
IFMTfmt[nitems] 項目形式の配列
TC : 16 ビット TRON コードデータ
 UH : 16 ビット符号なしデータ
  データはすべて Little Endian 形式です。

IFMT は項目ごとの形式を示す以下の構造のデータです(24 バイト)。

TCname[8] 項目名 (TRON コード 8 文字)
UHoffset 項目データオフセット
カードデータの先頭からのバイトオフセットを示す (先頭項目は 4)
UHkind 項目データ種別
0 :なし
1 :数値データ
2 :文字列データ
3 :仮身データ
UHnchars 項目文字数 (最大 500)
UHtchars 一覧表示文字数 (最大 50)
※ 注意事項

本説明書の内容は、識別データ (id1id3)、 およびバージョン (version) の値が上記で示した値に完全に一致している場合のみ適用されます。
将来、データ構造が変更または拡張された場合は、 この識別データまたはバージョンの値が変更されることになります。

このページのはじめに戻る


カードデータレコード


カード全体のデータを示す以下の構造のデータを含みます。
レコードサイズは、( datalen × ncards ) バイトとなります。
カードが 1 枚も存在しない場合は、本レコードは省略されます。

CARD card[ncards] カードごとのデータの配列

CARD は、1 枚のカードのデータを示す以下の構造のデータです。

UHstartmark 開始マーク (= 0xA5B6)
UHdatalen カードデータ(1 枚)のバイト数
ITEMitem[nitems] 項目データの配列
datalen は、上記データ全体のバイト数を示し、 フォーマットデータレコード内に含まれる datalen と同じ値となります。

ITEM は、各項目のデータを示す以下の構造のデータで、 項目の種別ごとに異なる構造、サイズを持ちます。

このページのはじめに戻る


インデックスデータレコード


カードの順番を示すデータを示す以下の構造のデータを含みます。
レコードサイズは、( 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 + α バイト)。

UHvobjnumber 仮身番号(1〜)
UHlinknumber リンク番号(0〜)
UHattr[5] リンク属性データ
VOBJSEGvseg 仮身セグメント(可変長)

仮身データ項目 ( ITEM ) 内で指定された仮身番号と同一の仮身番号を持つ仮身データが、 その項目に適用されます。

印刷書式を示す仮身には、仮身番号 1 または 2 が使用され、 項目データとしての仮身を示す仮身番号は 5 以上の値が使用されます。

リンク番号は、対応するリンクレコードの出現順 ( 0 〜 ) を示します。

リンクレコードは同一実身に対して 1 個だけ存在し、 リンクレコード内の属性データは使用されずに、 仮身データ内の属性データが使用されます。

このページのはじめに戻る
技術情報トのページにもどる
超漢字開発者サイトのページにもどる