JP5238951B2 - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP5238951B2
JP5238951B2 JP2007319393A JP2007319393A JP5238951B2 JP 5238951 B2 JP5238951 B2 JP 5238951B2 JP 2007319393 A JP2007319393 A JP 2007319393A JP 2007319393 A JP2007319393 A JP 2007319393A JP 5238951 B2 JP5238951 B2 JP 5238951B2
Authority
JP
Japan
Prior art keywords
initialization
register
value
processing
control board
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.)
Active
Application number
JP2007319393A
Other languages
English (en)
Other versions
JP2009142303A (ja
Inventor
高明 市原
和也 岩田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Daiichi Shokai Co Ltd
Original Assignee
Daiichi Shokai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Daiichi Shokai Co Ltd filed Critical Daiichi Shokai Co Ltd
Priority to JP2007319393A priority Critical patent/JP5238951B2/ja
Publication of JP2009142303A publication Critical patent/JP2009142303A/ja
Application granted granted Critical
Publication of JP5238951B2 publication Critical patent/JP5238951B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Pinball Game Machines (AREA)

Description

本発明は、スロットマシン、パチンコ機など、所定の遊技媒体を用いて遊技を行う遊技機に関する。
スロットマシン、パチンコ機などの遊技機の制御は、全体の進行を制御するための主制御基板、音声出力、ランプ点灯、画像表示などの演出を制御するサブ統合基板などの分散制御によって行われる(特許文献1)。主制御基板、サブ統合基板等は、それぞれCPU、RAM、ROMなどを備えるマイクロコンピュータとして構成されている。
特許文献1に開示されている通り、遊技機の起動中、主制御基板は、ROMに予め用意されたループ処理を繰り返し実行する。その過程で、数msecごとに割込処理を実行し、遊技状態の判定、サブ統合基板等への指示などを行う。
遊技機では、主制御基板のCPUが正常に動作しているか否かを監視するため、ウォッチドッグタイマを用いる。ウォッチドッグタイマとは、起動後または、その初期化が行われた後の経過時間を計測し、計測時間が所定の基準時間を超えるとCPUをリセットするタイマである。ウォッチドッグタイマを用いる場合には、CPUが所定のタイミングで、ウォッチドッグタイマの計時を初期化するよう制御処理を組む。CPUが正常に動作している限り、ウォッチドッグタイマは基準時間を超える前に初期化されるため、CPUは動作し続けることができる。CPUの動作が異常になると、予定された初期化が行われなくなるため、ウォッチドッグタイマの計測時間が基準時間を超えると、CPUにリセットがかかるようになる。
特許文献2は、ウォッチドッグタイマを用いた遊技機を開示している。特許文献2の遊技機では、A,B,Cという3種類の値を、正規の順序でウォッチドッグタイマの所定のレジスタに書き込むと、計時が初期化されるようになっている。ウォッチドッグタイマが、CPUをリセットするか否かの判断基準となる基準時間は、予め設定することができる。
特開2007−215953号公報 特開2003−210800号公報
ウォッチドッグタイマに対する動作設定および計時を初期化するための値の書き込みは、制御プログラムに従って行われる。ウォッチドッグタイマの初期化レジスタに値を書き込むためには、通常、一旦、CPUのレジスタに書き込むべき値を設定し(2バイト命令)、その値を初期化レジスタに格納する(3バイト命令)という手順が必要となる。初期化レジスタに3種類の値を書き込むためには、上述の命令を、3回行う必要がある。
しかし、遊技機では、制御用のプログラムサイズに対して3KB以内という厳しい制約があるため、わずかな容量であっても、看過し得ない場合がある。ウォッチドッグタイマの経過時間初期化処理は、可能な限り、簡素化したい処理の一つである。
プログラム容量を低減させるために、初期化レジスタに1種類の値を書き込むだけで、ウォッチドッグタイマを初期化可能とする構成も考えられる。しかし、この方法では、CPUが異常動作している最中でも、ノイズなどの影響で、偶然にウォッチドッグタイマが初期化されてしまい、必ずしもウォッチドッグタイマが安定して稼働するとは言い切れないという別の課題を招くことになる。特に、遊技機は、遊技球その他の遊技媒体の摩擦などによって生じた静電気ノイズが多く存在する劣悪な環境で使用されるのが通常であるため、ウォッチドッグタイマの動作の安定性を確保することは重要である。
本発明は、これらの課題を解決するためのものであり、ウォッチドッグタイマの動作の安定性を確保しつつ、そのプログラム容量を低減することを目的とする。
本発明は、所定の遊技媒体を直接的または間接的に用いて遊技を行う遊技機を対象とする。かかる遊技機としては、例えば、スロットマシンなどの回胴式遊技機、スマートボール、パチンコ機などが挙げられる。遊技媒体とは、遊技球やメダルなど遊技中に投資、特典の対象となる媒体を言う。遊技機には、遊技中に視聴覚的な演出を行うための演出装置、所定の条件下で遊技媒体を遊技者に払い出す払出装置を備えてもよい。
遊技機の進行の制御は、所定の制御プログラムに従って、制御処理を実行する演算部によって行われる。この制御プログラムは、メモリに格納されている。演算部は、汎用のCPUとしてもよいし、遊技機専用のセキュリティ機能付きCPUとしてもよい。
遊技機の制御は、上述の演算部およびメモリを搭載した主制御装置によって全てを行うようにしてもよいし、更に、主制御装置からの情報に基づいて制御する下位制御装置を設け、これら複数の制御装置の分散処理によるものとしてもよい。下位制御装置としては、例えば、演出装置を制御するための演出制御装置、払出装置を制御するための払出制御装置などを設けることができる。
本発明では、演算部およびメモリの他、演算部の制御処理の異常を監視するための制御処理監視部を有する。制御処理監視部は、ハードウェア的には、演算部と同一のICパッケージに内蔵する構成としてもよいし、別の素子として外付けするようにしてもよい。
制御処理監視部は、リセット処理部、複数の初期化レジスタ、経過時間初期化部を有している。リセット処理部は、その起動後または初期化後の経過時間が所定の基準時間を超過すると、演算部の動作をリセットする。演算部以外に、設定レジスタ、入出力バッファその他の他の周辺回路を併せてリセットするものとしてもよい。
初期化レジスタは、演算部が値を書き込み可能な素子であり、経過時間初期化部は、複数の初期化レジスタのそれぞれに、演算部から書き込みが行われた場合には、経過時間の計測を初期化する。初期化レジスタに書き込まれる値は、任意の値でよい。
経過時間の計測は種々の方法を採ることができる。
例えば、計時用のディジタルタイマを用い、そのタイマ値が基準時間に相当する値になった時に演算部の動作をリセットするようにしてもよい。ディジタルタイマとしてカウントアップタイマを用いている場合には、初期化レジスタへの書き込みが行われた時には、このタイマ値を値0に初期化すればよい。また、ディジタルタイマとしてカウントダウンタイマを用いている場合には、初期化レジスタへの書き込みが行われた時には、タイマ値を基準時間に設定することによって初期化できる。
別の態様として、コンデンサ(C)と抵抗(R)の組み合わせ回路、いわゆるRC回路を用いても良い。RC回路の電圧は、電圧印加開始後の時間とともに、時定数に応じた一定の変化を示すことが知られているから、この電圧値が、基準時間に対応する所定値に達した時に、演算部の動作をリセットすればよい。この場合には、初期化レジスタへの書き込みが行われた時には、コンデンサ(C)を放電させる処理を行うことによって、初期化することができる。
上述のディジタルタイマおよびRC回路の初期化は、制御処理監視部が直接行うものとしてもよいし、別回路で行うものとしてもよい。例えば、ディジタルタイマ等が、制御処理監視部とは別に設けられた外付け回路である場合には、制御処理監視部は、初期化を指示する信号を出力し、外付け回路がこの信号に応じて、それぞれ上述の初期化を行うようにしてもよい。
以下では説明の便宜上、ディジタルタイマを用いるディジタルでの経過時間の計測方法、およびRC回路を用いたアナログでの経過時間の計測方法の双方を含めて、「経過時間の計測」と呼び、この計測を初期化することを「経過時間初期化」と呼ぶものとする。
演算部は、制御処理を行う際に、情報の記憶または演算に使用する処理用レジスタを有しており、初期化レジスタへの書き込みの際には、その時点で処理用レジスタに記憶されている値を書き込む。以下、経過時間初期化を行わせるために、初期化レジスタに値を書き込む処理を経過時間初期化処理と言う。
経過時間初期化処理では、複数の初期化レジスタに対して、必ずしも連続で書き込む必要はなく、それぞれ経過時間が基準時間を超えない所定のタイミングで書き込めばよい。また、複数の初期化レジスタに対して同じ値を書き込む必要もなく、書き込みのタイミングで、それぞれ処理用レジスタに記憶されている値を書き込めばよい。
本発明では、このように、初期化レジスタに任意の値を書き込むことで、経過時間初期化できるように構成されている。従って、書き込みに際し、規定の値を演算部の処理用レジスタに設定した上で、初期化レジスタに書き込むという手順を踏む必要がなく、書き込み処理を簡素化することができる。
本発明は、初期化レジスタへの書き込みに際し、演算部の処理用レジスタの値を保持しておく必要がある場合に、特に有用性が高い。
仮に、初期化レジスタに書き込むべき値が固定されている場合を考える。この場合には、一旦、初期化レジスタへの書き込みに先だって、処理用レジスタの値を一旦、メモリ上に退避する必要がある。その後、処理用レジスタを用いて初期化レジスタへの書き込みを行い、これが完了した後に、退避してあった値をメモリから処理用レジスタに復帰させるのである。
これに対し、本発明では、処理用レジスタの値をそのまま初期化レジスタに書き込めば済むため、この処理中に、処理用レジスタが別の値に書き換えられるおそれがない。従って、処理用レジスタの値の退避/復帰処理が不要となる分、初期化レジスタへの書き込み処理を簡素化することができる。
また、本発明の経過時間初期化処理には、複数の初期化レジスタへの書き込みが要求される。従って、仮にノイズ等の影響によっていずれかの初期化レジスタに書き込みが行われたとしても、経過時間初期化はされない。このように、本発明では、複数の初期化レジスタを用いることにより、制御処理監視部を安定的に動作させることが可能となる。
本発明では、複数の初期化レジスタに規定の順序で値が書き込まれた場合に初期化を行うよう構成してもよい。演算部は、経過時間初期化処理の際には、規定された順序で、複数の初期化レジスタへの値の書き込みを行う。
このように書き込み順序まで規定することによって、誤って経過時間初期化されるおそれを更に低減させることができ、制御処理監視部をより安定的に動作させることが可能となる。
複数の初期化レジスタへの書き込みは、種々のタイミングで行うことが可能である。
例えば、制御処理が、ループ処理と割込処理を含んでいる場合を考える。ループ処理とは、予め規定された手順で繰り返し実行される処理である。割込処理とは、ループ処理の実行状態に依存しない所定のタイミングで、ループ処理の実行を中断して行われる処理である。中断とは、割込処理が終了すればループ処理に復帰することを意味する。遊技機の制御が、主制御装置と演出制御装置等の下位制御装置との分散処理で行われている場合には、割込処理は、下位制御装置への指示情報出力処理を実行するため、または指示情報出力処理をループ処理で行わせるよう指示するために行われる。前者の態様では、ループ処理を停止して、割込処理として用意された所定のプログラムを実行することになる。後者の態様では、ループ処理内で指示情報出力処理を行うための分岐を設け、割込処理が終了してループ処理に復帰した時に、割込処理からの指示によって分岐先の指示情報出力処理を行うようにすればよい。
このように制御処理がループ処理と割込処理とを含んでいる場合には、全ての初期化レジスタへの書き込みをループ処理または割込処理のいずれか一方のみで行うようにしてもよい。もっとも、ループ処理でのみ書き込みを行う態様では、ループ処理で初期化レジスタへの書き込みが正常に行われている限り、割込処理で異常が生じていてもリセットはかからないという不都合がある。逆に、割込処理のみで書き込みを行う態様では、ループ処理で異常が生じていてもリセットはかからないという不都合が生じる。
こうした不都合を回避するためには、一部の初期化レジスタへの書き込みをループ処理で行い、残余の初期化レジスタへの書き込みを割込処理で行うことが好ましい。こうすることによって、ループ処理および割込処理のいずれか一方に異常が生じただけで、初期化レジスタへの正常な書き込みが行われなくなり、演算部がリセットされる。従って、この態様によれば、異常時にはより確実に演算部のリセットをかけることが可能となるため、制御を安定化させることができる利点がある。
本発明では、初期化レジスタに任意の値を書き込めば良いように構成されてはいるが、敢えて固定値を書き込むようにしてもよい。処理用レジスタの値をそのまま書き込む場合には、初期化レジスタにどのような値が書き込まれるか予測がつかず、制御処理監視部に異常な指示を与えたり、異常な動作設定を行ったりすることになるおそれを排除しきれないが、このように固定値を書き込むものとしておけば、こうしたおそれを回避することができる。
この場合、書き込むべき固定値は任意に設定可能であるが、一例として、初期化レジスタへの書き込みに先立って、処理用レジスタの値を、その排他的論理和で得られる値に更新し、この演算で得られた結果を初期化レジスタに書き込むようにしてもよい。処理用のレジスタの値同士の排他的論理和は、00Hであるから、上述の処理では00Hを初期化レジスタに書き込むことになる。
ただし、処理用レジスタに新たに00Hを設定する場合には、通常、設定すべき値を指定する必要があるため、ロード命令などの2バイト命令を用いる必要が生じるが、排他的論理和を求める場合には1バイト命令で済む。従って、上述の処理によれば、固定値を書き込むにも関わらず、そのプログラムサイズを抑制することができる利点がある。
本発明において、経過時間初期化部に、循環モードと単純モードの2つの動作モードを用意し、これらを選択的に使い分けて実行可能としてもよい。
循環モードとは、上述した通り、複数の初期化レジスタへの値の書き込みが行われた時に経過時間初期化を行うモードである。経過時間初期化するための処理が煩雑になる分、誤った経過時間初期化が行われることを回避でき、安定的な動作をさせることができる利点がある。
一方、単純モードとは、いずれか単一の初期化レジスタに値の書き込みが行われた時に経過時間初期化するモードである。誤った経過時間初期化が行われる可能性は循環モードよりも高いが、経過時間初期化を行うための処理が簡易であるという利点がある。
このように、2つの動作モードを選択的に使用可能としておくことにより、制御処理の過程において、処理の簡素化と動作の安定性の重要性を考慮しながら、より適切な動作モードで制御処理監視部を稼働させることができる利点がある。
上述の単純モードにおいて、初期化レジスタに書き込むべき値は、任意の値としてもよいが、規定の値(固定値)としておくことが好ましい。単純モードでは、初期化レジスタを一つ使用するだけであるため、一度でも、ノイズ等の影響によって誤って初期化レジスタへの書き込みが行われると、誤って経過時間初期化が行われるおそれがある。これに対し、経過時間初期化のために書き込むべき値を予め設定された固定値としておけば、この固定値と異なる値が書き込まれても経過時間初期化は行われないようになるから、誤って経過時間初期化が行われるおそれを抑制することができる。
本発明では、演算部は、制御処理の過程で、制御処理監視部が稼働していることを確認する稼働確認処理を行うようにしてもよい。確認は、制御処理監視部の動作状況または制御処理監視部からの出力信号を監視することによって行うことができる。
制御処理監視部の稼働が確認できない場合には、演算部は、制御処理監視部の動作を異常から回復させるための所定の回復処理を行うことが好ましい。この回復処理には、例えば、異常を音声出力やランプ点灯などの演出装置によって報知する処理も含まれる。
上述の稼働確認処理および回復処理は、制御プログラムに従って行うようにしてもよいし、演算部の固有の機能としてハードウェア的に実現するようにしてもよい。
こうすることにより、制御処理監視部が起動しないまま制御処理が進行することを回避でき、また異常がある場合には、回復処理を行うため、制御処理監視部をより確実に起動させることが可能となる。
本発明では、制御処理監視部は、演算部から、複数回にわたって、相互に関連する所定の情報を受け取ることによって起動するよう構成してもよい。演算部は、制御処理監視部を起動させるために、所定の情報を複数回、制御処理監視部に出力することになる。
このように制御処理監視部を起動させるために、複数回にわたって情報を受け取ることが要求される構成とすることによって、ノイズ等の影響で誤って制御処理監視部が起動するおそれを抑制でき、異常な設定で動作することを抑制することができる。処理の簡素化という観点からは、情報を2回出力することで設定および起動を行えるようにすることが好ましいが、3回以上で行うものとしても構わない。
また、制御処理監視部は、一旦、起動したら電源遮断後の再投入等によるリセット操作以外では停止できないよう構成してもよい。例えば、一旦、起動した後は、初期化レジスタへの書き込み以外は、外部からの情報を受け付けないよう構成しておくことによって実現できる。こうすることにより、ノイズ等の影響で、誤って制御処理監視部が停止してしまうことを回避することができる。
例えば、制御処理監視部は、その動作状態を設定するための設定情報を書き込むコントロールレジスタに対して、同一の設定情報が複数回、書き込まれた時に起動するよう構成してもよい。この場合、制御処理監視部を起動させるためには、演算部は、同一の設定情報を繰り返し制御処理監視部に出力すれば足りるから、単純なループ処理または同じ出力コマンドの繰り返しなど、比較的、単純な処理によって設定および起動を行うことができる利点がある。
複数回とは連続であってもよいし、異なる情報をはさんでいてもよい。後者の態様では、演算部から設定情報を出力する間に、ノイズ等によってコントロールレジスタへの書き込みが行われても、同一の設定情報が複数回、書き込まれさえすれば制御処理監視部を起動させることができる。
複数回の情報で設定および起動を行う例としては、上述のように同一の情報を用いる場合に限定されない。相互に関連する情報を用いることにより、出力されたそれぞれの情報が、正しい情報か、ノイズ等の影響を受けた誤った情報であるかを判別可能なものとなっていればよい。例えば、1回目で設定情報を出力し、2回目では、その情報とFFHとの排他的論理和を出力するようにしてもよい。これらの情報であれば、2回にわたって出力された情報同士を照合することによって、双方の情報の正誤を判断することが可能だからである。
本発明は、上述の特徴を必ずしも全て備えている必要はなく、これらの一部を省略したり、適宜、組み合わせたりして備えるものとしてもよい。
本発明の実施例について以下の順序で説明する。
A.装置構成:
B.主制御基板の構成:
B1.停電監視回路の構成:
C.制御処理:
C1.主制御側電源投入時処理:
C2.主制御側タイマ割り込み処理:
C3.サブ統合側処理:
C4.払出制御基板の制御処理:
D.効果
E.変形例:
A.装置構成:
実施例では、パチンコ機として構成した場合の例を示す。
実施例としてのパチンコ機は、遊技媒体に相当する遊技球を、発射し、遊技盤に設けられた入賞口に入賞させることによって、賞球の払出を受ける遊技機である。
パチンコ機が、第1種または複合機と呼ばれる機種の場合、始動入賞口と呼ばれる入賞口に遊技球が入賞すると、乱数を用いた電子的な抽選が行われる。抽選の結果、大当たりとなると、遊技盤に設けられた大入賞口が所定期間、所定回数、開閉し、賞球の払出を受けやすい有利な遊技状態(以下、「大当たり遊技」という)に移行する。
パチンコ機が、第2種または複合機の場合には、遊技球の動きによって機械的に抽選の当落を決定する機構が備えられている。この場合でも、大当たりが発生すると、機種に応じた大当たり遊技に移行する。
図1は実施例としてのパチンコ機1の制御用ハードウェア構成を示すブロック図である。パチンコ機1は、主制御基板100、払出制御基板210、サブ制御基板310、装飾図柄制御基板350などの各制御基板の分散処理によって制御される。主制御基板100には、CPU102、RAM104、ROM106などを備えたワンチップマイクロコンピュータが実装されており、ROM106に記録されたプログラムに従って種々の制御処理を実現する。払出制御基板210、サブ制御基板310も同様である。
本実施例では、サブ制御基板310と装飾図柄制御基板350とは別基板として構成しているが、両者を統合した基板としてもよい。この場合、サブ制御基板310の機能と装飾図柄制御基板350の機能を、複数のCPUの分散処理で実現してもよいし、単独のCPUで実現する構成としてもよい。
また、主制御基板100と払出制御基板210も別基板とせず、両者を統合した基板として構成することもできる。
実施例のパチンコ機1では、種々の不正を防止するため、主制御基板100への外部からの入力が制限されている。主制御基板100とサブ制御基板310とは単方向のパラレル電気信号で接続されており、主制御基板100と払出制御基板210とは、制御処理の必要上、双方向シリアル電気信号で接続されている。
払出制御基板210、サブ制御基板310は、それぞれ主制御基板100からのコマンドに応じて動作する。装飾図柄制御基板350は、サブ制御基板310からのコマンドに応じて動作する。
パチンコ機1には、主制御基板100が直接に制御する機構もある。図中には、主制御基板100が制御する装置の一例として、大当たり遊技において、大入賞口を駆動するための大入賞口ソレノイド43、および特別図柄表示装置41を例示した。特別図柄表示装置41とは、遊技中に主制御基板100が行った抽選の結果を、所定数のLEDの点灯状態で表示する装置である。
図示しないが、主制御基板100は、この他にも、普通図柄表示装置、特別図柄保留ランプ、普通図柄保留ランプ、大当り種類表示ランプ、状態表示ランプなどの表示を制御することができる。
また、主制御基板100には、遊技中の動作を制御するため、種々のセンサからの検出信号が入力される。図中には一例として入賞検出器42からの入力を例示した。入賞検出器42とは、始動入賞口への入賞を検出するためのセンサである。主制御基板100は、入賞検出器42からの信号に応じて、先に説明した抽選を行い、大当り遊技を実行することができる。主制御基板100には、他にも種々の入力がなされているが、ここでは説明を省略する。
遊技時におけるその他の制御は、払出制御基板210、サブ制御基板310を介して行われる。
払出制御基板210は、遊技中の遊技球の発射および払い出しを次の手順で制御する。
遊技球の発射は、直接的には発射制御基板47によって制御される。即ち、遊技者が、遊技機正面に備えられた発射用のハンドルを操作すると、発射制御基板47は操作に応じて発射モータ49を制御し、遊技球を発射する。遊技球の発射は、タッチ検出部48によって、ハンドルに遊技者が触れていることが検出されている状況下でのみ行われる。払出制御基板210は、発射制御基板47に対して、発射可否の制御信号を送出することで、間接的に球の発射を制御する。
遊技中に入賞した旨のコマンドを主制御基板100から受信すると、払出制御基板210は、賞球払出装置20内の払出モータ21を制御し、払出球検出器22によって球数をカウントしながら規定数の球を払い出す。払出モータ21の動作は、モータ駆動センサ23によって監視されており、球ガミ、球切れなどの異常が検出された場合、払出制御基板210は、表示部4aにエラーコードを表示する。エラー表示された時には、遊技場の係員が異常を除去した後、操作スイッチ4bを操作することで復旧させることができる。
サブ制御基板310は、遊技中における音声、表示、ランプ点灯などの演出を制御する。サブ制御基板310は、これらの制御を実行するためのCPU、RAM、ROMを備えたマイクロコンピュータとして構成されている。これらの演出は、通常時、入賞時、大当たり時など、遊技中のステータスに応じて変化する。主制御基板100から、各ステータスに応じた演出用のコマンドが送信されると、サブ制御基板310は、各コマンドに対応したプログラムを起動して、主制御基板100から指示された演出を実現する。
音声およびランプ点灯はサブ制御基板310が直接制御するが、LCD16の表示については、装飾図柄制御基板350を介して制御する。
サブ制御基板310の制御対象となるランプには、遊技盤面に設けられたパネル装飾ランプ12と、枠に設けられた枠装飾ランプ31がある。サブ制御基板310は、ランプ中継基板32、34を介して、パネル装飾ランプ12および枠装飾ランプ31と接続されており、各ランプを個別に点滅させることができる。
図示を省略したが、スピーカ29を制御するため、サブ制御基板310には、音源ICおよびアンプが備えられている。CPUが、スピーカ29から出力する音声を決めて音声出力コマンドを出力すると、音源ICが予め用意された音源データから指定されたものを再生し、アンプで増幅してスピーカ29から出力する。
また、サブ制御基板310は、遊技中の演出の他、エラー時、不正行為その他の異常が生じた時には、警報音を出力したり、ランプを警告用に点灯したりして、異常発生を報知する。主制御基板100のRAM104の内容を消去するためのRAMクリアスイッチが操作された時にも、同様に報知音が出力される。
警報音には、例えば、遊技中の効果音とは明らかに異なるブザー音を用いることができる。警告用のランプ点灯としては、例えば、遊技盤の周囲全体を赤く点滅させるなど、遊技中とは明らかに異なる態様での点灯・点滅をさせることができる。
B.主制御基板の構成:
図2は主制御基板100上のワンチップマイクロコンピュータの回路構成を示す説明図である。主要な部分についてブロック図を示した。
CPU102内には、第1レジスタ110および第2レジスタ120が設けられている。第1レジスタ110、第2レジスタ120は同じ構成であり、内部には種々の処理用レジスタが含まれる。
CPU102は、処理の過程で、第1レジスタ110および第2レジスタ120のいずれかを選択的に使用する。つまり、第1レジスタ110を使用しながら処理を進めている間は、第2レジスタ120の内容は従前の状態のまま保持される。逆に、第2レジスタ120を使用しながら処理を進めている間は、第1レジスタ110の内容は従前の状態のまま保持される。使用するレジスタは、切換コマンドによって切り換え可能である。
本実施例では、後述する通り、制御処理は主制御側ループ処理と、主制御側タイマ割り込み処理から構成されている。従って、主制御側ループ処理を実行する際には第1レジスタ110を使用し、主制御側タイマ割り込み処理を実行する際には第2レジスタ120を使用するように切り換えるものとした。こうすることにより、従前の処理におけるレジスタの内容を保持しながら、それぞれの処理を実行することが可能となる。
クロック153は、所定周期の矩形波を出力する回路である。タイマ回路152は、クロック153からの矩形波数をカウントして時間を計測し、所定の時間ごとにINT優先順位制御回路151に、内部INT信号を出力する。INT優先順位制御回路151は、オペレータのスイッチ操作などによって、CPU102のINT端子に入力される外部INTと、タイマ回路152から入力される内部INTとに基づいて、割込信号INTをCPU102に入力する。こうすることによって、外部からの割込だけでなく、所定の周期でCPU102に割込をかけることが可能となる。
INT優先順位制御回路151は、種々の構成を採ることが可能であるが、最も単純な構成としては、外部INTと内部INTのオアによって割込信号INTを出力する回路とすることができる。
クロック153からの矩形波は、WDT制御回路154にも入力される。WDT制御回路154は、ウォッチドッグタイマ(以下、「WDT」と記すこともある)を制御する回路である。ウォッチドッグタイマの機能として、WDT制御回路154は、クロック153からの矩形波をカウントして時間を計測し、初期化レジスタ157、158のいずれかに動作モードに応じた適切な値の書き込みが行われることなく、所定の基準時間が経過した時にはリセット信号をCPU102に出力する。初期化レジスタ157、158のいずれかに値が書き込まれた場合には、時間の計測を初期化する(以下、この処理を「経過時間初期化」と呼ぶ)。
CPU102は、WDT制御回路154から、ウォッチドッグタイマのタイマ値を入力することが可能となっている。図の例では、CPU102とWDT制御回路154とが直接、タイマ値を授受するように示したが、タイマ値は、内部バス150を介してCPU102に出力するようにしてもよい。
本実施例では、WDT制御回路154は、循環モードと単純モードという2つの動作モードで経過時間初期化を実行可能である。
循環モードは、初期化レジスタ157を構成する3つのレジスタ157a、157b、157cの全てに値が書き込まれた時に、経過時間初期化を行うモードである。書き込む値は任意の値でよい。また、書き込み順序も問わない。もっとも、循環モードにおいて、書き込むべき値を固定したり、書き込み順序を固定したりしてもよい。
単純モードは、初期化レジスタ158に規定の値が書き込まれた時に、経過時間初期化を行うモードである。本実施例では、循環モード用の初期化レジスタ157とは別に単純モード用の初期化レジスタ158を設ける構成としたが、循環モード用の初期化レジスタ157の一部を単純モードで使用する構成としてもよい。また、本実施例では、任意の値を書き込むものとしたが、規定の値を書き込み可能としてもよい。
WDT制御回路154の動作モード、CPU102にリセット信号が出力されるまでの基準時間は、コントロールレジスタ156に設定される。単純モードにおいて固定値で初期化を行うものとする場合には、初期化レジスタ158に書き込むべき固定値も設定可能としてもよい。
WDT制御回路154の動作モード等は、制御処理を開始した後、一旦、設定したら変更することができない構成としてもよい。設定が完了した後は、コントロールレジスタ156への書き込みコマンドを無視するような構成としておけばよい。こうすることにより、WDT制御回路154の設定が、不正に変更されたり、ノイズ等の影響で変わってしまったりすることを回避できる。
逆に、WDT制御回路154の動作モード等を、制御処理中に変更可能としてもよい。設定が完了した後も、コントロールレジスタ156への書き込みを許容すればよい。こうすることによって、制御処理の内容に応じて、単純モードおよび循環モードのそれぞれの利点を活かした使い分けが可能となる。
WDT制御回路154には、特殊な設定も設けられている。設定値としてコントロールレジスタ156に値00Hを2回書き込んだ時には、ウォッチドッグタイマを起動禁止とすることができる。ウォッチドッグタイマを使用せずに制御処理を組み込む場合に、ノイズ等の影響によって誤ってウォッチドッグタイマが起動することを回避することができる。
かかる構成に代えて、値00Hを2回書き込むことによって、一時的にウォッチドッグタイマの機能を停止させられるようにしてもよい。この場合は、例えば、制御処理中に、改めて設定値をコントロールレジスタ156に書き込むことによって、ウォッチドッグタイマを再起動可能とすればよい。こうすることによって、不要な場合には、ウォッチドッグタイマを停止させておくことができる。従って、初期化レジスタ157、158に書き込みを行う処理を省略できる分、処理を簡素化することができる。
これに対し、WDT制御回路154は、一旦、起動したら電源遮断後の再投入等によるリセット操作以外では停止できないよう構成してもよい。例えば、一旦、起動した後は、初期化レジスタ157、158への書き込み以外は、外部からの情報を受け付けないよう構成しておくことによって実現できる。こうすることにより、ノイズ等の影響で、誤ってWDT制御回路154が停止してしまうことを回避することができる。
CPU102は、内部バス150を通じて、RAM104、ROM106にアクセス可能である。内部バス150は、アドレスバスおよびデータバスおよびリード/ライトなど、RAM104、ROM106へのアクセスに必要な通信線一式の総称である。
また、CPU102は、同様に内部バス150を通じて、以下に示す種々のレジスタにアクセスすることも可能である。
PDM[1]、[2]は、パラレルポート155[1]、155[2]を介して授受するデータを格納しておくためのレジスタである。PDM[1]、[2]には、それぞれパラレルポート155[1]、155[2]が接続されている。CPU102は、内部バス150を介してPDM[1]、[2]にアクセスすることにより、パラレルポート155[1]、155[2]を通じて外部とデータの授受を行うことが可能となる。
PSMは、パラレルポート155[1]、155[2]を通じたデータ授受の方法の設定値を記憶するレジスタである。
RDMは、遊技中の抽選に用いられる乱数の最大値、更新方式など乱数発生に関する種々の情報を設定しておく乱数発生器設定用レジスタである。
RNDは、乱数値を読み出し用に記憶しておく乱数値レジスタである。
本実施例の主制御基板100に実装されたワンチップマイコンは、RAM104、ROM106等の内蔵されたデバイスとCPU102との間で、内部バス150を通じて授受される信号が、端子から外部に出力されるように許可したり、この出力を遮断したりする機能を有している。
B1.停電監視回路の構成:
主制御基板100は、停電監視回路を備えている。停電監視回路は、賞球の入賞などを検出するための検出スイッチに供給される検出スイッチ供給電圧の低下、および制御基板に供給される制御基板供給電圧の低下とを監視する回路である。これらの電圧のいずれか一方が、予め定めた電圧より低くなると停電予告信号をCPU102に出力する。
検出スイッチ供給電圧および制御基板供給電圧を監視する理由は次の通りである。
本実施例では、検出スイッチ供給電圧が瞬停、即ち瞬間的に電圧が低下する状態となると、検出スイッチは、遊技球が入賞した信号を出力した状態となるよう構成されている。この結果、CPU102は、検出スイッチ供給電圧の瞬停が生じた時には、入賞していないにも関わらず入賞があったかのうように誤った検出信号に基づいて遊技を進行してしまう。かかる特性は、不正行為に利用されるおそれがある。従って、停電監視回路が検出スイッチ供給電圧を監視することによって、意図的に瞬停を生じさせる不正行為を防止することが可能となる。
制御基板供給電圧が瞬停した場合には、CPU102にリセットがかかるため、初期値更新型のカウンタは初期値0からスタートする。このため、所定間隔ごとに制御基板供給電圧を瞬停させることで、カウンタが大当り判定値となるタイミングを意図的にコントロールする不正行為を行うことができる。従って、停電監視回路が制御基板供給電圧を監視することによって、かかる不正行為を防止することが可能となる。
停電監視回路が出力する停電予告信号は、通常、パチンコ機の電源断時にCPU102に入力される信号である。従って、停電監視回路が瞬停による不正行為を検出して停電予告信号を発すると、CPU102は、電源断時に行う停電処理を行うことにより、瞬停による不正行為に影響されずに遊技を継続することができる。
図3は、停電監視回路180の構成を示す説明図である。
停電監視回路180は、安定化電源回路181、コンパレータ182、Dタイプフリップフロップ184を備えて構成されている。
安定化電源回路181の基準電圧入力端子であるREF端子及びカソード端子であるK端子は、+5Vと抵抗R1を介して電気的に接続されており、この抵抗R1によりREF端子に入力される電流が制限されている。K端子はコンパレータ182の比較基準電圧となるリファレンス電圧Vref(本実施形態では、2.495Vが設定されている。)を出力している。このリファレンス電圧Vrefは、グランドと接地されたコンデンサC1によりリップル(電圧に畳重された交流成分)が除去されて平滑化されている(コンデンサC1は、ローパスフィルタとしての役割も担っている)。安定化電源回路181のアノード端子であるA端子はグランド(GND)と接地されている。
コンパレータ182のうちの一つであるコンパレータ182[0]は検出スイッチ供給電圧(+18V)の監視電圧V1とリファレンス電圧Vrefとを比較するために用いられており、+端子に監視電圧V1が入力され、−端子にリファレンス電圧Vrefが入力されている。コンパレータ182[1]は、制御基板供給電圧(+9V)の監視電圧V2とリファレンス電圧Vrefとを比較するために用いられており、+端子に監視電圧V2が入力され、−端子にリファレンス電圧Vrefが入力されている。
本実施例では、2つのコンパレータ182[0]、182[1]を用いて検出スイッチ供給電圧および制御基板供給電圧の停電または瞬停を監視するものとしているが、いずれか一方のみを監視するようにしてもよい。
コンパレータ182での比較結果はDタイプフリップフロップ184に入力されている。
Dタイプフリップフロップ184は、2つのDタイプフリップフロップ回路184[0]、184[1]を備えており、その1つ(184[1])を本実施形態で用いている。なお、コンパレータ182に入力される+5Vは、グランドと接地されたコンデンサC2によりリップルが除去されて平滑化されている。また、Dタイプフリップフロップ184に入力される+5Vは、グランドと接地されたコンデンサC3によりリップルが除去されて平滑化されている。
検出スイッチ供給電圧(+18V)の停電又は瞬停の監視は、上述したように、コンパレータ182[0]が監視電圧V1とリファレンス電圧Vrefとを比較することにより行われている。検出スイッチ供給電圧(+18V)は、図3に示すように、抵抗R2,R3による抵抗比によって電圧が分配され、グランドと接地されたコンデンサC4によりリップルが除去されてコンパレータ182[0]の+端子に入力されている(コンデンサC4は、ローパスフィルタとしての役割も担っている)。抵抗R2,R3の値は、検出スイッチ供給電圧(+18V)が停電又は瞬停した際に、その電圧が+18Vから落ち始めて予め設定した停電検知電圧V1pf(本実施形態では、12.53Vに設定されている。)となったときに、監視電圧V1がリファレンス電圧Vrefと同値になるように設定されている。検出スイッチ供給電圧(+18V)の電圧が停電検知電圧V1pfより大きいときには、監視電圧V1がリファレンス電圧Vrefより大きくなり、その結果として論理がロウとなる。このため、コンパレータ182はオープンコレクタ出力タイプであるため、プルアップ抵抗R4により+5Vに引き上げられ、論理がハイとなり、グランドと接地されたコンデンサC5によりリップルが除去されてDタイプフリップフロップ184[1]のプリセット端子であるPR端子に入力される(コンデンサC5は、ローパスフィルタとしての役割も担っている)。このPR端子が負論理入力であるため、監視電圧V1がリファレンス電圧Vrefより大きいときには、Dタイプフリップフロップ184[1]の出力端子であるQ端子から出力される停電予告信号は停電または瞬停の発生を示す状態(以下、「停電状態」という)とはならない。
検出スイッチ供給電圧(+18V)の電圧が停電検知電圧V1pfより小さいときには、監視電圧V1がリファレンス電圧Vrefより小さくなり、その結果として論理がハイとなる。このため、コンパレータ182はオープンコレクタ出力タイプであるため、論理がロウとなり、グランドと接地されたコンデンサC5によりリップルが除去されてDタイプフリップフロップ184のプリセット端子であるPR端子に入力される。このPR端子が負論理入力であるため、監視電圧V1がリファレンス電圧Vrefより小さいときには、Dタイプフリップフロップ184の出力端子であるQ端子から出力される停電予告信号は停電状態となる。
制御基板供給電圧(+9V)の停電又は瞬停の監視は、上述したように、コンパレータ182[1]が監視電圧V2とリファレンス電圧Vrefとを比較することにより行われている。制御基板供給電圧(+9V)は、図3に示すように、抵抗R5,R6による抵抗比によって電圧が分配され、グランドと接地されたコンデンサC6によりリップルが除去されてコンパレータ182[1]の+端子に入力されている(コンデンサC6は、ローパスフィルタとしての役割も担っている)。抵抗R5,R6の値は、+9Vが停電又は瞬停した際に、その電圧が+9Vから落ち始めて予め設定した停電検知電圧V2pf(本実施形態では、7.64Vに設定されている。)となったときに、監視電圧V2がリファレンス電圧Vrefと同値になるように設定されている。制御基板供給電圧(+9V)の電圧が停電検知電圧V2pfより大きいときには、監視電圧V2がリファレンス電圧Vrefより大きくなり、その結果として論理がロウとなる。このため、コンパレータ182はオープンコレクタ出力タイプであるため、プルアップ抵抗R4により+5Vに引き上げられ、論理がハイとなり、グランドと接地されたコンデンサC5によりリップルが除去されてDタイプフリップフロップ184[1]のプリセット端子であるPR端子に入力される。このPR端子が負論理入力であるため、監視電圧V2がリファレンス電圧Vrefより大きいときには、Dタイプフリップフロップ184[1]の出力端子であるQ端子から出力される停電予告信号は停電状態とはならない。
制御基板供給電圧(+9V)の電圧が停電検知電圧V2pfより小さいときには、監視電圧V2がリファレンス電圧Vrefより小さくなり、その結果として論理がハイとなる。このため、コンパレータ182はオープンコレクタ出力タイプであるため、論理がロウとなり、グランドと接地されたコンデンサC5によりリップルが除去されてDタイプフリップフロップ184[1]のプリセット端子であるPR端子に入力される。このPR端子が負論理入力であるため、監視電圧V2がリファレンス電圧Vrefより小さいときには、Dタイプフリップフロップ184[1]の出力端子であるQ端子から出力される停電予告信号は停電状態となる。
なお、Dタイプフリップフロップ184のCLR端子には、主制御基板100のCPU102から、主制御I/Oポートを介して、停電クリア信号が入力されるようになっている。CLR端子は負論理入力であるため、CPU102からの停電クリア信号は、主制御I/Oポートを介してその論理をロウとすることによりラッチ状態を解除するようになっており、このとき、(プリセット端子である)PR端子に入力された信号を論理反転して(出力端子である)Q端子から出力する。Dタイプフリップフロップ184は、CLR端子に停電クリア信号が入力されると、ラッチ状態を解除するようになっており、このとき、プリセット端子であるPR端子に入力された論理を反転して出力端子であるQ端子から出力する。
CPU102からの停電クリア信号の出力がロウになると、主制御I/Oポートを介してその論理がハイとなってCLR端子に入力される。Dタイプフリップフロップ184は、CLR端子にロウの停電クリア信号が入力されないときには、ラッチ状態をセットするようになっており、PR端子に論理がロウとなって入力された状態をラッチする。
本実施例において、Dタイプフリップフロップ184[1]を介して停電予告信号を出力するよう構成した理由は次の通りである。
第1に、停電処理を確実に行うことが可能となる利点がある。つまり、瞬間的な停電の場合には停電予告信号が非常に短いパルスとなる可能性があるが、ラッチしておくことによって、こうしたパルスを見逃すおそれを抑制できるからである。瞬停が生じた後の電源は不安定な状態となる可能性があるため、瞬間的な停電であっても、一旦、停電処理を実行させる方が遊技機を安定的に動作させることができるのである。停電予告信号をソフトウェア的にポーリングすることでラッチを代替させることも可能ではあるが、この方法では、ポーリングのサンプリング周期より短いパルスの停電を見逃してしまう可能性がある。ラッチによれば、短いパルスの停電であっても確実に停電処理を行うことができる利点がある。
第2に、遊技機が用いられるホールの環境次第では、電源投入後の200msの待機時間では、電源が安定しない場合も考えられる。例えば、200msの待機時間後には、停電予告信号が停電状態となっていなかったとしても、電源が十分に安定していない場合には、その後に停電状態となるおそれもある。停電予告信号をラッチしておくことによって、このように待機時間を越えても、電源が安定していない場合でも、確実に停電処理に移行できるようになる。
第3に、電源が安定していない状態で、停電監視回路が停電予告信号を誤検知した場合には、ラッチしておけば、停電クリア信号によってクリアすることにより、停電状態で出力されることを防ぐことができるため、無用な停電処理を回避することが可能となる。
本実施例のパチンコ機1は、以上で説明したハードウェア構成に基づき、主制御基板100、払出制御基板210、サブ制御基板310が、それぞれ制御処理を実行する。以下では、主制御基板100の制御処理内容を説明する。
C.制御処理:
C1.主制御側電源投入時処理:
図4〜5は主制御側電源投入時処理の一例を示すフローチャートである。主制御基板100のCPU102が電源投入による復電をトリガとして開始・実行する処理である。「復電」は、電源を遮断した状態から電源を投入した状態、停電又は瞬停からその後の電力の復旧した状態も含む。
図4〜5に示した主制御側電源投入時処理は、CPU102内の第1レジスタ110を用いて行われる。
処理が開始されると、CPU102は、割り込みのモードを設定し、スタックポインタに初期値を設定する(図4のステップS1)。スタックポインタは、例えば、使用中のレジスタの内容、サブルーチンを終了して本ルーチンに復帰するときの本ルーチンの復帰アドレスなど、制御処理を進める上で一時的に記憶する種々の情報の格納アドレスをスタックに順次、格納・読み出し可能とするために、スタック中での最新の情報の格納場所を表している。
RAM104の終端側から先頭側に向けて使用するようにスタック領域を設ける場合には、スタックポインタには初期値としてRAMの終端アドレスを設定することになる。
次に、CPU102は、ウォッチドッグタイマの設定を行うため、コントロールレジスタ156に設定値を書き込む(ステップS2)。設定内容としては、循環モード/単純モードの選択、CPU102にウォッチドッグタイマによるリセットがかかるまでの基準時間が挙げられる。設内データは、これらの設定情報を格納した1バイト長のデータとなっている。
設定データには、この他、単純モードの時に初期化レジスタ158に書き込むべき規定値の設定や、循環モードの際に3つの初期化レジスタ157a〜157cへの書き込み順序などを含めても良い。
また、本実施例では、設定データとして値00Hを設定すると、ウォッチドッグタイマを起動禁止とすることが可能となっている。
コントロールレジスタ156への書き込みが終わると、CPU102は、同じ設定データを再度、コントロールレジスタ156に書き込む(ステップS3)。そして、この値を前回の設定値、この時点ではステップS2で書き込んだ値と比較する(ステップS4)。
両者が一致しない場合には、同じ設定値が連続して書き込まれるまで、設定値の書き込み(ステップS3)を繰り返し実行する。
ステップS3、S4のループ処理には、回数または時間の上限値を設け、この上限値を超えても同じ設定データ2を2回繰り返して設定できない場合には、ステップS1から再度実行させるなどの処理を行うようにしてもよい。
本実施例では、このように同じ設定データが2回書き込まれた時にウォッチドッグタイマを設定・起動できる構成とすることにより、ノイズ等の影響で異常な設定がなされることを回避できる。
上述の例では、同じ設定データを2回繰り返して設定する方法をとったが、2回にわたってコントロールレジスタ156に入力するデータは、相互に関連があり、参照することによって、設定データの正誤を判断できるデータであればよい。例えば、1回目のデータのビットを反転させたデータ(FFHとの排他的論理和)を2回目のデータに用いる方法などが考えられる。
ウォッチドッグタイマの設定および起動が完了すると、CPU102は、WDT制御回路154からタイマ値を検出する(ステップS5)。そして、ウェイトタイマ処理0によって、所定の待ち時間を経過した後(ステップS6)、再び、タイマ値を検出する(ステップS7)。この2回で検出されたタイマ値が変化していれば、ウォッチドッグタイマは正常に起動したことが分かる。
ウェイトタイマ処理0(ステップS6)における待ち時間は、ウォッチドッグタイマが最低1単位時間だけ更新したことが確認出来る範囲で任意に設定可能である。
タイマ値が変化していない場合には(ステップS8)、ウォッチドッグタイマが起動していないと判断し、その回復処理として、ウォッチドッグタイマの設定処理(ステップS2以降)を再試行し、ウォッチドッグタイマを再起動させる。
ウォッチドッグタイマが正常に起動していない場合(ステップS8)、ウォッチドッグタイマの再起動に代えて、全体の再起動、即ちステップS1以降の処理を再度行うようにしてもよい。
また、ウォッチドッグタイマの再起動を行った上で、それでも正常に起動しない場合に、全体の再起動を行うようにしてもよい。
次に、CPU102は停電クリア信号をロウとする(図5のステップS12)。停電クリア信号をロウにすることにより、電源投入時に主制御基板に設けられた停電監視回路からの停電予告信号をラッチするためのDタイプフリップフロップのラッチ状態を解除すると共に、それ以前に検知(ラッチ)した停電予告信号をクリアする。ラッチ状態を解除することにより、停電予告信号が継続的に検出(監視)可能な状態に切り替えることができる。
CPU102は、ウェイトタイマ処理1によって所定の待ち時間を経た後(ステップS14)、停電予告信号の状態を確認し、停電予告信号が停電を示す状態(停電予告信号がロウのとき)となっているか否かを判定する(ステップS16)。停電を示す状態となっている場合には、ウェイトタイマ処理1による待ち時間(ステップS14)を経てから、再度停電予告信号の状態を確認する。
このように、所定の待機時間を経た後に停電予告信号を確認するのは、停電予告信号が、停電又は瞬停によってパチンコ機1への供給電圧が所定の停電予告電圧より低くなった時に出力されるため、電源投入時に遊技機への供給電圧が所定電圧に達するまでは、一定の時間を要するためである。これにより、供給電圧が不安定な状態で、主制御基板の遊技機の制御に関する処理(ループ処理、タイマ割込処理)を実行しないようにすることが可能となる。
停電予告信号が検出されず(ステップS16)、電源電圧に異常がないと判断されたときには、CPU102は停電クリア信号をハイ(出力を停止)にし(ステップS18)、停電監視回路から出力される停電予告信号を継続的な検出状態からラッチ可能な状態に切り替える。以後、供給電圧が停電予告電圧を下回ったときに、ラッチされた停電予告信号が出力されるようになる。
CPU102はRAMクリアスイッチが操作されている時は(ステップS20)。RAMクリア報知フラグRCLに値1をセットし(ステップS22)、操作されていないときには値0をセットする(ステップS24)。RAMクリアスイッチが操作されると、後述の通り、主制御基板100のRAM104上の確率変動、未払い出し賞球等の遊技に関する遊技情報が消去されることになる。
次にCPU102はウェイトタイマ処理2で(ステップS26)、装飾図柄制御基板350の起動を待つ。但し、主制御基板100は装飾図柄制御基板350から起動完了の通知を受信することはできないため、所定時間経過した時点で起動が完了したものとみなして次の処理を実行することになる。本実施例では、待機時間として2秒(s)が設定されている。
本実施例では、先に説明した通り、上述のウェイトタイマ処理2を行う前に、RAMクリアスイッチの操作有無を判定している(ステップS20)。RAMクリアを行う場合には、遊技場の係員は、通常、RAMクリアスイッチを押下した状態で電源を投入する。従って、ウェイトタイマ処理2を行う前に、RAMクリアスイッチの操作有無を判断しておくことにより、遊技場の係員が電源投入後、比較的短時間でRAMクリアスイッチの押下をやめてしまった場合でも、誤りなくRAMクリアスイッチの操作の検出が可能となる利点がある。
本実施例においても、ウェイトタイマ処理2の後にRAMクリアスイッチの操作の有無を検出する方法を採ることも可能である。ただし、この場合には、RAMクリアスイッチの操作が検出される前に、遊技場の係員が押下を中断してしまうおそれがあり、遊技場の係員はRAMクリアを行ったつもりでいても、結果としてRAMクリア処理が行われないまま遊技機の制御処理が開始されるおそれもある。ウェイトタイマ処理2の前にRAMクリアスイッチの操作を検出することによって、こうした弊害を回避することができる。
上述の通り早期にRAMクリアスイッチの操作を確認する場合には、仮に、電源投入に対してRAMクリアスイッチの操作が遅れた場合には、RAMクリアスイッチが操作される前に、ステップS20の検出処理が完了してしまい、RAMクリアが正しく行われなくなるおそれもある。
かかる弊害を回避するため、ウェイトタイマ処理2(ステップS26)が完了した後に、再度、RAMクリアスイッチの操作を検出するようにしてもよい。例えば、後述するステップS28とS30の間に検出処理を設ける方法が考えられる。こうすることによって、RAMクリアスイッチの操作が電源投入から若干、遅れて行われた場合でも、RAMクリアを行うことが可能となる。
RAMクリアスイッチの操作の検出タイミングは、このように種々の設定が可能である。本実施例のように、ウェイトタイマ処理2の前でのみ検出するようにしてもよい。また、ウェイトタイマ処理2の後にのみ行うようにしてもよいし、ウェイト処理2を挟む前後で行うようにしてもよい。
ウェイトタイマ処理2(図5のステップS26)が終わった後の処理について、引き続き説明する。
CPU102は、RAMクリア報知フラグRCLが値0である時(図6のステップS28)、即ちRAMクリアスイッチが操作されていない時には、RAM104に記憶されている遊技情報のチェックサムを算出する(ステップS30)。そして、チェックサムの値が前回の電源断時に予め算出されバックアップされていたチェックサムの値と一致しているか否かを判定する(ステップS32)。
チェックサムが一致しているときには、バックアップフラグBKが値1であるか否かを判定する(ステップS34)。バックアップフラグBKは、前回の電源断時に、遊技情報、チェックサムの値などが正常にバックアップされていることを表すフラグである。
バックアップフラグBKが値1であるときには、CPU102はバックアップフラグBKに値0をセットし、RAM104にROM106から読み出した復電時の設定を行う(ステップS36)。また、電源投入時コマンド作成処理、つまりバックアップされていた遊技情報に応じた各種コマンドをRAM104の所定記憶領域に記憶させる処理を行う(ステップS38)。
上述の通り、本実施例では、チェックサムによってバックアップ情報が正常か否かを検査するとともに、バックアップフラグBKに基づいて主制御側電源断時処理が正常に終了された否かを検査している。本実施例では、この2重チェックによってバックアップ情報が不正行為により記憶されたものであるか否かを検査しているのである。
一方、RAMクリア報知フラグRCLが値1のとき(ステップS28)、つまりRAMクリアスイッチが操作されているときには、後述する通りRAM104を初期化する処理を行う。チェックサムの値が一致していないとき、またはバックアップフラグBKが値0であるときも同様である(ステップS32、S34)。バックアップが正常に行われていないと判断されるからである。
RAM104の初期化として、CPU102は、まずRAM104の全領域に値00Hを書き込むことによって、RAM104をクリアする(ステップS40)。この処理によって、大当たり判定用乱数や初期値更新型のカウンタ等の値は初期値00Hにセットされる。
次に、CPU102はROM106から読み出した初期情報をRAM104にセットする(ステップS42)。
そして、CPU102はRAMクリア報知を行う(ステップS44)。RAMクリア報知とは、RAMクリアが行われたことを報知する音声出力を指示するRAMクリア報知コマンドをサブ制御基板310に出力する処理である。コマンドを受け取った時のサブ制御基板310の動作は後述する。
以上の処理を完了すると、CPU102は割り込み初期設定を行い(ステップS46)、タイマ割り込み処理の割り込み周期を設定する。本実施形態では割り込み周期は4msとした。
CPU102が割り込み許可設定を行うと(ステップS48)、上述の割り込み周期でタイマ割り込み処理が繰り返し行われるようになる。
次にCPU102は主制御側ループ処理を実行する。
この処理では、CPU102は、まず初期化レジスタ157aに値を書き込む(ステップS50)。これはウォッチドックタイマを初期化するために必要な処理の一つである。本実施例では、循環モードを使用した場合を例示する。従って、ステップS50での初期化レジスタ157aへの書き込みの他、後述する主制御タイマ割り込み処理において、初期化レジスタ157b、157cに値が順次、設定された時に、ウォッチドックタイマが初期化されるように構成されている。
本実施例では、ステップS50では、初期化レジスタ157aに、任意の値を書き込めばよい。従って、CPU102は、この処理を実行する時点で、内部の第1レジスタ110に記憶されている値をそのまま初期化レジスタ157aに書き込む。
初期化レジスタ157aへの書き込みは任意の値でも許容されるが、予測不能な異常動作が生じるおそれを回避するため、処理上、敢えて固定値を書き込むものとしてもよい。この場合には、処理を簡素化するため、値00Hを書き込むようにすることが好ましい。
例えば、初期化レジスタ157aへの書き込み(ステップS50)に先だって、CPU102に、第1レジスタ110に記憶されている値同士の排他的論理和を算出するコマンドを実行させる。同じ値同士の排他的論理和は、値00Hとなる。第1レジスタ110に値00Hその他の任意の値を設定するコマンドは、通常、2バイト命令であるのに対し、排他的論理和を求めるコマンドは1バイト命令である。従って、排他的論理和によって得られた値を書き込む方法を採れば、プログラムサイズを抑えつつ、初期化レジスタ157aに固定値を書き込むことが可能となる。
後述する初期化レジスタ157b、157cへの書き込みも同様である。
図示する通り、主制御側ループ処理はループを構成しているため、ループ処理が正常に繰り返されるとともに、主制御タイマ割り込み処理が周期的に行われる限り、初期化レジスタ157a〜157cには、任意の値が順に設定され、ウォッチドッグタイマは常に初期化され続ける。
これに対し、CPU102の処理に異常が生じると、初期化レジスタ157への値の設定が行われなくなる。この状態で、基準時間が経過すると、WDT制御回路154(図2参照)が異常発生と判断し、リセット信号を出力し、CPU102にリセットがかかる。この結果、CPU102は電源投入時の処理(ステップS1)から再度実行する。
初期化レジスタ157aに値を設定した後、停電予告信号の入力がないときには(ステップS52)、CPU102は非当落乱数更新処理を行う(ステップS54)。非当落乱数とは、遊技中に用いられる乱数のうち抽選の当落判定にかかわらない乱数である。かかる乱数としては、例えば、抽選時に行われる変動表示のパターンを選択するための乱数が挙げられる。
CPU102は、主制御側ループ処理として、以上で説明したステップS50〜ステップS54を繰り返し行う。
一方、停電予告信号が入力されている場合(ステップS52)、CPU102は主制御側電源断時処理を行う。停電予告信号は、パチンコ遊技機1の電源電圧が停電予告電圧より低くなった時に、出力される信号である。
主制御側電源断時処理では、CPU102は、まず割り込み禁止設定を行う(ステップS56)。RAM104のチェックサム算出中に、主制御側タイマ割り込み処理が行われてRAM104への書き込みがなされることを防ぐためである。
CPU102は、次に停電クリア信号を出力する(ステップS58)。また、遊技盤面に設置された種々のソレノイドやランプ等に出力している駆動信号を停止する。
そして、RAM104の遊技情報に基づいてチェックサム算出し(ステップS60)、バックアップフラグBKに値1をセットする(ステップS62)。これによりバックアップ情報の記憶が完了する。
その後、ウォッチドックタイマの初期化を行って(ステップS64)、無限ループに入ると、電源が遮断されることによりCPU102の動作は停止する。但し、電源が遮断されない場合には、無限ループ内で、ウォッチドックタイマが初期化されなくなるため、所定時間経過後にCPU102にウォッチドッグタイマによるリセットがかかり、CPU102は主制御側電源投入時処理(ステップS1以降)を再び行う。
ここでは、主制御側電源断時処理時には、レジスタをバックアップする必要がない例を示した。バックアップが不要となるのは、次の理由による。つまり、実施例では、主制御側ループ処理のステップS52で、停電予告信号の状態を確認し、この信号が停電となる状態を示している場合に主制御側電源断時処理へ分岐している。停電となる状態とは、例えば、停電時にハイ、非停電時にロウとなる停電予告信号を用いる場合には、停電予告信号がハイとなることを意味する。このように、実施例では、予め決められた条件で、主制御側電源断時処理に移行するため、移行に際して、ループ処理や割込処理が中断されることがない。従って、実施例では、主制御側電源断時処理内でレジスタの内容をRAM104に退避する必要がないのである。
本実施例の方法では、上述の通り、主制御側電源断時処理に移行するタイミングが予め固定されている。従って、主制御側電源断時処理を安定して行うためには、停電予告信号が確認された後も、この処理が完了するまで、CPUがプログラムを実行可能な電源電圧(Vcc)を保持し続ける必要がある。電源電圧(Vcc)の保持時間は、最大で、ループ処理において、S52で停電でないと判定した後、次のループで停電信号を確認するまでの時間、タイマ割込での最大処理時間(4ms)、停電処理の開始から完了(無限ループまで)までの処理時間の合計に相当する時間となる。
これに対し、主制御側電源断時処理を任意のタイミングで割込処理として実行する方法を採ることもできる。この場合には、主制御側電源断時処理が実行されるタイミングに応じて、レジスタの内容は異なるため、電源を遮断するまでにRAM104にその内容をバックアップしておくことが好ましい。こうしておくことにより、再度、電源を投入した時に、電源遮断直前の状態からの処理を継続して行わせることが可能となる。
C2.主制御側タイマ割り込み処理:
図7は主制御側タイマ割り込み処理のフローチャートである。主制御基板100のCPU102によって、所定の割り込み周期(本実施形態では、4ms)ごとに繰り返し行われる処理である。
処理を開始すると、CPU102は、レジスタの退避を行う(ステップS71)。本実施例では、処理に使用するレジスタを第1レジスタ110から第2レジスタ120に切り換えることによって退避させることができる。
第1レジスタ110、第2レジスタ120が用意されていない場合には、第1レジスタ110の記憶内容を、RAM116上に格納することで退避させてもよい。
次に、CPU102は初期化レジスタ157b(図2参照)に値を書き込む(ステップS72)。先に説明した通り、本実施例では、任意の値を書き込めばよいため、この時点で、第2レジスタ120に記憶されている値を書き込むものとした。初期化レジスタ157aへの書き込み(図6のステップS50)と同様、第2レジスタ120の排他的論理和を求めて得られる値(00H)を書き込むようにしてもよい。
ステップS72の処理を行うことにより、主制御側ループ処理(図6参照)と合わせて、初期化レジスタ157a、157bへの書き込みが完了することになる。
以下、CPU102は、図示する各処理を順次、実行する。これらの処理の実行順序は、図示した順序に限らない。
スイッチ入力処理(ステップS73)はパチンコ機の各種スイッチの信号を入力する処理である。入力する信号としては、遊技盤に設けられた普通入賞口、始動入賞口、大入賞口に入球した遊技球の検出信号、賞球の払出コマンドの受信時に払出制御基板210が出力するACK信号、などが挙げられる。
タイマ減算処理(ステップS74)は、種々の時間管理に利用されるタイマ値を減算する処理である。初期値が設定されたタイマ値が、この減算処理によって4msずつ減算され、値0になることで、初期値に相当する時間の経過を検出することができる。タイマ値は、管理対象となる時間ごとに設けられている。管理対象となる時間としては、例えば、変動表示パターンに従って種々の図柄表示装置が点灯する時間や、払出制御基板210からのACK信号を入力するまでの所要時間などが挙げられる。
当落乱数更新処理(ステップS75)は、遊技中に抽選等に利用される種々の乱数値をカウントアップ等する処理である。本実施例では、抽選等の度に乱数を発生させる方法ではなく、ステップS75の処理によって、種々の乱数値を値1ずつカウントアップする方法をとっている。このように乱数を規則的に変化させたとしても、入賞口への入球など、各乱数を使うことになるイベントが不規則に発生するため、十分、抽選用の乱数として機能するのである。カウントアップに加えて、乱数が一巡したときには、乱数の初期値を切り換える処理も併用している。
ここで更新される乱数としては、例えば、大当たりの判定に使用される大当たり判定用の乱数、および大当たり時の図柄を決定するための大当たり図柄用の乱数が挙げられる。また普通図柄に関しては、普通図柄の当たり判定に使用される普通図柄当り判定用乱数などが挙げられる。
賞球制御処理(ステップS76)は、払出制御基板210へのコマンド送出処理である。例えば、遊技球が入賞した時には、遊技球を払い出す旨を払出制御基板210に指示する賞球コマンドを作成し、払出制御基板210に送信する。また、払出制御基板210からACK信号が所定時間内に入力されないときには、払出制御基板210との接続状態を確認するためのセルフチェックコマンドなどを作成し、払出制御基板210に送信する。
枠コマンド受信処理(ステップS77)は、パチンコ機1の枠側に取り付けられている払出制御基板210から送信されるコマンドを主制御基板100で受信する処理である。払出制御基板210のコマンドには、例えば賞球ユニットが球がみを起こして遊技球を払い出せないなどの異常を表す状態コマンドが挙げられる。
不正行為検出処理(ステップS78)は、入賞口への入賞に関する異常状態を確認し報知する処理である。例えば、大当たり遊技状態でないときに大入賞口に遊技球が入球したのを検知した場合には、CPU102は異常と判断して入賞異常報知コマンドを作成し、サブ制御基板310に出力する。
特別図柄及び特別電動役物制御処理(ステップS79)では、CPU102は、まず始動入賞口への入賞検出に応じて、大当たり判定用の乱数を予め記憶されている判定値と比較して、大当たりか否かを判定する。また、判定結果に応じて、図柄用および変動表示用の乱数値に基づいて、表示すべき図柄およびその変動パターンを決定し、その演出を行わせるための遊技演出コマンドを作成する。大当たりと判定されたときは、図柄変動の停止後に遊技盤の大入賞口の開閉板を開閉動作させる駆動信号を出力する。
普通図柄及び普通電動役物制御処理(ステップS80)でも同様に、CPU102は、普通図柄当り判定用乱数に基づく当たり判定、普通図柄の変動制御および当たり時において入賞口の開閉翼を開閉動作させるための開閉翼ソレノイドの駆動制御を行う。
ポート出力処理(ステップS81)は、上述の種々の処理で説明した信号を、主制御I/Oポートの出力端子から出力する処理であり、サブ統合基板コマンド送信処理(ステップS82)は、上述の種々の処理で設定した演出制御用のコマンドをサブ制御基板310に出力する処理である。
本実施例では、CPU102は、上述の各処理の実行時には、それぞれ出力すべき情報およびコマンドを設定してRAM104に記憶させておき、ポート出力処理およびサブ統合基板コマンド送信処理において、RAM104から情報・コマンドを読み出して出力する方法をとっている。
CPU102は、以上の処理を終えた後、初期化レジスタ157cに値を書き込む(ステップS83)。この値も任意の値でよいため、この時点で、第2レジスタ120に記憶されている値を書き込めばよい。初期化レジスタ157aへの書き込み(図6のステップS50)と同様、第2レジスタ120の排他的論理和を求めて得られる値(00H)を書き込むようにしてもよい。
ステップS83の処理を行うことにより、主制御側ループ処理(図6参照)と合わせて、初期化レジスタ157a、157b、157cへの書き込みが完了するため、ウォッチドックタイマが初期化される。
本実施例では、このように主制御側ループ処理(図6参照)と、主制御側タイマ割り込み処理(図7)にわたって、初期化レジスタ157a〜157cへの書き込みを行う。いずれの処理に異常が生じた場合でも、初期化レジスタ157a〜157cの一部または全部への値の書き込みが欠けるため、ウォッチドッグタイマによりCPUにリセットがかかることになる。従って、主制御側ループ処理(図6参照)または主制御側タイマ割り込み処理(図7)の一方のみで、初期化レジスタ157a〜157cへの書き込みを行う場合に比較して、異常が生じた場合の回復処理を安定的に行わせることが可能となる。
以上の処理を完了すると、CPU102は、レジスタを復帰させて(ステップS84)、割込許可設定を行って(ステップS85)、このルーチンを終了する。
レジスタの復帰は、本実施例では、第2レジスタ120から第1レジスタ110への切換を行えばよい。ステップS71において、RAMの所定領域にレジスタの値を退避した場合には、ステップS84では、これらの値をRAMから読み出し、それぞれを対応する各レジスタに再設定すればよい。
C3.サブ統合側処理:
サブ制御基板310は、主制御基板100からのコマンドに応じて、種々の演出制御を行う。
図示を省略するが、サブ制御基板310が実行する処理も、主制御側ループ処理(図6)と同様のループと、主制御側タイマ割り込み処理(図7)と同様の割込処理から構成される。サブ制御基板310は2ms周期で割り込み処理を実行するとともに、16ms周期で「16ms定常処理」を実行する。
この16ms定常処理では、主制御基板100からの各種コマンドを解析するコマンド解析処理、パネル装飾ランプ12、枠装飾ランプ31(図1参照)の点灯制御を行うランプ処理、演出用の音声や警報音などの出力処理、装飾図柄制御基板350を介してLCD16に演出用の画面を表示させる処理、これらの処理が正常に行われていることを監視するウォッチドックタイマ処理、および役物の駆動パターンをスケジューラにセットする処理等を行う。
サブ制御基板310は、16ms定常処理を繰り返し実行する他、種々の割り込み処理を行う。かかる割り込み処理としては、2msタイマ割り込み、コマンド受信割り込み処理、コマンド受信終了割り込み処理があげられる。
C4.払出制御基板の制御処理:
払出制御基板210は、主制御基板100からの指示に従って、遊技媒体の払い出しを制御する。
払出制御基板210が実行する制御処理は、主制御基板100と同様、ループ状のメイン処理とタイマ割込処理とから構成することも可能であるが、本実施例では、メイン処理内で払出に必要な処理を繰り返し実行するものとした。
D.効果
(1) 以上で説明した実施例のパチンコ機1によれば、初期化レジスタ157に任意の値を書き込めばよいため、書き込み処理を簡素化することができ、プログラムサイズを低減させることができる利点がある。
図8は初期化レジスタ157への書き込み時の処理内容を示す説明図である。
図8(a)には固定値Vaを書き込む場合の処理内容を示した。書き込みには、第1レジスタ110または第2レジスタ120に含まれるAレジスタを用いるものとする。
CPU102は、まず従前のAレジスタの値を、ストア(ST)命令によって、アドレスnnHで示されるメモリ上の領域に退避する(ステップS50a)。この時、図の右側に示す通り、Aレジスタの値は、従前の値V1が格納されている。
次に、CPU102は、初期化用の設定値Vaを、ロード(LD)命令によって、Aレジスタに設定する(ステップS50b)。図の右側に示す通り、この処理によって、Aレジスタの値は、Vaに書き換えられる。
そして、CPU102は、Aレジスタの値を初期化レジスタ157aに書き込む(ステップS50c)。図中では、初期化レジスタ157を、「WCL」と表した。この書き込みは、ロード(LD)命令によっても実現可能であるが、ここでは、説明の便宜上、書き込みは全てストア(ST)命令で示した。
書き込みを終えると、CPU102は、アドレスnnHのメモリ領域から、ステップS50aで退避した値V1を読み出し、Aレジスタに復帰する(ステップS50d)。図の右側に示す通り、この時点で、Aレジスタの値はV1に回復する。
固定値Vaを初期化レジスタに書き込む場合には、上述の通り、4ステップの処理が必要となる。ストア(ST)命令およびロード(LD)命令は、3バイト命令であるから、書き込みのためには11バイトを要する。また、スタックを用いて、Aレジスタの値の退避(ステップS50a)/復帰(ステップS50d)を行うことによって、退避コマンド(PUSH)/復帰コマンド(POP)がそれぞれ1バイト命令で済ませることができるとしても、書き込みのためには7バイトを要することになる。
図8(b)には任意の値を書き込む場合の処理内容を示した。
この処理では、CPU102は、初期化レジスタ157に、Aレジスタの値を書き込むだけで済む。初期化レジスタ157に設定すべき固定値をAレジスタに設定する必要がないため、図8(a)のステップS50bの処理は不要となる。また、Aレジスタの値が書き換えられないため、Aレジスタの退避/復帰(図8(a)のステップS50a、S50d)の処理も不要となる。このように、任意の値を書き込む場合には、初期化レジスタ157への書き込み処理は、固定値を書き込む場合の1/4のプログラムサイズで済むことになる。
(2) 本実施例のパチンコ機1では、主制御側電源投入時処理(図4)において、ウォッチドッグタイマに対して、設定データを2回にわたって出力することで(ステップS2、S3)、設定および起動を行っている。このため、ウォッチドッグタイマが、誤った設定がなされたり、異常な状態で起動されたりすることを回避できる。
また、CPU102は、ステップS5〜7の処理によって、ウォッチドッグタイマが正常に起動していることを確認する。こうすることによって、ウォッチドッグタイマが誤って起動しないままで制御処理が行われることを回避できる。従って、制御処理に異常が生じた時には、ウォッチドッグタイマの作用によって適正にリセットがかかるため、異常からの復旧を安定的に行うことが可能となる。
E.変形例:
E1.変形例(1):
実施例では、ウォッチドッグタイマを、起動後に設定(図4のステップS2〜S4)した動作モードで一貫して使用する場合を例示した。これに対して、ウォッチドッグタイマの動作モードを途中で切換可能な構成としてもよい。
図9は変形例(1)における主制御側電源投入時処理のフローチャートである。図6のステップS48に続く処理を示した。
変形例では、処理を開始した後、実施例(図4)と同様の処理によって、ウォッチドッグタイマの設定を行う。この際、ステップS2〜S4では、単純モードに設定する。併せて、初期化レジスタ158に書き込むべき値も設定する。
この状態で、CPU102は、図5、5に示す処理を実行する。
単純モードでは、主制御側ループ処理(図6参照)を開始するまでの所要時間に余裕を持たせた値を、ウォッチドッグタイマの基準値として設定しておくことが好ましい。こうすることによって、主制御側ループ処理が開始されるまでの間は、初期化レジスタ158への書き込みを省略することが可能となる。
変形例では、図6のステップS48の処理が完了すると、図9に示す処理に移行し、ウォッチドッグタイマの動作モードを循環モードに切り換える。この場合は、コントロールレジスタ156に、循環モードの設定データを2回書き込めばよい(ステップS49a〜S49c)。書き込みが行われると、ウォッチドッグタイマは、循環モードで起動する。
また、このように動作モードの切換を行った後、CPU102は実施例(図4)と同様、ウォッチドッグタイマのタイマ値の変化の有無に基づいて、ウォッチドッグタイマが正常に起動したか否かを判断する(ステップS49d〜S49g)。
CPU102は、タイマ値に変化がない場合は、ウォッチドッグタイマが正常に起動していないものと判断し、循環モードの再設定(ステップS49a)以降の処理を再度実行する。実施例(図4)と同様、全体の再起動(図4のステップS1以降の処理の再試行)を行うようにしてもよい。ただし、変形例では、循環モードの設定を行うまでに行った処理(図4〜図6)が無駄になることを回避するため、全体の再起動は、循環モードの再設定を行ってもウォッチドッグタイマが正常に起動しない場合に限定して行うことが好ましい。
単純モードでの起動時(図4のステップS2〜4)で、ウォッチドッグタイマが正常に起動することが確認済みであるから、循環モードの設定・起動時(図9のステップS49a〜S49c)では、正常に起動するものと考え、起動の確認(ステップS49d〜49g)を省略してもよい。
変形例の処理によれば、ウォッチドッグタイマの動作モードを切り換えることができる。
循環モードには、経過時間初期化のために、初期化レジスタ157a〜157cへの値の書き込みが必要である。経過時間初期化するための処理が煩雑になる分、誤った経過時間初期化を回避でき、安定的な動作をさせることができる利点がある。また、主制御側ループ処理(図6)および主制御側タイマ割込処理(図7)の双方にわたって、初期化レジスタ157a〜157cへの書き込みを行うことによって、双方の処理のいずれで異常が発生しても対処できる利点がある。
一方、単純モードとは、初期化レジスタ158への値の書き込みによって経過時間初期化が可能である。誤った経過時間初期化が行われる可能性は循環モードよりも高いが、経過時間初期化するための処理が簡易であるという利点がある。
変形例では、主制御側ループ処理(図6)が開始されるまでの間は、比較的簡易な動作モードである単純モードを用い、主制御側ループ処理(図6)および主制御側タイマ割込処理(図7)が開始された後は、双方の異常に総合的に対処可能な循環モードを用いる。このように、2つの動作モードを切り換えることによって、それぞれの処理内容に適した状態でウォッチドッグタイマを稼働させることができる。
変形例において、循環モードの起動確認時(ステップS49g)に異常と判定された場合には、再びWDTコントロールレジスタに単純モードの設定を書き込むことで、循環モードによる設定を中止し単純モードに切り替えてもよい。電源投入直後において単純モードで正常に動作することは確認されているため、循環モードを中止して単純モードを引き続き使用するよう設定することによって、速やかにウォッチドッグタイマを起動させることができる。単純モードを引き続き使用する場合には、既に正常に動作することが確認されているため、ステップS49d〜S49gの起動確認は省略してもよい。
E2.変形例(2):
実施例および変形例では、タイマ値の変化によってウォッチドッグタイマが正常に起動しているか否かを判断する例を示した。これに対し、WDT制御回路154から稼働中か否かを示すフラグなどの情報を出力可能な構成としてもよい。例えば、フラグのデフォルト値として値0を設定しておき、正常に稼働した場合には、値1に変更するように構成しておく方法が考えられる。CPU102は、このフラグの値を参照することにより、容易かつ速やかに、ウォッチドッグタイマの稼働状況を確認することが可能となる。
このフラグは、ソフトウェア的に構成してもよいが、ハードウェア的に構成する方が好ましい。
また、このフラグはウォッチドッグタイマが起動した後も、ソフトウェア的に0に書換可能としてもよい。ウォッチドッグタイマが正常に稼働している時は、このフラグが再び値1に変更されることになる。こうすることにより、電源投入時だけでなく定期または不定期にこのフラグを確認すれば、定常的にウォッチドッグタイマの稼働状況を容易に判別することができる。
この場合、定期的なタイミングとしてはタイマ割込毎、主制御側ループ処理の開始毎とすることができる。また、不定期なタイミングとしては、入賞口、始動口等への入賞タイミング、変動開始時、図柄停止時、大当たり時等の所定のイベントが生じた時点としてもよいし、これらのイベントと無関係にランダムなタイミングで確認するようにしてもよい。例えば、確認タイミングを決定するための専用乱数を設け、この乱数が特定の値となった場合に、フラグの確認を行う方法が考えられる。ただし、不定期に確認を行わせるためには、この乱数は、高速で更新されるハード乱数か、ソフト的に定期的に更新されるような乱数の場合には、ランダムな数列となるような乱数としておく必要がある。
E3.変形例(3):
実施例および変形例では、クロック153からの矩形波を計数することによって計時を行うディジタルタイマを備える場合を例にとって、タイマ値の変化によりウォッチドッグタイマが正常に起動しているか否かを確認する例を示した。
ウォッチドッグタイマは、コンデンサ(C)と抵抗(R)の組み合わせ回路、いわゆるRC回路を用いてアナログで構成することもできる。RC回路の電圧は、電圧印加開始後の時間とともに、時定数に応じた一定の変化を示すことが知られているから、この電圧値が、基準時間に対応する所定電圧レベルに達した時に、演算部の動作をリセットするよう構成すればよい。この場合には、初期化レジスタへの書き込みが行われた時には、コンデンサ(C)を放電させる処理を行うことによって、初期化することができる。また、リセットがかかるまでの基準時間は、RC回路の時定数を設定する方法(例えば、可変抵抗器等を用いる方法)、リセットをかける際の基準となる電圧レベルを設定によって変更する方法などによって、調整することが可能である。
変形例(3)では、このようなアナログのウォッチドッグタイマを用いた場合に、正常に起動しているか否かを確認する方法を示す。
図10は変形例(3)における主制御側電源投入時処理のフローチャートである。
処理を開始すると、CPU102は、実施例(図4)と同様、割込モードの設定、およびスタックポインタの設定を行い(ステップS1a)、ウォッチドッグタイマのコントロールレジスタの設定を行う(ステップS2a)。動作モードは単純モード、循環モードのいずれでもよい。
次に、CPU102は、WDT起動フラグがオンとなっているか否かを確認する(ステップS3a)。WDT起動フラグは、ウォッチドッグタイマの起動確認処理が済んでいるか否かを示すためのフラグである。電源投入後、最初にこの処理を実行する段階では、WDT起動フラグはオフとされている。
WDT起動フラグがオフの時、CPU102は、WDT起動フラグをオンにした後(ステップS4a)、無限ループに突入する。この結果、ウォッチドッグタイマが正常に起動していれば、基準時間が経過すると、ウォッチドッグタイマによるリセットがかかりCPU102はステップS1aから処理を再開することになる。この際、WDT起動フラグの値は保持される。
リセットがかかると、CPU102はステップS1a〜S3aの処理を再度実行する。ステップS3aでは、WDT起動フラグがオンとなっているため、無限ループ(ステップS4a以降)には突入せず、WDT起動フラグをオフとした後(ステップS5a)、図5以降の処理に移行する。
最初に無限ループ(ステップS4a以降)を実行している時に、ウォッチドッグタイマが正常に起動していないと、リセットがかからないため、無限ループが実行され続ける。そこで、無限ループの実行時間または実行回数に上限を設け、この上限を超えた場合には、ウォッチドッグタイマが正常に起動していない場合でも、割込処理によって強制的にリセットをかけるようにしておくことが好ましい。
この場合には、リセット後に、再度、ウォッチドッグタイマが正常に起動していることを確認することが望ましいため、WDT起動フラグをオフとしておくことが好ましい。
変形例(3)の処理によれば、ウォッチドッグタイマによるリセットを生じさせてみることによって、正常に起動しているか否かを確認することができる。この方法によれば、ウォッチドッグタイマがアナログ、ディジタルいずれで構成されている場合にも適用することができる利点がある。
また、変形例(3)では、ウォッチドッグタイマによるリセットの基準時間を十分に長く、例えば200ミリ秒(ms)以上、しておくことが好ましい。こうすることによって、停電クリア信号を出力開始した後のウェイトタイマ処理1(図5のステップS14)を省略することが可能となる。ウェイトタイマ処理1は、電源投入後に、電源電圧が安定するまでの待ち時間であるから、ウォッチドッグタイマの起動確認時に十分な時間が経過していれば、それ以上に待ち時間を設ける必要はないからである。
また、変形例(3)では、ウォッチドッグタイマによるリセットの基準時間を、その他の場合よりも短くしてもよい。こうすることによって、ウォッチドッグタイマの動作確認(ステップS4a後の無限ループ)に要する時間が短くて済むという利点がある。もっとも、この場合でも、一旦、ウォッチドッグタイマの動作を確認した後は、基準時間を通常の設定値としておく必要がある。このため、例えば、基準時間の設定値を、ステップS4aの直前で短くし、ステップS5aの直前で通常の値に戻すようにしてもよい。また、WDT起動フラグがOFFの場合には、ステップS2aで短い基準時間を設定し、ONの場合には、通常の値を設定するようにしてもよい。
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。
本発明は、パチンコ機のみならず、スロットマシンなど種々の遊技機に適用可能である。
また、上述の実施例において、ソフトウェアで実現している部分はハードウェア的に実現するようにしてもよいし、その逆を行っても良い。
実施例としてのパチンコ機1の制御用ハードウェア構成を示すブロック図である。 主制御基板100上のワンチップマイクロコンピュータの回路構成を示す説明図である。 停電監視回路の構成を示す説明図である。 主制御側電源投入時処理の一例を示すフローチャート(1)である。 主制御側電源投入時処理の一例を示すフローチャート(2)である。 主制御側電源投入時処理の一例を示すフローチャート(3)である。 主制御側タイマ割り込み処理のフローチャートである。 初期化レジスタ157への書き込み時の処理内容を示す説明図である。 変形例(1)における主制御側電源投入時処理のフローチャートである。 変形例(3)における主制御側電源投入時処理のフローチャートである。
符号の説明
1…パチンコ機
4a…表示部
4b…操作スイッチ
12…パネル装飾ランプ
16…LCD
20…賞球払出装置
21…払出モータ
22…払出球検出器
23…モータ駆動センサ
29…スピーカ
31…枠装飾ランプ
32、34…ランプ中継基板
41…特別図柄表示装置
42…入賞検出器
43…大入賞口ソレノイド
47…発射制御基板
48…タッチ検出部
49…発射モータ
100…主制御基板
102…CPU
104…RAM
106…ROM
110…第1レジスタ
120…第2レジスタ
150…内部バス
151…INT優先順位制御回路
152…タイマ回路
153…クロック
154…WDT制御回路
155…パラレルポート
156…コントロールレジスタ
157、157a〜157c、158…初期化レジスタ
210…払出制御基板
310…サブ制御基板
350…装飾図柄制御基板

Claims (1)

  1. 所定の遊技媒体を用いて遊技を行う遊技機であって、
    前記遊技の進行を制御するための制御処理を表す制御プログラムを格納したメモリと、
    前記制御プログラムに従って、前記制御処理を実行する演算部と、
    前記演算部の制御処理の異常を監視するための制御処理監視部とを有し、

    前記制御処理監視部は、
    起動後または初期化後の経過時間が所定の基準時間を超過すると、前記演算部の動作をリセットするリセット処理部と、
    前記演算部が値を書き込み可能な複数の初期化レジスタと、
    前記複数の初期化レジスタのそれぞれに、前記演算部から書き込みが行われた場合には、前記経過時間の計測を初期化する経過時間初期化部とを有し、

    前記演算部は、前記制御処理を行う際に、情報の記憶または演算に使用する処理用レジスタを有しており、
    前記制御処理は
    記複数の初期化レジスタに対し、それぞれ前記経過時間が前記基準時間を超えない所定のタイミングで、前記処理用レジスタに記憶されている値を書き込む経過時間初期化処理を含み、

    前記経過時間初期化部は、
    前記複数の初期化レジスタに規定の順序で値が書き込まれた場合に前記初期化を行うよう構成されると共に、
    前記複数の初期化レジスタへの値の書き込みが行われた時に前記初期化を行う循環モードと、単一の初期化レジスタに値の書き込みが行われた時に前記初期化を行う単純モードとを選択的に設定可能とされ、

    前記経過時間初期化処理は、
    前記規定の順序で、前記複数の初期化レジスタへの値の書き込みを行う処理であって、前記初期化レジスタへの書き込みに先立って、前記処理用レジスタの値を、その排他的論理和で得られる値に更新し、得られた結果を前記初期化レジスタに書き込む処理であり、

    前記制御処理は、
    電源投入時に実行される電源投入時処理と、
    前記電源投入時処理に引き続いて実行されるメインループ処理と、
    所定の割り込み周期毎に実行されるタイマ割り込み処理と、を含み、

    前記経過時間初期化処理は、
    前記メインループ処理と前記タイマ割り込み処理とに亘って実行され、

    前記電源投入時処理は、
    前記経過時間初期化部の動作モードを前記単純モードに設定する処理を含み、
    前記制御処理は、
    前記電源投入時処理の終了後、前記メインループ処理に移行する前に、
    前記経過時間初期化部の動作モードを前記循環モードに切り換え設定する処理を含む、
    ことを特徴とする遊技機。
JP2007319393A 2007-12-11 2007-12-11 遊技機 Active JP5238951B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007319393A JP5238951B2 (ja) 2007-12-11 2007-12-11 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007319393A JP5238951B2 (ja) 2007-12-11 2007-12-11 遊技機

Publications (2)

Publication Number Publication Date
JP2009142303A JP2009142303A (ja) 2009-07-02
JP5238951B2 true JP5238951B2 (ja) 2013-07-17

Family

ID=40913642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007319393A Active JP5238951B2 (ja) 2007-12-11 2007-12-11 遊技機

Country Status (1)

Country Link
JP (1) JP5238951B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014087606A (ja) * 2013-09-24 2014-05-15 Fujishoji Co Ltd 遊技機
JP6757197B2 (ja) * 2016-07-25 2020-09-16 株式会社平和 遊技機
JP6261703B2 (ja) * 2016-11-04 2018-01-17 株式会社三共 遊技機
JP6261704B2 (ja) * 2016-11-04 2018-01-17 株式会社三共 遊技機

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4178210B2 (ja) * 2002-01-18 2008-11-12 株式会社大一商会 遊技機
JP4811928B2 (ja) * 2006-03-23 2011-11-09 株式会社大一商会 パチンコ機

Also Published As

Publication number Publication date
JP2009142303A (ja) 2009-07-02

Similar Documents

Publication Publication Date Title
JP5238952B2 (ja) 遊技機
JP5250804B2 (ja) 遊技機
JP5120931B2 (ja) 遊技機
JP5120932B2 (ja) 遊技機
JP4264593B2 (ja) 遊技機
JP4656110B2 (ja) 遊技機
JP5238951B2 (ja) 遊技機
JP4431819B2 (ja) 遊技機
JP2009000241A (ja) 遊技機
JP4321642B2 (ja) 遊技機
JP2009112437A (ja) 遊技機
JP5805741B2 (ja) 遊技機
JP5450766B1 (ja) 遊技機
JP4023322B2 (ja) 遊技機
JP2008023224A (ja) 遊技機
JP2016026594A (ja) 遊技機
JP4492685B2 (ja) スロットマシン
JP5390680B1 (ja) 遊技機
JP4395809B2 (ja) 遊技機
JP4379514B2 (ja) 遊技機
JP4428439B2 (ja) 遊技機
JP4320685B2 (ja) 遊技機
JP4428438B2 (ja) 遊技機
JP4665958B2 (ja) 遊技機
JP5450767B1 (ja) 遊技機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120925

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121114

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20121114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130221

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250