(57)【特許請求の範囲】
【請求項１】
所定の遊技媒体を用いて遊技を行う遊技機であって、
前記遊技の進行を制御するための制御処理を表す制御プログラムを格納したメモリと、
前記制御プログラムに従って、前記制御処理を実行する演算部と、
前記演算部の制御処理の異常を監視するための制御処理監視部とを有し、
前記制御処理監視部は、
起動後または初期化後の経過時間が所定の基準時間を超過すると、前記演算部の動作をリセットするリセット処理部と、
前記演算部が値を書き込み可能な初期化レジスタと、
前記初期化レジスタに、前記演算部から書き込みが行われた場合には、前記経過時間の計測を初期化する経過時間初期化部とを有し、
前記演算部は、
前記制御処理を開始すると初期の過程で、前記制御処理監視部の動作状況または前記制御処理監視部からの出力を監視することによって、前記制御処理監視部が稼働していることを確認する稼働確認処理と、
前記制御処理監視部の稼働が確認できない場合に、前記制御処理監視部の動作を異常から回復させるための所定の回復処理とを実行可能であり、
前記制御処理監視部は、
その動作状態を設定するための設定情報を書き込むコントロールレジスタに対して、同一の設定情報が複数回、書き込まれた時に起動するよう構成されており、
前記制御処理は、
前記設定情報を複数回、前記制御処理監視部に書き込む処理と、
複数回書き込んだ設定情報同士が一致しているか否かを判定し、一致していると判定した場合は、前記制御処理監視部の設定及び起動が完了したと判定する一方、一致していないと判定した場合は、前記設定情報を前記制御処理監視部に繰り返し書き込む処理と、を含む、
ことを特徴とする遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スロットマシン、パチンコ機など、所定の遊技媒体を用いて遊技を行う遊技機に関する。
【背景技術】
【０００２】
スロットマシン、パチンコ機などの遊技機の制御は、全体の進行を制御するための主制御基板、音声出力、ランプ点灯、画像表示などの演出を制御するサブ統合基板などの分散制御によって行われる（特許文献１）。主制御基板、サブ統合基板等は、それぞれＣＰＵ、ＲＡＭ、ＲＯＭなどを備えるマイクロコンピュータとして構成されている。
特許文献１に開示されている通り、遊技機の起動中、主制御基板は、ＲＯＭに予め用意されたループ処理を繰り返し実行する。その過程で、数ｍｓｅｃごとに割込処理を実行し、遊技状態の判定、サブ統合基板等への指示などを行う。
【０００３】
遊技機では、主制御基板のＣＰＵが正常に動作しているか否かを監視するため、ウォッチドッグタイマを用いる。ウォッチドッグタイマとは、起動後または、その初期化が行われた後の経過時間を計測し、計測時間が所定の基準時間を超えるとＣＰＵをリセットするタイマである。ウォッチドッグタイマを用いる場合には、ＣＰＵが所定のタイミングで、ウォッチドッグタイマの計時を初期化するよう制御処理を組む。ＣＰＵが正常に動作している限り、ウォッチドッグタイマは基準時間を超える前に初期化されるため、ＣＰＵは動作し続けることができる。ＣＰＵの動作が異常になると、予定された初期化が行われなくなるため、ウォッチドッグタイマの計測時間が基準時間を超えると、ＣＰＵにリセットがかかるようになる。
【０００４】
特許文献２は、ウォッチドッグタイマを用いた遊技機を開示している。特許文献２の遊技機では、Ａ，Ｂ，Ｃという３種類の値を、正規の順序でウォッチドッグタイマの所定のレジスタに書き込むと、計時が初期化されるようになっている。ウォッチドッグタイマが、ＣＰＵをリセットするか否かの判断基準となる基準時間は、予め設定することができる。
【０００５】
【特許文献１】特開２００７−２１５９５３号公報
【特許文献２】特開２００３−２１０８００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来、遊技機の制御処理は、ウォッチドッグタイマが、正常に稼働していることを前提として組まれていた。ハードウェア的にも、ウォッチドッグタイマは、稼働状態を外部に知らせるための信号を出力するように構成されてはいなかった。
しかし、ウォッチドッグタイマも、起動時の設定値がノイズ等の影響を受けて異常な動作設定が行われたり、ノイズ等の影響によって正常に起動させることができなかったりするおそれがある。上述の通り、ウォッチドッグタイマの異常は、制御処理上、全く想定外の事情であるため、かかる状況下で、制御処理に異常が生じた場合には、歯止めが効かなくなり、不測の障害を生じるおそれもある。
【０００７】
また、ウォッチドッグタイマが正常に起動していないと、遊技中の制御処理に異常が生じた場合でも、ＣＰＵのリセットがかからず、異常を解消することができないおそれがある。
また、停電時の処理において支障が生じるおそれもある。遊技機では、停電時や電源を切断する際には、次の再開に必要な情報をＲＡＭ等にバックアップした後、ＣＰＵに、ウォッチドッグタイマの初期化をすることなく、無限ループの処理を行わせている。電源が切断されている場合には、ウォッチドッグタイマが正常に起動していないとしても、無限ループの処理中にＣＰＵが動作を停止するため支障はない。
これに対し、瞬間的な停電が生じた場合などには、上述の無限ループに入った後も、電源が供給され続けることがある。かかる場合には、ウォッチドッグタイマが正常に起動していれば、基準時間が経過した時点でリセットがかかり、遊技機は再起動される。しかし、ウォッチドッグタイマが正常に起動していない場合には、どれだけ時間が経過しても、リセットがかからないため、無限ループから抜け出すことができなくなるおそれがある。しかも、この場合には、ＣＰＵは、無限ループから抜け出すことができないから、遊技機の異常を報知音などで知らせる処理も行われないことになり、遊技者やホールの遊技場の係員も異常に気づきにくいという問題もある。
【０００８】
本発明は、これらの課題を解決するためのものであり、ウォッチドッグタイマが正常に起動しないまま、制御処理が行われることによる弊害を回避することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、所定の遊技媒体を直接的または間接的に用いて遊技を行う遊技機を対象とする。かかる遊技機としては、例えば、スロットマシンなどの回胴式遊技機、スマートボール、パチンコ機などが挙げられる。遊技媒体とは、遊技球やメダルなど遊技中に投資、特典の対象となる媒体を言う。遊技機には、遊技中に視聴覚的な演出を行うための演出装置、所定の条件下で遊技媒体を遊技者に払い出す払出装置を備えてもよい。
【００１０】
遊技機の進行の制御は、所定の制御プログラムに従って、制御処理を実行する演算部によって行われる。この制御プログラムは、メモリに格納されている。演算部は、汎用のＣＰＵとしてもよいし、遊技機専用のセキュリティ機能付きＣＰＵとしてもよい。
遊技機の制御は、上述の演算部およびメモリを搭載した主制御装置によって全てを行うようにしてもよいし、更に、主制御装置からの情報に基づいて制御する下位制御装置を設け、これら複数の制御装置の分散処理によるものとしてもよい。下位制御装置としては、例えば、演出装置を制御するための演出制御装置、払出装置を制御するための払出制御装置などを設けることができる。
【００１１】
本発明では、演算部およびメモリの他、演算部の制御処理の異常を監視するための制御処理監視部を有する。制御処理監視部は、ハードウェア的には、演算部と同一のＩＣパッケージに内蔵する構成としてもよいし、別の素子として外付けするようにしてもよい。
制御処理監視部は、リセット処理部、初期化レジスタ、経過時間初期化部を有している。リセット処理部は、その起動後または初期化後の経過時間が所定の基準時間を超過すると、演算部の動作をリセットする。初期化レジスタは、演算部が値を書き込み可能な素子であり、経過時間初期化部は、複数の初期化レジスタに、演算部から書き込みが行われた場合には、経過時間の計測を初期化する。初期化レジスタに書き込まれる値は、任意の値でよい。
【００１２】
経過時間の計測は種々の方法を採ることができる。
例えば、計時用のディジタルタイマを用い、そのタイマ値が基準時間に相当する値になった時に演算部の動作をリセットするようにしてもよい。ディジタルタイマとしてカウントアップタイマを用いている場合には、初期化レジスタへの書き込みが行われた時には、このタイマ値を値０に初期化すればよい。また、ディジタルタイマとしてカウントダウンタイマを用いている場合には、初期化レジスタへの書き込みが行われた時には、タイマ値を基準時間に設定することによって初期化できる。
別の態様として、コンデンサ（Ｃ）と抵抗（Ｒ）の組み合わせ回路、いわゆるＲＣ回路を用いても良い。ＲＣ回路の電圧は、電圧印加開始後の時間とともに、時定数に応じた一定の変化を示すことが知られているから、この電圧値が、基準時間に対応する所定値に達した時に、演算部の動作をリセットすればよい。この場合には、初期化レジスタへの書き込みが行われた時には、コンデンサ（Ｃ）を放電させる処理を行うことによって、初期化することができる。
上述のディジタルタイマおよびＲＣ回路の初期化は、制御処理監視部が直接行うものとしてもよいし、別回路で行うものとしてもよい。例えば、ディジタルタイマ等が、制御処理監視部とは別に設けられた外付け回路である場合には、制御処理監視部は、初期化を指示する信号を出力し、外付け回路がこの信号に応じて、それぞれ上述の初期化を行うようにしてもよい。
以下では説明の便宜上、ディジタルタイマを用いるディジタルでの経過時間の計測方法、およびＲＣ回路を用いたアナログでの経過時間の計測方法の双方を含めて、「経過時間の計測」と呼び、この計測を初期化することを「経過時間初期化」と呼ぶものとする。
【００１３】
初期化レジスタは、一つだけ設けるようにしてもよいし、複数設けてもよい。複数設けた場合には、いずれか一つに書き込みが行われた時に経過時間初期化が行われるようにしてもよいし、全ての初期化レジスタに書き込みが行われた時に経過時間初期化が行われるようにしてもよい。
【００１４】
本発明では、演算部は、制御処理の過程で、制御処理監視部が稼働していることを確認する稼働確認処理を行う。確認は、制御処理監視部の動作状況または制御処理監視部からの出力を監視することによって行う。
【００１５】
制御処理監視部の稼働が確認できない場合には、演算部は、制御処理監視部の動作を異常から回復させるための所定の回復処理を行う。この回復処理には、例えば、異常を音声出力やランプ点灯などの演出装置によって報知する処理も含まれる。
上述の稼働確認処理および回復処理は、制御プログラムに従って行うようにしてもよいし、演算部の固有の機能としてハードウェア的に実現するようにしてもよい。
【００１６】
本発明では、演算部は制御処理監視部が正常に稼働しているか否かを確認する。
先に説明した通り、従来、ウォッチドッグタイマのような制御処理監視部については、正常に起動していることが前提として制御処理が組まれており、その稼働状況を監視することは考えられておらず、正常に起動していない時の弊害についても考慮されていなかった。
また、遊技機では、制御用のプログラムサイズに対して３ＫＢ以内という厳しい制約があるため、わずかな容量であっても、看過し得ない場合がある。ウォッチドッグタイマのクリア処理は、可能な限り、簡素化したい処理の一つである。プログラムサイズを抑えるという観点からも、ウォッチドッグタイマの稼働状況の監視は敬遠されていた。
本発明では、こうした技術背景にも関わらず、制御処理監視部の起動を確認することの重要性を考慮し、敢えてその正常に稼働しているか否かを確認するようにしたものである。
【００１７】
本発明では、上述の通り、制御処理監視部の稼働状況を確認し、異常がある場合には、回復処理を行うため、制御処理監視部をより確実に起動させることが可能となる。従って、制御処理に異常が生じた場合などには、制御処理監視部の作用によって、演算部をリセットすることができ、不測の障害が生じるおそれを回避できる。
【００１８】
本発明において、制御処理監視部の稼働状況の確認は、制御処理監視部が起動した後であれば任意のタイミングで行うことができるが、起動後、可能な限り速やかに行うことが好ましい。
例えば、電源投入後に行われるべき制御処理が、所定の初期設定等を行う初期シーケンスと、予め規定された手順で繰り返し実行されるループ処理とを含んでいる場合には、ループ処理に入る前の初期シーケンスにおいて、制御処理監視部を起動するとともに、稼働状況の確認を行うことが好ましい。
こうすることで、制御処理監視部が異常な状態で、ループ処理が行われるおそれを回避できる。
【００１９】
確認は、制御処理監視部の起動後に１回だけ行うようにしてもよいし、制御処理を行う間に、繰り返し行うようにしてもよい。繰り返し確認する方法としては、上述のループ処理において、制御処理監視部の確認を行わせる方法が考えられる。
もっとも、制御処理監視部は、一旦、起動が確認されれば、その後に異常によって動作を停止するおそれは非常に低いため、処理の簡素化という観点からは、起動後に１回だけ確認する方法を採ることが好ましい。
【００２０】
本発明において、制御処理監視部が稼働しているか否かの確認は、種々の方法で行うことができる。
例えば、制御処理監視部が経過時間を計測するためのタイマを備えている場合には、タイマで計測されたタイマ値を演算部に出力可能としてもよい。この場合、演算部は、タイマ値の変化に基づいて確認を行うことが可能となる。
タイマ値の変化は、例えば、起動時に読み込んだ値や従前の処理で読み込んだ値を基準値とし、この基準値との差異の有無で判断することができる。基準値との比較は、複数のタイミングで行うことが好ましい。タイマは所定の周期で同じ値を繰り返し出力するため、単一のタイミングでは、基準値から所定の周期ずれただけの同一値との比較になってしまい、タイマが稼働していないと誤判断されるおそれがあるからである。タイマの周期よりも十分に短い間隔で設けられた複数のタイミングで、タイマ値の変化を検出するようにすれば、こうした誤判断を回避することが可能となる。
【００２１】
また、別の態様として、制御処理監視部は、稼働を開始した時に所定の稼働情報を外部に出力可能としてもよい。例えば、稼働したことを示すフラグを設定して演算部に出力する方法が考えられる。この場合、演算部は、稼働情報の出力に基づいて、制御処理監視部が稼働しているか否かの確認を行うことが可能となる。
【００２２】
上述のフラグは制御処理監視部が起動した後も、ソフトウェア的に０に書換可能としてもよい。制御処理監視部が正常に稼働している時は、このフラグが再び値１に変更されることになる。こうすることにより、電源投入時だけでなく定期または不定期にこのフラグを確認すれば、定常的に制御処理監視部の稼働状況を容易に判別することができる。
【００２３】
さらに別の態様として、制御処理監視部の動作状況に基づいて、制御処理監視部が稼働しているか否かの確認を行うようにしてもよい。
つまり、演算部は、制御処理監視部を起動させた後、試行処理、即ち、経過時間初期化部による初期化を行わずに基準時間を超える期間、放置する処理を行う。制御処理監視部が正常に起動している時には、リセットが行われるはずである。基準時間を超えてもリセットが行われない場合には、異常が生じたものと判断し、回復処理を行うようにすればよい。
この態様は、制御処理監視部から、タイマ値やフラグなどの出力が得られない場合でも、稼働状況を監視できる利点がある。
【００２４】
リセットが行われると、演算部は制御処理を再開する。この時点では、制御処理監視部の起動は既に確認しているから、上述の試行処理を回避する必要がある。これを実現するために、制御処理が開始された後、既に試行処理が行われたか否かを試行処理の開始に先立って判断し、試行処理が既に行われている場合には、試行処理の実行を回避する処理を含めておけばよい。
こうすることにより、試行処理が未済であれば試行処理を行うことができ、既済であれば、試行処理が繰り返されることを回避して、制御処理を先に進めることが可能となる。
【００２５】
試行処理が行われたか否かの判断には、例えば、既済か否かを示すフラグを用いる方法が考えられる。最初に試行処理を実行する際に、このフラグを設定しておけばよい。ただし、試行処理の結果、演算部をリセットする際には、フラグがクリアされないよう、メモリ上に退避しておく必要がある。
また、このフラグに基づいて、試行処理を回避するとの判断がされた後には、フラグをリセットしておくことが好ましい。次に、制御処理が開始された時に、試行処理を行わせるようにするためである。
【００２６】
本発明において、回復処理としては、次の各処理を行うことができる。
例えば、回復処理は、制御処理監視部の再起動としてもよい。こうすることで、制御処理監視部を起動させることができれば、簡易な処理で異常から回復することができる。
また、回復処理は、制御処理を最初から再度実行する処理としてもよい。制御処理監視部に対する設定および起動を含め、再度実行するため、制御処理監視部を、より確実に起動させることが可能となる。
上述の回復処理は、段階的に適用してもよい。例えば、制御処理監視部の再起動を試行した後、それでも異常から回復できない場合に制御処理の再起動をさせる方法が考えられる。
【００２７】
制御処理監視部は、演算部から、複数回にわたって、相互に関連する所定の情報を受け取ることによって起動するよう構成してもよい。演算部は、制御処理監視部を起動させるために、所定の情報を複数回、制御処理監視部に出力することになる。
このように制御処理監視部を起動させるために、複数回にわたって情報を受け取ることが要求される構成とすることによって、ノイズ等の影響で誤って制御処理監視部が起動するおそれを抑制でき、異常な設定で動作することを抑制することができる。処理の簡素化という観点からは、情報を２回出力することで設定および起動を行えるようにすることが好ましいが、３回以上で行うものとしても構わない。
また、制御処理監視部は、一旦、起動したら電源遮断後の再投入等によるリセット操作以外では停止できないよう構成してもよい。例えば、一旦、起動した後は、初期化レジスタへの書き込み以外は、外部からの情報を受け付けないよう構成しておくことによって実現できる。こうすることにより、ノイズ等の影響で、誤って制御処理監視部が停止してしまうことを回避することができる。
【００２８】
例えば、制御処理監視部は、その動作状態を設定するための設定情報を書き込むコントロールレジスタに対して、同一の設定情報が複数回、書き込まれた時に起動するよう構成してもよい。この場合、制御処理監視部を起動させるためには、演算部は、同一の設定情報を繰り返し制御処理監視部に出力すれば足りるから、単純なループ処理または同じ出力コマンドの繰り返しなど、比較的、単純な処理によって設定および起動を行うことができる利点がある。
複数回とは連続であってもよいし、異なる情報をはさんでいてもよい。後者の態様では、演算部から設定情報を出力する間に、ノイズ等によってコントロールレジスタへの書き込みが行われても、同一の設定情報が複数回、書き込まれさえすれば制御処理監視部を起動させることができる。
【００２９】
複数回の情報で設定および起動を行う例としては、上述のように同一の情報を用いる場合に限定されない。相互に関連する情報を用いることにより、出力されたそれぞれの情報が、正しい情報か、ノイズ等の影響を受けた誤った情報であるかを判別可能なものとなっていればよい。例えば、１回目で設定情報を出力し、２回目では、その情報とＦＦＨとの論理積を出力するようにしてもよい。これらの情報であれば、２回にわたって出力された情報同士を照合することによって、双方の情報の正誤を判断することが可能だからである。
【００３０】
本発明では、初期化レジスタを複数設けても良い。演算部は、制御処理を行う際に、情報の記憶または演算に使用する処理用レジスタを有しており、初期化レジスタへの書き込みの際には、その時点で処理用レジスタに記憶されている値を書き込む。複数の初期化レジスタに対して、必ずしも連続で書き込む必要はなく、それぞれ経過時間が基準時間を超えない所定のタイミングで書き込めばよい。また、複数の初期化レジスタに対して同じ値を書き込む必要もなく、書き込みのタイミングで、それぞれ処理用レジスタに記憶されている値を書き込めばよい。
【００３１】
例えば、予め固定された値を書き込む場合には、一旦、演算部の処理用レジスタに書き込むべき値を設定し（２バイト命令）、その値を初期化レジスタに格納する（３バイト命令）という手順が必要となる。
これに対し、上述のように初期化レジスタに任意の値を書き込むことで、経過時間初期化できるように構成しておけば、規定の値を処理用レジスタに設定する必要がなく、書き込み処理を簡素化することができる。
また、規定の値を処理用レジスタに設定する必要がないということは、書き込みの際に処理用レジスタが従前の値のまま保持されることを意味する。従って、初期化レジスタへの書き込み時に処理用レジスタの値をメモリに退避しておく必要がなくなり、更に処理を簡素化できる利点がある。
【００３２】
本発明は、上述の特徴を必ずしも全て備えている必要はなく、これらの一部を省略したり、適宜、組み合わせたりして備えるものとしてもよい。
【発明を実施するための最良の形態】
【００３３】
本発明の実施例について以下の順序で説明する。
Ａ．装置構成：
Ｂ．主制御基板の構成：
Ｂ１．停電監視回路の構成：
Ｃ．制御処理：
Ｃ１．主制御側電源投入時処理：
Ｃ２．主制御側タイマ割り込み処理：
Ｃ３．サブ統合側処理：
Ｃ４．払出制御基板の制御処理：
Ｄ．効果
Ｅ．変形例：
【００３４】
Ａ．装置構成：
実施例では、パチンコ機として構成した場合の例を示す。
実施例としてのパチンコ機は、遊技媒体に相当する遊技球を、発射し、遊技盤に設けられた入賞口に入賞させることによって、賞球の払出を受ける遊技機である。
パチンコ機が、第１種または複合機と呼ばれる機種の場合、始動入賞口と呼ばれる入賞口に遊技球が入賞すると、乱数を用いた電子的な抽選が行われる。抽選の結果、大当たりとなると、遊技盤に設けられた大入賞口が所定期間、所定回数、開閉し、賞球の払出を受けやすい有利な遊技状態（以下、「大当たり遊技」という）に移行する。
パチンコ機が、第２種または複合機の場合には、遊技球の動きによって機械的に抽選の当落を決定する機構が備えられている。この場合でも、大当たりが発生すると、機種に応じた大当たり遊技に移行する。
【００３５】
図１は実施例としてのパチンコ機１の制御用ハードウェア構成を示すブロック図である。パチンコ機１は、主制御基板１００、払出制御基板２１０、サブ制御基板３１０、装飾図柄制御基板３５０などの各制御基板の分散処理によって制御される。主制御基板１００には、ＣＰＵ１０２、ＲＡＭ１０４、ＲＯＭ１０６などを備えたワンチップマイクロコンピュータが実装されており、ＲＯＭ１０６に記録されたプログラムに従って種々の制御処理を実現する。払出制御基板２１０、サブ制御基板３１０も同様である。
本実施例では、サブ制御基板３１０と装飾図柄制御基板３５０とは別基板として構成しているが、両者を統合した基板としてもよい。この場合、サブ制御基板３１０の機能と装飾図柄制御基板３５０の機能を、複数のＣＰＵの分散処理で実現してもよいし、単独のＣＰＵで実現する構成としてもよい。
また、主制御基板１００と払出制御基板２１０も別基板とせず、両者を統合した基板として構成することもできる。
【００３６】
実施例のパチンコ機１では、種々の不正を防止するため、主制御基板１００への外部からの入力が制限されている。主制御基板１００とサブ制御基板３１０とは単方向のパラレル電気信号で接続されており、主制御基板１００と払出制御基板２１０とは、制御処理の必要上、双方向シリアル電気信号で接続されている。
払出制御基板２１０、サブ制御基板３１０は、それぞれ主制御基板１００からのコマンドに応じて動作する。装飾図柄制御基板３５０は、サブ制御基板３１０からのコマンドに応じて動作する。
【００３７】
パチンコ機１には、主制御基板１００が直接に制御する機構もある。図中には、主制御基板１００が制御する装置の一例として、大当たり遊技において、大入賞口を駆動するための大入賞口ソレノイド４３、および特別図柄表示装置４１を例示した。特別図柄表示装置４１とは、遊技中に主制御基板１００が行った抽選の結果を、所定数のＬＥＤの点灯状態で表示する装置である。
図示しないが、主制御基板１００は、この他にも、普通図柄表示装置、特別図柄保留ランプ、普通図柄保留ランプ、大当り種類表示ランプ、状態表示ランプなどの表示を制御することができる。
【００３８】
また、主制御基板１００には、遊技中の動作を制御するため、種々のセンサからの検出信号が入力される。図中には一例として入賞検出器４２からの入力を例示した。入賞検出器４２とは、始動入賞口への入賞を検出するためのセンサである。主制御基板１００は、入賞検出器４２からの信号に応じて、先に説明した抽選を行い、大当り遊技を実行することができる。主制御基板１００には、他にも種々の入力がなされているが、ここでは説明を省略する。
【００３９】
遊技時におけるその他の制御は、払出制御基板２１０、サブ制御基板３１０を介して行われる。
払出制御基板２１０は、遊技中の遊技球の発射および払い出しを次の手順で制御する。
遊技球の発射は、直接的には発射制御基板４７によって制御される。即ち、遊技者が、遊技機正面に備えられた発射用のハンドルを操作すると、発射制御基板４７は操作に応じて発射モータ４９を制御し、遊技球を発射する。遊技球の発射は、タッチ検出部４８によって、ハンドルに遊技者が触れていることが検出されている状況下でのみ行われる。払出制御基板２１０は、発射制御基板４７に対して、発射可否の制御信号を送出することで、間接的に球の発射を制御する。
【００４０】
遊技中に入賞した旨のコマンドを主制御基板１００から受信すると、払出制御基板２１０は、賞球払出装置２０内の払出モータ２１を制御し、払出球検出器２２によって球数をカウントしながら規定数の球を払い出す。払出モータ２１の動作は、モータ駆動センサ２３によって監視されており、球ガミ、球切れなどの異常が検出された場合、払出制御基板２１０は、表示部４ａにエラーコードを表示する。エラー表示された時には、遊技場の係員が異常を除去した後、操作スイッチ４ｂを操作することで復旧させることができる。
【００４１】
サブ制御基板３１０は、遊技中における音声、表示、ランプ点灯などの演出を制御する。サブ制御基板３１０は、これらの制御を実行するためのＣＰＵ、ＲＡＭ、ＲＯＭを備えたマイクロコンピュータとして構成されている。これらの演出は、通常時、入賞時、大当たり時など、遊技中のステータスに応じて変化する。主制御基板１００から、各ステータスに応じた演出用のコマンドが送信されると、サブ制御基板３１０は、各コマンドに対応したプログラムを起動して、主制御基板１００から指示された演出を実現する。
音声およびランプ点灯はサブ制御基板３１０が直接制御するが、ＬＣＤ１６の表示については、装飾図柄制御基板３５０を介して制御する。
【００４２】
サブ制御基板３１０の制御対象となるランプには、遊技盤面に設けられたパネル装飾ランプ１２と、枠に設けられた枠装飾ランプ３１がある。サブ制御基板３１０は、ランプ中継基板３２、３４を介して、パネル装飾ランプ１２および枠装飾ランプ３１と接続されており、各ランプを個別に点滅させることができる。
図示を省略したが、スピーカ２９を制御するため、サブ制御基板３１０には、音源ＩＣおよびアンプが備えられている。ＣＰＵが、スピーカ２９から出力する音声を決めて音声出力コマンドを出力すると、音源ＩＣが予め用意された音源データから指定されたものを再生し、アンプで増幅してスピーカ２９から出力する。
【００４３】
また、サブ制御基板３１０は、遊技中の演出の他、エラー時、不正行為その他の異常が生じた時には、警報音を出力したり、ランプを警告用に点灯したりして、異常発生を報知する。主制御基板１００のＲＡＭ１０４の内容を消去するためのＲＡＭクリアスイッチが操作された時にも、同様に報知音が出力される。
警報音には、例えば、遊技中の効果音とは明らかに異なるブザー音を用いることができる。警告用のランプ点灯としては、例えば、遊技盤の周囲全体を赤く点滅させるなど、遊技中とは明らかに異なる態様での点灯・点滅をさせることができる。
【００４４】
Ｂ．主制御基板の構成：
図２は主制御基板１００上のワンチップマイクロコンピュータの回路構成を示す説明図である。主要な部分についてブロック図を示した。
ＣＰＵ１０２内には、第１レジスタ１１０および第２レジスタ１２０が設けられている。第１レジスタ１１０、第２レジスタ１２０は同じ構成であり、内部には種々の処理用レジスタが含まれる。
ＣＰＵ１０２は、処理の過程で、第１レジスタ１１０および第２レジスタ１２０のいずれかを選択的に使用する。つまり、第１レジスタ１１０を使用しながら処理を進めている間は、第２レジスタ１２０の内容は従前の状態のまま保持される。逆に、第２レジスタ１２０を使用しながら処理を進めている間は、第１レジスタ１１０の内容は従前の状態のまま保持される。使用するレジスタは、切換コマンドによって切り換え可能である。
本実施例では、後述する通り、制御処理は主制御側ループ処理と、主制御側タイマ割り込み処理から構成されている。従って、主制御側ループ処理を実行する際には第１レジスタ１１０を使用し、主制御側タイマ割り込み処理を実行する際には第２レジスタ１２０を使用するように切り換えるものとした。こうすることにより、従前の処理におけるレジスタの内容を保持しながら、それぞれの処理を実行することが可能となる。
【００４５】
クロック１５３は、所定周期の矩形波を出力する回路である。タイマ回路１５２は、クロック１５３からの矩形波数をカウントして時間を計測し、所定の時間ごとにＩＮＴ優先順位制御回路１５１に、内部ＩＮＴ信号を出力する。ＩＮＴ優先順位制御回路１５１は、オペレータのスイッチ操作などによって、ＣＰＵ１０２のＩＮＴ端子に入力される外部ＩＮＴと、タイマ回路１５２から入力される内部ＩＮＴとに基づいて、割込信号ＩＮＴをＣＰＵ１０２に入力する。こうすることによって、外部からの割込だけでなく、所定の周期でＣＰＵ１０２に割込をかけることが可能となる。
ＩＮＴ優先順位制御回路１５１は、種々の構成を採ることが可能であるが、最も単純な構成としては、外部ＩＮＴと内部ＩＮＴのオアによって割込信号ＩＮＴを出力する回路とすることができる。
【００４６】
クロック１５３からの矩形波は、ＷＤＴ制御回路１５４にも入力される。ＷＤＴ制御回路１５４は、ウォッチドッグタイマ（以下、「ＷＤＴ」と記すこともある）を制御する回路である。ウォッチドッグタイマの機能として、ＷＤＴ制御回路１５４は、クロック１５３からの矩形波をカウントして時間を計測し、初期化レジスタ１５７、１５８のいずれかに動作モードに応じた適切な値の書き込みが行われることなく、所定の基準時間が経過した時にはリセット信号をＣＰＵ１０２に出力する。初期化レジスタ１５７、１５８のいずれかに値が書き込まれた場合には、時間の計測を初期化する（以下、この処理を「経過時間初期化」と呼ぶ）。
ＣＰＵ１０２は、ＷＤＴ制御回路１５４から、ウォッチドッグタイマのタイマ値を入力することが可能となっている。図の例では、ＣＰＵ１０２とＷＤＴ制御回路１５４とが直接、タイマ値を授受するように示したが、タイマ値は、内部バス１５０を介してＣＰＵ１０２に出力するようにしてもよい。
【００４７】
本実施例では、ＷＤＴ制御回路１５４は、循環モードと単純モードという２つの動作モードで経過時間初期化を実行可能である。
循環モードは、初期化レジスタ１５７を構成する３つのレジスタ１５７ａ、１５７ｂ、１５７ｃの全てに値が書き込まれた時に、経過時間初期化を行うモードである。書き込む値は任意の値でよい。また、書き込み順序も問わない。もっとも、循環モードにおいて、書き込むべき値を固定したり、書き込み順序を固定したりしてもよい。
単純モードは、初期化レジスタ１５８に規定の値が書き込まれた時に、経過時間初期化を行うモードである。本実施例では、循環モード用の初期化レジスタ１５７とは別に単純モード用の初期化レジスタ１５８を設ける構成としたが、循環モード用の初期化レジスタ１５７の一部を単純モードで使用する構成としてもよい。また、本実施例では、任意の値を書き込むものとしたが、規定の値を書き込み可能としてもよい。
【００４８】
ＷＤＴ制御回路１５４の動作モード、ＣＰＵ１０２にリセット信号が出力されるまでの基準時間は、コントロールレジスタ１５６に設定される。単純モードにおいて固定値で初期化を行うものとする場合には、初期化レジスタ１５８に書き込むべき固定値も設定可能としてもよい。
ＷＤＴ制御回路１５４の動作モード等は、制御処理を開始した後、一旦、設定したら変更することができない構成としてもよい。設定が完了した後は、コントロールレジスタ１５６への書き込みコマンドを無視するような構成としておけばよい。こうすることにより、ＷＤＴ制御回路１５４の設定が、不正に変更されたり、ノイズ等の影響で変わってしまったりすることを回避できる。
逆に、ＷＤＴ制御回路１５４の動作モード等を、制御処理中に変更可能としてもよい。設定が完了した後も、コントロールレジスタ１５６への書き込みを許容すればよい。こうすることによって、制御処理の内容に応じて、単純モードおよび循環モードのそれぞれの利点を活かした使い分けが可能となる。
【００４９】
ＷＤＴ制御回路１５４には、特殊な設定も設けられている。設定値としてコントロールレジスタ１５６に値００Ｈを２回書き込んだ時には、ウォッチドッグタイマを起動禁止とすることができる。ウォッチドッグタイマを使用せずに制御処理を組み込む場合に、ノイズ等の影響によって誤ってウォッチドッグタイマが起動することを回避することができる。
かかる構成に代えて、値００Ｈを２回書き込むことによって、一時的にウォッチドッグタイマの機能を停止させられるようにしてもよい。この場合は、例えば、制御処理中に、改めて設定値をコントロールレジスタ１５６に書き込むことによって、ウォッチドッグタイマを再起動可能とすればよい。こうすることによって、不要な場合には、ウォッチドッグタイマを停止させておくことができる。従って、初期化レジスタ１５７、１５８に書き込みを行う処理を省略できる分、処理を簡素化することができる。
これに対し、ＷＤＴ制御回路１５４は、一旦、起動したら電源遮断後の再投入等によるリセット操作以外では停止できないよう構成してもよい。例えば、一旦、起動した後は、初期化レジスタ１５７、１５８への書き込み以外は、外部からの情報を受け付けないよう構成しておくことによって実現できる。こうすることにより、ノイズ等の影響で、誤ってＷＤＴ制御回路１５４が停止してしまうことを回避することができる。
【００５０】
ＣＰＵ１０２は、内部バス１５０を通じて、ＲＡＭ１０４、ＲＯＭ１０６にアクセス可能である。内部バス１５０は、アドレスバスおよびデータバスおよびリード／ライトなど、ＲＡＭ１０４、ＲＯＭ１０６へのアクセスに必要な通信線一式の総称である。
また、ＣＰＵ１０２は、同様に内部バス１５０を通じて、以下に示す種々のレジスタにアクセスすることも可能である。
【００５１】
ＰＤＭ［１］、［２］は、パラレルポート１５５［１］、１５５［２］を介して授受するデータを格納しておくためのレジスタである。ＰＤＭ［１］、［２］には、それぞれパラレルポート１５５［１］、１５５［２］が接続されている。ＣＰＵ１０２は、内部バス１５０を介してＰＤＭ［１］、［２］にアクセスすることにより、パラレルポート１５５［１］、１５５［２］を通じて外部とデータの授受を行うことが可能となる。
ＰＳＭは、パラレルポート１５５［１］、１５５［２］を通じたデータ授受の方法の設定値を記憶するレジスタである。
【００５２】
ＲＤＭは、遊技中の抽選に用いられる乱数の最大値、更新方式など乱数発生に関する種々の情報を設定しておく乱数発生器設定用レジスタである。
ＲＮＤは、乱数値を読み出し用に記憶しておく乱数値レジスタである。
本実施例の主制御基板１００に実装されたワンチップマイコンは、ＲＡＭ１０４、ＲＯＭ１０６等の内蔵されたデバイスとＣＰＵ１０２との間で、内部バス１５０を通じて授受される信号が、端子から外部に出力されるように許可したり、この出力を遮断したりする機能を有している。
【００５３】
Ｂ１．停電監視回路の構成：
主制御基板１００は、停電監視回路を備えている。停電監視回路は、賞球の入賞などを検出するための検出スイッチに供給される検出スイッチ供給電圧の低下、および制御基板に供給される制御基板供給電圧の低下とを監視する回路である。これらの電圧のいずれか一方が、予め定めた電圧より低くなると停電予告信号をＣＰＵ１０２に出力する。
【００５４】
検出スイッチ供給電圧および制御基板供給電圧を監視する理由は次の通りである。
本実施例では、検出スイッチ供給電圧が瞬停、即ち瞬間的に電圧が低下する状態となると、検出スイッチは、遊技球が入賞した信号を出力した状態となるよう構成されている。この結果、ＣＰＵ１０２は、検出スイッチ供給電圧の瞬停が生じた時には、入賞していないにも関わらず入賞があったかのうように誤った検出信号に基づいて遊技を進行してしまう。かかる特性は、不正行為に利用されるおそれがある。従って、停電監視回路が検出スイッチ供給電圧を監視することによって、意図的に瞬停を生じさせる不正行為を防止することが可能となる。
制御基板供給電圧が瞬停した場合には、ＣＰＵ１０２にリセットがかかるため、初期値更新型のカウンタは初期値０からスタートする。このため、所定間隔ごとに制御基板供給電圧を瞬停させることで、カウンタが大当り判定値となるタイミングを意図的にコントロールする不正行為を行うことができる。従って、停電監視回路が制御基板供給電圧を監視することによって、かかる不正行為を防止することが可能となる。
停電監視回路が出力する停電予告信号は、通常、パチンコ機の電源断時にＣＰＵ１０２に入力される信号である。従って、停電監視回路が瞬停による不正行為を検出して停電予告信号を発すると、ＣＰＵ１０２は、電源断時に行う停電処理を行うことにより、瞬停による不正行為に影響されずに遊技を継続することができる。
【００５５】
図３は、停電監視回路１８０の構成を示す説明図である。
停電監視回路１８０は、安定化電源回路１８１、コンパレータ１８２、Ｄタイプフリップフロップ１８４を備えて構成されている。
【００５６】
安定化電源回路１８１の基準電圧入力端子であるＲＥＦ端子及びカソード端子であるＫ端子は、＋５Ｖと抵抗Ｒ１を介して電気的に接続されており、この抵抗Ｒ１によりＲＥＦ端子に入力される電流が制限されている。Ｋ端子はコンパレータ１８２の比較基準電圧となるリファレンス電圧Ｖｒｅｆ（本実施形態では、２．４９５Ｖが設定されている。）を出力している。このリファレンス電圧Ｖｒｅｆは、グランドと接地されたコンデンサＣ１によりリップル（電圧に畳重された交流成分）が除去されて平滑化されている（コンデンサＣ１は、ローパスフィルタとしての役割も担っている）。安定化電源回路１８１のアノード端子であるＡ端子はグランド（ＧＮＤ）と接地されている。
【００５７】
コンパレータ１８２のうちの一つであるコンパレータ１８２［０］は検出スイッチ供給電圧（＋１８Ｖ）の監視電圧Ｖ１とリファレンス電圧Ｖｒｅｆとを比較するために用いられており、＋端子に監視電圧Ｖ１が入力され、−端子にリファレンス電圧Ｖｒｅｆが入力されている。コンパレータ１８２［１］は、制御基板供給電圧（＋９Ｖ）の監視電圧Ｖ２とリファレンス電圧Ｖｒｅｆとを比較するために用いられており、＋端子に監視電圧Ｖ２が入力され、−端子にリファレンス電圧Ｖｒｅｆが入力されている。
本実施例では、２つのコンパレータ１８２［０］、１８２［１］を用いて検出スイッチ供給電圧および制御基板供給電圧の停電または瞬停を監視するものとしているが、いずれか一方のみを監視するようにしてもよい。
コンパレータ１８２での比較結果はＤタイプフリップフロップ１８４に入力されている。
Ｄタイプフリップフロップ１８４は、２つのＤタイプフリップフロップ回路１８４［０］、１８４［１］を備えており、その１つ（１８４［１］）を本実施形態で用いている。なお、コンパレータ１８２に入力される＋５Ｖは、グランドと接地されたコンデンサＣ２によりリップルが除去されて平滑化されている。また、Ｄタイプフリップフロップ１８４に入力される＋５Ｖは、グランドと接地されたコンデンサＣ３によりリップルが除去されて平滑化されている。
【００５８】
検出スイッチ供給電圧（＋１８Ｖ）の停電又は瞬停の監視は、上述したように、コンパレータ１８２［０］が監視電圧Ｖ１とリファレンス電圧Ｖｒｅｆとを比較することにより行われている。検出スイッチ供給電圧（＋１８Ｖ）は、図３に示すように、抵抗Ｒ２，Ｒ３による抵抗比によって電圧が分配され、グランドと接地されたコンデンサＣ４によりリップルが除去されてコンパレータ１８２［０］の＋端子に入力されている（コンデンサＣ４は、ローパスフィルタとしての役割も担っている）。抵抗Ｒ２，Ｒ３の値は、検出スイッチ供給電圧（＋１８Ｖ）が停電又は瞬停した際に、その電圧が＋１８Ｖから落ち始めて予め設定した停電検知電圧Ｖ１ｐｆ（本実施形態では、１２．５３Ｖに設定されている。）となったときに、監視電圧Ｖ１がリファレンス電圧Ｖｒｅｆと同値になるように設定されている。検出スイッチ供給電圧（＋１８Ｖ）の電圧が停電検知電圧Ｖ１ｐｆより大きいときには、監視電圧Ｖ１がリファレンス電圧Ｖｒｅｆより大きくなり、その結果として論理がロウとなる。このため、コンパレータ１８２はオープンコレクタ出力タイプであるため、プルアップ抵抗Ｒ４により＋５Ｖに引き上げられ、論理がハイとなり、グランドと接地されたコンデンサＣ５によりリップルが除去されてＤタイプフリップフロップ１８４［１］のプリセット端子であるＰＲ端子に入力される（コンデンサＣ５は、ローパスフィルタとしての役割も担っている）。このＰＲ端子が負論理入力であるため、監視電圧Ｖ１がリファレンス電圧Ｖｒｅｆより大きいときには、Ｄタイプフリップフロップ１８４［１］の出力端子であるＱ端子から出力される停電予告信号は停電または瞬停の発生を示す状態（以下、「停電状態」という）とはならない。
【００５９】
検出スイッチ供給電圧（＋１８Ｖ）の電圧が停電検知電圧Ｖ１ｐｆより小さいときには、監視電圧Ｖ１がリファレンス電圧Ｖｒｅｆより小さくなり、その結果として論理がハイとなる。このため、コンパレータ１８２はオープンコレクタ出力タイプであるため、論理がロウとなり、グランドと接地されたコンデンサＣ５によりリップルが除去されてＤタイプフリップフロップ１８４のプリセット端子であるＰＲ端子に入力される。このＰＲ端子が負論理入力であるため、監視電圧Ｖ１がリファレンス電圧Ｖｒｅｆより小さいときには、Ｄタイプフリップフロップ１８４の出力端子であるＱ端子から出力される停電予告信号は停電状態となる。
【００６０】
制御基板供給電圧（＋９Ｖ）の停電又は瞬停の監視は、上述したように、コンパレータ１８２［１］が監視電圧Ｖ２とリファレンス電圧Ｖｒｅｆとを比較することにより行われている。制御基板供給電圧（＋９Ｖ）は、図３に示すように、抵抗Ｒ５，Ｒ６による抵抗比によって電圧が分配され、グランドと接地されたコンデンサＣ６によりリップルが除去されてコンパレータ１８２［１］の＋端子に入力されている（コンデンサＣ６は、ローパスフィルタとしての役割も担っている）。抵抗Ｒ５，Ｒ６の値は、＋９Ｖが停電又は瞬停した際に、その電圧が＋９Ｖから落ち始めて予め設定した停電検知電圧Ｖ２ｐｆ（本実施形態では、７．６４Ｖに設定されている。）となったときに、監視電圧Ｖ２がリファレンス電圧Ｖｒｅｆと同値になるように設定されている。制御基板供給電圧（＋９Ｖ）の電圧が停電検知電圧Ｖ２ｐｆより大きいときには、監視電圧Ｖ２がリファレンス電圧Ｖｒｅｆより大きくなり、その結果として論理がロウとなる。このため、コンパレータ１８２はオープンコレクタ出力タイプであるため、プルアップ抵抗Ｒ４により＋５Ｖに引き上げられ、論理がハイとなり、グランドと接地されたコンデンサＣ５によりリップルが除去されてＤタイプフリップフロップ１８４［１］のプリセット端子であるＰＲ端子に入力される。このＰＲ端子が負論理入力であるため、監視電圧Ｖ２がリファレンス電圧Ｖｒｅｆより大きいときには、Ｄタイプフリップフロップ１８４［１］の出力端子であるＱ端子から出力される停電予告信号は停電状態とはならない。
【００６１】
制御基板供給電圧（＋９Ｖ）の電圧が停電検知電圧Ｖ２ｐｆより小さいときには、監視電圧Ｖ２がリファレンス電圧Ｖｒｅｆより小さくなり、その結果として論理がハイとなる。このため、コンパレータ１８２はオープンコレクタ出力タイプであるため、論理がロウとなり、グランドと接地されたコンデンサＣ５によりリップルが除去されてＤタイプフリップフロップ１８４[1]のプリセット端子であるＰＲ端子に入力される。このＰＲ端子が負論理入力であるため、監視電圧Ｖ２がリファレンス電圧Ｖｒｅｆより小さいときには、Ｄタイプフリップフロップ１８４［１］の出力端子であるＱ端子から出力される停電予告信号は停電状態となる。
【００６２】
なお、Ｄタイプフリップフロップ１８４のＣＬＲ端子には、主制御基板１００のＣＰＵ１０２から、主制御Ｉ／Ｏポートを介して、停電クリア信号が入力されるようになっている。ＣＬＲ端子は負論理入力であるため、ＣＰＵ１０２からの停電クリア信号は、主制御Ｉ／Ｏポートを介してその論理をロウとすることによりラッチ状態を解除するようになっており、このとき、（プリセット端子である）ＰＲ端子に入力された信号を論理反転して（出力端子である）Ｑ端子から出力する。Ｄタイプフリップフロップ１８４は、ＣＬＲ端子に停電クリア信号が入力されると、ラッチ状態を解除するようになっており、このとき、プリセット端子であるＰＲ端子に入力された論理を反転して出力端子であるＱ端子から出力する。
【００６３】
ＣＰＵ１０２からの停電クリア信号の出力がロウになると、主制御Ｉ／Ｏポートを介してその論理がハイとなってＣＬＲ端子に入力される。Ｄタイプフリップフロップ１８４は、ＣＬＲ端子にロウの停電クリア信号が入力されないときには、ラッチ状態をセットするようになっており、ＰＲ端子に論理がロウとなって入力された状態をラッチする。
【００６４】
本実施例において、Ｄタイプフリップフロップ１８４［１］を介して停電予告信号を出力するよう構成した理由は次の通りである。
第１に、停電処理を確実に行うことが可能となる利点がある。つまり、瞬間的な停電の場合には停電予告信号が非常に短いパルスとなる可能性があるが、ラッチしておくことによって、こうしたパルスを見逃すおそれを抑制できるからである。瞬停が生じた後の電源は不安定な状態となる可能性があるため、瞬間的な停電であっても、一旦、停電処理を実行させる方が遊技機を安定的に動作させることができるのである。停電予告信号をソフトウェア的にポーリングすることでラッチを代替させることも可能ではあるが、この方法では、ポーリングのサンプリング周期より短いパルスの停電を見逃してしまう可能性がある。ラッチによれば、短いパルスの停電であっても確実に停電処理を行うことができる利点がある。
【００６５】
第２に、遊技機が用いられるホールの環境次第では、電源投入後の２００ｍｓの待機時間では、電源が安定しない場合も考えられる。例えば、２００ｍｓの待機時間後には、停電予告信号が停電状態となっていなかったとしても、電源が十分に安定していない場合には、その後に停電状態となるおそれもある。停電予告信号をラッチしておくことによって、このように待機時間を越えても、電源が安定していない場合でも、確実に停電処理に移行できるようになる。
【００６６】
第３に、電源が安定していない状態で、停電監視回路が停電予告信号を誤検知した場合には、ラッチしておけば、停電クリア信号によってクリアすることにより、停電状態で出力されることを防ぐことができるため、無用な停電処理を回避することが可能となる。
【００６７】
本実施例のパチンコ機１は、以上で説明したハードウェア構成に基づき、主制御基板１００、払出制御基板２１０、サブ制御基板３１０が、それぞれ制御処理を実行する。以下では、主制御基板１００の制御処理内容を説明する。
【００６８】
Ｃ．制御処理：
Ｃ１．主制御側電源投入時処理：
図４〜５は主制御側電源投入時処理の一例を示すフローチャートである。主制御基板１００のＣＰＵ１０２が電源投入による復電をトリガとして開始・実行する処理である。「復電」は、電源を遮断した状態から電源を投入した状態、停電又は瞬停からその後の電力の復旧した状態も含む。
図４〜５に示した主制御側電源投入時処理は、ＣＰＵ１０２内の第１レジスタ１１０を用いて行われる。
【００６９】
処理が開始されると、ＣＰＵ１０２は、割り込みのモードを設定し、スタックポインタに初期値を設定する（図４のステップＳ１）。スタックポインタは、例えば、使用中のレジスタの内容、サブルーチンを終了して本ルーチンに復帰するときの本ルーチンの復帰アドレスなど、制御処理を進める上で一時的に記憶する種々の情報の格納アドレスをスタックに順次、格納・読み出し可能とするために、スタック中での最新の情報の格納場所を表している。
ＲＡＭ１０４の終端側から先頭側に向けて使用するようにスタック領域を設ける場合には、スタックポインタには初期値としてＲＡＭの終端アドレスを設定することになる。
【００７０】
次に、ＣＰＵ１０２は、ウォッチドッグタイマの設定を行うため、コントロールレジスタ１５６に設定値を書き込む（ステップＳ２）。設定内容としては、循環モード／単純モードの選択、ＣＰＵ１０２にウォッチドッグタイマによるリセットがかかるまでの基準時間が挙げられる。設内データは、これらの設定情報を格納した１バイト長のデータとなっている。
設定データには、この他、単純モードの時に初期化レジスタ１５８に書き込むべき規定値の設定や、循環モードの際に３つの初期化レジスタ１５７ａ〜１５７ｃへの書き込み順序などを含めても良い。
また、本実施例では、設定データとして値００Ｈを設定すると、ウォッチドッグタイマを起動禁止とすることが可能となっている。
【００７１】
コントロールレジスタ１５６への書き込みが終わると、ＣＰＵ１０２は、同じ設定データを再度、コントロールレジスタ１５６に書き込む（ステップＳ３）。そして、この値を前回の設定値、この時点ではステップＳ２で書き込んだ値と比較する（ステップＳ４）。
両者が一致しない場合には、同じ設定値が連続して書き込まれるまで、設定値の書き込み（ステップＳ３）を繰り返し実行する。
ステップＳ３、Ｓ４のループ処理には、回数または時間の上限値を設け、この上限値を超えても同じ設定データ２を２回繰り返して設定できない場合には、ステップＳ１から再度実行させるなどの処理を行うようにしてもよい。
【００７２】
本実施例では、このように同じ設定データが２回書き込まれた時にウォッチドッグタイマを設定・起動できる構成とすることにより、ノイズ等の影響で異常な設定がなされることを回避できる。
上述の例では、同じ設定データを２回繰り返して設定する方法をとったが、２回にわたってコントロールレジスタ１５６に入力するデータは、相互に関連があり、参照することによって、設定データの正誤を判断できるデータであればよい。例えば、１回目のデータのビットを反転させたデータ（ＦＦＨとの排他的論理和）を２回目のデータに用いる方法などが考えられる。
【００７３】
ウォッチドッグタイマの設定および起動が完了すると、ＣＰＵ１０２は、ＷＤＴ制御回路１５４からタイマ値を検出する（ステップＳ５）。そして、ウェイトタイマ処理０によって、所定の待ち時間を経過した後（ステップＳ６）、再び、タイマ値を検出する（ステップＳ７）。この２回で検出されたタイマ値が変化していれば、ウォッチドッグタイマは正常に起動したことが分かる。
ウェイトタイマ処理０（ステップＳ６）における待ち時間は、ウォッチドッグタイマが最低１単位時間だけ更新したことが確認出来る範囲で任意に設定可能である。
タイマ値が変化していない場合には（ステップＳ８）、ウォッチドッグタイマが起動していないと判断し、その回復処理として、ウォッチドッグタイマの設定処理（ステップＳ２以降）を再試行し、ウォッチドッグタイマを再起動させる。
【００７４】
ウォッチドッグタイマが正常に起動していない場合（ステップＳ８）、ウォッチドッグタイマの再起動に代えて、全体の再起動、即ちステップＳ１以降の処理を再度行うようにしてもよい。
また、ウォッチドッグタイマの再起動を行った上で、それでも正常に起動しない場合に、全体の再起動を行うようにしてもよい。
【００７５】
次に、ＣＰＵ１０２は停電クリア信号をロウとする（図５のステップＳ１２）。停電クリア信号をロウにすることにより、電源投入時に主制御基板に設けられた停電監視回路からの停電予告信号をラッチするためのＤタイプフリップフロップのラッチ状態を解除すると共に、それ以前に検知（ラッチ）した停電予告信号をクリアする。ラッチ状態を解除することにより、停電予告信号が継続的に検出（監視）可能な状態に切り替えることができる。
【００７６】
ＣＰＵ１０２は、ウェイトタイマ処理１によって所定の待ち時間を経た後（ステップＳ１４）、停電予告信号の状態を確認し、停電予告信号が停電を示す状態(停電予告信号がロウのとき)となっているか否かを判定する（ステップＳ１６）。停電を示す状態となっている場合には、ウェイトタイマ処理１による待ち時間（ステップＳ１４）を経てから、再度停電予告信号の状態を確認する。
このように、所定の待機時間を経た後に停電予告信号を確認するのは、停電予告信号が、停電又は瞬停によってパチンコ機１への供給電圧が所定の停電予告電圧より低くなった時に出力されるため、電源投入時に遊技機への供給電圧が所定電圧に達するまでは、一定の時間を要するためである。これにより、供給電圧が不安定な状態で、主制御基板の遊技機の制御に関する処理（ループ処理、タイマ割込処理）を実行しないようにすることが可能となる。
【００７７】
停電予告信号が検出されず（ステップＳ１６）、電源電圧に異常がないと判断されたときには、ＣＰＵ１０２は停電クリア信号をハイ（出力を停止）にし（ステップＳ１８）、停電監視回路から出力される停電予告信号を継続的な検出状態からラッチ可能な状態に切り替える。以後、供給電圧が停電予告電圧を下回ったときに、ラッチされた停電予告信号が出力されるようになる。
【００７８】
ＣＰＵ１０２はＲＡＭクリアスイッチが操作されている時は（ステップＳ２０）。ＲＡＭクリア報知フラグＲＣＬに値１をセットし（ステップＳ２２）、操作されていないときには値０をセットする（ステップＳ２４）。ＲＡＭクリアスイッチが操作されると、後述の通り、主制御基板１００のＲＡＭ１０４上の確率変動、未払い出し賞球等の遊技に関する遊技情報が消去されることになる。
【００７９】
次にＣＰＵ１０２はウェイトタイマ処理２で（ステップＳ２６）、装飾図柄制御基板３５０の起動を待つ。但し、主制御基板１００は装飾図柄制御基板３５０から起動完了の通知を受信することはできないため、所定時間経過した時点で起動が完了したものとみなして次の処理を実行することになる。本実施例では、待機時間として２秒（ｓ）が設定されている。
【００８０】
本実施例では、先に説明した通り、上述のウェイトタイマ処理２を行う前に、ＲＡＭクリアスイッチの操作有無を判定している（ステップＳ２０）。ＲＡＭクリアを行う場合には、遊技場の係員は、通常、ＲＡＭクリアスイッチを押下した状態で電源を投入する。従って、ウェイトタイマ処理２を行う前に、ＲＡＭクリアスイッチの操作有無を判断しておくことにより、遊技場の係員が電源投入後、比較的短時間でＲＡＭクリアスイッチの押下をやめてしまった場合でも、誤りなくＲＡＭクリアスイッチの操作の検出が可能となる利点がある。
本実施例においても、ウェイトタイマ処理２の後にＲＡＭクリアスイッチの操作の有無を検出する方法を採ることも可能である。ただし、この場合には、ＲＡＭクリアスイッチの操作が検出される前に、遊技場の係員が押下を中断してしまうおそれがあり、遊技場の係員はＲＡＭクリアを行ったつもりでいても、結果としてＲＡＭクリア処理が行われないまま遊技機の制御処理が開始されるおそれもある。ウェイトタイマ処理２の前にＲＡＭクリアスイッチの操作を検出することによって、こうした弊害を回避することができる。
【００８１】
上述の通り早期にＲＡＭクリアスイッチの操作を確認する場合には、仮に、電源投入に対してＲＡＭクリアスイッチの操作が遅れた場合には、ＲＡＭクリアスイッチが操作される前に、ステップＳ２０の検出処理が完了してしまい、ＲＡＭクリアが正しく行われなくなるおそれもある。
かかる弊害を回避するため、ウェイトタイマ処理２（ステップＳ２６）が完了した後に、再度、ＲＡＭクリアスイッチの操作を検出するようにしてもよい。例えば、後述するステップＳ２８とＳ３０の間に検出処理を設ける方法が考えられる。こうすることによって、ＲＡＭクリアスイッチの操作が電源投入から若干、遅れて行われた場合でも、ＲＡＭクリアを行うことが可能となる。
ＲＡＭクリアスイッチの操作の検出タイミングは、このように種々の設定が可能である。本実施例のように、ウェイトタイマ処理２の前でのみ検出するようにしてもよい。また、ウェイトタイマ処理２の後にのみ行うようにしてもよいし、ウェイト処理２を挟む前後で行うようにしてもよい。
【００８２】
ウェイトタイマ処理２（図５のステップＳ２６）が終わった後の処理について、引き続き説明する。
ＣＰＵ１０２は、ＲＡＭクリア報知フラグＲＣＬが値０である時（図６のステップＳ２８）、即ちＲＡＭクリアスイッチが操作されていない時には、ＲＡＭ１０４に記憶されている遊技情報のチェックサムを算出する（ステップＳ３０）。そして、チェックサムの値が前回の電源断時に予め算出されバックアップされていたチェックサムの値と一致しているか否かを判定する（ステップＳ３２）。
チェックサムが一致しているときには、バックアップフラグＢＫが値１であるか否かを判定する（ステップＳ３４）。バックアップフラグＢＫは、前回の電源断時に、遊技情報、チェックサムの値などが正常にバックアップされていることを表すフラグである。
バックアップフラグＢＫが値１であるときには、ＣＰＵ１０２はバックアップフラグＢＫに値０をセットし、ＲＡＭ１０４にＲＯＭ１０６から読み出した復電時の設定を行う（ステップＳ３６）。また、電源投入時コマンド作成処理、つまりバックアップされていた遊技情報に応じた各種コマンドをＲＡＭ１０４の所定記憶領域に記憶させる処理を行う（ステップＳ３８）。
【００８３】
上述の通り、本実施例では、チェックサムによってバックアップ情報が正常か否かを検査するとともに、バックアップフラグＢＫに基づいて主制御側電源断時処理が正常に終了された否かを検査している。本実施例では、この２重チェックによってバックアップ情報が不正行為により記憶されたものであるか否かを検査しているのである。
【００８４】
一方、ＲＡＭクリア報知フラグＲＣＬが値１のとき（ステップＳ２８）、つまりＲＡＭクリアスイッチが操作されているときには、後述する通りＲＡＭ１０４を初期化する処理を行う。チェックサムの値が一致していないとき、またはバックアップフラグＢＫが値０であるときも同様である（ステップＳ３２、Ｓ３４）。バックアップが正常に行われていないと判断されるからである。
ＲＡＭ１０４の初期化として、ＣＰＵ１０２は、まずＲＡＭ１０４の全領域に値００Ｈを書き込むことによって、ＲＡＭ１０４をクリアする（ステップＳ４０）。この処理によって、大当たり判定用乱数や初期値更新型のカウンタ等の値は初期値００Ｈにセットされる。
次に、ＣＰＵ１０２はＲＯＭ１０６から読み出した初期情報をＲＡＭ１０４にセットする（ステップＳ４２）。
そして、ＣＰＵ１０２はＲＡＭクリア報知を行う（ステップＳ４４）。ＲＡＭクリア報知とは、ＲＡＭクリアが行われたことを報知する音声出力を指示するＲＡＭクリア報知コマンドをサブ制御基板３１０に出力する処理である。コマンドを受け取った時のサブ制御基板３１０の動作は後述する。
【００８５】
以上の処理を完了すると、ＣＰＵ１０２は割り込み初期設定を行い（ステップＳ４６）、タイマ割り込み処理の割り込み周期を設定する。本実施形態では割り込み周期は４ｍｓとした。
ＣＰＵ１０２が割り込み許可設定を行うと（ステップＳ４８）、上述の割り込み周期でタイマ割り込み処理が繰り返し行われるようになる。
【００８６】
次にＣＰＵ１０２は主制御側ループ処理を実行する。
この処理では、ＣＰＵ１０２は、まず初期化レジスタ１５７ａに値を書き込む（ステップＳ５０）。これはウォッチドックタイマを初期化するために必要な処理の一つである。本実施例では、循環モードを使用した場合を例示する。従って、ステップＳ５０での初期化レジスタ１５７ａへの書き込みの他、後述する主制御タイマ割り込み処理において、初期化レジスタ１５７ｂ、１５７ｃに値が順次、設定された時に、ウォッチドックタイマが初期化されるように構成されている。
【００８７】
本実施例では、ステップＳ５０では、初期化レジスタ１５７ａに、任意の値を書き込めばよい。従って、ＣＰＵ１０２は、この処理を実行する時点で、内部の第１レジスタ１１０に記憶されている値をそのまま初期化レジスタ１５７ａに書き込む。
【００８８】
初期化レジスタ１５７ａへの書き込みは任意の値でも許容されるが、予測不能な異常動作が生じるおそれを回避するため、処理上、敢えて固定値を書き込むものとしてもよい。この場合には、処理を簡素化するため、値００Ｈを書き込むようにすることが好ましい。
例えば、初期化レジスタ１５７ａへの書き込み（ステップＳ５０）に先だって、ＣＰＵ１０２に、第１レジスタ１１０に記憶されている値同士の排他的論理和を算出するコマンドを実行させる。同じ値同士の排他的論理和は、値００Ｈとなる。第１レジスタ１１０に値００Ｈその他の任意の値を設定するコマンドは、通常、２バイト命令であるのに対し、排他的論理和を求めるコマンドは１バイト命令である。従って、排他的論理和によって得られた値を書き込む方法を採れば、プログラムサイズを抑えつつ、初期化レジスタ１５７ａに固定値を書き込むことが可能となる。
後述する初期化レジスタ１５７ｂ、１５７ｃへの書き込みも同様である。
【００８９】
図示する通り、主制御側ループ処理はループを構成しているため、ループ処理が正常に繰り返されるとともに、主制御タイマ割り込み処理が周期的に行われる限り、初期化レジスタ１５７ａ〜１５７ｃには、任意の値が順に設定され、ウォッチドッグタイマは常に初期化され続ける。
これに対し、ＣＰＵ１０２の処理に異常が生じると、初期化レジスタ１５７への値の設定が行われなくなる。この状態で、基準時間が経過すると、ＷＤＴ制御回路１５４（図２参照）が異常発生と判断し、リセット信号を出力し、ＣＰＵ１０２にリセットがかかる。この結果、ＣＰＵ１０２は電源投入時の処理（ステップＳ１）から再度実行する。
【００９０】
初期化レジスタ１５７ａに値を設定した後、停電予告信号の入力がないときには（ステップＳ５２）、ＣＰＵ１０２は非当落乱数更新処理を行う（ステップＳ５４）。非当落乱数とは、遊技中に用いられる乱数のうち抽選の当落判定にかかわらない乱数である。かかる乱数としては、例えば、抽選時に行われる変動表示のパターンを選択するための乱数が挙げられる。
ＣＰＵ１０２は、主制御側ループ処理として、以上で説明したステップＳ５０〜ステップＳ５４を繰り返し行う。
【００９１】
一方、停電予告信号が入力されている場合（ステップＳ５２）、ＣＰＵ１０２は主制御側電源断時処理を行う。停電予告信号は、パチンコ遊技機１の電源電圧が停電予告電圧より低くなった時に、出力される信号である。
【００９２】
主制御側電源断時処理では、ＣＰＵ１０２は、まず割り込み禁止設定を行う（ステップＳ５６）。ＲＡＭ１０４のチェックサム算出中に、主制御側タイマ割り込み処理が行われてＲＡＭ１０４への書き込みがなされることを防ぐためである。
ＣＰＵ１０２は、次に停電クリア信号を出力する（ステップＳ５８）。また、遊技盤面に設置された種々のソレノイドやランプ等に出力している駆動信号を停止する。
そして、ＲＡＭ１０４の遊技情報に基づいてチェックサム算出し（ステップＳ６０）、バックアップフラグＢＫに値１をセットする（ステップＳ６２）。これによりバックアップ情報の記憶が完了する。
【００９３】
その後、ウォッチドックタイマの初期化を行って（ステップＳ６４）、無限ループに入ると、電源が遮断されることによりＣＰＵ１０２の動作は停止する。但し、電源が遮断されない場合には、無限ループ内で、ウォッチドックタイマが初期化されなくなるため、所定時間経過後にＣＰＵ１０２にウォッチドッグタイマによるリセットがかかり、ＣＰＵ１０２は主制御側電源投入時処理（ステップＳ１以降）を再び行う。
【００９４】
ここでは、主制御側電源断時処理時には、レジスタをバックアップする必要がない例を示した。バックアップが不要となるのは、次の理由による。つまり、実施例では、主制御側ループ処理のステップＳ５２で、停電予告信号の状態を確認し、この信号が停電となる状態を示している場合に主制御側電源断時処理へ分岐している。停電となる状態とは、例えば、停電時にハイ、非停電時にロウとなる停電予告信号を用いる場合には、停電予告信号がハイとなることを意味する。このように、実施例では、予め決められた条件で、主制御側電源断時処理に移行するため、移行に際して、ループ処理や割込処理が中断されることがない。従って、実施例では、主制御側電源断時処理内でレジスタの内容をＲＡＭ１０４に退避する必要がないのである。
【００９５】
本実施例の方法では、上述の通り、主制御側電源断時処理に移行するタイミングが予め固定されている。従って、主制御側電源断時処理を安定して行うためには、停電予告信号が確認された後も、この処理が完了するまで、ＣＰＵがプログラムを実行可能な電源電圧（Ｖｃｃ）を保持し続ける必要がある。電源電圧（Ｖｃｃ）の保持時間は、最大で、ループ処理において、Ｓ５２で停電でないと判定した後、次のループで停電信号を確認するまでの時間、タイマ割込での最大処理時間（４ｍｓ）、停電処理の開始から完了（無限ループまで）までの処理時間の合計に相当する時間となる。
【００９６】
これに対し、主制御側電源断時処理を任意のタイミングで割込処理として実行する方法を採ることもできる。この場合には、主制御側電源断時処理が実行されるタイミングに応じて、レジスタの内容は異なるため、電源を遮断するまでにＲＡＭ１０４にその内容をバックアップしておくことが好ましい。こうしておくことにより、再度、電源を投入した時に、電源遮断直前の状態からの処理を継続して行わせることが可能となる。
【００９７】
Ｃ２．主制御側タイマ割り込み処理：
図７は主制御側タイマ割り込み処理のフローチャートである。主制御基板１００のＣＰＵ１０２によって、所定の割り込み周期（本実施形態では、４ｍｓ）ごとに繰り返し行われる処理である。
処理を開始すると、ＣＰＵ１０２は、レジスタの退避を行う（ステップＳ７１）。本実施例では、処理に使用するレジスタを第１レジスタ１１０から第２レジスタ１２０に切り換えることによって退避させることができる。
第１レジスタ１１０、第２レジスタ１２０が用意されていない場合には、第１レジスタ１１０の記憶内容を、ＲＡＭ１１６上に格納することで退避させてもよい。
【００９８】
次に、ＣＰＵ１０２は初期化レジスタ１５７ｂ（図２参照）に値を書き込む（ステップＳ７２）。先に説明した通り、本実施例では、任意の値を書き込めばよいため、この時点で、第２レジスタ１２０に記憶されている値を書き込むものとした。初期化レジスタ１５７ａへの書き込み（図６のステップＳ５０）と同様、第２レジスタ１２０の排他的論理和を求めて得られる値（００Ｈ）を書き込むようにしてもよい。
ステップＳ７２の処理を行うことにより、主制御側ループ処理（図６参照）と合わせて、初期化レジスタ１５７ａ、１５７ｂへの書き込みが完了することになる。
以下、ＣＰＵ１０２は、図示する各処理を順次、実行する。これらの処理の実行順序は、図示した順序に限らない。
【００９９】
スイッチ入力処理（ステップＳ７３）はパチンコ機の各種スイッチの信号を入力する処理である。入力する信号としては、遊技盤に設けられた普通入賞口、始動入賞口、大入賞口に入球した遊技球の検出信号、賞球の払出コマンドの受信時に払出制御基板２１０が出力するＡＣＫ信号、などが挙げられる。
【０１００】
タイマ減算処理（ステップＳ７４）は、種々の時間管理に利用されるタイマ値を減算する処理である。初期値が設定されたタイマ値が、この減算処理によって４ｍｓずつ減算され、値０になることで、初期値に相当する時間の経過を検出することができる。タイマ値は、管理対象となる時間ごとに設けられている。管理対象となる時間としては、例えば、変動表示パターンに従って種々の図柄表示装置が点灯する時間や、払出制御基板２１０からのＡＣＫ信号を入力するまでの所要時間などが挙げられる。
【０１０１】
当落乱数更新処理（ステップＳ７５）は、遊技中に抽選等に利用される種々の乱数値をカウントアップ等する処理である。本実施例では、抽選等の度に乱数を発生させる方法ではなく、ステップＳ７５の処理によって、種々の乱数値を値１ずつカウントアップする方法をとっている。このように乱数を規則的に変化させたとしても、入賞口への入球など、各乱数を使うことになるイベントが不規則に発生するため、十分、抽選用の乱数として機能するのである。カウントアップに加えて、乱数が一巡したときには、乱数の初期値を切り換える処理も併用している。
ここで更新される乱数としては、例えば、大当たりの判定に使用される大当たり判定用の乱数、および大当たり時の図柄を決定するための大当たり図柄用の乱数が挙げられる。また普通図柄に関しては、普通図柄の当たり判定に使用される普通図柄当り判定用乱数などが挙げられる。
【０１０２】
賞球制御処理（ステップＳ７６）は、払出制御基板２１０へのコマンド送出処理である。例えば、遊技球が入賞した時には、遊技球を払い出す旨を払出制御基板２１０に指示する賞球コマンドを作成し、払出制御基板２１０に送信する。また、払出制御基板２１０からＡＣＫ信号が所定時間内に入力されないときには、払出制御基板２１０との接続状態を確認するためのセルフチェックコマンドなどを作成し、払出制御基板２１０に送信する。
【０１０３】
枠コマンド受信処理（ステップＳ７７）は、パチンコ機１の枠側に取り付けられている払出制御基板２１０から送信されるコマンドを主制御基板１００で受信する処理である。払出制御基板２１０のコマンドには、例えば賞球ユニットが球がみを起こして遊技球を払い出せないなどの異常を表す状態コマンドが挙げられる。
【０１０４】
不正行為検出処理（ステップＳ７８）は、入賞口への入賞に関する異常状態を確認し報知する処理である。例えば、大当たり遊技状態でないときに大入賞口に遊技球が入球したのを検知した場合には、ＣＰＵ１０２は異常と判断して入賞異常報知コマンドを作成し、サブ制御基板３１０に出力する。
【０１０５】
特別図柄及び特別電動役物制御処理（ステップＳ７９）では、ＣＰＵ１０２は、まず始動入賞口への入賞検出に応じて、大当たり判定用の乱数を予め記憶されている判定値と比較して、大当たりか否かを判定する。また、判定結果に応じて、図柄用および変動表示用の乱数値に基づいて、表示すべき図柄およびその変動パターンを決定し、その演出を行わせるための遊技演出コマンドを作成する。大当たりと判定されたときは、図柄変動の停止後に遊技盤の大入賞口の開閉板を開閉動作させる駆動信号を出力する。
【０１０６】
普通図柄及び普通電動役物制御処理（ステップＳ８０）でも同様に、ＣＰＵ１０２は、普通図柄当り判定用乱数に基づく当たり判定、普通図柄の変動制御および当たり時において入賞口の開閉翼を開閉動作させるための開閉翼ソレノイドの駆動制御を行う。
【０１０７】
ポート出力処理（ステップＳ８１）は、上述の種々の処理で説明した信号を、主制御Ｉ／Ｏポートの出力端子から出力する処理であり、サブ統合基板コマンド送信処理（ステップＳ８２）は、上述の種々の処理で設定した演出制御用のコマンドをサブ制御基板３１０に出力する処理である。
本実施例では、ＣＰＵ１０２は、上述の各処理の実行時には、それぞれ出力すべき情報およびコマンドを設定してＲＡＭ１０４に記憶させておき、ポート出力処理およびサブ統合基板コマンド送信処理において、ＲＡＭ１０４から情報・コマンドを読み出して出力する方法をとっている。
【０１０８】
ＣＰＵ１０２は、以上の処理を終えた後、初期化レジスタ１５７ｃに値を書き込む（ステップＳ８３）。この値も任意の値でよいため、この時点で、第２レジスタ１２０に記憶されている値を書き込めばよい。初期化レジスタ１５７ａへの書き込み（図６のステップＳ５０）と同様、第２レジスタ１２０の排他的論理和を求めて得られる値（００Ｈ）を書き込むようにしてもよい。
【０１０９】
ステップＳ８３の処理を行うことにより、主制御側ループ処理（図６参照）と合わせて、初期化レジスタ１５７ａ、１５７ｂ、１５７ｃへの書き込みが完了するため、ウォッチドックタイマが初期化される。
本実施例では、このように主制御側ループ処理（図６参照）と、主制御側タイマ割り込み処理（図７）にわたって、初期化レジスタ１５７ａ〜１５７ｃへの書き込みを行う。いずれの処理に異常が生じた場合でも、初期化レジスタ１５７ａ〜１５７ｃの一部または全部への値の書き込みが欠けるため、ウォッチドッグタイマによりＣＰＵにリセットがかかることになる。従って、主制御側ループ処理（図６参照）または主制御側タイマ割り込み処理（図７）の一方のみで、初期化レジスタ１５７ａ〜１５７ｃへの書き込みを行う場合に比較して、異常が生じた場合の回復処理を安定的に行わせることが可能となる。
【０１１０】
以上の処理を完了すると、ＣＰＵ１０２は、レジスタを復帰させて（ステップＳ８４）、割込許可設定を行って（ステップＳ８５）、このルーチンを終了する。
レジスタの復帰は、本実施例では、第２レジスタ１２０から第１レジスタ１１０への切換を行えばよい。ステップＳ７１において、ＲＡＭの所定領域にレジスタの値を退避した場合には、ステップＳ８４では、これらの値をＲＡＭから読み出し、それぞれを対応する各レジスタに再設定すればよい。
【０１１１】
Ｃ３．サブ統合側処理：
サブ制御基板３１０は、主制御基板１００からのコマンドに応じて、種々の演出制御を行う。
図示を省略するが、サブ制御基板３１０が実行する処理も、主制御側ループ処理（図６）と同様のループと、主制御側タイマ割り込み処理（図７）と同様の割込処理から構成される。サブ制御基板３１０は２ｍｓ周期で割り込み処理を実行するとともに、１６ｍｓ周期で「１６ｍｓ定常処理」を実行する。
この１６ｍｓ定常処理では、主制御基板１００からの各種コマンドを解析するコマンド解析処理、パネル装飾ランプ１２、枠装飾ランプ３１（図１参照）の点灯制御を行うランプ処理、演出用の音声や警報音などの出力処理、装飾図柄制御基板３５０を介してＬＣＤ１６に演出用の画面を表示させる処理、これらの処理が正常に行われていることを監視するウォッチドックタイマ処理、および役物の駆動パターンをスケジューラにセットする処理等を行う。
【０１１２】
サブ制御基板３１０は、１６ｍｓ定常処理を繰り返し実行する他、種々の割り込み処理を行う。かかる割り込み処理としては、２ｍｓタイマ割り込み、コマンド受信割り込み処理、コマンド受信終了割り込み処理があげられる。
【０１１３】
Ｃ４．払出制御基板の制御処理：
払出制御基板２１０は、主制御基板１００からの指示に従って、遊技媒体の払い出しを制御する。
払出制御基板２１０が実行する制御処理は、主制御基板１００と同様、ループ状のメイン処理とタイマ割込処理とから構成することも可能であるが、本実施例では、メイン処理内で払出に必要な処理を繰り返し実行するものとした。
【０１１４】
Ｄ．効果
（１）  以上で説明した実施例のパチンコ機１によれば、初期化レジスタ１５７に任意の値を書き込めばよいため、書き込み処理を簡素化することができ、プログラムサイズを低減させることができる利点がある。
【０１１５】
図８は初期化レジスタ１５７への書き込み時の処理内容を示す説明図である。
図８（ａ）には固定値Ｖａを書き込む場合の処理内容を示した。書き込みには、第１レジスタ１１０または第２レジスタ１２０に含まれるＡレジスタを用いるものとする。
ＣＰＵ１０２は、まず従前のＡレジスタの値を、ストア（ＳＴ）命令によって、アドレスｎｎＨで示されるメモリ上の領域に退避する（ステップＳ５０ａ）。この時、図の右側に示す通り、Ａレジスタの値は、従前の値Ｖ１が格納されている。
次に、ＣＰＵ１０２は、初期化用の設定値Ｖａを、ロード（ＬＤ）命令によって、Ａレジスタに設定する（ステップＳ５０ｂ）。図の右側に示す通り、この処理によって、Ａレジスタの値は、Ｖａに書き換えられる。
【０１１６】
そして、ＣＰＵ１０２は、Ａレジスタの値を初期化レジスタ１５７ａに書き込む（ステップＳ５０ｃ）。図中では、初期化レジスタ１５７を、「ＷＣＬ」と表した。この書き込みは、ロード（ＬＤ）命令によっても実現可能であるが、ここでは、説明の便宜上、書き込みは全てストア（ＳＴ）命令で示した。
書き込みを終えると、ＣＰＵ１０２は、アドレスｎｎＨのメモリ領域から、ステップＳ５０ａで退避した値Ｖ１を読み出し、Ａレジスタに復帰する（ステップＳ５０ｄ）。図の右側に示す通り、この時点で、Ａレジスタの値はＶ１に回復する。
【０１１７】
固定値Ｖａを初期化レジスタに書き込む場合には、上述の通り、４ステップの処理が必要となる。ストア（ＳＴ）命令およびロード（ＬＤ）命令は、３バイト命令であるから、書き込みのためには１１バイトを要する。また、スタックを用いて、Ａレジスタの値の退避（ステップＳ５０ａ）／復帰（ステップＳ５０ｄ）を行うことによって、退避コマンド（ＰＵＳＨ）／復帰コマンド（ＰＯＰ）がそれぞれ１バイト命令で済ませることができるとしても、書き込みのためには７バイトを要することになる。
【０１１８】
図８（ｂ）には任意の値を書き込む場合の処理内容を示した。
この処理では、ＣＰＵ１０２は、初期化レジスタ１５７に、Ａレジスタの値を書き込むだけで済む。初期化レジスタ１５７に設定すべき固定値をＡレジスタに設定する必要がないため、図８（ａ）のステップＳ５０ｂの処理は不要となる。また、Ａレジスタの値が書き換えられないため、Ａレジスタの退避／復帰（図８（ａ）のステップＳ５０ａ、Ｓ５０ｄ）の処理も不要となる。このように、任意の値を書き込む場合には、初期化レジスタ１５７への書き込み処理は、固定値を書き込む場合の１／４のプログラムサイズで済むことになる。
【０１１９】
（２）  本実施例のパチンコ機１では、主制御側電源投入時処理（図４）において、ウォッチドッグタイマに対して、設定データを２回にわたって出力することで（ステップＳ２、Ｓ３）、設定および起動を行っている。このため、ウォッチドッグタイマが、誤った設定がなされたり、異常な状態で起動されたりすることを回避できる。
また、ＣＰＵ１０２は、ステップＳ５〜７の処理によって、ウォッチドッグタイマが正常に起動していることを確認する。こうすることによって、ウォッチドッグタイマが誤って起動しないままで制御処理が行われることを回避できる。従って、制御処理に異常が生じた時には、ウォッチドッグタイマの作用によって適正にリセットがかかるため、異常からの復旧を安定的に行うことが可能となる。
【０１２０】
Ｅ．変形例：
Ｅ１．変形例（１）：
実施例では、ウォッチドッグタイマを、起動後に設定（図４のステップＳ２〜Ｓ４）した動作モードで一貫して使用する場合を例示した。これに対して、ウォッチドッグタイマの動作モードを途中で切換可能な構成としてもよい。
【０１２１】
図９は変形例（１）における主制御側電源投入時処理のフローチャートである。図６のステップＳ４８に続く処理を示した。
変形例では、処理を開始した後、実施例（図４）と同様の処理によって、ウォッチドッグタイマの設定を行う。この際、ステップＳ２〜Ｓ４では、単純モードに設定する。併せて、初期化レジスタ１５８に書き込むべき値も設定する。
この状態で、ＣＰＵ１０２は、図５、５に示す処理を実行する。
単純モードでは、主制御側ループ処理（図６参照）を開始するまでの所要時間に余裕を持たせた値を、ウォッチドッグタイマの基準値として設定しておくことが好ましい。こうすることによって、主制御側ループ処理が開始されるまでの間は、初期化レジスタ１５８への書き込みを省略することが可能となる。
【０１２２】
変形例では、図６のステップＳ４８の処理が完了すると、図９に示す処理に移行し、ウォッチドッグタイマの動作モードを循環モードに切り換える。この場合は、コントロールレジスタ１５６に、循環モードの設定データを２回書き込めばよい（ステップＳ４９ａ〜Ｓ４９ｃ）。書き込みが行われると、ウォッチドッグタイマは、循環モードで起動する。
また、このように動作モードの切換を行った後、ＣＰＵ１０２は実施例（図４）と同様、ウォッチドッグタイマのタイマ値の変化の有無に基づいて、ウォッチドッグタイマが正常に起動したか否かを判断する（ステップＳ４９ｄ〜Ｓ４９ｇ）。
【０１２３】
ＣＰＵ１０２は、タイマ値に変化がない場合は、ウォッチドッグタイマが正常に起動していないものと判断し、循環モードの再設定（ステップＳ４９ａ）以降の処理を再度実行する。実施例（図４）と同様、全体の再起動（図４のステップＳ１以降の処理の再試行）を行うようにしてもよい。ただし、変形例では、循環モードの設定を行うまでに行った処理（図４〜図６）が無駄になることを回避するため、全体の再起動は、循環モードの再設定を行ってもウォッチドッグタイマが正常に起動しない場合に限定して行うことが好ましい。
単純モードでの起動時（図４のステップＳ２〜４）で、ウォッチドッグタイマが正常に起動することが確認済みであるから、循環モードの設定・起動時（図９のステップＳ４９ａ〜Ｓ４９ｃ）では、正常に起動するものと考え、起動の確認（ステップＳ４９ｄ〜４９ｇ）を省略してもよい。
【０１２４】
変形例の処理によれば、ウォッチドッグタイマの動作モードを切り換えることができる。
循環モードには、経過時間初期化のために、初期化レジスタ１５７ａ〜１５７ｃへの値の書き込みが必要である。経過時間初期化するための処理が煩雑になる分、誤った経過時間初期化を回避でき、安定的な動作をさせることができる利点がある。また、主制御側ループ処理（図６）および主制御側タイマ割込処理（図７）の双方にわたって、初期化レジスタ１５７ａ〜１５７ｃへの書き込みを行うことによって、双方の処理のいずれで異常が発生しても対処できる利点がある。
一方、単純モードとは、初期化レジスタ１５８への値の書き込みによって経過時間初期化が可能である。誤った経過時間初期化が行われる可能性は循環モードよりも高いが、経過時間初期化するための処理が簡易であるという利点がある。
変形例では、主制御側ループ処理（図６）が開始されるまでの間は、比較的簡易な動作モードである単純モードを用い、主制御側ループ処理（図６）および主制御側タイマ割込処理（図７）が開始された後は、双方の異常に総合的に対処可能な循環モードを用いる。このように、２つの動作モードを切り換えることによって、それぞれの処理内容に適した状態でウォッチドッグタイマを稼働させることができる。
【０１２５】
変形例において、循環モードの起動確認時（ステップＳ４９ｇ）に異常と判定された場合には、再びＷＤＴコントロールレジスタに単純モードの設定を書き込むことで、循環モードによる設定を中止し単純モードに切り替えてもよい。電源投入直後において単純モードで正常に動作することは確認されているため、循環モードを中止して単純モードを引き続き使用するよう設定することによって、速やかにウォッチドッグタイマを起動させることができる。単純モードを引き続き使用する場合には、既に正常に動作することが確認されているため、ステップＳ４９ｄ〜Ｓ４９ｇの起動確認は省略してもよい。
【０１２６】
Ｅ２．変形例（２）：
実施例および変形例では、タイマ値の変化によってウォッチドッグタイマが正常に起動しているか否かを判断する例を示した。これに対し、ＷＤＴ制御回路１５４から稼働中か否かを示すフラグなどの情報を出力可能な構成としてもよい。例えば、フラグのデフォルト値として値０を設定しておき、正常に稼働した場合には、値１に変更するように構成しておく方法が考えられる。ＣＰＵ１０２は、このフラグの値を参照することにより、容易かつ速やかに、ウォッチドッグタイマの稼働状況を確認することが可能となる。
このフラグは、ソフトウェア的に構成してもよいが、ハードウェア的に構成する方が好ましい。
【０１２７】
また、このフラグはウォッチドッグタイマが起動した後も、ソフトウェア的に０に書換可能としてもよい。ウォッチドッグタイマが正常に稼働している時は、このフラグが再び値１に変更されることになる。こうすることにより、電源投入時だけでなく定期または不定期にこのフラグを確認すれば、定常的にウォッチドッグタイマの稼働状況を容易に判別することができる。
【０１２８】
この場合、定期的なタイミングとしてはタイマ割込毎、主制御側ループ処理の開始毎とすることができる。また、不定期なタイミングとしては、入賞口、始動口等への入賞タイミング、変動開始時、図柄停止時、大当たり時等の所定のイベントが生じた時点としてもよいし、これらのイベントと無関係にランダムなタイミングで確認するようにしてもよい。例えば、確認タイミングを決定するための専用乱数を設け、この乱数が特定の値となった場合に、フラグの確認を行う方法が考えられる。ただし、不定期に確認を行わせるためには、この乱数は、高速で更新されるハード乱数か、ソフト的に定期的に更新されるような乱数の場合には、ランダムな数列となるような乱数としておく必要がある。
【０１２９】
Ｅ３．変形例（３）：
実施例および変形例では、クロック１５３からの矩形波を計数することによって計時を行うディジタルタイマを備える場合を例にとって、タイマ値の変化によりウォッチドッグタイマが正常に起動しているか否かを確認する例を示した。
ウォッチドッグタイマは、コンデンサ（Ｃ）と抵抗（Ｒ）の組み合わせ回路、いわゆるＲＣ回路を用いてアナログで構成することもできる。ＲＣ回路の電圧は、電圧印加開始後の時間とともに、時定数に応じた一定の変化を示すことが知られているから、この電圧値が、基準時間に対応する所定電圧レベルに達した時に、演算部の動作をリセットするよう構成すればよい。この場合には、初期化レジスタへの書き込みが行われた時には、コンデンサ（Ｃ）を放電させる処理を行うことによって、初期化することができる。また、リセットがかかるまでの基準時間は、ＲＣ回路の時定数を設定する方法（例えば、可変抵抗器等を用いる方法）、リセットをかける際の基準となる電圧レベルを設定によって変更する方法などによって、調整することが可能である。
変形例（３）では、このようなアナログのウォッチドッグタイマを用いた場合に、正常に起動しているか否かを確認する方法を示す。
【０１３０】
図１０は変形例（３）における主制御側電源投入時処理のフローチャートである。
処理を開始すると、ＣＰＵ１０２は、実施例（図４）と同様、割込モードの設定、およびスタックポインタの設定を行い（ステップＳ１ａ）、ウォッチドッグタイマのコントロールレジスタの設定を行う（ステップＳ２ａ）。動作モードは単純モード、循環モードのいずれでもよい。
【０１３１】
次に、ＣＰＵ１０２は、ＷＤＴ起動フラグがオンとなっているか否かを確認する（ステップＳ３ａ）。ＷＤＴ起動フラグは、ウォッチドッグタイマの起動確認処理が済んでいるか否かを示すためのフラグである。電源投入後、最初にこの処理を実行する段階では、ＷＤＴ起動フラグはオフとされている。
【０１３２】
ＷＤＴ起動フラグがオフの時、ＣＰＵ１０２は、ＷＤＴ起動フラグをオンにした後（ステップＳ４ａ）、無限ループに突入する。この結果、ウォッチドッグタイマが正常に起動していれば、基準時間が経過すると、ウォッチドッグタイマによるリセットがかかりＣＰＵ１０２はステップＳ１ａから処理を再開することになる。この際、ＷＤＴ起動フラグの値は保持される。
【０１３３】
リセットがかかると、ＣＰＵ１０２はステップＳ１ａ〜Ｓ３ａの処理を再度実行する。ステップＳ３ａでは、ＷＤＴ起動フラグがオンとなっているため、無限ループ（ステップＳ４ａ以降）には突入せず、ＷＤＴ起動フラグをオフとした後（ステップＳ５ａ）、図５以降の処理に移行する。
【０１３４】
最初に無限ループ（ステップＳ４ａ以降）を実行している時に、ウォッチドッグタイマが正常に起動していないと、リセットがかからないため、無限ループが実行され続ける。そこで、無限ループの実行時間または実行回数に上限を設け、この上限を超えた場合には、ウォッチドッグタイマが正常に起動していない場合でも、割込処理によって強制的にリセットをかけるようにしておくことが好ましい。
この場合には、リセット後に、再度、ウォッチドッグタイマが正常に起動していることを確認することが望ましいため、ＷＤＴ起動フラグをオフとしておくことが好ましい。
【０１３５】
変形例（３）の処理によれば、ウォッチドッグタイマによるリセットを生じさせてみることによって、正常に起動しているか否かを確認することができる。この方法によれば、ウォッチドッグタイマがアナログ、ディジタルいずれで構成されている場合にも適用することができる利点がある。
【０１３６】
また、変形例（３）では、ウォッチドッグタイマによるリセットの基準時間を十分に長く、例えば２００ミリ秒（ｍｓ）以上、しておくことが好ましい。こうすることによって、停電クリア信号を出力開始した後のウェイトタイマ処理１（図５のステップＳ１４）を省略することが可能となる。ウェイトタイマ処理１は、電源投入後に、電源電圧が安定するまでの待ち時間であるから、ウォッチドッグタイマの起動確認時に十分な時間が経過していれば、それ以上に待ち時間を設ける必要はないからである。
また、変形例（３）では、ウォッチドッグタイマによるリセットの基準時間を、その他の場合よりも短くしてもよい。こうすることによって、ウォッチドッグタイマの動作確認（ステップＳ４ａ後の無限ループ）に要する時間が短くて済むという利点がある。もっとも、この場合でも、一旦、ウォッチドッグタイマの動作を確認した後は、基準時間を通常の設定値としておく必要がある。このため、例えば、基準時間の設定値を、ステップＳ４ａの直前で短くし、ステップＳ５ａの直前で通常の値に戻すようにしてもよい。また、ＷＤＴ起動フラグがＯＦＦの場合には、ステップＳ２ａで短い基準時間を設定し、ＯＮの場合には、通常の値を設定するようにしてもよい。
【０１３７】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。
本発明は、パチンコ機のみならず、スロットマシンなど種々の遊技機に適用可能である。
また、上述の実施例において、ソフトウェアで実現している部分はハードウェア的に実現するようにしてもよいし、その逆を行っても良い。
【図面の簡単な説明】
【０１３８】
【図１】実施例としてのパチンコ機１の制御用ハードウェア構成を示すブロック図である。
【図２】主制御基板１００上のワンチップマイクロコンピュータの回路構成を示す説明図である。
【図３】停電監視回路の構成を示す説明図である。
【図４】主制御側電源投入時処理の一例を示すフローチャート（１）である。
【図５】主制御側電源投入時処理の一例を示すフローチャート（２）である。
【図６】主制御側電源投入時処理の一例を示すフローチャート（３）である。
【図７】主制御側タイマ割り込み処理のフローチャートである。
【図８】初期化レジスタ１５７への書き込み時の処理内容を示す説明図である。
【図９】変形例（１）における主制御側電源投入時処理のフローチャートである。
【図１０】変形例（３）における主制御側電源投入時処理のフローチャートである。
【符号の説明】
【０１３９】
１…パチンコ機
４ａ…表示部
４ｂ…操作スイッチ
１２…パネル装飾ランプ
１６…ＬＣＤ
２０…賞球払出装置
２１…払出モータ
２２…払出球検出器
２３…モータ駆動センサ
２９…スピーカ
３１…枠装飾ランプ
３２、３４…ランプ中継基板
４１…特別図柄表示装置
４２…入賞検出器
４３…大入賞口ソレノイド
４７…発射制御基板
４８…タッチ検出部
４９…発射モータ
１００…主制御基板
１０２…ＣＰＵ
１０４…ＲＡＭ
１０６…ＲＯＭ
１１０…第１レジスタ
１２０…第２レジスタ
１５０…内部バス
１５１…ＩＮＴ優先順位制御回路
１５２…タイマ回路
１５３…クロック
１５４…ＷＤＴ制御回路
１５５…パラレルポート
１５６…コントロールレジスタ
１５７、１５７ａ〜１５７ｃ、１５８…初期化レジスタ
２１０…払出制御基板
３１０…サブ制御基板
３５０…装飾図柄制御基板
【図１】
0005238952.tif 000002
【図２】
0005238952.tif 000003
【図３】
0005238952.tif 000004
【図４】
0005238952.tif 000005
【図５】
0005238952.tif 000006
【図６】
0005238952.tif 000007
【図７】
0005238952.tif 000008
【図８】
0005238952.tif 000009
【図９】
0005238952.tif 000010
【図１０】
0005238952.tif 000011