(57)【特許請求の範囲】
【請求項１】
１ステップのプログラム情報が記憶されアドレスの付された単位記憶セルからなる単位記憶セル群にプログラムを構成する機械語命令からなるプログラム情報が記憶され、計算機本体からの指令により所定のインターフェースを介して前記プログラム情報が読出されるプログラムカードにおいて、
前記計算機本体から送出された前記アドレスを示すアドレス値を、所定の暗号キーに基づいて復号化する復号化手段と、
この手段により復号化されたアドレス値に対応する前記単位記憶セルからプログラム情報を１ステップずつ読出すプログラム情報読出し手段と、
この手段により読出されたプログラム情報のうち、命令コード部とアドレス値とを識別する手段と、
この手段により識別された命令コードが実行制御命令の場合にアドレス値を、所定の暗号キーに基づいて暗号化する暗号化手段と、
前記命令コード部及び前記暗号化手段により暗号化されたアドレス値を前記計算機本体に送出するプログラム情報送出手段とを備えたことを特徴とするプログラムカード。
【請求項２】
１ステップのプログラム情報が記憶されアドレスの付された単位記憶セルからなるアドレスの付されたプログラムを構成する機械語命令列からなる単位記憶セル群にプログラム情報を記憶したプログラムカードと、このプログラムカードに記憶されたプログラム情報を所定のインターフェースを介して読み出して、解釈・実行する計算機本体とを備えたプログラムカード及びこれを用いた計算機であって、
前記プログラムカードは、
前記アドレスを示すアドレス値を所定の暗号キーに基づいて復号化する復号化手段と、
この手段により復号化されたアドレス値に対応する前記単位記憶セルからプログラム情報を１ステップずつ読出すプログラム情報読出手段と、
この手段により読出されたプログラム情報のうち、命令コード部とアドレス値とを識別する手段と、
この手段により識別された命令コードが実行制御命令の場合にアドレス値を、所定の暗号キーに基づいて暗号化する暗号化手段と、
前記命令コード部及び前記暗号化手段により暗号化されたアドレス値を前記計算機本体に送出するプログラム情報送出手段とを備え、
前記計算機本体は、
前記アドレス値を保持するアドレス値保持手段と、
この手段に保持されたアドレス値を前記プログラムカードのプログラム情報読出し手段に送出するアドレス値送出手段と、
前記プログラム情報送出手段により送出された命令コード部及び暗号化されたアドレス値に基づいて命令制御を実行する命令制御実行手段とを備えたことを特徴とするプログラムカードを用いた計算機。
【請求項３】
１ステップのプログラム情報が記憶されアドレスの付された単位記憶セルからなる単位記憶セル群にプログラムを構成する機械語命令からなるプログラム情報が記憶され、計算機本体からの指令により所定のインターフェースを介して前記プログラム情報が読出されるプログラムカードにおいて：
前記計算機本体から送出された前記アドレスを示すアドレス値とこのアドレス値との相対位置を示すインデックス値とを受け取り、所定の暗号キーに基づいて前記アドレス値を復号化する復号化手段と；
この復号化手段により復号化されたアドレス値と前記インデックス値から計算されるアドレスに対応する前記単位記憶セルからプログラム情報を読出すプログラム情報読出し手段と；
この手段により読出されたプログラム情報のうち、命令コード部とアドレス値とを識別する手段と；
この手段により識別された命令コードが実行制御命令の場合にアドレス値を、所定の暗号キーに基づいて暗号化する暗号化手段と、
前記命令コード部及び前記暗号化手段により暗号化されたアドレス値を前記計算機本体に送出するプログラム情報送出手段とを備えたことを特徴とするプログラムカード。
【請求項４】
１ステップのプログラム情報が記憶されアドレスの付された単位記憶セルからなるアドレスの付されたプログラムを構成する機械語命令列からなる単位記憶セル群にプログラム情報を記憶したプログラムカードと、このプログラムカードに記憶されたプログラム情報を所定のインターフェースを介して読み出して、解釈・実行する計算機本体とを備えたプログラムカード及びこれを用いた計算機であって：
前記プログラムカードは、
前記計算機本体から送出された前記アドレスを示すアドレス値とこのアドレス値との相対位置を示すインデックス値とを受け取り、所定の暗号キーに基づいて前記アドレス値を復号化する復号化手段と；
前記復号化手段により復号化されたアドレス値と前記インデックス値から計算されるアドレスに対応する前記単位記憶セルからプログラム情報を読出すプログラム情報読出し手段と；
この手段により読出されたプログラム情報のうち、命令コード部とアドレス値とを識別する手段と；
この手段により識別された命令コードが実行制御命令の場合にアドレス値を、所定の暗号キーに基づいて暗号化する暗号化手段と；
前記命令コード部及び前記暗号化手段により暗号化されたアドレス値を前記計算機本体に送出するプログラム情報送出手段とを備え、
前記計算機本体は、
前記アドレス値を保持するアドレス値保持手段と；
前記アドレス値とこのアドレス値との相対位置を示すインデックス値とを前記プログラムカードのプログラム情報読み出し手段に送出するアドレス値送出手段と；
前記プログラム情報送出手段により送出された命令コード部及び暗号化されたアドレス値に基づいて命令制御を実行する命令制御実行手段とを備えたことを特徴とするプログラムカードを用いた計算機。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、プログラムカード及びこれを用いた計算機に関するものである。
【０００２】
【従来の技術】
近年、集積回路（ＬＳＩ，ＶＬＳＩ等を含む。以下「ＩＣ等」という）に対する集積化技術の発達はめざましく、カートリッジ又は薄型のカード（以下「カード等」という）内にＲＯＭ型又はＲＡＭ型のＩＣ等を設け、これに計算の手順を示すプログラムと計算データとを（以下「プログラム情報」という）記憶させることにより、容易に着脱可能な計算機の主記憶装置や補助記憶装置（以下「記憶装置」という）として利用することが一般的となっている。
【０００３】
ところで、このＩＣ等に記憶されるプログラム情報等は、２進数で表現されており、このプログラム情報は、一括して計算機内のメインメモリに読み込まれる。そして、このメインメモリから計算機の中央処理装置（以下「ＣＰＵ」という）が逐次読み出しながら、その内容を解釈して命令を実行する。このように、プログラム情報を計算機の記憶装置の中に読み込んで、それを逐次読み出しながら、解釈実行していく計算機をノイマン（Neumann ）型計算機と呼ばれている。
【０００４】
しかしながら、上記ノイマン型計算機における従来の着脱可能な記憶装置では、計算機本体のＣＰＵとの間で所定の信号線を介してプログラム情報の通信を行う必要がある。従って、この信号線を介してあたかもＣＰＵがプログラム情報を読み出すのと同じように、ユーザはプログラム解読装置によりプログラム情報を読み出してプログラム情報の解読を行うことが可能である。このことは、たとえＩＣ化されていても、プログラム情報を信号線を介して通信する限り、プログラム情報の解読が可能であることを意味し、莫大な開発費をかけて生産したプログラム情報を、第三者による不正な複製又は改造から保護することが困難であった。
【０００５】
【発明が解決しようとする課題】
上記ノイマン型計算機における従来の着脱可能な記憶装置では、計算機本体のＣＰＵとの間で所定の信号線を介してプログラム情報の通信を行う必要がある。従って、この信号線を介してあたかもＣＰＵがプログラム情報を読み出すのと同じように、ユーザはプログラム解読装置によりプログラム情報を読み出してプログラム情報の解読を行うことが可能である。このことは、たとえＩＣ化されていても、プログラム情報を信号線を介して通信する限り、プログラム情報の解読が可能であることを意味し、莫大な開発費をかけて生産したプログラム情報を、第三者による不正な複製又は改造等から保護することが困難であった。
そこで、本発明は、プログラム情報の不正な複製又は改造等を困難とする記憶装置及びこれを用いた計算機を提供するものである。
【０００６】
【課題を解決するための手段】
第１発明のうち請求項１に係る発明は、アドレスの付された単位記憶セル群にプログラム情報が記憶され、計算機本体からの指令により所定のインターフェースを介して前記プログラム情報が読出されるプログラムカードにおいて、前記計算機本体から送出される前記アドレスを示すアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出し手段と、この手段により読出されたプログラム情報を前記計算機本体に送出する手段とを備えたプログラムカードである。
【０００７】
ここで、プログラムカード内の単位記憶セル群は、以下の実施例中、プログラム記憶装置に対応する。そして、外部からのアドレス指定信号（アドレス値）及び読み出し／書き込み信号により、アドレス指定信号の示すアドレスの割り当てられた単位記憶セルからプログラム情報を読み出し、また、単位記憶セルに書き込むことができる
また、第１発明のうち請求項２に係る発明は、アドレスの付された単位記憶セル群にプログラム情報を記憶したプログラムカードと、このプログラムカードに記憶されたプログラム情報を所定のインターフェースを介して読み出して、解釈・実行する計算機本体とを備えたプログラムカード及びこれを用いた計算機であって、前記プログラムカードは、前記アドレスを示すアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出し手段と、この手段により読出されたプログラム情報を前記計算機本体に送出する手段とを備え、前記計算機本体は、前記アドレス値を保持するアドレス値保持手段と、この手段に保持されたアドレス値を前記プログラムカードのプログラム情報読出し手段に送出するアドレス値送出手段と、前記プログラム情報送出手段から送出されたプログラム情報に基づいて命令制御を実行する命令制御実行手段とを備えたプログラムカード及びこれを用いた計算機である。
【０００８】
第２発明のうち請求項３に係る発明は、アドレスの付された単位記憶セル群にプログラム情報が記憶され、計算機本体からの指令により所定のインターフェースを介して前記プログラム情報が読出されるプログラムカードにおいて、前記計算機本体から送出された前記アドレスを示すアドレス値を、所定の暗号キーに基づいて復号化する復号化手段と、この手段により復号化されたアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出し手段と、この手段により読出されたプログラム情報のうち、命令コード部とアドレスオペランド部とを識別する手段と、この手段により識別されたアドレスオペランド部を、所定の暗号キーに基づいて暗号化する暗号化手段と、前記命令コード部及び前記暗号化手段により暗号化されたアドレスオペランド部を前記計算機本体に送出するプログラム情報送出手段とを備えたプログラムカードである。
【０００９】
また、第２発明のうち請求項４に係る発明は、アドレスの付された単位記憶セル群にプログラム情報を記憶したプログラムカードと、このプログラムカードに記憶されたプログラム情報を所定のインターフェースを介して読み出して、解釈・実行する計算機本体とを備えたプログラムカード及びこれを用いた計算機であって、前記プログラムカードは、前記アドレスを示すアドレス値を所定の暗号キーに基づいて復号化する復号化手段と、この手段により復号化されたアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出手段と、この手段により読出されたプログラム情報のうち、命令コード部とアドレスオペランド部とを識別する手段と、この手段により識別されたアドレスオペランド部を、所定の暗号キーに基づいて暗号化する暗号化手段と、前記命令コード部及び前記暗号化手段により暗号化されたアドレスオペランド部を前記計算機本体に送出するプログラム情報送出手段とを備え、前記計算機本体は、前記アドレス値を保持するアドレス値保持手段と、この手段に保持されたアドレス値を前記プログラムカードのプログラム情報読出し手段に送出するアドレス値送出手段と、前記プログラム情報送出手段により送出された命令コード部及び暗号化されたアドレスオペランド部に基づいて命令制御を実行する命令制御実行手段とを備えたプログラムカード及びこれを用いた計算機である。
【００１０】
第３発明のうち請求項５に係る発明は、アドレスの付された単位記憶セル群にプログラム情報が記憶され、計算機本体からの指令により所定のインターフェースを介して前記プログラム情報が読出されるプログラムカードにおいて、前記アドレスを示すアドレス値を保持するアドレス値保持手段と、この手段に保持されたアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出手段と、この手段により読出されたプログラム情報が所定の条件を満たす場合に、前記アドレス値保持手段に保持されているアドレス値を変更するアドレス値変更手段と、前記プログラム情報読出手段により読出されたプログラム情報を前記計算機本体に送出するプログラム情報送出手段とを備えたプログラムカードである。
【００１１】
また、第３発明のうち請求項６に係る発明は、アドレスの付された単位記憶セル群にプログラム情報を記憶したプログラムカードと、このプログラムカードに記憶されたプログラム情報を所定のインターフェースを介して読み出して、解釈・実行する計算機本体とを備えたプログラムカード及びこれを用いた計算機であって、前記プログラムカードは、前記アドレスを示すアドレス値を保持するアドレス値保持手段と、この手段に保持されたアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出手段と、この手段により読出されたプログラム情報が所定の条件を満たす場合に、前記アドレス値保持手段に保持されているアドレス値を変更するアドレス値変更手段と、前記プログラム情報読出手段により読出されたプログラム情報を前記計算機本体に送出するプログラム情報送出手段とを備え、前記計算機本体は、前記プログラム情報送出手段により送出されたプログラム情報に基づいて命令制御を実行する命令制御実行手段とを備えたプログラムカード及びこれを用いた計算機である。
【００１２】
【作用】
第１発明によれば、プログラム情報を格納したプログラム記憶装置と機械語命令読み出し装置とをプログラムカード内に設けて、１ステップずつ計算機本体に機械語命令を送出する。これによって、全プログラム情報を計算機の主記憶装置にロードする必要がなくなる。
【００１３】
第２発明によれば、プログラムカード内に暗号化装置、暗号キー発生装置及び復号化装置を設け、プログラムカウンタの内容を暗号化装置により暗号化する。ここで、生成される暗号キーは毎回変化するので、もとのアドレス値が同じであっても毎回異なる暗号化されたアドレス値になる。従って、外部からはプログラム上のどの場所に戻ったのかがわからなくなり、プログラムの実行制御を外部から隠ぺいすることができる。
【００１４】
第３発明によれば、プログラムカウンタ及びこのプログラムカウンタの内容を制御するプログラムカウンタ計算装置をプログラムカード内に設けているので、プログラムの実行制御が計算機本体と完全に分離されることになる。これにより、通常のプログラムカウンタの更新及び実行制御命令に基づくプログラムカウンタの更新をプログラムカード内で行うので、ＪＵＭＰ命令等によりプログラムを実行する場合にも実行制御を完全に隠ぺいすることができるようになる。
【００１５】
【実施例】
以下、図面を参照しながら本発明の一実施例について説明する。
図１は、本発明に係るプログラムカード及びこれを用いた計算機の適用対象を示す図である。同図に示すように、本発明は、プログラム情報が記憶されたプログラムカード１をプログラムカードリーダ２に装着することにより計算機本体３からアクセス可能とし、該プログラム情報に従ってプログラムを実行するものに関するものである。
【００１６】
ここで、プログラムカード１は、内部に設けられたＲＯＭやＲＡＭ、ＥＥＰＲＯＭ等の集積回路によりプログラム情報を記憶することが可能ないわゆるＩＣカードであり、カード型のみならずカートリッジ型のものも含まれるものとする。また、このプログラムカード１は、外部ケースにより内部の集積回路が保護されているが、外部ケースを開封するとＩＣカードの内容が消失するような構造になっている方が好ましい。
【００１７】
また、プログラムカードリーダ２は、プログラムカード１を着脱することができ、装着されたプログラムカード１内に記憶されたプログラム情報を読出し、また、計算機本体３からのプログラム情報を書込む場合の入出力装置の役目を果たしている。
【００１８】
計算機本体３は、キーボートやディスプレイ、補助記憶装置、主記憶装置、中央処理装置等から構成され、通常の計算機の機能を備えているものとし、本発明ではそれに加え、プログラムカードリーダ２を介して後述するプログラムカード１とアクセスするための機能を備えている。
［第１発明］
図２は、第１発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図である。
【００１９】
本発明は、プログラムカード内にプログラム情報を記憶し、計算機本体からの読み出し要求により、プログラムカード内に格納されたプログラム情報をその都度計算機本体に送出する
即ち、同図において、命令制御装置２０１は、プログラムカウンタ（ＰＣ）２０２の内容（アドレス値）をプログラムリーダ２を介してプログラムカード１内の機械語命令読み出し装置２０３に送出する。機械語命令読み出し装置２０３は、アドレス値に従ってプログラム記憶装置２０４から機械語命令を読み出し、これをプログラムリーダ２を介して計算機本体３の命令解釈実行装置２０５に送出する。命令解釈実行装置は、この機械語命令を解釈し、その結果に基づいて命令の実行を行い、必要であれば主記憶装置２０６をアクセスする。
【００２０】
以上のような本発明に係るプログラムカード及びこれを用いた計算機の構成をさらに詳述する。
図３は、第１発明に係るプログラムカード及びこれを用いた計算機の構成を示す詳細図である。
【００２１】
同図において、計算機本体に設けられている演算装置（ＡＬＵ）３０１は、Ｌバス及びＲバスで与えられたデータに対し演算指定により指定された演算を行って、演算結果をＯバスに出力する。
【００２２】
条件コードレジスタ（ＣＣＲ）３０２は、演算装置３０１で行われた演算結果の状態（例えば、Ｎ，Ｚ，Ｖ，Ｃ）を後述する命令制御装置２０１からの指定によりセットすることができる。
【００２３】
アキュムレータレジスタ（ＡＣＣ）３０３は、いわゆる作業用レジスタであり、Ｏバスから取り込んだデータをＬバスに出力することができる。
上述したプログラムカウンタ２０２は、命令制御装置２０１からの指令により、そのアドレス値を１増加することができるようになっている。プログラムカウンタ２０２の内容は、Ｌバス及びＡ1 バスに出力することができるようになっている。
【００２４】
主記憶番地レジスタ（ＭＡＲ）３０４、読み出し用データレジスタ（ＲＤＲ）３０５、書き込み用データレジスタ（ＷＤＲ）３０６は、それぞれ主記憶装置の読み書きに使われる。
【００２５】
命令レジスタ（ＩＲ）３０７は、命令コード部とオペランド部とから構成される機械語命令をセットすることができ、命令コード部は命令制御装置２０１に、オペランド部はＬバスに送出される。
【００２６】
命令制御装置２０１は、命令コード部や条件コードレジスタ３０２の内容により、上記各レジスタから各バスへの出力、各バスから各レジスタへの入力、演算の指定、主記憶装置２０６の読み書き制御等を行うことができる。このための制御信号線は、命令制御装置２０１から各レジスタに配線されているが、ここでは省略する。
【００２７】
一方、プログラムカード内に設けられている機械語命令読み出し装置２０３は、計算機本体に設けられたプログラムカウンタ２０２からアドレス値を取り込み、これをプログラム記憶装置２０４に送出する。同時に、機械語命令読み出し装置２０３は、そのアドレス値を受けることによって、読み出し信号線３０８ａを読み出し状態（例えば、「Ｈ」）に、選択信号線３０９ａをアクティブ（例えば、「Ｌ」）にして、プログラム記憶装置２０４からデータを読み出し、これを計算機本体の命令レジスタ３０７に送出する。
【００２８】
以上のように構成された本発明に係るプログラムカーと及びこれを用いた計算機は、以下のように動作する。
即ち、命令制御装置２０１は、まずプログラムカウンタ２０２の内容をＡ1 バスに出力する。Ａ1 バスに出力されたアドレス値は、プログラムカードリーダ（図示せず）を介して命令読み出し装置２０３に送出される。命令読み出し装置２０３は、プログラムカウンタ２０２からのアドレス値をプログラム記憶装置２０４に送出するとともに、読み出し信号線３０８ａを「Ｈ」に、選択信号線３０９ｂをアクティブにする。そして、プログラム記憶装置読み出し時間だけ待った後、つまり、読み出されたデータが命令読み出し装置２０３に取り込まれるであろう時間後に、これを取り込む。さらに命令読み出し装置２０３は、読み出されたデータをプログラムカードリーダを介して命令レジスタ３０７に送出し、命令レジスタ３０７はこれを取り込む。この動作は、通常の計算機でいう命令フェッチに相当する。命令フェッチの後、次の命令の実行へ移る準備としてプログラムカウンタ２０２の内容を１増加させる。
【００２９】
命令レジスタ３０７は、取り込まれたデータのうち命令コード部を命令制御装置２０１に送出することにより、命令制御装置２０１ではその命令コードを解釈し、その結果に従って動作を行う。
【００３０】
例えば、命令レジスタに取り込まれたデータがＬＯＡＤ命令であるとする。すると命令制御装置２０１は、命令レジスタ３０７のオペランド部をＲバスに出力し、Ｌバスには何も出力せずに、演算指定を加算にする。これによってＬバスのデータはそのままＯバスに出力されるので、このデータを主記憶番地レジスタ３０４に取り込む。
【００３１】
次に、主記憶番地レジスタ５の内容をＡ2 バスに出力し、読み出し信号線３０８ｂを「Ｈ」に選択信号線３０９ｂをアクティブにして主記憶装置２０６を読む。これによって主記憶番地レジスタ３０４の内容、つまりＬＯＡＤ命令のオペランド部で示された値に従って主記憶装置から読み出される。この動作は、通常の計算機でいうオペランドフェッチに相当する。そして、記憶装置の読み出し時間だけ待った後、Ｄバス上に読み出されたデータを読み出し用データレジスタ３０５に取り込む。
【００３２】
次に、読み出し用データレジスタ３０５の内容をＲバスに出力し、Ｌバスには何も出力せずに、演算指定を加算にする。この結果、Ｒバス上のデータはそのままＯバスに出力されるので、Ｏバス上のデータをアキュムレータレジスタ３０３に取り込む。また、演算装置の演算結果の状態のうちの「Ｎ」と「Ｚ」に対応する部分を条件コードレジスタ３０２に取り込む。この動作は、命令実行に相当する。
【００３３】
このようにしてＬＯＡＤ命令の実行が完了するので、命令制御装置２０１は、命令フェッチ、オペランドフェッチ、命令実行を繰り返す。
なお、本実施例においては、ＬＯＡＤ命令のみ示したが、主記憶装置２０６に書込む命令であるＳＴＯＲＥ命令や実行順序を制御するＪＵＭＰ命令においても同様に動作する。
【００３４】
以上のように、第１の発明によれば、プログラム情報を格納したプログラム記憶装置３１１と機械語命令読み出し装置とをプログラムカード内に設けて、１ステップずつ計算機本体に機械語命令を送出しているので、全プログラム情報を計算機の主記憶装置にロードする必要がなくなる。従って、ユーザは、プログラム情報の特定の実行系列については把握することができるが、たかだか１回の実行では全ての命令が実行されず、プログラム全体がどのようになっているかを容易に解読することができない。
［第２発明］
図４は、第２発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図である。
【００３５】
本発明は、プログラムカード内に格納されたプログラム情報を特定の実行系列に対しても解読を困難とすべく、第１発明に対しさらに暗号化・復号化に関する構成を加えている。なお、第１発明と同じものに対しては、同じ符号を付している。
【００３６】
即ち、同図において、プログラムカウンタ２０２からの内容をプログラムリーダ２を介してプログラムカード１内の復号化装置４０１に送出する。ここで、プログラムカウンタ２０２の内容は、後述する暗号化装置４０２により暗号化されたアドレス値Ｘ（Ｘは任意のビット数）とインデックス値Ｃ（Ｃは任意のビット数）とから構成されており、これを「（Ｘ，Ｃ）」と表すこととする。
【００３７】
復号化装置４０１では、暗号化されたアドレス値Ｘを復号化し、この復号化された値ｘにインデックス値Ｃを加えた値を本来のアドレス値として、機械語命令読み出し装置２０３に送出する。機械語命令読み出し装置２０３は、このアドレス値に従ってプログラム記憶装置２０４から機械語命令を読み出し、これを暗号化装置４０２に送出する。
【００３８】
暗号化装置４０２では、機械語命令のうちオペランド部の値を暗号キー発生装置４０３により生成された暗号キーに従って暗号化した後、この暗号化されたアドレス値Ｘ’をプログラムリーダ２を介して計算機本体３の命令解釈実行装置２０５に送出する。
【００３９】
命令解釈実行装置２０５は、この機械語命令を解釈し、その結果に基づいて命令の実行を行い、必要であれば主記憶装置２０６をアクセスする。また、本発明では、命令解釈実行装置２０５によって実行制御命令（例えば、ＪＵＭＰ命令等）であると解釈された場合には、オペランド部に記述されている暗号化されたアドレス値Ｘ’をプログラムカウンタ２０２に新たにセットする。これに対して、実行制御命令以外の命令（例えば、ＬＯＡＤ命令等）の場合には、プログラムカウンタ２０２の内容のインデックス値を１つ増やす。
【００４０】
例えば、プログラムの実行アドレスを図５（ａ）に示すプログラムに従って説明する。即ち、同図（ａ）に示すプログラムは、メモリＭ２の内容にメモリＭ３の内容を乗じた値をメモリＭ１の内容とするプログラムである。今、メモリＭ３の内容が「２」の場合、プログラムカウンタ２０２の内容は同図（ｂ）のようになる。つまり、Ｓ５やＳ９のＪＵＭＰ命令（ＢＬＥ、ＪＭＰ）を解釈実行する際に、オペランド部に記述されたアドレス値「Ｓ１０」や「Ｓ２」が暗号化されるので、外部からはプログラム上のどの場所に戻ったのかがわからなくなる。これによって、Ｓ２乃至Ｓ９のループ構造が隠ぺいすることができ、プログラムの解読画より一層困難なものとなる。
【００５１】
【発明の効果】
以上のように、第１発明によれば、プログラム情報を格納したプログラム記憶装置と機械語命令読み出し装置とをプログラムカード内に設けて、１ステップずつ計算機本体に機械語命令を送出しているので、全プログラム情報を計算機の主記憶装置にロードする必要がなくなる。従って、ユーザは、プログラム情報の特定の実行系列については把握することができるが、たかだか１回の実行では全ての命令が実行されず、プログラム全体がどのようになっているかを容易に解読することができなくなる。
【００５２】
第２発明によれば、実行制御命令であるＪＵＭＰ命令等を解釈実行する際に、オペランド部に記述されたアドレス値が暗号化されるので、外部からはプログラム上のどの場所に戻ったのかがわからなくなる。これによって、プログラムのループ構造が隠ぺいすることができ、プログラムの解読画より一層困難なものとなる。
【００５３】
第３発明によれば、通常のプログラムカウンタの更新及び実行制御命令に基づくプログラムカウンタの更新をプログラムカード内で行うので、実行制御命令であるＪＵＭＰ命令等によりプログラムを実行する場合にも実行制御を完全に隠ぺいすることができるようになる。
【図面の簡単な説明】
【図１】  本発明に係るプログラムカード及びこれを用いた計算機の適用対象を示す図。
【図２】  第１発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図。
【図３】  第１発明に係るプログラムカード及びこれを用いた計算機の構成を示す詳細図。
【図４】  第２発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図。
【図５】  実行制御を説明するためのプログラムを示す図。
【図６】  第３発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図。
【図７】  第３発明に係るプログラムカード及びこれを用いた計算機の構成を示す詳細図。
【符号の説明】
１…プログラムカード
２…プログラムカードリーダ
３…計算機本体
２０１…命令制御装置
２０２…プログラムカウンタ
２０３…機械語命令読みだし装置
２０４…プログラム記憶装置
２０５…命令解釈実行装置
２０６…主記憶装置
【図１】
0003642533.tif 000002
【図２】
0003642533.tif 000003
【図３】
0003642533.tif 000004
【図４】
0003642533.tif 000005
【図５】
0003642533.tif 000006
【図６】
0003642533.tif 000007
【図７】
0003642533.tif 000008