(57)【要約】【課題】ノイズや不正信号によって電気部品制御マイクロコンピュータが誤動作することを防止できる上に、ＲＡＭのデータを変えたり景品払出の契機になる入賞信号を発生させる等の不正行為を排除する。【解決手段】ＮＭＩ端子にノイズや不正信号等が入力されたことにもとづくＮＭＩ処理で、異常ノイズフラグをセットする。その後、遊技制御用マイクロコンピュータがユーザリセットされメイン処理の実行が開始されると、異常ノイズフラグがセットされている場合には、クリアスイッチが押下されたことを条件に、ＲＡＭクリア処理を行い、タイマ割込がかかるように設定して、遊技制御処理を実行可能な状態にする。ＲＡＭクリアを条件に遊技制御処理を実行可能な状態になるので、ＲＡＭのデータが変わっている状態で遊技制御処理が実行されることはない。【選択図】図１８
2008023224.tif 000002
【特許請求の範囲】
【請求項１】
遊技者が遊技媒体を用いて所定の遊技を行うことが可能な遊技機であって、
プログラムに従って処理を実行することによって遊技機に設けられている電気部品を制御するための処理を行う電気部品制御マイクロコンピュータを備え、
前記電気部品制御マイクロコンピュータは、
電気部品を制御するための処理を実行する制御処理手段と、
前記制御処理手段が電気部品を制御するための処理を実行しているときに、電気部品を制御するためには未使用の所定割込が発生したときに、当該電気部品制御マイクロコンピュータの制御状態を、電気部品を制御する処理を実行しない状態に移行させる制御処理停止手段とを備え、
電気部品を制御する処理を実行しない状態において、ＲＡＭの内容を初期化する初期化処理が実行されたことを条件に、制御状態を前記制御処理手段が動作する状態に移行させる制御状態移行手段と
を備えたことを特徴とする遊技機。
【請求項２】
初期化条件が成立したときにＲＡＭの内容を初期化する初期化処理を実行する初期化手段を備え、
制御処理手段は、前記初期化手段により初期化処理が実行された後、電気部品を制御するための処理を実行し、
制御処理移行手段は、前記初期化条件が成立するまで電気部品を制御する処理を実行しない状態で待機し、前記初期化条件が成立したことを条件に制御状態を前記初期化処理を実行する状態に移行させる
請求項１記載の遊技機。
【請求項３】
操作に応じて操作信号を出力することによって初期化条件を成立させる操作手段を備えた
請求項２記載の遊技機。
【請求項４】
制御処理停止手段は、所定割込が発生したときに、該所定割込が発生したことを示す割込発生データを設定し、
制御処理移行手段は、前記割込発生データが設定されているときに、初期化条件が成立するまで電気部品を制御する処理を実行しない状態で待機する
請求項２または請求項３記載の遊技機。
【請求項５】
所定のクリア信号が入力されたときから所定時間後に、電気部品制御マイクロコンピュータを再び起動するためのリセット信号を出力する監視手段を備え、
制御処理手段は、前記所定時間よりも短い間隔で前記クリア信号を出力し、
制御処理停止手段は、割込発生データを設定した後、前記クリア信号を出力せず、前記リセット信号が出力されたときに、電気部品制御マイクロコンピュータの制御状態を、制御状態移行手段が処理を実行する状態に移行させる
請求項１から請求項４のうちのいずれかに記載の遊技機。
【請求項６】
制御処理停止手段は、制御状態移行手段が動作する状態に移行するように構成されたプログラムに従って、電気部品制御マイクロコンピュータの制御状態を、前記制御状態移行手段が処理を実行する状態に移行させる
請求項１から請求項４のうちのいずれかに記載の遊技機。
【請求項７】
制御処理停止手段は、所定割込の発生回数が所定回数になったときに、電気部品制御マイクロコンピュータの制御状態を、電気部品を制御する処理を実行しない状態に移行させる
請求項１から請求項６のうちのいずれかに記載の遊技機。
【請求項８】
制御処理停止手段は、各々の所定割込の発生間隔が所定期間よりも短いことを条件に、電気部品制御マイクロコンピュータの制御状態を、電気部品を制御する処理を実行しない状態に移行させる
請求項７記載の遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遊技者が遊技媒体を用いて所定の遊技を行うことが可能なパチンコ機やスロット機等の遊技機に関し、特に、マイクロコンピュータを含む制御手段を有する遊技機に関する。
【背景技術】
【０００２】
遊技機として、遊技球などの遊技媒体を発射装置によって遊技領域に発射し、遊技領域に設けられている入賞口などの入賞領域に遊技媒体が入賞すると、所定個の賞球が遊技者に払い出されるものがある。さらに、表示状態が変化可能な可変表示装置が設けられ、始動口への遊技球の入賞（始動入賞）などの条件成立にもとづいて可変表示装置において可変表示がなされ、可変表示装置の表示結果があらかじめ定められた特定表示態様となったときに所定の遊技価値を遊技者に与えるように構成されたものがある。
【０００３】
なお、所定の遊技価値とは、例えば、遊技者に多数の景品としての遊技媒体を払い出しうる特定遊技状態になることであり、具体的には、遊技機の遊技領域に設けられた可変入賞球装置の状態が打球が入賞しやすい遊技者にとって有利な状態になることや、遊技者にとって有利な状態になるための権利を発生させたりすることや、賞球払出の条件が成立しやすくなる状態になることである。
【０００４】
遊技機には、プログラムに従って遊技の進行を制御するマイクロコンピュータを含む遊技制御手段が搭載された遊技制御基板の他に、それぞれにマイクロコンピュータを含む制御手段が搭載された種々の制御基板が設けられている。そして、遊技制御手段は、遊技状況に応じて動作指示を示すコマンドを、各制御基板に搭載された各制御手段に送信する。各制御手段は遊技機に設けられている電気部品の制御を行うので、以下、各制御手段を電気部品制御手段といい、電気部品制御手段が搭載された基板を電気部品制御基板（遊技制御基板を含む。）ということがある。電気部品とは、遊技機に設けられている部品（機構部品や回路等）であって電気的に動作するものである。
【０００５】
電気部品制御手段として、例えば、遊技機全体の進行制御（遊技制御）を行う遊技制御手段や、可変表示装置、発光体（ランプやＬＥＤ）、スピーカの演出装置の制御を行う演出制御手段がある。以下、電気部品制御手段に含まれるマイクロコンピュータを電気部品制御マイクロコンピュータということがある。
【０００６】
電気部品制御マイクロコンピュータが、暴走したりハングアップ（停止）してしまったりすると、遊技機において正常な遊技進行ができなくなる。その結果、遊技者が不審感を抱いたり、遊技店の信用が損なわれるといった問題が生ずる。また、遊技機の外部から電波等で不正信号を遊技機に与えて電気部品制御マイクロコンピュータを暴走させることによって遊技機の制御状態を初期化させて、不正行為をしやすくするような状況を生じさせるといった不正を受ける可能性があるという問題もある。
【０００７】
そのような問題に対処するために、割込の発生を禁止できないマスク不能割込が発生したときに電気部品制御マイクロコンピュータにより実行されるが電気部品の制御には未使用であるマスク不能割込処理に対応するプログラムアドレスに、マスク不能割込処理からの戻り命令（例えばＲＥＴＩ命令）を設定して、プログラムの暴走の可能性を低減する遊技機がある（例えば、特許文献１参照。）。
【０００８】
【特許文献１】特開２００３−３２５９０９号公報（段落０１０１−０１０２、図１０）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載された遊技機では、電気部品制御マイクロコンピュータのマスク不能割込端子にノイズや不正信号が入力されても、それらの信号によって電気部品制御マイクロコンピュータが誤動作（暴走や停止）してしまうことはない。その反面、ノイズや不正信号が入力されても遊技制御が続行されるので、ノイズが多発しているような状況や不正信号が入力され続けるような状況を把握することはできない。また、ＲＡＭのデータを変えたり景品払出の契機になる入賞信号を発生させるために電波等で遊技機に不正信号を送り込む不正行為が行われる際に、マスク不能割込端子に不正信号が入力される状況になることがある。その場合、マスク不能割込端子に不正信号が入力されたことを検出すれば、ＲＡＭのデータを変えたり景品払出の契機になる入賞信号を発生させる不正行為を発見できる可能性がある。しかし、マスク不能割込端子に不正信号が入力されたときに遊技制御を続行するように構成されている場合には、不正行為を発見できず、不正に変えられたデータにもとづいて遊技制御がなされたり、不正な入賞信号にもとづいて景品の払出がなされてしまう。
【００１０】
そこで、本発明は、ノイズや不正信号によって電気部品制御マイクロコンピュータが誤動作することを防止できる上に、ＲＡＭのデータを変えたり景品払出の契機になる入賞信号を発生させる等の不正行為を排除できる遊技機を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明による遊技機は、遊技者が遊技媒体（例えば、遊技球）を用いて所定の遊技を行うことが可能な遊技機であって、プログラム（例えば、遊技制御プログラム）に従って処理を実行することによって遊技機に設けられている電気部品（例えば、特別図柄表示器８）を制御するための処理を行う電気部品制御マイクロコンピュータ（例えば、遊技制御用マイクロコンピュータ５６０）を備え、電気部品を制御するための処理を実行する制御処理手段（例えば、遊技制御用マイクロコンピュータ５６０において、ステップＳ２１〜Ｓ３４の処理を実行する部分）と、制御処理手段が電気部品を制御するための処理を実行しているときに、電気部品を制御するためには未使用の所定割込（例えば、ＮＭＩ）が発生したときに、電気部品制御マイクロコンピュータの制御状態を、電気部品を制御する処理を実行しない状態に移行させる制御処理停止手段（例えば、遊技制御用マイクロコンピュータ５６０において、ステップＳ２６０の処理実行後にループ処理実行する部分、およびステップＳ６〜Ｓ８の処理をループする部分）と、制御処理停止手段が電気部品を制御する処理を実行しない状態に移行させた後、電気部品を制御する処理を実行しない状態（例えば、ステップＳ６〜Ｓ８の処理を実行している状態）において、ＲＡＭの内容を初期化する初期化処理（例えば、ステップＳ１０の処理）が実行されたことを条件に、制御状態を制御処理手段が動作する状態に移行させる制御状態移行手段（例えば、遊技制御用マイクロコンピュータ５６０において、ステップＳ１０，Ｓ１５の処理を実行する部分。特に、遊技制御処理が実行可能になるようにタイマ割込の設定を実行する部分）とを備えたことを特徴とする。
【００１２】
初期化条件（例えば、電気部品制御マイクロコンピュータのリセットやクリア水位置９２１の押下）が成立したときにＲＡＭの内容を初期化する初期化処理を実行する初期化手段（例えば、遊技制御用マイクロコンピュータ５６０において、ステップＳ１０〜Ｓ１５の処理を実行する部分）を備え、制御処理手段は、初期化手段により初期化処理が実行された後、電気部品を制御するための処理を実行し（例えば、ステップＳ１０の処理実行後にステップＳ２１〜Ｓ３４の処理を実行）、制御処理移行手段は、初期化条件が成立するまで電気部品を制御する処理を実行しない状態で待機し（例えば、ステップＳ６〜Ｓ８の処理をループする）、初期化条件が成立したことを条件に制御状態を初期化処理を実行する状態に移行させる（例えば、ステップＳ６の処理で「Ｙ」になったときにステップＳ１０の処理を実行する）ように構成されていてもよい。
【００１３】
操作に応じて操作信号を出力することによって初期化条件を成立させる操作手段（例えば、クリアスイッチ９２１）を備えていてもよい。
【００１４】
所定割込が発生したときに、所定割込が発生したことを示す割込発生データ（例えば、異常ノイズフラグ）を設定する割込データ設定手段（例えば、遊技制御用マイクロコンピュータ５６０において、ステップＳ２６０の処理を実行する部分）を備え、制御処理移行手段は、割込発生データが設定されているときに、初期化条件が成立するまで電気部品を制御する処理を実行しない状態で待機する（例えば、遊技制御用マイクロコンピュータ５６０において、ステップＳ８，Ｓ６の処理を実行する）ように構成されていてもよい。
【００１５】
所定のクリア信号が入力されたときから所定時間（例えば、ウォッチドッグタイマ回路５０４のタイムアウト時間）後に、電気部品制御マイクロコンピュータを再び起動するためのリセット信号（例えば、ユーザリセット信号）を出力する監視手段（例えば、ウォッチドッグタイマ回路５０４）を備え、制御処理手段は、所定時間よりも短い間隔（例えば、２ｍｓ）でクリア信号を出力し、制御処理停止手段は、割込発生データを設定した後、クリア信号を出力せず、リセット信号が出力されたときに、電気部品制御マイクロコンピュータの制御状態を、制御状態移行手段が処理を実行する状態に移行させる（例えば、ステップＳ２６９の処理実行後にループ処理で待機しているときに、ウォッチドッグタイマ回路５０４からのユーザリセット信号によりメイン処理のステップＳ１から遊技制御プログラムを実行させる）ように構成されていてもよい。
【００１６】
制御処理許可手段は、制御状態移行手段が動作する状態に移行するように構成されたプログラムに従って、電気部品制御マイクロコンピュータの制御状態を、制御状態移行手段が処理を実行する状態に移行させる（例えば、ステップＳ２６１の処理によりメイン処理のステップＳ１から遊技制御プログラムを実行させる）ように構成されていてもよい。
【００１７】
制御処理停止手段は、所定割込の発生回数が所定回数（例えば、５回）になったときに、電気部品制御マイクロコンピュータの制御状態を、電気部品を制御する処理を実行しない状態に移行させるように構成されていてもよい。
【００１８】
各々の所定割込の発生間隔が所定期間（例えば、所定時間Ｔ。図３９参照）よりも短いことを条件に、電気部品制御マイクロコンピュータの制御状態を、電気部品を制御する処理を実行しない状態に移行させる（例えば、ステップＳ２６５〜Ｓ２６８、Ｓ２７１〜Ｓ２７４、Ｓ２６９の処理を実行）ように構成されていてもよい。
【発明の効果】
【００１９】
請求項１記載の遊技機では、電気部品を制御するためには未使用の所定割込が発生したときに、電気部品制御マイクロコンピュータの制御状態を、電気部品を制御する処理を実行しない状態に移行させ、その後、ＲＡＭの内容を初期化する初期化処理が実行されたことを条件に、制御状態を制御処理手段が動作する状態に移行させるように構成されているので、電気部品を制御するためには未使用の所定割込が発生した場合に、初期化条件が成立するまで電気部品を制御する処理を実行しない状態にすることができ、ノイズが発生する状態からリセットしたり、ＲＡＭのデータを変えたり景品払出の契機になる入賞信号を発生させる等の不正行為を中断させることができる。さらに、電気部品を制御する処理を実行しない状態に移行させた後、ＲＡＭの内容を初期化する初期化処理が実行されたことを条件に制御状態を制御処理手段が動作する状態に移行させるように構成されているので、ＲＡＭの内容が改変された状態で電気部品を制御するための処理が行わる状態に戻ることが防止される。
【００２０】
請求項２記載の遊技機では、制御処理手段は、初期化手段により初期化処理が実行された後、電気部品を制御するための処理を実行し、制御処理移行手段は、初期化条件が成立するまで電気部品を制御する処理を実行しない状態で待機し、初期化条件が成立したことを条件に制御状態を初期化処理を実行する状態に移行させるように構成されているので、初期化手段により初期化処理が実行された後に電気部品を制御するための処理を実行するプログラムを利用して、ＲＡＭの内容を初期化する初期化処理が実行されたことを条件に制御状態を制御処理手段が動作する状態に移行させるように構成することができる。
【００２１】
請求項３記載の遊技機では、操作に応じて操作信号を出力することによって初期化条件を成立させる操作手段を備えているので、遊技店員等が操作手段を操作することを条件に電気部品を制御するための処理を実行する状態に戻ることになり、遊技店員等が不正行為が生じた可能性を認識しやすくなる。
【００２２】
請求項４記載の遊技機では、所定割込が発生したときに、所定割込が発生したことを示す割込発生データを設定し、制御処理移行手段は、割込発生データが設定されているときに、初期化条件が成立するまで電気部品を制御する処理を実行しない状態で待機するように構成されているので、所定割込にもとづく処理において割込発生データを設定するだけで、ノイズが発生する状態からリセットしたり、不正行為を中断させることができるようになる。
【００２３】
請求項５記載の遊技機では、所定のクリア信号が入力されたときから所定時間後に、電気部品制御マイクロコンピュータを再び起動するためのリセット信号を出力する監視手段を備え、制御処理停止手段は、割込発生データを設定した後、クリア信号を出力せず、リセット信号が出力されたときに、電気部品制御マイクロコンピュータの制御状態を、制御状態移行手段が処理を実行する状態に移行させるように構成されているので、マイクロコンピュータが備えている監視手段を利用して、ノイズが発生する状態からリセットしたり、不正行為を中断させることができるようになる。
【００２４】
請求項６記載の遊技機では、制御処理停止手段は、制御状態移行手段が動作する状態に移行するように構成されたプログラムに従って、電気部品制御マイクロコンピュータの制御状態を、制御状態移行手段が処理を実行する状態に移行させるように構成されているので、ハードウェアを用いずソフトウェア処理によって、ノイズが発生する状態からリセットしたり、不正行為を中断させることができるようになる。
【００２５】
請求項７記載の遊技機では、制御処理停止手段は、所定割込の発生回数が所定回数になったときに、電気部品制御マイクロコンピュータの制御状態を、電気部品を制御する処理を実行しない状態に移行させるように構成されているので、偶発的なノイズ等で電気部品を制御する処理を実行しない状態に移行してしまうことを防止できる。
【００２６】
請求項８記載の遊技機では、各々の所定割込の発生間隔が所定期間よりも短いことを条件に、電気部品制御マイクロコンピュータの制御状態を、電気部品を制御する処理を実行しない状態に移行させるように構成されているので、集中して発生するノイズや不正信号を対象にして、電気部品を制御する処理を実行しない状態に移行させることができる。
【発明を実施するための最良の形態】
【００２７】
実施の形態１．
以下、本発明の実施形態を図面を参照して説明する。
まず、遊技機の一例であるパチンコ遊技機の全体の構成について説明する。図１はパチンコ遊技機を正面からみた正面図である。なお、以下の実施の形態では、パチンコ遊技機を例に説明を行うが、本発明による遊技機はパチンコ遊技機に限られず、遊技に応じてあらかじめ決められた個数の遊技媒体が景品として払い出されるスロット機などの他の遊技機に適用することもできる。
【００２８】
パチンコ遊技機１は、縦長の方形状に形成された外枠（図示せず）と、外枠の内側に開閉可能に取り付けられた遊技枠とで構成される。また、パチンコ遊技機１は、遊技枠に開閉可能に設けられている額縁状に形成されたガラス扉枠２を有する。遊技枠は、外枠に対して開閉自在に設置される前面枠（図示せず）と、機構部品等が取り付けられる機構板と、それらに取り付けられる種々の部品（後述する遊技盤を除く。）とを含む構造体である。
【００２９】
図１に示すように、パチンコ遊技機１は、額縁状に形成されたガラス扉枠２を有する。ガラス扉枠２の下部表面には打球供給皿（上皿）３がある。打球供給皿３の下部には、打球供給皿３に収容しきれない遊技球を貯留する余剰球受皿４と遊技球を発射する打球操作ハンドル（操作ノブ）５が設けられている。ガラス扉枠２の背面には、遊技盤６が着脱可能に取り付けられている。なお、遊技盤６は、それを構成する板状体と、その板状体に取り付けられた種々の部品とを含む構造体である。また、遊技盤６の前面には遊技領域７が形成されている。
【００３０】
遊技領域７の中央付近には、それぞれが演出用の飾り図柄を可変表示する複数の可変表示部を含む可変表示装置（画像表示装置）９が設けられている。可変表示装置９には、例えば「左」、「中」、「右」の３つの可変表示部（図柄表示エリア）がある。可変表示装置９は、特別図柄表示器８による特別図柄の可変表示期間中に、装飾用（演出用）の図柄としての飾り図柄の可変表示を行う。飾り図柄の可変表示を行う可変表示装置９は、演出制御基板に搭載されている演出制御用マイクロコンピュータによって制御される。なお、特別図柄の可変表示と飾り図柄の可変表示とは同期（可変表示開始時期および可変表示終了時期が同じ。）している。
【００３１】
可変表示装置９の表示画面には、始動入賞口１４に入った有効入賞球数すなわち保留記憶（始動記憶または始動入賞記憶ともいう。）数を表示する特別図柄保留記憶表示部１８が設けられている。特別図柄保留記憶表示部１８は、保留記憶数を入賞順に４個まで表示する。特別図柄保留記憶表示部１８は、始動入賞口１４に始動入賞があるごとに、点灯状態（表示されている状態）の表示の数を１増やす。そして、特別図柄保留記憶表示部１８は、特別図柄表示器８で可変表示が開始されるごとに、点灯状態の表示の数を１減らす。この例では、始動入賞口１４への入賞による始動記憶数に上限数（４個まで）が設けられているが、上限数を４個以上にしてもよい。また、可変表示装置９の表示画面に特別図柄保留記憶表示部１８を形成するのではなく、可変表示装置９とは別に、例えばＬＥＤによる特別図柄保留記憶表示器を設けてもよい。
【００３２】
可変表示装置９の上部には、識別情報としての特別図柄を可変表示する特別図柄表示器（特別図柄表示装置）８が設けられている。この実施の形態では、特別図柄表示器８は、例えば０〜９の数字を可変表示可能な簡易で小型の表示器（例えば７セグメントＬＥＤ）で実現されている。特別図柄表示器８は、遊技者に特定の停止図柄を把握しづらくさせるために、０〜９９など、より多種類の数字を可変表示するように構成されていてもよい。また、可変表示装置９は、特別図柄表示器８による特別図柄の可変表示期間中に、装飾用（演出用）の図柄としての飾り図柄の可変表示を行う。
【００３３】
可変表示装置９の下方には、始動入賞口１４を形成する可変入賞球装置１５が設けられている。可変入賞球装置１５は、ソレノイド１６によって開状態にされ、開状態になると、始動入賞口１４に遊技球が入賞容易になる。始動入賞口１４に入賞した遊技球は、遊技盤６の背面に導かれ、始動口スイッチ１４ａによって検出される。
【００３４】
可変入賞球装置１５の下部には、特定遊技状態（大当り状態）においてソレノイド２１によって開状態にされる特別可変入賞球装置２０が設けられている。特別可変入賞球装置２０は開閉板を有し、開閉板が開放状態に制御されることによって大入賞口（可変入賞球装置）が開放状態になる。特別可変入賞球装置２０に入賞した入賞球はカウントスイッチ２３で検出される。
【００３５】
ゲート３２に遊技球が入賞しゲートスイッチ３２ａで検出されると、普通図柄表示器１０の表示の可変表示が開始される。この実施の形態では、左右のランプ（点灯時に図柄が視認可能になる）が交互に点灯することによって可変表示が行われ、例えば、可変表示の終了時に右側のランプが点灯すれば当りになる。そして、普通図柄表示器１０における停止図柄が所定の図柄（当り図柄）である場合に、可変入賞球装置１５が所定回数、所定時間だけ開状態になる。普通図柄表示器１０の近傍には、ゲート３２に入った入賞球数を表示する４つのＬＥＤによる表示部を有する普通図柄始動記憶表示器４１が設けられている。ゲート３２への入賞がある毎に、普通図柄始動記憶表示器４１は点灯するＬＥＤを１増やす。そして、普通図柄表示器１０の可変表示が開始される毎に、点灯するＬＥＤを１減らす。
【００３６】
遊技盤６には、複数の入賞口（普通入賞口）２９，３０，３３，３９が設けられ、遊技球の入賞口２９，３０，３３，３９への入賞は、それぞれ入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａによって検出される。なお、それぞれの入賞口２９，３０，３３，３９に入賞した遊技球を、１つの入賞口スイッチで検出するようにしてもよい。各入賞口２９，３０，３３，３９は、遊技媒体を受け入れて入賞を許容する領域として遊技盤６に設けられる入賞領域を構成している。なお、始動入賞口１４や大入賞口も、遊技媒体を受け入れて入賞を許容する入賞領域を構成する。遊技領域７の左右周辺には、遊技中に点滅表示される装飾ランプ２５が設けられ、下部には、入賞しなかった遊技球を吸収するアウト口２６がある。また、遊技領域７の外側の左右上部には、効果音を発する２つのスピーカ２７が設けられている。遊技領域７の外周には、天枠ランプ２８ａ、左枠ランプ２８ｂおよび右枠ランプ２８ｃが設けられている。さらに、遊技領域７における各構造物（大入賞口等）の周囲には装飾ＬＥＤが設置されている。天枠ランプ２８ａ、左枠ランプ２８ｂおよび右枠ランプ２８ｃおよび装飾用ＬＥＤは、遊技機に設けられている装飾発光体の一例である。
【００３７】
打球発射装置から発射された遊技球は、打球レールを通って遊技領域７に入り、その後、遊技領域７を下りてくる。遊技球が始動入賞口１４に入り始動口スイッチ１４ａで検出されると、図柄の可変表示を開始できる状態であれば、特別図柄表示器８において特別図柄が可変表示（変動）を始めるとともに、可変表示装置９において飾り図柄が可変表示（変動）を始める。図柄の可変表示を開始できる状態でなければ、始動入賞記憶数を１増やす。
【００３８】
特別図柄表示器８における特別図柄の可変表示、および可変表示装置９における飾り図柄の可変表示は、一定時間が経過したときに停止する。停止時の特別図柄（停止図柄）が大当り図柄（特定表示結果）であると、大当り遊技状態に移行する。すなわち、特別可変入賞球装置２０が、一定時間経過するまで、または、所定個数（例えば１０個）の遊技球が入賞するまで開放する。
【００３９】
遊技球がゲート３２に入賞すると、普通図柄表示器１０において普通図柄が可変表示される状態になる。また、普通図柄表示器１０における停止図柄が所定の図柄（当り図柄）である場合に、可変入賞球装置１５が所定時間だけ開状態になる。さらに、確変状態では、普通図柄表示器１０における停止図柄が当り図柄になる確率が高められるとともに、可変入賞球装置１５の開放時間と開放回数が高められる。
【００４０】
図２は、主基板（遊技制御基板）３１における回路構成の一例を示すブロック図である。なお、図２には、払出制御基板３７および演出制御基板８０等も示されている。主基板３１には、プログラムに従ってパチンコ遊技機１を制御する遊技制御用マイクロコンピュータ（遊技制御手段に相当）５６０が搭載されている。遊技制御用マイクロコンピュータ５６０は、ゲーム制御用のプログラム（遊技制御プログラム）等を記憶するＲＯＭ５４、ワークメモリとして使用される記憶手段としてのＲＡＭ５５、プログラムに従って制御動作を行うＣＰＵ５６およびＩ／Ｏポート部５７を含む。この実施の形態では、ＲＯＭ５４およびＲＡＭ５５は遊技制御用マイクロコンピュータ５６０に内蔵されている。すなわち、遊技制御用マイクロコンピュータ５６０は、１チップマイクロコンピュータである。１チップマイクロコンピュータには、少なくともＣＰＵ５６のほかＲＡＭ５５が内蔵されていればよく、ＲＯＭ５４は外付けであっても内蔵されていてもよい。また、Ｉ／Ｏポート部５７は、外付けであってもよい。
【００４１】
遊技制御用マイクロコンピュータ５６０には、さらに、ハードウェア乱数を発生する乱数回路５０３、および所定の条件が成立するとタイムアウト信号を出力するウォッチドッグタイマ回路５０４が内蔵されている。
【００４２】
なお、遊技制御用マイクロコンピュータ５６０においてＣＰＵ５６がＲＯＭ５４に格納されているプログラムに従って制御を実行するので、以下、遊技制御用マイクロコンピュータ５６０（またはＣＰＵ５６）が実行する（または、処理を行う）ということは、具体的には、ＣＰＵ５６がプログラムに従って制御を実行することである。このことは、主基板３１以外の他の基板に搭載されているマイクロコンピュータについても同様である。
【００４３】
また、ＲＡＭ５５は、その一部または全部が電源基板に搭載されているバックアップ電源によってバックアップされている不揮発性記憶手段としてのバックアップＲＡＭである。すなわち、遊技機に対する電力供給が停止しても、所定期間（バックアップ電源としてのコンデンサが放電してバックアップ電源が電力供給不能になるまで）は、ＲＡＭ５５の一部または全部の内容は保存される。特に、少なくとも、遊技状態すなわち遊技制御手段の制御状態に応じたデータ（特別図柄プロセスフラグ等）と未払出賞球数を示すデータは、バックアップＲＡＭに保存される。遊技制御手段の制御状態に応じたデータとは、停電等が生じた後に復旧した場合に、そのデータにもとづいて、制御状態を停電等の発生前に復旧させるために必要なデータである。また、制御状態に応じたデータとを未払出賞球数を示すデータとを遊技の進行状態を示すデータと定義する。なお、この実施の形態では、ＲＡＭ５５の全部が、電源バックアップされているとする。
【００４４】
遊技制御用マイクロコンピュータ５６０のリセット端子には、電源基板からのリセット信号が入力される。なお、リセット信号がハイレベルになると遊技制御用マイクロコンピュータ５６０等は動作可能状態になり、リセット信号がローレベルになると遊技制御用マイクロコンピュータ５６０等は動作停止状態になる。従って、リセット信号がハイレベルである期間は、遊技制御用マイクロコンピュータ５６０等の動作を許容する許容信号が出力されていることになり、リセット信号がローレベルである期間は、遊技制御用マイクロコンピュータ５６０等の動作を停止させる動作停止信号が出力されていることになる。なお、リセット回路をそれぞれの電気部品制御基板（電気部品を制御するためのマイクロコンピュータが搭載されている基板）に搭載してもよいし、複数の電気部品制御基板のうちの一つまたは複数にリセット回路を搭載し、そこからリセット信号を他の電気部品制御基板に供給するようにしてもよい。
【００４５】
また、遊技制御用マイクロコンピュータ５６０は、外部からの信号入力を契機としてＣＰＵ５６に割込処理プログラムを実行させる割込端子を備えている。つまり、割込を発生させるための割込端子を備えている。例えば、ローレベルの信号が所定時間（例えば、数１０μｓ）継続して割込端子に入力されると、割込が発生する。割込端子として、割込の発生を禁止（マスク）することが可能なマスク可能割込（以下、ＩＮＴともいう。）を発生させるためのＩＮＴ端子と、割込の発生を禁止できないマスク不能割込（ＮＭＩ）端子とがある。ＮＭＩ端子にローレベルの信号が所定時間入力されると、無条件にＮＭＩが発生する。ＮＭＩが発生すると、ＲＯＭ５４におけるあらかじめ決められているアドレスからプログラムが実行される。そのアドレスから始まる領域に記憶されているプログラムがＮＭＩ処理を実行するための割込処理プログラムである。
【００４６】
なお、この実施の形態では、遊技制御を実行するためにはＮＭＩを使用しない。しかし、ＮＭＩ端子に、ノイズや不正信号に起因してローレベルの信号が所定時間入力されたときにもＮＭＩが発生する。すなわち、ＮＭＩ端子への予期しない信号入力にもとづいてＮＭＩが発生してしまう可能性がある。
【００４７】
また、ゲートスイッチ３２ａ、始動口スイッチ１４ａ、カウントスイッチ２３、入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａからの検出信号を遊技制御用マイクロコンピュータ５６０に与える入力ドライバ回路５８も主基板３１に搭載されている。また、可変入賞球装置１５を開閉するソレノイド１６、および大入賞口を形成する特別可変入賞球装置２０を開閉するソレノイド２１を遊技制御用マイクロコンピュータ５６０からの指令に従って駆動する出力回路５９も主基板３１に搭載されている。
【００４８】
なお、大当り遊技状態の発生を示す大当り情報等の情報出力信号をホールコンピュータ等の外部装置に対して出力する情報出力回路（図示せず）も主基板３１に搭載されている。
【００４９】
また、この実施の形態では、演出制御基板８０に搭載されている演出制御手段（演出制御用マイクロコンピュータで構成される。）が、中継基板７７を介して遊技制御用マイクロコンピュータ５６０からの演出制御コマンドを受信し、飾り図柄を可変表示する可変表示装置９の表示制御を行う。
【００５０】
図３は、中継基板７７、演出制御基板８０、ランプドライバ基板３５および音声出力基板７０の回路構成例を示すブロック図である。なお、図３に示す例では、ランプドライバ基板３５および音声出力基板７０には、マイクロコンピュータは搭載されていないが、マイクロコンピュータを搭載してもよい。また、ランプドライバ基板３５および音声出力基板７０を設けずに、演出制御に関して演出制御基板８０のみを設けてもよい。
【００５１】
演出制御基板８０は、演出制御用ＣＰＵ１０１およびＲＡＭを含む演出制御用マイクロコンピュータ１００を搭載している。なお、ＲＡＭは外付けであってもよい。演出制御基板８０において、演出制御用ＣＰＵ１０１は、内蔵または外付けのＲＯＭ（図示せず）に格納されたプログラムに従って動作し、中継基板７７を介して入力される主基板３１からの取込信号（演出制御ＩＮＴ信号）に応じて、入力ドライバ１０２および入力ポート１０３を介して演出制御コマンドを受信する。また、演出制御用ＣＰＵ１０１は、演出制御コマンドにもとづいて、ＶＤＰ（ビデオディスプレイプロセッサ）１０９に可変表示装置９の表示制御を行わせる。
【００５２】
この実施の形態では、演出制御用マイクロコンピュータ１００と共動して可変表示装置９の表示制御を行うＶＤＰ１０９が演出制御基板８０に搭載されている。ＶＤＰ１０９は、演出制御用マイクロコンピュータ１００とは独立したアドレス空間を有し、そこにＶＲＡＭをマッピングする。ＶＲＡＭは、画像データを展開するためのバッファメモリである。そして、ＶＤＰ１０９は、ＶＲＡＭ内の画像データをフレームメモリを介して可変表示装置９に出力する。
【００５３】
演出制御用ＣＰＵ１０１は、受信した演出制御コマンドに従ってＣＧＲＯＭ（図示せず）から必要なデータを読み出すための指令をＶＤＰ１０９に出力する。ＣＧＲＯＭは、可変表示装置９に表示されるキャラクタ画像データや動画像データ、具体的には、人物、文字、図形や記号等（飾り図柄を含む）、および背景画像のデータをあらかじめ格納しておくためのＲＯＭである。ＶＤＰ１０９は、演出制御用ＣＰＵ１０１の指令に応じて、ＣＧＲＯＭから画像データを読み出す。そして、ＶＤＰ１０９は、読み出した画像データにもとづいて表示制御を実行する。
【００５４】
演出制御コマンドおよび演出制御ＩＮＴ信号は、演出制御基板８０において、まず、入力ドライバ１０２に入力する。入力ドライバ１０２は、中継基板７７から入力された信号を演出制御基板８０の内部に向かう方向にしか通過させない（演出制御基板８０の内部から中継基板７７への方向には信号を通過させない）信号方向規制手段としての単方向性回路でもある。
【００５５】
中継基板７７には、主基板３１から入力された信号を演出制御基板８０に向かう方向にしか通過させない（演出制御基板８０から中継基板７７への方向には信号を通過させない）信号方向規制手段としての単方向性回路７４が搭載されている。単方向性回路として、例えばダイオードやトランジスタが使用される。図３には、ダイオードが例示されている。また、単方向性回路は、各信号毎に設けられる。さらに、単方向性回路である出力ポート５７１を介して主基板３１から演出制御コマンドおよび演出制御ＩＮＴ信号が出力されるので、中継基板７７から主基板３１の内部に向かう信号が規制される。すなわち、中継基板７７からの信号は主基板３１の内部（遊技制御用マイクロコンピュータ５６０側）に入り込まない。なお、出力ポート５７１は、図２に示されたＩ／Ｏポート部５７の一部である。また、出力ポート５７１の外側（中継基板７７側）に、さらに、単方向性回路である信号ドライバ回路が設けられていてもよい。
【００５６】
また、演出制御用ＣＰＵ１０１は、出力ポート１０５を介してランプドライバ基板３５に対してランプを駆動する信号を出力する。また、演出制御用ＣＰＵ１０１は、出力ポート１０４を介して音声出力基板７０に対して音番号データを出力する。
【００５７】
ランプドライバ基板３５において、ランプを駆動する信号は、入力ドライバ３５１を介してランプドライバ３５２に入力される。ランプドライバ３５２は、ランプを駆動する信号を増幅して天枠ランプ２８ａ、左枠ランプ２８ｂ、右枠ランプ２８ｃなどの枠側に設けられている各ランプに供給する。また、枠側に設けられている装飾ランプ２５に供給する。
【００５８】
音声出力基板７０において、音番号データは、入力ドライバ７０２を介して音声合成用ＩＣ７０３に入力される。音声合成用ＩＣ７０３は、音番号データに応じた音声や効果音を発生し増幅回路７０５に出力する。増幅回路７０５は、音声合成用ＩＣ７０３の出力レベルを、ボリューム７０６で設定されている音量に応じたレベルに増幅した音声信号をスピーカ２７に出力する。音声データＲＯＭ７０４には、音番号データに応じた制御データが格納されている。音番号データに応じた制御データは、所定期間（例えば、飾り図柄の変動期間）における効果音または音声の出力態様を時系列的に示すデータの集まりである。
【００５９】
次に、電源基板９１０の構成を図４のブロック図を参照して説明する。電源基板９１０には、遊技機内の各電気部品制御基板や機構部品への電力供給を許可したり遮断したりするための電源スイッチ９１４が設けられている。なお、電源スイッチ９１４は、遊技機において、電源基板９１０の外に設けられていてもよい。電源スイッチ９１４が閉状態（オン状態）では、交流電源（ＡＣ２４Ｖ）がトランス９１１の入力側（一次側）に印加される。トランス９１１は、交流電源（ＡＣ２４Ｖ）と電源基板９１０の内部とを電気的に絶縁するためのものであるが、その出力電圧もＡＣ２４Ｖである。また、トランス９１１の入力側には、過電圧保護回路としてのバリスタ９１８が設置されている。
【００６０】
電源基板９１０は、電気部品制御基板（主基板３１、払出制御基板３７および演出制御基板８０等）と独立して設置され、遊技機内の各基板および機構部品が使用する電圧を生成する。この例では、ＡＣ２４Ｖ、ＶSL（ＤＣ＋３０Ｖ）、ＶLP（ＤＣ＋２４Ｖ）、ＶDD（ＤＣ＋１２Ｖ）およびＶCC（ＤＣ＋５Ｖ）を生成する。また、バックアップ電源（ＶBB）すなわちバックアップＲＡＭに記憶内容を保持させるための記憶保持手段になるコンデンサ９１６は、ＤＣ＋５Ｖ（ＶCC）すなわち各基板上のＩＣ等を駆動する電源のラインから充電される。また、＋５Ｖラインとバックアップ＋５Ｖ（ＶBB）ラインとの間に、逆流防止用のダイオード９１７が挿入される。なお、ＶSLは、整流平滑回路９１５において、整流素子でＡＣ２４Ｖを整流昇圧することによって生成される。ＶSLは、ソレノイド駆動電源になる。また、ＶLPは、ランプ点灯用の電圧であって、整流回路９１２において、整流素子でＡＣ２４Ｖを整流することによって生成される。
【００６１】
電源電圧生成手段としてのＤＣ−ＤＣコンバータ９１３は、１つまたは複数のスイッチングレギュレータ（図４では２つのレギュレータＩＣ９２４Ａ，９２４Ｂを示す。）を有し、ＶSLにもとづいてＶDDおよびＶCCを生成する。レギュレータＩＣ（スイッチングレギュレータ）９２４Ａ，９２４Ｂの入力側には、比較的大容量のコンデンサ９２３Ａ，９２３Ｂが接続されている。従って、外部からの遊技機に対する電力供給が停止したときに、ＶSL、ＶDD、ＶCC等の直流電圧は、比較的緩やかに低下する。
【００６２】
図４に示すように、トランス９１１から出力されたＡＣ２４Ｖは、そのままコネクタ９２２Ｂに供給される。また、ＶLPは、コネクタ９２２Ｃに供給される。ＶCC、ＶDDおよびＶSLは、コネクタ９２２Ａ，９２２Ｂ，９２２Ｃに供給される。
【００６３】
コネクタ９２２Ａに接続されるケーブルは、主基板３１に接続される。また、コネクタ９２２Ｂに接続されるケーブルは、払出制御基板３７に接続される。従って、コネクタ９２２Ａには、ＶBBも供給されている。例えば、コネクタ９２２Ｃに接続されるケーブルは、ランプドライバ基板３５に接続される。なお、演出制御基板８０には、ランプドライバ基板３５を経由して各電圧が供給される。
【００６４】
また、電源基板９１０には、押しボタン構造のクリアスイッチ９２１が搭載されている。クリアスイッチ９２１が押下されるとローレベル（オン状態）のクリア信号が出力され、コネクタ９２２Ａを介して主基板３１に出力される。また、クリアスイッチ９２１が押下されていなければハイレベル（オフ状態）の信号が出力される。なお、クリアスイッチ９２１は、押しボタン構造以外の他の構成であってもよい。また、クリアスイッチ９２１は、遊技機において、電源基板９１０以外に設けられていてもよい。
【００６５】
さらに、電源基板９１０には、電気部品制御基板に搭載されているマイクロコンピュータに対するリセット信号を作成するとともに、電源断信号を出力する電源監視回路９２０と、電源監視回路９２０からのリセット信号を増幅してコネクタ９２２Ａ，９２２Ｂ，９２２Ｃに出力するとともに、電源断信号を増幅してコネクタ９２２Ａに出力する出力ドライバ回路９２５が搭載されている。なお、演出制御用マイクロコンピュータに対するリセット信号は、ランプドライバ基板３５を経由して演出制御基板８０に伝達される。また、リセット回路をそれぞれの電気部品制御基板に搭載した場合に、リセット信号をハイレベルにすることになる電圧値を異ならせるようにしてもよい（例えば、主基板３１における場合を最も高くして、遊技制御用マイクロコンピュータ５６０に対するリセット信号がハイレベルになるタイミングを最も遅くする。）。
【００６６】
電源監視回路９２０は、遊技機に対する電力供給が停止する際には、電源断信号を出力（ローレベルにする）してから所定期間が経過したときに、リセット信号（システムリセット信号：リセットレベルではマイクロコンピュータの動作を禁止し、非リセットレベルになるとマイクロコンピュータの動作を可能にする信号）をローレベル（リセットレベル）にする。よって、マイクロコンピュータ（例えば、遊技制御用マイクロコンピュータ５６０）は動作不能状態になる。しかし、電力供給が停止する際にマイクロコンピュータを動作不能状態にするための構成は電源監視回路９２０からのシステムリセット信号を用いる構成に限られず、例えば、所定の電源電圧が低下したことが検出されたことを契機としてハードウェアのタイマ回路（カウンタ回路）を起動し、タイマ回路が所定時間を計時するとシステムリセット信号を出力する（ローレベルにする）ようにしてもよい。
【００６７】
電源監視回路９２０からの電源断信号すなわち電源監視手段からの検出信号は、主基板３１に搭載されている入力ポートを介して遊技制御用マイクロコンピュータ５６０に入力される。すなわち、遊技制御用マイクロコンピュータ５６０は、入力ポートの入力信号を監視することによって遊技機への電力供給の停止の発生を確認することができる。なお、電源断信号を遊技制御用マイクロコンピュータ５６０のＩＮＴ端子に入力させるように構成し、ＩＮＴ処理で遊技機への電力供給の停止の発生を確認するようにしてもよい。
【００６８】
電源監視回路９２０は電源断信号を出力する電源監視手段とシステムリセット信号を生成するリセット信号生成手段とを実現する回路であるが、電源監視回路９２０として、市販の停電監視リセットモジュールＩＣを使用することができる。電源監視回路９２０は、遊技機において用いられる所定電圧（例えば＋２４Ｖ）が所定値（例えば＋１７Ｖ）以下になった期間が、あらかじめ決められている時間（例えば５６ｍｓ）以上継続すると電源断信号を出力する。また、電源監視回路９２０は、例えば、ＶCCが＋４．５Ｖ以下になると、システムリセット信号をローレベルにすることが可能な状態になる。
【００６９】
電源監視回路９２０は、遊技機に対する電力供給が停止する際には、電源断信号を出力（ローレベルにする）してから所定期間が経過したときに、システムリセット信号をローレベルにすることになる。また、遊技機に対する電力供給が開始され、ＶCCが例えば＋４．５Ｖを越えるとシステムリセット信号をハイレベルにするのであるが、その場合に、電源断信号が出力されなくなってから（ハイレベルにしてから）所定期間が経過したことを条件にシステムリセット信号をハイレベルにする。
【００７０】
なお、この実施の形態では、電源監視手段が所定電位の電源（例えばＶLPであるが、ＶSLでもよい。）の出力を監視し、外部から遊技機に供給される電力の供給停止に関わる検出条件として、遊技機の外部からの電圧（この実施の形態ではＡＣ２４Ｖ）から整流、平滑して作成された所定の直流電圧が所定値以下になったことを用いるが、検出条件は、それに限られず、外部からの電力供給が停止することを検出できるのであれば、他の条件を用いてもよい。例えば、交流波そのものを監視して交流波が所定期間に亘って途絶えたことを検出条件としてもよいし、ＡＣ２４Ｖを直流に変換する途中の整流波形（全波整流波形でもよいし半波整流波形でもよい。）が所定期間に亘って途絶えたことを検出条件としてもよいし、交流波をディジタル化した信号を監視して、ディジタル信号が平坦になったことをもって交流波が途絶えたことを検出条件としてもよい。
【００７１】
次に、乱数回路５０３の構成について説明する。図５は、乱数回路５０３の構成例を示すブロック図である。なお、この実施の形態において、１２ビット乱数回路５０３ａと１６ビット乱数回路５０３ｂとの基本的な構成は同じである。図５に示すように、乱数回路５０３は、カウンタ５２１、比較器５２２、カウント値順列変更回路５２３、クロック信号出力回路５２４、カウント値更新信号出力回路５２５、乱数値読取信号出力回路５２６、乱数更新方式選択信号出力回路５２７、セレクタ５２８、乱数回路起動信号出力回路５３０、乱数値記憶回路５３１、反転回路５３２、ラッチ信号生成回路５３３およびタイマ回路５３４とを含む。
【００７２】
この実施の形態では、乱数回路５０３は、大当りとするか否かを決定するための大当り決定用乱数を発生する。そして、ＣＰＵ５６は、乱数回路５０３が発生した乱数にもとづいて特定の表示結果にすると決定した場合には、識別情報の可変表示が終了した後、遊技状態を遊技者にとって有利な特定遊技状態（例えば、大当り遊技状態）に移行させる。なお、乱数回路５０３が発生した乱数を、特別図柄の変動パターンを決定する変動パターン決定用乱数など、大当り決定用乱数以外の判定用乱数として用いてもよい。
【００７３】
カウンタ５２１は、セレクタ５２８によって選択された所定の信号を入力し、セレクタ５２８から入力する信号に応答してカウント値Ｃを出力する。この場合、カウンタ５２１は、所定の初期値を入力し、カウント値Ｃを一定の規則に従って初期値から所定の最終値まで循環的に更新して出力する。また、カウンタ５２１は、カウント値Ｃを最終値まで更新すると、カウント値Ｃを最終値まで更新した旨を示す通知信号をＣＰＵ５６に出力する。この実施の形態では、カウンタ５２１から通知信号が出力されると、ＣＰＵ５６によって初期値が更新される。
【００７４】
この実施の形態において、カウンタ５２１は、セレクタ５２８から信号を入力するごとに（セレクタ５２８からの信号における立ち上がりエッヂが入力されるごとに）、カウント値Ｃを「０」から「４０９５」まで１ずつカウントアップする。また、カウンタ５２１は、カウント値Ｃを「４０９５」までカウントアップすると、カウント値Ｃを最終値まで更新した旨を示す通知信号をＣＰＵ５６に出力する。すると、ＣＰＵ５６は、カウンタ５２１から通知信号を入力し、初期値を更新する。そして、カウンタ５２１は、ＣＰＵ５６によって更新された初期値から「４０９５」まで、再びカウント値Ｃをカウントアップする。また、「４０９５」までカウントアップすると、カウンタ５２１は、再び「０」からカウントを開始する。そして、カウンタ５２１は、更新後の初期値の１つ前の値（最終値）までカウントアップすると、通知信号をＣＰＵ５６に出力する。なお、この実施の形態では、比較器５２２は、後述するように、全てのカウント値を入力すると通知信号をカウンタ５２１に出力する。この場合、カウンタ５２１は、比較器５２２から通知信号を入力すると、カウント値をリセットして「０」にする。
【００７５】
なお、比較器５２２は、入力したカウント値が乱数最大値設定レジスタ５３５に設定されている乱数最大値より大きいか否かを判断し、カウント値が乱数最大値より大きい（乱数最大値を越えた）と判断すると、通知信号をカウンタ５２１に出力してもよい。この場合、例えば、比較器５２２は、カウント値が乱数最大値を越えたと判断すると、クロック信号出力回路５２４が次に乱数発生用クロック信号ＳＩ１を出力する前に、通知信号をカウンタ５２１に出力する。例えば、乱数最大値設定レジスタ５３５に乱数最大値「２５６」が設定されている場合を考える。この場合、カウンタ５２１が「０」から「２５６」までカウントアップし、さらにカウント値「２５７」を出力すると、比較器５２２は、入力したカウント値「２５７」が乱数最大値「２５６」を越えたと判断し、カウンタ５２１に通知信号を出力する。比較器５２２から通知信号を入力すると、カウンタ５２１は、クロック信号出力回路５２４からの乱数発生用クロック信号ＳＩ１の入力を待つことなく、カウント値を「２５８」に更新し出力する。以上の処理を繰り返し実行することによって、比較器５２２は、カウント値「２５７」から「４０９５」まで入力している間、カウント値が乱数最大値を越えていると判断して、繰り返しカウンタ５２１に通知信号を出力する。そして、カウンタ５２１は、比較器５２２から通知信号を入力している間、クロック信号出力回路５２４からの乱数発生用クロック信号ＳＩ１の入力を待つことなく、カウント値を繰り返し更新し出力する。そのようにすることによって、クロック信号出力回路５２４が次に乱数発生用クロック信号ＳＩ１を出力するまでの間に、「２５７」から「４０９５」までカウント値を高速にカウントアップさせるように制御し、「２５７」から「４０９５」までの乱数値を読み飛ばす（乱数値記憶回路５３１に記憶させない）ように制御する。
【００７６】
カウント値順列変更回路５２３は、カウント値順列変更レジスタ（ＲＳＣ）５３６、更新規則選択レジスタ（ＲＲＣ）５４２および更新規則メモリ５４３を含む。カウント値順列変更レジスタ５３６は、カウンタ５２１がカウントアップするカウント値Ｃの更新順である順列（初期値から最終値までの並び順）を変更させるためのカウント値順列変更データ「０１（Ｈ）」を格納する。カウント値順列変更回路５２３は、カウント値順列変更レジスタ５３６に数値順列変更データ「０１（Ｈ）」が格納されているとき、カウンタ５２１がカウントアップして更新するカウント値Ｃの順列を、カウント値順列変更データ「０１（Ｈ）」が格納されていないときとは異なる順列に変更する。（Ｈ）は、１６進数であることを示す。この場合、カウント値順列変更回路５２３は、数値順列変更データ「０１（Ｈ）」が格納されているとき、カウント値の順列の変更に用いる更新規則を切り換える。また、カウント値の順列の変更に用いる更新規則を切り換えた後に、カウンタ５２１がカウント値の更新を開始すると、カウント値順列変更レジスタ５３６のカウント値順列変更データは、ＣＰＵ５６によって、「０１（Ｈ）」から初期値である「０（＝００（Ｈ））」に戻される（クリアされる）。
【００７７】
なお、ＣＰＵ５６によってカウント値順列変更データをクリアするのでなく、乱数回路５０３側でカウント値順列変更データをクリアするようにしてもよい。例えば、カウント値順列変更レジスタ５３６にカウント値順列変更データ「０１（Ｈ）」が書き込まれたことにもとづいて、更新規則選択レジスタ（ＲＲＣ）５４２にレジスタ値が設定されると、カウント値順列変更回路５２３は、カウント値順列変更レジスタ５３６のレジスタ値をクリアするようにしてもよい。
【００７８】
図６は、更新規則選択レジスタ（ＲＲＣ）５４２の例を示す説明図である。更新規則選択レジスタ５４２は、カウンタ５２１が出力するカウント値の並び順の並べ替え（順列の変更）に用いる更新規則を設定するレジスタである。この実施の形態では、更新規則選択レジスタ５４２にレジスタ値が設定されることによって、カウンタ５２１が出力するカウント値の順列の変更に用いる更新規則が設定される。図６に示すように、更新規則選択レジスタ５４２は、８ビットレジスタであり、初期値が「０（＝００（Ｈ））」に設定されている。また、更新規則選択レジスタ５４２は、ビット０〜ビット３が書込および読出ともに可能な状態に構成されている。また、更新規則選択レジスタ５４２は、ビット４〜ビット７が書込および読出ともに不可能な状態に構成されている。従って、更新規則選択レジスタ５４２のビット４〜ビット７に値を書き込む制御を行っても無効にされ、ビット４〜ビット７から読み出す値は全て「０（＝００００（Ｂ））」である。なお、「Ｂ」は、２進数であることを示す。
【００７９】
更新規則選択レジスタ５４２の値（レジスタ値）は、カウント値順列変更レジスタ５３６にカウント値順列変更データ「０１（Ｈ）」が書き込まれたことに応じて、レジスタ値が「０（＝００（Ｈ））」から「１５（＝０Ｆ（Ｈ））」まで循環的に更新される。すなわち、カウント値順列変更レジスタ５３６にカウント値順列データ「０１（Ｈ）」が書き込まれるごとに、更新規則選択レジスタ５４２のレジスタ値は、「０」から「１」ずつ加算され、「１５」になった後「０」に戻る。
【００８０】
図７は、更新規則メモリ５４３の例を示す説明図である。図７に示すように、更新規則メモリ５４３は、更新規則選択レジスタ５４２の値（レジスタ値）と、カウント値の更新規則とを対応付けて格納している。図７に示す例では、例えば、更新規則選択レジスタ５４２にレジスタ値１が設定されている場合、更新規則Ｂを用いて、カウンタ５２１が出力するカウント値の順列が変更されることが分かる。なお、図７において、更新規則Ａは、カウンタ５２１がカウント値Ｃを更新する規則と同一の更新規則であり、レジスタ値「０」に対応づけて更新規則メモリ５４３に格納される。また、更新規則メモリ５４３には、カウンタ５２１がカウント値Ｃを更新する更新規則とは異なる更新規則Ｂ〜Ｐが、レジスタ値「１」〜「１５」に対応づけて格納される。
【００８１】
カウント値順列変更回路５２３は、カウント値順列変更レジスタ５３６にカウント値順列変更データ「０１（Ｈ）」が書き込まれている場合、まず、カウンタ５２１からカウント値の最終値「４０９５」が最初に入力されるまで、現在設定されている更新規則に従って、そのままカウント値を出力する。そして、カウント値順列変更回路５２３は、カウンタ５２１からカウント値の最終値「４０９５」を入力すると、カウント値の更新規則を変更する。なお、ＣＰＵ５６によって初期値が変更されている場合には、カウント値順列変更回路５２３は、カウンタ５２１から変更後の最終値（初期値の１つ前の値）まで入力すると、カウント値の更新規則を変更することになる。
【００８２】
カウント値順列変更回路５２３は、更新規則選択レジスタ５４２のレジスタ値に対応する更新規則を更新規則メモリ５４３から選択し、カウント値の順列の変更に用いる更新規則として設定する。また、カウント値順列変更回路５２３は、カウンタ５２１によって再び初期値「０」から順にカウント値の更新が開始されると、設定した更新規則に従って、カウント値の初期値から最終値までの順列を変更する。なお、ＣＰＵ５６によって初期値が変更されている場合には、カウント値順列変更回路５２３は、カウンタ５２１によって変更後の初期値から順にカウント値の更新が開始されると、設定した更新規則に従って、カウント値の初期値から最終値までの順列を変更することになる。そして、カウント値順列変更回路５２３は、変更した順列に従ってカウント値を出力する。
【００８３】
なお、この実施の形態では、後述する乱数最大値設定レジスタ５３５に乱数最大値が設定されていることによって、発生させる乱数の最大値が制限されている場合、カウント値順列変更回路５２３は、カウント値Ｃを乱数最大値以下に制限して順列を変更して出力する。例えば、乱数最大値設定レジスタ５３５に乱数最大値「２５６」が設定されている場合、カウント値順列変更回路５２３が、更新規則Ａから更新規則Ｂに変更して、カウント値の順列を変更する。この場合、カウント値順列変更回路５２３は、比較器５２２の乱数最大値設定レジスタ５３５に設定されている乱数最大値「２５６」にもとづいて、更新規則Ｂに従って、カウント値の順列を「２５６→２５５→・・・→０」に変更して出力する。
【００８４】
以上のように、カウント値順列変更回路５２３は、カウント値順列変更レジスタ５３６にカウント値順列変更データ「０１（Ｈ）」が書き込まれている場合、更新規則を切り替えて用いることによって、カウント値Ｃの順列を変更して出力する。そのため、乱数回路５０３が生成する乱数のランダム性を向上させることができる。
【００８５】
図８は、カウント値順列変更回路５２３が、カウンタ５２１が出力するカウント値の順列を変更する場合の例を示す説明図である。図８に示すように、ＣＰＵ５６は、所定のタイミングで、カウント値順列変更データ「０１（Ｈ）」をカウント値順列変更レジスタ５３６に書き込む。すると、更新規則選択レジスタ５４２のレジスタ値が１加算される。例えば、更新規則選択レジスタ５４２のレジスタ値が「０」から「１」に更新される。レジスタ値が更新されると、カウント値順列変更回路５２３は、カウンタ５２１から最初にカウント値の最終値「４０９５」が入力されるまで、更新前のレジスタ値「０」に対応する「更新規則Ａ」に従ってカウント値を更新して出力する。このとき、カウント値順列変更回路５２３は、更新規則Ａに従って、「０→１→・・・→４０９５」の順列でカウント値を出力する。
【００８６】
カウンタ５２１からカウント値の最終値「４０９５」が入力されると、カウント値順列変更回路５２３は、更新規則メモリ５４３から、更新後のレジスタ値「１」に対応する「更新規則Ｂ」を選択して設定する。カウント値順列変更回路５２３は、カウンタ５２１から再び初期値「０」以降のカウント値の入力を開始すると、選択設定した「更新規則Ｂ」に従って、カウント値の順列を変更して出力する。この実施の形態では、カウント値順列変更回路５２３は、順列を「０→１→・・・→４０９５」から「４０９５→４０９４→・・・→０」に変更して、カウント値を出力する。
【００８７】
その後、カウント値順列変更レジスタ５３６は、後述するように、カウント値順列変更回路５２３が切り替え後の更新規則に従ってカウント値の更新動作を開始したことに応じてリセットされる。そして、次にカウント値順列変更データ「０１（Ｈ）」がカウント値順列変更レジスタ５３６に書き込まれるまで、カウント値順列変更回路５２３は、「４０９５→４０９４→・・・→０」のままの順列で、カウント値を出力し続ける。
【００８８】
ＣＰＵ５６によってカウント値順列変更データ「０１（Ｈ）」がカウント値順列変更レジスタ５３６に再度書き込まれると、カウント値順列変更レジスタ５３６のレジスタ値が「１」から「２」に更新される。そして、カウンタ５２１からカウント値の最終値「４０９５」を入力すると、カウント値順列変更回路５２３は、更新規則メモリ５４３から、レジスタ値「２」に対応する「更新規則Ｃ」を選択して設定する。カウント値順列変更回路５２３は、カウンタ５２１から再び初期値「０」以降のカウント値の入力を開始すると、選択設定した「更新規則Ｃ」に従って、カウント値の順列を更新して出力する。この実施の形態では、カウント値順列変更回路５２３は、順列を「４０９５→４０９４→・・・→０」から「１→３→…→４０９５→０→・・・→４０９４」に変更して、カウント値を出力する。
【００８９】
以上のように、カウント値順列変更レジスタ５３６をリセットした後、カウント値順列データ「０１（Ｈ）」をカウント値順列変更レジスタ５３６に再度書き込むことによって、カウント値の順列をさらに変更することができる。
【００９０】
図９は、カウント値順列変更レジスタ（ＲＳＣ）５３６の例を示す説明図である。カウント値順列変更レジスタ５３６は、カウンタ５２１がカウントアップするカウント値の順列を変更させるためのカウント値順列変更データ「０１（Ｈ）」を設定するレジスタである。図９に示すように、カウント値順列変更レジスタ５３６は、読出可能な８ビットレジスタであり、初期値が「０（＝００（Ｈ））」に設定されている。また、カウント値順列変更レジスタ５３６は、ビット０だけが書込および読出ともに可能な状態に構成されている。すなわち、カウント値順列変更レジスタ５３６は、ビット１〜ビット７が書込および読出ともに不可能な状態に構成されている。従って、カウント値順列変更レジスタ５３６のビット１〜ビット７に値を書き込む制御を行っても無効にされ、ビット１〜ビット７から読み出す値は全て「０（＝０００００００（Ｂ））」である。
【００９１】
なお、カウント値順列変更レジスタ５３６の値は、カウント値順列変更回路５２３が切り替え後の更新規則に従ってカウント値の更新動作を開始したことに応じて、ＣＰＵ５６によってリセットされる。この場合、ＣＰＵ５６は、カウント値順列変更レジスタ５３６に書き込まれている値を、カウント値順列変更データ「０１（Ｈ）」から初期値である「０（＝００（Ｈ））」に戻す。
【００９２】
比較器５２２は、ランダムＲの最大値（乱数最大値）を指定するための乱数最大値設定データを格納する乱数最大値設定レジスタ（ＲＭＸ）５３５を備える。比較器５２２は、乱数最大値設定レジスタ５３５に格納されている乱数最大値設定データに示される乱数最大値に従って、カウンタ５２１が更新するカウント値の更新範囲を制限する。この実施の形態では、比較器５２２は、カウンタ５２１から入力するカウント値と乱数最大値設定レジスタ５３５に格納されている乱数最大値設定データ（例えば「００ＦＦ（Ｈ）」）に示される乱数最大値（例えば「２５６」）とを比較する。そして、比較器５２２は、入力したカウント値が乱数最大値以下であると判断すると、入力したカウント値を乱数値記憶回路５３１に出力する。
【００９３】
この実施の形態では、比較器５２２は、具体的には、以下のような制御を行う。比較器５２２は、カウント値の初期値更新の際に、ＣＰＵ５６からカウント値の初期値をもらい、初期値から乱数最大値までのカウント値の個数を求める。例えば、カウント値の初期値が「１５７」であり乱数最大値が「２５６」である場合、比較器５２２は、初期値から乱数最大値までのカウント値の個数を「１００個」と求める。また、比較器５２２は、カウント値順列変更回路５２３からカウント値を入力するに従って、初期値からカウント値をいくつ入力したかをカウントアップする。初期値からカウント値を入力した回数が「１００回」に達すると、比較器５２２は、初期値「１５７」から最大値「２５６」までの全てのカウント値を入力したと判断する。そして、比較器５２２は、全てのカウント値を入力した旨の通知信号をカウンタ５２１に出力する。カウント値の個数で判断することによって、カウント値順列変更回路５２３によってカウント値の順列が変更されている場合であっても、比較器５２２は、カウント値の更新範囲を乱数最大値以下に制限し、全てのカウント値を入力した際にカウンタ５２１に通知信号を出力することができる。
【００９４】
カウント値の更新範囲を比較器５２２が制限する動作について説明する。なお、この実施の形態では、カウント値順列変更回路５２３が更新規則Ａを選択し、乱数最大値設定レジスタ５３５に乱数最大値「２５６」が設定されている場合を説明する。
【００９５】
カウンタ５２１が「０」から「２５６」までカウント値を更新している間、カウント値順列変更回路５２３は、乱数最大値設定レジスタ５３５に設定されている乱数最大値「２５６」にもとづいて、更新規則Ａに従って、「０」から「２５６」までのカウント値をそのまま比較器５２２に出力する。この場合、カウント値順列変更回路５２３は、比較器５２２から乱数最大値「２５６」の値をもらい、カウンタ５２１から入力するカウント値が乱数最大値より大きいか否かを判断し、更新規則が変更されているとき（例えば、更新規則Ｂ）であっても、乱数最大値設定レジスタ５３５に設定されている乱数最大値「２５６」にもとづいて、「２５７」から「４０９５」までのカウント値を比較器５２２に出力しない。カウンタ５２１は、例えば、初期値が「０」と設定されているときに、最終値「２５６」までカウント値を更新すると、通知信号をＣＰＵ５６に出力する。通知信号を出力すると、ＣＰＵ５６によって、カウンタ５２１のカウント値の初期値が変更される。この実施の形態では、ＣＰＵ５６によって、初期値が「５０」に変更される。
【００９６】
なお、カウント値が乱数最大値「２５６」より大きいか否かをカウント値順列変更回路５２３が判断するのでなく、比較器５２２が判定するようにしてもよい。この場合、例えば、比較器５２２は、カウント値が乱数最大値設定レジスタ５３５に設定されている乱数最大値より大きいか否かを判断し、カウント値が乱数最大値より大きいと判断すると、通知信号をカウンタ５２１に出力する。そして、比較器５２２は、カウント値が乱数最大値を超えたと判断すると、クロック信号出力回路５２４が次に乱数発生用クロック信号ＳＩ１を出力する前に、通知信号をカウンタ５２１に出力する。そのようにすることによって、比較器５２２は、クロック信号出力回路５２４が次に乱数発生用クロック信号ＳＩ１を出力するまでの間に、「２５７」から「４０９５」までカウント値を高速にカウントアップさせるようにカウンタ５２１を制御する。そのようにすることによって、カウント値順列変更回路５２３からの値が「２５７」未満のときだけカウント値を乱数値記憶回路５３１に出力するようにし、カウント値順列変更回路５２３からの値が「２５７」以上のときにはカウント値を高速で更新させるようにすることができる。
【００９７】
更新規則Ａにもとづいて、カウント値順列変更回路５２３から、「０」から「２５５」までカウント値を入力している間、比較器５２２は、入力するカウント値が乱数最大値「２５６」以下であるので、入力したカウント値をそのまま乱数値記憶回路５３１に出力する。次に、カウント値順列変更回路５２３から入力するカウント値が「２５６」に達すると、比較器５２２は、入力したカウント値を乱数値記憶回路５３１に出力するとともに、初期値から最大値までの全てのカウント値を入力した旨の通知信号をカウンタ５２１に出力する。具体的には、比較器５２２は、カウント値の初期値変更の際に、ＣＰＵ５６からカウント値の初期値（この実施の形態では、「０」）を入力し、初期値「０」から乱数最大値（この実施の形態では、「２５６」）までのカウント値の個数（この実施の形態では、「２５７個」）を求める。そして、カウント値順列変更回路５２３から入力したカウント値の個数が２５７個に達すると、全てのカウント値を入力した旨の通知信号をカウンタ５２１に出力する。なお、この実施の形態では、ＣＰＵ５６によって初期値が「５０」に変更されるので、カウンタ５２１は、比較器５２２から通知信号を入力しても、カウント値をリセットするとなく、変更後の初期値「５０」からカウント値の更新を行う。
【００９８】
カウンタ５２１が変更後の初期値「５０」から「２５６」までカウント値を更新している間、カウント値順列変更回路５２３は、乱数最大値設定レジスタ５３５に設定されている乱数最大値「２５６」にもとづいて、更新規則Ａに従って、「５０」から「２５６」までのカウント値をそのまま比較器５２２に出力する。また、カウント値順列変更回路５２３は、乱数最大値設定レジスタ５３５に設定されている乱数最大値「２５６」にもとづいて、「２５７」から「４０９５」までのカウント値を比較器５２２に出力せず、カウンタ５２１の更新するカウント値が１周したとき（２５７回更新したとき）に、カウント値順列変更レジスタ５３６にカウント値順列変更データが書き込まれた場合には、カウント値順列変更回路５２３は、カウント値の順列を変更して出力する。例えば、更新規則が更新規則Ｂに変更された場合、カウント値順列変更回路５２３は、カウント値の順列を「２５６→２５５→・・・５０」に変更して出力する。
【００９９】
カウント値順列変更回路５２３から、「２５６」から「５０」までカウント値を入力している間、比較器５２２は、入力したカウント値をそのまま乱数値記憶回路５３１に出力する。次に、カウント値順列変更回路５２３から入力するカウント値が「５０」に達すると、比較器５２２は、入力したカウント値を乱数値記憶回路５３１に出力するとともに、初期値から最大値までの全てのカウント値を入力した旨の通知信号をカウンタ５２１に出力する。具体的には、比較器５２２は、カウント値の初期値変更の際に、ＣＰＵ５６からカウント値の初期値（この実施の形態では、「５０」）をもらい、初期値「５０」から乱数最大値（この実施の形態では、「２５６」）までのカウント値の個数（この実施の形態では、「２０７個」）を求める。そして、カウント値順列変更回路５２３から入力したカウント値の個数が２０７個に達すると、全てのカウント値を入力した旨の通知信号をカウンタ５２１に出力する。
【０１００】
なお、カウント値順列変更回路５２３がカウント値の順列を変更した場合であっても、比較器５２２は、カウント値の個数が２０７個に達すると、通知信号をカウンタ５２１に出力する。そのようにすることによって、カウント値の順列が変更された場合であっても、初期値「５０」から最大値「２５６」までの全てのカウント値を入力したことにもとづいて、通知信号をカウンタ５２１に出力できる。
【０１０１】
比較器５２２から通知信号を入力すると、カウンタ５２１は、カウント値の初期値をリセットし「０」に戻す。そして、カウンタ５２１は、「０」からカウント値の更新を行う。カウンタ５２１の値が「０」から再び更新がされると、カウンタ５２１からのカウント値にもとづいて、カウント値順列変更回路５２３は「４９」〜「０」までのカウント値を比較器５２２に出力し、比較器５２２はカウント値順列変更回路５２３からのカウント値の入力にもとづいて乱数値記憶回路５３１にカウント値を出力する。そして、カウンタ５２１は、最終値（この実施の形態では、「４９」）までカウント値を更新すると、カウンタ５２１は、通知信号をＣＰＵ５６に出力する。通知信号を出力すると、ＣＰＵ５６によって、カウンタ５２１のカウント値の初期値が再び変更される。
【０１０２】
以上のような動作を繰り返すことによって、比較器５２２は、カウンタ５２１に、「０」から乱数最大値「２５６」まで連続的にカウント値をカウントアップさせ、「０」から「２５６」までの値を乱数値記憶回路５３１にランダムＲ（乱数値）として記憶させる。すなわち、比較器５２２は、カウント値の更新範囲を乱数最大値「２５６」以下に制限して、カウンタ５２１にカウント値を更新させる。
【０１０３】
図１０は、乱数最大値設定レジスタ（ＲＭＸ）５３５の例を示す説明図である。図１０（ａ）は、１２ビット乱数回路５０３ａが搭載する乱数最大値設定レジスタ５３５の例を示す。また、図１０（ｂ）は、１６ビット乱数回路５０３ｂが搭載する乱数最大値設定レジスタ５３５の例を示す。まず、１２ビット乱数回路５０３ａが搭載する乱数最大値設定レジスタ５３５について説明する。図１０（ａ）に示すように、１２ビット乱数回路５０３ａにおいて、乱数最大値設定レジスタ５３５は、１６ビットレジスタであり、初期値が「４０９５（＝０ＦＦＦ（Ｈ））」に設定されている。乱数最大値設定レジスタ５３５は、ビット０〜ビット１１が書込および読出ともに可能な状態に構成されている。また、乱数最大値設定レジスタ５３５は、ビット１２〜ビット１５が書込および読出ともに不可能な状態に構成されている。従って、１２ビット乱数回路５０３ａにおいて、乱数最大値設定レジスタ５３５のビット１２〜ビット１５に値を書き込む制御を行っても無効にされ、ビット１２〜ビット１５から読み出す値は全て「０（＝００００（Ｂ））」である。
【０１０４】
また、乱数最大値設定レジスタ５３５に設定される乱数最大値は、所定の下限値が定められている。この実施の形態では、乱数最大値設定レジスタ５３５に下限値「２５６」より小さい値を指定する乱数最大値設定データ「００００（Ｈ）」〜「００ＦＥ（Ｈ）」が書き込まれた場合、ＣＰＵ５６は、乱数最大値設定レジスタ５３５に、初期値「４０９５」を指定する乱数最大値設定データ「０ＦＦＦ（Ｈ）」を設定し直す。すなわち、乱数最大値設定レジスタ５３５に設定可能な乱数最大値は「２５６」から「４０９５」までであり、ＣＰＵ５６は、下限値「２５６」より小さい値が設定されていると判断すると、乱数最大値を所定値「４０９５」に設定し直す。なお、ＣＰＵ５６は、リセットコントローラ５０２によって遊技制御用マイクロコンピュータ５６０（具体的にはＣＰＵ５６）がシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ５３５を書込不可能に制御する。また、ＣＰＵ５６により書込不可能に制御するのでなく、乱数最大値設定レジスタ５３５は、データが書き込まれた後にリセット信号を入力するまで書込不可能になるように形成されていてもよい。
【０１０５】
次に、１６ビット乱数回路５０３ｂが搭載する乱数最大値設定レジスタ５３５について説明する。図１０（ｂ）に示すように、１６ビット乱数回路５０３ｂにおいて、乱数最大値設定レジスタ５３５は、１６ビットレジスタであり、初期値が「６５５３５（＝ＦＦＦＦ（Ｈ））」に設定されている。また、１６ビット乱数回路５０３ｂにおいて、乱数最大値設定レジスタ５３５は、ビット０〜ビット１５の全てのビットが書込および読出ともに可能な状態に構成されている。
【０１０６】
また、乱数最大値設定レジスタ５３５に下限値「２５６」より小さい値を指定する乱数最大値設定データ「００００（Ｈ）」〜「００ＦＥ（Ｈ）」が書き込まれた場合、ＣＰＵ５６は、乱数最大値設定レジスタ５３５に、初期値「６５５３５」を指定する乱数最大値設定データ「ＦＦＦＦ（Ｈ）」を設定し直す。すなわち、乱数最大値設定レジスタ５３５に設定可能な乱数最大値は「２５６」から「６５５３５」までであり、ＣＰＵ５６は、下限値「２５６」より小さい値が設定されていると判断すると、乱数最大値を所定値「６５５３５」に設定し直す。なお、ＣＰＵ５６は、リセットコントローラ５０２によって遊技制御用マイクロコンピュータ５６０（具体的にはＣＰＵ５６）がシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ５３５を書込不可能に制御する。また、ＣＰＵ５６により書込不可能に制御するのでなく、乱数最大値設定レジスタ５３５は、データが書き込まれた後にリセット信号を入力するまで書込不可能になるように形成されていてもよい。
【０１０７】
クロック信号出力回路５２４は、セレクタ５２８および反転回路５３２に出力するクロック信号の周期（すなわち、カウント値の更新周期）を指定するための周期設定データを格納する周期設定レジスタ（ＲＰＳ）５３７を備えている。クロック信号出力回路５２４は、周期設定レジスタ５３７に格納されている周期設定データにもとづいて、遊技制御用マイクロコンピュータ５６０が搭載するクロック回路５０１から入力する基準クロック信号ＣＬＫを分周して、乱数回路５０３内部で乱数値の生成に用いるクロック信号（乱数発生用クロック信号ＳＩ１）を生成する。そのようにすることによって、クロック信号出力回路５２４は、クロック信号を所定回数入力したことを条件に、カウント値Ｃを更新させるための乱数発生用クロック信号ＳＩ１をカウンタ５２１に出力するように動作する。なお、周期設定データとは、クロック回路５０１から入力した基準クロック信号ＣＬＫを何分周させるかを設定するためのデータである。また、クロック出力回路５２４は、生成した乱数発生用クロック信号ＳＩ１をセレクタ５２８および反転回路５３２に出力する。例えば、周期設定レジスタ５３７に周期設定データ「０Ｆ（Ｈ）（＝１６）」が書き込まれている場合、クロック信号出力回路５２４は、クロック回路５０１から入力する基準クロック信号ＣＬＫを１６分周して乱数発生用クロック信号ＳＩ１を生成する。この場合、クロック信号出力回路５２４が生成する乱数発生用クロック信号ＳＩ１の周期は、「システムクロック信号の周期×１２８×１６」になる。
【０１０８】
図１１は、周期設定レジスタ（ＲＰＳ）５３７の例を示す説明図である。図１１に示すように、周期設定レジスタ５３７は、８ビットレジスタであり、初期値が「２５６（＝ＦＦ（Ｈ））」に設定されている。また、周期設定レジスタ５３７は、書込および読出ともに可能な状態に構成されている。
【０１０９】
また、周期設定レジスタ５３７に設定される周期設定データの値は、所定の下限値が定められている。この実施の形態では、周期設定レジスタ５３７に下限値「システムクロック信号の周期×１２８×７」より小さい値を指定する周期設定データ「００（Ｈ）〜０６（Ｈ）」が書き込まれた場合、ＣＰＵ５６は、周期設定レジスタ５３７に下限値「システムクロック信号の周期×１２８×７」を指定する周期設定データ「０７（Ｈ）」を設定し直す。すなわち、周期設定レジスタ５３７に設定可能な周期は「システムクロック信号の周期×１２８×７」から「システムクロック信号の周期×１２８×２５６」までであり、ＣＰＵ５６は、下限値より小さい値が設定されていると判断すると、周期設定データを設定し直す。なお、ＣＰＵ５６は、リセットコントローラ５０２によって遊技制御用マイクロコンピュータ５６０（具体的にはＣＰＵ５６）がシステムリセットされるまで、周期設定データが書き込まれた周期設定レジスタ５３７を書込不可能に制御する。また、ＣＰＵ５６により書込不可能に制御するのでなく、周期設定レジスタ５３７は、データが書き込まれた後にリセット信号を入力するまで書込不可能になるように形成されていてもよい。
【０１１０】
なお、周期設定レジスタ５３７に下限値としての周期設定データを設定することなく、設定された周期設定データにもとづいて、例えばクロック信号出力回路５２４が基準クロック信号ＣＬＫをそのままカウンタ５２１および反転回路５３２に出力するようにしてもよい。この場合、ＣＰＵ５６は、周期設定レジスタ５３７に設定される周期設定データの値を下限値と比較して設定し直す処理を行う必要がなくなる。また、カウンタ５２１は、クロック信号出力回路５２４から基準クロック信号ＣＬＫを入力する毎にカウント値Ｃを更新することになる。
【０１１１】
カウント値更新信号出力回路５２５は、カウント値更新データ「０１（Ｈ）」を格納するカウント値更新レジスタ（ＲＧＮ）５３８を備える。カウント値更新データとは、カウント値の更新を要求するためのデータである。カウント値更新信号出力回路５２５は、カウント値更新レジスタ５３８にカウント値更新データ「０１（Ｈ）」が書き込まれたことに応じて、カウント値更新信号ＳＩ３をセレクタ５２８に出力する。
【０１１２】
図１２は、カウント値更新レジスタ５３８の例を示す説明図である。図１２に示すように、カウント値更新レジスタ５３８は、読出不能な８ビットレジスタであり、ビット０のみが書込可能な状態に構成されている。従って、カウント値更新レジスタ５３８のビット１〜ビット７に値を書き込む制御を行っても無効にされる。
【０１１３】
乱数値読取信号出力回路５２６は、乱数値取込データ「０１（Ｈ）」を格納する乱数値取込レジスタ（ＲＬＴ）５３９を備える。乱数値取込データとは、乱数値記憶回路５３１へのカウント値の取込を要求するためのデータである。乱数値読取信号出力回路５２６は、乱数値取込レジスタ５３９に乱数値取込データ「０１（Ｈ）」が書き込まれたことに応じて、乱数値の読み取りを要求するための乱数値読取信号をラッチ信号生成回路５３３に出力する。
【０１１４】
図１３は、乱数値取込レジスタ５３９の例を示す説明図である。図１３に示すように、乱数値取込レジスタ５３９は、読出不能な８ビットレジスタである。また、乱数値取込レジスタ５３９は、ビット０だけが書込可能な状態に構成されている。すなわち、乱数値取込レジスタ５３９のビット１〜ビット７に値を書き込む制御を行っても無効にされる。
【０１１５】
乱数更新方式選択信号出力回路５２７は、乱数更新方式選択データを格納する乱数更新方式選択レジスタ（ＲＴＳ）５４０を備える。乱数更新方式選択データとは、ランダムＲの値を更新する方式である各乱数更新方式のうち、いずれかの乱数更新方式を指定するためのデータである。乱数更新方式選択信号出力回路５２７は、乱数更新方式選択レジスタ５４０に乱数更新方式選択データが書き込まれたことに応じて、書き込まれた乱数更新方式選択データによって指定される乱数更新方式に対応する乱数更新方式選択信号を、セレクタ５２８およびラッチ信号生成回路５３３に出力する。
【０１１６】
図１４（Ａ）は、乱数更新方式選択レジスタ５４０の例を示す説明図である。図１４（Ａ）に示すように、乱数更新方式選択レジスタ５４０は、８ビットレジスタであり、初期値が「００（Ｈ）」に設定されている。また、乱数更新方式選択レジスタ５４０は、ビット０〜ビット１が書込および読出ともに可能な状態に構成されている。また、乱数更新方式選択レジスタ５４０は、ビット２〜ビット７が書込および読出ともに不可能な状態に構成されている。従って、乱数更新方式選択レジスタ５４０のビット２〜ビット７に値を書き込む制御を行っても無効にされ、ビット２〜ビット７から読み出す値は全て「０（＝００００００（Ｂ））」である。
【０１１７】
図１４（Ｂ）は、乱数更新方式選択レジスタ５４０に書き込まれる乱数更新方式選択データの一例の説明図である。図１４（Ｂ）に示すように、乱数更新方式選択データは、２ビットのデータから構成される。乱数更新方式選択データ「０１（Ｂ）」は、第１の乱数更新方式を指定するために用いられる。また、乱数更新方式選択データ「１０（Ｂ）」は、第２の乱数更新方式を指定するために用いられる。なお、この実施の形態では、第１の乱数更新方式とは、カウント値更新信号出力回路５２５からカウント値更新信号ＳＩ３が出力されたことをトリガとして、カウント値を更新する方式である。また、第２の乱数更新方式とは、クロック信号出力回路５２４から乱数発生用クロック信号ＳＩ１が出力されたことをトリガとして、カウント値を更新する方式である。また、乱数更新方式選択データ「０１（Ｂ）」または「１０（Ｂ）」が乱数更新方式選択レジスタ５４０に書き込まれた場合、乱数回路５０３は起動可能な状態になる。一方、乱数更新方式選択データ「００（Ｂ）」または「１１（Ｂ）」が乱数更新方式選択レジスタ５４０に書き込まれた場合、乱数回路５０３は起動不能な状態になる。
【０１１８】
セレクタ５２８は、カウント値更新信号出力回路５２５から出力されるカウント値更新信号ＳＩ３、またはクロック信号出力回路５２４から出力される乱数発生用クロック信号ＳＩ１のいずれかを選択してカウンタ５２１に出力する。セレクタ５２８は、乱数更新方式選択信号出力回路５２７から第１の乱数更新方式に対応する乱数更新方式選択信号（第１の乱数更新方式選択信号ともいう）が入力されると、カウント値更新信号出力回路５２５から出力されるカウント値更新信号ＳＩ３を選択してカウンタ５２１に出力する。一方、セレクタ５２８は、乱数更新方式選択信号出力回路５２７から第２の乱数更新方式に対応する乱数更新方式選択信号（第２の乱数更新方式選択信号ともいう）が入力されると、クロック信号出力回路５２４から出力される乱数発生用クロック信号ＳＩ１を選択してカウンタ５２１に出力する。なお、セレクタ５２８は、乱数更新方式選択信号出力回路５２７から第１の更新方式選択信号が入力されると、カウント値更新信号出力回路５２５から出力されるカウント値更新信号ＳＩ３に応じて、クロック信号出力回路５２４から出力される乱数発生用クロック信号ＳＩ１に同期した数値データの更新を指示する数値更新指示信号を、カウンタ５２１に出力してもよい。
【０１１９】
乱数回路起動信号出力回路５３０は、乱数回路起動データ「８０（Ｈ）」を格納する乱数回路起動レジスタ（ＲＳＴ）５４１を備える。乱数回路起動データとは、乱数回路５０３の起動を要求するためのデータである。乱数回路起動信号出力回路５３０は、乱数回路起動レジスタ５４１に乱数回路起動データ「８０（Ｈ）」が書き込まれると、所定の乱数回路起動信号をカウンタ５２１およびクロック信号出力回路５３７に出力し、カウンタ５２１およびクロック信号出力回路５２４をオンにさせる。そして、カウンタ５２１によるカウント値の更新動作とクロック信号出力回路５２４による内部クロック信号の出力動作とを開始させることによって、乱数回路５０３を起動させる。
【０１２０】
図１５は、遊技制御用マイクロコンピュータ５６０における記憶領域のアドレスマップの一例を示す説明図である。図１５に示すように、遊技制御用マイクロコンピュータ５６０の記憶領域のうち、００００（Ｈ）番地〜１ＦＦＦ（Ｈ）番地の領域は、ＲＯＭ５４に割り当てられている。また、７Ｅ００（Ｈ）番地〜７ＦＦＦ（Ｈ）番地の領域は、ＲＡＭ５５に割り当てられている。さらに、ＦＤ００（Ｈ）番地〜ＦＥ００（Ｈ）番地の領域は、乱数最大値設定レジスタ５３５等の内蔵レジスタに割り当てられている。
【０１２１】
また、図１５に示すように、ＲＯＭ５４に割り当てられている００００（Ｈ）番地〜１ＦＦＦ（Ｈ）番地の領域は、ユーザプログラムエリアとユーザプログラム管理エリアとを含む。００００（Ｈ）番地〜１Ｆ７Ｆ（Ｈ）番地の領域のユーザプログラムエリアには、ユーザ（例えば、遊技機の設計者）によってあらかじめ作成されたプログラム（ユーザプログラム）５５０が記憶される。また、１Ｆ８０（Ｈ）番地〜１ＦＦＦ（Ｈ）番地の領域のユーザプログラム管理エリアには、ＣＰＵ５６がユーザプログラム５５０を実行するために必要になるデータ（ユーザプログラム実行データ）が記憶される。また、ＲＡＭ５５に割り当てられている７Ｅ００（Ｈ）番地〜７ＦＦＦ（Ｈ）番地の領域のうち、７Ｅ００（Ｈ）番地〜７ＥＦＦ（Ｈ）番地の領域は未使用領域であり、７ＥＦＦ（Ｈ）番地〜７ＦＦＦ（Ｈ）番地の領域はワークエリアとして用いられる。
【０１２２】
図１６は、ユーザプログラム管理エリアにおけるアドレスマップの一例を示す説明図である。図１６に示すように、１Ｆ９７（Ｈ）番地の領域には、カウンタ５２１に入力される初期値を変更するための方式である初期値変更方式のうち、ユーザによって選択された初期値変更方式を指定するための初期値変更方式設定データが記憶される。また、１Ｆ９８（Ｈ）番地および１Ｆ９９（Ｈ）番地の領域には、ＲＡＭ５５に割り当てられた７ＥＦＦ（Ｈ）番地〜７ＦＦＦ（Ｈ）番地のうち、ユーザによってあらかじめ指定されたＲＡＭ５５における番地（指定ＲＡＭ番地）を特定するためのＲＡＭ番地データが記憶される。この場合、指定ＲＡＭ番地を示す値のうち、指定ＲＡＭ番地の下位の値が１Ｆ９８（Ｈ）番地に記憶され、指定ＲＡＭ番地の上位の値が１Ｆ９９（Ｈ）番地に記憶される。
【０１２３】
図１７は、初期値変更方式設定データの一例を示す説明図である。図１７に示すように、初期値変更方式設定データは、８ビットのデータから構成される。データ「００（Ｈ）」は、初期値変更方式として、初期値を変更しないことを指定するデータである。この実施の形態では、初期値変更方式設定データとしてデータ「００（Ｈ）」が設定されている場合、乱数回路５０３のカウンタ５２１は、あらかじめ定められた初期値「０」から所定の最終値までカウント値を更新することになる。また、データ「０１（Ｈ）」は、初期値変更方式として、カウンタ５２１に入力する初期値を、遊技制御用マイクロコンピュータ５６０を識別するためのＩＤナンバにもとづく値に変更することを指定するデータである。この実施の形態では、初期値変更方式設定データとしてデータ「０１（Ｈ）」が設定されている場合、カウンタ５２１が更新するカウンタ値の初期値が「０」からＩＤナンバにもとづく値に変更され、カウンタ５２１は、変更後の初期値から所定の最終値までカウント値を更新することになる。
【０１２４】
次に、遊技機の動作について説明する。図１８は、主基板３１における遊技制御用マイクロコンピュータ５６０が実行するメイン処理を示すフローチャートである。遊技機に対して電源が投入され、リセット信号が入力されるリセット端子の入力レベルがハイレベルになると、遊技制御用マイクロコンピュータ５６０（具体的には、ＣＰＵ５６）は、プログラムの内容が正当か否か確認するための処理であるセキュリティチェック処理を実行した後、ステップＳ１以降のメイン処理を開始する。メイン処理において、ＣＰＵ５６は、まず、必要な初期設定を行う。
【０１２５】
初期設定処理において、ＣＰＵ５６は、まず、割込禁止に設定する（ステップＳ１）。次に、割込モードを割込モード２に設定し（ステップＳ２）、スタックポインタにスタックポインタ指定アドレスを設定する（ステップＳ３）。そして、内蔵デバイスの初期化（内蔵デバイス（内蔵周辺回路）であるＣＴＣ（カウンタ／タイマ）およびＰＩＯ（パラレル入出力ポート）等の初期化など）を行った後（ステップＳ４）、ＲＡＭをアクセス可能状態に設定する（ステップＳ５）。なお、割込モード２は、ＣＰＵ５６が内蔵する特定レジスタ（Ｉレジスタ）の値（１バイト）と内蔵デバイスが出力する割込ベクタ（１バイト：最下位ビット０）から合成されるアドレスが、割込番地を示すモードである。
【０１２６】
次いで、ＣＰＵ５６は、入力ポートを介して入力されるクリアスイッチ（電源基板９１０に搭載されている。）９２１の出力信号（操作信号）の状態を確認する（ステップＳ６）。その確認においてオンを検出した場合には、ＣＰＵ５６は、通常の初期化処理を実行する（ステップＳ１０〜ステップＳ１５）。クリアスイッチ９２１が押下されると、クリアスイッチ９２１は操作信号を出力する。
【０１２７】
クリアスイッ９２１の出力信号がオンの状態でない場合、すなわちクリアスイッチ９２１の押下が確認されなかった場合には、遊技機への電力供給が停止したときにバックアップＲＡＭ領域のデータ保護処理（例えばパリティデータの付加等の電力供給停止時処理）が行われたか否か確認する（ステップＳ７）。なお、バックアップＲＡＭ領域のデータ保護処理が行われたか否かは、例えば、電力供給停止時処理においてバックアップＲＡＭ領域に設定されるバックアップフラグの状態によって確認される。
【０１２８】
バックアップＲＡＭ領域のデータ保護処理が行われたことを確認したら、ＣＰＵ５６は、バックアップＲＡＭ領域のデータチェック（この例ではパリティチェック）を行う（ステップＳ８）。ステップＳ８では、算出したチェックサムと、電力供給停止時処理で同一の処理によって算出され保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップＲＡＭ領域のデータは保存されているはずであるから、チェック結果（比較結果）は正常（一致）になる。チェック結果が正常でないということは、バックアップＲＡＭ領域のデータが、電力供給停止時のデータとは異なっていることを意味する。そのような場合には、内部状態を電力供給停止時の状態に戻すことができないので、電力供給の停止からの復旧時でない電源投入時に実行される初期化処理を実行する。
【０１２９】
チェック結果が正常であれば、ＣＰＵ５６は、遊技制御手段の内部状態と演出制御手段等の電気部品制御手段の制御状態を電力供給停止時の状態に戻すための遊技状態復旧処理（ステップＳ４１〜Ｓ４３の処理）を行う。具体的には、ＲＯＭ５４に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し（ステップＳ４１）、バックアップ時設定テーブルの内容を順次作業領域（ＲＡＭ５５内の領域）に設定する（ステップＳ４２）。作業領域はバックアップ電源によって電源バックアップされている。バックアップ時設定テーブルには、作業領域のうち初期化してもよい領域についての初期化データが設定されている。ステップＳ４１およびＳ４２の処理によって、作業領域のうち初期化してはならない部分については、保存されていた内容がそのまま残る。初期化してはならない部分とは、例えば、電力供給停止前の遊技状態を示すデータ（特別図柄プロセスフラグ、確変状態であることを示す確変フラグ、時短状態であることを示す時短フラグなど）、出力ポートの出力状態が保存されている領域（出力ポートバッファ）、未払出賞球数を示すデータが設定されている部分などである。
【０１３０】
また、ＣＰＵ５６は、電力供給復旧時の初期化コマンドとしての停電復旧指定コマンドを送信するために、停電復旧指定コマンド送信要求フラグをセットする（ステップＳ４３）。なお、この実施の形態では、停電復旧指定コマンドは、遊技制御処理が開始されてから、演出制御コマンド制御処理（ステップＳ２９）において送信されるが、ステップＳ４３の処理で、直接送信するようにしてもよい。そして、ステップＳ１４に移行する。
【０１３１】
なお、この実施の形態では、バックアップフラグとチェックデータとの双方を用いてバックアップＲＡＭ領域のデータが保存されているか否か確認しているが、いずれか一方のみを用いてもよい。すなわち、バックアップフラグとチェックデータとのいずれかを、遊技状態復旧処理を実行するための契機としてもよい。
【０１３２】
ステップＳ７の処理において、バックアップＲＡＭ領域のデータ保護処理が行われなかったことを確認したら、ＣＰＵ５６は、異常ノイズフラグがセットされているか否か確認する（ステップＳ８）。異常ノイズフラグは、ＲＡＭに形成されている。「ＲＡＭに形成されている」とは、ＲＡＭ内の領域であることを意味する。この実施の形態では、異常ノイズフラグは、ＮＭＩ処理でセットされる。この実施の形態では、遊技制御を実行するためにはＮＭＩを使用しない。よって、異常ノイズフラグがセットされているということは、例えば、ノイズや不正信号に起因してＮＭＩが発生したことを意味する。
【０１３３】
異常ノイズフラグがセットされている場合には、ステップＳ６に移行する。すなわち、ＣＰＵ５６は、クリアスイッチが押下されるのを待つ。ステップＳ６でクリアスイッチが押下されたことを確認したら、ステップＳ１０に移行する。なお、ＣＰＵ５６は、異常ノイズフラグがセットされている場合には、クリアスイッチが押下されるまで、ステップＳ６〜Ｓ８の処理をループする。
【０１３４】
初期化処理では、ＣＰＵ５６は、まず、ＲＡＭクリア処理を行う（ステップＳ１０）。なお、ＲＡＭ５５の全領域を初期化せず、所定のデータ（例えば、大当り決定用乱数を生成するためのカウンタのカウント値のデータ）をそのままにしてもよい。また、ＲＯＭ５４に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し（ステップＳ１１）、初期化時設定テーブルの内容を順次作業領域に設定する（ステップＳ１２）。
【０１３５】
ステップＳ１１およびＳ１２の処理によって、例えば、普通図柄判定用乱数カウンタ、普通図柄判定用バッファ、特別図柄バッファ、総賞球数格納バッファ、特別図柄プロセスフラグ、賞球中フラグ、球切れフラグ、払出停止フラグなど制御状態に応じて選択的に処理を行うためのフラグに初期値が設定される。
【０１３６】
また、ＣＰＵ５６は、サブ基板を初期化するための初期化コマンドをサブ基板に送信するために、初期化コマンド送信要求フラグをセットする（ステップＳ１３）。初期化コマンドとして、可変表示装置９に表示される初期図柄を示すコマンド等がある。なお、この実施の形態では、初期化コマンドは、遊技制御処理が開始されてから、演出制御コマンド制御処理（ステップＳ２９）において送信されるが、ステップＳ１３の処理で、直接送信するようにしてもよい。
【０１３７】
また、ＣＰＵ５６は、各乱数回路５０３ａ，５０３ｂを初期設定する乱数回路設定処理を実行する（ステップＳ１４）。ＣＰＵ５６は、例えば、乱数回路設定プログラムに従って処理を実行することによって、各乱数回路５０３ａ，５０３ｂにランダムＲの値を更新させるための設定を行う。
【０１３８】
そして、ステップＳ１５において、ＣＰＵ５６は、所定時間（例えば２ｍｓ）毎に定期的にタイマ割込がかかるように遊技制御用マイクロコンピュータ５６０に内蔵されているＣＴＣのレジスタの設定を行なう。すなわち、初期値として例えば２ｍｓに相当する値が所定のレジスタ（時間定数レジスタ）に設定される。この実施の形態では、２ｍｓ毎に定期的にタイマ割込がかかるとする。
【０１３９】
初期化処理の実行（ステップＳ１０〜Ｓ１５）が完了すると、ＣＰＵ５６は、メイン処理で、表示用乱数更新処理（ステップＳ１７）を繰り返し実行する。表示用乱数更新処理を実行するときには割込禁止状態に設定し（ステップＳ１６）、表示用乱数更新処理の実行が終了すると割込許可状態に設定する（ステップＳ１９）。この実施の形態では、表示用乱数とは、変動パターンを決定するための乱数であり、表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。なお、後述する遊技の進行を制御する遊技制御処理（遊技制御用マイクロコンピュータ５６０が、遊技機に設けられている可変表示装置、可変入賞球装置、球払出装置等の遊技用の装置を、自身で制御する処理、または他のマイクロコンピュータに制御させるために指令信号を送信する処理、遊技装置制御処理ともいう）において、表示用乱数発生カウンタ等のカウント値が１周（表示用乱数発生カウンタ等の取りうる値の最小値から最大値までの間の数値の個数分歩進したこと）すると、そのカウンタに初期値が設定される。
【０１４０】
また、ＣＰＵ５６は、表示用乱数を発生するためのカウンタのカウント値を繰り返し更新するとともに、初期値用乱数を発生するためのカウンタのカウント値を繰り返し更新するようにしてもよい。その場合、遊技制御処理において、初期値用乱数を発生するためのカウンタのカウント値を＋１する処理が実行される。初期値用乱数とは、大当りの種類を決定するための判定用乱数（例えば、大当りを発生させる特別図柄を決定するための大当り図柄決定用乱数や、確変とするか否かを決定するための確変決定用乱数、普通図柄にもとづく当りを発生させるか否かを決定するための普通図柄当たり判定用乱数）を発生するためのカウンタ（判定用乱数発生カウンタ）等のカウント値の初期値を決定するための乱数（ソフトウェア乱数）である。遊技制御処理において、ＣＰＵ５６は、判定用乱数発生カウンタ等のカウント値があらかじめ決められている更新最終値まで更新されたとき（例えば、カウント値が１周したとき）に、初期値決定用乱数の値を、判定用乱数発生カウンタに、更新初期値として設定する。そのように、初期値決定用乱数にもとづいて判定用乱数の所定の初期値を設定するように構成されている場合には、特定遊技状態の種類（例えば、特別図柄表示器８に表示させる特別図柄の他、大当り遊技におけるラウンド数、大当り遊技終了後に確変状態に移行させるか否かなど）を決定するために用いる判定用乱数のランダム性を向上させることができる。
【０１４１】
図１９は、乱数回路設定処理を示すフローチャートである。乱数回路設定処理において、ＣＰＵ５６は、遊技制御プログラムにおける乱数回路設定プログラムに含まれる乱数回路選択モジュールに従って処理を実行し、遊技制御用マイクロコンピュータ５６０が内蔵する各乱数回路５０３ａ，５０３ｂの中から、遊技制御処理を含むタイマ割込処理の実行時に用いる乱数回路を設定する（ステップＳ１５１）。ユーザ（例えば、遊技機の製作者）によって設定されたタイマ割込処理の実行時に用いる乱数回路５０３を指定する指定情報は、あらかじめＲＯＭ５４の所定の記憶領域に記憶されている。そして、ＣＰＵ５６は、ＲＯＭ５４の所定の記憶領域に記憶された指定情報に従って、１２ビット乱数回路５０３ａまたは１６ビット乱数回路５０３ｂのいずれかを選択し、選択した乱数回路をタイマ割込処理の実行時に用いる乱数回路として設定する。なお、この実施の形態では、大当り判定に用いられる乱数（ランダムＲ）として、１６ビット乱数回路５０３ｂが発生する乱数を用いるが、１２ビット乱数回路５０３ａと１６ビット乱数回路５０３ｂとの双方について説明を行う。
【０１４２】
なお、ステップＳ１５１において、更新可能な数値データの所定の範囲が異なる複数の乱数回路（１２ビット乱数回路５０３ａと１６ビット乱数回路５０３ｂ）について、それぞれ使用可能とするか否かを設定するので、タイマ割込処理の実行中に不要な乱数を処理することを防止することができ、遊技制御用マイクロコンピュータ５６０（具体的にはＣＰＵ５６）の制御負担を軽減することができる。例えば、遊技制御用マイクロコンピュータ５６０が、２つの乱数回路５０３ａ，５０３ｂのうちの一方が発生する乱数のみを用いて遊技制御処理を行う場合、遊技制御処理に用いない方の乱数回路から乱数を読み出す処理等を行わないようにでき、遊技制御用マイクロコンピュータ５６０の制御負担を軽減できる。
【０１４３】
ＣＰＵ５６は、ステップＳ１５１で使用する乱数回路５０３を設定すると、例えば、カウンタ５２１やクロック信号出力回路５２４の動作を停止させることによって、使用しないように設定した方の乱数回路のカウンタ５２１がカウント値Ｃを更新しないようにする。また、例えば、ＣＰＵ５６は、使用しないように設定した方の乱数回路のカウンタ５２１はカウント値Ｃを更新するが、ＣＰＵ５６は出力制御信号ＳＣを出力しないようにし、乱数値記憶回路５３１から乱数を読み出せないように制御してもよい。また、例えば、ＣＰＵ５６は、使用しないように設定した方の乱数回路の乱数値取込レジスタ５３９に乱数値取込データ「０１（Ｈ）」を書き込まないようにし、ラッチ信号生成回路５３３がラッチ信号ＳＬを乱数値記憶回路５３１に出力しないように制御してもよい。
【０１４４】
使用する乱数回路５０３を設定するようにすることによって、使用する乱数回路５０３だけを設定することによって、生成する乱数の値の範囲を適切に設定することができる。また、タイマ割込処理の実行中に不要な乱数を処理することを防止することができ、遊技制御用マイクロコンピュータ５６０（具体的にはＣＰＵ５６）の制御負担を軽減することができる。例えば、大当りとする判定値として離れた値（例えば、「１」と「１００」を含む判定テーブルを用いて大当り判定を行う場合、所定の大当り確率（例えば、１００分の１）で大当りと判定するようにすると、１６ビット乱数回路５０３ｂによる乱数を用いるよりも、１２ビット乱数回路５０３ａによる乱数を用いた方が、処理すべき判定値の種類の数が少なくて済み、遊技制御用マイクロコンピュータ５６０の制御負担が軽減される。
【０１４５】
また、ＣＰＵ５６は、乱数回路設定プログラムに含まれる乱数最大値設定モジュールに従って処理を実行し、ユーザによってあらかじめ設定された乱数最大値を指定する乱数最大値設定データを、乱数最大値設定レジスタ５３５に書き込む（ステップＳ１５２）。そのようにすることによって、ユーザによってあらかじめ設定されたランダムＲの乱数最大値を乱数回路５０３に設定する。なお、タイマ割込実行時に用いる乱数回路として１２ビット乱数回路５０３ａを設定した場合、ＣＰＵ５６は、乱数最大値（「０」〜「４０９５」のうちのいずれかの値）を指定する乱数最大値設定データを、１２ビット乱数回路５０３ａの乱数最大値設定レジスタ５３５に書き込む。また、タイマ割込実行時に用いる乱数回路として１６ビット乱数回路５０３ｂを設定した場合、ＣＰＵ５６は、乱数最大値（「０」〜「６５５３５」のうちのいずれかの値）を指定する乱数最大値設定データを、１６ビット乱数回路５０３ｂの乱数最大値設定レジスタ５３５に書き込む。
【０１４６】
なお、乱数最大値として「０」〜「２５５」が設定された場合には、後述する乱数最大値再設定処理において乱数最大値を所定値に設定し直すことになる。また、乱数最大値として「２５６」以上の値を書き込む制御を行った場合であっても、データ化けなどの原因によって「０」〜「２５５」の値が乱数最大値設定レジスタ５３５に設定されてしまった場合には、後述する乱数最大値再設定処理において乱数最大値を所定値に設定し直す。
【０１４７】
ステップＳ１５２において、生成する乱数の最大値をあらかじめ乱数最大値設定レジスタ５３５に設定するので、タイマ割込処理の実行中に用いる乱数の範囲より大きい値の乱数を生成してしまうことを防止でき、乱数回路５０３およびＣＰＵ５６の処理負担を軽減することができる。
【０１４８】
また、ＣＰＵ５６は、ステップＳ１５２で乱数最大値設定レジスタ５３５に設定した乱数最大値が所定の下限値以下でないかを確認し、乱数最大値が下限値以下である場合には、乱数最大値設定レジスタ５３５に設定されている乱数最大値の再設定を行う乱数最大値再設定処理を実行する（ステップＳ１５３）。
【０１４９】
また、ＣＰＵ５６は、乱数回路設定プログラムに含まれる初期値変更モジュールに従って処理を実行し、乱数回路５０３のカウンタ５２１が更新するカウント値の初期値を変更させる初期値変更処理を実行する（ステップＳ１５４）。
【０１５０】
また、ＣＰＵ５６は、乱数回路設定プログラムに含まれる乱数更新方式選択モジュールに従って処理を実行し、乱数更新方式選択データを乱数更新方式選択レジスタ５４０に書き込む（ステップＳ１５５）。そのようにすることによって、乱数回路５０３の乱数更新方式を設定する。なお、この実施の形態では、ＣＰＵ５６は、乱数更新方式選択データ「１０（Ｈ）」を乱数更新方式選択レジスタ５４０に書き込む。すなわち、この実施の形態では、乱数回路５０３の乱数更新方式として第２の乱数更新方式が設定される。
【０１５１】
また、ＣＰＵ５６は、乱数回路設定プログラムに含まれる周期設定モジュールに従って処理を実行し、ユーザによってあらかじめ設定された乱数発生用クロック信号ＳＩ１の周期を指定する周期設定データ（基準クロック信号を何分周させるかを設定するためのデータ）を、周期設定レジスタ５３７に書き込む（ステップＳ１５６）。そのようにすることによって、ユーザによってあらかじめ設定された乱数発生用クロック信号ＳＩ１の周期を乱数回路５０３に設定する。
【０１５２】
また、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１によって所定の最終値までカウント値が更新されたときに、カウンタ５２１に入力する初期値を更新するか否かを設定する（ステップＳ１５７）。カウンタ５２１によって所定の最終値までカウント値が更新されたときに、カウンタ５２１に入力する初期値を更新するか否かを示す設定値は、あらかじめユーザによって設定されＲＯＭ５４の所定領域に記憶されている。そして、ＣＰＵ５６は、ＲＯＭ５４の所定の記憶領域に記憶された所定の設定値に従って、カウンタ５２１によって所定の最終値までカウント値が更新されたときに、カウンタ５２１に入力する初期値を更新するか否かを設定する。この実施の形態では、ＣＰＵ５６は、ステップＳ１５７において、カウンタ５２１に入力する初期値を更新すると判定すると、所定の最終値までカウント値が更新されたとき（カウンタ５２１から通知信号を入力したとき）に初期値を更新する旨を示す初期値更新フラグをセットする。
【０１５３】
なお、ＣＰＵ５６によってカウント値の初期値を変更するのでなく、最終値までカウント値を更新したことにもとづいて、乱数回路５０３側でカウント値の初期値を所定値に変更するようにしてもよい。例えば、乱数回路５０３は、初期値を更新する旨を示す初期値更新データを格納する初期値更新データレジスタ、および初期値の変更を行う初期値変更回路を備え、ＣＰＵ５６は、ステップＳ１５７において、初期値更新データを初期値更新データレジスタに設定する。この場合、カウンタ５２１は、最終値までカウント値を更新すると、通知信号を初期値変更回路に出力する。すると、初期値変更回路は、初期値更新データレジスタに初期値更新データが設定されているか否かを確認する。そして、初期値変更回路は、初期値更新データが設定されていることを確認すると、カウント値の初期値を所定値に変更する。なお、初期値変更回路は、後述するカウント値順列変更処理において、順列を変更したカウント値の初期値を変更してもよい。
【０１５４】
また、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１によって所定の最終値までカウント値が更新されたときに、カウンタ５２１が更新するカウント値の順列を変更するか否かを設定する（ステップＳ１５８）。カウンタ５２１によって所定の最終値までカウント値が更新されたときに、カウンタ５２１が出力するカウント値の順列を変更するか否かを示す設定値は、あらかじめユーザによって設定されＲＯＭ５４の所定領域に記憶されている。そして、ＣＰＵ５６は、ＲＯＭ５４の所定の記憶領域に記憶された所定の設定値に従って、カウンタ５２１によって所定の最終値までカウント値が更新されたときに、カウンタ５２１が出力するカウント値の順列を変更するか否かを設定する。この実施の形態では、ＣＰＵ５６は、ステップＳ１５８において、カウンタ５２１が出力するカウント値の順列を変更すると判定すると、所定の最終値までカウント値が更新されたときにカウント値の順列を変更する旨を示すカウント値順列変更フラグをセットする。この実施の形態では、ステップＳ１５８において、所定の設定値に従ってカウント値順列変更フラグをセットする場合を説明する。ＣＰＵ５６は、後述するカウント値順列変更処理において、カウント値順列変更フラグがセットされていることにもとづいて、カウンタ５２１が出力するカウント値の順列を変更する。
【０１５５】
なお、ＣＰＵ５６の制御によってカウント値の順列を変更するのでなく、最終値までカウント値を更新したことにもとづいて、乱数回路５０３側でカウント値の順列を変更するようにしてもよい。例えば、乱数回路５０３は、カウント値の順列を変更する旨を示す順列変更データを格納する順列変更データレジスタを備え、ＣＰＵ５６は、ステップＳ１５８において、順列変更データを順列変更データレジスタに設定する。この場合、カウンタ５２１が最終値までカウント値を更新すると、通知信号をカウント値順列変更回路５２３に出力し、通知信号を入力したカウント値順列変更回路５２３は、順列変更データレジスタに順列変更データが設定されているか否かを確認する。そして、カウント値順列変更回路５２３は、順列変更データが設定されていることを確認すると、カウント値の順列を変更する。
【０１５６】
そして、ＣＰＵ５６は、乱数回路５０３を起動させる（ステップＳ１５９）。例えば、乱数回路設定プログラムに含まれる乱数回路起動モジュールに従って処理を実行し、乱数回路起動データ「８０（Ｈ）」を乱数回路起動レジスタに書き込むことによって、乱数回路５０３を起動させる。
【０１５７】
図２０は、ステップＳ１５３の乱数最大値再設定処理を示すフローチャートである。乱数最大値再設定処理において、ＣＰＵ５６は、乱数最大値設定レジスタ５３５に設定されている乱数最大値を読み込む（ステップＳ１５３ａ）。なお、タイマ割込処理の実行時に用いる乱数回路として１２ビット乱数回路５０３ａを設定した場合には、ＣＰＵ５６は、１２ビット乱数回路５０３ａの乱数最大値設定レジスタ５３５に設定されている乱数最大値を読み込む。また、この実施の形態のように、タイマ割込処理の実行時に用いる乱数回路として１６ビット乱数回路５０３ｂを設定した場合には、ＣＰＵ５６は、１６ビット乱数回路５０３ｂの乱数最大値設定レジスタ５３５に設定されている乱数最大値を読み込む。
【０１５８】
ＣＰＵ５６は、読み込んだ乱数最大値が所定の下限値以下であるか否かを判定する（ステップＳ１５３ｂ）。１２ビット乱数回路５０３ａを設定した場合、１２ビット乱数回路５０３ａにおいて設定可能な乱数最大値が「２５６」から「４０９５」までであるので、ＣＰＵ５６は、１２ビット乱数回路５０３ａの乱数最大値設定レジスタ５３５から読み込んだ乱数最大値が下限値「２５６」以下であるか否かを判定する。また、１６ビット乱数回路５０３ｂを設定した場合、１６ビット乱数回路５０３ｂにおいて設定可能な乱数最大値が「２５６」から「６５５３５」までであるので、ＣＰＵ５６は、１６ビット乱数回路５０３ｂの乱数最大値設定レジスタ５３５から読み込んだ乱数最大値が下限値「２５６」以下であるか否かを判定する。
【０１５９】
読み込んだ乱数最大値が下限値以下である場合には、ＣＰＵ５６は、乱数最大値設定レジスタ５３５に設定される乱数最大値を所定値に設定し直す（ステップＳ１５３ｃ）。１２ビット乱数回路５０３ａを設定した場合には、１２ビット乱数回路５０３ａの乱数最大値設定レジスタ５３５から読み込んだ乱数最大値が下限値「２５６」以下であると判定すると、ＣＰＵ５６は、乱数最大値設定レジスタ５３５に設定される乱数最大値を所定値「４０９５」に設定し直す。また、１６ビット乱数回路５０３ｂを設定した場合、１６ビット乱数回路５０３ｂの乱数最大値設定レジスタ５３５から読み込んだ乱数最大値が下限値「２５６」以下であると判定すると、ＣＰＵ５６は、乱数最大値設定レジスタ５３５に設定される乱数最大値を所定値「６５５３５」に設定し直す。
【０１６０】
以上のように、乱数最大値設定レジスタ５３５に設定した乱数最大値が所定の下限値以下となっている場合には、乱数最大値を所定値に設定し直す。そのため、遊技制御用マイクロコンピュータ５６０の誤動作や、無線信号（電波）を用いた取り込み信号を遊技機に対して発生させるなどの行為によって、過度に小さい値が乱数の最大値として設定されてしまうことを防止することができる。従って、最小値から最大値までの値の範囲が過度に小さい乱数を生成する事態が発生することを防止することができる。
【０１６１】
なお、この実施の形態では、ステップＳ１５２において、ユーザによってあらかじめ設定された乱数最大値を指定する乱数最大値設定データが、乱数最大値設定レジスタ５３５に書き込まれている。何らかの原因で書き込まれたはずの乱数最大値が変わった（所定の下限値以下になった）場合でも、乱数最大値は所定の下限値以下のまま放置されることはない。また、ステップＳ１５２の処理を実行しないようにしてもよい。その場合でも、ステップＳ１５３の処理で、乱数最大値は所定の下限値以下のまま放置されることはない。
【０１６２】
図２１は、ステップＳ１５４の初期値変更処理を示すフローチャートである。初期値変更処理において、ＣＰＵ５６は、まず、ユーザプログラム実行データエリアの１Ｆ９７（Ｈ）番地の領域に記憶されている初期値変更方式設定データを読み出し、ユーザによって選択された初期値変更方式を特定する。この場合、ＣＰＵ５６は、読み出した初期値変更方式設定データの値が「０１（Ｈ）」であるか否かを判定することによって（ステップＳ１５４ａ）、ユーザによって選択された初期値変更方式を特定する。
【０１６３】
メイン処理の実行中にタイマ割込が発生すると、ＣＰＵ５６は、図２２示すステップＳ２０〜Ｓ３５のタイマ割込処理を実行する。タイマ割込処理において、まず、電源断信号が出力されたか否か（オン状態になったか否か）を検出する電源断処理を実行する（ステップＳ２０）。電源断信号は、電源基板９１０に搭載されている電源監視回路９２０が、遊技機に供給される電源の電圧の低下を検出した場合に出力する。そして、電源断処理において、ＣＰＵ５６は、電源断信号が出力されたことを検出したら、必要なデータをバックアップＲＡＭ領域に保存するための電力供給停止時処理を実行する。
【０１６４】
次いで、入力ドライバ回路５８を介して、ゲートスイッチ３２ａ、始動口スイッチ１４ａ、カウントスイッチ２３、および入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａの検出信号を入力し、それらの状態判定を行う（スイッチ処理：ステップＳ２１）。
【０１６５】
次に、ＣＰＵ５６は、特別図柄表示器８、普通図柄表示器１０、普通図柄保留記憶表示器４１の表示制御を行う表示制御処理を実行する（ステップＳ２２）。特別図柄表示器８および普通図柄表示器１０については、ステップＳ３２，Ｓ３３で設定される出力バッファの内容に応じて各表示器に対して駆動信号を出力する制御を実行する。
【０１６６】
次に、ＣＰＵ５６は、乱数回路設定処理において所定の最終値までカウント値が更新されたときに初期値を更新する旨の設定がされているか否か（ステップＳ１５７参照）を確認し、乱数回路５０３のカウンタ５２１に入力する初期値を更新する処理を行う（乱数回路初期値更新処理：ステップＳ２３）。
【０１６７】
次に、遊技制御に用いられる各判定用乱数を生成するための各カウンタのカウント値を更新する処理を行う（ステップＳ２４：判定用乱数更新処理）。判定用乱数とは、大当りの種類を決定するための乱数（ソフトウェア乱数）である。さらに、ＣＰＵ５６は、表示用乱数を生成するためのカウンタのカウント値を更新する処理を行う（表示用乱数更新処理：ステップＳ２５）。
【０１６８】
図２３は、各乱数を示す説明図である。各乱数は、以下のように使用される。
（１）ランダム１：特別図柄のはずれ図柄を決定するためのはずれ図柄決定用乱数
（２）ランダム２：大当りを発生させる特別図柄を決定するための大当り図柄決定用乱数
（３）ランダム３：特別図柄の変動パターン（変動時間）を決定するための変動パターン決定用乱数
（４）ランダム４：普通図柄にもとづく当りを発生させるか否か決定するための普通図柄当り判定用乱数
（５）ランダム５：確変状態（大当りが発生する確率が向上している遊技状態）を終了するか否かを決定するための確変終了判定用乱数
（６）ランダム６：確変状態にするか否かを決定するための確変決定用乱数
（７）ランダム７：時短状態（特別図柄の変動時間が短縮される遊技状態）にするか否かを決定するための時短決定用乱数
が用いられる。
【０１６９】
ステップＳ２４では、遊技制御用マイクロコンピュータ５６０は、（２）の大当り図柄決定用乱数、（４）の普通図柄当り判定用乱数、（５）の確変終了判定用乱数、（６）の確変決定用乱数、および（７）の時短決定用乱数を生成するためのカウンタのカウントアップ（１加算）を行う。すなわち、それらが判定用乱数であり、それら以外の乱数が表示用乱数である。なお、遊技効果を高めるために、上記（１）〜（７）の乱数以外の乱数も用いるようにしてもよい。
【０１７０】
なお、ＣＰＵ５６は、所定の更新初期値（例えば、ランダム２についての０）から所定の更新最終値（例えば、ランダム２についての９）まで循環的に更新する。循環的とは、カウンタの値が更新最終値を越えたら更新初期値に戻すという意味である。また、大当りとするか否か決定するための大当り決定用乱数として、乱数値記憶回路５３１に格納されているランダムＲの値が使用される。
【０１７１】
また、この実施の形態では、ランダム２にもとづいて大当り図柄を決定し、ランダム６にもとづいて確変状態に移行させるか否か決定するが、１つの乱数にもとづいて大当り図柄と確変状態に移行させるか否かと決定するようにしてもよい。例えば、ランダム２のみを用いる場合には、ランダム２の値が「７」であれば大当り図柄を「７」にするとともに確変状態に移行させることに決定し、それ以外の値であれば、大当り図柄をランダム２の値に応じたものにするとともに確変状態に移行させないことに決定する。そのような制御を行うことによって、ＣＰＵ５６が使用するデータを減らすことができ、その結果、ＣＰＵ５６の負担を軽くすることができる。
【０１７２】
また、図２３に例示したソフトウェア乱数の他に、他のソフトウェア乱数を用いてもよい。例えば、大当り遊技におけるラウンド数を抽選によって決定するためのラウンド数決定用乱数や、大当り遊技中の１ラウンドの最大入賞球数を決定するための賞球個数抽選用乱数や大当り遊技中の各ラウンドにおける大入賞口への入賞に対する賞球個数を決定するための大当り中賞球個数抽選用乱数などを用いてもよい。また、１つのソフトウェア乱数によって、大当り図柄を決定するとともに、ラウンド数を抽選によって決定するようにしてもよい。さらに、確変大当りとすることに決定された場合に、通常のラウンド数（例えば、１５ラウンド）の通常確変大当り遊技を行うのか、ラウンド数が少なく（例えば２ラウンド）、かつラウンドの時間が極めて短いいわゆる突然確変大当り遊技を行うのかを決定するためにソフトウェア乱数を用いてもよい。その場合に、１つのソフトウェア乱数によって、通常確変大当り遊技を行うのか突然確変大当り遊技を行うのかを決定するとともに、大当り図柄を決定するようにしてもよい。
【０１７３】
次いで、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１が出力するカウント値の順列をカウント値順列変更回路５２３に変更させるカウント値順列変更処理を行う（ステップＳ２６）。この実施の形態では、乱数回路設定処理のステップＳ１５８でカウント値順列変更フラグがセットされているか否かによって、カウント値順列変更処理を実行するか否かが決定されている。そして、ＣＰＵ５６は、カウント値順列変更フラグがセットされていることにもとづいて、カウント値順列変更処理を実行する。
【０１７４】
さらに、ＣＰＵ５６は、特別図柄プロセス処理を行う（ステップＳ２７）。特別図柄プロセス処理では、特別図柄表示器８および大入賞口を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理を実行する。ＣＰＵ５６は、特別図柄プロセスフラグの値を、遊技状態に応じて更新する。
【０１７５】
次いで、普通図柄プロセス処理を行う（ステップＳ２８）。普通図柄プロセス処理では、ＣＰＵ５６は、普通図柄表示器１０の表示状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理を実行する。ＣＰＵ５６は、普通図柄プロセスフラグの値を、遊技状態に応じて更新する。
【０１７６】
また、ＣＰＵ５６は、演出制御用マイクロコンピュータ１００に演出制御コマンドを送出する処理を行う（演出制御コマンド制御処理：ステップＳ２９）。
【０１７７】
また、ＣＰＵ５６は、始動口スイッチ１４ａ、カウントスイッチ２３および入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａの検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する（ステップＳ３０）。具体的には、始動口スイッチ１４ａ、カウントスイッチ２３および入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａのいずれかがオンしたことにもとづく入賞検出に応じて、払出制御基板３７に搭載されている払出制御用マイクロコンピュータに賞球個数を示す払出制御コマンドを出力する。払出制御用マイクロコンピュータは、賞球個数を示す払出制御コマンドに応じて球払出装置９７を駆動する。
【０１７８】
この実施の形態では、出力ポートの出力状態に対応したＲＡＭ領域（出力ポートバッファ）が設けられているのであるが、ＣＰＵ５６は、出力ポートの出力状態に対応したＲＡＭ領域におけるソレノイドのオン／オフに関する内容を出力ポートに出力する（ステップＳ３１：出力処理）。
【０１７９】
また、ＣＰＵ５６は、特別図柄プロセスフラグの値に応じて特別図柄の演出表示を行うための特別図柄表示制御データを特別図柄表示制御データ設定用の出力バッファに設定する特別図柄表示制御処理を行う（ステップＳ３２）。ＣＰＵ５６は、例えば、特別図柄プロセス処理でセットされる開始フラグがセットされると終了フラグがセットされるまで、変動速度が１コマ／０．２秒であれば、０．２秒が経過する毎に、出力バッファに設定される表示制御データの値を＋１する。また、ＣＰＵ５６は、出力バッファに設定された表示制御データに応じて、ステップＳ２２において駆動信号を出力することによって、特別図柄表示器８における特別図柄の可変表示を実行する。
【０１８０】
さらに、ＣＰＵ５６は、普通図柄プロセスフラグの値に応じて普通図柄の演出表示を行うための普通図柄表示制御データを普通図柄表示制御データ設定用の出力バッファに設定する普通図柄表示制御処理を行う（ステップＳ３３）。ＣＰＵ５６は、例えば、普通図柄の変動に関する開始フラグがセットされると終了フラグがセットされるまで、普通図柄の変動速度が０．２秒ごとに表示状態（「○」および「×」）を切り替えるような速度であれば、０．２秒が経過する毎に、出力バッファに設定される表示制御データの値（例えば、「○」を示す１と「×」を示す０）を切り替える。また、ＣＰＵ５６は、出力バッファに設定された表示制御データに応じて、ステップＳ２２において駆動信号を出力することによって、普通図柄表示器１０における普通図柄の演出表示を実行する。
【０１８１】
また、ウォッチドッグタイマ回路５０４をクリア（リスタート）するウォッチドッグタイマ処理を実行する（ステップＳ３４）。その後、割込許可状態に設定し（ステップＳ３５）、処理を終了する。
【０１８２】
以上の制御によって、この実施の形態では、遊技制御処理は２ｍｓ毎に起動されることになる。なお、遊技制御処理は、タイマ割込処理におけるステップＳ２１〜Ｓ３４の処理に相当する。また、この実施の形態では、タイマ割込処理で遊技制御処理が実行されているが、タイマ割込処理では例えば割込が発生したことを示すフラグのセットのみがなされ、遊技制御処理はメイン処理において実行されるようにしてもよい。
【０１８３】
次に、タイマ割込処理における乱数回路初期値更新処理（ステップＳ２３）について説明する。図２４は、乱数回路初期値更新処理を示すフローチャートである。乱数回路初期値更新処理において、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１が出力するカウント値Ｃを最終値まで更新した旨を示す通知信号の状態を確認する（ステップＳ２２０）。通知信号がオン状態になっていることを検出した場合には、ＣＰＵ５６は、初期値更新フラグがセットされているか否かを確認する（ステップＳ２２１）。すなわち、ＣＰＵ５６は、乱数回路設定処理において、所定の最終値までカウント値が更新されたときに初期値を更新する旨の設定がなされたか否か（ステップＳ１５７参照）を確認する。
【０１８４】
初期値更新フラグがセットされている場合、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１が所定の最終値までカウント値を更新したときに、カウンタ５２１に入力する初期値を更新すると判断する。また、初期値更新フラグがセットされている場合、ＣＰＵ５６は、初期値変更フラグがセットされているか否かを確認する（ステップＳ２２２）。すなわち、ＣＰＵ５６は、カウント値の初期値が現在変更されているか否か（すなわち、遊技制御用マイクロコンピュータ５６０のＩＤナンバにもとづく値に変更されているか否か）を判断する。
【０１８５】
初期値変更フラグがセットされている（すなわち、遊技制御用マイクロコンピュータ５６０のＩＤナンバにもとづく値に初期値が現在変更されている）場合、ＣＰＵ５６は、カウンタ５２１に入力する初期値を、遊技制御用マイクロコンピュータ５６０のＩＤナンバにもとづく値から元の値（例えば、「１」）にもどす（ステップＳ２２３）。そして、ＣＰＵ５６は、初期値変更フラグをリセットし（ステップＳ２２４）、初期値更新処理を終了する。
【０１８６】
初期値変更フラグがセットされていない（すなわち、初期値が現在変更されていない）場合、ＣＰＵ５６は、カウンタ５２１に入力する初期値を、遊技制御用マイクロコンピュータ５６０のＩＤナンバにもとづく値に変更する（ステップＳ２２５）。この場合、例えば、遊技制御用マイクロコンピュータ５６０のＩＤナンバが「１００」であるとすると、カウンタ５２１に入力する初期値を、ＩＤナンバ「１００」に所定値「１００」を加算して求めた演算値「２００」に変更する。また、例えば、カウンタ５２１に入力する初期値を、ＩＤナンバ「１００」に所定値「５０」を減算して求めた演算値「５０」に変更する。そして、ＣＰＵ５６は、初期値変更フラグをセットし（ステップＳ２２６）、初期値更新処理を終了する。
【０１８７】
なお、１２ビット乱数回路５０３ａおよび１６ビット乱数回路５０３ｂの両方を設定した場合、ステップＳ２２５において、ＣＰＵ５６は、一方の乱数回路（例えば、１２ビット乱数回路５０３ａ）から読み込んだ乱数を所定値としてＩＤナンバに加算して、カウンタ５２１に入力する初期値を求めてもよい。そして、ＣＰＵ５６は、他の一方（例えば、１６ビット乱数回路５０３ｂ）から読み込んだ乱数を、大当り決定用の乱数として用いてもよい。
【０１８８】
また、ＣＰＵ５６は、ステップＳ２２５においてカウンタ５２１に入力する初期値を更新する際、乱数回路５０３の比較器５２２の乱数最大値設定レジスタ５３５の値を確認し、ＩＤナンバにもとづいて設定された値が乱数最大値以上であるか否かを判断する。そして、ＩＤナンバにもとづいて設定された値が乱数最大値以上であると判断すると、ＣＰＵ５６は、カウンタ５２１に入力する初期値を所定値のまま更新しない（例えば、所定値「０」のまま更新しない）。そのようにすることによって、カウント値の初期値が乱数最大値以上の値に設定されてしまう事態を防止することができる。
【０１８９】
なお、ステップＳ２２０において通知信号がオフ状態であると判断した場合、およびステップＳ２２１において初期値更新フラグがセットされていないと判断した場合、ＣＰＵ５６は、カウンタ５２１に入力する初期値を更新することなく、そのまま初期値更新処理を終了し、ステップＳ２４に移行する。
【０１９０】
次に、タイマ割込処理におけるカウント値順列変更処理（ステップＳ２６）について説明する。図２５は、カウント値順列変更処理を示すフローチャートである。ＣＰＵ５６は、カウント値順列変更プログラム５５４に従って処理を実行することによって、カウント値順列変更処理を行う。カウント値順列変更処理において、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１が出力するカウント値Ｃを最終値まで更新した旨を示す通知信号の状態を確認する（ステップＳ２４１）。通知信号がオン状態になっていることを検出した場合には、ＣＰＵ５６は、カウント値順列変更フラグがセットされているか否かを確認する（ステップＳ２４２）。すなわち、ＣＰＵ５６は、乱数回路設定処理において、所定の最終値までカウント値が更新されたときにカウンタ５２１が更新するカウント値の順列を変更する旨の設定がなされたか否か（ステップＳ１５８参照）を確認する。
【０１９１】
カウント値順列変更フラグがセットされている場合、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１が所定の最終値までカウント値を更新したときに、カウンタ５２１が更新するカウント値の順列を変更すると判断する。そして、遊技制御用マイクロコンピュータ５６０は、カウント値順列変更レジスタ５３６にカウント値順列変更データ「０１（Ｈ）」を書き込む（ステップＳ２４３）。すなわち、ＣＰＵ５６は、カウント値順列変更データ「０１（Ｈ）」を書き込むことによって、乱数値記憶回路５３１に入力されるカウント値Ｃの順列をカウント値順列変更回路５２３に変更させる。
【０１９２】
以上のように、カウント値順列変更処理において、乱数を所定の最終値まで更新したときに、カウンタ５２１が更新するカウント値の順列を変更するので、乱数回路５０３が生成する乱数のランダム性をより向上させることができる。
【０１９３】
図２６は、ステップＳ３４のウォッチドッグタイマ処理を示すフローチャートである。ウォッチドッグタイマ処理において、ＣＰＵ５６は、ウォッチドッグタイマ回路５０４にクリア信号（リスタート信号）を出力する（ステップＳ１６０）。
【０１９４】
ウォッチドッグタイマ回路５０４に、タイムアウト時間を設定することが可能である。ウォッチドッグタイマ回路５０４は、クリア信号（リスタート信号）を入力すると計時を開始し、タイムアウト時間になるとユーザリセットするためのユーザリセット信号）を発生する。ユーザリセットとは、遊技制御プログラムを００００番地から実行させる処理である。すなわち、タイムアウト時間になると、再度、メイン処理のステップＳ１から遊技制御プログラムが実行される。なお、ウォッチドッグタイマ回路５０４は、所定周波数のクロック信号を計数することによって計時を行う。
【０１９５】
ステップＳ１６０の処理は、２ｍｓ毎に実行される。従って、タイムアウト時間を２ｍｓよりも大きく設定しておけば、２ｍｓ毎に発生するタイマ割込にもとづく遊技制御処理が実行されているときには、ウォッチドッグタイマ回路５０４はユーザリセットを発生しない。
【０１９６】
図２７は、大当り判定テーブルを示す説明図である。大当り判定テーブルとは、ランダムＲと比較される大当り判定値が設定されているテーブルである。大当り判定判定テーブルには、通常状態（確変状態でない遊技状態）において用いられる通常時大当り判定テーブル（図２７（Ａ）参照）と、確変状態において用いられる確変時大当り判定テーブル（図２７（Ｂ）参照）とがある。図２７（Ａ），（Ｂ）の左欄に記載されている数値が大当り判定値である。ＣＰＵ５６は、ランダムＲの値がいずれかの大当り判定値と一致すると、大当りとすることに決定する。
【０１９７】
なお、図２７に示す判定テーブルを用いて大当り判定を行う場合、乱数最大値設定レジスタ５３５に設定された乱数最大値によって大当りと判定する確率が大きく変化することになる。この場合、例えば、設定される乱数最大値が小さすぎると、通常時大当り判定テーブルを用いた場合と、確変時大当り判定テーブルを用いた場合とで、大当りと判定する確率の差が小さくなってしまい、遊技者の遊技に対する興味を減退させてしまうことになる。そのため、乱数回路５０３および乱数最大値に対応づけて、複数の判定テーブル（複数の通常時大当り判定用テーブルおよび複数の確変時大当り判定用テーブル）をＲＯＭ５４に記憶してもよい。そして、ＣＰＵ５６は、記憶されている大当り判定テーブルのうち、使用する乱数回路５０３および乱数最大値に対応する大当り判定テーブルを用いて、大当りとするか否かを判定するようにしてもよい。そのようにすることによって、使用する乱数回路５０３の種類や乱数最大値が異なっても、大当りと判定する確率がある程度同じになるように制御することができる。
【０１９８】
なお、この実施の形態では、１６ビット乱数回路５０３ｂを用いることにする。すなわち、ステップＳ１５１の処理で１６ビット乱数回路５０３ｂを用いることに決定されたとする。よって、ランダムＲとして、１６ビットで発生できる範囲（０から６５５３５までの範囲）の値をとりうる。
【０１９９】
図２８および図２９は、ステップＳ２０の電源断処理の一例を示すフローチャートである。電源断処理において、ＣＰＵ５６は、まず、電源断信号が出力されているか否か（オン状態になっているか否か）確認する（ステップＳ４５０）。オン状態でなければ、ＲＡＭ５５に形成されるバックアップ監視タイマの値を０クリアする（ステップＳ４５１）。オン状態であれば、ＲＡＭ５５に形成されるバックアップ監視タイマの値を１増やす（ステップＳ４５２）。そして、バックアップ監視タイマの値が判定値（例えば２）と一致すれば（ステップＳ４５３）、ステップＳ４５４以降の電力供給停止時処理、すなわち遊技の進行状態を復旧させるために必要なデータをＲＡＭ５５に確実に保存するための処理を実行する。つまり、遊技の進行を制御する状態から遊技状態を保存させるための電力供給停止時処理（電源断時処理）を実行する状態に移行する。
【０２００】
バックアップ監視タイマと判定値とを用いることによって、判定値に相当する時間だけ電源断信号のオン状態が継続したら、電力供給停止時処理が開始される。すなわち、ノイズ等で一瞬電源断信号のオン状態が発生しても、誤って電力供給停止時処理が開始されるようなことはない。なお、ＲＡＭ５５に形成されるバックアップ監視タイマの値（バックアップフラグに相当）は、遊技機への電力供給が停止しても、所定期間はバックアップ電源によって保存される。従って、メイン処理におけるステップＳ７では、バックアップ監視タイマの値が判定値と同じ値になっていることによって、電力供給停止時処理の処理結果が保存されていることを確認できる。
【０２０１】
電力供給停止時処理において、ＣＰＵ５６は、パリティデータを作成する（ステップＳ４５４〜Ｓ４６３）。すなわち、まず、クリアデータ（００）をチェックサムデータエリアにセットし（ステップＳ４５４）、電力供給停止時でも内容が保存されるべきＲＡＭ領域の先頭アドレスに相当するチェックサム算出開始アドレスをポインタにセットする（ステップＳ４５５）。また、電力供給停止時でも内容が保存されるべきＲＡＭ領域の最終アドレスに相当するチェックサム算出回数をセットする（ステップＳ４５６）。
【０２０２】
次いで、チェックサムデータエリアの内容とポインタが指すＲＡＭ領域の内容との排他的論理和を演算する（ステップＳ４５７）。演算結果をチェックサムデータエリアにストアするとともに（ステップＳ４５８）、ポインタの値を１増やし（ステップＳ４５９）、チェックサム算出回数の値を１減算する（ステップＳ４６０）。そして、ステップＳ４５７〜Ｓ４６０の処理を、チェックサム算出回数の値が０になるまで繰り返す（ステップＳ４６１）。
【０２０３】
チェックサム算出回数の値が０になったら、ＣＰＵ５６は、チェックサムデータエリアの内容の各ビットの値を反転する（ステップＳ４６２）。そして、反転後のデータをチェックサムデータエリアにストアする（ステップＳ４６３）。このデータが、電源投入時にチェックされるパリティデータになる。次いで、ＲＡＭアクセスレジスタにアクセス禁止値を設定する（ステップＳ４７１）。以後、内蔵ＲＡＭ５５のアクセスができなくなる。
【０２０４】
さらに、ＣＰＵ５６は、ＲＯＭ５４に格納されているポートクリア設定テーブルの先頭アドレスをポインタにセットする（ステップＳ４７２）。ポートクリア設定テーブルにおいて、先頭アドレスには処理数（クリアすべき出力ポートの数）が設定され、次いで、出力ポートのアドレスおよび出力値データ（クリアデータ：出力ポートの各ビットのオフ状態の値）が、処理数分の出力ポートについて順次設定されている。
【０２０５】
ＣＰＵ５６は、ポインタが指すアドレスのデータ（すなわち処理数）をロードする（ステップＳ４７３）。また、ポインタの値を１増やし（ステップＳ４７４）、ポインタが指すアドレスのデータ（すなわち出力ポートのアドレス）をロードする（ステップＳ４７５）。さらに、ポインタの値を１増やし（ステップＳ４７６）、ポインタが指すアドレスのデータ（すなわち出力値データ）をロードする（ステップＳ４７７）。そして、出力値データを出力ポートに出力する（ステップＳ４７８）。その後、処理数を１減らし（ステップＳ４７９）、処理数が０でなければステップＳ４７４に戻る。処理数が０であれば、すなわち、クリアすべき出力ポートを全てクリアしたら、タイマ割込を停止し（ステップＳ４８１）、ループ処理に入る。
【０２０６】
ループ処理では、電源断信号がオフ状態になったか否かを監視する（ステップＳ４８２）。電源断信号がオフ状態になった場合には復帰アドレスとして、電源投入時実行アドレス（ステップＳ１のアドレス）を設定してリターン命令を実行する（ステップＳ４８３）。すなわち、メイン処理に戻る。具体的には、遊技機に設けられている遊技用の装置を制御（自身で制御することと、他のマイクロコンピュータに制御させるために指令信号を送信することの双方を含む概念）する状態に戻る。
【０２０７】
以上の処理によって、電力供給が停止する場合には、ステップＳ４５４〜Ｓ４８１の電力供給停止時処理が実行され、電力供給停止時処理が実行されたことを示すデータ（バックアップフラグに相当するデータおよびチェックサム）がバックアップＲＡＭへストアされ、ＲＡＭアクセスが禁止状態にされ、出力ポートがクリアされ、かつ、遊技制御処理を実行するためのタイマ割込が禁止状態に設定される。
【０２０８】
また、この実施の形態では、ＲＡＭ５５の全領域がバックアップ電源によって電源バックアップ（遊技機への電力供給が停止しても所定期間はＲＡＭ５５の内容が保存されこと）されている。従って、ステップＳ４５２〜Ｓ４７９の処理によって、バックアップ監視タイマの値とともに、電源断信号が出力されたときのＲＡＭ５５の内容にもとづくチェックサムもＲＡＭ５５に保存される。遊技機への電力供給が停止した後、所定期間内に電力供給が復旧したら、遊技制御手段は、上述したステップＳ４１，Ｓ４２の処理によって、ＲＡＭ５５に保存されているデータ（電力供給が停止した直前の遊技制御手段による制御状態である遊技状態を示すデータ（例えば、特別図柄プロセスフラグの状態、確変フラグの状態、時短フラグの状態等）を含む）に従って、遊技状態を、電力供給が停止した直前の状態に戻すことができる。なお、電力供給停止の期間が所定期間を越えたらバックアップ監視タイマの値とチェックサムとが正規の値とは異なるはずであるから、その場合には、ステップＳ１０〜Ｓ１５の初期化処理が実行される。
【０２０９】
図３０は、ＮＭＩ処理を示すフローチャートである。この実施の形態では、遊技制御を実行するためにはＮＭＩを使用しない。従って、特許文献１に記載されているようにＮＭＩ処理のプログラムにリターン命令のみを設定しておいてもよいが、そのようにすると、ノイズや不正信号によってプログラムが暴走することを防止できるが、ノイズや不正信号が入力されたことは認識されない。
【０２１０】
そこで、この実施の形態では、ＮＭＩ処理のプログラムに異常ノイズフラグをセットする命令を設定する。すなわち、ＣＰＵ５６は、ＮＭＩ処理で、異常ノイズフラグをセットする（ステップＳ２６０）。その後、ループ処理（例えば、同一番地にジャンプする命令を設定しておく。）を実行する。なお、遊技制御用マイクロコンピュータ５６０として、割込処理が開始されると、割込処理を終了する命令（例えば、ＲＥＴＩ命令）が実行されない限り、マスク可能割込が発生しないマイクロコンピュータを使用する。よって、ループ処理を実行している間、タイマ割込は発生しない。なお、割込処理中でもマスク可能割込発生可能なマイクロコンピュータを使用する場合には、ＮＭＩ処理のプログラムの先頭で割込禁止命令を実行すればよい。
【０２１１】
ループ処理の実行中にタイマ割込が発生しないので、ウォッチドッグタイマ処理（ステップＳ３５）は実行されない。その結果、ウォッチドッグタイマ回路５０４は、遊技制御用マイクロコンピュータ５６０をユーザリセットする。すなわち、遊技制御用マイクロコンピュータ５６０は、ステップＳ１からメイン処理（図１８参照）を開始する。
【０２１２】
上記のように、メイン処理では、異常ノイズフラグがセットされている場合には、ステップＳ６〜Ｓ８の処理をループする。すなわち、クリアスイッチ９２１が押下されるのを待つ。クリアスイッチ９２１は、遊技盤６の裏面に設置されている電源基板９１０に搭載されている。よって、クリアスイッチ９２１は、遊技店員等が操作可能である。換言すれば、遊技店員等がクリアスイッチ９２１を操作しない限り、遊技制御用マイクロコンピュータ５６０は遊技制御処理を再開せず、遊技が不能動化される。
【０２１３】
遊技が不能動化されることから、遊技店員等は、遊技機においてノイズが発生したか、または不正信号が入力されたことと推定できる。ノイズが発生している状況では、ＲＡＭのデータが変わったり遊技制御が正常に実行されなくなる可能性がある。この実施の形態では、そのような状況になっている可能性があることを把握できる。また、ＲＡＭのデータを変えたり景品払出の契機になる入賞信号を発生させるために電波等で遊技機に不正信号を送り込む不正行為が行われる際にＮＭＩ端子にＮＭＩを発生させる信号（本来は生じない信号）が入力されることがあるが、この実施の形態では、遊技が不能動化されていることから、電波等で不正信号が入力されたことを把握できる。
【０２１４】
次に、遊技機における演出制御を説明する。図３１は、遊技制御用マイクロコンピュータ５６０から演出制御用マイクロコンピュータ１００に送信される演出制御コマンドの送信タイミングの一例を示す説明図である。図１７に示すように、遊技制御用マイクロコンピュータ５６０は、変動開始時に、変動時間を特定可能な変動パターンコマンド、および飾り図柄の表示結果を特定可能な表示結果特定コマンドを送信する。そして、可変表示時間が経過すると、飾り図柄の停止を指示する図柄確定指定コマンドを送信する。
【０２１５】
図３２は、主基板３１に搭載される遊技制御用マイクロコンピュータ５６０（具体的には、ＣＰＵ５６）が実行する特別図柄プロセス処理（ステップＳ２７）のプログラムの一例を示すフローチャートである。上述したように、特別図柄プロセス処理では特別図柄表示器８および大入賞口を制御するための処理が実行される。特別図柄プロセス処理において、ＣＰＵ５６は、始動入賞口１４に遊技球が入賞したことを検出するための始動口スイッチ１４ａがオンしていたら、すなわち始動入賞が発生していたら、始動口スイッチ通過処理を実行する（ステップＳ３１２）。そして、ステップＳ３００〜Ｓ３０９のうちのいずれかの処理を行う。
【０２１６】
始動口スイッチ通過処理において、ＣＰＵ５６は、保留記憶数が上限値である４になっている場合には、処理を終了する。保留記憶数が４になっていない場合には、保留記憶数を示す保留記憶数カウンタの値を１増やす。また、ソフトウェア乱数（大当り図柄決定用乱数等を生成するためのカウンタの値等）を抽出し、それらを、抽出した乱数値として保留記憶数カウンタの値に対応する保留記憶バッファにおける保存領域に格納する処理を実行する。
【０２１７】
また、ステップＳ３００〜Ｓ３０９の処理は、以下のような処理である。
【０２１８】
特別図柄通常処理（ステップＳ３００）：特別図柄プロセスフラグの値が０であるときに実行される。遊技制御用マイクロコンピュータ５６０は、特別図柄の可変表示が開始できる状態になると、保留記憶数（始動入賞記憶数）を確認する。保留記憶数は保留記憶数カウンタのカウント値により確認できる。そして、内部状態（特別図柄プロセスフラグ）をステップＳ３０１に対応した値（この例では１）に更新する。
【０２１９】
特別図柄停止図柄設定処理（ステップＳ３０１）：特別図柄プロセスフラグの値が１であるときに実行される。特別図柄の可変表示後の停止図柄を決定する。そして、内部状態（特別図柄プロセスフラグ）をステップＳ３０２に対応した値（この例では２）に更新する。
【０２２０】
変動パターン設定処理（ステップＳ３０２）：特別図柄プロセスフラグの値が２であるときに実行される。変動パターンを決定し、その変動パターンにおける変動時間（可変表示時間：可変表示を開始してから表示結果が導出表示（停止表示）するまでの時間）を特別図柄の可変表示の変動時間とすることに決定する。また、決定した特別図柄の変動時間を計測する変動時間タイマをスタートさせる。そして、内部状態（特別図柄プロセスフラグ）をステップＳ３０３に対応した値（この例では３）に更新する。
【０２２１】
表示結果特定コマンド送信処理（ステップＳ３０３）：特別図柄プロセスフラグの値が３であるときに実行される。演出制御用マイクロコンピュータ１００に、表示結果特定コマンドを送信する制御を行う。そして、内部状態（特別図柄プロセスフラグ）をステップＳ３０４に対応した値（この例では４）に更新する。
【０２２２】
特別図柄変動中処理（ステップＳ３０４）：特別図柄プロセスフラグの値が４であるときに実行される。変動パターン設定処理で選択された変動パターンの変動時間が経過（ステップＳ３０２でセットされる変動時間タイマがタイムアウトすなわち変動時間タイマの値が０になる）すると、内部状態（特別図柄プロセスフラグ）をステップＳ３０５に対応した値（この例では５）に更新する。
【０２２３】
特別図柄停止処理（ステップＳ３０５）：特別図柄プロセスフラグの値が５であるときに実行される。特別図柄表示器８における可変表示を停止して停止図柄を導出表示させる。また、演出制御用マイクロコンピュータ１００に、図柄確定指定コマンドを送信する制御を行う。そして、大当りフラグがセットされている場合には、内部状態（特別図柄プロセスフラグ）をステップＳ３０６に対応した値（この例では６）に更新する。大当りフラグがセットされていない場合には、内部状態（特別図柄プロセスフラグ）をステップＳ３００に対応した値（この例では０）に更新する。なお、演出制御用マイクロコンピュータ１００は、遊技制御用マイクロコンピュータ５６０が送信する図柄確定指定コマンドを受信すると可変表示装置９において飾り図柄が停止されるように制御する。
【０２２４】
大当り表示処理（ステップＳ３０６）：特別図柄プロセスフラグの値が６であるときに実行される。大当り表示時間タイマによって所定期間を計測し、所定期間が経過すると、内部状態（特別図柄プロセスフラグ）をステップＳ３０７に対応した値（この例では７）に更新する。
【０２２５】
大入賞口開放前処理（ステップＳ３０７）：特別図柄プロセスフラグの値が７であるときに実行される。大入賞口開放前処理では、大入賞口を開放する制御を行う。具体的には、カウンタ（例えば大入賞口に入った遊技球数をカウントするカウンタ）などを初期化するとともに、ソレノイド２１を駆動して大入賞口を開状態にする。また、タイマによって大入賞口開放中処理の実行時間を設定し、内部状態（特別図柄プロセスフラグ）をステップＳ３０８に対応した値（この例では８）に更新する。なお、大入賞口開放前処理は各ラウンド毎に実行されるが、第１ラウンドを開始する場合には、大入賞口開放前処理は大当り遊技を開始する処理でもある。
【０２２６】
大入賞口開放中処理（ステップＳ３０８）：特別図柄プロセスフラグの値が８であるときに実行される。大当り遊技状態中のラウンド表示の演出制御コマンドを演出制御用マイクロコンピュータ１００に送信する制御や大入賞口の閉成条件の成立を確認する処理等を行う。大入賞口の閉成条件が成立し、かつ、まだ残りラウンドがある場合には、内部状態（特別図柄プロセスフラグ）をステップＳ３０７に移行するように更新する。また、全てのラウンドを終えた場合には、内部状態（特別図柄プロセスフラグ）をステップＳ３０９（この例では９）に対応した値に更新する。
【０２２７】
大当り終了処理（ステップＳ３０９）：特別図柄プロセスフラグの値が９であるときに実行される。大当り遊技状態が終了したことを遊技者に報知する表示制御を演出制御用マイクロコンピュータ１００に行わせるための制御を行う。また、遊技状態を示すフラグ（例えば、確変フラグ）をセットする処理を行う。そして、内部状態（特別図柄プロセスフラグ）をステップＳ３００に対応した値（この例では０）に更新する。
【０２２８】
次に、演出制御手段の動作を説明する。図３３は、演出制御基板８０に搭載されている演出制御用マイクロコンピュータ１００（具体的には、演出制御用ＣＰＵ１０１）が実行するメイン処理を示すフローチャートである。演出制御用ＣＰＵ１０１は、電源が投入されると、メイン処理の実行を開始する。メイン処理では、まず、ＲＡＭ領域のクリアや各種初期値の設定、また演出制御の起動間隔（例えば、２ｍｓ）を決めるためのタイマの初期設定等を行うための初期化処理を行う（ステップＳ７０１）。そして、演出制御用ＣＰＵ１０１は、タイマ割込フラグの監視（ステップＳ７０２）を行うループ処理に移行する。タイマ割込が発生すると、演出制御用ＣＰＵ１０１は、タイマ割込処理においてタイマ割込フラグをセットする。メイン処理において、タイマ割込フラグがセットされていたら、演出制御用ＣＰＵ１０１は、そのフラグをクリアし（ステップＳ７０３）、演出制御処理を実行する。
【０２２９】
演出制御処理において、演出制御用ＣＰＵ１０１は、まず、受信した演出制御コマンドを解析し、受信した演出制御コマンドに応じたフラグをセットする処理等を実行する（コマンド解析処理：ステップＳ７０４）。次いで、演出制御用ＣＰＵ１０１は、演出制御プロセス処理を実行する（ステップＳ７０５）。演出制御プロセス処理では、制御状態に応じた各プロセスのうち、現在の制御状態（演出制御プロセスフラグ）に対応した処理を選択して可変表示装置９の表示制御を実行する。また、所定の乱数（例えば、飾り図柄の停止図柄を決定するための乱数）を生成するためのカウンタのカウンタ値を更新する乱数更新処理を実行する（ステップＳ７０６）。その後、ステップＳ７０２に移行する。
【０２３０】
図３４は、図３３に示されたメイン処理における演出制御プロセス処理（ステップＳ７０５）を示すフローチャートである。演出制御プロセス処理では、演出制御用ＣＰＵ１０１は、演出制御プロセスフラグの値に応じてステップＳ８００〜Ｓ８０７のうちのいずれかの処理を行う。各処理において、以下のような処理を実行する。
【０２３１】
変動パターンコマンド受信待ち処理（ステップＳ８００）：遊技制御用マイクロコンピュータ５６０から変動パターンコマンドを受信しているか否か確認する。具体的には、コマンド解析処理でセットされる変動パターンコマンド受信フラグがセットされているか否を確認する。変動パターンコマンドを受信していれば、演出制御プロセスフラグの値を予告選択処理（ステップＳ８０１）に対応した値に変更する。
【０２３２】
予告選択処理（ステップＳ８０１）：可変表示装置９において、大当りの発生を遊技者に予告報知するための予告演出処理を実行するか否か決定し、予告演出処理を実行することに決定した場合には、予告種類を決定する。そして、演出制御プロセスフラグの値を飾り図柄変動開始処理（ステップＳ８０２）に対応した値に変更する。
【０２３３】
飾り図柄変動開始処理（ステップＳ８０２）：飾り図柄の変動が開始されるように制御する。そして、演出制御プロセスフラグの値を飾り図柄変動中処理（ステップＳ８０３）に対応した値に更新する。
【０２３４】
飾り図柄変動中処理（ステップＳ８０３）：変動パターンを構成する各変動状態（変動速度）の切替タイミング等を制御するとともに、変動時間の終了を監視する。そして、変動時間が終了したら、演出制御プロセスフラグの値を飾り図柄変動停止処理（ステップＳ８０４）に対応した値に更新する。
【０２３５】
飾り図柄変動停止処理（ステップＳ８０４）：全図柄停止を指示する演出制御コマンド（図柄確定指定コマンド）を受信したことにもとづいて、飾り図柄の変動を停止し表示結果（停止図柄）を導出表示する制御を行う。そして、演出制御プロセスフラグの値を大当り表示処理（ステップＳ８０５）または変動パターンコマンド受信待ち処理（ステップＳ８００）に対応した値に更新する。
【０２３６】
大当り表示処理（ステップＳ８０５）：変動時間の終了後、可変表示装置９に大当りの発生を報知するための画面を表示する制御を行う。そして、演出制御プロセスフラグの値を大当り遊技中処理（ステップＳ８０６）に対応した値に更新する。
【０２３７】
大当り遊技中処理（ステップＳ８０６）：大当り遊技中の制御を行う。例えば、大入賞口開放前表示や大入賞口開放時表示の演出制御コマンドを受信したら、可変表示装置９におけるラウンド数の表示制御等を行う。そして、演出制御プロセスフラグの値を大当り終了処理（ステップＳ８０７）に対応した値に更新する。
【０２３８】
大当り終了処理（ステップＳ８０７）：可変表示装置９において、大当り遊技状態が終了したことを遊技者に報知する表示制御を行う。そして、演出制御プロセスフラグの値を変動パターンコマンド受信待ち処理（ステップＳ８００）に対応した値に更新する。
【０２３９】
この実施の形態では、遊技制御用マイクロコンピュータ５６０は、ＮＭＩが発生したら異常ノイズフラグをセットし（図３０参照）、ループ処理を実行する。その結果、ウォッチドッグタイマ回路５０４がタイムアウトして、遊技制御用マイクロコンピュータ５６０をユーザリセットし、遊技制御用マイクロコンピュータ５６０は、ステップＳ１からメイン処理（図１８参照）を開始する。メイン処理では、異常ノイズフラグがセットされている場合には、クリアスイッチ９２１が押下されるのを待つので、遊技店員等がクリアスイッチ９２１を操作しない限り、遊技制御用マイクロコンピュータ５６０は遊技制御処理を再開せず、遊技が不能動化される。遊技店員等は、遊技が不能動化されたことにもとづいて、遊技機においてノイズが発生したか、または不正信号が入力されたと推定できる。また、ＮＭＩ処理は、ループ処理を実行するように構成されているので、ＮＭＩが発生したことに起因してプログラムが暴走するようなことはない。
【０２４０】
さらに、クリアスイッチ９２１の操作にもとづいて遊技が再度能動化するときには、ＲＡＭ５５は初期化されている（ステップＳ１０参照）。換言すれば、ＲＡＭ５５が初期化されることを条件に、遊技が能動化される。よって、ＲＡＭ５５の内容が改変された状態で遊技制御が行われてしまうことが防止される。すなわち、不正に変えられたデータにもとづいて遊技制御がなされたり、不正な入賞信号にもとづいて景品の払出がなされてしまうことが防止される。
【０２４１】
なお、この実施の形態では、演出装置を制御する回路が搭載された基板として、演出制御基板８０、音声出力基板７０およびランプドライバ基板３５が設けられているが、演出装置を制御する回路を１つの基板に搭載してもよい。さらに、可変表示装置９等を制御する回路が搭載された第１の演出制御基板（表示制御基板）と、その他の演出装置（ランプ、ＬＥＤ、スピーカ２７など）を制御する回路が搭載された第２の演出制御基板との２つの基板を設けるようにしてもよい。
【０２４２】
また、この実施の形態では、遊技制御用マイクロコンピュータ５６０は、演出制御用マイクロコンピュータ１００に対して直接コマンドを送信しているが、遊技制御用マイクロコンピュータ５６０が他の基板（例えば、図３に示す音声出力基板７０やランプドライバ基板３５など、または音声出力基板７０に搭載されている回路による機能とランプドライバ基板３５に搭載されている回路による機能とを備えた音／ランプ基板）に演出制御コマンドを送信し、他の基板を経由して演出制御基板８０における演出制御用マイクロコンピュータ１００に送信されるようにしてもよい。その場合、他の基板においてコマンドが単に通過するようにしてもよいし、音声出力基板７０、ランプドライバ基板３５、音／ランプ基板にマイクロコンピュータ等の制御手段を搭載し、制御手段がコマンドを受信したことに応じて音声制御やランプ制御に関わる制御を実行し、さらに、受信したコマンドを、そのまま、または例えば簡略化したコマンドに変更して、可変表示装置９を制御する演出制御用マイクロコンピュータ１００に送信するようにしてもよい。その場合でも、演出制御用マイクロコンピュータ１００は、上記の実施の形態における遊技制御用マイクロコンピュータ５６０から直接受信した演出制御コマンドに応じて表示制御を行うのと同様に、音声出力基板７０、ランプドライバ基板３５または音／ランプ基板から受信したコマンドに応じて表示制御を行うことができる。
【０２４３】
実施の形態２．
第１の実施の形態では、ＮＭＩ処理において、異常ノイズフラグをセットしたら、ループ処理を実行した。そして、ループ処理の実行中に、ウォッチドッグタイマ回路５０４が遊技制御用マイクロコンピュータ５６０をユーザリセットするように構成してステップＳ６〜Ｓ８の処理をループするようにし、クリアスイッチ９２１が押下されるまで、遊技を不能動化するようにした。
【０２４４】
しかし、ウォッチドッグタイマ回路５０４を用いずに、遊技を不能動化するようにしてもよい。図３５は、ウォッチドッグタイマ回路５０４を用いない場合のＮＭＩ処理の一例を示すフローチャートである。図３５に示すＮＭＩ処理では、ＣＰＵ５６は、異常ノイズフラグをセットした後（ステップＳ２６０）、割込処理からの復帰アドレスを電源投入時実行アドレス（すなわち００００番地）にして（ステップＳ２６１）、割込処理からのリターン命令を実行する。
【０２４５】
ＮＭＩ処理をこのように構成しても、第１の実施の形態の場合と同様に、遊技制御プログラムを００００番地から実行させることができる。すなわち、再度、メイン処理のステップＳ１から遊技制御プログラムが実行される。そして、ステップＳ６〜Ｓ８の処理をループする。
【０２４６】
よって、第１の実施の形態の場合と同様に、遊技店員等は、遊技が不能動化されることにもとづいて、遊技機においてノイズが発生したか、または不正信号が入力されたと推定できる。さらに、ＲＡＭ５５が初期化されることを条件に、遊技が能動化されるので、ＲＡＭ５５の内容が改変された状態で遊技制御が行われてしまうことが防止される。また、ＮＭＩ処理は、リターン処理を実行するように構成されているので、ＮＭＩが発生したことに起因してプログラムが暴走するようなことはない。
【０２４７】
なお、ＮＭＩ処理以外の処理は、第１の実施の形態における処理と同じである。ただし、タイマ割込処理において、ステップＳ３４のウォッチドッグタイマ処理を実行する必要はない。
【０２４８】
実施の形態３．
図３６は、第３の実施の形態におけるＮＭＩ処理を示すフローチャートである。第１および第２の実施の形態では、ＮＭＩが発生すると、クリアスイッチ９２１が押下されるまで遊技を不能動化するために、直ちに異常ノイズフラグをセットしたが、所定期間内に複数回のＮＭＩが発生したら、異常ノイズフラグをセットするようにしてもよい。
【０２４９】
図３６に示すＮＭＩ処理では、ＣＰＵ５６は、まず、異常ノイズカウンタの値を＋１する（ステップＳ２６５）。異常ノイズカウンタは、ＲＡＭ５５に形成されている。そして、異常ノイズカウンタの値が５に達していなければ、異常ノイズタイマをクリアする（ステップＳ２６６，Ｓ２６７）。また、異常ノイズタイマが動作中であることを示すタイマ動作中フラグをセットする（ステップＳ２６８）。そして、リターン命令を実行する。なお、異常ノイズタイマは、ＲＡＭ５５に形成されている。また、ＣＰＵ５６は、異常ノイズカウンタの値が５以上であれば、異常ノイズフラグをセットし（ステップＳ２６９）、ループ処理を実行する。よって、ウォッチドッグタイマ回路５０４がタイムアウトし、遊技制御用マイクロコンピュータ５６０は、ユーザリセットされる。
【０２５０】
図３７は、この実施の形態におけるＣＰＵ５６が実行するタイマ割込処理を示すフローチャートである。図３７に示すように、タイマ割込処理において、異常ノイズ処理を実行する（ステップＳ２０Ｂ）。
【０２５１】
図３８は、異常ノイズ処理を示すフローチャートである。異常ノイズ処理において、ＣＰＵ５６は、異常ノイズタイマが動作中であるか否か確認する（ステップＳ２７１）。すなわち、タイマ動作中フラグがセットされているか否か確認する。異常ノイズタイマが動作中でなければ、ステップＳ２７４に移行する。異常ノイズタイマが動作中であれば、異常ノイズタイマの値を＋１する（ステップＳ２７２）。そして、異常ノイズタイマの値が所定時間Ｔ（例えば、１秒）に相当する値になったか否か確認する（ステップＳ２７３）。異常ノイズタイマの値がＴに相当する値になった場合には、異常ノイズカウンタの値をクリアし（ステップＳ２７４）、タイマ動作中フラグをリセットする（ステップＳ２７５）。異常ノイズタイマの値がＴに相当する値になっていない場合には、そのまま処理を終了する。
【０２５２】
図３９は、この実施の形態における遊技制御の状態等を示す説明図である。図３９（Ａ）に示すように、ＮＭＩ端子に、ＮＭＩを発生させるようなノイズ（または、不正信号）が、前回の入力時から所定時間Ｔが経過しないうちに入力される状況が５回発生すると、ステップＳ２７４の処理が実行されることなく、ステップＳ２６５〜Ｓ２６７の処理が５回実行され、異常ノイズカウンタの値が５になる。よって、ステップＳ２６９の処理で異常ノイズフラグがセットされる。
【０２５３】
すると、ウォッチドッグタイマ回路５０４がタイムアウトして、遊技制御用マイクロコンピュータ５６０をユーザリセットし、遊技制御用マイクロコンピュータ５６０は、ステップＳ１からメイン処理（図１８参照）を開始する。メイン処理では、クリアスイッチ９２１が押下されるまでステップＳ６〜Ｓ８の処理をループする。よって、遊技制御の状態は不実行（不能動化）である。なお、ＮＭＩ処理においてループ処理が実行されているときにも、タイマ割込処理（遊技制御処理）は実行されず、遊技制御の状態は不実行（不能動化）である。クリアスイッチ９２１が押下されると、遊技制御用マイクロコンピュータ５６０は、初期化処理（ステップＳ１０〜Ｓ１５）を実行した後、タイマ割込がかかるようにし（ステップＳ１５）、遊技制御処理が実行される状態（遊技制御の実行状態）に戻る。
【０２５４】
しかし、図３９（Ｂ）に示すように、ＮＭＩ端子へのＮＭＩを発生させるようなノイズ（または、不正信号）の入力時から次回の入力時までに所定時間Ｔが経過すると、異常ノイズカウンタの値は０にクリアされる（ステップＳ２７１〜Ｓ２７４参照）。よって、遊技制御は不能動化されず、能動状態（実行状態）が継続する。
【０２５５】
この実施の形態でも、異常ノイズフラグがセットされている場合には、遊技店員等がクリアスイッチ９２１を操作しない限り、遊技制御用マイクロコンピュータ５６０は遊技制御処理を再開せず（ステップＳ６〜Ｓ８参照）、遊技店員等は、遊技が不能動化されることにもとづいて、遊技機においてノイズが発生したか、または不正信号が入力されたと推定できる。さらに、ＲＡＭ５５が初期化されることを条件に、遊技が能動化されるので、ＲＡＭ５５の内容が改変された状態で遊技制御が行われてしまうことが防止される。また、ＮＭＩ処理は、ループ処理を実行するように構成されているので、ＮＭＩが発生したことに起因してプログラムが暴走するようなことはない。
【０２５６】
さらに、この実施の形態では、所定期間内に複数回のＮＭＩが発生すると遊技が不能動化されるので、偶発的なノイズ等で遊技制御用マイクロコンピュータ５６０が遊技制御処理を実行しない状態に移行してしまうことを防止できる。また、集中して発生するノイズや不正信号を対象にして、遊技制御処理を実行しない状態に移行させることができる。
【０２５７】
なお、この実施の形態では、異常ノイズカウンタの値が５になると異常ノイズフラグをセットするようにしたが、その値は一例である。また、異常ノイズフラグをセットした後、ループ処理を実行することに代えて、第２の実施の形態の場合のように、割込処理からの復帰アドレスを電源投入時実行アドレス（すなわち００００番地）にして、割込処理からのリターン命令を実行するようにしてもよい。また、所定期間内に複数回のＮＭＩが発生したことを検出するために、ＮＭＩ処理で異常ノイズカウンタの値が５に達していないことを条件に異常ノイズタイマをクリアしたが、例えば、最初にＮＭＩが発生すると異常ノイズタイマをスタートさせ、異常ノイズタイマがタイムアウトするまえに所定回（例えば５回）のＮＭＩが発生すると異常ノイズフラグをセットするようにしてもよい。
【０２５８】
また、上記の各実施の形態において、遊技制御用マイクロコンピュータ５６０が遊技制御処理を実行しない状態に移行した場合に、演出制御用マイクロコンピュータ１００も、演出制御処理を実行しない状態に移行させるようにしてもよい。演出制御用マイクロコンピュータ１００をそのような状態に移行させるには、例えば、ステップＳ８（図１８参照）の処理を最初に実行するときに演出制御用マイクロコンピュータ１００に対して初期化コマンドを送信する。演出制御用マイクロコンピュータ１００は、演出制御を実行しているときに初期化コマンドを受信した場合には、演出制御を終了させて（例えば、飾り図柄の可変表示を停止して）、飾り図柄の変動を行っていない状態に移行するように構成される。
【０２５９】
また、遊技制御用マイクロコンピュータ５６０が遊技制御処理を実行しない状態に移行した場合に、大入賞口を閉鎖する等の目的で出力ポートの出力をクリアするようにしてもよい。
【０２６０】
また、遊技制御用マイクロコンピュータ５６０は、例えばステップＳ８（図１８参照）の処理を最初に実行するときに演出制御用マイクロコンピュータ１００に対して異常報知コマンドを送信するようにしてもよい。その場合、演出制御用マイクロコンピュータ１００は、異常報知コマンドを受信すると、例えば可変表示装置９に、異常が発生したことを報知するための表示を行うように構成される。
【０２６１】
また、上記の各実施の形態では、遊技制御用マイクロコンピュータ５６０が、遊技機への電源投入が開始されてからタイマ割込設定を行うまでに乱数回路５０３の初期設定を行うとともに（ステップＳ１４参照）、初期設定においてマイコン識別情報（例えば、遊技制御用マイクロコンピュータ５６０固有のＩＤナンバ）にもとづく値を乱数の初期値として設定する（ステップＳ１５４ｂ）参照）ように構成されているので、乱数回路５０３が生成する乱数のランダム性を向上させることができる。乱数のランダム性を向上させることができるので、乱数生成のタイミングを遊技者や遊技店に認識されにくくすることができ、無線信号を用いた取り込み信号を遊技機に対して発生させることによって、特定遊技状態への移行条件を不正に成立させられてしまうことを防止することができる。
【０２６２】
また、遊技制御用マイクロコンピュータ５６０は、初期設定において、数値データが更新される所定の範囲の最大値としての値が設定される最大値レジスタ（例えば、乱数最大値設定レジスタ５３５）に、更新可能な数値データの範囲内において所定の最大値（例えば、乱数最大値）を設定し（ステップＳ１５２参照）、所定の最大値が、所定の下限値（例えば、１２ビット乱数回路５０３ａを設定した場合における「２５６」）以下であるか否かを判定し（ステップＳ１５３ｂ参照）、最大値レジスタに設定された所定の最大値が所定の下限値以下であると判定された場合に、最大値レジスタに、更新可能な数値データの範囲内の所定値（例えば、１２ビット乱数回路５０３ａを設定した場合における「４０９５」）を設定し直すので（ステップＳ１５３ｃ参照）、タイマ割込処理の実行中に用いる乱数の範囲より大きい値の乱数を生成してしまうことを防止できる。また、設定された所定の最大値が所定の下限値以下である場合には、所定の最大値を設定しなおすように構成されているので、電波を用いた取り込み信号を遊技機に対して発生させる等の行為によって、過度に小さい値が乱数の最大値として設定されてしまうことを防止することができる。
【０２６３】
また、上記の各実施の形態では、ローレベルの信号が所定時間（例えば、数１０μｓ）継続して割込端子に入力されると割込が発生するようなマイクロコンピュータを例にしたが、信号の立ち下がり（ローレベルからハイレベルへの変化）や立ち上がりにもとづいて割込を発生したり、はいレベルの信号が所定時間（例えば、数１０μｓ）継続して割込端子に入力されると割込が発生するようなマイクロコンピュータを用いた場合にも本発明を適用できる。また、上記の各実施の形態では、ＮＭＩ処理を例にしたが、ＩＮＴ（マスク可能割込）端子への信号入力にもとづくＩＮＴ処理を遊技制御において使用しない場合には、ＩＮＴ処理について上記の各実施の形態を適用するようにしてもよい。
【０２６４】
また、上記の各実施の形態では、遊技制御用マイクロコンピュータ５６０における割込処理を例にしたが、遊技機における他のマイクロコンピュータについても、本発明を適用することができる。
【０２６５】
さらに、上記の各実施の形態では、遊技機として、遊技球を遊技媒体とする遊技機を例にしたが、遊技媒体としてコインやメダルを使用するスロット機等において遊技制御処理や演出制御処理を実行するマイクロコンピュータについても、本発明を適用することができる。
【産業上の利用可能性】
【０２６６】
本発明は、遊技者が遊技媒体を用いて所定の遊技を行うことが可能であり、マイクロコンピュータを含む制御手段を有する遊技機に好適に適用可能である。
【図面の簡単な説明】
【０２６７】
【図１】パチンコ遊技機を正面からみた正面図である。
【図２】遊技制御基板（主基板）の回路構成例を示すブロック図である。
【図３】演出制御基板、ランプドライバ基板および音声出力基板の回路構成例を示すブロック図である。
【図４】電源基板の回路構成例を示すブロック図である。
【図５】乱数回路の構成例を示すブロック図である。
【図６】更新規則選択レジスタの例を示す説明図である。
【図７】更新規則メモリの例を示す説明図である。
【図８】カウント値順列変更回路が、カウンタが出力するカウント値の順列を変更する場合の例を示す説明図である。
【図９】カウント値順列変更レジスタの例を示す説明図である。
【図１０】乱数最大値設定レジスタの例を示す説明図である。
【図１１】周期設定レジスタの例を示す説明図である。
【図１２】カウント値更新レジスタの例を示す説明図である。
【図１３】乱数値取込レジスタの例を示す説明図である。
【図１４】乱数更新方式選択レジスタ、および乱数更新方式選択レジスタに書き込まれる乱数更新方式選択データの一例の説明図である。
【図１５】遊技制御用マイクロコンピュータにおける記憶領域のアドレスマップの一例を示す説明図である。
【図１６】ユーザプログラム管理エリアにおけるアドレスマップの一例を示す説明図である。
【図１７】初期値変更方式設定データの一例を示す説明図である。
【図１８】主基板におけるＣＰＵが実行するメイン処理を示すフローチャートである。
【図１９】乱数回路設定処理を示すフローチャートである。
【図２０】乱数最大値再設定処理を示すフローチャートである。
【図２１】初期値変更処理を示すフローチャートである。
【図２２】２ｍｓタイマ割込処理を示すフローチャートである。
【図２３】各乱数を示す説明図である。
【図２４】乱数回路初期値更新処理を示すフローチャートである。
【図２５】カウント値順列変更処理を示すフローチャートである。
【図２６】ウォッチドッグタイマ処理を示すフローチャートである。
【図２７】大当り判定値の一例を示す説明図である。
【図２８】電源断処理を示すフローチャートである。
【図２９】電源断処理を示すフローチャートである。
【図３０】ＮＭＩ処理を示すフローチャートである。
【図３１】演出制御コマンドの送信タイミングの一例を示す説明図である。
【図３２】特別図柄プロセス処理を示すフローチャートである。
【図３３】演出制御用ＣＰＵが実行する演出制御メイン処理を示すフローチャートである。
【図３４】演出制御プロセス処理を示すフローチャートである。
【図３５】ＮＭＩ処理の他の例を示すフローチャートである。
【図３６】ＮＭＩ処理のさらに他の例を示すフローチャートである。
【図３７】２ｍｓタイマ割込処理の他の例を示すフローチャートである。
【図３８】異常ノイズ処理を示すフローチャートである。
【図３９】遊技制御の状態等を示す説明図である。
【符号の説明】
【０２６８】
１      パチンコ遊技機
８      特別図柄表示器
９      可変表示装置
１４    始動入賞口
３１    遊技制御基板（主基板）
５６    ＣＰＵ
８０    演出制御基板
１００  演出制御用マイクロコンピュータ
１０１  演出制御用ＣＰＵ
５６０  遊技制御用マイクロコンピュータ
９１０  電源基板
９２１  クリアスイッチ
【図１】
2008023224.tif 000003
【図２】
2008023224.tif 000004
【図３】
2008023224.tif 000005
【図４】
2008023224.tif 000006
【図５】
2008023224.tif 000007
【図６】
2008023224.tif 000008
【図７】
2008023224.tif 000009
【図８】
2008023224.tif 000010
【図９】
2008023224.tif 000011
【図１０】
2008023224.tif 000012
【図１１】
2008023224.tif 000013
【図１２】
2008023224.tif 000014
【図１３】
2008023224.tif 000015
【図１４】
2008023224.tif 000016
【図１５】
2008023224.tif 000017
【図１６】
2008023224.tif 000018
【図１７】
2008023224.tif 000019
【図１８】
2008023224.tif 000020
【図１９】
2008023224.tif 000021
【図２０】
2008023224.tif 000022
【図２１】
2008023224.tif 000023
【図２２】
2008023224.tif 000024
【図２３】
2008023224.tif 000025
【図２４】
2008023224.tif 000026
【図２５】
2008023224.tif 000027
【図２６】
2008023224.tif 000028
【図２７】
2008023224.tif 000029
【図２８】
2008023224.tif 000030
【図２９】
2008023224.tif 000031
【図３０】
2008023224.tif 000032
【図３１】
2008023224.tif 000033
【図３２】
2008023224.tif 000034
【図３３】
2008023224.tif 000035
【図３４】
2008023224.tif 000036
【図３５】
2008023224.tif 000037
【図３６】
2008023224.tif 000038
【図３７】
2008023224.tif 000039
【図３８】
2008023224.tif 000040
【図３９】
2008023224.tif 000041