以下、本発明の一実施形態を図面を参照して説明する。まず、遊技機の一例である第1種パチンコ遊技機の全体の構成について説明する。図1はパチンコ遊技機を正面からみた正面図である。
パチンコ遊技機1は、縦長の方形状に形成された外枠(図示せず)と、外枠の内側に開閉可能に取り付けられた遊技枠とで構成される。また、パチンコ遊技機1は、遊技枠に開閉可能に設けられている額縁状に形成されたガラス扉枠2を有する。遊技枠は、外枠に対して開閉自在に設置される前面枠(図示せず)と、機構部品等が取り付けられる機構板と、それらに取り付けられる種々の部品(後述する遊技盤を除く。)とを含む構造体である。
図1に示すように、パチンコ遊技機1は、額縁状に形成されたガラス扉枠2を有する。ガラス扉枠2の下部表面には打球供給皿(上皿)3がある。打球供給皿3の下部には、打球供給皿3に収容しきれない遊技球を貯留する余剰球受皿4と打球を発射する打球操作ハンドル(操作ノブ)5が設けられている。ガラス扉枠2の背面には、遊技盤6が着脱可能に取り付けられている。なお、遊技盤6は、それを構成する板状体と、その板状体に取り付けられた種々の部品とを含む構造体である。また、遊技盤6の前面には遊技領域7が形成されている。
遊技領域7の中央付近には、それぞれが識別情報としての図柄を可変表示する複数の可変表示部を含む可変表示装置(特別可変表示部)9が設けられている。可変表示装置9には、例えば「左」、「中」、「右」の3つの可変表示部(図柄表示エリア)がある。なお、可変表示部は固定的な領域であってもよいが、遊技進行中に、可変表示装置9の表示領域において移動したり大きさが変化してもよい。また、可変表示装置9には、始動入賞口14に入った有効入賞球数すなわち始動入賞記憶数を表示する4つの特別図柄始動記憶表示エリア(始動記憶表示エリア)18が設けられている。有効始動入賞(始動入賞記憶数が4未満のときの始動入賞)がある毎に、表示色を変化させる(例えば青色表示から黄色表示に変化させる)始動記憶表示エリア18を1増やす。そして、可変表示装置9の可変表示が開始される毎に、表示色が変化している始動記憶表示エリア18を1減らす(すなわち表示色をもとに戻す)。
なお、図柄表示エリアと始動記憶表示エリア18とが区分けされて設けられているので、可変表示中も始動入賞記憶数が表示された状態にすることができる。また、始動記憶表示エリア18を図柄表示エリアの一部に設けるようにしてもよく、その場合には、可変表示中は始動入賞記憶数の表示を中断するようにすればよい。また、この実施の形態では、始動記憶表示エリア18を可変表示装置9に設けるようにしているが、始動入賞記憶数を表示する表示器(特別図柄始動記憶表示器)を可変表示装置9とは別個に設けるようにしてもよい。
可変表示装置9の下方には、始動入賞口14を含む可変入賞球装置15が設けられている。始動入賞口14に入った入賞球は、遊技盤6の背面に導かれ、始動口スイッチ14aによって検出される。また、可変入賞球装置15は、開閉動作を行う左右の開閉片を備えている。この開閉片は、ソレノイド16によって開状態とされる。
可変入賞球装置15の下部には、特定遊技状態(大当り状態)においてソレノイド21によって開状態とされる開閉板20が設けられている。開閉板20は大入賞口を開閉する手段である。開閉板20から遊技盤6の背面に導かれた入賞球のうち一方(V入賞領域)に入った入賞球はV入賞スイッチ22で検出され、開閉板20からの入賞球はカウントスイッチ23で検出される。遊技盤6の背面には、大入賞口内の経路を切り換えるためのソレノイド21Aも設けられている。
ゲート32に遊技球が入賞しゲートスイッチ32aで検出されると、普通図柄始動入賞記憶が上限に達していなければ、所定の乱数値が抽出される。そして、普通図柄表示器10において表示状態が変化する可変表示を開始できる状態であれば、普通図柄表示器10の表示の可変表示が開始される。普通図柄表示器10において表示状態が変化する可変表示を開始できる状態でなければ、普通図柄始動入賞記憶の値が1増やされる。普通図柄表示器10の近傍には、普通図柄始動入賞記憶数を表示する4つのLEDによる表示部を有する普通図柄始動記憶表示器41が設けられている。ゲート32への入賞がある毎に、普通図柄始動記憶表示器41は点灯するLEDを1増やす。そして、普通図柄表示器10の可変表示が開始される毎に、点灯するLEDを1減らす。なお、特別図柄と普通図柄とを一つの可変表示装置で可変表示するように構成することもできる。その場合には、特別可変表示部と普通可変表示部とは1つの可変表示装置で実現される。
この実施の形態では、左右のランプ(点灯時に図柄が視認可能になる)が交互に点灯することによって普通図柄の可変表示が行われ、可変表示は所定時間(例えば29.2秒)継続する。そして、可変表示の終了時に左側のランプが点灯すれば当りとなる。当りとするか否かは、ゲート32に遊技球が入賞したときに抽出された乱数の値が所定の当り判定値と一致したか否かによって決定される。普通図柄表示器10における可変表示の表示結果が当りである場合に、可変入賞球装置15が所定回数、所定時間だけ開状態になって遊技球が入賞しやすい状態になる。すなわち、可変入賞球装置15の状態は、普通図柄の停止図柄が当り図柄である場合に、遊技者にとって不利な状態から有利な状態に変化する。
さらに、特別遊技状態としての確変状態では、普通図柄表示器10における停止図柄が当り図柄になる確率が高められるとともに、可変入賞球装置15の開放時間と開放回数とのうちの一方または双方が高められ、遊技者にとってさらに有利になる。また、確変状態等の所定の状態では、普通図柄表示器10における可変表示期間(変動時間)が短縮されることによって、遊技者にとってさらに有利になるようにしてもよい。
遊技盤6には、複数の入賞口29,30,33,39が設けられ、遊技球の入賞口29,30,33,39への入賞は、それぞれ入賞口スイッチ29a,30a,33a,39aによって検出される。遊技領域7の左右周辺には、遊技中に点滅表示される飾りランプ25が設けられ、下部には、入賞しなかった打球を吸収するアウト口26がある。また、遊技領域7の外側の左右上部には、効果音や音声を発する2つのスピーカ27が設けられている。遊技領域7の外周には、天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cが設けられている。
そして、この例では、左枠ランプ28bの近傍に、賞球残数があるときに点灯する賞球ランプ51が設けられ、右枠ランプ28cの近傍に、補給球が切れたときに点灯する球切れランプ52が設けられている。
打球発射装置から発射された遊技球は、打球レールを通って遊技領域7に入り、その後、遊技領域7を下りてくる。打球が始動入賞口14に入り始動口スイッチ14aで検出されると、図柄の可変表示を開始できる状態であれば、可変表示装置9において特別図柄が可変表示(変動)を始める。図柄の可変表示を開始できる状態でなければ、始動入賞記憶数を1増やす。
可変表示装置9における特別図柄の可変表示は、一定時間が経過したときに停止する。停止時の特別図柄の組み合わせが大当り図柄(特定表示態様)であると、大当り遊技状態に移行する。すなわち、開閉板20が、一定時間経過するまで、または、所定個数(例えば10個)の打球が入賞するまで開放する。そして、開閉板20の開放中に打球がV入賞領域に入賞しV入賞スイッチ22で検出されると、継続権が発生し開閉板20の開放が再度行われる。継続権の発生は、所定回数(例えば15ラウンド)許容される。
停止時の可変表示装置9における特別図柄の組み合わせが確率変動を伴う大当り図柄(確変図柄)の組み合わせである場合には、次に大当りとなる確率が高くなる。すなわち、確変状態という遊技者にとってさらに有利な状態(特別遊技状態)となる。
次に、パチンコ遊技機1の裏面の構造について図2および図3を参照して説明する。図2は、遊技機を裏面から見た背面図である。図3は、各種部材が取り付けられた機構板を遊技機背面側から見た背面図である。
図2に示すように、遊技機裏面側では、可変表示装置9を制御する演出制御手段が搭載された演出制御基板80を含む可変表示制御ユニット49、遊技制御用マイクロコンピュータ等が搭載された遊技制御基板(主基板)31が設置されている。また、球払出制御を行う払出制御用マイクロコンピュータ等が搭載された払出制御基板37が設置されている。なお、演出制御手段は、遊技盤6に設けられている可変表示装置9、各種装飾LED、普通図柄始動記憶表示器41、装飾ランプ25、枠側に設けられている天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cを点灯制御するとともに、スピーカ27からの音発生を制御する。
演出制御手段は、演出制御基板80に搭載されている1つの演出制御用マイクロコンピュータで実現されるが、遊技盤6に設けられている各種装飾LED、普通図柄始動記憶表示器41、装飾ランプ25、枠側に設けられている天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cを駆動するための駆動回路は、演出制御基板80と電気的に接続されているランプドライバ基板に搭載されている。また、スピーカ27を駆動する駆動回路等は、演出制御基板80と電気的に接続されている音声出力基板に搭載されている。
さらに、DC30V、DC21V、DC12VおよびDC5Vを作成する電源回路が搭載された電源基板910やタッチセンサ基板91が設けられている。電源基板910は、大部分が主基板31と重なっているが、主基板31に重なることなく外部から視認可能に露出した露出部分がある。この露出部分には、遊技機1の各電気部品制御基板(主基板31、演出制御基板80、払出制御基板37)や遊技機に設けられている各電気部品への電力供給を実行あるいは遮断するための電力供給許可手段としての電源スイッチ914と、主基板31に含まれる記憶内容保持手段(例えば、電力供給停止時にもその内容を保持可能なバックアップRAM(具体的には、RAM55の全部または一部))に記憶されたバックアップデータをクリアするための操作手段としてのクリアスイッチ921とが設けられている。
遊技機裏面において、上方には、各種情報を遊技機外部に出力するための各端子を備えたターミナル基板160が設置されている。ターミナル基板160には、少なくとも、球切れ検出スイッチ167の出力を導入して外部出力するための球切れ用端子、賞球情報(賞球個数信号)を外部出力するための賞球用端子および球貸し情報(球貸し個数信号)を外部出力するための球貸し用端子が設けられている。また、中央付近には、主基板31からの各種情報を遊技機外部に出力するための各端子を備えた情報端子基板(情報出力基板)34が設置されている。
貯留タンク38に貯留された遊技球は誘導レール39を通り、図3に示されるように、カーブ樋186を経て払出ケース40Aで覆われた球払出装置に至る。球払出装置の上部には、遊技媒体切れ検出手段としての球切れスイッチ187が設けられている。球切れスイッチ187が球切れを検出すると、球払出装置の払出動作が停止する。球切れスイッチ187は遊技球通路内の遊技球の有無を検出するスイッチであるが、貯留タンク38内の補給球の不足を検出する球切れ検出スイッチ167も誘導レール39における上流部分(貯留タンク38に近接する部分)に設けられている。球切れ検出スイッチ167が遊技球の不足を検知すると、遊技機設置島に設けられている補給機構から遊技機に対して遊技球の補給が行われる。
入賞にもとづく景品としての遊技球や球貸し要求にもとづく遊技球が多数払い出されて打球供給皿3が満杯になり、ついには遊技球が連絡口45に到達した後さらに遊技球が払い出されると、遊技球は、余剰球通路46を経て余剰球受皿4に導かれる。さらに遊技球が払い出されると、感知レバー47が貯留状態検出手段としての満タンスイッチ48を押圧して、貯留状態検出手段としての満タンスイッチ48がオンする。その状態では、球払出装置内の払出モータの回転が停止して球払出装置の動作が停止するとともに打球発射装置の駆動も停止する。
図3に示すように、球払出装置の側方には、カーブ樋186から遊技機下部の排出口192に至る球抜き通路191が形成されている。球抜き通路191の上部には球抜きレバー193が設けられ、球抜きレバー193が遊技店員等によって操作されると、誘導レール39から球抜き通路191への遊技球通路が形成され、貯留タンク38内に貯留されている遊技球は、排出口192から遊技機外に排出される。
図4は、払出ケース40Aで覆われた球払出装置97を示す正面図(図4(A))および断面図(図4(B))である。図3に示すように、球払出装置97は、球切れスイッチ187と球払出装置97との間に設置されている通路体184の下部に固定されている。通路体184は、カーブ樋186によって流下方向が左右方向に変換された2列の遊技球を流下させる球通路188a,188bを有する。球通路188a,188bの上流側には、球切れスイッチ187が設置されている。なお、実際には、それぞれの球通路188a,188bに球切れスイッチが設置されている。球切れスイッチ187は、球通路188a,188b内の遊技球の有無を検出するものであって、球切れスイッチ187が遊技球を検出しなくなると球払出装置97における払出モータ(図4において図示せず)の回転を停止して遊技球の払出が不動化される。
また、球切れスイッチ187は、球通路188a,188bに27〜28個の遊技球が存在することを検出できるような位置に係止片によって係止されている。
球払出装置97において、ステッピングモータによる払出モータ(図示せず)が例えばカムを回転させることによって、賞球または球貸し要求にもとづく遊技球を1個ずつ払い出す。また、球払出装置97の下方には、例えば近接スイッチによる払出カウントスイッチ301が設けられている。球払出装置97から1個の遊技球が落下する毎に、払出カウントスイッチ301がオンする。すなわち、払出カウントスイッチ301は、球払出装置97から実際に払い出された遊技球を検出する。従って、払出制御手段は、払出カウントスイッチ301の検出信号によって、実際に払い出された遊技球の数を計数することができる。
図5は、球払出装置97の構成例を示す分解斜視図である。この例では、払出ケース40Aとしての3つのケース140,141,142の内部に球払出装置97が形成されている。ケース140,141の上部には、球切れスイッチ187の下部の球通路188a,188bと連通する穴170,171が設けられ、遊技球は、穴170,171から球払出装置97に流入する。
球払出装置97は駆動源となる払出モータ(例えばステッピングモータ)289を含む。払出モータ289の回転力は、払出モータ289の回転軸に嵌合しているギア290に伝えられ、さらに、ギア290と噛み合うギア291に伝えられる。ギア291の中心軸には、球載置部を有するカム292が嵌合している。穴170,171から流入した遊技球は、カム292の球載置部によって、カム292の下方の球通路293に1個ずつ落下させられる。
また、球払出装置97において、発光素子(LED)と受光素子とによる払出モータ位置センサ295が設けられている。払出モータ位置センサ295は、払出モータ289の回転位置を検出するためのセンサであり、遊技球が詰まったこと、すなわちいわゆる球噛みを検出するために用いられる。
なお、この実施の形態では、球払出装置97は、賞球払出と球貸しとを共に行うように構成されているが、賞球払出を行う球払出装置と球貸しを行う球払出装置が別個に設けられていてもよい。別個に設けられている場合には、賞球払出を行う球払出装置と球貸しを行う球払出装置とで払出手段が構成される。さらに、例えば、カムまたはスプロケットの回転方向を変えて賞球払出と球貸しとを分けるように構成されていてもよいし、本実施の形態において例示する球払出装置97(モータによってカムを回転させる構成)以外のどのような構造の球払出装置を用いても、本発明を適用することができる。
図6は、主基板31における回路構成の一例を示すブロック図である。なお、図6には、払出制御基板37および演出制御基板80も示されている。主基板31には、プログラムに従ってパチンコ遊技機1を制御する基本回路53と、ゲートスイッチ32a、始動口スイッチ14a、V入賞スイッチ22、カウントスイッチ23、入賞口スイッチ29a,30a,33a,39a、およびクリアスイッチ921からの信号を基本回路53に与えるスイッチ回路58と、可変入賞球装置15を開閉するソレノイド16、開閉板20を開閉するソレノイド21および大入賞口内の経路を切り換えるためのソレノイド21Aを基本回路53からの指令に従って駆動するソレノイド回路59とが搭載されている。
なお、ゲートスイッチ32a、始動口スイッチ14a、V入賞スイッチ22、カウントスイッチ23、入賞口スイッチ29a,30a,33a,39a等のスイッチは、センサと称されているものでもよい。すなわち、遊技球を検出できる遊技媒体検出手段(この例では遊技球検出手段)であれば、その名称を問わない。入賞検出を行う始動口スイッチ14a、カウントスイッチ23、および入賞口スイッチ29a,30a,33a,39aの各スイッチは、入賞検出手段でもある。なお、入賞検出手段は、複数の入賞口に別個に入賞したそれぞれの遊技球をまとめて検出するものであってもよい。また、ゲートスイッチ32aのような通過ゲートであっても、賞球の払い出しが行われるものであれば、通過ゲートへ遊技球が進入することが入賞になり、通過ゲートに設けられているスイッチ(例えばゲートスイッチ32a)が入賞検出手段になる。さらに、この実施の形態では、V入賞領域に入賞した遊技球はV入賞スイッチ22で検出されるとともにカウントスイッチ23でも検出されるが、V入賞スイッチ22のみで検出されるようにしてもよい。V入賞領域に入賞した遊技球がV入賞スイッチ22のみで検出される場合には、大入賞口に入賞した遊技球数は、V入賞スイッチ22による検出数とカウントスイッチ23による検出数との和になる。
また、基本回路53から与えられるデータに従って、大当りの発生を示す大当り情報、可変表示装置9における図柄の可変表示開始に利用された始動入賞球の個数を示す有効始動情報、確率変動が生じたことを示す確変情報等の情報出力信号をホールコンピュータ等の外部装置に対して出力する情報出力回路64が搭載されている。
基本回路53は、ゲーム制御用のプログラム等を記憶するROM54、ワークメモリとして使用される記憶手段(変動データを記憶する変動データ記憶手段)としてのRAM55、プログラムに従って制御動作を行うCPU56およびI/Oポート部57を含む。この実施の形態では、ROM54,RAM55はCPU56に内蔵されている。すなわち、CPU56は、1チップマイクロコンピュータ(遊技制御用マイクロコンピュータ)である。1チップマイクロコンピュータは、少なくともRAM55が内蔵されていればよく、ROM54およびI/Oポート部57は外付けであっても内蔵されていてもよい。なお、CPU56はROM54に格納されているプログラムに従って制御を実行するので、以下、CPU56が実行する(または、処理を行う)ということは、具体的には、CPU56がプログラムに従って制御を実行することである。このことは、主基板31以外の他の基板に搭載されているCPUについても同様である。
なお、この実施の形態では、遊技制御手段は、CPU56のみにより構成されていてもよく、RAM54、ROM55、I/Oポート部57のうち少なくとも1つとCPU56とによって構成されていてもよい。
また、RAM(CPU内蔵RAMであってもよい。)55は、その一部または全部が電源基板910において作成されるバックアップ電源によってバックアップされているバックアップRAMである。すなわち、遊技機に対する電力供給が停止しても、所定期間は、RAM55の一部または全部の内容は保存される。特に、少なくとも、遊技状態すなわち遊技制御手段の制御状態に応じたデータと未払出賞球数を示すデータは、バックアップRAMに保存される。なお、遊技制御手段の制御状態に応じたデータとは、停電等が生じた後に復旧した場合に、そのデータにもとづいて、制御状態を停電等の発生前に復旧させるために必要なデータである。
遊技球を打撃して発射する打球発射装置は払出制御基板37上の回路によって制御される発射モータ94を含み、発射モータ94が回転することによって遊技球を遊技領域7に向けて発射する。発射モータ94を駆動するための駆動信号は、タッチセンサ基板91を介して発射モータ94に伝達される。そして、遊技者が操作ノブ(打球ハンドル)5に触れていることはタッチセンサで検出され、タッチセンサからの信号がタッチセンサ基板91を介して払出制御基板37に伝達される。払出制御基板37上の回路は、タッチセンサからの信号がオフ状態を示している場合には、発射モータ94の駆動を停止する。
なお、この実施の形態では、演出制御基板80に搭載されている演出制御手段が、遊技盤6に設けられている普通図柄始動記憶表示器41および装飾ランプ25の表示制御を行うとともに、枠側に設けられている天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cの表示制御を行う。また、演出制御基板80に搭載されている演出制御手段は、特別図柄を可変表示する可変表示装置9および普通図柄を可変表示する普通図柄表示器10の表示制御も行う。
図7は、払出制御基板37および球払出装置97などの払出に関連する構成要素を示すブロック図である。図7に示すように、払出制御基板37には、払出制御用CPU371が搭載されている。この実施の形態では、払出制御用CPU371は、1チップマイクロコンピュータであり、少なくともRAMが内蔵されている。また、RAMは、主基板31におけるRAM55とは異なり、電源バックアップされていない。払出制御用CPU371、RAM、払出制御用プログラムを格納したROM(図示せず)およびI/Oポート等は、払出制御手段を構成する。
満タンスイッチ48および払出カウントスイッチ301からの検出信号は、中継基板72を介して払出制御基板37のI/Oポート372fに入力される。また、球切れスイッチ187および払出モータ位置センサ295からの検出信号は、中継基板72を介して払出制御基板37のI/Oポート372eに入力される。払出制御基板37の払出制御用CPU371は、球切れスイッチ187からの検出信号が球切れ状態を示していたり、満タンスイッチ48からの検出信号が満タン状態を示していると、球払出処理を停止する。さらに、満タンスイッチ48からの検出信号が満タン状態を示していると、打球発射装置からの球発射を停止させる。
入賞があると、主基板31の出力回路67から、払出指令信号として、賞球の払出要求を行うための賞球REQ信号(賞球リクエスト信号)および払い出すべき賞球個数を示す払出個数信号が出力される。払出個数信号は、4ビットのデータ(2進4桁のデータ)によって構成され、4本の信号線によって出力される。払出個数信号は、入力回路373Aを介してI/Oポート372eに入力される。払出制御用CPU371は、I/Oポート372eを介して賞球REQ信号および払出個数信号が入力すると、払出個数信号が示す個数の遊技球を払い出すために球払出装置97を駆動する制御を行う。なお、主基板31の出力回路67からは、主基板31が接続されていることを示す電源確認信号(接続確認信号)も出力される。また、賞球REQ信号および払出個数信号は、払出数を指定する払出指令信号に相当する。
また、払出制御手段が払出指令信号を受け付けたときには主基板31に対して指令受付信号を送信する。指令受付信号は、払出制御基板37の出力ポート372bおよび出力回路373Bを介して主基板31に送信される。そして、主基板31において、入力回路68およびI/Oポート57を介してCPU56に入力される。さらに、払出制御手段が賞球の払出処理を実行しているときには、払出制御手段は、出力ポート372bおよび出力回路373Bを介して払出処理中であることを示す払出BUSY信号(賞球払出中信号)を送信する。なお、この実施の形態では、払出BUSY信号がオン状態になることによって、指令受付信号が送信されたことになる。
払出制御用CPU371は、出力ポート372bを介して、賞球払出数を示す賞球情報信号および貸し球数を示す球貸し個数信号をターミナル基板(枠用外部端子基板と盤用外部端子基板とを含む)160に出力する。なお、出力ポート372bの外側に、ドライバ回路が設置されているが、図6では記載省略されている。また、ターミナル基板160(枠用外部端子基板)には、ドア開放情報スイッチ161A,161Bが接続されている。
また、払出制御用CPU371は、出力ポート372cを介して、7セグメントLEDによるエラー表示用LED374にエラー信号を出力する。さらに、出力ポート372bを介して、点灯/消灯を指示するための信号を賞球LED51および球切れLED52に出力する。なお、払出制御基板37の入力ポート372fには、エラー状態を解除するためのエラー解除スイッチ375からの検出信号が入力される。エラー解除スイッチ375は、ソフトウェアリセットによってエラー状態を解除するために用いられる。
さらに、払出制御基板37からの払出モータ289への駆動信号は、出力ポート372aおよび中継基板72を介して球払出装置97の払出機構部分における払出モータ289に伝えられる。なお、出力ポート372aの外側に、ドライバ回路(モータ駆動回路)が設置されているが、図6では記載省略されている。また、払出制御基板37からの発射モータ94への駆動信号は、出力ポート372aおよびタッチセンサ基板91を介して発射モータ94に伝えられる。
カードユニット50には、カードユニット制御用マイクロコンピュータが搭載されている。また、カードユニット50には、使用可表示ランプ151、連結台方向表示器153、カード投入表示ランプ154およびカード挿入口155が設けられている(図1参照)。インタフェース基板(中継基板)66には、打球供給皿3の近傍に設けられている度数表示LED60、球貸し可LED61、球貸しスイッチ62および返却スイッチ63が接続される。
インタフェース基板66からカードユニット50には、遊技者の操作に応じて、球貸しスイッチ62が操作されたことを示す球貸しスイッチ信号および返却スイッチ63が操作されたことを示す返却スイッチ信号が与えられる。また、カードユニット50からインタフェース基板66には、プリペイドカードの残高を示すカード残高表示信号および球貸し可表示信号が与えられる。カードユニット50と払出制御基板37の間では、接続信号(VL信号)、ユニット操作信号(BRDY信号)、球貸し要求信号(BRQ信号)、球貸し完了信号(EXS信号)およびパチンコ機動作信号(PRDY信号)が入力ポート372fおよび出力ポート372dを介して送受信される。カードユニット50と払出制御基板37の間には、インタフェース基板66が介在している。よって、接続信号(VL信号)等の信号は、図7に示すように、インタフェース基板66を介してカードユニット50と払出制御基板37の間で送受信されることになる。
パチンコ遊技機1の電源が投入されると、払出制御基板37の払出制御用CPU371は、カードユニット50にPRDY信号を出力する。また、カードユニット制御用マイクロコンピュータは、電源が投入されると、VL信号を出力する。払出制御用CPU371は、VL信号の入力状態によってカードユニット50の接続状態/未接続状態を判定する。カードユニット50においてカードが受け付けられ、球貸しスイッチが操作され球貸しスイッチ信号が入力されると、カードユニット制御用マイクロコンピュータは、払出制御基板37にBRDY信号を出力する。この時点から所定の遅延時間が経過すると、カードユニット制御用マイクロコンピュータは、払出制御基板37にBRQ信号を出力する。
そして、払出制御基板37の払出制御用CPU371は、カードユニット50に対するEXS信号を立ち上げ、カードユニット50からのBRQ信号の立ち下がりを検出すると、払出モータ289を駆動し、所定個の貸し球を遊技者に払い出す。そして、払出が完了したら、払出制御用CPU371は、カードユニット50に対するEXS信号を立ち下げる。その後、カードユニット50からのBRDY信号がオン状態でないことを条件に、遊技制御手段から払出指令信号を受けると賞球払出制御を実行する。なお、カードユニット50で用いられる電源電圧AC24Vは払出制御基板37から供給される。
カードユニット50に対する電源基板910からの電力供給は、払出制御基板37およびインタフェース基板66を介して行われる。この例では、インタフェース基板66内に配されているカードユニット50に対するAC24Vの電源供給ラインに、カードユニット50を保護するためのヒューズが設けられ、カードユニット50に所定電圧以上の電圧が供給されることが防止される。
なお、この実施の形態では、カードユニット50が遊技機とは別体として遊技機に隣接して設置されている場合を例にするが、カードユニット50は遊技機と一体化されていてもよい。また、コイン投入に応じてその金額に応じた遊技球が貸し出されるような場合でも本発明を適用できる。
次に、電源基板910の構成を図8および図9のブロック図を参照して説明する。図8は、電源基板910における直流電圧作成部分を示すブロック図である。電源基板910には、遊技機内の各電気部品制御基板や機構部品への電力供給を実行または遮断するための電源スイッチ914が設けられている。なお、電源スイッチ914は、遊技機において、電源基板910の外に設けられていてもよい。電源スイッチ914が閉状態(オン状態)では、交流電源(AC24V)がトランス911の入力側(一次側)に印加される。トランス911は、交流電源(AC24V)と電源基板910の内部とを電気的に絶縁するためのものであるが、その出力電圧もAC24Vである。また、トランス911の入力側には、過電圧保護回路としてのバリスタ918が設置されている。
電源基板910は、電気部品制御基板(主基板31、払出制御基板37および演出制御基板80)と独立して設置され、遊技機内の各電気部品制御基板および機構部品が使用する電圧を生成する。この例では、AC24V、VSL(DC+30V)、VLP(DC+24V)、VDD(DC+12V)およびVCC(DC+5V)を生成する。また、バックアップ電源(VBB)すなわちバックアップRAMに記憶内容を保持させるための記憶保持手段となるコンデンサ916は、DC+5V(VCC)すなわち各基板上のIC等を駆動する電源のラインから充電される。また、+5Vラインとバックアップ+5V(VBB)ラインとの間に、逆流防止用のダイオード917が挿入される。なお、VSLは、整流平滑回路914において、整流素子でAC24Vを整流昇圧することによって生成される。VSLは、ソレノイド駆動電源となる。また、VLPは、ランプ点灯用の電圧であって、整流回路912において、整流素子でAC24Vを整流することによって生成される。
電源電圧生成手段としてのDC−DCコンバータ913は、1つまたは複数のレギュレータIC(図8では2つのレギュレータIC924A,924Bを示す。)を有し、VSLにもとづいてVDDおよびVCCを生成する。レギュレータIC(スイッチングレギュレータ)924A,924Bの入力側には、比較的大容量のコンデンサ923A,923Bが接続されている。従って、外部からの遊技機に対する電力供給が停止したときに、VSL、VDD、VCC等の直流電圧は、比較的緩やかに低下する。
図9に示すように、トランス911から出力されたAC24Vは、そのままコネクタ922Aに供給される。また、VLPは、過電流の供給を防止する過電流防止手段としてのヒューズF01を介してコネクタ922Bに供給される。また、ヒューズF01のコネクタ922B側とグラウンド(接地電位)との間には、LED(LD01)と抵抗(R01)の直列体が接続されている。
VSLは、ヒューズF02を介してコネクタ922Aに供給される。ヒューズF02のコネクタ922A側とグラウンドとの間には、LED(LD02)と抵抗(R02)の直列体が接続されている。また、VSLは、ヒューズF03を介してコネクタ922Bに供給される。ヒューズF03のコネクタ922B側とグラウンドとの間には、LED(LD03)と抵抗(R03)の直列体が接続されている。さらに、VSLは、ヒューズF04を介してコネクタ922Cに供給される。ヒューズF04のコネクタ922C側とグラウンドとの間には、LED(LD04)と抵抗(R04)の直列体が接続されている。
VDDは、ヒューズF05を介してコネクタ922Aに供給される。ヒューズF05のコネクタ922A側とグラウンドとの間には、LED(LD05)と抵抗(R05)の直列体が接続されている。また、VDDは、ヒューズF06を介してコネクタ922Bに供給される。ヒューズF06のコネクタ922B側とグラウンドとの間には、LED(LD06)と抵抗(R06)の直列体が接続されている。さらに、VDDは、ヒューズF07を介してコネクタ922Cに供給される。ヒューズF07のコネクタ922C側とグラウンドとの間には、LED(LD07)と抵抗(R07)の直列体が接続されている。
VCCは、ヒューズF08を介してコネクタ922Aに供給される。ヒューズF08のコネクタ922A側とグラウンドとの間には、LED(LD08)と抵抗(R08)の直列体が接続されている。また、VCCは、ヒューズF09を介してコネクタ922Bに供給される。ヒューズF09のコネクタ922B側とグラウンドとの間には、LED(LD09)と抵抗(R09)の直列体が接続されている。さらに、VCCは、ヒューズF10を介してコネクタ922Cに供給される。ヒューズF10のコネクタ922C側とグラウンドとの間には、LED(LD10)と抵抗(R10)の直列体が接続されている。
なお、コネクタ922Aに接続されるケーブルは、払出制御基板37に接続される。また、コネクタ922Bに接続されるケーブルは、演出制御基板80に接続される。そして、コネクタ922Cに接続されるケーブルは、主基板31に接続される。従って、コネクタ922Cには、VBBも供給されている。
また、電源基板910には、押しボタン構造のクリアスイッチ921が搭載されている。クリアスイッチ921が押下されるとローレベル(オン状態)のクリアスイッチ信号が出力され、コネクタ922Cを介して主基板31に送信される。また、クリアスイッチ921が押下されていなければハイレベル(オフ状態)の信号が出力される。なお、クリアスイッチ921は、押しボタン構造以外の他の構成であってもよい。また、クリアスイッチ921は、遊技機において、電源基板910以外に設けられていてもよい。
また、ヒューズF01〜F10は、取り外しが可能(交換可能)なタイプのものではなく、電源基板910に固定されているタイプのものである。すなわち、交換不能に基板(この例では電源基板910)に設置されている。ヒューズF01〜F10が交換可能なタイプのものである場合には、電源基板910や電気部品制御基板において短絡故障等のような不具合が発生したときにヒューズ交換がなされ、真の不具合原因が不明なまま遊技機が稼働状態に戻されてしまうおそれがある。その場合、不具合が直ぐに再発することが予想される。しかし、ヒューズF01〜F10を交換不可能なタイプのものにしておけば、電源基板910において不具合が発生したときに、真の不具合原因を探す行為に誘導される。
電源基板910において、図9に示されたようなLED(LD01〜LD10)が設けられている場合、電源基板910および各電気部品制御基板において短絡故障等のような不具合が発生していなければ、各LED(LD01〜LD10)は点灯状態である。換言すれば、各LED(LD01〜LD10)が点灯状態であれば、電源基板910および各電気部品制御基板において短絡故障等のような不具合が発生していないことがわかる。
図10は、主基板31におけるCPU56、リセット回路および電源監視回路を示すブロック図である。図10に示すように、電源監視回路(電源監視手段)920からの電源断信号すなわち電源監視手段からの検出信号が、反転回路943および入力ポート572を介してCPU56に入力される。従って、CPU56は、入力ポート572の入力信号を監視することによって遊技機への電力供給の停止の発生を確認することができる。
電源監視回路920は主基板31に搭載されているので、電源断信号が入力されるCPU56の近くに電源監視手段を設置することができ、電力供給の停止を遊技制御手段に確実に認識させることができるようになる。
電源監視回路920は電源監視用IC902を含む。電源監視用IC902は、VSL電圧を導入し、VSL電圧を監視することによって遊技機への電力供給停止の発生を検出する。具体的には、VSL電圧が所定値(この例では+22V)以下になったら、電力供給の停止が生ずるとして電源断信号を出力する。なお、監視対象の電源電圧は、各電気部品制御基板に搭載されている回路素子の電源電圧(この例では+5V)よりも高い電圧であることが好ましい。この例では、交流から直流に変換された直後の電圧であるVSLが用いられている。
電源監視用IC902が電力供給の停止を検知するための所定値は、通常時の電圧より低いが、CPU56が暫くの間、動作しうる程度の電圧である。また、電源監視用IC902が、CPU56等の回路素子を駆動するための電圧(この例では+5V)よりも高いので、CPUが必要とする電圧に対して監視範囲を広げることができる。従って、より精密な監視を行うことができる。さらに、監視電圧としてVSL(+30V)を用いる場合には、遊技機の各種スイッチに供給される電圧が+12Vであることから、電源瞬断時のスイッチオン誤検出の防止も期待できる。すなわち、+30V電源の電圧を監視すると、+30V作成の以降に作られる+12Vが落ち始める以前の段階でそれの低下を検出できる。
+12V電源の電圧が低下するとスイッチ出力がオン状態を呈するようになるが、+12Vより早く低下する+30V電源電圧を監視して電力供給の停止を認識すれば、スイッチ出力がオン状態を呈する前に電力供給回復待ちの状態に入ってスイッチ出力を検出しない状態となることができる。
リセット回路65はリセットIC651を含む。リセットIC651は、電源投入時に、外付けのコンデンサの容量で決まる所定時間だけ出力をローレベルとし、所定時間が経過すると出力をハイレベルにする。すなわち、リセット信号(システムリセット信号)をハイレベルに立ち上げてCPU56を動作可能状態にする。なお、リセット信号は、反転回路942,941を介してCPU56のリセット端子に入力される。
また、リセットIC651は、電源監視回路920が監視する電源電圧と等しい電源電圧であるVSLの電源電圧を監視して電圧値が所定値(電源監視回路が電源断信号を出力する電源電圧値よりも低い値)以下になると出力をローレベルにする。従って、CPU56は、電源監視回路920からの電源断信号に応じて所定の電力供給停止時処理を行った後、システムリセットされる。すなわち、完全に動作を止める状態になる。従って、リセット回路65は、電源監視手段が検出信号を出力するタイミングよりも遅いタイミングで検出信号を出力する第2の電源監視手段に相当する。この例では、第2の電源監視手段が検出信号を出力する状態は、リセット信号をローレベルにする状態である。
この実施の形態で用いられているCPU56は、マスク不能割込(NMI)を発生させるために使用されるマスク不能割込端子(NMI端子)と、CPU56の外部から割込(外部割込;マスク可能割込)を発生させるために使用される割込端子(INT端子)とを有する。NMI端子に入力される信号がローレベルに立ち下がると、マスク不能割込が発生する。すなわち、CPU56のプログラムカウンタが、マスク不能割込処理の開始アドレスに変更され、CPU56は、マスク不能割込処理の開始アドレスに設定されている命令を実行する状態になる。
なお、「割込」とは、実行中の処理を中断させて直ちに他の処理を実行するためにその実行中の処理に割り込むこと、あるいは各処理の実行順番が決定されている場合に早期に他の処理を実行するために上位の実行順番(最後の順番でなく)に割り込むことを意味する。
また、INT端子に入力される信号がローレベルに立ち下がると、外部割込が発生する。すなわち、CPU56のプログラムカウンタが、外部割込処理の開始アドレスに変更され、CPU56は、外部割込処理の開始アドレスに設定されている命令を実行する状態になる。
この実施の形態では、マスク不能割込および外部割込を使用しない。そこで、NMI端子およびINT端子を、抵抗を介してVcc(+5V)にプルアップしておく。従って、NMI端子およびINT端子の入力レベルは常にハイレベルになり、端子オープン状態に場合に比べて、ノイズ等によってNMI端子およびINT端子の入力レベルが立ち下がって割込発生状態になる可能性が低減する。
図11および図12は、遊技制御手段における出力ポートの割り当ての例を示す説明図である。図11に示すように、出力ポート0は払出制御基板37に送信される払出制御信号、および演出制御基板80に送信される演出制御コマンドについての演出制御INT信号(ストローブ信号)の出力ポートである。また、演出制御基板80に送信される演出制御コマンドの8ビットのデータは出力ポート1から出力される。演出制御INT信号は、演出制御コマンドの8ビットのデータを取り込むことを演出制御手段に指令するための信号である。
また、出力ポート2から、大入賞口の開閉板2を開閉するためのソレノイド(大入賞口扉ソレノイド)21、大入賞口内の経路を切り換えるためのソレノイド(大入賞口内誘導板ソレノイド)21Aおよび可変入賞球装置15を開閉するためのソレノイド(普通電動役物ソレノイド)16に対する駆動信号が出力される。そして、出力ポート3から、情報出力回路64を介して情報端子板34やターミナル基板160に至る各種情報出力用信号すなわち制御に関わる情報の出力データが出力される。
図13は、遊技制御手段におけるにおける入力ポートのビット割り当ての例を示す説明図である。図13に示すように、入力ポート0のビット0〜7には、それぞれ、入賞口スイッチ33a、24a,29a,30a、始動口スイッチ14a、カウントスイッチ23、V入賞スイッチ22、ゲートスイッチ32aの検出信号が入力される。また、入力ポート1のビット0〜2には、それぞれ、電源監視回路920からの電源断信号、払出制御基板37からの払出BUSY信号、電源基板910からのクリアスイッチ921の検出信号が入力される。なお、各スイッチからの検出信号は、スイッチ回路58において論理反転されている。
次に遊技機の動作について説明する。図14は、主基板31における遊技制御手段(CPU56およびROM,RAM等の周辺回路)が実行するメイン処理を示すフローチャートである。遊技機に対して電源が投入され、リセット端子の入力レベルがハイレベルになると、CPU56は、プログラムの内容が正当か否かを確認するための処理であるセキュリティチェック処理を実行した後、ステップS1以降のメイン処理を開始する。メイン処理において、CPU56は、まず、必要な初期設定を行う。
初期設定処理において、CPU56は、まず、割込禁止に設定する(ステップS1)。次に、割込モードを割込モード2に設定し(ステップS2)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。そして、内蔵デバイスレジスタの初期化を行う(ステップS4)。また、内蔵デバイス(内蔵周辺回路)であるCTC(カウンタ/タイマ)およびPIO(パラレル入出力ポート)の初期化(ステップS5)を行った後、RAMをアクセス可能状態に設定する(ステップS6)。
この実施の形態で用いられるCPU56は、I/Oポート(PIO)およびタイマ/カウンタ回路(CTC)も内蔵している。また、CTCは、2本の外部クロック/タイマトリガ入力CLK/TRG2,3と2本のタイマ出力ZC/TO0,1を備えている。
この実施の形態で用いられているCPU56には、マスク可能な割込のモードとして以下の3種類のモードが用意されている。なお、マスク可能な割込が発生すると、CPU56は、自動的に割込禁止状態に設定するとともに、プログラムカウンタの内容をスタックにセーブする。
割込モード0:割込要求を行った内蔵デバイスがRST命令(1バイト)またはCALL命令(3バイト)をCPUの内部データバス上に送出する。よって、CPU56は、RST命令に対応したアドレスまたはCALL命令で指定されるアドレスの命令を実行する。リセット時に、CPU56は自動的に割込モード0になる。よって、割込モード1または割込モード2に設定したい場合には、初期設定処理において、割込モード1または割込モード2に設定するための処理を行う必要がある。
割込モード1:割込が受け付けられると、常に0038(h)番地に飛ぶモードである。
割込モード2:CPU56の特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビット0)から合成されるアドレスが、割込番地を示すモードである。すなわち、割込番地は、上位アドレスが特定レジスタの値とされ下位アドレスが割込ベクタとされた2バイトで示されるアドレスである。従って、任意の(飛び飛びではあるが)偶数番地に割込処理を設置することができる。各内蔵デバイスは割込要求を行うときに割込ベクタを送出する機能を有している。
よって、割込モード2に設定されると、各内蔵デバイスからの割込要求を容易に処理することが可能になり、また、プログラムにおける任意の位置に割込処理を設置することが可能になる。さらに、割込モード1とは異なり、割込発生要因毎のそれぞれの割込処理を用意しておくことも容易である。上述したように、この実施の形態では、初期設定処理のステップS2において、CPU56は割込モード2に設定される。
次いで、CPU56は、入力ポート1を介して入力されるクリアスイッチ921の出力信号の状態を1回だけ確認する(ステップS7)。その確認においてオンを検出した場合には、CPU56は、通常の初期化処理を実行する(ステップS11〜ステップS15)。クリアスイッチ921がオンである場合(押下されている場合)には、ローレベルのクリアスイッチ信号が出力されている。なお、入力ポート1では、クリアスイッチ信号のオン状態はハイレベルである。また、例えば、遊技店員は、クリアスイッチ921をオン状態にしながら遊技機に対する電力供給を開始する(例えば電源スイッチ914をオンする)ことによって、容易に初期化処理を実行させることができる。すなわち、RAMクリア等を行うことができる。
クリアスイッチ921がオンの状態でない場合には、遊技機への電力供給が停止したときにバックアップRAM領域のデータ保護処理(例えばパリティデータの付加等の電力供給停止時処理)が行われたか否か確認する(ステップS8)。この実施の形態では、電力供給の停止が生じた場合には、バックアップRAM領域のデータを保護するための処理が行われている。そのような保護処理が行われていたことを確認した場合には、CPU56はバックアップありと判定する。そのような保護処理が行われていないことを確認した場合には、CPU56は初期化処理を実行する。
バックアップRAM領域にバックアップデータがあるか否かは、電力供給停止時処理においてバックアップRAM領域に設定される電源断判定用カウンタの状態によって確認される。この例では、電源断判定用カウンタのカウント値が「2」であればバックアップありと判定され、「2」以外の値であればバックアップなしと判定される。
バックアップありと判定したら、CPU56は、バックアップRAM領域のデータチェック(この例ではパリティチェック)を行う(ステップS9)。この実施の形態では、クリアデータ(00)をチェックサムデータエリアにセットし、チェックサム算出開始アドレスをポインタにセットする。また、チェックサムの対象となるデータ数に対応するチェックサム算出回数をセットする。そして、チェックサムデータエリアの内容とポインタが指すRAM領域の内容との排他的論理和を演算する。演算結果をチェックサムデータエリアにストアするとともに、ポインタの値を1増やし、チェックサム算出回数の値を1減算する。以上の処理が、チェックサム算出回数の値が0になるまで繰り返される。チェックサム算出回数の値が0になったら、CPU56は、チェックサムデータエリアの内容の各ビットの値を反転し、反転後のデータをチェックサムとする。
電力供給停止時処理において、上記の処理と同様の処理によってチェックサムが算出され、チェックサムはバックアップRAM領域に保存されている。ステップS9では、算出したチェックサムと保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されているはずであるから、チェック結果(比較結果)は正常(一致)になる。チェック結果が正常でないということは、バックアップRAM領域のデータが、電力供給停止時のデータとは異なっていることを意味する。そのような場合には、内部状態を電力供給停止時の状態に戻すことができないので、電力供給の停止からの復旧時でない電源投入時に実行される初期化処理(ステップS10〜S15の処理)を実行する。
チェック結果が正常であれば、CPU56は、遊技制御手段の内部状態と表示制御手段等の電気部品制御手段の制御状態を電力供給停止時の状態に戻すための遊技状態復旧処理を行う。具体的には、ROM54に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し(ステップS81)、バックアップ時設定テーブルの内容を順次作業領域(RAM55内の領域)に設定する(ステップS82)。作業領域はバックアップ電源によって電源バックアップされている。バックアップ時設定テーブルには、作業領域のうち初期化してもよい領域についての初期化データが設定されている。ステップS81およびS82の処理によって、作業領域のうち初期化してはならない部分については、保存されていた内容がそのまま残る。初期化してはならない部分とは、例えば、電力供給停止前の遊技状態を示すデータ(特別図柄プロセスフラグなど)や未払出賞球数を示すデータが設定されている部分である。なお、電源断時判定用カウンタは初期化される。
また、CPU56は、ROM54に格納されているバックアップ時コマンド送信テーブルの先頭アドレスをポインタに設定し(ステップS83)、その内容に従ってサブ基板(払出制御基板37および演出制御基板80)に、電力供給が復旧した旨を示す制御コマンドが送信されるように制御する(ステップS84)。そして、ステップS15に移行する。
初期化処理では、CPU56は、まず、RAMクリア処理を行う(ステップS10)。なお、RAM55の全領域を初期化せず、所定のデータ(例えば大当り判定用乱数を生成するためのカウンタのカウント値のデータ)をそのままにしてもよい。例えば、大当り判定用乱数を生成するためのカウンタのカウント値のデータをそのままにした場合には、不正な手段によって初期化処理が実行される状態になったとしても、大当り判定用乱数を生成するためのカウンタのカウント値が大当り判定値に一致するタイミングを狙うことは困難である。なお、この例では、ステップS10のRAMクリア処理にて、電源断判定用カウンタがクリアされる。
また、ROM54に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し(ステップS11)、初期化時設定テーブルの内容を順次作業領域に設定する(ステップS12)。ステップS11およびS12の処理によって、例えば、普通図柄判定用乱数カウンタ、電源断判定用カウンタ、普通図柄判定用バッファ、特別図柄左中右図柄バッファ、総賞球数格納バッファ、特別図柄プロセスフラグ、賞球中フラグ、球切れフラグ、払出停止フラグなど制御状態に応じて選択的に処理を行うためのフラグに初期値が設定される。なお、電源断判定用カウンタには、カウント値の初期値として0が設定される。
また、CPU56は、CPU56は、ROM54に格納されている初期化時コマンド送信テーブルの先頭アドレスをポインタに設定し(ステップS13)、その内容に従ってサブ基板を初期化するための初期化コマンドをサブ基板に送信する処理を実行する(ステップS14)。初期化コマンドとして、可変表示装置9に表示される初期図柄を示すコマンド等がある。
そして、ステップS15において、CPU56は、例えば2ms毎に定期的にタイマ割込がかかるようにCPU56に内蔵されているCTCのレジスタの設定を行なう。すなわち、初期値として例えば2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。この実施の形態では、2ms毎に定期的にタイマ割込がかかるとする。
初期化処理の実行(ステップS10〜S15)が完了すると、メイン処理で、表示用乱数更新処理(ステップS17)および初期値用乱数更新処理(ステップS18)が繰り返し実行される。CPU56は、表示用乱数更新処理および初期値用乱数更新処理が実行されるときには割込禁止状態にして(ステップS16)、表示用乱数更新処理および初期値用乱数更新処理の実行が終了すると割込許可状態にする(ステップS19)。なお、表示用乱数とは、可変表示装置9に表示される図柄を決定するための乱数であり、表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。また、初期値用乱数更新処理とは、初期値用乱数を発生するためのカウンタのカウント値を更新する処理である。初期値用乱数とは、大当りとするか否かを決定するための乱数を発生するためのカウンタ(大当り決定用乱数発生カウンタ)等のカウント値の初期値を決定するための乱数である。後述する遊技制御処理において、大当り決定用乱数発生カウンタのカウント値が1周すると、そのカウンタに初期値が設定される。
なお、表示用乱数更新処理および初期値用乱数更新処理が実行されるときに割込禁止状態にされるのは、表示用乱数更新処理および初期値用乱数更新処理が後述するタイマ割込処理でも実行されることから、タイマ割込処理における処理と競合してしまうのを避けるためである。すなわち、ステップS17,S18の処理中にタイマ割込が発生してタイマ割込処理中で表示用乱数や初期値用乱数を発生するためのカウンタのカウント値を更新してしまったのでは、カウント値の連続性が損なわれる場合がある。しかし、ステップS17,S18の処理中では割込禁止状態にしておけば、そのような不都合が生ずることはない。
タイマ割込が発生すると、CPU56は、図15に示すステップS20〜S33の遊技制御処理を実行する。遊技制御処理において、CPU56は、まず、電源断信号が出力されたか否か(オン状態になったか否か)を検出する電源断検出処理を実行する(ステップS20)。次いで、スイッチ回路58を介して、ゲートスイッチ32a、始動口スイッチ14a、カウントスイッチ23および入賞口スイッチ29a,30a,33a,39a等のスイッチの検出信号を入力し、それらの状態判定を行う(スイッチ処理:ステップS21)。具体的には、各スイッチの検出信号を入力する入力ポートの状態がオン状態であれば、各スイッチに対応して設けられているスイッチタイマの値を+1する。
次に、遊技制御に用いられる大当り判定用の乱数等の各判定用乱数を生成するための各カウンタのカウント値を更新する処理を行う(ステップS22)。CPU56は、さらに、表示用乱数および初期値用乱数を生成するためのカウンタのカウント値を更新する処理を行う(ステップS23,S24)。
さらに、CPU56は、特別図柄プロセス処理を行う(ステップS25)。特別図柄プロセス制御では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。また、普通図柄プロセス処理を行う(ステップS26)。普通図柄プロセス処理では、普通図柄表示器10の表示状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
次いで、CPU56は、特別図柄に関する演出制御コマンドをRAM55の所定の領域に設定して演出制御コマンドを送出する処理を行う(特別図柄コマンド制御処理:ステップS27)。また、普通図柄に関する演出制御コマンドをRAM55の所定の領域に設定して演出制御コマンドを送出する処理を行う(普通図柄コマンド制御処理:ステップS28)。
さらに、CPU56は、例えばホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う(ステップS29)。
また、CPU56は、入賞口スイッチ29a,30a,33a,39aの検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する(ステップS30)。具体的には、入賞口スイッチ29a,30a,33a,39aがオンしたことにもとづく入賞検出に応じて、払出制御基板37に賞球個数を示す払出個数信号等の払出制御信号を出力する。払出制御基板37に搭載されている払出制御用CPU371は、賞球個数を示す払出個数信号等の払出制御信号に応じて球払出装置97を駆動する。
そして、CPU56は、始動入賞記憶数の増減をチェックする記憶処理を実行する(ステップS31)。また、遊技機の制御状態を遊技機外部で確認できるようにするための試験信号を出力する処理である試験端子処理を実行する(ステップS32)。また、出力ポートの出力状態に対応したRAM領域(出力ポートバッファ)が設けられ、CPU56は、そのRAM領域の内容を出力ポートに出力する(ステップS33:出力処理)。なお、出力ポートバッファの内容は、ステップS25〜S30,S31の処理で更新される。その後、割込許可状態に設定し(ステップS34)、処理を終了する。
以上の制御によって、この実施の形態では、遊技制御処理は定期的(例えば2ms毎)に起動されることになる。なお、この実施の形態では、タイマ割込処理で遊技制御処理が実行されているが、タイマ割込処理では例えば割込が発生したことを示すフラグのセットのみがなされ、遊技制御処理はメイン処理において実行されるようにしてもよい。
この実施の形態で用いられているCPU56は、マスク可能な割込として、INT端子の入力レベルがローレベルに立ち下がったことにもとづく外部割込の他に、CPU56が内蔵するCTCおよびPIOからの割込(内部割込)がある。また、各マスク可能な割込をマスク(割込禁止)するためのマスクレジスタがCPU56に内蔵されている。マスクレジスタにおいて、それぞれの各マスク可能な割込に対応したビットがある。
内部割込のうち使用されているのは2msタイマ割込を発生させるためのCTC3のみである。従って、CPU56は、例えばステップS5において、マスクレジスタにおけるCTC3からの割込以外のマスク可能な割込に対応したビットを、割込禁止状態にする。すなわち、CPU56は、初期設定時に、未使用のマスク可能な割込を無効にするような設定を行う。
さらに、CPU56が実行するプログラムにおいて、ROM54において、マスク不能割込処理のアドレス(具体的には、マスク不能割込処理に対応するアドレスが差す記憶領域)に、図16に示すように、RETN命令(マスク不能割込発生時の実行アドレスにマスク不能割込処理からリターンする命令:マスク不能割込処理からの戻り命令)のみが書き込まれている。従って、本来使用していないマスク不能割込が発生してしまった場合には、直ちにマスク不能割込発生時の実行アドレスにリターンする。マスク不能割込が発生すると、マスク不能割込処理の先頭アドレスとして決められているアドレスからCPU56は命令を実行するのであるが、何らの手当もしておかないと、先頭アドレスおよびそのアドレス以降に正しい命令が書き込まれていないことから、CPU56は暴走し、ついにはハングアップ(停止)してしまう。しかし、この実施の形態では、そのようなことはない。
また、初期設定時にマスクレジスタに対して未使用のマスク可能な割込を無効にするような設定を行うことに代えて、ROM54において、それぞれのマスク可能割込処理のアドレスに、図17に示すように、RETI命令(マスク可能割込発生時の実行アドレスにマスク可能割込処理からリターンする命令:マスク可能割込処理からの戻り命令)のみを書き込んでおくようにしてもよい。そのようにした場合には、未使用のマスク可能割込処理が発生してしまった場合には、直ちにマスク可能割込発生時の実行アドレスにリターンする。従って、マスクレジスタに対して未使用のマスク可能な割込を無効にする設定を行った場合と同様の効果を得ることができる。なお、CPU56が、マスク可能割込が発生すると自動的にマスク不能状態にする場合には、ROM54において、マスク可能割込処理の先頭アドレスから、EI命令(マスク可能状態にする命令)とRETI命令とを書き込んでおく。
図18および図19は、電源断検出処理(ステップS20)を示すフローチャートである。電源断検出処理において、CPU56は、まず、入力ポート572を介して電源断信号がオン状態(入力ポート572の入力では「1」)になっているか否か確認する(ステップS450)。オン状態でなければ、電源断判定用カウンタのカウント値に初期値(本例では0)を設定する(ステップS451)。電源断信号がオン状態であれば、電源断判定用カウンタのカウント値を1加算する(ステップS452)。ステップS452にて加算したことによって電源断判定用カウンタのカウント値が2になっていれば、CPU56は、ステップS454以降の電力供給停止時処理を行う。
電源断判定用カウンタは、所定周期(この例では2ms)で実行される電源断検出処理において、電源断信号のオン状態が連続して検出された回数を計数するためのカウンタである。この例では、電源断判定用カウンタのカウント値が2となっている場合、すなわち電源断信号のオン状態が2ms毎に実行される電源断検出処理において2回連続して検出された場合に、電源断が発生したと判定して電力供給停止時処理を行う。従って、ノイズの発生によって電源断信号が一時的に誤って(電源断が発生していないのに)オン状態となった場合であっても、その電源断信号の誤検出によって電力供給停止時処理が開始されてしまうことは防止される。
電力供給停止時処理において、CPU56は、AFレジスタ(アキュミュレータとフラグのレジスタ)を所定のバックアップRAM領域(具体的にはスタック領域)に退避する(ステップS454)。次いで、割込フラグ(割込許可状態/禁止状態示すCPU56内蔵のフラグ)をパリティフラグにコピーし(ステップS455)、その内容をスタック領域に退避する(ステップS456)。また、BCレジスタ、DEレジスタ、HLレジスタおよびIXレジスタをスタック領域に退避する(ステップS457〜S460)。なお、電源復旧時には、退避された内容にもとづいてレジスタ内容が復帰され、パリティフラグの内容に応じて、割込許可状態/禁止状態の内部設定がなされる。
次いで、CPU56は、払出制御基板37に対して出力していた電源確認信号(電源オン状態であることを示す信号)をオフ状態にする(ステップS461)。次いで、CPU56は、各出力ポートのクリア処理を行う(ステップS462)。各出力ポートがオフ状態になるので、保存される遊技状態と整合しない状況が発生することは確実に防止される。
次いで、CPU56は、電源断判定用カウンタの格納領域がバックアップRAM領域に設けられていなければ、電源断判定用カウンタをバックアップRAM領域に保存する(ステップS471)。なお、電源断判定用カウンタの格納領域がバックアップRAM領域に設けられている場合には、ステップS471の処理を行う必要はない。次いで、パリティデータを作成する(ステップS472〜S480)。すなわち、まず、クリアデータ(00)をチェックサムデータエリアにセットし(ステップS472)、チェックサム算出開始アドレスをポインタにセットする(ステップS473)。また、チェックサム算出回数をセットする(ステップS474)。
そして、チェックサムデータエリアの内容とポインタが指すRAM領域の内容との排他的論理和を演算する(ステップS475)。演算結果をチェックサムデータエリアにストアするとともに(ステップS476)、ポインタの値を1増やし(ステップS477)、チェックサム算出回数の値を1減算する(ステップS478)。ステップS476〜S478の処理が、チェックサム算出回数の値が0になるまで繰り返される(ステップS479)。
チェックサム算出回数の値が0になったら、CPU56は、チェックサムデータエリアの内容の各ビットの値を反転する(ステップS480)。そして、反転後のデータをチェックサムデータエリアにストアする(ステップS481)。このデータが、電源投入時にチェックされるパリティデータとなる。次いで、スタックポインタの内容をバックアップRAM領域に退避した後(ステップS482)、RAMアクセスレジスタにアクセス禁止値を設定する(ステップS483)。以後、内蔵RAM55のアクセスができなくなる。
そして、RAMアクセスレジスタにアクセス禁止値を設定すると、CPU56は、待機状態(ループ状態)に入る。従って、ループ状態では、電源断信号を確認する(ステップS484)。そして、電源断信号がオフ状態になっていたら、制御状態を電力供給停止時処理実行前の状態に戻す。
すなわち、RAMアクセスレジスタにアクセス許可値を設定して内蔵RAM55のアクセスができる状態に戻し(ステップS485)、バックアップRAM領域に退避されているデータにもとづいてスタックポインタの内容を戻し(ステップS486)、電源断判定用カウンタをクリアし(ステップS487)、出力ポートの出力状態を元の状態に戻す(ステップS488)。なお、出力ポートの出力状態に対応したRAM領域が設けられ、CPU56は、出力ポートに信号を出力する際に、そのRAM領域の内容を出力ポートに出力する。また、そのRAM領域はバックアップRAM領域である。従って、CPU56は、ステップS488において、RAM領域の内容を出力ポートに出力することによって出力ポートの出力状態を元の状態に戻すことができる。
また、電源確認信号をオン状態に戻し(ステップS489)、バックアップRAM領域に退避されているデータにもとづいて各レジスタの内容を戻す(ステップS490)。そして、電源断検出処理を終了する。
ステップS484〜S490の処理によって、電源瞬断などの状態が発生して電力供給停止時処理が実行された場合に、電力供給が正常な状態に戻ったときに、遊技制御は元の状態に戻る。従って、電源瞬断などの状態が発生しても、遊技者や遊技店員に対して何らの違和感も与えることなく遊技制御が続行される。
図20は、遊技機への電力供給停止時の電源電圧低下や電源断信号(電力供給停止信号)の様子を示すタイミング図である。遊技機に対する電力供給が停止すると、最も高い直流電源電圧であるVSLの電圧値は徐々に低下する。そして、この例では、+22Vにまで低下すると、電源監視用IC902から電源断信号が出力される(ローレベルになる)。
電源断信号は、反転回路943を経て入力ポート572に導入される(図6参照)。CPU56は、電源断検出処理のステップS450にて、入力ポート572に入力される電源断信号のレベルがハイレベルとなっていることが2回連続して確認されると(2ms毎に実行される遊技制御処理の連続する2回それぞれで実行される電源断検出処理のステップS450にて、それぞれ電源断信号がオンであることが確認されると)、上述した電力供給停止時処理を実行する。
VSLの電圧値がさらに低下して所定値(この例では+9V)にまで低下すると、リセット回路65の出力がローレベルになり、CPU56がシステムリセット状態になる。なお、CPU56は、システムリセット状態とされる前に、電力供給停止時処理を完了している。
VSLの電圧値がさらに低下してVcc(各種回路を駆動するための+5V)を生成することが可能な電圧を下回ると、各基板において各回路が動作できない状態となる。しかし、主基板31では、電力供給停止時処理が実行され、CPU56がシステムリセット状態とされている。
この実施の形態では、電源監視回路920は、遊技機で使用される直流電圧のうちで最も高い電源VSLの電圧を監視して、その電源の電圧が所定値を下回ったら電源断信号を発生する。図20に示すように、電源断信号が出力されるタイミングでは、IC駆動電圧は、まだ各種回路素子を十分駆動できる電圧値になっている。従って、IC駆動電圧で動作する主基板31のCPU56が所定の電力供給停止時処理を行うための動作時間が確保されている。
なお、CPU56が通常の遊技制御を行っているときに、ノイズ等によってNMI端子のレベルがローレベルになりNMIが発生しても(図20においてローレベルで示す。)、NMI処理ではRETN命令が実行されるようになっているので、遊技制御には何の影響も与えられない。
次に、メイン処理におけるスイッチ処理(ステップS21)の具体例を説明する。この実施の形態では、各スイッチの検出信号のオン状態が所定時間継続すると、確かにスイッチがオンしたと判定されスイッチオンに対応した処理が開始される。所定時間を計測するために、スイッチタイマが用いられる。スイッチタイマは、バックアップRAM領域に形成された1バイトのカウンタであり、検出信号がオン状態を示している場合に2ms毎に+1される。図21に示すように、スイッチタイマは検出信号の数nだけ設けられている。また、RAM55において、各スイッチタイマのアドレスは、入力ポートのビット配列順と同じ順序で並んでいる。
図22は、遊技制御処理におけるステップS21のスイッチ処理の処理例を示すフローチャートである。スイッチ処理において、CPU56は、まず、入力ポート0に入力されているデータを入力する(ステップS101)。次いで、処理数として「8」を設定し(ステップS102)、入賞口スイッチ33aのためのスイッチタイマのアドレスをポインタにセットする(ステップS103)。そして、スイッチチェック処理サブルーチンをコールする(ステップS104)。
図23は、スイッチチェック処理サブルーチンを示すフローチャートである。スイッチチェック処理サブルーチンにおいて、CPU56は、ポート入力データ、この場合には入力ポート0からの入力データを「比較値」として設定する(ステップS121)。また、クリアデータ(00)をセットする(ステップS122)。そして、ポインタ(スイッチタイマのアドレスが設定されている)が指すスイッチタイマをロードするとともに(ステップS123)、比較値を右(上位ビットから下位ビットへの方向)にシフトする(ステップS124)。比較値には入力ポート0のデータ設定されている。そして、この場合には、入賞口スイッチ33aの検出信号がキャリーフラグに押し出される。
キャリーフラグの値が「1」であれば(ステップS125)、すなわち入賞口スイッチ33aの検出信号がオン状態であれば、スイッチタイマの値を1加算する(ステップS127)。加算後の値が0でなければ加算値をスイッチタイマに戻す(ステップS128,S129)。加算後の値が0になった場合には加算値をスイッチタイマに戻さない。すなわち、スイッチタイマの値が既に最大値(255)に達している場合には、それよりも値を増やさない。
キャリーフラグの値が「0」であれば、すなわち入賞口スイッチ33aの検出信号がオフ状態であれば、スイッチタイマにクリアデータをセットする(ステップS126)。すなわち、スイッチがオフ状態であれば、スイッチタイマの値が0に戻る。
その後、CPU56は、ポインタ(スイッチタイマのアドレス)を1加算するとともに(ステップS130)、処理数を1減算する(ステップS131)。処理数が0になっていなければステップS122に戻る。そして、ステップS122〜S132の処理が繰り返される。
ステップS122〜S132の処理は、処理数分すなわち8回繰り返され、その間に、入力ポート0の8ビットに入力されるスイッチの検出信号について、順次、オン状態かオフ状態か否かのチェック処理が行われ、オン状態であれば、対応するスイッチタイマの値が1増やされる。
なお、この実施の形態では、遊技制御処理が2ms毎に起動されるので、スイッチ処理も2msに1回実行される。従って、スイッチタイマは、2ms毎に+1される。
次に、主基板31と払出制御基板37との間で送受される払出制御信号について説明する。図24は、遊技制御手段から払出制御手段に対して出力される制御信号および遊技制御手段に払出制御手段から入力される払出制御信号の内容の一例を示す説明図である。この実施の形態では、払出制御等に関する各種の制御を行うために、主基板31と払出制御基板37との間で複数種類の制御信号がやりとりされる。図24に示すように、電源確認信号は、主基板31の立ち上がり時に出力され、払出制御基板37に対して主基板31が立ち上がったことを通知するための信号(主基板31の接続確認信号)である。また、上述したように、電源確認信号は、電源断検出時にオフ状態にされ、払出制御基板37に対して主基板31で電源断検出がなされたことを通知するための信号としても用いられる。
賞球REQ信号は、賞球の払出要求時にローレベル(出力状態=オン状態)になり、払出要求の終了時にハイレベル(停止状態=オフ状態)になる信号(すなわち賞球払出要求のトリガ信号)である。また、賞球REQ信号は、賞球の払い出しを強制的に停止させるときにハイレベル(停止状態)になり、賞球払出の強制停止指示を行う強制停止停止信号としても用いられる。払出個数信号は、払出要求を行う遊技球の個数(1〜15個)を指定するために出力される信号である。
払出BUSY信号(賞球払出中信号)は、主基板31が払出制御基板37での動作状態を確認するために用いられる信号である。なお、各制御信号は、出力状態またはオン状態と停止状態またはオフ状態とが識別可能に構成されていればよく、上記の論理の正負が逆であってもよい。
図25は、図24に示す各制御信号の送受信に用いられる信号線等を示すブロック図である。図25に示すように、電源確認信号、賞球REQ信号、および払出個数信号は、CPU56によって出力回路67を介して出力され、入力回路373Aを介して払出制御用CPU371に入力される。また、払出BUSY信号は、払出制御用CPU371によって出力回路373Bを介して出力され、入力回路68を介してCPU56に入力される。電源確認信号、賞球REQ信号、および払出BUSY信号は、それぞれ1ビットのデータであり、1本の信号線によって送信される。払出個数信号は、1個〜15個を指定するので、4ビットのデータで構成され4本の信号線によって送信される。
図26は、ステップS30の賞球処理の一例を示すフローチャートである。賞球処理において、COU56は、賞球個数加算処理(ステップS201)と賞球制御処理(ステップS202)とを実行する。
賞球個数加算処理では、図27に示す賞球個数テーブルが使用される。賞球個数テーブルは、ROM54に設定されている。賞球個数テーブルの先頭アドレスには処理数(この例では「6」)が設定され、その後に、入賞により賞球を払い出すことになる入賞口の各スイッチについてのスイッチタイマ(図21参照)の下位アドレスと賞球数とが対で順次設定されている。
図28は、賞球個数加算処理を示すフローチャートである。賞球個数加算処理において、CPU56は、賞球個数テーブルの先頭アドレスをポインタにセットする(ステップS211)。そして、ポインタが指すアドレスのデータ(この場合には処理数)をロードする(ステップS212)。次に、スイッチタイマの上位アドレス(8ビット)をチェックポインタにセットする(ステップS213)。なお、全てのスイッチタイマの上位アドレスは同じである。
そして、ポインタの値を1増やし(ステップS214)、チェックポインタにセットされているデータとポインタが指すアドレスのデータ(スイッチタイマの下位アドレス)とにもとづいてスイッチタイマのアドレスを得て、そのアドレスからスイッチタイマの値をロードする(ステップS215)。なお、最初にロードされる値は、入賞口スイッチ33aに対応したスイッチタイマの値である(図27参照)。また、ここで、ポインタの値を+1しておく(ステップS216)。
次に、CPU56は、ロードしたスイッチタイマの値とオン判定値(例えば「2」)とを比較し(ステップS217)、一致していればステップS218に移行し、一致していなければステップS222に移行する。スイッチタイマの値は、ステップS21のスイッチ処理でスイッチがオンしていることが確認されたら+1されている。スイッチ処理は2ms毎に起動されるので、結局、スイッチが4ms継続してオンしていたら、スイッチタイマの値が「2」になる。すなわち、オン判定値が「2」である場合には、スイッチが4ms継続してオンしていたら、スイッチタイマの値がオン判定値に一致する。
ステップS218では、ポインタが指すアドレスのデータ(この場合には賞球数)をロードし、ロードした値を賞球加算値に設定する。また、賞球加算値を、16ビットのRAM領域である総賞球数格納バッファの内容に加算する(ステップS219)。なお、総賞球数格納バッファは、バックアップRAMに形成されている。加算の結果、桁上げが発生した場合には、総賞球数格納バッファの内容を65535(=FFFF(H))に設定する(ステップS220,221)。
ステップS221では処理数を1減らし、処理数が0であれば処理を終了し、処理数が0でなければステップS214に戻る(ステップS223)。
図29は、ステップS201の賞球制御処理を示すフローチャートである。賞球制御処理では、CPU56は、賞球プロセスコードの値に応じて、ステップS231〜S234のいずれかの処理を実行する。
図30は、賞球プロセスコードの値が0の場合に実行される賞球待ち処理1(ステップS231)を示すフローチャートである。CPU56は、賞球待ち処理1において、払出BUSY信号がオン状態になっていないか否か確認する(ステップS241)。この段階では払出BUSY信号はオン状態になっていないはずであるから、払出BUSY信号がオン状態になっている場合には、異常状態コードを出力して処理を終了する。なお、異常状態コードはRAM55に形成される内部フラグである。
払出BUSY信号がオフ状態であれば、賞球REQ信号をオフ状態にするとともに払出個数信号の出力を0クリアする(ステップS243,S244)。なお、ステップS243の処理は、ステップS234の賞球処理3の実行が完了して前回の払出処理が完了した後に賞球REQ信号をオフ状態にするための処理である。また、賞球タイマが0であるか否か確認する(ステップS245)。賞球タイマが0でなければ、賞球タイマの値を1減らして(ステップS246)、処理を終了する。賞球タイマは賞球処理において必要となる時間を計測するためのタイマであるが、この段階で賞球タイマの値が0でないということは、前回の払出処理が完了した後、次に賞球REQ信号をオン状態にするまでの待ち時間(連続して賞球払出が実行される場合に、複数の賞球REQ信号のオン期間の間に間隔を設けるための時間)が終了していないことを意味する。
賞球タイマの値が0であれば、CPU56は、総賞球数格納バッファの内容を確認する(ステップS247)。その値が0であれば処理を終了し、0でなければ、賞球プロセスコードの値を1にした後(ステップS248)、処理を終了する。
図31は、賞球プロセスコードの値が1の場合に実行される賞球送信処理(ステップS232)を示すフローチャートである。CPU56は、賞球送信処理において、総賞球数格納バッファの内容が賞球コマンド最大値(この例では「15」)よりも小さいか否か確認する(ステップS251)。総賞球数格納バッファの内容が賞球コマンド最大値以上であれば、賞球コマンド最大値を賞球個数バッファに設定する(ステップS252)。また、総賞球数格納バッファの内容が賞球コマンド最大値よりも小さい場合には、総賞球数格納バッファの内容を賞球個数バッファに設定する(ステップS253)。
その後、賞球個数バッファに設定された数の払出数を指定する払出個数信号を出力し(ステップS254)、賞球REQをオン状態にし(ステップS255)、賞球プロセスコードの値を2にして(ステップS256)、処理を終了する。
この実施の形態では、賞球コマンド最大値は「15」である。従って、最大で「15」の払出数を指定する払出個数信号が払出制御基板37に送信される。
図32は、賞球プロセスコードの値が2の場合に実行される賞球待ち処理2(ステップS233)を示すフローチャートである。CPU56は、賞球待ち処理2において、賞球REQがオン状態になったことに応じて払出制御手段が出力する(オン状態にする)払出BUSY信号がオン状態になったか否か確認する(ステップS261)。オン状態にならないときには、賞球タイマにBUSY開始判定時間値をセットする(ステップS262)。BUSY開始判定時間値は、遊技制御手段が、その値が示す時間だけ払出BUSY信号のオン状態が継続したら、確かに払出BUSY信号が出力された(オンした)と確認するための値である。
従って、CPU56は、払出BUSY信号がオン状態になったら賞球タイマの値を確認し(ステップS263)、その値が0でなければ賞球タイマの値を1減らして(ステップS264)、処理を終了する。賞球タイマの値が0になったら、確かに払出BUSY信号がオンしたとして、総賞球数格納バッファの内容から、賞球個数バッファの内容(払出制御手段に指令した賞球払出個数)を減算する(ステップS265)。そして、賞球プロセスコードの値を3にして(ステップS266)、処理を終了する。
図33は、賞球プロセスコードの値が3の場合に実行される賞球待ち処理3(ステップS234)を示すフローチャートである。CPU56は、賞球待ち処理4において、払出BUSY信号がオフ状態になったか否か確認する(ステップS271)。オフ状態にならないときには、賞球タイマにBUSY終了判定時間値をセットする(ステップS272)。BUSY終了判定時間値は、遊技制御手段が、その値が示す時間だけ払出BUSY信号のオフ状態が継続したら、確かに払出BUSY信号が出力されなくなった(オフした)と確認するための値である。
従って、CPU56は、払出BUSY信号がオフ状態になったら賞球タイマの値を確認し(ステップS273)、その値が0でなければ賞球タイマの値を1減らして(ステップS274)、処理を終了する。賞球タイマの値が0になったら、確かに払出BUSY信号がオフしたとして、賞球REQ待ち時間を賞球タイマにセットする(ステップS275)。そして、賞球プロセスコードの値を0にして(ステップS276)、処理を終了する。上述したように、賞球REQ待ち時間は、次に賞球REQ信号をオン状態にするまでの待ち時間(連続して賞球払出が実行される場合に、複数の賞球REQ信号のオン期間の間に間隔を設けるための時間)である。
以上の処理によって、遊技制御手段は、払出条件の成立にもとづいて払い出される賞球としての遊技球の総数を特定可能に総賞球数格納バッファに記憶する。総賞球数格納バッファは、遊技機への電力供給が停止した場合に変動データ保存手段としてのバックアップ電源により記憶内容を少なくとも所定期間保存する景品遊技媒体数記憶手段に相当する。また、遊技制御手段は、総賞球数格納バッファに記憶されている賞球数にもとづいて払出制御手段に対して所定数の賞球の払出数を指定する払出指令信号を送信する。ここで、所定数は、総賞球数格納バッファに記憶されている賞球数が15個以上であれば15であり、15個未満であれば、総賞球数格納バッファに記憶されている賞球数である。そして、所定の条件が成立すると総賞球数格納バッファに記憶されている賞球数から払出指令信号で指定した払出数を減算する減算処理を行う。
この実施の形態では、減算処理を実行するための所定の条件は、払出制御手段から指令受付信号を受信したとき、具体的には、払出BUSY信号がオンしたときである。なお、払出BUSY信号がオンしたときには、払出制御手段は、払出指令信号で指令された個数の賞球払出をまだ行っていない。賞球払出が完了したときに総賞球数格納バッファの減算処理を行うように構成すると、賞球払出中に不正に遊技機の電力供給を停止させた後に電力供給を復旧させるような不正行為によって、不正に多数の賞球払出が行われてしまう。例えば、払出指令信号で15個の賞球払出が指令された場合に、10個の賞球払出がなされた時点で、不正に遊技機の電力供給を停止させた後に電力供給を復旧させると、総賞球数格納バッファの内容はなんら減算されていないので、実際には10個の賞球払出はなされているにも関わらず、その10個の賞球払出はなされていないものとして、賞球制御を続行してしまう。
しかし、この実施の形態では、払出BUSY信号がオンしたときに、すなわち、払出制御手段が払出指令信号を受け付けて指令受付信号を送信したときに総賞球数格納バッファの減算処理が実行されるので、上記の不正行為を防止することができる。
なお、この実施の形態では、払出条件の成立にもとづいて払い出される景品遊技媒体の総数を特定可能に記憶する景品遊技媒体数記憶手段として、総数そのものを記憶する総賞球数格納バッファが例示されたが、景品遊技媒体の総数を特定可能に記憶する景品遊技媒体数記憶手段は、各入賞領域への入賞数を記憶したり、賞球数が同じである入賞領域毎の入賞数(例えば6個の賞球数に対応した入賞口14、10個の賞球数に対応した入賞口33,39,29,30、15個の賞球数に対応した大入賞口への入賞数であって、未だ賞球払出が終了していない入賞数)を記憶するものであってもよい。
図34は、払出制御信号の出力の状態の例を示すタイミング図である。ここでは、入賞を検出するスイッチ(例えば、入賞口スイッチ33a,39a,29a,30a、始動口スイッチ14a、カウントスイッチ23)で、6個の入賞が検出されたあと15個の入賞が検出された場合について説明する。上述したように、入賞が検出されると、賞球個数加算処理において、総賞球数格納バッファに入賞に応じた賞球数が加算される。
図34に示すように、6個の入賞が検出されると、CPU56は、総賞球数格納バッファの内容が0でなくなったことにもとづいて、賞球REQ信号を出力状態(オン状態:ローレベル)にするとともに、6個を示す払出個数信号を出力状態にする(ステップS254,S255参照)。払出制御用CPU371は、賞球REQ信号を受信すると、賞球の払出処理中であることを示す払出BUSY信号をオン状態とするとともに、払出モータ289を駆動して払出個数信号が示す5個の賞球の払出処理を実行する。6個分の賞球の払出処理を終了すると、払出制御用CPU371は、払出BUSY信号をオフ状態にする。払出BUSY信号のオン状態からオフ状態への変化は、払出完了信号がオンしたことも示す。CPU56は、払出完了信号にもとづいて6個分の賞球が払い出されたことを確認すると、賞球REQ信号を停止状態(オフ状態:ハイレベル)にするとともに、払出個数信号の出力を停止状態にする(ステップS271,S243,S244参照)。
6個の入賞にもとづく払出処理を終了すると、CPU56は、総賞球数格納バッファの内容が0でないことにもとづいて、賞球REQ信号を出力状態にするとともに、15個を示す払出個数信号を出力状態にする。払出制御用CPU371は、賞球REQ信号を受信すると、賞球の払出処理中であることを示す払出BUSY信号をオン状態とするとともに、払出モータ289を駆動して払出個数信号が示す15個の賞球の払出処理を実行する。15個分の賞球の払出処理を終了すると、払出制御用CPU371は、払出BUSY信号をオフ状態にする。CPU56は、払出完了信号にもとづいて15個分の賞球が払い出されたことを確認すると、賞球REQ信号を停止状態にするとともに、払出個数信号の出力を停止状態にする。
この実施の形態では、図34に示すように、後に発生した15個の入賞にもとづく払出処理は、6個の入賞にもとづく払出処理が終了するまで待たされる。すなわち、連続して複数の入賞が発生した場合には、CPU56は、先の入賞にもとづく賞球の払い出しが払出完了信号によって確認されるまで、後の入賞にもとづく賞球の払出要求の送出を待つ。換言すれば、遊技制御手段における払出指令信号送信手段は、景品遊技媒体数記憶数減算手段による減算処理の後に景品遊技媒体数記憶手段(この例では総賞球数格納バッファ)に未払出の景品遊技媒体数が記憶されていたときには、払出指令信号で指定した払出数の景品遊技媒体の払出処理が終了した後に次の払出指令信号を出力する。
次に、払出制御手段(払出制御用CPU371およびROM,RAM等の周辺回路)の動作を説明する。図35は、払出制御手段における出力ポートの割り当ての例を示す説明図である。図35に示すように、出力ポート0は、ステッピングモータによる発射モータ94に供給される各相の信号と、ステッピングモータによる払出モータ289に供給される各相の信号とを出力するための出力ポートである。また、出力ポート1は、球切れLED52、賞球LED51および払出BUSY信号と、遊技機外部に出力される賞球情報、球貸し情報および遊技機エラー信号を出力するための出力ポートである。
出力ポート2は、7セグメントLEDによるエラー表示LED374の各セグメント出力の出力ポートである。出力ポート3は、カードユニット50へのEXS信号およびPRDY信号を出力するための出力ポートである。
図36は、払出制御手段における入力ポートのビット割り当ての例を示す説明図である。図36に示すように、入力ポート0のビット0〜3には、4ビットの払出個数信号が入力され、ビット4〜7には、それぞれ、電源監視回路920からの電源確認信号(電源断信号)、主基板31からの賞球REQ信号、球切れスイッチ187の検出信号、払出モータ位置センサ295の検出信号が入力される。また、入力ポート1のビット0〜4には、それぞれ、払出カウントスイッチ301の検出信号、エラー解除スイッチ375からの操作信号、単発発射スイッチからの信号、タッチセンサからのタッチセンサ信号、満タンスイッチ48の検出信号が入力される。入力ポート1のビット5〜7には、それぞれ、カードユニット50からのVL信号、BRDY信号、BRQ信号が入力される。
図37は、遊技機の払出制御手段とカードユニット50との間の通信を説明するためのタイミング図である。払出制御手段は、遊技機への電力供給が開始され、払出動作が可能なときにはPRDY信号をオン状態にする。カードユニット50は、電力供給が開始されると、接続信号としてのVL信号をオン状態にする。カードユニット50においてカードが受け付けられ、球貸しスイッチが操作され球貸しスイッチ信号が入力されると、カードユニット50は、払出制御手段にBRDY信号を出力する。すなわち、BRDY信号をオン状態にする。この時点から所定の遅延時間が経過すると、カードユニット50は、払出制御手段にBRQ信号を出力する。すなわち、BRQ信号をオン状態にする。
そして、払出制御手段は、カードユニット50に対するEXS信号をオン状態にし、カードユニット50からのBRQ信号の立ち下がり(オフ)を検出すると、払出モータ289を駆動し、所定個(例えば25個)の貸し球を遊技者に払い出す。そして、払出が完了したら、払出制御手段は、カードユニット50に対するEXS信号を立ち下げる。すなわちEXS信号をオフ状態にする。
次に、払出制御手段の動作について説明する。図38は、払出制御手段が実行するメイン処理を示すフローチャートである。メイン処理では、払出制御用CPU371は、まず、必要な初期設定を行う。すなわち、払出制御用CPU371は、まず、割込禁止に設定する(ステップS701)。次に、割込モードを割込モード2に設定し(ステップS702)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS703)。また、払出制御用CPU371は、内蔵デバイスレジスタの初期化を行い(ステップS704)、CTCおよびPIOの初期化(ステップS705)を行った後に、RAMをアクセス可能状態に設定する(ステップS706)。
この実施の形態では、内蔵CTCのうちの一つのチャネルがタイマモードで使用される。従って、ステップS704の内蔵デバイスレジスタの設定処理およびステップS705の処理において、使用するチャネルをタイマモードに設定するためのレジスタ設定、割込発生を許可するためのレジスタ設定および割込ベクタを設定するためのレジスタ設定が行われる。そして、そのチャネルによる割込がタイマ割込として用いられる。タイマ割込を例えば2ms毎に発生させたい場合は、初期値として2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。
なお、タイマモードに設定されたチャネル(この実施の形態ではチャネル3)に設定される割込ベクタは、タイマ割込処理の先頭アドレスに相当するものである。具体的は、Iレジスタに設定された値と割込ベクタとでタイマ割込処理の先頭アドレスが特定される。タイマ割込処理では、払出制御処理が実行される。
この実施の形態では、払出制御用CPU371でも割込モード2が設定される。従って、内蔵CTCのカウントアップにもとづく割込処理を使用することができる。また、CTCが送出した割込ベクタに応じた割込処理開始アドレスを設定することができる。
CTCのチャネル3(CH3)のカウントアップにもとづく割込は、CPUの内部クロック(システムクロック)をカウントダウンしてレジスタ値が「0」になったら発生する割込であり、タイマ割込として用いられる。具体的には、CPU371の動作クロックを分周したクロックがCTCに与えられ、クロックの入力によってレジスタの値が減算され、レジスタの値が0になるとタイマ割込が発生する。例えば、CH3のレジスタ値はシステムクロックの1/256周期で減算される。分周したクロックにもとづいて減算が行われるので、レジスタの初期値は大きくならない。
次いで、払出制御用CPU371は、通常の初期化処理を実行する(ステップS711〜ステップS713)。初期化処理では、払出制御用CPU371は、まず、RAMクリア処理を行う(ステップS711)。また、RAM領域のフラグやカウンタなどに初期値を設定する。そして、定期的にタイマ割込がかかるように払出制御用CPU371に設けられているCTCのレジスタの設定が行われる(ステップS712)。すなわち、初期値としてタイマ割込発生間隔に相当する値が所定のレジスタ(時間定数レジスタ)に設定される。そして、初期設定処理のステップS701において割込禁止とされているので、初期化処理を終える前に割込が許可される(ステップS713)。その後、ループ処理に入る。
上記のように、この実施の形態では、払出制御用CPU371の内蔵CTCが繰り返しタイマ割込を発生するように設定される。そして、タイマ割込が発生すると、タイマ割込処理において払出制御処理(ステップS750〜S760)が実行される。
払出制御処理において、払出制御用CPU371は、まず、発射モータ94に対する励磁パターンの出力処理(発射モータφ1〜φ4のパターンの出力ポート0への出力)を行う(ステップS750)。なお、ステップS752の発射モータ制御処理において、励磁パターンがRAM領域である励磁パターンバッファに格納され、ステップS750では、払出制御用CPU371は、励磁パターンバッファの内容を出力ポート0の下位4ビットに出力する処理を行う。
次に、払出制御用CPU371は、スイッチ処理を実行する(ステップS751)。スイッチ処理は、遊技制御手段におけるスイッチ処理と同様の処理であり、各スイッチの検出信号を入力する入力ポートの状態がオン状態であれば、各スイッチに対応して設けられているスイッチタイマの値を+1する。
次に、払出制御用CPU371は、発射モータ制御処理を実行する(ステップS752)。発射モータ制御処理では、発射モータφ1〜φ4のパターンを励磁パターンバッファに格納する。また、発射モータ94を不能動化すべきときには、発射モータ94を回転させない発射モータφ1〜φ4のパターンを励磁パターンバッファに格納する。また、払出制御用CPU371は、払出モータ制御処理を実行する(ステップS753)。払出モータ制御処理では、払出モータ289を駆動すべきときには、払出モータφ1〜φ4のパターンを出力ポート0に出力するための処理が行われる。そして、カードユニット50と通信を行うプリペイドカードユニット制御処理を実行する(ステップS754)。
次いで、払出制御用CPU371は、主基板31の遊技制御手段と通信を行う主制御通信処理を実行する(ステップS755)。さらに、カードユニット50からの球貸し要求に応じて貸し球を払い出す制御を行い、また、主基板からの払出個数信号が示す個数の賞球を払い出す制御を行う払出制御処理を実行する(ステップS756)。
そして、払出制御用CPU371は、各種のエラーを検出するエラー処理を実行する(ステップS757)。また、遊技機外部に出力される賞球情報や球貸し情報を出力するための情報出力処理を実行する(ステップS758)。また、エラー処理の結果に応じてエラー表示LED374に所定の表示を行うとともに、賞球LED51および球切れLED52を点灯するための表示制御処理を実行する(ステップS759)。なお、払出制御用CPU371は、表示制御処理において、賞球REQ信号がオン状態であるときに、賞球LED51を点灯するための制御を行う。また、賞球REQ信号がオフ状態になったら、賞球LED51を消灯するための制御を行う。
また、遊技制御手段の場合と同様に、出力ポートの出力状態に対応したRAM領域(出力ポートバッファ)が設けられ、払出制御用CPU371は、出力ポートバッファの内容を出力ポートに出力する。(ステップS760:出力処理)。ただし、出力ポート0の下位4ビット(発射モータφ1〜φ4)については、ステップS750で実行されているので、出力処理においては、出力ポート0の下位4ビットについての出力を行わない。出力ポートバッファは、払出モータ制御処理(ステップS753)、プリペイドカード制御処理(ステップS754)、主制御通信処理(ステップS755)、情報出力処理(ステップS758)および表示制御処理(ステップS759)で更新される。
図40は、ステップS752の発射モータ制御処理を示すフローチャートである。発射モータ制御処理において、払出制御用CPU371は、カードユニット50からのVL信号がオフ状態である場合(プリペイドカード未接続)、主基板31からの電源確認信号がオフ状態である場合(主基板未接続)、または満タンスイッチ48がオン状態である場合(下皿満タン)には、ステップS518に移行する(ステップS511,S512,S513)。プリペイドカード未接続でなく、主基板未接続でなく、下皿満タンでもない場合にはステップS514に移行する。ステップS514では、払出制御用CPU371は、タッチセンサ信号がオン状態になっているか否か確認する。オン状態になっていればステップS515に移行し、オン状態になっていなければステップS518に移行する。
ステップS515では、払出制御用CPU371は、発射モータ励磁パターンカウンタを+1する。そして、ROMに格納されている発射モータ励磁パターンテーブルから、励磁パターンカウンタの値に応じたデータを読み出す(ステップS516)。さらに、読み出したデータを、発射モータ励磁パターンバッファにセットする(ステップS517)。上述したように、発射モータ励磁パターンバッファの内容は、ステップS750において出力ポートに出力される。なお、発射モータ励磁パターンテーブルには、発射モータ94を回転させるための各ステップの励磁パターン(発射モータφ1〜φ4)のデータが順次設定されている。
ステップS518では、未回転データ(発射モータ94を回転させないための励磁パターン)を発射モータ励磁パターンバッファにセットする。
以上のように、主基板未接続エラーの通信エラーが発生すると発射モータ94が不能動化されるので、通信エラーが発生しているにも関わらず遊技が進行してしまうことはない。なお、この実施の形態では、主基板未接続エラーの通信エラーが発生した場合に、発射モータ94が不能動化され遊技球の遊技領域7への発射ができない状態になるが、不正なタイミングで賞球REQ信号がオンまたはオフした賞球REQ信号エラーが発生した場合にも、発射モータ94を不能動化するようにしてもよい。
図41は、ステップS753の払出モータ制御処理を示すフローチャートである。払出モータ制御処理において、払出制御用CPU371は、払出モータ制御コードの値に応じて、ステップS521〜S526のいずれかの処理を実行する。
払出モータ制御コードの値が0の場合に実行される払出モータ通常処理(ステップS521)では、払出制御用CPU371は、ポインタを、ROMに格納されているテーブルの先頭アドレスにセットする。払出モータ通常処理設定テーブルには、球払出時の払出モータ289を回転させるための各ステップの励磁パターン(払出モータφ1〜φ4)のデータが順次設定されている払出モータ励磁パターンテーブルが格納されている。
払出モータ制御コードの値が1の場合に実行される払出モータ起動準備処理(ステップS522)では、払出制御用CPU371は、出力ポート0の出力状態に対応した出力ポートバッファのビット4〜7に励磁パターンの初期値を設定する等の処理を行う。
払出モータ制御コードの値が2の場合に実行される払出モータスローアップ処理(ステップS523)では、払出制御用CPU371は、払出モータ289を滑らかに回転開始させるために、定速処理の場合よりも長い間隔で、かつ、徐々に定速処理の場合の時間間隔に近づくような時間間隔で、払出モータ励磁パターンテーブルの内容を読み出して出力ポート0の出力状態に対応した出力ポートバッファのビット4〜7に設定する。読み出しに際して、ポインタが指すアドレスの払出モータ励磁パターンテーブルの内容を読み出すとともに、ポインタの値を+1する。
払出モータ制御コードの値が3の場合に実行される払出モータ定速処理(ステップS524)では、払出制御用CPU371は、定期的に払出モータ励磁パターンテーブルの内容を読み出して出力ポート0の出力状態に対応した出力ポートバッファのビット4〜7に設定する。
払出モータ制御コードの値が4の場合に実行される払出モータブレーキ処理(ステップS525)では、払出制御用CPU371は、払出モータ289を滑らかに停止させるために、定速処理の場合よりも長い間隔で、かつ、徐々に定速処理の場合の時間間隔から遠ざかるような時間間隔で、払出モータ励磁パターンテーブルの内容を読み出して出力ポート0の出力状態に対応した出力ポートバッファのビット4〜7に設定する。
払出モータ制御コードの値が5の場合に実行される球噛み時払出モータブレーキ処理(ステップS526)では、払出制御用CPU371は、球噛みを解除するための回転の場合に、払出モータ289を滑らかに停止させるために、球噛みを解除するための払出モータ289の回転の場合よりも長い間隔で、かつ、徐々に定速処理の場合の時間間隔から遠ざかるような時間間隔で、払出モータ励磁パターンテーブルの内容を読み出して出力ポート0の出力状態に対応した出力ポートバッファのビット4〜7に設定する。
図42は、ステップS755の主制御通信処理を示すフローチャートである。主制御通信処理では、払出制御用CPU371は、主制御通信制御コードの値に応じて、ステップS531〜S533のいずれかの処理を実行する。
図43は、主制御通信制御コードの値が0の場合に実行される主制御通信通常処理(ステップS531)を示すフローチャートである。主制御通信通常処理において、払出制御用CPU371は、エラービットがオンしている場合には、以降の処理を実行せずに処理を終了する(ステップS541)。エラービットとは、各種のエラーが発生したことが検出されたときにセットされるエラーフラグにおけるビットである。ステップS541では、エラーフラグ中のビットが1つでもセットされていたら、エラービットがセットされていると判断する。
また、払出制御用CPU371は、BRDY信号がオン状態であれば、以降の処理を実行せずに処理を終了する(ステップS542)。BRDY信号がオン状態であるということは、カードユニット50から球貸し要求が発生していることを意味する。すなわち、球貸し要求が発生しているときには、主基板31の遊技制御手段との通信(賞球払出に関する通信)が進行しない。さらに、球払出動作中である場合すなわち後述する球貸し動作中フラグがセットされている場合にも、以降の処理を実行せずに処理を終了する(ステップS543)。従って、球払出動作中である場合にも、主基板31の遊技制御手段との通信(賞球払出に関する通信)が進行しない。また、主基板31からの電源確認信号がオフ状態である場合には、以降の処理を実行せずに処理を終了する(ステップS544)。
ステップS541〜S543の条件が成立せず、電源確認信号がオン状態である場合には、払出制御用CPU371は、賞球REQ信号がオン状態になっているか否か確認する(ステップS545)。オン状態になっている場合には、払出個数信号が示す賞球数を未払出個数カウンタにセットし(ステップS546)、払出BUSY信号をオン状態にするための処理を行う(ステップS547)。具体的には、出力ポート1の出力状態に対応した出力ポートバッファにおける払出BUSY信号に対応したビットをオン状態に設定する。そして、主制御通信制御コードの値を1にして(ステップS548)、処理を終了する。なお、未払出個数カウンタは、揮発性(電源バックアップされない)のRAM領域に形成されている。
図44は、主制御通信制御コードの値が1の場合に実行される主制御通信中処理(ステップS532)を示すフローチャートである。主制御通信中処理において、払出制御用CPU371は、賞球REQ信号がオフ状態になっていたら(ステップS551)、エラーフラグのうち賞球REQ信号エラービットをセットする(ステップS552)。この段階で、直ちに賞球REQ信号がオフ状態になってしまうのはおかしいからである。
次いで、払出制御用CPU371は、払出BUSY信号をオフ状態にするための処理を行う(ステップS547)。具体的には、出力ポート1の出力状態に対応した出力ポートバッファにおける払出BUSY信号に対応したビットをオフ状態に設定する。また、主制御通信制御タイマに賞球REQ信号オフ監視時間をセットする(ステップS554)。主制御通信制御タイマは、主基板31の遊技制御手段との通信に関わる時間の監視等に使用されるタイマであるが、この段階では、賞球REQ信号がオフするのを監視するための賞球REQ信号オフ監視時間がセットされる。そして、主制御通信制御コードの値を2にして(ステップS555)、処理を終了する。
図45は、主制御通信制御コードの値が2の場合に実行される主制御通信終了処理(ステップS533)を示すフローチャートである。主制御通信中処理において、払出制御用CPU371は、賞球REQ信号がオフ状態になったか否かを確認する(ステップS561)。オフ状態になったらステップS565に移行する。オフ状態になっていない場合には、主制御通信制御タイマの値を−1する(ステップS562)。そして、主制御通信制御タイマの値が0になっていたら(ステップS563)、賞球REQ信号がオフしなかったとして、エラーフラグのうち賞球REQ信号エラービットをセットし(ステップS564)、ステップS565に移行する。
ステップS565では、主制御通信制御コードの値を0にして(ステップS565)、処理を終了する。
図46は、ステップS756の払出制御処理を示すフローチャートである。払出制御処理において、払出制御用CPU371は、払出カウントスイッチ301の検出信号がオン状態になったことを確認したら、未払出個数カウンタの値を1減らす。その後、払出制御コードの値に応じてステップS610〜S612のいずれかの処理を実行する。
図47は、払出制御コードが0の場合に実行される払出開始待ち処理(ステップS610)を示すフローチャートである。払出開始待ち処理において、払出制御用CPU371は、エラービットがセットされていたら、以降の処理を実行しない(ステップS621)。また、BRDY信号がオン状態でなければ、ステップS631以降の賞球払出のための処理を実行する。BRDY信号がオン状態であって、さらに、球貸し要求信号であるBRQ信号がオン状態になっていたら球貸し動作中フラグをセットする(ステップS623,S624)。そして、未払出個数カウンタに「25」をセットし(ステップS625)、払出モータ回転回数バッファに未払出個数カウンタに「25」をセットする(ステップS626)。
払出モータ回転回数バッファは、払出モータ制御処理(ステップS723)において参照される。すなわち、払出モータ制御処理では、払出モータ回転回数バッファにセットされた値に対応した回転数分だけ払出モータ289を回転させる制御が実行される。
その後、払出制御用CPU371は、払出モータ制御処理で実行される処理を選択するための払出モータ制御コードに、払出モータ起動準備処理(ステップS522)に応じた値(具体的は「1」)をセットし(ステップS634)、払出制御コードの値を1にして(ステップS635)、処理を終了する。
ステップS631では、払出制御用CPU371は、未払出個数カウンタの値が0であるか否かを確認する(ステップS631)。0であれば処理を終了する。未払出個数カウンタには、主制御通信通常処理におけるステップS546において、すなわち、主基板31の遊技制御手段から賞球REQ信号を受けたときに、0でない値(払出個数信号が示す数)がセットされている。従って、未払出個数カウンタの値が0でない場合には、賞球動作中フラグをセットし(ステップS632)、払出モータ回転回数バッファに未払出個数カウンタの値をセットする(ステップS633)。そして、ステップS634に移行する。
図48は、払出制御コードが1の場合に実行される払出モータ停止待ち処理(ステップS611)を示すフローチャートである。払出モータ停止待ち処理において、払出制御用CPU371は、払出動作が終了したか否か確認する(ステップS641)。払出制御用CPU371は、例えば、払出モータ制御処理における払出モータブレーキ処理(ステップS525)が終了するときにその旨のフラグをセットし、ステップS641においてそのフラグを確認することによって払出動作が終了したか否かを確認することができる。
払出動作が終了した場合には、払出制御用CPU371は、払出制御監視タイマに払出通過監視時間をセットする(ステップS642)。払出通過監視時間は、最後の払出球が払出モータ289によって払い出されてから払出カウントスイッチ301を通過するまでの時間に、余裕を持たせた時間である。そして、払出制御コードの値を2にして(ステップS643)、処理を終了する。
図49は、払出制御コードの値が2の場合に実行される払出通過待ち処理(ステップS612)を示すフローチャートである。払出通過待ち処理において、払出制御用CPU371は、まず、払出制御タイマの値を−1する(ステップS651)。そして、払出制御タイマの値を確認し、その値が0になっていなければ、すなわち払出制御タイマがタイムアウトしていなければ処理を終了する。
払出制御タイマがタイムアウトしていれば、未払出個数カウンタの値を確認する(ステップS653)。払出動作が正常に実行されれば、払出制御タイマがタイムアウトする前に、払出モータ289によって払い出された遊技球は全て払出カウントスイッチ301を通過し、ステップS601,S602の処理によって未払出個数カウンタの値は0になっている。未払出個数カウンタの値が正の値を示している場合には、実際に払い出された遊技球が払出予定数よりも少ない(払出不足)ことを意味する。また、未払出個数カウンタの値が負の値を示している場合には、実際に払い出された遊技球が払出予定数よりも多い(払出過多)ことを意味する。
払出制御用CPU371は、未払出個数カウンタの値が正の値になっていない場合(払出不足でない場合)には、払出処理中であることを示す内部状態を、そうでない状態に変更する。具体的には、球貸し動作を実行中であったときには、すなわち、球貸し動作中フラグがセットされている場合には、球貸し動作中フラグをリセットする(ステップS654,S655)。また、賞球動作を実行中であったときには、すなわち、賞球動作中フラグがセットされている場合には、賞球動作中フラグをリセットする(ステップS654,S656)。その後、再払出動作カウンタをクリアし(ステップS667)、払出制御コードの値を0にして(ステップS658)、処理を終了する。なお、払出動作が正常に実行された場合にはステップS657の処理は不要であるが、後述する補正払出処理が実行された後にはステップS657の処理が必要になる。また、この実施の形態では、払出過多の場合にも払出処理が正常に終了したとみなすが、払出過多の場合には、エラーが生じたとしてその旨を報知するようにしてもよい。
ステップS653で未払出個数カウンタの値が正の値になっていることを確認すると、払出制御用CPU371は、ステップS661〜ステップS666の補正払出処理のための制御を行う。ここでは、払出予定数分の遊技球が払い出されるまで、最大2回の再払出動作を行う。2回の再払出動作を行っても払出予定数分の遊技球が払い出されない場合には、エラービットをセットする。
払出制御用CPU371は、ステップS661において、再払出動作カウンタの値が2になっているか否か確認する。2になっていなければ、払出モータ回転回数バッファに未払出個数カウンタの値をセットし(ステップS662)、払出モータ制御コードに払出モータ起動準備処理に応じた値(「1」)をセットする(ステップS663)。また、再払出動作カウンタの値を+1し(ステップS664)、払出制御コードの値を1にして(ステップS665)、処理を終了する。なお、ステップS662,S663,S665の処理は、払出モータ回転回数バッファにセットされる値が異なるものの、払出開始待ち処理におけるステップS633〜S635の処理と同じである。
ステップS661において、再払出動作カウンタの値が2になっていることを確認したら、払出制御用CPU371は、エラーフラグのうち、払出カウントスイッチ未通過エラービット(払出ケースエラービット)をセットして(ステップS666)、処理を終了する。
従って、この実施の形態では、払出制御手段における景品遊技媒体払出制御手段は、払出検出手段としての払出カウントスイッチ301からの検出信号にもとづいて、揮発性記憶手段(この例では未払出個数カウンタ)に記憶された払出数に満たない景品遊技媒体の払い出しが行われたことを検出したときに、あらかじめ決められた所定回(この例では2回)を限度として、払出手段に不足分の景品遊技媒体の払い出しを行わせる。
なお、遊技制御手段は、払出指令信号の送信に関連して(具体的には払出指令信号の送信に応じた払出BUSY信号のオン)未払出景品遊技媒体数の減算処理(図32のステップS261,S263,S265参照)を行うので、停電等によって不測の電力供給停止が生じても遊技者に与えられる不利益を最小限に止めることができるとともに、不正行為を効果的に防止できる。つまり、未払出景品遊技媒体数が設定されている総賞球数格納バッファは遊技制御手段においてバックアップRAMに形成されているので、遊技機への電力供給が停止しても所定期間(バックアップ電源の持続時間)内ではその内容が保存され、電力供給が復旧したときに、保存されている総賞球数格納バッファの内容にもとづいて、遊技制御手段は、賞球処理を再開することができる。すなわち、保存されていた総賞球数格納バッファの内容が0でなければ払出制御手段に対して払出指令信号を出力することができる。
例えば、未払出景品遊技媒体数の減算処理を、払出完了信号の受信にもとづいて実行すると、払出制御手段が払出指令信号にもとづいて賞球払出を開始後払出完了信号を送信する前に、不正に電力供給停止状態にした後電力供給を復旧させる状態を作成したり、遊技制御手段を不正に一旦リセットするような行為がなされた場合には、減算処理がなされていない未払出景品遊技媒体数にもとづいて二重に賞球払出を実行してしまう。しかし、払出完了信号の受信にもとづいて未払出景品遊技媒体数の減算処理を実行すれば、そのような不正行為がなされても二重に賞球払出を実行してしまうことはない。
以上説明したように、上述した実施の形態では、定期的に繰り返し実行されるタイマ割込処理内の電源断検出処理(ステップS20)にて、電源断信号のオン状態が2回連続して検出されたときに、確かに電源断が発生したものと判定し、電力供給停止時処理(ステップS454以降の処理)を実行する構成としたので、ノイズの発生により誤って遊技状態を保存させるための電力供給停止時処理が実行されることを防止することができ、電力供給停止時処理のノイズに対する信頼性を高めることができる。すなわち、単に電源断信号を監視し、オン状態となったときに電力供給停止時処理を実行する構成とすると、実際には電源断が発生していないにもかかわらず、ノイズの発生による電源断信号のオン状態を誤って検出してしまい、その誤検出により電力供給停止時処理が実行されることになってしまう。上述した実施の形態では、電源断信号のオン状態を1回検出しただけでは電源断が発生したと認識せず、2回連続して検出したときに電源断が発生したと認識するので、ノイズの発生による誤検出を防止することができる。
また、上述したように、電力供給停止時処理を実行するか否かの判定に用いる電源断判定用カウンタを、そのままバックアップRAM領域に保持し、電力供給が開始されたときに保持されている電源断判定用カウンタのカウント値を確認して遊技状態を復旧させるか否か判定する構成としたので、電力供給停止時処理を実行したか否かを確認するためのデータ(例えばバックアップを行ったか否かを示すバックアップ確認用フラグ)を新たに作成する必要をなくすことができ、電力供給停止時処理を迅速に行うことができる。
具体的には、バックアップ確認用フラグを用いる構成とする場合には、電力供給停止時処理を実行するときに、例えば電力供給停止時処理内でバックアップ確認用フラグを新たに生成し、そのバックアップ確認フラグをセット(バックアップ有りを示す状態)する処理を行わなくてはならない。これに対し、上述した実施の形態では、ノイズの発生による誤検出防止のために用いられる電源断判定用カウンタを、バックアップの有無の確認のためにそのまま利用するようにしているため、バックアップ確認フラグの生成や設定などを行う必要がなく、電力供給停止時処理を迅速に行うことができる。
なお、上述した実施の形態では、電源断検出処理にて電源断信号のオン状態が2回連続して検出されたときに電源断が発生したと判定する構成としていたが、3回以上の所定回数連続して検出されたときに電源断が発生したと判定するようにしてもよい。ただし、電源断の発生から、CPU56が動作できる程度の電力が供給されなくなるまでの期間に、電力供給停止時処理を完了させる必要があるため、その期間が確保できる回数が上限の回数となる。
また、上述した実施の形態では、電源断検出処理にて電源断信号のオン状態が検出されなかったときは、電源断判定用カウンタをクリアする(ステップS451)構成としたので、電源断信号のオフ状態を最後に確認したときから、電源断信号のオン状態の連続検出回数の計数を開始することができ、電源監視回路920からの電源断信号を常に同じ条件で監視することができる。
また、上述した実施の形態では、初期化処理にて、RAMクリアとともに電源断判定用カウンタをクリアし、電源断判定用カウンタに初期値を設定する構成としたので、遊技機に電源が投入され初期化処理が実行された場合には、電源断判定用カウンタのカウント値に初期値が設定されている状態で、電源断信号のオン状態の連続検出回数の計数を開始することができ、電源監視回路920からの電源断信号を常に同じ条件で監視することができる。
また、上述した実施の形態では、マスク不能割込が発生したときに遊技制御手段により実行されるが電気部品の制御には未使用であるマスク不能割込処理に対応するプログラムアドレスに、マスク不能割込処理からの戻り命令を設定する構成としたので、本来使用していないマスク不能割込が発生してしまった場合に、直ちにマスク不能割込発生時の実行アドレスにリターンするように制御することができる。従って、本来使用していないマスク不能割込が発生してしまった場合であっても、CPU56が暴走したり、ハングアップしたりしてしまうことを防止することができる。
また、上述した実施の形態では、電力供給停止時処理を実行した後に、電源監視回路920からの検出信号の出力状態を確認する処理を繰り返し実行し、検出信号が停止されたことが確認されたときには、制御処理を実行する状態に戻るように構成されているので、電源瞬断等が生じた場合に、電力供給が復旧すれば自動的に元の制御状態に復帰することができる。
また、上述した実施の形態では、電源監視回路920を主基板31に搭載する構成としたので、電源監視回路920とCPU56とを近くに配置することができ、信号線を短くすることができるので、電源監視回路920からの検出信号にノイズが混入する可能性を低減させることができる。
また、上述した実施の形態では、主基板31にて賞球の未払出数の総数をバックアップRAM領域に記憶し、払出制御基板37では1回分の賞球の払出数をバックアップすることなく記憶する構成としたので、賞球の未払出数を遊技制御手段において一元管理できるとともに、未払出数を確実に管理することができる。その結果、払出制御手段の構成が簡略化され、遊技機のコストが低減する。
さらに、上記の実施の形態では、払出カウントスイッチ301の出力は払出制御基板37のみに入力されている。従って、払出カウントスイッチ301の出力を主基板31と払出制御基板37との双方に供給する場合に比べて、回路構成が簡略化されコストを低減することができる。
また、上記の実施の形態では、払出制御手段が、賞球REQ信号にもとづく払出処理の実行中であることを示す制御信号(払出BUSY信号)を遊技制御手段に対して出力するように構成されているので、払出処理の実行中であることを遊技制御手段に認識させることができる。
また、払出制御手段が、払出個数信号が示す個数の賞球の払出処理が終了したことを示す制御信号としての払出完了信号を遊技制御手段に対して出力しているので、具体的には払出BUSY信号をオフ状態にしているので、払出制御手段の払出処理が終了したことを遊技制御手段が認識することができる。
また、遊技制御手段は、電源監視回路920からの電源断信号の入力に応じて、電源断が発生したことを示す供給停止検出信号としての制御信号(電源確認信号)を出力することができ、電源断が発生したことを払出制御手段に認識させることができる。なお、具体的には、電源確認信号をオフ状態にすることによって供給停止検出信号が出力された状態になる。
また、遊技制御手段は、電力供給開始時に、払出制御手段に対して、遊技機への電力供給が開始したことを示す制御信号(電源確認信号)を出力するように構成されているので、電力供給が開始して遊技制御手段の制御動作が開始したことを払出制御手段に認識させることができる。
なお、上記の実施の形態では、払出制御基板37に設けられているRAMは電源バックアップされていないが、主基板31の場合と同様にRAMの一部または全部が電源バックアップされていてもよい。
また、上記の実施の形態では、CPU56において内蔵RAMが電源バックアップされ、電源断信号にもとづく電力供給停止時処理を実行する場合について説明したが、内蔵RAMが電源バックアップされず電力供給停止時処理を実行しないように構成されている場合にも、ROMにおいて、未使用の割込処理のアドレスにリターン命令のみを書き込んでおくことによって暴走やハングアップを防止することは効果的である。
また、上記の実施の形態では、電源監視回路920が主基板31に搭載されるものとしていたが、電源監視回路920を電源基板910に搭載する構成とし、電源断を検出したときに、電源断信号を主基板31に向けて出力する構成としてもよい。
また、上記の実施の形態では、賞球REQ信号によって払出要求を行い、払出個数信号によって払出数が指定されたが、払出個数信号によって払出要求および払出数の指定を行うように構成してもよい。その場合、払出制御手段は、払出個数信号が出力されているときは、同時に払出要求がなされていると判定すればよい。そのような構成によれば、賞球REQ信号を用いる必要はない。
また、上記の実施の形態では、賞球の払出処理中に払出BUSY信号が出力されたが、貸し球の払出処理中にも払出BUSY信号を出力するようにしてもよい。そのように構成すれば、遊技制御手段が球貸し処理中であることを認識することができる。従って、遊技制御手段は、払出BUSY信号のオン状態にもとづいて、球貸し処理が所定期間以上継続して実行されていると認識したような場合に、エラーが発生したと判定することができる。
また、上記の実施の形態では、払出制御手段は、払出モータ289が払出予定数分回転したことを検出したら賞球払出の終了と決定したが、払出モータ位置センサによる検出回数が払出予定数に達したら賞球払出の終了と決定してもよい。すなわち、払出制御手段は、払出手段の動作量(この例では、払出モータ289の回転量または払出モータ位置センサによる検出回数)を検出することによって払い出しが完了したか否かを判定するように構成されていてもよい。
さらに、上記の実施の形態では、払出制御手段は、払出カウントスイッチ301の検出信号にもとづいて払出が完了したか否かを確認したが、払出モータ位置センサの出力信号にもとづいて払出が完了したか否かを確認するようにしてもよい。
また、払出制御手段が、払出手段の駆動部(例えば払出モータ289、カム等)の動作量を検出し、その検出にもとづいて払い出しに関わる異常(払出ユニットエラー)が発生したか否かを判定するように構成されていてもよい。そのように構成すれば、払い出しに関わる異常を確実に検出することができる。
また、上記の実施の形態では、球払出装置97は球貸しも賞球払出も実行可能な構成であったが、球貸しを行う機構と賞球払出を行う機構とが独立していても本発明を適用することができる。
上記の各実施の形態のパチンコ遊技機は、主として、始動入賞にもとづいて可変表示部9に可変表示される特別図柄の停止図柄が所定の図柄の組み合わせになると所定の遊技価値が遊技者に付与可能になる第1種パチンコ遊技機であったが、始動入賞にもとづいて開放する電動役物の所定領域への入賞があると所定の遊技価値が遊技者に付与可能になる第2種パチンコ遊技機や、始動入賞にもとづいて可変表示される図柄の停止図柄が所定の図柄の組み合わせになると開放する所定の電動役物への入賞があると所定の権利が発生または継続する第3種パチンコ遊技機であっても、本発明を適用できる。
さらに、遊技媒体が遊技球であるパチンコ遊技機に限られず、スロット機等においても、遊技媒体の払い出しを行う電気部品が備えられている場合には本発明を適用することができる。