以下、本発明を実施例に基づいて本発明の実施の形態を詳細に説明する。図1は、実施例に係るパチンコ機の全体構成を図示したブロック図であり、かかる構成のパチンコ機が、不図示の球貸し機に接続されて動作している。
図示のパチンコ機は、遊技動作を中心的に制御する主制御基板1と、表示装置8の動作を制御する図柄制御基板2と、音声的な遊技演出を実現する音声制御基板3と、ランプ類を点滅動作させるランプ制御基板4と、遊技球を払出す払出制御基板5と、払出制御基板5に制御されて遊技球を発射する発射制御基板6と、AC24Vを受けて装置各部に直流電圧を供給する電源基板7とを中心に構成されている。
図示の通り、電源基板7から主制御基板1及び払出制御基板5には、電源遮断後もRAMエリアの記憶内容を維持するためのバックアップ電源が供給されている。また、主制御基板1と払出制御基板5には、係員のスイッチ操作に対応して各制御基板のRAMをゼロクリアするRAMクリア信号RAMCLRが供給されるようになっている。
この実施例では、主制御基板1、図柄制御基板2、音声制御基板3、ランプ制御基板4、及び払出制御基板5は、それぞれワンチップマイコンを備えるコンピュータ回路で構成されているが、機能的には必ずしも別基板構成とする必要はなく、適宜な基板構成によって、主制御部、図柄制御部、音声制御部、ランプ制御部、及び払出制御部を実現することができる。
そして、主制御部を除く各サブ制御部は、主制御部からの制御コマンドに基づいて個別的な制御動作を実現している。この実施例の場合、制御コマンドは、コマンドの種別を示すMODEデータと、具体的内容を特定するEVENTデータとが、それぞれ8ビット長で構成されている。
本実施例では、動作開始時に、主制御基板1から払出制御基板5に対して、必ず、払出停止コマンドか払出再開コマンドかを伝送するようにしている。払出停止コマンドが伝送されるのは、主制御基板での動作開始時にエラー状態が検出された場合であり、具体的には、下皿が満杯状態である場合と、遊技球の補給が途絶えている場合である。本実施例では、主制御基板1の動作開始時に、払出停止コマンドか払出再開コマンドかを払出制御基板5に伝送し、これに呼応して払出制御基板5では、遊技球用の払出回転体を正確に位置合わしている。
払出停止コマンドは、動作開始時に限らず、その後の遊技動作中においても下皿が満杯状態であるか、遊技球の補給が途絶えている場合には、主制御基板1から払出制御基板5の伝送される。そして、払出停止コマンドを受信した払出制御基板5は、その時が払出動作中であっても直ちに遊技球の払出動作を停止して、その後、払出再開コマンドを受けるまでその状態で待機するようになっている。
図2は、払出制御基板5の周辺回路を図示したものである。払出制御基板5は、制御コマンドを出力する主制御基板1、遊技球を発射させる発射制御基板6及び電源基板7に接続されると共に、プリペイドカードの残存度数を表示する度数表示基板NUMや、プリペイドカードが挿入される球貸し機22にも接続されている。また、枠中継基板DELIVを経由して、左右の賞球計数スイッチ、左右の球貸し計数スイッチ、払出モータM1、及び遊技球の払出通路を切換えるソレノイドにも接続されている。
そして、払出制御基板5は、球貸し機22から受けるべき直流電圧18vを受信していることを条件に、発射制御基板6に向けて発射モータM2の動作を許可する発射信号を出力している。また、払出制御基板5は、電源基板7からバックアップ電源を含んだ電源電圧だけでなく、払出制御基板5のワンチップマイコンのRAMをクリアするための指令信号RAMCLRと、電源電圧の降下に伴うNMI(non maskable interrupt)信号と、電源リセット信号SYSRSTなどを受けている。
一方、払出制御基板5は、賞球動作または球貸し動作として遊技球を払出す場合には、枠中継基板DELIVに対して、モータ駆動信号Φ1〜Φ4を出力する。そして、払出モータM1の回転によって払出された遊技球は、賞球計数スイッチまたは球貸し計数スイッチによって把握され、それぞれの計数スイッチ信号が枠中継基板DELIVを経由して払出制御基板5に入力される。なお、左右の賞球スイッチからの計数スイッチ信号は、主制御基板1にも伝送される。
計数表示基板NUMには、7セグメントLEDからなるカード残額表示部32aと、遊技者に押圧操作される球貸しスイッチ32bとが搭載されている。図示の通り、カード残額表示部32aと球貸しスイッチ32bは、払出制御基板5を経由して、球貸し機22に直接接続される。球貸し機22は、遊技者が挿入したプリペイドカードで清算しつつ球貸し動作を実現するが、具体的には、プリペイドカードに残っている貸球の度数を読み取り、これに対応する度数表示信号を(払出制御基板5を経由して)度数表示基板NUMのカード残額表示部32aに出力している。
また、球貸し機22は、度数表示基板NUMの球貸しスイッチ32bが押圧された場合には、払出制御基板5を経由して操作スイッチ信号を把握し、球貸しモード信号BRDYや貸出要求完了確認信号BRQ信号を変化させることにより、基本単位分(25個)の球貸し動作を払出制御基板5に対して指示する。そして、その後、払出制御基板5が基本単位分の球貸し動作が完了すれば、カード残額表示部32aの数値を一つ減らすべく、球貸し機22が度数表示信号を変化させる。
払出制御基板5と球貸し機22とは、球貸し動作に係わる各種の制御信号(BRDY,BRQ,EXS,PRDY)を送受するが、各制御信号を説明すると以下の通りである。先ず、準備完了信号PRDYは、払出制御基板5から球貸し機22に出力される信号であり、そのレベルがHレベルである場合には、払出制御基板5での払出動作が可能であることを意味している。
一方、球貸しモード信号BRDYは、球貸し機22から払出制御基板5に出力される信号であり、そのレベルがHレベルである場合には、球貸し機22が球貸し動作モードであることを意味している。また、貸出要求完了確認信号BRQも、球貸し機22から払出制御基板5に出力される信号であり、基本単位分の遊技球の払出しを要求する場合には、そのレベルがHレベルとなる。
逆に、貸出完了信号EXSは、払出制御基板5から球貸し機22に出力される信号であり、基本単位分の遊技球の払出が完了した場合に、そのレベルがHレベルからLレベルとなる。
以上を踏まえて、玉貸し動作時の信号処理について、図19を参照しつつ説明する。先に説明したように、払出制御基板5は、遊技球の払出可能なときにはHレベルの準備完了信号PRDYを出力する(図19のタイミング(a))。すると、球貸し機22は、その時に遊技者から球貸し要求を受けている場合には、球貸しモード信号BRDYをHレベルにし、所定時間経過後に貸出要求完了確認信号BRQをHレベルにする(図19のタイミング(c))。
一方、払出制御基板5は、貸出要求完了確認信号BRQがHレベルになったことを確認すると、払出切換えソレノイドをON状態にして球貸し動作の遊技球通路を確保すると共に、貸出完了信号EXSをLレベルからHレベルに変化させる(図19のタイミング(d))。
但し、払出制御基板5が賞球動作中である場合には、動作中の賞球動作が完了してから、払出切換えソレノイドをONにして球貸し動作の遊技球通路を確保すると共に、貸出完了信号EXSをLレベルからHレベルに変化させる。つまり、賞球動作と球貸し動作とが競合した場合には、賞球動作が優先されるので、必要以上の回数の球貸しスイッチの押圧操作が防止される。
何れにしても、貸出完了信号EXSをLレベルからHレベルに変化させた後、球貸し機22からの貸出要求完了確認信号BRQがHレベルからLレベルに変化すると(図19のタイミング(e))球貸し処理を開始する。この場合の球貸し速度は、賞球動作の場合と同様であり、4ステップ(1ステップ18ms)で1個の遊技球を払出す。
その後、一単位分(25個)の遊技球の球貸しが完了したことを確認した払出制御基板5は、貸出完了信号EXSをHレベルからLレベルに戻す(図19のタイミング(f))。この状態で更なる球貸しの要求がある場合には、球貸し機22は、貸出要求完了確認信号BRQをLレベルからHレベルに変化させるので(図19のタイミング(c)’)、上記と同様の手順で、一単位分の遊技球の球貸し動作を行う(図19のタイミング(d)’(e)’(f)’)。
このような処理を繰り返すことによって、遊技者からの球貸し要求が完了すると、球貸し機22は、球貸しモード信号BRDYをHレベルからLレベルに変化させるので、払出制御基板5は、払出切換えソレノイドをOFFにして、球貸し動作の通路を賞球動作の通路に切り換えて球貸し処理を終える(図19のタイミング(g))。
ところで、払出制御基板5は、遊技球の入賞に伴う賞球か又はプリペイドカードで清算される貸し球として、所定数の遊技球を払出す必要がある。そこで、ステッピングモータたる払出モータM1に4相の駆動パルスデータΦ1〜Φ4を出力し、払出モータM1の回転に伴って払出される遊技球を、左右の賞球計数スイッチRSW1,LSW1か、左右の球貸し計数スイッチRSW2,LSW2で検出するようにしている。
図3は、払出モータM1とその周辺部材について図示したものである。図示の通り、払出モータM1の回転軸に接続された払出回転体ROには、それぞれ遊技球6個を保有可能な保持溝が左右に形成されている。この払出回転体ROの回転に伴い、保持溝に保持された遊技球は、左右から交互に1個ずつ下方に放出されるが、この実施例では、通常時には、18mS毎に変化する駆動データΦ1〜Φ4が、4ステップ出力されて(払出回転体ROが30°回転され)1個の遊技球を払出している(図4参照)。
図3に示すように、払出回転体ROの下流側通路には、賞球計数スイッチRSW1,LSW1と球貸し計数スイッチRSW2,LSW2が設けられている。また、払出動作切換え用のレバーLEが配置されており、この払出切換レバーLEで案内されることによって、遊技球は、賞球計数スイッチか球貸し計数スイッチの何れかを通過することになる。払出切換レバーLEは、図2に示す払出切換ソレノイドのON/OFF動作に応じて、姿勢を切換えるようになっており、図3は、左右の賞球計数スイッチRSW1,LSW1が遊技球の通過を検出する賞球動作状態を図示している。なお、左右の賞球計数スイッチRSW1,LSW1(及び球貸し計数スイッチRSW2,LSW2)の信号は、払出制御基板5に伝えられ、必要数の球貸し動作と賞球動作とが管理されている。
図6は、払出制御基板5の内部構成を図示したものである。図示の通り、払出制御基板5は、主制御基板からの制御コマンドを受ける入力バッファ10と、賞球及び球貸し計数スイッチからのスイッチ信号を受けるコンパレータ群11と、第1入力ポート13と、第2入力ポート12と、Z80CPU相当品を内蔵するワンチップマイコン14と、入出力ポートのチップセレクト信号を生成するデコーダ15と、第1出力ポート16と、第2出力ポート17と、第1出力ポート16から受けた駆動信号を払出モータM1に供給するトランジスタ群(オープンコレクタ)18とを中心に構成されている。
なお、この実施例では、入力バッファ10、第1と第2の入力ポート12,13は、74541相当品のバスバッファで構成され、デコーダは、74138相当品で構成されている。また、出力ポート16,17は、74273相当品のD型フリップフロップで構成されている。
図示の通り、第1入力ポート13のbit0,bit1には、左右の賞球計数スイッチSW1(R,L)からの信号が供給され、bit2,bit3には、左右の球貸し計数スイッチSW2(R,L)からの信号が供給されている。また、bit4には、マニュアル操作される異常解除スイッチERSからの信号が供給され、bit5には電源基板7からのRAMクリア信号RAMCLRが供給されている。なお、第1の入力ポート13のbit6〜7には球貸し機22からの制御信号BRDY,BRQが供給されている。
先に説明した通り、第2入力ポート12には主制御基板1からの制御コマンドが伝えられるが、主制御基板1からは、制御コマンドの伝送に合わせてストローブ信号STBが供給される。このストローブ信号STBは、CPUコアの割込み端子(maskable interrupt)に供給されるので、これに応じて、払出制御基板5では受信割込みルーチンが起動し、制御コマンドを取得するようになっている。
第1出力ポート16のbit3〜bit0からは、(Φ4,Φ3,Φ2,Φ1)=0101B→0110B→1010B→1001B→0101B→・・・の駆動パルスデータが時間順次に払出モータM1に対して出力される(図5参照)。また、第1出力ポートのbit4にはLED駆動信号がエラー報知ランプERLに出力され、bit7からは、不図示のウォッチドッグタイマ回路のクリア信号が所定時間毎に出力されるようになっている。
一方、第2出力ポート17のbit0からは、切換えレバーLEの姿勢を切換える際に、切換え信号が切換えソレノイドに対して出力される。また、第2出力ポート17のbit3からは外部出力用の球貸し情報信号が出力され、bit6,bit7からは球貸し機22に対して、制御信号PRDY,EXSが出力される。
図7は、図6に示す払出制御基板5で実行されるプログラムを説明するフローチャートである。払出制御基板5の動作は、概説すると、電源投入後に開始されて無限ループ状に繰り返されるメインルーチン(図7(a))と、主制御基板1からのストローブ信号STBによって起動される割込み処理ルーチン(図7(b))と、一定時間(2mS)毎に開始されるタイマ割込みルーチン(図7(c))と、電源電圧降下時に電源基板7からNMI信号を受けて開始されるマスク不能のNMIルーチン(図7(d))とで構成されている。
図7(b)に示すように、受信割込みルーチンでは、第1入力ポート12から制御コマンドを取得して、これをRAMのコマンドバッファ領域に格納して処理を終える(ST100)。また、図7(c)に示すように、タイマ割込みルーチンでは、割込み確認フラグを5AHに書き換えて処理を終える(ST200)。この割込み確認フラグの値は、メインルーチンのステップST10においてチェックされ、この値が5AHであることを条件にメインルーチンの処理が進行するようになっている。すなわち、メインルーチンの割込み待ち処理(ST10)では、割込み確認フラグが5AHとなるのを待ち、5AHとなれば割込み確認フラグを00Hに書換えた後にステップST11の処理に移行する。したがって、ST11以下の処理は2mS毎に繰返し実行されることになる。
図7(d)に示すように、NMIルーチンでは、レジスタの値を退避させた後(ST301)、スタックポインタSPの値をRAMの記憶エリアに保存する(ST302)。次に、第2入力ポート12から制御コマンドを入力し、もし新規の制御コマンドであれば、RAMのコマンドバッファ領域に格納する(ST303)。その後、最低限の処理が終わったことを示すべく、バックアップフラグBAKFLGに5AHを格納した後(ST304)、RAMエリアのチェックサム値(8bit長)を算出して該当エリアに記憶する(ST305)。最後にワンチップマイコンをRAMアクセス禁止状態に設定して(ST305)、無限ループ処理を実行しつつ電源電圧が遮断されるのを待つ(ST306)。
以上の動作を踏まえてメインルーチン(図7(a))の動作内容を説明する。電源基板7から電源電圧が供給されると共に、システムリセット信号SYSRSTが供給されると、CPUを割込み禁止状態に設定した後(ST1)、ワンチップマイコン14各部の初期設定を行う(ST2)。次に、第1入力ポート13からのデータに基づき、電源基板7からRAMクリア信号が供給されているか否かをチェックする(ST3)。この実施例では、パチンコホールの営業開始時であって、特に係員が電源基板7のRAMクリアスイッチをON操作した場合にはRAMクリア信号RAMCLRが供給されるが、停電からの復旧時を含め、通常はRAMクリア信号が供給されない。
そして、RAMクリア信号が供給されない場合には、NMIルーチンのステップST304の処理で記憶されるバックアップフラグBAKFLGの値をチェックし(ST4)、BAKFLG=5AHであれば、次に、NMIルーチンのステップST305の処理で記憶されたチェックサム値を確認する(ST5)。このメインルーチンで算出したサム値と、NMIルーチンで記憶されたサム値とが一致する場合には、バックアップ復帰処理を実行してバックアップ処理前の処理に戻る(ST19)。
バックアップ復帰処理は具体的には図16に示す通りである。先ず、ステップST302の処理でバックアップされたスタックポインタSPの値を復帰させ(ST400)、復帰後払出停止フラグと復帰状態フラブとを5AHに設定する(ST401)。また、復帰処理が完了したことを示すべくバックアップ確認フラグを00Hにクリアし、スタックポインタSPの記憶エリアをゼロクリアする(ST401)。その後、レジスタの値を復帰させ(ST402)、NMI処理の実行前の状態に戻る。
ところで、ステップST401の処理によって復帰状態フラグが5AHに設定されたことにより、復帰状態フラグが00Hにクリアされるまでは、主制御基板1から伝送される制御コマンド(払出停止コマンドか払出再開コマンド)は、通常のコマンドバッファではなく、特別な復帰用のコマンドバッファ領域に格納される。なお、5AHに設定された復帰状態フラグは、払出停止コマンドか払出再開コマンドを、復帰用のコマンドバッファ領域に格納した段階でゼロクリアされる。
以上、電源投入時にRAMクリアスイッチがON操作されない場合を説明したが、図7に戻ってメインルーチンの説明を続ける。営業開示時に係員がRAMクリアスイッチをON操作した場合、及び、NMIルーチンが正常に終了するまでに電源電圧が降下したような場合には、ワンチップマイコン14のRAM領域がゼロクリアされる(ST7)。なお、NMIルーチンが正常に終了するまでに電源電圧が降下したことは、BAKFLG≠5AHであるか、又はチェックサムエラーによって検出され、このような場合には正常なバックアップ復帰が不可能と考えられるのでRAM領域をゼロクリアするのである。
そして、その後、払出停止フラグに5AHを設定して(ST8)、CPUを割込み許可状態に戻す(ST9)。なお、ステップST8における払出停止フラグの設定は、後述する払出モータM1の位置合わせ動作に密接に関係している。
続いて、ステップST10〜ST18の処理が無限ループ状に繰り返されるが、ST11〜ST18の無限ループ処理は、前述した割込み待ち処理(ST10)によって一定時間毎(2mS)に実行される。無限ループ処理では、先ず、第1入力ポート13を通して、スイッチ入力信号が取得される(ST11)。これは、払出モータM1の回転によって遊技球が払出されたか否かを確認するための処理である。続いて、8bit長又は16bit長のタイマの減算処理(−1)が行われる(ST12)。なお、無限ループ処理が2mS毎に実行されることにより、減算タイマの1単位時間は2mSを意味する。
タイマ減算処理が終われば、次に、受信割込み処理によって取得される制御コマンドの解析処理が行われる(ST13)。コマンド解析処理は、図8(a)に示すように、バックアップ復帰時のコマンド解析処理(ST85〜ST88)と、通常時のコマンド解析処理(ST89〜ST90)に区分されるが、これが2mS毎に毎回実行される。
図8(a)に示すように、コマンド解析処理では、先ず、復帰時用のコマンドバッファの値が取得される(ST85)。図16に関して先に説明したように、バックアップ復帰状態であれば、主制御基板1から伝送される最初の制御コマンド(払出停止コマンドか払出再開コマンド)は、復帰時用のコマンドバッファに格納される。なお、主制御基板1は、電源投入時には、バックアップ復帰時も含めて、遊技球に関するエラー状態が検出されない限り、最初に、払出再開コマンドを払出制御基板5に伝送するのは前述した通りである。但し、賞球数指定コマンドを送信中に電源が遮断した場合には、例外的に、賞球数指定コマンドを送信する。一方、下皿満杯状態や遊技球の補給切れを検出すれば、主制御基板1は、最初に払出停止コマンドを伝送する。
復帰時用のコマンドバッファから払出停止コマンドか払出再開コマンドが検出されるのは、停電状態などからの復帰時か、或は、電源投入時に係員がRAMクリアスイッチを操作しない場合であるが、もし、払出再開コマンドが検出されたら、払出リトライフラグを5AHに設定し、モータ停止タイマを250に設定する(ST87a)。また、払出停止フラグと復帰後払出停止フラグとを00Hにクリアする(ST87a)。
払出停止フラグと復帰後払出停止フラグとがクリアされたことにより、払出動作が可能となるが、払出リトライフラグ=5AHとなったことにより遊技球を1個払出すまで払出モータをゆっくり回転させるリトライ動作ステイタスモード(図11(b))に設定されたことになる。また、モータ停止タイマ=250となったことにより、このリトライ動作によるに遊技球の払出に先立って、500mS(=250×2)だけモータが停止状態に維持されることになる。ここで、モータの停止状態とは、ステッピングモータMに同じ駆動パルス(Φ1〜Φ4)が供給され続けることを意味し、ステッピングモータMが非駆動状態(トランジスタ群18が全てOFF)であることとは区別される。
一方、ステップST86の判定の結果、復帰時用のコマンドバッファから払出停止コマンドが検出された場合には、払出停止フラグを5AHに設定し、復帰後払出停止フラグをクリアする(ST87b)。そして、ステップST87a,ST87bの何れの処理を実行した場合も、復帰時用のコマンドバッファの値はゼロクリアされる(ST88)。
図16に関して説明したように、復帰時用のコマンドバッファが使用されるのは、復帰状態フラグが5AHの場合に限られ、この復帰状態フラグは、復帰時用のコマンドバッファを1度でも使用するとクリアされるので、結局、ステップST87aかST87bの何れかの処理が実行された後は、ステップST87〜ST88の処理は常にスキップされることになる。
したがって、その後は、2mS毎に新規に受信した制御コマンドの解析処理(ST89,ST90)が行われることになる。具体的には、新規に受信した制御コマンドの正当性が確認されると(ST89)、制御コマンドの下位8bitであるEVENTデータのチェックが行われる(ST90)。
図8(b)はイベントチェック処理(ST90)の内容を図示したものであり、先ず、新規に受信した制御コマンドが払出再開コマンドか否かが判定される(S91)。ここで、払出再開コマンドが検出される場合とは、RAMクリアスイッチを操作して電源を投入した場合か、電源遮断時にバックアップ動作が不完全であって、且つ、遊技球に係わる異常事態が生じていない場合である。
そのような場合には、払出動作を停止すべきか否かを規定している払出停止フラグの値が判定され(ST92)、払出動作が可能な場合には、払出停止フラグ=00H、払出リトライフラグ=5AH、モータ停止タイマ=250に設定される(ST93)。
払出リトライフラグ=5AHとなったことにより、遊技球を1個払出すまで払出モータをゆっくり回転させるリトライ動作ステイタスモード(図11(b))に設定されたことになる。また、モータ停止タイマ=250となったことにより、このリトライ動作によるに遊技球の払出に先立って、500mS(=250×2)だけモータが停止状態に維持される。この点は、バックアップ復帰処理(S19)を経過して遊技機の動作が開始された場合と同様である。
ステップST91の判定がNOの場合には、新規に受信した制御コマンドが払出停止コマンドか否か判定される(ST94)。そして、払出停止コマンドが受信されていた場合には、払出停止フラグの値が判定され(ST95)、もし00Hであれば払出動作を停止すべく、払出停止フラグ=5AHに設定する(ST96)。
一方、ステップST94の判定の結果、新規に受信した制御コマンドが遊技球の払出個数を規定する賞球数指定コマンドであった場合には、全賞球数カウンタに、新たに指示された賞球数を加える(ST97)。このように、コマンド解析処理(ST13)によって、遊技機から払出すべき遊技球の総数が、受信した制御コマンドに基づいて順次更新されている(ST97)。
以下、図7に戻ってメインルーチンの説明を続けると、コマンド解析処理が終わると、続いて、球貸し機22とのカード通信処理(ST14)が行われる。このカード通信処理(ST14)は、払出制御基板5と球貸し機22との間の制御信号(BRDY,BRQ,EXS,PRDY)に基づいて実行され、図19の動作タイミング(a)〜(g)を実現するものである。
カード通信処理(ST14)の具体的な処理内容は、動作ステイタスCJOBSTの値によって管理されており、初期状態では、動作ステイタスCJOBST=0のBRDY待ち処理となる。このBRDY待ち処理において、球貸しモード信号BRDY入力がHレベルになるのを待ち、球貸しモード信号BRDY入力がHレベルに変化すると、動作ステイタスCJOBSTを00Hから01Hに変化させてBRQ待ち処理に移行する(図19のタイミング(b))。
BRQ待ち処理では、貸出要求完了確認信号BRQ入力がHレベルとなるのを待ち、貸出要求完了確認信号BRQ入力がHレベルになると、動作ステイタスCJOBSTを01Hから02Hに変化させて球貸し開始待ち処理に移行する(図19のタイミング(c))。球貸し開始待ち処理では、現在が賞球動作中か否かが先ず判定され、賞球動作が終わるまでは、次の動作ステイタスCJOBST=03Hに移行しないようになっている。
球貸し開始待ち処理において、現在が賞球動作中でないことが確認されたら、所定時間後に、動作ステイタスCJOBSTを02Hから03Hに変化させる。また、これに合わせて、貸出完了信号EXS出力をHレベルに変化させる準備処理をした後、球貸し開始処理に移行する(図19のタイミング(d))。なお、Hレベルの貸出完了信号EXS出力は、その後のデータ出力処理(図7のST18)によって出力される。
球貸し開始処理では、貸出要求完了確認信号BRQ入力がHレベルからLレベルに変化するのを待ち、貸出要求完了確認信号BRQ入力がLレベルに変化すると、動作ステイタスCJOBSTを03Hから04Hに変化させて球貸し中処理に移行する。なお、動作ステイタスCJOBST=03Hの状態では、図1のステップ15の球貸し処理において、切換えソレノイドを切換えて球貸し通路を確保する準備動作が実行され、その後のデータ出力処理(図7のST18)においてソレノイド切換え信号が出力されて遊技球の通路が球貸し側となる。
動作ステイタスCJOBST=04Hの球貸し中処理では、球貸しフラグTAMFLGの値が繰返しチェックされ、球貸しフラグTAMFLGの値が00Hとなれば、動作ステイタスCJOBSTを04Hから05Hに変化させて球貸し終了待ち処理に移行する。なお、球貸しフラグTAMFLGは、他の処理によって実行される球貸し動作が完全に終了すると00Hとなるようになっている。
動作ステイタスCJOBST=05Hの球貸し終了待ち処理では、球貸しモード信号BRDY入力と貸出要求完了確認信号BRQ入力がチェックされ、球貸しモード信号BRDY入力と貸出要求完了確認信号BRQ入力が共にLレベルなら動作ステイタスCJOBSTを05Hから00Hに変化させ、BRDY待ち処理に移行する(図19のタイミング(g))。
一方、球貸しモード信号BRDY入力と貸出要求完了確認信号BRQ入力が共にHレベルなら、動作ステイタスCJOBSTを05Hから06Hに変化させ、球貸し開始待ち処理に移行する(図19のタイミング(c)’)。球貸し開始待ち処理に移行した後の処理は、上記した動作と同じであり、球貸し開始処理(CJOBST=03H)→球貸し中処理(CJOBST=04H)を経て、再び、球貸し終了待ち処理(CJOBST=05H)となる。
以上のように、ステップST14のカード通信処理によって、球貸し機22との関係で、払出制御基板5の動作状況が把握され、把握内容は、動作ステイタスCJOBSTの値(00H〜06Hなど)として記憶される。そして、この動作ステイタスCJOBST値は、以下の球貸し処理(ST15)において参照される。
球貸し処理(ST15)では、図20に示すように、先ず、払出ソレノイド処理(RT10)が行われる。払出ソレノイド処理(RT10)は、詳細には、図21(a)に示す通りであり、ソレノイドフラグCSOLFLGをゼロにした後(RT30)、カード処理の動作ステイタスCJOBSTの値をロードする(RT31)。動作ステイタスCJOBSTの値は、球貸し機22との通信の結果に応じて、カード通信処理(図7のST14)において図21(b)のように設定される。
したがって、払出切換えソレノイド処理のステップRT32では、動作ステイタスCJOBSTの値が03H以上か否か判定され、BRDY待ち中(00H)、BRQ待ち中(01H)、球貸し開始待ち中(02H)の何れでもない場合には、次に、動作ステイタスCJOBSTの値が07H以上か否かが判定される。
動作ステイタスCJOBSTの値が07H以上の場合にはエラー状態であるので、対応するエラー処理をするが(RT36)、動作ステイタスCJOBSTの値が03H,04H,05H,06Hの何れかである場合には、ソレノイドフラグCSOLFLGを5AHにして処理を終える(RT35)。
ソレノイドフラグCSOLFLGは、データ出力処理(図7のST18)において、ソレノイド切換え信号を出力するか否かを決定するフラグであり、ソレノイドフラグCSOLFLG=5AHの場合には、その後のデータ出力処理(図7のST18)の動作によって遊技球の通路が球貸し側に変更される。
以上のように、動作ステイタスCJOBSTの値が03H,04H,05H,06Hの何れかである場合には、遊技球の通路を球貸し側に変更する準備をして、払出切換えソレノイド処理(図20のRT10)が完了する。
次に、図20に示す球貸し信号作成処理(RT11)を行った後、球貸し検出処理に移行することになる(RT12)。なお、球貸し信号作成処理(RT11)で生成される球貸し信号は、球貸し状態であることを外部に通知するための信号である。
図20の球貸し検出処理(RT12)の具体的内容は、図22に示す通りであり、データ入力処理(図7のST11)で入力された、左右の球貸し計数スイッチのエッジ信号をCPUのCレジスタに格納する(RT40)。なお、左右の計数スイッチのエッジ信号がCレジスタのBit0とBit1に格納されるが、各Bitの値が1であることは、球貸し動作の結果、実際に払出された遊技球が検出されたことを意味する。
次に、処理回数を管理するBレジスタに2を格納した後(RT41)、Cレジスタの値を右に1Bit回転させる(RT42)。その結果、もともとのBit0の値がCPUのキャリーフラグCYに移動することになるので、次に、キャリーフラグCYの値がチェックされ(RT43)、キャリーフラグCYが1の場合には、球貸しフラグTAMFLGの値が5AHか否か判定される(RT44)。
球貸しフラグTAMFLGは、図22(b)に示すように、現在が待機中か、球貸し中か、終了待ち中かを示すものであり、球貸しフラグTAMFLGが≠5AHの場合は、現在が球貸し動作中ではないこととを意味する。
球貸しフラグTAMFLG≠5AHの場合、現在が待機動作中か、終了待ち動作中であるにも拘わらず、遊技球が払出されたことになり、払出回転体の位置がずれていると考えられるので、位置合わせをするべく、払出リトライフラグを5AHに設定する(RT45)。その結果、図13(a)に示す処理(S1)を経て、払出回転体がゆっくり回転して更に一個の遊技球を払出すことになり、払出回転体の位置合わせが完了する。
一方、ステップRT44の判定で球貸しフラグTAMFLG=5AHと判定された場合には、払出検出フラグPAYFLGに5AHを設定すると共に、払出される遊技球(貸し球)の数を管理している払出残数カウンタの値をデクリメント(−1)する(RT46)。なお、払出検出フラグPAYFLG=5AHは、遊技球を検出したことを意味しており、図14(b)の処理などで参照される。
次に、デクリメントされた払出残数カウンタの値を判定して、もしゼロになっていたら、払出モータフラグMOTFLGにA5Hを設定すると共に、球貸しフラグTAMFLGにA5Hを設定する。払出モータフラグMOTFLG=A5H、及び、球貸しフラグTAMFLG=A5Hは、ともに現在が、終了待ちの動作中の動作モードであることを意味している。なお、払出モータフラグMOTFLG=A5Hである場合、図11に示すモータ処理では、ステップST64からST65に処理が移行する。
以上の処理によって左右の球貸し計数スイッチの一方側についての処理が終わるので、Bレジスタの値をデクリメントし(RT49)、デクリメント後の値がゼロでなければ、左右の球貸し計数スイッチの他方側の処理を実行すべく、ステップRT42の処理に戻る(RT50)。このように、ステップRT42〜RT50の処理を二回行うことによって、左右の球貸し計数スイッチによる遊技球の検出結果が適宜に処理される。
以上のようにして図22に示す球貸し検出処理が終わると、図20に示すように、カード処理動作ステイタスCJOBSTの値がロードされ(RT13)、その値が04Hか否か判定される(RT14)。カード処理動作ステイタスCJOBST=04Hである場合には、図21(b)に示すように、現在が球貸し中であることを意味するが、球貸し中の動作であれば、次に、球貸しフラグTAMFLGの値をロードし(RT15)、その値が判定される(RT16)。
球貸しフラグTAMFLGの値は、図20(b)に示すように、現在が待機中であるか(=00H)、球貸し中であるか(=5AH)、終了待ち中であるか(=A5H)を示している。そこで、球貸しフラグTAMFLG=00Hの場合には、球貸し動作を実際に開始するべく、払出残数カウンタに25を設定し、球貸しフラグTAMFLGと払出モータフラグMOTFLGにフラグ値5AHを設定する。
ここで、払出残数カウンタ=25とするのは、一単位の球貸し数が25個であるためである。そして、この払出残数カウンタの値(=25)に基づいて、図13のステップS2の処理によって、ステップカウンタの初期値が設定され、払出モータの総回転数(動作ステップ総数)が決まることになる。なお、ステップカウンタによって管理される払出モータの動作は、図11及び図13〜図15に関して後述する。
また、ステップRT17の処理の結果、球貸しフラグTAMFLG=5AHとなったことにより、これ以降は、球貸し中であるとして処理される。更にまた、払出モータフラグMOTFLG=5AHとなったことにより、図11のステップST64からステップST65に処理が移行することになり、動作ステイタス=0のモータ駆動開始処理(ST67a)が実行される。
モータ処理に関する動作ステイタスは、その後、0→1→2と変化してモータ停止中処理(図14(a))に移行し、不足なく遊技球が貸出されたら、動作ステイタス=0に戻る。
一方、ステップカウンタが0となったにも拘わらず、払出モータフラグMOTFLG=5AHのままであった場合には(図22のステップRT48を不通過)、動作ステイタスが2から3に変化して(図14のS22)、モータ・リトライ中処理(図14(b))となる。そして、モータリトライ処理では、遊技球を一個検出するまで、払出回転体がゆっくり回転し、更に、不足分がある場合には、通常の速度で残りの遊技球が払出される(図14(b)及び図11(b)参照)。
一方、図20のステップRT16の判定で、球貸しフラグTAMFLG≠00Hであった場合は、球貸しフラグTAMFLGがA5Hか否かが判定される(RT19)。ここで、球貸しフラグTAMFLG≠A5H(つまりTAMFLG=5AH)の場合には、図22のステップRT48の処理を経ていないと考えられるので何もしないが、球貸しフラグTAMFLG=A5Hの場合には、ステップRT48の処理を経ていると考えられるので、球貸しフラグTAMFLG=00Hに設定する(図20のRT20)。これによって、動作モードは、終了待ちから待機中の状態に移行する。
以上の通り、この実施例では、球貸し機22の信号レベルと、他の処理による球貸し完了状態とをカード通信処理(ST14)で把握して、現状に対応じた動作ステイタス値を設定する一方、球貸し処理(ST15)では、設定された動作ステイタス値によって遊技球の払出通路を切換えると共に、払出した遊技球の個数を管理しており円滑な球貸し処理が実現される。
以上のような本実施例に特徴的なカード通信処理(ST14)と球貸し処理(ST15)が完了すると、次に、賞球処理(ST16)とモータ処理(ST17)とデータ出力処理(ST18)とが行われ、ステップST10の処理に戻る。
モータ処理(ST17)は、払出モータM1を回転させるための準備処理であり、具体的には、払出モータM1用の駆動データ(Φ1〜Φ4)を生成してワークエリアMOOUTに格納している。一方、データ出力処理(ST18)は、前記した駆動データを含む各種のデータを、第1と第2の出力ポート16,17から出力する処理である。また、賞球処理(ST16)は、賞球の払出数を管理する処理であり、コマンド解析処理(ST13)によって更新された全賞球数カウンタの値に基づいて払出数を決定し、データ出力処理(ST18)によって払出モータM1を回転させると共に、データ入力処理(ST11)で把握される遊技球の払出し状態を参照して払出モータの動作終了タイミングなどを決定している。
賞球処理(ST16)とモータ処理(ST17)の説明に先立って、図15に基づいてデータ出力処理(ST18)から説明する。データ出力処理では、先ず、モータ処理(具体的には図11のST68)で用意されたモータ駆動データをMOOUT番地から取得する(ST70)。なお、モータ駆動データは2進数で0101,0110,1010,1001の何れかであり、それらが図5に示すように出力されることで払出モータM1が回転する。なお、この実施例では、通常時、払出モータM1の1ステップの回転時間が18mSに設定され、4ステップ分のデータ駆動データの出力によって払出モータM1が30度回転して遊技球を1個払出すように設定されている。なお、払出モータM1の1ステップの回転時間は、モータ駆動タイマで管理されており、1ステップ分の回転時間18mSが、タイマ割込み9回分に相当することから、通常動作時にはモータ駆動タイマの初期値は9に設定される。
何れにしてもステップST70の処理によって、モータ駆動データがBレジスタに用意されたら、LEDフラグが5AHにセットされているか判定される(ST71)。LEDフラグとは、払出動作の異常状態が所定時間(22.4秒)継続した場合に、エラー報知ランプERL(図6参照)を点灯させるためのフラグである。したがって、LEDフラグが5AHであれば、Bレジスタのbit4を1にセットする(ST73)。
次にBレジスタのbit7を1に設定し(ST73)、Bレジスタの値を、第1出力ポート16に出力する(ST74)。この結果、払出モータM1には駆動データが出力され、エラー報知ランプERLが点灯又は消灯する。また、Bレジスタのbit7は、ウォッチドッグタイマに出力されるので、時間消費処理(ST75)の後、bit7をゼロに戻して、第1出力ポート16から再出力している(ST7)。この動作によってウォッチドッグタイマがゼロクリアされるが、プログラムの暴走によって、本来2mS毎に実行されるべきデータ出力処理(ST18)が実行されなくなると、ウォッチドッグタイマ回路の動作に基づいてCPUが強制的にリセットされることになる。
何れにしてもステップST76の処理に続いて、切換えソレノイドフラグ、球貸し信号フラグ、PRDYフラグ、EXEフラグを参照して、該当ビットをセットしたデータを第2出力ポート17に出力する(ST78)。この動作の結果、場合によっては、球貸し情報信号が外部に出力され、切換えレバーLE(図3)の姿勢が変更される。なお、PRDY信号やEXE信号は、球貸し機22に出力される制御信号である。
以上、図7に示すメインルーチンについて概略的に説明したが、続いて、図9〜図14を参照しつつ、賞球処理(ST16)とモータ処理(ST17)とを詳細に説明する。図9に示すように、賞球処理では、最初に賞球が検出されたか否かが判定される(ST20)。賞球の払出は、データ出力処理(ST18)に起因して払出モータM1が1ステップ回転した場合に生じ得るが、もし、払出があればステップST11の処理によってスイッチエッジデータとして取得されている。なお、この実施例では、スイッチエッジデータのbit0が、左賞球計数スイッチの検出状態を表し、bit1が右賞球計数スイッチの検出状態を表している(図6参照)。
賞球検出処理(ST20)の具体的内容は図10に示す通りであり、左右の賞球データ(スイッチエッジデータのbit0とbit1)を変数D1に取得すると共に、Bレジスタに2を設定する(ST40)。次に、変数D1を右に1ビットシフト演算することで、スイッチエッジデータのbit0の内容をキャリーフラグCYに移動させる(ST41)。
CY=1であれば左賞球計数スイッチがONであることを意味するが、この段階では払出モータの回転が開始されていないのでCY=0のはずである。そこで、Bレジスタの値を−1して(ST49〜ST50)、更に変数D1を右に1ビットシフト演算する(ST41)。この段階でCY=1であれば右賞球計数スイッチがONであることを意味するが、この段階では払出モータの回転が開始されていないのでCY=0のはずである。したがって、ステップST49〜50の処理を経て賞球検出処理を終える。
一方、払出モータM1の回転が開始された後は、ステップST42の判定でCY=1となる場合がある。そこで、その場合には、賞球フラグの内容をチェックする(ST43)。賞球フラグは、本実施例の払出動作を管理するフラグの一つであり、当初は00Hであるが、払出残数カウンタに1単位分(25個以下)の払出数を設定した段階で5AHに設定されるようになっている(図9のST27〜ST29)。そして、1単位分の払出が終わり、払出残数カウンタの値がゼロになると賞球フラグの値がA5Hに変更され(図10のST48)、その後直ちに初期状態の00Hに戻される(図9のST31)。
したがって、最初は、賞球フラグが00Hであるので、賞球計数スイッチがONであったことに対応して払出検出フラグPAYFLGを5AHに設定すると共に、払出残数カウンタを−1する(ST45〜46)。次に、払出残数カウンタの値がゼロか否かを判定して(ST47)、もしゼロなら払出モータフラグMOTFLGと賞球フラグをA5Hに変更する(ST48)。払出モータフラグMOTFLGは、払出モータM1が駆動状態か否かを決定するフラグであり、賞球フラグとほぼ連動して変化している。
具体的には、図17に示す通りであり、最初は、払出モータフラグMOTFLGは00Hであるが、払出残数カウンタに1単位分(25個以下)の払出数を設定した段階で5AHに設定される(図9のST27〜ST29)。そして、1単位分の払出が終わり、払出残数カウンタの値がゼロになるとA5Hに変更される(図10のST48)。その後、更に、払出動作が持続する場合には、賞球フラグがゼロにされた後(ST31)、払出残数カウンタに1単位分の払出数を設定した段階で5AHに戻される(ST27〜ST29)。一方、不足分なく全賞球数を払出して払出動作が完了した場合には、00Hに戻される(図14のS27,S40)。
この実施例では、払出モータフラグMOTFLGは、払出モータM1を駆動状態にするか非駆動状態にするかを規定しており、払出モータフラグMOTFLGが5AH又はA5Hであれば、モータ駆動状態となるが00Hであれば非駆動状態となる。ここでモータ駆動状態とは、第1出力ポート16に有意な駆動データ(2進数0101,0110,1010,1001の何れか)が出力されていることを意味し、非駆動状態とは、第1出力ポート16に2進数0000が出力されていることを意味する。なお、第1出力ポート16に2進数0000が出力されると、オープンコレクタタイプのトランジスタ群18が全てOFF状態となり、払出モータM1は自由回転状態となる(図6参照)。
以上の通り、本実施例では、払出モータフラグMOTFLGや賞球フラグがA5Hである場合は、1単位分の遊技球の払出が完了した状態である。したがって、図10に示すステップST48の処理の後、ステップST41の判断においてCY=1となることは本来あり得ない。万一、賞球フラグ=A5Hか00Hの状態で払出が検出された場合(CY=1)は、本来の払出完了後に遊技球の自重などに基づいて、余分の賞球が誤って払出されたものと考えることができる。
そこで、賞球フラグ=A5H又は00Hの状態でCY=1となった場合には、払出リトライフラグを5AHにセットしている(ST44)。払出リトライフラグは、動作ステイタス=0の動作状態を動作ステイタス=3に変更するためのフラグであり(図13のS1)、その後は、1個目の遊技球の払出を検出するまで、モータを格段にゆっくり回転させる(実施例では9/350倍)。遊技球が誤って賞球が払出された以上、払出モータの停止位置は本来の位置からずれていると考えられるので、本来の位置に修正するのである。
図4は、払出モータM1の本来の停止位置を説明する図面であり、遊技球の払出直前の状態(図4(a))と、遊技球を払出し終わった状態を示している。なお、この実施例では、払出モータは、1ステップで7.5度づつ回転するよう設計されているので、駆動データが1つ進むことにより、図4(a)の状態から図4(b)の状態に移行する。そして、左右一方側の遊技球を払出した図4(b)の状態から、更に4ステップ分だけ動作が進行すると左右他方側の遊技球が払出されることになる。つまり、図4(b)の状態は、左右他方側の遊技球が自重などで誤って払い出される可能性が最も低い状態であると考えられる。
かかる点を踏まえ、本実施例では、遊技球を払出し終わった図4(b)の状態を、払出モータの停止位置(ホームポジション)に設定している。但し、払出モータのその後の運転に伴って、機器精度上の問題からホームポジションが時計方向にずれたり、或いは機器精度上の問題や遊技球の自重によって反時計方向にずれる可能性もある。
そこで、遊技球の払出不足(通常、ホームポジションの時計方向へのずれが原因と考えられる)や、遊技球の過払出(通常、ホームポジションの反時計方向へのずれが原因と考えられる)が生じた場合には、動作ステイタス=3に変更して(図13のS5参照)、次回の払出動作時、最初の1個の遊技球が払出されるまで、7.5度づつ払出モータM1をゆっくり回転させてホームポジションのずれを修正している(リトライ処理)。
以下、図9の賞球処理を説明すると、賞球検出処理(ST20)の後、先ず賞球フラグの値がチェックされる(ST21)。払出モータの駆動が開始されていない状態では、賞球フラグは00Hであるので(図17)、データ入力処理(ST11)で更新された全賞球数カウンタの値が変数D1に取得される(ST22)。そして、変数D1がD1≠0であれば、1単位分の払出数の最大値25を変数D2に格納し、変数D1から変数D2を減算する(ST24)。
次に減算結果が負か否か判定され(ST25)、もし負なら変数D2に全賞球数カウンタの値を格納すると共に、変数D1をゼロにする(ST26)。その後、払出残数カウンタに変数D2の値を格納すると共に、変数D1の値を全賞球数カウンタに格納する(ST27,ST28)。以上の処理の結果、全賞球数NがN>25であれば、払出残数カウンタには、1単位分の払出数の最大値25が設定され、全賞球数がN−25に更新される。一方、賞球処理開始時に、全賞球数NがN<25であれば、払出残数カウンタにはその値Nが設定され、全賞球数はゼロとなる。なお、ステップST27の処理で設定される払出残数カウンタの初期値は、通常は5個、10個、25個の何れかである。
その後、賞球フラグと払出モータフラグMOTFLGが5AHに設定されて賞球処理が終わるが(ST29)、5AHに設定された賞球フラグは、図10のステップST48の処理でA5Hに変更されるまではその値を維持するので、次回の賞球処理においては、ステップST21からステップST30に処理が移行し、賞球検出処理を行うだけで賞球処理を終えることになる。その後、賞球フラグがA5Hに変更されると、ステップST31の処理によって賞球フラグが00Hに戻され、更にその次の賞球処理(ST16)では、図9のステップST22〜ST29の処理が再実行されることになる。
図11(a)は、モータ処理(ST17)の具体的内容を図示したフローチャートである。モータ処理では、最初に払出エラー処理(ST60)が実行される。払出エラー処理とは、エラー報知ランプERLを点灯させるか、リトライ処理を開始させる準備処理であり、具体的内容は図12に示す通りである。払出エラー処理では、先ず、払出エラーフラグがチェックされ、これが5AHにセットされていたら、データ入力処理(ST11)で取得されたデータ(スイッチエッジデータ)のbit4の値を判定する(S81)。
払出エラーフラグは、リトライ処理を32回繰り返しても賞球の払出がなかったことを示すフラグであり、エラー報知ランプERLの点灯を指示するLEDフラグと共にステップS80の処理で5AHに設定されている。また、スイッチエッジデータのbit4は、第1入力ポート13のbit4に対応して異常解除スイッチERSのON/OFF状態を示している(図6)。そして、異常解除スイッチERSは、異常報知ランプERLの点灯に対応して係員が払出モータM1に係わる異常状態を解消した後に手動操作によってON状態とされるものである。
したがって、払出エラーフラグが5AHの場合には、異常解除スイッチがON操作されるのをひたすら待ち、ON操作がステップS81,S82の判定で確認されたら、払出エラーフラグとLEDフラグを00Hに戻し、リトライカウンタ、賞球計数カウンタ(2つ)、及び球貸し計数カウンタ(2つ)をクリアする。また、モータ停止タイマに250を設定し、払出リトライフラグに5AHを設定する。
モータ停止タイマは、モータを回転させるに先立って、払出モータを駆動状態のまま停止させるためのものであり(図11のST65、ST68参照)、250に初期設定されたことにより、異常解除スイッチがON操作された後も0.5秒間は払出モータが停止状態に駆動される(同一の駆動データが出力され続ける)。したがって、異常事態の修理のために開放した遊技機を閉鎖したことによって、払出モータM1に強い振動が加わってもモータの停止位置がずれることはない。また、払出リトライフラグが5AHに設定されたことによって、修理完了後にリトライ処理が開始されて、払出モータM1が正しくホームポジションに設定される。
一方、ステップS70の判定で払出エラーフラグが5AHでないとされた場合には、リトライカウンタの値がチェックされる(S71)。リトライカウンタは、1ステップ分のリトライ処理をしても、遊技球が検出されない毎にカウントアップされるものである(図14のS31〜S33)。そして、図18の最終行に図示のように、32回リトライ処理を繰り返しても遊技球が検出されない場合には払出エラーフラグとLEDフラグとが5AHに設定される。この動作の結果、その後は、エラー報知ランプが点灯されると共に(図15のST72〜74)、払出モータの駆動動作がキャンセルされる(図11のS62〜S63)。なお、この状態は、異常解除スイッチのON操作で解消されるのは前述した通りである。
ステップS71の判定でリトライカウンタの値が32未満と判定された場合には、ステップST11の処理で取得された賞球計数スイッチや球貸し計数スイッチの情報をスイッチエッジデータに基づいて判定し、左右賞球計数スイッチ、左右球貸し計数スイッチの計数カウンタを+1する(S74〜S79)。なお、計数カウンタは4つ用意されているが、一回のデータ入力処理(ST11)で検出される遊技球は正常状態では1個であるから、一回の払出エラー処理によってカウントアップされるカウンタは1つである。
以上の通り、払出エラーでないことを条件に、左右賞球計数スイッチ用の計数カウンタ(2つ)か、又は左右球貸し計数スイッチ用の計数カウンタ(2つ)のいずれか一つのカウンタ値を+1している(S74〜S79)。図3に示す払出回転体ROの構造から明らかなように、例えば、賞球動作においては、左賞球計数スイッチが遊技球を検出した後は、(通常4×18mS後に)右賞球計数スイッチが遊技球を検出するはずである(図4、図5参照)。つまり、一方の賞球スイッチが連続して遊技球を検出することは本来有り得ない。
しかし、左右の賞球計数スイッチに至る左右の遊技球通路が詰まっているとか、或いは、左右一方の賞球計数スイッチが断線状態であるなどの理由によって、一方の賞球計数スイッチが連続して遊技球を検出することも有り得る。そこで、この実施例では、左右一方の賞球計数スイッチが遊技球を検出したら、他方の賞球計数スイッチ用の計数カウンタ値をゼロにして、賞球計数スイッチが連続して何個の遊技球を検出するかを計数している(S75,S77)。この動作によって、正常状態では、左右賞球計数スイッチ用の計数カウンタ(2つ)も、左右球貸し計数スイッチ用の計数カウンタ(2つ)の値も払出エラー処理の終了時には全てゼロとなる。
一方、異常時には、払出エラー処理の終了時にゼロに戻らない計数カウンタが残ることになる。通常、賞球計数スイッチに連通する遊技球通路の詰りは自然に解消されるので、25個もの遊技球が連続して一方の賞球計数スイッチで検出される場合とは、他方の賞球計数スイッチが故障している可能性が高い。そこで、この実施例では、計数カウンタの計数値が25を越えた場合は致命的なトラブルであると判定して、ステップS80に移行させるようにしている(S75)。
図11に説明を戻すと、払出エラー処理(ST60)が終わると、モータ出力データを格納しているMOOUT番地の内容をクリアし(ST61)、払出停止フラグと復帰後払出停止フラグと払出エラーフラグの全てがゼロであるか否かが判定される(ST62〜63)。電源投入時や電源復旧時には、それぞれ払出停止フラグや復帰後払出停止フラグが5AHに設定されているので(ST8,ST401)、モータ出力データは2進数0000のままであり(ST61参照)、データ出力処理(ST18)に係わらず、払出モータM1が駆動されない。なお、この点は、払出エラーフラグが5AHの場合も同様である。
一方、ステップST63の判定でエラー無しと判定された場合には、払出モータフラグMOTFLGの値がチェックされ、これがゼロでない限り、モータ停止タイマの値がチェックされる(ST64,ST65)。モータ停止タイマの値は、タイマ減算処理(ST12)によって2mS毎に−1されているが、この値がゼロになるまでは、払出モータが停止状態のまま駆動され続ける(ST68)。
モータ停止タイマの値がゼロの場合には、そのときの動作ステイタスの値に応じてモータ駆動開始処理(ST67a)、モータ駆動中処理(ST67b)、モータ停止中処理(ST67c)、モータリトライ中処理(ST67d)の何れかが実行された後、これらの処理で決定された払出モータM1の位置に応じてモータ駆動データが選択されMOOUT番地に格納される。
この実施例では、払出モータM1の位置は0〜3で管理されており(図5参照)。例えば、モータ位置(0、1、2、3)に応じて、それぞれモータ駆動データ(0101B、0110B、1010B、1001B)が出力される。なお、Bは2進数を意味している。
図13〜図14は、モータ駆動開始処理(ST67a)、モータ駆動中処理(ST67b)、モータ停止中処理(ST67c)、及びモータリトライ中処理(ST67d)の具体的内容を図示したものである。初期状態では動作ステイタスは0であるので図13(a)モータ駆動開始処理が実行される。
モータ駆動開始処理では、払出リトライフラグの値がチェックされ(S1)、払出リトライフラグ≠5AHであれば、払出残数カウンタの値を4倍してステップカウンタに格納する(S2)。払出残数カウンタの初期値は、ステップST27の処理で設定された1単位分の払出量N(=25個以下)である。そして、この実施例では払出モータM1に4ステップの駆動データを供給して30度回転させ、遊技球を1個払出すようにしているので、払出モータM1に供給すべき一連の駆動データの総数として、4×Nの値をステップカウンタに設定しているのである。
以上のようにしてステップカウンタの初期値を設定した後、動作ステイタスを1に変更すると共に、モータ駆動タイマを9に初期設定して処理を終わる(S3〜S4)。モータ駆動タイマは、払出モータM1に駆動データを供給する時間間隔を指定するものであり、初期設定されたモータ駆動タイマは、ステップS12のタイマ減算処理で−1されるので、この場合には図5に示す時間間隔(=18mS)でモータ位置が変化することになる。なお、モータ駆動タイマがゼロになる毎にステップカウンタが−1される。
動作ステイタスが0の場合、払出リトライフラグが5AHの場合には、動作ステイタスが3に変更される(S5)。また、モータ駆動タイマが350に設定され払出リトライフラグと払出検出フラグPAYFLGがゼロクリアされる。動作ステイタスが3に変更されると、その後リトライ処理が開始させることになるが、モータ駆動タイマが350に初期設定されたことにより、以降は、1ステップ700mS(=2×350)の時間間隔で極めてゆっくり払出モータM1が駆動されることになる。なお、ステップS5〜S7の処理が実行されるのは、遊技球の過払出でモータ駆動開始処理が開始された場合であり(図10のST44参照)、そのため、ステップST45の処理で5AHに設定されている払出検出フラグPAYFLGをゼロクリアしている。
図13(a)のステップS3の処理によって動作ステイタスが1に設定された後は、図13(b)に示すモータ駆動中処理が実行される。ここでは、先ず、モータ駆動タイマの値がチェックされ(S10)、ゼロでなければ何もしないで処理を終える。したがって、例えば、モータ駆動タイマが9に初期設定された場合には、9回のモータ処理(ST17)では同一の駆動データを出力することになる(ST67b〜ST68)。その後、モータ駆動タイマがゼロになると、4×Nに初期設定されているステップカウンタの値を−1すると共に、モータ位置を0〜3の範囲で+1する(S11〜S12)。
その後ステップカウンタの値が判定され(S13)、ゼロでなければ再度、モータ駆動タイマを9に初期設定して処理を終える(S14)。一方、ステップカウンタの値がゼロになった場合には、形式的には1単位分(N≦25)の遊技球の払出を終えたことになるので、動作ステイタスを2に変更すると共に、モータ駆動タイマの値を350に初期設定する(S15〜S16)。なお、ステップカウンタの値がゼロになったことにより、形式的には(時間的には)、1単位分(N≦25)の遊技球の払出を終えたことになるが、実際には払出量が過不足している場合も有り得る。
払出量が不足する場合は、払出残数カウンタがゼロになっていないので、払出モータフラグMOTFLGがA5Hに変更されず5AHのままであり、一方、払出モータフラグMOTFLGがA5Hであれば払出残数カウンタがゼロになったことを意味する(ST48参照)。但し、払出残数カウンタがゼロになった後に更に払出がされる可能性もあり、払出モータフラグMOTFLGがA5Hでも払出リトライフラグが5AHの場合もある(ST44)。
図14(a)に示すように、動作ステイタス2の状態ではモータ停止中処理が実行される。ここでは先ず、払出モータフラグMOTFLGの値がチェックされ、これがA5Hであれば、少なくとも払出不足ではないと判断できるので動作ステイタスを2から0に変更し、モータ駆動タイマをゼロにする(S25〜S26)。また、払出モータフラグMOTFLGと払出検出フラグPAYFLGをゼロクリアする(S27)。
一方、ステップS20の処理において、払出モータフラグMOTFLG≠A5Hと判定された場合、払出モータフラグMOTFLGが5AHであれば、払出量が不足していることを意味するので、先ず、モータ駆動タイマがゼロになるのを待つ(S21)。なお、動作ステイタスが1から2に変更された段階で、モータ駆動タイマが350に初期設定されているので(S16)、ここでは700mSだけ時間消費されることになる。その後、モータ駆動タイマがゼロになれば、動作ステイタスを2から3に変更すると共に、モータ駆動タイマを350に初期設定し、払出検出フラグPAYFLGをクリアする(S22〜S24)。
図14(b)に示すように、動作ステイタスが3の場合には、先ず、モータ駆動タイマがゼロになるのを待つ(S30)。動作ステイタスが3に変更された段階で、モータ駆動タイマが350に初期設定されているので(S6,S23)、ここでは700mSだけ時間消費されることになる。その後、払出検出フラグPAYFLGの値をチェックする(S31)。払出検出フラグPAYFLGは、遊技球の払出しを確認した段階で5AHに設定され(図10のST45)、動作ステイタスが3に変更される段階でゼロにされている(図14のS24,図13のS7)。
したがって、モータリトライ処理において、払出検出フラグPAYFLGは最初ゼロの筈であるので、次に、モータ位置を0〜3の範囲で1つ進める(S32)。また、リトライカウンタを+1すると共に、モータ駆動タイマに350を設定する(S33〜S34)。したがって、以降、1ステップ=700mS毎に駆動データを更新するリトライ処理が実行されることになる。
図18は、このリトライ処理を図示したものであり、通常時の18/700倍の速度でゆっくり払出モータM1が回転することを示している。ステップS30〜S34より明らかなように、1ステップ(7.5度)分だけ払出モータM1が回転する毎に、つまりモータ駆動タイマがゼロになる毎に、(図10のステップST45の処理で設定された払出検出フラグPAYFLGの値に基づき)、遊技球の払出しをチェックし、払出しを検出するまで同じ動作を繰り返す(S31)。
このような処理を繰り返していると、やがて払出検出フラグPAYFLGが5AHとなるので、この場合には次に払出モータフラグMOTFLGの値をチェックする(S35)。払出モータフラグMOTFLGは、払出残数カウンタがゼロとなる時、つまり、不足分なく遊技球を払出した時にA5Hに設定される(図10のST48)。したがって、払出モータフラグMOTFLG≠5AHは、払出し残した遊技球が存在することを意味するので、払出残数カウンタの値を4倍した値をステップカウンタに格納する(S36)。また、動作ステイタスを3から1に変更して、リトライカウンタをクリアすると共に、モータ駆動タイマに9を設定する(S37,S38)。
この設定処理の結果、これ以降は、1ステップ=18mS毎に駆動データを更新する通常のモータ回転が開始されることになる(図5参照)。なお、以上の動作を図11(b)と図14〜図15に基づいて確認すると、形式的に払出動作が完了して(ステップカウンタ=0)、動作ステイタスが1から2に変更された時(S15)、払出不足分があると動作ステイタスが2から3に変更される(S22)。そして、動作ステイタス3の状態で払出モータM1が低速回転して遊技球を1個払出した段階で、更に不足分がある場合には、動作ステイタスを3から1に変更して(S37)、その後は、不足分が解消されるまで動作ステイタス1における通常動作を実行するのである。
さて、図14(b)のモータリトライ中処理の説明を続けると、ステップS35の判定において払出モータフラグMOTFLG=A5Hとなった場合には、先ず、動作ステイタス3から0に変更する(S39)。払出しを検出した状態(払出検出フラグPAYFLG=5AH)で払出モータフラグMOTFLGがA5Hであるということは、動作ステイタス=3の状態で1個の遊技球を払出し、且つ払出残数カウンタがゼロとなったことを意味する(ST48参照)。つまり、不足分の払出しが完了したことを意味するので、動作ステイタスを3から0に変更して、その後、改めて払出動作が必要となる時期まで待機させるのである。そのため、リトライカウンタ、払出モータフラグMOTFLG、及び払出検出フラグPAYFLGの値を全てゼロにする(S40)。
最後に、本発明が好適に適用される弾球遊技機について確認的に説明する。図図23は、本実施例のパチンコ機21を示す斜視図であり、図24は、同パチンコ機21の側面図である。なお、パチンコ機21は、カード式球貸し機22に電気的に接続された状態で、パチンコホールの島構造体の長さ方向に複数個が配設されている。
図示のパチンコ機21は、島構造体に着脱可能に装着される矩形枠状の木製外枠23と、外枠23に固着されたヒンジHを介して開閉可能に枢着される前枠24とで構成されている。この前枠24には、遊技盤25が裏側から着脱自在に装着され、その前側には、ガラス扉26と前面板27とが夫々開閉自在に枢着されている。
前面板27には発射用の遊技球を貯留する上皿28が装着され、前枠24の下部には、上皿28から溢れ出し又は抜き取った遊技球を貯留する下皿29と、発射ハンドル30とが設けられている。発射ハンドル30は発射モータと連動しており、発射ハンドルの回動角度に応じて動作する打撃槌31(図26参照)によって遊技球が発射される。
上皿28の右部には、カード式球貸し機22に対する球貸し操作用の操作パネル32が設けられ、この操作パネル32には、カード残額を3桁の数字で表示するカード残額表示部32aと、所定金額分の遊技球の球貸しを指示する球貸しスイッチ32bと、ゲーム終了時にカードの返却を指令する返却スイッチ32cとが設けられている。ガラス扉26の上部には、大当り状態を示す大当りLEDランプP1が配置されている。また、この大当りLEDランプP1に近接して、補給切れ状態や下皿の満杯状態を示す異常報知LEDランプP2,P3が設けられている。
図25に示すように、遊技盤25には、金属製の外レールと内レールとからなるガイドレール33が環状に設けられ、その内側の遊技領域25aの略中央には、表示装置8(具体的には液晶カラーディスプレイ)が配置されている。また、遊技領域25aの適所には、図柄始動口35、大入賞口36、複数個の普通入賞口37(大入賞口36の左右に4つ)、2つの通過口であるゲート部38が配設されている。これらの入賞口35〜38は、それぞれ内部に検出スイッチを有しており、遊技球の通過を検出できるようになっている。
表示装置8は、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。この表示装置8は、中央部に特別図柄表示部Da〜Dcと右上部に普通図柄表示部39を有している。普通図柄表示部39は普通図柄を表示するものであり、ゲート部38を通過した遊技球が検出されると、表示される普通図柄が所定時間だけ変動し、遊技球のゲート部38の通過時点において抽出された抽選用乱数値により決定される停止図柄を表示して停止するようになっている。
図柄始動口35は、左右1対の開閉爪35aを備えた電動式チューリップで開閉されるよう例えば構成され、普通図柄表示部39の変動後の停止図柄が当り図柄を表示した場合には、開閉爪35aが所定時間だけ開放されるようになっている。そして、図柄始動口35に遊技球が入賞すると、特別図柄表示部Da〜Dcの表示図柄が所定時間だけ変動し、図柄始動口35への遊技球の入賞タイミングに応じた抽選結果に基づいて決定される停止図柄で停止する。
大入賞口36は、例えば前方に開放可能な開閉板36aで開閉制御されるが、特別図柄表示部Da〜Dcの図柄変動後の停止図柄が「777」などの大当り図柄のとき、「大当り」と称する特別遊技が開始され、開閉板36aが開放されるようになっている。大入賞口36の内部に特定領域36bがあり、この特定領域36bを入賞球が通過すると、遊技者に有利な特別遊技が継続される。
大入賞口36の開閉板36aが開放された後、所定時間が経過し、又は所定数(例えば10個)の遊技球が入賞すると開閉板36aが閉じる。このとき、遊技球が特定領域36bを通過していない場合には特別遊技が終了するが、特定領域36bを通過していれば、最大で例えば15回まで特別遊技が継続され、遊技者に有利な状態に制御される。さらに、変動後の停止図柄が特別図柄のうちの特別状態発生図柄であった場合には、特別状態を発生させる。
特別状態の例としては、次の何れかが好適である。すなわち、(1)非特別状態の場合に比べて、特別図柄表示部Da〜Dcの図柄変動後の停止図柄が「777」などの大当り図柄となる確率を高くする特別図柄高確率状態や、(2)非特別状態の場合に比べて、遊技球がより多く入賞し易いように大入賞口の開放時間を長くする大入賞口開放時間延長状態や、(3)非特別状態の場合に比べて、遊技球がより多く入賞し易いように大入賞口の開放回数を増加する大入賞口開放回数増加状態や、(4)非特別状態の場合に比べて、遊技球がより多く入賞し易いように大入賞口の開口量を増大する大入賞口開口量増大状態や、(5)非特別状態の場合に比べて、普通図柄表示部39の図柄変動後の停止図柄が当り図柄となる確率を高くする普通図柄高確率状態や、(6)非特別状態の場合に比べて、遊技球がより多く入賞し易いように電動チューリップの開放時間を長くする電動チューリップ開放時間延長状態や、(7)非特別状態の場合に比べて、遊技球がより多く入賞し易いように電動チューリップの開放回数を増加する電動チューリップ開放回数増加状態や、(8)非特別状態の場合に比べて、遊技球がより多く入賞し易いように電動チューリップの開口量を増大する電動チューリップ開口量増大状態や、(9)非特別状態の場合に比べて、特別図柄の変動時間を短縮する特別図柄変動短縮状態や、(10)非特別状態の場合に比べて、特別図柄の有効停止ラインを増加する有効停止ライン増加状態や、(11)非特別状態の場合に比べて、普通図柄の変動時間を短縮する普通図柄変動短縮状態などが考えられる。
なお、これらのうちの何れか複数を組合せても良く、また、発生した特別状態は、所定条件の成立で終了させるのが好ましい。ここで所定条件とは、所定回の特別図柄表示部Da〜Dcの図柄変動、所定回の普通図柄表示部39の図柄変動、所定時間の経過、普通図柄表示部39の図柄変動後に所定図柄を停止表示した場合、特別図柄表示部Da〜Dcの図柄変動後に所定図柄を停止表示した場合、所定の入賞口に遊技球が入賞した場合、所定のゲート部38を遊技球が通過した場合などが典型的である。
図26に示すように、前枠24の裏側には、遊技盤25を裏側から押さえる裏機構板40が着脱自在に装着されている。この裏機構板40には開口部40aが形成され、その上側に賞球タンク41と、これから延びるタンクレール42とが設けられている。裏機構板40の側部には、タンクレール42に接続された払出装置43が設けられ、裏機構板40の下側には払出装置43に接続された通路ユニット44が設けられている。払出装置43から払出された遊技球は、通路ユニット44を経由して上皿排出口28a(図23)から上皿28に払出されることになる。
裏機構板40の開口部40aには、遊技盤25の裏側に装着された裏カバー45と、入賞口35〜37に入賞した遊技球を排出する入賞球排出樋(不図示)とが嵌合されている。この裏カバー45に装着されたケースCA1の内部に主制御基板1が配設され、その前側に図柄制御基板2が配設されている(図24参照)。主制御基板1の下側で、裏カバー45に装着されたケースCA2の内部にランプ制御基板4が設けられ、隣接するケースCA3の内部に音声制御基板3が設けられている。
これらケースCA2,CA3の下側で、裏機構板40に装着されたケースCA4の内部には、電源基板7と払出制御基板5が設けられている。この電源基板7には、電源スイッチ53とRAMクリアスイッチ54とが配置されている。これら両スイッチ53,54に対応する部位は切欠かれ、両スイッチを指で同時に操作可能になっている。発射ハンドル30の後側に装着されたケースCA5の内部には、発射制御基板6が設けられている。そして、これらの回路基板1〜7は夫々独立して構成され、電源基板7と発射制御基板6を除く制御基板1〜5には、ワンチップマイコンを備えるコンピュータ回路が搭載されている。
以上、本発明の実施例について説明したが、具体的な記載内容は特に本発明を限定するものではない。例えば、実施例では、賞球時と球貸し時とで遊技球の払出通路を切換えたが、この構成に限定されるものではなく、一本の通路で賞球動作と球貸し動作とを行っても良い。この場合での、動作内容については払出制御部で把握されているので、何ら混乱は生じない。また、基板構成についても適宜に変更可能であり、主制御部、図柄制御部、払出制御部、ランプ制御部、音声制御部、発射制御部の一部を省略しても良いし、各部を適宜に組合わせた基板構成としても良い。