(57)【特許請求の範囲】
【請求項１】
電源の供給を受けて動作する遊技機において、
所定の遊技制御処理を繰り返し実行するルーチンと、該所定の遊技制御処理を繰り返し実行するルーチンの実行中に起動される割込みルーチンと、の実行を制御する実行制御手段と、
電源の供給が途絶えても記憶内容を保持する記憶手段と、を備え、
前記実行制御手段は、前記所定の遊技制御処理を繰り返し実行するルーチンにおいて、前記割込みルーチンの実行を禁止した状態で、電源断が発生したか否かを判定する処理である判定処理と、該判定処理で電源断が発生したと判定された場合に、電源断が発生するまでに行われていた処理に係るデータを前記記憶手段に保持させるために、前記記憶手段へのアクセスを禁止する電源断時処理と、を含む電源断検出処理を実行することを特徴とする遊技機。
【請求項２】
前記実行制御手段は、前記所定の遊技制御処理を繰り返し実行するルーチンにおいて、前記割込みルーチンが所定回数実行される毎に実行される処理であるメインルーチン内遊技制御処理を行い、前記メインルーチン内遊技制御処理が終了する毎に、前記割込みルーチンの実行を禁止した後、前記電源断検出処理を実行することを特徴とする請求項１に記載の遊技機。
【請求項３】
前記割込みルーチンは、所定の周期で発生するタイマ割込により起動され、
前記実行制御手段は、前記割込みルーチンにおいて、電源の供給が途絶えた場合に発生する電源断検出信号を検出する処理を実行することを特徴とする請求項１又は２に記載の遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遊技機における電源断発生時のメモリバックアップ技術に関する。
【背景技術】
【０００２】
従来においては、停電等によりパチンコ機等の遊技機に電源断が発生した場合、電源復帰時に遊技機を電源断時の状態に戻す技術が存在した。このような技術では、遊技機で電源断が検出された時、ノンマスカブル割込み（ＮＭＩ）を発生させて電源断時のメモリ内容をバックアップするといった方式が一般的であった。
しかしながら、ＮＭＩはマスク不可能な割込みであるため、電源断が検出された時点でどのような処理が実行されていたとしても強制的にＮＭＩが発生してしまう。このため、遊技制御処理やサブルーチン等の複雑な処理が実行されている最中にＮＭＩが発生した場合には、ＣＰＵのレジスタやプログラムカウンタ等の処理中の内容を他のメモリにバックアップ（退避、保存）し、また、電源復帰時にはバックアップしたデータを元に戻して中断された処理を再開するといった制御を行う必要があった。このため、バックアップのためにメモリを大量に消費するとともに、電源断発生時の処理や電源復帰時の処理を行うプログラムが複雑になるという問題点があった。
【０００３】
特許文献１には、ポーリングにより電源遮断信号を検出する技術が記載されている。しかしながら、特許文献１においては、電源遮断信号を検出すると遊技処理中であっても即座に割込みを発生させ退避処理を実行している。
【０００４】
特許文献２には、遊技処理を実行するメインルーチンの最終段階で電断信号を検出した場合に、遊技処理中のデータをメモリにバックアップする技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１７４１５０号公報（段落００１０，００１１）
【特許文献２】特開２００３−２９０４５４号公報（段落０００９）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１、２とも、電源断検出処理（電源断発生の判定処理、及び、電源断が発生した時のバックアップ等の電源断時処理）中に何らかの割込み処理が実行される可能性がある。電源断検出処理中に割込み処理が実行された場合には、電断発生の判定処理や電源断時処理が複雑となってしまい、電源断検出処理を正確に行うことができない。また、電源復帰時の処理が複雑になってしまう。
本発明は、上記問題点に鑑みてなされたものであり、電源断検出処理及び電源復帰時の処理が複雑になることを防止できる遊技機を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、電源の供給を受けて動作する遊技機において、所定の遊技制御処理を繰り返し実行するルーチンと、該所定の遊技制御処理を繰り返し実行するルーチンの実行中に起動される割込みルーチンと、の実行を制御する実行制御手段と、電源の供給が途絶えても記憶内容を保持する記憶手段と、を備え、前記実行制御手段は、前記所定の遊技制御処理を繰り返し実行するルーチンにおいて、前記割込みルーチンの実行を禁止した状態で、電源断が発生したか否かを判定する処理である判定処理と、該判定処理で電源断が発生したと判定された場合に、電源断が発生するまでに行われていた処理に係るデータを前記記憶手段に保持させるために、前記記憶手段へのアクセスを禁止する電源断時処理と、を含む電源断検出処理を実行することを特徴とする遊技機を提供する。
【０００８】
この発明によれば、遊技機は、割込みルーチンの実行を禁止した後に電源断検出処理を実行するため、電源断検出処理中に割込みルーチンが実行されることがなくなり、電源断時処理が複雑になることを防止できる。また、遊技機は、電源復帰時の処理においても、レジスタ、割込み状態、及び、スタックポインタ等の内容を元に戻す必要もないし、復帰させたプログラムカウンタに従ってプログラム中断点から処理を再開する必要もなく、復帰処理が複雑になることを防止できる。
請求項２に記載の発明は、請求項１に記載の遊技機において、前記実行制御手段は、前記所定の遊技制御処理を繰り返し実行するルーチンにおいて、前記割込みルーチンが所定回数実行される毎に実行される処理であるメインルーチン内遊技制御処理を行い、前記メインルーチン内遊技制御処理が終了する毎に、前記割込みルーチンの実行を禁止した後、前記電源断検出処理を実行することを特徴とする。
【０００９】
この発明によれば、メインルーチン内遊技制御処理の実行中や割込みルーチンの実行中に電源断検出処理が実行されることがなくなるため、割込み状態やプログラムカウンタやレジスタの内容をバックアップしておく必要がなくなる。従って、メモリの消費量を抑えつつ、電源断検出処理を正確に行うことができる。
請求項３に記載の発明は、請求項１又は２に記載の遊技機において、前記割込みルーチンは、所定の周期で発生するタイマ割込により起動され、前記実行制御手段は、前記割込みルーチンにおいて、電源の供給が途絶えた場合に発生する電源断検出信号を検出する処理を実行することを特徴とする。
この発明によれば、遊技機は、所定の周期で起動される割込みルーチンにおいて、ポーリングにより電源断検出信号の検出を行うことができるため、規則正しく電源断検出信号の検出を正確に行うことができる。
【発明の効果】
【００１０】
本発明によれば、遊技機は、割込みルーチンの実行を禁止した状態で電源断検出処理を実行するため、電源断検出処理中に割込みルーチンが実行されることがなくなり、電源断検出処理を正確に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係るパチンコ機の正面図である。
【図２】同実施の形態に係るパチンコ機の電気的構成を示す図である。
【図３】同実施の形態に係る主制御部が備えるマイクロコンピュータの構成を示す図である。
【図４】同実施の形態に係るＣＰＵの構成を示す図である。
【図５】同実施の形態に係るＲＡＭの構成を示す図である。
【図６】同実施の形態に係るメインルーチンの処理の流れを示すフローチャートである。
【図７】同実施の形態に係る割込みルーチンの処理の流れを示すフローチャートである。
【図８】同実施の形態に係る電源断検出信号チェック処理の流れを示すフローチャートである。
【図９】同実施の形態に係る電源断検出処理の流れを示すフローチャートである。
【図１０】同実施の形態に係る各処理の処理タイミングを示すタイムチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施の形態について説明する。まず、遊技機の一例であるパチンコ機の全体の構成について説明する。図１は、パチンコ機１の正面図であり、特に説明に必要な部分を模式的に示した図である。
図１に示すように、パチンコ機１は、額縁状に形成されたガラス扉枠２を有する。ガラス扉枠２の下部表面には打球供給皿３が設けられている。打球供給皿３の下部には、遊技球を発射するハンドル５が設けられている。ガラス扉枠２の後方には、遊技盤６が着脱可能に取り付けられている。また、遊技盤６の前面には遊技領域７が設けられている。
遊技領域７の中央付近には、複数種類の図柄を可変表示するための特別図柄表示装置９が設けられている。特別図柄表示装置９には、例えば、「左」、「中」、「右」の３つの図柄表示エリアがある。特別図柄表示装置９の上部には、始動入賞口１４に入った入賞球数を表示する４個のランプを有する始動記憶表示器１８が設けられている。この例では、始動記憶表示器１８は、始動入賞がある毎に４個を上限として点灯しているランプを１つずつ増やす。そして、特別図柄表示装置９の可変表示が開始される毎に点灯しているランプを１つ減らす。
【００１３】
特別図柄表示装置９の下部には始動入賞口１４が設けられている。始動入賞口１４は特別図柄始動口開閉装置１４１によって開閉される。始動入賞口１４の側部には、普通図柄作動ゲート１１が設けられている。遊技領域７の下部には、７セグメントＬＥＤで構成された普通図柄表示装置１０が設けられている。その他、遊技領域７には、複数の一般入賞口１９，２４が設けられている。始動入賞口１４の下部には大入賞口２０が設けられている。大入賞口開閉装置２０１は、特定遊技状態（大当り状態）において開状態とされる。
【００１４】
遊技領域７の最下部には、入賞しなかった遊技球を吸収するアウト口２６が設けられている。遊技領域７の左右周辺には、遊技中に点滅表示される遊技盤表示灯２５が設けられ、また、遊技領域７の外側の上部には、効果音を発するスピーカ２７が設けられている。また、遊技領域７の外部には本体表示灯２８が設けられている。
発射装置から打ち出された遊技球は、打球レールを通って遊技領域７に入り、その後、遊技領域７を下りてくる。遊技球が普通図柄作動ゲート１１を通ると、普通図柄表示装置１０の表示数字が連続的に変化する状態になる。また、遊技球が始動入賞口１４に入ると、図柄の変動を開始できる状態であれば、特別図柄表示装置９内の図柄が回転を始める。図柄の変動を開始できる状態でなければ、始動入賞記憶を１増やす。
【００１５】
特別図柄表示装置９内の画像の回転は、一定時間が経過したときに停止する。停止時の画像の組み合わせが大当り図柄の組み合わせであると、大当り遊技状態に移行する。すなわち、大入賞口開閉装置２０１が、一定時間経過するまで、または、所定個数（例えば１０個）の遊技球が入賞するまで開放する。そして、大入賞口開閉装置２０１の開放中に遊技球が特定入賞領域に入賞すると継続権が発生し、大入賞口開閉装置２０１の開放が再度行われる。継続権の発生は、所定回数（例えば１５ラウンド）許容される。
停止時の特別図柄表示装置９内の画像の組み合わせが確率変動を伴う大当り図柄の組み合わせである場合には、次に大当りとなる確率が高くなる。すなわち、高確率状態という遊技者にとってさらに有利な状態となる。さらに、高確率状態では、普通図柄表示装置１０における停止図柄が当り図柄になる確率が高められる。
【００１６】
次に、図２を参照して、パチンコ機１の電気的構成について説明する。
電源部４０は、図示せぬ外部電源から２４ボルトの交流電源の供給を受け、当該交流電源をパチンコ機１で使用する複数の定電圧の直流電源や粗整流の直流電源に変換する。そして、電源部４０は、変換後の各種直流電源を主制御部３１、払出制御部３７、演出制御部３２、及び、図柄制御部８０に供給する。
また、電源部４０には、電源回路やコンデンサ等のバックアップ電源４１が搭載されている。電源部４０は、外部電源からの電源の供給を監視し、電源の供給が途絶えた場合に、電源断検出信号を主制御部３１及び払出制御部３７に送信するとともに、バックアップ電源４１を供給する。また、ＲＡＭクリアＳＷ（ラムクリアスイッチ）４２からの操作信号を受けて、ラムクリア信号を主制御部３１及び払出制御部３７に送信する。
【００１７】
また、パチンコ機１には遊技球を検出するための各種スイッチが設けられている。
特別図柄始動ＳＷ（スイッチ）１７は、遊技球が始動入賞口１４に入賞するのを検出した場合に、検出信号を主制御部３１に送信する。普通図柄始動ＳＷ（スイッチ）１５は、遊技球が普通図柄作動ゲート１１を通過するのを検出した場合に、検出信号を主制御部３１に送信する。カウントＳＷ（スイッチ）２３は、遊技球が大入賞口２０に入賞するのを検出した場合に、検出信号を主制御部３１に送信する。一般ＳＷ（スイッチ）１６は、遊技球が一般入賞口１９，２４に入賞するのを検出した場合に、検出信号を主制御部３１に送信する。
払出計数ＳＷ（スイッチ）４７は、賞球が払出装置９７により払い出されるのを検出した場合に、検出信号を払出制御部３７に送信する。払出通路玉切ＳＷ（スイッチ）１８７は、球貯留タンクから払出装置９７間における払出通路内の遊技球の有無を検出し、遊技球がないことを検出した場合に検出信号を払出制御部３７に送信する。皿満タンＳＷ（スイッチ）４８は、打球供給皿３に貯留されている遊技球が満タンになったことを検出した場合に、検出信号を払出制御部３７に送信する。
【００１８】
ハンドル５は、操作信号を発射制御部９１に送信する。ラムクリアスイッチ４２は、主制御部３１及び払出制御部３７に保存されている過去の遊技情報をクリアするためのスイッチであり、押しボタンタイプのスイッチで構成されている。
主制御部３１は、パチンコ機１の裏側に設けられた図示せぬ主制御基板で構成される。主制御基板にはマイクロコンピュータが搭載されている。主制御部３１は、各スイッチ１７，１５，２３，１６から入力される信号を解析し、解析結果に基づいて、制御コマンドを大入賞口開閉装置２０１、特別図柄始動口開閉装置１４１、及び、演出制御部３２に送信する。また、主制御部３１は、各種遊技状態を示す信号をホールコンピュータとの接続端子３４に送信する。
【００１９】
図３には、主制御部３１に搭載されているマイクロコンピュータの構成を示す。同図に示すように、マイクロコンピュータは、遊技制御用プログラムや各種パラメータが記憶されているＲＯＭ５４、ワークメモリとして使用されるＲＡＭ５５、遊技制御用プログラムに従って処理を実行するＣＰＵ５６、及び、Ｉ／Ｏポート５７で構成されている。Ｉ／Ｏポート５７は、各スイッチ１７，１５、２３、１６、演出制御部３２、払出制御部３７等の外部装置に接続され、信号の入出力を制御する。
図４には、ＣＰＵ５６の構成を示す。ＣＰＵ５６は、汎用レジスタ、フラグレジスタ、インデックスレジスタ、スタックポインタ、割込みレジスタ、リフレッシュレジスタ、プログラムカウンタ、命令レジスタ、命令レコーダ、演算装置、制御装置等を備えている。各レジスタは、演算結果、次に読み込む命令のアドレス、実行状態等を保持する。
【００２０】
図５には、ＲＡＭ５５の構成例を示す。同図に示すように、ＲＡＭ５５には、遊技関連制御用変数使用領域５５ａとスタック領域５５ｂとが設けられている。パチンコ機１に使用されるＲＡＭ５５の記憶容量は、一般的には２５６バイト又は５１２バイトである。
遊技関連制御用変数使用領域５５ａには、パチンコ機１に電源断が発生したか否かを示す電源断発生情報が記憶される「電源断発生情報フラグ」領域と、電源復帰後のＲＡＭ５５に異常がないかを確認するためのチェックサムが記憶される「チェックサムバッファ」領域と、各種スイッチから入力された信号の状態が記憶される「入力状態フラグｎ（ｎ＝１、２、・・・）」領域と、割込みルーチンを実行した回数が記憶される「割込み回数カウンタ」領域と、割込みルーチンで検出される電源断検出信号が連続してオンであった（つまり、電源断の状態が検出された）回数（電源断検出回数）が記憶される「電源断信号オンカウンタ」と、確率変動時間短縮機能を実現するために用いられる「回数切りカウンタ」と、が設けられている。
【００２１】
スタック領域５５ｂは、ＣＰＵ５６のワーキングエリアとして用いられ、割込み発生時や、サブルーチンや関数を呼び出す際に、処理中のデータや戻りアドレスなどを一時的に退避する。
ＣＰＵ５６がＲＯＭ５４に記憶されている遊技制御用プログラムに従って処理を実行することにより、主制御部３１は実行制御手段及び電源断検出手段として機能する。
実行制御手段は、電源投入時に起動されるメインルーチンと、当該メインルーチンの実行中に所定の周期（本実施の形態では２ｍｓ）で発生するタイマ割込みにより起動される割込みルーチンと、の実行を制御する手段である。
【００２２】
メインルーチンにおいては、処理時間の変動が大きい、または、比較的処理時間が長い処理や、２ｍｓという短い周期で実行する必要のない遊技制御処理（以下「メインルーチン内遊技制御処理」という）が実行される。また、割込みルーチンにおいては、比較的短い周期で正確に行う必要のある処理が実行される。具体的には、スイッチの入力処理、当りに関連する乱数の更新処理等の遊技制御処理（以下「割込みルーチン内遊技制御処理」という）、及び、電源断検出回数を計数する処理が行われる。これらのメインルーチン内遊技制御処理、及び、割込みルーチン内遊技制御処理の実行中に電源断が発生した場合には、ＣＰＵ５６のレジスタにおける処理途中のデータがバックアップ対象のデータとなる。
【００２３】
電源断検出手段は、電源断検出処理（電源断発生の判定処理、及び、データのバックアップ等の電源断発生時に実行すべき電源断時処理）を実行する手段である。この電源断検出処理は、メインルーチンにおいて実行される。電源断発生の判定処理においては、割込みルーチンでポーリングによる電源断検出信号に基づいて計数された電源断検出回数が２回以上である場合に電源断が発生したと判定される。実行制御手段は、メインルーチンの一周期におけるメインルーチン内遊技制御処理の終了後、タイマ割込みの発生を禁止した後に当該電源断検出手段により電源断処理を実行する。
また、パチンコ機１は、サブ基板として、演出制御部３２、表示灯制御部３５、音声制御部７０、図柄制御部８０、払出制御部３７、及び、発射制御部９１を備えている。
【００２４】
演出制御部３２は、主制御部３１からの制御コマンドを受けて、表示灯制御部３５、音声制御部７０、及び、図柄制御部８０を制御する。表示灯制御部３５は、遊技盤６に設けられている始動記憶表示器１８及び遊技盤表示灯２５の表示制御を行うとともに、枠側に設けられている本体表示灯２８の表示制御を行う。音声制御部７０は、スピーカ２７からの音声出力制御を行う。図柄制御部８０は、特別図柄表示装置９及び普通図柄表示装置１０の表示制御を行う。発射装置９２は、発射制御部９１によって制御される駆動モータで駆動され、遊技球を打撃して発射する。
払出制御部３７は、パチンコ機１の裏側に設けられた図示せぬ払出制御基板で構成され、賞球の払出を制御する。払出制御部３７は、主制御部３１と同様、ＣＰＵ、ＲＯＭ、ＲＡＭ、及び、Ｉ／Ｏポートを備えており、払出制御部３７のＣＰＵがＲＯＭに記憶されている払出制御用プログラムに従って処理を実行することにより、払出制御部３７は実行制御手段及び電源断検出手段として機能する。
【００２５】
払出制御部３７の実行制御手段は、電源投入時に起動されるメインルーチンと、当該メインルーチンの実行中に所定の周期で発生するタイマ割込みによって起動される割込みルーチンと、の実行を制御する手段である。
払出制御部３７で実行される割込みルーチンにおいては、主制御部３１からの払出制御コマンドを検出する処理と、電源部４０からの電源断検出信号に基づいて電源断検出回数を計数する処理とが行われる。払出制御部３７のタイマ割込みは、主制御部３１と同様に２ｍｓ毎に発生する。
払出制御部３７の電源断検出手段は、電源断検出処理を実行する手段である。ここで、払出制御部３７の電源断検出手段が、実際の電源断発生時点から電源断が発生したと判断し電源断時処理を行うまでの時間は、主制御部３１の電源断検出手段よりも長くなるように設計されている。本実施の形態においては、払出制御部３７の電源断検出手段は、電源断信号オンカウンタが“４”（電源断検出回数が４回）であった場合に電源断が発生したと判断する。
【００２６】
払出制御部３７は主制御部３１から送信される払出制御コマンドにより払出制御を行っているため、主制御部３１と同じタイミングかそれより早いタイミングで電源断時処理を行うと、払出制御部３７は主制御部３１からコマンドを受け取る前に電源断状態となってしまい、主制御部３１との整合性が取れなくなってしまう。本実施の形態では、主制御部３１、払出制御部３７ともに２ｍｓ毎にタイマ割込みを発生させ、主制御部３１は電源断検出回数が２回であった場合に（およそ４ｍｓ）電源断時処理を行うのに対して、払出制御部３７ではタイマ割込み発生のタイミングのずれも勘案して、電源断検出回数が４回であった場合に（およそ８ｍｓ）電源断時処理を行う。
【００２７】
次に、パチンコ機１が備える主制御部３１の動作について説明する。
［メインルーチン］
図６は、主制御部３１のＣＰＵ５６が実行するメインルーチンを示すフローチャートである。まず、パチンコ機１に対して電源が投入されると、ＣＰＵ５６は、ＲＯＭ５４に記憶された遊技制御プログラムに従い、ＲＡＭ５５をワークエリアとして用いてメインルーチンを実行する。メインルーチンにおいて、ＣＰＵ５６は、まず、必要な初期設定処理を行う。
具体的には、ＣＰＵ５６は、スタックポインタにスタックポインタ指定アドレスを設定する（ステップＳ１０１）。次に、割込みモードを“２”に設定する（ステップＳ１０２）。本実施の形態で用いられるＣＰＵ５６には、マスク可能な割込み（ＩＮＴ）のモードとして、カウンタタイマを使用する割込みモード“２”が用意されている。なお、マスク可能な割込みが発生すると、ＣＰＵ５６は、他の割込みを禁止状態に設定するとともに、プログラムカウンタの内容をＲＡＭ５５のスタック領域５５ｂにセーブする。
【００２８】
そして、ＲＡＭ５５をアクセス可能状態に設定する（ステップＳ１０３）。
次に、内蔵デバイスレジスタの設定を行う（ステップＳ１０４）。具体的には、内蔵周辺回路であるＣＴＣ（カウンタ／タイマ）及びＰＩＯ（パラレル入出力ポート）の初期化を行う。そして、電源投入時のウエイト処理を行う（ステップＳ１０５）。
次に、Ｉ／Ｏポート５７からラムクリア信号の読み込みを行い、パチンコ機１に設けられているラムクリアスイッチ４２が押されているか否かの判定を行う（ステップＳ１０６）。ラムクリア信号がオンである場合にはラムクリアスイッチが押されている（オンである）と判断し（ステップＳ１０６：Ｙ）、ＲＡＭ５５の初期化処理を行う（ステップＳ１１１〜）。
【００２９】
ラムクリア信号がオフである場合には（ステップＳ１０６：Ｎ）、電源断発生情報が有効であるか否かを判定する（ステップＳ１０７）。電源断発生情報が有効であるか否かは、ＲＡＭ５５の電源断発生情報フラグ領域に電源断発生情報フラグが設定されているか否かで判断する。電源断発生情報が有効でない場合は（ステップＳ１０７：Ｎ）、電源復帰時の処理を行う必要がないため、ＲＡＭ５５の初期化処理を行う（ステップＳ１１１〜）。
【００３０】
一方、電源断発生情報フラグが設定されており、電源断発生情報が有効であると判断した場合には（ステップＳ１０７：Ｙ）、電源復帰時の処理を行う。まず、電源断発生時に保護したＲＡＭ５５のデータ内容が正常であることを確認するためにチェックサムが正常であるか否かを判断する（ステップＳ１０８）。具体的には、ＲＡＭ５５のデータ内容（電源断発生情報フラグ領域、チェックサムバッファ領域、スタック領域５５ｂは除く）についてチェックサムを計算し、当該計算した値とチェックサムバッファ領域に記憶しておいたチェックサムの値とを比較する。一致しない場合はチェックサムが正常でないと判断し（ステップＳ１０８：Ｎ）、ＲＡＭ５５の初期化処理を行う（ステップＳ１１１〜）。
【００３１】
一方、チェックサム同士が一致し、チェックサムが正常であったと判断した場合は（ステップＳ１０８：Ｙ）、サブ基板へ復帰コマンドを送信する（ステップＳ１０９）。具体的には、表示灯（ランプ、ＬＥＤ）、音声出力、図柄表示を電源断時の状態に戻すため、演出制御部３２へ複合サブ制御コマンドを送信する。また、払出装置９７に賞球の払出開始の指示を行うために、払出制御部３７に払出制御コマンドを送信する。次に、ＲＡＭ５５に記憶されている電源断発生情報フラグをクリアする等の、復帰時ＲＡＭ初期設定処理を行う（ステップＳ１１０）。
ステップＳ１１１以降のＲＡＭ５５の初期化処理では、ＣＰＵ５６は、まず、ＲＡＭ５５をクリアする処理を行う（ステップＳ１１１）。また、ＲＡＭ５５の遊技関連制御用変数使用領域５５ａに初期値を設定する初期値設定処理も行う（ステップＳ１１２）。
【００３２】
次に、ＣＰＵ５６は、サブ基板を初期化するために初期コマンドを送信する（ステップＳ１１３）。具体的には、払出装置９７に賞球の払出開始の指示を行うために、払出制御部３７に払出制御コマンドを送信する。さらに、表示灯制御部３５、音声制御部７０、図柄制御部８０を初期状態とするため、演出制御部３２へ複合サブ制御コマンドを送信する。そして、２ｍｓ毎に定期的にタイマ割込みがかかるように、ＣＰＵ５６はＣＴＣのレジスタ設定を行う（ステップＳ１１４）。
次いで、ＣＰＵ５６は、割込み禁止状態に設定した後に（ステップＳ１１５）、電源断検出処理（ステップＳ１１６）、及び、初期値更新乱数を生成するためのカウンタのカウント値を更新する初期値更新乱数更新処理（ステップＳ１１７）を実行する。ここで、初期値更新乱数とは、所定周期毎に変更する大当り判定用乱数カウンタの初期値を決定するための乱数である。
【００３３】
その後、割込み許可状態に設定し（ステップＳ１１８）、その他乱数更新処理を実行する（ステップＳ１１９）。その他乱数としては、リーチ抽選に用いる乱数、表示する図柄の種類を決定するための乱数等が存在する。ステップＳ１１５からステップＳ１１９までの処理は、割込み回数カウンタの値が２以上になるまで繰り返し実行される。
なお、ステップＳ１１５における割込み禁止状態の設定は、ＣＰＵ５６が割込み禁止命令を発行したり、割込み禁止用のレジスタを禁止に設定したり、マスクレジスタをセットすることによって実現され、ステップＳ１１８における割込み許可状態の設定は、割込み許可命令を発行したり、割込み禁止用のレジスタを許可に設定したり、マスクレジスタをリセットすることによって実現される。
【００３４】
以上のように、ステップＳ１１５において割込み禁止状態にした後に、ステップＳ１１６において電源断検出処理を実行するため、電源断検出処理が実行されているときに、タイマ割込みが発生することがなく、電源断検出処理を正確に行うことができる。
ステップＳ１２０において、ＣＰＵ５６は、ＲＡＭ５５に記憶されている割込み回数カウンタの値をチェックし、値が２以上である場合には（ステップＳ１２０：Ｎ）、割込み回数カウンタをクリアし（ステップＳ１２１）、ステップＳ１２２からステップＳ１２８において以下のメインルーチン内遊技制御処理を実行する。
【００３５】
まず、サブ基板に制御コマンドを送信するサブ基板コマンド送信処理を行う（ステップＳ１２２）。具体的には、例えば、特別図柄に関する表示制御コマンドをＲＡＭ５５における遊技関連制御用変数使用領域５５ａの所定の領域に設定して表示制御コマンドを送出する処理を行う。また、普通図柄に関する表示制御コマンドを遊技関連制御用変数使用領域５５ａの所定の領域に設定して表示制御コマンドを送出する処理を行う。また、入賞検出に応じて払出制御コマンドを送出する処理を行う。次に、払い出した賞球数を管理する賞球払出管理処理を実行する（ステップＳ１２３）。次に、パチンコ機１で発生した特別遊技についての情報を管理する特別遊技管理処理を行い（ステップＳ１２４）、普通遊技についての情報を管理する普通遊技管理処理を行う（ステップＳ１２５）。次に、ホールコンピュータ等の外部装置に送信すべき大当り情報、始動情報、確率変動情報等を生成する外部情報処理を行う（ステップＳ１２６）。次に、パチンコ機１を検査するための遊技機試験信号を出力する遊技機試験信号出力処理を実行し（ステップＳ１２７）、外部装置に対する情報の出力管理処理を行う（ステップＳ１２８）。その後、ステップＳ１１５に戻り、メインルーチンにおける一周期の処理を繰り返す。従来においては、タイマ割込みを４ｍｓ毎に発生させていたので、初期値更新乱数更新処理やその他乱数更新処理を除く全ての遊技制御処理を割込みルーチン内で行っていたが、本実施の形態においてはタイマ割込みの周期を２ｍｓ毎にしたので、２ｍｓという短時間の間に割込みルーチン内で全ての遊技制御処理を行うことが不可能となった。このため、割込みルーチンを２回実行した後に、１回（つまり４ｍｓ毎）、メインルーチン内においてステップＳ１２２からステップＳ１２８までのメインルーチン内遊技制御処理を実行するようにしている。
【００３６】
［割込みルーチン］
次に、図７に示すフローチャートを参照して、主制御部３１のＣＰＵ５６が実行する割込みルーチンについて説明する。
本実施の形態では、ＣＰＵ５６の内蔵ＣＴＣが２ｍｓ毎に繰り返しタイマ割込みを発生するように設定される。そして、タイマ割込みが発生すると、ＣＰＵ５６は割込みルーチンを起動し実行する。この割込みルーチンでは、ＣＰＵ５６はステップＳ２０１においてレジスタの退避処理を実行した後、ステップＳ２０２からステップＳ２０５において以下の割込みルーチン内遊技制御処理を行う。
【００３７】
まず、遊技制御に用いられる大当り判定用の乱数等の各判定用乱数を示す各カウンタを更新する当り抽選乱数更新処理を行い（ステップＳ２０２）、図６のステップＳ１１７での処理と同様の初期値更新乱数更新処理を行う（ステップＳ２０３）。次に、入力処理を行う（ステップＳ２０４）。具体的には、各スイッチ１７，１５，２３，１６等からの出力信号をＩ／Ｏポート５７から入力し、それらの状態判定を行って、遊技領域７へ打ち込まれた遊技球の始動入賞口１４や大入賞口２０への入賞、普通図柄作動ゲート１１の通過、更には賞球や貸球を検出する。各信号のスイッチレベルによりオン又はオフを示すデータを作成し、当該データを次の割込みルーチンが実行されるまで保持する。次に、スイッチ入力イベント処理を行う（ステップＳ２０５）。具体的には、ステップＳ２０４において、特別図柄始動スイッチ１７や普通図柄始動スイッチ１５等からの検出信号を受信した場合には乱数抽選を行い、抽選した乱数をＲＡＭ５５の所定の領域に記憶する。
【００３８】
次に、電源断検出信号チェック処理を行い（ステップＳ２０６）、その後、割込み回数カウンタに１加算する（ステップＳ２０７）。そして、レジスタの復帰処理を行い（ステップＳ２０８）、割込み許可状態に設定して（ステップＳ２０９）、メインルーチンに戻る。本実施の形態においては、スイッチの入力チェック及び当りに関連する乱数の更新を２ｍｓ毎に実行するために、タイマ割込みを２ｍｓ毎に発生させている。従来においては、スイッチの入力チェックは４ｍｓ毎に行われていたが、この場合、ゲージ構成やスイッチの位置によっては遊技球のスピードが早くなり、遊技球のスイッチ通過を示す時間間隔（つまり、スイッチ通過の検出信号が出力される時間間隔）が４ｍｓ未満になる場合もあり、スイッチ通過検出を取りこぼす可能性があった。これを回避するために、従来においてはゲージ構成を変更したり、スイッチの位置を遊技盤６上でなく遊技盤６の裏面の球のスピードが落ちる位置に配置していた。スイッチ検出の周期を２ｍｓという遊技球のスイッチ通過を示す時間間隔よりも短い周期で規則正しく行うことにより、スイッチ検出の取りこぼしがなくなり、正確にスイッチを検出することができる。また、当りに関連する乱数の更新は、定期的な割込みで１ずつ更新しなければならないため、スイッチ検出を２ｍｓ毎にした時点で自ずと２ｍｓ毎の更新となる。
【００３９】
（電源断検出信号チェック処理）
次に、図８を参照して、割込みルーチンにおける電源断検出信号チェック処理（図７のステップＳ２０６）について詳細に説明する。
まず、カウンタ値として“０”をセットする（ステップＳ３０１）。
次に、電源部４０から出力される電源断検出信号をＩ／Ｏポート５７からポーリングにより入力し、当該電源断検出信号がオン（ｈｉｇｈ）かオフ（ｌｏｗ）かを判定する（ステップＳ３０２）。電源断検出信号がオフであると判定された場合には（ステップＳ３０２：Ｎ）、電源断の状態が検出されなかったことになるため、電源断検出信号オンカウンタの値を“０”にリセットする（ステップＳ３０５）。
一方、電源断検出信号がオンであると判定された場合には（ステップＳ３０２：Ｙ）、電源断の状態が検出されたことになるため、カウンタ値として、電源断検出信号オンカウンタのアドレスで示される領域のカウンタ値をＲＡＭ５５からロードし（ステップＳ３０３）、そのカウンタ値に“１”を加算する（ステップＳ３０４）。そして、そのカウンタ値をＲＡＭ５５の電源段検出信号オンカウンタにセーブする（ステップＳ３０５）。
【００４０】
（電源断検出処理）
次に、図９を参照して、メインルーチンにおける電源断検出処理（図６のステップＳ１１６）について説明する。
まず、ＣＰＵ５６は、電源断発生の判定処理を行うために、割込みルーチンにおいてセットされた電源断検出信号オンカウンタをＲＡＭ５５からロードする（ステップＳ４０１）。電源断検出信号オンカウンタの値が２よりも小さい場合には（ステップＳ４０２：Ｙ）、電源断が発生していないと判断し、処理を終了する。一方、電源断検出信号オンカウンタの値が２以上の場合には（ステップＳ４０２：Ｎ）、電源断が発生したと判断し、電源断検出信号オンカウンタをクリアした後（ステップＳ４０３）、以下の電源断時処理を実行する。
【００４１】
まず、Ｉ／Ｏポート５７のうち、電動役物及び普通図柄に関連する出力ポートをクリアし、出力を停止する（ステップＳ４０４）。そして、ＲＡＭ５５に記憶されているデータのチェックサム（電源断発生情報フラグ領域、チェックサムバッファ領域、及び、スタック領域５５ｂを除く）を作成し、作成したチェックサムをチェックサムバッファに保存する（ステップＳ４０５）。次いで、電源断が発生したことを示す電源断発生情報をＲＡＭ５５の電源断発生情報フラグ領域に保存する（ステップＳ４０６）。
そして、ＲＡＭ５５に記憶されたデータ内容を保護するために、ＲＡＭ５５へのアクセスを禁止し（ステップＳ４０７）、電源断をウエイトする（ステップＳ４０８）。
【００４２】
以上のような実行制御を行うことにより、割込みルーチンの実行中（特に割込みルーチン内遊技制御処理の実行中）、及び、メインルーチンにおけるメインルーチン内遊技制御処理の実行中において電源断検出処理が実行されることがない。このため、電源断時処理においてバックアップすべきデータとしては、ＲＡＭ５５に記憶されたデータのみであり、ＣＰＵ５６のレジスタ等の内容をスタック領域５５ｂに退避する必要がない。このため、ＲＡＭ５５の消費量を抑えることができ、また、電源断時処理が複雑になるのを防ぐことができる。また、電源復帰時の処理においても、レジスタ、割込み状態、及び、スタックポインタ等の内容を元に戻す必要もないし、復帰させたプログラムカウンタに従ってプログラム中断点から処理を再開する必要もなく、復帰処理が複雑になるのを防ぐことができる。
【００４３】
図１０は、各処理の処理タイミングの一例を示すタイミングチャートである。電源投入時の割込み回数カウンタは“０”である。電源が投入されると、まず、メインルーチンのうちステップＳ１０１〜Ｓ１１４の処理が行われ、その後、ステップＳ１１５〜Ｓ１１９における電源断検出処理及び初期値更新乱数更新処理（以下、「Ａの処理」という）が繰り返し実行される。２ｍｓ経過後にタイマ割込みが発生すると、割込みルーチン（以下、「Ｂの処理」という）が実行される。Ｂの処理において割込み回数カウンタに１が加算される。Ｂの処理の実行が完了した後には、割込み回数カウンタの値が“１”（２未満）であるため、Ａの処理が実行される。４ｍｓ経過した後に再びタイマ割込みが発生し、Ｂの処理が実行されて割込み回数カウンタに１が加算される。Ｂの処理が完了した時点で、割込み回数カウンタの値が“２”であるため、割込み回数カウンタの値が“０”に初期化された後、ステップＳ１２１〜Ｓ１２８におけるメインルーチン内遊技制御処理（以下「Ｃの処理」という）が行われる。Ｃの処理は、例えば、約５００μｓ程度で終了し、その後Ａの処理が繰り返される。６ｍｓ経過後に再びタイマ割込みが発生し、Ｂの処理が行われて割込み回数カウンタに１が加算される。Ｂの処理の実行が完了した時点で、割込み回数カウンタの値は“１”（２未満）であるため、Ａの処理が実行される。以下、同様に処理が繰り返される。Ｂの処理は規則正しく２ｍｓ毎に繰り返され、Ｃの処理はほぼ４ｍｓ毎に繰り返されることとなる。ここで、電源断検出処理は、Ａの処理内において割込み禁止状態に設定された上で行われるため、Ｂの処理及びＣの処理と競合することはない。
【００４４】
以上説明したように、本実施の形態では、メインルーチンにおいて電源断検出処理が繰り返し実行され、割込みルーチンにおいて電源断検出信号及び割込みルーチン内遊技制御処理が実行されるように構成され、電源断検出処理が行われているときにはタイマ割込みの発生が禁止される。従って、電源断検出処理において使用されていたメモリの内容がタイマ割込みの発生によって改変されてしまう可能性はない。従って、電源断検出処理は正確に行われる。
【００４５】
割込みルーチン内で電源断検出処理を行うことも可能であるが、そのようにした場合には、電源復帰時に中断した処理を復帰させるために、割込みルーチンのプログラムカウンタ及びメインルーチンのプログラムカウンタやレジスタをスタック領域５５ｂに記憶しておく必要があるので、スタック領域５５ｂを大量に消費する。この場合には、遊技制御用に使用可能なＲＡＭ５５の領域が減少してしまい、また、電源復帰時に中断したプログラムの個所から処理を再開する必要があるため電源復帰時の処理が複雑となる。これを防ぐために、メインルーチン内で電源断検出処理を行うようにした。
このように、メモリの消費量を抑え処理が複雑となるのを防ぐとともに、電源断検出処理を正確に行うことができる。
【００４６】
また、本実施の形態においては、電源断検出をＮＭＩでなくポーリング方式としたため、メインルーチン内遊技制御処理や割込みルーチンの実行途中で電源断処理が強制的に行われることがない。従って、同様に、バックアップのためのメモリの消費量を抑えることができ、処理が複雑となるのを防ぐことが可能となる。
また、電源断が発生したか否かの判定については、割込みルーチン内の電源断検出信号チェック処理で電源断検出信号が連続してオンであった回数（電源断検出回数）を計数し、メインルーチン内の電源断検出処理でその電源断検出回数が所定回数以上ならば電源断と判断し、電源断時処理を行う様にした。このように、定期的なタイマ割込みにより起動される割込みルーチンで電源断検出信号を複数回チェックすることにより、ノイズ等による誤作動や瞬断対策を行うことができる。
【００４７】
さらに、ポーリング方式を主制御部３１及び払出制御部３７共に採用し、主制御部３１よりも払出制御部３７において電源断発生から電源断時処理までの時間を長くしたことにより、電源断発生時もコマンドの送受信を正確に行うことが可能となる。
また、処理時間が変動する、或いは、処理時間が比較的長いメインルーチン内遊技制御処理を割込みルーチンで実行しないようにしたことにより、２ｍｓの周期で検出する必要のある信号（電源断検出信号、スイッチからの信号）を割込みルーチンで正確に検出することが可能となった。なお、メインルーチン内遊技制御処理の実行周期は４ｍｓに限定されることはなく、割込み回数が２回以上の周期であればよい。例えば、６ｍｓ（割込み回数３回）の周期であってもよい。
【００４８】
なお、上述した実施の形態においては、メインルーチンにおける電源断検出処理（ステップＳ１１６）の直後に実行される初期値更新乱数更新処理（ステップＳ１１７）は割込みルーチンのステップＳ２０３においても実行されるため、同時に初期値更新乱数更新処理が行われないように、メインルーチンにおいて初期値更新乱数更新処理を実行している間は割込み禁止にする必要がある。従って、このような、メインルーチンと割込みルーチンとの両方で初期値更新乱数更新処理を実行する処理方式の場合には、従来においてもメインルーチンで初期値更新乱数更新処理を行う前に割込み禁止にする必要があったため、電源断検出処理中を割込み禁止にしたことによって、制御処理に使用されるプログラムは従来よりも増加していない。なお、電源断検出処理（ステップＳ１１６）と初期値更新乱数更新処理（ステップＳ１１７）との処理の順番を入れ替えることも可能である。
【００４９】
また、上述した実施の形態においては、タイマ割込みの周期を２ｍｓとしたが、これに限定されることはなく、割込みルーチンが実行される所定の周期は、打ち出された遊技球がスイッチを通過する時間間隔よりも短ければよい。
また、上述した実施形態では、電源断発生時にＲＡＭ５５に記憶されているデータをバックアップ電源４１によって保持しておくようにしたが、データのバックアップ方法はこれに限定されることはなく、例えば、バックアップ電源４１の供給が不要なＥＥＰＲＯＭやフラッシュメモリのような不揮発性メモリにＲＡＭ５５のデータを退避してもよい。
【００５０】
また、図１の正面図に示されたパチンコ機１は、始動入賞にもとづいて特別図柄表示装置９に可変表示される特別図柄の停止図柄が所定の図柄の組み合わせになると所定の遊技価値が遊技者に付与可能になる第１種パチンコ遊技機であったが、始動入賞にもとづいて開放する電動役物の所定領域への入賞があると所定の遊技価値が遊技者に付与可能になる第２種パチンコ遊技機や、始動入賞にもとづいて可変表示される図柄の停止図柄が所定の図柄の組み合わせになると開放する所定の電動役物への入賞があると所定の権利が発生または継続する第３種パチンコ遊技機であっても、本発明を適用することができる。さらに、遊技媒体が遊技球であるパチンコ機に限られず、スロット機等においても本発明を適用することができる。
【符号の説明】
【００５１】
１パチンコ機、２ガラス扉枠、３打球供給皿、５ハンドル、６遊技盤、７遊技領域、９特別図柄表示装置、１０普通図柄表示装置、１１普通図柄作動ゲート、１４始動入賞口、１４１特別図柄始動口開閉装置、１８始動記憶表示器、１９，２４一般入賞口、２０大入賞口、２０１大入賞口開閉装置
２５遊技盤表示灯、２６アウト口、２７スピーカ、２８本体表示灯
１５普通図柄始動スイッチ、１６一般スイッチ、１７特別図柄始動スイッチ、２３カウントスイッチ、４２ラムクリアスイッチ、４７払出計数スイッチ、１８７払出通路玉切スイッチ、４８皿満タンスイッチ
３１主制御部、３７払出制御部、３２演出制御部、３５表示灯制御部、７０音声制御部、９１発射制御部、９２発射装置、９７払出装置、３４ホールコンピュータとの接続端子、４０電源部、４１バックアップ電源
５６ＣＰＵ、５４ＲＯＭ、５５ＲＡＭ、５５ａ遊技関連制御用変数使用領域、５５ｂスタック領域、５７Ｉ／Ｏポート
【図１】
0005285165.tif 000002
【図２】
0005285165.tif 000003
【図３】
0005285165.tif 000004
【図４】
0005285165.tif 000005
【図５】
0005285165.tif 000006
【図６】
0005285165.tif 000007
【図７】
0005285165.tif 000008
【図８】
0005285165.tif 000009
【図９】
0005285165.tif 000010
【図１０】
0005285165.tif 000011