(57)【要約】【課題】１のカウンタを２以上の制御手段で別々に更新する場合であっても、そのカウンタの値の更新を有効に行うことができる遊技機を提供すること。【解決手段】大当たりを決定する乱数カウンタの初期値をカウントするＩＹレジスタは、ＩＮＴ割込処理（図８参照）において定期的に更新されるだけでなく、メイン処理（図５参照）においては、ＩＮＴ割込処理の残余時間を利用して絶えず「＋１」更新される。かかる残余時間は遊技の制御状態に応じて変化する時間なので、ＩＹレジスタの値を、確実に更新され且つランダム性の付与されたものとして、乱数カウンタの更新の初期値として使用することができる。また、ＩＹレジスタの更新は、メイン処理とＩＮＴ割込処理との２つの異なった処理で行われるが、その更新は１命令で行われるので、両処理の実行タイミングの如何に拘わらず、更新結果を無意味なのもとすることなく、有効に利用することができる。【選択図】図５
2010184137.tif 000002
【特許請求の範囲】
【請求項１】
カウンタと、そのカウンタの値を更新する第１制御手段と、その第１制御手段の実行を中断して制御を実行する第２制御手段と、前記第１及び第２制御手段を有し前記カウンタの値を所定条件下において遊技の制御に使用する制御手段とを備えたことを特徴とする遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パチンコ機やスロットマシンなどに代表される遊技機に関するものである。
【背景技術】
【０００２】
従来、例えばパチンコ機等は、複数種類の図柄を変動表示可能な表示装置を備えており、遊技領域に打ち込まれた球が図柄作動口へ入賞することに基づいて変動表示を開始するように構成されている。そして、ある種のパチンコ機では、この変動表示が予め定められた図柄の組み合わせと一致すると、大当たりとなって、遊技者に所定の遊技価値が付与される。
【０００３】
ところで、例えば、表示装置で行われる変動表示、具体的には、例えば図柄停止前のリーチ演出内容や大当たり図柄を含めた停止図柄の種類等は、球が図柄作動口へ入賞するタイミングによって決定される。即ち、１カウントずつ更新される所謂乱数カウンタを備え、球が図柄作動口へ入賞したタイミングで、その乱数カウンタの値を読み出して、読み出された乱数カウンタの値に基づいて演出内容等を決定するのである。
かかる乱数カウンタの値にランダム性を持たせるため、その乱数カウンタの値の更新またはその乱数カウンタの更新の初期値をカウントするカウンタの値の更新は、１の制御ルーチンだけでなく、２以上の制御ルーチンで行うようにしている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、１のカウンタの更新を２以上の制御ルーチンで行う場合、１の制御ルーチンでカウンタを更新している最中に別の制御ルーチンが実行されてそのカウンタの更新が行われると、別の制御ルーチンによって更新されたカウンタの値は、その別の制御ルーチンの実行後に実行される１の制御ルーチンによって書き替えられてしまうので、別の制御ルーチンで行ったカウント値の更新が無意味なものとなるという問題点がある。
本発明は、上述した問題点を解決するためになされたものであり、１のカウンタを２以上の制御手段で別々に更新する場合であっても、そのカウンタの値の更新を有効に行うことができる遊技機を提供することを目的としている。
【課題を解決するための手段】
【０００５】
この目的を達成するために請求項１記載の遊技機は、カウンタと、そのカウンタの値を更新する第１制御手段と、その第１制御手段の実行を中断して制御を実行する第２制御手段と、前記第１及び第２制御手段を有し前記カウンタの値を所定条件下において遊技の制御に使用する制御手段とを備え、前記第１制御手段は、前記カウンタの値を１命令で更新するものであり、前記第２制御手段は、前記第１制御手段とは別に前記カウンタの値を更新すると共に、そのカウンタの値を適正な更新範囲内の値に補正する補正手段を備えている。なお、「１命令」とは、その命令の実行途中では割込などの他の処理が実行できない範囲の命令単位をいい、例えば、アセンブラ言語の１命令をいう。
【発明の効果】
【０００６】
本発明の遊技機によれば、１のカウンタは、第１制御手段と、その第１制御手段の実行を中断して実行される第２制御手段との２つの制御手段によって更新される。第２制御手段は、第１制御手段の実行タイミングに拘わらず、第１制御手段の実行を中断して制御を実行し、その制御の中でカウンタの更新を行う。ここで、第１制御手段はカウンタの値を１命令で更新するので、第２制御手段が如何なるタイミングで実行されても、カウンタの更新途中で第２制御手段が実行されることはない。よって、１のカウンタを第１制御手段と第２制御手段との２つの制御手段で別々に更新する場合であっても、そのカウンタの値の更新を有効に行うことができるという効果がある。また、第２制御手段は、カウンタの値を適正な更新範囲内の値に補正する補正手段を備えているので、第１制御手段によるカウンタの値の更新がカウンタの適正な更新範囲を超えるものとなっても、第２制御手段の実行により、カウンタの値を適正な更新範囲内の値に補正することができるという効果がある。なお、第２制御手段によるカウンタの値の更新方式は、必ずしも第１制御手段の更新方式と同一である必要はなく、異なった更新方式であっても良い。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施例であるパチンコ機の正面図である。
【図２】パチンコ機の電気的構成を示したブロック図である。
【図３】ＭＰＵの電気的構成を示したブロック図である。
【図４】ＮＭＩ割込処理を示すフローチャートである。
【図５】メイン処理を示すフローチャートである。
【図６】ＲＡＭクリア及び初期化処理を示すフローチャートである。
【図７】ＩＹレジスタ補正処理を示すフローチャートである。
【図８】ＩＮＴ割込処理を示すフローチャートである。
【図９】乱数更新処理を示すフローチャートである。
【図１０】第２実施例のＩＹレジスタ補正処理を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の好ましい実施例について、添付図面を参照して説明する。本実施例では、遊技機の一例として弾球遊技機の一種であるパチンコ機、特に、第１種パチンコ遊技機を用いて説明する。なお、本発明を第３種パチンコ遊技機や他の遊技機に用いることは、当然に可能である。
【０００９】
図１は、本実施例のパチンコ機Ｐの遊技盤の正面図である。遊技盤１の周囲には、球が入賞することにより所定個数の球が払い出される複数の入賞口２が設けられている。また、遊技盤１の中央には、複数種類の識別情報としての図柄（特別図柄）などを表示する液晶ディスプレイ（以下単に「ＬＣＤ」と略す）３が設けられている。このＬＣＤ３の表示画面は縦方向に３分割されており、３分割された各表示領域において、それぞれ上から下へ上下方向にスクロールしながら図柄の変動表示が行われる。
【００１０】
ＬＣＤ３の上方には、表面に「○」と「×」との普通図柄が表示された２つのＬＥＤ６ａ，６ｂで構成された普通図柄表示装置６が配設されている。この普通図柄表示装置６では、遊技領域に打ち込まれた球がＬＣＤ３の両側に配設されたゲート７を通過した場合に、「○」と「×」とのＬＥＤ６ａ，６ｂを交互に点灯させる変動表示が行われる。かかる変動表示が「○」のＬＥＤ６ａで終了した場合には、当たりとなって普通電動役物４が所定時間（例えば０．５秒）開放される。
【００１１】
また、ＬＣＤ３の下方には、図柄作動口（第１種始動口、普通電動役物）４が設けられており、球がこの図柄作動口４へ入賞することにより、前記したＬＣＤ３の変動表示が開始される。図柄作動口４の下方には、特定入賞口（大入賞口）５が設けられている。この特定入賞口５は、ＬＣＤ３の変動後の表示結果が予め定められた図柄の組み合わせの１つと一致する場合に、大当たりとなって、球が入賞しやすいように所定時間（例えば、３０秒経過するまで、或いは、球が１０個入賞するまで）開放される入賞口である。
【００１２】
この特定入賞口５内には、Ｖゾーン５ａが設けられており、特定入賞口５の開放中に、球がＶゾーン５ａ内を通過すると、継続権が成立して、特定入賞口５の閉鎖後、再度、その特定入賞口５が所定時間（又は、特定入賞口５に球が所定個数入賞するまで）開放される。この特定入賞口５の開閉動作は、最高で１６回（１６ラウンド）繰り返し可能にされており、開閉動作の行われ得る状態が、いわゆる所定の遊技価値が付与された状態（特別遊技状態）である。
【００１３】
なお、第３種パチンコ遊技機において所定の遊技価値が付与された状態（特別遊技状態）とは、ＬＣＤ３の変動後の表示結果が予め定められた図柄の組み合わせの１つと一致する場合に、特定入賞口が所定時間開放されることをいう。この特定入賞口の開放中に、球がその特定入賞口内へ入賞すると、特定入賞口とは別に設けられた大入賞口が所定時間、所定回数開放される。
【００１４】
図２は、かかるパチンコ機Ｐの電気的構成を示したブロック図である。パチンコ機Ｐの主制御基板Ｃには、演算装置である１チップマイコンとしてのＭＰＵ１１が搭載されている。このＭＰＵ１１の詳細については、図３を参照しつつ後述する。
【００１５】
図２に示すように、ＭＰＵ１１は、払出モータ１７によって賞球や貸球の払出制御を行う払出制御基板Ｈと、前述した特別図柄及び普通図柄の変動表示の制御を行う表示用制御基板Ｄと、第１種始動口スイッチ２０と、そのほか、他の入出力装置２１とにそれぞれ接続されている。また、表示用制御基板Ｄは、スピーカ１８から効果音の出力制御を行うと共にＬＥＤや各種ランプ１９の点灯制御を行う音声ランプ制御基板Ｓと接続され、主制御基板ＣのＭＰＵ１１から送信される制御用コマンドに基づいて、かかる音声ランプ制御基板Ｓの動作を制御する。
【００１６】
第１種始動口スイッチ２０は、図柄作動口（第１種始動口）４（図１参照）に入賞した球を検出するためのスイッチであり、図柄作動口４の近傍に設けられている。第１種始動口スイッチ２０によって球が検出されると、払出モータ１７が作動して図示しない払出装置によって５個の賞球が払い出される。また、第１種始動口スイッチ２０によって球が検出された場合には、乱数カウンタ５４ｂ（図３参照）の値が取得され、その取得された値がユーザワークＲＡＭ５４の所定の領域に書き込まれて記憶される。
【００１７】
電源基板３０は、パチンコ機Ｐの各部に電力を供給するための電源部３０ａと、停電監視回路３０ｂと、クリアスイッチ３０ｃとを備えている。停電監視回路３０ｂは、停電等の発生による電源断時に、主制御基板ＣのＭＰＵ１１のＮＭＩ端子へ停電信号３１を出力するための回路である。停電監視回路３０ｂは、電源部３０ａから出力される最も大きい電圧である直流安定２４ボルトの電圧を監視し、この電圧が２２ボルト未満になった場合に停電（電源断）の発生と判断して、停電信号３１を主制御基板Ｃ及び払出制御基板Ｈへ出力するように構成されている。この停電信号３１の出力によって、主制御基板Ｃ及び払出制御基板Ｈは、停電の発生を認識し、停電時処理（主制御基板Ｃの場合は図４のＮＭＩ割込処理）を実行する。なお、電源部３０ａは、直流安定２４ボルトの電圧が２２ボルト未満になった後においても、かかる停電時処理の実行に充分な時間の間、制御系の駆動電圧である５ボルトの出力を正常値に維持するように構成されているので、主制御基板Ｃ及び払出制御基板Ｈは、停電時処理を正常に実行することができるのである。
【００１８】
クリアスイッチ３０ｃは、主制御基板ＣのユーザワークＲＡＭ５４および払出制御基板ＨのＲＡＭ（図示せず）にバックアップされているデータをクリアするためのスイッチであり、押しボタンタイプのスイッチで構成されている。このクリアスイッチ３０ｃが押下された状態でパチンコ機Ｐの電源が投入されると（停電解消による電源入を含む）、主制御基板Ｃおよび払出制御基板Ｈへクリア信号３２がそれぞれ出力され、そのクリア信号３２を契機として、それぞれのユーザワークＲＡＭ５４のデータがクリアされる。なお、この場合、乱数カウンタ５４ｂの値はクリアされるので、かかる乱数カウンタ５４ｂの更新の初期値は、ＩＤ用ＲＡＭ６４に記憶される固有コードメモリ６４ａの値（固有コード）を利用してパチンコ機毎に異なる値に設定される。
【００１９】
次に図３を参照して、主制御基板Ｃに搭載されるワンチップマイコンとしてのＭＰＵ１１について説明する。図３は、ＭＰＵ１１の電気的構成を示すブロック図である。同図に示すように、ＭＰＵ１１には、中央処理装置（ＣＰＵ）５１を中心にして、プログラムＲＯＭ５２、ＨＷパラメータ５３、ユーザワークＲＡＭ５４、内部Ｉ／Ｏブロック５５、Ｉ／Ｏポート５６等が備えられており、これらは互いにバス５７によって接続されている。また、これらはバスモニタ５８を介して管理ブロック５９に接続されている。ＣＰＵ５１は、アキュームレータ（Acc）をはじめ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌの各レジスタ、ＩＸ、ＩＹの１６ビットのインデックスレジスタ、フラグレジスタ等の各レジスタを備えている（図３には、ＩＹレジスタ５１ａのみ図示している）。
【００２０】
本実施例においてプログラムＲＯＭ５２は、ワンタイム書き込み型のＥＰＲＯＭにより構成され、ここに所定の制御プログラムや初期データが予め記憶されている。図４から図９に示すフローチャートのプログラムは、制御プログラムの一部としてこのプログラムＲＯＭ５２内に記憶されている。ＣＰＵ５１は、Ｉ／Ｏポート５６を介して入力されてくる各種信号等に基づき前記プログラムＲＯＭ５２の制御プログラム等に従って各種演算処理を実行する。ＨＷパラメータ５３は書き換え可能な不揮発性のメモリであるＥＥＰＲＯＭによって構成されており、クロック等に関する各種設定事項等が記憶されている。
【００２１】
ユーザワークＲＡＭ５４はＣＰＵ５１による演算結果等の各種データを一時的に記憶するものであり、バックアップエリア５４ａと、乱数カウンタ５４ｂと、現初期値メモリ５４ｃとを備えている。また、ユーザワークＲＡＭ５４には、パチンコ機Ｐの電源のオフ後においても、後述する電源基板３０からバックアップ電圧が供給されており、データを保持（バックアップ）することができるように構成されている。なお、コンデンサや電池等を使用してユーザワークＲＡＭ５４のデータをバックアップするように構成しても良い。
【００２２】
バックアップエリア５４ａは、停電などの発生により電源が切断された場合、電源の再入時に、パチンコ機Ｐの状態を電源切断前の状態に復帰させるため、電源切断時（停電発生時を含む。以下、同様）のスタックポインタや、各レジスタ、Ｉ／Ｏ等の値を記憶しておくためのエリアである。ＩＹレジスタ５１ａの値も電源断時にこのバックアップエリアに記憶される。このバックアップエリア５４ａへの書き込みは、ＮＭＩ割込処理（図４参照）によって電源切断時に実行され、逆にバックアップエリア５４ａに書き込まれた各値の復帰は、電源入時（停電解消による電源入を含む。以下、同様）の初期化処理（図５参照）において実行される。なお、ＭＰＵ１１のＮＭＩ（Non Maskable Interrupt）端子（ノンマスカブル割込端子）には、停電等の発生による電源断時に、後述する停電監視回路３０ｂから出力される停電信号３１が入力されるように構成されており、停電の発生により、図４の停電時処理（ＮＭＩ割込処理）が即座に実行される。
【００２３】
乱数カウンタ５４ｂは、大当たりの発生を決定するためのカウンタであり、後述する乱数更新処理（図９参照）によって、「０」〜「６２９」の範囲で２ｍｓ毎に１カウントずつ加算方向に更新される。この乱数カウンタ５４ｂの値は、遊技盤１に打ち込まれた球が図柄作動口４へ入賞して後述する第１種始動口スイッチ２０で検出されたとき（始動入賞時）に取得され、このとき取得された乱数カウンタ５４ｂの値が例えば「７」または「３１５」であった場合には、大当たりが発生する。大当たりが発生すると、大当たりコマンドが主制御基板Ｃから後述する表示用制御基板Ｄへ送信され、表示用制御基板Ｄは、その大当たりコマンドに基づいてＬＣＤ３の変動表示と音声ランプ制御基板Ｓの制御とを行う。
【００２４】
なお、乱数カウンタ５４ｂの値は、上述したように、電源基板３０から供給されるバックアップ電圧により、電源のオフ後においても保持（バックアップ）されている。よって、電源投入時には、そのバックアップされた値から乱数カウンタ５４ｂの更新を再開することができるので、乱数カウンタ５４ｂの更新の初期値が固定値となることを回避して、乱数カウンタ５４ｂのランダム性を確保することができる。
【００２５】
一方、バックアップ不良等により乱数カウンタ５４ｂの値が適正に保持されなかった場合や、クリアスイッチ３０ｃの押下により乱数カウンタ５４ｂの値がクリアされた場合には、図６に示すＲＡＭクリア及び初期化処理において、後述する固有コードメモリ６４ａの値を利用して各パチンコ機毎に異なる初期値が生成される。よって、乱数カウンタ５４ｂの値がクリア等された場合においても、乱数カウンタ５４ｂの更新の初期値が「０」等の固定値となることを回避して、乱数カウンタ５４ｂのランダム性が低下すること防止することができる。例えば、不正に乱数カウンタ５４ｂの値をクリアして大当たりを不当に発生させる不正行為に対しては、クリア後の乱数カウンタ５４ｂの更新の初期値を各パチンコ機毎に異ならせることができるので、その初期値の把握を困難なものとして、かかる不正行為を抑制することができる。
【００２６】
なお、固有コードメモリ６４ａの値に基づいて生成されるランダムな値（初期値）は、乱数カウンタ５４ｂの値がクリア等された後の１周期目（最初）の更新の初期値にのみ使用され、２周期目以降の更新の初期値には、ＩＹレジスタ５１ａの値が使用される。
【００２７】
現初期値メモリ５４ｃは、更新中の乱数カウンタ５４ｂの初期値を記憶するためのメモリであり、ＣＰＵ５１のＩＹレジスタ５１ａは、乱数カウンタ５４ｂの次回の更新の初期値を記憶するためのメモリ（レジスタ）である。現初期値メモリ５４ｃ及びＩＹレジスタ５１ａは、いずれも乱数カウンタ５４ｂの更新範囲と同じ「０」〜「６２９」の範囲が適正な更新範囲内の値とされている。ＩＹレジスタ５１ａについては、ＩＮＴ割込処理（図８参照）のみならず、メイン処理（図５参照）においても更新されており、メイン処理においては適正な更新範囲を考慮することなく、１カウントずつアップされるので、ＩＹレジスタ５１ａは、ＩＮＴ割込処理の乱数更新処理（Ｓ５２、図９参照）において、適正な更新範囲内の値に補正された後に、乱数カウンタ５４ｂの次回の更新の初期値として使用される。また、ＩＹレジスタ５１ａの更新は、メイン処理のＳ２１の処理において繰り返し実行される。かかる処理は、定期的に実行されるＩＮＴ割込処理の制御の残余時間において実行される。残余時間は、遊技の状態に応じて変化する不定な時間であるため、ＩＹレジスタ５１ａの値は、ランダムに更新される。よって、かかるＩＹレジスタ５１ａの値を乱数カウンタ５４ｂの更新の初期値として使用することにより、乱数カウンタ５４ｂの更新の初期値をランダムに変更することができる。
【００２８】
内部Ｉ／Ｏブロック５５は、カウンタ・タイマ、割込みコントローラ及び高速ＨＷカウンタ等の機能ブロックにより構成されている。バスモニタ５８は、データの入出力を管理するものであり、このバスモニタ５８によって、ＣＰＵ５１の演算データ等が管理ブロック５９へ出力され、また、管理ブロック５９の内容（例えば、固有コードメモリ６４ａの値）がＣＰＵ５１の要求に応じてユーザワークＲＡＭ５４等へ出力される。
【００２９】
管理ブロック５９は、独立記憶部を構成し、検査ポート６１並びにミラードＲＡＭ６２、ステータスＲＡＭ６３及びＩＤ用ＲＡＭ６４等を備えている。検査ポート６１は書込みエラーや、シーケンス異常等を検出可能となっており、ミラードＲＡＭ６２はユーザワークＲＡＭ５４のデータをミラーリング（複写）するものである。また、ステータスＲＡＭ６３には、ＨＷパラメータ５３の設定事項等が書き込まれる。
【００３０】
ＩＤ用ＲＡＭ６４には、固有コードメモリ６４ａが設けられており、この固有コードメモリ６４ａには、ＭＰＵ１１に固有（即ち、パチンコ機固有）の識別番号（識別情報）としての値（固有コード）が書き込まれている。この固有コードメモリ６４ａの値は、パチンコ機Ｐのセキュリティー情報としての役割を担っており、各ＭＰＵ毎に異なるユニークな番号で構成されている。ＭＰＵ１１の検査ポート６１には、モジュラージャック（図示せず）が接続可能に構成されており、このモジュラージャックを介してチェッカー（図示せず）をＭＰＵ１１に接続することができる。よって、固有コードメモリ６４ａの値を外部から読み出して真贋の照合をすることができるので、ＭＰＵ１１のセキュリティーチェックを行うことができる。従って、かかる固有コードメモリ６４ａの値等を不正に書き換えたり、ＭＰＵ１１を不正なＭＰＵに交換するという不正行為を実行困難なものとして、その不正行為を抑制することができる。
【００３１】
この固有コードメモリ６４ａの値（固有コード）は、図６のＲＡＭクリア及び初期化処理において読み出され、乱数カウンタ５４ｂの更新の初期値を生成する際に使用される。上述したように、固有コードメモリ６４ａの値は、パチンコ機毎に異なるユニークな番号から構成されているので、この固有コードメモリ６４ａの値を利用して生成される乱数カウンタ５４ｂの更新の初期値は、パチンコ機毎に異なる不定な値となり、その結果、乱数カウンタ５４ｂのランダム性を不当に低下させて大当たりを発生させる等の不正行為を抑制することができる。なお、ＩＤ用ＲＡＭ６４には、固有コードメモリ６４ａの他にパチンコ機Ｐの製造メーカコードや機種コード等を記憶するメモリ（図示せず）も設けられている。
【００３２】
次に、上記のように構成されたパチンコ機Ｐで実行される各処理を、図４から図９の各フローチャートを参照して説明する。図４は、停電の発生等によるパチンコ機Ｐの電源断時に、主制御基板Ｃで実行されるＮＭＩ割込処理を示すフローチャートである。このＮＭＩ割込処理により、停電の発生等による電源断時の主制御基板Ｃの状態がバックアップエリア５４ａに記憶される。
【００３３】
停電の発生等によりパチンコ機Ｐの電源が断されると、停電監視回路３０ｂから停電信号３１が主制御基板ＣのＭＰＵ１１のＮＭＩ（Non Maskable Interrupt）端子へ出力される。すると、ＭＰＵ１１は、実行中の制御を中断して、図４のＮＭＩ割込処理を開始する。停電信号３１が出力された後所定時間は、主制御基板Ｃの処理が実行可能なように電源基板３０の電源部３０ａから電力供給がなされており、この所定時間内にＮＭＩ割込処理が実行される。
【００３４】
ＮＭＩ割込処理では、まず、各レジスタおよびＩ／Ｏ等の値をスタックエリアへ書き込み（Ｓ１）、次に、スタックポインタの値をバックアップエリア５４ａへ書き込んで退避する（Ｓ２）。更に、停電発生情報をバックアップエリア５４ａへ書き込んで（Ｓ３）、停電の発生等による電源断時の状態を記憶する。その後、その他停電処理を実行した後（Ｓ４）、電源が完全に断して処理が実行できなくなるまで、処理をループする。
【００３５】
図５は、パチンコ機Ｐの電源入時に主制御基板Ｃで実行されるメイン処理のフローチャートである。メイン処理では、バックアップが有効であれば、バックアップエリア５４ａに記憶された各データを元の状態に戻し、遊技の制御を電源が断される前の状態から続行する。一方、バックアップが有効でなかったり、或いは、バックアップが有効であっても電源入時にクリアスイッチ３０ｃが押下された場合には、ＲＡＭクリア及び初期化処理（Ｓ１８）を実行して、パチンコ機Ｐを初期化する。
【００３６】
まず、割込を禁止し（Ｓ１１）、スタックポインタを設定する（Ｓ１２）。クリアスイッチ３０ｃがオンされているか否かを確認し（Ｓ１３）、オンされていなければ（Ｓ１３：Ｎｏ）、バックアップが有効であるか否かを確認する（Ｓ１４）。この確認は、ユーザワークＲＡＭ５４の所定のエリアに書き込まれたキーワードが正しく記憶されているか否かにより判断する。キーワードが正しく記憶されていればバックアップは有効であり、逆に、キーワードが正しくなければバックアップデータは破壊されているので、そのバックアップは有効ではない。バックアップが有効であれば（Ｓ１４：Ｙｅｓ）、処理をＳ１５へ移行して、主制御基板Ｃの各状態を電源断前の状態に復帰させる。即ち、バックアップエリア５４ａからスタックポインタの値を読み出して、これをスタックポインタへ書き込み、電源断前（停電前）の状態、即ちＮＭＩ割込発生前の状態に戻す（Ｓ１５）。次に、スタックポインタの値を戻した後のスタックエリア、即ちバックアップエリア５４ａへ退避した各レジスタやＩ／Ｏ等のデータをそのバックアップエリア５４ａから読み出して、これら各データを元のレジスタやＩ／Ｏ等へ書き込み（Ｓ１６）、その後、割込の状態を停電発生時に実行される図４の処理で記憶しておいた電源断前（停電前）の状態、即ちＮＭＩ割込発生前の状態に戻し（Ｓ１７）、ＮＭＩ割込リターンを実行して処理を電源断前に実行していたところへ戻して、制御を電源断前の状態から続行する。
【００３７】
一方、クリアスイッチ３０ｃがオンされていたり（Ｓ１３：Ｙｅｓ）、或いはバックアップが有効でなければ（Ｓ１４：Ｎｏ）、ＲＡＭクリア及び初期化処理を実行する（Ｓ１８）。その後、タイマ割込等の各割込の設定を行って（Ｓ１９）、割込が発生可能な状態にした上で、割込を許可する（Ｓ２０）。割込の許可後は、図８のＩＮＴ割込処理の実行の合間（ＩＮＴ割込処理の実行の残余時間）に、Ｓ２１及びＳ２２の処理を繰り返し実行する。
【００３８】
Ｓ２１の処理は、ＩＹレジスタ５１ａのインクリメント処理（Ｓ２１）であり、この処理の実行の度にＩＹレジスタ５１ａの値は「＋１」される。Ｓ２１の処理は、ＭＰＵ１１の１命令で実行されるので、その実行途中でＩＮＴ割込処理などの他の割込処理が実行されることはない。よって、Ｓ２１の処理によるＩＹレジスタ５１ａの値（カウント値）の更新を途中で途切れさせること無く完了することができる。また、かかる更新は、ＩＹレジスタ５１ａの値を他のレジスタ（ＡＬＵ等のソフト制御の範疇外のものは除く）やメモリに移動した上で、ＩＹレジスタ５１ａの値の更新を行い、その更新後の値をＩＹレジスタ５１ａへ戻して、該更新を完了するのではないので、この点においても、例えＩＹレジスタ５１ａの更新処理が並行して行われても、ＩＹレジスタ５１ａの値を的確に更新することができる。ＩＹレジスタ５１ａは、１６ビットレジスタで構成されている。よって、ＩＹレジスタ５１ａの値が「０ＦＦＦＦｈ」の状態でＳ２１の処理が実行されると、ＩＹレジスタ５１ａの値は「０」となる。
【００３９】
ここで、ＩＹレジスタ５１ａは、大当たりを決定するための乱数カウンタ５４ｂの更新の初期値を記憶するレジスタとして使用される（乱数カウンタ５４ｂの更新の初期値をカウントするカウンタとして使用される）。また、その他ランダム処理（Ｓ２２）は、遊技の制御に当たって所定のデータにランダム性を持たせるための更新処理である。上述する通りこれらの処理は、割込の実行されない不定な時間を利用して繰り返し実行されるので、これらの処理の対象となるデータは、結果的にランダムな値となる。よって、Ｓ２０およびＳ２１の各処理を繰り返し実行することにより、乱数カウンタの更新の初期値等をランダムな値にすることができる。
【００４０】
なお、本実施例の乱数カウンタ５４ｂは「０〜６２９」の範囲で更新されるので、ＩＮＴ割込処理の実行によってＩＹレジスタ５１ａの値が最大値である「６２９」に更新されている場合にも、Ｓ２１の処理によってＩＹレジスタ５１ａの値が「０」に更新されるまでに、次のＩＮＴ割込処理が実行されるように、ＩＮＴ割込処理の最短実行時間とＳ２１及びＳ２２の合計最短実行時間とに基づいて、ＩＮＴ割込処理の実行間隔が決められている。即ち、「６２９」から「０ＦＦＦＦｈ（＝６５５３５）」になるまでの６４９０６回のＳ２１及びＳ２２の処理が実行される迄の間に、遅くとも次のＩＮＴ割込処理が実行されるように、本実施例ではＩＮＴ割込処理の実行間隔は２ｍｓとされている。このように構成することにより、ＩＹレジスタ５１ａの値を更新範囲のチェックをせずに繰り返し「＋１」更新しても、ＩＮＴ割込処理内で実行されるＩＹレジスタ補正処理（図７参照）によって、その値を適正な更新範囲内の値に補正することができる。よって、メイン処理でのＩＹレジスタ５１ａの更新を無意味なものとすることなく、有効に利用することができる。
【００４１】
図６は、主制御基板Ｃのメイン処理の中で実行されるＲＡＭクリア及び初期化処理（Ｓ１８）を示すフローチャートである。この処理は、ユーザワークＲＡＭ５４および各Ｉ／Ｏの値を初期化すると共に、固有コードメモリ６４ａの値（固有コード）を利用して乱数カウンタ５４ｂの更新の初期値を生成することにより、パチンコ機毎に異なる乱数カウンタの５４ｂの更新の初期値を生成する為の処理である。
【００４２】
このＲＡＭクリア及び初期化処理では、まず、ユーザワークＲＡＭ５４の各値を「０」クリアし、ユーザワークＲＡＭ５４および各Ｉ／Ｏ等の初期値を設定する（Ｓ３１）。ここで、従来のパチンコ機では、この「０」クリアされた値を初期値として乱数カウンタの更新を開始していたため、その更新の初期値が固定値（ここでは、「０」）となり、乱数カウンタのランダム性の低下を招いていた。そこで、本実施例のパチンコ機Ｐでは、以下に説明する処理によって乱数カウンタ５４ｂの更新の初期値をランダムに生成し、かかる乱数カウンタ５４ｂのランダム性の低下を防止している。
【００４３】
即ち、Ｓ３１の処理後は、まず、ＩＤ用ＲＡＭ６４の固有コードメモリ６４ａの値をリードして（Ｓ３２）、そのリードした値をＩＹレジスタ５１ａへ書き込む（Ｓ３３）。固有コードメモリ６４ａの値は、上述したように、ＭＰＵ１１に固有のユニークな番号であるので、Ｓ３３では、同一機種のパチンコ機においても、全てのパチンコ機毎に異なる値がＩＹレジスタ５１ａへ書き込まれる。なお、固有コードメモリ６４ａの値が２バイト以上で構成される場合には、本実施例では下位２バイトのデータをＩＹレジスタ５１ａへ書き込むが、２バイト以上の固有コードメモリ６４ａの値を２バイトのデータに加工して、その加工した値をＩＹレジスタ５１ａへ書き込むようにしても良い。また、下位以外の２バイトのデータをＩＹレジスタ５１ａへ書き込むように構成しても良い。
【００４４】
次いで、図７に示すＩＹレジスタ補正処理（Ｓ３４）によって、ＩＹレジスタ５１ａの値を乱数カウンタ５４ｂの適正な更新範囲内の値（本実施例では「０〜６２９」）に加工（補正）する。ＩＹレジスタ５１ａへ書き込まれたデータは、必ずしも乱数カウンタ５４ｂの適正な更新範囲内のデータであるとは限らないからである。
【００４５】
図７に示すように、ＩＹレジスタ補正処理では、まず、ＩＹレジスタ５１ａの値が適正な更新範囲の最大値である「６２９」以下であるか否かを確認する（Ｓ４１）。ＩＹレジスタ５１ａの値が「６３０」以上であれば（Ｓ４１：Ｎｏ）、その値は乱数カウンタ５４ｂの適正な更新範囲の値を超えているので、この場合には、ＩＹレジスタ５１ａの値から更新範囲の最大値＋１である「６３０」を減算する（Ｓ４２）。減算の結果、ＩＹレジスタ５１ａの値が「６２９」以下になっていれば（Ｓ４１：Ｙｅｓ）、ＩＹレジスタ５１ａの値の補正を終了し、このＩＹレジスタ補正処理を終了する。一方、減算してもなおＩＹレジスタ５１ａの値が「６３０」以上であれば（Ｓ４１：Ｎｏ）、ＩＹレジスタ５１ａの値が「６２９」以下になるまで、その値から「６３０」の減算処理を繰り返す。このように、ＩＹレジスタ５１ａの値は、ＩＹレジスタ補正処理（Ｓ３４）によって、乱数カウンタ５４ｂの適正な更新範囲内の値（本実施例では「０〜６２９」）に補正される。
【００４６】
図６に戻って説明する。ＩＹレジスタ補正処理によって、ＩＹレジスタ５１ａの値が適正な更新範囲内の値となると、そのＩＹレジスタ５１ａの値を乱数カウンタ５４ｂ及び現初期値メモリ５４ｃへ書き込んで（Ｓ３５、Ｓ３６）、乱数カウンタ５４ｂ及び現初期値メモリ５４ｃの更新の初期値を設定する。なお、乱数カウンタ５４ｂは、このＳ３５の処理によって設定された値を更新の初期値として、後述する乱数更新処理（Ｓ５２、図９参照）により１周期目の更新を開始する。
【００４７】
このように、乱数カウンタ５４ｂの更新の初期値には、固有コードメモリ６４ａの値（即ち、ＩＹレジスタ５１ａに書き込まれた値）を加工（補正）して生成されたランダムな値が設定される。バックアップ不良等により乱数カウンタ５４ｂの値が適正に保持されなかった場合や、クリアスイッチ３０ｃの押下により乱数カウンタ５４ｂの値がクリアされた場合には、このランダムに生成された初期値から乱数カウンタ５４ｂの更新が開始されるので、かかる乱数カウンタ５４ｂの更新が「０」等の固定値から開始されることを回避して、乱数カウンタ５４ｂのランダム性の低下を抑制することができるのである。
【００４８】
ここで、例えば、主制御基板Ｃと他の基板（例えば、電源基板３０）等との間に、不正な基板（例えば、いわゆる「ぶら下がり基板」等）を取り付けて、その基板から不正に生成した信号（例えば、停電信号３１）を主制御基板Ｃへ出力する不正行為が考えられる。例えば、不正に生成した停電信号を連続的に主制御基板Ｃへ出力して、停電時処理を頻発させると、主制御基板Ｃ（ＭＰＵ１１）は、停電時処理を正常に実行することができなくなり、遊技状態が初期化（ユーザワークＲＡＭ５４が初期化）されてしまう。このようにすることで、乱数カウンタ５４ｂの更新を「０」等の固定値から開始させ、乱数カウンタ５４ｂのランダム性を不当に低下させるのである。
【００４９】
しかしながら、本実施例の遊技機Ｐによれば、乱数カウンタ５４ｂの更新の初期値は、固有コードメモリ６４ａの値（固有コード）に基づいて生成されるため、パチンコ機毎に異なるランダムな値である。よって、不正行為を行う者（不正な基板）は、第１種始動口スイッチ２０の検出信号を不正に生成し、その不正に生成した検出信号を大当たりのタイミングで出力しようとしても、乱数カウンタ５４ｂの値を把握することができないので、大当たりを不正に発生させることができない。従って、いわゆる「ぶら下げ基板」等によって大当たりを不当に発生させる等の不正行為を防止することができるのである。
【００５０】
なお、パチンコ機Ｐを不正に入手して、そのパチンコ機Ｐが備えるＭＰＵ１１の固有コードメモリ６４ａの値（固有コード）を解読すると共に、プログラムＲＯＭ５２に記憶された制御プログラムを解析することにより、乱数カウンタ５４ｂの更新の初期値を取得（把握）することはできる。しかし、この不正に取得した乱数カウンタ５４ｂの更新の初期値は、入手したパチンコ機Ｐ自体でのみ発生する値であり、他のパチンコ機では（パチンコ機毎に固有コードが異なるため）それとは異なる初期値が発生する。そのため、同一機種のパチンコ機においても、各パチンコ機毎に個別に固有コードを解読しなければ不正行為を働くことができず、その結果、かかる不正行為を極めて困難なものとすることができるのである。
【００５１】
図８は、パチンコ機Ｐの主制御基板Ｃにおいて定期的（例えば２ｍｓ毎）に実行されるインターバル割込処理（ＩＮＴ割込処理）のフローチャートである。パチンコ機Ｐの主な制御は、このＩＮＴ割込処理によって実行される。ＩＮＴ割込処理では、まず、特別図柄変動処理（Ｓ５９）や表示・ランプ・効果音データ作成処理（Ｓ６１）などにより、前回のＩＮＴ割込処理で作成されたコマンド等のデータを各ポートへ出力するポート出力処理を実行する（Ｓ５１）。
【００５２】
次に、大当たりを決定するための乱数カウンタ５４ｂの値などを「＋１」更新する乱数更新処理（Ｓ５２、図９を参照しつつ後述する）を実行し、記憶タイマ減算処理を実行する（Ｓ５３）。記憶タイマ減算処理は、大当たり判定の保留球が所定数以上あり、且つ、ＬＣＤ３において図柄の変動表示中である場合に、図柄の変動表示の時間短縮を行うものである。スイッチ監視処理（Ｓ５４）は、読み込まれた各スイッチの状態に応じて、遊技領域へ打ち込まれた球の入賞口２や大入賞口５、図柄作動口４への入賞、ゲート７への通過等に関する処理を行うものである。図柄カウンタ更新処理（Ｓ５５）では、ＬＣＤ３で行われる変動表示の結果、停止表示される図柄を決定するためのカウンタの更新処理が行われる。また、図柄チェック処理（Ｓ５６）では、図柄カウンタ更新処理（Ｓ５５）で更新されたカウンタの値に基づいて、特別図柄変動処理（Ｓ５９）で使用される大当たり図柄や、はずれ図柄、更にはリーチ図柄などが決定される。
【００５３】
普通図柄変動処理（Ｓ５７）によって、「○」と「×」との２つのＬＥＤ６ａ，６ｂで構成された普通図柄表示装置６の変動表示を行うと共に、その変動表示の結果、「○」のＬＥＤ６ａで変動表示が終了した場合には当たりとなって普通電動役物（図柄作動口）４を所定時間（例えば０．５秒）開放する当たり処理を実行する。その後、状態フラグをチェックし（Ｓ５８）、ＬＣＤ３において特別図柄の変動開始または変動表示中であれば（Ｓ５８：図柄変動中）、特別図柄変動処理（Ｓ５９）によって、球が図柄作動口４を通過するタイミングで読み取った乱数カウンタ５４ｂの値に基づいて、大当たりか否かの判定が行われると共に、ＬＣＤ３において特別図柄の変動処理を実行する。一方、状態フラグをチェックした結果、大当たり中であれば（Ｓ５８：大当り中）、大入賞口５を開放するなどの大当たり処理（Ｓ６０）を実行する。更に、状態フラグをチェックした結果、特別図柄の変動中でも大当たり中でもなければ（Ｓ５８：その他）、Ｓ５９及びＳ６０の処理をスキップして、Ｓ６１の表示・ランプ・効果音データ作成処理へ移行する。
【００５４】
表示・ランプ・効果音データ作成処理（Ｓ６１）では、特別図柄の変動表示以外にＬＣＤ３に表示されるデモデータや、普通図柄表示装置６の２つのＬＥＤ６ａ，６ｂの表示データ、保留球ランプをはじめとした各種のランプデータ、遊技の状況に応じた効果音データなどが作成される。なお、これらの表示データ、ランプデータ及び効果音データは、前記したポート出力処理（Ｓ５１）によってコマンドデータとして表示用制御基板Ｄへ出力される。表示用制御基板Ｄでは、そのコマンドデータを解読して、ＬＣＤ３や普通図柄表示装置６の表示制御に使用すると共に、音声ランプ制御基板Ｓへのコマンドデータを作成して、これを音声ランプ制御基板Ｓへ出力して、ランプやＬＥＤ及び効果音の出力制御をコントロールする。表示・ランプ・効果音データ作成処理（Ｓ６１）の終了後は、このＩＮＴ割込処理を終了する。その後は、ＩＮＴ割込処理の実行直前に実行されていたメイン処理（図５）の直後に戻ってメイン処理を続行する。そして、前回のＩＮＴ割込処理の実行から所定時間（例えば２ｍｓ）が経過すると、次のＩＮＴ割込処理が実行される。
【００５５】
次に、図９を参照してＩＮＴ割込処理の中で実行される乱数更新処理（Ｓ５２）を説明する。図９は、主制御基板ＣのＩＮＴ割込処理の中で実行される乱数更新処理（Ｓ５２）を示すフローチャートである。この処理では、ＩＹレジスタ５１ａの値を「＋１」ずつ更新すると共に、その更新後のＩＹレジスタ５１ａの値を適正な更新範囲内の値である「０〜６２９」の値に補正する。また、乱数カウンタ５４ｂの値を「０」〜「６２９」の範囲内で「＋１」ずつ更新している。
【００５６】
まず、ＩＹレジスタ５１ａのインクリメント処理を行い（Ｓ７１）、ＩＹレジスタ５１ａの値を「＋１」する。前述した通り、ＩＹレジスタ５１ａの値は、メイン処理において、ＩＮＴ割込処理の残余時間の間に絶えず「＋１」更新されているので、Ｓ７１の処理で「＋１」更新したＩＹレジスタ５１ａの値は適正な更新範囲内の値である「０〜６２９」を超えている場合がある。そこで、ＩＹレジスタ５１ａのインクリメント処理後は、ＩＹレジスタ補正処理（Ｓ７２）を実行して、更新後のＩＹレジスタ５１ａの値を適正な更新範囲内の値に戻す。なお、ＩＹレジスタ補正処理（Ｓ７２）は、前述した図７の処理と同一であるので、その説明は省略する。
【００５７】
次に、乱数カウンタ５４ｂの値を１加算し（Ｓ７３）、加算後の乱数カウンタ５４ｂの値が「６３０」以上であるか否か、即ち、乱数カウンタ５４ｂの適正な更新範囲の値を超えているか否かを調べる（Ｓ７４）。加算後の乱数カウンタ５４ｂの値が「６３０」以上であれば（Ｓ７４：Ｙｅｓ）、適正な更新範囲の値を超えているので、乱数カウンタ５４ｂの値を「０」クリアする（Ｓ７５）。一方、加算後の乱数カウンタ５４ｂの値が「６２９」以下であれば（Ｓ７４：Ｎｏ）、適正な更新範囲内の値であるので、加算後の値を維持すべくＳ７５の処理をスキップして、Ｓ７６の処理へ移行する。
【００５８】
Ｓ７６の処理では、更新後の乱数カウンタ５４ｂの値と現初期値メモリ５４ｃの値とが比較される。現初期値メモリ５４ｃには現在更新中の乱数カウンタ５４ｂの更新の初期値が記憶されているので、両値が等しい場合には（Ｓ７６：Ｙｅｓ）、乱数カウンタ５４ｂの更新は一回り終了したということである。よって、かかる場合には、乱数カウンタ５４ｂの次回の更新の初期値を記憶するＩＹレジスタ５１ａの値を乱数カウンタ５４ｂ及び現初期値メモリ５４ｃへ書き込み（Ｓ７７、Ｓ７８）、乱数カウンタ５４ｂの更新の初期値を変更する。
【００５９】
このように、乱数カウンタ５４ｂは、一回りの更新が終了する毎にその更新の初期値を変更するため、乱数の一様性（連続で取得した場合に同じ値をとることがなく、しかも、すべての値が同じ確率で取り出せること）のある乱数値を得ることができる。更に、その更新の初期値であるＩＹレジスタ５１ａの値は、前述した通り、遊技の状態に応じて変化する不定な時間を使用して更新される為、乱数カウンタ５４ｂの更新の初期値をランダムに変更することができる。
【００６０】
一方、更新後の乱数カウンタ５４ｂの値と現初期値メモリ５４ｃの値とが等しくない場合には（Ｓ７６：Ｎｏ）、乱数カウンタ５４ｂの更新は未だ一回り終了していないので、Ｓ７７及びＳ７８の処理をスキップすることにより乱数カウンタ５４ｂ及び現初期値メモリ５４ｃの値を維持する。その後は、他の乱数の更新処理（Ｓ７９）を実行して、この乱数カウンタ更新処理を終了する。
【００６１】
以上説明したように、本実施例のパチンコ機Ｐによれば、大当たりを決定する乱数カウンタ５４ｂの初期値をカウントするＩＹレジスタ５１ａは、ＩＮＴ割込処理（図８参照）において定期的に更新されるだけでなく、メイン処理（図５参照）においては、ＩＮＴ割込処理の残余時間を利用して更新される。かかる残余時間は遊技の制御状態に応じて変化する時間なので、ＩＹレジスタ５１ａの値を、確実に更新され且つランダム性の付与されたものとして、乱数カウンタ５４ｂの更新の初期値として使用することができる。
【００６２】
また、ＩＹレジスタ５１ａの更新は、メイン処理とＩＮＴ割込処理との２つの異なった処理で行われるが、その更新は１命令で行われるので、両処理の実行タイミングの如何に拘わらず、更新結果を無意味なのもとすることなく、有効に利用することができる。更に、ユーザワークＲＡＭ５４上のメモリを使用することなく、ＣＰＵ５１の内部レジスタであって、比較的使用頻度の少ないインデックスレジスタであるＩＹレジスタ５１ａを使用しているので、その分、メモリの使用効率をも向上することができる。しかも、ＩＹレジスタ５１ａは、１６ビットで更新が可能であるので、「２５６」を超えた更新範囲を有する乱数カウンタ５４ｂの更新の初期値をカウントするカウンタとして好適である。
【００６３】
更に、乱数更新処理（図９参照）では、ＩＹレジスタ５１ａの値を適正な更新範囲内の値に補正した後に、乱数カウンタ５４ｂの更新の初期値として使用しているので、メイン処理において、ＩＹレジスタ５１ａを更新範囲のチェックをせずに「＋１」更新しても、ＩＹレジスタ５１ａの値を的確に使用することができる。言い換えれば、メイン処理において、ＩＹレジスタ５１ａの値が適正な更新範囲内にあるか否かをチェックしながら１命令で更新することはできないので、メイン処理ではＩＹレジスタ５１ａの値を１命令で「＋１」更新のみし、ＩＹレジスタ５１ａの値を使用するＩＮＴ割込処理において、そのＩＹレジスタ５１ａの値の使用前に、その値を適正な更新範囲内の値に補正しているのである。更に、ＩＹレジスタ５１ａの値の補正が的確に行われるように、メイン処理の更新でＩＹレジスタ５１ａの値が「０」にならないように、ＩＮＴ割込処理の最短処理時間とＳ２１及びＳ２２の合計最短処理時間とにより、ＩＮＴ割込処理の実行間隔が決められているので（本実施例では、その結果、ＩＮＴ割込処理は２ｍｓ毎に実行される）、ＩＹレジスタ補正処理（図７参照）によって、更新されたカウント値をロスすることなく、ＩＹレジスタ５１ａの値を適正な更新範囲内の値に補正することができる。
【００６４】
次に、図１０を参照して第２実施例のＩＹレジスタ補正処理を説明する。第２実施例のＩＹレジスタ補正処理は、まず、ＩＹレジスタ５１ａの値が適正な更新範囲の最大値である「６２９」以下であるか否かを確認する（Ｓ８１）。ＩＹレジスタ５１ａの値が「６２９」以下であれば（Ｓ８１：Ｙｅｓ）、ＩＹレジスタ５１ａは適正な更新範囲内の値であるので、その値を補正すること無く、ＩＹレジスタ補正処理を終了する。一方、ＩＹレジスタ５１ａの値が「６３０」以上であれば（Ｓ８１：Ｎｏ）、その値は乱数カウンタ５４ｂの適正な更新範囲の値を超えているので、この場合には、ＩＹレジスタ５１ａの値を更新範囲の最大値＋１である「６３０」で除算する（Ｓ８２）。除算した余りをＩＹレジスタ５１ａへ書き込んで（Ｓ８３）、これをＩＹレジスタ５１ａの値とし、このＩＹレジスタ補正処理を終了する。なお、この図１０の処理においては、Ｓ８１の処理を削除して構成するようにしても良い。
【００６５】
以上説明した各実施例において、請求項１記載の制御手段としては、主制御基板Ｃが該当し、第１制御手段としては、図５に示すメイン処理が該当し、第２制御手段としては、図８に示すＩＮＴ割込処理が該当する。更に、補正手段としては、ＩＮＴ割込処理の乱数更新処理（Ｓ５２、図９参照）の中で実行されるＳ７２のＩＹレジスタ補正処理が該当する。
【００６６】
以上、実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【００６７】
例えば、上記実施例では、カウンタとしてＩＹレジスタ５１ａを用いた、必ずしもＩＹレジスタ５１ａに限定されるものではなく、ＩＹレジスタ５１ａに代えて、ＩＸレジスタやＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタなどをカウンタとして使用しても良い。また、レジスタに代えて、例えばユーザワークＲＡＭ５４等のＲＡＭ上のメモリをカウンタとして使用しても良い。かかる場合には、メイン処理におけるカウンタ値の更新は、１命令で実行するか、或いは、１命令で実行できない場合には更新自体をそのメモリ上で行うようにする。更に、本実施例におけるカウント値の更新（ＩＹレジスタ５１ａの値の更新）は、インクリメント命令（ＩＮＣ）により「＋１」ずつの加算方向に行われたが、インクリメント命令に代えて、デクリメント命令（ＤＥＣ）を使用して「−１」ずつの減算方向に行うようにしても良い。かかる場合には、カウント値の補正処理をカウント方式に併せて修正する。
【００６８】
また、本発明のカウンタは、必ずしも乱数カウンタ５４ｂの更新の初期値をカウントするカウンタとして使用する必要はない。よって、例えば、本発明のカウンタを、乱数カウンタ５４ｂ自体として使用しても良いし、図柄カウンタやリーチカウンタのように、ランダム性を必要とする他のカウンタとして使用するようにしても良い。
【００６９】
本発明を上記実施例とは異なるタイプのパチンコ機等に実施しても良い。例えば、一度大当たりすると、それを含めて複数回（例えば２回、３回）大当たり状態が発生するまで、大当たり期待値が高められるようなパチンコ機（通称、２回権利物、３回権利物と称される）として実施しても良い。また、大当たり図柄が表示された後に、所定の領域に球を入賞させることを必要条件として特別遊技状態となるパチンコ機として実施しても良い。更に、パチンコ機以外にも、アレパチ、雀球、スロットマシン、いわゆるパチンコ機とスロットマシンとが融合した遊技機などの各種遊技機として実施するようにしても良い。
【００７０】
なお、スロットマシンは、例えばコインを投入して図柄有効ラインを決定させた状態で操作レバーを操作することにより図柄が変動され、ストップボタンを操作することにより図柄が停止されて確定される周知のものである。従って、スロットマシンの基本概念としては、「複数の図柄からなる図柄列を変動表示した後に図柄を確定表示する可変表示手段を備え、始動用操作手段（例えば操作レバー）の操作に起因して図柄の変動が開始され、停止用操作手段（例えばストップボタン）の操作に起因して、或いは、所定時間経過することにより、図柄の変動が停止され、その停止時の確定図柄が特定図柄であることを必要条件として、遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段とを備えたスロットマシン」となり、この場合、遊技媒体はコイン、メダル等が代表例として挙げられる。
【００７１】
また、パチンコ機とスロットマシンとが融合した遊技機の具体例としては、複数の図柄からなる図柄列を変動表示した後に図柄を確定表示する可変表示手段を備えており、球打出用のハンドルを備えていないものが挙げられる。この場合、所定の操作（ボタン操作）に基づく所定量の球の投入の後、例えば操作レバーの操作に起因して図柄の変動が開始され、例えばストップボタンの操作に起因して、或いは、所定時間経過することにより、図柄の変動が停止され、その停止時の確定図柄がいわゆる大当たり図柄であることを必要条件として遊技者に有利な大当たり状態が発生させられ、遊技者には、下部の受皿に多量の球が払い出されるものである。
【００７２】
以下に本発明の変形例を示す。カウンタと、そのカウンタの値を更新する第１制御手段と、その第１制御手段の実行を中断して制御を実行する第２制御手段と、前記第１及び第２制御手段を有し前記カウンタの値を所定条件下において遊技の制御に使用する制御手段とを備えた遊技機において、前記第１制御手段は、前記カウンタの値を直接更新するものであり、前記第２制御手段は、前記第１制御手段とは別に前記カウンタの値を更新すると共に、そのカウンタの値を適正な更新範囲内の値に補正する補正手段を備えていることを特徴とする遊技機１。カウンタの値を直接更新するとは、そのカウンタ以外の他のレジスタやメモリを使用することなく直接カウンタの値を更新することをいい、例えば、カウンタの値を、一旦他のレジスタ（ＣＰＵ内のＡＬＵ等のソフト制御の範疇外のものは除く）やメモリへロードし、そのレジスタやメモリで更新しその更新した値を該カウンタへ書き戻すことによって更新することではない意である。
【００７３】
遊技機１によれば、１のカウンタは、第１制御手段と、その第１制御手段の実行を中断して実行される第２制御手段との２つの制御手段によって更新される。第２制御手段は、第１制御手段の実行タイミングに拘わらず、第１制御手段の実行を中断して制御を実行し、その制御の中でカウンタの更新を行う。よって、第１制御手段がカウンタの更新を次のように行う場合、第２制御手段の実行タイミング如何によっては、カウンタの更新に支障を来してしまう。即ち、カウンタの値を、一旦、他のレジスタやメモリへロードし（ステップ１）、そのレジスタまたはメモリ内でカウント値を更新し（ステップ２）、更新されたカウント値をカウンタへロードする（戻す）（ステップ３）ことにより、カウンタの更新を行う場合、ステップ１の実行後からステップ３の実行前に第２制御手段が実行されてカウント値の更新が行われると、第２制御手段の実行後に第１制御手段のステップ３が実行されるので、折角、第２制御手段でカウント値の更新を行っても、第１制御手段によってカウント値は元の値に戻されてしまう。これに対し遊技機１では、第１制御手段はカウンタの値を直接更新するので、第２制御手段が如何なるタイミングで実行されても、その第２制御手段で更新後のカウント値を元に戻してしまうことはない。即ち、第１制御手段は、第２制御手段で更新されたカウント値を引き続き継続して更新することができる。よって、遊技機１によれば、１のカウンタを第１制御手段と第２制御手段との２つの制御手段で別々に更新する場合であっても、カウンタの値を引き続き継続して更新することができる。また、第２制御手段は、カウンタの値を適正な更新範囲内の値に補正する補正手段を備えているので、第１制御手段によるカウンタの値の更新がカウンタの適正な更新範囲を超えるものとなっても、第２制御手段の実行により、カウンタの値を適正な更新範囲内の値に補正することができる。なお、第２制御手段によるカウンタの値の更新方式は、必ずしも第１制御手段の更新方式と同一である必要はなく、異なった更新方式であっても良い。
【００７４】
遊技機１において、前記第１制御手段は、前記カウンタの値を１命令で直接更新するものであることを特徴とする遊技機２。
【００７５】
請求項１記載の遊技機または遊技機１若しくは２において、前記第１制御手段は、前記カウンタの値がその適正な更新範囲を超える場合にもそのカウンタの値の更新を継続するように構成され、前記第２制御手段は、前記補正手段によって前記カウンタの値を適正な更新範囲内の値に補正した後でそのカウンタの値を遊技の制御に使用するものであることを特徴とする遊技機３。カウンタの値は、適正な更新範囲を超える場合であっても、第１制御手段によって更新されるが、その値は第２制御手段によって適正な更新範囲内の値に補正され、その補正後のカウンタの値が第２制御手段によって遊技の制御に使用される。よって、第１制御手段によって適正な更新範囲内の値を超えてカウンタの値を更新しても、遊技の制御には適正な更新範囲内の値として使用することができる。
【００７６】
請求項１記載の遊技機または遊技機１から３のいずれかにおいて、前記第１及び第２制御手段によるカウンタの更新は増加方向に行われ、前記第２制御手段の補正手段は、前記カウンタの値が適正な更新範囲内の値にない場合（適正な更新範囲の値を超えている場合）に、そのカウンタの値を更新範囲数で減算し、その差が更新範囲内の値になるまで該減算を繰り返して、最終的な差を前記カウンタの値とするものであることを特徴とする遊技機４。なお、更新範囲数とは、例えば、カウンタが「０〜ｘ」の範囲で更新される場合には「ｘ＋１」をいい、「１〜ｘ」の範囲で更新される場合には「ｘ」をいう。
【００７７】
請求項１記載の遊技機または遊技機１から３のいずれかにおいて、前記第１及び第２制御手段によるカウンタの更新は増加方向に行われ、前記第２制御手段の補正手段は、前記カウンタの値を更新範囲数で除算し、その余りを前記カウンタの値とするものであることを特徴とする遊技機５。なお、カウンタの値の除算は、そのカウンタの値が適正な更新範囲内の値にあるか否かを判断した上で、カウンタの値が適正な更新範囲内の値にない場合（適正な更新範囲の値を超えている場合）に限って行うように構成しても良い。また、更新範囲数とは、例えば、カウンタが「０〜ｘ」の範囲で更新される場合には「ｘ＋１」をいい、「１〜ｘ」の範囲で更新される場合には「ｘ」をいう。
【００７８】
請求項１記載の遊技機または遊技機１から３のいずれかにおいて、前記第１及び第２制御手段によるカウンタの更新は減少方向に行われ、前記第２制御手段の補正手段は、前記カウンタの値が適正な更新範囲内の値にない場合（適正な更新範囲の値を超えている場合）に、そのカウンタの最大更新範囲からそのカウンタの値を減算した差が適正な更新範囲内の値であれば更にその差を適正な更新範囲の最大値から減算した差を前記カウンタの値とし、一方、前記カウンタの最大更新範囲からそのカウンタの値を減算した差が適正な更新範囲内の値でなければ更にその差を更新範囲数で減算しその差が更新範囲内の値になるまで該減算を繰り返して得た最終的な差を適正な更新範囲の最大値から減算してその差を前記カウンタの値とするものであることを特徴とする遊技機６。なお、更新範囲数とは、例えば、カウンタが「０〜ｘ」の範囲で更新される場合には「ｘ＋１」をいい、「１〜ｘ」の範囲で更新される場合には「ｘ」をいう。また、カウンタの最大更新範囲とは、ハード的にそのカウンタの取り得る更新範囲をいい、遊技の制御に使用される適正な更新範囲より大きな範囲となっている。例えば、最大更新範囲は、カウンタが１６ビットで構成される場合には０ＦＦＦＦｈとなり、カウンタが８ビットで構成される場合には０ＦＦｈとなる。
【００７９】
請求項１記載の遊技機または遊技機１から６のいずれかにおいて、前記第２制御手段は、前記第１制御手段により前記カウンタの値の更新がそのカウンタの適正な更新範囲を超えて行われた場合には、その第１制御手段による更新で前記カウンタの値が適正な更新範囲内の値となる前までに、その第１制御手段の実行を中断して前記カウンタの値を適正な更新範囲内の値に補正するものであることを特徴とする遊技機７。よって、カウンタの最大更新範囲が前記更新範囲数の整数倍で構成されない場合にも、第１制御手段と第２制御手段とによって、カウンタの値を継続して更新することができる。なお、カウンタの最大更新範囲とは、ハード的にそのカウンタの取り得る更新範囲をいい、遊技の制御に使用される適正な更新範囲より大きな範囲となっている。例えば、最大更新範囲は、カウンタが１６ビットで構成される場合には０ＦＦＦＦｈとなり、カウンタが８ビットで構成される場合には０ＦＦｈとなる。
【００８０】
請求項１記載の遊技機または遊技機１から６のいずれかにおいて、前記第２制御手段は、前記第１制御手段により前記カウンタの値の更新がそのカウンタの最大更新範囲を超えて更新される前までに、その第１制御手段の実行を中断して前記カウンタの値を適正な更新範囲内の値に補正するものであることを特徴とする遊技機８。よって、カウンタの最大更新範囲が前記更新範囲数の整数倍で構成されない場合にも、第１制御手段と第２制御手段とによって、カウンタの値を継続して更新することができる。なお、カウンタの最大更新範囲とは、ハード的にそのカウンタの取り得る更新範囲をいい、遊技の制御に使用される適正な更新範囲より大きな範囲となっている。例えば、最大更新範囲は、カウンタが１６ビットで構成される場合には０ＦＦＦＦｈとなり、カウンタが８ビットで構成される場合には０ＦＦｈとなる。
【００８１】
請求項１記載の遊技機または遊技機１から８のいずれかにおいて、前記第２制御手段は定期的に実行される割込処理により構成され、前記第１制御手段は割込によらないメイン処理あるいは前記第２制御手段より割込優先順位の低い割込処理によって構成されていることを特徴とする遊技機９。遊技機９によれば、１の制御手段で、第１制御手段と第２制御手段との２の制御手段を実行することができる。
【００８２】
請求項１記載の遊技機または遊技機１から９のいずれかにおいて、前記第２制御手段は定期的に実行されると共に、その実行時間は遊技の状態に応じて変化するように構成され、前記第１制御手段は、前記第２制御手段の実行後から次の第２制御手段が実行されるまでの残余時間を利用して前記カウンタの値を更新するものであることを特徴とする遊技機１０。第２制御手段は定期的に実行され且つその実行時間は遊技の状態によって変化するので、第１制御手段によるカウンタの更新を第２制御手段の実行後の残余時間を利用して行うことにより、更新されるカウンタの値にランダム性を付与することができる。しかも、カウンタの値は第２制御手段によっても更新されるので、遊技の状態がいかなる場合においても、少なくとも定期的なカウンタの更新は継続することができる。
【００８３】
請求項１記載の遊技機または遊技機１から１０のいずれかにおいて、前記カウンタはＣＰＵに内蔵のレジスタにより構成されることを特徴とする遊技機１１。ＣＰＵに内蔵されるレジスタをカウンタに使用するので、その分、メモリの使用量を減少してメモリを有効利用することができる。なお、カウンタとして使用するレジスタとしては、一般的に使用頻度が少なく、且つ１６ビットで構成されるインデックスレジスタＩＸ，ＩＹが好適である。
【００８４】
請求項１記載の遊技機または遊技機１から１１のいずれかにおいて、前記第２制御手段によって更新されると共に大当たりの発生を決定する乱数カウンタと、その乱数カウンタの更新の初期値を記憶する現初期値メモリとを有し、前記乱数カウンタの値が更新により前記現初期値メモリの値と一致した場合に、前記カウンタの値を前記乱数カウンタおよび前記現初期値メモリへ書き込んで前記乱数カウンタの更新の初期値を変更する変更手段とを備えていることを特徴とする遊技機１２。カウンタの更新はランダムに行われるので、そのカウンタの値を乱数カウンタの更新の初期値として使用することにより、大当たりの決定にランダム性を付与して、不正行為などの防止効果を向上させることができる。なお、カウンタの値を乱数カウンタおよび現初期値メモリへ書き込むとは、必ずしも、カウンタから直接読み出した値を乱数カウンタおよび現初期値メモリのそれぞれへ書き込む必要はなく、カウンタから読み出した値を乱数カウンタへ書き込み、その乱数カウンタへ書き込んだ値を現初期値メモリへ書き込んだり、或いは逆に、カウンタから読み出した値を現初期値メモリへ書き込み、その現初期値メモリへ書き込んだ値を乱数カウンタへ書き込むようにしても良いのである。
【００８５】
請求項１記載の遊技機または遊技機１から１２のいずれかにおいて、前記カウンタの値を電源の切断後においても保持するバックアップ手段を備えていることを特徴とする遊技機１３。なお、遊技機１３が遊技機１２の構成に追加される場合には、カウンタのみならず、乱数カウンタおよび現初期値メモリの値をもバックアップ手段によって電源の切断後も保持するように構成する。
【００８６】
請求項１記載の遊技機または遊技機１から１３のいずれかにおいて、前記遊技機はパチンコ機であることを特徴とする遊技機１４。中でも、パチンコ機の基本構成としては操作ハンドルを備え、その操作ハンドルの操作に応じて球を所定の遊技領域へ発射し、球が遊技領域内の所定の位置に配設された作動口に入賞（又は作動口を通過）することを必要条件として、表示装置において変動表示されている識別情報が所定時間後に確定停止されるものが挙げられる。また、特別遊技状態の出力時には、遊技領域内の所定の位置に配設された可変入賞装置（特定入賞口）が所定の態様で開放されて球を入賞可能とし、その入賞個数に応じた有価価値（景品球のみならず、磁気カードへ書き込まれる情報等も含む）が付与されるものが挙げられる。
【００８７】
請求項１記載の遊技機または遊技機１から１３のいずれかにおいて、前記遊技機はスロットマシンであることを特徴とする遊技機１５。中でも、スロットマシンの基本構成としては、「複数の識別情報からなる識別情報列を変動表示した後に識別情報を確定表示する可変表示手段を備え、始動用操作手段（例えば操作レバー）の操作に起因して図柄の変動が開始され、停止用操作手段（例えばストップボタン）の操作に起因して、或いは、所定時間経過することにより、識別情報の変動が停止され、その停止時の確定識別情報が特定識別情報であることを必要条件として、遊技者に有利な特別遊技状態を出力させる特別遊技状態出力手段とを備えた遊技機」となる。この場合、遊技媒体はコイン、メダル等が代表例として挙げられる。
【００８８】
請求項１記載の遊技機または遊技機１から１３のいずれかにおいて、前記遊技機はパチンコ機とスロットマシンとを融合させたものであることを特徴とする遊技機１６。中でも、融合させた遊技機の基本構成としては、「複数の識別情報からなる識別情報列を変動表示した後に識別情報を確定表示する可変表示手段を備え、始動用操作手段（例えば操作レバー）の操作に起因して識別情報の変動が開始され、停止用操作手段（例えばストップボタン）の操作に起因して、或いは、所定時間経過することにより識別情報の変動が停止され、その停止時の確定識別情報が特定識別情報であることを必要条件として、遊技者に有利な特別遊技状態を出力させる特別遊技状態出力手段とを備え、遊技媒体として球を使用すると共に、前記識別情報の変動開始に際しては所定数の球を必要とし、特別遊技状態の出力に際しては多くの球が払い出されるように構成されている遊技機」となる。
【符号の説明】
【００８９】
１１            ＭＰＵ
２０            第１種始動口スイッチ
５１            ＣＰＵ
５１ａ          ＩＹレジスタ（カウンタ）
５４            ユーザワークＲＡＭ
５４ｂ          乱数カウンタ
５４ｃ          現初期値メモリ
Ｃ              主制御基板（制御手段）
Ｐ              パチンコ機（遊技機）
Ｓ７２          ＩＹレジスタ補正処理（補正手段）
【図１】
2010184137.tif 000003
【図２】
2010184137.tif 000004
【図３】
2010184137.tif 000005
【図４】
2010184137.tif 000006
【図５】
2010184137.tif 000007
【図６】
2010184137.tif 000008
【図７】
2010184137.tif 000009
【図８】
2010184137.tif 000010
【図９】
2010184137.tif 000011
【図１０】
2010184137.tif 000012