はじめに、本実施の形態から抽出され得る発明群を手段n(n=1,2,3…)として区分して示し、それらを必要に応じて効果等を示しつつ説明する。
(手段1)「複数の回胴を回転させた後に、この回胴を停止させることで遊技を行う遊技機において、
メダルを払い出すためのメダル払い出し手段と、
当該メダル払い出し手段を駆動制御するための出力制御情報生成手段が設けられ、
当該出力制御情報生成手段では、メダル払い出し状態となったときにセットされるメダル払い出しコードを利用して、上記出力制御情報が生成されるようになされたことを特徴とする遊技機。」
この遊技機によれば、メダル制御情報として使用されるメダル払い出しコードを参照して、メダル払い出し状態の有無を判別する。メダル払い出し状態のときに得られる出力制御情報はメダル払い出し手段に対する制御情報であり、出力制御情報が生成されるとメダル払い出し手段が動作してメダルが遊技機の前面扉側に設けられた払い出し口を介してメダル受け皿側に払い出される。
従来のようにメダル払い出し状態となったとき直ちにメダル払い出し用の出力制御情報を生成したのでは、外来ノイズや不正行為によっても、このメダル払い出し用の出力制御情報が生成されてしまう可能性がある。
しかし、メダル払い出し状態となったときだけメダル制御情報であるメダル払い出しコードをセットすると共に、セットしたこのメダル払い出しコードと参照コードを照合し、照合結果が一致したときだけ、出力制御情報を生成するようにすれば、メダル払い出しコードに一致しない限りメダルが払い出されない。メダル払い出しモード以外のとき、不正行為(ゴト)などによって特定コードよりなるメダル払い出しコードを生成することは困難である。
この処理を行うことによって、外来ノイズや不正行為からのメダル払い出しを有効に保護でき、安全性を確保した信頼性の高い遊技機を提供できる。
(手段2)「手段1において、メダル払い出しコードが参照コードに一致したとき、メダル払い出し用の出力制御情報が生成されるようにしたことを特徴とする遊技機。」
この遊技機によれば、メダル払い出しのときに使用される参照コードを予め用意し、メダル払い出し状態となったときには、メダル払い出しコードと参照コードとを比較する。メダル払い出しコードが参照コードに一致したときだけ、メダル払い出し用の出力制御情報を生成することで、外来ノイズや不正行為による影響を受けにくくすることができる。これで、信頼性やセキュリティに強い遊技機を提供できる。
(手段3)「手段1において、メダル払い出しコードは2ビット以上の特定コードであることを特徴とする遊技機。」
この遊技機によれば、メダル払い出しコードとして2ビット以上の特定コードを用意する。2ビット以上であるため、外来ノイズによってメダル払い出しコードと同じコードが生成される確率は低い。同じように、メダル払い出しモード以外のとき、不正行為によってメダル払い出しコードと同じコードが生成される確率も低い。したがって、外来ノイズや不正行為からのメダル払い出しを有効に保護できる。
(手段4)「手段3において、メダル払い出しコードは1バイトからなる特定コードであることを特徴とする遊技機。」
この遊技機によれば、メダル払い出しコードが1バイト長からなる特定コードであるため、予め用意されたメダル払い出しコードと全く同じ1バイト分のデータを生成することは極めて困難である。外来ノイズでは、1バイト分のメダル払い出しコードを生成することはまずあり得ない。不正行為によっても同じである。メダル払い出しコードと同じ配列で8ビット分のデータを、間違いなく生成することは極めて難しいからである。
(手段5)「手段1において、メダル払い出し状態になったとき、遊技機全体の制御を司る主制御部に設けられたメモリ手段に、上記メダル払い出しコードがセットされることを特徴とする遊技機。」
この遊技機によれば、遊技機全体の制御を司る主制御部に設けられたメモリ手段にメダル払い出しコードがセットされる。メダル払い出しコードは参照コードとの照合処理を行う関係で、主制御部に設けられたメモリ手段に、メダル払い出し状態となったタイミングにセットされる。
こうすれば、メダル払い出し状態のときだけメモリ手段にメダル払い出しコードがセットされるため、メダル払い出し以外の状態のときには参照すべき特定コードが存在しないので、誤ってメダルを払い出すような事態は皆無となり、より安全な遊技機を実現できる。
(手段6)「手段5において、上記メモリ手段はワーキング用に設けられたRAMであることを特徴とする遊技機。」
この遊技機によれば、主制御部のワーキング用のメモリ手段であるRAMをメダル払い出しコードをセットするメモリ手段として利用すれば、メモリ手段を兼用することができ、経済的である。
(手段7)「手段1において、上記メダル払い出しコードは、参照コードに対する照合用として使用されることを特徴とする遊技機。」
この遊技機によれば、2ビット以上で構成されたメダル払い出しコードを参照コードとして使用することによって、照合精度に対する信頼性が高まり、より安全な遊技機を提供できる。
(手段8)「手段7において、上記参照コードは、上記メダル払い出しコードと同一であることを特徴とする遊技機。」
この遊技機によれば、メダル払い出しコードと同じコードを参照コードとして使用する。メダル払い出しコードが1バイト構成であるときは、1バイトの参照コードとなされ、しかもそのビット内容もメダル払い出しコードと同じである。例えばメダル払い出しコードが「5AH(01011010)」(Hはヘキサデシマル表示。以下同じ)であるときは、参照コードも同じ「5AH」である。
(手段9)「手段7において、上記参照コードは、出力制御情報生成処理プログラム中に記述されたコードが使用されることを特徴とする遊技機。」
この遊技機によれば、出力制御情報生成処理プログラム中に記述されたコードを参照コードとして利用する。処理プログラム中のコードが不正行為によって改ざんされることはまずあり得ないので、プログラム記述コードを参照コードとして利用することで照合処理への信頼性が格段と高まることになり、これによってより一層のセキュリティ対策を講じることができる。
(手段10)「手段7において、メダル払い出しコードが参照コードに一致したとき、メダル払い出しのための出力制御情報が生成されることを特徴とする遊技機。」
この遊技機では、参照コードとメダル払い出しコードとを照合し、一致したときだけメダル払い出し手段を制御するための出力制御情報が生成される。出力制御情報が生成されると、メダル払い出し手段が動作して、入賞に応じた枚数だけメダル払い出しが行われる。メダル払い出し処理は、メダル受け皿へのメダル送り出しである。
(手段11)「手段10において、出力制御情報は1ビットデータであることを特徴とする遊技機。」
この遊技機によれば、1ビットデータで出力制御情報が構成される。この例では、出力制御情報が”1”のとき、メダル払い出し処理となり、入賞枚数分だけメダル受け皿へメダルが送り込まれる。
(手段12)「手段1において、上記出力制御情報生成手段は、MPUよりなる主制御部で構成されることを特徴とする遊技機。」
この遊技機によれば、MPUよりなる主制御部が出力制御情報生成手段として機能するので、処理の高速化を実現できる。
(手段13)「手段12において、上記主制御部はさらに入出力ポートを有し、
この入出力ポートに上記メダル払い出し手段が接続されると共に、
当該入出力ポートに上記出力制御情報が書き込まれるようになされたことを特徴とする遊技機。」
この遊技機によれば、主制御部で生成された各種出力制御情報は入出力ポートに書き込まれる。入出力ポートには当該出力制御情報によって制御される被制御部が接続される。被制御部の1つとして上述したメダル払い出し手段がある。メダル払い出しコードとの照合結果から生成された1ビットの出力制御情報はこの入出力ポートに書き込まれ、書き込まれた出力制御情報に基づいてメダル払い出し手段の制御状態(メダルを払い出しするか、しないか)が決定する。
(手段14)「手段1において、上記メダル払い出し手段は貯留されたメダルを払い出しするメダル払い出し装置を有し、
上記出力制御情報は、当該払い出し装置に設けられた駆動モータに対する駆動制御信号であることを特徴とする遊技機。」
この遊技機によれば、メダル払い出し装置に設けられた駆動モータに対する駆動制御信号として出力制御情報が使用される。例えば特定の出力制御情報が(”1”)になると、駆動モータが駆動されて回転ディスクが回転して、貯留されたメダルの払い出しが実行される。駆動モータはステッピングモータなどが使用される。
(手段15)「手段1において、上記出力制御情報は、制御命令データの1つであることを特徴とする遊技機。」
この遊技機によれば、入出力ポートに書き込まれる出力制御情報としての制御命令データは複数の制御命令ビット群で構成され、個々の制御命令ビットは何れも1ビット構成である。制御命令データを構成する制御命令ビットの1つがメダル払い出し用の出力制御情報として使用される。
(手段16)「手段15において、上記メダル払い出し用の出力制御情報を除く制御命令データは、ワーキング用のメモリ手段にセットされることを特徴とする遊技機。」
この遊技機によれば、制御命令データにはメダル払い出し用の出力制御情報が含まれるが、このメダル払い出し用の出力制御情報を除いた制御命令データがワーキング用のメモリ手段に出力制御情報としてセットされる。メダル払い出し用の出力制御情報を1ビットで構成したとき、このメダル払い出し用の出力制御情報を、他の制御命令データと同じくメモリ手段にセットしたとすると、上述したように外来ノイズによってメダル払い出し用出力制御情報が反転したり、不正行為によって改ざんされてメダル払い出し出力制御情報が反転するおそれがある。
この発明ではメモリ手段にセットされたメダル払い出し用出力制御情報は本来のメダル払い出し用の出力制御情報としては使用しない。これによってメダル払い出しに対するセキュリティを確保できる。
(手段17)「手段16において、上記制御命令データのうち、メダル払い出し用出力制御情報を示すビットデータのみ、前処理してから照合処理が行われることを特徴とする遊技機。」
この遊技機によれば、メダル払い出し用出力制御情報を示すビットデータだけが前処理してから照合処理され、その後に入出力ポートに出力される(書き込まれる)。その他の制御命令データはスルーで、つまりメモリ手段にセットされたままのデータ内容で入出力ポートに出力される。
このようにメダル払い出しを制御するメダル払い出し用出力制御情報のみ前処理するのは、このメダル払い出し用出力制御情報を示すビットデータは入出力ポートに書き込む(出力する)直前で処理するようにしたためである。入出力ポートに書き込む直前で当該メダル払い出し用出力制御情報を示すデータを処理するのは、できるだけ終段の処理系でメダル払い出し用出力制御情報をセットした方が、外来ノイズや不正行為による影響を受けにくくなるからである。
(手段18)「手段17において、上記前処理は、上記メダル払い出し用出力制御情報を示すビットデータを”0”に初期化するための処理であることを特徴とする遊技機。」
この遊技機によれば、メダル払い出し用出力制御情報に対し、メダル払い出し手段が動作しないようにするための処理(例えば、”0”とする初期化処理)を前もって施すことで、万が一にも入出力ポートに、”1”なる出力制御情報が書き込まれないようにするためである。
(手段19)「手段16において、上記制御命令データを上記入出力ポートに出力する際、メダル払い出し状態となったときにセットされたメダル払い出しコードと参照コードとの照合処理が行われ、一致したときのみ、上記メダル払い出し用出力制御情報が書き替えられて上記入出力ポートに書き込まれるようになされたことを特徴とする遊技機。」
この遊技機によれば、制御命令データを入出力ポートに出力するときに、メダル払い出し状態を判断し、メダル払い出し状態となったときにセットされたメダル払い出しコードを参照する。そして、参照コードと一致している場合に限り、メダル払い出し用出力制御情報ビットの書き替え処理を行ってから、このメダル払い出し用出力制御情報ビットデータを、他の制御命令データと一緒に入出力ポートに書き込む。
上述したように、メモリ手段にセットされるメダル払い出しコードは1バイト程度の長さの特定コードが使用される。参照コードは特定コードと同じコードである。メダル払い出しコードは参照コードと同じコードであるから、不正行為などが行われて、メダル払い出しコード内容が書き替えられたようなときには、参照コードとメダル払い出しコードは一致しなくなる。
メダル払い出し状態となっていないときは、メモリ手段にメダル払い出しコードはセットされない。不正行為でメダル払い出しコードと同じコードをメモリ手段にセットすることは(換言すれば、1バイトのデータを不正に生成することは)およそ不可能である。このような不正が行われたときは、少なくともメダル払い出しコードとは異なるコードがメモリ手段にセットされることになる。
その結果、不正行為が行われたようなときには、メダル払い出しコードと参照コードとは一致しないので、メダル払い出し処理は行われない。
参照コードは上述したように処理プログラム中に記述されたものが使用されるものであるから、メダル払い出し状態にあるときに照合不一致の結果になったときは、何らかの不正が行われたことになる。このとき警告情報を生成し、ホール関係者に通知するようにすることもできる。
(手段20)「手段15において、上記制御命令データには、投入されたメダルの送給先をセレクトするメダルセレクタ用の出力制御情報が含まれることを特徴とする遊技機。」
この遊技機によれば、投入されたメダルの送給先をセレクトするメダルセレクタ用の出力制御情報も制御命令データの1つとして含まれている。メダルを貯留するかしないかの問題も非常に重要である。
遊技機の電源がオフされているとき、ゲーム中にあるとき、メダルクレジットがセットされていないときなどの場合には、遊技者がメダル投入口に投入したメダルは返却されなければならない。つまり、投入したメダルはメダル受け皿側に戻されなければならない。このように本来では、メダルを受け皿側に戻すべきところ、外来ノイズなどによって遊技機本体側に貯留されてしまうような誤動作は避けなければならない。
この誤動作を避けるためには、メダルセレクタを正確にコントロールする必要がある。換言すれば、メダル貯留モード時のみメダルセレクタがメダル貯留側に切り替えられる必要がある。そのため、メダルセレクタ用の出力制御情報が外来ノイズなどによって書き替えられてしまうような事態を回避するため、メダル払い出し時と同じく、メダルを貯留するか、メダルを受け皿に戻すかのメダルセレクタ用出力制御情報もメダル払い出しと同じ精度で管理される。
(手段21)「手段20において、メダルセレクタ用出力制御情報は、メダル貯留モードになったときにセットされるメダル貯留コードを利用して生成されることを特徴とする遊技機。」
この遊技機によれば、メダル払い出しコードと同じく、メダル貯留モードとなったときにだけ、メダル貯留コードがメダル制御情報としてセットされ、セットされたメダル貯留コードを利用してメダル貯留用出力制御情報が生成される。
(手段22)「手段21において、上記メダル貯留コードは2ビット以上のビット長で構成されることを特徴とする遊技機。」
この遊技機によれば、メダル貯留コードも2ビット以上のビット長を有する。具体的には、メダル払い出しコードと同じ1バイト構成とすることができる。処理上からの制限もあるが、ビット長を長くすることで、安全精度が一層高くなる。
(手段23)「手段15において、メダルを受け皿側に戻すためのメダル制御情報として使用されるメダル貯留用出力制御情報は、前処理してから上記ワーキング用のメモリ手段に書き込まれることを特徴とする遊技機。」
この遊技機によれば、メダル貯留用制御情報も、メダル払い出し用出力制御情報と同じく特定の制御命令データであって、このメダル貯留用出力制御情報も前処理してからワーキング用のメモリ手段にセットする。前処理は例えば”0”とする初期化処理である。メダル貯留用出力制御情報が”1”のとき、メダルセレクタが作動してメダルを貯留するホッパ側にメダル通路が切り替わり、”0”のときは、メダル通路は切り替わらない。その結果、投入されたメダルはメダル受け皿側に戻される。
(手段24)「手段15において、上記制御命令データを上記入出力ポートに出力する際、メダル貯留モードとなったときにセットされたメダル貯留コードと参照コードとの照合処理が行われ、一致したときのみ、上記制御命令データのうちのメダル貯留用出力制御情報が書き替えられて書き込まれるようになされたことを特徴とする遊技機。」
この遊技機によれば、制御命令データを入出力ポートに出力するときに、メダル貯留モードか否かを判断し、メダル貯留状態となったときにセットされたメダル貯留コードが参照コードと一致している場合に限り、メダル貯留用出力制御情報ビットの書き替え処理を行って入出力ポートに書き込む。
メダル貯留コードは、メダル払い出しコードと同じくメダル制御情報の一種であるが、メダル払い出しコードとは異なるコード(例えば、A5H(10100101))に設定される。そのとき使用される参照コードはメダル貯留コードと同じコードである。
上述したように、メモリ手段にセットされるメダル貯留コードは1バイト程度の長さの特定コードが使用される。メダル貯留コードは参照コードと同じコードであるから、外来ノイズなどによってメダル貯留コードが書き替えられたようなときには、参照コードとメダル貯留コードは一致しなくなる。
メダル貯留モードでないときは、メモリ手段にメダル貯留コードがセットされていない。そして、外来ノイズなどによってメダル貯留コードと同じコードとなるようにメモリ手段にそのコードデータがセットされるようなことは通常起こり得ない。
メダル貯留コードが参照コードに一致しない限り、入出力ポートに書き込まれるメダルセレクタ用の出力制御情報(ビット)は”0”のままである。その結果、メダル貯留コードが参照コードに一致しないときは、上述したように常に遊技者が投入したメダルはメダル受け皿側に戻り、メダルが誤ってホッパ側に貯留されるようなことはない。
(手段25)「手段1から手段24の何れかにおいて、遊技機はスロットマシンである。」ここに、スロットマシンはその基本構成として、遊技状態に応じてその遊技状態を識別させるための複数の図柄からなる図柄列を変動表示した後に図柄を確定表示する表示装置を備えており、始動用操作手段(例えば操作レバー)の操作に起因して図柄の変動が開始されると共に、停止用操作手段(例えばストップボタン)の操作に起因して、或いは所定時間経過することにより図柄の変動が停止されるようになされ、停止時の確定図柄が特定図柄であることを必要条件として遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段を備えた遊技機である。
上述した遊技機には、少なくとも多数個の遊技媒体を取得できる遊技者に有利な状態である特別遊技状態(大当たり状態)と、遊技媒体を消費する遊技者に不利な状態である通常遊技状態の2種類の遊技態様が存在する。この種遊技機において使用される遊技媒体はコイン、メダル等がその代表例として挙げられる。
(手段26)「手段1から手段24の何れかにおいて、遊技機はパチンコ機とスロットマシンとを融合させた遊技機である。」
このような遊技機(複合機)はその基本構成として、遊技状態に応じてその遊技状態を識別させるための複数の識別情報からなる図柄列を変動表示した後に図柄を確定表示する表示装置を備えており、さらに操作レバーなどの始動用操作手段の操作に起因して図柄の変動が開始されると共に、ストップボタンなどの停止用操作手段の操作に起因して、或いは所定時間経過することにより図柄の変動が停止され、その停止時の確定図柄が特定図柄であることを必要条件として遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段を備え、遊技媒体として遊技球を使用するとともに、識別情報の変動開始に際しては所定数の遊技球を必要とし、特別遊技状態の発生に際しては多くの遊技球が払い出されるように構成された遊技機である。
上述した遊技機には、少なくとも多数個の遊技球を取得できる遊技者に有利な状態である特別遊技状態(大当たり状態)と、遊技球を消費する遊技者に不利な状態である通常遊技状態の2種類の遊技態様が存在する。
次に、本発明の実施例を説明する。図1は本発明に係る遊技機をスロットマシン10に適用した場合であり、図1はスロットマシン10の前面扉を閉じた状態の斜視図、図2はスロットマシン10の前面扉を開いた状態の斜視図である。
このスロットマシン10は図2に示すように前面扉12がその左側を回動軸として本体11に回動自在に取り付けられ、前面扉12を閉じると、図1のように施錠装置20により前面扉12が施錠される。
前面扉12には遊技の進行に伴い点灯したり、点滅したりする上部ランプ13と、遊技の進行に伴い種々の効果音を鳴らしたり、遊技者に遊技状態を報知したりする左右一対のスピーカ14,14と、機種名などが表示された上段プレート15と、左回胴Lと中回胴Mと右回胴Rをそれぞれ透視できる遊技パネル30と、略中段付近にて各種ボタン51,53〜56,61〜63や、スタートレバー52およびメダル投入口57が設けられた操作部50と、機種名や遊技に関わるキャラクタなどが表示された下段プレート16と、メダル払い出し口17から払い出されたメダルを受けるメダル受け皿18とが装着されている。スロットマシン10の本体内部には、図2に示す電源ボックス85や、制御装置を構成する主制御基板C(図8参照)が装着されている。
遊技パネル30は、図1に示すように左回胴L、中回胴M、右回胴Rの停止中または回転中の様子を外部から透視できるような露出窓31L,31M,31Rと、露出窓31Lの左側に配置された5つのベットランプ32,33,33,34,34と、この露出窓31L,31M,31Rの下側に配設された3つの表示部(クレジット枚数表示部35、ゲーム数表示部36および払出枚数表示部37)とを備えている。
露出窓31L,31M,31Rは、それぞれ停止中の左回胴L、中回胴M、右回胴Rのそれぞれについて、縦方向に3つの図柄を同時に露出できるような大きさに形成されている。このため、各回胴L,M,Rがすべて停止している状態では、3×3=9個の図柄が遊技者に表示される。そして、図1にて一点鎖線で表示した上段、中段、下段の水平ラインおよび一対の対角ラインの合計5本のラインに並んだ図柄列の内容によって、ベットされるメダル数に応じて適宜有効化される。露出窓31L、31M、31Rは1つにまとめて、共通の露出窓とすることもできる。
有効化されたラインは有効ラインであり、予め定められた賞を付与する組合せが有効ラインに揃うと「入賞」となる。因みに停止した左回胴Lの3つの図柄のうち有効ライン上の図柄に「チェリー」があると「入賞」となる。
左回胴L、中回胴M、右回胴Rは同様のユニットにより構成されているため、ここでは左回胴Lを例に挙げて図3および図4に基づいて説明する。図3は左回胴Lの組立斜視図、図4は左回胴Lに巻かれたシール47の展開図である。
左回胴Lは、円筒状のかごを形成する円筒骨格部材40の外周面に21個の図柄(識別要素)が等間隔ごとに描かれたシール47が巻かれたものであり、円筒骨格部材40のボス部41が円盤状のボス補強板42を介して左回胴用ステッピングモータ71Lの駆動軸に取り付けられている。
左回胴用ステッピングモータ71Lは、本体11(図2)の内部に垂設されたモータプレート43にねじ43aで固定されており、このモータプレート43には発光素子と受光素子とが一対となった回胴インデックスセンサ(回転位置検出センサ)44が設置されている。回胴インデックスセンサ44を構成するこれら一対のフォトセンサ(図示はしない)は、所定の間隔を保持してセンサ筐体内に配される。
左回胴Lと一体化されたボス補強板42には、半径方向に延び出したセンサカットバン45の基端部45bがねじ45cで固定されている。このセンサカットバン45の先端部45aは、略90°屈曲されて回胴インデックスフォトセンサ44の両素子の間隙を通過できるように位置合わせがなされている。そして、左回胴Lが1回転するごとにセンサカットバン45の先端部45aの通過を回胴インデックスフォトセンサ44が検出し、検出の都度主制御基板Cに検出信号を出力するため、主制御基板Cはこの検出信号に基づいて左回胴Lの角度位置を1回転ごとに確認し補正できる。なお、各回胴に巻かれたシール47は、それぞれに描かれた図柄の順序や発生頻度が異なったものが使用される。
ステッピングモータ71Lは、504パルスの駆動信号(励磁信号あるいは励磁パルスとも言う。以下同じ)により左回胴Lが1周するように設定されており、この励磁パルスによって回転位置が制御される。すなわち、左回胴Lが1周すると21図柄が順々に露出窓31Lから露出するため、ある図柄から次の図柄へ切り替えるには24パルス(=504パルス÷21図柄)を要する。そして、回胴インデックスセンサ44の検出信号が出力された時点からのパルス数により、どの図柄が露出窓31Lから露出しているかを認識したり、任意の図柄を露出窓31Lから露出させたりする制御を行うことができる。
図5はステッピングモータ71Lの動作原理を示す接続図である。ステッピングモータ71Lとしてこの実施の形態では、1−2相励磁方式を採用したハイブリッド(HB)型の2相ステッピングモータを使用した場合である。ステッピングモータはハイブリッド型や2相に限らず、4相あるいは5相のステッピングモータなど、種々のステッピングモータを使用することができる。
ハイブリッド型のステッピングモータ71Lは周知のように中央に配置されたロータ(回転子)60と、このロータ60の周囲に配された第1〜第4ポール601〜604から構成される。
ロータ60は、N極に着磁された手前側ロータ60aと、S極に着磁された奥側ロータ60bとで構成され、手前側ロータ60aの周囲に設けられた歯(小歯)と歯の間に、奥側ロータ60bの周囲に設けられた歯が位置するように1/2ピッチだけ相対的にずらされた状態で回転軸に取り付けられている。そして、手前側ロータ60aと奥側ロータ60bとの間には筒状磁石(図示はしない)が取着されている。
第1と第3ポール601,602には図6に示すように、励磁コイルL0とL2がバイファイラ巻きされ、励磁コイルL0の巻き終わり端と励磁コイルL2の巻き始め端とが結線されて、ここに所定の直流電源+B(例えば+24ボルト)が印加される。同じく、第2と第4ポール602,604にも、励磁コイルL1とL3がバイファイラ巻きされ、励磁コイルL1の巻き終わり端と励磁コイルL3の巻き始め端とが結線されて、ここに上述した直流電源+Bが印加される。
ここで、上述したように第1の励磁コイルL0に励磁信号を印加して、第1ポール601をS極に励磁すると共に、第3ポール603をN極に例示する相をA相とし、これとは逆に第3の励磁コイルL2に励磁信号を印加して、第1ポール601をN極に励磁すると
共に、第3ポール603をS極に励磁する相をA−相とし、さらに第2の励磁コイルL1に励磁信号を印加して、第2ポール602をS極に励磁すると共に、第4ポール604をN極に励磁する相をB相とし、第4の励磁コイルL3に励磁信号を印加して、第2ポール602をN極に励磁すると共に、第4ポール604をS極に励磁する相をB−相と称する。
そして、1相励磁駆動方式の場合には、A相、B相、A−相およびB−相に対して順次励磁信号を印加することでロータ60を時計方向(又は反時計方向)に回転駆動することができる。
つまり、例えばまずA相に通電すると、S極になった第1ポール601の突起と手前側ロータ60aの歯、N極になった第3ポール603の突起と奥側ロータ60bの歯とがそれぞれ吸引力により向き合い、次にB相に通電すると、S極になった第2ポール602の突起と手前側ロータ60aの歯、N極になった第4ポール604の突起と奥側ロータ60bの歯とがそれぞれ吸引力により向き合い、次にA−相に通電すると、N極になった第1ポール601の突起と奥側ロータ60bの歯、S極になった第3ポール603の突起と手前側ロータ60aの歯とがそれぞれ吸引力により向き合い、次にB−相に通電すると、N極になった第2ポール602の突起と奥側ロータ60bの歯、S極になった第4ポール604の突起と手前側ロータ60aの歯とがそれぞれ吸引力により向き合う。この順序で励磁することにより、ロータ60は図5において時計方向に回転する(1相励磁駆動)。
これに対して、この実施の形態では、1相励磁と2相励磁とを交互に行う1−2相励磁駆動が採用されている。1−2相励磁駆動では以下の1)〜8)の励磁シーケンス(励磁順序)に従って励磁が行われる。
すなわち、1相のみの励磁が1相励磁であり、2相を同時に例示するのが2相励磁であるから、図6にも示すように1−2相励磁駆動は、
1)A相に通電し(1相励磁)、
2)A相とB相の両方に通電し(2相励磁)、以下同様に
3)B相に通電し、
4)B相とA−相の両方に通電し、
5)A−相に通電し、
6)A−相とB−相の両方に通電し、
7)B−相に通電し、
8)B−相とA相の両方に通電し、その後1)に戻るような駆動方式である。
この1−2相励磁駆動を採用することにより、1ステップあたりの角度変化は、1相励磁駆動の1ステップあたり約0.714°となる。
ステッピングモータ71L、71M、71Rに対する駆動信号(駆動信号用データ)は、励磁データ(図10参照)としてモータドライバ712に与えられる。この励磁データ(励磁信号用データ)は図8に示すRAM76に格納されており、後述する回胴制御処理ルーチン内で、タイマ割り込み処理によってMPU72(図8参照)からの指令に基づいて入出力処理回路(入出力ポート)80(図8参照)に、適切な励磁データが出力されることになる。この励磁データによってステッピングモータ71L、71M、71Rに対する励磁相が定まり、その励磁相に対して励磁信号(電流)が通電される。
図1を参照して更に説明する。図1に示すように1枚ベットランプ32は、中段水平ラインの左横に配設され、2枚ベットランプ33,33は上段水平ラインおよび下段水平ラインの左横に配設され、3枚ベットランプ34,34は一対の対角ラインの左横に配設されている。
クレジット枚数表示部35は、後述するクレジット機能が有効なときにスロットマシン内部に貯留されている枚数を表示するものであり、ゲーム数表示部36は、例えばビッグボーナス時にあと何回JAC(ジャック)インできるかとかJACゲーム時にあと何回JAC図柄成立が残っているかといった回数を表示するものである。払出枚数表示部37は、有効ライン上に同じ図柄が揃って入賞したときに払い出された枚数を表示するものである。
操作部50は、上述したように前面部に設けられたクレジットボタン51、スタートレバー52、左回胴用ストップボタン53、中回胴用ストップボタン54、右回胴用ストップボタン55および返却ボタン56と、水平段部に設けられたメダル投入口57、1枚ベットボタン61、2枚ベットボタン62およびマックスベットボタン63とを備えている。
クレジットボタン51は、1度押されるとオン状態になり、もう1度押されるとオフ状態になり、その後押しボタン操作が行われるごとにオンオフが切り替わるトグル式に構成されている。
クレジットボタン51がオフ状態のときには、クレジット枚数表示部35の表示が消え、メダル投入口57から投入されたメダルや入賞したときに払い出されるメダルはメダル払い出し口17からメダル受け皿18へ払い出される。
クレジットボタン51がオン状態のときには、クレジット枚数表示部35に数字(オンからオフになったときには「0」)が表示され、クレジット機能が有効となる。
ここで、クレジット機能とは、メダル投入口57から投入された枚数がマックスベット数(ここでは3枚)を越えたときにその越えた枚数分をスロットマシン内部に貯留する機能であり、貯留枚数は上述したクレジット枚数表示部35に表示される。クレジット枚数表示部35に1枚以上表示されているときにクレジットボタン51を押してオフ状態にすると、表示されていた枚数分のメダルがメダル払い出し口17からメダル受け皿18へ払い出され、メダルが払い出されるごとにクレジット枚数表示部35の数値が1ずつディクリメントされ、その数値がゼロになったあと表示が消える。
スタートレバー52は、遊技者がゲームを開始するときに手で押し操作するレバーであり、手が離れたあと元の位置に自動復帰する。メダルがベットされているときにこのスタートレバー52が操作されると、スタートスイッチ52a(図8参照)がオンされてスタート指令が発生し、このスタート指令によって各回胴L,M,Rが一斉に回転し始める。
左回胴用ストップボタン53、中回胴用ストップボタン54、右回胴用ストップボタン55は、それぞれ回転中の左回胴L、中回胴M、右回胴Rを停止させるときに遊技者が指で押すためのボタンであり、各ボタン53,54,55が押されるとそれに連動して左回胴用ストップスイッチ53a、中回胴用ストップスイッチ54a、右回胴用ストップスイッチ55a(図8参照)がオンされて停止指令が発生する。各ストップボタン53,54,55は、各回胴L、M、Rが等速回転している間、図示しないランプにより点灯表示され、回転が停止すると消灯する。
各ベットボタン61,62,63は、ゲームスタート前にそのゲームでベットするメダル枚数を決めるためのボタンである。ここで、メダルをベットする手順について説明する。クレジットボタン51がオフ状態のとき(クレジット枚数表示部35が消灯しているとき)か、クレジットボタン51がオン状態で貯留枚数もベット枚数もゼロのとき(クレジット枚数表示部35に「0」が表示されているとき)に、メダル投入口57からメダルが投入されるとベットされる。
すなわち、1枚目のメダルがメダル投入口57に投入されると、1枚ベットランプ32が点灯し、そしてこれに対応する中段水平のラインが有効ラインとなり、2枚目のメダルがメダル投入口57に投入されると、更に2枚ベットランプ33,33が点灯すると共に、これに対応する上段水平および下段水平のラインを含む合計3本のラインがそれぞれ有効ラインとなり、3枚目のメダルがメダル投入口57に投入されると、更に3枚ベットランプ34,34が点灯し、そしてこれに対応する一対の対角ラインを含む合計5本のラインのそれぞれが有効ラインとなる。
また、4枚以上のメダルがメダル投入口57に投入されると、クレジットボタン51がオフのときつまりクレジット機能が有効でないときには、メダル払い出し口17からメダル受け皿18へメダルが返却されるが、クレジットボタン51がオンのときつまりクレジット機能が有効なときには、有効ラインはそのままで投入されたメダルの枚数分だけスロットマシン内部に貯留され、クレジット枚数表示部35に貯留枚数が表示される。このクレジット枚数は上限枚数が決められており(例えば50枚)、それを越える枚数のメダルが投入されたときにはメダル払い出し口17からメダル受け皿18へ返却される。
メダルが3枚以上貯留されているときに、1枚ベットボタン61が押されるとクレジット枚数表示部35に表示されている数値が1つディクリメントされると共に、1枚ベットランプ32が点灯して中段水平のラインが有効ラインとなり、2枚ベットボタン62が押されるとクレジット枚数表示部35に表示されている数値が2つディクリメントされると共に、1枚ベットランプ32および2枚ベットランプ33,33が点灯して合計3本のラインが有効化され、マックスベットボタン63が押されるとクレジット枚数表示部35に表示されている数値が3つディクリメントされると共に、全ベットランプ32,33,33,34,34が点灯して合計5本の有効ラインが有効化される。
一方、メダルが2枚貯留されているときに、1枚ベットボタン61や2枚ベットボタン62が押されると先ほどと同様に動作するが、マックスベットボタン63が押されると2枚ベットボタン62が押されたときと同じように動作し、メダルが1枚だけ貯留されているときに、1枚ベットボタン61が押されると先ほどと同様に動作するが、2枚ベットボタン62やマックスベットボタン63が押されると1枚ベットボタン61が押されたときと同じように動作する。
図2に示すように電源ボックス85は、電源スイッチ81やリセットスイッチ82や設定キー挿入孔83などを備えている。電源スイッチ81は、オンされるとMPU72を始めとする各部に電源を供給する。リセットスイッチ82はこれを押しながら同時に電源スイッチ81をオンするとRAM76の内容がリセットされ、電源スイッチ81がオンされている状態で押されるとエラー状態がリセットされる。
設定キー挿入孔83は、図示しない設定キー(ホール管理者などが所持している)を挿入することにより設定キースイッチ83a(図8参照)がオン状態となり、スロットマシン10の設定状態(当選確率設定処理)を「設定1」から「設定6」まで変更できる。
返却ボタン56は、メダル投入口57に投入されたメダルが詰まったときに押されるボタンであり、このボタンが押されると詰まったメダルがメダル払い出し口17から返却される。
メダル投入口57は、メダルを投入するための入口であり、投入されたメダルは内部に設けられたホッパ86へ通じる貯留用通路91か、メダル払い出し口17へ通じる払出用通路92のいずれかへ導かれる。貯留用通路91と払出用通路92の切替は、メダルセレクタであるメダル通路切替ソレノイド66によって行われる。
ホッパ86はメダル払い出し手段を構成するもので、図2に示すように、メダルを貯留する補助タンク87と、補助タンク87内のメダルを払出用通路92に通じる開口93を介してメダル払い出し口17へ払い出す払い出し装置150とから構成されている。
メダル払い出し装置150は、ホッパ駆動モータ152(図8参照)によってメダル送出用回転ディスク151を回転させながらメダルを開口93へ送り出す。
図7は、ホッパ86の概略構成を示す分解斜視図である。図7に示すように、ホッパ86は、メダルを蓄える補助タンク87とメダル払い出し装置150とで構成される。
メダル払い出し装置150は、補助タンク87の下側に設けられ、メダルの払い出しを1枚ずつ回転しながら行う回転ディスク151と、回転ディスク151を回転駆動するホッパ駆動モータ152と、このホッパ駆動モータ152と、補助タンク87および回転ディスク151がそれぞれ取り付けられたベース板153と、ベース板153を所定の角度を付けて取り付けると共に、ホッパ86をスロットマシン本体11に固定する金属製の取付台154とで構成されている。
スロットマシン本体11に設けられた主制御基板C(図8を参照)で生成されたメダル払い出し用出力制御情報(モータ駆動制御信号)が得られるとホッパ駆動モータ152が回転駆動する。これによって回転ディスク151が回転し、メダルが1個ずつメダル払い出し用通路92側に送り込まれる。
ベース板153上にはさらにメダル払い出しセンサ64が、メダルが通過するところに設けられている。メダル払い出しセンサ64の出力を主制御基板Cに送ることで、メダル払い出し枚数が検知される。
メダル払い出し枚数が規定値に達したときには、メダル払い出し停止のためのメダル払い出し用出力制御情報が生成され、このメダル払い出し停止を受けて駆動モータ152の回転が停止する。
取付台154は、ベース板153を所定の角度に取り付けるためにベース板103の左右を支える金属製の側取付台154a,154bや、本体11に設けられた取付ベース157(図2参照)に嵌合する金属製の下取付台154cから構成されている。下取付台154cの左辺と右辺は各々が、前述した取付ベース157の左右の翼受け部(図示はしない)に嵌合する左翼部156aと右翼部156bとなっている。
図8は、本体11内に設けられた主制御基板Cと、この主制御基板Cによって制御される被制御部の構成を示す。
図8に示すように主制御基板Cは、演算処理手段であるMPU72を中心とするマイクロコンピュータとして構成された主制御部として機能し、また上述した電源ボックス85の他に、所定周波数の矩形波を出力するクロック回路78や、処理プログラムを記憶するROM(あるいはフラッシュメモリ)74、一時的にデータを記憶する作業用(ワーキング用)のRAM76、入出力ポート80などが内部バス79を介してこのMPU72に接続されている。
主制御基板Cには、回胴インデックスフォトセンサ44からの検出信号、リセットスイッチ82からのリセット信号、設定キースイッチ83aからのオンオフ信号、ベットボタン61,62,63に連動する各ベットスイッチ61a,62a,63aからのベット信号、クレジットボタン51に連動するクレジットスイッチ51aからのオンオフ信号、スタートレバー52に連動するスタートスイッチ52aからのスタート指令信号、左、中、右回胴用ストップボタン53,54,55に連動する左、中、右回胴用ストップスイッチ53a,54a,55aからの停止指令信号、ホッパ86から払い出されるメダルを検出する払い出しセンサ64からの検出信号、左回胴L,中回胴M,右回胴Rを駆動する左、中、右回胴用ステッピングモータ71L,71M,71Rからの位置検出信号などが入出力ポート80を介して入力される。
主制御基板Cからは、上部ランプ13や1枚〜3枚ベットランプ32,33,34への点灯信号、クレジット枚数表示部35やゲーム数表示部36や払出枚数表示部37への表示信号、左回胴L、中回胴M、右回胴Rを駆動する左、中、右回胴用ステッピングモータ71L,71M,71Rへの駆動信号(駆動データ)が入出力ポート80を介して出力される。また、スピーカ14から発生する効果音などを制御する音声用制御装置(音声用制御基板)84へのコマンド信号、液晶ディスプレイ15の表示内容を制御する表示用制御装置(表示用制御基板)94へのコマンド信号などが入出力ポート80を介して出力される。
さらに、メダル払い出し装置150にメダル払い出し動作を行わせるホッパ駆動モータ152への駆動信号(メダル払い出し用出力制御情報)、メダル投入口57に投入されたメダルをホッパ86へ導いてメダルを貯留するか、メダル払い出し口17へ導いてメダルを戻すかを制御するメダル通路切替ソレノイド66への駆動信号(メダル貯留用出力制御情報)が、入出力ポート80を介して出力される。
ここで、上部ランプ13に対する点灯出力制御情報、メダル払い出し装置150に対するメダル払い出し用出力制御情報およびメダルセレクタであるメダル通路切替ソレノイド66に対するメダル貯留用出力制御情報をまとめて便宜的に制御命令データという。
音声用制御基板84と表示用制御基板94はサブ制御基板S内にその機能を含ませることができる。主制御基板Cにはクレジット枚数をカウントするクレジットカウンタなどの各種カウンタを備えている。
上述したMPU72は、このMPU72によって実行される各種の制御プログラムや固定値データを記憶したROM(またはフラッシュメモリ)74と、このROM74内に記憶されている制御プログラムを実行するに当たって各種のデータを一時的に記憶する作業エリアを確保するためのワーキング用のメモリ手段(RAM)76の他に、図示はしないが周知のように割り込み回路を始めとしてタイマ回路、データ送受信回路などスロットマシン10において必要な各種の処理回路が内蔵されている。
ROM52とRAM76によってメインメモリが構成され、図17以降に示される各種のフローチャートに示される処理を実行するための処理プログラム(出力制御情報生成用処理プログラムを含む)は、処理プログラムの一部として上述したROM74に記憶されている。
RAM76内は、機能的には複数の作業エリア(メモリエリア)が確保されている。周知のようにMPU72内に設けられたプログラムカウンタの値を保存するためのスタックメモリ(スタックメモリ用のエリア)(図示はしない)の他に、この例では停電フラグを記憶するメモリ76a、スタックポインタを保存するスタックポインタ保存用メモリ76b、RAM76に保存されているデータのチェックサムに関連した補正値を保存するチェックサム補正値用メモリ76c、さらには復電時に使用される復電コマンドバッファ76dや復電コマンドカウンタ76eなどのメモリエリアが確保されている。
さらにこのRAM76内には、複数の制御命令で構成された上述した制御命令データを出力制御情報としてストアする出力制御情報エリア76fと、メダル制御情報エリア76gが確保されている。メダル制御情報とは、メダル払い出しモードになったときセットされるメダル払い出しコードと、メダル貯留モードになったときにセットされるメダル貯留コードの何れかを言う。メダル払い出しコードおよびメダル貯留コードについては後述する。
RAM76内にセットされたスタックポインタ保存用メモリ76bは、スロットマシン10の電源切断時にMPU72内のスタックポインタの値を退避させて保存しておくためのメモリである。スタックポインタの値は停電処理の初期において、スタックポインタ保存用メモリ76bにセーブされる(図19ステップS33参照)。復電処理の始めにスタックポインタに対する復帰処理が行われ、スタックポインタ保存用メモリ76bに保存されている値がMPU72内のスタックポインタに取り込まれる。スタックポインタの内容はバックアップされているRAM76内に設けられたスタックメモリ内に退避させて保存されている。
RAM76内のチェックサム補正値メモリ76cは、停電処理時にRAM76内のデータから算出したチェックサムを、「0(ゼロ)」とするための補正値を記憶させておくメモリである。
復電コマンドバッファ76dは、電源復旧時(停電の復旧時又は電源再投入時)に主制御基板Cからサブ制御基板Sに送信される復電処理用のコマンド(復電コマンド)を一時的に記憶するバッファである。復電コマンドは図20に示す復電処理の実行をサブ制御基板Sに知らせるためのコマンドとして使用される。復電コマンドはRAM76に記憶されている一般のコマンドに優先してサブ制御基板Sに送信される。
復電コマンドカウンタ76eは、復電コマンドバッファ76dに記憶されている復電コマンドのバイト数を記憶するカウンタである。復電コマンドは2バイト構成であって、他のコマンド(スピーカ駆動用コマンドなど)と同じくバイト単位でサブ制御基板Sに送信される。
RAM76には後述するように電源ボックス85内に設けられた電源基板850からバックアップ電圧が供給され、スロットマシン10の電源が切断された後でもデータが消失しないようになされている。
入出力ポート80には、図8に示すようにサブ制御基板SなどのI/O装置の他に、ホール管理装置(図示はしない)などに情報を送信できる外部集中端子板89や、電源基板850に設けられた停電監視回路850b、さらにはホッパ駆動モータ102やメダル通路切替ソレノイド66などが接続されている。
電源基板850には主制御基板Cを始めとしてスロットマシン10の各電子機器に駆動電力を供給する電源部850aや、上述した停電監視回路850bなどが搭載されている。
停電監視回路850bは電源の切断状態を監視し、停電時はもとより、電源スイッチ81による電源切断時に停電信号851を生成するためのものである。そのため停電監視回路850bは、電源部850aから出力されるこの例では直流24ボルトの安定化駆動電圧を監視し、この駆動電圧が例えば22ボルト未満まで低下したとき電源が切断されたものと判断して停電信号851が出力されるように構成されている。停電信号851はMPU72と入出力ポート80のそれぞれに供給され、MPU72ではこの停電信号851を認識することで、後述する停電時処理が実行される。
電源部850aからは出力電圧が22ボルト未満まで低下した場合でも、主制御基板Cなどの制御系における駆動電圧として使用される5ボルトの安定化電圧が出力されるように構成されており、この安定化電圧が出力されている時間として、主制御基板Cによる停電時処理を実行するに十分な時間が確保されている。
スロットマシン10の回胴駆動モータとして上述したステッピングモータ71(71L、71M、71R)を使用するときの駆動特性を図9に示す。
この駆動特性は、スタートボタン52(スタート用操作レバーでもよい)が操作されてからステッピングモータ71が回転を始め、一定の定速回転に至るまでの加速期間Taと、定速回転期間Tbと、ストップボタン53〜55の操作に関連して所定のすべり(図柄調整用として使用されるすべり)を含めた停止期間Tcに分けられる。
加速期間Taをいくらにしなければならないかという規制はないのに対して、ストップボタン53〜55が操作されていないときは、加速期間Taに定速期間Tbを加えた時間は30秒以上でなければならないという規制がある。停止期間Tcもストップボタン53〜55を操作してから最大約190msec以内に駆動モータに対する励磁相を固定することが要求されている。
加速期間Taにあっては、できるだけ早く定速回転状態に移行させる必要があり、そのためにはステッピングモータ71に対する励磁相への割り込み(励磁相である1相励磁から2相励磁への切り替えおよび2相励磁から1相励磁への切り替えを言う)を早めればよいが、そうすると上述したように脱調や回転の不安定性を助長することにもなりかねない。したがって脱調や回転の不安定性をもたらさないで最短の加速処理を実現する最適な割り込み処理を行う必要がある。
割り込み処理によって励磁信号を励磁コイルに印加するに当たり、励磁相への適切な割り込みタイミングを設定する必要があり、そのためには特にモータ加速時、少なくともロータ60の回転揺れが抑えられるまでの間、励磁信号を印加する初期励磁相に対する励磁状態をホールドする。
基本的には、初期励磁(初速ゼロのときの励磁)の状態をある程度まで維持しないと脱調や回転の不安定性が解消しにくいことを考慮する。これは、初期励磁によって発生する吸引力によって、ロータ60の歯がポール601〜604の歯側に吸引されるときに発生するロータ60の回転揺れ(往復動を伴った微少振動)の収束程度に係ってくる。回胴L、M、Rのイナーシャーなどによっても相違するが、実験によれば、30msecで1往復(サイクル)する揺れが5〜6往復位繰り返してからロータ60が停止したので、回転揺れをなくしながら加速処理を行うには、少なくとも初期励磁をしてから150〜180msecの時間が、同一励磁相によって固定(ホールド)する時間として必要になることが判明した。
ここで、上述したMPU72に対する最小のタイマ割り込み時間が1.49msecに設定されているときで、回転揺れが停止するまでに要する時間が180msec程度であるときには、この時間を超えた最小の安定時間が初期励磁相を固定する時間として設定されることになる。この実施例では、この最小安定時間つまり初期励磁保持時間として、1.49msec×130割り込み=193.7msecに設定した。これよりも短い時間つまり、回転揺れが停止するまでに要する時間にほぼ等しい時間である1.49msec×121割り込み=180.29msecを初期励磁保持時間として選ぶことも可能である。
130割り込みの期間は連続して励磁されるように、入出力ポート80からは図10に示す励磁信号用の励磁データ(この例では励磁順2に示す励磁データ09H)(Hはヘキサデシマル表示)がモータドライバ712に出力される。
加速期間Taのうちで、初期励磁を行う加速期間を第1の加速期間とし、定速回転に至るまでの加速期間を第2の加速期間とすれば、図11に示すように第2の加速期間でロータ60を急速に加速する。この例では、第2の加速期間は第1の加速期間より短く設定されている。
加速期間Taとして317.37msec程度に設定したときには、83割り込みに相当する123.67msecが第2の加速期間に選定され、この第2の加速期間で所定の回転数となるように励磁相への割り込み処理が実行される。そのため、第2の加速期間では励磁信号の励磁相への割り込み処理が頻繁に行われる。
ロータ60つまり回胴L、M、Rの回転がゼロである初期励磁は、高トルクでこのロータ60を回転させる必要があるから、初期励磁の励磁相は1相励磁よりもさらに高トルクが得られる2相励磁が好ましい。2相励磁は特定の2つの励磁相を同時に駆動するもので、2相励磁によって初速時の回転トルクを得る。
初期励磁を2相励磁に設定した場合で、しかも第2の加速期間内で所定の回転数まで短時間に到達させるための割り込みタイミングとしては、図11に示すようなタイミング例が好適である。
図11において、第1の加速期間は初期励磁期間であり、この実施の形態では上述のように2相励磁を行う。2相励磁は例えば図10の励磁順のうち、最も早い励磁順2を選ぶことができる。勿論、回転停止時の励磁相によっては、異なる励磁順(励磁順4、励磁順6または励磁順8)となることがある。1.49msecごとの割り込みタイミングに同期して励磁信号を印加してからは130割り込み分(193.7msec)、この励磁状態を保持する。
第2の加速期間では、1−2相励磁を交互に繰り返すが、励磁相への割り込みタイミング、換言すれば相励磁の保持期間として、図11のように1相励磁の励磁保持期間と2相励磁の励磁保持期間とが細かく制御される。この実施例では、第2の加速期間に突入すると、2相励磁に続く1相励磁(図10では励磁順3)が8割り込み分行われ、したがって8割り込み分の相励磁保持が行われ、その次の2相励磁は7割り込み分だけ(励磁順4)行われるように、割り込みが漸次短くなるように設定して励磁時間を短縮すると共に、最後には最小の割り込み間隔で励磁相が順次切り替わる通常の1−2相励磁に遷移できるような割り込みに設定されている。
したがって図11のように、第2の加速期間の最後の励磁相が2相励磁であって、これが1割り込みであるときには、次の定速回転期間の最初の励磁相は1相励磁であって、しかも最小の割り込み間隔である1割り込みとなる。このように第2の加速期間での割り込み処理タイミングを、定速回転に近づくにつれ順次短くすることで、高速な加速処理を短時間で実現することができると共に、定速回転へのスムーズな移行が可能になる。
回胴L、M、Rのブレーキ処理は次のようになる。ストップボタンが操作されてからは、すべり処理(1〜4図柄分の回転処理)を含め、図12に示す所定時間ts(=190msec)以内に回胴L、M、Rを停止させなければならない。
すべり処理後のブレーキ処理のときには、1−2相励磁から4相励磁に切り替える。4相励磁によって回転が乱調せずにスムーズに回胴L、M、Rを停止させることができる。
1−2相励磁から4相励磁に切り替えるタイミング(割り込みタイミング)は、2相励磁の直後である。これはステッピングモータ71L、71M、71Rは1相励磁よりも2相励磁のときの方が回転位置が特定し易いため、2相励磁の直後に停止処理を行った方が停止位置精度を高めることができるからである。
上述した回胴駆動モータであるステッピングモータ71を駆動するための駆動信号の生成処理は、図8に示したMPU72に対して定期的に発行されるタイマ割り込み処理ルーチン内で行われる場合がある。駆動信号としてはRAM76内にストアされた励磁順に則った励磁データ(図10参照)が利用され、この励磁順にしたがってモータドライバ712に、対応する励磁データが供給される。
そのため、RAM76にストアされた励磁データはタイマ割り込みが発生する都度、RAM76から読み出され、そして入出力ポート80の出力ポートに書き込まれる。この入出力ポート80に書き込まれた励磁データは即座にモータドライバ712に供給され、これによって対応する励磁コイルL0〜L3への通電処理がなされる。
ところで、後述する処理ルーチン(図20のステップS61)内では、図柄が有効化ラインに揃って入賞したりすると、入賞の状態に応じたメダルを払い出すが、このときメダル払い出し処理の他に、入賞を遊技者に報知するため上部ランプ13を点滅制御したり、スピーカ14,14を駆動したりする各種の制御が行われる。
そのため、上述した処理ルーチン(ステップS61)内では、それぞれの処理を実行するため複数の出力制御情報(制御命令ビット)が生成され、これら複数の出力制御情報を1組とした制御命令データが生成される。出力制御情報としては通常1つの制御に対して1ビットのデータが用意される。
この制御命令データはRAM76にセットされる。RAM76にセットされた制御命令データは適宜なタイミングに入出力ポート80に書き込まれる。入出力ポート80には出力制御情報に基づいた命令を実行するための各種制御手段が接続されている。これらの制御手段によって、対応する出力制御情報である制御命令データが取り込まれる。取り込まれた制御命令データを解析してそれぞれの制御手段は当該命令に対応した処理を実行する。
説明を簡略化するため制御手段としては、以下のような3つの制御手段を例示する。
(1)ホッパ制御手段(メダル払い出し装置150)
(2)メダルセレクタ66
(3)前面扉12側に設けられた複数のランプに対する点灯制御手段
これらの制御手段に対する制御命令データは、何れも図20に示す通常遊技の各処理ルーチン(ステップS61)内で生成される。
ホッパ制御手段は、ホッパ86の回転を制御するためのメダル払い出し装置150のことであり、メダルセレクタ66は、メダル投入口57から投入されたメダルをメダル受け皿18側に戻すか、遊技機本体内部に設けられたホッパ86に貯留するかをセレクトするための制御手段である。当該制御手段であるメダルセレクタとしては上述したように、メダルの排出路を切り替えるためのソレノイド66が使用される。ランプ制御手段として、この例では前面扉12に設けられた上部ランプ13のオンオフを制御する手段を示す。
さらに、これら3つの制御手段を制御するために用意された出力制御情報ビットはトータルで7ビットとする。つまり、ホッパ制御手段とメダルセレクタ66とで各1ビットが宛われ、上部ランプ13,13に対する制御命令データとして5ビットが宛われる。したがって1組の制御命令データのデータ長は1バイト構成となる。1バイトの制御命令データとしては次のようなデータ構造を採用することができる。
図13を参照して説明する。図13(A)のように、
(a)ビット7(MSB)は、ホッパ回転制御ビット(データ)であって、”1”が回転命令であり、”0”が停止命令である。
(b)ビット6(MSB−1)は、メダルセレクタであるソレノイド66に対する励磁用ビットであって、”1”がソレノイドオン命令(メダル貯留のための励磁命令)で、”0”がソレノイドオフ命令(受け皿へのメダル戻し)である。ソレノイドオフは励磁解除モードであって、この解除モードがソレノイド66の初期モード(デフォルトモード)である。
(c)ビット5〜ビット1(LSB+1)は、複数ある上部ランプ13に対する点灯および消灯(または点滅および消灯)制御のために宛われた制御命令ビットである。
(d)ビット0(LSB)は、未使用ビットであって、この例では”0”にセット(固定)されている。
上述したようにホッパ86を回転させたいときには、ビット7を”1”とするRAM76へのセットが行われる(図13(B)参照)。ホッパ86を停止させたいときは、ビット7が”0”となるようにセットする。
ビット7が”1”にセットされると、このメダル払い出し用出力制御情報に基づいてホッパ制御手段150内の回転駆動モータ152が駆動されて回転ディスク151が回転してメダルの払い出しが行われる。
ホッパ86にはメダルを払い出したときに作動するメダル払い出しセンサ64が設けられている。このセンサ出力でメダルの払い出し枚数がカウントされ、払い出し枚数が規定数(入賞の態様によって相違する)に至ったときには、ホッパ86に対して停止命令が生成される。その出力制御情報が反映された状態(ビット7が”0”)で、次の制御命令データがRAM76にセットされる。
その結果、この制御命令データを構成するメダル払い出し用出力制御情報に基づいてホッパ86内の回転ディスク101が停止する。
この他に、メダルを払い出すためにホッパ86に対して回転命令が生成されると、この回転命令に同期してMPU72に関連して設けられたタイマが作動する。このタイマは所定時間以上回転命令が継続しないように監視するためのものである。このタイマは図18ステップS19での処理によって、メダルが払い出されるたびに更新(リセット)されてから減算処理が行われる。
上述したようにホッパ86の回転命令がないときは、常にビット7が”0”となるメダル制御情報(制御命令データ)がRAM76にロードされ、その値が入出力ポート80に書き込まれる。しかし、ビット7が”0”の状態のときに、外来ノイズなどによってRAM76のデータが破壊されて、セーブしたビット7のデータが反転して、”1”となる誤動作が発生することがある。
そのとき、たまたまビット7の状態が”0”から”1”に反転してしまうと、ホッパ停止命令が続行中で、ホッパ回転制御命令データ(ビット7)が”0”であるにも拘わらず、ホッパ回転命令となり、ビット7が”0”に戻るまでの間は、ホッパ86が勝手に回転し続けてしまう。ホッパ回転中はメダルの払い出しが行われる。
何らかの原因により、電気的または物理的にメダル払い出しセンサ64が切られてしまうと、エラーの監視ができなくなるため、ホッパ86は回りつづけてしまう危険性がある。つまり、メダル払い出しセンサ64を故意に取り去ったり、メダル払い出しセンサ64の信号線(信号ライン)を切断したりする不正な行為が行われた状態で、不正な電波などを発射してRAM76内のデータを破壊し、制御命令データのうちビット7が”1”となるような、いわば疑似ロードを行う不正行為が行われてしまうと対処できなくなる。
いかなる場合でも、プログラムの上でホッパ回転命令が出されていないときは、ビット7が”1”とならないようなRAM76に対するロード処理(プロテクト処理(安全対策処理))を工夫する必要がある。
そこで、この発明では以下のような手段を採用した。この実施例では、入出力ポート80に出力する前に、制御命令データのうちメダル払い出し用の出力制御情報としてのビット7を”0”にする前処理を行うと共に、メダル制御情報として利用されるメダル払出コードとして特定のコード例えば1バイト構成の特定コードを用意する。
まず、少なくともビット7、以下に示す例ではビット0,6,7のそれぞれを”0”にする前処理を行う。次に、ホッパ回転命令の待機状態とし、ホッパ回転命令が発せられていないときには前処理された制御命令データをそのまま入出力ポート80に書き込む。各制御手段は書き込まれたこの制御命令データを読み取って対応する処理を実行するので、この場合にはホッパ86は回転しない。
メダル払出のためのホッパ回転命令が出ると、RAM76にメダル制御情報としてのメダル払出用コードがセットされる。このメダル払出用コードがMPU72内のレジスタ(図示はしない)にロードされる。ロードされたメダル払出用コードは、プログラムされている参照用の特定コード(参照コード)と比較(照合)される。参照コードはメダル払出コードと同一のデータ長を有する同一のデータで構成される。
ロードされたメダル払出コードが参照コードと一致したときには、制御命令データ(制御命令コード)のうち、ビット7のみを”1”とするビット変換処理を行った上で、その制御命令データを入出力ポート80に書き込む。その結果、ホッパ86が回転して、メダルの払い出しが行われると共に、メダル払出センサ64の検出出力でメダル払い出し枚数がカウントされ、規定数量に達したときホッパ86の回転が停止してメダル払い出し処理が終了することになる。
この一連の処理は割り込みタイミング(例えば、1.5msec)が発生する都度実行される。
ここで、上述した不正行為によって制御命令データのうちビット7が”1”になるのは、
(a)制御命令データを入出力ポート80に書き込むとき、外来ノイズあるいは不正行為によって、ビット7が”1”に書き替えられるか、
(b)不正行為によってRAM76内のデータがメダル払出コードに書き替えられたがために制御命令データのうちビット7が”1”に書き替えられてしまうか、
の何れかであると考えられる。
(a)のケースの場合は、制御命令データはプログラムによってはまだRAM76にはセットされていないので、次の割り込みタイミングになると、再び制御命令データのうちビット7を”0”にする前処理と、RAM76からロードされたコード(メダル払い出しコードとは異なったコード)と参照コードとの比較処理がそれぞれ行われるため、この前処理と参照処理の結果、入出力ポート80に書き込むべき制御命令データのうちビット7は必ず”0”になる。
そして、ビット7が”0”となっている制御命令データが入出力ポート80に書き込まれることになる。その結果、ホッパ回転命令は単発的なものとなり、その後ホッパ回転命令は継続しない。これで外来ノイズや不正行為によるホッパ回転を排除できる。
(b)のケースの場合には、外来ノイズなどによってメダル払出コードに一致するような特定コードが発生する確率は極めて低い。不正行為によってのみメダル払出コードと同じコード(特定コード)を出現させることができる。しかしRAM76内にセットされたコードをメダル払出コードに一致させるための出現確率(成功確率)、あるいは、メダル払い出しモード以外のときにメダル払い出しコードと一致したコードを不正に生成してRAM76にセットできる確率は、メダル払出コードが1バイト構成であるときには、1/256の頻度となる。
つまり、この場合においてもメダル払出コードの出現確率はほぼ皆無となる。その結果、不正行為によって制御命令データのうちビット7を”1”とする確率をほぼゼロに抑えることができる。このように何れのケースでも、外来ノイズや不正行為によって、ホッパ86が回転する事態を回避できる。
もちろん、メダル払い出しセンサ64を故意に取り去ったり、メダル払い出しセンサ64の信号線(信号ライン)を切断したりする不正な行為が行われた場合でも、入出力ポート80にはビット7を”1”とするメダル払出コードがロードされていないため、ホッパ回転命令が生成されることがないので、安全である。
なお、制御命令データのうち特定ビットを”0”とするために使用する1バイトの前処理データは、制御命令データのうちビット0,6,7を”0”に、その他のビット1〜5をスルーにするときは、”3EH”(00111110)が使用される。特定ビットがこれ以外の組み合わせとなっているときは、その組み合わせに対応した前処理データが使用されることになる。
また、メダル払出コードとしては1バイトのうちの任意の組み合わせのデータ(256通り)を使用することができるが、この例では、出現確率が比較的少ないと予想されるコード例えば、”5AH”(01011010)が使用される。
因みに、ソレノイド制御のためにも、外来ノイズや不正行為による誤動作を回避するために、上述したホッパ回転命令と同じような解決手段が採用されている。そのときに使用されるビット6用の特定コード、つまりメダル制御情報としてのメダル貯留コードとしては、上述した256通りの組み合わせの中で、この例では”A5H”(10100101)が使用されている。
もちろんこれ以外のコード例えば”AAH”や、”55H”などを特定コードとして使用することもできる。メダル払い出しコードやメダル貯留コードは、必ずしも1バイト構成である必要はない。2ビット以上のビット長を有すればよい。1バイトに限らず、ビット長が長くなるほど、外来ノイズや不正行為に対してより強い安全対策となることは明らかである。
続いて、この発明の具体例を説明する。
図14(A)は前処理時に使用される前処理ビットである。ビット0,6および7をそれぞれ”0”とするには、前処理ビットとして3EH(00111100)が使用される。この前処理ビットと1バイト構成の制御命令データとの論理積が採られる。そうすると、図14(B)に示すように、ビット1〜5までは元のビットのまま(スルー)となり、ビット0,6,7のみ”0”となった制御命令データが得られる。
一方、メダル払い出しビットとしては、図15に示すような1バイト構成の特定コード、この例では5AH(01011010)が用いられる。メダル貯留用ビットとしては、図16に示す1バイト構成の特定コード、この例ではA5H(10100101)が用いられる。
図20のステップS61の処理ルーチンで、メダル払い出し状態となったことが判断されると、メダル払い出しコードがメダル制御情報としてRAM76のエリア76gにセットされる。
メダル払い出しモードのときに使用される処理プログラム中には、参照コードとしてメダル払い出しコードと同じコードが記述されているので、メダル払い出しモードのときになると、メダル払い出しコードをMPU72にロードして参照コードとの比較処理(参照処理)が実行される。
その結果、メダル払い出しコードが参照コードに一致していると、図13(B)のように前処理後の制御命令データのうちビット7を”1”とする書き替え処理を行って、この制御命令データを入出力ポート80に書き込む。不一致の場合には、ビット7は”0”のまま書き込まれる。
メダル貯留処理も同様であって、ホッパ86側にメダルを貯留するモードに遷移すると、メダル制御情報としてメダル貯留コードがRAM76のエリア76gにセットされる。
メダル貯留モードのときに使用される処理プログラム中には、参照コードとしてメダル貯留コードと同じコードが記述されているので、メダル貯留モードのときになると、メダル貯留コードをMPU72にロードして参照コードとの比較処理(参照処理)が実行される。
その結果、メダル貯留コードが参照コードに一致していると、図13(C)のように前処理後の制御命令データのうちビット6を”1”とする書き替え処理を行って、この制御命令データを入出力ポート80に書き込む。不一致の場合には、ビット6は”0”のまま書き込まれる。
このようにメダル制御情報を活用し、さらに制御命令データに対して前処理を行うことによって、非常に安全なメダル払い出し処理およびメダル貯留処理を実現できる。
続いて、上述したMPU72内に搭載された代表的な処理プログラムの処理内容について説明する。
[停電フラグの生成処理]
停電フラグは停電が発生したとき(電源スイッチ81をオフしたときの電源切断を含むものとする)、停電フラグが生成される。停電すると停電監視回路850bからMPU72のNMI(Non Maskable Interrupt)端子へ停電信号851が出力される。停電信号851を受信するとMPU72は停電フラグをセットして停電時の割り込み処理(図17参照)を実行する。停電フラグがセットされると、タイマ割り込み処理(図18参照)の中で停電時処理が実行され、遊技中であれば遊技制御の中断処理が実行される。停電フラグは電源の再投入による復電処理(図20参照)によってリセットされる。
図19に示す停電時処理では、補正値を含めてRAM76のデータより算出したチェックサムを「0」にした状態で制御を終了する。停電復旧時を含めて電源再投入時の処理として、RAM76のチェックサムを調べ、補正値を考慮したその値が「0」であるか否かによって、RAM76のデータが正常にバックアップされているかどうかを判断する。そのため、停電処理時にはチェックサム補正値メモリ76cの値を一旦「0」にリセット(クリア)した状態で、RAM76のチェックサムを算出する。算出したチェックサムの2の補数が、チェックサム補正値としてチェックサム補正値メモリ76cに記憶される。この補正値を含めることでRAM76のチェックサムは「0」になる。
「NMI割り込み処理」
図17はNMI割り込み処理の一例を示すフローチャートである。停電の発生などによって停電監視回路850bでは停電信号851が生成される。停電信号851をNMI端子を介して主制御基板Cが受信すると、主制御基板CではNMI割り込み処理が実行される。
NMI割り込み処理では、まずMPU72内に設けられたAレジスタ(アキュームレータ)とFレジスタ(フラグレジスタ)内のデータをRAM76内に設けられたスタックエリアに退避する(ステップS1)。次に、停電フラグがセットされたのち(ステップS2)、スタックエリアに退避したデータを再びAレジスタとFレジスタに復帰させる(ステップS3)。この復帰処理でNMI割り込み処理が終了する。
AレジスタおよびFレジスタの何れの内容も破壊しないで、停電フラグのセット処理が可能な場合には、スタックエリアへの退避および復帰処理(ステップS1およびS3)は省くことができる。
「タイマ割り込み処理」
図18は主制御基板Cで定期的に実行されるタイマ割り込み処理のフローチャートで、この例では1.49msecごとにタイマ割り込みが発生する。タイマ割り込み処理は、MPU72に対する先行割り込み処理と、それ以外の処理(その他の割り込み処理)に分かれ、先行割り込み処理が終了してからその他の割り込み処理が実行される。
先行割り込み処理として図18の処理群の場合では、レジスタの退避処理(ステップS11)、停電フラグ状態判別処理(ステップS12)、ウォッチドッグタイマ処理(ステップS14)および割り込み終了宣言処理(ステップS15)の4つの割り込み処理を挙げる。
したがってこの図18に示すタイマ割り込み処理では、まずメイン処理(図20のステップS61)で使用しているMPU72内の全レジスタ(この例ではAF,BC,DE,HL,IXおよびIYの各レジスタ)の値をRAM76のスタックエリアに退避させる(ステップS11)。
その後停電フラグがセットされているか否かを確認し(ステップS12)、停電フラグがセットされているときには図19に示す停電時処理が実行され(ステップS13)、セットされていないときにはスキップされる。
停電時処理若しくは停電時処理がスキップされた後は、以下のような複数の処理(その他の割り込み処理)が順次実行される。次に示す(処理1)および(処理2)は先行割り込み処理に属する。
(処理1)誤動作の発生を監視するためのウォッチドッグタイマの値を初期化(クリア)するウォッチドッグタイマのクリア処理(ステップS14)。ウォッチドッグタイマのクリア処理時間は、ほぼ一定である。
(処理2)自分自身であるMPU72自身に対して割り込み許可を出す割り込み終了宣言処理(ステップS15)。この割り込み終了宣言処理もほぼ一定な処理時間で済む。
以上のような先行割り込み処理が終了すると、その他の割り込み処理が実行される。その他の割り込み処理でも、上述した理由から特に回胴駆動モータであるステッピングモータ71に対する励磁データ生成処理(回胴モータ制御処理Bb)が先行して実行される。
(処理3)左、中および右の各回胴L、M、Rを回転させるためにそれぞれの回胴駆動モータであるステッピングモータ71L〜71Rを駆動するステッピングモータ制御処理Bb(ステップS16)。このモータ制御処理は、対応する駆動信号(励磁データ)を出力する処理に他ならないから、その処理時間(駆動信号生成処理と出力処理)はほぼ一定である。
回胴駆動モータ生成制御処理以外の、その他の割り込み処理の具体例を以下に示す。
(処理4)入出力ポート80に接続された各種スイッチ(82,83aなど)の状態を読み込むスイッチ状態読み込み処理(ステップS17)。このスイッチ状態読み込み処理も、遊技の状態によってあまり変化しないので、ほぼ一定な処理時間となる。
(処理5)入出力ポート80に接続された各種センサ(メダル払い出しセンサ64など)の状態を監視するセンサ監視処理(ステップS18)。センスするセンサの種類は固定されているので、このセンサ監視処理もその処理時間はほぼ一定である。
(処理6)各カウンタやタイマの値を減算するタイマ減算処理(ステップS19)。カウンタの値やタイマの値によっては減算処理時間が相違するので、この処理時間は一定ではなく不定と言える。
(処理7)1枚ベット、2枚ベットあるいは3枚ベットしたときのベット数や、そのときの払い出し枚数をカウントするカウンタ処理(ステップS20)。ベットする態様や、払い出し枚数などが入賞の態様によって相違するから、その処理時間も当然相違する。
(処理8)サブ制御基板Sへコマンドなどを送信するコマンド出力処理(ステップS21)。音声出力や表示するための各種のコマンドは、遊技の態様によって相違するので、このコマンド処理も一定ではない。
(処理9)クレジット枚数表示部35、ゲーム数表示部36および払い出し枚数表示部37にそれぞれ表示されるセグメントデータを設定するセグメントデータ設定処理(ステップ22)。クレジット枚数やゲーム数の表示さらには払い出し枚数の表示などは、何れも遊技の態様あるいは入賞状態によって相違するから、この処理もまたその処理時間は不定であると言える。
(処理10)セグメントデータ設定処理で設定されたセグメントデータを各表示部35〜37に供給して該当する数字、記号などを表示するセグメントデータ表示処理(ステップ23)。
どのような数字や記号などを表示するかによってセグメントデータの生成および出力が相違するので、この場合の処理時間は不定となる。
(処理11)入出力ポート80から出力データを対応するI/O装置に出力するポート出力処理(ステップ24)。ポート出力処理も、対象となるI/O装置の数などによって相違することから、厳密にはその処理時間は一定ではない。
これら(処理1)から(処理11)までの処理を実行した後はスタックエリアに退避した各レジスタ(AF,BC,DE,HL,IX,IYの各レジスタ)の値をそれぞれMPU72内の対応するレジスタに復帰させる(ステップS25)。その後次回のタイマ割り込みを許可する割り込み許可処理(ステップS26)を行って、この一連のタイマ割り込み処理を終了する。
上述した割り込み処理のうち先行割り込み処理を、中央処理装置であるMPU72の初期処理として最初に実行し、この先行割り込み処理の直後に、回胴駆動モータに対する制御処理を行えば、MPU72の初期処理を妨げることなく、一定時間間隔で回胴駆動モータに対する駆動信号を出力させることができる。
なお、図18では先行割り込み処理として、レジスタの退避処理(ステップS11)、停電フラグ状態判別処理(ステップ12)、ウォッチドッグタイマ処理(ステップS14)および割り込み終了宣言処理(ステップS15)の4つの割り込み処理を挙げたが、その数に拘泥することはない。MPU72に対するこれらの処理のうち、少なくとも1以上の割り込み処理が含まれれば、その処理を先行割り込み処理として取り扱うことができる。
また、回胴駆動モータに対する上述した駆動信号生成および出力処理(処理3)は、先行割り込み処理の最初(ステップS11の前)でも、各先行割り込み処理の途中の段階(例えばステップS11の後、ステップ14の前または後)で処理することもできる。
これは、先行割り込み処理は何れもほぼ一定なMPU72に対する初期処理であるので、最初の先行割り込み処理よりも先んじて、あるいは各先行割り込み処理の途中に、この回胴駆動モータ制御処理(処理3)を介在させても、駆動信号の出力間隔を一定にすることには変わりがないからである。
そのため、先行割り込み処理以外の処理であって、その何れかの処理時間がほぼ一定となる割り込み処理が存在する場合には、処理時間がほぼ一定となる割り込み処理の一部若しくはそれらの全ての処理が終了した直後に、回胴駆動モータ制御処理を実行しても差し支えない。
例えば、その他の割り込み処理の範疇として説明した、上述したスイッチ状態読み込み処理(処理4)や、センサ監視処理(処理5)などは、何れもその処理時間がほぼ一定であるため、これらの割り込み処理{(処理4)や(処理5)}の処理前や処理後に、さらには(処理4)と(処理5)の全てが終了してから、回胴駆動モータ制御処理を行うこともできる。
[停電時処理]
図19は主制御基板Cで実行される停電時処理の一例を示すフローチャートである。停電時処理は上述したようにタイマ割り込み処理の中で実行される。
この停電時処理は、上述したタイマ割り込み処理のうち、特にレジスタ退避処理の直後にされるので、その他の割り込み処理を中断することなく実行できる。そのため、復電コマンドなどの送信処理中、スイッチの状態(オンオフ)の読み込み途中、カウンタの内容を更新中のように、それぞれの処理の途中に割り込んでこの停電時処理が実行されることはないので、換言すればイレギュラーなタイミングで停電時処理が実行されないので、イレギュラーなタイミングに実行されることをも考慮した停電時処理のプログラムを作成する必要がなくなる。これによって、停電時処理用の処理プログラムを簡略化してプログラム容量を削減できる。復電処理も同様である。
また、後述するステップS32やS42として示すように、停電時処理の実行後にタイマ割り込み処理に復帰(リターン)することもあるが、レジスタ退避処理(図18参照)の直後に停電時処理が実行されるので、この停電時処理の中で上述したレジスタ退避処理やその復帰処理を行う必要がない。その分、停電時処理用の処理プログラムが簡略化されて、プログラム容量を削減できる。
図19に戻って停電時処理を説明する。停電時処理では通常のコマンドを取り扱うコマンドカウンタ(図示はしない)の値が奇数かどうか、つまりコマンド送信が終了しているか否かを確認する(ステップS31)。送信の途中であればリターン命令を実行して停電時処理を中止する(ステップS32)。
コマンドデータは1バイト単位で送信されるから、1つのコマンド送信は2回のタイマ割り込みで完了する。ステップS31のようにコマンドをバッファリングするときに使用されるコマンドカウンタの値が奇数であるときには、コマンドデータのうち2バイト目のコマンドデータの送信が完了していないことであるから、この場合にはタイマ割り込み処理へのリターン命令が出され、停電時処理は実行しない(ステップS32)。
未送信となっているこの2バイト目のコマンドデータは、リターン命令後に実行される次のタイマ割り込み処理中に発生するコマンド出力処理の中で送信処理されるから(図18R>8のステップS21)、その次のタイマ割り込み処理タイミングになると、このコマンドの送信処理は完了していることになる。
このように停電時処理の始めで、コマンドの送信が完了しているか否かを判断し、送信が未完であるときには送信処理を優先し、単位コマンドの送信処理が終了してから停電時処理を実行すれば、コマンドの送信途中で停電時処理が実行されることをも考慮した停電時処理プログラムや復電処理プログラムを構築する必要がなくなる。その結果停電時処理プログラムを簡略化してプログラムメモリ(ROM74)の小容量化を図れる実益を有する。
単位コマンドの送信を完了するには2回のタイマ割り込み処理の実行が必要なので、少なくとも3回以上タイマ割り込み処理を実行でき、しかも後述する図19の処理(ステップS31〜S38)を実行するに十分な時間の間は、制御系の駆動電圧として使用される安定化電圧(5ボルト)の出力が保持されるように、電源基板850に設けられた電源部850aが構成されているものとする。
これによって、主制御基板Cはコマンドの送信途中に停電が発生しても、停電時処理を正常に実行することができる。因みに、この実施の形態では、タイマ割り込み周期が1.49msecであるので、停電が発生してから(1.49msec×3回=4.47msec)+α以上、例えば30msecの間、駆動電圧が出力され続けるようになっている。
さて、図19のステップS31に示すように、コマンドの送信が完了していれば、ステップS33以降の中断処理が実行される。まず、MPU72のスタックポインタの値をRAM76内のスタックポインタ保存用メモリ76bにセーブし、チェックサム補正値用のメモリ76cの値をクリア(=0)にすると共に、入出力ポート80における出力ポートの出力状態をクリアして、全てのアクチュエータ(図8には示されていない)をオフ状態にする(ステップS33,S34,S35)。
その後、RAM76の全ての値を加算してチェックサムを算出する(ステップS36)。算出したチェックサムより2の補数を求めて、これをチェックサム補正値として新たにチェックサム補正値用メモリ76cに書き込む(ステップS37)。この算出処理によって得られた補正値を使用することで、RAM76のチェックサムはゼロになる。RAM76のチェックサムをゼロにすることで、それ以後のRAM76への書き込みが禁止される(ステップS38)。
その後、停電信号851を入出力ポート80から読み込んで、停電信号851の状態(オンかオフか)を確認する(ステップS39)。この状態確認は制御系の駆動電圧が安定化電圧(5ボルト)以下になるまで繰り返され、その間は無限ループ処理となる(ステップS39)。
停電信号851の状態をチェックした結果、停電信号851が出力(オン)されていなければ、つまり停電信号851がオフの状態になっているときは、停電状態が復旧したことになるので(ステップS39)、RAM76への書き込みを許可すると共に、停電フラグをリセットした後に、リターン命令を実行して図18に示すタイマ割り込み処理に復帰することになる(ステップS40,S41,S42)。
この停電時処理では、第1に、MPU72に設けられた複数のレジスタからの退避処理を行わないので、リターン命令を実行するときもこれらレジスタへの復帰処理は不要である。これによって上述したように停電時処理プログラムの小容量化を達成できる。
第2に、この停電時処理はサブルーチン構成で、コール命令により実行されるから、タイマ割り込み処理への復帰はリターン命令を実行するだけでよく、復帰処理が簡素化される。
第3に、リターン命令の実行によってタイマ割り込み処理に遷移して、このタイマ割り込み処理が実行されると、実行後の状態が入出力ポート80の出力ポートに再出力されるので、ステップS35に示すように停電時処理によって全ての出力ポートをクリアしても、リターン命令を実行するだけでクリアした出力ポートの出力状態を元の状態に復帰させることができる。
第4に、停電信号851の状態チェックは停電時処理の実行中のみならず、その実行後でも停電信号851が出力されなくなるまで行っているので、例えばノイズなどに起因して停電フラグが誤ってセットされてしまったような場合でも、制御を無限ループに突入させることなく、正常に復帰させることができる。
ステップS39に示す停電信号851の再確認処理はRAM76のチェックサムを算出した後であればどのタイミングに行ってもよい。これはRAM76のチェックサム算出処理は比較的長い処理時間を要するので、このチェックサム算出処理後であれば、停電信号851の再確認処理は何時でも可能になるからである。したがって停電信号851の再確認処理はステップS37の処理の前や後に行ってもよい。ステップS37の処理の前後に停電信号851の再確認処理を行うときには、この再確認処理は1回だけ実行されることになり、RAM76への書き込み禁止処理(ステップS38)の後は、判断処理を行わない無限ループ構成となる。
[メイン処理]
図20は電源投入後に実行される主制御基板Cでのメイン処理を示すフローチャートである。
電源スイッチをオンしたり、停電の復旧によって電源が再投入されると、このメイン処理が実行される。まず、スタックポインタの値をMPU72内に設定すると共に、割り込み処理を許可する割り込みモードに設定する(ステップS51,52)。次に、MPU72内のレジスタ群や、I/O装置等に対する各種の設定などの初期化処理が行われる(ステップS53)。
これらの初期化処理が終了すると、次に停電フラグのセット、リセット状態およびリセットスイッチ82のオンオフ状態がそれぞれ確認される(ステップS54,S55)。ここに、停電フラグがセットされているときは、電源が切断されときに停電時処理が実行されたこと、換言すればRAM76にデータがバックアップされた状態にあることを意味する。リセットスイッチ82がオン状態にあるときは、操作者(ホール管理者など)の操作によってRAM76に書き込まれ、あるいはバックアップされたデータが全てクリア(=0)されたことを示している。
よって、ステップS54およびS55のように停電フラグがセットされ、しかもリセットスイッチ82がオフされた状態にあるときには、最早RAM76のデータクリア処理が不要になるため、この場合にはRAMクリア処理をスキップしてステップS57以降の処理に遷移する。
これに対して、同じくステップS54,S55のように停電フラグがリセットされているか、あるいはリセットスイッチ82がオン状態にあるときには、RAM76に対するクリア処理が実行されて、RAM76に書き込まれたデータが全てクリアされる(ステップS56)。
ステップS57において設定キースイッチ83aのオンオフ状態が確認され、オン状態にあればRAM76がクリアされると共に、設定キースイッチ83aの操作位置に対応した6段階確率設定処理が実行される(ステップS58,S59)。確率設定処理によって、遊技の当選確率が6段階に切り替えられる。設定キースイッチ83aがオフ状態にあるときには、そのままステップS60以降の処理に遷移する。
ステップS60では停電フラグのオンオフ状態が再度確認される。ステップS56あるいはステップS58でRAM76に対するクリア処理が実行された結果、RAM76内のバックアップデータがクリアされているときには、停電フラグはリセットされているので、この停電フラグのリセット状態が確認されると通常遊技の各処理(メイン処理)が実行される(ステップS60,S61)。
これで、スロットマシン10の遊技モードがメイン処理として繰り返し実行される。
ステップS60において、停電フラグがセットされた状態にあるときには、復電処理に移行する。停電フラグがセットされた状態にあるということは、図20の処理からも明らかなように、ステップS54−S55−S57−S60のような処理経路を経由したことになるので、この場合にはステップS56や、S58あるいはS59などのサブルーチン処理が全く実行されることなく、ステップS60まで到達したことになる。そのためRAM76のデータは全く書き替えられていないことになるから、復電処理ではRAM76のデータなどが正常であるかどうかなどの確認処理が必要になる。
そのためにまず、RAM76のチェックサムの値を調べ(ステップS62)、その値が正常、つまりチェックサム補正値を加味したチェックサムの値がゼロであれば、RAM76に対するバックアップ処理は正常と見なして復電処理(ステップS63〜S67)を実行する。これは、上述したように停電時処理においてRAM76にバックアップデータを書き込むとき、RAM76のチェックサムの値がゼロになるようにその補正値が設定されているからである。
ステップS62において、チェックサムの値が異常である、つまりチェックサムの値がゼロではなかったときには、RAM76のバックアップ処理中にデータが破壊された可能性が高い。そのため、このような場合には割り込み処理を禁止し(ステップS68)、入出力ポート80内の全ての出力ポートをクリアすることで、入出力ポート80に接続された全てのアクチュエータをオフ状態に制御すると共に、エラー表示を行って、ホール管理者などにバックアップエラーの発生を知らせる(ステップS69,S70)。
続いて、復電処理について説明する。
この復電処理ではまずスタックポインタ保存用メモリ76bの値をMPU72のスタックポインタに書き込み、スタックの状態を電源が切断される前の状態に復帰させる(ステップS63)。次に、復電処理時に使用するコマンド(復電コマンド)をRAM76に用意されている復帰コマンドバッファ76dに書き込み、書き込んだコマンドのデータ数がバイト単位で復電コマンドカウンタ76eに書き込まれる(ステップS64)。
復電コマンドバッファ76dへの復電コマンドの書き込みに当たっては、その下位アドレス(先頭+1のアドレス)に復電コマンドのうち最初に送信する復電コマンドの1バイト分が書き込まれ、その上位アドレス(先頭アドレス)に後に送信する残りの1バイト分の復電コマンドが書き込まれる。これは、復電コマンドの送信順(バイト単位)は復電コマンドカウンタ76eの値に基づいて定められているからである。復電コマンドをサブ制御基板Sに送信することで、復電処理の実行をサブ制御基板Sに知らせることができる。
この復電処理の後は、図20に示すように遊技状態として打ち止めおよび自動精算設定保存処理を行い、その後スイッチ状態の初期化処理を行う(ステップS65,S66)。その後に停電フラグをリセットしてリターン命令RETを実行することで、復電処理が終了する(ステップS67)。
リターン命令の実行によってMPU72のプログラムカウンタの値は、スタックエリアに記憶されているプログラムカウンタの値(停電時処理を行うためのステップS13)を1だけインクリメントした値になるので、図18に示すように今度は停電時処理の次の処理であるウォッチドッグタイマ処理(ステップS14)が実行されることになる。
[回胴駆動モータ制御処理]
図21および図22を参照して説明する。
図18に示すタイマ割り込み処理で、ステップS11,S14およびS15に示すようなMPU72に対する先行割り込み処理が終了すると、次には回胴駆動モータに対する制御処理(その他の割り込み処理)に遷移する。
この回胴駆動モータ制御処理もサブルーチン構成であって、図21に示すように初期化処理が終了すると(ステップS81)、本来のモータ制御処理ルーチン(ステップS100)において、主として駆動モータであるステッピングモータ71に対する回転制御のための駆動信号(具体的には後述する励磁データであるので、以下は励磁データという)の生成処理が行われ、生成された励磁データは一時的にRAM76に保存される。生成処理時間はほぼ一定であって、モータ制御処理ルーチンでは励磁データの生成処理の他に、図柄のオフセット処理や、図柄番号の更新処理が行われる。
回転制御のための励磁データ生成処理(RAM76からの励磁データ取得処理)などはそれぞれの回胴L、M、Rに対して順次実行される。1つの回胴、例えば回胴Lに対する励磁データ生成処理などはRAM76の作業用エリアに設けられた回胴L用の回転制御データ(後述する)を使用して行われ、その生成処理などが終了すると、次の回胴例えば回胴Mに対しての励磁データ生成処理などに遷移するため、ソフト的に回胴M用の作業用エリアへの遷移処理(アドレス変更処理)を行った後、メインのモータ制御処理ルーチンに戻るようになされている(ステップS82,S83,S100)。
3つの回胴L、M、Rの全てに対する回転制御処理、つまり励磁データ生成処理などが終了したときには(ステップS83)、RAM76に保存されていたデータのうち、各回胴L、M、Rに対する励磁データが入出力ポート80に出力される(ステップS84)。
入出力ポート80への出力は、入出力ポート80の対応する出力ポートへのデータ書き込み処理であるから、モータドライバ712には励磁データの入出力ポート80への書き込みと同時に供給されたことになる。その結果、ステッピングモータ71は即座に励磁データによって指定された励磁相への通電処理が行われてロータ60に対する励磁処理がなされることになる。
つまり、図18に示すタイマ割り込み処理内でのステッピングモータ(回胴モータ)71に対する制御処理(ステップS16)は、他の割り込み処理の結果を待たずに入出力ポート80への出力処理が実行されるから、モータ加速中を含めて定速回転中や停止でもほぼ一定周期(タイマ割り込み周期)で励磁データを常に出力することができる。
このような割り込み処理を行うことで、ステッピングモータ71に対する安定した励磁処理が実現されるため、脱調や回転の不安定性を排除できる。モータ加速初期に励磁期間が短かったり、励磁期間の長さが不揃いであったりすると脱調を起こし易いからであり、また定速回転中でも励磁期間の長短が頻繁に発生すると、不安定な回転となり易いからである。
図22は上述したモータ制御処理ルーチンS100の具体的な処理例である。このモータ制御処理では、少なくともウエイトタイマ、加速カウンタおよび励磁順ポインタ(何れもRAM76を利用したソフトウエア処理)が使用される。
ここに、1つのタイマ割り込み期間を単位励磁時間Tとしたときウエイトタイマによって、同一の励磁モードでの励磁時間(タイマ割り込み数)が設定される。図11にその一例を示した。第1の加速期間では2相励磁モード(加速順序1)が130単位、つまり130割り込み分だけ連続して実行される。そのときのトータル励磁時間は、130×1.49msecとなる。タイマ割り込みは1.49msecごとに行われるからである。
したがって、例えば第2の加速期間にあって、加速順序2では1相励磁モードが8単位(=8割り込み=8励磁時間)に亘って連続して実行されることになる。
加速カウンタは、図11において加速順序を指定するためのものである。図11の場合、加速処理は25ステップの励磁パターン(加速順序1〜25)で構成されている。特定の加速位置を指定するには、図11のように「0」から「24」までのカウンタ値を指定すればよいので、加速カウンタの初期値は本来「24」あるいは「0」であるが、後述するようにこの実施の形態でのソフトウエアの構成では、加速カウンタに設定される初期値は「25」となされている。
図11の各データはテーブル化されてROM74に保存されているので、図11を励磁時間および加速カウンタテーブルと呼称する場合もある。
励磁順ポインタは図10に示すステッピングモータ71に対する励磁相を決めるときに使用されるポインタである。1−2相励磁のステッピングモータ71を使用した場合、1相励磁と2相励磁を交互に行うが、そのときの相励磁パターンは図10のように8パターンとなる。どの相励磁のときにどの励磁データを出力励磁データとして取得し、これをRAM76に一時的に保存するかが、この励磁順ポインタの値(0〜7)によって指定される。
回転開始時の励磁順ポインタの値は、後述するように直前にモータを停止させたときに使用した励磁相が、どのパターンに属する励磁相を使用したかによって相違する。回転中は順次励磁順ポインタの値を更新しながら使用する。
続いて、スタートボタン52およびストップボタン53〜55の操作に関連させてモータ制御処理を説明する。以下の説明はあくまでも1つの回胴を制御するためのステッピングモータ71に対する処理例である。
[その1.スタートボタン52の操作前の処理]
スタートボタン52を操作する前でのウエイトタイマの初期値はゼロであり、加速カウンタの値もゼロである。そのため、モータ制御処理がコールされると、まずウエイトタイマの値がゼロであるので(ステップS101)、ステップS111に遷移して加速カウンタの値をチェックする。加速カウンタの値もゼロであるので、この場合にはステップS112において出力励磁データはゼロに設定されて保存される。その後図18のタイマ割り込み処理ルーチンにリターンする。出力励磁データがゼロであるので、スタートボタン52の操作前のモードでは、ステッピングモータ71は回転停止状態となっている。
[その2.スタートボタン52が操作されたときの処理]
スタートボタン52の操作は、図20に示す処理ステップS61での通常遊技の各処理内で検出される。スタートボタン52が操作されたことが検出されるとこの処理ステップS61内で加速カウンタの値が「25」に設定される。
スタートボタン52が操作されてもウエイトタイマの値は依然としてゼロであるから、この場合にもステップS101を経てステップS111に遷移して、加速カウンタの値を判別する。加速カウンタの値は「25」にセットされているので、この場合にはステップS121で減算処理が実行される。その結果、加速カウンタの値はゼロでなくなるので(ステップS122)、ステップS131で減算後の加速カウンタの値に対応した励磁時間の値(図11参照)を取得し、取得した励磁時間の値がウエイトタイマにセットされる。
ステップS121での減算処理は、1だけディクリメントする処理であるから、減算後の加速カウンタの値は「24」となり、この場合には図11のテーブルからも明らかなように、加速カウンタの値「24」に対応した励磁時間(130割り込み)の値(=130)がウエイトタイマにセットされる。これで、第1の加速期間に相当する連続相励磁時間(=130×1.49msec)がセットされたことになる。
ウエイトタイマへのセット処理が終了すると、励磁順ポインタを「1」だけインクリメントする更新処理が実行される(ステップS132)。そして、更新処理された励磁順ポインタの値(この例では、「5」)に対応した励磁データを図10に示すテーブルより取得し、その励磁データ(06H)が回胴L用の出力励磁データとしてRAM76に保存される(ステップS134)。保存された励磁データはその他の回胴駆動用ステッピングモータに対する励磁データを取得した後、図21に示すように入出力ポート80に同時に出力される。
その後、図柄オフセットの値が更新されると共に、ステップS135以下に示す回胴インデックスセンサ44(図3参照)による回胴の1回転検出処理などが行われる。このうち、ステップS144およびS145は回胴異常処理であって、励磁データを印加したにも拘わらず回胴が正常に回転しないようなときの処理であり、またステップS151〜S154まではステッピングモータ71に対する回転停止処理(ブレーキ処理)である。
これらの処理は後述するとして、モータ加速処理が正常であれば上述のステップS144からステップ154までがスキップされて図18に示すタイマ割り込みルーチンにリターンする。
したがって加速カウンタにカウンタ値「25」がセットされ、3つの回胴L、M、Rのそれぞれに対するステッピングモータ71L、71M、71Rに対してモータ始動用の励磁データがそれぞれ供給されることでそれぞれのロータが始動する。次のタイマ割り込み時間になると、再びモータ制御処理ルーチンS100がコールされる。このときの処理を次に説明する。
この場合にはウエイトタイマの値は「130」であるから(ステップS101)、このときはウエイトタイマの値を1だけ減算する減算処理を実行してタイマ割り込みルーチンにリターンする(ステップS102)。その結果、加速カウンタや励磁順ポインタの値は前のタイマ割り込み時と同じ値を保持する。つまり、同じ励磁相(この例では2相励磁)によるモータ加速処理が継続される。
この同じ励磁相を使用したモータ加速処理がトータル130割り込み分連続して行われて、タイマ割り込みの都度ウエイトタイマは減算処理される。その結果、130割り込みが行われたときウエイトタイマの値はゼロになる(ステップS101)。
一方、加速カウンタの値はこの第1の加速期間中全く変化しないので、ウエイトタイマの値がゼロになることで、今度はステップS111を介してステップS121に遷移し、加速カウンタが始めて減算処理される。1だけ減算された加速カウンタの値「23」に対応した励磁時間(8割り込み)を図11のテーブルより取得し、取得したこの励磁時間の値(=8)がウエイトタイマにセットされる(ステップS122,S131)。
同時に、励磁順ポインタの値がインクリメントされて「6」となり、この励磁順ポインタの値「6」に対応した励磁データ「02H」(1相励磁)が出力励磁データとしてRAM76に格納される(ステップS132,S134)。その後、他の回胴M、Rについても同様な出力励磁データの取得処理がなされ、全ての回胴L、M、Rに対して出力励磁データの取得処理が終了した段階で、これら出力励磁データが入出力ポート80にそれぞれ出力されて、第2の加速期間処理が開始される。したがって、第2の加速期間の最初は1相励磁が8割り込み分だけ連続して行われる。
第2の加速期間の処理での最初は加速順序2に相当する処理である(図11参照)。この加速順序2における加速処理で、タイマ割り込みが8割り込み分終了すると(ステップS101,S102)、加速カウンタの値が更に減算されるから(ステップS121)、今度は励磁順ポインタの値が「7」となる励磁データ「03H」が図10のテーブルより読み出されるので、7割り込み分だけの連続加速処理が2相励磁によって行われる。
このように加速カウンタを順次減算処理しながら、励磁順ポインタによって指定された励磁データを順次読み出して、第2の加速期間中における加速処理が実行されるので、遂にはステップS121における加速カウンタの値が「0」になる。加速カウンタの値が「0」になると、この値がステップS122でチェックされるので、ステップS123に遷移して、今度は加速カウンタの値を「1」にする処理が実行される。
その後、ステップS131に遷移して、ステップS121で減算したときの加速カウンタの値「0」に対応した励磁時間(1割り込み分)に相当する値(=1)がウエイトタイマにセットされる。その後、励磁順ポインタが更新されてこの例では「0」のポインタに該当する励磁データ「01H」が図10のテーブルより読み出されて、これが出力励磁データとしてセットされる(ステップS132,S134)。したがって、ステップS121での加速カウンタの値が「0」になると1回のタイマ割り込み分だけ励磁される。
ステップS121で加速カウンタの値が「0」にされても、ステップS123の処理で「1」加えられる。そのため、次のタイマ割り込み処理において、励磁順である加速順序25(図11)の次の処理ステップとしては、ステップS111を経由してステップS121に遷移して再度加速カウンタの減算処理がなされる。それによって加速カウンタの値は再び「0」になるから、ステップS131では図11の加速順序25に相当する励磁時間(=1)がウエイトタイマにセットされることになる。また、励磁順ポインタはステップS132の処理で「2」に更新される結果、励磁相が2相励磁に変わると共に1割り込み分だけの励磁処理となる。
つまり、加速順序25の次からは、ステップS121,S123において加速カウンタの「0」、「1」の加減算処理が交互に繰り返されることになり、しかも常に1割り込みによる励磁となるから、ステッピングモータ71は1相励磁と2相励磁を交互に繰り返す回転モードとなる。これは定速処理に他ならず、換言すれば、加速順序25まで励磁処理が進むと、それ以降は定速回転モードに遷移することになる。
[その3.ストップボタンが押されたときの処理]
さて、この定速回転モード中にユーザが任意のストップボタン53〜55を押して、回胴を止める操作を行うと、以下のような処理によって回胴の回転が停止する。
回転停止処理の前に、図柄オフセットと図柄番号の説明を行う。図22に示すように加速カウンタの処理系で、励磁順ポインタが更新されると、これと同時に図柄オフセットの値が更新されると共に、回胴インデックスセンサ44(図3参照)による回胴Lの回転検出処理が行われる(ステップS136,S137)。回胴インデックスセンサ44が回胴Lの一周(1回転)を検出すると、図柄オフセットカウンタおよび図柄番号のカウンタが何れもゼロにリセットされる(ステップS137)。
図柄番号は図4に示す図柄の番号を連番で示すものであり、トータル21個の図柄が用意されているので、図柄番号は「0」〜「20」の値をとる。図柄オフセットは1つの図柄を回胴Lの回転方向に24等分した値であるから、「0」〜「23」の値をとる。図柄オフセットの値が「24」になると、図柄番号が更新されると共に、図柄オフセットの値は0にリセットされる(ステップS141,S142)。
さて、ブレーキをかけたとしても、ロータ60のすべりがあるので3〜4相分滑って停止する。また上述したように、モータ始動時の励磁相としては2相励磁であるのが好ましく、ブレーキは2相励磁直後、つまり1相励磁のタイミングに開始されるように、ストップボタン53〜55の操作タイミングに拘わらず、モータ停止時期(回胴停止時期)を把握しておく必要がある。
そこで、ステップS142において図柄番号の更新処理や図柄オフセットをリセットした後の処理として、ステップS151のような回胴停止時期を判別する処理ステップが置かれる。このステップS151では現在の出力中の励磁相が2相励磁であり、図柄オフセット値が所定オフセット値を超えない範囲となっているかをそれぞれ判別する。
ここで、現在の励磁相が2相励磁であるかどうかは、励磁順ポインタの値を参照すればよく、所定のオフセット値を超えたかどうかは図柄オフセット値を参照すればよい。図柄オフセット値を考慮するのは、図柄オフセット値が大きくなればなるほど、隣接する回胴の停止時における図柄位置の相対的ずれが大きくなることを意味する。人間の識別力を考慮すると4オフセット以上になると、図柄のずれがはっきり認識できるようになるので、図柄オフセット値が4以下のときに回胴停止処理を実行する必要があるからである。
したがってこの条件を満たさないときには図18のタイマ割り込み処理ルーチンに戻るが、ステップS151の回胴停止条件を満たしているときで、しかもストップボタン53〜55の何れかのボタンが押されたときには停止図柄がセットされると共に、セットされた停止図柄(図柄番号)と現在の図柄番号との比較が行われる(ステップS152)。そして両者の図柄が一致したときで、ステップS151の条件を満たすとき、ブレーキ処理に遷移する(ステップS153)。停止図柄とは、スタートボタン52が操作されたとき抽選された役に対応する図柄を言う。
このブレーキ処理ではブレーキ用励磁データの設定処理が行われる。この例では4相が同時励磁されるように設定される。さらに、ウエイトタイマにブレーキ時間を設定する。この例では、159割り込み分(=236.91msec)がブレーキ時間に選ばれているので、ウエイトタイマには「159」がセットされる。これに加えて加速カウンタをリセット(=0)する。ウエイトタイマを上述した値(=159)にセットすると、ステップS101,S102の処理が159割り込み分行われ、その間はブレーキ用の励磁データが連続して出力されて、ロータ60が完全に停止する。
ステップS153の後は、次回回転時に使用する励磁順ポインタに対する調整処理が行われる(ステップS154)。励磁順ポインタの調整処理はロータ60のすべりを考慮する。上述したようにブレーキ処理時、ロータ60は3〜4相分程度滑ってから停止するのが殆どであるので、例えば図10に示す励磁順ポインタ「0」でブレーキをかけたときには、励磁順ポインタ「4」の位置でロータ60が停止しているものと推定して、この例では励磁相の調整分として「4つの励磁相」分だけ進める。その結果ステップS132における更新後の励磁順ポインタの値は「5」となる。
[再加速処理および異常処理]
すでに説明したように、モータ加速期間では加速カウンタの加減算に応じて図柄オフセットの値が更新され、そして定速回転中はタイマ割り込みがなされるたびに図柄オフセットが更新される(ステップS135)。そして、更新後の値が「24」になると、図柄番号が更新されると同時に、図柄オフセットの値がリセットされる(ステップS141,S142)。また図柄番号が更新された後はその値がその最大値「21」を超えないで、しかも図柄オフセットが最大値である「24」を超えるまでは、ステップS141−S143−S151の処理ステップをそれぞれ経由して、図柄番号の更新と図柄オフセットの更新およびリセット処理が続く。さらに回胴Lが1回転するごとに図柄番号と図柄オフセットがそれぞれリセットされるようになっている(ステップS136,S137)。
この処理がなされることで、図柄番号を基準にどの図柄が露出窓を通過しているかが判り、さらに図柄オフセットの値によってその図柄のどの位置が露出窓31Lに位置しているかを判定することができる。
スタートボタン52によってステッピングモータ71が正常に加速し、定速回転に至る正常回転の場合には上述したような状況が再現される。しかし、正常に加速されずに正常回転に至らない場合や、故意に回胴を押さえて回転を止めたりすると、以下のような異常回転処理となる。
まず、加速処理は回胴が1回転するまでに終了するので、通常の場合には加速処理が行われると、何れ回胴の1回転目が回胴インデックスセンサ44によって検出されるはずである。しかし、加速処理が異常であると、ステップS136によって回胴1回転目が検出されない状態でも、図柄番号の更新処理が進んでしまう(ステップS141,S142)。
図4よりも明らかなように図柄番号は「0」〜「20」までであるが、このような異常状態になると、図柄番号がさらに更新されてその値が最大値「21」になっても(ステップS141,S142)、次の励磁相切り替えタイミングになると、ステップS121においてカウンタ加減算処理が行われてしまう。そうすると、図柄オフセットの値は今まで通りに更新処理される(ステップS122,S135)。
その場合にはステップS141を経て、ステップS143において図柄番号の値がチェックされる。図柄番号は「0」から「20」までであるので、その更新最大値「21」を超えたときには異常回転状態とみなすことができる。その場合でもステッピングモータ71の動作上のばらつきを考慮して、この例では4オフセット以上図柄オフセットが進んだとき(ステップS144)、始めて異常回転状態と判断して異常処理が行われる(ステップS145)。この場合には再加速設定処理が行われ、加速カウンタにはその初期値である「25」がセットされ、次のタイマ割り込み期間から再びステップS111に戻って再加速処理が行われる。
ステッピングモータ71には動作上のばらつきがあり、理想的には1回転=504パルスとなるが、場合によっては503パルスあるいは505パルスで1回転することも考えられるので、ステップS144では余裕をもって4オフセット分を異常検出値に設定してある。
また、回胴が何らかの原因で回転しなかったとき、例えば回胴の回転を故意に押さえてしまっているようなときには、上述したと同じようにステップS136で回胴インデックスセンサ44によって回胴の1回転が検出されないまま、図柄番号のみが更新され続けることになる。その結果、図柄番号の更新値が最大値「21」なった次の割り込みによって加速カウンタで加減算処理が行われると、図柄オフセットが更新されると共に(ステップS121,S135)、図柄オフセットの値が最大値「24」以下であるときには(ステップS141)、ステップS143に遷移する。このステップ143で図柄番号が最大値「21」まで更新されていることがチェックされるため、図柄番号が最大値「21」となっているときは異常状態とみなすと共に、更新された図柄が回転して図柄オフセットが4オフセット以上ずれたときには(ステップS144)、ステップ145に遷移して上述したと同じ異常処理が実行される。この異常処理はリセットスイッチ82が操作されるまで繰り返される。
このステップS145における異常処理の回数が規定回数(例えば3回)を超えたときには、この異常状態を報知する処理(ホール内に設けられた異常ランプに対する点滅処理、ホール管理者へのブザー報知処理など)を講じることもできる。
[メダル払い出し処理およびメダル貯留処理]
図23はメダル払い出し処理とメダル貯留処理の一例を示すフローチャートである。
まず割り込み処理によって、図23の処理ルーチンがコールされると、遊技の状態に応じた制御命令データが生成される(ステップS161)。上述した実施例では制御命令データとして、メダル払い出し用ホッパ制御手段に対する出力制御情報である制御命令コード(1ビット)、上部ランプ13に対する点灯制御手段に対する制御命令コード(5ビット)の他に、メダル貯留用制御手段に対する制御命令コード(1ビット)で構成されている。
遊技の状態に応じた制御命令データとは、入賞や、入賞予告などの遊技の状態に応じてこれら各種の制御手段を制御するために用いられる制御命令データである。遊技の状態には、遊技中はもちろんのこと、メダルをクレジットしたり、ベットしたりするためにメダルを投入したりしている状態も含まれるものとする。
生成された制御命令データはRAM76にセットされる。その後、この制御命令データに対する前処理が実行される(ステップS162)。前処理とは上述した例の場合には、ビット1からビット5までの制御命令データはスルーで、その他のビット(ビット0,6,7)を初期化(”0”)する処理である。前処理は論理積処理であって、上述したビット構成のときは前処理のためのコードとして3EH(00111110)が使用される。前処理された制御命令データはRAM76の同じ格納エリア76fに再格納される。
次に、メダル払い出しコードとの照合処理が行われる(ステップS163)。入賞時のようにメダル払い出しモードとなったときには、メダル制御情報としてメダル払い出しコード(この例では5AH)が、図20のステップS61の通常処理によってRAM76のエリア76gにセットされている。セットされているこのメダル払い出しコードがMPU72にロードされて、処理プログラム中に記述された参照コードと照合される。
照合結果が一致したときは、正規のメダル払い出しモードであると判断して、この場合には制御命令データのうちビット7のみ”1”に置き換える処理が行われる(ステップS164)。
照合結果が一致しなかったときには、メダル払い出しモードではないと判断して、この場合にはビット7の置換処理(変換処理)は行わずステップ165に遷移する。
照合結果が一致しないときとしては、メダル払い出しモードではあるが、不正行為などによる置換によってメダル払い出しコードが参照コードと相違しているときの他に、RAM76に何もセットされていないようなとき、つまり元々メダル払い出しモードではないときが考えられる。何れの場合でもビット7の置換処理は実行されない。
その後、今度はメダル貯留コードとの照合処理が行われる(ステップS165)。メダルをクレジットしたり、ベットするためのメダル投入時にはメダル貯留モードに遷移するから、このときメダル制御情報としてメダル貯留コード(この例では5AH)が、図20のステップS61の通常処理によってRAM76のエリア76fにセットされている。セットされているこのメダル貯留コードがMPU72にロードされて、処理プログラム中に記述された参照コードと照合される。
照合結果が一致したときは、正規のメダル貯留モードであると判断して、この場合には制御命令データのうちビット6のみ”1”に置き換える処理が行われる(ステップS166)。
照合結果が一致しなかったときには、メダル貯留モードではないと判断して、この場合にはビット6の置換処理は行わずステップ167に遷移する。置換処理が終了した制御命令データあるいは置換処理を経ない制御命令データは入出力ポート80に書き込まれる。
この入出力ポート80への書き込み処理が終了すると、図18に示す割り込みルーチンにリターンするので、入出力ポート80に接続された各種制御手段では、入出力ポート80に書き込まれた制御命令データに応じた制御が実行される。
メダル払い出しモードとなっているときは、メダル貯留モードが同時に立ち上がることは通常あり得ないので、ステップ164による置換処理が行われるときはステップ166の置換処理は行われないし、これとは逆にメダル貯留モードになっているときに、メダル払い出しモードが同時に立ち上がることはあり得ないので、ステップ166による置換処理が行われるときは、ステップ164による置換処理は行われないのが普通である。
しかし、メダル払い出しモードのときでもメダル貯留モードが同時に立ち上がるように遊技機を構成することも可能であるので、この場合にはビット6とビット7との置換処理がそれぞれ実行される場合もある。
上述した実施例では、メダル払い出しコードとして、通常出現する確率の少ないコード例えば5AHを使用したが、これに代えてAAHや55Hなどを使用することもできる。メダル貯留コードも同様に、A5Hの代わりに、55HやAAHを使用することができる。したがって両者の組み合わせとしては、(5AH,AAH)、(5AH,55H)、(AAH,A5H)、(AAH,55H)などが考えられる。
このようにこの発明では、メダル払い出し状態となったときにセットされるメダル払い出しコードを利用して、メダル払い出し用出力制御情報を生成したものである。
従来のようにメダル払い出し状態となったとき直ちにメダル払い出し用の出力制御情報を生成したのでは、外来ノイズや不正行為によっても、このメダル払い出し用の出力制御情報が生成されてしまう可能性がある。しかし、この発明ではメダル払い出し状態となったときだけメダル制御情報であるメダル払い出しコードをセットすると共に、セットしたこのメダル払い出しコードと参照コードを照合し、照合結果が一致したときだけ、出力制御情報を生成するようにすれば、メダル払い出しコードに一致しない限りメダルが払い出されないから、外来ノイズや不正行為からのメダル払い出しを有効に保護できる。
上述した遊技機はスロットマシンである。スロットマシンはその基本構成として、遊技状態に応じてその遊技状態を識別させるための複数の図柄からなる図柄列を変動表示した後に図柄を確定表示する表示装置を備えており、操作レバーの操作に起因して図柄の変動が開始されると共に、ストップボタンの操作に起因して、或いは所定時間経過することにより図柄の変動が停止されるようになされ、停止時の確定図柄が特定図柄であることを必要条件として遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段を備えた遊技機である。
この遊技機には、少なくとも多数個の遊技媒体を取得できる遊技者に有利な状態である特別遊技状態(大当たり状態)と、遊技媒体を消費する遊技者に不利な状態である通常遊技状態の2種類の遊技態様が存在する。この種遊技機において使用される遊技媒体はコイン、メダル等がその代表例として挙げられる。
上述した遊技機はパチンコ機とスロットマシンとを融合(複合)させた遊技機である。このような遊技機(複合機)はその基本構成として、遊技状態に応じてその遊技状態を識別させるための複数の識別情報からなる図柄列を変動表示した後に図柄を確定表示する表示装置を備えており、さらに操作レバーなどの始動用操作手段の操作に起因して図柄の変動が開始されると共に、ストップボタンなどの停止用操作手段の操作に起因して、或いは所定時間経過することにより図柄の変動が停止され、その停止時の確定図柄が特定図柄であることを必要条件として遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段を備え、遊技媒体として遊技球を使用するとともに、識別情報の変動開始に際しては所定数の遊技球を必要とし、特別遊技状態の発生に際しては多くの遊技球が払い出されるよう構成された遊技機である。
この遊技機には、少なくとも多数個の遊技球を取得できる遊技者に有利な状態である特別遊技状態(大当たり状態)と、遊技球を消費する遊技者に不利な状態である通常遊技状態の2種類の遊技態様が存在する。
この発明は上述した実施の形態の遊技機に何等限定されるものではなく、この発明の技術的範囲に属する限り、種々なる形態で実施し得ることは勿論である。
例えば回胴の個数は2個以上であればよく、回胴を含む表示装置も縦型、横型を問わない。回胴の回転方向も同一方向に揃える必要はなく、互いに逆回転するような回胴を有する遊技機にもこの発明を適用できる。いわゆるAタイプのスロットマシンに限らず、Bタイプ、Cタイプ、AタイプとCタイプの複合タイプ、BタイプとCタイプの複合タイプなど、どのようなスロットマシンにこの発明を適用してもよく、さらにはスロットマシンとパチンコ機とを複合した複合機にこの発明を適用してもよく、何れの場合であっても上述した実施の形態と同様の作用効果を奏することは明らかである。