以下、実施例に基づいて本発明の実施形態を詳細に説明する。図1は、実施例に係るパチンコ機の全体回路構成を示すブロック図である。図中の破線は、主に、直流電圧ラインを示している。
図示の通り、このパチンコ機は、AC24Vを受けて各種の直流電圧やシステムリセット信号SYSやRAMクリア信号CLRなどを出力する電源基板7と、遊技制御動作を中心統括的に担う主制御基板1と、主制御基板1から受けた制御コマンドCMD’に基づいてランプ演出及び音声演出を実行する演出制御基板2と、演出制御基板2から受けた信号を各部に伝送する演出インタフェイス基板3と、演出インタフェイス基板3から受けた制御コマンドCMD”に基づいて液晶ディスプレイDISPを駆動する液晶制御基板4と、主制御基板1から受けた制御コマンドCMDに基づいて払出モータMを制御して遊技球を払出す払出制御基板5と、遊技者の操作に応答して遊技球を発射させる発射制御基板6とを中心に構成されている。
ここで、払出制御基板5は球貸し機22に接続されており、球貸し機22は、ここに投入された現金の範囲で、払出制御基板5による球貸し動作を実現している。このような動作を実現するため、払出制御基板5は、球貸し機22から2つの制御信号BRDY,BRQを受ける一方、球貸し機22に対して、2つの制御信号EXS,PRDYを出力している。
発射制御基板6には、発射ハンドル30が接続されており、その回転位置に対応する強度VLの駆動電流が、ロータリソレノイドSL1に間欠的に供給されることで遊技球が発射されている。なお、球送りソレノイドSL2が、同じタイミングで間欠的に通電されることで、遊技球が連続的に発射位置に供給され、1分間に100個程度の速度で遊技球が発射される。
主制御基板1、演出制御基板2、液晶制御基板4、及び払出制御基板5には、ワンチップマイコンを備えるコンピュータ回路がそれぞれ搭載されている。そこで、主制御基板1、演出制御基板2、液晶制御基板4、及び払出制御基板5に搭載された回路、及びその回路によって実現される動作を機能的に総称して、本明細書では、主制御部1、演出制御部2、液晶制御部4、及び払出制御部5と言うことがある。なお、演出制御部2、液晶制御部4、及び払出制御部5の全部又は一部がサブ制御部である。
主制御部1は、払出制御部5に対して制御コマンドCMDを一方向に送信する一方、払出制御部5からは、遊技球の払出動作を示す賞球計数信号や、払出動作や球貸し動作の異常に係わるステイタス信号CONを受信している。ステイタス信号CONには、補給切れ信号、満杯球詰り信号の他に、一回の球貸し動作時に基準個数(=125個)を超えて遊技球が払出されたことを示す過剰信号ERRが含まれている。
この実施例の場合、制御コマンドCMDは、コマンドの種別を示すMODEデータと、具体的内容を特定するEVENTデータとが、それぞれ8ビット長で構成されている。そして、払出制御部5に伝送される制御コマンドCMDは、払出すべき遊技球の数を指示する賞球数指定コマンドと、払出動作の停止や再開を指示する動作指定コマンドとに大別され、賞球数指定コマンド(例えば、8A××H)は、EVENTデータ(=××H)によって賞球数を指定している。一方、動作指定コマンドには、払出停止コマンドと払出再開コマンドとが用意されている。なお、以下の場合も含め、Hは、16進数を意味する添字である。
図1に示す通り、主制御部1と払出制御部5には、電源基板7から、直流5Vのバックアップ電源BUが供給されている。したがって、営業終了や停電により交流電源24Vが遮断された後も、ワンチップマイコン内部のRAMのデータは保持される。本実施例では、少なくとも数日は、RAMの記憶内容が保持されるよう設計されている。
また、電源基板7は、交流電源24Vの遮断時に、主制御部1及び払出制御部5に、電圧降下信号ABNを出力するよう構成されている。電圧降下信号ABNは、この実施例では、各ワンチップマイコンの割込み端子ではなく、入力ポートに供給されている。そして、主制御部1及び払出制御部5では、フラグセンス方式によって、電圧降下信号ABNのレベル降下を把握した後、必要なデータをRAMに退避している。そのため、上記したバックアップ電源BUの作用とあいまって、主制御部1と払出制御部5では、営業開始時や停電からの復旧時に、電源遮断前の動作を再開できることになる。
更にまた、電源基板7は、主制御部1と払出制御部5に対して、係員のスイッチ操作を示すRAMクリア信号CLRを出力している。このスイッチ操作は、主に電源投入時に実行されるが、バックアップ電源BUによって保持されているRAMの記憶内容を消去させるための操作である。したがって、各制御基板1,5では、RAMクリア信号CLRのレベルを判定することによって、係員によるスイッチ操作の有無を把握できることになる。
図2(a)は、払出制御基板5の周辺回路を図示したものである。図示の通り、払出制御部5は、電源基板7から直流電源電圧(バックアップ電源BUを含む)だけでなく、払出制御部5(ワンチップマイコン)のRAMをクリアするためのRAMクリア信号CLRと、交流電源の電圧降下を示す電圧降下信号ABNと、システムリセット信号SYSなどを受けている。
また、払出制御部5は、球貸し機22とも接続され、球貸し動作に係わる各種の制御信号(BRDY,BRQ,EXS,PRDY)を送受している。ここで、BRDY信号は、球貸し動作中であることを球貸し機22から遊技機に伝達する信号である。また、BRQ信号は、一単位分(通常25個)の貸出し動作を、球貸し機22から遊技機に要求する信号である。
図8に関して後述するように、BRDY信号がHレベルの状態でBRQ信号が立下ると、25個の球貸し動作が開始され、その球貸し動作が終了した時にBRDY信号がLレベルであるか、又は球貸し動作の終了後の所定時間内に、BRDY信号がLレベルに変化すると、もはや球貸し動作が実行されない。したがって、BRDY信号を「球貸し許可指令」と考えることができ、また、BRQ信号を「球貸し開始指令」であると考えることができる。すなわち、BRDY信号がHレベルである限り、球貸し動作が許可されることになり、実施例の場合には、この許可区間内でBRQ信号が立下ると、これに呼応して25個の遊技球の払出動作が開始される。
一方、PRDY信号は、球貸し機22に、遊技機が球貸し動作可能であることを伝達する信号である。また、EXS信号は、一単位分(通常25個)の貸出し動作を終了したことを、球貸し機22に伝達する信号である。
ところで、過剰信号ERRについては、ステイタス信号CONの一部として主制御部1に伝送されるだけでなく、ホールコンピュータに伝送されるようになっている。なお、払出制御部5は、球貸し機22から直流電圧18Vを受けており、この電圧値を正常に受信できることを条件に、発射制御基板6に許可信号CTLを出力して発射動作を許可している。
図22は、払出制御基板5と発射制御基板6との接続関係を図示したものである。図示の通り、払出制御部5は、球貸し機22から受けた直流電圧18Vに対応して許可信号CTLを発射制御基板6に出力する一方、発射制御基板6からタッチセンサのセンサ出力TCHを受けている。タッチセンサは、発射ハンドル30に設けられており、遊技者が発射ハンドル30に触れている限り、センサ出力TCHはONレベルとなる。
図2に戻って説明を続けると、払出制御部5には、球貸し動作に関連する3桁の数値を示す残金表示部32aと、球貸しスイッチ32bと、返却スイッチ32cとを有する回路基板が設けられており、払出制御部5は、この回路基板と球貸し機22の間に位置して必要な信号を中継している。そして、この遊技機が通常機として機能する場合には、球貸しスイッチ32bが一回押圧される毎に、球貸し機22が預かっている現金が500円消費され、残金表示部32aの表示内容が−5されると共に125個の遊技球が払出される。
一方、この遊技機が簡易機として機能する場合には、球貸しスイッチ32bが押圧される毎に、残金表示部32aの表示内容が−5されると共に、500個の遊技球が払出される。なお、球貸し機22での設定によっては、簡易機に対する球貸し動作として、球貸しスイッチ32bの押圧に対応して、例えば、残金表示部32aの表示内容が−2されると共に、200個の遊技球が払出されるようにすることもできる。
何れにしても、払出制御部5は、遊技球の入賞に伴う賞球として、或いはまた、球貸し機22で清算される貸球として、所定数の遊技球を払出す必要がある。そこで、ステッピングモータたる払出モータMに4種類の駆動パルスデータΦ1〜Φ4を出力し(ユニポーラ2−2相励磁)、払出モータMの回転に伴って払出される遊技球を、左右の計数スイッチRSW,LSWで検出するようにしている(図3(a)参照)。
図3(a)に示す通り、この実施例では、遊技機に貸出される遊技球は、遊技球の入賞に伴う賞球の場合と同一の経路を通過して遊技機に払出され、払出し個数は、共通する左右の計数スイッチRSW,LSWで検出されるようになっている。なお、図2(a)及び図5に示す通り、左右の計数スイッチRSW,LSWの信号は、主制御基板1にも、ステイタス信号CONの一部として伝送される。
また、払出制御部5には、補給切れ状態や、満杯球詰り状態を検出するスイッチ信号が供給される。ここで、補給切れ状態とは、払出回転体RO(図3)の上流側から供給される遊技球が途絶え、賞球動作や球貸し動作が事実上不可能となる状態を意味する。また、満杯球詰り状態とは、払出回転体ROの下流側が一杯となり、それ以上の払出しが事実上不可能となる状態を意味する。
満杯球詰り状態を検出する検出スイッチは、例えば、可動片LVRを有するリミットスイッチであり、押圧部材BDYが可動片LVRを押すことで、その位置を遊技球が通過し終わるまでON状態を維持するよう配置されている(図28参照)。但し、賞球動作であれ、球貸し動作であれ、正常に遊技球が払出されている限り、多数の遊技球が連なって移動している状態でも、押圧部材BDYが揺動を繰り返すことで、検出スイッチが、ON状態とOFF状態とを繰り返すようになっている。
後述するように、本実施例では、原則として、1個当たり64mSの速度で遊技球を払出すので、検出スイッチの出力は、これと同一速度でON/OFF状態を繰り返す。但し、遊技球の移動が停滞して、0.5秒以上ON状態が継続した場合には、満杯球詰り状態が発生したと判定している。
このような満杯球詰り状態や、補給切れ状態となると、その後の払出回転体ROの回転動作を禁止して(動作禁止状態)、異常状態が解消されるまで待機している。なお、補給切れ状態は自動的に解消されるか、係員の操作によって解消される。また、満杯球詰り状態は、報知動作に応答した遊技者の操作によって解消される。この満杯球詰り状態は、大当りゲーム中のように、次々と賞球が得られる場合だけでなく、簡易機における球貸し動作時にも発生することがある。
本実施例の払出装置43は、払出モータMと払出回転体ROとを主たる構成要素とするので、念のため、払出モータMと払出回転体ROとの接続関係を説明する。図3(a)に示す通り、払出モータMの回転軸に設けられた駆動ギア50と、払出回転体ROに設けられた従動ギア52との間には、中間ギア51が設けられ、これら3つのギアが歯合することで、払出回転体ROが回転するよう構成されている。なお、払出回転体ROの回転軸には、係員が操作可能な操作軸53を突出させている。
駆動ギア50と従動ギア52は、そのギア比が1対2に設定されており、したがって、払出モータMの回転角度に対して、払出回転体ROの回転角度は1/2倍となる。また、本実施例では、中間ギア51を介して、駆動ギア50と従動ギア52を連結するので、払出モータMと払出回転体ROの回転方向を一致させることができると共に、払出モータMと払出回転体ROの配置位置を比較的自由に設定することができる。したがって、例えば、係員が操作軸53を回転させて球詰まりを解消させる場合にも、中間ギア51の直径分だけ、広い作業空間を使用することができる。なお、払出モータMと払出回転体ROは、操作軸53の方から見て、時計方向に回転する(図3(c)(d)参照)。
図3(c)(d)に示す通り、本実施例では、払出回転体ROには、それぞれ遊技球3個を保有可能な120°間隔の保持溝が、半ピッチ60°ずれて左右に形成されている。この払出回転体ROの回転に伴い、保持溝に保持された遊技球は、払出回転体ROが60°回転する毎に、左右から交互に1個ずつ下方に放出される。この実施例では、払出モータMのステップ角が7.5°であるため、通常時には4mS毎に変化する駆動データΦ1〜Φ4が16ステップ出力されると、払出モータMが120°回転する。この時、払出回転体ROが60°回転することによって、1個の遊技球が払出されるよう設計されている。
図4は、以上のような払出動作を示すタイムチャートである。4mS毎に変化する駆動データΦ1〜Φ4によって、払出回転体ROの回転位置が、モータ位置(0)→モータ位置(1)→モータ位置(2)→モータ位置(3)のように歩進され、これが繰り返されることで遊技球が払出されることを示している。この実施例では、通常は、16×4mS=64mSを要して遊技球を一個払出すよう設定されている。したがって、一単位25個の遊技球を払出すのに、1.6秒以上の時間を要するが、遊技球が円滑に払出されている限り、満杯球詰り状態と誤判定されることはない。
図5は、払出制御部5の内部構成を図示したものである。図示の通り、払出制御部5は、主制御部1から制御コマンドCMDを受ける入力バッファ10と、各種のスイッチ信号や制御信号CLR,ABNを受ける第1入力ポート13Aと、第2入力ポート12と、第3入力ポート13Bと、Z80CPU相当品を内蔵するワンチップマイコン14と、入出力ポートのチップセレクト信号を生成するデコーダ15と、第1出力ポート16と、第2出力ポート17と、第1出力ポート16から受けた駆動信号を払出モータMに供給するトランジスタ群(オープンコレクタ)18とを中心に構成されている。
図示の通り、第3入力ポート13Bは、球貸し機22からフォトカプラとインバータとを経由して、2つの制御信号BRDY,BRQを受けると共に、発射制御基板6からタッチセンサ出力TCHを受けている。2つの制御信号BRDY,BRQは、フォトカプラを経由しているので、ノイズなどの影響を受けにくい。
また、第1入力ポート13Aには、計数スイッチ、補給切れ検出スイッチ、及び、満杯球詰り検出スイッチからのスイッチ信号が供給されている。また、第1入力ポート13Aには、電源基板7からの制御信号であるRAMクリア信号CLRと、電圧降下信号ABNも供給されている。なお、この実施例では、入力バッファ10、第1と第2と第3の入力ポート12,13A,13Bは、74541相当品のバスバッファで構成され、デコーダは、74138相当品で構成されている。また、出力ポート16,17は、74273相当品のD型フリップフロップで構成されている。
第2入力ポート12には、バスバッファ10を経由して、主制御基板1から制御コマンドCMDが供給されるが、主制御基板1は、制御コマンドCMDの供給に合わせてストローブ信号STBが供給される。このストローブ信号STBは、CPUコアの割込み端子(maskable interrupt)に供給されるので、これに応じて、払出制御基板5では受信割込みルーチンが起動し、制御コマンドCMDを取得するようになっている。
第1出力ポート16のbit3〜bit0からは、(Φ4,Φ3,Φ2,Φ1)=0101→0110→1010→1001→0101→・・・の駆動パルスデータが時間順次に払出モータMに出力される(図2(b)参照)。また、第1出力ポート16のbit4にはLED駆動信号が出力され、異常ランプER2が点灯される。なお、第1出力ポート16のbit7には、不図示のウォッチドッグタイマ回路のクリア信号が所定時間毎に出力されるようになっている。
第2出力ポート17のbit0からは、ホールコンピュータに伝送される過剰信号ERRが出力され、これが過剰レベルであれば、警報ランプER1が点灯される。また、第2出力ポート17のbit1とbit2からは、主制御部1に対して、補給切れ信号と満杯球詰り信号とが出力される。一方、第2出力ポート17のbit6,bit7からは、球貸し機22に対して、制御信号PRDY,EXSが出力される。この制御信号PRDY,EXSは、インバータとフォトカプラとを経由して球貸し機22に伝送される。制御信号PRDY,EXSも、フォトカプラを経由して伝送されるのでノイズなどの影響を受けにくい。
図6〜図7は、図5に示す払出制御部5で実行されるプログラムを説明するフローチャートである。払出制御部5の動作は、概説すると、電源投入後に開始されて無限ループ処理で終わるメインルーチン(図6(a))と、主制御部1からのストローブ信号STBによって起動される受信割込み処理ルーチン(図6(b))と、一定時間(2mS)毎に開始されるタイマ割込みルーチン(図7(a))とで構成されている。
図6(b)に示すように、受信割込みルーチンでは、第2入力ポート12から制御コマンドCMDを取得して、これをRAMのコマンドバッファ領域に格納した後(ST101)、CPUを割込み許可状態(EI)に設定して処理を終える(ST103)。
次に、メインルーチン(図6(a))の動作内容を説明する。電源基板7から電源電圧が供給されると共に、システムリセット信号SYSが供給されると、CPUは、自らを割込み禁止状態(DI)に設定した後(ST1)、ワンチップマイコン14各部の初期設定を行う(ST2)。この初期設定動作には、CPUのスタックポインタの初期設定も含まれ、スタックポインタは、LIFO方式のスタック領域の最底部を指すことになる。本実施例ではスタック領域のデータがバックアップ電源BUによって電源遮断後も維持されるが、ステップST2の処理によって、スタック領域が開放されることになる。
次に、第1入力ポート13Aから取得したデータに基づき、電源基板7からRAMクリア信号CLRが供給されているか否かをチェックする(ST3)。この実施例では、遊技ホールの営業開始時であって、特に係員が電源基板7のRAMクリアスイッチをON操作した場合にはRAMクリア信号CLRが供給されるが、停電からの復旧時を含め、通常はRAMクリア信号CLRが供給されない。
そして、RAMクリア信号CLRが供給されない場合には、電源監視処理(図7(b))のステップST237の処理で記憶されるバックアップフラグBAKFLGの値をチェックする(ST4)。そして、BAKFLG=5AHであれば、次に、電源監視処理のステップST238の処理と同様のチェックサム演算を実行してサム値を算出し(ST5)、これが、RAM領域に記憶されているサム値と一致するか否かを確認する(ST6)。そして、メインルーチンで算出したサム値と、電源監視処理(ST23)で記憶されたサム値とが一致する場合には、電源遮断前の処理を再開できると思われるので、バックアップフラグBAKFLGをクリアした後(ST7)、CPUを割込み許可状態に設定して(ST10)、無限ループ処理を繰り返す。
CPUが割込み許可状態になると、その後のタイマ割込みによって、図7(a)に示す定期処理(ST82〜ST92)が実行されるが、ここまでの処理では、バックアップフラグBAKFLGを除いて、RAMの記憶内容は全く変更されていないので、その後は、電源遮断前の処理が正しく再開されることになる。
一方、(1)ステップST3の判定の結果、RAMクリア信号CLRがON状態であるか、(2)ステップST4の判定の結果、バックアップフラグが5AH以外の値であるか、或いは、(3)ステップST6のサムチェックで異常が認められた場合には、RAM領域が全てクリアされる(ST8)。
そして、払出リトライフラグを5AHに設定した後(ST9)、CPUを割込み許可状態に設定して(ST10)、無限ループ処理を繰り返す。ステップST8の処理で、RAM領域が全てクリアされたことにより、その後は、図7(a)に示すタイマ割込み処理によって、初期状態から動作が開始される。また、払出リトライフラグが5AHに設定されたことにより、最初の賞球動作の1個目は、モータ動作ステイタス=03Hの状態で実行される。
続いて、図7(a)に示すタイマ割込みルーチンについて説明する。このタイマ割込みルーチンは、メインルーチンの無限ループ処理を中断させて、一定時間毎(2mS)に実行される。
図7(a)に示す通り、本実施例のタイマ割込みルーチンは、払出モータMを回転駆動するデータ出力処理(ST92)と、払出モータMに出力するべき駆動データを用意するモータ処理(ST91)と、払出モータMの回転により払出された遊技球を検出するデータ入力処理(ST84)と、球貸し機との通信プロトコルに応じてカード動作ステイタスを進行させるカード通信処理(ST87)と、データ入力処理による払出検出結果に基づいて、所定個数の払出動作が実行されたかを管理する球貸し処理(ST88)とを含んでいる。なお、賞球処理(ST89)では、主制御部1から受けた制御コマンド(賞球数指定コマンド)に基づく賞球動作を実現するが、球貸し処理(ST88)とは、事実上、排他的に機能するようになっている。
以下、タイマ割込みルーチンを具体的に説明する。最初に、割込み禁止状態(DI)になっているCPUを、割込み許可状態(EI)に戻す(ST82)。この処理の結果、タイマ割込み処理の間にも、図6(b)の受信割込みがかかり、主制御部1からの制御コマンドCMDは、読み落しなく取得されることになる。なお、この実施例では、メインルーチンの無限ループ処理では、CPUは、実質的には何の処理もしていないので、タイマ割込み時にCPUのレジスタを保存する必要はない。したがって、図7(a)のタイマ割込み処理の最初には、一群のPUSH命令が存在しないし、タイマ割込み処理の最後には、一群のPOP命令も存在しない。
ステップST82の処理が終われば、次に、電源監視処理が実行される(ST83)。具体的には、図7(b)に示す通りであり、先ず、第1入力ポート13Aを通して、電圧降下信号ABNを取得し(ST230)、それが異常レベルでないか判定する(ST231)。そして、異常レベルでない場合には、異常回数カウンタをゼロクリアして処理を終える(ST232)。
一方、電圧降下信号ABNが異常レベルである場合には、異常回数カウンタを+1して(ST233)、計数結果が上限値MAXを超えていないかを判定する(ST234)。これは、第1入力ポート13Aからの取得データが、ノイズなどの影響でビット化けしている可能性があることを考慮したものであり、所定回数(例えば、上限値MAX=5)連続して異常レベルを維持する場合には、交流電源が現に遮断されたと判定する。
ステップST234の判定の結果、異常回数カウンタの計数値が上限値MAXに一致した場合には、その後の受信割込みを禁止するべく、先ず、CPUを割込み禁止状態に設定する(ST235)。次に、異常回数カウンタをゼロクリアした後(ST236)、バックアップフラグBAKFLGに5AHを設定する(ST237)。次に、メインルーチンのステップST5の場合と、全く同じ演算を、全く同じ作業領域(ワークエリア)に対して実行し、その演算結果を記憶する(ST238)。なお、実行される演算は、典型的には8ビット加算演算である。そして、その後はワンチップマイコンをRAMアクセス禁止状態に設定した後(ST239)、無限ループ処理を繰り返しつつ直流電源電圧が降下するのを待つ。
続いて、ステップST84のデータ入力処理について説明する。データ入力処理は、主として、払出モータMの回転によって、遊技球が実際に払出されたか否かを確認するための処理である。先に説明した通り、入賞などに伴う賞球動作によって遊技球が払出されるだけでなく、球貸し機22が関連する球貸し動作によっても、同様に遊技球が払出される。
データ入力処理(ST84)では、第1入力ポート13Aの8ビットデータを取得し、前回の取得値との対比によって信号レベルが変化したか否かを判定し、レベル変化が検出された場合には、エッジデータとして、RAM領域のワークエリアEDGに保存する。図6(c)に示す通り、計数スイッチLSW,RSWからのスイッチ信号がレベル変化したこと(スイッチ信号が立上ったこと)が、ワークエリアEDGに記憶される。なお、ワークエリアLVLには、今回取得した計数スイッチLSW,RSWからのスイッチ信号のビット反転データが保存され、次回のデータ入力処理において参照される。
このようにしてデータ入力処理(ST84)が終われば、次に、8bit長又は16bit長の各種タイマについての減算処理(−1)が行われる(ST85)。なお、無限ループ処理が2mS毎に実行されることにより、減算タイマの1単位時間は2mSを意味する。
タイマ減算処理が終われば、次に、受信割込み処理によって取得される制御コマンドの解析処理が行われる(ST86)。コマンド解析処理では、受信した制御コマンドCMDが賞球数指定コマンドであるか否かが判定される。そして、賞球数指定コマンドを受信した場合には、そのコマンドによって特定される賞球数を、RAMのワークエリアに設けられた全賞球数カウンタに加算する。なお、この全賞球数カウンタの値は、賞球処理(ST89)におけるステップST26(図14)の処理で読み出され使用される。
次に、球貸し機22との通信処理(ST87)と、球貸し機22で清算される球貸し処理(ST88)とが実行される。図8〜図13は、これらの処理内容を詳細に説明するためのタイムチャートとフローチャートである。
カード通信処理(ST14)の具体的な処理内容は、カード動作ステイタスによって管理されている。具体的には、図9(a)に示す通り、カード動作ステイタスの値(=00H〜07H)に応じて、BRDY待ち処理(RT0)、BRQ待ち処理(RT1)、球貸し開始待ち処理(RT2)、球貸し開始処理(RT3)、球貸し中処理(RT4)、球貸し終了待ち処理(RT5)、及び、通信エラー処理(RT6)の何れか一つが実行される。
<カード動作ステイタス=00H>
初期状態ではカード動作ステイタス=00Hであり、図9(b)に示すBRDY待ち処理(RT0)が実行される。具体的には、PRDYフラグが5AHに設定され、回数カウンタNUMが00Hに設定され、OVRフラグが00Hに設定される(RT001)。
PRDYフラグは、球貸し機22に、Hレベルの制御信号PRDYを出力するか否かを規定するものであり、遊技機が正常に起動した場合には、ステップRT001の処理で設定されたPRDYフラグの値(=5AH)に基づいて、データ出力処理(ST92)において、Hレベルの制御信号PRDYが出力される(図8のタイミング(a)参照)。
一方、回数カウンタNUMは、遊技機の球貸しスイッチ32bが一回押圧されたとき、これに対応して、球貸し機22が制御信号BRQを出力した回数を計数するカウンタである。この実施例の遊技機は、制御信号BRQを一回受ける毎に、25個の遊技球を払出すので、球貸しスイッチ32bの押圧で500円を消費する場合であれば、1個4円の遊技球で動作する通常機は、球貸し機22から5回の制御信号BRQを受ける。一方、1個1円の遊技球で動作する簡易機は、球貸し機22から20回の制御信号BRQを受ける。したがって、回数カウンタNUMによる計数回数が5回又は20回を超える場合には、各々、球貸し過剰ということになる。
そこで、本実施例では、00Hに初期設定されるOVRフラグを設け(RT001)、回数カウンタNUMの値が05Hを超えると、OVRフラグを5AHに設定している(図10のRT306)。そして、5AHに設定されたOVRフラグに基づいて、データ出力処理(ST92)において、警報ランプER1を点灯させると共に、過剰信号ERRを主制御部1とホールコンピュータに伝送している。なお、これらの警報動作は、それが簡易機において実行されている場合には、係員やホールコンピュータの監視者が、これを無視するのは当然である。
何れにしても、前記したステップRT001の初期処理が終わると、球貸し機22から受ける制御信号BRDYのレベルが判定され(RT002)、これが立上った場合だけ(図8のタイミング(b)参照)、カード動作ステイタスが01Hに設定され、カードタイマ値が適宜な初期値t1に設定される。なお、カードタイマの初期値t1、t2、t3、t4や、カードタイマ値の下限値は、球貸し機と遊技機とのインタフェイス仕様(プロトコル)に基づいて適宜に決定される値である。
<カード動作ステイタス=01H>
カード動作ステイタスが00Hから01Hに変更されると(RT003)、図9(c)に示すBRQ待ち処理(RT1)が実行される。ここでは、先ず、カードタイマ値が判定され(RT101)、ゼロでなければ、球貸し機22が出力する制御信号BRDY,BRQが共にHレベルであるか判定される(RT102)。
そして、制御信号BRDY,BRQが共にHレベルとなると(図8のタイミング(c)参照)、カードタイマ値が下限値以上であるか否か判定され(RT103)、下限値未満であれば、カード動作ステイタスを02Hに設定すると共に、カードタイマ値を新たに初期値t4に設定する(RT104)。
一方、ステップRT103の処理で、カードタイマ値が下限値以上であると判定された場合には、通信異常が発生しているとして、カード動作ステイタスを07Hに設定すると共に、カードタイマ値を新たに初期値t2に設定する(RT105)。このようにして、カード動作ステイタスが07Hに設定された場合には、他の処理を経由する場合も含め、その後、適宜な通信エラー処理(RT7)が実行される。
ステップRT101とRT103の処理から明らかなように、制御信号BRDY,BRQが共にHレベルになるのが、早過ぎても遅すぎても、通信エラーと判定される。具体的には、本実施例では、BRQ待ち処理(RT1)を開始してから、28mS〜50mSの間に、2つの制御信号がBRDY=BRQ=Hレベルとなった場合だけ、カード動作ステイタスを02Hに進行させている。このような動作によって、耐ノイズ性を高めている。
<カード動作ステイタス=02H又は06H>
カード動作ステイタスが01Hから02Hに変更されるか(RT104)、或いは、カード動作ステイタスが05Hから06Hに変更されると(図10(c)のRT505)、図9(d)に示す球貸し開始待ち処理(RT3)が実行される。この球貸し開始待ち処理では、先ず、カードタイマ値が判定され(RT201)、もしゼロでなければ、その値が下限値未満であるか否か判定される(RT202)。
そして、このタイミングで賞球フラグがゼロであれば(RT203)、カード動作ステイタスを02Hから03Hに変更すると共に、カードタイマ値を初期値t1に設定してEXSフラグを5AHに設定する(RT204)。ステップRT204の処理は、このタイミングでは、制御信号BRDY,BRQが共に既にHレベルであるので(RT102)、球貸し処理を開始することを、球貸し機22に通知するための処理である。5AHに設定されたEXSフラグに基づいて、その後のデータ出力処理(ST92)において、Hレベル制御信号EXSが球貸し機22に出力される(図8のタイミング(d)参照)。
なお、RT202〜RT203の条件が満たされることなく時間(例えば10秒)が経過して、カードタイマの値がゼロとなった場合には、制御信号BRDY,BRQが共にLレベルになったタイミングで、カード動作ステイタスを00Hに戻す(RT206)。
このように、本実施例では、賞球フラグが00Hに変化するのを、例えば、10秒程度待機している。この賞球フラグは、賞球動作の開始時に5AHに設定され(図14のST33)、必要な賞球動作を終えた段階で00Hに戻るので(ST47,ST24)、10秒間の待機時間は、十分な時間であると考えられる。
一方、賞球フラグが00Hになることなく10秒が経過した場合でも、引き続き、制御信号がBRDY=BRQ=Lレベルとなるのを待機し、BRDY=BRQ=Lレベルのタイミングでカード動作ステイタスを00Hにしている。この動作は、球貸し機23の動作が初期状態に戻るのを引き続き待つことを意味し、要するに、球貸し機23に十分な猶予時間を与えている。
同様に、ステップRT202の処理によって、球貸し開始処理(RT2)を開始してから、例えば10mSの間、制御信号EXSを出力しないことで、球貸し機23の動作準備時間を確保している。
<カード動作ステイタス=03H>
カード動作ステイタスが02Hから03Hに変更されると(RT204)、図10(a)に示す球貸し開始処理(RT2)が実行される。この球貸し開始処理では、先ず、カードタイマ値が判定され(RT301)、もしゼロでなければ、制御信号BRDYがHレベルであって、且つ、制御信号BRQがLレベルであるか判定される(RT302)。そして、この条件を満たす場合(図8のタイミング(e)参照)には、カードタイマ値が下限値以上であるかが判定される(RT303)。
そして、カードタイマ値が下限値未満である場合には、カード動作ステイタスを04Hに設定すると共に、カードタイマ値を新たに初期値t2に設定する(RT304)。また、回数カウンタNUMをインクリメントする(RT304)。この処理は、ステップRT302の判定の結果、球貸し機22が制御信号BRQを立下げたことが確認されたので、これから25個の遊技球の払出を開始することに対応するものであり、インクリメントされた後の回数カウンタNUMの値は、一単位25個の遊技球の払出回数を意味する。
そこで、次に、インクリメント後の回数カウンタNUMの値が基準値TH(例えば05H)と比較され(RT305)、もし、NUM>THとなれば、OVRフラグを5AHに設定する(RT306)。先に説明した通り、5AHに設定されたOVRフラグに基づいて、データ出力処理(ST92)において、警報ランプER1を点灯させ、過剰信号ERRが出力される。
なお、ステップRT301の処理でカードタイマ値がゼロであると判定されたり、ステップRT303の処理でカードタイマ値が下限値以上であると判定された場合には、カードタイマ値が初期値t2に設定されると共に、カード動作ステイタスが07Hに設定される(RT307)。
ステップRT303とRT301の処理から明らかなように、制御信号BRDY=Hレベル、制御信号BRQ=Lレベルとなるのが、早過ぎても遅すぎても、通信エラーと判定される。具体的には、本実施例では、球貸し開始処理(RT3)に移行してから、28mS〜50mSの間に、上記の条件が満たされた場合だけ、カード動作ステイタスを04Hに進行させており、このような動作によって、耐ノイズ性を高めている。
<カード動作ステイタス=04H>
カード動作ステイタスが03Hから04Hに変更されると(RT304)、図10(b)に示す球貸し中処理(RT4)が実行される。この球貸し中処理では、カードタイマ値がゼロであり、且つ、球貸しフラグが00Hの場合に、カード動作ステイタスが05Hに変更される(RT403)。また、これに合わせて、カードタイマが初期値t3に設定され、EXSフラグが00Hに設定される。なお、00Hに設定されたEXSフラグに基づいて、データ出力処理(ST92)において、Lレベルの制御信号EXSが球貸し機22に出力される(図8のタイミング(f)参照)。
ステップRT402で判定される球貸しフラグは、25個分の球貸し処理を実際に開始するタイミングで5AHに初期設定され(図11のRT15)、25個分の球貸し処理を終えると、過渡的な値(=A5H)を経て(図13のRT51)、最終的に00Hに戻される(図11のRT18)。したがって、球貸し中処理(RT4)において、球貸しフラグ=00Hが検出された事実は、25個の遊技球の払出が終わったことを意味するので、Lレベルの制御信号EXSを出力するべく、EXSフラグを00Hに戻すのである(RT403)。
なお、ステップRT401の処理によって、球貸し中処理(RT4)に移行してから、所定時間t2が経過するまでは、球貸しフラグの値をチェックしない。これは、本実施例では、25個を一単位として球貸し動作を実行するので、25×64mS=1.6秒より早く、球貸しフラグが00Hに戻ることはないためである。すなわち、意味のない判定処理(RT402)の実行を回避している。
<カード動作ステイタス=05H>
カード動作ステイタスが04Hから05Hに変更されると(RT403)、図10(c)に示す球貸し終了待ち処理(RT5)が実行される。この球貸し終了待ち処理では、カードタイマ値がゼロでないことを条件に(RT501)、2つの制御信号BRDY,BRQが共にHレベルであるかが判定される(RT502)。ここで、2つの制御信号BRDY,BRQが共にHレベルになる場合とは、Lレベルになっていた制御信号BRQが、再度、Hレベルになったことを意味する(図8のタイミング(c)’参照)。このことは、言い換えると、一単位25個の遊技球の払出を再度実行することを、球貸し機22が遊技機に指示していることを意味する。
したがって、BRDY=Hレベル、BRQ=Hレベルとなる場合には、カード動作ステイタスを06Hに設定すると共に、カードタイマを初期値t4に設定する(RT505)。なお、カード動作ステイタスが06Hに設定されると、その後は、図9(d)の球貸し開始待ち処理(RT2)が実行される。
一方、ステップRT502の判定がNOの場合には、次に、2つの制御信号BRDY,BRQが共にLレベルであるかが判定される(RT503)。ここで、2つの制御信号BRDY,BRQが共にLレベルになる場合とは、一連の球貸し動作の開始時(図8のタイミング(b)参照)に、Hレベルになっていた制御信号BRDYが、Lレベルに戻ったことを意味する(図8のタイミング(g)参照)。このことは、言い換えると、一単位25個の遊技球の払出動作を、複数回繰り返した結果、球貸しスイッチ23bの一回の押圧操作に応答した一連の球貸し処理が完全に完了したことを意味する。
そこで、BRDY=Lレベル、BRQ=Lレベルとなる場合には、カード動作ステイタスを初期状態の00Hに設定すると共に、カードタイマをゼロに初期設定する(RT504)。なお、カード動作ステイタスの変更処理(RT505,RT504)が何れも実行されることなくカードタイマがゼロになる場合(例えば、250mSを経過)には、通信異常であるとして、カード動作ステイタスを07Hに設定すると共に、カードタイマを初期値t2に設定する(RT506)。もっとも、球貸し機22は、最後のBRQ信号を立下げた後、所定時間後にBRDY信号を立下げるので、通常は、直ちにステップRT504の処理が実行され、通信異常と判定されることはない。
以上、カード動作ステイタス値00H〜07Hに応じた処理内容を詳細に説明したが、カード動作ステイタスの状態遷移図は、図8の下段に示す通りである。図示の通り、カード動作ステイタスは00H→01H→02H→03H→04H→05H→06H→03H→04H→05H→06H→03H・・・と推移して、25個単位の払出動作を所定回数(例えば5回か20回)だけ繰り返し、最後に、06H→03H→04H→05H→00Hと推移して球貸し処理を終える。なお、通信異常と判定された場合には、球貸し機22との適宜な通信処理を経て、球貸し機22の動作が初期状態に戻され、遊技機では、カード動作ステイタスが00Hに戻される。
図11は、上記したカード通信処理(ST87)に続いて実行される球貸し処理(ST88)を示すフローチャートである。球貸し処理(ST88)では、最初に、球貸し/賞球切換え処理が実行される(RT11)。具体的な内容は、図12(a)に示す通りであり、先ず、切換えフラグが00Hに設定され(RT30)、カード動作ステイタスが03H以上、且つ07H未満の場合だけ、切換えフラグが5AHに書き換えられる(RT33)。
したがって、一旦、切換えフラグが5AHに書き換えられた後は、球貸し開始処理(カード動作ステイタス03H)→球貸し中処理(カード動作ステイタス04H)→球貸し終了待ち処理(カード動作ステイタス05H)→球貸し開始待ち処理(カード動作ステイタス06H)→球貸し開始処理(カード動作ステイタス03H)を繰り返す限り、切換えフラグは5AHを維持し、その後、球貸し終了待ち処理(カード動作ステイタス05H)からBRDY待ち処理(カード動作ステイタス00H)に移行すると、切換えフラグが00Hに戻ることになる(図8の中段及び下段、図12(b)参照)。
このような球貸し/賞球切換え処理(RT11)が終われば、次に、球貸し検出処理が実行される(RT12)。球貸しとは、具体的には、遊技球の払出を意味するが、遊技球の払出は、データ出力処理(ST92)に起因して、払出モータMが回転した場合に生じる。そして、遊技球の払出があればステップST84のデータ入力処理(図7(a))によって、その旨がワークエリアEDGにスイッチエッジデータとして記憶されている(図6(c))。
そこで、球貸し検出処理(R12)では、ワークエリアEDGのデータに基づいて、球貸し(遊技球の払出)があったか否かを判定する。具体的には、図13に示す通りであり、先ず、切換えフラグが5AHであるか否かによって、現在が遊技球の払出の可能性があるか否かを判定する(RT40)。そして、切換えフラグ=5AHであれば、スイッチエッジデータをCレジスタに格納する(RT41)。なお、この実施例では、スイッチエッジデータのbit0が、左計数スイッチの検出状態を表し、bit1が右計数スイッチの検出状態を表している(図5参照)。
次に、Bレジスタに数値2を格納した後(RT42)、Cレジスタの値を右方向に1ビット回転させる(RT43)。なお、この回転処理(Z80CPUのROTATION命令)によって、Cレジスタのbit0の値がキャリーフラグCYに移動する。したがって、CY=1となる場合は、ROTATION命令の実行前の最下位ビットが1であったことを意味するので、データ入力処理(ST84)において、遊技球が検出されていることを意味する。
そこで、そのことを記憶するべく、払出検出フラグに5AHを設定する(RT45)。次に、球貸しフラグが5AHであるか判定し(RT46)、球貸しフラグ≠5AHの場合には払出リトライフラグを5AHに設定する(RT47)。図11に関して後述するように、払出動作が開始されるに当たって、球貸しフラグは5AHに設定される(図11のRT15)。したがって、遊技球の払出が検出されたにも拘わらず、球貸しフラグ≠5AHであるのは、自重や慣性によって遊技球が落下した異常事態を意味する。そこで、払出回転体ROの位置決めをするべく、払出リトライフラグを5AHに設定している(RT47)。
但し、通常は、球貸しフラグ=5AHであるので、次に、払出残数カウンタがゼロか否かを判定し(RT48)、ゼロでなければ、払出残数カウンタをデクリメントする(RT49)。払出残数カウンタは、球貸し個数を管理するカウンタであり、動作の開始時に、球貸し単位である25個に初期設定されている(図11のRT15)。
そして、デクリメント後の残数カウンタの値がゼロになれば、払出モータフラグと球貸しフラグとを、A5Hを設定する(RT51)。払出モータフラグは、払出モータMが停止しているタイミングでは、00Hの初期値であるが、払出モータMが駆動されるべき開始タイミングで5AHに設定され(図11のRT15)、駆動が停止されるべき今のタイミングでA5Hに設定される(RT51)。
何れにしても、ステップRT45〜RT51の処理が終われば、Bレジスタの値をデクリメントして(RT52)、Bレジスタの値がゼロになるまで、同様の処理を繰り返す(RT53)。Bレジスタは、最初に2に初期設定されているので(RT42)、ステップRT43〜RT52の処理が二回実行され、左右の左計数スイッチの検出結果に応じて、払出残数カウンタの値が減算されることになる。
続いて、図11に戻って球貸し処理の説明を続ける。以上のようにして球貸し検出処理(RT12)を終えた後、カード動作ステイタスの値が04Hに一致するか否かが判定される(RT13)。カード動作ステイタス=04Hは、「球貸し中」を意味するが、実際には球貸し動作を開始しておらず、カード動作ステイタスとして「球貸し開始」から「球貸し中」に移行した当初のタイミングも含まれている。そして、このような場合には、球貸しフラグが初期値の00Hのままである。
そこで、球貸しフラグ=00Hの場合には、払出残数カウンタと新規払出カウンタに、球貸し単位の25個を設定した上で、球貸しフラグと払出モータフラグに5AHを設定して、サブルーチン処理を終える(RT15)。
一方、ステップRT14の処理で、球貸しフラグ≠00Hと判定される場合には、既に、実質的な払出動作(球貸し動作)が開始されていることを意味する。そこで、この場合には、球貸しフラグがA5Hか否かが判定され(RT16)、もし、球貸しフラグ=A5Hであれば、左右の計数スイッチが共にOFFレベルであることを条件に、球貸しフラグを00Hに戻す(RT18)。先に説明した通り、球貸しフラグは、払出残数カウンタがゼロになると、図13のステップRT51の処理でA5Hに設定される。そこで、球貸しフラグ=A5Hの場合には、遊技球が、左右の計数スイッチLSW,RSWを通過し終わったことを確認した上で、初期状態の00Hに戻すのである。
以上のようにして球貸し処理(ST88)が完了すると、次に、賞球処理(ST89)が実行される。賞球処理(ST89)は、球貸し処理(ST88)に類似した処理であるが、球貸し処理と択一的に動作するよう構成されている。
すなわち、賞球処理(ST89)の先頭で実行される賞球検出処理(ST20)では、先ず、切換えフラグの値が判定され、その値が5AHである場合には何もしないで処理を終える(図15のST39)。先に説明した通り、切換えフラグが5AHとなるのは、カード動作ステイタスが03H以上、且つ07H未満の場合だけであって(図12(a)参照)、要するに、球貸し動作が実行されている場合である。したがって、球貸し処理(ST88)が機能しているタイミングでは、賞球検出処理(ST20)は事実上スキップされる。
また、図14に示す通り、賞球処理(ST89)におけるその後の処理(ST22〜ST34)についても、カード動作ステイタスが00Hである場合だけ機能する。すなわち、カード動作ステイタス≠00Hの場合には賞球フラグの値が判定され(ST23)、もし賞球フラグがA5Hであれば、賞球フラグをクリアして処理を終えるので(ST24)、球貸し処理(ST88)が機能しているタイミングでは、事実上、賞球処理(ST89)がスキップされることになる。
図16は、払出エラー処理(ST90)の動作内容を示したものであり、払出エラー処理(ST90)は、リトライエラー検出処理(S70)、計数スイッチエラー検出処理(S71)、補給切れエラー検出処理(S72)、及び、満杯球詰りエラー検出処理(S73)で構成されている。
リトライエラー検出処理(S70)では、データ入力処理(ST84)で更新されたワークエリアEDGのスイッチエッジデータの値に基づいて、新たに、遊技球の払出があったか否かが判定される(S701)。具体的には、第1入力ポート13Aのビット0とビット1の値が今回のタイマ割込み時に立上ったか否かが判定される。ここで、遊技球の払出が検出された場合は、遊技球が払出されない球詰り状態が、後述するリトライ処理の結果、解消されたことを意味する。したがって、遊技球の払出が確認された場合には、リトライエラーフラグ、リトライエラーLEDフラグ、及びリトライカウンタの全てを、00Hに設定して処理を終える(S704)。
一方、未だ、遊技球の払出しが検出されない場合には、リトライカウンタの値が上限値MM(例えば127)を超えない限りそのまま処理を終え、上限値MMを超えると、リトライエラーフラグ、リトライエラーLEDフラグ、及び払出リトライフラグの全てを、5AHに設定して処理を終える(S703)。なお、リトライカウンタの値は、図19(b)のリトライ処理におけるステップS33の処理で更新(+1)される。
ステップS703の処理でリトライエラーLEDフラグが5AHに設定されたことにより、その後のデータ出力処理(ST92)では、球詰り状態を示す異常ランプER2が点灯される。また、リトライエラーフラグの値が5AHである限り、その後のモータ処理(ST91)において、モータ駆動データが00Hとされるので、これに続くデータ出力処理(ST92)において払出モータMが非駆動状態(自由回転状態)となる。したがって、異常ランプER2の点灯を検出した係員は、払出回転体ROの操作軸53を比較的自由に回転させることができ、容易に球詰り状態を解消させることができる。
ところで、補給切れエラー検出処理(S72)では、第1入力ポート13Aへのスイッチ信号が所定時間を超えて異常レベルであるか否かが判定され、異常レベルが継続される場合には、補給切れエラーフラグが5AHに設定される。なお、異常レベルから正常レベルに戻れば、補給切れエラーフラグが00Hに戻される。
また、満杯球詰りエラー検出処理(S73)でも、第1入力ポート13Aへの該当するスイッチ信号が、所定時間(実施例では=500mS)を超えて、連続して異常レベルであるか否かが判定され、異常レベルが継続される場合には、満杯球詰りエラーフラグが5AHに設定される。なお、異常レベルから正常レベルに戻れば、満杯球詰りエラーフラグは00Hに戻される。
通常機であれば、一回の球貸し動作で125個の遊技球が払出されるだけであるから、通常、球貸し動作時に満杯球詰りエラーとなることはないが、簡易機の場合には、球貸し動作時において、満杯球詰りエラーとなる可能性がある。すなわち、遊技ホールの設定によって、一回の球貸し動作で500円が消費され、500個の遊技球が払出される場合には、それだけで、満杯球詰りエラーとなる。
これら、補給切れエラーフラグと満杯球詰りエラーフラグは、払出回転体ROの回転動作を禁止する動作禁止状態に突入させるか否かを決定する機能を果たしている(図17のST62参照)。先に説明した通り、本実施例では、遊技球の移動が0.5秒停滞すると、払出回転体ROの駆動が停止されるので、繰り返し、満杯球詰りエラーが発生すると予想される簡易機においても、払出モータMの劣化が有効に防止される。なお、多数の遊技球が連なって移動している状態でも、検出スイッチがON状態とOFF状態とを繰り返すので、移動速度が正常である限り、満杯球詰りエラーの誤認識は生じない。
続いて、図17のフローチャートに基づいてモータ処理(ST91)について説明する。モータ処理では、モータ駆動データを格納しているMOOUT番地の内容をクリアし(ST61)、各種のエラーフラグの値が全て00Hであるか否かが判定される(ST62)。ここで、判定されるエラーフラグには、リトライエラーフラグ、補給切れエラーフラグ、及び満杯球詰りエラーフラグが含まれている。
そして、全てのエラーフラグが00Hであって、全くエラーが発生していない場合には、続いて、払出モータフラグの値が判定される(ST63)。一方、そして、リトライエラーフラグ、補給切れエラーフラグ、及び満杯球詰りエラーフラグの何れかが≠00Hであるか、或いは、払出モータフラグが=00Hである場合には、何もしないでモータ処理を終える(ST62,ST63)。その結果、モータ駆動データ(MOOUT番地の内容)は2進数0000のままとなり、データ出力処理(ST92)が実行されても、払出モータMが駆動されない。したがって、払出回転体ROの回転動作が禁止される動作禁止状態となる。
一方、ステップST63の判定で、払出モータフラグが≠00Hと判定された場合には、そのときのモータ動作ステイタスの値に応じてモータ駆動開始処理(ST65a)、モータ駆動中処理(ST65b)、モータ停止中処理(ST65c)、モータリトライ中処理(ST65d)の何れかが実行された後、これらの処理で決定された払出モータMの位置に応じてモータ駆動データが選択され、MOOUT番地に格納される(ST66)。この実施例では、払出モータMのモータ位置が0〜3で管理されており、これに対応して、モータ駆動データは(0101、0110、1010、1001)の4種類であり、図4に示す順番に出力されて払出モータMを歩進させる。
図18〜図19は、モータ駆動開始処理(ST65a)、モータ駆動中処理(ST65b)、モータ停止中処理(ST65c)、及びモータリトライ中処理(ST65d)の具体的内容を図示したものである。初期状態ではモータ動作ステイタスは00Hであるので図18(a)モータ駆動開始処理が実行される。
<モータ動作ステイタス=00H>
モータ駆動開始処理では、払出リトライフラグの値がチェックされ(S1)、払出リトライフラグ≠5AHであれば、新規払出カウンタの値Nを16倍してステップカウンタに格納する(S2)。先に説明した通り、この実施例では、払出モータMを16ステップ歩進させて120°回転させることで、ギア接続された払出回転体ROを60°回転させて、遊技球を1個払出すようにしているので、払出モータMに出力すべき一連の駆動データの総数として、16×Nの値をステップカウンタに設定している。なお、新規払出カウンタの値Nは、球貸し動作時には、図11のステップRT15の処理で設定された球貸し単位数(=25個)である。一方、賞球動作時には、図14のステップST31の処理で設定された値(=25個以下)である。
以上のようにしてステップカウンタの初期値を設定した後、モータ動作ステイタスを01Hに変更すると共に、モータ駆動タイマを2に初期設定して処理を終わる(S3〜S4)。モータ駆動タイマは、払出モータMに駆動データを出力する時間間隔を指定するものであり、2に初期設定されたモータ駆動タイマは、2mS毎にタイマ減算処理(ST85)で−1されるので、この場合には、2×2=4mSの時間間隔でモータ位置が変化することになる。なお、モータ駆動タイマがゼロになる毎にステップカウンタが−1される(S12)。
モータ動作ステイタスが00Hであって、払出リトライフラグが5AHの場合には、モータ動作ステイタスが03Hに変更される(S5)。また、モータ駆動タイマが125に設定され(S6)、払出リトライフラグと払出検出フラグがゼロクリアされる(S7)。モータ動作ステイタスが03Hに変更されると、リトライ処理が開始させることになるが、モータ駆動タイマが125に初期設定されたことにより、以降は、1ステップ250mS(=2×125)の時間間隔でゆっくり払出モータMが駆動されることになる。
<モータ動作ステイタス=01H>
図18(a)のステップS3の処理によってモータ動作ステイタスが01Hに設定された後は、図18(b)に示すモータ駆動中処理が実行される。ここでは、先ず、モータ駆動タイマの値がチェックされ(S10)、ゼロでなければ何もしないで処理を終える。したがって、例えば、モータ駆動タイマが2に初期設定された場合には、2回のモータ処理(ST91)は、同一の駆動データを出力することになる(ST65b〜ST66)。
その後、モータ駆動タイマがゼロになると、ステップS2の処理で16×Nに初期設定されたステップカウンタの値が判定され(S11)、ゼロでなければステップカウンタの値を−1すると共に、モータ位置を0〜3の範囲で+1する(S12〜S13)。また、モータ駆動タイマの値を再び2に初期設定して処理を終える(S14)。したがって、モータ動作ステイタス=01Hのモータ駆動中処理では、払出モータMが4mS毎に歩進することになる。
このような歩進動作を繰り返すと、その後、ステップカウンタの値がゼロになる。そこで、この場合には、モータ動作ステイタスを02Hに変更すると共に、モータ駆動タイマの値を350に初期設定する(S15〜S16)。
以上の通り、モータ動作ステイタス=01Hのモータ駆動中処理において、ステップカウンタの値がゼロになったことにより、新規払出分の払出が完了する。但し、この一連の払出動作中にも、新規に制御コマンドCMD(賞球数指定コマンド)を受信している可能性があり、コマンド解析処理(ST86)によって全賞球数カウンタの値が更新されることで、更なる払出が必要となる場合もある(例えば大当り状態の場合など)。また、払出回転体ROの誤動作によって、新規払出分の払出量Nに過不足が生じている可能性もある。
払出量が不足する場合は、払出残数カウンタがゼロになっていないので、払出モータフラグがA5Hに変更されず5AHのままであるが、一方、払出モータフラグがA5Hであれば、払出残数カウンタがゼロになったことを意味する(図15のST47参照)。また、払出残数カウンタがゼロになった後に更に払出がされる過払い時には、払出モータフラグがA5Hであって、払出リトライフラグが5AHとなっている(図15のST45参照)。
<モータ動作ステイタス=02H>
以上を踏まえて説明を続けると、図19(a)に示すように、モータ動作ステイタス=02Hの状態ではモータ停止中処理が実行される。ここでは先ず、払出モータフラグの値がA5Hであるか否かが判定される(S20)。上記の通り、払出モータフラグがA5Hであれば払出残数カウンタがゼロになったことを意味するので(ST47)、このような場合には、モータ動作ステイタスを02Hから00Hに変更し、モータ駆動タイマをゼロにする(S25〜S26)。また、払出モータフラグと払出検出フラグをゼロクリアする(S27)。
一方、ステップS20の処理において、払出モータフラグ≠A5Hと判定された場合には、未だ、払出残数カウンタがゼロになっていないことを意味する。したがって、払出モータフラグが≠A5Hの場合には、モータ駆動タイマがゼロになるのを待つ(S21)。なお、モータ動作ステイタスが01Hから02Hに変更された段階で、モータ駆動タイマが350に初期設定されているので(S16)、ここでは700mSだけ時間消費されることになる。その後、モータ駆動タイマがゼロになれば、モータ動作ステイタスを02Hから03Hに変更すると共に、モータ駆動タイマを125に初期設定し、払出検出フラグをクリアする(S22〜S24)。
<モータ動作ステイタス=03H>
図19(b)に示すように、モータ動作ステイタス=03Hの場合には、先ず、モータ駆動タイマがゼロになるのを待つ(S30)。モータ動作ステイタスが03Hに変更された段階で、モータ駆動タイマが125に初期設定されているので(S6,S23)、ここでは250mSだけ時間消費されることになる。その後、払出検出フラグの値をチェックする(S31)。払出検出フラグは、遊技球の払出しを確認した段階で5AHに設定され(図15のST43)、モータ動作ステイタスが03Hに変更される段階でゼロにされている(図19のS24,図18のS7)。
したがって、モータリトライ処理において、払出検出フラグは最初ゼロの筈であるので、次に、モータ位置を0〜3の範囲で1つ進める(S32)。また、リトライカウンタを+1更新すると共に、モータ駆動タイマに125を設定する(S33〜S34)。したがって、以降、1ステップ=250mS毎に駆動データを更新するリトライ処理が実行されることになる。
このリトライ処理では、通常時の2/125倍の速度でゆっくり払出モータMが回転する。詳細には、ステップS30〜S34より明らかなように、モータ駆動タイマの初期設定値により、250mS毎に1ステップ(7.5°)分だけ払出モータMが回転し、これに対応して払出回転体ROが3.75°回転する毎に、遊技球の払出しがチェックされ、払出しを検出するまで同じ動作が繰り返えされる(S31)。なお、遊技球の払出は、図13のステップRT44の処理か、又は、図15のステップST42の処理で判定され、遊技球の払出が検出されたら、払出検出フラグが5AHに設定される(ST43)。
したがって、ステップS30〜S34の処理を繰り返していると、やがて払出検出フラグが5AHとなるので、この場合には次に払出モータフラグの値をチェックする(S35)。払出モータフラグは、払出残数カウンタがゼロとなる時、つまり、不足分なく遊技球を払出した時にA5Hに設定される(図13のRT51か、図15のST47)。したがって、払出モータフラグ≠A5Hは、払出していない遊技球が存在することを意味するので、払出残数カウンタの値を16倍した値をステップカウンタに格納する(S36)。
但し、本実施例では、リトライ処理後の払出量の上限値LTを設けており、具体的には、65536>LT×16となるよう、上限値LTをLT<4096に設定している。したがって、払出残数カウンタを、仮に16ビット長に制限しても、連続して大量の賞球が得られる大当り状態において、払出残数カウンタがオーバーフローして賞球数が消滅するおそれはない。なお、払出量の上限値LTは、上限値LT=4095に設定されているので、払出残数カウンタの最大値は、65520となるが、ステップS36の処理に続いて、モータ動作ステイタスを03Hから01Hに変更して、リトライカウンタをクリアすると共に、モータ駆動タイマに2を設定する(S37,S38)。この設定処理の結果、これ以降は、1ステップ=4mS毎に駆動データを更新する通常のモータ回転が開始されることになる。
ところで、ステップS35の判定において払出モータフラグ=A5Hとなった場合は、モータ動作ステイタスを03Hから00Hに変更する(S39)。払出しを検出した状態(払出検出フラグ=5AH)で、払出モータフラグがA5Hであるということは、モータ動作ステイタス=03Hの状態で1個の遊技球を払出し、且つ払出残数カウンタがゼロとなったことを意味する(ST47参照)。つまり、不足分の払出しが完了したことを意味するので、モータ動作ステイタスを03Hから00Hに変更して、その後、改めて払出動作が必要となる時期まで待機させるのである。そのため、リトライカウンタ、払出モータフラグ、及び払出検出フラグの値を全てゼロにする(S40)。
次に、図20に基づいてデータ出力処理(ST92)について説明する。データ出力処理では、先ず、モータ処理ST91(詳細には図17のST66)で用意されたモータ駆動データをMOOUT番地から取得する(ST70)。なお、モータ駆動データは2進数で0101,0110,1010,1001の何れかであり、それらが図4に示すように出力されることで払出モータMが回転する。なお、この実施例では、通常時、払出モータMの1ステップの回転時間が4mSに設定され、16ステップ分のデータ駆動データの出力によって払出回転体ROが60°回転して遊技球を1個払出すように設定されている。なお、払出モータMの1ステップの回転時間は、モータ駆動タイマで管理されており、1ステップ分の回転時間4mSが、タイマ割込み2回分に相当することから、通常動作時にはモータ駆動タイマの初期値は2に設定される。
何れにしてもステップST70の処理によって、モータ駆動データがBレジスタに用意されたら、リトライエラーLEDフラグが5AHにセットされているか判定される(ST71)。リトライエラーLEDフラグとは、払出動作の異常状態が所定時間継続した場合に、異常ランプER2(図5参照)を点灯させるためのフラグである。したがって、リトライエラーLEDフラグが5AHであれば、Bレジスタのbit4を1にセットする(ST72)。
次にBレジスタのbit7を1に設定し(ST73)、Bレジスタの値を、第1出力ポート16に出力する(ST74)。この結果、払出モータMには駆動データが出力されると共に、異常ランプER2が点灯又は消灯する。また、Bレジスタのbit7は、ウォッチドッグタイマに出力される。そして、時間消費処理(ST75)の後、bit7をゼロに戻して、第1出力ポート16から再出力することで(ST76)、ウォッチドッグタイマがゼロクリアされる。但し、プログラムの暴走によって、本来2mS毎に実行されるべきデータ出力処理(ST92)が実行されなくなると、ウォッチドッグタイマ回路の動作に基づいてCPUが強制的にリセットされる。
何れにしてもステップST76の処理に続いて、PRDYフラグ、EXEフラグ、OVRフラグ、補給切れエラーフラグを参照して、該当ビットをセットしたデータをBレジスタに格納する(ST77)。なお、満杯球詰りエラーフラグに対応するビットは、この段階ではリセット状態である。
次に、現在、遊技球が発射されているか否かを判定するため、発射制御基板6から受けているタッチセンサのセンサ出力TCHを判定する(ST78)。センサ出力TCHがOFFレベルである場合は、遊技者が発射ハンドル30に触れていない場合であるので、遊技者が遊技席から離れている可能性がある。そして、このような状態で、報知動作を起動しても周囲の遊技者に迷惑をかけるだけであるので、センサ出力TCHがOFFレベルである場合には、ステップST85に処理を移行させる。なお、タイマ変数TMは初期設定されないので、途中まで、実行されていた計時動作が無駄になることはない。
逆に、センサ出力TCHがONレベルである場合は、少なくとも、遊技者が、遊技席から離れていることはない。そこで、この場合には、満杯球詰りエラーフラグを判定して(ST79)、これがOFF状態であれば、タイマ変数TMをゼロにした上で(ST82)、ステップST85に処理を移行させる。満杯球詰りエラーフラグがOFF状態である以上、報知動作が不要だからである。
一方、満杯球詰りエラーフラグがON状態(=5AH)であれば、続いて、切換えフラグがON状態(=5AH)であるか否かを判定する(ST80)。これは、切換えフラグの値によって、現在が、球貸し動作中であるか否かを検出するためである。先に説明した通り、切換えフラグは、カード動作ステイタスが03H〜06Hである球貸し動作中は、5AHであるが、それ以外は00Hである(図12参照)。したがって、切換えフラグが00Hであれば、現在発生している満杯球詰りエラーが、球貸し動作によるものでないことになるので、タイマ変数TMをゼロにした上で(ST82)、ステップST84の処理に移行させる。この結果、その後、直ちに報知動作が起動されることになる。
逆に、切換えフラグが5AHであれば、現在発生している満杯球詰りエラーが、球貸し動作によるものであると判定することができる。例えば、球貸しスイッチ32bのON操作に応答して500個の払出が指示される簡易機では、この球貸し動作によって、当然に、満杯球詰りエラーが生じる。しかし、ステップST78の判定を経ている以上、このタイミングでは、一分間に100個程度の速度で遊技球が発射されており、このような遊技動作の進行に応じて、満杯球詰りエラーは自然に解消されると思われる。そこで、エラー報知動作の開始を猶予するべくタイマ変数TMをインクリメントして、インクリメント後の値が規定値に達しているかを判定する(ST81,ST83)。なお、遊技球は、一分間に約100個発射されるので、タイマ割込み周期(=2mS)と、25個の遊技球を発射して消費する時間(=15秒)とに対応して、例えば、規定値=7500に設定される。
この規定値は適宜に設定されるが、いずれにしても、タイマ変数TM<規定値であれば、ステップST84の処理がスキップされる。一方、例えば15秒の猶予時間の間、一貫して、ステップST78〜ST80の条件を満たして、満杯球詰りエラーが解消されない場合には、Bレジスタの満杯球詰りエラーフラグ用のビットをセットする(ST84)。なお、切換えフラグが00Hである場合にも、満杯球詰りエラーフラグがON状態であれば、Bレジスタの該当ビットがセットされる(ST84)。
そして、最終的に設定されたBレジスタの値を、第2出力ポート17に出力する(ST85)。この動作の結果、警報信号ERR及びPRDY信号やEXE信号が、ホールコンピュータや球貸し機22に出力され、また、補給切れ信号や満杯球詰り信号が、主制御部1に出力されることがある。なお、補給切れ信号や満杯球詰り信号を受けた主制御部1では、異常報知LEDランプP2,P3(図21参照)を点灯させる。また、液晶制御部4や演出制御部2に制御コマンドを送信して、文字や音声による報知処理を採ることになる。
以上の通り、本実施例では、タッチセンサのセンサ出力TCHを判定して、これがOFF状態であれば、賞球動作時や球貸し動作時に、満杯球詰りエラーが生じた場合でも、エラー報知を回避している。そのため、遊技者が席を離れた遊技機で、報知動作が継続されるおそれはない。また、満杯球詰りエラーが生じた場合でも、それが球貸し動作に起因する場合には、エラー報知が猶予される。つまり、球貸し動作時に過剰な報知処理が実行されることはないので、遊技者に苛立ち感を与えることがない。
なお、このような猶予時間を設けることの技術的意義を補充説明すると以下の通りである。そもそも、遊技球が連続して発射されている以上、正常時には、15秒もの間、一貫して球詰り状態が維持されることはない。すなわち、機器異常が発生していない限り、遊技球は、60/100秒に一個程度の割合で消費されている。したがって、球貸し動作時に、仮に、大量の遊技球(500個)が払出されても、せいぜい、断続的に満杯球詰りエラーが発生するだけであり、15秒の猶予時間を設けたことで、無駄な報知動作が確実に回避される。
一方、本実施例では、満杯球詰りエラーが生じると、払出回転体ROの駆動が、迅速に停止されるので(図17のST62参照)、猶予時間を如何に長く設定しても、払出モータMを無駄に駆動し続けるなどのトラブルは生じない。また、切換えフラグによって猶予動作を選択しているので、大当りゲーム中のように、次々と賞球が払出されている場合に、エラー報知が遅れることもない。
なお、ここでは切換えフラグを使用したが、球貸し動作中か否かを判定できる限り、何ら切換えフラグに限定されない。例えば、球貸し動作時、一単位の払出動作の開始時に5AHにセットされ、一単位の払出動作の完了時にリセットされる球貸しフラグを使用するのも好適である。或いはまた、賞球動作時、一単位の払出動作の開始時に5AHにセットされ、一単位の払出動作の完了時にA5Hに設定される賞球フラグを使用することもできる。
なお、上記の実施例では、ステップST78とステップST79の処理を設けたが、この実行順番を逆にしても良いのは勿論である。また、タッチセンサのセンサ出力TCHを判定するステップST78の処理は、必ずしも必須ではなく、省略しても良い。それは、センサ出力TCHがOFFレベルとなるのは、気分転換や喫煙開始などのために発射ハンドル30から単に右手を離す場合もあるからである。但し、ステップST78の処理を省略する場合には、大音量によるエラー報知処理を設けるべきでない。
また、図21(a)に示すように、球貸し動作中に限って、センサ出力TCHをチェックするのも好適である。例えば、満杯球詰りエラーフラグがON状態であると、切換えフラグ≠5AHで無い限り、タイマ変数TMをリセットした上で、必ず、ステップST84の処理を実行する(図21(a)のST78,ST79,ST82,ST84参照)。一方、切換えフラグ=5AHの場合でも、タッチセンサ出力がOFF状態であれば、ステップST84の処理をスキップさせる(図21(a)のST80参照)。この構成によれば、大量の賞球時に球抜き操作をする結果、発射ハンドル30から手を離しても、満杯球詰りエラーによる報知動作が維持される。
いずれにしても、この遊技機を、簡易機として使用した場合には、球貸し動作時に、通常機の場合より格段に多い遊技球が払出される。そのため、球貸し機22の設定を違法に変更して、通常機において、多量の球貸しを受けようとする違法行為も懸念されるところである。すなわち、違法設定された球貸し機に接続された遊技機では、それが通常機であるにも拘らず、球貸しスイッチをON操作する毎に、BRQ信号を20回受けて、500個の遊技球が払出されることになる。通常機にとって、500個の遊技球は、4×500円の価値を有するのであるから、不正遊技者は、単に、球貸し機の設定を変更するだけで、極めて容易に、違法な利益を得ることになる。
しかし、本実施例の遊技機では、球貸し機23から5回を超えてBRQ信号を受けると、そのタイミングで、過剰信号ERRが出力されると共に、警報ランプER1が点灯されるので、違法行為が直ちに露見する。
以上、主として球貸し動作について、図7(a)に示すタイマ割込みルーチンについて説明したが、念のため、主制御部1から受ける制御コマンドに起因する賞球処理(ST89)についても説明を補充しておく。
図14に示すように、賞球処理では、最初に、賞球が検出されたか否かが判定される(ST20)。賞球検出処理(ST20)の具体的内容は図15に示す通りである。なお、以下の説明では、今が、球貸し動作中ではなく、したがって、切換えフラグが00Hであるとする(図12参照)。
このような場合には、左右の賞球データ(スイッチエッジデータのbit0とbit1)を変数D1に取得すると共に、Bレジスタに2を設定する(ST40)。次に、変数D1を右に1ビットシフト演算することで、スイッチエッジデータのbit0の内容をキャリーフラグCYに移動させる(ST41)。
CY=1であれば計数スイッチがONであることを意味するが、ステップST42の判定でCY=1となる場合には、払出検出フラグを5AHに書き換えた後に(ST43)、賞球フラグの内容をチェックする(ST44)。払出動作が完了するまでは、賞球フラグの値が5AHであるから(図14のST32参照)、続いて、払出残数カウンタの値がゼロか否かを判定する(ST46)。
球貸し動作の場合と同様、払出残数カウンタは、データ出力処理(ST32)を経て払出されるべき遊技球の残数を管理している。そして、このタイミングでは、ステップST42の判定によって遊技球の払出が確認されている。したがって、払出残数カウンタの値がゼロでない場合には、カウンタ値を−1して(ST48)、ステップST50の処理に移行する。
一方、デクリメント処理(ST48)の結果、払出残数カウンタの値がゼロになれば、払出モータフラグと賞球フラグとをA5Hに設定した後に(ST47)、ステップST50の処理に移行する。なお、払出モータフラグと賞球フラグは、払出残数カウンタに新規払出カウンタの値を加算した段階で5AHに設定されるようになっている(図14のST31〜ST33)。
また、払出モータフラグは、払出モータMを駆動状態にするか非駆動状態にするかを規定しており、払出モータフラグが5AH又はA5Hであれば、モータ駆動状態となるが、00Hであれば非駆動状態となる。ここでモータ駆動状態とは、第1出力ポート16に有意な駆動データ(2進数0101,0110,1010,1001の何れか)が出力されていることを意味し、非駆動状態とは、第1出力ポート16に2進数0000が出力されていることを意味する。なお、第1出力ポート16に2進数0000が出力されると、オープンコレクタタイプのトランジスタ群18が全てOFF状態となり、払出モータMは自由回転状態となる(図5参照)。
以上のステップST41〜ST51の処理は、Bレジスタの初期値(=2)に基づき二回実行される。そして、払出残数カウンタの値がゼロになった後は、払出動作が実行されないため、ステップST42の判定において、CY=1となることは本来無いはずである。
しかし、払出回転体ROの慣性力などの影響で、過払い状態となる可能性も否定しきれない。そして、このような異常時には、過払い状態を示すべく、払出リトライフラグを5AHに設定する(ST45)。この払出リトライフラグは、電源投入後のステップST9(図6)でも5AHに設定されるフラグである。そして、払出リトライフラグが5AHであると、リトライ処理(図19(b))が開始され、遊技球が一個払出されるまで3.75°ピッチで払出回転体ROが歩進することで、精密な位置合わせ処理が実現される。
図14に戻って賞球処理の説明を続けると、上記した賞球検出処理(ST20)の後、先ず、カード動作ステイタスの値がチェックされる(ST21)。カード動作ステイタス≠00Hの場合については、球貸し処理に関して既に説明しているので、ここでは、カード動作ステイタス=00Hであるとする。
この場合には、続けて、モータ動作ステイタスの値がチェックされる(ST22)。先に説明した通り、モータ動作ステイタスは、一連の賞球払出動作における動作内容を規定するものであり、2mS毎に実行されるモータ処理(ST91)は、モータ動作ステイタス=00H〜03Hの何れかの状態で実行される点は、既に説明した通りである。
ステップST22の処理で、今がモータ動作ステイタス=01Hであって、モータ駆動中処理(図18(b))を実行すべきタイマ割込みタイミングであると判定されると、何もしないで賞球処理を終える。また、今が、モータ動作ステイタス=03Hであって、モータリトライ中処理(図19(b))を実行すべきタイマ割込みタイミングであると判定されれば、賞球フラグの値をチェックし(ST23)、もしA5Hに設定されていれば、賞球フラグを00Hに書き直して賞球処理を終える(ST24)。
一方、ステップST22の処理で、今がモータ動作ステイタス=02Hであって、モータ停止中処理(図19(a))を実行すべきタイマ割込みタイミングであると判定されると、払出リトライフラグの値をチェックし(ST25)、もし5AHに設定されていれば、そのまま賞球処理を終え、5AH以外の値(=00H)に設定されていれば、ステップST26の処理に移行する(ST25)。
ステップST22の処理で、今回のタイマ割込み時が、モータ動作ステイタス=00Hであって、駆動開始処理(図18(a))を実行すべきタイマ割込みタイミングであると判定されれば、先ず、コマンド解析処理(ST86)で更新された全賞球数カウンタの値が変数D1に取得される(ST26)。そして、変数D1がD1≠0であれば、新規払出数の最大値25を変数D2に格納し、変数D1から変数D2の値を減算する(ST28)。
次に減算結果が負か否か判定され(ST29)、もし負なら変数D2に全賞球数カウンタの値を格納すると共に、変数D1をゼロに設定する(ST30)。その後、新規払出カウンタに、変数D2の値を格納すると共に、全賞球数カウンタに、変数D1の値を格納する(ST31)。なお、ステップST31の処理で設定される新規払出カウンタの値は、通常は5個、10個、25個(新規払出数の最大値)の何れかである。
続いて、払出残数カウンタの値を変数D3に格納し、変数D2の値を変数D3に加算する。そして、加算結果である変数D3の値を、払出残数カウンタに格納する(ST32)。この処理の結果、このタイミングで把握されている、払出すべき全賞球数が、払出残数カウンタに格納されることになる。
その後、賞球フラグと払出モータフラグが5AHに設定され(ST33)、モータ動作ステイタスが00Hに設定されて賞球処理が終わる(ST34)。なお、5AHに設定された賞球フラグは、図15のステップST47の処理でA5Hに変更されるまで、その値を維持する。
一方、5AHに設定された払出モータフラグは、図15のステップST47の処理でA5Hに変更される他、図19のステップS27やステップS40の処理で00Hに変更される。すなわち、払出モータフラグは、初期的に5AHに設定された後、払出残数カウンタの値がゼロになるとA5Hに変更され(ST47)、その後、モータ動作ステイタス=02Hからモータ動作ステイタス=00Hに変更されるか、或いは、モータ動作ステイタス=03Hからモータ動作ステイタス=00Hに変更されるタイミングで、00Hに変更される(S27,S40)。
以上の動作推移から明らかなように、払出モータフラグは、一連の払出動作を開始するに当って5AHに設定され、その後、A5Hに変更されることはあっても、一連の払出動作を終えてモータ動作ステイタス=00H(初期状態)に戻るタイミングでは、必ず00Hとなる。本実施例では、この払出モータフラグの値に応じて、払出モータMを駆動状態とするか非駆動状態にするかを管理しており、払出モータフラグがA5H又は5AHであれば駆動状態、払出モータフラグが00Hであれば非駆動状態となる(図17参照)。
また、本実施例では、新規払出カウンタとは別に、払出残数カウンタを設けているので、払出モータMが駆動されない動作禁止状態からの復帰時にも、円滑な払出動作が実現される。例えば、動作禁止状態でステップST26〜ST34の処理が繰り返されると、遊技球が払出されない状態で、全賞球数カウンタの減少分だけ(ST28,ST31)、払出残数カウンタの値は+25ずつ増加するが(ST32)、動作禁止状態からの復帰後は、蓄積された払出残数カウンタ分の遊技球が一気に払い出されることになる。
以上説明した通り、本実施例では、切換えフラグと賞球フラグとによって球貸し動作と賞球動作とを適宜に切り換えて、円滑な払出動作を実現している。以下、2つの払出動作である球貸し動作と賞球動作の優先順位について説明する。
電源投入後の初期状態では、カード動作ステイタスが00Hであるが、カード通信処理(ST87)が賞球処理(ST89)より先行して実行されるので(図7参照)、球貸し機22からHレベルの制御信号BRDYを受けると(図8のタイミング(b))、直ちにカード動作ステイタスが00Hから01Hに変化する(図9のRT003)。
すると、その後は、カード動作ステイタスが00Hに戻るまで、賞球動作(ST89)において、ステップST26以降の処理が実行されることがない(図14参照)。したがって、本実施例では、この意味において、球貸し動作が、賞球動作に優先されることになる。
但し、賞球動作中に、Hレベルの制御信号BRDYを受けた場合には、カード動作ステイタスは、00Hから01Hに変更されるものの、切換えフラグが00Hであることから、賞球検出処理(ST20)は引き続き実行される(図15のST39参照)。また、賞球処理(ST89)では、賞球フラグがチェックされ(図14のST21→ST23参照)、賞球フラグがA5Hになるまでは、賞球動作が引き続き継続される。
先に説明した通り、賞球フラグは、賞球動作開始時に5AHに設定され(図14のST33参照)、その後、払出残数カウンタがゼロになると、図15のステップST47のタイミングでA5Hとなる。
本実施例では、遊技機にトラブルが発生していない限り、払出残数カウンタの値は、賞球単位数(最大25個)に設定されている(図14のST30〜ST32参照)。したがって、賞球動作が開始された後に、Hレベルの制御信号BRDYを受けた場合には、賞球単位数が払出されるのを待った上で、賞球フラグがA5Hから00Hに変更されて(図14のST24)、球貸し動作が開始される。すなわち、図9(d)に示すように、賞球フラグが00Hに変更されるまでは、カード動作ステイタスが02Hから03Hに変化しないので(RT203)、球貸し動作が待機されることになる。
そして、カード動作ステイタスが03Hに変化した後は、切換えフラグが5AHに設定されることで(図12のRT33)、例え、主制御部1から制御コマンド(賞球数指定コマンド)を受けても、賞球処理が開始されることはない。賞球処理は、球貸し処理が終わって、切換えフラグが00Hに戻ったタイミングで開始される。
なお、本実施例では、モータ動作ステイタスが00Hか02Hの状態で、満杯球詰りエラーや補給切れエラーが発生すると、全賞球数カウンタの値が−25される毎に(図14のST28参照)、払出残数カウンタの値が+25され(図14のST31〜ST32)、払出残数カウンタの値が25個を超える可能性がある。しかし、払出残数カウンタの値が25個を大幅に超えるのは、主制御部1から賞球数指定コマンドを繰り返し受けている場合であり、このようなタイミングで球貸しスイッチ32bが押圧されることはないので、事実上、何の問題も生じない。
図21(b)(c)は、球貸し動作中に、15個の賞球数指定コマンドを二回受けた場合と、賞球動作中に、球貸しスイッチ32bが押圧された場合について、動作内容を説明したタイムチャートである。何れも、払出し動作の単位個数が25個であり、500円の消費で125個の遊技球が球貸しされる通常機の動作を示している。
続いて、発射制御基板6についても念のため説明しておく。図22は、払出制御基板5と発射制御基板6との接続関係を図示したブロック図である。発射制御基板6は、クロックパルスΦを発振する発振器61と、発振器61が出力するクロックパルスΦを分周する分周カウンタ62と、発射強度信号VLを増幅して駆動信号SGを生成する増幅部63と、駆動信号SGを受けてロータリソレノイドSL1に通電電流を供給する第一駆動回路64と、分周カウンタ62の出力に基づいてON動作して駆動信号SGを短絡させるスイッチ回路65と、分周カウンタ62の出力を受けて球送りソレノイドSL2に通電電流を供給する第二駆動回路66とを中心に構成されている。
分周カウンタ62は、この実施例では、Q0〜Q9の出力端子を有する10進カウンタHCF4017(DECADE COUNTER WITH 10 DECODED OUTPUTS)で構成されている(図23(a)参照)。図23(b)のタイムチャートに示す通り、この分周カウンタ62は、クリア端子CLRにHレベルの信号を受けると、Q0出力端子だけがHレベルとなり、その他の出力端子Q1〜Q9はLレベルとなる。
一方、クリア端子CLRにLレベルの信号を受けると、クロック端子CKに受けるクロックパルスΦの個数に応じて、Q0端子〜Q9端子の何れか一つからパルス信号を出力する。このパルス信号は、クロックパルスΦの立上りエッジに同期して立上る。逆に、クロック端子CKをHレベルに固定してイネーブル端子CEにクロックパルスΦを供給すると、クロックパルスΦの個数に応じて、Q0端子〜Q9端子の何れか一つから、パルス信号を出力する。このパルス信号は、クロックパルスΦの立下りエッジに同期して立上る。
図示の通り、この回路例では、クロック端子CKをHレベルに固定した状態で、イネーブル端子CEにクロックパルスΦを供給している。また、Q8端子の出力を、2つのゲートG0,G2を介して、クリア端子CLRに帰還させている。したがって、この10進カウンタ14は、8進カウンタとして機能することになり、Q1端子からは、クロックパルスΦを8分周したパルス信号が出力される(図23(c)参照)。
クロックパルスΦを8分周したパルス信号は、遊技球の法定発射速度(≒100個/分)に対応して、そのパルス周期を600mS程度に設定する必要がある。そのため、クロックパルスΦのパルス周期が75mS程度、パルス周波数が13.3Hz程度に設定されている。
ところで、NANDゲートG2には、Q8端子の反転出力とは別に、フォトカプラPHの反転出力、発射停止スイッチSTPの出力、タッチセンサTCHの出力が供給されている。発射許可信号CTLが不許可状態では、フォトカプラPHの反転出力がLレベルとなり、発射ハンドルHDから手を離すとタッチセンサTCHの出力がLレベルとなる。また、発射停止スイッチSTPをON操作するとスイッチ出力がLレベルとなる。
そのため、(a)発射許可信号CTLが不許可状態か、(b)発射ハンドルHDから手を離すか、(c)発射停止スイッチSTPをON操作するか、の何れかの事態では、NANDゲートG2の出力がHレベルとなり、Q1端子からパルス信号が出力されない。したがって、遊技球の発射動作は、上記した(a)〜(c)の条件が解消されるまで停止状態を維持することになる。
スイッチ回路65は、NANDゲートG3と、分圧抵抗R10,R11と、スイッチングトランジスタTR3とで構成されている。NANDゲートG3の入力端子には、クロックパルスΦと、それを8分周したパルス信号(Q1パルス)とが供給されている。そのため、図23(c)のゲートG3の出力に示す通り、2つのパルスΦ,Q1の位相が一致する(パルス周期75mSの半分の)時間だけ、スイッチングトランジスタTR3がOFF動作することになる。
先に説明した通り、分周カウンタ62のQ1端子からは、クロックパルスΦを8分周したパルスが出力されるので、結局、スイッチングトランジスタTR3は、クロックパルスΦの1/8倍の周波数、つまり600mS程度の時間周期でOFF動作することになる。なお、ゲートG3の出力パルスのデューティ比は15/16であり、15/16の時間帯は、スイッチングトランジスタTR3がON状態となって、駆動信号SGがゼロレベルとなる。
第二駆動回路66は、ダーリントン接続された一対のトランジスタTR4,TR5と、バイアス抵抗R12〜R14と、球送りソレノイドSL2とで構成されている。トランジスタTR4,TR5は、分周カウンタ14のQ1出力に基づいてON/OFF動作して、球送りソレノイドSL2を通電させている。図23(c)のタイムチャートに示す通り、分周カウンタ14のQ1出力は、パルス幅75mS程度、パルス周期600mS程度であるので、一分間に100回程度(=60/600mS)の時間間隔で遊技球を球送りすることになる。
球送りソレノイドSL2を通電させるパルスは、ロータリソレノイドSL1を通電させるパルスに先行してON状態となるので(図23(c))、遊技球が所定位置に確実にセットされた状態で、打撃ハンマーが遊技球を所定トルクで打撃することになる。
増幅部63は、OPアンプと分圧抵抗R1,R2とで構成されたバッファ回路と、OPアンプA2と抵抗R3,R4,R9とで構成された負帰還増幅回路とで構成されている。バッファ回路には、発射強度信号VLの分圧値Ei=VL×R2/(R1+R2)が供給され、その信号Eiが、そのままOPアンプA2の非反転入力端子(+)に供給される。一方、OPアンプA2の反転入力端子(−)には、ロータリソレノイドSL1の通電電流Iに比例した電圧Eo=I×R9が供給される。
ここで、電圧Eo=I×R9は、OPアンプA2の出力電圧Eのα倍(Eo=α×E)であるとすると、−(Ei−α×E)×R4/R3+α×E=Eとなり、これを整理すると、E=β×Ei/{α×(1+β)−1}となる。なお、β=R4/R3であり、ここでは、β≫1、α×β≫1となるよう設定されている。
そのため、E≒Ei/αとなり、ロータリソレノイドSL1の駆動電流I(=Eo/R9)は、I=Ei/R9となって、OPアンプA1の出力電圧Eiに比例することになる。先に説明した通り、Ei=VL×R2/(R1+R2)であるから、ロータリソレノイドSL1の駆動電流Iは、結局、発射強度信号VLに比例して変化する。
第一駆動回路64は、分圧抵抗R5,R6と、スイッチングトランジスタTR1と、負荷抵抗R7と、バイアス抵抗R8と、電流駆動用のトランジスタTR2と、ロータリソレノイドSL1と、電流検出抵抗R9と、振動電流吸収用のダイオードDとで構成されている。図示の通り、トランジスタTR2と、ロータリソレノイドSL1と、電流検出抵抗R9とが直列接続されている。トランジスタTR2は、大電流用のMOS型トランジスタであり、ソース端子SにDC32Vが供給され、ドレイン端子Dが、ロータリソレノイドSL1とダイオードDに接続されている。
このトランジスタTR2は、ゲート端子Gとソース端子S間の電圧変化に比例して、負方向のドレイン電流が変化するリニア動作をする。このドレイン電流は、ロータリソレノイドSL1の駆動電流Iに他ならず、発射強度信号VLに比例した電流値となる。
以上を踏まえて、遊技球の発射動作を説明する。図22に示す通り、駆動信号SGは、OPアンプA2の出力電圧Eを分圧して得られる。そして、スイッチングトランジスタTR3がOFF状態であれば、分圧比は、ほぼR6/(R5+R6)であるが、スイッチングトランジスタTR3がON状態であれば、分圧比がゼロとなる。
ゲートG3の出力は、Lレベルのパルス幅が約75mS/2であって、そのデューティ比が15/16であるので、スイッチングトランジスタTR3がON動作する15/16の時間帯は、駆動信号SGがゼロレベルとなる。一方、スイッチングトランジスタTR3がOFF動作する1/16の時間帯は、駆動信号SGが、ほぼE×R6/(R5+R6)となり、ロータリソレノイドSL1には、発射強度信号VLMに比例したレベルの駆動電流Iが流れる(I=Ei/R9)。
ここで、ロータリソレノイドSL1は、駆動電流Iに比例したトルクで遊技球を発射するよう構成されているので、ロータリソレノイドSL1には、1秒間に100回程度、駆動電流Iが間欠的に流れ、発射強度信号VLMに比例した初速度の遊技球が発射されることになる。なお、駆動パルスSGのデューティ比を1/16にするのは、使用するロータリソレノイドSL1を最適に動作させるためである。
最後に、本発明が好適に適用される弾球遊技機について確認的に説明する。図24は、本実施例のパチンコ機21を示す斜視図であり、図25は、同パチンコ機21の側面図である。なお、パチンコ機21は、球貸し機22に電気的に接続された状態で、パチンコホールの島構造体の長さ方向に複数個が配設されている。球貸し機22は、遊技開始に先立って現金を受け取り、遊技終了時には、残金に対応する数値を記憶したカードを排出するようになっている。
図示のパチンコ機21は、島構造体に着脱可能に装着される矩形枠状の木製外枠23と、外枠23に固着されたヒンジHを介して開閉可能に枢着される前枠24とで構成されている。この前枠24には、遊技盤25が裏側から着脱自在に装着され、その前側には、ガラス扉26と前面板27とが夫々開閉自在に枢着されている。
前面板27には発射用の遊技球を貯留する上皿28が装着され、前枠24の下部には、上皿28に連通した下皿29と、発射ハンドル30とが設けられている。この実施例では、発射ハンドル30の回動角度に対応して、ロータリソレノイドSL1の駆動電流が変化するよう構成されており、ロータリソレノイドSL1の駆動電流に対応する強度で、打撃槌31が間欠的に動作して遊技球が発射される。なお、上皿28の遊技球は、打撃槌31による発射位置に誘導される一方、溢れた遊技球は自動的に下皿29に誘導される。
上皿28の右部には、球貸し機22に対する球貸し操作用の操作パネル32が設けられ、この操作パネル32には、球貸し機22の残金の1/100の値を3桁の数字で表示する残金表示部32aと、所定金額(例えば500円)分の遊技球の球貸しを指示する球貸しスイッチ32bと、ゲーム終了時に押圧される返却スイッチ32cとが設けられている。なお、返却スイッチ32cを押圧すると、残金に対応するカードが球貸し機22から排出される。
ガラス扉26の上部には、大当り状態を示す大当りLEDランプP1が配置されている。また、この大当りLEDランプP1に近接して、補給切れ状態や満杯球詰り状態を示す異常報知LEDランプP2,P3が設けられている。
図26に示すように、遊技盤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が存在する。
大入賞口36の開閉板36aが開放された後、所定時間が経過し、又は所定数(例えば10個)の遊技球が入賞すると開閉板36aが閉じる。このとき、最大で例えば15回まで特別遊技が継続され、遊技者に有利な状態に制御される。さらに、変動後の停止図柄が特別図柄のうちの特別状態発生図柄であった場合には、特別状態を発生させる。
図27に示すように、前枠24の裏側には、遊技盤25を裏側から押さえる裏機構板40が着脱自在に装着されている。この裏機構板40には開口部40aが形成され、その上側に賞球タンク41と、これから延びるタンクレール42とが設けられている。裏機構板40の側部には、タンクレール42に接続された払出装置43が設けられ、裏機構板40の下側には払出装置43に接続された通路ユニット44が設けられている。払出装置43から払出された遊技球は、通路ユニット44を経由して上皿排出口28a(図24)から上皿28に払出されることになる。
裏機構板40の開口部40aには、遊技盤25の裏側に装着された裏カバー45と、入賞口35〜37に入賞した遊技球を排出する入賞球排出樋(不図示)とが嵌合されている。この裏カバー45に装着されたケースCA1の内部に主制御基板1が配設される(図27参照)。
これらケースCA2,CA3の下側で、裏機構板40に装着されたケースCA4の内部には、電源基板7と払出制御基板5が設けられている。この電源基板7には、電源スイッチ53とRAMクリアスイッチ54とが配置されている。これら両スイッチ53,54に対応する部位は切欠かれ、両スイッチを指で同時に操作可能になっている。発射ハンドル30の後側に装着されたケースCA5の内部には、発射制御基板6が設けられている。
以上、本発明の実施例について具体的に説明したが、記載内容は特に本発明を限定するものではない。例えば、実施例では、弾球遊技機について説明したが、パチンコ機、アレンジボール機、雀球遊技機のみならず、メダルを用いる回胴遊技機や、遊技球を用いる回胴遊技機にも適用できるのは勿論である。