以下、図面を参照しつつ、本発明の一実施形態を詳細に説明する。
図1は、本実施例におけるパチンコ遊技機の正面図であり、主要部材の配置レイアウトを示す。本実施例におけるパチンコ遊技機としては、プリペイドカードによって球貸を行うカードリーダ(CR:Card Reader)式のパチンコ遊技機であるが、例えば、一般電役機やパチコンと呼ばれる確率設定機能付き弾球遊技機等であっても構わない。さらには、プリペイドカードによって球貸しを行うCR式パチンコ遊技機だけではなく、現金によって球貸を行うパチンコ遊技機にも適用可能である。
パチンコ遊技機(遊技機)1は、大別して、遊技盤面を構成する遊技盤(ゲージ盤)2と、遊技盤2を支持固定する遊技機用枠(台枠)3と、から構成されている。
遊技盤2には、ガイドレールによって囲まれた、ほぼ円形状の遊技領域が形成されている。遊技領域のほぼ中央位置には、可変表示装置4が設けられている。可変表示装置4の側部には、通過ゲート5が設けられている。可変表示装置4の下側には、普通可変入賞球装置(始動入賞口)6が配置されている。普通可変入賞球装置6の下側には、特別可変入賞球装置(大入賞口)7が配置されている。また、可変表示装置4の上部には、普通図柄表示器40が設けられている。
可変表示装置4は、複数の変動表示部により識別情報としての図柄を変動表示するLCD(Liquid Crystal Display)モジュール等を備えて構成され、例えば、普通可変入賞球装置6に遊技球が入賞することが実行条件となる特図ゲームにおいて、数字、文字、図柄等から構成される3つの表示図柄(特別図柄)の変動表示を開始し、一定時間が経過すると、左、右、中の順で表示図柄を確定する。可変表示装置4には、普通可変入賞球装置6に入った有効入賞球数すなわち始動記憶数を表示する4つの始動記憶表示エリアが設けられていてもよい。
通過ゲート5は、通過した打球を球出口を経て普通可変表示装置6の方に導くものである。通過ゲート5と球出口との間の通路には、通過ゲート5を通過した打球を検出するゲートスイッチ21(図5)が設けられている。
普通図柄表示器40は、発光ダイオード(LED)等を備えて構成され、通過ゲート5のいずれかを遊技球が通過することを始動条件とする普通図ゲームにおいて、点灯、点滅、発光色などが制御される。この普通図ゲームにおいて所定の当りパターンで表示が行われると、普通図ゲームにおける表示結果が「当り」となり、普通可変入賞球装置6を構成する電動チューリップの可動翼片を所定時間が経過するまで傾動制御する。
普通可変入賞球装置6は、ソレノイド81(図5)によって垂直(通常開放)位置と傾動(拡大開放)位置との間で可動制御される一対の可動翼片を有するチューリップ型役物(普通電動役物)として構成される。普通可変表示装置6に入った入賞球は、遊技盤2の背面に導かれ、始動口スイッチ22(図5)によって検出される。
特別可変入賞球装置7は、ソレノイド82(図5)によって入賞領域を開成・閉成制御する開閉板を備える。この開閉板は、通常時には閉成し、普通可変入賞球装置6への遊技球の入賞に基づいて、可変表示装置4による特図ゲームが行われた結果、特定遊技状態となった場合に、ソレノイド82によって入賞領域を所定期間(例えば、29秒)あるいは所定個数(例えば、10個)の入賞球が発生するまで開成(開成サイクル)する状態となるように設定され、その開成している間に遊技盤2の表面を落下する遊技球を受け止める。そして、この開成サイクルを最高16回繰り返すことができるようになっている。
開閉板から遊技盤2の背面に導かれた入賞球のうち一方(Vゾーン)に入った入賞球は、V入賞スイッチ23(図5)によって検出される。また、開閉板からの入賞球は、カウントスイッチ24(図5)によって検出される。入賞球の検出に応答し、後述する主基板11と払出制御基板15(図2,図5)とにより、所定数の賞球の払出が行われる。
遊技盤2の遊技領域には、複数の入賞口20a〜20dが設けられている。遊技球のそれぞれの入賞口20a〜20dへの入賞は、対応して設けられている入賞口スイッチ25a〜25d(図5)によって検出される。また、遊技盤2の遊技領域には、上記した構成以外にも、装飾ランプを内蔵した風車やアウト口等が設けられている。
また、遊技領域の外側の左右上部には、効果音を発する2つのスピーカ8L,8Rが設けられている。遊技領域の外周には、点灯又は点滅する遊技効果ランプ9が設けられている。
遊技領域の下部表面には、打球供給皿(上皿)31が設けられている。打球供給皿31の下部には、遊技者が遊技球を発射させるために操作する打球操作ハンドル(操作ノブ)30と、打球供給皿31に収容しきれない遊技球を貯留する余剰球受皿32と、が設けられている。
さらに、図1には、パチンコ遊技機1に隣接して設置され、プリペイドカードが挿入されることによって球貸を可能にするプリペイドカードユニット(以下、カードユニットという)70も示されている。カードユニット70には、使用可能状態であるか否かを示す使用可表示ランプ、カードユニット70がいずれの側のパチンコ遊技機1に対応しているのかを示す連結台方向表示器、カードユニット70内にカードが投入されていることを示すカード投入表示ランプ、記録媒体としてのカードが挿入されるカード挿入口、およびカード挿入口の裏面に設けられているカードリーダライタの機構を点検する場合にカードユニット70を開放するためのカードユニット錠などが設けられている。
図2は、パチンコ遊技機1の背面図である。パチンコ遊技機1の背面上方には、補給球としての遊技球を貯留する貯留タンク41と、貯留タンク41に貯留された遊技球を払出ケース42へ誘導する誘導レール43と、が設けられている。誘導レール43の下流は、カーブ樋を介して2列の球通路44a,44bに連通されている。球通路44a,44bの上流側には、球切スイッチ27が設置されている。球通路44a,44bの下部には、払出装置50(図3)を覆う払出ケース42が固定されている。
球切スイッチ27は、球通路44a,44b内の遊技球の有無を検出するスイッチであって、球切スイッチ27が遊技球を検出しなくなると払出装置50における払出モータ51(図4)の回転を停止して遊技球の払出が不動化される。また、球切スイッチ27は、球通路44a,44bに27〜28個の遊技球が存在することを検出できるような位置に係止片によって係止されている。即ち、球切スイッチ27は、球貸の一単位の最大払出量(この実施の形態では100円:25個)以上が確保されていることが確認できるような位置に設置されている。
また、パチンコ遊技機1の背面下方にて打球供給皿31と余剰球受皿32の間を連通する余剰球通路の側壁には、満タンスイッチ26が設けられている。満タンスイッチ26は、余剰球受皿32の満タンを検出するものである。
賞球又は球貸要求に基づく遊技球が多数払い出されて、打球供給皿31が満杯になり、遊技球が連絡口に到達した後、さらに遊技球が払い出されると、遊技球は、余剰球通路を経て余剰球受皿32へと導かれる。さらに遊技球が払い出されると、感知レバーが満タンスイッチ26を押圧してオンする。この状態では、払出装置50内の払出モータ51の回転が停止して払出装置50の払出動作が停止すると共に発射装置60の駆動も停止する。
図3は、払出ケース42で覆われた払出装置50を示す正面図(図3(a))及び断面図(図3(b))である。図4は、払出装置50の構成例を示す分解斜視図である。この例では、払出ケース42としての3つのケース45a,45b及び45cの内部に払出装置50が形成されている。ケース45a及び45bの上部には、それぞれ球通路44a,44bと連通する穴46a,46bが設けられており、遊技球は、この穴46a,46bから払出装置50へと流入する。
払出装置50は、賞球又は球貸要求に基づく遊技球を払い出すものであり、駆動源となる払出用ステッピングモータ(払出モータ)51を備えている。払出モータ51は、払出制御基板15から送られる駆動信号により、その回転動作が制御される。
また、払出装置50には、払出モータ51の回転軸に嵌合しているギア52と、ギア52と噛み合うギア53と、ギア53の中心軸に嵌合して球載置部を有するカム54と、カム54の下方の球通路55と、が設けられている。穴46a,46bから流入した遊技球は、カム54の球載置部が1/3回転する毎に1個ずつ交互に、球通路55を経て落下する。
払出装置50には、発光素子(LED)と受光素子とから構成される払出モータ位置センサ71が設けられている。払出モータ位置センサ71は、払出モータ51の回転位置を検出するためのセンサであり、払出モータ51が1/3回転する毎にオンし、所定の検出信号を払出制御基板15に送信する。これにより、払出制御基板15の側では、払出モータ51の回転動作量をカウントすることができる。
払出装置50の下方には、例えば近接スイッチによる払出カウントスイッチ72が設けられている。払出カウントスイッチ72は、払出装置50から1個の遊技球が落下する毎にオンして、所定の検出信号を払出制御基板15に送信する。これにより、払出制御基板15の側では、払出装置50から実際に払い出された遊技球の数をカウントすることができる。
発射装置60は、駆動源となる発射用ステッピングモータ(発射モータ)61(図5)を備え、発射モータ61の回転により発射バネを弾性変形させ、発射バネの付勢力を打撃ハンマに伝達して遊技球を打撃することにより、遊技球を遊技領域に向けて発射する。発射バネの弾性力は、操作ノブ30の操作量に従って調整される。すなわち、遊技球は、操作ノブ30の操作量に応じた速度で発射される。また、発射モータ61は、払出制御基板15から送られる発射駆動信号により、回転動作が制御される。
また、パチンコ遊技機1の背面には、電源基板10,主基板11,演出制御基板12,音制御基板13,ランプ制御基板14,払出制御基板15,情報端子基板16及び発射制御基板17といった主要基板がそれぞれ適所に配設されている。
図5は、主基板11と払出制御基板15とを中心としたシステム構成例を示すブロック図である。なお、図5には、電源基板10,演出制御基板12及び発射制御基板17も示されている。
電源基板10は、パチンコ遊技機1内の各回路に所定の電源電圧を供給するものである。
主基板11は、遊技制御用マイクロコンピュータ110,スイッチ回路115やソレノイド回路116等を搭載して構成される。また、主基板11には、演出制御基板12及び払出制御基板15への配線やゲートスイッチ21,始動口スイッチ22,V入賞スイッチ23,カウントスイッチ24,入賞口スイッチ25a〜25d,満タンスイッチ26及び球切スイッチ27からの配線が接続されている。さらに、主基板11には、普通可変入賞球装置6における可動翼片の可動制御や特別可変入賞球装置7における開成・閉成制御を行うためのソレノイド81,82への配線も接続されている。
遊技制御用マイクロコンピュータ110は、例えば1チップマイクロコンピュータであり、ゲーム制御用のプログラム等を記憶するROM(Read Only Memory)111,ワークメモリとして使用されるRAM(Random Access Memory)112,プログラムに従って制御動作を行うCPU(Central Processing Unit)113及びI/O(Input/Output)ポート114を含んでいる。この遊技制御用マイクロコンピュータ110は、特図ゲームにおいて用いる乱数の生成機能や、演出制御基板12及び払出制御基板15に対し、それぞれ指令情報の一例となる制御コマンドを出力して送信する機能等を有するものである。
主基板11から払出制御基板15へ送信される制御コマンドは払出制御コマンドである。この実施の形態において、払出制御コマンドは、払出制御信号CD0〜CD7の8本の信号線で主基板11から払出制御基板15へ送信される。また、主基板11と払出制御基板15との間には、ストローブ信号を送信するための払出制御INT信号の信号線も配線されている。
図6は、この実施の形態で用いられる主基板11から払出制御基板15に対して送出される払出制御コマンドの内容の一例を示す説明図である。図6(a)に示すように、払出制御コマンドは2バイト構成であり、1バイト目はMODE(コマンドの分類)を表し、2バイト目はEXT(コマンドの種類)を表す。MODEデータの先頭ビットは必ず「1」とされ、EXTデータの先頭ビットは「0」とされる。
図6(b)に示す例において、コマンドFF00(h)は、払出可能状態を指定する払出制御コマンドである。払出可能状態指定コマンドは、余剰玉受皿32の満タン状態が解除されて満タンスイッチ26がオフしたとき(満タンフラグがオフしたとき)や球切状態が解除されて球切スイッチ27がオフしたとき(球切スイッチがオフしたとき)等、例えば払出停止状態が解除されて払出が可能となったときに主基板11から送信される。
コマンドFF01(h)は、払出停止状態を指定する払出制御コマンドである。払出停止状態指定コマンドは、余剰玉受皿32が満タンとなり満タンスイッチ26がオンしたとき(満タンフラグがオンしたとき)や球切状態になり球切スイッチ27がオンしたとき(球切フラグがオンしたとき)に主基板11から送信される。コマンドF0XX(h)は、賞球個数を指定する払出制御コマンドであり、このEXTデータは、払出個数を示している。
図7は、遊技制御用マイクロコンピュータ110の構成例の詳細を示すブロック図である。遊技制御用マイクロコンピュータ110は、図7に示すように、スイッチタイマメモリ121と、スイッチオン判定値テーブルメモリ122と、フラグメモリ123と、コマンド送信テーブルメモリ124と、を備えている。
スイッチタイマメモリ121は、各種スイッチから入力される検出信号がオン状態にあるか或いはオフ状態にあるかに応じて、加算又はクリアされるスイッチタイマを複数記憶するものである。この実施の形態においては、図8に示すように、各種スイッチに対応したアドレスにスイッチタイマが、それぞれ設けられている。
図7に示すスイッチオン判定値テーブルメモリ122は、各種スイッチがオンしているか否かを判定するためのスイッチオン判定値を複数記憶するものである。具体的には、各種スイッチから入力される検出信号がオン状態にあると連続して判定される回数がスイッチオン判定値として記憶されている。
この実施の形態においては、図9に示すように、入賞口スイッチ25a〜25d,始動口スイッチ22,カウントスイッチ24,V入賞スイッチ23,ゲートスイッチ21のスイッチオン判定値として「2」が、満タンスイッチ26のスイッチオン判定値として「50」が、球切スイッチ27のスイッチオン判定値として「250」が、それぞれ設定されている。また、スイッチオン判定値テーブルメモリ122には、球切スイッチ27がオフしているか否かを判定するためのスイッチオフ判定値として「30」が設定されている。
図7に示すフラグメモリ123は、パチンコ遊技機1における遊技の進行を制御するために用いられる複数種類のフラグを設定するためのものである。例えば、フラグメモリ123には、特別図柄プロセスフラグ、普通図柄プロセスフラグ、スイッチオンフラグ、満タンフラグ、球切フラグ、払出停止中フラグ及びタイマ割込フラグ等が設けられている。
特別図柄プロセスフラグは、特別図柄プロセス処理(図16のステップS15)において、どの処理を選択・実行すべきかを指示する。普通図柄プロセスフラグは、普通図柄表示器40の表示状態を所定の順序で制御するために、普通図柄プロセス処理(図16のステップS16)において、どの処理を選択・実行すべきかを指示する。
スイッチオンフラグは、スイッチタイマメモリ121に記憶されているタイマ値等に応じて、各々セットあるいはクリアされる複数ビットからなるフラグである。満タンフラグは、スイッチオンフラグのうち、満タンスイッチ26に割り当てられているビットのオン/オフに応じて、セットあるいはクリアされるフラグである。
球切フラグは、スイッチオンフラグのうちの球切スイッチ27に割り当てられているビットのオン/オフに応じて、セットあるいはクリアされるフラグである。払出停止中フラグは、払出停止状態にあるときにオン状態にセットされ、払出可能状態になるとオフされるフラグである。タイマ割込フラグは、所定時間が経過してタイマ割込みが発生するごとにオン状態にセットされる。
コマンド送信テーブルメモリ124には、主基板11からサブ側の各制御基板(演出制御基板12及び払出制御基板15)に出力する各制御コマンドについて、複数のコマンド送信テーブルが設けられている。図10(a)は、コマンド送信テーブルメモリ124の構成例を示す図である。1つのコマンド送信テーブルは3バイトで構成され、1バイト目には、INTデータが設定されている。また、2バイト目のコマンドデータ1には、MODEデータが設定されており、3バイト目のコマンドデータ2には、EXTデータが設定されている。
なお、EXTデータそのものがコマンドデータ2の領域に設定されてもよいが、コマンドデータ2には、EXTデータが格納されているテーブルのアドレスを指定するためのデータが設定されるようにしてもよい。例えば、コマンドデータ2のビット7(ワークエリア参照ビット)が0であれば、コマンドデータ2にEXTデータそのものが設定されていることを示す。そのようなEXTデータはビット7が0であるデータである。この実施の形態では、ワークエリア参照ビットが1であれば、EXTデータとして、送信バッファの内容を使用することを示す。なお、ワークエリア参照ビットが1であれば、他の7ビットが、EXTデータが格納されているテーブルのアドレスを指定するためのオフセットであることを示すように構成することもできる。
図10(b)は、INTデータの構成例を示す図である。INTデータのビット0は、払出制御基板15に払出制御コマンドを送出すべきか否かを示すものである。ビット0が「1」であるならば、払出制御コマンドを送出すべきことを示す。従って、CPU113は、例えば賞球処理(図16のステップS20)において、INTデータに「01(h)」を設定する。また、INTデータのビット1は、演出制御基板12に演出制御コマンドを送出すべきか否かを示すものである。ビット1が「1」であるならば、演出制御コマンドを送出すべきことを示す。従って、CPU113は、例えばコマンド制御処理(図16のステップS17)において、INTデータに「02(h)」を設定する。
また、コマンド送信テーブルメモリ124には、図10(c)に示すように、払出制御コマンドに対して、リングバッファ及び送信バッファが設けられている。賞球処理において、賞球払出条件が成立すると、成立した条件に応じた賞球個数が順次リングバッファに設定される。また、賞球個数に関する払出制御コマンドを送出する際に、リングバッファから1個のデータが送信バッファに転送される。
なお、図10(c)に示す例において、リングバッファは、12個のバッファから構成されており、12個分の払出制御コマンドに相当するデータを格納することができる。リングバッファには、入賞口の数に対応したバッファ数が設けられているため、同時に入賞が発生した場合であっても、それぞれの入賞に基づく払出制御コマンドのデータを格納することができる。
図11及び図12は、I/Oポート114のビット割当を示す説明図である。図11に示すように、入力ポート0のビット0〜7には、それぞれ、入賞口スイッチ25a〜25d,始動口スイッチ22,カウントスイッチ24,V入賞スイッチ23及びゲートスイッチ21の検出信号が入力される。また、入力ポート1のビット0及び1には、それぞれ、満タンスイッチ26,球切スイッチ27の検出信号が入力される。
図12に示すように、出力ポート0からは、払出制御コマンド及び演出制御コマンドのINT信号が、それぞれ払出制御基板15及び演出制御基板12に対して出力される。出力ポート1からは、払出制御コマンドの8ビットデータが払出制御基板15に対して出力され、出力ポート2からは、演出制御コマンドの8ビットデータが演出制御基板12に対して出力される。
なお、その他の出力ポートからは、例えば、各種情報出力用信号が情報端子基板16に対して出力され、また、普通可変入賞球装置6及び特別可変入賞球装置7を開閉するための駆動信号がソレノイド81,82に対してそれぞれ出力される。
図5に示すスイッチ回路115は、ゲートスイッチ21,始動口スイッチ22,V入賞スイッチ23,カウントスイッチ24,入賞口スイッチ25a〜25d,満タンスイッチ26及び球切スイッチ27からの検出信号を取り込んで、遊技制御用マイクロコンピュータ110に伝達するものである。ソレノイド回路116は、遊技制御用マイクロコンピュータ110からの指令に従って各ソレノイド81、82を駆動する。ソレノイド81は、リンク機構を介して普通可変入賞球装置6の可動翼片に連結されている。ソレノイド82は、リンク機構を介して特別可変入賞球装置7の開閉板に連結されている。
図5に示す演出制御基板12は、主基板11から出力される演出制御コマンドに基づいて、演出制御を行うためのものである。演出制御基板12は、主基板11から出力される表示制御コマンドに基づいて、可変表示ゲームに用いられる画像を可変表示装置4上に表示させると共に、普通図柄表示器40の点灯/消灯制御を行う。また、演出制御基板12は、スピーカ8L,8Rによる音声出力動作や遊技効果ランプ9の点灯/消灯動作を制御する。
演出制御基板12は、スピーカ8L,8Rによる音声出力動作を制御するため、音声制御基板13と配線が接続されている。音声制御基板13には、スピーカ8L,8Rを駆動するための駆動回路等が搭載されている。また、演出制御基板12は、遊技効果ランプ9の点灯/消灯動作を制御するため、ランプ制御基板14と配線が接続されている。ランプ制御基板14には、遊技効果ランプ9を駆動するための駆動回路が搭載されている。
払出制御基板15は、賞球や球貸要求に基づく遊技球等の払出制御を行うものである。払出制御基板15は、主基板11及び発射制御基板17と配線接続されている。また、払出制御基板15には、払出モータ位置センサ71及び払出カウントスイッチ72からの検出信号が入力される。さらに、払出制御基板15には、払出モータ51及び発射モータ61への配線が接続されている。
払出制御基板15には、払出制御用マイクロコンピュータ150やスイッチ回路155等が搭載されている。払出制御用マイクロコンピュータ150は、例えば1チップマイクロコンピュータであり、払出制御用のプログラム等を記憶するROM151、ワークメモリとして使用されるRAM152、プログラムに従って払出制御動作を行うCPU153及びI/Oポート154を含んでいる。
図13は、払出制御用マイクロコンピュータ150の構成例の詳細を示すブロック図である。払出制御用マイクロコンピュータ150は、図13に示すように、受信コマンドバッファメモリ161と、スイッチオンカウンタメモリ162と、払出動作量カウンタ163と、賞球総数カウンタ164と、貸球総数カウンタ165と、払出中受信個数カウンタ166と、フラグメモリ167と、を備えている。
受信コマンドバッファメモリ161は、主基板11から受信した払出制御コマンドを格納するための受信コマンドバッファが複数設けられている。図14に示す例では、12個の受信コマンドバッファが設けられており、受信したコマンドを格納する受信コマンドバッファは、コマンド受信個数カウンタで指定される。コマンド受信個数カウンタは、0〜11の範囲の値をとる。各受信コマンドバッファは、例えば1バイトで構成され、複数の受信コマンドバッファをリングバッファとして使用することにより、2バイト構成の払出制御コマンドを6個格納することができる。
図13に示すスイッチオンカウンタメモリ162は、払出モータ位置センサ71及び払出カウントスイッチ72から入力される検出信号がオン状態にあるか或いはオフ状態にあるかに応じて、各々加算又はクリアされる払出モータ位置センサオンカウンタ及び払出カウントスイッチオンカウンタを記憶するものである。この払出モータ位置センサオンカウンタの値及び払出カウントスイッチオンカウンタの値が「2」になると、払出モータ位置センサ71及び払出カウントスイッチ72がオンしていると判定される。
払出動作量カウンタ163は、球貸制御処理(図25のステップS55)や賞球制御処理(図25のステップS56)において設定された遊技球の個数を、払出モータ51が1/3回転する毎に、1ずつ減算して行くダウンカウンタである。カードユニット70から球貸要求の信号を受信すると、この払出動作量カウンタ163には、球貸制御処理において1単位(例えば25個)の貸球の個数が設定される。また、賞球制御処理においては、払出動作量カウンタ163には、賞球総数カウンタ164に記憶されている賞球の個数が設定される。
そして、この払出動作量カウンタ163の値は、払出モータ51が1/3回転したことを払出モータ位置センサ71が検出する毎に、即ち、払出モータ51が1個の遊技球を払い出すための回転動作(払出動作)を実行する毎に、1ずつ減算されて行く。このようにして、払出動作量カウンタ163は、払出モータ51の払出動作量を計数することができる。
賞球総数カウンタ164は、払出装置50から払い出される賞球の総数を記憶するためのものである。主基板11から払出制御コマンドを受信する毎に、この賞球総数カウンタ164の値には、受信した払出制御コマンドにより指定される賞球の個数が加算される。そして、賞球総数カウンタ164の値は、払出カウントスイッチ72が払出装置50から払い出された賞球を検出する毎に、1ずつ減算されて行く。このようにして、賞球総数カウンタ164は、払出装置50から実際に払い出された賞球の個数をカウントして行くことができる。
貸球総数カウンタ165は、払出装置50から払い出される貸球の総数を記憶するためのものである。カードユニット70から球貸要求の信号を受信する毎に、この貸球総数カウンタ165の値には、1単位の貸球の個数が加算される。そして、貸球総数カウンタ165の値は、払出カウントスイッチ72が払出装置50から払い出された貸球を検出する毎に、1ずつ減算されて行く。このようにして、貸球総数カウンタ165は、払出装置50から実際に払い出された貸球の個数をカウントして行くことができる。
払出中受信個数カウンタ166は、賞球の払出中に受信した払出制御コマンドによって指定される遊技球の個数を記憶するためのものである。主基板11から賞球個数を指定する払出制御コマンドを受信する毎に、払出中受信個数カウンタ166の値には、受信した払出制御コマンドにより指定される賞球の個数が加算される。その後、賞球制御処理(図25のステップS56)において、払出動作量カウンタ163には、払出中受信個数カウンタ166の値が、最大払出数(この実施の形態にでは25個)を超えない限度で加算され、払出中受信個数カウンタ166からは、この払出動作量カウンタ163に加算された値が減算される。
フラグメモリ167は、払出装置50の払出動作を制御するために用いられる複数種類のフラグを設定するためのものである。例えば、フラグメモリ167には、払出中受信フラグ、払出停止中フラグ、賞球払出中フラグ、球貸中フラグ及びタイマ割込フラグ等が設けられている。
払出中受信フラグは、賞球の払出中に、賞球個数を指定する払出制御コマンドを受信したときにオン状態にセットされ、払出中受信個数カウンタ166に記憶されている賞球個数が「0」になったことに応じてオフされるフラグである。
払出停止中フラグは、払出停止状態にあるときにオン状態にセットされ、払出可能状態になるとオフされるフラグである。賞球払出中フラグは、払出装置50による賞球の払出動作が実行されているときにオン状態にセットされ、賞球の払出動作を終了するとオフされるフラグである。貸球払出中フラグは、払出装置50による貸球の払出動作が実行されているときにオン状態にセットされ、貸球の払出動作を終了するとオフされるフラグである。タイマ割込フラグは、所定時間が経過してタイマ割込みが発生するごとにオン状態にセットされる。
図5に示すスイッチ回路155は、払出モータ位置センサ71及び払出カウントスイッチ72からの検出信号を取り込んで、払出制御用マイクロコンピュータ150に伝達するものである。
情報端子基板16は、各種遊技関連情報を外部に出力するためのものである。例えば、情報端子基板16には、少なくとも、貯留タンク41に設けられた球切検出スイッチの出力を導入して外部出力するための球切用端子、賞球情報(賞球個数信号)を外部出力するための賞球用端子及び球貸情報(球貸個数信号)を外部出力するための球貸用端子が設けられている。
発射制御基板17は、操作ノブ30の操作量に応じて、発射装置60による発射動作を制御するためのものである。発射制御基板17には、操作ノブ30からの配線が接続されると共に発射モータ61への配線が接続されている。発射制御基板17は、操作ノブ30の操作量に従って発射モータ61の駆動力を調整することにより、この操作量に応じた速度で打球を発射する。
次に、本実施例におけるパチンコ遊技機1の動作(作用)を説明する。図15は、主基板11に搭載された遊技制御用マイクロコンピュータ110が実行する遊技制御メイン処理を示すフローチャートである。主基板11では、電源基板10からの電源電圧が供給されると、遊技制御用マイクロコンピュータ110が起動し、CPU113は、まず、図15のフローチャートに示す遊技制御メイン処理を実行する。遊技制御メイン処理を開始すると、CPU113は、割込禁止に設定した後(ステップS1)、必要な初期設定を行う(ステップS2)。この初期設定では、例えば、RAM112がクリアされる。また、遊技制御用マイクロコンピュータ110に内蔵されたCTC(カウンタ/タイマ回路)のレジスタ設定を行うことにより、定期的(例えば、2ミリ秒ごと)にタイマ割込を発生させる。初期設定が終了すると、割込を許可した後(ステップS3)、ループ処理に入る。
こうした遊技制御メイン処理の実行により、2ミリ秒ごとに繰り返しタイマ割込が発生するように設定され、タイマ割込が発生すると、CPU113は、図16のフローチャートに示す遊技制御割込処理を実行する。
遊技制御割込処理において、CPU113は、図16に示すように、まず、スイッチ回路115を介して、ゲートスイッチ21,始動口スイッチ22,V入賞スイッチ23,カウントスイッチ24,入賞口スイッチ25a〜25d,満タンスイッチ26及び球切スイッチ27の検出信号を入力し、それらの状態を判定するスイッチ処理を行う(ステップS11)。
続いて、CPU113は、所定のエラー処理を実行することにより、パチンコ遊技機1の異常診断を行い、その診断結果に応じて必要ならば警告を発生可能とする(ステップS12)。この後、CPU113は、遊技制御に用いられる大当り判定用の乱数等の各判定用乱数を更新する判定用乱数更新処理(ステップS13)と、表示用乱数を更新する表示用乱数更新処理(ステップS14)と、を順次実行する。
次に、CPU113は、特別図柄プロセス処理を実行する(ステップS15)。特別図柄プロセス処理では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するために、特別図柄プロセスフラグに従って該当する処理が選択されて実行される。特別図柄プロセス処理に続いて、CPU113は、普通図柄プロセス処理を実行する(ステップS16)。普通図柄プロセス処理では、普通図柄表示器40を所定の順序で制御するために、普通図柄プロセスフラグに従って該当する処理が選択されて実行される。
さらに、CPU113は、所定のコマンド制御処理を実行することにより、主基板11から演出制御基板12等のサブ側の制御基板に対して制御コマンドを送出し、遊技状態に合わせた演出動作等の動作制御を指示する(ステップS17)。また、CPU113は、例えばホール管理用コンピュータに供給される大当り情報、始動情報及び確率変動情報などのデータを出力する情報出力処理を行う(ステップS18)。続いて、CPU113は、所定のソレノイド出力処理を実行することにより、所定の条件が成立したときに普通可変入賞球装置6における可動翼片の可動制御や特別可変入賞球装置7における開閉板の開閉駆動を行う(ステップS19)。
この後、CPU113は、所定の賞球処理を実行することにより、入賞口スイッチ25a〜25d,カウントスイッチ24及び始動口スイッチ22から入力された検出信号に基づく賞球数の設定などを行い、払出制御基板15に対して払出制御コマンドを出力可能とする(ステップS20)。具体的には、入賞口スイッチ25a〜25d,カウントスイッチ24及び始動口スイッチ22がオンしたことにもとづく入賞検出に応じて、払出制御基板15に賞球個数を示す払出制御コマンドF0XX(h)を出力する。払出制御基板15のCPU153は、払出制御コマンドF0XX(h)に応じて払出装置50を駆動する。
図17は、ステップS11にて実行されるスイッチ処理の詳細を示すフローチャートである。スイッチ処理において、CPU113は、図17に示すように、まず、入力ポート0に入力されているデータを受信する(ステップS101)。次に、CPU113は、処理数として「8」を設定し(ステップS102)、入賞口スイッチ25aのスイッチタイマのアドレス「0」をポインタにセットする(ステップS103)。この後、CPU113は、スイッチチェック処理サブルーチンをコールしてスイッチチェック処理を実行する(ステップS104)。
図18は、スイッチチェック処理の詳細を示すフローチャートである。このスイッチチェック処理において、CPU113は、図18に示すように、まず、入力ポート0から入力されているデータを比較値として設定する(ステップS201)。また、クリアデータ(00)をセットする(ステップS202)。そして、CPU113は、スイッチタイマメモリ121からポインタが示すスイッチタイマの値をロードすると共に(ステップS203)、比較値を右(上位ビットから下位ビットへの方向)へシフトする(ステップS204)。これにより、入力データは、キャリーフラグによって押し出される。
そして、CPU113は、キャリーフラグをチェックして、その値が「0」であるか「1」であるかを判別する(ステップS205)。キャリーフラグの値が「0」の場合(ステップS205;Yes)、CPU113は、検出信号がオフ状態であると判別し、スイッチタイマにクリアデータをセットしてその値を0に戻す(ステップS206)。
一方、キャリーフラグの値が「1」の場合(ステップS205;No)、CPU113は、検出信号がオン状態であると判別し、スイッチタイマの値を1加算する(ステップS207)。CPU113は、加算後の値が「0」であるか否かを判別し(ステップS208)、加算後の値が「0」でないと判別した場合には(ステップS208;No)、加算値をスイッチタイマに戻す(ステップS209)。
一方、加算後の値が0であると判別した場合には(ステップS208;Yes)、加算値をスイッチタイマに戻さない。即ち、スイッチタイマの値が最大値(255)に達している場合には、これ以上値を加算しない。
その後、CPU113は、ポインタ(スイッチタイマのアドレス)を1加算するとともに(ステップS210)、処理数を1減算し(ステップS211)、処理数が「0」になったか否かを判別する(ステップS212)。処理数が「0」になっていないと判別した場合(ステップS212;No)、CPU113は、ステップS202の処理に戻り、再度ステップS202〜S212の処理を実行する。
一方、処理数が「0」になったと判別した場合(ステップS212;Yes)、CPU113は、このスイッチチェック処理を終了する。
ステップS104のスイッチチェック処理において、処理数が「0」になるまで、ステップS202〜S212の処理を繰り返し実行することにより、CPU113は、入賞口スイッチ25a〜25d,始動口スイッチ22,カウントスイッチ24,V入賞スイッチ23及びゲートスイッチ21について、その検出信号がオン状態にあるか否かにあるかを順次判別することができる。そして、検出信号がオン状態にあると判別されたスイッチでは、対応するスイッチタイマ値が1加算される。
続いて、CPU113は、入力ポート1に入力されているデータを受信する(図17のステップS105)。次に、CPU113は、処理数として「2」を設定し(ステップS106)、満タンスイッチ26のスイッチタイマのアドレス「8」をポインタにセットする(ステップS107)。そして、CPU113は、スイッチチェック処理サブルーチンをコールしてスイッチチェック処理を実行する(ステップS108)。
ステップS108のスイッチチェック処理において、処理数が「0」になるまで、ステップS202〜S212の処理を繰り返し実行することにより、CPU113は、満タンスイッチ26及び球切スイッチ27からの検出信号がオン状態にあるか否かを順次判別することができる。そして、検出信号がオン状態にあると判別されたスイッチでは、対応するスイッチタイマ値が1加算される。
なお、この実施の形態では、遊技制御割込処理が2ミリ秒毎に起動されるので、スイッチ処理も2ミリ秒に1回の割合で実行される。従って、スイッチタイマの値は、2ミリ秒毎に1ずつ加算されて行く。
図19,図20及び図21は、ステップS20にて実行される賞球処理の詳細を示すフローチャートである。この賞球処理において、CPU113は、図19に示すように、まず、スイッチオン判別値テーブルのオフセットとして「1」を設定し(ステップS111)、スイッチタイマのアドレスのオフセットとして「8」を設定する(ステップS112)。スイッチオン判別値テーブルのオフセット「1」は、スイッチオン判別値テーブルの2番目のデータ「50」を使用することを意味する。また、スイッチタイマのアドレスのオフセット「8」は、満タンスイッチ26に対応したスイッチタイマが指定されることを意味する。
そして、CPU113は、スイッチチェックオン処理サブルーチンをコールしてスイッチオンチェック処理を実行する(ステップS113)。ステップS113のスイッチオンチェック処理においては、満タンスイッチ26に対応するスイッチタイマの値が満タンスイッチオン判別値「50」に一致していれば、フラグメモリ123に設けられたスイッチオンフラグがオンにセットされる。
CPU113は、このスイッチオンフラグをチェックして、満タンスイッチ26がオンしているか否かを判別する(ステップS114)。満タンスイッチ26がオンしていると判別した場合(ステップS114;Yes)、CPU113は、フラグメモリ123に設けられた満タンフラグをオンにセットする(ステップS115)。なお、この満タンフラグは、満タンスイッチ26に対応したスイッチタイマの値が「0」になるとリセットされてオフになる。
一方、満タンスイッチ26がオンしていないと判別した場合(ステップS114;No)、CPU113は、ステップS115の処理をスキップする。
続いて、CPU113は、スイッチオン判別値テーブルのオフセットとして「2」を設定し(ステップS116)、スイッチタイマのアドレスのオフセットとして「0A(h)」を設定する(ステップS117)。スイッチオン判別値テーブルのオフセット「2」は、スイッチオン判別値テーブルの3番目のデータ「250」を使用することを意味する。スイッチタイマのアドレスのオフセット「9」は球切スイッチ27に対応したスイッチタイマが指定されることを意味する。
そして、CPU113は、スイッチチェックオン処理サブルーチンをコールしてスイッチオンチェック処理を実行する(ステップS118)。ステップS118のスイッチオンチェック処理においては、球切スイッチ27に対応するスイッチタイマの値が球切スイッチオン判別値「250」に一致していれば、フラグメモリ123に設けられたスイッチオンフラグがオンにセットされる。
CPU113は、このスイッチオンフラグをチェックして、球切スイッチ27がオンしているか否かを判別する(ステップS119)。球切スイッチ27がオンしていると判別した場合(ステップS119;Yes)、CPU113は、フラグメモリ123に設けられた球切フラグをオンにセットする(ステップS120)。なお、この球切フラグは、球切スイッチ27に対応したスイッチタイマの値が「30」になるとリセットされてオフになる。
一方、球切スイッチ27がオンしていないと判別した場合(ステップS119;No)、CPU113は、ステップS120の処理をスキップする。
続いて、CPU113は、払出停止中フラグをチェックして、払出停止状態にあるか否かを判別する(ステップS121)。払出停止状態でないと判別した場合には(ステップS121;No)、満タンフラグ又は球切フラグがオン状態になったか否かを判別する(ステップS122)。
満タンフラグ及び球切フラグのうち、少なくともいずれか一方がオン状態になったと判別した場合には(ステップS122;Yes)、フラグメモリ123に設けられた払出停止中フラグをセットしてオンすると共に(ステップS123)、払出停止状態指定コマンドに関するコマンド送信テーブルをセットする(ステップS124)。
そして、CPU113は、コマンドセット処理サブルーチンをコールしてコマンドセット処理を実行する(ステップS125)。ステップS125のコマンドセット処理においては、払出停止状態指定コマンドが格納されているコマンド送信テーブルの先頭アドレスがコマンド送信テーブルのアドレスとして設定される。これにより、主基板11から払出制御基板15に対して払出停止状態指定コマンドが送出される。
一方、満タンフラグ及び球切フラグのいずれもがオフ状態のままである判別した場合には(ステップS122;No)、ステップS123〜S125の処理をスキップする。
また、ステップS121にて払出停止状態である判別した場合には(ステップS121;Yes)、満タンフラグ及び球切フラグが共にオフ状態になったか否かを判別する(ステップS126)。満タンフラグ及び球切フラグが共にオフ状態となったと判別した場合には(ステップS126;Yes)、フラグメモリ123に設けられた払出停止中フラグをリセットしてオフすると共に(ステップS127)、払出可能状態指定コマンドに関するコマンド送信テーブルをセットする(ステップS128)。
そして、CPU113は、コマンドセット処理サブルーチンをコールしてコマンドセット処理を実行する(ステップS129)。ステップS129のコマンド送信処理においては、払出可能状態指定コマンドが格納されているコマンド送信テーブルの先頭アドレスがコマンド送信テーブルのアドレスとして設定される。これにより、主基板11から払出制御基板15に対して払出可能状態指定コマンドが送出される。
一方、ステップS126の処理にて、満タンフラグ及び球切フラグのうち、少なくともいずれか一方がオン状態のままである判別した場合には(ステップS126;No)、ステップS127〜S129の処理をスキップする。
続いて、CPU113は、スイッチオン判別値テーブルのオフセットとして「0」を設定すると共に(図20のステップS130)、スイッチタイマのアドレスのオフセットとして「0」を設定する(ステップS131)。スイッチオン判別値テーブルのオフセット「0」は、スイッチオン判別値テーブルの最初のデータ「2」を使用することを意味する。また、スイッチタイマのアドレスのオフセット「0」は入賞口スイッチ25aに対応したスイッチタイマが指定されることを意味する。また、繰返数として「4」をセットする(ステップS132)。
そして、CPU113は、スイッチチェックオン処理サブルーチンをコールしてスイッチオンチェック処理を実行する(ステップS133)。ステップS133のスイッチオンチェック処理においては、入賞口スイッチ25aに対応するスイッチタイマの値がスイッチオン判別値「2」に一致していれば、フラグメモリ123に設けられたスイッチオンフラグがオンにセットされる。
CPU113は、このスイッチオンフラグをチェックして、入賞口スイッチ25aがオンしているか否かを判別する(ステップS134)。入賞口スイッチ25aがオンしていると判別した場合(ステップS134;Yes)、CPU113は、払い出すべき賞球個数として「10」をリングバッファに設定する(ステップS135)。なお、CPU113は、リングバッファにデータを書き込む毎に、書込ポインタをインクリメントして行く。そして、リングバッファの最後の領域までデータを書き込んだ場合、CPU113は、書込ポインタをリングバッファの最初の領域を指すように更新する。
一方、入賞口スイッチ25aがオンしていないと判別した場合(ステップS134;No)、CPU113は、ステップS135の処理をスキップする。
続いて、CPU113は、繰返数を1減算し(ステップS136)、繰返数が「0」になったか否かを判別する(ステップS137)。繰返数が「0」になっていないと判別した場合(ステップS137;No)、CPU113は、スイッチタイマのアドレスのオフセットを1加算し(ステップS138)、ステップS133の処理に戻る。
一方、繰返数が「0」になったと判別した場合(ステップS137;Yes)、CPU113は、ステップS139の処理へと進む。
このように、CPU113は、処理数が「0」になるまで、ステップS133〜S138の処理を繰り返し実行することにより、入賞口スイッチ25a〜25dがオンしているか否かを順次判別することができる。そして、入賞口スイッチ25a〜25dがオンしていると判別される場合、リングバッファには、払い出すべき賞球個数として「10」が設定されて行く。
次に、CPU113は、スイッチオン判別値テーブルのオフセットとして「0」を設定し(ステップS139)、スイッチタイマのアドレスのオフセットとして「5」を設定する(ステップS140)。スイッチオン判別値テーブルのオフセット「0」は、スイッチオン判別値テーブルの最初のデータ「2」を使用することを意味する。また、スイッチタイマのアドレスのオフセット「5」は、始動口スイッチ22に対応したスイッチタイマが指定されることを意味する。
そして、CPU113は、スイッチオンチェック処理サブルーチンをコールしてスイッチオンチェック処理を実行する(ステップS141)。ステップS141のスイッチオンチェック処理においては、始動口スイッチ22に対応するスイッチタイマの値がスイッチオン判別値「2」に一致していれば、フラグメモリ123に設けられたスイッチオンフラグがオンにセットされる。
CPU113は、このスイッチオンフラグをチェックして、始動口スイッチ22がオンしているか否かを判別する(ステップS142)。始動口スイッチ22がオンしていると判別した場合(ステップS142;Yes)、CPU113は、払い出すべき賞球個数として「6」をリングバッファに設定する(ステップS143)。
一方、始動口スイッチ22がオンしていないと判別した場合(ステップS142;No)、CPU113は、ステップS143の処理をスキップする。
続いて、CPU113は、スイッチオン判別値テーブルのオフセットとして「0」を設定し(ステップS144)、スイッチタイマのアドレスのオフセットとして「6」を設定する(ステップS145)。スイッチオン判別値テーブルのオフセット「0」は、スイッチオン判別値テーブルの最初のデータ「2」を使用することを意味する。また、スイッチタイマのアドレスのオフセット「6」は、カウントスイッチ24に対応したスイッチタイマが指定されることを意味する。
そして、CPU113は、スイッチオンチェック処理サブルーチンをコールしてスイッチオンチェック処理を実行する(ステップS146)。ステップS146のスイッチオンチェック処理においては、カウントスイッチ24に対応するスイッチタイマの値がスイッチオン判別値「2」に一致していれば、フラグメモリ123に設けられたスイッチオンフラグがオンにセットされる。
CPU113は、このスイッチオンフラグをチェックして、カウントスイッチ24がオンしているか否かを判別する(ステップS147)。カウントスイッチ24がオンしていると判別した場合(ステップS147;Yes)、CPU113は、払い出すべき賞球個数として「15」をリングバッファに設定する(ステップS148)。
一方、カウントスイッチ24がオンしていないと判別した場合(ステップS147;No)、CPU113は、ステップS148の処理をスキップする。
そして、CPU113は、リングバッファにデータが存在するか否かを判別する(図21のステップS149)。リングバッファにデータが存在する場合には(ステップS149;Yes)、読出ポインタが指すリングバッファの内容を送信バッファにセットすると共に(ステップS150)、読出ポインタの値をリングバッファの次の領域を指すように更新し(ステップS151)、賞球個数に関するコマンド送信テーブルをセットする(ステップS152)。
そして、CPU113は、コマンドセット処理サブルーチンをコールしてコマンドセット処理を実行する(ステップS153)。ステップS153のコマンドセット処理においては、賞球個数に関する払出制御コマンドが格納されているコマンド送信テーブルの先頭アドレスがコマンド送信テーブルのアドレスとして設定される。これにより、主基板11からは、賞球個数に関する払出制御コマンドが払出制御基板15に対して送出される。
図22は、ステップS113,S118,S133,S141及びS146にて実行されるスイッチオンチェック処理の詳細を示すフローチャートである。スイッチオンチェック処理において、CPU113は、図22に示すように、まず、スイッチオン判定値テーブルの先頭アドレスをセットする(ステップS221)。そして、CPU113は、このアドレスにオフセットを加算し(ステップS222)、加算後のアドレスからスイッチオン判定値をロードする(ステップS223)。
続いて、CPU113は、スイッチタイマの先頭アドレスを設定し(ステップS224)、そのアドレスにオフセットを加算し(ステップS225)、加算後のアドレスからスイッチタイマの値をロードする(ステップS226)。スイッチタイマメモリ121には、各スイッチタイマが後述する入力ポートの各ビットと同順に並んで記憶されているので、ステップS226の処理において、CPU113は、各スイッチに対応したスイッチタイマの値をロードすることができる。
そして、CPU113は、ロードしたスイッチタイマの値とスイッチオン判定値とを比較し(ステップS227)、スイッチタイマの値がスイッチオン判定値と一致した場合には(ステップS227;Yes)、フラグメモリ123に設けられたスイッチオンフラグをオンにセットする(ステップS228)。一方、スイッチタイマの値がスイッチオン判定値と一致していない場合には(ステップS227;No)、ステップS228の処理をスキップして、そのままスイッチオンチェック処理を終了する。
図23は、ステップS125,S129及びS153にて実行されるコマンドセット処理の詳細を示すフローチャートである。コマンドセット処理において、CPU113は、図23に示すように、まず、コマンド送信テーブルのアドレスをスタック等に退避した後、ポインタが指すコマンド送信テーブルのINTデータを引数1にロードする(ステップS231)。この引数1は、後述するコマンド送信処理に対する入力情報となるものである。
次に、CPU113は、コマンド送信テーブルを指すアドレスを1加算する(ステップS232)。これにより、コマンド送信テーブルが指すアドレスは、コマンドデータ1(MODEデータ)のアドレスと一致する。続いて、CPU113は、コマンドデータ1(MODEデータ)を読み出して引数2に設定する(ステップS233)。この引数2も、後述するコマンド送信処理に対する入力情報となるものである。
そして、CPU113は、コマンド送信処理サブルーチンをコールしてコマンド送信処理を実行する(ステップS234)。
図24は、コマンド送信処理の詳細を示すフローチャートである。コマンド送信処理において、CPU113は、まず、引数1に設定されているINTデータを比較値として決められているワークエリアに設定すると共に(ステップS301)、送信回数「2」を処理数として決められているワークエリアに設定する(ステップS302)。次に、CPU113は、出力ポート1のアドレスをI/Oアドレスにセットする(ステップS303)。
続いて、CPU113は、比較値を1ビット右にシフトするシフト処理を実行する(ステップS304)。そして、CPU113は、キャリーフラグをチェックして、その値が「0」であるか「1」であるかを判別する(ステップS305)。この場合にキャリーフラグの値が「1」であるということは、INTデータにおける最も右側のビットが「1」であることを意味する。この実施の形態において、払出制御コマンドの送出が指示されている場合には、1回目のシフト処理にてキャリーフラグの値が「1」になる。
キャリーフラグの値が「1」であると判別された場合には(ステップS305;No)、引数2に設定されているデータをI/Oアドレスとして設定されているアドレスに出力する(ステップS306)。
なお、1回目のシフト処理では、出力ポート1のアドレスがI/Oアドレスに設定されるため、出力ポート1には、払出制御コマンドのMODEデータが出力される。
一方、キャリーフラグの値が「0」であると判別された場合には(ステップS305;Yes)、ステップS306の処理をスキップする。
続いて、CPU113は、I/Oアドレスを1加算すると共に(ステップS307)、処理数を1減算する(ステップS308)。これにより、I/Oアドレスには、出力ポート2のアドレスが設定される。そして、CPU113は、処理数が「0」であるか否かを判別し(ステップS309)、処理数が「0」でないと判別した場合には(ステップS309;No)、ステップS304の処理に戻り、再度シフト処理を実行する。
CPU113は、2回目のシフト処理にてINTデータにおけるビット1の値を押し出し、さらに、ステップS305の処理にてキャリーフラグの値が「0」であるか「1」であるかを判別することにより、演出制御コマンドの送出が指示されているか否かを判別する。
その後、ステップS309の処理にて処理数が「0」であると判別した場合には(ステップS309;Yes)、シフト処理開始前のINTデータが格納されている引数1の内容を読み出し(ステップS310)、読み出したデータを出力ポート0に出力する(ステップS311)。これにより、出力ポート0に出力されるINT信号は、ハイレベルになる。
続いて、CPU113は、ウェイトカウンタに所定値を設定し(ステップS312)、ウェイトカウンタの値が0になるまで、その値を1ずつ減算して行く(ステップS313)。そして、ウェイトカウンタの値が0になると(ステップS314;Yes)、クリアデータ(00)を設定し(ステップS315)、設定したクリアデータを出力ポート0に出力する(ステップS316)。これにより、出力ポート0に出力されるINT信号は、ローレベルになる。
その後、CPU113は、ウェイトカウンタに所定値を再度設定し(ステップS317)、ウェイトカウンタの値が0になるまで、その値を1ずつ減算して行く(ステップS318)。そして、ウェイトカウンタの値が0になると(ステップS319;Yes)、CPU113は、コマンド送信処理を終了する。
ステップS234のコマンド送信処理により、出力ポート0からは、払出制御コマンドのMODEデータが払出制御基板15に対して送出される。
その後、CPU113は、コマンド送信テーブルが指すアドレスを1加算する(ステップS235)。これにより、コマンド送信テーブルが指すアドレスは、コマンドデータ2(EXTデータ)のアドレスと一致する。続いて、CPU113は、コマンドデータ2(EXTデータ)を読み出して引数2に設定する(ステップS236)。
そして、CPU113は、コマンドデータ2のビット7(ワークエリア参照ビット)の値が「0」であるか「1」であるかを判別する(ステップS237)。ビット7の値が「1」であると判別した場合には(ステップS237;No)、送信バッファの内容を引数2にロードする(ステップS238)。
一方、ビット7の値が「0」であると判別した場合には(ステップS237;Yes)、ステップS238の処理をスキップする。これにより、引数2には、EXTデータが設定される。
そして、CPU113は、コマンド送信処理サブルーチンをコールしてコマンド送信処理を実行する(ステップS239)。ステップS239のコマンド送信処理により、出力ポート0からは、払出制御コマンドのEXTデータが払出制御基板15に対して送出される。
次に、払出制御基板15における動作を説明する。図25は、払出制御基板15に搭載された払出制御用のCPU153が実行する払出制御メイン処理を示すフローチャートである。払出制御メイン処理を開始すると、CPU153は、まず、図25に示すように、所定の初期化処理を実行することにより、RAM152のクリアや各種初期値の設定、また払出制御の起動間隔を決めるための2ミリ秒タイマの初期設定等を行う(ステップS31)。
その後、CPU153は、フラグメモリ167に設けられたタイマ割込フラグを監視し、タイマ割込フラグがセットされるまでループ処理を実行する(ステップS32;No)。この実施の形態では、CPU153にて2ミリ秒ごとにタイマ割込みが発生し、このタイマ割込みが発生すると、所定のタイマ割込処理を実行することにより、フラグメモリ167に設けられたタイマ割込フラグがセットされる。
CPU113では、2ミリ秒ごとに発生するタイマ割込みとは別に主基板11からの払出制御コマンドを受信するための割込みが発生する。この割込みは、主基板11からの払出制御INT信号がオン状態となることにより発生する割込みである。払出制御INT信号がオン状態となることによる割込みが発生すると、CPU153は、図26に示す払出制御コマンド受信割込処理を実行する。
このコマンド受信割込処理において、CPU153は、図26に示すように、まず、各レジスタの値をスタックに退避した後、I/Oポート154のうちで払出制御信号CD0〜CD7の入力に割り当てられている入力ポートから、払出制御コマンドに対応するデータを読み込む(ステップS41)。そして、2バイト構成の払出制御コマンドのうちの1バイト目であるか否かを判別する(ステップS42)。ここで、払出制御コマンドの1バイト目(MODE)と2バイト目(EXT)とは、受信側で直ちに区別可能に構成されている。すなわち、先頭ビットによって、MODEとしてのデータを受信したのかEXTとしてのデータを受信したのかを、受信側において直ちに検出できる。受信したコマンドの先頭ビットが「1」である場合には、2バイト構成である払出制御コマンドのうちの有効な1バイト目(MODEデータ)を受信したと判別される。
ステップS42にて1バイト目のMODEデータであると判別したときには(ステップS42;Yes)、受信コマンドバッファメモリ161にて、コマンド受信個数カウンタにより指定される受信コマンドバッファに、受信したコマンドを格納し(ステップS43)、その後、ステップS49の処理へと進む。一方、払出制御コマンドの1バイト目でなければ(ステップS42;No)、1バイト目のMODEデータを既に受信したか否かを判別する(ステップS44)。1バイト目のMODEデータを既に受信したか否かは、受信コマンドバッファに格納されているコマンドデータを確認することにより、判別することができる。
1バイト目を既に受信している場合には(ステップS44;Yes)、今回受信した1バイトのうちの先頭ビットが「0」であるか否かを判別し、先頭ビットが「0」であれば、有効な2バイト目を受信したとして、コマンド受信個数カウンタにより指定される次の受信コマンドバッファに、受信したコマンドを格納する(ステップS45)。なお、ステップS45の処理にて払出制御コマンドの1バイト目を受信していないと判別した場合や(ステップS44;No)、2バイト目として受信したデータのうちの先頭ビットが「0」でない場合には、ステップS49の処理へと進む。
ステップS45の処理にて2バイト目のコマンドデータを格納すると、コマンド受信個数カウンタの値を2加算し(ステップS46)、その値が12以上であるか否かを判別する(ステップS47)。12以上であれば(ステップS47;Yes)、コマンド受信個数カウンタをクリアして、その値を0に戻す(ステップS48)。一方、12未満のときには(ステップS47;No)、ステップS48の処理をスキップする。そして、CPU153は、退避したレジスタを復帰した後、割込許可に設定する(ステップS49)。こうしてコマンド受信割込処理により、主基板11から送られた表示制御コマンドが受信コマンドバッファメモリ161に設けられた受信コマンドバッファに格納される。
こうして受信コマンドバッファに主基板11から送信された払出制御コマンドが格納される一方で、図25のステップS32の処理にてタイマ割込みの発生が確認される。このタイマ割込みの発生が確認されると(ステップS32;Yes)、CPU153は、フラグメモリ167に設けられたタイマ割込フラグをクリアしてオフ状態とした後に、払出制御割込処理を開始する。この払出制御割込処理において、CPU153は、まず、所定のスイッチ処理を実行することにより、払出制御基板15に入力される各種スイッチ(払出モータ位置センサ71,払出カウントスイッチ72等)からの検出信号を取り込み、取り込んだ検出信号の状態を判別する(ステップS51)。
次に、CPU153は、所定の払出停止状態設定処理を実行することにより、主基板11から払出停止指示コマンドを受信したときに払出装置50を払出停止状態とし、払出開始指示コマンドを受信したときに払出停止状態を解除するための設定を行う(ステップS52)。さらに、CPU153は、コマンド解析処理を実行して、解析結果に応じた処理を実行する(ステップS53)。また、所定のプリペイドカードユニット制御処理を実行する(ステップS54)。
この後、CPU153は、球貸要求に応じて貸球を払い出す球貸制御処理を行う(ステップS55)。さらに、賞球総数カウンタに格納された個数の賞球を払い出す賞球制御処理を実行する(ステップS56)。そして、払出装置50の払出モータ51に対して駆動信号を出力し、払出モータ51を回転させる払出モータ制御処理を実行する(ステップS57)。
続いて、CPU153は、所定のエラー処理を実行することにより、遊技球の払い出しに関する異常診断を行い、その診断結果に応じて必要ならば所定のエラー表示用LED等により警告を発生可能とする(ステップS58)。そして、所定の出力処理を実行することにより、遊技機外部に球貸個数信号を出力する(ステップS59)。
図27は、ステップS51にて実行されるスイッチ処理の詳細を示すフローチャートである。このスイッチ処理において、CPU153は、図27に示すように、まず、払出モータ位置センサ71からの検出信号がオン状態にあるか否かを判別する(ステップS501)。オン状態にあると判別した場合には(ステップS501;Yes)、スイッチオンカウンタメモリ162に設けられている払出モータ位置センサオンカウンタの値を1加算する(ステップS502)。
続いて、CPU153は、払出モータ位置センサオンカウンタの値をチェックし、その値が「2」であるか否かを判別する(ステップS503)。払出モータ位置センサカウンタの値が「2」であると判別した場合(ステップS503;Yes)、CPU153は、払出モータ51による1個の遊技球の払出動作が完了したものと判別して、払出動作量カウンタ163の値を1減算して(ステップS504)、ステップS506の処理へと進む。
一方、ステップS503の処理にて払出モータ位置センサオンカウンタの値が「2」でないと判別した場合には(ステップS503;No)、ステップS504の処理をスキップして、ステップS506の処理へと進む。
また、ステップS501の処理にて払出モータ位置センサ71からの検出信号がオフ状態にあると判別した場合には(ステップS501;No)、払出モータ位置センサオンカウンタの値をクリアして(ステップS505)、ステップS506の処理へと進む。
次に、CPU153は、払出カウントスイッチ72からの検出信号がオン状態にあるか否かを判別する(ステップS506)。オン状態にあると判別した場合には(ステップS506;Yes)、スイッチオンカウンタメモリ162に設けられている払出カウントスイッチオンカウンタの値を1加算する(ステップS507)。
続いて、CPU153は、払出カウントスイッチオンカウンタの値をチェックし、その値が「2」であるか否かを判別する(ステップS508)。払出カウントスイッチオンカウンタの値が「2」である場合(ステップS508;Yes)、CPU153は、払出装置50から1個の遊技球が払い出されたものと判別すると共に、この遊技球が賞球として払い出されたものであるか遊技者に貸し出すために払い出されたものであるかを、フラグメモリ167に設けられている賞球払出中フラグ及び球貸中フラグをチェックすることにより、判別する(ステップS509)。
ステップS509の処理にて払出装置50から遊技球が賞球として払い出されたものと判別した場合(ステップS509;Yes)、CPU113は、賞球総数カウンタ164の値を1減算して(ステップS510)、スイッチ処理を終了する。
一方、ステップS509の処理にて払出装置50から遊技球が遊技者に貸し出すために払い出されたものと判別した場合(ステップS509;No)、CPU113は、貸球総数カウンタ165の値を1減算して(ステップS511)、スイッチ処理を終了する。
また、ステップS508の処理にて払出カウントスイッチオンカウンタの値が「2」でないと判別した場合は(ステップS508;No)、ステップS509,S510及びS511の処理をスキップして、スイッチ処理を終了する。
さらに、ステップS506の処理にて払出カウントスイッチ72からの検出信号がオフ状態にあると判別した場合には(ステップS506;No)、払出カウントスイッチオンカウンタの値をクリアして(ステップS512)、スイッチ処理を終了する。
図28は、ステップS53のコマンド解析処理の詳細を示すフローチャートである。このコマンド解析処理において、CPU153は、図28に示すように、まず、受信コマンドバッファメモリ161に設けられたコマンド受信テーブルに、主基板11から受信した払出制御コマンドが格納されているか否かを確認する(ステップS521)。
コマンド受信テーブルに受信コマンドが格納されている場合(ステップS521;Yes)、CPU153は、コマンド受信テーブルから受信コマンドを読み出し、読み出した受信コマンドが賞球個数を指定する払出制御コマンドであるか否かを判別する(ステップS522)。なお、読み出したら読出ポインタの値を1加算しておく。
読み出した受信コマンドが賞球個数を指定する払出制御コマンドであると判別した場合(ステップS522;Yes)、CPU153は、払出制御コマンドにより指示された賞球個数を、賞球総数カウンタ164の内容に加算する(ステップS523)。続いて、CPU113は、フラグメモリ167に設けられている賞球払出中フラグをチェックして、払出装置50が賞球の払出動作を実行しているか否かを判別する(ステップS524)。
払出装置50が賞球の払出動作を実行していると判別した場合(ステップS524;Yes)、CPU153は、払出制御コマンドにより指定された賞球個数を、払出中受信個数カウンタ166の内容に加算すると共に(ステップS525)、フラグメモリ167に設けられている払出中受信フラグをオンにセットする(ステップS526)。
一方、ステップS521の処理にてコマンド受信テーブルに受信コマンドが格納されていないと判別した場合(ステップS521;No)、ステップS522の処理にて読み出した受信コマンドが賞球個数を指定する払出制御コマンド以外であると判別した場合(ステップS522;No)及びステップS524の処理にて払出装置50が賞球の払出動作を実行していないと判別した場合(ステップS524;No)、CPU113は、そのままコマンド解析処理を終了する。
図29及び図30は、ステップS55にて実行される球貸制御処理の詳細を示すフローチャートである。なお、この球貸制御処理において、払出装置50から連続的に払い出される貸球の個数の最大値は、貸球の一単位と同数(例えば25個)であるが、この値は任意であり、他の数であってもよい。球貸制御処理が開始すると、CPU153は、図29に示すように、まず、フラグメモリ167に設けられている払出停止中フラグをチェックして、球貸停止中であるか否かを判別する(ステップS531)。球貸停止中であると判別した場合には(ステップS531;Yes)、そのまま球貸制御処理を終了する。
一方、球貸停止中でないと判別した場合には(ステップS531;No)、フラグメモリ167に設けられている球貸中フラグをチェックして、貸球の払出が行われているか否かを判別する(ステップS532)。貸球の払出が行われていると判別した場合には(ステップS532;Yes)、ステップS539の処理へと進む。
一方、貸球の払出が行われていないと判別した場合には(ステップS532;No)、続いて、フラグメモリ167に設けられている賞球払出中フラグをチェックして、賞球の払出が行われているか否かを判別する(ステップS533)。賞球の払出が行われていると判別した場合には(ステップS533;Yes)、そのまま球貸制御処理を終了する。
そして、ステップS532及びS533の処理にて貸球の払出も賞球の払出も行われていないと判別した場合(ステップS532;No,ステップS533;No)、CPU153は、カードユニット70から球貸要求があったか否かを判別する(ステップS534)。球貸要求があったと判別した場合には(ステップS534;Yes)、フラグメモリ167に設けられている球貸中フラグをオンすると共に(ステップS535)、貸球総数カウンタ165及び払出動作量カウンタ163に「25」を設定する(ステップS536)。
そして、CPU153は、EXS信号をオンすると共に(ステップS537)、カードユニット70が受付を認識したことを示すBRQ信号をオフ状態にした後、払出モータ50を駆動する(ステップS538)。これにより、球貸制御処理は、球貸動作前の処理から球貸中の処理へと移行する。
球貸中の処理において、CPU153は、まず、払出球通過待ち時間中であるか否かを判別する(図30のステップS539)。この払出球通過待ち時間とは、最後の払出球が払出モータ51によって払い出されてから払出カウントスイッチ72を通過するまでの時間である。ステップS539の処理にて払出球通過待ち時間中でないと判別した場合(ステップS539;No)、CPU153は、貸球の払出を行う(ステップS540)。
そして、CPU153は、払出動作量カウンタ163の値が「0」になったか否かを判別する(ステップS541)。払出動作量カウンタ163の値が「0」になった場合(ステップS541;Yes)、CPU153は、25個の貸球を払い出すために必要な動作が完了したものと判別して、払出モータ51の払出動作を停止すると共に(ステップS542)、払出球通過待ち時間の設定を行い(ステップS543)、球貸制御処理を終了する。
一方、払出動作量カウンタ163の値が「0」になっていない場合(ステップS541;No)、CPU153は、そのまま球貸制御処理を終了する。
ステップS539の処理にて払出球通過待ち時間中であると判別した場合(ステップS539;Yes)、CPU153は、この払出球通過待ち時間が終了したか否かを判別する(ステップS544)。払出球通過待ち時間が終了していないと判別した場合には(ステップS544;No)、そのまま球貸制御処理を終了する。
一方、払出球通過待ち時間が終了したと判別した場合(ステップS544;Yes)、貸球総数カウンタ165の値が「0」になっているか否かを判別する(ステップS545)。貸球総数カウンタ165の値が「0」になっていない場合(ステップS545;No)、未払出の貸球があると判別して、貸球総数カウンタ165の値を払出動作量カウンタ163にセットし(ステップS546)、払出モータ51を再駆動する(ステップS547)。その後、CPU153は、ステップS539の処理へと戻る。
一方、貸球総数カウンタ165の値が「0」になっている場合(ステップS545;Yes)、一単位の貸球が全て払い出されたものと判別して、カードユニット70に対して次の球貸要求の受付が可能になったことを示すEXS信号をオフにすると共に(ステップS548)、球貸中フラグをオフし(ステップS549)、貸球制御処理を終了する。
図31及び図32は、ステップS56にて実行される賞球制御処理の詳細を示すフローチャートである。なお、この賞球制御処理において、賞球制御処理が開始すると、CPU153は、図31に示すように、まず、フラグメモリ167に設けられている払出停止中フラグをチェックして、賞球停止中であるか否かを判別する(ステップS551)。賞球停止中であると判別した場合には(ステップS551;Yes)、そのまま賞球制御処理を終了する。
一方、賞球停止中でないと判別した場合には(ステップS551;No)、フラグメモリ167に設けられている球貸中フラグをチェックして、貸球の払出が行われているか否かを判別する(ステップS552)。貸球の払出が行われていると判別した場合には(ステップS552;Yes)、そのまま賞球制御処理を終了する。
一方、貸球の払出が行われていないと判別した場合には(ステップS552;No)、続いて、フラグメモリ167に設けられている賞球払出中フラグをチェックして、賞球の払出が行われているか否かを判別する(ステップS553)。賞球の払出が行われていると判別した場合には(ステップS553;Yes)、ステップS558の処理へと進む。
そして、ステップS552及びS553の処理にて貸球の払出も賞球の払出も行われていないと判別した場合(ステップS552;No,ステップS553;No)、CPU153は、賞球総数カウンタ164の値が「0」でないか否かを判別する(ステップS554)。賞球総数カウンタ164に格納されている賞球数が「0」である場合には(ステップS554;Yes)、そのまま賞球制御処理を終了する。
一方、賞球総数カウンタ164の値が「0」でない場合(ステップS554;No)、CPU153は、賞球払出中フラグをオンすると共に(ステップS555)、払出動作量カウンタ163に賞球総数カウンタ164の値を設定する(ステップS556)。そして、CPU153は、払出モータ50を駆動する(ステップS557)。これにより、賞球制御処理は、賞球動作前の処理から賞球動作中の処理へと移行する。
賞球動作中の処理において、CPU153は、まず、払出球通過待ち時間中であるか否かを判別する(図32のステップS558)。ステップS558の処理にて払出球通過待ち時間中でないと判別した場合(ステップS558;No)、CPU153は、賞球の払出を行う(ステップS559)。
続いて、CPU153は、払出動作量カウンタ163の値が所定の判別値(例えば「1」)と合致するか否かを判別する(ステップS560)。なお、この実施の形態において、判別値は「1」とされているが、この値は任意であり、例えば「2」や「3」等であってもよい。払出動作量カウンタ163の値が所定の判別値「1」と合致していると判別した場合(ステップS560;Yes)、CPU153は、フラグメモリ167に設けられている払出中受信フラグをチェックして、賞球払出中に賞球個数を指定する払出制御コマンドを受信したか否かを判別する(ステップS561)。
賞球払出中に賞球個数を指定する払出制御コマンドを受信したと判別した場合(ステップS561;Yes)、CPU153は、払出動作量カウンタ163の内容に払出中受信個数カウンタ166の値を加算する(ステップS562)。その後、CPU153は、払出中受信個数カウンタ164を0クリアすると共に(ステップS563)、払出中受信フラグをオフし(ステップS564)、賞球制御処理を終了する。
一方、賞球払出中に賞球個数を指定する払出制御コマンドを受信していないと判別した場合(ステップS561;No)、CPU113は、そのまま賞球制御処理を終了する。
ステップS560の処理にて払出動作量カウンタ163の値が所定の判別値「1」と合致していないと判別した場合、CPU153は、続いて、払出動作量カウンタ163の値が終了値「0」と合致しているか否かを判別する(ステップS565)。払出動作量カウンタ163の値が終了値「0」と合致していると判別した場合(ステップS565;Yes)、CPU153は、賞球を全て払い出すために必要な動作が完了したものと判別して、払出モータ51の払出動作を停止すると共に(ステップS566)、払出球通過待ち時間の設定を行い(ステップS567)、賞球制御処理を終了する。
一方、払出動作量カウンタ163の値が終了値「0」と合致していないと判別した場合(ステップS565;Yes)CPU153は、そのまま賞球制御処理を終了する。
ステップS558の処理にて払出球通過待ち時間中であると判別した場合(ステップS558;Yes)、CPU153は、この払出球通過待ち時間が終了したか否かを判別する(ステップS568)。払出球通過待ち時間が終了していないと判別した場合には(ステップS568;No)、そのまま賞球制御処理を終了する。
一方、払出球通過待ち時間が終了したと判別した場合(ステップS568;Yes)、賞球総数カウンタ164の値が「0」になっているか否かを判別する(ステップS569)。
賞球総数カウンタ164の値が「0」になっていない場合(ステップS569;Yes)、未払出の賞球があると判別して、賞球総数カウンタ164の値を払出動作量カウンタ163にセットし(ステップS570)、払出モータ51を再駆動する(ステップS571)。その後、CPU153は、ステップS558の処理へと戻る。
一方、賞球総数カウンタ164の値が「0」になっている場合(ステップS569;Yes)、賞球が全て払い出されたものと判別して、賞球払出中フラグをオフし(ステップS572)、賞球制御処理を終了する。
以上説明したように、この実施の形態によれば、CPU153は、コマンド解析処理において、賞球払出中に賞球個数を指定する払出制御コマンドを受信すると、この賞球個数を払出中受信個数カウンタ166の値に加算し、さらに、払出中受信フラグをオンにセットする。
そして、CPU153は、賞球制御処理において、払出動作量カウンタ163の値が所定の判別値「1」と合致しているか否かを判別し、所定の判別値「1」と合致している場合、続いて、払出中受信フラグをチェックして、賞球払出中に賞球個数を指定する払出制御コマンドを受信したか否かを判別する。賞球払出中に賞球個数を指定する払出制御コマンドを受信したと判別した場合、CPU153は、払出動作量カウンタ163の値に、この払出中受信個数カウンタ166の値を加算し、その後、払出中受信個数カウンタ166を0クリアすると共に、払出中受信フラグをオフする。
このように、CPU153は、賞球個数を指定する払出制御コマンドを受信する毎に、払出装置50による賞球の払出動作を停止することなく、この賞球個数を払出動作量カウンタ163の値に加算して行くことができるため、迅速な賞球の払出を実現することができる。
また、CPU153は、コマンド解析処理において、受信した払出制御コマンドによって指定される賞球個数を払出中受信個数カウンタ166に一旦格納し、その後、賞球制御処理において、払出中受信個数カウンタ166の値を、払出動作量カウンタ163の値に加算する。このため、CPU153は、払出動作量カウンタ163の値を更新する際に、遊技球の個数を特定するための演算を行う必要がなくなり、この結果、その処理負担を低減することができる。
さらに、CPU153は、賞球払出中に賞球個数を指定する払出制御コマンドを受信したときには払出中受信フラグをオンするが、その他の払出制御コマンドを受信しても払出中受信フラグをオンしない。このため、CPU153は、コマンド解析処理で行った払出制御コマンドの受信判別を、賞球制御処理において再度行うことなく、払出中受信フラグをチェックことすることによって、賞球払出中に賞球個数を指定する払出制御コマンドを受信したか否かを判別することができる。
また、CPU153は、賞球個数を払出中受信個数カウンタ166に加算した後に、払出中受信個数カウンタ166を0クリアすると共に払出中受信フラグをオフすることによって、この加算された賞球個数が次のタイマ割込において再度、払出中受信個数カウンタ166の値に加算されてしまうといった誤作動を確実に防止することができる。
さらに、CPU153は、賞球払出中に再度賞球個数を指定する払出制御コマンドを受信したとき、この賞球個数を払出中受信個数カウンタ166の値に累積加算するので、払出制御基板15は、払出中受信個数カウンタ166を複数備える必要がないため、RAM152等に記憶するデータ量を少なくすることができる。
また、CPU153は、賞球個数を指定する払出制御コマンドを受信する毎に、この受信した払出制御コマンドにより指定される賞球個数を払出動作量カウンタ163に順次加算して行くのではなく、払出動作量カウンタ163の値が所定の判別値「1」に合致するまで、受信した払出制御コマンドにより指定される賞球個数を払出中受信個数カウンタ166の値に累積加算して行く。
そして、払出動作量カウンタ163の値が所定の判別値「1」に合致したことを契機として、CPU153は、これまで払出中受信個数カウンタ166に累積加算した賞球個数の総数を、払出動作量カウンタの内容に加算する。このようにすることで、タイマ割込が発生する毎に、払出中受信個数カウンタ166の値を払出動作量の内容に加算する場合に比べ、CPU153は、ステップS561〜S564の処理の実行回数を少なくことができるため、その処理負担を低減することができる。
また、CPU153は、この払出動作量カウンタ163の値が「0」となると、設定された賞球を全て払い出すために必要な動作が完了したものと判別して、払出モータ51の払出動作を停止する。これにより、パチンコ遊技機1は、払出装置50から賞球が過剰に払い出されることを防止することができる。
その後、CPU153は、賞球総数カウンタ164をチェックして、その値が「0」になっているか否かを判別し、賞球総数カウンタ164の値が「0」でない場合には、この賞球総数カウンタ164の値を、未払出の賞球の個数を示すものとして払出動作量カウンタ163にセットし、払出モータ51を再駆動する。これにより、パチンコ遊技機1は、払出装置50から、この未払出の賞球を払い出すことができる。
このようにして、パチンコ遊技機1は、払出装置50から払い出される賞球の個数の正確な管理を実現することができる。
さらに、CPU153は、払出カウントスイッチ72から送信される検出信号に基づいて、払出装置50から遊技球が払い出されたことを検出すると、この遊技球が賞球として払い出されたものであるか遊技者に貸し出すために払い出されたものであるかを、賞球払出中フラグ及び球貸中フラグをチェックして判別する。そして、CPU153は、この遊技球が賞球として払い出されたものと判別した場合、賞球総数カウンタ164の値を1減算し、遊技者に貸し出すために払い出されたものと判別した場合、貸球総数カウンタ164の値を1減算する。
このようにすれば、パチンコ遊技機1は、払出カウントスイッチ72を賞球及び貸球の検出に共通して用いることができるため、そのハードウェア構成を簡素化することができる。
なお、この発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、この発明に適用可能な上記の実施の形態の変形態様について説明する。
上記実施の形態において、払出装置50から連続して払い出される遊技球の個数には、上限が設けられていなかった。しかしながら、本発明は、これに限定されず、払出装置50から連続して払い出される遊技球の個数に、所定の上限値を設けてもよい。
図33,図34及び図35は、ステップS56にて実行される賞球制御処理の変形例を示すフローチャートである。
この賞球制御処理において、払出制御基板15には、払出装置50から連続的に払い出される遊技球の上限値として、貸球の一単位の個数(例えば25個)が設定されている。この賞球制御処理が開始すると、CPU153は、まず、図33に示すように、フラグメモリ167に設けられている払出停止中フラグをチェックして、賞球停止中であるか否かを判別する(ステップS651)。賞球停止中であると判別した場合には(ステップS651;Yes)、そのまま賞球制御処理を終了する。
一方、賞球停止中でないと判別した場合には(ステップS651;No)、フラグメモリ167に設けられている球貸中フラグをチェックして、貸球の払出が行われているか否かを判別する(ステップS652)。貸球の払出が行われていると判別した場合には(ステップS652;Yes)、そのまま賞球制御処理を終了する。
一方、貸球の払出が行われていないと判別した場合には(ステップS652;No)、続いて、フラグメモリ167に設けられている賞球払出中フラグをチェックして、賞球の払出が行われているか否かを判別する(ステップS653)。賞球の払出が行われていると判別した場合には(ステップS653;Yes)、ステップS660の処理へと進む。
そして、ステップS652及びS653の処理にて貸球の払出も賞球の払出も行われていないと判別した場合(ステップS652;No,ステップS653;No)、CPU153は、賞球総数カウンタ164の値が「0」でないか否かを判別する(ステップS654)。賞球総数カウンタ164に格納されている賞球数が「0」である場合には(ステップS654;Yes)、そのまま賞球制御処理を終了する。
一方、賞球総数カウンタ164の値が「0」でない場合(ステップS654;No)、CPU153は、賞球払出中フラグをオンし(ステップS655)、賞球総数カウンタ164の値が「25」以上であるか否かを判別する(ステップS656)。
賞球総数カウンタ164の値が「25」以上であると判別した場合(ステップS656;Yes)、CPU153は、払出動作量カウンタ163に「25」を設定する(ステップS657)。一方、賞球総数カウンタ164の値が「25」未満であると判別した場合(ステップS656;No)、CPU153は、払出動作量カウンタ163に賞球総数カウンタ164の値を設定する(ステップS658)。そして、CPU153は、払出モータ50を駆動する(ステップS659)。これにより、賞球制御処理は、賞球動作前の処理から賞球動作中の処理へと移行する。
賞球動作中の処理において、CPU153は、まず、払出球通過待ち時間中であるか否かを判別する(図34のステップS660)。ステップS660の処理にて払出球通過待ち時間中でないと判別した場合(ステップS660;No)、CPU153は、賞球の払出を行う(ステップS661)。
続いて、CPU153は、払出動作量カウンタ163の値が所定の判別値(例えば「1」)と合致するか否かを判別する(ステップS662)。払出動作量カウンタ163の値が所定の判別の判別値「1」と合致していると判別した場合(ステップS662;Yes)、CPU153は、フラグメモリ167に設けられている払出中受信フラグをチェックして、賞球払出中に賞球個数を指定する払出制御コマンドを受信したか否かを判別する(ステップS663)。
賞球払出中に賞球個数を指定する払出制御コマンドを受信したと判別した場合(ステップS663;Yes)、CPU153は、払出中受信カウンタ163の値が、払出装置50から連続的に払い出される遊技球の上限値「25」から所定の判別値「1」を減算した値(減算値:この場合「24」)以下であるか否かを判別する(ステップS664)。
払出中受信個数カウンタ166の値が減算値「24」より大きいと判別した場合(ステップS664;No)、CPU153は、払出動作量カウンタ163に「25」を設定すると共に(ステップS665)、払出中受信個数カウンタ166の内容から減算値「24」を減算し(ステップS666)、賞球制御処理を終了する。
一方、払出中受信個数カウンタ166の値が減算値「24」より大きいと判別した場合(ステップS664;No)、CPU153は、払出動作量カウンタ163の内容に払出中受信個数カウンタ166の値を加算する(ステップS667)。その後、CPU153は、払出中受信個数カウンタ164を0クリアすると共に(ステップS668)、払出中受信フラグをオフし(ステップS669)、賞球制御処理を終了する。
一方、賞球払出中に賞球個数を指定する払出制御コマンドを受信していないと判別した場合(ステップS663;No)、CPU113は、そのまま賞球制御処理を終了する。
ステップS662の処理にて払出動作量カウンタ163の値が所定の判別値「1」と合致していないと判別した場合、CPU153は、続いて、払出動作量カウンタ163の値が終了値「0」と合致しているか否かを判別する(ステップS670)。払出動作量カウンタ163の値が終了値「0」と合致していると判別した場合(ステップS670;Yes)、CPU153は、賞球を全て払い出すために必要な動作が完了したものと判別して、払出モータ51の払出動作を停止すると共に(ステップS671)、払出球通過待ち時間の設定を行い(ステップS672)、賞球制御処理を終了する。
一方、払出動作量カウンタ163の値が終了値「0」と合致していないと判別した場合(ステップS670;Yes)CPU153は、そのまま賞球制御処理を終了する。
ステップS660の処理にて払出球通過待ち時間中であると判別した場合(ステップS660;Yes)、CPU153は、この払出球通過待ち時間が終了したか否かを判別する(図35のステップS673)。払出球通過待ち時間が終了していないと判別した場合には(ステップS673;No)、そのまま賞球制御処理を終了する。
一方、払出球通過待ち時間が終了したと判別した場合(ステップS673;Yes)、賞球総数カウンタ164の値が「0」になっているか否かを判別する(ステップS674)。賞球総数カウンタ164の値が「0」になっていない場合(ステップS674;No)、未払出の賞球があると判別して、賞球総数カウンタ164の値を払出動作量カウンタ163にセットし(ステップS675)、払出モータ51を再駆動する(ステップS676)。その後、CPU153は、ステップS660の処理へと戻る。
賞球総数カウンタ164の値が「0」になっている場合(ステップS674;Yes)、賞球が全て払い出されたものと判別して、賞球払出中フラグをオフする(ステップS677)。
このようにすれば、CPU153は、上記実施の形態の効果を維持しつつ、上限値を「25」として賞球の払出を行うことができる。
また、上記実施の形態において、遊技機は、可変表示の実行条件(例えば普通可変入賞球装置6への入賞)が成立した後に可変表示の開始条件(例えば可変表示装置4における前回の可変表示及び大当り遊技状態の終了)が成立したことに基づいて、各々が識別可能な複数種類の識別情報(例えば特別図柄)を可変表示する可変表示装置(例えば可変表示装置4)を備え、可変表示の表示結果が予め定められた特定表示結果となったときに、遊技者にとって有利な特定遊技状態(例えば大当り遊技状態)に制御するパチンコ遊技機であった。
しかしながら、本発明は、これに限定されず、遊技機は、遊技領域に設けられた始動領域にて遊技媒体を検出する始動検出手段(例えば始動玉検出器)の検出により、遊技者にとって不利な第2の状態から遊技者にとって有利な第1の状態となる始動動作(例えば開放動作)を行う可変入賞装置(例えば可変入賞球装置)を有し、可変入賞装置に設けられた特定領域にて遊技媒体を検出する特定検出手段(例えば特定玉検出器)の検出により、始動動作よりも遊技者にとってさらに有利な特定の態様で可変入賞装置を第1の状態に制御する特定遊技状態(例えば大当り遊技状態)を発生させるパチンコ遊技機であってもよい。
また、本発明の遊技機は、特別領域(例えば特別装置作動領域)に設けられた特別検出手段(例えば特定球検出スイッチや特別領域スイッチ)で遊技球が検出されたことを条件に権利発生状態となり、権利発生状態となっている期間中に、始動領域(例えば作動入賞口や始動入賞装置における始動口)に設けられた始動検出手段(例えば作動球検出スイッチや始動口スイッチ)により遊技球が検出されたことに基づいて、特別可変入賞装置(例えば大入賞口)を遊技者にとって不利な状態(例えば閉鎖状態)から遊技者にとって有利な状態(例えば開放状態)に変化させる制御を行うことが可能なパチンコ遊技機であってもよい。
さらに、本発明の遊技機は、1ゲームに対して賭け数を設定することによりゲームを開始させることが可能となり、可変表示装置(例えば可変表示装置)の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて所定の入賞が発生可能であるスロットマシンであってもよい。
また、図1〜図4の装置構成、図5に示すブロック構成、図6に示すコマンド構成、図7〜図10,図13及び図14に示すメモリ構成、図11及び図12に示すポート割当、図15〜図35に示すフローチャート構成等は、発明の趣旨を逸脱しない範囲で任意に変更及び修正が可能である。