(57)【要約】【課題】乱数カウンタの更新の初期値を本来の更新範囲内の値で変更して、「ぶら下げ基板」等による不正行為を防止することができる弾球遊技機を提供すること。【解決手段】大当たりを決定する乱数カウンタの更新の初期値には、バッファフラグによって示されるバッファの値が使用される。バッファフラグは、更新後の初期値カウンタの値が第１バッファへ正常に書き込まれた後でオンされ、第２バッファへ正常に書き込まれた後でオフされる（図４のＳ４９）。第１および第２バッファへの初期値カウンタの値の書き込みは交互に行われるので、バッファフラグによって示されるバッファには、初期値カウンタの正常な値が記憶されている。よって、かかる値を乱数カウンタの更新の初期値として使用することにより（Ｓ５５〜Ｓ６０）、乱数カウンタの更新の初期値を本来の更新範囲内の値で変更することができる。【選択図】図５
2010042303.tif 000002
【特許請求の範囲】
【請求項１】
定期的に実行される割込処理と、乱数カウンタと、その乱数カウンタの値を前記割込処理によって更新する更新手段と、所定の契機により前記乱数カウンタの値を読み出す読出手段とを備え、その読出手段により読み出された前記乱数カウンタの値が予め定められた値の１つと一致する場合に、遊技者に所定条件下で所定の遊技価値を付与する弾球遊技機において、
更新中の前記乱数カウンタの初期値を記憶する初期値メモリと、
前記乱数カウンタの次回の更新の初期値をカウントするカウンタであって、前記割込処理によって次回のその割込処理が発生するまでの残余時間の間に繰り返し更新される初期値カウンタと、
その初期値カウンタの値が書き込まれる少なくとも２つのバッファと、
そのバッファのうち前記初期値カウンタの値が正常に書き込まれたバッファを記憶する記憶手段と、
その記憶手段によって記憶されたバッファの値を前記乱数カウンタおよび初期値メモリへ書き込んでその乱数カウンタの更新の初期値を変更する変更手段とを備えていることを特徴とする弾球遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パチンコ遊技機などに代表される弾球遊技機に関し、特に、「ぶら下げ基板」等による不正行為を防止することができる弾球遊技機に関するものである。
【背景技術】
【０００２】
この種のパチンコ遊技機は、複数種類の図柄を変動表示可能な表示装置を備えており、遊技領域に打ち込まれた打球が図柄作動ゲートを通過すると、変動表示を開始するように構成されている。この変動表示が予め定められた図柄の組み合わせと一致して停止すると、大当たりとなって、遊技者に所定の遊技価値が付与され、大量の遊技球が払出可能な状態となる。
【０００３】
かかる大当たりの発生の有無は、打球が図柄作動ゲートを通過するタイミングで決定される。即ち、１カウントずつ定期的に一定の範囲で（例えば、１カウントずつ、２ｍｓ毎に、０から６３０の範囲で）更新されるカウンタを備え、打球が図柄作動ゲートを通過したときに、そのカウンタの値を読み出して、読み出されたカウンタの値が、例えば「７」などの所定値と一致する場合に、大当たりを発生するようにしている。大当たりが発生すると、制御基板のコネクタに接続されたケーブルを介して、大当たりコマンドが表示装置の表示用基板へ送信される。表示装置では、受信された大当たりコマンドに基づいて、変動表示を制御し、所定の図柄の組み合わせで停止する大当たり表示を現出させるのである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところが、最近、「ぶら下げ基板」と呼ばれる不正な基板を使用した不正行為が報告されている。この不正行為は、制御基板と表示装置の表示用基板との間に、不正な基板をぶら下げて（不正な「ぶら下げ基板」を取り付けて）、不当に大当たりを発生させるというものである。具体的には、前記したパチンコ遊技機に設けられる大当たりを決定するためのカウンタと同様の働きをするカウンタ（１カウントずつ定期的に一定の範囲で更新されるカウンタ）を「ぶら下げ基板」内に設け、そのカウンタの値をパチンコ遊技機の電源投入に合わせてリセット（０クリア）することにより、「ぶら下げ基板」内で大当たりの発生タイミングを把握するのである。そして、その把握した大当たりの発生タイミングに合わせて、「ぶら下げ基板」内で打球の図柄作動ゲート通過信号を不正に生成し、これをパチンコ遊技機の制御基板へ出力して、不当に大当たりを発生させるというものである。遊技場などでは、この「ぶら下げ基板」を用いた不正行為により、多大な被害を被っている。
【０００５】
そこで、本願出願人は、特願平１０−１７７５３９号において、大当たりを決定する乱数値をカウントする乱数カウンタのｎ（ｎは自然数）回りの更新毎に、その乱数カウンタの更新の初期値を変更する弾球遊技機を発明した（未公知）。この発明の弾球遊技機によれば、乱数カウンタの更新の初期値は、固定値ではなく、ｎ回りの更新毎に変更されるので、「ぶら下げ基板」は、内部の不正なカウンタの値を乱数カウンタの値と一致させることができず、大当たりの発生タイミングを把握することができない。よって、「ぶら下げ基板」による不正行為を防止することができるのである。
【０００６】
しかしながら、乱数カウンタの更新の初期値には、初期値カウンタによってカウントされた値が用いられるが、かかる初期値カウンタの値はリセット割込処理の残余時間の間に繰り返し更新される。よって、初期値カウンタが２バイト以上で構成される場合には、次回のリセット割込の発生タイミングによっては初期値カウンタの値が乱数カウンタの更新の範囲外の値となることがあるという問題点があった。
【０００７】
即ち、初期値カウンタの値を加算方向に更新した場合、更新後の値を上位バイト下位バイトの順に初期値カウンタへ書き込むと、割込処理の残余時間が無くなって生じる次の割込の発生タイミングによっては、更新後の初期値カウンタの値が乱数カウンタの更新の範囲外の値になることがある。一方、初期値カウンタの値を減算方向に更新した場合、更新後の値を下位バイト上位バイトの順に初期値カウンタへ書き込むと、更新後の初期値カウンタの値が乱数カウンタの更新の範囲外の値になることがある。
【０００８】
前者を例えば、乱数カウンタの値が「０〜２７６ｈ」の範囲内で更新される場合であって、初期値カウンタの値が「１ＦＦｈ」である場合について説明する。「１ＦＦｈ」の初期値カウンタの値が読み出され、その値に加算方向の更新である例えば「＋１」の更新が行われ、更新後の値が「２００ｈ」になるとする。更新後の値を、上位バイト、下位バイトの順に初期値カウンタへ書き込むと、初期値カウンタの値は「１ＦＦｈ」から上位バイトへの書き込み後に一旦「２ＦＦｈ」となり、更に下位バイトへの書き込みによって「２００ｈ」に更新される。よって、上位バイトへの書き込み後であって下位バイトへの書き込み前のタイミングでリセット割込が発生すると、下位バイトへの書き込みが行われないまま初期値カウンタの更新が終了するので、初期値カウンタの値は「２ＦＦｈ」の値となり、乱数カウンタの更新の範囲外の値となってしまうのである。
【０００９】
初期値カウンタの値が乱数カウンタの更新の範囲外の値となり、その値が乱数カウンタの更新の初期値として書き込まれると、乱数カウンタの値は本来更新されるべき範囲外の値となるので、大当たりの発生確率が予定していた確率と異なったものになったり、乱数カウンタの更新の初期値が以降は変更されなくなるという不具合が生じるのである。
【００１０】
本発明は上述した問題点を解決するためになされたものであり、乱数カウンタの更新の初期値を本来の更新範囲内の値で変更して、「ぶら下げ基板」等による不正行為を防止することができる弾球遊技機を提供することを目的としている。
【課題を解決するための手段】
【００１１】
この目的を達成するために請求項１記載の弾球遊技機は、定期的に実行される割込処理と、乱数カウンタと、その乱数カウンタの値を前記割込処理によって更新する更新手段と、所定の契機により前記乱数カウンタの値を読み出す読出手段とを備え、その読出手段により読み出された前記乱数カウンタの値が予め定められた値の１つと一致する場合に、遊技者に所定条件下で所定の遊技価値を付与するものであり、更新中の前記乱数カウンタの初期値を記憶する初期値メモリと、前記乱数カウンタの次回の更新の初期値をカウントするカウンタであって、前記割込処理によって次回のその割込処理が発生するまでの残余時間の間に繰り返し更新される初期値カウンタと、その初期値カウンタの値が書き込まれる少なくとも２つのバッファと、そのバッファのうち前記初期値カウンタの値が正常に書き込まれたバッファを記憶する記憶手段と、その記憶手段によって記憶されたバッファの値を前記乱数カウンタおよび初期値メモリへ書き込んでその乱数カウンタの更新の初期値を変更する変更手段とを備えている。
【００１２】
この請求項１記載の弾球遊技機によれば、定期的に実行される割込処理において、乱数カウンタの値は、更新手段により更新されると共に、所定の契機により読出手段によって読み出される。読み出された乱数カウンタの値が予め定められた値の１つと一致すると、大当たりとなって、遊技者に所定条件下で所定の遊技価値が付与される。
【００１３】
乱数カウンタの次回の更新の初期値をカウントする初期値カウンタの値は、バッファを介して、乱数カウンタおよび初期値メモリに書き込まれ、乱数カウンタの更新の初期値が変更される。このように乱数カウンタの更新の初期値は、固定値ではなく、定期的に変更される値であるので、弾球遊技機の電源投入に合わせて、「ぶら下げ基板」等がその内部の不正なカウンタをリセットしても、その不正なカウンタの値を乱数カウンタの値と一致させることはできない。従って、「ぶら下げ基板」等が大当たりの発生タイミングを把握することを防止することができるのである。
しかも、乱数カウンタの更新の初期値をカウントする初期値カウンタの値は、定期的に実行される割込処理の残余時間の間に繰り返し更新される。割込処理の残余時間の長さは、遊技の状態に応じて変化するので、「ぶら下げ基板」等で把握することはできない。よって、かかる残余時間の間に繰り返し更新される初期値カウンタの値を乱数カウンタの更新の初期値としているので、この点においても「ぶら下げ基板」等による乱数カウンタの値の把握を防止することができる。
また、初期値カウンタの値は、バッファを介して乱数カウンタおよび初期値メモリへ書き込まれる。バッファは少なくとも２つ設けられているので、割込処理の残余時間が無くなって次の割込がいかなるタイミングで発生しても、少なくとも一方のバッファには初期値カウンタの値が正常に書き込まれている。初期値カウンタの値が正常に書き込まれたバッファは記憶手段によって記憶されており、そのバッファの値が乱数カウンタおよび初期値メモリへ書き込まれて、乱数カウンタの更新の初期値が変更される。このように初期値カウンタの値が正常に書き込まれたバッファの値に基づいて、乱数カウンタの更新の初期値が変更されるので、いかなるタイミングで次の割込が発生しても、乱数カウンタの更新の初期値を本来の更新の範囲内の値で変更することができる。
【発明の効果】
【００１４】
本発明の弾球遊技機によれば、大当たりを決定するための乱数カウンタの更新の初期値は、固定値ではなく、定期的に変更される値であるので、弾球遊技機の電源投入に合わせて、「ぶら下げ基板」等がその内部の不正なカウンタをリセットしても、そのカウンタの値を乱数カウンタの値と一致させることはできない。従って、「ぶら下げ基板」等による大当たりの発生タイミングの把握を不可能にして、「ぶら下げ基板」等による不正行為を防止することができるという効果がある。
しかも、乱数カウンタの更新の初期値をカウントする初期値カウンタの値は、定期的に実行される割込処理の残余時間の間に繰り返し更新される。割込処理の残余時間の長さは、遊技の状態に応じて変化するので、「ぶら下げ基板」等で把握することはできない。よって、かかる残余時間の間に初期値カウンタの値を繰り返し更新しているので、この点においても「ぶら下げ基板」等による乱数カウンタの値の把握を防止することができるという効果がある。
また、初期値カウンタの値は、バッファを介して乱数カウンタおよび初期値メモリへ書き込まれるが、バッファは少なくとも２つ設けられているので、割込処理の残余時間が無くなって次の割込がいかなるタイミングで発生しても、少なくとも一方のバッファには初期値カウンタの値が正常に書き込まれている。初期値カウンタの値が正常に書き込まれたバッファは記憶手段によって記憶されており、そのバッファの値が乱数カウンタおよび初期値メモリへ書き込まれて、乱数カウンタの更新の初期値が変更されるので、いかなるタイミングで次の割込が発生しても、乱数カウンタの更新の初期値を本来の更新の範囲内の値で変更することができる。よって、大当たりの発生確率を設定外の確率に変動させてしまったり、乱数カウンタの更新の初期値が変更されなくなってしまうという不具合を回避できるという効果がある。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施例であるパチンコ遊技機の遊技盤の正面図である。
【図２】パチンコ遊技機の電気的構成を示したブロック図である。
【図３】リセット割込処理を示したフローチャートである。
【図４】初期値カウンタ更新処理を示したフローチャートである。
【図５】乱数更新処理を示したフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の好ましい実施例について、添付図面を参照して説明する。本実施例では、弾球遊技機の一例としてパチンコ遊技機、特に、第１種パチンコ遊技機を用いて説明する。なお、本発明を第３種パチンコ遊技機や他の弾球遊技機に用いることは、当然に可能である。
【００１７】
図１は、第１実施例におけるパチンコ遊技機Ｐの遊技盤の正面図である。遊技盤１の周囲には、打球が入賞することにより５個から１５個の遊技球が払い出される複数の入賞口２が設けられている。また、遊技盤１の中央には、複数種類の識別情報としての図柄などを表示する液晶（ＬＣＤ）ディスプレイ３が設けられている。このＬＣＤディスプレイ３の表示画面は横方向に３分割されており、３分割された各表示領域において、それぞれ図柄の変動表示が行われる。
【００１８】
ＬＣＤディスプレイ３の下方には、図柄作動ゲート（第１種始動口）４が設けられ、打球がこの図柄作動ゲート４を通過することにより、前記したＬＣＤディスプレイ３の変動表示が開始される。図柄作動ゲート４の下方には、特定入賞口（大入賞口）５が設けられている。この特定入賞口５は、ＬＣＤディスプレイ３の変動後の表示結果が予め定められた図柄の組み合わせの１つと一致する場合に、大当たりとなって、打球が入賞しやすいように所定時間（例えば、３０秒経過するまで、あるいは、打球が１０個入賞するまで）開放される入賞口である。この特定入賞口５内には、Ｖゾーン５ａが設けられており、特定入賞口５の開放中に、打球がＶゾーン５ａ内を通過すると、継続権が成立して、特定入賞口５の閉鎖後、再度、その特定入賞口５が所定時間（又は、特定入賞口５に打球が所定個数入賞するまで）開放される。この特定入賞口５の開閉動作は、最高で１６回（１６ラウンド）繰り返し可能にされており、開閉動作の行われ得る状態が、いわゆる所定の遊技価値の付与された状態（特別遊技状態）である。
【００１９】
図２は、かかるパチンコ遊技機Ｐの電気的構成を示したブロック図である。パチンコ遊技機Ｐの制御部Ｃは、演算装置であるＣＰＵ１１と、そのＣＰＵ１１により実行される各種の制御プログラムや固定値データを記憶したＲＯＭ１２と、各種のデータ等を一時的に記憶するためのメモリであるＲＡＭ１３とを備えている。図３から図５に示すフローチャートのプログラムは、制御プログラムの一部としてＲＯＭ１２内に記憶されている。
【００２０】
ＣＰＵ１１は、演算を行うＡＬＵのほか、アキュームレータ（以下「Ａｃｃ」と称す）１１ａや複数の内部レジスタ１１ｂ、フラグレジスタ１１ｃを備えている。ＲＡＭ１３内に設けられるカウンタ等の値は、一旦、ＣＰＵ１１の内部レジスタ１１ｂへロードされ（書き込まれ）、その内部レジスタ１１ｂ内で更新された後に、ＲＡＭ１３の元のカウンタ内へセイブされて（書き込まれて）、更新される。
【００２１】
なお、６８系の８ビットＣＰＵ１１では、ペアになっている２バイト（１６ビット）の内部レジスタ１１ｂの値を、連続したアドレスの２バイトのメモリ（ＲＡＭ１３内）へ１命令でセイブする（書き込む）ことができるが、この場合の書き込みは、バスライン１４のデータバスは８ビットで構成されるので、上位バイト、下位バイトの順に行われる。また、８０系の８ビットＣＰＵでは、６８系のＣＰＵ１１とは逆に、ペアになっている２バイト（１６ビット）の内部レジスタの値を、連続したアドレスの２バイトのメモリへ、下位バイト上位バイトの順に１命令でセイブすることができる。
【００２２】
ＲＡＭ１３は、乱数カウンタ１３ａ、初期値メモリ１３ｂ、初期値カウンタ１３ｃ、第１バッファ１３ｄ、第２バッファ１３ｅ、バッファフラグ１３ｆを備えている。乱数カウンタ１３ａは、大当たりの発生を決定するためのカウンタであり、図５の乱数更新処理（Ｓ６）によって、「０〜６３０（０〜２７６ｈ）」の範囲で、２ｍｓ毎に１カウントずつ更新される。このため乱数カウンタ１３ａは２バイトで構成されている。打球が図柄作動ゲート４を通過したときに取得した乱数カウンタ１３ａの値が例えば「７」であると、大当たりが発生する。大当たりが発生すると、大当たりコマンドが制御部Ｃから後述する表示装置Ｄへ送られる。表示装置Ｄは、この大当たりコマンドに基づいて、ＬＣＤディスプレイ３の変動表示を大当たりの状態に制御する。
【００２３】
初期値メモリ１３ｂは、乱数カウンタ１３ａの更新の初期値を記憶するためのメモリであり、乱数カウンタ１３ａと同様に２バイトで構成されている。本実施例では、乱数カウンタ１３ａの更新の初期値は、乱数カウンタの一回りの更新毎に変更される。よって、更新された乱数カウンタ１３ａの値が初期値メモリ１３ｂの値と一致すると、乱数カウンタ１３ａの一回りの更新が終了したことになるので、両値１３ａ，１３ｂの一致を契機として、そのときの第１又は第２バッファ１３ｄ，１３ｅの値が乱数カウンタ１３ａおよび初期値メモリ１３ｂに書き込まれて、乱数カウンタ１３ａの更新の初期値が変更される。従って、乱数カウンタ１３ａの更新の初期値を変更しても、乱数の一様性（連続で取得した場合に同じ値を取ることがなく、しかも、すべての値が同じ確率で取り出せること）のある乱数値を得ることができる。
【００２４】
初期値カウンタ１３ｃは、乱数カウンタ１３ａの更新の初期値をカウントするためのカウンタであり、乱数カウンタ１３ａと同様に２バイトで構成されている。この初期値カウンタ１３ｃの値は、図４の初期値カウンタ更新処理（Ｓ２１）によって、乱数カウンタ１３ａの更新範囲と同じ「０〜６３０（２７６ｈ）」の範囲で、１カウントずつ更新される。
【００２５】
図４の初期値カウンタ更新処理は、図３のリセット割込処理における残余時間の間、即ち、効果音処理（Ｓ１９）の終了後、次のリセット割込処理が発生するまでの間に、繰り返し実行される（Ｓ２１）。リセット割込処理は２ｍｓ毎に実行されるが、１回のリセット割込処理において実行されるＳ１からＳ１９の各処理の処理時間は遊技の状況に応じて変化するので、リセット割込処理の残余時間は、一定な時間ではなく、遊技の状況に応じて変化する不定な時間となる。「ぶら下げ基板」ではこの不定な時間を把握することはできないので、かかる不定な時間内に繰り返し更新される初期値カウンタ１３ｃの値を乱数カウンタ１３ａの更新の初期値として使用して、「ぶら下げ基板」による大当たり発生のタイミングの把握を不可能にしている。
【００２６】
第１バッファ１３ｄおよび第２バッファ１３ｅは、乱数カウンタ１３ａの一回りの更新終了時に初期値カウンタ１３ｃの値を乱数カウンタ１３ａおよび初期値メモリ１３ｂへ書き込むため、図４の初期値カウンタ更新処理で更新された初期値カウンタ１３ｃの値を記憶しておくバッファである。第１および第２バッファ１３ｄ，１３ｅは、初期値カウンタ１３ｃおよび乱数カウンタ１３ａと同様に２バイトで構成されている。乱数カウンタ１３ａの一回りの更新が終了すると、第１又は第２バッファ１３ｄ，１３ｅのいずれか一方の値が乱数カウンタ１３ａおよび初期値メモリ１３ｂに書き込まれ、乱数カウンタ１３ａの更新の初期値が変更される。
【００２７】
バッファフラグ１３ｆは、第１又は第２バッファ１３ｄ，１３ｅのうち、初期値カウンタ１３ｃの値が正常に書き込まれたバッファを示すフラグである。乱数カウンタ１３ａの一回りの更新終了時に、バッファフラグ１３ｆによって示されるバッファ１３ｄ，１３ｅの値が、乱数カウンタ１３ａおよび初期値メモリ１３ｂへ書き込まれる。バッファフラグ１３ｆは、図４の初期値カウンタ更新処理において、初期値カウンタ１３ｃの値が第１バッファ１３ｄへ正常に書き込まれるとオンされ、第２バッファ１３ｅへ正常に書き込まれるとオフされる。よって、乱数カウンタ１３ａの一回りの更新終了時に、バッファフラグ１３ｆがオンされていれば第１バッファ１３ｄの値が、オフされていれば第２バッファ１３ｅの値が、乱数カウンタ１３ａおよび初期値メモリ１３ｂへ書き込まれる。
【００２８】
これらのＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３は、バスライン１４を介して互いに接続されており、バスライン１４は、また、入出力ポート１５にも接続されている。この入出力ポート１５は表示装置Ｄや他の入出力装置１６と接続されている。制御部Ｃは、入出力ポート１５を介して、表示装置Ｄや他の入出力装置１６へ動作コマンドを送り、それら各装置を制御する。ＬＣＤディスプレイ３の変動表示や特定入賞口５の開閉動作も、この動作コマンドに基づいて制御される。
【００２９】
表示装置Ｄは、ＣＰＵ２１と、プログラムＲＯＭ２２と、ワークＲＡＭ２３と、ビデオＲＡＭ２４と、キャラクタＲＯＭ２５と、画像コントローラ２６と、入出力ポート２７と、ＬＣＤディスプレイ３とを備えている。表示装置ＤのＣＰＵ２１は、制御部Ｃから出力される動作コマンドに応じて、ＬＣＤディスプレイ３の表示制御（変動表示）を行うものであり、プログラムＲＯＭ２２には、このＣＰＵ２１により実行されるプログラムが記憶されている。ワークＲＡＭ２３は、ＣＰＵ２１によるプログラムの実行時に使用されるワークデータが記憶されるメモリである。
【００３０】
ビデオＲＡＭ２４は、ＬＣＤディスプレイ３に表示されるデータが記憶されるメモリであり、このビデオＲＡＭ２４の内容を書き換えることにより、ＬＣＤディスプレイ３の表示内容が変更される。即ち、各表示領域における図柄の変動表示は、ビデオＲＡＭ２４の内容が書き換えられることにより行われる。キャラクタＲＯＭ２５は、ＬＣＤディスプレイ３に表示される図柄などのキャラクタデータを記憶するメモリである。画像コントローラ２６は、ＣＰＵ２１、ビデオＲＡＭ２４、入出力ポート２７のそれぞれのタイミングを調整して、データの読み書きを介在するとともに、ビデオＲＡＭ２４に記憶される表示データをキャラクタＲＯＭ２５を参照して所定のタイミングでＬＣＤディスプレイ３に表示するものである。
【００３１】
次に、上記のように構成されたパチンコ遊技機Ｐで実行される各処理を、図３から図５のフローチャートを参照して説明する。図３は、パチンコ遊技機Ｐの制御部Ｃにおいて、２ｍｓ毎に実行されるリセット割込処理のフローチャートである。パチンコ遊技機Ｐの主な制御は、このリセット割込処理によって実行される。
【００３２】
リセット割込処理では、まず、スタックポインタを設定し（Ｓ１）、ＲＡＭ１３の所定エリアに書き込まれているパターンのチェックを行う（Ｓ２）。チェックの結果、所定エリアに所定のパターンが書き込まれていれば、ＲＡＭ１３に異常はなく正常であるので（Ｓ２：正常）、処理をＳ３へ移行する。一方、Ｓ２のチェックの結果、所定エリアに所定のパターンが書き込まれていなければ、電源投入後最初に実行されたリセット割込処理であるか、或いは、ＲＡＭ１３に異常があるので（Ｓ２：異常）、この場合には処理をＳ２２へ移行して、一旦、ＲＡＭ１３の内容をクリアした後、ＲＡＭ１３内へ初期値を書き込んで（Ｓ２２）、次のリセット割込処理の発生を待機する。
【００３３】
Ｓ３の処理ではタイマ割込の設定を行う（Ｓ３）。ここで設定されるタイマ割込としては、ＬＣＤディスプレイ３の表示を制御するコマンドを表示装置Ｄへ送信するためのストローブ信号を発生させるタイマ割込などがある。タイマ割込の設定後は、各割込を許可状態とする（Ｓ４）。割込の許可後は、特別図柄変動処理（Ｓ１５）や、表示データ作成処理（Ｓ１７）、ランプ・情報処理（Ｓ１８）などにより、前回のリセット割込処理において更新された出力データを一度に各ポートへ出力するポート出力処理を実行する（Ｓ５）。ポート出力処理の実行後は、後述する乱数更新処理（Ｓ６）を実行して、乱数カウンタ１３ａの値を「＋１」更新し、更に、記憶タイマ減算処理を実行する（Ｓ７）。記憶タイマ減算処理は、大当たり判定の保留球が所定数以上あり、且つ、ＬＣＤディスプレイ３において図柄の変動表示中である場合に、図柄の変動表示時間の短縮を行うものである。
【００３４】
スイッチ読込処理（Ｓ８）は、各スイッチの値を読み込んで、遊技領域１へ打ち込まれた打球の入賞口２や大入賞口５（Ｖゾーン５ａを含む）への入賞、図柄作動ゲート４の通過、更には賞球や貸球を検出するための処理である。カウント異常監視処理（Ｓ９）は、Ｓ８のスイッチ読込処理によって読み込まれたスイッチデータに異常があるか否かを監視するための処理である。例えば、大入賞口５が開放され、打球のＶゾーン５ａの通過を検出するＶカウントスイッチで打球が検出されたにも拘わらず、Ｖゾーン５ａ以外の大入賞口５への入賞を検出する１０カウントスイッチで１球の打球も検出できない場合には、１０カウントスイッチが抜き取られるか故障するなどして、１０カウントスイッチに何らかの異常が発生している。また、賞球を払い出す払出モータを駆動したにも拘わらず、１球の賞球も払い出されない場合には、賞球の払出装置に何らかの異常が発生している。このようにカウント異常監視処理（Ｓ９）では、スイッチ読込処理（Ｓ８）によって読み込まれたスイッチデータに基づいて、上記のような異常の有無を監視している。
【００３５】
図柄カウンタ更新処理（Ｓ１０）では、ＬＣＤディスプレイ３で行われる変動表示の結果、停止表示される図柄を決定するためのカウンタの更新処理が行われる。また、図柄チェック処理（Ｓ１１）では、図柄カウンタ更新処理（Ｓ１０）で更新されたカウンタの値に基づいて、特別図柄変動処理（Ｓ１５）で使用される大当たり図柄や、はずれ図柄、更にはリーチ図柄などが決定される。
【００３６】
Ｓ３からＳ１１までの処理において、エラーが発生していなければ（Ｓ１２：正常）、普通図柄変動処理（Ｓ１３）によって、７セグメントＬＥＤの変動表示を行うと共に、その変動表示の結果、当たりが発生した場合には普通電動役物（図示せず）を所定時間開放する当たり処理を実行する。その後、状態フラグをチェックし（Ｓ１４）、ＬＣＤディスプレイ３の図柄の変動表示中であれば（Ｓ１４：図柄変動中）、特別図柄変動処理（Ｓ１５）によって、打球が図柄作動ゲート４を通過するタイミングで読みとられた乱数カウンタ１３ａの値に基づいて、大当たりか否かの判定が行われると共に、ＬＣＤディスプレイ３の表示図柄の変動処理を実行する。一方、状態フラグをチェックした結果、大当たり中であれば（Ｓ１４：大当り中）、大入賞口５を開放するなどの大当たり処理（Ｓ１６）を実行する。更に、状態フラグをチェックした結果、図柄の変動中でも大当たり中でもなければ（Ｓ１４：その他）、Ｓ１５及びＳ１６の処理をスキップして、Ｓ１７の表示データ作成処理へ移行する。なお、Ｓ１２の処理において、エラーが確認された場合には（Ｓ１２：エラー）、Ｓ１３〜Ｓ１６の各処理をスキップして、Ｓ１７の表示データ作成処理へ移行する。
【００３７】
表示データ作成処理（Ｓ１７）では、図柄の変動表示以外にＬＣＤディスプレイ３に表示されるデモデータや、７セグメントＬＥＤの表示データなどが作成され、ランプ・情報処理（Ｓ１８）では、保留球のランプデータをはじめ、各種のランプデータが作成される。効果音処理（Ｓ１９）では、遊技の状況に応じた効果音データが作成される。なお、これらの表示データおよび効果音データは、前記したポート出力処理（Ｓ５）やタイマ割込処理によって各装置へ出力される。
【００３８】
効果音処理（Ｓ１９）の終了後は、次のリセット割込処理が発生するまでの残余時間の間、Ｓ１０と同一の処理である図柄カウンタ更新処理（Ｓ２０）と、初期値カウンタ更新処理（Ｓ２１）とを繰り返し実行する。Ｓ１〜Ｓ１９の各処理の実行時間は遊技の状態に応じて変化するので、次のリセット割込処理が発生するまでの残余時間は、一定の時間ではなく、遊技の状態に応じて変化する。よって、かかる残余時間を使用して図柄カウンタ更新処理（Ｓ２０）を繰り返し実行することにより、停止図柄をランダムに変更することができる。また、かかる残余時間を使用して初期値カウンタ更新処理（Ｓ２１）を繰り返し実行することにより、乱数カウンタ１３ａの更新の初期値となる初期値カウンタ１３ｃの値を「ぶら下げ基板」で把握不可能とすることができる。
【００３９】
図４は、初期値カウンタ更新処理のフローチャートである。初期値カウンタ更新処理（Ｓ２１）では、ＣＰＵ１１の内部レジスタ１１ｂを介して、乱数カウンタ１３ａの更新の初期値をカウントする初期値カウンタ１３ｃの値を、乱数カウンタ１３ａの更新範囲の「０〜６３０（０〜２７６ｈ）」の範囲内で「＋１」ずつ更新する。更新された初期値カウンタ１３ｃの値は、バッファフラグ１３ｆがオフであれば第１バッファ１３ｄへ、オンであれば第２バッファ１３ｅへ、書き込まれる。
【００４０】
まず、２バイトで構成される初期値カウンタ１３ｃの値を２バイトの内部レジスタ１１ｂへ書き込む（Ｓ４１）。内部レジスタ１１ｂの値を１加算し（Ｓ４２）、加算後の内部レジスタ１１ｂの値が「６３１」以上であるか否か、即ち、乱数カウンタ１３ａの更新範囲の値を超えている否かを調べる（Ｓ４３）。加算後の内部レジスタ１１ｂの値が「６３１」以上であれば（Ｓ４３：Ｙｅｓ）、乱数カウンタ１３ａの更新範囲の値を超えているので、内部レジスタ１１ｂの値を「０」クリアする（Ｓ４４）。一方、加算後の内部レジスタ１１ｂの値が「６３０」以下であれば（Ｓ４３：Ｎｏ）、乱数カウンタ１３ａの更新範囲内の値であるので、Ｓ４４の処理をスキップして、Ｓ４５の処理へ移行する。Ｓ４５の処理では、更新された内部レジスタ１１ｂの値を初期値カウンタ１３ｃへ書き込んで更新する。
【００４１】
初期値カウンタ１３ｃの更新後は、バッファフラグ１３ｆがオンされているか否かをチェックする（Ｓ４６）。バッファフラグ１３ｆがオフされていれば（Ｓ４６：オフ）、前回の初期値カウンタ更新処理では、更新後の初期値カウンタ１３ｃの値が第２バッファ１３ｅへ書き込まれたので、更新後の初期値カウンタ１３ｃの値と等しい内部レジスタ１１ｂの値を第１バッファ１３ｄへ書き込む（Ｓ４７）。一方、バッファフラグ１３ｆがオンされていれば（Ｓ４６：オン）、前回の初期値カウンタ更新処理では、更新後の初期値カウンタ１３ｃの値が第１バッファ１３ｄへ書き込まれたので、今回は内部レジスタ１１ｂの値を第２バッファ１３ｅへ書き込む（Ｓ４８）。
【００４２】
第１又は第２バッファ１３ｄ，１３ｅへ更新後の初期値カウンタ１３ｃの値を書き込んだ後は、その値が正常に書き込まれたバッファ１３ｄ，１３ｅを指し示すために、バッファフラグ１３ｆを反転し（Ｓ４９）、この初期値カウンタ更新処理を終了する。即ち、Ｓ４９の処理により、更新後の初期値カウンタ１３ｃの値が第１バッファ１３ｄへ書き込まれた場合には、バッファフラグ１３ｆはオンされ、第２バッファ１３ｅへ書き込まれた場合には、バッファフラグ１３ｆはオフされる。
【００４３】
前記した通り、この初期値カウンタ更新処理は、リセット割込処理において、次のリセット割込が発生するまでの残余時間の間に繰り返し実行される（Ｓ２１）。このため、ＣＰＵ１１の内部レジスタ１１ｂからＲＡＭ１３のワークへ２バイトの書き込みが行われるＳ４５，Ｓ４７，Ｓ４８の各処理では、１バイトの書き込み後であって２バイトの書き込み完了前に、次のリセット割込が発生する場合がある。リセット割込は、割込の優先順位が最も高く、割込処理の開始を禁止できないノンマスカブルな割込であるので、かかる場合には、２バイトの書き込みが完了されないまま、即ち、２バイトのうち１バイトのみが書き込まれたまま、初期値カウンタ更新処理がその処理（Ｓ４５，Ｓ４７，Ｓ４８）の途中で強制終了され、図３のＳ１の処理が実行される。従って、かかる場合には、初期値カウンタ１３ｃ（Ｓ４５）、第１バッファ１３ｄ（Ｓ４７）又は第２バッファ１３ｅ（Ｓ４８）のいずれかの値は、２バイトのうち１バイトのみが書き込まれた書き込み途中の値になって、その値が乱数カウンタ１３ａの更新の範囲外の値になってしまうことがある。
【００４４】
しかしながら、初期値カウンタ１３ｃの値が乱数カウンタ１３ａの更新範囲外の値となっても、その初期値カウンタ１３ｃの値がそのまま乱数カウンタ１３ａの更新の初期値として使用されることはない。また、初期値カウンタ１３ｃの値が乱数カウンタ１３ａの更新範囲外の値であると、その値は「６３１（２７７ｈ）」以上であるので、次回の初期値カウンタ更新処理において、「０」クリアされ（Ｓ４３：Ｙｅｓ，Ｓ４４）、乱数カウンタ１３ａの更新の範囲内の値に戻される。よって、初期値カウンタ１３ｃの値が乱数カウンタ１３ａの更新範囲外の値となっても、乱数カウンタ１３ａの更新の初期値を本来の更新の範囲外の値としてしまうことはない。
【００４５】
また、第１又は第２バッファ１３ｄ，１３ｅへ、内部レジスタ１１ｂの２バイトの値が正常に書き込まれず、即ち、２バイトのうち１バイトのみが書き込まれて、第１又は第２バッファ１３ｄ，１３ｅのいずれかの値が乱数カウンタ１３ａの更新範囲外の値となったとしても、その値は、後述する図５の乱数更新処理（Ｓ６）において、乱数カウンタ１３ａの更新の初期値として使用されない。よって、乱数カウンタ１３ａの更新の初期値を本来の更新の範囲外の値としてしまうことはないのである。この点について、図５を参照して説明する。
【００４６】
図５は、乱数更新処理のフローチャートである。乱数更新処理（Ｓ６）では、ＣＰＵ１１の内部レジスタ１１ｂを介して、乱数カウンタ１３ａの値を「０〜６３０（０〜２７６ｈ）」の範囲内で「＋１」ずつ更新すると共に、制御部Ｃで使用される他の乱数の更新を行っている。
【００４７】
まず、乱数カウンタ１３ａの値を内部レジスタ１１ｂへ書き込む（Ｓ５１）。内部レジスタ１１ｂの値を１加算し（Ｓ５２）、加算後の内部レジスタ１１ｂの値が「６３１」以上であるか否か、即ち、乱数カウンタ１３ａの更新範囲の値を超えている否かを調べる（Ｓ５３）。加算後の内部レジスタ１１ｂの値が「６３１」以上であれば（Ｓ５３：Ｙｅｓ）、更新範囲の値を超えているので、内部レジスタ１１ｂの値を「０」クリアする（Ｓ５４）。一方、加算後の内部レジスタ１１ｂの値が「６３０」以下であれば（Ｓ５３：Ｎｏ）、更新範囲内の値であるので、Ｓ５４の処理をスキップして、Ｓ５５の処理へ移行する。
【００４８】
Ｓ５５の処理では、更新後の内部レジスタ１１ｂの値と初期値メモリ１３ｂの値とが比較される。初期値メモリ１３ｂには乱数カウンタ１３ａの更新の初期値が記憶されているので、両値が等しい場合には（Ｓ５５：Ｙｅｓ）、乱数カウンタ１３ａの更新は一回り終了したということである。よって、かかる場合には、バッファフラグ１３ｆがオンされているか否かをチェックし（Ｓ５６）、オンされていれば（Ｓ５６：オン）、初期値カウンタ１３ｃの正常な値は第１バッファ１３ｄに記憶されているので、その場合には第１バッファ１３ｄの値を内部レジスタ１１ｂへ書き込む（Ｓ５７）。一方、バッファフラグ１３ｆがオフされていれば（Ｓ５６：オフ）、初期値カウンタ１３ｃの正常な値は第２バッファ１３ｅに記憶されているので、その場合には第２バッファ１３ｅの値を内部レジスタ１１ｂへ書き込むのである（Ｓ５８）。第１又は第２バッファ１３ｄ，１３ｅの値を内部レジスタ１１ｂへ書き込んだ後は、その内部レジスタ１１ｂの値を初期値メモリ１３ｂ及び乱数カウンタ１３ａへ書き込んで（Ｓ５９，Ｓ６０）、乱数カウンタ１３ａの更新の初期値を変更する。
【００４９】
一方、更新後の内部レジスタ１１ｂの値と初期値メモリ１３ｂの値とが等しくない場合には（Ｓ５５：Ｎｏ）、乱数カウンタ１３ａの更新は未だ一回り終了していないので、Ｓ５６からＳ５９の処理をスキップして、Ｓ５２からＳ５４の処理で更新された内部レジスタ１１ｂの値を乱数カウンタ１３ａへ書き込み（Ｓ６０）、乱数カウンタ１３ａの更新を行う。その後は、制御部Ｃで使用される他の乱数の更新処理を行って（Ｓ６１）、この乱数更新処理を終了する。
【００５０】
このように乱数カウンタ１３ａの更新の初期値には、バッファフラグ１３ｆによって示されるバッファ１３ｄ，１３ｅの値が使用される。図４で説明したように、バッファフラグ１３ｆは、更新後の初期値カウンタ１３ｃの値が第１バッファ１３ｄへ正常に書き込まれた後で、即ち、２バイトとも書き込まれた後でオンされ、第２バッファ１３ｅへ正常に書き込まれた後でオフされる（Ｓ４９）。第１および第２バッファ１３ｄ，１３ｅへの初期値カウンタ１３ｃの値の書き込みは交互に行われるので、バッファフラグ１３ｆによって示されるバッファ１３ｄ，１３ｅには、初期値カウンタ１３ｃの正常な値が記憶されている。よって、バッファフラグ１３ｆによって示されるバッファ１３ｄ，１３ｅの値は、乱数カウンタ１３ａの更新範囲内の値に維持されているので、かかる値を乱数カウンタ１３ａの更新の初期値として使用することにより、乱数カウンタ１３ａの更新の初期値を本来の更新範囲内の値で変更することができる。
【００５１】
なお、上記実施例において、請求項１記載の割込処理としてはノンマスカブルなリセット割込処理が該当する。また、更新手段としては図５の乱数更新処理（Ｓ６）のＳ５１からＳ５４及びＳ６０の処理が該当し、変更手段としてはＳ５６からＳ６０の処理が該当する。
【００５２】
以上、実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【００５３】
例えば、本実施例では、更新後の初期値カウンタ１３ｃの値の第１および第２バッファ１３ｄ，１３ｅへの書き込みは、１回の初期値カウンタ更新処理毎に、いずれか一方のバッファ１３ｄ，１３ｅへ交互に行われた。しかし、これに代えて、初期値カウンタ更新処理毎に、更新後の初期値カウンタ１３ｃの値を両方のバッファ１３ｄ，１３ｅへ毎回書き込むようにしても良い。本実施例のように、初期値カウンタ更新処理毎に、いずれか一方のバッファ１３ｄ，１３ｅのみへ更新後の初期値カウンタ１３ｃの値を書き込む場合には、毎回両方のバッファ１３ｄ，１３ｅへ書き込む場合に比べて、その処理時間を短くすることができる。よって、その分、リセット割込処理の残余時間の間に繰り返される初期値カウンタ更新処理の実行回数を多くすることができるのである。
【００５４】
以下に本発明の変形例を示す。請求項１記載の弾球遊技機において、前記変更手段は、前記乱数カウンタの値が前記初期値メモリの値と一致する場合に実行されることを特徴とする弾球遊技機１。
【符号の説明】
【００５５】
１３                  制御部のＲＡＭ
１３ａ                乱数カウンタ
１３ｂ                初期値メモリ
１３ｃ                初期値カウンタ
１３ｄ                第１バッファ（バッファ）
１３ｅ                第２バッファ（バッファ）
１３ｆ                バッファフラグ（記憶手段）
Ｃ                    制御部
Ｐ                    パチンコ遊技機（弾球遊技機）
【図１】
2010042303.tif 000003
【図２】
2010042303.tif 000004
【図３】
2010042303.tif 000005
【図４】
2010042303.tif 000006
【図５】
2010042303.tif 000007