JP3621670B2 - 遊技機 - Google Patents
遊技機 Download PDFInfo
- Publication number
- JP3621670B2 JP3621670B2 JP2001318765A JP2001318765A JP3621670B2 JP 3621670 B2 JP3621670 B2 JP 3621670B2 JP 2001318765 A JP2001318765 A JP 2001318765A JP 2001318765 A JP2001318765 A JP 2001318765A JP 3621670 B2 JP3621670 B2 JP 3621670B2
- Authority
- JP
- Japan
- Prior art keywords
- power supply
- payout
- command
- switch
- ball
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Pinball Game Machines (AREA)
Description
【発明の属する技術分野】
本発明は、遊技媒体を用いて所定の遊技を行うことが可能であり、遊技により払出条件が成立したことにもとづいて景品としての景品遊技媒体を払い出すパチンコ遊技機やスロット機等の遊技機に関する。
【0002】
【従来の技術】
遊技機として、遊技球などの遊技媒体を発射装置によって遊技領域に発射し、遊技領域に設けられている入賞口などの入賞領域に遊技媒体が入賞すると、所定個の賞球が遊技者に払い出されるものがある。さらに、表示状態が変化可能な可変表示部が設けられ、可変表示部の表示結果があらかじめ定められた特定表示態様となった場合に所定の遊技価値を遊技者に与えるように構成されたものがある。
【0003】
なお、遊技価値とは、遊技機の遊技領域に設けられた可変入賞球装置の状態が打球が入賞しやすい遊技者にとって有利な状態になることや、遊技者にとって有利な状態となるための権利を発生させたりすることや、賞球払出の条件が成立しやすくなる状態になることである。
【0004】
パチンコ遊技機では、特別図柄を表示する可変表示部の表示結果があらかじめ定められた特定表示態様の組合せとなることを、通常、「大当り」という。大当りが発生すると、例えば、大入賞口が所定回数開放して打球が入賞しやすい大当り遊技状態に移行する。そして、各開放期間において、所定個(例えば10個)の大入賞口への入賞があると大入賞口は閉成する。そして、大入賞口の開放回数は、所定回数(例えば16ラウンド)に固定されている。なお、各開放について開放時間(例えば29.5秒)が決められ、入賞数が所定個に達しなくても開放時間が経過すると大入賞口は閉成する。また、大入賞口が閉成した時点で所定の条件(例えば、大入賞口内に設けられているVゾーンへの入賞)が成立していない場合には、大当り遊技状態は終了する。
【0005】
また、可変表示装置において最終停止図柄(例えば左右中図柄のうち中図柄)となる図柄以外の図柄が、所定時間継続して、特定表示態様と一致している状態で停止、揺動、拡大縮小もしくは変形している状態、または、複数の図柄が同一図柄で同期して変動したり、表示図柄の位置が入れ替わっていたりして、最終結果が表示される前で大当り発生の可能性が継続している状態(以下、これらの状態をリーチ状態という。)において行われる演出をリーチ演出という。また、リーチ演出を含む可変表示をリーチ可変表示という。リーチ状態において、変動パターンを通常状態における変動パターンとは異なるパターンにすることによって、遊技の興趣が高められている。そして、可変表示装置に可変表示される図柄の表示結果がリーチ状態となる条件を満たさない場合には「はずれ」となり、可変表示状態は終了する。遊技者は、大当りをいかにして発生させるかを楽しみつつ遊技を行う。
【0006】
遊技機における遊技進行はマイクロコンピュータ等による遊技制御手段によって制御される。可変表示部に表示される識別情報、キャラクタ画像および背景画像は、マイクロコンピュータの指示に応じて画像データを生成して可変表示部側に転送するビデオディスプレイプロセッサ(VDP)とによって制御されるが、マイクロコンピュータが必要とするプログラム容量は大きい。
【0007】
従って、プログラムを格納させるメモリ容量に制限のある遊技制御手段のマイクロコンピュータで可変表示部に表示される識別情報等を制御することはできず、遊技制御手段のマイクロコンピュータとは別の表示制御用のマイクロコンピュータ等による表示制御手段を搭載した図柄制御基板が設置される。遊技の進行を制御する遊技制御手段は、表示制御手段に対して表示制御のためのコマンドを送信する必要がある。
【0008】
賞球払出の制御を行う払出制御手段が、遊技制御手段が搭載されている主基板とは別の払出制御基板に搭載されている場合、遊技の進行は主基板に搭載された遊技制御手段によって制御されるので、入賞にもとづく賞球個数は、遊技制御手段によって決定され、払出制御基板に送信される。一方、遊技媒体の貸し出しは、遊技の進行とは無関係であるから、一般に、遊技制御手段を介さず払出制御手段によって制御される。
【0009】
以上のように、遊技機には、遊技制御手段の他に種々の制御手段が搭載されている。そして、遊技の進行を制御する遊技制御手段は、遊技状況に応じて動作指示を示す各コマンドを、各制御基板に搭載された各制御手段に送信する。以下、遊技制御手段その他の制御手段を電気部品制御手段といい、電気部品制御手段が搭載された基板を電気部品制御基板ということがある。
【0010】
【発明が解決しようとする課題】
以上のように、遊技機には、遊技制御手段を初めとする種々の電気部品制御手段が搭載されている。一般に、各電気部品制御手段はマイクロコンピュータを含んだ構成とされる。そのような電気部品制御手段は、一般に、電源電圧が立ち上がると初期化処理を行い初期状態から制御を開始する。すると、停電等の不測の電源断が生じ、その後、電源復旧すると初期状態に戻ってしまうので、遊技者が得た遊技価値等が消滅してしまう等の問題が生ずることがある。そのような問題が生じないようにするには、電源電圧値の低下に伴なって発生される所定の信号に応じて遊技制御を中断し、そのときの制御状態を、遊技機に対する電力供給停止中でも電源バックアップされている記憶手段(バックアップ記憶手段)に保存し、電力供給が完全に停止するのを待つように制御すればよい。そのような遊技機は、記憶手段に遊技状態が保存されている状態で電力供給が再開されたら、保存されている制御状態にもとづいて遊技を再開するので、遊技者に不利益が与えられることが防止される。
【0011】
しかし、バックアップ記憶手段に制御状態を保存する処理を行う直前に電気部品が動作中であった場合には、保存した制御状態に対して、実際の制御状態が変化してしまう可能性もある。例えば、遊技球の払い出しを行う球払出装置から払い出された遊技球を、球払出装置の下部に設けられているスイッチ手段によって検知して遊技球の払出確認を行うような場合には、そのような問題が生ずる可能性がある。つまり、球払出装置の動作を停止する直前に球払出装置が1個の遊技球の払出を実行し、直後に停電等が生じ、スイッチ手段が払出を検知する前に制御状態を保存したような場合には、保存された払出確認個数(または未払出個数)と、実際に払い出された個数との間に不一致が生じてしまう。そのような場合、電力供給再開時に、保存されている制御状態にもとづいて球払出処理を再開すると、余分に遊技球を払い出してしまうことになる。
【0012】
また、電源の瞬断等によって極めて短い期間電源電圧が低下し電源電圧が直ちに復旧するような場合、電気部品制御手段の制御が、電力供給が完全に停止するのを待つ状態から抜けきらないことも考えられる。すなわち、遊技機への電力供給は平常時の状態になっているにもかかわらず、遊技機制御が平常時の状態に戻らないことも考えられる。
【0013】
さらに、停電等の不測の電源断が生じたときに、電気部品制御手段における所定の情報を電源バックアップするような制御を行うと、遊技機が設置されている遊技店の利便性が損なわれる場合がある。例えば、停電が生じて遊技が続行できなくなった場合に遊技の再開を待たずに遊技の続行をあきらめた遊技者があったときには、他の遊技者が遊技途中の状態から遊技を開始できることになるので、遊技状態を停電前の状態に復旧させることは好ましくない。
【0014】
そこで、本発明は、電力供給が停止した場合であっても払い出された遊技媒体の検出を確実に実行して遊技媒体の未払出数を正確に把握することができ、ごく短時間で復旧する電源の瞬断等が生じても制御に支障を来すことがなく、さらに遊技店での遊技機運用上の利便性を向上させることができる遊技機を提供することを目的とする。
【0015】
【課題を解決するための手段】
本発明による遊技機は、遊技媒体を用いて所定の遊技を行うことが可能であり、遊技領域に設けられた入賞領域に遊技媒体が入賞した(例えば、遊技領域に設けられた入賞領域への入賞)ことにもとづいて景品としての景品遊技媒体を払い出す遊技機であって、景品遊技媒体の払い出しを行う払出手段(例えば球払出装置97)と、払出手段により払い出された景品遊技媒体を検出する景品遊技媒体検出手段(例えば賞球カウントスイッチ301A)と、遊技機への電力供給が停止しても所定期間は記憶内容を保持することが可能であり、入賞領域に遊技媒体が入賞したことにもとづいて払い出すべき景品遊技媒体数のうち未だ払い出されていない未払出数を特定可能な未払出数データ(例えば総賞球数格納バッファの格納値、賞球未払出カウンタ)を記憶する変動データ記憶手段(例えば主基板31が備える電源バックアップされたRAM55や払出制御基板37が備える電源バックアップされたRAM)と、遊技機に設けられた電気部品を制御し、景品遊技媒体検出手段からの検出信号の入力処理と、入力処理の結果を示すデータにもとづいて未払出数データを更新する処理とを行う電気部品制御手段(例えば、CPU56を含む遊技制御手段、払出制御用CPU371を含む払出制御手段)と、遊技機で用いられる所定の電源の状態を監視して、遊技機への電力の供給停止にかかわる検出条件(例えば監視電圧であるVSL(+30V)の電圧値が+22Vまで低下したときに成立する条件)が成立したときに検出信号(例えば電源断信号)を出力する電源監視手段(例えば電源監視用IC902)と、電源監視手段によって検出信号が出力された後少なくとも所定の検出維持期間(例えば、ステップS466やステップS816で設定される期間)が経過するまでの期間において景品遊技媒体検出手段による景品遊技媒体の検出を可能な状態とするために、当該景品遊技媒体検出手段および電気部品制御手段に電力を供給可能な補助電力供給手段(例えばコンデンサ923を備えるコンバータIC920)と、操作に応じて操作信号(例えばクリアスイッチ信号)を出力することが可能な操作手段(例えばクリアスイッチ921)と、を備え、電気部品制御手段が、電源監視手段からの検出信号に応じて制御状態を復旧させるために必要なデータ(例えばCPU56や払出制御用CPU371に用いられるレジスタのデータ等)を変動データ記憶手段に保存するための電力供給停止時処理(例えば図22〜図24に示す処理や図49〜図51に示す処理)を実行し、電力供給が復帰し所定の復旧条件(例えばステップS7の条件やステップS707の条件)が成立したときに変動データ記憶手段に保存されていた記憶内容にもとづいて制御状態を電力供給が停止する前の状態に復旧させる復旧処理(例えば図20に示す遊技状態復旧処理や図48に示す払出状態復旧処理)を実行し、電力供給が復帰し所定の復旧条件が不成立であったときには、変動データ記憶手段に保持されていた記憶内容を初期化する初期化処理(例えばステップS11〜ステップS15の処理、ステップS711〜ステップS714の処理)を実行し、電力供給停止時処理にて、補助電力供給手段から電力が供給される景品遊技媒体検出手段からの検出信号の入力処理(例えば、図23におけるステップS466〜ステップS486の処理、図50におけるステップS816〜ステップS826の処理)を行い、当該電力供給停止時処理が終了した後待機状態(例えばステップS498やステップS846のあとのループ処理が実行されている状態)に移行し、遊技機への電力供給が復帰し、少なくとも操作手段から操作信号が出力されなかったとき(例えばステップS7のNと判定された場合、ステップS707のNと判定された場合)に所定の復旧条件が成立したと判定し、電源監視手段による検出信号が出力されたにもかかわらず、遊技機への電力供給が停止しないときに、電気部品制御手段の制御状態を当該待機状態から復帰させ復旧処理を実行する待機状態復帰手段(例えば、復帰信号を出力可能な電源基板910に搭載されるカウンタ971、ウォッチドッグタイマのタイプアップにもとづきシステムリセットする機能を備えるCPU56や払出制御用CPU371)を有し、電力供給停止時処理にて景品遊技媒体検出手段からの検出信号の入力処理の結果を示すデータを変動データ記憶手段に保存(例えばステップS872)し、復旧処理にて入力処理の結果を示すデータにもとづいて未払出数データを更新する処理(例えばステップS889)を実行することを特徴とする。
【0016】
所定の復旧条件は複数あり、電気部品制御手段が、電力供給が復帰したときには、複数の復旧条件(例えば、遊技制御手段におけるステップS7〜ステップS9の条件、払出制御手段におけるステップS707〜ステップS709の条件)がすべて成立したときに、変動データ記憶手段に保存されていた記憶内容にもとづいて制御状態を復旧させる復旧処理を実行し、複数の復旧条件のうち少なくとも1つの条件が不成立であったときに変動データ記憶手段の記憶内容を初期化する初期化処理(例えばステップS11〜ステップS15の処理、ステップS711〜ステップS714の処理)を実行するように構成されていてもよい。
【0017】
電気部品制御手段が、複数の復旧条件が成立しているか否かを確認する際に、操作手段から操作信号が出力されているか否かの確認を優先的に実行(例えば、遊技制御手段においてステップS8,ステップS9の条件よりもステップS7の条件についての確認を先に行う、払出制御手段においてステップS708,ステップS709の条件よりもステップS707の条件についての確認を先に行う)し、操作手段から操作信号が出力されていることを確認したときには、他の復旧条件が成立しているか否かの確認を行うことなく初期化処理を実行するように構成されていてもよい。
【0019】
電気部品制御手段からの信号を出力するための出力ポート(例えば、図15、図16、図44に示す出力ポート)を含み、電気部品制御手段が、電力供給停止時処理にて、出力ポートの出力状態を初期化する出力ポートクリア処理(例えばステップS459〜ステップS465の処理、ステップS809〜ステップS815の処理)を実行した後、景品遊技媒体検出手段からの検出信号の入力処理を行うように構成されていてもよい。
【0021】
検出維持期間は、払出手段により払い出された景品遊技媒体が景品遊技媒体検出手段の検出位置に到達するまでの期間(例えば、スプロケット292から解放された遊技球が賞球カウントスイッチ301Aの検出部に到達するまでの落下期間を示す√(2L/g)で導出される期間。具体的には、遊技機の構造などによって異なるが、例えば100[ms]〜150[ms]程度の期間。)以上の期間に設定されることが好ましい。
【0023】
電気部品制御手段の動作状態を監視し、所定期間動作が停止しているときに、制御状態を初期化するための動作状態監視手段(例えば、ウォッチドッグタイマのタイプアップにもとづきシステムリセットする機能を備えるCPU56や払出制御用CPU371)を備え、動作状態監視手段により、待機状態復帰手段が構成されていてもよい。
【0024】
待機状態復帰手段が、電源監視手段から検出信号が出力されてから、所定期間経過しても遊技機への電力供給が停止しないときに電気部品制御手段の制御状態を待機状態から復帰させる(例えば図14(B)参照)ように構成されていてもよい。
【0025】
電気部品制御手段が搭載された電気部品制御基板(例えば主基板31、払出制御基板37)を複数備え、電気部品制御基板とは別個に遊技機へ供給される電源から各電気部品制御基板で用いられる電圧の電源を作成する電源基板(例えば電源基板910)を備え、待機状態復帰手段が電源基板に搭載される構成とされていてもよい。
【0026】
電気部品制御手段が搭載された電気部品制御基板(例えば主基板31、払出制御基板37)を複数備え、操作手段が電気部品制御基板とは別の箇所(例えば電源基板910、スイッチ基板、ターミナル基板)に設けられているように構成されていてもよい。
【0027】
別の箇所とは遊技機へ供給される電源から各電気部品制御基板で用いられる電圧の電源を作成する電源基板であり、電源基板には操作手段と、遊技機への電源の供給または遮断を選択するための電力供給操作手段(例えば電源スイッチ914)とが搭載される構成とされていてもよい。
【0028】
電気部品制御手段として、所定の報知を行うための報知部品(例えば可変表示装置9)を制御可能な報知部品制御手段(例えば表示制御用CPU101を含む表示制御手段)を備え、報知部品制御手段が変動データ記憶手段に保持されていた記憶内容を初期化する処理が実行されていることを報知部品を用いて報知する処理(例えば「初期化中」などの表示による報知)を行うように構成されていてもよい。
【0029】
電気部品制御手段が、遊技の進行を制御する遊技制御手段(例えば、CPU56を含む遊技制御手段)と、遊技制御手段からのコマンドにもとづいて払出手段の制御を行う払出制御手段(例えば、払出制御用CPU371を含む払出制御手段)とを含み、景品遊技媒体検出手段の検出信号は、遊技制御手段と払出制御手段の双方に入力されるように構成されていてもよい。
【0030】
電源監視手段が景品遊技媒体検出手段に供給される電源の電圧値(例えば12V)よりも高い電圧値(例えば30V)の電源を監視することが望ましい。
【0031】
【発明の実施の形態】
実施の形態1.
以下、本発明の一実施形態を図面を参照して説明する。
まず、遊技機の一例であるパチンコ遊技機の全体の構成について説明する。図1はパチンコ遊技機を正面からみた正面図、図2は遊技盤の前面を示す正面図である。なお、以下の実施の形態では、パチンコ遊技機を例に説明を行うが、本発明による遊技機はパチンコ遊技機に限られず、例えば画像式の遊技機やスロット機に適用することもできる。
【0032】
パチンコ遊技機1は、縦長の方形状に形成された外枠(図示せず)と、外枠の内側に開閉可能に取り付けられた遊技枠とで構成される。また、パチンコ遊技機1は、遊技枠に開閉可能に設けられている額縁状に形成されたガラス扉枠2を有する。遊技枠は、外枠に対して開閉自在に設置される前面枠(図示せず)と、機構部品等が取り付けられる機構板と、それらに取り付けられる種々の部品(後述する遊技盤を除く。)とを含む構造体である。
【0033】
図1に示すように、パチンコ遊技機1は、額縁状に形成されたガラス扉枠2を有する。ガラス扉枠2の下部表面には打球供給皿(上皿)3がある。打球供給皿3の下部には、打球供給皿3に収容しきれない遊技球を貯留する余剰球受皿4と打球を発射する打球操作ハンドル(操作ノブ)5が設けられている。ガラス扉枠2の背面には、遊技盤6が着脱可能に取り付けられている。なお、遊技盤6は、それを構成する板状体と、その板状体に取り付けられた種々の部品とを含む構造体である。また、遊技盤6の前面には遊技領域7が形成されている。
【0034】
遊技領域7の中央付近には、それぞれが識別情報としての図柄を可変表示する複数の可変表示部を含む可変表示装置(特別図柄表示装置)9が設けられている。可変表示装置9には、例えば「左」、「中」、「右」の3つの可変表示部(図柄表示エリア)がある。可変表示装置9の下方には、始動入賞口14が設けられている。始動入賞口14に入った入賞球は、遊技盤6の背面に導かれ、始動口スイッチ14aによって検出される。また、始動入賞口14の下部には開閉動作を行う可変入賞球装置15が設けられている。可変入賞球装置15は、ソレノイド16によって開状態とされる。
【0035】
可変入賞球装置15の下部には、特定遊技状態(大当り状態)においてソレノイド21によって開状態とされる開閉板20が設けられている。開閉板20は大入賞口を開閉する手段である。開閉板20から遊技盤6の背面に導かれた入賞球のうち一方(V入賞領域)に入った入賞球はV入賞スイッチ22で検出され、開閉板20からの入賞球はカウントスイッチ23で検出される。遊技盤6の背面には、大入賞口内の経路を切り換えるためのソレノイド21Aも設けられている。また、可変表示装置9の下部には、始動入賞口14に入った有効入賞球数すなわち始動記憶数を表示する4つのLEDによる特別図柄始動記憶表示器(以下、始動記憶表示器という。)18が設けられている。有効始動入賞がある毎に、始動記憶表示器18は点灯するLEDを1増やす。そして、可変表示装置9の可変表示が開始される毎に、点灯するLEDを1減らす。
【0036】
ゲート32に遊技球が入賞しゲートスイッチ32aで検出されると、普通図柄表示器10の表示の可変表示が開始される。この実施の形態では、左右のランプ(点灯時に図柄が視認可能になる)が交互に点灯することによって可変表示が行われ、例えば、可変表示の終了時に右側のランプが点灯すれば当たりとなる。そして、普通図柄表示器10における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置15が所定回数、所定時間だけ開状態になる。普通図柄表示器10の近傍には、ゲート32に入った入賞球数を表示する4つのLEDによる表示部を有する普通図柄始動記憶表示器41が設けられている。ゲート32への入賞がある毎に、普通図柄始動記憶表示器41は点灯するLEDを1増やす。そして、普通図柄表示器10の可変表示が開始される毎に、点灯するLEDを1減らす。
【0037】
遊技盤6には、複数の入賞口29,30,33,39が設けられ、遊技球の入賞口29,30,33への入賞は、それぞれ入賞口スイッチ29a,30a,33a,39aによって検出される。各入賞口29,30,33,39は、遊技媒体を受け入れて入賞を許容する領域として遊技盤6に設けられる入賞領域を構成している。なお、遊技媒体を受け入れて入賞を許容する始動入賞口14や、大入賞口も、入賞領域を構成する。遊技領域7の左右周辺には、遊技中に点滅表示される装飾ランプ25が設けられ、下部には、入賞しなかった打球を吸収するアウト口26がある。また、遊技領域7の外側の左右上部には、効果音を発する2つのスピーカ27が設けられている。遊技領域7の外周には、天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cが設けられている。さらに、遊技領域7における各構造物(大入賞口等)の周囲には装飾LEDが設置されている。天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cおよび装飾用LEDは、遊技機に設けられている装飾発光体の一例である。
【0038】
そして、この例では、左枠ランプ28bの近傍に、賞球残数があるときに点灯する賞球ランプ51が設けられ、天枠ランプ28aの近傍に、補給球が切れたときに点灯する球切れランプ52が設けられている。上記のように、本例のパチンコ遊技機1には、発光体としてのランプやLEDが各所に設けられている。さらに、図1には、パチンコ遊技機1に隣接して設置され、プリペイドカードが挿入されることによって球貸しを可能にするカードユニット50も示されている。
【0039】
カードユニット50には、使用可能状態であるか否かを示す使用可表示ランプ151、カードユニット50がいずれの側のパチンコ遊技機1に対応しているのかを示す連結台方向表示器153、カードユニット50内にカードが投入されていることを示すカード投入表示ランプ154、記録媒体としてのカードが挿入されるカード挿入口155、およびカード挿入口155の裏面に設けられているカードリーダライタの機構を点検する場合にカードユニット50を解放するためのカードユニット錠156が設けられている。
【0040】
打球発射装置から発射された遊技球は、打球レールを通って遊技領域7に入り、その後、遊技領域7を下りてくる。打球が始動入賞口14に入り始動口スイッチ14aで検出されると、図柄の可変表示を開始できる状態であれば、可変表示装置9において特別図柄が可変表示(変動)を始める。図柄の可変表示を開始できる状態でなければ、始動記憶数を1増やす。
【0041】
可変表示装置9における特別図柄の可変表示は、一定時間が経過したときに停止する。停止時の特別図柄の組み合わせが大当り図柄(特定表示結果)であると、大当り遊技状態に移行する。すなわち、開閉板20が、一定時間経過するまで、または、所定個数(例えば10個)の打球が入賞するまで開放する。そして、開閉板20の開放中に打球がV入賞領域に入賞しV入賞スイッチ22で検出されると、継続権が発生し開閉板20の開放が再度行われる。継続権の発生は、所定回数(例えば15ラウンド)許容される。
【0042】
停止時の可変表示装置9における特別図柄の組み合わせが確率変動を伴う大当り図柄(確変図柄)の組み合わせである場合には、次に大当りとなる確率が高くなる。すなわち、確変状態という遊技者にとってさらに有利な状態となる。
【0043】
打球がゲート32に入賞すると、普通図柄表示器10において普通図柄が可変表示される状態になる。また、普通図柄表示器10における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置15が所定時間だけ開状態になる。さらに、確変状態では、普通図柄表示器10における停止図柄が当り図柄になる確率が高められるとともに、可変入賞球装置15の開放時間と開放回数が高められる。すなわち、可変入賞球装置15の開放時間と開放回数は、普通図柄の停止図柄が当り図柄であったり、特別図柄の停止図柄が確変図柄である場合等に高められ、遊技者にとって不利な状態から有利な状態に変化する。なお、開放回数が高められることは、閉状態から開状態になることも含む概念である。
【0044】
次に、パチンコ遊技機1の裏面の構造について図3および図4を参照して説明する。図3は、遊技機を裏面から見た背面図である。図4は、各種部材が取り付けられた機構板を遊技機背面側から見た背面図である。
【0045】
図3に示すように、遊技機裏面側では、可変表示装置9を制御する図柄制御基板80を含む可変表示制御ユニット49、遊技制御用マイクロコンピュータ等が搭載された遊技制御基板(主基板)31が設置されている。また、球払出制御を行う払出制御用マイクロコンピュータ等が搭載された払出制御基板37が設置されている。さらに、遊技盤6に設けられている各種装飾LED、始動記憶表示器18および普通図柄始動記憶表示器41、装飾ランプ25、枠側に設けられている天枠ランプ28a、左枠ランプ28b、右枠ランプ28c、賞球ランプ51および球切れランプ52を点灯制御するランプ制御手段が搭載されたランプ制御基板35、スピーカ27からの音発生を制御する音制御手段が搭載された音制御基板70も設けられている。また、また、DC30V、DC21V、DC12VおよびDC5Vを作成する電源回路が搭載された電源基板910や発射制御基板91が設けられている。
【0046】
遊技機裏面において、上方には、各種情報を遊技機外部に出力するための各端子を備えたターミナル基板160が設置されている。ターミナル基板160には、少なくとも、球切れ検出スイッチの出力を導入して外部出力するための球切れ用端子、賞球個数信号を外部出力するための賞球用端子および球貸し個数信号を外部出力するための球貸し用端子が設けられている。また、中央付近には、主基板31からの各種情報を遊技機外部に出力するための各端子を備えた情報端子基板(情報出力基板)34が設置されている。
【0047】
貯留タンク38に貯留された遊技球は誘導レール39を通り、図4に示されるように、カーブ樋186を経て賞球ケース40Aで覆われた球払出装置に至る。球払出装置の上部には、遊技媒体切れ検出手段としての球切れスイッチ187が設けられている。球切れスイッチ187が球切れを検出すると、球払出装置の払出動作が停止する。球切れスイッチ187は遊技球通路内の遊技球の有無を検出するスイッチであるが、貯留タンク38内の補給球の不足を検出する球切れ検出スイッチ167も誘導レール39における上流部分(貯留タンク38に近接する部分)に設けられている。球切れ検出スイッチ167が遊技球の不足を検知すると、遊技機設置島に設けられている補給機構から遊技機に対して遊技球の補給が行われる。
【0048】
入賞にもとづく景品としての遊技球や球貸し要求にもとづく遊技球が多数払い出されて打球供給皿3が満杯になり、ついには遊技球が連絡口45に到達した後さらに遊技球が払い出されると、遊技球は、余剰球通路46を経て余剰球受皿4に導かれる。さらに遊技球が払い出されると、感知レバー47が貯留状態検出手段としての満タンスイッチ48を押圧して、貯留状態検出手段としての満タンスイッチ48がオンする。その状態では、球払出装置内の払出モータの回転が停止して球払出装置の動作が停止するとともに発射装置の駆動も停止する。
【0049】
図4に示すように、球払出装置の側方には、カーブ樋186から遊技機下部の排出口192に至る球抜き通路191が形成されている。球抜き通路191の上部には球抜きレバー193が設けられ、球抜きレバー193が遊技店員等によって操作されると、誘導レール39から球抜き通路191への遊技球通路が形成され、貯留タンク38内に貯留されている遊技球は、排出口192から遊技機外に排出される。
【0050】
図5は、球払出装置97の構成例を示す分解斜視図である。この例では、賞球ケース40Aとしての3つのケース140,141,142の内部に球払出装置97が形成されている。ケース140,141の上部には、球切れスイッチ187の下部の球通路と連通する穴170,171が設けられ、遊技球は、穴170,171から球払出装置97に流入する。
【0051】
球払出装置97は駆動源となる払出モータ(例えばステッピングモータ)289を含む。払出モータ289の回転力は、払出モータ289の回転軸に嵌合しているギア290に伝えられ、さらに、ギア290と噛み合うギア291に伝えられる。ギア291の中心軸には、凹部を有するスプロケット292が嵌合している。穴170,171から流入した遊技球は、スプロケット292の凹部によって、スプロケット292の下方の球通路293a,293bに1個ずつ落下させられる。
【0052】
球通路(遊技媒体払出通路の一例)293a,293bには遊技球の流下路を切り替えるための振分部材311が設けられている。振分部材311はソレノイド310によって駆動され、賞球払出時には、球通路293a,293bにおける一方の流下路(球通路293a:景品遊技媒体通路の一例)を遊技球が流下するように倒れ、球貸し時には球通路293a,293bにおける他方の流下路(球通路293b:貸出遊技媒体通路の一例)を遊技球が流下するように倒れる。なお、払出モータ289およびソレノイド310は、払出制御基板37に搭載されている払出制御用CPUによって制御される。また、払出制御用CPUは、主基板31に搭載されている遊技制御用のCPUからの指令に応じて払出モータ289およびソレノイド310を制御する。
【0053】
賞球払出時に選択される流下路の下方には球払出装置によって払い出された遊技球を検出する賞球センサ(賞球カウントスイッチ)301Aが設けられ、球貸し時に選択される流下路の下方には球払出装置によって払い出された遊技球を検出する球貸しセンサ(球貸しカウントスイッチ)301Bが設けられている。賞球カウントスイッチ301Aの検出信号と球貸しカウントスイッチ301Bの検出信号は払出制御基板37の払出制御用CPUに入力される。払出制御用CPUは、それらの検出信号にもとづいて、実際に払い出された遊技球の個数を計数する。なお、賞球カウントスイッチ301Aの検出信号は、主基板31のCPUにも入力される。球貸しカウントスイッチ301Bに対する電源基板910からの電力供給は、払出制御基板37を介してなされる。なお、賞球カウントスイッチ301Aに対する電源基板910からの電力供給は、主基板31を介してなされるが、払出制御基板37を介してなされるようにしてもよい。また、賞球センサと球貸しセンサは、それぞれ複数設けられていてもよい。また、賞球センサは、主基板31用のものと払出制御基板37用のものが別個に設けられていてもよい。
【0054】
なお、ギア291の周辺部には、払出モータ位置センサを形成する突起部が形成されている。突起部は、ギア291の回転すなわち払出モータ289の回転に伴って発光体(図示せず)からの光を、払出モータ位置センサの受光部(図示せず)に対して透過させたり遮蔽したりする。払出制御用CPUは、受光部からの検出信号によって払出モータ289の位置を認識することができる。
【0055】
また、球払出装置は、賞球払出と球貸しとを共に行うように構成されていてもよいが、賞球払出を行う球払出装置と球貸しを行う球払出装置が別個に設けられていてもよい。さらに、例えばスプロケットの回転方向を変えて賞球払出と球貸しとを分けるように構成されていてもよいし、本実施の形態において例示する球払出装置97以外のどのような構造の球払出装置を用いても、本発明を適用することができる。
【0056】
図6は、遊技盤6に設置されている電源基板910の露出部分を示す正面図である。図6に示すように、電源基板910は、大部分が主基板31と重なっているが、主基板31に重なることなく外部から視認可能に露出した露出部分がある。この露出部分には、遊技機1への電力供給を実行あるいは遮断するための電源スイッチ914と、各基板(主基板31や払出制御基板37等)に含まれる記憶内容保持手段(例えば、電力供給停止時にもその内容を保持可能なバックアップRAM)に記憶されたバックアップデータをクリアするための操作手段としてのクリアスイッチ921とが設けられている。このように、電源スイッチ914とクリアスイッチ921とが近くに配置されているので、クリアスイッチ921の操作が容易となる。
【0057】
図7は、主基板31における回路構成の一例を示すブロック図である。なお、図7には、払出制御基板37、ランプ制御基板35、音制御基板70、発射制御基板91および図柄制御基板80も示されている。主基板31には、プログラムに従ってパチンコ遊技機1を制御する基本回路53と、ゲートスイッチ32a、始動口スイッチ14a、V入賞スイッチ22、カウントスイッチ23、入賞口スイッチ29a,30a,33a,39a、満タンスイッチ48、球切れスイッチ187、賞球カウントスイッチ301Aおよびクリアスイッチ921からの信号を基本回路53に与えるスイッチ回路58と、可変入賞球装置15を開閉するソレノイド16、開閉板20を開閉するソレノイド21および大入賞口内の経路を切り換えるためのソレノイド21Aを基本回路53からの指令に従って駆動するソレノイド回路59とが搭載されている。
【0058】
なお、図7には示されていないが、カウントスイッチ短絡信号もスイッチ回路58を介して基本回路53に伝達される。また、ゲートスイッチ32a、始動口スイッチ14a、V入賞スイッチ22、カウントスイッチ23、入賞口スイッチ29a,30a,33a,39a、満タンスイッチ48、球切れスイッチ187、賞球カウントスイッチ301A等のスイッチは、センサと称されているものでもよい。すなわち、遊技球を検出できる遊技媒体検出手段(この例では遊技球検出手段)であれば、その名称を問わない。特に、入賞検出を行う始動口スイッチ14a、カウントスイッチ23、および入賞口スイッチ29a,30a,33a,39aの各スイッチは、入賞検出手段でもある。なお、入賞検出手段は、複数の入賞口に別個に入賞したそれぞれの遊技球をまとめて検出するものであってもよい。また、ゲートスイッチ32aのような通過ゲートであっても、賞球の払い出しが行われるものであれば、通過ゲートへ遊技球が進入することが入賞となり、通過ゲートに設けられているスイッチ(例えばゲートスイッチ32a)が入賞検出手段となる。
【0059】
また、基本回路53から与えられるデータに従って、大当りの発生を示す大当り情報、可変表示装置9における図柄の可変表示開始に利用された始動入賞球の個数を示す有効始動情報、確率変動が生じたことを示す確変情報等の情報出力信号をホールコンピュータ等の外部装置に対して出力する情報出力回路64が搭載されている。
【0060】
基本回路53は、ゲーム制御用のプログラム等を記憶するROM54、ワークメモリとして使用される記憶手段(変動データを記憶する手段)としてのRAM55、プログラムに従って制御動作を行うCPU56およびI/Oポート部57を含む。この実施の形態では、ROM54,RAM55はCPU56に内蔵されている。すなわち、CPU56は、1チップマイクロコンピュータである。なお、1チップマイクロコンピュータは、少なくともRAM55が内蔵されていればよく、ROM54およびI/Oポート部57は外付けであっても内蔵されていてもよい。
【0061】
また、RAM(CPU内蔵RAMであってもよい。)55の一部または全部が、電源基板910において作成されるバックアップ電源よってバックアップされているバックアップRAMである。すなわち、遊技機に対する電力供給が停止しても、所定期間は、RAM55の一部または全部の内容は保存される。
【0062】
この実施の形態では、電源基板910から主基板31に対して、ローレベルがリセット状態を示すリセット信号、ローアクティブの復帰信号およびローアクティブの電源断信号も入力される。リセット信号と復帰信号とはAND回路161に入力され、AND回路161の出力がCPU56のリセット端子に入力される。また、電源断信号は、CPU56のマスク不能割込(NMI)端子に入力される。
【0063】
遊技球を打撃して発射する打球発射装置は発射制御基板91上の回路によって制御される駆動モータ94で駆動される。そして、駆動モータ94の駆動力は、操作ノブ5の操作量に従って調整される。すなわち、発射制御基板91上の回路によって、操作ノブ5の操作量に応じた速度で打球が発射されるように制御される。
【0064】
なお、この実施の形態では、ランプ制御基板35に搭載されているランプ制御手段が、遊技盤に設けられている始動記憶表示器18、普通図柄始動記憶表示器41および装飾ランプ25の表示制御を行うとともに、枠側に設けられている天枠ランプ28a、左枠ランプ28b、右枠ランプ28c、賞球ランプ51および球切れランプ52の表示制御を行う。また、特別図柄を可変表示する可変表示装置9および普通図柄を可変表示する普通図柄表示器10の表示制御は、図柄制御基板80に搭載されている表示制御手段によって行われる。
【0065】
図8は、払出制御基板37および球払出装置97の構成要素などの払出に関連する構成要素を示すブロック図である。図8に示すように、満タンスイッチ48からの検出信号は、中継基板71を介して主基板31のI/Oポート部57に入力される。また、球切れスイッチ187からの検出信号も、中継基板72および中継基板71を介して主基板31のI/Oポート部57に入力される。
【0066】
主基板31のCPU56は、球切れスイッチ187からの検出信号が球切れ状態を示しているか、または、満タンスイッチ48からの検出信号が満タン状態を示していると、払出を停止すべき状態であることを指示する払出制御コマンドを送出する。払出を停止すべき状態であることを指示する払出制御コマンドを受信すると、払出制御基板37の払出制御用CPU371は球払出処理を停止する。
【0067】
さらに、賞球カウントスイッチ301Aからの検出信号は、中継基板72および中継基板71を介して主基板31のI/Oポート部57に入力されるとともに、中継基板72を介して払出制御基板37の入力ポート372bに入力される。賞球カウントスイッチ301Aは、球払出装置97の払出機構部分に設けられ、実際に払い出された賞球払出球を検出する。
【0068】
入賞があると、払出制御基板37には、主基板31の出力ポート(ポート0,1)570,571から賞球個数を示す払出制御コマンドが入力される。出力ポート(出力ポート1)571は8ビットのデータを出力し、出力ポート(出力ポート0)570は1ビットのINT信号を出力する。賞球個数を示す払出制御コマンドは、入力バッファ回路373Aを介してI/Oポート372aに入力される。INT信号は、入力バッファ回路373Bを介して払出制御用CPU371の割込端子に入力されている。払出制御用CPU371は、I/Oポート372aを介して払出制御コマンドを入力し、払出制御コマンドに応じて球払出装置97を駆動して賞球払出を行う。なお、この実施の形態では、払出制御用CPU371は、1チップマイクロコンピュータであり、少なくともRAMが内蔵されている。
【0069】
また、主基板31において、出力ポート570,571の外側にバッファ回路620,68Aが設けられている。バッファ回路620,68Aとして、例えば、汎用のCMOS−ICである74HC250,74HC14が用いられる。このような構成によれば、外部から主基板31の内部に入力される信号が阻止されるので、払出制御基板37から主基板31に信号が与えられる可能性がある信号ラインをさらに確実になくすことができる。なお、バッファ回路620,68Aの出力側にノイズフィルタを設けてもよい。
【0070】
払出制御用CPU371は、出力ポート372cを介して、貸し球数を示す球貸し個数信号をターミナル基板160に出力する。さらに、出力ポート372dを介して、エラー表示用LED374にエラー信号を出力する。
【0071】
さらに、払出制御基板37の入力ポート372bには、中継基板72を介して、球貸しカウントスイッチ301B、および払出モータ289の回転位置を検出するための払出モータ位置センサからの検出信号が入力される。球貸しカウントスイッチ301Bは、球払出装置97の払出機構部分に設けられ、実際に払い出された貸し球を検出する。払出制御基板37からの払出モータ289への駆動信号は、出力ポート372cおよび中継基板72を介して球払出装置97の払出機構部分における払出モータ289に伝えられ、振分ソレノイド310への駆動信号は、出力ポート372eおよび中継基板72を介して球払出装置97の払出機構部分における振分ソレノイド310に伝えられる。また、クリアスイッチ921の出力も、入力ポート372bに入力される。
【0072】
カードユニット50には、カードユニット制御用マイクロコンピュータが搭載されている。また、カードユニット50には、使用可表示ランプ151、連結台方向表示器153、カード投入表示ランプ154およびカード挿入口155が設けられている(図1参照)。残高表示基板74には、打球供給皿3の近傍に設けられている度数表示LED、球貸しスイッチおよび返却スイッチが接続される。
【0073】
残高表示基板74からカードユニット50には、遊技者の操作に応じて、球貸しスイッチ信号および返却スイッチ信号が払出制御基板37を介して与えられる。また、カードユニット50から残高表示基板74には、プリペイドカードの残高を示すカード残高表示信号および球貸し可表示信号が払出制御基板37を介して与えられる。このように、残高表示基板74とカードユニット50は、直接接続されることなく、払出制御基板37を介して接続されている。カードユニット50と払出制御基板37の間では、接続信号(VL信号)、ユニット操作信号(BRDY信号)、球貸し要求信号(BRQ信号)、球貸し完了信号(EXS信号)およびパチンコ機動作信号(PRDY信号)が入力ポート372bおよび出力ポート372eを介してやりとりされる。なお、カードユニット50と払出制御基板37の間には、図示しないインタフェース基板が介在しており、接続信号(VL信号)等の信号はインタフェース基板を介してやりとりされる。
【0074】
パチンコ遊技機1の電源が投入されると、払出制御基板37の払出制御用CPU371は、カードユニット50にPRDY信号を出力する。また、カードユニット制御用マイクロコンピュータは、VL信号を出力する。払出制御用CPU371は、VL信号の入力状態により接続状態/未接続状態を判定する。カードユニット50においてカードが受け付けられ、球貸しスイッチが操作され球貸しスイッチ信号が入力されると、カードユニット制御用マイクロコンピュータは、払出制御基板37にBRDY信号を出力する。この時点から所定の遅延時間が経過すると、カードユニット制御用マイクロコンピュータは、払出制御基板37にBRQ信号を出力する。
【0075】
そして、払出制御基板37の払出制御用CPU371は、カードユニット50に対するEXS信号を立ち上げ、カードユニット50からのBRQ信号の立ち下がりを検出すると、払出モータ289を駆動し、所定個の貸し球を遊技者に払い出す。このとき、振分ソレノイド310は駆動状態とされている。すなわち、球振分部材311を球貸し側に向ける。そして、払出が完了したら、払出制御用CPU371は、カードユニット50に対するEXS信号を立ち下げる。その後、カードユニット50からのBRDY信号がオン状態でなければ、賞球払出制御を実行する。
【0076】
以上のように、カードユニット50からの信号は全て払出制御基板37に入力される構成になっている。従って、球貸し制御に関して、カードユニット50から主基板31に信号が入力されることはなく、主基板31の基本回路53にカードユニット50の側から不正に信号が入力される余地はない。また、カードユニット50で用いられる電源電圧AC24Vは払出制御基板37から供給される。
【0077】
この実施の形態では、電源基板910から払出制御基板37に対して、リセット信号、復帰信号および電源断信号も入力される。リセット信号と復帰信号とはAND回路385に入力され、AND回路385の出力が払出制御用CPU371のリセット端子に入力される。また、電源断信号は、払出制御用CPU371のマスク不能割込(NMI)端子に入力される。さらに、払出制御基板37に存在するRAM(CPU内蔵RAMであってもよい。)の少なくとも一部は、電源基板910において作成されるバックアップ電源によって、バックアップされている。すなわち、遊技機に対する電力供給が停止しても、所定期間は、RAMの少なくとも一部の内容は保存される。
【0078】
なお、この実施の形態では、カードユニット50が遊技機とは別体として遊技機に隣接して設置されている場合を例にするが、カードユニット50は遊技機と一体化されていてもよい。また、コイン投入に応じてその金額に応じた遊技球が貸し出されるような場合でも本発明を適用できる。
【0079】
図9は、電源基板910の一構成例を示すブロック図である。電源基板910は、主基板31、図柄制御基板80、音制御基板70、ランプ制御基板35および払出制御基板37等の電気部品制御基板と独立して設置され、遊技機内の各電気部品制御基板および機構部品が使用する電圧を生成する。この例では、AC24V、VSL(DC+30V)、DC+21V、DC+12VおよびDC+5Vを生成する。また、バックアップ電源すなわち記憶保持手段となるコンデンサ916は、DC+5Vすなわち各基板上のIC等を駆動する電源のラインから充電される。なお、VSLは、整流回路912において、整流素子でAC24Vを整流昇圧することによって生成される。VSLは、ソレノイド駆動電源となる。
【0080】
電源基板910には、遊技機内の各電気部品制御基板や機構部品への電力供給を実行または遮断するための電源スイッチ914が設けられている。トランス911は、交流電源からの交流電圧を24Vに変換する。AC24V電圧は、コネクタ915に出力される。また、整流回路912は、AC24Vから+30Vの直流電圧を生成し、DC−DCコンバータ913およびコネクタ915に出力する。DC−DCコンバータ913は、1つまたは複数のコンバータIC920(図9では1つのみを示す。)を有し、VSLにもとづいて+21V、+12Vおよび+5Vを生成してコネクタ915に出力する。コンバータIC920の入力側には、比較的大容量のコンデンサ923が接続されている。従って、外部からの遊技機に対する電力供給が停止したときに、+30V、+12V、+5V等の直流電圧は、比較的緩やかに低下する。また、コネクタ915の入力側にも、比較的大容量のコンデンサ924が接続されている。従って、コネクタ915に出力される+30Vの直流電圧は、他の直流電圧よりもさらに緩やかに低下する。この結果、コンデンサ923,924は、後述する補助駆動電源の役割を果たす。コネクタ915は例えば中継基板に接続され、中継基板から各電気部品制御基板および機構部品に必要な電圧の電力が供給される。
【0081】
ただし、電源基板910に各電気部品制御基板に至る各コネクタを設け、電源基板910から、中継基板を介さずにそれぞれの基板に至る各電圧を供給するようにしてもよい。また、図9には1つのコネクタ915が代表して示されているが、コネクタは、各電気部品制御基板対応に設けられている。
【0082】
DC−DCコンバータ913からの+5Vラインは分岐してバックアップ+5Vラインを形成する。バックアップ+5Vラインとグラウンドレベルとの間には大容量のコンデンサ916が接続されている。コンデンサ916は、遊技機に対する電力供給が停止したときの電気部品制御基板のバックアップRAM(電源バックアップされているRAMすなわち電力供給停止時にも記憶内容保持状態となりうるバックアップ記憶手段)に対して記憶状態を保持できるように電力を供給するバックアップ電源となる。また、+5Vラインとバックアップ+5Vラインとの間に、逆流防止用のダイオード917が挿入される。なお、この実施の形態では、バックアップ用の+5Vは、主基板31および払出制御基板37に供給される。
【0083】
なお、バックアップ電源として、+5V電源から充電可能な電池を用いてもよい。電池を用いる場合には、+5V電源から電力供給されない状態が所定時間継続すると容量がなくなるような充電池が用いられる。また、上記のコンデンサ923,924の代わりに、+30V電源から充電可能な電池を用いてもよい。コンデンサ923の代わりに電池を用いる場合には、後述する払出確認期間以上の期間、賞球カウントスイッチ301Aや球貸しカウントスイッチ301Bに電力を供給可能な充電池が用いられる。また、コンデンサ924の代わりに電池を用いる場合には、後述する払出確認期間以上の期間、振分ソレノイド310に電力を供給可能な充電池が用いられる。なお、上記の電池は、充電機能を有するものでなくてもよく、例えばニッカド電池、アルカリ電池、マンガン電池などの電池が用いられる。
【0084】
また、電源基板910には、電源監視回路としての電源監視用IC902が搭載されている。電源監視用IC902は、VSL電圧を導入し、VSL電圧を監視することによって遊技機への電力供給停止の発生を検出する。具体的には、VSL電圧が所定値(この例では+22V)以下になったら、電力供給の停止が生ずるとして電源断信号を出力する。従って、賞球カウントスイッチ301Aによる賞球の検出が有効に行われているときに電源供給停止時処理を開始することができる。従って、電源供給停止時処理を開始したあとしばらくは補助駆動電源にたよることなく賞球の検出が可能となり、補助駆動電源としてのコンデンサ923の容量が少なくて済む。なお、監視対象の電源電圧は、各電気部品制御基板に搭載されている回路素子の電源電圧(この例では+5V)よりも高い電圧であることが好ましい。この例では、交流から直流に変換された直後の電圧であるVSLが用いられている。電源監視用IC902からの電源断信号は、主基板31や払出制御基板37等に供給される。
【0085】
電源監視用IC902が電力供給の停止を検知するための所定値は、通常時の電圧より低いが、各電気部品制御基板上のCPUが暫くの間動作しうる程度の電圧である。また、電源監視用IC902が、CPU等の回路素子を駆動するための電圧(この例では+5V)よりも高く、また、交流から直流に変換された直後の電圧を監視するように構成されているので、CPUが必要とする電圧に対して監視範囲を広げることができる。従って、より精密な監視を行うことができる。
【0086】
さらに、監視電圧としてVSL(+30V)を用いる場合には、遊技機の各種スイッチに供給される電圧が+12Vであることから、電源瞬断時のスイッチオン誤検出の防止も期待できる。すなわち、+30V電源の電圧を監視すると、+30V作成の以降に作られる+12Vが落ち始める以前の段階でそれの低下を検出できる。+12V電源の電圧が低下するとスイッチ出力がオン状態を呈するようになるが、+12Vより早く低下する+30V電源電圧を監視して電力供給の停止を認識すれば、スイッチ出力がオン状態を呈する前に電源復旧待ちの状態に入ってスイッチ出力を検出しない状態となることができる。
【0087】
また、監視電圧としてのVSL(+30V)の電源監視用IC902への入力ラインと異なり、ソレノイドやモータなどに供給される電圧としてのVSL(+30V)のコネクタ915への入力ラインには大容量のコンデンサ924が接続されている。従って、監視電圧としてのVSL(+30V)は、大容量のコンデンサ924が接続されているコネクタ915に出力されるVSL(+30V)より早く低下する。すなわち、監視電圧としてのVSL(+30V)が落ち始めたあとも、所定期間は、ソレノイドやモータなどに供給される電圧としてのVSL(+30V)の供給状態が維持される。その後、ソレノイドやモータなどに供給される電圧としてのVSL(+30V)は、緩やかに低下してく。よって、監視電圧としてのVSL(+30V)が落ち始める場合であっても、所定期間は、ソレノイドやモータなどを駆動可能な状態とすることができる。また、コネクタ915に出力されるVSL(+30V)が落ち始める前に、電力供給の停止を認識することができる。
【0088】
また、電源監視用IC902は、電気部品制御基板とは別個の電源基板910に搭載されているので、電源監視回路から複数の電気部品制御基板に電源断信号を供給することができる。電源断信号を必要とする電気部品制御基板が幾つあっても電源監視手段は1つ設けられていればよいので、各電気部品制御基板における各電気部品制御手段が後述する復旧制御を行っても、遊技機のコストはさほど上昇しない。
【0089】
なお、図9に示された構成では、電源監視用IC902の検出信号(電源断信号)は、バッファ回路918,919を介してそれぞれの電気部品制御基板(例えば主基板31と払出制御基板37)に伝達されるが、例えば、1つの検出信号を中継基板に伝達し、中継基板から各電気部品制御基板に同じ信号を分配する構成でもよい。また、電源断信号を必要とする基板数に応じたバッファ回路を設けてもよい。さらに、主基板31と払出制御基板37とに出力される電源断信号について、電源断信号を出力することになる電源監視回路の監視電圧を異ならせてもよい。
【0090】
図9に示すように、電源基板910には、押しボタン構造のクリアスイッチ921が搭載されている。クリアスイッチ921が押下されるとローレベル(オン状態)のクリアスイッチ信号が出力され、コネクタ915を介して主基板31等に送信される。また、クリアスイッチ921が押下されていなければハイレベル(オフ状態)の信号が出力される。
【0091】
なお、クリアスイッチ921が、押しボタン構造以外の他の構成とされていてもよい。図10は、クリアスイッチ921の他の構成例を示す構成図である。図10に示すクリアスイッチ921は、「OFF」、「ON」および「クリア」の選択切り換えを行うための切換操作部921aを有する。切換操作部921aによって、「OFF」が選択されているときは何らの信号も発生しない。「ON」が選択されているときはハイレベルの信号を出力する。なお、クリアスイッチ921が、遊技機1に対する電源供給のオン/オフ切換のためのスイッチも兼ねていてもよい。その場合、「OFF」が選択されると、遊技機1に対する電源供給が停止された状態(遊技機の電源がオフの状態)になる。「ON」または「クリア」が選択されると、遊技機1に対して電源供給が行われる状態(遊技機の電源がオンの状態)になる。また、「クリア」が選択されているときに、ローレベルのクリアスイッチ信号が出力される。
【0092】
この実施の形態では、クリアスイッチ921が電源基板910に搭載されているので、遊技盤6の入れ替え等の場合に入れ替え後の遊技盤6に対して電源基板910をそのまま使用しても、入れ替え後の遊技盤6において、そのままで遊技状態復旧処理等を実行することができる。すなわち、電源基板910の使い回しを行うことができる。なお、電源基板910ではなく、別の箇所にクリアスイッチ921が搭載される構成としてもよい。別の箇所としては、例えば、クリアスイッチ921が搭載されるスイッチ基板や、クリアスイッチ921と電源スイッチ914とが搭載されるターミナル基板などが考えられる。
【0093】
電源基板910には、各基板にリセット信号および復帰信号を供給するリセット管理回路940が搭載されている。リセット管理回路940は、起動順序制御手段の一実現例である。
【0094】
図11は、リセット管理回路940の構成例を示すブロック図である。リセット管理回路940において、リセット回路65におけるリセットIC651は、電源投入時に、外付けのコンデンサの容量で決まる所定時間だけ出力をローレベルとし、所定時間が経過すると出力をハイレベルにする。すなわち、リセット信号をハイレベルに立ち上げてCPU56を動作可能状態にする。また、リセットIC651は、電源監視用IC902が監視する電源電圧と等しい電源電圧であるVSLの電源電圧を監視して電圧値が所定値(電源監視回路が電源断信号を出力する電源電圧値よりも低い値)以下になると出力をローレベルにする。従って、CPU56および払出制御用CPU371は、電源監視用IC902からの電源断信号に応じて所定の電力供給停止時処理を行った後、システムリセットされる(すなわち、システムの最初の状態に戻される)。
【0095】
図11に示すように、リセットIC651に外付けされているコンデンサには、リセットIC651に監視電圧を導入する電源電圧ラインを分岐させたラインが導入されている。このコンデンサは、電力供給が開始されたときに、リセットIC651に導入される監視電圧がその所定値以上の値となることを遅延させるために設けられている。従って、電源供給が開始されると、リセットIC651に導入される電圧は、電源供給が開始してから所定期間が経過したあとに、リセット信号をハイレベルに立ち上げることとなる所定値に到達することとなる。この所定期間は、コンデンサの容量によって決まり、容量を大きくすると期間を長くすることができる。
【0096】
リセットIC651の出力は、リセット信号回路950における各回路941〜949を介して、バッファ回路961〜964および遅延回路960に供給される。遅延回路960の出力はバッファ回路965に入力する。そして、バッファ回路961〜965が各電気部品制御基板にリセット信号として供給される。従って、リセットIC651の出力がハイレベルになると、各電気部品制御基板におけるCPUが動作可能状態になる。
【0097】
図11に示すように、リセットIC651からのリセット信号は、NAND回路947に入力されるとともに、反転回路(NOT回路)944を介してカウンタIC941のクリア端子に入力される。カウンタIC941は、クリア端子への入力がローレベルになると、発振器943からのクロック信号をカウントする。そして、カウンタIC941のQ5出力がNOT回路945,946を介してNAND回路947に入力される。また、カウンタIC941のQ6出力は、フリップフロップ(FF)942のクロック端子に入力される。フリップフロップ942のD入力はハイレベルに固定され、Q出力は論理和回路(OR回路)949に入力される。OR回路949の他方の入力には、NAND回路947の出力がNOT回路948を介して導入される。そして、OR回路949の出力が、バッファ回路961〜965を介して各CPUに供給されている。このような構成によれば、電源投入時に、各CPUのリセット端子に2回のリセット信号(ローレベル信号)が与えられるので、各CPUは、確実に動作を開始する。
【0098】
そして、例えば、電源監視回路の検出電圧(電源断信号を出力することになる電圧)を+22Vとし、リセット信号をローレベルにするための検出電圧を+9Vとする。そのように構成した場合には、電源監視回路とシステムリセット回路65とが、同一の電源VSLの電圧を監視するので、電圧監視回路が電源断信号を出力するタイミングとシステムリセット回路65がシステムリセット信号を出力するタイミングの差を所望の所定期間に確実に設定することができる。所望の所定期間とは、電源監視回路からの電源断信号に応じて電力供給停止時処理を開始してから電力供給停止時処理が確実に完了するまでの期間である。
【0099】
なお、電源監視回路とシステムリセット回路65とが監視する電源の電圧は異なっていてもよい。また、システムリセット回路65は、第2の電源監視手段に相当する。
【0100】
この例では、電源監視手段が検出信号を出力することになる検出条件は+30V電源電圧が+22Vにまで低下したことであり、リセットIC651がリセットレベルであるローレベルを出力することになる条件は+30V電源電圧が+9Vにまで低下したことになる。ただし、ここで用いられている電圧値は一例であって、他の値を用いてもよい。
【0101】
ただし、監視範囲が狭まるが、電源監視手段およびリセットIC651の監視電圧として+5V電源電圧を用いることも可能である。その場合にも、電源監視回路の検出電圧は、リセットIC651の検出電圧よりも高く設定される。
【0102】
主基板31のCPU56および払出制御基板37の払出制御用CPU371の駆動電源である+5V電源から電力が供給されていない間、RAMの少なくとも一部は、電源基板910から供給されるバックアップ電源によってバックアップされ、遊技機に対する電源が断しても内容は保存される。そして、電源が復旧すると、リセット管理回路940からのリセット信号がハイレベルになるので、CPU56および払出制御用CPU371は、通常の動作状態に復帰する。そのとき、必要なデータがバックアップRAMに保存されているので、停電等からの復旧時に停電発生時の遊技状態に復帰することができる。
【0103】
なお、図11には、電源投入時に各電気部品制御基板のCPUのリセット端子に2回のリセット信号(ローレベル信号)が与えられる構成が示されたが、リセット信号の立ち上がりタイミングが1回しかなくても確実にリセット解除されるCPUを使用する場合には、符号941〜949で示された回路素子は不要である。そのような場合などには、符号941〜949で示された回路素子を設けない構成としてもよい。この場合、リセットIC651の出力がそのままバッファ回路961〜964および遅延回路960に接続される。
【0104】
また、上記の例では、電源基板910にリセット回路65が設けられ、主基板31や払出制御基板37などの各基板にリセット信号や復帰信号を出力するようにしていたが、主基板31や払出制御基板37などの各基板それぞれにリセット回路を設ける構成としてもよい。
【0105】
この実施の形態では、電源投入時に、リセット回路65におけるリセットIC651は、外付けのコンデンサの容量で決まる所定時間だけ各電気部品制御基板のCPUに供給しているリセット信号の立ち上げ遅延させる。すなわち、リセットIC651の外付けのコンデンサの容量を、所定の遅延時間を生成するような値に選定すれば、外付けのコンデンサの容量で決まる所定時間だけ出力がローレベルとなり、所定時間が経過すると出力がハイレベルとなる。
【0106】
従って、電源投入時に、リセット信号がハイレベルに立ち上がるタイミングを遅らせて、電源監視回路からの電源断信号(NMI信号)がハイレベルに立ち上がった後にリセット信号をハイレベルに立ち上げるようにすることができ、リセット状態が解除されたときに電源断信号が出力状態となっていて、電源供給が再開して復旧しているときに電源断処理が実行されてしまうことを防止することができる。
【0107】
また、この実施の形態では、電源基板910から各電気部品制御基板のCPUにリセット信号が供給されるときに、遅延回路960が、主基板31のCPU56に対するリセット信号の立ち上げを遅延させる。従って、電源投入時に、主基板31のCPU56が備えるリセット端子の入力信号は、他の電気部品制御基板のCPUに供給されるリセット信号が立ち上げられるときよりも遅く立ち上げられる。
【0108】
例えば、主基板31のCPU56が他の電気部品制御基板に対して制御コマンドを出力する際に、他の電気部品制御基板におけるCPUは既に立ち上がっているので、制御コマンドは確実に受信側の電気部品制御基板のCPUで受信される。
【0109】
さらに、電源基板910には、待機期間を計測して復帰信号を出力する復帰信号出力手段の一例であるカウンタ971が搭載されている。カウンタ971は、電源断信号がローレベルになってクリアが解けると、発振器943からのクロック信号をカウントする。そして、カウントアップすると、Q出力として、ハイレベルの1パルスを発生する。そのパルス信号は反転回路972で論理反転され、バッファ回路973および遅延回路974に入力する。遅延回路974は、入力信号を所定期間遅延させてバッファ回路975に入力させる。
【0110】
バッファ回路973の出力は、払出制御基板37への復帰信号となる。また、バッファ回路975の出力は、主基板31への復帰信号となる。なお、バッファ回路973,975は、払出制御基板37、主基板31に設けられていてもよい。
【0111】
図12は、主基板31におけるCPU56周りの一構成例を示すブロック図である。図12に示すように、電源基板910の電源監視回路(電源監視手段)からの電源断信号が、CPU56のマスク不能割込端子(XNMI端子)に接続されている。上述したように、電源監視回路は、遊技機が使用する各種直流電源のうちのいずれかの電源の電圧を監視して電源電圧低下を検出する回路である。この実施の形態では、VSLの電源電圧を監視して電圧値が所定値以下になるとローレベルの電源断信号を発生する。VSLは、遊技機における直流電圧のうちで最大のものであり、この例では+30Vである。従って、CPU56は、割込処理によって電源断の発生を確認することができる。
【0112】
また、図12に示すように、電源基板910からのリセット信号と復帰信号とはAND回路161に入力され、AND回路161の出力がCPU56のリセット端子(リセット信号入力部)に入力される。
【0113】
図13は、この実施の形態における各基板の立ちあがりタイミングおよび電源復旧時の各CPUに入力されるリセット信号と電源断信号との関係の一例を示すタイミング図である。遊技機に電源が投入され、VSL電源電圧が上昇して所定値(本例では+9V)に到達すると、システムリセット回路65は、上述した外付けのコンデンサの容量に応じた所定の遅延時間が経過したあと、出力信号をハイレベルに立ち上げる。システムリセット回路65が出力信号を立ち上げると、主基板31以外の各電気部品制御基板に供給されるリセット信号が立ち上げられ、主基板31以外の各電気部品制御基板のCPUが動作を開始する。外付けのコンデンサの容量に応じた遅延時間は、電源断信号がハイレベルに立ち上がることとなる電圧値(本例では+22V)にVSL電源電圧が到達した後に、リセット信号が立ち上がるように予め定められた時間とされる。すなわち、本例では、リセット信号の立ち上がりが上記の遅延時間遅れるように、リセットIC651に外付けされているコンデンサの容量を定める。VSL電源電圧がさらに上昇し、所定値(本例では+22V)に到達すると、電源監視回路からの電源断信号はハイレベルになる。
【0114】
また、システムリセット回路65が出力信号を立ち上げると、主基板31のCPU56に供給されているリセット信号は、遅延回路960によって遅延されたあとハイレベルに立ち上げられる。従って、図13に示すように、主基板31のCPU56に供給されるリセット信号が立ち上げられるタイミングは、他の電気部品制御基板のCPUに供給されているリセット信号が立ち上げられたあと遅延回路960によって遅延される時間が経過したあとになる。主基板31のCPU56に供給されていたリセット信号が立ち上げられると、主基板31のCPU56が動作を開始する。
【0115】
上記のように、主基板31のCPU56に供給されているリセット信号の立ち上げを遅延させる遅延回路960を設ける構成とし、主基板31のCPU56が他の電気部品制御基板よりも遅れて制御動作を開始する構成とされているので、例えば、主基板31のCPU56が他の電気部品制御基板に対して制御コマンドを出力する際には、他の電気部品制御基板におけるCPUは既に立ち上がっている。従って、主基板31が出力した制御コマンドは確実に受信側の電気部品制御基板のCPUで確実に受信される。
【0116】
また、上記のように、システムリセット回路65に遅延手段(具体的には、リセットIC651に外付けされているコンデンサ)を設ける構成としたことで、システムリセット回路65の発するリセット信号がハイレベルになるタイミングを所定時間遅らせることができ、電源断信号がハイレベル(NMIを発生させないレベル)に立ち上がった後にリセット信号を立ち上げるようにすることができるため、リセット信号が立ち上がってリセット解除された後でも電源断信号がローレベルとなっている状況は発生しない。すなわち、CPUが動作開始する時点では電源断信号は必ずハイレベルになっているので、電源断処理が実行されてしまうことを確実に防止することができる。なお、システムリセット回路の後段に出力信号を遅延させる遅延回路を設ける構成とし、この遅延回路を遅延手段とするなど、他の構成によって遅延手段を実現するようにしてもよい。
【0117】
図14は、カウンタ971の作用を説明するためのタイミング図である。図14(A)に示すように、電源電圧が低下し、VSLの電圧値が電源断信号出力レベル(この例では+22V)まで低下すると電源断信号が発生する。具体的には、電源断信号がローレベルになる。すると、後述するように、主基板31のCPU31および払出制御用CPU371は、電力供給停止時処理の実行を開始し、その処理が終了すると、何の制御もしないループ状態(待機状態)に入る。
【0118】
カウンタ971は、電源断信号がローレベルになるとカウントを開始するのであるが、カウントアップ値は、電源断信号がローレベルになってから、VSLの電圧値がVcc生成可能電圧にまで低下する時間以上に設定される。すなわち、少なくとも、電源電圧が、制御動作が不能になる電圧にまで低下する時間以上に設定される。カウンタ971はVccを電源として動作するので、カウントアップ値は、カウンタ971の動作可能期間に相当する値以上に設定される。従って、一般には、カウンタ971がカウントアップして復帰信号が出力される前に、カウンタ971およびその他の回路部品は動作しなくなる。
【0119】
電源の瞬断等が生ずると、図14(B)に示すように、VSLの電圧レベルが短期間低下した後に復旧する。VSLの電圧レベルが電源断信号出力レベル以下になると、電源断信号がローレベルになって、電力供給停止時処理が開始される。そして、CPU56および払出制御用CPU371は電力供給停止時処理終了後にループ状態に入る。何らの制御も行わないと、ループ処理から抜けられないのであるが、この場合には、カウンタ971がカウントアップして復帰信号が発生する。
【0120】
図7および図8に示されたように、主基板31および払出制御基板371において、復帰信号は、AND回路161,385を介して、CPU56および払出制御用CPU371のリセット端子に入力される。従って、CPU56および払出制御用CPU371にはシステムリセットがかかる。その結果、CPU56および払出制御用CPU371はループ状態から抜け出すことができる。
【0121】
なお、図14(B)には、カウンタ971のカウントアップ後に、直ちに復帰信号が出力される場合が示されているが、図11に示されたように電源基板910には遅延回路974があるので、主基板31のCPU56に対する復帰信号の供給タイミングは、払出制御用CPU371に対する復帰信号の供給タイミングよりも遅れる。すなわち、通常の電力供給開始時にリセット信号が与えられる場合と同様に、遊技制御手段のリセット解除タイミングは、払出制御手段のリセット解除タイミングに対して遅れる。よって、復帰信号によって制御動作が復旧する場合も、遊技制御手段は、他の電気部品制御手段に対して、遅れて起動されることになる。
【0122】
図15および図16は、この実施の形態における出力ポートの割り当てを示す説明図である。図15に示すように、出力ポート0は各電気部品制御基板に送出される制御コマンドのINT信号の出力ポートである。また、払出制御基板37に送出される払出制御コマンドの8ビットのデータは出力ポート1から出力され、図柄制御基板80に送出される表示制御コマンドの8ビットのデータは出力ポート2から出力され、ランプ制御基板35に送出されるランプ制御コマンドの8ビットのデータは出力ポート3から出力される。そして、図16に示すように、音制御基板70に送出される音制御コマンドの8ビットのデータは出力ポート4から出力される。
【0123】
また、出力ポート5から、情報出力回路64を介して情報端子板34やターミナル基板160に至る各種情報出力用信号すなわち制御に関わる情報の出力データが出力される。そして、出力ポート6から、可変入賞球装置15を開閉するためのソレノイド16、大入賞口の開閉板2を開閉するためのソレノイド21、および大入賞口内の経路を切り換えるためのソレノイド21Aに対する駆動信号が出力される。
【0124】
図16に示すように、払出制御基板37、図柄制御基板80、ランプ制御基板35および音制御基板70に対して出力される各INT信号(払出制御信号INT、表示制御信号INT、ランプ制御信号INTおよび音声制御信号INT)を出力する出力ポート(出力ポート0)と、払出制御信号CD0〜CD7、表示制御信号CD0〜CD7、ランプ制御信号CD0〜CD7および音声制御信号CD0〜CD7を出力する出力ポート(出力ポート1〜4)とは、別ポートである。
【0125】
従って、INT信号を出力する際に、誤って払出制御信号CD0〜CD7、表示制御信号CD0〜CD7、ランプ制御信号CD0〜CD7および音声制御信号CD0〜CD7を変化させてしまう可能性が低減する。また、払出制御信号CD0〜CD7、表示制御信号CD0〜CD7、ランプ制御信号CD0〜CD7または音声制御信号CD0〜CD7を出力する際に、誤ってINT信号を変化させてしまう可能性が低減する。その結果、主基板31の遊技制御手段から各電気部品制御基板に対するコマンドは、より確実に送出されることになる。さらに、各INT信号は、全て出力ポート0から出力されるように構成されているので、遊技制御手段のINT信号出力処理の負担が軽減される。
【0126】
図17は、この実施の形態における入力ポートのビット割り当てを示す説明図である。図17に示すように、入力ポート0のビット0〜7には、それぞれ、入賞口スイッチ33a,39a,29a,30a、ゲートスイッチ32a、始動口スイッチ14a、カウントスイッチ23、V入賞スイッチ22の検出信号が入力される。また、入力ポート1のビット0〜4には、それぞれ、賞球カウントスイッチ301A、満タンスイッチ48、球切れスイッチ187の検出信号、カウントスイッチ短絡信号およびクリアスイッチ921の検出信号が入力される。なお、各スイッチからの検出信号は、スイッチ回路58において論理反転されている。このように、クリアスイッチ921の検出信号すなわち操作手段の操作入力は、遊技球を検出するためのスイッチの検出信号が入力される入力ポート(8ビット構成の入力部)と同一の入力ポートにおけるビット(入力ポート回路)に入力されている。
【0127】
次に遊技機の動作について説明する。図18は、主基板31における遊技制御手段(CPU56およびROM,RAM等の周辺回路)が実行するメイン処理を示すフローチャートである。遊技機に対して電源が投入され、リセット端子の入力レベルがハイレベルになると、CPU56は、ステップS1以降のメイン処理を開始する。メイン処理において、CPU56は、まず、必要な初期設定を行う。
【0128】
初期設定処理において、CPU56は、まず、割込禁止に設定する(ステップS1)。次に、割込モードを割込モード2に設定し(ステップS2)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。そして、内蔵デバイスレジスタの初期化を行う(ステップS4)。また、内蔵デバイス(内蔵周辺回路)であるCTC(カウンタ/タイマ)およびPIO(パラレル入出力ポート)の初期化(ステップS5)を行った後、RAMをアクセス可能状態に設定する(ステップS6)。
【0129】
この実施の形態で用いられるCPU56は、I/Oポート(PIO)およびタイマ/カウンタ回路(CTC)も内蔵している。また、CTCは、2本の外部クロック/タイマトリガ入力CLK/TRG2,3と2本のタイマ出力ZC/TO0,1を備えている。
【0130】
この実施の形態で用いられているCPU56には、マスク可能な割込のモードとして以下の3種類のモードが用意されている。なお、マスク可能な割込が発生すると、CPU56は、自動的に割込禁止状態に設定するとともに、プログラムカウンタの内容をスタックにセーブする。
【0131】
割込モード0:割込要求を行った内蔵デバイスがRST命令(1バイト)またはCALL命令(3バイト)をCPUの内部データバス上に送出する。よって、CPU56は、RST命令に対応したアドレスまたはCALL命令で指定されるアドレスの命令を実行する。リセット時に、CPU56は自動的に割込モード0になる。よって、割込モード1または割込モード2に設定したい場合には、初期設定処理において、割込モード1または割込モード2に設定するための処理を行う必要がある。
【0132】
割込モード1:割込が受け付けられると、常に0038(h)番地に飛ぶモードである。
【0133】
割込モード2:CPU56の特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビット0)から合成されるアドレスが、割込番地を示すモードである。すなわち、割込番地は、上位アドレスが特定レジスタの値とされ下位アドレスが割込ベクタとされた2バイトで示されるアドレスである。従って、任意の(飛び飛びではあるが)偶数番地に割込処理を設置することができる。各内蔵デバイスは割込要求を行うときに割込ベクタを送出する機能を有している。
【0134】
よって、割込モード2に設定されると、各内蔵デバイスからの割込要求を容易に処理することが可能になり、また、プログラムにおける任意の位置に割込処理を設置することが可能になる。さらに、割込モード1とは異なり、割込発生要因毎のそれぞれの割込処理を用意しておくことも容易である。上述したように、この実施の形態では、初期設定処理のステップS2において、CPU56は割込モード2に設定される。
【0135】
次いで、CPU56は、入力ポート1を介して入力されるクリアスイッチ921の出力信号の状態を1回だけ確認する(ステップS7)。その確認においてオンを検出した場合には、CPU56は、通常の初期化処理を実行する(ステップS11〜ステップS15)。クリアスイッチ921がオンである場合(押下されている場合)には、ローレベルのクリアスイッチ信号が出力されている。なお、入力ポート1では、クリアスイッチ信号のオン状態はハイレベルである(図17参照)。また、例えば、遊技店員は、クリアスイッチ921をオン状態にしながら遊技機に対する電力供給を開始することによって、容易に初期化処理を実行させることができる。すなわち、RAMクリア等を行うことができる。
【0136】
クリアスイッチ921がオンの状態でない場合には、遊技機への電力供給が停止したときにバックアップRAM領域のデータ保護処理(例えばパリティデータの付加等の電力供給停止時処理)が行われたか否か確認する(ステップS8)。この実施の形態では、電力供給の停止が生じた場合には、バックアップRAM領域のデータを保護するための処理が行われている。そのような保護処理が行われていた場合をバックアップありとする。そのような保護処理が行われていないことを確認したら、CPU56は初期化処理を実行する。
【0137】
この実施の形態では、バックアップRAM領域にバックアップデータがあるか否かは、電力供給停止時処理においてバックアップRAM領域に設定されるバックアップフラグの状態によって確認される。この例では、図19に示すように、バックアップフラグ領域に「55H」が設定されていればバックアップあり(オン状態)を意味し、「55H」以外の値が設定されていればバックアップなし(オフ状態)を意味する。
【0138】
バックアップありを確認したら、CPU56は、バックアップRAM領域のデータチェック(この例ではパリティチェック)を行う(ステップS9)。この実施の形態では、クリアデータ(00)をチェックサムデータエリアにセットし、チェックサム算出開始アドレスをポインタにセットする。また、チェックサムの対象となるデータ数に対応するチェックサム算出回数をセットする。そして、チェックサムデータエリアの内容とポインタが指すRAM領域の内容との排他的論理和を演算する。演算結果をチェックサムデータエリアにストアするとともに、ポインタの値を1増やし、チェックサム算出回数の値を1減算する。以上の処理が、チェックサム算出回数の値が0になるまで繰り返される。チェックサム算出回数の値が0になったら、CPU56は、チェックサムデータエリアの内容の各ビットの値を反転し、反転後のデータをチェックサムとする。
【0139】
電力供給停止時処理において、上記の処理と同様の処理によってチェックサムが算出され、チェックサムはバックアップRAM領域に保存されている。ステップS9では、算出したチェックサムと保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されているはずであるから、チェック結果(比較結果)は正常(一致)になる。チェック結果が正常でないということは、バックアップRAM領域のデータが、電力供給停止時のデータとは異なっていることを意味する。そのような場合には、内部状態を電力供給停止時の状態に戻すことができないので、電力供給の停止からの復旧時でない電源投入時に実行される初期化処理を実行する。
【0140】
チェック結果が正常であれば、CPU56は、遊技制御手段の内部状態と表示制御手段等の電気部品制御手段の制御状態を電力供給停止時の状態に戻すための遊技状態復旧処理を行う(ステップS10)。そして、バックアップRAM領域に保存されていたPC(プログラムカウンタ)の退避値がPCに設定され、そのアドレスに復帰する。
【0141】
このように、バックアップフラグとチェックサム等のチェックデータとを用いてバックアップRAM領域のデータが保存されているか否かを確認することによって、遊技状態を電力供給停止時の状態に正確に戻すことができる。すなわち、バックアップRAM領域のデータにもとづく状態復旧処理の確実性が向上する。なお、この実施の形態では、バックアップフラグとチェックデータとの双方を用いてバックアップRAM領域のデータが保存されているか否かを確認しているが、いずれか一方のみを用いてもよい。すなわち、バックアップフラグとチェックデータとのいずれかを、状態復旧処理を実行するための契機としてもよい。
【0142】
また、バックアップフラグの状態によって「バックアップあり」が確認されなかった場合には、後述する遊技状態復旧処理を行うことなく後述する初期化処理を行うようにしているので、バックアップデータが存在しないのにもかかわらず遊技状態復旧処理が実行されてしまうことを防止することができ、初期化処理によって制御状態を初期状態に戻すことが可能となる。
【0143】
さらに、チェックデータを用いたチェック結果が正常でなかった場合には、後述する遊技状態復旧処理を行うことなく後述する初期化処理を行うようにしているので、電力供給停止時とは異なる内容となってしまっているバックアップデータにもとづいて遊技状態復旧処理が実行されてしまうことを防止することができ、初期化処理によって制御状態を初期状態に戻すことが可能となる。
【0144】
初期化処理では、CPU56は、まず、RAMクリア処理を行う(ステップS11)。また、所定の作業領域(例えば、普通図柄判定用乱数カウンタ、普通図柄判定用バッファ、特別図柄左中右図柄バッファ、特別図柄プロセスフラグ、払出コマンド格納ポインタ、賞球中フラグ、球切れフラグ、払出停止フラグなど制御状態に応じて選択的に処理を行うためのフラグ)に初期値を設定する作業領域設定処理を行う(ステップS12)。
【0145】
さらに、CPU56は、所定の払出禁止条件が成立しているか否かを判定し(ステップS13a)、払出禁止条件が成立していなければ、球払出装置97からの払出が可能であることを指示する払出許可状態指定コマンド(以下、払出可能状態指定コマンドという。)を払出制御基板37に対して送信する処理を行う(ステップS13b)。なお、払出禁止条件が成立していれば、主基板31の制御状態を払出禁止状態に設定する。本例では、球切れフラグを球切れ状態を示す状態(オン状態)とするとともに、満タンフラグを下皿満タンを示す状態(オン状態)とすることで、主基板31の制御状態を払出禁止状態に設定する。払出禁止条件は、例えば球切れ状態となっている場合や下皿満タン状態となっている場合など、払い出すべき遊技球を払い出すことができないおそれがある場合や遊技球を払い出すことが適当でない場合に成立する。従って、ステップS13aでは、例えば、球切れスイッチ187による検出状態の確認や、満タンスイッチ48による検出状態の確認が行われる。なお、ステップS13aの判定処理が実行される段階では後述するタイマ割込の設定が行われていないため、ソフトウェアタイマによるウエイト処理などによって監視時間(例えば2ms)を作成し、後述するスイッチの状態を監視する処理(ステップS150〜ステップS159)と同様の処理を実行することで、その監視時間毎に球切れスイッチ187や満タンスイッチ48の状態を監視してスイッチがオンしたか否かを判定するようにすればよい。
【0146】
また、CPU56は、他のサブ基板(ランプ制御基板35、音制御基板70、表示制御基板80)を初期化するための初期化コマンドを各サブ基板に送信する処理を実行する(ステップS14)。初期化コマンドとして、可変表示装置9に表示される初期図柄を示すコマンド(表示制御基板80に対して)や賞球ランプ51および球切れランプ52の消灯を指示するコマンド(ランプ制御基板35に対して)等がある。
【0147】
初期化処理では、払出制御基板37に対して、払出禁止条件が成立していない場合に払出可能状態指定コマンドが送信され、払出禁止条件が成立している場合に払出禁止状態指定コマンド(以下、払出停止状態指定コマンドという。)は送信されない。仮に、遊技機の状態が球払出装置97からの払出が可能でない状態(払出禁止条件が成立している状態)であった場合であっても、払出制御基板37における初期化処理にて払出禁止状態に設定されているはずなので問題はない。なお、払出可能状態指定コマンドおよび他のサブ基板に対する初期化コマンドの送信処理において、例えば、各コマンドが設定されているテーブル(ROM領域)のアドレスをポインタにセットし、後述するコマンドセット処理(図39参照)のような処理ルーチンをコールすればよい。
【0148】
そして、2ms毎に定期的にタイマ割込がかかるようにCPU56に設けられているCTCのレジスタの設定が行われる(ステップS15)。すなわち、初期値として2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。
【0149】
初期化処理の実行(ステップS11〜S15)が完了すると、メイン処理で、表示用乱数更新処理(ステップS17)および初期値用乱数更新処理(ステップS18)が繰り返し実行される。表示用乱数更新処理および初期値用乱数更新処理が実行されるときには割込禁止状態とされ(ステップS16)、表示用乱数更新処理および初期値用乱数更新処理の実行が終了すると割込許可状態とされる(ステップS19)。表示用乱数とは、可変表示装置9に表示される図柄を決定するための乱数であり、表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。また、初期値用乱数更新処理とは、初期値用乱数を発生するためのカウンタのカウント値を更新する処理である。初期値用乱数とは、大当りとするか否かを決定するための乱数を発生するためのカウンタ(大当り決定用乱数発生カウンタ)等のカウント値の初期値を決定するための乱数である。後述する遊技制御処理において、大当り決定用乱数発生カウンタのカウント値が1周すると、そのカウンタに初期値が設定される。
【0150】
なお、表示用乱数更新処理が実行されるときには割込禁止状態とされるのは、表示用乱数更新処理が後述するタイマ割込処理でも実行されることから、タイマ割込処理における処理と競合してしまうのを避けるためである。すなわち、ステップS17の処理中にタイマ割込が発生してタイマ割込処理中で表示用乱数を発生するためのカウンタのカウント値を更新してしまったのでは、カウント値の連続性が損なわれる場合がある。しかし、ステップS17の処理中では割込禁止状態にしておけば、そのような不都合が生ずることはない。
【0151】
図20は、遊技状態復旧処理の一例を示すフローチャートである。遊技状態復旧処理において、CPU56は、まず、スタックポインタの復帰処理を行う(ステップS81)。スタックポインタの値は、後で詳述する電力供給停止時処理において、所定のRAMエリア(電源バックアップされている作業領域におけるスタックポインタ退避バッファ)に退避している。よって、ステップS81では、そのRAMエリアの値をスタックポインタに設定することによって復帰させる。なお、復帰されたスタックポインタが指す領域(すなわちスタック領域)には、電力供給が停止したときのレジスタ値やプログラムカウンタ(PC)の値が退避している。
【0152】
次いで、CPU56は、払出停止状態であったか否か確認する(ステップS82)。払出停止状態であったか否かは、電源バックアップされているRAMエリアに保存されている所定の作業領域(例えば、普通図柄判定用乱数カウンタ、普通図柄判定用バッファ、特別図柄左中右図柄バッファ、特別図柄プロセスフラグ、払出コマンド格納ポインタ、賞球中フラグ、球切れフラグ、満タンフラグ、払出停止フラグなど)における払出状態データとしての払出停止フラグによって確認される。払出停止フラグは、球切れフラグまたは満タンフラグのいずれか一方がオン状態となったときにオン状態となり、球切れフラグおよび満タンフラグの双方がオフしたときにオフ状態となる。払出停止状態であった場合には、主基板31の制御状態を払出禁止状態に設定する。本例では、球切れフラグを球切れ状態を示す状態(オン状態)とするとともに、満タンフラグを下皿満タンを示す状態(オン状態)とすることで、主基板31の制御状態を払出禁止状態に設定する。払出停止状態でなかった場合には、払出制御手段に対して払出が可能であることを指示する払出制御コマンド(払出可能状態指定コマンド)を送信する(ステップS83)。なお、払出停止状態であった場合には払出の停止を指示する払出制御コマンド(払出停止状態指定コマンド)は送信されないが、払出制御基板37における復旧処理(図48参照)にて払出禁止状態に設定されているはずなので問題はない。
【0153】
補給球の不足や余剰球受皿4の満タンについて払出制御手段は認識できないので、遊技制御手段から通知しないと、停電等からの復旧時に、補給球の不足や余剰球受皿4の満タンであるにもかかわらず遊技球の払出処理を開始してしまうおそれがある。しかし、この実施の形態では、補給球の不足や余剰球受皿4の満タンでない場合に、遊技状態復旧処理において払出が可能であること指示する払出制御コマンドが送信されるとともに、その払出制御コマンドを受信しない限り払出制御手段が払出処理を実行しない構成とされているので、補給球の不足や余剰球受皿4の満タンであるにもかかわらず払出制御手段が遊技球の払出処理を開始してしまうことはない。なお、払出制御手段が実行する処理については、あとで詳しく説明する。
【0154】
次いで、CPU56は、電力供給が停止したときの可変表示装置9における特別図柄の表示状態に応じて、その表示状態を復旧させるための表示制御コマンドを送信する(ステップS84)。
【0155】
また、CPU56は、コマンド送信中フラグがオンしているか否か確認する(ステップS85)。すなわち、電源供給が停止したときにコマンドの送信中であったか否かを確認する。コマンド送信中フラグは、電源バックアップされているRAMエリアの所定の領域に保存されている。なお、コマンド送信中フラグは、後述するコマンド送信処理(図40参照)にて、コマンドの送信処理の実行中にセットされ、コマンドの送信処理を終えたときにリセットされるフラグである。コマンド送信中フラグがオンであれば、CPU56は、コマンド送信中フラグをリセットする(ステップS86)。そして、CPU56は、スタック領域における復帰アドレス(NMIによる電力供給停止時処理によって退避されたアドレス)を示す値を、後述するコマンド送信処理の最初のアドレスを示す値にセットする(ステップS87)。
【0156】
その後、CPU56は、バックアップフラグをクリアする(ステップS88)すなわち、前回の電力供給停止時に所定の記憶保護処理が実行されたことを示すフラグをリセットする。よって、制御状態の復旧後に不必要な情報が残存しないようにすることができる。また、スタック領域から各種レジスタの退避値を読み出して、各種レジスタ(IXレジスタ、HLレジスタ、DEレジスタ、BCレジスタ)に設定する(ステップS89)。すなわち、レジスタ復元処理を行う。なお、各レジスタが復元させる毎に、スタックポインタの値が減らされる。すなわち、スタックポインタの値が、スタック領域の1つ前のアドレスを指すように更新される。そして、パリティフラグがオンしていない場合には割込許可状態にする(ステップS90,S91)。最後に、AFレジスタ(アキュミュレータとフラグのレジスタ)をスタック領域から復元する(ステップS92)。
【0157】
そして、RET命令が実行される。RET命令が実行されるときには、CPU56は、スタックポインタが指す領域に格納されているデータをプログラムカウンタに設定することによってプログラムのリターン動作を実現する。ただし、ここでのリターン先は、遊技状態復旧処理をコールした部分ではない。なぜなら、ステップS81においてスタックポインタの復帰処理がなされ、ステップS89でレジスタの復元処理が終了した後では、スタック領域を指すスタックポインタは、NMIによる電力供給停止時処理が開始されたときに実行されていたプログラムのアドレスが退避している領域を指している。すなわち、復帰されたスタックポインタが指すスタック領域に格納されているリターンアドレスは、プログラムにおける前回の電力供給停止時にNMIが発生したアドレスである。従って、ステップS92の次のRET命令によって、電力供給停止時にNMIが発生したアドレスにリターンする。
【0158】
なお、ステップS87にてスタック領域における復帰アドレスを示す値がコマンド送信処理の最初のアドレスを示す値に変更されていた場合には、ステップS89でレジスタの復元処理が終了した後では、スタック領域を指すスタックポインタは、ステップS87にて書き換えられたコマンド送信処理のプログラムの最初を示すアドレスが退避している領域を指していることになる。従って、ステップS92の次のRET命令によって、コマンド送信処理が開始されるときのアドレスにリターンする。
【0159】
すなわち、本例では、スタック領域に退避されていたアドレスデータ(プログラムアドレスデータ)にもとづいて復旧制御が実行されている。
【0160】
タイマ割込が発生すると、CPU56は、レジスタの退避処理(ステップS20)を行った後、図21に示すステップS21〜S32の遊技制御処理を実行する。遊技制御処理において、CPU56は、まず、スイッチ回路58を介して、ゲートスイッチ32a、始動口スイッチ14a、カウントスイッチ23および入賞口スイッチ29a,30a,33a,39a等のスイッチの検出信号を入力し、それらの状態判定を行う(スイッチ処理:ステップS21)。
【0161】
次いで、パチンコ遊技機1の内部に備えられている自己診断機能によって種々の異常診断処理が行われ、その結果に応じて必要ならば警報が発せられる(エラー処理:ステップS22)。
【0162】
次に、遊技制御に用いられる大当り判定用の乱数等の各判定用乱数を生成するための各カウンタのカウント値を更新する処理を行う(ステップS23)。CPU56は、さらに、表示用乱数および初期値用乱数を生成するためのカウンタのカウント値を更新する処理を行う(ステップS24,S25)。
【0163】
さらに、CPU56は、特別図柄プロセス処理を行う(ステップS26)。特別図柄プロセス制御では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。また、普通図柄プロセス処理を行う(ステップS27)。普通図柄プロセス処理では、普通図柄表示器10の表示状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
【0164】
次いで、CPU56は、特別図柄に関する表示制御コマンドをRAM55の所定の領域に設定して表示制御コマンドを送出する処理を行う(特別図柄コマンド制御処理:ステップS28)。また、普通図柄に関する表示制御コマンドをRAM55の所定の領域に設定して表示制御コマンドを送出する処理を行う(普通図柄コマンド制御処理:ステップS29)。
【0165】
さらに、CPU56は、例えばホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う(ステップS30)。
【0166】
また、CPU56は、所定の条件が成立したときにソレノイド回路59に駆動指令を行う(ステップS31)。可変入賞球装置15または開閉板20を開状態または閉状態としたり、大入賞口内の遊技球通路を切り替えたりするために、ソレノイド回路59は、駆動指令に応じてソレノイド16,21,21Aを駆動する。
【0167】
そして、CPU56は、入賞口スイッチ29a,30a,33a,39aの検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する(ステップS32)。具体的には、入賞口スイッチ29a,30a,33a,39aがオンしたことにもとづく入賞検出に応じて、払出制御基板37に賞球個数を示す払出制御コマンドを出力する。払出制御基板37に搭載されている払出制御用CPU371は、賞球個数を示す払出制御コマンドに応じて球払出装置97を駆動する。その後、レジスタの内容を復帰させ(ステップS33)、割込許可状態に設定する(ステップS34)。
【0168】
以上の制御によって、この実施の形態では、遊技制御処理は2ms毎に起動されることになる。なお、この実施の形態では、タイマ割込処理で遊技制御処理が実行されているが、タイマ割込処理では例えば割込が発生したことを示すフラグのセットのみがなされ、遊技制御処理はメイン処理において実行されるようにしてもよい。
【0169】
図22〜図24は、電源基板910からの電源断信号に応じて実行されるマスク不能割込処理(電力供給停止時処理)の処理例を示すフローチャートである。なお、マスク不能割込処理とは、割込禁止がかけられない処理を意味する。マスク不能割込が発生すると、CPU56に内蔵されている割込制御機構は、マスク不能割込発生時に実行されていたプログラムのアドレス(具体的には実行完了後の次のアドレス)を、スタックポインタが指すスタック領域に退避させるとともに、スタックポインタの値を増やす。すなわち、スタックポインタの値がスタック領域の次のアドレスを指すように更新する。
【0170】
電力供給停止時処理において、CPU56は、AFレジスタ(アキュミュレータとフラグのレジスタ)を所定のバックアップRAM領域に退避する(ステップS451)。また、割込フラグをパリティフラグにコピーする(ステップS452)。パリティフラグはバックアップRAM領域に形成されている。また、BCレジスタ、DEレジスタ、HLレジスタ、IXレジスタおよびスタックポインタをバックアップRAM領域に退避する(ステップS454〜S458)。なお、電源復旧時には、退避された内容にもとづいてレジスタ内容が復元され、パリティフラグの内容に応じて、割込許可状態/禁止状態の内部設定がなされる。
【0171】
次いで、CPU56は、クリアデータ(00)を適当なレジスタにセットし(ステップS459)、処理数(この例では「7」)を別のレジスタにセットする(ステップS460)。また、出力ポート0のアドレスをIOポインタに設定する(ステップS461)。IOポインタとして、さらに別のレジスタが用いられる。
【0172】
そして、IOポインタが指すアドレスにクリアデータをセットするとともに(ステップS462)、IOポインタの値を1増やし(ステップS463)、処理数の値を1減算する(ステップS464)。ステップS462〜S464の処理が、処理数の値が0になるまで繰り返される(ステップS465)。その結果、全ての出力ポート0〜6(図15および図16参照)にクリアデータが設定される。図15および図16に示すように、この例では、「1」がオン状態であり、クリアデータである「00」が各出力ポートにセットされるので、全ての出力ポートがオフ状態になる。
【0173】
上記のように、各出力ポートがオフ状態になるので、保存される遊技状態と整合しない状況が発生することは確実に防止される。つまり、パチンコ遊技機のように可変入賞球装置を有している遊技機において、実装の関係上、可変入賞球装置における可変入賞口の位置と入賞を検出する入賞口スイッチの設置位置とを、ある程度離さざるを得ない。出力ポート、特に可変入賞球装置を開放状態にするための信号が出力される出力ポートを直ちにオフ状態にしないと、電力供給停止時に、可変入賞口に入賞したにもかかわらず、電力供給停止時処理の実行が開始されて入賞口スイッチの検出がなされない状況が起こりうる。その場合、可変入賞口に入賞があったことは保存されない。すなわち、実際に生じている遊技状態(入賞があったこと)と保存される遊技状態とが整合しない。しかし、この実施の形態では、出力ポートがクリアされて可変入賞球装置が閉じられるので、保存される遊技状態と整合しない状況が発生することは確実に防止される。
【0174】
また、電気部品の駆動が不能になる状態になる前に実行される電力供給停止時処理の際に、出力ポートをクリアすることができるので、電気部品の駆動が不能になる状態となる前に遊技制御手段によって制御される各電気部品を、適切な動作停止状態にすることができる。例えば、開放中の大入賞口を閉成させ、また開放中の可変入賞球装置15を閉成させるなど、電気部品についての作動を停止させたあとに電気部品の駆動が不能になる状態とすることができる。従って、適切な停止状態で電力供給の復旧を待つことが可能となる。
【0175】
さらに、電力供給停止時処理の際に、各電気部品を動作停止状態にするので、各電気部品を駆動するために電力が費やされることがなくなり、また、出力ポートからの信号出力に用いられる電流が遮断されるので、微量ではあるが電力消費を抑えることができる。
【0176】
さらに、この実施の形態では、所定期間(以下、払出確認期間という)、賞球カウントスイッチ301Aの検出信号をチェックする。そして、賞球カウントスイッチ301Aがオンしたら総賞球数バッファの内容を1減らす。
【0177】
なお、この実施の形態では、払出確認期間を計測するために、払出確認期間計測用カウンタが用いられる。払出確認期間計測用カウンタの値は、初期値mから、以下に説明するスイッチ検出処理のループ(S467から始まってS467に戻るループ)が1回実行される毎に−1され、その値が0になると、払出確認期間が終了したとする。検出処理のループでは、例外はあるがほぼ一定の処理が行われるので、ループの1周に要する時間のm倍の時間が、ほぼ払出確認期間に相当する。
【0178】
払出確認期間を計測するために、CPU56の内蔵タイマを用いてもよい。すなわち、スイッチ検出処理開始時に、内蔵タイマに所定値(払出確認期間に相当)を設定しておく。そして、スイッチ検出処理のループが1回実行される毎に、内蔵タイマのカウント値をチェックする。そして、カウント値が0になったら、払出確認期間が終了したとする。内蔵タイマの値が0になったことを検出するために内蔵タイマによる割込を用いることもできるが、この段階では制御内容(RAMに格納されている各値など)を変化させないように、割込を用いず、内蔵タイマのカウント値を読み出してチェックするようなプログラム構成の方が好ましい。
【0179】
また、払出確認期間は、遊技球が、球払出装置97から落下した時点(例えば図5に示すスプロケット292の下方の球通路293a,293bに送り出された時点)から、賞球カウントスイッチ301Aに到達するまでの時間以上に設定される。球払出装置97から賞球カウントスイッチ301Aまでの距離をLとすると、その間の落下時間tは、t=√(2L/g)(g:重力加速度)になるので、払出確認期間は、それ以上に設定される。払出確認期間の具体的な値は、距離Lの値や、落下時間tからどの程度余裕を持たせるかによって異なるが、例えば100[ms]〜150[ms]程度とされる。
遊技制御手段において貸し球の払出検出を行う場合にも、同様にして、払出確認期間が設定される。すなわち、遊技球が、球払出装置97から落下した時点(例えば図5に示すスプロケット292の下方の球通路293a,293bに送り出された時点)から、球貸しカウントスイッチ301Bに到達するまでの時間以上に設定される。従って、球払出装置97から球貸しカウントスイッチ301Bまでの距離をLとすると、その間の落下時間tは、やはりt=√(2L/g)(g:重力加速度)になるので、払出確認期間はそれ以上に設定される。この場合にも、払出確認期間の具体的な値は距離Lの値や、落下時間tからどの程度余裕を持たせるかによって異なるが、例えば100[ms]〜150[ms]程度とされる。
なお、球払出装置97から賞球カウントスイッチ301Aまでの距離と貸し球カウントスイッチ301Bまでの距離とが異なる場合には、球払出装置97からの距離が離れているスイッチの距離にもとづいて払出確認期間を定めるようにすればよい。
【0180】
少なくとも、スイッチ検出処理が実行される払出確認期間では、賞球カウントスイッチ301Aが遊技球を検出できる状態でなければならない。そこで、この実施の形態では、図9に示されたように、電源基板910におけるコンバータIC920の入力側に比較的大容量の補助駆動電源としてのコンデンサ923が接続されている。よって、遊技機に対する電力供給停止時にも、ある程度の期間は+12V電源電圧がスイッチ駆動可能な範囲に維持され、賞球カウントスイッチ301Aが動作可能になる。その期間が、上記の払出確認期間以上になるように、コンデンサ923の容量が決定される。
【0181】
なお、入力ポートおよびCPU56も、コンバータIC920で作成される+5V電源で駆動されるので、電力供給停止時にも、比較的長い期間動作可能になっている。
【0182】
上記のように、この例では、払出確認期間計測用カウンタに初期値mが設定される(ステップS466)。また、ステップS467において、2ms計測用カウンタに2msの時間に相当する初期値nが設定される。そして、2ms計測用カウンタの値が0になるまで(ステップS468)、2ms計測用カウンタの値が−1される(ステップS469)。
【0183】
2ms計測用カウンタの値が0になると、賞球カウントスイッチ301Aの検出信号の入力チェックが行われる。すなわち、後述するスイッチ処理およびスイッチチェック処理に類似した処理が行われる。具体的には、入力ポート1に入力されているデータを入力する(ステップS470)。次いで、クリアデータ(00)をセットする(ステップS471)。また、ポート入力データ、この場合には入力ポート1からの入力データを「比較値」として設定する(ステップS472)。さらに、賞球カウントスイッチ301Aのためのスイッチタイマのアドレスをポインタにセットする(ステップS473)。
【0184】
そして、ポインタ(スイッチタイマのアドレスが設定されている)が指すスイッチタイマをロードするとともに(ステップS474)、比較値を右(上位ビットから下位ビットへの方向)にシフトする(ステップS475)。比較値には入力ポート1のデータ設定されている。そして、この場合には、賞球カウントスイッチ301Aの検出信号がキャリーフラグに押し出される。
【0185】
キャリーフラグの値が「1」であれば(ステップS476)、すなわち賞球カウントスイッチ301Aの検出信号がオン状態であれば、スイッチタイマの値を1加算する(ステップS477)。キャリーフラグの値が「0」であれば、すなわち賞球カウントスイッチ301Aの検出信号がオフ状態であれば、スイッチタイマにクリアデータをセットする(ステップS478)。すなわち、スイッチがオフ状態であれば、スイッチタイマの値が0に戻る。
【0186】
そして、スイッチタイマの値が2になったときに(ステップS479)、総賞球数格納バッファの格納値を1減算するとともに(ステップS480)、賞球情報カウンタの値を+1する(ステップS481)。そして、賞球情報カウンタの値が10以上であれば(ステップS482)、賞球情報出力カウンタの値を+1するとともに(ステップS483)、賞球情報カウンタの値を−10する(ステップS484)。
【0187】
次いで、払出確認期間計測用カウンタの値を−1し(ステップS485)、その値が0になっていなければステップS467に戻る。
【0188】
以上の処理によって、払出確認期間内に賞球カウントスイッチ301Aがオンしたら、総賞球数格納バッファの値が−1される。バックアップRAMの内容を保存するための処理は、このようなスイッチ検出処理の後で行われるので、払出が完了した賞球について、必ず総賞球数格納バッファが−1される。従って、遊技球の払出に関して、保存される制御状態に矛盾が生じてしまうことが防止される。また、スイッチ検出処理において、遊技機外部への賞球情報出力のための賞球情報出力回数カウンタの演算も行われるので、外部に出力される賞球情報と実際の払出賞球数とが食い違ってしまうようなこともない。
【0189】
また、上記のスイッチ検出処理では、検出期間用カウンタを用いたタイマ処理が施されている。すなわち、2ms毎に賞球カウントスイッチ301Aの検出出力のチェックが行われ、2回連続してオン検出した場合に、賞球カウントスイッチ301Aが確実にオンしたと見なされる。すなわち、所定の遊技媒体検出判定期間(電力供給停止時処理において、遊技媒体(ここでは払い出された賞球)の検出の有無を判定するための期間。本例では、2ms以上の期間)の前後に2回連続してオン検出した場合に、1個の賞球の払出が完了したと見なされる。このように、本例では、遊技媒体検出判定期間を、通常遊技媒体検出判定期間(電力供給停止時処理での処理でない、通常の遊技状態において遊技媒体の有無を判定するための期間。本例では、後述するスイッチオン判定値(図34参照)によって決定される2ms以上の期間であって、後述する図32のステップS188の判断で用いられている。)と同じ期間としている。従って、通常の制御と同一の条件の下で、賞球カウントスイッチ301Aがオンしたか否かを判定することができる。また、通常の制御と同一の条件の下、同一の処理によって賞球カウントスイッチ301Aがオンしたか否かを判定するので、電力供給停止時処理でのスイッチ検出の処理モジュールと、通常の制御におけるスイッチ検出の処理モジュール(図28の処理や図29の処理を含む図21のステップS21の処理モジュール)を、共通の処理モジュールとすることができる。すなわち、通常の制御におけるスイッチ検出の処理モジュールを、電力供給停止時処理でのスイッチ検出の際に利用することができる。なお、遊技媒体検出判定期間は、通常遊技媒体検出判定期間と異なる期間としてもよい。上記のように、2回連続してオン検出した場合に、賞球カウントスイッチ301Aが確実にオンしたと見なされるようにしているため、誤ってスイッチオン検出がなされてしまうことが防止され、払い出された賞球を確実に検出することが可能となる。
【0190】
なお、この実施の形態では、賞球カウントスイッチ301Aのみのスイッチ検出処理が行われたが、始動入賞口のスイッチや大入賞口に関連するV入賞スイッチ22やカウントスイッチについても同様のスイッチ検出処理を行ってもよい。また、他の入賞についても同様のスイッチ検出処理を行ってもよい。そのようなオンチェックも行う場合には、入賞口に遊技球が入賞した直後に停電が発生したような場合でも、その入賞が確実に検出され、保存される遊技状態に反映される。
【0191】
払出確認期間が経過すると(ステップS486)、すなわち、払出確認期間計測用カウンタの値が0になると、バックアップあり指定値(この例では「55H」)をバックアップフラグにストアする(ステップS487)。バックアップフラグはバックアップRAM領域に形成されている。次いで、パリティデータを作成する(ステップS488〜S497)。すなわち、まず、クリアデータ(00)をチェックサムデータエリアにセットし(ステップS488)、チェックサム算出開始アドレスをポインタにセットする(ステップS489)。また、チェックサム算出回数をセットする(ステップS490)。
【0192】
そして、チェックサムデータエリアの内容とポインタが指すRAM領域の内容との排他的論理和を演算する(ステップS491)。演算結果をチェックサムデータエリアにストアするとともに(ステップS492)、ポインタの値を1増やし(ステップS493)、チェックサム算出回数の値を1減算する(ステップS494)。ステップS491〜S494の処理が、チェックサム算出回数の値が0になるまで繰り返される(ステップS495)。
【0193】
チェックサム算出回数の値が0になったら、CPU56は、チェックサムデータエリアの内容の各ビットの値を反転する(ステップS496)。そして、反転後のデータをチェックサムデータエリアにストアする(ステップS497)。このデータが、電源投入時にチェックされるパリティデータとなる。次いで、RAMアクセスレジスタにアクセス禁止値を設定する(ステップS498)。以後、内蔵RAM55のアクセスができなくなる。
【0194】
そして、RAMアクセスレジスタにアクセス禁止値を設定すると、CPU56は、待機状態(ループ状態)に入る。従って、システムリセットされるまで、何もしない状態になる。
【0195】
この実施の形態では、遊技制御処理において用いられるデータが格納されるRAM領域は全て電源バックアップされている。従って、その内容が正しく保存されているか否かを示すチェックサムの生成処理、およびその内容を書き換えないようにするためのRAMアクセス防止処理が、遊技状態を保存するための処理に相当する。
【0196】
なお、この実施の形態では、NMIに応じて電力供給停止時処理が実行されたが、電源断信号をCPU56のマスク可能端子に接続し、マスク可能割込処理によって電力供給停止時処理を実行してもよい。また、電源断信号を入力ポートに入力し、入力ポートのチェック結果に応じて電力供給停止時処理を実行してもよい。
【0197】
また、この実施の形態では、電源断信号に応じて起動される処理の最初にレジスタの保存処理が行われたが、スイッチ検出処理においてレジスタを使用しない場合には、スイッチ検出処理の実行後に、すなわち、バックアップフラグの設定とチェックサムの算出の処理の前にレジスタ保存処理を行うことができる。その場合には、レジスタ保存処理、バックアップフラグ設定処理、チェックサム算出処理および出力ポートのオフ設定処理を電力供給停止時処理と見なすことができる。さらに、スイッチ検出処理において幾つかのレジスタを使用する場合であっても、使用しないレジスタについては、バックアップフラグの設定とチェックサムの算出の処理の前にレジスタ保存処理を行うことができる。
【0198】
なお、上記の例では、出力ポートのクリア処理を、スイッチ検出処理の実行前(ステップS466の前)に行っている。電力供給停止時処理の実行中では、CPU56やスイッチ類はコンデンサ923,924の充電電力等で駆動されることになる。出力ポートのクリア処理をスイッチ検出処理の実行前に行っているので、大入賞口や可変入賞装置等がソレノイド等の電気部品で駆動されるように構成されていても、それらが駆動されることはなく、コンデンサ(特にコンデンサ924)の充電電力等を電力供給停止時処理のために効果的に使用することができる。
【0199】
なお、上記の例において、電源が断することが検出された後にV入賞スイッチ22を検出する場合には、ソレノイド21(大入賞口をV入賞スイッチに誘導するための部材を動作させるもの)の出力ポートについては、スイッチ検出処理の実行後にクリアする。そのようにすれば、継続権発生の条件であるV入賞をしていない状態で停電が発生した場合、停電発生直前に大入賞口に入った遊技球をV入賞スイッチ22の側に誘導することができる。従って、不当な継続権の消滅を防止することができる。この場合、上記の払出確認期間の相当する期間は、大入賞口に入賞した遊技球がV入賞スイッチ22に到達するまでの時間以上の所定期間である。なお、ラッチ式のソレノイドを用いた場合には、出力ポートのクリア処理は不要である。
【0200】
また、出力ポートのクリアによって大入賞口が閉じた場合でも、大入賞口内に遊技球があることも考えられるので、電源断信号に応じて実行されるスイッチ検出処理において、カウントスイッチ23の検出も行うことが望ましい。上記の例外的な処理については、第1種パチンコ遊技機においてのみならず、第2種パチンコ遊技機や第3種パチンコ遊技機についても同様である。
【0201】
図25は、遊技機への電力供給停止時の電源電圧低下やNMI信号(=電源断信号:電力供給停止時信号)の様子を示すタイミング図である。遊技機に対する電力供給が停止すると、最も高い直流電源電圧であるVSLのうちの監視電圧(電源監視用IC902に入力される電圧)の電圧値は徐々に低下する。そして、この例では、+22Vにまで低下すると、電源基板910に搭載されている電源監視用IC902から電源断信号が出力される(ローレベルになる)。
【0202】
電源断信号は、電気部品制御基板(この実施の形態では主基板31および払出制御基板37)に導入され、CPU56および払出制御用CPU371のNMI端子に入力される。CPU56および払出制御用CPU371は、NMI処理によって、所定の電力供給停止時処理を実行する。
【0203】
VSLの電圧値がさらに低下して所定値(この例では+9V)にまで低下すると、主基板31や払出制御基板37に搭載されているシステムリセット回路の出力がローレベルになり、CPU56および払出制御用CPU371がシステムリセット状態になる。なお、CPU56および払出制御用CPU371は、システムリセット状態とされる前に、電力供給停止時処理を完了している。
【0204】
VSLの電圧値がさらに低下してVcc(各種回路を駆動するための+5V)を生成することが可能な電圧を下回ると、各基板において各回路が動作できない状態となる。しかし、少なくとも主基板31や払出制御基板37では、電力供給停止時処理が実行され、CPU56および払出制御用CPU371がシステムリセット状態とされている。
【0205】
以上のように、この実施の形態では、電源監視回路は、遊技機で使用される直流電圧のうちで最も高い電源VSLの電圧を監視して、その電源の電圧が所定値を下回ったら電圧低下信号(電源断検出信号)を発生する。図25に示すように、電源断信号が出力されるタイミングでは、IC駆動電圧は、まだ各種回路素子を十分駆動できる電圧値になっている。従って、IC駆動電圧で動作する主基板31のCPU56が所定の電力供給停止時処理を行うための動作時間が確保されている。
【0206】
なお、ここでは、電源監視回路は、遊技機で使用される直流電圧のうちで最も高い電源VSLから分岐された電圧を監視したが、電源断信号を発生するタイミングが、IC駆動電圧で動作する電気部品制御手段が所定の電力供給停止時処理を行うための動作時間が確保されるようなタイミングであれば、監視対象電圧は、最も高い電源VSLの電圧でなくてもよい。すなわち、少なくともICやソレノイドの駆動電圧よりも高い電圧を監視すれば、電気部品制御手段が所定の電力供給停止時処理を行うための動作時間が確保されるようなタイミングで電源断信号を発生することができる。この例では、ソレノイド等の駆動電圧として電源VSLから分岐された電圧が用いられるが、監視対象電圧が供給されるラインとは異なり、ソレノイド等に駆動電圧を供給するラインに大容量のコンデンサ924が接続されているので、ソレノイド等に対する駆動電圧の供給を継続することができる所定期間が確保されているタイミングで電源断信号を発生することができる。
【0207】
最も高い電源VSL以外の電圧を監視対象電圧とする場合、上述したように、監視対象電圧は、電力供給停止時のスイッチオン誤検出の防止も期待できる電圧であることが好ましい。すなわち、遊技機の各種スイッチに供給される電圧(スイッチ電圧:例えば賞球カウントスイッチ301A、球貸しカウントスイッチ301B)が+12Vであることから、+12V電源電圧が落ち始める以前の段階で、電圧低下を検出できることが好ましい。よって、少なくともスイッチ電圧よりも高い電圧を監視することが好ましい。
【0208】
図26は、払出検出手段からの検出信号の入力処理が実行される様子の一例を示すタイミング図である。この実施の形態では、電源断信号は、主基板31および払出制御基板37に入力され、主基板31のCPU56および払出制御用CPU371のNMI端子に入力される。主基板31のCPU56は、マスク不能割込処理によって、上述した電力供給停止時処理を実行する。
【0209】
図26に示すように、電源断信号がオン(この例ではハイレベルからローレベルに変化)するあたりで賞球払出が実行された場合、払出検出手段からの検出信号の入力処理が実行される払出確認期間内で賞球カウントスイッチ301Aがオンする。従って、電源断信号がオンするあたりで実行された球払出についても、電力供給停止時処理が実行される際に、総賞球数バッファに反映することができる。
【0210】
VSLの電圧値がさらに低下して所定値(この例では+9V)にまで低下すると、主基板31に入力されているリセットIC651からの信号がローレベルになり、CPU56がシステムリセット状態になる。なお、CPU56は、システムリセット状態とされる前に、電力供給停止時処理を完了している。
【0211】
VSLの電圧値がさらに低下してVcc(各種回路を駆動するための+5V)を生成することが可能な電圧を下回ると、各基板において各回路が動作できない状態となる。しかし、主基板31では、電力供給停止時処理が実行され、CPU56がシステムリセット状態とされている。
【0212】
なお、払出制御基板37における払出制御用CPU371も、同様に電力供給停止時処理を行った後にシステムリセット状態になる。
【0213】
次に、メイン処理におけるスイッチ処理(ステップS21)の具体例を説明する。この実施の形態では、各スイッチの検出信号のオン状態が所定時間継続すると、確かにスイッチがオンしたと判定されスイッチオンに対応した処理が開始される。所定時間を計測するために、スイッチタイマが用いられる。スイッチタイマは、バックアップRAM領域に形成された1バイトのカウンタであり、検出信号がオン状態を示している場合に2ms毎に+1される。図27に示すように、スイッチタイマは検出信号の数N(クリアスイッチ921の検出信号を除く)だけ設けられている。この実施の形態ではN=13である。また、RAM55において、各スイッチタイマのアドレスは、入力ポートのビット配列順(図17に示された上から下への順)と同じ順序で並んでいる。
【0214】
図28は、遊技制御処理におけるステップS21のスイッチ処理の処理例を示すフローチャートである。なお、スイッチ処理は、図21に示すように遊技制御処理において最初に実行される。スイッチ処理において、CPU56は、まず、入力ポート0に入力されているデータを入力する(ステップS101)。次いで、処理数として「8」を設定し(ステップS102)、入賞口スイッチ33aのためのスイッチタイマのアドレスをポインタにセットする(ステップS103)。そして、スイッチチェック処理サブルーチンをコールする(ステップS104)。
【0215】
図29は、スイッチチェック処理サブルーチンを示すフローチャートである。スイッチチェック処理サブルーチンにおいて、CPU56は、ポート入力データ、この場合には入力ポート0からの入力データを「比較値」として設定する(ステップS121)。また、クリアデータ(00)をセットする(ステップS122)。そして、ポインタ(スイッチタイマのアドレスが設定されている)が指すスイッチタイマをロードするとともに(ステップS123)、比較値を右(上位ビットから下位ビットへの方向)にシフトする(ステップS124)。比較値には入力ポート0のデータ設定されている。そして、この場合には、入賞口スイッチ33aの検出信号がキャリーフラグに押し出される。
【0216】
キャリーフラグの値が「1」であれば(ステップS125)、すなわち入賞口スイッチ33aの検出信号がオン状態であれば、スイッチタイマの値を1加算する(ステップS127)。加算後の値が0でなければ加算値をスイッチタイマに戻す(ステップS128,S129)。加算後の値が0になった場合には加算値をスイッチタイマに戻さない。すなわち、スイッチタイマの値が既に最大値(255)に達している場合には、それよりも値を増やさない。
【0217】
キャリーフラグの値が「0」であれば、すなわち入賞口スイッチ33aの検出信号がオフ状態であれば、スイッチタイマにクリアデータをセットする(ステップS126)。すなわち、スイッチがオフ状態であれば、スイッチタイマの値が0に戻る。
【0218】
その後、CPU56は、ポインタ(スイッチタイマのアドレス)を1加算するとともに(ステップS130)、処理数を1減算する(ステップS131)。処理数が0になっていなければステップS122に戻る。そして、ステップS122〜S132の処理が繰り返される。
【0219】
ステップS122〜S132の処理は、処理数分すなわち8回繰り返され、その間に、入力ポート0の8ビットに入力されるスイッチの検出信号について、順次、オン状態かオフ状態か否かのチェック処理が行われ、オン状態であれば、対応するスイッチタイマの値が1増やされる。
【0220】
CPU56は、スイッチ処理のステップS105において、入力ポート1に入力されているデータを入力する。次いで、処理数として「4」を設定し(ステップS106)、賞球カウントスイッチ301Aのためのスイッチタイマのアドレスをポインタにセットする(ステップS107)。そして、スイッチチェック処理サブルーチンをコールする(ステップS108)。
【0221】
スイッチチェック処理サブルーチンでは、上述した処理が実行されるので、ステップS122〜S132の処理が、処理数分すなわち4回繰り返され、その間に、入力ポート1の4ビットに入力されるスイッチの検出信号について、順次、オン状態かオフ状態か否かのチェック処理が行われ、オン状態であれば、対応するスイッチタイマの値が1増やされる。
【0222】
なお、この実施の形態では、遊技制御処理が2ms毎に起動されるので、スイッチ処理も2msに1回実行される。従って、スイッチタイマは、2ms毎に+1される。
【0223】
図30〜図32は、遊技制御処理におけるステップS32の賞球処理の一例を示すフローチャートである。この実施の形態では、賞球処理では、賞球払出の対象となる入賞口スイッチ33a,39a,29a,30a、カウントスイッチ23および始動口スイッチ14aが確実にオンしたか否か判定されるとともに、オンしたら賞球個数を示す払出制御コマンドが払出制御基板37に送出されるように制御し、また、満タンスイッチ48および球切れスイッチ187が確実にオンしたか否か判定されるとともに、オンしたら所定の払出制御コマンドが払出制御基板37に送出されるように制御する等の処理が行われる。
【0224】
賞球処理において、CPU56は、入力判定値テーブルのオフセットとして「1」を設定し(ステップS150)、スイッチタイマのアドレスのオフセットとして「9」を設定する(ステップS151)。入力判定値テーブル(図34参照)のオフセット「1」は、入力判定値テーブルの2番目のデータ「50」を使用することを意味する。また、各スイッチタイマは、図17に示された入力ポートのビット順と同順に並んでいるので、スイッチタイマのアドレスのオフセット「9」は満タンスイッチ48に対応したスイッチタイマが指定されることを意味する。そして、スイッチオンチェックルーチンがコールされる(ステップS152)。
【0225】
入力判定値テーブルとは、各スイッチについて、連続何回のオンが検出されたら確かにスイッチがオンしたと判定するための判定値が設定されているROM領域である。入力判定値テーブルの構成例は図34に示されている。図34に示すように、入力判定値テーブルには、上から順に、すなわちアドレス値が小さい領域から順に、「2」、「50」、「250」、「30」、「250」、「1」の判定値が設定されている。また、スイッチオンチェックルーチンでは、入力判定値テーブルの先頭アドレスとオフセット値とで決まるアドレスに設定されている判定値と、スイッチタイマの先頭アドレスとオフセット値とで決まるスイッチタイマの値とが比較され、一致した場合には、例えばスイッチオンフラグがセットされる。
【0226】
スイッチオンチェックルーチンの一例が図33に示されている。スイッチオンチェックルーチンにおいて、満タンスイッチ48に対応するスイッチタイマの値が満タンスイッチオン判定値「50」に一致していればスイッチオンフラグがセットされるので(ステップS153)、満タンフラグがセットされる(ステップS154)。なお、図30には明示されていないが、満タンスイッチ48に対応したスイッチタイマの値が0になると、満タンフラグはリセットされる。
【0227】
また、CPU56は、入力判定値テーブルのオフセットとして「2」を設定し(ステップS155)、スイッチタイマのアドレスのオフセットとして「0A(H)」を設定する(ステップS156)。入力判定値テーブルのオフセット「2」は、入力判定値テーブルの3番目のデータ「250」を使用することを意味する。また、各スイッチタイマは、図17に示された入力ポートのビット順と同順に並んでいるので、スイッチタイマのアドレスのオフセット「0A(H)」は球切れスイッチ187に対応したスイッチタイマが指定されることを意味する。そして、スイッチオンチェックルーチンがコールされる(ステップS157)。
【0228】
スイッチオンチェックルーチンにおいて、球切れスイッチ187に対応するスイッチタイマの値が球切れスイッチオン判定値「250」に一致していればスイッチオンフラグがセットされるので(ステップS158)、球切れフラグがセットされる(ステップS159)。なお、図30には明示されていないが、球切れスイッチ187に対応したスイッチオフタイマが用意され、その値が50になると、球切れフラグはリセットされる。
【0229】
そして、CPU56は、払出停止状態であるか否か確認する(ステップS160)。払出停止状態は、払出制御基板37に対して払出を停止すべき状態であることを指示する払出制御コマンドである払出停止状態指定コマンドを送出した後の状態であり、具体的には、作業領域における払出停止フラグがセットされている状態である。払出停止状態でなければ、上述した球切れ状態フラグまたは満タンフラグがオンになったか否かを確認する(ステップS161)。
【0230】
いずれかがオン状態に変化したときには、払出停止状態フラグをセットするとともに(ステップS162)、払出停止状態指定コマンドに関するコマンド送信テーブルをセットし(ステップS163)、コマンドセット処理をコールする(ステップS164)。ステップS163では、払出停止状態指定コマンドの払出制御コマンドが格納されているコマンド送信テーブル(ROM)の先頭アドレスが、コマンド送信テーブルのアドレスとして設定される。払出停止状態指定コマンドに関するコマンド送信テーブルには、後述するINTデータ、払出制御コマンドの1バイト目のデータ、および払出制御コマンドの2バイト目のデータが設定されている。なお、ステップS161において、いずれか一方のフラグが既にオン状態であったときに他方のフラグがオン状態になったときには、ステップS162〜ステップS164の処理は行われない。
【0231】
また、払出停止状態であれば、球切れ状態フラグおよび満タンフラグがともにオフ状態になったか否かを確認する(ステップS165)。ともにオフ状態となったとき(後述する解除条件が成立したとき)には、払出停止フラグをリセットするとともに(ステップS166)、払出可能状態指定コマンドに関するコマンド送信テーブルをセットし(ステップS167)、コマンドセット処理をコールする(ステップS168)。ステップS167では、払出可能状態指定コマンドの払出制御コマンドが格納されているコマンド送信テーブル(ROM)の先頭アドレスが、コマンド送信テーブルのアドレスとして設定される。払出可能状態指定コマンドに関するコマンド送信テーブルには、後述するINTデータ、払出制御コマンドの1バイト目のデータ、および払出制御コマンドの2バイト目のデータが設定されている。
【0232】
なお、解除条件は、払出停止状態を解除するための条件であり、払出停止状態を維持する必要がなくなったときに成立する条件である。本例では、解除条件は、払出停止状態とされているときに、余剰球受皿4が満タン状態でなく、かつ、球切れ状態でもない状態でない状態となったこととされている。
【0233】
さらに、CPU56は、入力判定値テーブルのオフセットとして「0」を設定し(ステップS169)、スイッチタイマのアドレスのオフセットとして「0」を設定する(ステップS170)。入力判定値テーブルのオフセット「0」は、入力判定値テーブルの最初のデータを使用することを意味する。また、各スイッチタイマは、図17に示された入力ポートのビット順と同順に並んでいるので、スイッチタイマのアドレスのオフセット「0」は入賞口スイッチ33aに対応したスイッチタイマが指定されることを意味する。また、繰り返し数として「4」をセットする(ステップS171)。そして、スイッチオンチェックルーチンがコールされる(ステップS172)。
【0234】
スイッチオンチェックルーチンにおいて、CPU56は、入力判定値テーブル(図34参照)の先頭アドレスを設定する(ステップS281)。そして、そのアドレスにオフセットを加算し(ステップS282)、加算後のアドレスからスイッチオン判定値をロードする(ステップS283)。
【0235】
次いで、CPU56は、スイッチタイマの先頭アドレスを設定し(ステップS284)、そのアドレスにオフセットを加算し(ステップS285)、加算後のアドレスからスイッチタイマの値をロードする(ステップS286)。各スイッチタイマは、図17に示された入力ポートのビット順と同順に並んでいるので、スイッチに対応したスイッチタイマの値がロードされる。
【0236】
そして、CPU56は、ロードしたスイッチタイマの値とスイッチオン判定値とを比較する(ステップS287)。それらが一致すれば、スイッチオンフラグをセットする(ステップ228)。
【0237】
この場合には、スイッチオンチェックルーチンにおいて、入賞口スイッチ33aに対応するスイッチタイマの値がスイッチオン判定値「2」に一致していればスイッチオンフラグがセットされる(ステップS173)。そして、スイッチチェックオンルーチンは、スイッチタイマのアドレスのオフセットが更新されつつ(ステップS178)、最初に設定された繰り返し数分だけ実行されるので(ステップS176,S177)、結局、入賞口スイッチ33a,39a,29a,30aについて、対応するスイッチタイマの値がスイッチオン判定値「2」と比較されることになる。
【0238】
スイッチオンフラグがセットされたら、払い出すべき賞球個数としての「10」をリングバッファに設定する(ステップS174)。そして、総賞球数格納バッファの格納値(未払出数データ)に10を加算する(ステップS175)。なお、リングバッファにデータを書き込んだときには、書込ポインタをインクリメントし、リングバッファの最後の領域にデータを書き込まれたときには、書込ポインタを、リングバッファの最初の領域を指すように更新する。
【0239】
総賞球数格納バッファは、払出制御手段に対して指示した賞球個数の累積値(ただし、払い出しがなされると減算される)が格納されるバッファであり、バックアップRAMに形成されている。なお、この実施の形態では、リングバッファにデータを書き込んだ時点で総賞球数格納バッファの格納値に対する加算処理が行われるが、払い出すべき賞球個数を指示する払出制御コマンドを出力ポートに出力した時点で総賞球数格納バッファの格納値に対する、出力する払出制御コマンドに対応した賞球数の加算処理を行ってもよい。
【0240】
次に、CPU56は、入力判定値テーブルのオフセットとして「0」を設定し(ステップS179)、スイッチタイマのアドレスのオフセットとして「5」を設定する(ステップS180)。入力判定値テーブルのオフセット「0」は、入力判定値テーブルの最初のデータを使用することを意味する。また、各スイッチタイマは、図17に示された入力ポートのビット順と同順に並んでいるので、スイッチタイマのアドレスのオフセット「5」は始動口スイッチ14aに対応したスイッチタイマが指定されることを意味する。そして、スイッチオンチェックルーチンがコールされる(ステップS181)。
【0241】
スイッチオンチェックルーチンにおいて、始動口スイッチ14aに対応するスイッチタイマの値がスイッチオン判定値「2」に一致していればスイッチオンフラグがセットされる(ステップS182)。スイッチオンフラグがセットされたら、払い出すべき賞球個数としての「6」をリングバッファに設定する(ステップS183)。また、総賞球数格納バッファの格納値に6を加算する(ステップS184)。
【0242】
次いで、CPU56は、入力判定値テーブルのオフセットとして「0」を設定し(ステップS185)、スイッチタイマのアドレスのオフセットとして「6」を設定する(ステップS186)。入力判定値テーブルのオフセット「0」は、入力判定値テーブルの最初のデータを使用することを意味する。また、各スイッチタイマは、図17に示された入力ポートのビット順と同順に並んでいるので、スイッチタイマのアドレスのオフセット「6」はカウントスイッチ23に対応したスイッチタイマが指定されることを意味する。そして、スイッチオンチェックルーチンがコールされる(ステップS187)。
【0243】
スイッチオンチェックルーチンにおいて、カウントスイッチ23に対応するスイッチタイマの値がスイッチオン判定値「2」に一致していればスイッチオンフラグがセットされる(ステップS188)。スイッチオンフラグがセットされたら、払い出すべき賞球個数としての「15」をリングバッファに設定する(ステップS189)。また、総賞球数格納バッファの格納値に15を加算する(ステップS190)。
【0244】
そして、リングバッファにデータが存在する場合には(ステップS191)、読出ポインタが指すリングバッファの内容を送信バッファにセットするとともに(ステップS192)、読出ポインタの値を更新(リングバッファの次の領域を指すように更新)し(ステップS193)、賞球個数に関するコマンド送信テーブルをセットし(ステップS194)、コマンドセット処理をコールする(ステップS195)。コマンドセット処理の動作については後で詳しく説明する。
【0245】
ステップS194では、賞球個数に関する払出制御コマンドが格納されているコマンド送信テーブル(ROM)の先頭アドレスが、コマンド送信テーブルのアドレスとして設定される。賞球個数に関するコマンド送信テーブルには、後述するINTデータ(01(H))、払出制御コマンドの1バイト目のデータ(F0(H))、および払出制御コマンドの2バイト目のデータが設定されている。ただし、2バイト目のデータとして「80(H)」が設定されている。
【0246】
以上のように、遊技制御手段から払出制御基板37に賞球個数を指示する払出制御コマンドを出力しようとするときに、賞球個数に関するコマンド送信テーブルのアドレス設定と送信バッファの設定とが行われる。そして、コマンドセット処理によって、賞球個数に関するコマンド送信テーブルと送信バッファの設定内容とにもとづいて払出制御コマンドが払出制御基板37に送出される。なお、ステップS191において、書込ポインタと読出ポインタとの差によってデータがあるか否か確認することができるが、リングバッファ内の未処理のデータ個数を示すカウンタを設け、カウント値によってデータがあるか否か確認するようにしてもよい。
【0247】
そして、総賞球数格納バッファの内容が0でない場合、すなわち、まだ賞球残がある場合には、CPU56は、賞球払出中フラグをオンする(ステップS196,S197)。
【0248】
また、CPU56は、賞球払出中フラグがオンしているときには(ステップS198)、球払出装置97から実際に払い出された賞球個数を監視して総賞球数格納バッファの格納値を減算する賞球個数減算処理を行う(ステップS199)。なお、賞球払出中フラグがオンからオフに変化したときには、ランプ制御基板35に対して、賞球ランプ51の点灯を指示するランプ制御コマンドが送出される。
【0249】
なお、払出制御手段は、払出停止状態指定コマンドを受信すると、賞球としての球払出と球貸しとしての球払出とをともに停止させる。また、払出可能状態指定コマンドを受信すると、賞球としての球払出と球貸しとしての球払出とをともに可能な状態とする。しかし、遊技制御手段から払出制御手段に対して、賞球としての球払出を停止または再開させる払出制御コマンドと、球貸しとしての球払出を停止または再開させる払出制御コマンドとを、別の制御コマンドとして送信するようにしてもよい。
【0250】
また、この実施の形態では、払出停止中であっても(ステップS160,S165)、ステップS169〜S195の処理が実行される。すなわち、遊技制御手段は、払出停止状態であっても、賞球個数を指示するための払出制御コマンドを送出することができる。すなわち、賞球個数を指示するためのコマンドが、払出停止状態であっても払出制御手段に伝達され、払出停止状態が解除されたときに、早めに賞球払出を開始することができる。また、遊技制御手段において、払出停止状態における入賞にもとづく賞球個数を記憶するための大きな記憶領域は必要とされない。
【0251】
さらに、この実施の形態では、遊技媒体の払出状況とは無関係に、ステップS169〜S195の処理が実行される。すなわち、遊技制御手段は、前回までに指定した賞球個数の払い出しが完了しているか否かに関わらず、新たな賞球個数を指示するための払出制御コマンドを送信することができる。よって、遊技制御手段の払い出しに関する処理負担を軽減させることができるとともに、賞球の払出処理を迅速に行うことができる。
【0252】
次に、遊技制御手段から各電気部品制御手段に対する制御コマンドの送出方式について説明しておく。遊技制御手段から他の電気部品制御基板(サブ基板)に制御コマンドを出力しようとするときに、コマンド送信テーブルの先頭アドレスの設定が行われる。図35(A)は、コマンド送信テーブルの一構成例を示す説明図である。1つのコマンド送信テーブルは3バイトで構成され、1バイト目にはINTデータが設定される。また、2バイト目のコマンドデータ1には、制御コマンドの1バイト目のMODEデータが設定される。そして、3バイト目のコマンドデータ2には、制御コマンドの2バイト目のEXTデータが設定される。
【0253】
なお、EXTデータそのものがコマンドデータ2の領域に設定されてもよいが、コマンドデータ2には、EXTデータが格納されているテーブルのアドレスを指定するためのデータが設定されるようにしてもよい。例えば、コマンドデータ2のビット7(ワークエリア参照ビット)が0であれば、コマンドデータ2にEXTデータそのものが設定されていることを示す。そのようなEXTデータはビット7が0であるデータである。この実施の形態では、ワークエリア参照ビットが1であれば、EXTデータとして、送信バッファの内容を使用することを示す。なお、ワークエリア参照ビットが1であれば、他の7ビットが、EXTデータが格納されているテーブルのアドレスを指定するためのオフセットであることを示すように構成することもできる。
【0254】
図35(B)は、INTデータの一構成例を示す説明図である。INTデータにおけるビット0は、払出制御基板37に払出制御コマンドを送出すべきか否かを示す。ビット0が「1」であるならば、払出制御コマンドを送出すべきことを示す。従って、CPU56は、例えば賞球処理(メイン処理のステップS32)において、INTデータに「01(H)」を設定する。また、INTデータにおけるビット1は、図柄出制御基板80に表示制御コマンドを送出すべきか否かを示す。ビット1が「1」であるならば、表示制御コマンドを送出すべきことを示す。従って、CPU56は、例えば特別図柄コマンド制御処理(メイン処理のステップS28)において、INTデータに「02(H)」を設定する。
【0255】
INTデータのビット2,3は、それぞれ、ランプ制御コマンド、音制御コマンドを送出すべきか否かを示すビットであり、CPU56は、それらのコマンドを送出すべきタイミングになったら、特別図柄プロセス処理等で、ポインタが指しているコマンド送信テーブルに、INTデータ、コマンドデータ1およびコマンドデータ2を設定する。それらのコマンドを送出するときには、INTデータの該当ビットが「1」に設定され、コマンドデータ1およびコマンドデータ2にMODEデータおよびEXTデータが設定される。
【0256】
この実施の形態では、払出制御コマンドについて、図35(C)に示すように、リングバッファおよび送信バッファが用意されている。そして、賞球処理において、賞球払出条件が成立すると、成立した条件に応じた賞球個数が順次リングバッファに設定される。また、賞球個数に関する払出制御コマンド送出する際に、リングバッファから1個のデータが送信バッファに転送される。なお、図35(C)に示す例では、リングバッファには、12個分の払出制御コマンドに相当するデータが格納可能になっている。すなわち、12個のバッファがある。なお、リングバッファにおけるバッファの数は、賞球を発生させる入賞口の数に対応した数であればよい。同時入賞が発生した場合でも、それぞれの入賞にもとづく払出制御コマンドのデータの格納が可能だからである。
【0257】
図36は、主基板31から他の電気部品制御基板に送出される制御コマンドのコマンド形態の一例を示す説明図である。この実施の形態では、制御コマンドは2バイト構成であり、1バイト目はMODE(コマンドの分類)を表し、2バイト目はEXT(コマンドの種類)を表す。MODEデータの先頭ビット(ビット7)は必ず「1」とされ、EXTデータの先頭ビット(ビット7)は必ず「0」とされる。このように、電気部品制御基板へのコマンドとなる制御コマンドは、複数のデータで構成され、先頭ビットによってそれぞれを区別可能な態様になっている。なお、図36に示されたコマンド形態は一例であって他のコマンド形態を用いてもよい。例えば、1バイトや3バイト以上で構成される制御コマンドを用いてもよい。また、図36では払出制御基板37に送出される払出制御コマンドを例示するが、他の電気部品制御基板に送出される制御コマンドも同一構成である。
【0258】
図37は、各電気部品制御手段に対する制御コマンドを構成する8ビットの制御信号CD0〜CD7とINT信号との関係を示すタイミング図である。図37に示すように、MODEまたはEXTのデータが出力ポート(出力ポート1〜出力ポート4のうちのいずれか)に出力されてから、Aで示される期間が経過すると、CPU56は、データ出力を示す信号であるINT信号をハイレベル(オンデータ)にする。また、そこからBで示される期間が経過するとINT信号をローレベル(オフデータ)にする。さらに、次に送出すべきデータがある場合には、すなわち、MODEデータ送出後では、Cで示される期間をおいてから2バイト目のデータを出力ポートに送出する。2バイト目のデータに関して、A,Bの期間は、1バイト目の場合と同様である。このように、取込信号はMODEおよびEXTのデータのそれぞれについて出力される。
【0259】
Aの期間は、CPU56が、コマンドの送出準備の期間すなわちバッファに送出コマンドを設定する処理に要する期間であるとともに、制御信号線におけるデータの安定化のための期間である。すなわち、制御信号線において制御信号CD0〜CD7が出力された後、所定期間(Aの期間:オフ出力期間の一部)経過後に、取込信号としてのINT信号が出力される。また、Bの期間(オン出力期間)は、INT信号安定化のための期間である。そして、Cの期間(オフ出力期間の一部)は、電気部品制御手段が確実にデータを取り込めるように設定されている期間である。B,Cの期間では、信号線上のデータは変化しない。すなわち、B,Cの期間が経過するまでデータ出力が維持される。
【0260】
この実施の形態では、払出制御基板37への払出制御コマンド、図柄制御基板80への表示制御コマンド、ランプ制御基板35へのランプ制御コマンドおよび音制御基板70への音制御コマンドは、同一のコマンド送信処理ルーチン(共通モジュール)を用いて送出される。そこで、B,Cの期間すなわち1バイト目に関するINT信号が立ち上がってから2バイト目のデータが送出開始されるまでの期間は、コマンド受信処理に最も時間がかかる電気部品制御手段における受信処理時間よりも長くなるように設定される。
【0261】
なお、各電気部品制御手段は、INT信号が立ち上がったことを検知して、例えば割込処理によって1バイトのデータの取り込み処理を開始する。
【0262】
B,Cの期間が、コマンド受信処理に最も時間がかかる電気部品制御手段における受信処理時間よりも長いので、遊技制御手段が、各電気部品制御手段に対するコマンド送出処理を共通モジュールで制御しても、いずれの電気部品制御手段でも遊技制御手段からの制御コマンドを確実に受信することができる。
【0263】
CPU56は、INT信号出力処理を実行した後に所定期間が経過すると次のデータを送出できる状態になるが、その所定期間(B,Cの期間)は、INT信号出力処理の前にデータを送出してからINT信号を出力開始するまでの期間(Aの期間)よりも長い。上述したように、Aの期間はコマンドの信号線における安定化期間であり、B,Cの期間は受信側がデータを取り込むのに要する時間を確保するための期間である。従って、Aの期間をB,Cの期間よりも短くすることによって、受信側の電気部品制御手段が確実にコマンドを受信できる状態になるという効果を得ることができるとともに、1つのコマンドの送出完了に要する期間が短縮される効果もある。
【0264】
図38は、払出制御コマンドの内容の一例を示す説明図である。本例では、払出制御を実行するために、複数種類の払出制御コマンドが用いられる。図38に示された例において、MODE=FF(H),EXT=00(H)のコマンドFF00(H)は、払出が可能であることを指示する払出制御コマンド(払出可能状態指定コマンド)である。MODE=FF(H),EXT=01(H)のコマンドFF01(H)は、払出を停止すべき状態であることを指示する払出制御コマンド(払出停止状態指定コマンド)である。また、MODE=F0(H)のコマンドF0XX(H)は、賞球個数を指定する払出制御コマンド(払出個数指定コマンド)である。EXTである「XX」が払出個数を示す。
【0265】
払出制御手段は、主基板31の遊技制御手段からFF01(H)の払出制御コマンドを受信すると賞球払出および球貸しを停止する状態となり、FF00(H)の払出制御コマンドを受信すると賞球払出および球貸しができる状態になる。また、賞球個数を指定する払出制御コマンドを受信すると、受信したコマンドで指定された個数に応じた賞球払出制御を行う。
【0266】
なお、払出制御コマンドは、払出制御手段が認識可能に1回だけ送出される。認識可能とは、この例では、INT信号のレベルが変化することであり、認識可能に1回だけ送出されるとは、この例では、払出制御信号の1バイト目および2バイト目のそれぞれに応じてINT信号が1回だけパルス状(矩形波状)に出力されることである。
【0267】
各電気部品制御基板への制御コマンドを、対応する出力ポート(出力ポート1〜4)に出力する際に、出力ポート0のビット0〜3のうちのいずれかのビットが所定期間「1」(ハイレベル)になるのであるが、INTデータにおけるビット配列と出力ポート0におけるビット配列とは対応している。従って、各電気部品制御基板に制御コマンドを送出する際に、INTデータにもとづいて、容易にINT信号の出力を行うことができる。
【0268】
図39は、コマンドセット処理(ステップS164,S168,S195)の処理例を示すフローチャートである。コマンドセット処理は、コマンド出力処理とINT信号出力処理とを含む処理である。コマンドセット処理において、CPU56は、まず、コマンド送信テーブルのアドレス(送信信号指示手段としてのポインタの内容)をスタック等に退避する(ステップS331)。そして、ポインタが指していたコマンド送信テーブルのINTデータを引数1にロードする(ステップS332)。引数1は、後述するコマンド送信処理に対する入力情報になる。また、コマンド送信テーブルを指すアドレスを+1する(ステップS333)。従って、コマンド送信テーブルを指すアドレスは、コマンドデータ1のアドレスに一致する。
【0269】
そこで、CPU56は、コマンドデータ1を読み出して引数2に設定する(ステップS334)。引数2も、後述するコマンド送信処理に対する入力情報になる。そして、コマンド送信処理ルーチンをコールする(ステップS335)。
【0270】
図40は、コマンド送信処理ルーチンを示すフローチャートである。コマンド送信処理ルーチンにおいて、CPU56は、コマンド送信中フラグをオンしたあと(ステップS350)、引数1に設定されているデータすなわちINTデータを、比較値として決められているワークエリアに設定する(ステップS351)。なお、コマンド送信中フラグは、コマンド送信処理中であるか否かを示すフラグであって、RAM55の所定の領域に記憶されている。次いで、CPU56は、送信回数=4を、処理数として決められているワークエリアに設定する(ステップS352)。そして、払出制御信号を出力するためのポート1のアドレスをIOアドレスにセットする(ステップS353)。この実施の形態では、ポート1のアドレスは、払出制御信号を出力するための出力ポートのアドレスである。また、ポート2〜4のアドレスが、表示制御信号、ランプ制御信号、音声制御信号を出力するための出力ポートのアドレスである。
【0271】
次に、CPU56は、比較値を1ビット右にシフトする(ステップS354)。シフト処理の結果、キャリービットが1になったか否か確認する(ステップS355)。キャリービットが1になったということは、INTデータにおける最も右側のビットが「1」であったことを意味する。この実施の形態では4回のシフト処理が行われるのであるが、例えば、払出制御コマンドを送出すべきことが指定されているときには、最初のシフト処理でキャリービットが1になる。
【0272】
キャリービットが1になった場合には、引数2に設定されているデータ、この場合にはコマンドデータ1(すなわちMODEデータ)を、IOアドレスとして設定されているアドレスに出力する(ステップS356)。最初のシフト処理が行われたときにはIOアドレスにポート1のアドレスが設定されているので、そのときに、払出制御コマンドのMODEデータがポート1に出力される。
【0273】
次いで、CPU56は、IOアドレスを1加算するとともに(ステップS357)、処理数を1減算する(ステップS358)。加算前にポート1を示していた場合には、IOアドレスに対する加算処理によって、IOアドレスにはポート2のアドレスが設定される。ポート2は、表示制御コマンドを出力するためのポートである。そして、CPU56は、処理数の値を確認し(ステップS359)、値が0になっていなければ、ステップS354に戻る。ステップS354で再度シフト処理が行われる。
【0274】
2回目のシフト処理ではINTデータにおけるビット1の値が押し出され、ビット1の値に応じてキャリーフラグが「1」または「0」になる。従って、表示制御コマンドを送出すべきことが指定されているか否かのチェックが行われる。同様に、3回目および4回目のシフト処理によって、ランプ制御コマンドおよび音制御コマンドを送出すべきことが指定されているか否かのチェックが行われる。このように、それぞれのシフト処理が行われるときに、IOアドレスには、シフト処理によってチェックされる制御コマンド(払出制御コマンド、表示制御コマンド、ランプ制御コマンド、音制御コマンド)に対応したIOアドレスが設定されている。
【0275】
よって、キャリーフラグが「1」になったときには、対応する出力ポート(ポート1〜ポート4)に制御コマンドが送出される。すなわち、1つの共通モジュールで、各電気部品制御手段に対する制御コマンドの送出処理を行うことができる。
【0276】
また、このように、シフト処理のみによってどの電気部品制御手段に対して制御コマンドを出力すべきかが判定されるので、いずれの電気部品制御手段に対して制御コマンドを出力すべきか判定する処理が簡略化されている。
【0277】
次に、CPU56は、シフト処理開始前のINTデータが格納されている引数1の内容を読み出し(ステップS360)、読み出したデータをポート0に出力する(ステップS361)。この実施の形態では、ポート0のアドレスは、各制御信号についてのINT信号を出力するためのポートであり、ポート0のビット0〜4が、それぞれ、払出制御INT信号、表示制御INT信号、ランプ制御INT信号、音制御INT信号を出力するためのポートである。INTデータでは、ステップS351〜S359の処理で出力された制御コマンド(払出制御コマンド、表示制御コマンド、ランプ制御コマンド、音制御コマンド)に応じたINT信号の出力ビットに対応したビットが「1」になっている。従って、ポート1〜ポート4のいずれかに出力された制御コマンド(払出制御コマンド、表示制御コマンド、ランプ制御コマンド、音制御コマンド)に対応したINT信号がハイレベルになる。
【0278】
次いで、CPU56は、ウェイトカウンタに所定値を設定し(ステップS362)、その値が0になるまで1ずつ減算する(ステップS363,S364)。この処理は、図37に示されたBの期間を設定するための処理である。ウェイトカウンタの値が0になると、クリアデータ(00)を設定して(ステップS365)、そのデータをポート0に出力する(ステップS366)。よって、INT信号はローレベルになる。また、ウェイトカウンタに所定値を設定し(ステップS362)、その値が0になるまで1ずつ減算する(ステップS368,S369)。この処理は、図37に示されたCの期間を設定するための処理である。ただし、実際のCの期間は、ステップS367〜S369で作成される時間に、その後の処理時間(この時点でMODEデータが出力されている場合にはEXTデータを出力するまでに要する制御にかかる時間)が加算された期間となる。このように、Cの期間が設定されることによって、連続してコマンドが送出される場合であっても、一のコマンドの出力完了後、次にコマンドの送出が開始されるまでに所定期間がおかれることになり、コマンドを受信する電気部品制御手段の側で、容易に連続するコマンドの区切りを識別することができ、各コマンドは確実に受信される。
【0279】
従って、ステップS367でウェイトカウンタに設定される値は、Cの期間が、制御コマンド受信対象となる全ての電気部品制御手段が確実にコマンド受信処理を行うのに十分な期間になるような値である。また、ウェイトカウンタに設定される値は、Cの期間が、ステップS357〜S359の処理に要する時間(Aの期間に相当)よりも長くなるような値である。なお、Aの期間をより長くしたい場合には、Aの期間を作成するためのウェイト処理(例えば、ウェイトカウンタに所定値を設定し、ウェイトカウンタの値が0になるまで減算を行う処理)を行う。
【0280】
そして、ウェイトカウンタの値が0になると(ステップS369のY)、CPU56は、コマンド送信中フラグをオフする(ステップS370)。
【0281】
以上のようにして、制御コマンドの1バイト目のMODEデータが送出される。そこで、CPU56は、図39に示すステップS336で、コマンド送信テーブルを指す値を1加算する。従って、3バイト目のコマンドデータ2の領域が指定される。CPU56は、指し示されたコマンドデータ2の内容を引数2にロードする(ステップS337)。また、コマンドデータ2のビット7(ワークエリア参照ビット)の値が「0」であるか否か確認する(ステップS338)。0でなければ、送信バッファの内容を引数2にロードする(ステップS339)。なお、ワークエリア参照ビットの値が「1」であるときに拡張データを使用するように構成されている場合には、コマンド拡張データアドレステーブルの先頭アドレスをポインタにセットし、そのポインタにコマンドデータ2のビット6〜ビット0の値を加算してアドレスを算出する。そして、そのアドレスが指すエリアのデータを引数2にロードする。
【0282】
送信バッファには賞球個数を特定可能なデータが設定されているので、引数2にそのデータが設定される。なお、ワークエリア参照ビットの値が「1」であるときに拡張データを使用するように構成されている場合には、コマンド拡張データアドレステーブルには、電気部品制御手段に送出されうるEXTデータが順次設定される。よって、ワークエリア参照ビットの値が「1」であれば、コマンドデータ2の内容に応じたコマンド拡張データアドレステーブル内のEXTデータが引数2にロードされる。
【0283】
次に、CPU56は、コマンド送信処理ルーチンをコールする(ステップS340)。従って、MODEデータの送出の場合と同様のタイミングでEXTデータが送出される。
【0284】
以上のようにして、2バイト構成の制御コマンド(払出制御コマンド、表示制御コマンド、ランプ制御コマンド、音制御コマンド)が、対応する電気部品制御手段に送信される。電気部品制御手段ではINT信号の立ち上がりを検出すると制御コマンドの取り込み処理を開始するのであるが、各電気部品制御手段でのコマンド受信処理が完了したあとに終了するように設定されるウエイト期間(ステップS367〜ステップS369の処理によって特定される期間:Cの期間の一部)が経過するまでは新たな信号を出力しないようにしているので、いずれの電気部品制御手段についても、取り込み処理が完了する前に遊技制御手段からの新たな信号が信号線に出力されることはない。すなわち、各電気部品制御手段において、確実なコマンド受信処理が行われる。なお、各電気部品制御手段は、INT信号の立ち下がりで制御コマンドの取り込み処理を開始してもよい。また、INT信号の極性を図37に示された場合と逆にしてもよい。
【0285】
また、この実施の形態では、賞球処理において、賞球払出条件が成立すると賞球個数を特定可能なデータが、同時に複数のデータを格納可能なリングバッファに格納され、賞球個数を指定する払出制御コマンドを送出する際に、読出ポインタが指しているリングバッファの領域のデータが送信バッファに転送される。従って、同時に複数の賞球払出条件の成立があっても、それらの条件成立にもとづく賞球個数を特定可能なデータがリングバッファに保存されるので、各条件成立にもとづくコマンド出力処理は問題なく実行される。
【0286】
さらに、この実施の形態では、1回の賞球処理内で払出停止状態指定コマンドまたは払出可能状態指定コマンドと賞球個数を示すコマンドとの双方を送出することができる。すなわち、2ms毎に起動される1回の制御期間内において、複数のコマンドを送出することができる。また、この実施の形態では、各制御手段への制御コマンド(表示制御コマンド、ランプ制御コマンド、音制御コマンド、払出制御コマンド)毎に、それぞれ複数のリングバッファが用意されているので、例えば、表示制御コマンド、ランプ制御コマンドおよび音制御コマンドのリングバッファに制御コマンドを特定可能なデータが設定されている場合には、1回のコマンド制御処理で複数の表示制御コマンド、ランプ制御コマンドおよび音制御コマンドを送出するように構成することも可能である。すなわち、同時に(遊技制御処理すなわち2msタイマ割込処理の起動周期での意味)、複数の制御コマンドを送出することができる。遊技演出の進行上、それらの制御コマンドの送出タイミングは同時に発生するので、このように構成されているのは便利である。ただし、払出制御コマンドは、遊技演出の進行とは無関係に発生するので、一般には、表示制御コマンド、ランプ制御コマンドおよび音制御コマンドと同時に送出されることはない。
【0287】
図41は、主基板31におけるコマンドの出力に関する処理と、払出制御基板37などのコマンド受信側の基板におけるコマンドの受信に関する処理(例えば、後述するコマンド受信割込処理:図54参照)との処理タイミングの一例を示すタイミングチャートである。図41に示すように、コマンド受信側の基板におけるMODEデータとEXTデータの受信に関する処理は、本例では、それぞれ、INT信号の立ち上がりとともに開始され、少なくともコマンド送信中フラグがオフ状態となる前に終了する。
【0288】
図41に示すように、MODEデータの送信に関する処理(図40に示した処理)が開始したときから終了するまでの期間(a〜dの期間)は、コマンド送信中フラグがオン状態となっている。従って、a〜dの期間中に電力供給が停止した場合には、その後に電力供給が再開すると、CPU56は、遊技状態復旧処理にて上述したステップS87の処理を実行するので、MODEデータの送信に関する処理を最初から再度実行することになる。
【0289】
MODEデータの送信に関する処理が開始したときから、送信される制御信号に応じたINT信号がハイレベルに立ち上げられるまでの期間(a〜bの期間)中に電力供給が停止した場合には、コマンド出力ポートに設定されていた制御コマンドは電源断処理によってクリアされる。従って、その後に電力供給が開始したときに、電力供給が停止したときから制御が再開されると、コマンド出力ポートに正常なデータがないままINTデータが送信され、受信側の基板で不正常なデータが受信されてしまう。本例では、a〜bの期間中に電力供給が停止した場合には、その後に電力供給が再開すると、上述したように、MODEデータの送信に関する処理を最初から再度実行するので、コマンド出力ポートに正常なデータがないままINTデータが送信されることは回避され、受信側の基板で不正常なデータが受信されてしまうことは防止される。
【0290】
また、MODEデータの送信に関する処理において、送信される制御信号に応じたINT信号がハイレベルに立ち上げられたときから、コマンド受信側の基板におけるコマンドの受信処理が完了するまでの期間(b〜cの期間)中に電力供給が停止した場合には、コマンド出力ポートに設定されている未送信の制御コマンドは電源断処理によってクリアされる。従って、その後に電力供給が開始したときに、電力供給が停止したときから制御が再開されると、コマンドの受信側の基板はコマンドの受信処理の途中から制御を開始することとなるが、主基板31のコマンド出力ポートには正常なデータがないので、受信側の基板で不正常なデータが受信されてしまう。本例では、b〜cの期間中に電力供給が停止した場合には、その後に電力供給が再開すると、上述したように、MODEデータの送信に関する処理を最初から再度実行するので、受信側の基板で不正常なデータが受信されてしまうことは防止される。
【0291】
さらに、MODEデータの送信に関する処理において、コマンド受信側の基板におけるコマンドの受信処理が完了してから、コマンド送信中フラグがオフするまでの期間(c〜dの期間)中に電力供給が停止した場合には、コマンドの受信側の基板ではコマンドの受信処理が完了しているが、主基板31においてはコマンドの受信処理が完了したことが確認されていない。すなわち、c〜dの期間中は、主基板は、b〜cの期間中であるのかc〜dの期間中であるのかを確実に判定することはできない。従って、c〜dの期間中に電力供給が停止した場合には、b〜cの期間中に電力供給が停止したのである可能性が否定できないので、上述したように受信側の基板で不正常なデータが受信されてしまうおそれがある。本例では、c〜dの期間中に電力供給が停止した場合にも、b〜cの期間中に電力供給が停止した場合と同様に、その後に電力供給が再開すると、上述したようにMODEデータの送信に関する処理を最初から再度実行するので、受信側の基板で不正常なデータが受信されてしまうことは防止される。
【0292】
また、図41に示すように、EXTデータの送信に関する処理(図40に示した処理)が開始したときから終了するまでの期間(e〜hの期間)は、コマンド送信中フラグがオン状態となっている。従って、e〜fの期間中に電力供給が停止した場合には、その後に電力供給が再開すると、CPU56は、遊技状態復旧処理にて上述したステップS87の処理を実行するので、EXTデータの送信に関する処理を最初から再度実行することになる。
【0293】
EXTデータの送信に関する処理が開始したときから、送信される制御信号に応じたINT信号がハイレベルに立ち上げられるまでの期間(e〜fの期間)中に電力供給が停止した場合には、コマンド出力ポートに設定されていた制御コマンドは電源断処理によってクリアされる。従って、その後に電力供給が開始したときに、電力供給が停止したときから制御が再開されると、コマンド出力ポートに正常なデータがないままINTデータが送信され、受信側の基板で不正常なデータが受信されてしまう。本例では、e〜fの期間中に電力供給が停止した場合には、その後に電力供給が再開すると、上述したように、EXTデータの送信に関する処理を最初から再度実行するので、コマンド出力ポートに正常なデータがないままINTデータが送信されることは回避され、受信側の基板で不正常なデータが受信されてしまうことは防止される。
【0294】
また、EXTデータの送信に関する処理において、送信される制御信号に応じたINT信号がハイレベルに立ち上げられてから、コマンド受信側の基板におけるコマンドの受信処理が完了するまでの期間(f〜gの期間)中に電力供給が停止した場合には、コマンド出力ポートに設定されている未送信の制御コマンドは電源断処理によってクリアされる。従って、その後に電力供給が開始したときに、電力供給が停止したときから制御が再開されると、コマンドの受信側の基板はコマンドの受信処理の途中から制御を開始することとなるが、主基板31のコマンド出力ポートには正常なデータがないので、受信側の基板で不正常なデータが受信されてしまう。本例では、f〜gの期間中に電力供給が停止した場合には、その後に電力供給が再開すると、上述したように、EXTデータの送信に関する処理を最初から再度実行するので、受信側の基板で不正常なデータが受信されてしまうことは防止される。
【0295】
さらに、EXTデータの送信に関する処理において、コマンド受信側の基板におけるコマンドの受信処理が完了してから、送信中フラグがオフするまでの期間(g〜hの期間)中に電力供給が停止した場合には、コマンドの受信側の基板ではコマンドの受信処理が完了しているが、主基板31においてはコマンドの受信処理が完了したことが確認されていない。すなわち、g〜hの期間中は、主基板は、f〜gの期間中であるのかg〜hの期間中であるのかを確実に判定することはできない。従って、g〜hの期間中に電力供給が停止した場合には、f〜gの期間中に電力供給が停止したのである可能性が否定できないので、上述したように受信側の基板で不正常なデータが受信されてしまうおそれがある。本例では、g〜hの期間中に電力供給が停止した場合にも、f〜gの期間中に電力供給が停止した場合と同様に、その後に電力供給が再開すると、上述したようにEXTデータの送信に関する処理を最初から再度実行するので、受信側の基板で不正常なデータが受信されてしまうことは防止される。
【0296】
図42は、賞球個数減算処理の一例を示すフローチャートである。賞球個数減算処理において、CPU56は、まず、総賞球数格納バッファの格納値をロードする(ステップS381)。そして、格納値が0であるか否か確認する(ステップS382)。0であれば処理を終了する。
【0297】
0でなければ、賞球カウントスイッチ用のスイッチタイマをロードし(ステップS383)、ロード値とオン判定値(この場合は「2」)とを比較する(ステップS384)。一致したら(ステップS385)、賞球カウントスイッチ301Aが確かにオンしたとして、すなわち、確かに1個の遊技球が球払出装置97から払い出されたとして、総賞球数格納バッファの格納値を1減算する(ステップS386)。
【0298】
また、賞球情報カウンタの値を+1する(ステップS387)。そして、賞球情報カウンタの値が10以上であれば(ステップS388)、賞球情報出力カウンタの値を+1するとともに(ステップS389)、賞球情報カウンタの値を−10する(ステップS390)。なお、賞球情報出力カウンタの値は、図21に示された遊技制御処理における情報出力処理(ステップS30)で参照され、その値が1以上であれば、賞球信号(出力ポート5のビット7:図16参照)として1パルスが出力される。よって、この実施の形態では、10個の遊技球が賞球として払い出される度に、1つの賞球信号が遊技機外部に出力される。
【0299】
そして、総賞球数格納バッファの格納値が0になったら(ステップS391)、賞球払出中フラグをクリアし(ステップS392)、賞球残数がないことを報知するために、ランプ制御コマンド用のコマンド送信テーブルに賞球ランプ51の消灯を示すコマンドデータを設定した後(ステップS393)、ランプ制御コマンドの送出処理を実行する(ステップS394)。
【0300】
次に、遊技制御手段以外の電気部品制御手段の例として、払出制御手段について説明する。
【0301】
図43は、払出制御用CPU371周りの一構成例を示すブロック図である。図43に示すように、電源基板910の電源監視回路(電源監視手段)からの電源断信号が、バッファ回路960を介して払出制御用CPU371のマスク不能割込端子(XNMI端子)に接続されている。従って、払出制御用CPU371は、マスク不能割込処理によって電源断の発生を確認することができる。また、電源基板910からのリセット信号と復帰信号とはAND回路385に入力され、AND回路385の出力が払出制御用CPU371のリセット端子に入力される。
【0302】
払出制御用CPU371のCLK/TRG2端子には、主基板31からのINT信号が接続されている。CLK/TRG2端子にクロック信号が入力されると、払出制御用CPU371に内蔵されているタイマカウンタレジスタCLK/TRG2の値がダウンカウントされる。そして、レジスタ値が0になると割込が発生する。従って、タイマカウンタレジスタCLK/TRG2の初期値を「1」に設定しておけば、INT信号の入力に応じて割込が発生することになる。なお、INT信号とは、遊技制御手段から払出制御手段に対する払出制御コマンドが送出されたことを意味する信号である。払出制御用CPU371は、INT信号の入力に応じて発生する割込によって、払出制御コマンド受信処理を開始する。
【0303】
図44は、この実施の形態における出力ポートの割り当てを示す説明図である。図44に示すように、出力ポートC(アドレス00H)は、払出モータ289に出力される駆動信号等の出力ポートである。また、出力ポートD(アドレス01H)は、7セグメントLEDであるエラー表示LED374に出力される表示制御信号の出力ポートである。そして、出力ポートE(アドレス02H)は、振分ソレノイド310に出力される駆動信号、およびカードユニット50に対するEXS信号とPRDY信号とを出力するための出力ポートである。
【0304】
図45は、この実施の形態における入力ポートのビット割り当てを示す説明図である。図45に示すように、入力ポートA(アドレス06H)は、主基板31から送出された払出制御コマンドの8ビットの払出制御信号を取り込むための入力ポートである。また、入力ポートB(アドレス07H)のビット0〜1には、それぞれ、賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bの検出信号が入力される。ビット2〜5には、カードユニット50からのBRDY信号、BRQ信号、VL信号およびクリアスイッチ921の検出信号が入力される。
【0305】
図46は、払出制御手段(払出制御用CPU371およびROM,RAM等の周辺回路)のメイン処理を示すフローチャートである。メイン処理では、払出制御用CPU371は、まず、必要な初期設定を行う。すなわち、払出制御用CPU371は、まず、割込禁止に設定する(ステップS701)。次に、割込モードを割込モード2に設定し(ステップS702)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS703)。また、払出制御用CPU371は、内蔵デバイスレジスタの初期化を行い(ステップS704)、CTCおよびPIOの初期化(ステップS705)を行った後に、RAMをアクセス可能状態に設定する(ステップS706)。
【0306】
この実施の形態では、内蔵CTCのうちの一つのチャネルがタイマモードで使用される。従って、ステップS704の内蔵デバイスレジスタの設定処理およびステップS705の処理において、使用するチャネルをタイマモードに設定するためのレジスタ設定、割込発生を許可するためのレジスタ設定および割込ベクタを設定するためのレジスタ設定が行われる。そして、そのチャネルによる割込がタイマ割込として用いられる。タイマ割込を例えば2ms毎に発生させたい場合は、初期値として2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。
【0307】
なお、タイマモードに設定されたチャネル(この実施の形態ではチャネル3)に設定される割込ベクタは、タイマ割込処理の先頭アドレスに相当するものである。具体的は、Iレジスタに設定された値と割込ベクタとでタイマ割込処理の先頭アドレスが特定される。タイマ割込処理では、払出制御処理が実行される。
【0308】
また、内蔵CTCのうちの他の一つのチャネル(この実施の形態ではチャネル2)が、遊技制御手段からの払出制御コマンド受信のための割込発生用のチャネルとして用いられ、そのチャネルがカウンタモードで使用される。従って、ステップS704の内蔵デバイスレジスタの設定処理およびステップS705の処理において、使用するチャネルをカウンタモードに設定するためのレジスタ設定、割込発生を許可するためのレジスタ設定および割込ベクタを設定するためのレジスタ設定が行われる。
【0309】
カウンタモードに設定されたチャネル(チャネル2)に設定される割込ベクタは、後述するコマンド受信割込処理の先頭アドレスに相当するものである。具体的は、Iレジスタに設定された値と割込ベクタとでコマンド受信割込処理の先頭アドレスが特定される。
【0310】
この実施の形態では、払出制御用CPU371でも割込モード2が設定される。従って、内蔵CTCのカウントアップにもとづく割込処理を使用することができる。また、CTCが送出した割込ベクタに応じた割込処理開始アドレスを設定することができる。
【0311】
CTCのチャネル2(CH2)のカウントアップにもとづく割込は、上述したタイマカウンタレジスタCLK/TRG2の値が「0」になったときに発生する割込である。従って、例えばステップS705において、特定レジスタとしてのタイマカウンタレジスタCLK/TRG2に初期値「1」が設定される。さらに、CLK/TRG2端子に入力される信号の立ち上がりまたは立ち下がりで特定レジスタとしてのタイマカウンタレジスタCLK/TRG2のカウント値が−1されるのであるが、所定の特定レジスタの設定によって、立ち上がり/立ち下がりの選択を行うことができる。この実施の形態では、CLK/TRG2端子に入力される信号の立ち上がりで、タイマカウンタレジスタCLK/TRG2のカウント値が−1されるような設定が行われる。
【0312】
また、CTCのチャネル3(CH3)のカウントアップにもとづく割込は、CPUの内部クロック(システムクロック)をカウントダウンしてレジスタ値が「0」になったら発生する割込であり、後述する2msタイマ割込として用いられる。具体的には、CPU371の動作クロックを分周したクロックがCTCに与えられ、クロックの入力によってレジスタの値が減算され、レジスタの値が0になるとタイマ割込が発生する。例えば、CH3のレジスタ値はシステムクロックの1/256周期で減算される。分周したクロックにもとづいて減算が行われるので、レジスタの初期値は大きくならない。ステップS705において、CH3のレジスタには、初期値として2msに相当する値が設定される。
【0313】
CTCのCH2のカウントアップにもとづく割込は、CH3のカウントアップにもとづく割込よりも優先順位が高い。従って、同時にカウントアップが生じた場合に、CH2のカウントアップにもとづく割込、すなわち、コマンド受信割込処理の実行契機となる割込の方が優先される。
【0314】
次いで、払出制御用CPU371は、入力ポートB(図45参照)を介して入力されるクリアスイッチ921の出力信号の状態を1回だけ確認する(ステップS707)。その確認においてオンを検出した場合には、払出制御用CPU371は、通常の初期化処理を実行する(ステップS711〜ステップS714)。クリアスイッチ921がオンである場合(押下されている場合)には、ローレベルのクリアスイッチ信号が出力されている。なお、入力ポート372では、クリアスイッチ信号のオン状態はハイレベルである。また、払出制御手段においては、ステップS707の判定を行わなくてもよい。
【0315】
なお、払出制御用CPU371も、主基板31のCPU56と同様に、スイッチの検出信号のオン判定を行う場合には、例えば、オン状態が少なくとも2ms(2ms毎に起動される処理の1回目の処理における検出直前に検出信号がオンした場合)継続しないとスイッチオンとは見なさないが、クリアスイッチ921のオン検出の場合には、1回のオン判定でオン/オフが判定される。すなわち、操作手段としてのクリアスイッチ921が所定の操作状態であるか否かを払出制御用CPU371が判定するための初期化要求検出判定期間は、遊技媒体検出手段としての賞球カウントスイッチ等が遊技媒体を検出したことを判定するための遊技媒体検出判定期間とは異なる期間とされている。
【0316】
クリアスイッチ921がオンの状態でない場合には、払出制御用CPU371は、払出制御用のバックアップRAM領域にバックアップデータが存在しているか否かの確認を行う(ステップS708)。例えば、主基板31のCPU56の処理と同様に、遊技機への電力供給停止時にセットされるバックアップフラグがセット状態になっているか否かによって、バックアップデータが存在しているか否か確認する。バックアップフラグがセット状態になっている場合には、バックアップデータありと判断する。
【0317】
バックアップありを確認したら、払出制御用CPU371は、バックアップRAM領域のデータチェック(この例ではパリティチェック)を行う。不測の停電等の電力供給の停止が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されていたはずであるから、チェック結果は正常になる。チェック結果が正常でない場合には、内部状態を電力供給の停止時の状態に戻すことができないので、不足の停電等からの復旧時ではなく電源投入時に実行される初期化処理を実行する。
【0318】
チェック結果が正常であれば(ステップS709)、払出制御用CPU371は、内部状態を電力供給停止時の状態に戻すための払出状態復旧処理を行う(ステップS710)。そして、バックアップRAM領域に保存されていたPC(プログラムカウンタ)の指すアドレスに復帰する。
【0319】
初期化処理では、払出制御用CPU371は、まず、RAMクリア処理を行う(ステップS711)。そして、2ms毎に定期的にタイマ割込がかかるように払出制御用CPU371に設けられているCTCのレジスタの設定が行われる(ステップS712)。すなわち、初期値として2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。また、本例では、払出制御用CPU371は、初期状態として払出停止状態に設定する(ステップS713)。なお、払出停止状態に設定するときには、例えば払出モータ289の駆動が停止されるとともに払出停止中であることを示す内部フラグ(払出停止中フラグ)がセットされる。すなわち、ステップS713では、払い出しが禁止された状態であることを示すデータ(セットされた払出停止中フラグ)を所定の記憶領域に記憶する処理が実行されている。払出停止中フラグについては、あとで詳しく説明する。そして、初期設定処理のステップS701において割込禁止とされているので、初期化処理を終える前に割込が許可される(ステップS714)。
【0320】
この実施の形態では、払出制御用CPU371の内蔵CTCが繰り返しタイマ割込を発生するように設定される。この実施の形態では、繰り返し周期は2msに設定される。そして、タイマ割込が発生すると、図47に示すように、タイマ割込があったことを示すタイマ割込フラグがセットされる(ステップS792)。そして、メイン処理において、タイマ割込フラグがセットされたことが検出されたら(ステップS715)、タイマ割込フラグがリセットされるとともに(ステップS751)、払出制御処理(ステップS751〜S760)が実行される。
【0321】
なお、タイマ割込では、図47に示すように、最初に割込許可状態に設定される(ステップS791)。よって、タイマ割込処理中では割込許可状態になり、INT信号の入力にもとづく払出制御コマンド受信処理を優先して実行することができる。
【0322】
払出制御処理において、払出制御用CPU371は、まず、入力ポート372bに入力される賞球カウントスイッチ301Aや球貸しカウントスイッチ301B等のスイッチがオンしたか否かを判定する(スイッチ処理:ステップS752)。
【0323】
次に、払出制御用CPU371は、主基板31から払出停止状態指定コマンドを受信していたら払出停止状態に設定し、払出可能状態指定コマンドを受信していたら払出停止状態の解除を行う(払出停止状態設定処理:ステップS753)。また、受信した払出制御コマンドを解析し、解析結果に応じた処理を実行する(コマンド解析実行処理:ステップS754)。さらに、プリペイドカードユニット制御処理を行う(ステップS755)。
【0324】
次いで、払出制御用CPU371は、球貸し要求に応じて貸し球を払い出す制御を行う(ステップS756)。このとき、払出制御用CPU371は、振分ソレノイド310によって球振分部材311を球貸し側に設定する。
【0325】
さらに、払出制御用CPU371は、総合個数記憶に格納された個数の賞球を払い出す賞球制御処理を行う(ステップS757)。このとき、払出制御用CPU371は、振分ソレノイド310によって球振分部材311を賞球側に設定する。そして、出力ポート372cおよび中継基板72を介して球払出装置97の払出機構部分における払出モータ289に対して駆動信号を出力し、所定の回転数分払出モータ289を回転させる払出モータ制御処理を行う(ステップS758)。
【0326】
なお、この実施の形態では、払出モータ289としてステッピングモータが用いられ、それらを制御するために1−2相励磁方式が用いられる。従って、具体的には、払出モータ制御処理において、8種類の励磁パターンデータが繰り返し払出モータ289に出力される。また、この実施の形態では、各励磁パターンデータが4msずつ出力される。
【0327】
次いで、エラー検出処理が行われ、その結果に応じてエラー表示LED374に所定の表示を行う(エラー処理:ステップS759)。また、遊技機外部に出力される球貸し個数信号を出力する処理等を行う(出力処理:ステップS760)。
【0328】
なお、図44に示す出力ポートCは、払出制御処理における払出モータ制御処理(ステップS758)でアクセスされる。また、出力ポートDは、払出制御処理におけるエラー処理(ステップS759)でアクセスされる。そして、出力ポートEは、払出制御処理における球貸し制御処理(ステップS756)および賞球制御処理(ステップS757)でアクセスされる。
【0329】
図48は、ステップS710の払出状態復旧処理の一例を示すフローチャートである。払出状態復旧処理において、払出制御用CPU371は、まず、スタックポインタの復帰処理を行う(ステップS731)。スタックポインタの値は、後述する電力供給停止時処理において、所定のRAMエリア(電源バックアップされている)に退避している。よって、ステップS731では、そのRAMエリアの値をスタックポインタに設定することによって復帰させる。なお、復帰されたスタックポインタが指す領域(すなわちスタック領域)には、電力供給が停止したときのレジスタ値やプログラムカウンタ(PC)の値が退避している。
【0330】
次いで、払出制御用CPU371は、復旧する払い出しに関する状態として、本例では払出停止状態に設定する(ステップS732)。なお、払出停止状態に設定するときには、例えば払出モータ289の駆動が停止されるとともに払出停止中であることを示す内部フラグ(払出停止中フラグ)がセットされる。すなわち、ステップS732では、払い出しが禁止された状態であることを示すデータ(セットされた払出停止中フラグ)を所定の記憶領域に記憶する処理が実行されている。払出停止中フラグについては、あとで詳しく説明する。
【0331】
また、払出制御用CPU371は、バックアップフラグをクリアする(ステップS733)すなわち、前回の電力供給停止時に所定の記憶保護処理が実行されたことを示すフラグをリセットする。また、スタック領域から各種レジスタの退避値を読み出して、各種レジスタに設定する(ステップS734)。すなわち、レジスタ復元処理を行う。そして、パリティフラグがオンしていない場合には割込許可状態にする(ステップS735,S736)。最後に、AFレジスタ(アキュミュレータとフラグのレジスタ)をスタック領域から復元する(ステップS737)。
【0332】
そして、RET命令が実行されるのであるが、ここでのリターン先は、払出状態復旧処理をコールした部分ではない。なぜなら、ステップS731においてスタックポインタの復帰処理がなされ、復帰されたスタックポインタが指すスタック領域に格納されているリターンアドレスは、プログラムにおける前回の電力供給停止時にNMIが発生したアドレスである。従って、ステップS737の次のRET命令によって、電力供給停止時にNMIが発生したアドレスにリターンする。すなわち、スタック領域に退避されていたアドレスにもとづいて復旧制御が実行されている。
【0333】
図49〜図51は、電源基板910からの電源断信号に応じて実行されるマスク不能割込処理(NMI処理:電力供給停止時処理)の処理例を示すフローチャートである。この例では、NMIに応じて電力供給停止時処理が実行されるが、電源断信号を払出制御用CPU371のマスク可能端子に接続し、マスク可能割込処理によって電力供給停止時処理を実行してもよい。また、電源断信号を入力ポートに入力し、入力ポートのチェック結果に応じて電力供給停止時処理を実行してもよい。
【0334】
マスク不能割込処理において、払出制御用CPU371は、AFレジスタを所定のバックアップRAM領域に退避する(ステップS801)。また、割込フラグをパリティフラグにコピーする(ステップS802)。パリティフラグはバックアップRAM領域に形成されている。また、BCレジスタ、DEレジスタ、HLレジスタ、IXレジスタおよびスタックポインタをバックアップRAM領域に退避する(ステップS804〜808)。なお、電源復旧時には、退避された内容にもとづいてレジスタ内容が復元され、パリティフラグの内容に応じて、割込許可状態/禁止状態の内部設定がなされる。
【0335】
なお、本例では、払出モータ289として、払出制御用CPU371からのパルス信号(駆動信号)によって回転するステッピングモータが用いられている。従って、払出モータ289に対するパルス信号の出力が停止されることによって、球払出装置97の駆動は停止する。
【0336】
次いで、払出制御用CPU371は、クリアデータ(00)を適当なレジスタにセットし(ステップS809)、処理数(この例では「2」)を別のレジスタにセットする(ステップS810)。また、出力ポートCのアドレス(この例では「00H」)をIOポインタに設定する(ステップS811)。IOポインタとして、さらに別のレジスタが用いられる。
【0337】
そして、IOポインタが指すアドレスにクリアデータをセットするとともに(ステップS812)、IOポインタの値を1増やし(ステップS813)、処理数の値を1減算する(ステップS814)。ステップS812〜S814の処理が、処理数の値が0になるまで繰り返される(ステップS815)。その結果、出力ポートCおよび出力ポートD(図44参照)にクリアデータが設定される。図44に示すように、この例では、「1」がオン状態であり、クリアデータである「00」が各出力ポートにセットされるので、出力ポートCおよび出力ポートDの全てのポートがオフ状態になる。この例では、出力ポートEのクリア処理は実行されないので、振分ソレノイド310の出力ポートはオフ状態とはされない。出力ポートEにおける振分ソレノイド310の出力ポート以外の出力ポートについて、クリア処理を行うようにしてもよい。
【0338】
その後、この実施の形態では、所定期間(以下、「払出確認期間」という)、払出検出手段としての賞球カウントスイッチ301A(賞遊技媒体払出検出手段に相当)および球貸しカウントスイッチ301B(貸出遊技媒体払出検出手段に相当)の検出信号をチェックする。そして、賞球カウントスイッチ301Aがオンしたら総合個数記憶の内容を1減らす。また、球貸しカウントスイッチ301Bがオンしたら貸し球個数記憶の内容を1減らす。
【0339】
なお、この実施の形態では、払出確認期間を計測するために、払出確認期間計測用カウンタが用いられる。払出確認期間計測用カウンタの値は、初期値mから、以下に説明するスイッチ検出処理のループ(S817から始まってS817に戻るループ)が1回実行される毎に−1され、その値が0になると、払出確認期間が終了したとする。検出処理のループでは、例外はあるがほぼ一定の処理が行われるので、ループの1周に要する時間のm倍の時間が、ほぼ払出確認期間に相当する。
【0340】
払出確認期間を計測するために、払出制御用CPU371の内蔵タイマを用いてもよい。すなわち、スイッチ検出処理開始時に、内蔵タイマに所定値(払出確認期間に相当)を設定しておく。そして、スイッチ検出処理のループが1回実行される毎に、内蔵タイマのカウント値をチェックする。そして、カウント値が0になったら、払出確認期間が終了したとする。内蔵タイマの値が0になったことを検出するために内蔵タイマによる割込を用いることもできるが、この段階では制御内容(RAMに格納されている各値など)を変化させないように、割込を用いず、内蔵タイマのカウント値を読み出してチェックするようなプログラム構成の方が好ましい。また、払出確認期間は、遊技球が、球払出装置97から落下した時点から、賞球カウントスイッチ301Aまたは球貸しカウントスイッチ301Bに到達するまでの時間以上に設定される。
【0341】
少なくとも、スイッチ検出処理が実行される払出確認期間(遊技球が球払出装置97から落下した時点から賞球カウントスイッチ301Aや球貸しカウントスイッチ301Bに到達するまでの期間以上の期間。例えば、100[ms]〜150[ms]程度。)では、賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bが遊技球を検出できる状態でなければならない。そこで、この実施の形態では、図9に示されたように、電源基板910におけるコンバータIC920の入力側に比較的大容量の補助駆動電源としてのコンデンサ923が接続されている。よって、遊技機に対する電力供給停止時にも、ある程度の期間は+12V電源電圧がスイッチ駆動可能な範囲に維持され、賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bが動作可能になる。その期間が、払出確認期間以上になるように、コンデンサの容量が決定される。払出確認期間が長い程、あるいは払出確認期間以上とされるスイッチ駆動可能な期間に余裕を持たせる程、より容量の大きいコンデンサが必要になるため、払出確認期間を短く設定するとともに、スイッチ駆動可能な期間に余裕を持たせすぎないようにすることが望ましい。
【0342】
なお、入力ポートおよび払出制御用CPU371も、コンバータIC920で作成される+5V電源で駆動されるので、電力供給停止時にも、比較的長い期間動作可能になっている。
【0343】
さらに、この実施の形態では、賞球路と貸し球路とを切り換えるために振分ソレノイド310が用いられている。よって、図9に示されたコンデンサ924の容量は、少なくとも上記の払出確認期間の間、振分ソレノイド310を駆動できるような容量になっている。なお、コンデンサ924は、各電気部品に電力供給を行うためのライン(コネクタ915の入力側のライン)に接続されているが、電源断信号に応じて遊技制御手段が他のソレノイド(大入賞口開閉用等)の駆動信号をオフ状態にしているので、電源断信号発生後では、コンデンサ924は、各ソレノイドのうちでは振分ソレノイド310のみを駆動できればよい。
【0344】
なお、この実施の形態で用いられているコンデンサ923およびコンデンサ924は補助駆動電源の一つの例であるが、補助駆動電源として他のものを用いてもよい。少なくとも、上記の払出確認期間の間は、賞球カウントスイッチ301A、球貸しカウントスイッチ301B、振分ソレノイド310および払出制御用CPU371等の払出制御手段を駆動できるものであれば、他の態様の補助駆動電源を用いることができる。
【0345】
払出検出手段からの検出信号の入力処理(スイッチ検出処理)では、払出制御用CPU371は、まず、払出確認期間計測用カウンタに、払出確認期間に対応した値mを設定する(ステップS816)。そして、払出制御用CPU371は、払出確認期間計測用カウンタの値を−1し(ステップS817)、払出確認期間計測用カウンタの値を確認する(ステップS818)。その値が0であれば、スイッチ検出処理を終了し、制御状態を保存するための処理に移行する。
【0346】
払出確認期間計測用カウンタの値が0になっていなければ、賞球カウントスイッチオン中であるか否か確認する(ステップS819)。この確認は、後述する賞球カウントスイッチON中フラグの状態を確認することで行われる。賞球カウントスイッチON中フラグがセットされていれば、賞球カウントスイッチオン中であると判定し、検出期間用カウンタの値を1減らした後(ステップS820)、検出期間用カウンタの値が0になったか否か確認する(ステップS821)。0になっていれば、入力ポートを介して賞球カウントスイッチ301Aの検出信号を確認し(ステップS822)、オン状態を示していれば、賞球カウントスイッチ301Aが確実にオンしたとして、総合個数記憶の値を1減らす(ステップS823)。
【0347】
ステップS819で、賞球カウントスイッチオン中でないこと(賞球カウントスイッチON中フラグがセットされていないこと)を確認したら、入力ポートを介して賞球カウントスイッチ301Aの検出信号を確認し(ステップS824)、オン状態を示していれば、賞球カウントスイッチON中フラグをセットするとともに(ステップS825)、検出期間用カウンタに初期値nをセットする(ステップS826)。
【0348】
以上の処理によって、払出確認期間内に賞球カウントスイッチ301Aがオンしたら、総合個数記憶の値が−1される。バックアップRAMの内容を保存するための処理は、このようなスイッチ検出処理の後で行われるので、払出が完了した賞球について、必ず総合個数記憶が−1される。従って、遊技球の払出に関して、保存される制御状態に矛盾が生じてしまうことが防止される。また、上記のスイッチ検出処理では、検出期間用カウンタを用いたタイマ処理が施されている。すなわち、一度賞球カウントスイッチ301Aのオンが検出された後、所定時間(S817からS821に至りS817に戻るループにおける処理時間のn倍:遊技媒体検出判定期間)の経過後にもオンが検出されないとスイッチオンと見なされない。つまり、最初のオン検出後、所定の遊技媒体検出判定期間経過後にもオン検出した場合に、1個の賞球の払出が完了したと見なされる。従って、誤ってスイッチオン検出がなされてしまうことは防止される。
【0349】
この場合、例えば、遊技媒体検出判定期間がほぼ2msとなるようにnを設定すれば、遊技媒体検出判定期間を通常遊技媒体検出判定期間(電力供給停止時処理での処理でない、通常の遊技状態において遊技媒体の有無を判定するための期間。本例では、後述する図56における751cで賞球カウントスイッチオンフラグの値が2であることが確認されるまでの2ms以上の期間)と同じ期間とすることが可能となる。このように構成すれば、通常の制御とほぼ同一の条件で、賞球カウントスイッチ301Aがオンしたか否かを判定することが可能となる。
【0350】
なお、通常時のスイッチ処理(図46におけるステップS752)でも、誤検出防止用のタイマ処理が施されている。よって、そのような通常時のスイッチ処理をコールするようにしてもよい。また、ここでは、検出期間用カウンタを用いたタイマ処理が行われたが、払出確認期間の計測の場合にCPU内蔵タイマを用いてもよいのと同様、CPU内蔵タイマを用いてスイッチ検出処理におけるタイマ処理を実現してもよい。
【0351】
賞球カウントスイッチオン中でなく、かつ、賞球カウントスイッチ301Aのオン状態が検出できない場合には、球貸しカウントスイッチ301Bについてスイッチ検出処理を行う。すなわち、払出制御用CPU371は、球貸しカウントスイッチオン中であるか否か確認する(ステップS827)。オン中であれば、検出期間用カウンタの値を1減らした後(ステップS828)、検出期間用カウンタの値が0になったか否か確認する(ステップS829)。0になっていれば、入力ポートを介して球貸しカウントスイッチ301Bの検出信号を確認し(ステップS830)、オン状態を示していれば、球貸しカウントスイッチ301Bが確実にオンしたとして、貸し球個数記憶の値を1減らす(ステップS831)。
【0352】
ステップS827で、球貸しカウントスイッチオン中でないことを確認したら、入力ポートを介して球貸しカウントスイッチ301Bの検出信号を確認し(ステップS832)、オン状態を示していれば、球貸しカウントスイッチON中フラグをセットするとともに(ステップS833)、検出期間用カウンタに初期値nをセットする(ステップS834)。
【0353】
以上の処理によって、払出確認期間内に球貸しカウントスイッチ301Bがオンしたら、貸し球個数記憶の値が−1される。バックアップRAMの内容を保存するための処理は、このようなスイッチ検出処理の後で行われるので、払出が完了した貸し球について、必ず貸し球個数記憶が−1される。従って、遊技球の払出に関して、保存される制御状態に矛盾が生じてしまうことが防止される。また、上記のスイッチ検出処理では、検出期間用カウンタを用いたタイマ処理が施されている。すなわち、球貸しカウントスイッチ301Bのオンが所定時間(遊技媒体検出判定期間)以上継続しないとスイッチオンと見なされない。つまり、賞球の払出検出の場合と同様に、最初のオン検出後、所定の遊技媒体検出判定期間経過後にもオン検出した場合に、1個の貸し球の払出が完了したと見なされる。従って、誤ってスイッチオン検出がなされてしまうことは防止される。
【0354】
また、賞球の払出検出の場合と同様に、例えば、遊技媒体検出判定期間がほぼ2msとなるようにnを設定すれば、遊技媒体検出判定期間を通常遊技媒体検出判定期間(電力供給停止時処理での処理でない、通常の遊技状態において遊技媒体の有無を判定するための期間。本例では、図56における751hで球貸しカウントスイッチオンフラグの値が2であることが確認されるまでの2ms以上の期間)と同じ期間とすることが可能となる。このように構成すれば、通常の制御とほぼ同一の条件で、球貸しカウントスイッチ301Bがオンしたか否かを判定することが可能となる。
【0355】
払出確認期間が経過すると(ステップS818)、払出制御用CPU371は、バックアップあり指定値(この例では「55H」)をバックアップフラグにストアする(ステップS835)。バックアップフラグはバックアップRAM領域に形成されている。次いで、主基板31のCPU56の処理と同様の処理を行ってパリティデータを作成しバックアップRAM領域に保存する(ステップS836〜S845)。そして、RAMアクセスレジスタにアクセス禁止値を設定する(ステップS846)。以後、内蔵RAMのアクセスができなくなる。
【0356】
なお、この実施の形態では、払出制御処理において用いられるデータが格納されるRAM領域は全て電源バックアップされている。従って、その内容が正しく保存されているか否かを示すチェックサムの生成処理、およびその内容を書き換えないようにするためのRAMアクセス防止処理が、払出制御状態を保存するための処理に相当する。
【0357】
以上のように、この実施の形態では、停電等の発生に応じて電源断信号が出力されたら、まず、球払出装置97の駆動を停止した後、払出確認期間、払出検出手段からの検出信号の入力処理が実行され、その後、払出制御状態を保存するための処理が行われる。従って、停電発生時に払出途中であった遊技球も、バックアップRAMの保存内容に反映される。
【0358】
すなわち、この実施の形態では、遊技機への電力供給停止時に制御状態をバックアップ記憶手段に保存するように構成した場合に、制御の矛盾等を生じさせないようにすることができる。
【0359】
また、この実施の形態では、遊技媒体検出手段が所定の遊技媒体検出判定期間の前後において2回連続してオン検出した場合に、1個の賞球あるいは貸し球の払出を完了したと見なすようにしたので、誤ってスイッチオン検出がなされてしまうことを防止することができる。従って、電源断時における制御の適正化を図ることが可能となる。
【0360】
上述したように、この例では、振分ソレノイド310の出力ポート以外の出力ポートのクリア処理が、スイッチ検出処理の実行前(ステップS762の前)に行われる。電力供給停止時処理の実行中では、払出制御用CPU371やスイッチ類はコンデンサ923,924の充電電力等で駆動されることになる。この例では、出力ポートのクリア処理をスイッチ検出処理の実行前に行っているので、コンデンサの充電電力等を電力供給停止時処理のために効率的に使用することができる。
【0361】
RAMアクセスレジスタにアクセス禁止値を設定すると、払出制御用CPU371は、待機状態(ループ状態)に入る。従って、システムリセットされるまで、何もしない状態になる。
【0362】
この例では、電源の瞬断等に起因して電源断信号が発生した場合には、電源電圧は平常時の値に復旧し遊技機は制御可能な状態に戻る。そのような状況が発生したときには、電源基板910から復帰信号が払出基板37に供給される。復帰信号が入力されると、払出制御用CPU371にリセットがかかる。従って、払出制御用CPU371は、図46に示されたメイン処理の実行を開始することができる。その際、電源断信号が出力されたときに遊技状態が保存されているので、ステップS710の処理で払出状態復旧処理が実行され、払出制御は、電源断信号発生時の状態に戻り、その状態から払出制御が続行される。
【0363】
なお、ここでは、賞球カウントスイッチ301Aまたは球貸しカウントスイッチ301Bの検出信号がオン状態を示したらタイマ(検出期間用カウンタ)をセットし、タイマがタイムアップしたときにも検出信号がオン状態を示していたら、スイッチが確実にオンしたと判定したが、主基板31のCPU56と同様に、2msのタイマ(2ms計測用カウンタ)がタイムアップする毎に検出信号の判定を行うように構成してもよい。
【0364】
また、この実施の形態でも、電源断信号に応じて起動される処理の最初にレジスタの保存処理が行われたが、スイッチ検出処理においてレジスタを使用しない場合には、スイッチ検出処理の実行後に、すなわち、バックアップフラグの設定とチェックサムの算出の処理の前にレジスタ保存処理を行うことができる。その場合には、レジスタ保存処理、バックアップフラグ設定処理、チェックサム算出処理および出力ポートのオフ設定処理を電力供給停止時処理と見なすことができる。さらに、スイッチ検出処理において幾つかのレジスタを使用する場合であっても、使用しないレジスタについては、バックアップフラグの設定とチェックサムの算出の処理の前にレジスタ保存処理を行うことができる。
【0365】
図52は、払出制御用CPU371が内蔵するRAMの使用例を示す説明図である。この例では、バックアップRAM領域に、総合個数記憶(例えば2バイト)と貸し球個数記憶とがそれぞれ形成されている。総合個数記憶は、主基板31の側から指示された賞球払出個数の総数を記憶するものである。貸し球個数記憶は、未払出の球貸し個数を記憶するものである。なお、バックアップRAM領域には、上記の遊技球の個数に関する情報を記憶する領域に限られず、例えば、後述する払出停止中フラグ、賞球経路エラーフラグなどのエラー状態を示すフラグ、バックアップフラグなどの各種のフラグを記憶する領域や、受信コマンドバッファなどの各種のバッファなどを記憶する領域なども形成されている。また、払出制御処理において用いられるデータが格納されるRAM領域は全て電源バックアップされるようにしてもよい。
【0366】
そして、払出制御用CPU371は、例えば、賞球制御処理(ステップS757)において、遊技制御手段から賞球個数を示す払出制御コマンドを受信すると、指示された個数分だけ総合個数記憶に内容を増加する。また、球貸し制御処理(ステップS756)において、カードユニット50から球貸し要求の信号を受信する毎に1単位(例えば25個)の個数分だけ貸し球個数記憶に内容を増加する。さらに、払出制御用CPU371は、賞球制御処理において賞球カウントスイッチ301Aが1個の賞球払出を検出すると総合個数記憶の値を1減らし、球貸し制御処理において球貸しカウントスイッチ301Bが1個の貸し球払出を検出すると貸し球個数記憶の値を1減らす。
【0367】
従って、未払出の賞球個数と貸し球個数とが、所定期間はその内容を保持可能なバックアップRAM領域に記憶されることになる。よって、停電等の不測の電力供給停止が生じても、所定期間内に電力供給が復旧すれば、バックアップRAM領域の記憶内容にもとづいて賞球処理および球貸し処理を再開することができる。すなわち、遊技機への電力供給が停止しても、電力供給が再開すれば、電力供給停止時の未払出の賞球個数と貸し球個数とにもとづいて払い出しが行われ、遊技者に与えられる不利益を低減することができる。
【0368】
図53は、主基板31から受信した払出制御コマンドを格納するための受信バッファの一構成例を示す説明図である。この例では、2バイト構成の払出制御コマンドを6個格納可能なリングバッファ形式の受信バッファが用いられる。従って、受信バッファは、受信コマンドバッファ1〜12の12バイトの領域で構成される。そして、受信したコマンドをどの領域に格納するのかを示すコマンド受信個数カウンタが用いられる。コマンド受信個数カウンタは、0〜11の値をとる。
【0369】
図54は、割込処理による払出制御コマンド受信処理を示すフローチャートである。主基板31からの払出制御用のINT信号は払出制御用CPU371のCLK/TRG2端子に入力されている。よって、主基板31からのINT信号が立ち上がると、払出制御用CPU371に割込がかかり、図54に示す払出制御コマンドの受信処理が開始される。なお、払出制御用CPU371は、割込が発生すると、ソフトウェアで割込許可にしない限り、マスク可能割込がさらに生ずることはないような構造のCPUである。
【0370】
なお、ここでは払出制御手段のコマンド受信処理について説明するが、表示制御手段、ランプ制御手段および音制御手段でも、同様のコマンド受信処理が実行されている。また、この実施の形態では、CLK/TRG2端子の入力が立ち上がるとタイマカウンタレジスタCLK/TRG2の値が−1されるような初期設定を行ったが、すなわち、INT信号の立ち上がりで割込が発生するような初期設定を行ったが、CLK/TRG2端子の入力が立ち下がるとタイマカウンタレジスタCLK/TRG2の値が−1されるような初期設定を行ってもよい。換言すれば、INT信号の立ち下がりで割込が発生するような初期設定を行ってもよい。
【0371】
すなわち、取込信号としてのパルス状(矩形波状)のINT信号のレベル変化タイミング(エッジ)で割込が発生するように構成すれば、エッジは立ち上がりエッジであっても立ち下がりエッジであってもよい。いずれにせよ、取込信号としてのパルス状(矩形波状)のINT信号のレベル変化タイミング(エッジ)で割込が発生するように構成される。このようにすることで、コマンドの取込が指示された段階でいち早くコマンド受信を行うことが可能になる。また、Aの期間(図37参照)が経過するまでINT信号の出力が待機されるので、INT信号の出力時に、制御信号CD0〜CD7のライン上のコマンドデータの出力状態は安定している。よって、払出制御手段において、払出制御コマンドは良好に受信される。
【0372】
払出制御コマンドの受信処理において、払出制御用CPU371は、まず、各レジスタをスタックに退避する(ステップS850)。次いで、払出制御コマンドデータの入力に割り当てられている入力ポート372a(図8参照)からデータを読み込む(ステップS851)。次いで、読み込んだデータが規則内のデータであるか否か確認する(ステップS851a)。規則内のデータであるか否かは、受信したデータの構成や内容が予め定められている規則に適合しているか否かを確認することで行われる。例えば、受信したデータが、正規のコマンドとはバイト数が異なるデータであった場合や、データの内容が正規のコマンドではあり得ない内容となっている場合などには、規則外のデータであると判定される。読み込んだデータが規則内のデータであれば、2バイト構成の払出制御コマンドのうちの1バイト目であるか否か確認する(ステップS852)。1バイト目であるか否かは、受信したコマンドの先頭ビットが「1」であるか否かによって確認される。先頭ビットが「1」であるのは、2バイト構成である払出制御コマンドのうちのMODEバイト(1バイト目)のはずである(図36参照)。そこで、払出制御用CPU371は、先頭ビットが「1」であれば、有効な1バイト目を受信したとして、受信したコマンドを受信バッファ領域におけるコマンド受信個数カウンタが示す受信コマンドバッファに格納する(ステップS853)。
【0373】
払出制御コマンドのうちの1バイト目でなければ、1バイト目を既に受信したか否か確認する(ステップS854)。既に受信したか否かは、受信バッファ(受信コマンドバッファ)に有効なデータが設定されているか否かによって確認される。
【0374】
1バイト目を既に受信している場合には、受信した1バイトのうちの先頭ビットが「0」であるか否か確認する。そして、先頭ビットが「0」であれば、有効な2バイト目を受信したとして、受信したコマンドを、受信バッファ領域におけるコマンド受信個数カウンタ+1が示す受信コマンドバッファに格納する(ステップS855)。先頭ビットが「0」であるのは、2バイト構成である払出制御コマンドのうちのEXTバイト(2バイト目)のはずである(図36参照)。なお、ステップS854における確認結果が1バイト目を既に受信したである場合には、2バイト目として受信したデータのうちの先頭ビットが「0」でなければ処理を終了する。なお、ステップS854で「N」と判断された場合には、ステップS856の処理が行われないので、次に受信したコマンドは、今回受信したコマンドが格納されるはずであったバッファ領域に格納される。
【0375】
ステップS855において、2バイト目のコマンドデータを格納すると、コマンド受信個数カウンタに2を加算する(ステップS856)。そして、コマンド受信カウンタが12以上であるか否か確認し(ステップS857)、12以上であればコマンド受信個数カウンタをクリアする(ステップS858)。その後、退避されていたレジスタを復帰し(ステップS859)、最後に割込許可に設定する(ステップS860)。
【0376】
コマンド受信割込処理中は割込禁止状態になっている。上述したように、2msタイマ割込処理中は割込許可状態になっているので、2msタイマ割込中にコマンド受信割込が発生した場合には、コマンド受信割込処理が優先して実行される。また、コマンド受信割込処理中に2msタイマ割込が発生しても、その割込処理は待たされる。このように、この実施の形態では、主基板31からのコマンド受信処理の処理優先度が高くなっている。また、コマンド受信処理中には他の割込処理が実行されないので、コマンド受信処理に要する最長時間は決まる。コマンド受信処理中に他の割込処理が実行可能であるように構成したのでは、コマンド受信処理に要する最長の時間を見積もることは困難である。コマンド受信処理に要する最長時間が決まるので、遊技制御手段のコマンド送出処理におけるCの期間(図37参照)をどの程度にすればよいのかを正確に判断することができる。さらに具体的には、コマンド受信処理に要する最長時間が決まるので、ステップS367にてセットするウエイトカウンタの値をどの程度にすればよいのかを正確に判断することができる。
【0377】
また、払出制御コマンドは2バイト構成であって、1バイト目(MODE)と2バイト目(EXT)とは、受信側で直ちに区別可能に構成されている。すなわち、先頭ビットによって、MODEとしてのデータを受信したのかEXTとしてのデータを受信したのかを、受信側において直ちに検出できる。よって、上述したように、適正なデータを受信したのか否かを容易に判定することができる。
【0378】
次に、コマンド送信に関する処理の実行中に電力供給が停止し、その後の電力供給開始時に再送されたコマンドを受信するコマンド受信側基板(例えば、払出制御基板37)での受信状態について説明する。
【0379】
まず、MODEデータの受信中(図41に示したb〜cの期間中)に電力供給が停止したあとに電力供給が再開した場合について説明する。この場合、図55(A)に示すように、コマンド受信側基板は、例えばコマンド受信バッファ1に記憶する処理を行っていたMODEデータを完全に取り込んでいない状態で電力供給が停止した状態となる。その後、電力供給が再開すると、コマンド受信側基板では、コマンド受信バッファの内容が復元される。次いで、受信した初期設定コマンド(この例では、ステップS83やステップS84にて送信されるコマンド)のMODEデータをコマンド受信バッファ1に上書き保存する。また、受信した初期設定コマンドのEXTデータをコマンド受信バッファ2に保存する。その後、主基板31の遊技制御処理にて再送信されてきたMODEデータをコマンド受信バッファ3に保存し、EXTデータをコマンド受信バッファ4に保存する。従って、MODEデータの受信中に電力供給が停止した場合であっても、電力供給が再開したあとに制御コマンドが正常に受信される。
【0380】
次に、MODEデータの受信を終了したあとコマンド送信中フラグがオフ状態とされる前(図41に示したc〜dの期間中)に電力供給が停止し、その後に電力供給が再開した場合について説明する。この場合、図55(B)に示すように、コマンド受信側基板は、MODEデータを例えばコマンド受信バッファ1に保存し終えた状態で電力供給が停止した状態となる。その後、電力供給が再開すると、コマンド受信側基板では、コマンド受信バッファの内容が復元される。次いで、受信した初期設定コマンド(この例では、ステップS83やステップS84にて送信されるコマンド)のMODEデータをコマンド受信バッファ2に保存する。また、受信した初期設定コマンドのEXTデータをコマンド受信バッファ3に保存する。すると、隣接するコマンド受信バッファにMODEデータが連続して保存されたことになり、制御コマンドの受信規則に反するため、規則外のデータであるコマンド受信バッファ1に保存されているMODEデータは破棄される。その後、主基板31の遊技制御処理にて再送信されてきたMODEデータをコマンド受信バッファ4に保存し、EXTデータをコマンド受信バッファ5に保存する。従って、MODEデータの受信を終了したあとコマンド送信中フラグがオフ状態とされる前に電力供給が停止した場合であっても、電力供給が再開したあとに制御コマンドが正常に受信される。
【0381】
次に、EXTデータの受信を完了したあとコマンド送信中フラグがオフ状態とされる前(図41に示したg〜hの期間)に電力供給が停止し、その後に電力供給が再開した場合について説明する。この場合、図55(C)に示すように、コマンド受信側基板は、MODEデータを例えばコマンド受信バッファ1に保存し、EXTデータをコマンド受信バッファ2に保存し終えた状態で電力供給が停止した状態となる。その後、電力供給が再開すると、コマンド受信側基板では、コマンド受信バッファの内容が復元される。次いで、受信した初期設定コマンド(この例では、ステップS83やステップS84にて送信されるコマンド)のMODEデータをコマンド受信バッファ3に保存し、受信した初期設定コマンドのEXTデータをコマンド受信バッファ4に保存する。その後、主基板31の遊技制御処理にて再送信されてきたEXTデータをコマンド受信バッファ5に保存する。しかし、隣接するコマンド受信バッファにEXTデータが連続して保存されたことになり、制御コマンドの受信規則に反するため、規則外のデータであるコマンド受信バッファ5に保存されているEXTデータは破棄される。このように、EXTデータの受信を完了したあとコマンド送信中フラグがオフ状態とされる前に電力供給が停止した場合には、電力供給が再開したあとに再送されたEXTデータは破棄されるので、制御コマンドは正常に受信されていることになる。
【0382】
最後に、EXTデータの受信中(図41に示したf〜gの期間中)に電力供給が停止したあとに電力供給が再開した場合について説明する。本例では電力供給が再開した場合に初期設定コマンドが送信されるので、制御コマンドの取りこぼしを防止するため、EXTデータの受信中に電力供給が停止したあとに電力供給が再開した場合には、MODEデータから再送する構成とするのが好ましい。この場合、例えば、ステップS335のコマンド送信処理によって用いられるコマンド送信中フラグと、ステップS340のコマンド送信処理によって用いられるコマンド送信中フラグとを別個のフラグとし、ステップS340のコマンド送信処理によって用いられるコマンド送信中フラグがオン状態であるときに電力供給が停止して、その後に電力供給が再開した場合には、ステップS87にてスタック領域における復帰アドレスを示す値を、コマンドセット処理(図39参照)の最初のアドレスを示す値に変更するようにすればよい。
【0383】
EXTデータの受信中に電力供給が停止したあとに電力供給が再開した場合にMODEデータから再送する処理を行う構成とした場合には、図55(D)に示すように、コマンド受信側基板は、例えばコマンド受信バッファ1にMODEデータを保存したあと、コマンド受信バッファ2に記憶する処理を行っていたEXTデータを完全に取り込んでいない状態で電力供給が停止した状態となる。その後、電力供給が再開すると、コマンド受信側基板では、コマンド受信バッファの内容が復元される。次いで、受信した初期設定コマンド(この例では、ステップS83やステップS84にて送信されるコマンド)のMODEデータをコマンド受信バッファ2に上書き保存する。また、受信した初期設定コマンドのEXTデータをコマンド受信バッファ3に保存する。その後、主基板31の遊技制御処理にて再送信されたMODEデータをコマンド受信バッファ4に保存し、遊技制御処理にて再送信されたEXTデータをコマンド受信バッファ5に保存する。従って、MODEデータの受信中に電力供給が停止した場合であっても、電力供給が再開したあとに、取りこぼしが発生することなく制御コマンドが正常に受信される。
【0384】
なお、上記のように、EXTデータの受信中(図41に示したf〜gの期間中)に電力供給が停止したあとに電力供給が再開した場合にMODEデータから再送する構成とすると、EXTデータの受信を完了したあとコマンド送信中フラグがオフ状態とされる前(図41に示したg〜hの期間)に電力供給が停止し、その後に電力供給が再開した場合についても、MODEデータから再送する構成となる。従って、EXTデータの受信を完了したあとコマンド送信中フラグがオフ状態とされる前に電力供給が停止し、その後に電力供給が再開した場合に、制御コマンドが重複受信されることを防止するために、図41に示したg〜hの期間をできるだけ短い期間となるように、ステップS362やステップS367(図40参照)で設定されるウエイトカウンタの値を調整することが望ましい。理想的には、コマンド受信処理の完了時と、コマンド送信中フラグがオフ状態とするときとが同一となるように、ステップS362やステップS367(図40参照)で設定されるウエイトカウンタの値を調整する。
【0385】
上記のように、遊技制御手段(例えば、CPU56)が、コマンドの送信に関連する処理(例えば、コマンド送信処理:図40参照)の実行中に遊技機への電力供給が停止し、その後に電力供給が開始した場合には、コマンドの送信に関連する処理を所定のタイミング(例えば、コマンド送信処理の最初)から再度実行し、電力供給が停止したときに送信中のコマンドがあった場合には、当該、コマンドの少なくとも一部(MODEデータ、EXTデータ、あるいは制御コマンド)を再送する構成としたので、コマンドの出力にかかわる処理の実行中に電力供給が停止した場合であっても、電力供給再開後にそのコマンドを確実に送信することができる。
【0386】
例えば、払出手段からの遊技媒体の払出数を特定可能な払出制御コマンドを再送する構成とした場合には、たとえ遊技制御手段(例えば、CPU56)による払出制御コマンドの送信に関連する処理(例えば、コマンド送信処理:図40参照)の実行中に電力供給が停止した場合であっても、払出制御コマンドは確実に送信されるので、遊技媒体の付与が確実に行なわれ、遊技者に不利益を及ぼしてしまうことを防止することができる。
【0387】
また、コマンドの送信に関連する処理(例えば、コマンド送信処理)は、コマンドの出力に用いられるコマンド出力ポートにデータを出力する処理(例えば、ステップS356)を含み、コマンドの送信に関連する処理を再度実行する所定のタイミングは、コマンド出力ポートにデータを出力する処理の前(例えば、コマンド送信処理の最初)であるように構成されているので、コマンド出力ポートにデータを出力する処理が確実に実行されることが保証される。
【0388】
さらに、コマンドの送信に関連する処理(例えば、コマンド送信処理)を再度実行する所定のタイミングは、コマンドの送信に関連する処理の最初であるように構成されているので、コマンドの送信に関連する処理が確実に実行されることが保証され、コマンドを確実に送信することができる。
【0389】
図56は、ステップS752のスイッチ処理の一例を示すフローチャートである。スイッチ処理において、払出制御用CPU371は、賞球カウントスイッチ301Aがオン状態を示しているか否か確認する(ステップS751a)。オン状態を示していれば、払出制御用CPU371は、賞球カウントスイッチオンカウンタを+1する(ステップS751b)。賞球カウントスイッチオンカウンタは、賞球カウントスイッチ301Aのオン状態を検出した回数を計数するためのカウンタである。
【0390】
そして、賞球カウントスイッチオンカウンタの値をチェックし(ステップS751c)、その値が2になっていれば、1個の賞球の払出が行われたと判断する。1個の賞球の払出が行われたと判断した場合には、払出制御用CPU371は、賞球未払出カウンタ(総合個数記憶に格納されている賞球個数:未払出数データ)を−1する(ステップS751d)。
【0391】
ステップS751aにおいて賞球カウントスイッチ301Aがオン状態でないことが確認されると、払出制御用CPU371は、賞球カウントスイッチオンカウンタをクリアする(ステップS751e)。そして、この実施の形態では、球貸しカウントスイッチ301Bがオン状態を示しているか否か確認する(ステップS751f)。オン状態を示していれば、払出制御用CPU371は、球貸しカウントスイッチオンカウンタを+1する(ステップS751g)。球貸しカウントスイッチオンカウンタは、球貸しカウントスイッチ301Bのオン状態を検出した回数を計数するためのカウンタである。
【0392】
そして、球貸しカウントスイッチオンカウンタの値をチェックし(ステップS751h)、その値が2になっていれば、1個の貸し球の払出が行われたと判断する。1個の貸し球の払出が行われたと判断した場合には、払出制御用CPU371は、貸し球未払出個数カウンタ(貸し球個数記憶に格納されている貸し球数:未払出数データ)を−1する(ステップS751i)。
【0393】
ステップS751fにおいて球貸しカウントスイッチ301Bがオン状態でないことが確認されると、払出制御用CPU371は、球貸しカウントスイッチオンカウンタをクリアする(ステップS751j)。
【0394】
図57は、ステップS753の払出停止状態設定処理の一例を示すフローチャートである。払出停止状態設定処理において、払出制御用CPU371は、受信バッファ中に受信コマンドがあるか否かの確認を行う(ステップS753a)。受信バッファ中に受信コマンドがあれば、受信した払出制御コマンドが払出停止状態指定コマンドであるか否かの確認を行う(ステップS753b)。払出停止状態指定コマンドであれば、払出制御用CPU371は、払出停止状態に設定する(ステップS753c)。
【0395】
ステップS753bで受信コマンドが払出停止状態指定コマンドでないことを確認すると、受信した払出制御コマンドが払出可能状態指定コマンドであるか否かの確認を行う(ステップS753d)。払出可能状態指定コマンドであれば、払出停止状態を解除する(ステップS753e)。
【0396】
なお、払出停止状態に設定するときには、例えば払出モータ289の駆動が停止されるとともに払出停止中であることを示す内部フラグ(払出停止中フラグ)がセットされる。また、払出停止状態を解除するときには、払出モータ289の駆動が再開されるとともに、払出停止中フラグがリセットされる。すなわち、ステップS753cでは、払い出しが禁止された状態であることを示すデータ(セットされた払出停止中フラグ)を所定の記憶領域に記憶する処理が実行されており、ステップS753eでは、払い出しが許可された状態であることを示すデータ(リセットされた払出停止中フラグ)を所定の記憶領域に記憶する処理が実行されている。
【0397】
払出停止中フラグは、例えばバックアップRAM領域に格納されている。払出停止中フラグは、例えばD0〜D7の各ビットから成る1バイト構成とされる。この場合、例えば、D0が「1」であれば払出停止状態が設定されている状態を示し、D1が「1」であれば払出停止状態が解除されている状態を示すようにすればよい。また、D2は、例えば、払出停止状態が解除されたあとの復帰待ち状態であることを示すために用いられる。なお、D3〜D7は、未使用領域とされる。
【0398】
ここで、図57の処理における払出停止中フラグの状態を具体的に説明する。ステップS753cの処理では、払出制御用CPU371は、払出停止中フラグのD0を「0」とするとともに、D1を「1」とする。また、ステップS753eの処理では、払出制御用CPU371は、払出停止中フラグのD0を「1」にするとともにD1を「0」とし、D2を「1」とする。なお、払出制御用CPU371は、D2を「1」とした場合には、所定期間(例えば1[s])経過後にD2を「0」にする。本例では、払出停止中フラグは、D0が「0」であり、かつD1が「1」の状態であるときに、払出停止状態であることを示す。また、D0が「1」であり、かつD1が「0」の状態であるときに、払出許可状態(払出停止状態状態が解除されている状態)であることを示す。なお、払出停止中フラグは、1バイト構成以外の他の構成であってもよく、各ビットを他の態様で使用するようにしてもよい(例えば、D0のみを用いるようにして、D0が「0」であれば払出停止状態を示し、D0が「1」であれば払出許可状態を示すようにしてもよい)。
【0399】
払出停止状態に設定された場合に、直ちに払出モータ289を停止してもよいが、そのように制御するのではなく、切りのよいところで払出モータ289を停止するようにしてもよい。例えば、遊技球の払出を25個単位で実行し、一単位の払出が完了した時点で払出モータ289を停止するとともに、内部状態を払出停止状態に設定するようにしてもよい。上述したように、球切れスイッチ187は、払出球通路に27〜28個程度の遊技球が存在することを検出できるような位置に設置されているので、主基板31の遊技制御手段が球切れを検出しても、その時点から少なくとも25個の払出は可能である。従って、一単位の払出が完了した時点で払出停止状態にしても問題は生じない。また、一単位の区切りで払出停止状態とすれば、払出再開時の制御が容易になる。
【0400】
図58は、ステップS754のコマンド解析実行処理の一例を示すフローチャートである。コマンド解析実行処理において、払出制御用CPU371は、受信バッファに受信コマンドがあるか否かの確認を行う(ステップS754a)。受信コマンドがあれば、受信した払出制御コマンドが賞球個数を指定するための払出制御コマンドであるか否かの確認を行う(ステップS754b)。なお、払出制御用CPU371は、コマンド指示手段としての読出ポインタが指す受信バッファ中のアドレスに格納されている受信コマンドについてステップS754bの判断を行う。また、その判断後、読出ポインタの値は+1される。読出ポインタが指すアドレスが受信コマンドバッファ12(図53参照)のアドレスを越えた場合には、読出ポインタの値は、受信コマンドバッファ1を指すように更新される。
【0401】
受信した払出制御コマンドが賞球個数を指定するための払出制御コマンドであれば、払出制御コマンドで指示された個数を総合個数記憶に加算する(ステップS754c)。すなわち、払出制御用CPU371は、主基板31のCPU56から送られた払出制御コマンドに含まれる賞球個数をバックアップRAM領域(総合個数記憶)に記憶する。
【0402】
なお、払出制御用CPU371は、必要ならば、コマンド受信個数カウンタの減算や受信バッファにおける受信コマンドシフト処理を行う。また、払出停止状態設定処理およびコマンド解析実行処理が、読出ポインタの値と受信バッファにおける最新コマンド格納位置とが一致するまで繰り返すように構成されていてもよい。例えば、読出ポインタの値と受信バッファにおける最新コマンド格納位置との差が「3」であれば未処理の受信済みコマンドが3つあることになるが、一致するまで繰り返し処理が実行されることによって、未処理の受信済みコマンドがなくなる。すなわち、受信バッファに格納されている受信済みコマンドが、一度の処理で、全て読み出されて処理される。
【0403】
図59は、ステップS755のプリペイドカードユニット制御処理の一例を示すフローチャートである。プリペイドカードユニット制御処理において、払出制御用CPU371は、カードユニット制御用マイクロコンピュータより入力されるVL信号を検知したか否かを確認する(ステップS755a)。VL信号を検知していなければ、VL信号非検知カウンタを+1する(ステップS755b)。また、払出制御用CPU371は、VL信号非検知カウンタの値が本例では125であるか否か確認する(ステップS755c)。VL信号非検知カウンタの値が125であれば、払出制御用CPU371は、発射制御基板91への発射制御信号出力を停止して、駆動モータ94を停止させる(ステップS755d)。
【0404】
以上の処理によって、125回(2ms×125=250ms)継続してVL信号のオフが検出されたら、球発射禁止状態に設定される。
【0405】
ステップS755aにおいてVL信号を検知していれば、払出制御用CPU371は、VL信号非検知カウンタをクリアする(ステップS755e)。そして、払出制御用CPU371は、発射制御信号出力を停止していれば(ステップS755f)、発射制御基板91への発射制御信号出力を開始して駆動モータ94を動作可能状態にする(ステップS755g)。
【0406】
図60および図61は、ステップS756の球貸し制御処理の一例を示すフローチャートである。なお、この実施の形態では、連続的な払出数の最大値を貸し球の一単位(例えば25個)とするが、連続的な払出数の最大値は他の数であってもよい。
【0407】
球貸し制御処理において、払出制御用CPU371は、球貸し停止中であるか否かを確認する(ステップS510)。停止中であれば、処理を終了する。なお、球貸し停止中であるか否かは、図57に示された払出停止状態設定処理などにおいて設定される払出停止中フラグがオンしているか否かによって確認される。
【0408】
球貸し停止中でなければ、払出制御用CPU371は、貸し球払出中であるか否かの確認を行い(ステップS511)、貸し球払出中であれば図61に示す球貸し中の処理に移行する。なお、貸し球払出中であるか否かは、後述する球貸し処理中フラグの状態によって判断される。貸し球払出中でなければ、賞球の払出中であるか否か確認する(ステップS512)。賞球の払出中であるか否は、後述する賞球処理中フラグの状態によって判断される。
【0409】
貸し球払出中でも賞球払出中でもなければ、払出制御用CPU371は、カードユニット50から球貸し要求があったか否かを確認する(ステップS513)。要求があれば、球貸し処理中フラグをオンするとともに(ステップS514)、25(球貸し一単位数:ここでは100円分)をバックアップRAM領域の貸し球個数記憶に設定する(ステップS515)。そして、払出制御用CPU371は、EXS信号をオンする(ステップS516)。また、球払出装置97の下方の球振分部材311を球貸し側に設定するために振分用ソレノイド310を駆動する(ステップS517)。さらに、払出制御用CPU371は、25個の遊技球を払い出すためのモータ回転時間を設定するか、または、モータ回転時間に応じた数の出力パルス数を決定する。そして、払出モータ289をオンして(ステップS518)、図61に示す球貸し中の処理に移行する。
【0410】
なお、払出モータ289をオンするのは、厳密には、カードユニット50が受付を認識したことを示すためにBRQ信号をオフ状態にしてからである。また、球貸し処理中フラグはバックアップRAM領域に設定される。
【0411】
図61は、払出制御用CPU371による払出制御処理における球貸し中の処理を示すフローチャートである。球貸し処理では、払出モータ289がオンしていなければオンする。なお、この実施の形態では、ステップS751のスイッチ処理で、球貸しカウントスイッチ301Bの検出信号による遊技球の払出がなされたか否かの確認を行うので、球貸し制御処理では貸し球個数記憶の減算などは行われない。
【0412】
球貸し制御処理において、払出制御用CPU371は、貸し球通過待ち時間中であるか否かの確認を行う(ステップS519)。貸し球通過待ち時間中でなければ、貸し球の払出を行い(ステップS520)、払出モータ289の駆動を終了すべきか(一単位の払出動作が終了したか)否かの確認を行う(ステップS521)。具体的には、所定個数の払出に対応した回転が完了したか否かを確認する。所定個数の払出に対応した回転が完了した場合には、払出制御用CPU371は、払出モータ289の駆動を停止し(ステップS522)、貸し球通過待ち時間の設定を行う(ステップS523)。
【0413】
ステップS519で貸し球通過待ち時間中であれば、払出制御用CPU371は、貸し球通過待ち時間が終了したか否かの確認を行う(ステップS524)。貸し球通過待ち時間は、最後の払出球が払出モータ289によって払い出されてから球貸しカウントスイッチ301Bを通過するまでの時間である。貸し球通過待ち時間の終了を確認すると、一単位の貸し球は全て払い出された状態であるので、カードユニット50に対して次の球貸し要求の受付が可能になったことを示すためにEXS信号をオフにする(ステップS525)。また、振分ソレノイドをオフするとともに(ステップS526)、球貸し処理中フラグをオフする(ステップS527)。なお、貸し球通過待ち時間が経過するまでに最後の払出球が球貸しカウントスイッチ301Bを通過しなかった場合には、球貸し経路エラーとされる。また、この実施の形態では、賞球も球貸しも同じ払出装置で行われる。
【0414】
なお、球貸し要求の受付を示すEXS信号をオフにした後、所定期間内に再び球貸し要求信号であるBRQ信号がオンしたら、振分ソレノイドおよび払出モータをオフせずに球貸し処理を続行するようにしてもよい。すなわち、所定単位(この例では100円単位)毎に球貸し処理を行うのではなく、球貸し処理を連続して実行するように構成することもできる。
【0415】
貸し球個数記憶の内容は、遊技機への電力供給が停止しても、所定期間電源基板910のバックアップ電源によって保存される。従って、所定期間中に電力供給が復旧すると、払出制御用CPU371は、貸し球個数記憶の内容にもとづいて球貸し処理を継続することができる。
【0416】
図62および図63は、ステップS757の賞球制御処理の一例を示すフローチャートである。なお、この例では、連続的な払出数の最大値を貸し球の一単位と同数(例えば25個)とするが、連続的な払出数の最大値は他の数であってもよい。
【0417】
賞球制御処理において、払出制御用CPU371は、まず、賞球停止中であるか否かを確認する(ステップS530)。停止中であれば、処理を終了する。なお、賞球停止中であるか否かは、図57に示された払出停止状態設定処理などにおいて設定される払出停止中フラグがオンしているか否かによって確認される。
【0418】
賞球停止中でなければ、払出制御用CPU371は、貸し球払出中であるか否かの確認を行い(ステップS531)、貸し球払出中であれば処理を終了する。なお、貸し球払出中であるか否かは、球貸し処理中フラグの状態によって判断される。貸し球払出中でなければ、既に賞球払出処理が開始されているか否か、すなわち賞球中であるか否か確認する(ステップS532)。賞球中であれば図63に示す賞球中の処理に移行する。なお、賞球中であるか否かは、後述する賞球処理中フラグの状態によって判断される。
【0419】
賞球払出中でなければ、払出制御用CPU371は、総合個数記憶に格納されている賞球数(未払出の賞球数)が0でないか否か確認する(ステップS534)。総合個数記憶に格納されている賞球数が0でなければ、賞球制御用CPU371は、賞球処理中フラグをオンし(ステップS535)、総合個数記憶の値が25以上であるか否か確認する(ステップS536)。なお、賞球処理中フラグは、バックアップRAM領域に設定される。
【0420】
総合個数記憶に格納されている賞球個数が25以上であると、払出制御用CPU371は、25個分の遊技球を払い出すまで払出モータ289を回転させるように払出モータ289に対して駆動信号を出力するために、25個払出動作の設定を行う(ステップS537)。具体的には、25個の遊技球を払い出すためのモータ回転時間を設定したり、モータ回転時間に応じた数の出力パルス数を決定する。
【0421】
総合個数記憶に格納されている賞球個数が25以上でなければ、払出制御用CPU371は、総合個数記憶に格納されている数に応じた遊技球を払い出すまで払出モータ289を回転させるように駆動信号を出力するために、全個数払出動作の設定を行う(ステップS538)。具体的には、遊技球を払い出すためのモータ回転時間を設定したり、モータ回転時間に応じた数の出力パルス数を決定する。次いで、払出モータ289をオンする(ステップS539)。なお、振分ソレノイドはオフ状態であるから、球払出装置97の下方の球振分部材は賞球側に設定されている。そして、図63に示す賞球制御処理における賞球払出中の処理に移行する。
【0422】
図63は、払出制御用CPU371による払出制御処理における賞球中の処理の一例を示すフローチャートである。賞球制御処理では、払出モータ289がオンしていなければオンする。なお、この実施の形態では、ステップS751のスイッチ処理で、賞球カウントスイッチ301Aの検出信号による遊技球の払出がなされたか否かの確認を行うので、賞球制御処理では総合個数記憶の減算などは行われない。
【0423】
賞球中の処理において、払出制御用CPU371は、賞球通過待ち時間中であるか否かの確認を行う(ステップS540)。賞球通過待ち時間中でなければ、賞球払出を行い(ステップS541)、払出モータ289の駆動を終了すべきか(25個または25個未満の所定の個数の払出動作が終了したか)否かの確認を行う(ステップS542)。具体的には、所定個数の払出に対応した回転が完了したか否かを確認する。所定個数の払出に対応した回転が完了した場合には、払出制御用CPU371は、払出モータ289の駆動を停止し(ステップS543)、賞球通過待ち時間の設定を行う(ステップS544)。賞球通過待ち時間は、最後の払出球が払出モータ289によって払い出されてから賞球カウントスイッチ301Aを通過するまでの時間である。
【0424】
ステップS540で賞球通過待ち時間中であれば、払出制御用CPU371は、賞球通過待ち時間が終了したか否かの確認を行う(ステップS545)。賞球通過待ち時間が終了した時点は、ステップS537またはステップS538で設定された賞球が全て払い出された状態である。そこで、払出制御用CPU371は、賞球通過待ち時間が終了していれば、賞球処理中フラグをオフする(ステップS546)。賞球通過待ち時間が経過するまでに最後の払出球が賞球カウントスイッチ301Aを通過しなかった場合には、賞球経路エラーとされる。
【0425】
なお、この実施の形態では、ステップS511、ステップS531の判断によって球貸しが賞球処理よりも優先されることになるが、賞球処理が球貸しに優先するようにしてもよい。
【0426】
総合個数記憶および貸し球個数記憶の内容は、遊技機への電力供給が停止しても、所定期間電源基板910のバックアップ電源によって保存される。従って、所定期間中に電力供給が復旧すると、払出制御用CPU371は、総合個数記憶の内容にもとづいて払出処理を継続することができる。
【0427】
なお、払出制御用CPU371は、主基板31から指示された賞球個数を賞球個数記憶で総数として管理したが、賞球個数毎(例えば15個、10個、6個)に管理してもよい。例えば、賞球個数毎に対応した個数カウンタを設け、払出個数指定コマンドを受信すると、そのコマンドで指定された個数に対応する個数カウンタを+1する。そして、個数カウンタに対応した賞球払出が行われると、その個数カウンタを−1する(この場合、払出制御処理にて減算処理を行うようにする)。その場合にも、各個数カウンタはバックアップRAM領域に形成される。よって、遊技機への電力供給が停止しても、所定期間中に電源が復旧すれば、払出制御用CPU371は、各個数カウンタの内容にもとづいて賞球払出処理を継続することができる。
【0428】
なお、この実施の形態では、払出制御手段は、払出制御信号に関するINT信号が立ち上がったことを検知して、例えば割込処理によって1バイトのデータの取り込み処理を開始する。そして、複数の払出制御コマンドを格納可能な受信リングバッファ(この例では受信バッファ)が設けられているので、払出制御コマンドを受信後、そのコマンドにもとづく制御が開始されないうちに次の払出制御コマンドを受信しても、そのコマンドが、払出制御手段において受信されないということはない。
【0429】
払出制御手段において、払出停止状態であっても割込処理は起動されるので、払出制御手段は、払出停止中であっても、払出制御コマンドを受信することができる。そして、払出停止中では受信した払出制御コマンドに応じた払出処理は停止しているのであるが、複数の払出制御コマンドを格納可能な受信リングバッファが設けられているので、遊技制御手段から送出された払出制御コマンドは、払出制御手段において消失してしまうようなことはない。
【0430】
そして、払出制御手段において、送出コマンドを受信リングバッファにおけるどの領域に格納するのかを示すアドレス指示手段としてのコマンド受信個数カウンタが用いられる。よって、どの領域を使用すればよいのかの判断は容易である。
【0431】
なお、上記の実施の形態では、変動データ記憶手段としてRAMを用いた場合を示したが、変動データ記憶手段として、電気的に書き換えが可能な記憶手段であればRAM以外のものを用いてもよい。
【0432】
さらに、上記の実施の形態では、電源監視手段が電源基板910に設けられ、システムリセットのための信号を発生する回路は電気部品制御基板に設けられたが、それらがともに電気部品制御基板に設けられていてもよい。
【0433】
次に、上述した本例の遊技機が、電力供給が開始したあとに遊技球の払い出しを開始する際の処理の例について説明する。図64は、電力供給開始時におけるCPU56による払出可能状態指定コマンドの送信処理や払出制御用CPU371による球払出装置97を用いた遊技球の払出処理などの処理タイミングの一例を示すタイミングチャートである。
【0434】
遊技機に電源が投入され、VSL電源電圧が上昇して所定値(本例では+9V)に到達すると、上述した図13に示したように、主基板31のCPU56は、他の電気部品制御基板のCPU(本例では払出制御基板37の払出制御用CPU371)が動作を開始し、遅延回路960によって遅延される時間が経過したあとに動作を開始する。動作を開始すると、主基板31のCPU56は、制御状態を復旧する場合には、復旧する払出に関する制御状態が払出停止状態でなければ払出可能状態指定コマンドを送信する(ステップS83参照)。なお、初期化する場合には、CPU56は、払出停止条件が成立していなければ払出可能状態指定コマンドを送信する(ステップS13b参照)。
【0435】
主基板31のCPU56が払出制御基板37に対して払出可能状態指定コマンドを出力することができるということは、主基板31のCPU56が既に立ち上がっていることを意味する。従って、主基板31のCPU56は、賞球カウントスイッチ301Aの検出出力を受信することができる状態となっている。
【0436】
払出可能状態指定コマンドを受信すると、払出制御用CPU371は、初期設定における上述したステップS713あるいは復旧処理における上述したステップS732にて設定していた払出停止状態を解除し(ステップS753e参照)、未払出の遊技球が存在する場合には球払出装置97を用いて遊技球の払出処理を実行する。そして、払い出された遊技球が賞球カウントスイッチ301Aで検出される。賞球カウントスイッチ301Aの検出出力は、動作を開始しているCPU56および払出制御用CPU371それぞれによって確実に受信される。
【0437】
以上説明したように、電力供給停止時処理(図22〜図24、図49〜図51参照)にて、検出維持期間が経過するまでの間は、コンデンサ923,924に充電された電力を用いて、電源基板910が、賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bを駆動可能な電力を供給するとともに、ソレノイド310が振分部材311の状態を保持するための駆動電力を供給し、遊技制御手段が賞球カウントスイッチ301Aからの検出信号の入力処理(ステップS466〜ステップS486)を行い、払出制御手段(払出制御用CPU371)が賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bからの検出信号の入力処理(ステップS816〜ステップS834)を行う構成としたので、電力供給停止時処理にて、払い出された景品遊技媒体(入賞領域への入賞にもとづいて景品として払い出される遊技媒体)や貸出遊技媒体(遊技者からの貸出要求に応じて貸し出される遊技媒体)を確実に検出することができるようになる。すなわち、上述した遊技機によれば、電力供給停止時処理にて払い出された遊技媒体の検出を確実に実行することができるので、遊技媒体の未払出数を正確に把握することができるようになる。
【0438】
また、上述したように、検出維持期間が経過するまでの間は、電源基板910が、ソレノイド310に対して振分部材311を駆動することが可能な電力を供給する構成とされているので、通路切換手段としてのソレノイド310の駆動状態を電気的な構成によって保持させることができる。上記のような構成とされていることから、電源基板910は、検出維持期間が経過するまでの間、振分部材311の状態を維持させるための電力を供給する作動状態保持手段として機能している。また、上記のように構成されているので、検出維持期間が経過するまでの間は振分部材311の状態が維持され、振分部材311が動作することがないので、振分部材311と球通路293a,293b内の壁との間に遊技球が挟まってしまうことを防止できる。
【0439】
また、上述したように、停電等の発生に応じて電源断信号が出力されたら、まず、球払出装置97の駆動が停止された後、所定の検出維持期間、払出検出手段(賞球カウントスイッチ301Aや球貸しカウントスイッチ301B)からの検出信号の入力処理が実行され、その後、払出制御状態を保存するための処理が行われる。従って、停電発生時に払出途中であった遊技球も、バックアップRAMの保存内容に確実に反映される。よって、遊技機への電力供給停止時に制御状態をバックアップ記憶手段に保存するように構成した場合に、保存される制御状態と実際の制御状態との間に矛盾等を生じさせないようにすることができる。
【0440】
また、上述したように、電源供給停止時処理のあとの待機状態が継続して実行されているのにもかかわらず電力供給が停止していない場合に、待機状態から復帰させるための復帰信号をCPU56や払出制御用CPU371に出力する構成としたので、復帰信号によって、CPU56や払出制御用CPU371を待機状態から制御実行状態に復帰させることが可能になる。従って、ごく短時間で復旧する電源の瞬断等が生じても制御に支障を来すことがないようにすることができる。
【0441】
すなわち、上述した実施の形態では、記憶保持手段(例えばバックアップRAM)を有する遊技制御手段および払出制御手段が電源断信号に応じて電力供給停止時処理を行った後にシステムリセットを待つ待機状態にあるときに、電源復旧に応じて復帰信号が出力されると、遊技制御手段および払出制御手段は、プログラムの最初部分から動作を再開する。その際、電力供給停止時処理において保存された制御状態が復旧されるので、遊技者から見ると、何事もなかったかのように遊技が続行される。
【0442】
また、上述したように、復帰信号を出力可能な手段(例えばカウンタ971等で構成される手段:待機状態復帰手段の一例)が電源基板910に搭載される構成としたので、各制御基板毎に待機状態復帰手段を設ける必要がなく、簡単な構成で待機状態から復帰させることができるようになる。
【0443】
また、上述したように、電気部品制御手段は、電力供給が開始されたときに、電力供給停止時処理において保存された制御状態が残っていても、操作手段(クリアスイッチ921)が操作されている場合には、状態復旧処理を実行せず初期化処理を実行する。よって、遊技店員等が保存状態を容易にクリアすることができ、遊技店での遊技機運用上の利便性を向上させることが可能となる。
【0444】
また、上述したように、状態復旧処理において、遊技制御手段(CPU56)の制御状態を、他の電気部品制御手段(例えば払出制御用CPU371)よりも遅れて復旧させる遅延手段(例えば、コンデンサ、遅延回路960)を備える構成としているので、遊技制御基板以外の電気部品制御基板が動作状態となったあとに制御信号が供給されるようになり、遊技制御手段からの制御信号を受信する他の電気部品制御手段が、制御信号を確実に受信することができる。すなわち、電源供給再開時に、遊技制御手段が遅れて立ちあがるので、他の電気部品制御手段がコマンドをとりこぼしてしまうようなことが防止される。
【0445】
また、上述したように、システムリセット手段(例えば、リセット回路65)が、所定の電源が電気部品制御手段が動作可能な電圧レベル以上の電圧レベルとなったことを条件に所定の信号(リセット解除を示す信号:リセット信号をハイレベルに立ち上げた信号)を出力し、遅延手段(例えば、遅延回路960)が、システムリセット手段からの所定の信号が遊技制御手段(CPU56)のリセット入力部に入力される時期を、他の電気部品制御手段(払出制御用CPU371、表示制御用CPU101、ランプ制御用CPU351、音声制御用CPU701)のリセット入力部に入力される時期よりも遅延させるように構成されているので、遊技制御手段と他の電気部品制御手段との制御処理の実行タイミングを異ならせることができる。
【0446】
また、上記のように、システムリセット手段の入力端子へ所定の電圧レベル以上の電圧が入力されることを遅延させるコンデンサ(例えば、リセットIC651の外付けコンデンサ)によって遅延手段が構成され、コンデンサの容量を異ならせることで、リセット解除を示す信号(リセット回路65の出力信号)の出力タイミングを異ならせるように構成されているので、簡単な構成で、システムリセット手段(例えば、リセット回路65)の出力信号の出力タイミングを遅延させる遅延手段を実現することができる。すなわち、コンデンサを搭載させ、そのコンデンサの容量を変更するだけの、回路設計上および回路構築上簡単な構成で、遅延手段を実現することができる。
【0447】
なお、遊技制御手段に対してリセット解除信号を出力するシステムリセット手段に備えられているコンデンサの容量を、電気部品制御手段に対してリセット解除信号を出力するシステムリセット手段に備えられているコンデンサの容量よりも大きくするようにすれば、遊技制御手段に対するリセット解除信号を、電気部品制御手段に対するリセット解除信号よりも遅延させて出力することが可能となる。
【0448】
また、上述したように、遊技制御手段(CPU56)が、他の電気部品制御手段(例えば払出制御用CPU371)よりも遅れて立ち上げられるので、遊技制御手段にてクリアスイッチ信号の入力処理(ステップS7)が実行されるタイミングよりも、払出制御手段にてクリアスイッチ信号の入力処理(ステップS707)が実行されるタイミングの方が早くなるようにすることができる。従って、クリアスイッチ921の操作によって初期化処理が実行される場合には、主基板31が備えるRAM55の記憶内容がクリアされるよりも早く、払出制御基板37が備えるRAMの記憶内容がクリアされる。このように、払出制御基板37が備えるRAMの記憶内容が優先的にクリアされるので、クリアスイッチ921の操作によって初期化しようとしたときに、遊技球の払出処理が誤って実行されてしまうことがより確実に防止される。
【0449】
また、上述したように、システムリセット手段(例えば、リセット回路65)が、各電気部品制御手段(CPU56や払出制御用CPU101など)に電源を供給する電源基板(例えば、電源基板910)に搭載されるように構成したので、監視電源の供給源の近くにシステムリセット手段を配することができ、システムリセット手段が電源の状態の監視を適切に行うことができるようになる。また、上記のように構成すれば、電源基板を変更するだけで、システムリセット手段の交換を行うことができる。
【0450】
また、上述したように、電源監視手段(例えば、電源監視用IC902)が、各電気部品制御手段(CPU56や払出制御用CPU101など)に供給される直流電源のうち、最も電圧の高い電源(例えば、VSL(+30V))を監視するように構成されているので、早期に電圧の低下を検出することができる。
【0451】
また、上述したように、電源監視手段(例えば、電源監視用IC902)が、各電気部品制御手段(CPU56や払出制御用CPU101など)に電源を供給する電源基板(例えば、電源基板910)に搭載されるように構成されているので、監視電源の供給源の近くに電源監視手段を配することができ、電源監視手段が電源の状態の監視を適切に行うことができるようになる。また、上記のように構成すれば、電源基板を変更するだけで、電源監視手段の交換を行うことができる。
【0452】
また、上述したように、電源断処理を実行させない所定期間(遅延期間)は、少なくとも所定電圧(例えば、22V)以上に供給される電圧が上昇するまでの期間を含むように構成されているので、不安定な状態で電源断処理が実行されることを防止することができる。特に、上述した実施の形態では所定電圧以下となった場合に電源断処理が実行されるので、上記のような構成としたことによって、立ち上がり時に電源断処理が誤って実行されてしまうことを防止することができる。
【0453】
また、上述したように、遊技制御手段(例えば、CPU56)が、コマンドの送信に関連する処理(例えば、コマンド送信処理:図40参照)の実行中に遊技機への電力供給が停止し、その後に電力供給が開始した場合には、コマンドの送信に関連する処理を所定のタイミング(例えば、コマンド送信処理の最初)から再度実行し、電力供給が停止したときに送信中のコマンドがあった場合には、当該、コマンドの少なくとも一部(MODEデータ、EXTデータ、あるいは制御コマンド)を再送する構成としたので、コマンドの出力にかかわる処理の実行中に電力供給が停止した場合であっても、電力供給再開後にそのコマンドを確実に送信することができる。
【0454】
例えば、払出手段からの遊技媒体の払出数を特定可能な払出制御コマンドを再送する構成とした場合には、たとえ遊技制御手段(例えば、CPU56)による払出制御コマンドの送信に関連する処理(例えば、コマンド送信処理:図40参照)の実行中に電力供給が停止した場合であっても、払出制御コマンドは確実に送信されるので、遊技媒体の付与が確実に行なわれ、遊技者に不利益を及ぼしてしまうことを防止することができる。
【0455】
また、上述したように、コマンドの送信に関連する処理(例えば、コマンド送信処理)は、コマンドの出力に用いられるコマンド出力ポートにデータを出力する処理(例えば、ステップS356)を含み、コマンドの送信に関連する処理を再度実行する所定のタイミングは、コマンド出力ポートにデータを出力する処理の前(例えば、コマンド送信処理の最初)であるように構成されているので、コマンド出力ポートにデータを出力する処理が確実に実行されることが保証される。
【0456】
また、上述したように、コマンドの送信に関連する処理(例えば、コマンド送信処理)を再度実行する所定のタイミングは、コマンドの送信に関連する処理の最初であるように構成されているので、コマンドの送信に関連する処理が確実に実行されることが保証され、コマンドを確実に送信することができる。
【0457】
また、上述したように、コマンドが複数のデータ(MODEデータとEXTデータ)によって構成され、コマンドの送信に関連する処理(例えば、コマンド送信処理)を再度実行する所定のタイミングは、複数のデータにおける1のデータを送信する処理の最初であるように構成されているので、コマンドを構成するデータを送信する処理が保証され、コマンドを確実に送信することができる。
【0458】
また、上述したように、電力供給が開始したときに、コマンド送信中フラグがオン状態であった場合には、コマンドの送信に関連する処理の実行中に電力供給が停止されたものと判定するように構成されているので、電力供給が停止されたときの制御状態を容易に判定することができる。
【0459】
また、上述したように、コマンド受信側基板のCPU(例えば、払出制御用CPU371)が、遊技制御手段からのコマンドを所定の記憶領域(例えば、コマンド受信バッファ)に保存するコマンド受信処理(図54参照)を実行し、遊技制御手段がコマンドの送信を行ってコマンドの送信に関連する処理を終了するタイミング(例えば、コマンド送信中フラグがオフ状態となるタイミング)が、コマンド受信側基板のCPUが当該コマンドの保存を行ってコマンド受信処理が完了するタイミングよりも遅いタイミングとされるように構成されているので、コマンド受信側基板のCPUによってコマンドが確実に受信されるようにすることができる。
【0460】
また、上述したように、コマンド受信側基板のCPUが、遊技制御手段からのコマンドをコマンド受信バッファに保存するコマンド受信処理(例えば、図54に示すコマンド受信割込処理)を実行し、遊技制御手段がコマンドの送信を行ってコマンド送信処理を終了するタイミング(例えば、コマンド送信処理が終了するタイミング)は、電気部品制御手段が当該コマンドの保存を行ってコマンド受信処理が完了するタイミング(例えば、コマンド受信割込処理が完了するタイミング)よりも遅いタイミングとされるように構成されているので、コマンド受信側基板のCPUによってコマンドが受信されることが保証される。
【0461】
また、上述したように、コマンド受信側基板のCPUが、取り込み信号(例えば、INT信号)の入力に応じてコマンド受信処理を実行し、遊技制御手段は、取り込み信号の出力後にコマンド受信処理の終了を担保する期間(例えば、ステップS362〜ステップS364や、ステップS367〜ステップS369の処理が実行されている期間)を設けた構成とされているので、コマンド受信側基板のCPUによるコマンドの受信処理の実行タイミングを把握することができ、コマンド受信側基板のCPUによってコマンドが確実に受信されるようにすることができる。
【0462】
また、上述したように、電力供給が開始した場合に、払出制御手段(払出制御用CPU371)が、遊技制御手段(CPU56)からの払出可能状態指定コマンドの受信がなければ遊技球の払出処理を実行しない構成としたので、遊技制御手段が制御可能でない状態であるのにもかかわらず遊技球の払い出しがなされてしまうことを防止することができる。従って、遊技制御手段は、払い出された遊技球を検出する賞球カウントスイッチ301Aや球貸しカウントスイッチ301Bの検出出力を確実に受信することができる。よって、未払出の遊技球数について遊技制御手段と払出制御手段とでそれぞれ把握している情報の内容に食い違いが生じてしまうことを防止することができ、遊技制御手段と払出制御手段とで確実に制御上の整合をとることができる。
【0463】
また、上述したように、遊技制御手段が、遊技状態復旧処理にて、バックアップRAM55領域の記憶内容に応じて払出停止状態か否か判定し(ステップS82)、払出停止状態でない場合に払出可能状態指定コマンドを送信する(ステップS83)構成としたので、電力供給停止前の状態に復旧することができる。
【0464】
また、上述したように、遊技制御手段が、初期化処理にて、払出禁止条件が成立しているか否かの判定を行い(ステップS13a)、払出禁止条件が成立していない場合に払出可能状態指定コマンドを送信する(ステップS13b)ように構成されているので、実際の遊技機の状態に応じて制御を開始することができる。
【0465】
また、上述したように、遊技状態復旧処理、払出状態復旧処理、および初期化処理にて、払出禁止条件についての判定をそれぞれ実行する構成とされているので、早期に判定を行うことができ、制御状態を安定させることができる。
【0466】
なお、上述した実施の形態では、払出制御手段が、電力供給停止時処理において、賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bがオンしたか否かをそれぞれ確認する構成としていたが、いずれか一方のスイッチの状態を確認する構成としてもよい。
【0467】
図65〜図67は、上記のようにいずれか一方のスイッチの状態を確認する構成とする場合の電源基板910からの電源断信号に応じて実行されるマスク不能割込処理(NMI処理:電力供給停止時処理)の処理例を示すフローチャートである。なお、上述した図49〜図51にて既に説明した処理等については詳細な説明を省略する。
【0468】
マスク不能割込処理において、払出制御用CPU371は、ステップS801〜ステップS808の処理を行ったあと、ステップS809〜ステップS815に示した出力ポートクリア処理を行う。その後、この実施の形態では、所定期間(検出維持期間)、賞球カウントスイッチ301A(賞遊技媒体払出検出手段に相当)または球貸しカウントスイッチ301B(貸出遊技媒体払出検出手段に相当)の検出信号をチェックする。この例では、遊技球を検出する可能性のあるスイッチについてのみ検出信号をチェックする。検出する可能性のあるスイッチが賞球カウントスイッチ301Aである場合には、賞球カウントスイッチ301Aをチェックして、オンしたら総合個数記憶の内容を1減らす。また、検出する可能性のあるスイッチが球貸しカウントスイッチ301Bである場合には、球貸しカウントスイッチ301Bをチェックして、オンしたら貸し球個数記憶の内容を1減らす。
【0469】
この例では、払出制御用CPU371は、賞球処理中フラグがオンしているか否か確認し(ステップS847)、オンしている場合には賞球処理中であるため、賞球カウントスイッチ301Aによって賞球が検出される可能性があると判定する。賞球処理中フラグがオンでなければ、払出制御用CPU371は、球貸し処理中フラグがオンしているか否か確認し(ステップS848)、オンしている場合には球貸し処理中であるため、球貸しカウントスイッチ301Bによって貸し球が検出される可能性があると判定する。
【0470】
なお、この例では、いずれのスイッチをチェックする場合にも、払出確認期間を計測するために、払出確認期間計測用カウンタが用いられる。賞球カウントスイッチ301Aをチェックする場合には、払出確認期間計測用カウンタの値は、初期値mから、以下に説明する賞球カウントスイッチ検出処理のループ(S817から始まってS817に戻るループ)が1回実行される毎に−1され、その値が0になると、払出確認期間が終了したとする。また、球貸しカウントスイッチ301Bをチェックする場合には、払出確認期間計測用カウンタの値は、初期値mから、以下に説明する球貸しカウントスイッチ検出処理のループ(S817aから始まってS817aに戻るループ)が1回実行される毎に−1され、その値が0になると、払出確認期間が終了したとする。検出処理のループでは、例外はあるがほぼ一定の処理が行われるので、ループの1周に要する時間のm倍の時間が、ほぼ払出確認期間に相当する。なお、払出確認期間を計測するために、払出制御用CPU371の内蔵タイマを用いてもよい。
【0471】
ステップS847にて賞球処理中フラグがオンであれば、払出制御用CPU371は、賞球カウントスイッチ301Aからの検出信号の入力処理(賞球カウントスイッチ検出処理)を実行する。賞球カウントスイッチ検出処理では、払出制御用CPU371は、まず、払出確認期間計測用カウンタに、払出確認期間に対応した値mを設定する(ステップS816)。そして、払出制御用CPU371は、払出確認期間計測用カウンタの値を−1し(ステップS817)、払出確認期間計測用カウンタの値を確認する(ステップS818)。その値が0であれば、賞球カウントスイッチ検出処理を終了し、制御状態を保存するための処理である電力供給停止時処理に移行する。
【0472】
払出確認期間計測用カウンタの値が0になっていなければ、上述した図50と同様にステップS819〜ステップS826の処理を行う。ただし、賞球カウントスイッチ検出処理では、ステップS821にて検出期間用カウンタの値が0になっていない場合、ステップS824にて賞球カウントスイッチ301Aがオン状態を示していない場合、ステップS826にて検出期間用カウンタに初期値nをセットした場合のいずれの場合でも、それらの処理のあとにステップS817の処理に戻る。以上の処理によって、払出確認期間内に賞球カウントスイッチ301Aがオンしたら、総合個数記憶の値が−1される。
【0473】
ステップS848にて球貸し処理中フラグがオンであれば、払出制御用CPU371は、球貸しカウントスイッチ301Bからの検出信号の入力処理(球貸しカウントスイッチ検出処理)を実行する。球貸しカウントスイッチ検出処理では、払出制御用CPU371は、まず、払出確認期間計測用カウンタに、払出確認期間に対応した値mを設定する(ステップS816a)。そして、払出制御用CPU371は、払出確認期間計測用カウンタの値を−1し(ステップS817a)、払出確認期間計測用カウンタの値を確認する(ステップS818a)。その値が0であれば、球貸しカウントスイッチ検出処理を終了し、制御状態を保存するための処理である電力供給停止時処理に移行する。
【0474】
払出確認期間計測用カウンタの値が0になっていなければ、上述した図50と同様にステップS827〜ステップS834の処理を行う。ただし、球貸しカウントスイッチ検出処理では、ステップS829にて検出期間用カウンタの値が0になっていない場合、ステップS832にて球貸しカウントスイッチ301Bがオン状態を示していない場合、ステップS834にて検出期間用カウンタに初期値nをセットした場合のいずれの場合でも、それらの処理のあとにステップS817aの処理に戻る。以上の処理によって、払出確認期間内に球貸しカウントスイッチ301Bがオンしたら、貸し球個数記憶の値が−1される。
【0475】
また、ステップS847とステップS848にて、賞球処理中フラグおよび球貸し処理中フラグがともにオンでなければ、賞球カウントスイッチ301Aと球貸しカウントスイッチ301Bのいずれもオンする可能性がないので、払出制御用CPU371は、スイッチのチェックを行うことなく、上述した図51の処理と同様のバックアップRAMの内容の保存などの処理(ステップS835〜ステップS846)を行ったあと待機状態(ループ状態)に入る。
【0476】
上記のように、遊技球が検出される可能性がない場合には、賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bのいずれの検出状態も確認しない構成としたので、無駄な処理を省略することができ、電力供給停止時処理(図65〜図67)を迅速に行うことができる。
【0477】
また、上記のように、賞球カウントスイッチ301Aまたは球貸しカウントスイッチ301Bのうち、遊技球が検出される可能性のあるスイッチについてのみ選択的に検出状態を確認する構成としたことで、無駄な処理を省略することができる。また、図50に示したスイッチ検出処理のループ処理よりも、図65等に示すスイッチ検出のループ処理の方が処理期間が短いので、たとえ所定時間計測用カウンタに設定する値が同じであっても、最終回のループ処理にて処理期間に差が出るため、上記の構成とすることで電力供給停止時処理(図65〜図67)を迅速に行うことができるようになる。従って、図49等に示した電力供給停止時処理が実行される場合と比較して、コンデンサ923,924の容量を小さくすることができる。
【0478】
なお、上記の例では、賞球処理中フラグがオンでない場合に、球貸し処理中フラグの状態を確認する構成としたが、賞球処理中フラグがオンでなければ直ちに球貸しカウントスイッチ検出処理を実行する構成としてもよい。また、賞球処理中フラグを確認することなく球貸し処理中フラグの状態を確認する構成とし、球貸し処理中フラグがオンでなければ直ちに賞球カウントスイッチ検出処理を実行する構成としてもよい。このように構成すれば、検出される可能性が残されているスイッチの状態を迅速に確認することができる。
【0479】
また、上記の例では、賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bのいずれの検出状態も確認しないか、賞球カウントスイッチ301Aまたは球貸しカウントスイッチ301Bのいずれか一方の検出状態を確認する構成としていたが、賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bのいずれも確認する構成としてもよい。このように構成すれば、いずれのスイッチからの検出信号であるか否かを確認することなく、検出信号の入力があった場合に賞球あるいは貸し球のいずれが検出されたのであるか認識することができる。例えば、賞球処理中フラグがオンしていることを確認したあとカウントスイッチからの検出信号が入力した場合には、払出制御用CPU371が、賞球カウントスイッチ301Aからの検出信号が入力したと認識するようにすればよい。よって、上記のように構成すれば、賞球および球貸し用の一つのカウントスイッチによって払い出された遊技球を検出する構成としても、検出した遊技球が賞球であるのか貸し球であるのかを的確に判定することができるようになる。
【0480】
また、上述した各実施の形態では、ソレノイド310のオン/オフに応じて、振分部材311が球貸し側/賞球側に遊技球が流下するように倒れる構成としていたが、例えば、振分部材311が倒れる位置をモータによって制御する構成とし、モータがオンする度に球貸し側/賞球側に交互に振分部材311が倒れる構成としてもよい。この構成では、振分部材311は、モータが新たにオンしない限り、現在の状態を継続して維持することになる。よって、上記のように構成することで、電力供給停止時処理にて、モータの駆動電源の電圧の状態とは無関係に、機械的な構造によって振分部材311の状態を維持しておくことができるようになる。なお、上記の構成とした場合には、電力供給が開始したあとの復旧処理あるいは初期化処理にて、振分部材311の状態を初期状態(例えば、球貸し側に遊技球が流下する状態)に戻す処理を実行するようにすればよい。所定の処理を行う度に球貸し側/賞球側に交互に振分部材311が倒れるようにすることができるものであれば、モータ以外の部材(例えばラッチ式のソレノイドなど)を用いるようにしてもよい。上記のように構成した場合には、振分部材311が倒れる位置を制御するモータが通路切換手段として機能するとともに、モータからの駆動信号がない限り現在の状態を維持可能な機構を有する振分部材311が作動状態保持手段として機能することになる。また、振分部材311が有する球貸し側/賞球側の状態を維持可能な機構が、検出維持期間が経過するまでの間、通路切換手段の状態を保持可能な保持機構として機能することになる。
【0481】
また、上記の各実施の形態では、遊技媒体検出判定期間(検出期間用カウンタによって計測される期間)がほぼ2msとなるようにn(ステップS826やステップS834参照)を設定するようにしてもよい旨の説明をしたが、例えばステップS817からステップS817に戻るループ処理が2ms毎に実行されるように、ステップS817のあとに所定の遅延期間(2msから通常のループ処理にかかる期間を減算した期間)が経過するまで遅延させる処理を行う構成としてもよい。遅延期間は、例えばソフトウェアタイマによって計測されるようにすればよい。なお、ステップS817aからステップS817aに戻るループ処理についても同様である。また、2ms以外の他の期間としてもよい。
【0482】
また、上記の各実施の形態では、電力供給停止時処理において、遊技球が払い出されたか否かを監視し、払い出された場合には未払出の遊技球数として記憶している値を減算する処理(ステップS480、ステップS823、ステップS831)を行っていたが、未払出数の記憶値を減算する処理を行うことなく、賞球カウントスイッチ301Aや球貸しカウントスイッチ301Bがオンしたか否かを確認し、その確認結果を電源バックアップされているRAMに保存する構成としてもよい。この場合、電力供給が開始したあとの復旧処理(図20、図48参照)において、電源バックアップされているRAMの記憶内容にもとづいて電力供給停止時処理の実行中に賞球カウントスイッチ301Aや球貸しカウントスイッチ301Bがオンしていたことが確認された場合に、未払出数の記憶値を減算する処理を行うようにすればよい。上記のように、電力供給停止時処理において賞球カウントスイッチ301Aや球貸しカウントスイッチ301Bがオンした場合に、未払出数を更新することなく、その賞球カウントスイッチ301Aや球貸しカウントスイッチ301Bからの検出信号の入力処理の結果を保存して、復旧時に、保存されていた入力処理の結果に応じて未払出数を更新する構成とすれば、電力供給停止時処理にて未払出数として記憶している値(未払出数データ)を変更する処理を行う必要がないので、電力供給停止時処理にて未払出数データを変更する処理を行う場合と比較して電力供給停止時処理を迅速に終えることができるようになり、電力供給が停止する前に未払出の遊技球数を管理するために実行される処理をより確実に完了させることができるようになる。なお、上記のような構成の一例が、後述する実施の形態3で実現されている。
【0483】
上記のように、電力供給停止時処理を迅速に終えるようにすれば、スタックオーバーフローを生じさせ、初期化処理を実行させることにより大当りを発生させる不正行為を防止することができる。
すなわち、電力供給の停止が生ずる訳ではないにも関わらず、電源断を検出する検出回路の側からマイクロコンピュータの割込端子に至る信号線において電源断信号が連続的に入力されると、スタック領域のサイズには限界があるにもかかわらず、繰り返し割込処理が実行されることによってスタック領域へのデータ保存が繰り返され、遂にはスタックオーバーフローが生じてしまう。その結果、スタックオーバーフローに起因してRAM領域の内容が破壊されてしまうことによりプログラム暴走が生じたことにもとづいて、ウォッチドッグタイマのタイムアップが生じてマイクロコンピュータにリセットがかかり、RAM領域の内容が初期化される。
大当りを発生させるか否かは、一般に、所定のタイミング(例えば始動入賞の発生時すなわち始動入賞信号の入力時)において、RAM領域に形成された乱数発生用カウンタのカウント値があらかじめ決められた大当り判定値に一致するか否かによって決定される。電源断信号が連続的に入力されると、上述したようにシステムリセットがかかり、初期化処理にてRAMの内容が初期化されるので、大当りを発生させるか否かを決定するための乱数発生用カウンタのカウント値も初期化される(0に戻される。)。すると、カウント値が0から歩進を開始するので、カウント値があらかじめ決められた大当り判定値に一致するタイミングを容易に把握できてしまう。
つまり、不正基板等の不正手段を遊技機に搭載し、不正手段からマイクロコンピュータに対して電源断信号(割込信号)を連続的に入力させるとともに、乱数発生用カウンタのカウント値が大当り判定値に一致するようなタイミングで、マイクロコンピュータが搭載されている遊技制御基板に対して不正に始動入賞信号を送り込むことによって、不正に大当りを生じさせることが可能になってしまう。
上記の例では、電力供給停止時処理が迅速に行われるので、不正な行為によって電源断信号が連続的に入力される前に、最初の電源断信号の入力にもとづく電力供給停止時処理が完了している可能性を高めることができる。従って、不正に割込信号を送り込むような不正行為が行われても、その行為を無効とすることが期待できる。なお、後述する他の構成(例えば電力供給停止時処理におけるスイッチチェックを、賞球あるいは貸し球についてのみ行う構成)によって電力供給停止時処理を迅速に終えるようにした場合であっても、上記と同様の効果を得ることができる。
【0484】
なお、上記の実施の形態において、初期化処理を実行していることを報知するための報知手段を設ける構成としてもよい。この場合、初期化処理において、初期化中であることを示す制御コマンド(例えば通常の制御で用いられるコマンドであってもよく、初期化中であることを指定する専用のコマンドであってもよい)をサブ基板(例えば表示制御基板80など)に出力し、そのコマンドを受信したサブ基板が初期化報知(例えば可変表示装置9による「初期化中」なる表示や、音やランプによって初期化中であることを示す演出などによって行われる)を所定期間(例えば5分などのあらかじめ定められた期間)継続的に実行するようにすればよい。上記のように構成すれば、遊技制御手段に不正に信号を送り込むような不正行為が行われても、そのような不正行為を容易に発見することができるとともに、不正行為者が報知に気付いて直ちに離席したような場合でも、再度の不正行為を実行しづらくすることができるようになる。初期化処理は、遊技店の営業中において、停電からの復旧時でもない限り実行されることは考えにくい。それにもかかわらず、初期化処理が実行されているということは、スタックオーバーフローを発生させたり遊技制御手段にリセット信号を入力させるなどの不正行為によってシステムリセットされた可能性が高い。従って、停電復旧時でも遊技店員による初期化操作がなされたわけでもないのに、遊技店の営業時間中に初期化報知がなされている場合には、不正行為(RAMをクリアさせて初期状態とするなどの行為)が行われたものと判断することができ、その後の不正行為(大当りを発生させるなどの行為)を未然に防ぐことができる。
また、遊技制御手段(CPU56)が、初期化処理において、初期化処理中であることを示す初期化信号を遊技機外部に出力する構成としてもよい。このように構成すれば、遊技店側などにおいて初期化処理中であることを認識可能とすることができる。よって、実際には電力供給が停止していないにも関わらず初期化処理中であることを示す信号が遊技機から出力された場合には不正行為がなされたと判断することができ、不正行為者が不正行為を行った遊技機から離れた場所にて容易に不正行為を発見することができるようになる。
【0485】
また、上記の実施の形態において、初期化処理が実行される場合に、遊技球の発射を停止する制御を行うようにしてもよい。この場合、例えば、初期化処理を実行する場合に、CPU56が、遊技球の発射を禁止することを指示するコマンドを払出制御基板37に対して送信するようにし、払出制御基板37に搭載された払出制御手段が、遊技球の発射を禁止することを指示するコマンドを受信したら、例えば初期化報知が行われている期間が経過するまでの間、打球発射装置の駆動を停止するようにすればよい。
不正基板等の不正手段を遊技機に搭載し、不正手段からマイクロコンピュータに対して電源断信号(割込信号)を連続的に入力させるとともに、乱数発生用カウンタのカウント値が大当り判定値に一致するようなタイミングを狙って遊技球を発射させて始動入賞させ、乱数発生用カウンタのカウント値が大当り判定値に一致するようなタイミングでマイクロコンピュータが搭載されている遊技制御基板に対して始動入賞信号を送り込むことによって、大当りを生じさせることが可能になってしまう。
上記のように構成すれば、不正行為(RAMをクリアさせて初期状態とするなどの行為)が行われた場合であっても、遊技球の発射を禁止することによって、その後の一定期間(例えば初期化報知が実行されている期間。少なくとも乱数発生用カウンタのカウント値が1周して初期値がシフトするまでの期間よりも長い期間。)は遊技球が発射されることを防止することができ、不正行為によって大当りを発生させることが行われることを防ぐことができる。なお、初期化報知と合わせて遊技球の発射を禁止することが望ましいが、初期化報知を行うことなく遊技球の発射を禁止するようにしてもよい。
【0486】
また、上記の各実施の形態では、球払出装置97が賞球も貸し球も払い出し、振分ソレノイド310で駆動される振分部材311によって、賞球流下経路(景品遊技媒体通路)と貸し球流下経路(貸出遊技媒体経路)とが切り換えられた。しかし、賞球払出球を行う払出装置と球貸しを行う払出装置とを別個に設けてもよい。
【0487】
また、上記の各実施の形態では、電源基板910からの復帰信号は、主基板31においてCPU56のリセット端子に入力されたが、I/Oポート部57の入力ポートに入力されてもよい。
【0488】
このように構成される場合には、遊技制御手段のマスク不能割込処理(電力供給停止時処理)において、図22〜図24に示されたステップS451〜S498の処理の後のシステムリセットを待つ待機状態において、入力ポートを介して復帰信号のオンの検出が実行されるようにし、復帰信号がオンになったら、図18に示されたメイン処理のステップS1にジャンプするようにすればよい。メイン処理の実行が開始されると、電源断信号が出力されたときに遊技状態が保存されているので、ステップS10の処理で遊技状態復旧処理が実行され、遊技制御は、電源断信号発生時の状態に戻り、その状態から遊技制御が続行される。
【0489】
なお、復帰信号は、例えば入力ポート1のビット5(図17参照)に入力される。また、この例では、復帰信号のオンが検出されると直ちにステップS1にジャンプしたが、ノイズ除去等のために、複数回連続したオンを検出したらステップS1にジャンプするようにしたり、オン検出後所定期間経過後にも再度オンが検出されたらステップS1にジャンプするようにしてもよい。さらに、払出制御手段のマスク不能割込処理においても、入力ポートに入力される復帰信号を検出するようにしてもよい。
【0490】
また、上記の各実施の形態では、復帰信号は電源基板910で作成されたが、復帰信号を必要とする電気部品制御基板において作成されてもよい。すなわち、待機状態復帰手段が、主基板31や払出制御基板37などの各制御基板にそれぞれ設けれられる構成としてもよい。復帰信号が各制御基板において作成される場合に用いられる電源基板は、復帰信号を出力しない構成とされる。また、リセット管理回路は、図11に示された回路構成から復帰信号生成部分を除いた構成とすればよい。
【0491】
図68は、電源基板において復帰信号が生成されない場合の遊技制御手段のマスク不能割込処理(電力供給停止時処理)の一例を示すフローチャートである。図68に示すフローチャートは、図22〜図24に示されたステップS451〜S498の処理に続いて実行される。すなわち、この実施の形態では、RAMアクセス禁止値が設定された後(ステップS498)、システムリセットを待つ待機状態において、まず、カウンタの初期値Mが設定される(ステップS111)。そして、カウンタの値を1減算しつつ(ステップS112)、カウンタの値が0になったか否か確認する(ステップS113)。
【0492】
そして、カウンタの値が0になったら、図18に示されたメイン処理のステップS1にジャンプする。メイン処理の実行が開始されると、電源断信号が出力されたときに遊技状態が保存されているので、ステップS10の処理で遊技状態復旧処理が実行され、遊技制御は、電源断信号発生時の状態に戻り、その状態から遊技制御が続行される。
【0493】
カウンタに初期値Mが設定されてからカウントアップ(=0になる)するまでの時間は、[ステップS112およびS113の処理に要する時間]×Mであるが、Mの値は、電源断信号が発生してから、Vcc電源で動作するCPU56が動作不能になるまでに時間よりも長い時間をカウントするように設定される。従って、一般には、一般には、カウンタがカウントアップしてステップS1にジャンプする前に、CPU56は動作しなくなる。すなわち、ステップS1にジャンプすることはない。
【0494】
しかし、電源の瞬断等が生ずると、電源電圧レベルが短期間低下した後に復旧する。その場合にも、VSLの電圧レベルが電源断信号出力レベル以下になると、電源断信号がローレベルになって、電力供給停止時処理が開始される。そして、CPU56は電力供給停止時処理終了後ループ状態に入る。何らの制御も行わないと、ループ処理から抜けられないのであるが、この場合には、カウンタがカウントアップしてメイン処理に復帰することができる。
【0495】
すなわち、この実施の形態におけるカウンタは、電源断信号に応じた処理における待機状態において実行されるタイマ処理を行うためのソフトウェアタイマに相当する。そして、カウンタがカウントアップすると、すなわち、タイマ処理によって所定期間の経過が計測されると、復帰手段としてのCPU56が、待機状態から遊技制御状態に復帰させる制御を行う。
【0496】
このような構成でも、電源の瞬断等に起因して電源断信号が発生したにもかかわらず電源電圧が平常時の値に復旧したときに、CPU56は、図18に示されたメイン処理の実行を再開することができる。その際、電源断信号が出力されたときに遊技状態が保存されているので、ステップS10の処理で遊技状態復旧処理が実行され、遊技制御は、電源断信号発生時の状態に戻り、その状態から遊技制御が続行される。
【0497】
このような制御は、払出制御手段が実行することも可能である。図69は、電源基板において復帰信号が生成されない場合の払出制御手段のマスク不能割込処理(電力供給停止時処理)の一例を示すフローチャートである。図69に示すフローチャートは、図49〜図51あるいは図65〜図67に示されたステップS801〜S846の処理に続いて実行される。すなわち、この実施の形態では、RAMアクセス禁止値が設定された後(ステップS846)、システムリセットを待つ待機状態において、まず、カウンタの初期値Mが設定される(ステップS921)。そして、カウンタの値を1減算しつつ(ステップS922)、カウンタの値が0になったか否か確認する(ステップS923)。
【0498】
そして、カウンタの値が0になったら、図46に示されたメイン処理のステップS701にジャンプする。メイン処理の実行が開始されると、電源断信号が出力されたときに制御状態が保存されているので、ステップS710の処理で払出状態復旧処理が実行され、制御は電源断信号発生時の状態に戻り、その状態から払出制御が続行される。
【0499】
なお、主基板31のCPU56が扱うカウントアップ値(図68におけるS111で設定されるM)は、払出制御用CPU371が扱うカウントアップ値よりも大きい値であることが好ましい。CPU56が扱うカウントアップ値の方が大きい値である場合には、遊技制御手段よりも前に払出制御手段が再起動することになる。従って、払出制御手段が先に立ち上がって、遊技制御手段からの払出制御コマンドを取りこぼすようなことはない。
【0500】
上記のように、電源基板において復帰信号が生成されない場合にソフトウェアによってタイマ処理を行うことによって待機状態から制御状態に戻ることができるが、タイマ処理は、ハードウェアによって実行されてもよい。
【0501】
図70は、電源基板において復帰信号が生成されない場合にハードウェアによってタイマ処理を行うような構成の一例を示すブロック図である。この例では、主基板31に、ウォッチドッグタイマとして機能するカウンタ(ウォッチドッグタイマ回路)162が設けられる。ウォッチドッグタイマ回路162は、発振回路164の出力パルスをカウントし、カウントアップすると、Q出力としてハイレベルの1パルスを発生する。そのパルス信号は、反転回路163で論理反転され、復帰信号としてAND回路161に入力される。AND回路161は、リセット信号と復帰信号の論理積をとってCPU56のリセット端子に供給する。なお、CPU56からシステムクロックまたはその分周クロックを出力するように設定し、そのクロックを、ウォッチドッグタイマ回路162の入力クロック信号としてもよい。
【0502】
カウントアップ値は、電源断信号がローレベルになってから、VSLの電圧値がVcc生成可能電圧にまで低下する時間以上に設定される。ウォッチドッグタイマ回路162はVccを電源として動作するので、カウントアップ値は、ウォッチドッグタイマ回路162の動作可能期間に相当する値以上に設定される。従って、遊技機への電力供給停止時には、一般には、ウォッチドッグタイマ回路162がカウントアップして復帰信号が出力される前に、ウォッチドッグタイマ回路162およびその他の回路部品は動作しなくなる。
【0503】
なお、CPU56が遊技制御を行っているときには、定期的にクリアパルスがウォッチドッグタイマ回路162に与えられる。クリアパルスの出力周期は、ウォッチドッグタイマ回路162がカウントアップするまでの時間よりも短い。従って、CPU56が、通常の遊技制御を行っているときにウォッチドッグタイマ回路162のQ出力にパルスが現れることはない。
【0504】
図71は、ウォッチドッグタイマ回路162が設けられた場合の遊技制御手段の2msタイマ割込処理を示すフローチャートである。図71に示すように、遊技制御処理(ステップS21〜S32a)内において、ウォッチドッグタイマクリア処理(ステップS32a)が実行される。従って、ウォッチドッグタイマクリア処理は、2ms毎に実行される。
【0505】
ウォッチドッグタイマクリア処理(ステップS32a)では、ウォッチドッグタイマ回路162のクリア端子に至る出力ポートに1パルスを出力する処理が行われる。よって、遊技制御処理の実行中では、ウォッチドッグタイマ回路162に定期的にクリアパルスが与えられるので、カウントアップすることはない。
【0506】
遊技機に対する供給電圧が低下して電源断信号が出力されると、図22〜図24に示されたようなマスク不能割込処理が開始される。その処理中ではウォッチドッグタイマ回路162に対してクリアパルスは出力されない。従って、電源電圧が復旧して、ウォッチドッグタイマ回路162がカウントアップするまで動作しているような場合には復帰信号が出力される。
【0507】
図72は、上述したソフトウェアタイマ処理またはウォッチドッグタイマ回路162によって復帰信号が作成される場合の復帰信号の出力タイミング等を示すタイミング図である。図72(A)は、遊技機に対する電力供給が停止された場合の例である。ソフトウェアタイマ処理は電力供給停止時処理が終了して待機状態になってから開始される。また、マスク不能割込処理ではウォッチドッグタイマ回路162に対してクリアパルスは出力されないので、ウォッチドッグタイマ回路16は、実質的に、電力供給停止時処理の開始時から起動される。いずれの場合でも、タイムアップ値(カウントアップ値)は、電源電圧がVcc生成可能電圧値よりも小さくなるまでタイムアップしないように設定されているので、復帰信号が発生することはない。
【0508】
電源の瞬断等が生ずると、図72(B)に示すように、VSLの電圧レベルが短期間低下した後に復旧する。その場合にも、VSLの電圧レベルが電源断信号出力レベル以下になると、電源断信号がローレベルになって、電力供給停止時処理が開始される。そして、CPU56は電力供給停止時処理終了後ループ状態に入る。何らの制御も行わないと、ループ処理から抜けられないのであるが、この場合には、ウォッチドッグタイマ回路162がカウントアップして復帰信号が発生する。
【0509】
図70に示されたように、主基板31において、復帰信号は、AND回路161を介して、CPU56のリセット端子に入力される。従って、CPU56にはシステムリセットがかかる。その結果、CPU56は待機状態から抜け出すことができる。
【0510】
図73は、電源基板において復帰信号が生成されない場合に払出制御基板37におけるハードウェアによってタイマ処理を行うような構成の一例を示すブロック図である。この例では、払出制御基板37に、ウォッチドッグタイマとして機能するカウンタ(ウォッチドッグタイマ回路)386が設けられる。ウォッチドッグタイマ回路386は、発振回路388の出力パルスをカウントし、カウントアップすると、Q出力としてハイレベルの1パルスを発生する。そのパルス信号は、反転回路387で論理反転され、復帰信号としてAND回路385に入力される。AND回路385は、リセット信号と復帰信号の論理積をとってCPU56のリセット端子に供給する。
【0511】
カウントアップ値は、電源断信号がローレベルになってから、VSLの電圧値がVcc生成可能電圧にまで低下する時間以上に設定される。ウォッチドッグタイマ回路386はVccを電源として動作するので、カウントアップ値は、ウォッチドッグタイマ回路386の動作可能期間に相当する値以上に設定される。従って、一般には、ウォッチドッグタイマ回路386がカウントアップして復帰信号が出力される前に、ウォッチドッグタイマ回路386およびその他の回路部品は動作しなくなる。なお、払出制御用CPU371が払出制御を行っているときには、定期的にクリアパルスがウォッチドッグタイマ回路386に与えられる。クリアパルスの出力周期は、ウォッチドッグタイマ回路386がカウントアップするまでの時間よりも短い。従って、払出制御用CPU371が、通常の遊技制御を行っているときにウォッチドッグタイマ回路3876のQ出力にパルスが現れることはない。
【0512】
図74は、ウォッチドッグタイマ回路386が設けられた場合の払出制御手段のメイン処理の一部を示すフローチャートである。図74に示す処理は、図46に示されたステップS701〜S714の処理に続いて実行される。この場合には、払出制御処理のループ(ステップS715,S751〜S761)内において、ウォッチドッグタイマクリア処理(ステップS761)が実行される。従って、ウォッチドッグタイマクリア処理は、2ms毎に実行される。
【0513】
ウォッチドッグタイマクリア処理(ステップS761)では、ウォッチドッグタイマ回路386のクリア端子に至る出力ポートに1パルスを出力する処理が行われる。よって、払出制御処理の実行中では、ウォッチドッグタイマ回路386に定期的にクリアパルスが与えられるので、カウントアップすることはない。
【0514】
遊技機に対する供給電圧が低下して電源断信号が出力されると、図49〜図51に示されたようなマスク不能割込処理が開始される。その処理中ではウォッチドッグタイマ回路386に対してクリアパルスは出力されない。従って、電源電圧が復旧して、ウォッチドッグタイマ回路386がカウントアップするまで動作しているような場合には復帰信号が出力される。
【0515】
図73に示されたように、払出制御基板37において、復帰信号は、AND回路385を介して、払出制御用CPU371のリセット端子に入力される。従って、払出制御用CPU371にはシステムリセットがかかる。その結果、払出制御用CPU371は待機状態から抜け出すことができる。
【0516】
上記のように、主基板31および払出制御基板37においてウォッチドッグタイマ回路162,386が設けられている場合には、ハードウェアによって復帰信号を発生させることができる。しかも、電源電圧が低下したときのみならず、何らかの理由で、CPU56または払出制御用CPU371の制御が無限ループに入ってしまったような場合にも、ループ状態から抜け出すことができる。
【0517】
なお、主基板31のウォッチドッグタイマ回路162のカウントアップ値は、払出制御基板37のウォッチドッグタイマ回路386のカウントアップ値よりも大きい値であることが好ましい。ウォッチドッグタイマ回路162のカウントアップ値の方が大きい値である場合には、復帰信号は、遊技制御手段よりも前に払出制御手段に対して供給される。従って、払出制御手段が先に立ち上がって、遊技制御手段からの払出制御コマンドを取りこぼすようなことはない。
【0518】
また、例えば主基板31のみにウォッチドッグタイマ回路162を設置し、ウォッチドッグタイマ回路162による復帰信号をCPU56に供給するとともに、払出制御基板37に供給してもよい。そのように構成した場合には、全体的な回路構成規模を小さくすることができる。また、そのように構成した場合には、払出制御手段が先に立ち上がるように、ウォッチドッグタイマ回路162とCPU56のリセット端子との間に遅延回路を置くことが好ましい。
【0519】
さらに、ウォッチドッグタイマ回路162,386による復帰信号をCPUのリセット端子に接続するのではなく、入力ポートの入力するようにしてもよい。その場合には、電力供給停止時処理における待機状態で入力ポートの監視が行われ、復帰信号がオンしたことが検出されると、メイン処理の最初にジャンプする。さらに、ウォッチドッグタイマ回路162,386による復帰信号をCPUのCTC端子に入力してもよい。その場合には、あらかじめ、復帰信号の入力に応じてCTC割込がかかるように設定される。また、待機状態で割込許可に設定される。そして、CTC割込がかかると、メイン処理の最初にジャンプする。
【0520】
また、上記の各実施の形態では、払出制御基板37において、NMIに応じて電力供給停止時処理が実行されたが、電源断信号を払出制御用CPU371のマスク可能端子に接続し、マスク可能割込処理によって電力供給停止時処理を実行してもよい。また、電源断信号を入力ポートに入力し、入力ポートのチェック結果に応じて電力供給停止時処理を実行してもよい。
【0521】
また、上記の各実施の形態では、各電気部品制御手段に供給するリセット信号を発生する回路(リセット回路65)が電源基板910に1つ設けられる構成としていたが、主基板31のCPU56に供給するリセット信号を発生する回路と、他の電気部品制御基板のCPUに供給するリセット信号を発生する回路とを別個に設ける構成としてもよい。
【0522】
また、上述した実施の形態では、各電気部品制御手段に供給するリセット信号を発生する回路(リセット回路65)が電源基板910に1つ設けられる構成としていたが、各電気部品制御基板それぞれにリセット信号を発生する回路を設ける構成としてもよい。
【0523】
上記のように、システムリセット手段(リセット回路65)が、各電気部品制御手段が搭載される各電気部品制御基板それぞれに搭載される構成とした場合には、システムリセット手段の出力信号を伝送するケーブル(システムリセット手段とCPUとを接続するケーブル)を短くすることができ、ノイズの影響を受けにくくすることができる。
【0524】
また、上述した実施の形態では、遅延手段(例えば、リセットIC651の外付けコンデンサ)を設けることで、リセット信号が立ち上がる前に電源断信号が立ち上がるようにしていたが、リセット解除の後であって、制御プログラムが実行される前に、セキュリティチェックプログラムなどの起動時処理を実行するように構成されているCPUを用いる場合には、遅延手段を設けることなく、リセット信号が立ち上がってセキュリティチェックなどの起動時処理が終了する前に電源断信号が立ち上がるようにしてもよい。この場合、例えば、起動時処理に要する時間を考慮して、起動時処理実行中に電源断信号が立ち上がるタイミングとなるように、電源監視回路が電源断信号を立ち上げる電源電圧の電圧値が定められる。
【0525】
図75は、起動時処理が終了する前に電源断信号がハイレベルになるようにした場合における電源復旧時のリセット信号と電源断信号との関係の一例を示すタイミング図である。遊技機に電源が投入され、VSL電源電圧が上昇して所定値(本例では+9V)に到達すると、システムリセット回路65は、リセット信号をハイレベルに立ち上げる。リセット信号がハイレベル立ち上げられると、主基板31以外の各電気部品制御基板のCPUは、自動的に起動時処理を開始する。また、システムリセット回路65の出力がハイレベル立ち上げられると、主基板31のCPU56は、上述した遅延回路960によって遅延されたあとに入力されるリセット解除を示す信号にもとづいて、自動的に起動時処理を開始する。その後、本例では、起動時処理が実行されているときに、VSL電源電圧が所定値(本例では+22V)に到達するので、起動時処理の実行中に電源監視回路からの電源断信号がハイレベルになる。そして、各電気部品制御手段のCPUは、起動時処理を終えると、制御プログラムを実行する。各電気部品制御手段のCPUが起動時処理を終えて制御プログラムの実行処理に移行する時点では、すでに電源断信号がハイレベルになっているのでNMIは発生しない。各電気部品制御手段のCPUが起動時処理を行っているときには、割込禁止状態とされるので、電源断信号がローレベルとなっていてもNMIは発生しない。なお、この例では、図75に示すように、主基板31のCPU56に供給されているリセット信号が立ち上げられるタイミングが、他の電気部品制御手段のCPUよりも遅延されたタイミングとされている。従って、この例においても、主基板31のCPU56は、他の電気部品制御基板のCPUよりもあとに制御動作を開始することになる。
【0526】
上記のように、リセット信号が立ち上がってCPUが動作を開始したあと、セキュリティチェックなどの起動時処理が終了する前に、電源断信号がハイレベルに立ち上がる構成としたので、割込有効状態となる前に電源断信号をNMIが発生しないレベル(ハイレベル)にすることができる。その結果、リセット信号が立ち上がってから電源断信号が立ち上がるまでの間に電源断処理が実行されてしまうことを確実に防止することができる。
【0527】
また、上記の例の他、遅延手段(例えば、リセット回路65が備えるコンデンサ)を設けてリセット信号が立ち上がるタイミングを所定時間遅延させ、リセット信号がハイレベルとされたあと、セキュリティチェックなどの起動時処理が終了する前に、電源断信号がハイレベルに立ち上がるようにしてもよい。この場合、例えば、起動時処理に要する時間を考慮して、起動時処理実行中に電源断信号が立ち上がるように、リセット信号の立ち上げを遅延させる所定の時間(より具体的には、所定の時間となるようなコンデンサの容量)や、各信号を出力することとする電圧値が定められる。
【0528】
図76は、遅延手段によりリセット信号の立ち上がりタイミングを所定時間遅延させ、起動時処理が終了する前に電源断信号が立ち上がるようにした場合における電源投入時のリセット信号と電源断信号との関係を示すタイミング図である。遊技機に電源が投入され、VSL電源電圧が上昇して所定値(本例では+9V)に到達すると、システムリセット回路65は、所定の遅延時間が経過したあと、リセット信号をハイレベルに立ち上げる。この遅延時間は、システムリセットが解除されたあとの起動時処理の実行中にVSL電源電圧が所定値(本例では+22V)に到達するように予め定められた時間とされる。主基板31以外の各電気部品制御基板のCPUは、システムリセットが解除されると、自動的に起動時処理を開始する。
【0529】
また、システムリセット回路65が出力信号をハイレベルに立ち上げたあと、上述した遅延回路960による所定の遅延時間が経過すると、主基板31のCPU56に供給されているリセット信号が立ち上げられ、主基板31のCPU56が、自動的に起動時処理を開始する。その後、本例では、起動時処理が実行されているときに、VSL電源電圧が所定値(本例では+22V)に到達するので、起動時処理の実行中に電源監視回路からの電源断信号がハイレベルになる。そして、各電気部品制御手段のCPUは、起動時処理を終えると、制御プログラムを実行する。各電気部品制御手段のCPUが起動時処理を終えて制御プログラムの実行処理に移行する時点では、すでに電源断信号がハイレベルになっているのでNMIは発生しない。なお、この例では、図76に示すように、主基板31のCPU56に供給されているリセット信号が立ち上げられるタイミングが、他の電気部品制御手段のCPUよりも遅延されたタイミングとされている。従って、この例においても、主基板31のCPU56は、他の電気部品制御基板のCPUよりもあとに制御動作を開始することになる。
【0530】
この例によると、遅延手段によりリセット信号の立ち上がりタイミングを所定時間遅延させ、セキュリティチェックなどの起動時処理が終了する前に電源断信号が立ち上がる構成としたことで、不安定な状態で電源断処理が実行されることを防止することができる。特に、上述した実施の形態では所定電圧以下となった場合に電源断処理が実行されるので、上記のような構成としたことによって、割込有効状態となる前に電源断信号をNMIを生じさせないハイレベルとすることができ、各電気部品制御手段のCPUが起動時処理を終えて制御プログラムの実行処理に移行したときに電源断信号ががハイレベルとなっていることを保障することができるため、電源供給開始時に電源断処理が実行されてしまうことを確実に防止することができる。
【0531】
また、上述した実施の形態では、電源供給停止時処理においてコマンド出力ポートをクリアする構成としていたが、出力ポートをクリアする前にコマンド出力ポートの状態をRAMのバックアップ領域に保存する処理を行い、電源復旧処理においてコマンド出力ポートの状態を電源断前の状態に復旧する構成としてもよい。このように構成すれば、例えば出力ポートに制御コマンドを出力したものの、INT信号を出力する前に電源供給が停止したような場合が発生しても、電源供給が再開したあとに確実に送信先に制御コマンドを出力することができるようになる。
【0532】
また、上述した実施の形態では、電源監視手段(例えば電源監視用IC902)は、電源電圧が所定の値(例えば22V)となった場合に電源断信号を出力する構成としているが、例えば、交流電源に関連する交流波をデジタル変換したデジタル信号を監視し、そのデジタル信号が所定期間途切れた場合に電源断信号を出力する構成としてもよい。
【0533】
また、上述した実施の形態では、遊技状態復旧処理にて初期設定コマンドを送信する構成(ステップS82〜ステップS84)としていたが、再送するコマンドデータが存在するときには初期設定コマンドを送信しない構成としてもよい。この場合、ステップS85にてコマンド送信中フラグがオンでないと判断された場合に、ステップS82〜ステップS84の処理を行うようにすればよい。
【0534】
図77は、再送するコマンドデータが存在するときには初期設定コマンドを送信しない構成とした場合に、電力供給開始時に再送されたコマンドを受信するコマンド受信側基板(例えば、払出制御基板37)での受信状態を示す説明図である。なお、遊技状態復旧処理において初期設定コマンドを常に送信しない構成とされていてもよい。
【0535】
まず、MODEデータの受信中(図41に示したb〜cの期間中)に電力供給が停止したあとに電力供給が再開した場合について説明する。この場合、図77(A)に示すように、コマンド受信側基板は、例えばコマンド受信バッファ1に記憶する処理を行っていたMODEデータを完全に取り込んでいない状態で電力供給が停止した状態となる。その後、電力供給が再開すると、コマンド受信側基板では、コマンド受信バッファの内容が復元される。その後、主基板31の遊技制御処理にて再送信されたMODEデータをコマンド受信バッファ1に上書き保存し、EXTデータをコマンド受信バッファ2に保存する。従って、MODEデータの受信中に電力供給が停止した場合であっても、電力供給が再開したあとに制御コマンドは正常に受信される。
【0536】
次に、MODEデータの受信を終了したあとコマンド送信中フラグがオフ状態とされる前(図41に示したc〜dの期間中)に電力供給が停止し、その後に電力供給が再開した場合について説明する。この場合、図77(B)に示すように、コマンド受信側基板は、MODEデータを例えばコマンド受信バッファ1に保存し終えた状態で電力供給が停止した状態となる。その後、電力供給が再開すると、コマンド受信側基板では、コマンド受信バッファの内容が復元される。その後、主基板31の遊技制御処理にて再送信されてきたMODEデータをコマンド受信バッファ2に保存し、EXTデータをコマンド受信バッファ3に保存する。すると、隣接するコマンド受信バッファにMODEデータが連続して保存されたことになり、制御コマンドの受信規則に反するため、規則外のデータであるコマンド受信バッファ1に保存されているMODEデータは破棄される。従って、MODEデータの受信を終了したあとコマンド送信中フラグがオフ状態とされる前に電力供給が停止した場合であっても、電力供給が再開したあとに制御コマンドは正常に受信される。
【0537】
次に、EXTデータの受信を完了したあとコマンド送信中フラグがオフ状態とされる前(図41に示したg〜hの期間)に電力供給が停止し、その後に電力供給が再開した場合について説明する。この場合、図77(C)に示すように、コマンド受信側基板は、MODEデータを例えばコマンド受信バッファ1に保存し、EXTデータをコマンド受信バッファ2に保存し終えた状態で電力供給が停止した状態となる。その後、電力供給が再開すると、コマンド受信側基板では、コマンド受信バッファの内容が復元される。その後、主基板31の遊技制御処理にて再送信されてきたコマンドのEXTデータをコマンド受信バッファ3に保存する。しかし、隣接するコマンド受信バッファにEXTデータが連続して保存されたことになり、制御コマンドの受信規則に反するため、規則外のデータであるコマンド受信バッファ3に保存されているEXTデータは破棄される。このように、EXTデータの受信を完了したあとコマンド送信中フラグがオフ状態とされる前に電力供給が停止した場合には、電力供給が再開したあとに再送されたEXTデータは破棄されるので、制御コマンドが正常に受信されることになる。
【0538】
最後に、EXTデータの受信中(図41に示したf〜gの期間中)に電力供給が停止し、その後に電力供給が再開した場合について説明する。この場合、図77(D)に示すように、コマンド受信側基板は、例えばコマンド受信バッファ1にMODEデータを保存したあと、コマンド受信バッファ2に記憶する処理を行っていたEXTデータを完全に取り込んでいない状態で電力供給が停止した状態となる。その後、電力供給が再開すると、コマンド受信側基板では、コマンド受信バッファの内容が復元される。その後、主基板31の遊技制御処理にて再送信されたEXTデータをコマンド受信バッファ2に上書き保存する。従って、この例では、EXTデータの受信中に電力供給が停止したあとに電力供給が再開した場合についても、制御コマンドは正常に受信される。
【0539】
上記のように、少なくとも再送するコマンドデータが存在するときには初期設定コマンドを送信しない構成とした場合には、ステップS335のコマンド送信処理によって用いられるコマンド送信中フラグと、ステップS340のコマンド送信処理によって用いられるコマンド送信中フラグとを別個のフラグとするなどの構成をとることなく、制御コマンドの受信中に電力供給が停止した場合であっても、電力供給が再開したあとに制御コマンドが正常に受信されるようにすることができる。また、少なくとも再送するコマンドデータが存在するときには初期設定コマンドを送信しない構成とした場合には、制御コマンドを構成するコマンドデータ(MODEデータまたはEXTデータ)のみが常に再送されるようにすることができ、コマンド送信側および受信側の処理負担を軽減させることができる。
【0540】
また、上述した実施の形態では、遊技状態復旧処理にて、コマンド送信中フラグの状態を確認することでコマンドの再送を行うか否かの判断を行う構成としていたが(ステップS85)、スタック領域に退避している復帰アドレス(NMIによる電力供給停止時処理によって退避されたアドレス)を示す値を確認することで、コマンドの再送を行うか否かの判断を行うようにしてもよい。この場合、コマンド送信中フラグの状態を確認する処理に替えて、スタック領域における復帰アドレスを示す値がコマンド送信処理のアドレスを示す値であるか否か確認する処理を行う。すなわち、復帰アドレスを示す値が、コマンド送信処理が実行されているときに用いられる何れかのアドレスを示す値であるか否かを確認する。コマンド送信処理のアドレスを示す値であれば、コマンド送信処理の実行中に電力供給が停止したことになるので、上述したステップS87の処理が実行され、ステップS92の次のRET命令によってコマンド送信処理が開始されるときのアドレスにリターンするようになる。
【0541】
このように、スタック領域における復帰アドレスを示す値がコマンドの送信に関連する処理の実行中に用いられるアドレスを示す値であるか否か確認することで、コマンドの再送を行うか否かの判断を行う場合には、コマンドの送信に関連する処理の実行中に用いられるアドレスが他の処理で用いられないようにしておけば、確実な判定がなされるようになる。すなわち、コマンドの送信に関連する処理が専用のモジュールで実行されるように構成しておけば、スタック領域に退避している復帰アドレスを示す値によって、電力供給が停止した際にコマンドの送信に関連する処理が実行されていたか否かを確実に判定することができるようになる。なお、コマンドの送信に関連する処理を実行する専用のモジュールは、複数のモジュールによって構成するようにしてもよい。この場合、例えば、コマンドの送信に関連する処理の一部をそれぞれ実行する複数種類の専用のモジュールを設けて、これら複数のモジュールによってコマンドの送信に関連する処理を実行する専用のモジュールが構成されるようにすればよい。
【0542】
上記のように、スタック領域における復帰アドレスを示す値に応じてコマンドの再送を行うか否かの判断を行う構成とした場合には、スタック領域における復帰アドレスを示す値にもとづいてコマンドの送信に関連する処理の実行中に電力供給が停止されたか否かを判定することができるので、新たなフラグを必要とすることなくRAM55の必要容量の削減となり、また、上述した実施の形態と同様の効果を得ることもできる。
【0543】
また、スタック領域における復帰アドレスを示す値に応じてコマンドの再送を行うか否かの判断を行う構成とする場合に、例えば、コマンドの送信に関連する処理のうち、コマンドの取りこぼしなどの弊害を確実に防止する必要性が高い処理についてだけ専用のモジュール(プログラムモジュール)によって行うようにしてもよい。このようにすれば、弊害を確実に防止する必要性が高い処理の実行中に電力供給が停止した場合には、電力供給再開後に確実にコマンドが再送されるので、防止の必要性が高い弊害を確実に防ぐことができる。コマンドの取りこぼしなどの弊害を確実に防止する必要性が高い処理には、例えば払出制御コマンドの送信に関連する処理などの、コマンドの取りこぼしによって遊技者に不利益を及ぼしてしまう処理などが該当する。例えば、払出制御コマンドの送信に関連する処理を実行するための専用のモジュールを設けた構成とすれば、遊技者に付与する遊技媒体数を指定する払出制御コマンドの送信に関連する処理の実行中に電力供給が停止した場合には、電力供給の再開後に確実に払出制御コマンドの送信に関連する処理が再度実行されるので、遊技媒体の付与が確実に行なわれるようになり、遊技者に不利益を及ぼすことが回避される。
【0544】
また、上述した実施の形態では、コマンド送信処理の実行中に電力供給が停止した場合に、その後の電力供給開始時にコマンドを再送する処理を行う構成としていたが、コマンドセット処理の実行中に電力供給が停止し、その後に電力供給が開始した場合に、コマンドセット処理を再度実行してコマンドを再送する処理を行う構成としてもよい。この場合、例えばコマンドセット処理(図39参照)の最初(ステップS331の前)にコマンド送信中フラグをオンし、最後(ステップS340の後)にコマンド送信中フラグをオフするようにするとともに、遊技状態復旧処理のステップS87にてスタック領域に退避している復帰アドレスにコマンドセット処理の最初のアドレスを示す値をセットするようにすればよい。
【0545】
上記のように、コマンドセット処理の実行中に電力供給が停止し、その後に電力供給が開始した場合に、コマンドセット処理を再度実行してコマンドを再送する処理を行う構成とした場合には、電力供給が開始したあとにMODEデータおよびEXTデータが送信されるので、上述した実施の形態と同様に、制御コマンドを確実に送信し、受信側の基板に取り込ませるようにすることができるようになる。
【0546】
上記の例では、コマンドセット処理の実行中に電力供給が停止したあと電力供給が開始すると、MODEデータおよびEXTデータが送信される。図78は、コマンドセット処理の実行中に電力供給が停止したあとの電力供給開始時に再送されたコマンドを受信するコマンド受信側基板(例えば、払出制御基板37)での受信状態を示す説明図である。
【0547】
まず、MODEデータの受信中(図41に示したb〜cの期間中)に電力供給が停止したあとに電力供給が再開した場合について説明する。この場合、図78(A)に示すように、コマンド受信側基板は、例えばコマンド受信バッファ1に記憶する処理を行っていたMODEデータを完全に取り込んでいない状態で電力供給が停止した状態となる。その後、電力供給が再開すると、コマンド受信側基板では、コマンド受信バッファの内容が復元される。次いで、受信した初期設定コマンド(この例では、ステップS83またはステップS84にて送信されるコマンド)のMODEデータをコマンド受信バッファ1に上書き保存する。また、受信した初期設定コマンドのEXTデータをコマンド受信バッファ2に保存する。その後、主基板31の遊技制御処理にて再送信されたMODEデータをコマンド受信バッファ3に保存し、EXTデータをコマンド受信バッファ4に保存する。従って、MODEデータの受信中に電力供給が停止した場合であっても、電力供給が再開したあとに制御コマンドが正常に受信される。
【0548】
次に、MODEデータの受信を終了したあとコマンド送信中フラグがオフ状態とされる前(図41に示したc〜dの期間中)に電力供給が停止し、その後に電力供給が再開した場合について説明する。この場合、図78(B)に示すように、コマンド受信側基板は、MODEデータを例えばコマンド受信バッファ1に保存し終えた状態で電力供給が停止した状態となる。その後、電力供給が再開すると、コマンド受信側基板では、コマンド受信バッファの内容が復元される。次いで、受信した初期設定コマンド(この例では、ステップS83またはステップS84にて送信されるコマンド)のMODEデータをコマンド受信バッファ2に保存する。また、受信した初期設定コマンドのEXTデータをコマンド受信バッファ3に保存する。すると、隣接するコマンド受信バッファにMODEデータが連続して保存されたことになり、制御コマンドの受信規則に反するため、規則外のデータであるコマンド受信バッファ1に保存されているMODEデータは破棄される。その後、主基板31の遊技制御処理にて再送信されたMODEデータをコマンド受信バッファ4に保存し、EXTデータをコマンド受信バッファ5に保存する。従って、MODEデータの受信を終了したあとコマンド送信中フラグがオフ状態とされる前に電力供給が停止した場合であっても、電力供給が再開したあとに制御コマンドが正常に受信される。
【0549】
次に、EXTデータの受信中(図41に示したf〜gの期間中)に電力供給が停止したあとに電力供給が再開した場合について説明する。この場合、図78(C)に示すように、コマンド受信側基板は、例えばコマンド受信バッファ1にMODEデータを保存したあと、コマンド受信バッファ2に記憶する処理を行っていたEXTデータを完全に取り込んでいない状態で電力供給が停止した状態となる。その後、電力供給が再開すると、コマンド受信側基板では、コマンド受信バッファの内容が復元される。次いで、受信した初期設定コマンド(この例では、ステップS83またはステップS84にて送信されるコマンド)のMODEデータをコマンド受信バッファ2に上書き保存する。また、受信した初期設定コマンドのEXTデータをコマンド受信バッファ3に保存する。その後、主基板31の遊技制御処理にて再送信されたMODEデータをコマンド受信バッファ4に保存し、再送信されたEXTデータをコマンド受信バッファ5に保存する。従って、MODEデータの受信中に電力供給が停止した場合であっても、電力供給が再開したあとに制御コマンドが正常に受信される。
【0550】
なお、この例では、EXTデータの受信を完了したあとコマンド送信中フラグがオフ状態とされる前(図41に示したg〜hの期間)に電力供給が停止し、その後に電力供給が再開した場合には、制御コマンドがMODEデータから再送されることとなる。従って、EXTデータの受信を完了したあとコマンド送信中フラグがオフ状態とされる前に電力供給が停止し、その後に電力供給が再開した場合に、制御コマンドが重複受信されることを防止するために、図41に示したg〜hの期間ができるだけ短い期間となるように、ステップS367(図40参照)で設定されるウエイトカウンタの値を調整することが望ましい。理想的には、コマンド受信処理の完了時と、コマンド送信中フラグがオフ状態とするときとが同一となるように、ステップS367(図40参照)で設定されるウエイトカウンタの値を調整する。
【0551】
上記のように、遊技制御手段(例えば、CPU56)が、コマンドの送信に関連する処理(例えば、コマンドセット処理:図39参照)の実行中に遊技機への電力供給が停止し、その後に電力供給が開始した場合には、コマンドの送信に関連する処理を所定のタイミング(例えば、コマンドセット処理の最初)から再度実行し、電力供給が停止したときに送信中のコマンドがあった場合には、当該、コマンドの少なくとも一部(MODEデータ、あるいは制御コマンド)を再送する構成としたので、コマンドの出力にかかわる処理の実行中に電力供給が停止した場合であっても、電力供給再開後にそのコマンドを確実に送信することができる。
【0552】
なお、上記の例では、遊技状態復旧処理にて初期設定コマンドを送信する構成としていたが、再送するコマンドデータが存在するときには初期設定コマンドを送信しない構成としてもよい。
【0553】
また、上述した各実施の形態では、制御コマンドがMODEデータとEXTデータとで構成されていたが、制御コマンドは3以上のデータによって構成されていてもよく、1のデータによって構成されていてもよい。また、制御コマンドは、上述したように、2バイト構成に限られない。
【0554】
また、上述した各実施の形態では、INT信号の受信に応じてコマンドの受信処理(図54参照)が実行される構成としていたが、INT信号が用いられることなくコマンド受信処理を実行する構成とされていてもよい。この場合、例えば、コマンド受信側の各電気部品制御基板が、所定期間毎にコマンド入力ポート(例えば、図45に示す入力ポートA)を監視するようにし、ポートの状態に応じてコマンド受信処理を実行する構成とすればよい。
【0555】
また、上述した各実施の形態では、コマンドを複数の信号線を用いて伝送する構成としていたが、コマンドをシリアル信号によって構成し、1の信号線を用いたシリアル伝送を行うように構成されていてもよい。
【0556】
なお、上述した各実施の形態においては詳しく説明していなかったが、コマンド受信処理(図54参照)の実行中に電力供給が停止し、その後に電力供給が開始すると、コマンド受信側基板のCPUは、コマンド受信処理を再開するが、復旧時には、入力ポート(例えば、図45に示す入力ポートA)の内容が正規のコマンド形式とはなっていない。従って、電力供給が開始して再開したコマンド受信処理において、ステップS851で読み込んだデータは、規則外のデータと判定されるので(ステップS851aのN)、受信コマンドバッファに格納されない。その後、コマンド受信側基板のCPUは、状態復旧した主基板31によって再送されてきたコマンドを受信する処理(図54参照)を行う。
【0557】
また、上述した各実施の形態では、ステップS362(図40参照)で設定されるウエイトカウンタの値と、ステップS367(図40参照)で設定されるウエイトカウンタの値とを調整することで、コマンド受信側の基板でのコマンド受信処理(図54参照)の実行期間を確保する構成としていたが、何れか一方で設定されるウエイトカウンタの値によってコマンド受信処理の実行期間を確保するようにしてもよい。例えば、INT信号が立ち上げられたあとの立下りに従ってコマンド受信処理が開始される場合(例えば、ステップS336の処理の実行に応じてコマンド受信処理が開始される場合)には、ステップS367(図40参照)で設定されるウエイトカウンタの値を調整することでウエイト期間を調整し、コマンド受信処理の実行期間を確保するようにすればよい。
【0558】
また、上記の各実施の形態では、遊技制御以外の電気部品制御手段として、主として、電気部品としての球払出装置97等を制御する払出制御手段を例にした。それは、払出制御コマンドの送受信処理に不備があると、払い出されるべき遊技球が払い出されないという事態を招くおそれがあり、遊技者の不利益に直結するため、かかる事態を招くことを回避することが可能な実施の形態を示すためのである。しかし、他の制御コマンドの送受信処理に不備があった場合にも遊技者に対して不利益を及ぼす可能性があり、またコマンドの送受信処理に不備があった場合に遊技演出が円滑に実行されない事態を招くおそれもあるため、それらの問題を解消するために、本発明が適用される電気部品制御手段が、払出制御手段以外の他の制御手段であるとしてもよい。
【0559】
また、上述した実施の形態では、遊技媒体の払い出しが可能であるか否かを判定する払出状態判定手段(遊技制御手段の一部)が払出可能でないことを検出したら、原因の如何に関わらず、1種類の払出停止状態指定コマンド(すなわち、本例では、払出停止状態指定コマンドは、払い出しを禁止する複数種類の条件のうちのどの条件が成立した場合であっても、共通して用いられるコマンドとされている。)が送信されるようにしたが、原因別のコマンド(上述した例では、補給球の不足を示すコマンドと下皿満タンを示すコマンド)に分けて送信してもよい。この場合、払出状態判定手段がいずれかの払出禁止条件が不成立となったことを検出したら、該当する払出禁止条件が解除されたことを示すコマンド(例えば、補給球の不足の解消を示すコマンド、下皿満タンの解消を示すコマンド)を送信するようにすればよい。上記の構成とする場合、払出制御手段は、払い出しの禁止条件の原因別に設けられているコマンドのいずれかを受信した場合に払出制御の実行が不能な状態とし、払い出しを禁止する複数種類の条件の全てが解除された場合(例えば、払出禁止条件別に設けられたそれぞれのフラグが全て条件不成立を示す状態となった場合)に払出制御の実行が可能な状態とすればよい。
【0560】
また、遊技球の払出が可能でない場合に、遊技の継続を禁止するために遊技球の発射を禁止することを指示するコマンドを払出制御基板37に対して送信してもよい。払出制御基板37に搭載された払出制御手段は、遊技球の発射を禁止することを指示するコマンドを受信したら、打球発射装置の駆動を停止する。また、遊技球の払出が可能でない場合に、遊技制御手段が発射制御手段に対して、直接、遊技球の発射を禁止することを指示する信号を与えてもよい。また、払出制御手段は、払出停止状態指定コマンドを受信した場合に、打球発射装置の駆動を停止するようにしてもよい。
【0561】
また、上述した実施の形態では、電力供給が開始されたあとに払出制御の実行が可能な状態とする場合には、払出許可状態指定コマンドを送信する構成としていたが、例えば払出個数を指定する払出制御コマンドなどの他のコマンドを用いる構成としてもよい。すなわち、払出制御用CPU371が、電源供給が開始されたあと、主基板31からの何らかのコマンドを受信したことにもとづいて、遊技球の払出制御を実行する構成としてもよい。主基板31がコマンドを送信したということは、主基板31は確実に立ちあがっていることになる。従って、上記のように構成した場合であっても、電力供給が開始された場合に、CPU56が確実に制御可能な状態となったあとに払出制御を実行することができる。
【0562】
また、上記の実施の形態では、CPU56が初期化処理において払出禁止条件が成立しているか否かの判定を行う構成としていたが、CPU56が、初期化処理ではそのような判定処理を実行することなく(すなわち、ステップS13a、ステップS13bを実行しない)、払出禁止状態に設定する(例えば、球切れフラグと満タンフラグをともにオン状態とする)処理を行うようにし、遊技制御処理にて実行される処理(スイッチ処理など、具体的にはステップS150〜ステップS168の処理。)を用いて払出禁止状態の解除を指示する構成としてもよい。このように構成すれば、CPU56が制御可能な状態となったあとに払出制御を実行可能にすることが、従来から実行されている処理を流用して行うことができる。
【0563】
電力供給が開始した場合に制御状態を復旧させる場合についても、同様に、CPU56が、払出禁止条件が成立しているか否かの判定処理を実行することなく(すなわち、ステップS82、ステップS83を実行しない)、払出禁止状態に設定する(例えば、払出停止中フラグをオン状態とする)処理を行うようにし、遊技制御処理にて実行される処理(スイッチ処理など、具体的にはステップS150〜ステップS168の処理。)を用いて払出禁止状態の解除を指示する構成としてもよい。このように構成すれば、制御状態を復旧させる場合についても、CPU56が制御可能な状態となったあとに払出制御を実行可能にすることが、従来から実行されている処理を流用して行うことができる。
【0564】
上記のように、遊技状態復旧処理および払出状態復旧処理、または遊技制御手段および払出制御手段での初期化処理においてそれぞれ払出禁止状態に設定する構成とする場合には、遊技制御手段と払出制御手段とで払出禁止状態であるか否かの認識に食い違いが発生してしまうことを防止することができる。
【0565】
また、上述した実施の形態では、払出モータ289として、払出制御用CPU371からのパルス信号(駆動信号)によって回転するステッピングモータを用いる構成としたが、ソレノイドを用いる構成としてもよい。この場合、電力供給停止時処理において、賞球カウントスイッチ301Aや球貸しカウントスイッチ301Bの状態を確認する処理の前(例えばステップS816の前)に、払出モータ289の駆動を停止させる処理を行うようにすればよい。このように構成すれば、ソレノイドを用いて払出モータ289を構成したとしても、電力消費を抑制することができるようになる。
【0566】
また、上記の各実施の形態では、払出手段は球貸しも賞球払出も実行可能な構成であったが、球貸しを行う機構と賞球払出を行う機構とが独立していても本発明を適用することができる。その場合、球貸しを行う機構と賞球払出を行う機構とが独立していても、払出制御手段が両方の機構を制御するように構成されていれば、上記の実施の形態のように、遊技制御手段が、複数の景品払出禁止条件のうちいずれの条件が成立した場合でも、払出手段における賞球払出を行う機構からの景品としての遊技媒体の払い出しを禁止することを示す共通の景品払出禁止状態指定コマンドを払出制御手段に対して送信し、複数の貸出禁止条件のうちいずれの条件が成立した場合でも、払出手段における球貸しを行う機構からの遊技媒体の貸し出しを禁止することを示す共通の貸出禁止状態指定コマンドを払出制御手段に対して送信するように構成することができる。
【0567】
また、上記の各実施の形態では、電力供給停止時処理において、遊技球が払い出されたか否かを監視し、払い出された場合には未払出の遊技球数として記憶している値を減算する処理を行っていたが、未払出数の記憶値を減算する処理を行うことなく、賞球カウントスイッチ301Aや球貸しカウントスイッチ301Bがオンしたか否かを確認し、その確認結果を電源バックアップされているRAMに保存する構成としてもよい。この場合、電力供給が開始したときに、電源バックアップされているRAMの記憶内容にもとづいて、電力供給停止時処理の実行中に賞球カウントスイッチ301Aや球貸しカウントスイッチ301Bがオンしていたことが確認された場合に、未払出数の記憶値を減算する処理を行うようにすればよい。上記のように構成すれば、電力供給停止時処理に未払出数として記憶している値を変更する処理を行う必要がないので、電力供給が停止する前に未払出の遊技球数を管理するために実行される処理をより確実に完了させることができるようになる。
【0568】
また、上記の各実施の形態では、球切れ状態や下皿満タン状態である場合に払出禁止条件が成立するものとしていたが、他の払い出しを行うことが好ましくない場合や払い出しを行うことができない場合に払出禁止条件が成立するようにしてもよい。例えば、ガラス扉枠2が開状態となっているとき、カウントスイッチ短絡信号が入力されているとき、VL信号の入力状態によりカードユニット50が未接続状態であることが確認されているとき、賞球詰まりフラグがオンであるとき、あるいは貸し球詰まりフラグがオンであるときなどの場合に、払出禁止条件が成立するように構成されていてもよい。
【0569】
実施の形態2.
図79は、第2の実施の形態(実施の形態2)における主基板31から他の各電気部品制御基板(サブ基板)に送信される制御コマンド(払出制御コマンド、表示制御コマンド、ランプ制御コマンド、音制御コマンド)の送出形態を示すタイミング図である。この例では、上述した実施の形態とは異なる形態の制御コマンドを用いる。すなわち、図8に示した主基板31の出力ポート(出力ポート1)571からは8ビットのコマンドデータが出力され、出力ポート570からは割込信号およびストローブ信号(STB信号)が出力される。割込信号は、払出制御用CPU371の割込端子に入力される。また、STB信号は、I/Oポートに入力される。
【0570】
図79に示すように、主基板31(メイン)からコマンドデータが出力された後、割込信号およびSTB信号がオン状態になる。このように、遊技制御手段は、コマンドデータの出力に関連して、データ出力中信号(この例ではSTB信号)の出力タイミングと同タイミングで、コマンドデータの電気部品制御手段への入力を指示するための指示信号としての割込信号を出力する。
【0571】
その後、メインからの割込信号はオフ状態になり、サブ基板の電気部品制御手段がコマンド受信処理を完了した後のタイミングで、メインからのSTB信号はオフ状態になる。
【0572】
図80は、払出制御コマンドを送信するためのコマンド制御処理の一例を示すフローチャートである。払出制御コマンドを送信するためのコマンド制御処理は、例えば、図21に示されたフローチャートにおけるステップS32の賞球処理において実行される。払出制御コマンドを送信するためのコマンド制御処理において、CPU56は、出力ポート1出力内容記憶領域(出力ポート1の出力内容を記憶する領域。なお、払出制御コマンドの送出要求を行うための払出制御コマンド送出要求フラグに対応して設けられている。)に、送出すべき払出制御コマンドのコマンドデータを書き込む(ステップS321)。そして、払出制御コマンド送出要求フラグをセットする(ステップS322)。なお、ステップS321では出力ポート1出力内容記憶領域ではなくバックアップRAMにおける他の領域にコマンドデータを書き込み、実際にコマンドデータが出力ポート1に出力されるときに、出力ポート1出力内容記憶領域にコマンドデータを書き込むように構成してもよい。
【0573】
例えば、賞球払出数を指定するための払出制御コマンドとして、01(H)〜0F(H)のいずれかが用いられる。従って、1個〜15個の賞球払出数を指定することができる。また、払出制御状態を指定するための払出制御コマンドとして、01(H)〜0F(H)以外の1バイトのデータが用いられる。例えば、払出禁止を指定する場合には11(H)が用いられ、払出禁止解除を指定する場合には12(H)が用いられる。あるいは、払出禁止/払出禁止解除の原因毎に払出制御コマンドを定義してもよい。例えば、球切れ(補給球不足)の場合にはF0(H)、その解除の場合にはF1(H)、下皿満タンの場合にはF2(H)、その解除の場合にはF3(H)のようにしてもよい。さらに、1バイトのうちの上位の4ビットを指示の種類を示すデータとし、下位の4ビットを具体的内容を示すデータとしてもよい。例えば、上位4ビットが0000であれば賞球払出数を指示することとし下位4ビットで賞球数を示すようにする。また、上位4ビットが0001であれば払出禁止/払出禁止解除を指示することにしてもよい。
【0574】
この例では、例えば図21に示した割込処理(ただし、本例では図21の処理とは異なるタイミングで割込処理が実行される)にてポート出力処理が実行され、このポート出力処理によって制御コマンドが出力される。ここでは、払出制御コマンドを出力するためのポート出力処理について説明する。ポート出力処理において、CPU56は、払出制御コマンド送出要求フラグがセットされていれば、出力ポート1出力内容記憶領域のデータを出力ポート1に出力する。このタイミングは、図79におけるa区間の開始時に相当する。
【0575】
次に、CPU56は、出力ポート0の、データを出力した出力ポート1に対応した出力ポート0の割込信号のビット(ビット0〜3のいずれか(ここでは払出制御コマンドなのでビット0:払出制御信号用割込信号))と、出力ポート0のSTB信号のビット(ビット4〜7のいずれか(ここでは払出制御コマンドなのでビット4:払出制御信号用STB信号))とに「1」を出力する。このタイミングは、図79におけるb区間の開始時に相当する。なお、コマンドデータの出力と、割込信号およびSTB信号の出力との間に、ディレイ時間をおいてもよい。
【0576】
そして、払出制御コマンド送出要求フラグをクリアする。なお、出力ポート0の出力状態を出力ポート0出力内容記憶領域にコピーしておく。
【0577】
次いで、図79におけるb区間とc区間の時間の合計に相当する時間だけ待ってから、データを出力した出力ポート1に対応した出力ポート0の割込信号のビット(ここではビット0:払出制御信号用割込信号)を「0」にする。また、出力ポート0の出力状態を出力ポート0出力内容記憶領域にコピーしておく。このタイミングは、図79におけるd区間の開始時に相当する。なお、b区間は、主基板31が割込信号を出力してからサブ基板(ここでは払出制御基板37)において割込が受け付けられるまでの遅れ時間に相当する。
【0578】
さらに、図79におけるd区間とe区間の時間の合計に相当する時間だけ待ってから、データを出力した出力ポート(ここでは出力ポート1)に対応した出力ポート0のSTB信号のビット(ここではビット4:払出制御信号用STB信号)を「0」にする。また、出力ポート0の出力状態を出力ポート0出力内容記憶領域にコピーしておく。このタイミングは、図79におけるe区間の終了時に相当する。
【0579】
なお、この例では、タイマ割込処理が4ms毎に実行される。従って、上述したポート出力処理も4msに1回しか実行されない。従って、各電気部品制御基板には、主基板31から、1回の制御期間(この例では4ms)において高々1つの制御コマンドしか出力されない。
【0580】
以上のようにして、図79に示されたようなタイミングで、制御コマンドがサブ基板に送出される。なお、タイマ割込がかかったときに、複数種類の制御コマンド送出要求フラグがオンしていたときには、例えば、あらかじめ決められている優先順位に従って、いずれかの制御コマンド送出要求フラグについてポート出力処理が実行される。
【0581】
このように、この実施の形態では、制御コマンドのコマンドデータを出力するときに、ポート出力内容記憶領域のデータを出力ポートに出力する。そして、ポート出力内容記憶領域のデータは、電力供給が停止しても所定期間はその内容が保存されるバックアップRAMに設定される。この例では、メイン処理においてはポート出力内容記憶領域ではなくバックアップRAMにおける他の領域にコマンドデータを書き込み、実際にコマンドデータが出力ポートに出力されるときに、ポート出力内容記憶領域にコマンドデータを書き込む。従って、出力ポートにコマンドデータを出力するときに、ポート出力内容記憶領域に、出力ポートに出力したコマンドデータが設定される構成とされている。
【0582】
次に、この例における払出制御用CPU371の処理について説明する。図81は、払出制御手段(払出制御用CPU371およびROM,RAM等の周辺回路)がプログラムに従って実行するメイン処理を示すフローチャートである。メイン処理では、払出制御用CPU371は、上述したステップS701〜ステップS705の処理を実行したあとに(図46参照)、ウォッチドッグクリア処理(ステップS705A)を行って、RAMをアクセス可能状態に設定する(ステップS706)。ステップS705Aでは、払出制御用CPU371がウォッチドッグ機能を内蔵し、それを利用している場合には、ウォッチドッグ機能の初期化およびタイマクリア処理が行われる。
【0583】
この実施の形態では、内蔵CTCのうちの一つのチャネルがタイマモードで使用される。従って、ステップS704の内蔵デバイスレジスタの設定処理およびステップS705の処理において、使用するチャネルをタイマモードに設定するためのレジスタ設定、割込発生を許可するためのレジスタ設定および割込ベクタを設定するためのレジスタ設定が行われる。そして、そのチャネルによる割込がタイマ割込として用いられる。タイマ割込を例えば1ms毎に発生させたい場合は、初期値として1msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。
【0584】
なお、タイマモードに設定されたチャネル(この実施の形態ではチャネル3)に設定される割込ベクタは、タイマ割込処理の先頭アドレスに相当するものである。具体的は、Iレジスタに設定された値と割込ベクタとでタイマ割込処理の先頭アドレスが特定される。タイマ割込処理では、払出制御処理が実行される。
【0585】
また、内蔵CTCのうちの他の一つのチャネル(この実施の形態ではチャネル2)が、遊技制御手段からの払出制御コマンド受信のための割込発生用のチャネルとして用いられ、そのチャネルがカウンタモードで使用される。従って、ステップS704の内蔵デバイスレジスタの設定処理およびステップS705の処理において、使用するチャネルをカウンタモードに設定するためのレジスタ設定、割込発生を許可するためのレジスタ設定および割込ベクタを設定するためのレジスタ設定が行われる。
【0586】
カウンタモードに設定されたチャネル(チャネル2)に設定される割込ベクタは、後述するコマンド受信割込処理の先頭アドレスに相当するものである。具体的は、Iレジスタに設定された値と割込ベクタとでコマンド受信割込処理の先頭アドレスが特定される。
【0587】
この実施の形態では、払出制御用CPU371でも割込モード2が設定される。従って、内蔵CTCのカウントアップにもとづく割込処理を使用することができる。また、CTCが送出した割込ベクタに応じた割込処理開始アドレスを設定することができる。
【0588】
CTCのチャネル2(CH2)のカウントアップにもとづく割込は、上述したタイマカウンタレジスタCLK/TRG2の値が「0」になったときに発生する割込である。従って、例えばステップS705において、特定レジスタとしてのタイマカウンタレジスタCLK/TRG2に初期値「1」が設定される。さらに、CLK/TRG2端子に入力される信号の立ち上がりまたは立ち下がりで特定レジスタとしてのタイマカウンタレジスタCLK/TRG2のカウント値が−1されるのであるが、所定の特定レジスタの設定によって、立ち上がり/立ち下がりの選択を行うことができる。この実施の形態では、CLK/TRG2端子に入力される信号の立ち上がりで、タイマカウンタレジスタCLK/TRG2のカウント値が−1されるような設定が行われる。
【0589】
また、CTCのチャネル3(CH3)のカウントアップにもとづく割込は、CPUの内部クロック(システムクロック)をカウントダウンしてレジスタ値が「0」になったら発生する割込であり、後述する1msタイマ割込として用いられる。具体的には、CPU371の動作クロックを分周したクロックがCTCに与えられ、クロックの入力によってレジスタの値が減算され、レジスタの値が0になるとタイマ割込が発生する。例えば、CH3のレジスタ値はシステムクロックの1/256周期で減算される。分周したクロックにもとづいて減算が行われるので、レジスタの初期値は大きくならない。ステップS705において、CH3のレジスタには、初期値として1msに相当する値が設定される。
【0590】
CTCのCH2のカウントアップにもとづく割込は、CH3のカウントアップにもとづく割込よりも優先順位が高い。従って、同時にカウントアップが生じた場合に、CH2のカウントアップにもとづく割込、すなわち、コマンド受信割込処理の実行契機となる割込の方が優先される。
【0591】
次いで、払出制御用CPU371は、図46にて説明したように、ステップS707〜ステップS709の判定処理の一部または全部を実行する。
【0592】
なお、この例では、払出制御用CPU371は、例えば、オン状態が少なくとも1ms(1ms毎に起動される処理の1回目の処理における検出直前に検出信号がオンした場合)継続しないとスイッチオンとは見なさないが、クリアスイッチ921のオン検出の場合には、1回のオン判定でオン/オフが判定される。すなわち、初期化操作手段としてのクリアスイッチ921が所定の操作状態であるか否かを払出制御用CPU371が判定するための初期化要求検出判定期間は、遊技媒体検出手段としての賞球カウントスイッチ等が遊技媒体を検出したことを判定するための遊技媒体検出判定期間とは異なる期間とされている。
【0593】
ステップS709でのチェック結果が正常でない場合などには、不測の停電等からの復旧時ではなく電源投入時に実行される初期化処理を実行する。初期化処理では、上述したステップS711,ステップS712,ステップS714の処理が実行される(図46参照)。なお、この例では、ステップS712にて、1ms毎に定期的にタイマ割込がかかるように払出制御用CPU371に設けられているCTCのレジスタの設定が行われる。すなわち、初期値として1msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。また、この例では、初期化処理にて、内部状態を払出禁止状態に設定する処理が実行される。
【0594】
このように、この例における遊技制御手段以外の電気部品制御手段においても、電力供給が開始された場合に、電力供給が停止する前の制御状態に復旧させるか否かを決めるための復旧条件が複数あり、電気部品制御手段は、復旧条件の全てが成立していたら電力供給が停止する前の制御状態に復旧させ、復旧条件のうち少なくとも1つが成立していなかったら制御状態を初期化する初期化処理を行うように構成されている。従って、誤って復旧処理がなされ、誤った制御がなされてしまうことが防止される。なお、この例では、復旧条件の成立は、クリアスイッチ921の押下がないこと、バックアップフラグがオン状態であること、およびパリティチェックの結果が正常であったことである。
【0595】
ステップS709にてチェック結果が正常であれば、払出制御用CPU371は、内部状態を電力供給停止時の状態に戻すための払出状態復旧処理を行う(ステップS710)。なお、この例では、払出制御用CPU371は、図48に示した処理と同様にして払出状態復旧処理を行い、内部状態を払出禁止状態に設定する処理を実行する。なお、内部状態を払出禁止状態に設定するということは、例えば、対応する内部フラグを設定することである。そして、バックアップRAM領域に保存されていたPC(プログラムカウンタ)の指すアドレスに復帰する。
【0596】
この実施の形態では、電力供給停止時処理を実行したことを示すフラグとして1バイトデータであるバックアップフラグを用いたが、電力供給停止時処理を実行したことを示すフラグであればどのような形態のフラグを用いてもよい。また、そのようなフラグは複数あってもよい。
【0597】
次いで、払出制御処理(ステップS751A〜S760)が繰り返し(ループ処理で)実行される。
【0598】
払出制御処理において、払出制御用CPU371は、まず、ウォッチドッグクリア処理を実行する(ステップS751A)。ステップS751Aでは、払出制御用CPU371がウォッチドッグ機能を内蔵し、それを利用している場合には、内蔵されているウォッチドッグタイマにタイマクリアするためのデータを書き込む処理が行われる。なお、リセットIC976に信号を与えることによってウォッチドッグ機能を実現する構成としてもよく、そのように構成されている場合には、1パルスの信号を出力する。
【0599】
そして、上述したステップS752〜ステップS760の処理が実行される(図46参照)。その後、ステップS751Aに戻る。なお、この例では、後述するように、タイマ割込処理において、入力ポートのデータが所定のRAM領域に保存されている。従って、ステップS752のスイッチ処理では、そのRAM領域を介して、賞球カウントスイッチ301Aや球貸しカウントスイッチ301B等のスイッチの検出信号を認識し、それらの状態判定を行う。また、この実施の形態では、後述するように、タイマ割込処理において、出力ポート出力内容記憶領域のデータが出力ポートに出力される。従って、ステップS758の払出モータ制御処理では、出力ポート出力内容記憶領域に駆動信号等を設定する。
【0600】
図82は、この例におけるタイマ割込処理を示すフローチャートである。タイマ割込処理において、払出制御用CPU371は、レジスタの退避処理を行った後(ステップS793)、ポート入力処理(ステップS794)、ポート出力処理(ステップS795)およびタイマ更新処理(ステップS796)を行う。そして、レジスタの復旧処理を行い(ステップS797)、割込許可状態にして(ステップS798)、処理を終了する。
【0601】
ステップS794のポート入力処理は、入力ポートのデータを読み出して、読み出したデータを所定のRAM領域に書き込む処理である。払出制御処理(図81に示されたループ処理)では、RAM領域の内容にもとづいて入力ポートの入力状態を認識する。ステップS795のポート出力処理は、出力ポート出力内容記憶領域の内容を対応する出力ポートに出力する処理である。ステップS796のタイマ更新処理は、払出制御処理において用いられている各種タイマの値を減算する処理である。例えば、払出制御処理では、タイマに計測時間に相当した値をタイマにセットし、タイマの値が0になったらタイムアウトしたと認識する。
【0602】
図83は、主基板31からの割込信号(払出制御用)に応じて起動されるコマンド受信割込処理を示すフローチャートである。コマンド受信割込処理において、払出制御用CPU371は、レジスタの退避処理を行った後(ステップS850)、入力ポートB(図45参照)のデータを入力する(ステップS861)。そして、そのビット7を確認する(ステップS862)。この例では、入力ポートBのビット7は、払出制御用STB信号が入力されるビットとされているものとする。払出制御用STB信号がオン状態であれば、入力ポートA(図45参照)のデータを入力する(ステップS863)。そして、入力したデータを、コマンド受信個数カウンタが示す受信コマンドバッファに格納し(ステップS864)、コマンド受信個数カウンタの値を更新する(ステップS865)。
【0603】
その後、レジスタ復旧処理を行い(ステップS859)、割込許可状態にして(ステップS860)、処理を終了する。以上のように、この実施の形態では、払出制御手段は、指示信号(割込信号)とデータ出力中信号(STB信号)の両方の出力を検出した場合に、コマンドデータを入力する処理(ステップS863)を実行することになる。
【0604】
なお、この例では、主基板31から受信した払出制御コマンドを格納するための受信バッファとして、払出制御コマンドを4個格納可能なリングバッファ形式の受信バッファが用いられる。従って、受信バッファは、受信コマンドバッファ1〜4の4バイトの領域で構成される。そして、受信したコマンドをどの領域に格納するのかを示すコマンド受信個数カウンタが用いられる。コマンド受信個数カウンタは、0〜3の値をとる。
【0605】
なお、コマンド解析実行処理は図81に示されたメイン処理で実行され、その処理において、読出ポインタが指す受信バッファの内容が読み出されるとともに読出ポインタの値が+1される。また、主基板31の遊技制御手段は、4msの制御期間において1つしか払出制御コマンドを送信しない。従って、通常、受信バッファに、複数の払出制御コマンドが記憶されていることはない。
【0606】
図84および図85は、この例における払出制御用CPU371によって電源基板910からの電源断信号に応じて実行されるマスク不能割込処理(NMI処理:電力供給停止時処理)の処理例を示すフローチャートである。
【0607】
電力供給停止時処理において、払出制御用CPU371は、上述したステップS801〜ステップS807の処理(図49参照)を実行する。なお、ステップS801〜S807の処理は、電源監視手段の検出信号に応じて制御状態を復旧させるために必要なデータを変動データ記憶手段に保存させるためのデータ退避処理に相当する。
【0608】
次に、処理ループ回数としてあらかじめ決められた値をセットし(ステップS601)、賞球カウントスイッチ301Aのチェック処理と払出制御コマンド受信処理とを所定期間実行するループ処理に移行する。払出制御用CPU371は、まず、ウォッチドッグクリア処理を行う(ステップS602)。次いで、入力ポートB(図45参照:ただし、この例では、ビット7は払出制御用STB信号に割り当てられている)のデータを入力する(ステップS603)。そして、入力したデータのビット7(払出制御用STB信号)を確認する(ステップS604)。払出制御用STB信号がオン状態であって、オン状態の確認が最初のものであれば(ステップS605)、入力ポートA(図45参照)のデータを入力し、入力したデータをコマンドバッファに格納する(ステップS606)。
【0609】
コマンドバッファは、通常の制御時に使用される通常時コマンド記憶領域としての受信バッファとは異なるRAM領域に設けられているバックアップコマンド記憶領域であり、電力供給停止時でも所定期間は保存される。
【0610】
次いで、ポートチェック回数としてあらかじめ決められている値をセットし(ステップS607)、入力ポートBのデータを入力する(ステップS608)。そして、スイッチチェックタイミングが到来していない場合には(ステップS609)、ポートチェック回数を減算し(ステップS610)、その値が0になっていなければステップS608に戻る(ステップS611)。0になっていれば、ステップS617に移行する。
【0611】
スイッチチェックタイミングが到来している場合には、スイッチチェック処理を行う(ステップS612)。そして、賞球カウントスイッチ301Aがオンしたことを検出したら(ステップS613)、総合個数記憶(総賞球数格納バッファ)の値を1減算し(ステップS614)、ステップS617に移行する。また、球貸しカウントスイッチ301Bがオンしたことを検出したら(ステップS615)、貸し球個数記憶(貸し球個数格納バッファ)の値を1減算し(ステップS616)、ステップS617に移行する。なお、スイッチチェック処理は、賞球カウントスイッチ301Aが確かにオンしたか否かを検出するとともに、球貸しカウントスイッチ301Bが確かにオンしたか否かを検出する処理であり、例えば、所定回連続して賞球カウントスイッチ301Aあるいは球貸しカウントスイッチ301Bのオン状態が検出されたら、ステップS613で賞球カウントスイッチ301Aが確かにオンしたと判断され、あるいはステップS615で球貸しカウントスイッチ301Bが確かにオンしたと判断される。
【0612】
ステップS617では、処理ループ回数を減算し、処理ループ回数が0になっていなければステップS602に戻る(ステップS618)。処理ループ回数が0になっていれば、ステップS808に移行する。
【0613】
ステップS808ではスタックポインタをバックアップRAM領域に退避させる。そして、払出制御用CPU371は、上述したステップS835〜ステップS846の処理(図51参照)を実行する。
【0614】
その後、払出制御用CPU371は、待機状態(ループ状態)に入る。従って、システムリセットされるまで、何もしない状態になる。なお、ウォッチドッグタイマを使用している場合には、ループ状態でウォッチドッグクリア処理を行っていないので、ウォッチドッグタイマがタイムアウトする。ただし、正常な電力供給停止時にはその前にシステムリセットがかかる。しかし、例えばノイズ等によってNMIがかかった場合には、電力供給停止時ではないのでシステムリセットがかからないが、ウォッチドッグタイマのタイムアウトによってリセットがかかり、ループから抜け出すことができる。
【0615】
図79に示されたb〜e期間において電力供給が停止しマスク不能割込が主基板31のCPU56にかかると、CPU56は、出力ポートの出力状態を変更しないので、払出制御用STB信号が出力されていた場合にはその出力状態は維持されている。すなわち、遊技制御手段は、コマンドデータの出力に関連してコマンドデータを出力していることを示すデータ出力中信号(この例ではSTB信号)を出力するとともに、電力供給停止時処理を開始した後にも所定期間(上記の例ではシステムリセットされるまでであって、払出制御手段がコマンド受信を完了するまでの期間よりも短い期間)はデータ出力中信号の出力を維持している。電力供給が停止するときには払出制御用CPU371にもマスク不能割込がかかるが、払出制御用CPU371が実行するマスク不能割込処理において、所定期間(この例では処理ループ回数の初期値×S602〜S618のループ時間)データ出力中信号の状態を監視し(ステップS604)、データ出力中信号が出力されている場合には、コマンドデータを取り込む処理を実行する。そして、コマンドデータが受信されコマンドバッファに格納される(ステップS606)。従って、b〜e期間において電力供給が停止する場合には、払出制御手段において、送信途中であった払出制御コマンドの受信が完了する。
【0616】
なお、図79に示されたc〜d期間において電力供給が停止しマスク不能割込が主基板31のCPU56にかかると、電力供給停止のタイミングによっては、電力供給再開後の払出状態復旧処理によってコマンド受信割込処理に復旧し、コマンド受信割込処理によって払出制御コマンドを受信してしまう場合も考えられる。
【0617】
そこで、この実施の形態では、メイン処理におけるコマンド解析実行処理(ステップS754)において、まず、コマンドバッファにデータがあるか否か確認する。コマンドバッファは電力供給停止時処理において受信した払出制御コマンドを格納するバックアップコマンド記憶領域であり、電力供給停止時でも所定期間は保存されている。コマンドバッファにデータがある場合には、そのデータについてコマンド解析処理を実行した後、コマンドバッファの内容をクリアするとともに、さらに、通常時コマンド記憶領域としての受信バッファをクリアする。すなわち、通常時コマンド記憶領域の内容を無効にする。
【0618】
なお、コマンド解析処理は受信されていた払出制御コマンドがいかなるコマンドであるかを解析する処理であり、例えば、賞球個数を指示する払出制御コマンドであったことが確認されたら、総合個数記憶(総賞球数格納バッファ)の内容を更新する。そして、コマンド受信カウンタを初期化する。すなわち、読出ポインタの値と一致させる。
【0619】
メイン処理において、このような制御を行えば、電力供給が停止するときにコマンド受信割込処理の処理途中であって、電力供給が復旧してコマンド割込処理の実行が再開され、受信コマンドを受信バッファに格納したとしても、その受信コマンドはメイン処理において破棄される。よって、払出制御コマンドがコマンドバッファと受信バッファの双方に格納されるという状況、すなわち、払出制御コマンドを二重に受信してしまうという状況が発生することはない。なお、上述したように、コマンド受信割込処理中に停電等の不測の電力供給停止が発生した場合、本来コマンド受信割込処理によって受信されるべき払出制御コマンドは、電力供給停止時処理によって受信され、コマンドバッファに格納されている。
【0620】
以上に説明したような第2の実施の形態の構成とした場合であっても、第1の実施の形態と同様の効果を得ることができる。例えば、具体的には、電力供給停止時処理(図84、図85参照)にて、検出維持期間(ステップS601にてループ回数が設定されてから、設定された回数のループ処理が終了してステップS618にて「Y」となるまでの期間)が経過するまでの間は、コンデンサ923に充電された電力を用いて、電源基板910が、賞球カウントスイッチ301A(景品遊技媒体検出手段の一例)および球貸しカウントスイッチ301B(貸出遊技媒体検出手段の一例)を駆動可能な電力を供給するとともに、ソレノイド310(通路切換手段の一例)が振分部材311の状態を保持するための駆動電力を供給し、払出制御手段(払出制御用CPU371)が賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bからの検出信号の入力処理(ステップS607〜ステップS618)を行う構成としたので、電力供給停止時処理にて、払い出された景品遊技媒体(入賞領域への入賞にもとづいて景品として払い出される遊技媒体)や貸出遊技媒体(遊技者からの貸出要求に応じて貸し出される遊技媒体)を確実に検出することができるようになる。すなわち、上述した第2の実施の形態の構成をなす遊技機によれば、電力供給停止時処理にて払い出された遊技媒体の検出を確実に実行することができるので、遊技媒体の未払出数を正確に把握することができるようになる。
【0621】
なお、上述した第2の実施の形態においても、電力供給停止時処理において、払出制御手段が、賞球カウントスイッチ301Aあるいは球貸しカウントスイッチ301Bのうちいずれか一方のスイッチの状態を確認する構成としてもよい。
【0622】
実施の形態3.
図86は、第3の実施の形態(実施の形態3)における主基板31から各電気部品制御基板(サブ基板)に送信される制御コマンド(払出制御コマンド、表示制御コマンド、ランプ制御コマンド、音制御コマンド)の送出形態を示すタイミング図である。この例では、制御コマンドのコマンドデータは1バイトで構成されている。
【0623】
図86に示すように、主基板31(メイン)から割込信号がオン状態になった後オフ状態になったら、コマンドデータが出力される。さらに、STB信号がオン状態になる。このように、遊技制御手段は、電気部品制御手段がコマンドデータを入力する入力処理を実行する契機を示す信号(この例では割込信号)を送信した後、コマンドデータを出力し、コマンドデータを出力した後に、入力処理実行中における実際の入力の契機を示す信号として指示信号(この例ではSTB信号)を出力する。サブ基板では、電気部品制御手段を構成するマイクロコンピュータに対して割込信号の立ち上がりで割込がかかり、制御コマンドの受信処理(入力処理)が開始される。
【0624】
サブ基板の電気部品制御手段は、受信処理において、STB信号がオン状態になったらコマンドデータを取り込む。その後、サブ基板の電気部品制御手段がコマンド受信処理を完了した後のタイミングで、メインからのSTB信号はオフ状態になる。
【0625】
この実施の形態でも、遊技制御手段は、制御コマンドの送出処理などを除き、上述した各実施の形態と同様の制御を行う。すなわち、電源断信号に応じて電力供給停止時処理を実行する(図22〜図24参照)。また、電力供給開始時に、復旧条件が成立していることを確認したら、遊技状態復旧処理を行う。なお、この実施の形態では、入出力ポートの信号割り当ては、実施の形態2の場合と同じである。
【0626】
この例では、例えば図21に示した割込処理(ただし、本例では図21の処理とは異なるタイミングで割込処理が実行される)にてポート出力処理が実行され、このポート出力処理によって制御コマンドが出力される。ここでは、払出制御コマンドを出力するためのポート出力処理について説明する。ポート出力処理において、CPU56は、払出制御コマンド送出要求フラグがセットされていれば、コマンドデータを出力する出力ポート0の割込信号のビット(ここではビット0:払出制御信号用割込信号)に「1」を出力するとともに、払出制御コマンド送出要求フラグをリセットし、さらに、出力ポート0の出力状態を出力ポート0出力内容記憶領域にコピーしておく。このタイミングは、図86におけるa区間の開始時に相当する。
【0627】
次に、CPU56は、図86におけるa区間とb区間の時間の合計に相当する時間だけ待ってから、コマンドデータを出力する出力ポート(ここでは払出制御コマンドを出力するための出力ポート1)に対応した出力ポート0の割込信号のビット(ここではビット0:払出制御信号用割込信号)を「0」にする。なお、出力ポート0の出力状態を出力ポート0出力内容記憶領域にコピーしておく。このタイミングは、図86におけるc区間の開始時に相当する。なお、a区間は、主基板31が割込信号を出力してからサブ基板において割込が受け付けられるまでの遅れ時間に相当する。
【0628】
次いで、CPU56は、払出制御信号用割込信号をオンする際に確認した制御コマンド送出要求フラグに対応したポート出力内容記憶領域(ここでは出力ポート1出力内容記憶領域)のデータを、対応する出力ポート(ここでは出力ポート1)に出力する。
【0629】
なお、メイン処理ではポート出力内容記憶領域ではなくバックアップRAMにおける他の領域にコマンドデータを書き込み、実際にコマンドデータが出力ポートに出力されるときに、ポート出力内容記憶領域にコマンドデータを書き込むようにしてもよい。この場合には、出力ポートにコマンドデータを出力するときに、ポート出力内容記憶領域に、出力ポートに出力したコマンドデータを設定するようにすればよい。また、なお、コマンドデータを出力する前にディレイ時間をおいてもよい。
【0630】
次に、CPU56は、図86におけるd区間の時間に相当する時間だけ待ってから、出力ポート0の、コマンドデータを出力した出力ポート(ここでは出力ポート1)に対応した出力ポート0のSTB信号のビット(ここではビット4:払出制御信号用STB信号)に「1」を出力する。なお、出力ポート0の出力状態を出力ポート0出力内容記憶領域にコピーしておく。このタイミングは、図86におけるe区間の開始時に相当する。なお、d区間の時間に相当する時間待つことなく上記の処理を行うようにしてもよい。また、サブ基板では、d区間開始のタイミングから、やや遅れて受信処理が開始される。その遅れは、サブ基板におけるマイクロコンピュータの処理遅れ(ソフトウェアがSTB信号のオンを検知するまでの遅れ)である。
【0631】
そして、CPU56は、図86におけるe区間の時間に相当する時間だけ待ってから、出力ポート0の、コマンドデータを出力した出力ポート(ここでは出力ポート1)に対応した出力ポート0のSTB信号のビット(ビット4:払出制御信号用STB信号)に「0」を出力する。なお、出力ポート0の出力状態を出力ポート0出力内容記憶領域にコピーしておく。このタイミングは、図86におけるe区間の終了時に相当する。
【0632】
以上のようにして、図86に示されたようなタイミングで、制御コマンドがサブ基板に送出される。なお、タイマ割込がかかったときに、複数種類の制御コマンド送出要求フラグがオンしていたときには、例えば、あらかじめ決められている優先順位に従って、いずれかの制御コマンド送出要求フラグについて上記のポート出力処理が実行される。
【0633】
このように、この実施の形態では、制御コマンドのコマンドデータを出力するときに、ポート出力内容記憶領域のデータを出力ポートに出力する。そして、ポート出力内容記憶領域のデータは、電力供給が停止しても所定期間はその内容が保存されるバックアップRAMに設定される。上述したように、メイン処理ではポート出力内容記憶領域ではなくバックアップRAMにおける他の領域にコマンドデータを書き込み、実際にコマンドデータが出力ポートに出力されるときに、ポート出力内容記憶領域にコマンドデータを書き込むように構成した場合には、出力ポートにコマンドデータを出力するときに、ポート出力内容記憶領域に、出力ポートに出力したコマンドデータが設定される。
【0634】
次に、この実施の形態における払出制御用CPU371の処理について説明する。払出制御手段も、上述した各実施の形態の場合と同様にメイン処理およびタイマ割込処理を行うことができるが、メイン処理における電力供給開始時に復旧条件が成立していることを確認したら実行される払出状態復旧処理、コマンド受信割込処理、および電力供給停止時処理は、各実施の形態の場合とは異なる。なお、この実施の形態では、入出力ポートの信号割り当ては、実施の形態2の場合と同じである。
【0635】
図87は、この実施の形態におけるコマンド受信割込処理を示すフローチャートである。コマンド受信割込処理において、払出制御用CPU371は、レジスタの退避処理を行った後(ステップS850)、STB信号待ちカウンタをセットする(ステップS897)。そして、入力ポートB(図45参照:ただし、この例では、ビット7は払出制御用STB信号に割り当てられている)のデータを入力し(ステップS861)、そのビット7(払出制御用STB信号)を確認する(ステップS862)。払出制御用STB信号がオン状態であれば、ステップS863に移行する。
【0636】
払出制御用STB信号がオン状態でなければ、STB信号待ちカウンタのカウント値を−1し(ステップS898)、カウント値が0になっているか否か確認する(ステップS899)。0になっていなければ、ステップS861に戻る。0になっていたら、ステップS859に移行する。
【0637】
ステップS863において、払出制御用CPU371は、入力ポートA(図45参照)のデータを入力する。そして、入力したデータを、コマンド受信個数カウンタが示す受信コマンドバッファに格納し(ステップS864)、コマンド受信個数カウンタの値を更新する(ステップS865)。
【0638】
その後、レジスタ復旧処理を行い(ステップS859)、割込許可状態にして(ステップS860)、処理を終了する。
【0639】
コマンド受信割込処理は、主基板31からの割込信号がオン状態になったことに起因して起動される。そして、コマンド割込処理において、STB信号がオン状態になったことを検出したらコマンドデータの取込が実行される(ステップS863)。また、所定期間(STB信号待ちカウンタの初期値に対応した時間)内にSTB信号がオン状態にならなかったら処理を終了する。
【0640】
図88は、この実施の形態における電源基板910からの電源断信号に応じて実行されるマスク不能割込処理(NMI処理:電力供給停止時処理)の処理例を示すフローチャートである。
【0641】
電力供給停止時処理において、払出制御用CPU371は、上述したステップS801〜ステップS807の処理(図45参照)を実行する。なお、ステップS801〜S807の処理は、電源監視手段の検出信号に応じて制御状態を復旧させるために必要なデータを変動データ記憶手段に保存させるためのデータ退避処理に相当する。また、出力ポートクリア処理を行う(ステップS871)。
【0642】
次に、ポートチェック回数としてあらかじめ決められた値をセットし(ステップS607)、賞球カウントスイッチ301Aのチェック処理と払出制御コマンド受信処理とを所定期間実行するループ処理に移行する。払出制御用CPU371は、まず、入力ポートB(図45参照:ただし、この例では、ビット7は払出制御用STB信号に割り当てられている)のデータを入力する(ステップS608)。そして、スイッチチェック処理を行い(ステップS612)、賞球カウントスイッチ301Aがオンしたことを検出したら(ステップS613)、賞球カウント値を+1する(ステップS872)。また、球貸しカウントスイッチ301Bがオンしたことを検出したら(ステップS615)、球貸しカウント値を+1する(ステップS873)。賞球カウント値および球貸しカウント値はバックアップRAMに形成され、払出状態復旧処理において、賞球カウント値のカウント数が総合個数記憶に反映され、球貸しカウント値のカウント数が貸し球個数記憶に反映される。
【0643】
そして、ポートチェック回数を減算し(ステップS610)、その値が0になっていれば、上述した図85に示されたステップS808に移行する。0になっていなければ、ソフトウェアタイマによって所定時間のディレイ時間(スイッチチェック間隔をとるための遅延時間に相当)を設定する(ステップS874)。次いで、ウエイト用コードにもとづく処理を実行するとともに(ステップS875)、ソフトウェアタイマを減算し(ステップS876)、ディレイ時間が経過していなければステップS875に戻る(ステップS877のN)。ディレイ時間が経過していればステップS608に戻る(ステップS877のY)。ウエイト用コードにもとづく処理は、遅延時間が経過するまでに時間を稼ぐための処理であり、他の制御内容に影響を与えない処理である。
【0644】
図89は、この実施の形態における払出状態復旧処理の一例を示すフローチャートである。払出状態復旧処理において、払出制御用CPU371は、まず、スタックポインタの復旧処理を行う(ステップS881)。スタックポインタの値は、後述する電力供給停止時処理において、所定のRAMエリア(電源バックアップされている)に退避している。よって、ステップS881では、そのRAMエリアの値をスタックポインタに設定することによって復旧させる。なお、復旧されたスタックポインタが指す領域(すなわちスタック領域)には、電力供給が停止したときのレジスタ値やプログラムカウンタ(PC)の値が退避している。
【0645】
この実施の形態では、主基板31のCPU56は、電力供給開始時に復旧条件が成立していたら実行される遊技状態復旧処理において、保存されていたポート出力内容記憶領域の内容を出力ポートに出力する処理を行う。従って、この実施の形態では、払出制御用CPU371は、そのような状況を考慮して、主基板31からポート出力内容記憶領域の内容が出力されたことを確認してから、電力供給停止直前に実行されていたアドレスに復帰する制御を行う。
【0646】
払出制御用CPU371は、まず、処理ループ回数をセットする(ステップS882)。そして、入力ポートA(図45参照)のデータすなわちコマンドデータを入力する(ステップS883)。そして、入力したデータが前回入力したデータと同じであるか否か確認する(ステップS884)。同じであれば、処理ループ回数を−1する(ステップS885)。そして、処理ループ回数が0になっていなければステップS883に戻る。処理ループ回数が0になっていればステップS887に移行する。また、ステップS884において入力したデータが前回入力したデータと同じであることを確認した場合にもステップS887に移行する。
【0647】
ステップS887において、払出制御用CPU371は、CTCやPIOなどの内蔵デバイスの初期設定を行い、また、スタック領域から各種レジスタの退避値を読み出して、各種レジスタに設定する。すなわち、レジスタ復元処理を行う。ここで、RAMアクセス許可状態に設定する処理も行う。さらに、バックアップフラグをクリアする(ステップS888)。次いで、電力供給が停止したときに実行された電力供給停止時処理において保存された賞球カウント値を総合個数記憶に反映する(ステップS889)。例えば、総合個数記憶の内容から賞球カウント値を減算する。また、電力供給が停止したときに実行された電力供給停止時処理において保存された貸出カウント値を貸し球個数記憶に反映する(ステップS890)。例えば、貸し球個数記憶の内容から貸出カウント値を減算する。また、RAM領域における保護領域以外の領域の内容をクリアする(ステップS891)。そして、パリティフラグがオンしていない場合には割込許可状態にする(ステップS892,S893)。最後に、内部状態を払出禁止状態に設定して(ステップS894)、AFレジスタ(アキュミュレータとフラグのレジスタ)をスタック領域から復元する(ステップS895)。
【0648】
そして、所定時間(処理ループ回数の初期値に応じた時間)内に入力ポートの状態が変化しなかった場合には、すなわち、ステップS882〜S886の処理において遊技制御手段からのコマンドデータの出力が確認されなかったら、プログラムカウンタ(PC)を初期化して(ステップS896)RET命令が実行される。従って、この実施の形態では、払出状態復旧処理を実行した後、初期状態から払出制御が開始される。
【0649】
以上のような処理によって、電力供給が開始したときに、復旧条件が成立していた場合に実行される払出状態復旧処理において、主基板31からのコマンドデータが入力される入力ポートの状態が変化したことを確認してから、電力供給停止時にNMIが発生したアドレスに復帰する。従って、そのアドレスがコマンド受信割込処理におけるアドレスであるような場合に、保存されていたポート出力内容記憶領域の内容を出力ポートに出力する処理を主基板31のCPU56が行ったことを確認してからコマンド受信割込処理を再開することができる。従って、払出制御コマンドの受信を確実に行うことができ、払出制御コマンドが消失してしまうことを確実に防止することができる。なお、コマンド受信割込処理が完了したら、初期状態から払出制御が開始される。
【0650】
実施の形態2とは異なり、この実施の形態では、電力供給停止時処理において、払出制御コマンドの受信を継続する処理は実行されない。しかし、払出状態状態復旧処理において、保存されていたポート出力内容記憶領域の内容を出力ポートに出力する処理を主基板31のCPU56が行ったことを確認してからコマンド受信割込処理を再開する。すなわち、電力供給が開始された場合に、遊技制御手段によるコマンドデータの出力ポートへの出力状態を監視し、出力状態に応じてコマンドデータを取り込む処理を再開可能な状態にする。従って、電力供給停止の直前に払出制御コマンドの受信が開始されたにも関わらず受信が完了しなかった場合でも、電力供給が復旧したときに、確実にコマンド受信処理を完了させることができる。
【0651】
なお、この実施の形態では、主基板31のCPU56がポート出力内容記憶領域の内容を出力ポートに出力する処理を行ったことを確認するための所定時間内に、CPU56がポート出力内容記憶領域の内容を出力ポートに出力する処理を行ったことを確認できなかった場合には、初期状態に戻るようにしたが、そのような場合には、電力供給が停止したときにコマンド受信処理は行われていなかったはずであり、コマンド受信処理に復旧することはない。すなわち、CPU56がポート出力内容記憶領域の内容を出力ポートに出力する処理を行ったことを確認できなかった場合には、初期状態に戻っても問題はない。また、初期状態に戻る際にRAMの保護領域の内容は保存されているので、遊技者に不利益が与えられることはない。
【0652】
また、払出状態復旧処理において保護領域以外の領域がクリアされるので、不正確なデータによって誤った制御を行ってしまうことが防止される。この実施の形態では、払出状態復旧処理において保護領域以外の領域がクリアされるが、電力供給が開始されたときにコマンド受信処理に復旧するような場合には、コマンド受信処理におけるコマンドデータの取り込みを実行してから保護領域以外の領域をクリアするようにしてもよい。
【0653】
以上に説明したような第3の実施の形態の構成とした場合であっても、第1の実施の形態と同様の効果を得ることができる。例えば、具体的には、電力供給停止時処理(図88、図85参照)にて、検出維持期間(ステップS607にてポートチェック回数が設定されてから、設定された回数のポートチェックが終了してステップS611にて「Y」となるまでの期間)が経過するまでの間は、コンデンサ923に充電された電力を用いて、電源基板910が、賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bを駆動可能な電力を供給するとともに、ソレノイド310が振分部材311の状態を保持するための駆動電力を供給し、払出制御手段(払出制御用CPU371)が賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bからの検出信号の入力処理(ステップS607〜ステップS611)を行う構成としたので、電力供給停止時処理にて、払い出された景品遊技媒体(入賞領域への入賞にもとづいて景品として払い出される遊技媒体)や貸出遊技媒体(遊技者からの貸出要求に応じて貸し出される遊技媒体)を確実に検出することができるようになる。すなわち、上述した第3の実施の形態の構成をなす遊技機によれば、電力供給停止時処理にて払い出された遊技媒体の検出を確実に実行することができるので、遊技媒体の未払出数を正確に把握することができるようになる。
【0654】
なお、上述した第3の実施の形態においても、電力供給停止時処理において、払出制御手段が、賞球カウントスイッチ301Aあるいは球貸しカウントスイッチ301Bのうちいずれか一方のスイッチの状態を確認する構成としてもよい。
【0655】
なお、上述した第2の実施の形態および第3の実施の形態では、主として払出制御手段の処理について説明したが、例えば電力供給停止時処理における賞球カウントスイッチ301Aからの検出状態の確認などの処理は、遊技制御手段にて同様に実行される。
【0656】
なお、上記の各実施の形態にて説明したように、待機状態復帰手段(電力供給停止時処理の後の待機状態にて、遊技機への電力供給が停止しない場合に当該待機状態から復帰させ復旧処理を実行可能(必ずしも復旧処理を実行させる必要はなく、電気部品制御手段の状態をリセットして待機状態から復帰させるようにすればよいことを意味する)にする手段。)は、複数の制御手段(CPU56、払出制御用CPU371)を復帰させる単一の手段による構成(復帰信号を出力可能な電源基板910に備えられたカウンタ971による構成)や、遊技制御手段および払出制御手段それぞれに設けられる構成(ウォッチドッグタイマにタイムアップにもとづきシステムリセットする機能を有するCPU56や払出制御用CPU371による構成)とした。しかし、上記のような種類の異なる待機状態復帰手段を複数備える構成としてもよい。この場合、複数の待機状態復帰手段によって機能が重複してしまうため、不具合が生じてしまう可能性があるので、種類の異なる複数の待機状態復帰手段のうちいずれか一方を優先させて動作させ、他方は補助的に動作させる構成とすることが望ましい。これにより一方の待機状態復帰手段が何らかのトラブルにより機能が停止した場合であっても、制御手段(CPU56、払出制御用CPU371)は確実に待機状態から復旧させることが可能となる。
【0657】
また、上述した各実施の形態では、待機状態として無限ループを用いたが、これに限らず制御プログラムの電力供給停止時処理の最後にHALT(ホールト)指令等を用いることで制御手段(CPU56、払出制御用CPU371)の制御状態を待機状態(割込みを受付可能な待機状態)としてもよい。この場合には、割込端子への信号入力が有効になり、割込端子への信号入力トリガに制御状態を復帰させることが可能になり、簡単な構成で待機状態復帰手段を構成することができる。
【0658】
また、上述した各実施の形態において、RAMにバックアップ電源を供給する手段は、制御手段(CPU56、払出制御用CPU371)毎に設けられている構成としてもよい。すなわち、バックアップRAM領域を含むRAM毎に、バックアップ電源を供給する手段が設けられていてもよい。また、そのような手段の数や搭載位置(制御基板上、あるいは電源基板上に搭載するか否か)は、どのように構成されていてもよい。
【0659】
また、上述した各実施の形態では、賞球カウントスイッチ301Aに対する電源基板910からの電力供給は、主基板31を介してなされるが、払出制御基板37を介してなされるようにしてもよい。また、電源基板910から直接電力供給される構成とされていてもよい。
【0660】
また、上述した各実施の形態では、球貸しカウントスイッチ301Bに対する電源基板910からの電力供給は、払出制御基板37を介してなされるが、主基板31を介してなされるようにしてもよい(例えば、後述するように遊技制御手段に球貸しカウントスイッチ301Bの検出信号が入力される場合)。また、電源基板910から直接電力供給される構成とされていてもよい。
【0661】
また、上述した各実施の形態において、補助電力供給手段は、電源監視手段からの検出信号が出力された後、少なくとも賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bへの電源を供給するものであれば、賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301B以外のもの(入賞検出スイッチなど)への電力をも供給するものであってもよく、賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bのみに電力を供給するものであってもよい。賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bのみに電力を供給するものであれば、補助電力供給手段の消費電力(充電容量)を小さくすることができる。
【0662】
また、上述した各実施の形態において、補助電力供給手段は、各電気部品制御手段(CPU56、払出制御用CPU371)毎に設けられていても良い。
【0663】
また、上述した各実施の形態では、球貸しカウントスイッチ301Bの検出信号は、払出制御手段(払出制御基板37が備える払出制御用CPU371)にのみ入力される構成としていたが、遊技制御手段(主基板31が備えるCPU56)に入力される構成としてもよく、払出制御手段および遊技制御手段の双方に入力される構成としてもよい。そして、遊技制御手段が、遊技制御処理(具体的には上述したステップS21のスイッチ処理)および電力供給停止時処理にて、球貸しカウントスイッチ301Bの検出信号の入力処理を実行するように構成されていてもよい。この場合、遊技制御手段のRAM55の電源バックアップ領域に、貸し球の未払出数を示すデータを格納するバッファ(貸し球数格納バッファ)を設けるようにし、電力供給停止時処理(図22〜図24)にて、上述したステップS467〜ステップS486に示した賞球カウントスイッチ301Aの検出信号の入力処理と同様の処理を、球貸しカウントスイッチ301Bの検出信号の入力処理として実行するようにすればよい。また、遊技制御処理(例えばステップS21に示したスイッチ処理)において、上述した賞球個数減算処理(図42参照)と同様の処理を、貸し球個数の減算処理として実行するようにすればよい。また、上記の構成とする場合には、遊技制御手段が、上述した払出制御手段におけるプリペイドカードユニット50との信号のやりとりに関する処理を実行する機能を備えるようにして、払出制御コマンドを用いて貸出要求があった貸し球の数に関する情報を払出制御手段に向けて送信する処理を行うようにすればよい。なお、電力供給停止時処理(図22〜図24)にて球貸しカウントスイッチ301Bの検出信号の入力処理を実行する場合には、ステップS466のあとステップS487の前(例えばステップS487の直前)に実行するようにすればよい。
上記のように構成すれば、遊技制御手段にて貸し球の個数管理を実行することができるようになる。特に球貸しカウントスイッチ301Bの検出信号を払出制御手段および遊技制御手段の双方に入力する構成とした場合には、遊技制御手段と払出制御手段双方で貸し球の個数管理を実行することができるようになり、貸し球の個数管理をより正確に行うことが可能となる。
なお、上記のように構成する場合には、遊技機に対する電力供給停止時において、少なくとも払出確認期間以上の期間は+12V電源電圧がスイッチ駆動可能な範囲に維持され、球貸しカウントスイッチ301B(あるいは賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301B)が動作可能となるように、コンデンサ923の容量が決定されることは勿論である。
【0664】
また、上述した各実施の形態において、電力供給停止時処理でのスイッチ検出処理(例えば図23、図50に示す処理)の処理モジュールと、通常の制御におけるスイッチ検出処理(図28の処理や図29の処理を含む図21のステップS21の処理、図46のステップS752の処理)の処理モジュールとを共通の処理モジュールとする(すなわち、共通のサブルーチンを用いるようにする)ことができるが、この場合には、入力処理(上記のスイッチ検出処理)にてスタックポインタの内容が書き換えられる。従って、共通モジュールを用いる場合には、遊技制御手段においては、ステップS458の処理をステップS487の処理の前に行うようにし、払出制御手段においては、ステップS808の処理をステップS835の処理の前に行うようにすればよい。
なお、電力供給停止時処理でのスイッチ検出処理の処理モジュールと、通常の制御におけるスイッチ検出処理の処理モジュールとを共通の処理モジュールとすることは、上記のように球貸しカウントスイッチ301Bの検出信号を遊技制御手段に入力する構成とした場合には、遊技制御手段が実行する球貸しカウントスイッチ301Bのスイッチ検出処理(検出信号の入力処理)に適用することができる。
【0665】
また、上述した各実施の形態では、記録媒体処理装置(プリペイドカードユニット50)にて使用される記録媒体が磁気カード(プリペイドカード)であることを想定して説明したが、磁気カードに限られず、非接触型あるいは接触型のICカードであっても良い。また、記録媒体処理装置が識別符号にもとづいて記録情報を特定できる構成とされている場合には、記録媒体は、記録情報を特定可能な識別符号などの情報を少なくとも記録媒体処理装置が読み取り可能に記録できるようなものであってもよい。さらに、記録媒体は、例えばバーコードなどの所定の情報記録シンボル等が読み取り可能にプリントされたものであってもよい。また、記録媒体の形状は、カード状のものに限られず、例えば円盤形状や球状、あるいはチップ形状など、どのような形状とされていてもよい。
【0666】
また、上述した実施の形態では、電源監視手段(例えば電源監視用IC902)は、電源電圧が所定の値(例えば22V)となった場合に電源断信号を出力する構成としているが、例えば、交流電源(例えばAC24V)に関連する交流波をデジタル変換したデジタル信号を監視し、そのデジタル信号が所定期間途切れた場合に電源断信号を出力する構成としてもよい。
【0667】
また、上述した実施の形態では、電源監視手段(例えば電源監視用IC902)が、電源電圧が所定の値(例えば22V)となったことを検出した場合に電源断時処理が実行され、さらに電源電圧が所定の値(例えば9V)となったことを第2の電源監視手段(例えば電源監視用IC902)が検出した場合にシステムリセットされる構成としていたが、電源断時処理を開始したあと所定期間の経過後に、自動的にシステムリセットされるようにしてもよい。このように構成すれば、電源電圧が所定の値(例えば22V)となったことが電源監視手段(例えば電源監視用IC902)によって検出された場合には、その後の第2の電源監視手段(例えば電源監視用IC902)による検出がなされなかった場合であっても、確実にシステムリセットすることができるようになる。
【0668】
上記の各実施の形態のパチンコ遊技機は、主として、始動入賞にもとづいて可変表示部9に可変表示される特別図柄の停止図柄が所定の図柄の組み合わせになると所定の遊技価値が遊技者に付与可能になる第1種パチンコ遊技機であったが、始動入賞にもとづいて開放する電動役物の所定領域への入賞があると所定の遊技価値が遊技者に付与可能になる第2種パチンコ遊技機や、始動入賞にもとづいて可変表示される図柄の停止図柄が所定の図柄の組み合わせになると開放する所定の電動役物への入賞があると所定の権利が発生または継続する第3種パチンコ遊技機であっても、本発明を適用できる。
【0669】
さらに、遊技媒体が遊技球であるパチンコ遊技機に限られず、スロット機等においても、遊技媒体の払い出しを行う電気部品が備えられている場合には本発明を適用することができる。
【0670】
【発明の効果】
以上のように、請求項1記載の発明によれば、電気部品制御手段が、電源監視手段からの検出信号に応じて制御状態を復旧させるために必要なデータを変動データ記憶手段に保存するための電力供給停止時処理を実行し、電力供給が復帰し所定の復旧条件が成立したときに変動データ記憶手段に保存されていた記憶内容にもとづいて制御状態を電力供給が停止する前の状態に復旧させる復旧処理を実行し、電力供給が復帰し所定の復旧条件が不成立であったときには、変動データ記憶手段に保持されていた記憶内容を初期化する初期化処理を実行し、電力供給停止時処理にて、補助電力供給手段から電力が供給される景品遊技媒体検出手段からの検出信号の入力処理を行い、当該電力供給停止時処理が終了した後待機状態に移行し、遊技機への電力供給が復帰し、少なくとも操作手段から操作信号が出力されなかったときに所定の復旧条件が成立したと判定し、電源監視手段による検出信号が出力されたにもかかわらず、遊技機への電力供給が停止しないときに、電気部品制御手段の状態を当該待機状態から復帰させ復旧処理を実行する待機状態復帰手段を有し、電力供給停止時処理にて景品遊技媒体検出手段からの検出信号の入力処理の結果を示すデータを変動データ記憶手段に保存し、復旧処理にて入力処理の結果を示すデータにもとづいて未払出数データを更新する処理を実行することを特徴とするので、電力供給停止時処理にて、払い出された景品遊技媒体を確実に検出することが可能となる。また、復旧処理を行う必要がない場合には復旧処理が実行されないようにすることができ、遊技機運用上の利便性を向上させることが可能となるという効果を得ることができるとともに、待機状態復帰手段によって電気部品制御手段を制御実行状態に復帰させることが可能になり、その結果、ごく短時間で復旧する電源の瞬断等が生じても制御に支障を来すことがないという効果を得ることができる。また、電力供給停止時処理での入力処理を迅速に行うことができる。
【0671】
請求項2記載の発明では、所定の復旧条件は複数あり、電気部品制御手段が、電力供給が復帰したときには、複数の復旧条件がすべて成立したときに、変動データ記憶手段に保存されていた記憶内容にもとづいて制御状態を復旧させる復旧処理を実行し、複数の復旧条件のうち少なくとも1つの条件が不成立であったときに変動データ記憶手段の記憶内容を初期化する初期化処理を実行するように構成されているので、不確実な状態から制御状態が復旧してしまうことを防止することができる。
【0672】
請求項3記載の発明では、電気部品制御手段が、複数の復旧条件が成立しているか否かを確認する際に、操作手段から操作信号が出力されているか否かの確認を優先的に実行し、操作手段から操作信号が出力されていることを確認したときには、他の復旧条件が成立しているか否かの確認を行うことなく初期化処理を実行するように構成されているので、無駄な確認処理を行うことがなく、早期に初期化処理を実行することが可能となる。
【0674】
請求項4記載の発明では、電気部品制御手段が、電力供給停止時処理にて、出力ポートの出力状態を初期化する出力ポートクリア処理を実行した後、景品遊技媒体検出手段からの検出信号の入力処理を行う構成とされているので、景品遊技媒体検出手段からの検出信号の入力処理に関連しない電気部品により電力が消費されてしまうことを回避することができる。
【0676】
請求項5記載の発明では、検出維持期間は、払出手段により払い出された景品遊技媒体が景品遊技媒体検出手段の検出位置に到達するまでの期間以上の期間に設定されるように構成されているので、払い出された景品遊技媒体を確実に検出することができる。
【0678】
請求項6記載の発明では、電気部品制御手段の動作状態を監視し、所定期間動作が停止しているときに、制御状態を初期化するための動作状態監視手段を備え、動作状態監視手段により、待機状態復帰手段が構成されているので、待機状態から確実に復帰することができる。
【0679】
請求項7記載の発明では、待機状態復帰手段が、電源監視手段から検出信号が出力されてから、所定期間経過しても遊技機への電力供給が停止しないときに電気部品制御手段の制御状態を待機状態から復帰させるように構成されているので、待機状態から確実に復帰することができる。
【0680】
請求項8記載の発明では、待機状態復帰手段が電源基板に搭載される構成とされているので、各制御基板毎に待機状態復帰手段を設ける必要がない。
【0681】
請求項9記載の発明では、電気部品制御手段が搭載された電気部品制御基板を複数備え、操作手段は電気部品制御基板とは別の箇所に設けられている構成とされているので、遊技店員等が操作しやすい任意の位置に操作手段を設置することができる。
【0682】
請求項10記載の発明では、別の箇所とは遊技機へ供給される電源から各電気部品制御基板で用いられる電圧の電源を作成する電源基板であり、電源基板には操作手段と、遊技機への電源の供給または遮断を選択するための電力供給操作手段とが搭載される構成とされているので、操作手段と電力供給操作手段を近くに配することができるようになり、操作手段の操作がより容易となる。
【0683】
請求項11記載の発明では、報知部品制御手段が変動データ記憶手段に保持されていた記憶内容を初期化する処理が実行されていることを報知部品を用いて報知する処理を行うように構成されているので、電気部品制御手段に変動データ記憶手段の記憶内容を初期化する処理を実行させる不正行為が行われても、そのような不正行為を容易に発見することができる。
【0684】
請求項12記載の発明では、景品遊技媒体検出手段の検出信号は、遊技制御手段と払出制御手段の双方に入力されるように構成されているので、景品遊技媒体の払い出し状況を複数の制御手段で管理することができ、より正確な景品遊技媒体の管理が可能となる。
【0685】
請求項13記載の発明では、電源監視手段が景品遊技媒体検出手段に供給される電源の電圧値よりも高い電圧値の電源を監視するように構成されているので、電源監視手段による検出信号の出力前に景品遊技媒体検出手段の機能が停止してしまうことを防止することができる。
【図面の簡単な説明】
【図1】パチンコ遊技機を正面からみた正面図である。
【図2】ガラス扉枠を取り外した状態での遊技盤の前面を示す正面図である。
【図3】遊技機を裏面から見た背面図である。
【図4】各種部材が取り付けられた機構板を遊技機背面側から見た背面図である。
【図5】球払出装置の構成例を示す分解斜視図である。
【図6】遊技盤に設置されている電源基板の露出部分を示す正面図である。
【図7】遊技制御基板(主基板)の回路構成例を示すブロック図である。
【図8】払出制御基板の回路構成例を示すブロック図である。
【図9】電源基板の回路構成例を示すブロック図である。
【図10】クリアスイッチの他の構成例を示す説明図である。
【図11】リセット管理回路の構成例を示すブロック図である。
【図12】CPU周りの一構成例を示すブロック図である。
【図13】リセット信号と電源断信号の様子を示すタイミング図である。
【図14】タイマ手段の一例であるカウンタの作用を説明するためのタイミング図である。
【図15】出力ポートのビット割り当ての一例を示す説明図である。
【図16】出力ポートのビット割り当ての一例を示す説明図である。
【図17】入力ポートのビット割り当ての一例を示す説明図である。
【図18】主基板におけるCPUが実行するメイン処理を示すフローチャートである。
【図19】バックアップフラグと遊技状態復旧処理を実行するか否かとの関係の一例を示す説明図である。
【図20】遊技状態復旧処理を示すフローチャートである。
【図21】2msタイマ割込処理を示すフローチャートである。
【図22】マスク不能割込処理(電力供給停止時処理)を示すフローチャートである。
【図23】マスク不能割込処理(電力供給停止時処理)を示すフローチャートである。
【図24】マスク不能割込処理(電力供給停止時処理)を示すフローチャートである。
【図25】遊技機への電力供給停止時の電源低下やNMI信号の様子を示すタイミング図である。
【図26】検出信号の入力処理が実行される様子の一例を示すタイミング図である。
【図27】RAMにおけるスイッチタイマの形成例を示す説明図である。
【図28】スイッチ処理の一例を示すフローチャートである。
【図29】スイッチチェック処理の一例を示すフローチャートである。
【図30】賞球処理の一例を示すフローチャートである。
【図31】賞球処理の一例を示すフローチャートである。
【図32】賞球処理の一例を示すフローチャートである。
【図33】スイッチオンチェック処理を示すフローチャートである。
【図34】入力判定値テーブルの構成例を示す説明図である。
【図35】コマンド送信テーブル等の一構成例を示す説明図である。
【図36】制御コマンドのコマンド形態の一例を示す説明図である。
【図37】制御コマンドを構成する8ビットの制御信号とINT信号との関係を示すタイミング図である。
【図38】払出制御コマンドの内容の一例を示す説明図である。
【図39】コマンドセット処理の処理例を示すフローチャートである。
【図40】コマンド送信処理ルーチンを示すフローチャートである。
【図41】コマンド送信に関連する処理とコマンド受信処理の処理タイミングを示すタイミングチャートである。
【図42】賞球個数減算処理の一例を示すフローチャートである。
【図43】払出制御用CPU周りの一構成例を示すブロック図である。
【図44】出力ポートのビット割り当ての一例を示す説明図である。
【図45】入力ポートのビット割り当ての一例を示す説明図である。
【図46】払出制御基板におけるCPUが実行するメイン処理を示すフローチャートである。
【図47】2msタイマ割込処理を示すフローチャートである。
【図48】払出状態復旧処理を示すフローチャートである。
【図49】マスク不能割込処理(電力供給停止時処理)を示すフローチャートである。
【図50】マスク不能割込処理(電力供給停止時処理)を示すフローチャートである。
【図51】マスク不能割込処理(電力供給停止時処理)を示すフローチャートである。
【図52】払出制御手段におけるRAMの一構成例を示す説明図である。
【図53】受信コマンドバッファの一構成例を示す説明図である。
【図54】払出制御用CPUのコマンド受信処理の例を示すフローチャートである。
【図55】コマンド受信状態の例を示す説明図である。
【図56】スイッチ処理の例を示すフローチャートである。
【図57】払出停止状態設定処理の例を示すフローチャートである。
【図58】コマンド解析実行処理の例を示すフローチャートである。
【図59】プリペイドカードユニット制御処理の例を示すフローチャートである。
【図60】球貸し制御処理の例を示すフローチャートである。
【図61】球貸し制御処理の例を示すフローチャートである。
【図62】賞球制御処理の例を示すフローチャートである。
【図63】賞球制御処理の例を示すフローチャートである。
【図64】電力供給が開始したあとに払出処理が実行されるタイミングの例を示すタイミングチャートである。
【図65】マスク不能割込処理(電力供給停止時処理)の他の例を示すフローチャートである。
【図66】マスク不能割込処理(電力供給停止時処理)の他の例を示すフローチャートである。
【図67】マスク不能割込処理(電力供給停止時処理)の他の例を示すフローチャートである。
【図68】遊技制御手段における電力供給停止時処理の他の例を示すフローチャートである。
【図69】払出制御手段における電力供給停止時処理の他の例を示すフローチャートである。
【図70】遊技制御手段の他の構成例の一部を示すブロック図である。
【図71】主基板におけるCPUが実行する2msタイマ割込処理の他の例を示すフローチャートである。
【図72】ソフトウェアタイマおよびウォッチドッグタイマ回路の作用を説明するためのタイミング図である。
【図73】払出制御手段の他の構成例の一部を示すブロック図である。
【図74】払出制御基板におけるCPUが実行するメイン処理の他の例を示すフローチャートである。
【図75】リセット信号と電源断信号の他の様子を示すタイミング図である。
【図76】リセット信号と電源断信号のさらに他の様子を示すタイミング図である。
【図77】初期設定コマンドが送信されない場合のコマンド受信状態の例を示す説明図である。
【図78】コマンド受信状態の他の例を示す説明図である。
【図79】第2の実施の形態において主基板からサブ基板に送信される制御コマンドの送出形態を示すタイミング図である。
【図80】コマンド制御処理を示すフローチャートである。
【図81】払出制御基板におけるCPUが実行するメイン処理を示すフローチャートである。
【図82】タイマ割込処理を示すフローチャートである。
【図83】コマンド受信処理を示すフローチャートである。
【図84】第2の実施の形態におけるマスク不能割込処理(電力供給停止時処理)の例を示すフローチャートである。
【図85】第2の実施の形態におけるマスク不能割込処理(電力供給停止時処理)の例を示すフローチャートである。
【図86】第3の実施の形態において主基板からサブ基板に送信される制御コマンドの送出形態を示すタイミング図である。
【図87】コマンド受信処理を示すフローチャートである。
【図88】第3の実施の形態におけるマスク不能割込処理(電力供給停止時処理)の例を示すフローチャートである。
【図89】第3の実施の形態における払出状態復旧処理の例を示すフローチャートである。
【符号の説明】
1 パチンコ遊技機
31 遊技制御基板(主基板)
37 払出制御基板
56 CPU
310 振分ソレノイド
371 払出制御用CPU
910 電源基板
902 電源監視用IC(電源監視手段)
921 クリアスイッチ(操作主手段)
971 カウンタ
Claims (13)
- 遊技媒体を用いて所定の遊技を行うことが可能であり、遊技領域に設けられた入賞領域に遊技媒体が入賞したことにもとづいて景品としての景品遊技媒体を払い出す遊技機であって、
前記景品遊技媒体の払い出しを行う払出手段と、
前記払出手段により払い出された景品遊技媒体を検出する景品遊技媒体検出手段と、
遊技機への電力供給が停止しても所定期間は記憶内容を保持することが可能であり、前記入賞領域に遊技媒体が入賞したことにもとづいて払い出すべき景品遊技媒体数のうち未だ払い出されていない未払出数を特定可能な未払出数データを記憶する変動データ記憶手段と、
遊技機に設けられた電気部品を制御し、前記景品遊技媒体検出手段からの検出信号の入力処理と、前記入力処理の結果を示すデータにもとづいて前記未払出数データを更新する処理とを行う電気部品制御手段と、
遊技機で用いられる所定の電源の状態を監視して、遊技機への電力の供給停止にかかわる検出条件が成立したときに検出信号を出力する電源監視手段と、
前記電源監視手段によって前記検出信号が出力された後少なくとも所定の検出維持期間が経過するまでの期間において前記景品遊技媒体検出手段による景品遊技媒体の検出を可能な状態とするために、当該景品遊技媒体検出手段および前記電気部品制御手段に電力を供給可能な補助電力供給手段と、
操作に応じて操作信号を出力することが可能な操作手段と、を備え、
前記電気部品制御手段は、
前記電源監視手段からの検出信号に応じて制御状態を復旧させるために必要なデータを前記変動データ記憶手段に保存するための電力供給停止時処理を実行し、電力供給が復帰し所定の復旧条件が成立したときに前記変動データ記憶手段に保存されていた記憶内容にもとづいて制御状態を電力供給が停止する前の状態に復旧させる復旧処理を実行し、電力供給が復帰し所定の復旧条件が不成立であったときには、前記変動データ記憶手段に保持されていた記憶内容を初期化する初期化処理を実行し、
前記電力供給停止時処理にて、前記補助電力供給手段から電力が供給される前記景品遊技媒体検出手段からの検出信号の入力処理を行い、当該電力供給停止時処理が終了した後待機状態に移行し、
遊技機への電力供給が復帰し、少なくとも前記操作手段から操作信号が出力されなかったときに前記所定の復旧条件が成立したと判定し、
前記電源監視手段による前記検出信号が出力されたにもかかわらず、遊技機への電力供給が停止しないときに、前記電気部品制御手段の制御状態を前記待機状態から復帰させ前記復旧処理を実行する待機状態復帰手段を有し、
電力供給停止時処理にて景品遊技媒体検出手段からの検出信号の入力処理の結果を示すデータを前記変動データ記憶手段に保存し、前記復旧処理にて前記入力処理の結果を示すデータにもとづいて前記未払出数データを更新する処理を実行する
ことを特徴とする遊技機。 - 所定の復旧条件は複数あり、電気部品制御手段は、電力供給が復帰したときには、前記複数の復旧条件がすべて成立したときに、変動データ記憶手段に保存されていた記憶内容にもとづいて制御状態を復旧させる復旧処理を実行し、前記複数の復旧条件のうち少なくとも1つの条件が不成立であったときに前記変動データ記憶手段の記憶内容を初期化する初期化処理を実行する
請求項1記載の遊技機。 - 電気部品制御手段は、複数の復旧条件が成立しているか否かを確認する際に、操作手段から操作信号が出力されているか否かの確認を優先的に実行し、操作手段から操作信号が出力されていることを確認したときには、他の復旧条件が成立しているか否かの確認を行うことなく初期化処理を実行する
請求項2記載の遊技機。 - 電気部品制御手段からの信号を出力するための出力ポートを含み、
前記電気部品制御手段は、電力供給停止時処理にて、前記出力ポートの出力状態を初期化する出力ポートクリア処理を実行した後、景品遊技媒体検出手段からの検出信号の入力処理を行う
請求項1から請求項3のうちいずれかに記載の遊技機。 - 検出維持期間は、払出手段により払い出された景品遊技媒体が景品遊技媒体検出手段の検出位置に到達するまでの期間以上の期間に設定される
請求項1から請求項4のうちいずれかに記載の遊技機。 - 電気部品制御手段の動作状態を監視し、所定期間動作が停止しているときに、制御状態を初期化するための動作状態監視手段を備え、
前記動作状態監視手段により、待機状態復帰手段が構成される
請求項1から請求項5のうちいずれかに記載の遊技機。 - 待機状態復帰手段は、電源監視手段から検出信号が出力されてから、所定期間経過しても遊技機への電力供給が停止しないときに電気部品制御手段の制御状態を待機状態から復帰させる
請求項1から請求項5のうちいずれかに記載の遊技機。 - 電気部品制御手段が搭載された電気部品制御基板を複数備え、
前記電気部品制御基板とは別個に遊技機へ供給される電源から各電気部品制御基板で用いられる電圧の電源を作成する電源基板を備え、
待機状態復帰手段は前記電源基板に搭載される
請求項1から請求項7のうちいずれかに記載の遊技機。 - 電気部品制御手段が搭載された電気部品制御基板を複数備え、
操作手段は前記電気部品制御基板とは別の箇所に設けられている
請求項1から請求項8のうちいずれかに記載の遊技機。 - 別の箇所とは遊技機へ供給される電源から各電気部品制御基板で用いられる電圧の電源を作成する電源基板であり、
前記電源基板には操作手段と、遊技機への電源の供給または遮断を選択するための電力供給操作手段とが搭載される
請求項9記載の遊技機。 - 電気部品制御手段として、所定の報知を行うための報知部品を制御可能な報知部品制御手段を備え、
前記報知部品制御手段は、変動データ記憶手段に保持されていた記憶内容を初期化する処理が実行されていることを前記報知部品を用いて報知する処理を行う
請求項1から請求項10のうちいずれかに記載の遊技機。 - 電気部品制御手段は、遊技の進行を制御する遊技制御手段と、前記遊技制御手段からのコマンドにもとづいて払出手段の制御を行う払出制御手段とを含み、
景品遊技媒体検出手段の検出信号は、前記遊技制御手段と前記払出制御手段の双方に入力される
請求項1から請求項11のうちいずれかに記載の遊技機。 - 電源監視手段は景品遊技媒体検出手段に供給される電源の電圧値よりも高い電圧値の電源を監視する
請求項1から請求項12のうちいずれかに記載の遊技機。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001318765A JP3621670B2 (ja) | 2001-10-16 | 2001-10-16 | 遊技機 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001318765A JP3621670B2 (ja) | 2001-10-16 | 2001-10-16 | 遊技機 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003117181A JP2003117181A (ja) | 2003-04-22 |
JP3621670B2 true JP3621670B2 (ja) | 2005-02-16 |
JP2003117181A5 JP2003117181A5 (ja) | 2005-06-23 |
Family
ID=19136404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001318765A Expired - Fee Related JP3621670B2 (ja) | 2001-10-16 | 2001-10-16 | 遊技機 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3621670B2 (ja) |
-
2001
- 2001-10-16 JP JP2001318765A patent/JP3621670B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003117181A (ja) | 2003-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3798286B2 (ja) | 遊技機 | |
JP3857131B2 (ja) | 遊技機 | |
JP3737426B2 (ja) | 遊技機 | |
JP3699029B2 (ja) | 遊技機 | |
JP3621672B2 (ja) | 遊技機 | |
JP2003135784A (ja) | 遊技機 | |
JP3699041B2 (ja) | 遊技機 | |
JP3676290B2 (ja) | 遊技機 | |
JP3857133B2 (ja) | 遊技機 | |
JP4383699B2 (ja) | 遊技機 | |
JP3737424B2 (ja) | 遊技機 | |
JP3621670B2 (ja) | 遊技機 | |
JP3621671B2 (ja) | 遊技機 | |
JP3699032B2 (ja) | 遊技機 | |
JP3699033B2 (ja) | 遊技機 | |
JP3708481B2 (ja) | 遊技機 | |
JP3699030B2 (ja) | 遊技機 | |
JP3699031B2 (ja) | 遊技機 | |
JP2003135820A (ja) | 遊技機 | |
JP3746701B2 (ja) | 遊技機 | |
JP3828408B2 (ja) | 遊技機 | |
JP3857132B2 (ja) | 遊技機 | |
JP3640636B2 (ja) | 遊技機 | |
JP3640634B2 (ja) | 遊技機 | |
JP3699042B2 (ja) | 遊技機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040908 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20040908 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040930 |
|
TRDD | Decision of grant or rejection written | ||
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20041105 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041118 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101126 Year of fee payment: 6 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101126 Year of fee payment: 6 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101126 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101126 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111126 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111126 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121126 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121126 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121126 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131126 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |