(57)【特許請求の範囲】
【請求項１】
遊技媒体を用いて遊技者が所定の遊技を行うことが可能であり、遊技領域における入賞領域に遊技媒体が入賞したことにもとづいて景品として景品遊技媒体を払い出す遊技機であって、
前記入賞領域に遊技媒体が入賞したことを検出して入賞検出信号を出力する入賞検出手段と、
前記入賞検出手段からの入賞検出信号が入力され、遊技の進行を制御する遊技制御用ＣＰＵと、前記遊技制御用ＣＰＵ以外のＣＰＵを内蔵したマイクロコンピュータとシリアル通信を行うシリアル通信回路とを内蔵した遊技制御用マイクロコンピュータと、
景品遊技媒体の払い出しを行う払出手段と、
前記払出手段によって景品遊技媒体が払い出されたことを検出して払出検出信号を出力する払出検出手段と、
前記払出手段を制御する払出制御用マイクロコンピュータとを備え、
前記シリアル通信回路は、複数の割込要求条件のいずれかが成立したときに、前記遊技制御用ＣＰＵに対して、成立した割込要求条件に応じた割込要求を発生させる割込要求手段を含み、
前記遊技制御用マイクロコンピュータは、
所定のメイン処理を繰り返し実行するメイン処理実行手段と、
所定時間毎に発生するタイマ割込の設定を行うタイマ割込設定手段と、
前記タイマ割込が発生したときに、前記メイン処理の実行を中断してタイマ割込処理を実行するタイマ割込処理実行手段と、
前記タイマ割込処理の実行中に、前記入賞検出信号の入力に応じて、払い出すべき景品遊技媒体の数を特定可能な払出数データを払出数記憶手段に記憶させる払出数登録手段と、
前記メイン処理の実行中に、前記払出数記憶手段に記憶された払出数データにもとづいて、払い出すべき景品遊技媒体の数を特定可能な払出数コマンドを、前記払出制御用マイクロコンピュータに送信する払出数送信手段と、
払い出すべき景品遊技媒体であって前記払出手段による払い出しが完了していない景品遊技媒体の総数を示す総未払出数を記憶する総未払出数記憶手段と、
前記メイン処理の実行中に、
前記総未払出数記憶手段から総未払出数を読み出す読出手段と、
前記払出数送信手段によって送信された払出数コマンドに示される景品遊技媒体の数を、前記読出手段が読み出した総未払出数に加算する加算手段と、
前記加算手段により加算された総未払出数を、前記総未払出数記憶手段に書き込む払出数書込手段と、
前記読出手段が総未払出数を読み出す前に前記タイマ割込処理の実行を禁止する割込禁止手段と、
前記払出数書込手段によって総未払出数が前記総未払出数記憶手段に書き込まれると、前記タイマ割込処理の実行を許可する割込許可手段とを含み、
前記タイマ割込処理の実行中に、前記払出検出信号にもとづいて、前記払出手段によって払い出された景品遊技媒体の数を、前記総未払出数記憶手段が記憶する総未払出数から減算する総未払出数減算手段と、
前記加算手段によって前記払出数コマンドに示される景品遊技媒体の数が総未払出数に加算されると、前記払出数コマンドに示される景品遊技媒体の数が加算された総未払出数が所定の範囲内であるか否かを判定する払出数判定手段とを含み、
前記遊技制御用ＣＰＵは、前記割込要求手段からの割込要求にもとづいて割込処理を実行可能であり、
前記割込要求手段が発生させる割込要求は、前記シリアル通信回路において通信エラーが発生したときに割込要求条件が成立して発生するエラー時割込要求を含み、
前記遊技制御用ＣＰＵは、
前記割込要求手段により複数の割込要求が同時に発生させられたときに、前記エラー時割込要求にもとづく割込処理を、前記エラー時割込要求以外の割込要求にもとづく割込処理に優先して実行可能であり、
前記エラー時割込要求にもとづく割込処理において、シリアル通信を禁止可能である
ことを特徴とする遊技機。
【請求項２】
遊技制御用マイクロコンピュータは、払出数判定手段によって所定の範囲内でないと判定されると、払出手段による景品遊技媒体の払い出しに異常が発生したことを示す異常発生コマンドを、払出制御用マイクロコンピュータに送信する対払出異常発生コマンド送信手段を含み、
前記払出制御用マイクロコンピュータは、前記遊技制御用マイクロコンピュータから受信した前記異常発生コマンドにもとづいて、前記払出手段による景品遊技媒体の払い出しに異常が発生したことを報知する払出側異常報知手段を含む
請求項１記載の遊技機。
【請求項３】
演出用の電気部品を制御して遊技演出を実行する演出制御手段を備え、
遊技制御用マイクロコンピュータは、払出数判定手段によって所定の範囲内でないと判定されると、払出手段による景品遊技媒体の払い出しに異常が発生したことを示す異常発生コマンドを、前記演出制御手段に送信する対演出異常発生コマンド送信手段を含み、
前記演出制御手段は、前記遊技制御用マイクロコンピュータから受信した前記異常発生コマンドにもとづいて、前記払出手段による景品遊技媒体の払い出しに異常が発生したことを報知する演出側異常報知手段を含む
請求項１または請求項２記載の遊技機。
【請求項４】
払出数判定手段は、
加算手段によって払出数コマンドに示される景品遊技媒体の数が加算された総未払出数にもとづいて、払い出すべき景品遊技媒体の数よりも多い遊技媒体が払い出される異常である払出過多異常が発生したか否かを判定する払出過多異常判定手段と、
前記加算手段によって前記払出数コマンドに示される景品遊技媒体の数が加算された総未払出数にもとづいて、総未払出数が所定の払出過少判定値を超えた状態の異常である払出過少異常が発生したか否かを判定する払出過少異常判定手段とを含み、
対払出異常発生コマンド送信手段は、
前記払出過多異常判定手段によって前記払出過多異常が発生したと判定されると、前記払出過多異常が発生したことを示す払出過多異常コマンドを、払出制御用マイクロコンピュータに送信する対払出過多異常コマンド送信手段と、
前記払出過少異常判定手段によって前記払出過少異常が発生したと判定されると、前記払出過少異常が発生したことを示す払出過少異常コマンドを、前記払出制御用マイクロコンピュータに送信する対払出過少異常コマンド送信手段とを含み、
払出側異常報知手段は、
遊技制御用マイクロコンピュータから受信した前記払出過多異常コマンドにもとづいて、前記払出過多異常が発生したことを報知する払出側過多報知手段と、
前記遊技制御用マイクロコンピュータから受信した前記払出過少異常コマンドにもとづいて、前記払出過少異常が発生したことを報知する払出側過少報知手段とを含む
請求項２記載の遊技機。
【請求項５】
払出数判定手段は、
加算手段によって払出数コマンドに示される景品遊技媒体の数が加算された総未払出数にもとづいて、払い出すべき景品遊技媒体の数よりも多い遊技媒体が払い出される異常である払出過多異常が発生したか否かを判定する払出過多異常判定手段と、
前記加算手段によって払出数コマンドに示される景品遊技媒体の数が加算された総未払出数にもとづいて、総未払出数が所定の払出過少判定値を超えた状態の異常である払出過少異常が発生したか否かを判定する払出過少異常判定手段とを含み、
対演出異常発生コマンド送信手段は、
前記払出過多異常判定手段によって前記払出過多異常が発生したと判定されると、前記払出過多異常が発生したことを示す払出過多異常コマンドを、演出制御手段に送信する対演出過多異常コマンド送信手段と、
前記払出過少異常判定手段によって前記払出過少異常が発生したと判定されると、前記払出過少異常が発生したことを示す払出過少異常コマンドを、前記演出制御手段に送信する対演出過少異常コマンド送信手段とを含み、
演出側異常報知手段は、
遊技制御用マイクロコンピュータから受信した前記払出過多異常コマンドにもとづいて、前記払出過多異常が発生したことを報知する演出側過多報知手段と、
前記遊技制御用マイクロコンピュータから受信した前記払出過少異常コマンドにもとづいて、前記払出過少異常が発生したことを報知する演出側過少報知手段とを含む
請求項３記載の遊技機。
【請求項６】
遊技制御用マイクロコンピュータは、払出数判定手段によって払出手段による景品遊技媒体の払い出しに異常が発生したと判定されると、払出数送信手段による払出数コマンドの送信を禁止する払出数送信禁止手段を含む請求項１から請求項５のいずれかに記載の遊技機。
【請求項７】
払出制御用マイクロコンピュータは、
払出検出手段から払出検出信号を入力する払出検出信号入力手段と、
前記払出検出信号入力手段によって入力された前記払出検出信号を遊技制御用マイクロコンピュータに出力する払出検出信号出力手段と、
前記払出検出信号の入力に応じて、払出手段によって払い出された景品遊技媒体の数を示す信号を外部出力する外部出力手段とを含み、
総未払出数減算手段は、前記払出制御用マイクロコンピュータから入力した前記払出検出信号の入力に応じて、前記払出手段によって払い出された景品遊技媒体の数を、総未払出数記憶手段が記憶する総未払出数から減算する
請求項１から請求項６のいずれかに記載の遊技機。
【請求項８】
遊技制御用マイクロコンピュータは、タイマ割込と割込要求手段による割込要求とが同時に発生したときに、タイマ割込処理実行手段が実行するタイマ割込処理と、遊技制御用ＣＰＵが実行する割込処理との優先順位を、タイマ割込設定手段により前記タイマ割込の設定がされる前に設定する割込優先順位設定手段を含み、
前記遊技制御用ＣＰＵは、前記割込優先順位設定手段により前記タイマ割込処理実行手段が実行する前記タイマ割込処理よりも前記割込処理を優先して実行するように設定されていることを条件に、前記タイマ割込と前記割込要求手段による前記割込要求とが同時に発生したときには、前記タイマ割込処理実行手段が前記タイマ割込処理を実行するよりも先に前記割込要求手段による前記割込要求にもとづく前記割込処理を実行する
請求項１から請求項７のいずれかに記載の遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遊技媒体を用いて遊技者が所定の遊技を行うことが可能であり、遊技領域における入賞領域に遊技媒体が入賞したことにもとづいて景品として景品遊技媒体を払い出す遊技機に関する。
【背景技術】
【０００２】
遊技機として、遊技球などの遊技媒体を発射装置によって遊技領域に発射し、遊技領域に設けられている入賞口などの入賞領域に遊技媒体が入賞すると、所定個の賞球が遊技者に払い出されるものがある。
【０００３】
遊技機における遊技進行は、マイクロコンピュータ等による遊技制御手段によって制御される。賞球払出の制御を行う払出制御手段が、遊技制御手段が搭載されている遊技制御基板（主基板）とは別の払出制御基板に搭載されている場合、遊技の進行は主基板に搭載された遊技制御手段によって制御されるので、入賞にもとづく賞球個数は遊技制御手段によって決定され、賞球個数を示す制御コマンドが払出制御基板に送信される。そして、払出制御手段は、遊技制御手段からの制御コマンドにもとづいて、入賞にもとづく個数の賞球を払い出す処理を行う。
【０００４】
また、全入賞計数スイッチの検出信号（排出処理装置のスイッチの検出信号）を払出制御手段に入力して、払出制御手段が賞球数の過不足の判定を行うものがある（例えば、特許文献１参照）。特許文献１に記載された遊技機では、各入賞口への遊技球の入賞を検出する入賞検出スイッチの検出信号を遊技制御基板に入力し、入賞にもとづく賞球個数が遊技制御手段によって決定され、賞球個数を示す制御コマンドが払出制御基板に送信される。また、払出制御手段は、入賞数カウンタの値に基づいて賞球数の過不足の判定を行う。そして、払出制御手段は、警告処理を行うことによって、賞球数の過不足の判定結果を報知する。
【０００５】
【特許文献１】特開２００２−３５３２５号公報（段落０１０９−０１１８、図１３−１４）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に記載された遊技機では、各入賞検出スイッチの検出信号を遊技制御基板に入力し遊技制御手段が賞球数を管理している一方で、払出制御基板に全入賞計数スイッチの検出信号を入力し払出制御手段が賞球数を管理している。そのため、遊技制御手段が管理する賞球数と払出制御手段が管理する賞球数との間で数にズレが生じる虞がある。
【０００７】
例えば、遊技制御手段は、賞球数の総数を記憶する総賞球バッファを用いて賞球数を管理する。遊技制御手段は、払い出しが行われると、総賞球数バッファが記憶する総賞球数から、払出カウントスイッチによって検出された払出数を減算する。また、遊技制御手段は、入賞を検出すると、総賞球数バッファから総賞球数を読み出し、読み出した総賞球数に、各入賞検出スイッチによって検出された賞球数を加算する。そして、遊技制御手段は、加算後の総賞球数を再び総賞球数バッファに書き込む。この場合、総賞球数バッファから総賞球数を読み出してから再び書き込むまでの間に払い出しが行われると、遊技制御手段は、払い出しに基づく減算処理を実行した後に、加算後の総賞球数（減算分が反映されていない総賞球数）を総賞球バッファに上書きしてしまうことになる。そのため、払い出しによる減算分を総賞球数に正しく反映できなくなり、遊技制御手段が管理する賞球数と払出制御手段が管理する賞球数との間で数にズレが生じてしまう虞がある。
【０００８】
また、特許文献１に記載された遊技機では、遊技制御手段として用いるマイクロコンピュータが遊技機に搭載されている各制御基板と通信を行う際に、通信エラーによる誤動作を防止することについて開示されていない。
【０００９】
そこで、本発明は、遊技制御手段と払出制御手段とが別個に設けられ、遊技領域における入賞領域に遊技媒体が入賞したことにもとづいて景品として景品遊技媒体を払い出す遊技機において、遊技制御手段が管理する賞球数と払出制御手段が管理する賞球数との間のズレの発生を防止できるとともに、通信エラーによる誤動作を防止できるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明による遊技機は、遊技媒体（例えば、遊技球）を用いて遊技者が所定の遊技を行うことが可能であり、遊技領域における入賞領域（例えば、可変入賞球装置１５、入賞口２９，３０，３３，３９、大入賞口）に遊技媒体が入賞したことにもとづいて景品として景品遊技媒体を払い出す遊技機であって、入賞領域に遊技媒体が入賞したことを検出して入賞検出信号を出力する入賞検出手段（例えば、始動口スイッチ１４ａ、カウントスイッチ２３、入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａ）と、入賞検出手段からの入賞検出信号が入力され、遊技の進行を制御する遊技制御用ＣＰＵ（例えば、ＣＰＵ５６）と、遊技制御用ＣＰＵ以外のＣＰＵ（例えば、払出制御用ＣＰＵ３７１）を内蔵したマイクロコンピュータ（例えば、払出制御用マイクロコンピュータ３７０）とシリアル通信を行うシリアル通信回路（例えば、シリアル通信回路５０５）とを内蔵した遊技制御用マイクロコンピュータ（例えば、遊技制御用マイクロコンピュータ５６０）と、景品遊技媒体の払い出しを行う払出手段（例えば、球払出装置９７）と、払出手段によって景品遊技媒体が払い出されたことを検出して払出検出信号を出力する払出検出手段（例えば、払出個数カウントスイッチ３０１）と、払出手段を制御する払出制御用マイクロコンピュータ（例えば、払出制御用マイクロコンピュータ３７０）とを備え、シリアル通信回路は、複数の割込要求条件のいずれかが成立したときに、遊技制御用ＣＰＵに対して、成立した割込要求条件（例えば、シリアル通信回路５０５で通信エラーが発生したことや、送信データの送信を完了したこと、制御基板から受信データを受信したこと）に応じた割込要求を発生させる割込要求手段（例えば、割り込み制御回路７１４）を含み、遊技制御用マイクロコンピュータは、所定のメイン処理を繰り返し実行するメイン処理実行手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１７〜Ｓ１９ｈの処理を繰り返し実行する部分）と、所定時間毎に発生するタイマ割込の設定を行うタイマ割込設定手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１６の処理を実行する部分）と、タイマ割込が発生したときに、メイン処理の実行を中断してタイマ割込処理を実行するタイマ割込処理実行手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ２０〜Ｓ２７の処理を実行する部分）と、タイマ割込処理の実行中に、入賞検出信号の入力に応じて、払い出すべき景品遊技媒体の数を特定可能な払出数データ（例えば、カウント値）を払出数記憶手段（例えば、賞球コマンド出力カウンタ）に記憶させる払出数登録手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ２１２４の処理を実行する部分）と、メイン処理の実行中に、払出数記憶手段に記憶された払出数データにもとづいて、払い出すべき景品遊技媒体の数を特定可能な払出数コマンド（例えば、図５３に示す賞球個数コマンド「０３」，「０Ａ」，「０Ｆ」）を、払出制御用マイクロコンピュータに送信する払出数送信手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１２５４の処理を実行する部分）と、払い出すべき景品遊技媒体であって払出手段による払い出しが完了していない景品遊技媒体の総数を示す総未払出数（例えば、総賞球数）を記憶する総未払出数記憶手段（例えば、総賞球数格納バッファ）と、メイン処理の実行中に、総未払出数記憶手段から総未払出数を読み出す読出手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１２８２の処理を実行する部分）と、払出数送信手段によって送信された払出数コマンドに示される景品遊技媒体の数を、読出手段が読み出した総未払出数に加算する加算手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１２８３の処理を実行する部分）と、加算手段により加算された総未払出数を、総未払出数記憶手段に書き込む払出数書込手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１２８４の処理を実行する部分）と、読出手段が総未払出数を読み出す前にタイマ割込処理の実行を禁止する割込禁止手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１２８１の処理を実行する部分）と、払出数書込手段によって総未払出数が総未払出数記憶手段に書き込まれると、タイマ割込処理の実行を許可する割込許可手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１２８５の処理を実行する部分）とを含み、タイマ割込処理の実行中に、払出検出信号にもとづいて、払出手段によって払い出された景品遊技媒体の数を、総未払出数記憶手段が記憶する総未払出数から減算する総未払出数減算手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ２１３１の処理を実行する部分）と、加算手段によって払出数コマンドに示される景品遊技媒体の数が総未払出数に加算されると、払出数コマンドに示される景品遊技媒体の数が加算された総未払出数が所定の範囲内であるか否かを判定する払出数判定手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１３０５の処理を実行する部分）とを含み、遊技制御用ＣＰＵは、割込要求手段からの割込要求にもとづいて割込処理を実行可能であり（例えば、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６がステップＳ４１，Ｓ４２，Ｓ４３を実行可能である）、割込要求手段が発生させる割込要求は、シリアル通信回路において通信エラーが発生したときに割込要求条件が成立して発生するエラー時割込要求（例えば、通信エラー時割込要求）を含み、遊技制御用ＣＰＵは、割込要求手段により複数の割込要求が同時に発生させられたときに、エラー時割込要求にもとづく割込処理を、エラー時割込要求以外の割込要求（例えば、受信時割込要求や送信時割込要求）にもとづく割込処理に優先して実行可能であり（例えば、遊技制御用マイクロコンピュータ５６０がステップＳ１５ｂを実行可能である）、エラー時割込要求にもとづく割込処理において、シリアル通信を禁止可能である（例えば、遊技制御用マイクロコンピュータ５６０が、ステップＳ４１で通信エラーフラグがセットされたことにもとづいて、ステップＳ１２４１，Ｓ１２６１，Ｓ１２７１，Ｓ１２９１で通信エラーフラグがセットされていると判断すると、処理をそのまま終了可能である）ことを特徴とする。
【００１１】
遊技制御用マイクロコンピュータは、払出数判定手段によって所定の範囲内でないと判定されると、払出手段による景品遊技媒体の払い出しに異常が発生したことを示す異常発生コマンド（例えば、図５３に示す賞球過多異常コマンド「Ｅ１」，賞球過少異常コマンド「Ｅ２」）を、払出制御用マイクロコンピュータに送信する対払出異常発生コマンド送信手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１３０６で賞球過多異常コマンド「Ｅ１」を払出制御基板３７に送信する部分、遊技制御用マイクロコンピュータ５６０においてステップＳ１３０５ｂで賞球過少異常コマンド「Ｅ２」を払出制御基板３７に送信する部分）を含み、払出制御用マイクロコンピュータは、遊技制御用マイクロコンピュータから受信した異常発生コマンドにもとづいて、払出手段による景品遊技媒体の払い出しに異常が発生したことを報知する払出側異常報知手段例えば、払出制御用マイクロコンピュータ３７０において、ステップＳ８２９で賞球過多異常エラービットをセットしたことにもとづいて、ステップＳ７５９でエラー表示用ＬＥＤ３７４に「９」を表示させる部分、払出制御用マイクロコンピュータ３７０において、ステップＳ８３２で賞球過少異常エラービットをセットしたことにもとづいて、ステップＳ７５９でエラー表示用ＬＥＤ３７４に「Ａ」を表示させる部分）を含むように構成されていてもよい。
【００１２】
遊技機は、演出用の電気部品（例えば、スピーカ２７や各ランプ２５，２８ａ，２８ｂ，２８ｃ、可変表示装置９）を制御して遊技演出を実行する演出制御手段（例えば、音／ランプ制御用マイクロコンピュータ１００ｂ、図柄制御用マイクロコンピュータ１００ａ）を備え、遊技制御用マイクロコンピュータは、払出数判定手段によって所定の範囲内でないと判定されると、払出手段による景品遊技媒体の払い出しに異常が発生したことを示す異常発生コマンドを、演出制御手段に送信する対演出異常発生コマンド送信手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１３０６で賞球過多異常コマンドを音／ランプ制御基板８０ｂに送信する部分、遊技制御用マイクロコンピュータ５６０においてステップＳ１３０５ｂで賞球過少異常コマンドを音／ランプ制御基板８０ｂに送信する部分）を含み、演出制御手段は、遊技制御用マイクロコンピュータから受信した異常発生コマンドにもとづいて、払出手段による景品遊技媒体の払い出しに異常が発生したことを報知する演出側異常報知手段（例えば、音／ランプ制御用マイクロコンピュータ１００ｂにおいてステップＳ７９０でスピーカ２７や各ランプ２５，２８ａ，２８ｂ，２８ｃを用いて報知する部分、図柄制御用マイクロコンピュータ１００ａにおいて可変表示装置９を用いて報知する部分）を含むように構成されていてもよい。
【００１３】
払出数判定手段は、加算手段によって払出数コマンドに示される景品遊技媒体の数が加算された総未払出数にもとづいて、払い出すべき景品遊技媒体の数よりも多い遊技媒体が払い出される異常である払出過多異常が発生したか否かを判定する払出過多異常判定手段（例えば、遊技制御用マイクロコンピュータ５６０において、ステップＳ１３０５で総賞球数が−４９９よりも小さいと判断したことにもとづいて賞球過多異常が発生したと判定する部分）と、加算手段によって払出数コマンドに示される景品遊技媒体の数が加算された総未払出数にもとづいて、総未払出数が所定の払出過少判定値を超えた状態の異常である払出過少異常が発生したか否かを判定する払出過少異常判定手段（例えば、遊技制御用マイクロコンピュータ５６０において、ステップＳ１３０５ａで総賞球数が２０００よりも大きいと判断したことにもとづいて賞球過少が発生したと判定する部分）とを含み、対払出異常発生コマンド送信手段は、払出過多異常判定手段によって払出過多異常が発生したと判定されると、払出過多異常が発生したことを示す払出過多異常コマンド（例えば、図５３に示す賞球過多異常コマンド「Ｅ１」）を、払出制御用マイクロコンピュータに送信する対払出過多異常コマンド送信手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１３０６で賞球過多異常コマンド「Ｅ１」を払出制御基板３７に送信する部分）と、払出過少異常判定手段によって払出過少異常が発生したと判定されると、払出過少異常が発生したことを示す払出過少異常コマンド（例えば、図５３に示す賞球過少異常コマンド「Ｅ２」）を、払出制御用マイクロコンピュータに送信する対払出過少異常コマンド送信手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１３０５ｂで賞球過少異常コマンド「Ｅ２」を払出制御基板３７に送信する部分）とを含み、払出側異常報知手段は、遊技制御用マイクロコンピュータから受信した払出過多異常コマンドにもとづいて、払出過多異常が発生したことを報知する払出側過多報知手段（例えば、払出制御用マイクロコンピュータ３７０において、ステップＳ８２９で賞球過多異常エラービットをセットしたことにもとづいて、ステップＳ７５９でエラー表示用ＬＥＤ３７４に「９」を表示させる部分）と、遊技制御用マイクロコンピュータから受信した払出過少異常コマンドにもとづいて、払出過少異常が発生したことを報知する払出側過少報知手段（例えば、払出制御用マイクロコンピュータ３７０において、ステップＳ８３２で賞球過少異常エラービットをセットしたことにもとづいて、ステップＳ７５９でエラー表示用ＬＥＤ３７４に「Ａ」を表示させる部分）とを含むように構成されていてもよい。
【００１４】
払出数判定手段は、加算手段によって払出数コマンドに示される景品遊技媒体の数が加算された総未払出数にもとづいて、払い出すべき景品遊技媒体の数よりも多い遊技媒体が払い出される異常である払出過多異常が発生したか否かを判定する払出過多異常判定手段（例えば、遊技制御用マイクロコンピュータ５６０において、ステップＳ１３０５で総賞球数が−４９９よりも小さいと判断したことにもとづいて賞球過多異常が発生したと判定する部分）と、加算手段によって払出数コマンドに示される景品遊技媒体の数が加算された総未払出数にもとづいて、総未払出数が所定の払出過少判定値を超えた状態の異常である払出過少異常が発生したか否かを判定する払出過少異常判定手段（例えば、遊技制御用マイクロコンピュータ５６０において、ステップＳ１３０５ａで総賞球数が２０００よりも大きいと判断したことにもとづいて賞球過少が発生したと判定する部分）とを含み、対演出異常発生コマンド送信手段は、払出過多異常判定手段によって払出過多異常が発生したと判定されると、払出過多異常が発生したことを示す払出過多異常コマンドを、演出制御手段に送信する対演出過多異常コマンド送信手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１３０６で賞球過多異常コマンドを音／ランプ制御基板８０ｂに送信する部分）と、払出過少異常判定手段によって払出過少異常が発生したと判定されると、払出過少異常が発生したことを示す払出過少異常コマンドを、演出制御手段に送信する対演出過少異常コマンド送信手段（例えば、遊技制御用マイクロコンピュータ５６０においてステップＳ１３０５ｂで賞球過少異常コマンドを音／ランプ制御基板８０ｂに送信する部分）とを含み、演出側異常報知手段は、遊技制御用マイクロコンピュータから受信した払出過多異常コマンドにもとづいて、払出過多異常が発生したことを報知する演出側過多報知手段（例えば、音／ランプ制御用マイクロコンピュータ１００ｂにおいてステップＳ７９０でスピーカ２７や各ランプ２５，２８ａ，２８ｂ，２８ｃを用いて報知する部分、図柄制御用マイクロコンピュータ１００ａにおいて可変表示装置９を用いて図９９（Ａ）の画面を表示する部分）と、遊技制御用マイクロコンピュータから受信した払出過少異常コマンドにもとづいて、払出過少異常が発生したことを報知する演出側過少報知手段（例えば、音／ランプ制御用マイクロコンピュータ１００ｂにおいてステップＳ７９０でスピーカ２７や各ランプ２５，２８ａ，２８ｂ，２８ｃを用いて報知する部分、図柄制御用マイクロコンピュータ１００ａにおいて可変表示装置９を用いて図９９（Ｂ）の画面を表示する部分）とを含むように構成されていてもよい。
【００１５】
遊技制御用マイクロコンピュータは、払出数判定手段によって払出手段による景品遊技媒体の払い出しに異常が発生したと判定されると、払出数送信手段による払出数コマンドの送信を禁止する払出数送信禁止手段（例えば、遊技制御用マイクロコンピュータ５６０において、ステップＳ１２４１，Ｓ１２６１，Ｓ１２７１，Ｓ１２９１で賞球過多異常エラーフラグまたは賞球過少異常エラーフラグがセットされていることにもとづいて処理を終了する部分）を含むように構成されていてもよい。
【００１６】
払出制御用マイクロコンピュータは、払出検出手段から払出検出信号を入力する払出検出信号入力手段（例えば、払出制御用マイクロコンピュータ３７０において入力ポート１（図５に示すＩ／Ｏポート３７２ｆ）から払出個数カウントスイッチ３０１の検出信号を入力する部分）と、払出検出信号入力手段によって入力された払出検出信号を遊技制御用マイクロコンピュータに出力する払出検出信号出力手段（例えば、払出制御用マイクロコンピュータ３７０において、ステップＳ６０３ａで出力ポート０（図５に示すＩ／Ｏポート３７２ａ）から払出個数カウントスイッチ３０１の検出信号を出力する部分）と、払出検出信号の入力に応じて、払出手段によって払い出された景品遊技媒体の数を示す信号を外部出力する外部出力手段（例えば、払出制御用マイクロコンピュータ３７０においてターミナル基板１６０から賞球情報を出力する部分）とを含み、総未払出数減算手段は、払出制御用マイクロコンピュータから入力した払出検出信号の入力に応じて、払出手段によって払い出された景品遊技媒体の数を、総未払出数記憶手段が記憶する総未払出数から減算する（例えば、遊技制御用マイクロコンピュータ５６０において、払出制御用マイクロコンピュータ３７０を経由して入力した払出個数カウントスイッチ３０１の検出信号にもとづいて、ステップＳ２１３１の処理を実行する）ように構成されていてもよい。
【００１７】
遊技制御用マイクロコンピュータは、タイマ割込と割込要求手段による割込要求とが同時に発生したときに、タイマ割込処理実行手段が実行するタイマ割込処理と、遊技制御用ＣＰＵが実行する割込処理との優先順位を、タイマ割込設定手段によりタイマ割込の設定がされる前に設定する割込優先順位設定手段（例えば、遊技制御用マイクロコンピュータ５６０によるステップＳ１５ｃを実行する部分）を含み、遊技制御用ＣＰＵは、割込優先順位設定手段によりタイマ割込処理実行手段が実行するタイマ割込処理よりも割込処理を優先して実行するように設定されていることを条件に、タイマ割込と割込要求手段による割込要求とが同時に発生したときには、タイマ割込処理実行手段がタイマ割込処理を実行するよりも先に割込要求手段による割込要求にもとづく割込処理を実行する（例えば、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６が、通信エラー時割込優先実行フラグがセットされていることにもとづいて、図５６（ａ）に示す通信エラー割込処理を優先して実行する）ように構成されていてもよい。
【発明の効果】
【００１８】
請求項１記載の発明では、払出手段によって景品遊技媒体の払い出しが行われると、タイマ割込処理において、払い出された景品遊技媒体の数を総未払出数から減算する。また、メイン処理において、払出数コマンドに示される景品遊技媒体の数を総未払出数に加算する際に、総未払出数記憶手段から総未払出数を読み出すと、再び総未払出数を総未払出数記憶手段に書き込むまでタイマ割込処理の実行を禁止する。そのため、総未払出数記憶手段から総未払出数を読み出してから再び書き込むまでの間に、払い出された景品遊技媒体の数を総未払出数から減算する処理を実行しないようにすることができ、払い出された景品遊技媒体の数を遊技制御手段（遊技制御用マイクロコンピュータ）が把握できなくなる事態を防止できる。従って、遊技制御手段が管理する賞球数と払出制御手段が管理する賞球数との間のズレの発生を防止することができる。さらに、シリアル通信回路が割り込み要求を行った場合に、通信エラーを割込要求条件とする場合の割込処理を優先的に実行し、通信を禁止可能であるように構成されているので、通信エラーが発生した状態で遊技機に搭載されている制御基板と通信を行うことを防止できる。よって、通信エラーによる誤動作を防止することができる。
【００１９】
請求項２記載の発明では、遊技制御用マイクロコンピュータによって景品遊技媒体の払い出しに異常が発生したことを示す異常発生コマンドが払出制御用マイクロコンピュータに送信され、払出制御用マイクロコンピュータが、受信した異常発生コマンドにもとづいて報知するように構成されているので、景品遊技媒体の払い出しのエラー状態を報知することができる。
【００２０】
請求項３記載の発明では、遊技制御用マイクロコンピュータによって景品遊技媒体の払い出しに異常が発生したことを示す異常発生コマンドが演出制御手段に送信され、演出制御手段が、受信した異常発生コマンドにもとづいて報知するように構成されているので、景品遊技媒体の払い出しのエラー状態を報知することができる。
【００２１】
請求項４記載の発明では、景品遊技媒体の払い出しの異常が払出過多異常であるか、または払出過少異常であるかを区別して判定し、払出過多異常であることと払出過少異常であることとを区別して報知するように構成されているので、払出制御用マイクロコンピュータは、払い出すべき景品遊技媒体の数よりも多い遊技媒体を払い出してしまった状態であるか、または払い出すべき景品遊技媒体の数よりも少ない遊技媒体を払い出してしまった状態であるかを区別して、景品遊技媒体の払い出しのエラー状態を報知することができる。
【００２２】
請求項５記載の発明では、景品遊技媒体の払い出しの異常が払出過多異常であるか、または払出過少異常であるかを区別して判定し、払出過多異常であることと払出過少異常であることとを区別して報知するように構成されているので、演出制御手段は、払い出すべき景品遊技媒体の数よりも多い遊技媒体を払い出してしまった状態であるか、または払い出すべき景品遊技媒体の数よりも少ない遊技媒体を払い出してしまった状態であるかを区別して、景品遊技媒体の払い出しのエラー状態を報知することができる。
【００２３】
請求項６記載の発明では、景品遊技媒体の払い出しに異常が発生したことが検出されると、払出数コマンドの送信を禁止するように構成されているので、不正に景品遊技媒体が払い出されてしまうことを防止できる。特に、払い出すべき景品遊技媒体の数よりも多い遊技媒体を払い出してしまう払出過多状態を確実に防止できるので、景品遊技媒体を多く払い出されてしまう不正を防止することができる。
【００２４】
請求項７記載の発明では、払出検出手段からの払出検出信号を払出制御用マイクロコンピュータに入力し、さらに払出制御用マイクロコンピュータに入力された払出検出信号を遊技制御用マイクロコンピュータに入力するように構成されているので、払出検出信号を出力するための配線を、払出検出手段から遊技制御手段および払出制御手段の両方に設ける必要がなくなる。そのため、払出検出手段から払出検出信号を出力するための配線を削減することができる。
【００２５】
請求項８記載の発明では、タイマ割込を許可する状態となる前に、タイマ割込処理とシリアル通信回路による割込要求に対応する割込処理とのいずれを優先して実行するかを確実に設定するように構成されているので、タイマ割込とシリアル通信回路からの割込要求とが同時に発生した場合に、優先して実行させるべき割込処理を確実に実行することができる。また、優先して実行させる割込処理を初期設定できるので、遊技制御用マイクロコンピュータに実行させるプログラムの自由度を向上させることができる。また、エラー時割込要求を優先するように初期設定することができ、シリアル通信回路の通信エラーを重視した設定を行うことができる。
【発明を実施するための最良の形態】
【００２６】
実施の形態１．
以下、本発明の一実施形態を図面を参照して説明する。
まず、遊技機の一例であるパチンコ遊技機の全体の構成について説明する。図１はパチンコ遊技機を正面からみた正面図、図２は遊技盤の前面を示す正面図である。なお、以下の実施の形態では、パチンコ遊技機を例に説明を行うが、本発明による遊技機はパチンコ遊技機に限られず、スロット機などの他の遊技機に適用することもできる。
【００２７】
パチンコ遊技機１は、縦長の方形状に形成された外枠（図示せず）と、外枠の内側に開閉可能に取り付けられた遊技枠とで構成される。また、パチンコ遊技機１は、遊技枠に開閉可能に設けられている額縁状に形成されたガラス扉枠２を有する。遊技枠は、外枠に対して開閉自在に設置される前面枠（図示せず）と、機構部品等が取り付けられる機構板と、それらに取り付けられる種々の部品（後述する遊技盤を除く。）とを含む構造体である。
【００２８】
図１に示すように、パチンコ遊技機１は、額縁状に形成されたガラス扉枠２を有する。ガラス扉枠２の下部表面には打球供給皿（上皿）３がある。打球供給皿３の下部には、打球供給皿３に収容しきれない遊技球を貯留する余剰球受皿４と遊技球を発射する打球操作ハンドル（操作ノブ）５が設けられている。ガラス扉枠２の背面には、遊技盤６が着脱可能に取り付けられている。なお、遊技盤６は、それを構成する板状体と、その板状体に取り付けられた種々の部品とを含む構造体である。また、遊技盤６の前面には遊技領域７が形成されている。
【００２９】
遊技領域７の中央付近には、それぞれが演出用の飾り図柄を可変表示する複数の可変表示部を含む可変表示装置（飾り図柄表示装置）９が設けられている。可変表示装置９には、例えば「左」、「中」、「右」の３つの可変表示部（図柄表示エリア）がある。可変表示装置９は、特別図柄表示器８による特別図柄の可変表示期間中に、装飾用（演出用）の図柄としての飾り図柄の可変表示を行う。飾り図柄の可変表示を行う可変表示装置９は、図柄制御基板に搭載されている図柄制御用マイクロコンピュータによって制御される。
【００３０】
可変表示装置９の下部には、始動入賞口１４に入った有効入賞球数すなわち保留記憶（始動記憶または始動入賞記憶ともいう。）数を表示する４つの特別図柄保留記憶表示器１８が設けられている。特別図柄保留記憶表示器１８は、保留記憶数を入賞順に４個まで表示する。特別図柄保留記憶表示器１８は、始動入賞口１４に始動入賞があるごとに、点灯状態のＬＥＤの数を１増やす。そして、特別図柄保留記憶表示器１８は、特別図柄表示器８で可変表示が開始されるごとに、点灯状態のＬＥＤの数を１減らす（すなわち１つのＬＥＤを消灯する）。具体的には、特別図柄保留記憶表示器１８は、特別図柄表示器８で可変表示が開始されるごとに、点灯状態をシフトする。なお、この例では、始動入賞口１４への入賞による始動記憶数に上限数（４個まで）が設けられているが、上限数を４個以上にしてもよい。
【００３１】
可変表示装置９の上部には、識別情報としての特別図柄を可変表示する特別図柄表示器（特別図柄表示装置）８が設けられている。この実施の形態では、特別図柄表示器８は、例えば０〜９の数字を可変表示可能な簡易で小型の表示器（例えば７セグメントＬＥＤ）で実現されている。特別図柄表示器８は、遊技者に特定の停止図柄を把握しづらくさせるために、０〜９９など、より多種類の数字を可変表示するように構成されていてもよい。また、可変表示装置９は、特別図柄表示器８による特別図柄の可変表示期間中に、装飾用（演出用）の図柄としての飾り図柄の可変表示を行う。
【００３２】
可変表示装置９の下方には、始動入賞口１４を形成する可変入賞球装置１５が設けられている。始動入賞口１４に入った入賞球は、遊技盤６の背面に導かれ、始動口スイッチ１４ａによって検出される。可変入賞球装置１５は、ソレノイド１６によって開状態にされる。
【００３３】
可変入賞球装置１５の下部には、特定遊技状態（大当り状態）においてソレノイド２１によって開状態に制御される開閉板を用いた特別可変入賞球装置２０が設けられている。特別可変入賞球装置２０は大入賞口を開閉する手段である。特別可変入賞球装置２０に入賞し遊技盤６の背面に導かれた入賞球のうち一方（Ｖ入賞領域：特別領域）に入った入賞球はＶ入賞スイッチ２２で検出された後カウントスイッチ２３で検出され、他方の領域に入った遊技球は、そのままカウントスイッチ２３で検出される。遊技盤６の背面には、大入賞口内の経路を切り換えるためのソレノイド２１Ａも設けられている。
【００３４】
遊技球がゲート３２を通過しゲートスイッチ３２ａで検出されると、普通図柄表示器１０の表示の可変表示が開始される。この実施の形態では、左右のランプ（点灯時に図柄が視認可能になる）が交互に点灯することによって可変表示が行われ、例えば、可変表示の終了時に左側のランプが点灯すれば当たりになる。そして、普通図柄表示器１０における停止図柄が所定の図柄（当り図柄）である場合に、可変入賞球装置１５が所定回数、所定時間だけ開状態になる。普通図柄表示器１０の近傍には、ゲート３２を通過した入賞球数を表示する４つのＬＥＤによる表示部を有する普通図柄始動記憶表示器４１が設けられている。ゲート３２への遊技球の通過があるごとに、普通図柄始動記憶表示器４１は点灯するＬＥＤを１増やす。そして、普通図柄表示器１０の可変表示が開始されるごとに、点灯するＬＥＤを１減らす。
【００３５】
遊技盤６には、複数の入賞口２９，３０，３３，３９が設けられ、遊技球の入賞口２９，３０，３３，３９への入賞は、それぞれ入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａによって検出される。各入賞口２９，３０，３３，３９は、遊技媒体を受け入れて入賞を許容する領域として遊技盤６に設けられる入賞領域を構成している。なお、始動入賞口１４や大入賞口も、遊技媒体を受け入れて入賞を許容する入賞領域を構成する。遊技領域７の左右周辺には、遊技中に点滅表示される装飾ランプ２５が設けられ、下部には、入賞しなかった遊技球を吸収するアウト口２６がある。また、遊技領域７の外側の左右上部には、効果音を発する２つのスピーカ２７が設けられている。遊技領域７の外周には、天枠ランプ２８ａ、左枠ランプ２８ｂおよび右枠ランプ２８ｃが設けられている。さらに、遊技領域７における各構造物（大入賞口等）の周囲には装飾ＬＥＤが設置されている。天枠ランプ２８ａ、左枠ランプ２８ｂおよび右枠ランプ２８ｃおよび装飾用ＬＥＤは、遊技機に設けられている装飾発光体の一例である。
【００３６】
そして、この例では、左枠ランプ２８ｂの近傍に、賞球払出中に点灯する賞球ランプ５１が設けられ、天枠ランプ２８ａの近傍に、補給球が切れたときに点灯する球切れランプ５２が設けられている。さらに、プリペイドカードが挿入されることによって球貸しを可能にするプリペイドカードユニット（以下、「カードユニット」という。）５０が、パチンコ遊技機１に隣接して設置されている。
【００３７】
カードユニット５０には、例えば、使用可能状態であるか否かを示す使用可表示ランプ、カードユニットがいずれの側のパチンコ遊技機１に対応しているのかを示す連結台方向表示器、カードユニット内にカードが投入されていることを示すカード投入表示ランプ、記録媒体としてのカードが挿入されるカード挿入口、およびカード挿入口の裏面に設けられているカードリーダライタの機構を点検する場合にカードユニットを解放するためのカードユニット錠が設けられている。
【００３８】
遊技者の操作により打球発射装置から発射された遊技球は、打球レールを通って遊技領域７に入り、その後、遊技領域７を下りてくる。遊技球が始動入賞口１４に入り始動口スイッチ１４ａで検出されると、図柄の可変表示を開始できる状態であれば、特別図柄表示器８において特別図柄が可変表示（変動）を始める。図柄の可変表示を開始できる状態でなければ、保留記憶数を１増やす。
【００３９】
特別図柄表示器８における特別図柄の可変表示は、一定時間が経過したときに停止する。停止時の特別図柄（停止図柄）が大当り図柄（特定表示結果）であると、大当り遊技状態に移行する。すなわち、特別可変入賞球装置２０が、一定時間経過するまで、または、所定個数（例えば１０個）の遊技球が入賞するまで開放する。そして、特別可変入賞球装置２０の開放中に遊技球がＶ入賞領域に入賞しＶ入賞スイッチ２２で検出されると、継続権が発生し特別可変入賞球装置２０の開放が再度行われる。継続権の発生は、所定回数（例えば１５ラウンド）許容される。また、Ｖ入賞領域を設けずに、特別可変入賞球装置２０の開放を常に決定されたラウンド数の最後のラウンドまで（例えば、１５ラウンドまで）許容するようにしてもよい。
【００４０】
停止時の特別図柄表示器８における特別図柄が確率変動を伴う大当り図柄（確変図柄）である場合には、次に大当りになる確率が高くなる。すなわち、確変状態という遊技者にとってさらに有利な状態になる。
【００４１】
遊技球がゲート３２を通過すると、普通図柄表示器１０において普通図柄が可変表示される状態になる。また、普通図柄表示器１０における停止図柄が所定の図柄（当り図柄）である場合に、可変入賞球装置１５が所定時間だけ開状態になる。
【００４２】
次に、パチンコ遊技機１の裏面の構造について図３を参照して説明する。図３は、遊技機を裏面から見た背面図である。
【００４３】
図３に示すように、遊技機裏面側では、可変表示装置９を制御する図柄制御用マイクロコンピュータが搭載された図柄制御基板８０ａを含む可変表示制御ユニット４９、遊技制御用マイクロコンピュータ等が搭載された遊技制御基板（主基板）３１が設置されている。また、球払出制御を行う払出制御用マイクロコンピュータ等が搭載された払出制御基板３７が設置されている。なお、可変表示制御ユニットは、図柄制御基板８０ａとともに、各種装飾ＬＥＤ、装飾ランプ２５、枠側に設けられている天枠ランプ２８ａ、左枠ランプ２８ｂおよび右枠ランプ２８ｃを点灯制御し、スピーカ２７からの音発生を制御する音／ランプ制御用マイクロコンピュータが搭載された音／ランプ制御基板を含む。
【００４４】
さらに、ＤＣ３０Ｖ、ＤＣ２１Ｖ、ＤＣ１２ＶおよびＤＣ５Ｖを作成する電源回路が搭載された電源基板９１０やタッチセンサ基板９１が設けられている。電源基板９１０は、大部分が主基板３１と重なっているが、主基板３１に重なることなく外部から視認可能に露出した露出部分がある。この露出部分には、遊技機１における主基板３１および各制御基板（音／ランプ制御基板、図柄制御基板８０ａおよび払出制御基板３７）や遊技機に設けられている各電気部品（電力が供給されることによって動作する部品）への電力供給を実行あるいは遮断するための電力供給許可手段としての電源スイッチが設けられている。さらに、露出部分における電源スイッチの内側（基板内部側）には、交換可能なヒューズが設けられている。
【００４５】
なお、各制御基板には、制御用マイクロコンピュータを含む制御手段が搭載されている。制御手段は、遊技制御手段等からのコマンドとしての指令信号（制御信号）に従って遊技機に設けられている電気部品（遊技用装置：球払出装置９７、可変表示装置９、ランプやＬＥＤなどの発光体、スピーカ２７等）を制御する。以下、主基板３１を制御基板に含めて説明を行うことがある。その場合には、制御基板に搭載される制御手段は、遊技制御手段と、遊技制御手段等からの指令信号に従って遊技機に設けられている電気部品を制御する手段とのそれぞれを指す。また、主基板３１以外のマイクロコンピュータが搭載された基板をサブ基板ということがある。
【００４６】
遊技機裏面において、上方には、各種情報を遊技機外部に出力するための各端子を備えたターミナル基板１６０が設置されている。ターミナル基板１６０には、少なくとも、球切れ検出スイッチ１６７の出力を導入して外部出力するための球切れ用端子、賞球情報（賞球個数信号）を外部出力するための賞球用端子および球貸し情報（球貸し個数信号）を外部出力するための球貸し用端子が設けられている。また、中央付近には、主基板３１からの各種情報を遊技機外部に出力するための各端子を備えた情報端子基板（情報出力基板）３６が設置されている。
【００４７】
貯留タンク３８に貯留された遊技球は誘導レール３９を通り、カーブ樋を経て払出ケース４０Ａで覆われた球払出装置に至る。球払出装置の上部には、遊技媒体切れ検出手段としての球切れスイッチ１８７が設けられている。球切れスイッチ１８７が球切れを検出すると、球払出装置の払出動作が停止する。球切れスイッチ１８７は遊技球通路内の遊技球の有無を検出するスイッチであるが、貯留タンク３８内の補給球の不足を検出する球切れ検出スイッチ１６７も誘導レール３９における上流部分（貯留タンク３８に近接する部分）に設けられている。球切れ検出スイッチ１６７が遊技球の不足を検知すると、遊技機設置島に設けられている補給機構から遊技機に対して遊技球の補給が行われる。
【００４８】
入賞にもとづく景品としての遊技球や球貸し要求にもとづく遊技球が多数払い出されて打球供給皿３が満杯になると、遊技球は、余剰球通路を経て余剰球受皿４に導かれる。さらに遊技球が払い出されると、感知レバー（図示せず）が貯留状態検出手段としての満タンスイッチ（図示せず）を押圧して、貯留状態検出手段としての満タンスイッチがオンする。その状態では、球払出装置内の払出モータの回転が停止して球払出装置の動作が停止するとともに打球発射装置の駆動も停止する。
【００４９】
図４は、主基板（遊技制御基板）３１における回路構成の一例を示すブロック図である。なお、図４には、払出制御基板３７、音／ランプ制御基板８０ｂおよび図柄制御基板８０ａ等も示されている。主基板３１には、プログラムに従ってパチンコ遊技機１を制御する遊技制御用マイクロコンピュータ（遊技制御手段に相当）５６０が搭載されている。遊技制御用マイクロコンピュータ５６０は、ゲーム制御（遊技進行制御）用のプログラム等を記憶するＲＯＭ５４、ワークメモリとして使用される記憶手段としてのＲＡＭ５５、プログラムに従って制御動作を行うＣＰＵ５６およびＩ／Ｏポート部５７を含む。この実施の形態では、ＲＯＭ５４およびＲＡＭ５５は遊技制御用マイクロコンピュータ５６０に内蔵されている。すなわち、遊技制御用マイクロコンピュータ５６０は、１チップマイクロコンピュータである。１チップマイクロコンピュータには、少なくともＲＡＭ５５が内蔵されていればよく、ＲＯＭ５４は外付けであっても内蔵されていてもよい。また、Ｉ／Ｏポート部５７は、外付けであってもよい。
【００５０】
なお、遊技制御用マイクロコンピュータ５６０においてＣＰＵ５６がＲＯＭ５４に格納されているプログラムに従って制御を実行するので、以下、遊技制御用マイクロコンピュータ５６０（またはＣＰＵ５６）が実行する（または、処理を行う）ということは、具体的には、ＣＰＵ５６がプログラムに従って制御を実行することである。このことは、主基板３１以外の他の基板に搭載されているマイクロコンピュータについても同様である。
【００５１】
また、ゲートスイッチ３２ａ、始動口スイッチ１４ａ、カウントスイッチ２３、Ｖ入賞スイッチ２２および各入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａからの検出信号を基本回路５３に与える入力ドライバ回路５８も主基板３１に搭載され、可変入賞球装置１５を開閉するソレノイド１６、特別可変入賞球装置を開閉するソレノイド２１、および大入賞口内の経路を切り換えるためのソレノイド２１Ａを基本回路５３からの指令に従って駆動する出力回路５９も主基板３１に搭載され、電源投入時に遊技制御用マイクロコンピュータ５６０をリセットするためのシステムリセット回路（図示せず）や、大当り遊技状態の発生を示す大当り情報等の情報出力信号をホールコンピュータ等の外部装置に対して出力する情報出力回路（図示せず）も主基板３１に搭載されている。
【００５２】
この実施の形態では、音／ランプ制御基板８０ｂに搭載されている音／ランプ制御手段（音／ランプ制御用マイクロコンピュータで構成される。）が、中継基板７７を介して遊技制御用マイクロコンピュータ５６０からの演出制御コマンドを受信し、図柄制御用基板８０ａに転送する。そして、図柄制御基板８０ａに搭載されている図柄制御手段（図柄制御用マイクロコンピュータで構成される。）が、音／ランプ制御手段から演出制御コマンドを受信し、飾り図柄を可変表示する可変表示装置９の表示制御を行う。
【００５３】
図５は、払出制御基板３７および球払出装置９７などの払出に関連する構成要素を示すブロック図である。図５に示すように、払出制御基板３７には、払出制御用ＣＰＵ３７１を含む払出制御用マイクロコンピュータ３７０が搭載されている。この実施の形態では、払出制御用マイクロコンピュータ３７０は、１チップマイクロコンピュータであり、少なくともＲＡＭが内蔵されている。払出制御用マイクロコンピュータ３７０、ＲＡＭ（図示せず）、払出制御用プログラムを格納したＲＯＭ（図示せず）およびＩ／Ｏポート等は、払出制御手段を構成する。すなわち、払出制御手段は、払出制御用ＣＰＵ３７１、ＲＡＭおよびＲＯＭを有する払出制御用マイクロコンピュータ３７０と、Ｉ／Ｏポートとで実現される。また、Ｉ／Ｏポートは、払出制御用マイクロコンピュータ３７０に内蔵されていてもよい。払出制御用マイクロコンピュータ３７０におけるＲＡＭの少なくとも一部は、電源基板９１０に搭載されているバックアップ電源によって電源バックアップされている。この実施の形態では、全てのＲＡＭ領域が電源バックアップされているとする。よって、遊技機に対して電力供給がなされていないときにも、所定期間（バックアップ電源としてのコンデンサが放電してバックアップ電源が電力供給不能になるまで）は、ＲＡＭの記憶内容は保存される。
【００５４】
球切れスイッチ１８７、満タンスイッチ４８および払出個数カウントスイッチ３０１からの検出信号は、中継基板７２を介して払出制御基板３７のＩ／Ｏポート３７２ｆに入力される。なお、この実施の形態では、払出個数カウントスイッチ３０１からの検出信号は、払出制御用マイクロコンピュータ３７０に入力されたあと、Ｉ／Ｏポート３７２ａおよび出力回路３７３Ｂを介して主基板３１に出力される。
【００５５】
また、払出モータ位置センサ２９５からの検出信号は、中継基板７２を介して払出制御基板３７のＩ／Ｏポート３７２ｅに入力される。払出モータ位置センサ２９５は、払出モータ２８９の回転位置を検出するための発光素子（ＬＥＤ）と受光素子とによるセンサであり、遊技球が詰まったこと、すなわちいわゆる球噛みを検出するために用いられる。払出制御基板３７に搭載されている払出制御用マイクロコンピュータ３７０は、球切れスイッチ１８７からの検出信号が球切れ状態を示していたり、満タンスイッチ４８からの検出信号が満タン状態を示していると、球払出処理を停止する。
【００５６】
さらに、満タンスイッチ４８からの検出信号が満タン状態を示していると、払出制御用マイクロコンピュータ３７０は、打球発射装置からの球発射を停止させるために、発射基板９０に対してローレベルの満タン信号を出力する。発射基板９０のＡＮＤ回路９１が出力する発射モータ９４への発射モータ信号は、発射基板９０から発射モータ９４に伝えられる。払出制御用マイクロコンピュータ３７０からの満タン信号は、発射基板９０に搭載されたＡＮＤ回路９１の入力側の一方に入力され、駆動信号生成回路９２からの駆動信号は、ＡＮＤ回路９１の入力側の他方に入力される。そして、ＡＮＤ回路９１の発射モータ信号が発射モータ９４に入力される。すなわち、払出制御用マイクロコンピュータ３７０が満タン信号を出力している間は、発射モータ９４への発射モータ信号の出力が停止される。
【００５７】
入賞口への遊技球の入賞があると、遊技制御用マイクロコンピュータ５６０のシリアル通信回路５０５（図７，５４参照）から、払出指令信号として、払い出すべき賞球個数を示す賞球個数コマンドが出力（送信）される。賞球個数コマンドは、８ビットのデータ（２進８桁のデータ）によって構成され、非同期シリアル通信によって出力される。
【００５８】
賞球個数コマンドは、シリアル通信回路３８０（図５４参照）に入力される。払出制御用マイクロコンピュータ３７０は、シリアル通信回路３８０を介して賞球個数コマンドを入力すると、賞球個数コマンドが示す個数の遊技球を払い出すために球払出装置９７を駆動する制御を行う。なお、主基板３１の出力回路６７からは、主基板３１が接続されていることを示す接続確認信号も出力される。また、賞球個数コマンドは、払出数を指定する払出指令信号に相当する。
【００５９】
また、電源基板９１０から、電源電圧が所定値以下の低下したことを示す電源断信号、およびＲＡＭの内容をクリアするためのクリアスイッチが操作されたことを示すクリア信号とが、入力ポート３７２ｇに入力される。電源断信号とクリア信号とは、出力回路３７３Ｂを介して主基板３１に出力される。そして、主基板３１において、入力回路６８およびＩ／Ｏポート５７を介して遊技制御用マイクロコンピュータ５６０に入力される。
【００６０】
払出制御用マイクロコンピュータ３７０は、出力ポート３７２ｂを介して、賞球払出数を示す賞球情報信号および貸し球数を示す球貸し個数信号をターミナル基板（枠用外部端子基板と盤用外部端子基板とを含む）１６０に出力する。なお、出力ポート３７２ｂの外側に、ドライバ回路が設置されているが、図５では記載省略されている。
【００６１】
また、払出制御用マイクロコンピュータ３７０は、出力ポート３７２ｃを介して、７セグメントＬＥＤによるエラー表示用ＬＥＤ３７４にエラー信号を出力する。さらに、出力ポート３７２ｂを介して、点灯／消灯を指示するための信号を賞球ＬＥＤ５１および球切れＬＥＤ５２に出力する。なお、払出制御基板３７の入力ポート３７２ｆには、エラー状態を解除するためのエラー解除スイッチ３７５からの検出信号が入力される。エラー解除スイッチ３７５は、ソフトウェアリセットによってエラー状態を解除するために用いられる。
【００６２】
さらに、払出制御用マイクロコンピュータ３７０からの払出モータ２８９への駆動信号は、出力ポート３７２ａおよび中継基板７２を介して球払出装置９７の払出機構部分における払出モータ２８９に伝えられる。なお、出力ポート３７２ａの外側に、ドライバ回路（モータ駆動回路）が設置されているが、図６では記載省略されている。
【００６３】
遊技機に隣接して設置されているカードユニット５０には、カードユニット制御用マイクロコンピュータが搭載されている。また、カードユニット５０には、使用可表示ランプ、連結台方向表示器、カード投入表示ランプおよびカード挿入口が設けられている。インタフェース基板（中継基板）６６には、打球供給皿３の近傍に設けられている度数表示ＬＥＤ６０、球貸し可ＬＥＤ６１、球貸しスイッチ６２および返却スイッチ６３が接続される。
【００６４】
インタフェース基板６６からカードユニット５０には、遊技者の操作に応じて、球貸しスイッチ６２が操作されたことを示す球貸しスイッチ信号および返却スイッチ６３が操作されたことを示す返却スイッチ信号が与えられる。また、カードユニット５０からインタフェース基板６６には、プリペイドカードの残高を示すカード残高表示信号および球貸し可表示信号が与えられる。カードユニット５０と払出制御基板３７の間では、接続信号（ＶＬ信号）、ユニット操作信号（ＢＲＤＹ信号）、球貸し要求信号（ＢＲＱ信号）、球貸し完了信号（ＥＸＳ信号）およびパチンコ機動作信号（ＰＲＤＹ信号）が入力ポート３７２ｆおよび出力ポート３７２ｄを介して送受信される。カードユニット５０と払出制御基板３７の間には、インタフェース基板６６が介在している。よって、接続信号（ＶＬ信号）等の信号は、図５に示すように、インタフェース基板６６を介してカードユニット５０と払出制御基板３７の間で送受信されることになる。
【００６５】
パチンコ遊技機１の電源が投入されると、払出制御基板３７に搭載されている払出制御用マイクロコンピュータ３７０は、カードユニット５０にＰＲＤＹ信号を出力する。また、カードユニット制御用マイクロコンピュータは、電源が投入されると、ＶＬ信号を出力する。払出制御用マイクロコンピュータ３７０は、ＶＬ信号の入力状態によってカードユニット５０の接続状態／未接続状態を判定する。カードユニット５０においてカードが受け付けられ、球貸しスイッチが操作され球貸しスイッチ信号が入力されると、カードユニット制御用マイクロコンピュータは、払出制御基板３７にＢＲＤＹ信号を出力する。この時点から所定の遅延時間が経過すると、カードユニット制御用マイクロコンピュータは、払出制御基板３７にＢＲＱ信号を出力する。
【００６６】
そして、払出制御用マイクロコンピュータ３７０は、カードユニット５０に対するＥＸＳ信号を立ち上げ、カードユニット５０からのＢＲＱ信号の立ち下がりを検出すると、払出モータ２８９を駆動し、所定個の貸し球を遊技者に払い出す。そして、払出が完了したら、払出制御用マイクロコンピュータ３７０は、カードユニット５０に対するＥＸＳ信号を立ち下げる。その後、カードユニット５０からのＢＲＤＹ信号がオン状態でないことを条件に、遊技制御手段から払出指令信号を受けると賞球払出制御を実行する。
【００６７】
カードユニット５０で用いられる電源電圧ＡＣ２４Ｖは払出制御基板３７から供給される。すなわち、カードユニット５０に対する電源基板９１０からの電力供給は、払出制御基板３７およびインタフェース基板６６を介して行われる。この例では、インタフェース基板６６内に配されているカードユニット５０に対するＡＣ２４Ｖの電源供給ラインに、カードユニット５０を保護するためのヒューズが設けられ、カードユニット５０に所定電圧以上の電圧が供給されることが防止される。
【００６８】
また、この実施の形態では、カードユニット５０が遊技機とは別体として遊技機に隣接して設置されている場合を例にするが、カードユニット５０は遊技機と一体化されていてもよい。また、コイン投入に応じてその金額に応じた遊技球が貸し出されるような場合でも本発明を適用できる。
【００６９】
図６は、中継基板７７、音／ランプ制御基板８０ｂおよび図柄制御基板８０ａの回路構成例を示すブロック図である。この実施の形態では、音／ランプ制御基板８０ｂは、音出力装置２７の音出力制御、各ランプ２５，２８ａ，２８ｂ，２８ｃの表示制御を行う。また、図柄制御基板８０ａは、可変表示装置９の表示制御を行う。また、この実施の形態では、「演出制御」とは、可変表示装置９の表示制御や、スピーカ２７の音出力制御、各ランプ２５，２８ａ，２８ｂ，２８ｃの表示制御を行うことによって、遊技演出などの演出を行うことをいう。また、演出制御手段は、可変表示装置９の表示制御を行う図柄制御用マイクロコンピュータ１００ａと、スピーカ２７の音出力制御、および各ランプ２５，２８ａ，２８ｂ，２８ｃの表示制御を行う音／ランプ制御用マイクロコンピュータ１００ｂとによって実現される。なお、この実施の形態では、音／ランプ制御用マイクロコンピュータ１００ｂと図柄制御用マイクロコンピュータ１００ａの両方またはいずれか一方を指して、演出制御手段ということがある。また、音／ランプ制御基板８０ｂおよび図柄制御基板８０ａを設けずに、演出制御に関して演出制御基板のみを設けてもよい。
【００７０】
音／ランプ制御基板８０ｂは、音／ランプ制御用ＣＰＵ１０１ｂおよびＲＡＭを含む音／ランプ制御用マイクロコンピュータ１００ｂを搭載している。なお、ＲＡＭは外付けであってもよい。音／ランプ制御基板８０ｂにおいて、音／ランプ制御用ＣＰＵ１０１ｂは、内蔵または外付けのＲＯＭ（図示せず）に格納されたプログラムに従って動作し、中継基板７７を介して入力される主基板３１からの取込信号（演出制御ＩＮＴ信号）に応じて、入力ドライバ１０２および入力ポート１０３を介して演出制御コマンドを受信する。
【００７１】
演出制御コマンドおよび演出制御ＩＮＴ信号は、音／ランプ制御基板８０ｂにおいて、まず、入力ドライバ１０２に入力する。入力ドライバ１０２は、中継基板７７から入力された信号を音／ランプ制御基板８０ｂの内部に向かう方向にしか通過させない（音／ランプ制御基板８０ｂの内部から中継基板７７への方向には信号を通過させない）信号方向規制手段としての単方向性回路でもある。
【００７２】
中継基板７７には、主基板３１から入力された信号を音／ランプ制御基板８０ｂに向かう方向にしか通過させない（音／ランプ制御基板８０ｂから中継基板７７への方向には信号を通過させない）信号方向規制手段としての単方向性回路７４が搭載されている。単方向性回路として、例えばダイオードやトランジスタが使用される。図６には、ダイオードが例示されている。また、単方向性回路は、各信号毎に設けられる。さらに、単方向性回路である出力ポート５７１を介して主基板３１から演出制御コマンドおよび演出制御ＩＮＴ信号が出力されるので、中継基板７７から主基板３１の内部に向かう信号が規制される。すなわち、中継基板７７からの信号は主基板３１の内部（遊技制御用マイクロコンピュータ５６０側）に入り込まない。なお、出力ポート５７１は、図４に示されたＩ／Ｏポート部５７の一部である。また、出力ポート５７１の外側（中継基板７７側）に、さらに、単方向性回路である信号ドライバ回路が設けられていてもよい。
【００７３】
さらに、音／ランプ制御用ＣＰＵ１０１ｂは、ランプドライバ３５２に対してランプを駆動する信号を出力する。ランプドライバ３５２は、ランプを駆動する信号を増幅して天枠ランプ２８ａ、左枠ランプ２８ｂ、右枠ランプ２８ｃなどの枠側に設けられている各ランプに供給する。また、枠側に設けられている装飾ランプ２５に供給する。
【００７４】
また、音／ランプ制御用ＣＰＵ１０１ｂは、音声合成用ＩＣ１７３に対して音番号データを出力する。音声合成用ＩＣ１７３は、音番号データに応じた音声や効果音を発生し増幅回路１７５に出力する。増幅回路１７５は、音声合成用ＩＣ１７３の出力レベルを、ボリューム１７６で設定されている音量に応じたレベルに増幅した音声信号をスピーカ２７に出力する。音声データＲＯＭ１７４には、音番号データに応じた制御データが格納されている。音番号データに応じた制御データは、所定期間（例えば飾り図柄の変動期間）における効果音または音声の出力態様を時系列的に示すデータの集まりである。
【００７５】
なお、ランプを駆動する信号および音番号データは、音／ランプ制御用ＣＰＵ１０１ｂとランプドライバ３５２および音声合成ＩＣ１７３との間で、双方向通信（信号受信側から送信側に応答信号を送信するような通信）によって伝達される。
【００７６】
また、音／ランプ制御用マイクロコンピュータ１００ｂは、演出制御コマンド（例えば、変動パターンコマンド）にもとづいて、可変表示装置９を用いて行う演出内容を決定する。例えば、音／ランプ制御用マイクロコンピュータ１００ｂは、可変表示装置９を用いて予告演出を行うか否かを決定する。また、例えば、音／ランプ制御用マイクロコンピュータ１００ｂは、可変表示装置９を用いて行う予告演出の種類を決定する。
【００７７】
なお、「予告演出」とは、大当りとなるまたはその可能性があることを事前（可変表示装置９において飾り図柄の停止図柄が導出表示される前に）に遊技者に報知するための演出をいう。例えば、変動中に異なった態様（速度や回転方向等）の変動を行ったりキャラクタ等を登場させたりすることにより大当りになる可能性があることを遊技者に報知する。
【００７８】
また、音／ランプ制御用マイクロコンピュータ１００ｂは、主基板３１からの演出制御コマンド（例えば、表示結果指定コマンド）を、入出力ポート１０４を介して図柄制御基板８０ａに転送（送信）する。また、音／ランプ制御用マイクロコンピュータ１００ｂは、決定した演出内容（予告演出を行うか否かや、予告演出の種類）を示す演出内容指定コマンドを生成する。また、音／ランプ制御用マイクロコンピュータ１００ｂは、生成した演出内容指定コマンドを、入出力ポート１０４を介して図柄制御基板８０ａに送信する。
【００７９】
なお、音／ランプ制御用マイクロコンピュータ１００ｂは、決定した演出内容（予告演出を行うか否かや、予告演出の種類）を、演出制御コマンド（変動パターンコマンドや表示結果指定コマンド）に付加してもよい。そして、音／ランプ制御用マイクロコンピュータ１００ｂは、演出内容を付加した演出制御コマンドを、入出力ポート１０４を介して図柄制御基板８０ａに送信してもよい。
【００８０】
図柄制御基板８０ａは、図柄制御用ＣＰＵ１０１ａおよびＲＡＭを含む図柄制御用マイクロコンピュータ１００ａを搭載している。なお、ＲＡＭは外付けであってもよい。図柄制御基板８０ａにおいて、図柄制御用ＣＰＵ１０１ａは、内蔵または外付けのＲＯＭ（図示せず）に格納されたプログラムに従って動作する。また、図柄制御用ＣＰＵ１０１ａは、音／ランプ制御用基板８０ｂから受信した演出制御コマンドにもとづいて、ＶＤＰ（ビデオディスプレイプロセッサ）１０９に、ＬＣＤを用いた可変表示装置９の表示制御を行わせる。
【００８１】
図柄制御用ＣＰＵ１０１ａは、受信した演出制御コマンドに従ってキャラクタＲＯＭ（図示せず）から必要なデータを読み出す。キャラクタＲＯＭは、可変表示装置９に表示される画像の中でも使用頻度の高いキャラクタ画像データ、具体的には、人物、文字、図形または記号等（飾り図柄を含む）をあらかじめ格納しておくためのものである。図柄制御用ＣＰＵ１０１ａは、キャラクタＲＯＭから読み出したデータをＶＤＰ１０９に出力する。ＶＤＰ１０９は、図柄制御用ＣＰＵ１０１ａから入力されたデータにもとづいて表示制御を実行する。
【００８２】
この実施の形態では、可変表示装置９の表示制御を行うＶＤＰ１０９が図柄制御基板８０ａに搭載されている。ＶＤＰ１０９は、図柄制御用マイクロコンピュータ１００ａとは独立したアドレス空間を有し、そこにＶＲＡＭをマッピングする。ＶＲＡＭは、ＶＤＰによって生成された画像データを展開するためのバッファメモリである。そして、ＶＤＰ１０９は、ＶＲＡＭ内の画像データを可変表示装置９に出力する。なお、可変表示装置の数に対応した数のＶＤＰを図柄制御基板８０ａに搭載するようにしてもよい。
【００８３】
図７は、主基板３１における回路構成および主基板３１から音／ランプ制御基板８０ｂに送信される演出制御コマンドの信号線を示すブロック図である。図７に示すように、この実施の形態では、主基板３１が搭載する遊技制御用マイクロコンピュータ５６０は、演出制御信号送信用の８本の信号線ＣＤ０〜ＣＤ７を用いて、演出制御コマンドを音／ランプ制御基板８０ｂに送信する。また、主基板３１と音／ランプ制御基板８０ｂとの間には、ストローブ信号を送受するための演出制御ＩＮＴ信号の信号線も配線されている。
【００８４】
主基板３１には、図７に示すように、始動口スイッチ１４ａからの配線が接続されている。また、主基板３１には、大入賞口である特別可変入賞球装置２０や、その他の入賞口への遊技球の入賞等を検出するための各種スイッチ２９ａ，３０ａ，３３ａ，３９ａからの配線も接続されている。さらに、主基板３１には、可変入賞球装置１５を開閉するソレノイド１６、特別可変入賞球装置２０を開閉するソレノイド２１および大入賞口内の経路を切り換えるためのソレノイド２１Ａへの配線が接続されている。
【００８５】
主基板３１は、遊技制御用マイクロコンピュータ５６０、入力ドライバ回路５８および出力回路５９を搭載する。遊技制御用マイクロコンピュータ５６０は、クロック回路５０１、システムリセット手段として機能するリセットコントローラ５０２、乱数回路５０３ａ，５０３ｂ、ゲーム制御用のプログラム等を記憶するＲＯＭ５４、ワークメモリとして使用されるＲＡＭ５５、プログラムに従って動作するＣＰＵ５６、ＣＰＵ５６に割込要求信号（タイマ割込による割込要求信号）を送出するＣＴＣ５０４、払出制御基板３７や音／ランプ制御基板８０ｂが備えるマイクロコンピュータと非同期シリアル通信を行うシリアル通信回路５０５およびＩ／Ｏポート部５７を内蔵する。
【００８６】
なお、この実施の形態では、シリアル通信回路５０５を内蔵するマイクロコンピュータを搭載した基板（例えば、主基板３１）とは異なる基板（例えば、払出制御基板３７や音／ランプ制御基板８０ｂ）のマイクロコンピュータとの通信にシリアル通信回路５０５を用いる場合を説明するが、シリアル通信回路５０５は、シリアル通信回路５０５を内蔵するマイクロコンピュータを搭載した基板が備える別のマイクロコンピュータとシリアル通信を行ってもよい。例えば、同じ構成の２つのマイクロコンピュータが同じ基板に搭載されている場合に、各マイクロコンピュータが内蔵するシリアル通信回路が相互にシリアル通信を行ってもよい。
【００８７】
クロック回路５０１は、システムクロック信号を２７（＝１２８）分周して生成した所定の周期の基準クロック信号ＣＬＫを、各乱数回路５０３ａ，５０３ｂに出力する。リセットコントローラ５０２は、ローレベルの信号が一定期間入力されたとき、ＣＰＵ５６および各乱数回路５０３ａ，５０３ｂに所定の初期化信号を出力して、遊技制御用マイクロコンピュータ５６０をシステムリセットする。
【００８８】
また、この実施の形態では、図７に示すように、遊技制御用マイクロコンピュータ５６０は、発生可能な乱数の値の範囲が異なる２つの乱数回路５０３ａ，５０３ｂを搭載する。乱数回路５０３ａは、１２ビットの疑似乱数を発生する乱数回路（以下、１２ビット乱数回路ともいう）である。１２ビット乱数回路５０３ａは、１２ビットで発生できる範囲（すなわち、０から４０９５までの範囲）の値の乱数を発生する機能を備える。また、乱数回路５０３ｂは、１６ビットの疑似乱数を発生する乱数回路（以下、１６ビット乱数回路ともいう）である。１６ビット乱数回路５０３ｂは、１６ビットで発生できる範囲（すなわち、０から６５５３５までの範囲）の値の乱数を発生する機能を備える。なお、この実施の形態では、遊技制御用マイクロコンピュータ５６０が２つの乱数回路を内蔵する場合を説明するが、遊技制御用マイクロコンピュータ５６０は、３以上の乱数回路を内蔵してもよい。また、この実施の形態では、１２ビット乱数回路５０３ａおよび１６ビット乱数回路５０３ｂを包括的に表現する場合、または、１２ビット乱数回路５０３ａと１６ビット乱数回路５０３ｂとのうちいずれかを指す場合に、乱数回路５０３という。
【００８９】
次に、乱数回路５０３の構成について説明する。図８は、乱数回路５０３の構成例を示すブロック図である。なお、この実施の形態において、１２ビット乱数回路５０３ａと１６ビット乱数回路５０３ｂとの基本的な構成は同じである。図８に示すように、乱数回路５０３は、カウンタ５２１、比較器５２２、カウント値順列変更回路５２３、クロック信号出力回路５２４、カウント値更新信号出力回路５２５、乱数値読取信号出力回路５２６、乱数更新方式選択信号出力回路５２７、セレクタ５２８、乱数回路起動信号出力回路５３０、乱数値記憶回路５３１、反転回路５３２、ラッチ信号生成回路５３３およびタイマ回路５３４とを含む。
【００９０】
この実施の形態では、乱数回路５０３は、複数種類の識別情報の可変表示の表示結果を特定の表示結果とするか否か（例えば、特別図柄表示装置８の表示図柄の組み合わせを大当り図柄の組み合わせとするか否か）を判定するための大当り判定用の乱数を発生する。そして、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６は、乱数回路５０３が発生した乱数にもとづいて特定の表示結果とすると判定すると、遊技状態を遊技者にとって有利な特定遊技状態（例えば、大当り遊技状態）に移行させる。
【００９１】
カウンタ５２１は、セレクタ５２８によって選択された所定の信号を入力し、セレクタ５２８から入力する信号に応答してカウント値Ｃを出力する。この場合、カウンタ５２１は、所定の初期値を入力し、カウント値Ｃを一定の規則に従って初期値から所定の最終値まで循環的に更新して出力する。また、カウンタ５２１は、カウント値Ｃを最終値まで更新すると、カウント値Ｃを最終値まで更新した旨を示す通知信号をＣＰＵ５６に出力する。この実施の形態では、カウンタ５２１から通知信号が出力されると、ＣＰＵ５６によって初期値が更新される。
【００９２】
この実施の形態において、カウンタ５２１は、セレクタ５２８から信号を入力するごとに（セレクタ５２８からの信号における立ち上がりエッヂが入力されるごとに）、カウント値Ｃを「０」から「４０９５」まで１ずつカウントアップする。また、カウンタ５２１は、カウント値Ｃを「４０９５」までカウントアップすると、カウント値Ｃを最終値まで更新した旨を示す通知信号をＣＰＵ５６に出力する。すると、ＣＰＵ５６は、カウンタ５２１から通知信号を入力し、初期値を更新する。そして、カウンタ５２１は、ＣＰＵ５６によって更新された初期値から「４０９５」まで、再びカウント値Ｃをカウントアップする。また、「４０９５」までカウントアップすると、カウンタ５２１は、再び「０」からカウントを開始する。そして、カウンタ５２１は、更新後の初期値の１つ前の値（最終値）までカウントアップすると、通知信号をＣＰＵ５６に出力する。なお、この実施の形態では、比較器５２２は、後述するように、全てのカウント値を入力すると通知信号をカウンタ５２１に出力する。この場合、カウンタ５２１は、比較器５２２から通知信号を入力すると、カウント値をリセットして「０」にする。
【００９３】
なお、比較器５２２は、入力したカウント値が乱数最大値設定レジスタ５３５に設定されている乱数最大値より大きいか否かを判断し、カウント値が乱数最大値より大きい（乱数最大値を超えた）と判断すると、通知信号をカウンタ５２１に出力してもよい。この場合、例えば、比較器５２２は、カウント値が乱数最大値を超えたと判断すると、クロック信号出力回路５２４が次に乱数発生用クロック信号ＳＩ１を出力する前に、通知信号をカウンタ５２１に出力する。例えば、乱数最大値設定レジスタ５３５に乱数最大値「２５６」が設定されている場合を考える。この場合、カウンタ５２１が「０」から「２５６」までカウントアップし、さらにカウント値「２５７」を出力すると、比較器５２２は、入力したカウント値「２５７」が乱数最大値「２５６」を超えたと判断し、カウンタ５２１に通知信号を出力する。比較器５２２から通知信号を入力すると、カウンタ５２１は、クロック信号出力回路５２４からの乱数発生用クロック信号ＳＩ１の入力を待つことなく、カウント値を「２５８」に更新し出力する。以上の処理を繰り返し実行することによって、比較器５２２は、カウント値「２５７」から「４０９５」まで入力している間、カウント値が乱数最大値を超えていると判断して、繰り返しカウンタ５２１に通知信号を出力する。そして、カウンタ５２１は、比較器５２２から通知信号を入力している間、クロック信号出力回路５２４からの乱数発生用クロック信号ＳＩ１の入力を待つことなく、カウント値を繰り返し更新し出力する。そのようにすることによって、クロック信号出力回路５２４が次に乱数発生用クロック信号ＳＩ１を出力するまでの間に、「２５７」から「４０９５」までカウント値を高速にカウントアップさせるように制御し、「２５７」から「４０９５」までの乱数値を読み飛ばす（乱数値記憶回路５３１に記憶させない）ように制御する。
【００９４】
カウント値順列変更回路５２３は、カウント値順列変更レジスタ（ＲＳＣ）５３６、更新規則選択レジスタ（ＲＲＣ）５４２および更新規則メモリ５４３を含む。カウント値順列変更レジスタ５３６は、カウンタ５２１がカウントアップするカウント値Ｃの更新順である順列（初期値から最終値までの並び順）を変更させるためのカウント値順列変更データ「０１ｈ」を格納する。カウント値順列変更回路５２３は、カウント値順列変更レジスタ５３６に数値順列変更データ「０１ｈ」が格納されているとき、カウンタ５２１がカウントアップして更新するカウント値Ｃの順列を、カウント値順列変更データ「０１ｈ」が格納されていないときとは異なる順列に変更する。この場合、カウント値順列変更回路５２３は、数値順列変更データ「０１ｈ」が格納されているとき、カウント値の順列の変更に用いる更新規則を切り換える。また、カウント値の順列の変更に用いる更新規則を切り換えた後に、カウンタ５２１がカウント値の更新を開始すると、カウント値順列変更レジスタ５３６のカウント値順列変更データは、ＣＰＵ５６によって、「０１ｈ」から初期値である「０（＝００ｈ）」に戻される（クリアされる）。
【００９５】
なお、ＣＰＵ５６によってカウント値順列変更データをクリアするのでなく、乱数回路５０３側でカウント値順列変更データをクリアするようにしてもよい。例えば、カウント値順列変更レジスタ５３６にカウント値順列変更データ「０１ｈ」が書き込まれたことにもとづいて、更新規則選択レジスタ（ＲＲＣ）５４２にレジスタ値が設定されると、カウント値順列変更回路５２３は、カウント値順列変更レジスタ５３６のレジスタ値をクリアするようにしてもよい。
【００９６】
図９は、更新規則選択レジスタ５４２の例を示す説明図である。更新規則選択レジスタ５４２は、カウンタ５２１が出力するカウント値の並び順の並べ替え（順列の変更）に用いる更新規則を設定するレジスタである。この実施の形態では、更新規則選択レジスタ５４２にレジスタ値が設定されることによって、カウンタ５２１が出力するカウント値の順列の変更に用いる更新規則が設定される。図９に示すように、更新規則選択レジスタ５４２は、８ビットレジスタであり、初期値が「０（＝００ｈ）」に設定されている。また、更新規則選択レジスタ５４２は、ビット０〜ビット３が書込および読出ともに可能な状態に構成されている。また、更新規則選択レジスタ５４２は、ビット４〜ビット７が書込および読出ともに不可能な状態に構成されている。したがって、更新規則選択レジスタ５４２のビット４〜ビット７に値を書き込む制御を行っても無効とされ、ビット４〜ビット７から読み出す値は全て「０（＝００００ｂ）」である。
【００９７】
更新規則選択レジスタ５４２の値（レジスタ値）は、カウント値順列変更レジスタ５３６にカウント値順列変更データ「０１ｈ」が書き込まれたことに応じて、レジスタ値が「０（＝００ｈ）」から「１５（＝０Ｆｈ）」まで循環的に更新される。すなわち、カウント値順列変更レジスタ５３６にカウント値順列データ「０１ｈ」が書き込まれるごとに、更新規則選択レジスタ５４２のレジスタ値は、「０」から「１」ずつ加算され、「１５」になると再び「０」に戻る。
【００９８】
図１０は、更新規則メモリ５４３の例を示す説明図である。図１０に示すように、更新規則メモリ５４３は、更新規則選択レジスタ５４２の値（レジスタ値）と、カウント値の更新規則とを対応付けて格納している。図１０に示す例では、例えば、更新規則選択レジスタ５４２にレジスタ値１が設定されている場合、更新規則Ｂを用いて、カウンタ５２１が出力するカウント値の順列が変更されることが分かる。なお、図１０において、更新規則Ａは、カウンタ５２１がカウント値Ｃを更新する規則と同一の更新規則であり、レジスタ値「０」に対応づけて更新規則メモリ５４３に格納される。また、更新規則メモリ５４３には、カウンタ５２１がカウント値Ｃを更新する更新規則とは異なる更新規則Ｂ〜Ｐが、レジスタ値「１」〜「１５」に対応づけて格納される。
【００９９】
カウント値順列変更回路５２３は、カウント値順列変更レジスタ５３６にカウント値順列変更データ「０１ｈ」が書き込まれている場合、まず、カウンタ５２１からカウント値の最終値「４０９５」が最初に入力されるまで、現在設定されている更新規則に従って、そのままカウント値を出力する。そして、カウント値順列変更回路５２３は、カウンタ５２１からカウント値の最終値「４０９５」を入力すると、カウント値の更新規則を変更する。なお、ＣＰＵ５６によって初期値が変更されている場合には、カウント値順列変更回路５２３は、カウンタ５２１から変更後の最終値（初期値の１つ前の値）まで入力すると、カウント値の更新規則を変更することになる。
【０１００】
カウント値順列変更回路５２３は、更新規則選択レジスタ５４２のレジスタ値に対応する更新規則を更新規則メモリ５４３から選択し、カウント値の順列の変更に用いる更新規則として設定する。また、カウント値順列変更回路５２３は、カウンタ５２１によって再び初期値「０」から順にカウント値の更新が開始されると、設定した更新規則に従って、カウント値の初期値から最終値までの順列を変更する。なお、ＣＰＵ５６によって初期値が変更されている場合には、カウント値順列変更回路５２３は、カウンタ５２１によって変更後の初期値から順にカウント値の更新が開始されると、設定した更新規則に従って、カウント値の初期値から最終値までの順列を変更することになる。そして、カウント値順列変更回路５２３は、変更した順列に従ってカウント値を出力する。
【０１０１】
なお、この実施の形態では、後述する乱数最大値設定レジスタ５３５に乱数最大値が設定されていることによって、発生させる乱数の最大値が制限されている場合、カウント値順列変更回路５２３は、カウント値Ｃを乱数最大値以下に制限して順列を変更して出力する。例えば、乱数最大値設定レジスタ５３５に乱数最大値「２５６」が設定されているものとし、カウント値順列変更回路５２３が、更新規則Ａから更新規則Ｂに変更して、カウント値の順列を変更するものとする。この場合、カウント値順列変更回路５２３は、比較器５２２の乱数最大値設定レジスタ５３５に設定されている乱数最大値「２５６」にもとづいて、更新規則Ｂに従って、カウント値の順列を「２５６→２５５→・・・→０」に変更して出力する。
【０１０２】
以上のように、カウント値順列変更回路５２３は、カウント値順列変更レジスタ５３６にカウント値順列変更データ「０１ｈ」が書き込まれている場合、更新規則を切り替えて用いることによって、カウント値Ｃの順列を変更して出力する。そのため、乱数回路５０３が生成する乱数のランダム性を向上させることができる。
【０１０３】
図１１は、カウント値順列変更回路５２３が、カウンタ５２１が出力するカウント値の順列を変更する場合の例を示す説明図である。図１１に示すように、ＣＰＵ５６は、所定のタイミングで、カウント値順列変更データ「０１ｈ」をカウント値順列変更レジスタ５３６に書き込む。すると、更新規則選択レジスタ５４２のレジスタ値が１加算される。例えば、更新規則選択レジスタ５４２のレジスタ値が「０」から「１」に更新される。レジスタ値が更新されると、カウント値順列変更回路５２３は、カウンタ５２１から最初にカウント値の最終値「４０９５」が入力されるまで、更新前のレジスタ値「０」に対応する「更新規則Ａ」に従ってカウント値を更新して出力する。このとき、カウント値順列変更回路５２３は、更新規則Ａに従って、「０→１→・・・→４０９５」の順列でカウント値を出力する。
【０１０４】
カウンタ５２１からカウント値の最終値「４０９５」が入力されると、カウント値順列変更回路５２３は、更新規則メモリ５４３から、更新後のレジスタ値「１」に対応する「更新規則Ｂ」を選択して設定する。カウント値順列変更回路５２３は、カウンタ５２１から再び初期値「０」以降のカウント値の入力を開始すると、選択設定した「更新規則Ｂ」に従って、カウント値の順列を変更して出力する。本例では、カウント値順列変更回路５２３は、順列を「０→１→・・・→４０９５」から「４０９５→４０９４→・・・→０」に変更して、カウント値を出力する。
【０１０５】
その後、カウント値順列変更レジスタ５３６は、後述するように、カウント値順列変更回路５２３が切り替え後の更新規則に従ってカウント値の更新動作を開始したことに応じてリセットされる。そして、次にカウント値順列変更データ「０１ｈ」がカウント値順列変更レジスタ５３６に書き込まれるまで、カウント値順列変更回路５２３は、「４０９５→４０９４→・・・→０」のままの順列で、カウント値を出力し続ける。
【０１０６】
ＣＰＵ５６によってカウント値順列変更データ「０１ｈ」がカウント値順列変更レジスタ５３６に再度書き込まれると、カウント値順列変更レジスタ５３６のレジスタ値が「１」から「２」に更新される。そして、カウンタ５２１からカウント値の最終値「４０９５」を入力すると、カウント値順列変更回路５２３は、更新規則メモリ５４３から、レジスタ値「２」に対応する「更新規則Ｃ」を選択して設定する。カウント値順列変更回路５２３は、カウンタ５２１から再び初期値「０」以降のカウント値の入力を開始すると、選択設定した「更新規則Ｃ」に従って、カウント値の順列を更新して出力する。本例では、カウント値順列変更回路５２３は、順列を「４０９５→４０９４→・・・→０」から「１→３→…→４０９５→０→・・・→４０９４」に変更して、カウント値を出力する。
【０１０７】
以上のように、カウント値順列変更レジスタ５３６をリセットした後、カウント値順列データ「０１ｈ」をカウント値順列変更レジスタ５３６に再度書き込むことによって、カウント値の順列をさらに変更することができる。
【０１０８】
図１２は、カウント値順列変更レジスタ５３６の例を示す説明図である。カウント値順列変更レジスタ５３６は、カウンタ５２１がカウントアップするカウント値の順列を変更させるためのカウント値順列変更データ「０１ｈ」を設定するレジスタである。図１２に示すように、カウント値順列変更レジスタ５３６は、読出可能な８ビットレジスタであり、初期値が「０（＝００ｈ）」に設定されている。また、カウント値順列変更レジスタ５３６は、ビット０だけが書込および読出ともに可能な状態に構成されている。すなわち、カウント値順列変更レジスタ５３６は、ビット１〜ビット７が書込および読出ともに不可能な状態に構成されている。したがって、カウント値順列変更レジスタ５３６のビット１〜ビット７に値を書き込む制御を行っても無効とされ、ビット１〜ビット７から読み出す値は全て「０（＝０００００００ｂ）」である。
【０１０９】
なお、カウント値順列変更レジスタ５３６の値は、カウント値順列変更回路５２３が切り替え後の更新規則に従ってカウント値の更新動作を開始したことに応じて、ＣＰＵ５６によってリセットされる。この場合、ＣＰＵ５６は、カウント値順列変更レジスタ５３６に書き込まれている値を、カウント値順列変更データ「０１ｈ」から初期値である「０（＝００ｈ）」に戻す。
【０１１０】
比較器５２２は、ランダムＲの最大値（乱数最大値）を指定するための乱数最大値設定データを格納する乱数最大値設定レジスタ（ＲＭＸ）５３５を備える。比較器５２２は、乱数最大値設定レジスタ５３５に格納されている乱数最大値設定データに示される乱数最大値に従って、カウンタ５２１が更新するカウント値の更新範囲を制限する。この実施の形態では、比較器５２２は、カウンタ５２１から入力するカウント値と乱数最大値設定レジスタ５３５に格納されている乱数最大値設定データ（例えば「００ＦＦｈ」）に示される乱数最大値（例えば「２５６」）とを比較する。そして、比較器５２２は、入力したカウント値が乱数最大値以下であると判断すると、入力したカウント値を乱数値記憶回路５３１に出力する。
【０１１１】
この実施の形態では、比較器５２２は、具体的には、以下のような制御を行う。比較器５２２は、カウント値の初期値更新の際に、ＣＰＵ５６からカウント値の初期値をもらい、初期値から乱数最大値までのカウント値の個数を求める。例えば、カウント値の初期値が「１５７」であり乱数最大値が「２５６」である場合、比較器５２２は、初期値から乱数最大値までのカウント値の個数を「１００個」と求める。また、比較器５２２は、カウント値順列変更回路５２３からカウント値を入力するに従って、初期値からカウント値をいくつ入力したかをカウントアップする。初期値からカウント値を入力した回数が「１００回」に達すると、比較器５２２は、初期値「１５７」から最大値「２５６」までの全てのカウント値を入力したと判断する。そして、比較器５２２は、全てのカウント値を入力した旨の通知信号をカウンタ５２１に出力する。カウント値の個数で判断することによって、カウント値順列変更回路５２３によってカウント値の順列が変更されている場合であっても、比較器５２２は、カウント値の更新範囲を乱数最大値以下に制限し、全てのカウント値を入力した際にカウンタ５２１に通知信号を出力することができる。
【０１１２】
カウント値の更新範囲を比較器５２２が制限する動作について説明する。なお、本例では、カウント値順列変更回路５２３が更新規則Ａを選択し、乱数最大値設定レジスタ５３５に乱数最大値「２５６」が設定されている場合を説明する。
【０１１３】
カウンタ５２１が「０」から「２５６」までカウント値を更新している間、カウント値順列変更回路５２３は、乱数最大値設定レジスタ５３５に設定されている乱数最大値「２５６」にもとづいて、更新規則Ａに従って、「０」から「２５６」までのカウント値をそのまま比較器５２２に出力する。この場合、カウント値順列変更回路５２３は、比較器５２２から乱数最大値「２５６」の値をもらい、カウンタ５２１から入力するカウント値が乱数最大値より大きいか否かを判断し、更新規則が変更されているとき（例えば、更新規則Ｂ）であっても、乱数最大値設定レジスタ５３５に設定されている乱数最大値「２５６」にもとづいて、「２５７」から「４０９５」までのカウント値を比較器５２２に出力しない。カウンタ５２１は、例えば、初期値が「０」と設定されているときに、最終値「２５６」までカウント値を更新すると、通知信号をＣＰＵ５６に出力する。通知信号を出力すると、ＣＰＵ５６によって、カウンタ５２１のカウント値の初期値が変更される。本例では、ＣＰＵ５６によって、初期値が「５０」に変更されるものとする。
【０１１４】
なお、カウント値が乱数最大値「２５６」より大きいか否かをカウント値順列変更回路５２３が判断するのでなく、比較器５２２が判定するようにしてもよい。この場合、例えば、比較器５２２は、カウント値が乱数最大値設定レジスタ５３５に設定されている乱数最大値より大きいか否かを判断し、カウント値が乱数最大値より大きいと判断すると、通知信号をカウンタ５２１に出力する。そして、比較器５２２は、カウント値が乱数最大値を超えたと判断すると、クロック信号出力回路５２４が次に乱数発生用クロック信号ＳＩ１を出力する前に、通知信号をカウンタ５２１に出力する。そのようにすることによって、比較器５２２は、クロック信号出力回路５２４が次に乱数発生用クロック信号ＳＩ１を出力するまでの間に、「２５７」から「４０９５」までカウント値を高速にカウントアップさせるようにカウンタ５２１を制御する。そのようにすることによって、カウント値順列変更回路５２３からの値が「２５７」未満のときだけカウント値を乱数値記憶回路５３１に出力するようにし、カウント値順列変更回路５２３からの値が「２５７」以上のときにはカウント値を高速で更新させるようにすることができる。
【０１１５】
更新規則Ａにもとづいて、カウント値順列変更回路５２３から、「０」から「２５５」までカウント値を入力している間、比較器５２２は、入力するカウント値が乱数最大値「２５６」以下であるので、入力したカウント値をそのまま乱数値記憶回路５３１に出力する。次に、カウント値順列変更回路５２３から入力するカウント値が「２５６」に達すると、比較器５２２は、入力したカウント値を乱数値記憶回路５３１に出力するとともに、初期値から最大値までの全てのカウント値を入力した旨の通知信号をカウンタ５２１に出力する。具体的には、比較器５２２は、カウント値の初期値変更の際に、ＣＰＵ５６からカウント値の初期値（本例では、「０」）をもらい、初期値「０」から乱数最大値（本例では、「２５６」）までのカウント値の個数（本例では、「２５７個」）を求める。そして、カウント値順列変更回路５２３から入力したカウント値の個数が２５７個に達すると、全てのカウント値を入力した旨の通知信号をカウンタ５２１に出力する。なお、本例では、ＣＰＵ５６によって初期値が「５０」に変更されるので、カウンタ５２１は、比較器５２２から通知信号を入力しても、カウント値をリセットするとなく、変更後の初期値「５０」からカウント値の更新を行う。
【０１１６】
カウンタ５２１が変更後の初期値「５０」から「２５６」までカウント値を更新している間、カウント値順列変更回路５２３は、乱数最大値設定レジスタ５３５に設定されている乱数最大値「２５６」にもとづいて、更新規則Ａに従って、「５０」から「２５６」までのカウント値をそのまま比較器５２２に出力する。また、カウント値順列変更回路５２３は、乱数最大値設定レジスタ５３５に設定されている乱数最大値「２５６」にもとづいて、「２５７」から「４０９５」までのカウント値を比較器５２２に出力せず、カウンタ５２１の更新するカウント値が１周したとき（２５７回更新したとき）に、カウント値順列変更レジスタ５３６にカウント値順列変更データが書き込まれた場合には、カウント値順列変更回路５２３は、カウント値の順列を変更して出力する。例えば、更新規則が更新規則Ｂに変更された場合、カウント値順列変更回路５２３は、カウント値の順列を「２５６→２５５→・・・→５０」に変更して出力する。
【０１１７】
カウント値順列変更回路５２３から、「２５６」から「５０」までカウント値を入力している間、比較器５２２は、入力したカウント値をそのまま乱数値記憶回路５３１に出力する。次に、カウント値順列変更回路５２３から入力するカウント値が「５０」に達すると、比較器５２２は、入力したカウント値を乱数値記憶回路５３１に出力するとともに、初期値から最大値までの全てのカウント値を入力した旨の通知信号をカウンタ５２１に出力する。具体的には、比較器５２２は、カウント値の初期値変更の際に、ＣＰＵ５６からカウント値の初期値（本例では、「５０」）をもらい、初期値「５０」から乱数最大値（本例では、「２５６」）までのカウント値の個数（本例では、「２０７個」）を求める。そして、カウント値順列変更回路５２３から入力したカウント値の個数が２０７個に達すると、全てのカウント値を入力した旨の通知信号をカウンタ５２１に出力する。
【０１１８】
なお、カウント値順列変更回路５２３がカウント値の順列を変更した場合であっても、比較器５２２は、カウント値の個数が２０７個に達すると、通知信号をカウンタ５２１に出力する。そのようにすることによって、カウント値の順列が変更された場合であっても、初期値「５０」から最大値「２５６」までの全てのカウント値を入力したことにもとづいて、通知信号をカウンタ５２１に出力できる。
【０１１９】
比較器５２２から通知信号を入力すると、カウンタ５２１は、カウント値の初期値をリセットし「０」に戻す。そして、カウンタ５２１は、「０」からカウント値の更新を行う。カウンタ５２１の値が「０」から再び更新がされると、カウンタ５２１からのカウント値にもとづいて、カウント値順列変更回路５２３は「４９」〜「０」までのカウント値を比較器５２２に出力し、比較器５２２はカウント値順列変更回路５２３からのカウント値の入力にもとづいて乱数値記憶回路５３１にカウント値を出力する。そして、カウンタ５２１は、最終値（本例では、「４９」）までカウント値を更新すると、通知信号をＣＰＵ５６に出力する。通知信号を出力すると、ＣＰＵ５６によって、カウンタ５２１のカウント値の初期値が再び変更される。
【０１２０】
以上のような動作を繰り返すことにより、比較器５２２は、カウンタ５２１に、「０」から乱数最大値「２５６」まで連続的にカウント値をカウントアップさせ、「０」から「２５６」までの値を乱数値記憶回路５３１にランダムＲ（乱数値）として記憶させる。すなわち、比較器５２２は、カウント値の更新範囲を乱数最大値「２５６」以下に制限して、カウンタ５２１にカウント値を更新させる。
【０１２１】
図１３は、乱数最大値設定レジスタ５３５の例を示す説明図である。図１３（ａ）は、１２ビット乱数回路５０３ａが搭載する乱数最大値設定レジスタ５３５の例を示す。また、図１３（ｂ）は、１６ビット乱数回路５０３ｂが搭載する乱数最大値設定レジスタ５３５の例を示す。まず、１２ビット乱数回路５０３ａが搭載する乱数最大値設定レジスタ５３５について説明する。図１３（ａ）に示すように、１２ビット乱数回路５０３ａにおいて、乱数最大値設定レジスタ５３５は、１６ビットレジスタであり、初期値が「４０９５（＝０ＦＦＦｈ）」に設定されている。乱数最大値設定レジスタ５３５は、ビット０〜ビット１１が書込および読出ともに可能な状態に構成されている。また、乱数最大値設定レジスタ５３５は、ビット１２〜ビット１５が書込および読出ともに不可能な状態に構成されている。したがって、１２ビット乱数回路５０３ａにおいて、乱数最大値設定レジスタ５３５のビット１２〜ビット１５に値を書き込む制御を行っても無効とされ、ビット１２〜ビット１５から読み出す値は全て「０（＝００００ｂ）」である。
【０１２２】
また、乱数最大値設定レジスタ５３５に設定される乱数最大値は、所定の下限値が定められている。この実施の形態では、乱数最大値設定レジスタ５３５に下限値「２５６」より小さい値を指定する乱数最大値設定データ「００００ｈ」〜「００ＦＥｈ」が書き込まれた場合、ＣＰＵ５６は、乱数最大値設定レジスタ５３５に、初期値「４０９５」を指定する乱数最大値設定データ「０ＦＦＦｈ」を設定しなおす。すなわち、乱数最大値設定レジスタ５３５に設定可能な乱数最大値は「２５６」から「４０９５」までであり、ＣＰＵ５６は、下限値「２５６」より小さい値が設定されていると判断すると、乱数最大値を所定値「４０９５」に設定しなおす。なお、ＣＰＵ５６は、リセットコントローラ５０２によって遊技制御用マイクロコンピュータ５６０がシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ５３５を書込不可能に制御する。なお、ＣＰＵ５６により書込不可能に制御するのでなく、乱数最大値設定レジスタ５３５は、データが書き込まれた後にリセット信号を入力するまで書込不可能となるように形成されていてもよい。
【０１２３】
次に、１６ビット乱数回路５０３ｂが搭載する乱数最大値設定レジスタ５３５について説明する。図１３（ｂ）に示すように、１６ビット乱数回路５０３ｂにおいて、乱数最大値設定レジスタ５３５は、１６ビットレジスタであり、初期値が「６５５３５（＝ＦＦＦＦｈ）」に設定されている。また、１６ビット乱数回路５０３ｂにおいて、乱数最大値設定レジスタ５３５は、ビット０〜ビット１５の全てのビットが書込および読出ともに可能な状態に構成されている。
【０１２４】
また、乱数最大値設定レジスタ５３５に下限値「５１２」より小さい値を指定する乱数最大値設定データ「００００ｈ」〜「００ＦＥｈ」が書き込まれた場合、ＣＰＵ５６は、乱数最大値設定レジスタ５３５に、初期値「６５５３５」を指定する乱数最大値設定データ「ＦＦＦＦｈ」を設定しなおす。すなわち、乱数最大値設定レジスタ５３５に設定可能な乱数最大値は「５１２」から「６５５３５」までであり、ＣＰＵ５６は、下限値「５１２」より小さい値が設定されていると判断すると、乱数最大値を所定値「６５５３５」に設定しなおす。なお、ＣＰＵ５６は、リセットコントローラ５０２によって遊技制御用マイクロコンピュータ５６０がシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ５３５を書込不可能に制御する。この場合、ＣＰＵ５６により書込不可能に制御するのでなく、乱数最大値設定レジスタ５３５は、データが書き込まれた後にリセット信号を入力するまで書込不可能となるように形成されていてもよい。
【０１２５】
クロック信号出力回路５２４は、セレクタ５２８および反転回路５３２に出力するクロック信号の周期（すなわち、カウント値の更新周期）を指定するための周期設定データを格納する周期設定レジスタ（ＲＰＳ）５３７を備える。クロック信号出力回路５２４は、周期設定レジスタ５３７に格納されている周期設定データに基づいて、遊技制御用マイクロコンピュータ５６０が搭載するクロック回路５０１から入力する基準クロック信号ＣＬＫを分周して、乱数回路５０３内部で乱数値の生成に用いるクロック信号（乱数発生用クロック信号ＳＩ１）を生成する。そのようにすることによって、クロック信号出力回路５２４は、クロック信号を所定回数入力したことを条件に、カウント値Ｃを更新させるための乱数発生用クロック信号ＳＩ１をカウンタ５２１に出力するように動作する。なお、周期設定データとは、クロック回路５０１から入力した基準クロック信号ＣＬＫを何分周させるかを設定するためのデータである。また、クロック出力回路５２４は、生成した乱数発生用クロック信号ＳＩ１をセレクタ５２８および反転回路５３２に出力する。例えば、周期設定レジスタ５３７に周期設定データ「０Ｆｈ（＝１６）」が書き込まれている場合、クロック信号出力回路５２４は、クロック回路５０１から入力する基準クロック信号ＣＬＫを１６分周して乱数発生用クロック信号ＳＩ１を生成する。この場合、クロック信号出力回路５２４が生成する乱数発生用クロック信号ＳＩ１の周期は、「システムクロック信号の周期×１２８×１６」となる。
【０１２６】
図１４は、周期設定レジスタ５３７の例を示す説明図である。図１４に示すように、周期設定レジスタ５３７は、８ビットレジスタであり、初期値が「２５６（＝ＦＦｈ）」に設定されている。また、周期設定レジスタ５３７は、書込および読出ともに可能な状態に構成されている。
【０１２７】
また、周期設定レジスタ５３７に設定される周期設定データの値は、所定の下限値が定められている。この実施の形態では、周期設定レジスタ５３７に下限値「システムクロック信号の周期×１２８×７」より小さい値を指定する周期設定データ「００ｈ〜０６ｈ」が書き込まれた場合、ＣＰＵ５６は、周期設定レジスタ５３７に下限値「システムクロック信号の周期×１２８×７」を指定する周期設定データ「０７ｈ」を設定しなおす。すなわち、周期設定レジスタ５３７に設定可能な周期は「システムクロック信号の周期×１２８×７」から「システムクロック信号の周期×１２８×２５６」までであり、ＣＰＵ５６は、下限値より小さい値が設定されていると判断すると、周期設定データを設定しなおす。なお、ＣＰＵ５６は、リセットコントローラ５０２によって遊技制御用マイクロコンピュータ５６０がシステムリセットされるまで、周期設定データが書き込まれた周期設定レジスタ５３７を書込不可能に制御する。なお、ＣＰＵ５６により書込不可能に制御するのでなく、周期設定レジスタ５３７は、データが書き込まれた後にリセット信号を入力するまで書込不可能となるように形成されていてもよい。
【０１２８】
なお、周期設定レジスタ５３７に下限値としての周期設定データを設定することなく、設定された周期設定データに基づいて、例えばクロック信号出力回路５２４が基準クロック信号ＣＬＫをそのままカウンタ５２１および反転回路５３２に出力するようにしてもよい。この場合、ＣＰＵ５６は、周期設定レジスタ５３７に設定される周期設定データの値を下限値と比較して設定しなおす処理を行う必要がなくなる。また、カウンタ５２１は、クロック信号出力回路５２４から基準クロック信号ＣＬＫを入力する毎にカウント値Ｃを更新することになる。
【０１２９】
カウント値更新信号出力回路５２５は、カウント値更新データ「０１ｈ」を格納するカウント値更新レジスタ（ＲＧＮ）５３８を備える。カウント値更新データとは、カウント値の更新を要求するためのデータである。カウント値更新信号出力回路５２５は、カウント値更新レジスタ５３８にカウント値更新データ「０１ｈ」が書き込まれたことに応じて、カウント値更新信号ＳＩ３をセレクタ５２８に出力する。
【０１３０】
図１５は、カウント値更新レジスタ５３８の例を示す説明図である。図１５に示すように、カウント値更新レジスタ５３８は、読出不能な８ビットレジスタであり、ビット０のみが書込可能な状態に構成されている。したがって、カウント値更新レジスタ５３８のビット１〜ビット７に値を書き込む制御を行っても無効とされる。
【０１３１】
乱数値読取信号出力回路５２６は、乱数値取込データ「０１ｈ」を格納する乱数値取込レジスタ（ＲＬＴ）５３９を備える。乱数値取込データとは、乱数値記憶回路５３１へのカウント値の取込を要求するためのデータである。乱数値読取信号出力回路５２６は、乱数値取込レジスタ５３９に乱数値取込データ「０１ｈ」が書き込まれたことに応じて、乱数値の読み取りを要求するための乱数値読取信号をラッチ信号生成回路５３３に出力する。
【０１３２】
図１６は、乱数値取込レジスタ５３９の例を示す説明図である。図１６に示すように、乱数値取込レジスタ５３９は、読出不能な８ビットレジスタである。また、乱数値取込レジスタ５３９は、ビット０だけが書込可能な状態に構成されている。すなわち、乱数値取込レジスタ５３９のビット１〜ビット７に値を書き込む制御を行っても無効とされる。
【０１３３】
乱数更新方式選択信号出力回路５２７は、乱数更新方式選択データを格納する乱数更新方式選択レジスタ（ＲＴＳ）５４０を備える。乱数更新方式選択データとは、ランダムＲの値を更新する方式である各乱数更新方式のうち、いずれかの乱数更新方式を指定するためのデータである。乱数更新方式選択信号出力回路５２７は、乱数更新方式選択レジスタ５４０に乱数更新方式選択データが書き込まれたことに応じて、書き込まれた乱数更新方式選択データにより指定される乱数更新方式に対応する乱数更新方式選択信号を、セレクタ５２８およびラッチ信号生成回路５３３に出力する。
【０１３４】
図１７（Ａ）は、乱数更新方式選択レジスタ５４０の例を示す説明図である。図１７（Ａ）に示すように、乱数更新方式選択レジスタ５４０は、８ビットレジスタであり、初期値が「００ｈ」に設定されている。また、乱数更新方式選択レジスタ５４０は、ビット０〜ビット１が書込および読出ともに可能な状態に構成されている。また、乱数更新方式選択レジスタ５４０は、ビット２〜ビット７が書込および読出ともに不可能な状態に構成されている。したがって、乱数更新方式選択レジスタ５４０のビット２〜ビット７に値を書き込む制御を行っても無効とされ、ビット２〜ビット７から読み出す値は全て「０（＝００００００ｂ）」である。
【０１３５】
図１７（Ｂ）は、乱数更新方式選択レジスタ５４０に書き込まれる乱数更新方式選択データの一例の説明図である。図１７（Ｂ）に示すように、乱数更新方式選択データは、２ビットのデータから構成される。乱数更新方式選択データ「０１ｂ」は、第１の乱数更新方式を指定するために用いられる。また、乱数更新方式選択データ「１０ｂ」は、第２の乱数更新方式を指定するために用いられる。なお、この実施の形態では、第１の乱数更新方式とは、カウント値更新信号出力回路５２５からカウント値更新信号ＳＩ３が出力されたことをトリガとして、カウント値を更新する方式である。また、第２の乱数更新方式とは、クロック信号出力回路５２４から乱数発生用クロック信号ＳＩ１が出力されたことをトリガとして、カウント値を更新する方式である。また、乱数更新方式選択データ「０１ｂ」または「１０ｂ」が乱数更新方式選択レジスタ５４０に書き込まれた場合、乱数回路５０３は起動可能な状態となる。一方、乱数更新方式選択データ「００ｂ」または「１１ｂ」が乱数更新方式選択レジスタ５４０に書き込まれた場合、乱数回路５０３は起動不能な状態となる。
【０１３６】
セレクタ５２８は、カウント値更新信号出力回路５２５から出力されるカウント値更新信号ＳＩ３、またはクロック信号出力回路５２４から出力される乱数発生用クロック信号ＳＩ１のいずれかを選択してカウンタ５２１に出力する。セレクタ５２８は、乱数更新方式選択信号出力回路５２７から第１の乱数更新方式に対応する乱数更新方式選択信号（第１の乱数更新方式選択信号ともいう）が入力されると、カウント値更新信号出力回路５２５から出力されるカウント値更新信号ＳＩ３を選択してカウンタ５２１に出力する。一方、セレクタ５２８は、乱数更新方式選択信号出力回路５２７から第２の乱数更新方式に対応する乱数更新方式選択信号（第２の乱数更新方式選択信号ともいう）が入力されると、クロック信号出力回路５２４から出力される乱数発生用クロック信号ＳＩ１を選択してカウンタ５２１に出力する。なお、セレクタ５２８は、乱数更新方式選択信号出力回路５２７から第１の更新方式選択信号が入力されると、カウント値更新信号出力回路５２５から出力されるカウント値更新信号ＳＩ３に応じて、クロック信号出力回路５２４から出力される乱数発生用クロック信号ＳＩ１に同期した数値データの更新を指示する数値更新指示信号を、カウンタ５２１に出力してもよい。
【０１３７】
乱数回路起動信号出力回路５３０は、乱数回路起動データ「８０ｈ」を格納する乱数回路起動レジスタ（ＲＳＴ）５４１を備える。乱数回路起動データとは、乱数回路５０３の起動を要求するためのデータである。乱数回路起動信号出力回路５３０は、乱数回路起動レジスタ５４１に乱数回路起動データ「８０ｈ」が書き込まれると、所定の乱数回路起動信号をカウンタ５２１およびクロック信号出力回路５３７に出力し、カウンタ５２１およびクロック信号出力回路５２４をオンにさせる。そして、カウンタ５２１によるカウント値の更新動作とクロック信号出力回路５２４による内部クロック信号の出力動作とを開始させることによって、乱数回路５０３を起動させる。
【０１３８】
図１８は、乱数回路起動レジスタ５４１の例を示す説明図である。図１８に示すように、乱数回路起動レジスタ５４１は、８ビットレジスタであり、初期値が「００ｈ」に設定されている。乱数回路起動レジスタ５４１は、ビット７だけが書込および読出ともに可能な状態に構成されている。また、乱数回路起動レジスタ５４１は、ビット０〜ビット６が書込および読出ともに不可能な状態に構成されている。すなわち、乱数回路起動レジスタ５４１のビット０〜ビット６に値を書き込む制御を行っても無効とされ、ビット０〜ビット６から読み出す値は全て「０（＝００００００ｂ）」である。
【０１３９】
乱数値記憶回路５３１は、例えば１６ビットレジスタであり、遊技制御処理における大当り判定において用いられる乱数であるランダムＲの値を格納する。乱数値記憶回路５３１は、ラッチ信号生成回路５３３からラッチ信号ＳＬを入力したことに応じて、カウンタ５２１から比較器５２２を介して出力されるカウント値ＣをランダムＲの値として格納する。そして、乱数値記憶回路５３１は、ラッチ信号生成回路５３３からラッチ信号ＳＬを入力するごとに、カウンタ５２１が更新するカウント値Ｃを読み込んでランダムＲの値を記憶する。
【０１４０】
図１９は、乱数値記憶回路５３１の一構成例を示す回路図である。乱数値記憶回路５３１は、図１９に示すように、２個のＡＮＤ回路２０１，２０３と、２個のＮＯＴ回路２０２，２０４と、１６個のフリップフロップ回路２１０１〜２１１６と、１６個のＯＲ回路２２０１〜２２１６とを含む。
【０１４１】
図１９に示すように、ＡＮＤ回路２０１の入力端子は、ラッチ信号生成回路５３３の出力端子とＮＯＴ回路２０４の出力端子とに接続され、出力端子は、ＮＯＴ回路２０２の入力端子とフリップフロップ回路２１０１〜２１１６のクロック端子Ｃｌｋ１〜Ｃｌｋ１６とに接続されている。ＮＯＴ回路２０２の入力端子は、ＡＮＤ回路２０１の出力端子に接続され、出力端子は、ＡＮＤ回路２０３の一方の入力端子に接続されている。
【０１４２】
ＡＮＤ回路２０３の入力端子は、ＮＯＴ回路２０２の出力端子と遊技制御用マイクロコンピュータ５６０が搭載するＣＰＵ５６とに接続され、出力端子は、ＮＯＴ回路２０４の入力端子に接続されている。ＮＯＴ回路２０４の入力端子は、ＡＮＤ回路２０３の出力端子に接続され、出力端子は、ＡＮＤ回路２０１の一方の入力端子とＯＲ回路２２０１〜２２１６の一方の入力端子とに接続されている。
【０１４３】
フリップフロップ回路２１０１〜２１１６の入力端子Ｄ１〜Ｄ１６は、比較器５２２の出力端子に接続されている。フリップフロップ回路２１０１〜２１１６のクロック端子Ｃｌｋ１〜Ｃｌｋ１６は、ＡＮＤ回路２０１の出力端子に接続され、出力端子Ｑ１〜Ｑ１６は、ＯＲ回路２２０１〜２２１６の他方の入力端子に接続されている。
【０１４４】
ＯＲ回路２２０１〜２２１６の入力端子は、ＮＯＴ回路２０４の出力端子とフリップフロップ回路２１０１〜２１１６の出力端子とに接続され、出力端子は、遊技制御用マイクロコンピュータ５６０が搭載するＣＰＵ５６に接続されている。
【０１４５】
乱数値記憶回路５３１の動作について説明する。図２０は、乱数値記憶回路５３１に各信号が入力されるタイミング、および乱数値記憶回路５３１が各信号を出力するタイミングを示すタイミングチャートである。図２０に示すように、遊技制御用マイクロコンピュータ５６０が搭載するＣＰＵ５６から出力制御信号ＳＣ（本例では、ハイレベル信号）が入力されていない場合（すなわち、ＡＮＤ回路２０３の一方の入力端子への入力がローレベルの場合）、ラッチ信号生成回路５３３からラッチ信号ＳＬが入力されると（図２０に示す例では、タイミングＴ１，Ｔ２，Ｔ７のとき）、ＡＮＤ回路２０１の２つの入力端子への入力はともにハイレベルとなる。そのため、ＡＮＤ回路２０１の出力端子から出力される信号ＳＲはハイレベルとなる。そして、ＡＮＤ回路２０１から出力された信号ＳＲは、フリップフロップ回路２１０１〜２１１６のクロック端子Ｃｌｋ１〜Ｃｌｋ１６に入力される。
【０１４６】
フリップフロップ回路２１０１〜２１１６は、クロック端子Ｃｌｋ１〜Ｃｌｋ１６から入力される信号ＳＲの立ち上がりエッヂに応答して、比較器５２２から入力端子Ｄ１〜Ｄ１６を介して入力されるカウント値ＣのビットデータＣ１〜Ｃ１６を乱数値のビットデータＲ１〜Ｒ１６としてラッチして記憶する。また、フリップフロップ回路２１０１〜２１１６は、記憶するランダムＲのビットデータＲ１〜Ｒ１６を出力端子Ｑ１〜Ｑ１６から出力する。
【０１４７】
出力制御信号ＳＣが入力されていない場合（図２０に示す例では、タイミングＴ３までの期間およびタイミングＴ６以降の期間）、ＡＮＤ回路２０３の一方の入力端子への入力がローレベルとなるので、ＡＮＤ回路２０３の出力端子から出力される信号ＳＧはローレベルとなる。ＡＮＤ回路２０３が出力する信号ＳＧは、ＮＯＴ回路２０４において反転され、ハイレベルの信号とされる。そして、ＯＲ回路２２０１〜２２１６の一方の入力端子に、ＮＯＴ回路２０４からハイレベルの信号が入力される。
【０１４８】
以上のように、ＯＲ回路２２０１〜２２１６の一方の入力端子への入力がハイレベルとなるので、他方の入力端子に入力される信号がハイレベルであるかローレベルであるかに関わらず、ＯＲ回路２２０１〜２２１６はハイレベルの信号を出力する。すなわち、入力されるランダムＲのビットデータＲ１〜Ｒ１６の値が「０」であるか「１」であるかに関わらず、ＯＲ回路２２０１〜２２１６から出力される信号ＳＯ１〜ＳＯ１６は、全てハイレベル（「１」）となる。そのようにすることによって、乱数値記憶回路５３１から出力される値は、常に「６５５３５（＝１１１１１１１１１１１１１１１１ｂ）」となり、乱数値記憶回路５３１からランダムＲを読み出すことができない状態となる。すなわち、乱数値記憶回路５３１から乱数を読み出そうとしても、乱数値記憶回路５３１から常に同じ値「６５５３５」しか読み出せない状態となり、出力制御信号ＳＣが入力されていない場合、乱数値記憶回路５３１は、読出不能（ディセイブル）状態となる。なお、１６ビット乱数回路５０３ｂを用いる場合、乱数値としての値「６５５３５」が用いられる可能性がある。この場合、遊技制御用マイクロコンピュータ５６０は、値「６５５３５」を読み込んだとしても、その値が乱数であるのか読出不能状態であるのかを判断することができない。そのため、図３９に示す各大当り判定用の判定テーブルにおいて、あらかじめランダムＲが「６５５３５」である場合には「ハズレ」と判定するように設定しておけばよい。
【０１４９】
ラッチ信号生成回路５３３からラッチ信号ＳＬが入力されていないときに、ＣＰＵ５６から出力制御信号ＳＣが入力されると（図２０に示す例では、タイミングＴ４からタイミングＴ６までの期間）、ＡＮＤ回路２０３の２つの入力端子への入力がともにハイレベルとなるので、ＡＮＤ回路２０３の出力端子から出力される信号ＳＧはハイレベルとなる。ＡＮＤ回路２０３が出力する信号ＳＧは、ＮＯＴ回路２０４において反転され、ローレベルの信号とされる。そして、ＯＲ回路２２０１〜２２１６の一方の入力端子に、ＮＯＴ回路２０４からローレベルの信号が入力される。
【０１５０】
以上のように、ＯＲ回路２２０１〜２２１６の一方の入力端子への入力がローレベルとなるので、他方の入力端子に入力される信号がハイレベルの場合、ＯＲ回路２２０１〜２２１６の出力端子からハイレベルの信号が出力される。また、ＯＲ回路２２０１〜２２１６の他方の入力端子に入力される信号がローレベルの場合、ＯＲ回路２２０１〜２２１６からローレベルの信号が出力される。すなわち、ＯＲ回路２２０１〜２２１６の他方の入力端子に入力されるランダムＲのビットデータＲ１〜Ｒ１６の値は、ＯＲ回路２２０１〜２２１６の出力端子からそのまま（すなわち、ビットデータＲ１〜Ｒ１６の値が「１」のときは「１」が、「０」のときは「０」）出力される。そのようにすることによって、乱数値記憶回路５３１からのランダムＲの読出が可能となる。すなわち、出力制御信号ＳＣが入力されている場合、乱数値記憶回路５３１は、読出可能（イネイブル）状態となる。
【０１５１】
ただし、ＣＰＵ５６から出力制御信号ＳＣが入力される前に、ラッチ信号生成回路５３３からラッチ信号ＳＬが入力されている場合、ＡＮＤ回路２０３の一方の入力端子への入力がローレベルとなるので、ラッチ信号ＳＬが入力されている状態のままで、出力制御信号ＳＣが入力されても（図２０に示す例では、タイミングＴ３からタイミングＴ４の期間）、ＡＮＤ回路２０３の出力端子から出力される信号ＳＧはローレベルのままとなる。ＡＮＤ回路２０３が出力する信号ＳＧは、ＮＯＴ回路２０４において反転され、ハイレベルの信号とされる。そして、ＯＲ回路２２０１〜２２１６の一方の入力端子に、ＮＯＴ回路２０４からハイレベルの信号が入力される。
【０１５２】
以上のように、ＯＲ回路２２０１〜２２１６の一方の入力端子への入力がハイレベルとなるので、他方の入力端子に入力される信号がハイレベルであるかローレベルであるかに関わらず、ＯＲ回路２２０１〜２２１６から出力される信号ＳＯ１〜ＳＯ１６は全てハイレベルとなる。そして、出力制御信号ＳＣが入力されているにも関わらず、乱数値記憶回路５３１からランダムＲを読み出すことができない状態のままとなる。すなわち、ラッチ信号ＳＬが入力されている場合、乱数値記憶回路５３１は、出力制御信号ＳＣを受信不可能な状態となる。なお、１６ビット乱数回路５０３ｂを用いる場合、乱数値としての値「６５５３５」が用いられる可能性がある。この場合、遊技制御用マイクロコンピュータ５６０は、値「６５５３５」を読み込んだとしても、その値が乱数であるのか読出不能状態であるのかを判断することができない。そのため、図３９に示す各大当り判定用の判定テーブルにおいて、あらかじめランダムＲが「６５５３５」である場合には「ハズレ」と判定するように設定しておけばよい。
【０１５３】
また、ラッチ信号生成回路５３３からラッチ信号ＳＬが入力される前に、ＣＰＵ５６から出力制御信号ＳＣが入力されている場合、ＡＮＤ回路２０１の一方の入力端子への入力がローレベルとなるので、出力制御信号ＳＣが入力されているままの状態で、ラッチ信号ＳＬが入力されても（図２０に示す例では、タイミングＴ５）、ＡＮＤ回路２０１の出力端子から出力される信号ＳＲはローレベルのままとなる。そのため、フリップフロップ回路２１０１〜２１１６のクロック端子Ｃｌｋ１〜Ｃｌｋ１６に入力される信号ＳＲは、ローレベルからハイレベルに立ち上がらず、フリップフロップ回路２１０１〜２１１６に格納されているランダムＲのビットデータＲ１〜Ｒ１６は、ラッチ信号ＳＬが入力されているにも関わらず、記憶される乱数は更新されない。すなわち、出力制御信号ＳＣが入力されている場合、乱数値記憶回路５３１は、ラッチ信号ＳＬを受信不可能な状態となる。
【０１５４】
反転回路５３２は、クロック信号出力回路５２４から入力する乱数発生用クロック信号ＳＩ１における信号レベルを反転させることによって、クロック信号の極性を反転させた反転クロック信号ＳＩ２を生成する。また、反転回路５３２は、生成した反転クロック信号ＳＩ２をラッチ信号生成回路５３３に出力する。
【０１５５】
なお、乱数回路５０３は、反転回路５３２に代えて遅延回路を含んでもよい。この場合、遅延回路は、クロック信号出力回路５２４から入力する乱数発生用クロック信号ＳＩ１を遅延させることによって、クロック信号を遅延させた遅延クロック信号を生成する。また、遅延回路は、生成した遅延クロック信号をラッチ信号生成回路５３３に出力する。従って、ラッチ信号生成回路５３３は、乱数発生用クロック信号ＳＩ１を遅延させた遅延クロック信号に同期して、乱数値記憶回路５３１にラッチ信号を出力することになる。
【０１５６】
ラッチ信号生成回路５３３は、セレクタおよびフリップフロップ回路等を用いて構成される。ラッチ信号生成回路５３３は、乱数値読取信号出力回路５２６からの乱数値読取信号と反転回路５３２からの反転クロック信号ＳＩ２とを入力し、乱数値記憶回路５３１に乱数値を記憶させるためのラッチ信号ＳＬを出力する。また、ラッチ信号生成回路５３３は、乱数更新方式選択信号出力回路５２７からの乱数更新方式選択信号によって指定された乱数値更新方式に応じて、ラッチ信号ＳＬを出力する。この場合、ラッチ信号生成回路５３３は、乱数更新方式選択信号出力回路５２７から第１の乱数更新方式選択信号が入力された場合、反転回路５３２から出力される反転クロック信号ＳＩ２を選択し、ラッチ信号ＳＬとして乱数値記憶回路５３１に出力する。一方、ラッチ信号生成回路５３３は、乱数更新方式選択信号出力回路５２７から第２の乱数更新方式選択信号が入力された場合、乱数値読取信号出力回路５２６から出力される乱数値読取信号を、反転回路５３２から出力される反転クロック信号ＳＩ２の立ち上がりエッヂに同期させて、ラッチ信号ＳＬとして乱数値記憶回路５３１に出力する。
【０１５７】
タイマ回路５３４は、始動口１４への遊技球の入賞を検出した旨の入賞検出信号ＳＳを始動口スイッチ１４ａから入力する。また、タイマ回路５３４は、始動口スイッチ１４ａから入賞検出信号ＳＳが継続して入力されている時間を計測する。そして、タイマ回路５３４は、計測時間が所定期間（例えば、３ｍｓ）になると、乱数値読取信号出力回路５２６の乱数値取込レジスタ５３９に乱数値取込データ「０１ｈ」を書き込む。例えば、タイマ回路５３４は、ハイレベルの信号が入力されたことに応じて起動するアップカウンタまたはダウンカウンタによって構成される。タイマ回路５３４は、始動口スイッチ１４ａからの入力がハイレベルとなっている間（すなわち、入賞検出信号ＳＳが継続して入力されている間）、クロック回路５０１から順次入力する基準クロック信号ＣＬＫをアップカウントまたはダウンカウントする。そして、タイマ回路５３４は、アップカウントまたはダウンカウントするカウント値が３ｍｓに対応する値になると、始動口スイッチ１４ａから入賞検出信号ＳＳが入力されたと判断して、乱数値取込データ「０１ｈ」を乱数値取込レジスタ５３９に書き込む。
【０１５８】
次に、シリアル通信回路５０５の構成について説明する。シリアル通信回路５０５は、全二重方式、非同期方式および標準ＮＲＺ（ノンリターンゼロ）符号化を用いたデータフォーマットで、各制御基板（例えば、払出制御基板３７や音／ランプ制御基板８０ｂ）のマイクロコンピュータとシリアル通信を行う。シリアル通信回路５０５は、各制御基板のマイクロコンピュータに各種データ（例えば、賞球個数コマンドや演出制御コマンド）を送信する送信部と、各制御基板のマイクロコンピュータからの各種データ（例えば、賞球ＡＣＫコマンド）を受信する受信部とを含む。
【０１５９】
図２１は、シリアル通信回路５０５の送信部の構成例を示すブロック図である。また、図２２は、シリアル通信回路５０５の受信部の構成例を示すブロック図である。シリアル通信回路５０５は、ボーレートレジスタ７０２、ボーレート生成回路７０３、２つのステータスレジスタ７０５，７０６、３つの制御レジスタ７０７，７０８，７０９、送信データレジスタ７１０、受信データレジスタ７１１、送信用シフトレジスタ７１２、受信用シフトレジスタ７１３、割り込み制御回路７１４、送信フォーマット／パリティ生成回路７１５および受信フォーマット／パリティチェック回路７１６を含む。また、図２１に示すように、シリアル通信回路５０５の送信部は、これらの構成要素のうち、ボーレートレジスタ７０２、ボーレート生成回路７０３、ステータスレジスタＡ７０５、制御レジスタ７０７，７０８，７０９、送信データレジスタ７１０、送信用シフトレジスタ７１２、割り込み制御回路７１４および送信フォーマット／パリティ生成回路７１５によって構成される。また、図２２に示すように、シリアル通信回路５０５の受信部は、これらの構成要素のうち、ボーレートレジスタ７０２、ボーレート生成回路７０３、ステータスレジスタ７０５，７０６、制御レジスタ７０７，７０８，７０９、受信データレジスタ７１１、受信用シフトレジスタ７１３、割り込み制御回路７１４および受信フォーマット／パリティチェック回路７１６によって構成される。
【０１６０】
なお、シリアル通信回路５０５において、送信部と受信部とは、実際には、共通の回路を用いて構成される。そして、シリアル通信回路５０５は、上記に示したように、シリアル通信回路５０５の各構成要素を使い分けて用いることによって、送信回路又は受信回路として機能する。
【０１６１】
まず、シリアル通信回路５０５が各制御基板が搭載するマイクロコンピュータと送受信するデータのデータフォーマットを説明する。図２３は、シリアル通信５０５が各制御基板が搭載するマイクロコンピュータと送受信するデータのデータフォーマットの例を示す説明図である。図２３に示すように、シリアル通信回路５０５が送受信するデータのデータフォーマットは、スタートビット、データおよびストップビットを１フレームとして構成される。また、シリアル通信回路５０５が送受信するデータのデータ長は、後述するシリアル通信回路設定処理において初期設定を行えば、８ビットまたは９ビットのいずれかに設定できる。図２３（ａ）は、データ長を８ビットに設定した場合のデータフォーマットの例である。また、図２３（ｂ）は、データ長を９ビットに設定した場合のデータフォーマットの例である。
【０１６２】
図２３に示すように、シリアル通信回路５０５が送受信するデータのデータフォーマットは、ハイレベル（論理「１」）のアイドルラインのあとに、１フレームの始まりであることを示すスタートビット（論理「０」）を含む。また、データフォーマットは、スタートビットのあとに、８ビットまたは９ビットの送受信データを含む。そして、データフォーマットは、送受信データのあとに、１フレームの終わりであることを示すストップビット（論理「１」）を含む。
【０１６３】
シリアル通信回路５０５は、図２３に示すデータフォーマットに従って、送受信データの最下位ビット（ビット０）から先にデータを送受信する。また、後述するシリアル通信回路設定処理において初期設定を行えば、送受信データにパリティビットを付加するように設定することもできる。パリティビットを付加するように設定した場合、送受信データの最上位ビットがパリティビット（奇数パリティまたは偶数パリティ）として用いられる。例えば、データ長を８ビットに設定した場合、送受信データのビット７がパリティビットとして用いられる。また、例えば、データ長を９ビットに設定した場合、送受信データのビット８がパリティビットとして用いられる。
【０１６４】
ボーレート生成回路７０３は、クロック回路５０１が出力するクロック信号およびボーレートレジスタ７０２に設定されている設定値（ボーレート設定値ともいう）にもとづいて、シリアル通信回路５０５が用いるボーレートを生成する。この場合、ボーレート生成回路７０３は、クロック信号およびボーレート設定値にもとづいて、所定の計算式を用いてボーレートを求める。例えば、ボーレート生成回路７０３は、式（１）を用いて、シリアル通信回路５０５が用いるボーレートを求める。
【０１６５】
ボーレート＝クロック周波数／（ボーレート設定値×１６）          式（１）
【０１６６】
図２４は、ボーレートレジスタ７０２の例を示す説明図である。ボーレートレジスタ７０２は、ボーレート生成回路７０３が生成するボーレートの値を指定するための所定の設定値を設定するレジスタである。例えば、ボーレートレジスタ７０２が式（１）を用いてボーレートを求めるものとし、クロック周波数が３ＭＨｚであるとする。この場合、所望の目標ボーレートが１２００ｂｐｓであるとすると、ボーレートレジスタ７０２に設定値「１５６」を設定する。すると、ボーレート生成回路７０３は、クロック周波数「３ＭＨｚ」およびボーレート設定値「１５６」にもとづいて、式（１）を用いて、ボーレート「１２０１．９２ｂｐｓ」を生成する。ボーレートレジスタ７０２は、１６ビットレジスタであり、初期値が「０（＝００ｈ）」に設定されている。また、ボーレートレジスタ７０２は、ビット０〜ビット１２が書込および読出ともに可能な状態に構成されている。また、ボーレートレジスタ７０２は、ビット１３〜ビット１５が書込および読出ともに不可能な状態に構成されている。したがって、ボーレートレジスタ７０２のビット１３〜ビット１５に値を書き込む制御を行っても無効とされ、ビット１３〜ビット１５から読み出す値は全て「０（＝０００ｂ）」である。
【０１６７】
図２５（Ａ）は、制御レジスタＡ７０７の例を示す説明図である。制御レジスタＡ７０７は、シリアル通信回路５０５の通信フォーマットを設定するレジスタである。この実施の形態では、制御レジスタＡ７０７の各ビットの値が設定されることによって、シリアル通信回路５０５の通信フォーマットが設定される。制御レジスタＡ７０７には、送受信データのデータ形式や各種通信方式等の通信フォーマットを設定するための通信フォーマット設定データが設定される。図２５（Ａ）に示すように、制御レジスタＡ７０７は、８ビットレジスタであり、初期値が「０（＝００ｈ）」に設定されている。また、制御レジスタＡ７０７は、ビット０〜ビット４が書込および読出ともに可能な状態に構成されている。また、制御レジスタＡ７０７は、ビット５〜ビット７が書込および読出ともに不可能な状態に構成されている。したがって、制御レジスタＡ７０７のビット５〜ビット７に値を書き込む制御を行っても無効とされ、ビット５〜ビット７から読み出す値は全て「０（＝０００ｂ）」である。
【０１６８】
図２５（Ｂ）は、制御レジスタＡ７０７に設定される通信フォーマット設定データの一例の説明図である。図２５（Ｂ）に示すように、制御レジスタＡ７０７のビット４（ビット名「Ｍ」）には、送受信するデータのデータ長を設定するための設定データが設定される。図２５（Ｂ）に示すように、ビット４を「０」に設定することによって、送受信データのデータ長が８ビットに設定される。また、ビット４を「１」に設定することによって、送受信データのデータ長が９ビットに設定される。
【０１６９】
制御レジスタＡ７０７のビット３（ビット名「ＷＡＫＥ」）には、スタンバイ状態の受信回路（シリアル通信回路５０５の受信部）をウエイクアップする（オンライン状態にさせる）ウエイクアップ方式を設定するための設定データが設定される。図２５（Ｂ）に示すように、ビット３を「０」に設定することによって、アイドルラインを認識したときにウエイクアップするアイドルラインウエイクアップ方式が設定される。また、ビット３を「１」に設定することによって、所定のアドレスマークを認識することによってウエイクアップするアドレスマークウエイクアップ方式が設定される。
【０１７０】
制御レジスタＡ７０７のビット２（ビット名「ＩＬＴ」）には、受信データのアイドルラインの検出方式を選択するための設定データが設定される。図２５（Ｂ）に示すように、ビット２を「０」に設定することによって、受信データに含まれるスタートビットの後からアイドルラインを検出する検出方式が設定される。また、ビット２を「１」に設定することによって、受信データに含まれるストップビットの後からアイドルラインを検出する検出方式が設定される。
【０１７１】
制御レジスタＡ７０７のビット１（ビット名「ＰＥ」）には、パリティ機能を使用するか否かを設定するための設定データが設定される。図２５（Ｂ）に示すように、ビット１を「０」に設定することによって、パリティ機能を使用しないように設定される。また、ビット１を「１」に設定することによって、パリティ機能を使用するように設定される。
【０１７２】
制御レジスタＡ７０７のビット０（ビット名「ＰＴ」）には、パリティ機能を使用すると設定した場合のパリティの種類を設定するための設定データが設定される。図２５（Ｂ）に示すように、ビット０を「０」に設定することによって、パリティの種類として偶数パリティが設定される。また、ビット０を「１」に設定することによって、パリティの種類として奇数パリティが設定される。
【０１７３】
図２６（Ａ）は、制御レジスタＢ７０８の例を示す説明図である。制御レジスタＢ７０８は、シリアル通信回路５０５の割り込み要求を許可するか否かを設定するレジスタである。この実施の形態では、制御レジスタＢ７０８の各ビットの値が設定されることによって、シリアル通信回路５０５からの割り込み要求を許可するか禁止するかが設定される。制御レジスタＢ７０８には、各種割り込み要求を許可するか否かを示す割り込み要求設定データが主として設定される。なお、制御レジスタＢ７０８には、割り込み要求設定データ以外に、シリアル通信回路５０５の各種設定を行うための設定データも設定される。図２６（Ａ）に示すように、制御レジスタＢ７０８は、８ビットレジスタであり、初期値が「０（＝００ｈ）」に設定されている。また、制御レジスタＢ７０８は、ビット０〜ビット７が書込および読出ともに可能な状態に構成されている。
【０１７４】
図２６（Ｂ）は、制御レジスタＢ７０８に設定される割り込み要求設定データの一例を示す説明図である。図２６（Ｂ）に示すように、制御レジスタＢ７０８のビット７（ビット名「ＴＩＥ」）には、データの送信時に行う割り込み要求である送信割り込み要求を許可するか否かを示す設定データが設定される。図２６（Ｂ）に示すように、ビット７を「０」に設定することによって、送信割り込み要求を禁止するように設定される。また、ビット７を「１」に設定することによって、送信割り込み要求を許可するように設定される。
【０１７５】
制御レジスタＢ７０８のビット６（ビット名「ＴＣＩＥ」）には、データの送信完了時に行う割り込み要求である送信完了割り込み要求を許可するか否かを示す設定データが設定される。図２６（Ｂ）に示すように、ビット６を「０」に設定することによって、送信完了割り込み要求を禁止するように設定される。また、ビット６を「１」に設定することによって、送信完了割り込み要求を許可するように設定される。
【０１７６】
制御レジスタＢ７０８のビット５（ビット名「ＲＩＥ」）には、データの受信時に行う割り込み要求である受信割り込み要求を許可するか否かを示す設定データが設定される。図２６（Ｂ）に示すように、ビット５を「０」に設定することによって、受信割り込み要求を禁止するように設定される。また、ビット５を「１」に設定することによって、受信割り込み要求を許可するように設定される。
【０１７７】
制御レジスタＢ７０８のビット４（ビット名「ＩＬＩＥ」）には、受信データのアイドルラインを検出したときに行う割り込み要求であるアイドルライン割り込み要求を許可するか否かを示す設定データが設定される。図２６（Ｂ）に示すように、ビット４を「０」に設定することによって、アイドルライン割り込み要求を禁止するように設定される。また、ビット４を「１」に設定することによって、アイドルライン割り込み要求を許可するように設定される。
【０１７８】
制御レジスタＢ７０８のビット３（ビット名「ＴＥ」）には、送信回路（シリアル通信回路５０５の送信部）を使用するか否かを示す設定データが設定される。図２６（Ｂ）に示すように、ビット３を「０」に設定することによって、送信回路を使用しないように設定される。また、ビット３を「１」に設定することによって、送信回路を使用するように設定される。
【０１７９】
制御レジスタＢ７０８のビット２（ビット名「ＲＥ」）には、受信回路を使用するか否かを示す設定データが設定される。図２６（Ｂ）に示すように、ビット２を「０」に設定することによって、受信回路を使用しないように設定される。また、ビット２を「１」に設定することによって、受信回路を使用するように設定される。
【０１８０】
制御レジスタＢ７０８のビット１（ビット名「ＲＷＵ」）には、受信回路のウエイクアップ機能を使用するか否かを示す設定データが設定される。図２６（Ｂ）に示すように、ビット１を「０」に設定することによって、ウエイクアップ機能を使用しないように設定される。また、ビット１を「１」に設定することによって、ウエイクアップ機能を使用するように設定される。
【０１８１】
制御レジスタＢ７０８のビット０（ビット名「ＳＢＫ」）には、所定のブレークコード送信機能を使用するか否かを示す設定データが設定される。図２６（Ｂ）に示すように、ビット１を「０」に設定することによって、ブレークコード送信機能を使用しないように設定される。また、ビット１を「１」に設定することによって、ブレークコード送信機能を使用するように設定される。ビット１を「１」に設定すると、シリアル通信回路５０５は、ブレークコード（例えば、「０」を連続して含む信号）を制御基板（払出制御基板３７や音／ランプ制御基板８０ｂ）が搭載するマイクロコンピュータに送信する。
【０１８２】
図２７（Ａ）は、ステータスレジスタＡ７０５の例を示す説明図である。ステータスレジスタＡ７０５は、シリアル通信回路５０５の各種ステータスを確認するためのレジスタである。この実施の形態では、ステータスレジスタＡ７０５の各ビットの値を確認することによって、ＣＰＵ５６は、シリアル通信回路５０５の各種ステータスを確認することができる。図２７（Ａ）に示すように、ステータスレジスタＡ７０５は、８ビットレジスタであり、初期値が「０（＝００ｈ）」に設定されている。また、ステータスレジスタＡ７０５は、ビット０〜ビット７が読出のみ可能な状態に構成されている。したがって、ステータスレジスタＡ７０５のビット０〜ビット７に値を書き込む制御を行っても無効とされる。
【０１８３】
本実施の形態では、後述するように、送信データレジスタ７１０に送信データが入っていない状態（送信データエンプティ）となったり、送信用シフトレジスタ７１２が格納する送信データの送信を完了すると、割り込み制御回路７１４によって、ステータスレジスタＡ７０５の対応するビットがセットされる。そして、ＣＰＵ５６は、ステータスレジスタＡ７０５にセットされた各ビットの値を読み出す。
【０１８４】
図２７（Ｂ）は、ステータスレジスタＡ７０５に格納されるステータス確認データの一例を示す図である。図２７（Ｂ）に示すように、ステータスレジスタＡ７０５のビット７（ビット名「ＴＤＲＥ」）には、送信データレジスタ７１０に送信データが入っていない状態であること（送信データエンプティ）を示す送信データエンプティフラグが格納される。図２７（Ｂ）に示すように、ビット７に「０」が格納されている場合、送信データレジスタ７１０から送信用シフトレジスタ７１２に送信データが未だに転送されておらず、送信データレジスタ７１０に送信データが格納されたままの状態であることを示す。また、ビット７に「１」が格納されている場合、送信データレジスタ７１０から送信用シフトレジスタ７１２に送信データが転送されており、送信データレジスタ７１０に送信データが入っていない状態（送信データエンプティ）であることを示す。
【０１８５】
ステータスレジスタＡ７０５のビット６（ビット名「ＴＣ」）には、シリアル通信回路５０５からの送信データの送信を完了した旨を示す送信完了フラグが格納される。図２７（Ｂ）に示すように、ビット６に「０」が格納されている場合、送信用シフトレジスタ７１２が格納する送信データの送信中の状態であり、シリアル通信回路５０５からの送信データの送信が完了していない状態であることを示す。また、ビット６に「１」が格納されている場合、送信用シフトレジスタ７１２が格納する送信データの転送を完了した状態であり、シリアル通信回路５０５からの送信データの送信が完了した状態であることを示す。
【０１８６】
なお、送信データの送信を完了した状態となり、遊技制御用マイクロコンピュータ５６０は、送信先のマイクロコンピュータからの受信確認信号の待ち状態となる。この実施の形態では、後述する送信時割込の設定が行われると、シリアル通信回路５０５は、送信データの送信完了を検出すると、ステータスレジスタＡ７０５のビット６を「１」にするとともに、受信確認信号の待ち状態になったものとしてＣＰＵ５６に割り込み要求（送信時割り込み要求という）を行う。
【０１８７】
ステータスレジスタＡ７０５のビット５（ビット名「ＲＤＲＦ」）には、受信データレジスタ７１１に受信データが格納された状態であること（受信データフル）を示す受信データフルフラグが格納される。図２７（Ｂ）に示すように、ビット５に「０」が格納されている場合、受信データレジスタ７１１に受信データが入っていない状態であることを示す。また、ビット５に「１」が格納されている場合、受信用シフトレジスタ７１３の値が受信データレジスタ７１１に転送され、受信データレジスタ７１１に受信データが格納されている状態であること（受信データフル）を示す。
【０１８８】
なお、受信データレジスタ７１１に受信データが格納された状態となると、ＣＰＵ５６は、受信データを受信データレジスタ７１１から読み込んで受信処理を行える状態となる。この実施の形態では、シリアル通信回路５０５は、受信データフルを検出すると、ステータスレジスタＡ７０５のビット５を「１」にするとともに、受信処理が可能になったものとしてＣＰＵ５６に割り込み要求（受信時割り込み要求という）を行う。
【０１８９】
ステータスレジスタＡ７０５のビット４（ビット名「ＩＤＬＥ」）には、受信回路がアイドルラインを検出したことを示すアイドルライン検出フラグが格納される。図２７（Ｂ）に示すように、ビット４に「０」が格納されている場合、シリアル通信回路５０５の受信部がアイドルラインを検出していない状態であることを示す。また、ビット４に「１」が格納されている場合、シリアル通信回路５０５の受信部がアイドルラインを検出した状態であることを示す。
【０１９０】
ステータスレジスタＡ７０５のビット３（ビット名「ＯＲ」）には、ＣＰＵ５６が受信データレジスタ７１１が格納する受信データを読み込む前に、受信用シフトレジスタ７１３が次のデータを受信してしまったこと（オーバーラン）を示すオーバーランフラグが格納される。図２７（Ｂ）に示すように、ビット３に「０」が格納されている場合、受信回路がオーバーランを検出していない状態であることを示す。また、ビット３に「１」が格納されている場合、受信回路がオーバーランを検出した状態であることを示す。
【０１９１】
なお、オーバーランが発生すると、受信データレジスタ７１１内の受信データが読み込まれる前に受信用シフトレジスタ７１３に次の受信データが格納されてしまうので、受信データが上書きされてしまいＣＰＵ５６が受信データを正しく読み込めなくなってしまう。そのため、各制御基板が搭載するマイクロコンピュータと正しく通信を行えなくなり、ＣＰＵ５６が誤動作をする原因となる。この実施の形態では、シリアル通信回路５０５は、オーバーランを検出すると、ステータスレジスタＡ７０５のビット３を「１」にするとともに、通信時にエラーが発生したものとしてＣＰＵ５６に割り込み要求を行う。
【０１９２】
ステータスレジスタＡ７０５のビット２（ビット名「ＮＦ」）には、受信データにノイズを検出したことを示すノイズエラーフラグが格納される。図２７（Ｂ）に示すように、ビット２に「０」が格納されている場合、受信回路が受信データにノイズを検出していない状態であることを示す。また、ビット２に「１」が格納されている場合、受信回路が受信データにノイズを検出した状態であることを示す。
【０１９３】
例えば、シリアル通信回路５０５は、受信データの各ビットを検出する際に、ボーレート生成回路７０３が生成したボーレートを用いて、所定ビット長の「１」または「０」を検出する。この場合、検出した「１」または「０」の長さが所定ビット長に満たない場合、シリアル通信回路５０５は、受信データにノイズが発生したものとしてノイズエラーを検出する。ノイズエラーが発生すると、ノイズによって正しい受信データを受信できない可能性が高く、ＣＰＵ５６が誤動作をする原因となる。この実施の形態では、シリアル通信回路５０５は、ノイズエラーを検出すると、ステータスレジスタＡ７０５のビット２を「１」にするとともに、通信時にエラーが発生したものとしてＣＰＵ５６に割り込み要求を行う。
【０１９４】
ステータスレジスタＡ７０５のビット１（ビット名「ＦＥ」）には、受信データのストップビットの位置が「０」（本来、ストップビットは「１」）であることを検出したこと（フレーミングエラー）を示すフレーミングエラーフラグが格納される。図２７（Ｂ）に示すように、ビット１に「０」が格納されている場合、受信回路が受信データにフレーミングエラーを検出していない状態であることを示す。また、ビット１に「１」が格納されている場合、受信回路がフレーミングエラーを検出した状態であることを示す。
【０１９５】
フレーミングエラーが発生すると、受信データのストップビットを正しく受信できなかった状態であるので、正しい受信データを受信できない可能性が高く、ＣＰＵ５６が誤動作をする原因となる。この実施の形態では、シリアル通信回路５０５は、フレーミングエラーを検出すると、ステータスレジスタＡ７０５のビット１を「１」にするとともに、通信時にエラーが発生したものとしてＣＰＵ５６に割り込み要求を行う。
【０１９６】
ステータスレジスタＡ７０５のビット０（ビット名「ＰＦ」）には、受信データから求めたパリティの値と、受信データに含まれるパリティの値とが一致しなかったこと（パリティエラー）を示すパリティエラーフラグが格納される。図２７（Ｂ）に示すように、ビット０に「０」が格納されている場合、受信回路が受信データにパリティエラーを検出していない状態であることを示す。また、ビット０に「１」が格納されている場合、受信回路がパリティエラーを検出した状態であることを示す。
【０１９７】
パリティエラーが発生すると、受信データの各データビットまたはパリティビットを正しく受信できなかった状態であるので、正しい受信データを受信できない可能性が高く、ＣＰＵ５６が誤動作をする原因となる。この実施の形態では、シリアル通信回路５０５は、パリティエラーを検出すると、ステータスレジスタＡ７０５のビット０を「１」にするとともに、通信時にエラーが発生したものとしてＣＰＵ５６に割り込み要求を行う。
【０１９８】
図２８（Ａ）は、ステータスレジスタＢ７０６の例を示す説明図である。ステータスレジスタＢ７０６は、シリアル通信回路５０５の受信状態（受信ステータス）を確認するためのレジスタである。この実施の形態では、ステータスレジスタＢ７０６のビットの値を確認することによって、ＣＰＵ５６は、シリアル通信回路５０５の受信ステータスを確認することができる。図２８（Ｂ）に示すように、ステータスレジスタＢ７０６は、８ビットレジスタであり、初期値が「０（＝００ｈ）」に設定されている。また、ステータスレジスタＢ７０６は、ビット０が読出のみ可能な状態に構成されている。したがって、ステータスレジスタＡ７０５のビット０に値を書き込む制御を行っても無効とされる。また、ステータスレジスタＢ７０６は、ビット１〜ビット７が書込および読出ともに不可能な状態に構成されている。したがって、ステータスレジスタＡ７０５のビット１〜ビット７に値を書き込む制御を行っても無効とされ、ビット１〜ビット７から読み出す値は全て「０（＝００００ｂ）」である。
【０１９９】
図２８（Ｂ）は、ステータスレジスタＢ７０６に格納されるステータス確認データの一例を示す図である。図２８（Ｂ）に示すように、ステータスレジスタＢ７０６のビット０（ビット名「ＲＡＦ」）には、受信回路が受信データを受信中であること（受信アクティブ）を示す受信アクティブフラグが格納される。図２８（Ｂ）に示すように、ビット０に「０」が格納されている場合、受信回路が受信データを受信中でないことを示す。また、ビット０に「１」が格納されている場合、受信回路が受信データを受信中であることを示す。なお、シリアル通信回路５０５は、スタートビットを検出すると、受信データの受信が開始されたものとして、ステータスレジスタＢ７０６のビット０を「１」にする。
【０２００】
図２９（Ａ）は、制御レジスタＣ７０９の例を示す説明図である。制御レジスタＣ７０９は、シリアル通信回路５０５の通信エラー時の割り込み要求を許可するか否かを設定するレジスタである。この実施の形態では、制御レジスタＣ７０９の各ビットの値が設定されることによって、シリアル通信回路５０５からの通信時の割り込み要求を許可するか禁止するかが設定される。制御レジスタＣ７０９には、通信エラー時の各種割り込み要求を許可するか否かを示すエラー割り込み要求設定データが主として設定される。なお、制御レジスタＣ７０９には、エラー割り込み要求設定データ以外に、データ長を９ビットに設定した場合の９ビット目のデータが格納される。シリアル通信回路５０５の各種設も設定される。図２９（Ａ）に示すように、制御レジスタＣ７０９は、８ビットレジスタであり、初期値が「０（＝００ｈ）」に設定されている。また、制御レジスタＣ７０９は、ビット０〜ビット３およびビット６，７が書込および読出ともに可能な状態に構成されている。また、制御レジスタＣ７０９は、ビット４，５が書込および読出ともに不可能な状態に構成されている。したがって、制御レジスタＣ７０９のビット４，５に値を書き込む制御を行っても無効とされ、ビット４，５から読み出す値は全て「０（＝００００ｂ）」である。
【０２０１】
図２９（Ｂ）は、制御レジスタＣ７０９に設定されるエラー割り込み要求設定データの一例を示す説明図である。図２９（Ｂ）に示すように、制御レジスタＣ７０９のビット７（ビット名「Ｒ８」）には、データ長を９ビットに設定した場合の受信データの９ビット目のデータが格納される。また、制御レジスタＣ７０９のビット６（ビット名「Ｔ８」）には、データ長を９ビットに設定した場合の送信データの９ビット目のデータが格納される。
【０２０２】
制御レジスタＣ７０９のビット３（ビット名「ＯＲＩＥ」）には、オーバーランを検出した場合に行う割り込み要求であるオーバーランフラグ割り込み要求を許可するか否かを示す設定データが設定される。図２９（Ｂ）に示すように、ビット３を「０」に設定することによって、オーバーランフラグ割り込み要求を禁止するように設定される。また、ビット３を「１」に設定することによって、オーバーランフラグ割り込み要求を許可するように設定される。
【０２０３】
制御レジスタＣ７０９のビット２（ビット名「ＮＥＩＥ」）には、ノイズエラーを検出した場合に行う割り込み要求であるノイズエラーフラグ割り込み要求を許可するか否かを示す設定データが設定される。図２９（Ｂ）に示すように、ビット２を「０」に設定することによって、ノイズエラーフラグ割り込み要求を禁止するように設定される。また、ビット２を「１」に設定することによって、ノイズエラーフラグ割り込み要求を許可するように設定される。
【０２０４】
制御レジスタＣ７０９のビット１（ビット名「ＦＥＩＥ」）には、フレーミングエラーを検出した場合に行う割り込み要求であるフレーミングエラーフラグ割り込み要求を許可するか否かを示す設定データが設定される。図２９（Ｂ）に示すように、ビット１を「０」に設定することによって、フレーミングエラーフラグ割り込み要求を禁止するように設定される。また、ビット１を「１」に設定することによって、フレーミングエラーフラグ割り込み要求を許可するように設定される。
【０２０５】
制御レジスタＣ７０９のビット０（ビット名「ＰＥＩＥ」）には、パリティエラーを検出した場合に行う割り込み要求であるパリティエラーフラグ割り込み要求を許可するか否かを示す設定データが設定される。図２９（Ｂ）に示すように、ビット０を「０」に設定することによって、パリティエラーフラグ割り込み要求を禁止するように設定される。また、ビット０を「１」に設定することによって、パリティエラーフラグ割り込み要求を許可するように設定される。
【０２０６】
図３０は、シリアル通信回路５０５が備えるデータレジスタの例を示す説明図である。データレジスタ７０１は、シリアル通信回路５０５が送受信するデータを格納するレジスタである。図３０に示すように、データレジスタは、８ビットレジスタであり、初期値が「０（＝００ｈ）」に設定されている。また、データレジスタ７０１は、ビット０〜ビット７が書込および読出ともに可能な状態に構成されている。
【０２０７】
この実施の形態では、シリアル通信回路５０５が送信データを送信する場合、データレジスタは、送信データレジスタ７１０として用いられる。なお、データ長を９ビットに設定した場合、データレジスタおよび制御レジスタＣ７０９のビット６が送信データレジスタ７１０として用いられる。この場合、データレジスタのビット０〜ビット７が送信データレジスタ７１０のビット０〜ビット７として用いられ、制御レジスタＣ７０９のビット６が送信データレジスタ７１０のビット８として用いられる。
【０２０８】
また、シリアル通信回路５０５が受信データを受信する場合、データレジスタは、受信データレジスタ７１１として用いられる。なお、データ長を９ビットに設定した場合、データレジスタおよび制御レジスタＣ７０９のビット７が受信データレジスタ７１１として用いられる。この場合、データレジスタのビット０〜ビット７が受信データレジスタ７１１のビット０〜ビット７として用いられ、制御レジスタＣ７０９のビット７が受信データレジスタ７１１のビット８として用いられる。
【０２０９】
割り込み制御回路７１４は、ＣＰＵ５６に各種割り込み要求を行う。この実施の形態では、割り込み制御回路７１４は、制御レジスタＢ７０８のビット６（ＴＣＩＥ）が「１」に設定されている場合、送信データレジスタ７１０に送信データの送信を完了した状態となると、ＣＰＵ５６に割り込み信号を出力するとともに、ステータスレジスタＡ７０５のビット６（ＴＣ）に「１」を設定することによって割り込み要求を行う。なお、ステータスレジスタＡ７０５のビットの設定値により割込要因を識別可能とするのでなく、割り込み制御回路７１４は、割込要因毎に異なる割り込み信号をＣＰＵ５６に出力するようにしてもよい。
【０２１０】
また、割り込み制御回路７１４は、制御レジスタＢ７０８のビット５（ＲＩＥ）が「１」に設定されている場合、受信データレジスタ７１１に受信データが格納されている状態になると（受信データフルを検出すると）、ＣＰＵ５６に割り込み信号を出力するとともに、ステータスレジスタＡ７０５のビット５（ＲＤＲＦ）に「１」を設定することによって割り込み要求を行う。
【０２１１】
また、割り込み制御回路７１４は、制御レジスタＣ７０９のビット０〜３のいずれかが「１」に設定されている場合、各種通信エラーが発生すると、ＣＰＵ５６に割り込み信号を出力するとともに、通信エラーの種類に応じて、ステータスレジスタＡ７０５のビット０〜ビット３に「１」を設定することによって割り込み要求を行う。例えば、制御レジスタＣ７０９のビット３（ＯＲＩＥ）が「１」に設定されている場合、オーバーランを検出して割り込み要求を行うときに、ステータスレジスタＡ７０５のビット３（ＯＲ）に「１」を設定する。また、例えば、制御レジスタＣ７０９のビット２（ＮＥＩＥ）が「１」に設定されている場合、ノイズエラーを検出して割り込み要求を行うときに、ステータスレジスタＡ７０５のビット２（ＮＦ）に「１」を設定する。また、例えば、制御レジスタＣ７０９のビット１（ＦＥＩＥ）が「１」に設定されている場合、フレーミングエラーを検出して割り込み要求を行うときに、ステータスレジスタＡ７０５のビット１（ＦＥ）に「１」を設定する。また、例えば、制御レジスタＣ７０９のビット０（ＰＥＩＥ）が「１」に設定されている場合、パリティエラーを検出して割り込み要求を行うときに、ステータスレジスタＡ７０５のビット０（ＰＦ）に「１」を設定する。なお、複数の通信エラーを検出した場合、割り込み制御回路７１４は、複数の通信エラーにもとづいて割り込み要求を行うとともに、ステータスレジスタＡ７０５の該当するビットをそれぞれ「１」に設定する。
【０２１２】
送信フォーマット／パリティ生成回路７１５は、送信データのデータフォーマットを生成する。この実施の形態では、送信フォーマット／パリティ生成回路７１５は、送信データレジスタ７１０に格納される送信データにスタートビットおよびストップビットを付加してデータフォーマットを生成し、送信用シフトレジスタ７１２に転送する。また、制御レジスタＡ７０７のビット１（ＰＥ）に「１」が設定され、パリティ機能を使用する旨が設定されている場合、送信フォーマット／パリティ生成回路７１５は、送信データにパリティビットを付加してデータフォーマットを生成する。
【０２１３】
受信フォーマット／パリティチェック回路７１６は、受信データのデータフォーマットを検出する。この実施の形態では、受信フォーマット／パリティチェック回路７１６は、受信用シフトレジスタ７１３に格納される受信データからスタートビットおよびストップビットを検出し、受信データに含まれるデータ部分を検出して受信データレジスタ７１１に転送する。また、制御レジスタＡ７０７のビット１（ＰＥ）に「１」が設定され、パリティ機能を使用する旨が設定されている場合、受信フォーマット／パリティチェック回路７１６は、受信データのパリティを求め、受信データに含まれるパリティと一致するか否かを検出する。また、求めた値が受信データに含まれるパリティと一致しない場合、受信フォーマット／パリティチェック回路７１６は、パリティエラーを検出する。なお、後述するシリアル通信回路設定処理において通信エラー時割り込み要求を許可する旨が設定されてる場合、割り込み制御回路７１４は、パリティエラーを検出すると、通信エラーの発生を割込原因としてＣＰＵ５６に割り込み要求を行う。
【０２１４】
図３１は、遊技制御用マイクロコンピュータ５６０における記憶領域のアドレスマップの一例を示す説明図である。図３１に示すように、遊技制御用マイクロコンピュータ５６０の記憶領域のうち、００００ｈ番地〜１ＦＦＦｈ番地の領域は、ＲＯＭ５４に割り当てられている。また、７Ｅ００ｈ番地〜７ＦＦＦｈ番地の領域は、ＲＡＭ５５に割り当てられている。さらに、ＦＤ００ｈ番地〜ＦＥ００ｈ番地の領域は、乱数最大値設定レジスタ５３５等の内蔵レジスタに割り当てられている。
【０２１５】
また、図３１に示すように、ＲＯＭ５４に割り当てられている００００ｈ番地〜１ＦＦＦｈ番地の領域は、ユーザプログラムエリアとユーザプログラム管理エリアとを含む。００００ｈ番地〜１Ｆ７Ｆｈ番地の領域のユーザプログラムエリアには、ユーザ（例えば、遊技機の製作者）により予め作成されたプログラム（ユーザプログラム）５５０が記憶される。また、１Ｆ８０ｈ番地〜１ＦＦＦｈ番地の領域のユーザプログラム管理エリアには、ＣＰＵ５６がユーザプログラム５５０を実行するために必要となるデータ（ユーザプログラム実行データ）が記憶される。また、ＲＡＭ５５に割り当てられている７Ｅ００ｈ番地〜７ＦＦＦｈ番地の領域のうち、７Ｅ００ｈ番地〜７ＥＦＦｈ番地の領域は未使用領域であり、７Ｆ００ｈ番地〜７ＦＦＦｈ番地の領域はワークエリアとして用いられる。
【０２１６】
図３２は、ユーザプログラム管理エリアにおけるアドレスマップの一例を示す説明図である。図３２に示すように、１Ｆ９７ｈ番地の領域には、乱数回路５０３のカウンタ５２１に入力される初期値を変更するための方式である初期値変更方式のうち、ユーザによって選択された初期値変更方式を指定するための初期値変更方式設定データが記憶される。また、１Ｆ９８ｈ番地および１Ｆ９９ｈ番地の領域には、ＲＡＭ５５に割り当てられた７Ｆ００ｈ番地〜７ＦＦＦｈ番地のうち、ユーザによって予め指定されたＲＡＭ５５における番地（指定ＲＡＭ番地）を特定するためのＲＡＭ番地データが記憶される。この場合、指定ＲＡＭ番地を示す値のうち、指定ＲＡＭ番地の下位の値が１Ｆ９８ｈ番地に記憶され、指定ＲＡＭ番地の上位の値が１Ｆ９９ｈ番地に記憶される。
【０２１７】
図３３は、初期値変更方式設定データの一例を示す説明図である。図３３に示すように、初期値変更データは、８ビットのデータから構成される。初期値変更データ「００ｈ」は、初期値変更方式として、初期値を変更しないことを指定するデータである。この実施の形態では、初期値変更データ「００ｈ」が設定されている場合、乱数回路５０３のカウンタ５２１は、予め定められた初期値「０」から所定の最終値までカウント値を更新することになる。また、初期値変更データ「０１ｈ」は、初期値変更方式として、カウンタ５２１に入力する初期値を、遊技制御用マイクロコンピュータ５６０を識別するためのＩＤナンバにもとづく値に変更することを指定するデータである。この実施の形態では、初期値変更データ「０１ｈ」が設定されている場合、カウンタ５２１が更新するカウンタ値の初期値が「０」からＩＤナンバにもとづく値に変更され、カウンタ５２１は、変更後の初期値から所定の最終値までカウント値を更新することになる。
【０２１８】
ユーザプログラムエリアに記憶されるユーザプログラム５５０について説明する。図３４は、ユーザプログラム５５０の構成例を示す説明図である。図３４に示すように、この実施の形態では、ユーザプログラム５５０は、複数種類のプログラムモジュールから構成される乱数回路設定プログラム５５１と、表示結果決定プログラム５５２と、カウント値順列変更プログラム５５４と、乱数値更新プログラム５５５と、シリアル通信回路設定プログラム５５６と、割込優先順位設定プログラム５５７とを含む。
【０２１９】
乱数回路設定プログラム５５１は、乱数回路５０３にランダムＲの値を更新させるための初期設定を行う乱数回路設定処理を実行させるためのプログラムである。すなわち、ＣＰＵ５６は、乱数回路設定プログラム５５１に従って処理を実行することにより、乱数回路初期設定手段として機能する。
【０２２０】
図３５は、乱数回路設定プログラム５５１の構成例を示す説明図である。図３５に示すように、乱数回路設定プログラム５５１は、複数種類のプログラムモジュールとして、乱数最大値設定モジュール５５１ａと、乱数更新方式選択モジュール５５１ｂと、周期設定モジュール５５１ｃと、乱数回路起動モジュール５５１ｄと、初期値変更モジュール５５１ｅと、乱数回路選択モジュール５５１ｆとを含む。
【０２２１】
乱数最大値設定モジュール５５１ａは、ユーザ（例えば、遊技機の製作者）によって予め設定されたランダムＲの最大値を乱数回路５０３に設定させるためのプログラムモジュールである。ＣＰＵ５６は、乱数最大値設定モジュール５５１ａに従って処理を実行することによって、ユーザによって予め設定されたランダムＲの最大値を指定する乱数最大値設定データを、乱数最大値設定レジスタ５３５に書き込む。そのようにすることによって、ＣＰＵ５６は、ユーザによって予め設定されたランダムＲの最大値を乱数回路５０３に設定する。例えば、ユーザによってランダムＲの最大値として予め「２５５」が設定された場合、ＣＰＵ５６は、乱数最大値設定レジスタ５３５に乱数最大値設定データ「００ＦＦｈ」を書き込んで、ランダムＲの最大値「２５５」を乱数回路５０３に設定する。
【０２２２】
乱数更新方式選択モジュール５５１ｂは、ユーザによって選択された乱数更新方式（第１の乱数更新方式または第２の乱数更新方式）を乱数回路５０３に設定させるためのプログラムモジュールである。ＣＰＵ５６は、乱数更新方式選択モジュール５５１ｂに従って処理を実行することによって、ユーザによって選択された乱数更新方式を指定する乱数更新方式選択データ「０１ｂ」または「１０ｂ」を乱数更新方式選択レジスタ５４０に書き込む。そのようにすることによって、ＣＰＵ５６は、ユーザによって選択された乱数更新方式を乱数回路５０３に設定する。よって、遊技制御用マイクロコンピュータ５６０は、第１の乱数更新方式又は第２の乱数更新方式のうちのいずれかを、乱数回路５０３が乱数更新に用いる乱数更新方式として選択する機能を備える。
【０２２３】
周期設定モジュール５５１ｃは、ユーザによって予め設定された内部クロック信号の周期（すなわち、クロック信号出力回路５２４がセレクタ５２８および反転回路５３２にクロック信号を出力する周期）を乱数回路５０３に設定させるためのプログラムモジュールである。ＣＰＵ５６は、周期設定モジュール５５１ｃに従って処理を実行することによって、ユーザによって予め設定された内部クロック信号の周期を指定するための周期設定データを周期設定レジスタ５３７に書き込む。そのようにすることによって、ＣＰＵ５６は、ユーザによって予め設定された内部クロック信号の周期を乱数回路５０３に設定する。例えば、ユーザによって内部クロック信号の周期が予め「システムクロック信号の周期×１２８×１６」と設定された場合、ＣＰＵ５６は、周期設定レジスタ５３７に周期設定データ「０Ｆｈ」を書き込んで、内部クロック信号の周期「システムクロック信号の周期×１２８×１６」を乱数回路５０３に設定する。
【０２２４】
乱数回路起動モジュール５５１ｄは、乱数回路５０３を起動させるためのプログラムモジュールである。ＣＰＵ５６は、乱数回路起動モジュール５５１ｄに従って処理を実行することによって、乱数回路起動データ「８０ｈ」を乱数回路起動レジスタ５４１に書き込むことにより、乱数回路５０３を起動させる。
【０２２５】
初期値変更モジュール５５１ｅは、カウンタ５２１が更新するカウント値の初期値を変更させるためのプログラムモジュールである。ＣＰＵ５６は、初期値変更モジュール５５１ｅに従って処理を実行することによって、初期値変更手段として機能する。ＣＰＵ５６は、初期値変更モジュール５５１ｅを実行して、ユーザによって選択された初期値変更方式によって、カウンタ５２１が更新するカウント値の初期値を変更させる。そのようにすることによって、ＣＰＵ５６は、初期値変更方式を選択する機能を備える。
【０２２６】
この実施の形態では、ユーザプログラム管理エリアの１Ｆ９７ｈ番地の領域に初期値変更方式設定データ「０１ｈ」が記憶されている場合、ＣＰＵ５６は、カウント値の初期値を、遊技制御用マイクロコンピュータ５６０毎に付与された固有のＩＤナンバにもとづいて算出された値に変更させる。
【０２２７】
例えば、遊技制御用マイクロコンピュータ５６０は、ＲＯＭ５４の所定の記憶領域に、遊技制御用マイクロコンピュータ５６０のＩＤナンバと、ＩＤナンバにもとづいて所定の演算を行って求めた演算値とを予め対応付けて記憶している。この場合、例えば、遊技制御用マイクロコンピュータ５６０のＩＤナンバが「１００」であるとすると、ＩＤナンバ「１００」に所定値「５０」を加算して求めた演算値「１５０」を、予めＩＤナンバに対応付けて記憶している。また、例えば、ＩＤナンバ「１００」に所定値「５０」を減算して求めた演算値「５０」を、予めＩＤナンバに対応付けて記憶している。また、例えば、予めＩＤナンバに対応づけて所定値だけを記憶していてもよい。そして、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６は、予め記憶される所定値（例えば、「５０」）にＩＤナンバ（例えば、「１００」を加算して求めた値「１５０」を、カウント値の初期値としてもよい。また、ＣＰＵ５６は、予め記憶される所定値（例えば、「５０」）をＩＤナンバ（例えば、「１００」）から減算して求めた値「５０」を、カウント値の初期値としてもよい。なお、遊技制御用マイクロコンピュータ５６０は、データ書き込みが禁止されている記憶領域であれば、遊技制御用マイクロコンピュータ５６０のＩＤナンバを、ＲＯＭ５４の所定の記憶領域に記憶していてもよく、ＲＡＭ５５の所定の記憶領域に記憶していてもよい。
【０２２８】
そして、初期値変更方式設定データ「０１ｈ」が記憶されている場合、ＣＰＵ５６は、予め記憶するＩＤナンバにもとづく演算値にカウント値の初期値を変更させる。そのようにすれば、乱数回路５０３が発生する乱数のランダム性をより向上させることができ、遊技制御用マイクロコンピュータ５６０のＩＤナンバを見ただけでは乱数の初期値を認識しにくくすることができる。そのため、無線信号を用いた取り込み信号を遊技機に対して発生させるなどの行為によって、大当り状態への移行条件を不正に成立させられてしまうことをより確実に防止することができ、セキュリティ性を向上させることができる。
【０２２９】
また、例えば、初期値変更方式設定データ「０１ｈ」が記憶されている場合、ＣＰＵ５６は、遊技制御用マイクロコンピュータ５６０のＩＤナンバと所定値とを演算して（例えば、ＩＤナンバに所定値を加算して）求めた演算値にカウント値の初期値を変更させる。この場合、例えば、ＣＰＵ５６は、乱数を用いてランダムに変化させた値をＩＤナンバと演算することによって、演算に用いる値をランダムに更新し初期値を求めてもよい。そのようにすれば、乱数回路５０３が発生する乱数のランダム性をより向上させることができる。
【０２３０】
乱数回路選択モジュール５５１ｆは、遊技制御用マイクロコンピュータ５６０が内蔵する各乱数回路５０３の中から、タイマ割込処理の実行時に用いる乱数回路を設定するためのプログラムモジュールである。ＣＰＵ５６は、乱数回路選択モジュール５５１ｆに従って処理を実行することによって、遊技制御用マイクロコンピュータ５６０が内蔵する２つの乱数回路（１２ビット乱数回路５０３ａおよび１６ビット乱数回路５０３ｂ）のうち、いずれの乱数回路をタイマ割込処理の実行時に用いるかを設定する。例えば、ＣＰＵ５６は、ＲＯＭ５４の所定の記憶領域に記憶された所定の設定値（ユーザによって予め設定された値）に従って、タイマ割込処理の実行時に用いる乱数回路として、１２ビット乱数回路５０３ａまたは１６ビット乱数回路５０３ｂを設定する。
【０２３１】
なお、タイマ割込処理の実行時に用いる乱数回路として、１２ビット乱数回路５０３ａおよび１６ビット乱数回路５０３ｂの両方を設定してもよい。この場合、ＣＰＵ５６は、例えば、１２ビット乱数回路５０３ａが発生した乱数にもとづいて変動パターンを決定し、１６ビット乱数回路５０３ｂが発生した乱数にもとづいて大当り判定を行うようにしてもよい。この実施の形態では、乱数値記憶回路５３１は、１２ビット乱数回路５０３ａと１６ビット乱数回路５０３ｂとにそれぞれ存在する（すなわち、１２ビット用の乱数を記憶する乱数値記憶回路と、１６ビット用の乱数を記憶する乱数値記憶回路とが、別個に存在する）。また、１２ビット乱数回路５０３ａおよび１６ビット乱数回路５０３ｂの両方を設定した場合、ＣＰＵ５６は、１２ビット乱数回路５０３ａから読み出した乱数と、１６ビット乱数回路５０３ｂから読み出した乱数とを、ＲＡＭ５５に設けられた別々のバッファ領域にそれぞれ格納する。そのため、１２ビット乱数回路５０３ａから乱数を読み出すタイミングと、１６ビット乱数回路５０３ｂから乱数を読み出すタイミングとが同じであっても、２つの異なる乱数を抽出し別々のバッファ領域に格納することができる。
【０２３２】
乱数値更新プログラム５５５は、乱数更新方式として第１の乱数更新方式が選択されているときに、乱数値記憶回路５３１に格納されているランダムＲの値を更新させるためのプログラムである。ＣＰＵ５６は、乱数値更新プログラム５５５に従って処理を実行することによって、乱数値更新手段として機能する。ＣＰＵ５６は、第１の乱数更新方式が選択されているときに、乱数値更新プログラム５５５を実行して、カウント値更新データ「０１ｈ」をカウント値更新レジスタ５３８に書き込むことにより、カウンタ５２１にカウント値を更新させ、乱数値記憶回路５３１に格納さているランダムＲの値を更新させる。なお、乱数更新方式として第２の乱数更新方式が選択されている場合には、クロック信号出力回路５３７が出力する乱数発生用クロック信号によって、カウンタ５２１にカウント値を更新させ、乱数値記憶回路５３１に格納さているランダムＲの値を更新させることになる。
【０２３３】
表示結果決定プログラム５５２は、特別図柄表示装置８における表示結果を大当り図柄とするか否かを決定するためのプログラムである。ＣＰＵ５６は、表示結果決定プログラム５５２に従って処理を実行することによって、表示結果決定手段として機能する。
【０２３４】
この実施の形態では、ＣＰＵ５６は、遊技球が可変入賞球装置１５に入賞して特別図柄の可変表示を実行するための条件（実行条件）が成立したことに応じて、表示結果決定プログラム５５２に従って処理を実行する。そして、ＣＰＵ５６は、乱数値記憶回路５３１から更新後のランダムＲの値を読み出して、特別図柄表示装置８における表示結果を大当り図柄とするか否かを決定する。
【０２３５】
図３６は、第１の乱数更新方式が選択されている場合に、ＣＰＵ５６がランダムＲの値を更新させたりランダムＲの値を読出したりする動作を示す説明図である。図３６に示すように、第１の乱数更新方式が選択されている場合、ＣＰＵ５６は、カウント値更新データ「０１ｈ」をカウント値更新レジスタ５３８に書き込むことによって、乱数値記憶回路５３１が記憶するランダムＲの値（例えば「２」）を更新させる。そして、ＣＰＵ５６は、遊技球が可変入賞球装置１５に入賞して特別図柄の可変表示を実行するための条件（実行条件）が成立したことに応じて、乱数値記憶回路５３１からランダムＲの値（例えば「２」）を読み出す。
【０２３６】
なお、乱数値記憶回路５３１が記憶するランダムＲの値をさらに更新させる場合、前回更新時にランダムＲの値を更新したときから、クロック回路５０１が出力するシステムクロック信号の周期以上の間隔を経過したときに、カウント値更新レジスタ５３８にカウント値更新データ「０１ｈ」を書き込まなければならない。なぜなら、更新後のランダムＲの値を乱数値記憶回路５３１から読み出す時間を確保する必要があるからである。
【０２３７】
図３７は、第２の乱数更新方式が選択されている場合に、ＣＰＵ５６がランダムＲの値を読出したりする動作を示す説明図である。図３７に示すように、第２の乱数更新方式が選択されている場合、タイマ回路５３４は、乱数値取込データ「０１ｈ」を乱数値取込レジスタ５３９に書き込むことによって、カウンタ５２１が出力するカウント値（例えば「２」）を乱数値記憶回路５３１に取り込ませて、乱数値記憶回路５３１が記憶するランダムＲの値を更新させる。そして、ＣＰＵ５６は、乱数値記憶回路５３１から更新後のランダムＲの値（例えば「２」）を読み出す。
【０２３８】
具体的には、第２の乱数更新方式が選択されている場合、カウンタ５２１は、乱数発生用クロック信号ＳＩ１を入力したことをトリガとしてカウント値Ｃを更新する。その後、乱数値取込データ「０１ｈ」が乱数値取込レジスタ５３９に書き込まれると、ラッチ信号生成回路５３３はラッチ信号ＳＬを乱数値記憶回路５３１に出力する。そして、乱数値記憶回路５３１は、ラッチ信号ＳＬを入力したことをトリガとしてカウンタ５２１が出力するカウント値を読み込んで記憶する。そして、ＣＰＵ５６は、乱数値記憶回路５３１が記憶するランダムＲの値を読み出す。
【０２３９】
なお、タイマ回路５３４が乱数値取込データ「０１ｈ」を乱数値取込レジスタ５３９に書き込まなければ、カウンタ５２１がカウント値を更新しても、乱数値記憶回路５３１は、カウンタ５２１が更新する乱数値を記憶しない。例えば、タイマ回路５３４が乱数値取込データ「０１ｈ」を乱数値取込レジスタ５３９に書き込み、カウンタ５２１が出力するカウント値「３」を乱数値記憶回路５３１に取り込ませて、乱数値記憶回路５３１が記憶するランダムＲの値「３」を更新させたとする。この場合、タイマ回路５３４が乱数値取込データ「０１ｈ」を再び乱数値取込レジスタ５３９に書き込まなければ、カウンタ５２１が出力するカウント値が「３」から「４」や「５」に更新されても、乱数値記憶回路５３１が記憶する乱数値は更新されず、乱数値記憶回路５３１から読み出される乱数値は「３」のままである。
【０２４０】
カウント値順列変更プログラム５５４は、カウント値順列変更レジスタ５３６にカウント値順列変更データ「０１ｈ」を書き込んで、乱数値記憶回路５３１が記憶するカウント値の順列を変更させるカウント値順列変更処理を実行するためのプログラムである。ＣＰＵ５６は、カウント値順列変更プログラム５５４に従って処理を実行することによって、数値データ順列変更手段として機能する。ＣＰＵ５６は、カウント値順列変更プログラム５５４を実行して、カウント値順列変更レジスタ５３６にカウント値順列変更データ「０１ｈ」を書き込むことによって、カウント値順列変更回路５２３が出力し乱数値記憶回路５３１に入力されるカウント値の順列を変更させる。
【０２４１】
シリアル通信回路設定プログラム５５６は、シリアル通信回路５０５に各制御基板に搭載されたマイクロコンピュータ（本例では、払出制御用マイクロコンピュータ）とシリアル通信させるための初期設定を行うシリアル通信回路設定処理を実行させるためのプログラムである。すなわち、ＣＰＵ５６は、シリアル通信回路設定プログラム５５６に従って処理を実行することにより、シリアル通信回路設定手段として機能する。
【０２４２】
割込優先順位設定プログラム５５７は、シリアル通信回路５０５の割り込み要求に応じて実行する割込処理の優先順位を初期設定するためのプログラムである。すなわち、ＣＰＵ５６は、割込優先順位設定プログラム５５６に従って処理を実行することにより、優先順位初期設定手段として機能する。
【０２４３】
また、遊技制御用マイクロコンピュータ５６０は、図３８に示すように、特図保留メモリ５７０と、大当り判定用テーブルメモリ５７１と、フラグメモリ５７２と、始動入賞口スイッチタイマメモリ５７３とを備える。
【０２４４】
特図保留メモリ５７０は、遊技球が可変入賞球装置１５に入賞して特別図柄の可変表示の実行条件は成立したが、未だ可変表示の開始条件が成立していない（例えば、特別図柄表示装置８がまだ可変表示を実行中である）可変表示の実行条件の成立回数を含む保留データを記憶するためのメモリ（保存領域）である。特図保留メモリ５７０は、４つのエントリを備え、各エントリには、遊技球が可変入賞球装置１５に入賞した順に、保留番号と、入賞に応じて乱数値記憶回路５３１から読み出したランダムＲの値とが対応付けて格納される。また、特別図柄表示装置８における特別図柄の可変表示が１回終了したり、大当り遊技状態が終了したりするごとに、特図保留メモリ５７０の最上位の情報にもとづいた可変表示の開始条件が成立し、特図保留メモリ５７０最上位の情報にもとづいた可変表示が実行される。この場合、特別図柄の可変表示の開始条件が成立すると、特図保留メモリ５７０の第２位以下に登録されている情報が１位ずつ繰り上がる。また、特別図柄の可変表示中に遊技球が可変入賞球装置１５に新たに入賞した場合には、その新たな入賞にもとづいて乱数値記憶回路５３１から読み出されたランダムＲの値が、特図保留メモリ５７０の空エントリに登録される。
【０２４５】
大当り判定用テーブルメモリ５７１は、ＣＰＵ５６が特別図柄表示装置８の表示結果を大当り図柄とするか否かを判定するために用いる複数の大当り判定テーブルを記憶する。具体的には、大当り判定用テーブルメモリ５７１は、図３９（Ａ）に示すように、確変状態以外の遊技状態（通常状態という）において用いられる通常時大当り判定テーブル５７１ａを記憶する。また、大当り判定用テーブルメモリ５７１は、図３９（Ｂ）に示すように、確変状態において用いられる確変時大当り判定テーブル５７１ｂを格納する。なお、図３９に示す判定テーブルを用いて大当り判定を行う場合、乱数最大値設定レジスタ５３５に設定された乱数最大値によって大当りと判定する確率が大きく変化することになる。この場合、例えば、設定される乱数最大値が小さすぎると、通常時大当り判定テーブル５７１ａを用いた場合と、確変時大当り判定テーブル５７１ｂを用いた場合とで、大当りと判定する確率の差が小さくなってしまい、遊技者の遊技に対する興味を減退させてしまうことになる。そのため、乱数回路５０３および乱数最大値に対応づけて、複数の判定テーブル（複数の通常時大当り判定用テーブル５７１ａおよび複数の確変時大当り判定用テーブル５７１ｂ）を大当り判定用テーブルメモリ５７１に記憶してもよい。そして、ＣＰＵ５６は、大当り判定用テーブルメモリ５７１が記憶する判定テーブルのうち、使用する乱数回路５０３および乱数最大値に対応する判定テーブル５７１ａ，５７１ｂを用いて、表示結果決定プログラム５５２に従って、特別図柄表示装置８の表示結果を大当り図柄とするか否かを判定するようにしてもよい。そのようにすることによって、使用する乱数回路５０３の種類や乱数最大値が異なっても、大当りと判定する確率がある程度同じになるように制御することができる。
【０２４６】
なお、この実施の形態では、１６ビット乱数回路５０３ｂを用いることにする。すなわち、ステップＳ１５１の処理で１６ビット乱数回路５０３ｂを用いることに決定されたとする。よって、ランダムＲとして、１６ビットで発生できる範囲（０から６５５３５までの範囲）の値をとりうる。
【０２４７】
フラグメモリ５７２には、遊技の進行を制御する遊技制御処理において用いられる各種のフラグが設定される。例えば、フラグメモリ５７２には、遊技状態が確変状態であることを示す確変フラグや、大当り状態であることを示す大当りフラグが設定される。
【０２４８】
始動口スイッチタイマメモリ５７３は、始動口スイッチ１４ａから入力される入賞検出信号ＳＳに応じて加算またはクリアされるタイマ値を記憶する。
【０２４９】
図４０および図４１は、遊技制御手段における出力ポートの割り当ての例を示す説明図である。図４０に示すように、出力ポート０は払出制御基板３７に送信される払出制御信号（本例では、接続確認信号）の出力ポートである。また、音／ランプ制御基板８０ｂに送信される演出制御コマンドの８ビットのデータ（演出制御信号）は出力ポート１から出力される。なお、図４０および図４１に示された「論理」（例えば１がオン状態）と逆の論理（例えば０がオン状態）を用いてもよいが、特に、接続確認信号については、主基板３１と払出制御基板３７との間の信号線において断線が生じた場合やケーブル外れの場合（ケーブル未接続を含む）等に、払出制御用マイクロコンピュータ３７０では必ずオフ状態と検知されるように「論理」が定められる。具体的には、一般に、断線やケーブル外れが生ずると信号の受信側ではハイレベルが検知されるので、主基板３１と払出制御基板３７との間の信号線でのハイレベルが、遊技制御手段における出力ポートにおいてオフ状態になるように「論理」が定められる。従って、必要であれば、主基板３１において出力ポートの外側に、信号を論理反転させる出力バッファ回路が設置される。
【０２５０】
大入賞口を開閉する可変入賞球装置２０を開閉するためのソレノイド（大入賞口扉ソレノイド）２１、大入賞口内の経路を切り換えるためのソレノイド（大入賞口内誘導板ソレノイド）２１Ａおよび可変入賞球装置１５を開閉するためのソレノイド（普通電動役物ソレノイド）１６に対する駆動信号は、出力ポート２から出力される。また、音／ランプ制御基板８０ｂに送信される演出制御コマンドについての演出制御ＩＮＴ信号（取込信号）も出力ポート２から出力される。演出制御ＩＮＴ信号は、演出制御コマンドの８ビットのデータを取り込む（受信する）ことを演出制御手段に指令するための信号である。
【０２５１】
そして、出力ポート３，４から、情報出力回路６４を介して情報端子板３４やターミナル基板１６０に至る各種情報出力用信号すなわち制御に関わる情報の出力データが出力される。
【０２５２】
図４２は、遊技制御手段における入力ポートのビット割り当ての例を示す説明図である。図４２に示すように、入力ポート０のビット１〜７には、それぞれ、カウントスイッチ２３、ゲートスイッチ３２ａ、入賞口スイッチ３３ａ，３９ａ，２９ａ，３０ａ、始動口スイッチ１４ａの検出信号が入力される。また、入力ポート１のビット０，１には、それぞれ、払出制御基板３７からの電源断信号およびクリアスイッチ９２１の検出信号が入力される。また、入力ポート２には、払出制御用マイクロコンピュータ３７０を経由して、払出個数カウントスイッチ３０１の検出信号が入力される。なお、Ｖ入賞領域を設けた場合、遊技制御手段における入力ポート（例えば、入力ポート０のビット０）に、Ｖ入賞スイッチ（Ｖカウントスイッチ）の検出信号も入力される。
【０２５３】
次に遊技機の動作について説明する。図４３、図４４および図４５は、遊技機に対して電力供給が開始され遊技制御用マイクロコンピュータ５６０へのリセット信号がハイレベルになったことに応じて遊技制御用マイクロコンピュータ５６０のＣＰＵ５６が実行するメイン処理を示すフローチャートである。リセット信号が入力されるリセット端子の入力レベルがハイレベルになると、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６は、プログラムの内容が正当か否かを確認するための処理であるセキュリティチェック処理を実行した後、ステップＳ１以降のメイン処理を開始する。メイン処理において、ＣＰＵ５６は、まず、必要な初期設定を行う。
【０２５４】
初期設定処理において、ＣＰＵ５６は、まず、割込禁止に設定する（ステップＳ１）。次に、マスク可能割込の割込モードを設定し（ステップＳ２）、スタックポインタにスタックポインタ指定アドレスを設定する（ステップＳ３）。なお、ステップＳ２では、遊技制御用マイクロコンピュータ５６０の特定レジスタ（Ｉレジスタ）の値（１バイト）と内蔵デバイスが出力する割込ベクタ（１バイト：最下位ビット０）から合成されるアドレスが、割込番地を示すモードに設定する。また、マスク可能な割込が発生すると、ＣＰＵ５６は、自動的に割込禁止状態に設定するとともに、プログラムカウンタの内容をスタックにセーブする。
【０２５５】
次いで、内蔵デバイスレジスタの設定（初期化）を行う（ステップＳ４）。ステップＳ４の処理によって、内蔵デバイス（内蔵周辺回路）であるＣＴＣ（カウンタ／タイマ）およびＰＩＯ（パラレル入出力ポート）の設定（初期化）がなされる。
【０２５６】
この実施の形態で用いられる遊技制御用マイクロコンピュータ５６０は、Ｉ／Ｏポート（ＰＩＯ）およびタイマ／カウンタ回路（ＣＴＣ）５０４も内蔵している。
【０２５７】
次に、入力ポート１のビット０の状態によって電源断信号がオフ状態になっているか否か確認する（ステップＳ５）。遊技機に対する電力供給が開始されたときに、＋５Ｖ電源などの各種電源の出力電圧は徐々に規定値に達するのであるが、ステップＳ５の処理によって、すなわち、電源断信号が出力されていない（ハイレベルになっている）ことを確認することによりＣＰＵ５６は電源電圧が安定したことを確認することができる。
【０２５８】
電源断信号がオン状態である場合には、ＣＰＵ５６は、所定期間（例えば、０．１秒）の遅延時間の後に（ステップＳ８０）、再度、電源断信号がオフ状態になっているか否か確認する。電源断信号がオフ状態になっている場合には、ＲＡＭ５５をアクセス可能状態に設定し（ステップＳ６）、クリア信号のチェック処理に移行する。
【０２５９】
なお、電源断信号がオフ状態である場合に、遊技の進行を制御する遊技装置制御処理（遊技制御処理）の開始タイミングをソフトウェアで遅らせるためのソフトウェア遅延処理を実行するようにしてもよい。そのようなソフトウェア遅延処理によって、ソフトウェア遅延処理を実行しない場合に比べて、遊技制御処理の開始タイミングを遅延させることができる。遅延処理を実行したときには、他の制御基板（例えば、払出制御基板３７）に対して、遊技制御基板（主基板３１）が送信するコマンドを他の制御基板のマイクロコンピュータが受信できないという状況が発生することを防止できる。
【０２６０】
次いで、ＣＰＵ５６は、クリアスイッチがオンされているか否か確認する（ステップＳ７）。なお、ＣＰＵ５６は、入力ポート０を介して１回だけクリア信号の状態を確認するようにしてもよいが、複数回クリア信号の状態を確認するようにしてもよい。例えば、クリア信号の状態がオフ状態であることを確認したら、所定時間（例えば、０．１秒）の遅延時間をおいた後、クリア信号の状態を再確認する。そのときにクリア信号の状態がオン状態であることを確認したら、クリア信号がオン状態になっていると判定する。また、このときにクリア信号の状態がオフ状態であることを確認したら、所定時間の遅延時間をおいた後、再度、クリア信号の状態を再確認するようにしてもよい。ここで、再確認の回数は、１回または２回に限られず、３回以上であってもよい。また、２回チェックして、チェック結果が一致していなかったときにもう一度確認するようにしてもよい。
【０２６１】
ステップＳ７でクリアスイッチがオンでない場合には、遊技機への電力供給が停止したときにバックアップＲＡＭ領域のデータ保護処理（例えばパリティデータの付加等の電力供給停止時処理）が行われたか否か確認する（ステップＳ８）。この実施の形態では、電力供給の停止が生じた場合には、バックアップＲＡＭ領域のデータを保護するための処理が行われている。そのような電力供給停止時処理が行われていたことを確認した場合には、ＣＰＵ５６は、電力供給停止時処理が行われた、すなわち電力供給停止時の制御状態が保存されていると判定する。電力供給停止時処理が行われていないことを確認した場合には、ＣＰＵ５６は初期化処理を実行する。
【０２６２】
電力供給停止時処理が行われていたか否かは、電力供給停止時処理においてバックアップＲＡＭ領域に保存されるバックアップ監視タイマの値が、電力供給停止時処理を実行したことに応じた値（例えば２）になっているか否かによって確認される。なお、そのような確認の仕方は一例であって、例えば、電力供給停止時処理においてバックアップフラグ領域に電力供給停止時処理を実行したことを示すフラグをセットし、ステップＳ８において、そのフラグがセットされていることを確認したら電力供給停止時処理が行われたと判定してもよい。
【０２６３】
電力供給停止時の制御状態が保存されていると判定したら、ＣＰＵ５６は、バックアップＲＡＭ領域のデータチェック（この例ではパリティチェック）を行う（ステップＳ９）。この実施の形態では、クリアデータ（００）をチェックサムデータエリアにセットし、チェックサム算出開始アドレスをポインタにセットする。また、チェックサムの対象になるデータ数に対応するチェックサム算出回数をセットする。そして、チェックサムデータエリアの内容とポインタが指すＲＡＭ領域の内容との排他的論理和を演算する。演算結果をチェックサムデータエリアにストアするとともに、ポインタの値を１増やし、チェックサム算出回数の値を１減算する。以上の処理が、チェックサム算出回数の値が０になるまで繰り返される。チェックサム算出回数の値が０になったら、ＣＰＵ５６は、チェックサムデータエリアの内容の各ビットの値を反転し、反転後のデータをチェックサムにする。
【０２６４】
電力供給停止時処理において、上記の処理と同様の処理によってチェックサムが算出され、チェックサムはバックアップＲＡＭ領域に保存されている。ステップＳ９では、算出したチェックサムと保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップＲＡＭ領域のデータは保存されているはずであるから、チェック結果（比較結果）は正常（一致）になる。チェック結果が正常でないということは、バックアップＲＡＭ領域のデータが、電力供給停止時のデータとは異なっている可能性があることを意味する。そのような場合には、内部状態を電力供給停止時の状態に戻すことができないので、電力供給の停止からの復旧時でない電源投入時に実行される初期化処理（ステップＳ１０〜Ｓ１４の処理）を実行する。
【０２６５】
チェック結果が正常であれば、ＣＰＵ５６は、遊技制御手段の内部状態と演出制御手段等の電気部品制御手段の制御状態を電力供給停止時の状態に戻すための遊技状態復旧処理を行う。具体的には、ＲＯＭ５４に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し（ステップＳ９１）、バックアップ時設定テーブルの内容を順次作業領域（ＲＡＭ５５内の領域）に設定する（ステップＳ９２）。作業領域はバックアップ電源によって電源バックアップされている。バックアップ時設定テーブルには、作業領域のうち初期化してもよい領域についての初期化データが設定されている。ステップＳ９１およびＳ９２の処理によって、作業領域のうち初期化してはならない部分については、保存されていた内容がそのまま残る。初期化してはならない部分とは、例えば、電力供給停止前の遊技状態を示すデータ（特別図柄プロセスフラグなど）、出力ポートの出力状態が保存されている領域（出力ポートバッファ）、未払出賞球数を示すデータが設定されている部分などである。
【０２６６】
また、ＣＰＵ５６は、ＲＯＭ５４に格納されているバックアップ時コマンド送信テーブルの先頭アドレスをポインタに設定し（ステップＳ９３）、ステップＳ１５に移行する。
【０２６７】
初期化処理では、ＣＰＵ５６は、まず、ＲＡＭクリア処理を行う（ステップＳ１０）。なお、ＲＡＭ５５の全領域を初期化せず、所定のデータをそのままにしてもよい。また、ＲＯＭ５４に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し（ステップＳ１１）、初期化時設定テーブルの内容を順次業領域に設定する（ステップＳ１２）。
【０２６８】
ステップＳ１１およびＳ１２の処理によって、例えば、普通図柄判定用乱数カウンタ、普通図柄判定用バッファ、特別図柄バッファ、総賞球数格納バッファ、特別図柄プロセスフラグ、賞球中フラグ、球切れフラグなど制御状態に応じて選択的に処理を行うためのフラグに初期値が設定される。また、出力ポートバッファにおける接続確認信号を出力する出力ポートに対応するビットがセット（接続確認信号のオン状態に対応）される。
【０２６９】
また、ＣＰＵ５６は、ＲＯＭ５４に格納されている初期化時コマンド送信テーブルの先頭アドレスをポインタに設定し（ステップＳ１３）、その内容に従ってサブ基板を初期化するための初期化コマンドをサブ基板に送信する処理を実行する（ステップＳ１４）。初期化コマンドとして、可変表示装置９に表示される初期図柄を示すコマンドや払出制御基板３７への初期化コマンド等を使用することができる。
【０２７０】
また、ＣＰＵ５６は、各乱数回路５０３ａ，５０３ｂを初期設定する乱数回路設定処理を実行する（ステップＳ１５）。この場合、ＣＰＵ５６は、乱数回路設定プログラム５５１に従って処理を実行することによって、各乱数回路５０３ａ，５０３ｂにランダムＲの値を更新させるための設定を行う。
【０２７１】
また、ＣＰＵ５６は、シリアル通信回路５０５を初期設定するシリアル通信回路設定処理を実行する（ステップＳ１５ａ）。この場合、ＣＰＵ５６は、シリアル通信回路設定プログラム５５６に従って処理を実行することによって、シリアル通信回路５０５に払出制御用マイクロコンピュータとシリアル通信させるための設定を行う。
【０２７２】
シリアル通信回路５０５を初期設定すると、ＣＰＵ５６は、シリアル通信回路５０５の割り込み要求に応じて実行する割込処理の優先順位を初期設定する（ステップＳ１５ｂ）。この場合、ＣＰＵ５６は、割込優先順位設定プログラム５５７に従って処理を実行することによって、割込処理の優先順位を初期設定する。
【０２７３】
例えば、ＣＰＵ５６は、各割込処理のデフォルトの優先順位を含む所定の割込処理優先順位テーブルに従って、各割込処理の優先順位を初期設定する。図４６は、割込処理優先順位テーブルの例を示す説明図である。この実施の形態では、ＣＰＵ５６は、図４６に示す割込処理優先順位テーブルに従って、シリアル通信回路５０５において通信エラーが発生したことを割込原因とする割込処理を優先して実行するように初期設定する。この場合、例えば、ＣＰＵ５６は、通信エラーが発生したことを割込原因とする割込処理を優先して実行する旨を示す通信エラー時割込優先実行フラグをセットする。
【０２７４】
なお、この実施の形態では、タイマ割込とシリアル通信回路５０５からの割り込み要求とが同時に発生した場合、ＣＰＵ５６は、タイマ割込による割込処理を優先して行う。
【０２７５】
また、ユーザによって各割込処理のデフォルトの優先順位を変更することもできる。例えば、遊技制御用マイクロコンピュータ５６０は、ユーザ（例えば、遊技機の製作者）によって設定された割込処理を指定する指定情報を、あらかじめＲＯＭ５４の所定の記憶領域に記憶している。そして、ＣＰＵ５６は、ＲＯＭ５４の所定の記憶領域に記憶された指定情報に従って、割込処理の優先順位を設定する。
【０２７６】
そして、ＣＰＵ５６は、所定時間（例えば２ｍｓ）ごとに定期的にタイマ割込がかかるように遊技制御用マイクロコンピュータ５６０に内蔵されているＣＴＣのレジスタの設定を行なうタイマ割込設定処理を実行する（ステップＳ１６）。すなわち、初期値として例えば２ｍｓに相当する値が所定のレジスタ（時間定数レジスタ）に設定される。この実施の形態では、２ｍｓごとに定期的にタイマ割込がかかるとする。
【０２７７】
タイマ割込の設定が完了すると、ＣＰＵ５６は、まず、割込禁止状態にして（ステップＳ１７）、電源断信号が出力されたか否か（オン状態になったか否か）を検出する電源断処理（電源断検出処理）を実行する（ステップＳ１８ａ）。また、ＣＰＵ５６は、初期値用乱数更新処理を実行して（ステップＳ１８ｂ）、再び割込許可状態にする（ステップＳ１９）。すなわち、ＣＰＵ５６は、電源断処理および初期値用乱数更新処理が実行されるときには割込禁止状態にして、電源断処理および初期値用乱数更新処理の実行が終了すると割込許可状態にする。
【０２７８】
なお、初期値用乱数更新処理とは、初期値用乱数を発生するためのカウンタのカウント値を更新する処理である。初期値用乱数とは、大当りの種類を決定するための判定用乱数（例えば、大当りを発生させる特別図柄を決定するための大当り図柄決定用乱数や、遊技状態を確変状態に移行させるかを決定するための確変決定用乱数、普通図柄にもとづく当りを発生させるか否かを決定するための普通図柄当たり判定用乱数）を発生するためのカウンタ（判定用乱数発生カウンタ）等のカウント値の初期値を決定するための乱数である。後述する遊技制御処理（遊技制御用マイクロコンピュータが、遊技機に設けられている可変表示装置９、可変入賞球装置１５、球払出装置９７等の遊技用の装置を、自身で制御する処理、または他のマイクロコンピュータに制御させるために指令信号を送信する処理、遊技装置制御処理ともいう）において、判定用乱数発生カウンタのカウント値が１周すると、そのカウンタに初期値が設定される。
【０２７９】
また、初期値用乱数更新処理が実行されるときに割込禁止状態にされるのは、初期値用乱数更新処理が後述するタイマ割込処理でも実行される（すなわち、タイマ割込処理のステップＳ２４でも同じ処理が実行される）ことから、タイマ割込処理における処理と競合してしまうのを避けるためである。すなわち、ステップＳ１８ｂの処理中にタイマ割込が発生してタイマ割込処理中で初期値用乱数を発生するためのカウンタのカウント値を更新してしまったのでは、カウント値の連続性が損なわれる場合がある。しかし、ステップＳ１８ｂの処理中では割込禁止状態にしておけば、そのような不都合が生ずることはない。
【０２８０】
ステップＳ１９で割込許可状態に設定されると、次にステップＳ１７の処理が実行されて割込禁止状態とされるまで、タイマ割込またはシリアル通信回路５０５からの割り込み要求を許可する状態となる。そして、割込許可状態に設定されている間に、タイマ割込が発生すると、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６は、後述するタイマ割込処理を実行する。また、割込許可状態に設定されている間に、シリアル通信回路５０５から割り込み要求が発生すると、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６は、後述する各割込処理（通信エラー割込処理や、受信時割込処理、送信完了割込処理）を実行する。また、本実施の形態では、ステップＳ１７からステップＳ１９までのループ処理の前にステップＳ１５ｂを実行することによって、タイマ割込または割り込み要求を許可する状態に設定される前に、割込処理の優先順位を設定または変更する処理が行われる。
【０２８１】
次いで、ＣＰＵ５６は、表示用乱数更新処理を実行する（ステップＳ１９ａ）。なお、表示用乱数とは、特別図柄表示器８の表示を決定するための乱数である。この実施の形態では、表示用乱数として、特別図柄の変動パターンを決定するための変動パターン決定用乱数や、大当りを発生させない場合にリーチとするか否かを決定するためのリーチ判定用乱数が用いられる。また、表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。
【０２８２】
次いで、ＣＰＵ５６は、特別図柄の変動に同期する飾り図柄に関する演出制御コマンドをＲＡＭ５５の所定の領域に設定して演出制御コマンドを送出する処理を行う（コマンド制御処理：ステップＳ１９ｂ）。なお、飾り図柄の変動が特別図柄の変動に同期するとは、変動時間（可変表示期間）が同じであることを意味する。
【０２８３】
また、ＣＰＵ５６は、入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａ等の検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する（ステップＳ１９ｃ）。具体的には、入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａ等がオンしたことにもとづく入賞検出に応じて、払出制御基板３７に賞球個数を示す賞球個数コマンド等の払出指令コマンドを出力する。払出制御基板３７に搭載されている払出制御用マイクロコンピュータ３７０は、賞球個数を示す賞球個数コマンドの受信に応じて球払出装置９７を駆動する。
【０２８４】
なお、この実施の形態では、後述するタイマ割込処理の入力判定処理において、入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａ等がオンしたことにもとづく入賞検出に応じて、入賞数がカウントされる。そして、メイン処理の賞球処理において、カウントされた入賞数にもとづいて、賞球個数コマンドが払出制御基板３７に送信される。
【０２８５】
また、ＣＰＵ５６は、特別図柄プロセス処理を行う（ステップＳ１９ｄ）。特別図柄プロセス処理では、遊技状態に応じてパチンコ遊技機１を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。また、普通図柄プロセス処理を行う（ステップＳ１９ｅ）。普通図柄プロセス処理では、普通図柄表示器１０の表示状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
【０２８６】
また、ＣＰＵ５６は、例えばホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う（ステップＳ１９ｆ）。
【０２８７】
また、遊技機の制御状態を遊技機外部で確認できるようにするための試験信号を出力する処理である試験端子処理を実行する（ステップＳ１９ｇ）。また、この実施の形態では、出力ポートの出力状態に対応したＲＡＭ領域（出力ポートバッファ）が設けられているのであるが、ＣＰＵ５６は、出力ポート２のＲＡＭ領域におけるソレノイドに関する内容を出力ポートに出力する（ステップＳ１９ｈ：出力処理）。
【０２８８】
出力処理を実行すると、ＣＰＵ５６は、ステップＳ１７に移行し、ステップＳ１７以降の処理を再び実行する。すなわち、ステップＳ１７からステップＳ１９ｈまでの処理が繰り返し実行される。
【０２８９】
次に、メイン処理における乱数回路設定処理（ステップＳ１５）を説明する。図４７は、乱数回路設定処理を示すフローチャートである。乱数回路設定処理において、ＣＰＵ５６は、まず、乱数回路設定プログラム５５１に含まれる乱数回路選択モジュール５５１ｆに従って処理を実行し、遊技制御用マイクロコンピュータ５６０が内蔵する各乱数回路５０３ａ，５０３ｂの中から、タイマ割込処理の実行時に用いる乱数回路を設定する（ステップＳ１５１）。例えば、遊技制御用マイクロコンピュータ５６０は、ユーザ（例えば、遊技機の製作者）によって設定されたタイマ割込処理の実行時に用いる乱数回路５０３を指定する指定情報を、あらかじめＲＯＭ５４の所定の記憶領域に記憶している。そして、ＣＰＵ５６は、ＲＯＭ５４の所定の記憶領域に記憶された指定情報に従って、１２ビット乱数回路５０３ａまたは１６ビット乱数回路５０３ｂのいずれかを選択し、選択した乱数回路をタイマ割込処理の実行時に用いる乱数回路として設定する。なお、タイマ割込処理の実行時に用いる乱数回路として、１２ビット乱数回路５０３ａおよび１６ビット乱数回路５０３ｂの両方を設定してもよい。
【０２９０】
上記のように、ステップＳ１５１において、更新可能な数値データの所定の範囲が異なる複数の乱数回路（１２ビット乱数回路５０３ａと１６ビット乱数回路５０３ｂ）について、それぞれ使用可能とするか否かを設定するので、タイマ割込処理の実行中に不要な乱数を処理することを防止することができ、遊技制御用マイクロコンピュータ５６０の制御負担を軽減することができる。例えば、遊技制御用マイクロコンピュータ５６０が、２つの乱数回路５０３ａ，５０３ｂのうちの一方が発生する乱数のみを用いて遊技制御処理を行う場合、遊技制御処理に用いない方の乱数回路から乱数を読み出す処理等を行わないようにでき、遊技制御用マイクロコンピュータ５６０の制御負担を軽減できる。
【０２９１】
ＣＰＵ５６は、ステップＳ１５１で使用する乱数回路５０３を設定すると、例えば、乱数回路起動レジスタ５４１にデータを書き込まない等により、カウンタ５２１やクロック信号出力回路５２４の動作を停止させることで、使用しないように設定した方の乱数回路のカウンタ５２１がカウント値Ｃを更新しないようにする。また、例えば、使用しないように設定した方の乱数回路のカウンタ５２１はカウント値Ｃを更新するが、ＣＰＵ５６は出力制御信号ＳＣを出力しないようにし、乱数値記憶回路５３１から乱数を読み出せないように制御してもよい。また、例えば、ＣＰＵ５６は、タイマ回路５３４に使用しないように設定した方の乱数回路の乱数値取込レジスタ５３９に乱数値取込データ「０１ｈ」を書き込ませないようにし、ラッチ信号生成回路５３３がラッチ信号ＳＬを乱数値記憶回路５３１に出力しないように制御してもよい。
【０２９２】
上記のように、使用する乱数回路５０３を設定するようにすることによって、使用する乱数回路５０３だけを設定することによって、生成する乱数の値の範囲を適切に設定することができる。また、タイマ割込処理の実行中に不要な乱数を処理することを防止することができ、遊技制御用マイクロコンピュータ５６０の制御負担を軽減することができる。例えば、大当りとする判定値として離れた値（例えば、「１」と「１００」を含む判定テーブルを用いて大当り判定を行う場合、所定の大当り確率（例えば、１００分の１）で大当りと判定するようにすると、１６ビット乱数回路５０３ｂによる乱数を用いるよりも、１２ビット乱数回路５０３ａによる乱数を用いた方が、処理すべき判定値の種類の数が少なくて済み、遊技制御用マイクロコンピュータ５６０の制御負担が軽減される。
【０２９３】
また、ＣＰＵ５６は、乱数回路設定プログラム５５１に含まれる乱数最大値設定モジュール５５１ａに従って処理を実行し、ユーザによって予め設定された乱数最大値を指定する乱数最大値設定データを、乱数最大値設定レジスタ５３５に書き込む（ステップＳ１５２）。そのようにすることによって、ユーザによって予め設定されたランダムＲの乱数最大値を乱数回路５０３に設定する。なお、タイマ割込実行時に用いる乱数回路として１２ビット乱数回路５０３ａを設定した場合、ＣＰＵ５６は、乱数最大値（「０」〜「４０９５」のうちのいずれかの値）を指定する乱数最大値設定データを、１２ビット乱数回路５０３ａの乱数最大値設定レジスタ５３５に書き込む。また、タイマ割込実行時に用いる乱数回路として１６ビット乱数回路５０３ｂを設定した場合、ＣＰＵ５６は、乱数最大値（「０」〜「６５５３５」のうちのいずれかの値）を指定する乱数最大値設定データを、１６ビット乱数回路５０３ｂの乱数最大値設定レジスタ５３５に書き込む。
【０２９４】
なお、この実施の形態では、乱数最大値として「０」〜「２５５」が設定された場合には、後述する乱数最大値再設定処理において乱数最大値を所定値に設定しなおすことになる。また、乱数最大値として「２５６」以上の値を書き込む制御を行った場合であっても、データ化けなどの原因によって「０」〜「２５５」の値が乱数最大値設定レジスタ５３５に設定されてしまった場合には、後述する乱数最大値再設定処理において乱数最大値を所定値に設定しなおす。
【０２９５】
上記のように、ステップＳ１５２において、生成する乱数の最大値をあらかじめ乱数最大値設定レジスタ５３５に設定するので、タイマ割込処理の実行中に用いる乱数の範囲より大きい値の乱数を生成してしまうことを防止でき、乱数回路５０３および遊技制御用マイクロコンピュータ５６０の処理負担を軽減することができる。
【０２９６】
また、ＣＰＵ５６は、ステップＳ１５２で乱数最大値設定レジスタ５３５に設定した乱数最大値が所定の下限値以下でないかを確認し、乱数最大値が下限値以下である場合には、乱数最大値設定レジスタ５３５に設定されている乱数最大値の再設定を行う乱数最大値再設定処理を実行する（ステップＳ１５３）。
【０２９７】
また、ＣＰＵ５６は、乱数回路設定プログラム５５１に含まれる初期値変更モジュール５５１ｅに従って処理を実行し、乱数回路５０３のカウンタ５２１が更新するカウント値の初期値を変更させる初期値変更処理を実行する（ステップＳ１５４）。
【０２９８】
また、ＣＰＵ５６は、乱数回路設定プログラム５５１に含まれる乱数更新方式選択モジュール５５１ｂに従って処理を実行し、乱数更新方式選択データを乱数更新方式選択レジスタ５４０に書き込む（ステップＳ１５５）。そのようにすることによって、乱数回路５０３の乱数更新方式を設定する。なお、この実施の形態では、ＣＰＵ５６は、乱数更新方式選択データ「１０ｈ」を乱数更新方式選択レジスタ５４０に書き込むものとする。すなわち、この実施の形態では、乱数回路５０３の乱数更新方式として第２の乱数更新方式が設定される。
【０２９９】
また、ＣＰＵ５６は、乱数回路設定プログラム５５１に含まれる周期設定モジュール５５１ｃに従って処理を実行し、ユーザによって予め設定された乱数発生用クロック信号ＳＩ１の周期を指定する周期設定データ（基準クロック信号を何分周させるかを設定するためのデータ）を、周期設定レジスタ５３７に書き込む（ステップＳ１５６）。そのようにすることによって、ユーザによって予め設定された乱数発生用クロック信号ＳＩ１の周期を乱数回路５０３に設定する。
【０３００】
また、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１によって所定の最終値までカウント値が更新されたときに、カウンタ５２１に入力する初期値を更新するか否かを設定する（ステップＳ１５７）。例えば、遊技制御用マイクロコンピュータ５６０は、カウンタ５２１によって所定の最終値までカウント値が更新されたときに、カウンタ５２１に入力する初期値を更新するか否かを示す設定値を、予めユーザによって設定されＲＯＭ５４の所定領域に記憶している。そして、ＣＰＵ５６は、ＲＯＭ５４の所定の記憶領域に記憶された所定の設定値に従って、カウンタ５２１によって所定の最終値までカウント値が更新されたときに、カウンタ５２１に入力する初期値を更新するか否かを設定する。この実施の形態では、ＣＰＵ５６は、ステップＳ１５７において、カウンタ５２１に入力する初期値を更新すると判定すると、所定の最終値までカウント値が更新されたとき（カウンタ５２１から通知信号を入力したとき）に初期値を更新する旨を示す初期値更新フラグをセットする。この実施の形態では、ステップＳ１５７において、所定の設定値に従って初期値更新フラグをセットする場合を説明する。そして、ＣＰＵ５６は、後述する乱数回路初期値更新処理において、初期値更新フラグがセットされていることにもとづいて、カウンタ５２１が出力するカウント値の初期値を更新する。
【０３０１】
なお、ＣＰＵ５６によってカウント値の初期値を変更するのでなく、最終値までカウント値を更新したことにもとづいて、乱数回路５０３側でカウント値の初期値を所定値に変更するようにしてもよい。例えば、乱数回路５０３は、初期値を更新する旨を示す初期値更新データを格納する初期値更新データレジスタ、及び初期値の変更を行う初期値変更回路を備え、ＣＰＵ５６は、ステップＳ１５７において、初期値更新データを初期値更新データレジスタに設定する。この場合、カウンタ５２１は、最終値までカウント値を更新すると、通知信号を初期値変更回路に出力する。すると、初期値変更回路は、初期値更新データレジスタに初期値更新データが設定されているか否かを確認する。そして、初期値変更回路は、初期値更新データが設定されていることを確認すると、カウント値の初期値を所定値に変更する。なお、初期値変更回路は、後述するカウント値順列変更処理において、順列を変更したカウント値の初期値を変更してもよい。
【０３０２】
また、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１によって所定の最終値までカウント値が更新されたときに、カウンタ５２１が更新するカウント値の順列を変更するか否かを設定する（ステップＳ１５８）。例えば、遊技制御用マイクロコンピュータ５６０は、カウンタ５２１によって所定の最終値までカウント値が更新されたときに、カウンタ５２１が出力するカウント値の順列を変更するか否かを示す設定値を、予めユーザによって設定されＲＯＭ５４の所定領域に記憶している。そして、ＣＰＵ５６は、ＲＯＭ５４の所定の記憶領域に記憶された所定の設定値に従って、カウンタ５２１によって所定の最終値までカウント値が更新されたときに、カウンタ５２１が出力するカウント値の順列を変更するか否かを設定する。この実施の形態では、ＣＰＵ５６は、ステップＳ１５８において、カウンタ５２１が出力するカウント値の順列を変更すると判定すると、所定の最終値までカウント値が更新されたときにカウント値の順列を変更する旨を示すカウント値順列変更フラグをセットする。この実施の形態では、ステップＳ１５８において、所定の設定値に従ってカウント値順列変更フラグをセットする場合を説明する。そして、ＣＰＵ５６は、後述するカウント値順列変更処理において、カウント値順列変更フラグがセットされていることにもとづいて、カウンタ５２１が出力するカウント値の順列を変更する。
【０３０３】
なお、ＣＰＵ５６の制御によってカウント値の順列を変更するのでなく、最終値までカウント値を更新したことにもとづいて、乱数回路５０３側でカウント値の順列変更するようにしてもよい。例えば、乱数回路５０３は、カウント値の順列を変更する旨を示す順列変更データを格納する順列変更データレジスタを備え、ＣＰＵ５６は、ステップＳ１５８において、順列変更データを順列変更データレジスタに設定する。この場合、カウンタ５２１が最終値までカウント値を更新すると、通知信号をカウント値順列変更回路５２３に出力し、通知信号を入力したカウント値順列変更回路５２３は、順列変更データレジスタに順列変更データが設定されているか否かを確認する。そして、カウント値順列変更回路５２３は、順列変更データが設定されていることを確認すると、カウント値の順列を変更する。
【０３０４】
そして、ＣＰＵ５６は、乱数回路設定プログラム５５１に含まれる乱数回路起動モジュール５５１ｄに従って処理を実行し、乱数回路起動データ「８０ｈ」を乱数回路起動レジスタ５４１に書き込む（ステップＳ１５９）。そのようにすることによって、ＣＰＵ５６は、乱数回路５０３を起動させる。
【０３０５】
次に、乱数回路設定処理における乱数最大値再設定処理（ステップＳ１５３）を説明する。図４８は、乱数最大値再設定処理を示すフローチャートである。乱数最大値再設定処理において、ＣＰＵ５６は、乱数最大値設定レジスタ５３５に設定されている乱数最大値を読み込む（ステップＳ１５３ａ）。なお、タイマ割込処理の実行時に用いる乱数回路として１２ビット乱数回路５０３ａを設定した場合、ＣＰＵ５６は、１２ビット乱数回路５０３ａの乱数最大値設定レジスタ５３５に設定されている乱数最大値を読み込む。また、タイマ割込処理の実行時に用いる乱数回路として１６ビット乱数回路５０３ｂを設定した場合、ＣＰＵ５６は、１６ビット乱数回路５０３ｂの乱数最大値設定レジスタ５３５に設定されている乱数最大値を読み込む。
【０３０６】
ＣＰＵ５６は、読み込んだ乱数最大値が所定の下限値以下であるか否かを判定する（ステップＳ１５３ｂ）。１２ビット乱数回路５０３ａを設定した場合、１２ビット乱数回路５０３ａにおいて設定可能な乱数最大値が「２５６」から「４０９５」までであるので、ＣＰＵ５６は、１２ビット乱数回路５０３ａの乱数最大値設定レジスタ５３５から読み込んだ乱数最大値が下限値「２５６」以下であるか否かを判定する。また、１６ビット乱数回路５０３ｂを設定した場合、１６ビット乱数回路５０３ｂにおいて設定可能な乱数最大値が「５１２」から「６５５３５」までであるので、ＣＰＵ５６は、１６ビット乱数回路５０３ｂの乱数最大値設定レジスタ５３５から読み込んだ乱数最大値が下限値「５１２」以下であるか否かを判定する。
【０３０７】
読み込んだ乱数最大値が下限値以下である場合、ＣＰＵ５６は、乱数最大値設定レジスタ５３５に設定される乱数最大値を所定値に設定しなおす（ステップＳ１５３ｃ）。１２ビット乱数回路５０３ａを設定した場合、１２ビット乱数回路５０３ａの乱数最大値設定レジスタ５３５から読み込んだ乱数最大値が下限値「２５６」以下であると判定すると、ＣＰＵ５６は、乱数最大値設定レジスタ５３５に設定される乱数最大値を所定値「４０９５」に設定しなおす。また、１６ビット乱数回路５０３ｂを設定した場合、１６ビット乱数回路５０３ｂの乱数最大値設定レジスタ５３５から読み込んだ乱数最大値が下限値「５１２」以下であると判定すると、ＣＰＵ５６は、乱数最大値設定レジスタ５３５に設定される乱数最大値を所定値「６５５３５」に設定しなおす。
【０３０８】
以上のように、乱数最大値設定レジスタ５３５に設定した乱数最大値が所定の下限値以下となっている場合には、乱数最大値を所定値に設定しなおす。そのため、遊技制御用マイクロコンピュータ５６０の誤動作や、無線信号を用いた取り込み信号を遊技機に対して発生させるなどの行為によって、過度に小さい値が乱数の最大値として設定されてしまうことを防止することができる。従って、最小値から最大値までの値の範囲が過度に小さい乱数を生成する事態が発生することを防止することができる。
【０３０９】
次に、乱数回路設定処理における初期値変更処理（ステップＳ１５４）を説明する。図４９は、初期値変更処理を示すフローチャートである。初期値変更処理において、ＣＰＵ５６は、まず、ユーザプログラム実行データエリアの１Ｆ９７ｈ番地の領域に記憶されている初期値変更方式設定データを読み出し、ユーザによって選択された初期値変更方式を特定する。この場合、ＣＰＵ５６は、読み出した初期値変更方式設定データの値が「０１ｈ」であるか否かを判定することによって（ステップＳ１５４ａ）、ユーザによって選択された初期値変更方式を特定する。
【０３１０】
初期値変更方式設定データの値が「０１ｈ」である場合、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１に入力する初期値を、遊技制御用マイクロコンピュータ５６０固有のＩＤナンバにもとづいて設定された値に変更する（ステップＳ１５４ｂ）。例えば、遊技制御用マイクロコンピュータ５６０は、ＲＯＭ５４の所定の記憶領域に、遊技制御用マイクロコンピュータ５６０のＩＤナンバと、ＩＤナンバにもとづいて所定の演算を行って求めた演算値とを予め対応付けて記憶している。そして、ステップＳ１５４ｂにおいて、ＣＰＵ５６は、予め記憶するＩＤナンバにもとづく演算値にカウント値の初期値を変更させる。また、例えば、ステップＳ１５４ｂにおいて、ＣＰＵ５６は、遊技制御用マイクロコンピュータ５６０のＩＤナンバと所定値とを演算して（例えば、ＩＤナンバ（例えば、「１００」）に所定値（例えば、「１００」）を加算して）求めた演算値（例えば、「２００」）にカウント値の初期値を設定する。また、カウンタ５２１に入力する初期値を変更すると、ＣＰＵ５６は、カウント値の初期値を変更した旨を示す初期値変更フラグをセットする（ステップＳ１５４ｃ）。
【０３１１】
なお、ＣＰＵ５６は、ステップＳ１５４ｂにおいてカウンタ５２１に入力する初期値を変更する際、乱数回路５０３の比較器５２２の乱数最大値設定レジスタ５３５の値を確認し、ＩＤナンバにもとづいて設定された値が乱数最大値以上であるか否かを判断する。そして、ＩＤナンバにもとづいて設定された値が乱数最大値以上であると判断すると、ＣＰＵ５６は、カウンタ５２１に入力する初期値を変更しない（例えば、初期値を「０」に設定しなおす）。そのようにすることによって、カウント値の初期値が乱数最大値以上の値に設定されてしまう事態を防止することができる。
【０３１２】
ステップＳ１５４ａにおいて、初期値変更方式設定データの値が「０１ｈ」でない場合（すなわち、ユーザプログラム実行データエリアの１Ｆ９７ｈ番地の領域に記憶されている初期値変更方式設定データの値が「００ｈ」である場合）、ＣＰＵ５６は、カウント値の初期値の変更を行わず、そのまま初期値変更処理を終了し、ステップＳ１５５に移行する。
【０３１３】
乱数回路設定処理が実行されることによって、タイマ割込処理の実行時に乱数回路５０３に各種信号が入力され、乱数回路５０３内で各種信号が生成される。図５０は、乱数回路５０３に各信号が入力されるタイミング、および乱数回路５０３内で各信号が生成されるタイミングを示すタイミングチャートである。
【０３１４】
図５０に示すように、クロック回路５０１は、所定周期ごと（図５０に示すタイミングＴ１１，Ｔ２１，・・・）に、出力端子の信号レベルをローレベルからハイレベルに立ち上げることによって、乱数回路５０３に基準クロック信号ＣＬＫ（図５０（Ａ）参照）を入力する。
【０３１５】
クロック信号出力回路５２４は、クロック回路５０１から供給された基準クロック信号ＣＬＫを分周し、乱数発生用クロック信号ＳＩ１（図５０（Ｂ）参照）を生成する。例えば、クロック信号出力回路５２４は、タイミングＴ１１，Ｔ１２，・・・で出力端子の信号レベルをローレベルからハイレベルに立ち上げ、タイミングＴ２１，Ｔ２２，・・・で信号レベルをハイレベルからローレベルに立ち下げることによって、乱数発生用クロック信号ＳＩ１を出力する。
【０３１６】
なお、図５０に示す例では、説明を分かりやすくするために、クロック信号出力回路５２４が基準クロック信号ＣＬＫを２分周して乱数発生用クロック信号ＳＩ１を生成する場合を示している。しかし、実際の乱数回路では、周期設定レジスタ５３７に設定可能な周期は「システムクロック信号の周期×１２８×７」から「システムクロック信号の周期×１２８×２５６」まである。従って、実際の乱数回路では、クロック信号出力回路５２４は、「システムクロック信号の周期×１２８×７」から「システムクロック信号の周期×１２８×２５６」までの範囲で周期設定レジスタ５３７に設定される周期設定データ「０７ｈ」〜「ＦＦｈ」に対応した分周比で、基準クロック信号ＣＬＫを分周し乱数発生用クロック信号ＳＩ１を生成する。クロック信号出力回路５２４によって生成された乱数発生用クロック信号ＳＩ１は、セレクタ５２８と反転回路５３２とに出力される。
【０３１７】
この実施の形態では、乱数回路設定処理において、第２の乱数更新方式が設定されるので、乱数更新方式選択信号出力回路５２７から第２の乱数更新方式選択信号がセレクタ５２８に入力される。セレクタ５２８は、乱数更新方式選択信号出力回路５２７から第２の乱数更新方式選択信号が入力されると、クロック信号出力回路５２４から入力した乱数発生用クロック信号ＳＩ１を選択してカウンタ５２１に出力する。カウンタ５２１は、セレクタ５２８から供給される乱数発生用クロック信号ＳＩ１の立ち上がりエッヂが入力されるごとに、カウント値Ｃを更新してカウント値順列変更回路５２３に出力する。
【０３１８】
反転回路５３２は、クロック信号出力回路５２４から入力した乱数発生用クロック信号ＳＩ１の信号レベルを反転させることによって、反転クロック信号ＳＩ２（図５０（Ｃ）参照）を生成する。例えば、反転回路５３２は、タイミングＴ１１，Ｔ１２，・・・で出力端子の信号レベルをハイレベルからローレベルに立ち下げ、タイミングＴ２１，Ｔ２２，・・・で信号レベルをローレベルからハイレベルに立ち上げることによって、反転クロック信号ＳＩ２を出力する。また、反転回路５３２によって生成された反転クロック信号ＳＩ２は、ラッチ信号生成回路５３３に出力される。
【０３１９】
ラッチ信号生成回路５３３には、入賞検出信号ＳＳ（図５０（Ｄ）参照）がタイマ回路５３４に入力されてから所定時間（例えば３ミリ秒）が経過すると、乱数値読取信号出力回路５２６から乱数値読取信号が入力される。例えば、乱数値読取信号出力回路５２６の出力端子の信号レベルがローレベルからハイレベルに立ち上がることによって、ラッチ信号生成回路５３３に乱数値読取信号が入力される。ラッチ信号生成回路５３３は、乱数更新方式選択信号出力回路５２７から第２の乱数更新方式選択信号が入力されたことに応じて、乱数値読取信号出力回路５２６から入力する乱数値読取信号を反転回路５３２から供給される反転クロック信号ＳＩ２の立ち上がりエッヂに同期させて、ラッチ信号ＳＬ（図５０（Ｅ）参照）を出力する。
【０３２０】
以上のように、乱数回路５０３は、タイミングＴ１１，Ｔ１２，Ｔ１３・・・においてカウント値Ｃを更新し、タイミングＴ１１，Ｔ１２，Ｔ１３とは異なるタイミングＴ２２においてラッチ信号ＳＬを出力させ、乱数値記憶回路５３１に乱数値を記憶する。
【０３２１】
次に、メイン処理におけるシリアル通信回路設定処理（ステップＳ１５ａ）を説明する。図５１は、シリアル通信回路設定処理を示すフローチャートである。シリアル通信回路設定処理において、ＣＰＵ５６は、まず、シリアル通信回路設定プログラム５５６に従って処理を実行し、シリアル通信回路５０５のボーレートを設定する（ステップＳ１５１１）。この場合、ＣＰＵ５６は、シリアル通信回路５０５のボーレートレジスタ７０２に、設定するボーレートに対応する設定値を書き込む。例えば、遊技制御用マイクロコンピュータ５６０は、ユーザ（例えば、遊技機の製作者）によって設定された設定値を指定する指定情報を、あらかじめＲＯＭ５４の所定の記憶領域に記憶している。そして、ＣＰＵ５６は、ＲＯＭ５４の所定の記憶領域に記憶された指定情報に従って、設定値をボーレートレジスタ７０２に書き込む。例えば、ＣＰＵ５６によってボーレート設定値「１５６」が設定された場合、ボーレート生成回路７０３によって、式（１）およびクロック周波数「３ＭＨｚ」を用いてボーレート「１２０１．９２ｂｐｓ」が生成される。
【０３２２】
また、ＣＰＵ５６は、シリアル通信回路５０５が送受信するデータのデータフォーマットを設定する（ステップＳ１５１２）。この場合、ＣＰＵ５６は、制御レジスタＡ７０７の各ビットの値を設定することによって、送受信データのデータ長（８ビットまたは９ビット）、パリティ機能の使用の有無を設定する。例えば、遊技制御用マイクロコンピュータ５６０は、ユーザ（例えば、遊技機の製作者）によって設定された制御レジスタＡ７０７の各ビットの値を指定する指定情報を、あらかじめＲＯＭ５４の所定の記憶領域に記憶している。そして、ＣＰＵ５６は、ＲＯＭ５４の所定の記憶領域に記憶された指定情報に従って、制御レジスタＡ７０７の各ビットの値を設定する。
【０３２３】
また、ＣＰＵ５６は、シリアル通信回路５０５が発生する各割込要求を許可するか否かを設定する（ステップＳ１５１３）。この場合、ＣＰＵ５６は、制御レジスタＢ７０８のビット５，６，７の値を設定することによって、送信時割り込み要求（データの送信時に行う割り込み要求である送信割り込み要求や、送信完了時に行う送信完了割り込み要求）および受信時割り込み要求を許可するか否かを設定する。なお、ＣＰＵ５６は、送信時割り込み要求と受信時割り込み要求との両方を許可するように設定することも可能であり、送信時割り込み要求と受信時割り込み要求とのいずれか一方のみを許可するように設定することも可能である。また、ＣＰＵ５６は、制御レジスタＣ７０９のビット０〜３の値を設定することによって、各通信エラー時割り込み要求を許可するか否かを設定する。例えば、遊技制御用マイクロコンピュータ５６０は、ユーザ（例えば、遊技機の製作者）によって設定された制御レジスタＢ７０８および制御レジスタＣ７０９の各ビットの値を指定する指定情報を、あらかじめＲＯＭ５４の所定の記憶領域に記憶している。そして、ＣＰＵ５６は、ＲＯＭ５４の所定の記憶領域に記憶された指定情報に従って、制御レジスタＢ７０８および制御レジスタＣ７０９の各ビットの値を設定する。
【０３２４】
次に、メイン処理における賞球処理（ステップＳ１９ｃ）を説明する。まず、主基板３１と払出制御基板３７との間で送受信される払出制御信号および払出制御コマンドについて説明する。図５２は、遊技制御手段から払出制御手段に対して出力される制御信号の内容の一例を示す説明図である。この実施の形態では、払出制御等に関する各種の制御を行うために、主基板３１と払出制御基板３７との間で制御信号として接続確認信号が送受信される。図５２に示すように、接続確認信号は、主基板３１の立ち上がり時（遊技制御手段が遊技制御処理を開始したとき）に出力され、払出制御基板３７に対して主基板３１が立ち上がったことを通知するための信号（主基板３１の接続確認信号）である。また、接続確認信号は、賞球払出が可能な状態であることを示す。
【０３２５】
払出制御用マイクロコンピュータ３７０は、遊技制御用マイクロコンピュータ５６０と同様に、シリアル通信回路３８０を内蔵する。また、遊技制御用マイクロコンピュータ５６０が内蔵するシリアル通信回路５０５と、払出制御用マイクロコンピュータ３７０が内蔵するシリアル通信回路３８０との間で、各種払出制御コマンドが送受信される。なお、払出制御用マイクロコンピュータ３７０が内蔵するシリアル通信回路３８０の構成及び機能は、遊技制御用マイクロコンピュータ５６０が内蔵するシリアル通信回路５０５の構成及び機能と同様である。
【０３２６】
図５３は、遊技制御手段と払出制御手段との間で送受信される制御コマンドの内容の一例を示す説明図である。この実施の形態では、払出制御等に関する各種の制御を行うために、主基板３１と払出制御基板３７とのマイクロコンピュータの間で各種制御コマンドが送受信される。
【０３２７】
賞球個数コマンドは、払出要求を行う遊技球の個数（０〜１５個）を指定するために出力されるコマンドである。この実施の形態では、始動口スイッチ１４ａで遊技球が検出されると３個の賞球払出を行い、入賞口スイッチ３３ａ，３９ａ，２９ａ，３０ａのいずれかで遊技球が検出されると１０個の賞球払出を行い、カウントスイッチ２３で遊技球が検出されると１５個の賞球払出を行う。よって、始動口スイッチ１４ａで遊技球が検出された場合、賞球数３個を通知するための賞球個数コマンド「０３」が送信され、入賞口スイッチ３３ａ，３９ａ，２９ａ，３０ａのいずれかで遊技球が検出された場合、賞球数１０個を通知するための賞球個数コマンド「０Ａ」が送信され、カウントスイッチ２３で遊技球が検出された場合、賞球数１５個を通知するための賞球個数コマンド「０Ｆ」が送信される。なお、賞球個数コマンドを２バイトで構成してもよい。この場合、例えば、ＣＰＵ５６は、まず賞球個数コマンドの下位１バイトのデータを送信データレジスタ７１０に書き込む。そして、送信用シフトレジスタ７１２から賞球個数コマンドの下位１バイトのデータの送信が完了すると、シリアル通信回路５０５からの送信時割り込み要求に応じて、ＣＰＵ５６は、賞球個数コマンドの上位１バイトのデータを送信データレジスタ７１０に書き込み、送信用シフトレジスタ７１２から賞球個数コマンドの上位１バイトのデータが送信される。
【０３２８】
賞球ＡＣＫコマンド「Ｄ２」は、払出制御手段が賞球個数コマンドを受信したことを遊技制御手段に通知するためのコマンドである。賞球ＡＣＫコマンドは、賞球個数コマンドを受信したことを示す受信確認信号に相当する。
【０３２９】
賞球過多異常コマンド「Ｅ１」は、賞球過多異常が発生したことを遊技制御手段から払出制御手段に通知するためのコマンドである。この実施の形態では、遊技制御手段は、払い出すべき賞球数よりも多くの遊技球が払い出される賞球過多異常の発生を検出すると、払出制御手段に賞球過多異常コマンド「Ｅ１」を送信する。賞球過少異常コマンド「Ｅ２」は、賞球過少異常が発生したことを遊技制御手段から払出制御手段に通知するためのコマンドである。この実施の形態では、遊技制御手段は、総賞球数が所定の払出過少判定値を超えた状態である（払い出すべき賞球数よりも少ない遊技球しか払い出されていない）賞球過少異常の発生を検出すると、払出制御手段に賞球過少異常コマンド「Ｅ２」を送信する。
【０３３０】
図５４は、図５２に示す制御信号および図５３に示す制御コマンドの送受信に用いられる信号線等を示すブロック図である。なお、図５４には、電源断信号も示されている。図５４に示すように、接続確認信号は、遊技制御用マイクロコンピュータ５６０によって出力回路６７を介して出力され、入力回路３７３Ａを介して払出制御用マイクロコンピュータ３７０に入力される。また、電源断信号は、出力回路３７３Ｂを介して出力され、入力回路６８を介して遊技制御用マイクロコンピュータ５６０に入力される。また、賞球個数コマンドは、遊技制御用マイクロコンピュータ５６０が内蔵するシリアル回路５０５から出力され、払出制御用マイクロコンピュータ３７０が内蔵するシリアル回路３８０に入力される。また、賞球ＡＣＫコマンドは、払出制御用マイクロコンピュータ３７０が内蔵するシリアル回路３８０から出力され、遊技制御用マイクロコンピュータ５６０が内蔵するシリアル回路５０５に入力される。
【０３３１】
接続確認信号および電源断信号は、それぞれ１ビットのデータであり、１本の信号線によって送信される。また、主基板３１と払出制御基板３７との間で、遊技制御用マイクロコンピュータ５６０への電源断信号の信号線と、払出制御に関わる制御信号（接続確認信号）の信号線とをまとめて配線することができる。よって、遊技機において、遊技制御用マイクロコンピュータ５６０への電源断信号に関する配線スペースを節減することができる。
【０３３２】
なお、この実施の形態では、遊技制御用マイクロコンピュータ５６０が賞球個数コマンドを払出制御用マイクロコンピュータ３７０にシリアル送信し、払出制御用マイクロコンピュータ３７０が賞球ＡＣＫコマンドを遊技制御用マイクロコンピュータ５６０にシリアル送信する双方向通信を行う場合を説明するが、遊技制御用マイクロコンピュータ５６０と払出制御用マイクロコンピュータ３７０とは一方向のシリアル通信を行ってもよい。例えば、遊技制御用マイクロコンピュータ５６０が賞球個数コマンドを払出制御用マイクロコンピュータ３７０に送信する一方向のシリアル通信を行い、払出制御用マイクロコンピュータ３７０は賞球ＡＣＫコマンドを送信しないようにしてもよい。
【０３３３】
図５５は、払出制御信号および払出制御コマンドの出力の仕方の一例を示すタイミング図である。図５５に示すように、入賞検出スイッチが遊技球の入賞を検出すると、遊技制御手段（遊技制御用マイクロコンピュータ５６０）は、入賞に応じて払い出される賞球数に応じた賞球個数コマンドを払出制御手段（払出制御用マイクロコンピュータ３７０）に送信する。なお、具体的には、遊技制御用マイクロコンピュータ５６０は、遊技球が遊技機に設けられている入賞領域に入賞したことを入賞検出スイッチの検出信号によって検知すると、賞球数に対応する賞球コマンド出力カウンタをカウントアップする。そして、賞球コマンド出力カウンタのカウント値が０でない値になったら、賞球コマンド出力カウンタに対応する賞球数に応じた賞球個数コマンドを払出制御用マイクロコンピュータ３７０に送信する。
【０３３４】
また、この実施の形態では、始動口スイッチ１４ａで遊技球が検出されると３個の賞球払出を行い、入賞口スイッチ３３ａ，３９ａ，２９ａ，３０ａのいずれかで遊技球が検出されると１０個の賞球払出を行い、カウントスイッチ２３で遊技球が検出されると１５個の賞球払出を行う。具体的には、遊技制御用マイクロコンピュータ５６０は、払い出される賞球数に応じて、賞球数が３個の場合には賞球数が３個であることを示す賞球個数コマンド「０３」を送信し、賞球数が１０個の場合には賞球数が１０個であることを示す賞球個数コマンド「０Ａ」を送信し、賞球数が１５個の場合には賞球数が１５個であることを示す賞球個数コマンド「０Ｆ」を送信する。
【０３３５】
賞球個数コマンドの送信を完了すると、遊技制御用マイクロコンピュータ５６０のシリアル通信回路５０５は、図５５に示すように、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６に対して送信時割り込み要求を行う。送信時割込要求によって、ＣＰＵ５６は、賞球個数コマンドの送信を完了した状態となったことを認識し、払出制御用マイクロコンピュータからの受信確認信号の待ち状態となる。
【０３３６】
払出制御用マイクロコンピュータ３７０は、賞球個数コマンドの受信を確認すると、受信した賞球個数コマンドに示される賞球数を、払出制御用マイクロコンピュータ３７０の受信バッファに格納する。また、払出制御用マイクロコンピュータ３７０は、ＲＡＭの所定領域に設けられた賞球未払出個数カウンタに賞球数を加算する。そして、払出制御用マイクロコンピュータ３７０は、賞球ＡＣＫコマンド「Ｄ２」を、遊技制御用マイクロコンピュータ５６０に送信する。なお、払出制御用マイクロコンピュータ３７０は、払出制御用マイクロコンピュータ３７０が内蔵するシリアル通信回路３８０からの受信時割り込み要求にもとづく割込処理において賞球数を受信カウンタに格納するようにしてもよい。この場合、払出制御用マイクロコンピュータ３７０が内蔵するシリアル通信回路３８０は、賞球個数コマンドを受信すると、払出制御用マイクロコンピュータ３７０のＣＰＵに受信時割り込み要求を行う。そして、払出制御用マイクロコンピュータ３７０のＣＰＵは、シリアル通信回路３８０からの割り込み要求に応じて割込処理を実行することによって、賞球数を受信バッファに格納する。
【０３３７】
賞球ＡＣＫコマンドを受信し、受信データレジスタ７１１に賞球ＡＣＫコマンドが格納された状態となると、遊技制御用マイクロコンピュータ５６０のシリアル通信回路５０５は、図５５に示すように、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６に対して受信時割り込み要求を行う。受信時割込要求による割込処理を実行することによって、ＣＰＵ５６は、シリアル通信回路５０５がデータを受信したことを認識し、後述する賞球ＡＣＫ待ち処理において受信データレジスタ７１１から賞球ＡＣＫコマンドを読み込む。
【０３３８】
遊技制御用マイクロコンピュータ５６０のＣＰＵ５６は、メイン処理におけるステップＳ１７からステップＳ１９までのループ処理において、割り込み許可状態である間にシリアル通信回路５０５からの割り込み要求があると、シリアル通信回路５０５が割り込み要求を行った割り込み原因に応じた割り込み処理を実行する。図５６は、シリアル通信回路５０５が割り込み要求に対して行う割り込み処理の一例を示す流れ図である。図５６（ａ）は、シリアル通信回路５０５が通信エラーを割り込み原因として割り込み要求を行った場合に、ＣＰＵ５６が実行する通信エラー割込処理である。図５６（ｂ）は、シリアル通信回路５０５が受信データを受信したことを割り込み原因として割り込み要求を行った場合に、ＣＰＵ５６が実行する受信時割込処理である。図５６（ｃ）は、シリアル通信回路５０５が送信データの送信を完了したことを割り込み原因として割り込み要求を行った場合に、ＣＰＵ５６が実行する送信完了割込処理である。
【０３３９】
ＣＰＵ５６は、いずれの割込処理を優先して実行する旨が初期設定されているか否かを判断する。例えば、ＣＰＵ５６は、いずれの割込処理を優先して実行する旨のフラグがセットされているか否かを判断する。この実施の形態では、ＣＰＵ５６は、通信エラー時割込優先実行フラグがセットされていることにもとづいて、シリアル通信回路５０５で通信エラーが発生したことを割込原因とする割込処理を優先して実行する。
【０３４０】
シリアル通信回路５０５から割り込み要求があると、ＣＰＵ５６は、シリアル通信回路５０５のステータスレジスタＡ７０５の各ビットを確認し、割り込み原因を特定する。この場合、ＣＰＵ５６は、いずれの割込処理を優先して実行する旨が初期設定されているか否かを判断する。例えば、ＣＰＵ５６は、いずれの割込処理を優先して実行する旨のフラグがセットされているか否かを判断する。この実施の形態では、ＣＰＵ５６は、通信エラー時割込優先実行フラグがセットされていることにもとづいて、シリアル通信回路５０５で通信エラーが発生したことを割込原因とする割込処理を優先して実行する。
【０３４１】
ＣＰＵ５６は、通信エラー時割込優先実行フラグがセットされていることにもとづいて、ステータスレジスタＡ７０５のビット０〜ビット３を優先的に確認し、割り込み原因を特定する。すなわち、ＣＰＵ５６は、シリアル通信回路５０５で通信エラー（オーバーラン、ノイズエラー、フレーミングエラーまたはパリティエラー）が発生したことを割り込み原因として割り込み要求したか否かを、他の割り込み原因（受信データの受信または送信データの送信完了）に優先して判断する。ステータスレジスタＡ７０５のビット０〜ビット３のうちいずれか１つまたは複数のビットが「１」であると判断すると、ＣＰＵ５６は、割り込み原因がシリアル通信回路５０５で通信エラーが発生したことであると特定する。
【０３４２】
割り込み原因がシリアル通信回路５０５で通信エラーが発生したことであると特定すると、ＣＰＵ５６は、図５６（ａ）に示す通信エラー割込処理を他の割込処理（図５６（ｂ）および図５６（ｃ）に示す割込処理）に優先して実行する。この場合、ＣＰＵ５６は、シリアル通信回路５０５で通信エラーが発生していることを示す通信エラーフラグをセットする（ステップＳ４１）。
【０３４３】
なお、通信エラーを検出すると、ＣＰＵ５６は、演出制御手段に、シリアル通信回路５０５で通信エラーが発生したことを通知するために、通信エラー発生表示指定の演出制御コマンド（通信エラー表示コマンド）を送信する処理を行う。音／ランプ制御用ＣＰＵ１００ｂは、通信エラー表示コマンドを受信すると、音、発光体などを用いた演出を行い、通信エラーが発生している旨の報知を行う。また、図柄制御用ＣＰＵ１００ａは、音／ランプ制御基板８０ｂを経由して受信した通信エラー表示コマンドにもとづいて、可変表示装置９を用いて、通信エラーが発生している旨を報知してもよい。
【０３４４】
割り込み原因がシリアル通信回路５０５で通信エラーが発生したことでなかった場合、ＣＰＵ５６は、ステータスレジスタＡのビット５を確認する。すなわち、ＣＰＵ５６は、シリアル通信回路５０５が受信データを受信したことが割込原因であるか否かを判断する。ステータスレジスタＡのビット５が「１」であると判断すると、ＣＰＵ５６は、割り込み原因がシリアル通信回路５０５が受信データを受信したことであると特定する。
【０３４５】
割り込み原因がシリアル通信回路５０５が受信データを受信したことであると特定すると、ＣＰＵ５６は、図５６（ｂ）に示す受信時割込処理を実行する。この場合、ＣＰＵ５６は、シリアル通信回路５０５が受信データを受信していることを示す受信時割込フラグをセットする（ステップＳ４２）。
【０３４６】
なお、ステップＳ４２において、ＣＰＵ５６は、受信時割込フラグをセットするとともに、シリアル通信回路５０５の受信データレジスタ７１１からデータを読み込んでもよい。この場合、例えば、ＣＰＵ５６は、読み込んだ受信データが賞球ＡＣＫコマンドであるか否かを判断する。また、賞球ＡＣＫコマンドであると判断すると、ＣＰＵ５６は、賞球ＡＣＫコマンドを受信したことを示す賞球ＡＣＫ受信フラグをセットする。
【０３４７】
また、割り込み原因がシリアル通信回路５０５で通信エラーが発生したことでなかった場合、ＣＰＵ５６は、ステータスレジスタＡのビット６を確認する。すなわち、ＣＰＵ５６は、シリアル通信回路５０５が送信データの送信を完了したことが割込原因であるか否かを判断する。ステータスレジスタＡのビット６が「１」であると判断すると、ＣＰＵ５６は、割り込み原因がシリアル通信回路５０５が送信データの送信を完了したことであると特定する。
【０３４８】
割り込み原因がシリアル通信回路５０５が送信データの送信を完了したことであると特定すると、ＣＰＵ５６は、図５６（ｃ）に示す送信完了割込処理を実行する。この場合、ＣＰＵ５６は、シリアル通信回路５０５が送信データの送信を完了していることを示す送信時割込フラグをセットする（ステップＳ４３）。
【０３４９】
上記に示す処理を実行することによって、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６は、シリアル通信回路５０５からの割り込み要求があった場合に、割込原因を特定し、特定した割込原因に応じたフラグ（通信エラーフラグ、受信時割込フラグ又は送信時割込フラグ）をセットする。特定した割込原因に応じてフラグがセットされることによって、ＣＰＵ５６によって、シリアル通信回路５０５で通信エラーが発生した旨や、データを受信した旨、又はデータ送信を完了した旨が認識される。
【０３５０】
なお、払出制御用マイクロコンピュータ３７０が搭載するＣＰＵも、シリアル通信回路３８０からの割り込み要求があった場合に、図５６に示す処理と同様の処理に従って、割り込み原因を特定し、特定した割込原因に応じたフラグをセットする。
【０３５１】
例えば、遊技制御用マイクロコンピュータ５６０から払出制御用マイクロコンピュータ３７０に、一方向通信で賞球個数コマンドを送信する場合を考える。この場合、遊技制御用マイクロコンピュータ５６０が払出制御用マイクロコンピュータ３７０に、例えば２ｍｓ毎にタイマ割込が発生する構成となっていて、賞球個数コマンドを送信した後、次の割込処理を行って２ｍｓ後に再び賞球個数コマンドを送信したとする。また、払出制御用マイクロコンピュータ３７０は、例えば４ｍｓ毎にタイマ割込が発生する構成となっていて、４ｍｓ毎に賞球個数コマンドを受信できるものであるとする。すると、遊技制御用マイクロコンピュータ５６０が最初に送信した賞球個数コマンドを読み込んでいないのに、払出制御用マイクロコンピュータ３７０が次の賞球個数コマンドを受信してしまう事態が発生してしまうが、払出制御用マイクロコンピュータ３７０のＣＰＵがシリアル通信回路３８０からの受信時割り込み要求に応じて賞球個数コマンドを受信するように設定すれば、遊技制御用マイクロコンピュータ５６０からの賞球個数コマンドを確実に受信することができる。
【０３５２】
賞球処理では、図５７に示す賞球個数テーブルが使用される。賞球個数テーブルは、ＲＯＭ５４に設定されている。賞球個数テーブルの先頭アドレスには処理数（この例では「３」）が設定され、その後に、賞球コマンド出力カウンタと、賞球数を指定する賞球指定データとが、順次設定されている。賞球コマンド出力カウンタとは、入賞口への入賞数をカウントするカウンタであり、例えば、ＲＯＭ５４に設定される。また、遊技制御用マイクロコンピュータ５６０は、賞球数（０〜１５個）毎に、対応する賞球コマンド出力カウンタを備える。この実施の形態では、遊技制御用マイクロコンピュータ５６０は、賞球数「３」に対応する賞球コマンド出力カウンタ１と、賞球数「１０」に対応する賞球コマンド出力カウンタ２と、賞球数「１５」に対応する賞球コマンド出力カウンタ３とを備える。なお、各賞球コマンド出力カウンタは、後述するように、タイマ割込処理の入力判定処理でカウントアップされる。
【０３５３】
図５８は、賞球処理を示すフローチャートである。賞球処理では、ＣＰＵ５６は、賞球プロセスコードの値に応じて、ステップＳ１２３１〜Ｓ１２３５のいずれかの処理を実行する。
【０３５４】
図５９は、賞球プロセスコードの値が０の場合に実行される賞球個数コマンド送信処理（ステップＳ１２３１）を示すフローチャートである。ＣＰＵ５６は、賞球個数コマンド送信処理において、エラーフラグがセットされているか否か確認する（ステップＳ１２４１）。この場合、ＣＰＵ５６は、通信エラーフラグがセットされているか否かを確認する。すなわち、ＣＰＵ５６は、まず、シリアル通信回路５０５で通信エラーが発生しているか否かを確認する。通信エラーフラグがセットされている場合、ＣＰＵ５６は、そのまま処理を終了する。すなわち、シリアル通信回路５０５で通信エラーが発生している状態であるので、ＣＰＵ５６は、払出制御基板３７が搭載する払出制御用マイクロコンピュータ３７０との通信を禁止するように制御する。
【０３５５】
また、ステップＳ１２４１において、ＣＰＵ５６は、賞球異常が発生していることを示す賞球過多異常エラーフラグや賞球過少異常エラーフラグがセットされているか否かを確認する。この実施の形態では、後述するように、賞球異常検出処理において、賞球過多の発生が検出されると、賞球過多異常エラーフラグがセットされる。賞球過多異常エラーフラグがセットされている場合、ＣＰＵ５６は、そのまま処理を終了する。すなわち、賞球過多の異常が発生している状態であるので、ＣＰＵ５６は、払出制御用マイクロコンピュータ３７０への賞球個数コマンドの送信を禁止するように制御する。また、賞球異常検出処理において、賞球過少の発生が検出されると、賞球過少異常エラーフラグがセットされる。賞球過少異常エラーフラグがセットされている場合、ＣＰＵ５６は、そのまま処理を終了する。すなわち、賞球過少の異常が発生している状態であるので、ＣＰＵ５６は、払出制御用マイクロコンピュータ３７０への賞球個数コマンドの送信を禁止するように制御する。
【０３５６】
エラーフラグがセットされていなければ、ＣＰＵ５６は、賞球個数テーブルの先頭アドレスをポインタにセットする（ステップＳ１２４２）。そして、ポインタが指すアドレスのデータ（この場合には処理数）をロードする（ステップＳ１２４３）。次に、ＣＰＵ５６は、払出制御用マイクロコンピュータ３７０に送信すべき賞球個数コマンドを設定するための賞球個数コマンドバッファの内容をロードする（ステップＳ１２４４）。そして、ロードした内容にもとづいて、払出制御用マイクロコンピュータ３７０に送信すべき賞球個数コマンドが賞球個数コマンドバッファに既に設定された状態であるか否かを確認する（ステップＳ１２４５）。
【０３５７】
賞球個数コマンドが賞球個数コマンドバッファに設定されていなければ（例えば、ロードした値が０であれば）、ＣＰＵ５６は、ポインタの値を１増やし（ステップＳ１２４６）、ポインタが指す賞球コマンド出力カウンタ（賞球個数テーブルにデータとして示される賞球コマンド出力カウンタ）のカウント値をロードする（ステップＳ１２４７）。なお、既に賞球個数コマンドが賞球個数コマンドバッファに設定されていれば、そのままステップＳ１２５４に移行する。
【０３５８】
次いで、ＣＰＵ５６は、ロードしたカウント値が０であるか否かを確認する（ステップＳ１２４８）。カウント値が０であれば、そのままステップＳ１２５２に移行する。カウント値が０でなければ、ＣＰＵ５６は、ポインタの値を１増やし（ステップＳ１２４９）、ポインタが指す賞球個数テーブルのデータ（この場合には賞球指定データに示される賞球個数）をロードする（ステップＳ１２５０）。また、ＣＰＵ５６は、ロードした賞球個数を賞球個数コマンドとして賞球個数コマンドバッファにストアする（ステップＳ１２５１）。ステップＳ１２５２では処理数を１減らし、処理数が０でなければステップＳ１２４６に戻る（ステップＳ１２５３）。
【０３５９】
ステップＳ１２４５で賞球個数コマンドが既に設定済みであった場合、またはステップＳ１２５３で処理数が０であった場合には、ＣＰＵ５６は、賞球個数コマンドバッファから賞球個数を読み込み、賞球個数コマンドとしてシリアル通信回路５０５の送信データレジスタ７１０に書き込む（ステップＳ１２５４）。そして、ＣＰＵ５６は、賞球プロセスコードの値を１にした後（ステップＳ１２５５）、処理を終了する。
【０３６０】
図６０は、賞球プロセスコードの値が１の場合に実行される賞球送信完了待ち処理（ステップＳ１２３２）を示すフローチャートである。ＣＰＵ５６は、賞球送信完了待ち処理において、エラーフラグがセットされているか否か確認する（ステップＳ１２６１）。この場合、ＣＰＵ５６は、通信エラーフラグがセットされているか否かを確認する。すなわち、ＣＰＵ５６は、まず、シリアル通信回路５０５で通信エラーが発生しているか否かを確認する。通信エラーフラグがセットされている場合、ＣＰＵ５６は、そのまま処理を終了する。すなわち、シリアル通信回路５０５で通信エラーが発生している状態であるので、ＣＰＵ５６は、払出制御基板３７が搭載する払出制御用マイクロコンピュータ３７０との通信を禁止するように制御する。
【０３６１】
また、ステップＳ１２６１において、ＣＰＵ５６は、賞球異常が発生していることを示す賞球過多異常エラーフラグまたは賞球過少異常エラーフラグがセットされているか否かを確認する。賞球過多異常エラーフラグまたは賞球過少異常エラーフラグがセットされている場合、ＣＰＵ５６は、そのまま処理を終了する。すなわち、賞球過多または賞球過少の異常が発生している状態であるので、ＣＰＵ５６は、払出制御用マイクロコンピュータ３７０への賞球個数コマンドの送信を禁止するように制御する。
【０３６２】
エラーフラグがセットされていなければ、ＣＰＵ５６は、送信時割込フラグがセットされているか否かを確認する（ステップＳ１２６２）。送信時割込フラグがセットされていれば、ＣＰＵ５６は、ステップＳ１２６３の処理に移行する。また、送信時割込フラグがセットされていなければ、ＣＰＵ５６は、そのまま処理を終了する。すなわち、ＣＰＵ５６は、賞球個数コマンド送信処理において送信データレジスタ７１０に書き込んだ賞球個数コマンドの送信をシリアル通信回路５０５が既に完了したか否かを判断し、賞球個数コマンドの送信を完了したことを確認すると、ステップＳ１２６３以降の処理を実行する。
【０３６３】
送信時割込フラグがセットされていれば、ＣＰＵ５６は、送信時割込フラグをリセットする（ステップＳ１２６３）。また、ＣＰＵ５６は、賞球タイマにＡＣＫ受信完了判定時間値をセットする（ステップＳ１２６４）。そして、賞球プロセスコードの値を２にして（ステップＳ１２６５）、処理を終了する。なお、ＡＣＫ受信完了判定時間値は、払出制御手段から賞球ＡＣＫコマンドを受信したか否かを監視するための時間値である。
【０３６４】
図６１は、賞球プロセスコードの値が２の場合に実行される賞球ＡＣＫ待ち処理（ステップＳ１２３３）を示すフローチャートである。ＣＰＵ５６は、賞球ＡＣＫ待ち処理において、エラーフラグがセットされているか否か確認する（ステップＳ１２７１）。この場合、ＣＰＵ５６は、通信エラーフラグがセットされているか否かを確認する。すなわち、ＣＰＵ５６は、まず、シリアル通信回路５０５で通信エラーが発生しているか否かを確認する。通信エラーフラグがセットされている場合、ＣＰＵ５６は、そのまま処理を終了する。すなわち、シリアル通信回路５０５で通信エラーが発生している状態であるので、ＣＰＵ５６は、払出制御基板３７が搭載する払出制御用マイクロコンピュータ３７０との通信を禁止するように制御する。
【０３６５】
また、ステップＳ１２７１において、ＣＰＵ５６は、賞球異常が発生していることを示す賞球過多異常エラーフラグまたは賞球過少エラーフラグがセットされているか否かを確認する。賞球過多異常エラーフラグまたは賞球過少エラーフラグがセットされている場合、ＣＰＵ５６は、そのまま処理を終了する。すなわち、賞球過多または賞球過少の異常が発生している状態であるので、ＣＰＵ５６は、払出制御用マイクロコンピュータ３７０への賞球個数コマンドの送信を禁止するように制御する。
【０３６６】
エラーフラグがセットされていなければ、ＣＰＵ５６は、受信時割込フラグがセットされているか否かを確認する（ステップＳ１２７２）。すなわち、ＣＰＵ５６は、シリアル通信回路５０５が受信データを受信し、受信データレジスタ７１１にデータが格納されている状態になっているか否かを確認する。受信時割込フラグがセットされていれば、ＣＰＵ５６は、ステップＳ１２７３の処理に移行する。また、受信時割込フラグがセットされていなければ、ＣＰＵ５６は、ステップＳ１２７５の処理に移行する。
【０３６７】
受信時割込フラグがセットされていれば、ＣＰＵ５６は、シリアル通信回路５０５の受信データレジスタ７１１からデータを読み込む（ステップＳ１２７３）。また、ＣＰＵ５６は、読み込んだデータが賞球ＡＣＫコマンドであるか否か（コマンド「Ｄ２」であるか否か）を判断する（ステップＳ１２７４）。
【０３６８】
なお、図５６（ｂ）に示す受信時割込処理において、受信時割込フラグをセットするとともに既に受信データを受信データレジスタ７１１から読み込んでいる場合、ステップＳ１２７３，Ｓ１２７４において、ＣＰＵ５６は、賞球ＡＣＫ受信フラグがセットされているか否かを判断してもよい。そして、賞球ＡＣＫ受信フラグがセットされている場合、ＣＰＵ５６は、賞球ＡＣＫコマンドを受信したと判断するようにしてもよい。
【０３６９】
ステップＳ１２７２で受信時割込フラグがセットされていなかった場合、またはステップＳ１２７４で読み込んだデータが賞球ＡＣＫコマンドでなかった場合、ＣＰＵ５６は、まだ払出制御用マイクロコンピュータ３７０から賞球ＡＣＫコマンドを受信していない状態であると判断する。この場合、ＣＰＵ５６は、賞球タイマの値を１減らし（ステップＳ１２７５）、その値が０でなければ処理を終了する（ステップＳ１２７６）。賞球タイマの値が０になったら、払出制御用マイクロコンピュータ３７０が賞球ＡＣＫコマンドを送信しなかったと判断して、再送信フラグをセットし（ステップＳ１２７７）、賞球プロセスコードの値を３にして（ステップＳ１２７８）、処理を終了する。なお、賞球プロセスコードの値が３になると、賞球再送信処理（ステップＳ１２３４）が実行される状態になる。また、再送信フラグがセットされると、賞球異常検出処理（ステップＳ１２３５）において、払出異常報知開始コマンドが音／ランプ制御基板８０ｂに対して送信される。
【０３７０】
ステップＳ１２７４において、受信データレジスタ７１１から読み込んだデータが賞球ＡＣＫコマンドであることを確認すると、ＣＰＵ５６は、受信時割込フラグをリセットして（ステップＳ１２７９）、賞球プロセスコードの値を４にする（ステップＳ１２８０）。
【０３７１】
次いで、ＣＰＵ５６は、割込禁止状態に設定し（ステップＳ１２８１）、総賞球数格納バッファの内容をロードする（ステップＳ１２８２）。なお、総賞球数格納バッファは、払い出すべき賞球数であって払い出しが完了していない賞球数の総数（総賞球数）を格納するバッファである。総賞球数格納バッファの内容をロードすると、ＣＰＵ５６は、賞球個数コマンド送信処理で送信した賞球個数コマンドに対応する賞球数を、ロードした総賞球数格納バッファの内容（総賞球数）に加算する（ステップＳ１２８３）。この実施の形態では、ＣＰＵ５６は、賞球個数コマンドに応じて、３、１０または１５のいずれかの賞球数を、ロードした総賞球数格納バッファの内容に加算する。
【０３７２】
次いで、ＣＰＵ５６は、総賞球数の加算結果を、総賞球数格納バッファにストアし（ステップＳ１２８４）、再び割込許可状態に設定する（ステップＳ１２８５）。また、通信が正常に完了したので、再送信フラグがセットされている場合には、再送信フラグをリセットする（ステップＳ１２８６，Ｓ１２８７）。
【０３７３】
以上の処理によって、遊技制御手段は、払出条件の成立にもとづいて払い出される賞球としての遊技球の総数を特定可能に総賞球数格納バッファに記憶する。また、遊技制御手段は、賞球コマンド出力カウンタに対応する賞球数にもとづいて払出制御手段に対して所定数の賞球の払出数を指定する払出指令コマンド（賞球個数コマンド）を送信する。そして、賞球払出を指定する賞球個数コマンドを送信するとに、総賞球数格納バッファに記憶されている賞球数に賞球個数コマンドで指定した払出数を加算する加算処理を行う。なお、払出制御用マイクロコンピュータ３７０は、賞球個数コマンドを受信すると直ちに賞球ＡＣＫコマンドを送信するので、球払出装置９７からの賞球払出に関わりなく賞球個数コマンドに関する通信を完了でき、遊技制御用マイクロコンピュータ５６０は、賞球個数コマンドで指定した払出数の賞球払出が完了する前に、連続的に次の賞球個数コマンドを送信することができる。
【０３７４】
また、ステップＳ１２８１〜Ｓ１２８５の処理において、賞球個数コマンドに示される賞球数を総賞球数に加算する際に、総賞球数格納バッファから総賞球数を読み出すと、加算後の総賞球数を総賞球数格納バッファに書き込むまでタイマ割込処理の実行を禁止する。そのため、総賞球数格納バッファから総賞球数を読み出してから再び書き込むまでの間に、払い出された賞球数を総賞球数から減算する処理を実行しないようにすることができ、払い出された賞球数を遊技制御手段が把握できなくなる事態を防止できる。
【０３７５】
例えば、遊技制御手段は、後述するように、払い出しが行われると、タイマ割込処理の入力判定処理において、総賞球数格納バッファが記憶する総賞球数から、払出カウントスイッチによって検出された払出数を減算する。この場合、賞球処理において総賞球数格納バッファから総賞球数を読み出してから再び書き込むまでの間に払い出しが行われると、遊技制御手段は、加算後の総賞球数が総賞球数格納バッファにストアされる前に、タイマ割込により減算処理を実行してしまう虞がある。そのため、加算後の総賞球数（減算分が反映されていない総賞球数）を総賞球数格納バッファに上書きしてしまい、払い出しによる減算分を総賞球数に正しく反映できなくなる虞がある。この実施の形態では、加算後の総賞球数を総賞球数格納バッファに書き込むまでタイマ割込処理の実行を禁止するので、払い出しによる減算分を総賞球数に正しく反映できなくなる事態を防止でき、払い出された賞球数を遊技制御手段が把握できなくなる事態を防止できる。
【０３７６】
図６２は、賞球プロセスコードの値が３の場合に実行される賞球再送信処理（ステップＳ１２３４）を示すフローチャートである。ＣＰＵ５６は、賞球再送信処理において、エラーフラグがセットされているか否か確認する（ステップＳ１２９１）。この場合、ＣＰＵ５６は、通信エラーフラグがセットされているか否かを確認する。すなわち、ＣＰＵ５６は、まず、シリアル通信回路５０５で通信エラーが発生しているか否かを確認する。通信エラーフラグがセットされている場合、ＣＰＵ５６は、そのまま処理を終了する。すなわち、シリアル通信回路５０５で通信エラーが発生している状態であるので、ＣＰＵ５６は、払出制御基板３７が搭載する払出制御用マイクロコンピュータ３７０との通信を禁止するように制御する。
【０３７７】
また、ステップＳ１２９１において、ＣＰＵ５６は、賞球異常が発生していることを示す賞球過多異常エラーフラグまたは賞球過少異常エラーフラグがセットされているか否かを確認する。賞球過多異常エラーフラグまたは賞球過少異常エラーフラグがセットされている場合、ＣＰＵ５６は、そのまま処理を終了する。すなわち、賞球過多または賞球過少の異常が発生している状態であるので、ＣＰＵ５６は、払出制御用マイクロコンピュータ３７０への賞球個数コマンドの送信を禁止するように制御する。
【０３７８】
エラーフラグがセットされていなければ、ＣＰＵ５６は、賞球個数コマンド送信処理で送信した賞球個数コマンドに対応する賞球数を、賞球個数コマンドとしてシリアル通信回路５０５の送信データレジスタ７１０に再度書き込む（ステップＳ１２９２）。また、ＣＰＵ５６は、賞球タイマにＡＣＫ受信完了判定時間値を再びセットする（ステップＳ１２９３）。そして、賞球プロセスコードの値を２にして（ステップＳ１２９４）、処理を終了する。
【０３７９】
賞球プロセスコードの値が２に設定されることから、再度、賞球ＡＣＫ待ち処理が実行される。再度実行される賞球ＡＣＫ待ち処理において、再び賞球ＡＣＫコマンドを受信したことを検出できなかった場合には、具体的には、ステップＳ１２７６において賞球タイマがタイムアウトした場合には、再び賞球再送処理が実行されることになる。このように、遊技制御用マイクロコンピュータ５６０は、払出数データを受信したことを示す受信確認信号としての賞球ＡＣＫコマンドが受信できない場合には、賞球ＡＣＫコマンドが受信できるまで、賞球個数コマンドの再送を繰り返す。
【０３８０】
図６３は、ステップＳ１２３５の賞球異常検出処理を示すフローチャートである。賞球異常検出処理において、ＣＰＵ５６は、再送信フラグがリセット状態からセット状態になったことを検出すると、払出異常報知開始コマンドを演出制御コマンドとして音／ランプ制御基板８０ｂに対して（具体的には音／ランプ制御用マイクロコンピュータ１００ｂに対して）送信する制御を行う（ステップＳ１３０１，Ｓ１３０２）。なお、ＣＰＵ５６は、賞球再送信処理を実行してから払出異常報知開始コマンドを送信するのでなく、払出異常報知開始コマンドを音／ランプ制御基板８０ｂに送信してから賞球再送信処理を実行するようにしてもよい。
【０３８１】
なお、音／ランプ制御用マイクロコンピュータ１００ｂに演出制御コマンドを送信する際に、ＣＰＵ５６は、演出制御コマンドの種類に応じたコマンド送信テーブル（あらかじめＲＯＭ５４にコマンド毎に設定されている）のアドレスをポインタにセットする。そして、演出制御コマンドに応じたコマンド送信テーブルのアドレスをポインタにセットして、コマンド制御処理（ステップＳ１９ｂ）において演出制御コマンドを送信する。
【０３８２】
また、ＣＰＵ５６は、再送信フラグがセット状態からリセット状態になったことを検出する（従って、セット状態が継続している場合には最初にリセット状態になったときにのみ検出される。）と、払出異常報知終了コマンドを音／ランプ制御基板８０ｂに対して（具体的には音／ランプ制御用マイクロコンピュータ１００ｂに対して）送信する制御を行う（ステップＳ１３０３，Ｓ１３０４）。
【０３８３】
なお、この実施の形態では、ＣＰＵ５６は、再送信フラグがリセットされると、ステップＳ１３０４で払出異常報知終了コマンドを送信するが、送信しないように構成してもよい。その場合には、遊技制御用マイクロコンピュータ５６０の負担が軽減される。また、その場合には、音／ランプ制御用マイクロコンピュータ１００ｂが、例えば所定時間後に、独自に払出異常報知を終了するように構成される。
【０３８４】
また、ＣＰＵ５６は、総賞球数格納バッファが格納する総賞球数が所定の払出過多判定値よりも小さいか否かを確認する（ステップＳ１３０５）。また、総賞球数が所定の払出過多判定値よりも小さい場合、ＣＰＵ５６は、賞球過多異常が発生していると判断し、賞球過多異常が発生している旨を示す賞球過多異常コマンドを、音／ランプ制御基板８０ｂおよび払出制御基板３７に送信する（ステップＳ１３０６）。この実施の形態では、ＣＰＵ５６は、総賞球数格納バッファが格納する総賞球数が「−４９９」より小さい（すなわち、５００以下である）と判断すると、払い出すべき賞球数より多くの遊技球が払い出された賞球過多異常が発生したと判断する。
【０３８５】
なお、ステップＳ１３０６において、音／ランプ制御用マイクロコンピュータ１００ｂに演出制御コマンド（賞球過多異常コマンド）を送信する際に、ＣＰＵ５６は、演出制御コマンドの種類に応じたコマンド送信テーブル（あらかじめＲＯＭ５４にコマンド毎に設定されている）のアドレスをポインタにセットする。そして、演出制御コマンドに応じたコマンド送信テーブルのアドレスをポインタにセットして、コマンド制御処理（ステップＳ１９ｂ）において演出制御コマンドを送信する。
【０３８６】
また、ステップＳ１３０６において、払出制御用マイクロコンピュータ３７０に賞球過多異常コマンドを送信する際に、ＣＰＵ５６は、賞球過多異常が発生した旨を示す賞球過多異常コマンド（具体的には「Ｅ１」）を、シリアル通信回路５０５の送信データレジスタ７１０に書き込む。そして、シリアル通信回路５０５によって、賞球過多異常コマンド「Ｅ１」が払出制御用マイクロコンピュータ３７０に送信される。
【０３８７】
賞球過多異常コマンドを送信すると、ＣＰＵ５６は、賞球過多異常が発生した旨を示す賞球過多異常エラーフラグをセットし（ステップＳ１３０７）、賞球プロセスコードの値を０にした後（ステップＳ１３０８）、処理を終了する。
【０３８８】
また、ステップＳ１３０５で総賞球数が所定の払出過多判定値よりも小さくない場合、ＣＰＵ５６は、総賞球数格納バッファが格納する総賞球数が所定の払出過少判定値よりも大きいか否かを確認する（ステップＳ１３０５ａ）。また、総賞球数が所定の払出過少判定値よりも大きい場合、ＣＰＵ５６は、賞球過少異常が発生していると判断し、賞球過少異常が発生している旨を示す賞球過少異常コマンドを、音／ランプ制御基板８０ｂおよび払出制御基板３７に送信する（ステップＳ１３０５ｂ）。この実施の形態では、ＣＰＵ５６は、総賞球数格納バッファが格納する総賞球数が「２０００」（大当り１回あたりに払い出される賞球数に相当する）より大きいと判断すると、払い出すべき賞球数よりも少ない遊技球しか払い出されていない賞球過少異常が発生したと判断する。
【０３８９】
なお、ステップＳ１３０５ｂにおいて、音／ランプ制御用マイクロコンピュータ１００ｂに演出制御コマンド（賞球過少異常コマンド）を送信する際に、ＣＰＵ５６は、演出制御コマンドの種類に応じたコマンド送信テーブル（あらかじめＲＯＭ５４にコマンド毎に設定されている）のアドレスをポインタにセットする。そして、演出制御コマンドに応じたコマンド送信テーブルのアドレスをポインタにセットして、コマンド制御処理（ステップＳ１９ｂ）において演出制御コマンドを送信する。
【０３９０】
また、ステップＳ１３０５ｂにおいて、払出制御用マイクロコンピュータ３７０に賞球過少異常コマンドを送信する際に、ＣＰＵ５６は、賞球過少異常が発生した旨を示す賞球過少異常コマンド（具体的には「Ｅ２」）を、シリアル通信回路５０５の送信データレジスタ７１０に書き込む。そして、シリアル通信回路５０５によって、賞球過少異常コマンド「Ｅ２」が払出制御用マイクロコンピュータ３７０に送信される。
【０３９１】
賞球過少異常コマンドを送信すると、ＣＰＵ５６は、賞球過少異常が発生した旨を示す賞球過少異常エラーフラグをセットし（ステップＳ１３０５ｃ）、賞球プロセスコードの値を０にした後（ステップＳ１３０８）、処理を終了する。
【０３９２】
次に、メイン処理における特別図柄プロセス処理（ステップＳ１９ｄ）を説明する。図６４は、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６が実行する特別図柄プロセス処理のプログラムの一例を示すフローチャートである。遊技制御用マイクロコンピュータ５６０のＣＰＵ５６は、特別図柄プロセス処理を行う際に、変動短縮タイマ減算処理（ステップＳ３１０）を行い、遊技盤６に設けられている始動入賞口１４に遊技球が入賞したことを検出するための始動口スイッチ１４ａがオンしていたら、すなわち遊技球が始動入賞口１４に入賞し、入賞検出信号ＳＳが始動口スイッチ１４ａから入力されていたら（ステップＳ３１１）、始動口スイッチ通過処理（ステップＳ３１２）を行った後に、内部状態に応じて、ステップＳ３００〜Ｓ３０８のうちのいずれかの処理を行う。変動短縮タイマは、特別図柄の変動時間が短縮される場合に、変動時間を設定するためのタイマである。
【０３９３】
なお、ステップＳ３１１において始動口スイッチ１４ａがオンしていなかった場合には、ＣＰＵ５６は、後述する割込回数カウンタをクリアした後に、内部状態に応じて、ステップＳ３００〜Ｓ３０８のうちのいずれかの処理を行う。
【０３９４】
特別図柄通常処理（ステップＳ３００）：特別図柄の可変表示を開始できる状態（例えば、特別図柄表示器８において図柄の変動がなされておらず、特別図柄表示器８における前回の図柄変動が終了してから所定期間が経過しており、かつ、大当り遊技中でもない状態）になるのを待つ。特別図柄の可変表示が開始できる状態になると、特別図柄についての始動入賞記憶数を確認する。始動入賞記憶数が０でなければ、特図保留メモリ５７０に記憶されている乱数回路５０３が発生したランダムＲにもとづいて、特別図柄の可変表示の結果を大当りとするか否か決定する。そして、内部状態（特別図柄プロセスフラグ）をステップＳ３０１に移行するように更新する。
【０３９５】
特別図柄停止図柄設定処理（ステップＳ３０１）：特別図柄の可変表示後の停止図柄を決定する。そして、内部状態（特別図柄プロセスフラグ）をステップＳ３０２に移行するように更新する。
【０３９６】
変動時間設定処理（ステップＳ３０２）：変動パターンを決定し、その変動パターンにおける変動時間（可変表示時間：可変表示を開始してから表示結果が導出表示（停止表示）するまでの時間）を特別図柄の可変表示の変動時間とすることに決定する。また、決定した特別図柄の変動時間を計測する変動時間タイマをスタートさせる。そして、内部状態（特別図柄プロセスフラグ）をステップＳ３０３に移行するように更新する。
【０３９７】
特別図柄変動処理（ステップＳ３０３）：所定時間（ステップＳ３０２の変動時間タイマで示された時間）が経過すると、内部状態（特別図柄プロセスフラグ）をステップＳ３０４に移行するように更新する。
【０３９８】
特別図柄停止処理（ステップＳ３０４）：音／ランプ制御基板８０ｂに対して、飾り図柄の停止を指示するための飾り図柄停止コマンドを送信する。また、特別図柄表示器８における特別図柄を停止させる。そして、特別図柄の停止図柄が大当り図柄である場合には、内部状態（特別図柄プロセスフラグ）をステップＳ３０５に移行するように更新する。そうでない場合には、内部状態をステップＳ３００に移行するように更新する。なお、飾り図柄停止コマンドを送信しない構成としてもよい。この場合、図柄制御基板８０ａは、音／ランプ制御基板８０ｂを経由して主基板３１から受信した変動パターンコマンドにもとづいて変動時間タイマに変動時間を設定するとともに、その変動時間タイマを更新していくことで飾り図柄の変動時間を独自に監視し、その変動時間が経過したと判定したときに飾り図柄を停止する処理を行うようにすればよい。
【０３９９】
大入賞口開放前処理（ステップＳ３０５）：大入賞口を開放する制御を開始する。具体的には、カウンタ（例えば大入賞口に入った遊技球数をカウントするカウンタ）やフラグ（入賞口への入賞を検出する際に用いられるフラグ）を初期化するとともに、ソレノイド２１を駆動して大入賞口を開放する。また、プロセスタイマによって大入賞口開放中処理の実行時間を設定し、大当り中フラグをセットする。そして、内部状態（特別図柄プロセスフラグ）をステップＳ３０６に移行するように更新する。
【０４００】
大入賞口開放中処理（ステップＳ３０６）：大入賞口ラウンド表示の演出制御コマンドを音／ランプ制御基板８０ｂに送出する制御や大入賞口の閉成条件（例えば、大入賞口に所定個数（例えば１０個）の遊技球が入賞したこと）の成立を確認する処理等を行う。大入賞口の閉成条件が成立したら、内部状態をステップＳ３０７に移行するように更新する。
【０４０１】
特定領域有効時間処理（ステップＳ３０７）：大当り遊技状態継続条件の成立を確認する処理を行う。大当り遊技状態継続の条件が成立し、かつ、まだ残りラウンドがある場合には、内部状態をステップＳ３０５に移行するように更新する。また、全てのラウンドを終えた場合には、内部状態をステップＳ３０８に移行するように更新する。なお、Ｖ入賞領域を設けた場合、Ｖ入賞スイッチの有無を監視して、大当り遊技状態継続条件の成立を確認する処理を行う。
【０４０２】
大当り終了処理（ステップＳ３０８）：大当り遊技状態が終了したことを遊技者に報知する表示制御を演出制御手段に行わせるための制御を行う。そして、内部状態をステップＳ３００に移行するように更新する。
【０４０３】
図６５は、始動口スイッチ通過処理（ステップＳ３１２）を示すフローチャートである。始動口スイッチ通過処理において、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６は、始動入賞カウンタが示す始動入賞記憶数（または特図保留メモリ５７０が記憶している始動入賞記憶数）が最大値である４に達しているかどうか確認する（ステップＳ３２１）。始動入賞記憶数が４に達していなければ、ＣＰＵ５６は、割込実行回数カウンタに示されるタイマ割込処理の実行回数が所定回数（例えば、３回）に達しているか否かを確認する（ステップＳ３２２）。すなわち、ＣＰＵ５６は、遊技球が始動入賞口１４に入賞したあと、割込実行回数カウンタが所定回数に達しているか否かを確認する。なお、遊技球が始動入賞口１４に入賞したことを検出すると（すなわち、ステップＳ３２２でＹＥＳと判定すると）、ＣＰＵ５６は、割込実行回数カウンタをリセットする。
【０４０４】
割込実行回数カウンタは、タイマ割込処理を実行した回数をカウントするためのカウンタである。この実施の形態では、ＣＰＵ５６は、後述するタイマ割込処理を実行する際に、タイマ割込処理を実行した回数を示す割込回数カウンタをカウントアップする。
【０４０５】
ステップＳ３２２において所定回数としてあらかじめ設定される値は、以下のように定められる。前述のように、乱数回路５０３のタイマ回路５３４は、始動口スイッチ１４ａから入賞検出信号ＳＳが継続して入力されている時間を計測し、計測時間が所定期間になったことを検出すると、乱数値取り込みデータ「０１ｈ」を書き込む。この実施の形態では、タイマ回路５３４が計測する所定期間（例えば、３ｍｓ）が、所定回数のタイマ割込処理が実行される期間（例えば、２ｍｓごとのタイマ割込処理を３回実行する場合は６ｍｓ）よりも短くなるように、ステップＳ３２２において用いる所定回数（例えば、３回）が設定される。そのように設定することによって、乱数を読み出してから、乱数値記憶回路５３１に記憶される乱数の値が更新される前に再び乱数を読み出してしまうことを防止することができ、前回乱数値記憶回路５３１から読み出した乱数と同じ値の乱数を再び読み出してしまうことを防止することができる。なお、タイマ回路５３４が入賞検出信号ＳＳの入力時間を計測するのでなく、ＣＰＵ５６が入賞検出信号ＳＳの入力時間を計測し、乱数値取り込みデータ「０１ｈ」を乱数値取込レジスタ５３９に書き込むようにしてもよい。
【０４０６】
タイマ割込処理の実行回数が所定回数に達している場合、ＣＰＵ５６は、特定した乱数回路５０３の乱数値記憶回路５３１に出力制御信号ＳＣを出力し、乱数値記憶回路５３１を読出可能（イネイブル）状態に制御する（ステップＳ３２３）。
【０４０７】
ＣＰＵ５６は、乱数回路５０３の乱数値記憶回路５３１から、乱数値として記憶されているランダムＲの値を読み出す（ステップＳ３２４）。また、ＣＰＵ５６は、読み出したランダムＲの値を、始動入賞記憶数の値に対応した保存領域（特別図柄判定用バッファ（特図保留メモリ５７０））に格納する（ステップＳ３２５）。また、ＣＰＵ５６は、ランダムＲの値をバッファ領域に格納すると、乱数値記憶回路５３１への出力制御信号ＳＣの出力を停止し、乱数値記憶回路５３１を読出不能（ディセイブル）状態に制御する（ステップＳ３２６）。また、ＣＰＵ５６は、割込実行回数カウンタをリセットする（ステップＳ３２７）。そして、ＣＰＵ５６は、所定のバッファ領域に格納したランダムＲの値を特図保留メモリ５７０の空エントリの先頭にセットし（ステップＳ３２８）、始動入賞カウンタのカウント数を１加算することで始動入賞記憶数を１増やす（ステップＳ３２９）。
【０４０８】
ステップＳ３２１において始動入賞記憶するが最大値である４に達している場合、およびステップＳ３２２においてタイマ割込処理の実行回数が所定回数に達してない場合、そのまま始動口スイッチ通過処理を終了する。
【０４０９】
以上のように、始動口スイッチ通過処理において、乱数値記憶回路５３１からランダムＲを読み出すにあたって、タイマ割込処理が所定回数実行されたこと（すなわち、タイマ割込処理が所定回数実行される間継続して入賞検出信号ＳＳが入力されたこと）を条件に、乱数値記憶回路５３１から乱数を読み出す。そのため、乱数を読み出してから、乱数値記憶回路５３１に記憶される乱数の値が更新される前に再び乱数を読み出してしまうことを防止することができる。また、前回乱数値記憶回路５３１から読み出した乱数と同じ値の乱数を再び読み出してしまうことを防止することができる。
【０４１０】
次に、特別図柄プロセス処理における特別図柄通常処理（ステップＳ３００）について説明する。図６６は、特別図柄通常処理を示すフローチャートである。特別図柄通常処理において、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６は、特別図柄の変動を開始することができる状態のとき（例えば特別図柄プロセスフラグの値がステップＳ３００を示す値となっている場合）には（ステップＳ３８０）、特図保留メモリ５７０から保留番号「１」に対応して格納されているランダムＲの値を読み出す（ステップＳ３８１）。この場合、ＣＰＵ５６は、始動入賞カウンタのカウント数を１減算することで保留記憶数を１減らし、且つ、特図保留メモリ５７０の第２〜第４エントリ（保留番号「２」〜「４」）に格納されたランダムＲの値を１エントリずつ上位にシフトする（ステップＳ３８２）。
【０４１１】
また、ＣＰＵ５６は、確変フラグがセットされているか否かを確認する（ステップＳ３８３）。すなわち、ＣＰＵ５６は、遊技状態が確変状態に制御されているか否かを確認する。確変フラグがセットされていない場合、ＣＰＵ５６は、遊技状態が確変状態以外の通常状態であると判断し、特別図柄表示装置８の表示結果を大当り図柄とするか否かを判定するために用いるテーブルとして、通常時大当り判定テーブル５７１ａ（図３９（Ａ）参照）を設定する（ステップＳ３８４）。また、確変フラグがセットされている場合、ＣＰＵ５６は、遊技状態が確変状態であると判断し、特別図柄表示装置８の表示結果を大当り図柄とするか否かを判定するために用いるテーブルとして、確変時大当り判定テーブル５７１ｂ（図３９（Ｂ）参照）を設定する（ステップＳ３８５）。
【０４１２】
ＣＰＵ５６は、始動口スイッチ通過処理において所定のバッファ領域に格納したランダムＲの値にもとづいて、特別図柄表示装置８の表示結果を大当り図柄とするか否かを判定する（ステップＳ３８６）。この場合、ＣＰＵ５６は、ステップＳ３８４で設定した通常時大当り判定テーブル５７１ａまたはステップＳ３８５で設定した確変時大当り判定テーブル５７１ｂを用いて、大当りとするか否かを判定する。
【０４１３】
特別図柄表示装置８の表示結果を大当り図柄とすると決定すると、ＣＰＵ５６は、大当り状態であることを示す大当りフラグをオン状態にする（ステップＳ３８７）。また、特別図柄表示装置８の表示結果を大当り図柄としないと決定すると、ＣＰＵ５６は、大当りフラグをオフ状態にする（ステップＳ３８８）。そして、ＣＰＵ５６は、特別図柄プロセスフラグの値を特別図柄停止図柄設定処理に対応した値に更新する（ステップＳ３８９）。
【０４１４】
次に、タイマ割込処理について説明する。図６７は、タイマ割込処理を示すフローチャートである。メイン処理の実行中に、具体的には、ステップＳ１７〜Ｓ１９のループ処理の実行中における割込許可になっている期間において、タイマ割込が発生すると、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６は、タイマ割込の発生に応じて起動されるタイマ割込処理を実行する。また、ＣＰＵ５６は、割込回数カウンタのカウント値を１加算する。タイマ割込処理において、ＣＰＵ５６は、まず、スイッチ回路５８を介して、ゲートスイッチ３２ａ、始動口スイッチ１４ａ、カウントスイッチ２３および入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａ等のスイッチの検出信号を入力し、各スイッチの入力を検出する（スイッチ処理：ステップＳ２０）。具体的には、各スイッチの検出信号を入力する入力ポートの状態がオン状態であれば、各スイッチに対応して設けられているスイッチタイマの値を＋１する。また、ＣＰＵ５６は、ステップＳ２０の検出結果にもとづいて、各スイッチの入力状態を判定する入力判定処理を実行する（ステップＳ２１）。
【０４１５】
次に、ＣＰＵ５６は、乱数回路設定処理において所定の最終値までカウント値が更新されたときに初期値を更新する旨の設定がされてるか（ステップＳ１５７参照）を確認し、乱数回路５０３のカウンタ５２１に入力する初期値を更新する処理を行う（乱数回路初期値更新処理：ステップＳ２２）。
【０４１６】
次に、遊技制御に用いられる各判定用乱数を生成するための各カウンタのカウント値を更新する処理を行う（ステップＳ２３）。また、ＣＰＵ５６は、初期値用乱数を生成するためのカウンタのカウント値を更新する処理を行う（初期値用乱数更新処理：ステップＳ２４）。さらに、ＣＰＵ５６は、表示用乱数を生成するためのカウンタのカウント値を更新する処理を行う（表示用乱数更新処理：ステップＳ２５）。
【０４１７】
ステップＳ２３では、ＣＰＵ５６は、例えば、大当り図柄決定用乱数や、普通図柄当り判定用乱数、確変決定用乱数、確変終了決定用乱数等の乱数を生成するためのカウンタのカウントアップ（１加算）を行う。すなわち、それらが判定用乱数であり、それら以外の乱数が表示用乱数または初期値用乱数である。また、遊技効果を高めるために、上記に示す乱数以外の普通図柄に関する乱数等も用いられていてもよい。
【０４１８】
判定用乱数更新処理、初期値更新処理および表示用乱数更新処理を行うと、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１が出力するカウント値の順列をカウント値順列変更回路５２３に変更させるカウント値順列変更処理を行う（ステップＳ２６）。この実施の形態では、乱数回路設定処理のステップＳ１５８でカウント値順列変更フラグがセットされているか否かによって、カウント値順列変更処理を実行するか否かが決定されている。そして、ＣＰＵ５６は、カウント値順列変更フラグがセットされていることにもとづいて、カウント値順列変更処理を実行する。その後、ＣＰＵ５６は、割込許可状態に設定し（ステップＳ２７）、処理を終了する。
【０４１９】
次に、タイマ割込処理におけるスイッチ処理（ステップＳ２０）を説明する。この実施の形態では、入賞検出またはゲート通過に関わる各スイッチの検出信号のオン状態が所定時間継続すると、確かにスイッチがオンしたと判定されスイッチオンに対応した処理が開始される。図６８は、スイッチ処理で使用されるＲＡＭ５５に形成される各２バイトのバッファを示す説明図である。前回ポートバッファは、前回（例えば２ｍｓ前）のスイッチオン／オフの判定結果が格納されるバッファである。ポートバッファは、今回入力したポート０の内容が格納されるバッファである。スイッチオンバッファは、スイッチのオンが検出された場合に対応ビットが１に設定され、スイッチのオフが検出された場合に対応ビットが０に設定されるバッファである。
【０４２０】
図６９は、遊技制御処理におけるステップＳ２０のスイッチ処理の処理例を示すフローチャートである。スイッチ処理において、遊技制御用マイクロコンピュータ５６０は、まず、入力ポート０，１（図４２参照）に入力されているデータを入力し（ステップＳ１０１）、入力したデータをポートバッファにセットする（ステップＳ１０２）。
【０４２１】
次いで、ＲＡＭ５５に形成されるウェイトカウンタの初期値をセットし（ステップＳ１０３）、ウェイトカウンタの値が０になるまで、ウェイトカウンタの値を１ずつ減算する（ステップＳ１０４，Ｓ１０５）。
【０４２２】
ウェイトカウンタの値が０になると、再度、入力ポート０，１のデータを入力し（ステップＳ１０６）、入力したデータとポートバッファにセットされているデータとの間で、ビット毎に論理積をとる（ステップＳ１０７）。そして、論理積の演算結果を、ポートバッファにセットする（ステップＳ１０８）。ステップＳ１０３〜Ｓ１０８の処理によって、ほぼ［ウェイトカウンタの初期値×（ステップＳ１０４，Ｓ１０５の処理時間）］の時間間隔を置いて入力ポート０，１から入力した２回の入力データのうち、２回とも「１」になっているビットのみが、ポートバッファにおいて「１」になる。つまり、所定期間としての［ウェイトカウンタの初期値×（ステップＳ１０４，Ｓ１０５の処理時間）］だけスイッチの検出信号のオン状態が継続すると、ポートバッファにおける対応するビットが「１」になる。
【０４２３】
さらに、遊技制御用マイクロコンピュータ５６０は、前回ポートバッファにセットされているデータとポートバッファにセットされているデータとの間で、ビット毎に排他的論理和をとる（ステップＳ１０９）。排他的論理和の演算結果において、前回（例えば２ｍｓ前）のスイッチオン／オフの判定結果と、今回オンと判定されたスイッチオン／オフの判定結果とが異なっているスイッチに対応したビットが「１」になる。遊技制御用マイクロコンピュータ５６０は、さらに、排他的論理和の演算結果と、ポートバッファにセットされているデータとの間で、ビット毎に論理積をとる（ステップＳ１１０）。この結果、前回のスイッチオン／オフの判定結果と今回オンと判定されたスイッチオン／オフの判定結果とが異なっているスイッチに対応したビット（排他的論理和演算結果による）のうち、今回オンと判定されたスイッチに対応したビット（論理積演算による）のみが「１」として残る。
【０４２４】
そして、遊技制御用マイクロコンピュータ５６０は、ステップＳ１１０における論理積の演算結果をスイッチオンバッファにセットし（ステップＳ１１１）、ステップＳ１０８における演算結果がセットされているポートバッファの内容を前回ポートバッファにセットする（ステップＳ１１２）。
【０４２５】
以上の処理によって、所定期間継続してオン状態であったスイッチのうち、前回（例えば２ｍｓ前）のスイッチオン／オフの判定結果がオフであったスイッチ、すなわち、オフ状態からオン状態に変化したスイッチに対応したビットが、スイッチオンバッファにおいて「１」になっている。
【０４２６】
次に、タイマ割込処理における入力判定処理（ステップＳ２１）を説明する。入力判定処理では、図７０に示す賞球コマンド出力カウンタ処理テーブルが使用される。賞球コマンド出力カウンタ処理テーブルは、ＲＯＭ５４に設定されている。賞球コマンド出力カウンタ処理テーブルの先頭アドレスには処理数（この例では「６」）が設定され、その後に、スイッチオンバッファ（２バイトのスイッチオンバッファのうちの入力ポート０に対応する方）の下位アドレス、入賞により賞球を払い出すことになる入賞口の各スイッチについてのスイッチ入力ビット判定値、賞球コマンド出力カウンタが、入賞口の各スイッチのそれぞれに対応して順次設定されている。なお、スイッチ入力ビット判定値は、入力ポート０における各スイッチの検出信号が入力されるビットに対応した値である。また、スイッチオンバッファの上位アドレスは固定的な値（例えば７Ｆ（Ｈ））である。また、賞球コマンド出力カウンタ処理テーブルにおいて、６つのスイッチオンバッファの下位アドレスのそれぞれには、同じデータが設定されている。なお、この実施の形態では、ＲＯＭ５４およびＲＡＭ５５のアドレスは１６ビットで指定される。
【０４２７】
図７１および図７２は、入力判定処理を示すフローチャートである。入力判定処理において、ＣＰＵ５６は、賞球コマンド出力カウンタ処理テーブルの先頭アドレスをポインタにセットする（ステップＳ２１１１）。そして、ポインタが指すアドレスのデータ（この場合には処理数）をロードする（ステップＳ２１１２）。次に、スイッチオンバッファの上位アドレス（８ビット）を２バイトのチェックポインタの上位１バイトにセットする（ステップＳ２１１３）。
【０４２８】
そして、ポインタの値を１増やし（ステップＳ２１１４）、ポインタが指す賞球コマンド出力カウンタ処理テーブルのデータ（この場合にはスイッチオンバッファの下位アドレス）をチェックポインタの下位１バイトにセットした後（ステップＳ２１１５）、ポインタの値を１増やす（ステップＳ２１１６）。次いで、チェックポインタが指すアドレスのデータ、すなわちスイッチオンバッファの内容をレジスタにロードし（ステップＳ２１１７）、ロードした内容と、ポインタが指す賞球コマンド出力カウンタ処理テーブルのデータ（この場合にはスイッチ入力ビット判定値）との論理積をとる（ステップＳ２１１８）。この結果、スイッチオンバッファの内容がロードされたレジスタには、検査対象としているスイッチの検出信号に対応したビット以外の７ビットが０になる。そして、ポインタの値を１増やす（ステップＳ２１１９）。
【０４２９】
ステップＳ２１１８における演算結果が０でなれば、すなわち、検査対象のスイッチの検出信号がオン状態であれば（ステップＳ２１２０）、ポインタが指す賞球コマンド出力カウンタ（賞球コマンド出力カウンタ処理テーブルのデータ）のカウント値をロードする（ステップＳ２１２１）。また、ＣＰＵ５６は、ロードしたカウント値に１を加算する（ステップＳ２１２２）。
【０４３０】
次いで、ＣＰＵ５６は、加算結果が２５６であるか否かを確認する（ステップＳ２１２３）。加算結果が２５６でなければ（すなわち、２５５以下であれば）、ＣＰＵ５６は、ポインタが指す賞球コマンド出力カウンタに加算結果をストアする（ステップＳ２１２４）。加算結果が２５６であれば、ＣＰＵ５６は、ポインタが指す賞球コマンド出力カウンタに加算結果をストアすることなく、ステップＳ２１２５に移行する。
【０４３１】
この実施の形態では、各賞球コマンド出力カウンタのカウント値の最大値が２５５に設定されている。そのため、ステップＳ２１２３，Ｓ２１２４の処理では、カウント値が２５５に達するまでは、入賞口への遊技球の入賞を検出する毎に、賞球コマンド出力カウンタのカウント値が１ずつ加算される。そして、カウント値が２５５に達すると、入賞口への遊技球の入賞を検出しても、賞球コマンド出力カウンタのカウント値は更新されない。
【０４３２】
また、この実施の形態では、ＣＰＵ５６は、賞球コマンド出力カウンタのカウント値をカウントアップすることによって、払い出すべき賞球数を特定可能なデータを記憶手段に記憶させる。なお、ＣＰＵ５６は、例えば、払い出すべき賞球数を所定のバッファに直接記憶させるようにしてもよい。また、ＣＰＵ５６は、賞球数そのものを記憶させるのではなく、例えば、払い出すべき賞球数を示すデータを所定のバッファに記憶させるようにしてもよい。この場合、ＣＰＵ５６は、例えば、賞球数３に対してデータ「０１」を記憶させ、賞球数１０に対してデータ「０２」を記憶させる等の制御を行ってもよい。
【０４３３】
ステップＳ２１２５では処理数を１減らし、処理数が０でなければステップＳ２１１４に戻る（ステップＳ２１２６）。処理数が０であれば、ＣＰＵ５６は、総賞球数格納バッファの内容をロードし（ステップＳ２１２７）、スイッチオンバッファの内容をレジスタにロードする（ステップＳ２１２８）。また、ＣＰＵ５６は、ロードしたスイッチオンバッファの内容と、払出個数カウントスイッチのスイッチ入力ビット判定値との論理積をとる（ステップＳ２１２９）。この結果、スイッチオンバッファの内容がロードされたレジスタには、検査対象としている払出個数カウントスイッチの検出信号に対応したビット以外の７ビットが０になる。
【０４３４】
ステップＳ２１２９における演算結果が０でなれば、すなわち、検査対象の払出個数カウントスイッチの検出信号がオン状態であれば（ステップＳ２１３０）、ＣＰＵ５６は、ロードした総賞球数格納バッファの内容から１を減算する（ステップＳ２１３１）。そして、ＣＰＵ５６は、総賞球数格納バッファに減算結果をストアし（ステップＳ２１３２）、処理を終了する。
【０４３５】
図７３は、総賞球数格納バッファに格納される総賞球数の加算処理および減算処理が行われるタイミングの一例を示すタイミング図である。図７３に示すように、入賞検出スイッチが遊技球の入賞を検出したあとに、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６によってタイマ割込処理が実行されると、入力判定処理のステップＳ２１１１〜Ｓ２１２６の処理が実行されることによって、各賞球コマンド出力カウンタのカウント値がカウントアップされる。次いで、タイマ割込処理を終了してメイン処理に戻ると、賞球個数コマンド送信処理が実行されることによって、カウントアップ後のカウント値にもとづいて賞球個数コマンドが払出制御基板３７に送信される。そして、賞球ＡＣＫ待ち処理が実行されることによって、送信された賞球個数コマンドに対応する賞球個数が総賞球数格納バッファに加算される。
【０４３６】
また、図７３に示すように、払出個数カウントスイッチが賞球の払い出しを検出したあとに、ＣＰＵ５６によってタイマ割込処理が実行されると、入力判定処理のステップＳ２１２７〜Ｓ２１３２の処理が実行されることによって、総賞球数格納バッファが格納する総賞球数から１減算される。この場合、賞球ＡＣＫ待ち処理の賞球加算処理（ステップＳ１２８１〜Ｓ１２８５の処理）が実行されている間は割込禁止状態に設定されているので、タイマ割込処理は実行されないことになる。そのため、賞球加算処理の実行中に払出個数カウントスイッチが賞球の払い出しを検出したとしても、総賞球数格納バッファが格納する総賞球数の減算処理は実行されない。賞球加算処理を終了し再び割込許可状態に設定されると、タイマ割込処理が実行され、払出個数カウントスイッチの検出信号にもとづいて、総賞球数格納バッファが格納する総賞球数から１減算される。
【０４３７】
次に、タイマ割込処理における乱数回路初期値更新処理（ステップＳ２２）について説明する。図７４は、乱数回路初期値更新処理を示すフローチャートである。乱数回路初期値更新処理において、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１が出力するカウント値Ｃを最終値まで更新した旨を示す通知信号の状態を確認する（ステップＳ２２０）。通知信号がオン状態になっていることを検出した場合には、ＣＰＵ５６は、初期値更新フラグがセットされているか否かを確認する（ステップＳ２２１）。すなわち、ＣＰＵ５６は、乱数回路設定処理において、所定の最終値までカウント値が更新されたときに初期値を更新する旨の設定がなされたか否か（ステップＳ１５７参照）を確認する。
【０４３８】
初期値更新フラグがセットされている場合、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１が所定の最終値までカウント値を更新したときに、カウンタ５２１に入力する初期値を更新すると判断する。また、初期値更新フラグがセットされている場合、ＣＰＵ５６は、初期値変更フラグがセットされているか否かを確認する（ステップＳ２２２）。すなわち、ＣＰＵ５６は、カウント値の初期値が現在変更されているか否か（すなわち、遊技制御用マイクロコンピュータ５６０のＩＤナンバにもとづく値に変更されているか否か）を判断する。
【０４３９】
初期値変更フラグがセットされている（すなわち、遊技制御用マイクロコンピュータ５６０のＩＤナンバにもとづく値に初期値が現在変更されている）場合、ＣＰＵ５６は、カウンタ５２１に入力する初期値を、遊技制御用マイクロコンピュータ５６０のＩＤナンバにもとづく値から元の値（例えば、「１」）にもどす（ステップＳ２２３）。そして、ＣＰＵ５６は、初期値変更フラグをリセットし（ステップＳ２２４）、初期値更新処理を終了する。
【０４４０】
初期値変更フラグがセットされていない（すなわち、初期値が現在変更されていない）場合、ＣＰＵ５６は、カウンタ５２１に入力する初期値を、遊技制御用マイクロコンピュータ５６０のＩＤナンバにもとづく値に変更する（ステップＳ２２５）。この場合、例えば、遊技制御用マイクロコンピュータ５６０のＩＤナンバが「１００」であるとすると、カウンタ５２１に入力する初期値を、ＩＤナンバ「１００」に所定値「１００」を加算して求めた演算値「２００」に変更する。また、例えば、カウンタ５２１に入力する初期値を、ＩＤナンバ「１００」に所定値「５０」を減算して求めた演算値「５０」に変更する。そして、ＣＰＵ５６は、初期値変更フラグをセットし（ステップＳ２２６）、初期値更新処理を終了する。
【０４４１】
なお、１２ビット乱数回路５０３ａおよび１６ビット乱数回路５０３ｂの両方を設定した場合、ステップＳ２２５において、ＣＰＵ５６は、一方の乱数回路（例えば、１２ビット乱数回路５０３ａ）から読み込んだ乱数を所定値としてＩＤナンバに加算して、カウンタ５２１に入力する初期値を求めてもよい。そして、ＣＰＵ５６は、他の一方（例えば、１６ビット乱数回路５０３ｂ）から読み込んだ乱数を、大当り判定用の乱数として用いてもよい。
【０４４２】
なお、ＣＰＵ５６は、ステップＳ２２５においてカウンタ５２１に入力する初期値を更新する際、乱数回路５０３の比較器５２２の乱数最大値設定レジスタ５３５の値を確認し、ＩＤナンバにもとづいて設定された値が乱数最大値以上であるか否かを判断する。そして、ＩＤナンバにもとづいて設定された値が乱数最大値以上であると判断すると、ＣＰＵ５６は、カウンタ５２１に入力する初期値を所定値のまま更新しない（例えば、所定値「０」のまま更新しない）。そのようにすることによって、カウント値の初期値が乱数最大値以上の値に設定されてしまう事態を防止することができる。
【０４４３】
なお、ステップＳ２２０において通知信号がオフ状態であると判断した場合、およびステップＳ２２１において初期値更新フラグがセットされていないと判断した場合、ＣＰＵ５６は、カウンタ５２１に入力する初期値を更新することなく、そのまま乱数回路初期値更新処理を終了し、ステップＳ２３に移行する。
【０４４４】
次に、タイマ割込処理におけるカウント値順列変更処理（ステップＳ２６）について説明する。図７５は、カウント値順列変更処理を示すフローチャートである。ＣＰＵ５６は、カウント値順列変更プログラム５５４に従って処理を実行することによって、カウント値順列変更処理を行う。カウント値順列変更処理において、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１が出力するカウント値Ｃを最終値まで更新した旨を示す通知信号の状態を確認する（ステップＳ２４１）。通知信号がオン状態になっていることを検出した場合には、ＣＰＵ５６は、カウント値順列変更フラグがセットされているか否かを確認する（ステップＳ２４２）。すなわち、ＣＰＵ５６は、乱数回路設定処理において、所定の最終値までカウント値が更新されたときにカウンタ５２１が更新するカウント値の順列を変更する旨の設定がなされたか否か（ステップＳ１５８参照）を確認する。
【０４４５】
カウント値順列変更フラグがセットされている場合、ＣＰＵ５６は、乱数回路５０３のカウンタ５２１が所定の最終値までカウント値を更新したときに、カウンタ５２１が更新するカウント値の順列を変更すると判断する。そして、ＣＰＵ５６は、カウント値順列変更レジスタ５３６にカウント値順列変更データ「０１ｈ」を書き込む（ステップＳ２４３）。すなわち、ＣＰＵ５６は、カウント値順列変更データ「０１ｈ」を書き込むことによって、乱数値記憶回路５３１に入力されるカウント値Ｃの順列をカウント値順列変更回路５２３に変更させる。
【０４４６】
以上のように、カウント値順列変更処理において、乱数を所定の最終値まで更新したときに、カウンタ５２１が更新するカウント値の順列を変更するので、乱数回路５０３が生成する乱数のランダム性をより向上させることができる。
【０４４７】
次に、払出制御手段（払出制御用マイクロコンピュータ３７０）の動作を説明する。図７６は、払出制御手段における出力ポートの割り当ての例を示す説明図である。図７６に示すように、出力ポート０は、ステッピングモータによる払出モータ２８９に供給される各相の信号と、払出個数カウントスイッチ３０１の検出信号とを出力するための出力ポートである。すなわち、払出個数カウントスイッチ３０１の検出信号は、払出制御用マイクロコンピュータ３７０を経由して出力ポート０から主基板３１に出力される。また、出力ポート１は、球切れＬＥＤ５２、および賞球ＬＥＤ５１と、遊技機外部に出力される賞球中信号、賞球情報、球貸し情報および遊技機エラー状態信号を出力するための出力ポートである。出力ポート２は、７セグメントＬＥＤによるエラー表示ＬＥＤ３７４の各セグメント出力の出力ポートである。
【０４４８】
なお、払出制御基板３７には、図７６には示されていないが、カードユニット５０へのＥＸＳ信号およびＰＲＤＹ信号を出力するための出力ポート３も設けられている。
【０４４９】
図７７は、払出制御手段における入力ポートのビット割り当ての例を示す説明図である。図７７に示すように、ビット４には、主基板３１からの接続確認信号が入力される。また、ビット６，７には、それぞれ、球切れスイッチ１８７の検出信号、および払出モータ位置センサ２９５の検出信号が入力される。また、入力ポート１のビット１〜３には、それぞれ、払出個数カウントスイッチ３０１の検出信号、エラー解除スイッチ３７５からの操作信号、満タンスイッチ４８の検出信号が入力される。入力ポート１のビット４〜６には、それぞれ、カードユニット５０からのＶＬ信号、ＢＲＤＹ信号、ＢＲＱ信号が入力される。入力ポート２には、電源基板９１０からのクリアスイッチ９２１の出力信号、および電源断信号が入力される。
【０４５０】
次に、払出制御手段の動作について説明する。図７８は、払出制御手段が実行するメイン処理を示すフローチャートである。メイン処理では、払出制御用マイクロコンピュータ３７０の払出制御用ＣＰＵ３７１は、まず、必要な初期設定を行う。すなわち、払出制御用ＣＰＵ３７１は、まず、割込禁止に設定する（ステップＳ７０１）。次に、割込モードを割込モード２に設定し（ステップＳ７０２）、スタックポインタにスタックポインタ指定アドレスを設定する（ステップＳ７０３）。また、払出制御用ＣＰＵ３７１は、内蔵デバイスレジスタの設定を行い（ステップＳ７０４）、ＣＴＣおよびＰＩＯの設定を行う（ステップＳ７０５）を行った後に、ＲＡＭをアクセス可能状態に設定する（ステップＳ７０６）。また、賞球未払出個数カウンタ初期値として００００（Ｈ）をセットする（ステップＳ７０７）。
【０４５１】
この実施の形態では、内蔵ＣＴＣのうちの一つのチャネルがタイマモードで使用される。従って、ステップＳ７０４の内蔵デバイスレジスタの設定処理およびステップＳ７０５の処理において、使用するチャネルをタイマモードに設定するためのレジスタ設定、割込発生を許可するためのレジスタ設定および割込ベクタを設定するためのレジスタ設定が行われる。そして、そのチャネルによる割込がタイマ割込として用いられる。タイマ割込を例えば２ｍｓ毎に発生させたい場合は、初期値として２ｍｓに相当する値が所定のレジスタ（時間定数レジスタ）に設定される。
【０４５２】
なお、タイマモードに設定されたチャネル（この実施の形態ではチャネル３）に設定される割込ベクタは、タイマ割込処理の先頭アドレスに相当するものである。具体的は、Ｉレジスタに設定された値と割込ベクタとでタイマ割込処理の先頭アドレスが特定される。タイマ割込処理では、払出手段を制御する払出制御処理（少なくとも主基板からの賞球払出に関する指令信号に応じて球払出装置９７を駆動する処理を含み、球貸し要求に応じて球払出装置９７を駆動する処理が含まれていてもよい。）が実行される。
【０４５３】
この実施の形態では、払出制御用マイクロコンピュータ３７０でも割込モード２が設定される。従って、内蔵ＣＴＣのカウントアップにもとづく割込処理を使用することができる。また、ＣＴＣが送出した割込ベクタに応じた割込処理開始アドレスを設定することができる。ＣＴＣのチャネル３（ＣＨ３）のカウントアップにもとづく割込は、ＣＰＵの内部クロック（システムクロック）をカウントダウンしてレジスタ値が「０」になったら発生する割込であり、タイマ割込として用いられる。
【０４５４】
次いで、入力ポート２を介して入力されるクリアスイッチ９２１の出力信号の状態を１回だけ確認する（ステップＳ７０８）。その確認においてオンを検出した場合には、払出制御用ＣＰＵ３７１は、初期化処理を実行する（ステップＳ７１２〜ステップＳ７１５）。クリアスイッチ９２１がオンの状態でない場合には、遊技機への電力供給が停止したときにバックアップＲＡＭ領域のデータ保護処理（例えばパリティデータの付加等の電力供給停止時処理）が行われたか否か確認する（ステップＳ７０９）。保護処理が行われていたか否かは、後述する電力供給停止時処理においてバックアップＲＡＭ領域に保存されるバックアップ監視タイマの値が、バックアップＲＡＭ領域のデータ保護処理を実行したことに応じた値（例えば２）になっているか否かによって確認される。なお、そのような確認の仕方は一例であって、例えば、電力供給停止時処理においてバックアップフラグ領域にデータ保護処理を実行したことを示すフラグをセットし、ステップＳ７０９において、そのフラグがセットされていることを確認したらバックアップありと判定してもよい。
【０４５５】
バックアップありと判定したら、払出制御用ＣＰＵ３７１は、バックアップＲＡＭ領域のデータチェック（この例ではパリティチェック）を行う（ステップＳ７１０）。この実施の形態では、クリアデータ（００）をチェックサムデータエリアにセットし、チェックサム算出開始アドレスをポインタにセットする。また、チェックサムの対象となるデータ数に対応するチェックサム算出回数をセットする。そして、チェックサムデータエリアの内容とポインタが指すＲＡＭ領域の内容との排他的論理和を演算する。演算結果をチェックサムデータエリアにストアするとともに、ポインタの値を１増やし、チェックサム算出回数の値を１減算する。以上の処理が、チェックサム算出回数の値が０になるまで繰り返される。チェックサム算出回数の値が０になったら、遊技制御用マイクロコンピュータ５６０は、チェックサムデータエリアの内容の各ビットの値を反転し、反転後のデータをチェックサムとする。
【０４５６】
なお、この実施の形態では、電力供給停止時処理において、上記の処理と同様の処理によってチェックサムが算出され、チェックサムはバックアップＲＡＭ領域に保存されている。ステップＳ７１０では、算出したチェックサムと保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップＲＡＭ領域のデータは保存されているはずであるから、チェック結果（比較結果）は正常（一致）になる。チェック結果が正常でないということは、バックアップＲＡＭ領域のデータが、電力供給停止時のデータとは異なっていることを意味する。そのような場合には、内部状態を電力供給停止時の状態に戻すことができないので、払出制御状態復旧処理を実行せず、初期化処理（ステップＳ７１２〜Ｓ７１５の処理）を実行する。
【０４５７】
チェック結果が正常であれば、払出制御用ＣＰＵ３７１は、払出制御状態復旧処理を行う。具体的には、賞球未払出個数カウンタ初期値として、バックアップＲＡＭに形成されている賞球未払出個数カウンタの値をセットする（ステップＳ７１１）。そして、ステップＳ７１２以降の処理を実行する。
【０４５８】
初期化処理では、払出制御用ＣＰＵ３７１は、まず、ＲＡＭクリア処理を行う（ステップＳ７１２）。また、ＲＡＭ領域のフラグやカウンタなどに初期値を設定する（ステップＳ７１３）。ステップＳ７１３の処理には、賞球未払出個数カウンタ初期値を賞球未払出個数カウンタにセットする処理が含まれる。従って、払出制御状態復旧処理（ステップＳ７１１）が実行された場合には、バックアップＲＡＭに保存されていた賞球未払出個数カウンタの値が、あらためて賞球未払出個数カウンタにセットされる。換言すれば、バックアップＲＡＭに保存されていた賞球未払出個数カウンタの値がそのまま使用される。
【０４５９】
また、払出制御用ＣＰＵ３７１は、シリアル通信回路３８０を初期設定するシリアル通信回路設定処理を実行する（ステップＳ７１３ａ）。この場合、払出制御用ＣＰＵ３７１は、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６が行うシリアル通信回路設定処理（ステップＳ１５ａ参照）と同様の処理に従って、シリアル通信回路３８０に遊技制御用マイクロコンピュータ５６０とシリアル通信させるための設定を行う。
【０４６０】
シリアル通信回路３８０を初期設定すると、払出制御用ＣＰＵ３７１は、シリアル通信回路３８０の割り込み要求に応じて実行する割込処理の優先順位を初期設定する（ステップＳ７１３ｂ）。この場合、この場合、払出制御用ＣＰＵ３７１は、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６が行う優先順位の初期設定処理（ステップＳ１５ｂ参照）と同様の処理に従って、割込処理の優先順位を初期設定する。
【０４６１】
そして、定期的にタイマ割込がかかるように払出制御用マイクロコンピュータ３７０に設けられているＣＴＣのレジスタの設定を行う（ステップＳ７１４）。すなわち、初期値としてタイマ割込発生間隔に相当する値が所定のレジスタ（時間定数レジスタ）に設定される。そして、初期設定処理のステップＳ７０１において割込禁止とされているので、初期化処理を終える前に割込が許可される（ステップＳ７１５）。その後、タイマ割込の発生を監視するループ処理に入る。
【０４６２】
上記のように、この実施の形態では、払出制御用マイクロコンピュータ３７０の内蔵ＣＴＣが繰り返しタイマ割込を発生するように設定される。そして、タイマ割込が発生すると、払出制御用マイクロコンピュータ３７０の払出制御用ＣＰＵ３７１は、タイマ割込処理を実行する。
【０４６３】
図７９は、払出制御手段が実行するタイマ割込処理の例を示すフローチャートである。タイマ割込処理にて、払出制御用マイクロコンピュータ３７０の払出制御用ＣＰＵ３７１は、電源断信号が出力された否かを監視する電源断処理を実行する（ステップＳ７４９）。その後、ステップＳ７５１以降の払出制御処理を実行する。払出制御処理では、払出制御用ＣＰＵ３７１は、まず、入力判定処理を行う（ステップＳ７５１）。入力判定処理は、入力ポート０のビット４〜６および入力ポート１のビット３〜６（図７７参照）の状態を検出して検出結果をＲＡＭの所定の１バイト（入力状態フラグと呼ぶ。）に反映する処理である。なお、払出制御処理において、入力ポート０のビット４〜６および入力ポート１のビット３〜６の状態にもとづいて制御を行う場合には、直接入力ポートの状態をチェックするのではなく、入力状態フラグの状態をチェックする。
【０４６４】
次に、払出制御用ＣＰＵ３７１は、払出モータ制御処理を実行する（ステップＳ７５３）。払出モータ制御処理では、払出モータ２８９を駆動すべきときには、払出モータφ１〜φ４のパターンを出力ポート０に出力するための処理を行う。
【０４６５】
また、払出制御用ＣＰＵ３７１は、カードユニット５０と通信を行うプリペイドカードユニット制御処理を実行する（ステップＳ７５４）。次いで、払出制御用ＣＰＵ３７１は、主基板３１の遊技制御手段と通信を行う主制御通信処理を実行する（ステップＳ７５５）。さらに、カードユニット５０からの球貸し要求に応じて貸し球を払い出す制御を行い、また、主基板からの賞球個数コマンドが示す個数の賞球を払い出す制御を行う賞球球貸し制御処理を実行する（ステップＳ７５６）。
【０４６６】
そして、払出制御用ＣＰＵ３７１は、各種のエラーを検出するエラー処理を実行する（ステップＳ７５７）。また、遊技機外部に出力される賞球情報や球貸し情報を出力するための情報出力処理を実行する（ステップＳ７５８）。また、エラー処理の結果に応じてエラー表示ＬＥＤ３７４に所定の表示を行うとともに、賞球ＬＥＤ５１および球切れＬＥＤ５２を点灯するための表示制御処理を実行する（ステップＳ７５９）。
【０４６７】
本実施の形態では、後述するエラー処理において各種エラー（例えば、満タンエラーや球切れエラー、プリペイドカードユニット未接続エラー）が検出されると、検出されたエラーに対応するエラービットがセットされる。そして、ステップＳ７５９の表示制御処理において、エラービットがセットされていることにづいて、払出制御用ＣＰＵ３７１は、エラー表示ＬＥＤ３７４に所定の表示を行う。また、払出制御用ＣＰＵ３７１は、表示制御処理において、賞球払出を行っている状態であるときに、賞球ＬＥＤ５１を点灯するための制御を行う。また、賞球払出を終了したら、賞球ＬＥＤ５１を消灯するための制御を行う。
【０４６８】
また、この実施の形態では、出力ポートの出力状態に対応したＲＡＭ領域（出力ポート０バッファ、出力ポート１バッファ、出力ポート２バッファ）が設けられているのであるが、払出制御用ＣＰＵ３７１は、出力ポート０バッファ、出力ポート１バッファおよび出力ポート２バッファの内容を出力ポートに出力する（ステップＳ７６０：出力処理）。出力ポート０バッファ、出力ポート１バッファおよび出力ポート２バッファは、払出モータ制御処理（ステップＳ７５３）、プリペイドカード制御処理（ステップＳ７５４）、主制御通信処理（ステップＳ７５５）、情報出力処理（ステップＳ７５８）および表示制御処理（ステップＳ７５９）で更新される。
【０４６９】
次に、ステップＳ７５５の主制御通信処理において、払出制御用マイクロコンピュータ３７０の払出制御用ＣＰＵ３７１が各種コマンドを送受信する動作を説明する。図５４に示すように、払出制御用マイクロコンピュータ３７０は、遊技制御用マイクロコンピュータ５６０と各種コマンドをシリアル通信するシリアル通信回路３８０を内蔵している。払出制御用マイクロコンピュータ３７０は、シリアル通信回路３８０を用いて、遊技制御用マイクロコンピュータ５６０から図５３に示す賞球個数コマンドを受信する。また、賞球個数コマンドを受信すると、払出制御用マイクロコンピュータ３７０は、シリアル通信回路３８０を用いて、図５３に示す賞球ＡＣＫコマンド「Ｄ２」を受信確認信号として送信する。
【０４７０】
また、払出制御用ＣＰＵ３７１は、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６と同様に、割り込み許可状態である間にシリアル通信回路３８０からの割り込み要求があると、シリアル通信回路３８０が割り込み要求を行った割り込み原因に応じた割り込み処理を実行する。この実施の形態では、払出制御用ＣＰＵ３７１は、割り込み原因がシリアル通信回路３８０が受信データを受信したことであると特定すると、図５６（ｂ）と同様の処理に従って受信時割込処理を実行する。この場合、払出制御用ＣＰＵ３７１は、シリアル通信回路３８０が受信データを受信していることを示す受信時割込フラグをセットする。なお、払出制御用ＣＰＵ３７１は、受信時割込処理において、受信時割込フラグをセットするのでなく、シリアル通信回路３８０の受信データレジスタからデータを読み込んでもよい。この場合、例えば、払出制御用ＣＰＵ３７１は、受信時割込処理において、読み込んだ受信データが賞球個数コマンドであるか否かを判断する。また、受信データが賞球個数コマンドである場合、払出制御用ＣＰＵ３７１は、賞球個数コマンドが示す賞球数を賞球未払出個数カウンタに加算してもよい。そのようにすれば、後述する主制御通信処理において、受信時割込フラグがセットされていることにもとづいて受信データが賞球個数コマンドであるか否かを判定し（後述するステップＳ５４２〜Ｓ５４５参照）、賞球数を賞球未払出個数カウンタに加算する処理（後述するステップＳ５４６参照）を実行する必要がなくなる。
【０４７１】
図８０は、払出制御用マイクロコンピュータ３７０の払出制御用ＣＰＵ３７１が、主基板３１の遊技制御手段（遊技制御用マイクロコンピュータ５６０）と通信を行う主制御通信処理を示すフローチャートである。主制御通信処理において、払出制御用ＣＰＵ３７１は、接続確認信号がオン状態であるか否かを確認する（ステップＳ５４１）。なお、接続確認信号がオン状態であるということは、電力供給がなされ遊技制御手段において遊技の進行を制御可能な状態であることを意味し、接続確認信号がオフ状態であるということは、電力供給停止時処理が開始され遊技制御手段において遊技の進行が不能な状態であることを意味する（接続確認信号は、電力供給停止時処理における出力ポートクリア処理でオフ状態にされる。）。
【０４７２】
払出制御用ＣＰＵ３７１は、受信時割込フラグがセットされているか否かを確認する（ステップＳ５４２）。すなわち、払出制御用ＣＰＵ３７１は、シリアル通信回路３８０が受信データを受信し、シリアル通信回路３８０の受信データレジスタにデータが格納されている状態になっているか否かを確認する。
【０４７３】
受信時割込フラグがセットされていれば、払出制御用ＣＰＵ３７１は、シリアル通信回路３８０の受信データレジスタからデータを読み込む（ステップＳ５４３）。また、払出制御用ＣＰＵ３７１は、読み込んだデータが賞球個数コマンドであるか否か（コマンド「０３」、「０Ａ」または「０Ｆ」のいずれかであるか否か）を判断する（ステップＳ５４４）。
【０４７４】
シリアル通信回路３８０の受信データレジスタから読み込んだデータが賞球個数コマンドであることを確認すると、払出制御用ＣＰＵ３７１は、受信時割込フラグをリセットして（ステップＳ５４５）、賞球個数コマンドが示す賞球数を賞球未払出個数カウンタに加算する（ステップＳ５４６）。そして、払出制御用ＣＰＵ３７１は、賞球ＡＣＫコマンドをシリアル通信回路５０５の送信データレジスタ７１０に書き込み（ステップＳ５４７）、処理を終了する。その後、送信データレジスタに書き込まれた賞球ＡＣＫコマンドは、シリアル通信回路３８０の送信用シフトレジスタに転送され、シリアル通信回路３８０の送信用シフトレジスタから遊技制御用マイクロコンピュータ５６０に送信される。
【０４７５】
ステップＳ５４４で受信データレジスタから読み込んだデータが賞球個数コマンドでなかった場合には、払出制御用ＣＰＵ３７１は、読み込んだデータが賞球過多異常コマンドであるか否かを確認する（ステップＳ５４８ａ）。賞球過多異常コマンドであることを確認すると、払出制御用ＣＰＵ３７１は、受信時割込フラグをリセットして（ステップＳ５４９ａ）、賞球過多異常コマンドを受信した旨を示す賞球過多異常コマンド受信フラグをセットする（ステップＳ５５０ａ）。
【０４７６】
ステップＳ５４８ａで受信データレジスタから読み込んだデータが賞球過多異常コマンドでなかった場合には、払出制御用ＣＰＵ３７１は、読み込んだデータが賞球過少異常コマンドであるか否かを確認する（ステップＳ５４８ｂ）。賞球過少異常コマンドであることを確認すると、払出制御用ＣＰＵ３７１は、受信時割込フラグをリセットして（ステップＳ５４９ｂ）、賞球過少異常コマンドを受信した旨を示す賞球過少異常コマンド受信フラグをセットする（ステップＳ５５０ｂ）。
【０４７７】
図８１は、ステップＳ７５６の賞球球貸し制御処理を示すフローチャートである。賞球球貸し制御処理において、払出制御用ＣＰＵ３７１は、払出個数カウントスイッチ３０１の検出信号がオン状態になったことを確認したら（ステップＳ６０１）、球貸し中であれば球貸し未払出個数カウンタの値を１減らし（ステップＳ６０２，Ｓ６０４）、球貸し中でなければ賞球未払出個数カウンタの値を１減らす（ステップＳ６０２，Ｓ６０３）。また、賞球未払出個数カウンタの値を１減算すると、払出個数カウントスイッチ３０１の検出信号を主基板３１に転送（出力）する（ステップＳ６０３ａ）。
【０４７８】
次に、ＲＡＭに形成されている払出制御状態フラグの払出球検知ビットをセットする（ステップＳ６０５）。払出球検知ビットは、払出通過待ち処理において、１回の賞球払出処理（最大１５個）または１回の球貸し処理において（２５個の払出）、払出モータ２８９を駆動したにもかかわらず遊技球が１個も払出個数カウントスイッチ３０１を通過しなかったことを検知するために用いられる。その後、払出制御コードの値に応じてステップＳ６１０〜Ｓ６１２のいずれかの処理を実行する。
【０４７９】
賞球球貸し制御処理において、払出個数カウントスイッチ３０１の検出信号の確認や未払出個数カウンタの減算処理を行うときには、エラービットのチェックは実行されない。従って、遊技球の払い出しに関わるエラー状態であっても、払出個数カウントスイッチ３０１によって遊技球の払い出しが検出される毎に、払い出された遊技球が貸し球であれば球貸し未払出個数カウンタの値を１減算し、賞球であれば賞球未払出個数カウンタの値を１減算する処理を実行する。よって、払い出しに関わるエラーが発生しても、未払出の遊技球数を正確に管理することができる。すなわち、払出制御用マイクロコンピュータ３７０の払出制御用ＣＰＵ３７１がエラーの発生を検出する前に球払出装置９７から払い出された遊技球は、払い出された時点からやや遅れて払出個数カウントスイッチ３０１によって検出されるのであるが、払出制御用ＣＰＵ３７１は、球払出装置９７から遊技球が払い出された後、その遊技球が払出個数カウントスイッチ３０１によって検出される前にエラーの発生を検出したような場合に、エラーの発生を検出する前に球払出装置９７から払い出された遊技球を、賞球未払出個数カウンタまたは球貸し未払出個数カウンタに反映できる。
【０４８０】
図８２は、払出制御コードが０の場合に実行される払出開始待ち処理（ステップＳ６１０）を示すフローチャートである。払出開始待ち処理において、払出制御用ＣＰＵ３７１は、ＢＲＤＹ信号がオン状態でなければ（ステップＳ６２１）、ステップＳ６３１以降の賞球払出のための処理を実行する。ただし、エラービットがセットされていたら、ステップＳ６３１以降の処理を実行しない（ステップＳ６２２）。エラーフラグにおけるエラービットには、主基板未接続エラーのビットが含まれている。また、主基板未接続エラーは主基板３１からの接続確認信号がオフ状態であるときにセットされる。従って、払出制御用ＣＰＵ３７１は、遊技機に対して電力供給が開始された後、接続確認信号がオン状態になったことを条件に、実質的な制御を開始する。接続確認信号がオン状態であるということは、電力供給がなされ遊技制御手段において遊技の進行を制御可能な状態であるので、遊技の進行に応じた賞球の払出制御が実行可能であることを意味する。一方、接続確認信号がオフ状態であるということは、電力供給が停止され遊技制御手段において遊技の進行が不能な状態であるので、遊技の進行に応じた賞球の払出制御が実行不可能であることを意味する。よって、払出制御用ＣＰＵ３７１は、主基板未接続エラーのビットがセットされているときには、賞球の払出制御を停止する。一方、この例では、エラービットの確認を行うことなく貸し球の払出制御を実行する構成とされており、主基板未接続エラーのビットがセットされていても、球貸し制御は継続して行う。
【０４８１】
ＢＲＤＹ信号がオン状態であって、さらに、球貸し要求信号であるＢＲＱ信号がオン状態になっていたら（ステップＳ６２３）、払出制御用ＣＰＵ３７１は、ＶＬ信号がオン状態であるか否かを確認する（ステップＳ６２３ａ）。ＶＬ信号がオン状態であれば、払出制御用ＣＰＵ３７１は、球貸し動作中フラグをセットする（ステップＳ６２４）。そして、球貸し未払出個数カウンタに「２５」をセットし（ステップＳ６２５）、払出モータ回転回数バッファに「２５」をセットする（ステップＳ６２６）。なお、ステップＳ６２３ａでＶＬ信号がオン状態でなければ、払出制御用ＣＰＵ３７１は、ステップＳ６２４以降の処理を行わず、ステップＳ６２２に進む。
【０４８２】
払出モータ回転回数バッファは、払出モータ制御処理（ステップＳ７５３）において参照される。すなわち、払出モータ制御処理では、払出モータ回転回数バッファにセットされた値に対応した回転数分だけ払出モータ２８９を回転させる制御が実行される。
【０４８３】
その後、払出制御用マイクロコンピュータ３７０は、払出モータ制御処理で実行される処理を選択するための払出モータ制御コードに、払出モータ起動準備処理（ステップＳ５２２）に応じた値（具体的は「１」）をセットし（ステップＳ６２７）、払出制御コードの値を１にして（ステップＳ６２８）、処理を終了する。
【０４８４】
ステップＳ６３１では、払出制御用ＣＰＵ３７１は、賞球未払出個数カウンタの値が０であるか否かを確認する（ステップＳ６３１）。０であれば処理を終了する。賞球未払出個数カウンタの値が０でない場合には、１５以上であるか否か確認する（ステップＳ６３２）。１５未満であれば、払出モータ回転回数バッファに賞球未払出個数カウンタの値をセットし（ステップＳ６３３）、１５以上であれば、払出モータ回転回数バッファに「１５」をセットする。そして、賞球動作中フラグをセットし（ステップＳ６３５）、ステップＳ６２７に移行する。
【０４８５】
図８３は、払出制御コードが１の場合に実行される払出モータ停止待ち処理（ステップＳ６１１）を示すフローチャートである。払出モータ停止待ち処理において、払出制御用ＣＰＵ３７１は、払出動作が終了したか否か確認する（ステップＳ６４１）。払出制御用ＣＰＵ３７１は、例えば、払出モータ制御処理における払出モータブレーキ処理（ステップＳ５２５）が終了するときにその旨のフラグをセットし、ステップＳ６４１においてそのフラグを確認することによって払出動作が終了したか否かを確認することができる。
【０４８６】
払出動作が終了した場合には、払出制御用ＣＰＵ３７１は、払出制御監視タイマに払出通過監視時間をセットする（ステップＳ６４２）。払出通過監視時間は、最後の払出球が払出モータ２８９によって払い出されてから払出個数カウントスイッチ３０１を通過するまでの時間に、余裕を持たせた時間である。そして、払出制御コードの値を２にして（ステップＳ６４３）、処理を終了する。
【０４８７】
図８４〜図８６は、払出制御コードの値が２の場合に実行される払出通過待ち処理（ステップＳ６１２）を示すフローチャートである。払出通過待ち処理では、賞球払出が行われているときには、賞球未払出個数カウンタの値が０になっていれば正常に払出が完了したと判定される。賞球未払出個数カウンタの値が０になっていない場合には、エラー状態でなければ、１個の遊技球の再払出動作を、２回を上限として試みる。再払出動作において払出個数カウントスイッチ３０１によって遊技球が実際に払い出されたことが検出されたら正常に払出が完了したと判定される。なお、この実施の形態では、１回の賞球払出動作で払い出される遊技球数は最大１５個であり、また、賞球払出中に賞球個数コマンドを受信したら賞球未払出個数カウンタの値が増加するので、正常に払出が完了した場合でも、賞球未払出個数カウンタの値が０になっていないことがある。
【０４８８】
また、球貸し払出が行われているときには、球貸し未払出個数カウンタの値が０になっていれば正常に払出が完了したと判定される。球貸し未払出個数カウンタの値が０になっていない場合には、エラー状態でなければ、１個の遊技球または球貸し残数（球貸し未払出個数カウンタの値に相当）の再払出動作を試みる。なお、この実施の形態では、１回の球貸し払出動作で払い出される遊技球数は２５個（固定値）であり、２５個の遊技球が払い出されるように払出モータ２８９を回転させたのであるから、球貸し未払出個数カウンタの値が０になっていない場合には、正常に払出が完了していないことになる。
【０４８９】
払出通過待ち処理において、払出制御用ＣＰＵ３７１は、まず、払出制御タイマの値を確認し、その値が０になっていればステップＳ６５３に移行する（ステップＳ６５０）。払出制御タイマの値が０でなければ、払出制御タイマの値を−１する（ステップＳ６５１）。そして、払出制御タイマの値が０になっていなければ（ステップＳ６５２）、すなわち払出制御タイマがタイムアウトしていなければ処理を終了する。なお、ステップＳ６５０の処理は、後述する遊技球払出のリトライ動作が開始されたときのことを考慮した処理である。後述するステップＳ８０７の処理が実行された場合には、ステップＳ６５０からＳ６５３に移行するルートを経てリトライ動作が開始される。
【０４９０】
払出制御タイマがタイムアウトしていれば（ステップＳ６５２）、球貸し払出処理（球貸し動作）を実行していたか否か確認する（ステップＳ６５３）。球貸し動作を実行していたか否かは、ＲＡＭに形成されている払出制御状態フラグにおける球貸し動作中ビットがセットされているか否か（ステップＳ６２３，Ｓ６２４参照）によって確認される。球貸し動作を実行していない場合、すなわち、賞球払出処理（賞球動作）を実行していた場合には、払出制御用ＣＰＵ３７１は、賞球未払出個数カウンタの値を確認する（ステップＳ６５４）。賞球未払出個数カウンタの値が０になっている場合には、正常に賞球払出処理が完了したとして、払出制御状態フラグにおける払出球検知ビット、再払出動作中１ビット、再払出動作中２ビット、賞球動作中フラグおよび球貸し動作中ビットをリセットし（ステップＳ６５５）、払出制御コードを０にして（ステップＳ６５６）、処理を終了する、なお、払出球検知ビットは、払出個数カウントスイッチ３０１がオンしたときにセットされるビットであり、払出動作中に払出個数カウントスイッチ３０１が少なくとも１個の遊技球を検出したことを示すビットである。また、再払出動作中１ビットおよび再払出動作中２ビットは、２回の再払出動作からなる再払出処理を実行する際に用いられる制御ビットである。
【０４９１】
払出制御用ＣＰＵ３７１は、賞球未払出個数カウンタの値が０になっていない場合には、エラーフラグ（具体的には、払出スイッチ異常エラー１ビット、払出スイッチ異常エラー２ビットおよび払出ケースエラービットのうちのいずれか１ビットまたは複数ビット）がセットされていないことを条件として（ステップＳ６５９）、また、払出球検知ビットがセットされていないことを条件として（ステップＳ６６１）、再払出動作を実行する。なお、エラーフラグがセットされている場合には、再払出動作を実行しない。
【０４９２】
上述したように、この実施の形態では、正常に払出が完了した場合でも、賞球未払出個数カウンタの値が０になっていないことがある。そこで、払出球検知ビットがセットされていれば、すなわち払出個数カウントスイッチ３０１が賞球払出処理中に少なくとも１個の遊技球の払出を検出していたら、正常に賞球払出処理が完了したとして、ステップＳ６５５に移行する。なお、例えば、１回の賞球払出処理で１５個の遊技球を払い出すべきところ、実際には１４個の遊技球しか払い出されなかった場合（払出個数カウントスイッチ３０１が１４個の遊技球しか検出しなかった場合）にも、払出球検知ビットがセットされるので正常に賞球払出処理が完了したとみなされるが、その場合には、賞球未払出個数カウンタの値は１４しか減算されていないはずであり、不足分は次回の賞球払出処理で払い出されるので、遊技者に不利益を与えることはない。
【０４９３】
再払出処理を実行するために、払出制御用ＣＰＵ３７１は、まず、再払出動作中２ビットがセットされているか否か確認する（ステップＳ６６２）。セットされていなければ、再払出動作中１ビットがセットされているか否か確認する（ステップＳ６６３）。再払出動作中１ビットもセットされていなければ、初回の再払出動作を実行するために、再払出動作個数として１をセットし（ステップＳ６６４）、再払出動作中１ビットをセットし（ステップＳ６６５）、払出モータ回転回数バッファに再払出動作個数または球貸し未払出数個数カウンタの値をセットする（ステップＳ６６６）。また、払出制御用ＣＰＵ３７１は、払出モータ制御処理で実行される処理を選択するための払出モータ制御コードに、払出モータ起動準備処理（ステップＳ５２２）に応じた値（具体的は「１」）をセットする。払出モータ回転回数バッファは、払出モータ制御処理（ステップＳ７５３）において参照される。すなわち、払出モータ制御処理では、払出モータ回転回数バッファにセットされた値に対応した回転数分だけ払出モータ２８９を回転させる制御が実行される。なお、ステップＳ６６６において、球貸し未払出数個数カウンタの値も取り扱われるのは、球貸し払出処理における再払出処理でもステップＳ６６６が用いられるからである。すなわち、払出制御用ＣＰＵ３７１は、ステップＳ６６６において、賞球払出処理における再払出処理では再払出動作個数をセットし、球貸し払出処理における再払出処理では球貸し未払出数個数カウンタの値をセットする。その後、払出制御コードを１にして（ステップＳ６６７）、処理を終了する。
【０４９４】
ステップＳ６６３において、再払出動作中１ビットがセットされていることを確認したら、払出制御用ＣＰＵ３７１は、２回目の再払出を実行するために、再払出動作個数として１をセットし（ステップＳ６６８）、再払出動作中１ビットをリセットし（ステップＳ６６９）、再払出動作中２ビットをセットする（ステップＳ６７０）。そして、ステップＳ６６６に移行する。
【０４９５】
ステップＳ６６２において、再払出動作中２ビットがセットされていることを確認したら、払出制御用ＣＰＵ３７１は、２回の再払出処理を実行しても遊技球が払い出されなかった（払出個数カウントスイッチ３０１が遊技球を検出しなかった）として、エラーフラグにおける払出ケースエラービットをセットする（ステップＳ６７２）。その際に、再払出動作中２ビットをリセットしておく（ステップＳ６７１）。そして、処理を終了する。
【０４９６】
以上のように、再払出処理（補正払出処理）において２回の再払出動作を行っても遊技球が１個も払い出されない場合には、遊技球の払出動作不良として、払出個数カウントスイッチ未通過エラービット（払出ケースエラービット）がセットされる。
【０４９７】
従って、この実施の形態では、払出制御用マイクロコンピュータ３７０における景品遊技媒体払出制御手段は、払出検出手段としての払出個数カウントスイッチ３０１からの検出信号にもとづいて、景品遊技媒体の払い出しが行われなかったことを検出したときに、あらかじめ決められた所定回（この例では２回）を限度として、払出手段に１個の景品遊技媒体の払い出しを行わせるように制御を行う。なお、この実施の形態では、景品遊技媒体を払い出すためのリトライ動作を２回行っても景品遊技媒体の払い出しが行われなかった場合には、払出ケースエラービットをセットしてエラー発生中状態になるが（ステップＳ６７２）、景品遊技媒体の払い出しが行われなかったことを初めて検知したときに払出ケースエラービットをセットしてもよい。なお、「リトライ動作（あるいは「リトライ」、「リトライ動作処理」）」とは、所定数の遊技球の払い出しを行うための通常の払出処理を実行したのにもかかわらず、実際の払い出し数が少ない場合に実行させる動作であって、通常の払出処理とは別に、未払出の遊技球を払い出すために払出処理を再度実行させるための動作を意味する。
【０４９８】
賞球球貸し制御処理において、払出動作（１回の賞球払出または１回の球貸し）を行うか否か判定するためにエラービットがチェックされるのは、図８０に示された払出開始待ち処理においてのみである。図８１に示された払出モータ停止待ち処理および図８２等に示された払出通過待ち処理では、エラービットはチェックされない。なお、払出通過待ち処理におけるステップＳ６５９等でもエラービットがチェックされているが、そのチェックは再払出動作を行うか否かを判断するためであって、払出動作（１回の賞球払出または１回の球貸し）を開始するか否か判定するためではない。従って、ステップＳ６２６、Ｓ６３３またはステップＳ６３４の処理が行われて遊技球の払出処理が開始された後では、エラーが発生しても払出処理は中断されない。すなわち、エラーが発生すると、遊技球の払出処理は、切りのよい時点（１回の賞球払出または１回の球貸しが終了した時点）まで継続される。なお、ステップＳ６２１でチェックされるエラーフラグにおけるエラービットの中には、主基板３１からの接続確認信号がオフ状態になったことを示すエラービットが含まれている。よって、接続確認信号がオフ状態になったときにも、遊技球の払出処理は、切りのよい時点で停止される。なお、遊技球の払出処理を切りのよい時点まで継続するのでなく、ステップＳ６２６、Ｓ６３３またはステップＳ６３４の処理が行われて遊技球の払出処理が開始された後であっても、エラーが発生すると直ちに遊技球の払出処理を停止するようにしてもよい。
【０４９９】
ステップＳ６５３で球貸し払出処理（球貸し動作）を実行していたことを確認すると、払出制御用ＣＰＵ３７１は、球貸し未払出個数カウンタの値が０になっているか否か確認する（ステップＳ６５７）。０になっていれば、正常に球貸し払出処理が完了したとしてステップＳ６５５に移行する。
【０５００】
ステップＳ６５７で、球貸し未払出個数カウンタの値が０になっていなければ、エラーフラグ（具体的には、払出スイッチ異常エラー１ビット、払出スイッチ異常エラー２ビットおよび払出ケースエラービットのうちのいずれか１ビットまたは複数ビット）がセットされていないことを条件として（ステップＳ６７５）、再払出処理を実行する。なお、エラーフラグがセットされている場合には、再払出処理を実行しない。
【０５０１】
再払出処理を実行するために、払出制御用ＣＰＵ３７１は、まず、再払出動作中２ビットがセットされているか否か確認する（ステップＳ６７６）。セットされていなければ、再払出動作中１ビットがセットされているか否か確認する（ステップＳ６７７）。再払出動作中１ビットもセットされていなければ、初回の再払出動作を実行するために、再払出動作個数として１をセットし（ステップＳ６７８）、再払出動作中１ビットをセットし（ステップＳ６７９）、さらに払出球検知ビットをリセットした後（ステップＳ６８０）、ステップＳ６６６に移行する。
【０５０２】
ステップＳ６７７において、再払出動作中１ビットがセットされていることを確認したら、払出制御用ＣＰＵ３７１は、再払出動作を再度実行するための処理を行う。具体的には、再払出動作中１ビットをリセットする（ステップＳ６８１）。そして、払出球検知ビットがセットされていたら、すなわち、最初の再払出動作で遊技球が払い出されていたら、ステップＳ６８３に移行する。払出球検知ビットがセットされていなかったら、２回目の再払出動作を実行するためにステップＳ６８４に移行する。
【０５０３】
ステップＳ６８３では払出球検知ビットをリセットし、その後、ステップＳ６６６に移行する。従って、この場合には、再払出動作中１ビットがセットされたままになっているので、再度、初回（最初）の再払出動作が行われる。ステップＳ６８４では、再払出動作個数として１をセットし（ステップＳ６８４）、再払出動作中２ビットをセットし（ステップＳ６８５）、ステップＳ６６６に移行する。
【０５０４】
ステップＳ６７６において、再払出動作中２ビットがセットされていることを確認したら、払出制御用ＣＰＵ３７１は、再払出動作中２ビットをリセットし（ステップＳ６８６）、払出球検知ビットがセットされていたら、すなわち、再払出動作で遊技球が払い出されていたらステップＳ６８３に移行して残りの未払出を分を解消することを試みる。払出球検知ビットがセットされていなかったら、２回の再払出処理を実行しても遊技球が払い出されなかった（払出個数カウントスイッチ３０１が遊技球を検出しなかった）として、エラーフラグにおける払出ケースエラービットをセットする（ステップＳ６８８）。そして、処理を終了する。
【０５０５】
以上のように、球貸し処理に係る再払出処理（補正払出処理）において連続して２回の再払出動作を行っても遊技球が１個も払い出されない場合には、遊技球の払出動作不良として、払出個数カウントスイッチ未通過エラービット（払出ケースエラービット）がセットされる。
【０５０６】
次に、エラー処理について説明する。図８７は、エラーの種類とエラー表示用ＬＥＤ３７４の表示との関係等を示す説明図である。図８７に示すように、主基板３１からの接続確認信号がオフ状態になった場合には、払出制御用マイクロコンピュータ３７０の払出制御用ＣＰＵ３７１は、主基板未接続エラーとして、エラー表示用ＬＥＤ３７４に「１」を表示する制御を行う。従って、接続確認信号の入力状態の確認中に接続確認信号がオフ状態となると、エラー表示用ＬＥＤ３７４に「１」が表示されることになる。
【０５０７】
払出個数カウントスイッチ３０１の断線または払出個数カウントスイッチ３０１の部分において球詰まりが発生した場合には、払出スイッチ異常検知エラー１として、エラー表示用ＬＥＤ３７４に「２」を表示する制御を行う。なお、払出個数カウントスイッチ３０１の断線または払出個数カウントスイッチ３０１の部分において球詰まりが発生したことは、払出個数カウントスイッチ３０１の検出信号がオフ状態にならなかったことによって判定される。
【０５０８】
遊技球の払出動作中でないにも関わらず払出個数カウントスイッチ３０１の検出信号がオン状態になった場合には、払出スイッチ異常検知エラー２として、エラー表示用ＬＥＤ３７４に「３」を表示する制御を行う。払出モータ２８９の回転異常または遊技球が払い出されたにも関わらず払出個数カウントスイッチ３０１の検出信号がオン状態にならない場合には、払出ケースエラーとして、エラー表示用ＬＥＤ３７４に「４」を表示する制御を行う。払出個数カウントスイッチ３０１の検出信号がオン状態にならないことの具体的な検出方法は既に説明したとおりである。
【０５０９】
また、下皿満タン状態すなわち満タンスイッチ４８がオン状態になった場合には、満タンエラーとして、エラー表示用ＬＥＤ３７４に「５」を表示する制御を行う。補給球の不足状態すなわち球切れスイッチ１８７がオン状態になった場合には、球切れエラーとして、エラー表示用ＬＥＤ３７４に「６」を表示する制御を行う。
【０５１０】
また、カードユニット５０からのＶＬ信号がオフ状態になった場合には、プリペイドカードユニット未接続エラーとして、エラー表示用ＬＥＤ３７４に「７」を表示する制御を行う。不正なタイミングでカードユニット５０と通信がなされた場合には、プリペイドカードユニット通信エラーとして、エラー表示用ＬＥＤ３７４に「８」を表示する制御を行う。なお、プリペイドカードユニット通信エラーは、プリペイドカードユニット制御処理（ステップＳ７５４）において検出される。
【０５１１】
さらに、遊技制御手段から賞球過多異常コマンドを受信した場合には、賞球過多異常エラーとして、エラー表示用ＬＥＤ３７４に「９」を表示する制御を行う。また、遊技制御手段から賞球過少異常コマンドを受信した場合には、賞球過少異常エラーとして、エラー表示用ＬＥＤ３７４に「Ａ」を表示する制御を行う。
【０５１２】
以上のエラーのうち、払出スイッチ異常検知エラー２、払出ケースエラー、賞球過多異常エラーまたは賞球過少異常エラーが発生した後、エラー解除スイッチ３７５が操作されエラー解除スイッチ３７５から操作信号が出力されたら（オン状態になったら）、払出制御手段は、エラーが発生する前の状態に復帰する。
【０５１３】
なお、払出制御用ＣＰＵ３７１は、既に述べたように、具体的には、タイマ割込処理の表示制御処理（ステップＳ７５９参照）において、図８７に示す関係に従ってエラー表示ＬＥＤ３７４にエラー表示を行う。例えば、払出制御用ＣＰＵ３７１は、後述するエラー処理においてプリペイドカードユニット未接続エラービットをセットしたことにもとづいて（ステップＳ８２６参照）、表示制御処理において、プリペイドカードユニット未接続エラーが発生している旨を示すエラー表示「７」をエラー表示用ＬＥＤ３７４に表示する制御を行う。また、例えば、エラー処理において満タンエラービットをセットしたことにもとづいて（ステップＳ８０９参照）、表示制御処理において、満タンエラーが発生している旨を示すエラー表示「５」をエラー表示用ＬＥＤ３７４に表示する制御を行う。また、例えば、エラー処理において賞球過多異常エラービットをセットしたことにもとづいて（ステップＳ８２９参照）、表示制御処理において、賞球過多異常が発生している旨を示すエラー表示「９」をエラー表示用ＬＥＤ３７４に表示する制御を行う。また、例えば、エラー処理において賞球過少異常エラービットをセットしたことにもとづいて（ステップＳ８３２参照）、表示制御処理において、賞球過少異常が発生している旨を示すエラー表示「Ａ」をエラー表示用ＬＥＤ３７４に表示する制御を行う。
【０５１４】
図８８、図８９および図９０は、ステップＳ７５７のエラー処理を示すフローチャートである。エラー処理において、払出制御用ＣＰＵ３７１は、エラーフラグをチェックし、そのうちのセットされているビットが、払出スイッチ異常検知エラー２および払出ケースエラーのみ（２つのうちのいずれかのビットのみ、またはそれら２ビットのみ）であるか否か確認する（ステップＳ８０１）。セットされているビットがそれらのみである場合には、エラー解除スイッチ３７５から操作信号がオン状態になったか否か確認する（ステップＳ８０２）。操作信号がオン状態になったら、エラー復帰時間をエラー復帰前タイマにセットする（ステップＳ８０３）。エラー復帰時間は、エラー解除スイッチ３７５が操作されてから、実際にエラー状態から通常状態に復帰するまでの時間である。
【０５１５】
エラー解除スイッチ３７５から操作信号がオン状態でない場合には、エラー復帰前タイマの値を確認する（ステップＳ８０４）。エラー復帰前タイマの値が０であれば、すなわち、エラー復帰前タイマがセットされていなければ、ステップＳ８０８に移行する。エラー復帰前タイマがセットされていれば、エラー復帰前タイマの値を−１し（ステップＳ８０５）、エラー復帰前タイマの値が０になったら（ステップＳ８０６）、エラーフラグのうちの、払出スイッチ異常検知エラー２および払出ケースエラーのビットをリセットし（ステップＳ８０７）、ステップＳ８０８に移行する。
【０５１６】
なお、ステップＳ８０７の処理が実行されるときに、払出スイッチ異常検知エラー２および払出ケースエラーのビットのうちには、セット状態ではないエラービットがある場合もあるが、セット状態にないエラービットをリセットしても何ら問題はない。以上のように、この実施の形態では、払出スイッチ異常検知エラー２または払出ケースエラーのビットをセットする原因になったエラー（図８７参照）が発生した場合には、エラー解除スイッチ３７５が押下されることによってエラー解除される。
【０５１７】
ステップＳ８０７の処理が実行されて払出ケースエラービットがリセットされた場合には、払出制御コードが「２」（図８４〜図８６に示す払出通過待ち処理の実行に対応）であって、賞球未払出個数カウンタの値または球貸し未払出個数カウンタの値が０でないときには、遊技球払出のリトライ動作が開始される。つまり、次にステップＳ７５６の賞球球貸し制御処理が実行されるときにステップＳ６１２の払出通過待ち処理が実行されると、再び、再払出処理が行われる。例えば、賞球払出処理が行われていた場合には、賞球未払出個数カウンタの値が０でないときには、ステップＳ６５４からステップＳ６５９に移行し、ステップＳ６５９においてエラービットがリセット状態であることが確認されるので、ステップＳ６６２以降の再払出処理を開始するための処理が再度実行され、再払出処理が実行される。なお、エラー解除スイッチ３７５が押下されることによってリセットされた払出ケースエラービットに関して、そのビットがセットされたときには（ステップＳ６７２が実行されたとき）、払出制御タイマは既にタイムアップしている。従って、ステップＳ８０７の処理が実行されて払出ケースエラービットがリセットされた場合には、次に払出通過待ち処理が実行されるときには、ステップＳ６５０の判断において払出制御タイマ＝０と判定される。また、払出ケースエラービットがセットされたときには払出球検知ビットは０である（ステップＳ６６１の判断で払出球検知ビットは０でないとステップＳ６７２が実行されないので）。従って、ステップＳ６５９においてエラービットがリセット状態であることが確認されると、必ずステップＳ６６２が実行される。つまり、必ず、再払出処理が実行される。
【０５１８】
以上のように、払出制御手段は、球払出装置９７が遊技球の払い出しを行ったにもかかわらず払出個数カウントスイッチ３０１が１個も遊技球を検出しなかったときには遊技球を払い出すためのリトライ動作をあらかじめ決められた所定回（例えば２回）を限度として球払出装置９７に実行させる補正払出制御を行った後、払出個数カウントスイッチ３０１が１個も遊技球を検出しなかったことが検出されたときには（図８５のステップＳ６６１以降を参照）、払い出しに関わる制御状態をエラー状態に移行させ、エラー状態においてエラー解除スイッチ３７５からエラー解除信号が出力されたことを条件に再度補正払出制御を行わせる補正払出制御再起動処理を実行する。
【０５１９】
さらに、エラー状態における再払出処理の実行中（具体的には払出ケースエラーをセットする前の再払出処理中およびエラー解除スイッチ３７５押下後の再払出処理中）でも、図８１に示すステップＳ６０１〜Ｓ６０４の処理は実行されている。すなわち、払い出しに関わるエラーが生じているときでも、遊技球が払出個数カウントスイッチ３０１を通過すれば、賞球未払出個数カウンタや球貸し未払出個数カウンタの値が減算される。従って、エラー状態から復帰したときの賞球未払出個数カウンタや球貸し未払出個数カウンタの値は、実際に払い出された遊技球数を反映した値になっている。すなわち、払い出しに関わるエラーが発生しても、実際に払い出した遊技球数を正確に管理することができる。
【０５２０】
また、図８４〜図８６に示された払出通過待ち処理において、再払出処理が実行された結果、遊技球が払い出されたことが確認されたときでも、払出ケースエラーのビットはリセットされない。払出ケースエラーのビットがリセットされるのは、あくまでも、エラー解除スイッチ３７５が操作されたとき（具体的は、操作後エラー復帰時間が経過したとき）である（ステップＳ８０２，Ｓ８０７）。すなわち、遊技球が払出個数カウントスイッチ３０１を通過したこと等にもとづいて自動的に払出ケースエラー（払出不足エラー）の状態が解除されるということはなく、人為的な操作を経ないと払出ケースエラーは解除されない。従って、遊技店員等は、確実に払出不足が発生したことを認識することができる。
【０５２１】
エラー解除スイッチ３７５が操作されたことによってハードウェア的にリセット（払出制御用ＣＰＵ３７１に対するリセット）がかかるように構成されている場合には、エラー解除スイッチ３７５が操作されたことによって例えば賞球未払出個数カウンタの値もクリアされてしまう。しかし、この実施の形態では、払出制御手段が、エラー解除スイッチ３７５が操作されたことによって再払出動作を再び行うように構成されているので、確実に払出処理が実行され、遊技者に不利益を与えないようにすることができる。
【０５２２】
ステップＳ８０８では、払出制御用ＣＰＵ３７１は、満タンスイッチ４８の検出信号を確認する。満タンスイッチ４８の検出信号が出力されていれば（オン状態であれば）、エラーフラグのうちの満タンエラービットをセットする（ステップＳ８０９）。満タンスイッチ４８の検出信号がオフ状態であれば、満タンエラービットをリセットする（ステップＳ８１０）。
【０５２３】
また、払出制御用ＣＰＵ３７１は、球切れスイッチ１８７の検出信号を確認する（ステップＳ８１１）。球切れスイッチ１８７の検出信号が出力されていれば（オン状態であれば）、エラーフラグのうちの球切れエラービットをセットする（ステップＳ８１２）。球切れスイッチ１８７の検出信号がオフ状態であれば、球切れエラービットをリセットする（ステップＳ８１３）。なお、球切れエラービットをセットされているときには、ステップＳ７５９の表示制御処理において、出力ポート１バッファにおける球切れＬＥＤ５２に対応したビットを点灯状態に対応した値にする。
【０５２４】
さらに、払出制御用ＣＰＵ３７１は、主基板３１からの接続確認信号の状態を確認し（ステップＳ８１５）、接続確認信号が出力されていなければ（オフ状態であれば）、主基板未接続エラービットをセットする（ステップＳ８１６）。また、接続確認信号が出力されていれば（オン状態であれば）、主基板未接続エラービットをリセットする（ステップＳ８１７）。
【０５２５】
また、払出制御用ＣＰＵ３７１は、各スイッチの検出信号の状態が設定される各スイッチタイマのうち払出個数カウントスイッチ３０１に対応したスイッチタイマの値を確認し、その値がスイッチオン最大時間（例えば「２４０」）を越えていたら（ステップＳ８１８）、エラーフラグのうち払出スイッチ異常検知エラー１のビットをセットする（ステップＳ８１９）。また、払出個数カウントスイッチ３０１に対応したスイッチタイマの値がスイッチオン最大時間以下であれば、払出スイッチ異常検知エラー１のビットをリセットする（ステップＳ８２０）。なお、各スイッチタイマの値は、ステップＳ７５１の入力判定処理において、各スイッチの検出信号を入力する入力ポートの状態がスイッチオン状態であれば＋１され、オフ状態であれば０クリアされる。従って、払出個数カウントスイッチ３０１に対応したスイッチタイマの値がスイッチオン最大時間を越えていたということは、スイッチオン最大時間を越えて払出個数カウントスイッチ３０１がオン状態になっていることを意味し、払出個数カウントスイッチ３０１の断線または払出個数カウントスイッチ３０１の部分で遊技球が詰まっていると判断される。
【０５２６】
また、払出制御用ＣＰＵ３７１は、払出個数カウントスイッチ３０１に対応したスイッチタイマの値がスイッチオン判定値（例えば「２」）になった場合に（ステップＳ８２１）、球貸し動作中フラグおよび賞球動作中フラグがともにリセット状態であれば、払出動作中でないのに払出個数カウントスイッチ３０１を遊技球が通過したとして、エラーフラグのうち払出スイッチ異常検知エラー２のビットをセットする（ステップＳ８２２，Ｓ８２３）。また、球貸し動作中フラグまたは賞球動作中フラグがセットされていれば、払出スイッチ異常検知エラー２のビットをリセットする（ステップＳ８２４）。
【０５２７】
また、払出制御用ＣＰＵ３７１は、カードユニット５０からのＶＬ信号の入力状態を確認し（ステップＳ８２５）、ＶＬ信号が入力されていなければ（オフ状態であれば）、エラーフラグのうちプリペイドカードユニット未接続エラービットをセットする（ステップＳ８２６）。また、ＶＬ信号が入力されていれば（オン状態であれば）、プリペイドカードユニット未接続エラービットをリセットする（ステップＳ８２７）。
【０５２８】
また、払出制御用ＣＰＵ３７１は、賞球過多異常コマンド受信フラグがセットされているか否かを確認し（ステップＳ８２８）、賞球過多異常コマンド受信フラグがセットされていれば、エラーフラグのうち賞球過多異常エラービットをセットする（ステップＳ８２９）。すなわち、遊技制御手段で賞球過多異常が検出された場合であるので、払出制御用ＣＰＵ３７１は、賞球過多異常エラービットをセットする。また、賞球過多異常コマンド受信フラグがセットされていなければ、払出制御用ＣＰＵ３７１は、賞球過多異常エラービットをリセットする（ステップＳ８３０）。
【０５２９】
さらに、払出制御用ＣＰＵ３７１は、賞球過少異常コマンド受信フラグがセットされているか否かを確認し（ステップＳ８３１）、賞球過少異常コマンド受信フラグがセットされていれば、エラーフラグのうち賞球過少異常エラービットをセットする（ステップＳ８３２）。すなわち、遊技制御手段で賞球過少異常が検出された場合であるので、払出制御用ＣＰＵ３７１は、賞球過少異常エラービットをセットする。また、賞球過少異常コマンド受信フラグがセットされていなければ、払出制御用ＣＰＵ３７１は、賞球過少異常エラービットをリセットする（ステップＳ８３３）。
【０５３０】
なお、ステップＳ７５９の表示制御処理では、エラーフラグ中のエラービットに応じた表示（数値表示）による報知をエラー表示用ＬＥＤ３７４によって行う。従って、通信エラーをエラー表示用ＬＥＤ３７４によって報知することができる。また、通信エラーは、払出制御手段の側で検出されるので、遊技制御手段の負担を増すことなく通信エラーを検出できる。
【０５３１】
また、この実施の形態では、主基板未接続エラーは接続確認信号がオン状態になると自動的に解消されるが（ステップＳ８１５，Ｓ８１７参照）、さらにエラー解除スイッチ３７５が操作されたという条件を加えて、エラー状態が解消されるようにしてもよい。
【０５３２】
また、この実施の形態では、通信エラーが、カードユニット５０との間の通信エラー（プリペイドカードユニット未接続エラーおよびプリペイドカードユニット通信エラー）やその他のエラーと区別可能に報知される（図８７参照）。従って、遊技制御用マイクロコンピュータ５６０と払出制御用マイクロコンピュータ３７０との間の通信エラーが容易に特定される。
【０５３３】
次に、演出制御手段（音／ランプ制御用マイクロコンピュータ１００ｂおよび図柄制御用マイクロコンピュータ１００ａ）の動作を説明する。まず、遊技制御手段から音／ランプ制御手段に対する制御コマンドの送出方式について説明する。図９１は、主基板３１から音／ランプ制御基板８０ｂに送信される演出制御コマンドの信号線を示す説明図である。図９１に示すように、この実施の形態では、演出制御コマンドは、演出制御信号ＣＤ０〜ＣＤ７の８本の信号線で主基板３１から音／ランプ制御基板８０ｂに送信される。また、主基板３１と音／ランプ制御基板８０ｂとの間には、取込信号（演出制御ＩＮＴ信号）を送信するための演出制御ＩＮＴ信号の信号線も配線されている。
【０５３４】
この実施の形態では、演出制御コマンドは２バイト構成であり、１バイト目はＭＯＤＥ（コマンドの分類）を表し、２バイト目はＥＸＴ（コマンドの種類）を表す。ＭＯＤＥデータの先頭ビット（ビット７）は必ず「１」に設定され、ＥＸＴデータの先頭ビット（ビット７）は必ず「０」に設定される。なお、そのようなコマンド形態は一例であって他のコマンド形態を用いてもよい。例えば、１バイトや３バイト以上で構成される制御コマンドを用いてもよい
【０５３５】
図９２に示すように、演出制御コマンドの８ビットの演出制御コマンドデータは、演出制御ＩＮＴ信号に同期して出力される。音／ランプ制御基板８０ｂに搭載されている音／ランプ制御用マイクロコンピュータ１００ｂは、演出制御ＩＮＴ信号が立ち上がったことを検知して、割込処理によって１バイトのデータの取り込み処理を開始する。従って、音／ランプ制御用マイクロコンピュータ１００ｂから見ると、演出制御ＩＮＴ信号は、演出制御コマンドデータの取り込みの契機となる信号に相当する。
【０５３６】
演出制御コマンドは、音／ランプ制御用マイクロコンピュータ１００ｂが認識可能に１回だけ送出される。認識可能とは、この例では、演出制御ＩＮＴ信号のレベルが変化することであり、認識可能に１回だけ送出されるとは、例えば演出制御コマンドデータの１バイト目および２バイト目のそれぞれに応じて演出制御ＩＮＴ信号が１回だけパルス状（矩形波状）に出力されることである。なお、演出制御ＩＮＴ信号は図９２に示された極性と逆極性であってもよい。
【０５３７】
次に、音／ランプ制御手段（音／ランプ制御用マイクロコンピュータ１００ｂ）の動作を説明する。図９３は、音／ランプ制御基板８０ｂに搭載されている音／ランプ制御用マイクロコンピュータ１００ｂ（具体的には、音／ランプ制御用ＣＰＵ１０１ｂ）が実行するメイン処理を示すフローチャートである。遊技機に対する電力供給が開始され、リセット信号がハイレベルになると、音／ランプ制御用マイクロコンピュータ１００ｂは、メイン処理を開始する。メイン処理では、音／ランプ制御用マイクロコンピュータ１００ｂは、まず、ＲＡＭ領域のクリアや各種初期値の設定、また演出制御の起動間隔を決めるためのタイマの初期設定等を行うための初期化処理を行う（ステップＳ７８１）。その後、音／ランプ制御用マイクロコンピュータ１００ｂは、タイマ割込フラグの監視（ステップＳ７８２）の確認を行うループ処理に移行する。タイマ割込が発生すると、音／ランプ制御用マイクロコンピュータ１００ｂは、タイマ割込処理においてタイマ割込フラグをセットする。メイン処理において、タイマ割込フラグがセットされていたら、音／ランプ制御用マイクロコンピュータ１００ｂは、そのフラグをクリアし（ステップＳ７８３）、以下の音／ランプ制御処理を実行する。
【０５３８】
タイマ割込は例えば２ｍｓ毎にかかる。すなわち、音／ランプ制御処理は、例えば２ｍｓ毎に起動される。また、この実施の形態では、タイマ割込処理ではフラグセットのみがなされ、具体的な音／ランプ制御処理はメイン処理において実行されるが、タイマ割込処理で音／ランプ制御処理を実行してもよい。
【０５３９】
音／ランプ制御処理において、音／ランプ制御用マイクロコンピュータ１００ｂは、まず、受信した演出制御コマンドを解析する（コマンド解析処理：ステップＳ７８４）。
【０５４０】
次いで、音／ランプ制御用マイクロコンピュータ１００ｂは、演出内容決定処理を行う（ステップＳ７８５）。演出内容決定処理では、音／ランプ制御用マイクロコンピュータ１００ｂは、演出制御コマンド（変動パターンコマンドや表示結果指定コマンド）にもとづいて、可変表示装置９を用いて行う演出内容（予告演出を行うか否かや、予告演出の種類）を決定する。また、音／ランプ制御用マイクロコンピュータ１００ｂは、決定した演出内容を示す演出内容指定コマンドを生成する。
【０５４１】
次いで、音／ランプ制御用マイクロコンピュータ１００ｂは、音出力処理を行う（ステップＳ７８６）。この場合、音／ランプ制御用マイクロコンピュータ１００ｂは、音声合成用ＩＣ１７３に対して音番号データ（例えば、変動パターンコマンドに示される変動パターンに対応する音番号データ）を出力する。そして、音声合成用ＩＣ１７３は、音番号データに応じた音声や効果音を発生し増幅回路１７５に出力する。
【０５４２】
次いで、音／ランプ制御用マイクロコンピュータ１００ｂは、ランプ表示処理を行う（ステップＳ７８７）。この場合、音／ランプ制御用マイクロコンピュータ１００ｂは、プロセスデータ中に設定されているランプ制御実行データにもとづいてランプ制御を行う。
【０５４３】
また、音／ランプ制御用マイクロコンピュータ１００ｂは、乱数カウンタを更新する処理を実行する（ステップＳ７８８）。また、音／ランプ制御用マイクロコンピュータ１００ｂは、主基板３１から受信した演出制御コマンドや、ステップＳ７８５の演出内容決定処理で生成した演出内容指定コマンドを、図柄制御基板８０ａに送出する処理を行う（コマンド制御処理：ステップＳ７８９）。また、音／ランプ制御用マイクロコンピュータ１００ｂは、賞球異常が発生している旨を報知する報知処理を実行する（ステップＳ７９０）。その後、ステップＳ７８２のタイマ割込フラグの確認を行う処理に戻る。
【０５４４】
主基板３１からの演出制御用のＩＮＴ信号は音／ランプ制御用マイクロコンピュータ１００ｂの割込端子に入力されている。例えば、主基板３１からのＩＮＴ信号がオン状態になると、音／ランプ制御用マイクロコンピュータ１００ｂにおいて割込がかかる。そして、音／ランプ制御用マイクロコンピュータ１００ｂは、割込処理において演出制御コマンドの受信処理を実行する。演出制御コマンドの受信処理において、音／ランプ制御用マイクロコンピュータ１００ｂは、受信した演出制御コマンドデータをコマンド受信バッファに格納する。
【０５４５】
図９４は、音／ランプ制御処理で用いる各乱数を示す説明図である。各乱数は、以下のように使用される。
（１）ランダム１：予告演出を実行するか否かを決定する（予告演出実行決定用）。この実施の形態では、可変表示装置９においてリーチ態様の飾り図柄の可変表示を行う際に、音／ランプ制御用マイクロコンピュータ１００ｂは、例えば、ランダム１があらかじめ決められている１つの値と一致した場合には、予告演出を行うと決定する。なお、音／ランプ制御用マイクロコンピュータ１００ｂは、リーチ態様の可変表示を行うか否かに関わらず、ランダム１を用いて予告演出を行うか否かを決定してもよい。
（２）ランダム２：予告演出を行う場合に、可変表示装置９を用いて行う予告演出の種類を決定する（予告演出種類決定用）
【０５４６】
図９５は、図９３に示された演出内容決定処理（ステップＳ７８５）を示すフローチャートである。演出内容決定処理において、音／ランプ制御用マイクロコンピュータ１００ｂは、変動パターンコマンド受信フラグがセットされているか否か確認する（ステップＳ１８５１）。なお、変動パターンコマンド受信フラグは、コマンド制御処理（ステップＳ７８９参照）において、遊技制御用マイクロコンピュータ５６０から変動パターンコマンドを受信したことが確認されたことにもとづいて設定されるフラグである。
【０５４７】
変動パターンコマンド受信フラグがセットされていれば、音／ランプ制御用マイクロコンピュータ１００ｂは、変動パターンコマンド受信フラグをリセットし、受信した変動パターンコマンドにもとづいて飾り図柄の変動パターンを特定する。また、音／ランプ制御用マイクロコンピュータ１００ｂは、特定した変動パターンにもとづいて、可変表示装置９を用いて実行すべき可変表示がリーチを伴う変動であるか否かを判定する（ステップＳ１８５２）。例えば、音／ランプ制御用マイクロコンピュータ１００ｂは、受信した変動パターンコマンドに示される変動パターンがリーチを伴うパターンである場合、音／ランプ制御用マイクロコンピュータ１００ｂは、リーチを伴う変動であると判定する。なお、ステップＳ１８５１で変動パターンコマンド受信フラグがセットされていなかった場合には、音／ランプ制御用マイクロコンピュータ１００ｂは、そのまま処理を終了する。
【０５４８】
リーチを伴う変動であると判定した場合、音／ランプ制御用マイクロコンピュータ１００ｂは、予告演出実行決定用乱数（ランダム１）にもとづいて、予告演出を行うか否かを決定する（ステップＳ１８５３）。例えば、音／ランプ制御用マイクロコンピュータ１００ｂは、ランダム１が所定値と一致すると、可変表示装置９を用いた予告演出を行うと決定する。なお、ステップＳ１８５２でリーチを伴う変動でなかった場合には、音／ランプ制御用マイクロコンピュータ１００ｂは、ステップＳ１８５７に移行する。
【０５４９】
ステップＳ１８５４で予告演出を行わないと決定した場合、音／ランプ制御用マイクロコンピュータ１００ｂは、変動パターンコマンドを受信しているとともに表示結果指定コマンドを受信している場合には、変動パターンコマンドおよび表示結果指定コマンドを図柄制御用マイクロコンピュータ１００ａに送信または転送し、図柄制御用マイクロコンピュータ１００ａは、可変表示装置９を用いた飾り図柄の可変表示および遊技演出を実行することになる。この場合、音／ランプ制御用マイクロコンピュータ１００ｂは、ステップＳ１８５４で予告演出を行わないと決定すると、予告演出を行わない旨を指定する通知コマンドを生成し、図柄制御用マイクロコンピュータ１００ａに送信する（ステップＳ１８５７）。
【０５５０】
予告演出を行うと決定すると（ステップＳ１８５４）、音／ランプ制御用マイクロコンピュータ１００ｂは、予告演出種類決定用乱数（ランダム２）にもとづいて、可変表示装置９を用いて行わせる予告演出の種類を決定する（ステップＳ１８５５）。例えば、音／ランプ制御用マイクロコンピュータ１００ｂは、ランダム２にもとづいて、予告演出において、飾り図柄をどの程度の速度で変動させるかや、飾り図柄をいずれの回転方向に変動させるか、可変表示装置９にいずれのキャラクタを登場させるかを決定する。
【０５５１】
なお、この実施の形態では、変動パターンコマンドにもとづいて演出内容を決定する場合を説明するが、音／ランプ制御用マイクロコンピュータ１００ｂは、遊技制御用マイクロコンピュータ５６０から受信した表示結果指定コマンドにもとづいて、非確変大当りまたは確変大当りであることを特定して、演出内容を決定してもよい。また、音／ランプ制御用マイクロコンピュータ１００ｂは、図柄ずれ数指定コマンドを遊技制御用マイクロコンピュータ５６０から受信し、受信した図柄ずれ数指定コマンドにもとづいて、停止図柄がリーチを伴うはずれ図柄であるか否かを特定して、演出内容を決定してもよい。この場合、例えば、遊技制御用マイクロコンピュータ５６０は、特別図柄停止図柄設定処理（ステップＳ３０１参照）で飾り図柄の停止図柄を決定する際に、停止図柄をリーチ／はずれ図柄に決定した場合には、飾り図柄の停止図柄のずれ数を求める。また、遊技制御用マイクロコンピュータ５６０は、求めたずれ数を特定可能な値を含む図柄ずれ数指定コマンドを生成し、音／ランプ制御用マイクロコンピュータ１００ｂに送信する。そして、音／ランプ制御用マイクロコンピュータ１００ｂは、図柄ずれ数コマンドを受信したことにもとづいて停止図柄がリーチ／はずれ図柄であると特定し、演出内容を決定する。
【０５５２】
さらに、音／ランプ制御用マイクロコンピュータ１００ｂは、上記に示した全てのコマンド（変動パターンコマンド、表示結果指定コマンド、および図柄ずれ数指定コマンド）にもとづいて、演出内容を決定してもよい。また、音／ランプ制御用マイクロコンピュータ１００ｂは、上記に示した各コマンド（変動パターンコマンド、表示結果指定コマンド、および図柄ずれ数指定コマンド）のうちのいずれか２つにもとづいて、演出内容を決定してもよい。
【０５５３】
また、音／ランプ制御用マイクロコンピュータ１００ｂは、決定した演出内容（予告演出を行うか否かや、予告演出の種類）を示す演出内容指定コマンドを生成する。そして、音／ランプ制御用マイクロコンピュータ１００ｂは、生成した演出内容指定コマンドを、図柄制御基板８０ａに対して送信する処理を行う（ステップＳ１８５６）。なお、音／ランプ制御用マイクロコンピュータ１００ｂは、演出内容指定コマンドとともに、表示結果指定コマンドおよび変動パターンコマンドを図柄制御基板８０ａに転送または送信する。そして、図柄制御基板８０ａの図柄制御用マイクロコンピュータ１００ａは、音／ランプ制御用マイクロコンピュータ１００ｂから受信した演出内容指定コマンド、表示結果指定コマンドおよび変動パターンコマンドにもとづいて、後述する図柄制御プロセス処理（ステップＳ１７０５参照）において、飾り図柄の可変変動および遊技演出を行う。この場合、図柄制御用マイクロコンピュータ１００ａは、受信した演出内容指定コマンドにもとづいて、ＶＤＰ１０９に、可変表示装置９を用いた予告演出を行わせる。
【０５５４】
なお、ステップＳ１８５６において、音／ランプ制御用マイクロコンピュータ１００ｂは、演出内容指定コマンドを生成するのでなく、決定した演出内容を、変動パターンコマンドや表示結果指定コマンドに付加してもよい。例えば、音／ランプ制御用マイクロコンピュータ１００ｂは、コマンドのヘッダ部分に演出内容を示す値を付加することによって、演出内容を変動パターンコマンドや表示結果指定コマンドに付加する。この場合、音／ランプ制御用マイクロコンピュータ１００ｂは、変動パターンコマンドのみのヘッダ部分に演出内容を示す値を付加してもよく、表示結果指定コマンドのみのヘッダ部分に演出内容を示す値を付加してもよい。さらに、音／ランプ制御用マイクロコンピュータ１００ｂは、変動パターンコマンドおよび表示結果指定コマンドの両方のヘッダ部分に演出内容を示す値を付加してもよい。そして、音／ランプ制御用マイクロコンピュータ１００ｂは、演出内容を付加した変動パターンコマンドや表示結果指定コマンドを、図柄制御基板８０ａに対して送信する処理を行ってもよい。なお、予告演出を行わない場合には、音／ランプ制御用マイクロコンピュータ１００ｂは、遊技制御用マイクロコンピュータ５６０から受信した表示結果指定コマンドを、そのまま図柄制御用マイクロコンピュータ１００ａに転送することになる。
【０５５５】
また、この実施の形態では、ステップＳ１８５６で送信テーブルのアドレスがセットされたことにもとづいて、音／ランプ制御メイン処理におけるコマンド制御処理（ステップＳ７８９参照）が実行されることによって、演出内容指定コマンドが図柄制御基板８０ａに送信される。
【０５５６】
また、この実施の形態では、ランプ制御実行データを含む音／ランプ制御側プロセスデータが、音／ランプ制御基板８０ｂにおけるＲＯＭに格納されている。また、表示制御実行データを含む図柄制御側プロセスデータが、図柄制御基板８０ａにおけるＲＯＭに格納されている。この実施の形態では、ステップＳ１８５６において、音／ランプ制御用マイクロコンピュータ１００ｂは、決定した演出内容に応じて生成した演出内容指定コマンドを図柄制御用マイクロコンピュータ１００ａに送信する。そして、図柄制御用マイクロコンピュータ１００ａは、受信した演出内容指定コマンドにもとづいてＲＯＭから表示制御実行データを読み出し、読み出した表示制御実行データにもとづいて可変表示装置９を用いて演出を行う。
【０５５７】
また、ステップＳ１８５６で決定した演出内容を変動パターンコマンドや表示結果指定コマンドに付加する場合、音／ランプ制御用マイクロコンピュータ１００ｂは、決定した演出内容（例えば、背景色や登場するキャラクタ）を付加した変動パターンコマンドや表示結果指定コマンドを、図柄制御用マイクロコンピュータ１００ａに送信してもよい。そして、図柄制御用マイクロコンピュータ１００ａは、受信した変動パターンコマンドや表示結果指定コマンドにもとづいてＲＯＭから表示制御実行データを読み出し、読み出した表示制御実行データにもとづいて可変表示装置９を用いて演出を行ってもよい。
【０５５８】
また、表示制御実行データおよびランプ制御実行データの両方を含むプロセスデータが、音／ランプ制御基板８０ｂにおけるＲＯＭに格納されていてもよい。この場合、音／ランプ制御用マイクロコンピュータ１００ｂは、決定した演出内容に応じた表示制御実行データをＲＯＭから抽出し、生成した演出内容指定コマンドとともに、図柄制御用マイクロコンピュータ１００ａに送信してもよい。そして、図柄制御用マイクロコンピュータ１００ａは、受信した表示制御実行データにもとづいて、可変表示装置９を用いて演出を行ってもよい。
【０５５９】
また、表示制御実行データおよびランプ制御実行データの両方を含むプロセスデータが、音／ランプ制御基板８０ｂにおけるＲＯＭに格納する場合に、音／ランプ制御用マイクロコンピュータ１００ｂは、決定した演出内容に応じた表示制御実行データをＲＯＭから抽出し、決定した演出内容を付加した変動パターンコマンドや表示結果指定コマンドとともに、図柄制御用マイクロコンピュータ１００ａに送信してもよい。そして、図柄制御用マイクロコンピュータ１００ａは、受信した表示制御実行データにもとづいて、可変表示装置９を用いて演出を行ってもよい。
【０５６０】
図９６は、図９３に示された報知処理（ステップＳ７９０）を示すフローチャートである。報知処理において、音／ランプ制御用マイクロコンピュータ１００ｂは、賞球異常（賞球過多異常または賞球過少異常）の報知を行っているか否か確認する（ステップＳ８８１）。そのような報知を行っていない場合には、賞球過多異常コマンドを受信したか否か確認する（ステップＳ８８２ａ）。賞球過多異常コマンドを受信していた場合には、スピーカ２７やランプ２５，２８ａ，２８ｂ，２８ｃを用いて賞球過多異常を報知する制御を行う（ステップＳ８８３ａ）。また、報知時間を決定するために報知タイマに報知時間に応じた値を設定する（ステップＳ８８４ａ）。その後、ステップＳ８９１に移行する。
【０５６１】
また、賞球過多異常コマンドを受信していない場合には、賞球過少異常コマンドを受信したか否か確認する（ステップＳ８８２ｂ）。賞球過少異常コマンドを受信していた場合には、スピーカ２７やランプ２５，２８ａ，２８ｂ，２８ｃを用いて賞球過少異常を報知する制御を行う（ステップＳ８８３ｂ）。また、報知時間を決定するために報知タイマに報知時間に応じた値を設定する（ステップＳ８８４ｂ）。その後、ステップＳ８９１に移行する。
【０５６２】
賞球異常の報知を行っている場合には、報知タイマの値を１減算する（ステップＳ８８８）。報知タイマの値が０になっていなければ、すなわちタイムアウトしていなければステップＳ８９１に移行するが、タイムアウトしている場合には、報知を終了する。
【０５６３】
なお、この実施の形態では、エラー報知処理は２ｍｓ毎に起動されるので、報知タイマに設定される報知時間に応じた値は、（報知時間［ｍｓ］／２）である。また、この実施の形態では、報知タイマによって報知時間に応じた値のカウント（減算方向のカウント）を行うと、音／ランプ制御用マイクロコンピュータ１００ｂは、独自に報知を終了するが、報知タイマの初期値を０にして、加算方向のカウントを行い、報知タイマの値が報知時間に応じた値になると報知を終了するようにしてもよい。
【０５６４】
ステップＳ８９１では、音／ランプ制御用マイクロコンピュータ１００ｂは、払出異常報知開始コマンドを受信したか否か確認する。払出異常報知開始コマンドを受信していた場合には、スピーカ２７やランプ２５，２８ａ，２８ｂ，２８ｃを用いて払出異常を報知する制御を行う（ステップＳ８９２）。また、音／ランプ制御用マイクロコンピュータ１００ｂは、払出異常報知終了コマンドを受信したか否か確認する（ステップＳ８９３）。払出異常報知終了コマンドを受信していた場合には、報知を終了する。
【０５６５】
次に、図柄制御手段（図柄制御用マイクロコンピュータ１００ａ）の動作を説明する。図９７は、図柄制御基板８０ａに搭載されている図柄制御用マイクロコンピュータ１００ａ（具体的には、図柄制御用ＣＰＵ１０１ａ）が実行するメイン処理を示すフローチャートである。図柄制御用マイクロコンピュータ１００ａは、電源が投入されると、メイン処理の実行を開始する。メイン処理では、まず、ＲＡＭ領域のクリアや各種初期値の設定、また図柄制御の起動間隔を決めるためのタイマの初期設定等を行うための初期化処理を行う（ステップＳ１７０１）。その後、図柄制御用マイクロコンピュータ１００ａは、タイマ割込フラグの監視（ステップＳ１７０２）を行うループ処理に移行する。タイマ割込が発生すると、図柄制御用マイクロコンピュータ１００ａは、タイマ割込処理においてタイマ割込フラグをセットする。メイン処理において、タイマ割込フラグがセットされていたら、図柄制御用マイクロコンピュータ１００ａは、そのフラグをクリアし（ステップＳ１７０３）、以下の図柄制御処理を実行する。
【０５６６】
図柄制御処理において、図柄制御用マイクロコンピュータ１００ａは、まず、音／ランプ制御基板８０ｂから受信した演出制御コマンドを解析する（コマンド解析処理：ステップＳ１７０４）。次いで、図柄制御用マイクロコンピュータ１００ａは、図柄制御プロセス処理を行う（ステップＳ１７０５）。図柄制御プロセス処理では、制御状態に応じた各プロセスのうち、現在の制御状態（図柄制御プロセスフラグ）に対応した処理を選択して可変表示装置９の表示制御を実行する。さらに、各種乱数を生成するためのカウンタのカウンタ値を更新する乱数更新処理を実行する（ステップＳ１７０６）。
【０５６７】
また、図柄制御用マイクロコンピュータ１００ａは、賞球異常が発生している旨を報知する報知処理を実行する（ステップＳ１７０７）。この場合、図柄制御用マイクロコンピュータ１００ａは、図９５に示す音／ランプ制御用マイクロコンピュータ１００ｂが実行する報知処理と同様の処理の従って、賞球異常（賞球過多異常、賞球過少異常）や払出異常が発生している旨を報知する。ただし、図柄制御用マイクロコンピュータ１００ａは、可変表示装置９を用いて、賞球異常や払出異常が発生している旨を報知する。例えば、図柄制御用マイクロコンピュータ１００ａは、賞球異常や払出異常が発生している旨を可変表示装置９に表示させる。その後、ステップＳ１７０２に移行する。
【０５６８】
図９８は、図９７に示されたメイン処理における図柄制御プロセス処理（ステップＳ１７０５）を示すフローチャートである。図柄制御プロセス処理では、図柄制御用ＣＰＵ１０１ａは、図柄制御プロセスフラグの値に応じてステップＳ１８００〜Ｓ１８０７のうちのいずれかの処理を行う。各処理において、以下のような処理を実行する。
【０５６９】
変動パターンコマンド受信待ち処理（ステップＳ１８００）：コマンド受信割込処理によって、音／ランプ制御基板８０ｂから変動パターン指定の演出制御コマンド（変動パターンコマンド）を受信したか否か確認する。具体的には、変動パターンコマンドが受信されたことを示すフラグ（変動パターン受信フラグ）がセットされたか否か確認する。変動パターン受信フラグは、図柄制御用ＣＰＵ１０１ａが実行するコマンド解析処理で、変動パターンコマンドが受信されたことが確認された場合にセットされる。変動パターンコマンドを受信した場合には、飾り図柄の変動態様（変動期間中の飾り図柄の変動速度や、背景，キャラクタの種類、キャラクタの表示開始時期など）を、それぞれの変動パターンに応じてあらかじめ決められている複数種類のうちから選択する。なお、それぞれの変動パターンについて、あらかじめ１種類の変動態様が決められている場合には、受信した変動パターンに応じた変動態様を使用することに決定する。そして、図柄制御プロセスフラグの値を予告選択処理（ステップＳ１８０１）に対応した値に更新する。
【０５７０】
予告選択処理（ステップＳ１８０１）：例えばキャラクタ画像を用いた予告演出（特別図柄の停止図柄が大当り図柄となること、またはリーチが発生することを事前に報知するための演出）を行うか否かと、行う場合の予告演出の種類を特定する。この実施の形態では、音／ランプ制御基板８０ｂから受信した演出内容指定コマンドにもとづいて、可変表示装置９を用いて行う予告演出が特定される。そして、図柄制御プロセスフラグの値を全図柄変動開始処理（ステップＳ１８０２）に対応した値に更新する。
【０５７１】
全図柄変動開始処理（ステップＳ１８０２）：左中右の飾り図柄の変動が開始されるように制御する。そして、図柄制御プロセスフラグの値を図柄変動中処理（ステップＳ１８０３）に対応した値に更新する。
【０５７２】
図柄変動中処理（ステップＳ１８０３）：変動パターンに応じて決められている変動時間の終了を監視する。また、左右図柄の停止制御を行う。変動時間が終了したら、大当りとすることに決定されている場合には、図柄制御プロセスフラグの値を大当たり図柄停止処理（ステップＳ１８０４）に対応した値に更新する。大当りとしないことに決定されている場合には、図柄制御プロセスフラグの値をはずれ図柄停止処理（ステップＳ１８０５）に対応した値に更新する。なお、図柄変動中処理では、変動パターンを構成する各変動状態（変動速度）の切替タイミングの制御も行う。
【０５７３】
大当り図柄停止処理（ステップＳ１８０４）：飾り図柄の変動を最終停止し停止図柄（確定図柄）を表示する制御を行う。そして、図柄制御プロセスフラグの値を大当り表示処理（ステップＳ１８０６）に対応した値に更新する。なお、この処理において、図柄制御用ＣＰＵ１０１ａは、可変表示装置９に飾り図柄の大当り図柄を停止表示させるが、遊技制御用マイクロコンピュータ５６０の制御と同様に、図柄制御プロセスフラグの値が大当り図柄停止処理である時間を所定時間継続させることが好ましい。
【０５７４】
はずれ図柄停止処理（ステップＳ１８０５）：飾り図柄の変動を最終停止し停止図柄（確定図柄）を表示する制御を行う。そして、図柄制御プロセスフラグの値を変動パターンコマンド受信待ち処理（ステップＳ１８００）に対応した値に更新する。なお、この処理において、図柄制御用ＣＰＵ１０１ａは、可変表示装置９に飾り図柄のはずれ図柄を停止表示させる。
【０５７５】
大当り表示処理（ステップＳ１８０６）：大当り表示の制御を行う。そして、図柄制御プロセスフラグの値を大当たり遊技中処理（ステップＳ１８０７）に対応した値に更新する。
【０５７６】
大当り遊技中処理（ステップＳ１８０７）：大当たり遊技中の制御を行う。例えば、大入賞口開放前表示や大入賞口開放時表示の演出制御コマンドを受信したら、ラウンド数の表示制御等を行う。大当り遊技が終了したら、図柄制御プロセスフラグの値を変動パターンコマンド受信待ち処理（ステップＳ１８００）に対応した値に更新する。
【０５７７】
また、図柄制御用マイクロコンピュータ１００ａは、ステップＳ１７０７の報知処理において、賞球過多異常コマンドを受信したことにもとづいて、可変表示装置９を用いて賞球過多異常を報知する制御を行う。この場合、図柄制御用マイクロコンピュータ１００ａは、例えば、図９９（Ａ）に示すように、賞球払い出しに異常が生じている旨を報知する画面を可変表示装置９に表示させる。また、図柄制御用マイクロコンピュータ１００ａは、ステップＳ１７０７の報知処理において、賞球過少異常コマンドを受信したことにもとづいて、可変表示装置９を用いて賞球過少異常を報知する制御を行う。この場合、図柄制御用マイクロコンピュータ１００ａは、例えば、図９９（Ｂ）に示すように、賞球払い出しに不足が生じている旨を報知する画面を可変表示装置９に表示させる。
【０５７８】
以上のように、この実施の形態では、球払出装置９７によって遊技球の払い出しが行われると、タイマ割込処理において、払い出された遊技球の数を、総賞球数格納バッファが格納する総賞球数から減算する。また、メイン処理において、賞球個数コマンドに示される賞球数を総賞球数に加算する際に、総賞球数格納バッファから総賞球数を読み出すと、再び加算後の総賞球数を総賞球数格納バッファに書き込むまでタイマ割込処理の実行を禁止する。そのため、総賞球数格納バッファから総賞球数を読み出してから再び書き込むまでの間に、払い出された遊技球の数を総賞球数から減算する処理を実行しないようにすることができ、払い出された遊技球の数を遊技制御用マイクロコンピュータ５６０が把握できなくなる事態を防止できる。従って、遊技制御用マイクロコンピュータ５６０が管理する賞球数と払出制御用マイクロコンピュータ３７０が管理する賞球数との間のズレの発生を防止することができる。
【０５７９】
また、この実施の形態では、音／ランプ制御用マイクロコンピュータ１００ｂが、変動パターンコマンドにもとづいて、演出内容（予告演出を行うか否かや、予告演出の種類）を独自に決定する。また、音／ランプ制御用マイクロコンピュータ１００ｂによって決定された演出内容に従って、図柄制御用マイクロコンピュータ１００ａが可変表示装置９を用いて遊技演出を実行する。そのため、遊技制御用マイクロコンピュータ５６０が演出内容を決定しなくて済む。従って、遊技制御用マイクロコンピュータ５６０の処理負担を軽減することができる。
【０５８０】
また、この実施の形態では、遊技機への電源投入が開始されてからタイマ割込設定を行うまでに乱数回路５０３の初期設定（乱数回路設定処理）を行うとともに、乱数回路設定処理において、遊技制御用マイクロコンピュータ５６０固有のＩＤナンバにもとづく値を乱数の初期値として設定する。そのため、乱数回路５０３が生成する乱数のランダム性を向上させることができる。また、乱数のランダム性を向上させることができるので、乱数生成のタイミングを遊技者や遊技店に認識されにくくすることができ、無線信号を用いた取り込み信号を遊技機に対して発生させることによって、大当り状態などの特定遊技状態への移行条件を不正に成立させられてしまうことを防止することができる。
【０５８１】
また、この実施の形態では、シリアル通信回路５０５が割り込み要求を行った場合に、通信エラーを割込原因とする場合の割込処理を優先的に実行し、通信を禁止状態に制御する。そのため、通信エラーが発生した状態で遊技機に搭載されている払出制御基板３７の払出制御用マイクロコンピュータ３７０と通信を行うことを防止できる。よって、通信エラーによる誤動作を防止することができる。
【０５８２】
例えば、シリアル通信回路５０５においてオーバーランが発生すると、受信データレジスタ７１１内の受信データが読み込まれる前に受信用シフトレジスタ７１３に次の受信データが格納されてしまうので、受信データレジスタ７１１の内容が上書きされてしまいＣＰＵ５６が受信データを正しく読み込めなくなってしまう。そのため、各制御基板が搭載するマイクロコンピュータと正しく通信を行えなくなり、遊技制御用マイクロコンピュータ５６０が誤動作をする原因となる。この実施の形態では、オーバーランが発生すると、シリアル通信回路５０５が通信エラー時割込要求を行い、ＣＰＵ５６が通信を禁止状態に制御する。そのため、オーバーランの発生によって遊技制御用マイクロコンピュータ５６０が誤動作することを防止することができる。
【０５８３】
また、例えば、シリアル通信回路５０５においてノイズエラーが発生すると、ノイズによって正しい受信データを受信できない可能性が高く、ＣＰＵ５６が誤動作をする原因となる。この実施の形態では、ノイズエラーが発生すると、シリアル通信回路５０５が通信エラー時割込要求を行い、ＣＰＵ５６が通信を禁止状態に制御する。そのため、ノイズエラーの発生によってＣＰＵ５６が誤動作することを防止することができる。
【０５８４】
また、例えば、シリアル通信回路５０５においてフレーミングエラーが発生すると、受信データのストップビットを正しく受信できなかった状態であるので、正しい受信データを受信できない可能性が高く、ＣＰＵ５６が誤動作をする原因となる。この実施の形態では、フレーミングエラーが発生すると、シリアル通信回路５０５が通信エラー時割込要求を行い、ＣＰＵ５６が通信を禁止状態に制御する。そのため、フレーミングエラーの発生によってＣＰＵ５６が誤動作することを防止することができる。
【０５８５】
また、例えば、シリアル通信回路５０５においてパリティエラーが発生すると、受信データの各データビットまたはパリティビットを正しく受信できなかった状態であるので、正しい受信データを受信できない可能性が高く、ＣＰＵ５６が誤動作をする原因となる。この実施の形態では、パリティエラーが発生すると、シリアル通信回路５０５が通信エラー時割込要求を行い、ＣＰＵ５６が通信を禁止状態に制御する。そのため、パリティエラーの発生によってＣＰＵ５６が誤動作することを防止することができる。
【０５８６】
また、この実施の形態では、シリアル通信回路５０５において通信エラーが発生すると、払出制御基板３７が搭載する払出制御用マイクロコンピュータ３７０への賞球個数コマンドの送信と、払出制御用マイクロコンピュータ３７０からの賞球ＡＣＫコマンドの受信とを禁止するように制御する。例えば、通信エラーの発生時に賞球個数コマンドを払出制御基板３７が搭載する払出制御用マイクロコンピュータ３７０に送信してしまうと、誤った賞球個数コマンドが送信されてしまう可能性がある。そのため、誤った賞球個数コマンドに示される賞球数にもとづいて誤った数の遊技球が払い出されてしまう可能性があり、遊技結果に影響を及ぼす虞がある。この実施の形態では、通信エラーが発生すると、払出制御基板３７が搭載する払出制御用マイクロコンピュータ３７０への賞球個数コマンドの送信を禁止するように制御するので、誤った賞球コマンドにもとづいて誤った数の遊技球の払出が行われ、遊技結果に影響を及ぼしてしまうことを防止することができる。
【０５８７】
なお、シリアル通信回路５０５において通信エラーが発生すると、各制御基板が搭載するマイクロコンピュータからのデータの受信のみを防止するようにしてもよい。例えば、遊技制御手段と演出制御手段との間でシリアル通信を行う場合を考える。この場合、遊技制御用マイクロコンピュータ５６０と音／ランプ制御用マイクロコンピュータ１００ｂとの間で行われる通信は、遊技制御用マイクロコンピュータ５６０から音／ランプ制御用マイクロコンピュータ１００ｂへの演出制御コマンドの送信だけであり、音／ランプ制御用マイクロコンピュータ１００ｂから遊技制御用マイクロコンピュータ５６０へのコマンドの送信はない。すなわち、遊技制御用マイクロコンピュータ５６０と音／ランプ制御用マイクロコンピュータ１００ｂとの間では、一方向だけの通信が行われる。また、遊技制御用マイクロコンピュータ５６０から音／ランプ制御基板８０ｂに誤った演出制御コマンドが送信されたとしても、可変表示装置９に誤った演出用の表示が行われるだけであり、誤った払出処理を実行してしまう場合と比較して、遊技結果に与える影響が小さい。そのため、遊技制御手段と演出制御手段との間でシリアル通信を行う場合、シリアル通信回路５０５において通信エラーが発生すると、遊技制御用マイクロコンピュータ５６０は、データの受信のみを禁止するように制御してもよい。
【０５８８】
なお、この実施の形態では、「シリアル通信回路５０５がＣＰＵ５６に割り込み要求を行う」という表現を用いたが、具体的には、データの送受信や通信エラーの発生などの割込要因が発生したときに、シリアル通信回路５０５の割り込み制御回路７１４がステータスレジスタＡ７０５の対応するビット（割込要因に対応するビット）に設定値をセットするとともに、ＣＰＵ５６に割り込み信号（内部ＩＲＱ）を出力することによって、シリアル通信回路５０５による割り込み要求が行われる。例えば、通信エラーが発生したときに、シリアル通信回路５０５の割り込み制御回路７１４がステータスレジスタＡ７０５の対応するビット（通信エラーに対応するビット０〜３）に設定値をセットするとともに、ＣＰＵ５６に割り込み信号を出力することによって、シリアル通信回路５０５による通信エラー時の割り込み要求が行われる。
【０５８９】
また、この実施の形態では、払出個数カウントスイッチ３０１からの払出検出信号を、払出制御基板３７を経由して主基板３１に入力するように構成されているので、払出検出信号を出力するための配線を、払出個数カウントスイッチ３０１から主基板３１および払出制御基板３７の両方に設ける必要がなくなる。そのため、払出個数カウントスイッチ３０１から払出検出信号を出力するための配線を削減することができる。
【０５９０】
なお、払出個数カウントスイッチ３０１からの払出検出信号を主基板３１に直接入力するようにしてもよい。この場合、払出個数カウントスイッチ３０１から払出検出信号を出力するための配線を、主基板３１および払出制御基板３７の両方に設けることになる。そして、遊技制御用マイクロコンピュータ５６０は、払出個数カウントスイッチ３０１から直接入力した払出検出信号にもとづいて、入力判定処理において、総賞球数格納バッファが格納する総賞球数の減算処理を行う。
【０５９１】
また、この実施の形態では、遊技制御用マイクロコンピュータ５６０によって賞球の払い出しに異常が発生したことを示す賞球過多異常コマンドや賞球過少異常コマンドが払出制御用マイクロコンピュータ３７０に送信され、払出制御用マイクロコンピュータ３７０が、受信した賞球過多異常コマンドや賞球過少異常コマンドにもとづいて報知する。そのため、賞球の払い出しのエラー状態を報知することができる。
【０５９２】
また、この実施の形態では、遊技制御用マイクロコンピュータ５６０によって賞球の払い出しに異常が発生したことを示す賞球過多異常コマンドや賞球過少異常コマンドが音／ランプ制御用マイクロコンピュータ１００ｂに送信され、音／ランプ制御用マイクロコンピュータ１００ｂが、受信した賞球過多異常コマンドや賞球過少異常コマンドにもとづいて、音やランプを用いて報知する。また、図柄制御用マイクロコンピュータ１００ａが、転送された賞球過多異常コマンドや賞球過少異常コマンドにもとづいて、可変表示装置９用いて報知する。そのため、賞球の払い出しのエラー状態を報知することができる。
【０５９３】
また、この実施の形態では、主基板３１からの演出制御コマンドを、まず音／ランプ制御基板８０ｂで受信し、さらに音／ランプ制御基板８０ｂから図柄制御基板８０ａに変動パターンコマンドや演出内容指定コマンドが送出される場合を説明したが、主基板３１からの演出制御コマンドを、まず図柄制御基板８０ａで受信するようにしてもよい。
【０５９４】
図１００は、中継基板７７、音／ランプ制御基板８０ｂおよび図柄制御基板８０ａの他の回路構成例を示すブロック図である。図１００に示す回路構成を用いる場合、例えば、図柄制御用マイクロコンピュータ１００ａは、ステップＳ１８５１〜Ｓ１８５６と同様の処理に従って、変動パターンコマンドにもとづいて、演出内容（予告演出を行うか否かや、予告演出の種類）を決定する。そして、図柄制御用マイクロコンピュータ１００ａは、決定した演出内容に従って、ＶＤＰ１０９に、可変表示装置９を用いた予告演出を行わせる。また、図柄制御用マイクロコンピュータ１００ａは、決定した演出内容を示す演出内容指定コマンドを生成して、音／ランプ制御基板８０ｂに送信するようにしてもよい。そして、音／ランプ制御基板８０ｂが搭載する音／ランプ制御用マイクロコンピュータ１００ｂは、受信した演出内容指定コマンドに示される演出内容に従って、各ランプ２５，２８ａ，２８ｂ，２８ｃの表示制御を行ったり、音出力装置２７の音出力制御を行ってもよい。
【０５９５】
また、この実施の形態では、各演出手段を別々の制御基板を用いて制御する場合として、音／ランプ制御基板８０ｂと図柄制御基板８０ａとを用いる場合を説明したが、他の制御基板の組合せを用いて各演出手段を制御してもよい。例えば、音出力装置２７を制御する音制御基板と、各ランプを制御するランプ制御基板と、可変表示装置９を制御する図柄制御基板とを用いて、各演出手段を制御してもよい。この場合、例えば、主基板３１からの演出制御コマンドを、まず音制御基板で受信し、音制御基板が搭載する音制御用マイクロコンピュータが、受信した変動パターンコマンドにもとづいて演出内容（予告演出を行うか否かや、予告演出の種類）を決定してもよい。なお、主基板３１からの演出制御コマンドを、まずランプ制御基板や図柄制御基板で受信し、ランプ制御基板や図柄制御基板が搭載するマイクロコンピュータが、演出内容を決定したり変動時間を特定してもよい。さらに、例えば、音出力装置２７および可変表示装置９を制御する音／図柄制御基板と、各ランプを制御するランプ制御基板とを用いて、各演出手段を制御してもよい。また、例えば、各ランプおよび可変表示装置９を制御するランプ／図柄制御基板と、音出力装置２７を制御する音制御基板とを用いて、各演出手段を制御してもよい。
【０５９６】
実施の形態２．
上記に示した各実施の形態では、ＣＰＵ５６が、シリアル通信回路５０５からの割り込み要求に対応する割込処理のうちいずれの割込処理に優先して実行するかを設定または変更する場合を説明したが、さらにタイマ割込とシリアル通信回路５０５からの割り込み要求とが同時に発生した場合に、いずれの割込処理を優先して実行するかを設定または変更できるようにしてもよい。以下、タイマ割込とシリアル通信回路５０５からの割り込み要求とのいずれを優先して割込処理を実行するかを設定または変更する第２の実施の形態を説明する。
【０５９７】
なお、本実施の形態において、第１の実施の形態と同様の構成および処理をなす部分についてはその詳細な説明を省略し、主として第１の実施の形態と異なる部分について説明する。
【０５９８】
まず、第２の実施の形態におけるメイン処理について説明する。図１０１は、第２の実施の形態におけるメイン処理を示すフローチャートである。なお、メイン処理のうち、ステップＳ１からステップＳ６まで（ステップＳ８０を含む）の処理は、第１の実施の形態で示した処理と同様である（図４３参照）。また、図１０１に示すメイン処理において、ステップＳ７からステップＳ１５ａまでの処理（ステップＳ９１からステップＳ９３までの処理を含む）は、第１の実施の形態で示したそれらの処理と同様である。
【０５９９】
ステップＳ１５ａのシリアル通信回路設定処理を実行し、シリアル通信回路５０５を初期設定すると、ＣＰＵ５６は、タイマ割込の発生時に実行するタイマ割込処理、およびシリアル通信回路５０５の割り込み要求に応じて実行する割込処理の優先順位を初期設定する（ステップＳ１５ｃ）。
【０６００】
例えば、ＣＰＵ５６は、各割込処理のデフォルトの優先順位を含む所定の割込処理優先順位テーブルに従って、各割込処理の優先順位を初期設定する。図１０２は、第２の実施の形態における割込処理優先順位テーブルの例を示す説明図である。この実施の形態では、ＣＰＵ５６は、図１０２に示す割込処理優先順位テーブルに従って、シリアル通信回路５０５において通信エラーが発生したことを割込原因とする割込処理を優先して実行するように初期設定する。すなわち、ＣＰＵ５６は、シリアル通信回路５０５からの割り込み要求による割込処理（本例では、通信エラー割込処理）を、タイマ割込処理に優先して実行するようにデフォルトで設定する。この場合、例えば、ＣＰＵ５６は、通信エラーが発生したことを割込原因とする割込処理を優先して実行する旨を示す通信エラー時割込優先実行フラグをセットする。
【０６０１】
また、この実施の形態では、ステップＳ１５ｃにおいて、図１０２に示す割込処理優先順位テーブルに従って割込処理の優先順位の初期設定が行われることによって、タイマ割込とシリアル通信回路５０５からの割り込み要求とが同時に発生した場合、シリアル通信回路５０５からの割り込み要求に対する割込処理を優先して行うことになる。
【０６０２】
また、ユーザによって各割込処理のデフォルトの優先順位を変更することもできる。例えば、遊技制御用マイクロコンピュータ５６０は、ユーザ（例えば、遊技機の製作者）によって設定された割込処理を指定する指定情報を、あらかじめＲＯＭ５４の所定の記憶領域に記憶している。そして、ＣＰＵ５６は、ＲＯＭ５４の所定の記憶領域に記憶された指定情報に従って、割込処理の優先順位を設定する。
【０６０３】
例えば、あらかじめ記憶された指定情報においてタイマ割込処理が指定されている場合を説明する。この場合、ＣＰＵ５６は、指定情報にもとづいて、タイマ割込処理を、シリアル通信回路５０５からの割り込み要求に対する各割込処理（通信エラー時割込処理、受信時割込処理および送信完了割込処理）に優先して実行するように初期設定する。すなわち、図１０２に示す割込処理優先順位テーブルにおいて、シリアル通信回路５０５において通信エラーが発生したことを割込原因とする割込処理を優先して実行するようにデフォルトで設定されているが、ＣＰＵ５６は、ユーザによって設定された指定情報にもとづいて、タイマ割込処理を優先して実行するように割込処理の優先順位を変更する。この場合、例えば、ＣＰＵ５６は、タイマ割込処理を優先して実行する旨を示すタイマ割込優先実行フラグをセットする。
【０６０４】
また、ステップＳ１６からステップＳ１９までの処理は、第１の実施の形態で示したそれらの処理と同様である。ステップＳ１９で割込許可状態に設定されると、次にステップＳ１７の処理が実行されて割込禁止状態とされるまで、タイマ割込またはシリアル通信回路５０５からの割り込み要求を許可する状態となる。そして、割込許可状態に設定されている間に、タイマ割込が発生すると、遊技制御用マイクロコンピュータ５６０は、後述するタイマ割込処理を実行する。また、割込許可状態に設定されている間に、シリアル通信回路５０５から割り込み要求が発生すると、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６は、後述する各割込処理（通信エラー割込処理や、受信時割込処理、送信完了割込処理）を実行する。また、本実施の形態では、ステップＳ１７からステップＳ１９までのループ処理の前にステップＳ１５ｃを実行することによって、タイマ割込または割り込み要求を許可する状態に設定される前に、タイマ割込処理およびシリアル通信回路５０５からの割り込み要求による割込処理の優先順位を設定または変更する処理が行われる。
【０６０５】
遊技制御用マイクロコンピュータ５６０のＣＰＵ５６は、メイン処理におけるステップＳ１７からステップＳ１９までのループ処理において、割り込み許可状態である間にシリアル通信回路５０５からの割り込み要求があると、図５６に示す処理に従って、シリアル通信回路５０５が割り込み要求を行った割り込み原因に応じた割り込み処理を実行する。また、ＣＰＵ５６は、メイン処理におけるステップＳ１７からステップＳ１９までのループ処理において、タイマ割込が発生すると、図６７に示す処理に従ってタイマ割込処理を実行する。
【０６０６】
この実施の形態では、タイマ割込とシリアル通信回路５０５からの割り込み要求が同時に発生した場合、ＣＰＵ５６は、いずれの割込処理を優先して実行する旨が初期設定されているか否かを判断する。例えば、ＣＰＵ５６は、いずれの割込処理を優先して実行する旨のフラグがセットされているか否かを判断する。例えば、ＣＰＵ５６は、タイマ割込優先実行フラグがセットされていることにもとづいて、タイマ割込処理を優先して実行する。
【０６０７】
以上に説明したように、この実施の形態では、ＣＰＵ５６は、メイン処理において、割込許可状態に設定する前に、タイマ割込処理、およびシリアル通信回路５０５からの割り込み要求に対応する各割込処理の優先順位を初期設定する。そのため、タイマ割込処理や複数種類の割込原因に対応する割込処理のうち、優先して実行させるべき割込処理を確実に実行することができる。また、優先して実行させる割込処理を初期設定できるので、遊技制御用マイクロコンピュータ５６０のＣＰＵ５６に実行させるプログラムの自由度を向上させることができる。
【０６０８】
なお、上述した実施の形態では、以下の（１）〜（８）に示すような遊技機の特徴的構成も示されている。
【０６０９】
（１）乱数回路初期設定手段は、初期設定において、数値データが更新される所定の範囲の最大値としての値が設定される数値最大値レジスタ（例えば、乱数最大値設定レジスタ５３５）に、数値更新手段により更新可能な数値データの範囲内において所定の最大値（例えば、乱数最大値）を設定し（例えば、遊技制御用マイクロコンピュータ５６０がステップＳ１５２を実行する部分）、数値更新手段は、乱数回路初期設定手段により設定された所定の最大値が、所定の下限値（例えば、１２ビット乱数回路５０３ａを設定した場合における「２５６」）以下であるか否かを判定する設定値判定手段（例えば、遊技制御用マイクロコンピュータ５６０におけるステップＳ１５３ｂを実行する部分）と、設定値判定手段によって数値最大値レジスタに設定された所定の最大値が所定の下限値以下であると判定されたときに、数値最大値レジスタに、数値更新手段により更新可能な数値データの範囲内の所定値（例えば、１２ビット乱数回路５０３ａを設定した場合における「４０９５」）を設定しなおす最大値再設定手段（例えば、遊技制御用マイクロコンピュータ５６０におけるステップＳ１５３ｃを実行する部分）とを含むように構成されていてもよい。そのような構成によれば、遊技制御用マイクロコンピュータの誤動作や、無線信号を用いた取り込み信号を遊技機に対して発生させるなどの行為によって、過度に小さい値が乱数の最大値として設定されてしまうことを防止することができる。
【０６１０】
（２）遊技制御用マイクロコンピュータは、乱数回路初期設定手段によって設定される数値データの所定の初期値を、マイコン識別情報を用いて演算する数値演算手段（例えば、遊技用マイクロコンピュータにおけるステップＳ１５４ｂの処理を実行する際に、遊技制御用マイクロコンピュータ５６０のＩＤナンバと所定値とを演算して（例えば、ＩＤナンバに所定値を加算して）演算値を求める部分）を含み、乱数回路初期設定手段は、数値演算手段による演算によって算出された値にもとづいて初期値を設定する（例えば、遊技用マイクロコンピュータがステップＳ１５４ｂの処理を実行する際に、求めた演算値をカウント値の初期値として設定する）ように構成されていてもよい。そのような構成によれば、マイコン識別情報を見ただけでは乱数の初期値を認識しにくくすることができ、セキュリティ性を向上させることができる。
【０６１１】
（３）乱数回路初期設定手段は、初期設定において、数値更新手段によって所定の最終値まで数値データが更新されたときに、乱数回路初期設定手段が設定した所定の初期値を変更するか否かを設定し（例えば、遊技制御用マイクロコンピュータ５６０がステップＳ１５７を実行する）、乱数回路は、数値更新手段によって所定の最終値まで数値データが更新されたきに、数値データが所定の最終値まで更新された旨を示す通知信号を出力する通知信号出力手段（例えば、カウンタ５２１の出力端子）と、通知信号が出力されたことにもとづいて、乱数回路初期設定手段によって初期値を変更する設定がされているときに、所定の初期値の値を変更する初期値変更手段（例えば、遊技制御用マイクロコンピュータ５６０におけるステップＳ２２０〜Ｓ２２６を実行する部分）とを含むように構成されていてもよい。そのような構成によれば、乱数回路が生成する乱数のランダム性をより向上させることができる。
【０６１２】
（４）遊技機は、遊技領域における入賞領域（例えば、始動入賞口１４）に遊技媒体が入賞し、可変表示の実行条件が成立したことを検出して入賞検出信号（例えば、入賞検出信号ＳＳ）を出力する入賞検出手段（例えば、始動口スイッチ１４ａ）を備え、乱数回路は、入賞検出手段からの入賞検出信号が入力されたことにもとづいて、数値更新手段が更新する数値データを乱数記憶手段に記憶させる指示をするためのラッチ信号を出力するラッチ信号出力手段（例えば、ラッチ信号生成回路５３３）を含み、ラッチ信号出力手段は、入賞検出手段から入賞検出信号が所定期間継続して入力されたことを条件（例えば、タイマ回路５３４が所定期間（例えば、３ｍｓ）を計測したときに、乱数値読取信号出力回路５２６から出力される乱数値読取信号を入力したこと）に、ラッチ信号を出力する（例えば、ラッチ信号生成回路５３３が、乱数値読取信号出力回路５２６から出力される乱数値読取信号を、反転回路５３２から出力される反転クロック信号ＳＩ２の立ち上がりエッヂに同期させて、ラッチ信号ＳＬとして乱数値記憶回路５３１に出力する部分）ように構成されていてもよい。そのような構成によれば、ノイズの発生を入力検出信号の入力と誤認識してラッチ信号を出力し、生成した乱数を記憶してしまうことを防止できる。また、無線信号を用いた取り込み信号を遊技機に対して発生させるなどの行為によってラッチ信号が出力され、不正なラッチ信号によって生成された乱数を記憶させられてしまう可能性を低減することができる。
【０６１３】
（５）遊技機は、遊技領域における入賞領域に遊技媒体が入賞し、可変表示の実行条件が成立したことを検出して入賞検出信号を出力する入賞検出手段（例えば、始動口スイッチ１４ａ）を備え、乱数回路は、入賞検出手段からの入賞検出信号が入力されたことにもとづいて、数値更新手段が更新する数値データを乱数記憶手段に記憶させる指示をするためのラッチ信号を出力するラッチ信号出力手段（例えば、ラッチ信号生成回路５３３）を含み、ラッチ信号出力手段は、入賞検出手段から入賞検出信号が所定期間継続して入力されたことを条件に、ラッチ信号を出力し（例えば、ラッチ信号生成回路５３３が、乱数値読取信号出力回路５２６から出力される乱数値読取信号を、反転回路５３２から出力される反転クロック信号ＳＩ２の立ち上がりエッヂに同期させて、ラッチ信号ＳＬとして乱数値記憶回路５３１に出力する部分）、乱数読出手段は、割込処理実行手段によってタイマ割込処理が所定回数実行される間継続して、入賞検出手段から入賞検出信号が入力されたことを条件（例えば、遊技制御用マイクロコンピュータ５６０によるステップＳ３２２の処理の実行の際に、割込回数カウンタに示されるタイマ割込処理の実行回数が所定回数（例えば、３回）に達していること）に、乱数記憶手段が記憶する乱数値を読み出し（例えば、ＣＰＵ５６が、乱数回路５０３の乱数値記憶回路５３１から、乱数値として記憶されているランダムＲの値を読み出し）、所定期間（例えば、３ｍｓ）は所定回数のタイマ割込処理が実行される期間（例えば、６ｍｓ）よりも短いように構成されていてもよい。そのような構成によれば、乱数を読み出してから、乱数記憶手段に記憶される乱数の値が更新される前に再び乱数を読み出してしまうことを防止することができる。そのため、前回乱数記憶手段から読み出した乱数と同じ値の乱数を再び読み出してしまうことを防止することができる。
【０６１４】
（６）乱数回路初期設定手段は、初期設定において、数値更新手段が更新する数値データの所定の初期値から所定の最終値までの値の並び順（例えば、カウンタ５２１が更新するカウント値Ｃの順列）を変更するか否かを設定する数値順設定手段（例えば、遊技制御用マイクロコンピュータ５６０におけるステップＳ１５８を実行する部分）を含み、乱数回路は、数値更新手段によって所定の最終値まで数値データが更新されたときに、数値データが所定の最終値まで更新された旨を示す通知信号を出力する通知信号出力手段（例えば、カウンタ５２１の出力端子）と、通知信号が出力されたことにもとづいて、乱数回路初期設定手段によって、数値データの所定の初期値から所定の最終値までの並び順を変更する設定がされているときに、数値更新手段が更新する数値データの所定の初期値から所定の最終値までの並び順を変更する数値順変更手段（例えば、遊技制御用マイクロコンピュータ５６０におけるステップＳ２６を実行する部分）とを含むように構成されていてもよい。そのような構成によれば、乱数回路が生成する乱数のランダム性をより向上させることができる。
【０６１５】
（７）遊技制御用マイクロコンピュータは、遊技機への電力供給が開始されたときに、タイマ割込設定手段によりタイマ割込の設定がされる前に、シリアル通信回路の初期設定を行うシリアル通信回路初期設定手段（遊技制御用マイクロコンピュータ５６０におけるステップＳ１５ａを実行する部分）を含み、割込要求手段が発生させる割込要求は、シリアル通信回路が制御用ＣＰＵ以外のＣＰＵを内蔵したマイクロコンピュータ（例えば、払出制御用マイクロコンピュータ３７０）からデータを受信したときに発生させる受信時割込要求（例えば、シリアル通信回路５０５が、受信データフルを検出したときに行う受信時割り込み要求）を含み、シリアル通信回路初期設定手段は、優先処理手段が優先して実行する割込処理の優先順位を変更する設定を、タイマ割込設定手段によりタイマ割込の設定がされる前に行う優先順位変更手段（例えば、遊技制御用マイクロコンピュータ５６０が、ステップＳ１５ｂを実行する際に、受信時割込優先実行フラグを設定する部分）とを含み、優先処理手段は、優先順位変更手段によって、割込処理の優先順位が、エラー時割込要求にもとづく割込処理よりも受信時割込要求にもとづく割込処理を優先して実行するように変更されているときには、受信時割込要求にもとづく割込処理を、エラー時割込要求にもとづく割込処理に優先して実行する（例えば、遊技制御用マイクロコンピュータ５６０が、ステップＳ４１，Ｓ４３に優先してステップＳ４２を実行する部分）ように構成されていてもよい。そのような構成によれば、複数種類の割込要求条件に対応する割込処理のうち、優先して実行させるべき割込処理を確実に実行することができる。また、優先して実行させる割込処理を初期設定できるので、遊技制御用マイクロコンピュータに実行させるプログラムの自由度を向上させることができる。
【０６１６】
（８）払出手段は、払い出すべき景品遊技媒体の数が異なる複数の入賞領域に遊技媒体が入賞したことにもとづいて景品として景品遊技媒体を払い出し、遊技機は、各入賞領域に遊技媒体が入賞したことを検出して入賞検出信号を出力する複数の入賞検出手段（例えば、入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａ）と、払い出すべき景品遊技媒体の数（例えば、賞球数「３」，「１０」，「１５」）毎に払出数データを記憶する払出数記憶手段（例えば、賞球コマンド出力カウンタ１〜３）と、各入賞検出手段からの入力検出信号にもとづいて、いずれの入賞領域に遊技球が入賞したかを特定する入賞領域特定手段（例えば、遊技制御用マイクロコンピュータ５６０において、ステップＳ２１２１でポインタが指す賞球コマンド出力カウンタのカウント値をロードする部分）とを備え、払出数登録手段は、入賞領域特定手段が特定した入賞領域に入賞したことにもとづいて払い出すべき景品遊技媒体の数を示す払出数データを、払出数記憶手段に記憶させる（例えば、遊技制御用マイクロコンピュータ５６０において、ステップＳ２１２４でポインタが指す賞球コマンド出力カウンタに加算結果をストアする）ように構成されていてもよい。そのような構成によれば、払い出すべき景品遊技媒体の数が異なる複数の入賞領域のうちのいずれの入賞領域に遊技球が入賞したかを特定し、特定した入賞領域に対応する景品遊技媒体の数を示す払出数データを記憶するように構成されているので、遊技球が入賞した入賞領域に応じた払出数を示す払出数データを記憶することができる。そのため、遊技球が入賞した入賞領域に応じた払出数にもとづいて、遊技制御手段が賞球数を管理することができる。
【産業上の利用可能性】
【０６１７】
本発明は、パチンコ遊技機およびスロット機などの遊技機に適用可能であり、特に、総賞球数格納バッファを用いて、払い出すべき賞球数を管理する制御を行う遊技機に好適に適用できる。
【図面の簡単な説明】
【０６１８】
【図１】パチンコ遊技機を正面からみた正面図である。
【図２】ガラス扉枠を取り外した状態での遊技盤の前面を示す正面図である。
【図３】遊技機を裏面から見た背面図である。
【図４】遊技制御基板（主基板）の構成例を示すブロック図である。
【図５】払出制御基板の回路構成例を示すブロック図である。
【図６】中継基板、音／ランプ制御基板および図柄制御基板の回路構成例を示すブロック図である。
【図７】主基板における回路構成および主基板から音／ランプ制御基板に送信される演出制御コマンドの信号線を示すブロック図である。
【図８】乱数回路の構成例を示すブロック図である。
【図９】更新規則選択レジスタの例を示す説明図である。
【図１０】更新規則メモリの例を示す説明図である。
【図１１】カウント値順列変更回路が、カウンタが出力するカウント値の順列を変更する場合の例を示す説明図である。
【図１２】カウント値順列変更レジスタの例を示す説明図である。
【図１３】乱数最大値設定レジスタの例を示す説明図である。
【図１４】周期設定レジスタの例を示す説明図である。
【図１５】カウント値更新レジスタの例を示す説明図である。
【図１６】乱数値取込レジスタの例を示す説明図である。
【図１７】乱数更新方式選択レジスタ、および乱数更新方式選択レジスタに書き込まれる乱数更新方式選択データの一例の説明図である。
【図１８】乱数回路起動レジスタの例を示す説明図である。
【図１９】乱数値記憶回路の一構成例を示す回路図である。
【図２０】乱数値記憶回路に各信号が入力されるタイミング、および乱数値記憶回路が各信号を出力するタイミングを示すタイミングチャートである。
【図２１】シリアル通信回路の送信部の構成例を示すブロック図である。
【図２２】シリアル通信回路の受信部の構成例を示すブロック図である。
【図２３】シリアル通信が各制御基板が搭載するマイクロコンピュータと送受信するデータのデータフォーマットの例を示す説明図である。
【図２４】ボーレートレジスタの例を示す説明図である。
【図２５】制御レジスタＡおよび通信フォーマット設定データの例を示す説明図である。
【図２６】制御レジスタＢおよび割り込み要求設定データの例を示す説明図である。
【図２７】ステータスレジスタＡおよびステータス確認データの例を示す図である。
【図２８】ステータスレジスタＢおよびステータス確認データの例を示す図である。
【図２９】制御レジスタＣおよびエラー割り込み要求設定データの例を示す説明図である。
【図３０】シリアル通信回路が備えるデータレジスタの例を示す説明図である。
【図３１】遊技制御用マイクロコンピュータにおける記憶領域のアドレスマップの一例を示す説明図である。
【図３２】ユーザプログラム管理エリアにおけるアドレスマップの一例を示す説明図である。
【図３３】初期値変更方式設定データの一例を示す説明図である。
【図３４】ユーザプログラムの構成例を示す説明図である。
【図３５】乱数回路設定プログラムの構成例を示す説明図である。
【図３６】第１の乱数更新方式が選択されている場合に、ランダムＲの値を更新させたりランダムＲの値を読出したりする動作を示す説明図である。
【図３７】第２の乱数更新方式が選択されている場合に、ランダムＲの値の更新させたりランダムＲの値を読出したりする動作を示す説明図である。
【図３８】遊技制御用マイクロコンピュータが備える各メモリを示す説明図である。
【図３９】大当り判定用テーブルメモリの例を示す説明図である。
【図４０】遊技制御手段における出力ポートのビット割り当て例を示す説明図である。
【図４１】遊技制御手段における出力ポートのビット割り当て例を示す説明図である。
【図４２】遊技制御手段における入力ポートのビット割り当て例を示す説明図である。
【図４３】遊技制御用マイクロコンピュータが実行するメイン処理を示すフローチャートである。
【図４４】遊技制御用マイクロコンピュータが実行するメイン処理を示すフローチャートである。
【図４５】遊技制御用マイクロコンピュータが実行するメイン処理（メインループ）を示すフローチャートである。
【図４６】割込処理優先順位テーブルの例を示す説明図である。
【図４７】乱数回路設定処理を示すフローチャートである。
【図４８】乱数最大値再設定処理を示すフローチャートである。
【図４９】初期値変更処理を示すフローチャートである。
【図５０】乱数回路に各信号が入力されるタイミング、および乱数回路内で各信号が生成されるタイミングを示すタイミングチャートである。
【図５１】シリアル通信回路設定処理を示すフローチャートである。
【図５２】遊技制御手段から払出制御手段に対して出力される制御信号の内容の一例を示す説明図である。
【図５３】遊技制御手段と払出制御手段との間で送受信される制御コマンドの内容の一例を示す説明図である。
【図５４】制御信号および制御コマンドの送受信に用いられる信号線等を示すブロック図である。
【図５５】払出制御信号および払出制御コマンドの出力の仕方の一例を示すタイミング図である。
【図５６】シリアル通信回路が割り込み要求に対して行う割り込み処理の一例を示す流れ図である。
【図５７】賞球個数テーブルの例を示す説明図である。
【図５８】賞球処理の一例を示すフローチャートである。
【図５９】賞球個数コマンド送信処理を示すフローチャートである。
【図６０】賞球送信完了待ち処理を示すフローチャートである。
【図６１】賞球ＡＣＫ待ち処理を示すフローチャートである。
【図６２】賞球再送信処理を示すフローチャートである。
【図６３】賞球異常検出処理を示すフローチャートである。
【図６４】特別図柄プロセス処理の一例を示すフローチャートである。
【図６５】始動口スイッチ通過処理を示すフローチャートである。
【図６６】特別図柄通常処理の一例を示すフローチャートである。
【図６７】タイマ割込処理を示すフローチャートである。
【図６８】スイッチ処理で使用されるＲＡＭに形成される各２バイトのバッファを示す説明図である。
【図６９】スイッチ処理の処理例を示すフローチャートである。
【図７０】賞球コマンド出力カウンタ処理テーブルの例を示す説明図である。
【図７１】入力判定処理を示すフローチャートである。
【図７２】入力判定処理を示すフローチャートである。
【図７３】総賞球数格納バッファに格納される総賞球数の加算処理および減算処理が行われるタイミングの一例を示すタイミング図である。
【図７４】乱数回路初期値更新処理を示すフローチャートである。
【図７５】カウント値順列変更処理を示すフローチャートである。
【図７６】払出制御手段における出力ポートのビット割り当て例を示す説明図である。
【図７７】払出制御手段における入力ポートのビット割り当て例を示す説明図である。
【図７８】払出制御用ＣＰＵが実行するメイン処理を示すフローチャートである。
【図７９】払出制御用ＣＰＵが実行するタイマ割込処理を示すフローチャートである。
【図８０】主制御通信処理を示すフローチャートである。
【図８１】賞球球貸し制御処理を示すフローチャートである。
【図８２】払出開始待ち処理を示すフローチャートである。
【図８３】払出モータ停止待ち処理を示すフローチャートである。
【図８４】払出通過待ち処理を示すフローチャートである。
【図８５】払出通過待ち処理を示すフローチャートである。
【図８６】払出通過待ち処理を示すフローチャートである。
【図８７】エラーの種類とエラー表示用ＬＥＤの表示との関係等の一例を示す説明図である。
【図８８】エラー処理を示すフローチャートである。
【図８９】エラー処理を示すフローチャートである。
【図９０】エラー処理を示すフローチャートである。
【図９１】演出制御コマンドの信号線を示す説明図である。
【図９２】演出制御コマンドを構成する８ビットの制御信号とＩＮＴ信号との関係を示すタイミング図である。
【図９３】音／ランプ制御用マイクロコンピュータが実行するメイン処理を示すフローチャートである。
【図９４】音／ランプ制御処理で用いる各乱数を示す説明図である。
【図９５】演出内容決定処理を示すフローチャートである。
【図９６】報知処理を示すフローチャートである。
【図９７】図柄制御用マイクロコンピュータが実行するメイン処理を示すフローチャートである。
【図９８】図柄制御プロセス処理を示すフローチャートである。
【図９９】賞球異常を報知する報知画面の例を示す説明図である。
【図１００】中継基板、音／ランプ制御基板および図柄制御基板の他の回路構成例を示すブロック図である。
【図１０１】第２の実施の形態におけるメイン処理を示すフローチャートである。
【図１０２】第２の実施の形態における割込処理優先順位テーブルの例を示す説明図である。
【符号の説明】
【０６１９】
１        パチンコ遊技機
９        可変表示装置
１４      始動入賞口
１５      可変入賞球装置
３１      遊技制御基板（主基板）
３７      払出制御基板
５６      ＣＰＵ
８０ａ    図柄制御基板
８０ｂ    音／ランプ制御基板
１００ａ  図柄制御用マイクロコンピュータ
１００ｂ  音／ランプ制御用マイクロコンピュータ
１０１ａ  図柄制御用ＣＰＵ
１０１ｂ  音／ランプ制御用ＣＰＵ
５０３ａ  １２ビット乱数回路
５０３ｂ  １６ビット乱数回路
５０５    シリアル通信回路
５６０    遊技制御用マイクロコンピュータ
【図１】
0004708197.tif 000002
【図２】
0004708197.tif 000003
【図３】
0004708197.tif 000004
【図４】
0004708197.tif 000005
【図５】
0004708197.tif 000006
【図６】
0004708197.tif 000007
【図７】
0004708197.tif 000008
【図８】
0004708197.tif 000009
【図９】
0004708197.tif 000010
【図１０】
0004708197.tif 000011
【図１１】
0004708197.tif 000012
【図１２】
0004708197.tif 000013
【図１３】
0004708197.tif 000014
【図１４】
0004708197.tif 000015
【図１５】
0004708197.tif 000016
【図１６】
0004708197.tif 000017
【図１７】
0004708197.tif 000018
【図１８】
0004708197.tif 000019
【図１９】
0004708197.tif 000020
【図２０】
0004708197.tif 000021
【図２１】
0004708197.tif 000022
【図２２】
0004708197.tif 000023
【図２３】
0004708197.tif 000024
【図２４】
0004708197.tif 000025
【図２５】
0004708197.tif 000026
【図２６】
0004708197.tif 000027
【図２７】
0004708197.tif 000028
【図２８】
0004708197.tif 000029
【図２９】
0004708197.tif 000030
【図３０】
0004708197.tif 000031
【図３１】
0004708197.tif 000032
【図３２】
0004708197.tif 000033
【図３３】
0004708197.tif 000034
【図３４】
0004708197.tif 000035
【図３５】
0004708197.tif 000036
【図３６】
0004708197.tif 000037
【図３７】
0004708197.tif 000038
【図３８】
0004708197.tif 000039
【図３９】
0004708197.tif 000040
【図４０】
0004708197.tif 000041
【図４１】
0004708197.tif 000042
【図４２】
0004708197.tif 000043
【図４３】
0004708197.tif 000044
【図４４】
0004708197.tif 000045
【図４５】
0004708197.tif 000046
【図４６】
0004708197.tif 000047
【図４７】
0004708197.tif 000048
【図４８】
0004708197.tif 000049
【図４９】
0004708197.tif 000050
【図５０】
0004708197.tif 000051
【図５１】
0004708197.tif 000052
【図５２】
0004708197.tif 000053
【図５３】
0004708197.tif 000054
【図５４】
0004708197.tif 000055
【図５５】
0004708197.tif 000056
【図５６】
0004708197.tif 000057
【図５７】
0004708197.tif 000058
【図５８】
0004708197.tif 000059
【図５９】
0004708197.tif 000060
【図６０】
0004708197.tif 000061
【図６１】
0004708197.tif 000062
【図６２】
0004708197.tif 000063
【図６３】
0004708197.tif 000064
【図６４】
0004708197.tif 000065
【図６５】
0004708197.tif 000066
【図６６】
0004708197.tif 000067
【図６７】
0004708197.tif 000068
【図６８】
0004708197.tif 000069
【図６９】
0004708197.tif 000070
【図７０】
0004708197.tif 000071
【図７１】
0004708197.tif 000072
【図７２】
0004708197.tif 000073
【図７３】
0004708197.tif 000074
【図７４】
0004708197.tif 000075
【図７５】
0004708197.tif 000076
【図７６】
0004708197.tif 000077
【図７７】
0004708197.tif 000078
【図７８】
0004708197.tif 000079
【図７９】
0004708197.tif 000080
【図８０】
0004708197.tif 000081
【図８１】
0004708197.tif 000082
【図８２】
0004708197.tif 000083
【図８３】
0004708197.tif 000084
【図８４】
0004708197.tif 000085
【図８５】
0004708197.tif 000086
【図８６】
0004708197.tif 000087
【図８７】
0004708197.tif 000088
【図８８】
0004708197.tif 000089
【図８９】
0004708197.tif 000090
【図９０】
0004708197.tif 000091
【図９１】
0004708197.tif 000092
【図９２】
0004708197.tif 000093
【図９３】
0004708197.tif 000094
【図９４】
0004708197.tif 000095
【図９５】
0004708197.tif 000096
【図９６】
0004708197.tif 000097
【図９７】
0004708197.tif 000098
【図９８】
0004708197.tif 000099
【図９９】
0004708197.tif 000100
【図１００】
0004708197.tif 000101
【図１０１】
0004708197.tif 000102
【図１０２】
0004708197.tif 000103