JPH07271558A - 数値演算装置 - Google Patents

数値演算装置

Info

Publication number
JPH07271558A
JPH07271558A JP6085745A JP8574594A JPH07271558A JP H07271558 A JPH07271558 A JP H07271558A JP 6085745 A JP6085745 A JP 6085745A JP 8574594 A JP8574594 A JP 8574594A JP H07271558 A JPH07271558 A JP H07271558A
Authority
JP
Japan
Prior art keywords
data
character
character string
numerical
numerical value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6085745A
Other languages
English (en)
Inventor
Atsushi Ito
淳 伊東
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mutoh Industries Ltd
Original Assignee
Mutoh Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mutoh Industries Ltd filed Critical Mutoh Industries Ltd
Priority to JP6085745A priority Critical patent/JPH07271558A/ja
Publication of JPH07271558A publication Critical patent/JPH07271558A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 従前のハードウェアのままで、又は簡単なハ
ードウェアの追加のみで巨大な数値演算を実行すること
を可能にする。 【構成】 0から9までの整数を示す文字データの組み
合わせで表現された第1及び第2の数をそれぞれ示す第
1及び第2の文字列データA,Bは、文字/数値変換部
2に入力され、ここで第1及び第2の文字列データA,
Bがそれぞれ所定長単位の16進数値データa,bに変
換される。この文字/数値変換部2で変換された所定長
の数値データa,bは、一旦演算バッファ3に格納され
たのち、演算処理部4に入力され、演算処理されてその
桁上げ及び桁下げ情報が順次次の数値データの演算処理
に含められる。この演算処理部4で求められた演算結果
は、数値/文字変換部5に入力され、ここで所定長の文
字列データに変換される。変換結果Xはメモリ1に格納
される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ上で巨大
な数値の演算を行う際に好適の数値演算装置に関する。
【0002】
【従来の技術】一般にコンピュータ上で扱える数値は、
CPU等のハードウェアの性能に依存しており、例えば
32bitのデータの演算が可能な装置の場合、取り扱
い可能な整数値は、0〜232−1の範囲に制限され、そ
れ以上の整数値を取り扱うことができない。このため、
従来はコプロセッサ等の数値演算プロセッサによって浮
動小数点演算を行わせる等の方法により巨大な数値の演
算を行うようにしている。
【0003】
【発明が解決しようとする課題】しかし、従来のコプロ
セッサを用いたシステムでは、専用のプロセッサが必要
であるうえ、仮数部として取り扱える桁数は有限である
という問題がある。
【0004】本発明は、従前のハードウェアのままで、
又は簡単なハードウェアの追加のみで巨大な数値演算を
実行することが可能になる数値演算装置を提供すること
を目的とする。
【0005】
【課題を解決するための手段】本発明に係る数値演算装
置は、0から9までの整数を示す文字データの組み合わ
せで表現された第1の数を示す第1の文字列データを入
力し、この第1の文字列データを16進数値データに変
換したのち所定長ずつに分割して第1の数値データを生
成する第1の文字/数値変換手段と、0から9までの整
数を示す文字データの組み合わせで表現された第2の数
を示す第2の文字列データを入力し、この第2の文字列
データを16進数値データに変換したのち所定長ずつに
分割して第2の数値データを生成する第2の文字/数値
変換手段と、前記第1及び第2の文字/数値変換手段で
変換された所定長の第1及び第2の数値データを演算処
理してその桁上げ及び桁下げ情報を順次次の数値データ
の演算処理に含めていく演算処理手段と、この演算処理
手段で求められた演算結果を文字列データに変換する数
値/文字変換手段とを備えたことを特徴とする。
【0006】前記第1及び第2の文字/数値変換手段
は、例えば前記第1及び第2の文字列データを所定長ず
つ取り出して16進数に変換すると共に、変換された1
6進数の上位バイト側のデータと下位バイト側のデータ
とを分離し、前記上位側のデータを文字列データに変換
して順次蓄積すると共に前記下位バイト側のデータを文
字列データに変換して次に取り出す文字列データの上位
側の文字列として結合する処理を繰り返すことにより、
16進数変換処理に供する1単位の文字列データの長さ
を一定長以下に制限するものである。
【0007】前記数値/文字変換手段は、例えば前記演
算結果の16進数を所定長ずつ取り出して10で除算す
ると共に、この除算結果の商を順次蓄積すると共に前記
除算結果の剰余を次に取り出す前記演算結果の上位側の
数値として結合する処理を繰り返すことにより、文字列
変換処理に供する1単位の16進数の長さを一定長に制
限するものである。
【0008】
【作用】本発明によれば、演算対象の数値を0から9ま
での文字列で表現し、この文字列の組み合わせで数値を
表現すると共に、この文字列表現された数値を16進表
記に変換したのち、所定単位ずつに分割する。そして、
16進数値に変換された各単位の数値を演算処理して桁
上げ/桁下げ分を順次次の単位の数値に含め、文字列に
再変換して合成するようにしているので、桁数として取
り込める長さは文字列として取り込める長さまで拡大さ
れ、桁数に殆ど制限されない巨大な数値の演算処理が可
能になる。
【0009】また、第1及び第2の文字/数値変換手段
並びに数値/文字変換手段での変換処理において、巨大
数値の変換処理が不可能な場合でも、文字列データとし
て与えられた数値データを所定長ずつ16進数に変換す
る、又は演算結果の数値データを所定長ずつ文字列デー
タに変換することにより、演算処理に至るまでの処理又
は演算処理後の処理も支障なく実行されることになる。
【0010】
【実施例】以下、添付の図面を参照して本発明の実施例
について説明する。図1は、本発明の実施例に係る数値
演算処理装置の機能ブロック図である。このシステム
は、メモリ1、文字/数値変換部2、演算バッファ3、
演算処理部4及び数値/文字変換部5を備えて構成され
ている。メモリ1は、演算対象である第1の数値A及び
第2の数値B並びに演算結果Xを文字列データとして格
納する。これらの文字列データは、“0”から“9”ま
での整数を示す文字データによって組み合わされるが、
その長さの制限はない。
【0011】文字/数値変換部2は、メモリ1に記憶さ
れた第1及び第2の数値A,Bを示す文字列データをそ
れぞれ16進数値データa,bに変換する。文字/数値
変換部2から出力される数値データa,bは、所定バイ
トずつに分割されて演算バッファ3に格納されたのち、
演算処理部4に供給されて演算処理に供される。演算処
理部4は、数値データa,b、キャリーデータc及び演
算結果d等を所定単位ずつ入力して加減乗除等の演算処
理を実行する。演算結果dは、演算バッファ3に一旦格
納されたのち、数値/文字変換部5にて所定長の文字デ
ータに変換され、メモリ1の演算結果Xとして格納され
る。
【0012】次に、10進表記された文字列データを1
6進数値データへ変換するための方法について説明す
る。この方法としては、除算による余りで変換データを
導出する方法と、ハードウェアを用いたテーブルルック
アップ方式の2種類が考えられるが、まず、前者の方法
について説明する。一般に、10進データを16進デー
タに変換するには、図2(a)に示すように、10進数
を16で除算してその余りを求めて行けば良い。ここ
で、図2に示す10進数“12657”を16進数に変
換する際に、ハードウェアの制限から3桁の10進数ま
でしか変換できないとすれば、同図(b)に示すよう
に、まず上位3桁の“126”を16で除算してその余
り“14”を次の桁の数“5”の先頭に付け、更に“1
45”を16で除算したときの余り“1”を次の桁の数
“7”の先頭に付けるという操作を繰り返すことによ
り、16進数の最下位桁の数“1”を求めることができ
る。次にこれらの演算処理で求められた商“791”を
16で除算して余りを求めていく。このような操作を繰
り返すことにより、桁数に制限されない16進変換処理
が実現される。
【0013】図3は、以上の考え方に基づき、文字/数
値変換部2で文字列データを16進数値データに変換す
る手順を示すフローチャート、図4〜図8は、同変換処
理の具体例を示す図である。いま、第1の数値Aとして
図4に示すような“2846984195849893
40”という10進表記の文字列データが与えられたと
すると、これら文字列は、ASCIIコードでは、上位
4ビットに“0011”が付加されるので、メモリ1上
では、図4に示すように、“303433,…,32”
というコードで格納されている。文字列は先頭の文字が
0バイト目になっている。この文字列データをまず、作
業用のレジスタSに格納し、レジスタSに格納されたデ
ータが9文字以下であるときに処理の終了を判定するた
めのフラグFFを1とする(S1:SA)。この場合、
レジスタSの内容が9文字以上であるので(S2)、F
F=0とし(S3)、コンピュータでの演算処理が可能
な文字数で分割する。この例では、文字列の先頭から9
文字と残りとに分割し、レジスタP,Qにそれぞれ格納
する(S4,S5:SB)。次に、レジスタSの内容を
クリアすると共に(S6)、レジスタPの内容を16進
整数に変換し、これをレジスタRに格納する(S7:S
C)。
【0014】次に、レジスタRの内容から0バイト目を
切り離し、文字列に変換したのち、文字列Qを加える。
この文字列をSとする(S8:SD)。また、整数Rの
1〜3バイト目を文字列に変換し、これを文字列Tとす
る(S9:SE)。なお、この処理は、整数Rを256
で除算しているのと同じで、文字列Tが商、0バイト目
が余りに相当する。商は変換結果のうちの1バイトが求
められた時点で次の除算に供されるため蓄積され、余り
は次にレジスタSから取り出す文字列の先頭に結合され
ることになる。
【0015】続いて、文字列Sを前述と同様に9文字分
と残りとに分離し、レジスタP,Qにそれぞれ格納する
(S4,S5:SF)。そして、レジスタPの内容を1
6進整数に変換し、これをレジスタRに格納する(S
7:SG)。上記と同様に、レジスタRの内容から0バ
イト目を切り離し、文字列に変換したのち、文字列Qを
加える。この文字列をSとする(S8:SH)。また、
整数Rの1〜3バイト目を文字列に変換し、これを文字
列Tとする(S9:SI)。
【0016】次に、レジスタSは9文字以下になるので
(S2)、レジスタSの内容をそのまま16進整数値に
変換してレジスタRに格納する(S10:SJ)。FF
はこの時点では0であるので(S11)、レジスタRの
0バイト目を求められた変換結果としてレジスタHの先
頭に挿入し、FF=1とする(S12:SK)。また、
レジスタRの1〜3バイト目を文字列に変換してレジス
タTの末尾に挿入する(S13:SL)。レジスタTの
内容をレジスタSに格納し、レジスタTをクリアする
(S14)。
【0017】以下、同様の処理の繰り返しによって、レ
ジスタHに16進変換された数値を順次格納して行き、
最後にレジスタSの内容が続けて9文字以下になった場
合(S11:SM)には、レジスタRの内容をレジスタ
Hの先頭に挿入して処理を終了する(S15:SN)。
これにより、レジスタHに16進変換された数値データ
が格納されることになる。以上の処理によって、巨大な
桁数の文字列からなる数値であっても、処理単位はコン
ピュータで演算可能な9文字に制限されるので、16進
数値への変換が可能になる。
【0018】なお、以上は除算による余りで文字列デー
タから16進数値データを導出する方法であるが、変換
テーブルによる方法によって16進データへの変換を行
う場合には、図9に示すように、予め10桁以上の数値
の16進データを作成しておき、変換テーブルとして2
次元配列に登録しておけばよい。このとき、9桁以下の
数値は、4バイトのデータとしてシステムが直接扱える
ため、作成する必要はない。このテーブルを使用して、
文字列“284698419584989340”を1
6進データ“03F373B4477A789C”に変
換する例を図10に示す。入力された文字列のうち10
桁目以上の各桁は、各桁毎に変換テーブルで変換され、
対応する16進データがテーブルより抽出される。9桁
目以下の桁はシステム内部の変換処理により、16進数
に変換される。そして、全ての変換値の和を求めると、
16進データの変換値が得られる。なお、このとき、変
換値の加算処理は、後述する3バイト毎の加算処理を行
えば良い。この方式によれば、各変換テーブルに記憶さ
れているデータの最大長さを50バイトとすると、10
0桁程度の文字列数値を取り扱うことが可能である。
【0019】このようにして求められた16進数値デー
タは3バイト単位で分割され、それぞれが、図11
(a)に示すように、数値データa0 ,a1 ,a2 ,
…,aM-1として演算バッファ3に格納されて行く。同
様に、図11(b)に示すように、第2の数値Bについ
ても、文字列データから数値データへ変換がなされ、3
バイト毎に分割されて、それぞれが数値データb0 ,b
1 ,b2 ,…,bM-1 として演算バッファに格納され
る。
【0020】図12は、演算処理部3での演算処理の概
要を説明するための図である。演算処理は、基本的に
は、演算バッファ3に格納された数値データの1単位、
上記の例では3バイト単位で行われる。第1の数値ak
と第2の数値bk との演算結果のデータdk の長さもデ
ータak ,bk と同様であるが、キャリー(又はボロ
ー)ck を格納するための1バイトを追加して、例えば
4バイトのデータが図11(c)のように演算バッファ
3に格納される。
【0021】演算処理については、周知であるため、そ
の詳細は省略するが、乗算を行う場合には、演算結果d
k を格納するバッファの長さを加算・減算の倍の長さだ
け確保しておく必要がある。また、乗算を行う場合に
は、第1の数値aと第2の数値bの全ての分割単位の組
み合わせの乗算を行って演算結果のデータdを分割単位
の乗算の度に加算等により更新していく操作が必要にな
る。除算も基本的にはこの手法と同様である。演算結果
のデータdk ,ck が全て求められたら、キャリー又は
ボローを前後の桁の数値に繰り上げる又は繰り下げる処
理を実行する。
【0022】次に、数値/文字変換部5は、以下の処理
を実行して16進数値データを文字列データに変換して
メモリ1に格納する。数値/文字変換処理も基本的には
文字/数値変換処理と同様の考え方によって処理が実行
される。即ち、一般に16進データを10進データに変
換するには、図13(a)に示すように、16進数を0
A(H)(Hは16進表記:以下同じ)で除算してその
余りを求めて行けば良い。ここで、図13に示す“31
71(H)”を10進数に変換する際に、ハードウェア
の制限から1バイトの16進数までしか変換できないと
すれば、同図(b)に示すように、まず上位1バイトの
“31(H)”を0A(H)で除算してその余り“9
(H)”を次の半バイトの“7(H)”の先頭に付け、
更に“97(H)”を0A(H)で除算したときの余り
“1(H)”を次の半バイト“1(H)”の先頭に付け
るという操作を繰り返すことにより、バイト数に制限さ
れない文字列変換処理が実現される。
【0023】図14は、以上の考え方に基づき、数値/
文字変換部5で16進数値データを10進文字列データ
に変換する手順を示すフローチャート、図15〜図19
は、どう変換処理の具体例を示す図である。いま、演算
結果の16進数dとして図15に示すような“03F3
73B4477A789C”が求められた場合について
説明している。まず、この数値データを作業用のレジス
タSに格納し、フラグFFを1とする(S21)。この
場合、レジスタSの内容が4バイト以上であるので(S
22)、FF=0とし(S23)、コンピュータでの演
算処理が可能なバイト数で分割する。この例では、16
進数の先頭から4バイトと残りとに分割し、レジスタ
P,Qにそれぞれ格納する(S24,S25)。次に、
レジスタSの内容をクリアすると共に(S26)、レジ
スタPの内容を0A(H)で除算する(S27)。そし
て、除算結果の余りを文字列Qの先頭に加えてレジスタ
Sに格納する(S28)。また、除算結果の商をレジス
タTの末尾に挿入する(S29)。
【0024】続いて、レジスタSの内容を前述と同様に
4バイト分と残りとに分離し、レジスタP,Qにそれぞ
れ格納する(S24,S25)。そして、レジスタPの
内容を0A(H)で除算し(S27)、上記と同様に、
除算結果の余りを文字列Qの先頭に加えてレジスタSに
格納する(S28)と共に、除算結果の商をレジスタT
の末尾に挿入する(S29)。
【0025】次に、レジスタSは4バイト以下になるの
で(S22)、ステップS30に移り、レジスタSの内
容を0A(H)で除算する。FFはこの時点では0であ
るので(S21)、演算結果の余りに“30(H)”を
加えてASCIIコードの文字列に変換しメモリ1の末
尾に格納すると共に、FF=1とする(S32)。ま
た、演算結果の商をレジスタTの末尾に挿入する(S3
3)。レジスタTの内容をレジスタSに格納し、レジス
タTをクリアする(S34)。
【0026】以下、同様の処理の繰り返しによって、図
19に示すように、メモリ1に16進変換された数値を
順次格納して行き、最後にレジスタSの内容が続けて4
バイト以下になった場合(S31)には、システムで直
接処理が可能であるため、システムの機能を使用して直
接10進文字列データに変換、メモリ1の末尾に挿入す
る(S35)。これにより、メモリ1に10進変換され
た文字列データが格納されることになる。以上の処理に
よって、巨大な桁数の16進数値であっても、処理単位
はコンピュータで演算可能な4バイトに制限されるの
で、10進文字列データへの変換が可能になる。
【0027】このように、本装置によれば、N文字単位
で変換処理が行われるため、変換処理の速度を極端に低
下させずに巨大な数値の演算処理が実現できる。なお、
上記実施例では、第1及び第2の文字/数値変換手段を
文字/数値変換部2で共用したが、これらを別々に設
け、第1及び第2の数を並列変換処理させることによ
り、処理速度を向上させるようにしてもよい。
【0028】
【発明の効果】以上述べたように、本発明によれば、演
算対象の数値を0から9までの文字列で表現し、この文
字列の組み合わせで数値を表現すると共に、この文字列
表現された数値を所定単位ずつの数値表記に変換し、更
に数値変換された各単位の数値を演算処理して桁上げ/
桁下げ分を順次次の単位の数値に含め、文字列に再変換
して合成するようにしているので、桁数として取り込め
る長さは文字列として取り込める長さまで拡大され、桁
数に殆ど制限されない巨大な数値の演算処理が可能にな
る。
【図面の簡単な説明】
【図1】 本発明の実施例に係る数値演算処理装置の機
能ブロック図である。
【図2】 同装置における文字/数値変換の考え方を説
明するための図である。
【図3】 同装置の文字/数値変換部における変換処理
のフローチャートである。
【図4】 同文字/数値変換部での処理例を示す図であ
る。
【図5】 図4の続きを示す図である。
【図6】 図5の続きを示す図である。
【図7】 図6の続きを示す図である。
【図8】 図7の続きを示す図である。
【図9】 同文字/数値変換部を変換テーブルで構成し
た例を示す図である。
【図10】 同変換テーブルによる変換例を示す図であ
る。
【図11】 同装置における変換バッファの内容を示す
図である。
【図12】 同装置における演算処理部の処理の概要を
示す図である。
【図13】 同装置における数値/文字変換の考え方を
説明するための図である。
【図14】 同装置の数値/文字変換部における変換処
理のフローチャートである。
【図15】 同数値/文字変換部での処理例を示す図で
ある。
【図16】 図15の続きを示す図である。
【図17】 図16の続きを示す図である。
【図18】 図17の続きを示す図である。
【図19】 図18の続きを示す図である。
【符号の説明】
1…メモリ、2…文字/数値変換部、3…演算バッフ
ァ、4…演算処理部、5…数値/文字変換部。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 0から9までの整数を示す文字データの
    組み合わせで表現された第1の数を示す第1の文字列デ
    ータを入力し、この第1の文字列データを16進数値デ
    ータに変換したのち所定長ずつに分割して第1の数値デ
    ータを生成する第1の文字/数値変換手段と、 0から9までの整数を示す文字データの組み合わせで表
    現された第2の数を示す第2の文字列データを入力し、
    この第2の文字列データを16進数値データに変換した
    のち所定長ずつに分割して第2の数値データを生成する
    第2の文字/数値変換手段と、 前記第1及び第2の文字/数値変換手段で変換された所
    定長の第1及び第2の数値データを演算処理してその桁
    上げ及び桁下げ情報を順次次の数値データの演算処理に
    含めていく演算処理手段と、 この演算処理手段で求められた演算結果を文字列データ
    に変換する数値/文字変換手段とを備えたことを特徴と
    する数値演算装置。
  2. 【請求項2】 前記第1及び第2の文字/数値変換手段
    は、前記第1及び第2の文字列データを所定長ずつ取り
    出して16進数に変換すると共に、変換された16進数
    の上位バイト側のデータと下位バイト側のデータとを分
    離し、前記上位側のデータを文字列データに変換して順
    次蓄積すると共に前記下位バイト側のデータを文字列デ
    ータに変換して次に取り出す文字列データの上位側の文
    字列として結合する処理を繰り返すことにより、16進
    数変換処理に供する1単位の文字列データの長さを一定
    長以下に制限するものであることを特徴とする請求項1
    記載の数値演算装置。
  3. 【請求項3】 前記数値/文字変換手段は、前記演算結
    果の16進数を所定長ずつ取り出して10で除算すると
    共に、この除算結果の商を順次蓄積すると共に前記除算
    結果の剰余を次に取り出す前記演算結果の上位側の数値
    として結合する処理を繰り返すことにより、文字列変換
    処理に供する1単位の16進数の長さを一定長に制限す
    るものであることを特徴とする請求項1記載の数値演算
    装置。
JP6085745A 1994-03-31 1994-03-31 数値演算装置 Pending JPH07271558A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6085745A JPH07271558A (ja) 1994-03-31 1994-03-31 数値演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6085745A JPH07271558A (ja) 1994-03-31 1994-03-31 数値演算装置

Publications (1)

Publication Number Publication Date
JPH07271558A true JPH07271558A (ja) 1995-10-20

Family

ID=13867391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6085745A Pending JPH07271558A (ja) 1994-03-31 1994-03-31 数値演算装置

Country Status (1)

Country Link
JP (1) JPH07271558A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009145142A (ja) * 2007-12-13 2009-07-02 Hioki Ee Corp 測定データ記録装置および測定データの記録方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009145142A (ja) * 2007-12-13 2009-07-02 Hioki Ee Corp 測定データ記録装置および測定データの記録方法

Similar Documents

Publication Publication Date Title
US6233597B1 (en) Computing apparatus for double-precision multiplication
JPH0816365A (ja) 乗算装置
JP2012209755A (ja) 演算回路及び2進数の変換方法
JPH1049369A (ja) データ処理装置
US7167968B2 (en) Storage pre-alignment and EBCDIC, ASCII and unicode basic latin conversions for packed decimal data
JPH07271558A (ja) 数値演算装置
US3937941A (en) Method and apparatus for packed BCD sign arithmetic employing a two's complement binary adder
JP2008544344A (ja) 大数乗算方法およびデバイス
JP2000020486A (ja) Simd型演算器
JP3614065B2 (ja) 符号付き整数乗算装置
JP2820701B2 (ja) 2進数への変換方法
US5381380A (en) Divide circuit having high-speed operating capability
JP3055558B2 (ja) nビット演算装置
JP3120551B2 (ja) コード変換装置
JP3074910B2 (ja) 除算装置
JP2624738B2 (ja) 丸め処理方式
JPS6275838A (ja) 可変精度数値デ−タ演算装置
JPH04336623A (ja) データ変換方法
JPH11346155A (ja) データ形式変換装置
EP0901106B1 (en) System and method using mode bits to support multiple coding standards
JPH0553759A (ja) 固定小数点演算ユニツト
JPH103379A (ja) 三角関数演算装置および三角関数演算方法
JP2000081968A (ja) 逆数演算装置
JPH01128129A (ja) 浮動小数点加減算装置
JPH06274315A (ja) 固定小数点演算方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040127