はじめに、本実施の形態から抽出され得る発明群を手段n(n=1,2,3…)として区分して示し、それらを必要に応じて効果等を示しつつ説明する。なお以下においては、理解の容易のため、本実施の形態において対応する構成を括弧書き等で適宜示すが、この括弧書き等で示した具体的構成に限定されるものではない。
(手段1)「複数の回胴を回転させた後に、この回胴を停止させることで遊技を行う遊技機において、
定期的に行われる遊技機の処理手段の1つとして、回胴駆動モータ制御処理手段を有し、
この回胴駆動モータ制御処理手段では、回胴駆動モータを駆動する信号が生成されると共に、
生成されたこの駆動信号が一定の時間間隔で回胴駆動モータ側に出力されるようになされたことを特徴とする遊技機。」
この遊技機によれば、回胴駆動モータに対する駆動信号が定期的な処理の期間内で生成され、生成された駆動信号は一定周期(一定の時間間隔)ごとに出力される。定期的な処理期間内での処理が複数存在するときには、全ての処理が終了するまでのトータル処理時間が変動する。
一方、回胴駆動モータに対する駆動信号の生成処理は、対応する駆動信号つまり励磁データを出力するだけであるから、その処理時間は常にほぼ一定である。したがって、駆動信号を一定周期ごとに出力するようにすれば、トータル処理時間の変動による駆動モータへの影響を回避することができる。
これは、駆動信号の出力間隔が処理結果を出力する度に変動すると、駆動モータへの励磁時間が微妙に変動し、これによって駆動モータの脱調や回転の不安定性を惹起することになるからである。駆動信号を常に一定間隔で出力させることができれば、このような問題を回避できる。回転の安定を確保することで、ゲームへの集中力が増し、遊技者の興趣を増進させることができる。
(手段2)「手段1において、定期的に行われる上記処理は、定期的な割り込み処理であって、この割り込み処理が処理時間がほぼ一定な割り込み処理と、処理時間が不定な割り込み処理とに分けられるとき、
上記回胴駆動モータに対する駆動信号の生成処理は、処理時間が不定である上記割り込み処理に先行して実行されることを特徴とする遊技機。」
この遊技機によれば、定期的な割り込み処理であって、しかもこの定期的な割り込み処理の中に、処理時間がほぼ一定である割り込み処理の他に、処理時間が不定である割り込み処理が混在するとき、不定である割り込み処理に先行して、上述した回胴駆動モータの処理を実行する。
こうすれば、定期的な処理結果が一括して出力されるようになされている場合であって、その処理の中に処理時間が遊技の状態によっては変動するような処理が含まれていたとしても、このような処理時間が不定な処理に影響されることなく駆動信号の生成および出力処理を実行できる。
(手段3)「手段2において、処理時間が不定な割り込み処理は、遊技の状態によってその処理時間が変わる割り込み処理であることを特徴とする遊技機。」例えばスロットマシンにおける割り込み処理の中には、カウンタやタイマの値を減算するタイマ減算処理などがあり、このようなタイマ減算処理の場合にはベット数やコイン(メダル)の払い出し枚数などが、入賞の内容(態様)によって相違するので、入賞の内容によっては払い出し枚数を算出するための処理時間が変わる。換言すれば遊技の状態によって、その処理時間が変動する割り込み処理が存在することになる。
(手段4)「手段1において、上記定期的な割り込み処理は、タイマ割り込み処理であることを特徴とする遊技機。」
この遊技機によれば、定期的な割り込み処理がタイマ割り込み処理であるときでも、このタイマ割り込み処理の中に、処理時間がほぼ一定である割り込み処理の他に、処理時間が不定である割り込み処理が混在するときには、処理時間が不定の割り込み処理に先行して、上述した回胴駆動モータの処理を実行する。
こうすれば、タイマ割り込み処理中に得られた処理結果の全てが一括して出力されるようになされている場合であって、その処理の中に処理時間が遊技の状態によっては変動するような処理が含まれていたとしても、このような処理時間が不定な処理に影響されることなく駆動信号の生成および出力処理を実行できる。
(手段5)「手段4において、処理時間が不定なタイマ割り込み処理は、遊技の状態によってその処理時間が変わる割り込み処理であることを特徴とする遊技機。」
例えばスロットマシンにおけるタイマ割り込み処理の中には、カウンタやタイマの値を減算するタイマ減算処理などがあり、このようなタイマ減算処理の場合にはベット数やコインの払い出し枚数などが、入賞の内容によって相違するので、入賞の内容によっては払い出し枚数を算出するための処理時間が変わる。換言すれば遊技の状態によって、その処理時間が変動するタイマ割り込み処理が存在することになる。
(手段6)「手段1において、上記駆動信号の生成処理が終了した直後に、生成された上記駆動信号が出力されることを特徴とする遊技機。」
この遊技機によれば、駆動信号の生成処理が終了した段階で、この駆動信号が出力されるので、駆動信号を一定周期(一定の時間間隔)ごとに駆動モータ側に出力できる。これによって定期的な処理の中に、処理時間が変動する処理が存在していたとしても、その処理結果を待たずに駆動信号を出力させることができるから、処理時間が変動する処理による影響を受けずに駆動信号を常に一定の時間間隔で出力できる。
駆動信号の出力間隔を一定にできれば、この駆動信号による駆動モータへの励磁タイミングおよび励磁間隔(出力励磁間隔)がほぼ一定となるため、駆動モータの脱調などを防止できる。
駆動モータに対する初期励磁のとき、出力励磁間隔が短くなったりすると、十分な励磁力が得られなくなるおそれがあるので、脱調し易くなるからである。また、加速期間や定速期間でも出力励磁間隔が変動すると回転の不安定性や脱調を惹起するからである。出力励磁間隔がほぼ一定になれば、脱調や回転の不安定性をもたらすことがない。
(手段7)「手段6において、上記駆動信号の出力は、入出力ポートへの書き込み処理であることを特徴とする遊技機。」
この遊技機によれば、駆動信号の出力処理は入出力ポート(出力ポート)への書き込み処理となる。入出力ポートへの書き込み時間は無視するほど短い(数μsec)から、駆動信号の生成タイミングが一定であれば、駆動信号の出力タイミング(出力励磁間隔)を一定にできる。
(手段8)「手段2又は手段4において、上記回胴駆動モータ制御処理は、処理時間がほぼ一定となる他の割り込み処理の処理前又は処理後に行われることを特徴とする遊技機。」
この遊技機によれば、回胴駆動モータの制御処理が、処理時間がほぼ一定となる他の割り込み処理の処理前又は処理後に行われる。これらの割り込み処理は何れも処理時間がほぼ一定であるため、回胴駆動モータの制御処理をこれらの割り込み処理の処理前に行っても、処理後に行っても、常に一定の間隔で回胴駆動モータに対する駆動信号を出力することができる。勿論、割り込み処理が複数存在するときには、任意の割り込み処理とその次の割り込み処理との間に、この回胴駆動モータ制御処理を行っても同じ効果が得られる。したがって他の割り込み処理が複数存在するときでも、その処理数の多少には全く依存しないで、回胴駆動モータの制御処理を実行できる。
(手段9)「手段8において、処理時間がほぼ一定となる他の割り込み処理の全てが終了した段階で、上記回胴駆動モータの制御処理が実行されることを特徴とする遊技機。」
この遊技機では、処理時間がほぼ一定となる割り込み処理と、処理時間が不定である割り込み処理とが混在するときで、処理時間がほぼ一定となる割り込み処理が複数存在するときには、その全ての割り込み処理が終了した段階で、回胴駆動モータの制御処理が実行される。これらの割り込み処理の全てが終了するまで回胴駆動モータに対する制御処理を待っても、これらの割り込み処理の処理時間がほぼ一定であるため、回胴駆動モータに対する駆動信号を一定間隔で出力させることができる。
(手段10)「手段4において、処理時間がほぼ一定となる上記タイマ割り込み処理として、中央処理装置に設けられたレジスタ群に対する退避処理、停電フラグの状態判別処理、ウオッチドッグタイマ処理、上記中央処理装置に対する割り込み終了宣言処理のうち少なくとも1つ以上の割り込み処理が存在するとき、上記回胴駆動モータに対する制御処理は、上記割り込み処理の最初に行うか、途中の割り込み処理の間に行うか、あるいは上記割り込み処理の最後に行うことを特徴とする遊技機。」
この遊技機によれば、処理時間がほぼ一定となる割り込み処理が複数存在するときには、それらに先行してこの回胴駆動モータに対する制御処理を行うこともできれば、途中の割り込み処理の間に行うか、あるいは全ての割り込み処理が終了した段階で行うことができる。
これは、何れの割り込み処理もその処理時間がほぼ一定であるから、回胴駆動モータに対する制御処理に先行してこれら割り込み処理が行われたとしても、回胴駆動モータを駆動する駆動信号を出力する間隔は常に一定となるからである。
(手段11)「手段10において、処理時間がほぼ一定となる上記タイマ割り込み処理のうち、上記中央処理装置に設けられたレジスタ群に対する退避処理、上記停電フラグの状態判断処理、上記ウオッチドッグタイマ処理および上記中央処理装置に対する割り込み終了宣言処理は、先行した割り込み処理として処理されることを特徴とする遊技機。」
この遊技機において、これら4つの割り込み処理(レジスタの退避処理、停電フラグの状態判別処理、ウオッチドッグタイマ処理および割り込み終了宣言処理)を、処理時間がほぼ一定となる他の割り込み処理に先行して、換言すればその他の割り込み処理に優先して処理すると共に、その直後に回胴駆動モータに対する制御処理を行う。
こうすることによって、中央処理装置(MPU)の初期処理を妨げることなく、一定時間間隔で回胴駆動モータに対する駆動信号を出力させることができるようになる。
(手段12)「手段11において、タイマ割り込み処理のなかに、上記先行割り込み処理と、それ以外の割り込み処理とが存在すると共に、当該それ以外の割り込み処理として、処理時間がほぼ一定な割り込み処理と、処理時間が不定な割り込み処理とが混在するときには、
上記処理時間がほぼ一定となる割り込み処理が、処理時間が不定なその他の割り込み処理よりも先行して実行されると共に、
上記処理時間が一定となる割り込み処理の処理前または処理後に、上記回胴駆動モータに対する制御処理が行われることを特徴とする遊技機。」
この遊技機によれば、先行割り込み処理以外の処理タイミングであっても、処理時間がほぼ一定となる処理が存在するときは、この処理時間がほぼ一定となるその他の割り込み処理を先行して実行すると共に、その処理前または処理後あるいはそれらの処理の間に回胴駆動モータの処理を行えば、上述したと同じ理由で、一定時間間隔で回胴駆動モータに対する駆動信号を出力させることができるようになる。
(手段13)「手段1において、上記駆動モータは、1−2相励磁方式を採用した2相ステッピングモータであることを特徴とする遊技機。」
この遊技機によれば、駆動モータはステッピングモータであるので、高トルク、高停止精度が得られる。この他に、1−2相励磁方式であるので、1相励磁と2相励磁の2タイプの組み合わせによって8種類(8ステップ)の励磁順が定まり、回胴始動時や回胴回転時での励磁相の特定が容易になる。
(手段14)「手段13において、上記駆動モータに対する上記駆動信号は相励磁用の励磁データであることを特徴とする遊技機。」
この遊技機によれば、ステッピングモータの相励磁用として駆動信号が生成されるので、この駆動信号をそのままモータドライバに与えれば、そのまま特定の励磁相に通電して、ロータを駆動できる。
(手段15)「手段1から手段14の何れかにおいて、遊技機はパチンコ機である。」ここに、パチンコ機はその基本構成として操作ハンドルを備えると共に、この操作ハンドルの操作に応じて遊技球を所定の遊技領域に発射させ、遊技球が遊技領域内の所定の位置に配置された作動口に入賞することを必要条件として表示装置における図柄の変動表示が開始するようになされたものであり、また特別遊技状態発生中には、遊技領域内の所定の位置に配置された入賞口が所定の態様で開放されることによって遊技球を入賞可能として、その入賞個数に応じた有価価値が付与されるようになされた遊技機である。有価価値は景品球として還元することもできれば、磁気カードなどのカード状記録媒体を利用して有価価値に相当する有価情報を書き込むことでもよい。
パチンコ機には、少なくとも多数個の遊技球を取得できる遊技者に有利な状態である特別遊技状態(大当たり状態)と、遊技球を消費する遊技者に不利な状態である通常遊技状態との2種類の遊技態様が存在する。
(手段16)「手段1から手段14の何れかにおいて、遊技機はスロットマシンである。」ここに、スロットマシンはその基本構成として、遊技状態に応じてその遊技状態を識別させるための複数の図柄からなる図柄列を変動表示した後に図柄を確定表示する表示装置を備えており、始動用操作手段(例えば操作レバー)の操作に起因して図柄の変動が開始されると共に、停止用操作手段(例えばストップボタン)の操作に起因して、或いは所定時間経過することにより図柄の変動が停止されるようになされ、停止時の確定図柄が特定図柄であることを必要条件として遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段を備えた遊技機である。
上述した遊技機には、少なくとも多数個の遊技媒体を取得できる遊技者に有利な状態である特別遊技状態(大当たり状態)と、遊技媒体を消費する遊技者に不利な状態である通常遊技状態の2種類の遊技態様が存在する。この種遊技機において使用される遊技媒体はコイン、メダル等がその代表例として挙げられる。
(手段17)「手段1から手段14の何れかにおいて、遊技機はパチンコ機とスロットマシンとを融合させた遊技機である。」
このような遊技機(複合機)はその基本構成として、遊技状態に応じてその遊技状態を識別させるための複数の識別情報からなる図柄列を変動表示した後に図柄を確定表示する表示装置を備えており、さらに操作レバーなどの始動用操作手段の操作に起因して図柄の変動が開始されると共に、ストップボタンなどの停止用操作手段の操作に起因して、或いは所定時間経過することにより図柄の変動が停止され、その停止時の確定図柄が特定図柄であることを必要条件として遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段を備え、遊技媒体として遊技球を使用するとともに、識別情報の変動開始に際しては所定数の遊技球を必要とし、特別遊技状態の発生に際しては多くの遊技球が払い出されるように構成された遊技機である。
上述した遊技機には、少なくとも多数個の遊技球を取得できる遊技者に有利な状態である特別遊技状態(大当たり状態)と、遊技球を消費する遊技者に不利な状態である通常遊技状態の2種類の遊技態様が存在する。
以上説明したように、この発明によれば、複数の回胴を回転させた後に、この回胴を停止させることで遊技を行う遊技機において、回胴駆動モータ制御処理手段で回胴駆動モータの駆動信号が生成されると共に、生成されたこの駆動信号が一定の時間間隔で回胴駆動モータ側に出力されるようにしたものである。
これによれば、回胴駆動モータに対する駆動信号が定期的に行われる処理が、例えばタイマ割り込み処理であっても、駆動信号を一定周期で出力させることができる。そのため、駆動信号の出力タイミングが安定し、その結果として駆動モータへの出力励磁間隔が一定になって、特に駆動モータの励磁初期における脱調や、モータ加速中あるいは定速回転中における回転の安定性を確保できる特徴を有する。
このようにゲーム中での回胴の安定性を確保できるために、遊技者の興趣を逸らすことなく、回動中の図柄に集中させることができるようになる。したがってこの発明は複数の回胴を有するスロットマシンなどの遊技機に適用して好適である。
次に、本発明の実施の形態を実施例を用いて説明する。図1は本発明に係る遊技機の実施形態であるスロットマシン10の前面扉を閉じた状態の斜視図、図2はスロットマシン10の前面扉を開いた状態の斜視図、図3はスロットマシン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の本体内部には、電源ボックス85(図3参照)や、制御装置を構成する主制御基板C(図3参照)が装着されている。
遊技パネル30は、左回胴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を例に挙げて図4および図5に基づいて説明する。図4は左回胴Lの組立斜視図、図5は左回胴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から露出させたりする制御を行うことができる。
図6はステッピングモータ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には図7に示すように、励磁コイル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は図6において時計方向に回転する(1相励磁駆動)。
これに対して、この実施の形態では、1相励磁と2相励磁とを交互に行う1−2相励磁駆動が採用されている。1−2相励磁駆動では以下の(1)〜(8)の励磁シーケンス(励磁順序)に従って励磁が行われる。
すなわち、1相のみの励磁が1相励磁であり、2相を同時に例示するのが2相励磁であるから、図8にも示すように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に対する駆動信号(駆動信号用データ)は、励磁データ(図9参照)としてモータドライバー712に与えられる。この励磁データは図3に示すRAM76に格納されており、後述する回胴制御処理ルーチン内で、タイマ割り込み処理によってMPU72からの指令に基づいて入出力処理回路(入出力ポート)80に、適切な励磁データが出力されることになる。この励磁データによってステッピングモータ71L、71M、71Rに対する励磁相が定まり、その励磁相に対して励磁信号(電流)が通電される。
回転開始時つまり初期励磁時に上述の励磁順が狂ったり、励磁間隔が短かったり、励磁間隔が極端に不揃いであったりすると、後述するように場合によっては脱調したり、回転が不安定になったりする。ここに、励磁間隔とは、後述する入出力ポート80における出力ポートへのデータ書き込み間隔であって、これは入出力ポート80における出力ポートからの励磁データの出力間隔を意味する。
図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(図3参照)がオンされてスタート指令が発生し、このスタート指令によって各回胴L,M,Rが一斉に回転し始める。
左回胴用ストップボタン53、中回胴用ストップボタン54、右回胴用ストップボタン55は、それぞれ回転中の左回胴L、中回胴M、右回胴Rを停止させるときに遊技者が指で押すためのボタンであり、各ボタン53,54,55が押されるとそれに連動して左回胴用ストップスイッチ53a、中回胴用ストップスイッチ54a、右回胴用ストップスイッチ55a(図3参照)がオンされて停止指令が発生する。各ストップボタン53,54,55は、各回胴L、M、Rが等速回転している間、図示しないランプにより点灯表示され、回転が停止すると消灯する。
返却ボタン56は、メダル投入口57に投入されたメダルが詰まったときに押されるボタンであり、このボタンが押されると詰まったメダルがメダル払出口17から返却される。
メダル投入口57は、メダルを投入するための入口であり、投入されたメダルは内部に設けられたホッパ86へ通じる貯留用通路91か、メダル払出口17へ通じる払出用通路92のいずれかへ導かれる。貯留用通路91と払出用通路92の切替はメダル通路切替ソレノイド66によって行われる。
各ベットボタン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(図3参照)がオン状態となり、スロットマシン10の設定状態(当選確率設定処理)を「設定1」から「設定6」まで変更できる。
ホッパ86は、メダルを貯留する補助タンク87と、補助タンク87内のメダルを払出用通路92に通じる開口93を介してメダル払出口17へ払い出す払出装置88とから構成されている。この払出装置88は、ホッパ駆動モータ65(図3参照)によって図示しないメダル送出用回転板を回転させながらメダルを開口93へ送り出す。
図3に示すように主制御基板Cは、演算処理手段であるMPU72を中心とするマイクロコンピュータとして構成されており、また上述した電源ボックス85の他に、所定周波数の矩形波を出力するクロック回路78や、処理プログラムを記憶するROM74、一時的にデータを記憶する作業用の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への表示信号、払出装置88に払出動作を行わせるホッパ駆動モータ65への駆動信号、左回胴L、中回胴M、右回胴Rを駆動する左、中、右回胴用ステッピングモータ71L,71M,71Rへの駆動信号(駆動データ)、メダル投入口57に投入されたメダルをホッパ86へ導くかメダル払出口17へ導くかを制御するメダル通路切替ソレノイド66への駆動信号、スピーカ14から発生する効果音などを制御する音声用制御装置(音声用制御基板)84へのコマンド信号、液晶ディスプレイ15の表示内容を制御する表示用制御装置(表示用制御基板)94へのコマンド信号などが入出力ポート80を介して出力される。
音声用制御基板84と表示用制御基板94はサブ制御基板S内にその機能を含ませることができる。主制御基板Cにはクレジット枚数をカウントするクレジットカウンタなどの各種カウンタを備えている。
上述したMPU72は、このMPU72によって実行される各種の制御プログラムや固定値データを記憶したROM74と、このROM74内に記憶されている制御プログラムを実行するに当たって各種のデータを一時的に記憶する作業エリアを確保するためのRAM76の他に、図示はしないが周知のように割り込み回路を始めとしてタイマ回路、データ送受信回路などスロットマシン10において必要な各種の処理回路が内蔵されている。ROM52とRAM76によってメインメモリが構成され、図15以降に示される各種のフローチャートに示される処理を実行するためのプログラムは、制御プログラムの一部として上述したROM74に記憶されている。
RAM76内は、機能的には複数の作業エリア(メモリエリア)が確保されている。周知のようにMPU72内に設けられたプログラムカウンタの値を保存するためのスタックメモリ(スタックメモリ用のエリア)(図示はしない)の他に、この例では停電フラグを記憶するメモリ76a、スタックポインタを保存するスタックポインタ保存用メモリ76b、RAM76に保存されているデータのチェックサムに関連した補正値を保存するチェックサム補正値用メモリ76c、さらには復電時に使用される復電コマンドバッファ76dや復電コマンドカウンタ76eなどのメモリエリアが確保されている。
RAM76には後述するように電源ボックス85内に設けられた電源基板850からバックアップ電圧が供給され、スロットマシン10の電源が切断された後でもデータが消失しないようになされている。
RAM76内にセットされたスタックポインタ保存用メモリ76bは、スロットマシン10の電源切断時にMPU72内のスタックポインタの値を退避させて保存しておくためのメモリである。スタックポインタの値は停電処理の初期において、スタックポインタ保存用メモリ76bにセーブされる(図17ステップS33参照)。復電処理の始めにスタックポインタに対する復帰処理が行われ、スタックポインタ保存用メモリ76bに保存されている値がMPU72内のスタックポインタに取り込まれる。スタックポインタの内容はバックアップされているRAM76内に設けられたスタックメモリ内に退避させて保存されている。
RAM76内のチェックサム補正値メモリ76cは、停電処理時にRAM76内のデータから算出したチェックサムを、「0(ゼロ)」とするための補正値を記憶させておくメモリである。
復電コマンドバッファ76dは、電源復旧時(停電の復旧時又は電源再投入時)に主制御基板Cからサブ制御基板Sに送信される復電処理用のコマンド(復電コマンド)を一時的に記憶するバッファである。復電コマンドは図18に示す復電処理の実行をサブ制御基板Sに知らせるためのコマンドとして使用される。復電コマンドはRAM76に記憶されている一般のコマンドに優先してサブ制御基板Sに送信される。
復電コマンドカウンタ76eは、復電コマンドバッファ76dに記憶されている復電コマンドのバイト数を記憶するカウンタである。復電コマンドは2バイト構成であって、他のコマンド(スピーカ駆動用コマンドなど)と同じくバイト単位でサブ制御基板Sに送信される。
入出力ポート80には、サブ制御基板SなどのI/O装置の他に、ホール管理装置(図示はしない)などに情報を送信できる外部集中端子板89や、電源基板850に設けられた停電監視回路850bなどが接続されている。
電源基板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)を使用する場合にあっては、図8に示すような駆動特性が要求される。
この駆動特性は、スタートボタン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からは図9に示す励磁信号用の励磁データ(この例では励磁順2に示す励磁データ09H)(Hはヘキサデシマル表示)がモータドライバ712に出力される。
加速期間Taのうちで、初期励磁を行う加速期間を第1の加速期間とし、定速回転に至るまでの加速期間を第2の加速期間とすれば、図10に示すように第2の加速期間でロータ60を急速に加速する。この例では、第2の加速期間は第1の加速期間より短く設定されている。
加速期間Taとして317.37msec程度に設定したときには、83割り込みに相当する123.67msecが第2の加速期間に選定され、この第2の加速期間で所定の回転数となるように励磁相への割り込み処理が実行される。そのため、第2の加速期間では励磁信号の励磁相への割り込み処理が頻繁に行われる。
また、初期励磁の励磁相を1相励磁とするか、2相励磁とするかが問題となる。ロータ60つまり回胴L、M、Rの回転がゼロである初期励磁は、高トルクでこのロータ60を回転させる必要があるから、初期励磁の励磁相は1相励磁よりもさらに高トルクが得られる2相励磁がより好ましいことになる。これは以下に示すような理由による。
まずステッピングモータとして1−2相励磁方式を採用したハイブリッド(HB)型の2相ステッピングモータでは、加速時の初期励磁相としては、1相励磁の他に2相励磁が考えられる。1相励磁は特定の励磁相のみを駆動するもので、この1相励磁によって初速時の回転トルクを得る。これに対して2相励磁は特定の2つの励磁相を同時に駆動するもので、2相励磁によって初速時の回転トルクを得る。
回胴の大きさやイナーシャーなどによっても相違するが、通常のスロットマシンの場合には、1相励磁でも回胴を初速ゼロから加速させることは可能である。しかし、1相励磁の場合にはそれだけ発生する回転トルクも小さいので、十分な初速が得られない場合があるし、スムーズな回転を期待し得ない場合もある。十分な初速が得られないときは脱調し易くなり、また遊技者の観点からすると、加速時間Taはできるだけ短い方が遊技者の興趣を逸らせない点で好ましいと言える。
回胴L、M、Rにブレーキをかけてから実際に回胴が停止するまでには、所定のステップ角分だけ滑って停止するので、このように多少ずれた角度で停止しているとき、このずれ分を含めて回胴を回転させるときはこの角度ずれ分を吸収しつつ加速処理を行う必要があるので、できるだけ初期励磁での電磁的吸引力が大きい方が好ましい。
2相励磁の場合には、1相励磁よりも吸引力が大きいので、発生する回転トルクもその分だけ大きくなり、これは結果的に加速から定速回転に至るまでの加速時間を1相励磁の場合より短縮できることになる。また、回胴を停止させたときのすべりが発生していても、発生する吸引力が大きいのでこの回転角度ずれに伴う回転揺れを素早く吸収できる。したがってこれらのことを総合的に勘案すると、初期励磁は1相励磁より2相励磁の方が好ましいことになる。
初期励磁を2相励磁に設定した場合で、しかも第2の加速期間内で所定の回転数まで短時間に到達させるための割り込みタイミングとしては、図10に示すようなタイミング例が好適である。
図10において、第1の加速期間は初期励磁期間であり、この実施の形態では上述のように2相励磁を行う。2相励磁は例えば図9の励磁順のうち、最も早い励磁順2を選ぶことができる。勿論、回転停止時の励磁相によっては、異なる励磁順(励磁順4、励磁順6または励磁順8)となることがある。
1.49msecごとの割り込みタイミングに同期して励磁信号を印加してからは130割り込み分(193.7msec)、この励磁状態を保持する。
第2の加速期間では、1−2相励磁を交互に繰り返すが、励磁相への割り込みタイミング、換言すれば相励磁の保持期間として、図10のように1相励磁の励磁保持期間と2相励磁の励磁保持期間とが細かく制御される。この実施例では、第2の加速期間に突入すると、2相励磁に続く1相励磁(図9では励磁順3)が8割り込み分行われ、したがって8割り込み分の相励磁保持が行われ、その次の2相励磁は7割り込み分だけ(励磁順4)行われるように、割り込みが漸次短くなるように設定して励磁時間を短縮すると共に、最後には最小の割り込み間隔で励磁相が順次切り替わる通常の1−2相励磁に遷移できるような割り込みに設定されている。
したがって図10のように、第2の加速期間の最後の励磁相が2相励磁であって、これが1割り込みであるときには、次の定速回転期間の最初の励磁相は1相励磁であって、しかも最小の割り込み間隔である1割り込みとなる。このように第2の加速期間での割り込み処理タイミングを、定速回転に近づくにつれ順次短くすることで、高速な加速処理を短時間で実現することができると共に、定速回転へのスムーズな移行が可能になる。
図10に示す第2の加速期間は、全体の加速期間Taがほぼ317.37msecに設定されているときの例であるので、全体の加速期間Taがこれとは異なる値に設定されているときには、その値に応じて第2の加速期間が選定され、それに応じて図10に示す割り込み処理とは異なった割り込み処理が行われることは言うまでもない。
回胴L、M、Rのブレーキ処理は次のようになる。ストップボタンが操作されてからは、すべり処理(1〜4図柄分の回転処理)を含め、図11に示す所定時間ts(=190msec)以内に回胴L、M、Rを停止させなければならない。
すべり処理後のブレーキ処理のときには、1−2相励磁から4相励磁に切り替える。4相励磁によって回転が乱調せずにスムーズに回胴L、M、Rを停止させることができる。
1−2相励磁から4相励磁に切り替えるタイミング(割り込みタイミング)は、2相励磁の直後である。これはステッピングモータ71L、71M、71Rは1相励磁よりも2相励磁のときの方が回転位置が特定し易いため、2相励磁の直後に停止処理を行った方が停止位置精度を高めることができるからである。
上述した回胴駆動モータであるステッピングモータ71を駆動するための駆動信号の生成処理は、図3に示したMPU72に対して定期的に発行されるタイマ割り込み処理ルーチン内で行われる場合がある。駆動信号としてはRAM76内にストアされた励磁順に則った励磁データ(図9参照)が利用され、この励磁順にしたがってモータドライバ712に、対応する励磁データが供給される。
そのため、RAM76にストアされた励磁データはタイマ割り込みが発生する都度、RAM76から読み出され、そして入出力ポート80の出力ポートに書き込まれる。この入出力ポート80に書き込まれた励磁データは即座にモータドライバ712に供給され、これによって対応する励磁コイルL0〜L3への通電処理がなされる。
タイマ割り込み処理内で処理されるのは、上述したステッピングモータ71に対する駆動信号の生成処理のみだけではなく、その他にも多数の割り込み処理が行われている。したがって、タイマによる定期的な割り込み処理であっても、スロットマシン10のそのときの制御状態(事象)によっては1つの割り込み処理内で処理されるトータルの処理時間には常に長短が発生する。
例えば図12Aのようにタイマによる定期的な割り込み処理間隔をTとし、その割り込み処理間隔T内で処理される全ての処理時間をTxとした場合、諸種の実験によれば、割り込み時のスロットマシン10の動作状態によって、全ての割り込み処理に要する処理時間Txに長短が発生し、処理時間Txに大きなばらつきが発生している場合もあることが確認された(図12A,B参照)。
また、このようなタイマ割り込み処理では、全ての割り込み処理が終わった段階で、処理の結果得られた複数の出力データが入出力ポート80に一括して書き込まれる(図12C参照)。書き込み時間はほぼ一定(数μsec程度)であるから、処理時間Txの長短は入出力ポート80へのデータ書き込みタイミングのばらつきとなって現れる。
その結果、次の割り込み処理が発生して出力データが入出力ポート80に書き込まれるまでの間隔を出力間隔Tyとすると、図12Cに示すようにこの出力間隔Tyは割り込み処理時間Txに大きく依存することが判る。
数台の実験機種を総合すると、1つのタイマ割り込み処理内で処理される処理時間Txの最少時間は716.5μsecで、最大時間は1049.0μsecとなった。したがってこのような処理時間Txの長短の発生によって、出力間隔Tyの最小値Tyminは、図12Cに示すように1157.5μsecとなり、その最大値Tymaxは、1822.5μsecとなる。
このように出力間隔Tyにばらつきが発生すると、ステッピングモータ71に対する励磁時間も相違することになる。出力間隔Tyとして最少励磁間隔と最大励磁間隔とが不連続に発生するようなときにはモータ加速時やモータの定速回転時の回転が不安定になったり、脱調したりするおそれがある。脱調や回転の不安定性が発生すると、遊技者が遊技に集中できなくなるおそれもある。
ここで、定期的に行われる遊技機の処理の1つである回胴駆動モータ制御処理が、上述したようにタイマ割り込み処理内で行われる場合の他に、メイン処理(図18ステップS61)の中で、随時一定間隔で出力される時間情報(タイマ情報)を監視し(ポーリング処理)、所定の時間に到達したとき、一連の処理の1つとしてステッピングモータ71に対する制御処理を実行(コール)し、生成された駆動信号を入出力ポートに出力するように構成されている場合でも、上述したと同じくステッピングモータ71への出力間隔の不揃いが発生するおそれがある。その場合にも上述したと同じような問題を惹起することになる。
この場合においても、処理時間が不定な処理群に先行して回胴駆動モータ制御処理を実行することで、生成された駆動信号の出力間隔を常に一定にすることができる。
そこで、この発明では、回胴駆動モータを駆動する信号が、回胴駆動モータ制御処理手段で生成されると共に、生成されたこの駆動信号が一定の時間間隔で回胴駆動モータ側に出力されるように構成する。駆動信号を一定周期ごとに出力させる手法としては、少なくとも以下に示すような手法が考えられる。
以下に示す手法は、回胴駆動モータ制御処理がタイマ割り込み処理内で行われるときの例である。タイマ割り込み期間内での処理が複数存在するときには、その処理時間がほぼ一定な処理と、処理時間が割り込みの都度変動するようにその処理時間が不定な処理とが混在するのが普通である。そのような場合には、少なくとも処理時間が不定である処理を実行する前に、上述したステッピングモータ(回胴駆動モータ)71に対する生成および出力処理を実行する。
ステッピングモータ71に対する駆動信号生成および出力処理は、処理時間がほぼ一定であるから処理時間がほぼ一定な処理の範疇に属する。処理時間がほぼ一定となる割り込み処理例の中にはMPU72に内蔵されたレジスタの退避処理などが挙げられる。このようなMPU72に対するほぼ一定な割り込み処理を、他の割り込み処理と区別するため便宜的に先行割り込み処理(優先割り込み処理)と呼ぶことにする。
さて、駆動信号を一定周期ごとに出力させる第1の手法としては、駆動信号を生成した直後にこの駆動信号を出力することである。この場合も、割り込み処理が発生したときには、まず先行割り込み処理を最初に実行し、駆動信号の生成処理をその後で行う場合と、先行割り込み処理に先駆けて、あるいは先行割り込み処理の途中に行う場合が考えられる。何れの場合でも、処理時間がほぼ一定になるから、駆動信号の出力間隔はほぼ一定になる。
このように駆動信号の生成処理を処理時間が不定な処理を行う前に実行することで、割り込み処理時間が変動する処理に影響されずに、駆動信号生成処理およびその出力処理を実行できる。駆動信号の生成処理は、割り込み処理時間が不定な割り込み処理の前に行えばよいので、処理時間がほぼ一定な割り込み処理が複数存在するときには、駆動信号の生成処理をどの処理タイミングに行うかは任意である。
第2の手法としては、割り込み処理結果を出力する出力タイミングを固定する手法である。
割り込み処理結果を出力するタイミングが固定されているので、割り込み期間内に処理される全ての割り込み処理が終了した場合でも、その処理結果の出力タイミングを待って駆動信号が出力される。こうすることで、処理時間が変動する可能性のある処理が介在したとしても、駆動信号の出力タイミングは常に一定になる。
処理結果の出力タイミングは、入出力ポートへのデータ書き込みタイミングであるから、入出力ポートへのデータ書き込みタイミングを固定することで、駆動信号の出力タイミングを一定にできる。
以下の説明では、定期的な割り込み処理としてタイマ割り込み処理を例示すると共に、説明の都合上上述した第1の手法を適用した場合を説明する。そのため、回胴駆動モータに対する割り込み処理(制御処理)がタイマ割り込み処理内で実行されると共に、処理時間が変動する可能性のある処理に先行して、駆動信号の生成処理を行い、そして生成した駆動信号(励磁データ)を直ちに入出力ポート80側に出力する(書き込む)ことで、データ出力間隔Tyの均一化を図る。
こうすれば、タイマ割り込み処理内に、処理時間が変動する可能性がある割り込み処理が内在されていたとしても、これらによる影響を受けることなく、常に一定の間隔で励磁信号用データをモータドライバ712側に出力することができる。
図13および図14を参照してさらに説明する。
タイマ割り込みによって処理される処理として、上述した定義に基づいて、図13に示すようにMPU72に対する初期設定など他の処理に先行して処理することが可能な先行割り込み処理Baと、それ以外の割り込み処理(その他の割り込み処理)(Bb+Bc)とに分ける。
MPU72に対する先行割り込み処理Baでの処理時間はほぼ一定であるから、通常はそれ以外の割り込み処理(Bb+Bc)のトータル処理時間がスロットマシン10の遊技状態によって相違することになる。
この実施の形態では、タイマ割り込み処理内で処理される処理内容のうち、図14Bに示すように先行割り込み処理Baを最初に実行し、これが終了してその他の割り込み処理(Bb+Bc)を行うその最初の割り込み処理として、上述した回胴駆動モータ制御処理Bbを当てる。
さらに、この回胴駆動モータ制御処理Bbによって生成された励磁信号である励磁データを、他の割り込み処理の結果を待たずに、入出力ポート80に直ちに出力する(書き込む)(図14C参照)。
こうすれば、図14Cに示すようにタイマ割り込みが発生した時点(ta、tb、・・・)から励磁データの入出力ポート80に出力するまでの時間Tαが常に一定になるから、励磁データの出力間隔Tzも常に一定となる。
出力間隔Tzはタイマ割り込み周期に一致する。その結果、ステッピングモータ71に対するタイマ割り込み後の励磁時間が常に一定となり、初期励磁が安定し、脱調を惹起するおそれはない。もちろん加速中および定速回転中でも安定した回転を付与できる。
励磁データ生成処理Bb以外のその他の割り込み処理Bcのトータル時間は図14Bのようにスロットマシン10の遊技状態によって変動するから、全ての割り込みを終了した段階で入出力ポート80に出力した場合には、これら割り込み処理結果の入出力ポート80への出力タイミングta2、tb2、・・・も図14Dのように変動し、その結果出力間隔Tyも変動することが判る。
なお、先行割り込み処理が終了した後でないと、上述した回胴駆動モータ制御処理が実行できない訳ではない。先行割り込み処理の最初でも、その途中の段階で処理することもできる。
これは、先行割り込み処理は何れもほぼ一定なMPU72に対する処理であるので、先行割り込み処理の最初あるいは先行割り込み処理の途中に、この回胴駆動モータ制御処理を介在させても、駆動信号の出力間隔を一定にすることには変わりがないからである。
あるいは先行割り込み処理以外の処理の中にも、処理時間がほぼ一定となる割り込み処理が存在する場合には、この処理時間がほぼ一定となる割り込み処理が終了した直後に、上述した回胴駆動モータ制御処理を実行しても差し支えない。つまり、処理時間がほぼ一定となるタイマ割り込み処理の全てが終了した段階でこの回胴駆動モータ制御処理を実行してもよい。
続いて、上述したMPU72内に搭載された代表的な処理プログラムの処理内容について説明する。
[停電フラグの生成処理]
停電フラグは停電が発生したとき(電源スイッチ81をオフしたときの電源切断を含むものとする)、停電フラグが生成される。停電すると停電監視回路850bからMPU72のNMI(NonMaskableInterrupt)端子へ停電信号851が出
力される。停電信号851を受信するとMPU72は停電フラグをセットして停電時の割り込み処理(図15参照)を実行する。停電フラグがセットされると、タイマ割り込み処理(図16参照)の中で停電時処理が実行され、遊技中であれば遊技制御の中断処理が実行される。停電フラグは電源の再投入による復電処理(図18参照)によってリセットされる。
図17に示す停電時処理では、補正値を含めてRAM76のデータより算出したチェックサムを「0」にした状態で制御を終了する。停電復旧時を含めて電源再投入時の処理として、RAM76のチェックサムを調べ、補正値を考慮したその値が「0」であるか否かによって、RAM76のデータが正常にバックアップされているかどうかを判断する。そのため、停電処理時にはチェックサム補正値メモリ76cの値を一旦「0」にリセット(クリア)した状態で、RAM76のチェックサムを算出する。算出したチェックサムの2の補数が、チェックサム補正値としてチェックサム補正値メモリ76cに記憶される。この補正値を含めることでRAM76のチェックサムは「0」になる。
「NMI割り込み処理」
図15はNMI割り込み処理の一例を示すフローチャートである。停電の発生などによって停電監視回路850bでは停電信号851が生成される。停電信号851をNMI端子を介して主制御基板Cが受信すると、主制御基板CではNMI割り込み処理が実行される。
NMI割り込み処理では、まずMPU72内に設けられたAレジスタ(アキュームレータ)とFレジスタ(フラグレジスタ)内のデータをRAM76内に設けられたスタックエリアに退避する(ステップS1)。次に、停電フラグがセットされたのち(ステップS2)、スタックエリアに退避したデータを再びAレジスタとFレジスタに復帰させる(ステップS3)。この復帰処理でNMI割り込み処理が終了する。
AレジスタおよびFレジスタの何れの内容も破壊しないで、停電フラグのセット処理が可能な場合には、スタックエリアへの退避および復帰処理(ステップS1およびS3)は省くことができる。
「タイマ割り込み処理」
図16は主制御基板Cで定期的に実行されるタイマ割り込み処理のフローチャートで、この例では1.49msecごとにタイマ割り込みが発生する。タイマ割り込み処理は、MPU72に対する先行割り込み処理と、それ以外の処理(その他の割り込み処理)に分かれ、先行割り込み処理が終了してからその他の割り込み処理が実行される。
先行割り込み処理として図16の処理群の場合では、レジスタの退避処理(ステップS11)、停電フラグ状態判別処理(ステップS12)、ウオッチドッグタイマ処理(ステップS14)および割り込み終了宣言処理(ステップS15)の4つの割り込み処理を挙げる。
したがってこの図16に示すタイマ割り込み処理では、まずメイン処理(図18のステップS61)で使用しているMPU72内の全レジスタ(この例ではAF,BC,DE,HL,IXおよびIYの各レジスタ)の値をRAM76のスタックエリアに退避させる(ステップS11)。
その後停電フラグがセットされているか否かを確認し(ステップS12)、停電フラグがセットされているときには図17に示す停電時処理が実行され(ステップS13)、セットされていないときにはスキップされる。
停電時処理若しくは停電時処理がスキップされた後は、以下のような複数の処理(その他の割り込み処理(Bb+Bc))が順次実行される。次に示す(処理1)および(処理2)は先行割り込み処理Baに属する。
(処理1)誤動作の発生を監視するためのウオッチドッグタイマの値を初期化(クリア)するウオッチドッグタイマのクリア処理(ステップS14)。ウオッチドッグタイマのクリア処理時間は、ほぼ一定である。
(処理2)自分自身であるMPU72自身に対して割り込み許可を出す割り込み終了宣言処理(ステップS15)。この割り込み終了宣言処理もほぼ一定な処理時間で済む。
以上のような先行割り込み処理Baが終了すると、その他の割り込み処理(Bb+Bc)が実行される。その他の割り込み処理(Bb+Bc)でも、上述した理由から特に回胴駆動モータであるステッピングモータ71に対する励磁データ生成処理(回胴モータ制御処理Bb)が先行して実行される。つまり、
(処理3)左、中および右の各回胴L、M、Rを回転させるためにそれぞれの回胴駆動モータであるステッピングモータ71L〜71Rを駆動するステッピングモータ制御処理Bb(ステップS16)。このモータ制御処理Bbは、対応する駆動信号(励磁データ)を出力する処理に他ならないから、その処理時間(駆動信号生成処理と出力処理)はほぼ一定である。
回胴駆動モータ生成制御処理以外の、その他の割り込み処理Bcの具体例を以下に示す。
(処理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の初期処理を妨げることなく、一定時間間隔で回胴駆動モータに対する駆動信号を出力させることができる。
なお、図16では先行割り込み処理として、レジスタの退避処理(ステップS11)、停電フラグ状態判別処理(ステップ12)、ウオッチドッグタイマ処理(ステップS14)および割り込み終了宣言処理(ステップS15)の4つの割り込み処理を挙げたが、その数に拘泥することはない。MPU72に対するこれらの処理のうち、少なくとも1以上の割り込み処理が含まれれば、その処理を先行割り込み処理として取り扱うことができる。
また、回胴駆動モータに対する上述した駆動信号生成および出力処理(処理3)は、先行割り込み処理の最初(ステップS11の前)でも、各先行割り込み処理の途中の段階(例えばステップS11の後、ステップ14の前または後)で処理することもできる。
これは、先行割り込み処理は何れもほぼ一定なMPU72に対する初期処理であるので、最初の先行割り込み処理よりも先んじて、あるいは各先行割り込み処理の途中に、この回胴駆動モータ制御処理(処理3)を介在させても、駆動信号の出力間隔を一定にすることには変わりがないからである。
そのため、先行割り込み処理以外の処理であって、その何れかの処理時間がほぼ一定となる割り込み処理が存在する場合には、処理時間がほぼ一定となる割り込み処理の一部若しくはそれらの全ての処理が終了した直後に、回胴駆動モータ制御処理を実行しても差し支えない。
例えば、その他の割り込み処理の範疇として説明した、上述したスイッチ状態読み込み処理(処理4)や、センサ監視処理(処理5)などは、何れもその処理時間がほぼ一定であるため、これらの割り込み処理{(処理4)や(処理5)}の処理前や処理後に、さらには(処理4)と(処理5)の全てが終了してから、回胴駆動モータ制御処理を行うこともできる。
[停電時処理]
図17は主制御基板Cで実行される停電時処理の一例を示すフローチャートである。停電時処理は上述したようにタイマ割り込み処理の中で実行される。
この停電時処理は、上述したタイマ割り込み処理のうち、特にレジスタ退避処理の直後にされるので、その他の割り込み処理を中断することなく実行できる。そのため、復電コマンドなどの送信処理中、スイッチの状態(オンオフ)の読み込み途中、カウンタの内容を更新中のように、それぞれの処理の途中に割り込んでこの停電時処理が実行されることはないので、換言すればイレギュラーなタイミングで停電時処理が実行されないので、イレギュラーなタイミングに実行されることをも考慮した停電時処理のプログラムを作成する必要がなくなる。これによって、停電時処理用の処理プログラムを簡略化してプログラム容量を削減できる。復電処理も同様である。
また、後述するステップS32やS42として示すように、停電時処理の実行後にタイマ割り込み処理に復帰(リターン)することもあるが、レジスタ退避処理(図16参照)の直後に停電時処理が実行されるので、この停電時処理の中で上述したレジスタ退避処理やその復帰処理を行う必要がない。その分、停電時処理用の処理プログラムが簡略化されて、プログラム容量を削減できる。
図17に戻って停電時処理を説明する。停電時処理では通常のコマンドを取り扱うコマンドカウンタ(図示はしない)の値が奇数かどうか、つまりコマンド送信が終了しているか否かを確認する(ステップS31)。送信の途中であればリターン命令を実行して停電時処理を中止する(ステップS32)。
コマンドデータは1バイト単位で送信されるから、1つのコマンド送信は2回のタイマ割り込みで完了する。ステップS31のようにコマンドをバッファリングするときに使用されるコマンドカウンタの値が奇数であるときには、コマンドデータのうち2バイト目のコマンドデータの送信が完了していないことであるから、この場合にはタイマ割り込み処理へのリターン命令が出され、停電時処理は実行しない(ステップS32)。
未送信となっているこの2バイト目のコマンドデータは、リターン命令後に実行される次のタイマ割り込み処理中に発生するコマンド出力処理の中で送信処理されるから(図16のステップS21)、その次のタイマ割り込み処理タイミングになると、このコマンドの送信処理は完了していることになる。
このように停電時処理の始めで、コマンドの送信が完了しているか否かを判断し、送信が未完であるときには送信処理を優先し、単位コマンドの送信処理が終了してから停電時処理を実行すれば、コマンドの送信途中で停電時処理が実行されることをも考慮した停電時処理プログラムや復電処理プログラムを構築する必要がなくなる。その結果停電時処理プログラムを簡略化してプログラムメモリ(ROM74)の小容量化を図れる実益を有する。
単位コマンドの送信を完了するには2回のタイマ割り込み処理の実行が必要なので、少なくとも3回以上タイマ割り込み処理を実行でき、しかも後述する図17の処理(ステップS31〜S38)を実行するに十分な時間の間は、制御系の駆動電圧として使用される安定化電圧(5ボルト)の出力が保持されるように、電源基板850に設けられた電源部850aが構成されているものとする。
これによって、主制御基板Cはコマンドの送信途中に停電が発生しても、停電時処理を正常に実行することができる。因みに、この実施の形態では、タイマ割り込み周期が1.49msecであるので、停電が発生してから(1.49msec×3回=4.47msec)+α以上、例えば30msecの間、駆動電圧が出力され続けるようになっている。
さて、図18のステップS31に示すように、コマンドの送信が完了していれば、ステップS33以降の中断処理が実行される。まず、MPU72のスタックポインタの値をRAM76内のスタックポインタ保存用メモリ76bにセーブし、チェックサム補正値用のメモリ76cの値をクリア(=0)にすると共に、入出力ポート80における出力ポートの出力状態をクリアして、全てのアクチュエータ(図3には示されていない)をオフ状態にする(ステップS33,S34,S35)。
その後、RAM76の全ての値を加算してチェックサムを算出する(ステップS36)。算出したチェックサムより2の補数を求めて、これをチェックサム補正値として新たにチェックサム補正値用メモリ76cに書き込む(ステップS37)。この算出処理によって得られた補正値を使用することで、RAM76のチェックサムはゼロになる。RAM76のチェックサムをゼロにすることで、それ以後のRAM76への書き込みが禁止される(ステップS38)。
その後、停電信号851を入出力ポート80から読み込んで、停電信号851の状態(オンかオフか)を確認する(ステップS39)。この状態確認は制御系の駆動電圧が安定化電圧(5ボルト)以下になるまで繰り返えされ、その間は無限ループ処理となる(ステップS39)。
停電信号851の状態をチェックした結果、停電信号851が出力(オン)されていなければ、つまり停電信号851がオフの状態になっているときは、停電状態が復旧したことになるので(ステップS39)、RAM76への書き込みを許可すると共に、停電フラグをリセットした後に、リターン命令を実行して図16に示すタイマ割り込み処理に復帰することになる(ステップS40,S41,S42)。
この停電時処理では、第1に、MPU72に設けられた複数のレジスタからの退避処理を行わないので、リターン命令を実行するときもこれらレジスタへの復帰処理は不要である。これによって上述したように停電時処理プログラムの小容量化を達成できる。
第2に、この停電時処理はサブルーチン構成で、コール命令により実行されるから、タイマ割り込み処理への復帰はリターン命令を実行するだけでよく、復帰処理が簡素化される。
第3に、リターン命令の実行によってタイマ割り込み処理に遷移して、このタイマ割り込み処理が実行されると、実行後の状態が入出力ポート80の出力ポートに再出力されるので、ステップS35に示すように停電時処理によって全ての出力ポートをクリアしても、リターン命令を実行するだけでクリアした出力ポートの出力状態を元の状態に復帰させることができる。
第4に、停電信号851の状態チェックは停電時処理の実行中のみならず、その実行後でも停電信号851が出力されなくなるまで行っているので、例えばノイズなどに起因して停電フラグが誤ってセットされてしまったような場合でも、制御を無限ループに突入させることなく、正常に復帰させることができる。
ステップS39に示す停電信号851の再確認処理はRAM76のチェックサムを算出した後であればどのタイミングに行ってもよい。これはRAM76のチェックサム算出処理は比較的長い処理時間を要するので、このチェックサム算出処理後であれば、停電信号851の再確認処理は何時でも可能になるからである。したがって停電信号851の再確認処理はステップS37の処理の前や後に行ってもよい。ステップS37の処理の前後に停電信号851の再確認処理を行うときには、この再確認処理は1回だけ実行されることになり、RAM76への書き込み禁止処理(ステップS38)の後は、判断処理を行わない無限ループ構成となる。
[メイン処理]
図18は電源投入後に実行される主制御基板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において、停電フラグがセットされた状態にあるときには、復電処理に移行する。停電フラグがセットされた状態にあるということは、図18の処理からも明らかなように、ステップ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に知らせることができる。
この復電処理の後は、図18に示すように遊技状態として打ち止めおよび自動精算設定保存処理を行い、その後スイッチ状態の初期化処理を行う(ステップS65,S66)。その後に停電フラグをリセットしてリターン命令RETを実行することで、復電処理が終了する(ステップS67)。
リターン命令の実行によってMPU72のプログラムカウンタの値は、スタックエリアに記憶されているプログラムカウンタの値(停電時処理を行うためのステップS13)を1だけインクリメントした値になるので、図16に示すように今度は停電時処理の次の処理であるウオッチドッグタイマ処理(ステップS14)が実行されることになる。
[回胴駆動モータ制御処理]
図19および図20を参照して説明する。
図16に示すタイマ割り込み処理で、ステップS11,S14およびS15に示すようなMPU72に対する先行割り込み処理Baが終了すると、次には回胴駆動モータに対する制御処理(その他の割り込み処理Bb)に遷移する。
この回胴駆動モータ制御処理もサブルーチン構成であって、図19に示すように初期化処理が終了すると(ステップ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に対する励磁処理がなされることになる。
つまり、図16に示すタイマ割り込み処理内でのステッピングモータ(回胴モータ)71に対する制御処理(ステップS16)は、他の割り込み処理Bcの結果を待たずに入出力ポート80への出力処理が実行されるから、モータ加速中を含めて定速回転中や停止でもほぼ一定周期(タイマ割り込み周期)で励磁データを常に出力することができる。
このような割り込み処理を行うことで、ステッピングモータ71に対する安定した励磁処理が実現されるため、脱調や回転の不安定性を排除できる。モータ加速初期に励磁期間が短かったり、励磁期間の長さが不揃いであったりすると脱調を起こし易いからであり、また定速回転中でも励磁期間の長短が頻繁に発生すると、不安定な回転となり易いからである。
図20は上述したモータ制御処理ルーチンS100の具体的な処理例である。このモータ制御処理では、少なくともウエイトタイマ、加速カウンタおよび励磁順ポインタ(何れもRAM76を利用したソフトウエア処理)が使用される。
ここに、1つのタイマ割り込み期間を単位励磁時間Tとしたときウエイトタイマによって、同一の励磁モードでの励磁時間(タイマ割り込み数)が設定される。図10にその一例を示した。第1の加速期間では2相励磁モード(加速順序1)が130単位、つまり130割り込み分だけ連続して実行される。そのときのトータル励磁時間は、130×1.49msecとなる。タイマ割り込みは1.49msecごとに行われるからである。
したがって、例えば第2の加速期間にあって、加速順序2では1相励磁モードが8単位(=8割り込み=8励磁時間)に亘って連続して実行されることになる。
加速カウンタは、図10において加速順序を指定するためのものである。図10の場合、加速処理は25ステップの励磁パターン(加速順序1〜25)で構成されている。特定の加速位置を指定するには、図10のように「0」から「24」までのカウンタ値を指定すればよいので、加速カウンタの初期値は本来「24」あるいは「0」であるが、後述するようにこの実施の形態でのソフトウエアの構成では、加速カウンタに設定される初期値は「25」となされている。
図10の各データはテーブル化されてROM74に保存されているので、図10を励磁時間および加速カウンタテーブルと呼称する場合もある。
励磁順ポインタは図9に示すステッピングモータ71に対する励磁相を決めるときに使用されるポインタである。1−2相励磁のステッピングモータ71を使用した場合、1相励磁と2相励磁を交互に行うが、そのときの相励磁パターンは図9のように8パターンとなる。どの相励磁のときにどの励磁データを出力励磁データとして取得し、これをRAM76に一時的に保存するかが、この励磁順ポインタの値(0〜7)によって指定される。
回転開始時の励磁順ポインタの値は、後述するように直前にモータを停止させたときに使用した励磁相が、どのパターンに属する励磁相を使用したかによって相違する。回転中は順次励磁順ポインタの値を更新しながら使用する。
続いて、スタートボタン52およびストップボタン53〜55の操作に関連させてモータ制御処理を説明する。以下の説明はあくまでも1つの回胴を制御するためのステッピングモータ71に対する処理例である。
[その1.スタートボタン52の操作前の処理]
スタートボタン52を操作する前でのウエイトタイマの初期値はゼロであり、加速カウンタの値もゼロである。そのため、モータ制御処理がコールされると、まずウエイトタイマの値がゼロであるので(ステップS101)、ステップS111に遷移して加速カウンタの値をチェックする。加速カウンタの値もゼロであるので、この場合にはステップS112において出力励磁データはゼロに設定されて保存される。その後図16のタイマ割り込み処理ルーチンにリターンする。出力励磁データがゼロであるので、スタートボタン52の操作前のモードでは、ステッピングモータ71は回転停止状態となっている。
[その2.スタートボタン52が操作されたときの処理]
スタートボタン52の操作は、図18に示す処理ステップS61での通常遊技の各処理内で検出される。スタートボタン52が操作されたことが検出されるとこの処理ステップS61内で加速カウンタの値が「25」に設定される。
スタートボタン52が操作されてもウエイトタイマの値は依然としてゼロであるから、この場合にもステップS101を経てステップS111に遷移して、加速カウンタの値を判別する。加速カウンタの値は「25」にセットされているので、この場合にはステップS121で減算処理が実行される。その結果、加速カウンタの値はゼロでなくなるので(ステップS122)、ステップS131で減算後の加速カウンタの値に対応した励磁時間の値(図10参照)を取得し、取得した励磁時間の値がウエイトタイマにセットされる。
ステップS121での減算処理は、1だけデクリメントする処理であるから、減算後の加速カウンタの値は「24」となり、この場合には図10のテーブルからも明らかなように、加速カウンタの値「24」に対応した励磁時間(130割り込み)の値(=130)がウエイトタイマにセットされる。これで、第1の加速期間に相当する連続相励磁時間(=130×1.49msec)がセットされたことになる。
ウエイトタイマへのセット処理が終了すると、励磁順ポインタを「1」だけインクリメントする更新処理が実行される(ステップS132)。そして、更新処理された励磁順ポインタの値(この例では、「5」)に対応した励磁データを図9に示すテーブルより取得し、その励磁データ(06H)が回胴L用の出力励磁データとしてRAM76に保存される(ステップS134)。保存された励磁データはその他の回胴駆動用ステッピングモータに対する励磁データを取得した後、図19に示すように入出力ポート80に同時に出力される。
その後、図柄オフセットの値が更新されると共に、ステップS135以下に示す回胴インディックスセンサ44(図4参照)による回胴の1回転検出処理などが行われる。このうち、ステップS144およびS145は回胴異常処理であって、励磁データを印加したにも拘わらず回胴が正常に回転しないようなときの処理であり、またステップS151〜S154まではステッピングモータ71に対する回転停止処理(ブレーキ処理)である。
これらの処理は後述するとして、モータ加速処理が正常であれば上述のステップS144からステップ154までがスキップされて図16に示すタイマ割り込みルーチンにリターンする。
したがって加速カウンタにカウンタ値「25」がセットされ、3つの回胴L、M、Rのそれぞれに対するステッピングモータ71L、71M、71Rに対してモータ始動用の励磁データがそれぞれ供給されることでそれぞれのロータが始動する。次のタイマ割り込み時間になると、再びモータ制御処理ルーチンS100がコールされる。このときの処理を次に説明する。
この場合にはウエイトタイマの値は「130」であるから(ステップS101)、このときはウエイトタイマの値を1だけ減算する減算処理を実行してタイマ割り込みルーチンにリターンする(ステップS102)。その結果、加速カウンタや励磁順ポインタの値は前のタイマ割り込み時と同じ値を保持する。つまり、同じ励磁相(この例では2相励磁)によるモータ加速処理が継続される。
この同じ励磁相を使用したモータ加速処理がトータル130割り込み分連続して行われて、タイマ割り込みの都度ウエイトタイマは減算処理される。その結果、130割り込みが行われたときウエイトタイマの値はゼロになる(ステップS101)。
一方、加速カウンタの値はこの第1の加速期間中全く変化しないので、ウエイトタイマの値がゼロになることで、今度はステップS111を介してステップS121に遷移し、加速カウンタが始めて減算処理される。1だけ減算された加速カウンタの値「23」に対応した励磁時間(8割り込み)を図10のテーブルより取得し、取得したこの励磁時間の値(=8)がウエイトタイマにセットされる(ステップS122,S131)。
同時に、励磁順ポインタの値がインクリメントされて「6」となり、この励磁順ポインタの値「6」に対応した励磁データ「02H」(1相励磁)が出力励磁データとしてRAM76に格納される(ステップS132,S134)。その後、他の回胴M、Rについても同様な出力励磁データの取得処理がなされ、全ての回胴L、M、Rに対して出力励磁データの取得処理が終了した段階で、これら出力励磁データが入出力ポート80にそれぞれ出力されて、第2の加速期間処理が開始される。したがって、第2の加速期間の最初は1相励磁が8割り込み分だけ連続して行われる。
第2の加速期間の処理での最初は加速順序2に相当する処理である(図10参照)。この加速順序2における加速処理で、タイマ割り込みが8割り込み分終了すると(ステップS101,S102)、加速カウンタの値が更に減算されるから(ステップS121)、今度は励磁順ポインタの値が「7」となる励磁データ「03H」が図9のテーブルより読み出されるので、7割り込み分だけの連続加速処理が2相励磁によって行われる。
このように加速カウンタを順次減算処理しながら、励磁順ポインタによって指定された励磁データを順次読み出して、第2の加速期間中における加速処理が実行されるので、遂にはステップS121における加速カウンタの値が「0」になる。加速カウンタの値が「0」になると、この値がステップS122でチェックされるので、ステップS123に遷移して、今度は加速カウンタの値を「1」にする処理が実行される。
その後、ステップS131に遷移して、ステップS121で減算したときの加速カウンタの値「0」に対応した励磁時間(1割り込み分)に相当する値(=1)がウエイトタイマにセットされる。その後、励磁順ポインタが更新されてこの例では「0」のポインタに該当する励磁データ「01H」が図9のテーブルより読み出されて、これが出力励磁データとしてセットされる(ステップS132,S134)。したがって、ステップS121での加速カウンタの値が「0」になると1回のタイマ割り込み分だけ励磁される。
ステップS121で加速カウンタの値が「0」にされても、ステップS123の処理で「1」加えられる。そのため、次のタイマ割り込み処理において、励磁順である加速順序25(図10)の次の処理ステップとしては、ステップS111を経由してステップS121に遷移して再度加速カウンタの減算処理がなされる。それによって加速カウンタの値は再び「0」になるから、ステップS131では図10の加速順序25に相当する励磁時間(=1)がウエイトタイマにセットされることになる。また、励磁順ポインタはステップS132の処理で「2」に更新される結果、励磁相が2相励磁に変わると共に1割り込み分だけの励磁処理となる。
つまり、加速順序25の次からは、ステップS121,S123において加速カウンタの「0」、「1」の加減算処理が交互に繰り返されることになり、しかも常に1割り込みによる励磁となるから、ステッピングモータ71は1相励磁と2相励磁を交互に繰り返す回転モードとなる。これは定速処理に他ならず、換言すれば、加速順序25まで励磁処理が進むと、それ以降は定速回転モードに遷移することになる。
[その3.ストップボタンが押されたときの処理]
さて、この定速回転モード中にユーザが任意のストップボタン53〜55を押して、回胴を止める操作を行うと、以下のような処理によって回胴の回転が停止する。
回転停止処理の前に、図柄オフセットと図柄番号の説明を行う。図20に示すように加速カウンタの処理系で、励磁順ポインタが更新されると、これと同時に図柄オフセットの値が更新されると共に、回胴インディックスセンサ44(図4参照)による回胴Lの回転検出処理が行われる(ステップS136,S137)。回胴インディックスセンサ44が回胴Lの一周(1回転)を検出すると、図柄オフセットカウンタおよび図柄番号のカウンタが何れもゼロにリセットされる(ステップS137)。
図柄番号は図5に示す図柄の番号を連番で示すものであり、トータル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以下のときに回胴停止処理を実行する必要があるからである。
したがってこの条件を満たさないときには図16のタイマ割り込み処理ルーチンに戻るが、ステップS151の回胴停止条件を満たしているときで、しかもストップボタン53〜55の何れかのボタンが押されたときには停止図柄がセットされると共に、セットされた停止図柄(図柄番号)と現在の図柄番号との比較が行われる(ステップS152)。そして両者の図柄が一致したときで、ステップS151の条件を満たすとき、ブレーキ処理に遷移する(ステップS153)。停止図柄とは、スタートボタン52が操作されたとき抽選された役に対応する図柄を言う。
このブレーキ処理ではブレーキ用励磁データの設定処理が行われる。この例では4相が同時励磁されるように設定される。さらに、ウエイトタイマにブレーキ時間を設定する。この例では、159割り込み分(=236.91msec)がブレーキ時間に選ばれているので、ウエイトタイマには「159」がセットされる。これに加えて加速カウンタをリセット(=0)する。ウエイトタイマを上述した値(=159)にセットすると、ステップS101,S102の処理が159割り込み分行われ、その間はブレーキ用の励磁データが連続して出力されて、ロータ60が完全に停止する。
ステップS153の後は、次回回転時に使用する励磁順ポインタに対する調整処理が行われる(ステップ154)。励磁順ポインタの調整処理はロータ60のすべりを考慮する。上述したようにブレーキ処理時、ロータ60は3〜4相分程度滑ってから停止するのが殆どであるので、例えば図9に示す励磁順ポインタ「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,142)。
図5よりも明らかなように図柄番号は「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回)を超えたときには、この異常状態を報知する処理(ホール内に設けられた異常ランプに対する点滅処理、ホール管理者へのブザー報知処理など)を講じることもできる。
駆動モータとして、上述した実施の形態では1−2相励磁方式を採用した2相ステッピングモータを使用した場合であるが、この他に3−4相励磁方式を採用した4相ステッピングモータあるいは4−5相励磁方式を採用した5相のステッピングモータなどを利用することもできる。
このようにこの発明では、複数の回胴を回転させた後に、この回胴を停止させることで遊技を行う遊技機において、回胴駆動モータを駆動する信号を、一定周期ごとに発生する割り込み処理期間内において生成すると共に、割り込み処理期間内において生成した駆動信号を一定周期ごとに出力するように構成したものである。
これによれば、回胴駆動モータに対する駆動信号が割り込み周期内で生成され、生成された駆動信号は一定周期ごとに出力される。割り込み周期が一定期間ごとに発生したとしても、この割り込み周期内で処理される処理が複数存在するときには、全ての割り込み処理が終了するまでの処理時間が遊技の状態によっては変動するおそれがあるので、駆動信号を一定周期ごとに出力することで、この変動による影響を回避することができる。
駆動信号の出力タイミングが出力の都度変動すると、駆動モータへの励磁時間も変動し、これによって駆動モータの脱調や回転の不安定性を惹起するが、この発明では駆動信号を常に一定間隔で出力させることで、このような問題を回避できる。回転の安定を確保することで、ゲームへの集中力が増し、遊技者の興趣を増進させることができる。
定期的な処理としては、定期的な割り込み処理があり、この定期的な割り込み処理のうちでもタイマー割り込み処理が存在する。これらの割り込み処理の何れにおいても、処理時間がほぼ一定となる割り込み処理と、処理時間が僅かに変化するためその処理時間が不定となる割り込み処理とに分類したとき、この発明では処理時間が不定となる割り込み処理に先行して回胴駆動モータに対する制御処理が実行される。
したがって、タイマ割り込み処理のうち、処理時間がほぼ一定となる、MPUに設けられたレジスタ群に対する退避処理、停電フラグの状態判断処理、ウオッチドッグタイマ処理、MPUに対する割り込み終了宣言処理のうち少なくとも2つ以上の先行割り込み処理が存在するときには、回胴駆動モータに対する制御処理は、最初の先行割り込み処理の始めに行うか、途中の先行割り込み処理の間に行うか、あるいは最後の先行割り込み処理の後に行うかは問わない。
これは、何れの先行割り込み処理もその処理時間がほぼ一定であるから、回胴駆動モータに対する制御処理に先行してこれら割り込み処理が行われたとしても、回胴駆動モータを駆動する駆動信号を出力する間隔を常に一定にすることができるからである。
MPUに設けられたレジスタ群に対する退避処理を始めとして、停電フラグの状態判断処理、ウオッチドッグタイマ処理およびMPUに対する割り込み終了宣言処理などの割り込み処理が、その他の割り込み処理に先んじて処理される。
こうすれば先行割り込み処理の直後に、回胴駆動モータに対する制御処理を行うことができ、中央処理装置の処理を妨げることなく、一定時間間隔で回胴駆動モータに対する駆動信号を出力させることができる。
もちろん、先行割り込み処理以外の割り込み処理でも、処理時間がほぼ一定となる割り込み処理が存在するときには、この割り込み処理が処理時間が不定な割り込み処理よりも先行して実行すると共に、処理時間が一定となる割り込み処理の前または後に、回胴駆動モータに対する制御処理を行うこともできる。処理時間が一定となる全ての割り込み処理が終了した段階で回胴駆動モータに対する制御処理を行うこともできることは言うまでもない。
処理時間がほぼ一定となる割り込み処理の前後またはその間に回胴駆動モータの処理を行えば、上述したと同じ理由で、一定時間間隔で回胴駆動モータに対する駆動信号を出力させることができる。駆動信号の出力タイミングを一定にできれば、この駆動信号による駆動モータへの励磁タイミングおよび励磁間隔(出力励磁間隔)がほぼ一定となるため、駆動モータの脱調や不安定な回転を防止できる。
割り込み処理結果を出力する出力タイミングを固定することでも、駆動モータを一定周期ごとに出力させることができる。割り込み処理結果を出力するタイミングが固定することで、割り込み期間内に処理される全ての割り込み処理が終了した場合でも、その処理結果の出力タイミングを待って駆動信号が出力させれば、割り込み処理の処理時間に変動があっても、駆動信号の出力タイミングは常に一定になるからである。処理結果は入出力ポートへのデータ書き込みタイミングを一定にすることで達成できる。
駆動モータは1−2相励磁方式を採用したステッピングモータであるので、高トルク、高停止精度が得られる。このときの駆動信号は相励磁用の励磁データであるから、この駆動信号をそのままモータドライバに与えれば、そのまま特定の励磁相に通電して、ロータを駆動できる。
上述した遊技機はパチンコ機である。パチンコ機はその基本構成として操作ハンドルを備えると共に、この操作ハンドルの操作に応じて遊技球を所定の遊技領域に発射させ、遊技球が遊技領域内の所定の位置に配置された作動口に入賞することを必要条件として表示装置における図柄の変動表示が開始するようになされたものであり、また特別遊技状態発生中には、遊技領域内の所定の位置に配置された入賞口が所定の態様で開放されることによって遊技球を入賞可能として、その入賞個数に応じた有価価値が付与されるようになされた遊技機である。
有価価値は景品球として還元することもできれば、磁気カードなどのカード状記録媒体を利用して有価価値に相当する有価情報を書き込むことでもよい。パチンコ機には、少なくとも多数個の遊技球を取得できる遊技者に有利な状態である特別遊技状態(大当たり状態)と、遊技球を消費する遊技者に不利な状態である通常遊技状態との2種類の遊技態様が存在する。
上述した遊技機はスロットマシンである。スロットマシンはその基本構成として、遊技状態に応じてその遊技状態を識別させるための複数の図柄からなる図柄列を変動表示した後に図柄を確定表示する表示装置を備えており、操作レバーの操作に起因して図柄の変動が開始されると共に、ストップボタンの操作に起因して、或いは所定時間経過することにより図柄の変動が停止されるようになされ、停止時の確定図柄が特定図柄であることを必要条件として遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段を備えた遊技機である。
この遊技機には、少なくとも多数個の遊技媒体を取得できる遊技者に有利な状態である特別遊技状態(大当たり状態)と、遊技媒体を消費する遊技者に不利な状態である通常遊技状態の2種類の遊技態様が存在する。この種遊技機において使用される遊技媒体はコイン、メダル等がその代表例として挙げられる。
上述した遊技機はパチンコ機とスロットマシンとを融合させた遊技機である。このような遊技機(複合機)はその基本構成として、遊技状態に応じてその遊技状態を識別させるための複数の識別情報からなる図柄列を変動表示した後に図柄を確定表示する表示装置を備えており、さらに操作レバーなどの始動用操作手段の操作に起因して図柄の変動が開始されると共に、ストップボタンなどの停止用操作手段の操作に起因して、或いは所定時間経過することにより図柄の変動が停止され、その停止時の確定図柄が特定図柄であることを必要条件として遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段を備え、遊技媒体として遊技球を使用するとともに、識別情報の変動開始に際しては所定数の遊技球を必要とし、特別遊技状態の発生に際しては多くの遊技球が払い出されるよう構成された遊技機である。
この遊技機には、少なくとも多数個の遊技球を取得できる遊技者に有利な状態である特別遊技状態(大当たり状態)と、遊技球を消費する遊技者に不利な状態である通常遊技状態の2種類の遊技態様が存在する。
この発明は上述した実施の形態の遊技機に何等限定されるものではなく、この発明の技術的範囲に属する限り、種々なる形態で実施し得ることは勿論である。
まず、定期的に行われる遊技機の処理の1つである回胴駆動モータ制御処理が、上述したようにタイマ割り込み処理内で行われる場合の他に、メイン処理(図18)の中で、随時一定間隔で出力される時間情報(タイマ情報)を監視し(ポーリング処理)、所定の時間に到達したとき、一連の処理の1つとしてステッピングモータ71に対する制御処理を実行(コール)し、生成された駆動信号を入出力ポートに出力するように構成されている場合でも、この発明を適用できる。
その場合には図16に示す割り込み処理手順のうち、最初のタイマ割り込み処理は、「割り込み処理のコール」となり、またタイマ割り込み処理に特有なステップS15およびステップS26の各処理は不要になる。
このようにタイマ情報を監視しながら割り込み処理を実行する場合においても、処理時間が不定な処理群に先行して回胴駆動モータ制御処理を実行することで、生成された駆動信号の出力間隔を常に一定にすることができる。
また、上述した実施の形態のうち、回胴の個数は2個以上であればよく、回胴を含む表示装置も縦型、横型を問わない。回胴の回転方向も同一方向に揃える必要はなく、互いに逆回転するような回胴を有する遊技機にもこの発明を適用できる。いわゆるAタイプのスロットマシンに限らず、Bタイプ、Cタイプ、AタイプとCタイプの複合タイプ、BタイプとCタイプの複合タイプなど、どのようなスロットマシンにこの発明を適用してもよく、さらにはスロットマシンとパチンコ機とを複合した複合機にこの発明を適用してもよく、何れの場合であっても上述した実施の形態と同様の作用効果を奏することは明らかである。