(57)【要約】【課題】遊技内容がさらに複雑化、多様化しても、遊技に関する制御を短い時間で処理し、予め定められた周期内に一連の遊技制御処理を完了することができる遊技機を提供する。【解決手段】一連の通常遊技を処理するメイン処理期間（４ｍｓｅｃ）中に予め定められた複数回の割込み（ル）,（ヲ）,（ワ）,（カ）を発生させる。各割込処理では、入力ポートに接続されたSW1〜SW8の入力状態のバッファへの保存のみを行なう。そして、各割込処理により異なるバッファに保存された入力状態に基づき、メイン処理A2（ツ）の中で実行する１回の入力検出処理によって入力状態の変化を検出する。これにより、割込みでの処理負荷を軽減させることができると共に、入力検出処理の回数も減少させ、メイン処理の期間において一連の遊技処理を確実に処理することができる。【選択図】図１０
2010172589.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた複数回の割り込みが発生するごとに、一連の通常遊技を処理するメイン処理が実行開始される遊技機において、
前記複数回発生する割り込みの各処理で、各入力ポートの状態を、複数設けられている入力バッファのそれぞれ異なるバッファへ格納する処理を行い、前記メイン処理で、前記複数の入力バッファに格納された入力状態の変化に基づいて入力信号の有無を判定する入力検出処理を行う遊技制御手段を備えたことを特徴とする遊技機。
【請求項２】
前記各割り込み処理では、割り込み回数のカウント処理、及び、前記入力ポートの状態を前記複数の入力バッファに時系列的に格納する処理が実行されることを特徴とする請求項１に記載の遊技機。
【請求項３】
前記メイン処理では、前記入力検出処理、及び該入力検出処理結果に基づく乱数の更新と取得の処理が実行されていることを特徴とする請求項１または２に記載の遊技機。
【請求項４】
前記各割り込み処理では、該割り込み周期で制御が必要な出力処理が実行され、出力ポートに出力データが出力されていることを特徴とする請求項３に記載の遊技機。
【請求項５】
前記割り込み周期で制御が必要な出力処理は、ステッピングモータ制御の出力処理であることを特徴とする請求項４に記載の遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遊技機の遊技制御、特に、遊技に係る制御内容が多様化、複雑化しても、通常の遊技状態に不都合を生じることなく遊技制御を行うことができる遊技機に関するものである。
【背景技術】
【０００２】
遊技に対する遊技者の興趣を高めるため、遊技機の遊技内容は、複雑化、多様化する傾向にある。これに伴い、遊技に関する制御の処理に多くの時間が必要になり、予め定められた所定時間ごとに一連の制御が繰り返される遊技制御方式の遊技機では、一連の制御を全て実行し終わる前に所定時間が経過して次回の一連の制御が開始されてしまうという不具合も発生する。この場合、実行されなかった制御の内容によっては、遊技者が不利益をこうむる問題が発生する。
【０００３】
このような不具合を解消するために、例えば、下記の特許文献１には、メイン処理において初期化処理の完了後に一連の遊技制御処理を繰り返して実行すると共に、２ｍｓｅｃ毎に定期的にタイマ割込みがかかるように設定して、割込み処理では、外部からの入力信号の入力状態を監視し、入力状態の結果を入力情報として記憶する入力情報記憶処理を行い、メイン処理では、入力情報記憶処理によって記憶された入力情報を読み出して複製する入力情報設定処理と、入力情報設定処理によって複製された複製情報に基づき電気部品の制御処理を行うようにした構成の遊技機が開示されている（段落「００１２」「０１２８」「０１２９」）。これにより一連の遊技制御処理が終了しないうちに割込処理が開始されて入力情報が更新されたとしても、遊技制御処理に未処理となる部分が残るのを防止することができ、一連の遊技制御処理が完了しないことによりもたらされる不都合を解消することができる（段落「０１４４」「０４７５」）。
【０００４】
また、下記の特許文献２には、遊技に関する一連の処理を完了させるために、定期リセット信号の周期を長くする（４ｍｓｅｃ）と共に、この周期よりも短い分解能で処理が必要なＳＷ入力処理等は定期リセットよりも短い周期のタイマ割込みで処理する構成の遊技機が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−３３５３５号公報
【特許文献２】特開２００１−２９５４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、遊技に係る制御は、近年、さらに複雑化、多様化してきており、遊技に関する一連の制御内容を処理し終えるまでに、より多くの時間を要する状況となっている。そこで、このような状況に対応するため、一般的には、メイン処理の周期を長くすることが考えられるが、該周期を４ｍｓｅｃよりも長い周期に設定すると、通常遊技のタイマ分解能が粗くなり、アタッカの開放時間や、図柄の変動時間等の遊技状態に不都合が生じてくる。また、この状況に上記特許文献１あるいは特許文献２に開示された遊技機の技術で対応するには、複数回の割込み処理を実行してもメイン処理の実行が完結するように、各割込みの処理を短い時間で実行しなければならないが、いずれの引用文献の遊技機においても、割込みにおける処理負荷が大きく、割込み処理にある程度の時間を要するため、さらに複雑化、多様化していく遊技の制御に対応するのは困難であった。
【０００７】
そこで、本願発明はこのような事情に鑑みてなされたものであり、遊技内容がさらに複雑化、多様化された場合でも、遊技に関する制御を短い時間で処理し、予め定められた周期内に一連の遊技制御処理を完了することができる遊技機の提供を目的とするものである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に係る遊技機の発明は、予め定められた複数回の割り込みが発生するごとに、一連の通常遊技を処理するメイン処理が実行開始される遊技機において、
前記複数回発生する割り込みの各処理で、各入力ポートの状態を、複数設けられている入力バッファのそれぞれ異なるバッファへ格納する処理を行い、前記メイン処理で、前記複数の入力バッファに格納された入力状態の変化に基づいて入力信号の有無を判定する入力検出処理を行う遊技制御手段を備えたことを特徴とするものである。
【０００９】
また、請求項２に係る遊技機の発明は、請求項１に記載の発明において、前記各割り込み処理では、割り込み回数のカウント処理、及び、前記入力ポートの状態を前記複数の入力バッファに時系列的に格納する処理が実行されることを特徴とするものである。
【００１０】
予め定められた複数回の割り込みを一単位とし、この一単位の割り込み回数毎に、別の割り込みが発生してその割り込みにおいてメイン処理が、主制御部（遊技制御手段）に設けられたＣＰＵによって実行される。すなわち、一連の通常の遊技処理が実行されるメイン処理の期間内に、予め定められた複数回の割り込みが発生する。例えば、メイン処理を実行するための割り込み（上記別の割り込み）は、４ｍｓｅｃ毎に発生し、その間に発生する割り込み（上記予め定められた複数回の割り込み）は、１ｍｓｅｃ毎に発生するように設定することができる。このような設定の場合、少なくとも１ｍｓｅｃ以上の状態変化期間が入力ポートに発生すれば確実にその変化を判定することができる。
【００１１】
また、本発明では、従来、割り込み処理の中で行っていた入力ポートの状態変化検出処理（入力検出処理）を、メイン処理の中で行うようにした。このとき、入力ポートの状態は、割り込みが発生する毎に割り込み処理の中で入力バッファに格納しておく。入力バッファは、複数設けられており、各割り込み時における入力状態が、それぞれ異なる入力バッファに格納される。これにより入力バッファには、１回のメイン処理中に発生する複数回の割り込みのそれぞれの割り込み時入力状態がその複数回分だけ格納される。また、１回のメイン処理中において発生する割り込み回数のカウント処理は割り込み処理の中で行っておく。メイン処理において、上記入力バッファに格納された入力状態の変化、すなわち、時系列的に異なる入力バッファに格納された先の入力状態との比較により、入力信号の有無を判別する入力検出処理を行う。
【００１２】
この構成により、割り込み処理の負荷が軽減されるのでその処理の時間を短くずることができ、また、割り込みの度に割り込み処理の中で行っていた入力検出処理を、入力バッファに格納しておいた複数回分のデータに基づいて、メイン処理の中で一回の入力検出処理において処理できるので処理時間を短くし、より多様化、複雑化する遊技制御を、遊技状態に不都合を発生させることなく処理することができ、さらにはメイン処理の周期をより短く設定することも可能となる。
【００１３】
また、請求項３に係る遊技機の発明は、請求項１または２に記載の発明において、前記メイン処理では、前記入力検出処理、及び該入力検出処理結果に基づく乱数の更新と取得の処理が実行されていることを特徴とするものである。
【００１４】
始動入賞口に設けられた検出スイッチが入力ポートに接続されている場合、始動入賞口へ遊技球が入賞し、その入賞が検出スイッチによって検出されると、図柄の変動表示が開始されると共に、図柄に関する乱数の更新および乱数の取得が実行処理される。これら乱数の更新、取得にはある程度の処理時間を必要とするため、割り込み処理が短い間隔で発生すると、一方では、入力状態の変化を確実に検出することができる利点を有するが、その他方では、割り込みの度にその割り込み処理の中で入力検出処理およびそれに伴う乱数の更新、取得を実行していると、割り込み処理の負荷が重くなると共に、その全体の処理時間が長くなり、メイン処理の周期を長く設定しなければならないという不具合が生じる。また、スイッチの検出タイミングと乱数の更新、取得タイミングが同じ周期で行われない場合、乱数の出現に一様性はあっても、取得する乱数の一様性が担保されるか不明であり、遊技の公正を害する虞があり遊技機には不向きとなる（このため、許認可上も、当選用の乱数はスイッチの検出タイミングと乱数の更新、取得タイミングを同じ周期で行なうよう定められている）。よって、スイッチの検出タイミングと乱数の更新、取得タイミングを同じ周期で行ない、スイッチの状態変化を検出した場合には、その検出結果に基づいて乱数の更新、取得の処理を行わなければならない。そこで、本発明では、割込み時に、スイッチのオン・オフ変化の判別（スイッチの検出）は行わず、入力ポートに接続されたスイッチの状態（「１」or「０」）の保存までを行い、スイッチの入力検出は、割込み毎にそれぞれバッファに格納した複数回分の入力状態の値に基づきメイン処理内で１回でまとめて行うようにしている。そして、このスイッチ入力検出の周期に合わせて、乱数の更新および取得処理もメイン処理内において実行するようにした。これにより、割込み処理の負荷を軽減することができると共に、両者の実施タイミングを一致させることができ、また、乱数の更新、取得処理の発生回数を抑制し、全体としての（メイン処理と割込み処理）処理時間を短くすることができる。
【００１５】
また、請求項４に係る遊技機の発明は、請求項３に記載の発明において、前記各割り込み処理では、該割り込み周期で制御が必要な出力処理が実行され、出力ポートに出力データが出力されていることを特徴とするものである。
【００１６】
また、請求項５に係る遊技機の発明は、請求項４に記載の発明において、前記割り込み周期で制御が必要な出力処理は、ステッピングモータ制御の出力処理であることを特徴とするものである。
【発明の効果】
【００１７】
本発明に係る遊技機によれば、周期的に発生する割込みの処理負荷を軽減することで割込み処理に掛かる時間を短くすることができ、さらに各割込み処理において実行していた所定の処理を、複数回の割込みが発生する毎にメイン処理中においてまとめて一回の処理で実行するようにしたので処理に掛かる時間を短くすることができ、予め定められた周期内に一連の遊技制御処理を確実に完了することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明に係る遊技機の一形態を示す正面図である。
【図２】本発明に係る遊技機の電気的接続を表わすブロック図である。
【図３】本発明の形態のメイン処理を表わすフローチャートである。
【図４】本発明の形態の割込処理を表わすフローチャートである。
【図５】図４の割込処理で実行される入力状態保存処理を表わすフローチャートである。
【図６】各スイッチの状態チャートと入力状態保存値を示す図である。
【図７】（ａ）は、バッファの保存状態を示す図である。（ｂ）は、バッファの機能ブロック図である。
【図８】図３のメイン処理で実行される入力検出処理を表わすフローチャートである。
【図９】スイッチ検出方法をを示すイメージ図である。
【図１０】割込処理内における入力状態保存処理とメイン処理における入力検出処理との関係を表わす図である。
【図１１】図４とは別の形態の割込処理を表わすフローチャートである。
【図１２】図１１の割込処理で実行される出力処理の一形態を表わすフローチャートである。
【図１３】ステッピングモータの出力パターンとその選択カウンタ値を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明に係る遊技機の実施の形態を添付図面に基づいて説明する。本実施の形態ではパチンコ機を例にして説明する。なお、各図面間において、同一符号は、同一又は相当部分を示す。
【００２０】
図１は、パチンコ機１の正面図であり、説明に必要な部分を模式的に示した図である。パチンコ機１は、額縁状に形成されたガラス扉枠２を有し、ガラス扉枠２の背面側には、遊技盤３が着脱可能に取り付けられ、遊技盤３の前面には遊技領域５が設けられている。ガラス扉枠２の下側表面には打球供給皿６が設けられ、打球供給皿６の下側には、遊技球を前記遊技領域５へ発射させるハンドル７が設けられている。遊技領域５の略中央部には、複数種類の図柄を可変表示するための特別図柄表示装置８が設けられており、特別図柄表示装置８には、例えば、「左」、「中」、「右」の３つの変動図柄表示部が設けられている。特別図柄表示装置８の上部には、始動入賞口９に入った入賞球数を表示する４個のランプを有する始動保留記憶表示器１０が設けられている。始動保留記憶表示器１０は、始動入賞がある毎に４個を上限としてランプ点灯数を１つずつ増加させ、特別図柄表示装置８の可変表示が開始される毎にランプ点灯数を１つ減少させる。
【００２１】
特別図柄表示装置８の下側には始動入賞口９が設けられている。始動入賞口９は、始動口開閉装置２１を備えており、所定条件に基づいて該装置２１が動作し、始動入賞口９が開閉される。始動入賞口９の両側には、普通図柄作動ゲート１１が設けられており、また、始動入賞口９の下側には大入賞口開閉装置１２が設けられている。該大入賞口開閉装置１２は、特定遊技状態（大当り状態）において開状態となり、大入賞口１３に遊技球が入賞可能な状態となる。大入賞口１３の下側には、７セグメントＬＥＤで構成された普通図柄表示装置１４が設けられている。その他、遊技領域５には、複数の一般入賞口１５、１６が設けられている。遊技領域５の最下部には、入賞しなかった遊技球を吸収するアウト口１７が設けられている。また、遊技領域５の左右周辺には、遊技中に点灯・点滅表示される遊技盤表示灯１８が設けられ、遊技領域５の外側の上部には、効果音を発するスピーカ１９が設けられている。また、遊技領域５の外周部には本体表示灯２０が設けられている。
【００２２】
発射装置から打ち出された遊技球は、打球誘導レールを通って遊技領域５に達し、その後、遊技領域５を流下する。遊技球が普通図柄作動ゲート１１を通過すると、普通図柄表示装置１４に普通図柄（例えば、表示数字）の連続的な変化が開始される。該変化は所定時間後に停止し、停止表示された普通図柄が予め定められた特定の図柄の場合には、始動口開閉装置２１が所定時間だけ開状態となり、始動入賞口９へ遊技球が入賞し易くなる。また、遊技球が始動入賞口９に入賞すると、特別図柄表示装置８の変動図柄表示部に特別図柄（例えば、数字、絵柄、ストーリー性のある動画像等）の変動表示が開始される。該特別図柄表示装置８の変動表示は、予め定められた一定時間が経過したときに停止し、停止時の特別図柄の組み合わせが大当り図柄の組み合わせの場合、大当り遊技状態に移行する。大当たり遊技が開始されると、大入賞口１３が、予め定められた一定時間経過するまで、または、大入賞口１３に所定個数（例えば１０個）の遊技球が入賞するまで継続して開放する。この開放の後、大入賞口１３は、一旦、閉鎖状態となった後（インターバル期間経過後）、再度、上記の条件を満たすまで開放する。このような開閉期間を１ラウンドとし、このラウンドは、予め定められたラウンド数だけ繰り返される。
【００２３】
次に、図２のブロック図に基づいて、パチンコ機１の遊技の制御内容について説明する。
パチンコ機１には遊技球を検出するための各種スイッチが設けられており、該各種スイッチは、入力ポートを介して制御部に接続されている。特別図柄始動ＳＷ（スイッチ）３１は、始動入賞口９に入賞した遊技球を検出するスイッチである。普通図柄始動スイッチ３２は、普通図柄作動ゲート１１を通過する遊技球を検出するスイッチである。カウントスイッチ３３は、大入賞口１３に入賞した遊技球を検出するスイッチである。一般スイッチ１６は、一般入賞口１５、１６に入賞した遊技球を検出するスイッチである。これら各種スイッチによる検出信号は、Ｉ／Ｏポート４１の入力ポートを介して主制御部４０に入力される。
【００２４】
払出計数スイッチ３５は、払出装置５５から払い出される賞球数を検出するスイッチである。払出通路玉切スイッチ３６は、球貯留タンクから払出装置５５間における払出通路内の遊技球の有無を検出するスイッチである。皿満タンスイッチ３７は、打球供給皿６に貯留されている遊技球が満タンになったことを検出するスイッチである。これら各種スイッチによる検出信号は、図示を省略するが、払出制御部５０に設けられたＩ／Ｏポートの入力ポートを介して払出制御部５０に入力される。
【００２５】
また、ハンドル７は、発射制御部６０に接続されており、ハンドル７が操作されるとその操作信号が、図示を省略する入力ポートを介して発射制御部６０に入力される。
【００２６】
主制御部（遊技制御手段）４０にはマイクロコンピュータが搭載されており、マイクロコンピュータは、遊技制御用プログラムや各種パラメータが記憶されているＲＯＭ４３、ワークメモリとして使用されるＲＡＭ４２、遊技制御用プログラムに従って処理を実行するＣＰＵ４４、及び、Ｉ／Ｏポート４１で構成されている。Ｉ／Ｏポート４１は、各スイッチ３１、３２、３３、３４、演出制御部７０、払出制御部５０（払出計数スイッチ３５、払出通路玉切スイッチ３６、皿満タンスイッチ３７）等の外部装置に接続され、信号の入出力を制御する。 
【００２７】
主制御部４０は、各スイッチ３１、３２、３３、３４から入力される信号を解析し、解析結果に基づいて、制御コマンドを大入賞口開閉装置１２、始動口開閉装置２１、及び、演出制御部７０に出力送信する。また、主制御部４０は、各種遊技状態を示す信号をホールコンピュータとの接続端子５７に出力送信する。
【００２８】
ＣＰＵ４４は、汎用レジスタ、フラグレジスタ、インデックスレジスタ、スタックポインタ、割込みレジスタ、リフレッシュレジスタ、プログラムカウンタ、命令レジスタ、命令レコーダ、演算装置、制御装置等を備えている。各レジスタは、演算結果、次に読み込む命令のアドレス、実行状態等を保持する。ＲＡＭ４２には、遊技関連制御用変数使用領域とスタック領域とが設けられている。パチンコ機１に使用されるＲＡＭ４２の記憶容量は、一般的には２５６バイト又は５１２バイトであり、遊技関連制御用変数使用領域には、各種スイッチから入力された信号の状態が記憶される「入力状態フラグｎ（ｎ＝１、２、・・・）」領域と、割込処理を実行した回数が記憶される「割込み回数カウンタ」領域が設けられている。スタック領域は、ＣＰＵ４４のワーキングエリアとして用いられ、割込み発生時や、サブルーチンや関数を呼び出す際に、処理中のデータや戻りアドレスなどを一時的に退避する。ＣＰＵ４４がＲＯＭ４３に記憶されている遊技制御用プログラムに従って遊技処理を実行することにより、主制御部４０は遊技制御手段として機能する。
【００２９】
遊技制御手段は、電源投入時に起動されるメイン処理と、当該メイン処理の実行中に所定の周期（本実施の形態では１ｍｓｅｃ）で発生するタイマ割込みにより起動される割込処理の実行を制御する手段である。メイン処理では、処理時間の変動が大きい処理や、比較的処理時間が長い処理や、１ｍｓｅｃという短い周期で実行する必要のない遊技制御処理が実行される。また、割込処理では、比較的短い周期で正確に行う必要のある処理が実行される。具体的には、スイッチの入力状態を保存する処理を挙げることができる。また、この他、割込処理で行う処理として、表示灯点灯パターンデータを出力ポートへセットする出力処理、コマンドデータを出力ポートへセットする出力処理、外部情報データを出力ポートへセットする出力処理、アクチェータ類データを出力ポートへセットする出力処理等を挙げることができる。メイン処理と割込処理の詳しい内容については後述する。
【００３０】
パチンコ機１は、主制御部４０をメイン制御部とするとサブ制御部として、払出制御部５０、発射制御部６０、演出制御部７０、表示灯制御部７１、音声制御部７２、及び図柄制御部７３を備えている。
【００３１】
払出制御部５０は、主制御部４０から送信される払出制御コマンドに基づいて賞球の払出を制御する。払出制御部５０は、主制御部４０と同様、ＣＰＵ（技制御手段）、ＲＯＭ、ＲＡＭ、及び、Ｉ／Ｏポートを備えており、払出制御部５０のＣＰＵがＲＯＭに記憶されている払出制御用プログラムに従って処理を実行することにより、払出制御部５０は遊技制御手段として機能する。該遊技制御手段は、電源投入時に起動されるメイン処理と、該メイン処理の実行中に所定の周期で発生するタイマ割込みによって起動される割込処理との実行を制御する手段である。払出制御部５０で実行される割込処理では、主制御部４０からの払出制御コマンドを検出する処理が行われる。払出制御部５０のタイマ割込みは、主制御部４０と同様に１ｍｓ毎に発生する。
【００３２】
演出制御部７０は、主制御部４０からの制御コマンドに基づいて、表示灯制御部７１、音声制御部７２、及び、図柄制御部７３を制御する。表示灯制御部７１は、遊技盤３に設けられている始動保留記憶表示器１０及び遊技盤表示灯１８の表示制御を行うとともに、枠側に設けられている本体表示灯２０の表示制御を行っている。音声制御部７２は、スピーカ１９の音声出力制御を行っている。図柄制御部７３は、特別図柄表示装置８及び普通図柄表示装置１４等の図柄表示部２２の表示制御を行っている。発射制御部６０は、駆動モータを駆動することにより発射装置６１の発射制御を行っている。
【００３３】
次に、主制御部４０が実行する制御内容について説明する。
［メインルーチン］
図３は、主制御部４０のＣＰＵ４４が実行するメイン処理を示すフローチャートである。パチンコ機１に対して電源が投入されると、ＣＰＵ４４は、ＲＯＭ４３に記憶された遊技制御プログラムに従い、ＲＡＭ４２をワークエリアとして用いてメイン処理を実行し、先ず、必要な初期設定処理を行う。ただし、図３に示すフローチャートでは、初期設定処理の内容は省略し、初期設定処理後に予め定められた周期毎（例えば、４ｍｓｃ毎）に繰り返されるルーチンでの処理内容のみを記載している。
【００３４】
ＣＰＵ４４は、ステップ１１０において、割込み禁止状態に設定した後、ステップ１２０において、電源の遮断が発生したか否かを検出する電源断発生チェック処理を実行する。続いて、ステップ１３０において、初期値更新乱数を生成するためのカウンタのカウント値を更新する初期値更新乱数更新処理を実行する。ここで、初期値更新乱数とは、所定周期毎に変更する大当り判定用乱数カウンタの初期値を決定するための乱数のことをいう。次に、ステップ１４０において、割込み許可状態に設定した後に、ステップ１５０において、その他乱数更新処理を実行する。その他乱数とは、リーチ抽選に用いる乱数、表示する図柄の種類を決定するための乱数等のことをいう。
【００３５】
ステップ１１０からステップ１５０までの処理は、割込み回数カウンタの値が４以上になるまで繰り返し実行される。なお、ステップ１１０における割込み禁止状態の設定は、ＣＰＵ４４が割込み禁止命令を発行したり、割込み禁止用のレジスタを禁止に設定したり、マスクレジスタをセットすることによって実現され、ステップ１４０における割込み許可状態の設定は、割込み許可命令を発行したり、割込み禁止用のレジスタを許可に設定したり、マスクレジスタをリセットすることによって実現される。
【００３６】
ステップ１６０において、ＣＰＵ４４は、ＲＡＭ４２に記憶されている割込み回数カウンタの値をチェックし、値が４に達していない場合には、ステップ１１０に戻り、ステップ１１０からステップ１５０までの処理を繰り返す。一方、割込み回数カウンタの値が４以上である場合には、ステップ１７０で割込み回数カウンタをクリアし、ステップ１８０からステップ２９０において以下の制御処理を実行する。
【００３７】
ステップ１８０では、判定用乱数のカウンタのカウント値を更新する処理を行う。判定用乱数は、当たりを判定を行うための乱数である。次に、ステップ１９０では、表示用乱数のカウンタのカウント値を更新する処理を行う。表示用乱数は、特別図柄表示装置８あるいは普通図柄表示装置１４に表示される図柄を決定する乱数である。さらに、ステップ２００では、初期値用乱数のカウンタのカウント値を更新する処理を行う。初期値用乱数は、当たりを決定する乱数のカウンタの初期値を決定するための乱数である。
【００３８】
ステップ２１０では、入力ポートの状態変化に基づき各種スイッチの入力検出処理を行う。処理の詳しい内容については、後述する。続いて、ステップ２２０において、主制御部４０に接続されている各制御基板の出力処理を行う。次に、ステップ２３０において、払い出した賞球数を管理する賞球払出管理処理を行う。次に、ステップ２４０において、発生した特別遊技についての情報を管理する特別遊技管理処理を行い、ステップ２５０において、普通遊技についての情報を管理する普通遊技管理処理を行う。次に、ステップ２６０において、モータ動作についての情報を管理するモータ管理処理を行う。次に、ステップ２７０において、ホールコンピュータ等の外部装置に送信すべき大当り情報、始動情報、確率変動情報等を生成する外部情報処理を行う。次に、ステップ２８０において、パチンコ機１を検査するための遊技機試験信号を出力する遊技機試験信号出力処理を行い、ステップ２９０において、外部装置に対する情報の出力管理処理を行う。
【００３９】
ステップ２９０の処理が終了すると、ステップ１１０に戻り、メイン処理における一周期の処理を繰り返す。従来の処理では、タイマ割込みを４ｍｓｅｃ毎に発生させていたので、初期値更新乱数更新処理やその他乱数更新処理を除く遊技制御処理、例えば、各スイッチの入力変化を検出する入力検出処理、判定用乱数更新処理、表示用乱数更新処理、初期値用乱数更新処理等は、割込み処理内で行っていた。しかし、本実施の形態においては、タイマ割込みの周期を１ｍｓｅｃとしたので、この１ｍｓｅｃという短い割込処理期間内にこれらの遊技制御処理を行うことは不可能となった。このため、割込処理を４回実行した後に、４ｍｓｅｃ毎に処理開始されるメイン処理内において、これらの各遊技制御処理（図３においてステップ１８０からステップ２１０までの処理）を実行するようにしている。
【００４０】
［割込処理］
図４は、主制御部４０のＣＰＵ４４が実行する割込処理を示すフローチャートである。
本実施の形態では、ＣＰＵ４４の内蔵ＣＴＣが１ｍｓｅｃ毎に繰り返しタイマ割込みを発生するように設定されている。そして、タイマ割込みが発生すると、ＣＰＵ４４は割込処理を実行する。この割込処理では、ＣＰＵ４４は、ステップ３１０においてレジスタの退避処理を行った後、ステップ３２０において入力ポートに接続された各種スイッチの入力状態の保存処理を行う。
【００４１】
ここで、入力状態保存処理（ステップ３２０）の具体的処理内容を、図５に示すフローチャートに基づいて説明する。ステップ３２１において、Ｉ／Ｏポート４１の入力ポートの値、すなわち接続されている各スイッチの入力状態を読み込む。そして、ステップ３２２において、その読み込んだ値を該当する入力状態保存用のバッファへ保存する。該当する入力状態保存用のバッファとは、予め入力状態保存用のバッファは複数設けられており、割込み毎に読み込まれる入力ポートの値がそれぞれ保存される予め定められた順番の異なるバッファのことを言う。入力状態保存処理では、入力ポートの状態をバッファに保存する処理のみを行い、その状態に基づく入力有無の判別は行っていない。この入力有無の判別処理は、メイン処理の入力検出処理の中で行っている。これにより、割込処理における処理負荷の軽減を図っている。
【００４２】
さらに、図６、図７に基づいて、入力状態保存処理について詳しく説明する、図６は各スイッチ（ＳＷ１〜ＳＷ８）の状態チャートと入力状態保存値を示している。状態チャート上に表示された矢印（イ）〜（ヌ）は、タイマ割込みが発生するタイミング、すなわち入力ポートの読み込みタイミングを示している。そして、（イ’）〜（ヌ’）の値は、上記（イ）〜（ヌ）の入力ポート読み込みによる各スイッチの入力状態の保存値を「１」（High）と「０」（Low）によって示している。図７は複数個用意されているバッファ及びそれぞれのバッファに保存された入力状態保存値を示している。図７（ａ）に示される形態では、バッファ０〜バッファ４が設けられており、先に発生した割込みによって読み込まれた入力ポートの状態から順にバッファ０、バッファ１、バッファ２、バッファ３、バッファ４へと保存されていく。一方、保存された入力状態の値は、メイン処理の入力検出処理（図３のステップ２１０）で使用される際に、先に保存されたバッファ０からバッファ１、バッファ２、バッファ３、バッファ４の順に読み出される（図７（ｂ）参照）。読み出し処理が終了したら、バッファ４に保存されていた入力状態の値がバッファ０に格納された後、次の割込み処理で読み込まれた入力ポートの状態から順にバッファ１、バッファ２、バッファ３、バッファ４へと保存されていく。
【００４３】
入力状態保存処理でリード値を該当する入力状態バッファへ保存する処理（図５ステップ３２２）が終了すると、割込処理（図４）に戻って次のステップ３３０へ進む。ステップ３３０において、割込みカウンタの値を１加算し、次に、ステップ３４０において、レジスタの復帰処理を行った後に、ステップ３５０において、メイン処理に戻る。この実施の形態では、入力ポートに接続されたスイッチの入力状態の保存を１ｍｓｅｃ毎に行うために、タイマ割込みを１ｍｓｅｃ毎に発生させている。従来においては、スイッチの入力チェックは、例えば４ｍｓｅｃ毎に行われていたが、ゲージ構成やスイッチの位置によっては遊技球のスピードが早くなり、その場合には遊技球のスイッチ通過の検出信号が出力される時間間隔が４ｍｓｅｃ未満になることもあり、スイッチ通過検出を取りこぼす可能性があった。しかし、スイッチ検出を１ｍｓｅｃ毎に行うことにより、スイッチ通過検出の取りこぼしがなくなり、確実にスイッチを検出することができる。
【００４４】
次に、上記のようにしてバッファに保存された入力ポートの状態に基づいて行われるメイン処理中の入力検出処理（図３のステップ２１０）について以下に詳しく説明する。図８は、入力検出処理の具体的処理内容を示すフローチャートである。
先ず、ステップ４１１において、スイッチＯＮフラグをクリアする。次に、ステップ４１２において、割込処理で入力ポートの入力状態をバッファに格納した回数（図３に示すメイン処理の設定では５回（割込みカウンタの値が０〜４まで））を処理回数としてセットする。続いて、ステップ４１３において、読出しポインタ＋０のバッファの値（図７に示すバッファ０に格納した入力状態の値）をロードする。ここでは、読み出しポインタ＋０のバッファに格納された入力状態の値が「１０１０・・・・」（ａ）であったとする。なお、各入力ポートにはSW１〜SW８までのスイッチが接続されており、上記（ａ）の値は、上位ビット左からSW８、SW７、SW６、SW５、・・・の状態を表わし、その値が１、０、１、０、・・・であることを示している。
【００４５】
続いて、ステップ４１４において、（ａ）の入力状態の値を反転させるために「１１１１・・・・（0FFH）」（ｂ）とのＸＯＲとる。続いて、ステップ４１５において、上記ＸＯＲした結果（「０１０１・・・・」（ｃ））と、読み出しポインタ＋１のバッファの値（図７に示すバッファ１に格納した入力状態の値）とのＡＮＤをとる。ここでは、読み出しポインタ＋１のバッファに格納された入力状態の値が「１１００・・・・」（ｄ）であったとする。そして、ステップ４１６において、上記ＡＮＤした結果（「０１００・・・・」（ｅ））と、スイッチＯＮフラグ（フラグバッファ）の値とのＯＲをとり、その結果がスイッチＯＮフラグにセットされる。この回のスイッチＯＮフラグの値は、ステップ４１１で設定した「００００・・・・（000H）」の値であるため、新たにスイッチＯＮフラグにセットされる値は、「０１００・・・・」（ｅ）の値である。以上の結果、入力状態が０から１へ変化したビットのみを保存することができ、スイッチＯＮフラグにセットされた値が１であるビットに対応しているスイッチによって遊技球の検出があったと判別される。上記バッファ０とバッファ１に格納された入力状態の値からは、新たにスイッチＯＮフラグにセットされた値が「０１００・・・・」（ｅ）であることから、６ビット目の入力に変化があった、すなわち、ＳＷ７による遊技球の検出があったと判別される。
【００４６】
このような処理を行うことにより、入力ポートの状態の変化を１回の処理で検出することができる。すなわち入力状態が０から１へ変化したビットの検出を８ビット分まとめて一回の処理で行うことができ、遊技球の検出を行ったスイッチを容易に認識することができる。ここで、図９に、入力状態の変化を検出するイメージ図を示す。入力状態保存用の各バッファには、割込処理によって１ｍｓｅｃ毎に取り込まれた入力ポートの状態（SW1〜SW8のオン・オフ状態）が保存されている。入力検出は、先に保存された入力状態（バッファｎに保存された各ビットのデータ）「００００００００」と次に保存された入力状態（バッファｎ＋１に保存された各ビットのデータ）「０００００００１」とを比較して、入力状態が０から１へ変化しているか否かにより行う。図９では、ＳＷ１の状態が０から１へ変化しており、ＳＷ１によって入力の検出が行われたことを表わしている。そして、その入力検出の結果が、「off  off  off  off  off  off  off  on」であることを示している。
【００４７】
図８に戻って、ステップ４１７において、読出しポインタが１加算され、続いて、ステップ４１８においてセットされた処理回数（ステップ４１２）の値が１減算される。減算された処理回数の値が０でなければステップ４１３に戻り、ステップ４１３〜ステップ４１８までの処理を繰り返す。次の回の処理では、読出しポインタが１加算されているため、図７に示されるバッファで言うと、バッファ１とバッファ２に格納された入力状態の値が演算処理され、遊技球のスイッチ検出の有無が判別される。同様にして、バッファ２とバッファ３、バッファ３とバッファ４に格納された入力状態の値が演算処理され、遊技球のスイッチ検出の有無が判別される。例えば、入力検出処理が開始される間に１ｍｓｅｃ毎に４回の割込み処理が発生する場合には、いずれかの割込み処理において各ビット毎に１回でもスイッチ検出があった（入力状態が０から１へ変化した）ときは、ステップ４１７でスイッチＯＮフラグ（入力状態に０から１の変化があったビット）に１が保存される。
【００４８】
図１０に、割込処理内における入力状態保存処理とメイン処理における入力検出処理との関係を表わす。
割込み（矢印（ル）、（ヲ）、（ワ）、（カ））が発生すると、メイン処理の実行が中断され、割込処理において、入力ポートの入力状態（各スイッチSW1〜SW8の状態）がバッファに保存される。例えば、矢印（ル）で示す割込みでは、バッファに「００・・・・０１」のデータが保存されている。割込処理のルーチンを抜ける際に割込カウンタのカウント値がカウントアップされるため（図４のステップ３３０参照）、割込処理終了後にメイン処理に戻ると割込カウンタの値は、１加算された値となる。例えば、図１０において、矢印（ヲ）の割込みが発生した場合には、割込み処理での割込カウンタ値が１であったのに対して、メイン処理A1（レ）における割込カウンタの値は２にカウントアップされている。４回の割込み（矢印（ル）、（ヲ）、（ワ）、（カ））が発生し、割込カウンタの値が４に達すると、メイン処理において（図３のステップ１６０でＹｅｓに抜けて）入力検出処理（ステップ２１０）が実行される。図１０において、矢印（カ）の割込みが発生すると、割込処理終了後に割込カウンタの値が４に達し、メイン処理A2（ツ）において入力検出処理が実行される。このとき、割込カウンタの値は、メイン処理A2内でクリアされて（図３のステップ１７０）０になる。入力検出処理では、割込処理毎にバッファへ保存した先後の各スイッチSW1〜SW8の状態を比較して、状態が０から１へ変化している場合にはスイッチのオン検出が発生したと判別する。図１０に示すように、入力検出結果は「off  on ・・・・ on  off」になり、SW2とSW7によってオン検出が発生したと判別され、この結果がスイッチＯＮフラグ（フラグバッファ）にセットされる。
【００４９】
割込処理が４回に達し、メイン処理（図３）のステップ１６０でＹｅｓに抜けた後、次の割込み（図１０の矢印（ヨ））が発生する以前に入力検出処理（図３のステップ２１０）を実行し終えるようにプログラムの処理の順番（入力検出処理の順番）を設定しているので、各割込処理によって入力ポートの正確な入力状態取得を行うことができると共に、取得した入力状態のデータから正確かつ確実なスイッチ検出結果を得ることができる。
【００５０】
図８に戻って、ステップ４１８で処理回数の値が０の場合には、ステップ４１９に進み、上記スイッチ検出の判別結果から、始動入賞口９への遊技球の入賞が検出されたと判別されたとき、当たり決定用乱数を取得し記憶する。さらに、ステップ４２０に進み、上記スイッチ検出の判別結果から、その他の乱数を取得し記憶する。以上の処理が終了すると、メイン処理（図３）の次の処理であるステップ２２０に進む。
入力ポートに接続されている各スイッチの状態をバッファに保存する処理のみを割込み時に実行し、各スイッチにオン・オフ変化が生じたか否かの判別は割込み時には実行しないようにすることによって、割込処理における処理負荷を軽減する。これにより、割込み処理に必要な処理時間が短くなり、メイン処理の実行時間を長く確保することができる。さらに、メイン処理期間（４ｍｓｅｃ）内に複数回（１ｍｓｅｃ毎）の割込みを発生させ、各割込み処理で保存した入力ポート状態の保存値の複数回分を基にして、メイン処理内において１回の入力検出処理で各スイッチにオン・オフ変化が生じたか否かの判別を行うようにしたので、割込み発生回数に対して入力検出処理の回数を少なくすることができ、メイン処理における処理負荷を軽減させることができる。また、短い周期で（１ｍｓｅｃ毎に）スイッチの状態を保存しているので、スイッチの状態変化（オン／オフ変化）を確実に判別することができる。
【００５１】
また、スイッチの検出タイミングと乱数の取り込み（乱数の更新）タイミングとを一致させるために両処理を同じ周期で行なわなければならないという許認可上の要件があるところ、本発明では、割込み時に行っている処理内容は、スイッチのオン・オフ変化の判別（スイッチの検出）ではなく入力ポートに接続されたスイッチの状態（「１」or「０」）の保存であり、スイッチの検出はメイン処理内（図３の入力検出処理（ステップ２１０））で行っている。したがって、スイッチの検出と乱数の更新とはいずれもメイン処理において毎回行っており、両者の実施タイミングを一致させ上記要件を満たすことができる。例えば、１ｍｓｅｃ毎に発生する割り込みにおいて毎回、スイッチの検出を実施しようとすると、それに合わせて乱数の更新も１ｍｓｅｃの周期で実施しなければならず、乱数の更新の処理に長い時間が必要となる。本発明では、上記のようにバッファに保存しておいた複数回分のスイッチ状態データに基づいてメイン処理の周期毎に１回のスイッチ検出を行なっているので、その周期に合わせて乱数の更新を行ない、乱数更新の発生回数を抑制しＣＰＵの処理時間を短縮している。
【００５２】
次に、出力処理のうち短い分解能で出力制御が必要な出力処理（表示灯の出力処理、モータ駆動の出力処理等）を割込処理内で処理する形態について説明する。図１１は、出力処理を割込処理内に追加したフローチャートである。
【００５３】
［割込処理］
本形態の割込処理は、図４に示した割込処理と比較して、ステップ５００の出力処理が追加されているだけの違いである。したがって、同じステップ番号の詳しい処理の説明については図４の説明を参照することとしここでは省略する。
ＣＰＵ４４は、ステップ３１０においてレジスタの退避処理を行った後、ステップ３２０において入力ポートに接続された各種スイッチの入力状態を該当する入力状態バッファへ保存する。続いて、ステップ５００において、ステップ３２０でバッファに保存した入力状態に基づいて出力処理を行う。この出力処理では、メイン処理周期よりも短い分解能で出力制御が必要なもののみの処理を行ない、メイン処理周期の出力制御で十分なものの出力処理については、従来の処理と同様にメイン処理（図３）の出力管理処理（ステップ２９０）において実行する。具体的には、ステップ５００の出力処理では、割込み毎（１ｍｓｅｃ毎）にバッファに保存した入力ポートの状態に基づいて、その割込み毎に各種出力データを選択し、その選択した出力データを出力ポートに出力している。
【００５４】
ここで、割込処理毎に実行する出力処理の一例として、ステッピングモータの処理について図１２に示すフローチャートに基づいて以下に説明する。
この形態では４相ステッピングモータを２相励磁で制御している。４相ステッピングモータは、４ビットを１単位として構成される４種類の出力パターンによって各相が制御されている。図１３に４種類の出力パターン（ネ）〜（ム）とその出力パターンを選択するためのそれぞれ対応するカウンタ値を示す。ステッピングモータの回転速度は、出力パターンを切替える時間によって変化し、切り替え時間が短いほどモータの回転速度は高速になる。先ず、図１２のステップ５０１において、１つの出力パターンあたりの滞在時間を１加算する。続いて、ステップ５０２において、１つの出力パターンあたりの滞在時間が出力パターンを切替える時間と一致しているか否か、すなわち現在設定されている出力パターンの出力時間が、予め定められた切替間隔の時間に達しているか否かを判別する。出力パターンを１ｍｓｅｃ毎に切替えるように設定している場合には、ステップ５００の出力処理が開始される毎、すなわち各割込み毎にこの滞在時間と切替え時間とが一致する。また、出力パターンを２ｍｓｅｃ毎に切替えるように設定している場合には、割込みが２回発生する毎にこの滞在時間と切替え時間とが一致する。
【００５５】
ステップ５０２において滞在時間と切替え時間とが一致すると判別された場合には、ステップ５０３に進み、１つの出力パターンあたりの滞在時間を０に設定した後、ステップ５０４に進み、出力パターン（ネ）〜（ム）を選択するカウンタを１加算する。なお、出力パターン及びそれに対応するカウンタ値は、図１３に示すように４種類であるため、１加算した結果が４になった場合には、カウンタ値を０に設定する。続いて、ステップ５０５において、出力パターンを選択するカウンタに対応する出力パターンを選択し、ステップ５０６において、選択された出力パターンを出力ポート、すなわちステッピングモータへ出力する。一方、ステップ５０２において、両時間が一致しない場合には、ステップ５０５に進み、前回の割込みの出力処理で選択した出力パターンと同じ出力パターンを選択し、ステップ５０６において選択された出力パターンをステッピングモータへ出力する。出力後は、図１１の割込処理に戻って次の処理（ステップ３３０）に進む。
【００５６】
このように、割込処理において出力処理を実行することにより、割込み発生周期で出力パターンを切り換えることができ、モータを高速で回転させ、より正確なモータ制御を行うことができる。また、割込処理において出力処理を実行する場合でも、割込み毎に出力パターンを切替えるのではなく、割込カウンタが偶数のときのみ（あるいは奇数のときのみ）に切替えるように設定することで、例えば、割込み周期を１ｍｓｅｃとすると、２ｍｓｅｃ毎に出力パターンの切り換えを行うことができモータの回転速度を調整することも可能である。
【００５７】
出力処理（ステップ５００）の終了後、図１１のステップ３３０において、割込みカウンタの値を１加算し、次に、ステップ３４０において、レジスタの復帰処理を行った後に、ステップ３５０において、メイン処理に戻る。
【００５８】
この他、短い分解能で出力制御が必要な出力処理としては、表示灯（LED等）点灯パターンの出力制御、サブ制御基板へのコマンドデータの出力制御、ホール管理用コンピュータに出力される外部情報データ（大当たり情報、始動情報、確率変動情報等）の出力制御、アクチェータ類（ソレノイド、モータ等）の出力制御等が挙げられる。
【００５９】
例えば、表示灯（ＬＥＤ等）の点灯パターンの制御を出力処理（ステップ５００）で実行した場合には、割込みが発生する毎（１ｍｓｅｃ毎）に点灯／消灯の切換えが可能となり、最短２ｍｓｅｃ周期の点滅表示が可能となる。さらに、例えば、割込み発生毎に切換えを行わずに、割り込みが発生する毎に加算される割込みカウンタの値に基づいて、割込みカウンタの値が偶数のときにのみ点灯パターンを出力ポートに出力することによって、上記の周期と比較して２倍の、４ｍｓｅｃ周期の点滅表示も可能となる。
【００６０】
また、例えば、メイン処理の周期が４ｍｓｅｃであって、従来のように、そのメイン処理周期毎（４ｍｓｅｃ毎）にモータのオン・オフを切り換えた場合には、１０ｍｓｅｃのオン期間を作成することはできなかったが、モータのオン・オフ制御を出力処理（ステップ５００）で実行することにより、割込が発生する毎（１ｍｓｅｃ毎）にモータのオン・オフを切り換えることができ、１０ｍｓｅｃのオン期間を作成することが可能となり、従来の制御に比べてより分解能の細かなモータ制御が可能となる。
ただし、いずれの処理内容を割込処理内の出力処理で実行するかは、そのプログラムにおいて設定された割込みの周期と実行する処理負荷との関係で選択すればよい。
【００６１】
このように、入力ポートの処理において、各割込処理では入力状態の保存のみを行ないその入力検出処理はメイン処理内で行うようにしたことにより、割込処理の負荷を軽減させことができ、各出力処理の中の短い分解能の制御が必要となる出力処理をその割込処理内で実行することができるようにした。これにより、分解能の細かな出力制御の処理ができるようになり、より綿密な遊技内容を提供することができる。
【符号の説明】
【００６２】
１    パチンコ機
１２  大入賞口開閉装置
１８  遊技盤表示灯
２０  本体表示灯
２１  始動口開閉装置
２２  図柄表示部
３１  特別図柄始動SW
３２  普通図柄始動SW
３３  カウントSW
３４  一般SW
３５  払出計数SW
３６  払出通路玉切りSW
３７  皿満タンSW
４０  主制御部（遊技制御手段）
４１  Ｉ／Ｏポート
４２  ＲＡＭ
４３  ＲＯＭ
４４  ＣＰＵ
４５  ＲＯＭ
【図１】
2010172589.tif 000003
【図２】
2010172589.tif 000004
【図３】
2010172589.tif 000005
【図４】
2010172589.tif 000006
【図５】
2010172589.tif 000007
【図６】
2010172589.tif 000008
【図７】
2010172589.tif 000009
【図８】
2010172589.tif 000010
【図９】
2010172589.tif 000011
【図１０】
2010172589.tif 000012
【図１１】
2010172589.tif 000013
【図１２】
2010172589.tif 000014
【図１３】
2010172589.tif 000015