(57)【要約】【課題】特定記憶領域に意図しないアクセスが行われてしまう可能性を低減できる遊技機を提供する。【解決手段】Ｑレジスタに記憶されたデータを用いて記憶領域のアドレスを特定し、該特定されたアドレスの記憶領域からデータを読み出すＬＤＱ命令を実行し、Ｑレジスタには、遊技機への電源供給の停止が検出されるタイミングＴ０までは遊技ＲＡＭ領域の上位アドレス「Ｆ０」を特定可能な所定値が記憶され、遊技機への電源供給の停止が検出されたときには遊技ＲＡＭ領域とは異なる内部機能レジスタの上位アドレス「Ｆ５」を特定可能な特定値が記憶される。【選択図】図７
2019111055.tif 000002
【特許請求の範囲】
【請求項１】
遊技を行うことが可能な遊技機であって、
所定記憶領域に記憶されたデータを用いて記憶領域のアドレスを特定し、該特定されたアドレスの記憶領域からデータを読み出す特定命令をプログラムに基づいて実行する命令実行手段と、
前記遊技機への電源供給が検出されたときに特定記憶領域に記憶されているデータに基づいて制御状態を復帰させるための処理を、該電源供給の停止が検出されたときに実行する処理実行手段とを備え、
前記所定記憶領域には、
前記遊技機への電源供給の停止が検出されるまでは前記特定記憶領域のアドレスを特定するために用いられる所定値データが記憶され、
前記遊技機への電源供給の停止が検出されたときには前記特定記憶領域とは異なる領域のアドレスを特定するために用いられる特定値データが記憶される、遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遊技を行うことが可能な遊技機に関する。
【背景技術】
【０００２】
遊技機として、所定の賭数を設定し、スタート操作が行われたことに基づいて、複数種類の識別情報の可変表示が行われるスロットマシンや、遊技球などの遊技媒体を発射装置によって遊技領域に発射し、該遊技領域に設けられている入賞口などの始動領域に遊技媒体が入賞したときに複数種類の識別情報の可変表示が行われるパチンコ遊技機などがある。
【０００３】
この種の遊技機として、記憶領域のアドレスを特定して該特定したアドレスの記憶領域にアクセスすることによりデータを読み出す特定命令を実行するものが提案されている（たとえば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−８３３２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の遊技機において、特定記憶領域を保護すべきときに誤作動により特定命令が発行されてしまった場合には、該特定記憶領域に意図しないアクセスが行われてしまう虞があった。
【０００６】
本発明は、このような問題点に着目してなされたものであり、特定記憶領域に意図しないアクセスが行われてしまう可能性を低減できる遊技機を提供することを目的とする。
【課題を解決するための手段】
【０００７】
（１）  遊技を行うことが可能な遊技機であって、
所定記憶領域（たとえば、Ｑレジスタ）に記憶されたデータを用いて記憶領域のアドレスを特定し、該特定されたアドレスの記憶領域からデータを読み出す特定命令（たとえば、ＬＤＱ命令）をプログラムに基づいて実行する命令実行手段（たとえば、メイン制御部４１）と、
前記遊技機への電源供給が検出されたときに特定記憶領域（たとえば、遊技ＲＡＭ領域）に記憶されているデータに基づいて制御状態を復帰させる（たとえば、図５のＳａ１６〜Ｓａ２６の処理）ための処理（たとえば、遊技ＲＡＭ領域にバックアップ電源を供給する処理、Ｓｋ１に示すレジスタを遊技ＲＡＭ領域に退避させる処理、Ｓｋ２の遊技ＲＡＭ領域にスタックポインタを退避させる処理など）を、該電源供給の停止が検出されたときに（図６の電断処理において）実行する処理実行手段（たとえば、メイン制御部４１）とを備え、
前記所定記憶領域（たとえば、Ｑレジスタ）には、
前記遊技機への電源供給の停止が検出されるまでは前記特定記憶領域のアドレスを特定するために用いられる所定値データ（たとえば、遊技ＲＡＭ領域の上位アドレス「Ｆ０」を特定可能な所定値）が記憶され（たとえば、図７に示すように、電断処理が実行されるタイミングＴ０まではＱレジスタに所定値が格納され）、
前記遊技機への電源供給の停止が検出されたときには前記特定記憶領域とは異なる領域のアドレスを特定するために用いられる特定値データ（たとえば、遊技ＲＡＭ領域とは
異なる領域である内部機能レジスタの上位アドレス「Ｆ５」を特定可能な特定値）が記憶される。
【０００８】
このような構成によれば、電源供給の停止が検出されたときというのは、電源供給の観点で不安定な状態であり、このような不安定な状態において誤って特定命令が実行された場合であっても、電源供給が停止したときの制御状態へ復帰させるためのデータが記憶されている重要な特定記憶領域に対して、意図しないアクセスが実行される可能性を低減できる。
【０００９】
また、記憶領域（特定記憶領域、および特定記憶領域とは異なる領域を含む）のアドレスは、第１情報（たとえば、該アドレスの上位アドレス）と第２情報（たとえば、該アドレスの下位アドレス）とを含み、たとえば、第１情報は、所定記憶領域（たとえば、Ｑレジスタ）に記憶させておくことが好ましい。そして、特定命令では、第１情報と第２情報とからアドレスを特定し、特定したアドレスの記憶領域からデータを読み出す。この読み出しの際には、該所定記憶領域に記憶されている第１情報と、該特定命令で指定された第２情報とからアドレスを特定する。このような構成によれば、特定命令において第１情報および第２情報の双方を指定してアドレスを特定する構成と比較して、特定命令のプログラム容量を削減することができる。
【００１０】
（２）  （１）の遊技機において、
前記特定値データは、前記遊技機への電源供給が開始されたときに初期化される領域のアドレスを特定するために用いられるデータである（たとえば、特定値は、起動処理の前に実行される起動時設定処理において初期化される内部機能レジスタの上位アドレスを特定可能な値である）。
【００１１】
このような構成によれば、不安定な状態において誤って特定命令が実行された場合であっても、電源供給が開始されたときに初期化される領域にアクセスされるが、このような領域にアクセスされても、特段の問題が生じることを低減できる。
【００１２】
（３）  （１）または（２）の遊技機において、
記憶領域に格納されているデータが正常であるか否かを確認するための確認用データ（たとえば、図６のＳｋ４に示すＲＡＭ破壊診断用固定データおよびＳｋ７に示すＲＡＭパリティ調整用データ）を生成して前記特定記憶領域に記憶させる確認用データ生成処理（たとえば、図６のＳｋ４およびＳｋ７の処理）を、電源供給の停止が検出されたときに（たとえば、電断処理において）実行する確認用データ生成処理実行手段をさらに備え、
前記所定記憶領域（たとえば、Ｑレジスタ）には、前記確認用データ生成処理が実行された後に、前記特定値データが記憶される（たとえば、図６に示すように、Ｓｋ４およびＳｋ７の処理が実行された後に、Ｓｋ８において、Ｑレジスタに特定値が設定される）。
【００１３】
このような構成によれば、確認用データが記憶された特定記憶領域に記憶された後に、誤って特定命令が実行された場合であっても、該確認用データが記憶された特定記憶領域にアクセスする可能性を低減できる。
【００１４】
（４）  （１）〜（３）いずれかの遊技機において、
前記遊技機への電源供給の停止が検出されたときにおいて（たとえば、図６の電断処理において）、前記特定値データが前記所定記憶領域に記憶された後に（たとえば、Ｓｋ８の処理の後に）、該電源供給の停止に応じた特別値データ（たとえば、Ｓｋ９およびＳｋ１０に示すＲＡＭアクセス禁止フラグ、および割込禁止フラグなどの電断時設定値）を特別領域（たとえば、内部機能レジスタ）に記憶させる特別値記憶手段をさらに備え、
前記特定命令は、前記所定記憶領域に記憶されたデータを用いて記憶領域のアドレスを
特定し、該特定されたアドレスの記憶領域にデータを前記プログラムに基づいて記憶する命令であり（たとえば、ＬＤＱ命令は、領域にデータを設定する処理を実行するためにも用いられ）、
前記特定値データは前記特別記憶領域のアドレスのうちの一部を特定するために用いられるデータ（たとえば、内部機能レジスタの上位アドレス「Ｆ５」を特定可能な値）であり、前記特別記憶領域のアドレスのうちの前記一部のアドレス以外のアドレスを特定可能なデータは前記特定命令により指定される（内部機能レジスタの下位アドレスについては、ＬＤＱ命令により指定される）。
【００１５】
このような構成によれば、電源供給の停止が検出されたときにおいて、特別値を特別領域に記憶させる命令のプログラム容量を削減できる。
【００１６】
（５）  （１）〜（４）いずれかの遊技機において、
前記プログラムは、特定プログラム（たとえば、遊技プログラム）と非特定プログラム（たとえば、非遊技プログラム）とを含み、
前記特定記憶領域（たとえば、遊技ＲＡＭ領域）は、前記特定プログラムで用いるデータが記憶されている領域であり、
前記特定記憶領域のアドレスは、第１情報（たとえば、該アドレスの上位アドレス）と第２情報（たとえば、該アドレスの下位アドレス）とを含み、
前記第１情報は、前記所定記憶領域（たとえば、Ｑレジスタ）に記憶されており、
前記特定命令は、前記第１情報と、該特定命令により指定された前記第２情報とからアドレスを特定し、該特定したアドレスの前記特定記憶領域からデータを読み出す命令であり、
前記命令実行手段は、前記特定命令を、前記特定プログラムに基づいて実行する一方、前記非特定命令に基づいては実行しない（たとえば、遊技プログラムではＬＤＱ命令は用いられるが、非遊技プログラムではＬＤＱ命令は用いられない）。
【００１７】
このような構成によれば、非特定プログラムに基づいて特定命令を実行しないことから、非遊技プログラムにおいて特定命令が実行されることにより前記特定プログラムで用いるデータが記憶されている記憶領域にアクセスされることを低減できる。したがって、特定プログラムで用いるデータが記憶されている記憶領域に、意図しないアクセスが実行される可能性を低減できる。
【００１８】
（６）  （１）〜（５）いずれかの遊技機において、
前記プログラムは、特定プログラム（たとえば、遊技プログラム）と非特定プログラム（たとえば、非遊技プログラム）とを含み、
前記特定プログラムで用いられるプログラムが記憶されているプログラム記憶領域（たとえば、遊技プログラム領域）のアドレスは、第１情報（たとえば、該アドレスの上位アドレス）と第２情報（たとえば、該アドレスの下位アドレス）とを含み、
前記第１情報は、特殊記憶領域（たとえば、ベクターテーブル領域）に記憶されており、
特別命令（たとえば、ＲＳＴ命令およびＣＡＬＬＶ命令）は、前記第１情報と、該特別命令により指定された前記第２情報とからアドレスを特定し、該特定したアドレスの前記プログラム記憶領域からプログラムを読み出す命令であり、
前記命令実行手段は、前記特別命令を、前記特定プログラムに基づいて実行する一方、前記非特定プログラムに基づいては実行しない（たとえば、遊技プログラムではＲＳＴ命令およびＣＡＬＬＶ命令は用いられるが、非遊技プログラムではＲＳＴ命令およびＣＡＬＬＶ命令は用いられない）。
【００１９】
このような構成によれば、非特定プログラムに基づいて特別命令を実行しないことから
、非遊技プログラムにおいて特別命令が実行されることにより特定プログラムで用いるプログラムが記憶されている記憶領域にアクセスされることを低減できる。したがって、特定プログラムで用いるプログラムが記憶されている記憶領域に、意図しないアクセスが実行される可能性を低減できる。
【図面の簡単な説明】
【００２０】
【図１】本発明が適用された実施例のスロットマシンの模式図である。
【図２】メイン制御部が搭載するＲＯＭ及びＲＡＭのメモリマップを示す図である。
【図３】メイン制御部が搭載するＲＯＭ及びＲＡＭのメモリマップの詳細を示す図である。
【図４】メイン制御部が行う起動処理の制御内容を示すフロー図である（その１）。
【図５】メイン制御部が行う起動処理の制御内容を示すフロー図である（その２）。
【図６】メイン制御部が行う電断処理の制御内容を示すフロー図である。
【図７】ＲＡＭアクセスの禁止などのタイミングを示す図である。
【発明を実施するための形態】
【００２１】
［全体構成］
図１は、遊技機の全体構成例を示す模式図である。図１（ａ）は、遊技機１の主な外観構成の一例を示す模式図である。図１（ｂ）は、遊技機１の主な内部構成の一例を示す模式図である。
【００２２】
図１（ａ）に示すように、本実施の形態に係る遊技機１は、演出を実行するための演出手段として、液晶表示器５１と、種々の音を出力可能な１以上のスピーカ５３と、種々の態様で発光可能な１以上のランプ６３とを備える。液晶表示器５１は、画像を表示する表示手段として機能する。スピーカ５３は、音を出力する音出力手段として機能する。ランプ６３は、発光する発光手段として機能する。
【００２３】
図１（ｂ）に示すように、遊技機１の内部には、遊技の進行を制御するとともに遊技の進行に応じて各種コマンドを出力する遊技制御基板４０、および該コマンドに応じて所定の演出を制御する演出制御基板９０などが設けられている。遊技制御基板４０は、遊技の進行に関する処理を行うとともに、遊技制御基板４０に搭載あるいは接続された構成を制御するメイン制御部４１を備える。演出制御基板９０は、遊技制御基板４０から送信されるコマンドを受けて演出を行う処理を行うとともに、演出制御基板９０に搭載あるいは接続された構成を制御するサブ制御部９１を備える。
【００２４】
また、メイン制御部４１は、ＣＰＵ（Central Processing Unit）４１ａと、ＲＯＭ（Read only memory）４１ｂと、ＲＡＭ（Random access memory）４１ｃとを有する。また、サブ制御部９１は、ＣＰＵ９１ａと、ＲＯＭ９１ｂと、ＲＡＭ９１ｃとを有する。
【００２５】
また、メイン制御部４１は、複数の入力ポート、および複数の出力ポートを含む。該複数の出力ポートそれぞれは、種々の信号（各種のモータ、ライト、表示部などを制御するための制御信号など）を出力する。複数の入力ポートそれぞれには、種々の信号（書く操作部からの操作検出信号、および後述の停電検出信号など）が入力される。また、以下では、遊技機１がスロットマシンであるとして説明するが、他の遊技機（たとえば、パチンコ遊技機）においても下記の思想を適用できる。
【００２６】
スロットマシンにおいてゲームを行う場合には、まず、メダルをメダル投入部に投入するかＭＡＸＢＥＴスイッチの操作などにより規定数の賭数を設定する。これにより、入賞ラインが有効となり、かつスタートスイッチへの操作が有効となり、ゲームが開始可能な状態となる。賭数設定済の状態でメダルが投入された場合には、その分はクレジットに増
加される。
【００２７】
１ゲームを開始可能となる賭数が設定されている状態（ゲームが開始可能な状態）でスタートスイッチが操作されると、複数（たとえば、３つ）のリールが回転することで図柄が変動表示され、該リールにそれぞれ対応するストップスイッチが操作されることで対応するリールの回転が停止する。そして、透視窓の上中下段に３つの図柄が表示結果として導出表示される。入賞ラインＬＮ上に入賞図柄の組合せが停止することで入賞が発生したときには、入賞に応じて、所定枚数のメダルが遊技者に対して付与される。
【００２８】
また、内部抽選により抽選される対象役を抽選対象役または当選役という。役が入賞するためには、その役が内部抽選により当選している必要がある。
【００２９】
［メイン制御部のメモリ領域とプログラムについて］
図２は、メイン制御部４１が用いるメモリ領域のアドレスマップである。図２に示すように、メイン制御部４１が用いるメモリ領域は、ＲＯＭ４１ｂに割り当てられたメモリ領域（００００Ｈ〜７ＦＦＦＨ）と、ＲＡＭ４１ｃに割り当てられたメモリ領域（Ｆ０００Ｈ〜ＦＦＦＦＨ）と、を含む。
【００３０】
ＲＯＭ４１ｂのメモリ領域は、プログラム及び固定データが格納されるプログラム／データ領域（００００Ｈ〜２６ＦＦＨ）と、プログラムのタイトル、バージョン等の任意のデータを設定可能なＲＯＭコメント領域（２７００Ｈ〜２７７ＦＨ）と、後述するＣＡＬＬＶ命令のサブルーチンの上位アドレス及びタイマ割込処理（メイン）の先頭アドレスが設定されるベクタテーブル領域（２７８０Ｈ〜２７Ａ７Ｈ）と、メイン制御部４１の内部機能をハードウェア的に設定するためのパラメータが設定されるＨＷパラメータ領域（２７Ａ８Ｈ〜２７ＦＦＨ）と、アクセスが禁止される未使用領域（２８００Ｈ〜７ＦＦＦＨ）を含む。
【００３１】
ＲＯＭ４１ｂにおけるＨＷパラメータ領域に設定されるパラメータは、プログラム／データ領域で使用するＲＯＭ領域の最終アドレス（ＨＰＲＧＥＮＤ）、アクセス禁止するＲＡＭ領域の開始アドレス（ＨＲＡＭＳＴＡＴ）及び最終アドレス（ＨＲＡＭＥＮＤ）を含む。
【００３２】
ＲＡＭ４１ｃのメモリ領域は、ワークとして使用可能な使用可能領域（Ｆ０００Ｈ〜Ｆ４００Ｈ）と、メイン制御部４１に搭載されている各機能を制御するためのレジスタ群が格納される内部機能レジスタ領域（Ｆ５００Ｈ〜Ｆ６ＦＦＨ）と、アクセスが禁止される未使用領域（Ｆ４０１Ｈ〜Ｆ４ＦＦＨ、Ｆ７００Ｈ〜ＦＦＦＦＨ）と、を含む。また、図２には特に図示しないが、ＲＡＭ４１ｃのメモリ領域は、後述する信号領域を含む。信号領域の上位アドレスは、内部機能レジスタ同様に、「Ｆ５」であるとする。
【００３３】
図３は、メイン制御部４１のＲＯＭ４１ｂにおけるプログラム／データ領域及びＲＡＭ４１ｃにおける使用可能領域のアドレスマップである。
【００３４】
図３（ａ）に示すように、ＲＯＭ４１ｂにおけるプログラム／データ領域は、遊技の進行に係わる遊技プログラムが記憶される遊技プログラム領域と、遊技プログラムが用いる遊技データが記憶される遊技データ領域と、未使用領域１と、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、非遊技プログラムが用いる非遊技データが記憶される非遊技データ領域と、未使用領域２と、を含む。
【００３５】
なお、遊技の進行とは、遊技を構成する一連のプロセスを進行させることであり、スロットマシンであれば、賭数を設定してゲームを開始可能とする段階、ゲームを開始してリ
ールを回転させる段階、リールを停止させて表示結果を導出させる段階、表示結果に応じてメダル等の価値を付与する段階、を進行させることである。
【００３６】
遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、がそれぞれ別個に割り当てられているとともに、遊技プログラム領域及び非プログラム領域のうちＲＯＭ４１ｂの記憶領域において後方に割り当てられていた非プログラム領域の手前の領域は、少なくとも１６バイト以上の未使用領域１が割り当てられているため、遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、を記憶領域の違いに応じて容易に特定することができる。
【００３７】
また、遊技プログラム領域と遊技データ領域、非遊技プログラム領域と非遊技データ領域はそれぞれ連続する領域に割り当てられる一方、遊技の進行に係わる遊技プログラム領域及び遊技データ領域と、遊技の進行に係わらない非遊技プログラム及び非遊技データ領域と、が少なくとも１６バイト以上の未使用領域１を挟んで連続しない領域に割り当てられているため、遊技の進行に係わる遊技プログラム領域及び遊技データ領域と、遊技の進行に係わらない非遊技プログラム及び非遊技データ領域と、を記憶領域の違いに応じて容易に特定することができる。
【００３８】
なお、上記において記憶領域の前後とは、記憶領域に割り当てられたアドレス値の大小関係であり、アドレスが小さい方が前方となり、アドレスが大きい方が後方となる。このため、一の記憶領域よりも後方に割り当てられた記憶領域とは、一の記憶領域よりもアドレス値が大きい記憶領域が該当し、一の記憶領域よりも前方に割り当てられた記憶領域とは、一の記憶領域よりもアドレス値が小さい記憶領域が該当する。
【００３９】
また、非遊技プログラム領域よりも後方に遊技プログラムが割り当てられ、非遊技プログラム領域よりも後方に割り当てられた遊技プログラムの手前に未使用領域が割り当てられた構成としても良く、このような構成においても遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、を記憶領域の違いに応じて容易に特定することができる。
【００４０】
また、遊技プログラム領域と、非遊技プログラム領域と、が未使用領域１を挟んで隣接する領域に割り当てられる構成としても良く、このような構成であっても、遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、を記憶領域の違いに応じて容易に特定することができる。
【００４１】
また、ＲＯＭ４１ｂのプログラム／データ領域の未使用領域１、２には、全ての領域に０値が格納されているため、遊技プログラム領域及び遊技データ領域と、非遊技プログラム領域及び非遊技データと、未使用領域１、２と、を容易に区別することができるとともに、未使用領域１、２に不正なデータが格納されている場合でも容易に発見することができる。
【００４２】
なお、ＲＯＭ４１ｂのプログラム／データ領域の未使用領域１、２における全ての領域に１が格納される構成としても良く、このような構成とした場合でも、遊技プログラム領域及び遊技データ領域と、非遊技プログラム領域及び非遊技データと、未使用領域１、２と、を容易に区別することができるとともに、未使用領域１、２に不正なデータが格納されている場合でも容易に発見することができる。
【００４３】
また、遊技プログラム領域と、非遊技プログラム領域と、が別個の領域に割り当てられた構成であれば、遊技プログラム領域と、非遊技プログラム領域と、が隣接する領域にわら当てられる構成としても良く、このような構成であっても遊技の進行に係わる遊技プロ
グラム領域と、遊技の進行に係わらない非遊技プログラムと、を記憶領域の違いに応じて容易に特定することができる。
【００４４】
また、遊技プログラム領域及び非遊技プログラム領域はいずれも、アドレスを２進数表記した場合に下位４桁の値が同じ０のアドレス（０Ｈ）から開始するようになっており、ＲＯＭ４１ｂのプログラム／データ領域のうち遊技の進行に係る遊技プログラム領域と、遊技の進行に係わらない非遊技プログラム領域と、を他の領域と容易に区別することができる。
【００４５】
また、遊技プログラム領域及び非遊技プログラム領域はいずれも、アドレスを２進数表記した場合に下位４桁の値が同じ０のアドレスから開始するだけでなく、１６進数表記した場合に下位１桁の値が同じ０のアドレス（０Ｈ）から開始するので、アドレスを２進数表記した場合だけでなく、１６進数表記した場合にも遊技プログラム領域と、非遊技プログラム領域と、を他の領域と容易に区別することができる。
【００４６】
なお、遊技プログラム領域及び非遊技プログラム領域がいずれも、アドレスを２進数表記したか、１６進数表記したか、に関わらず、下位Ｎ（Ｎは１以上の自然数）桁が同じ値のアドレスから開始する構成であれば、遊技プログラム領域と、非遊技プログラム領域と、を他の領域と容易に区別することが可能であり、たとえば、下位Ｎ（Ｎは１以上の自然数）桁の値が同じ１のアドレスから開始する構成でも同様の効果が得られるものである。
【００４７】
図３（ｂ）に示すように、ＲＡＭ４１ｃの使用可能領域は、遊技プログラムがワークとして用いる遊技ＲＡＭ領域と、非遊技プログラムがワークとして用いる非遊技ＲＡＭ領域と、未使用領域４と、を含んでおり、遊技ＲＡＭ領域には、特別ワークと、重要ワークと、一般ワークと、未使用領域３と、遊技プログラムがデータを退避する遊技スタック領域と、が含まれ、非遊技ＲＡＭ領域には、遊技プログラムが参照可能な領域と、遊技プログラムが参照不可能な領域と、非遊技プログラムがデータを退避する非遊技スタック領域と、が含まれる。なお、本実施形態では、遊技スタック領域と非遊技スタック領域とをそれぞれ異なる領域に個別に備える構成であるが、遊技プログラム及び非遊技プログラムが共用する一のスタック領域を備える構成としても良い。
【００４８】
特別ワークは、サブ制御部９１へコマンドを送信するためのデータ、各種ソフトウェア乱数等、設定開始前にのみ初期化されるデータが格納されるワークである。
【００４９】
重要ワークは、各種表示器やＬＥＤの表示用データ、Ｉ／Ｏポートの入出力データ、遊技時間の計時カウンタ等が格納されるワークである。
【００５０】
一般ワークは、停止制御テーブル、停止図柄、メダルの払出枚数などが格納されるワークである。
【００５１】
遊技スタック領域（使用中）は、ＣＰＵ４１ａのレジスタから退避したデータが格納される領域である。また、未使用スタック領域（未使用）は、起動処理において、初期化されることとなるが、遊技スタック領域（使用中）は、プログラムの続行のため、初期化されることはない。
【００５２】
また、遊技ＲＡＭ領域の開始アドレスは、「Ｆ０００Ｈ」となる。また、本実施例では、特別ワークの開始アドレス、重要ワークの開始アドレス、および一般ワークの一部の開始アドレスそれぞれの上位アドレスは、「Ｆ０」であるとする。
【００５３】
未使用領域３は、遊技プログラム及び非遊技プログラムのいずれも使用しない領域であ
り、予め定められた容量の遊技ＲＡＭ領域に対して余剰となった領域である。
【００５４】
また、未使用領域４は、遊技プログラム及び非遊技プログラムのいずれも使用しない１６バイト以上の領域である。遊技ＲＡＭ領域と、非遊技ＲＡＭ領域とが、未使用領域４を挟んで連続しない領域に割り当てられているため、遊技の進行に係わる遊技プログラムが用いる遊技ＲＡＭ領域と、遊技の進行に係わらない非遊技プログラムが用いる非遊技ＲＡＭ領域と、を記憶領域の違いに応じて容易に特定することができる。
【００５５】
以下では、遊技プログラム領域、遊技データ領域及び遊技ＲＡＭ領域をまとめて遊技領域と称す場合があり、非遊技プログラム領域、非遊技データ領域及び非遊技ＲＡＭ領域をまとめて非遊技領域と称す場合がある。また、未使用領域１及び未使用領域２、未使用領域３及び未使用領域４をまとめて未使用領域と称す場合がある。
【００５６】
メイン制御部４１は、ＨＷパラメータ領域に設定されるパラメータに基づいて、ＲＯＭ４１ｂのプログラム／データ領域のうちアクセスが禁止された領域へのアクセスがあったとき、ＲＡＭ４１ｃの使用可能領域のうちアクセスが許可に設定されていない領域）へのアクセスがあったとき、ＲＯＭ４１ｂのうちプログラム／データ領域以外の領域へのアクセスがあったとき、ＲＡＭ４１ｃのうち使用可能領域以外の領域へのアクセスがあったときに、すなわち正常な動作ではアクセスすることのないメモリ領域へのアクセスがあったときにイリーガルアクセスリセットを発生させることで、遊技の進行を不能化させる不能化処理を実行するので、ＲＯＭ４１ｂの未使用領域や動作とは関係しない領域、ＲＡＭ４１ｃの未使用領域等に不正なプログラムが格納された場合であっても、不正なプログラムが実行されてしまうことを防止できる。
【００５７】
本実施形態では、ＲＡＭアクセスが禁止されたときにおいて（たとえば、図６のＳｋ９参照）、遊技ＲＡＭ領域にアクセスされたときには、不能化処理を実行する。一方、ＲＡＭアクセスが禁止されたときにおいて、内部機能レジスタにアクセスされても不能化処理は実行されない。なお、変形例として、ＲＡＭアクセスが禁止されたときにおいて、内部機能レジスタにアクセスされたときには不能化処理を実行するとしてもよい。
【００５８】
特に本実施形態では、ＲＯＭ４１ｂのうちプログラムによってアクセスが許可されたプログラム／データ領域に遊技プログラム領域と、非遊技プログラム領域と、が割り当てられ、遊技プログラム領域よりも後方の非遊技プログラム領域の手前の領域に未使用領域１が割り当てられるとともに、ＨＷパラメータ領域に設定されるパラメータに基づいて、プログラム／データ領域のうち遊技プログラム領域の先頭アドレスから非遊技プログラムの最終アドレスまでの領域を含む一かたまりの領域（遊技プログラム領域から非遊技データ領域までの領域）へのアクセスを一括して許可に設定する一方で、それ以外の領域、すなわちプログラム／データ領域のうち遊技プログラムや遊技データ、非遊技プログラム、非遊技データが格納されていない非遊技データよりも後の領域へのアクセスが禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
【００５９】
また、ＲＯＭ４１ｂのうちプログラムによってアクセスが許可されたプログラム／データ領域において非遊技プログラム領域よりも後方に遊技領域が割り当てられ、非遊技プログラム領域よりも後方の遊技プログラム領域の手前の領域に未使用領域が割り当てられるとともに、ＨＷパラメータ領域に設定されるパラメータに基づいて、プログラム／データ領域のうち非遊技プログラム領域の先頭アドレスから遊技プログラムの最終アドレスまでの領域を含む一かたまりの領域へのアクセスを一括して許可に設定する一方で、それ以外の領域へのアクセスが禁止されるようにしても、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
【００６０】
なお、プログラム／データ領域に遊技プログラム領域と、非遊技プログラム領域と、が割り当てられ、遊技プログラム領域よりも後方の非遊技プログラム領域の手前の領域に未使用領域１が割り当てられるとともに、プログラム／データ領域のうち遊技プログラム領域を含む一かたまりの領域（遊技プログラム領域から遊技データ領域までの領域）、非遊技プログラムを含む一かたまりの領域（非遊技プログラム領域から非遊技データ領域までの領域）へのアクセスをそれぞれ許可に設定し、他の領域へのアクセスを禁止する構成としても良く、このような構成とした場合でも、プログラム／データ領域のうち遊技プログラムや非遊技プログラムが格納されていない領域へのアクセスが禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。また、ＲＯＭ４１ｂのうちプログラムによってアクセスが許可されたプログラム／データ領域において非遊技プログラム領域よりも後方に遊技領域が割り当てられ、非遊技プログラム領域よりも後方の遊技プログラム領域の手前の領域に未使用領域が割り当てられるとともに、プログラム／データ領域のうち遊技プログラム領域を含む一かたまりの領域（遊技プログラム領域から遊技データ領域までの領域）、非遊技プログラムを含む一かたまりの領域（非遊技プログラム領域から非遊技データ領域までの領域）へのアクセスをそれぞれ許可に設定し、他の領域へのアクセスを禁止する構成としても良く、このような構成とした場合でも、プログラム／データ領域のうち遊技プログラムや非遊技プログラムが格納されていない領域へのアクセスが禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
【００６１】
また、上記では、プログラム／データ領域においてアクセスを許可する領域そのものを設定する構成であるが、プログラム／データ領域においてアクセスを禁止する領域を設定することで、間接的にアクセスを許可する領域が設定される構成としても良い。
【００６２】
メイン制御部４１は、ＨＷパラメータ領域に設定されるパラメータに基づいて、プログラム走行を許可する指定エリア以外の領域においてユーザプログラムが実行された場合、すなわち正常な動作ではユーザプログラムが実行されることのない領域でユーザプログラムが実行された場合に、ＩＡＴ回路（Illegal  Address  Trap：特に図示せず）がＩＡＴ発生信号を出力することで、遊技の進行を不能化させるので、ＲＯＭ４１ｂの未使用領域や動作とは関係しない領域、ＲＡＭ４１ｃの未使用領域等に不正なプログラムが格納された場合であっても、不正なプログラムが実行されてしまうことを防止できる。
【００６３】
特に本実施形態では、ＲＯＭ４１ｂのうちプログラムによってアクセスが許可されたプログラム／データ領域に遊技プログラム領域と、非遊技プログラム領域と、が割り当てられ、遊技プログラム領域よりも後方の非遊技プログラム領域の手前の領域に未使用領域１が割り当てられるとともに、ＨＷパラメータ領域に設定されるパラメータに基づいて、プログラム／データ領域のうち遊技プログラム領域、非遊技プログラム領域の各々について、ＩＡＴ回路がプログラム走行を許可する指定エリアとして設定する一方で、それ以外の領域、すなわちプログラム／データ領域のうち遊技プログラムや非遊技プログラムが格納されていない領域でのプログラム走行が禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
【００６４】
また、ＲＯＭ４１ｂのうちプログラムによってアクセスが許可されたプログラム／データ領域において非遊技プログラム領域よりも後方に遊技領域が割り当てられ、非遊技プログラム領域よりも後方の遊技プログラム領域の手前の領域に未使用領域が割り当てられるとともに、ＨＷパラメータ領域に設定されるパラメータに基づいて、プログラム／データ領域のうち遊技プログラム領域、非遊技プログラム領域の各々について、ＩＡＴ回路がプログラム走行を許可する指定エリアとして設定する一方で、それ以外の領域でのプログラム走行が禁止されるようにしても、不正プログラムや不正データによる意図しない制御が
行われてしまうことを防止できる。
【００６５】
なお、プログラム／データ領域に遊技プログラム領域と、非遊技プログラム領域と、が割り当てられ、遊技プログラム領域よりも後方の非遊技プログラム領域の手前の領域に未使用領域１が割り当てられるとともに、ＨＷパラメータ領域に設定されるパラメータに基づいて、プログラム／データ領域のうち遊技プログラム領域の先頭アドレスから非遊技プログラムの最終アドレスまでの領域を含む一かたまりの領域（遊技プログラム領域から非遊技データ領域までの領域）について、ＩＡＴ回路がプログラム走行を許可する指定エリアとして一括して設定し、他の領域でのプログラム走行が禁止される構成としても良く、このような構成とした場合でも、プログラム／データ領域のうち遊技プログラムや非遊技プログラムが格納されていない領域でのプログラム走行が禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。また、ＲＯＭ４１ｂのうちプログラムによってアクセスが許可されたプログラム／データ領域において非遊技プログラム領域よりも後方に遊技領域が割り当てられ、非遊技プログラム領域よりも後方の遊技プログラム領域の手前の領域に未使用領域が割り当てられるとともに、ＨＷパラメータ領域に設定されるパラメータに基づいて、プログラム／データ領域のうち非遊技プログラム領域の先頭アドレスから遊技プログラムの最終アドレスまでの領域を含む一かたまりの領域（遊技プログラム領域から非遊技データ領域までの領域）について、ＩＡＴ回路がプログラム走行を許可する指定エリアとして一括して設定し、他の領域でのプログラム走行が禁止されるようにしても、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
【００６６】
また、上記では、プログラム／データ領域においてプログラム走行を許可する領域そのものを設定する構成であるが、プログラム／データ領域においてプログラム走行を禁止する領域を設定することで、間接的にプログラム走行を許可する領域が設定される構成としても良い。
【００６７】
［プログラムが用いる命令について］
メイン制御部４１が実行するプログラムは、プログラム全体の進行を管理するメインルーチンと、他のプログラムの実行中に呼び出されるサブルーチンとを含む。
【００６８】
また、メイン制御部４１にプログラム／データ領域に格納されたプログラムを実行させる命令として、ＣＡＬＬ命令を含む。
【００６９】
ＣＡＬＬ命令は、メインルーチンまたはサブルーチンにおいて指定されたアドレスに格納されたサブルーチンを呼び出して実行させる命令である。メイン制御部４１は、ＣＡＬＬ命令によりサブルーチンを呼び出す場合には、呼び出し元のアドレスをスタック領域に格納し、指定されたアドレスに格納されたサブルーチンを呼び出して実行する。そして、当該サブルーチンの終了後、スタック領域に格納されている呼び出し元のアドレス、すなわちＣＡＬＬ命令を実行した呼び出し元のメインルーチンまたはサブルーチンのプログラムに復帰する。
【００７０】
また、ＣＡＬＬ命令は、通常のＣＡＬＬ命令と、特殊なＣＡＬＬ命令であるＣＡＬＬＶ命令と、を含む。通常のＣＡＬＬ命令は、上位アドレス及び下位アドレスの双方を指定して指定された上位アドレス及び下位アドレスによりアドレスを特定してサブルーチンを呼び出す命令であるのに対して、ＣＡＬＬＶ命令は、下位アドレスのみを指定することで、ＲＯＭ４１ｂのベクタテーブル領域に予め設定された上位アドレス及び指定された下位アドレスによりアドレスを特定してサブルーチンを呼び出す命令である。該特定されるアドレスの記憶領域には、遊技プログラムで用いられるプログラム（サブルーチン）が格納されている。したがって、ＣＡＬＬＶ命令により、通常のＣＡＬＬ命令と比較して少ないデ
ータ量で、遊技プログラムで用いられるプログラム（サブルーチン）を呼び出すことが可能となる。
【００７１】
ＲＳＴ命令は、予め定められた複数の特定アドレスに対応する値（容量が特定アドレスよりも小さな値）を指定することで、指定された値に対応する特定アドレスに格納されたサブルーチンを呼び出して実行させる命令である。該特定アドレスの記憶領域には、遊技プログラムで用いられるプログラム（サブルーチン）が格納されている。したがって、ＲＳＴ命令により、上記した通常のＣＡＬＬ命令やＣＡＬＬＶ命令と比較して少ないデータ量で、遊技プログラムで用いられるプログラム（サブルーチン）を呼び出すことが可能となる。メイン制御部４１は、ＲＳＴ命令によりサブルーチンを呼び出す場合には、呼び出し元のアドレスをスタック領域に格納し、指定された値に対応する特定アドレスに格納されたサブルーチンを呼び出して実行する。そして、当該サブルーチンの終了後、スタック領域に格納されている呼び出し元のアドレス、すなわちＲＳＴ命令を実行した呼び出し元のメインルーチンまたはサブルーチンに復帰する。
【００７２】
メイン制御部４１は、ＣＡＬＬＶ命令により、ベクタテーブル領域に設定された上位アドレスと、ＣＡＬＬＶ命令により指定された下位アドレスとによりアドレスを特定し、該特定されたアドレスに格納された遊技プログラムで用いられるプログラム（サブルーチン）を呼び出して実行する。このため、遊技プログラムのうち特に使用頻度の高いサブルーチンを呼び出す際に用いるアドレスの一部を構成する上位アドレスが予めベクタテーブルに設定されており、ベクタテーブルに設定された上位アドレスに基づいてアドレスが特定されるため、上位アドレス及び下位アドレスの双方を指定してプログラムを呼び出す通常のＣＡＬＬ命令に比較して少ないデータ量にてサブルーチンを呼び出すことが可能となり、これらのサブルーチンを呼び出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
【００７３】
また、ＲＳＴ命令により指定される値（予め定められた複数のアドレスに対応する値）の容量は、該アドレスの容量よりも小さいことから、ＲＳＴ命令では通常のＣＡＬＬ命令に比較して少ないデータ量で遊技プログラムで用いられるプログラム（サブルーチン）を呼び出すことが可能であるため、遊技プログラムにおいてＲＳＴ命令を用いることで、当該遊技プログラムのデータ容量を削減することができるようになっている。
【００７４】
メイン制御部４１にプログラム／データ領域に格納されたデータを読み出す命令としてＬＤ命令を含む。ＬＤ命令は、メインルーチンまたはサブルーチンにおいて指定されたアドレスに格納されたデータを指定されたレジスタに読み出す命令である。メイン制御部４１は、ＬＤ命令により指定されたアドレスに格納されたデータを読み出し、ＬＤ命令により指定されたレジスタ（たとえば、内部機能レジスタ）に読み出したデータを格納する。
【００７５】
また、ＬＤ命令は、通常のＬＤ命令と、特殊なＬＤ命令であるＬＤＱ命令と、を含む。通常のＬＤ命令は、上位アドレス及び下位アドレスの双方を指定して指定された上位アドレス及び下位アドレスによりＲＯＭ４１ｂまたはＲＡＭ４１ｃの領域に格納されているデータを読み出す命令である。ＬＤＱ命令は、下位アドレスのみを指定することで、前述のＲＡＭ４１ｃの内部機能レジスタ領域における特別なレジスタ（Ｑレジスタ）に予め設定された上位アドレス及び指定された下位アドレスによりアドレスを特定してＲＯＭ４１ｂまたはＲＡＭ４１ｃの領域に格納されているデータを読み出して指定されたレジスタに読み出したデータを格納する命令であり、通常のＬＤ命令に比較して少ないデータ量で所定のデータを所定のレジスタに格納することが可能となる。
【００７６】
メインルーチンまたはサブルーチンにおいてＲＯＭ４１ｂ、ＲＡＭ４１ｃの領域に格納されているデータを読み出す場合に、特殊なＬＤ命令であるＬＤＱ命令を用いることで、
領域を示す全てのアドレス（上位部分及び下位部分）を指定するのではなく、アドレスの下位部分のみを指定して領域のデータを読み出すことが可能である。ＬＤＱ命令を用いることで、上位アドレス及び下位アドレスの双方を指定してデータを読み出す通常のＬＤ命令に比較して少ないデータ量にてデータを読み出すことが可能となり、データを読み出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
【００７７】
また、ＬＤ命令（通常のＬＤ命令と、ＬＤＱ命令など）は、記憶領域を用いた他の処理にも用いられる。該他の処理とは、該記憶領域に格納されているデータを参照する処理（たとえば、後述の図４のＳａ１の処理など）と、該記憶領域にデータを設定する処理と、該記憶処理に設定されているデータを消去（クリア）する処理（たとえば、後述の図５のＳａ１６の処理など）などを含む。
【００７８】
また、遊技プログラムとは、遊技の進行に係わるプログラムであり、当該プログラムに基づく処理を実行しないと、遊技の進行に支障をきたす処理を実行するためのプログラムである。一方、非遊技プログラムとは、遊技の進行に係わらないプログラムであり、遊技プログラムから呼び出されて当該プログラムに基づく処理が実行されずに遊技プログラムに復帰した場合でも、遊技を進行させることが可能な処理を実行するためのプログラムである。
【００７９】
換言すると、非遊技プログラムは、遊技の進行に関する処理とは異なる処理を実行するプログラムである。「遊技の進行に関する処理とは異なる処理」とは、たとえば、非遊技ＲＡＭ領域初期化処理において非遊技ＲＡＭ領域を初期化する処理、メダルセンサ処理におけるメダルセンサチェック処理、役比モニタ用データ処理における各状態カウント処理、非遊技関連処理におけるセンサ監視処理、試験信号出力処理、メダル通過時間タイマ更新処理、役比モニタ表示データ選択処理等を含む。また、図３（ａ）に示すように、遊技プログラム領域と、非遊技プログラム領域とは分けて構成されている。したがって、たとえば、遊技プログラム領域の容量が定められている状況であったとしても、非遊技プログラム領域の容量を考慮する必要がない。したがって、遊技プログラム領域の設計に関する自由度を向上させることができる。
【００８０】
遊技プログラムでは、前述のＣＡＬＬ命令やＬＤ命令について、特殊なＣＡＬＬ命令であるＣＡＬＬＶ命令、ＲＳＴ命令、特殊なＬＤ命令であるＬＤＱ命令を含むいずれの命令も使用されることがあり、特殊なＣＡＬＬ命令を用いてアドレスを特定してサブルーチンを呼び出すことも、特殊なＬＤ命令を用いてＲＯＭ４１ｂ、ＲＡＭ４１ｃにおける特定の遊技データ、非遊技データを読み出すことも可能になっている。
【００８１】
非遊技プログラムでは、前述のＣＡＬＬ命令について、通常のＣＡＬＬ命令が使用される一方、特殊なＣＡＬＬ命令であるＣＡＬＬＶ命令が使用されないようになっている。したがって、通常のＣＡＬＬ命令を用いてアドレスを特定してサブルーチンを呼び出すことがある一方で、特殊なＣＡＬＬ命令を用いてサブルーチンを呼び出すことがない。したがって、非遊技プログラムにより不用意にＲＯＭ４１ｂにおける遊技プログラム領域にアクセスされてしまうことを防止できる。
【００８２】
また、非遊技プログラムでは、前述のＬＤ命令について、通常のＬＤ命令が使用可能となっている。これにより、非遊技プログラムにおいては、通常のＬＤ命令を用いてアドレスを特定して所定のデータを読み出すことが可能となる。一方、非遊技プログラムでは、ＬＤＱ命令は使用されないようになっている。したがって、不用意に、ＬＤＱ命令によりデータを読み出す処理が実行されることを防止できる。
【００８３】
メイン制御部４１が遊技プログラム及び非遊技プログラムを実行することで行う各種処
理の制御内容について、図４〜図６に基づいて説明する。また、図４〜図６は、遊技機がスロットマシンである場合の制御内容である。
【００８４】
［メイン制御部４１の起動時の処理と起動処理について］
メイン制御部４１が行う起動処理について、図４および図５に基づいて説明する。該起動処理は、遊技プログラムに含まれるサブルーチンである。
【００８５】
メイン制御部４１は、所定の開始条件が成立したときに、リセットの発生によりタイマ割込みが禁止に設定された状態で起動し、ＲＯＭ４１ｂに格納されているプログラムに従って各種処理を行う。起動した後は、まず、遊技プログラムに含まれる起動時設定処理を行って、すべての出力ポートを初期化し、メイン制御部４１が備える内部レジスタ（内部機能レジスタを含む）をＲＯＭ４１ｂの所定領域に予め設定されている内蔵レジスタ初期化テーブルに基づいて初期化した、遊技プログラムに含まれる初期設定処理を行う。このように、本実施形態では、電力供給が開始されたときに、内部機能レジスタの初期化などが実行される。また、所定の開始条件は、遊技機１への電力供給が開始される（遊技機１への電力供給が検出される）ことにより成立する条件と、遊技機１に対してシステムリセットされることにより成立する条件とを含む。また、システムリセットの実行条件は、たとえば、ユーザによるリセット操作が実行されたとき、ウオッチドッグタイマからのタイムアウト信号が発生したとき、およびＩＡＴ回路からのＩＡＴ信号が発生したときなどを含む。
【００８６】
なお、変形例として、メイン制御部４１が備える内部レジスタ（内部機能レジスタを含む）の初期化処理などは、プログラムで実行せずに、ハードウェア（たとえば、初期化回路（特に図示せず））が実行する構成としてもよい。
【００８７】
図４に示すように、まず、Ｓａ１Ａにおいて、メイン制御部４１は、Ｑレジスタに特定値データを設定する。以下では、「特定値データ」を、単に「特定値」という。ここで、特定値について説明する。本実施形態では、電断から復帰したとき（電源供給が開始されたとき、つまり起動処理が実行されたとき）には、遊技ＲＡＭ領域などのデータに基づいて、電断が発生したとき（電源供給が停止したとき）の制御状態に復帰させる。したがって、遊技ＲＡＭ領域は、制御状態に復帰させるという観点で、重要な領域である。
【００８８】
図２に示すように、遊技ＲＡＭ領域の上位アドレスは「Ｆ０」である。ここで、特定値は、遊技ＲＡＭ領域とは異なる領域の上位アドレスを特定可能な領域である。本実施形態では、該異なる領域とは、「内部機能レジスタ」および「信号領域」であるとする。つまり、特定値は、内部機能レジスタの上位アドレスである「Ｆ５」を特定可能な値となる。換言すると、特定値は、内部機能レジスタの上位アドレスである「Ｆ５」を特定するために用いられる値となる。また、特定値は、信号領域の上位アドレス「Ｆ５」を特定可能な値でもある。
【００８９】
Ｓａ１Ｂの処理が終了すると、各種設定処理を実行する。この各種設定処理では、複数（Ｎ個とする。Ｎは２以上の整数）の設定処理が実行される。Ｎ個の設定処理は、たとえば、乱数開始の設定、シリアル通信回路の設定、リセット／割込コントローラの設定などを含む。該Ｎ個の設定処理により、該Ｎ個の設定それぞれに応じたＮ個の設定値（以下では、「起動時設定値」ともいう。）が内部機能レジスタ内のＮ個の領域それぞれに格納される。
【００９０】
ここで、Ｎ個の起動時設定値の内部機能レジスタへの格納も、ＬＤＱ命令で実行される。具体的には、Ｓａ１ＡにおいてＱレジスタに格納された特定値（上位アドレスがＦ５）と、該ＬＤＱ命令で該Ｎ個それぞれについて指定された値（下位アドレス）とに基づいて
、該Ｎ個の設定値は内部機能レジスタ内のＮ個の領域それぞれに格納される。
【００９１】
Ｓａ１Ｂの処理終了後、Ｓａ１に進む。Ｓａ１では、入力ポートの信号領域を参照する処理を実行する。遊技機１への電力供給が停止したとき（電断が発生したとき）には、電断検出回路（図示せず）がメイン制御部４１に対して停電検出信号を送信する。停電検出信号は、電断が発生した（電圧の低下）ことを示す信号である。また、信号領域には、該停電検出信号に係る情報（たとえば、停電検出信号フラグ）が格納される。電断検出回路から停電検出信号が出力されているときには停電検出信号フラグが信号領域に格納され（ＯＮ状態）、電断検出回路から停電検出信号が出力されていないときには停電検出信号フラグが信号領域に格納されなくなる（ＯＦＦ状態）。
【００９２】
本実施形態では、この信号領域のアドレスは、「Ｆ５６０」とする。なお、変形例として、信号領域は、上位アドレスが「Ｆ５」であるアドレスであれば、如何なるアドレスであってもよい。
【００９３】
つまり、Ｓａ１においてはＬＤＱ命令で、該信号領域の下位アドレス（６０）が指定され、該下位アドレスと、Ｑレジスタに格納されている特定値（該信号領域の上位アドレスであるＦ５）とに基づいて、信号領域のアドレスを特定する。Ｓａ１においては、該特定したアドレスの領域である信号領域（入力ポートの信号領域）を参照する。
【００９４】
Ｓａ２においては、電断検出回路（図示せず）から出力される停電検出信号がＯＮ状態であるか否か（信号領域に停電検出信号フラグが格納されているか否か）を判定する（Ｓａ２）。そして、停電検出信号がＯＮ状態である場合には、停電検出信号がＯＦＦ状態となるまで待機する（Ｓａ１のＹＥＳ）。その後、スロットマシン１の電源電圧が正常となり、停電検出信号がＯＦＦ状態となった後は（Ｓａ１のＮＯ）、Ｓａ３Ａに進む。
【００９５】
Ｓａ３Ａでは、ＲＡＭ４１ｃの使用可能領域のアクセスを許可する許可処理を、ＬＤＱ命令により実行する。具体的には、該許可処理は、内部機能レジスタ内のＲＡＭアクセス領域に、許可フラグを設定することにより実行される。本実施形態では、該ＲＡＭアクセス領域のアドレスを「Ｆ５５０」とする。
【００９６】
つまり、Ｓａ３ＡにおいてはＬＤＱ命令で、該ＲＡＭアクセス領域の下位アドレス（５０）が指定され、該下位アドレスと、Ｑレジスタに格納されている特定値（該ＲＡＭアクセス領域の上位アドレスであるＦ５）とに基づいて、ＲＡＭアクセス領域のアドレスを特定する。Ｓａ３Ａにおいては、該特定したアドレスの領域であるＲＡＭアクセス領域に対して、ＬＤＱ命令により許可フラグを設定する。
【００９７】
次に、Ｓａ３Ｂでは、特定値が設定されていたＱレジスタに該特定値（特定値データ）を消去して所定値データを設定する。以下では、「所定値データ」を、単に「所定値」という。ここで、所定値とは、遊技ＲＡＭ領域の上位アドレス「Ｆ０」を特定可能なデータである。換言すると、所定値とは、遊技ＲＡＭ領域の上位アドレス「Ｆ０」を特定するために用いられるデータである。つまり、Ｓａ３Ｂの処理を実行することにより、特定値（Ｆ５を特定可能な値）から、所定値（Ｆ０を特定可能な値）に変更される。
このように、Ｑレジスタに特定値が設定されている期間（Ｓａ１Ａ〜Ｓａ３Ｂまでの期間、後述の図６の電断処理でのＳｋ８〜電断処理が終了するまでの期間）において、機能設定レジスタを用いる処理を実行する場合には、ＬＤＱ命令により、該機能設定レジスタを用いる処理）が実行される。したがって、Ｑレジスタに特定値が設定されている期間において、ＬＤ命令により該機能設定レジスタを用いる処理する構成よりもプログラム容量を削減できる。
また、Ｑレジスタに所定値が設定されている期間（たとえば、Ｓａ３Ｂの処理が実行さ
れたときから、電断処理のＳｋ８（後述の図６参照）の処理が実行されるまでの期間）において、遊技ＲＡＭ領域を用いる処理を実行する場合には、ＬＤＱ命令により、遊技ＲＡＭ領域を用いる処理が実行される。したがって、Ｑレジスタに所定値が設定されている期間において、ＬＤ命令により該遊技ＲＡＭ領域を用いる処理する構成よりもプログラム容量を削減できる。
【００９８】
次いで、ＲＡＭ４１ｃの所定領域のパリティを算出し（Ｓａ３）、スタックポインタに予め定められた初期アドレスを設定する（Ｓａ４）。そして、Ｓａ３のステップにおいて算出したパリティが正常であるか否かを判定する（Ｓａ５）。この判定は、後述するＳｋ６で計算されたＲＡＭパリティ調整用データを用いて行われる。パリティが正常である場合には、後述する電断処理のＳｋ７においてＲＡＭ４１ｃの所定領域に設定されたＲＡＭ破壊診断用固定データを取得して（Ｓａ６）、当該ＲＡＭ破壊診断用固定データに基づきＲＡＭ４１ｃの記憶内容が破壊されていないか否かを診断する（Ｓａ７）。
【００９９】
Ｓａ５のステップにおいてパリティが正常であると判定した場合、及びＳａ７のステップにおいてＲＡＭ４１ｃの記憶内容を診断した場合は、Ｓａ３のステップにおいて算出したＲＡＭのパリティとＳａ７における診断の結果に基づいて、ＲＡＭ４１ｃに異常があるか否かを判定する（Ｓａ８）。なお、ＲＡＭ４１ｃに異常がある場合とは、パリティが正常でない場合、またはパリティが正常であるが記憶内容に異常があると診断した場合である。
【０１００】
そして、ＲＡＭ４１ｃに異常がある場合には、メイン制御部４１が備えるレジスタのうち演算結果が格納されるフラグレジスタの値を、遊技ＲＡＭ領域の遊技スタック領域に所定の順序で記憶させることで退避させた後（Ｓａ９）、非遊技プログラムに含まれる非遊技ＲＡＭ領域初期化処理を呼び出して行う（Ｓａ１０）。そして、非遊技ＲＡＭ領域初期化処理において、ＲＡＭ４１ｃの非遊技ＲＡＭ領域を初期化した後、起動処理に戻る。そして、起動処理に戻った際には、Ｓａ９のステップにおいて遊技スタック領域に退避させたフラグレジスタの値を、退避させるときと逆の順序で遊技スタック領域から順次読み出してフラグレジスタに設定することで、ＲＡＭ領域初期化処理を行う前の状態にフラグレジスタを復帰させる（Ｓａ１１）。
【０１０１】
非遊技ＲＡＭ領域初期化処理では、まず、呼び出し元の遊技プログラムにより使用されていたスタックポインタＳＰにより示される遊技スタック領域の現在のアドレスの値を、非遊技ＲＡＭ領域の所定領域に記憶させて退避させる。その後、当該スタックポインタＳＰの値として非遊技スタック領域の所定値（前回の非遊技プログラムの終了時にスタックポインタＳＰにより示されるアドレスとして非遊技ＲＡＭ領域の所定領域に記憶されている値）を設定することで、スタックポインタＳＰを非遊技プログラム用に設定する。そして、上述のフラグレジスタを含むメイン制御部４１が備えるすべてのレジスタの値を、スタックポインタＳＰにより特定される非遊技ＲＡＭ領域の非遊技スタック領域に所定の順序で記憶させることで退避させる。その後、初期化対象ＲＡＭの先頭アドレス（未使用領域４の最初のアドレス）と終了アドレス（非遊技ＲＡＭ領域の最後のアドレス）を指定し、当該先頭アドレスを指定アドレスの初期値として指定アドレスのデータをクリアした後に指定アドレスを次のアドレスに更新する処理を、指定アドレスが当該終了アドレスとなるまで繰り返し実行することで、初期化対象ＲＡＭの先頭アドレスから終了アドレスまでの領域（本実施形態では、未使用領域４の最初から非遊技ＲＡＭ領域の最後までの領域）を初期化する。そして、非遊技ＲＡＭ領域初期化処理を開始した際に非遊技スタック領域に記憶させて退避させていたレジスタの値を、退避させるときと逆の順序で非遊技スタック領域から順次読み出して、当該順序に対応するレジスタに設定することで、非遊技ＲＡＭ領域初期化処理を開始したときの状態にすべてのレジスタを復帰させる。その後、非遊技ＲＡＭ領域初期化処理を開始した際に非遊技ＲＡＭ領域の所定領域に退避させたスタッ
クポインタＳＰの値を、スタックポインタＳＰに設定することで、非遊技ＲＡＭ領域初期化処理を開始したときの状態にスタックポインタＳＰを復帰させて、非遊技ＲＡＭ領域初期化処理を終了させる。
【０１０２】
なお、非遊技ＲＡＭ領域初期化処理において、初期化対象ＲＡＭの先頭アドレスと終了アドレスとを指定することで、初期化対象ＲＡＭの容量を算出し、当該容量分のＲＡＭ領域を初期化対象ＲＡＭの先頭アドレスから順次クリアすることで、初期化対象ＲＡＭの先頭アドレスから終了アドレスまでの領域を初期化する構成としても良い。
【０１０３】
Ｓａ８のステップにおいてＲＡＭ４１ｃに異常がないと判定した場合、及びＳａ１１のステップにおいてレジスタを復帰させた場合は、ＲＡＭ４１ｃに設定されているＲＡＭ破壊診断用固定データをクリアして（Ｓａ１２）、ＲＡＭ４１ｃに異常がある場合に初期化処理を行う対象となる遊技ＲＡＭ領域のアドレスを指定するためのＲＡＭ破壊時初期化開始アドレスを設定する（Ｓａ１３）。その後、入力ポートを参照して設定キースイッチがＯＮ状態であるか否かを判定する（Ｓａ１４）。
【０１０４】
Ｓａ１４のステップにおいて設定キースイッチがＯＮ状態であると判定した場合は、設定変更処理を行う。設定変更処理では、遊技店の店員などにより設定値を変更可能な設定変更状態に制御される。この設定値とは、遊技者にとっての有利度合いを示す値である。
【０１０５】
Ｓａ１４のステップにおいて設定キースイッチがＯＮ状態でないと判定した場合は、Ｓａ３のステップにおいて算出したＲＡＭのパリティとＳａ７における診断結果に基づいて、ＲＡＭ４１ｃに異常があるか否かを判定し（Ｓａ１５）、ＲＡＭ４１ｃに異常がないと判定した場合には、外部出力信号を出力するための出力バッファをクリアする（Ｓａ１６）。ＲＡＭ４１ｃの遊技ＲＡＭ領域の所定領域には、この出力バッファが設けられている。また、ＲＡＭ４１ｃの所定領域に設定されており、リールの回転エラーが検出された回数を計数するためのリールエラーカウンタをクリアする（Ｓａ１７）。ＲＡＭ４１ｃの遊技ＲＡＭ領域の所定領域には、このリールエラーカウンタが設けられている。その後、ＲＡＭ４１ｃの記憶内容に基づいてスタックポインタＳＰに電断時のアドレスを設定することで、スタックポインタを電断時の状態に復帰させ（Ｓａ１８）、ポート入力処理を２回連続で行う（Ｓａ１９、Ｓａ２０）。
【０１０６】
ポート入力処理は、パラレル入力ポート５１１に入力される各種スイッチ類の検出信号等の入力状態に関する入力状態データ（各種スイッチ類の現在の入力状態を示す入力データ、前回と今回の入力データが同じ状態である旨を示す確定データ、前回から確定データが変化した旨を示すエッジデータ）を更新する処理である。ＲＡＭ４１ｃの遊技ＲＡＭ領域の所定領域には、各種スイッチ類の入力状態データを格納するポート入力バッファ０〜２が設けられており、ポート入力処理により更新される各種スイッチ類の入力状態データは、その種類毎に予め定められたポート入力バッファの所定ビットに格納されるようになっている。ポート入力処理では、パラレル入力ポート５１１の入力ポート０〜２にされる各種スイッチ類の検出状態（ＯＮ状態またはＯＦＦ状態）を入力データとして、ポート入力バッファの所定ビットに格納する。また、前回と今回のポート入力処理での検出状態（ＯＮ状態またはＯＦＦ状態）を比較して、今回と前回の入力データが同じ状態である場合には、今回の入力データの検出状態を示すように確定データを更新する一方、今回と前回の入力データが異なる状態である場合には、前回の確定データを維持する。また、今回と前回の確定データを比較して、確定データがＯＦＦ状態からＯＮ状態に変化した場合には、確定データがＯＦＦ状態からＯＮ状態に変化した旨を示すＯＮエッジデータをポート入力バッファ０〜２の所定ビットに格納し、確定データがＯＮ状態からＯＦＦ状態に変化した場合には、確定データがＯＮ状態からＯＦＦ状態に変化した旨を示すＯＦＦエッジデータをポート入力バッファ０〜２の所定ビットに格納する。ポート入力バッファに格納され
た各種スイッチ類の入力データ、確定データ、エッジデータは、遊技プログラム及び非遊技プログラムから参照することが可能である。
【０１０７】
また、起動処理では、ポート入力処理を２回連続して行うことで、その後、ポート入力処理が行われる際に、起動処理が行われた以後の各種スイッチ類の入力状態すなわち遊技機への電力供給が再開された後の各種スイッチ類の入力状態に基づいて、各種スイッチ類の検出信号等の入力状態に関する入力状態データが作成されるので、意図しない入力状況が特定されてしまうことを防止できるようになっている。また、ポート入力処理において、３回以上のポート入力処理により取得された入力データ（たとえば、今回、前回及び前々回の入力データ）に基づいて確定データを作成する構成でも良い。このような構成では、確定データを作成するために必要なポート入力処理の回数よりも１回少ない回数連続してポート入力処理を起動処理において行う構成とすることで、起動処理が行われた後にポート入力処理が行われる際に、起動処理が行われた以後の各種スイッチ類の入力状態に基づいて入力状態データを作成させることができる。
【０１０８】
Ｓａ１９及びＳａ２０のステップにおいてポート入力処理を行った後は、所定の入力ポートを参照して（Ｓａ２１）、リセット／設定スイッチがＯＮ状態であるか否かを判定し（Ｓａ２２）、リセット／設定スイッチがＯＮ状態である場合には、当該リセット／設定スイッチがＯＮ状態である旨を示すステータスデータをＲＡＭ４１ｃの所定領域に設定する（Ｓａ２３）。
【０１０９】
なお、リセット／設定スイッチは、設定変更状態とは異なる状態であるときにおいては、エラー状態や打止状態を解除するためのリセットスイッチとして機能し、設定変更状態においては設定値を変更するためのスイッチとして機能する。
【０１１０】
Ｓａ２２のステップにおいてリセット／設定スイッチがＯＮ状態でないと判定した場合、及びＳａ２３のステップにおいてステータスデータを設定した後は、電断前の制御状態に復帰した旨を示す復帰コマンドをサブ制御部９１に送信した後（Ｓａ２４）、タイマ割込み処理（メイン）のコマンド送信処理において、ドア開放検出スイッチ２５の検出状態を示すドアコマンドを送信する旨を示すドアコマンド送信フラグをＲＡＭ４１ｃの所定領域に設定する（Ｓａ２５）。コマンド送信処理では、通常、ドア開放検出スイッチ２５の検出状態が変化した場合にドアコマンドを送信するが、ＲＡＭ４１ｃの所定領域にドアコマンド送信フラグが設定されている場合には、ドア開放検出スイッチ２５の検出状態が変化したか否かにかかわらず、ドア開放検出スイッチ２５の検出状態を示すドアコマンドを送信する。
【０１１１】
そして、Ｓａ２５のステップにおいてドアコマンド送信フラグを設定した後は、すべてのレジスタをＲＡＭ４１ｃに記憶されている電断前の状態に復帰させ（Ｓａ２６）、タイマ割込みを許可に設定して（Ｓａ２７）、起動処理を終了させてタイマ割込処理（メイン）に移行させた後、スロットマシン１への電力供給が停止される前に実行していたメイン処理における処理に復帰する。
【０１１２】
一方、Ｓａ１５のステップにおいて、ＲＡＭ４１ｃに異常があると判定した場合には、遊技ＲＡＭ初期化処理を行って（Ｓａ２８）、Ｓａ１３のステップにおいて設定したＲＡＭ破壊時初期化開始アドレスからＲＡＭ４１ｃの遊技ＲＡＭ領域の終端までの領域を初期化する。その後、Ｓａ９〜Ｓａ１１のステップまでの処理と同様に、レジスタのうちフラグが設定されるフラグレジスタの値を遊技ＲＡＭ領域の遊技スタック領域に退避させた後（Ｓａ２９）、非遊技プログラムに含まれる非遊技ＲＡＭ領域初期化処理を呼び出して行って（Ｓａ３０）、ＲＡＭ４１ｃのすべての非遊技ＲＡＭ領域を初期化した後、呼び出し元に戻り、Ｓａ２９のステップにおいて退避させたレジスタを復帰させる（Ｓａ３１）。
【０１１３】
Ｓａ３１のステップにおいてレジスタを復帰させた後は、ドアコマンド送信フラグを設定し（Ｓａ３２）、タイマ割込みを許可に設定し（Ｓａ３３）、ＲＡＭ４１ｃに異常がある旨を示すＲＡＭ異常エラーコード（Ｅ８）を所定のレジスタに準備して（Ｓａ３４）、起動処理を終了させてエラー処理に移行させる。
【０１１４】
なお、エラー処理では、遊技の進行が不能化されるエラー状態に制御する。また、所定のレジスタに準備されているエラーコード（Ｅ８）を特定可能なエラーコマンドをサブ制御部９１に対して送信し、当該エラーコード（Ｅ８）をＲＡＭ４１ｃの所定領域にその他の処理でも参照可能なエラーフラグとして設定する。また、当該エラーコード（Ｅ８）を遊技補助表示器（特に図示せず）に表示させるように制御する。その後は、所定のレジスタに準備されているエラーコード（Ｅ８）に応じたエラー状態の解除条件が成立したことが特定されるまでエラー状態の制御を行う。ＲＡＭ異常エラーコード（Ｅ８）が所定のレジスタに準備されてエラー状態に移行された場合には、設定キースイッチをＯＮにした状態で遊技機に電源を投入することによって、設定変更状態に移行させてすべての遊技ＲＡＭ領域を初期化させることで、ＲＡＭ４１ｃのデータの異常を確実に解消してエラー状態を解除することができるようになっている。一方、設定キースイッチをＯＮ状態にせずに電源スイッチをＯＮにした場合には、ＲＡＭ４１ｃの異常が再び検出されて、再度、エラー状態となる。
【０１１５】
このように、メイン制御部４１は、スロットマシン１への電力供給が開始された後には、起動処理を最初に行うようになっており、起動処理では、スロットマシン１への電力供給が開始された際のメイン制御部４１の状態に応じて、タイマ割込処理（メイン）、設定変更処理、エラー処理のいずれかに移行させる。そして、これらの処理に移行させる際に、移行させる処理の種類を特定可能なコマンドをサブ制御部９１に対して送信するようになっており、タイマ割込処理（メイン）に移行させる場合すなわち遊技機への電力供給が停止される前の制御状態に復帰した場合には、復帰コマンドをサブ制御部９１に対して送信し、設定変更処理を開始して設定変更状態に移行する場合には、設定コマンド（開始）をサブ制御部９１に対して送信し、ＲＡＭ４１ｃの異常によりエラー処理を開始してエラー状態に移行する場合には、エラーコマンドをサブ制御部９１に対して送信する。
【０１１６】
なお、メイン制御部４１は、起動処理から設定変更処理に移行した後は、設定変更状態を経て、ゲームの進行が可能な状態に復帰するようになっており、当該ゲームの進行が可能な状態に復帰する際には、当該設定変更状態が終了されることを特定可能な設定コマンド（終了）をサブ制御部９１に対して送信する一方で、復帰コマンドは送信しない。また、ＲＡＭ４１ｃの異常によりエラー処理に移行した後は、上述のように設定変更処理に移行されてエラー状態が解除されることで、ゲームの進行が可能な状態に復帰するようになっており、エラー処理が終了されてゲームの進行が可能な状態に復帰する場合にも、サブ制御部９１に対して復帰コマンドを送信しない。
【０１１７】
このように、本実施形態のメイン制御部４１は、遊技機への電力供給が開始されることで起動し、遊技プログラムに含まれる起動時設定処理を行い、当該起動時設定処理によりすべての出力ポートを初期化するようになっている。
【０１１８】
また、メイン制御部４１は、起動時設定処理を行った後、起動処理では、ＲＡＭ４１ｃに異常があると判定した場合に、非遊技プログラムに含まれる非遊技ＲＡＭ領域初期化処理を呼び出して、ＲＡＭ４１ｃの非遊技ＲＡＭ領域の所定領域を初期化する。また、起動処理では、遊技プログラムに含まれるＲＡＭ初期化処理を呼び出して、ＲＡＭ４１ｃの遊技ＲＡＭ領域の所定領域を初期化するようになっており、遊技ＲＡＭ領域は遊技プログラムにより初期化し、非遊技ＲＡＭ領域は非遊技プログラムにより初期化する構成になって
いる。
【０１１９】
次いで、メイン制御部４１が行う電断処理（メイン）の制御内容について、図６に基づいて説明する。なお、電断処理（メイン）は、遊技プログラムに含まれるサブルーチンである。
【０１２０】
メイン制御部４１は、上述のタイマ割込処理（メイン）において電圧低下状態が所定時間継続したと判定される場合に電断処理（メイン）を実行する。つまり、メイン制御部４１が、遊技機への電源供給の停止を検出したときに、電断処理を実行する。
【０１２１】
図６に示すように、電断処理（メイン）では、まず、メイン制御部４１が備えるすべてのレジスタの値を、遊技ＲＡＭ領域の遊技スタック領域に所定の順序で記憶させることで退避させ（Ｓｋ１）、スタックポインタＳＰにより示される遊技スタック領域の現在のアドレスを遊技ＲＡＭ領域の所定領域に記憶させることで退避させる（Ｓｋ２）。なお、メイン制御部４１がレジスタの値を記憶させる遊技ＲＡＭ領域の遊技スタック領域やスタックポインタＳＰにより示されるアドレスの値を記憶させる遊技ＲＡＭ領域の所定領域を含む遊技ＲＡＭ領域の所定領域は、バックアップ電源によりバックアップされており、スロットマシン１への電力供給が停止しても、バックアップ電源により電力が供給される限り当該遊技ＲＡＭ領域の記憶内容が保存されるようになっている。
【０１２２】
次に、複数の出力ポートすべてを初期化する（Ｓｋ３）。これにより、該複数の出力ポートから出力されていた信号の出力が停止される。
【０１２３】
次に、メイン制御部４１は、ＲＡＭ４１ｃの所定領域に破壊診断用データを設定する（Ｓｋ４）。本実施形態では、破壊診断用データが設定されるＲＡＭ４１ｃの所定領域は、遊技ＲＡＭ領域であるとする。なお、変形例として、破壊診断用データが設定されるＲＡＭ４１ｃの所定領域は、遊技ＲＡＭ領域とは異なる領域としてもよい。
【０１２４】
次に、ＲＡＭ４１ｃの所定領域に設定されているパリティ調整用データをクリアする（Ｓｋ５）。次に、メイン制御部４１は、ＲＡＭ４１ｃのすべての格納領域（未使用領域及び未使用スタック領域を含む）に基づいて、パリティ調整用データを計算する。本実施形態では、メイン制御部４１は、ＲＡＭ４１ｃのすべての格納領域（未使用領域及び未使用スタック領域を含む）の排他的論理和が０になるように新たなＲＡＭ４１ｃのパリティ調整用データを計算する。次に、メイン制御部４１は、当該パリティ調整用データをＲＡＭ４１ｃの所定領域に設定する（Ｓｋ７）。本実施形態では、パリティ調整用データが設定されるＲＡＭ４１ｃの所定領域は、遊技ＲＡＭ領域であるとする。なお、変形例として、パリティ調整用データが設定されるＲＡＭ４１ｃの所定領域は、遊技ＲＡＭ領域とは異なる領域としてもよい。
【０１２５】
次に、メイン制御部４１は、Ｑレジスタに特定値を設定する。前述のように、特定値とは、遊技ＲＡＭ領域とは異なる領域である「内部機能レジスタ」の上位アドレス（Ｆ５）を特定可能な情報である。
【０１２６】
電断処理が実行されてから、Ｓｋ８の処理が実行されるまでには、Ｑレジスタには、所定値が設定されている（後述の図７参照）。たとえば、Ｓｋ４において破壊診断用データを設定する領域Ａの特定、Ｓｋ５においてＲＡＭパリティ調整用データが設定されている領域Ｂの特定、Ｓｋ７のＲＡＭパリティ調整用データを設定する領域Ｃの特定などは、ＬＤＱ命令を用いて実行される。Ｓｋ４においては、Ｑレジスタに設定されている所定値と、ＬＤＱ命令により指定された値とに基づいて領域Ａのアドレスが特定される。また、Ｓｋ５においては、Ｑレジスタに設定されている所定値と、ＬＤＱ命令により指定された値
とに基づいて領域Ｂのアドレスが特定される。また、Ｓｋ７においては、Ｑレジスタに設定されている所定値と、ＬＤＱ命令により指定された値とに基づいて領域Ｃのアドレスが特定される。
【０１２７】
次に、Ｓｋ９において、ＲＡＭ４１ｃへのアクセスの禁止を設定する。Ｓｋ９の禁止処理について説明する。この禁止処理については、特定命令を用いて実行される。具体的には、該禁止処理は、内部機能レジスタ内のＲＡＭアクセス領域（前述のように、アドレスは「Ｆ５５０」）に、アクセス禁止フラグを設定することにより実行される。
【０１２８】
つまり、Ｓｋ９においてはＬＤＱ命令で、該ＲＡＭアクセス領域の下位アドレス（５０）が指定され、該下位アドレスと、Ｑレジスタに格納されている特定値（該ＲＡＭアクセス領域の上位アドレスであるＦ５）とに基づいて、ＲＡＭアクセス領域のアドレスを特定する。Ｓｋ９においては、該特定したアドレスの領域であるＲＡＭアクセス領域に対して、ＬＤＱ命令によりアクセス禁止フラグを設定する。
【０１２９】
次に、Ｓｋ１０において、タイマ割込の禁止を設定する。Ｓｋ１０の禁止処理について説明する。この禁止処理については、ＬＤＱ命令を用いて実行される。具体的には、該禁止処理は、内部機能レジスタ内のタイマ割込領域（アドレスは「Ｆ５６０」とする）に、タイマ割込禁止フラグを設定することにより実行される。
【０１３０】
つまり、Ｓｋ１０においてはＬＤＱ命令で、該タイマ割込領域の下位アドレス（６０）が指定され、該下位アドレスと、Ｑレジスタに格納されている特定値（該タイマ割込領域の上位アドレスであるＦ５）とに基づいて、タイマ割込領域のアドレスを特定する。Ｓｋ１０においては、該特定したアドレスの領域であるタイマ割込領域に対して、ＬＤＱ命令によりタイマ割込禁止フラグを設定する。以下では、Ｓｋ９およびＳｋ１０で説明したＲＡＭアクセス禁止フラグと、割込禁止フラグとを「電断時設定値」ともいう。電断時設定値とは、「電源供給の停止に応じた値」ともいえる。
【０１３１】
Ｓｋ１０の処理の終了後、ループ処理に入る。ループ処理では、電圧低下信号の出力状況を監視した状態で待機する。この状態で、電圧低下信号が入力されなくなった場合に電圧の回復を判定し、起動処理（メイン）からプログラムをスタートさせる。一方、電圧低下信号が入力されたまま電圧が低下すると内部的に動作停止状態になる。
【０１３２】
以上の処理によって、外部からのＡＣ１００Ｖの電力供給が停止される場合には、電断処理（メイン）が実行され、電断前のレジスタの値が遊技ＲＡＭ領域の遊技スタック領域に退避されるとともに、当該遊技スタック領域を含むＲＡＭ４１ｃの遊技ＲＡＭ領域の所定領域の内容もバックアップ電源が供給されることで保持されるため、スロットマシン１への電力供給が再開された際に実行される起動処理（メイン）において、電断前の制御状態に復帰させることが可能となる。
【０１３３】
［特定値の設定タイミングと所定値の設定タイミングについて］
次に、図７を用いて、Ｑレジスタへの特定値の設定タイミングと、Ｑレジスタへの所定値の設定タイミングとを説明する。なお、図７に示す各タイミングは、あくまで一例を示したものであり、各タイミング間の期間は他の期間となってもよい。
【０１３４】
タイミングＴ０で、電断処理が開始されたとする。電断処理（図６参照）中のタイミングＴ１において、Ｑレジスタに特定値が設定されたとする（図６のＳｋ８）。このタイミングＴ１までの期間においてはＱレジスタに所定値が設定されている。また、タイミングＴ１以降においては、Ｑレジスタに特定値が設定される。また、タイミングＴ１の後のタイミングＴ２において、ＲＡＭ４１ｃへのアクセスが禁止に設定される（Ｓｋ９）。そし
て、タイミングＴ３において、電断処理が終了したとする。なお、図７の例では、Ｑレジスタに特定値が設定されたときに、ＲＡＭ４１ｃへのアクセスが禁止されるようになっているが、Ｑレジスタに特定値が設定された後、他の処理を実行してから、ＲＡＭ４１ｃへのアクセスを禁止するようにしてもよい。
【０１３５】
また、タイミングＴ４で起動処理（図４および図５）が開始されたとする。この起動処理が実行されたときに、Ｑレジスタに特定値が設定される（図４のＳａ１Ａ参照）。これにより、Ｑレジスタには特定値が設定されることになる。その後、タイミングＴ５において、ＲＡＭ４１ｃへのアクセスが許可される（Ｓａ３Ａ参照）。タイミングＴ５の後のタイミングＴ６でＱレジスタに所定値が設定される（Ｓａ３Ｂ参照）。これにより、Ｑレジスタには特定値が設定されずに所定値が設定されることになる。その後、タイミングＴ７で起動処理が終了したとする。
【０１３６】
［本実施形態の効果について］
次に、本実施形態の効果を説明する。
【０１３７】
（１−１）  前述したように、メイン制御部４１がレジスタの値を記憶させる遊技ＲＡＭ領域の遊技スタック領域やスタックポインタＳＰにより示されるアドレスの値を記憶させる遊技ＲＡＭ領域の所定領域を含む遊技ＲＡＭ領域の所定領域は、バックアップ電源によりバックアップされており、電断処理では、Ｓｋ１に示すレジスタを遊技ＲＡＭ領域に退避させる処理、Ｓｋ２のスタックポインタを遊技ＲＡＭ領域に退避させる処理などが実行される。また、起動処理においては、該遊技ＲＡＭ領域に格納されたデータに基づいて、制御状態（電断処理実行時の制御状態）を復帰させる。したがって、遊技ＲＡＭ領域は重要な領域である。
【０１３８】
また、電断処理は、電圧低下状態が所定時間継続したと判定される場合に実行される。したがって、電断処理が実行された場合というのは、電源供給の観点でいうと、不安定な状態である。このような不安定な状態では、誤動作などによりＬＤＱ命令が実行されてしまう場合がある。
【０１３９】
仮に、電断処理において、Ｑレジスタに所定値（遊技ＲＡＭ領域の上位アドレス「Ｆ０」を示す値）が格納されている場合において、誤動作などによりＬＤＱ命令が実行されてしまうと、重要な領域である遊技ＲＡＭ領域にアクセス（遊技機の設計者が意図しないアクセス）が実行されてしまうことになる。
【０１４０】
そこで、本実施形態では、電断処理の所定タイミング（図７の例では、タイミングＴ１）においては、Ｑレジスタに、特定値が格納される。該特定値は、遊技ＲＡＭ領域とは異なる領域（本実施形態では、内部機能レジスタ）の上位アドレス「Ｆ５」を特定可能な値である。したがって、電源供給の観点で不安定な状態であるときに実行される電断処理において、誤動作などによりＬＤＱ命令が実行されてしまったとしても、遊技ＲＡＭ領域にはアクセスされない（内部機能レジスタにアクセスされる）。したがって、設計者が意図しないアクセスが実行されてしまう可能性を低減できる。
【０１４１】
また、起動処理は、電源の供給が開始された直後に実行される処理である。したがって、起動処理が実行された場合というのは、電源供給の観点でいうと、不安定な状態である。このような不安定な状態では、誤動作などによりＬＤＱ命令が実行されてしまう場合がある。
【０１４２】
仮に、起動処理において、Ｑレジスタに所定値（遊技ＲＡＭ領域の上位アドレス「Ｆ０」を示す値）が格納されている場合において、誤動作などによりＬＤＱ命令が実行されて
しまうと、重要な領域である遊技ＲＡＭ領域にアクセス（設計者が意図しないアクセス）が実行されてしまうことになる。
【０１４３】
そこで、本実施形態では、起動処理の所定タイミング（図７の例では、タイミングＴ４）においては、Ｑレジスタに、特定値が格納される。該特定値は、遊技ＲＡＭ領域とは異なる領域（本実施形態では、内部機能レジスタ）の上位アドレス「Ｆ５」を特定可能な値である。したがって、電源供給の観点で不安定な状態であるときに実行される起動処理において、誤動作などによりＬＤＱ命令が実行されてしまったとしても、遊技ＲＡＭ領域にはアクセスされない（内部機能レジスタにアクセスされる）。したがって、設計者が意図しないアクセスが実行されてしまう可能性を低減できる。
【０１４４】
また、記憶領域（遊技ＲＡＭ領域、および内部機能レジスタを含む）のアドレスは、第１情報（たとえば、該アドレスの上位アドレス）と第２情報（たとえば、該アドレスの下位アドレス）とを含み、たとえば、第１情報は、所定記憶領域（たとえば、Ｑレジスタ）に記憶させておくことが好ましい。そして、特定命令（たとえば、ＬＤＱ命令）では、第１情報と第２情報とからアドレスを特定し、特定したアドレスの記憶領域からデータを読み出す。この読み出しの際には、該所定記憶領域に記憶されている第１情報と、該特定命令で指定された第２情報とからアドレスを特定する。このような構成によれば、特定命令において第１情報および第２情報の双方を指定してアドレスを特定する構成と比較して、特定命令のプログラム容量を削減することができる。
【０１４５】
また、電断処理および起動処理において、Ｑレジスタに所定値が設定されているときにおいて、遊技ＲＡＭ領域（該所定値からアドレスを特定可能な領域）を用いた処理（たとえば、遊技ＲＡＭ領域からデータを読み出す処理、または、遊技ＲＡＭ領域にデータを書き込む処理など）を実行する場合には、ＬＤＱ命令により実行する。したがって、該遊技ＲＡＭ領域を用いた処理におけるＬＤＱ命令のプログラム容量を削減することができる。
【０１４６】
また、電断処理および起動処理において、Ｑレジスタに特定値が設定されているときには、内部機能レジスタ（該特定値からアドレスを特定可能な領域）を用いた処理（たとえば、内部機能レジスタにデータを書き込む処理など）を実行する場合には、ＬＤＱ命令により実行する。したがって、該内部機能レジスタを用いた処理におけるＬＤＱ命令のプログラム容量を削減することができる。
【０１４７】
（１−２）  また、スロットマシン１への電力供給が開始されたときには、電断処理に先立って、起動時設定処理が実行される。この起動時設定処理では、内部機能レジスタが初期化される。このように、電断処理で特定値が設定された以降に、該電断処理内において、誤動作などによりＬＤＱ命令が実行された場合であっても、該ＬＤＱ命令では、起動時設定処理で初期化される内部機能レジスタにアクセスされることになる。したがって、特段の問題が生じる可能性を低減できる。
【０１４８】
（１−３）  また、記憶領域（たとえば、遊技ＲＡＭ領域）に格納されているデータが正常であるか否かを確認するための確認用データ（たとえば、図６のＳｋ４に示すＲＡＭ破壊診断用固定データおよびＳｋ７に示すＲＡＭパリティ調整用データ）を生成して前記特定記憶領域に記憶させる確認用データ生成処理（たとえば、図６のＳｋ４およびＳｋ７の処理）を、電源供給の停止が検出されたときに（たとえば、電断処理において）実行する。また、Ｑレジスタには、確認用データ生成処理が実行された後に、特定値が設定される（たとえば、図６に示すように、Ｓｋ４およびＳｋ７の処理が実行された後に、Ｓｋ８において、Ｑレジスタに特定値が入力される）。
【０１４９】
したがって、確認用データが記憶された特定記憶領域に記憶された後に、誤って特定命
令が実行された場合であっても、該確認用データが記憶された特定記憶領域にアクセスする可能性を低減できる。
【０１５０】
（１−４）  また、電断時設定値（図６のＳｋ９およびＳｋ１０）の内部機能レジスタへの格納も、ＬＤＱ命令で実行される。具体的には、Ｓｋ８においてＱレジスタに格納された特定値（上位アドレスがＦ５）と、Ｓｋ９およびＳｋ１０それぞれにおけるＬＤＱ命令で指定された値（下位アドレス）とに基づいて、ＲＡＭ破壊診断用固定データおよびＲＡＭパリティ調整用データは、内部機能レジスタ内に格納される。したがって、このような構成によれば、ＬＤＱ命令において内部機能レジスタの全てのアドレスを指定してアドレスを特定する構成と比較して、ＬＤＱ命令のプログラム容量を削減することができる。
【０１５１】
（１−５）  また、図３にも示すように、遊技ＲＡＭ領域の上位アドレスは「Ｆ０」であり、該遊技ＲＡＭ領域には、遊技プログラムで用いるデータが格納される。一方、非遊技プログラムで用いるデータが格納される非遊技ＲＡＭ領域の上位アドレスは「Ｆ３」である。また、図７などにも示したように、起動処理が実行されたときから電断処理が実行されるまでの期間においては、Ｑレジスタに、「Ｆ０」が設定されている。仮に、非遊技プログラムでＬＤＱ命令が用いられた場合には、実際は、上位アドレスが「Ｆ３」である非遊技ＲＡＭ領域にアクセスされるべきであるところ、上位アドレスが「Ｆ０」である遊技ＲＡＭ領域にアクセスされてしまう。そうすると、重要な領域である遊技ＲＡＭ領域にアクセス（遊技機の設計者が意図しないアクセス）が実行されてしまうことになる。
そこで、遊技プログラムでは、ＬＤＱ命令が用いられる一方、非遊技プログラムでは、ＬＤＱ命令が用いられないようになっている。したがって、上位アドレスが「Ｆ０」である遊技ＲＡＭ領域に対して、遊技機の設計者が意図しないアクセスが実行されてしまうことを低減できる。
【０１５２】
（１−６）  また、図３にも示すように、遊技プログラム領域の上位アドレスは「００」であり、該遊技プログラム領域には、遊技プログラムで用いるプログラム（サブルーチン）が格納されている。一方、非遊技プログラムで用いるプログラム（サブルーチン）が格納される非遊技プログラム領域の上位アドレスは「２０」である。また、ベクターテーブル領域には、遊技プログラム領域の上位アドレスを特定可能な値（たとえば、「００」）が記憶されている。仮に、非遊技プログラムで特別命令（ＣＡＬＬＶ命令）が用いられた場合には、実際は、上位アドレスが「２０」である非遊技プログラム領域にアクセスされるべきであるところ、上位アドレスが「００」である遊技プログラム領域（遊技プログラムで用いられるプログラム（サブルーチン）が格納されている記憶領域）にアクセスされてしまう。そうすると、非遊技プログラムにおいて、遊技プログラム領域にアクセス（遊技機の設計者が意図しないアクセス）が実行されてしまうことになる。
【０１５３】
また、ＲＳＴ命令で指定される値に対応する特定アドレスの記憶領域には、遊技プログラムで用いられるプログラム（サブルーチン）が格納されている。仮に、非遊技プログラムで特別命令（ＲＳＴ命令）が用いられた場合には、実際は、非遊技プログラム領域にアクセスされるべきであるところ、遊技プログラムで用いられるプログラム（サブルーチン）が格納されている遊技プログラム領域にアクセスされてしまう。そうすると、非遊技プログラムにおいて、遊技プログラム領域にアクセス（遊技機の設計者が意図しないアクセス）が実行されてしまうことになる。
そこで、遊技プログラムでは、特別命令が用いられる一方、非遊技プログラムでは、特別命令が用いられないようになっている。したがって、遊技プログラム領域に対して、遊技機の設計者が意図しないアクセスが実行されてしまうことを低減できる。
【０１５４】
（２−１）  また、Ｑレジスタには、遊技ＲＡＭ領域へのアクセスが許可されるまでは（たとえば、図７のタイミングＴ５に示すＲＡＭアクセスが許可されるまでは）、遊技Ｒ
ＡＭ領域とは異なる領域である内部機能レジスタのアドレスを特定可能な特定値（たとえば、内部機能レジスタの上位アドレス「Ｆ５」を特定可能な特定値）が記憶される。また、遊技ＲＡＭ領域へのアクセスが許可された以降（たとえば、図７のタイミングＴ６に示すＲＡＭアクセスが許可された以降）は遊技ＲＡＭ領域のアドレスを特定可能な所定値（たとえば、遊技ＲＡＭ領域の上位アドレス「Ｆ０」を特定可能な所定値）が記憶される。
【０１５５】
また、遊技ＲＡＭ領域へのアクセスが許可されるまでの期間（つまり、遊技ＲＡＭ領域へのアクセスが禁止されている期間）においては、遊技ＲＡＭ領域は、重要な領域であるといえる。
【０１５６】
仮に、ＲＡＭアクセスが許可されるまでの期間（つまり、ＲＡＭアクセスが禁止されている期間、たとえば、タイミングＴ４〜Ｔ５までの期間）中に、Ｑレジスタに所定値（遊技ＲＡＭ領域の上位アドレス「Ｆ０」を示す値）が格納されている場合において、誤動作などによりＬＤＱ命令が実行されてしまう場合がある。この場合には、アクセスが禁止されてしまう遊技ＲＡＭ領域（重要な領域）にアクセス（設計者が意図しないアクセス）が実行されてしまうことになる。本実施形態では、アクセスが禁止されている遊技ＲＡＭ領域にアクセスされると、イリーガルアクセスリセットを発生させることで、遊技の進行を不能化させる。したがって、誤動作などによりＬＤＱ命令が実行されてしまうと、不用意に、遊技の進行が不能化されてしまうことになる。
【０１５７】
そこで、本実施形態では、ＲＡＭアクセスが許可されるまでは、特定値（内部機能レジスタの上位アドレスを特定可能な値）が記憶される。したがって、ＲＡＭアクセスが許可されるまでにおいて、誤動作などによりＬＤＱ命令が実行されてしまっても、遊技ＲＡＭ領域にはアクセスされないことから、不用意に、遊技の進行が不能化されてしまう可能性を低減できる。
【０１５８】
なお、変形例として、ＲＡＭアクセスが禁止されているときにおいて、遊技ＲＡＭ領域にアクセスされても「遊技の進行が不能化させる不能化処理」を実行しない構成（以下、「不能化処理非実行構成」という。）としてもよい。このような構成の場合において、ＲＡＭアクセスが禁止されているときに、誤動作などによりＬＤＱ命令が実行されることにより遊技ＲＡＭ領域にアクセスされたときには、該遊技ＲＡＭ領域内に記憶されているデータが変更されてしまう可能性がある。
【０１５９】
これに対し、本実施形態では、ＲＡＭアクセスが禁止されているときには、Ｑレジスタに特定値が設定されている。したがって、不能化処理非実行構成が採用されている遊技機において、誤動作などによりＬＤＱ命令が実行されたとしても、遊技ＲＡＭ領域にアクセスされてしまうこと可能性を低減できる。
【０１６０】
（２−２）  また、信号領域には、電断検出回路（図示せず）から出力される停電検出信号に係る情報（たとえば、停電検出信号フラグ）が格納される。メイン制御部４１は、該停電検出信号に基づいて（たとえば、図４のＳａ１およびＳａ２参照）、起動処理を実行する。また、Ｓａ１の入力ポートの信号領域を参照する際には、Ｓａ１ＡにおいてＱレジスタに設定された特定値（信号領域の上位アドレス）と、Ｓａ１ＡでのＬＤＱ命令により指定された値（信号領域の下位アドレス）とに基づいて信号領域のアドレスを特定する。Ｓａ１においては、該特定したアドレスの領域である信号領域（入力ポートの信号領域）を参照する。したがって、ＬＤＱ命令において信号領域の全てのアドレスを指定してアドレスを特定する構成と比較して、Ｓａ１の処理でのＬＤＱ命令のプログラム容量を削減することができる。
【０１６１】
（２−３）  また、図４の起動処理において、前記記憶領域に記憶されているデータを
用いて、該データが正常であるか否かを判定する判定処理を実行する。本実施形態では、この判定処理は、図４のＳａ５〜Ｓａ７に示すように、ＲＡＭ破壊診断用固定データおよびＲＡＭパリティ調整用データを用いてＲＡＭ４１ｃを診断する処理である。また、Ｑレジスタには、この判定処理が実行されるまで、特定値が記憶される（たとえば、図４の例では、Ｓａ７の処理が実行されるまでに特定値が設定される）。したがって、判定処理が実行されるまでに、誤ってＬＤＱ命令が実行された場合であっても、たとえば、遊技ＲＡＭ領域にアクセスされる可能性を低減できる。
【０１６２】
また、本実施形態では、判定処理に使用される判定用データ（ＲＡＭ破壊診断用固定データおよびＲＡＭパリティ調整用データ）は、遊技ＲＡＭ領域に格納される。したがって、この判定処理が実行されるまで、つまり、遊技ＲＡＭ領域に格納される判定用データが記憶されているときに、該遊技ＲＡＭ領域に不本意にアクセスされることにより該判定用データが変更される可能性を低減できる。
【０１６３】
（２−４）  また、起動時設定値（図４のＳａ１Ｂ）の内部機能レジスタへの格納も、ＬＤＱ命令で実行される。具体的には、Ｓａ１ＡにおいてＱレジスタに格納された特定値（上位アドレスがＦ５）と、該ＬＤＱ命令で該Ｎ個それぞれについて指定された値（下位アドレス）とに基づいて、該Ｎ個の設定値は内部機能レジスタ内のＮ個の領域それぞれに格納される。したがって、このような構成によれば、ＬＤＱ命令において内部機能レジスタの全てのアドレスを指定してアドレスを特定する構成と比較して、ＬＤＱ命令のプログラム容量を削減することができる。
【０１６４】
（３−１）  また、Ｑレジスタには、遊技ＲＡＭ領域へのアクセスが禁止されるまでは（たとえば、図７のタイミングＴ２に示すＲＡＭアクセスが禁止されるまでは）、遊技ＲＡＭ領域のアドレスを特定可能な所定値（たとえば、遊技ＲＡＭ領域の上位アドレス「Ｆ０」を特定可能な所定値）が記憶される。また、遊技ＲＡＭ領域へのアクセスが禁止された以降（たとえば、図７のタイミングＴ２に示すＲＡＭアクセスが禁止された以降）は遊技ＲＡＭ領域とは異なる領域である内部機能レジスタのアドレスを特定可能な特定値（たとえば、内部機能レジスタの上位アドレス「Ｆ５」を特定可能な値）が記憶される。
【０１６５】
また、遊技ＲＡＭ領域へのアクセスが禁止された以降においては、遊技ＲＡＭ領域は、重要な領域であるといえる。
【０１６６】
仮に、ＲＡＭアクセスが禁止された以降の期間（たとえば、タイミングＴ２〜Ｔ３までの期間）中に、Ｑレジスタに所定値（遊技ＲＡＭ領域の上位アドレス「Ｆ０」を示す値）が格納されている場合において、誤動作などによりＬＤＱ命令が実行されてしまう場合がある。この場合には、アクセスが禁止されてしまう遊技ＲＡＭ領域（重要な領域）にアクセス（設計者が意図しないアクセス）が実行されてしまうことになる。本実施形態では、アクセスが禁止されている遊技ＲＡＭ領域にアクセスされると、遊技の進行を不能化させる。したがって、誤動作などによりＬＤＱ命令が実行されてしまうと、不用意に、遊技の進行が不能化されてしまうことになる。
【０１６７】
そこで、本実施形態では、ＲＡＭアクセスが禁止された以降は、特定値（内部機能レジスタの上位アドレスを特定可能な値）が記憶される。したがって、ＲＡＭアクセスが禁止された以降において、誤動作などによりＬＤＱ命令が実行されてしまっても、遊技ＲＡＭ領域にはアクセスされないことから、不用意に、遊技の進行が不能化されてしまう可能性を低減できる。
【０１６８】
なお、ＲＡＭアクセスが禁止されているときにおいて、遊技ＲＡＭ領域にアクセスされても「遊技の進行が不能化させる不能化処理」を実行しない構成（以下、「不能化処理非
実行構成」という。）としてもよい。このような構成の場合において、ＲＡＭアクセスが禁止されているときに、誤動作などによりＬＤＱ命令が実行されることにより遊技ＲＡＭ領域にアクセスされたときには、該遊技ＲＡＭ領域内に記憶されているデータが変更されてしまう可能性がある。
【０１６９】
これに対し、本実施形態では、ＲＡＭアクセスが禁止されているときには、Ｑレジスタに特定値が設定されている。したがって、不能化処理非実行構成が採用されている遊技機において、誤動作などによりＬＤＱ命令が実行されたとしても、遊技ＲＡＭ領域にアクセスされてしまうこと可能性を低減できる。
【０１７０】
［変形例］
以上、本発明における主な実施の形態を説明してきたが、本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形例について説明する。
【０１７１】
（１）  本実施形態では、図６の電断処理に示したように、Ｓｋ８の特定値のＱレジスタへの設定は、Ｓｋ９のＲＡＭアクセス禁止フラグの設定前に実行するとして説明した。しかしながら、Ｓｋ８の処理は、Ｓｋ９の処理の後に実行するようにしてもよい。または、Ｓｋ８の処理と、Ｓｋ９の処理とは同時に実行するようにしてもよい。つまり、Ｓｋ８の処理は、ＲＡＭ４１ｃへのアクセスが禁止される際に（ＲＡＭ４１ｃへのアクセスが禁止されるにあたって）、実行される処理である。このような構成であっても、本実施形態と同様の効果を奏する。
【０１７２】
（２）  本実施形態では、起動処理において（電断復帰時において）、電断処理内での（電断検出時での）制御状態に復帰させる手法として、遊技ＲＡＭ領域にバックアップ電源を供給するとともに、図６のＳｋ１およびＳｋ２に示したように、レジスタおよびスタックポインタを退避させるとして説明した。しかしながら、電断検出時の制御状態に復帰させる手法は他の手法を採用してもよい。
【０１７３】
たとえば、電断が検出されたときの制御状態を示すデータのうち、少なくとも一部をバックアップ領域に退避させる構成を採用するようにしてもよい。このような構成を採用した場合において、バックアップ領域は重要な領域であるといえる。したがって、たとえば、所定値をバックアップ領域の上位アドレスを特定可能な値とし、特定値をバックアップ領域とは異なる領域の上位アドレスを特定可能な値とする構成を採用してもよい。このような構成であっても、本実施形態と同様の効果を奏する。
【０１７４】
（３）  また、図４において、Ｓａ１Ａの処理によるＱレジスタに特定値が設定されたときから、Ｓａ３Ｂの処理によるＱレジスタに所定値が設定されるときまでの期間（以下、第１期間という。）において、機能設定レジスタを用いた処理として、ＬＤＱ命令に基づいて、図４で説明した処理とは別の処理を、図４で説明した処理に加えて実行する、または図４で説明した処理に代替させて実行するようにしてもよい。この場合において、該第１期間中の機能設定レジスタを用いた処理として、ＬＤＱ命令（機能設定レジスタの下位アドレスのみ指定する命令）に基づいてＭ個（Ｍは２以上の整数）の処理を実行する構成の方が、機能設定レジスタの上位アドレスおよび下位アドレスの双方を指定する命令に基づいて該Ｍ個の処理を実行する構成よりもプログラムの容量を削減できる。
【０１７５】
また、図６において、Ｓｋ８によるＱレジスタに特定値が設定されたときから、ループに入るまでの期間（以下、第２期間という。）において、機能設定レジスタを用いた処理として、ＬＤＱ命令に基づいて、図６で説明した処理とは別の処理を、図６で説明した処理に加えて実行する、または図６で説明した処理に代替させて実行するようにしてもよい
。この場合において、該第２期間中の機能設定レジスタを用いた処理として、ＬＤＱ命令（機能設定レジスタの下位アドレスのみ指定する命令）に基づいてＬ個（Ｌは２以上の整数）の処理を実行する構成の方が、機能設定レジスタの上位アドレスおよび下位アドレスの双方を指定する命令に基づいて該Ｌ個の処理を実行する構成よりもプログラムの容量を削減できる。
【０１７６】
（４）  図７の電断処理の例では、Ｑレジスタの特定値を設定したタイミングＴ２でＲＡＭアクセスを禁止するとして説明した。しかしながら、Ｑレジスタの特定値を設定したタイミングにおいて、他の処理を実行した後に、ＲＡＭアクセスを禁止するようにしてもよい。また、図７の起動処理の例では、ＲＡＭアクセスを許可したタイミングＴ６でＱレジスタに所定値を設定するとして説明した。しかしながら、ＲＡＭアクセスを許可したタイミングにおいて、他の処理を実行した後に、Ｑレジスタに所定値を設定するようにしてもよい。これらのような構成によれば、他の処理をできつつも、本実施形態と同様の効果を奏する。
【０１７７】
（５）  本実施形態では、遊技ＲＡＭ領域の上位アドレスを「Ｆ０」とし、内部機能レジスタの上位アドレスを「Ｆ５」として説明した。しかしながら、遊技ＲＡＭ領域の上位アドレスおよび内部機能レジスタの上位アドレスは両領域の上位アドレスが異なるものであれば、両領域の少なくとも１の領域の上位アドレスは本実施形態と異なるものとしてもよい。たとえば、遊技ＲＡＭ領域の上位アドレスを「Ｆ１」とし、内部機能レジスタの上位アドレスを「ＦＥ」としてもよい。このような構成であっても、本実施形態と同様の効果を奏する。
【０１７８】
（６）  本実施形態の起動処理では、起動処理でのＳａ１およびＳａ２において、停電検出信号（電源供給が停止されたことを示す信号）を用いた処理（図４のＳａ１およびＳａ２参照）を実行するとして説明した。しかしながら、電力供給が停止されたことを示す停電検出信号ではなく、電源供給が開始されたことを示す信号（以下、「電源供給信号」という。）を用いて、起動処理を実行するようにしてもよい。
【０１７９】
この電源供給信号を用いた構成である場合には、図４のＳａ１においては、入力ポートの信号領域（内部機能レジスタ内の領域）には、電源供給信号が入力されたことを示すデータ（電源供給信号フラグ）が設定される。そして、Ｓａ２においては、信号領域において、電源供給信号フラグ格納されたか否かが判断され、該Ｓａ２においてＹＥＳと判断された場合には、Ｓａ３Ａに進む。このような構成であっても、本実施形態と同様の効果を奏する。
【０１８０】
（７）  本実施形態では、特別ワークの開始アドレス、重要ワークの開始アドレス、および一般ワークの一部の開始アドレスそれぞれの上位アドレスは、「Ｆ０」であるとして説明した。しかしながら、上位アドレスが「Ｆ０」となる領域は、他の領域としてもよい。たとえば、この他の領域とは、遊技の進行に応じて、データを読み出したりデータを書き込んだりする領域（特定記憶領域）としてもよい。また、この他の領域は、電断されたときには、該電断時の制御データの少なくとも一部を退避させる（バックアップさせる）領域（特定記憶領域）としてもよい。この場合には、電断復帰時には、該退避されたデータに基づいて該電断時の制御データに復帰させるようにしてもよい。
【０１８１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１８２】
１  スロットマシン、６  ＭＡＸＢＥＴスイッチ、７  スタートスイッチ、４１  メイン制御部、９１  サブ制御部。
【図１】
2019111055.tif 000003
【図２】
2019111055.tif 000004
【図３】
2019111055.tif 000005
【図４】
2019111055.tif 000006
【図５】
2019111055.tif 000007
【図６】
2019111055.tif 000008
【図７】
2019111055.tif 000009