遊技機
【課題】バッファオーバーフローのときでも失われるコマンドを最小限に抑えつつコマンドを再構成できるサブ基板を備える遊技機を提供する。
【解決手段】メイン基板からの第1電文及び第2電文を受信した順番で格納するFIFOバッファと、前記FIFOバッファから読み出した前記第1電文及び前記第2電文に基づきコマンドを構築するコマンド構築部と、前記コマンド構築部で構築したコマンドを格納するコマンド登録用バッファと、予め定められた間隔で前記コマンド構築部に対して割り込み信号を与えるタイマーと、前記FIFOバッファが満杯になったときにセットされるオーバーランフラグと、前記コマンド構築部が前記コマンドを構築する際に参照する参照テーブルとを備える。
【解決手段】メイン基板からの第1電文及び第2電文を受信した順番で格納するFIFOバッファと、前記FIFOバッファから読み出した前記第1電文及び前記第2電文に基づきコマンドを構築するコマンド構築部と、前記コマンド構築部で構築したコマンドを格納するコマンド登録用バッファと、予め定められた間隔で前記コマンド構築部に対して割り込み信号を与えるタイマーと、前記FIFOバッファが満杯になったときにセットされるオーバーランフラグと、前記コマンド構築部が前記コマンドを構築する際に参照する参照テーブルとを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パチンコ機やスロットマシンなどの遊技機に関し、特に、制御部(メイン基板)から副制御部(サブ基板)へのコマンドの通信手段に関するものである。
【背景技術】
【0002】
遊技機設置営業店などにおいて設置されている弾球遊技機(いわゆるパチンコ機)は、遊技球(遊技媒体とも呼ぶ)を用いて遊技を行うものである。借り受けた遊技球を弾球遊技機の遊技盤に設けられている盤面へ打ち出し、当該遊技球が予め定められた入賞口に入るごとに所定数の遊技球を払出すようになっている。払い出される遊技球は賞球と呼ばれる。
【0003】
弾球遊技機の盤面に設けられている入賞口には次のようなものがある。
(1)普通入賞装置
(2)スタートチャッカー(始動入賞装置)
(3)アタッカー(大入賞装置)
(4)スルーチャッカー(入賞チャッカー)
【0004】
スタートチャッカー(始動入賞装置)は特定入賞装置とも呼ばれる。遊球球がスタートチャッカー(始動入賞装置)に受け入れられて入賞状態になったとき、賞球を払い出すとともに電子的な抽選を行い、当選の場合に通常状態から遊技者にとって有利な遊技状態となるよう、アタッカー(大入賞装置)を開放状態にするものである。
アタッカー(大入賞装置)は特別入賞装置とも呼ばれる。
【0005】
スルーチャッカー(入賞チャッカー)は直接賞球を払い出すものではないが、本明細書において入賞口に含める。遊技球がスルーチャッカー(入賞チャッカー)を通過したことが検知されたとき、電子的な抽選を行い、当選したときは遊技者にとって有利な遊技状態となるよう、スタートチャッカー(始動入賞装置)を所定時間開放し、遊技球がスタートチャッカー(始動入賞装置)に入りやすくする。スルーチャッカー(入賞チャッカー)に受け入れられた遊技球はそのまま盤面を移動し、他の入賞口又は次に説明する排出口(アウト口)に受け入れられる。
【0006】
弾球遊技機の盤面には、前記入賞口以外にも排出口(アウト口)が設けられている。排出口(アウト口)は、盤面に遊技領域を区画するために螺旋状に配置された誘導レールの下部(重力によって遊技球が集められる個所)に設けられた開口であり、前記入賞口(正確には普通入賞装置、スタートチャッカー(始動入賞装置)、アタッカー(大入賞装置))のいずれにも受け入れられなかった遊技球を受け入れて、盤面の外へ排出するためのものである。
【0007】
パチンコ店などの遊技場に設置して使用されるパチンコ機等の遊技機は、パチンコ球等の遊技媒体に一定の価値が与えられて、ゲームを行って獲得した遊技媒体を種々の景品に交換することができる。遊技機には、その筐体内部に、遊技媒体の供給に基づいて作動させるランプ装置や音声発生装置などの様々な各種駆動装置及びこれら駆動装置を制御させるために対応させた制御回路装置(制御部と副制御部)を備えており、遊技者が遊技を行う際にこれらを適宜作動させることによって遊技を興趣に溢れたものとしている。また、近年では、所定の識別情報(図柄)を変動表示し得る液晶画像表示装置等の図柄可変表示装置を内蔵し、所定条件を満たしたときに識別情報を変動させた後に停止表示させるように図柄可変表示装置を作動させるものが主流となっている。このような制御は、主に遊技処理を実行する制御部から、主に演出処理を実行する副制御部へ予め定められたコマンドを送信することで実現されている。
【発明の概要】
【発明が解決しようとする課題】
【0008】
遊技機を規制する法令上、制御部(メイン基板)から副制御部(サブ基板)へのコマンドの流れは一方通行であり、逆に副制御部から制御部ヘコマンドを含む信号を送ることは許されていない。
【0009】
当該コマンドの伝送には、従来、パラレル伝送方式が用いられていたが、最近ではシリアル送信方式を採用するケースもある。シリアル通信は、パラレル通信と比較して高速にデータを転送することができ、これに対応してデータの取りこぼしが発生しないように、FIFO型バッファを備えることが多い。FIFOとは、先入れ先出し(first-in first-out)のことであり、最初に格納されたデータが最初に取り出されるようなバッファ、すなわち時間的にもっとも古いデータが優先的に取り出されるようなバッファである。
【0010】
FIFO型バッファは公知であるが、簡単に説明を加える。FIFO型バッファは、例えば、複数のD型ラッチを直列に接続するようにして構成される。接続されるラッチの数の多い方が、より多くのデータを格納することができる。ラッチの数を段数と呼ぶことがある。FIFO型バッファは段数分だけデータを格納できる。入力側のラッチに入力されたデータは自動的に出力側へ移動して、順番に取り出される。データが取り出されない場合でも、FIFO型バッファは段数分だけデータを格納できる。データが入力されているにもかかわらずデータが取り出されず、その結果、全ての段にデータが格納された状態になると、もはやデータを受け取ること(格納すること)ができなくなる。これをFIFOフル(FIFO満杯)であると呼ぶ。
【0011】
制御部から複数の電文からなるコマンドを送信する場合、副制御部において何らかの原因でFIFOフルとなると、言い換えるとFIFOバッファがオーバーフローすると、送信されたデータはバッファに格納されず、その結果当該データは失われることになる。このため、副制御部はコマンドの受信に失敗することになる。
【0012】
その後、副制御部が電文を正しく受信したとしても、それら電文からコマンドを再構築する際に電文の順序が入れ違ってしまう可能性がある。また、コマンドの体系によっては電文を誤った形で結合する可能性がある。
【0013】
コマンド受信の失敗後、任意にコマンドの再構成を行って、意味のある一連のコマンドが得られた時点以降において(言い換えれば、問題となるデータを除外した状態で)、再構成したコマンドのみを有効にすれば、コマンドの再受信が可能になる。
【0014】
しかし、このやり方では、受信失敗から有効コマンド再構築までの間に受信された電文は破棄されることになる。つまり、多くのコマンドが失われることになる。その間、副制御部は、演出などの処理を実行できないことになる。これでは、遊技者の興趣を損なうことになる。
【0015】
そこで、本発明は、バッファオーバーフローのために副制御部でコマンドの受信に失敗した場合でも、速やかにコマンドの再受信を可能にするとともに、その間に失われるコマンドを最小限に抑えることのできる遊技機を提供することを目的とする。
【課題を解決するための手段】
【0016】
この発明は、内部抽選処理を含む遊技に係る制御を実行する制御部と、前記制御部で生成したコマンドに基づき所定の処理を実行する副制御部とを備える遊技機において、
前記コマンドは、電文の開始を示す第1電文とこれに続く第2電文とを含むものであり、
前記制御部は、前記副制御部に実行させる処理に対応して前記第1電文を生成し、前記第1電文に対応して前記第2電文を生成し、前記第1電文及び前記第2電文をこの順番で前記副制御部へ送信するコマンド送信部を含み、
前記副制御部は、
前記制御部からの前記第1電文及び前記第2電文を受信した順番で格納するFIFOバッファと、
前記FIFOバッファから読み出した前記第1電文及び前記第2電文に基づきコマンドを構築するコマンド構築部と、
前記コマンド構築部で構築したコマンドを格納するコマンド登録用バッファと、
予め定められた間隔で前記コマンド構築部に対して割り込み信号を与えるタイマーと、
前記FIFOバッファが満杯になったときにセットされるオーバーランフラグと、
前記コマンド構築部が前記コマンドを構築する際に参照する参照テーブルとを備えるコマンド受信部を含み、
前記コマンド構築部は、前記FIFOバッファが満杯でないときは、前記タイマーからの前記割り込み信号に基づき下記(N1)乃至(N3)の処理を実行し、
(N1)前記FIFOバッファに格納されている前記第1電文及び前記第2電文を読み出し、
(N2)読み出した前記第1電文及び前記第2電文に基づきコマンドを構築し、
(N3)構築したコマンドを前記コマンド登録用バッファに格納し、
前記FIFOバッファが満杯になったときは、予め定められた受信ブレイク割り込みが発生し、
前記コマンド構築部は、前記受信ブレイク割り込みを受けて下記(F1)乃至(F7)の処理を実行するものである。
(F1)前記制御部から前記コマンドを受信しないように、前記オーバーランフラグをセットし、
(F2)前記FIFOバッファに格納されている前記第1電文及び前記第2電文を読み出し、
(F3)読み出した前記第1電文及び前記第2電文に基づきコマンドを構築し、
(F4)前記参照テーブルを参照して、コマンドが正しく構築できたかどうか判定し、
(F5)コマンドが正しく構築できたと判定したときは、構築したコマンドを前記コマンド登録用バッファに格納し、
(F6)コマンドが正しく構築できなかったと判定したときは、構築したコマンドを破棄し、
(F7)前記制御部から前記コマンドの受信を再開するように、前記オーバーランフラグをリセットする。
【0017】
前記副制御部は、前記オーバーランフラグを監視するオーバーランフラグ監視部を含み、
前記FIFOバッファが満杯になったときは、前記オーバーランフラグがセットされ、
前記オーバーランフラグ監視部が前記オーバーランフラグのセットを検知したときは、前記コマンド構築部は、前記受信ブレイク割り込みの発生の有無にかかわらず、前記(F2)乃至前記(F7)の処理を実行する、ようにしてもよい。
【0018】
前記コマンド構築部は、前記(F7)において前記オーバーランフラグをリセットした後に受信した最初の電文を、当該電文が前記第1電文又は前記第2電文いずれであっても、前記第1電文として扱うようにしてもよい。
【発明の効果】
【0019】
本発明によれば、バッファオーバーフローのために副制御部でコマンドの受信に失敗した場合でも、速やかにコマンドの再受信を可能にするとともに、その間に失われるコマンドを最小限に抑えるができる。
【図面の簡単な説明】
【0020】
【図1】遊技機の表面構造を示す斜視図である。
【図2】遊技機の裏面構造を示す斜視図である。
【図3】遊技者から見た盤面の様子を示す図(正面図)である。
【図4】発明の実施の形態に係る遊技機の機能ブロック図である。
【図5】発明の実施の形態に係るコマンド生成処理フローチャートと、第1電文・第2電文の説明図である。
【図6】発明の実施の形態に係るコマンド受信部の機能ブロック図である。
【図7】発明の実施の形態に係るタイマ割り込みによる処理(通常時の処理)のフローチャートである。
【図8】発明の実施の形態に係る通常時の処理の説明図である。
【図9】発明の実施の形態に係る受信ブレイク割り込みによる処理(異常時の処理)のフローチャートである。
【図10】発明の実施の形態に係る異常時の処理の説明図である。
【図11】発明の実施の形態に係る異常時の処理の説明図である。
【図12】発明の実施の形態に係るオーバーランフラグがセットされたときの処理(異常時の処理)のフローチャートである。
【図13】発明の実施の形態に係るオーバーランフラグがクリアされたときの処理フローチャートである。
【発明を実施するための形態】
【0021】
弾球遊技機の構造概略について図1及び図2を参照して説明を加える。
まず、図1を参照して本発明の実施の形態に係る遊技機の外部的構造につき説明する。
外枠50は、遊技機設置営業店に設けられた設置場所(島設備など)へと固定させるための縦長方形状からなる木製の枠部材である。
本体部材51は、外枠50の内部に備えられ、ヒンジ部51aを介して外枠に回動自在に装着された縦長方形状の遊技機基軸体となる部材である。この本体部材51は、枠状に形成されその内側に空間部を有している。
開口枠扉52は、遊技機の前面側となる前記本体部材51の前面に、ロック機能付きで且つ開閉自在となるように装着され、枠状に構成されることでその内側を開口部とした扉部材である。
なお、開口枠扉52の開口部にガラス製又は樹脂製からなる透明板部材が設けられ、開口部近傍に電飾52a、スピーカ52b、などが取り付けられている。
後述する遊技盤(図1では示していない)は、本体部材51の空間部に臨むように、本体部材51に所定の固定部材を用いて着脱自在に装着されている。遊技盤の本体部材51への装着後は、その遊技領域を前記開口部より観察することができる。
【0022】
球受皿付き扉53は、遊技機前面において本体部材51の下部に、ロック機能付きで且つ開閉自在となるように装着され、遊技球を貯留する球受皿を少なくとも備えた扉部材である。なお、本実施形態における球受皿付き扉には、以下の部材が取り付けられている。
(1)複数の遊技球が貯留可能で且つ発射駆動装置48へと遊技球を案内させる通路が設けられた球受皿。
(2)該貯留され発射駆動装置48へと案内された遊技球を前記遊技盤10の盤面11に設けられた遊技領域へと打出す操作を行う回動式操作ハンドル48b。
(3)ブリペイドカード読込み処理関係及び借り受ける遊技球の貸出し処理関係の指示をするボタンを備えた球貸し関係の操作部。
(4)球受皿に貯留させた遊技球を遊技球収集容器(俗称、ドル箱)へと排出解除するための球受皿用の貯留球排出操作ボタン。
【0023】
次に、図2を参照して本発明の実施の形態に係る遊技機の内部的構成を説明する。
40は、前述したように、本体部材51若しくは遊技盤11又はこれらに備え付けられる支持部材などを介して設けられ、電気的な遊技制御の処理を行い主要な処理情報を生成する制御部である。
40bは、前記本体部材51若しくは遊技盤11又はこれらに備え付けられる支持部材などを介して設けられ、前記制御部40にて生成した処理情報を得ることにより所定の出力態様処理をさせる制御を行う副制御部である。
42は、賞球の払い出し制御を行う払出制御部である。
43は、遊技球を払い出す遊技球払出装置である。
44は、図示しないランプや電飾52aを制御する電飾制御部である。
46は、スピーカ52bを制御駆動して音響を発生させる音響制御部である。
49は発射駆動装置48を制御する制御装置であって、回動式操作ハンドル48bを介して遊技球を盤面に設けられた遊技領域へと打出し制御を行うための発射制御装置である。
【0024】
図3は遊技機の遊技盤の正面図である。
図3において、11は遊技盤10の盤面である。盤面11は、誘導レール12と、誘導レール12で区画された略円形の遊技領域を落下した遊技球を外部へ導く排出口(アウト口)13と、遊技領域を移動する遊技球の方向を変化せしめる釘14や風車14aなどの障害物を複数個備える矩形の盤面である。
【0025】
前述した盤面11の遊技領域は、誘導レール12(遊技球を滑走させる滑走部と遊技球を規制する規制部を含む)により略円形状となるように区画形成され、打出された遊技球の移動範囲を規制する領域である。前記滑走部に規制部が続くように設けられている。前記滑走部は全体として螺旋をなして盤面11に配設されている。
【0026】
前記排出口(アウト口)13は、遊技領域に投入された遊技球が集束する位置に設けられた回収開口部である。
【0027】
障害物14としての遊技釘は、遊技球と接触させることにより移動方向を不規則にし、又は移動方向を規制するために、盤面11の適宜な位置に打込まれる複数の棒状部材である。
【0028】
30aは、遊技領域の中央やや上側に設けられ、演出用表示ランプやLCD(液晶表示装置)などの可変表示部をひとつ又は複数有する可変表示装置(センター役物)である。
30bは、スルーチャッカー(入賞チャッカー)である。
30cは、普通入賞口を有する普通入賞装置である。
30dは、始動入賞口を有するスタートチャッカー(始動入賞装置)である。
30eは、大入賞口を有するアタッカーである。
以下の説明で、30b乃至30dをまとめて入賞口30などと記すことがある。
なお、図示されていないが、上記30b、30c、30dの内部には球通過検出器20b、20c、20dが設けられている(同図の括弧内の符号はそのことを意味する)。
【0029】
スタートチャッカー30dの始動入賞装置は特定入賞装置と、アタッカー30eの大入賞装置は特別入賞装置とも呼ばれる。
スタートチャッカー(始動入賞装置)30dは、入賞口の開口範囲の拡縮を行わせる可動片をその両側に備え、遊技球を入賞させることにより可変表示を行わせると共に賞球を遊技者に獲得させる入賞装置である。
アタッカー(大入賞装置)30eは、入賞口を露出させる開口状態と入賞口を閉鎖する閉口状態となる可動扉が駆動制御されるものであり、遊技球を入賞させることにより他の入賞装置と比較してより多くの賞球を獲得させる入賞装置である。
【0030】
図4は本発明の実施の形態に係る遊技機の機能ブロック図である。
40は、電気的な遊技制御の処理を行い主要な処理情報を生成する制御部(「メイン基板」とも呼ばれる)である。制御部40は遊技領域を移動(流下)して入賞口30b〜30dを通過した遊技球をそれぞれ検出する球通過検出器20b〜20dの信号を入力とし、入賞口30b〜30dの遊技球通過に応じた抽選・判定を行う入賞判定部40aを含む。さらに、コマンドを生成して副制御部40bへ送信するコマンド送信部TXを含む。
【0031】
41は可変表示装置(センター役物)30aの演出用表示ランプを点灯させる表示制御部である。表示制御部41は、入賞判定部40aにおける所定条件の成立(例えば、予め定められた通過口ヘの遊技球の通過)に基づく電子的な当否抽選の結果に応じて、識別点灯情報(可変表示装置(センター役物)30aの演出用表示ランプに点灯表示される)を可変表示させた後に停止表示を行う表示制御装置である。
【0032】
なお、制御部40に設けられた入賞判定部40aにおける所定条件の成立(例えば、始動入賞装置30dヘの遊技球の入賞等)に基づく電子的な当否抽選の結果に応じて、液晶表示装置LCDにその識別表示情報が可変表示される(抽選結果に応じてその演出内容が変わる)。これは、制御部40から抽選結果(あるいはこれに対応する演出コマンド)を副制御部40bへ送り、当該抽選結果を受けた副制御部40bが当該抽選結果に対応する画像を生成し、これを液晶表示装置LCDで表示することで実行される。可変表示装置(センター役物)30aのLCDは、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。スタートチャッカー(始動入賞装置)30dを遊技球が通過したことが検出されると、表示される図柄が所定時間だけ変動し、遊技球のスタートチャッカー(始動入賞装置)30dの通過時点において抽選された抽選用乱数値により決定される停止図柄をLCDに表示して停止するようになっている。
【0033】
アタッカー30eは、前方に開放可能な開閉板を備える。LCDの変動停止後の図柄が「777」などの当り図柄のとき、「大当り」と称する特別遊技が開始され、アタッカー30eの開閉板が予め定めた回数だけ開放されるようになっている。アタッカー30eの開閉板が開放された後、所定時間が経過し、又は所定数の遊技球が入賞すると開閉板が閉じる。
【0034】
42は、入賞判定部40aの信号を受けて入賞口30b〜30dの遊技球通過に応じた及び/又はこれによる抽選・判定の結果に応じた遊技球払出装置43を制御する払出制御部である。
43は、遊技利益として入賞口30b〜30dの遊技球通過に応じた及び/又はこれによる抽選・判定の結果に応じた所定数の遊技球を払出す駆動源を備えた遊技球払出装置である。
【0035】
遊技球が遊技領域に設けられた入賞装置30b〜30dには、それぞれ内部に球通過検出器(例えばスイッチ)20b〜20dが設けられ、遊技球の通過を検出できるようになっている。いずれかの入賞装置30b〜30dの位置を通過すると、これを球通過検出器20b〜20dが検出し、これを受けて入賞判定部40aが所定の抽選・判定処理を行う。例えば、球通過検出器20bがスルーチャッカー(入賞チャッカー)30bを通過した遊技球を検知したとき、所定の抽選を行い、当選したときはスタートチャッカー(始動入賞装置)30dを所定時間開放する。すなわち、スタートチャッカー(始動入賞装置)30dの左右両側に互いに対向して設けられた一対の可動片を、それぞれ外側へ開放させる。併せて当選の旨を可変表示装置(センター役物)30aに表示する。そして、遊技球がスタートチャッカー(始動入賞装置)30dを通過したことを検知したとき、所定の抽選を行い、当選したときはアタッカー30eの大入賞装置を開放する。
【0036】
40bは、制御部40にて生成した処理情報を得ることにより、光の点滅・音響の発生などの演出を含む所定の出力態様処理をさせる制御を行う副制御部(「サブ基板」とも呼ばれる)である。副制御部40bは、CPU,ROM,RAM及び液晶表示装置LCDに表示する画像を生成するVDP(ビデオディスプレイプロセッサ)を含む。副制御部40bからの出力信号は、ランプ制御部44、音響制御部46及び可動体制御部47などの周辺基板へ送られる。また、副制御部40bは、遊技者が操作する演出ボタンESWから信号を受け付ける(図1において、演出ボタンESWの表示は省略している)。
【0037】
副制御部40bは、制御部40からのコマンドを受信するコマンド受信部RXを備える。コマンド受信部RXは、例えば、シリアル通信用IC、バッファ(FIFOを含む)及びこれらハードウエアを動作させるためのプログラムからなる。当該プログラムに従って副制御部40bのCPUなどが動作し、シリアル通信用ICを制御し、バッファからデータを読み出すことで、コマンド受信部RXは実現される。
【0038】
44は、遊技盤10あるいは遊技機筐体に設けられたランプ・電飾52aなどを点灯制御するための電飾制御部である。
【0039】
46は、遊技盤10あるいは遊技機筐体に設けられたスピーカ52bを通じて効果音・音声を発生させる音響制御部である。
【0040】
47は、遊技盤10に設けられた可動体52cを制御する可動体制御部である。
可動体52cとは、遊技盤10上に打ち出された遊技球の落下動作に変化を与える障害物であって、副制御部40bの処理によって状態が変化するものである(図3において可動体52cの表示は省略している)。可動体52cは、例えば、通常状態とこれと異なる状態の2つを相互に行き来するものである。可動体とは、例えば、平板状、円柱状、円盤状、凹凸を有する歯車状、等のものである。なお、図示しないが可動体52cを駆動するための動力部を備える。可動体制御部47は、実際には、当該動力部を駆動する。動力部は、例えば、モータ、ソレノイドなどの電力又は磁力を用いた駆動装置又は駆動源を備えた制御装置などである。
【0041】
液晶表示装置LCD及びランプ・電飾52a、スピーカ52b、可動体52cは、遊技者の視覚や聴覚に訴える演出を行うための演出デバイスである。また、ランプ制御部44、音響制御部46、可動体制御部47は、前記デバイスを駆動制御するデバイスであり、その内部に演出処理用のICを内蔵している。副制御部40bに内蔵されるVDPも駆動制御用のデバイスである。以下の説明において、液晶表示装置LCDなどの上記演出デバイスを駆動制御する、ランプ制御部44、音響制御部46、可動体制御部47及びVDPを演出デバイス制御部と呼ぶことにする(なお、演出デバイスと演出制御デバイスと併せて指すときに「演出デバイス」という用語を用いることがある)。なお、ランプ制御部44、音響制御部46、可動体制御部47を、VDPのように副制御部40bに内蔵してもよい。
【0042】
演出ボタンESWは、遊技者によって押下操作されるものであり、押下することで液晶表示装置LCDに表示される演出画像の態様を変化させ、遊技者に対して遊技への参加意識を高めるとともに、興趣を高めるようにしたものである。例えば、演出ボタンESWの操作に連動して液晶表示装置LCDに表示される演出画像を選択することができる。
【0043】
副制御部40bは、前述のようにCPU,ROM,RAM及びVDPを含む。複数のビット(配線)からなる図示しないBUSに、CPU(処理部)、ROM(不揮発性記憶部、メモリ)、RAM(読み出し及び書き込み可能な記憶部、メモリ)、VDP及び図示しないI/O(入出力装置)が接続されている。副制御部40bで実行される遊技に係る処理は、ROMに予め記憶されたプログラムに従ってCPUが動作することで実行される。CPUは、処理を行う際に各種データをRAMに記憶させ、必要に応じて読み出し、処理を行い、必要に応じて再度記憶する、といった処理を行う。RAMはバッテリバックアップを受けていることがあり、この場合は電源断の間でもその記憶内容は保持されている。
【0044】
副制御部40bは、主制御部40から演出コマンドを受信し、これに基づき液晶表示装置LCD、ランプ・電飾52a、スピーカ52b、可動体52c、演出ボタンESWなどの制御を行うものである。
【0045】
コマンド送信部TX及びコマンド受信部RXについて説明を加える。
図5(a)は、コマンド送信部TXが実行する処理のフローチャート、同図(b)はコマンド送信部TXが生成するコマンドの説明図である。
【0046】
コマンド送信部TXが生成するコマンドは複数の電文からなる。最初の電文は開始電文、最後の電文は終端電文、これらに挟まれた電文は途中電文と呼ばれる。図5(b)は2つの電文、つまり第1電文と第2電文からなるコマンドの例を示す。これは最も簡単な構成であり、図6以降の説明ではもっぱら図5(b)の2つの電文、つまり第1電文と第2電文からなるコマンドを例に取り説明を加える。なお、途中電文を含み3つ以上の電文からなるコマンドについても本発明の実施の形態を適用することができ、その手順は変わらない。
【0047】
同図(b)の例では、各電文は8ビット(1バイト)のデータであり、その先頭ビット(MSB)が1であるときは第1電文を意味し、0であるときは第1電文以外の第2電文などを意味する。これらは例えば次のような意義を有する。第1電文はコマンドの最初の電文であることを意味すると共に、副制御部40bに実行させる処理を識別するための情報などを意味する。第2電文は、第1電文に縦続するコマンドであることを意味すると共に、副制御部40bが実行すべき処理の内容を具体的に指定する。例えば、第1電文で液晶表示装置に関するコマンドであること(液晶表示装置に対して所定の処理を実行させるコマンドであること)を意味するとき、第2電文は液晶表示装置に表示すべき具体的な画像(演出)の種類を指定するものである。したがって、第1電文と第2電文が、その順番で正しく揃って初めてコマンドとして意味をもつ。仮に一方が失われると残りの電文は意味を持たず副制御部40bは何ら動作を行わないか、仮に動作しても意図したような動作にはならない。第1電文と第2電文の順序が入れ替わった場合も同様である。また、複数のコマンド、コマンド1とコマンド2を受けたとして、その中間部分が欠落して、コマンド1の第1電文とコマンド2の第2電文とが結合した場合も、予め意図した動作は期待できない。
【0048】
先頭ビットにより第1電文かそれとも第2電文かは判別できる。しかし、コマンド受信部RXの図示しない通信用ICで受信する際に先頭ビットは使用されるが、その後にFIFOバッファに電文を格納する際に先頭ビットは削除されるので、FIFOバッファに格納されたデータそのものからは第1電文と第2電文を区別することができない。ただし、FIFOバッファには先頭ビットに基づき正しい順番で格納されるので、その順序が狂うことはない。言い換えれば、FIFOに格納されている電文の順序が正しいことは、保証されている。これに対して、FIFOから読み出してコマンドを構築する際には電文の順序が狂うことがある(この点は後にさらに説明を加える)。
【0049】
図5(a)を参照して、コマンド送信部TXのコマンド生成処理について説明を加える。同図のフローチャートにより1つのコマンドが生成される。
【0050】
制御部40のCPUが動作していて、副制御部40bに演出等を実行させる必要が生じ、そのためのコマンドを生成するときに、当該CPUは図5(a)の処理を実行する。
【0051】
S1:第1電文を生成する。
制御部40のCPUは、必要とされた演出等の動作に対応する第1電文を生成する。当該動作と第1電文の関係は予め定められていて、例えばテーブルの形式でメモリ(ROM)に格納されている。制御部40のCPUは当該メモリを検索して、必要な処理に対応する第1電文を決定する。
【0052】
S2:第2電文以降の電文を生成するために、電文の数を設定する。
コマンドが第1電文とひとつの第2電文とからなるときは、第2電文の数=1、k=1とする(kは電文の数をカウントするためのパラメータ)。同様に、第1電文と2つの第2電文からなるときは、第2電文の数=2とする。上記テーブルにおいて、第1電文とこれに対応する電文の数を予め格納しておけば、コマンド毎に電文の数を変えることもできる。
【0053】
S3:第2電文を生成する。
第1電文が決まれば、これに続く第2電文は所定のものに限定される。例えば、実行する演出の種類によって第2電文は選択される。例えば、上記テーブルにおいて、第1電文と、これに対応して選択可能な複数の第2電文(例えば第2a電文、第2b電文、・・・)が予め定義されていて、制御部40のCPUは、必要とされた演出等の動作に対応して複数の第2電文からいずれかを選択する(例えば第2a電文を選択して、これを第2電文とする)。第3電文以降についても同様である。
【0054】
S4:電文生成終了したかどうか判定する。
具体的には、kが予め定められた電文の数(上記テーブルを参照して選択された演出等の動作に対応する電文の数)に達したら、S4でYESとなる。S4でNOの場合は、kをk+1として(S6)、次の電文の生成を行う。
【0055】
S5:第1電文及び第2電文を送信する。
上記手順により生成された第1電文及び第2電文をまとめて、一つのコマンドとして副制御部40bへ向けて送信する。第1電文及び第2電文は連続して送信されるので、一つのコマンドに他のコマンドの電文が混じることはない。
【0056】
次に、コマンド受信部RXについて説明を加える。
図6は、コマンド受信部RXの機能ブロック図である。なお、通信用ICの表示は省略している。
【0057】
R1は、制御部40から受信したコマンド、つまり電文1、電文2(以下では、コマンドは電文1と電文2の2つからなるものとする)を受信した順番で格納しているFIFOバッファである。前述のように、FIFOバッファR1からは、書き込んだ順番でデータを読み出すことができる。FIFOバッファR1は、データを全部読み出したときに、その全てが自動的にクリアされるような機構を備えることが好ましい。例えば、FIFOバッファR1が空(エンプティ)になったときにその旨を示す信号を外部へ出力するとともに、当該信号でバッファの各ラッチをクリアするようにする。また、FIFOバッファR1は、FIFOフルを示す信号を外部へ出力するものとする。
【0058】
なお、FIFOバッファR1のことを、単に「FIFO」と記すことがある。
【0059】
R2は、FIFOバッファR1から読み出した電文1、電文2からコマンドを構築するコマンド構築部である。
【0060】
R3は、コマンド構築部R2で構築されたコマンドを格納する正式コマンド登録用バッファである。ここに格納されているコマンドは、副制御部40bのCPUやVDPに所定の演出を実行させることができるものである。
【0061】
R4は、予め定められた間隔でコマンド構築部R2に対して割り込み信号を与えるタイマーである。
【0062】
R5は、FIFOバッファR1がオーバーフローしたとき(FIFOフルになったとき)にセットされるオーバーランフラグである。このフラグは、例えばCPUのレジスタあるいはメモリで予め指定された領域(番地)であるが、当該フラグをどこにどのように構成するかは任意である。FIFOバッファR1がフルになると受信ブレイク割り込みが発生する。例えば、FIFOバッファR1フルをCPUあるいは他のICが受けて、受信ブレイク割り込みを発生する(要するに、副制御部40bが受信ブレイク割り込みを発生する)。受信ブレイク割り込みが発生すると、オーバーランフラグがセットされる。コマンド構築部R2が所定の処理を実行すると(後述)、オーバーランフラグがリセットされる。また、オーバーランフラグがセットされた状態では、通信用ICは制御部40からのコマンド、すなわち第1電文、第2電文を受信しない。
【0063】
R6は、コマンド構築部R2がコマンドを構築する際に参照する参照テーブルである。参照テーブルR6は、正しい電文1と電文2の組み合わせが予め格納されている。例えば、参照テーブルR6において、xxhという電文1に対応する電文2としてaah、bbhが定義されているとする(hは16進数を意味する)。コマンド構築部R2でxxh+aahというコマンドを構築したとき、参照テーブルR6を参照することで、これは正しいコマンドであることが分かる。これに対し、xxh+cchというコマンドになったら、これらは参照テーブルR6に定義されていない組み合わせであるから、当該コマンドは不正であることが分かる。
【0064】
コマンド構築部R2やタイマーR4は、CPUが所定のプログラムを実行することで実現されるが、これらをICなどのハードウエアで実現することもできる。参照テーブルR6は、メモリ(ROM)でテーブルの形式あるいはプログラム上で定義されている。
【0065】
なお、図6において、点線で示されているオーバーランフラグ監視部R7については、後述する。
【0066】
図7は、コマンド受信部RXの通常時の処理を示す。通常時とは、FIFOフルが発生していない状態、すなわち、コマンドの受信とともにその読み出しが実行されることでFIFOバッファR1の中のバッファ(ラッチ)が全部埋まらない状態を言う。
【0067】
S10A:正式コマンド登録用バッファR3へ構築したコマンドを保存する際、コマンド受信に関する上位割り込みの発生を禁止する。
上位割り込みとは、図7の処理よりも優先して実行される割り込み処理あるいはその契機となる割り込みのことである。上位割り込みが発生すると、CPUは、図7の処理を中段して、当該割り込みで指示された処理を実行する。当該割り込みに係る処理で、正式コマンド登録用バッファR3へコマンドに係る電文の書き込むようなことがあると、意図したような電文の書き込みを行うことができないおそれがある。例えば、図7の処理で電文1を正式コマンド登録用バッファR3に書き込もうとしたときに、上位割り込みが発生し、(電文1を書き込む前に)当該割り込みで指示された処理において電文2が書き込まれるということがあり得る。この場合、正式コマンド登録用バッファR3には、電文2、電文1という順番で書き込まれることになるが、これは不正なコマンドであり、副制御部40bの動作がおかしくなるおそれがある。正しいコマンドは、電文1、電文2の順番である。このような不都合を避けるために、ここで上位割り込みを禁止している。
【0068】
S10B:FIFOバッファR1に格納されている制御部40からのコマンドを全部読み込む。
【0069】
前述のようにFIFOバッファR1には、受信の順番でコマンドに係る電文1及び電文2が格納されているから、その順番にしたがって各電文を読み出す。なお、FIFOの特性上、その出力端から順番に読み出せば、読み出した電文は受信の順番になる。
【0070】
FIFOバッファR1の読み出しが行われるのは、タイマーR4のタイミングである。タイマーR4は一定時間毎に信号(パルス)を出力するから、当該信号を受けてコマンド構築部R2が各電文を読み出す。タイマーR4の設定時間を短くすれば読み出しは頻繁に行われることになり、したがってFIFOフルになる可能性は低くなるが、反面、CPUの処理負荷が増える。これに対し、設定時間を長くすればFIFOフルになる可能性は高くなるが、CPUの処理負荷を減らすことができる。本発明の実施の形態では、後述の異常時の処理によりコマンドを極力再現できるから、従来に比べてある程度設定時間を長くすることが可能である。
【0071】
全てのコマンドの読み出しが完了すると、FIFOバッファR1は空になる。
【0072】
なお、FIFOバッファR1が、データ読み出し時に自動でクリアが行われないようであれば、FIFOバッファR1をクリアするようにしてもよい。
【0073】
S11:コマンド構築部R2でコマンドを構築する。
S10Bで読み出した電文は、電文1、電文2のように順番になっているから、当該順番にしたがってコマンドを構築する。単純には、電文1と電文2をまとめてひとつのコマンドとする。これを順番に繰り返す。FIFOバッファR1に電文1a、電文2a、電文1b、電文2b、・・・のように正しい順番で格納されているのであれば、順番に電文1a+電文2a=コマンドa、電文1b+電文2b=コマンドb、・・・というように構築すれば、正しいコマンドを構築できる。通常の処理においては、後述のように一部の電文が欠落することはないから、問題は生じない。
【0074】
なお、この際に、念のため、参照テーブルR6を参照してコマンドが間違っていないかどうか判定するようにしてもよい。
【0075】
上位割り込みとして、受信ブレイク割り込みがある。受信ブレイク割り込みについては、後述する。
【0076】
S13:構築したコマンドを正式コマンド登録用バッファR3の所定の領域に格納する。
S11で、電文1と電文2をまとめてひとつのコマンドとされたものを正式コマンド登録用バッファR3の所定の領域に格納する。
【0077】
なお、この際に、参照テーブルR6を参照してコマンドが間違っていないかどうか判定するようにしてもよい。
【0078】
S14:読み込んだ電文の全てについてコマンドを構築するまで、S11乃至S13の処理を繰り返す。
【0079】
図8は、通常受信時の処理の説明図である。
制御部40からのコマンド(同図中の「xxh」)はFIFOに順番に格納される。1回のポーリングで確認するバイト数(データ数)は4バイトである。
【0080】
ポーリングとは、一定期間のタイミングでFIFOを監視する方式である。これとは異なる方式として、FIFOフル割り込み方式がある。これは、所定数のデータを受信したことを契機に割り込みを発生させることでデータを受信するやり方である。FIFOフル割り込み方式では、所定数のデータ受信ごとに割り込みが発生するので、設定された所定数によっては頻繁に割り込みが生じ、その結果、処理負荷が高くなる可能性がある。これに対し、ポーリング方式によれば、割り込みは一定時間毎にしか発生しないから、前記のような問題は生じない。その代わり、次の読み出しタイミングになる前にFIFOフルになると、受信データに欠落が生じることになる。本発明の実施の形態では、後述の処理により受信データ欠落の影響を最小限にしている。
【0081】
制御部40から送信される電文は、ハードウエアにて受信を自動的に行い、FIFOに空きがある場合は順次FIFOに蓄積される。
【0082】
通常受信処理では、ステージ割り込み(タイマ割り込み)を利用してFIFOに蓄積されているデータを取り出し、メインコマンドの構築処理及びコマンドバッファへの登録処理を行う。1回の割り込み処理にてFIFOに蓄積されているデータを取り出すバイト数は、FIFOに蓄積されている4バイトのデータである。
【0083】
図9は、コマンド受信部RXの異常時の処理を示す。異常時とは、FIFOフルが発生した状態、すなわち、FIFOバッファR1が受信したコマンドで一杯となり、もしコマンドを新たに受信しときFIFOバッファR1に格納できない状態を言う。新たに受信したコマンドは失われる。
【0084】
図9の処理は、FIFOフルが発生したことを契機として実行される。FIFOバッファR1は全てのバッファ(ラッチ)にデータが書き込まれたことを示すフラグあるいは信号端子を備えている。当該フラグあるいは信号を受けて受信ブレイク割り込みが発生し、CPUは図9の処理を開始する。
【0085】
S20:オーバーランフラグをセットする。
FIFOフルの状態でコマンドの受信を再開させないためである。受信ブレイク割り込みの発生後は、オーバーランフラグをクリアしない限り再受信できない。
【0086】
S21:FIFOバッファR1に格納されている、制御部40からのコマンドを全部読み込む。
前述のS10Bと同様の処理である。
【0087】
S22:コマンド構築部R2でコマンドを構築する。
前述のS11と同様の処理である。
【0088】
ただし、受信ブレイク割り込みが発生したということはFIFOフルであり、受信したコマンドが破棄されて失われた可能性がある。これを前提に可能な限りコマンドを構築する。この際、既に電文の1要素として受信出来ていた内容も、コマンド構築の要素として含める。
【0089】
S23:コマンド構築できたかどうか判定する。
上述したように、受信したコマンドが失われた可能性があるから、構築できたコマンドが不正である可能性がある。例えば、コマンド送信部TXが、コマンドa=電文1a+電文2aとコマンドb=電文1b+電文2bを送信したが、コマンド受信部RXで、FIFOフルのために電文2bが失われたとすると、コマンド構築部R2で構築した結果、コマンドb=電文1bとなる可能性がある。
【0090】
そこで、コマンド構築部R2は、参照テーブルR4を参照して、構築したコマンドが正しいか、それとも不正かを判定する。上記例で、コマンドb=電文1b+電文2bがコマンドb=電文1bとなった場合、参照テーブルR4を参照して、電文1bが電文2を必要としないコマンドであるかどうは調べ、電文2を必要とする場合は不正なコマンドであると判断する(S23でNO)。上記例で、コマンドb=電文1b+電文2bがコマンドb=電文2a+電文1bとなった場合、参照テーブルR4を参照して、正しい電文1と電文2の組み合わせであるかどうか判定する。例えば、電文2aがxxhであり、電文1bがcchである場合、参照テーブルR6においてxxhという電文1に対応する電文2としてaah、bbhが定義されているが、xxh+cchは定義されていないから、コマンドb=xxh+cchは、不正なコマンドであると判断する(S23でNO)。
【0091】
S24:正式コマンド登録用バッファR3へ構築したコマンドを保存する際、コマンド受信に関する上位割り込みの発生を禁止する。
前述のS10Aと同様の処理である。
【0092】
S25:構築したコマンドを正式コマンド登録用バッファR3の所定の領域に格納する。
前述のS13と同様の処理である。
【0093】
S26:S23で構築できないと判定されたものは(S23でNO)、破棄する。
例えば、コマンド体系の点で矛盾するコマンド、無意味なコマンドになる電文1と電文2の組み合わせは、破棄される。
【0094】
S27:読み込んだ電文の全てについてコマンドを構築するまで、S22乃至S26の処理を繰り返す。
前述のS14と同様の処理である。
【0095】
S28:オーバーランフラグをリセット(クリア)する。
これにより、コマンドの再受信が可能にある。これ以降は通常の受信処理を行う。
【0096】
図10は、受信ブレイク割り込み処理(異常時受信処理)の説明図である。
FIFOが一杯になった状態でコマンドを受けて、コマンドを取りこぼす(図10(a)の符号X)。ここで、受信ブレイク割り込みが発生する。
【0097】
受信ブレイク割り込みでFIFOの読み出しを行う。コマンドは電文によって区切られるため、一度、電文構築用テンポラリに展開後に完成データを蓄積する。
【0098】
受信ブレイク割り込み発生時、継続するコマンドをテンポラリに展開した場合、復帰後のコマンドと結合して、意図しないコマンドが完成することがある。もし、受信再開後に符号XのNo.2−第2電文とNo.3−第1電文を受信したとすると(No2−第1電文は欠落している)、図10(b)の符号Yに示すような不正なコマンドが構築される。
【0099】
受信ブレイク割り込み発生以前においてFIFOに蓄積された情報は、正常なデータとなるため、できる限りコマンドとして構築しなければならない。ただし、前述のように電文の途中となり得るデータを保持した状態のままにしておくと、後続の電文と結合して本来の役割と異なるメインコマンドが生成される可能性が高い。このため、本割り込み処理では下記のように対応する。
【0100】
(1)FIFOのデータを読み出し、できる限りメインコマンドの構築を行う。
【0101】
(2)FIFOのデータが存在しなくなった時点で、電文構築用に残っている電文は破棄する(コマンド受信漏れが発生する)。
【0102】
(3)割り込み解除後の処理として、必ず電文1から受信するようにする。
【0103】
なお、上記割り込み発生時は、オーバーランフラグがセットされてコマンドを受信しないようになっているため、FIFO読み出し中に異なる電文が結合することはない。
【0104】
ステージ割り込み発生時に受信ブレイク割り込みが発生した場合、タイミングによってはFIFOからのデータの取り出しに矛盾が生じ、メインコマンドが正常に受信できないことがある、ことを述べた。図11はその説明図である。
【0105】
(1)ステージ割り込みによりFIFOからデータ(第1電文)を取得する。
【0106】
(2)受信ブレイク割り込みが発生する。
【0107】
(3)これにより処理権が移動し、FIFOバッファからデータ(第2電文)を取得し、コマンド格納エリアに保存まで実行する。この結果、第2電文が先に書き込まれる。
【0108】
(4)上記(1)〜(3)により、電文の前後関係が変更されコマンド序列が崩れる。
【0109】
上記不都合をなくすため、コマンド受信処理全般において、FIFO取得から正式コマンド登録用バッファへのデータ保存に係る処理を実行している期間では、コマンド受信に関する上位割り込みの発生を禁止している。
【0110】
割り込み禁止時は、優先レベルの高い受信ブレイク処理は行えないが、本処理自体が各割り込み処理と同一の役割を果たすために、問題とはならない。
【0111】
また、受信ブレイク時はFIFO内のコマンドに正当性を保てない箇所が発生することになるが、受信ブレイク発生後はフラグをクリアしない限り再受信ができない構造になっているため、整合性をクリアしてから受信動作を再開させている。
【0112】
なお、受信ブレイク割り込みとともに、あるいはそれに代えてオーバーランフラグ監視処理を行い、バッファオーバーフローを検知したときに、異常時の処理を行うようにしてもよい。オーバーランフラグがセットされたときに、何らかの事情で受信ブレイク割り込みが発生せず、図9を含めたオーバーフローに関連する処理を実行できない場合は、コマンドの整合性が一切保てなくなる。オーバーランフラグ監視処理を行えば、このような問題を解決することができる。
【0113】
オーバーランフラグ監視処理は、例えば、タイマーなどの出力に基づき、あるいは特定の処理を行う際に、オーバーランフラグR5をチェックするものである。図6において、タイマーR4に代えて、あるいはこれとともにオーバーランフラグR5を監視するオーバーランフラグ監視部R7が設けられる。オーバーランフラグ監視部R7は、図9の処理では必要ない。図6の点線はそのような意味である。オーバーランフラグR5がセットされていたら、図12の処理を実行する。
【0114】
図12は、S20:オーバーランフラグをセットする、を備えない点を除き、図9と同じである。
【0115】
なお、オーバーランフラグのクリア後の再受信において、図13に示すように、受信直後のデータは必ず電文1として扱う。これは、バッファーオーバーラン発生時に受信データを取りこぼしている可能性があり、他の意味を持つ電文との結合を防ぐ役割がある。仮に電文2とすると、コマンド構築部R2により他の電文に結合されたり、CPUやVDPにより、正式コマンド登録用バッファR3に格納した他の電文1又は電文2と誤って結合して解釈されるおそれがある。
【0116】
本発明の実施の形態によれば、正式コマンド登録用バッファへ保存する際、コマンド受信に関する上位割り込みの発生を禁止するとともに、FIFOバッファのデータを読み込みつつコマンドを構築し、その後にオーバーランフラグのクリアを行うことにより、速やかにコマンドの再受信を可能にするとともに、その間に失われるコマンドを最小限にすることができる。
【0117】
また、受信ブレイク割り込みの復帰時に第1電文からの受信と限定することで、その後に発生しるコマンドの構築を誤ることを防ぐことが出来る。
【0118】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【符号の説明】
【0119】
40 制御部
40b 副制御部
RX コマンド受信部
R1 FIFOバッファ
R2 コマンド構築部
R3 正式コマンド登録用バッファ(コマンド登録用バッファ)
R4 タイマー
R5 オーバーランフラグ
R6 参照テーブル
R7 オーバーランフラグ監視部
TX コマンド送信部
【技術分野】
【0001】
本発明は、パチンコ機やスロットマシンなどの遊技機に関し、特に、制御部(メイン基板)から副制御部(サブ基板)へのコマンドの通信手段に関するものである。
【背景技術】
【0002】
遊技機設置営業店などにおいて設置されている弾球遊技機(いわゆるパチンコ機)は、遊技球(遊技媒体とも呼ぶ)を用いて遊技を行うものである。借り受けた遊技球を弾球遊技機の遊技盤に設けられている盤面へ打ち出し、当該遊技球が予め定められた入賞口に入るごとに所定数の遊技球を払出すようになっている。払い出される遊技球は賞球と呼ばれる。
【0003】
弾球遊技機の盤面に設けられている入賞口には次のようなものがある。
(1)普通入賞装置
(2)スタートチャッカー(始動入賞装置)
(3)アタッカー(大入賞装置)
(4)スルーチャッカー(入賞チャッカー)
【0004】
スタートチャッカー(始動入賞装置)は特定入賞装置とも呼ばれる。遊球球がスタートチャッカー(始動入賞装置)に受け入れられて入賞状態になったとき、賞球を払い出すとともに電子的な抽選を行い、当選の場合に通常状態から遊技者にとって有利な遊技状態となるよう、アタッカー(大入賞装置)を開放状態にするものである。
アタッカー(大入賞装置)は特別入賞装置とも呼ばれる。
【0005】
スルーチャッカー(入賞チャッカー)は直接賞球を払い出すものではないが、本明細書において入賞口に含める。遊技球がスルーチャッカー(入賞チャッカー)を通過したことが検知されたとき、電子的な抽選を行い、当選したときは遊技者にとって有利な遊技状態となるよう、スタートチャッカー(始動入賞装置)を所定時間開放し、遊技球がスタートチャッカー(始動入賞装置)に入りやすくする。スルーチャッカー(入賞チャッカー)に受け入れられた遊技球はそのまま盤面を移動し、他の入賞口又は次に説明する排出口(アウト口)に受け入れられる。
【0006】
弾球遊技機の盤面には、前記入賞口以外にも排出口(アウト口)が設けられている。排出口(アウト口)は、盤面に遊技領域を区画するために螺旋状に配置された誘導レールの下部(重力によって遊技球が集められる個所)に設けられた開口であり、前記入賞口(正確には普通入賞装置、スタートチャッカー(始動入賞装置)、アタッカー(大入賞装置))のいずれにも受け入れられなかった遊技球を受け入れて、盤面の外へ排出するためのものである。
【0007】
パチンコ店などの遊技場に設置して使用されるパチンコ機等の遊技機は、パチンコ球等の遊技媒体に一定の価値が与えられて、ゲームを行って獲得した遊技媒体を種々の景品に交換することができる。遊技機には、その筐体内部に、遊技媒体の供給に基づいて作動させるランプ装置や音声発生装置などの様々な各種駆動装置及びこれら駆動装置を制御させるために対応させた制御回路装置(制御部と副制御部)を備えており、遊技者が遊技を行う際にこれらを適宜作動させることによって遊技を興趣に溢れたものとしている。また、近年では、所定の識別情報(図柄)を変動表示し得る液晶画像表示装置等の図柄可変表示装置を内蔵し、所定条件を満たしたときに識別情報を変動させた後に停止表示させるように図柄可変表示装置を作動させるものが主流となっている。このような制御は、主に遊技処理を実行する制御部から、主に演出処理を実行する副制御部へ予め定められたコマンドを送信することで実現されている。
【発明の概要】
【発明が解決しようとする課題】
【0008】
遊技機を規制する法令上、制御部(メイン基板)から副制御部(サブ基板)へのコマンドの流れは一方通行であり、逆に副制御部から制御部ヘコマンドを含む信号を送ることは許されていない。
【0009】
当該コマンドの伝送には、従来、パラレル伝送方式が用いられていたが、最近ではシリアル送信方式を採用するケースもある。シリアル通信は、パラレル通信と比較して高速にデータを転送することができ、これに対応してデータの取りこぼしが発生しないように、FIFO型バッファを備えることが多い。FIFOとは、先入れ先出し(first-in first-out)のことであり、最初に格納されたデータが最初に取り出されるようなバッファ、すなわち時間的にもっとも古いデータが優先的に取り出されるようなバッファである。
【0010】
FIFO型バッファは公知であるが、簡単に説明を加える。FIFO型バッファは、例えば、複数のD型ラッチを直列に接続するようにして構成される。接続されるラッチの数の多い方が、より多くのデータを格納することができる。ラッチの数を段数と呼ぶことがある。FIFO型バッファは段数分だけデータを格納できる。入力側のラッチに入力されたデータは自動的に出力側へ移動して、順番に取り出される。データが取り出されない場合でも、FIFO型バッファは段数分だけデータを格納できる。データが入力されているにもかかわらずデータが取り出されず、その結果、全ての段にデータが格納された状態になると、もはやデータを受け取ること(格納すること)ができなくなる。これをFIFOフル(FIFO満杯)であると呼ぶ。
【0011】
制御部から複数の電文からなるコマンドを送信する場合、副制御部において何らかの原因でFIFOフルとなると、言い換えるとFIFOバッファがオーバーフローすると、送信されたデータはバッファに格納されず、その結果当該データは失われることになる。このため、副制御部はコマンドの受信に失敗することになる。
【0012】
その後、副制御部が電文を正しく受信したとしても、それら電文からコマンドを再構築する際に電文の順序が入れ違ってしまう可能性がある。また、コマンドの体系によっては電文を誤った形で結合する可能性がある。
【0013】
コマンド受信の失敗後、任意にコマンドの再構成を行って、意味のある一連のコマンドが得られた時点以降において(言い換えれば、問題となるデータを除外した状態で)、再構成したコマンドのみを有効にすれば、コマンドの再受信が可能になる。
【0014】
しかし、このやり方では、受信失敗から有効コマンド再構築までの間に受信された電文は破棄されることになる。つまり、多くのコマンドが失われることになる。その間、副制御部は、演出などの処理を実行できないことになる。これでは、遊技者の興趣を損なうことになる。
【0015】
そこで、本発明は、バッファオーバーフローのために副制御部でコマンドの受信に失敗した場合でも、速やかにコマンドの再受信を可能にするとともに、その間に失われるコマンドを最小限に抑えることのできる遊技機を提供することを目的とする。
【課題を解決するための手段】
【0016】
この発明は、内部抽選処理を含む遊技に係る制御を実行する制御部と、前記制御部で生成したコマンドに基づき所定の処理を実行する副制御部とを備える遊技機において、
前記コマンドは、電文の開始を示す第1電文とこれに続く第2電文とを含むものであり、
前記制御部は、前記副制御部に実行させる処理に対応して前記第1電文を生成し、前記第1電文に対応して前記第2電文を生成し、前記第1電文及び前記第2電文をこの順番で前記副制御部へ送信するコマンド送信部を含み、
前記副制御部は、
前記制御部からの前記第1電文及び前記第2電文を受信した順番で格納するFIFOバッファと、
前記FIFOバッファから読み出した前記第1電文及び前記第2電文に基づきコマンドを構築するコマンド構築部と、
前記コマンド構築部で構築したコマンドを格納するコマンド登録用バッファと、
予め定められた間隔で前記コマンド構築部に対して割り込み信号を与えるタイマーと、
前記FIFOバッファが満杯になったときにセットされるオーバーランフラグと、
前記コマンド構築部が前記コマンドを構築する際に参照する参照テーブルとを備えるコマンド受信部を含み、
前記コマンド構築部は、前記FIFOバッファが満杯でないときは、前記タイマーからの前記割り込み信号に基づき下記(N1)乃至(N3)の処理を実行し、
(N1)前記FIFOバッファに格納されている前記第1電文及び前記第2電文を読み出し、
(N2)読み出した前記第1電文及び前記第2電文に基づきコマンドを構築し、
(N3)構築したコマンドを前記コマンド登録用バッファに格納し、
前記FIFOバッファが満杯になったときは、予め定められた受信ブレイク割り込みが発生し、
前記コマンド構築部は、前記受信ブレイク割り込みを受けて下記(F1)乃至(F7)の処理を実行するものである。
(F1)前記制御部から前記コマンドを受信しないように、前記オーバーランフラグをセットし、
(F2)前記FIFOバッファに格納されている前記第1電文及び前記第2電文を読み出し、
(F3)読み出した前記第1電文及び前記第2電文に基づきコマンドを構築し、
(F4)前記参照テーブルを参照して、コマンドが正しく構築できたかどうか判定し、
(F5)コマンドが正しく構築できたと判定したときは、構築したコマンドを前記コマンド登録用バッファに格納し、
(F6)コマンドが正しく構築できなかったと判定したときは、構築したコマンドを破棄し、
(F7)前記制御部から前記コマンドの受信を再開するように、前記オーバーランフラグをリセットする。
【0017】
前記副制御部は、前記オーバーランフラグを監視するオーバーランフラグ監視部を含み、
前記FIFOバッファが満杯になったときは、前記オーバーランフラグがセットされ、
前記オーバーランフラグ監視部が前記オーバーランフラグのセットを検知したときは、前記コマンド構築部は、前記受信ブレイク割り込みの発生の有無にかかわらず、前記(F2)乃至前記(F7)の処理を実行する、ようにしてもよい。
【0018】
前記コマンド構築部は、前記(F7)において前記オーバーランフラグをリセットした後に受信した最初の電文を、当該電文が前記第1電文又は前記第2電文いずれであっても、前記第1電文として扱うようにしてもよい。
【発明の効果】
【0019】
本発明によれば、バッファオーバーフローのために副制御部でコマンドの受信に失敗した場合でも、速やかにコマンドの再受信を可能にするとともに、その間に失われるコマンドを最小限に抑えるができる。
【図面の簡単な説明】
【0020】
【図1】遊技機の表面構造を示す斜視図である。
【図2】遊技機の裏面構造を示す斜視図である。
【図3】遊技者から見た盤面の様子を示す図(正面図)である。
【図4】発明の実施の形態に係る遊技機の機能ブロック図である。
【図5】発明の実施の形態に係るコマンド生成処理フローチャートと、第1電文・第2電文の説明図である。
【図6】発明の実施の形態に係るコマンド受信部の機能ブロック図である。
【図7】発明の実施の形態に係るタイマ割り込みによる処理(通常時の処理)のフローチャートである。
【図8】発明の実施の形態に係る通常時の処理の説明図である。
【図9】発明の実施の形態に係る受信ブレイク割り込みによる処理(異常時の処理)のフローチャートである。
【図10】発明の実施の形態に係る異常時の処理の説明図である。
【図11】発明の実施の形態に係る異常時の処理の説明図である。
【図12】発明の実施の形態に係るオーバーランフラグがセットされたときの処理(異常時の処理)のフローチャートである。
【図13】発明の実施の形態に係るオーバーランフラグがクリアされたときの処理フローチャートである。
【発明を実施するための形態】
【0021】
弾球遊技機の構造概略について図1及び図2を参照して説明を加える。
まず、図1を参照して本発明の実施の形態に係る遊技機の外部的構造につき説明する。
外枠50は、遊技機設置営業店に設けられた設置場所(島設備など)へと固定させるための縦長方形状からなる木製の枠部材である。
本体部材51は、外枠50の内部に備えられ、ヒンジ部51aを介して外枠に回動自在に装着された縦長方形状の遊技機基軸体となる部材である。この本体部材51は、枠状に形成されその内側に空間部を有している。
開口枠扉52は、遊技機の前面側となる前記本体部材51の前面に、ロック機能付きで且つ開閉自在となるように装着され、枠状に構成されることでその内側を開口部とした扉部材である。
なお、開口枠扉52の開口部にガラス製又は樹脂製からなる透明板部材が設けられ、開口部近傍に電飾52a、スピーカ52b、などが取り付けられている。
後述する遊技盤(図1では示していない)は、本体部材51の空間部に臨むように、本体部材51に所定の固定部材を用いて着脱自在に装着されている。遊技盤の本体部材51への装着後は、その遊技領域を前記開口部より観察することができる。
【0022】
球受皿付き扉53は、遊技機前面において本体部材51の下部に、ロック機能付きで且つ開閉自在となるように装着され、遊技球を貯留する球受皿を少なくとも備えた扉部材である。なお、本実施形態における球受皿付き扉には、以下の部材が取り付けられている。
(1)複数の遊技球が貯留可能で且つ発射駆動装置48へと遊技球を案内させる通路が設けられた球受皿。
(2)該貯留され発射駆動装置48へと案内された遊技球を前記遊技盤10の盤面11に設けられた遊技領域へと打出す操作を行う回動式操作ハンドル48b。
(3)ブリペイドカード読込み処理関係及び借り受ける遊技球の貸出し処理関係の指示をするボタンを備えた球貸し関係の操作部。
(4)球受皿に貯留させた遊技球を遊技球収集容器(俗称、ドル箱)へと排出解除するための球受皿用の貯留球排出操作ボタン。
【0023】
次に、図2を参照して本発明の実施の形態に係る遊技機の内部的構成を説明する。
40は、前述したように、本体部材51若しくは遊技盤11又はこれらに備え付けられる支持部材などを介して設けられ、電気的な遊技制御の処理を行い主要な処理情報を生成する制御部である。
40bは、前記本体部材51若しくは遊技盤11又はこれらに備え付けられる支持部材などを介して設けられ、前記制御部40にて生成した処理情報を得ることにより所定の出力態様処理をさせる制御を行う副制御部である。
42は、賞球の払い出し制御を行う払出制御部である。
43は、遊技球を払い出す遊技球払出装置である。
44は、図示しないランプや電飾52aを制御する電飾制御部である。
46は、スピーカ52bを制御駆動して音響を発生させる音響制御部である。
49は発射駆動装置48を制御する制御装置であって、回動式操作ハンドル48bを介して遊技球を盤面に設けられた遊技領域へと打出し制御を行うための発射制御装置である。
【0024】
図3は遊技機の遊技盤の正面図である。
図3において、11は遊技盤10の盤面である。盤面11は、誘導レール12と、誘導レール12で区画された略円形の遊技領域を落下した遊技球を外部へ導く排出口(アウト口)13と、遊技領域を移動する遊技球の方向を変化せしめる釘14や風車14aなどの障害物を複数個備える矩形の盤面である。
【0025】
前述した盤面11の遊技領域は、誘導レール12(遊技球を滑走させる滑走部と遊技球を規制する規制部を含む)により略円形状となるように区画形成され、打出された遊技球の移動範囲を規制する領域である。前記滑走部に規制部が続くように設けられている。前記滑走部は全体として螺旋をなして盤面11に配設されている。
【0026】
前記排出口(アウト口)13は、遊技領域に投入された遊技球が集束する位置に設けられた回収開口部である。
【0027】
障害物14としての遊技釘は、遊技球と接触させることにより移動方向を不規則にし、又は移動方向を規制するために、盤面11の適宜な位置に打込まれる複数の棒状部材である。
【0028】
30aは、遊技領域の中央やや上側に設けられ、演出用表示ランプやLCD(液晶表示装置)などの可変表示部をひとつ又は複数有する可変表示装置(センター役物)である。
30bは、スルーチャッカー(入賞チャッカー)である。
30cは、普通入賞口を有する普通入賞装置である。
30dは、始動入賞口を有するスタートチャッカー(始動入賞装置)である。
30eは、大入賞口を有するアタッカーである。
以下の説明で、30b乃至30dをまとめて入賞口30などと記すことがある。
なお、図示されていないが、上記30b、30c、30dの内部には球通過検出器20b、20c、20dが設けられている(同図の括弧内の符号はそのことを意味する)。
【0029】
スタートチャッカー30dの始動入賞装置は特定入賞装置と、アタッカー30eの大入賞装置は特別入賞装置とも呼ばれる。
スタートチャッカー(始動入賞装置)30dは、入賞口の開口範囲の拡縮を行わせる可動片をその両側に備え、遊技球を入賞させることにより可変表示を行わせると共に賞球を遊技者に獲得させる入賞装置である。
アタッカー(大入賞装置)30eは、入賞口を露出させる開口状態と入賞口を閉鎖する閉口状態となる可動扉が駆動制御されるものであり、遊技球を入賞させることにより他の入賞装置と比較してより多くの賞球を獲得させる入賞装置である。
【0030】
図4は本発明の実施の形態に係る遊技機の機能ブロック図である。
40は、電気的な遊技制御の処理を行い主要な処理情報を生成する制御部(「メイン基板」とも呼ばれる)である。制御部40は遊技領域を移動(流下)して入賞口30b〜30dを通過した遊技球をそれぞれ検出する球通過検出器20b〜20dの信号を入力とし、入賞口30b〜30dの遊技球通過に応じた抽選・判定を行う入賞判定部40aを含む。さらに、コマンドを生成して副制御部40bへ送信するコマンド送信部TXを含む。
【0031】
41は可変表示装置(センター役物)30aの演出用表示ランプを点灯させる表示制御部である。表示制御部41は、入賞判定部40aにおける所定条件の成立(例えば、予め定められた通過口ヘの遊技球の通過)に基づく電子的な当否抽選の結果に応じて、識別点灯情報(可変表示装置(センター役物)30aの演出用表示ランプに点灯表示される)を可変表示させた後に停止表示を行う表示制御装置である。
【0032】
なお、制御部40に設けられた入賞判定部40aにおける所定条件の成立(例えば、始動入賞装置30dヘの遊技球の入賞等)に基づく電子的な当否抽選の結果に応じて、液晶表示装置LCDにその識別表示情報が可変表示される(抽選結果に応じてその演出内容が変わる)。これは、制御部40から抽選結果(あるいはこれに対応する演出コマンド)を副制御部40bへ送り、当該抽選結果を受けた副制御部40bが当該抽選結果に対応する画像を生成し、これを液晶表示装置LCDで表示することで実行される。可変表示装置(センター役物)30aのLCDは、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。スタートチャッカー(始動入賞装置)30dを遊技球が通過したことが検出されると、表示される図柄が所定時間だけ変動し、遊技球のスタートチャッカー(始動入賞装置)30dの通過時点において抽選された抽選用乱数値により決定される停止図柄をLCDに表示して停止するようになっている。
【0033】
アタッカー30eは、前方に開放可能な開閉板を備える。LCDの変動停止後の図柄が「777」などの当り図柄のとき、「大当り」と称する特別遊技が開始され、アタッカー30eの開閉板が予め定めた回数だけ開放されるようになっている。アタッカー30eの開閉板が開放された後、所定時間が経過し、又は所定数の遊技球が入賞すると開閉板が閉じる。
【0034】
42は、入賞判定部40aの信号を受けて入賞口30b〜30dの遊技球通過に応じた及び/又はこれによる抽選・判定の結果に応じた遊技球払出装置43を制御する払出制御部である。
43は、遊技利益として入賞口30b〜30dの遊技球通過に応じた及び/又はこれによる抽選・判定の結果に応じた所定数の遊技球を払出す駆動源を備えた遊技球払出装置である。
【0035】
遊技球が遊技領域に設けられた入賞装置30b〜30dには、それぞれ内部に球通過検出器(例えばスイッチ)20b〜20dが設けられ、遊技球の通過を検出できるようになっている。いずれかの入賞装置30b〜30dの位置を通過すると、これを球通過検出器20b〜20dが検出し、これを受けて入賞判定部40aが所定の抽選・判定処理を行う。例えば、球通過検出器20bがスルーチャッカー(入賞チャッカー)30bを通過した遊技球を検知したとき、所定の抽選を行い、当選したときはスタートチャッカー(始動入賞装置)30dを所定時間開放する。すなわち、スタートチャッカー(始動入賞装置)30dの左右両側に互いに対向して設けられた一対の可動片を、それぞれ外側へ開放させる。併せて当選の旨を可変表示装置(センター役物)30aに表示する。そして、遊技球がスタートチャッカー(始動入賞装置)30dを通過したことを検知したとき、所定の抽選を行い、当選したときはアタッカー30eの大入賞装置を開放する。
【0036】
40bは、制御部40にて生成した処理情報を得ることにより、光の点滅・音響の発生などの演出を含む所定の出力態様処理をさせる制御を行う副制御部(「サブ基板」とも呼ばれる)である。副制御部40bは、CPU,ROM,RAM及び液晶表示装置LCDに表示する画像を生成するVDP(ビデオディスプレイプロセッサ)を含む。副制御部40bからの出力信号は、ランプ制御部44、音響制御部46及び可動体制御部47などの周辺基板へ送られる。また、副制御部40bは、遊技者が操作する演出ボタンESWから信号を受け付ける(図1において、演出ボタンESWの表示は省略している)。
【0037】
副制御部40bは、制御部40からのコマンドを受信するコマンド受信部RXを備える。コマンド受信部RXは、例えば、シリアル通信用IC、バッファ(FIFOを含む)及びこれらハードウエアを動作させるためのプログラムからなる。当該プログラムに従って副制御部40bのCPUなどが動作し、シリアル通信用ICを制御し、バッファからデータを読み出すことで、コマンド受信部RXは実現される。
【0038】
44は、遊技盤10あるいは遊技機筐体に設けられたランプ・電飾52aなどを点灯制御するための電飾制御部である。
【0039】
46は、遊技盤10あるいは遊技機筐体に設けられたスピーカ52bを通じて効果音・音声を発生させる音響制御部である。
【0040】
47は、遊技盤10に設けられた可動体52cを制御する可動体制御部である。
可動体52cとは、遊技盤10上に打ち出された遊技球の落下動作に変化を与える障害物であって、副制御部40bの処理によって状態が変化するものである(図3において可動体52cの表示は省略している)。可動体52cは、例えば、通常状態とこれと異なる状態の2つを相互に行き来するものである。可動体とは、例えば、平板状、円柱状、円盤状、凹凸を有する歯車状、等のものである。なお、図示しないが可動体52cを駆動するための動力部を備える。可動体制御部47は、実際には、当該動力部を駆動する。動力部は、例えば、モータ、ソレノイドなどの電力又は磁力を用いた駆動装置又は駆動源を備えた制御装置などである。
【0041】
液晶表示装置LCD及びランプ・電飾52a、スピーカ52b、可動体52cは、遊技者の視覚や聴覚に訴える演出を行うための演出デバイスである。また、ランプ制御部44、音響制御部46、可動体制御部47は、前記デバイスを駆動制御するデバイスであり、その内部に演出処理用のICを内蔵している。副制御部40bに内蔵されるVDPも駆動制御用のデバイスである。以下の説明において、液晶表示装置LCDなどの上記演出デバイスを駆動制御する、ランプ制御部44、音響制御部46、可動体制御部47及びVDPを演出デバイス制御部と呼ぶことにする(なお、演出デバイスと演出制御デバイスと併せて指すときに「演出デバイス」という用語を用いることがある)。なお、ランプ制御部44、音響制御部46、可動体制御部47を、VDPのように副制御部40bに内蔵してもよい。
【0042】
演出ボタンESWは、遊技者によって押下操作されるものであり、押下することで液晶表示装置LCDに表示される演出画像の態様を変化させ、遊技者に対して遊技への参加意識を高めるとともに、興趣を高めるようにしたものである。例えば、演出ボタンESWの操作に連動して液晶表示装置LCDに表示される演出画像を選択することができる。
【0043】
副制御部40bは、前述のようにCPU,ROM,RAM及びVDPを含む。複数のビット(配線)からなる図示しないBUSに、CPU(処理部)、ROM(不揮発性記憶部、メモリ)、RAM(読み出し及び書き込み可能な記憶部、メモリ)、VDP及び図示しないI/O(入出力装置)が接続されている。副制御部40bで実行される遊技に係る処理は、ROMに予め記憶されたプログラムに従ってCPUが動作することで実行される。CPUは、処理を行う際に各種データをRAMに記憶させ、必要に応じて読み出し、処理を行い、必要に応じて再度記憶する、といった処理を行う。RAMはバッテリバックアップを受けていることがあり、この場合は電源断の間でもその記憶内容は保持されている。
【0044】
副制御部40bは、主制御部40から演出コマンドを受信し、これに基づき液晶表示装置LCD、ランプ・電飾52a、スピーカ52b、可動体52c、演出ボタンESWなどの制御を行うものである。
【0045】
コマンド送信部TX及びコマンド受信部RXについて説明を加える。
図5(a)は、コマンド送信部TXが実行する処理のフローチャート、同図(b)はコマンド送信部TXが生成するコマンドの説明図である。
【0046】
コマンド送信部TXが生成するコマンドは複数の電文からなる。最初の電文は開始電文、最後の電文は終端電文、これらに挟まれた電文は途中電文と呼ばれる。図5(b)は2つの電文、つまり第1電文と第2電文からなるコマンドの例を示す。これは最も簡単な構成であり、図6以降の説明ではもっぱら図5(b)の2つの電文、つまり第1電文と第2電文からなるコマンドを例に取り説明を加える。なお、途中電文を含み3つ以上の電文からなるコマンドについても本発明の実施の形態を適用することができ、その手順は変わらない。
【0047】
同図(b)の例では、各電文は8ビット(1バイト)のデータであり、その先頭ビット(MSB)が1であるときは第1電文を意味し、0であるときは第1電文以外の第2電文などを意味する。これらは例えば次のような意義を有する。第1電文はコマンドの最初の電文であることを意味すると共に、副制御部40bに実行させる処理を識別するための情報などを意味する。第2電文は、第1電文に縦続するコマンドであることを意味すると共に、副制御部40bが実行すべき処理の内容を具体的に指定する。例えば、第1電文で液晶表示装置に関するコマンドであること(液晶表示装置に対して所定の処理を実行させるコマンドであること)を意味するとき、第2電文は液晶表示装置に表示すべき具体的な画像(演出)の種類を指定するものである。したがって、第1電文と第2電文が、その順番で正しく揃って初めてコマンドとして意味をもつ。仮に一方が失われると残りの電文は意味を持たず副制御部40bは何ら動作を行わないか、仮に動作しても意図したような動作にはならない。第1電文と第2電文の順序が入れ替わった場合も同様である。また、複数のコマンド、コマンド1とコマンド2を受けたとして、その中間部分が欠落して、コマンド1の第1電文とコマンド2の第2電文とが結合した場合も、予め意図した動作は期待できない。
【0048】
先頭ビットにより第1電文かそれとも第2電文かは判別できる。しかし、コマンド受信部RXの図示しない通信用ICで受信する際に先頭ビットは使用されるが、その後にFIFOバッファに電文を格納する際に先頭ビットは削除されるので、FIFOバッファに格納されたデータそのものからは第1電文と第2電文を区別することができない。ただし、FIFOバッファには先頭ビットに基づき正しい順番で格納されるので、その順序が狂うことはない。言い換えれば、FIFOに格納されている電文の順序が正しいことは、保証されている。これに対して、FIFOから読み出してコマンドを構築する際には電文の順序が狂うことがある(この点は後にさらに説明を加える)。
【0049】
図5(a)を参照して、コマンド送信部TXのコマンド生成処理について説明を加える。同図のフローチャートにより1つのコマンドが生成される。
【0050】
制御部40のCPUが動作していて、副制御部40bに演出等を実行させる必要が生じ、そのためのコマンドを生成するときに、当該CPUは図5(a)の処理を実行する。
【0051】
S1:第1電文を生成する。
制御部40のCPUは、必要とされた演出等の動作に対応する第1電文を生成する。当該動作と第1電文の関係は予め定められていて、例えばテーブルの形式でメモリ(ROM)に格納されている。制御部40のCPUは当該メモリを検索して、必要な処理に対応する第1電文を決定する。
【0052】
S2:第2電文以降の電文を生成するために、電文の数を設定する。
コマンドが第1電文とひとつの第2電文とからなるときは、第2電文の数=1、k=1とする(kは電文の数をカウントするためのパラメータ)。同様に、第1電文と2つの第2電文からなるときは、第2電文の数=2とする。上記テーブルにおいて、第1電文とこれに対応する電文の数を予め格納しておけば、コマンド毎に電文の数を変えることもできる。
【0053】
S3:第2電文を生成する。
第1電文が決まれば、これに続く第2電文は所定のものに限定される。例えば、実行する演出の種類によって第2電文は選択される。例えば、上記テーブルにおいて、第1電文と、これに対応して選択可能な複数の第2電文(例えば第2a電文、第2b電文、・・・)が予め定義されていて、制御部40のCPUは、必要とされた演出等の動作に対応して複数の第2電文からいずれかを選択する(例えば第2a電文を選択して、これを第2電文とする)。第3電文以降についても同様である。
【0054】
S4:電文生成終了したかどうか判定する。
具体的には、kが予め定められた電文の数(上記テーブルを参照して選択された演出等の動作に対応する電文の数)に達したら、S4でYESとなる。S4でNOの場合は、kをk+1として(S6)、次の電文の生成を行う。
【0055】
S5:第1電文及び第2電文を送信する。
上記手順により生成された第1電文及び第2電文をまとめて、一つのコマンドとして副制御部40bへ向けて送信する。第1電文及び第2電文は連続して送信されるので、一つのコマンドに他のコマンドの電文が混じることはない。
【0056】
次に、コマンド受信部RXについて説明を加える。
図6は、コマンド受信部RXの機能ブロック図である。なお、通信用ICの表示は省略している。
【0057】
R1は、制御部40から受信したコマンド、つまり電文1、電文2(以下では、コマンドは電文1と電文2の2つからなるものとする)を受信した順番で格納しているFIFOバッファである。前述のように、FIFOバッファR1からは、書き込んだ順番でデータを読み出すことができる。FIFOバッファR1は、データを全部読み出したときに、その全てが自動的にクリアされるような機構を備えることが好ましい。例えば、FIFOバッファR1が空(エンプティ)になったときにその旨を示す信号を外部へ出力するとともに、当該信号でバッファの各ラッチをクリアするようにする。また、FIFOバッファR1は、FIFOフルを示す信号を外部へ出力するものとする。
【0058】
なお、FIFOバッファR1のことを、単に「FIFO」と記すことがある。
【0059】
R2は、FIFOバッファR1から読み出した電文1、電文2からコマンドを構築するコマンド構築部である。
【0060】
R3は、コマンド構築部R2で構築されたコマンドを格納する正式コマンド登録用バッファである。ここに格納されているコマンドは、副制御部40bのCPUやVDPに所定の演出を実行させることができるものである。
【0061】
R4は、予め定められた間隔でコマンド構築部R2に対して割り込み信号を与えるタイマーである。
【0062】
R5は、FIFOバッファR1がオーバーフローしたとき(FIFOフルになったとき)にセットされるオーバーランフラグである。このフラグは、例えばCPUのレジスタあるいはメモリで予め指定された領域(番地)であるが、当該フラグをどこにどのように構成するかは任意である。FIFOバッファR1がフルになると受信ブレイク割り込みが発生する。例えば、FIFOバッファR1フルをCPUあるいは他のICが受けて、受信ブレイク割り込みを発生する(要するに、副制御部40bが受信ブレイク割り込みを発生する)。受信ブレイク割り込みが発生すると、オーバーランフラグがセットされる。コマンド構築部R2が所定の処理を実行すると(後述)、オーバーランフラグがリセットされる。また、オーバーランフラグがセットされた状態では、通信用ICは制御部40からのコマンド、すなわち第1電文、第2電文を受信しない。
【0063】
R6は、コマンド構築部R2がコマンドを構築する際に参照する参照テーブルである。参照テーブルR6は、正しい電文1と電文2の組み合わせが予め格納されている。例えば、参照テーブルR6において、xxhという電文1に対応する電文2としてaah、bbhが定義されているとする(hは16進数を意味する)。コマンド構築部R2でxxh+aahというコマンドを構築したとき、参照テーブルR6を参照することで、これは正しいコマンドであることが分かる。これに対し、xxh+cchというコマンドになったら、これらは参照テーブルR6に定義されていない組み合わせであるから、当該コマンドは不正であることが分かる。
【0064】
コマンド構築部R2やタイマーR4は、CPUが所定のプログラムを実行することで実現されるが、これらをICなどのハードウエアで実現することもできる。参照テーブルR6は、メモリ(ROM)でテーブルの形式あるいはプログラム上で定義されている。
【0065】
なお、図6において、点線で示されているオーバーランフラグ監視部R7については、後述する。
【0066】
図7は、コマンド受信部RXの通常時の処理を示す。通常時とは、FIFOフルが発生していない状態、すなわち、コマンドの受信とともにその読み出しが実行されることでFIFOバッファR1の中のバッファ(ラッチ)が全部埋まらない状態を言う。
【0067】
S10A:正式コマンド登録用バッファR3へ構築したコマンドを保存する際、コマンド受信に関する上位割り込みの発生を禁止する。
上位割り込みとは、図7の処理よりも優先して実行される割り込み処理あるいはその契機となる割り込みのことである。上位割り込みが発生すると、CPUは、図7の処理を中段して、当該割り込みで指示された処理を実行する。当該割り込みに係る処理で、正式コマンド登録用バッファR3へコマンドに係る電文の書き込むようなことがあると、意図したような電文の書き込みを行うことができないおそれがある。例えば、図7の処理で電文1を正式コマンド登録用バッファR3に書き込もうとしたときに、上位割り込みが発生し、(電文1を書き込む前に)当該割り込みで指示された処理において電文2が書き込まれるということがあり得る。この場合、正式コマンド登録用バッファR3には、電文2、電文1という順番で書き込まれることになるが、これは不正なコマンドであり、副制御部40bの動作がおかしくなるおそれがある。正しいコマンドは、電文1、電文2の順番である。このような不都合を避けるために、ここで上位割り込みを禁止している。
【0068】
S10B:FIFOバッファR1に格納されている制御部40からのコマンドを全部読み込む。
【0069】
前述のようにFIFOバッファR1には、受信の順番でコマンドに係る電文1及び電文2が格納されているから、その順番にしたがって各電文を読み出す。なお、FIFOの特性上、その出力端から順番に読み出せば、読み出した電文は受信の順番になる。
【0070】
FIFOバッファR1の読み出しが行われるのは、タイマーR4のタイミングである。タイマーR4は一定時間毎に信号(パルス)を出力するから、当該信号を受けてコマンド構築部R2が各電文を読み出す。タイマーR4の設定時間を短くすれば読み出しは頻繁に行われることになり、したがってFIFOフルになる可能性は低くなるが、反面、CPUの処理負荷が増える。これに対し、設定時間を長くすればFIFOフルになる可能性は高くなるが、CPUの処理負荷を減らすことができる。本発明の実施の形態では、後述の異常時の処理によりコマンドを極力再現できるから、従来に比べてある程度設定時間を長くすることが可能である。
【0071】
全てのコマンドの読み出しが完了すると、FIFOバッファR1は空になる。
【0072】
なお、FIFOバッファR1が、データ読み出し時に自動でクリアが行われないようであれば、FIFOバッファR1をクリアするようにしてもよい。
【0073】
S11:コマンド構築部R2でコマンドを構築する。
S10Bで読み出した電文は、電文1、電文2のように順番になっているから、当該順番にしたがってコマンドを構築する。単純には、電文1と電文2をまとめてひとつのコマンドとする。これを順番に繰り返す。FIFOバッファR1に電文1a、電文2a、電文1b、電文2b、・・・のように正しい順番で格納されているのであれば、順番に電文1a+電文2a=コマンドa、電文1b+電文2b=コマンドb、・・・というように構築すれば、正しいコマンドを構築できる。通常の処理においては、後述のように一部の電文が欠落することはないから、問題は生じない。
【0074】
なお、この際に、念のため、参照テーブルR6を参照してコマンドが間違っていないかどうか判定するようにしてもよい。
【0075】
上位割り込みとして、受信ブレイク割り込みがある。受信ブレイク割り込みについては、後述する。
【0076】
S13:構築したコマンドを正式コマンド登録用バッファR3の所定の領域に格納する。
S11で、電文1と電文2をまとめてひとつのコマンドとされたものを正式コマンド登録用バッファR3の所定の領域に格納する。
【0077】
なお、この際に、参照テーブルR6を参照してコマンドが間違っていないかどうか判定するようにしてもよい。
【0078】
S14:読み込んだ電文の全てについてコマンドを構築するまで、S11乃至S13の処理を繰り返す。
【0079】
図8は、通常受信時の処理の説明図である。
制御部40からのコマンド(同図中の「xxh」)はFIFOに順番に格納される。1回のポーリングで確認するバイト数(データ数)は4バイトである。
【0080】
ポーリングとは、一定期間のタイミングでFIFOを監視する方式である。これとは異なる方式として、FIFOフル割り込み方式がある。これは、所定数のデータを受信したことを契機に割り込みを発生させることでデータを受信するやり方である。FIFOフル割り込み方式では、所定数のデータ受信ごとに割り込みが発生するので、設定された所定数によっては頻繁に割り込みが生じ、その結果、処理負荷が高くなる可能性がある。これに対し、ポーリング方式によれば、割り込みは一定時間毎にしか発生しないから、前記のような問題は生じない。その代わり、次の読み出しタイミングになる前にFIFOフルになると、受信データに欠落が生じることになる。本発明の実施の形態では、後述の処理により受信データ欠落の影響を最小限にしている。
【0081】
制御部40から送信される電文は、ハードウエアにて受信を自動的に行い、FIFOに空きがある場合は順次FIFOに蓄積される。
【0082】
通常受信処理では、ステージ割り込み(タイマ割り込み)を利用してFIFOに蓄積されているデータを取り出し、メインコマンドの構築処理及びコマンドバッファへの登録処理を行う。1回の割り込み処理にてFIFOに蓄積されているデータを取り出すバイト数は、FIFOに蓄積されている4バイトのデータである。
【0083】
図9は、コマンド受信部RXの異常時の処理を示す。異常時とは、FIFOフルが発生した状態、すなわち、FIFOバッファR1が受信したコマンドで一杯となり、もしコマンドを新たに受信しときFIFOバッファR1に格納できない状態を言う。新たに受信したコマンドは失われる。
【0084】
図9の処理は、FIFOフルが発生したことを契機として実行される。FIFOバッファR1は全てのバッファ(ラッチ)にデータが書き込まれたことを示すフラグあるいは信号端子を備えている。当該フラグあるいは信号を受けて受信ブレイク割り込みが発生し、CPUは図9の処理を開始する。
【0085】
S20:オーバーランフラグをセットする。
FIFOフルの状態でコマンドの受信を再開させないためである。受信ブレイク割り込みの発生後は、オーバーランフラグをクリアしない限り再受信できない。
【0086】
S21:FIFOバッファR1に格納されている、制御部40からのコマンドを全部読み込む。
前述のS10Bと同様の処理である。
【0087】
S22:コマンド構築部R2でコマンドを構築する。
前述のS11と同様の処理である。
【0088】
ただし、受信ブレイク割り込みが発生したということはFIFOフルであり、受信したコマンドが破棄されて失われた可能性がある。これを前提に可能な限りコマンドを構築する。この際、既に電文の1要素として受信出来ていた内容も、コマンド構築の要素として含める。
【0089】
S23:コマンド構築できたかどうか判定する。
上述したように、受信したコマンドが失われた可能性があるから、構築できたコマンドが不正である可能性がある。例えば、コマンド送信部TXが、コマンドa=電文1a+電文2aとコマンドb=電文1b+電文2bを送信したが、コマンド受信部RXで、FIFOフルのために電文2bが失われたとすると、コマンド構築部R2で構築した結果、コマンドb=電文1bとなる可能性がある。
【0090】
そこで、コマンド構築部R2は、参照テーブルR4を参照して、構築したコマンドが正しいか、それとも不正かを判定する。上記例で、コマンドb=電文1b+電文2bがコマンドb=電文1bとなった場合、参照テーブルR4を参照して、電文1bが電文2を必要としないコマンドであるかどうは調べ、電文2を必要とする場合は不正なコマンドであると判断する(S23でNO)。上記例で、コマンドb=電文1b+電文2bがコマンドb=電文2a+電文1bとなった場合、参照テーブルR4を参照して、正しい電文1と電文2の組み合わせであるかどうか判定する。例えば、電文2aがxxhであり、電文1bがcchである場合、参照テーブルR6においてxxhという電文1に対応する電文2としてaah、bbhが定義されているが、xxh+cchは定義されていないから、コマンドb=xxh+cchは、不正なコマンドであると判断する(S23でNO)。
【0091】
S24:正式コマンド登録用バッファR3へ構築したコマンドを保存する際、コマンド受信に関する上位割り込みの発生を禁止する。
前述のS10Aと同様の処理である。
【0092】
S25:構築したコマンドを正式コマンド登録用バッファR3の所定の領域に格納する。
前述のS13と同様の処理である。
【0093】
S26:S23で構築できないと判定されたものは(S23でNO)、破棄する。
例えば、コマンド体系の点で矛盾するコマンド、無意味なコマンドになる電文1と電文2の組み合わせは、破棄される。
【0094】
S27:読み込んだ電文の全てについてコマンドを構築するまで、S22乃至S26の処理を繰り返す。
前述のS14と同様の処理である。
【0095】
S28:オーバーランフラグをリセット(クリア)する。
これにより、コマンドの再受信が可能にある。これ以降は通常の受信処理を行う。
【0096】
図10は、受信ブレイク割り込み処理(異常時受信処理)の説明図である。
FIFOが一杯になった状態でコマンドを受けて、コマンドを取りこぼす(図10(a)の符号X)。ここで、受信ブレイク割り込みが発生する。
【0097】
受信ブレイク割り込みでFIFOの読み出しを行う。コマンドは電文によって区切られるため、一度、電文構築用テンポラリに展開後に完成データを蓄積する。
【0098】
受信ブレイク割り込み発生時、継続するコマンドをテンポラリに展開した場合、復帰後のコマンドと結合して、意図しないコマンドが完成することがある。もし、受信再開後に符号XのNo.2−第2電文とNo.3−第1電文を受信したとすると(No2−第1電文は欠落している)、図10(b)の符号Yに示すような不正なコマンドが構築される。
【0099】
受信ブレイク割り込み発生以前においてFIFOに蓄積された情報は、正常なデータとなるため、できる限りコマンドとして構築しなければならない。ただし、前述のように電文の途中となり得るデータを保持した状態のままにしておくと、後続の電文と結合して本来の役割と異なるメインコマンドが生成される可能性が高い。このため、本割り込み処理では下記のように対応する。
【0100】
(1)FIFOのデータを読み出し、できる限りメインコマンドの構築を行う。
【0101】
(2)FIFOのデータが存在しなくなった時点で、電文構築用に残っている電文は破棄する(コマンド受信漏れが発生する)。
【0102】
(3)割り込み解除後の処理として、必ず電文1から受信するようにする。
【0103】
なお、上記割り込み発生時は、オーバーランフラグがセットされてコマンドを受信しないようになっているため、FIFO読み出し中に異なる電文が結合することはない。
【0104】
ステージ割り込み発生時に受信ブレイク割り込みが発生した場合、タイミングによってはFIFOからのデータの取り出しに矛盾が生じ、メインコマンドが正常に受信できないことがある、ことを述べた。図11はその説明図である。
【0105】
(1)ステージ割り込みによりFIFOからデータ(第1電文)を取得する。
【0106】
(2)受信ブレイク割り込みが発生する。
【0107】
(3)これにより処理権が移動し、FIFOバッファからデータ(第2電文)を取得し、コマンド格納エリアに保存まで実行する。この結果、第2電文が先に書き込まれる。
【0108】
(4)上記(1)〜(3)により、電文の前後関係が変更されコマンド序列が崩れる。
【0109】
上記不都合をなくすため、コマンド受信処理全般において、FIFO取得から正式コマンド登録用バッファへのデータ保存に係る処理を実行している期間では、コマンド受信に関する上位割り込みの発生を禁止している。
【0110】
割り込み禁止時は、優先レベルの高い受信ブレイク処理は行えないが、本処理自体が各割り込み処理と同一の役割を果たすために、問題とはならない。
【0111】
また、受信ブレイク時はFIFO内のコマンドに正当性を保てない箇所が発生することになるが、受信ブレイク発生後はフラグをクリアしない限り再受信ができない構造になっているため、整合性をクリアしてから受信動作を再開させている。
【0112】
なお、受信ブレイク割り込みとともに、あるいはそれに代えてオーバーランフラグ監視処理を行い、バッファオーバーフローを検知したときに、異常時の処理を行うようにしてもよい。オーバーランフラグがセットされたときに、何らかの事情で受信ブレイク割り込みが発生せず、図9を含めたオーバーフローに関連する処理を実行できない場合は、コマンドの整合性が一切保てなくなる。オーバーランフラグ監視処理を行えば、このような問題を解決することができる。
【0113】
オーバーランフラグ監視処理は、例えば、タイマーなどの出力に基づき、あるいは特定の処理を行う際に、オーバーランフラグR5をチェックするものである。図6において、タイマーR4に代えて、あるいはこれとともにオーバーランフラグR5を監視するオーバーランフラグ監視部R7が設けられる。オーバーランフラグ監視部R7は、図9の処理では必要ない。図6の点線はそのような意味である。オーバーランフラグR5がセットされていたら、図12の処理を実行する。
【0114】
図12は、S20:オーバーランフラグをセットする、を備えない点を除き、図9と同じである。
【0115】
なお、オーバーランフラグのクリア後の再受信において、図13に示すように、受信直後のデータは必ず電文1として扱う。これは、バッファーオーバーラン発生時に受信データを取りこぼしている可能性があり、他の意味を持つ電文との結合を防ぐ役割がある。仮に電文2とすると、コマンド構築部R2により他の電文に結合されたり、CPUやVDPにより、正式コマンド登録用バッファR3に格納した他の電文1又は電文2と誤って結合して解釈されるおそれがある。
【0116】
本発明の実施の形態によれば、正式コマンド登録用バッファへ保存する際、コマンド受信に関する上位割り込みの発生を禁止するとともに、FIFOバッファのデータを読み込みつつコマンドを構築し、その後にオーバーランフラグのクリアを行うことにより、速やかにコマンドの再受信を可能にするとともに、その間に失われるコマンドを最小限にすることができる。
【0117】
また、受信ブレイク割り込みの復帰時に第1電文からの受信と限定することで、その後に発生しるコマンドの構築を誤ることを防ぐことが出来る。
【0118】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【符号の説明】
【0119】
40 制御部
40b 副制御部
RX コマンド受信部
R1 FIFOバッファ
R2 コマンド構築部
R3 正式コマンド登録用バッファ(コマンド登録用バッファ)
R4 タイマー
R5 オーバーランフラグ
R6 参照テーブル
R7 オーバーランフラグ監視部
TX コマンド送信部
【特許請求の範囲】
【請求項1】
内部抽選処理を含む遊技に係る制御を実行する制御部と、前記制御部で生成したコマンドに基づき所定の処理を実行する副制御部とを備える遊技機において、
前記コマンドは、電文の開始を示す第1電文とこれに続く第2電文とを含むものであり、
前記制御部は、前記副制御部に実行させる処理に対応して前記第1電文を生成し、前記第1電文に対応して前記第2電文を生成し、前記第1電文及び前記第2電文をこの順番で前記副制御部へ送信するコマンド送信部を含み、
前記副制御部は、
前記制御部からの前記第1電文及び前記第2電文を受信した順番で格納するFIFOバッファと、
前記FIFOバッファから読み出した前記第1電文及び前記第2電文に基づきコマンドを構築するコマンド構築部と、
前記コマンド構築部で構築したコマンドを格納するコマンド登録用バッファと、
予め定められた間隔で前記コマンド構築部に対して割り込み信号を与えるタイマーと、
前記FIFOバッファが満杯になったときにセットされるオーバーランフラグと、
前記コマンド構築部が前記コマンドを構築する際に参照する参照テーブルとを備えるコマンド受信部を含み、
前記コマンド構築部は、前記FIFOバッファが満杯でないときは、前記タイマーからの前記割り込み信号に基づき下記(N1)乃至(N3)の処理を実行し、
(N1)前記FIFOバッファに格納されている前記第1電文及び前記第2電文を読み出し、
(N2)読み出した前記第1電文及び前記第2電文に基づきコマンドを構築し、
(N3)構築したコマンドを前記コマンド登録用バッファに格納し、
前記FIFOバッファが満杯になったときは、予め定められた受信ブレイク割り込みが発生し、
前記コマンド構築部は、前記受信ブレイク割り込みを受けて下記(F1)乃至(F7)の処理を実行することを特徴とする遊技機。
(F1)前記制御部から前記コマンドを受信しないように、前記オーバーランフラグをセットし、
(F2)前記FIFOバッファに格納されている前記第1電文及び前記第2電文を読み出し、
(F3)読み出した前記第1電文及び前記第2電文に基づきコマンドを構築し、
(F4)前記参照テーブルを参照して、コマンドが正しく構築できたかどうか判定し、
(F5)コマンドが正しく構築できたと判定したときは、構築したコマンドを前記コマンド登録用バッファに格納し、
(F6)コマンドが正しく構築できなかったと判定したときは、構築したコマンドを破棄し、
(F7)前記制御部から前記コマンドの受信を再開するように、前記オーバーランフラグをリセットする。
【請求項2】
前記副制御部は、前記オーバーランフラグを監視するオーバーランフラグ監視部を含み、
前記FIFOバッファが満杯になったときは、前記オーバーランフラグがセットされ、
前記オーバーランフラグ監視部が前記オーバーランフラグのセットを検知したときは、前記コマンド構築部は、前記受信ブレイク割り込みの発生の有無にかかわらず、前記(F2)乃至前記(F7)の処理を実行することを特徴とする請求項1記載の遊技機。
【請求項3】
前記コマンド構築部は、前記(F7)において前記オーバーランフラグをリセットした後に受信した最初の電文を、当該電文が前記第1電文又は前記第2電文いずれであっても、前記第1電文として扱うことを特徴とする請求項1又は請求項2記載の遊技機。
【請求項1】
内部抽選処理を含む遊技に係る制御を実行する制御部と、前記制御部で生成したコマンドに基づき所定の処理を実行する副制御部とを備える遊技機において、
前記コマンドは、電文の開始を示す第1電文とこれに続く第2電文とを含むものであり、
前記制御部は、前記副制御部に実行させる処理に対応して前記第1電文を生成し、前記第1電文に対応して前記第2電文を生成し、前記第1電文及び前記第2電文をこの順番で前記副制御部へ送信するコマンド送信部を含み、
前記副制御部は、
前記制御部からの前記第1電文及び前記第2電文を受信した順番で格納するFIFOバッファと、
前記FIFOバッファから読み出した前記第1電文及び前記第2電文に基づきコマンドを構築するコマンド構築部と、
前記コマンド構築部で構築したコマンドを格納するコマンド登録用バッファと、
予め定められた間隔で前記コマンド構築部に対して割り込み信号を与えるタイマーと、
前記FIFOバッファが満杯になったときにセットされるオーバーランフラグと、
前記コマンド構築部が前記コマンドを構築する際に参照する参照テーブルとを備えるコマンド受信部を含み、
前記コマンド構築部は、前記FIFOバッファが満杯でないときは、前記タイマーからの前記割り込み信号に基づき下記(N1)乃至(N3)の処理を実行し、
(N1)前記FIFOバッファに格納されている前記第1電文及び前記第2電文を読み出し、
(N2)読み出した前記第1電文及び前記第2電文に基づきコマンドを構築し、
(N3)構築したコマンドを前記コマンド登録用バッファに格納し、
前記FIFOバッファが満杯になったときは、予め定められた受信ブレイク割り込みが発生し、
前記コマンド構築部は、前記受信ブレイク割り込みを受けて下記(F1)乃至(F7)の処理を実行することを特徴とする遊技機。
(F1)前記制御部から前記コマンドを受信しないように、前記オーバーランフラグをセットし、
(F2)前記FIFOバッファに格納されている前記第1電文及び前記第2電文を読み出し、
(F3)読み出した前記第1電文及び前記第2電文に基づきコマンドを構築し、
(F4)前記参照テーブルを参照して、コマンドが正しく構築できたかどうか判定し、
(F5)コマンドが正しく構築できたと判定したときは、構築したコマンドを前記コマンド登録用バッファに格納し、
(F6)コマンドが正しく構築できなかったと判定したときは、構築したコマンドを破棄し、
(F7)前記制御部から前記コマンドの受信を再開するように、前記オーバーランフラグをリセットする。
【請求項2】
前記副制御部は、前記オーバーランフラグを監視するオーバーランフラグ監視部を含み、
前記FIFOバッファが満杯になったときは、前記オーバーランフラグがセットされ、
前記オーバーランフラグ監視部が前記オーバーランフラグのセットを検知したときは、前記コマンド構築部は、前記受信ブレイク割り込みの発生の有無にかかわらず、前記(F2)乃至前記(F7)の処理を実行することを特徴とする請求項1記載の遊技機。
【請求項3】
前記コマンド構築部は、前記(F7)において前記オーバーランフラグをリセットした後に受信した最初の電文を、当該電文が前記第1電文又は前記第2電文いずれであっても、前記第1電文として扱うことを特徴とする請求項1又は請求項2記載の遊技機。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−92346(P2011−92346A)
【公開日】平成23年5月12日(2011.5.12)
【国際特許分類】
【出願番号】特願2009−248158(P2009−248158)
【出願日】平成21年10月28日(2009.10.28)
【出願人】(390031772)株式会社オリンピア (2,719)
【Fターム(参考)】
【公開日】平成23年5月12日(2011.5.12)
【国際特許分類】
【出願日】平成21年10月28日(2009.10.28)
【出願人】(390031772)株式会社オリンピア (2,719)
【Fターム(参考)】
[ Back to top ]