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