"書換え回数に制限のない第1の記憶手段と、書換え回数に制限のある第2の記憶手段と、商品に関する複数の項目についての情報のうち、書換え頻度が予め定める基準頻度以上である第1の項目の情報を第1の記憶手段に記憶させ、書換え頻度が予め定める基準頻度未満である第2の項目の情報を第2の記憶手段に記憶させる制御手段とを含むことを特徴とする記憶装置。前記第1の記憶手段には、各商品を識別するための識別情報が記憶されており、前記制御手段は、第1の項目の情報を、前記識別情報に対応付けて第1の記憶手段に記憶させ、第2の項目の情報を、前記識別情報に対応付けて第2の記憶手段に記憶させることを特徴とする請求項1に記載の記憶装置。前記制御手段は、第2の項目の情報が記憶される第2の記憶手段のアドレスを特定する特定情報を、前記識別情報と対応付けて第1の記憶手段に記憶させることを特徴とする請求項2に記載の記憶装置。前記制御手段は、第2の記憶手段に記憶される第2の項目の情報を更新するとき、変更前の第2の項目の情報を消去することなく、変更後の第2の項目の情報を第2の記憶手段の領域のうち未書込みの領域に書込み、第1の記憶手段に記憶される特定情報を、変更後の第2の項目の情報を書込んだアドレスを特定する特定情報に書換えることを特徴とする請求項3に記載の記憶装置。前記識別情報は、自然数によって表され、前記制御手段は、第1の項目の情報を前記識別情報に対応付けて前記識別情報の昇順または降順に第1の記憶手段に記憶させ、第2の項目の情報を前記識別情報に対応付けて前記識別情報の昇順または降順に第2の記憶手段に記憶させることを特徴とする請求項2~4のいずれか1つに記載の記憶装置。しかしながら、上述した従来技術は、RAMのジャーナルデータ一時格納領域に記憶するジャーナルデータの容量が少ない場合には有効であるが、JANなどデータ量が多い場合は、RAMの容量を増やす必要があり、コストが増大するという問題がある。本発明の目的は、大容量のデータの更新を行うに際して、高価なRAMの使用量を減らすとともに、書換え回数に制限のあるフラッシュROMの使用可能期間を伸ばすことができる記憶装置を提供することである。本発明は、書換え回数に制限のない第1の記憶手段と、書換え回数に制限のある第2の記憶手段と、商品に関する複数の項目についての情報のうち、書換え頻度が予め定める基準頻度以上である第1の項目の情報を第1の記憶手段に記憶させ、書換え頻度が予め定める基準頻度未満である第2の項目の情報を第2の記憶手段に記憶させる制御手段とを含むことを特徴とする記憶装置である。また本発明は、前記第1の記憶手段には、各商品を識別するための識別情報が記憶されており、前記制御手段は、第1の項目の情報を、前記識別情報に対応付けて第1の記憶手段に記憶させ、第2の項目の情報を、前記識別情報に対応付けて第2の記憶手段に記憶させることを特徴とする。また本発明は、前記制御手段は、第2の項目の情報が記憶される第2の記憶手段のアドレスを特定する特定情報を、前記識別情報と対応付けて第1の記憶手段に記憶させることを特徴とする。また本発明は、前記制御手段は、第2の記憶手段に記憶される第2の項目の情報を更新するとき、変更前の第2の項目の情報を消去することなく、変更後の第2の項目の情報を第2の記憶手段の領域のうち未書込みの領域に書込み、第1の記憶手段に記憶される特定情報を、変更後の第2の項目の情報を書込んだアドレスを特定する特定情報に書換えることを特徴とする。また本発明は、前記識別情報は、自然数によって表され、前記制御手段は、第1の項目の情報を前記識別情報に対応付けて前記識別情報の昇順または降順に第1の記憶手段に記憶させ、第2の項目の情報を前記識別情報に対応付けて前記識別情報の昇順または降順に第2の記憶手段に記憶させることを特徴とする。本発明によれば、第1の記憶手段は、書換え回数に制限がない。第2の記憶手段は、書換え回数に制限がある。そして、制御手段は、商品に関する複数の項目についての情報のうち、書換え頻度が予め定める基準頻度以上である第1の項目の情報を第1の記憶手段に記憶させ、書換え頻度が予め定める基準頻度未満である第2の項目の情報を第2の記憶手段に記憶させる。したがって、第1の記憶手段、たとえば高価なSRAMの使用量を減らすことができ、コスト削減を図ることができる。また、書換え頻度の低い情報を書換え回数に制限のある第2の記憶手段に記憶するので、第2の記憶手段、たとえばフラッシュROMの使用可能期間を延ばすことができる。また本発明によれば、前記第1の記憶手段には、各商品を識別するための識別情報が記憶されている。そして、前記制御手段は、第1の項目の情報を、前記識別情報に対応付けて第1の記憶手段に記憶させ、第2の項目の情報を、前記識別情報に対応付けて第2の記憶手段に記憶させる。したがって、複数の項目の情報を識別情報ごとに管理することができる。また本発明によれば、前記制御手段は、第2の項目の情報が記憶される第2の記憶手段のアドレスを特定する特定情報を、前記識別情報と対応付けて第1の記憶手段に記憶させる。したがって、第1の記憶手段に記憶される特定情報によって、第2の記憶手段に記憶される第2の項目の情報を特定することができる。また本発明によれば、前記制御手段は、第2の記憶手段に記憶される第2の項目の情報を更新するとき、変更前の第2の項目の情報を消去することなく、変更後の第2の項目の情報を第2の記憶手段の領域のうち未書込みの領域に書込み、第1の記憶手段に記憶される特定情報を、変更後の第2の項目の情報を書込んだアドレスを特定する特定情報に書換える。したがって、第2の項目の情報を更新しても、第2の記憶手段の消去を行う必要がなく、第2の記憶手段、たとえばフラッシュROMの使用可能期間をより延ばすことができる。また本発明によれば、前記識別情報は、自然数によって表される。そして、前記制御手段は、第1の項目の情報を前記識別情報に対応付けて前記識別情報の昇順または降順に第1の記憶手段に記憶させ、第2の項目の情報を前記識別情報に対応付けて前記識別情報の昇順または降順に第2の記憶手段に記憶させる。したがって、識別情報による検索を容易に行うことができる。図1は、本発明の一実施形態である電子式金銭登録機ElectronicCashRegister:以下ECRという1の構成を示すブロック図である。記憶装置であるECR1は、制御部11、ランダムアクセスメモリRandomAccessMemory:略称RAM12、データ格納用フラッシュメモリ俗称フラッシュROMReadOnlyMemory:以下フラッシュROMという13、プログラム格納ROM14、表示部15、プリンタ16、時計17、キーボード18、通信部19、SDカードインタフェース部20、バーコードスキャナ21およびドロア22を含んで構成される。制御手段である制御部11は、たとえば中央処理装置CentralProcessingUnit:略称CPUによって構成され、プログラム格納ROM14に記憶されるプログラムを実行することによって、RAM12、フラッシュROM13、表示部15、プリンタ16、時計17、キーボード18、通信部19、セキュアデジタルSecureDigital:略称SDカードインタフェース部20、バーコードスキャナ21およびドロア22を制御する。第1の記憶手段であるRAM12は、たとえばスタティックRAM以下SRAMというによって構成される。RAM12は、制御部11がプログラムを実行するために必要な情報を記憶し、制御部11によって情報の書込みおよび読出しが行われる。RAM12は、書換え頻度が予め定める基準頻度以上、たとえば1日に2回以上の書換えが発生する情報を記憶する。RAM12には、たとえば、第1商品マスタ情報121、表示/印字用データ127、レシート計算用データ128、商品マスタ情報メモリ構成テーブル125およびフラッシュROM書込みポインタテーブル126が記憶される。RAM12は、書換え回数に制限はない。第1商品マスタ情報121は、商品マスタインデックス情報122、単価情報123および当日売上情報124を含む。商品マスタインデックス情報122は、商品に関する複数の項目の情報が記憶されているアドレスを示すインデックスを表す情報である。単価情報123は、各商品の単価を表す情報である。当日売上情報124は、日単位の商品の売上金額を表す情報である。表示/印字用データ127は、表示部15に表示させるための情報およびプリンタ16に印刷させるための情報である。レシート計算用データ128は、販売した商品に対するレシートを作成するための情報である。商品マスタ情報メモリ構成テーブル125は、商品に関する複数の項目の情報がどの記憶媒体のどこに何バイト単位で記憶されているかを示すテーブルである。フラッシュROM書込みポインタテーブル126は、フラッシュROM13に形成される各ブロックの未使用の領域、つまり未書込みの領域の先頭アドレス、つまり書込み可能な領域の先頭アドレスを表す書込みポインタを記憶するテーブルである。単価情報123および当日売上情報124は、第1の項目の情報である。インデックスは、特定情報である。第2の記憶手段であるフラッシュROM13は、書換え回数に制限がある半導体メモリである。フラッシュROM13の価格は、RAM12の価格よりも低価格である。フラッシュROM13は、制御部11がプログラムを実行するために必要な情報を記憶し、制御部11によって情報の書込みおよび読出しが行われる。フラッシュROM13に書込まれた情報を書換えるためには、書込まれている情報を一旦消去してから、書込む必要がある。フラッシュROM13は、書換え頻度が予め定める基準頻度未満、たとえば1日に2回未満の書換えが発生する情報を記憶する。すなわち、フラッシュROM13には、RAM12に記憶される情報よりも更新頻度が少ない情報が記憶される。フラッシュROM13には、たとえば、第2商品マスタ情報131、および売上記録136が記憶される。第2商品マスタ情報131は、商品名情報132、各種設定情報133、週間売上情報134および月間売上情報135を含む。商品名情報132は、各商品に命名された名称を表す情報である。各種設定情報133は、商品ごとに設定された情報であり、たとえば税種別およびグループなどの情報がある。税種別は、内税/外税および課税/非課税などの別を表す。グループは、各商品が分類されているグループを表す。週間売上情報134は、週単位の商品の売上金額を表す情報である。月間売上情報135は、月単位の商品の売上金額を表す情報である。売上記録136は、個々の売上を電子的に記憶する電子ジャーナルである。商品名情報132、各種設定情報133、週間売上情報134および月間売上情報135は、第2の項目の情報である。プログラム格納ROM14は、たとえば書換え可能なフラッシュメモリ、あるいは書換え不可のマスクROMなどによって構成される。プログラム格納ROM14は、制御部11によって実行されるプログラムおよびテーブルを記憶する。表示部15は、たとえば液晶ディスプレイなどの表示装置によって構成される。表示部15は、制御部11から受取る情報を表示する。プリンタ16は、たとえば印刷装置によって構成される。プリンタ16は、制御部11から受取る情報を印刷する。制御部11は、プリンタ16によって、たとえばレシートを印刷する。時計17は、時刻を計時する。制御部11は、時計17を参照することによって、時刻を認識し、あるいは時間を計測する。キーボード18は、文字、数字および記号などを入力するための複数のキーを有する入力装置である。キーボード18は、操作されたキーに対応付けられた情報を制御部11に送る。ユーザは、キーボード18を操作することによって、商品コードおよび顧客番号などの情報を入力することができる。通信部19は、たとえば通信装置によって構成される。通信部19は、通信回線に接続される他の装置、たとえばサーバ装置と情報の送受信を行う。SDカードインタフェース部20は、着脱可能な記録媒体、たとえばSDカードを装着可能であり、装着された記録媒体に情報の書込みおよび読出しを行うためのインタフェースである。SDカードインタフェース部20は、装着された記録媒体に記録された情報を読出し、読出した情報を制御部11に送り、制御部11から受け取る情報を装着された記録媒体に書込む。SDカードには、商品マスタ、顧客マスタ、および売上記録などの情報が記憶される。バーコードスキャナ21は、バーコードを読取り、読取った情報を制御部11に送る。バーコードスキャナ21は、たとえば商品のバーコード、およびカードに記憶される顧客番号のバーコードを読取る。ドロア22は、金銭を収容する収容装置である。制御部11は、キーボード18によって入力された情報に従って、記憶している情報の更新処理、および取引処理を行う。たとえば、制御部11は、更新処理では、商品名の変更処理を行う。また、制御部11は、取引処理では、商品の販売が行われると、商品の売上処理を行い、売上記録を更新する。売上処理では、売上金額の集計を行い、第1商品マスタ情報121の当日売上情報、ならびに第2商品マスタ情報131の週間売上情報134および月間売上情報135を更新する精算処理を行う。制御部11は、データ送受信部111および各種データ作成部112を含む。データ送受信部111および各種データ作成部112は、制御部11がプログラム格納ROM14に記憶されるプログラムを実行することによって実現される機能である。データ送受信部111は、通信部19によって、たとえば通信回線に接続されるサーバ装置と情報の送受信を行う。各種データ作成部112は、表示用データや印字用データを作成する。制御部11は、各種データ作成部112によって作成された表示用データを表示部15に表示させ、また、各種データ作成部112によって作成された印字用データをプリンタ16に印刷させる。図2は、商品マスタ情報30の構成を示す図である。商品マスタ情報30は、商品に関する複数の項目の情報を商品コードごとに示す情報である。商品マスタ情報30は、商品コード301、商品名302、単価303、各種設定304、当日売上金額305、週間売上金額306および月間売上金額307の項目を含む。商品コード301は、各商品を識別するための識別情報である。商品コード301は、自然数によって表される。商品名302は、各商品に命名された名称である。単価303は、各商品の1個当たりの価格である。各種設定304は、税種別およびグループなど予め設定されている情報である。当日売上金額305は、日単位の売上金額である。週間売上金額306は、週単位の売上金額である。月間売上金額307は、月単位の売上金額である。図2に示した商品マスタ情報30には、商品名302、単価303、各種設定304、当日売上金額305、週間売上金額306および月間売上金額307が、商品コードごとに行単位で表わされている。図2に示した商品マスタ情報30は、商品コードの昇順に配列されているが、降順であってもよい。図2には、商品コード00001について、商品名ウーロン茶、単価150、各種設定内税、第1グループ、当日売上金額66,000円、週間売上金額330,000円、および月間売上金額1,500,000円が示されている。商品コード00002については、商品名緑茶A、単価150、各種設定内税、第1グループ、当日売上金額75,000円、週間売上金額412,500円、および月間売上金額2,200,000円が示されている。商品コード00003については、商品名緑茶B、単価150、各種設定内税、第1グループ、当日売上金額6,000円、週間売上金額36,000円、および月間売上金額150,000円が示されている。商品コード00011については、商品名アンパン、単価100、各種設定内税、第2グループ、当日売上金額8,000円、週間売上金額48,000円、および月間売上金額120,000円が示されている。商品コード00012については、商品名サンドイッチ、単価250、各種設定内税、第2グループ、当日売上金額8,750円、週間売上金額70,000円、および月間売上金額250,000円が示されている。商品コード00101については、商品名商品券A、単価1000、各種設定非課税、第3グループ、当日売上金額12,000円、週間売上金額80,000円、および月間売上金額385,000円が示されている。商品コード00102については、商品名商品券B、単価1000、各種設定非課税、第3グループ、当日売上金額5,000円、週間売上金額20,000円、および月間売上金額72,000円が示されている。図3は、RAM12に記憶される情報の構成を示す図である。RAM12には、表示/印字用データ127、レシート計算用データ128、商品マスタインデックス情報122、単価情報123、当日売上情報124、商品マスタ情報メモリ構成テーブル125およびフラッシュROM書込みポインタテーブル126が記憶されている。商品マスタインデックス情報122、単価情報123および当日売上情報124は、第1商品マスタ情報121を構成する。図4は、フラッシュROM13に記憶される情報の構成を示す図である。フラッシュROM13には、14個の第2商品マスタ情報131、および2個の売上記録136が、ブロック単位に記憶される。1つのブロックに記憶される第2商品マスタ情報131は64Kバイトで構成され、1つのブロックに記憶される売上記録136は64Kバイトで構成される。図5は、プログラム格納ROM14に記憶される情報の構成を示す図である。プログラム格納ROM14には、第1アプリケーションプログラム141、第2アプリケーションプログラム142、商品マスタ情報更新処理プログラム143、フラッシュROMブロック構成テーブル144、および第nアプリケーションプログラム145が、この順序で記憶されている。第1アプリケーションプログラム141、第2アプリケーションプログラム142および第nアプリケーションプログラム145は、アプリケーションプログラムである。商品マスタ情報更新処理プログラム143は、商品マスタ情報30の更新を行うプログラムであり、後述する商品名変更処理および精算処理を行う。フラッシュROMブロック構成テーブル144は、フラッシュROM13に形成される16個のブロックのそれぞれの開始アドレスおよび終了アドレスを示すテーブルである。商品マスタ情報更新処理プログラム143およびフラッシュROMブロック構成テーブル144は、商品マスタ更新処理プログラムを構成する。図6は、フラッシュROMブロック構成テーブル144の構成を示す図である。たとえば、第1ブロックの開始アドレスは、0x00000であり、終了アドレスは、0x0FFFFである。第2ブロックの開始アドレスは、0x10000であり、終了アドレスは、0x1FFFFである。第3ブロックの開始アドレスは、0x20000であり、終了アドレスは、0x2FFFFである。第4ブロックの開始アドレスは、0x30000であり、終了アドレスは、0x3FFFFである。第16ブロックの開始アドレスは、0xF0000であり、終了アドレスは、0xFFFFFである。ここに、0xは、C言語の記述様式であり、16進数の数値であることを示す。図7は、商品マスタ情報メモリ構成テーブル125の構成を示す図である。商品マスタ情報30に含まれる各項目の情報がどの記憶媒体のどこに何バイト単位で記憶されているかを示すテーブルである。メモリタイプは、各項目の情報が記憶されている記憶媒体を示す情報である。RAMは、記憶媒体がRAM12であることを示し、FlashROMは、記憶媒体がフラッシュROM13であることを示す。メモリサイズバイト数は、各項目の情報の長さをバイト数で表す情報である。開始アドレス/ブロックは、メモリタイプがRAMの場合、各項目の情報が記憶されている先頭のアドレスを示し、メモリタイプがFlashROMの場合、各項目の情報が記憶されている先頭のブロック番号を示す。終了アドレス/ブロックは、メモリタイプがRAMの場合、各項目の情報が記憶されている最後のアドレスを示し、メモリタイプがFlashROMの場合、各項目の情報が記憶されている最後のブロック番号を示す。図7には、6つの項目の情報、具体的には、単価情報123、当日売上情報124、商品名情報132、各種設定情報133、週間売上情報134および月間売上情報135が示されている。各項目の情報についてのメモリタイプ、メモリサイズバイト数、開始アドレス/ブロックおよび終了アドレス/ブロックは、単価情報123については、RAM、3、0x08000および0x085DBである。当日売上情報124については、RAM、8、0x085DCおよび0x0957Bである。商品名情報132については、FlashROM、16、1および2である。各種設定情報133については、FlashROM、2、1および2である。週間売上情報134については、FlashROM、8、3および3である。月間売上情報135については、FlashROM、8、4および4である。図8は、フラッシュROM書込みポインタテーブル126の構成を示す図である。フラッシュROM書込みポインタテーブル126は、各ブロックの書込みポインタの値を記憶するテーブルである。書込みポインタは、ブロック内の未使用領域の先頭のアドレスを示すポインタである。図8には、第1ブロックの書込みポインタとして、0x0080が示され、第2ブロックの書込みポインタとして、0x0000が示され、第3ブロックの書込みポインタとして、0x0038が示され、第4ブロックの書込みポインタとして、0x0038が示され、第16ブロックの書込みポインタとして、0x0000が示されている。図9は、商品マスタインデックス情報122の構成を示す図である。商品マスタインデックス情報122は、レコードポインタ、および第2商品マスタ情報131が記憶されるメモリアドレスを含む。レコードポインタは、RAM12に記憶されている第1商品マスタ情報のレコードのうち、各商品コードのレコードが何番目のレコードであるかを示すポインタである。第2商品マスタ情報が記憶されるメモリアドレスは、フラッシュROM13に記憶される商品名情報132、各種設定情報133、週間売上情報134および月間売上情報135のアドレスを、商品コードごとに示す。図9に示した商品マスタインデックス情報122は、商品コードの昇順に配列されているが、降順であってもよい。各商品コードに対応付けられているレコードポインタ、ならびに商品名情報132、各種設定情報133、週間売上情報134および月間売上情報135のアドレスは、商品コード00001については、0x0001、0x00000、0x00010、0x20000、および0x30000である。商品コード00002については、0x0002、0x00012、0x00022、0x20008、および0x30008である。商品コード00003については、0x0003、0x00024、0x00034、0x20010、および0x30010である。商品コード00011については、0x0004、0x00036、0x00046、0x20018、および0x30018である。商品コード00012については、0x0005、0x00048、0x00058、0x20020、および0x30020である。商品コード00101については、0x0006、0x0005A、0x0006A、0x20028、および0x30028である。商品コード00102については、0x0007、0x0006C、0x0007C、0x20030、および0x30030である。図10は、レコードポインタが示すレコードに記憶される情報を示す図である。1つのレコードは、単価情報123および当日売上情報124を含む。1つの商品コードに対応付けられる当日売上情報124は、同じ商品コードに対応付けられる単価情報123と同じ順序でRAM12に記憶される。RAM12に記憶される各レコードには、単価情報123として、単価401が記憶され、当日売上情報124として、当日売上金額402が記憶されている。図10には、各レコードポインタが示すレコードの単価および当日売上金額として、レコードポインタ0x0001については、150および66000が示されている。レコードポインタ0x0002については、150および75000が示されている。レコードポインタ0x0003については、150および6000が示されている。レコードポインタ0x0004については、100および8000が示されている。レコードポインタ0x0005については、250および8750が示されている。レコードポインタ0x0006については、1000および12000が示されている。レコードポインタ0x0007については、1000および5000が示されている。いずれも単位は円である。図11は、フラッシュROM13に記憶される第2商品マスタ情報131の構成を示す図である。図11には、左端部に、フラッシュROM13のアドレス、中央部に、左端部に記憶されるアドレスに記憶される情報、そして、右端部に、その情報の説明が記載されている。たとえば、アドレス0x00000には、中央部にウーロン茶が示され、右端部に商品名情報16文字が示されている。これは、フラッシュROM13のアドレス0x00000から、ウーロン茶という情報が記憶されており、その情報は、商品名情報132であり、16文字からなることを示している。また、アドレス0x00010には、中央部に0x000x01が示され、右端部に各種設定情報内税、第1グループが示されている。これは、フラッシュROM13のアドレス0x00010から、0x000x01という情報が記憶されており、その情報は、税種別およびグループの各種設定情報133であることを示している。税種別0x00が内税であることを示し、税種別0x02が非課税であることを示す。グループ0x01が第1グループであることを示し、グループ0x02が第2グループであることを示し、グループ0x03が第3グループであることを示す。また、たとえば、アドレス0x20000には、中央部に330000が示され、右端部に週間売上情報が示されている。これは、これは、フラッシュROM13のアドレス0x20000から、330000という情報が記憶されており、その情報は、週間売上金額を表す週間売上情報134であることを示している。アドレス0x30000には、中央部に330000が示され、右端部に月間売上情報が示されている。これは、これは、フラッシュROM13のアドレス0x30000から、330000という情報が記憶されており、その情報は、月間売上金額を表す月間売上情報135であることを示している。未使用のアドレスには、0xFFが記憶される。すなわち、未使用のアドレスには、16進数のFFが記憶されている。図8に示したフラッシュROM書込みポインタテーブル126には、第1ブロックの書込みポインタとして0x00080が記載され、第1ブロックの未使用領域がアドレス0x00080であることがわかる。第3ブロックの書込みポインタとして0x20038が記載され、第3ブロックの未使用領域がアドレス0x20038であることがわかる。また、第4ブロックの書込みポインタとして0x30038が記載され、第4ブロックの未使用領域がアドレス0x30038であることがわかる。図12は、商品名変更に伴う商品マスタインデックス情報122の変更前後のデータを示す図である。図12~図14では、商品コード00003の商品名緑茶Bを、緑茶B_500mlに変更する場合を例にして説明する。図12aは、変更前の商品マスタインデックス情報122であり、図12bは、変更後の商品マスタインデックス情報122aである。図12aに示した商品マスタインデックス情報122では、商品コード00003の商品名情報のアドレスは、0x00024であり、図12bに示した商品マスタインデックス情報122aでは、商品コード00003の商品名情報のアドレスは、0x00080である。すなわち、変更後の新たな商品名緑茶B_500mlを表す商品名情報132は、第1ブロックの未使用領域であるアドレス0x00080からの領域に記憶されたことを示している。変更前の商品名緑茶Bを表す商品名情報132は、消去されずに、第1ブロックのアドレス0x00024からの領域に記憶されているが、図12bに示した商品マスタインデックス情報122aでは、商品コード00003の商品名情報132のアドレスが変更されているので、変更前の商品名情報132を用いることはなく、変更後の商品名情報132を用いることができる。図13は、商品名変更に伴うフラッシュROM書込みポインタテーブル126の変更前後のデータを示す図である。図13aは、変更前のフラッシュROM書込みポインタテーブル126であり、図13bは、変更後のフラッシュROM書込みポインタテーブル126aである。商品名情報132は、図7に示した商品マスタ情報メモリ構成テーブル125を参照すると、16バイトであることがわかる。商品コード00003の商品名緑茶Bを、緑茶B_500mlに変更し、商品コード00003の商品名情報132が、第1ブロックの未使用領域であるアドレス0x00080からの領域に記憶されたことに伴い、第1ブロックの書込みポインタが、0x0080に16バイトを加算した0x0090に変更される。図13aに示した変更前のフラッシュROM書込みポインタテーブル126では、第1ブロックの書込みポインタが0x0080であるが、図13bに示した変更後のフラッシュROM書込みポインタテーブル126aでは、第1ブロックの書込みポインタが0x0090に変更されている。図14は、商品名変更に伴う第2商品マスタ情報131の一部の変更前後のデータを示す図である。図14の左側に、変更前の第2商品マスタ情報131の一部を示し、右側に、変更後の第2商品マスタ情報131aの一部を示す。変更前の第2商品マスタ情報131では、フラッシュROM13の第1ブロックのアドレス0x00080以降が未使用であるが、変更後の第2商品マスタ情報131aでは、フラッシュROM13の第1ブロックのアドレス0x00080から、商品名緑茶B_500mlを表す16バイトの商品名情報132が記憶されている。第1ブロックの書込みポインタは、0x00080から0x00090に更新される。アドレス0x00024には、変更前の商品名緑茶Bを表す商品名情報132が消去されずに記憶されている。図15は、精算処理に伴う商品マスタインデックス情報122の変更前後のデータを示す図である。精算処理は、たとえば1日の終わりに実行される。具体的には、1日の終わりに、売上週計レポートを発行し、当日売上金額を週間売上金額および月間売上金額にそれぞれ加算し、翌日に備えて当日売上金額を初期化する。図15aは、変更前の商品マスタインデックス情報122であり、図15bは、変更後の商品マスタインデックス情報122bである。図15aに示した変更前の商品マスタインデックス情報122は、精算処理が実行される前の週間売上情報のアドレスおよび月間売上情報のアドレスを示している。図15aに示した週間売上情報のアドレスおよび月間売上情報のアドレスは、図11に示した第2商品マスタ情報131の週間売上情報134および月間売上情報135が記憶されているフラッシュROM13のアドレスである。図15bに示した週間売上情報のアドレスおよび月間売上情報のアドレスは、精算処理後の週間売上情報134および月間売上情報135が記憶されているフラッシュROM13のアドレスである。精算処理後の週間売上情報134は、フラッシュROM13の第2ブロックの未使用領域に記憶され、精算処理後の月間売上情報135は、フラッシュROM13の第3ブロックの未使用領域に記憶されている。具体的には、精算処理前の週間売上情報134および月間売上情報135は、それぞれ、商品コード00001については、アドレス0x20000および0x30000に記憶されている。商品コード00002については、アドレス0x20008および0x30008に記憶されている。商品コード00003については、アドレス0x20010および0x30010に記憶されている。商品コード00011については、アドレス0x20018および0x30018に記憶されている。商品コード00012については、アドレス0x20020および0x30020に記憶されている。商品コード00101については、アドレス0x20028および0x30028に記憶されている。商品コード00102については、アドレス0x20030および0x30030に記憶されている。そして、精算処理後の週間売上情報134および月間売上情報135は、それぞれ、商品コード00001については、アドレス0x20038および0x30038に記憶されている。商品コード00002については、アドレス0x20040および0x30040に記憶されている。商品コード00003については、アドレス0x20048および0x30048に記憶されている。商品コード00011については、アドレス0x20050および0x30050に記憶されている。商品コード00012については、アドレス0x20058および0x30058に記憶されている。商品コード00101については、アドレス0x20060および0x30060に記憶されている。商品コード00102については、アドレス0x20068および0x30068に記憶されている。図16は、精算処理に伴う当日売上金額402の変更前後のデータを示す図である。図16aは、変更前の当日売上金額402であり、図16bは、変更後の当日売上金額402aである。すなわち、図16aに示した変更前の当日売上金額402は、精算処理を行う前の当日売上金額であり、各レコードポインタが示すレコードに記憶されている。図16bに示した変更後の当日売上金額402aは、精算処理を行なった後の当日売上金額であり、各レコードポインタが示すレコードに記憶されている。図16aには、各レコードポインタが示すレコードに記憶される当日売上金額402が示されている。レコードポインタ0x0001については66000である。レコードポインタ0x0002については75000である。レコードポインタ0x0003については6000である。レコードポインタ0x0004については8000である。レコードポインタ0x0005については8750である。レコードポインタ0x0006については12000である。レコードポインタ0x0007については5000である。図16bには、各レコードポインタが示すレコードに記憶される当日売上金額402aが示されている。レコードポインタ0x0001~0x0007のいずれにも0が記憶されている。すなわち、1日の精算処理が終了したので、翌日以降の処理に備えて、すべての当日売上金額402aは、0に初期化されている。図17は、精算処理に伴うフラッシュROM書込みポインタテーブル126の変更前後のデータを示す図である。図17aは、変更前のフラッシュROM書込みポインタテーブル126であり、図17bは、変更後のフラッシュROM書込みポインタテーブル126bである。週間売上情報134および月間売上情報135は、図7に示した商品マスタ情報メモリ構成テーブル125を参照すると、いずれも8バイトであることがわかる。精算処理後の週間売上情報134は、第3ブロックの未使用領域の先頭アドレス、つまり図17aに示したフラッシュROM書込みポインタテーブル126の第3ブロックの書込みポインタが示すアドレスから記憶される。精算処理後の月間売上情報135は、第4ブロックの未使用領域の先頭アドレス、つまり図17aに示したフラッシュROM書込みポインタテーブル126の第4ブロックの書込みポインタが示すアドレスから記憶される。7つの商品コードについて精算処理を行ったので、精算処理後の第3ブロックの書込みポインタは、図17aに示したフラッシュROM書込みポインタテーブル126の第3ブロックの書込みポインタ0x0038に、56バイトを加算して、図17bに示したフラッシュROM書込みポインタテーブル126の第3ブロックの書込みポインタ0x0070となる。同様に、精算処理後の第4ブロックの書込みポインタは、図17aに示したフラッシュROM書込みポインタテーブル126の第4ブロックの書込みポインタ0x0038に、56バイトを加算して、図17bに示したフラッシュROM書込みポインタテーブル126の第4ブロックの書込みポインタ0x0070となる。図18は、精算処理に伴う第2商品マスタ情報131の他の一部の変更前後のデータを示す図である。図18の左側に、変更前の第2商品マスタ情報131の他の一部を示し、右側に、変更後の第2商品マスタ情報131bの他の一部を示す。変更前の第2商品マスタ情報131では、フラッシュROM13の第3ブロックのアドレス0x20038以降が未使用であるが、変更後の第2商品マスタ情報131bでは、フラッシュROM13の第3ブロックのアドレス0x20038から、7つの商品コード00001~00007についての週間売上情報134が記憶されている。第3ブロックの書込みポインタは、0x20038から0x20070に更新される。アドレス0x20038には、商品コード00001の週間売上金額396000が週間売上情報134として記憶されている。アドレス0x20040には、商品コード00002の週間売上金額487500が週間売上情報134として記憶されている。アドレス0x20048には、商品コード00003の週間売上金額52000が週間売上情報134として記憶されている。アドレス0x20050には、商品コード00011の週間売上金額56000が週間売上情報134として記憶されている。アドレス0x20058には、商品コード00012の週間売上金額78750が週間売上情報134として記憶されている。アドレス0x20060には、商品コード00101の週間売上金額92000が週間売上情報134として記憶されている。アドレス0x20068には、商品コード00102の週間売上金額25000が週間売上情報134として記憶されている。同様に、変更前の第2商品マスタ情報131では、フラッシュROM13の第4ブロックのアドレス0x30038以降が未使用であるが、変更後の第2商品マスタ情報131bでは、フラッシュROM13の第4ブロックのアドレス0x30038から、7つの商品コード00001~00007についての月間売上情報135が記憶されている。第4ブロックの書込みポインタは、0x30038から0x30070に更新される。アドレス0x30038には、商品コード00001の月間売上金額1566000が月間売上情報135として記憶されている。アドレス0x30040には、商品コード00002の月間売上金額2275000が月間売上情報135として記憶されている。アドレス0x30048には、商品コード00003の月間売上金額156000が月間売上情報135として記憶されている。アドレス0x30050には、商品コード00011の月間売上金額128000が月間売上情報135として記憶されている。アドレス0x30058には、商品コード00012の月間売上金額258750が月間売上情報135として記憶されている。アドレス0x30060には、商品コード00101の月間売上金額397000が月間売上情報135として記憶されている。アドレス0x30068には、商品コード00102の月間売上金額77000が月間売上情報135として記憶されている。図19は、商品名変更処理の処理手順を示すフローチャートである。商品名変更処理は、すでに命名されている商品名を変更するための処理であり、たとえば利用者が、キーボード18によって、メインメニューから商品名変更の機能を選択すると、ステップA1に進む。ステップA1では、利用者が商品コードと商品名とをキーボード18によって入力すると、キーボード18は、操作されたキーが示す情報を制御部11に送る。制御部11は、キーボード18から、入力された情報、つまり商品コードと商品名とを表す情報を受け取る。ステップA2では、制御部11は、書込む対象の項目を表す対象項目変数図では[項目]というに商品名を代入し、書込む内容を表す書込み内容変数図では[書込み内容]というに、ステップA1で入力された商品名を代入する。ステップA3では、制御部11は、入力された商品コードに対する商品マスタ情報以下商品マスタデータというの書込み処理を行って、商品名変更処理を終了する。商品マスタデータは、第1商品マスタ情報121および第2商品マスタ情報131のことである。商品マスタデータの書込み処理については、図22,23で後述する。図20は、精算処理の処理手順を示すフローチャートである。精算処理は、販売した商品の清算を行うための処理であり、たとえば利用者が、キーボード18によって、メインメニューから精算処理の機能を選択すると、ステップB1に進む。ステップB1では、制御部11は、インデックス変数indexNo.に1を代入する。インデックス変数indexNo.は、商品マスタインデックス情報122の商品コードのうち、どの商品コードであるかを示す変数である。具体的には、インデックス変数indexNo.は、図9に示した商品マスタインデックス情報122の商品コードのうち上から何番目であるかを示す。ステップB2では、制御部11は、商品マスタインデックス情報122以下、商品マスタインデックスというから、インデックス変数indexNo.に対するインデックスデータを取得する。インデックスデータは、図9に示した商品マスタインデックス情報122の情報である。制御部11は、インデックス変数indexNo.が示す商品コードの1行の情報を、1つのレコードとして取得する。インデックス変数indexNo.が示す位置に商品コードがないときは、商品コードを0とする。ステップB3では、制御部11は、取得したレコードに記憶されている商品コードを、商品コード変数図では、商品コードというに代入する。ステップB4では、制御部11は、商品コードが無いか否かを判定する。すなわち、レコードが終了したか否かを判定する。制御部11は、商品コード変数が0であるとき、商品コードが無いと判定し、精算処理を終了する。商品コード変数が0でないとき、商品コードがあると判定し、ステップB5に進む。ステップB5では、制御部11は、読出す対象項目変数に当日売上情報を代入する。ステップB6では、制御部11は、商品コード変数が示す商品コードに対する商品マスタデータの読出し処理を実行する。商品マスタデータの読出し処理については、図21で後述する。ステップB6では、制御部11は、読出したデータを当日売上金額変数図では、当日売上金額というに代入する。ステップB8では、制御部11は、読出す対象項目変数に週間売上情報を代入する。ステップB9では、制御部11は、商品コード変数が示す商品コードに対する商品マスタデータの読出し処理を実行する。ステップB10では、制御部11は、読出したデータを週間売上金額変数図では、週間売上金額というに代入する。ステップB11では、制御部11は、週間売上金額変数が示す週間売上金額に、当日売上金額変数が示す当日売上金額を加算した値を、週間売上金額変数に代入して、新たな週間売上金額変数とする。ステップB12では、制御部11は、読出す対象項目変数に月間売上情報を代入する。ステップB13では、制御部11は、商品コード変数が示す商品コードに対する商品マスタデータの読出し処理を実行する。ステップB14では、制御部11は、読出したデータを月間売上金額変数図では、月間売上金額というに代入する。ステップB15では、制御部11は、月間売上金額変数が示す月間売上金額に、当日売上金額変数が示す当日売上金額を加算した値を、月間売上金額変数に代入して、新たな月間売上金額変数とする。ステップB16では、制御部11は、書込む対象項目変数に週間売上情報を代入し、書込み内容変数に、週間売上金額変数の値を代入する。ステップB17では、制御部11は、商品コード変数が示す商品コードに対する商品マスタデータの書込み処理を実行する。ステップB18では、制御部11は、書込む対象項目変数に月間売上情報を代入し、書込み内容変数に、月間売上金額変数の値を代入する。ステップB19では、制御部11は、商品コード変数が示す商品コードに対する商品マスタデータの書込み処理を実行する。ステップB20では、制御部11は、書込む対象項目変数に当日売上情報を代入し、書込み内容変数に、0の値を代入する。ステップB21では、制御部11は、商品コード変数が示す商品コードに対する商品マスタデータの書込み処理を実行する。ステップB22では、制御部11は、インデックス変数indexNo.に1を加算して、新たなインデックス変数indexNo.として、ステップB2に戻る。図21は、商品マスタデータ読出処理の処理手順を示すフローチャートである。商品マスタデータ読出処理は、対象項目変数が示す項目について、商品コード変数が示す商品コードに対する商品マスタデータを読出す処理である。図20に示したステップB6,B9,B13が実行されたとき、ステップC1に移る。ステップC1では、制御部11は、商品マスタインデックスから商品コード変数が示す商品コードに対するインデックスデータを取得する。ステップC2では、制御部11は、商品マスタ情報メモリ構成テーブル125から、指定された対象項目変数が示す項目のメモリサイズを取得する。ステップC3では、制御部11は、商品マスタ情報メモリ構成テーブル125から、指定された対象項目変数が示す項目のメモリタイプを取得する。ステップC4では、制御部11は、メモリタイプがFlashROMであるか否かを判定する。制御部11は、メモリタイプがFlashROMであるとき、ステップC5に進み、メモリタイプがFlashROMでないとき、つまりメモリタイプがRAMのとき、ステップC7に進む。ステップC5では、制御部11は、インデックスデータから、指定された対象項目変数が示す項目のメモリアドレスを取得する。ステップC6では、制御部11は、取得したメモリアドレスから、メモリサイズ分のデータを取得し、取得したデータを上位アプリケーション図では上位アプリという、つまり図20に示した精算処理に渡し、商品マスタデータ読出処理を終了する。ステップC7では、制御部11は、商品マスタ情報メモリ構成テーブル125から、指定された対象項目変数が示す項目の開始アドレスを取得する。ステップC8では、制御部11は、インデックスデータからレコードポインタを取得する。ステップC9では、制御部11は、ステップC7で取得した開始アドレス、ステップC8で取得したレコードポインタ、およびステップC2で取得したメモリサイズから、対象データを記憶しているメモリアドレスを算出する。対象データは、対象項目変数が示す項目の情報である。ステップC10では、制御部11は、算出したメモリアドレスからメモリサイズ分のデータを取得し、取得したデータを上位アプリケーション、つまり図20に示した精算処理に渡し、商品マスタデータ読出処理を終了する。図22,23は、商品マスタデータ書込処理の処理手順を示すフローチャートである。商品マスタデータ書込処理は、対象項目変数が示す項目について、書込み内容変数が示す書込む内容を、商品コード変数が示す商品コードに対する商品マスタデータに書込む処理である。図19に示したステップB3、または図20に示したステップB17,B19,B21が実行されたとき、ステップD1に移る。ステップD1~D7での処理は、図21に示したステップC1~C4,C7~C9と同じ処理であり、重複を避けるために説明は省略する。ステップD8では、制御部11は、算出したメモリアドレスからメモリサイズ分の領域に、指定された書込み内容変数が示す書込む内容を書き込んで記録し、商品マスタデータ書込処理を終了する。ステップD11では、制御部11は、商品マスタ情報メモリ構成テーブル125から、指定された対象項目変数が示す項目の開始ブロックの番号および終了ブロックの番号を取得する。ステップD12では、制御部11は、ブロックの番号を表すブロック番号変数図ではブロック番号というに、ステップD11で取得した開始ブロックの番号を代入する。ステップD13では、制御部11は、フラッシュROM書込みポインタテーブル126から、ブロック番号変数が示すブロック番号に対応する書込みポインタを取得する。ステップD14では、制御部11は、書込みポインタの値が0xFFFFであるか否かを判定する。制御部11は、書込みポインタの値が0xFFFFであるとき、ステップD21に進み、書込みポインタの値が0xFFFFでないとき、ステップD15に進む。ステップD15では、制御部11は、フラッシュROMブロック構成テーブル144からブロック番号変数が示すブロック番号に対応する開始アドレスを取得する。ステップD16では、制御部11は、ステップD15で取得した開始アドレスに、ステップD13で取得した書込みポインタの値を加算したアドレスを、書込みアドレスを表す書込みアドレス変数図では書込みアドレスというに代入する。ステップD17では、制御部11は、算出した書込みアドレス、つまり書込みアドレス変数が示す書込みアドレスから、ステップD2で取得したメモリサイズ分の領域に、指定された書込み内容変数が示す書込む内容を書き込んで記録する。ステップD18では、制御部11は、商品マスタインデックスの商品コード変数が示す商品コードに対する項目のうち、対象項目変数が示す項目のメモリアドレスに、書込みアドレス変数が示す書込みアドレスを書込んで記録する。ステップD19では、制御部11は、ステップD13で取得した書込みポインタが示す値に、ステップD2で取得したメモリサイズを加算した値を、書込みポインタ変数に代入する。ステップD20では、制御部11は、フラッシュROM書込みポインタテーブル126のブロック番号のうちブロック番号変数が示すブロック番号の書込みポインタに、書込みポインタ変数が示す書込みポインタを書込んで記録し、商品マスタデータ書込処理を終了する。ステップD21では、制御部11は、ブロック番号変数が示すブロック番号に1を加算して、1加算したブロック番号を新たなブロック番号としてブロック番号変数に代入する。ステップD22では、制御部11は、ブロック番号変数が示すブロック番号が終了ブロックであるか否かを判定する。制御部11は、ブロック番号変数が示すブロック番号が終了ブロックであるとき、ステップD23に進み、ブロック番号変数が示すブロック番号が終了ブロックでないとき、ステップD13に戻る。終了ブロックは、たとえば第16ブロックである。ステップD23では、制御部11は、ガーベージ処理を行って、ステップD11に戻る。ガーベージ処理は、フラッシュROMに記憶されるブロックを整理する処理である。具体的には、ガーベージ処理は、情報を更新した際に消去されずに記憶されている未使用の情報を消去する処理であり、従来技術を用いて行われる。図24は、従来技術による商品名変更での商品マスタ情報の書換えを説明するための図である。従来技術では、図2に示した商品マスタ情報30をフラッシュROM13に記憶している。図24aは、商品コードごとのレコードポインタを示す商品マスタインデックス情報91を示す。図24bは、商品コード00003の商品名緑茶Bを、商品名緑茶B_500mlに更新したフラッシュROM13に記憶されている商品マスタ情報92を示す。従来技術では、商品コード00003の商品名のアドレスに記憶される商品名緑茶Bが消去された後、同じアドレスに商品名緑茶B_500mlが書込まれる。すなわち、商品名の更新が行われる度に消去が発生する。これに対して、本発明では、図14に示すように、変更後の商品名緑茶B_500mlは未使用の領域に書き込まれるので、変更前の商品名緑茶Bは消去されることはなく記憶されたままである。図25は、従来技術による精算処理での変更前後の商品マスタ情報を示す図である。従来技術では、図2に示した商品マスタ情報30をフラッシュROM13に記憶している。図25aは、変更前にフラッシュROM13に記憶されている商品マスタ情報93を示す。図25bは、変更後にフラッシュROM13に記憶されている商品マスタ情報94を示す。従来技術では、精算処理が行われると、フラッシュROMに記憶されるすべての商品コードについての当日売上金額が0とされ、フラッシュROMに記憶されるすべての商品コードについての週間売上金額および月間売上金額に、当日売上金額が加算されて更新される。この場合、フラッシュROMに記憶される変更前のすべての商品コードについての当日売上金額、週間売上金額および月間売上金額は一旦消去された後、更新される。すなわち、精算処理が行われる度に消去が発生する。これに対して、本発明では、図16に示すようにRAM12に記憶される当日売上金額を更新し、また、図18に示すように、精算処理後の週間売上金額および月間売上金額をフラッシュROM13の未使用の領域に記憶する。したがって、変更前の週間売上金額および月間売上金額を消去することなく記憶したままとすることができる。このように、本発明では、フラッシュROM13に記憶される変更前の情報を消去することなく記憶したままとし、消去することなく記憶したままとした情報は、すべてのブロックに書込みが行われた後に行われるガーベージ処理で消去されるので、フラッシュROM13の消去頻度を低減することができ、フラッシュROM13の寿命を延ばすことができる。このように、RAM12は、書換え回数に制限がない。フラッシュROM13は、書換え回数に制限がある。そして、制御部11は、商品に関する複数の項目についての情報のうち、書換え頻度が予め定める基準頻度以上である第1の項目の情報、たとえば単価情報123および当日売上情報124をRAM12に記憶させ、書換え頻度が予め定める基準頻度未満である第2の項目の情報、たとえば商品名情報132、各種設定情報133、週間売上情報134および月間売上情報135をフラッシュROM13に記憶させる。したがって、RAM12、たとえば高価なSRAMの使用量を減らすことができ、コスト削減を図ることができる。また、書換え頻度の低い情報を書換え回数に制限のあるフラッシュROM13に記憶するので、フラッシュROM13の使用可能期間を延ばすことができる。さらに、RAM12には、各商品を識別するための商品コード301が記憶されている。そして、制御部11は、第1の項目の情報を、商品コード301に対応付けてRAM12に記憶させ、第2の項目の情報を、商品コード301に対応付けてフラッシュROM13に記憶させる。したがって、複数の項目の情報を商品コード301ごとに管理することができる。さらに、制御部11は、第2の項目の情報が記憶されるフラッシュROM13のアドレスを特定するインデックスを、商品コード301と対応付けてRAM12に記憶させる。したがって、RAM12に記憶されるインデックスによって、フラッシュROM13に記憶される第2の項目の情報を特定することができる。さらに、制御部11は、フラッシュROM13に記憶される第2の項目の情報を更新するとき、変更前の第2の項目の情報を消去することなく、変更後の第2の項目の情報をフラッシュROM13の領域のうち未書込みの領域に書込み、RAM12に記憶されるインデックスを、変更後の第2の項目の情報を書込んだアドレスを特定するインデックスに書換える。したがって、第2の項目の情報を更新しても、フラッシュROM13の消去を行う必要がなく、フラッシュROM13の使用可能期間をより延ばすことができる。さらに、商品コード301は、自然数によって表される。そして、制御部11は、第1の項目の情報を商品コード301に対応付けて商品コード301の昇順または降順にRAM12に記憶させ、第2の項目の情報を商品コード301に対応付けて商品コード301の昇順または降順にフラッシュROM13に記憶させる。したがって、商品コード301による検索を容易に行うことができる。"