(57)【要約】  【課題】残余時間処理として同一処理の繰り返しにより、処理結果に不具合が出たり、ユーザープログラムをリセットアドレスから開始実行させるＣＨ０割込みの割り込みタイミングが遅らされることで周期性が損なわれている。  【解決手段】４ｍｓ周期のＣＨ０割込みが発生する前に優先度の低いＣＨ１割込みを発生させ、ＣＨ１割込み後に実行する処理をＣＨ１割込み前の全初期値カウンタ更新処理から、ＣＨ０割り込み前に終了可能な処理時間の短い一部初期値カウンタ更新処理に切り換え、当該処理が終了後にＣＨ０割込みが発生するようにしたため、ＣＨ０割り込みの周期性が正しく維持される。  【選択図】図７
2009022548.tif 000002
【特許請求の範囲】
【請求項１】
所定周期で発生する主タイマ割込み毎にリセットアドレスから開始実行されるユーザープログラムとしての主タイマ割込み処理の内、遊技を制御するためのプログラムである遊技制御処理と、
前記主タイマ割込み処理の内、前記遊技制御処理が終了した後、新たな主タイマ割込みが発生するまでの残余時間中に実行される残余時間処理と、
前記遊技制御処理の中の１つのサブルーチン処理として前記主タイマ割込み毎に１回のみ実行される処理であって、第１の記憶領域に記憶された前回判定値を呼び出し、当該前回判定値に１を加算した第１の加算値が、所定の上限値を超えた場合には０を新たな判定値とし、所定の上限値を超えない場合には当該第１の加算値をそのまま新たな判定値として前記第１の記憶領域に戻す判定値加算更新処理と、
前記遊技制御処理の中の１つのサブルーチン処理として前記主タイマ割込み毎に１回のみ実行される処理であって、前記新たな判定値が、第３の記憶領域に記憶された開始値と一致する場合には、その時点で第２の記憶領域に記憶されている初期値を新たな開始値として第３の記憶領域に記憶する開始値記憶処理と、
第２の記憶領域に記憶された前回初期値を呼び出し、当該前回初期値に１を加算した第２の加算値が、所定の上限値を超えた場合には０を新たな初期値とし、所定の上限値を超えない場合には当該第２の加算値をそのまま新たな初期値として前記第２の記憶領域に戻す初期値加算更新処理とを実行するコンピュータと、
該コンピュータが実行するユーザープログラムが記録されたＲＯＭと、
前記第１の記憶領域と前記第２の記憶領域と前記第３の記憶領域とを少なくとも具備してなるＲＡＭと、
を備えた遊技機であって、
前記コンピュータが、
前記残余時間中に、前記主タイマ割込みよりも優先度の低い従タイマ割込みを発生させる従タイマ割込み発生処理と、
前記従タイマ割込みが発生したことにより、前記従タイマ割込みが発生するまでに実行していた残余時間処理よりも実行するに要する時間が短く、従タイマ割込みが発生してから前記主タイマ割込みが発生するまでの残余時間内で実行可能な別残余時間処理を選択する残余時間処理選択処理とを実行すると共に、
前記従タイマ割込みが発生するまでに実行する前記残余時間処理を当該処理の実行中には前記従タイマ割込みを受け付けない従割込み禁止残余時間処理として実行し、
前記残余時間処理選択処理が選択した別残余時間処理を実行した後、前記主タイマ割込みが発生するまで前記主タイマ割込みの発生待ち状態とすることを特徴とする遊技機。
【請求項２】
前記コンピュータが前記従タイマ割込みが発生するまでに実行していた残余時間処理としての内容が、複数種類の初期値を全て順に更新する複数初期値加算更新処理であるとともに、前記従タイマ割込みの発生により前記残余時間処理選択処理にて選択する別残余時間処理としての内容が、前記複数初期値加算更新処理で更新される複数種類の初期値のうち特定の初期値についてのみ更新する一部初期値加算更新処理であることを特徴とする請求項１に記載の遊技機。
【請求項３】
前記コンピュータが前記従タイマ割込みの発生により前記残余時間処理選択処理において選択する別残余時間処理としての内容が、前記遊技制御処理に属する１つのサブルーチン処理であって、前記従タイマ割込みが発生するまでの前記遊技制御処理の実行期間中には実行されず、前記従タイマ割込みが発生してから前記主タイマ割込みが発生するまでの残余時間内ではじめて実行される処理であることを特徴とする請求項１に記載の遊技機。
【請求項４】
前記コンピュータが前記従タイマ割込みの発生により前記残余時間処理選択処理において選択する別残余時間処理としての内容が、遊技状態に応じて異なる実行プログラム内容であることを特徴とする請求項１から請求項３に記載の遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパチンコ機などに代表される遊技機における所定周期で加算更新される循環カウンタを用いた大当たり抽選手段に関しての、循環カウンタが１巡する周期から大当たり値を割り出すような不正を防ぐために考案された所定周期内で実行されるユーザープログラムとしての主タイマ割込み処理の残余時間を利用した循環カウンタ初期値の更新処理の改良に関するものである。
【背景技術】
【０００２】
たとえばパチンコ機においては、遊技盤面に設けられた始動口を遊技球が通過したことを検知し、それを契機として遊技制御装置において４ｍｓ毎に＋１ずつカウントアップされているカウンタから数値を抽選し、その抽選値と予め設定してある大当たり値とが合致すると、大当たりとして、多くの賞球の払い出しが期待できる、特定遊技状態となるよう構成されている。このカウンタは、例えば、０から２９９までの範囲で一割込みに１カウント更新されている。一方、所定の大当たり確率で特定遊技状態である大当たりとするための判定基準である大当たり値は、例えば、大当たり確率が１／３００のであれば、０から２９９までの範囲の中の「７」とするように固定的に設定されており、３００回の割込みに１回の割合で出現し、その後も一定周期で出現してくる。そのため１２００ｍｓの整数倍のタイミングでリズムを取り始動口に遊技球を通過させたり、遊技盤の裏面に備えられている遊技制御基板に不正な基板を装着するなどして、大当たり値の出現タイミングを割り出し、人為的に大当たりを発生させる不正行為が行われた。
【０００３】
このことから一定の大きさの循環カウンタを規則的に循環させるだけでは、乱数を発生させて抽出することの代替手段として不適切だということが判明した。そこで１回の循環は今まで通り４ｍｓ毎に１カウントし、カウンタ一周後の新たな循環の始まりの値を変えることで、周期性を失わせ、より乱数らしい循環カウンタとなり、カウンタ周期のタイミングを合わせるような不正は防止することができるようになった。この判定値循環カウンタ１周ごとの始まりの値（初期値）を不特定にするために用いる初期値循環カウンタは、当然判定循環カウンタと同じ３００サイズで構成され、判定値循環カウンタが４ｍｓの一割込毎に＋１ずつ歩進するのに対して、初期値循環カウンタは一割込の中での制御プログラムが実行終了し、４ｍｓが経過するまでの待ち時間である余り時間に更新を繰り返し続けるものとした。この余り時間は遊技の進行によって、制御内容が変化することから常に変化する時間であり、これによって初期値の更新度合いも割込み毎に歩進される値が変わり常に不定なものとなり、判定値循環カウンタを周期性・規則性の乏しいより乱数に近いものにすることができた。（たとえば特許文献１参照）
【０００４】
【特許文献１】特開１９９９−７０２５２
【特許文献２】特開２０００−２６２７１９
【特許文献３】特開２０００−１６７１９１
【特許文献４】特開２００２−７８８７５
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながらこの一割込み間隔の中で行われる様々なプログラム処理の余り時間に初期値を更新し続ける処理は、判定値循環カウンタのように所定周期毎に必ず一回のみ処理されるものではなく、時間がある限り続けられ、次の割込みが発生するとその時点で処理を打ち切るというものである。そのため初期値循環カウンタの数値が記憶されている領域から読み出しカウントアップして再び書き込むこの処理の途中で打ち切ることになると、再読み出しされた時に循環カウンタのサイズの範囲外の数値となっているような不適切なデータに置き換わる場合がある。このような不都合に対して上記特許文献２では、不適切なデータとなった場合は適切な数値に置き換えることが開示されている。しかし置き換えるには常に適切か不適切かの判定が必要となる。また特許文献２と特許文献３では、２バイトデータの書き込み順を制御することで、初期値の数値が循環カウンタのサイズを超えた数値になることは無くなると示されている。しかしそれでもデータを書き込むなど数値を動かしている途中の処理はそのままであり不適切な数値が置き換わってしまう可能性をすべて排除したとは言い難い。これに対して上記特許文献４では、初期値更新処理は完結させるようにするため、更新処理の先頭に割込み禁止を設定し、その更新処理が終了後割込み許可を設定している。しかしこれは一定間隔で割込みを実行しようとしているにも係わらず、新たな初期値カウンタの更新処理が開始されれば、終了するまで肝心の割込み処理を待たせることになり、本来４ｍｓごとという一定間隔で割込みが発生するべきものが４ｍｓ＋αで発生せざるを得ず、開始タイミングの周期性が損なわれるだけでなく、初期値カウンタの更新処理の進み具合に応じて＋αとなる時間の長さが異なり、１回の割込みにおけるプログラム実行時間が不定なものになっている。元々が次の割込み発生までの残余時間を有効利用するためだった初期値カウンタの更新処理が、一定であるはずの割込み間隔時間を不定なものとし、４ｍｓに実行開始となる制御プログラムの実行開始タイミングまでもばらつかせてしまっており、本末転倒した状態となっている。
【０００６】
本発明は、残余時間中に実行する残余時間処理を同じ内容の繰り返し処理とすることに由来する上記問題点を解決するためになされたものであり、その目的は、所定周期内で実行されるユーザープログラムとしての主タイマ割込み処理の残余時間を利用した残余時間処理が終了するタイミングを主タイマ割込みが発生するよりも前になるように残余時間処理内容を切り換え、主タイマ割込みが所定の周期で正しく等間隔で発生するようにすることにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、請求項１の発明においては、所定周期で発生する主タイマ割込み毎にリセットアドレスから開始実行されるユーザープログラムとしての主タイマ割込み処理の内、遊技を制御するためのプログラムである遊技制御処理と、前記主タイマ割込み処理の内、前記遊技制御処理が終了した後、新たな主タイマ割込みが発生するまでの残余時間中に実行される残余時間処理と、前記遊技制御処理の中の１つのサブルーチン処理として前記主タイマ割込み毎に１回のみ実行される処理であって、第１の記憶領域に記憶された前回判定値を呼び出し、当該前回判定値に１を加算した第１の加算値が、所定の上限値を超えた場合には０を新たな判定値とし、所定の上限値を超えない場合には当該第１の加算値をそのまま新たな判定値として前記第１の記憶領域に戻す判定値加算更新処理と、前記遊技制御処理の中の１つのサブルーチン処理として前記主タイマ割込み毎に１回のみ実行される処理であって、前記新たな判定値が、第３の記憶領域に記憶された開始値と一致する場合には、その時点で第２の記憶領域に記憶されている初期値を新たな開始値として第３の記憶領域に記憶する開始値記憶処理と、第２の記憶領域に記憶された前回初期値を呼び出し、当該前回初期値に１を加算した第２の加算値が、所定の上限値を超えた場合には０を新たな初期値とし、所定の上限値を超えない場合には当該第２の加算値をそのまま新たな初期値として前記第２の記憶領域に戻す初期値加算更新処理とを実行するコンピュータと、該コンピュータが実行するユーザープログラムが記録されたＲＯＭと、前記第１の記憶領域と前記第２の記憶領域と前記第３の記憶領域とを少なくとも具備してなるＲＡＭと、を備えた遊技機であって、前記コンピュータが、前記残余時間中に、前記主タイマ割込みよりも優先度の低い従タイマ割込みを発生させる従タイマ割込み発生処理と、前記従タイマ割込みが発生したことにより、前記従タイマ割込みが発生するまでに実行していた残余時間処理よりも実行するに要する時間が短く、従タイマ割込みが発生してから前記主タイマ割込みが発生するまでの残余時間内で実行可能な別残余時間処理を選択する残余時間処理選択処理とを実行すると共に、前記従タイマ割込みが発生するまでに実行する前記残余時間処理を当該処理の実行中には前記従タイマ割込みを受け付けない従割込み禁止残余時間処理として実行し、前記残余時間処理選択処理が選択した別残余時間処理を実行した後、前記主タイマ割込みが発生するまで前記主タイマ割込みの発生待ち状態とすることを特徴とする。
【０００８】
また、請求項２の発明においては、前記コンピュータが前記従タイマ割込みが発生するまでに実行していた残余時間処理としての内容が、複数種類の初期値を全て順に更新する複数初期値加算更新処理であるとともに、前記従タイマ割込みの発生により前記残余時間処理選択処理にて選択する別残余時間処理としての内容が、前記複数初期値加算更新処理で更新される複数種類の初期値のうち特定の初期値についてのみ更新する一部初期値加算更新処理であることを特徴とする。
【０００９】
また、請求項３の発明においては、前記コンピュータが前記従タイマ割込みの発生により前記残余時間処理選択処理において選択する別残余時間処理としての内容が、前記遊技制御処理に属する１つのサブルーチン処理であって、前記従タイマ割込みが発生するまでの前記遊技制御処理の実行期間中には実行されず、前記従タイマ割込みが発生してから前記主タイマ割込みが発生するまでの残余時間内ではじめて実行される処理であることを特徴とする。
【００１０】
また、請求項４の発明においては、前記コンピュータが前記従タイマ割込みの発生により前記残余時間処理選択処理において選択する別残余時間処理としての内容が、遊技状態に応じて異なる実行プログラム内容であることを特徴とする。
【発明の効果】
【００１１】
請求項１の発明においては、所定周期でユーザープログラムとしての主タイマ割込み処理をリセットアドレスから開始させる主タイマ割込みが発生するより前に従タイマ割込みを発生させることで、主タイマ割込み発生までの残余時間を一定範囲内の時間として把握可能とし、従タイマ割込みの発生までに実行していた残余時間処理内容を、把握可能となった一定範囲内の時間で実行可能となる別処理内容に切り換えることで、時系列的には当該別処理が終了後に主タイマ割込みが発生するため、主タイマ割込みの発生タイミング、例えば４ｍｓのような周期性が正しく維持される。また、従タイマ割込みの発生までに実行していた残余時間処理は、処理が終了するまで割込み禁止状態としているので、当該処理で実行すると定められた内容全てを終了させられるので、実行途中で割込みが発生したために処理を打ち切って不適切なデータに置き換わるなどのトラブルが発生することもない。また、別残余時間処理は、処理実行中に割込みが発生する可能性がないよう時間調整されたものであるので、処理プログラムの最初と最後に割込みの禁止命令や解除命令を設ける必要がなく、所要時間がそれだけでも短縮可能となり、従タイマ割込みの発生タイミングへの制限が緩やかになる。つまり、残余時間中に実行される処理は、従タイマ割込みまでに開始されたものは全ての処理が完了するように支援され、従タイマ割込み後に開始されるものは主タイマ割込み前には完了するように時間調整された内容の別処理が選択され、かつ実行後に僅かばかりの時間を余して主タイマ割込みの発生待ち状態となるので、所定の周期性が損なわれないだけでなく、従タイマ割込みの発生タイミングはプログラムによって容易に変更可能となるので、残余時間を無駄なく時間消化が行われるように処理内容の設定・時間配分が可能となる。すなわち、主タイマ割込みを所定の周期で正しく等間隔で発生することを可能とした。
【００１２】
請求項２の発明においては、従タイマ割込み発生前には複数種類の初期値を全て順に更新し、主タイマ割込み発生までの時間が迫った従タイマ割込み発生後には、それらの初期値の中の特定の初期値のみを更新することで処理時間の短縮を図り、限られた時間内で処理を終了させ、主タイマの割込み待ち状態を確実なものとする。遊技の内容を決定するために多くのカウンタが用いられ、ランダムさを確保するために「初期値」が利用されているが、特定の初期値としては、遊技者が獲得する利得に関わるカウンタに係る初期値であるのが望ましく、より具体的には、大当たりか否か、大当たり確率が変動するか否か、或いは、大入賞口の開放ラウンド数や大当たり後の遊技状態と関わる大当たり図柄をいずれにするかなどを決定するカウンタの初期値の更新頻度を増すようにできる。
【００１３】
請求項３の発明においては、従タイマ割込みを主タイマ割込みの所定時間前に発生するお知らせと捉え、残余時間処理を全て、余った時間で不定回数実行される処理とするのではなく、あたかも閉会の辞の如く、主タイマ割込み処理の〆として、従来は残余時間処理前に実行されてきた遊技制御処理に属するサブルーチン処理を主タイマ割込み処理の最後に配することができる。つまり、従タイマ割込みを残余時間内での区切りではなく、主タイマ割込みで規定された時間内の区切りと利用することもできる。別残余時間処理としては、例えば、当該主タイマ割込み処理での処理結果に基づくエラー情報含む情報を島設備やホールコンピュータ等の外部に出力する出力処理の中で、適宜選択されたサブルーチン処理があげられる。
【００１４】
請求項４の発明においては、遊技状態に応じて残余時間処理内容の変更・切り換えを行うことで、遊技状態に応じて遊技者が抱く関心事に適応した処理を行うことができる。例えば、通常遊技時には大当たりとなるか否かに遊技者の関心が集まるが、確変遊技時には大当たりが発生することはほぼ約束されており、遊技者の関心は、大当たりとなるか否かではなく、まずは確変が継続するか否かであり、機種によってはより出玉の多い大当たりになるか否かということもあるが、機種毎の遊技者の関心事の変化に即応し、関心事に係る別残余時間処理の内容で対応することができる。
【発明を実施するための最良の形態】
【００１５】
以下、遊技機の一つであるパチンコ機における一実施例について説明する。図１は、パチンコ機に設けられる各種電装品とそれらを制御する制御基板における電源の接続経路と信号の接続経路を示す図である。中抜き矢印の示す方向が電源の接続方向を示し、黒矢印の示す方向が信号の接続先と送信方向で、一方向或いは双方向であるかをを示している。  
【００１６】
外部からの電源となるＡＣ２４Ｖ電源は、電源基板１０にて５Ｖ、１２Ｖ、３２Ｖのパチンコ機で使用する所要の電圧に変換され、遊技球の球貸し外部装置であるＣＲユニットとの中継基板であるＣＲ接続基板２０と、遊技球の発射や賞球の払い出しに係る制御を行う払出制御基板３０に接続される。遊技盤面に配置された各種スイッチからの入力信号に基づきパチンコ遊技としての全体の進行に係る遊技制御を行う主制御基板５０は、払出制御基板３０を介して電源供給を受け、演出中継端子板６０を介してサブ基板である画像制御基板７０、電飾音声制御基板８０に電源を供給する。
【００１７】
主制御基板５０は、遊技盤中継端子板９０を経由して、特別図柄の作動契機である始動口スイッチ９１、大入賞口へ入賞した遊技球数を計数する大入賞口入賞スイッチ９２、特別図柄に当たり図柄が得られると大入賞口を開放する大入賞口ソレノイド９３、普通図柄の作動契機である普通図柄スイッチ９４、普通図柄に当たり図柄が得られると普通電動役物を開放する普通電役ソレノイド９５、普通電動役物へ入賞した遊技球を検出する普通電動役物スイッチ（図示せず）、図示しない一般入賞口へ入賞した遊技球を検出する入賞口スイッチ（図示せず）、普通図柄を変動表示する普通図柄表示基板９６、特別図柄を変動表示する特別図柄表示基板９７と接続されており、始動口スイッチ９１、大入賞口入賞スイッチ９２等、賞球の払い出し契機となるスイッチからの信号に基づき、払出制御基板３０に賞球コマンドを送信して、賞球を払い出させる。
【００１８】
払出制御基板３０は、発射ソレノイド３１、球送りソレノイド３２、扉開放スイッチ３３、受け皿満杯スイッチ３４、払出モータ３５、賞球カウントスイッチ３６と接続されており、主制御基板５０からの賞球コマンドに基づき賞球の払い出しに係る制御を行うとともに、球貸し操作基板２１に設けられたスイッチ操作により貸球の払い出しに係る制御を行う。さらに、ハンドル接続基板４０を介して入力される発射停止スイッチ４１、タッチスイッチ４２からの信号に基づき遊技球の発射制御を行う。
【００１９】
画像制御基板７０は、主制御基板５０からの送信コマンドに基づき、演出表示装置７１における特別図柄表示基板９７での特別図柄の変動開始に伴う演出画像を制御する。電飾音声制御基板８０は、遊技者が操作する演出ボタン８１、遊技の進行に合わせて点灯・点滅される各種の装飾ＬＥＤ８２、効果音を発生するスピーカ８３と接続され、主制御基板５０からの送信コマンドに基づく電飾並びに発音による演出に係る制御を行う。
【００２０】
図２は、主制御基板５０に搭載されたマイクロプロセッサ１００の内部ブロック図である。このマイクロプロセッサ１００は、パチンコ機の制御に用いるために、システムリセット時にユーザープログラムの改ざんをチェックし、結果が正常でなければＣＰＵ１１０を停止するセキュリティチェック機能を有している。また、暴走を防ぐため、予め指定されたアドレス範囲外で命令が実行されるとリセットされる、指定エリア外走行禁止機能も付与されている。内蔵ＲＯＭ１２０にはユーザプログラムやユーザプログラムを実行するために必要なデータが格納されており、ＳＲＡＭの内蔵ＲＡＭ１３０をユーザプログラムのワークエリアとして使用する。なお、５Ｖのバックアップ電源を供給することで、電源切断後も内蔵ＲＡＭ１３０内のデータをバックアップすることができる。
【００２１】
クロック回路１４０は、入力された外部クロックを分周し、ＣＰＵ１１０と内部の各回路に供給する内部システムクロックを生成し、タイマ回路（ＣＴＣ）１５０は、生成されたクロックをカウントするＣＨ０、ＣＨ１、ＣＨ２、ＣＨ３の合計４個の独立したモードで動作できる８ビットカウンタを内蔵し、リセット／割込み制御回路１６０は、タイマ回路１５０からのＣＨ０割込み要求、ＣＨ１割込み要求、或いは、各種リセット要求を制御する。ウォッチドッグタイマ１７０は、クロック回路１４０からのクロックに基づきタイムアウト時間を経過するとユーザーリセットを発生させるタイムアウト信号を出力する。その他、指定エリア外走行禁止機能のための指定エリア外走行禁止回路１８０、パラレル入出力ポート１９０、アドレスデコード回路２００、外部インターフェース２１０、乱数発生回路２２０等が設けられている。
【００２２】
次に、主制御基板５０に搭載されたマイクロプロセッサ１００に格納されているユーザープログラムとしての主タイマ割込み処理について説明する。なお、以下の説明において、主タイマ割込みをＣＨ０割込み、主タイマ割込み処理をＣＨ０割込み処理、従タイマ割込みをＣＨ１割込み、従タイマ割込み処理をＣＨ１割込み処理という。
【００２３】
パチンコ機に電源が投入されると、主制御基板５０に搭載されたマイクロプロセッサ１００のユーザープログラムに対してセキュリティチェックが行われた後、ユーザープログラムがスタートするが、まずは電源投入時のプログラム開始処理について、図３を参照して説明を行う。まず、スタックポインタ初期値をスタックポインタに設定し（Ｓ１０）、割込みモードとして割込みモード２をセットし（Ｓ１１）、ＲＷＭの書き込みが許可され（Ｓ１２）、内蔵レジスタの初期設定（Ｓ１３）が実行される。次に、ＲＷＭクリアスイッチが操作されているかの判定が行われ、操作されていなければ（Ｓ１４がＮｏ）、電源断正常の情報がＲＷＭに保存されているかの判定へ進み、正常の情報が保存（Ｓ１５がＹＥＳ）されていれば、ＲＷＭのチェックサムを算出して、電源断時に保存したチェックサムと一致するかの判定へ進み、一致（Ｓ１８がＹＥＳ）していれば、電源断前の状態に復帰させるため、電源断時のスタックポインタを復帰（Ｓ２０）させ、タイマ回路（ＣＴＣ）からの割込み要求を起動させる。ＣＴＣタイマ割込みとして、優先順位の最も高いチャンネル０（ＣＨ０）からの割込み要求信号と、ＣＨ０よりは優先順位の低いチャンネル１（ＣＨ１）からの割込み要求信号が発生するように、それぞれのタイマを起動（Ｓ３０，Ｓ４０）させる。次いで、全ての使用レジスタを復帰（Ｓ５０）させた後、ＣＨ０とＣＨ１の割込みを許可（Ｓ６０，Ｓ７０）し、ＣＨ１からの割込み要求信号が発生していれば、ＣＨ１割込みフラグをＯＮ（Ｓ８０）し、電源断前の番地へジャンプして、電源断前の状態に復帰させてプログラムの続きを実行させる。
【００２４】
ＲＷＭクリアスイッチが操作されている（Ｓ１４がＹＥＳ），電源断正常の情報がＲＷＭに保存されていない（Ｓ１５がＮＯ）、算出したチェックサムが電源断時に保存したチェックサムと一致しない（Ｓ１８がＮＯ）ならば、ＲＷＭの全領域を０クリア（Ｓ２２）し、電源投入正常の情報を保存（Ｓ２４）し、ＲＷＭに通常遊技中の初期値を設定した後、ＣＨ０タイマとＣＨ１タイマを起動させた後、ＣＨ０とＣＨ１の割込みを許可し、ＣＨ１からの割込み要求信号が発生していれば、ＣＨ１割込みフラグをＯＮ（Ｓ８１）して、ＣＨ０の割込み要求が発生するまで待機する。
【００２５】
次に、図４、図５を参照して、プログラム開始処理のサブルーチンのＣＨ０タイマ起動処理とＣＨ１タイマ起動処理について説明を行う。Ｓ３２では、チャンネルＣＨ０の８ビットの制御語をセットする。各ビットの値に応じた指示内容としては、ビット０＝１  チャンネル制御語を指定、ビット１＝１  チャンネルリセット、ビット２＝１  時間定数設定あり、ビット３＝０  時間定数をロードした後、タイマ起動、ビット４＝１  クロックの立ち上がりでタイマ動作を起動、ビット５＝１  プリスケーラ値２５６、ビット６＝０  タイマモード、ビット７＝１  割込み許可  が規定されている。チャンネル制御語をＣＨ０タイマ回路制御レジスタにセット（Ｓ３４）し、Ｓ３６でロードしたＣＨ０時間定数１２５をＳ３８でＣＨ０タイマ回路制御レジスタにセットして、ＣＨ０タイマ起動処理は終了する。同様に、ＣＨ１タイマ起動処理は、Ｓ４２でチャンネルＣＨ１の制御語をロードし、ＣＨ１タイマ回路制御レジスタにセット（Ｓ４４）する。ＣＨ１時間定数１２３をロード（Ｓ４６）し、ＣＨ１タイマ回路制御レジスタにセット（Ｓ４８）して、ＣＨ１タイマ起動処理は終了する。  
【００２６】
ここで電源が落ちた場合の電源断発生時処理について図６を参照しながら説明をする。電源基板１０の電圧監視回路（図示せず）が２４Ｖ外部電源の電圧値が所定電圧への降圧を検出するとＮＭＩ割り込みが発生し、電源断発生時処理が実行される。まず、全使用レジスタの待避（Ｓ１００１）、割り込み許可／禁止状態を保存（Ｓ１００２）し、電源投入情報が正常データであるかを判定し、正常データのＡＡＨ（Ｓ１００３がＹＥＳ）であれば、スタックポインタを保存（Ｓ１００４）し、電源断情報として５５Ｈを保存（Ｓ１００５）し、ＲＡＭのチェックサムを算出して保存（Ｓ１００６）した後、ＲＡＭへの新たな書き込みを禁止（Ｓ１００８）して、機能停止を待つ。電源投入情報が正常でなければ（Ｓ１００３がＮＯ）、電源投入時にＲＡＭクリアして初期状態から開始させる電源断情報００Ｈを保存（Ｓ１００７）してから、ＲＡＭへの新たな書き込みを禁止（Ｓ１００８）し、機能停止を待つ。
【００２７】
図７に基づき、４ｍｓ周期で発生するＣＨ０割込みによって実行されるメインルーチンのＣＨ０割込み処理を説明する。ＣＨ０割込み処理は、はじめにレジスタを待避（Ｓ９０）させ、ウオッチドッグのクリア要求を設定（Ｓ９１）した後、各サブルーチンの開始アドレスにジャンプする。ＣＨ１タイマ修正処理（Ｓ１００）、入力処理（Ｓ２００）、乱数カウンタ更新処理（Ｓ３００）、普通図柄遊技処理（Ｓ４００）、普通電動役物遊技処理（Ｓ５００）、特別図柄１遊技処理（Ｓ６００）、特別図柄２遊技処理（Ｓ６５０）、特別電動役物処理（Ｓ７００，Ｓ７５０）、出力処理（Ｓ８００）まで進んだ段階で、ＣＨ０割込み毎に実行対象となる制御プログラムは実行終了し、次のＣＨ０割込みまでが残余時間を利用した残余時間処理の対象時間となる。この残余時間の大きさはプログラムの処理内容により変動するが、おおよそ１０００μｓ〜２５００μｓとなる。この残余時間処理は残余時間の大きさによって実行する処理内容が変わり、ＣＨ１割込みが発生しておらず残余時間が十分に残されている場合は処理時間が長い全初期値カウンタ更新処理（Ｓ９５０）を実行し、全初期値カウンタ更新処理中にＣＨ１割込みが発生しておれば、処理時間が短い一部初期値カウンタ更新処理（Ｓ９２０）を１回のみ実行し、ＣＨ０割込みが発生するのを待つ。
【００２８】
図８に示すＣＨ１タイマ修正処理（Ｓ１００）は、ＣＨ０割込みよりも優先順位の低いＣＨ１割込みを、ＣＨ０割込みの所定時間前に発生させるように調整するための処理であり、ＣＨ０割込み処理がスタートしてから一定数のステート数によるプログラムが実行された後の最初の処理としてプログラミングされ、タイマが再起動されるまでの時間にバラツキがないよう工夫してある。まずＣＨ１割込みフラグをＯＦＦ（Ｓ１０１）し、時間定数１２３をＣＨ１タイマ回路制御レジスタにセット（Ｓ１０３）してメイン処理に戻ると、ＣＨ１タイマが起動される。この時間定数の値１２３は、後述するように、全初期値カウンタ更新処理（Ｓ９５０）に要する最長時間とＣＨ１タイマ修正処理が開始されるまでの時間、及びＣＨ１タイマ回路制御レジスタに時間定数をセットするまでの時間を加えた時間より大きくなるように設定されている。
【００２９】
図９、図１０に示す乱数カウンタ更新処理（Ｓ３００）は、遊技の進行上用いられる４つの判定値、すなわち、４種類のカウンタ値を順次更新しており、それぞれの判定値に係る判定値加算更新処理と開始値記憶処理に対応している。特別当たりカウンタは、特別図柄表示基板９７に表示される特別図柄を当たり図柄で確定表示するか否かを決定するために、例えば、０〜３１５の範囲の値で構成されるもので、ＣＨ０割込み毎に＋１ずつ加算（Ｓ３０３）され、加算後の値が最大値の３１５より大きいか否かを比較（Ｓ３０４）し、大きくないとなれば加算値のままで、大きいとなれば加算値を０に戻す（Ｓ３０５）。  このＳ３０１〜Ｓ３０５までとＳ３１０とが、特別当たりカウンタを判定値とした場合の判定値加算更新処理に対応している。また、加算後の値が記憶されている特当初期値メモリの値と比較（Ｓ３０６）し、等しくなければ、その時点の特別当たりレジスタの値を特別当たりカウンタに格納（Ｓ３１０）する。等しい場合には、特当初期値カウンタの値を読み出し（Ｓ３０７）、その値を特当初期値メモリに書き込む（Ｓ３０９）とともに特別当たりカウンタに書き替え（Ｓ３１０）する。このＳ３０６〜Ｓ３０９が、開始値記憶処理に対応している。
【００３０】
次に、普通図柄表示基板９６に表示される普通図柄を当たり図柄で確定表示するか否かを決定するための普通当たりカウンタは、例えば、０〜１９９の範囲の値で構成され、ＣＨ０割込み毎に＋１ずつ加算（Ｓ３１３）され、加算後の値が最大値の１９９より大きいか否かを比較（Ｓ３１４）し、大きくないとなれば加算値のままで、大きいとなれば加算値を０に戻す（Ｓ３１５）。また、加算後の値が記憶されている普当初期値メモリの値と比較（Ｓ３１６）し、等しくなければ、その時点の普通当たりレジスタの値を普通当たりカウンタに格納（Ｓ３２０）する。等しい場合には、普当初期値カウンタの値を読み出し（Ｓ３１７）、その値を普当初期値メモリに書き込む（Ｓ３１９）とともに普通当たりカウンタに書き替え（Ｓ３２０）する。ここでも、Ｓ３１１〜Ｓ３１５とＳ３２０とが判定値加算更新処理に対応し、Ｓ３１６〜Ｓ３１９が開始値記憶処理に対応している。
【００３１】
次に、遊技球が始動口スイッチ９１を通過したタイミングで取得された特別当たりカウンタの値が大当たり値である場合に、確率変動させるか否かを決定するための確変判定レジスタは、例えば、０〜４９９の範囲で構成され、ＣＨ０割込み毎に＋１ずつ加算（Ｓ３２３）され、加算後の値が最大値の４９９より大きいか否かを比較（Ｓ３２４）し、大きくないとなれば加算値のままで、大きいとなれば加算値を０に戻す（Ｓ３２５）。また、加算後の値が記憶されている確変初期値メモリの値と比較（Ｓ３２６）し、等しくなければ、その時点の確変判定レジスタの値を確変判定カウンタに格納（Ｓ３３０）する。等しい場合には、確変初期値カウンタの値を読み出し（Ｓ３２７）、その値を確変初期値メモリに書き込む（Ｓ３２９）とともに確変判定カウンタに書き替え（Ｓ３３０）する。上記２種類の判定値の場合と同様、Ｓ３２１〜Ｓ３２５までとＳ３３０とが判定値加算更新処理に対応し、Ｓ３２６〜Ｓ３２９が開始値記憶処理に対応している。
【００３２】
次に、遊技球が始動口スイッチ９１を通過したタイミングで取得された特別当たりカウンタの値が大当たり値であって、かつ、同じタイミングで取得された確変判定カウンタの値が確率を変動させる値である場合に、確定表示させる特別図柄の大当たり図柄を決定するための当たり特図カウンタは、例えば、０〜１１９の範囲の値で構成されるもので、ＣＨ０割込み毎に＋１ずつ加算（Ｓ３３３）され、加算後の値が最大値の１１９より大きいか否かを比較（Ｓ３３４）し、大きくないとなれば加算値のままで、大きいとなれば加算値を０に戻す（Ｓ３３５）。また、加算後の値が記憶されている特図初期値メモリの値と比較（Ｓ３３６）し、等しくなければ、その時点の当たり特図レジスタの値を当たり特図カウンタに格納（Ｓ３４０）する。等しい場合には、特図初期値カウンタの値を読み出し（Ｓ３３７）、その値を特図初期値メモリに書き込む（Ｓ３３９）とともに当たり特図カウンタに書き替え（Ｓ３４０）する。この場合も、Ｓ３３１〜Ｓ３３５までとＳ３４０とが判定値加算更新処理に対応し、Ｓ３３６〜Ｓ３３９が開始値記憶処理に対応している。
【００３３】
全初期値カウンタ更新処理（Ｓ９５０）は、乱数カウンタ更新処理（Ｓ３００）内で使用される４種類の初期値全てを更新する処理であり、処理実行中にＣＨ１割込みフラグが発生し、全初期値カウンタ更新処理終了後のＣＨ１割込みフラグ確認（Ｓ９００）でＯＮであることが確認されるまでは、繰り返し実行される。そして、ＣＨ１割込みフラグ確認でＯＮであれば、乱数カウンタ更新処理（Ｓ３００）内で使用される４種類の初期値のうち、遊技への影響度合いの大きい特別当たりカウンタと確変判定カウンタに係る初期値のみを更新する一部初期値カウンタ更新処理を１回だけ実行してから、ＣＨ０割込みフラグの発生を待つ。
【００３４】
図１１を用いて全初期値カウンタ更新処理（Ｓ９５０）の内容を説明する。初期値の更新中にＣＨ１割込みフラグが発生しても無視するように、まずＣＨ１割込みを禁止（Ｓ９５１）する。次に、特別当たりカウンタを＋１ずつ加算して取り得る数値範囲を１巡した場合に、次のＣＨ０割込み発生時の特別当たりカウンタ加算前の値として差し替えられるもので、特当初期値として取り得る数値範囲は特別当たりカウンタと必ず同じとなり、例えば特別当たりカウンタが０〜３１５であれば、特当初期値カウンタも０〜３１５となる。待避されている特当初期値カウンタの値をロードするために、アドレスをセット（Ｓ９５２）し、値を取り込んだ（Ｓ９５３）後、＋１加算（Ｓ９５４）し、加算値が特当初期値として取り得る数値の最大値より大きいか否かを比較（Ｓ９５５）し、大きくないとなれば加算値のままで、大きいとなれば加算値を０に戻して（Ｓ９５６）特当初期値カウンタに戻す（Ｓ９５７）。ここまでの、Ｓ９５２〜Ｓ９５７までが特当初期値における初期値加算更新処理に対応する。
【００３５】
次に、普通当たりカウンタの値が取り得る数値範囲０〜１９９と同じ数値範囲の値で構成される普当初期値カウンタの歩進について説明すると、待避されている普当初期値カウンタの値をロードするために、アドレスをセット（Ｓ９５８）し、値を取り込んだ（Ｓ９５９）後、＋１加算（Ｓ９６０）し、加算値が普当初期値として取り得る数値の最大値より大きいか否かを比較（Ｓ９６１）し、大きくないとなれば加算値のままで、大きいとなれば加算値を０に戻して（Ｓ９６２）普当初期値カウンタに戻す（Ｓ９６３）。この、Ｓ９５８〜Ｓ９６３が普当初期値における初期値加算更新処理に対応する。
【００３６】
次に、確変判定カウンタの値が取り得る数値範囲０〜１１９と同じ数値範囲の値で構成される確変初期値カウンタの歩進について説明すると、待避されている確変初期値カウンタの値をロードするために、アドレスをセット（Ｓ９６４）し、値を取り込んだ（Ｓ９６５）後、＋１加算（Ｓ９６６）し、加算値が確変初期値として取り得る数値の最大値より大きいか否かを比較（Ｓ９６７）し、大きくないとなれば加算値のままで、大きいとなれば加算値を０に戻して（Ｓ９６８）確変初期値カウンタに戻す（Ｓ９６９）。同様に、Ｓ９６４〜Ｓ９６９が確変初期値における初期値加算更新処理に対応する。
【００３７】
次に、当たり特図カウンタの値が取り得る数値範囲０〜４９９と同じ数値範囲の値で構成される特図初期値カウンタの歩進について説明すると、待避されている特図初期値カウンタの値をロードするために、アドレスをセット（Ｓ９７０）し、値を取り込んだ（Ｓ９７１）後、＋１加算（Ｓ９７２）し、加算値が特図初期値として取り得る数値の最大値より大きいか否かを比較（Ｓ９７３）し、大きくないとなれば加算値のままで、大きいとなれば加算値を０に戻して（Ｓ９７４）特図初期値カウンタに戻す（Ｓ９７５）。同様に、Ｓ９７０〜Ｓ９７５が特図初期値における、初期値加算更新処理に対応する。全ての初期値の更新が終了すると、ＣＨ１割込みを許可して、１回の全初期値カウンタ更新処理を終了する。以上のように全初期値カウンタ更新処理では、４種類の初期値に対する初期値加算更新処理が順に行われたことになる。
【００３８】
ここで全初期値カウンタ更新処理において、４種類の初期値の加算後の値全てがそれぞれの最大値を超えて０クリアされる処理が連続した場合が、プログラムを実行するに最大のステート数、２２８ステートを要することとなる。この全初期値カウンタ更新処理が最長の場合であっても、処理中にＣＨ０割込みが発生しないようにするため、ＣＨ０割込みより先にＣＨ１割込みを発生させることが必要となる。ちなみに通常の遊技制御処理が終了した後のＣＨ０割込みが発生するまでの残余時間は１０００μｓ〜２５００μｓであり、ＣＨ１割込みが通常の遊技制御の中で最後に実行されるサブルーチンの出力処理（Ｓ８００）が終了する以前に発生することはない。
【００３９】
ＣＨ１割込みは、ＣＨ０割込み処理の中ではじめに実行されるＣＨ１タイマ修正処理でＣＨ１タイマが起動されるため、ＣＨ０タイマが計時を開始してからＣＨ１タイマが計時を開始するまでには遅れが生じる。その時間の大きさは、ＣＨ０割込み処理がスタートしてＣＨ１割込み処理が開始されるまでが４５ステート、ＣＨ１タイマ修正処理にてＣＨ１タイマ回路制御レジスタに時間定数をセットされるまでが３７ステートの計８２ステート、時間換算すると１０．２５μｓが相当する。
【００４０】
全初期値カウンタ更新処理が最長の場合に２２８ステート、これに計時開始の遅れである８２ステートを加えた３１０ステートに対応する時間３８．７５μｓが、ＣＨ０割込み前に全初期値カウンタ更新処理を新たに開始するに必要な時間となる。しかしＣＨ０タイマもＣＨ１タイマも共にプリスケーラ値２５６にセットされているため、ＣＨ０及びＣＨ１タイマ起動処理内でセットされる時定数１が時間換算すると３２μｓに相当するため、時定数として１減じた１２４、即ち、３２μｓでは３８．７５μｓより小さいので問題があり、時定数として２減じた１２３、即ち、６４μｓ前であれば、遅れ分の１０．２５μｓを差し引いた５３．７５μｓで十分足りている。つまり、ＣＨ０割込みの時定数を１２５、ＣＨ１割込みの時定数を１２３とすれば、ＣＨ０割込みが発生する５３．７５μｓ前にＣＨ１割込みが発生することとなる。
【００４１】
図１２を用いて、ＣＨ１割込みが発生してからＣＨ０割込みが発生するまでの５３．７５μｓの期間内に実行される一部初期値カウンタ更新処理（Ｓ９２０）の内容を説明する。ここでは既にＣＨ１割込みは発生しているがＣＨ０割込みが発生するまでには、ＣＨ１割込み直前に全初期値カウンタ更新処理が開始されてしまった場合が最も残時間が少ない場合となるが、それでも（６４−３８．７５）μｓ、少なくとも２５μｓの時間が残されており、４種類の初期値全てを更新する時間は残されていないが、４種類の初期値の中で、より重要性の高い特当初期値と確変初期値の２種類だけの初期値を更新するに必要な最大ステート数１１０に当該サブルーチンアドレスへジャンプするに要するステート数１７を加えた１１７ステート相当時間＝１４．６２５μｓは十分に残し、処理後約１０μｓの間はＣＨ０割込み待ち状態となり、ＣＨ０割込み時に処理を実行していることは確実に避けられている。
【００４２】
一部初期値カウンタ更新処理は、既にＣＨ１割込みが発生してから実行されるものに限られているため、全初期値カウンタ更新処理とは異なり、ＣＨ１割込みを禁止したり許可する必要はなく、直ちに、待避されている特当初期値カウンタの値をロードするために、アドレスをセット（Ｓ９２１）し、値を取り込んだ（Ｓ９２２）後、＋１加算（Ｓ９２３）し、加算値が特当初期値として取り得る数値の最大値より大きいか否かを比較（Ｓ９２４）し、大きくないとなれば加算値のままで、大きいとなれば加算値を０に戻して（Ｓ９２５）特当初期値カウンタに戻し（Ｓ９２６）、次に、待避されている確変初期値カウンタの値をロードするために、アドレスをセット（Ｓ９２７）し、値を取り込んだ（Ｓ９２８）後、＋１加算（Ｓ９２９）し、加算値が特当初期値として取り得る数値の最大値より大きいか否かを比較（Ｓ９３０）し、大きくないとなれば加算値のままで、大きいとなれば加算値を０クリアして（Ｓ９３１）、その加算値を特当初期値カウンタに戻す（Ｓ９３２）。同様に、Ｓ９２１〜Ｓ９２６が特当初期値における、また、Ｓ９２７〜Ｓ９３２が確変初期値における、初期値加算更新処理に対応する。
【００４３】
なお、ＣＨ０割込み前にＣＨ１割込みを発生させることによって、残余時間中に実行される残余時間処理の実行内容を切り換えることで、ＣＨ０割込みが発生するタイミングの周期性を損なわないようにするとの本願目的から逸脱しなければ、上記実施形態に限られるものではない。考え方の１つとしては、上記実施形態の捉え方を、ＣＨ１割込みの発生前後によって、全初期値カウンタ更新処理を実行する或いは一部初期値カウンタ更新処理を実行するというように実行する処理内容を差し替えたことに重きを置いて捉えれば、差し替えて実行される処理として満足しなければいけない条件は、ＣＨ１割込み後ＣＨ０割込みまでに終了することだけが求められており、処理の内容はどのようなものであっても構わない。
【００４４】
ＣＨ０タイマとＣＨ１タイマにおけるそれぞれのプリスケーラ値と時間定数をどのように設定するかが定まった段階、或いはプログラミングされた段階で、ＣＨ１割込みからＣＨ０割込みまでの時間が確定しており、ＣＨ１割込み発生時に実行されていた処理が終了した後の実質残り時間も把握可能となるため、その時間内で実行可能となるように処理に要する所要時間には配慮する必要はあるものの、それまではＣＨ１割込み前に実行されてきた通常制御処理の範疇に属する処理をＣＨ１割込み後に定常的に配することもできるため、必ずしもＣＨ０割込み直前に実行される処理が、残余時間処理と一括りに呼称され、通常の制御処理が終了した後のおまけ的な処理に限る必要がなくなる。
【００４５】
また、上記実施形態の捉え方をＣＨ１割込みの発生まではループして同一の処理を繰り返し実行し、ＣＨ１割込みが発生したら、ループではなく順番に処理がＣＨ０割込みまでに実行されるようにしていると捉えれば、ＣＨ１割込みの前後で実行される処理内容に相互関連性の有無は問われないことも明白である。例えば、図１３に示すように、ＣＨ１割込みのタイミングを上記実施形態とは異ならせ、もっと早い段階で割り込ませ、ＣＨ１割込みまでは初期値の更新処理（Ｓ９５０）を行うが、ＣＨ１割込み後に、全ての関連する処理が終了した後外部へ関連情報を出力する出力処理（Ｓ１０５０）だけを、サブ基板へのコマンド送信等から切り離し、１回のＣＨ０割込み処理の中で確実に実行されることさえ担保されれば、ＣＨ１割込み後に配される方が果たすべき役割からして合理的であり、残余時間の大きさが不確定である場合には考えることすらできないが、残余時間に１つの一里塚となるＣＨ１割込みを発生させることでプログラミングの自由度は大きく高まる。なお、ＣＨ１割込み後に必ずしも何らかの処理を実行する必要もなく、割込み後は単にＣＨ０の割込み待ちとしてももちろん構わない。
【００４６】
さらには、例えば、図１４に示すように、ＣＨ１割込みまでのループ処理を全初期値更新処理（Ｓ９５０）とし、割込み後であってかつ通常時（Ｓ１１００がＮＯ）においては特別当たりカウンタの初期値更新処理（Ｓ１１３０）を１回のみ実行し、確率変動時（Ｓ１１００がＹＥＳ）においては、確変判定カウンタの初期値更新処理（Ｓ１１６０）を１回のみ実行するようにして遊技状態に応じて実行する処理を切り換えることを組み合わせることも可能である。もちろん、ＣＨ１割込みまでのループ処理も全初期値更新処理に限られることはなく、例えば、図１５に示すように、ＣＨ１割込みまでは特当初期値更新処理（Ｓ１２３０）と確変判定初期値更新処理（Ｓ１２６０）とを順に実行し、ＣＨ１割込み後だけ遊技状態に応じて実行する処理を特当初期値更新処理（Ｓ１１３０）と確変判定初期値更新処理（Ｓ１１６０）とに切り換えることでも良く、このような構成によって、通常時では大当たりの発生に関心が集まり、確変時には大当たりが得られることはほぼ約束されているため、確変状態が継続されるかどうかに関心が集まるため、それぞれの関心事に関わる初期値を中心に更新することでよりランダム性の向上に寄与できることになる。なお、この場合、ＣＨ１割込みまでは２つの処理をセットされた一連の処理として実行し、ＣＨ１割込み後は遊技状態に対応したいずれか一つの処理を単独処理するようであるが、ＣＨ１割込みが発生までの処理においてはＳ９５１、Ｓ９７６と同様のＣＨ１割込み禁止とＣＨ１割込み許可がプログラムに加わっており、ＣＨ１割込み後ではそれらが除かれたプログラムになっており、内容にわずかな違いが求められる。
【００４７】
ＣＨ１割込み前後での処理内容を選択する際に、それぞれの処理における最短時間・最長時間によっては、上記実施例で用いたプリスケーラ値や時定数では効率よく配することができない恐れが生じるが、このプリスケーラ値や時定数も、さらにはシステムクロック数も開示した数値に拘ることなく、適切な値を選択するようにしても構わない。例えば、同じ８ＭＨｚのシステムクロックを用いたとしても、ＣＨ０割込みとＣＨ１割込みとではプリスケーラ値を別の値として、より細かいタイミングでＣＨ１割込みを発生させるようにする場合を例示すると、上記実施例においてはＣＨ０タイマもＣＨ１タイマもプリスケーラ値を２５６としたが、ＣＨ１タイマのプリスケーラ値を１２８とした場合のＣＨ０割込み前に全初期値カウンタ更新処理を新たに開始するに必要な時間３８．７５μｓを確保するためには、ＣＨ１割込みの時定数が１減じることによって１６μｓずつ割込みタイミングが早まるので、４ｍｓに対応する時定数２５０から３を減じた２４７がＣＨ１割込みの時定数として選択される。しかし、この場合には、時定数３相当分の４８μｓから３８．７５μｓを差し引いた時間として９．２５μｓしか残らず、その残時間では上記の一部初期値カウンタ更新処理の実行時間には足りないので、ＣＨ１割込み後はＣＨ０割込み待ちとするか、一部初期値カウンタ更新処理を１つの初期値だけに限定した内容に変更することになる。
【００４８】
ＣＨ０割込みより優先順位の低いＣＨ１割込みを併用することによって、ＣＨ０割込みの定められた周期性を損なずにＣＨ０割込み毎に１ずつ歩進させるだけでなく、歩進度合いが割込み毎にランダムなものとしたいカウンタ処理を行うに最適な残余時間を無駄なく有効に利用できる。また、ＣＨ０割込み発生タイミングよりどの程度先んじてＣＨ１割込みを発生させる必要があるかによって、適宜ＣＨ１割込みに係るプリスケーラ値や時定数の組み合わせを選択することで、ＣＨ０割込みまでの残時間を調整することが容易に可能となるので、プログラミングの自由度も確保した状態でＣＨ０割込みの周期性を維持できる。
【００４９】
ここで特許請求の範囲と発明を実施するための最良の形態との対応関係をまとめて説明をすると、主タイマ割込みはＣＨ０割込み、主タイマ割込み処理はＣＨ０割込み処理、遊技制御処理は、内容的にはＳ９０〜Ｓ８００が対応するが、本願においては変形例１での開示内容を踏まえてＳ９００の前までに実行される処理を指す。判定値加算処理には、Ｓ３０１〜Ｓ３０５とＳ３１０、Ｓ３１１〜Ｓ３１５とＳ３２０、Ｓ３２１〜Ｓ３２５とＳ３３０、Ｓ３３１〜Ｓ３３５とＳ３４０が対応しており、開始値記憶処理には、Ｓ３０６〜Ｓ３０９、Ｓ３１６〜Ｓ３１９、Ｓ３２６〜Ｓ３２９、Ｓ３３６〜Ｓ３３９が対応しており、初期値加算更新処理には、Ｓ９５２〜Ｓ９５７、Ｓ９５８〜Ｓ９６３、Ｓ９６４〜Ｓ９６９、Ｓ９７０〜Ｓ９７５、Ｓ９２１〜Ｓ９２６、Ｓ９２７〜Ｓ９３２が対応している。また、残余時間処理と相対する別残余時間処理の組み合わせとしては、残余時間処理としての全初期値カウンタ更新処理と別残余時間処理としての一部初期値カウンタ更新処理が、変形例１では全初期値カウンタ更新処理と外部情報出力処理が、変形例２では全初期値カウンタ更新処理と特当初期値更新処理（或いは、確変判定初期値更新処理）が、変形例３では、特当初期値更新処理と確変判定初期値更新処理との一組が残余時間処理として、遊技状態に対応した特当初期値更新処理或いは確変判定初期値更新処理のいずれかが別残余時間処理として対応している。
また、従タイマ割込みはＣＨ１割込み、従タイマ割込み発生処理はＣＨ１タイマ修正処理Ｓ１００、残余時間処理選択処理はＳ９００、従割込み禁止残余時間処理はＳ９７６でＣＨ１の割込みが許可されるまで割込みを禁止するＳ９５１、複数初期値加算更新処理は全初期値カウンタ更新処理Ｓ９５０、一部初期値加算更新処理はＳ９２０、Ｓ１１６０、Ｓ１１３０が該当する。
更に、第１の記憶領域、第２の記憶領域、第３の記憶領域、は、内蔵ＲＡＭ１３０の情報格納エリア（ワークエリア）が該当する。
【産業上の利用可能性】
【００５０】
所定周期で加算更新される循環カウンタを用いた大当たり抽選手段を備えた遊技機において好適である。
【図面の簡単な説明】
【００５１】
【図１】パチンコ機における電源と信号の接続経路を示した説明図である。
【図２】マイクロプロセッサ１００の内部ブロックを示した説明図である。
【図３】プログラム開始処理の内容を示したフローチャートである。
【図４】ＣＨ０タイマ起動処理の内容を示したフローチャートである。
【図５】ＣＨ１タイマ起動処理の内容を示したフローチャートである。
【図６】電源断発生時処理の内容を示したフローチャートである。
【図７】遊技開始によるＣＨ０割込み処理の内容を示したフローチャートである。
【図８】ＣＨ１タイマ修正処理の内容を示したフローチャートである。
【図９】乱数カウンタ更新処理の内容を示したフローチャートである。
【図１０】乱数カウンタ更新処理の図９に続く内容を示したフローチャートである。
【図１１】全初期値カウンタ更新処理の内容を示したフローチャートである。
【図１２】一部初期値カウンタ更新処理の内容を示したフローチャートである。
【図１３】変形例１におけるＣＨ０タイマ起動処理の内容を示したフローチャートである。
【図１４】変形例２におけるＣＨ０タイマ起動処理の内容を示したフローチャートである。
【図１５】変形例３におけるＣＨ０タイマ起動処理の内容を示したフローチャートである。
【符号の説明】
【００５２】
１０  電源基板
３０  払出制御基板
５０  主制御基板
９１  始動口スイッチ
１００  主制御基板５０に搭載されたマイクロプロセッサ
１１０  マイクロプロセッサ１００に搭載されたＣＰＵ
１２０  マイクロプロセッサ１００の内蔵ＲＯＭ
１３０  マイクロプロセッサ１００の内蔵ＲＡＭ
【図１】
2009022548.tif 000003
【図２】
2009022548.tif 000004
【図３】
2009022548.tif 000005
【図４】
2009022548.tif 000006
【図５】
2009022548.tif 000007
【図６】
2009022548.tif 000008
【図７】
2009022548.tif 000009
【図８】
2009022548.tif 000010
【図９】
2009022548.tif 000011
【図１０】
2009022548.tif 000012
【図１１】
2009022548.tif 000013
【図１２】
2009022548.tif 000014
【図１３】
2009022548.tif 000015
【図１４】
2009022548.tif 000016
【図１５】
2009022548.tif 000017