(57)【特許請求の範囲】
【請求項１】
顧客が持参した記憶媒体に格納されているソフトウェアのプログラムを書き換えるシステムであって、
顧客に販売する複数種類のソフトウェアのプログラムを記憶したソフトウェア記憶手段と、
前記ソフトウェア記憶手段に記憶されている複数種類のソフトウェアの中から、顧客が購入するソフトウェアを複数選択可能な購入ソフトウェア選択手段と、
前記記憶媒体の空き容量が前記購入ソフトウェア選択手段によって選択されたすべてのソフトウェアの合計データ量よりも大きいか否かを判断する第１判断手段と、
前記第１判断手段により大きいと判断された場合にのみ、当該選択されたすべてのソフトウェアのプログラムを前記記憶媒体に順次に書き込む処理を開始する書込制御手段と、
前記第１判断手段により大きいと判断されなかった場合に、前記購入ソフトウェア選択手段によって選択されたソフトウェアの中から購入の選択を取り消すべきソフトウェアを選択させる購入取消ソフトウェア選択手段と、
前記購入取消ソフトウェア選択手段により購入の選択を取り消すべきことが選択されたソフトウェアの選択を取り消す選択取消手段とを備える、ソフトウェア書換システム。
【請求項２】
前記第１判断手段により大きいと判断されなかった場合に、前記記憶媒体に書き込まれているソフトウェアの中から消去すべきソフトウェアを顧客に選択させる消去ソフトウェア選択手段と、
前記消去ソフトウェア選択手段により消去すべきことが選択されたソフトウェアのプログラムを前記記憶媒体から消去する消去手段とをさらに備える、請求項１に記載のソフトウェア書換システム。
【請求項３】
前記購入取消ソフトウェア選択手段によってソフトウェアが選択される毎に、前記購入ソフトウェア選択手段によって選択されたソフトウェアからそのときまでに購入の選択を取り消すべきことが選択されたソフトウェアを除いたソフトウェアの合計データ量を計算して表示し、同時に、前記消去ソフトウェア選択手段によってソフトウェアが選択される毎に、そのときまでに消去すべきことが選択されたソフトウェアを前記記憶媒体から消去したと仮定した場合における当該記憶媒体の空き容量を計算して表示する合計データ量・空き容量表示制御手段をさらに備える、請求項２に記載のソフトウェア書換システム。
【請求項４】
前記消去ソフトウェア選択手段によって選択されたソフトウェアを前記記憶媒体から消去したと仮定した場合における当該記憶媒体の空き容量が前記購入ソフトウェア選択手段によって選択されたソフトウェアから前記購入取消ソフトウェア選択手段によって選択されたソフトウェアを除いたソフトウェアの合計データ量よりも大きいか否かを判断する第２判断手段をさらに備え、
前記消去手段は、前記第２判断手段により大きいと判断された場合にのみ、前記消去ソフトウェア選択手段によって選択されたソフトウェアのプログラムを前記記憶媒体から消去する、請求項２に記載のソフトウェア書換システム。
【請求項５】
前記消去ソフトウェア選択手段によって選択されたソフトウェアを前記記憶媒体から消去したと仮定した場合における当該記憶媒体の空き容量が前記購入ソフトウェア選択手段によって選択されたソフトウェアから前記購入取消ソフトウェア選択手段によって選択されたソフトウェアを除いたソフトウェアの合計データ量よりも大きいか否かを判断する第２判断手段をさらに備え、
前記書込制御手段は、前記第２判断手段により大きいと判断された場合にのみ、前記購入ソフトウェア選択手段によって選択されたソフトウェアのプログラムを前記記憶媒体に書き込み、
前記消去手段は、前記第２判断手段により大きいと判断された場合にのみ、前記消去ソフトウェア選択手段によって選択されたソフトウェアのプログラムを前記記憶媒体から消去する、請求項２に記載のソフトウェア書換システム。
【請求項６】
顧客が持参した記憶媒体に格納されているソフトウェアのプログラムを書き換えるシステムであって、
顧客に販売する複数種類のソフトウェアのプログラムを記憶したソフトウェア記憶手段と、
前記ソフトウェア記憶手段に記憶されている複数種類のソフトウェアの中から、顧客が購入するソフトウェアを選択可能な購入ソフトウェア選択手段と、
前記記憶媒体の空き容量が前記購入ソフトウェア選択手段によって選択されたソフトウェアの合計データ量よりも大きいか否かを判断する第１判断手段と、
前記第１判断手段により大きいと判断された場合にのみ、当該選択されたソフトウェアのプログラムを前記記憶媒体に順次に書き込む書込制御手段と、
前記第１判断手段により大きいと判断されなかった場合に、前記記憶媒体に書き込まれているソフトウェアの中から、消去すべきソフトウェアを顧客に選択させる消去ソフトウェア選択手段と、
前記消去ソフトウェア選択手段によって選択されたソフトウェアのプログラムを前記記憶媒体から消去する消去手段を備える、ソフトウェア書換システム。
【請求項７】
前記消去ソフトウェア選択手段によって選択されたソフトウェアを前記記憶媒体から消去したと仮定した場合における当該記憶媒体の空き容量が前記購入ソフトウェア選択手段によって選択されたソフトウェアの合計データ量よりも大きいか否かを判断する第２判断手段をさらに備え、
前記消去手段は、前記第２判断手段により大きいと判断された場合にのみ、前記消去ソフトウェア選択手段によって選択されたソフトウェアのプログラムを前記記憶媒体から消去する、請求項６に記載のソフトウェア書換システム。
【請求項８】
前記消去ソフトウェア選択手段によって選択されたソフトウェアを前記記憶媒体から消去したと仮定した場合における当該記憶媒体の空き容量が前記購入ソフトウェア選択手段によって選択されたソフトウェアの合計データ量よりも大きいか否かを判断する第２判断手段をさらに備え、
前記書込制御手段は、前記第２判断手段により大きいと判断された場合にのみ、前記購入ソフトウェア選択手段によって選択されたソフトウェアのプログラムを前記記憶媒体に書き込み、
前記消去手段は、前記第２判断手段により大きいと判断された場合にのみ、前記消去ソフトウェア選択手段によって選択されたソフトウェアのプログラムを前記記憶媒体から消去する、請求項６に記載のソフトウェア書換システム。
【請求項９】
前記購入ソフトウェア選択手段によってソフトウェアが選択される毎に、そのときまでに選択されたソフトウェアの合計データ量を計算して表示する合計データ量表示制御手段をさらに備える、請求項１または２に記載のソフトウェア書換システム。
【請求項１０】
前記消去ソフトウェア選択手段によってソフトウェアが選択される毎に、そのときまでに消去すべきことが選択されたソフトウェアを前記記憶媒体から消去したと仮定した場合における当該記憶媒体の空き容量を計算して表示する空き容量表示制御手段をさらに備える、請求項２または６に記載のソフトウェア書換システム。
【請求項１１】
顧客に販売する複数種類のソフトウェアを記憶し、顧客が持参した記憶媒体に格納されているソフトウェアのプログラムを書き換えるコンピュータシステムのコンピュータに実行させるソフトウェア書換プログラムを記録した記録媒体であって、
前記コンピュータシステムのコンピュータに、
前記複数種類のソフトウェアの中から顧客が購入する複数のソフトウェアを選択させ、前記記憶媒体の空き容量が当該選択された複数のソフトウェアの合計データ量よりも大きいか否かを判断させる判断ステップと、
前記判断ステップにおいて大きいと判断された場合にのみ、当該選択されたすべてのソフトウェアのプログラムを前記記憶媒体に順次に書き込む処理を開始させる書込制御ステップと、
前記判断ステップにおいて大きいと判断されなかった場合に、前記購入ソフトウェア選択ステップにおいて選択されたソフトウェアの中から購入の選択を取り消すべきソフトウェアを選択させる購入取消ソフトウェア選択ステップと、
前記購入取消ソフトウェア選択ステップにおいて購入の選択を取り消すべきことが選択されたソフトウェアの選択を取り消させる選択取消ステップとを実行させるためのソフトウェア書換プログラムを記録した、コンピュータ読み取り可態な記録媒体。
【請求項１２】
顧客に販売する複数種類のソフトウェアを記憶し、顧客が持参した記憶媒体に格納されているソフトウェアのプログラムを書き換えるコンピュータシステムのコンピュータに実行させるソフトウェア書換プログラムを記録した記録媒体であって、
前記コンピュータシステムのコンピュータに、
前記複数種類のソフトウェアの中から顧客が購入する複数のソフトウェアを選択させ、前記記憶媒体の空き容量が当該選択された複数のソフトウェアの合計データ量よりも大きいか否かを判断させる判断ステップと、
前記判断ステップにおいて大きいと判断された場合にのみ、当該選択されたソフトウェアのプログラムを前記記憶媒体に順次に書き込ませる書込制御ステップと、
前記判断ステップにおいて大きいと判断されなかった場合に、前記記憶媒体に書き込まれているソフトウェアの中から、消去すべきソフトウェアを顧客に選択させる消去ソフトウェア選択ステップと、
前記消去ソフトウェア選択ステップにおいて選択されたソフトウェアのプログラムを前記記憶媒体から消去させる消去ステップとを実行させるためのソフトウェア書換プログラムを記録した、コンピュータ読み取り可態な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ソフトウェア書換システムに関し、より特定的には、ユーザが持参した記憶媒体にプログラム（例えば、ゲーム用プログラム）を書き込むことにより、当該プログラムをユーザに販売するためのソフトウェア書換システムに関する。
【０００２】
【従来の技術】
コンピュータ装置の急速な普及に伴い、ゲーム、教育、ビジネス等の広い分野において、頻繁にソフトウェアが取り引きされている。現在、取引の主流は、ソフトウェアのプログラムが格納された記録媒体（フロッピーディスク、ＲＯＭカートリッジ、ＣＤ−ＲＯＭ等）を、パッケージソフトとしてユーザに提供する方法である。
【０００３】
しかしながら、ユーザにとっては、プログラム自体が重要なのであって、プログラムを格納する記録媒体は重要ではない。もし、プログラムのみをユーザに提供できれば、記録媒体にかかるコストを削減でき、より安価にソフトウェアの提供が可能となる。一方、販売店側にしても、プログラムを格納した記録媒体をソフトウェアの種類毎に在庫しておく必要がないので、省スペース化が図れると共に、資金の滞留が防げるので、より健全な経営が可能となる。
【０００４】
そこで、プログラムのみを販売できるような販売装置の実現が強く望まれている。本発明は、ユーザが持参した記録媒体にプログラムを書き込むことにより、プログラムのみをユーザに販売するシステムに向けられているが、そのためには記録媒体に格納されたプログラムを書き換える必要がある。
【０００５】
従来、記録媒体にプログラムを書き込む技術としては、特開昭６０−６８４号公報（以下、第１の従来技術と称す）や特開昭５９−２２９６７３号公報（以下、第２の従来技術と称す）に記載されたものが知られている。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記第１および第２の従来技術は、いずれも記録媒体に１種類のプログラムを書き込むことのみを意図しており、１つの記録媒体に複数種類のプログラムを整理して書き込む際の問題点および手法については、何らの教示も示唆もしていない。もし、常に１つの記録媒体に１種類のプログラムのみが書き込まれるような場合、ユーザは、プログラム毎に記録媒体のコストを負担しなければならず、期待されるようなコストメリットを享受できない。また、上記第１および第２の従来技術を拡張して、１つの記録媒体に複数種類のプログラムを書き込もうすると、どのプログラムを書き換えるかが分からず、残しておきたいプログラムが上書きされてしまうおそれがある。また、記録媒体の残容量がどれぐらいあるかも分からないため、ユーザ側は購入可能なプログラムの種類の選択に際して、書き込もうとするプログラムの容量と、書込済みのプログラムの種類別の容量を知り、人為的に判断しながら適切な容量の範囲の種類を選択しなければならない。このように、従来技術による書き込み装置をソフトウェア販売装置として使用した場合、そのような販売装置は、使い勝手が悪く、また残しておきたいプログラムを破壊するおそれもある。
【０００７】
それゆえに、本発明の目的は、ソフトウェアのみを効率的に販売でき、しかも使い勝手の良いソフトウェア書換システムを提供することである。
【０００８】
【課題を解決するための手段および発明の効果】
第１の発明は、顧客が持参した記憶媒体に格納されているソフトウェアのプログラムを書き換えるシステムであって、
顧客に販売する複数種類のソフトウェアのプログラムを記憶したソフトウェア記憶手段と、
ソフトウェア記憶手段に記憶されている複数種類のソフトウェアの中から、顧客が購入するソフトウェアを複数選択可能な購入ソフトウェア選択手段と、
記憶媒体の空き容量が購入ソフトウェア選択手段によって選択されたソフトウェアの合計データ量よりも大きいか否かを判断する第１判断手段と、
第１判断手段により大きいと判断された場合にのみ、当該選択されたすべてのソフトウェアのプログラムを記憶媒体に順次に書き込む処理を開始する書込制御手段と、
第１判断手段により大きいと判断されなかった場合に、購入ソフトウェア選択手段によって選択されたソフトウェアの中から購入の選択を取り消すべきソフトウェアを選択させる購入取消ソフトウェア選択手段と、
購入取消ソフトウェア選択手段により購入の選択を取り消すべきことが選択されたソフトウェアの選択を取り消す選択取消手段とを備えている。
【０００９】
上記のように、第１の発明によれば、顧客が持参した記憶媒体に格納されたソフトウェアのプログラムを書き換えることで、ソフトウェアのみを販売することができる。また、記憶媒体にすでにソフトウェアのプログラムが書き込まれている場合であっても、その空き容量が選択されたソフトウェアの合計データ量よりも大きい場合にのみ、選択されたソフトウェアのプログラムを書き込むようにしているので、すでに書き込まれているプログラムが上書きされて破壊されるような事態を防ぐことができる。
【００１０】
第２の発明は、第１の発明において、
第１判断手段により大きいと判断されなかった場合に、前記記憶媒体に書き込まれているソフトウェアの中から消去すべきソフトウェアを顧客に選択させる消去ソフトウェア選択手段と、
消去ソフトウェア選択手段により消去すべきことが選択されたソフトウェアのプログラムを記憶媒体から消去する消去手段とをさらに備える。
【００１１】
第３の発明は、第２の発明において、
購入取消ソフトウェア選択手段によってソフトウェアが選択される毎に、購入ソフトウェア選択手段によって選択されたソフトウェアからそのときまでに購入の選択を取り消すべきことが選択されたソフトウェアを除いたソフトウェアの合計データ量を計算して表示し、同時に、消去ソフトウェア選択手段によってソフトウェアが選択される毎に、そのときまでに消去すべきことが選択されたソフトウェアを記憶媒体から消去したと仮定した場合における当該記憶媒体の空き容量を計算して表示する合計データ量・空き容量表示制御手段をさらに備える。
【００１２】
上記のように、第２乃至３の発明によれば、記憶媒体に書き込み済みのソフトウェアを選択的に消去できるようにしたので、購入のために選択したソフトウェアの合計データ量が記憶媒体の空き容量を越えていても、不必要な書き込み済みのソフトウェアを消去することで、購入が可能となる。
【００１３】
第４の発明は、第２の発明において、
消去ソフトウェア選択手段によって選択されたソフトウェアを記憶媒体から消去したと仮定した場合における当該記憶媒体の空き容量が購入ソフトウェア選択手段によって選択されたソフトウェアから購入取消ソフトウェア選択手段によって選択されたソフトウェアを除いたソフトウェアの合計データ量よりも大きいか否かを判断する第２判断手段をさらに備え、
消去手段は、第２判断手段により大きいと判断された場合にのみ、消去ソフトウェア選択手段によって選択されたソフトウェアのプログラムを記憶媒体から消去する。
【００１４】
第５の発明は、第２の発明において、
消去ソフトウェア選択手段によって選択されたソフトウェアを記憶媒体から消去したと仮定した場合における当該記憶媒体の空き容量が購入ソフトウェア選択手段によって選択されたソフトウェアから購入取消ソフトウェア選択手段によって選択されたソフトウェアを除いたソフトウェアの合計データ量よりも大きいか否かを判断する第２判断手段をさらに備え、
書込制御手段は、第２判断手段により大きいと判断された場合にのみ、購入ソフトウェア選択手段によって選択されたソフトウェアのプログラムを記憶媒体に書き込み、
消去手段は、第２判断手段により大きいと判断された場合にのみ、消去ソフトウェア選択手段によって選択されたソフトウェアのプログラムを記憶媒体から消去する。
【００１５】
上記のように、第４乃至５の発明によれば、所定の条件（すなわち、消去のために選択されたソフトウェアを記憶媒体から消去したと仮定した場合における記憶媒体の空き容量が、購入のために選択されたソフトウェアの合計データ量よりも大きいという条件）が成立した場合にのみ、記憶媒体から消去のために選択されたソフトウェアのプログラムを消去するようにしたので、所定の条件が成立しないのに誤ってソフトウェアを消去してしまう事態を防ぐことができる。
【００１６】
第６の発明は、顧客が持参した記憶媒体に格納されているソフトウェアのプログラムを書き換えるシステムであって、
顧客に販売する複数種類のソフトウェアのプログラムを記憶したソフトウェア記憶手段と、
ソフトウェア記憶手段に記憶されている複数種類のソフトウェアの中から、顧客が購入するソフトウェアを選択可能な購入ソフトウェア選択手段と、
記憶媒体の空き容量が購入ソフトウェア選択手段によって選択されたソフトウェアの合計データ量よりも大きいか否かを判断する第１判断手段と、
第１判断手段により大きいと判断された場合にのみ、当該選択されたソフトウェアのプログラムを記憶媒体に順次に書き込む書込制御手段と、
第１判断手段により大きいと判断されなかった場合に、記憶媒体に書き込まれているソフトウェアの中から、消去すべきソフトウェアを顧客に選択させる消去ソフトウェア選択手段と、
消去ソフトウェア選択手段によって選択されたソフトウェアのプログラムを記憶媒体から消去する消去手段を備える。
【００１７】
上記のように、第６の発明によれば、顧客が持参した記憶媒体に格納されたソフトウェアのプログラムを書き換えることで、ソフトウェアのみを販売することができる。また、記憶媒体にすでにソフトウェアのプログラムが書き込まれている場合であっても、その空き容量が選択されたソフトウェアの合計データ量よりも大きい場合にのみ、選択されたソフトウェアのプログラムを書き込むようにしているので、すでに書き込まれているプログラムが上書きされて破壊されるような事態を防ぐことができる。更に、記憶媒体の空き容量が選択されたソフトウェアの合計データ量よりも小さい場合は、記録媒体内のソフトウェアを選択消去することができ、利便性を高めることができる。
【００１８】
第７の発明は、第６の発明において、
消去ソフトウェア選択手段によって選択されたソフトウェアを記憶媒体から消去したと仮定した場合における当該記憶媒体の空き容量が購入ソフトウェア選択手段によって選択されたソフトウェアの合計データ量よりも大きいか否かを判断する第２判断手段をさらに備え、
消去手段は、第２判断手段により大きいと判断された場合にのみ、消去ソフトウェア選択手段によって選択されたソフトウェアのプログラムを記憶媒体から消去する。
【００１９】
第８の発明は、第６の発明において、
消去ソフトウェア選択手段によって選択されたソフトウェアを記憶媒体から消去したと仮定した場合における当該記憶媒体の空き容量が購入ソフトウェア選択手段によって選択されたソフトウェアの合計データ量よりも大きいか否かを判断する第２判断手段をさらに備え、
書込制御手段は、第２判断手段により大きいと判断された場合にのみ、購入ソフトウェア選択手段によって選択されたソフトウェアのプログラムを記憶媒体に書き込み、
消去手段は、第２判断手段により大きいと判断された場合にのみ、消去ソフトウェア選択手段によって選択されたソフトウェアのプログラムを記憶媒体から消去する。
【００２０】
上記のように、第７乃至８の発明によれば、所定の条件（すなわち、消去のために選択されたソフトウェアを記憶媒体から消去したと仮定した場合における記憶媒体の空き容量が、購入のために選択されたソフトウェアの合計データ量よりも大きいという条件）が成立した場合にのみ、記憶媒体から消去のために選択されたソフトウェアのプログラムを消去するようにしたので、所定の条件が成立しないのに誤ってソフトウェアを消去してしまう事態を防ぐことができる。
【００２１】
第９の発明は、第１または第２の発明において、購入ソフトウェア選択手段によってソフトウェアが選択される毎に、そのときまでに選択されたソフトウェアの合計データ量を計算して表示する合計データ量表示制御手段をさらに備える。
【００２２】
第１０の発明は、第２または第６の発明において、消去ソフトウェア選択手段によってソフトウェアが選択される毎に、そのときまでに消去すべきことが選択されたソフトウェアを記憶媒体から消去したと仮定した場合における当該記憶媒体の空き容量を計算して表示する空き容量表示制御手段をさらに備える。
【００２３】
上記のように、第９乃至第１０の発明によれば、そのときまでに選択されたソフトウェアの合計データ量や、消去のために選択されたソフトウェアを記憶媒体から消去したと仮定した場合における記憶媒体の空き容量を容易に確認することができるので、消去すべきソフトウェアを必要以上に多く選択することがなくなる。
【００２４】
第１１の発明は、顧客に販売する複数種類のソフトウェアを記憶し、顧客が持参した記憶媒体に格納されているソフトウェアのプログラムを書き換えるコンピュータシステムのコンピュータに実行させるソフトウェア書換プログラムを記録した記録媒体である。当該ソフトウェア書換プログラムは、コンピュータシステムのコンピュータに、判断ステップと、書込制御ステップと、購入取消ソフトウェア選択ステップと、選択取消ステップとを実行させる。判断ステップは、複数種類のソフトウェアの中から顧客が購入する複数のソフトウェアを選択させ、記憶媒体の空き容量が当該選択された複数のソフトウェアの合計データ量よりも大きいか否かを判断させる。書込制御ステップは、判断ステップにおいて大きいと判断された場合にのみ、当該選択されたすべてのソフトウェアのプログラムを記憶媒体に順次に書き込む処理を開始させる。購入取消ソフトウェア選択ステップは、判断ステップにおいて大きいと判断されなかった場合に、購入ソフトウェア選択ステップにおいて選択されたソフトウェアの中から購入の選択を取り消すべきソフトウェアを選択させる。選択取消ステップは、購入取消ソフトウェア選択ステップにおいて購入の選択を取り消すべきことが選択されたソフトウェアの選択を取り消させる。
【００２５】
第１２の発明は、顧客に販売する複数種類のソフトウェアを記憶し、顧客が持参した記憶媒体に格納されているソフトウェアのプログラムを書き換えるコンピュータシステムのコンピュータに実行させるソフトウェア書換プログラムを記録した記録媒体である。当該当該ソフトウェア書換プログラムは、判断ステップと、書込制御ステップと、消去ソフトウェア選択ステップと、消去ステップとをコンピュータに実行させる。判断ステップでは、複数種類のソフトウェアの中から顧客が購入する複数のソフトウェアを選択させ、記憶媒体の空き容量が当該選択された複数のソフトウェアの合計データ量よりも大きいか否かを判断させる。書込制御ステップでは、判断ステップにおいて大きいと判断された場合にのみ、当該選択されたソフトウェアのプログラムを記憶媒体に順次に書き込ませる。消去ソフトウェア選択ステップでは、判断ステップにおいて大きいと判断されなかった場合に、記憶媒体に書き込まれているソフトウェアの中から、消去すべきソフトウェアを顧客に選択させる。消去ステップでは、消去ソフトウェア選択ステップにおいて選択されたソフトウェアのプログラムを記憶媒体から消去させる。
【００２６】
【発明の実施の形態】
図１は、本発明の一実施形態に係るソフトウェア書換システムの第１の構成例を示すブロック図である。図１において、本実施形態のソフトウェア書換システムは、セットされたゲームカセット１０にゲームプログラムを書き込むためのカセットライタ２０と、このカセットライタ２０を操作するための店内端末３０とを備えている。
【００２７】
カセットライタ２０は、ＣＰＵ２１と、ＣＤ−ＲＯＭドライブ２２と、ＲＡＭ２３と、フラッシュメモリ２４と、ＡＳＩＣ２５と、コネクタ２６とを含む。ＣＰＵ２１には、ＣＤ−ＲＯＭドライブ２２、ＲＡＭ２３、フラッシュメモリ２４、ＡＳＩＣ２５が接続されている。コネクタ２６は、ＡＳＩＣ２５と接続されている。このコネクタ２６には、ゲームカセット１０内のコネクタ１１が着脱自在に装着される。これによって、ゲームカセット１０とカセットライタ２０とが電気的に接続される。店内端末３０は、カセットライタ２０の内部バス２７に直結され、この内部バス２７を介してＣＰＵ２１と接続されている。
【００２８】
ＣＤ−ＲＯＭドライブ２２は、セットされたＣＤ−ＲＯＭ４０からデータを読み出してＣＰＵ２１に与える。後述するように、このデータには、書込制御プログラムと、ゲーム選択プログラムと、ゲームプログラムと、関連情報とが含まれている。ＣＰＵ２１は、上記の書込制御プログラムに従った動作を実行する。ＲＡＭ２３は、ＣＤ−ＲＯＭ２２から読み出されたゲームプログラムおよび関連情報と、ＣＰＵ２１の演算処理に必要なデータとを記憶する。フラッシュメモリ２４は、ＣＤ−ＲＯＭドライブ２２から読み出された書込制御プログラムを記憶する。ＡＳＩＣ２５は、ＣＰＵ２１からの命令に従ってゲームカセット１０に対するデータの書き込みおよび読み出しを制御する。つまり、ＡＳＩＣ２５は、ゲームカセット１０に対する入出力インタフェイスの機能を果たすと共に、ゲームカセット１０内のメモリ（後述の図３のフラッシュメモリ１２，ＳＲＡＭ１３）のメモリブロックを選択する機能を有する。
【００２９】
なお、店内端末３０は、図２に示すように、ＬＡＮケーブル２９およびＬＡＮボード２８を介して、ＣＰＵ２１と接続されても良い。また、ＣＰＵ２１は、ＬＡＮケーブル２９およびＬＡＮボード２８を介して接続された電子式キャッシュレジスタ５０と連動するような構成であっても良い。
図１のシステム構成は、カセットライタ２０と店内端末３０との間の物理的距離が近いが、図２のシステム構成では、店内端末３０がカセットライタ２０から離れた位置に設置される。図１のシステム構成は、客からの注文を聞いた店員が店内端末３０を操作するような形態の店に適している。一方、図２のシステム構成は、顧客自身が店内端末３０を操作して必要なゲームプログラムを注文するような形態の店に適している。
【００３０】
図３は、図１に示すゲームカセット１０と、当該ゲームカセット１０が接続されるゲーム機６０との詳細な構成を示すブロック図である。図３を参照して、ゲームカセット１０は、コネクタ１１と、フラッシュメモリ１２と、ＳＲＡＭ１３と、メモリコントローラ１４と、バックアップＩＣ１５と、バックアップ用電池１６と、チェック用ＩＣ１７とを含む。フラッシュメモリ１２およびＳＲＡＭ１３は、データバスＤＢ１を介してコネクタ１１に接続されると共に、アドレスバスＡＢ１を介してメモリコントローラ１４と接続される。メモリコントローラ１４は、アドレスバスＡＢ２を介してコネクタ１１と接続される。チェック用ＩＣ１７は、コネクタ１１と接続される。
【００３１】
周知のごとく、フラッシュメモリは、書き換え可能な不揮発性メモリであって、小型かつ大容量である。本実施形態において、フラッシュメモリ１２は、一例として、３２Ｍｂｉｔの容量を有しており、後述するように、ゲームプログラムを記憶するために用いられ、４Ｍｂｉｔ単位で８つのブロックに分割されている。ＳＲＡＭ１３は、電源が供給される限り記憶内容を保持する静的なＲＡＭである。本実施形態において、ＳＲＡＭ１３は、一例として、２５６ｋｂｉｔの容量を有しており、後述するように、ゲームのためのバックアップデータ（攻略したステージ、獲得したアイテム、成長させたキャラクタに関するデータ等）を記憶するために用いられ、１６ｋｂｉｔ単位で１６個のブロックに分割されている。
【００３２】
メモリコントローラ１４は、アドレスバスＡＢ２を介してカセットライタ２０またはゲーム機６０から与えられるアドレスを、フラッシュメモリ１２およびＳＲＡＭ１３でのメモリ配置に適合するアドレスに変換する機能を有している。バックアップＩＣ１５は、電源をＳＲＡＭ１３に安定的に供給する機能と、ＳＲＡＭ１３を不所望な誤書き込みから保護する機能とを有している。バックアップＩＣ１５は、ゲームカセット１０に内蔵されたバックアップ用電池１６から電源の供給を受ける。また、バックアップＩＣ１５は、図示されていないが、ゲームカセット１０がカセットライタ２０またはゲーム機６０にセットされたとき、これらカセットライタ２０またはゲーム機６０から電源（商用電源を降圧して平滑化した直流電源）の供給を受ける。バックアップＩＣ１５は、ゲームカセット１０がカセットライタ２０またはゲーム機６０から外されているとき、バックアップ用電池１６からの電源をＳＲＡＭ１３に供給する。また、バックアップＩＣ１５は、ゲームカセット１０がカセットライタ２０またはゲーム機６０にセットされているとき、カセットライタ２０またはゲーム機６０からの電源をＳＲＡＭ１３に供給する。
【００３３】
フラッシュメモリ１２およびＳＲＡＭ１３は、メモリコントローラ１４から出力されるチップセレクト信号ＣＥ１と、バックアップＩＣ１５から出力されるチップセレクト信号ＣＥ２とによって、それらの選択状態が相補的に切り替えられる。すなわち、フラッシュメモリ１２およびＳＲＡＭ１３は、いずれか一方が選択状態になっているとき、いずれか他方が非選択状態になっている。これは、フラッシュメモリ１２およびＳＲＡＭ１３には、共通のデータバスおよびアドレスバスを介してデータおよびアドレスが供給されるが、供給されたアドレスに対応するメモリチップのアクセスのみを許可状態にするためである。チップセレクト信号ＣＥ２は、メモリコントローラ１４から出力される１ビットのデコード信号ＤＳを基に、バックアップＩＣ１５が生成する。特に、ゲームカセット１０がカセットライタ２０またはゲーム機６０にセットされた状態であって、これらカセットライタ２０またはゲーム機６０の電源がオンされたとき、アドレスバスＡＢ１には、電源オン時の過渡特性によって、ノイズが混入するおそれがある。このノイズが偶然ＳＲＡＭ１３のいずれかの番地と一致した場合、ＳＲＡＭ１３の該当する番地には不所望な書き込みが行われる。そこで、バックアップＩＣ１５は、カセットライタ２０またはゲーム機６０から供給される電源の電圧値を監視し、電源オン時においては、当該電圧値が予め定める値（約４．５Ｖ）に落ち着くまで、チップセレクト信号ＣＥ２をＳＲＡＭ１３に与えない。これによって、電源オン時の不所望な誤書き込みを防止することができる。
【００３４】
また、メモリコントローラ１４からフラッシュメモリ１２に与えられるアドレスバスＡＢ１の内、上位３ビットがフラッシュメモリ１２の８つに分割されたブロックのいずれかを指定するために用いられる。同様に、メモリコントローラ１４からＳＲＡＭ１３に与えられるアドレスバスＡＢ１の内、上位４ビットがＳＲＡＭ１３の１６個に分割されたブロックのいずれかを指定するために用いられる。
【００３５】
ゲーム機６０は、ＣＰＵ６１と、ＰＰＵ（ピクチャ・プロセッシング・ユニット）６２と、ワーキングＲＡＭ６３と、ビデオＲＡＭ６４と、Ｉ／Ｏインタフェイス６５と、コネクタ６６と、チェック用ＩＣ６７とを含む。ＣＰＵ６１には、データバスＤＢ３およびアドレスバスＡＢ３を介してコネクタ６６が接続され、データバスＤＢ４およびアドレスバスＡＢ４を介してＰＰＵ６２が接続され、データバスＤＢ５およびアドレスバスＡＢ５を介してワーキングＲＡＭ６３が接続される。さらに、ＣＰＵ６１には、Ｉ／Ｏインタフェイス６５を介して、コントローラ７０が接続される。ビデオＲＡＭ６４は、データバスＤＢ６およびアドレスバスＡＢ６を介してＰＰＵ６２と接続される。また、ＰＰＵ６２の出力は、テレビジョン受像機８０に与えられる。チェック用ＩＣ６７は、コネクタ６６と接続される。
【００３６】
ゲームを楽しむとき、ゲームカセット１０のコネクタ１１がゲーム機６０のコネクタ６６に差し込まれる。これによって、フラッシュメモリ１２およびＳＲＡＭ１３がＣＰＵ６１の管理下に入る。そして、ＣＰＵ６１は、フラッシュメモリ１２からゲームプログラムを読み出し、ゲーム動作を開始する。また、必要に応じて、ＳＲＡＭ１３からゲームに対応するバックアップデータを読み出し、ゲーム動作のためのパラメータを設定する。コントローラ７０は、プレイヤーによって操作され、ＣＰＵ６１に種々の指示および命令を与える。ワーキングＲＡＭ６３は、ＣＰＵ６１の演算処理に必要な種々のデータを記憶する。ＰＰＵ６２は、ＣＰＵ６１からの命令に基づき、ビデオＲＡＭ６４に格納されたキャラクタデータから表示用データを生成する。この表示用データは、テレビジョン受像機８０に与えられ、表示される。このように、ＰＰＵ６２を設けることで、ＣＰＵ６１は、表示用データの生成処理から解放され、本来のゲーム動作を高速で行うことが可能となる。
【００３７】
コネクタ１１がコネクタ６６に差し込まれると、チェック用ＩＣ６７は、チェック用ＩＣ１７との間で所定の認証処理を行う。認証結果が適正な場合、チェック用ＩＣ１７は、リセット解除信号／ＲＳを出力する。このリセット解除信号／ＲＳは、メモリコントローラ１４に与えられる。応じて、メモリコントローラ１４は、コネクタ１１およびコネクタ６６を介してＣＰＵ６１に供給しているリセット信号ＲＳを解除する。一方、認証結果が不適正な場合、メモリコントローラ１４はＣＰＵ６１のリセットを解除しない。このとき、ＣＰＵ６１は、ゲームプログラムを起動しない。これによって、違法に販売されたゲームカセットの使用を排除することができる。
【００３８】
図４は、図３に示すフラッシュメモリ１２およびＳＲＡＭ１３のメモリマップを示す図である。図４において、フラッシュメモリ１２は、データ記憶領域として、ゲーム選択プログラムやゲームプログラムを記憶する主領域１２１と、ゲーム関連情報を記憶する関連情報記憶領域１２２とを含む。主領域１２１は、３２Ｍｂｉｔの記憶容量を有し、４Ｍｂｉｔ単位に８つのブロックに分割されている。主領域１２１は、ブロック単位でゲーム選択プログラムおよびゲームプログラムを記憶する。ブロックの１つが、ゲーム選択プログラムの記憶のために用いられるので、主領域１２１は、最大７種類のゲームプログラムを記憶可能である（ただし、各ゲームプログラムが４Ｍｂｉｔ以下の場合である）。なお、４Ｍｂｉｔ以上のゲームプログラムを記憶する場合は、複数のブロックを使用することになる。
【００３９】
ＳＲＡＭ１３は、２５６ｋｂｉｔの記憶容量を有し、１６ｋｂｉｔ単位で１６個のブロックに分割されている。ＳＲＡＭ１３は、上記主領域１２１に書き込まれたゲームプログラムのためのバックアップデータを記憶する。
【００４０】
図５は、図４における関連情報記憶領域１２２のメモリマップを示す図である。図５において、関連情報記憶領域１２２は、主領域１２１のアドレス空間とは別のアドレス空間を有し、特別のコマンドが与えられたときのみアクセス可能なメモリ領域である。この関連情報記憶領域１２２は、フラッシュメモリ１２の主領域１２１に記憶されたゲーム選択プログラムおよびゲームプログラムについて、それぞれに固有の関連情報を記憶する領域１２２ａ〜１２２ｇを含む。領域１２２ａはゲームタイトル、領域１２２ｂはマップ情報、領域１２２ｃはフラッシュメモリの容量（プログラムを主記憶領域１２１に記憶させるのに必要な容量）、領域１２２ｄはＳＲＡＭの容量（対応するバックアップデータをＳＲＡＭ１３に記憶させるのに必要な容量）、領域１２２ｅはフラッシュメモリのブロック番号（プログラムを記憶している主記憶領域１２１のブロックの番号）、領域１２２ｆはＳＲＡＭのブロック番号（対応するバックアップデータを記憶しているＳＲＡＭ１３のブロックの番号）、領域１２２ｇはゲームの販売価格の情報が記憶される。ところで、ゲーム機６０内のＣＰＵ６１は、独自の広いアドレス空間を有している。そして、ゲームプログラムは、このアドレス空間の所定の位置に配置されなければならない。上記マップ情報は、ゲームプログラムがＣＰＵ６１のアドレス空間のいずれの位置に配置されるべきかを示している。
【００４１】
図６は、この発明のゲームソフトを書き換えて販売する原理を説明するための図であり、例えばＣＤ−ＲＯＭ４０に格納されたデータが、ゲームカセット１０に書き込まれていく際のデータの流れを示した図である。図６において、ＣＤ−ＲＯＭ４０には、書込制御プログラムと、ゲーム選択プログラムと、複数種類のゲームプログラムと、各ゲームプログラムについての関連情報とが格納されている。ＣＤ−ＲＯＭ４０に格納される関連情報は、ゲームのタイトルと、マップ情報と、ゲームプログラム記憶のためにフラッシュメモリ１２に確保すべき容量と、バックアップデータ記憶のためにＳＲＡＭ１３に確保すべき容量と、ゲームの販売価格とを含む。ＣＤ−ＲＯＭ４０に格納された書込制御プログラムは、カセットライタ２０のＣＰＵ２１によって読み出され、カセットライタ２０内のフラッシュメモリ２４に書き込まれる。以後、ＣＰＵ２１は、この書込制御プログラムに従って、ゲームカセット１０に対するゲームプログラムの書き込み制御動作を実行する。ＣＤ−ＲＯＭ４０に格納されたゲーム選択プログラム、ゲームプログラムおよび関連情報は、カセットライタ２０のＣＰＵ２１によって読み出され、カセットライタ２０内のＲＡＭ２３に書き込まれる。ＲＡＭ２３に書き込まれたゲーム選択プログラムおよびゲームプログラムは、ゲームカセット１０に転送され、フラッシュメモリ１２の主領域１２１に書き込まれる。ＲＡＭ２３に書き込まれた関連情報は、ゲームカセット１０に転送され、フラッシュメモリ１２の関連情報記憶域１２２に書き込まれる。なお、ゲーム選択プログラムは、ゲームカセット１０をゲーム機６０にセットしたとき、ゲーム機６０のＣＰＵ６１によって実行され、複数のゲームの中から１つのゲームを選択するために用いられる。
【００４２】
ここで、１つのゲームプログラムとフラッシュメモリ１２とマスターデータを記憶するＣＤ−ＲＯＭ４０のそれぞれの容量の関係を説明する。フラッシュメモリ１２は、例えば３２Ｍｂｉｔの容量を有するものが用いられる。１つのゲームプログラムのデータ量は、４Ｍｂｉｔの整数倍、例えばフラッシュメモリ１２の容量が３２Ｍｂｉｔの場合であれば、４Ｍｂｉｔ、８Ｍｂｉｔ、１２Ｍｂｉｔ、１６Ｍｂｉｔ、２０Ｍｂｉｔ、２４Ｍｂｉｔ、２８Ｍｂｉｔ、３２Ｍｂｉｔに選ばれる。１つのゲームプログラムは、フラッシュメモリ１２の容量と同等かそれ以下に設定されている。したがって、フラッシュメモリ１２には、４Ｍｂｉｔのゲームプログラムが最大で７種類と４Ｍｂｉｔのゲーム選択プログラムとを記憶できる。例えば、１本のゲームプログラムが８Ｍｂｉｔの場合であれば、３種類のゲームソフトと４Ｍｂｉｔのゲーム選択プログラムが記憶できる。また、３２Ｍｂｉｔのゲームプログラムを記憶する場合は、ゲーム選択プログラムが不要である。
一方、ＣＤ−ＲＯＭ４０は、数百Ｍｂｙｔｅの容量を有する。従って、ＣＤ−ＲＯＭ４０の容量は、フラッシュメモリ１２の容量や１つのゲームプログラムの容量に比べて非常に大きいため、数多くの種類のゲームプログラムを記憶できる。なお、ＣＤ−ＲＯＭ４０は、少なくとも４Ｍｂｉｔのゲームプログラム７種類と４Ｍｂｉｔのゲーム選択プログラムとを記憶できる容量であれば足りる。
【００４３】
図７は、ゲームカセット１０のフラッシュメモリ１２に書き込まれたゲームプログラムを書き換える際のデータの流れを示した図である。なお、ここでは、一例として、ゲーム１〜４のプログラムが書き込まれているフラッシュメモリ１２において、ゲーム１および３のプログラムを残し、かつゲーム２および４のプログラムを消去して、新たにゲーム５のプログラムを書き込む際のデータの流れを示している。図７において、カセットライタ２０のＣＰＵ２１は、フラッシュメモリ１２に書き込まれている全てのデータを読み出し、ＲＡＭ２３上に展開する。その後、カセットライタ２０において、消去のためにゲーム２および４が選択されると、ＣＰＵ２１は、ＲＡＭ２３からゲーム２および４のプログラムを消去する。また、ＣＰＵ２１は、カセットライタ２０において、購入のためにゲーム５が選択されると、ＣＤ−ＲＯＭ４０からゲーム５のプログラムを読み出し、ＲＡＭ２３に格納する。その後、ＣＰＵ２１は、ＲＡＭ２３に残ったゲーム選択プログラムとゲーム１，３および５のプログラムとを読み出し、ゲームカセット１０に転送する。これによって、ゲームカセット１０のフラッシュメモリ１２にゲーム選択プログラムとゲーム１，３および５のプログラムとが書き込まれる。
【００４４】
なお、残されたゲーム１，３に対応する関連情報および新たに書き込まれるゲーム５の関連情報が、フラッシュメモリ１２の関連情報記憶領域１２２に書き込まれるが、その詳細は、図６の説明を参照すれば、容易に理解できるので、ここでは省略する。
【００４５】
このように、本実施形態では、ゲームカセット１０のフラッシュメモリ１２に書き込まれたゲームプログラムを書き換える際に、フラッシュメモリ１２に書き込まれている全てのデータを一度ＲＡＭ２３に読み出し、ＲＡＭ２３上でゲームプログラムの整理、再配置を行った後、フラッシュメモリ１２に書き込むようにしているので、ゲームプログラムを効率良く書き込むことができる。なお、図７では、フラッシュメモリ１２内の全てのプログラムを書き換えるようにしているが、フラッシュメモリ１２内の記憶位置（ブロックＮｏ．）が変更されないプログラム、すなわちゲーム選択プログラムとゲーム１のプログラムは書き換えないようにしても良い。
【００４６】
図８〜図１３は、カセットライタ２０に接続された店内端末３０に表示される操作画面の一例を示す図である。より具体的には、図８および図９は、ゲーム選択画面を示している。なお、図８は、購入するゲームを選択する前の画面を、図９は、購入するゲームを選択した後の画面を示している。また、図１０〜図１２は、ゲーム削除画面を示している。なお、図１０は、消去および／または取り消すべきゲームプログラムを指定する前であって、書込可能な状態の画面を示しており、図１１は、消去および／または取り消すべきゲームプログラムを指定する前であって、書込不可能な状態の画面を示しており、図１２は、消去および／または取り消すべきゲームプログラムの指定が終了した後の画面を示している。また、図１３は、ゲーム機６０に接続されたテレビジョン受像機８０において、ゲーム開始前に表示されるメニュー画面を示す図である。
【００４７】
図１４〜図１６は、書込制御プログラムに従うカセットライタ１の動作を示すフローチャートである。また、図１７は、ゲーム機６０の動作を示すフローチャートである。以下、これら図８〜図１７を参照して、上記実施形態の動作を説明する。
【００４８】
まず、図１４〜図１６に示されるカセットライタ１の動作について説明する。電源がオンされると、ＣＰＵ２１は、フラッシュメモリ２４内の書込制御プログラムをバージョンアップすべきか否かを判断する（ステップＳ１０１）。フラッシュメモリ２４に書込制御プログラムが記憶されていない場合、またはＣＤ−ＲＯＭ４０に格納された書込制御プログラムのバージョンがフラッシュメモリ２４に記憶された書込制御プログラムのバージョンよりも新しい場合は、書込制御プログラムをバージョンアップすべきと判断される。書込制御プログラムをバージョンアップすべき場合、ＣＰＵ２１は、ＣＤ−ＲＯＭドライバ２２を用いてＣＤ−ＲＯＭ４０から書込制御プログラムを読み出し、当該読み出した書込制御プログラムを、図６に示すように、フラッシュメモリ２４にダウンロードする（ステップＳ１０２）。ＣＤ−ＲＯＭ４０は、常に新作ソフトが販売できるように、定期的（例えば、１ヶ月毎）に販売店に供給される。従って、このＣＤ−ＲＯＭ４０に書込制御プログラムを格納し、格納された書込制御プログラムに基づいて自動的にカセットライタ２０のソフト処理のバージョンアップ作業を行うようにすれば、販売店側は、面倒なバージョンアップ作業から解放され、本来の店内業務に専念できる。
【００４９】
書込制御プログラムのダウンロードが終了すると、ＣＰＵ２１は、当該書込制御プログラムを起動する（ステップＳ１０３）。以後、ＣＰＵ２１は、書込制御プログラムに従って動作する。次に、ＣＰＵ２１は、ＣＤ−ＲＯＭ４０からゲーム選択画面の表示に必要なデータ（ゲームのタイトル、容量および販売価格）を読み込み、図６に示すように、ＲＡＭ２３のワーキング領域に書き込む（ステップＳ１０４）。次に、ＣＰＵ２１は、図８に示すようなゲーム選択画面を店内端末３０に表示させる（ステップＳ１０５）。このゲーム選択画面は、販売ゲームリスト３０１と、ページ更新ボタン３０２および３０３と、購入ゲームリスト３０４と、合計容量表示部３０５および３０６とを含む。販売ゲームリスト３０１には、上記ステップＳ１０４においてＲＡＭ２３に書き込まれたゲームのタイトル、容量および価格に従って、販売するゲームのタイトル、容量および価格が表示される。販売するゲームの種類が多い場合は、１画面中に販売ゲームリストの全体を表示することが困難であるが、画面中のページ更新ボタン３０２または３０３を選択することにより、販売ゲームリストの表示ページを前後方向に更新でき、これによって、販売ゲームリストに含まれるゲームの全種類を見ることができる。なお、ボタンを選択する方法としては、表示画面にタッチパネルを設け、該当するボタンを指で押圧する方法であっても良いし、マウス等のポインティングデバイスによって該当するボタンにカーソルを合わせ、クリックするような方法であっても良い。以下に述べる店内端末３０での種々の選択操作も上記と同様の方法で行われる。このとき、購入するゲームの選択は行われていないので、購入ゲームリスト３０４、合計容量表示部３０５および３０６には、何らの情報も表示されていない。購入決定ボタン３０７は、購入するゲームの選択が終了したときに選択されるボタンである。
【００５０】
次に、ＣＰＵ２１は、コネクタ２６にゲームカセット１０がセット（装着）されたか否かを判断する（ステップＳ１０６）。ゲームカセット１０がセットされると、ＣＰＵ２１は、関連情報記憶領域１２２に記憶された関連情報に基づいてフラッシュメモリ１２およびＳＲＡＭ１３の空き容量（以下、ゲームカセット空き容量と称す）を計算するとともに、関連情報記憶領域１２２に記憶されている関連情報を読み出す（ステップＳ１０７）。このとき計算されたゲームカセット空き容量および読み出されたデータは、ＲＡＭ２３に一時的に記憶される（図７参照）。
【００５１】
次に、店員または顧客（図１のシステム構成の場合は店員、図２のシステム構成の場合は顧客）は、店内端末３０を操作し、販売ゲームリストの中から購入するゲームを選択する（ステップＳ１０８）。応じて、ＣＰＵ２１は、購入のために選択されたゲームのタイトル、容量および価格を、ＲＡＭ２３に一時的に記憶させる（ステップＳ１０９）。このとき、図９に示すように、店内端末３０には、購入ゲームリスト３０４中に、選択されたゲームのタイトル、容量および価格が表示される。次に、ＣＰＵ２１は、そのときまでに選択されたゲームの合計容量（以下、選択ゲーム合計容量と称す）を計算する（ステップＳ１１０）。計算された選択ゲーム合計容量は、図９の合計容量表示部３０５および３０６に表示される。なお、合計容量表示部３０５は、書き込みに必要なフラッシュメモリ１２の容量をブロック単位で表示し、合計容量表示部３０６は、書き込みに必要なＳＲＡＭ１３の容量をブロック単位で表示する。次に、ＣＰＵ２１は、購入するゲームの選択が終了したか否かを判断する（ステップＳ１１１）。店員または顧客によって、図９の購入決定ボタン３０７が選択されたとき、購入するゲームの選択が終了したと判断される。ゲームの選択が終了していない場合は、再びステップＳ１０８〜Ｓ１１０の動作が繰り返される。
【００５２】
一方、ゲームの選択が終了した場合、ＣＰＵ２１は、前述のステップＳ１１０で計算された選択ゲーム合計容量が前述のステップＳ１０７で計算されたゲームカセット空き容量以下であるか否かを判断する（ステップＳ１１２）。選択ゲーム合計容量がゲームカセット空き容量以下である場合、ＣＰＵ２１は、店内端末３０に、図１０に示すようなゲーム削除画面を表示させる。一方、選択ゲーム合計容量がゲームカセット空き容量を越えている場合、ＣＰＵ２１は、店内端末３０に、図１１に示すようなゲーム削除画面を表示させる。
【００５３】
図１０および図１１に示すように、ゲーム削除画面は、カセット内ゲームリスト３０８と、空き容量表示部３０９および３１０と、購入ゲームリスト３０４と、合計容量表示部３０５および３０６と、書込可能ボタン３１１と、カセット内全消去ボタン３１２と、画面リターンボタン３１３とを含む。カセット内ゲームリスト３０８には、ゲームカセット１０に格納されているゲームのリストが表示される。また、空き容量表示部３０９には、フラッシュメモリ１２の空き容量が表示される。空き容量表示部３１０には、ＳＲＡＭ１３の空き容量が表示される。これらカセット内ゲームリスト３０８、空き容量表示部３０９および３１０の表示内容は、前述のステップＳ１０７でＲＡＭ２３に格納されたデータに基づいて決定される。書込可能ボタン３１１は、購入ゲームリスト３０４に挙げられたゲームのプログラムをゲームカセット１０に書き込む指示を与えるときに選択される。ここで、図１０および図１１を対比すると、図１０のゲーム削除画面では、書込可能ボタン３１１が選択可能になっているのに対し、図１１のゲーム削除画面では、書込可能ボタン３１１が選択不能になっている。これは、図１１の状態では、選択ゲーム合計容量がゲームカセット空き容量を越えているため、ゲームプログラムの書込指示を禁止するためである。カセット内全削除ボタン３１２は、ゲームカセット１０に格納されたゲームプログラムを一括的に全て消去するときに選択される。画面リターンボタン３１３は、ゲーム削除画面を図９に示すゲーム選択画面に戻すときに選択される。
【００５４】
選択ゲーム合計容量がフラッシュメモリ１２およびＳＲＡＭ１３の空き容量以下の場合、ＣＰＵ２１は、店員または顧客によって書込可能ボタン３１１が選択されたか、画面リターンボタン３１３が選択されたかを判断する（ステップＳ１１３）。画面リターンボタン３１３が選択された場合、再びステップＳ１０８〜Ｓ１１２の動作が繰り返される。すなわち、このステップＳ１０８〜Ｓ１１２の繰り返し動作において、購入すべきゲームの追加または変更が行われる。一方、書込可能ボタン３１１が選択された場合、ＣＰＵ２１は、図６および図７に示すように、購入のために選択されたゲームのプログラムと、ゲーム選択プログラムと、関連情報とをＣＤ−ＲＯＭ４０から読み出し、および／またはゲームカセット１０内のフラッシュメモリ１２およびＳＲＡＭ１３に記憶されている全データ（ゲームプログラム、バックアップデータ）を読み出し、ＲＡＭ２３に格納する（ステップＳ１１４）。
【００５５】
前述のステップＳ１１２において、選択ゲーム合計容量がゲームカセット空き容量を越えている場合、ゲームカセット１０に格納されているゲームプログラムを消去するか、購入のために選択したゲームを取り消す必要がある。そこで、店員または顧客は、図１１に示すゲーム削除画面において、カセット内ゲームリスト３０８から消去すべきゲームを選択し、および／または、購入ゲームリスト３０４から購入を取り消すべきゲームを選択する。この後の動作の詳細は、図１６に示されている。
【００５６】
図１６において、ＣＰＵ２１は、購入するゲームの取消が選択されたのか、ゲームプログラムの消去が選択されたかを判断する（ステップＳ１１５およびＳ１１６）。ゲームの取消が選択された場合、ＣＰＵ２１は、選択されたゲームの取消処理を行う（ステップＳ１１７）。これによって、ゲーム削除画面の購入ゲームリスト３０４には、図１２に示すように、取消が選択されたゲームに対し、取消表示がなされる。また、ゲームプログラムの消去が選択された場合、ＣＰＵ２１は、図示しない消去フラグをセットする（ステップＳ１１８）。このとき、ゲーム削除画面のカセット内ゲームリスト３０８には、図１２に示すように、消去が選択されたゲームに対し、消去表示がなされる。
【００５７】
上記ステップＳ１１７またはＳ１１８の後、ＣＰＵ２１は、選択ゲーム合計容量およびゲームカセット空き容量を再計算する（ステップＳ１１９）。このときの再計算結果は、図１２に示すように、合計容量表示部３０５および３０６、空き容量表示部３０９および３１０に反映される。ここで、顧客は、ゲームカセット１０内のゲームプログラムを消去しないように考え直す場合がある。このような場合、店員または顧客は、カセット内ゲームリスト３０８において消去が選択されているゲームを再選択することにより、ゲームプログラムの消去を解除する。ＣＰＵ２１は、このような消去の解除がなされたか否かを判断する（ステップＳ１２０）。もし、消去の解除がなされている場合、ＣＰＵ２１は、前述のステップＳ１１８でセットした消去フラグをリセットした後（ステップＳ１２１）、ステップＳ１２２に進む。一方、消去の解除がなされていない場合、ＣＰＵ２１は、消去フラグをリセットすることなく、ステップＳ１２２に進む。
【００５８】
ステップＳ１２２において、ＣＰＵ２１は、再計算された選択ゲーム合計容量が再計算されたフラッシュメモリ１２またはＳＲＡＭ１３の空き容量以下であるか否かを判断する。選択ゲーム合計容量がこれらの空き容量を越えている場合、再びステップＳ１１５〜Ｓ１２１の動作が繰り返される。すなわち、選択ゲーム合計容量がフラッシュメモリ１２またはＳＲＡＭ１３の空き容量以下になるまで、取消および／または消去すべきゲームの追加または変更が行われる。選択ゲーム合計容量が空き容量以下になると、ＣＰＵ２１は、店員または顧客によって書込可能ボタン３１１が選択されたか、画面リターンボタン３１３が選択されたかを判断する（ステップＳ１２３）。画面リターンボタン３１３が選択された場合、再びステップＳ１０８の動作に戻る。すなわち、購入すべきゲームの追加または変更処理が行われる。一方、書込可能ボタン３１１が選択された場合、ＣＰＵ２１は、購入のために選択されたゲームのプログラムと、ゲーム選択プログラムと、関連情報とをＣＤ−ＲＯＭ４０から読み出すと共に、ゲームカセット１０内のフラッシュメモリ１２およびＳＲＡＭ１３に記憶されている全データ（ゲームプログラム、バックアップデータ）を読み出してＲＡＭ２３に格納する（ステップＳ１２４）。次に、ＣＰＵ２１は、消去フラグがセットされているか否かを判断する（ステップＳ１２５）。消去フラグがセットされている場合、ＣＰＵ２１は、消去処理を行う（ステップＳ１２６）。この消去処理では、前述のステップＳ１０７でＲＡＭ２３に格納されたゲームカセット１０のデータの内、消去のために選択されたゲームのプログラム、バックアップデータおよび関連情報が消去される（図７参照）。消去フラグがリセットされている場合、またはステップＳ１２５の消去処理が終了した後、ＣＰＵ２１は、後述のステップＳ１２７に進む。
【００５９】
次に、ＣＰＵ２１は、ゲームカセット１０へのプログラムの書込を開始する（図６，図７および図１５参照）。まず、ＣＰＵ２１は、フラッシュメモリ１２の先頭ブロックを指定する（ステップＳ１２７）。次に、ＣＰＵ２１は、フラッシュメモリ１２に書き込むべきゲームプログラム（購入のために選択されたゲームプログラムおよびゲームカセット１０に元から格納されていたゲームプログラムであって消去されなかったゲームプログラム）がフラッシュメモリ１２の８つのブロック（３２Ｍｂｉｔ分）を全て使用するゲームプログラム（以下、フルサイズゲームプログラムと称す）か否かを判断する（ステップＳ１２８）。書き込むべきゲームプログラムがフルサイズゲームプログラムでない場合、ＣＰＵ２１は、ＲＡＭ２３からゲーム選択プログラム（ＣＤ−ＲＯＭ４０から読み出したゲーム選択プログラム）を読み出し、フラッシュメモリ１２の主領域１２１の先頭ブロックに書き込む（ステップＳ１２９）。一方、書き込むべきゲームプログラムがフルサイズゲームプログラムの場合は、後にゲーム機６０においてゲーム選択を行う必要がないので、ＣＰＵ２１は、ゲーム選択プログラムをフラッシュメモリ１２に書き込まない。これによって、ゲームプログラムの容量が大きい場合は、フラッシュメモリ１２の容量を最大限に利用した書込が行える。
【００６０】
上記ステップＳ１２９の後、または上記ステップＳ１２７で書き込むべきゲームプログラムがフルサイズゲームプログラムであると判断された後、ＣＰＵ２１は、ゲームプログラムをＲＡＭ２３から読み出し、フラッシュメモリ１２の主領域１２１に書き込む（ステップＳ１３０）。このとき、書き込むべきゲームプログラムがフルサイズゲームプログラムである場合は、フラッシュメモリ１２の主領域１２１の先頭ブロックから書き込みが開始され、書き込むべきゲームプログラムがフルサイズゲームプログラムでない場合は、フラッシュメモリ１２の主領域１２１の第２番目のブロックから書き込みが開始される。次に、ＣＰＵ２１は、ＲＡＭ２３内にフラッシュメモリ１２に書き込むべきゲームプログラムが２個以上存在するか否かを判断する（ステップＳ１３１）。書き込むべきゲームプログラムが２個以上存在する場合、ＣＰＵ２１は、フラッシュメモリ１２の主領域１２１の次のブロック（次のゲームプログラムの書き込みを開始するブロック）を指定する（ステップＳ１３２）。その後、ＣＰＵ２１は、ゲームプログラムの書き込みが全て終了したか否かを判断する（ステップＳ１３３）。一方、書き込むべきゲームプログラムが１個であり、しかもフルサイズゲームプログラムでない場合、ＣＰＵ２１は、次のブロックを指定することなく、ステップＳ１３３の判断を行う。ゲームプログラムの書き込みが終了していない場合、ＣＰＵ２１は、再びステップＳ１３０以下の動作を繰り返す。これによって、フラッシュメモリ１２の主領域１２１には、ＲＡＭ２３に格納されたゲームプログラムが順番に書き込まれていく。一方、ゲームプログラムの書き込みが終了した場合、ＣＰＵ２１は、ＲＡＭ２３に格納されたバックアップデータをＳＲＡＭ１３に書き込むと共に、関連情報をフラッシュメモリ１２の関連情報記憶領域１２２に書き込む（ステップＳ１３４）。その後、ＣＰＵ２１は、図１４のステップＳ１０６の動作に戻る。
【００６１】
次に、図１７を参照して、ゲームカセット１０内に格納されたゲームプログラムをゲーム機６０で実行させる際の動作を説明する。ゲームカセット１０がゲーム機６０のコネクタ６６にセットされ、ゲーム機６０の電源がオンされると、ゲームカセット１０内のメモリコントローラ１４は、リセット信号ＲＳを生成し、当該リセット信号ＲＳをコネクタ１１および６６を介して、ゲーム機６０内のＣＰＵ６１に供給する。これによって、ＣＰＵ６１は、動作停止状態に置かれる。
【００６２】
その後、メモリコントローラ１４は、フラッシュメモリ１２の関連情報記憶領域１２２から関連情報を読み出して一時的に記憶すると共に、当該関連情報に含まれるマップ情報に基づいて、アドレス変換パラメータを設定する（ステップＳ２０１）。このとき、ＣＰＵ６１は、依然として動作停止状態にある。前述したように、ゲームプログラムは、ＣＰＵ６１が有するアドレス空間の所定の位置に配置されなければならない。そして、この所定の位置は、ゲームの種類によって異なっている。上記のアドレス変換パラメータは、ＣＰＵ６１のアドレス空間をフラッシュメモリ１２のアドレス空間に一致させるためのアドレス変換処理に用いられる。
【００６３】
その後、チェック用ＩＣ１７および６７が動作し、ゲームカセット１０の認証処理を行う。認証処理の結果、ゲームカセット１０が適法な真性品であることが確認された場合、チェック用ＩＣ１７からリセット解除信号／ＲＳが出力される。このリセット解除信号／ＲＳは、メモリコントローラ１４に与えられる。メモリコントローラ１４は、リセット解除信号／ＲＳが与えられると、コネクタ１１および６６を介してＣＰＵ６１に供給しているリセット信号ＲＳを解除する。これによって、ＣＰＵ６１は動作を開始し、まず、フラッシュメモリ１２の主領域１２１の先頭ブロックからプログラム（ゲームプログラムまたはゲーム選択プログラム）を読み出す。
【００６４】
フラッシュメモリ１２に記憶されたゲームプログラムがフルサイズゲームプログラムの場合、上記先頭ブロックから読み出されるプログラムは、フルサイズゲームプログラムである。これに対し、フラッシュメモリ１２に記憶されたゲームプログラムがフルサイズゲームプログラムでない場合、上記先頭ブロックから読み出されるプログラムは、ゲーム選択プログラムである。ＣＰＵ６１は、上記先頭ブロックからのプログラムの読み出しを終了すると、当該読み出したプログラムがフルサイズゲームプログラムかゲーム選択プログラムかを判断する（ステップＳ２０２）。
【００６５】
まず、上記先頭ブロックからフルサイズゲームプログラムが読み出された場合の動作について説明する。この場合、ＣＰＵ６１は、フラッシュメモリ１２の主領域１２１からブロック順次にフルサイズゲームプログラムを読み出し、読み出したフルサイズゲームプログラムに従って、ゲーム処理を実行する（ステップＳ２０３）。次に、ＣＰＵ６１は、ゲームが終了したか否かを判断する（ステップＳ２０４）。ゲームが終了するまで、ステップＳ２０３のゲーム処理は継続的に実行される。ゲームが終了すると、ＣＰＵ６１は、所定の終了処理を実行する（ステップＳ２０５）。この終了処理では、例えばバックアップデータがＳＲＡＭ１３に格納される。次に、ＣＰＵ６１は、プレイヤーからリセット要求があったか否か（すなわち、プレイヤーによってゲーム機６０のリセットボタン（図示せず）が押されたか否か）を判断する（ステップＳ２０６）。リセット要求があった場合、ＣＰＵ６１は、再びステップＳ２０３以下の動作を繰り返す。一方、リセット要求がない場合、ＣＰＵ６１は、その動作を終了する。
【００６６】
次に、上記先頭ブロックからゲーム選択プログラムが読み出される場合の動作を説明する。この場合、ＣＰＵ６１は、読み出したゲーム選択プログラムに従ってゲーム選択処理を実行する（ステップＳ２０７）。このゲーム選択処理では、テレビジョン受像機８０に図１３に示すようなゲーム選択メニューが表示される。プレイヤーは、コントローラ７０を用いてゲーム選択メニューの中から遊びたいゲームを選択する。次に、ＣＰＵ６１は、プレイヤーによるゲームの選択が終了したか否かを判断する（ステップＳ２０８）。ゲームの選択が終了すると、メモリコントローラ１４によって、アドレス変換処理が行われる（ステップＳ２０９）。このアドレス変換処理では、ＣＰＵ６１は、再びリセットされて動作停止状態に置かれる。また、メモリコントローラ１４は、選択されたゲームが格納されているフラッシュメモリ１２のブロックの先頭アドレスを指定し、ＣＰＵ６１のアドレス空間のプログラム配置位置をこの先頭アドレスに一致させるために、ステップＳ２０１で設定されたアドレス変換パラメータを変更する。上記ステップＳ２０９においてＣＰＵ６１をリセット状態に置くのは、ＣＰＵ６１が不安定な状態で暴走するのを防止するためである。その後、メモリコントローラ１４は、ＣＰＵ６１のリセットを解除する。これによって、ＣＰＵ６１は動作を開始し、ステップＳ２１０〜Ｓ２１３の動作を行う。このステップＳ２１０〜Ｓ２１３の動作は、それぞれ、前述のステップＳ２０３〜Ｓ２０６の動作と同様であるので、その説明を省略する。
【００６７】
なお、上記実施形態では、ゲームプログラムが書き込まれる記憶媒体として、フラッシュメモリを内蔵したゲームカートリッジ１を用いたが、これに代えて、Ｍ０Ｄ（磁気光ディスク）、ＣＤＲ（書き込み可能なコンパクトディスク）、ＤＶＤＲ（書き込み可能なデジタルビデオディスク）、フロッピーディスク等、その他の記憶媒体を用いるようにしても良い。
【００６８】
また、上記実施形態では、ＣＤ−ＲＯＭ４０に元データを記録するようにしたが、このようなＣＤ−ＲＯＭ４０に代えて、Ｍ０Ｄ、ＣＤ、ＤＶＤ等、他の大容量記憶媒体を用いるようにしても良い。
【００６９】
また、上記実施形態では、ソフトウェアとしてゲームプログラムを販売するシステムについて示したが、本発明は、教育用プログラム、ビジネス用プログラム等の他の種類のソフトウェアを販売するシステムにも適用が可能である。
【００７０】
また、上記実施形態では、ゲームカセット１０は、ゲームプログラムをフラッシュメモリ１２に記憶し、バックアップデータをＳＲＡＭ１３に記憶するように構成されているが、それぞれのデータを他の種類のメモリ（ただし、書き換えが可能である性質を有していることが必要）に記憶させるようにしてもよいし、ゲームプログラムおよびバックアップデータを１つのメモリ内に記憶させるようにしても良い。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るソフトウェア販売システムの第１の構成例を示すブロック図である。
【図２】本発明の一実施形態に係るソフトウェア販売システムの第２の構成例を示すブロック図である。
【図３】図１に示すゲームカセット１０と、当該ゲームカセット１０が接続されるゲーム機６０との詳細な構成を示すブロック図である。
【図４】図３に示すフラッシュメモリ１２およびＳＲＡＭ１３のメモリマップを示す図である。
【図５】図４における関連情報記憶領域１２２のメモリマップを示す図である。
【図６】ＣＤ−ＲＯＭ４０に格納されたデータがゲームカセット１０に書き込まれていく際のデータの流れを示した図である。
【図７】ゲームカセット１０のフラッシュメモリ１２に書き込まれたゲームプログラムを書き換える際のデータの流れを示した図である。
【図８】店内端末３０に表示されるゲーム選択画面を示す図であり、特に、購入するゲームを選択する前の画面を示している。
【図９】店内端末３０に表示されるゲーム選択画面を示す図であり、特に、購入するゲームを選択した後の画面を示している。
【図１０】店内端末３０に表示されるゲーム削除画面を示す図であり、特に、消去および／または取り消すべきゲームプログラムを指定する前であって、書込可能な状態の画面を示している。
【図１１】店内端末３０に表示されるゲーム削除画面を示す図であり、特に、消去および／または取り消すべきゲームプログラムを指定する前であって、書込不可能な状態の画面を示している。
【図１２】店内端末３０に表示されるゲーム削除画面を示す図であり、特に、消去および／または取り消すべきゲームプログラムを指定した後の画面を示している。
【図１３】ゲーム機６０に接続されたテレビジョン受像機８０において、ゲーム開始前に表示されるメニュー画面を示す図である。
【図１４】書込制御プログラムに従うカセットライタ１の第１の動作を示すフローチャートである。
【図１５】書込制御プログラムに従うカセットライタ１の第２の動作を示すフローチャートである。
【図１６】書込制御プログラムに従うカセットライタ１の第３の動作を示すフローチャートである。
【図１７】ゲーム機６０の動作を示すフローチャートである。
【符号の説明】
１０…ゲームカセット
１１…コネクタ
１２…フラッシュメモリ
１２１…主領域
１２２…関連情報記憶領域
１３…ＳＲＡＭ
１４…メモリコントローラ
１５…バックアップＩＣ
１６…バックアップ用電池
１７…チェック用ＩＣ
２０…カセットライタ
２１…ＣＰＵ
２２…ＣＤ−ＲＯＭドライブ
２３…ＲＡＭ
２４…フラッシュメモリ
２５…ＡＳＩＣ
２６…コネクタ
３０…店内端末
４０…ＣＤ−ＲＯＭ
５０…電子式キャッシュレジスタ
６０…ゲーム機
６１…ＣＰＵ
６２…ＰＰＵ
６３…ワーキングＲＡＭ
６４…ビデオＲＡＭ
６５…Ｉ／０インタフェイス
６６…コネクタ
６７…チェック用ＩＣ
７０…コントローラ
８０…テレビジョン受像機
【図１】
0003827419.tif 000002
【図２】
0003827419.tif 000003
【図３】
0003827419.tif 000004
【図４】
0003827419.tif 000005
【図５】
0003827419.tif 000006
【図６】
0003827419.tif 000007
【図７】
0003827419.tif 000008
【図８】
0003827419.tif 000009
【図９】
0003827419.tif 000010
【図１０】
0003827419.tif 000011
【図１１】
0003827419.tif 000012
【図１２】
0003827419.tif 000013
【図１３】
0003827419.tif 000014
【図１４】
0003827419.tif 000015
【図１５】
0003827419.tif 000016
【図１６】
0003827419.tif 000017
【図１７】
0003827419.tif 000018