(57)【特許請求の範囲】
【請求項１】
所定の遊技動作の発生を示す検出信号に起因して抽選処理を実行し、遊技者に有利な遊技状態を発生させるか否かを決定する主制御部を有する遊技機であって、
前記主制御部は、制御プログラムやデータを不揮発的に記憶するＲＯＭと、作業データを揮発的に記憶するＲＡＭと、ＲＯＭの制御プログラムに基づいて動作するＣＰＵと、を内蔵するワンチップマイコンを有して構成されると共に、
開始アドレスと終了アドレスを設定して、ＲＡＭのアクセス禁止領域を設定可能な禁止設定手段と、
アクセス禁止領域へのアクセスを許可状態又は禁止状態に制御可能なアクセス制御手段と、
アクセス制御手段によってアクセスが禁止状態に制御されている状態においてＲＡＭの禁止領域にアクセスされたことを検出してＣＰＵを強制リセットする第１の異常リセット手段と、
ＲＯＭの使用領域以外がアクセスされたことを検出して、ＣＰＵを強制リセットする第２の異常リセット手段と、
ＲＡＭへのデータ書込み動作を画一的に禁止状態又は許可状態に制御可能な書込み制御手段と、
を有し、
前記書込み制御手段は、ＲＡＭからのデータ読出し動作を許可した状態で、データ書込み動作を画一的に禁止状態に制御するよう構成されていることを特徴とする遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遊技動作に起因する抽選処理によって大当り状態を発生させる遊技機に関し、特に、本来の演出制御動作に支障を与えないで所望のセキュリティ動作を実現できる遊技機に関する。
【背景技術】
【０００２】
パチンコ機などの弾球遊技機は、遊技盤に設けた図柄始動口と、複数の表示図柄による一連の図柄変動態様を表示する図柄表示部と、開閉板が開閉される大入賞口などを備えて構成されている。そして、図柄始動口に設けられた検出スイッチが遊技球の通過を検出すると入賞状態となり、遊技球が賞球として払出された後、図柄表示部では表示時間変動される。その後、７−７−７などの所定の態様で図柄が停止すると大当り状態となり、大入賞口が繰返し開放されて、遊技者に有利な遊技状態を発生させている。
【０００３】
このような遊技状態を発生させるか否かは、図柄始動口に遊技球が入賞したことを条件に実行される大当り抽選で決定されており、上記の図柄変動動作は、この抽選結果を踏まえたものとなっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３０４６３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、大当り抽選の当選値は、遊技機の制御プログラムを解析すれば判明するので、例えば、任意に当選状態を発生可能な違法プログラムを実行させようとする違法行為も懸念されるところである。
【０００６】
そこで、従来から各種の対策が提案されているが（例えば、特許文献１）、遊技機の動作状態に対応して、セキュリティ動作を適宜に変更できる構成は知られていない。また、複数機種の遊技機についてメモリ回路のハードウェア設計を画一化できる有効な方法も知られていない。
【０００７】
本発明は、上記の問題点に鑑みてなされたものであって、遊技機の動作状態に対応してセキュリティ動作を変更することができ、複数機種の遊技機についてメモリ回路のハードウェア設計を画一化することもできる遊技機を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するため、本発明は、所定の遊技動作の発生を示す検出信号に起因して抽選処理を実行し、遊技者に有利な遊技状態を発生させるか否かを決定する主制御部を有する遊技機であって、前記主制御部は、制御プログラムやデータを不揮発的に記憶するＲＯＭと、作業データを揮発的に記憶するＲＡＭと、ＲＯＭの制御プログラムに基づいて動作するＣＰＵと、を内蔵するワンチップマイコンを有して構成されると共に、開始アドレスと終了アドレスを設定して、ＲＡＭのアクセス禁止領域を設定可能な禁止設定手段と、アクセス禁止領域へのアクセスを許可状態又は禁止状態に制御可能なアクセス制御手段と、アクセス制御手段によってアクセスが禁止状態に制御されている状態においてＲＡＭの禁止領域にアクセスされたことを検出してＣＰＵを強制リセットする第１の異常リセット手段と、ＲＯＭの使用領域以外がアクセスされたことを検出して、ＣＰＵを強制リセットする第２の異常リセット手段と、ＲＡＭへのデータ書込み動作を画一的に禁止状態又は許可状態に制御可能な書込み制御手段と、を有し、前記書込み制御手段は、ＲＡＭからのデータ読出し動作を許可した状態で、データ書込み動作を画一的に禁止状態に制御するよう構成されている。
【０００９】
本発明の禁止設定手段は、ＲＡＭのアクセス禁止領域を設定することができ、本発明のアクセス制御手段は、アクセス禁止領域へのアクセスを許可状態又は禁止状態に制御できるので、機器設計や制御動作の自由度が高く、その結果として遊技制御を最適化することができる。
【００１０】
具体的には、複数機種の遊技機について、不使用又は使用禁止となるＲＡＭ領域を機種毎に設定できるので、ＲＡＭの記憶容量を画一化してメモリ回路のハードウェア設計を単純化することができる。また、遊技機の機種の相違に拘らず、遊技動作中にアクセス禁止領域を変更したり、或いは、アクセス禁止領域へのアクセスを禁止／許可状態に変更できるので制御動作を単純化することができる。
【００１１】
例えば、一連のＲＡＭエリアに同一データを書込むような場合には、一時的にアクセス禁止領域へのアクセスを許可状態に変更するだけで、途中に多数のアクセス禁止領域が離散的に存在しても、遊技機の機種の相違に拘らず、単純なプログラムで一気に処理することができる。この種の遊技機では、ＲＯＭの記憶容量が制限されているので、このような単純な処理はＲＯＭの記憶領域の節約に極めて有効である。
【００１２】
アクセス制御手段は、好ましくは、第２の異常リセット手段が機能する状態で、ＲＡＭのアクセス禁止領域へのアクセスを、許可状態又は禁止状態に制御するべきである。このような構成を採ると、アクセス禁止領域へのアクセス許可に拘らず、ＲＯＭの不使用領域へのアクセスが監視されるので、セキュリティレベルが特に低下することがない。
【００１３】
書込み制御手段は、好ましくは、ＲＡＭからのデータ読出し動作を許可した状態で、データ書込み動作を画一的に禁止状態に制御するべきである。このような構成を採ると、ＲＡＭの破壊を防止しつつ、制限された一定の制御動作を継続することができる。
【００１４】
主制御部は、電源遮断後もＲＡＭの記憶内容を維持するバックアップ手段を有して構成され、電源遮断時には、ＲＡＭに所定データを記憶した後、書込み制御手段によってデータ書込み動作が画一的に禁止状態とされ、アクセス制御手段によってアクセス禁止領域へのアクセスが許可状態にされるのが好適である。このような構成を採ると、電源電圧の降下によってＣＰＵが暴走状態となっても、ＣＰＵがリセットされることがなく、且つ、ＲＡＭの記憶内容が書き換えられることがないのでＲＡＭの記憶内容が破壊されることがない。
【００１５】
また、主制御部は、電源遮断後もＲＡＭの記憶内容を維持するバックアップ手段を有して構成され、電源投入時には、ワンチップマイコン各部の初期設定処理を終えた後、書込み制御手段によってデータ書込み動作が画一的に許可状態とされ、アクセス制御手段によってアクセス禁止領域へのアクセスが許可状態にされるのが好適である。このような構成を採ると、ＲＡＭに飛び飛びのアクセス禁止領域や不使用領域を設けた場合にも、例えば、全領域を一気にクリアすることができる。
【００１６】
好ましくは、ワンチップマイコンには、禁止設定されるＲＡＭ領域の開始アドレスを記憶可能な最小値レジスタと、禁止設定されるＲＡＭ領域の終了アドレスを記憶可能な最大値レジスタとが設けられ、ＣＰＵは、最小値レジスタと最大値レジスタに適宜なアドレス値を設定するよう構成されている。
【００１７】
書込み制御手段は、ＣＰＵからＲＡＭに出力されるアドレスバス、及びコントロールバスのうち、コントロールバスで伝送される所定信号を制御する論理回路を有して構成されているのが好適である。なお、本発明の遊技機は、典型的には弾球遊技機又は回胴式遊技機である。
【発明の効果】
【００１８】
上記した通り、本発明によれば、遊技機の動作状態に対応してノイズ対策や違法対策を変更でき、複数機種の遊技機についてメモリ回路のハードウェア設計を画一化することもできる。
【図面の簡単な説明】
【００１９】
【図１】実施例に示すパチンコ機の斜視図である。
【図２】図１のパチンコ機の遊技盤を図示した正面図である。
【図３】図１のパチンコ機の全体構成を示すブロック図である。
【図４】ワンチップマイコンの内部回路を示す回路図である。
【図５】異常リセット回路の内部構成を示すブロック図である。
【図６】ＣＰＵのメモリアクセス動作を示すタイムチャートである。
【図７】主制御部のメイン処理を説明するフローチャートである。
【図８】主制御部のタイマ割込み処理などを説明するフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施例について詳細に説明する。図１は、本実施例のパチンコ機ＧＭを示す斜視図である。このパチンコ機ＧＭは、島構造体に着脱可能に装着される矩形枠状の木製外枠１と、外枠１に固着されたヒンジ２を介して開閉可能に枢着される前枠３とで構成されている。この前枠３には、遊技盤５が、裏側からではなく表側から着脱自在に装着され、その前側には、ガラス扉６と前面板７とが夫々開閉自在に枢着されている。
【００２１】
ガラス扉６の外周には、ＬＥＤランプなどによる電飾ランプが、略Ｃ字状に配置されている。前面板７には発射用の遊技球を貯留する上皿８が装着され、前枠３の下部には、上皿８から溢れ出し又は抜き取った遊技球を貯留する下皿９と、発射ハンドル１０とが設けられている。発射ハンドル１０は発射モータと連動しており、発射ハンドル１０の回動角度に応じて動作する打撃槌によって遊技球が発射される。
【００２２】
上皿８の外周面には、チャンスボタン１１が設けられている。このチャンスボタン１１は、遊技者の左手で操作できる位置に設けられており、遊技者は、発射ハンドル１０から右手を離すことなくチャンスボタン１１を操作できる。このチャンスボタン１１は、通常時には機能していないが、ゲーム状態がボタンチャンス状態となると内蔵ランプが点灯されて操作可能となる。なお、ボタンチャンス状態は、必要に応じて設けられるゲーム状態である。
【００２３】
上皿８の右部には、カード式球貸し機に対する球貸し操作用の操作パネル１２が設けられ、カード残額を３桁の数字で表示する度数表示部と、所定金額分の遊技球の球貸しを指示する球貸しスイッチと、ゲーム終了時にカードの返却を指令する返却スイッチとが設けられている。
【００２４】
図２に示すように、遊技盤５には、金属製の外レールと内レールとからなるガイドレール１３が環状に設けられ、その内側の遊技領域５ａの略中央には、液晶カラーディスプレイＤＩＳＰが配置されている。また、遊技領域５ａの適所には、図柄始動口１５、大入賞口１６、複数個の普通入賞口１７（大入賞口１６の左右に４つ）、通過口であるゲート１８が配設されている。これらの入賞口１５〜１８は、それぞれ内部に検出スイッチを有しており、遊技球の通過を検出できるようになっている。
【００２５】
液晶ディスプレイＤＩＳＰは、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。この液晶ディスプレイＤＩＳＰは、中央部に特別図柄表示部Ｄａ〜Ｄｃと右上部に普通図柄表示部１９を有している。そして、特別図柄表示部Ｄａ〜Ｄｃでは、大当り状態の招来を期待させるリーチ演出が実行されたり、特別図柄表示部Ｄａ〜Ｄｃ及びその周りでは、当否結果を不確定に報知する予告演出などが実行される。
【００２６】
普通図柄表示部１９は普通図柄を表示するものであり、ゲート１８を通過した遊技球が検出されると、普通図柄が所定時間だけ変動し、遊技球のゲート１８の通過時点において抽出された抽選用乱数値により決定される停止図柄を表示して停止するようになっている。
【００２７】
図柄始動口１５は、左右１対の開閉爪１５ａを備えた電動式チューリップで開閉されるよう例えば構成され、普通図柄表示部１９の変動後の停止図柄が当り図柄を表示した場合には、開閉爪１５ａが所定時間だけ、若しくは、所定個数の遊技球を検出するまで開放されるようになっている。
【００２８】
図柄始動口１５に遊技球が入賞すると、特別図柄表示部Ｄａ〜Ｄｃの表示図柄が所定時間だけ変動し、図柄始動口１５への遊技球の入賞タイミングに応じた抽選結果に基づいて決定される停止図柄で停止する。なお、特別図柄表示部Ｄａ〜Ｄｃ及びその周りでは、一連の図柄演出の間に、予告演出が実行される場合がある。
【００２９】
大入賞口１６は、例えば前方に開放可能な開閉板１６ａで開閉制御されるが、特別図柄表示部Ｄａ〜Ｄｃの図柄変動後の停止図柄が「７７７」などの大当り図柄のとき、「大当りゲーム」と称する特別遊技が開始され、開閉板１６ａが開放されるようになっている。
【００３０】
大入賞口１６の開閉板１６ａが開放された後、所定時間が経過し、又は所定数（例えば１０個）の遊技球が入賞すると開閉板１６ａが閉じる。このような動作は、最大で例えば１５回まで特別遊技が継続され、遊技者に有利な状態に制御される。なお、特別図柄表示部Ｄａ〜Ｄｃの変動後の停止図柄が特別図柄のうちの特定図柄であった場合には、特別遊技の終了後のゲームが高確率状態となるという特典が付与される。
【００３１】
図３は、上記した各動作を実現するパチンコ機ＧＭの全体回路構成を示すブロック図である。図中の一点破線は、主に、直流電圧ラインを示している。
【００３２】
図示の通り、このパチンコ機ＧＭは、ＡＣ２４Ｖを受けて各種の直流電圧やシステムリセット信号（電源リセット信号）ＳＹＳなどを出力する電源基板２０と、遊技制御動作を中心統括的に担う主制御基板２１と、主制御基板２１から受けた制御コマンドＣＭＤに基づいてランプ演出及び音声演出を実行する演出制御基板２２と、演出制御基板２２から受けた制御コマンドＣＭＤ’に基づいて液晶ディスプレイＤＩＳＰを駆動する液晶制御基板２３と、主制御基板２１から受けた制御コマンドＣＭＤ”に基づいて払出モータＭを制御して遊技球を払い出す払出制御基板２４と、遊技者の操作に応答して遊技球を発射させる発射制御基板２５と、を中心に構成されている。
【００３３】
但し、この実施例では、主制御基板２１が出力する制御コマンドＣＭＤは、コマンド中継基板２６と演出インターフェイス基板２７を経由して、演出制御基板２２に伝送される。また、演出制御基板２２が出力する制御コマンドＣＭＤ’は、演出インターフェイス基板２７を経由して、液晶制御基板２３に伝送され、主制御基板２１が出力する制御コマンドＣＭＤ”は、主基板中継基板２８を経由して、払出制御基板２４に伝送される。
【００３４】
これら主制御基板２１、演出制御基板２２、液晶制御基板２３、及び払出制御基板２４には、ワンチップマイコンを備えるコンピュータ回路がそれぞれ搭載されている。そこで、これらの制御基板２１〜２４に搭載された回路、及びその回路によって実現される動作を機能的に総称して、本明細書では、主制御部２１、演出制御部２２、液晶制御部２３、及び払出制御部２４と言うことがある。なお、演出制御部２２、液晶制御部２３、及び払出制御部２４の全部又は一部がサブ制御部である。
【００３５】
ところで、このパチンコ機ＧＭは、図３の破線で囲む枠側部材ＧＭ１と、遊技盤５の背面に固定された盤側部材ＧＭ２とに大別されている。枠側部材ＧＭ１には、ガラス扉６や前面板７が枢着された前枠３と、その外側の木製外枠１とが含まれており、機種の変更に拘わらず、長期間にわたって遊技ホールに固定的に設置される。一方、盤側部材ＧＭ２は、機種変更に対応して交換され、新た盤側部材ＧＭ２が、元の盤側部材の代わりに枠側部材ＧＭ１に取り付けられる。なお、枠側部材１を除く全てが、盤側部材ＧＭ２である。
【００３６】
図３の破線枠に示す通り、枠側部材ＧＭ１には、電源基板２０と、払出制御基板２４と、発射制御基板２５と、枠中継基板３２とが含まれており、これらの回路基板が、前枠３の適所に各々固定されている。一方、遊技盤５の背面には、主制御基板２１、演出制御基板２２、液晶制御基板２３が、液晶ディスプレイＤＩＳＰやその他の回路基板と共に固定されている。そして、枠側部材ＧＭ１と盤側部材ＧＭ２とは、一箇所に集中配置された接続コネクタＣ１〜Ｃ４によって電気的に接続されている。
【００３７】
電源基板２０は、接続コネクタＣ２を通して、主基板中継基板２８に接続され、接続コネクタＣ３を通して、電源中継基板３０に接続されている。そして、主基板中継基板２８は、電源基板２０から受けたシステムリセット信号ＳＹＳ、ＲＡＭクリア信号ＤＥＬ、電圧降下信号、バックアップ電源ＢＡＫ、ＤＣ１２Ｖ、ＤＣ３２Ｖを、そのまま主制御部２１に出力している。同様に、電源中継基板３０も、電源基板２０から受けたシステムリセット信号ＳＹＳや、交流及び直流の電源電圧を、そのまま演出インターフェイス基板２７に出力している。なお、演出インターフェイス基板２７は、受けたシステムリセット信号ＳＹＳを、そのまま演出制御部２２と液晶制御部２３に出力している。
【００３８】
一方、払出制御基板２４は、中継基板を介することなく、電源基板２０に直結されており、主制御部２１が受けると同様の、システムリセット信号ＳＹＳ、ＲＡＭクリア信号ＤＥＬ、電圧降下信号、バックアップ電源ＢＡＫを、その他の電源電圧と共に直接的に受けている。
【００３９】
ここで、電源基板２０が出力するシステムリセット信号ＳＹＳは、電源基板２０に交流電源２４Ｖが投入されたことを示す電源リセット信号であり、この電源リセット信号によって各制御部２１〜２４のワンチップマイコンその他のＩＣ素子が電源リセットされるようになっている。
【００４０】
主制御部２１及び払出制御部２４が、電源基板２０から受けるＲＡＭクリア信号ＤＥＬは、各制御部２１，２４のワンチップマイコンの内蔵ＲＡＭの全領域を初期設定するか否かを決定する信号であって、係員が操作する初期化スイッチＳＷのＯＮ／ＯＦＦ状態に対応した値を有している。
【００４１】
主制御部２１及び払出制御部２４が、電源基板２０から受ける電圧降下信号は、交流電源２４Ｖが降下し始めたことを示す信号であり、この電圧降下信号を受けることによって、各制御部２１、２４では、停電や営業終了に先立って、必要な終了処理を開始するようになっている。また、バックアップ電源ＢＡＫは、営業終了や停電により交流電源２４Ｖが遮断された後も、主制御部２１と払出制御部２４のワンチップマイコンの内蔵ＲＡＭのデータを保持するＤＣ５Ｖの直流電源である。したがって、主制御部２１と払出制御部２５は、電源遮断前の遊技動作を電源投入後に再開できることになる（電源バックアップ機能）。このパチンコ機では少なくとも数日は、各ワンチップマイコンのＲＡＭの記憶内容が保持されるよう設計されている。
【００４２】
一方、演出制御部２２と液晶制御部２３には、上記した電源バックアップ機能が設けられていない。しかし、先に説明した通り、演出制御部２２と液晶制御部２３には、電源中継基板３０と演出インターフェイス基板２７を経由して、システムリセット信号ＳＹＳが共通して供給されており、他の制御部２１，２４と、ほぼ同期したタイミングで電源リセット動作が実現される。
【００４３】
図示の通り、主制御部２１は、主基板中継基板２８を経由して、払出制御部２５に制御コマンドＣＭＤ”を送信する一方、払出制御部２５からは、遊技球の払出動作を示す賞球計数信号や、払出動作の異常に係わるステイタス信号ＣＯＮを受信している。ステイタス信号ＣＯＮには、例えば、補給切れ信号、払出不足エラー信号、下皿満杯信号が含まれる。
【００４４】
また、主制御部２１は、遊技盤中継基板２９を経由して、遊技盤５の各遊技部品に接続されている。そして、遊技盤上の各入賞口１６〜１８に内蔵された検出スイッチのスイッチ信号を受ける一方、電動チューリップなどのソレノイド類を駆動している。なお、スイッチ信号には、図柄始動口１５から主制御部２１に伝送される入賞スイッチ信号ＳＧが含まれる。
【００４５】
図４は、主制御部２１のワンチップマイコン２１Ａの内部構成の一部を図示したものである。ここでは、遊技盤中継基板２９を経由して、図柄始動口１５の検出スイッチから入賞スイッチ信号ＳＧを受ける部分も含めて図示している。
【００４６】
図示の通り、ワンチップマイコン２１Ａは、Ｚ８０ＣＰＵ（Ｚｉｌｏｇ社）相当のＣＰＵと、Ｚ８０ＣＴＣ（counter timer circuit）相当のカウンタタイマ回路ＣＴＣと、ＲＯＭ及びＲＡＭのメモリ回路と、ウォッチドッグタイマＷＤＴと、乱数生成回路ＧＮＲと、メモリやＩＯポートの不正アクセス（illegal memory access）を検出してＣＰＵを強制リセットする異常リセット回路ＡＢＮと、入力ポートＩＮＰとを内蔵している。
【００４７】
図柄始動口１５からの入賞スイッチ信号ＳＧは、遊技盤中継基板２９に配置されたバッファ回路ＢＵＦを経由して、ワンチップマイコン２１Ａの乱数生成回路ＧＮＲと、入力ポートＩＮＰに重複して供給されている。なお、入力ポートＩＮＰには、図柄始動口１５に限らず、大入賞口１６やゲート１８の検出スイッチからのスイッチ信号も、合わせて供給されている。
【００４８】
バッファ回路ＢＵＦは、オープンコレクタ型の出力部を有し、入力側が１２Ｖにプルアップされ、出力側が５Ｖにプルアップされている。そして、遊技球が図柄始動口１５を通過して入賞状態となると、バッファ回路ＢＵＦは、正論理のＯＮ信号として、入賞スイッチ信号ＳＧを出力する。
【００４９】
乱数生成回路ＧＮＲは、入賞スイッチ信号ＳＧがＯＮ状態になったことを検出して検出内容を保持するラッチレジスタと、計数クロックΦを受けて高速度で更新されるカウンタと、入賞スイッチ信号がＯＮ状態となった瞬間のカウンタ値を乱数値として保持する乱数値レジスタとを有している。
【００５０】
そして、ＣＰＵは、入力ポートＩＮＰからの入力データに基づき、入賞スイッチ信号ＳＧがＯＮ状態となったことを把握すると、乱数生成回路ＧＮＲの乱数値レジスタから乱数値を取得し、これを当選値とを比較する抽選処理（図８の特別図柄処理ＳＴ２７）を実行するよう構成されている。
【００５１】
異常リセット回路ＡＢＮには、最大値レジスタＭＡＸや最小値レジスタＭＩＮが各々複数個内蔵されており、各レジスタには、遊技制御動作の開始に先立ってＣＰＵによって必要なアドレス値やポート番号が書込まれるよう構成されている。なお、特に限定されないが、この実施例では、最小値レジスタＭＩＮに、２の補数（負数）形式でアドレス値やポート番号を書き込んでいる。
【００５２】
また、異常リセット回路ＡＢＮには、ＣＰＵのアドレスバスやコントロールバスやデータバスが接続されており、アドレスバスに出力されるアドレス値が異常状態である場合（illegal memory access）には、ＣＰＵのリセット端子ＲＥＳＥＴに、リセット信号が出力されるよう構成されている。なお、ＣＰＵのリセット端子ＲＥＳＥＴには、異常を検出したウォッチドッグタイマＷＤＴからもリセット信号が供給される。
【００５３】
図５は、異常リセット回路ＡＢＮの回路構成を示す回路ブロック図である。図示の通り、異常リセット回路ＡＢＮは、ＲＯＭの不正アクセスを検出するＲＯＭ不正アクセス検出部５０と、ＲＡＭの不正アクセスを検出するＲＡＭ不正アクセス検出部５１と、ＩＯポートの不正アクセスを検出するＩＯ不正アクセス検出部５２と、を有して構成されている。３つの検出部５０〜５２は、その回路構成が類似しており、いずれの検出部も、不正アクセスを検出するとＬレベルの異常信号ＥＲを出力するよう構成されている。
【００５４】
各検出部５０〜５２から出力される異常信号ＥＲは、ＮＡＮＤゲートＧ４に供給され、その出力はＮＡＮＤゲートＧ５に供給されている。そして、ＮＡＮＤゲートＧ５には、ＣＰＵが出力するリセット制御信号ＣＴＬが供給されている。したがって、リセット制御信号ＣＴＬがＨレベルの状態で、何れかの異常信号ＥＲがＬレベルになると、ＣＰＵのリセット端子ＲＥＳＥＴにＬレベルのリセット信号が供給されて、ＣＰＵが強制リセットされることになる。
【００５５】
不正アクセス検出部５０，５１は、最小アドレス値ＳＴＡＲＴを、２の補数形式で記憶保持する１６ビット長の最小値レジスタＭＩＮと、最大アドレス値ＥＮＤを記憶保持する１６ビット長の最大値レジスタＭＡＸと、アドレスバスのアドレスデータＤＡＴＡを取得する１６ビット長のラッチ回路ＬＴと、１６ビット長の加算演算を実行する２つの加算部ＡＤＤ１と、２の補数演算を実行する補数演算部ＣＭＰと、２つの加算部ＡＤＤ１から出力される桁溢れ信号ＣＹを受ける出力ゲートＧＴとを有して構成されている。
【００５６】
ここで、最小値レジスタＭＩＮ、最大値レジスタＭＡＸ、及びラッチ回路ＬＴは電源投入時に電源リセット信号によって電源リセットされるよう構成されている。そのため、各レジスタＭＩＮ，ＭＡＸにＣＰＵが数値を設定しない限り、各レジスタの内容は００００Ｈである。同様に、ラッチ回路ＬＴは、アドレスバスのアドレス値を取得しない限り、電源投入直後の記憶値（００００Ｈ）が維持される。
【００５７】
補数演算部ＣＭＰは、入力データを２の補数形式に変換して、数値の正負を反転させる回路である。具体的には、ラッチ回路ＬＴの出力データＤＡＴＡを論理反転（ＮＯＴ演算）した後、これに１を加算する演算を実行している。その結果、アドレスバスからの取得データＤＡＴＡに対して、ＦＦＦＦＨ−ＤＡＴＡ＋１の出力が１６ビット長で得られる。なお、１６進数のＦＦＦＦＨは、１０進数では６５５３５である。
【００５８】
加算部ＡＤＤは、１個の半加算器（Half adder）と１５個の全加算器（Full adder）とを組み合わせて構成され、１６ビット長の加算結果と、最上位桁からの桁溢れ１ビット信号ＣＹと、を出力する回路である。
【００５９】
図示の通り、ＲＯＭ不正アクセス検出部５０の出力ゲートＧＴは、ＡＮＤゲート（負論理ＯＲゲート）で構成され、ＲＡＭ不正アクセス検出部５１の出力ゲートＧＴは、ＮＡＮＤゲートで構成されている。
【００６０】
ＲＯＭ不正アクセス検出部５０には、ＣＰＵが出力するＭＲＥＱバー信号及びＭ１バー信号を受けるＯＲゲートＧ１が配置され、ＯＲゲートＧ１の出力が、ラッチ信号としてラッチ回路ＬＴに供給されている。そのため、ＲＯＭ不正アクセス検出部５０では、Ｍ１バー信号とＭＲＥＱ信号バーが、共にＬレベルとなるタイミングで、アドレスバスのアドレスデータＤＡＴＡがラッチ回路ＬＴに取得される。
【００６１】
このようにＲＯＭ不正アクセス検出部５０では、Ｍ１バー信号とＭＲＥＱ信号バーが共にＬレベルとなるタイミングでアドレスデータＤＡＴＡをラッチするので、ＲＯＭに格納された各命令について、オペコード（operation code）部に続くオペランド（operand）部を格納しているアドレスの正当性を判定できない。例えば、ＬＤ Ａ， （ＮＮ）のような３バイト命令の場合に、オペランド部（アドレスＮＮ）を格納するメモリのアドレス値の正当性を判定しない。しかし、複数バイト長の命令において、オペコード部だけを正当領域に格納し、これに連続するオペランド部を不正領域に格納するようなことは事実上できないので、何の問題も生じない。
【００６２】
続いて、ＲＡＭ不正アクセス検出部５１について説明する。図示の通り、ＲＡＭ不正アクセス検出部５１には、ＣＰＵが出力するＭＲＥＱバー信号を論理否定するＮＯＴゲートＧ２と、ＲＦＳＨバー信号及びＮＯＴゲートＧ２の出力信号を受けるＮＡＮＤゲートＧ３が配置され、ＮＡＮＤゲートＧ３の出力が、ラッチパルスとしてラッチ回路ＬＴに供給されている。そのため、ＲＡＭ不正アクセス検出部５１では、ＲＦＳＨバー信号がＨレベルであることを条件に、ＭＲＥＱ信号バーの立下りエッジに同期して、アドレスバスのアドレスデータＤＡＴＡがラッチ回路ＬＴに取得される。
【００６３】
ＩＯ不正アクセス検出部５２は、ＲＡＭ不正アクセス検出部５１と類似の構成を有しており、最小ポート番号ＳＴＡＲＴを２の補数形式で記憶保持する８ビット長の最小値レジスタＭＩＮと、最大ポート番号ＥＮＤを記憶保持する８ビット長の最大値レジスタＭＡＸと、アドレスバスの下位８ビットデータを取得する８ビット長のラッチ回路ＬＴと、８ビット長の加算演算を実行する２つの加算部ＡＤＤと、２の補数演算を実行する補数演算部ＣＭＰと、２つの加算部ＡＤＤから出力される桁溢れ信号ＣＹを受けるＮＡＮＤゲートＧＴとを有して構成されている。
【００６４】
上記した各回路構成において、最小値レジスタＭＩＮや最大値レジスタＭＡＸには、ＲＯＭの使用領域やＲＡＭやＩＯポートの使用禁止領域を特定するアドレス値やポート番号が格納されるようになっている。
【００６５】
例えば、ＲＯＭ不正アクセス検出部５０の最小値レジスタＭＩＮには、ＲＯＭデータ（制御プログラムや制御データ）が記憶されている開始アドレスＳＴＡＲＴが格納され、最大値レジスタＭＡＸには、ＲＯＭデータが記憶されている終了アドレスＥＮＤが格納されるようになっている。したがって、オペコードフェッチサイクルにおいて、正当な記憶領域（ＳＴＡＲ〜ＥＮＤ）以外のＲＯＭアドレスがアクセスされた場合は、不正アクセスであると判定される。
【００６６】
一方、ＲＡＭ不正アクセス検出部５１の最小値レジスタＭＩＮには、使用が禁止されるＲＡＭの開始アドレスＳＴＡＲＴが格納され、最大値レジスタＭＡＸには、使用が禁止されるＲＡＭ終了アドレスＥＮＤが格納されるようになっている。同様に、ＩＯポート不正アクセス検出部５２の最小値レジスタＭＩＮには、使用が禁止されるＩＯポートの開始ポート番号ＳＴＡＲＴが格納され、最大値レジスタには、使用が禁止されるＩＯポートの終了ポート番号ＥＮＤが格納されるようになっている。そのため、ＲＡＭ不正アクセス検出部５１やＩＯポート不正アクセス検出部５２では、禁止範囲（ＳＴＡＲ〜ＥＮＤ）のアドレスやポート番号がアクセスされた場合には、これが不正アクセスとなる。なお、最小値レジスタＭＩＮには、開始アドレスや開始ポート番号が、２の補数形式で記憶されることは前述の通りである。
【００６７】
図６は、Ｚ８０ＣＰＵの動作内容を示すタイムチャートであり、オペコードフェッチサイクル（ａ）と、メモリリード／ライトサイクル（ｂ）と、ＩＯリード／ライトサイクル（ｃ）とを示している。
【００６８】
オペコードフェッチサイクル（図６（ａ））では、制御プログラムのオペコードが格納されているＲＯＭアドレスが、Ｍ１バー信号に同期して、ＣＰＵのプログラムカウンタから出力され、その後、ＭＲＥＱバー信号が立下る。
【００６９】
図５に示す通り、ＲＯＭ不正アクセス検出部５０には、Ｍ１バー信号とＭＲＥＱバー信号を受けるＯＲゲートＧ１が配置されている。そのため、ＭＲＥＱバー信号の立下りエッジで、アドレスバスのアドレス値ＤＡＴＡがラッチ回路ＬＴに取得される（図６（ａ）参照）。なお、その後、リフレッシュアドレスが出力されるタイミングでもＭＲＥＱバー信号が立下るが、このタイミングではＭ１バー信号がＨレベルであるので、ＲＯＭ不正アクセス検出部５０のラッチ回路ＬＴに影響を与えない。
【００７０】
メモリリード／ライトサイクル（図６（ｂ））では、制御プログラムの実行に基づくメモリリード／ライト動作が、ＭＲＥＱバー信号に同期して実行される。図５に示す通り、ＲＡＭ不正アクセス検出部５１には、ＮＯＴゲートＧ２やＮＡＮＤゲートＧ３が配置されているので、メモリリード／ライトサイクルにおいてプログラムカウンタから出力されるアクセス先のメモリアドレス値は、ＭＲＥＱバー信号の立下りエッジで、ラッチ回路ＬＴに取得される。なお、リフレッシュアドレスが出力されるタイミングでもＭＲＥＱバー信号が立下るが、このタイミングでは、ＲＦＳＨバー信号がＬレベルであることから、ＲＡＭ不正アクセス検出部５１のラッチ回路ＬＴに影響を与えない。また、ＲＡＭ不正アクセス検出部５１は、オペコードフェッチサイクルにおけるアドレス値も判定するが、使用禁止範囲（ＳＴＡＲＴ〜ＥＮＤ）か否かの判定しかしないので何ら問題が生じない。
【００７１】
ＩＯリード／ライトサイクル（図６（ｃ））では、制御プログラムのＩＮ命令やＯＵＴ命令の実行に基づいて、ＩＯポートのアクセス動作がＩＯＲＱバー信号に同期して実行される。この動作に対応してＩＯ不正アクセス検出部５２には、ＮＯＴゲートＧ２やＮＡＮＤゲートＧ３が配置されているので、アクセス先の８ビット長ポート番号が、ＩＯＲＥＱバー信号の立下りエッジで、ラッチ回路ＬＴに取得される。
【００７２】
以上の通り、本実施例では、オペコードフェッチサイクルに出力される１６ビット長のアドレス値は、ＲＯＭ不正アクセス検出部５０のラッチ回路ＬＴに取得され、メモリリード／ライトサイクルに出力される１６ビット長のアドレス値は、ＲＡＭ不正アクセス検出部５１のラッチ回路ＬＴに取得される。また、ＩＯリード／ライトサイクルに出力される下位８ビット長のアドレス値は、ＩＯ不正アクセス検出部５２のラッチ回路ＬＴに取得される。
【００７３】
ラッチ回路ＬＴに取得されたアドレス値ＤＡＴＡは、不正アクセス検出部５０〜５２の加算部において演算される。そこで、先ず、ＲＯＭ不正アクセス検出部５０の動作について、最小値レジスタＭＩＮに格納されている開始アドレス値の加算演算から説明する。
【００７４】
左側の加算部ＡＤＤ１において、最小値レジスタＭＩＮに格納されている２の補数形式の開始アドレス（ＦＦＦＦＨ−ＳＴＡＲＴ＋１）と、アドレスバスから取得されたＲＯＭのアドレス値ＤＡＴＡとが１６ビット加算されると、ＤＡＴＡ＞＝ＳＴＡＲＴの場合には、最上位ビットから桁溢れが生じ（ＣＹ＝１）、ＤＡＴＡ＜ＳＴＡＲＴの場合には桁溢れが生じない（ＣＹ＝０）。
【００７５】
ここで、開始アドレスＳＴＡＲＴは、制御プログラムが格納されている開始番地であるので、桁溢れが生じないＤＡＴＡ＜ＳＴＡＲＴの場合（ＣＹ＝０）には、本来存在しないアドレスに対する不正アクセスであることになる。
【００７６】
次に、右側の加算部ＡＤＤ１の動作について説明する。最大値レジスタＭＡＸに格納されている終了アドレスＥＮＤについては、アドレスバスから取得されたＲＯＭのアドレス値ＤＡＴＡが２の補数演算された後、他方の加算部ＡＤＤ１において、終了アドレスＥＮＤと加算される。そのため、ＦＦＦＦＨ−ＤＡＴＡ＋１＋ＥＮＤの関係から、ＥＮＤ＞＝ＤＡＴＡの場合には、最上位ビットから桁溢れが生じ（ＣＹ＝１）、ＥＮＤ＜ＤＡＴＡの場合には桁溢れが生じない（ＣＹ＝０）。
【００７７】
ここで、終了アドレスＥＮＤは、制御プログラムが格納されている最終番地であるので、桁溢れが生じないＥＮＤ＜ＤＡＴＡの場合（ＣＹ＝０）には、本来存在しないアドレスに対する不正アクセスであることになる。
【００７８】
このようにして２つの加算部ＡＤＤ１から出力される桁溢れ信号ＣＹは、ＡＮＤゲート（負論理ＯＲゲート）ＧＴに供給されるので、何れか一方の桁溢れ信号ＣＹがＣＹ＝０となる異常時（illegal memory access）には異常信号ＥＲがＬレベルとなる。
【００７９】
続いて、ＲＡＭ不正アクセス検出部５１の動作について確認する。左側の加算部ＡＤＤ１において、最小値レジスタＭＩＮに格納されている２の補数形式の開始アドレス（ＦＦＦＦＨ−ＳＴＡＲＴ＋１）と、アドレスバスから取得されたアドレス値ＤＡＴＡとが１６ビット加算されると、ＤＡＴＡ＞＝ＳＴＡＲＴの場合には、最上位ビットから桁溢れが生じ（ＣＹ＝１）、ＤＡＴＡ＜ＳＴＡＲＴの場合には桁溢れが生じない（ＣＹ＝０）。
【００８０】
ＲＡＭ不正アクセス検出部５１では、開始アドレスＳＴＡＲＴは、使用禁止設定されたＲＡＭの開始番地であるので、桁溢れが生じるＤＡＴＡ＞＝ＳＴＡＲＴの場合（ＣＹ＝１）には、禁止アドレス領域に対する不正アクセスである可能性がある。
【００８１】
右側の加算部ＡＤＤ１についても、ＲＡＭ不正アクセス検出部５１の動作は、ＲＯＭ不正アクセス検出部５０の場合と同様であり、アドレスバスから取得されたアドレス値ＤＡＴＡが２の補数演算された後、終了アドレスＥＮＤと加算される。そのため、ＦＦＦＦＨ−ＤＡＴＡ＋１＋ＥＮＤの関係から、ＥＮＤ＞＝ＤＡＴＡの場合には、最上位ビットから桁溢れが生じ（ＣＹ＝１）、ＥＮＤ＜ＤＡＴＡの場合には桁溢れが生じない（ＣＹ＝０）。
【００８２】
ここで、終了アドレスＥＮＤは、使用禁止されたＲＡＭの最終番地であるので、桁溢れが生じるＥＮＤ＞＝ＤＡＴＡの場合（ＣＹ＝１）には、本来存在しないアドレスに対する不正アクセスである可能性がある。
【００８３】
このようにして２つの加算部ＡＤＤ１から出力される桁溢れ信号ＣＹは、ＮＡＮＤゲートＧＴに供給されるので、２つの桁溢れ信号ＣＹが共にＣＹ＝１となる場合、つまり、ＤＡＴＡ＞＝ＳＴＡＲＴであって、且つ、ＥＮＤ＞＝ＤＡＴＡとなる場合には、使用が禁止された範囲（ＳＴＡＲＴ〜ＥＮＤ）のＲＡＭ領域が不正にアクセスされたことになり、ＮＡＮＤゲートＧＴの出力である異常信号ＥＲがＬレベルとなる。
【００８４】
ＩＯ不正アクセス検出部５２の動作は、各演算が８ビット長であることを除けば、上記したＲＡＭ不正アクセス検出部５１の動作と同じである。すなわち、使用が禁止されたポート番号の開始番号ＳＴＡＲＴと終了番号ＥＮＤに対して、ＤＡＴＡ＞＝ＳＴＡＲＴであって、且つ、ＥＮＤ＞＝ＤＡＴＡとなる場合には、不正アクセスであるとして異常信号ＥＲがＬレベルとなる。
【００８５】
続いて、図４に示すＣＰＵによって実行される主制御部２１の遊技動作を説明する。図７〜図８は、主制御部２１の制御プログラムを示すフローチャートであり、電源電圧の復旧や投入に基づいて起動されるシステムリセット処理（図７）と、所定時間毎（２ｍＳ）に起動されるマスク可能なタイマ割込み処理（図８（ａ））とで構成されている。
【００８６】
以下、図７を参照しつつ、システムリセット処理プログラム（メイン処理）について説明する。メイン処理が開始されるのは、停電状態からの復旧時のように初期化スイッチＳＷがＯＦＦ状態で電源がＯＮ状態になる場合と、遊技ホールの開店時のように、初期化スイッチＳＷがＯＮ操作されて電源がＯＮ状態になる場合とがある。なお、異常リセット回路ＡＢＮやウォッチドッグタイマＷＤＴが起動してＣＰＵが強制的にリセットされる場合もある。
【００８７】
何れの場合でも、Ｚ８０ＣＰＵは、最初に、ＣＰＵ内部のスタックポインタＳＰの値を、スタック領域の最終アドレスに対応して初期設定する（ＳＴ１）。
【００８８】
次に、ワンチップマイコンの異常リセット回路ＡＢＮのレジスタを含んだ各種レジスタの値を初期設定する（ＳＴ２）。具体的には、主制御部のＲＯＭの使用開始アドレスＳＴＡＲＴと、使用終了アドレスＥＮＤが、ＲＯＭ不正アクセス検出部５０の最小値レジスタＭＩＮと最大値レジスタＭＡＸに格納される。なお、各アドレス値は１６ビット長であるので、チップセレクト信号ＣＳ１〜ＣＳ４に同期して８ビット毎に記憶される。
【００８９】
また、主制御部のＲＡＭのうち、使用が禁止されるＲＡＭ領域の開始アドレスＳＴＡＲＴと終了アドレスＥＮＤが、ＲＡＭ不正アクセス検出部５１の最小値レジスタＭＩＮと最大値レジスタＭＡＸに格納される。同様に、使用が禁止されるＩＯポートの開始ポート番号ＳＴＡＲＴと終了ポート番号ＥＮＤが、ＩＯ不正アクセス検出部５２の最小値レジスタＭＩＮと最大値レジスタＭＡＸに格納される。
【００９０】
なお、上記した最小値レジスタＭＩＮや最大値レジスタＭＡＸについて、ＲＡＭやＩＯポートに使用禁止領域を設けない場合には、初期設定処理を省略しても良い。それは、最小値レジスタＭＩＮや最大値レジスタＭＡＸは、電源投入時に電源リセットされるので、アドレスバスからの取得データＤＡＴＡに対して、ＤＡＴＡ＋０の加算演算において、桁溢れ信号ＣＹが必ずＣＹ＝０となり、異常信号ＥＲが常にＨレベルに維持されるからである。
【００９１】
そこで、このような動作を活用して、遊技制御動作中に、最小値レジスタＭＩＮ及び最大値レジスタＭＡＸに一時的にゼロデータを格納することで、使用禁止領域を一時的に使用可能状態に変更することもできる。逆に、最小値レジスタＭＩＮ及び最大値レジスタＭＡＸを電源投入状態にして遊技制御動作を開始し、適当なタイミングで必要なアドレス値を各レジスタに格納することで、一時的な使用禁止領域を生成することもできる。なお、一時的な使用禁止領域を使用許可状態に戻したい場合には、各レジスタにゼロデータを格納すれば良い。
【００９２】
何れにしても、ステップＳＴ２の初期設定処理が終われば、リセット制御信号ＣＴＬをＬレベルに設定することで、ＲＡＭ不正アクセス検出部５１やＩＯポートの不正アクセス検出部５２からの異常信号ＥＲを出力禁止状態に設定する（ＳＴ３）。
【００９３】
図５に示す通り、ＲＡＭ不正アクセス検出部５１やＩＯポート不正アクセス検出部５２からの異常信号ＥＲは、ＮＡＮＤゲートＧ４を経由してＮＡＮＤゲートＧ５に供給されている。そして、ＮＡＮＤゲートＧ５の入力端子にはリセット制御信号ＣＴＬが供給されている。
【００９４】
そのため、ステップＳＴ３の処理によって、リセット制御信号ＣＴＬがＬレベルに設定された後は、ＮＡＮＤゲートＧ５の出力は必ずＨレベルとなるので、ＲＡＭ不正アクセス検出部５１やＩＯポート不正アクセス検出部５２からの異常信号ＥＲは、ＮＡＮＤゲートＧ５で遮断されて、ＣＰＵのリセット端子に供給されることはない。もっとも、ＲＯＭ不正アクセス検出部５０からの異常信号ＥＲは、ＮＡＮＤゲートＧ５を経由しないので、不正アクセス時には、ＣＰＵが強制的にリセットされる。
【００９５】
本実施例において、ステップＳＴ３の処理を設けるのは、ＲＡＭに使用禁止領域（ＳＴＡＲＴ〜ＥＮＤ）を設けるものの、ＲＡＭクリア処理（ＳＴ１０）では、全てのＲＡＭ領域を一気にクリアするためである。また、使用禁止領域も含めクリア処理をすることで、ＲＡＭの使用禁止領域を一時的に使用する場合にも支障が生じないようにしている。
【００９６】
上記のようなステップＳＴ３の処理が終われば、次に、書込み禁止信号ＩＮＨをＬレベルからＨレベルに変更して、ＲＡＭを書込み可能状態に設定する（ＳＴ４）。図４に示す通り、本実施例では、ＣＰＵのコントロールバスから出力されるＷＲバー信号（図６参照）は、ＮＡＮＤゲートＧＴ０を経由してＲＡＭに供給されている。そして、ＮＡＮＤゲートＧＴ０には、書込み禁止信号ＩＮＨが供給されているので、ステップＳＴ４の処理によって、書込み禁止信号ＩＮＨがＨレベルに設定することで、ＲＡＭへの書込み動作（Write）が許可される。なお、この実施例では、ＲＡＭからの読み込み動作（Read）は、書込み禁止信号ＩＮＨのレベルに拘らず、常に許可されている。
【００９７】
以上のようなステップＳＴ４の処理が終われば、入力ポートからＲＡＭクリア信号ＤＥＬを取得する（ＳＴ５）。ＲＡＭクリア信号ＤＥＬとは、ワンチップマイコン２１Ａの内蔵ＲＡＭの全領域を初期設定するか否かを決定する信号であって、係員が操作する初期化スイッチＳＷのＯＮ／ＯＦＦ状態に対応した値を有している。
【００９８】
次にＲＡＭクリア信号のレベルが判定されるが（ＳＴ６）、ＲＡＭクリア信号がＯＮ状態であったと仮定すると、内蔵ＲＡＭの全領域がゼロクリアされる（ＳＴ１０）。したがって、図８（ｂ）のステップＳＴ３７の処理でセットされたバックアップフラグＢＦＬの値は、他のチェックサム値などと共にゼロとなる。なお、このＲＡＭクリア処理（ＳＴ１０）は、リセット制御信号ＣＴＬをＬレベルに設定した状態で実行されるので、使用禁止領域をアクセスしても、ＣＰＵが強制リセットされるおそれはない。
【００９９】
次に、ＲＡＭ領域がゼロクリアされたことを報知するための電源投入コマンドを出力した後（ＳＴ１１）、Ｌレベルに初期設定されたリセット制御信号ＣＴＬを、Ｈレベルに戻すことで、ＲＡＭ不正アクセス検出部５１やＩＯポートの不正アクセス検出部５２からの異常信号ＥＲを出力可能状態に設定する（ＳＴ１２）。この結果、その後は、使用が禁止されているＲＡＭ領域や、ＩＯポートがアクセスされると、Ｌレベルに遷移した異常信号ＥＲに基づいてＣＰＵが強制的にリセットされることになる。
【０１００】
続いて、タイマ割込み動作（図８（ａ））を起動する割込み信号ＩＮＴを出力するＣＴＣを初期設定する（ＳＴ１３）。そして、ＣＰＵを割込み禁止状態にセットした状態で（ＳＴ１４）、各種のカウンタついて更新処理を実行し（ＳＴ１５）、その後、ＣＰＵを割込み許可状態に戻してステップＳＴ１４に戻る。なお、ステップＳＴ１４で更新されるカウンタには、外れ図柄用カウンタが含まれているが、この外れ図柄用カウンタは、図８（ａ）の特別図柄処理（ＳＴ２７）における大当り抽選処理の結果が外れ状態となった場合に、どのような態様の外れゲームを演出するかを決定するためのカウンタである。
【０１０１】
さて、ステップＳＴ６の判定処理に戻って説明すると、ＣＰＵがウォッチドッグタイマＷＤＴなどによって強制的にリセットされた場合や、停電状態からの復旧時には、ＲＡＭクリア信号はＯＦＦ状態である。そして、このような場合には、ステップＳＴ６の判定に続いて、バックアップフラグＢＦＬの内容が判定される（ＳＴ７）。バックアップフラグＢＦＬとは、図８（ｂ）の電源監視処理の動作が実行されたことを示すデータであり、この実施例では、電源遮断時のステップＳＴ３７の処理でバックアップフラグＢＦＬが５ＡＨとされ、電源復帰後のステップＳＴ３３の処理でゼロクリアされる。
【０１０２】
電源投入時や、停電状態からの復旧時である場合には、バックアップフラグＢＦＬの内容が５ＡＨの筈である。但し、何らかの理由でプログラムが暴走状態となり、ウォッチドッグタイマによるＣＰＵリセット動作が生じたような場合には、バックアップフラグＢＦＬ＝００Ｈである。したがって、ＢＦＬ≠５ＡＨ（通常はＢＦＬ＝００Ｈ）となる場合には、ステップＳＴ７からステップＳＴ１０の処理に移行させて遊技機の動作を初期状態に戻す。
【０１０３】
一方、バックアップフラグＢＦＬ＝５ＡＨであれば、チェックサム値を算出するためのチェックサム演算を実行する（ＳＴ８）。ここで、チェックサム演算とは、内蔵ＲＡＭのワーク領域を対象とする８ビット加算演算である。そして、チェックサム値が算出されたら、この演算結果を、ＲＡＭのＳＵＭ番地の記憶値と比較をする（ＳＴ９）。
【０１０４】
ＳＵＭ番地には、電圧降下時に実行される電源監視処理（図８（ｂ））において、同じチェックサム演算によるチェックサム値が記憶されている（ＳＴ３８）。そして、記憶された演算結果は、内蔵ＲＡＭの他のデータと共に、バックアップ電源によって維持されている。したがって、本来は、ステップＳＴ９の判定によって両者が一致する筈である。
【０１０５】
しかし、電源降下時にチェックサム演算（ＳＴ３８）の実行できなかった場合や、実行できても、その後、メイン処理のチェックサム演算（ＳＴ８）の実行時までの間に、ワーク領域のデータが破損している場合もあり、このような場合にはステップＳＴ９の判定結果は不一致となる。判定結果の不一致によりデータ破損が検出された場合には、ステップＳＴ１０の処理に移行させてＲＡＭクリア処理を実行し、遊技機の動作を初期状態に戻す。一方、ステップＳＴ９の判定において、チェックサム演算（ＳＴ８）によるチェックサム値と、ＳＵＭ番地の記憶値とが一致する場合には、ステップＳＴ１２の処理に移行する。
【０１０６】
続いて、上記したメイン処理を中断させて、２ｍＳ毎に開始されるタイマ割込み処理プログラム（図８（ａ））を説明する。タイマ割込みが生じると、ＣＰＵのレジスタを保存することなく、直ちに電源監視処理が実行される（ＳＴ２０）。これは、タイマ割込み処理が起動されるタイミングが、ステップＳＴ１６の直後に固定されているためである。
【０１０７】
電源監視処理（ＳＴ２０）では、電源基板２０から供給されている電圧降下信号のレベルを判定するが、具体的な処理内容については後述する。電源監視処理（ＳＴ２０）が終わると、普通図柄処理（ＳＴ２６）における抽選動作で使用される当り用カウンタＲＧの値が更新される（ＳＴ２１）。なお、特別図柄処理（ＳＴ２７）における抽選動作で使用される大当り判定用の乱数値ＲＮＤについては、図５の乱数生成回路ＧＮＲで生成されるので、ステップＳＴ２１の処理で更新されることはない。
【０１０８】
当り乱数更新処理（ＳＴ２１）が終わると、各遊技動作の時間を管理しているタイマについて、タイマ減算処理が行なわれる（ＳＴ２２）。ここで減算されるタイマは、主として、電動チューリップや大入賞口の開放時間やその他の遊技演出時間を管理するために使用される。
【０１０９】
続いて、図柄始動口１５や大入賞口１６の入賞検出スイッチを含む各種スイッチ類のＯＮ／ＯＦＦ信号が入力され、ワーク領域にＯＮ／ＯＦＦ信号レベルや、その立上り状態が記憶される（ＳＴ２３）。続いて、エラー管理処理が行われる（ＳＴ２４）。エラー管理処理は、遊技球の補給が停止したり、遊技球が詰まっていないかなど、機器内部に異常が生じていないかの判定を含んでいる。
【０１１０】
次に、払出制御部２４から受けた賞球計数信号に基づく管理処理を実行した後（ＳＴ２５）、普通図柄処理を行う（ＳＴ２６）。普通図柄処理とは、電動チューリップなど、普通電動役物を作動させるか否かの判定を意味する。具体的には、ステップＳＴ２３のスイッチ入力結果によって遊技球がゲートを通過していると判定された場合に、乱数更新処理（ＳＴ２１）で更新された当り用カウンタＲＧを、当り当選値と対比して行われる。そして、対比結果が当選状態であれば当り中の動作モードに変更する。また、当り中となれば、電動チューリップなど、普通電動役物の作動に向けた処理を行う。
【０１１１】
続いて、特別図柄処理を行う（ＳＴ２７）。特別図柄処理とは、大入賞口１６など特別電動役物を作動させるか否かの判定である。具体的には、入賞スイッチ信号ＳＧが立上ったと判定される場合には、乱数生成回路ＧＮＲの乱数レジスタに格納されている乱数値ＲＮＤに使用して大当り抽選処理を実行する。そして、図示省略しているが、抽選結果が当選状態であれば大当り中の動作モードに変更する。また、大当り中となれば、大入賞口など種特別電動役物の作動に向けた処理を行う。
【０１１２】
このような特別図柄処理（ＳＴ２７）の後、主制御部２１で管理するＬＥＤについて点灯動作を進行させると共に（ＳＴ２８）、電動チューリップや大入賞口などの開閉動作を実現するソレノイド駆動処理を実行した後（ＳＴ２９）、ＣＰＵを割込み許可状態ＥＩに戻してタイマ割込みを終える（ＳＴ３０）。その結果、割込み処理ルーチンからメイン処理の無限ループ処理（図７）に戻り、ステップＳＴ１５の処理が実行される。
【０１１３】
続いて、図８（ｂ）に示す電源監視処理（ＳＴ２０）について説明する。電源監視処理（ＳＴ２０）では、先ず、電源基板２０から供給される電圧降下信号を、入力ポート（不図示）を通して取得し（ＳＴ３１）、それが異常レベルでないか判定する（ＳＴ３２）。そして、異常レベルでない場合には、異常回数カウンタとバックアップフラグＢＦＬをゼロクリアして処理を終える（ＳＴ３３）。
【０１１４】
一方、電圧降下信号が異常レベルである場合には、異常回数カウンタをインクリメント（＋１）して（ＳＴ３４）、計数結果が上限値ＭＡＸを超えていないかを判定する（ＳＴ３５）。これは、入力ポートからの取得データが、ノイズなどの影響でビット化けしている可能性があることを考慮したものであり、所定回数（例えば、上限値ＭＡＸ＝２）連続して異常レベルを維持する場合には、交流電源が現に遮断されたと判定する。
【０１１５】
このように、本実施例では、電源遮断時にも、直ぐには以降のバックアップ処理を開始せず、動作開始のタイミングが、ＭＡＸ×２ｍＳだけ遅れる。しかし、（１）電源降下信号は、直流電源電圧の降下ではなく、交流直流電圧の降下を検出すること、（２）直流電源電圧は、大容量のコンデンサによって交流電源の遮断後もしばらくは維持されること、（３）電源監視処理が高速度（２ｍＳ毎）で繰り返されること、（４）バックアップ処理が極めてシンプルであり、迅速に終わることから、実質的には何の弊害もない。
【０１１６】
ところで、ステップＳＴ３５の判定の結果、異常回数カウンタの計数値が上限値ＭＡＸに一致した場合には、異常回数カウンタをゼロクリアした後（ＳＴ３６）、バックアップフラグＢＦＬに５ＡＨを設定する（ＳＴ３７）。次に、メインルーチンのステップＳＴ７の場合と、全く同じ演算を、全く同じ作業領域（ワークエリア）に対して実行し、その演算結果を記憶する（ＳＴ３８）。なお、実行される演算は、典型的には８ビット加算演算である。
【０１１７】
そして、その後は、書込み禁止信号ＩＮＨをＬレベルに設定してＲＡＭへの書込みを禁止状態に設定すると共に、リセット制御信号ＣＴＬをＬレベルに設定する（ＳＴ３９）。そして、全ての出力ポートの出力データをクリアする（ＳＴ４０）。その結果、同種の電源監視処理を主制御部２１より遅れて開始する払出制御部２４に対して、不合理なデータが送信させることが防止される。
【０１１８】
ここで、リセット制御信号ＣＴＬをＬレベルに設定して、ＲＡＭの不正アクセスやＩＯポートの不正アクセスによるＣＰＵリセットを防止するのは、電源電圧の降下に伴い、異常動作が生じる可能性があり、これを未然防止するためである。すなわち、書込み禁止信号ＩＮＨをＬレベルに設定しても、メモリへの書込み（Write）が禁止されるだけで、メモリからの読出（Read）は可能であるので、もし、リセット制御信号ＣＴＬをＨレベルに維持すると、電源電圧の降下に伴い、ＲＡＭの不正アドレスの読出し動作によってＣＰＵリセットが生じる可能性があり、その場合には、ステップＳＴ４以降の処理によって、ＲＡＭが異常に書き換えられてしまうことになるからである。
【０１１９】
以上のバックアップ処理が終われば、ＣＴＣに対する設定処理によって割込み信号ＩＮＴの生成を禁止すると共に、無限ループ処理を繰り返しつつ直流電源電圧が降下するのを待つ（ＳＴ４１）。なお、このタイミングでは、ＣＰＵは、もともと割込み禁止状態であるが（ＳＴ３０参照）、電源電圧の降下による誤動作の可能性を、可能な限り排除する趣旨から、本実施例では、ＣＴＣからの割込み信号ＩＮＴの出力も禁止している。
【０１２０】
以上、本発明の実施例を具体的に説明したが、具体的な記載内容は何ら本発明を限定するものではなく、各種の改変が可能である。例えば、この実施例では、ハードウェア構成の簡略化のために、最小値レジスタＭＩＮに２の補数形式に変換された開始アドレスが格納されるが、ＣＰＵの処理を軽減する意味では、最小値レジスタの前段に補数演算部ＣＭＰを配置しても良いのは勿論である。
【０１２１】
また、実施例の異常リセット回路ＡＢＮには、ＩＯポート不正アクセス部５２が設けられているが、これを省略しても良い。特に、ポートマップドＩＯ方式ではなく、メモリマップドＩＯ方式でポート設計をする場合には、ＲＡＭポート不正アクセス部５１だけで足りることになる。
【０１２２】
また、実施例では、各不正アクセス部５０〜５２に、最小値レジスタＭＩＮと最大値レジスタＭＡＸを各一個配置する構成を説明したが、各レジスタＭＩＮ，ＭＡＸは必要に応じて適宜に増加される。
【符号の説明】
【０１２３】
ＳＴ２    禁止設定手段
ＣＴＬ    アクセス制御手段
５１      第１の異常リセット手段
５０      第２の異常リセット手段
ＩＮＨ      書込み制御手段
ＧＭ      遊技機
２１      主制御部
【図１】
0005851125.tif 000002
【図２】
0005851125.tif 000003
【図４】
0005851125.tif 000004
【図５】
0005851125.tif 000005
【図６】
0005851125.tif 000006
【図７】
0005851125.tif 000007
【図８】
0005851125.tif 000008
【図３】
0005851125.tif 000009