【手続補正書】
【提出日】平成17年3月4日(2005.3.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】      明細書
【発明の名称】      乱数発生装置
【特許請求の範囲】
【請求項１】  遊技機に用いる乱数発生装置であって、
該乱数発生装置は、ハードウェア回路として構成され、
Ｍ系列方式又はカウンタ方式の乱数を発生する乱数発生回路と、
該乱数発生回路から出力された乱数に対してビットスクランブルをかけるビットスクランブル回路と、
該ビットスクランブル回路の出力を予め格納された乱数最大値と比較する乱数最大値比較回路と、
該乱数最大値比較回路は比較処理の結果、最大値を超えた場合に再度乱数発生回路に要求を行い、最大値を超えない乱数値を得るまで乱数要求を繰り返し、最大値を越えない乱数である場合にそれを取得し保持する乱数値保持回路と、
該乱数値保持回路に保持された乱数を外部トリガ入力による要求やユーザが乱数の読み出し要求を行った際に取り込んだ乱数が格納された乱数読出回路と、
を有する乱数発生装置。
【請求項２】  請求項１に記載した乱数発生装置であって、
所定のいくつかの値の中から乱数初期値を選択する乱数初期値選択回路と、前記乱数発生回路から独立した補助乱数発生手段とを更に有し、
前記乱数発生回路の乱数初期値は、該乱数初期値選択回路により書き換えられ、
該乱数初期値は、乱数発生回路の発生する乱数が一巡する毎に前記補助乱数発生手段の発生する補助乱数値を初期値とすることを特徴とする乱数発生装置。
【請求項３】  請求項２に記載した乱数発生装置であって、
前記乱数初期値選択回路が乱数初期値として選択する選択肢として、ＲＯＭ内に格納された乱数初期値選択定数、前記乱数発生装置固有の固定値、前記乱数発生装置のＩＤ番号、ＲＡＭ値又はＲＡＭ演算値を含むことを特徴とする乱数発生装置。
【請求項４】  請求項１に記載した乱数発生装置であって、
所定のいくつかのトリガ条件の中から前記乱数発生回路の更新制御のトリガ条件を選択する乱数更新トリガ選択回路と更にこれらトリガ条件の更新の開始や継続や終了を制御する更新制御回路を更に有する乱数発生装置。
【請求項５】  請求項１に記載した乱数発生装置であって、
前記ビットスクランブル回路は、あらかじめ用意されたビットスクランブルテーブルにしたがってビットを入れ替える処理をすることを特徴とする乱数発生装置。
【請求項６】  請求項５に記載した乱数発生装置であって、
前記ビットスクランブル回路におけるスクランブル処理は、ビットスクランブルテーブルを複数用意し、複数段階のビット入れ替えを実行することを特徴とする乱数発生装置。
【請求項７】  請求項5に記載した乱数発生装置であって、
前記複数のビットスクランブルテーブルは、乱数発生回路からの乱数一巡終了信号及びビットスクランブル要求回路からのビットスクランブル要求及び補助乱数発生手段からの乱数を基に不規則に任意のビット入れ替えを実行することを特徴とする乱数発生装置。
【請求項８】  請求項1に記載した乱数発生装置であって、
前記乱数値読出回路に格納された乱数を読み出す為の乱数値要求回路とを更に有し、
該乱数値要求回路の要求するタイミングは、複数のトリガ条件から選択可能としたことを特徴とする乱数発生装置。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】  本発明は、パチンコ遊技機や回胴式遊技機等、これらの遊技機に使用される乱数発生装置に関するものである。
【０００２】
【従来の技術】
＜一般的内容＞  遊技機メーカーは遊技機の暴走対策として遊技機を制御するＣＰＵに対し、例えば２ｍｓ毎の一定周期でリセットを入力し、遊技プログラムの先頭番地から実行するインターバルリセット割り込みの処理を行っている。すなわち、仮にノイズ等の原因によるＣＰＵ暴走が発生したとしても、上記周期でＣＰＵに対しリセットが入力され、遊技プログラムの先頭番地に戻る為暴走による被害を最小限に抑えることができる。
＜プラス１方式＞  遊技機に使用される乱数発生方式として、リセット割込処理毎に乱数値に「１」を加算し、所定の乱数範囲の最大値に達した場合「０」に戻す、いわゆる「プラス１方式」による方式がある。
＜初期値更新型によるプラス１方式＞  また、乱数周期が一巡毎に初期値を毎回変更し同様に乱数値に「１」を加算する「初期値更新型によるプラス１方式」による方式がある。
＜ソフトウェアによる乱数発生＞  更に、上記いずれの方式においてもソフトウェアによって乱数を発生していた。
【０００３】
【発明が解決しようとする課題】
＜プラス１方式の課題＞  「プラス１方式」による乱数発生は乱数値の出現周期に規則性が生じる為不正者（ゴト行為等）が大当たり乱数値の発生周期に合わせて狙い打ちして大当り判定値を取得する「体感器」や、大当たり発生周期に合わせて入賞センサーに対し疑入賞信号を発生する等、いわゆる「ぶら下がり基板」によって大当たりを誘発させ、不当に過剰な利益を獲得するという問題点があった。
＜初期値更新型によるプラス１方式の課題＞  また、「初期値更新型によるプラス１方式」は初期値が変更されることによって特定乱数値の出現する周期は「プラス１方式」より不規則となり「体感器」による狙い打ち等は困難となるが、ソフトウェアによる乱数発生では、乱数の更新毎にシステムバス上にそのデータが出力される為外部でその出現のデータ解析を行えば乱数系列の特定や初期値更新のタイミングの特定が可能であり、いずれにせよその周期に合わせて大当たりを狙い打ちすることが可能となってしまう。
＜ソフトウェアによる乱数発生の課題＞  また、ソフトウェアを作成する者や、漏洩によってその内容を知る不正者は乱数初期値更新のタイミングさえ判別できれば特定乱数値の出現周期の確定は容易である。
本発明は、かかる従来技術の課題に鑑みなされたものである。すなわち、本発明の目的は、不正アクセスをしづらい遊技機用の乱数発生装置を提供することにある。
【０００４】
【課題を解決するための手段】  かかる課題を解決すべく、本発明にかかる遊技機に用いる乱数発生装置は、ハードウェア回路として構成され、Ｍ系列方式又はカウンタ方式の乱数を発生する乱数発生回路と、該乱数発生回路から出力された乱数に対してビットスクランブルをかけるビットスクランブル回路と、該ビットスクランブル回路の出力を予め格納された乱数最大値と比較する乱数最大値比較回路と、該乱数最大値比較回路は比較処理の結果、最大値を超えた場合に再度乱数発生回路に要求を行い、最大値を超えない乱数値を得るまで乱数要求を繰り返し、最大値を越えない乱数である場合にそれを取得し保持する乱数値保持回路と、該乱数値保持回路に保持された乱数を外部トリガ入力による要求やユーザが乱数の読み出し要求を行った際に取り込んだ乱数が格納された乱数読出回路と、を有する乱数発生装置である。
【０００５】  請求項２の発明は、請求項１に記載した乱数発生装置であって、所定のいくつかの値の中から乱数初期値を選択する乱数初期値選択回路と、前記乱数発生回路からは独立した補助乱数発生手段とを更に有し、前記乱数発生回路の乱数初期値は、該乱数初期値選択回路により書き換えられ、該乱数初期値は、乱数発生回路の発生する乱数が一巡する毎に補助乱数発生手段の発生する補助乱数値を初期値とすることを特徴とする乱数発生装置である。
【０００６】  請求項３の発明は、請求項２に記載した乱数発生装置であって、前記乱数初期値選択回路が乱数初期値として選択する選択肢として、ＲＯＭ内に格納された乱数初期値選択定数、前記乱数発生装置固有の固定値、前記乱数発生装置のＩＤ番号、ＲＡＭ値又はＲＡＭ演算値を含むことを特徴とする乱数発生装置である。
【０００７】  請求項４の発明は、請求項１に記載した乱数発生装置であって、所定のいくつかのトリガ条件の中から前記乱数発生回路の更新制御のトリガ条件を選択する乱数更新トリガ選択回路と更にこれらトリガ条件の更新の開始や継続や終了を制御する更新制御回路を更に有する乱数発生装置である。
【０００８】  請求項５の発明は、請求項１に記載した乱数発生装置であって、前記ビットスクランブル回路は、あらかじめ用意されたビットスクランブルテーブルにしたがってビットを入れ替える処理をすることを特徴とする乱数発生装置である。
【０００９】  請求項６の発明は、請求項５に記載した乱数発生装置であって、前記ビットスクランブル回路におけるスクランブル処理は、ビットスクランブルテーブルを複数用意し、複数段階のビット入れ替えを実行することを特徴とする乱数発生装置である。
【００１０】  請求項７の発明は、請求項５に記載した乱数発生装置であって、前記複数のビットスクランブルテーブルは、乱数発生回路からの乱数一巡終了信号及びビットスクランブル要求回路からのビットスクランブル要求及び補助乱数発生手段からの乱数を基に不規則に任意のビット入れ替えを実行することを特徴とする乱数発生装置である。
【００１１】  請求項８の発明は、請求項１に記載した乱数発生装置であって、前記乱数値読出回路に格納された乱数を読み出す為の乱数値要求回路とを更に有し、該乱数値要求回路の要求するタイミングは、複数のトリガ条件から選択可能としたことを特徴とする乱数発生装置である。
【００１２】
【発明の実施の形態】  以下に本発明を図示された実施形態に従って詳細に説明する。
【００１３】  図１は本発明にかかる乱数発生装置の乱数発生の回路構成を示すブロック図である。
更新周期設定データ保持回路１は、ユーザが任意のインターバル周期で乱数更新を行う為のインターバル周期を指定する為の設定データを保持する回路であり、基準となるインターバル周期を指定する為の基準インターバル周期指定回路１ａと、その基準となるインターバル周期を基に実際の乱数更新を行う為のインターバル周期を指定する為の設定を行う定周期設定値格納回路１ｂで構成されている。
当該回路１で指定されたデータは、更新周期設定回路２へロードされる。
【００１４】  更新周期設定回路２は、定周期で乱数更新を行う為のインターバル周期を設定する回路であり、基準インターバル周期指定回路１ａで指定されたデータに対応した基準となるインターバル周期を生成する為の基準インターバル周期生成回路２ａと、当該回路２ａから供給された基準インターバル周期クロックを基に定周期設定値格納回路１ｂで指定されたカウントデータ数を基に基準インターバル周期をカウントする為の基準インターバル周期カウント回路２ｂと、定周期設定値格納回路１ｂで指定されたカウントデータ数に達した場合にインターバル周期の更新・継続を指定する為のリロードタイミングを生成するリロードタイミング生成回路２ｃで構成される。
したがって、更新周期設定回路２で設定されたインターバル周期が乱数更新トリガ選択回路６へ供給される。
【００１５】  例えばシステムクロックの分周波が基準となるインターバル周期（仮にＩとする）だとすると、基準インターバル周期指定回路１ａで指定したデータ（例えば１２８分周を指定するデータ）に基づき分周したクロックが基準インターバル周期となる。
また、定周期設定値格納回路１ｂの指定できる設定範囲が仮に８ビットだとすると、実際の定周期で乱数更新を行う為の設定できるインターバル周期は、「１２８×システムクロック×１から１２８×システムクロック×２５６迄」のインターバル周期を設定することができる。
また、定周期設定値格納回路１ｂで指定した設定値が仮に「５」だとすると、この設定値が同様にリロードタイミング生成回路２ｃにロードされ、当該回路にて「１２８×システムクロック×５」に達した場合再度インターバル周期の更新・継続を行う為のリロードタイミングを基準インターバル周期カウント回路２ｂへ供給することになる。
【００１６】  ソフトウェア更新トリガ発生回路３は、ＣＰＵからの命令により所定の条件を組み合わせたデータ（アドレス、所定のデータをデコードして発生したデータ等）を当該回路へライトアクセスを行うことによってソフトウェアトリガ信号を発生する。
【００１７】  動作開始指示回路４は、乱数更新の動作の停止、再始動、継続動作等の指定を行うものである。
【００１８】  乱数更新トリガ選択情報保持回路５は、乱数値の更新において、更新周期設定回路２で発生された定周期で乱数更新を行う為のインターバル周期を使用する自動更新方式か、あるいはソフトウェア更新トリガ発生回路３で発生されたソフトウェアによるトリガ信号を使用する手動更新方式を使用するかのいずれかの方式の選択を行うものである。
【００１９】  乱数更新トリガ選択回路６は、更新周期設定回路２で発生されたインターバル周期クロック、またはソフトウェア更新トリガ発生回路３で生成されたソフトウェアによるトリガ信号のいずれかの内一つを選択して更新制御回路７へ供給する。
【００２０】  更新制御回路７は、乱数更新の動作の停止、再始動、継続動作等の制御を行う。
【００２１】  乱数発生回路８は、所定の設定によりそれぞれ異なる乱数系列の発生を行う為のｎ次の生成多項式、又はｎビットカウンタが複数内蔵されている。
【００２２】  ビットスクランブル設定回路９は、乱数発生回路８から出力される乱数データのビットの入れ替えや転置を行うものであり、ビットスクランブル要求回路９ａ、ビットスクランブルキー生成回路９ｂ、ビットスクランブル回路９ｃで構成される。ビットスクランブル要求回路９ａは、乱数更新トリガ選択回路６により選択された更新手段により更新されたタイミングにより乱数発生回路８から出力される乱数データに対しスクランブルをかける要求を指定する回路である。ビットスクランブルキー生成回路９ｂは、補助乱数発生手段１９から発生されるビットスクランブル用キー生成の為の補助乱数やビットスクランブル要求回路９ａからのデータ値を基に乱数データの配置・転置を行う為のビットスクランブルテーブルの選択を行う回路である。ビットスクランブル回路９ｃは、ビットスクランブルキー生成回路９ｂから指定されたキーデータにより選択されたビットスクランブルテーブルを基に乱数データのビットの配置・転置を行う回路である。なお、スクランブルをかけるか否かの選択はビットスクランブル要求回路９ａによりユーザが自由に設定できるが、ビットスクランブル用キーの変更は、乱数発生回路８より出力される乱数一巡終了信号Ｓ１により行われる。ビットスクランブル要求回路９ａより出力されるビットスクランブル要求信号Ｓ２があっても乱数一巡終了信号Ｓ１が無いと、ビットスクランブル用キーの変更は行われない。このことにより乱数一巡毎の確率が一定となる。
【００２３】  乱数最大値格納回路１０は、ユーザが任意に設定した乱数周期の最大値を格納する為の回路である。例えば乱数発生範囲が１から４０９５まであるとした場合、ユーザにとって１から３６までの乱数のみ必要な場合、当該回路１０に最大値として３６を設定すれば１から３６までの乱数を得ることが可能である。
【００２４】  乱数最大値比較回路１１は、ユーザが任意に設定した乱数周期の最大値と乱数発生回路８が発生した乱数値をビットスクランブル回路９ｃがビットスクランブルを行った出力値を比較し、出力値が最大値より大きい場合には乱数発生回路８に対し次の乱数発生を指示する。最大値以下の場合には乱数値保持回路１２へ格納する。
【００２５】  乱数値保持回路１２は、ユーザが任意に設定した乱数周期の最大値以下の場合の時のスクランブルされた乱数データを保持するものである。すなわち最大周期に達するまでの乱数データを保持する回路である。
【００２６】  乱数値要求回路１３は、ユーザが乱数データを読み出す為の要求を行うものであり、外部トリガ入力による要求やその要求があった場合の情報を割込信号として外部へ出力することも可能である。
【００２７】  乱数値読出回路１４は、ユーザが乱数データを読み出す為の回路である。
【００２８】  ＲＯＭ内プログラム管理エリア１５は、本発明の乱数発生装置の動作指定、制御等を行う為にユーザが設定する動作環境設定の指定を行うエリアであり、乱数系列を発生する為の最初のスタート値である乱数初期値選択定数１５ａと、ある所定のＲＡＭアドレスに格納されたデータを発生する乱数系列の初期値として使用したい場合、そのデータを乱数初期値選択回路１７へ送出することを目的とするＲＡＭアドレス指定１５ｂとで構成される。なお、初期化プログラムで乱数初期値をＲＡＭ値と選択した場合ＲＡＭアドレス指定で示されたアドレスのＲＡＭ値を乱数初期値選択回路１７へ格納する。
【００２９】  ソフトウェア操作１６は、乱数の更新処理や所定の初期値をロードする為の制御を行う為の操作を指しており、本発明の乱数発生装置自身が持つ値である固定値１６ａ、本発明の乱数発生装置に割り付けられた自身を認識する為の固有の番号であるＩＤ番号１６ｂ、ＲＡＭアドレス指定１５ｂで指定された値であるＲＡＭ値１６ｃ、ＲＡＭ内の全アドレスのデータを基に加算・減算・乗算・除算等の演算処理した値であるＲＡＭ演算値１６ｄ、プログラムの制御用のデータエリアであるＲＡＭ１６ｅ、で構成される。
【００３０】  なお、ＩＤ番号１６ｂは、製造ロット番号、製造年月日、製造工場、ユーザ管理番号等を情報として格納することができ、この番号が付与されることで量産（例えば１０００万個等）や流通等の管理が可能になる。乱数初期値選択回路１７は、乱数初期値として固定値１６ａ、ＩＤ番号１６ｂ、ＲＡＭ値１６ｃ、ＲＡＭ演算値１６ｄのいずれかの内１つを選択して乱数発生回路８へ初期値をロードする。
【００３１】  乱数初期値格納回路１８は、乱数初期値選択回路１７により選択された初期値又は補助乱数発生手段１９にて発生された乱数を初期値として格納する為の回路である。
乱数初期値は乱数発生回路８の発生する乱数値が一巡する毎に補助乱数発生手段１９より乱数初期値格納回路１８により更新できる。
【００３２】  補助乱数発生手段１９は、本乱数発生装置とは別の手段にて乱数を発生させたものである。
【００３３】  次に図２について説明する。図２は補助乱数発生手段１９の概要を示すブロック図であり、
（ａ）ＣＰＵ２０の命令制御による乱数発生
（ｂ）熱雑音による乱数発生
（ｃ）別クロックによる乱数発生
がある。
【００３４】  （ａ）のＣＰＵ２０の命令制御による乱数発生は、ＣＰＵ２０が行った命令（命令実行数カウント回路２１にて保持される）の情報等をカウントしたデータを乱数とするものである。
【００３５】  （ｂ）の熱雑音による乱数発生は、抵抗体やダイオード等から発生する熱雑音等のノイズ成分を乱数とするもので、これら熱雑音発生体を内蔵した熱雑音発生回路２２から発生するアナログのノイズ成分をＡ／Ｄ変換回路２３にてデジタルデータに変換したものを乱数とするものである。
【００３６】  （ｃ）別クロックによる乱数発生は、本乱数発生装置で使用するクロックとは別のクロックで乱数を生成するものであり、オシレータ等の水晶発振子であるＯＳＣ２４から出力されるクロックを基にカウンタ回路２５にて所定の分周比で分周を行ったクロックを乱数とするものである。
【００３７】  これら上記（ａ）、（ｂ）、（ｃ）の方法にて生成された乱数は乱数初期値としてビットスクランブルキー生成回路９ｂ、または乱数初期値格納回路１８へ供給されることとなる。
供給の方法としては上記（ａ）、（ｂ）、（ｃ）を適宜組み合わせたものとなる。
【００３８】  次に図３について説明する。図３は本発明にかかる乱数発生装置のビットスクランブル設定回路９の具体的な説明図であり、ビットスクランブルテーブルとはビットの入れ替えのパターンを示すビットスクランブルテーブル（以下便宜上、「変換テーブル」、または「変換パターン」と略称する場合がある）であり、この変換テーブルにもとづいてビットの配置・転置位置が決定する。例えばデータ長を８ビットし元の配置が最下位ビットから順にＤ０−Ｄ１−Ｄ２−Ｄ３−Ｄ４−Ｄ５−Ｄ６−Ｄ７だとすると
（１）Ｄ０−Ｄ１−Ｄ２−Ｄ３−Ｄ４−Ｄ５−Ｄ６−Ｄ７
（２）Ｄ３−Ｄ０−Ｄ５−Ｄ１−Ｄ７−Ｄ２−Ｄ４−Ｄ６
（３）から（２５５）までの記載を省略。
（２５６）Ｄ７−Ｄ５−Ｄ２−Ｄ４−Ｄ１−Ｄ６−Ｄ０−Ｄ３
といった様に元の変換を行わないものを加味すると２５６通りの変換パターンが存在することになる。この様子を図式イメージ化したものが図３（ａ）である。
【００３９】  しかし、上記変換パターンをソフトウェアでは無くハードウェアにて実現しようとすると回路規模が大きくなりゲート数の増大を招いてしまう。
【００４０】  そこでその変換テーブルの数を減少させることによって回路規模を小さくしゲート数の増大を招くこと無く２５６通りの変換パターンを確保することが可能にするのが本発明のビットスクランブル設定回路９の特徴であり、その原理を図式イメージ化したものが図３（ｂ）である。以下にその原理の説明を行うが、便宜上同様にデータ長は８ビットとする。
【００４１】  ビットスクランブルキー発生回路９ｂのＫＥＹ＿Ａ（４ビット）によって最初に１６通りの変換テーブルを発生する。すなわちこの最初の１６通りの変換パターンがそれぞれ個別に元のパターンとなる。（仮にＯ１〜Ｏ１６とする）
【００４２】  次に上記１６通りの元のパターンに対しＫＥＹ＿Ｂ（２ビット）にてそれぞれ個別に更にパターンの変換を行う。すなわち
（Ｏ１×４通り）から（Ｏ１６×４通り）迄の加算値となるので合計実質上６４通りの変換パターンを実現したことになる。したがって、上記同様６４通りの変換パターンがそれぞれ個別に元のパターンとなる。（仮にＯＨ１〜ＯＨ４とする）
【００４３】  次に上記同様に６４通りのパターンに対しＫＥＹ＿Ｃ（２ビット）にてそれぞれ個別に更にパターンの変換を行う。すなわち（ＯＨ１×４通り）から（ＯＨ４×４通り）迄の加算値となるので最終的に合計した結果、実質上の変換パターンは２５６通り実現したことになる。
【００４４】  したがって本来２５６通りの変換テーブルが必要だったものが、上記の方法により２４通りの変換テーブルを用意するだけで、実質上２５６通りの変換パターンを実現させたことになり回路規模が小さくなる。
【００４５】  また、上記方法の変換パターンのロジック回路はシフトレジスタを用いること無くゲート回路のみで設計できる為、次の変換パターンを交換する処理スピードは遊技機の動作するシステムクロックの１周期分も要しない。
【００４６】  図４は更新周期設定データ保持回路１と更新周期設定回路２の内部構成を示すブロック図である。
【００４７】  次に本発明の乱数発生装置の動作について図５に図示された概要フローに従い順に説明する。
【００４８】  図５は本乱数発生装置が所望の動作を行う為の環境設定の設定を行う初期化ルーチン処理を示すフローチャートである。
遊技機全体を初期化するシステムリセットが入力されると最初に使用する乱数初期値として（１）乱数発生装置の固定値、（２）乱数発生装置のＩＤ番号、（３）ＲＡＭ値、（４）ＲＡＭ演算値の内何を使用するかの選定及びその他乱数発生装置の内部回路等の初期化処理の環境設定終了後、ユーザが使用できるユーザモードに遷移しユーザリセット待ちの状態となる。なお、ユーザリセットでは上記処理の初期化は行なわれない。
【００４９】  次に図６の概要フローについて説明する。
図６は本乱数発生装置が図５による初期化処理終了後ユーザが自由に乱数を読み出す為の動作設定処理を示すフローチャートである。
ユーザが接続した各周辺装置の初期化及びユーザが作成した遊技制御プログラムの先頭番地に戻る為のユーザリセットが入力されると、インターバル動作の為の定周期が起動される。
定周期による更新又は手動更新（ソフトウェアによる更新）の内いずれを使用するかの更新トリガ条件の設定が行われ、手動更新が設定された場合ソフトウェア更新トリガによる乱数更新を行うことになる。
次に遊技機のスタートセンサ入力等の乱数読み込みタイミングかの判断が行われソフトウェアによる取込みトリガを使用する場合乱数値要求回路をアクセスすることで乱数値保持回路に保持された乱数値が取り込まれ乱数値読出回路へロードされる。
後は読み出した乱数を基にユーザが抽選処理等のアプリケーション操作を行うことになる。
【００５０】  次に図７の概要フローについて説明する。
図７は本発明の第一実施例にかかる本乱数発生装置の乱数更新及び乱数読出処理のフローチャートを示したもので、（ａ）は自動更新（定周期）及び手動更新（ソフトウェア）による乱数更新処理、（ｂ）は外部トリガ及びソフトウェアによる取込みトリガによる乱数読出処理を示したフローである。
【００５１】  乱数の更新が行われるとビットスクランブルキーデータの示すビットスクランブルテーブルにより乱数値のビットスクランブル処理を行い、乱数値が最大値以内の場合乱数値を乱数値保持回路へ格納し、最大値を超えた場合乱数値の再更新を行う。次に乱数の発生が一巡したか否かの判断が行われ、一巡した場合にビットスクランブルの変更要求は有るか否かの判断が行われ、要求があった場合ビットスクランブルキーデータの更新処理を行う。
【００５２】  なお、乱数値の取込とは発生した乱数を乱数保持回路１２からユーザがアクセス可能な乱数値読出回路１４に対して送るか否かの処理のことを指す。定周期による乱数更新トリガを使用した場合乱数値の取込は自動的に行われる。この乱数値の取込処理を行うか否かの選定を行うことでユーザが
（１）更新周期設定回路によって自動的に連続して発生された乱数値を使用するか
（２）任意の時点で更新して読み出した乱数値を使用するか
かの遊技性の向趣を選定することができる。
【００５３】  したがって、ユーザが実際に乱数の取得を行うには乱数値要求回路１３にアクセスすることでその時点の本乱数発生装置で発生されている乱数値を取得することができる。
【００５４】  また、ユーザリセットの入力毎に上記動作指定条件の設定をユーザが自由に変更できるが、（１）最大値設定、（２）更新トリガ条件設定は１度設定を行うと変更することはできない。
【００５５】
【発明の効果】  （１）乱数の初期値の更新において、ユーザ側で複数の乱数更新トリガ条件を選択可能にし、また乱数発生装置毎のＩＤ番号を用いることにより乱数の発生の不規則性や遊技機メーカーの機種・台毎にそれぞれ異なる乱数系列を持つことが可能となる。
（２）Ｍ系列又はカウンタ方式の乱数を採用したので、一様性のある乱数を発生させることが可能である。
（３）乱数発生装置を遊技機制御用マイクロコンピュータの内部にハードウェアで構成して内蔵したので、更新タイミングをシステムバス上へ出力しない制御をすることにより、乱数発生回路内部で処理されている乱数の更新タイミングが外部へ出力されない。したがって、不正を行う者にとって乱数値の出現する周期を予測することができなくなる。
（４）乱数最大値格納回路を設けたので、発生する乱数の最大周期をユーザで任意に設定可能となる。
（５）乱数更新トリガ選択回路及び更新制御回路を設けたので、乱数の更新タイミングをユーザで任意に設定可能となる。また、ユーザの任意の設定による乱数の更新タイミング以外のトリガをも採用したので、ユーザ設定のみに依存せずに乱数の発生が可能となる。
（６）ビットスクランブル回路を設けることにより、発生した乱数にスクランブルをかけることができる。また、ビットスクランブルキー生成回路を設け、複数のテーブルを用いたことにより、乱数の１周期（一巡）ごとにスクランブルの仕方についての設定を変更することが可能となる。
【図面の簡単な説明】
【図１】乱数発生の回路構成を示すブロック図である。
【図２】補助乱数発生手段１９の具体例を示すブロック図である。
【図３】 ビットスクランブルテーブルの構成を示す概念説明図である。
【図４】更新周期設定データ保持回路１と更新周期設定回路２の内部構成を示すブロック図である。
【図５】本発明の第一実施例にかかる本乱数発生装置が所望の動作を行う為の環境設定の設定を行う初期化ルーチン処理を示すフローチャートである。
【図６】本発明の第一実施例にかかる本乱数発生装置が図５による初期化処理終了後ユーザが自由に乱数を読み出す為の動作設定処理を示すフローチャートである。
【図７】本発明の第一実施例にかかる本乱数発生装置の乱数更新及び乱数読出処理のフローチャートを示したものである。
【符号の説明】
１  更新周期設定データ保持回路
１ａ  基準インターバル周期指定回路
１ｂ  定周期設定値格納回路
２  更新周期設定回路
２ａ  基準インターバル周期生成回路
２ｂ  基準インターバル周期カウント回路
２ｃ  リロードタイミング生成回路
３  ソフトウェア更新トリガ発生回路
４  動作開始指示回路
５  乱数更新トリガ選択情報保持回路
６  乱数更新トリガ選択回路
７  更新制御回路
８  乱数発生回路
９  ビットスクランブル設定回路
９ａ  ビットスクランブル要求回路
９ｂ  ビットスクランブルキー生成回路
９ｃ  ビットスクランブル回路
１０  乱数最大値格納回路
１１  乱数最大値比較回路
１２  乱数値保持回路
１３  乱数値要求回路
１４  乱数値読出回路
１５  ＲＯＭ内プログラム管理エリア
１５ａ  乱数初期値選択定数
１５ｂ  ＲＡＭアドレス指定
１６  ソフトウェア操作
１６ａ  固定値
１６ｂ  ＩＤ番号
１６ｃ  ＲＡＭ値
１６ｄ  ＲＡＭ演算値
１６ｅ  ＲＡＭ
１７  乱数初期値選択回路
１８  乱数初期値格納回路
１９  補助乱数発生手段
２０  ＣＰＵ
２１  命令実行数カウント回路
２２  熱雑音発生回路
２３  Ａ／Ｄ変換回路
２４  ＯＳＣ
２５  カウンタ回路
Ｓ１  乱数一巡終了信号
Ｓ２  ビットスクランブル要求信号