特許第5832497号(P5832497)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社平和の特許一覧
<>
  • 特許5832497-遊技機 図000002
  • 特許5832497-遊技機 図000003
  • 特許5832497-遊技機 図000004
  • 特許5832497-遊技機 図000005
  • 特許5832497-遊技機 図000006
  • 特許5832497-遊技機 図000007
  • 特許5832497-遊技機 図000008
  • 特許5832497-遊技機 図000009
  • 特許5832497-遊技機 図000010
  • 特許5832497-遊技機 図000011
  • 特許5832497-遊技機 図000012
  • 特許5832497-遊技機 図000013
  • 特許5832497-遊技機 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5832497
(24)【登録日】2015年11月6日
(45)【発行日】2015年12月16日
(54)【発明の名称】遊技機
(51)【国際特許分類】
   A63F 7/02 20060101AFI20151126BHJP
【FI】
   A63F7/02 326Z
【請求項の数】1
【全頁数】17
(21)【出願番号】特願2013-199956(P2013-199956)
(22)【出願日】2013年9月26日
(62)【分割の表示】特願2009-20504(P2009-20504)の分割
【原出願日】2009年1月30日
(65)【公開番号】特開2014-79599(P2014-79599A)
(43)【公開日】2014年5月8日
【審査請求日】2013年9月26日
(73)【特許権者】
【識別番号】000154679
【氏名又は名称】株式会社平和
(74)【代理人】
【識別番号】100068618
【弁理士】
【氏名又は名称】萼 経夫
(74)【代理人】
【識別番号】100104145
【弁理士】
【氏名又は名称】宮崎 嘉夫
(74)【代理人】
【識別番号】100135035
【弁理士】
【氏名又は名称】田上 明夫
(74)【代理人】
【識別番号】100131266
【弁理士】
【氏名又は名称】▲高▼ 昌宏
(74)【代理人】
【識別番号】100104385
【弁理士】
【氏名又は名称】加藤 勉
(72)【発明者】
【氏名】岩嵜 一人
(72)【発明者】
【氏名】赤坂 道春
【審査官】 阿部 知
(56)【参考文献】
【文献】 特開2000−126403(JP,A)
【文献】 特開2008−148924(JP,A)
【文献】 特開2005−329092(JP,A)
【文献】 特開2008−272066(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 7/02
(57)【特許請求の範囲】
【請求項1】
所定の周期で遊技処理を繰り返し行うとともに、第1の出力処理を実行し、前記第1の出力処理に基づき出力ポートにデータを出力する第1の処理と、
前記第1の処理よりも早い周期で繰り返し行うとともに、前記第1の処理とは異なる第2の出力処理を実行し、前記第2の出力処理に基づき出力ポートにデータを出力する第2の処理と、を実行し、
前記第2の処理で、入力ポートの状態を記憶する処理を行う入力状態保存処理と、前記第1の処理が行われた後、次の前記第1の処理が行われるまでの間に、前記第2の処理の実行回数を特定できる数を記憶する処理と、を行い、
記憶された前記第2の処理の実行回数を特定できる数が所定数になることによって実行される前記第1の処理で、前記入力状態保存処理によって所定の複数回分のデータが記憶された入力状態の変化に基づいて、入力信号の有無を判定する入力検出処理と、記憶された前記第2の処理の実行回数を特定できる数をクリアする処理と、を行う遊技制御手段を備えたことを特徴とする遊技機。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、遊技機の遊技制御、特に、遊技に係る制御内容が多様化、複雑化しても、通常の遊技状態に不都合を生じることなく遊技制御を行うことができる遊技機に関するものである。
【背景技術】
【0002】
遊技に対する遊技者の興趣を高めるため、遊技機の遊技内容は、複雑化、多様化する傾向にある。これに伴い、遊技に関する制御の処理に多くの時間が必要になり、予め定められた所定時間ごとに一連の制御が繰り返される遊技制御方式の遊技機では、一連の制御を全て実行し終わる前に所定時間が経過して次回の一連の制御が開始されてしまうという不具合も発生する。この場合、実行されなかった制御の内容によっては、遊技者が不利益をこうむる問題が発生する。
【0003】
このような不具合を解消するために、例えば、下記の特許文献1には、メイン処理において初期化処理の完了後に一連の遊技制御処理を繰り返して実行すると共に、2msec毎に定期的にタイマ割込みがかかるように設定して、割込み処理では、外部からの入力信号の入力状態を監視し、入力状態の結果を入力情報として記憶する入力情報記憶処理を行い、メイン処理では、入力情報記憶処理によって記憶された入力情報を読み出して複製する入力情報設定処理と、入力情報設定処理によって複製された複製情報に基づき電気部品の制御処理を行うようにした構成の遊技機が開示されている(段落「0012」「0128」「0129」)。これにより一連の遊技制御処理が終了しないうちに割込処理が開始されて入力情報が更新されたとしても、遊技制御処理に未処理となる部分が残るのを防止することができ、一連の遊技制御処理が完了しないことによりもたらされる不都合を解消することができる(段落「0144」「0475」)。
【0004】
また、下記の特許文献2には、遊技に関する一連の処理を完了させるために、定期リセット信号の周期を長くする(4msec)と共に、この周期よりも短い分解能で処理が必要なSW入力処理等は定期リセットよりも短い周期のタイマ割込みで処理する構成の遊技機が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−33535号公報
【特許文献2】特開2001−29549号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、遊技に係る制御は、近年、さらに複雑化、多様化してきており、遊技に関する一連の制御内容を処理し終えるまでに、より多くの時間を要する状況となっている。そこで、このような状況に対応するため、一般的には、メイン処理の周期を長くすることが考えられるが、該周期を4msecよりも長い周期に設定すると、通常遊技のタイマ分解能が粗くなり、アタッカの開放時間や、図柄の変動時間等の遊技状態に不都合が生じてくる。また、この状況に上記特許文献1あるいは特許文献2に開示された遊技機の技術で対応するには、複数回の割込み処理を実行してもメイン処理の実行が完結するように、各割込みの処理を短い時間で実行しなければならないが、いずれの引用文献の遊技機においても、割込みにおける処理負荷が大きく、割込み処理にある程度の時間を要するため、さらに複雑化、多様化していく遊技の制御に対応するのは困難であった。
【0007】
そこで、本願発明はこのような事情に鑑みてなされたものであり、遊技内容がさらに複雑化、多様化された場合でも、遊技に関する制御を短い時間で処理し、予め定められた周期内に一連の遊技制御処理を完了することができる遊技機の提供を目的とするものである。
【課題を解決するための手段】
【0008】
上記課題を解決するために、請求項1に係る遊技機の発明は、所定の周期で遊技処理を繰り返し行うとともに、第1の出力処理を実行し、前記第1の出力処理に基づき出力ポートにデータを出力する第1の処理と、前記第1の処理よりも早い周期で繰り返し行うとともに、前記第1の処理とは異なる第2の出力処理を実行し、前記第2の出力処理に基づき出力ポートにデータを出力する第2の処理と、を実行し、前記第2の処理で、入力ポートの状態を記憶する処理を行う入力状態保存処理と、前記第1の処理が行われた後、次の前記第1の処理が行われるまでの間に、前記第2の処理の実行回数を特定できる数を記憶する処理と、を行い、記憶された前記第2の処理の実行回数を特定できる数が所定数になることによって実行される前記第1の処理で、前記入力状態保存処理によって所定の複数回分のデータが記憶された入力状態の変化に基づいて、入力信号の有無を判定する入力検出処理と、記憶された前記第2の処理の実行回数を特定できる数をクリアする処理と、を行う遊技制御手段を備えたことを特徴とするものである。
【0009】
本発明は、予め定められた複数回の割り込みを一単位とし、この一単位の割り込み回数毎に、別の割り込みが発生してその割り込みにおいてメイン処理が、主制御部(遊技制御手段)に設けられたCPUによって実行される。すなわち、一連の通常の遊技処理が実行されるメイン処理の期間内に、予め定められた複数回の割り込みが発生する。例えば、メイン処理を実行するための割り込み(上記別の割り込み)は、4msec毎に発生し、その間に発生する割り込み(上記予め定められた複数回の割り込み)は、1msec毎に発生するように設定することができる。このような設定の場合、少なくとも1msec以上の状態変化期間が入力ポートに発生すれば確実にその変化を判定することができる。
【0010】
また、本発明では、従来、割り込み処理の中で行っていた入力ポートの状態変化検出処理(入力検出処理)を、メイン処理の中で行うようにした。このとき、入力ポートの状態は、割り込みが発生する毎に割り込み処理の中で入力バッファに格納しておく。入力バッファは、複数設けられており、各割り込み時における入力状態が、それぞれ異なる入力バッファに格納される。これにより入力バッファには、1回のメイン処理中に発生する複数回の割り込みのそれぞれの割り込み時入力状態がその複数回分だけ格納される。また、1回のメイン処理中において発生する割り込み回数のカウント処理は割り込み処理の中で行っておく。メイン処理において、上記入力バッファに格納された入力状態の変化、すなわち、時系列的に異なる入力バッファに格納された先の入力状態との比較により、入力信号の有無を判別する入力検出処理を行う。
【0011】
この構成により、割り込み処理の負荷が軽減されるのでその処理の時間を短くすることができ、また、割り込みの度に割り込み処理の中で行っていた入力検出処理を、入力バッファに格納しておいた複数回分のデータに基づいて、メイン処理の中で一回の入力検出処理において処理できるので処理時間を短くし、より多様化、複雑化する遊技制御を、遊技状態に不都合を発生させることなく処理することができ、さらにはメイン処理の周期をより短く設定することも可能となる。
【0012】
始動入賞口に設けられた検出スイッチが入力ポートに接続されている場合、始動入賞口へ遊技球が入賞し、その入賞が検出スイッチによって検出されると、図柄の変動表示が開始されると共に、図柄に関する乱数の更新および乱数の取得が実行処理される。これら乱数の更新、取得にはある程度の処理時間を必要とするため、割り込み処理が短い間隔で発生すると、一方では、入力状態の変化を確実に検出することができる利点を有するが、その他方では、割り込みの度にその割り込み処理の中で入力検出処理およびそれに伴う乱数の更新、取得を実行していると、割り込み処理の負荷が重くなると共に、その全体の処理時間が長くなり、メイン処理の周期を長く設定しなければならないという不具合が生じる。また、スイッチの検出タイミングと乱数の更新、取得タイミングが同じ周期で行われない場合、乱数の出現に一様性はあっても、取得する乱数の一様性が担保されるか不明であり、遊技の公正を害する虞があり遊技機には不向きとなる(このため、許認可上も、当選用の乱数はスイッチの検出タイミングと乱数の更新、取得タイミングを同じ周期で行なうよう定められている)。よって、スイッチの検出タイミングと乱数の更新、取得タイミングを同じ周期で行ない、スイッチの状態変化を検出した場合には、その検出結果に基づいて乱数の更新、取得の処理を行わなければならない。そこで、本発明では、割込み時に、スイッチのオン・オフ変化の判別(スイッチの検出)は行わず、入力ポートに接続されたスイッチの状態(「1」or「0」)の保存までを行い、スイッチの入力検出は、割込み毎にそれぞれバッファに格納した複数回分の入力状態の値に基づきメイン処理内で1回でまとめて行うようにしている。そして、このスイッチ入力検出の周期に合わせて、乱数の更新および取得処理もメイン処理内において実行するようにした。これにより、割込み処理の負荷を軽減することができると共に、両者の実施タイミングを一致させることができ、また、乱数の更新、取得処理の発生回数を抑制し、全体としての(メイン処理と割込み処理)処理時間を短くすることができる。
【発明の効果】
【0013】
本発明に係る遊技機によれば、第1の処理よりも早い周期で遊技処理を行う第2の処理において実行していた所定の処理を、複数回行う毎に第1の処理中においてまとめて一回の処理で実行するようにしたので処理に掛かる時間を短くすることができ、予め定められた周期内に一連の遊技制御処理を確実に完了することができる。
【図面の簡単な説明】
【0014】
図1】本発明に係る遊技機の一形態を示す正面図である。
図2】本発明に係る遊技機の電気的接続を表わすブロック図である。
図3】本発明の形態のメイン処理を表わすフローチャートである。
図4】本発明の形態の割込処理を表わすフローチャートである。
図5図4の割込処理で実行される入力状態保存処理を表わすフローチャートである。
図6】各スイッチの状態チャートと入力状態保存値を示す図である。
図7】(a)は、バッファの保存状態を示す図である。(b)は、バッファの機能ブロック図である。
図8図3のメイン処理で実行される入力検出処理を表わすフローチャートである。
図9】スイッチ検出方法をを示すイメージ図である。
図10】割込処理内における入力状態保存処理とメイン処理における入力検出処理との関係を表わす図である。
図11図4とは別の形態の割込処理を表わすフローチャートである。
図12図11の割込処理で実行される出力処理の一形態を表わすフローチャートである。
図13】ステッピングモータの出力パターンとその選択カウンタ値を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明に係る遊技機の実施の形態を添付図面に基づいて説明する。本実施の形態ではパチンコ機を例にして説明する。なお、各図面間において、同一符号は、同一又は相当部分を示す。
【0016】
図1は、パチンコ機1の正面図であり、説明に必要な部分を模式的に示した図である。パチンコ機1は、額縁状に形成されたガラス扉枠2を有し、ガラス扉枠2の背面側には、遊技盤3が着脱可能に取り付けられ、遊技盤3の前面には遊技領域5が設けられている。ガラス扉枠2の下側表面には打球供給皿6が設けられ、打球供給皿6の下側には、遊技球を前記遊技領域5へ発射させるハンドル7が設けられている。遊技領域5の略中央部には、複数種類の図柄を可変表示するための特別図柄表示装置8が設けられており、特別図柄表示装置8には、例えば、「左」、「中」、「右」の3つの変動図柄表示部が設けられている。特別図柄表示装置8の上部には、始動入賞口9に入った入賞球数を表示する4個のランプを有する始動保留記憶表示器10が設けられている。始動保留記憶表示器10は、始動入賞がある毎に4個を上限としてランプ点灯数を1つずつ増加させ、特別図柄表示装置8の可変表示が開始される毎にランプ点灯数を1つ減少させる。
【0017】
特別図柄表示装置8の下側には始動入賞口9が設けられている。始動入賞口9は、始動口開閉装置21を備えており、所定条件に基づいて該装置21が動作し、始動入賞口9が開閉される。始動入賞口9の両側には、普通図柄作動ゲート11が設けられており、また、始動入賞口9の下側には大入賞口開閉装置12が設けられている。該大入賞口開閉装置12は、特定遊技状態(大当り状態)において開状態となり、大入賞口13に遊技球が入賞可能な状態となる。大入賞口13の下側には、7セグメントLEDで構成された普通図柄表示装置14が設けられている。その他、遊技領域5には、複数の一般入賞口15、16が設けられている。遊技領域5の最下部には、入賞しなかった遊技球を吸収するアウト口17が設けられている。また、遊技領域5の左右周辺には、遊技中に点灯・点滅表示される遊技盤表示灯18が設けられ、遊技領域5の外側の上部には、効果音を発するスピーカ19が設けられている。また、遊技領域5の外周部には本体表示灯20が設けられている。
【0018】
発射装置から打ち出された遊技球は、打球誘導レールを通って遊技領域5に達し、その後、遊技領域5を流下する。遊技球が普通図柄作動ゲート11を通過すると、普通図柄表示装置14に普通図柄(例えば、表示数字)の連続的な変化が開始される。該変化は所定時間後に停止し、停止表示された普通図柄が予め定められた特定の図柄の場合には、始動口開閉装置21が所定時間だけ開状態となり、始動入賞口9へ遊技球が入賞し易くなる。また、遊技球が始動入賞口9に入賞すると、特別図柄表示装置8の変動図柄表示部に特別図柄(例えば、数字、絵柄、ストーリー性のある動画像等)の変動表示が開始される。該特別図柄表示装置8の変動表示は、予め定められた一定時間が経過したときに停止し、停止時の特別図柄の組み合わせが大当り図柄の組み合わせの場合、大当り遊技状態に移行する。大当たり遊技が開始されると、大入賞口13が、予め定められた一定時間経過するまで、または、大入賞口13に所定個数(例えば10個)の遊技球が入賞するまで継続して開放する。この開放の後、大入賞口13は、一旦、閉鎖状態となった後(インターバル期間経過後)、再度、上記の条件を満たすまで開放する。このような開閉期間を1ラウンドとし、このラウンドは、予め定められたラウンド数だけ繰り返される。
【0019】
次に、図2のブロック図に基づいて、パチンコ機1の遊技の制御内容について説明する。
パチンコ機1には遊技球を検出するための各種スイッチが設けられており、該各種スイッチは、入力ポートを介して制御部に接続されている。特別図柄始動SW(スイッチ)31は、始動入賞口9に入賞した遊技球を検出するスイッチである。普通図柄始動スイッチ32は、普通図柄作動ゲート11を通過する遊技球を検出するスイッチである。カウントスイッチ33は、大入賞口13に入賞した遊技球を検出するスイッチである。一般スイッチ16は、一般入賞口15、16に入賞した遊技球を検出するスイッチである。これら各種スイッチによる検出信号は、I/Oポート41の入力ポートを介して主制御部40に入力される。
【0020】
払出計数スイッチ35は、払出装置55から払い出される賞球数を検出するスイッチである。払出通路玉切スイッチ36は、球貯留タンクから払出装置55間における払出通路内の遊技球の有無を検出するスイッチである。皿満タンスイッチ37は、打球供給皿6に貯留されている遊技球が満タンになったことを検出するスイッチである。これら各種スイッチによる検出信号は、図示を省略するが、払出制御部50に設けられたI/Oポートの入力ポートを介して払出制御部50に入力される。
【0021】
また、ハンドル7は、発射制御部60に接続されており、ハンドル7が操作されるとその操作信号が、図示を省略する入力ポートを介して発射制御部60に入力される。
【0022】
主制御部(遊技制御手段)40にはマイクロコンピュータが搭載されており、マイクロコンピュータは、遊技制御用プログラムや各種パラメータが記憶されているROM43、ワークメモリとして使用されるRAM42、遊技制御用プログラムに従って処理を実行するCPU44、及び、I/Oポート41で構成されている。I/Oポート41は、各スイッチ31、32、33、34、演出制御部70、払出制御部50(払出計数スイッチ35、払出通路玉切スイッチ36、皿満タンスイッチ37)等の外部装置に接続され、信号の入出力を制御する。
【0023】
主制御部40は、各スイッチ31、32、33、34から入力される信号を解析し、解析結果に基づいて、制御コマンドを大入賞口開閉装置12、始動口開閉装置21、及び、演出制御部70に出力送信する。また、主制御部40は、各種遊技状態を示す信号をホールコンピュータとの接続端子57に出力送信する。
【0024】
CPU44は、汎用レジスタ、フラグレジスタ、インデックスレジスタ、スタックポインタ、割込みレジスタ、リフレッシュレジスタ、プログラムカウンタ、命令レジスタ、命令レコーダ、演算装置、制御装置等を備えている。各レジスタは、演算結果、次に読み込む命令のアドレス、実行状態等を保持する。RAM42には、遊技関連制御用変数使用領域とスタック領域とが設けられている。パチンコ機1に使用されるRAM42の記憶容量は、一般的には256バイト又は512バイトであり、遊技関連制御用変数使用領域には、各種スイッチから入力された信号の状態が記憶される「入力状態フラグn(n=1、2、・・・)」領域と、割込処理を実行した回数が記憶される「割込み回数カウンタ」領域が設けられている。スタック領域は、CPU44のワーキングエリアとして用いられ、割込み発生時や、サブルーチンや関数を呼び出す際に、処理中のデータや戻りアドレスなどを一時的に退避する。CPU44がROM43に記憶されている遊技制御用プログラムに従って遊技処理を実行することにより、主制御部40は遊技制御手段として機能する。
【0025】
遊技制御手段は、電源投入時に起動されるメイン処理と、当該メイン処理の実行中に所定の周期(本実施の形態では1msec)で発生するタイマ割込みにより起動される割込処理の実行を制御する手段である。メイン処理では、処理時間の変動が大きい処理や、比較的処理時間が長い処理や、1msecという短い周期で実行する必要のない遊技制御処理が実行される。また、割込処理では、比較的短い周期で正確に行う必要のある処理が実行される。具体的には、スイッチの入力状態を保存する処理を挙げることができる。また、この他、割込処理で行う処理として、表示灯点灯パターンデータを出力ポートへセットする出力処理、コマンドデータを出力ポートへセットする出力処理、外部情報データを出力ポートへセットする出力処理、アクチェータ類データを出力ポートへセットする出力処理等を挙げることができる。メイン処理と割込処理の詳しい内容については後述する。
【0026】
パチンコ機1は、主制御部40をメイン制御部とするとサブ制御部として、払出制御部50、発射制御部60、演出制御部70、表示灯制御部71、音声制御部72、及び図柄制御部73を備えている。
【0027】
払出制御部50は、主制御部40から送信される払出制御コマンドに基づいて賞球の払出を制御する。払出制御部50は、主制御部40と同様、CPU(技制御手段)、ROM、RAM、及び、I/Oポートを備えており、払出制御部50のCPUがROMに記憶されている払出制御用プログラムに従って処理を実行することにより、払出制御部50は遊技制御手段として機能する。該遊技制御手段は、電源投入時に起動されるメイン処理と、該メイン処理の実行中に所定の周期で発生するタイマ割込みによって起動される割込処理との実行を制御する手段である。払出制御部50で実行される割込処理では、主制御部40からの払出制御コマンドを検出する処理が行われる。払出制御部50のタイマ割込みは、主制御部40と同様に1ms毎に発生する。
【0028】
演出制御部70は、主制御部40からの制御コマンドに基づいて、表示灯制御部71、音声制御部72、及び、図柄制御部73を制御する。表示灯制御部71は、遊技盤3に設けられている始動保留記憶表示器10及び遊技盤表示灯18の表示制御を行うとともに、枠側に設けられている本体表示灯20の表示制御を行っている。音声制御部72は、スピーカ19の音声出力制御を行っている。図柄制御部73は、特別図柄表示装置8及び普通図柄表示装置14等の図柄表示部22の表示制御を行っている。発射制御部60は、駆動モータを駆動することにより発射装置61の発射制御を行っている。
【0029】
次に、主制御部40が実行する制御内容について説明する。
[メインルーチン]
図3は、主制御部40のCPU44が実行するメイン処理(第1の処理)を示すフローチャートである。パチンコ機1に対して電源が投入されると、CPU44は、ROM43に記憶された遊技制御プログラムに従い、RAM42をワークエリアとして用いてメイン処理を実行し、先ず、必要な初期設定処理を行う。ただし、図3に示すフローチャートでは、初期設定処理の内容は省略し、初期設定処理後に予め定められた周期毎(例えば、4msc毎)に繰り返されるルーチンでの処理内容のみを記載している。
【0030】
CPU44は、ステップ110において、割込み禁止状態に設定した後、ステップ120において、電源の遮断が発生したか否かを検出する電源断発生チェック処理を実行する。続いて、ステップ130において、初期値更新乱数を生成するためのカウンタのカウント値を更新する初期値更新乱数更新処理を実行する。ここで、初期値更新乱数とは、所定周期毎に変更する大当り判定用乱数カウンタの初期値を決定するための乱数のことをいう。次に、ステップ140において、割込み許可状態に設定した後に、ステップ150において、その他乱数更新処理を実行する。その他乱数とは、リーチ抽選に用いる乱数、表示する図柄の種類を決定するための乱数等のことをいう。
【0031】
ステップ110からステップ150までの処理は、割込み回数カウンタの値が4以上になるまで繰り返し実行される。なお、ステップ110における割込み禁止状態の設定は、CPU44が割込み禁止命令を発行したり、割込み禁止用のレジスタを禁止に設定したり、マスクレジスタをセットすることによって実現され、ステップ140における割込み許可状態の設定は、割込み許可命令を発行したり、割込み禁止用のレジスタを許可に設定したり、マスクレジスタをリセットすることによって実現される。
【0032】
ステップ160において、CPU44は、RAM42に記憶されている割込み回数カウンタの値をチェックし、値が4に達していない場合には、ステップ110に戻り、ステップ110からステップ150までの処理を繰り返す。一方、割込み回数カウンタの値が4以上である場合には、ステップ170で割込み回数カウンタをクリアし、ステップ180からステップ290において以下の制御処理を実行する。
【0033】
ステップ180では、判定用乱数のカウンタのカウント値を更新する処理を行う。判定用乱数は、当たりを判定を行うための乱数である。次に、ステップ190では、表示用乱数のカウンタのカウント値を更新する処理を行う。表示用乱数は、特別図柄表示装置8あるいは普通図柄表示装置14に表示される図柄を決定する乱数である。さらに、ステップ200では、初期値用乱数のカウンタのカウント値を更新する処理を行う。初期値用乱数は、当たりを決定する乱数のカウンタの初期値を決定するための乱数である。
【0034】
ステップ210では、入力ポートの状態変化に基づき各種スイッチの入力検出処理を行う。処理の詳しい内容については、後述する。続いて、ステップ220において、主制御部40に接続されている各制御基板の出力処理を行う。次に、ステップ230において、払い出した賞球数を管理する賞球払出管理処理を行う。次に、ステップ240において、発生した特別遊技についての情報を管理する特別遊技管理処理を行い、ステップ250において、普通遊技についての情報を管理する普通遊技管理処理を行う。次に、ステップ260において、モータ動作についての情報を管理するモータ管理処理を行う。次に、ステップ270において、ホールコンピュータ等の外部装置に送信すべき大当り情報、始動情報、確率変動情報等を生成する外部情報処理を行う。次に、ステップ280において、パチンコ機1を検査するための遊技機試験信号を出力する遊技機試験信号出力処理を行い、ステップ290において、外部装置に対する情報の出力管理処理(第1の処理の出力処理)を行う。
【0035】
ステップ290の処理が終了すると、ステップ110に戻り、メイン処理における一周期の処理を繰り返す。従来の処理では、タイマ割込みを4msec毎に発生させていたので、初期値更新乱数更新処理やその他乱数更新処理を除く遊技制御処理、例えば、各スイッチの入力変化を検出する入力検出処理、判定用乱数更新処理、表示用乱数更新処理、初期値用乱数更新処理等は、割込み処理内で行っていた。しかし、本実施の形態においては、タイマ割込みの周期を1msecとしたので、この1msecという短い割込処理期間内にこれらの遊技制御処理を行うことは不可能となった。このため、割込処理を4回実行した後に、4msec毎に処理開始されるメイン処理内において、これらの各遊技制御処理(図3においてステップ180からステップ210までの処理)を実行するようにしている。
【0036】
[割込処理]
図4は、主制御部40のCPU44が実行する割込処理(第2の処理)を示すフローチャートである。本実施の形態では、CPU44の内蔵CTCが1msec毎に繰り返しタイマ割込みを発生するように設定されている。そして、タイマ割込みが発生すると、CPU44は割込処理を実行する。この割込処理では、CPU44は、ステップ310においてレジスタの退避処理を行った後、ステップ320において入力ポートに接続された各種スイッチの入力状態の保存処理を行う。
【0037】
ここで、入力状態保存処理(ステップ320)の具体的処理内容を、図5に示すフローチャートに基づいて説明する。ステップ321において、I/Oポート41の入力ポートの値、すなわち接続されている各スイッチの入力状態を読み込む。そして、ステップ322において、その読み込んだ値を該当する入力状態保存用のバッファへ保存する。記憶手段として、該当する入力状態保存用のバッファとは、予め入力状態保存用のバッファは複数設けられており、割込み毎に読み込まれる入力ポートの値がそれぞれ保存される予め定められた順番の異なるバッファのことを言う。入力状態保存処理では、入力ポートの状態をバッファに保存する処理のみを行い、その状態に基づく入力有無の判別は行っていない。この入力有無の判別処理は、メイン処理の入力検出処理の中で行っている。これにより、割込処理における処理負荷の軽減を図っている。
【0038】
さらに、図6図7に基づいて、入力状態保存処理について詳しく説明する、図6は各スイッチ(SW1〜SW8)の状態チャートと入力状態保存値を示している。状態チャート上に表示された矢印(イ)〜(ヌ)は、タイマ割込みが発生するタイミング、すなわち入力ポートの読み込みタイミングを示している。そして、(イ’)〜(ヌ’)の値は、上記(イ)〜(ヌ)の入力ポート読み込みによる各スイッチの入力状態の保存値を「1」(High)と「0」(Low)によって示している。図7は複数個用意されているバッファ及びそれぞれのバッファに保存された入力状態保存値を示している。図7(a)に示される形態では、バッファ0〜バッファ4が設けられており、先に発生した割込みによって読み込まれた入力ポートの状態から順にバッファ0、バッファ1、バッファ2、バッファ3、バッファ4へと保存されていく。一方、保存された入力状態の値は、メイン処理の入力検出処理(図3のステップ210)で使用される際に、先に保存されたバッファ0からバッファ1、バッファ2、バッファ3、バッファ4の順に読み出される(図7(b)参照)。読み出し処理が終了したら、バッファ4に保存されていた入力状態の値がバッファ0に格納された後、次の割込み処理で読み込まれた入力ポートの状態から順にバッファ1、バッファ2、バッファ3、バッファ4へと保存されていく。
【0039】
入力状態保存処理でリード値を該当する入力状態バッファへ保存する処理(図5ステップ322)が終了すると、割込処理(図4)に戻って次のステップ330へ進む。ステップ330において、割込みカウンタの値を1加算し、次に、ステップ340において、レジスタの復帰処理を行った後に、ステップ350において、メイン処理に戻る。この実施の形態では、入力ポートに接続されたスイッチの入力状態の保存を1msec毎に行うために、タイマ割込みを1msec毎に発生させている。従来においては、スイッチの入力チェックは、例えば4msec毎に行われていたが、ゲージ構成やスイッチの位置によっては遊技球のスピードが早くなり、その場合には遊技球のスイッチ通過の検出信号が出力される時間間隔が4msec未満になることもあり、スイッチ通過検出を取りこぼす可能性があった。しかし、スイッチ検出を1msec毎に行うことにより、スイッチ通過検出の取りこぼしがなくなり、確実にスイッチを検出することができる。
【0040】
次に、上記のようにしてバッファに保存された入力ポートの状態に基づいて行われるメイン処理中の入力検出処理(図3のステップ210)について以下に詳しく説明する。図8は、入力検出処理の具体的処理内容を示すフローチャートである。先ず、ステップ411において、スイッチONフラグをクリアする。次に、ステップ412において、割込処理で入力ポートの入力状態をバッファに格納した回数(図3に示すメイン処理の設定では5回(割込みカウンタの値が0〜4まで))を処理回数としてセットする。続いて、ステップ413において、読出しポインタ+0のバッファの値(図7に示すバッファ0に格納した入力状態の値)をロードする。ここでは、読み出しポインタ+0のバッファに格納された入力状態の値が「1010・・・・」(a)であったとする。なお、各入力ポートにはSW1〜SW8までのスイッチが接続されており、上記(a)の値は、上位ビット左からSW8、SW7、SW6、SW5、・・・の状態を表わし、その値が1、0、1、0、・・・であることを示している。
【0041】
続いて、ステップ414において、(a)の入力状態の値を反転させるために「1111・・・・(0FFH)」(b)とのXORをとる。続いて、ステップ415において、上記XORした結果(「0101・・・・」(c))と、読み出しポインタ+1のバッファの値(図7に示すバッファ1に格納した入力状態の値)とのANDをとる。ここでは、読み出しポインタ+1のバッファに格納された入力状態の値が「1100・・・・」(d)であったとする。そして、ステップ416において、上記ANDした結果(「0100・・・・」(e))と、スイッチONフラグ(フラグバッファ)の値とのORをとり、その結果がスイッチONフラグにセットされる。この回のスイッチONフラグの値は、ステップ411で設定した「0000・・・・(000H)」の値であるため、新たにスイッチONフラグにセットされる値は、「0100・・・・」(e)の値である。以上の結果、入力状態が0から1へ変化したビットのみを保存することができ、スイッチONフラグにセットされた値が1であるビットに対応しているスイッチによって遊技球の検出があったと判別される。上記バッファ0とバッファ1に格納された入力状態の値からは、新たにスイッチONフラグにセットされた値が「0100・・・・」(e)であることから、6ビット目の入力に変化があった、すなわち、SW7による遊技球の検出があったと判別される。
【0042】
このような処理を行うことにより、入力ポートの状態の変化を1回の処理で検出することができる。すなわち入力状態が0から1へ変化したビットの検出を8ビット分まとめて一回の処理で行うことができ、遊技球の検出を行ったスイッチを容易に認識することができる。ここで、図9に、入力状態の変化を検出するイメージ図を示す。入力状態保存用の各バッファには、割込処理によって1msec毎に取り込まれた入力ポートの状態(SW1〜SW8のオン・オフ状態)が保存されている。入力検出は、先に保存された入力状態(バッファnに保存された各ビットのデータ)「00000000」と次に保存された入力状態(バッファn+1に保存された各ビットのデータ)「00000001」とを比較して、入力状態が0から1へ変化しているか否かにより行う。図9では、SW1の状態が0から1へ変化しており、SW1によって入力の検出が行われたことを表わしている。そして、その入力検出の結果が、「off off off off off off off on」であることを示している。
【0043】
図8に戻って、ステップ417において、読出しポインタが1加算され、続いて、ステップ418においてセットされた処理回数(ステップ412)の値が1減算される。減算された処理回数の値が0でなければステップ413に戻り、ステップ413〜ステップ418までの処理を繰り返す。次の回の処理では、読出しポインタが1加算されているため、図7に示されるバッファで言うと、バッファ1とバッファ2に格納された入力状態の値が演算処理され、遊技球のスイッチ検出の有無が判別される。同様にして、バッファ2とバッファ3、バッファ3とバッファ4に格納された入力状態の値が演算処理され、遊技球のスイッチ検出の有無が判別される。例えば、入力検出処理が開始される間に1msec毎に4回の割込み処理が発生する場合には、いずれかの割込み処理において各ビット毎に1回でもスイッチ検出があった(入力状態が0から1へ変化した)ときは、ステップ417でスイッチONフラグ(入力状態に0から1の変化があったビット)に1が保存される。
【0044】
図10に、割込処理内における入力状態保存処理とメイン処理における入力検出処理との関係を表わす。
割込み(矢印(ル)、(ヲ)、(ワ)、(カ))が発生すると、メイン処理の実行が中断され、割込処理において、入力ポートの入力状態(各スイッチSW1〜SW8の状態)がバッファに保存される。例えば、矢印(ル)で示す割込みでは、バッファに「00・・・・01」のデータが保存されている。割込処理のルーチンを抜ける際に割込カウンタのカウント値がカウントアップされるため(図4のステップ330参照)、割込処理終了後にメイン処理に戻ると割込カウンタの値は、1加算された値となる。例えば、図10において、矢印(ヲ)の割込みが発生した場合には、割込み処理での割込カウンタ値が1であったのに対して、メイン処理A1(レ)における割込カウンタの値は2にカウントアップされている。4回の割込み(矢印(ル)、(ヲ)、(ワ)、(カ))が発生し、割込カウンタの値が4に達すると、メイン処理において(図3のステップ160でYesに抜けて)入力検出処理(ステップ210)が実行される。図10において、矢印(カ)の割込みが発生すると、割込処理終了後に割込カウンタの値が4に達し、メイン処理A2(ツ)において入力検出処理が実行される。このとき、割込カウンタの値は、メイン処理A2内でクリアされて(図3のステップ170)0になる。入力検出処理では、割込処理毎にバッファへ保存した先後の各スイッチSW1〜SW8の状態を比較して、状態が0から1へ変化している場合にはスイッチのオン検出が発生したと判別する。図10に示すように、入力検出結果は「off on ・・・・ on off」になり、SW2とSW7によってオン検出が発生したと判別され、この結果がスイッチONフラグ(フラグバッファ)にセットされる。
【0045】
割込処理が4回に達し、メイン処理(図3)のステップ160でYesに抜けた後、次の割込み(図10の矢印(ヨ))が発生する以前に入力検出処理(図3のステップ210)を実行し終えるようにプログラムの処理の順番(入力検出処理の順番)を設定しているので、各割込処理によって入力ポートの正確な入力状態取得を行うことができると共に、取得した入力状態のデータから正確かつ確実なスイッチ検出結果を得ることができる。
【0046】
図8に戻って、ステップ418で処理回数の値が0の場合には、ステップ419に進み、上記スイッチ検出の判別結果から、始動入賞口9への遊技球の入賞が検出されたと判別されたとき、当たり決定用乱数を取得し記憶する。さらに、ステップ420に進み、上記スイッチ検出の判別結果から、その他の乱数を取得し記憶する。以上の処理が終了すると、メイン処理(図3)の次の処理であるステップ220に進む。
入力ポートに接続されている各スイッチの状態をバッファに保存する処理のみを割込み時に実行し、各スイッチにオン・オフ変化が生じたか否かの判別は割込み時には実行しないようにすることによって、割込処理における処理負荷を軽減する。これにより、割込み処理に必要な処理時間が短くなり、メイン処理の実行時間を長く確保することができる。さらに、メイン処理期間(4msec)内に複数回(1msec毎)の割込みを発生させ、各割込み処理で保存した入力ポート状態の保存値の複数回分を基にして、メイン処理内において1回の入力検出処理で各スイッチにオン・オフ変化が生じたか否かの判別を行うようにしたので、割込み発生回数に対して入力検出処理の回数を少なくすることができ、メイン処理における処理負荷を軽減させることができる。また、短い周期で(1msec毎に)スイッチの状態を保存しているので、スイッチの状態変化(オン/オフ変化)を確実に判別することができる。
【0047】
また、スイッチの検出タイミングと乱数の取り込み(乱数の更新)タイミングとを一致させるために両処理を同じ周期で行なわなければならないという許認可上の要件があるところ、本発明では、割込み時に行っている処理内容は、スイッチのオン・オフ変化の判別(スイッチの検出)ではなく入力ポートに接続されたスイッチの状態(「1」or「0」)の保存であり、スイッチの検出はメイン処理内(図3の入力検出処理(ステップ210))で行っている。したがって、スイッチの検出と乱数の更新とはいずれもメイン処理において毎回行っており、両者の実施タイミングを一致させ上記要件を満たすことができる。例えば、1msec毎に発生する割り込みにおいて毎回、スイッチの検出を実施しようとすると、それに合わせて乱数の更新も1msecの周期で実施しなければならず、乱数の更新の処理に長い時間が必要となる。本発明では、上記のようにバッファに保存しておいた複数回分のスイッチ状態データに基づいてメイン処理の周期毎に1回のスイッチ検出を行なっているので、その周期に合わせて乱数の更新を行ない、乱数更新の発生回数を抑制しCPUの処理時間を短縮している。
【0048】
次に、出力処理のうち短い分解能で出力制御が必要な出力処理(表示灯の出力処理、モータ駆動の出力処理等)を割込処理内で処理する形態について説明する。図11は、出力処理を割込処理内に追加したフローチャートである。
【0049】
[割込処理]
本形態の割込処理は、図4に示した割込処理と比較して、ステップ500の出力処理(第2の処理での出力処理)が追加されているだけの違いである。したがって、同じステップ番号の詳しい処理の説明については図4の説明を参照することとしここでは省略する。
CPU44は、ステップ310においてレジスタの退避処理を行った後、ステップ320において入力ポートに接続された各種スイッチの入力状態を該当する入力状態バッファへ保存する。続いて、ステップ500において、ステップ320でバッファに保存した入力状態に基づいて出力処理を行う。この出力処理では、メイン処理周期よりも短い分解能で出力制御が必要なもののみの処理を行ない、メイン処理周期の出力制御で十分なものの出力処理(第1の処理での出力処理)については、従来の処理と同様にメイン処理(図3)の出力管理処理(ステップ290)において実行する。具体的には、ステップ500の出力処理では、割込み毎(1msec毎)にバッファに保存した入力ポートの状態に基づいて、その割込み毎に各種出力データを選択し、その選択した出力データを出力ポートに出力している。
【0050】
ここで、割込処理毎に実行する出力処理の一例として、ステッピングモータの処理について図12に示すフローチャートに基づいて以下に説明する。
この形態では4相ステッピングモータを2相励磁で制御している。4相ステッピングモータは、4ビットを1単位として構成される4種類の出力パターンによって各相が制御されている。図13に4種類の出力パターン(ネ)〜(ム)とその出力パターンを選択するためのそれぞれ対応するカウンタ値を示す。ステッピングモータの回転速度は、出力パターンを切替える時間によって変化し、切り替え時間が短いほどモータの回転速度は高速になる。先ず、図12のステップ501において、1つの出力パターンあたりの滞在時間を1加算する。続いて、ステップ502において、1つの出力パターンあたりの滞在時間が出力パターンを切替える時間と一致しているか否か、すなわち現在設定されている出力パターンの出力時間が、予め定められた切替間隔の時間に達しているか否かを判別する。出力パターンを1msec毎に切替えるように設定している場合には、ステップ500の出力処理が開始される毎、すなわち各割込み毎にこの滞在時間と切替え時間とが一致する。また、出力パターンを2msec毎に切替えるように設定している場合には、割込みが2回発生する毎にこの滞在時間と切替え時間とが一致する。
【0051】
ステップ502において滞在時間と切替え時間とが一致すると判別された場合には、ステップ503に進み、1つの出力パターンあたりの滞在時間を0に設定した後、ステップ504に進み、出力パターン(ネ)〜(ム)を選択するカウンタを1加算する。なお、出力パターン及びそれに対応するカウンタ値は、図13に示すように4種類であるため、1加算した結果が4になった場合には、カウンタ値を0に設定する。続いて、ステップ505において、出力パターンを選択するカウンタに対応する出力パターンを選択し、ステップ506において、選択された出力パターンを出力ポート、すなわちステッピングモータへ出力する。一方、ステップ502において、両時間が一致しない場合には、ステップ505に進み、前回の割込みの出力処理で選択した出力パターンと同じ出力パターンを選択し、ステップ506において選択された出力パターンをステッピングモータへ出力する。出力後は、図11の割込処理に戻って次の処理(ステップ330)に進む。
【0052】
このように、割込処理において出力処理を実行することにより、割込み発生周期で出力パターンを切り換えることができ、モータを高速で回転させ、より正確なモータ制御を行うことができる。また、割込処理において出力処理を実行する場合でも、割込み毎に出力パターンを切替えるのではなく、割込カウンタが偶数のときのみ(あるいは奇数のときのみ)に切替えるように設定することで、例えば、割込み周期を1msecとすると、2msec毎に出力パターンの切り換えを行うことができモータの回転速度を調整することも可能である。
【0053】
出力処理(ステップ500)の終了後、図11のステップ330において、割込みカウンタの値を1加算し、次に、ステップ340において、レジスタの復帰処理を行った後に、ステップ350において、メイン処理に戻る。
【0054】
この他、短い分解能で出力制御が必要な出力処理としては、表示灯(LED等)点灯パターンの出力制御、サブ制御基板へのコマンドデータの出力制御、ホール管理用コンピュータに出力される外部情報データ(大当たり情報、始動情報、確率変動情報等)の出力制御、アクチェータ類(ソレノイド、モータ等)の出力制御等が挙げられる。
【0055】
例えば、表示灯(LED等)の点灯パターンの制御を出力処理(ステップ500)で実行した場合には、割込みが発生する毎(1msec毎)に点灯/消灯の切換えが可能となり、最短2msec周期の点滅表示が可能となる。さらに、例えば、割込み発生毎に切換えを行わずに、割り込みが発生する毎に加算される割込みカウンタの値に基づいて、割込みカウンタの値が偶数のときにのみ点灯パターンを出力ポートに出力することによって、上記の周期と比較して2倍の、4msec周期の点滅表示も可能となる。
【0056】
また、例えば、メイン処理の周期が4msecであって、従来のように、そのメイン処理周期毎(4msec毎)にモータのオン・オフを切り換えた場合には、10msecのオン期間を作成することはできなかったが、モータのオン・オフ制御を出力処理(ステップ500)で実行することにより、割込が発生する毎(1msec毎)にモータのオン・オフを切り換えることができ、10msecのオン期間を作成することが可能となり、従来の制御に比べてより分解能の細かなモータ制御が可能となる。
ただし、いずれの処理内容を割込処理内の出力処理で実行するかは、そのプログラムにおいて設定された割込みの周期と実行する処理負荷との関係で選択すればよい。
【0057】
このように、入力ポートの処理において、各割込処理では入力状態の保存のみを行ないその入力検出処理はメイン処理内で行うようにしたことにより、割込処理の負荷を軽減させことができ、各出力処理の中の短い分解能の制御が必要となる出力処理をその割込処理内で実行することができるようにした。これにより、分解能の細かな出力制御の処理ができるようになり、より綿密な遊技内容を提供することができる。
【符号の説明】
【0058】
1 パチンコ機
12 大入賞口開閉装置
18 遊技盤表示灯
20 本体表示灯
21 始動口開閉装置
22 図柄表示部
31 特別図柄始動SW
32 普通図柄始動SW
33 カウントSW
34 一般SW
35 払出計数SW
36 払出通路玉切りSW
37 皿満タンSW
40 主制御部(遊技制御手段)
41 I/Oポート
42 RAM
43 ROM
44 CPU
45 ROM
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13