(57)【要約】【課題】  中断された遊技動作が再開されるに際して、万一、電源電圧の変動やその他の電気的トラブルがあったとしても、極力、元のゲームが再現されるように改善された遊技機を提供する。【解決手段】  電源投入に対応して開始されて通常は無限ループ処理で終わる第１処理と、所定時間（Ｔ）毎に繰り返し実行される第２処理と、電源電圧が正常レベルを下回ると強制的に開始される第３処理とをパチンコ機の制御プログラムに含む。第３処理では、特定の記憶エリアへのデータ退避の完了したことを示すバックアップフラグをセットすると共に、スタックポインタの値を特定の記憶エリアに保存する処理が行われ、第１処理では、前記バックアップフラグのリセット処理と、前記特定の記憶エリアのクリア処理とを実行する。【選択図】  なし【特許請求の範囲】
【請求項１】
遊技動作の為の制御プログラムを記憶したプログラム記憶手段と、この制御プログラムに基づいて遊技動作を制御するＣＰＵとを有し、遊技に関連して遊技者に有利な第１状態と遊技者に不利な第２状態とを択一的に選択可能な遊技制御手段を備えた遊技機であって、
前記制御プログラムは、電源投入に対応して開始され通常は無限ループ処理で終わる第１処理と、所定時間（Ｔ）毎に繰り返し実行される第２処理と、電源電圧が所定レベルを下回ると強制的に開始される第３処理とを含み、
前記第３処理では、特定の記憶エリアへのデータ退避が完了したことを示すバックアップフラグをセットすると共に、スタックポインタの値を特定の記憶エリアに保存する処理が実行され、
前記第１処理では、前記バックアップフラグのリセット処理と、前記特定の記憶エリアのクリア処理とを実行可能としたことを特徴とする遊技機。
【請求項２】
前記バックアップフラグのリセット処理と、前記記憶エリアのクリア処理とを連続して行うようにした請求項１に記載の遊技機。
【請求項３】
前記第３処理には、前記バックアップフラグの内容、及び／又は、前記特定の記憶エリアの内容をチェックする処理が含まれている請求項１又は２に記載の遊技機。
【請求項４】
前記バックアップフラグの内容、及び／又は、前記特定の記憶エリアの内容によって、前記第３処理が連続的に繰り返されたことを判定するようにした請求項３に記載の遊技機。
【請求項５】
前記バックアップフラグの内容、及び／又は、前記特定の記憶エリアの内容によって、前記第３処理が連続的に繰り返し開始されていると判定された場合には、前記制御プログラムを初期状態からやり直すようにしている請求項４に記載の遊技機。
【請求項６】
装置内部に記憶された制御プログラムにしたがって遊技動作を実現する一方、前記制御プログラムにしたがった正常な処理がされなくなった場合には、リセット手段が機能して遊技動作を強制的に初期状態に戻すようにした遊技機であって、
前記第１処理には、前記リセット手段の動作を初期状態に戻すクリア処理が含まれている請求項１〜５の何れかに記載の遊技機。
【請求項７】
前記リセット手段は、一定時間以内に前記制御プログラムがクリア処理を実行しているか否かによって、正常な遊技動作が実現されているか否かを判定するようにしている請求項６に記載の遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パチンコ機などの遊技機に関し、特に、遊技動作中に停電などが生じても、電源復旧後には正常に元の遊技動作を再開できるように改善した遊技機に関するものである。
【背景技術】
【０００２】
パチンコ機などのマイコン内蔵型の遊技機は、電源電圧が所定値を下回った場合には正常な動作を継続することが不可能となる。そこで、パチンコ機などでは落雷などに伴う停電が生じても、その影響を受けないような工夫が必要となる。
【０００３】
ここで、各パチンコホールに自家発電装置を備えるような対策もあり得るが、パチンコ機での消費電力は少なくなく、しかもパチンコ機の台数も多いので、かかる対策はコスト的にも設置空間的にも現実的でない。
【０００４】
そのため、停電に対する一般的な対策としては、ＮＭＩの処理によって必要なデータをＲＡＭエリアに保存し、そのＲＡＭエリアだけにバックアップ電源を供給して内容を維持し、商用電源が復旧すればバックアップされたデータを読み出して、停電前の遊技動作を再現するようにしている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、停電などのトラブルは突発的に生じるので、例えば、停電前のパチンコ機が大当り状態であったような場合には、電源復旧後は、如何なる場合にも大当りゲームが再現される必要があり、そうでないと遊技者との間に無用のトラブルが発生してしまうことになる。また、停電状態でなくても、電源ラインに予期せぬ異常が生じることもあり、例えば、電源ラインが不安定な状態で変動しても、適切な動作をすることが望まれる。
【０００６】
この発明は、かかる要請に基づいてなされたものであって、中断された遊技動作が再開されるに際して、万一、電源電圧の変動やその他の電気的トラブルがあったとしても、極力、元のゲームが再現されるように改善された遊技機を提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明は、遊技動作の為の制御プログラムを記憶したプログラム記憶手段と、この制御プログラムに基づいて遊技動作を制御するＣＰＵとを有し、遊技に関連して遊技者に有利な第１状態と遊技者に不利な第２状態とを択一的に選択可能な遊技制御手段を備えた遊技機であって、前記制御プログラムは、電源投入に対応して開始され通常は無限ループ処理で終わる第１処理と、所定時間（Ｔ）毎に繰り返し実行される第２処理と、電源電圧が所定レベルを下回ると強制的に開始される第３処理とを含み、前記第３処理では、特定の記憶エリアへのデータ退避が完了したことを示すバックアップフラグをセットすると共に、スタックポインタの値を特定の記憶エリアに保存する処理が実行され、前記第１処理では、前記バックアップフラグのリセット処理と、前記特定の記憶エリアのクリア処理とを実行可能としている。
【０００８】
本発明では、第３処理では、特定の記憶エリアへのデータ退避の完了したことを示すバックアップフラグをセットすると共にスタックポインタの値を特定の記憶エリアに保存する処理が行われ、第１処理では、バックアップフラグのリセット処理と、特定の記憶エリアのクリア処理とを実行しているので、バックアップフラグや特定の記憶エリアの内容をチェックするだけで現在の機器の動作状態を把握することが可能となる。例えば、第３処理において、バックアップフラグや特定の記憶エリアの内容をチェックした場合に、それらの内容がリセットやクリアされていない場合には、その後の処理を中止することによって正しく中断前の処理を再開することができる。
【０００９】
本発明の好ましい実施態様では、バックアップフラグのリセット処理と、記憶エリアのクリア処理とは、連続して行われる。そのため、この２つの処理の間に、何らかのトラブルが生じてＣＰＵがリセットされる可能性は極めて低く、プログラム暴走の可能性も極限的に低い。なお、バックアップフラグのリセット処理と、記憶エリアのクリア処理とは、連続して行われる限り、その順番は、何れでも良い。
【発明の効果】
【００１０】
以上説明したように、本発明によれば、中断された遊技動作が再開されるに際して、万一、電源電圧の変動やその他の電気的トラブルがあったとしても、極力、元のゲームが再現することが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の一実施例であるカード式弾球遊技機に基づいて本発明の実施の形態を説明する。図１は、本実施例のパチンコ機２を示す斜視図であり、図２は、同パチンコ機２の側面図である。
【００１２】
図１に示すパチンコ機２は、島構造体に着脱可能に装着される矩形枠状の木製の外枠３と、外枠３に固着されたヒンジＨを介して開閉可能に枢着される前枠４とで構成されている。なお、このパチンコ機２は、カード式球貸し機１に電気的に接続された状態で、パチンコホールの島構造体の長さ方向に複数個が配設されている。
【００１３】
ヒンジＨを介して外枠３に枢着される前枠４には、遊技盤５が裏側から着脱自在に装着され、遊技盤５の前側に対応させて、窓部を有するガラス扉６と前面板７とが夫々開閉自在に枢着されている。前面板７には発射用の遊技球を貯留する上皿８が装着され、前枠４の下部には、上皿８から溢流し又は抜き取った遊技球を貯留する下皿９と、発射手段１０の発射ハンドル１１とが設けられている。
【００１４】
この発射手段１０は、回動操作可能な発射ハンドル１１と、この発射ハンドル１１の回動角度に応じた打撃力で打撃槌１２（図４）により遊技球を発射させる発射モータなどを備えている。上皿８の右部には、カード式球貸し機１に対する球貸し操作用の操作パネル１３が設けられ、この操作パネル１３には、カード残額を３桁の数字で表示するカード残額表示部１３ａと、所定金額分の遊技球の球貸しを指示する球貸しスイッチ１３ｂと、ゲーム終了時にカードの返却を指令する返却スイッチ１３ｃとが設けられている。
【００１５】
図３に示すように、遊技盤５には、金属製の外レールと内レールとからなるガイドレール１５がほぼ環状に設けられ、このガイドレール１５の内側の遊技領域５ａには、カラーの液晶ディスプレイ１６、図柄始動手段（図柄始動兼入賞手段）１７、開閉式入賞手段（大入賞手段）１８、複数の普通入賞手段１９（上段の普通入賞手段１９以外に、開閉式入賞手段１８の左右両側部に６つの普通入賞手段１９）、２つのゲート２０（通過口）が夫々所定の位置に配設されている。
【００１６】
液晶ディスプレイ１６は、変動図柄を表示するとともに背景画像や各種のキャラクタの動画などを表示する第１図柄表示手段２２として機能する。第１図柄表示手段２２は、背景画やキャラクタをアニメーション的に表示するとともに、左右方向に並ぶ３個（左、中、右）の図柄表示部２２ａ〜２２ｃを有し、図柄始動手段１７に遊技球が入賞することを条件に、各図柄表示部２２ａ〜２２ｃの表示図柄が所定時間だけ変動表示（スクロール表示）され、図柄始動手段１７への遊技球の入賞タイミングに応じた抽選結果に基づいて決定される停止図柄パターンで停止する。
【００１７】
液晶ディスプレイ１６の直ぐ上側に、普通入賞手段１９と第２図柄表示手段２３とが設けられている。第２図柄表示手段２３は１個の普通図柄を表示する普通図柄表示部を有し、ゲート２０を通過した遊技球が検出されたとき、普通図柄表示部の表示図柄が所定時間だけ変動し、遊技球のゲート２０通過時点において抽選された抽選用乱数値により決定される停止図柄を表示して停止するようになっている。図柄始動手段１７は、開閉自在な左右１対の開閉爪１７ａを備えた電動式チューリップであり、第２図柄表示手段２３の変動後の停止図柄が当り図柄を表示した場合に、開閉爪１７ａが所定時間だけ開放されて入賞し易くなる。
【００１８】
開閉式入賞手段１８は前方に開放可能な開閉板１８ａを備え、第１図柄表示手段２２の変動後の停止図柄が「７７７」などの当り図柄のとき、「大当り」と称する特別遊技が開始され、開閉板１８ａが前側に開放される。この開閉式入賞手段１８の内部に特定領域１８ｂがあり、この特定領域１８ｂを入賞球が通過すると、特別遊技が継続される。ここで、特別遊技状態が遊技者に有利な状態に相当する。
【００１９】
開閉式入賞手段１８の開閉板１８ａが開放された後、所定時間が経過し、又は所定数（例えば１０個）の遊技球が入賞して開閉板１８ａが閉じるときに、遊技球が特定領域１８ｂを通過していない場合には特別遊技が終了するが、特定領域１８ｂを通過していれば最大で例えば１６回まで特別遊技が継続され、遊技者に有利な状態に制御される。
【００２０】
図４に示すように、前枠４の裏側には、遊技盤５を裏側から押さえる裏機構板３０が着脱自在に装着され、この裏機構板３０には開口部３０ａが形成され、その上側に賞球タンク３３と、これから延びるタンクレール３４とが設けられ、このタンクレール３４に接続された払出し手段３５が裏機構板３０の側部に設けられ、裏機構板３０の下側には払出し手段３５に接続された通路ユニット３６が設けられている。払出し手段３５から払出された遊技球は通路ユニット３６を経由して上皿排出口８ａ（図１）から上皿８に払出される。
【００２１】
裏機構板３０の開口部３０ａには、遊技盤５の裏側に装着された裏カバー３７と、入賞手段１７〜１９に入賞した遊技球を排出する入賞球排出樋（不図示）とが夫々嵌合されている。この裏カバー３７に装着されたケース３８の内部に主制御基板３９が配設され、その前側に図柄制御基板４０が配設されている（図２）。主制御基板３９の下側で、裏カバー３７に装着されたケース４１ａの内部にランプ制御基板４２が設けられ、このケース４１ａに隣接するケース４１ｂの内部にサウンド制御基板４３が設けられている。
【００２２】
これらケース４１ａ，４１ｂの下側で裏機構板３０に装着されたケース４４の内部には、電源基板４５と払出し制御基板４６が夫々設けられている。この電源基板４５には、図３に示すように、電源スイッチ８０と初期化スイッチ８５とが配置されている。これら両スイッチ８０，８５に対応する部位はケース４４が切欠かれ、両スイッチ８０，８５の各々を指で同時に操作可能になっている。
【００２３】
また、発射手段１０の後側に装着されたケース４７の内部には、発射制御基板４８が設けられている。これら制御基板３９〜４０，４２〜４３，４５〜４６，４８は夫々独立の基板であり、電源基板４５と発射制御基板４８を除く制御基板３９，４０，４２，４３，４６には、ワンチップマイコンＬＥ２０８０Ａ（ＬＥ・Ｔｅｃｈ社製）を備えるコンピュータ回路が搭載されており、主制御基板３９と他の制御基板４０，４２，４３，４６とは、複数本の信号線でコネクタを介して電気的に接続されている。なお、この実施例で使用するワンチップマイコンＬＥ２０８０Ａは、Ｚ８０（Ｚｉｌｏｇ社）相当品のＣＰＵとＲＯＭとＲＡＭとその他のＩＣを内蔵して構成されている。
【００２４】
主制御基板３９とその他の制御基板４０，４２，４３，４６とは、複数本の信号線でコネクタを介して電気的に接続され、主制御基板３９から各制御基板４０，４２，４３，４６に、所定の遊技動作を実行させる種々の制御コマンドを一方向通信で送信可能になっている。制御コマンドの一方向通信を採用することで、図柄停止に関する不正を確実に防止できるとともに、主制御基板３９の制御負荷を格段に軽減でき、送信制御を簡単化することができる。
【００２５】
図５は、主制御基板３９のうち、Ｚ８０ＣＰＵをリセット状態にするためのリセット信号発生部の回路例を図示したものである。この回路からはユーザリセット信号ＵＲＳＴと、システムリセット信号ＲＳＴとが出力されるが、何れの信号も、Ｚ８０ＣＰＵのリセット端子を所定時間ＬレベルにすることによりプログラムカウンタＰＣの値を強制的に００００Ｈにしてプログラム処理を初期状態に戻すものである。
【００２６】
図５に示すように、リセット信号発生部は、ＣＰＵからのタイマクリア信号を受けて動作するウォッチドッグタイマ回路５１と、リップルカウンタＲＢＣ（例えばＴＣ７４ＨＣ４０２０ＡＦ）及びＤ型フリップフロップＤ−ＦＦ（例えばＨＤ７４ＨＣ７４）からなるシステムリセット回路５２とで構成されている。なお、システムリセット回路５２には、不図示の電源リセット回路からのリセット信号ＳＹＳＲＳＴと、システムクロックＸＴＡＬとが供給されている。
【００２７】
ウォッチドックタイマ回路５１は、ウォッチドッグタイマＷＤＴとして、ＴＡ８０３０Ｓ（東芝）を用いている。このウォッチドッグタイマＷＤＴでは、クロック端子ＷＤにパルス信号が入力されない自走状態では、ＴＣ端子の電圧は、ＩＣへの電源投入後、２Ｖと４Ｖの間で充放電動作が繰り返され、ＲＳＴ端子からは、Ｈレベル期間ＴWDが１．１×Ｃ１×Ｒ１（ｍｓ）、Ｌレベル期間ＴRSTが０．７５×Ｃ１（ｍｓ）のリセット信号ＲＳＴが出力される。一方、クロック端子ＷＤに正パルスが加わると、４Ｖに向けての充電途中でも充電電荷が放電されて、再び２Ｖから充電動作を始めるようになっている。
【００２８】
そこで、このパチンコ機では、ウォッチドッグタイマＷＤＴのクロック端子ＷＤに、ＴWD未満の所定時間τ毎にタイマクリア信号をソフトウェア的に加えることによって、ＲＳＴ端子が常時Ｈレベルに維持されるようにしている。このようなウォッチドッグタイマ回路５１では、パチンコ機が正常に動作している場合には、所定時間τ毎にタイマクリア信号が加わるので、ＣＰＵがリセットされることはないが、プログラムの暴走などによってＣＰＵ側からのタイマクリア信号が途絶えた状況では、一定時間後にウォッチドッグタイマＷＤＴのリセット信号ＲＳＴが自動的に立下り、ユーザリセット信号ＵＲＳＴを受けたＺ８０ＣＰＵが強制的にリセットされることになる。
【００２９】
図６は、図５に示すシステムリセット回路５２の動作内容を説明するタイムチャートである。電源が投入されると、不図示の電源リセット回路からの信号ＳＹＳＲＳＴが図６（ａ）に示すように立ち上がる（ｔ１）。すると、これに対応して、リップルカウンタＲＢＣのクリア端子ＣＬＲがＨレベルとなり、Ｑ５やＱ６を含むＲＢＣの全出力はＬレベルとなる。なお、信号ＳＹＳＲＳＴの立ち上がり（ｔ１）に対応して、Ｄ型フリップフロップＤ−ＦＦのクリア端子ＣＬＲが立ち下がるのでＤ−ＦＦのＱ出力はＬレベルとなる。
【００３０】
その後、電源リセット回路からの信号ＳＹＳＲＳＴが図６（ａ）に示すように立ち下がる（ｔ２）。すると、リップルカウンタＲＢＣのクリア端子ＣＬＲもＬレベルとなるので、ＲＢＣはシステムクロックＸＴＡＬのカウント動作を開始する。また、信号ＳＹＳＲＳＴの立ち下がりに対応して（ｔ２）、Ｄ−ＦＦのＣＬＲ端子はＨレベルになるので、その後、Ｄ型フリップフロップＤ−ＦＦのクロック端子ＣＫに信号が供給されると、ＨレベルのＤ入力がＱ出力端子に現れることになる。
【００３１】
一定時間後、リップルカウンタＲＢＣのカウント動作の結果、ＲＢＣのＱ５出力がＨレベルとなる（ｔ３）。すると、これに対応してシステムリセット信号ＲＳＴは、図６（ｇ）に示すようにＨレベルとなる。なお、リップル・キャリー・バイナリ・カウンタＲＢＣのカウント段数で決まるｔ２からｔ３までの間、システムリセット信号ＲＳＴがＬレベルであることによってＺ８０ＣＰＵを正しくリセット状態にすることができる。
【００３２】
その後の動作も説明すると、リップルカウンタＲＢＣのＱ５出力はやがてＬレベルとなり、これに合わせてＲＢＣのＱ６出力はＨレベルとなる（ｔ４）。すると、リップルカウンタＲＢＣのＱ６出力の立ち上がりに対応して、Ｄ−ＦＦのＱ出力はＨレベルとなる。そして、リップルカウンタＲＢＣのクリア端子ＣＬＲがＨレベルになることにより、これ以降のリップルカウンタＲＢＣの全出力はＬレベルに維持されることになる。
【００３３】
図７は、主制御基板３９で実行される遊技制御プログラムのメインルーチンを示すフローチャートである。電源がＯＮ状態になると、図５に示すシステムリセット回路５２の動作によってワンチップマイコンＬＥ２０８０ＡのＣＰＵコア（Ｚ８０相当品）にリセット信号が加わり、図７に示す処理が開始される。
【００３４】
メインルーチンでは、最初に、Ｚ８０ＣＰＵは、自らを割込み禁止状態（ＤＩ）に設定し、Ｚ８０ＣＰＵコアを含むワンチップマイコンの各部を初期設定する（ＳＴ１）。なお、電源がＯＮ状態になる場合には２つのパターンがあり、停電状態からの復旧時のように、初期化スイッチ８５がＯＦＦ状態で電源がＯＮ状態になる場合と、パチンコホールの開店時のように、初期化スイッチ８５がＯＮ状態で電源がＯＮ状態になる場合があるが、いずれの場合もステップＳＴ１の処理が実行される。
【００３５】
ステップＳＴ１の処理が終わると、次に、ＣＰＵは、ウォッチドッグタイマＷＤＴにタイマクリア信号を出力する（ＳＴ２）。そのため、ウォッチドッグタイマＷＤＴの充放電用のコンデンサＣ１は、このタイミングで必ず放電状態となり、その後、予期しない早期のタイミングにおいてウォッチドッグタイマＷＤＴからＣＰＵリセット信号ＵＲＳＴが出力される恐れはない。
【００３６】
次に、ＣＰＵは割込みモード２に設定される（ＳＴ２）。なお、割込みモード２とは、Ｚ８０の３つの割込みモード（モード０、１、２）の中で、最も強力な割込みモードであり、ＣＰＵ内部のＩレジスタに記憶された１バイトデータと、割込み時にＣＰＵがデータバスから取得する割込みベクタ（１バイト）とを組合せて、最大１２８個の割込み処理ルーチンにハードウェア的に分岐できる割込みモードを意味する。
【００３７】
この割込みモード２の設定の後、ＣＰＵは、ＲＡＭクリア信号の値を判定する（ＳＴ３）。ＲＡＭクリア信号は、ＲＡＭ領域を初期値設定するか否かを示す信号であって、初期化スイッチ８５のＯＮ／ＯＦＦ状態に対応した値を有している。今、パチンコホールの開店時であって、初期化スイッチ８５がＯＮ状態で電源投入されたと仮定すると、ステップＳＴ３の判定がＹｅｓとなり、ＲＡＭのワークエリアが初期化され、その他のＲＡＭ領域がゼロクリアされる（ＳＴ５）。そして、ＣＰＵは割込み許可状態（ＥＩ）に設定され（ＳＴ５）、その後は無限ループ状に乱数発生処理が行われる（ＳＴ６）。なお、ステップＳＴ６の処理は、後述する大当り判定処理などの判定によって外れ状態となった場合に、どのような態様の外れゲームを演出するかを決定するための処理である。
【００３８】
一方、停電状態からの復旧時のように、初期化スイッチ８５がＯＦＦ状態であった場合には、ステップＳＴ３の判定に続いて、バックアップフラグＢＦＬの内容が判定される（ＳＴ４）。バックアップフラグＢＦＬとは、ＮＭＩ処理において退避されていた中断動作時のバックアップデータが、元の状態に復帰されているか否かを示すデータであり、この実施例では、ステップＳＴ２５の処理でバックアップフラグＢＦＬが５ＡＨとされ、ステップＳＴ１２の処理においてゼロクリアされるようになっている。
【００３９】
今、停電状態からの復旧時を想定すると、バックアップフラグＢＦＬの内容は５ＡＨである。そのため、ＣＰＵの処理は、ステップＳＴ４からステップＳＴ７に移行し、ＲＡＭのＳＰ記憶エリアから読み出された１６ビットデータがＣＰＵのスタックポインタＳＰに書き込まれる（ＳＴ７）。
【００４０】
次に、停電時のＮＭＩ処理において退避されていた各データを読み出して、バックアップされたコマンドを復帰させる処理を行う（ＳＴ８）。ここでコマンドとは、主制御基板から各制御基板に伝送されるコマンドであって、画像や音声によってゲームを盛り上げたり、或いは、賞球を払出すためのものであるが、ＣＰＵは、退避データを読み出すことによって必要なコマンドを作成する。次に、ＣＰＵは、ＰＯＰ命令を実行して、スタックエリアからＡＦレジスタを除く各レジスタ（ＢＣ，ＤＥ，ＨＬ）の値を復帰させる（ＳＴ９）。そして、この処理が終われば、ＳＰ記憶エリアのデータをゼロクリアする（ＳＴ１１）。なお、このステップＳＴ１１の処理は、技術的には必ずしも必須ではないが、公的機関からの指導に基づくものであり必ず実行される処理である。
【００４１】
以上の処理の結果、停電時からの復帰処理は一応完了するので、そのことを示すべくバックアップフラグＢＦＬをゼロクリアする（ＳＴ１２）。このように、本実施例では、ＳＰ記憶エリアのデータをゼロクリアする処理（ＳＴ１１）と、バックアップフラグＢＦＬをゼロクリアする処理（ＳＴ１２）とを連続して実行しているので、ＳＰ記憶エリアのデータがゼロクリアされたが、バックアップフラグＢＦＬがゼロクリアされていない状態で、ユーザリセット信号ＵＲＳＴがＣＰＵに加わる可能性が極限的に小さくなり、異常事態発生の可能性が殆どない。
【００４２】
すなわち、ＳＰ記憶エリアのデータがゼロクリアされたが、バックアップフラグＢＦＬがゼロクリアされていない状態において、何れかの回路の予期せぬ誤動作によってＣＰＵがリセットされると、リセット後の動作において、ステップＳＴ４の次にステップＳＴ７の処理が行われるため、スタックポインタＳＰには００００Ｈに設定されることになる。
【００４３】
すると、その後の復帰処理（ＰＯＰ命令）においてはデタラメなデータが復帰されることになって、中断前とは全く無関係の遊技動作が再開されるか、或いはプログラムが暴走するかの事態が生じてしまう。しかし、本実施例では、ＳＰ記憶エリアのデータをゼロクリアする処理（ＳＴ１１）と、バックアップフラグＢＦＬをゼロクリアする処理（ＳＴ１２）とを連続して実行するので、そのような可能性が事実上ゼロとなる。なお、ステップＳＴ２のタイミングでウォッチドッグタイマＷＤＴをクリアしていることも、上記した異常事態発生の防止に大きく寄与している。
【００４４】
このように、本実施例では、ステップＳＴ１１とＳＴ１２を連続して実行する点に特徴があるが、ＡＦレジスタの復帰が完了していないのに、ＳＰ記憶エリアのデータをゼロクリアし、且つバックアップフラグＢＦＬをゼロクリアするのは、ＳＴ１１やＳＴ１２の処理ではＡレジスタを使用するしかないので、これらＳＴ１１やＳＴ１２の処理を後回しにすると折角復帰させたＡレジスタのデータが壊れてしまうからである。
【００４５】
そのため、この実施例では、バックアップフラグＢＦＬをゼロクリアした後にＩレジスタやＡＦレジスタの復帰処理を行っている。具体的には、先ず、ＰＯＰＡＦの命令を実行してＩレジスタの内容をＦレジスタに復帰させている（ＳＴ１３）。ＮＭＩの割込み処理プログラムでは、Ｉレジスタの値をＡレジスタにロードした後、Ａレジスタの値をＰＵＳＨしているので（図８（ｃ）参照）、このＰＯＰ命令によってＦレジスタのＰ／Ｖフラグには、ＣＰＵ内部の割込み許可フリップフロップＩＦＦの値が格納されることになる。
【００４６】
ここで、Ｐ／Ｖフラグが１の場合にはＮＭＩ処理時のＣＰＵが割込み許可状態であったことになり、逆に、Ｐ／Ｖフラグが０の場合にはＮＭＩ処理時のＣＰＵが割込み禁止状態であったことになる。そこで、Ｐ／Ｖフラグが０なら再度ＰＯＰ命令を実行してＡＦレジスタの値を復帰し、割込み禁止状態のままＲＥＴ命令を実行する（ＳＴ１５、ＳＴ１６）。一方、Ｐ／Ｖフラグが１なら再度ＰＯＰ命令を実行してＡＦレジスタの値を復帰すると共に、割込み許可状態に変更してＲＥＴ命令を実行する（ＳＴ１７〜ＳＴ１９）。何れにしても、ＲＥＴ命令が実行されることによって、スタック領域にＰＵＳＨ処理されていた中断時のＰＣ（プログラムカウンタ）の値が復元され、停電等により中断されていた処理が再開されることになる。
【００４７】
ところで、ステップＳＴ１２の処理を終えた後に、ウォッチドックタイマＷＤＴからＣＰＵリセット信号ＵＲＳＴは発せられるようなことがあると、再リセットされた後のＣＰＵの処理は、ステップＳＴ４からステップＳＴ５に移行するので、もはや中断した遊技動作を再開できなくなる。しかし、このパチンコ機では、ＣＰＵがリセットされた後、直ぐにウォッチドックタイマＷＤＴをクリアしているので（ＳＴ２）、無意味にＣＰＵがリセットされる恐れは極めて低い。
【００４８】
なお、ＣＰＵがリセットされる恐れを更に解消する趣旨からは、図７の破線で示すように、停電時からの復帰処理完了を示す処理（ＳＴ１１，１２）に先だって、ステップＳＴ１０のタイミングでウォッチドッグタイマＷＤＴにタイマクリア信号を出力しても良い。この場合には、ステップＳＴ２のタイミングに代えて（或いはステップＳＴ２のタイミングに加えて）同様の処理を行うので、仮に、ＲＥＴ命令実行後も割込み禁止状態が長引いたとしても、ウォッチドッグタイマＷＤＴからＣＰＵにリセット信号ＵＲＳＴが加わることはない。また、自走状態におけるウォッチドッグタイマＷＤＴのリセット出力のＨレベル期間ＴWDを短く設定して（具体的には時定数Ｃ１×Ｒ１を小さくする）、プログラム暴走時の対応を迅速化しても、そのことに伴うトラブルが生じない。
【００４９】
図８は、停電などによって電源電圧が降下した際に生じるＮＭＩの割込み処理プログラムの内容を示すフローチャートである。この割込み処理では、先ず、各レジスタ（ＡＦ，Ｉ，ＢＣ，ＤＥ，ＨＬ）の内容がスタックエリアにＰＵＳＨされる（ＳＴ２０）。但し、Ｉレジスタの値を直接スタックエリアにＰＵＳＨすることはできないので、ＬＤ Ａ，Ｉの命令を実行した後、ＰＵＳＨ ＡＦの命令を実行することで代行している。
【００５０】
次に、図８（ｂ）に示すバックアップフラグＢＦＬの記憶エリアの内容をチェックし、また、ＳＰ記憶エリアの内容をチェックする（ＳＴ２１）。図７のステップＳＴ１１、ＳＴ１２に関して説明したように、ＮＭＩ割込みから正常に復帰した場合には、バックアップフラグＢＦＬやＳＰ記憶エリアの内容はゼロの筈である。したがって、ステップＳＴ２１の判定において、双方ともゼロであるとの条件が成立しない場合とは、ＮＭＩ割込みの復帰処理中（ＳＴ１〜ＳＴ１０）の間に、改めてＮＭＩ割込みが生じたことを意味する。
【００５１】
このような場合には、ステップＳＴ２２以降の処理に移行しても、ステップＳＴ２２において、ＮＭＩ割込み時のスタックポインタＳＰの値が破壊されるので停電前の状態を復元することができなくなる。そこで、この実施例では、ＮＭＩ割込みの復帰処理中（ＳＴ１〜ＳＴ１０）の間に、再度、電源電圧が降下して改めてＮＭＩ割込みが生じたような場合には、００００Ｈ番地に処理を移行させるようにしている。このように対応することによって、メインルーチンの処理は、ステップＳＴ１からステップＳＴ４に進み、更に、ステップＳＴ７に進むことによって中断前の処理を復元することが可能となる。
【００５２】
ところで、バックアップフラグＢＦＬやＳＰ記憶エリアの内容が共にゼロである通常の場合には、ステップＳＴ２１からステップＳＴ２２に処理が移り、ステップＳＴ２０におけるＰＵＳＨ命令実行後のスタックポインタＳＰの値が、ＲＡＭのＳＰ記憶エリアに保存される（ＳＴ２２）。図８（ｂ）（ｃ）は、各レジスタ（ＡＦ，Ｉ，ＢＣ，ＤＥ，ＨＬ）やスタックポインタＳＰ、プログラムカウンタＰＣの退避状態を図示している。
【００５３】
続いて、現在、賞球を払出し中の場合もあるので、賞球計数スイッチの状態を検出して記憶する（ＳＴ２３）。なお、所定時間待機するのは（ＳＴ２４）、払出し中の賞球が移動する時間を考慮したものである。その他、図示していないが、必要なデータをバックアップした後、バックアップフラグＢＦＬのＲＡＭエリアにフラグ値５ＡＨを記憶し（ＳＴ２５）、以降、ＲＡＭのアクセスを禁止して電源電圧が降下してＣＰＵが非動作状態になるのを待つ（ＳＴ２６）。その後、ＣＰＵは非動作状態となるが、ＲＡＭにはバックアップ電源が供給されているので、バックアップされたデータがそのまま保存され続ける。すなわち、電源が完全に遮断された後もＲＡＭエリアは、図８（ｂ）（ｃ）の状態のまま維持される。
【００５４】
図９は、メインルーチン（図７）の無限ループ処理（ＳＴ６）の間に２ｍsec毎に生じるタイマ割込みＩＮＴ（Maskable Interrupt禁止可能割込み）の割込み処理プログラムの内容を示すフローチャートである。タイマ割込みが生じると、各レジスタの内容はスタック領域に退避され、乱数作成処理、スイッチ入力管理処理、エラー管理処理などが行われる（ＳＴ３０）。スイッチ入力管理処理は、ゲートや電動チューリップなどを遊技球が通過したか否かの判定であり、エラー管理処理は、機器内部に異常が生じていないかの判定である。また、乱数作成処理とは、ハードウェア的に更新されている当り用乱数値や大当たり乱数値の取得処理を意味する。
【００５５】
その後、処理分けカウンタの値が判定されて、ＳＴ３２〜ＳＴ３６のうちの該当する処理が行われる。上記したエラー管理やスイッチ管理は、短い時間間隔で繰り返し行うべきであるが、一方、パチンコゲームの演出に係わる処理は遊技者のニーズに応じて複雑高度化するため、ある程度以上の処理時間を要することになる。そこで、この実施例では、全ての遊技制御動作を１回の割込み処理で完了させのではなく、５種類の処理に区分し、区分された各処理を割込み毎に分担して実行するようにしている。そのため、０〜４の範囲で循環動作する処理分けカウンタを設けて、処理分けカウンタの値に応じた処理を行うようにしている。
【００５６】
具体的に説明すると、処理分けカウンタが０の場合には大入賞口の開放などに関する処理を行い（ＳＴ３２）、処理分けカウンタが１の場合には当り状態（電動チューリップの開放）か否かに関する普通図柄処理を行い（ＳＴ３２）、処理分けカウンタが２の場合には大当り状態か否かに関する処理を行っている（ＳＴ３２）。また、処理分けカウンタが３の場合には、電動チューリップや大入賞口の開閉タイミングに関係するタイマ管理処理や、主制御基板から各制御基板に伝送されるコマンド作成処理が行われる（ＳＴ３５）。処理分けカウンタが４の場合には、情報出力やエラー表示コマンドの作成処理が行われる（ＳＴ３６）。そして、その後、ウォッチドッグタイマＷＤＴにタイマクリア信号を出力するようにしている（ＳＴ３７）。
【００５７】
ステップＳＴ３７の処理は、５回目の割込み処理において実行されるので、ステップＳＴ３７におけるタイマクリア信号の発生周期は、通常は２ｍsec×５である。しかし、ＮＭＩの割込みが生じた後、電源が復旧したような場合には、更にメインルーチン（図７）の処理が加わるので、２ｍsec×５より長い時間タイマクリア信号が発生しなことになる。しかし、本実施例の場合にはステップＳＴ１〜ＳＴ１９の処理の間に少なくとも１回、ウォッチドッグタイマＷＤＴにタイマクリア信号が出力されるので、停電などからの復旧後、意味もなくＣＰＵがリセットされて中断した処理に戻れないという弊害はない。
【００５８】
ステップＳＴ３２〜ＳＴ３６の何れかの処理が終わると、処理分けカウンタの値が更新された後（ＳＴ３９）、生成されているコマンドが各制御基板に伝送される（ＳＴ４０）。また、各レジスタの値が復帰されると共に割込み許可状態に変更されて、割込み処理ルーチンからメインルーチンに戻る（ＳＴ４０）。なお、図９の破線で示すように、各割込み毎にウォッチドッグタイマＷＤＴにタイマクリア信号を出力しても良く（ＳＴ３８）、この場合には、充放電コンデンサＣ１の充電完了までの時間をより短く設定して、プログラムの暴走をより迅速に検知してＣＰＵをリセット状態にすることが可能となる。
【００５９】
以上、本発明の一実施例について説明したが、具体的な技術内容は、特に、本発明を限定するものではない。例えば、図７に記載したステップＳＴ１１とステップＳＴ１２の処理順序を逆転されるのも好適である。すなわち、このような実施態様では、如何なる場合にも、ＳＰ記憶エリアがゼロクリアされているにも係わらず、バックアップフラグがゼロクリアされていない状態でＣＰＵがリセットされることはない。最悪でも、バックアップフラグがゼロクリアされているにも係わらず、ＳＰ記憶エリアがゼロクリアされていない状態でＣＰＵがリセットされる程度である。そして、この最悪の事態でも、バックアップフラグがゼロクリアされているので、ステップＳＴ４の処理の後、ステップＳＴ５の処理に移行してリセット処理が正しく行われる。
【図面の簡単な説明】
【００６０】
【図１】実施例に係るパチンコ機の斜視図である。
【図２】図１のパチンコ機の側面図である。
【図３】図１のパチンコ機の正面図である。
【図４】図１のパチンコ機の背面図である。
【図５】ウォッチドッグタイマ回路とシステムリセット回路の回路例である。
【図６】システムリセット回路の回路動作を説明するタイムチャートである。
【図７】実施例に係る遊技制御プログラムのメインルーチンのフローチャートである。
【図８】停電時などに実施されるＮＭＩ割込み処理プログラムのフローチャートである。
【図９】タイマ割込みにおけるＩＮＴ割込み処理プログラムのフローチャートである。
【符号の説明】
【００６１】
ＷＤＴ  リセット手段（ウォッチドッグタイマ）
２      遊技機（パチンコ機）
ＳＴ６  無限ループ処理
ＳＴ１〜ＳＴ１９  第１処理
ＳＴ３０〜ＳＴ４１  第２処理
ＳＴ２０〜ＳＴ２６  第３処理
ＳＴ１１  ＳＰ記憶エリアのクリア処理
ＳＴ１２  バックアップフラグのリセット処理
ＳＴ２２  ＳＰの値をＳＰ記憶エリアに保存する処理
ＳＴ２５  バックアップフラグをセットする処理
【図１】
2006289111.tif 000002
【図２】
2006289111.tif 000003
【図３】
2006289111.tif 000004
【図４】
2006289111.tif 000005
【図５】
2006289111.tif 000006
【図６】
2006289111.tif 000007
【図７】
2006289111.tif 000008
【図８】
2006289111.tif 000009
【図９】
2006289111.tif 000010
【手続補正書】
【提出日】平成18年6月28日(2006.6.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
制御プログラムに基づいて遊技動作を制御するＣＰＵを有し、遊技者に有利な第１状態と遊技者に不利な第２状態とを択一的に選択可能な遊技機であって、前記制御プログラムにしたがった正常な処理がされなくなった場合には、リセット手段が機能して遊技動作を強制的に初期状態に戻すよう構成され、
前記制御プログラムは、電源投入に対応して開始され、無限ループ処理を含んで構成された第一処理と、所定時間毎に前記第一処理を中断して開始され、繰り返し遊技動作を制御する第二処理と、電源電圧が所定レベルを下回ると強制的に開始され、退避エリアへのデータ退避処理を行う第三処理とを含み、
前記第三処理では、前記データ退避処理の後、スタックポインタの値を特定記憶エリアに保存すると共に所定フラグを第２状態に設定しており、
前記第一処理では、前記所定フラグが第２状態であることを条件に、前記特定記憶エリアの保存内容に基づいて前記スタックポインタの値を設定した後、前記退避エリアに退避されているデータのデータ復帰処理を開始し、その後、前記所定フラグを第１状態に設定するリセット処理と共に、前記特定記憶エリアの保存内容を書き換えるクリア処理を実行しており、
前記リセット処理と前記クリア処理とは連続して実行され、前記データ退避処理における前記退避エリアの退避先や、前記データ復帰処理における前記退避エリアの復帰元は、前記スタックポインタによって特定される
ようになっている遊技機。
【請求項２】
制御プログラムに基づいて遊技動作を制御するＺ８０ＣＰＵを有し、遊技者に有利な第１状態と遊技者に不利な第２状態とを択一的に選択可能な遊技機であって、前記制御プログラムにしたがった正常な処理がされなくなった場合には、リセット手段が機能して遊技動作を強制的に初期状態に戻すよう構成され、
前記制御プログラムは、電源投入に対応して開始され、無限ループ処理を含んで構成された第一処理と、所定時間毎に前記第一処理を中断して開始され、繰り返し遊技動作を制御する第二処理と、電源電圧が所定レベルを下回ると強制的に開始され、退避エリアへのデータ退避処理を行う第三処理とを含み、
前記第三処理では、前記データ退避処理の後、スタックポインタの値を特定記憶エリアに保存すると共に所定フラグを第２状態に設定しており、
前記第一処理では、前記所定フラグが第２状態であることを条件に、前記特定記憶エリアの保存内容に基づいて前記スタックポインタの値を設定した後、前記退避エリアに退避されているデータのデータ復帰処理を開始し、その後、前記フラグを第１状態に設定するリセット処理を実行しており、
前記データ退避処理における前記退避エリアの退避先や、前記データ復帰処理における前記退避エリアの復帰元は、前記スタックポインタによって特定され、
前記データ退避処理では、Ｚ８０ＣＰＵのＡＦレジスタの値を退避する第一処理と、Ｚ８０ＣＰＵのＩレジスタの値を、前記ＡＦレジスタのＡレジスタに転送した後、そのＡＦレジスタの値を退避させる第二処理とをこの順番に実行する一方、
前記データ復帰処理では、前記退避処理と逆の順番でデータを復帰させることで、Ｚ８０ＣＰＵが割込み許可状態か否かを特定すると共に、前記第一処理で退避させた前記ＡＦレジスタの値を復帰させるようにしていることを特徴とする遊技機。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上記の課題を解決するため、請求項１に係る発明は、制御プログラムに基づいて遊技動作を制御するＣＰＵを有し、遊技者に有利な第１状態と遊技者に不利な第２状態とを択一的に選択可能な遊技機であって、前記制御プログラムにしたがった正常な処理がされなくなった場合には、リセット手段が機能して遊技動作を強制的に初期状態に戻すよう構成され、前記制御プログラムは、電源投入に対応して開始され、無限ループ処理を含んで構成された第一処理と、所定時間毎に前記第一処理を中断して開始され、繰り返し遊技動作を制御する第二処理と、電源電圧が所定レベルを下回ると強制的に開始され、退避エリアへのデータ退避処理を行う第三処理とを含み、前記第三処理では、前記データ退避処理の後、スタックポインタの値を特定記憶エリアに保存すると共に所定フラグを第２状態に設定しており、前記第一処理では、前記所定フラグが第２状態であることを条件に、前記特定記憶エリアの保存内容に基づいて前記スタックポインタの値を設定した後、前記退避エリアに退避されているデータのデータ復帰処理を開始し、その後、前記所定フラグを第１状態に設定するリセット処理と共に、前記特定記憶エリアの保存内容を書き換えるクリア処理を実行しており、前記リセット処理と前記クリア処理とは連続して実行され、前記データ退避処理における前記退避エリアの退避先や、前記データ復帰処理における前記退避エリアの復帰元は、前記スタックポインタによって特定されるようになっている。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
また、請求項２に係る発明は、制御プログラムに基づいて遊技動作を制御するＺ８０ＣＰＵを有し、遊技者に有利な第１状態と遊技者に不利な第２状態とを択一的に選択可能な遊技機であって、前記制御プログラムにしたがった正常な処理がされなくなった場合には、リセット手段が機能して遊技動作を強制的に初期状態に戻すよう構成され、前記制御プログラムは、電源投入に対応して開始され、無限ループ処理を含んで構成された第一処理と、所定時間毎に前記第一処理を中断して開始され、繰り返し遊技動作を制御する第二処理と、電源電圧が所定レベルを下回ると強制的に開始され、退避エリアへのデータ退避処理を行う第三処理とを含み、前記第三処理では、前記データ退避処理の後、スタックポインタの値を特定記憶エリアに保存すると共に所定フラグを第２状態に設定しており、前記第一処理では、前記所定フラグが第２状態であることを条件に、前記特定記憶エリアの保存内容に基づいて前記スタックポインタの値を設定した後、前記退避エリアに退避されているデータのデータ復帰処理を開始し、その後、前記フラグを第１状態に設定するリセット処理を実行しており、前記データ退避処理における前記退避エリアの退避先や、前記データ復帰処理における前記退避エリアの復帰元は、前記スタックポインタによって特定され、前記データ退避処理では、Ｚ８０ＣＰＵのＡＦレジスタの値を退避する第一処理と、Ｚ８０ＣＰＵのＩレジスタの値を、前記ＡＦレジスタのＡレジスタに転送した後、そのＡＦレジスタの値を退避させる第二処理とをこの順番に実行する一方、前記データ復帰処理では、前記退避処理と逆の順番でデータを復帰させることで、Ｚ８０ＣＰＵが割込み許可状態か否かを特定すると共に、前記第一処理で退避させた前記ＡＦレジスタの値を復帰させるようにしている。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】削除
【補正の内容】