(57)【特許請求の範囲】
【請求項１】
各々が識別可能な複数種類の識別情報を変動表示可能な可変表示部を備え、
前記可変表示部を変動表示した後、前記可変表示部の変動表示を停止することで表示結果を導出し、該表示結果に応じて入賞が発生可能なスロットマシンにおいて、
制御プログラムに従って、初期設定処理を実行した後、スロットマシンの制御を実行する制御手段と、
スロットマシンで用いられる電源の状態を監視して、スロットマシンへの電力の供給停止にかかわる検出条件が成立したことに基づいて検出信号を出力する電源監視手段と、
予め定められた監視時間を計測するための計時手段を有し、該計時手段により該監視時間が経過したことが計測されたときに、前記制御手段をリセットするリセット手段とを備え、
前記リセット手段は、
動作設定用の記憶領域に前記リセット手段の動作を有効化する旨を示す有効化データが前記制御手段により書き込まれることにより動作が有効化され、
動作が有効化されているときに、初期化用の記憶領域に前記計時手段を初期化する旨を示す初期化データが前記制御手段により書き込まれることにより前記計時手段を初期化し、
前記制御手段は、前記電源監視手段からの検出信号に応じて電力供給停止時処理を実行した後にスロットマシンの制御を実行しない待機状態に移行させる電断時制御手段を含み、
前記電断時制御手段は、前記待機状態への移行にあたり前記リセット手段の前記動作設定用の記憶領域に前記有効化データを書き込み、前記待機状態に移行させた後は前記計時手段の初期化が実行されないように前記リセット手段の前記初期化用の記憶領域に前記初期化データを書き込まない、スロットマシン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１ゲームに対して所定数の賭数を設定することによりゲームを開始させることが可能となり、各々が識別可能な複数種類の識別情報を変動表示させる可変表示装置に表示結果が導出されることにより１ゲームが終了し、該可変表示装置に導出された表示結果に応じて入賞が発生可能であるスロットマシンに関する。
【背景技術】
【０００２】
メダルやコイン、あるいは、パチンコ遊技機と同様の遊技球といった遊技媒体を用いて１ゲームに対する所定数の賭数を設定した後、遊技者がスタートレバーを操作することにより可変表示装置による表示図柄の可変表示を開始し、遊技者が各可変表示装置に対応して設けられた停止ボタンを操作することにより、その操作タイミングから予め定められた最大遅延時間の範囲内で表示図柄の可変表示を停止し、全ての可変表示装置の可変表示を停止したときに導出された表示結果に従って入賞が発生し、入賞に応じて予め定められた所定の遊技媒体が払い出され、特定入賞が発生した場合に、遊技状態を所定の遊技価値を遊技者に与える状態にするように構成されたスロットマシンがある。
【０００３】
このようなスロットマシンとして、短期間にて電力供給が停止（瞬停）するときに、所定の監視時間を計測するタイマ（ウォッチドッグタイマ）がタイムアウトすることで遊技制御用マイクロコンピュータをリセットするものが提案されている（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１９００９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術では、遊技の進行を制御する遊技制御処理の実行中にも、タイマのカウント値を定期的にクリアしリスタートさせる処理（初期化処理）を実行することにより、リセットされてしまうことを防止している。そのため、遊技の進行を制御するための制御負担が大きくなるという問題があった。
【０００６】
この発明は、上記実状に鑑みてなされたものであり、遊技制御の負担を軽減しつつ電力供給の瞬停から適切に復旧可能なスロットマシンの提供を目的とする。
【課題を解決するための手段】
【０００７】
（１）上記目的を達成するため、本願発明に係るスロットマシンは、各々が識別可能な複数種類の識別情報を変動表示可能な可変表示部を備え、前記可変表示部を変動表示した後、前記可変表示部の変動表示を停止することで表示結果を導出し、該表示結果に応じて入賞が発生可能なスロットマシン（例えばスロットマシン１など）において、制御プログラムに従って、初期設定処理（例えばセキュリティチェック処理やステップＳａ１〜Ｓａ３３、Ｓａ３５〜Ｓａ４１の処理など）を実行した後、スロットマシンの制御（例えば遊技制御処理となるステップＳｄ１〜Ｓｄ７の処理など）を実行する制御手段（例えばＣＰＵ５０５を含む遊技制御用マイクロコンピュータ１００など）と、スロットマシンで用いられる電源の状態を監視して、スロットマシンへの電力の供給停止にかかわる検出条件が成立したこと（例えば＋３０Ｖ電源の電圧値が＋２２Ｖまで低下したことなど）に基づいて検出信号（例えば電源断信号など）を出力する電源監視手段（例えば電源監視回路３０３など）と、予め定められた監視時間（例えばタイムアウト時間）を計測するための計時手段（例えば１６ビットアップカウンタ５３６）を有し、該計時手段により該監視時間が経過したことが計測されたときに、前記制御手段をリセットするリセット手段（例えばリセットコントローラ５０４Ａやウォッチドッグタイマ５２０など）とを備え、前記リセット手段は、動作設定用の記憶領域（例えばＷＤＴスタートレジスタＷＳＴ）に前記リセット手段の動作を有効化する旨を示す有効化データ（例えばＷＤＴスタートデータ）が前記制御手段により書き込まれることにより動作が有効化され（例えばＷＤＴスタートレジスタＷＳＴに「ＣＣＨ」を書き込むことでウォッチドッグタイマ５２０による監視時間の計測を開始させてタイムアウトの発生によるリセット動作が有効化され）、動作が有効化されているときに、初期化用の記憶領域（例えばＷＤＴクリアレジスタＷＣＬ）に前記計時手段を初期化する旨を示す初期化データ（例えばＷＤＴクリアデータ）が前記制御手段により書き込まれることにより前記計時手段を初期化し（例えばＷＤＴクリアレジスタＷＣＬに「５５Ｈ」が書き込まれた後に「ＡＡＨ」がＣＰＵ５０５によって書き込まれることでＷＤＴ制御回路５３３に１６ビットアップカウンタ５３６のカウント値をクリアさせてカウント動作をリスタートし）、前記制御手段は、前記電源監視手段からの検出信号に応じて電力供給停止時処理（例えばステップＳ５２のメイン側電源断処理など）を実行した後にスロットマシンの制御を実行しない待機状態（例えばステップＳｍ２３の処理を実行した後に無限ループの処理を実行する状態など）に移行させる電断時制御手段（例えばステップＳｍ２３の処理を実行する遊技制御用マイクロコンピュータ１００のＣＰＵ５０５など）を含み、前記電断時制御手段は、前記待機状態への移行にあたり前記リセット手段の前記動作設定用の記憶領域に前記有効化データを書き込み、前記待機状態に移行させた後は前記計時手段の初期化が実行されないように前記リセット手段の前記初期化用の記憶領域に前記初期化データを書き込まない（例えば無限ループの処理を実行したときにはＷＤＴスタートレジスタＷＳＴにＷＤＴスタートデータを書き込んで起動したウォッチドッグタイマ５２０のタイムアウト時間の経過によるリセット動作が有効化される一方でＷＤＴクリアレジスタＷＣＬにＷＤＴクリアデータを書き込まない）。
このような構成によれば、リセット手段の動作を有効化または無効化する設定を行うところ、スロットマシンへの電力の供給停止にかかわる検出信号に応じた電力供給停止時処理の実行に伴いリセット手段の動作が有効化される。これにより、スロットマシンの制御の実行中には定期的なリセット手段の初期化が不要になり、スロットマシンの制御を実行するための制御負担を軽減しつつ、電力供給の瞬停から適切に復旧することができる。
【０００８】
（２）上記（１）のスロットマシンにおいて、前記計時手段により計測される前記監視時間は、予め定められた複数種類のうちから設定可能であり（例えばリセット設定ＫＲＥＳのビット番号［５−４］およびビット番号［３−０］の値により図１０（Ｂ）に示すようなタイムアウト時間を設定する部分など）、前記制御手段は、前記電力供給停止時処理の実行に伴い前記リセット手段の動作を有効化するときに、前記監視時間として設定可能な最長時間を設定してもよい（例えばステップＳｍ２３の処理が実行されたときに、リセット設定ＫＲＥＳに基づきＷＤＴ制御回路５３３がタイムアウト時間を２２５×ＴＳＣＬＫ×１５に設定する部分など）。
このような構成においては、リセット手段により計測される監視時間として設定可能な最長時間が設定されることで、電源スイッチの切断等により電力供給が所定期間にわたり完全に停止するときに、誤ってリセットされてしまうことを防止できる。
【０００９】
（３）上記（１）または（２）のスロットマシンにおいて、前記制御手段は、前記電力供給停止時処理を実行した後に前記監視時間が経過して前記リセット手段によりリセットされたことを示すリセット情報を記憶するリセット情報記憶手段（例えば内部情報データＣＩＦを記憶する内蔵レジスタのビット番号［１］など）と、前記初期設定処理が実行されるときに、前記リセット情報記憶手段に前記リセット情報が記憶されているか否かを判定するリセット情報判定手段（例えばステップＳ７２の処理を実行するＣＰＵ５０５など）と、前記リセット情報判定手段により記憶されていると判定されたときに、前記リセット手段の動作を無効化するリセット後起動制御手段（例えばステップＳ７４の処理を実行するＣＰＵ５０５など）とを含んでもよい。
このような構成においては、初期設定処理が実行されるときにリセット情報が記憶されていればリセット手段の動作を無効化することで、不用意にリセットされてしまうことを防止できる。
【００１０】
（４）上記（１）〜（３）のいずれかのスロットマシンにおいて、前記制御手段は、前記初期化用の記憶領域に値が異なる複数のデータを所定順序で書き込むことにより、前記リセット手段が計測した時間を初期化してもよい（例えばステップＳａ３５Ｃの処理にて、ＷＤＴクリアレジスタＷＣＬに「５５Ｈ」と「ＡＡＨ」を順次に書き込む部分など）。
このような構成においては、値が異なる複数のデータを所定順序で書き込まなければリセット手段が計測した時間が初期化されないので、電力供給が瞬停するときのノイズ等により誤って計測時間が初期化されてしまうことを防止できる。
【図面の簡単な説明】
【００１１】
【図１】本発明を適用したスロットマシンの正面図である。
【図２】スロットマシンの内部構造図である。
【図３】リールの図柄配列を示す図である。
【図４】スロットマシンの構成を示すブロック図である。
【図５】電源基板の構成例を示すブロック図である。
【図６】リセット信号および電源断信号の状態を模式的に示すタイミング図である。
【図７】遊技制御用マイクロコンピュータの構成例を示すブロック図である。
【図８】遊技制御用マイクロコンピュータにおけるアドレスマップの一例を示す図である。
【図９】プログラム管理エリアおよび内蔵レジスタエリアの主要部分を例示する図である。
【図１０】ヘッダおよびリセット設定における設定内容の一例を示す図である。
【図１１】割込み初期設定、１６ビット乱数初期設定第１、１６ビット乱数初期設定第３における設定内容の一例を示す図である。
【図１２】セキュリティ時間設定における設定内容の一例を示す図である。
【図１３】内部情報レジスタの構成例等を示す図である。
【図１４】ウォッチドッグタイマの構成例を示すブロック図である。
【図１５】ＷＤＴスタートレジスタの構成例等を示す図である。
【図１６】ＷＤＴクリアレジスタの構成例等を示す図である。
【図１７】乱数回路の構成例を示すブロック図である。
【図１８】乱数列変更レジスタの構成例等を示す図である。
【図１９】乱数列更新規則をソフトウェアで変更する動作例を示す図である。
【図２０】乱数列更新規則を自動で変更する動作例を示す図である。
【図２１】乱数最大値設定レジスタの構成例を示す図である。
【図２２】ハードラッチ選択レジスタの構成例等を示す図である。
【図２３】乱数ハードラッチフラグレジスタの構成例等を示す図である。
【図２４】ハードラッチ割込み制御レジスタの構成例等を示す図である。
【図２５】乱数ソフトラッチレジスタの構成例等を示す図である。
【図２６】乱数ソフトラッチフラグレジスタの構成例等を示す図である。
【図２７】（ａ）は、メイン制御部とＳＲＡＭとの接続を示すブロック図であり、（ｂ）は、読込時の信号の出力状況を示すタイミングチャートであり、（ｃ）は、書込時の信号の出力状況を示すタイミングチャートである。
【図２８】遊技制御プログラムの説明図である。
【図２９】セキュリティチェック処理の一例を示すフローチャートである。
【図３０】メイン制御部が起動時に実行する起動処理（メイン）の制御内容を示すフローチャートである。
【図３１】メイン制御部が起動時に実行する起動処理（メイン）の制御内容を示すフローチャートである。
【図３２】メイン制御部が起動時に実行する起動処理（メイン）の制御内容を示すフローチャートである。
【図３３】メイン制御部が実行する遊技制御処理の制御内容を示すフローチャートである。
【図３４】メイン制御部が一定間隔毎に実行するタイマ割込処理（メイン）の制御内容を示すフローチャートである。
【図３５】メイン制御部が一定間隔毎に実行するタイマ割込処理（メイン）の制御内容を示すフローチャートである。
【図３６】メイン制御部がタイマ割込処理（メイン）において電断を検出したことに応じて実行する電断処理（メイン）の制御内容を示すフローチャートである。
【図３７】ウォッチドッグタイマを設定する処理の一例を示すフローチャートである。
【図３８】遊技制御プログラムにおけるプログラムモジュールごとのバックアップデータを格納するときバックアップＲＡＭに格納したときのデータの格納状態を示す説明図である。
【図３９】小役の種類、図柄組み合わせ、及び入賞時のメダルの払出枚数について説明するための図である。
【図４０】リプレイの種類、図柄組み合わせ、及び小役に関連する技術事項について説明するための図である。
【図４１】移行出目の図柄組み合わせについて説明するための図である。
【図４２】遊技状態及びＲＴの遷移を説明するための図である。
【図４３】ＡＴにおけるナビ対象役について説明するための図である。
【図４４】複数の再遊技役当選時のリール制御を説明するための図である。
【図４５】複数の小役当選時のリール制御を説明するための図である。
【図４６】乱数回路における動作例を示すタイミングチャートである。
【図４７】ハードラッチ乱数値レジスタの読出動作例を示すタイミングチャートである。
【図４８】遊技制御の実行中に電源電圧が低下した場合の動作例を示すタイミングチャートである。
【図４９】電源投入時に電源電圧の安定が確認できない場合の動作例を示すタイミングチャートである。
【図５０】ワークＲＡＭとバックラップＲＡＭとの（Ａ）バス幅が一致している場合、（Ｂ）バス幅が異なる場合、にバックアップデータをバックアップＲＡＭに格納したときの格納状態を示す説明図である。
【図５１】ワークＲＡＭとバックラップＲＡＭとのバス幅が異なる場合に、（Ａ）データ変換を行わない場合、（Ｂ）データ変換を行った場合との相違を示す説明図である。
【図５２】ワークＲＡＭとバックラップＲＡＭとのバス幅が異なる場合に、データ変換を行ったときのバックアップＲＡＭでのデータの格納状態を示す説明図である。
【発明を実施するための形態】
【００１２】
本発明の実施例を以下に説明する。
【００１３】
本発明が適用されたスロットマシンの実施例を図面を用いて説明すると、本実施例のスロットマシン１は、前面が開口する筐体１ａと、この筐体１ａの側端に回動自在に枢支された前面扉１ｂと、から構成されている。
【００１４】
本実施例のスロットマシン１の筐体１ａの内部には、図２に示すように、外周に複数種の図柄が配列されたリール２Ｌ、２Ｃ、２Ｒ（以下、左リール、中リール、右リール）が水平方向に並設されており、図１に示すように、これらリール２Ｌ、２Ｃ、２Ｒに配列された図柄のうち連続する３つの図柄が前面扉に設けられた透視窓３から見えるように配置されている。
【００１５】
リール２Ｌ、２Ｃ、２Ｒの外周部には、図３に示すように、それぞれ「黒７」、「網７（図中網掛け７）」、「白７」、「ＢＡＲ」、「リプレイ」、「プラム」、「スイカ」、「チェリー」、「ベル」、「オレンジ」といった互いに識別可能な複数種類の図柄が所定の順序で、それぞれ２１個ずつ描かれている。リール２Ｌ、２Ｃ、２Ｒの外周部に描かれた図柄は、前面扉１ｂのリールパネル１ｃ略中央に設けられた透視窓３において各々上中下三段に表示される。
【００１６】
各リール２Ｌ、２Ｃ、２Ｒは、各々対応して設けられリールモータ３２Ｌ、３２Ｃ、３２Ｒ（図４参照）によって回転させることで、各リール２Ｌ、２Ｃ、２Ｒの図柄が透視窓３に連続的に変化しつつ表示されるとともに、各リール２Ｌ、２Ｃ、２Ｒの回転を停止させることで、透視窓３に３つの連続する図柄が表示結果として導出表示されるようになっている。
【００１７】
リール２Ｌ、２Ｃ、２Ｒの内側には、リール２Ｌ、２Ｃ、２Ｒそれぞれに対して、基準位置を検出するリールセンサ３３Ｌ、３３Ｃ、３３Ｒと、リール２Ｌ、２Ｃ、２Ｒを背面から照射するリールＬＥＤ５５と、が設けられている。また、リールＬＥＤ５５は、リール２Ｌ、２Ｃ、２Ｒの連続する３つの図柄に対応する１２のＬＥＤからなり、各図柄をそれぞれ独立して照射可能とされている。
【００１８】
前面扉１ｂにおける各リール２Ｌ，２Ｃ，２Ｒに対応する位置には、リール２Ｌ，２Ｃ，２Ｒを前面側から透視可能とする横長長方形状の透視窓３が設けられており、該透視窓３を介して遊技者側から各リール２Ｌ，２Ｃ，２Ｒが視認できるようになっている。
【００１９】
前面扉１ｂには、メダルを投入可能なメダル投入部４、メダルが払い出されるメダル払出口９、クレジット（遊技者所有の遊技用価値として記憶されているメダル数）を用いて、その範囲内において遊技状態に応じて定められた規定数の賭数のうち最大の賭数（本実施例ではいずれの遊技状態においても３）を設定する際に操作されるＭＡＸＢＥＴスイッチ６、クレジットとして記憶されているメダル及び賭数の設定に用いたメダルを精算する（クレジット及び賭数の設定に用いた分のメダルを返却させる）際に操作される精算スイッチ１０、ゲームを開始する際に操作されるスタートスイッチ７、リール２Ｌ、２Ｃ、２Ｒの回転を各々停止する際に操作されるストップスイッチ８Ｌ、８Ｃ、８Ｒ、演出に用いるための演出用スイッチ５６が遊技者により操作可能にそれぞれ設けられている。
【００２０】
尚、本実施例では、回転を開始した３つのリール２Ｌ、２Ｃ、２Ｒのうち、最初に停止するリールを第１停止リールと称し、また、その停止を第１停止と称する。同様に、２番目に停止するリールを第２停止リールと称し、また、その停止を第２停止と称し、３番目に停止するリールを第３停止リールと称し、また、その停止を第３停止あるいは最終停止と称する。
【００２１】
また、前面扉１ｂには、クレジットとして記憶されているメダル枚数が表示されるクレジット表示器１１、入賞の発生により払い出されたメダル枚数やエラー発生時にその内容を示すエラーコード等が表示される遊技補助表示器１２、賭数が１設定されている旨を点灯により報知する１ＢＥＴＬＥＤ１４、賭数が２設定されている旨を点灯により報知する２ＢＥＴＬＥＤ１５、賭数が３設定されている旨を点灯により報知する３ＢＥＴＬＥＤ１６、メダルの投入が可能な状態を点灯により報知する投入要求ＬＥＤ１７、スタートスイッチ７の操作によるゲームのスタート操作が有効である旨を点灯により報知するスタート有効ＬＥＤ１８、ウェイト（前回のゲーム開始から一定期間経過していないためにリールの回転開始を待機している状態）中である旨を点灯により報知するウェイト中ＬＥＤ１９、後述するリプレイゲーム中である旨を点灯により報知するリプレイ中ＬＥＤ２０が設けられた遊技用表示部１３が設けられている。
【００２２】
ＭＡＸＢＥＴスイッチ６の内部には、ＭＡＸＢＥＴスイッチ６の操作による賭数の設定操作が有効である旨を点灯により報知するＢＥＴスイッチ有効ＬＥＤ２１（図４参照）が設けられており、ストップスイッチ８Ｌ、８Ｃ、８Ｒの内部には、該当するストップスイッチ８Ｌ、８Ｃ、８Ｒによるリールの停止操作が有効である旨を点灯により報知する左、中、右停止有効ＬＥＤ２２Ｌ、２２Ｃ、２２Ｒ（図４参照）がそれぞれ設けられている。
【００２３】
また、前面扉１ｂにおけるストップスイッチ８Ｌ、８Ｃ、８Ｒの下方には、スロットマシン１のタイトルや配当表などが印刷された下部パネル１ｄが設けられている。
【００２４】
前面扉１ｂの内側には、所定のキー操作により後述するエラー状態及び後述する打止状態を解除するためのリセット操作を検出するリセットスイッチ２３、後述する設定値の変更中や設定値の確認中にその時点の設定値が表示される設定値表示器２４、後述のＢＢ終了時に打止状態（リセット操作がなされるまでゲームの進行が規制される状態）に制御する打止機能の有効／無効を選択するための打止スイッチ３６ａ、後述のＢＢ終了時に自動精算処理（クレジットとして記憶されているメダルを遊技者の操作によらず精算（返却）する処理）に制御する自動精算機能の有効／無効を選択するための自動精算スイッチ３６ｂ、メダル投入部４から投入されたメダルの流路を、筐体１ａ内部に設けられた後述のホッパータンク３４ａ（図２参照）側またはメダル払出口９側のいずれか一方に選択的に切り替えるための流路切替ソレノイド３０、メダル投入部４から投入され、ホッパータンク３４ａ側に流下したメダルを検出する投入メダルセンサ３１を有するメダルセレクタ（図示略）、前面扉１ｂの開放状態を検出するドア開放検出スイッチ２５（図４参照）が設けられている。
【００２５】
筐体１ａ内部には、図２に示すように、前述したリール２Ｌ、２Ｃ、２Ｒ、リールモータ３２Ｌ、３２Ｃ、３２Ｒ、各リール２Ｌ、２Ｃ、２Ｒのリール基準位置をそれぞれ検出可能なリールセンサ３３Ｌ、３３Ｃ、３３Ｒ（図４参照）からなるリールユニット２、外部出力信号を出力するための外部出力基板１０００、メダル投入部４から投入されたメダルを貯留するホッパータンク３４ａ、ホッパータンク３４ａに貯留されたメダルをメダル払出口９より払い出すためのホッパーモータ３４ｂ、ホッパーモータ３４ｂの駆動により払い出されたメダルを検出する払出センサ３４ｃからなるホッパーユニット３４、電源ボックス１００が設けられている。
【００２６】
ホッパーユニット３４の側部には、ホッパータンク３４ａから溢れたメダルが貯留されるオーバーフロータンク３５が設けられている。オーバーフロータンク３５の内部には、貯留された所定量のメダルを検出可能な高さに設けられた左右に離間する一対の導電部材からなる満タンセンサ３５ａが設けられており、導電部材がオーバーフロータンク３５内に貯留されたメダルを介して接触することにより導電したときに内部に貯留されたメダル貯留量が所定量以上となったこと、すなわちオーバーフロータンクが満タン状態となったことを検出できるようになっている。
【００２７】
電源ボックス１００の前面には、設定変更状態または設定確認状態に切り替えるための設定キースイッチ３７、通常時においてはエラー状態や打止状態を解除するためのリセットスイッチとして機能し、設定変更状態においては後述する内部抽選の当選確率（出玉率）の設定値を変更するための設定スイッチとして機能するリセット／設定スイッチ３８、電源をｏｎ／ｏｆｆする際に操作される電源スイッチ３９が設けられている。
【００２８】
本実施例のスロットマシン１においてゲームを行う場合には、まず、メダルをメダル投入部４から投入するか、あるいはクレジットを使用して賭数を設定する。クレジットを使用するにはＭＡＸＢＥＴスイッチ６を操作すれば良い。遊技状態に応じて定められた規定数の賭数が設定されると、入賞ラインＬＮ（図１参照）が有効となり、スタートスイッチ７の操作が有効な状態、すなわち、ゲームが開始可能な状態となる。本実施例では、規定数の賭数として遊技状態に関わらず３枚が定められて規定数の賭数が設定されると入賞ラインＬＮが有効となる。尚、遊技状態に対応する規定数のうち最大数を超えてメダルが投入された場合には、その分はクレジットに加算される。
【００２９】
入賞ラインとは、各リール２Ｌ、２Ｃ、２Ｒの透視窓３に表示された図柄の組み合わせが入賞図柄の組み合わせであるかを判定するために設定されるラインである。本実施例では、図１に示すように、リール２Ｌの中段、リール２Ｃの中段、リール２Ｒの中段、すなわち中段に水平方向に並んだ図柄に跨って設定された入賞ラインＬＮのみが入賞ラインとして定められている。尚、本実施例では、１本の入賞ラインのみを適用しているが、複数の入賞ラインを適用しても良い。
【００３０】
また、本実施例では、入賞ラインＬＮに入賞を構成する図柄の組み合わせが揃ったことを認識しやすくするために、入賞ラインＬＮとは別に、無効ラインＬＭ１〜４を設定している。無効ラインＬＭ１〜４は、これら無効ラインＬＭ１〜４に揃った図柄の組み合わせによって入賞が判定されるものではなく、入賞ラインＬＮに特定の入賞を構成する図柄の組み合わせが揃った際に、無効ラインＬＭ１〜４のいずれかに入賞ラインＬＮに揃った場合に入賞となる図柄の組み合わせ（例えば、ベル−ベル−ベル）が揃う構成とすることで、入賞ラインＬＮに特定の入賞を構成する図柄の組み合わせが揃ったことを認識しやすくするものである。本実施例では、図１に示すように、リール２Ｌの上段、リール２Ｃの上段、リール２Ｒの上段、すなわち上段に水平方向に並んだ図柄に跨って設定された無効ラインＬＭ１、リール２Ｌの下段、リール２Ｃの下段、リール２Ｒの下段、すなわち下段に水平方向に並んだ図柄に跨って設定された無効ラインＬＭ２、リール２Ｌの上段、リール２Ｃの中段、リール２Ｒの下段、すなわち右下がりに並んだ図柄に跨って設定された無効ラインＬＭ３、リール２Ｌの下段、リール２Ｃの中段、リール２Ｒの上段、すなわち右上がりに並んだ図柄に跨って設定された無効ラインＬＭ４の４種類が無効ラインＬＭとして定められている。
【００３１】
ゲームが開始可能な状態でスタートスイッチ７を操作すると、各リール２Ｌ、２Ｃ、２Ｒが回転し、各リール２Ｌ、２Ｃ、２Ｒの図柄が連続的に変動する。この状態でいずれかのストップスイッチ８Ｌ、８Ｃ、８Ｒを操作すると、対応するリール２Ｌ、２Ｃ、２Ｒの回転が停止し、透視窓３に表示結果が導出表示される。
【００３２】
そして全てのリール２Ｌ、２Ｃ、２Ｒが停止されることで１ゲームが終了し、入賞ラインＬＮに予め定められた図柄の組み合わせ（以下、役とも呼ぶ）が各リール２Ｌ、２Ｃ、２Ｒの表示結果として停止した場合には入賞が発生し、その入賞に応じて定められた枚数のメダルが遊技者に対して付与され、クレジットに加算される。また、クレジットが上限数（本実施例では５０）に達した場合には、メダルが直接メダル払出口９（図１参照）から払い出されるようになっている。また、入賞ラインＬＮに、遊技状態の移行を伴う図柄の組み合わせが各リール２Ｌ、２Ｃ、２Ｒの表示結果として停止した場合には図柄の組み合わせに応じた遊技状態に移行するようになっている。
【００３３】
また、本実施例におけるスロットマシン１にあっては、ゲームが開始されて各リール２Ｌ、２Ｃ、２Ｒが回転して図柄の変動が開始した後、いずれかのストップスイッチ８Ｌ、８Ｃ、８Ｒが操作されたときに、当該ストップスイッチ８Ｌ、８Ｃ、８Ｒに対応するリールの回転が停止して図柄が停止表示される。ストップスイッチ８Ｌ、８Ｃ、８Ｒの操作から対応するリール２Ｌ、２Ｃ、２Ｒの回転を停止するまでの最大停止遅延時間は１９０ｍｓ（ミリ秒）である。
【００３４】
リール２Ｌ、２Ｃ、２Ｒは、１分間に８０回転し、８０×２１（１リール当たりの図柄コマ数）＝１６８０コマ分の図柄を変動させるので、１９０ｍｓの間では最大で４コマの図柄を引き込むことができることとなる。つまり、停止図柄として選択可能なのは、ストップスイッチ８Ｌ、８Ｃ、８Ｒが操作されたときに表示されている図柄と、そこから４コマ先までにある図柄、合計５コマ分の図柄である。
【００３５】
このため、例えば、ストップスイッチ８Ｌ、８Ｃ、８Ｒのいずれかが操作されたときに当該ストップスイッチに対応するリールの下段に表示されている図柄を基準とした場合、当該図柄から４コマ先までの図柄を下段に表示させることができるため、リール２Ｌ、２Ｃ、２Ｒ各々において、ストップスイッチ８Ｌ、８Ｒのうちいずれかが操作されたときに当該ストップスイッチに対応するリールの中段に表示されている図柄を含めて５コマ以内に配置されている図柄を入賞ラインＬＮに表示させることができる。
【００３６】
図４は、スロットマシン１の構成を示すブロック図である。スロットマシン１には、図４に示すように、遊技制御基板４０、演出制御基板９０、電源基板１０１が設けられており、遊技制御基板４０によって遊技状態が制御され、演出制御基板９０によって遊技状態に応じた演出が制御され、電源基板１０１によってスロットマシン１を構成する電気部品の駆動電源が生成され、各部に供給される。
【００３７】
電源基板１０１には、外部からＡＣ１００Ｖの電源が供給されるとともに、このＡＣ１００Ｖの電源からスロットマシン１を構成する電気部品の駆動に必要な直流電圧が生成され、遊技制御基板４０及び遊技制御基板４０を介して接続された演出制御基板９０に供給されるようになっている。また、後述する遊技制御用マイクロコンピュータ１００からサブ制御部９１へのコマンド伝送ラインと、遊技制御基板４０から演出制御基板９０に対して電源を供給する電源供給ラインと、が一系統のケーブル及びコネクタを介して接続されており、これらケーブルと各基板とを接続するコネクタ同士が全て接続されることで演出制御基板９０側の各部が動作可能となり、かつ遊技制御用マイクロコンピュータ１００からのコマンドを受信可能な状態となる。このため、遊技制御用マイクロコンピュータ１００からコマンドを伝送するコマンド伝送ラインが演出制御基板９０に接続されている状態でなければ、演出制御基板９０側に電源が供給されず、演出制御基板９０側のみが動作してしまうことがない。
【００３８】
また、電源基板１０１には、前述したホッパーモータ３４ｂ、払出センサ３４ｃ、満タンセンサ３５ａ、設定キースイッチ３７、リセット／設定スイッチ３８、電源スイッチ３９が接続されている。
【００３９】
例えば、電源基板１０１では、図５に示すように、ＡＣ２４Ｖ、ＶＬＰ（直流＋２４Ｖ）、ＶＳＬ（直流＋３０Ｖ）、ＶＤＤ（直流＋１２Ｖ）、ＶＣＣ（直流＋５Ｖ）およびＶＢＢ（直流＋５Ｖ）を生成する。電源基板１０１は、例えば図５に示すように、変圧回路３０１と、直流電圧生成回路３０２と、電源監視回路３０３と、クリアスイッチ３０４とを備えて構成されている。また、電源基板１０１の外部には、スロットマシン１内の各制御基板および機構部品への電力供給を実行または遮断するための電源スイッチ３９が設けられている。あるいは、スロットマシン１において、電源スイッチ３９は、電源基板１０１に設けられていてもよい。加えて、電源基板１０１には、バックアップ電源となるコンデンサが設けられていてもよい。このコンデンサは、例えばＶＢＢ（直流＋５Ｖ）の電源ラインから充電されるものであればよい。
【００４０】
変圧回路３０１は、例えば商用電源が入力側（一次側）に印加されるトランスや、トランスの入力側に設けられた過電圧保護回路としてのバリスタなどを備えて構成されたものであればよい。ここで、変圧回路３０１が備えるトランスは、商用電源と電源基板１０１の内部とを電気的に絶縁するためのものであればよい。変圧回路３０１は、その出力電圧として、ＡＣ２４Ｖを生成する。直流電圧生成回路３０２は、例えばＡＣ２４Ｖを整流素子で整流昇圧することによってＶＳＬを生成する整流平滑回路を含んでいる。ＶＳＬは、ソレノイド駆動用の電源電圧として用いられる。また、直流電圧生成回路３０２は、例えばＡＣ２４Ｖを整流素子で整流することによってＶＬＰを生成する整流回路を含んでいる。ＶＬＰは、クレジット表示器１１、遊技補助表示器１２、ペイアウト表示器１３、１〜３ＢＥＴＬＥＤ１４〜１６、投入要求ＬＥＤ１７、スタート有効ＬＥＤ１８、ウェイト中ＬＥＤ１９、リプレイ中ＬＥＤ２０、ＢＥＴスイッチ有効ＬＥＤ２１、左、中、右停止有効ＬＥＤ２２Ｌ、２２Ｃ、２２Ｒ、設定値表示器２４等の発光体を点灯するための電源電圧として用いられる。加えて、直流電圧生成回路３０２は、例えばＶＳＬに基づいてＶＤＤおよびＶＣＣを生成するＤＣ−ＤＣコンバータを含んでいる。このＤＣ−ＤＣコンバータは、例えば１つ又は複数のスイッチングレギュレータと、そのスイッチングレギュレータの入力側に接続された比較的大容量のコンデンサとを含み、外部からスロットマシン１への電力供給が停止したときに、ＶＳＬ、ＶＤＤ、ＶＢＢ等の直流電圧が比較的緩やかに低下するように構成されたものであればよい。ＶＤＤは、例えば図４に示すＭＡＸＢＥＴスイッチ６、スタートスイッチ７、ストップスイッチ８Ｌ、８Ｃ、８Ｒ、精算スイッチ１０、リセットスイッチ２３、打止スイッチ３６ａ、自動精算スイッチ３６ｂ、投入メダルセンサ３１、ドア開放検出スイッチ２５、リールセンサ３３Ｌ、３３Ｃ、３３Ｒ、払出センサ３４ｃ、満タンセンサ３５ａ、設定キースイッチ３７、リセット／設定スイッチ３８といった、各種スイッチに供給され、これらのスイッチを作動させるために用いられる。
【００４１】
図５に示すように、ＶＬＰ、ＶＳＬ、ＶＤＤ、ＶＣＣおよびＶＢＢは、例えば所定のコネクタや電源ラインを介して、遊技制御基板４０へと伝送される。なお、演出制御基板９０には、遊技制御基板４０を経由して各電圧が供給されればよい。あるいは、演出制御基板９０には、遊技制御基板４０を経由することなく、電源基板１０から直接に各電圧が供給されてもよい。
【００４２】
電源監視回路３０３は、例えば停電監視リセットモジュールＩＣを用いて構成され、電源断信号を出力する電源監視手段を実現する回路である。例えば、電源監視回路３０３は、スロットマシン１において用いられる所定電源電圧（一例としてＶＳＬ）が所定値（一例として＋２２Ｖ）を超えると、オフ状態（ハイレベル）の電源断信号を出力する。その一方で、所定電源電圧が所定値以下になった期間が、予め決められている時間（一例として５６ミリ秒）以上継続したときに、オン状態（ローレベル）の電源断信号を出力する。あるいは、電源監視回路３０３は、スロットマシン１において用いられる所定電源電圧が所定値以下になると、直ちにオン状態の電源断信号を出力するようにしてもよい。電源断信号は、例えばローレベルとなることでオン状態となりハイレベルとなることでオフ状態となる負論理の電気信号であればよい。電源監視回路３０３から出力された電源断信号は、例えば電源基板１０１に搭載された出力ドライバ回路によって増幅された後に所定のコネクタや信号ラインを介して、遊技制御基板４０へと伝送される。
【００４３】
電源断信号を出力するための監視対象となる所定電源電圧は、例えば電源電圧ＶＳＬといった、スイッチ作動用の電源電圧ＶＤＤにおける規定値（一例として＋１２Ｖ）よりも高い電圧であることが好ましい。これにより、スイッチ作動用の電源電圧ＶＤＤが低下して各種スイッチ（例えばＭＡＸＢＥＴスイッチ６、スタートスイッチ７、ストップスイッチ８Ｌ、８Ｃ、８Ｒ、精算スイッチ１０、リセットスイッチ２３、打止スイッチ３６ａ、自動精算スイッチ３６ｂ、投入メダルセンサ３１、ドア開放検出スイッチ２５、リールセンサ３３Ｌ、３３Ｃ、３３Ｒ、払出センサ３４ｃ、満タンセンサ３５ａ、設定キースイッチ３７、リセット／設定スイッチ３８など）の動作状態が不安定となる以前に、電源断信号を出力する（オン状態にする）ことで、各種スイッチによる誤検出に基づく遊技制御の進行を防止できる。すなわち、スイッチ作動用の電源電圧ＶＤＤが低下すると負論理（ローレベルでオン状態となる）のスイッチ出力がオン状態となるものの、電源電圧ＶＤＤよりも早く低下する電源電圧ＶＳＬを監視して電力供給の停止を認識することで、スイッチ出力がオン状態となる以前に、電源復旧待ちの状態となってスイッチ出力を検出しない状態となることができる。
【００４４】
電源電圧ＶＳＬなどを遊技制御基板４０へと伝送する電源ラインには、大容量のコンデンサが接続されていてもよい。これに対して、電源電圧ＶＳＬを監視対象とするために電源監視回路３０３へと伝送する入力ラインには、このようなコンデンサが接続されていなくてもよい。この場合、監視対象となる電源監視回路３０３への入力ラインにおける電源電圧ＶＳＬは、コンデンサが接続された電源ラインにおける電源電圧ＶＳＬより早く低下する。すなわち、監視対象の電源電圧ＶＳＬが低下し始めた後でも、所定期間は、ソレノイドやモータなどに供給される電源ラインにおける電源電圧ＶＳＬの供給状態が維持される。したがって、監視対象となる電源電圧ＶＳＬが低下し始める場合でも、所定期間は、ソレノイドやモータなどを駆動可能な状態とすることができる。また、電源ラインにおける電源電圧ＶＳＬが低下し始める前に、電力供給の停止を認識することができる。
【００４５】
なお、ソレノイド駆動用の電源電圧ＶＳＬに代えて、例えば発光体点灯用の電源電圧ＶＬＰといった、スイッチ作動用の電源電圧ＶＤＤにおける規定値よりも高い任意の電源電圧を監視対象として、電源断信号を出力するようにしてもよい。また、外部からスロットマシン１に供給される電力の供給停止を検出するための条件としては、スロットマシン１において用いられる所定電源電圧が所定値以下になったことに限られず、外部からの電力が途絶えたことを検出できる任意の条件であればよい。例えば、ＡＣ２４Ｖ等の交流波そのものを監視して交流波が途絶えたことを検出条件としてもよいし、交流波をデジタル化した信号を監視して、デジタル信号が平坦になったことをもって交流波が途絶えたことの検出条件としてもよい。
【００４６】
電源監視回路３０３は、例えば所定電源電圧（一例としてＶＣＣ）が所定値（一例として＋４．５Ｖ）以下になったときに、リセット信号を出力してもよい。リセット信号は、例えばローレベルとなることでオン状態となる電気信号であればよい。電源監視回路３０３から出力されたリセット信号は、例えば電源基板１０１に搭載された出力ドライバ回路によって増幅された後に所定のコネクタや信号ラインを介して、遊技制御基板４０へと伝送される。演出制御基板９０には、遊技制御基板４０を経由してリセット信号が伝送されればよい。あるいは、演出制御基板９０に対しても、遊技制御基板４０を経由せずにリセット信号が直接に伝送されるようにしてもよい。さらに、リセット信号を出力する回路は、電源監視回路３０３とは別個に設けられたウォッチドッグタイマ内蔵ＩＣ、あるいはシステムリセットＩＣなどを用いて構成されてもよい。
【００４７】
スロットマシン１への電力供給が停止するときには、電源監視回路３０３が、電源断信号を出力（ローレベルに設定）してから所定期間が経過したときに、リセット信号を出力（ローレベルに設定）する。ここでの所定期間は、例えば図４に示す遊技制御基板４０に搭載されている遊技制御用マイクロコンピュータ１００が、所定の電源断処理を実行するのに十分な時間であればよい。すなわち、電源監視回路３０３は、給電中信号としての電源断信号を出力した後、遊技制御用マイクロコンピュータ１００が所定の電源断処理を実行完了してから、動作停止信号としてのリセット信号を出力（ローレベルに設定）する。電源監視回路３０３から出力されたリセット信号を受信した遊技制御用マイクロコンピュータ１００は、動作停止状態となり、各種の制御処理の実行が停止される。また、スロットマシン１への電力供給が開始され、例えば所定電源電圧（一例としてＶＣＣ）が所定値（一例として＋４．５Ｖ）を超えたときに、電源監視回路３０３はリセット信号の出力を停止（ハイレベルに設定）する。
【００４８】
図６は、スロットマシン１への電力供給が開始されたときと、電力供給が停止するときにおける、ＡＣ２４Ｖ、ＶＳＬ、ＶＣＣ、リセット信号および電源断信号の状態を、模式的に示すタイミング図である。図６に示すように、スロットマシン１への電力供給が開始されたときに、ＶＳＬおよびＶＣＣは徐々に規定値（直流＋３０Ｖおよび直流＋５Ｖ）に達する。このとき、ＶＣＣが第１の所定値（例えば＋４．５Ｖ）を超えると、電源監視回路３０３はリセット信号の出力を停止（ハイレベルに設定）してオフ状態とする。また、ＶＳＬが第２の所定値（例えば＋２２Ｖ）を超えると、電源監視回路３０３は電源断信号の出力を停止（ハイレベルに設定）してオフ状態とする。他方、スロットマシン１への電力供給が停止するときに、ＶＳＬおよびＶＣＣは徐々に低下する。このとき、ＶＳＬが第２の所定値（＋２２Ｖ）にまで低下すると、電源監視回路３０３は電源断信号をオン状態として出力（ローレベルに設定）する。また、ＶＣＣが第１の所定値（＋４．５Ｖ）にまで低下すると、電源監視回路３０３はリセット信号をオン状態として出力（ローレベルに設定）する。
【００４９】
図５に示す電源基板１０が備えるクリアスイッチ３０４は、例えば押しボタン構造を有し、押下などの操作に応じてクリア信号を出力する。クリア信号は、例えば押下などの操作に応じてローレベルとなることでオン状態となる電気信号であればよい。あるいは、クリア信号は、例えば押下などの操作に応じてハイレベルとなることでオン状態となる電気信号であってもよい。クリアスイッチ３０４から出力されたクリア信号は、例えば所定のコネクタや信号ラインを介して、遊技制御基板４０へと伝送される。また、クリアスイッチ３０４の操作がなされていないときには、クリア信号の出力を停止（ハイレベルあるいはローレベルに設定）する。なお、クリアスイッチ３０４は、押しボタン構造以外の他の構成（例えばスライドスイッチ構造やトグルスイッチ構造、ダイヤルスイッチ構造など）であってもよい。
【００５０】
遊技制御基板４０には、前述したＭＡＸＢＥＴスイッチ６、スタートスイッチ７、ストップスイッチ８Ｌ、８Ｃ、８Ｒ、精算スイッチ１０、リセットスイッチ２３、打止スイッチ３６ａ、自動精算スイッチ３６ｂ、投入メダルセンサ３１、ドア開放検出スイッチ２５、リールセンサ３３Ｌ、３３Ｃ、３３Ｒが接続されているとともに、電源基板１０１を介して前述した払出センサ３４ｃ、満タンセンサ３５ａ、設定キースイッチ３７、リセット／設定スイッチ３８が接続されており、これら接続されたスイッチ類の検出信号が入力されるようになっている。
【００５１】
また、遊技制御基板４０には、前述したクレジット表示器１１、遊技補助表示器１２、ペイアウト表示器１３、１〜３ＢＥＴＬＥＤ１４〜１６、投入要求ＬＥＤ１７、スタート有効ＬＥＤ１８、ウェイト中ＬＥＤ１９、リプレイ中ＬＥＤ２０、ＢＥＴスイッチ有効ＬＥＤ２１、左、中、右停止有効ＬＥＤ２２Ｌ、２２Ｃ、２２Ｒ、設定値表示器２４、流路切替ソレノイド３０、リールモータ３２Ｌ、３２Ｃ、３２Ｒが接続されているとともに、電源基板１０１を介して前述したホッパーモータ３４ｂが接続されており、これら電気部品は、遊技制御基板４０に搭載された後述の遊技制御用マイクロコンピュータ１００の制御に基づいて駆動されるようになっている。
【００５２】
遊技制御基板４０には、遊技制御用マイクロコンピュータ１００、外部メモリ（ＳＲＡＭ）５０、制御用クロック生成回路４２、乱数用クロック生成回路４３、スイッチ回路４４、モータ駆動回路４５、ソレノイド駆動回路４６、ＬＥＤ駆動回路４７が搭載されている。
【００５３】
遊技制御用マイクロコンピュータ１００は、１チップマイクロコンピュータにて構成され、ＣＰＵ５０５、ＲＯＭ５０６、ＲＡＭ５０７、Ｉ／Ｏポート４１ｄを備えている。遊技制御用マイクロコンピュータ１００は、ＲＯＭ５０６に記憶された制御プログラムを実行して、遊技の進行に関する処理を行うととともに、遊技制御基板４０に搭載された制御回路の各部を直接的または間接的に制御する。尚、この実施例では、遊技制御用マイクロコンピュータ１００は、ＳＲＡＭ５０などの外部デバイスに対して１６ビットまたは３２ビットでのバスアクセスのみ可能である。
【００５４】
ここで、制御用クロック生成回路４２は、遊技制御用マイクロコンピュータ１００の外部にて、所定周波数の発振信号となる制御用クロックＣＣＬＫを生成する。制御用クロック生成回路４２により生成された制御用クロックＣＣＬＫは、例えば図５に示すような遊技制御用マイクロコンピュータ１００の制御用外部クロック端子ＥＸＣを介してクロック回路５０２に供給される。乱数用クロック生成回路４３は、遊技制御用マイクロコンピュータ１００の外部にて、制御用クロックＣＣＬＫの発振周波数とは異なる所定周波数の発振信号となる乱数用クロックＲＣＫを生成する。乱数用クロック生成回路４３により生成された乱数用クロックＲＣＫは、例えば遊技制御用マイクロコンピュータ１００の乱数用外部クロック端子ＥＲＣを介して乱数回路５０９Ａ、５０９Ｂ（図７を参照）などに供給される。一例として、乱数用クロック生成回路４３により生成される乱数用クロックＲＣＫの発振周波数は、制御用クロック生成回路４２により生成される制御用クロックＣＣＬＫの発振周波数以下となるようにすればよい。あるいは、乱数用クロック生成回路４３により生成される乱数用クロックＲＣＫの発振周波数は、制御用クロック生成回路４２により生成される制御用クロックＣＣＬＫの発振周波数よりも高周波となるようにしてもよい。
【００５５】
スイッチ検出回路４４は、遊技制御基板４０に直接または電源基板１０１を介して接続されたスイッチ類から入力された検出信号を取り込んで遊技制御用マイクロコンピュータ１００に伝送する。モータ駆動回路４５は、遊技制御用マイクロコンピュータ１００から出力されたモータ駆動信号をリールモータ３２Ｌ、３２Ｃ、３２Ｒに伝送する。ソレノイド駆動回路４６は、遊技制御用マイクロコンピュータ１００から出力されたソレノイド駆動信号を流路切替ソレノイド３０に伝送する。ＬＥＤ駆動回路は、遊技制御用マイクロコンピュータ１００から出力されたＬＥＤ駆動信号を遊技制御基板４０に接続された各種表示器やＬＥＤに伝送する。
【００５６】
図７は、遊技制御基板４０に搭載された遊技制御用マイクロコンピュータ１００の構成例を示している。図７に示す遊技制御用マイクロコンピュータ１００は、例えば１チップマイクロコンピュータであり、外部バスインタフェース５０１と、クロック回路５０２と、固有情報記憶回路５０３と、リセットコントローラ５０４Ａと、割込みコントローラ５０４Ｂと、ＣＰＵ（Central Processing Unit）５０５と、ＲＯＭ（Read Only Memory）５０６と、ＲＡＭ（Random Access Memory）５０７と、タイマ回路５０８と、１６ビットの乱数回路５０９Ａと、８ビットの乱数回路５０９Ｂと、フリーランカウンタ５０９Ｃと、ＰＩＰ（Parallel Input Port）５１０と、シリアル通信回路５１１と、アドレスデコード回路５１２とを備えて構成される。
【００５７】
図８は、遊技制御用マイクロコンピュータ１００におけるアドレスマップの一例を示している。図８に示すように、アドレス００００Ｈ〜アドレス２ＦＦＦＨの領域は、ＲＯＭ５０６に割り当てられ、ユーザプログラムエリアとプログラム管理エリアとを含んでいる。なお、添字Ｈは、１６進数であることを示しており、以下の説明でも同様である。図９（Ａ）は、ＲＯＭ５０６におけるプログラム管理エリアの主要部分について、用途や内容の一例を示している。アドレスＦ０００Ｈ〜アドレスＦ３ＦＦＨの領域は、ＲＡＭ５０７に割り当てられたワークエリアであり、Ｉ／Ｏマップやメモリマップに割り付けることができる。アドレスＦＥ００Ｈ〜アドレスＦＥＢＦＨの領域は、遊技制御用マイクロコンピュータ１００の内蔵レジスタに割り当てられる内蔵レジスタエリアである。図９（Ｂ）は、内蔵レジスタエリアの主要部分について、用途や内容の一例を示している。
【００５８】
プログラム管理エリアは、ＣＰＵ５０５がユーザプログラムを実行するために必要な情報を格納する記憶領域である。図９（Ａ）に示すように、プログラム管理エリアには、ヘッダＫＨＤＲ、リセット設定ＫＲＥＳ、割込み初期設定ＫＩＩＳ、１６ビット乱数初期設定第１ＫＲＬ１〜１６ビット乱数初期設定第３ＫＲＬ３、８ビット乱数初期設定第１ＫＲＳ１、８ビット乱数初期設定第２ＫＲＳ２、セキュリティ時間設定ＫＳＥＳなどが、含まれている。
【００５９】
プログラム管理エリアに記憶されるヘッダＫＨＤＲは、遊技制御用マイクロコンピュータ１００における内部データの読出設定を示す。図１０（Ａ）は、ヘッダＫＨＤＲにおける設定データと動作との対応関係を例示している。ここで、遊技制御用マイクロコンピュータ１００では、ＲＯＭ読出防止機能と、バス出力マスク機能とを設定可能である。ＲＯＭ読出防止機能は、遊技制御用マイクロコンピュータ１００が備えるＲＯＭ５０６の記憶データについて、読出動作を許可または禁止する機能であり、読出禁止に設定された状態では、ＲＯＭ５０６の記憶データを読み出すことができない。バス出力マスク機能は、外部バスインタフェース５０１に接続された外部装置から遊技制御用マイクロコンピュータ１００の内部データに対する読出要求があった場合に、外部バスインタフェース５０１におけるアドレスバス出力、データバス出力および制御信号出力にマスクをかけることにより、外部装置から内部データの読み出しを不能にする機能である。図１０（Ａ）に示すように、ヘッダＫＨＤＲの設定データに対応して、ＲＯＭ読出防止機能やバス出力マスク機能の動作組合せが異なるように設定される。図１０（Ａ）に示す設定データのうち、ＲＯＭ読出が許可されるとともに、バス出力マスクが有効となる設定データは、バス出力マスク有効データともいう。また、ＲＯＭ読出が禁止されるとともに、バス出力マスクが有効となる設定データ（全て「００Ｈ」）は、ＲＯＭ読出禁止データともいう。ＲＯＭ読出が許可されるとともに、バス出力マスクが無効となる設定データは、バス出力マスク無効データともいう。
【００６０】
プログラム管理エリアに記憶されるリセット設定ＫＲＥＳは、遊技制御用マイクロコンピュータ１００におけるリセット動作の設定を示す。図１０（Ｂ）は、リセット設定ＫＲＥＳにおける設定内容の一例を示している。リセット設定ＫＲＥＳのビット番号［７］は、遊技制御用マイクロコンピュータ１００において内部リセットが発生したときの動作を設定する設定データである。遊技制御用マイクロコンピュータ１００における内部リセットは、例えばリセットコントローラ５０４Ａに設けられたウォッチドッグタイマ５２０からタイムアウト信号が出力されることや、指定エリア外走行禁止（ＩＡＴ）が発生したことなど、所定の要因により発生するリセットである。
【００６１】
図１０（Ｂ）に示す例において、リセット設定ＫＲＥＳのビット番号［７］におけるビット値が“０”である場合には、内部リセットが発生したときのリセット動作がユーザリセットに設定される。ユーザリセットが実行される場合には、例えば割り込みコントローラ５０４Ｂ、ＣＰＵ５０５、タイマ回路５０８、フリーランカウンタ５０９Ｃ、ＰＩＰ５１０、シリアル通信回路５１１が初期化され、ユーザプログラムのリセットアドレス（ＲＯＭ５０６のアドレス００００Ｈ）からユーザプログラムを再実行する。一方、リセット設定ＫＲＥＳのビット番号［７］におけるビット値が“１”である場合には、内部リセットが発生したときのリセット動作がシステムリセットに設定される。システムリセットが実行される場合には、例えば１６ビットの乱数回路５０９Ａや８ビットの乱数回路５０９Ｂなどを含めた、遊技制御用マイクロコンピュータ１００におけるすべての内部回路が初期化され、ユーザプログラムのリセットアドレスからユーザプログラムを再実行する。
【００６２】
リセット設定ＫＲＥＳのビット番号［６］は、リセットコントローラ５０４Ａに設けられたウォッチドッグタイマ５２０の起動方法を設定する設定データである。図１０（Ｂ）に示す例において、リセット設定ＫＲＥＳのビット番号［６］におけるビット値が“０”である場合には、遊技制御用マイクロコンピュータ１００の動作状態がセキュリティモードからユーザモードに移行することで、ウォッチドッグタイマ５２０が自動的に起動される。これに対して、そのビット値が“１”である場合には、遊技制御用マイクロコンピュータ１００のＣＰＵ５０５がＲＯＭ５０６から読み出した制御コードに基づくユーザプログラム（ゲーム制御用の初期設定プログラムおよび遊技制御処理プログラム）を実行することで、ソフトウェアによりウォッチドッグタイマ５２０を起動させる。このように、ＲＯＭ５０６のプログラム管理エリアに記憶されるリセット設定ＫＲＥＳのビット番号［６］におけるビット値を“１”とする設定データを予め記憶させておくことで、ユーザプログラムの実行によるソフトウェアにて、所定のＷＤＴ起動制御コードによりウォッチドッグタイマ５２０を起動してリセット動作を有効化することや、所定のＷＤＴ停止制御コードによりウォッチドッグタイマ５２０を停止してリセット動作を無効化することができる。
【００６３】
リセット設定ＫＲＥＳのビット番号［５−４］は、ウォッチドッグタイマ５２０のタイムアウト時間を設定するために用いられる基準クロックを設定する設定データである。図１０（Ｂ）に示す例においては、リセット設定ＫＲＥＳのビット番号［５−４］におけるビット値が“００”、“０１”、“１０”、“１１”のいずれであるかに応じて、周期が異なる基準クロックの設定が行われる。リセット設定ＫＲＥＳのビット番号［３−０］は、ビット番号［５−４］におけるビット値に対応する設定周期との乗算に用いられることで、ウォッチドッグタイマ５２０のタイムアウト時間を設定する設定データである。図１０（Ｂ）に示す例においては、リセット設定ＫＲＥＳのビット番号［３−０］におけるビット値が“００００”である場合に、ウォッチドッグタイマ５２０による監視時間の計測を禁止してウォッチドッグ不使用とする。一方、それらのビット値が“１０００”である場合には、設定周期に「８」を乗算することで、ウォッチドッグタイマ５２０のタイムアウト時間が設定される。また、それらのビット値が“１１１１”である場合には、設定周期に「１５」を乗算することで、ウォッチドッグタイマ５２０のタイムアウト時間が設定される。
【００６４】
このように、リセット設定ＫＲＥＳのビット番号［５−４］およびビット番号［３−０］におけるビット値を設定することにより、ウォッチドッグタイマ５２０により計測される監視時間は、予め定められた複数種類のうちから設定することができる。図１０（Ｂ）に示す例では、リセット設定ＫＲＥＳのビット番号［５−４］におけるビット値が“１１”でビット番号［３−０］におけるビット値が“１１１１”である場合に、監視時間として設定可能な最長時間が設定される。一例として、内部システムクロックＳＣＬＫの周波数が１０．０ＭＨｚである場合には、約５０．３３秒が最長の監視時間となる。他の一例として、内部システムクロックＳＣＬＫの周波数が１２．０ＭＨｚである場合には、約４１．９４秒が最長の監視時間となる。
【００６５】
プログラム管理エリアに記憶される割込み初期設定ＫＩＩＳは、遊技制御用マイクロコンピュータ１００にて発生するマスカブル割込みの取扱いに関する初期設定を示す。図１１（Ａ）は、割込み初期設定ＫＩＩＳにおける設定内容の一例を示している。
【００６６】
割込み初期設定ＫＩＩＳのビット番号［７−４］では、割込みベクタの上位４ビットを設定する。割込み初期設定ＫＩＩＳのビット番号［３−０］では、マスカブル割込み要因の優先度の組合せを設定する。図１１（Ａ）に示す例において、割込み初期設定ＫＩＩＳのビット番号［３−０］により「００Ｈ」〜「０２Ｈ」のいずれかが指定されれば、タイマ回路５０８からのマスカブル割込み要因を最優先とする優先度の組合せが設定される。これに対して、「０３Ｈ」または「０４Ｈ」のいずれかが指定されれば、シリアル通信回路５１１からのマスカブル割込み要因を最優先とする優先度の組合せが設定される。また、「０５Ｈ」または「０６Ｈ」のいずれかが指定されれば、乱数回路５０９Ａ、５０９Ｂなどからのマスカブル割込み要因を最優先とする優先度の組合せが設定される。なお、同一回路からのマスカブル割込み要因を最優先とする優先度の組合せでも、指定値が異なる場合には、最優先となるマスカブル割込み要因の種類や第２順位以下における優先度の組合せなどが異なっている。
【００６７】
プログラム管理エリアに記憶される１６ビット乱数初期設定第１ＫＲＬ１〜１６ビット乱数初期設定第３ＫＲＬ３は、１６ビットの乱数回路５０９Ａに対する初期設定を示す。図１１（Ｂ）は、１６ビット乱数初期設定第１ＫＲＬ１における設定内容の一例を示している。図１１（Ｃ）は、１６ビット乱数初期設定第３ＫＲＬ３における設定内容の一例を示している。この実施の形態において、１６ビットの乱数回路５０９Ａは、４つのチャネルｃｈ０〜ｃｈ３の１６ビット疑似乱数を、独立して発生することができる。
【００６８】
１６ビット乱数初期設定第１ＫＲＬ１のビット番号［７］は、チャネルｃｈ１の１６ビット乱数を発生させるために、１６ビットの乱数回路５０９Ａを起動させる方法を設定する１６ビット乱数チャネルｃｈ１用の乱数回路起動設定データである。図１１（Ｂ）に示す例において、１６ビット乱数初期設定第１ＫＲＬ１のビット番号［７］におけるビット値が“０”である場合には、チャネルｃｈ１の１６ビット乱数における最大値をユーザプログラム（ソフトウェア）で指定したときに、チャネルｃｈ１の１６ビット乱数を発生させるための回路が起動される。これに対して、そのビット値が“１”である場合には、遊技制御用マイクロコンピュータ１００の動作状態がセキュリティモードからユーザモードに移行することで、チャネルｃｈ１の１６ビット乱数を発生させるための回路が自動的に起動される。
【００６９】
１６ビット乱数初期設定第１ＫＲＬ１のビット番号［６］は、チャネルｃｈ１の１６ビット乱数を発生させるときに、乱数値となる数値データの更新用となる乱数更新クロックＲＧＫ（図１７を参照）を、内部システムクロックＳＣＬＫとするか、乱数用クロックＲＣＫの２分周（ＲＣＫ／２）とするかを設定する１６ビット乱数チャネルｃｈ１用の乱数更新クロック設定データである。図１１（Ｂ）に示す例において、１６ビット乱数初期設定第１ＫＲＬ１のビット番号［６］におけるビット値が“０”である場合には、内部システムクロックＳＣＬＫを乱数更新クロックＲＧＫに用いる設定となる一方、“１”である場合には、乱数用クロックＲＣＫの２分周（ＲＣＫ／２）を乱数更新クロックＲＧＫに用いる設定となる。
【００７０】
１６ビット乱数初期設定第１ＫＲＬ１のビット番号［５−４］は、チャネルｃｈ１の１６ビット乱数を発生させるときに、乱数更新規則を変更するか否かや、変更する場合における変更方式を設定する１６ビット乱数チャネルｃｈ１用の乱数更新規則設定データである。図１１（Ｂ）に示す例において、１６ビット乱数初期設定第１ＫＲＬ１のビット番号［５−４］におけるビット値が“００”である場合には、乱数更新規則を変更しない設定となり、“０１”である場合には、乱数更新規則をソフトウェアにより変更する設定となり、“１０”である場合には、２周目から乱数更新規則を自動で変更する設定となり、“１１”である場合には、１周目から乱数更新規則を自動で変更する設定となる。
【００７１】
図１１（Ｂ）に示す例において、１６ビット乱数初期設定第１ＫＲＬ１のビット番号［３］、［２］、［１−０］はそれぞれ、１６ビット乱数チャネルｃｈ０用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データとなっている。すなわち、１６ビット乱数初期設定第１ＫＲＬのビット番号［３−０］は、そのビット番号［７−４］によりチャネルｃｈ１の１６ビット乱数について初期設定を行う場合と同様に、チャネルｃｈ０の１６ビット乱数について初期設定を行うための設定データである。
【００７２】
なお、１６ビット乱数初期設定第２ＫＲＬ２のビット番号［７］、［６］、［５−４］はそれぞれ、１６ビット乱数チャネルｃｈ３用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データとなっている。１６ビット乱数初期設定第２ＫＲＬ２のビット番号［３］、［２］、［１−０］はそれぞれ、１６ビット乱数チャネルｃｈ２用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データとなっている。
【００７３】
１６ビット乱数初期設定第３ＫＲＬ３のビット番号［７］とビット番号［６］は、チャネルｃｈ３の１６ビット乱数となる数値データでのスタート値を設定する１６ビット乱数チャネルｃｈ３用の乱数スタート値設定データである。図１１（Ｃ）に示す例において、１６ビット乱数初期設定第３ＫＲＬ３のビット番号［７］におけるビット値が“０”である場合には、スタート値が所定のデフォルト値である「００００Ｈ」に設定される一方、“１”である場合には、遊技制御用マイクロコンピュータ１００ごとに付与された固有の識別情報であるＩＤナンバーに基づく値がスタート値に設定される。また、図１１（Ｃ）に示す例では、１６ビット乱数初期設定第３ＫＲＬ３のビット番号［６］におけるビット値が“０”である場合には、システムリセット毎にスタート値を変更しない設定となる一方、“１”である場合には、システムリセット毎にスタート値を変更する設定となる。
【００７４】
なお、スタート値をＩＤナンバーに基づく値に設定する場合には、ＩＤナンバーに所定のスクランブル処理を施す演算や、ＩＤナンバーを用いた加算・減算・乗算・除算などの演算の一部または全部を実行して、算出された値をスタート値に用いるようにすればよい。また、１６ビット乱数初期設定第３ＫＲＬ３のビット番号［６］におけるビット値が“１”である場合には、システムリセット毎に所定のフリーランカウンタ（例えば図７に示すフリーランカウンタ５０９Ｃ）におけるカウント値に基づいて設定される値をスタート値に用いるようにすればよい。さらに、１６ビット乱数初期設定第３ＫＲＬ３のビット番号［７］とビット番号［６］におけるビット値がともに“１”である場合には、ＩＤナンバーとフリーランカウンタにおけるカウント値とに基づいて設定される値をスタート値に用いるようにすればよい。
【００７５】
１６ビット乱数初期設定第３ＫＲＬ３のビット番号［５］とビット番号［４］は、チャネルｃｈ２の１６ビット乱数となる数値データでのスタート値を設定する１６ビット乱数チャネルｃｈ２用の乱数スタート値設定データである。すなわち、１６ビット乱数初期設定第３ＫＲＬ３のビット番号［５］とビット番号［４］は、そのビット番号［７］とビット番号［６］によりチャネルｃｈ３の１６ビット乱数について初期設定を行う場合と同様に、チャネルｃｈ２の１６ビット乱数について初期設定を行うための設定データである。１６ビット乱数初期設定第３ＫＲＬ３のビット番号［３］とビット番号［２］は、１６ビット乱数チャネルｃｈ１用の乱数スタート値設定データである。１６ビット乱数初期設定第３ＫＲＬ３のビット番号［１］とビット番号［０］は、１６ビット乱数チャネルｃｈ０用の乱数スタート値設定データである。
【００７６】
プログラム管理エリアに記憶される８ビット乱数初期設定第１ＫＲＳ１および８ビット乱数初期設定第２ＫＲＳ２は、８ビットの乱数回路５０９Ｂに対する初期設定を示す。この実施の形態において、８ビットの乱数回路５０９Ｂは、４つのチャネルｃｈ０〜ｃｈ３の８ビット疑似乱数を、独立して発生することができる。８ビット乱数初期設定第１ＫＲＳ１は、８ビット乱数チャネルｃｈ１用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データと、８ビット乱数チャネルｃｈ０用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データとを含んでいる。８ビット乱数初期設定第２ＫＲＳ２は、８ビット乱数チャネルｃｈ３用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データと、８ビット乱数チャネルｃｈ２用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データとを含んでいる。すなわち、８ビット乱数初期設定第１ＫＲＳ１および８ビット乱数初期設定第１ＫＲＳ２は、１６ビット乱数初期設定第１ＫＲＬ１および１６ビット乱数初期設定第２ＫＲＬ２によりチャネルｃｈ０〜チャネルｃｈ３の１６ビット乱数について初期設定を行う場合と同様に、チャネルｃｈ０〜チャネルｃｈ３の８ビット乱数について初期設定を行うための設定データである。
【００７７】
プログラム管理エリアに記憶されるセキュリティ時間設定ＫＳＥＳは、電源投入時における遊技制御用マイクロコンピュータ１００の動作状態であるセキュリティモードとなる時間（セキュリティモード時間）を延長するための設定を示す。ここで、遊技制御用マイクロコンピュータ１００の動作状態がセキュリティモードであるときには、所定のセキュリティチェック処理が実行されて、ＲＯＭ５０６の記憶内容が変更されたか否かが検査される。図１２は、セキュリティ時間設定ＫＳＥＳにおける設定内容の一例を示している。
【００７８】
セキュリティ時間設定ＫＳＥＳのビット番号［７−６］は、セキュリティモード時間をシステムリセット毎にランダムな時間分延長する場合の時間設定を示す。図１２に示す例において、セキュリティ時間設定ＫＳＥＳのビット番号［７−６］におけるビット値が“００”であれば、ランダムな時間延長を行わない設定となる。これに対して、そのビット値が“０１”であればショートモードの設定となり、“１０”であればミドルモードの設定となり、“１１”であればロングモードの設定となる。ここで、ショートモードやミドルモード、あるいはロングモードが指定された場合には、例えば遊技制御用マイクロコンピュータ１００に内蔵されたフリーランカウンタのカウント値を、システムリセットの発生時に遊技制御用マイクロコンピュータ１００が備える所定の内蔵レジスタ（可変セキュリティモード時間用レジスタ）に格納する。そして、初期設定時に可変セキュリティ時間用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数（例えばハッシュ関数）に代入して得られた値を用いることなどにより、セキュリティモード時間を延長する際の延長時間がランダムに決定されればよい。
【００７９】
一例として、内部システムクロックＳＣＬＫの周波数が１０．０ＭＨｚである場合には、ショートモードにおいて０〜８１６μｓ（マイクロ秒）の範囲で延長時間がランダムに決定され、ミドルモードにおいて０〜２６．１１２ｍｓ（ミリ秒）の範囲で延長時間がランダムに決定され、ロングモードにおいて０〜８３５．５８４ｍｓの範囲で延長時間がランダムに決定される。また、他の一例として、内部システムクロックＳＣＬＫの周波数が１２．０ＭＨｚである場合には、ショートモードにおいて０〜５１０μｓの範囲で延長時間がランダムに決定され、ミドルモードにおいて０〜１６．３２ｍｓの範囲で延長時間がランダムに決定され、ロングモードにおいて０〜５２２．２４ｍｓの範囲で延長時間がランダムに決定される。
【００８０】
可変セキュリティモード時間用レジスタは、例えば遊技制御用マイクロコンピュータ１００のＲＡＭ５０７におけるバックアップ領域といった、主基板１１におけるバックアップ箇所と共通のバックアップ電源を用いてバックアップされるものであればよい。あるいは、可変セキュリティモード時間用レジスタは、ＲＡＭ５０７におけるバックアップ領域などに用いられるバックアップ電源とは別個に設けられた電源によりバックアップされてもよい。こうして、可変セキュリティモード時間用レジスタがバックアップ電源によってバックアップされることで、電力供給が停止した場合でも、所定期間は可変セキュリティモード時間用レジスタの格納値が保存されることになる。なお、フリーランカウンタにおけるカウント値を読み出して可変セキュリティモード時間用レジスタに格納するタイミングは、システムリセットの発生時に限定されず、予め定められた任意のタイミングとしてもよい。あるいは、フリーランカウンタをバックアップ電源によってバックアップしておき、初期設定時にフリーランカウンタから読み出した格納値を用いてセキュリティモード時間を延長する際の延長時間がランダムに決定されてもよい。
【００８１】
また、セキュリティ時間設定ＫＳＥＳのビット番号［７−６］におけるビット値によりショートモード、ミドルモード、ロングモードのいずれかを設定するとともに、セキュリティ時間設定ＫＳＥＳのビット番号［４−０］におけるビット値を“０００１”以外とすることにより固定時間に加える延長時間を設定することもできる。この場合には、ビット番号［４−０］におけるビット値に対応した延長時間と、ビット番号［７−６］におけるビット値に基づいてランダムに決定された延長時間との双方が、固定時間に加算されて、遊技制御用マイクロコンピュータ１００がセキュリティモードとなるセキュリティモード時間が決定されることになる。
【００８２】
図７に示す遊技制御用マイクロコンピュータ１００が備える外部バスインタフェース５０１は、遊技制御用マイクロコンピュータ１００を構成するチップの外部バスと内部バスとのインタフェース機能や、アドレスバス、データバスおよび各制御信号の方向制御機能などを有するバスインタフェースである。例えば、外部バスインタフェース５０１は、遊技制御用マイクロコンピュータ１００に外付けされた外部メモリや外部入出力装置などに接続され、これらの外部装置との間でアドレス信号やデータ信号、各種の制御信号などを送受信するものであればよい。この実施の形態において、外部バスインタフェース５０１には、内部リソースアクセス制御回路５０１Ａが含まれている。
【００８３】
内部リソースアクセス制御回路５０１Ａは、外部バスインタフェース５０１を介した外部装置から遊技制御用マイクロコンピュータ１００の内部データに対するアクセスを制御して、例えばＲＯＭ５０６に記憶されたゲーム制御用プログラム（遊技制御処理プログラム）や固定データといった、内部データの不適切な外部読出を制限するための回路である。ここで、外部バスインタフェース５０１には、例えばインサーキットエミュレータ（ＩＣＥ；InCircuit Emulator）といった回路解析装置が、外部装置として接続されることがある。
【００８４】
一例として、ＲＯＭ５０６のプログラム管理エリアに記憶されたヘッダＫＨＤＲの内容に応じて、ＲＯＭ５０６における記憶データの読み出しを禁止するか許可するかを切り替えられるようにする。例えば、ヘッダＫＨＤＲがバス出力マスク無効データとなっている場合には、外部装置によるＲＯＭ５０６の読み出しを可能にして、内部データの外部読出を許可する。これに対して、ヘッダＫＨＤＲがバス出力マスク有効データとなっている場合には、例えば外部バスインタフェース５０１におけるアドレスバス出力、データバス出力および制御信号出力にマスクをかけることなどにより、外部装置からＲＯＭ５０６の読み出しを不能にして、内部データの外部読出を禁止する。この場合、外部バスインタフェース５０１に接続された外部装置から内部データの読み出しが要求されたときには、予め定められた固定値を出力することで、外部装置からは内部データを読み出すことができないようにする。また、ヘッダＫＨＤＲがＲＯＭ読出禁止データとなっている場合には、ＲＯＭ５０６自体を読出不能として、ＲＯＭ５０６における記憶データの読み出しを防止してもよい。そして、例えば製造段階のＲＯＭでは、ヘッダＫＨＤＲをＲＯＭ読出禁止データとすることで、ＲＯＭ自体を読出不能としておき、開発用ＲＯＭとするのであればバス出力マスク無効データをヘッダＫＨＤＲに書き込むことで、外部装置による内部データの検証を可能にする。これに対して、量産用ＲＯＭとするのであればバス出力マスク有効データをヘッダＫＨＤＲに書き込むことで、ＣＰＵ５０５などによる遊技制御用マイクロコンピュータ１００の内部におけるＲＯＭ５０６の読み出しは可能とする一方で、外部装置によるＲＯＭ５０６の読み出しはできないようにすればよい。
【００８５】
他の一例として、内部リソースアクセス制御回路５０１Ａは、ＲＯＭ５０６における記憶データの一部または全部といった、遊技制御用マイクロコンピュータ１００の内部データの読み出しが、外部バスインタフェース５０１に接続された外部装置から要求されたことを検出する。この読出要求を検出したときに、内部リソースアクセス制御回路５０１Ａは、遊技制御用マイクロコンピュータ１００の内部データの読み出しを許可するか否かの判定を行う。例えば、ＲＯＭ５０６における記憶データの一部または全部に暗号化処理が施されているものとする。この場合、内部リソースアクセス制御回路５０１Ａは、外部装置からの読出要求がＲＯＭ５０６に記憶された暗号化処理プログラムや鍵データ等に対する読出要求であれば、この読出要求を拒否して、遊技制御用マイクロコンピュータ１００の内部データの読み出しを禁止する。外部バスインタフェース５０１では、ＲＯＭ５０６の記憶データが出力される出力ポートと、内部バスとの間にスイッチ素子を設け、内部リソースアクセス制御回路５０１Ａが内部データの読み出しを禁止した場合には、このスイッチ素子をオフ状態とするように制御すればよい。このように、内部リソースアクセス制御回路５０１Ａは、外部装置からの読出要求が所定の内部データ（例えばＲＯＭ５０６の所定領域）の読み出しを要求するものであるか否かに応じて、内部データの読み出しを禁止するか許可するかを決定するようにしてもよい。
【００８６】
あるいは、内部リソースアクセス制御回路５０１Ａは、内部データの読出要求を検出したときに、所定の認証コードが外部装置から入力されたか否かを判定してもよい。この場合には、例えば内部リソースアクセス制御回路５０１Ａの内部あるいはＲＯＭ５０６の所定領域に、認証コードとなる所定のコードパターンが予め記憶されていればよい。そして、外部装置から認証コードが入力されたときには、この認証コードを内部記憶された認証コードと比較して、一致すれば読出要求を受容して、遊技制御用マイクロコンピュータ１００の内部データの読み出しを許可する。これに対して、外部装置から入力された認証コードが内部記憶された認証コードと一致しない場合には、読出要求を拒否して、遊技制御用マイクロコンピュータ１００の内部データの読み出しを禁止する。このように、内部リソースアクセス制御回路５０１Ａは、外部装置から入力された認証コードが内部記憶された認証コードと一致するか否かに応じて、内部データの読み出しを禁止するか許可するかを決定するようにしてもよい。これにより、検査機関などが予め知得した正しい認証コードを用いて、遊技制御用マイクロコンピュータ１００の内部データを損なうことなく読み出すことができ、内部データの正当性を適切に検査することなどが可能になる。
【００８７】
さらに他の一例として、内部リソースアクセス制御回路５０１Ａに読出禁止フラグを設け、読出禁止フラグがオン状態であれば外部装置によるＲＯＭ５０６の読み出しを禁止する。その一方で、読出禁止フラグがオフ状態であるときには、外部装置によるＲＯＭ５０６の読み出しが許可される。ここで、読出禁止フラグは、初期状態ではオフ状態であるが、読出禁止フラグを一旦オン状態とした後には、読出禁止フラグをクリアしてオフ状態に復帰させることができないように構成されていればよい。すなわち、読出禁止フラグはオフ状態からオン状態に不可逆的に変更することが可能とされている。例えば、内部リソースアクセス制御回路５０１Ａには、読出禁止フラグをクリアしてオフ状態とする機能が設けられておらず、どのような命令によっても読出禁止フラグをクリアすることができないように設定されていればよい。そして、内部リソースアクセス制御回路５０１Ａは、外部装置からＲＯＭ５０６における記憶データといった遊技制御用マイクロコンピュータ１００の内部データの読み出しが要求されたときに、読出禁止フラグがオンであるか否かを判定する。このとき、読出禁止フラグがオンであれば、外部装置からの読出要求を拒否して、遊技制御用マイクロコンピュータ１００の内部データの読み出しを禁止する。他方、読出禁止フラグがオフであれば、外部装置からの読出要求を受容して、遊技制御用マイクロコンピュータ１００の内部データの読み出しを許可にする。このような構成であれば、ゲーム制御用の遊技制御処理プログラムを作成してＲＯＭ５０６に格納する提供者においては、読出禁止フラグがオフとなっている状態でデバッグの終了したプログラムをＲＯＭ５０６から外部装置に読み込むことができる。そして、デバッグの作業が終了した後に出荷する際には、読出禁止フラグをオン状態にセットすることにより、それ以後はＲＯＭ５０６の外部読出を制限することができ、スロットマシン１の使用者などによるＲＯＭ５０６の読出を防止することができる。このように、内部リソースアクセス制御回路５０１Ａは、読出禁止フラグといった内部フラグがオフであるかオンであるかに応じて、内部データの読み出しを禁止するか許可するかを決定するようにしてもよい。
【００８８】
なお、読出禁止フラグを不可逆に設定するのではなく、オン状態からオフ状態に変更することも可能とする一方で、読出禁止フラグをオン状態からオフ状態に変更して内部データの読み出しが許可されるときには、ＲＯＭ５０６の記憶データを消去（例えばフラッシュ消去など）することにより、ＲＯＭ５０６の外部読出を制限するようにしてもよい。
【００８９】
遊技制御用マイクロコンピュータ１００が備えるクロック回路５０２は、例えば制御用外部クロック端子ＥＸＣに入力される発振信号を２分周することなどにより、内部システムクロックＳＣＬＫを生成する回路である。この実施の形態では、制御用外部クロック端子ＥＸＣに制御用クロック生成回路１１１が生成した制御用クロックＣＣＬＫが入力される。クロック回路５０２により生成された内部システムクロックＳＣＬＫは、例えばＣＰＵ５０５といった、遊技制御用マイクロコンピュータ１００において遊技の進行を制御する各種回路に供給される。また、内部システムクロックＳＣＬＫは、乱数回路５０９Ａ、５０９Ｂにも供給される。さらに、内部システムクロックＳＣＬＫは、クロック回路５０２に接続されたシステムクロック出力端子ＣＬＫＯから、遊技制御用マイクロコンピュータ１００の外部へと出力されてもよい。なお、内部システムクロックＳＣＬＫは、遊技制御用マイクロコンピュータ１００の外部へは出力されないことが望ましい。このように、内部システムクロックＳＣＬＫの外部出力を制限することにより、遊技制御用マイクロコンピュータ１００の内部回路（ＣＰＵ５０５など）の動作周期を外部から特定することが困難になり、乱数値となる数値データをソフトウェアにより更新する場合に、乱数値の更新周期が外部から特定されてしまうことを防止できる。
【００９０】
遊技制御用マイクロコンピュータ１００が備える固有情報記憶回路５０３は、例えば遊技制御用マイクロコンピュータ１００の内部情報となる複数種類の固有情報を記憶する回路である。一例として、固有情報記憶回路５０３は、ＲＯＭコード、チップ個別ナンバー、ＩＤナンバーといった３種類の固有情報を記憶する。ＲＯＭ５０６コードは、ＲＯＭ５０６の所定領域における記憶データから生成される４バイトの数値であり、生成方法の異なる４つの数値が準備されればよい。チップ個別ナンバーは、遊技制御用マイクロコンピュータ１００の製造時に付与される４バイトの番号であり、遊技制御用マイクロコンピュータ１００を構成するチップ毎に異なる数値を示している。ＩＤナンバーは、遊技制御用マイクロコンピュータ１００の製造時に付与される８バイトの番号であり、遊技制御用マイクロコンピュータ１００を構成するチップ毎に異なる数値を示している。ここで、チップ個別ナンバーはユーザプログラムから読み取ることができる一方、ＩＤナンバーはユーザプログラムから読み取ることができないように設定されていればよい。なお、固有情報記憶回路５０３は、例えばＲＯＭ５０６の所定領域を用いることなどにより、ＲＯＭ５０６に含まれるようにしてもよい。あるいは、固有情報記憶回路５０３は、例えばＣＰＵ５０５の内蔵レジスタを用いることなどにより、ＣＰＵ５０５に含まれるようにしてもよい。
【００９１】
遊技制御用マイクロコンピュータ１００が備えるリセットコントローラ５０４Ａは、遊技制御用マイクロコンピュータ１００の内部や外部にて発生する各種リセットを制御するためのものである。リセットコントローラ５０４Ａが制御するリセットには、システムリセットとユーザリセットが含まれている。システムリセットは、外部システムリセット端子ＸＳＲＳＴに一定の期間にわたりローレベル信号が入力されたときに発生するリセットである。ユーザリセットは、ウォッチドッグタイマ（ＷＤＴ）のタイムアウト信号が発生したことや、指定エリア外走行禁止（ＩＡＴ）が発生したことなど、所定の要因により発生するリセットである。
【００９２】
リセットコントローラ５０４Ａは、図９（Ｂ）に示すような遊技制御用マイクロコンピュータ１００が備える内蔵レジスタのうち、内部情報レジスタＣＩＦ（アドレスＦＥ２５Ｈ）を用いて、直前に発生したリセット要因の管理や、１６ビット乱数および乱数用クロックＲＣＫにおける異常の記録を可能にする。図１３（Ａ）は、内部情報レジスタＣＩＦの構成例を示している。図１３（Ｂ）は、内部情報レジスタＣＩＦに格納される内部情報データの各ビットにおける設定内容の一例を示している。
【００９３】
内部情報レジスタＣＩＦのビット番号［７−４］に格納される内部情報データＣＩＦ７〜ＣＩＦ４は、チャネルｃｈ３〜チャネルｃｈ０の１６ビット乱数に対応して、乱数値の更新動作における異常の有無を示す乱数更新異常指示である。図１３（Ｂ）に示す例では、チャネルｃｈ３〜チャネルｃｈ０の１６ビット乱数について更新動作の異常が検知されないときに、内部情報データＣＩＦ７〜ＣＩＦ４のそれぞれにおけるビット値が“０”となる。一方、１６ビット乱数の更新動作に異常が検知されたときには、その異常が検知されたチャネルに対応して、内部情報データＣＩＦ７〜ＣＩＦ４のいずれかにおけるビット値が“１”となる。より具体的には、１６ビット乱数の更新動作に異常を検知したチャネルが、チャネルｃｈ３であれば内部情報データＣＩＦ７が“１”となり、チャネルｃｈ２であれば内部情報データＣＩＦ６が“１”となり、チャネルｃｈ１であれば内部情報データＣＩＦ５が“１”となり、チャネルｃｈ０であれば内部情報データＣＩＦ４が“１”となる。
【００９４】
内部情報レジスタＣＩＦのビット番号［３］に格納される内部情報データＣＩＦ３は、乱数用クロックＲＣＫにおける周波数異常の有無を示す乱数用クロック異常指示である。図１３（Ｂ）に示す例では、乱数用クロックＲＣＫの周波数異常が検知されないときに、内部情報データＣＩＦ３のビット値が“０”となる一方、周波数異常が検知されたときには、そのビット値が“１”となる。内部情報レジスタＣＩＦのビット番号［２］に格納される内部情報データＣＩＦ２は、直前に発生したリセット要因がシステムリセットであるか否かを示すシステムリセット指示である。図１３（Ｂ）に示す例では、直前のリセット要因がシステムリセットではないときに（システムリセット未発生）、内部情報データＣＩＦ２のビット値が“０”となる一方、システムリセットであるときには（システムリセット発生）、そのビット値が“１”となる。内部情報データＣＩＦ２を用いた動作の第１例として、電源投入時に遊技制御用マイクロコンピュータ１００のＣＰＵ５０５などが内部情報データＣＩＦ２のビット値をチェックして、そのビット値が“１”（セット）でなければ、通常の電源投入ではないと判断する。このときには、例えば演出制御基板９０に向けて所定の演出制御コマンドを伝送させることなどにより、スロットマシン１における電源投入直後に大当り遊技状態とすることを狙った不正信号の入力行為が行われた可能性がある旨を、演出装置などにより報知させてもよい。また、内部情報データＣＩＦ２を用いた動作の第２例として、スロットマシン１が電源投入時にのみ確変状態を報知し、通常時には確変状態を報知しない場合に、電源投入時に遊技制御用マイクロコンピュータ１００のＣＰＵ５０５などが内部情報データＣＩＦ２のビット値をチェックして、そのビット値が“１”（セット）でなければ、遊技状態の報知を行わないようにしてもよい。
【００９５】
内部情報レジスタＣＩＦのビット番号［１］に格納される内部情報データＣＩＦ１は、直前に発生したリセット要因がリセットコントローラ５０４Ａに内蔵されたウォッチドッグタイマ（ＷＤＴ）５２０のタイムアウトによるユーザリセットであるか否かを示すウォッチドッグタイムアウト指示である。図１３（Ｂ）に示す例では、直前のリセット要因がウォッチドッグタイマ５２０のタイムアウトによるユーザリセットではないときに（タイムアウト未発生）、内部情報データＣＩＦ１のビット値が“０”となる一方、ウォッチドッグタイマ５２０のタイムアウトによるユーザリセットであるときに（タイムアウト発生）、そのビット値が“１”となる。内部情報レジスタＣＩＦのビット番号［０］に格納される内部情報データＣＩＦ０は、直前に発生したリセット要因が指定エリア外走行禁止（ＩＡＴ）によるユーザリセットであるか否かを示すＩＡＴ発生指示である。図１３（Ｂ）に示す例では、直前のリセット要因が指定エリア外走行の発生によるユーザリセットではないときに（ＩＡＴ発生なし）、内部情報データＣＩＦ０のビット値が“０”となる一方、指定エリア外走行の発生によるユーザリセットであるときに（ＩＡＴ発生あり）、そのビット値が“１”となる。
【００９６】
リセットコントローラ５０４Ａには、ウォッチドッグタイマ５２０が内蔵されている。ウォッチドッグタイマ５２０は、遊技制御用マイクロコンピュータ１００がユーザプログラムを正常に実行できなくなって所定の監視時間が経過した場合に、遊技制御用マイクロコンピュータ１００をリセット状態にして再起動させるためのタイムアウト信号を出力する。なお、ウォッチドッグタイマ５２０は、遊技制御用マイクロコンピュータ１００に内蔵される一方で、リセットコントローラ５０４Ａには外付けされるようにしてもよい。あるいは、ウォッチドッグタイマ５２０を遊技制御用マイクロコンピュータ１００に外付けした構成であってもよい。
【００９７】
図１４は、ウォッチドッグタイマ５２０の構成例を示している。ウォッチドッグタイマ５２０は、ＲＯＭ５０６のプログラム管理エリアに記憶されるリセット設定ＫＲＥＳのビット番号［６］におけるビット値により、その起動方法が設定される。この実施の形態では、ウォッチドッグタイマ５２０をユーザプログラムの実行によるソフトウェアでウォッチドッグタイマ５２０を起動してリセット動作を有効化するために、リセット設定ＫＲＥＳのビット番号［６］におけるビット値を予め“１”とする設定データを記憶させておく。また、ウォッチドッグタイマ５２０により計測される監視時間としてのタイムアウト時間が、設定可能な複数の監視時間のうちで最長時間となるように、リセット設定ＫＲＥＳのビット番号［５−４］におけるビット値を予め“１１”とする設定データとともに、リセット設定ＫＲＥＳのビット番号［３−０］におけるビット値を予め“１１１１”とする設定データを記憶させておく。
【００９８】
図１４に示すウォッチドッグタイマ５２０は、ＷＤＴ制御回路５３３と、カウントクロック生成回路５３５と、１６ビットアップカウンタ５３６と、出力制御回路５３７とを備えている。ＷＤＴ制御回路５３３は、ウォッチドッグタイマ５２０の動作を制御する回路である。ＷＤＴ制御回路５３３は、プログラム管理エリアのリセット設定ＫＲＥＳなどに基づいて、ウォッチドッグタイマ５２０を動作させるために、カウントクロック生成回路５３５により生成される基準クロックの設定や、１６ビットアップカウンタ５３６におけるタイムアウト時間の設定を行う。
【００９９】
また、ＷＤＴ制御回路５３３は、図９（Ｂ）に示すような遊技制御用マイクロコンピュータ１００が備える内蔵レジスタのうち、ＷＤＴスタートレジスタＷＳＴ（アドレスＦＥ２３Ｈ）に所定のＷＤＴ起動制御コードが設定されることにより、ユーザプログラムの実行によるソフトウェアで、ウォッチドッグタイマ５２０を起動してリセット動作を有効化すること、またはウォッチドッグタイマ５２０を停止してリセット動作を無効化することを、切替可能に制御する。図１５（Ａ）は、ＷＤＴスタートレジスタＷＳＴの構成例を示している。図１５（Ｂ）は、ＷＤＴスタートレジスタＷＳＴに格納されるＷＤＴスタートデータによる設定内容の一例を示している。
【０１００】
図１５（Ａ）および（Ｂ）に示す例において、ＷＤＴスタートレジスタＷＳＴに「ＣＣＨ」がＣＰＵ５０５によって書き込まれたときに、ウォッチドッグタイマ５２０を起動してタイムアウト時間の経過によるリセット動作を有効化する。一方、ＷＤＴスタートレジスタＷＳＴに「３３Ｈ」がＣＰＵ５０５によって書き込まれたときには、ウォッチドッグタイマ５２０を停止してタイムアウト時間の経過によるリセット動作を無効化する。このように、ＷＤＴ起動制御コードとなる「ＣＣＨ」の値を示すデータがＷＤＴスタートレジスタＷＳＴに書き込まれることにより、ウォッチドッグタイマ５２０が起動する。一方、ＷＤＴ停止制御コードとなる「３３Ｈ」の値を示すデータがＷＤＴスタートレジスタＷＳＴに書き込まれることにより、ウォッチドッグタイマ５２０が停止する。
【０１０１】
さらに、ＷＤＴ制御回路５３３は、図９（Ｂ）に示すような遊技制御用マイクロコンピュータ１００が備える内蔵レジスタのうち、ＷＤＴクリアレジスタＷＣＬ（アドレスＦＥ２４Ｈ）に所定のＷＤＴクリアデータが設定されることにより、ウォッチドッグタイマ５２０のカウントクリアおよびリスタートを実行する。図１６（Ａ）は、ＷＤＴクリアレジスタＷＣＬの構成例を示している。図１６（Ｂ）は、ＷＤＴクリアレジスタＷＣＬに格納されるＷＤＴクリアデータによる設定内容の一例を示している。
【０１０２】
図１６（Ａ）および（Ｂ）に示す例において、ＷＤＴクリアレジスタＷＣＬに「５５Ｈ」がＣＰＵ５０５によって書き込まれ、次に「ＡＡＨ」がＣＰＵ５０５によって書き込まれたときに、ＷＤＴ制御回路５３３が１６ビットアップカウンタ５３６のカウント値をクリアしてカウント動作をリスタートさせる。こうして、ウォッチドッグタイマ５２０における監視時間となるタイムアウト時間の計測は、ＷＤＴクリアレジスタＷＣＬに「５５Ｈ」と「ＡＡＨ」という値が異なるＷＤＴクリアデータが順次に書き込まれることにより、初期化して再開することができる。なお、「５５Ｈ」と「ＡＡＨ」からなるＷＤＴクリアデータは、２バイト連続して書き込む必要はないが、この順番に書き込むことは必要になる。
【０１０３】
カウントクロック生成回路５３５は、内部システムクロックＳＣＬＫを用いて、タイムアウト時間を設定するための基準クロックを生成する。１６ビットアップカウンタ５３６は、カウントクロック生成回路５３５により生成された基準クロックをカウントする。そのカウント値がタイムアウト時間に対応する所定値に達したときには、出力制御回路５３７によりタイムアウト信号が出力される。一方、タイムアウト時間が経過するより前に、ＣＰＵ５０５がＷＤＴクリアレジスタＷＣＬにＷＤＴクリアデータを所定順序で書き込んだときには、１６ビットアップカウンタ５３５におけるカウント値のクリアおよびリスタートが行われる。例えばＣＰＵ５０５が無限ループとなる処理を実行して、遊技制御用マイクロコンピュータ１００の動作状態が待機状態に移行するときには、ウォッチドッグタイマ５２０を起動してタイムアウト時間の経過によるリセット動作を有効化する。このときには、ＷＤＴクリアレジスタＷＣＬにＷＤＴクリアデータが書き込まれないことから、１６ビットアップカウンタ５３５のカウント値が所定値に達してタイムアウトが発生する。出力制御回路５３７は、１６ビットアップカウンタ５３５からのタイムアウト信号を、リセットコントローラ５０４Ａのリセット回路などに出力する。
【０１０４】
遊技制御用マイクロコンピュータ１００が備える割込みコントローラ５０４Ｂは、遊技制御用マイクロコンピュータ１００の内部や外部にて発生する各種割込み要求を制御するためのものである。割込みコントローラ５０４Ｂが制御する割込みには、ノンマスカブル割込みＮＭＩとマスカブル割込みＩＮＴが含まれている。ノンマスカブル割込みＮＭＩは、ＣＰＵ５０５の割込み禁止状態でも無条件に受け付けられる割込みであり、外部ノンマスカブル割込み端子ＸＮＭＩ（入力ポートＰＩ６と兼用）に一定の期間にわたりローレベル信号が入力されたときに発生する割込みである。マスカブル割込みＩＮＴは、ＣＰＵ５０５の設定命令により、割込み要求の受け付けを許可／禁止できる割込みであり、優先順位設定による多重割込みの実行が可能である。マスカブル割込みＩＮＴの要因としては、外部マスカブル割込み端子ＸＩＮＴ（入力ポートＰＩ５と兼用）に一定の期間にわたりローレベル信号が入力が入力されたこと、タイマ５０８に含まれるタイマ回路にてタイムアウトが発生したこと、シリアル通信回路５１１にてデータ受信またはデータ送信による割込み要因が発生したこと、乱数回路５０９Ａ、５０９Ｂにて乱数値となる数値データの取込による割込み要因が発生したことなど、複数種類の割込み要因が予め定められていればよい。
【０１０５】
割込みコントローラ５０４Ｂは、図９（Ｂ）に示すような遊技制御用マイクロコンピュータ１００が備える内蔵レジスタのうち、割込みマスクレジスタＩＭＲ（アドレスＦＥ２６Ｈ）、割込み待ちモニタレジスタＩＲＲ（アドレスＦＥ２７Ｈ）、割込み中モニタレジスタＩＳＲ（アドレスＦＥ２８Ｈ）などを用いて、割込みの制御やリセットの管理を行う。割込みマスクレジスタＩＭＲは、互いに異なる複数の要因によるマスカブル割込みＩＮＴのうち、使用するものと使用しないものとを設定するレジスタである。割込み待ちモニタレジスタＩＲＲは、割込み初期設定ＫＩＩＳにより設定されたマスカブル割込み要因のそれぞれについて、マスカブル割込み要求信号の発生状態を確認するレジスタである。割込み中モニタレジスタＩＳＲは、割込み初期設定ＫＩＩＳにより設定されたマスカブル割込み要因のそれぞれについて、マスカブル割込み要求信号の処理状態を確認するレジスタである。
【０１０６】
遊技制御用マイクロコンピュータ１００が備えるＣＰＵ５０５は、ＲＯＭ５０６から読み出した制御コードに基づいてユーザプログラム（ゲーム制御用の遊技制御処理プログラム）を実行することにより、スロットマシン１における遊技制御を実行する制御用ＣＰＵである。こうした遊技制御が実行されるときには、ＣＰＵ５０５がＲＯＭ５０６から固定データを読み出す固定データ読出動作や、ＣＰＵ５０５がＲＡＭ５０７に各種の変動データを書き込んで一時記憶させる変動データ書込動作、ＣＰＵ５０５がＲＡＭ５０７に一時記憶されている各種の変動データを読み出す変動データ読出動作、ＣＰＵ５０５が外部バスインタフェース５０１やＰＩＰ５１０、シリアル通信回路５１１などを介して遊技制御用マイクロコンピュータ１００の外部から各種信号の入力を受け付ける受信動作、ＣＰＵ５０５が外部バスインタフェース５０１やシリアル通信回路５１１などを介して遊技制御用マイクロコンピュータ１００の外部へと各種信号を出力する送信動作等も行われる。
【０１０７】
このように、遊技制御用マイクロコンピュータ１００では、ＣＰＵ５０５がＲＯＭ５０６に格納されているプログラムに従って制御を実行するので、以下、遊技制御用マイクロコンピュータ１００（またはＣＰＵ５０５）が実行する（又は処理を行う）ということは、具体的には、ＣＰＵ５０５がプログラムに従って制御を実行することである。このことは、遊技制御基板４０以外の他の基板に搭載されているマイクロコンピュータについても同様である。
【０１０８】
遊技制御用マイクロコンピュータ１００が備えるＲＯＭ５０６には、ユーザプログラム（ゲーム制御用の遊技制御処理プログラム）を示す制御コードや固定データ等が記憶されている。また、ＲＯＭ５０６には、セキュリティチェックプログラム５０６Ａが記憶されている。ＣＰＵ５０５は、スロットマシン１の電源投入やシステムリセットの発生に応じて遊技制御用マイクロコンピュータ１００がセキュリティモードに移行したときに、ＲＯＭ５０６に記憶されたセキュリティチェックプログラム５０６Ａを読み出し、ＲＯＭ５０６の記憶内容が変更されたか否かを検査するセキュリティチェック処理を実行する。なお、セキュリティチェックプログラム５０６Ａは、ＲＯＭ５０６とは異なる内蔵メモリに記憶されてもよい。また、セキュリティチェックプログラム５０６Ａは、例えば外部バスインタフェース５０１を介して遊技制御用マイクロコンピュータ１００に外付けされた外部メモリの記憶内容を検査するセキュリティチェック処理に対応したものであってもよい。
【０１０９】
遊技制御用マイクロコンピュータ１００が備えるＲＡＭ５０７は、ゲーム制御用のワークエリアを提供する。ここで、ＲＡＭ５０７の少なくとも一部は、電源基板１０１において作成されるバックアップ電源によってバックアップされているバックアップＲＡＭであればよい。すなわち、スロットマシン１への電力供給が停止しても、所定期間はＲＡＭ５０７の少なくとも一部の内容が保存される。
【０１１０】
遊技制御用マイクロコンピュータ１００が備えるタイマ回路５０８は、例えば８ビットのプログラマブルタイマを３チャネル（ＰＴＣ０−ＰＴＣ２）内蔵して構成され、リアルタイム割込みの発生や時間計測を可能とする。各プログラマブルタイマＰＴＣ０−ＰＴＣ２は、内部システムクロックＳＣＬＫに基づいて生成されたカウントクロックの信号変化（例えばハイレベルからローレベルへと変化する立ち下がりタイミング）などに応じて、タイマ値が更新されるものであればよい。
【０１１１】
遊技制御用マイクロコンピュータ１００は、乱数回路として、例えば１６ビット乱数となる数値データを生成する乱数回路５０９Ａと、８ビット乱数となる数値データを生成する乱数回路５０９Ｂとを備えている。この実施の形態では、遊技制御基板４０の側において、内部抽選用の乱数値を示す数値データが、カウント（更新）可能に制御されればよい。なお、遊技効果を高めるために、これら以外の乱数値が用いられてもよい。こうした遊技の進行を制御するために用いられる乱数は、遊技用乱数ともいう。
【０１１２】
ＣＰＵ５０５は、乱数回路５０９Ａ、５０９Ｂから抽出した数値データに基づき、例えばＲＡＭ５０７の所定領域（遊技制御カウンタ設定部など）に設けられたランダムカウンタといった、乱数回路５０９Ａ、５０９Ｂとは異なるランダムカウンタを用いて、ソフトウェアによって各種の数値データを加工あるいは更新することで、乱数値の一部または全部を示す数値データをカウントするようにしてもよい。あるいは、ＣＰＵ５０５は、乱数回路５０９Ａ、５０９Ｂを用いることなく、例えば遊技制御カウンタ設定部に設けられたランダムカウンタのみを用いて、ソフトウェアによって乱数値を示す数値データの一部をカウント（更新）するようにしてもよい。一例として、ハードウェアとなる１６ビットの乱数回路５０９ＡからＣＰＵ５０５により抽出された数値データを、ソフトウェアにより加工することで、内部抽選用の乱数値を示す数値データが更新され、それ以外の乱数値ＭＲ２〜ＭＲ５を示す数値データは、ＣＰＵ５０５がランダムカウンタなどを用いてソフトウェアにより更新すればよい。
【０１１３】
あるいは、ＣＰＵ５０５は、１６ビットの乱数回路５０９Ａから抽出した数値データに基づき、ランダムカウンタを用いることで、あるいはランダムカウンタを用いることなく、内部抽選用の乱数値を示す数値データをカウントする。内部抽選用の乱数値は、各役への入賞を許容するかどうかを決定するための乱数値である。例えば、内部抽選用用の乱数値は、「０」〜「６５５３５」の範囲の値をとる。
【０１１４】
図１７は、１６ビットの乱数回路５０９Ａのうち、チャネルｃｈ０に対応する回路構成の一例を示すブロック図である。図１７に示すように、チャネルｃｈ０に対応して１６ビット乱数を生成するための回路は、乱数更新クロック選択回路５５１、乱数生成回路５５３Ａ、乱数起動設定回路５５３Ｂ、スタート値設定回路５５３Ｃ、乱数列変更回路５５４Ａ、乱数列変更設定回路５５４Ｂ、最大値比較回路５５５、ハードラッチセレクタ５５８Ａ、ハードラッチ乱数値レジスタ５５９Ａ、ソフトラッチ乱数値レジスタ５５９Ｓを備えて構成される。
【０１１５】
乱数更新クロック選択回路５５１は、例えば１６ビット乱数初期設定第１ＫＲＬ１のビット番号［２］（チャネルｃｈ０の場合）におけるビット値が“０”であるか“１”であるかに応じて、内部システムクロックＳＣＬＫまたは乱数用クロックＲＣＫの２分周（ＲＣＫ／２）を選択して、乱数更新クロックＲＧＫとして出力する。乱数更新クロック選択回路５５１から出力された乱数更新クロックＲＧＫは、乱数生成回路５５３Ａのクロック端子に入力されて、乱数生成回路５５３Ａにおけるカウント値の歩進に用いられる。
【０１１６】
なお、乱数更新クロック選択回路５５１によって選択された内部システムクロックＳＣＬＫまたは乱数用クロックＲＣＫの２分周（ＲＣＫ／２）が、所定のクロック用フリップフロップのクロック端子に入力されてもよい。クロック用フリップフロップでは、逆相出力端子（反転出力端子）がデータ入力端子に接続されている。そして、正相出力端子（非反転出力端子）から乱数更新クロックＲＧＫを出力する一方で、逆相出力端子（反転出力端子）からラッチ用クロックを出力する。この場合、クロック用フリップフロップは、クロック端子に入力されるクロック信号における信号状態が所定の変化をしたときに、正相出力端子（非反転出力端子）および逆相出力端子（反転出力端子）からの出力信号における信号状態を変化させる。例えば、クロック用フリップフロップは、クロック信号の信号状態がローレベルからハイレベルへと変化する立ち上がりのタイミング、あるいは、クロック信号の信号状態がハイレベルからローレベルへと変化する立ち下がりのタイミングのうち、いずれか一方のタイミングにて、データ入力端子における入力信号を取り込む。このとき、正相出力端子（非反転出力端子）からは、データ入力端子にて取り込まれた入力信号が反転されることなく出力される一方で、逆相出力端子（反転出力端子）からは、データ入力端子にて取り込まれた入力信号が反転されて出力される。こうして、クロック用フリップフロップの正相出力端子（非反転出力端子）からはクロック信号における発振周波数の１／２となる発振周波数を有する乱数更新クロックＲＧＫが出力される一方、逆相出力端子（反転出力端子）からは乱数更新クロックＲＧＫの逆相信号（反転信号）、すなわち乱数更新クロックＲＧＫと同一周波数で乱数更新クロックＲＧＫとは位相がπ（＝１８０°）だけ異なるラッチ用クロックが出力される。
【０１１７】
乱数用クロックＲＣＫの発振周波数と、制御用クロック生成回路１１１によって生成される制御用クロックＣＣＬＫの発振周波数とは、互いに異なる周波数となっており、また、いずれか一方の発振周波数が他方の発振周波数の整数倍になることがない。一例として、制御用クロックＣＣＬＫの発振周波数が１１．０ＭＨｚである一方で、乱数用クロックＲＣＫの発振周波数は９．７ＭＨｚであればよい。そのため、乱数更新クロックＲＧＫやラッチ用クロックはいずれも、ＣＰＵ５０５に供給される制御用クロックＣＣＬＫとは異なる周期で信号状態が変化する発振信号となる。すなわち、クロック用フリップフロップは、乱数用クロック生成回路１１２によって生成された乱数用クロックＲＣＫに基づき、カウント値を更新するための乱数更新クロックＲＧＫや、複数の乱数取得用クロックとなるラッチ用クロックとして、制御用クロックＣＣＬＫや内部システムクロックＳＣＬＫ（制御用クロックＣＣＬＫを２分周したもの）とは異なる周期で信号状態が変化する発振信号を生成する。
【０１１８】
乱数生成回路５５３Ａは、例えば１６ビットのカウンタなどから構成され、乱数更新クロック選択回路５５１から出力される乱数更新クロックＲＧＫなどの入力に基づき、数値データを更新可能な所定の範囲において所定の初期値から所定の最終値まで循環的に更新する回路である。例えば乱数生成回路５５３Ａは、所定のクロック端子への入力信号である乱数更新クロックＲＧＫにおける立ち下がりエッジに応答して、「０」から「６５５３５」までの範囲内で設定された初期値から「６５５３５」まで１ずつ加算するように数値データをカウントアップして行く。そして、「６５５３５」までカウントアップした後には、「０」から初期値よりも１小さい最終値となる数値まで１ずつ加算するようにカウントアップすることで、数値データを循環的に更新する。
【０１１９】
乱数起動設定回路５５３Ｂは、例えば１６ビット乱数初期設定第１ＫＲＬ１のビット番号［３］（チャネルｃｈ０の場合）におけるビット値が“０”であるか“１”であるかに応じて異なる乱数生成開始条件が成立したときに、１６ビット乱数の生成動作を開始させる設定を行う。より具体的には、対応するビット値が“０”である場合には、１６ビット乱数における最大値をユーザプログラム（ソフトウェア）で指定したときに、乱数生成回路５５３Ａを起動して１６ビット乱数の生成動作を開始させる。一方、対応するビット値が“１”である場合には、遊技制御用マイクロコンピュータ１００の動作状態がセキュリティモードからユーザモードに移行したときに、乱数生成回路５５３Ａを起動して１６ビット乱数の生成動作を開始させる。
【０１２０】
スタート値設定回路５５３Ｃは、例えば１６ビット乱数初期設定第３ＫＲＬ３のビット番号［１−０］（チャネルｃｈ０の場合）におけるビット値に応じて、乱数生成回路５５３Ａにより生成されるカウント値におけるスタート値を設定する。例えば、スタート値設定回路５５３Ｃは、対応するビット値が“００”または“０１”であればスタート値をデフォルト値である「００００Ｈ」に設定し、そのビット値が“００”であればシステムリセットごとにスタート値の変更を行わない一方、そのビット値が“０１”であればシステムリセットごとにスタート値の変更を行う。また、対応するビット値が“１０”または“１１”であればスタート値をＩＤナンバーに基づく値に設定し、そのビット値が“１０”であればシステムリセットごとにスタート値の変更を行わない一方、そのビット値が“１１”であればシステムリセットごとにスタート値の変更を行う。
【０１２１】
システムリセットごとにスタート値の変更を行う場合には、初期設定時にフリーランカウンタ５０９Ｃのカウント値をそのまま用いること、あるいは、そのカウント値を所定の演算関数（例えばハッシュ関数）に代入して得られた値を用いることなどにより、スタート値がランダムに決定されればよい。フリーランカウンタ５０９Ｃは、例えば遊技制御用マイクロコンピュータ１００のＲＡＭ５０７におけるバックアップ領域といった、遊技制御基板４０におけるバックアップ箇所と共通のバックアップ電源を用いてバックアップされるものであればよい。あるいは、フリーランカウンタ５０９Ｃは、ＲＡＭ５０７におけるバックアップ領域などに用いられるバックアップ電源とは別個に設けられた電源によりバックアップされてもよい。こうして、フリーランカウンタ５０９Ｃがバックアップ電源によってバックアップされることで、電力供給が停止した場合でも、所定期間はフリーランカウンタ５０９Ｃにおけるカウント値が保存されることになる。
【０１２２】
フリーランカウンタ５０９Ｃがバックアップ電源によってバックアップされるものに限定されず、例えばシステムリセットの発生時にフリーランカウンタ５０９Ｃのカウント値を所定の内蔵レジスタ（例えば乱数スタート値用レジスタ）に格納し、この内蔵レジスタがバックアップ電源によってバックアップされるようにしてもよい。そして、初期設定時に乱数スタート値用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数に代入して得られた値を用いることなどにより、スタート値がランダムに決定されてもよい。この場合、フリーランカウンタ５０９Ｃにおけるカウント値を読み出して乱数スタート値用レジスタに格納するタイミングは、システムリセットの発生時に限定されず、予め定められた任意のタイミングとしてもよい。フリーランカウンタ５０９Ｃは、乱数回路５０９Ａ、５０９Ｂに内蔵されて数値データのスタート値をランダムに決定するために用いられる専用のフリーランカウンタであってもよい。すなわち、フリーランカウンタ５０９Ｃは、セキュリティ時間を延長する際に延長時間のランダムな決定に用いられるフリーランカウンタとは別個の構成として設けられたものであってもよい。あるいは、フリーランカウンタ５０９Ｃとして、遊技制御用マイクロコンピュータ１００には内蔵されるが乱数回路５０９Ａ、５０９Ｂの外部に設けられて、セキュリティ時間を延長する際に延長時間のランダムな決定に用いられるフリーランカウンタと共通のものを用いてもよい。この場合には、数値データのスタート値を決定する処理と、セキュリティ時間中の延長時間をランダムに決定する処理とにおいて、例えばカウント値を代入する演算関数を互いに異ならせること、あるいは、一方の決定処理ではカウント値をそのまま用いるのに対して他方の決定処理ではカウント値を所定の演算関数に代入して得られた値を用いることなどにより、スタート値の決定手法と延長時間の決定手法とを異ならせてもよい。
【０１２３】
フリーランカウンタ５０９Ｃは、例えば８ビットのプログラマブルカウンタを４チャネル（ＰＣＣ０−ＰＣＣ３）内蔵してもよい。各プログラマブルカウンタＰＣＣ０−ＰＣＣ３は、内部システムクロックＳＣＬＫの信号変化、あるいは、プログラマブルカウンタＰＣＣ０−ＰＣＣ３のいずれかにおけるタイムアウトの発生などに応じて、カウント値が更新されるものであればよい。
【０１２４】
フリーランカウンタ５０９Ｃは、乱数回路５０９Ａ、５０９Ｂに内蔵されてもよいし、乱数回路５０９Ａ、５０９Ｂには内蔵されないものの遊技制御用マイクロコンピュータ１００の内部回路に含まれてもよい。また、フリーランカウンタ５０９Ｃは、セキュリティ時間を延長する際の延長時間をシステムリセット毎にランダムに決定するために用いられるフリーランカウンタと、同一のカウンタであってもよいし、別個に設けられたカウンタであってもよい。
【０１２５】
乱数列変更回路５５４Ａは、乱数生成回路５５３Ａにより生成された数値データの順列を所定の乱数更新規則に従った順列に変更可能とする回路である。例えば、乱数列変更回路５５４Ａは、乱数生成回路５５３Ａから出力される数値データにおけるビットの入れ替えや転置などのビットスクランブル処理を実行する。また、乱数列変更回路５５４Ａは、例えばビットスクランブル処理に用いるビットスクランブル用キーやビットスクランブルテーブルを変更することなどにより、数値データの順列を変更することができる。
【０１２６】
乱数列変更設定回路５５４Ｂは、例えば１６ビット乱数初期設定第１ＫＲＬ１のビット番号［１−０］（チャネルｃｈ０の場合）におけるビット値などに応じて、乱数列変更回路５５４Ｂにおける乱数更新規則を変更する設定を行うための回路である。例えば、乱数列変更設定回路５５４Ｂは、対応するビット値が“００”であれば乱数更新規則を変更しない設定とする一方、そのビット値が“０１”であればソフトウェアでの変更要求に応じて乱数更新規則を変更し、そのビット値が“１０”であれば２周目から自動で乱数更新規則を変更する。また、そのビット値が“１１”であれば１周目から自動で乱数更新規則を変更する。
【０１２７】
乱数列変更回路５５４Ｂは、１６ビット乱数初期設定第１ＫＲＬ１などにおいて対応するビット値が“０１”でありソフトウェアによる乱数更新規則の変更を行う場合に、図９（Ｂ）に示すような遊技制御用マイクロコンピュータ１００が備える内蔵レジスタのうち、乱数列変更レジスタＲＤＳＣ（アドレスＦＥ７３Ｈ）を用いて、乱数更新規則の変更を制御する。図１８（Ａ）は、チャネルｃｈ０の１６ビット乱数に対応した乱数列変更レジスタＲＤＳＣの構成例を示している。図１８（Ｂ）は、乱数列変更レジスタＲＤＳＣに格納される乱数列変更要求データの設定内容を示している。乱数列変更レジスタＲＤＳＣのビット番号［０］に格納される乱数列変更要求データＲＤＳＣ０は、乱数更新規則をソフトウェアにより変更する場合に、乱数列の変更要求の有無を示している。図１８（Ｂ）に示す例では、ソフトウェアにより乱数列の変更要求がないときに、乱数列変更要求データＲＤＳＣ０のビット値が“０”となる一方、乱数列の変更要求があったときには、そのビット値が“１”となる。
【０１２８】
図１９は、乱数更新規則をソフトウェアにより変更する場合の動作例を示している。この場合、乱数生成回路５５３Ａから出力されるカウント値順列ＲＣＮが所定の初期値から所定の最終値まで循環的に更新されたときに、乱数列変更要求データＲＤＳＣ０が“１”であることに応答して、乱数更新規則を変更する。図１９に示す動作例では、始めに乱数列変更回路５５４Ａから出力される乱数列ＲＳＮが、「０→１→…→６５５３５」となっている。この後、ＣＰＵ５０５がＲＯＭ５０６に格納されたユーザプログラムを実行することによって、所定のタイミングで乱数列変更レジスタＲＤＳＣのビット番号［０］に“１”が書き込まれたものとする。
【０１２９】
そして、１６ビット乱数初期設定第１ＫＲＬ１のビット番号［１−０］が“０１”であることに対応して、乱数列変更設定回路５５４Ｂが乱数列変更要求データＲＤＳＣ０を読み出し、そのビット値が“１”であることに応答して、乱数更新規則を変更するための設定を行う。このとき、乱数列変更設定回路５５４Ｂは、乱数生成回路５５３Ａから出力されたカウント値順列ＲＣＮが所定の最終値に達したことに応じて、例えば予め用意された複数種類の乱数更新規則のいずれかを選択することなどにより、乱数更新規則を変更する。図１９に示す動作例では、乱数列変更回路５５４Ａが乱数生成回路５５３Ａから出力されたカウント値順列ＲＣＮにおける最終値に対応する数値データ「６５５３５」を出力した後、乱数列変更要求データＲＤＳＣ０に応じて乱数更新規則を変更する。その後、乱数列変更回路５５４Ａは、変更後の乱数更新規則に従った乱数列ＲＳＮとして、「６５５３５→６５５３４→…→０」を出力する。乱数列変更レジスタＲＤＳＣは、乱数列変更設定回路５５４Ｂにより乱数列変更要求データＲＤＳＣ０が読み出されたときに初期化される。そのため、再び乱数列変更レジスタＲＤＳＣのビット番号［０］にビット値“１”が書き込まれるまでは、乱数列変更回路５５４Ａから出力される乱数列ＲＳＮが、「６５５３５→６５５３４→…→０」となる。
【０１３０】
ＣＰＵ５０５がＲＯＭ５０６に格納されたユーザプログラムを実行することによって、乱数列変更レジスタＲＤＳＣのビット番号［０］に再びビット値“１”が書き込まれると、乱数更新規則が再度変更される。図１９に示す動作例では、乱数列変更回路５５４Ａが乱数列ＲＳＮにおける最終値に対応する数値データ「０」を出力したときに、乱数列変更要求データＲＤＳＣ０としてビット値“１”が書き込まれたことに応じて乱数更新規則を変更する。その後、乱数列変更回路５５４Ａは、変更後の乱数更新規則に従った乱数列ＲＳＮとして、「０→２→…→６５５３４→１→…→６５５３５」を出力する。
【０１３１】
図２０は、乱数更新規則を自動で変更する場合の動作例を示している。この場合、乱数生成回路５５３Ａから出力されるカウント値順列ＲＣＮが所定の初期値から所定の最終値まで循環的に更新されたことに応じて、乱数列変更設定回路５５４Ｂが自動的に乱数更新規則を変更する。図２０に示す動作例では、始めに乱数列変更回路５５４Ａから出力される乱数列ＲＳＮが、「０→１→…→６５５３５」となっている。
【０１３２】
そして、乱数列変更回路５５４Ａから出力された乱数列ＲＳＮが所定の最終値に達したときに、乱数列変更設定回路５５４Ｂは、予め用意された複数種類の更新規則のうちから予め定められた順序に従って更新規則を選択することにより、更新規則を変更するようにしてもよい。あるいは、乱数列変更設定回路５５４Ｂは、複数種類の更新規則のうちから任意の更新規則を選択することにより、更新規則を変更するようにしてもよい。図２０に示す動作例では、１回目の乱数更新規則の変更により、乱数列変更回路５５４Ａから出力される乱数列ＲＳＮが、「６５５３５→６５５３４→…→０」となる。その後、２回目の乱数更新規則の変更により、乱数列変更回路５５４Ａから出力される乱数列ＲＳＮは、「０→２→…→６５５３４→１→…→６５５３５」となる。図２０に示す動作例では、３回目の乱数更新規則の変更により、乱数列変更回路５５４Ａから出力される乱数列ＲＳＮは、「６５５３４→０→…→３２７６８」となる。４回目の乱数更新規則の変更が行われたときには、乱数列変更回路５５４Ａから出力される乱数列ＲＳＮが、「１６３８３→４９１５１→…→４９１５０」となる。５回目の乱数更新規則の変更が行われたときには、乱数列変更回路５５４Ａから出力される乱数列ＲＳＮが、「４→３→…→４６５５３１」となる。
【０１３３】
このように、乱数列変更回路５５４Ａは、乱数生成回路５５３Ａから出力されたカウント値順列ＲＣＮを、乱数列変更設定回路５５４Ｂの設定により予め定められた乱数更新規則に基づいて変更することで、数値データを所定手順により更新した乱数列ＲＳＮを出力することができる。
【０１３４】
最大値比較回路５５５は、予めユーザ設定された乱数の最大値と、乱数列変更回路５５４Ａから出力される乱数列ＲＳＮを比較し、最大値より大きい出力値があった場合に、乱数生成回路５５３Ａに対しリセットとリスタートを指示する。最大値比較回路５５５は、図９（Ｂ）に示すような遊技制御用マイクロコンピュータ１００が備える内蔵レジスタのうち、乱数最大値設定レジスタＲＭＸ（アドレスＦＥ６７−ＦＥ７２Ｈ）を用いて、乱数最大値を設定する。図２１（Ａ）および（Ｂ）は、乱数最大値設定レジスタＲＭＸのうち、チャネルｃｈ０の１６ビット乱数に対応した乱数最大値設定レジスタＲＬ０ＭＸの構成例を示している。ＣＰＵ５０５は、例えばユーザプログラムによって予め指定された乱数の最大値を示す乱数最大値設定データを、乱数最大値設定レジスタＲＬ０ＭＸなどに書き込む。乱数最大値設定レジスタＲＬ０ＭＸに乱数最大値設定データが書き込まれたときには、チャネルｃｈ０の１６ビット乱数について最大値が設定される。１６ビット乱数の最大値は、例えば「２５６」〜「６５５３５」の範囲で任意の値を設定できればよい。例えば１６ビット乱数初期設定第１ＫＲＬ１のビット番号［３］（チャネルｃｈ０の場合）におけるビット値が“０”である場合には、１６ビット乱数について最大値の設定が可能になり、その最大値を設定することで、１６ビット乱数の生成動作をユーザプログラム（ソフトウェア）で開始させることができる。
【０１３５】
ハードラッチセレクタ５５８Ａは、乱数ラッチ信号ＬＬ１として出力する信号を、ＰＩＰ５１０の入力ポートＰＩ０〜入力ポートＰＩ５における入力信号のうちから選択する。ハードラッチセレクタ５５８Ａは、図９（Ｂ）に示すような遊技制御用マイクロコンピュータ１００が備える内蔵レジスタのうち、ハードラッチ選択レジスタＲＬＳ（アドレスＦＥ５Ｂ−ＦＥ６１Ｈ）に含まれるハードラッチ選択レジスタＲＬ０ＬＳ０を用いて、乱数ラッチ信号ＬＬ１として出力する信号を選択する。図２２（Ａ）は、ハードラッチ選択レジスタＲＬ０ＬＳ０として用いられるハードラッチ選択レジスタＲＬ０ＬＳの構成例を示している。図２２（Ｂ）は、ハードラッチ選択レジスタＲＬ０ＬＳに格納されるハードラッチ選択データの各ビットにおける設定内容の一例を示している。
【０１３６】
ハードラッチ選択レジスタＲＬ０ＬＳのビット番号［３］に格納されるハードラッチ選択データＲＬ０３ＬＳは、ハードウェアによる乱数値の取込条件を示している。図２２（Ｂ）に示す例では、ハードラッチ選択データＲＬ０３ＬＳのビット値が“０”である場合に、対応するハードラッチ乱数値レジスタ（例えばハードラッチ乱数値レジスタ５５９Ａ）の格納値を読み出すことにより、次の値をラッチ可能に設定する。一方、ラッチ選択データＲＬ０３ＬＳのビット値が“１”である場合には、対応するハードラッチ乱数値レジスタの格納値を読み出さなくても、次の値をラッチ可能に設定する。
【０１３７】
ハードラッチ選択レジスタＲＬ０ＬＳのビット番号［２−０］に格納されるハードラッチ選択データＲＬ０２ＬＳ〜ＲＬ００ＬＳは、対応する乱数ラッチ信号（例えば乱数ラッチ信号ＬＬ１、ＬＬ２のいずれか）として出力する信号の外部端子入力を選択するための設定データである。図２２（Ｂ）に示す例では、ラッチ選択データＲＬ０２ＬＳ〜ＲＬ００ＬＳの値に応じて、入力ポートＰＩ０〜入力ポートＰＩ５のいずれかにおける入力を、外部端子入力として選択することができる。
【０１３８】
この実施の形態では、入力ポートＰＩ０にスタートスイッチ７からの検出信号ＳＳ１が入力される。ハードラッチセレクタ５５８Ａは、ハードラッチ選択レジスタＲＬ０ＬＳ０の格納値に基づいて、入力ポートＰＩ０に入力されたスタートスイッチ７からの検出信号ＳＳ１を選択し、乱数ラッチ信号ＬＬ１として出力する。なお、乱数ラッチ信号ＬＬ１は、第１のラッチ用クロックと同期して出力されるようにしてもよい。
【０１３９】
スタートスイッチ７からの検出信号ＳＳ１は、スタートスイッチ７から直接伝送されるものに限定されない。一例として、スタートスイッチ７からの出力信号がオン状態となっている時間を計測し、計測した時間が所定の時間（例えば３ミリ秒）になったときに、スタートスイッチ７からの検出信号ＳＳ１を出力するタイマ回路を設けてもよい。
【０１４０】
ハードラッチ乱数値レジスタ５５９Ａはそれぞれ、最大値比較回路５５５から出力された乱数列ＲＳＮにおける数値データを乱数値として格納するレジスタである。ハードラッチ乱数値レジスタ５５９Ａはいずれも１６ビット（２バイト）のレジスタであり、例えばチャネルｃｈ０に対応してそれぞれ１６ビットの乱数値を格納することができる。
【０１４１】
ハードラッチ乱数値レジスタ５５９Ａは、ハードラッチセレクタ５５８Ａから供給される乱数ラッチ信号ＬＬ１がオン状態となったことに応答して、最大値比較回路５５５から出力された乱数列ＲＳＮにおける数値データを乱数値として取り込んで格納する。ハードラッチ乱数値レジスタ５５９Ａは、ＣＰＵ５０５から供給されるレジスタリード信号がオン状態となったときに、読出可能（イネーブル）状態となり、格納されている数値データを内部バス等に出力してもよい。これに対して、レジスタリード信号がオフ状態であるときには、常に同じ値（例えば「６５５３５Ｈ」など）を出力して、読出不能（ディセーブル）状態としてもよい。また、ハードラッチ乱数値レジスタ５５９Ａは、乱数ラッチ信号ＬＬ１がオン状態である場合に、レジスタリード信号を受信不可能な状態となるようにしてもよい。さらに、ハードラッチ乱数値レジスタ５５９Ａは、乱数ラッチ信号ＬＬ１がオン状態となるより前にレジスタリード信号がオン状態となっている場合に、乱数ラッチ信号ＬＬ１を受信不可能な状態となるようにしてもよい。
【０１４２】
ハードラッチ乱数値レジスタ５５９Ａは、図９（Ｂ）に示すような遊技制御用マイクロコンピュータ１００が備える内蔵レジスタのうち、乱数ハードラッチフラグレジスタＲＨＦ（アドレスＦＥ８２−ＦＥ８４Ｈ）と、乱数割込み制御レジスタＲＩＣ（アドレスＦＥ６４−ＦＥ６６Ｈ）とを用いて、乱数ラッチ時の動作管理や割込み制御を可能にする。乱数ハードラッチフラグレジスタＲＨＦは、ハードラッチ乱数値レジスタ５５９Ａに対応して、乱数値となる数値データがラッチされたか否かを示す乱数ラッチフラグを格納するレジスタである。例えば、乱数ハードラッチフラグレジスタＲＨＦでは、ハードラッチ乱数値レジスタ５５９Ａに対応した乱数ラッチフラグの状態（オンまたはオフ）を示すデータが格納される。ハードラッチ乱数値レジスタ５５９Ａに数値データが取り込まれて格納されたときには、対応する乱数ラッチフラグがオン状態となることで、新たな数値データの格納が制限されてもよい。この場合、ハードラッチ乱数値レジスタ５５９Ａに格納された数値データが読み出されたときに、対応する乱数ラッチフラグがオフ状態となることで、新たな数値データの格納が許可されればよい。乱数割込み制御レジスタＲＩＣは、ハードラッチ乱数値レジスタ５５９Ａに乱数値となる数値データがラッチされたときに発生する割込みの許可／禁止を設定するレジスタである。
【０１４３】
図２３（Ａ）は、乱数ハードラッチフラグレジスタＲＨＦの構成例を示している。図２３（Ｂ）は、乱数ハードラッチフラグレジスタＲＨＦに格納されるハードラッチフラグＲＬＨＦ０となる各ビットにおける設定内容の一例を示している。乱数ハードラッチフラグレジスタＲＨＦのビット番号［１−０］に格納されるハードラッチフラグデータＲＬ０１ＨＦ、ＲＬ００ＨＦは、ハードラッチ乱数値レジスタＲＬ０ＨＶ０となるハードラッチ乱数値レジスタ５５９Ａに数値データが取り込まれたか否かを示す乱数ラッチフラグとなる。図２３（Ｂ）に示す例では、ハードラッチ乱数値レジスタＲＬ０ＨＶ０（５５９Ａ）に数値データが取り込まれていないときに（乱数値取込なし）、ハードラッチフラグデータＲＬ０１ＨＦ、ＲＬ００ＨＦのビット値がいずれも“０”となって乱数ラッチフラグがオフ状態にクリアされる一方、数値データが取り込まれたときには（乱数値取込あり）、それらのビット値が“１”となって乱数ラッチフラグがオン状態にセットされる。
【０１４４】
図２２（Ａ）および（Ｂ）に示すハードラッチ選択レジスタＲＬ０ＬＳのビット番号［３］におけるビット値が“０”である場合には、各乱数ラッチフラグがオンであるときに、それらの乱数ラッチフラグと対応付けられたハードラッチ乱数値レジスタＲＬ０ＨＶ０（５５９Ａ）における新たな数値データの格納が制限（禁止）される。すなわち、ハードラッチ乱数値レジスタＲＬ０ＨＶ０（５５９Ａ）に数値データが取り込まれたか否かを示すハードラッチフラグデータＲＬ０１ＨＦ、ＲＬ００ＨＦのビット値がいずれも“１”となって乱数ラッチフラグがオン状態であるときには、ハードラッチ乱数値レジスタＲＬ０ＨＶ０（５５９Ａ）に格納された数値データを変更することができず、新たな数値データの格納（取り込み）が制限（禁止）される。これに対して、各乱数ラッチフラグがオフであるときには、それらの乱数ラッチフラグと対応付けられたハードラッチ乱数値レジスタＲＬ０ＨＶ０（５５９Ａ）における新たな数値データの格納が許可される。すなわち、ハードラッチフラグデータＲＬ０１ＨＦ、ＲＬ００ＨＦのビット値がいずれも“０”となって乱数ラッチフラグがオフ状態であるときには、ハードラッチ乱数値レジスタＲＬ０ＨＶ０（５５９Ａ）に格納された数値データを変更することができ、新たな数値データの格納（取り込み）が許可される。
【０１４５】
なお、ハードラッチフラグデータＲＬ０３ＨＦ〜ＲＬ００ＨＦのビット値は、“０”となることで対応する乱数ラッチフラグがオフ状態にクリアされる一方で“１”となることでオン状態にセットされる正論理のものに限定されず、“１”となることで対応する乱数ラッチフラグがオフ状態となる一方で“０”となることでオン状態となる負論理のものであってもよい。すなわち、各乱数ラッチフラグは、対応するハードラッチ乱数値レジスタＲＬ０ＨＶ０（５５９Ａ）に数値データが格納されたときにオン状態となり新たな数値データの格納が制限（禁止）される一方で、対応するハードラッチ乱数値レジスタＲＬ０ＨＶ０（５５９Ａ）の読み出しが行われたときにオフ状態となり新たな数値データの格納が許可されるものであればよい。
【０１４６】
図２４（Ａ）は、乱数割込み制御レジスタＲＩＣに含まれるチャネルｃｈ０の１６ビット乱数に対応したハードラッチ割込み制御レジスタＲＬＩＣ０の構成例を示している。図２４（Ｂ）は、ハードラッチ割込み制御レジスタＲＬＩＣ０に格納されるハードラッチ割込み制御データの各ビットにおける設定内容の一例を示している。ハードラッチ割込み制御レジスタＲＬＩＣ０のビット番号［１−０］に格納されるハードラッチ割込み制御データＲＬ０１ＩＥ、ＲＬ００ＩＥは、ハードラッチ乱数値レジスタＲＬ０ＨＶ０となるハードラッチ乱数値レジスタ５５９Ａに数値データが取り込まれたときに発生する割込みを、許可するか禁止するかの割込み制御設定を示している。図２４（Ｂ）に示す例では、ハードラッチ乱数値レジスタＲＬ０ＨＶ０（５５９Ａ）への取込時における割込みを禁止する場合に（割込み禁止）、ハードラッチ割込み制御データＲＬ０１ＩＥ、ＲＬ００ＩＥのビット値をいずれも“０”とする一方、この割込みを許可する場合には（割込み許可）、それらのビット値を“１”とする。
【０１４７】
ソフトラッチ乱数値レジスタ５５９Ｓは、最大値比較回路５５５から出力された乱数列ＲＳＮにおける数値データを、ユーザプログラム（ソフトウェア）により乱数値として格納するレジスタである。ソフトラッチ乱数値レジスタ５５９Ｓは、１６ビット（２バイト）のレジスタであり、例えばチャネルｃｈ０に対応して１６ビットの乱数値を格納することができればよい。
【０１４８】
ソフトラッチ乱数値レジスタ５５９Ｓには、図９（Ｂ）に示すような遊技制御用マイクロコンピュータ１００が備える内蔵レジスタのうち、乱数ソフトラッチレジスタＲＤＳＬ（アドレスＦＥ７４Ｈ）を用いて、乱数ソフトラッチ信号が入力される。図２５（Ａ）は、チャネルｃｈ０に対応した乱数ソフトラッチレジスタＲＤＳＬの構成例を示している。図２５（Ｂ）は、乱数ソフトラッチレジスタＲＤＳＬに格納される乱数ソフトラッチデータの設定内容を示している。乱数ソフトラッチレジスタＲＤＳＬのビット番号［０］に格納される乱数ソフトラッチデータＲＤＳＬ０は、チャネルｃｈ０の１６ビット乱数をソフトウェアによりラッチする場合に、乱数値のラッチ要求の有無を示している。図２５（Ｂ）に示す例では、ソフトウェアにより乱数値のラッチ要求がないときに、乱数ソフトラッチデータＲＤＳＬ０のビット値が“０”となる一方、ソフトウェアにより乱数値のラッチ要求があったときには、そのビット値が“１”となる。
【０１４９】
ソフトラッチ乱数値レジスタ５５９Ｓは、乱数ソフトラッチレジスタＲＤＳＬに格納される乱数ソフトラッチデータＲＤＳＬ０のビット値が“１”となったことに応答して、最大値比較回路５５５から出力された乱数列ＲＳＮにおける数値データを乱数値として取り込んで格納する。ソフトラッチ乱数値レジスタ５５９Ｓは、図９（Ｂ）に示すような遊技制御用マイクロコンピュータ１００が備える内蔵レジスタのうち、乱数ソフトラッチフラグレジスタＲＤＳＦ（アドレスＦＥ７５Ｈ）を用いて、乱数ラッチ時の動作管理を可能にする。乱数ソフトラッチフラグレジスタＲＤＳＦは、ソフトラッチ乱数値レジスタ５５９Ｓに乱数値となる数値データがラッチされたか否かを示す乱数ソフトラッチフラグを格納するレジスタである。図２６（Ａ）は、乱数ソフトラッチフラグレジスタＲＤＳＦの構成例を示している。図２６（Ｂ）は、乱数ソフトラッチフラグレジスタＲＤＳＦに格納されるソフトラッチフラグデータの設定内容を示している。乱数ソフトラッチフラグレジスタＲＤＳＦのビット番号［０］に格納されるソフトラッチフラグデータＲＤＳＦ０は、チャネルｃｈ０の１６ビット乱数がソフトラッチ乱数値レジスタＲＬ０ＳＶとなるソフトラッチ乱数値レジスタ５５９Ｓに取り込まれたか否かを示す乱数ソフトラッチフラグとなる。
【０１５０】
図２６（Ｂ）に示す例では、ソフトラッチ乱数値レジスタＲＬ０ＳＶに数値データが取り込まれていないときに（乱数値取込なし）、ソフトラッチフラグデータＲＤＳＦ０のビット値が“０”となって乱数ソフトラッチフラグがオフ状態にクリアされる一方、数値データが取り込まれたときには（乱数値取込あり）、そのビット値が“１”となって乱数ソフトラッチフラグがオン状態にセットされる。乱数ソフトラッチフラグがオンであるときには、ソフトラッチ乱数値レジスタＲＬ０ＳＶにおける新たな数値データの格納が制限（禁止）される。すなわち、ソフトラッチ乱数値レジスタＲＬ０ＳＶに数値データが取り込まれたか否かを示すソフトラッチフラグデータＲＤＳＦ０のビット値が“１”となって乱数ソフトラッチフラグがオン状態であるときには、ソフトラッチ乱数値レジスタＲＬ０ＳＶに格納された数値データを変更することができず、新たな数値データの格納（取り込み）が制限（禁止）される。これに対して、乱数ソフトラッチフラグがオフであるときには、ソフトラッチ乱数値レジスタＲＬ０ＳＶにおける新たな数値データの格納が許可される。すなわち、ソフトラッチフラグデータＲＤＳＦ０のビット値が“０”となって乱数ソフトラッチフラグがオフ状態であるときには、ソフトラッチ乱数値レジスタＲＬ０ＳＶに格納された数値データを変更することができ、新たな数値データの格納（取り込み）が許可される。
【０１５１】
１６ビットの乱数回路５０９Ａでは、チャネルｃｈ１〜ｃｈ３についてもチャネルｃｈ０と同様に、独立して１６ビット乱数を発生させるための回路が設けられていればよい。なお、チャネルｃｈ０に対応して１６ビット（２バイト）のハードラッチ乱数値レジスタ５５９Ａが２つ設けられる一方、チャネルｃｈ１〜ｃｈ３のそれぞれに対応して１６ビット（２バイト）のハードラッチ乱数値レジスタが１つだけ設けられてもよい。
【０１５２】
８ビットの乱数回路５０９Ｂには、チャネルｃｈ０〜ｃｈ３のそれぞれに対応して、８ビット乱数を独立して発生させるための回路が設けられていればよい。例えば、チャネルｃｈ０に対応して８ビット乱数を生成するための回路は、図１７に示した回路を、８ビット乱数の生成に適合するように構成したものであればよく、乱数更新クロック選択回路、乱数生成回路、乱数起動設定回路、乱数列変更回路、乱数列変更設定回路、最大値比較回路、ハードラッチセレクタ、ハードラッチ乱数値レジスタ、ソフトラッチ乱数値レジスタを備えて構成されればよい。
【０１５３】
図７に示す構成例では、乱数回路５０９Ａ、５０９Ｂが遊技制御用マイクロコンピュータ１００に内蔵されている。これに対して、乱数回路５０９Ａ、５０９Ｂは、遊技制御用マイクロコンピュータ１００とは異なる乱数回路チップとして、遊技制御用マイクロコンピュータ１００に外付けされるものであってもよい。この場合、スタートスイッチ７からの検出信号ＳＳ１をスイッチ回路１１４の内部にて分岐し、一方を遊技制御用マイクロコンピュータ１００が備えるＰＩＰ５１０の入力ポートＰＩ０へと入力させて、他方を乱数回路５０９Ａが備えるハードラッチセレクタ５５８Ａの入力端子へと入力させればよい。遊技制御用マイクロコンピュータ１００との間では、例えば遊技制御用マイクロコンピュータ１００が備えるクロック回路５０２からシステムクロック出力端子ＣＬＫＯを介して出力された内部システムクロックＳＣＬＫを乱数回路５０９Ａが備える乱数更新クロック選択回路５５１やクロック用フリップフロップへと入力させたり、遊技制御用マイクロコンピュータ１００が備える外部バスインタフェース５０１に接続されたアドレスバスやデータバス、制御信号線などを介して、ハードラッチ乱数値レジスタＲＬ０ＨＶ０やハードラッチ乱数値レジスタＲＬ０ＨＶ１に格納された数値データの読み出しなどが行われたりすればよい。
【０１５４】
また、乱数回路５０９Ａ、５０９Ｂが遊技制御用マイクロコンピュータ１００に外付けされる場合にも、各乱数ラッチフラグの状態（オン／オフ）に応じて、ハードラッチ乱数値レジスタＲＬ０ＨＶ０やハードラッチ乱数値レジスタＲＬ０ＨＶ１への新たな数値データの格納が制限（禁止）あるいは許可されるようにすればよい。図９（Ｂ）に示す内蔵レジスタのうち、例えばハードラッチ選択レジスタＲＬＳや乱数割込み制御レジスタＲＩＣ、乱数最大値設定レジスタＲＭＸ、乱数列変更レジスタＲＤＳＣ、乱数ソフトラッチレジスタＲＤＳＬ、乱数ソフトラッチフラグレジスタＲＤＳＦ、ソフトラッチ乱数値レジスタＲＳＶ、乱数ハードラッチフラグレジスタＲＨＦ、ハードラッチ乱数値レジスタＲＨＶといった、乱数回路５０９Ａ、５０９Ｂが使用する各種レジスタは、遊技制御用マイクロコンピュータ１００には内蔵されず、遊技制御用マイクロコンピュータ１００に外付けされた乱数回路５０９Ａ、５０９Ｂに内蔵されるようにしてもよい。この場合、遊技制御用マイクロコンピュータ１００のＣＰＵ５０５は、例えば外部バスインタフェース５０１などを介して、乱数回路５０９Ａ、５０９Ｂに内蔵された各種レジスタの書き込みや読み出しを行うようにすればよい。
【０１５５】
図７に示す遊技制御用マイクロコンピュータ１００が備えるＰＩＰ５１０は、例えば８ビット幅の入力専用ポートであり、専用端子となる入力ポートＰＩ０〜入力ポートＰＩ４と、機能兼用端子となる入力ポートＰＩ５〜入力ポートＰＩ７とを含んでいる。入力ポートＰＩ５は、割り込みコントローラ５０４Ｂに接続される外部マスカブル割込み端子ＸＩＮＴと兼用される。入力ポートＰＩ６は、割り込みコントローラ５０４Ｂに接続される外部ノンマスカブル割込み端子ＸＮＭＩと兼用される。入力ポートＰＩ７は、シリアル通信回路５１１が使用する受信端子ＲＸ０と兼用される。入力ポートＰＩ５〜入力ポートＰＩ７の使用設定は、プログラム管理エリアに記憶される機能設定により指示される。
【０１５６】
ＰＩＰ５１０は、遊技制御用マイクロコンピュータ１００が備える内蔵レジスタのうちの入力ポートレジスタなどを用いて、入力ポートＰＩ０〜入力ポートＰＩ７の状態管理等を行う。入力ポートレジスタは、入力ポートＰＩ０〜入力ポートＰＩ７のそれぞれに対応して、外部信号の入力状態を示すビット値が格納されるレジスタである。
【０１５７】
遊技制御用マイクロコンピュータ１００が備えるシリアル通信回路５１１は、例えば全二重、非同期、標準ＮＲＺ（Non Return to Zero）フォーマットで通信データを取扱う回路である。一例として、シリアル通信回路５１１は、外部回路との間にて双方向でシリアルデータを送受信可能な第１チャネル送受信回路と、外部回路との間にて単一方向でシリアルデータを送信のみが可能な第２チャネル送信回路とを含んでいればよい。シリアル通信回路５１１が備える第２チャネル送信回路は、演出制御基板９０に搭載されたサブ制御部９１との間における単一方向（送信のみ）のシリアル通信に使用されてもよい。これにより、演出制御基板１２の側から主基板１１に対する信号入力を禁止して、不正行為を防止することができる。
【０１５８】
シリアル通信回路５１１では、例えばオーバーランエラー、ブレークコードエラー、フレーミングエラー、パリティエラーといった、４種類のエラーが通信データの受信時に発生することがあり、いずれかのエラーが発生したときに、受信割込みを発生させることができればよい。オーバーランエラーは、受信済みの通信データがユーザプログラムによってリードされるより前に、次の通信データを受信してしまった場合に発生するエラーである。ブレークコードエラーは、通信データの受信中に所定のブレークコードが検出されたとき発生するエラーである。フレーミングエラーは、受信した通信データにおけるストップビットが“０”である場合に発生するエラーである。パリティエラーは、パリティ機能を使用する設定とした場合、受信した通信データのパリティが、予め指定したパリティと一致しない場合に発生するエラーである。
【０１５９】
シリアル通信回路５１１は、第１割込み制御回路と、第２割込み制御回路とを含んでいてもよい。第１割込み制御回路は、シリアル通信回路５１１に含まれる第１チャネル送受信回路における割込み発生因子を管理して、通信割込み要求を制御するための回路である。第１割込み制御回路が制御する割込みには、第１チャネル送信割込みと、第１チャネル受信割込みとがある。第１チャネル送信割込みには、送信完了による割込みや、送信データエンプティによる割込みが含まれている。第１チャネル受信割込みには、受信データフルによる割込みや、ブレークコードエラー、オーバーランエラー、フレーミングエラー、パリティエラーといった受信時エラーの発生による割込みが含まれている。第２割込み制御回路は、シリアル通信回路５１１に含まれる第２チャネル受信回路における割込み発生因子を管理して、通信割込み要求を制御するための回路である。第２割込み制御回路が制御する割込みは、第２チャネル送信割込みである。第２チャネル送信割込みには、送信完了による割込みや、送信データエンプティによる割込みが含まれている。
【０１６０】
遊技制御用マイクロコンピュータ１００が備えるアドレスデコード回路５１２は、遊技制御用マイクロコンピュータ１００の内部における各機能ブロックのデコードや、外部装置用のデコード信号であるチップセレクト信号のデコードを行うための回路である。チップセレクト信号により、遊技制御用マイクロコンピュータ１００の内部回路、あるいは、周辺デバイスとなる外部装置を、選択的に有効動作させて、ＣＰＵ５０５からのアクセスが可能となる。
【０１６１】
遊技制御用マイクロコンピュータ１００が備えるＲＯＭ５０６には、ゲームの進行を制御するために用いられる各種の選択用データ、テーブルデータなどが格納される。例えば、ＲＯＭ５０６には、ＣＰＵ５０５が各種の判定や決定、設定を行うために用意された複数の判定テーブルや決定テーブル、設定テーブルなどを構成するデータが記憶されている。また、ＲＯＭ５０６には、ＣＰＵ５０５が遊技制御基板４０から各種の制御コマンドとなる制御信号を送信するために用いられる複数のコマンドテーブルを構成するテーブルデータなどが記憶されている。
【０１６２】
遊技制御用マイクロコンピュータ１００が備えるＲＡＭ５０７には、スロットマシン１における遊技の進行などを制御するために用いられる各種のデータを保持する領域として、例えば遊技制御用データ保持エリアが設けられている。ＲＡＭ５０７としては、例えばＤＲＡＭが使用されており、記憶しているデータ内容を維持するためのリフレッシュ動作が必要になる。ＣＰＵ５０５には、このリフレッシュ動作を行うためのリフレッシュレジスタが内蔵されている。例えば、リフレッシュレジスタは８ビットからなり、そのうち下位７ビットはＣＰＵ５０５がＲＯＭ５０６から命令フェッチする毎に自動的にインクリメントされる。したがって、リフレッシュレジスタにおける格納値の更新は、ＣＰＵ５０５における１命令の実行時間毎に行われることになる。
【０１６３】
尚、この実施例では、後述するように、遊技制御用マイクロコンピュータ１００には、外部メモリとしてＳＲＡＭ５０が接続されており、このＳＲＡＭ５０は、少なくとも一部が、バックアップ電源によってバックアップされているバックアップＲＡＭである。すなわち、スロットマシンへの電力供給が停止しても、所定期間はＳＲＡＭ５０の少なくとも一部の内容が保存される。尚、本実施例では、ＳＲＡＭ５０の全ての領域がバックアップＲＡＭとされており、スロットマシンへの電力供給が停止しても、所定期間はＳＲＡＭ５０の全ての内容が保存される。尚、この実施例において、バックアップＲＡＭとしてのＳＲＡＭ５０には、例えば、電源断が発生したときに、後述する内部抽選に関する制御で用いるデータや、メダルの払出に関する制御で用いるデータ、リールの回転及び停止に関する制御で用いるデータ、コマンドの入出力に関する制御で用いるデータなどが格納される。
【０１６４】
遊技制御用マイクロコンピュータ１００は、サブ制御部９１に各種のコマンドを送信する。遊技制御用マイクロコンピュータ１００からサブ制御部９１へ送信されるコマンドは一方向のみで送られ、サブ制御部９１から遊技制御用マイクロコンピュータ１００へ向けてコマンドが送られることはない。
【０１６５】
遊技制御用マイクロコンピュータ１００は、遊技制御基板４０に接続された各種スイッチ類の検出状態が入力ポートから入力される。そして遊技制御用マイクロコンピュータ１００は、これら入力ポートから入力される各種スイッチ類の検出状態に応じて段階的に移行する基本処理を実行する。
【０１６６】
また、遊技制御用マイクロコンピュータ１００は、割込の発生により基本処理に割り込んで割込処理を実行できるようになっている。本実施例では、一定時間間隔（本実施例では、約０．５６ｍｓ）毎に後述するタイマ割込処理（メイン）を実行する。尚、タイマ割込処理（メイン）の実行間隔は、基本処理において制御状態に応じて繰り返す処理が一巡する時間とタイマ割込処理（メイン）の実行時間とを合わせた時間よりも長い時間に設定されており、今回と次回のタイマ割込処理（メイン）との間で必ず制御状態に応じて繰り返す処理が最低でも一巡することとなる。
【０１６７】
また、遊技制御用マイクロコンピュータ１００は、割込処理の実行中に他の割込を禁止するように設定されているとともに、複数の割込が同時に発生した場合には、予め定められた順位によって優先して実行する割込が設定されている。尚、割込処理の実行中に他の割込要因が発生し、割込処理が終了してもその割込要因が継続している状態であれば、その時点で新たな割込が発生することとなる。
【０１６８】
演出制御基板９０には、演出用スイッチ５６が接続されており、この演出用スイッチ５６の検出信号が入力されるようになっている。
【０１６９】
演出制御基板９０には、スロットマシン１の前面扉１ｂに配置された液晶表示器５１（図１参照）、演出効果ＬＥＤ５２、スピーカ５３、５４、前述したリールＬＥＤ５５等の演出装置が接続されており、これら演出装置は、演出制御基板９０に搭載された後述のサブ制御部９１による制御に基づいて駆動されるようになっている。
【０１７０】
尚、本実施例では、演出制御基板９０に搭載されたサブ制御部９１により、液晶表示器５１、演出効果ＬＥＤ５２、スピーカ５３、５４、リールＬＥＤ５５等の演出装置の出力制御が行われる構成であるが、サブ制御部９１とは別に演出装置の出力制御を直接的に行う出力制御部を演出制御基板９０または他の基板に搭載し、サブ制御部９１が遊技制御用マイクロコンピュータ１００からのコマンドに基づいて演出装置の出力パターンを決定し、サブ制御部９１が決定した出力パターンに基づいて出力制御部が演出装置の出力制御を行う構成としても良く、このような構成では、サブ制御部９１及び出力制御部の双方によって演出装置の出力制御が行われることとなる。
【０１７１】
また、本実施例では、演出装置として液晶表示器５１、演出効果ＬＥＤ５２、スピーカ５３、５４、リールＬＥＤ５５を例示しているが、演出装置は、これらに限られず、例えば、機械的に駆動する表示装置や機械的に駆動する役モノなどを演出装置として適用しても良い。
【０１７２】
演出制御基板９０には、遊技制御用マイクロコンピュータ１００と同様にサブＣＰＵ９１ａ、ＲＯＭ９１ｂ、ＲＡＭ９１ｃ、Ｉ／Ｏポート９１ｄを備えたマイクロコンピュータにて構成され、演出の制御を行うサブ制御部９１、演出制御基板９０に接続された液晶表示器５１の表示制御を行う表示制御回路９２、演出効果ＬＥＤ５２、リールＬＥＤ５５の駆動制御を行うＬＥＤ駆動回路９３、スピーカ５３、５４からの音声出力制御を行う音声出力回路９４、電源投入時または電源遮断時などの電源が不安定な状態やサブＣＰＵ９１ａからの初期化命令が一定時間入力されないときにサブＣＰＵ９１ａにリセット信号を与えるリセット回路９５、演出制御基板９０に接続された演出用スイッチ５６から入力された検出信号を検出するスイッチ検出回路９６、日付情報及び時刻情報を含む時間情報を出力する時計装置９７、スロットマシン１に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をサブＣＰＵ９１ａに対して出力する電断検出回路９８、その他の回路等、が搭載されており、サブＣＰＵ９１ａは、遊技制御基板４０から送信されるコマンドを受けて、演出を行うための各種の制御を行うとともに、演出制御基板９０に搭載された制御回路の各部を直接的または間接的に制御する。
【０１７３】
サブ制御部９１は、遊技制御用マイクロコンピュータ１００と同様に、割込機能を備えており、遊技制御用マイクロコンピュータ１００からのコマンド受信時に割込を発生させて、遊技制御用マイクロコンピュータ１００から送信されたコマンドを取得し、バッファに格納するコマンド受信割込処理を実行する。また、サブ制御部９１は、システムクロックの入力数が一定数に到達する毎、すなわち一定間隔毎に割込を発生させて所定のタイマ割込処理（サブ）を実行する。
【０１７４】
また、サブ制御部９１は、遊技制御用マイクロコンピュータ１００とは異なり、コマンドの受信に基づいて割込が発生した場合には、タイマ割込処理（サブ）の実行中であっても、当該処理に割り込んでコマンド受信割込処理を実行し、タイマ割込処理（サブ）の契機となる割込が同時に発生してもコマンド受信割込処理を最優先で実行するようになっている。
【０１７５】
サブ制御部９１が備えるＲＡＭ９１ｃは、液晶表示やランプ表示、音出力などの各種演出制御用のワークエリアを提供し、ワークＲＡＭとして使用される。
【０１７６】
図２７（ａ）に示すように、遊技制御用マイクロコンピュータ１００とＳＲＡＭ５０とは、１６ビットのアドレスバス、３２ビットのデータバス、ＣＳ（チップセレクト）信号線、ＲＤ（リード）信号線、ＷＲ（ライト）信号線を介して接続されている。
【０１７７】
ここで、遊技制御用マイクロコンピュータ１００によるＳＲＡＭ５０からのデータの読み出し及び遊技制御用マイクロコンピュータ１００からＳＲＡＭ５０へのデータの書き込みの際の信号の入出力状況について説明する。
【０１７８】
遊技制御用マイクロコンピュータ１００がＳＲＡＭ５０からデータを読み出す場合には、図２７（ｂ）に示すように、遊技制御用マイクロコンピュータ１００は、アドレスバスにてＳＲＡＭ５０から読み出すデータが格納されているアドレスを指定し、その後、ＳＲＡＭに対応するＣＳ信号をＯＮとし、さらにデータの読出を命令するＲＤ信号をＯＮとする。
【０１７９】
ＣＳ信号及びＲＤ信号を検知したＳＲＡＭ５０は、アドレスバスにて指定されたアドレス領域に格納されているデータをＲＤ信号がＯＦＦとなるまで、すなわち遊技制御用マイクロコンピュータ１００によるデータの取り込みが完了するまでデータバスに出力する。一方、遊技制御用マイクロコンピュータ１００は、データバスからのデータの取り込みが完了することでＲＤ信号をＯＦＦとし、その後、ＣＳ信号をＯＦＦとしてＳＲＡＭ５０からのデータの読み出しを完了する。
【０１８０】
遊技制御用マイクロコンピュータ１００がＳＲＡＭ５０にデータを書き込む場合には、図２７（ｃ）に示すように、アドレスバスにてデータの格納先となるアドレスを指定するとともに、ＳＲＡＭ５０に書き込むデータをデータバスに出力した後、ＳＲＡＭに対応するＣＳ信号をＯＮとし、さらにデータの書き込みを命令するＷＲ信号をＯＮとする。
【０１８１】
ＣＳ信号及びＷＲ信号を検知したＳＲＡＭ５０は、データバスからデータを取り込み、取り込んだデータをアドレスバスにて指定されたアドレス領域に書き込む。その後、遊技制御用マイクロコンピュータ１００は、ＳＲＡＭ５０によるデータバスからのデータの取り込みが完了するのに十分な時間の経過後、ＷＲ信号をＯＦＦとし、ＳＲＡＭに対応するＣＳ信号をＯＦＦとしてＳＲＡＭ５０へのデータの書き込みを完了する。
【０１８２】
本実施例のスロットマシン１は、設定値に応じてメダルの払出率が変わるものである。詳しくは、後述する内部抽選において設定値に応じた当選確率を用いることにより、メダルの払出率が変わるようになっている。設定値は１〜６の６段階からなり、６が最も払出率が高く、５、４、３、２、１の順に値が小さくなるほど払出率が低くなる。すなわち設定値として６が設定されている場合には、遊技者にとって最も有利度が高く、５、４、３、２、１の順に値が小さくなるほど有利度が段階的に低くなる。
【０１８３】
設定値を変更するためには、設定キースイッチ３７をｏｎ状態としてからスロットマシン１の電源をｏｎする必要がある。設定キースイッチ３７をｏｎ状態として電源をｏｎすると、設定値表示器２４にＲＡＭ５０７から読み出された設定値が表示値として表示され、リセット／設定スイッチ３８の操作による設定値の変更操作が可能な設定変更状態に移行する。設定変更状態において、リセット／設定スイッチ３８が操作されると、設定値表示器２４に表示された表示値が１ずつ更新されていく（設定６からさらに操作されたときは、設定１に戻る）。そして、スタートスイッチ７が操作されると表示値を設定値として確定する。そして、設定キースイッチ３７がｏｆｆされると、確定した表示値（設定値）が遊技制御用マイクロコンピュータ１００のＲＡＭ５０７に格納され、遊技の進行が可能な状態に移行する。
【０１８４】
また、設定値を確認するためには、ゲーム終了後、賭数が設定されていない状態で設定キースイッチ３７をｏｎ状態とすれば良い。このような状況で設定キースイッチ３７をｏｎ状態とすると、設定値表示器２４にＲＡＭ５０７から読み出された設定値が表示されることで設定値を確認可能な設定確認状態に移行する。設定確認状態においては、ゲームの進行が不能であり、設定キースイッチ３７をｏｆｆ状態とすることで、設定確認状態が終了し、ゲームの進行が可能な状態に復帰することとなる。
【０１８５】
本実施例のスロットマシン１においては、遊技制御用マイクロコンピュータ１００は、図３４で示すタイマ割込処理（メイン）を実行する毎に、電断監視回路３０３らの電源断信号が検出されているか否かを判定する停電判定処理（図３４のＳｋ２）を行い、停電判定処理において電源断信号が検出されていると判定した場合に、図３６で示す電断処理（メイン）を実行する。電断処理（メイン）では、後述するように、プログラムモジュール毎に、ＳＲＡＭ５０にバックアップフラグをセットするとともに、そのプログラムモジュールで用いられるデータを計算してチェックサムを生成し、生成したチェックサムをＳＲＡＭ５０に格納する処理を行う。尚、チェックサムとは、ＲＡＭ５０７の該当する領域（本実施例では、そのプログラムモジュールで使用されるデータが格納されているワークＲＡＭ内の全ての領域）の各ビットに格納されている値の排他的論理和として算出される値である。このため、そのプログラムモジュールで使用されるデータが格納されているワークＲＡＭ内の全ての領域に格納されたデータに基づいて排他的論理和を求めた値が０であれば、チェックサムは０となり、そのプログラムモジュールで使用されるデータが格納されているワークＲＡＭ内の全ての領域に格納されたデータに基づいて排他的論理和を求めた値が１であれば、チェックサムは１となる。
【０１８６】
そして、遊技制御用マイクロコンピュータ１００は、システムリセットによるかユーザリセットによるかに関わらず、その起動時において、モジュール毎に、外部メモリ（バックアップＲＡＭ）内のそのプログラムモジュールで用いられるデータを格納した全ての領域のデータに基づいてチェックサムを計算するとともに、バックアップフラグを確認し、算出したチェックサムがバックアップされているチェックサムの値と一致するとともに、バックアップフラグもセットされていることを条件に、ＳＲＡＭ５０に記憶されているデータに基づいて遊技制御用マイクロコンピュータ１００やサブ制御部９１の処理状態を電断前の状態に復帰させるが、チェックサムの値が一致しない場合やバックアップフラグがセットされていない場合には、ＲＡＭ異常と判定する。この際、遊技制御用マイクロコンピュータ１００がＲＡＭ異常と判定した場合には、ＲＡＭ異常エラーコードをレジスタにセットしてＲＡＭ異常エラー状態に制御し、遊技の進行を不能化させるようになっている。尚、ＲＡＭ異常エラー状態は、通常のエラー状態と異なり、リセットスイッチ２３やリセット／設定スイッチ３８を操作しても解除されないようになっており、前述した設定変更状態において新たな設定値が設定されるまで解除されることがない。
【０１８７】
尚、本実施例では、ＲＡＭ５０７に格納されている全てのデータが停電時においてもＳＲＡＭ５０に格納されてバックアップ電源により保持されるとともに、遊技制御用マイクロコンピュータ１００は、電源投入時においてＳＲＡＭ５０のデータが正常であると判定した場合に、ＳＲＡＭ５０の格納データに基づいて電断前の制御状態に復帰する構成であるが、ＲＡＭ５０７に格納されているデータのうち停電時において制御状態の復帰に必要なデータのみをＳＲＡＭ５０にバックアップし、電源投入時においてバックアップされているデータに基づいて電断前の制御状態に復帰する構成としても良い。
【０１８８】
また、電源投入時において電断前の制御状態に復帰させる際に、全ての制御状態を電断前の制御状態に復帰させる必要はなく、遊技者に対して不利益とならない最低限の制御状態を復帰させる構成であれば良く、例えば、入力ポートの状態などを全て電断前の状態に復帰させる必要はない。
【０１８９】
本実施例のスロットマシン１は、前述のように遊技状態（通常、内部中、ＢＢ（ＲＢ））に応じて設定可能な賭数の規定数が定められており、遊技状態に応じて定められた規定数の賭数が設定されたことを条件にゲームを開始させることが可能となる。尚、本実施例では、遊技状態に応じた規定数の賭数が設定された時点で、入賞ラインＬＮが有効化される。
【０１９０】
本実施例のスロットマシン１は、全てのリール２Ｌ、２Ｃ、２Ｒが停止した際に、有効化された入賞ラインＬＮ（以下では、有効化された入賞ラインＬＮを単に入賞ラインＬＮと呼ぶ）に役と呼ばれる図柄の組み合わせが揃うと入賞となる。役は、同一図柄の組み合わせであっても良いし、異なる図柄を含む組み合わせであっても良い。入賞となる役の種類は、遊技状態に応じて定められているが、大きく分けて、メダルの払い出しを伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役と、遊技者にとって有利な遊技状態への移行を伴う特別役と、がある。以下では、小役と再遊技役をまとめて一般役とも呼ぶ。遊技状態に応じて定められた各役の入賞が発生するためには、後述する内部抽選に当選して、当該役の当選フラグがＲＡＭ５０７に設定されている必要がある。
【０１９１】
尚、これら各役の当選フラグのうち、小役及び再遊技役の当選フラグは、当該フラグが設定されたゲームにおいてのみ有効とされ、次のゲームでは無効となるが、特別役の当選フラグは、当該フラグにより許容された役の組み合わせが揃うまで有効とされ、許容された役の組み合わせが揃ったゲームにおいて無効となる。すなわち特別役の当選フラグが一度当選すると、例え、当該フラグにより許容された役の組み合わせを揃えることができなかった場合にも、その当選フラグは無効とされずに、次のゲームへ持ち越されることとなる。
【０１９２】
内部抽選は、上記した各役への入賞を許容するか否かを、全てのリール２Ｌ、２Ｃ、２Ｒの表示結果が導出表示される以前に（実際には、スタートスイッチ７の検出時）決定するものである。内部抽選では、まず、スタートスイッチ７の検出時に内部抽選用の乱数値（０〜６５５３５の整数）を取得する。詳しくは、ＲＡＭ５０７に割り当てられた乱数値格納ワークの値を同じくＲＡＭ５０７に割り当てられた抽選用ワークに設定する。そして、遊技状態及び特別役の持ち越しの有無に応じて定められた各役について、抽選用ワークに格納された数値データと、遊技状態を特定するための遊技状態フラグの値、後述するＲＴを特定するためのＲＴフラグの値、賭数及び設定値に応じて定められた各役の判定値数に応じて行われる。
【０１９３】
内部抽選では、内部抽選の対象となる役、現在の遊技状態フラグ値、ＲＴフラグ値及び設定値に対応して定められた判定値数を、内部抽選用の乱数値（抽選用ワークに格納された数値データ）に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定される。このため、判定値数の大小に応じた確率（判定値数／６５５３６）で役が当選することとなる。
【０１９４】
そして、いずれかの役の当選が判定された場合には、当選が判定された役に対応する当選フラグをＲＡＭ５０７に割り当てられた内部当選フラグ格納ワークに設定する。内部当選フラグ格納ワークは、２バイトの格納領域にて構成されており、そのうちの上位バイトが、特別役の当選フラグが設定される特別役格納ワークとして割り当てられ、下位バイトが、一般役の当選フラグが設定される一般役格納ワークとして割り当てられている。詳しくは、特別役が当選した場合には、当該特別役が当選した旨を示す特別役の当選フラグを特別役格納ワークに設定し、一般役格納ワークに設定されている当選フラグをクリアする。また、一般役が当選した場合には、当該一般役が当選した旨を示す一般役の当選フラグを一般役格納ワークに設定する。尚、いずれの役及び役の組み合わせにも当選しなかった場合には、一般役格納ワークのみクリアする。
【０１９５】
次に、リール２Ｌ、２Ｃ、２Ｒの停止制御について説明する。
【０１９６】
遊技制御用マイクロコンピュータ１００は、リールの回転が開始したとき、及びリールが停止し、かつ未だ回転中のリールが残っているときに、ＲＯＭ５０６に格納されているテーブルインデックス及びテーブル作成用データを参照して、回転中のリール別に停止制御テーブルを作成する。そして、ストップスイッチ８Ｌ、８Ｃ、８Ｒのうち、回転中のリールに対応するいずれかの操作が有効に検出されたときに、該当するリールの停止制御テーブルを参照し、参照した停止制御テーブルの滑りコマ数に基づいて、操作されたストップスイッチ８Ｌ、８Ｃ、８Ｒに対応するリール２Ｌ、２Ｃ、２Ｒの回転を停止させる制御を行う。
【０１９７】
テーブルインデックスには、内部抽選による当選フラグの設定状態（以下、内部当選状態と呼ぶ）別に、テーブルインデックスを参照する際の基準アドレスから、テーブル作成用データが格納された領域の先頭アドレスを示すインデックスデータが格納されているアドレスまでの差分が登録されている。これにより内部当選状態に応じた差分を取得し、基準アドレスに対してその差分を加算することで該当するインデックスデータを取得することが可能となる。尚、役の当選状況が異なる場合でも、同一の制御が適用される場合においては、インデックスデータとして同一のアドレスが格納されており、このような場合には、同一のテーブル作成用データを参照して、停止制御テーブルが作成されることとなる。
【０１９８】
テーブル作成用データは、停止操作位置に応じた滑りコマ数を示す停止制御テーブルと、リールの停止状況に応じて参照すべき停止制御テーブルのアドレスと、からなる。
【０１９９】
リールの停止状況に応じて参照される停止制御テーブルは、全てのリールが回転しているか、左リールのみ停止しているか、中リールのみ停止しているか、右リールのみ停止しているか、左、中リールが停止しているか、左、右リールが停止しているか、中、右リールが停止しているか、によって異なる場合があり、更に、いずれかのリールが停止している状況においては、停止済みのリールの停止位置によっても異なる場合があるので、それぞれの状況について、参照すべき停止制御テーブルのアドレスが回転中のリール別に登録されており、テーブル作成用データの先頭アドレスに基づいて、それぞれの状況に応じて参照すべき停止制御テーブルのアドレスが特定可能とされ、この特定されたアドレスから、それぞれの状況に応じて必要な停止制御テーブルを特定できるようになっている。尚、リールの停止状況や停止済みのリールの停止位置が異なる場合でも、同一の停止制御テーブルが適用される場合においては、停止制御テーブルのアドレスとして同一のアドレスが登録されているものもあり、このような場合には、同一の停止制御テーブルが参照されることとなる。
【０２００】
停止制御テーブルは、停止操作が行われたタイミング別の滑りコマ数を特定可能なデータである。本実施例では、リールモータ３２Ｌ、３２Ｃ、３２Ｒに、１６８ステップ（０〜１６７）の周期で１周するステッピングモータを用いている。すなわちリールモータ３２Ｌ、３２Ｃ、３２Ｒを１６８ステップ駆動させることでリール２Ｌ、２Ｃ、２Ｒが１周することとなる。そして、リール１周に対して８ステップ（１図柄が移動するステップ数）毎に分割した２１の領域（コマ）が定められており、これらの領域には、リール基準位置から０〜２０の領域番号が割り当てられている。一方、１リールに配列された図柄数も２１であり、各リールの図柄に対して、リール基準位置から０〜２０の図柄番号が割り当てられているので、０番図柄から２０番図柄に対して、それぞれ０〜２０の領域番号が順に割り当てられていることとなる。そして、停止制御テーブルには、領域番号別の滑りコマ数が所定のルールで圧縮して格納されており、停止制御テーブルを展開することによって領域番号別の滑りコマ数を取得できるようになっている。
【０２０１】
前述のようにテーブルインデックス及びテーブル作成用データを参照して作成される停止制御テーブルは、領域番号に対応して、各領域番号に対応する領域が停止基準位置（本実施例では、透視窓３の下段図柄の領域）に位置するタイミング（リール基準位置からのステップ数が各領域番号のステップ数の範囲に含まれるタイミング）でストップスイッチ８Ｌ、８Ｃ、８Ｒの操作が検出された場合の滑りコマ数がそれぞれ設定されたテーブルである。
【０２０２】
次に、停止制御テーブルの作成手順について説明すると、まず、リール回転開始時においては、そのゲームの内部当選状態に応じたテーブル作成用データの先頭アドレスを取得する。具体的には、まずテーブルインデックスを参照し、内部当選状態に対応するインデックスデータを取得し、そして取得したインデックスデータに基づいてテーブル作成用データを特定し、特定したテーブル作成用データから全てのリールが回転中の状態に対応する各リールの停止制御テーブルのアドレスを取得し、取得したアドレスに格納されている各リールの停止制御テーブルを展開して全てのリールについて停止制御テーブルを作成する。
【０２０３】
また、いずれか１つのリールが停止したとき、またはいずれか２つのリールが停止したときには、リール回転開始時に取得したインデックスデータ、すなわちそのゲームの内部当選状態に応じたテーブル作成用データの先頭アドレスに基づいてテーブル作成用データを特定し、特定したテーブル作成用データから停止済みのリール及び当該リールの停止位置の領域番号に対応する未停止リールの停止制御テーブルのアドレスを取得し、取得したアドレスに格納されている各リールの停止制御テーブルを展開して未停止のリールについて停止制御テーブルを作成する。
【０２０４】
次に、遊技制御用マイクロコンピュータ１００がストップスイッチ８Ｌ、８Ｃ、８Ｒのうち、回転中のリールに対応するいずれかの操作を有効に検出したときに、該当するリールに表示結果を導出させる際の制御について説明すると、ストップスイッチ８Ｌ、８Ｃ、８Ｒのうち、回転中のリールに対応するいずれかの操作を有効に検出すると、停止操作を検出した時点のリール基準位置からのステップ数に基づいて停止操作位置の領域番号を特定し、停止操作が検出されたリールの停止制御テーブルを参照し、特定した停止操作位置の領域番号に対応する滑りコマ数を取得する。そして、取得した滑りコマ数分リールを回転させて停止させる制御を行う。具体的には、停止操作を検出した時点のリール基準位置からのステップ数から、取得した滑りコマ数引き込んで停止させるまでのステップ数を算出し、算出したステップ数分リールを回転させて停止させる制御を行う。これにより、停止操作が検出された停止操作位置の領域番号に対応する領域から滑りコマ数分先の停止位置となる領域番号に対応する領域が停止基準位置（本実施例では、透視窓３の下段図柄の領域）に停止することとなる。
【０２０５】
本実施例のテーブルインデックスには、一の遊技状態における一の内部当選状態に対応するインデックスデータとして１つのアドレスのみが格納されており、更に、一のテーブル作成用データには、一のリールの停止状況（及び停止済みのリールの停止位置）に対応する停止制御テーブルの格納領域のアドレスとして１つのアドレスのみが格納されている。すなわち一の遊技状態における一の内部当選状態に対応するテーブル作成用データ、及びリールの停止状況（及び停止済みのリールの停止位置）に対応する停止制御テーブルが一意的に定められており、これらを参照して作成される停止制御テーブルも、一の遊技状態における一の内部当選状態、及びリールの停止状況（及び停止済みのリールの停止位置）に対して一意となる。このため、遊技状態、内部当選状態、リールの停止状況（及び停止済みのリールの停止位置）の全てが同一条件となった際に、同一の停止制御テーブル、すなわち同一の制御パターンに基づいてリールの停止制御が行われることとなる。
【０２０６】
また、本実施例では、滑りコマ数として０〜４の値が定められており、停止操作を検出してから最大４コマ図柄を引き込んでリールを停止させることが可能である。すなわち停止操作を検出した停止操作位置を含め、最大５コマの範囲から図柄の停止位置を指定できるようになっている。また、１図柄分リールを移動させるのに１コマの移動が必要であるので、停止操作を検出してから最大４図柄を引き込んでリールを停止させることが可能であり、停止操作を検出した停止操作位置を含め、最大５図柄の範囲から図柄の停止位置を指定できることとなる。
【０２０７】
本実施例では、いずれかの役に当選している場合には、当選役を入賞ラインＬＮに４コマの範囲で最大限引き込み、当選していない役が入賞ラインＬＮに揃わないように引き込む滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う一方、いずれの役にも当選していない場合には、いずれの役も揃わない滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う。これにより、停止操作が行われた際に、入賞ラインＬＮに最大４コマの引込範囲で当選している役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、最大４コマの引込範囲でハズシして停止させる制御が行われることとなる。
【０２０８】
特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合など、特別役と小役が同時に当選している場合には、当選した小役を入賞ラインＬＮに４コマの範囲で最大限に引き込むように滑りコマ数が定められているとともに、当選した小役を入賞ラインＬＮに最大４コマの範囲で引き込めない停止操作位置については、当選した特別役を入賞ラインＬＮに４コマの範囲で最大限に引き込むように滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う。これにより、停止操作が行われた際に、入賞ラインＬＮに最大４コマの引込範囲で当選している小役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、入賞ラインＬＮに最大４コマの引込範囲で当選している小役を引き込めない場合には、入賞ラインＬＮに最大４コマの引込範囲で当選している特別役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、４コマの引込範囲でハズシして停止させる制御が行われることとなる。すなわちこのような場合には、特別役よりも小役を入賞ラインＬＮに揃える制御が優先され、小役を引き込めない場合にのみ、特別役を入賞させることが可能となる。尚、特別役と小役を同時に引き込める場合には、小役のみを引き込み、特別役と同時に小役が入賞ラインＬＮに揃わないようになっている。
【０２０９】
尚、本実施例では、特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合や新たに特別役と小役が同時に当選した場合など、特別役と小役が同時に当選している場合には、当選した特別役よりも当選した小役が優先され、小役が引き込めない場合のみ、特別役を入賞ラインＬＮに揃える制御を行っているが、特別役と小役が同時に当選している場合に、小役よりも特別役を入賞ラインＬＮに揃える制御が優先され、特別役を引き込めない場合にのみ、小役を入賞ラインＬＮに揃える制御を行っても良い。
【０２１０】
特別役が前ゲーム以前から持ち越されている状態で再遊技役が当選した場合など、特別役と再遊技役が同時に当選している場合には、停止操作が行われた際に、入賞ラインＬＮに最大４コマの引込範囲で再遊技役の図柄を揃えて停止させる制御が行われる。尚、この場合、再遊技役を構成する図柄または同時当選する再遊技役を構成する図柄は、リール２Ｌ、２Ｃ、２Ｒのいずれについても５図柄以内、すなわち４コマ以内の間隔で配置されており、４コマの引込範囲で必ず任意の位置に停止させることができるので、特別役と再遊技役が同時に当選している場合には、遊技者によるストップスイッチ８Ｌ、８Ｃ、８Ｒの操作タイミングに関わらずに、必ず再遊技役が揃って入賞することとなる。すなわちこのような場合には、特別役よりも再遊技役を入賞ラインＬＮに揃える制御が優先され、必ず再遊技役が入賞することとなる。尚、特別役と再遊技役を同時に引き込める場合には、再遊技役のみを引き込み、再遊技役と同時に特別役が入賞ラインＬＮに揃わないようになっている。
【０２１１】
本実施例において遊技制御用マイクロコンピュータ１００は、リール２Ｌ、２Ｃ、２Ｒの回転が開始した後、ストップスイッチ８Ｌ、８Ｃ、８Ｒの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ８Ｌ、８Ｃ、８Ｒの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。尚、リール回転エラーの発生により、一時的にリールの回転が停止した場合でも、その後リール回転が再開した後、ストップスイッチ８Ｌ、８Ｃ、８Ｒの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ８Ｌ、８Ｃ、８Ｒの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。
【０２１２】
尚、本実施例では、ストップスイッチ８Ｌ、８Ｃ、８Ｒの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっているが、リールの回転が開始してから、予め定められた自動停止時間が経過した場合に、リールの停止操作がなされない場合でも、停止操作がなされたものとみなして自動的に各リールを停止させる自動停止制御を行うようにしても良い。この場合には、遊技者の操作を介さずにリールが停止することとなるため、例えば、いずれかの役が当選している場合でもいずれの役も構成しない表示結果を導出させることが好ましい。
【０２１３】
図２８に示すように、遊技制御用マイクロコンピュータ１００のＲＯＭ５０６には遊技制御プログラムが格納されている。遊技制御プログラムは、下層に、図３３の遊技制御処理におけるＳｄ２にて実行する内部抽選処理に関わる制御を行う内部抽選制御モジュールと、図３３の遊技制御処理におけるＳｄ７にて実行する入出力処理（Ｉ／Ｏポートでの入出力に関する処理）に関わる制御を行う入出力制御モジュールと、図３３の遊技制御処理におけるＳｄ３にて実行するリール回転処理に関わる制御を行うリール回転制御モジュールと、図３３の遊技制御処理におけるＳｄ５にて実行する払出処理に関わる制御を行う払出制御モジュールとを備えている。このように、遊技制御プログラムは、遊技制御用マイクロコンピュータ１００で実行する各制御に対応した複数の制御モジュールを含んでいる。よって、他機種に対して、ある機種の制御モジュールのみ（１つ又は複数）を入れ替えれば良い。場合には、その制御モジュールのみを入れ替えれば良く、遊技制御プログラムの変更が容易になる。
【０２１４】
次に、本実施例における遊技制御用マイクロコンピュータ１００が実行する各種制御内容を、図２９〜図３６に基づいて以下に説明する。
【０２１５】
遊技制御基板４０では、電源基板１０１からの電力供給が開始され遊技制御用マイクロコンピュータ１００へのリセット信号がハイレベル（オフ状態）になったことに応じて、遊技制御用マイクロコンピュータ１００が起動し、ＣＰＵ５０５がＲＯＭ５０６から読み出したセキュリティチェックプログラム５０６Ａに基づき、図２９のフローチャートに示すようなセキュリティチェック処理が実行される。このとき、遊技制御用マイクロコンピュータ１００は、動作状態がセキュリティモードとなり、ＲＯＭ５０６に記憶されているゲーム制御用のユーザプログラムは未だ実行されない状態となる。
【０２１６】
図２９に示すセキュリティチェック処理を開始すると、ＣＰＵ５０５は、まず、セキュリティチェック処理が実行されることにより遊技制御用マイクロコンピュータ１００がセキュリティモードとなる時間（セキュリティ時間）を決定するための処理を実行する。このとき、ＣＰＵ５０５は、ＲＯＭ５０６のプログラム管理エリアに記憶されるセキュリティ時間設定ＫＳＥＳのビット番号［５−０］におけるビット値を読み出す（ステップＳ１）。そして、この読出値に応じた固定延長時間を設定する（ステップＳ２）。ステップＳ２の処理では、例えば図１２に示すように、セキュリティ時間設定ＫＳＥＳのビット番号［５−０］におけるビット値に応じて異なる固定セキュリティ時間を、固定延長時間として設定すればよい。
【０２１７】
ステップＳ２の処理を実行した後には、セキュリティ時間設定ＫＳＥＳのビット番号［７−６］におけるビット値を読み出す（ステップＳ３）。そして、この読出値が“００”であるか否かを判定する（ステップＳ４）。このとき読出値が“００”以外であると判定された場合には（ステップＳ４；Ｎｏ）、その読出値に対応して決定される可変延長時間を設定する（ステップＳ５）。ステップＳ５の処理では、例えば図１２に示すように、セキュリティ時間設定ＫＳＥＳのビット番号［７−６］におけるビット値に対応して、ショートモード、ミドルモード、ロングモードのいずれかによる可変セキュリティ時間を、可変延長延長時間として設定すればよい。ステップＳ２の処理により設定された固定延長時間とステップＳ５の処理により設定された可変延長時間とを加算して、セキュリティ時間に設定すればよい。ここで、可変設定時間は、セキュリティ時間のうち、セキュリティチェック処理が実行されるごとに変化する時間成分であり、セキュリティ時間設定ＫＳＥＳのビット番号［７−６］におけるビット値が“０１”（ショートモード）であるか“１０”（ミドルモード）であるか“１１”（ロングモード）であるかに応じて異なる所定の時間範囲で変化する。
【０２１８】
例えば、システムリセットの発生時に、フリーランカウンタ５０９Ｃなどにおけるカウント値が遊技制御用マイクロコンピュータ１００に内蔵された可変セキュリティ時間用レジスタに格納される場合には、ステップＳ５の処理において、可変セキュリティ時間用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数（例えばハッシュ関数）に代入して得られた値を用いることなどにより、可変設定時間がシステムリセット毎に所定の時間範囲でランダムに変化するように決定されればよい。こうして、セキュリティ時間設定ＫＳＥＳのビット番号［７−６］におけるビット値が“００”以外の値である場合には、セキュリティチェック処理の実行時間であるセキュリティ時間を、システムリセットの発生等に基づくセキュリティチェック処理が実行されるごとに所定の時間範囲で変化させることができる。
【０２１９】
一方、ステップＳ４にて読出値が“００”であると判定された場合には（ステップＳ４；Ｙｅｓ）、ステップＳ５の処理が実行されない。この場合には、ステップＳ２の処理により設定された固定延長時間をセキュリティ時間に設定すればよい。
【０２２０】
その後、ＲＯＭ５０６の所定領域に記憶されたセキュリティコードを読み出す（ステップＳ６）。ここで、ＲＯＭ５０６の所定領域には、記憶内容のデータを所定の演算式によって演算した演算結果のセキュリティコードが予め記憶されている。セキュリティコードの生成方法としては、例えばハッシュ関数を用いてハッシュ値を生成するもの、エラー検出コード（ＣＲＣコード）を用いるもの、エラー訂正コード（ＥＣＣコード）を用いるもののいずれかといった、予め定められた生成方法を使用すればよい。また、ＲＯＭ５０６のセキュリティコード記憶領域とは異なる所定領域には、セキュリティコードを演算により特定するための演算式が、暗号化して予め記憶されている。
【０２２１】
ステップＳ６の処理に続いて、暗号化された演算式を復号化して元に戻す（ステップＳ７）。その後、ステップＳ７で復号化した演算式により、ＲＯＭ５０６の所定領域における記憶データを演算してセキュリティコードを特定する（ステップＳ８）。このときセキュリティコードを特定するための演算に用いる記憶データは、例えばＲＯＭ５０６の記憶データのうち、セキュリティチェックプログラム５０６Ａとは異なるユーザプログラムの一部または全部に相当するプログラムデータ、あるいは、所定のテーブルデータを構成する固定データの一部または全部であればよい。そして、ステップＳ６にて読み出したセキュリティコードと、ステップＳ８にて特定されたセキュリティコードとを比較する（ステップＳ９）。このときには、比較結果においてセキュリティコードが一致したか否かを判定する（ステップＳ１０）。
【０２２２】
ステップＳ１０にてセキュリティコードが一致しない場合には（ステップＳ１０；Ｎｏ）、ＲＯＭ５０６に不正な変更が加えられたと判断して、ＣＰＵ５０５の動作を停止状態（ＨＡＬＴ）へ移行させる。これに対して、ステップＳ１０にてセキュリティコードが一致した場合には（ステップＳ１０；Ｙｅｓ）、ステップＳ２やステップＳ５の処理に基づいて設定されたセキュリティ時間が経過したか否かを判定する（ステップＳ１１）。そして、セキュリティ時間が経過していなければ（ステップＳ１１；Ｎｏ）、ステップＳ１１の処理を繰り返し実行して、セキュリティ時間が経過するまで待機する。その一方で、ステップＳ１１にてセキュリティ時間が経過したと判定された場合には（ステップＳ１１；Ｙｅｓ）、例えばＣＰＵ５０５に内蔵されたプログラムカウンタの値をＲＯＭ５０６におけるユーザプログラムの先頭アドレス（アドレス００００Ｈ）に設定することなどにより、起動処理（メイン）の実行を開始する。このときには、ＲＯＭ５０６に記憶されたユーザプログラムを構成する制御コードの先頭から遊技制御の実行が開始されることにより、遊技制御用マイクロコンピュータ１００の動作状態がセキュリティモードからユーザモードへと移行し、図３０〜図３２のフローチャートに示す起動処理（メイン）の実行が開始されることになる。
【０２２３】
まず、内蔵デバイスや周辺ＩＣ、割込モード、スタックポインタ等を初期化した後（Ｓａ１）、Ｉレジスタ及びＩＹレジスタの値を初期化する（Ｓａ２）。Ｉレジスタ及びＩＹレジスタの初期化により、Ｉレジスタには、割込発生時に参照する割込テーブルのアドレスが設定され、ＩＹレジスタには、ＲＡＭ５０７の格納領域を参照する際の基準アドレスが設定される。これらの値は、固定値であり、起動時には常に初期化されることとなる。また、Ｓａ２の処理では、所定の通信設定レジスタにおける設定を初期化することにより、シリアル通信回路５１１における動作設定が行われればよい。次いで、ＳＲＡＭ５０に接続されているＣＳ信号線が接続された汎用端子に対応する汎用ポートの設定を出力ポートに設定することで（Ｓａ３）、ＳＲＡＭ５０のチップセレクト信号の出力を有効化する。Ｓａ３の処理に続いて、タイマ回路５０８やＰＩＰ５１０の設定が行われてもよい。
【０２２４】
その後、例えばＰＩＰ５１０に含まれる所定の入力ポートにおける端子状態をチェックすることなどにより、電源断信号がオフ状態となっているか否かを判定する（Ｓａ３５）。スロットマシン１では、電力供給が開始されたときに、ＶＳＬ（＋３０Ｖ）電源などの各種電源の出力電圧が徐々に規定値へと達する。このとき、Ｓａ３５の処理により電源断信号のオフ状態（ハイレベル）を確認することで、ＣＰＵ５０５が電源電圧の安定を確認することができる。なお、ノイズ等の影響による誤検出を防止するために、電源断信号の確認を所定回数（例えば５回）連続して実行してもよい。
【０２２５】
Ｓａ３５にて電源断信号がオン状態（ローレベル）である場合には、リセットコントローラ５０４Ａに設けられたウォッチドッグタイマ５２０を起動させるための設定を行う（Ｓａ３６）。この実施の形態では、図１０（Ｂ）に示すリセット設定ＫＲＥＳのビット番号［６］におけるビット値を予め“０”となるように設定しておく。これにより、ウォッチドッグタイマ５２０を起動させてタイムアウトの発生に応じたリセット動作を有効化するか、ウォッチドッグタイマ５２０を停止させてタイムアウトの発生に応じたリセット動作を無効化するかを、ユーザプログラム（ソフトウェア）により切替可能に設定する。また、リセット設定ＫＲＥＳのビット番号［５−４］におけるビット値を予め“１１”となるように設定するとともに、リセット設定ＫＲＥＳのビット番号［３−０］におけるビット値を予め“１１１１”となるように設定しておく。これにより、ウォッチドッグタイマ５２０にて計測される監視時間となるタイムアウト時間は、監視時間として設定可能な複数種類のうちで最長時間となる。
【０２２６】
このような設定に基づいて、Ｓａ３６の処理では、ＣＰＵ５０５が図１５（Ａ）に示すＷＤＴスタートレジスタＷＳＴに、「ＣＣＨ」をＷＤＴスタートデータとして書き込む。こうして、Ｓａ３５の処理により電源断信号がオン状態であると判定されたときには、ウォッチドッグタイマ５２０による監視時間の計測を開始させて、タイムアウトの発生によるリセット動作を有効化する。
【０２２７】
Ｓａ３６の処理によりウォッチドッグタイマ５２０を起動させた後に、ＣＰＵ５０５は、無限ループ処理を繰返し実行することにより制御状態を待機状態に移行させる。こうして待機状態に移行した後には、ウォッチドッグタイマ５２０のクリアおよびリスタートが行われないことから、監視時間の経過が計測されたときに、タイムアウトの発生によるリセット動作が行われることになる。したがって、スロットマシン１に電力供給が開始されてから所定時間が経過しても電源電圧の安定が確認できず、電源断信号がオン状態のままである場合には、ウォッチドッグタイマ５２０におけるタイムアウトの発生によるリセット動作を行って、遊技制御用マイクロコンピュータ１００を再起動させることができる。
【０２２８】
ここで、ウォッチドッグタイマ５２０にて計測される監視時間となるタイムアウト時間は、監視時間として設定可能な複数種類のうちで最長時間２２５×ＴＳＣＬＫ×１５（ＴＳＣＬＫは内部システムクロックＳＣＬＫの周期）となるように設定されている。したがって、例えばスロットマシン１における電源スイッチの切断等により電力供給が所定期間にわたり完全に停止したときには、監視時間の経過によりタイムアウトが発生するより先に、遊技制御用マイクロコンピュータ１００のＣＰＵ５０５に対する電力供給が停止するので、タイムアウトの発生によるリセット動作が行われないように制限できる。こうして、電源スイッチの切断時などに誤ってリセットされてしまうことを防止できる。
【０２２９】
Ｓａ３５にて電源断信号がオフ状態（ハイレベル）である場合には、電源基板１０１に設置されたクリアスイッチ３０４から伝送されるスイッチ信号（クリア信号）の信号状態などに基づき、クリアスイッチ３０４がオン操作されたかを判定する（Ｓａ３７）。なお、Ｓａ３７の処理では、クリアスイッチ３０４から伝送されるクリア信号を複数回チェックし、連続してオン状態となったときに、クリアスイッチ３０４がオン操作されたと判定してもよい。例えば、クリア信号の状態がオフ状態であることを１回確認したら、所定時間（例えば０．１秒）が経過した後に、クリア信号の状態をもう１回確認する。このとき、クリア信号がオフ状態であれば、クリア信号がオフ状態である旨の判定を行うようにする。他方、このときにクリア信号の状態がオン状態であれば、所定時間が経過した後に、クリア信号の状態を再び確認するようにしてもよい。なお、クリア信号の状態を再確認する回数は１回であってもよいし、複数回であってもよい。また、２回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。
【０２３０】
Ｓａ３７にてクリア信号がオン状態であれば、例えばＲＡＭ５０７の所定領域（遊技制御フラグ設定部など）にも受けられたクリアフラグをオン状態にセットする（Ｓａ３８）。他方、クリア信号がオフ状態であるときには、Ｓａ３８の処理をスキップして、クリアフラグをオフ状態のままとする。
【０２３１】
その後、遊技の進行を制御するための遊技制御処理の開始タイミングをソフトウェアの実行により遅延させる遅延処理の設定を行う（Ｓａ３９）。具体的な一例として、ＲＡＭ５０７の所定領域（遊技制御カウンタ設定部など）に設けられたウェイトカウンタに、初期化ウェイト回数指定値をセットする。続いて、Ｓａ３９での設定に基づく遅延処理を開始して、例えばウェイトカウンタにおけるカウント値を１減算するなど、遅延処理の実行に関わる設定の更新を行う（Ｓａ４０）。そして、例えばウェイトカウンタにおけるカウント値が所定の遅延終了判定値に達したか否かを判定することなどにより、所定の遅延時間が経過したか否かを判定する（Ｓａ４１）。ここで、遅延終了判定値を示すデータは、ＲＯＭ５０６などに予め記憶されていればよい。
【０２３２】
Ｓａ４１にて遅延時間が経過していないときには、Ｓａ４０の処理にリターンし、遅延時間が経過しているときには、ＲＡＭ５０７（ワークＲＡＭ）へのアクセスを許可する（Ｓａ４）。
【０２３３】
ＲＡＭ５０７（ワークＲＡＭ）へのアクセスを許可した後、内部抽選制御モジュールに対するバックアップフラグがＳＲＡＭ５０（バックアップＲＡＭ）にセットされているか否かを判定する（Ｓａ５）。この実施例では、図３６の電断処理（メイン）におけるＳｍ５，Ｓｍ１０，Ｓｍ１５，Ｓｍ２０において、電源断の発生時に、プログラムモジュール毎に区別してバックアップフラグがセットされる。すなわち、この実施例では、遊技制御用マイクロコンピュータ１００が行う処理に関して、バックアップフラグには、内部抽選制御モジュールに対応したバックアップフラグと、入出力制御モジュールに対応したバックアップフラグと、リーチ回転制御モジュールに対応したバックアップフラグと、払出制御モジュールに対応したバックアップフラグとの４種類がある。Ｓａ５では、遊技制御用マイクロコンピュータ１００は、まず、内部抽選制御モジュールに対応したバックアップフラグがセットされているか否かを確認する。
【０２３４】
内部抽選制御モジュールに対応したバックアップフラグがセットされている場合には、バックアップフラグをクリアする（Ｓａ６）。バックアップフラグをクリアした後、ＳＲＡＭ５０（バックアップＲＡＭ）の内部抽選制御モジュールで用いるデータが格納されている領域のデータの排他的論理和を求めチェックサムを計算する（Ｓａ７）。この後、計算したチェックサムが、バックアップされているチェックサムと一致するか否かを判定する（Ｓａ８）。尚、この実施例では、図３６の電断処理（メイン）におけるＳｍ４，Ｓｍ９，Ｓｍ１４，Ｓｍ１９において、チェックサムに関しても、電源断の発生時に、モジュール毎に、そのモジュールで使用されるデータの排他的論理和を求めることによって生成され、ＳＲＡＭ５０（バックアップＲＡＭ）に格納される。すなわち、この実施例では、遊技制御用マイクロコンピュータ１００が行う処理に関して、チェックサムには、内部抽選制御モジュールで使用されるデータを用いて算出されたチェックサムと、入出力制御モジュールで使用されるデータを用いて算出されたチェックサムと、リーチ回転制御モジュールで使用されるデータを用いて算出されたチェックサムと、払出制御モジュールで使用されるデータを用いて算出されたチェックサムとの４種類がある。Ｓａ８では、遊技制御用マイクロコンピュータ１００は、まず、内部抽選制御モジュールで使用されるデータを用いて算出されたチェックサムがバックアップされているものと一致するか否かを確認する。
【０２３５】
チェックサムが一致している場合には、入出力制御モジュールに対応したバックアップフラグがＳＲＡＭ５０（バックアップＲＡＭ）にセットされているか否かを判定する（Ｓａ９）。入出力制御モジュールに対応したバックアップフラグがセットされている場合には、バックアップフラグをクリアする（Ｓａ１０）。バックアップフラグをクリアした後、ＳＲＡＭ５０（バックアップＲＡＭ）の入出力制御モジュールで用いるデータが格納されている領域のデータの排他的論理和を求めチェックサムを計算する（Ｓａ１１）。この後、計算したチェックサムが、バックアップされているチェックサムと一致するか否かを判定する（Ｓａ１２）。
【０２３６】
チェックサムが一致している場合には、リール回転制御モジュールに対応したバックアップフラグがＳＲＡＭ５０（バックアップＲＡＭ）にセットされているか否かを判定する（Ｓａ１４）。リール回転制御モジュールに対応したバックアップフラグがセットされている場合には、バックアップフラグをクリアする（Ｓａ１５）。バックアップフラグをクリアした後、ＳＲＡＭ５０（バックアップＲＡＭ）のリール回転制御モジュールで用いるデータが格納されている領域のデータの排他的論理和を求めチェックサムを計算する（Ｓａ１６）。この後、計算したチェックサムが、バックアップされているチェックサムと一致するか否かを判定する（Ｓａ１７）。
【０２３７】
チェックサムが一致している場合には、払出制御モジュールに対応したバックアップフラグがＳＲＡＭ５０（バックアップＲＡＭ）にセットされているか否かを判定する（Ｓａ１８）。払出制御モジュールに対応したバックアップフラグがセットされている場合には、バックアップフラグをクリアする（Ｓａ１９）。バックアップフラグをクリアした後、ＳＲＡＭ５０（バックアップＲＡＭ）の払出制御モジュールで用いるデータが格納されている領域のデータの排他的論理和を求めチェックサムを計算する（Ｓａ２０）。この後、計算したチェックサムが、バックアップされているチェックサムと一致するか否かを判定する（Ｓａ２１）。
【０２３８】
Ｓａ８，Ｓａ１２，Ｓａ１７，Ｓａ２１において、１つでもチェックサムが一致していないことを判定した場合、または、Ｓａ５，Ｓａ９，Ｓａ１４，Ｓａ１８において、１つでもバックアップフラグがセットされていないことを判定した場合には、ＲＡＭ５０７（ワークＲＡＭ）及びＳＲＡＭ５０（バックアップＲＡＭ）の全ての格納領域を初期化する初期化処理を実行した後（Ｓａ２９）、設定キースイッチ３７がｏｎか否かを判定する（Ｓａ３０）。設定キースイッチ３７がｏｎであれば、設定変更中であることを示す設定変更中コマンドを生成するとともに、生成した設定変更中コマンドをコマンドバッファに格納する（Ｓａ２７）。尚、設定変更中コマンドは、ステップＳａ２７の処理の後、後述するタイマ割込処理におけるステップＳｋ１６のコマンド送信処理と同様の処理が実行されることによって直ちに送信される。次いで、図３４において説明する遊技制御用マイクロコンピュータ１００が一定間隔（０．５６ｍｓの間隔）で実行するタイマ割込処理（メイン）の割込を許可して（Ｓａ２８）、当選役の当選確率の変更などを行う設定変更処理、すなわち設定変更状態に移行する。そして、設定変更処理が終了すると、図３３に示す遊技制御処理に移行する。
【０２３９】
Ｓａ２８の処理では、例えば遊技制御用マイクロコンピュータ１００が備えるタイマ回路５０８のレジスタ設定などを行うことにより、所定時間（例えば２ミリ秒）ごとにタイマ割込みが発生するように遊技制御用マイクロコンピュータ１００の内部設定を行う。この後、例えばＣＰＵ５０５がＲＯＭ５０６のプログラム管理エリアに記憶されている１６ビット乱数初期設定第１ＫＲＬ１のビット番号［７］やビット番号［３］などにおけるビット値を読み出す。このときには、それぞれのビット値について読出値が“０”であるか否かを判定する。
【０２４０】
読出値が“０”であるビット値があった場合には、乱数値となる数値データにおける最大値を設定することにより乱数回路５０９Ａ、５０９Ｂを起動させる設定を行う。例えば図１１（Ｂ）に示す１６ビット乱数初期設定第１ＫＲＬ１のビット番号［３］におけるビット値を予め“０”となるように設定しておく。この場合、１６ビットの乱数回路５０９Ａにおいてチャネルｃｈ０の１６ビット乱数を発生させる回路は、ユーザプログラム（ソフトウェア）における乱数最大値の設定により起動させることができる。このような設定に基づいて、ステップＳ４６の処理では、ＣＰＵ５０５が図２１（Ａ）および（Ｂ）に示すチャネルｃｈ０の１６ビット乱数に対応した乱数最大値設定レジスタＲＬ０ＭＸに所定の数値データを乱数最大値として書き込む。こうして、ユーザプログラム（ソフトウェア）における乱数最大値の設定により、チャネルｃｈ０に対応した１６ビット乱数の発生を開始させる。
【０２４１】
読出値が“０”ではなく“１”である場合や、乱数回路５０９Ａ、５０９Ｂを起動させる設定を行った後には、シリアル通信回路の初期設定を行う。
【０２４２】
尚、後述するＳａ２５やＳａ３３のステップにおいても、上記に説明したＳｍ２５のステップと同様の処理が実行される。
【０２４３】
Ｓａ３０のステップにおいて設定キースイッチ３７がｏｆｆであれば、ＲＡＭ異常を示すエラーコードをレジスタに設定し（Ｓａ３１）、ＲＡＭ異常を示すエラーコマンドを生成し、生成したエラーコマンドをコマンドバッファに格納する（Ｓａ３２）。尚、エラーコマンドは、ステップＳａ３２の処理の後、後述するタイマ割込処理におけるステップＳｋ１６のコマンド送信処理と同様の処理が実行されることによって直ちに送信される。次いで、図３４において説明する遊技制御用マイクロコンピュータ１００が一定間隔（０．５６ｍｓの間隔）で実行するタイマ割込処理（メイン）の割込を許可して（Ｓａ３３）、エラー処理、すなわちＲＡＭ異常エラー状態に移行する。そして、例えば、遊技店員によってリセット／設定スイッチ３８が操作されるなどして、ＲＡＭ異常エラー状態が解除されると、図３３に示す遊技制御処理に移行する。
【０２４４】
Ｓａ２１において、チェックサムが一致していることを判定した場合には、設定キースイッチ３７がｏｎか否かを判定する（Ｓａ２３）。設定キースイッチ３７がｏｎであれば、ＲＡＭ５０７（ワークＲＡＭ）及びＳＲＡＭ５０（バックアップＲＡＭ）の全ての格納領域を初期化する初期化処理を実行した後（Ｓａ２６）、前述したＳａ２７〜Ｓａ２８の処理を行い、設定変更処理、すなわち設定変更状態に移行する。そして、設定変更処理が終了すると、図３３に示す遊技制御処理に移行する。
【０２４５】
Ｓａ２３のステップにおいて設定キースイッチ３７がｏｆｆであれば、各レジスタを電断前の状態、すなわちスタックに保存されている状態に復帰する（Ｓａ２４）。そして、復帰コマンドを生成して、生成した復帰コマンドをコマンドバッファに格納し（Ｓａ２４ａ）、図３４において説明する遊技制御用マイクロコンピュータ１００が一定間隔（０．５６ｍｓの間隔）で実行するタイマ割込処理（メイン）の割込を許可して（Ｓａ２５）、電断前の最後に実行していた処理に戻る。尚、復帰コマンドは、遊技制御用マイクロコンピュータ１００のＲＡＭ５０７の特別ワークに割り当てられたコマンド送信用バッファに格納され、後述するタイマ割込処理におけるステップＳｋ１６のコマンド送信処理と同様の処理が実行されることによって、停電復旧時に直ちに送信される。電断前に図３３に示す遊技制御処理中のいずれかの処理が行われていた場合には、Ｓａ２４で復帰されたプログラムカウンタ（ＰＣ）の値に基づいて、遊技制御処理のＳｄ１〜Ｓｄ７の処理のうち、電断前に行われていた処理に戻る。また、例えば、電断前に図３４に示すタイマ割込処理中のいずれかの処理が行われていた場合には、Ｓａ２４で復帰されたプログラムカウンタ（ＰＣ）の値に基づいて、タイマ割込処理のＳｋ１〜Ｓｋ２６の処理のうち、電断前に行われていた処理に戻る。
【０２４６】
Ｓａ２５、Ｓａ２８、Ｓａ３３の処理が実行されることにより割込み許可状態となった後、例えばタイマ回路５０８や乱数回路５０９Ａ、５０９Ｂ、あるいはシリアル通信回路５１１の一部または全部などにて同時に複数のマスカブル割込み要因が生じたときには、割込み初期設定ＫＩＩＳのビット番号［２−０］におけるビット値による指定に基づき、割込みコントローラ５０４Ｂによって優先順位の高い割込み要因が受け付けられる。割込みコントローラ５０４Ｂが割込み要因を受け付けたときには、例えばＣＰＵ５０５が備えるＩクラス割込み（ＩＲＱ）端子などに対して、オン状態の割込み要求信号を出力する。ＣＰＵ５０５にてＩＲＱ端子にオン状態の割込み要求信号が入力されたときには、例えば内部レジスタの格納データを確認した結果などに基づき、発生した割込み要因を特定し、特定された割込み要因に対応するベクタアドレスを先頭アドレスとするプログラムを実行することにより、各割込み要因に基づく割込み処理を開始することができる。
【０２４７】
シリアル通信回路５１１が備える第１チャネル送受信回路による通信データの受信中に、オーバーランエラー、ブレークコードエラー、フレーミングエラー、パリティエラーという、４種類のエラーのいずれかが発生した場合には、第１チャネル受信割込みが発生する。このときには、ＣＰＵ５０５が所定のシリアル通信エラー割込み処理を実行してもよい。このシリアル通信エラー割込み処理では、例えば所定の第１チャネル通信設定レジスタにおける所定のビット番号と、第２チャネル通信設定レジスタにおける所定のビット番号とに対応したビット値を、いずれも“０”に設定することなどにより、シリアル通信回路５１１における送信機能と受信機能をいずれも使用しないように設定すればよい。ここで、第１チャネル通信設定レジスタや第２チャネル通信設定レジスタは、遊技制御用マイクロコンピュータ１００の内蔵レジスタに含まれるものであればよい。また、第１チャネル送受信回路による通信データの受信中にエラーが発生したときには、払出モータ５１を含む払出装置による遊技球の払出を禁止する制御を行うようにしてもよい。これにより、通信データの受信エラーといった異常が発生したときに、賞球となる遊技球の過剰な払出を防止することができる。
【０２４８】
以上のように、起動処理（メイン）では、各プログラムモジュールのチェックサムが全て一致し、且つ各プログラムモジュールに対するバックアップフラグが全てセットされていることを条件にＳａ２４において各レジスタを復帰させて電断前の状態に復帰することから、一部のモジュールのバックアップデータが正確でないのに復帰してしまうことを防止できる。これにより、モジュール毎にバックアップデータを作成しても、確実に復帰できる。
【０２４９】
遊技制御用マイクロコンピュータ１００からサブ制御部９１に送信されるコマンドとして、リール回転開始コマンド、リール停止コマンド、復帰コマンド、設定変更中コマンド、エラーコマンドがある。
【０２５０】
リール回転開始コマンドは、リールの回転の開始を通知するコマンドである。リール停止コマンドは、停止するリールが左リール、中リール、右リールのいずれかであるか、該当するリールの停止操作位置の領域番号、該当するリールの停止位置の領域番号、を特定可能なコマンドである。また、リール停止コマンドは、ストップスイッチ８Ｌ、８Ｃ、８Ｒが操作されたときに送信されるので、リール停止コマンドを受信することでストップスイッチ８Ｌ、８Ｃ、８Ｒが操作されたことを特定可能である。
【０２５１】
エラーコマンドは、エラー状態の発生または解除、エラー状態の種類を示すコマンドである。
【０２５２】
復帰コマンドは、遊技制御用マイクロコンピュータ１００が電断前の制御状態に復帰した旨を示すコマンドである。
【０２５３】
設定変更中コマンドは、設定変更中であることを示すコマンドである。また、設定変更状態への移行に伴って遊技制御用マイクロコンピュータ１００の制御状態が初期化されるため、設定変更中であることを示す設定変更中コマンドにより遊技制御用マイクロコンピュータ１００の制御状態が初期化されたことを特定可能である。
【０２５４】
上述した複数種類のコマンドに関して、図３０〜図３２に示した起動処理において、設定変更中コマンドや、エラーコマンド、復帰コマンドが送信される場合には、これらのコマンドは、遊技制御用マイクロコンピュータ１００のＲＡＭ５０７の特別ワークに割り当てられたコマンド送信用バッファに格納され、後述するタイマ割込処理におけるステップＳｋ１６のコマンド送信処理と同様の処理が実行されることによって、起動処理において直ちに送信される。
【０２５５】
他方、リール回転開始コマンド、リール停止コマンドについては、遊技制御用マイクロコンピュータ１００のＲＡＭ５０７の特別ワークに設けられたコマンド送信用バッファに一時的に格納され、図３４に示すタイマ割込処理（メイン）で実行されるコマンド送信処理（Ｓｋ１６）においてサブ制御部９１に送信される。
【０２５６】
図３３は、遊技制御用マイクロコンピュータ１００が実行する遊技制御処理の制御内容を示すフローチャートである。
【０２５７】
遊技制御処理では、ＢＥＴ処理（Ｓｄ１）、内部抽選処理（Ｓｄ２）、リール回転処理（Ｓｄ３）、入賞判定処理（Ｓｄ４）、払出処理（Ｓｄ５）、ゲーム終了時処理（Ｓｄ６）、入出力処理（Ｓｄ７）を順に実行し、入出力処理（Ｓｄ７）が終了すると、再びＢＥＴ処理（Ｓｄ１）に戻る。
【０２５８】
Ｓｄ１のステップにおけるＢＥＴ処理では、賭数を設定可能な状態で待機し、遊技状態に応じた規定数の賭数が設定され、スタートスイッチ７が操作された時点でゲームを開始させる処理を実行する。
【０２５９】
Ｓｄ２のステップにおける内部抽選処理は、遊技制御用マイクロコンピュータ１００により内部抽選モジュールに従って実行される処理である。Ｓｄ２のステップにおける内部抽選処理では、Ｓｄ１のステップにおけるスタートスイッチ７の検出によるゲーム開始と同時にラッチされた内部抽選用の乱数値に基づいて上記した各役への入賞を許容するかどうかを決定する処理を行う。この内部抽選処理では、それぞれの抽選結果に基づいて、ＲＡＭ５０７に当選フラグが設定される。
【０２６０】
Ｓｄ３のステップにおけるリール回転処理は、遊技制御用マイクロコンピュータ１００によりリール回転制御モジュールに従って実行される処理である。Ｓｄ３のステップにおけるリール回転処理では、各リール２Ｌ、２Ｃ、２Ｒを回転させる処理、遊技者によるストップスイッチ８Ｌ、８Ｃ、８Ｒの操作が検出されたことに応じて対応するリール２Ｌ、２Ｃ、２Ｒの回転を停止させる処理を実行する。リール２Ｌ、２Ｃ、２Ｒが回転開始したことを示すリール回転コマンド及び停止されるリールの種類及び該リールについて停止される図柄を示すリール停止コマンドは、リール回転処理において生成し、コマンドバッファに格納する。コマンドバッファに格納された各コマンドは、図３４に示すタイマ割込処理（メイン）で実行されるコマンド送信処理（Ｓｋ１６）においてサブ制御部９１に送信される。その後、操作された停止ボタンに対応するリール（２Ｌ、２Ｃ、２Ｒのいずれか）の回転が停止するまで待機する（Ｓｆ１２）。
【０２６１】
Ｓｄ４のステップにおける入賞判定処理では、Ｓｄ３のステップにおいて全てのリール２Ｌ、２Ｃ、２Ｒの回転が停止したと判定した時点で、各リール２Ｌ、２Ｃ、２Ｒに導出された表示結果に応じて入賞が発生したか否かを判定する処理を実行する。
【０２６２】
Ｓｄ５のステップにおける払出処理は、遊技制御用マイクロコンピュータ１００により払出制御モジュールに従って実行される処理である。Ｓｄ５のステップにおける払出処理では、Ｓｄ４のステップにおいて入賞の発生が判定された場合に、その入賞に応じた払出枚数に基づきクレジットの加算並びにメダルの払出等の処理を行う。
【０２６３】
Ｓｄ６のステップにおけるゲーム終了時処理では、次のゲームに備えて遊技状態を設定する処理を実行する。
【０２６４】
Ｓｄ７のステップにおける入出力処理は、遊技制御用マイクロコンピュータ１００により入出力制御モジュールに従って実行される処理である。Ｓｄ７のステップにおける入出力処理では、入力ポートの入力状態を監視して各種スイッチ類の入力の有無を検出し、検出結果を入力バッファにセットするなどの処理を行う。尚、この実施例では、例えば、後述する図３５のＳｋ２１のスイッチ入力判定処理や図３５のＳｋ２３の停止スイッチ処理では、Ｓｄ７でセットされた入力バッファの状態を見て各スイッチがｏｎしたか否かを確認する。また、Ｓｄ７のステップにおける入出力処理では、出力バッファの状態に基づいて各種ソレノイドやＬＥＤに出力信号を出力する処理を行う。尚、この実施例では、例えば、後述する図３４のＳｋ１２のＬＥＤダイナミック表示処理などで出力バッファにＬＥＤなどの各種出力値がセットされる。
【０２６５】
図３４及び図３５は、遊技制御用マイクロコンピュータ１００が一定間隔（０．５６ｍｓの間隔）で起動処理や遊技制御処理に割り込んで実行するタイマ割込処理（メイン）の制御内容を示すフローチャートである。尚、タイマ割込処理（メイン）の実行期間中は自動的に他の割込が禁止される。
【０２６６】
タイマ割込処理（メイン）においては、まず、使用中のレジスタをスタック領域に退避する（Ｓｋ１）。
【０２６７】
次いで、停電判定処理を行う（Ｓｋ２）。停電判定処理では、電源断信号がオン状態（ローレベル）となったか否か（出力されたか否か）の判定を行う。電源断信号が入力されていれば、前回の停電判定処理でも電源断信号が入力されていたか否かを判定し、前回の停電判定処理でも電源断信号が入力されていた場合には停電と判定し、その旨を示す電断フラグを設定する。
【０２６８】
Ｓｋ２のステップにおける停電判定処理の後、電断フラグが設定されているか否かを判定し（Ｓｋ３）、電断フラグが設定されていなければ、Ｓｋ４に進み、電断フラグが設定されていた場合には、後述する電断処理（メイン）に移行する。
【０２６９】
Ｓｋ４のステップでは、入力ポートから各種スイッチ類の検出データを入力するポート入力処理を行う。
【０２７０】
次いで、４種類のタイマ割込１〜４から当該タイマ割込処理（メイン）において実行すべきタイマ割込を識別するための分岐用カウンタを１進める（Ｓｋ５）。この実施形態では、タイマ割込１とは、モータを制御してリールの開始制御を行うタイマ割込中の分岐処理であり、具体的には、後述するリール始動処理など、Ｓｋ９〜Ｓｋ１１の処理が行われる。また、タイマ割込２とは、ＬＥＤ表示制御や、時間カウンタの更新、ドア開閉状態の監視、制御信号等の出力制御、コマンド及び外部出力信号の更新を行うタイマ割込中の分岐処理であり、具体的には、後述するＬＥＤダイナミック表示処理など、Ｓｋ１２〜Ｓｋ１７の処理が行われる。また、タイマ割込３とは、リールの原点通過を検出したり、スイッチ入力を監視したり、乱数値の読み出しを行うタイマ割込中の分岐処理であり、具体的には、後述する原点通過時処理など、Ｓｋ２０〜Ｓｋ２２の処理が行われる。また、タイマ割込４とは、停止スイッチの入力を検出してリールの停止制御を行うタイマ割込中の分岐処理であり、具体的には、後述する停止スイッチ処理など、Ｓｋ２３〜Ｓｋ２５の処理が行われる。Ｓｋ５のステップでは、分岐用カウンタ値が０〜２の場合に１が加算され、カウンタ値が３の場合に０に更新される。すなわち分岐用カウンタ値は、タイマ割込処理（メイン）が実行される毎に、０→１→２→３→０...の順番でループする。
【０２７１】
次いで、分岐用カウンタ値を参照して２または３か、すなわちタイマ割込３またはタイマ割込４かを判定し（Ｓｋ６）、タイマ割込３またはタイマ割込４ではない場合、すなわちタイマ割込１またはタイマ割込２の場合には、リールモータ３２Ｌ、３２Ｃ、３２Ｒの始動時または定速回転中か否かを確認し、リールモータ３２Ｌ、３２Ｃ、３２Ｒの始動時または定速回転中であれば、後述するＳｋ１０のモータステップ処理において変更した位相信号データや後述するＳｋ２４の最終停止処理において変更した位相信号データを出力するモータ位相信号出力処理を実行する（Ｓｋ７）。
【０２７２】
次いで、分岐用カウンタ値を参照して１か否か、すなわちタイマ割込２か否かを判定し（Ｓｋ８）、タイマ割込２ではない場合、すなわちタイマ割込１の場合には、リールモータ３２Ｌ、３２Ｃ、３２Ｒの始動時のステップ時間間隔の制御を行うリール始動処理（Ｓｋ９）、リールモータ３２Ｌ、３２Ｃ、３２Ｒの位相信号データの変更を行うモータステップ処理（Ｓｋ１０）、リールモータ３２Ｌ、３２Ｃ、３２Ｒの停止後、一定時間経過後に位相信号を１相励磁に変更するモータ位相信号スタンバイ処理（Ｓｋ１１）を順次実行した後、Ｓｋ２５のステップに進む。
【０２７３】
また、Ｓｋ８のステップにおいてタイマ割込２の場合には、各種表示器をダイナミック点灯させるＬＥＤダイナミック表示処理（Ｓｋ１２）、各種ＬＥＤ等の点灯信号等のデータを出力ポートへ出力する制御信号等出力処理（Ｓｋ１３）、各種時間カウンタを更新する時間カウンタ更新処理（Ｓｋ１４）、ドア開放検出スイッチ２５の検出状態の監視、ドアコマンドの送信要求などを行うドア監視処理（Ｓｋ１５）、コマンドバッファに設定された設定変更中コマンドや復帰コマンド、エラーコマンド等の各種コマンドをサブ制御部９１に送信するコマンド送信処理（Ｓｋ１６）、外部出力信号を更新する外部出力信号更新処理（Ｓｋ１７）を順次実行した後、Ｓｋ２５のステップに進む。
【０２７４】
また、Ｓｋ６のステップにおいてタイマ割込３またはタイマ割込４であれば、更に、分岐用カウンタ値を参照して３か否か、すなわちタイマ割込４か否かを判定し（Ｓｋ１８）、タイマ割込４でなければ、すなわちタイマ割込３であれば、回転中のリール２Ｌ、２Ｃ、２Ｒの原点通過（リール基準位置の通過）をチェックし、リール回転エラーの発生を検知するとともに、停止準備が完了しているか（停止準備完了コードが設定されているか）を確認し、停止準備が完了しており、かつ定速回転中であれば、回転中のリールに対応するストップスイッチの操作を有効化する原点通過時処理（Ｓｋ２０）、スイッチ類の検出状態に変化があったか否かの判定、操作検出コマンドの送信要求等を行うスイッチ入力判定処理（Ｓｋ２１）、乱数値レジスタＲ１Ｄから数値データを読み出して乱数値格納ワークに格納する乱数値読出処理（Ｓｋ２２）を順次実行した後、Ｓｋ２６のステップに進む。
【０２７５】
また、Ｓｋ１８のステップにおいてタイマ割込４であれば、ストップスイッチ８Ｌ、８Ｃ、８Ｒの検出に伴って停止リールのワークに停止操作位置が格納されたときに、停止リールのワークに格納された停止操作位置から停止位置を決定し、何ステップ後に停止すれば良いかを算出する停止スイッチ処理（Ｓｋ２３）、停止スイッチ処理で算出された停止までのステップ数をカウントして、停止する時期になったら２相励磁によるブレーキを開始する停止処理（Ｓｋ２４）、停止処理においてブレーキを開始してから一定時間後に３相励磁とする最終停止処理（Ｓｋ２５）を順次実行した後、Ｓｋ２６のステップに進む。
【０２７６】
Ｓｋ２６のステップでは、Ｓｋ１においてスタック領域に退避したレジスタを復帰し、割込前の処理に戻る。
【０２７７】
このように本実施例では、一定間隔毎に基本処理に割り込んでタイマ割込処理（メイン）を実行するとともに、タイマ割込処理（メイン）を実行する毎に処理カウンタを更新し、処理カウンタ値に応じて定められた処理を行うようになっており、一度のタイマ割込処理（メイン）に要する負荷を分散できるうえに、処理カウンタ値に関わらず、電圧低下信号に基づいて電断の条件が成立しているか否かを判定する停電判定処理を行い、電断の条件が成立していれば、電断処理を行うようになっており、電断が検知された場合には速やかに電断処理を行うことが可能となる。
【０２７８】
また、タイマ割込処理（メイン）内で、電断の条件が成立しているか否かの判定を行い、電断の条件が成立していれば、そのまま電断処理に移行することとなり、タイマ割込処理（メイン）の実行中に電断に伴う割込が発生することもないため、タイマ割込処理（メイン）の実行中に電断処理を割り込ませたり、タイマ割込処理（メイン）の終了を待って電断に伴う割込処理を行う必要がないため、電断条件の成立に伴う処理が複雑化してしまうことがない。
【０２７９】
図３６は、遊技制御用マイクロコンピュータ１００が前述したタイマ割込処理（メイン）において電源断信号がオン状態であると判定した場合に実行する電断処理（メイン）の制御内容を示すフローチャートである。
【０２８０】
電断処理（メイン）においては、まず、遊技制御用マイクロコンピュータ１００は、内部抽選制御モジュールで使用しているデータをワークＲＡＭから読み込む（Ｓｍ１）。次いで、ワークＲＡＭから読み出したデータについて所定のデータ変換を行い、バックアップデータを作成する（Ｓｍ２）。そして、遊技制御用マイクロコンピュータ１００は、作成したバックアップデータをＳＲＡＭ５０（バックアップＲＡＭ）に格納する（Ｓｍ３）。次いで、遊技制御用マイクロコンピュータ１００は、Ｓｍ２で変換したバックアップデータの排他的論理和を算出し、内部抽選制御モジュールのバックアップデータのチェックサムを計算し、これをＳＲＡＭ５０（バックアップＲＡＭ）にセットする（Ｓｍ４）。チェックサムデータのセット後、遊技制御用マイクロコンピュータ１００は、バックアップを実行したことを示すバックアップフラグをＳＲＡＭ５０（バックアップＲＡＭ）にセットする（Ｓｍ５）。
【０２８１】
ここで、Ｓｍ２のステップのデータ変換処理について説明する。遊技制御用マイクロコンピュータ１００は、Ｓｍ１において、内部メモリであるワークＲＡＭから２バイト（１６ビット）のデータを読み込んでいる。また、この実施例では、外部メモリとして８ビットのバスアクセスのみ可能なＳＲＡＭ５０を接続し、バックアップＲＡＭとして用いている。そして、既に説明したように、この実施例では、遊技制御用マイクロコンピュータ１００は、外部メモリなどの外部デバイスに対して１６ビットまたは３２ビットのバスアクセスのみ可能である。すると、ワークＲＡＭから読み出した１６ビットのデータをそのままＳＲＡＭ５０（バックアップＲＡＭ）に格納しようとしても、ＳＲＡＭ５０（バックアップＲＡＭ）側では８ビットのデータしか認識できないのであるから、上位の８ビットが欠落し、下位の８ビットのデータしかＳＲＡＭ５０（バックアップＲＡＭ）に格納できない事態が生じてしまう。そこで、Ｓｍ２のステップでは、Ｓｍ１で読み込んだ１６ビットのデータを、以下のデータ変換処理を行って２つのデータに変換している。
【０２８２】
まず、１つ目の変換データについては、Ｓｍ１で読み込んだ１６ビットのデータをそのままマスク値「００ＦＦ（Ｈ）」でマスキングを行い、Ｓｍ１で読み込んだ元データの下位８ビットのみがそのまま下位８ビットに設定されたデータを生成する。また、２つ目の変換データについては、Ｓｍ１で読み込んだ１６ビットのデータについて８ビット分シフト処理を施し（従って、元データの上位８ビットにあった値が下位８ビットに移動することになる）、シフト処理後のデータにマスク値「００ＦＦ（Ｈ）」でマスキングを行い、Ｓｍ１で読み込んだ元データの上位８ビットが下位８ビットに設定されたデータを生成する。そして、これら２つの変換データをＳｍ３のステップでＳＲＡＭ５０（バックアップＲＡＭ）に格納することによって、２つのデータに分割されるもののＳｍ１で読み込んだ元データの上位及び下位のいずれの値も欠落することなく、電源バックアップすることができる。
【０２８３】
尚、後述するＳｍ７やＳｍ１２、Ｓｍ１７のステップにおいても、上記に説明したＳｍ２のステップと同様のデータ変換処理が実行される。
【０２８４】
次いで、遊技制御用マイクロコンピュータ１００は、入出力制御モジュールで使用しているデータをワークＲＡＭから読み込む（Ｓｍ６）。次いで、ワークＲＡＭから読み出したデータについて所定のデータ変換を行い、バックアップデータを作成する（Ｓｍ７）。そして、遊技制御用マイクロコンピュータ１００は、作成したバックアップデータをＳＲＡＭ５０（バックアップＲＡＭ）に格納する（Ｓｍ８）。次いで、遊技制御用マイクロコンピュータ１００は、Ｓｍ２で変換したバックアップデータの排他的論理和を算出し、入出力制御モジュールのバックアップデータのチェックサムを計算し、これをＳＲＡＭ５０（バックアップＲＡＭ）にセットする（Ｓｍ９）。チェックサムデータのセット後、遊技制御用マイクロコンピュータ１００は、バックアップを実行したことを示すバックアップフラグをＳＲＡＭ５０（バックアップＲＡＭ）にセットする（Ｓｍ１０）。
【０２８５】
次いで、遊技制御用マイクロコンピュータ１００は、リール回転制御モジュールで使用しているデータをワークＲＡＭから読み込む（Ｓｍ１１）。次いで、ワークＲＡＭから読み出したデータについて所定のデータ変換を行い、バックアップデータを作成する（Ｓｍ１２）。そして、遊技制御用マイクロコンピュータ１００は、作成したバックアップデータをＳＲＡＭ５０（バックアップＲＡＭ）に格納する（Ｓｍ１３）。次いで、遊技制御用マイクロコンピュータ１００は、Ｓｍ２で変換したバックアップデータの排他的論理和を算出し、リール回転制御モジュールのバックアップデータのチェックサムを計算し、これをＳＲＡＭ５０（バックアップＲＡＭ）にセットする（Ｓｍ１４）。チェックサムデータのセット後、バックアップを実行したことを示すバックアップフラグをＳＲＡＭ５０（バックアップＲＡＭ）にセットする（Ｓｍ１５）。
【０２８６】
次いで、遊技制御用マイクロコンピュータ１００は、払出制御モジュールで使用しているデータをワークＲＡＭから読み込む（Ｓｍ１６）。次いで、ワークＲＡＭから読み出したデータについて所定のデータ変換を行い、バックアップデータを作成する（Ｓｍ１７）。そして、遊技制御用マイクロコンピュータ１００は、作成したバックアップデータはＳＲＡＭ５０（バックアップＲＡＭ）に格納する（Ｓｍ１８）。次いで、遊技制御用マイクロコンピュータ１００は、Ｓｍ２で変換したバックアップデータの排他的論理和を算出し、払出制御モジュールのバックアップデータのチェックサムを計算し、これをＳＲＡＭ５０（バックアップＲＡＭ）にセットする（Ｓｍ１９）。チェックサムデータのセット後、遊技制御用マイクロコンピュータ１００は、バックアップを実行したことを示すバックアップフラグをＳＲＡＭ５０（バックアップＲＡＭ）にセットする（Ｓｍ２０）。
【０２８７】
Ｓｍ２０においてバックアップフラグをセットした後、ＲＡＭ５０７へのアクセスを禁止し（Ｓｍ２１）、さらにＳＲＡＭ５０に接続されているＣＳ信号線が接続された汎用端子に対応する汎用ポートの設定を入力ポートに設定することで（Ｓｍ２２）、ＳＲＡＭ５０に対するチップセレクト信号の出力機能を強制的に無効化する。その後、図３０に示したＳａ３６の処理と同様に、リセットコントローラ５０４Ａに設けられたウォッチドッグタイマ５２０を起動させるための設定を行ってから（Ｓｍ２３）、無限ループ処理を繰返し実行することにより制御状態を待機状態に移行させる。こうして待機状態に移行した後には、ウォッチドッグタイマ５２０のクリアおよびリスタートが行われないことから、監視時間の経過が計測されたときに、タイムアウトの発生によるリセット動作が行われることになる。したがって、例えばタイマ割込処理（メイン）（図３４）といった、スロットマシン１における遊技の進行を制御する遊技制御処理が実行可能な制御状態となった後に、スロットマシン１における電源電圧の低下（瞬停）により電源断信号がオン状態となった場合には、ウォッチドッグタイマ５２０におけるタイムアウトの発生によるリセット動作を行って、遊技制御用マイクロコンピュータ１００を再起動させることができる。
【０２８８】
ここで、ウォッチドッグタイマ５２０にて計測される監視時間となるタイムアウト時間は、監視時間として設定可能な複数種類のうちで最長時間２２５×ＴＳＣＬＫ×１５となるように設定されている。したがって、例えばスロットマシン１における電源スイッチの切断等により電力供給が所定期間にわたり完全に停止したときには、監視時間の経過によりタイムアウトが発生するより先に、遊技制御用マイクロコンピュータ１００のＣＰＵ５０５やリセットコントローラ５０４Ａに対する電力供給が停止するので、タイムアウトの発生によるリセット動作が行われないように制限できる。こうして、電源スイッチの切断時などに誤ってリセットされてしまうことを防止できる。
【０２８９】
図３０に示す起動処理（メイン）および図３６に示す電断処理（メイン）では、Ｓａ３６やＳｍ２３の処理によりウォッチドッグタイマ５２０を起動させる設定を行った後に、無限ループ処理を繰返し実行することにより制御状態を待機状態に移行させる。この待機状態に移行した後には、たとえ電源断信号がオフ状態になったとしても、タイムアウトの発生によるリセット動作を行うことで遊技制御用マイクロコンピュータ１００を再起動させる。これに対して、待機状態に移行した後でも、電源断信号がオフ状態になったときには、待機状態を終了させて遊技制御処理を実行できるようにしてもよい。
【０２９０】
一例として、図３０に示すステップＳａ３の処理を実行した後には、図３７（Ａ）に示すような処理を実行してもよい。この場合、ＣＰＵ５０５は、Ｓａ３５Ａの処理によりウォッチドッグタイマ５２０を起動させる設定を行ってから、Ｓａ３５の処理により電源断信号がオン状態であるか否かを判定する。このとき、電源断信号がオン状態である場合には、Ｓａ３５Ｂの処理により所定時間が経過するまで待機してから、Ｓａ３５の処理に戻る。したがって、電源断信号がオフ状態となるまでは、Ｓａ３５およびＳａ３５Ｂの処理が繰返し実行される。そして、電源断信号がオフ状態にならずにウォッチドッグタイマ５２０にて監視時間となるタイムアウト時間が経過したことが計測されたときには、タイムアウトの発生によるリセット動作が行われる。
【０２９１】
一方、図３７（Ａ）に示すＳａ３５の処理にて電源断信号がオフ状態であると判定されたときには、Ｓａ３５Ｃの処理によりウォッチドッグタイマ５２０を停止させるための設定を行ってから、図３０に示すＳａ３７の処理に進めばよい。ステップＳ３５Ｃの処理では、ＣＰＵ５０５が図１５（Ａ）に示すＷＤＴスタートレジスタＷＳＴに、「３３Ｈ」をＷＤＴストップデータとして書き込む。こうして、タイムアウトの発生より先に、Ｓａ３５の処理により電源断信号がオフ状態であると判定されたときには、ウォッチドッグタイマ５２０による監視時間の計測を停止させて、タイムアウトの発生によるリセット動作を無効化してもよい。
【０２９２】
図３４に示すＳｋ２の処理にて電源断信号がオン状態であると判定されたときにも、所定時間が経過するまで待機してから、電源断信号がオン状態であるか否かを再度チェックしてもよい。この場合、最初に電源断信号がオン状態であると判定されたときに図３６に示す電断処理（メイン）を実行する一方で、所定時間を待機した後でも電源断信号がオン状態であると判定されたときに、ウォッチドッグタイマ５２０を起動させてタイムアウトの発生によるリセット動作を有効化してもよい。所定時間を待機した後に電源断信号がオフ状態であると判定されたときには、Ｓａ３５Ｃの処理と同様にウォッチドッグタイマ５２０を停止させるための設定を行ってから割込みを許可してもよい。
【０２９３】
また、図３０に示すＳａ３６の処理や、図３６に示すＳｍ２３の処理、あるいは図３７（Ａ）に示すステップＳ２５Ａの処理では、ウォッチドッグタイマ５２０を常に起動させてタイムアウトの発生によるリセット動作を有効化するものに限定されない。例えば、予め定めたＷＤＴ起動条件が成立したか否かを判定し、ＷＤＴ起動条件が成立した場合にはタイムアウトの発生によるリセット動作を有効化する一方、ＷＤＴ起動条件が成立しない場合にはタイムアウトの発生によるリセット動作を無効化してもよい。
【０２９４】
この場合、Ｓａ３６、Ｓｍ２３、Ｓａ３５Ａの処理として、例えば図３７（Ｂ）に示すような処理が実行されてもよい。図３７（Ｂ）に示す処理において、ＣＰＵ５０５は、図１３（Ａ）に示す内部情報レジスタＣＩＦのビット番号［１］におけるビット値（格納値）を読み出す（ステップＳ７１）。そして、この読出値が“１”であるか否かを判定する（ステップＳ７２）。図１３（Ｂ）に示すように、内部情報レジスタＣＩＦのビット番号［１］に格納される内部情報データＣＩＦ１は、直前に発生したリセット要因がウォッチドッグタイマ５２０のタイムアウトによるものであるか否かを示している。したがって、ステップＳ７１にて読み出した内部情報データＣＩＦ１の値が“１”であれば、タイムアウトの発生によるリセット動作が行われたと判定することができる。
【０２９５】
ステップＳ７２にて読出値が“１”ではなく“０”であると判定されたときには（ステップＳ７２；Ｎｏ）、ＷＤＴスタートレジスタＷＳＴに「ＣＣＨ」をＷＤＴスタートデータとして書き込むことにより（ステップＳ７３）、ウォッチドッグタイマ５２０を起動させてタイムアウトの発生によるリセット動作を有効化する。一方、ステップＳ７２にて読出値が“１”であると判定されたときには（ステップＳ７２；Ｙｅｓ）、ＷＤＴスタートレジスタＷＳＴに「３３Ｈ」をＷＤＴストップデータとして書き込むことにより、ウォッチドッグタイマ５２０を停止させてタイムアウトの発生によるリセット動作を無効化する（ステップＳ７４）。
【０２９６】
こうして、直前に発生したリセット要因がウォッチドッグタイマ５２０のタイムアウトによるものである場合には、ステップＳ７４の処理を実行することで、タイムアウトの発生によるリセット動作を無効化する。これにより、電源電圧の安定が確認できないために不用意なリセット動作が繰返し実行されてしまうことを防止できる。なお、ステップＳ７２にて読出値が“１”であると判定されたときには、ステップＳ７３、Ｓ７４の処理を実行することなく、図３７（Ｂ）に示す処理を終了してもよい。
【０２９７】
図３０〜図３２に示す起動処理（メイン）では、Ｓａ２４の処理による復帰コマンドの生成、格納や、Ｓａ２７の処理による設定変更中コマンドの生成、格納、Ｓａ３２の処理による復帰コマンドの生成、格納を行った後のタイミングであって、タイマ割込処理（メイン）の割込を許可する前のタイミングにて、乱数回路５０９Ａ、５０９Ｂに乱数最大値を設定することにより、ユーザプログラム（ソフトウェア）で乱数の発生を開始させるようにしている。ここで、ユーザプログラム（ソフトウェア）で乱数の発生を開始させるタイミングは、スロットマシン１の仕様などに基づいて、任意に設定されればよい。例えば、Ｓａ２６の処理による電源断信号の判定を行うより前のタイミングにて、乱数回路５０９Ａ、５０９Ｂを起動させ、乱数の発生を開始させてもよい。あるいは、Ｓ２６ａの処理による電源断信号の判定よりも後のタイミングであって、Ｓ４ａの処理によるＲＡＭ５０７へのアクセス許可を行うより前のタイミングにて、乱数回路５０９Ａ、５０９Ｂを起動させ、乱数の発生を開始させてもよい。あるいは、Ｓ４ａの処理によるＲＡＭ５０７へのアクセス許可よりも後のタイミングであって、Ｓａ２１およびＳａ２３の処理による復旧判定より前のタイミングにて、乱数回路５０９Ａ、５０９Ｂを起動させ、乱数の発生を開始させてもよい。あるいは、タイマ割込処理（メイン）の割込を許可する後のタイミングにて、乱数回路５０９Ａ、５０９Ｂを起動させ、乱数の発生を開始させてもよい。
【０２９８】
こうした電断処理（メイン）が実行されたときには、乱数ラッチフラグをクリアするための処理が実行されてもよい。例えば、図２３（Ａ）に示す乱数ハードラッチフラグレジスタＲＨＦに格納されるハードラッチフラグデータＲＬ００ＨＦ〜ＲＬ０１ＨＦのうち、いずれかのビット値が“１”であるか否かを判定し、ビット値が“１”であるものがある場合には、その乱数ラッチフラグに対応するハードラッチ乱数値レジスタ５５９Ａの読み出しを行うことにより、ハードラッチフラグデータＲＬ００ＨＦ〜ＲＬ０１ＨＦのビット値をいずれも“０”にクリアして、乱数ラッチフラグをオフ状態にすればよい。これにより、図２１（Ａ）および（Ｂ）に示すハードラッチ選択レジスタＲＬ０ＬＳのビット番号［３］におけるビット値が“０”であり、格納値の読出しがハードラッチ乱数値の取込条件となる場合でも、ハードラッチ乱数値レジスタ５５９Ａに新たな数値データの格納が許可された状態に設定できる。なお、ハードラッチフラグデータＲＬ００ＨＦ〜ＲＬ０１ＨＦにおけるビット値にかかわらず、ハードラッチ乱数値レジスタ５５９Ａの読み出しを行うようにしてもよい。
【０２９９】
このような乱数ラッチフラグをクリアするための処理は、電源断信号がオン状態となることによる電源電圧の低下時に実行されるものに限定されない。例えば、電力供給が開始されたことに対応して実行される図３０〜図３２に示す起動処理（メイン）において、Ｓａ２６の処理による電源断信号の判定や、Ｓａ４の処理によるＲＡＭ５０７へのアクセス許可、Ｓａ２１およびＳａ２３の処理による復旧判定、Ｓａ２４、Ｓａ２７、Ｓａ３２のいずれかの処理による乱数の発生開始設定、Ｓａ２５、Ｓａ２８、Ｓａ３３のいずれかの処理による割込み初期設定のいずれかに伴うタイミングといった、ユーザプログラム（ソフトウェア）で予め定められた任意のタイミングにて、実行されるものであってもよい。
【０３００】
ここで、図３８を用いて、遊技制御基板４０における各プログラムモジュールのバックアップデータをＳＲＡＭ５０（バックアップＲＡＭ）に格納するときの具体例について説明する。
【０３０１】
図３６で説明したように、内部抽選制御モジュール、入出力制御モジュール、リール回転制御モジュール、払出制御モジュールの４つのプログラムモジュールのうち、まず、内部抽選制御モジュールのバックアップデータをＳＲＡＭ５０（バックアップＲＡＭ）に格納する（Ｓｍ３）。ＳＲＡＭ５０（バックアップＲＡＭ）では、内部抽選制御モジュールのバックアップデータを格納するときに指定する開始アドレスが「０６００」に設定されている。よって、遊技制御用マイクロコンピュータ１００は、Ｓｍ３のステップにおいて、「０６００」を開始アドレスとして指定して、Ｓｍ２のステップでデータ変換して生成した内部抽選モジュールのバックアップデータの格納を開始する。そして、ワークＲＡＭに記憶されている内部抽選制御モジュール用の全てのデータについてバックアップを完了するまで、ＳＲＡＭ５０（バックアップＲＡＭ）の格納先のアドレスをインクリメントしながらＳｍ１〜Ｓｍ３の処理を繰り返し実行する。
【０３０２】
次に、内部抽選制御モジュールのバックアップデータを格納した後に入出力制御モジュールのバックアップデータをＳＲＡＭ５０（バックアップＲＡＭ）に格納する（Ｓｍ８）。バックアップＲＡＭでは、入出力制御モジュールのバックアップデータを格納するときに指定する開始アドレスが「０７００」に設定されている。よって、遊技制御用マイクロコンピュータ１００は、Ｓｍ８のステップにおいて、「０７００」を開始アドレスとして指定して、Ｓｍ７のステップでデータ変換して生成した入出力制御モジュールのバックアップデータの格納を開始する。そして、ワークＲＡＭに記憶されている入出力制御モジュール用の全てのデータについてバックアップを完了するまで、ＳＲＡＭ５０（バックアップＲＡＭ）の格納先のアドレスをインクリメントしながらＳｍ６〜Ｓｍ８の処理を繰り返し実行する。
【０３０３】
次に、入出力制御モジュールのバックアップデータを格納した後にリール回転制御モジュールのバックアップデータをＳＲＡＭ５０（バックアップＲＡＭ）に格納する（Ｓｍ１３）。バックアップＲＡＭでは、リール回転制御モジュールのバックアップデータを格納するときに指定する開始アドレスが「０８００」に設定されている。よって、遊技制御用マイクロコンピュータ１００は、Ｓｍ１３のステップにおいて、「０８００」を開始アドレスとして指定して、Ｓｍ１２のステップでデータ変換して生成したリール回転制御モジュールのバックアップデータの格納を開始する。そして、ワークＲＡＭに記憶されているリール回転制御モジュール用の全てのデータについてバックアップを完了するまで、ＳＲＡＭ５０（バックアップＲＡＭ）の格納先のアドレスをインクリメントしながらＳｍ１１〜Ｓｍ１３の処理を繰り返し実行する。
【０３０４】
次に、入出力制御モジュールのバックアップデータを格納した後に払出制御モジュールのバックアップデータをＳＲＡＭ５０（バックアップＲＡＭ）に格納する（Ｓｍ１８）。バックアップＲＡＭでは、払出制御モジュールのバックアップデータを格納するときに指定する開始アドレスが「０９００」に設定されている。よって、Ｓｍ１８のステップにおいて、遊技制御用マイクロコンピュータ１００は「０９００」を開始アドレスとして指定して、Ｓｍ１７のステップでデータ変換して生成した払出制御モジュールのバックアップデータの格納を開始する。そして、ワークＲＡＭに記憶されている払出制御モジュール用の全てのデータについてバックアップを完了するまで、ＳＲＡＭ５０（バックアップＲＡＭ）の格納先のアドレスをインクリメントしながらＳｍ１６〜Ｓｍ１８の処理を繰り返し実行する。
【０３０５】
このように、プログラムモジュール毎にバックアップデータを格納するため、他機種においていずれかのプログラムモジュールのみを変更すれば良い場合に、そのプログラムモジュールのみを入れ替えれば良く、遊技制御プログラムの変更が容易になる。そして、各プログラムモジュールのバックアップデータを格納するときの開始アドレスがプログラムモジュール毎に設定されているため、機種を変更してもバックアップデータを格納するための整合性をとる必要がなく、プログラムモジュール毎に設定された開始アドレスにバックアップデータを格納すれば良い。このため、バックアップデータ格納時のプログラムの簡易にすることができ、プログラムの開発工数を削減できる。同様に、チェックサムデータについてもプログラムモジュール毎に作成されるから、機種を変更してもチェックサムデータを格納するための整合性をとる必要がなく、チェックサムデータ格納時のプログラムの簡易にすることができ、プログラムの開発工数を削減できる。
【０３０６】
本実施例のスロットマシン１は、遊技制御用マイクロコンピュータ１００がゲームの進行制御を行う。操作スイッチとしてＭＡＸＢＥＴスイッチ６、スタートスイッチ７、ストップスイッチ８Ｌ、８Ｃ、８Ｒを備える。また、これら操作スイッチのうちスタートスイッチ７は、設定変更状態において設定値の確定操作にも用いられる。
【０３０７】
遊技制御用マイクロコンピュータ１００は、これら操作スイッチを、一定時間間隔毎に割り込んで実行されるタイマ割込処理（メイン）中に実行するスイッチ入力判定処理において検出する。
【０３０８】
遊技制御用マイクロコンピュータ１００は、電源投入に伴い、起動処理を実行し、起動処理の終了時に割込が許可され、その後、タイマ割込処理（メイン）を一定間隔毎に実行する。そして、遊技制御用マイクロコンピュータ１００が電断前の状態に復帰可能な場合には、起動処理において割込が許可される前に復帰コマンドがサブ制御部９１に対して送信される。また、ＲＡＭ５０７の格納データの異常により遊技制御用マイクロコンピュータ１００が電断前の状態に復帰不可能な場合には、起動処理において割込が許可される前にＲＡＭ異常を示すエラーコマンドがサブ制御部９１に対して送信される。また、設定キースイッチ３７がｏｎの状態であり、ＲＡＭ５０７が初期化され、電断前の状態に復帰しない場合には、起動処理において割込が許可される前に設定変更中であることを示す設定変更中コマンドがサブ制御部９１に対して送信される。これら起動処理において送信されるコマンドのうち復帰コマンドからは、遊技制御用マイクロコンピュータ１００が電断前の状態に復帰する旨が特定され、ＲＡＭ異常を示すエラーコマンド、設定変更中であることを示す設定変更中コマンドからは、遊技制御用マイクロコンピュータ１００が電断前の状態には復帰しない旨が特定されることとなる。
【０３０９】
次に、遊技制御用マイクロコンピュータ１００が演出制御基板９０に対して送信するコマンドに基づいてサブ制御部９１が実行する演出の制御について説明する。
【０３１０】
サブ制御部９１は、遊技制御用マイクロコンピュータ１００からのコマンドを受信した際に、コマンド受信割込処理を実行する。コマンド受信割込処理では、ＲＡＭ９１ｃに設けられた受信用バッファに、コマンド伝送ラインから取得したコマンドを格納する。
【０３１１】
受信用バッファには、最大で１６個のコマンドを格納可能な領域が設けられており、複数のコマンドを蓄積できるようになっている。
【０３１２】
サブ制御部９１は、タイマ割込処理（サブ）において、受信用バッファに未処理のコマンドが格納されているか否かを判定し、未処理のコマンドが格納されている場合には、そのうち最も早い段階で受信したコマンドに基づいてＲＯＭ９１ｂに格納された制御パターンテーブルを参照し、制御パターンテーブルに登録された制御内容に基づいて液晶表示器５１、演出効果ＬＥＤ５２、スピーカ５３、５４、リールＬＥＤ５５等の各種演出装置の出力制御を行う。
【０３１３】
制御パターンテーブルには、複数種類の演出パターン毎に、コマンドの種類に対応する液晶表示器５１の表示パターン、演出効果ＬＥＤ５２の点灯態様、スピーカ５３、５４の出力態様、リールＬＥＤの点灯態様等、これら演出装置の制御パターンが登録されており、サブ制御部９１は、コマンドを受信した際に、制御パターンテーブルの当該ゲームにおいてＲＡＭ９１ｃに設定されている演出パターンに対応して登録された制御パターンのうち、受信したコマンドの種類に対応する制御パターンを参照し、当該制御パターンに基づいて演出装置の出力制御を行う。これにより演出パターン及び遊技の進行状況に応じた演出が実行されることとなる。
【０３１４】
尚、サブ制御部９１は、あるコマンドの受信を契機とする演出の実行中に、新たにコマンドを受信した場合には、実行中の制御パターンに基づく演出を中止し、新たに受信したコマンドに対応する制御パターンに基づく演出を実行するようになっている。すなわち演出が最後まで終了していない状態でも、新たにコマンドを受信すると、受信した新たなコマンドが新たな演出の契機となるコマンドではない場合を除いて実行していた演出はキャンセルされて新たなコマンドに基づく演出が実行されることとなる。
【０３１５】
演出パターンは、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じた選択率にて選択され、ＲＡＭ９１ｃに設定される。演出パターンの選択率は、ＲＯＭ９１ｂに格納された演出テーブルに登録されており、サブ制御部９１は、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じて演出テーブルに登録されている選択率を参照し、その選択率に応じて複数種類の演出パターンからいずれかの演出パターンを選択し、選択した演出パターンを当該ゲームの演出パターンとしてＲＡＭ９１ｃに設定するようになっており、同じコマンドを受信しても内部当選コマンドの受信時に選択された演出パターンによって異なる制御パターンが選択されるため、結果として演出パターンによって異なる演出が行われることがある。
【０３１６】
本実施例のスロットマシン１においては、入賞ラインＬＮに予め定められた図柄組み合わせが揃うと、入賞となる。入賞となる役の種類は、遊技状態に応じて定められているが、大きく分けて、ビッグボーナス、レギュラーボーナスへの移行を伴う特別役と、メダルの払い出しを伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役とがある。
【０３１７】
尚、ビッグボーナスをＢＢと示し、レギュラーボーナスをＲＢと示す場合がある。また、ビッグボーナス、レギュラーボーナスを単にボーナスという場合もある。遊技状態に応じて定められた各役の入賞が発生するためには、内部抽選に当選して、当該役の入賞を許容する旨の当選フラグがＲＡＭ５０７に設定されている必要がある。
【０３１８】
図３９〜図４１は、入賞役の種類、入賞役の図柄組み合わせ、及び入賞役に関連する技術事項について説明するための図である。また、図４２は、遊技制御用マイクロコンピュータ１００により制御される遊技状態及びＲＴの遷移を説明するための図である。
【０３１９】
本実施例におけるスロットマシンは、図４２に示すように、遊技状態として、通常遊技状態、内部中１、内部中２、ＲＢ、ＢＢ（ＲＢ）のいずれかに制御される。また、ＲＴとは、リプレイとなる確率が高められたリプレイタイムのことであり、通常遊技状態（以下、通常遊技状態を通常と称す）においては、ＲＴ０〜４のいずれかの種類のＲＴ（リプレイタイム）に制御される。
【０３２０】
入賞役のうち特別役には、ビッグボーナス１〜４、レギュラーボーナス１、２の６種類のボーナスが含まれる。
【０３２１】
ＢＢ１は、入賞ラインＬＮに「黒７−黒７−黒７」の組み合わせが揃ったときに入賞となる。ＢＢ２は、入賞ラインＬＮに「網７−網７−網７」の組み合わせが揃ったときに入賞となる。ＢＢ３は、入賞ラインＬＮに「白７−白７−白７」の組み合わせが揃ったときに入賞となる。ＢＢ４は、入賞ラインＬＮに「ＢＡＲ−ＢＡＲ−ＢＡＲ」の組み合わせが揃ったときに入賞となる。ＢＢ４は、入賞ラインＬＮに「黒７−白７−網７」の組み合わせが揃ったときに入賞となる。
【０３２２】
ＢＢ１〜ＢＢ４のいずれかに入賞すると、ＢＢ中レギュラーボーナス（以下、ＢＢＲＢと称する）に毎ゲーム制御されるビッグボーナスに移行される。
【０３２３】
ＢＢ１〜ＢＢ４のいずれかの入賞に起因して発生したビッグボーナスは、３１６枚以上メダルが払い出されたことを条件として終了する。
【０３２４】
ＲＢ１は、入賞ラインＬＮに「網７−網７−黒７」の組み合わせが揃ったときに入賞となる。ＲＢ２は、入賞ラインＬＮに「白７−白７−黒７」の組み合わせが揃ったときに入賞となる。
【０３２５】
ＲＢ１、ＲＢ２のいずれかに入賞すると、レギュラーボーナス（以下、ＲＢと称する）に移行される。
【０３２６】
ＲＢ１、ＲＢ２のいずれかの入賞に起因して発生したレギュラーボーナスは、いずれかの役が６回入賞するか、１２ゲーム消化したことを条件として終了する。
【０３２７】
図４２に示すように、ＢＢ１、ＢＢ３、ＲＢ２のいずれかに内部当選してから入賞するまでは、内部中１.ＲＴ０に制御され、ＢＢ２、ＢＢ４、ＲＢ１のいずれかに内部当選してから入賞するまでは、内部中２.ＲＴ０に制御される。また、図１８に示すように、ビッグボーナスまたはレギュラーボーナス（まとめてボーナスと呼ぶ）が終了した後は、通常.ＲＴ４に制御される。
【０３２８】
後述する内部抽選においてＢＢ１〜ＢＢ４、ＲＢ１、ＲＢ２のうちいずれかに当選していても、ストップスイッチ８Ｌ、８Ｃ、８Ｒをこれらの役に入賞可能とする適正なタイミングで操作しなければ、これらの役に入賞することはない。ＢＢ１〜ＢＢ４、ＲＢ１、ＲＢ２を構成する図柄（「黒７」、「白７」、「網７」））は、各々、左リール２Ｌ、中リール２Ｃ、右リール２Ｒ各々において５コマ以内に配置されていないためである。
【０３２９】
次に、図３９を参照して、入賞役のうち小役について説明する。入賞役のうち小役には、中段ベル、右下がりベル、上段ベル１〜８、中段スイカ、右下がりスイカ、上段スイカ、下段チェリー、中段チェリー、１枚役、右上がりベル、右上がりベベリ、右上がりリベベが含まれる。
【０３３０】
例えば、中段ベルは、入賞ラインＬＮに「ベル−ベル−ベル」の組み合わせが揃ったときに入賞となり、８枚のメダルが払い出される。
【０３３１】
ここで、図３を参照すると、ベルは、左リール２Ｌ、中リール２Ｃ、右リール２Ｒ各々において５コマ以内に配置されている。このため、後述する内部抽選において中段ベルに当選しているときには、原則として、ストップスイッチ８Ｌ〜８Ｒの操作タイミングに関わらず入賞させることができる役といえる。
【０３３２】
以下、右下がりベル、上段ベル１〜８、中段スイカ、右下がりスイカ、上段スイカ、下段チェリー、中段チェリー、１枚役、右上がりベル、右上がりベベリ、右上がりリベベも同様に、図３９に示す図柄の組み合わせが揃ったときに入賞となり、図３９に示す払い出し枚数のメダルが払い出される。尚、図３に示すように、右下がりベル、右上がりベル、右上がりベベリ、右上がりリベベは構成図柄が５コマ以内に配置されているため、ストップスイッチ８Ｌ〜８Ｒの操作タイミングに関わらず入賞させることができるが、上段ベル１〜８、中段スイカ、右下がりスイカ、上段スイカ、下段チェリー、中段チェリー、１枚役は、構成図柄が５コマ以内に配置されていない箇所があるので、構成図柄が５コマ以内に配置されていないリールに対応するストップスイッチを適正なタイミングで操作しなければ入賞することはない。
【０３３３】
次に、図４０を参照して、入賞役のうち再遊技役について説明する。入賞役のうち再遊技役には、通常リプレイ、下段リプレイ、転落リプレイ、昇格リプレイ１、２、特殊リプレイ、ＳＰ（スペシャル）リプレイが含まれる。
【０３３４】
例えば、通常リプレイは、入賞ラインＬＮに「リプレイ−リプレイ−リプレイ」、「リプレイ−リプレイ−プラム」、「プラム−リプレイ−リプレイ」、「プラム−リプレイ−プラム」の組み合わせが揃ったときに入賞となる。リプレイ、プラムは、左リール２Ｌ、中リール２Ｃ、右リール２Ｒ各々において５コマ以内に配置されている。よって、通常リプレイについては、原則として、当選していれば、ストップスイッチ８Ｌ〜８Ｒの操作タイミングに関わらず入賞させることができる役といえる。
【０３３５】
以下、下段リプレイ、転落リプレイ、昇格リプレイ１、２、特殊リプレイ、ＳＰ（スペシャル）リプレイも同様に、図４０で示す図柄の組み合わせが揃ったときに入賞となる。また、図３に示すように、これらの各リプレイも構成図柄が５コマ以内に配置されているので、当選していれば、ストップスイッチ８Ｌ〜８Ｒの操作タイミングに関わらず入賞させることができる役といえる。
【０３３６】
図４２に示すように、通常.ＲＴ０において転落リプレイに入賞した後は、ＲＴ１に制御される。
【０３３７】
また、通常.ＲＴ１において昇格リプレイ（昇格リプレイ１または昇格リプレイ２）に入賞した後は、通常.ＲＴ０に制御される。後述するように、昇格リプレイは、通常.ＲＴ２、通常.ＲＴ３、通常.ＲＴ４における内部抽選においては単独で当選しないように設定されている。また、通常.ＲＴ２、通常.ＲＴ３、通常.ＲＴ４における内部抽選において特別役と昇格リプレイが同時に当選した場合には、その時点で内部中１.ＲＴ０または内部中２.ＲＴ０に制御される。このため、通常.ＲＴ２、通常.ＲＴ３、通常.ＲＴ４においては昇格リプレイに入賞しない。その結果、通常.ＲＴ２、通常.ＲＴ３、通常.ＲＴ４から通常.ＲＴ０に制御されないように構成されており、通常.ＲＴ１であるときにのみ昇格リプレイ入賞し、当該通常.ＲＴ１からのみ通常.ＲＴ０に制御されるように構成されている。
【０３３８】
また、通常.ＲＴ１、通常.ＲＴ３において特殊リプレイに入賞した後は、通常.ＲＴ２に制御される。後述するように、特殊リプレイは、通常.ＲＴ１、通常.ＲＴ４における内部抽選においては単独で当選しないように設定されている。また、通常.ＲＴ１、通常.ＲＴ４における内部抽選において特別役と特殊リプレイが同時に当選した場合には、その時点で内部中１.ＲＴ０または内部中２.ＲＴ０に制御される。このため、通常.ＲＴ１、通常.ＲＴ４においては特殊リプレイに入賞しない。その結果、通常.ＲＴ１、通常.ＲＴ４から通常.ＲＴ２に制御されないように構成されており、通常.ＲＴ０、通常.ＲＴ３であるときにのみ特殊リプレイ入賞し、当該通常.ＲＴ０、通常.ＲＴ３からのみ通常.ＲＴ２に制御されるように構成されている。尚、通常.ＲＴ２において特殊リプレイが入賞した場合には、通常.ＲＴ２が維持されることとなる。
【０３３９】
図４２に示すように、通常.ＲＴ２においてＳＰリプレイに入賞した後は、通常.ＲＴ３に制御される。後述するように、ＳＰリプレイは、通常.ＲＴ０、通常.ＲＴ１、通常.ＲＴ４における内部抽選においては単独で当選しないように設定されている。また、通常.ＲＴ０、通常.ＲＴ１、通常.ＲＴ４における内部抽選において特別役とＳＰリプレイが同時に当選した場合には、その時点で内部中１.ＲＴ０または内部中２.ＲＴ０に制御される。このため、通常.ＲＴ０、通常.ＲＴ１、通常.ＲＴ４においてはＳＰリプレイに入賞しない。その結果、通常.ＲＴ０、通常.ＲＴ１、通常.ＲＴ４から通常.ＲＴ３に制御されないように構成されており、通常.ＲＴ２であるときにのみＳＰリプレイ入賞し、当該通常.ＲＴ２からのみ通常.ＲＴ３に制御されるように構成されている。尚、通常.ＲＴ３において特殊リプレイが入賞した場合には、通常.ＲＴ３が維持されることとなる。
【０３４０】
次に、図４１を参照して、移行出目について説明する。移行出目は、図４１に示すように、例えば「リプレイ−オレンジ−ベル」など、２０種類の組み合わせで構成されている。本実施例では、後述する左ベル１〜４、中ベル１〜４、右ベル１〜４が当選し、中段ベルの入賞条件となるリール以外を第１停止とし、かつ当選している上段ベルを取りこぼした場合に、上記の移行出目が入賞ラインＬＮに揃う。
【０３４１】
図４２に示すように、通常.ＲＴ０、通常.ＲＴ２、通常.ＲＴ３、通常.ＲＴ４において移行出目が入賞ラインＬＮに揃った後は、通常.ＲＴ１に制御される。尚、通常.ＲＴ１において移行出目が入賞ラインＬＮに揃った場合には、通常.ＲＴ１が維持されることとなる。
【０３４２】
次に、遊技状態毎に抽選対象役として読み出される抽選対象役の組み合わせについて説明する。本実施例では、遊技状態が、通常遊技状態であるか、内部中１（ＢＢ１、ＢＢ３、ＲＢ２が当選している状態）であるか、内部中２（ＢＢ２、ＢＢ４、ＲＢ１が当選している状態）であるか、ＢＢ（ＲＢ）であるか、ＲＢであるか、によって内部抽選の対象となる役及びその当選確率が異なる。さらに遊技状態が通常遊技状態であれば、ＲＴ０〜４の種類によって、内部抽選の対象となる再遊技役及びその当選確率の少なくとも一方が異なる。尚、抽選対象役として後述するように、複数の入賞役が同時に読出されて、重複して当選し得る。以下において、入賞役の間に“＋”を表記することにより、内部抽選において同時に抽選対象役として読み出されることを示す。
【０３４３】
通常.ＲＴ０であるときには、ＢＢ１、ＢＢ１＋弱スイカ、ＢＢ１＋強スイカ、ＢＢ１＋弱チェリー、ＢＢ１＋強チェリー、ＢＢ１＋中段チェリー、ＢＢ１＋１枚役、ＢＢ１＋通常リプレイ、ＢＢ１＋転落リプレイ、ＢＢ１＋昇格リプレイ、ＢＢ１＋特殊リプレイ、ＢＢ１＋ＳＰリプレイ、ＢＢ２、ＢＢ２＋弱スイカ、ＢＢ２＋強スイカ、ＢＢ２＋弱チェリー、ＢＢ２＋強チェリー、ＢＢ２＋中段チェリー、ＢＢ２＋１枚役、ＢＢ２＋通常リプレイ、ＢＢ２＋転落リプレイ、ＢＢ２＋昇格リプレイ、ＢＢ２＋特殊リプレイ、ＢＢ３、ＢＢ３＋弱スイカ、ＢＢ３＋強スイカ、ＢＢ３＋弱チェリー、ＢＢ３＋強チェリー、ＢＢ３＋中段チェリー、ＢＢ３＋１枚役、ＢＢ３＋通常リプレイ、ＢＢ３＋転落リプレイ、ＢＢ３＋昇格リプレイ、ＢＢ３＋特殊リプレイ、ＢＢ４、ＢＢ４＋中段チェリー、ＢＢ４＋１枚役、ＢＢ４＋特殊リプレイ、ＲＢ１、ＲＢ１＋強スイカ、ＲＢ１＋弱チェリー、ＲＢ１＋強チェリー、ＲＢ１＋１枚役、ＲＢ２、ＲＢ２＋弱スイカ、ＲＢ２＋強スイカ、ＲＢ２＋弱チェリー、ＲＢ２＋強チェリー、ＲＢ２＋１枚役、ベル、左ベル１、左ベル２、左ベル３、左ベル４、中ベル１、中ベル２、中ベル３、中ベル４、右ベル１、右ベル２、右ベル３、右ベル４、弱スイカ、強スイカ、弱チェリー、強チェリー、中段チェリー、１枚役、リプレイＧＲ１１、リプレイＧＲ１２、リプレイＧＲ１３、リプレイＧＲ１４、リプレイＧＲ１５、リプレイＧＲ１６、リプレイＧＲ２１、リプレイＧＲ２２、リプレイＧＲ２３、リプレイＧＲ２４、リプレイＧＲ２５が内部抽選の対象役となる。
【０３４４】
尚、弱スイカとは、上段スイカ＋右下がりスイカである。すなわち上段スイカが入賞した場合に、弱スイカであることを認識できる。強スイカとは中段スイカ＋右下がりスイカである。すなわち中段スイカが入賞した場合に、強スイカであることを認識できる。弱チェリーとは、下段チェリー単独であり、強チェリーとは、下段チェリー＋１枚役である。弱チェリーでは、中段に「ＢＡＲ−ＢＡＲ−ＢＡＲ」の組み合わせが揃うことで弱チェリーであることを認識できるのに対して、左リール２Ｌの下段にチェリーが停止し、かつ中段に「ＢＡＲ−ＢＡＲ−ＢＡＲ」の組み合わせが揃うことで強チェリーであることを認識できる。
【０３４５】
また、昇格リプレイとは、昇格リプレイ１＋昇格リプレイ２である。ベルとは、中段ベル＋右下がりベルである。左ベル１とは、右下がりベル＋上段ベル５＋上段ベル８であり、左ベル２とは、右下がりベル＋上段ベル６＋上段ベル７であり、左ベル３とは、右下がりベル＋上段ベル２＋上段ベル３であり、左ベル４とは、右下がりベル＋上段ベル２＋上段ベル４である。左ベル１〜４を単に左ベルとも呼ぶ。中ベル１とは、中段ベル＋上段ベル２＋上段ベル５であり、中ベル２とは、中段ベル＋上段ベル１＋上段ベル６であり、中ベル３とは、中段ベル＋上段ベル４＋上段ベル７であり、中ベル４とは、中段ベル＋上段ベル３＋上段ベル８である。中ベル１〜４を単に中ベルとも呼ぶ。右ベル１とは、中段ベル＋上段ベル３＋上段ベル５であり、右ベル２とは、中段ベル＋上段ベル１＋上段ベル７であり、右ベル３とは、中段ベル＋上段ベル４＋上段ベル６であり、右ベル４とは、中段ベル＋上段ベル２＋上段ベル８である。右ベル１〜４を単に右ベルとも呼ぶ。また、これら左ベル１〜４、中ベル１〜４、右ベル１〜４を単に押し順ベルとも呼ぶ。
【０３４６】
リプレイＧＲ１１とは、転落リプレイ＋昇格リプレイ２であり、リプレイＧＲ１２とは、転落リプレイ＋昇格リプレイ２＋通常リプレイであり、リプレイＧＲ１３とは、転落リプレイ＋昇格リプレイ１であり、リプレイＧＲ１４とは、転落リプレイ＋昇格リプレイ１＋通常リプレイであり、リプレイＧＲ１５とは、転落リプレイ＋昇格リプレイ１＋昇格リプレイ２であり、リプレイＧＲ１６とは、転落リプレイ＋昇格リプレイ１＋昇格リプレイ２＋通常リプレイである。
【０３４７】
リプレイＧＲ２１とは、転落リプレイ＋特殊リプレイであり、リプレイＧＲ２２とは、転落リプレイ＋特殊リプレイ＋通常リプレイであり、リプレイＧＲ２３とは、転落リプレイ＋特殊リプレイ＋下段リプレイであり、リプレイＧＲ２４とは、転落リプレイ＋特殊リプレイ＋通常リプレイ＋下段リプレイであり、リプレイＧＲ２５とは、転落リプレイ＋特殊リプレイ＋昇格リプレイ１である。
【０３４８】
通常.ＲＴ１であるときには、ＢＢ１、ＢＢ１＋弱スイカ、ＢＢ１＋強スイカ、ＢＢ１＋弱チェリー、ＢＢ１＋強チェリー、ＢＢ１＋中段チェリー、ＢＢ１＋１枚役、ＢＢ１＋通常リプレイ、ＢＢ１＋転落リプレイ、ＢＢ１＋昇格リプレイ、ＢＢ１＋特殊リプレイ、ＢＢ１＋ＳＰリプレイ、ＢＢ２、ＢＢ２＋弱スイカ、ＢＢ２＋強スイカ、ＢＢ２＋弱チェリー、ＢＢ２＋強チェリー、ＢＢ２＋中段チェリー、ＢＢ２＋１枚役、ＢＢ２＋通常リプレイ、ＢＢ２＋転落リプレイ、ＢＢ２＋昇格リプレイ、ＢＢ２＋特殊リプレイ、ＢＢ３、ＢＢ３＋弱スイカ、ＢＢ３＋強スイカ、ＢＢ３＋弱チェリー、ＢＢ３＋強チェリー、ＢＢ３＋中段チェリー、ＢＢ３＋１枚役、ＢＢ３＋通常リプレイ、ＢＢ３＋転落リプレイ、ＢＢ３＋昇格リプレイ、ＢＢ３＋特殊リプレイ、ＢＢ４、ＢＢ４＋中段チェリー、ＢＢ４＋１枚役、ＢＢ４＋特殊リプレイ、ＲＢ１、ＲＢ１＋強スイカ、ＲＢ１＋弱チェリー、ＲＢ１＋強チェリー、ＲＢ１＋１枚役、ＲＢ２、ＲＢ２＋弱スイカ、ＲＢ２＋強スイカ、ＲＢ２＋弱チェリー、ＲＢ２＋強チェリー、ＲＢ２＋１枚役、ベル、左ベル１、左ベル２、左ベル３、左ベル４、中ベル１、中ベル２、中ベル３、中ベル４、右ベル１、右ベル２、右ベル３、右ベル４、弱スイカ、強スイカ、弱チェリー、強チェリー、中段チェリー、１枚役、通常リプレイ、リプレイＧＲ１、リプレイＧＲ２、リプレイＧＲ３、リプレイＧＲ４、リプレイＧＲ５、リプレイＧＲ６が内部抽選の対象役となる。
【０３４９】
リプレイＧＲ１とは、通常リプレイ＋昇格リプレイ１であり、リプレイＧＲ２とは、通常リプレイ＋昇格リプレイ１＋昇格リプレイ２であり、リプレイＧＲ３とは、通常リプレイ＋昇格リプレイ１＋下段リプレイであり、リプレイＧＲ４とは、通常リプレイ＋昇格リプレイ１＋昇格リプレイ２＋下段リプレイであり、リプレイＧＲ５とは、通常リプレイ＋昇格リプレイ２であり、リプレイＧＲ６とは、通常リプレイ＋昇格リプレイ２＋下段リプレイである。
【０３５０】
通常.ＲＴ２であるときには、ＢＢ１、ＢＢ１＋弱スイカ、ＢＢ１＋強スイカ、ＢＢ１＋弱チェリー、ＢＢ１＋強チェリー、ＢＢ１＋中段チェリー、ＢＢ１＋１枚役、ＢＢ１＋通常リプレイ、ＢＢ１＋転落リプレイ、ＢＢ１＋昇格リプレイ、ＢＢ１＋特殊リプレイ、ＢＢ１＋ＳＰリプレイ、ＢＢ２、ＢＢ２＋弱スイカ、ＢＢ２＋強スイカ、ＢＢ２＋弱チェリー、ＢＢ２＋強チェリー、ＢＢ２＋中段チェリー、ＢＢ２＋１枚役、ＢＢ２＋通常リプレイ、ＢＢ２＋転落リプレイ、ＢＢ２＋昇格リプレイ、ＢＢ２＋特殊リプレイ、ＢＢ３、ＢＢ３＋弱スイカ、ＢＢ３＋強スイカ、ＢＢ３＋弱チェリー、ＢＢ３＋強チェリー、ＢＢ３＋中段チェリー、ＢＢ３＋１枚役、ＢＢ３＋通常リプレイ、ＢＢ３＋転落リプレイ、ＢＢ３＋昇格リプレイ、ＢＢ３＋特殊リプレイ、ＢＢ４、ＢＢ４＋中段チェリー、ＢＢ４＋１枚役、ＢＢ４＋特殊リプレイ、ＲＢ１、ＲＢ１＋強スイカ、ＲＢ１＋弱チェリー、ＲＢ１＋強チェリー、ＲＢ１＋１枚役、ＲＢ２、ＲＢ２＋弱スイカ、ＲＢ２＋強スイカ、ＲＢ２＋弱チェリー、ＲＢ２＋強チェリー、ＲＢ２＋１枚役、ベル、左ベル１、左ベル２、左ベル３、左ベル４、中ベル１、中ベル２、中ベル３、中ベル４、右ベル１、右ベル２、右ベル３、右ベル４、弱スイカ、強スイカ、弱チェリー、強チェリー、中段チェリー、１枚役、通常リプレイ、リプレイＧＲ３１、リプレイＧＲ３２、リプレイＧＲ３３、リプレイＧＲ３４、リプレイＧＲ３５、リプレイＧＲ３６が内部抽選の対象役となる。
【０３５１】
リプレイＧＲ３１とは、特殊リプレイ＋ＳＰリプレイ＋通常リプレイであり、リプレイＧＲ３２とは、特殊リプレイ＋ＳＰリプレイ＋通常リプレイ＋転落リプレイであり、リプレイＧＲ３３とは、特殊リプレイ＋ＳＰリプレイ＋下段リプレイであり、リプレイＧＲ３４とは、特殊リプレイ＋ＳＰリプレイ＋下段リプレイ＋転落リプレイであり、リプレイＧＲ３５とは、特殊リプレイ＋ＳＰリプレイ＋通常リプレイ＋下段リプレイであり、リプレイＧＲ３６とは、特殊リプレイ＋ＳＰリプレイ＋通常リプレイ＋下段リプレイ＋転落リプレイである。
【０３５２】
通常.ＲＴ３であるときには、ＢＢ１、ＢＢ１＋弱スイカ、ＢＢ１＋強スイカ、ＢＢ１＋弱チェリー、ＢＢ１＋強チェリー、ＢＢ１＋中段チェリー、ＢＢ１＋１枚役、ＢＢ１＋通常リプレイ、ＢＢ１＋転落リプレイ、ＢＢ１＋昇格リプレイ、ＢＢ１＋特殊リプレイ、ＢＢ１＋ＳＰリプレイ、ＢＢ２、ＢＢ２＋弱スイカ、ＢＢ２＋強スイカ、ＢＢ２＋弱チェリー、ＢＢ２＋強チェリー、ＢＢ２＋中段チェリー、ＢＢ２＋１枚役、ＢＢ２＋通常リプレイ、ＢＢ２＋転落リプレイ、ＢＢ２＋昇格リプレイ、ＢＢ２＋特殊リプレイ、ＢＢ３、ＢＢ３＋弱スイカ、ＢＢ３＋強スイカ、ＢＢ３＋弱チェリー、ＢＢ３＋強チェリー、ＢＢ３＋中段チェリー、ＢＢ３＋１枚役、ＢＢ３＋通常リプレイ、ＢＢ３＋転落リプレイ、ＢＢ３＋昇格リプレイ、ＢＢ３＋特殊リプレイ、ＢＢ４、ＢＢ４＋中段チェリー、ＢＢ４＋１枚役、ＢＢ４＋特殊リプレイ、ＲＢ１、ＲＢ１＋強スイカ、ＲＢ１＋弱チェリー、ＲＢ１＋強チェリー、ＲＢ１＋１枚役、ＲＢ２、ＲＢ２＋弱スイカ、ＲＢ２＋強スイカ、ＲＢ２＋弱チェリー、ＲＢ２＋強チェリー、ＲＢ２＋１枚役、ベル、左ベル１、左ベル２、左ベル３、左ベル４、中ベル１、中ベル２、中ベル３、中ベル４、右ベル１、右ベル２、右ベル３、右ベル４、弱スイカ、強スイカ、弱チェリー、強チェリー、中段チェリー、１枚役、リプレイＧＲ３１、リプレイＧＲ３２、リプレイＧＲ３３、リプレイＧＲ３４、リプレイＧＲ３５、リプレイＧＲ３６、ＳＰリプレイが内部抽選の対象役となる。
【０３５３】
通常.ＲＴ４であるときには、ＢＢ１、ＢＢ１＋弱スイカ、ＢＢ１＋強スイカ、ＢＢ１＋弱チェリー、ＢＢ１＋強チェリー、ＢＢ１＋中段チェリー、ＢＢ１＋１枚役、ＢＢ１＋通常リプレイ、ＢＢ１＋転落リプレイ、ＢＢ１＋昇格リプレイ、ＢＢ１＋特殊リプレイ、ＢＢ１＋ＳＰリプレイ、ＢＢ２、ＢＢ２＋弱スイカ、ＢＢ２＋強スイカ、ＢＢ２＋弱チェリー、ＢＢ２＋強チェリー、ＢＢ２＋中段チェリー、ＢＢ２＋１枚役、ＢＢ２＋通常リプレイ、ＢＢ２＋転落リプレイ、ＢＢ２＋昇格リプレイ、ＢＢ２＋特殊リプレイ、ＢＢ３、ＢＢ３＋弱スイカ、ＢＢ３＋強スイカ、ＢＢ３＋弱チェリー、ＢＢ３＋強チェリー、ＢＢ３＋中段チェリー、ＢＢ３＋１枚役、ＢＢ３＋通常リプレイ、ＢＢ３＋転落リプレイ、ＢＢ３＋昇格リプレイ、ＢＢ３＋特殊リプレイ、ＢＢ４、ＢＢ４＋中段チェリー、ＢＢ４＋１枚役、ＢＢ４＋特殊リプレイ、ＲＢ１、ＲＢ１＋強スイカ、ＲＢ１＋弱チェリー、ＲＢ１＋強チェリー、ＲＢ１＋１枚役、ＲＢ２、ＲＢ２＋弱スイカ、ＲＢ２＋強スイカ、ＲＢ２＋弱チェリー、ＲＢ２＋強チェリー、ＲＢ２＋１枚役、ベル、左ベル１、左ベル２、左ベル３、左ベル４、中ベル１、中ベル２、中ベル３、中ベル４、右ベル１、右ベル２、右ベル３、右ベル４、弱スイカ、強スイカ、弱チェリー、強チェリー、中段チェリー、１枚役、通常リプレイが内部抽選の対象役となる。
【０３５４】
内部中１.ＲＴ０、内部中２.ＲＴ０であるときには、ベル、左ベル１、左ベル２、左ベル３、左ベル４、中ベル１、中ベル２、中ベル３、中ベル４、右ベル１、右ベル２、右ベル３、右ベル４、弱スイカ、強スイカ、弱チェリー、強チェリー、中段チェリー、１枚役、通常リプレイ、下段リプレイ、ＳＰリプレイ、転落リプレイ、昇格リプレイ、特殊リプレイが内部抽選の対象役となる。
【０３５５】
ＢＢＲＢ.ＲＴ０であるときには、弱チェリー、全役が内部抽選の対象役となり、ＲＢ.ＲＴ０であるときには、全役、ＲＢベル１、ＲＢベル２、ＲＢベル３が内部抽選の対象役となる。
【０３５６】
全役とは、右上がりベベリ以外の全ての小役、すなわち中段ベル＋右下がりベル＋上段ベル１＋上段ベル２＋上段ベル３＋上段ベル４＋上段ベル５＋上段ベル６＋上段ベル７＋上段ベル８＋中段スイカ＋右下がりスイカ＋上段スイカ＋下段チェリー＋中段チェリー＋１枚役＋右上がりベル＋右上がりリベベである。
【０３５７】
ＲＢベル１とは、右上がりベル＋右上がりリベベであり、ＲＢベル２とは、右上がりベル＋右上がりリベベ＋右上がりベリリであり、ＲＢベル３とは、全ての小役、すなわち中段ベル＋右下がりベル＋上段ベル１＋上段ベル２＋上段ベル３＋上段ベル４＋上段ベル５＋上段ベル６＋上段ベル７＋上段ベル８＋中段スイカ＋右下がりスイカ＋上段スイカ＋下段チェリー＋中段チェリー＋１枚役＋右上がりベル＋右上がりベベリ＋右上がりリベベである。
【０３５８】
また、通常.ＲＴ０〜４などにおいて、ＢＢ１〜ＢＢ４、ＲＢ１、ＲＢ２のいずれかと同時当選し得る弱スイカ、強スイカ、弱チェリー、強チェリー、中段チェリー、１枚役、通常リプレイ、転落リプレイ、昇格リプレイ、ＳＰリプレイの判定値数は、内部中１.ＲＴ０、内部中２.ＲＴ０においては、各々、ボーナスと別個に読み出される、強スイカ、弱チェリー、強チェリー、中段チェリー、１枚役、通常リプレイ、転落リプレイ、昇格リプレイ、ＳＰリプレイに加算されているため、強スイカ、弱チェリー、強チェリー、中段チェリー、１枚役、通常リプレイ、転落リプレイ、昇格リプレイ、ＳＰリプレイ各々の当選確率が一定となるように担保されている。
【０３５９】
このように、遊技状態が通常遊技状態であるか、内部中１、２であるか、ＢＢ（ＲＢ）であるか、ＲＢであるか、によって内部抽選の対象役が異なるとともに、ＢＢ（ＲＢ）やＲＢでは、小役の当選確率が通常遊技状態及び内部中よりも高く定められた抽選テーブルを用いて内部抽選が行われる。
【０３６０】
また、遊技状態が内部中１、２である場合には、内部中１であるか、内部中２であるか、によって内部抽選の対象役は変わらないが、内部中１であるか、内部中２であるか、によって対象となる再遊技役の当選確率が異なる抽選テーブルを用いて内部抽選が行われる。
【０３６１】
また、遊技状態が通常遊技状態である場合には、ＲＴ０〜４のいずれかであるかによって、内部抽選の対象となる再遊技役が異なるとともに、ＲＴ０〜４のいずれかであるかによって、対象となる再遊技役及びその当選確率が異なる抽選テーブルを用いて内部抽選が行われる。
【０３６２】
詳しくは後述するように、本実施例では、複数種類の小役（ベル）や複数種類の再遊技役が同時に当選している場合には、当選した小役や再遊技役の種類及びストップスイッチ８Ｌ、８Ｃ、８Ｒの押し順に応じて定められた小役の図柄組み合わせや再遊技役の図柄組み合わせを入賞ラインＬＮに最大４コマの引込範囲で揃えて停止させる制御が行われる。そこで、図４３〜図４５を用いて同時に当選する小役や再遊技役の種類について具体的に説明するが、図４３は、同時に当選する小役や再遊技役の一覧を示す。また、図４４は、複数のリプレイが同時当選したときのリール制御を示し、図４５は、複数の小役が同時当選したときのリール制御を示す。
【０３６３】
図４３及び図４４に示すように、例えば、リプレイＧＲ１（通常リプレイ＋昇格リプレイ１）が当選し、左中右の順番で停止操作がなされた場合には、当選した再遊技役のうち昇格リプレイ１の組み合わせを入賞ラインＬＮに揃えて停止させる制御を行い、左中右以外の順番で停止操作がなされた場合には、通常リプレイの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行う。
【０３６４】
また、リプレイＧＲ２〜６も同様に、所定の順番で停止操作がなされた場合には、当選した再遊技役のうち昇格リプレイ１又は昇格リプレイ２の組み合わせを入賞ラインＬＮに揃えて停止させる制御を行い、所定の順番以外の順番で停止操作がなされた場合には、通常リプレイの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行う。
【０３６５】
図３に示すように、昇格リプレイ１、昇格リプレイ２及び通常リプレイを構成する図柄は、左リール２Ｌ、中リール２Ｃ、右リール２Ｒの全てにおいて５コマ以内の間隔で配置されているため、停止操作順に応じて、ストップスイッチ８Ｌ〜８Ｒの停止操作タイミングに関わらず、昇格リプレイ１、昇格リプレイ２または通常リプレイが必ず入賞するようにリール制御が行われる。
【０３６６】
このため、リプレイＧＲ１〜６が内部抽選の対象となる通常.ＲＴ１において、リプレイＧＲ１〜６のいずれかが当選していれば１／６の確率で昇格リプレイが入賞することとなり、通常.ＲＴ０に移行することとなる。
【０３６７】
また、リプレイＧＲ１１〜１６も同様に、所定の順番で停止操作がなされた場合には、当選した再遊技役のうち昇格リプレイ１又は昇格リプレイ２の組み合わせを入賞ラインＬＮに揃えて停止させる制御を行い、所定の順番以外の順番で停止操作がなされた場合には、転落リプレイの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行う。
【０３６８】
図３に示すように、昇格リプレイ１、昇格リプレイ２及び転落リプレイを構成する図柄は、左リール２Ｌ、中リール２Ｃ、右リール２Ｒの全てにおいて５コマ以内の間隔で配置されているため、停止操作順に応じて、ストップスイッチ８Ｌ〜８Ｒの停止操作タイミングに関わらず、昇格リプレイ１、昇格リプレイ２または転落リプレイが必ず入賞するようにリール制御が行われる。
【０３６９】
このため、リプレイＧＲ１１〜１６が内部抽選の対象となる通常.ＲＴ０において、リプレイＧＲ１１〜１６のいずれかが当選していれば１／６の確率で昇格リプレイが入賞して通常.ＲＴ０が維持される一方で、５／６の確率で転落リプレイが入賞して通常.ＲＴ１に移行することとなる。
【０３７０】
また、リプレイＧＲ２１〜２５では、所定の順番で停止操作がなされた場合には、当選した再遊技役のうち特殊リプレイの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行い、所定の順番以外の順番で停止操作がなされた場合には、転落リプレイの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行う。
【０３７１】
図３に示すように、特殊リプレイ及び転落リプレイを構成する図柄は、左リール２Ｌ、中リール２Ｃ、右リール２Ｒの全てにおいて５コマ以内の間隔で配置されているため、停止操作順に応じて、ストップスイッチ８Ｌ〜８Ｒの停止操作タイミングに関わらず、特殊リプレイまたは転落リプレイが必ず入賞するようにリール制御が行われる。
【０３７２】
このため、リプレイＧＲ２１〜２５が内部抽選の対象となる通常.ＲＴ０において、リプレイＧＲ２１〜２５のいずれかが当選していれば１／５の確率で特殊リプレイが入賞して通常.ＲＴ２に移行することとなる一方で、４／５の確率で転落リプレイが入賞して通常.ＲＴ１に移行することとなる。
【０３７３】
また、リプレイＧＲ３１〜３６では、所定の順番（左押し）で停止操作がなされた場合には、当選した再遊技役のうちＳＰリプレイ又は通常リプレイの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行い、所定の順番以外の順番で停止操作がなされた場合には、特殊リプレイの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行う。
【０３７４】
図３に示すように、ＳＰリプレイ、特殊リプレイ及び通常リプレイを構成する図柄は、左リール２Ｌ、中リール２Ｃ、右リール２Ｒの全てにおいて５コマ以内の間隔で配置されているため、停止操作順に応じて、ストップスイッチ８Ｌ〜８Ｒの停止操作タイミングに関わらず、ＳＰリプレイ、特殊リプレイまたは通常リプレイが必ず入賞するようにリール制御が行われる。
【０３７５】
また、リプレイＧＲ３１〜３６が内部抽選の対象となる通常.ＲＴ３において、リプレイＧＲ３１〜３６のいずれかが当選していれば１／６の確率でＳＰリプレイが入賞して後述するナビストックが１つ以上付与される一方で、１／６の確率で通常リプレイが入賞して通常.ＲＴ３が維持され、４／６の確率で特殊リプレイが入賞して通常.ＲＴ２へ移行することとなる。
【０３７６】
図４３及び図４５に示すように、左ベル１〜５が当選し、左押しで停止操作を行った場合には、当選した小役のうち右下がりベルの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行い、中押しまたは右押しで停止操作がなされた場合には、上段ベル２〜８または移行出目のいずれかの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行う。
【０３７７】
図３に示すように、右下がりベルの構成図柄は、全てのリールにおいて５コマ以内の間隔で配置されており、左ベル１〜４が当選した場合に、左押しにて停止操作を行った場合には、停止操作のタイミングに関わらず、必ず右下がりベルを入賞ラインＬＮに揃える制御が行われる一方で、上段ベル１〜８を構成する図柄は、全てのリールにおいて５コマ以上の間隔で配置されている箇所があるため、左ベル１〜４が当選した場合でも、中押しまたは右押しにて停止操作を行った場合には、当選した上段ベル１〜８の構成図柄の引込範囲となる適切なタイミングで停止操作を行わなければ、当選した上段ベルを入賞ラインＬＮに揃えることはできず、その場合には、移行出目が入賞ラインＬＮに揃うように制御される。
【０３７８】
また、中ベル１〜４が当選し、中押しで停止操作を行った場合には、当選した小役のうち中段ベルの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行い、左押しまたは右押しで停止操作がなされた場合には、上段ベル１〜８または移行出目のいずれかの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行う。
【０３７９】
図３に示すように、中段ベルの構成図柄は、全てのリールにおいて５コマ以内の間隔で配置されており、中ベル１〜４が当選した場合に、中押しにて停止操作を行った場合には、停止操作のタイミングに関わらず、必ず中段ベルを入賞ラインＬＮに揃える制御が行われる一方で、上段ベル１〜８を構成する図柄は、全てのリールにおいて５コマ以上の間隔で配置されている箇所があるため、中ベル１〜４が当選した場合でも、左押しまたは右押しにて停止操作を行った場合には、当選した上段ベル１〜８の構成図柄の引込範囲となる適切なタイミングで停止操作を行わなければ、当選した上段ベルを入賞ラインＬＮに揃えることはできず、その場合には、移行出目が入賞ラインＬＮに揃うように制御される。
【０３８０】
右ベル１〜４が当選し、右押しで停止操作を行った場合には、当選した小役のうち中段ベルの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行い、左押しまたは中押しで停止操作がなされた場合には、上段ベル１〜８または移行出目のいずれかの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行う。
【０３８１】
図３に示すように、中段ベルの構成図柄は、全てのリールにおいて５コマ以内の間隔で配置されており、右ベル１〜４が当選した場合に、右押しにて停止操作を行った場合には、停止操作のタイミングに関わらず、必ず中段ベルを入賞ラインＬＮに揃える制御が行われる一方で、上段ベル１〜８を構成する図柄は、全てのリールにおいて５コマ以上の間隔で配置されている箇所があるため、右ベル１〜４が当選した場合でも、左押しまたは中押しにて停止操作を行った場合には、当選した上段ベル１〜８の構成図柄の引込範囲となる適切なタイミングで停止操作を行わなければ、当選した上段ベルを入賞ラインＬＮに揃えることはできず、その場合には、移行出目が入賞ラインＬＮに揃うように制御される。
【０３８２】
このように本実施例では、左ベル、中ベル、右ベル、すなわち押し順ベルのいずれかが当選した場合には、当選役の種類に応じた特定の操作態様で停止操作を行うことで、右下がりベルまたは中段ベルが必ず入賞する一方で、当選役の種類に応じた特定の操作態様以外の操作態様で停止操作を行うことで、１／４で上段ベルが揃うが、３／４で上段ベルが揃わず移行出目が揃うこともある。
【０３８３】
このため、押し順ベルの当選時には、当選役の種類に応じた特定の操作態様で操作されたか否かによって払い出されるメダル数の期待値を変えることができる。すなわち押し順ベルのいずれかが当選しても、その種類が分からなければ意図的に特定の操作態様を選択することはできないことから、１／３の割合で右下がりベルまたは中段ベルを確実に入賞させることにより確実にメダルを獲得できるものの、２／３の割合ではさらに１／４でしか上段ベルを入賞させることができず、確実にメダルを獲得することができない。
【０３８４】
ＲＢベル１（右上がりベル＋右上がりリベベ）が当選し、左押しで停止操作を行った場合には、当選した小役のうち右上がりベルの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行い、中押しまたは右押しで停止操作がなされた場合には、右上がりリベベの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行う。
【０３８５】
ＲＢベル２（右上がりベル＋右上がりリベベ＋右上がりベリリ）が当選し、中押しで停止操作を行った場合には、当選した小役のうち右上がりベルの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行い、左押しで停止操作がなされた場合には右上がりベベリの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行い、右押しで停止操作がなされた場合には、右上がりリベベの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行う。
【０３８６】
ＲＢベル３（中段ベル＋右下がりベル＋上段ベル１＋上段ベル２＋上段ベル３＋上段ベル４＋上段ベル５＋上段ベル６＋上段ベル７＋上段ベル８＋中段スイカ＋右下がりスイカ＋上段スイカ＋下段チェリー＋中段チェリー＋１枚役＋右上がりベル＋右上がりベベリ＋右上がりリベベ）が当選し、右押しで停止操作を行った場合には、当選した小役のうち右上がりベルの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行い、左押しまたは中押しで停止操作がなされた場合には右上がりベベリの組み合わせを入賞ラインＬＮに揃えて停止させる制御を行う。
【０３８７】
図３に示すように、右上がりベル、右上がりリベベ、右上がりベベリの構成図柄は、全てのリールにおいて５コマ以内の間隔で配置されており、ＲＢベル１〜４が当選した場合には、停止操作のタイミングに関わらず、必ず右上がりベル、右上がりリベベ、右上がりベベリのいずれかの組み合わせが入賞ラインＬＮに揃って１０枚のメダルが払い出されることとなるが、１／３の割合でのみ、「ベル−ベル−ベル」の組み合わせが右上がりに揃うこととなる。
【０３８８】
また、特に図示しないが、ベル（中段ベル＋右下がりベル）が当選した場合には、リールの停止順及び操作のタイミングに関わらず、入賞ラインＬＮに「ベル−ベル−ベル」の組み合わせが揃うように制御される。
【０３８９】
また、全役（中段ベル＋右下がりベル＋上段ベル１＋上段ベル２＋上段ベル３＋上段ベル４＋上段ベル５＋上段ベル６＋上段ベル７＋上段ベル８＋中段スイカ＋右下がりスイカ＋上段スイカ＋下段チェリー＋中段チェリー＋１枚役＋右上がりベル＋右上がりリベベ）が当選した場合には、リールの停止順及び操作のタイミングに関わらず、「ベル−ベル−ベル」の組み合わせが右上がりに揃うように制御される。
【０３９０】
本実施例では、図４２に示すように、通常遊技状態、内部中１、内部中２、ＲＢ、ＢＢ（ＲＢ）のいずれかに制御され、さらに通常遊技状態においては、ＲＴ０〜４のいずれかに制御される。
【０３９１】
通常.ＲＴ０は、通常.ＲＴ１において昇格リプレイが入賞したとき（リプレイＧＲ１〜６のいずれかが当選し、昇格リプレイが入賞する順番で停止操作がなされたとき）、通常.ＲＴ１、通常.ＲＴ２が規定ゲーム数の消化により終了したときに移行する。そして、通常.ＲＴ０は、通常.ＲＴ０に移行してからのゲーム数に関わらず、転落リプレイの入賞または移行出目の停止により通常.ＲＴ１に移行するか、特殊リプレイの入賞により通常.ＲＴ２に移行するか、特別役が当選して内部中１または内部中２に移行することで終了する。
【０３９２】
通常.ＲＴ１は、通常.ＲＴ０、通常.ＲＴ２、通常.ＲＴ３、通常.ＲＴ４において移行出目が停止するか、通常.ＲＴ０において転落リプレイが入賞したときに移行する。そして、通常.ＲＴ１は、１ゲーム毎に、ＲＴ残りゲーム数が減算されるようになっており、規定ゲーム数（本実施例では１０００Ｇ）消化してＲＴ残りゲーム数が０となることで通常.ＲＴ０に移行するか、特別役が当選して内部中１または内部中２に移行することで終了する。
【０３９３】
通常.ＲＴ２は、通常.ＲＴ０または通常.ＲＴ３において特殊リプレイが入賞したときに移行する。そして、通常.ＲＴ２は、１ゲーム毎に、ＲＴ残りゲーム数が減算されるようになっており、規定ゲーム数（本実施例では３０Ｇ）消化してＲＴ残りゲーム数が０となることで通常.ＲＴ０に移行するか、ＳＰリプレイが入賞して通常.ＲＴ３に移行するか、移行出目が停止して通常.ＲＴ１に移行するか、特別役が当選して内部中１または内部中２に移行することで終了する。
【０３９４】
通常.ＲＴ３は、通常.ＲＴ２においてＳＰリプレイが入賞したときに移行する。そして、通常.ＲＴ３は、通常.ＲＴ３に移行してからのゲーム数に関わらず、特殊リプレイが入賞して通常.ＲＴ２に移行するか、移行出目が停止して通常.ＲＴ１に移行するか、特別役が当選して内部中１または内部中２に移行することで終了する。
【０３９５】
通常.ＲＴ４は、ＢＢ（ＲＢ）、ＲＢの終了時に移行する。そして、通常.ＲＴ４は、通常.ＲＴ４に移行してからのゲーム数に関わらず、移行出目が停止してＲＴ１に移行するか、特別役が当選して内部中１または内部中２に移行することで終了する。
【０３９６】
内部中１は、通常遊技状態において特別役のうちＢＢ１、ＢＢ３、ＲＢ２が当選したときに移行する。そして、内部中１は、内部中に移行してからのゲーム数に関わらず、内部中１に移行する契機となった特別役が入賞してＢＢ（ＲＢ）またはＲＢに移行することで終了する。
【０３９７】
内部中２は、通常遊技状態において特別役のうちＢＢ２、ＢＢ４、ＲＢ１が当選したときに移行する。そして、内部中２は、内部中に移行してからのゲーム数に関わらず、内部中２に移行する契機となった特別役が入賞してＢＢ（ＲＢ）またはＲＢに移行することで終了する。
【０３９８】
ＲＢは、内部中１、２においてＲＢ１またはＲＢ２が入賞したときに移行する。そして、ＲＢは、１２ゲーム消化するか、６回入賞することで終了する。
【０３９９】
ＢＢ（ＲＢ）は、内部中においてＢＢが入賞したときに移行する。そして、ＢＢ（ＲＢ）は、ＢＢ（ＲＢ）に移行してからのゲーム数に関わらず、ＢＢ（ＲＢ）に払い出されたメダルの総数が規定数を超えることで終了する。
【０４００】
また、本実施例におけるスロットマシンは、遊技状態がＲＴ０〜３であるときに、サブ制御部９１により、内部抽選結果を報知するナビ演出を実行可能な報知期間となるアシストタイム（以下、ＡＴという）に演出状態を制御可能となっている。
【０４０１】
ここで本実施例の遊技状態及びＲＴの移行状況について説明すると、図４２に示すように、ＲＢまたはＢＢ（ＲＢ）が終了すると、通常.ＲＴ４に移行する。
【０４０２】
通常.ＲＴ４では、移行出目が停止することで、ＲＴ１に移行し、特別役が当選することで、当選した特別役の種類に応じて内部中１または内部中２に移行する。
【０４０３】
通常.ＲＴ４において左ベル１〜４、中ベル１〜４、右ベル１〜４のいずれかが当選し、かつ小役を入賞させることができなかった場合に移行出目が停止することとなるため、ＲＢまたはＢＢ（ＲＢ）の終了後に移行した通常.ＲＴ４において左ベル１〜４、中ベル１〜４、右ベル１〜４のいずれかが当選し、かつ小役を入賞させることができなかった場合に、通常.ＲＴ１に移行することとなる。
【０４０４】
通常.ＲＴ１では、特別役も当選せず、昇格リプレイも入賞せずに規定ゲーム数（１０００Ｇ）消化するか、昇格リプレイが入賞することで通常.ＲＴ０に移行し、特別役が当選することで、当選した特別役の種類に応じて内部中１または内部中２に移行する。
【０４０５】
通常.ＲＴ１においてリプレイＧＲ１〜６が当選し、停止順が正解することで昇格リプレイが入賞することとなるため、通常.ＲＴ１では、リプレイＧＲ１〜６が当選し、停止順に正解することで通常.ＲＴ０へ移行することとなる。
【０４０６】
通常.ＲＴ０では、転落リプレイが入賞するか、移行出目が停止することで通常.ＲＴ１に移行し、特殊リプレイが入賞することで通常.ＲＴ２へ移行し、特別役が当選することで、当選した特別役の種類に応じて内部中１または内部中２に移行する。
【０４０７】
通常.ＲＴ０においてリプレイＧＲ１１〜１６が当選し、停止順が正解することで昇格リプレイが入賞し、不正解であると転落リプレイが入賞する。また、通常.ＲＴ０においてリプレイＧＲ２１〜２５が当選し、停止順が正解することで特殊リプレイが入賞し、不正解であると転落リプレイが入賞する。また、通常.ＲＴ０において左ベル１〜４、中ベル１〜４、右ベル１〜４のいずれかが当選し、かつ小役を入賞させることができなかった場合に移行出目が停止する。このため、通常.ＲＴ０では、リプレイＧＲ２１〜２５が当選し、停止順が正解することで通常.ＲＴ２へ移行し、リプレイＧＲ１１〜１６が当選し、停止順が不正解となるか、左ベル１〜４、中ベル１〜４、右ベル１〜４のいずれかが当選し、小役を入賞させることができなかった場合に通常.ＲＴ１へ移行することとなる。
【０４０８】
通常.ＲＴ２では、特別役も当選せず、ＳＰリプレイも入賞せずに規定ゲーム数（３０Ｇ）消化することで通常.ＲＴ０に移行し、ＳＰリプレイが入賞することで通常.ＲＴ３に移行し、特別役が当選することで、当選した特別役の種類に応じて内部中１または内部中２に移行する。
【０４０９】
通常.ＲＴ２においてリプレイＧＲ３１〜３６が当選し、停止順が正解することでＳＰリプレイが入賞する。また、通常.ＲＴ２において左ベル１〜４、中ベル１〜４、右ベル１〜４のいずれかが当選し、かつ小役を入賞させることができなかった場合に移行出目が停止する。このため、通常.ＲＴ２では、リプレイＧＲ３１〜３６が当選し、停止順が正解することで通常.ＲＴ３へ移行し、左ベル１〜４、中ベル１〜４、右ベル１〜４のいずれかが当選し、小役を入賞させることができなかった場合に通常.ＲＴ１へ移行することとなる。
【０４１０】
通常.ＲＴ３では、特殊リプレイが入賞することでＲＴ２に移行し、移行出目が停止することで通常.ＲＴ１に移行し、特別役が当選することで、当選した特別役の種類に応じて内部中１または内部中２に移行する。
【０４１１】
通常.ＲＴ３においてリプレイＧＲ３１〜３６が当選し、停止順が正解することでＳＰリプレイまたは通常リプレイが入賞し、不正解であると特殊リプレイが入賞する。また、通常.ＲＴ３において左ベル１〜４、中ベル１〜４、右ベル１〜４のいずれかが当選し、かつ小役を入賞させることができなかった場合に移行出目が停止する。このため、通常.ＲＴ３では、リプレイＧＲ３１〜３６が当選し、停止順が不正解となることで通常.ＲＴ２へ移行し、左ベル１〜４、中ベル１〜４、右ベル１〜４のいずれかが当選し、小役を入賞させることができなかった場合に通常.ＲＴ１へ移行することとなる。
【０４１２】
内部中１、２では、当該内部中へ移行する契機となった特別役が入賞することでＲＢまたはＢＢ（ＲＢ）に移行する。
【０４１３】
以下、スロットマシン１における具体的な動作例について説明する。
【０４１４】
遊技制御用マイクロコンピュータ１００では、例えばＣＰＵ５０５が図３３のＳｄ２のステップにて乱数回路５０９Ａのハードラッチ乱数値レジスタ５５９Ａから読み出した数値データに基づく内部抽選用の乱数値を示す数値データを用いて、各役への入賞を許容するかどうかを決定する。乱数回路５０９Ａでは、例えば乱数生成回路５５３Ａから出力されたカウント値順列ＲＣＮを、乱数列変更設定回路５５４Ｂの設定により予め定められた乱数更新規則に基づいて乱数列変更回路５５４Ａが変更する。これに続いて最大値比較回路５５５にてユーザプログラム（ソフトウェア）などで設定された乱数最大値と比較された後に、数値データを所定手順により更新した乱数列ＲＳＮが出力される。そして、入力ポートＰＩ０に入力されたスタートスイッチ７からの検出信号ＳＳ１がオン状態となったことに基づき、ハードラッチ乱数値レジスタ５５９Ａに乱数列ＲＳＮを構成する数値データが乱数値として取り込まれて格納される。
【０４１５】
図４６は、乱数回路５０９Ａの動作を説明するためのタイミングチャートである。また、図４６（Ａ）では、遊技制御基板４０に搭載された制御用クロック生成回路１１１により生成される制御用クロックＣＣＬＫを示している。図４６（Ｂ）では、乱数用クロック生成回路１１２により生成される乱数用クロックＲＣＫを示している。なお、図４６に示す各種信号は、ハイレベルでオフ状態となりローレベルでオン状態となる負論理の信号であるものとしている。図４６（Ａ）および（Ｂ）に示すように、制御用クロックＣＣＬＫの発振周波数と、乱数用クロックＲＣＫの発振周波数とは、互いに異なる周波数となっており、また、いずれか一方の発振周波数が他方の発振周波数の整数倍になることがない。
【０４１６】
図４６（Ｂ）に示すように、乱数用クロックＲＣＫは、タイミングＴ１０、Ｔ１１、Ｔ１２、…においてハイレベルからローレベルに立ち下がる。そして、乱数用クロックＲＣＫは、２分周された後に乱数回路５０９Ａの乱数更新クロック選択回路５５１に入力される。このような乱数用クロックＲＣＫの２分周（ＲＣＫ／２）が乱数更新クロック選択回路５５１により選択された場合に、乱数更新クロックＲＧＫは、図４６（Ｃ）に示すように、タイミングＴ１０、Ｔ１２、Ｔ１４、…において、ハイレベルからローレベルへと立ち下がり、乱数用クロックＲＣＫの発振周波数の１／２の発振周波数を有する信号となる。例えば、乱数用クロックＲＣＫの発振周波数が２０ＭＨｚであれば、乱数更新クロックＲＧＫの発振周波数は１０ＭＨｚとなる。そして、乱数用クロックＲＣＫの発信周波数は制御用クロックＣＣＬＫの発振周波数の整数倍にも整数分の１にもならないことから、乱数更新クロックＲＧＫの発振周波数は、制御用クロックＣＣＬＫの発振周波数とは異なる周波数となる。
【０４１７】
乱数生成回路５５３Ａは、例えば乱数更新クロックＲＧＫの立ち下がりエッジに応答して、カウント値順列ＲＣＮにおける数値データを更新する。乱数列変更回路５５４Ａは、乱数列変更設定回路５５４Ｂによる乱数更新規則の設定に基づき、乱数生成回路５５３Ａから出力されたカウント値順列ＲＣＮにおける数値データの更新順を変更したものを、乱数列ＲＤＮとして出力する。乱数列ＲＤＮは、最大値比較回路５５５にて乱数最大値と比較された後に、乱数列ＲＳＮとして出力される。こうして、乱数列ＲＳＮにおける数値データは、例えば図４６（Ｄ）に示すように、乱数更新クロックＲＧＫの立ち下がりエッジなどに応答して更新される。
【０４１８】
乱数用クロック生成回路１１２により生成される乱数用クロックＲＣＫの発振周波数と、制御用クロック生成回路１１１により生成される制御用クロックＣＣＬＫの発振周波数とは、互いに異なっており、また、一方の発振周波数が他方の発振周波数の整数倍となることもない。そのため、乱数回路５０９Ａにて用いられる乱数更新クロックＲＧＮの発振周波数は、乱数用クロックＲＣＫの発振周波数の１／２となる場合でも、制御用クロックＣＣＬＫの発振周波数や、制御用クロックＣＣＬＫの発振周波数の１／２となる内部システムクロックＳＣＬＫの発振周波数とは、異なるものとなる。こうして、制御用クロックＣＣＬＫや内部システムクロックＳＣＬＫと、乱数更新クロックＲＧＫとに同期が生じることを防ぎ、ＣＰＵ５０５の動作タイミングからは、乱数回路５０９Ａにて乱数生成回路５５３Ａや乱数列変更回路５５４Ｂさらには最大値比較回路５５５により生成される乱数列ＲＳＮにおける数値データの更新タイミングを特定することが困難になる。８ビットの乱数回路５０９Ｂについても、同様にして８ビットの乱数列が生成される。これにより、ＣＰＵ５０５の動作タイミングから乱数回路５０９Ａ、５０９Ｂにおける乱数値となる数値データの更新動作を解析した結果に基づく狙い撃ちなどを、確実に防止することができる。
【０４１９】
ハードラッチセレクタ５５８Ａでは、その取込方法が入力ポートＰＩ０への信号入力に指定されていれば、スタートスイッチ７からの検出信号ＳＳ１を取り込んで乱数ラッチ信号ＬＬ１を出力する。例えば図４６（Ｆ）に示すようなタイミングでオフ状態（ハイレベル）とオン状態（ローレベル）とで信号状態が変化するスタートスイッチ７からの検出信号ＳＳ１は、ラッチ用クロックＲＣ１（クロック用フリップフロップから出力されたラッチ用クロックＲＣ０を分岐したもの）が立ち下がるタイミングＴ１１、Ｔ１３、Ｔ１５、…にてハードラッチセレクタ５５８Ａに取り込まれた後、図４６（Ｇ）に示すようなタイミングＴ１１、Ｔ１３で信号状態がオフ状態とオン状態とで変化する乱数ラッチ信号ＬＬ１となって出力される。ここで、スタートスイッチ７からの検出信号ＳＳ１は、スタートスイッチ７の操作が検出されたときに、オフ状態からオン状態へと変化する。ハードラッチセレクタ５５８Ａから出力された乱数ラッチ信号ＬＬ１は、ハードラッチ乱数値レジスタ５５９Ａに供給されて、最大値比較回路５５５から出力された乱数列ＲＳＮにおける数値データを取得するために用いられる。こうして、ハードラッチセレクタ５５８Ａでは、スタートスイッチ７の操作が検出されたことに基づき、乱数値となる数値データを取得するための乱数ラッチ信号ＬＬ１が生成される。
【０４２０】
クロック用フリップフロップにて生成されたラッチ用クロックＲＣ０を用いて、乱数値となる数値データを取得するための乱数ラッチ信号ＬＬ１を生成する。ハードラッチ乱数値レジスタ５５９Ａは、最大値比較回路５５５から出力される乱数列ＲＳＮにおける数値データを、ハードラッチセレクタ５５８Ａからクロック端子へと入力される乱数ラッチ信号ＬＬ１の立ち下がりエッジに応答して取り込み（ラッチして）、記憶データとなる数値データを更新する。
【０４２１】
例えば図４６（Ｇ）に示すように、タイミングＴ１１にて乱数ラッチ信号ＬＬ１がオフ状態からオン状態に変化する立ち下がりエッジが生じた場合には、このタイミングＴ１１にて最大値比較回路５５５から出力されている乱数列ＲＳＮにおける数値データが、図４６（Ｈ）に示すように、ハードラッチ乱数値レジスタ５５９Ａに取り込まれ、乱数値となる数値データとして取得される。これにより、ハードラッチ乱数値レジスタ５５９Ａでは、スタートスイッチ７の操作が検出されたことに基づき、乱数値として用いられる数値データを取得して記憶することができる。
【０４２２】
こうして、ハードラッチ乱数値レジスタ５５９Ａは、ハードラッチセレクタ５５８Ａから出力された乱数ラッチ信号ＬＬ１の立ち下がりエッジに応答して、乱数値ＲＳＮにおける数値データを格納する。
【０４２３】
図２３（Ａ）に示す乱数ハードラッチフラグレジスタＲＨＦでは、ハードラッチ乱数値レジスタ５５９Ａにおける数値データの取込動作や読出動作に応答して、対応するビット値が“０”と“１”とに変化する。図４７は、乱数ラッチフラグレジスタＲＨＦに格納されるハードラッチフラグＲＬＨＦ０の変化を説明するためのタイミングチャートである。
【０４２４】
図４７（Ａ）に示すように、乱数ラッチ信号ＬＬ１が立ち下がるタイミングＴ２０にて、図４７（Ｂ）に示すようにハードラッチ乱数値レジスタ５５９Ａに数値データが取り込まれて格納されたことに対応して、図４７（Ｃ）に示すようにハードラッチフラグＲＬＨＦ０において対応するビット値が“０”から“１”へと変化する。例えば、タイミングＴ２０にて乱数ラッチ信号ＬＬ１がオン状態（ローレベル）となったことに応答してハードラッチ乱数値レジスタ５５９Ａに数値データが格納されたときには、ハードラッチフラグデータＲＬ０１ＨＦ、ＲＬ００ＨＦのビット値がいずれも“０”から“１”へと変化することにより、ハードラッチ乱数値レジスタ５５９Ａに対応する乱数ラッチフラグがオン状態となる。
【０４２５】
こうして乱数ラッチフラグがオン状態となったときには、対応するハードラッチ乱数値レジスタ５５９Ａへの新たな数値データの格納を制限することができる。例えば、図２２（Ａ）および（Ｂ）に示すハードラッチ選択レジスタＲＬ０ＬＳのビット番号［３］におけるビット値が“０”である場合に、ハードラッチフラグデータＲＬ０１ＨＦ、ＲＬ００ＨＦのビット値がいずれも“０”から“１”へと変化したときには、ハードラッチ乱数値レジスタ５５９Ａに対応する乱数ラッチフラグがオン状態となり、ハードラッチ乱数値レジスタ５５９Ａへの新たな数値データの格納が制限される。したがって、対応する乱数ラッチフラグがオン状態であるハードラッチ乱数値レジスタ５５９Ａには、スタートスイッチ７からの検出信号ＳＳ１の入力に対応して数値データを取り込むための乱数ラッチ信号ＬＬ１が入力されたときでも、乱数列ＲＳＮに含まれる新たな数値データの格納を行うことができない。
【０４２６】
これにより、ハードラッチ乱数値レジスタ５５９Ａに数値データが一旦格納された後、その数値データがＣＰＵ５０５などから読み出されるよりも前に、例えばスタートスイッチ７からの検出信号ＳＳ１がノイズ等により誤ってオン状態となったときでも、既に格納されている数値データが更新されてしまい不正確な乱数値の読み出しを防止することができる。また、スタートスイッチ７からの検出信号ＳＳ１を外部から意図的にオン状態とすること、あるいは、乱数ラッチ信号ＬＬ１を外部から意図的にオン状態とすることなどにより、既に格納されている数値データを改変するといった不正行為を防止することもできる。その一方で、ハードラッチ乱数値レジスタ５５９Ａに一旦格納された数値データが長時間にわたりＣＰＵ５０５などから読み出されなくなると、その後にスタートスイッチ７からの検出信号ＳＳ１が正常にオン状態となったときに、スタートスイッチ７の操作に対応した正確な数値データをハードラッチ乱数値レジスタ５５９Ａに格納することができなくなる。
【０４２７】
そこで、例えば遊技制御用マイクロコンピュータ１００のＣＰＵ５０５は、予め定められた乱数値読出条件が成立したときに、図４７（Ｄ）に示すような所定の乱数値レジスタ読出処理を実行する。そして、ハードラッチ乱数値レジスタ５５９Ａの読み出しを行って乱数ラッチフラグをオフ状態とすることにより、新たな数値データの格納が許可された状態に設定する。乱数値読出条件としては、ＣＰＵ５０５がスロットマシン１における遊技制御の実行を開始することであればよい。図４７に示す動作例では、タイミングＴ２５にて図４７（Ｄ）に示す乱数値レジスタ読出処理が完了したことに対応して、図４７（Ｃ）に示すようにハードラッチフラグＲＬＨＦ０がオフ状態に設定される。
【０４２８】
一例として、ＣＰＵ５０５は、スロットマシン１における電源供給の開始に基づいて遊技制御用マイクロコンピュータ１００のシステムリセットが解除されたときに、所定のセキュリティチェック処理などを実行してから、ＲＯＭ５０６からユーザプログラム（ゲーム制御用の遊技制御処理プログラム）を示す制御コードの読み出しなどを行い遊技制御の実行を開始する。このとき、ＣＰＵ５０５は、乱数値レジスタ読出処理を実行することにより、ハードラッチ乱数値レジスタ５５９Ａに格納された数値データを読み出して、対応する乱数ラッチフラグをオフ状態としてもよい。なお、ＣＰＵ５０５は、ハードラッチフラグデータＲＬ００ＨＦ〜ＲＬ０１ＨＦのビット値をチェックした結果などに基づいて、乱数ラッチフラグがオン状態となっている乱数値レジスタの読出しのみを行うようにしてもよい。あるいは、乱数ラッチフラグがオン状態であるか否かにかかわらず、ハードラッチ乱数値レジスタ５５９Ａから数値データを読み出すことにより、各乱数ラッチフラグをオフ状態としてもよい。
【０４２９】
スロットマシン１の電源投入時などには、例えば図６（Ｂ）および（Ｃ）に示す電源電圧ＶＳＬおよび電源電圧ＶＣＣのように、各種の電源電圧が徐々に規定値まで上昇していく。こうした電源電圧の上昇中には、例えば遊技制御用マイクロコンピュータ１００の内蔵回路といった、各種回路の一部分が正常に動作する一方で、他の部分は未だ正常には動作できない状態となることがある。一例として、電源電圧が不安定な状態では、スタートスイッチ７からの検出信号ＳＳ１が誤ってオン状態となることなどにより、乱数回路５０９Ａにおいてハードラッチ乱数値レジスタ５５９Ａに数値データが取り込まれて格納され、対応する乱数ラッチフラグがオン状態になって新たな数値データの格納が制限されてしまう可能性がある。また、ＣＰＵ５０５などによる遊技制御の実行が開始された後、図３５のＳｋ２１のスイッチ入力判定処理が実行されるより前に、所定タイミングで乱数ラッチ信号ＬＬ１をハードラッチ乱数値レジスタ５５９Ａに入力することで、特別役への入賞を許容する内部抽選用の乱数値を示す数値データを取得してレギュラーボーナスやビッグボーナスに移行させる不正行為がなされる可能性がある。このように、乱数ラッチフラグがオン状態になると新たな数値データの格納が制限されるようにした場合には、スタートスイッチ７の操作後にノイズ等により誤った数値データがハードラッチ乱数値レジスタ５５９Ａに取り込まれて格納されることを防止できる一方で、始動入賞の発生前に電源電圧の不安定による誤動作や不正行為などにより数値データがハードラッチ乱数値レジスタ５５９Ａに取り込まれて格納された場合、その後にスタートスイッチ７が操作されても、このスタートスイッチ７の操作タイミングよりも前に既に格納されている数値データが乱数値として取得されて各役への入賞を許容するかどうかの決定などに用いられる可能性がある。
【０４３０】
そこで、遊技制御用マイクロコンピュータ１００におけるシステムリセットが解除されて遊技制御が開始されるときには、乱数ラッチフラグをオフ状態に設定して、新たな数値データの格納が許可された状態としてもよい。これにより、例えばスロットマシン１における電源投入時などの電源電圧が不安定な状態で誤ってハードラッチ乱数値レジスタ５５９Ａに格納された数値データが乱数値として取得されてしまい、遊技制御における各種の決定などに使用されてしまうことを防止できる。また、遊技制御の実行が開始された後、スタートスイッチ７の状態がチェックされるより前に乱数ラッチ信号を入力してレギュラーボーナスやビッグボーナスに移行させる不正行為を防止することができる。
【０４３１】
他の一例として、例えば電源電圧ＶＳＬといった、スロットマシン１における所定電源電圧が低下したことに基づいて、電源基板１０１に搭載された電源監視回路３０３からオン状態の電源断信号が出力される。ＣＰＵ５０５は、図３４に示すＳｋ３の処理にて電断フラグが設定されていると判定したときに、ステップＳ５２のメイン側電源断処理を実行して電源電圧の低下によるスロットマシン１の動作不安定あるいは動作停止に備える。こうした電力供給停止時処理となるメイン側電源断処理の実行に伴い、Ｓｍ２３の処理にてウォッチドッグタイマ５２０を起動させてタイムアウトの発生によるリセット動作を有効化してから、無限ループ処理を繰返し実行する待機状態に移行する。ここで、Ｓｋ３の処理により電断フラグが設定されていると判定された後、ウォッチドッグタイマ５２０のタイムアウトが発生するより前に、乱数値レジスタ読出処理を実行することにより、ハードラッチ乱数値レジスタ５５９Ａに格納された数値データを読み出して、対応する乱数ラッチフラグをオフ状態としてもよい。このように、ユーザプログラムの実行を開始した後に電源断信号がオン状態であると判定されたことを、乱数値読出条件の１つとしてもよい。
【０４３２】
図４８は、遊技制御の実行中に電源電圧ＶＳＬが低下した場合の動作例を示すタイミングチャートである。始めに、例えばスロットマシン１への電源供給が開始されたことなどに基づき、図４８（Ａ）に示す電源電圧ＶＳＬが所定値ＶＳＬ１（一例として＋２２Ｖ）に達するタイミングＴ３１よりも前のタイミングＴ３０にて、図４８（Ｂ）に示す電源電圧ＶＣＣが所定値ＶＣＣ１（一例として＋４．５Ｖ）に達する。このタイミングＴ３０では、図４８（Ｅ）に示すリセット信号がオン状態からオフ状態となる。続いて、タイミングＴ３１にて電源電圧ＶＳＬが所定値ＶＳＬ１に達したときに、図４８（Ｃ）に示す電源断信号がオン状態からオフ状態となる。その後、タイミングＴ３２にて、図４８（Ａ）に示す電源電圧ＶＳＬが所定値ＶＳＬ１より低下したとする。このとき、図４８（Ｃ）に示す電断フラグが設定されていると判定されたことなどに基づいて（図３４のＳｋ３；Ｙ）、図３６に示す電断処理（メイン）が実行されたことに伴い、Ｓｍ２３の処理によりウォッチドッグタイマ５２０を起動させる。こうして、タイムアウトの発生によるリセット動作が有効化される。
【０４３３】
図３６に示すＳｍ２３の処理が実行された後には、無限ループ処理が繰返し実行される。そのため、例えばタイミングＴ３３にて、図４８（Ａ）に示す電源電圧ＶＳＬが所定値ＶＳＬ１に復帰したときでも遊技制御処理（遊技制御用タイマ割込処理など）は実行されず、タイムアウトの発生まで待機状態となる。その後、ウォッチドッグタイマ５２０による監視時間となるタイムアウト時間として設定可能な最長時間２２５×ＴＳＣＬＫ×１５が経過したことによりタイムアウトが発生したときに、ウォッチドッグタイマ５２０がタイムアウト信号を出力する。これにより、タイムアウトの発生によるリセット動作が行われる。このときには、例えば所定のベクタテーブルにおける指定内容などに基づいて、ＲＯＭ５０６に記憶されているユーザプログラム（ゲーム制御用の遊技制御処理プログラム）を示す制御コードの先頭から遊技制御の実行を開始することで、図３３に示すような遊技制御処理が最初から実行される。これにより、スロットマシン１に供給される電源電圧が短期間にて低下（瞬停）したときに、タイムアウトの発生によるリセット動作を行うことで、電力供給の瞬停から適切に復旧させることができる。また、図３６に示すＳｍ２３の処理が実行されるまでや、図３６に示すＳｍ２３の処理が実行されないときには、ウォッチドッグタイマ５２０を停止させているので、ウォッチドッグタイマ５２０により計測されるカウント値を定期的にクリア（初期化）してリスタートさせる必要がなく、遊技の進行を制御するための制御負担を軽減することができる。
【０４３４】
図４９は、スロットマシン１の電源投入時に電源電圧の安定が確認できない場合の動作例を示すタイミングチャートである。図４９に示す動作例でも、図４８に示す動作例と同様に、タイミングＴ３０にて図４９（Ｂ）に示す電源電圧ＶＣＣが所定値ＶＣＣ１に達する。これにより、図４９（Ｅ）に示すリセット信号がオン状態からオフ状態となる。一方、図４９に示す動作例では、タイミングＴ３１にて電源電圧ＶＳＬが所定値ＶＳＬ１に達しないことから、図４９（Ｃ）に示す電源断信号がオン状態（ローレベル）であると判定される（図３０のＳａ３５；Ｙ）。この判定結果に伴い、Ｓａ３６の処理によりウォッチドッグタイマ５２０を起動させる。こうして、タイムアウトの発生によるリセット動作が有効化される。
【０４３５】
図３０に示すＳａ３６の処理が実行された後には、無限ループ処理が繰返し実行される。そのため、例えばタイミングＴ３５にて、図４９（Ａ）に示す電源電圧ＶＳＬが所定値ＶＳＬ１に達したときでも遊技制御処理（遊技制御用タイマ割込処理など）は実行されず、タイムアウトの発生まで待機状態となる。その後、ウォッチドッグタイマ５２０による監視時間となるタイムアウト時間として設定可能な最長時間２２５×ＴＳＣＬＫ×１５が経過したことによりタイムアウトが発生したときに、ウォッチドッグタイマ５２０がタイムアウト信号を出力する。これにより、タイムアウトの発生によるリセット動作が行われる。このときには、例えば所定のベクタテーブルにおける指定内容などに基づいて、ＲＯＭ５０６に記憶されているユーザプログラム（ゲーム制御用の遊技制御処理プログラム）を示す制御コードの先頭から遊技制御の実行を開始することで、図３３に示すような遊技制御処理が最初から実行される。これにより、スロットマシン１の電源投入時に供給される電源電圧が短期間にて低下（瞬停）するなど不安定な場合に、タイムアウトの発生によるリセット動作を行うことで、電力供給の瞬停から適切に復旧させることができる。また、図３０に示すＳａ３６の処理が実行されるまでや、Ｓａ３６の処理が実行されないときには、ウォッチドッグタイマ５２０を停止させているので、ウォッチドッグタイマ５２０により計測されるカウント値を定期的にクリア（初期化）してリスタートさせる必要がなく、遊技の進行を制御するための制御負担を軽減することができる。
【０４３６】
図３０に示すステップＳａ３５、Ｓａ３６の処理は、Ｓａ４の処理によりＲＡＭ５０７へのアクセスが許可されるより先に実行される。これにより、スロットマシン１の電源投入時に供給される電源電圧が短期間にて低下（瞬停）するなど不安定な場合に、ＲＡＭ５０７に設けられたバックアップ用の記憶領域などにおける記憶内容の誤った変更（破損）を防止しつつ、タイムアウトの発生によるリセット動作を有効化して、電力供給の瞬停から適切に復旧させることができる。
【０４３７】
ウォッチドッグタイマ５２０における監視時間となるタイムアウト時間は、予め定められた複数種類のうちで設定可能な最長時間となるように、図１０（Ｂ）に示すリセット設定ＫＲＥＳのビット番号［５−４］やビット番号［３−０］におけるビット値を予め設定しておく。こうして、ウォッチドッグタイマ５２０におけるタイムアウト時間は、電力供給の停止により電源断信号がオン状態になってから、例えば電源電圧ＶＳＬが電源電圧ＶＣＣを生成可能な電圧値よりも低下する時間以上に設定されればよい。ウォッチドッグタイマ５２０は電源電圧ＶＣＣを駆動電圧として動作するので、タイムアウト時間は、電源スイッチの切断等による電力供給の停止時におけるウォッチドッグタイマ５２０の動作可能時間よりも長い時間に設定される。したがって、スロットマシン１の電源スイッチが切断されたことなどによる電力供給停止時には、そのまま電源電圧が低下して供給停止に至るのであれば、タイムアウトが発生してリセット動作が行われるより前に、ウォッチドッグタイマ５２０および他の回路部品は動作しなくなる。したがって、電源スイッチの切断等による正しく電力供給が停止されるときに、誤ってリセット動作が行われることを防止して、電力供給の瞬停から適切に復旧させることができる。
【０４３８】
遊技制御基板４０では、電源基板１０１からの初期電力供給時（バックアップ電源のない電源投入時）や、システムリセットの発生後における再起動時などに、ＣＰＵ５０５がＲＯＭ５０６などに記憶されているセキュリティチェックプログラム５０６Ａを読み出して実行することにより、遊技制御用マイクロコンピュータ１００がセキュリティモードとなる。このときには、セキュリティチェックプログラム５０６Ａに対応した処理として、例えば図２９に示すようなセキュリティチェック処理が実行される。ここで、遊技制御用マイクロコンピュータ１００がセキュリティモードとなるセキュリティ時間は、ＲＯＭ５０６のプログラム管理エリアに記憶されているセキュリティ時間設定ＫＳＥＳに予め格納された設定データに応じて、一定の固定時間とは異なる時間成分を含むことができる。
【０４３９】
例えば、セキュリティ時間設定ＫＳＥＳのビット番号［５−０］におけるビット値に応じて、図１０（Ｂ）に示すような設定により、固定時間に加えて予め選択可能な複数の固定延長時間のいずれかを、セキュリティ時間に含まれる時間成分として設定することができる（図２９のステップＳ２）。また、セキュリティ時間設定ＫＳＥＳのビット番号［７−６］におけるビット値が“００”以外の値であれば（ステップＳ４；Ｎｏ）、図１０（Ｂ）に示すようなショートモード、ミドルモード、ロングモードのいずれかに対応して、システムリセットや電源投入に基づき初期設定処理が実行されるごとに所定の時間範囲で変化する可変延長時間を、セキュリティ時間に含まれる時間成分として設定することができる（ステップＳ５）。
【０４４０】
こうして設定されたセキュリティ時間が経過するまでは（ステップＳ１１；Ｎｏ）、ＲＯＭ５０６に記憶されているユーザプログラムによる遊技制御メイン処理の実行が開始されない。そして、乱数回路５０９Ａ、５０９Ｂによる乱数値となる数値データの生成動作も、遊技制御用マイクロコンピュータ１００がセキュリティモード中である期間では、開始されないようにすればよい。これにより、スロットマシン１の電源投入やシステムリセット等による動作開始タイミングから、乱数回路５０９Ａ、５０９Ｂの動作開始タイミングや更新される数値データなどを特定することが困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に大当り遊技状態を発生させるなどの行為を、確実に防止することができる。
【０４４１】
一例として、スロットマシン１の機種毎に、セキュリティ時間設定ＫＳＥＳのビット番号［５−０］におけるビット値を異なる値に設定する。この場合には、図２５に示すステップＳ２にて設定される固定延長時間を、スロットマシン１の機種毎に異ならせることができ、スロットマシン１の動作開始タイミングから乱数回路５０９Ａ、５０９Ｂの動作開始タイミングを特定することが困難になる。また、セキュリティ時間設定ＫＳＥＳのビット番号［７−６］におけるビット値を“０１”、“１０”、“１１”のいずれかに設定することにより、ステップＳ５にて設定される可変延長時間を、システムリセット毎に異ならせる。これにより、スロットマシン１の動作開始タイミングから乱数回路５０９Ａ、５０９Ｂの動作開始タイミングを特定することは著しく困難になる。
【０４４２】
例えばスタートスイッチ７からの検出信号ＳＳ１がオン状態になることといった所定信号の入力に基づいて、乱数回路５０９Ａで乱数生成回路５５３Ａや乱数列変更回路５５４Ａなどにより予め定められた手順で更新される乱数列ＲＳＮに含まれる数値データがハードラッチ乱数値レジスタ５５９Ａに格納されたときに、乱数ハードラッチフラグレジスタＲＨＦに格納されるハードラッチフラグデータＲＬ００ＨＦ〜ＲＬ０２ＨＦのビット値を“０”から“１”へと変化させる。そして、対応するハードラッチ選択レジスタＲＬ０ＬＳのビット番号［３］におけるビット値が“０”である場合には、数値データを格納したハードラッチ乱数値レジスタ５５９Ａに対応する乱数ラッチフラグがオン状態になることで、新たな数値データの格納が制限される。その一方で、例えばＣＰＵ５０５が図３５に示すＳｋ２１の処理を実行したときといった、乱数値の読出タイミングにてハードラッチ乱数値レジスタ５５９Ａから乱数値となる数値データが読み出されたときに、その数値データが読み出されたハードラッチ乱数値レジスタ５５９Ａに対応する乱数ラッチフラグがオフ状態になり新たな数値データの格納が許可される。これにより、所定信号の入力に基づいてハードラッチ乱数値レジスタ５５９Ａに格納された数値データは、ＣＰＵ５０５などによって読み出されるまでにノイズ等により改変されてしまうことがなく、正確な乱数値となる数値データを取得することができる。
【０４４３】
そして、遊技制御用マイクロコンピュータ１００のＣＰＵ５０５などにより遊技制御の実行が開始されるときには、ハードラッチ乱数値レジスタ５５９Ａから数値データを読み出すことで、各乱数ラッチフラグをオフ状態に設定することができる。これにより、スロットマシン１などのスロットマシンにおける電力供給が停止された後に電力供給が再開されたときや電源投入時などの電源電圧が不安定な状態で誤ってハードラッチ乱数値レジスタ５５９Ａに格納された数値データが、乱数値として取得されてしまうことを防止できる。
【０４４４】
図９（Ａ）や図１２に示すセキュリティ時間設定ＫＳＥＳのビット番号［７−６］におけるビット値を“００”以外の値としたときには、システムリセットや電源投入に基づき初期設定処理が実行されるごとに所定の時間範囲で変化する可変延長時間を、セキュリティ時間に含まれる時間成分として設定する。また、図９（Ａ）や図１２に示すセキュリティ時間設定ＫＳＥＳのビット番号［５−０］におけるビット値に応じて、固定時間に加えて予め選択可能な複数の固定延長時間のいずれかを、セキュリティ時間に含まれる時間成分として設定する。これにより、スロットマシン１の電源投入やシステムリセット等による動作開始タイミングから、乱数回路５０９Ａ、５０９Ｂの動作開始タイミングや更新される数値データなどを特定することが困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に大当り遊技状態を発生させるなどの行為を、確実に防止することができる。
【０４４５】
例えば１６ビットの乱数回路５０９Ａでは、乱数生成回路５５３Ａから出力されたカウント値順列ＲＣＮを乱数列変更回路５５４Ａが予め定められた乱数変更規則に基づいて変更することで、数値データを所定手順により所定の更新初期値から所定の更新最終値まで循環的に更新する。そして、図９（Ａ）や図１１（Ｃ）に示す１６ビット乱数初期設定第３ＫＲＬ３のビット番号［６］などにおけるビット値を“１”としたときには、乱数回路５０９Ａにて生成される乱数値となる数値データのスタート値を、システムリセット毎に変更する。８ビットの乱数回路５０９Ｂについても、同様にして乱数値のスタート値を変更できればよい。これにより、たとえ乱数回路５０９Ａ、５０９Ｂの動作開始タイミングを特定することができたとしても、乱数回路５０９Ａ、５０９Ｂが備えるハードラッチ乱数値レジスタから読み出される数値データを特定することは困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」の接続による不正信号の入力などを、確実に防止することができる。
【０４４６】
より具体的には、フリーランカウンタ５０９Ｃなどにより、遊技制御用マイクロコンピュータ１００のＣＰＵ５０５における動作とは別個に初期値決定用データとなるカウント値が更新される。そして、乱数回路５０９Ａ、５０９Ｂのスタート値設定回路５５３Ｃによる設定などに基づき、フリーランカウンタ５０９Ｃのカウント値などを用いて乱数値となる数値データのスタート値が決定される。これにより、遊技制御用マイクロコンピュータ１００のＣＰＵ５０５における動作態様から乱数値となる数値データを特定することが困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」の接続による不正信号の入力などを、確実に防止することができる。
【０４４７】
遊技制御用マイクロコンピュータ１００が備える外部バスインタフェース５０１では、内部リソースアクセス制御回路５０１Ａにより、例えばＲＯＭ５０６の記憶データといった、遊技制御用マイクロコンピュータ１００の内部データにつき、ＣＰＵ５０５等の内部回路以外による外部読出が制限される。これにより、例えばＲＯＭ５０６に記憶されているゲーム制御用のユーザプログラムといった、遊技制御処理プログラムが遊技制御用マイクロコンピュータ１００の外部から読み出されて解析などに提供されることを防止できる。そして、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」の接続による不正信号の入力などを、確実に防止することができる。
【０４４８】
遊技制御用マイクロコンピュータ１００に内蔵または外付けされた乱数回路５０９Ａ、５０９Ｂに周波数監視回路を設け、乱数用クロック生成回路１１２から供給された乱数用クロックＲＣＫの入力状態を内部システムクロックＳＣＬＫと比較して、乱数用クロックＲＣＫにおける周波数異常が検知されたときに、内部情報レジスタＣＩＦの所定ビット番号におけるビット値を“１”に設定してもよい。そして、ＣＰＵ５０５では、例えば遊技制御メイン処理にて内部情報レジスタＣＩＦの所定ビット番号におけるビット値が“１”であると連続して判定された回数が、所定のクロック異常判定値に達したと判定されたときに、乱数回路５０９Ａ、５０９Ｂの動作状態に異常が発生したと判定してもよい。これにより、乱数用クロックＲＣＫとして不正信号を入力することによる不正行為を確実に防止することができる。
【０４４９】
遊技制御用マイクロコンピュータ１００のＣＰＵ５０５は、スロットマシン１における電源供給の開始などに基づいて遊技制御用マイクロコンピュータ１００のシステムリセットが解除されたときに、所定の乱数値レジスタ読出処理を実行することにより、ハードラッチ乱数値レジスタ５５９Ａに格納された数値データを読み出して、対応する乱数ラッチフラグをオフ状態としてもよい。これにより、例えば電源投入時などの電源電圧が不安定な状態で誤ってハードラッチ乱数値レジスタ５５９Ａに格納された数値データを乱数値として取得してしまうことを防止できる。
【０４５０】
また、図３４に示すＳｋ３にて電断フラグが設定されていると判定されたことなどに対応して、例えば電源電圧ＶＳＬといった所定電源電圧の低下が検出された後、遊技制御用マイクロコンピュータ１００が動作停止状態となるまでは、図３７（Ａ）に示すＳａ３５およびＳａ３５Ｂの処理を実行することにより、電源断信号の入力状態を繰り返し判定してもよい。そして、Ｓａ３５にて電源断信号がオフ状態となり入力されていない旨の判定がなされたときに、ＲＯＭ５０６に記憶された制御コードの先頭から遊技制御が開始されるより前に、所定の乱数値レジスタ読出処理を実行して、オン状態となっている乱数ラッチフラグをオフ状態にしてもよい。これにより、例えば電源電圧ＶＳＬといった所定電源電圧の低下時などの電源電圧が不安定な状態で誤ってハードラッチ乱数値レジスタ５５９Ａに格納された数値データを乱数値として取得してしまうことを防止できる。
【０４５１】
次に、図５０〜図５２を用いて、図３６における電断処理（メイン）のＳｍ２，Ｓｍ７，Ｓｍ１２，Ｓｍ１７において実行するデータ変換について具体的に説明する。
【０４５２】
図５０は、ワークＲＡＭとバックアップＲＡＭとの間で（Ａ）同一のバス幅（Ｂ）異なるバス幅でデータの転送を行った場合におけるバックアップＲＡＭ内のデータの内容を示す説明図である。本実施形態においては、ワークＲＡＭにデータを展開して処理を行い、ワークＲＡＭに展開されたデータをバックアップデータとしてバックアップＲＡＭに格納している。尚、「（ｈ）」は１６進数であることを示す。
【０４５３】
ワークＲＡＭには、各アドレスに８ビット（１バイト）のデータが１６個格納されている。例えば、アドレス「００００ｈ」〜「０００Ｆｈ」には、データ「００」「０１」...「０Ｆ」のデータがそれぞれに格納され、アドレス「００１０ｈ」〜「００１Ｆｈ」には、データ「１０」「１１」...「１Ｆ」のデータが格納されている。
【０４５４】
図５０（Ａ）に示すように、外部メモリなどの外部デバイスに対して８ビットでのバスアクセス可能なマイクロプロセッサを用い、外部メモリであるバックアップＲＡＭにバス幅８ビット（１バイト）でアクセス可能である場合には、すなわちアクセス可能なバス幅が一致している場合には、ワークＲＡＭからバックアップＲＡＭにバックアップデータを転送すると、８ビットのバックアップデータがそのまま格納されるので、バックアップデータの欠落が起こらない。具体的には、例えば、ワークＲＡＭにおけるアドレス「００００ｈ」に格納されているデータを８ビット単位で読み出し、８ビットのバックアップデータ「００」をバックアップＲＡＭに転送すると、転送されたバックアップデータ「００」がバックアップＲＡＭの「００００ｈ」に格納されることになる。同様に、ワークＲＡＭにおけるアドレス「０００１ｈ」に格納されている８ビットのバックアップデータ「０１」をバックアップＲＡＭに転送すると、転送されたバックアップデータ「０１」がバックアップＲＡＭに格納されることになる。他のアドレスに格納されたバックアップデータについても同様に対応する各アドレスに格納される。
【０４５５】
これに対し、図５０（Ｂ）に示すように、この実施例で示したように外部メモリなどの外部デバイスに対して３２ビットまたは１６ビットでのバスアクセスのみ可能なマイクロプロセッサを用い、外部メモリであるバックアップＲＡＭにバス幅８ビット（１バイト）でアクセス可能である場合には、すなわちアクセス可能なバス幅が一致していない場合には、ワークＲＡＭから１６ビット単位でデータを読み出してバックアップＲＡＭにデータを転送すると、ワークＲＡＭから転送した上位８ビットのデータが欠落してしまい、１６ビットのデータ全てを転送することができない。具体的には、例えば、ワークＲＡＭにおけるアドレス「００００ｈ」及び「０００１ｈ」に格納されている１６ビットのバックアップデータ「０００１」をバックアップＲＡＭに転送すると、上位８ビットのデータ「０１」が欠落して下位８ビットのデータ「００」のみがバックアップＲＡＭの「００００ｈ」に格納されることになる。同様に、ワークＲＡＭにおけるアドレス「０００２ｈ」及び「０００３ｈ」に格納されている１６ビットのバックアップデータ「０２０３」をバックアップＲＡＭに転送すると、上位８ビットのデータ「０３」が欠落して下位８ビットのデータ「０２」のみがバックアップＲＡＭの「０００２ｈ」に格納されることになる。すなわち、１６ビットのバックアップデータの上位８ビットが欠落して、バックアップＲＡＭの偶数アドレスにのみバックアップデータが格納される。
【０４５６】
よって、ワークＲＡＭとバックアップＲＡＭのデータバスのバス幅が一致していない場合にもデータの欠落が起こることのないように、本発明では、図３６における電断処理（メイン）のＳｍ２，Ｓｍ７，Ｓｍ１２，Ｓｍ１７においてデータ変換を行っている。
【０４５７】
まず、図５１（Ａ）を用いて、マイクロプロセッサ側がアクセスしようとするバス幅とバックアップＲＡＭ側でアクセス可能なバス幅が一致しておらず、上位１バイトのデータが欠落する場合について説明する。例えば、図３６の電断処理（メイン）のＳｍ３，Ｓｍ８，Ｓｍ１３，Ｓｍ１８でワークＲＡＭからバックアップＲＡＭにデータを格納する場合において、１６ビットのバックアップデータである「１２３４」をバックアップＲＡＭに転送したとする。この場合には、図５０で説明したように上位８ビットのデータ「３４」が欠落して格納される。このため、図３２のＳａ２４において復帰処理を行うときに、バックアップＲＡＭからバックアップデータを読み出すと上位８ビットのデータ「３４」が欠落し、下位１バイトのデータ「１２」のみがワークＲＡＭに格納される。しかしながら、これでは、電断前の状態に復帰させることができない。
【０４５８】
よって、図５１（Ｂ）に示すように、本実施形態では、ワークＲＡＭからバックアップＲＡＭにデータを転送するときに、図３６における電断処理（メイン）のＳｍ２，Ｓｍ７，Ｓｍ１２，Ｓｍ１７においてデータ変換を行っている。
【０４５９】
具体的には、例えば、１６ビットデータである「１２３４（Ｈ）」を２つのデータに変換している。１つ目のデータについては、ワークＲＡＭから読み出したデータ「１２３４（Ｈ）」をそのままマスク値「００ＦＦ（Ｈ）」でマスキングを行い、「００３４（Ｈ）」に変換する。また、２つ目のデータについては、ワークＲＡＭから読み出したデータについて８ビット分シフト処理を施した上でマスク値「００ＦＦ（Ｈ）」でマスキングを行い、「００１２（Ｈ）」に変換する。これにより、ワークＲＡＭから１６ビットのバックアップデータ「１２３４（Ｈ）」を読み出してデータ変換を行うと、「００１２（Ｈ）」と「００３４（Ｈ）」とからなる２つの１６ビットのデータで構成された合計３２ビット（４バイト）のバックアップデータが作成される。そして、２つの１６ビットのバックアップデータのそれぞれを順次にバックアップＲＡＭに書き込むと、前述したように、上位８ビットのデータ「００」は欠落するので、一方のバックアップデータ「００１２」のうち下位の８ビットのデータである「１２」がバックアップＲＡＭに格納される。同じく、他方のバックアップデータ「００３４」のうち下位の１バイトのデータである「３４」がバックアップＲＡＭに格納される。これにより、１６ビットのバックアップデータ「１２３４」を、８ビットのバス幅のデータバスを用いて転送しても、データを欠落させることなくバックアップＲＡＭに格納することができる。
【０４６０】
また、図３２のＳａ２４において復帰処理を行うときには逆のデータ変換処理を行う。具体的には、バックアップＲＡＭからは８ビット単位のデータしか読み込めないのであるから、データ「１２（Ｈ）」とデータ「３４（Ｈ）」とを順次読み出し、それらを合成してデータ「１２３４（Ｈ）」を復元して、その復元したデータをワークＲＡＭに格納される。
【０４６１】
次に、図５２を用いて、図３６における電断処理（メイン）のＳｍ２，Ｓｍ７，Ｓｍ１２，Ｓｍ１７におけるデータ変換を実行してワークＲＡＭからバックアップＲＡＭにデータを格納したときのバックアップＲＡＭでのデータの格納状態を説明する。
【０４６２】
先に説明したように、例えば、ワークＲＡＭにおけるアドレス「００００ｈ」及び「０００１ｈ」に格納されている１６ビットのバックアップデータ「０００１」をデータ変換して、合計３２ビットのバックアップデータである「００００」と「０００１」とを作成する。そして、これをバックアップＲＡＭに転送すると、変換時に付加した上位８ビットのデータ「００」が欠落して下位８ビットのデータ「００」及び「０１」のみがバックアップＲＡＭに格納されることになる。上位８ビットのデータ（データ変換時に付加したデータ「００」）が欠落すると、奇数アドレス「＋０００１ｈ」及び「＋０００３ｈ」にはデータが格納されないため、転送した１６ビットのデータ「００００」のうち下位８ビットのデータ「００」が偶数アドレス「＋００００ｈ」に格納され、続いて転送した１６ビットのデータ「０００１」のうち下位８ビットのデータ「０１」が偶数アドレス「＋０００２ｈ」に格納される。このように、他のデータについてもデータ変換を行ってデータを転送すると、同様にバックアップＲＡＭの偶数アドレスにデータが格納されていく。
【０４６３】
本実施例において遊技制御用マイクロコンピュータ１００は、外部メモリとしてＳＲＡＭ５０が接続されており、このＳＲＡＭ５０がバックアップＲＡＭとして用いられている。このように遊技制御用マイクロコンピュータ１００の内蔵メモリではなく、外部メモリをバックアップＲＡＭとして用いた構成の場合には、停電時のように供給電圧の不安定な状態においてはＣＰＵ側でＲＡＭへのアクセスを禁止しても、ＲＡＭを指定するチップセレクト信号やＲＡＭへの書込のタイミングを示すＷＲ信号が出力されてしまう現象が起こることがあり、これらの信号が偶然一致した場合に、外部メモリのデータが書き換わってしまうという不具合が生じることがあった。
【０４６４】
これに対して本実施例では、電断時において遊技制御用マイクロコンピュータ１００のＣＰＵ５０５が停止する電圧（ＣＰＵ５０５に対するリセット信号が出力される電圧）が、遊技制御用マイクロコンピュータ１００からの信号の入出力制御が行われるＩ／Ｏポート４１ｄが停止する電圧（Ｉ／Ｏポートに対するリセット信号が出力される電圧）よりも低く設定されており、遊技制御用マイクロコンピュータ１００のＣＰＵ５０５よりも先にＩ／Ｏポート４１ｄが先に動作を停止するハードウェア構成として、ＣＰＵ５０５の動作停止後に、Ｉ／Ｏポート４１ｄが動作しないようにすることで、ＳＲＡＭを指定するチップセレクト信号やＳＲＡＭへの書込のタイミングを示すＷＲ信号が出力されてしまう現象が起こることを防止し、外部メモリのデータが書き換わってしまうことを防止するようになっている。
【０４６５】
また、ＣＰＵ５０５の駆動電圧は、ＳＲＡＭ５０以外にも、同一基板上に実装されたその他のデバイス（ＬＥＤの駆動回路や液晶の駆動回路など）にも用いられることから、他のデバイスの電力の使用状況如何によって電断時に電圧が低下する速度が安定しないことがあり、上記のように遊技制御用マイクロコンピュータ１００のＣＰＵ５０５よりも先にＩ／Ｏポート４１ｄが先に動作を停止するハードウェア構成を採用しても、Ｉ／Ｏポート４１ｄが動作を停止する前に、ＣＰＵ５０５の動作が停止することが確認おり、このような場合には、ＳＲＡＭを指定するチップセレクト信号やＳＲＡＭへの書込のタイミングを示すＷＲ信号が出力されてしまう可能性が残り、外部メモリのデータが書き換わってしまう虞がある。
【０４６６】
このため本実施例では、停電時においてバックアップデータをバックアップＲＡＭに格納した後、バックアップＲＡＭに接続されているＣＳ信号線が接続された汎用端子に対応する汎用ポートの設定を入力ポートに設定することで、バックアップＲＡＭに対するチップセレクト信号の出力機能を強制的に無効化し、バックアップＲＡＭへのデータの書き込みをソフトウェア的にも無効化するようになっており、停電時のように電圧の不安定な状態において、バックアップＲＡＭのデータが書き換わってしまうことをさらに確実に防止できる。
【０４６７】
尚、本実施例では、遊技制御用マイクロコンピュータ１００と同一の基板上にバックアップＲＡＭが実装されている構成について説明しているが、遊技制御用マイクロコンピュータ１００と別個の基板上にバックアップＲＡＭが実行されている構成であっても、上述のようにバックアップＲＡＭに対するチップセレクト信号の出力機能を強制的に無効化することで、停電時のように電圧の不安定な状態において、バックアップＲＡＭのデータが書き換わってしまうことを確実に防止できる。
【０４６８】
また、本実施例では、遊技制御用マイクロコンピュータ１００の起動後、内蔵デバイスの設定や他の内蔵レジスタの設定の後、バックアップデータが正常か否かの判定を行う前の段階で、ＳＲＡＭ５０に接続されているＣＳ信号線が接続された汎用端子に対応する汎用ポートの設定を出力ポートに設定することで、ＳＲＡＭ５０のチップセレクト信号の出力を有効化するようになっており、ＳＲＡＭ５０に記憶されているバックアップデータに基づいて復帰可能か否かの判定を行うまでは、ＳＲＡＭ５０へチップセレクト信号を出力する機能が無効化されているので、電力供給が開始した後の不安定な状態においてＳＲＡＭ５０のデータが書き換わってしまうことを防止できる。
【０４６９】
この発明は、上記実施の形態に限定されず、様々な変形および応用が可能である。例えばスロットマシン１は、上記実施の形態で示した全ての技術的特徴を備えるものでなくてもよく、従来技術における少なくとも１つの課題を解決できるように、上記実施の形態で説明した一部の構成を備えたものであってもよい。具体的な一例として、上記実施の形態では、図３０に示すＳａ３６の処理によりウォッチドッグタイマ５２０を起動してタイムアウトの発生によるリセット動作を有効化するとともに、図３６に示すＳｍ２３の処理によりウォッチドッグタイマ５２０を起動してタイムアウトの発生によるリセット動作を有効化するものとして説明した。これに対して、Ｓａ３６の処理とＳｍ２３の処理のうち、いずれか一方の処理によりウォッチドッグタイマ５２０を起動してタイムアウトの発生によるリセット動作を有効化するが、他方の処理は実行されないものであってもよい。
【０４７０】
ウォッチドッグタイマ５２０にてタイムアウトが発生したことによりリセット動作が行われたときには、ハードラッチ乱数値レジスタ５５９Ａから数値データを読み出して、各乱数ラッチフラグをオフ状態に設定するための処理が実行されてもよい。これにより、例えばスロットマシン１において電力供給が瞬停したときに電源電圧が不安定な状態で誤ってハードラッチ乱数値レジスタ５５９Ａに格納された数値データが、乱数値として取得されてしまうことを防止できる。
【０４７１】
図２９のステップＳ２にて設定される固定延長時間は、例えばＲＯＭ５０６に記憶されたユーザプログラムにおける設定などにより、システムリセット毎に複数の固定延長時間のいずれかに決定するようにしてもよい。この場合には、ステップＳ２にて設定される固定延長時間がいずれも、ステップＳ５にて設定可能な最長の可変延長時間に比べて、長くなるように定義しておく。そして、ステップＳ２では大まかな延長時間を決定した後、ステップＳ５では詳細な延長時間を決定すればよい。これにより、スロットマシン１の電源投入時やシステムリセット時にセキュリティモードとなるセキュリティ時間を、システムリセット毎に大きく変化させることが可能になり、スロットマシン１の動作開始タイミングから乱数回路５０９Ａ、５０９Ｂの動作開始タイミングや更新される数値データなどを特定することが、より困難になる。
【０４７２】
また、固定時間に加算される固定延長時間などは、遊技制御用マイクロコンピュータ１００を構成するチップ毎に付与されるＩＤナンバーを用いて決定されるようにしてもよい。一例として、ＩＤナンバーに所定のスクランブル処理を施す演算や、ＩＤナンバーを用いた加算・減算・乗算・除算などの演算の一部または全部を実行して、算出された値に対応して延長時間を設定してもよい。この場合には、例えばシステムリセット毎に延長時間を決定するために用いる演算式を変更することなどにより、システムリセット毎に延長時間がランダムに決定されるようにしてもよい。さらに、例えばＩＤナンバーを用いて延長時間を決定するための演算式をシステムリセット時に格納したフリーランカウンタのカウント値に対応して決定するといったように、フリーランカウンタのカウント値と、ＩＤナンバーとを組み合わせて使用することなどにより、システムリセット毎に延長時間がランダムに決定されるようにしてもよい。また、乱数回路５０９Ａ、５０９Ｂにて生成される乱数のスタート値をシステムリセット毎に変更する場合にも、フリーランカウンタのカウント値と、ＩＤナンバーとを組み合わせて使用することなどにより、乱数のスタート値を決定してもよい。
【０４７３】
遊技制御用マイクロコンピュータ１００のＣＰＵ５０５に供給されるクロック信号と、乱数回路５０９Ａ、５０９Ｂに供給されるクロック信号は、共通のクロック生成回路に含まれる１つの発振器により生成された発振信号を用いて、生成されるようにしてもよい。この場合には、例えば乱数用クロックＲＣＫと制御用クロックＣＣＬＫをそれぞれ生成するための分周器などを設け、ラッチ用クロックと制御用クロックＣＣＬＫあるいは内部システムクロックＳＣＬＫとの同期が生じにくくなるように、各分周器における分周比などを設定すればよい。制御用クロック生成回路１１１と乱数用クロック生成回路１１２とは、その一部または全部が、遊技制御用マイクロコンピュータ１００の内部に設けられてもよいし、遊技制御用マイクロコンピュータ１００の外部に設けられてもよい。
【０４７４】
乱数更新クロックＲＧＫやラッチ用クロックとなる発振信号は、例えば乱数用クロック生成回路１１２といった、乱数回路５０９Ａ、５０９Ｂの外部において生成されるようにしてもよい。あるいは、乱数回路５０９Ａ、５０９Ｂの内部にて、乱数更新クロックＲＧＫを生成するための回路と、ラッチ用クロックＲＣ０を生成するための回路とを、別個に設けるようにしてもよい。一例として、クロック用フリップフロップと同様のフリップフロップにより乱数更新クロックＲＧＫを生成する一方で、乱数更新クロックＲＧＫの信号状態を反転させる反転回路を設け、その反転回路から出力される信号を、ラッチ用クロックとして用いるようにしてもよい。
【０４７５】
ＲＯＭ５０６の外部読出などを制限する場合には、例えば遊技制御用マイクロコンピュータ１００にてＲＯＭ５０６の記憶データを外部読出するための接続端子などを、スロットマシン１の提供者において外部装置が接続不能に封止されてもよい。
【０４７６】
また、上記の実施例では、スロットマシンとして、メダル並びにクレジットを用いて賭数を設定するスロットマシンを例に挙げて説明したが、これに限定されることなく、例えば、遊技球を遊技媒体として用いるパチンコ遊技機や、遊技球を用いて賭数を設定するスロットマシン、クレジットのみを使用して賭数を設定する完全クレジット式のスロットマシンに上記の実施例で示した構成を適用して、請求項１に係る発明を実現することが可能である。尚、スロットマシンにおいて遊技球を遊技媒体として用いる場合は、例えば、メダル１枚分を遊技球５個分に対応させた場合に、上記の実施例で賭数として３を設定する場合は、１５個の遊技球を用いて賭数を設定するものに相当する。
【０４７７】
尚、本発明のスロットマシンは、メダル及び遊技球などの複数種類の遊技媒体のうちのいずれか１種類のみを用いるものに限定されるものでなく、例えばメダル及び遊技球などの複数種類の遊技媒体を併用できるものであっても良い。すなわち、メダル及び遊技球などの複数種類の遊技媒体のいずれを用いても賭数を設定してゲームを行うことが可能であり、かつ入賞の発生によってメダル及び遊技球などの複数種類の遊技媒体のいずれをも払い出し得るスロットマシンも本発明のスロットマシンに含まれるものである。
【０４７８】
また、上記実施例では、遊技制御プログラムを内部抽選制御モジュール、入出力制御モジュール、リール回転制御モジュール、払出制御モジュールの４つのプログラムモジュールで構成したが、この実施例に限らず、上記４つのうちの少なくともいずれか１つのプログラムモジュールで遊技制御プログラムをモジュール構造としたスロットマシンや上記４つのうちの少なくともいずれか１つと上記４つのプログラムモジュール以外のプログラムモジュールで遊技制御プログラムをモジュール構造としたスロットマシンに上記の実施形態で示した構成を適用しても良い。
【０４７９】
また、上記実施例では、電断処理（メイン）において、内部抽選制御モジュール、入出力制御モジュール、リール回転制御モジュール、払出制御モジュールの順にバックアップ処理を行ったが、この実施例に限らず、バックアップ処理の順序が上記の実施形態と異なるスロットマシンに上記の実施形態で示した構成を適用しても良い。
【０４８０】
また、本実施例では、プログラムモジュール毎に、該プログラムモジュールで用いられるデータを用いて、バックアップデータが正常であるか否かを判定するためのチェックデータを作成する（図３６におけるＳｍ４，Ｓｍ９，Ｓｍ１４，Ｓｍ１９の部分）。
【０４８１】
よって、複数のプログラムモジュールで構成したプログラム構造にしてバックアップ処理を機種に関わらない共通の方法で行ってもプログラムの開発工数を削減することができる。
【０４８２】
また、本実施例では、プログラムモジュール毎に、該プログラムモジュールで用いられるデータにもとづくバックアップデータが正常か否かを判定し、全てのバックアップデータが正常であると判定したことを条件として、バックアップデータにもとづいて復帰処理を行う（図３０におけるＳａ８，Ｓａ１２，Ｓａ１７，Ｓａ２１の部分）。よって、バックアップデータのデータ作成領域の開始アドレスがプログラムモジュール毎に異なるように開始アドレスを指定しても、確実に復帰処理を行うことができる。
【０４８３】
尚、上記の実施例では、起動処理（メイン）において、各プログラムモジュールのチェックサムが全て一致したことを条件に電断前の状態に復帰させたが、この実施例に限らず、チェックサムが一致したプログラムモジュールと、チェックサムが一致しないプログラムモジュールとがある場合には、チェックサムが一致したプログラムモジュールに係る機能についてのみ電断前の状態に復帰させる、あるいは、全ての機能について電断前の状態に復帰させるスロットマシンに上記の実施形態で示した構成を適用しても良い。
【０４８４】
また、本実施例では、いずれのプログラムモジュールで用いられるデータにもとづくバックアップデータであるかにかかわらず、共通のデータ変換処理を施してバックアップデータをバックアップＲＡＭに格納する（図３６におけるＳｍ２，Ｓｍ７，Ｓｍ１２，Ｓｍ１７の部分おいて、図５０で示すデータ変換を行う部分）。よって、プログラムの開発工数を削減することができる。
【０４８５】
尚、上記の実施例では、８ビットのデータを付加するデータ変換を行ったが、この実施例に限らず、他の方法でデータ変換処理を行うスロットマシンに上記の実施形態で示した構成を適用しても良い。
【０４８６】
スロットマシン１は、メダル並びにクレジットを使用してゲームを実施可能なものに限らず、例えばパチンコ球を用いてゲームを行うスロットマシンや、メダルが外部に排出されることなくクレジットを使用して遊技可能な完全クレジット式のスロットマシン、可変表示装置が図柄を示す画像の表示を行う画像式のスロットマシンなどにも適用することができる。
【０４８７】
スロットマシン１が備える構成や機能の一部または全部を実現するためのプログラムやデータは、コンピュータ装置等に対して、着脱自在の記録媒体により配布・提供される形態に限定されるものではなく、予めコンピュータ装置等の有する記憶装置にプリインストールしておくことで配布される形態を採っても構わない。さらに、本発明を実現するためのプログラムやデータの一部または全部は、通信処理部を設けておくことにより、通信回線等を介して接続されたネットワーク上の、他の機器からダウンロードすることによって配布する形態を採っても構わない。
【０４８８】
以上説明したように、上記実施の形態におけるスロットマシン１などのスロットマシンでは、ＲＯＭ５０６のプログラム管理エリアに記憶されるリセット設定ＫＲＥＳのビット番号［６］におけるビット値を“１”に設定することで、ユーザプログラム（ソフトウェア）でウォッチドッグタイマ５２０の起動と停止とを切替可能にする。遊技制御用マイクロコンピュータ１００のＣＰＵ５０５は、図３４に示すＳｋ３の処理にて電断フラグが設定されていると判定したときに、図３６に示す電断処理（メイン）を実行した後に無限ループ処理を繰返し実行する待機状態に移行させるとともに、電断処理（メイン）の実行に伴うＳｍ２３の処理にて、ウォッチドッグタイマ５２０を起動させてタイムアウトの発生によるリセット動作を有効化する。このように、電源断信号がオン状態であると判定されてからウォッチドッグタイマ５２０を起動させることで、スロットマシン１における遊技の進行を制御するときにはウォッチドッグタイマ５２０における監視時間の計測を定期的にクリア（初期化）してリスタートさせる必要がない。これにより、遊技の進行を制御するための制御負担を軽減しつつ、スロットマシン１などのスロットマシンにおける電力供給の瞬停から適切に復旧させることができる。
【０４８９】
また、遊技制御用マイクロコンピュータ１００のＣＰＵ５０５は、スロットマシン１における電力供給が開始されたときに、図３０に示すＳａ４の処理によりＲＡＭ５０７へのアクセスが許可されるより先に、Ｓａ３５の処理により電源断信号がオン状態であるか否かを判定する。このとき電源断信号がオン状態であると判定された場合には、無限ループ処理を繰返し実行する待機状態に移行させることに伴うＳａ３６の処理にて、ウォッチドッグタイマ５２０を起動させてタイムアウトの発生によるリセット動作を有効化する。このように、電力供給の開始時やリセット動作の実行時に電源断信号がオン状態であると判定されてからウォッチドッグタイマ５２０を起動させることで、スロットマシン１における遊技の進行を制御するときにはウォッチドッグタイマ５２０における監視時間の計測を定期的にクリア（初期化）してリスタートさせる必要がない。これにより、遊技の進行を制御するための制御負担を軽減しつつ、スロットマシン１などのスロットマシンにおける電力供給の瞬停から適切に復旧させることができる。
【０４９０】
例えば図１０（Ｂ）に示すリセット設定ＫＲＥＳにおいて、ビット番号［５−４］およびビット番号［３−０］におけるビット値を設定することにより、ウォッチドッグタイマ５２０により計測される監視時間は、予め定められた複数種類のうちから設定することができる。こうしたリセット設定ＫＲＥＳのビット番号［５−４］におけるビット値が“１１”でビット番号［３−０］におけるビット値が“１１１１”となるように設定することで、監視時間となるタイムアウト時間として設定可能な最長時間を設定する。これにより、例えばスロットマシン１における電源スイッチの切断等により電力供給が所定期間にわたり完全に停止したときには、タイムアウトの発生によるリセット動作が行われないように制限することで、誤ってリセットされてしまうことを防止しつつ、スロットマシン１などのスロットマシンにおける電力供給の瞬停から適切に復旧させることができる。
【０４９１】
図３０に示すＳａ３６の処理や図３６に示すＳｍ２３の処理では、図３７（Ｂ）に示すような処理が実行されることで、直前のリセット要因がウォッチドッグタイマ５２０のタイムアウトによるものであると判定されたときには、ウォッチドッグタイマ５２０を停止させてタイムアウトの発生によるリセット動作を無効化してもよい。これにより、スロットマシン１などのスロットマシンにおける電源電圧の安定が確認できないために不用意なリセット動作が繰返し実行されてしまうことを防止しつつ、スロットマシンにおける電力供給の瞬停から適切に復旧させることができる。
【０４９２】
遊技制御用マイクロコンピュータ１００のＣＰＵ５０５は、ＷＤＴクリアレジスタＷＣＬに「５５Ｈ」と「ＡＡＨ」という値が異なるＷＤＴクリアデータを順次に書き込むことで、ウォッチドッグタイマ５２０における監視時間となるタイムアウト時間の計測をクリア（初期化）してリスタート（再開）させる。これにより、スロットマシン１などのスロットマシンにおいて電力供給が瞬停するときに、ノイズ等により誤って監視時間の計測が初期化されてしまうことを防止して、スロットマシンにおける電力供給の瞬停から適切に復旧させることができる。
【符号の説明】
【０４９３】
１  スロットマシン
２Ｌ、２Ｃ、２Ｒ  リール
６  ＭＡＸＢＥＴスイッチ
７  スタートスイッチ
８Ｌ、８Ｃ、８Ｒ  ストップスイッチ
１００  …  遊技制御用マイクロコンピュータ
３０１  …  変圧回路
３０２  …  直流電圧生成回路
３０３  …  電源監視回路
３０４  …  クリアスイッチ
５０１  …  外部バスインタフェース
５０１Ａ  …  内部リソースアクセス制限回路
５０２  …  クロック回路
５０３  …  固有情報記憶回路
５０４Ａ  …  リセットコントローラ
５０４Ｂ  …  割り込みコントローラ
５０５  …  ＣＰＵ
５０６  …  ＲＯＭ
５０６Ａ  …  セキュリティチェックプログラム
５０７  …  ＲＡＭ
５０８  …  タイマ回路
５０９Ａ、５０９Ｂ  …  乱数回路
５１０  …  ＰＩＰ
５１１  …  シリアル通信回路
５１２  …  アドレスデコード回路
５２０  …  ウォッチドッグタイマ
５３３  …  ＷＤＴ制御回路
５３５  …  カウントクロック生成回路
５３６  …  １６ビットアップカウンタ
５３７  …  出力制御回路
５５１  …  乱数更新クロック選択回路
５５３Ａ  …  乱数生成回路
５５３Ｂ  …  乱数起動設定回路
５５３Ｃ  …  スタート値設定回路
５５４Ａ  …  乱数列変更回路
５５４Ｂ  …  乱数列変更設定回路
５５５  …  最大値比較回路
５５８Ａ  …  ハードラッチセレクタ
５５９Ａ  …  ハードラッチ乱数値レジスタ
５５９Ｓ  …  ソフトラッチ乱数値レジスタ
【図１】
0006039195.tif 000002
【図２】
0006039195.tif 000003
【図３】
0006039195.tif 000004
【図４】
0006039195.tif 000005
【図５】
0006039195.tif 000006
【図６】
0006039195.tif 000007
【図７】
0006039195.tif 000008
【図８】
0006039195.tif 000009
【図９】
0006039195.tif 000010
【図１０】
0006039195.tif 000011
【図１１】
0006039195.tif 000012
【図１２】
0006039195.tif 000013
【図１３】
0006039195.tif 000014
【図１４】
0006039195.tif 000015
【図１５】
0006039195.tif 000016
【図１６】
0006039195.tif 000017
【図１７】
0006039195.tif 000018
【図１８】
0006039195.tif 000019
【図１９】
0006039195.tif 000020
【図２０】
0006039195.tif 000021
【図２１】
0006039195.tif 000022
【図２２】
0006039195.tif 000023
【図２３】
0006039195.tif 000024
【図２４】
0006039195.tif 000025
【図２５】
0006039195.tif 000026
【図２６】
0006039195.tif 000027
【図２７】
0006039195.tif 000028
【図２８】
0006039195.tif 000029
【図２９】
0006039195.tif 000030
【図３０】
0006039195.tif 000031
【図３１】
0006039195.tif 000032
【図３２】
0006039195.tif 000033
【図３３】
0006039195.tif 000034
【図３４】
0006039195.tif 000035
【図３５】
0006039195.tif 000036
【図３６】
0006039195.tif 000037
【図３７】
0006039195.tif 000038
【図３８】
0006039195.tif 000039
【図３９】
0006039195.tif 000040
【図４０】
0006039195.tif 000041
【図４１】
0006039195.tif 000042
【図４２】
0006039195.tif 000043
【図４３】
0006039195.tif 000044
【図４４】
0006039195.tif 000045
【図４５】
0006039195.tif 000046
【図４６】
0006039195.tif 000047
【図４７】
0006039195.tif 000048
【図４８】
0006039195.tif 000049
【図４９】
0006039195.tif 000050
【図５０】
0006039195.tif 000051
【図５１】
0006039195.tif 000052
【図５２】
0006039195.tif 000053