(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、
遊技制御プログラムが少なくとも記憶されたＲＯＭと、
データを一時記憶可能なＲＡＭと、
を内蔵するマイクロコンピュータを備えた遊技台であって、
前記遊技台は、ぱちんこ機またはスロットマシンであり、
前記ＲＡＭの先頭アドレスの上位バイトは、前記ＲＯＭの先頭アドレスの上位バイトよりも大きく、
前記ＣＰＵは、少なくとも第一のレジスタを有し、
前記第一のレジスタは、複数の方法のうちのいずれかの方法で値をセット可能なレジスタであり、
前記複数の方法のうちの少なくとも一つは、第一の方法であり、
前記複数の方法のうちの少なくとも一つは、第二の方法であり、
前記第一の方法は、直値により値をセットする方法であり、
前記第二の方法は、前記ＲＡＭの先頭アドレスの上位バイトと同じ値を初期値としてセットする方法であり、
前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われる機能としては、前記第一の方法により値がセットされる機能のみを有し、
前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、前記ロード命令を受けたことに基づいて行われる機能以外の機能としては、前記第二の方法により値がセットされる機能を少なくとも有し、
前記第二の方法は、前記遊技制御プログラムによらずに実行され、
前記遊技制御プログラムの少なくとも一部は、第一のプログラムであり、
前記遊技制御プログラムの少なくとも一部は、第二のプログラムであり、
前記遊技制御プログラムの少なくとも一部は、第三のプログラムであり、
前記第三のプログラムは、前記第一のプログラムから少なくとも呼び出されるプログラムであり、
前記第三のプログラムは、前記第二のプログラムから少なくとも呼び出されるプログラムであり、
前記第三のプログラムは、前記複数の方法のうちのいずれかの方法で値がセットされた前記第一のレジスタを用いて前記ＲＡＭをアクセスする命令を少なくとも含むプログラムである、
ことを特徴とする遊技台。
【請求項２】
請求項１に記載の遊技台であって、
前記第二のプログラムは、前記第一のプログラムから呼び出されるプログラムである、
ことを特徴とする遊技台。
【請求項３】
請求項１または請求項２に記載の遊技台であって、
前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われる機能以外の機能として、初期値をセットする機能を少なくとも有する、
ことを特徴とする遊技台。
【請求項４】
請求項３に記載の遊技台であって、
前記第一のレジスタは、リセットが発生した場合に前記初期値がセットされる、
ことを特徴とする遊技台。
【請求項５】
請求項１乃至請求項４のいずれか一項に記載の遊技台であって、
前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われる機能以外の機能として、スタック操作命令を受けたことに基づいて行われる機能を少なくとも有する、
ことを特徴とする遊技台。
【請求項６】
請求項１乃至請求項５のいずれか一項に記載の遊技台であって、
前記ＣＰＵは、少なくとも複数のレジスタを有し、
前記複数のレジスタのうちの少なくとも一つは、前記第一のレジスタであり、
前記複数のレジスタのうちの少なくとも一つは、第二のレジスタであり、
前記第二のレジスタは、フラグレジスタである、
ことを特徴とする遊技台。
【請求項７】
請求項１乃至請求項６のいずれか一項に記載の遊技台であって、
前記マイクロコンピュータは、ウォッチドッグタイマを少なくとも内蔵するものである、
ことを特徴とする遊技台。
【請求項８】
請求項１乃至請求項７のいずれか一項に記載の遊技台であって、
前記マイクロコンピュータは、ＩＡＴ回路を少なくとも内蔵するものであり、
前記ＩＡＴ回路とは、正当な指定エリア以外の記憶領域のコードが実行されたことに基づいて、指定エリア外走行禁止信号を少なくとも発生させることが可能な回路のことである、
ことを特徴とする遊技台。
【請求項９】
請求項１乃至請求項８のいずれか一項に記載の遊技台であって、
前記マイクロコンピュータは、乱数生成回路を少なくとも内蔵するものである、
ことを特徴とする遊技台。
【請求項１０】
請求項１乃至請求項９のいずれか一項に記載の遊技台であって、
前記マイクロコンピュータは、セキュリティモードを経てユーザモードに移行可能なものであり、
前記プログラムは、前記ユーザモードにおいて、前記ＣＰＵによって実行され、
前記セキュリティモードにおいて、前記ＲＯＭのプログラムが正常なプログラムかどうかのチェックが行われる、
ことを特徴とする遊技台。
【請求項１１】
請求項１乃至請求項１０のいずれか一項に記載の遊技台であって、
前記マイクロコンピュータが少なくとも設けられた制御手段を備え、
前記制御手段は、賞球を払出する払出制御を少なくとも実行可能なものである、
ことを特徴とする遊技台。
【請求項１２】
請求項１１に記載の遊技台であって、
前記制御手段（以下、「第一の制御手段」という。）は、第二の制御手段に対してコマンドを少なくとも送信可能なものであり、
前記第二の制御手段は、賞球を払出する払出制御を少なくとも実行可能なものである、
ことを特徴とする遊技台。
【請求項１３】
請求項１２に記載の遊技台であって、
前記第二の制御手段に設けられたマイクロコンピュータが内蔵しているＣＰＵは、前記第一のレジスタを内蔵するものである、
ことを特徴とする遊技台。
【請求項１４】
請求項１２または請求項１３に記載の遊技台であって、
前記第一の制御手段は、第三の制御手段に対してコマンドを送信可能なものであり、
前記第三の制御手段は、遊技を演出する演出制御を少なくとも実行可能なものであり、
前記第三の制御手段に設けられたマイクロコンピュータが内蔵しているＣＰＵは、前記第一のレジスタを内蔵していない、
ことを特徴とする遊技台。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回胴遊技機（スロットマシン）や弾球遊技機（パチンコ機）に代表される遊技台に関する。
【背景技術】
【０００２】
従来の遊技台（例えば、スロットマシン、パチンコ機）は、図柄表示部の有効入賞ラインに沿って所定の図柄の組合せを停止表示させることで、遊技者が所定の利益を獲得できるように構成されていたり、遊技領域に設けられた所定の入賞口に遊技球を進入させることで、遊技者が所定の利益を獲得できるように構成されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２００３０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、このような遊技台では、遊技の興趣が高められなければ遊技者に飽きられることから遊技制御が複雑になる傾向にある。このため、複雑な遊技制御を実行しながらも安定した遊技制御をおこなうことができる遊技台が求められている。
【０００５】
本発明は、このような従来の問題点を解決するためになされたものであって、安定した遊技制御をおこなうことができる遊技台を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、ＣＰＵと、遊技制御プログラムが少なくとも記憶されたＲＯＭと、データを一時記憶可能なＲＡＭと、を内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記ＲＡＭの先頭アドレスの上位バイトは、前記ＲＯＭの先頭アドレスの上位バイトよりも大きく、前記ＣＰＵは、少なくとも第一のレジスタを有し、前記第一のレジスタは、複数の方法のうちのいずれかの方法で値をセット可能なレジスタであり、前記複数の方法のうちの少なくとも一つは、第一の方法であり、前記複数の方法のうちの少なくとも一つは、第二の方法であり、前記第一の方法は、直値により値をセットする方法であり、前記第二の方法は、前記ＲＡＭの先頭アドレスの上位バイトと同じ値を初期値としてセットする方法であり、前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われる機能としては、前記第一の方法により値がセットされる機能のみを有し、前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、前記ロード命令を受けたことに基づいて行われる機能以外の機能としては、前記第二の方法により値がセットされる機能を少なくとも有し、前記第二の方法は、前記遊技制御プログラムによらずに実行され、前記遊技制御プログラムの少なくとも一部は、第一のプログラムであり、前記遊技制御プログラムの少なくとも一部は、第二のプログラムであり、前記遊技制御プログラムの少なくとも一部は、第三のプログラムであり、前記第三のプログラムは、前記第一のプログラムから少なくとも呼び出されるプログラムであり、前記第三のプログラムは、前記第二のプログラムから少なくとも呼び出されるプログラムであり、前記第三のプログラムは、前記複数の方法のうちのいずれかの方法で値がセットされた前記第一のレジスタを用いて前記ＲＡＭをアクセスする命令を少なくとも含むプログラムである、ことを特徴とする遊技台である。
【発明の効果】
【０００７】
本発明に係る遊技台によれば、安定した遊技制御をおこなうことができる。
【図面の簡単な説明】
【０００８】
【図１】パチンコ機を正面側（遊技者側）から見た外観斜視図である。
【図２】パチンコ機を背面側から見た外観図である。
【図３】遊技盤を正面から見た略示正面図である。
【図４】制御部の回路ブロック図を示したものである。
【図５】（ａ）特図の停止図柄態様の一例を示したものである。（ｂ）装飾図柄の停止図柄態様の一例を示したものである。（ｃ）普図の停止表示図柄の一例を示したものである。
【図６】主制御部３００から基本回路３０２の主要部のみを抜き出して示した図である。
【図７】（ａ）ＣＰＵ３０４のメモリマップを示した図である。（ｂ）（ａ）に示すメモリマップのうちのＲＷＭ領域の詳細を示した図である。（ｃ）ＣＰＵ３０４のＩ／Ｏマップを示した図である。
【図８】初期化処理の流れを示すフローチャートである。
【図９】システムリセット後の起動処理のタイムチャートである。
【図１０】主制御部メイン処理の流れを示すフローチャートである。
【図１１】（ａ）初期設定１で行うＴレジチェック処理の流れを示すフローチャートである。（ｂ）Ｔレジチェック処理のプログラムリストの一例である。
【図１２】（ａ）変形例に係るＴレジチェック処理の流れを示すフローチャートである。（ｂ）変形例に係るＴレジチェック処理のプログラムリストの一例である。
【図１３】図１１（ｂ）のプログラムリストからＬＤ命令のみを抜き出して示した図である。
【図１４】主制御部タイマ割込処理の流れを示すフローチャートである。
【図１５】（ａ）第１副制御部のＣＰＵが実行するメイン処理のフローチャートである。（ｂ）第１副制御部のコマンド受信割込み処理のフローチャートである。（ｃ）第１副制御部のタイマ割込処理のフローチャートである。（ｄ）第１副制御部の画像制御処理のフローチャートである。
【図１６】（ａ）第２副制御部５００のＣＰＵ５０４が実行するメイン処理のフローチャートである。（ｂ）第２副制御部５００のコマンド受信割込処理のフローチャートである。（ｃ）第２副制御部５００のタイマ割込処理のフローチャートである。
【図１７】ＲＯＭ３０６に記憶されるデータの一例を示した図である。
【図１８】主制御部３００の命令データの構成の一例を示した図である。
【図１９】（ａ）主制御部３００の命令データの上位ビットと下位ビットを示した図である。（ｂ）命令データテーブルの一例を示した図である。
【図２０】ＣＡＬＬ命令によるアドレスの移動の一例を概念的に示したものである。
【図２１】ＣＡＬＬ命令の命令データと補足データの一例を示した図である。
【図２２】（ａ）ＥＸＥＳＵＢ命令の構成の一例を示した図である。（ｂ）図１９（ｂ）の空き領域に対してＥＸＥＳＵＢ命令を割り当てた命令データテーブルを示した図である。
【図２３】ＥＸＥＳＵＢ命令によるアドレスの移動の一例を概念的に示した図である。
【図２４】ＥＸＥＳＵＢ命令によるサブルーチンの先頭アドレスの呼び出しの一例を示したものである。
【図２５】ＥＸＥＳＵＢ命令の命令データと補足データの一例を示した図である。
【図２６】主制御部タイマ割込処理の制御プログラムの一例を示したプログラムリストである。
【図２７】ＲＯＭ領域が、ＥＸＥＳＵＢ命令によって呼び出すことのできる領域よりも、制御プログラムデータが記憶されているＲＯＭ制御領域が広くなるように構成されている場合を示した図である。
【図２８】（ａ）（ｂ）ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）によって呼び出すことができるサブルーチンの先頭アドレスの領域を拡張した場合の一例を示した図である。
【図２９】（ａ）特図２状態更新処理および特図１状態更新処理の制御プログラムの一部を抜き出したものである。（ｂ）普図状態更新処理の制御プログラムの一部を抜き出したものである。（ｃ）従来のメモリ読み出し処理の一部を抜き出したものである。（ｄ）ＲＡＭエリア（ＲＷＭ領域）に設けた変数領域の一部を示した図である。（ｅ）本実施形態に係るメモリ読み出し処理の一部を抜き出したものである。
【図３０】図２９（ｃ）に示す従来のメモリ読出し処理の機械語と、図２９（ｅ）に示す本実施形態に係るメモリ読出し処理の機械語と、を比較した図である。
【図３１】特図１関連抽選処理の流れを示すフローチャートである。
【図３２】（ａ）テーブル選択用テーブルの一例を示した図である。（ｂ）第１変動パターン選択テーブルの一例を示した図である。（ｃ）第２変動パターン選択テーブルの一例を示した図である。（ｄ）ＲＷＭ領域のアドレスＦ０４０Ｈ〜Ｆ０４２Ｈに対応するＲＡＭ３０８の記憶領域に設けられる保留数記憶領域、乱数１記憶領域、乱数２記憶領域を示した図である。
【図３３】主制御部３００のＲＯＭ３０６に記憶されるデータテーブルの定義の一部と、ＲＡＭ３０８に設けられる変数格納領域の定義の一部を示したプログラムリストの一例である。
【図３４】特別図柄変動時間抽選処理の流れを示すフローチャートである。
【図３５】特別図柄変動時間抽選処理のプログラムリストの一例である。
【図３６】制御部３００（のＣＰＵ３０４）が備える命令の一部と、その説明を示した図である。
【図３７】（ａ）主制御部３００の命令データの上位ビットと下位ビットを示した図である。（ｂ）命令データテーブルの一例を示した図である。
【図３８】テーブル選択用テーブル、第１変動パターン選択テーブル、および第２変動パターン選択テーブルの変形例を示した図である。
【図３９】変形例に係る特別図柄変動時間抽選処理の流れを示すフローチャートである。
【図４０】（ａ）ＲＯＭ３０６に記憶される初期設定データテーブルの一例を示した図である。（ｂ）初期設定処理後のＲＡＭ３０８の記憶領域の一部を示した図である。（ｃ）初期設定処理の流れを示すフローチャートである。
【図４１】初期設定処理のプログラムリストの一例である。
【図４２】（ａ）主制御部３００が備える第２特殊命令の一部を示した図である。（ｂ）第２特殊命令を実行する前後のフラグレジスタの状態を示した図である。
【図４３】ＣＰＪＲ命令を用いた処理の一例を示した図である。
【図４４】（ａ）従来の命令を用いたプログラムの一例を示した図である。（ｂ）ＣＰＪＲ命令を用いたプログラムの一例である。
【図４５】ＣＰＪＲ命令を用いた他の処理の一例を示した図である。
【図４６】処理Ｖを含む、ＣＰＪＲ命令を用いた他の処理の一例を示した図である。
【図４７】ＣＰＲＴ命令を用いた処理の一例を示した図である。
【図４８】（ａ）ＣＰＲＴ命令を用いたプログラムの一例である。（ｂ）従来の命令を用いたプログラムの一例を示した図である。
【図４９】主制御部３００が備える第３特殊命令の一部を示した図である。
【図５０】「ＲＥＳｍＺ  ｎ、ｒ」命令の具体例を示した図である。
【図５１】「ＲＥＳｍＺ  ｎ、（ｒｒ）」命令の具体例を示した図である。
【図５２】主制御部３００の命令マップのうち、ＲＥＳ命令に該当する部分を抜き出して示した図である。
【図５３】変形例１に係るＲＥＳ命令を示した図である。
【図５４】変形例１に係るＲＥＳ命令の具体例を示した図である。
【図５５】変形例１に係るＲＥＳ命令を用いたプログラムの一例を示した図である。
【図５６】変形例２に係るＲＥＳ命令を示した図である。
【図５７】変形例２に係るＲＥＳ命令の具体例を示した図である。
【図５８】変形例２に係るＲＥＳ命令の具体例を示した図である。
【図５９】主制御部３００の命令マップのうち、変形例２に係るＲＥＳ命令に該当する部分を抜き出して示した図である。
【図６０】ＲＥＳ命令の他の変形例を示した図である。
【図６１】（ａ）所定ビットのアクセスを禁止しないＲＥＳ命令を備えた場合の命令マップと、所定ビットのアクセスを禁止するＲＥＳ命令を備えた場合の命令マップを示した図である。（ｂ）ＲＥＳ命令の第１オペランドの数値の大小と、ＲＥＳ命令の命令マップの並び順を異ならせた例を示した図である。
【図６２】（ａ）ユーザプログラムの一部であるプログラム起動設定処理の一例を示した図である。（ｂ）ユーザプログラムの一部である電源投入時設定処理の一例を示した図である。
【図６３】主制御部タイマ割込処理に相当するユーザプログラムの一部を示した図である。
【図６４】主制御部３００が備える第４特殊命令の内容と、主制御部３００のＲＯＭ領域を示した図である。
【図６５】主制御部３００の命令マップのうち、第４特殊命令に係るＲＳＴ命令に該当する部分を抜き出して示した図である。
【図６６】スロットマシンを正面側（遊技者側）から見た外観斜視図である。
【図６７】前面扉を開けた状態のスロットマシンを示す正面図である。
【図６８】制御部の回路ブロック図を示したものである。
【図６９】（ａ）各リール（左リール、中リール、右リール）に施される図柄の配列を平面的に展開して示した図である。（ｂ）入賞役（作動役を含む）の種類、各入賞役に対応する図柄組合せ、各入賞役の作動または払出を示した図である。
【図７０】主制御部メイン処理の流れを示すフローチャートである。
【図７１】主制御部タイマ割込処理の流れを示すフローチャートである。
【図７２】（ａ）第１副制御部のＣＰＵ１４０４が実行するメイン処理のフローチャートである。（ｂ）第１副制御部のコマンド受信割込処理のフローチャートである。（ｃ）第１副制御部のタイマ割込処理のフローチャートである。
【図７３】（ａ）第２副制御部のＣＰＵ１５０４が実行するメイン処理のフローチャートである。（ｂ）第２副制御部のコマンド受信割込処理のフローチャートである。（ｃ）第２副制御部のタイマ割込処理のフローチャートである。（ｄ）第２副制御部の画像制御処理のフローチャートである。
【図７４】本発明の他の適用例を示した図である。
【図７５】マイクロプロセッサ３０００を用いた場合の基本回路３０２の一構成例を示す図である。
【図７６】リセットの流れを示すフローチャートである。
【図７７】図７５に示す乱数生成回路３１８の内部構成図である。
【図７８】図７７に示すノイズフィルタ３１８５による処理の一例を示す図である。
【図７９】図７７に示す乱数更新回路３１８３の詳細を示す図である。
【図８０】乱数生成範囲の最大値が設定されていない場合において出力される乱数の範囲を示す図である。
【図８１】図８０とは異なる最大値が設定された場合に出力される乱数の範囲を示す図である。
【図８２】最大値と最小値を設定した乱数生成範囲において、乱数を取得することができる範囲を示す図である。
【図８３】本実施形態の遊技台で使用される乱数の導出源を表で示す図である。
【図８４】割込み制御回路３１００の内部レジスタ３１０１に用意された第１内部情報レジスタを説明するための図である。
【図８５】周波数監視回路３１８２における異常の検出例を示す図である。
【図８６】乱数監視回路３１８４における異常の検出例を示す図である。
【図８７】乱数が一巡する周期とタイマ割込みの周期を比較した図である。
【図８８】主制御部メイン処理の流れを示すフローチャートである。
【図８９】主制御部メイン処理における初期設定２の流れを示すフローチャートである。
【図９０】ステップＳ１０５３における乱数生成回路初期設定処理の流れを示すフローチャートである。
【図９１】主制御部タイマ割込処理の流れを示すフローチャートである。
【図９２】（ａ）普図関連抽選処理の流れを示すフローチャートである。（ｂ）普図抽選テーブルを示す図である。
【図９３】特図関連抽選処理の流れを示すフローチャートである。
【図９４】（ａ）特図抽選テーブルを示す図である。（ｂ）停止図柄抽選テーブルを示す図である。
【図９５】デバイス監視処理の流れを示すフローチャートである。
【図９６】ステップＳ２１７における入賞受付処理のうち、特図当選乱数および普図当選乱数を取得する処理の流れを示した図である。
【図９７】（ａ）電源オフの場合の動作を示す図である。（ｂ）瞬断の場合の動作を示す図である。
【図９８】乱数生成範囲の問題点を示す図である。
【図９９】図７９で説明した乱数更新回路３１８３の変形例を示す図である。
【図１００】払出制御部メイン処理の流れを示すフローチャートである。
【図１０１】払出制御部タイマ割り込み処理の流れを示すフローチャートである。
【図１０２】割込み制御回路３１００の内部レジスタ３１０１に用意された第２内部情報レジスタを説明するための図である。
【図１０３】割込み制御回路３１００の内部レジスタ３１０１に用意された第３内部情報レジスタを説明するための図である。
【図１０４】割込み制御回路３１００の内部レジスタ３１０１に用意された第４内部情報レジスタを説明するための図である。
【図１０５】システムリセットの流れを乱数更新との関係を含めて示す図である。
【図１０６】（ａ）遊技制御プログラムの初期設定で実行される処理を模式的に示した図である。（ｂ）（ａ）の処理の概念を説明するための図である。
【図１０７】図７５に示すマイクロプロセッサ３０００のリセット制御回路３１４の変形例を示した図である。
【図１０８】主制御部３００と第１副制御部４００とのうち主制御部３００のみでＷＤＴ３１４１のタイムアウトが生じた場合の例を示すタイミングチャートである。
【図１０９】（ａ）主制御部の構成の第１変形例を示した図である。（ｂ）主制御部の構成の第２変形例を示した図である。（ｃ）ランダム遅延回路３１７、電圧監視回路３３８、およびＷＤＴ３１４を有して構成されたリセット回路の構成例を示した図である。
【図１１０】（ａ）図１０９（ｃ）の第１変形例を示した図である。（ｂ）図１０９（ｃ）の第２変形例を示した図である。
【図１１１】（ａ）図１０９（ｃ）に示すリセット回路の第３変形例を示した図である。（ｂ）ＣＰＵ３０４に接続される各種ＩＣの一部を示した図である。
【図１１２】図１１１（ｂ）に示すリセット信号出力端子ＸＲＳＴの接続の第１変形例を示した図である。
【図１１３】図４を用いて説明した基本回路３０２と、この基本回路３０２に接続される各種ＩＣの一部を示した図である。
【図１１４】（ａ）固定延長時間の設定例を示したものである。（ｂ）ランダム延長時間の設定例を示したものである。
【図１１５】ＷＤＴ３１４のタイムアウト時間の設定例を示したものである。
【図１１６】（ａ）〜（ｄ）リセット出力端子ＸＳＲＳＴＯ端子の出力信号の変化と、セキュリティモードの状態変化を示した図である。
【図１１７】（ａ）、（ｂ）固定延長処理の終了タイミングと、リセット出力端子ＸＲＳＴＯからＨレベルの信号を出力するタイミングが一致するが、ランダム延長時間が異なる例を示した図である。（ｃ）、（ｄ）固定延長処理の終了タイミングと、リセット出力端子ＸＲＳＴＯからＨレベルの信号を出力するタイミングが一致するが、固定延長時間が異なる例を示した図である。
【図１１８】固定延長処理を契機にリセット出力信号を変化させる例を示した図である。
【図１１９】アドレス信号、データ信号、制御信号、およびリセット出力信号の変化と、セキュリティモードの状態変化を示した図である。
【図１２０】（ａ）外部リセット後の他の出力信号の状態変化を示した図である。（ｂ）内部リセット後の他の出力信号の状態変化を示した図である。
【図１２１】（ａ）外部リセット後の他の出力信号の状態変化の他の例を示した図である。（ｂ）内部リセット後の他の出力信号の状態変化の他の例を示した図である。
【図１２２】（ａ）外部リセット後のセキュリティモードの開始タイミングの例を示した図である。（ｂ）内部リセット後のセキュリティモードの開始タイミングの例を示した図である。
【図１２３】本発明の基本概念を示した図である。
【図１２４】（ａ）図２を用いて説明した電源基板１８２、払出基板１７０、および主基板１５６の接続例を示した図である。（ｂ）（ａ）に対応する従来の接続態様を示した図である。
【図１２５】変形例に係る主制御部メイン処理の流れを示すフローチャートであり、上記図１０に対応するフローチャートである。
【図１２６】主制御部メイン処理における初期設定２の流れを示すフローチャートである。
【図１２７】本発明に係る所定の出力端子の信号出力の一例を説明するための図である。
【図１２８】本発明に係る所定の出力端子の信号出力の一例を説明するための図である。
【図１２９】ユーザリセット時におけるシステムクロック信号、アドレス信号、データ信号、制御信号、およびリセット出力信号の変化を示した図である。
【発明を実施するための形態】
【０００９】
＜実施形態１＞
以下、図面を用いて、本発明の実施形態１に係る遊技台（パチンコ機１００）について詳細に説明する。
【００１０】
＜全体構成＞
まず、図１を用いて、本発明の実施形態１に係るパチンコ機１００の全体構成について説明する。なお、同図はパチンコ機１００を正面側（遊技者側）から見た外観斜視図である。
【００１１】
パチンコ機１００は、外部的構造として、外枠１０２と、本体１０４と、前面枠扉１０６と、球貯留皿付扉１０８と、発射装置１１０と、遊技盤２００と、をその前面に備える。
【００１２】
外枠１０２は、遊技機設置営業店に設けられた設置場所（島設備等）へと固定させるための縦長方形状から成る木製の枠部材である。本体１０４は、内枠と呼ばれ、外枠１０２の内部に備えられ、ヒンジ部１１２を介して外枠１０２に回動自在に装着された縦長方形状の遊技機基軸体となる部材である。また、本体１０４は、枠状に形成され、内側に空間部１１４を有している。また、本体１０４が開放された場合、本体１０４の開放を検出する不図示の内枠開放センサを備える。
【００１３】
前面枠扉１０６は、ロック機能付きで且つ開閉自在となるようにパチンコ機１００の前面側となる本体１０４の前面に対しヒンジ部１１２を介して装着され、枠状に構成されることでその内側を開口部とした扉部材である。なお、この前面枠扉１０６には、開口部にガラス製又は樹脂製の透明板部材１１８が設けられ、前面側には、スピーカ１２０や枠ランプ１２２が取り付けられている。前面枠扉１０６の後面と遊技盤２００の前面とで遊技領域１２４を区画形成する。また、前面枠扉１０６が開放された場合、前面枠扉１０６の開放を検出する不図示の前面枠扉開放センサを備える。
【００１４】
球貯留皿付扉１０８は、パチンコ機１００の前面において本体１０４の下側に対して、ロック機能付きで且つ開閉自在となるように装着された扉部材である。球貯留皿付扉１０８は、複数の遊技球（以下、単に「球」と称する場合がある）が貯留可能で且つ発射装置１１０へと遊技球を案内させる通路が設けられている上皿１２６と、上皿１２６に貯留しきれない遊技球を貯留する下皿１２８と、遊技者の操作によって上皿１２６に貯留された遊技球を下皿１２８へと排出させる球抜ボタン１３０と、遊技者の操作によって下皿１２８に貯留された遊技球を遊技球収集容器（俗称、ドル箱）へと排出させる球排出レバー１３２と、遊技者の操作によって発射装置１１０へと案内された遊技球を遊技盤２００の遊技領域１２４へと打ち出す球発射ハンドル１３４と、遊技者の操作によって各種演出装置２０６の演出態様に変化を与えるチャンスボタン１３６と、チャンスボタン１３６を発光させるチャンスボタンランプ１３８と、遊技店に設置されたカードユニット（ＣＲユニット）に対して球貸し指示を行う球貸操作ボタン１４０と、カードユニットに対して遊技者の残高の返却指示を行う返却操作ボタン１４２と、遊技者の残高やカードユニットの状態を表示する球貸表示部１４４と、を備える。また、下皿１２８が満タンであることを検出する不図示の下皿満タンセンサを備える。
【００１５】
発射装置１１０は、本体１０４の下方に取り付けられ、球発射ハンドル１３４が遊技者に操作されることによって回動する発射杆１４６と、遊技球を発射杆１４６の先端で打突する発射槌１４８と、を備える。
【００１６】
遊技盤２００は、前面に遊技領域１２４を有し、本体１０４の空間部１１４に臨むように、所定の固定部材を用いて本体１０４に着脱自在に装着されている。なお、遊技領域１２４は、遊技盤２００を本体１０４に装着した後、開口部から観察することができる。
【００１７】
図２は、図１のパチンコ機１００を背面側から見た外観図である。パチンコ機１００の背面上部には、上方に開口した開口部を有し、遊技球を一時的に貯留するための球タンク１５０と、この球タンク１５０の下方に位置し、球タンク１５０の底部に形成した連通孔を通過して落下する球を背面右側に位置する払出装置１５２に導くためのタンクレール１５４とを配設している。
【００１８】
払出装置１５２は、筒状の部材からなり、その内部には、不図示の払出モータとスプロケットと払出センサとを備えている。スプロケットは、払出モータによって回転可能に構成されており、タンクレール１５４を通過して払出装置１５２内に流下した遊技球を一時的に滞留させると共に、払出モータを駆動して所定角度だけ回転することにより、一時的に滞留した遊技球を払出装置１５２の下方へ１個ずつ送り出すように構成している。
【００１９】
払出センサは、スプロケットが送り出した遊技球の通過を検知するためのセンサであり、遊技球が通過しているときにハイまたはローの何れか一方の信号を、遊技球が通過していないときはハイまたはローの何れか他方の信号を払出制御部６００へ出力する。なお、この払出センサを通過した遊技球は、不図示の球レールを通過してパチンコ機１００の表側に配設した上皿１２６に到達するように構成しており、パチンコ機１００は、この構成により遊技者に対して球の払い出しを行う。
【００２０】
払出装置１５２の図中左側には、遊技全般の制御処理を行う主制御部３００を構成する主基板１５６を収納する主基板ケース１５８、主制御部３００が生成した処理情報に基づいて演出に関する制御処理を行う第１副制御部４００を構成する第１副基板１６０を収納する第１副基板ケース１６２、第１副制御部４００が生成した処理情報に基づいて演出に関する制御処理を行う第２副制御部５００を構成する第２副基板１６４を収納する第２副基板ケース１６６、遊技球の払出に関する制御処理を行う払出制御部６００を構成するとともに遊技店員の操作によってエラーを解除するエラー解除スイッチ１６８を備える払出基板１７０を収納する払出基板ケース１７２、遊技球の発射に関する制御処理を行う発射制御部６３０を構成する発射基板１７４を収納する発射基板ケース１７６、各種電気的遊技機器に電源を供給する電源制御部６６０を構成するとともに遊技店員の操作によって電源をオンオフする電源スイッチ１７８と電源投入時に操作されることによってＲＷＭクリア信号を主制御部３００に出力するＲＷＭクリアスイッチ１８０とを備える電源基板１８２を収納する電源基板ケース１８４、および払出制御部６００とカードユニットとの信号の送受信を行うＣＲインターフェース部１８６を配設している。
【００２１】
図３は、遊技盤２００を正面から見た略示正面図である。遊技盤２００には、外レール２０２と内レール２０４とを配設し、遊技球が転動可能な遊技領域１２４を区画形成している。
【００２２】
遊技領域１２４の略中央には、演出装置２０６を配設している。この演出装置２０６には、略中央に装飾図柄表示装置２０８を配設し、その周囲に、普通図柄表示装置２１０と、第１特別図柄表示装置２１２と、第２特別図柄表示装置２１４と、普通図柄保留ランプ２１６と、第１特別図柄保留ランプ２１８と、第２特別図柄保留ランプ２２０と、高確中ランプ２２２を配設している。なお、以下、普通図柄を「普図」、特別図柄を「特図」と称する場合がある。
【００２３】
演出装置２０６は、演出可動体２２４を動作して演出を行うものであり、詳細については後述する。装飾図柄表示装置２０８は、装飾図柄ならびに演出に用いる様々な表示を行うための表示装置であり、本実施例では液晶表示装置（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）によって構成する。この装飾図柄表示装置２０８は、左図柄表示領域２０８ａ、中図柄表示領域２０８ｂ、右図柄表示領域２０８ｃおよび演出表示領域２０８ｄの４つの表示領域に分割し、左図柄表示領域２０８ａ、中図柄表示領域２０８ｂおよび右図柄表示領域２０８ｃはそれぞれ異なった装飾図柄を表示し、演出表示領域２０８ｄは演出に用いる画像を表示する。さらに、各表示領域２０８ａ、２０８ｂ、２０８ｃ、２０８ｄの位置や大きさは、装飾図柄表示装置２０８の表示画面内で自由に変更することを可能としている。なお、装飾図柄表示装置２０８として液晶表示装置を採用しているが、液晶表示装置でなくとも、種々の演出や種々の遊技情報を表示可能に構成されていればよく、例えば、ドットマトリクス表示装置、７セグメント表示装置、有機ＥＬ（ＥｌｅｃｔｒｏＬｕｍｉｎｅｓｃｅｎｃｅ）表示装置、リール（ドラム）式表示装置、リーフ式表示装置、プラズマディスプレイ、プロジェクタを含む他の表示デバイスを採用してもよい。
【００２４】
普図表示装置２１０は、普図の表示を行うための表示装置であり、本実施例では７セグメントＬＥＤによって構成する。第１特図表示装置２１２および第２特図表示装置２１４は、特図の表示を行うための表示装置であり、本実施例では７セグメントＬＥＤによって構成する。
【００２５】
普図保留ランプ２１６は、保留している普図変動遊技（詳細は後述）の数を示すためのランプであり、本実施例では、普図変動遊技を所定数（例えば、２つ）まで保留することを可能としている。第１特図保留ランプ２１８および第２特図保留ランプ２２０は、保留している特図変動遊技（詳細は後述）の数を示すためのランプであり、本実施例では、特図変動遊技を所定数（例えば、４つ）まで保留することを可能としている。高確中ランプ２２２は、遊技状態が大当りが発生し易い高確率状態であること、または高確率状態になることを示すためのランプであり、遊技状態を大当りが発生し難い低確率状態から高確率状態にする場合に点灯し、高確率状態から低確率状態にする場合に消灯する。
【００２６】
また、この演出装置２０６の周囲には、所定の球進入口、例えば、一般入賞口２２６と、普図始動口２２８と、第１特図始動口２３０と、第２特図始動口２３２と、可変入賞口２３４を配設している。
【００２７】
一般入賞口２２６は、本実施例では遊技盤２００に複数配設しており、この一般入賞口２２６への入球を所定の球検出センサ（図示省略）が検出した場合（一般入賞口２２６に入賞した場合）、払出装置１５２を駆動し、所定の個数（例えば、１０個）の球を賞球として上皿１２６に排出する。上皿１２６に排出した球は遊技者が自由に取り出すことが可能であり、これらの構成により、入賞に基づいて賞球を遊技者に払い出すようにしている。なお、一般入賞口２２６に入球した球は、パチンコ機１００の裏側に誘導した後、遊技島側に排出する。本実施例では、入賞の対価として遊技者に払い出す球を「賞球」、遊技者に貸し出す球を「貸球」と区別して呼ぶ場合があり、「賞球」と「貸球」を総称して「球（遊技球）」と呼ぶ。
【００２８】
普図始動口２２８は、ゲートやスルーチャッカーと呼ばれる、遊技領域１２４の所定の領域を球が通過したか否かを判定するための装置で構成しており、本実施例では遊技盤２００の左側に１つ配設している。普図始動口２２８を通過した球は一般入賞口２２６に入球した球と違って、遊技島側に排出することはない。球が普図始動口２２８を通過したことを所定の球検出センサが検出した場合、パチンコ機１００は、普図表示装置２１０による普図変動遊技を開始する。
【００２９】
第１特図始動口２３０は、本実施例では遊技盤２００の中央に１つだけ配設している。この第１特図始動口２３０への入球を所定の球検出センサが検出した場合、後述する払出装置１５２を駆動し、所定の個数（例えば、３個）の球を賞球として上皿１２６に排出するとともに、第１特図表示装置２１２による特図変動遊技を開始する。なお、第１特図始動口２３０に入球した球は、パチンコ機１００の裏側に誘導した後、遊技島側に排出する。
【００３０】
第２特図始動口２３２は、電動チューリップ（電チュー）と呼ばれ、本実施例では第１特図始動口２３０の真下に１つだけ配設している。この第２特図始動口２３２は、左右に開閉自在な羽根部材２３２ａを備え、羽根部材２３２ａの閉鎖中は球の入球が不可能であり、普図変動遊技に当選し、普図表示装置２１０が当たり図柄を停止表示した場合に羽根部材２３２ａが所定の時間間隔、所定の回数で開閉する。第２特図始動口２３２への入球を所定の球検出センサが検出した場合、払出装置１５２を駆動し、所定の個数（例えば、４個）の球を賞球として上皿１２６に排出するとともに、第２特図表示装置２１４による特図変動遊技を開始する。なお、第２特図始動口２３２に入球した球は、パチンコ機１００の裏側に誘導した後、遊技島側に排出する。
【００３１】
可変入賞口２３４は、大入賞口またはアタッカーと呼ばれ、本実施例では遊技盤２００の中央部下方に１つだけ配設している。この可変入賞口２３４は、開閉自在な扉部材２３４ａを備え、扉部材２３４ａの閉鎖中は球の入球が不可能であり、特図変動遊技に当選して特図表示装置が大当たり図柄を停止表示した場合に扉部材２３４ａが所定の時間間隔（例えば、開放時間２９秒、閉鎖時間１．５秒）、所定の回数（例えば１５回）で開閉する。可変入賞口２３４への入球を所定の球検出センサが検出した場合、払出装置１５２を駆動し、所定の個数（例えば、１５個）の球を賞球として上皿１２６に排出する。なお、可変入賞口２３４に入球した球は、パチンコ機１００の裏側に誘導した後、遊技島側に排出する。
【００３２】
さらに、これらの入賞口や始動口の近傍には、風車と呼ばれる円盤状の打球方向変換部材２３６や、遊技釘２３８を複数個、配設していると共に、内レール２０４の最下部には、いずれの入賞口や始動口にも入賞しなかった球をパチンコ機１００の裏側に誘導した後、遊技島側に排出するためのアウト口を設けている。
【００３３】
このパチンコ機１００は、遊技者が上皿１２６に貯留している球を発射レールの発射位置に供給し、遊技者の操作ハンドルの操作量に応じた強度で発射モータを駆動し、発射杆１４６および発射槌１４８によって外レール２０２、内レール２０４を通過させて遊技領域１２４に打ち出す。そして、遊技領域１２４の上部に到達した球は、打球方向変換部材２３６や遊技釘２３８等によって進行方向を変えながら下方に落下し、入賞口（一般入賞口２２６、可変入賞口２３４）や始動口（第１特図始動口２３０、第２特図始動口２３２）に入賞するか、いずれの入賞口や始動口にも入賞することなく、または普図始動口２２８を通過するのみでアウト口２４０に到達する。
【００３４】
＜演出装置２０６＞
次に、パチンコ機１００の演出装置２０６について説明する。
【００３５】
この演出装置２０６の前面側には、遊技球の転動可能な領域にワープ装置２４２およびステージ２４４を配設し、遊技球の転動不可能な領域に演出可動体２２４を配設している。また、演出装置２０６の背面側には、装飾図柄表示装置２０８および遮蔽装置２４６（以下、扉と称する場合がある）を配設している。すなわち、演出装置２０６において、装飾図柄表示装置２０８および遮蔽手段は、ワープ装置２４２、ステージ２４４、および演出可動体２２４の後方に位置することとなる。
【００３６】
ワープ装置２４２は、演出装置２０６の左上方に設けたワープ入口２４２ａに入った遊技球を演出装置２０６の前面下方のステージ２４４にワープ出口２４２ｂから排出する。
ステージ２４４は、ワープ出口２４２ｂから排出された球や遊技盤２００の釘などによって乗り上げた球などが転動可能であり、ステージ２４４の中央部には、通過した球が第１特図始動口２３０へ入球し易くなるスペシャルルート２４４ａを設けている。
【００３７】
演出可動体２２４は、本実施形態では人間の右腕の上腕と前腕を模した上腕部２２４ａと前腕部２２４ｂとからなり、肩の位置に上腕部２２４ａを回動させる不図示の上腕モータと肘の位置に前腕部２２４ｂを回動させる不図示の前腕モータを備える。演出可動体２２４は、上腕モータと前腕モータによって装飾図柄表示装置２０８の前方を移動する。
【００３８】
遮蔽装置２４６は、格子状の左扉２４６ａおよび右扉２４６ｂからなり、装飾図柄表示装置２０８および前面ステージ２４４の間に配設する。左扉２４６ａおよび右扉２４６ｂの上部には、不図示の２つのプーリに巻き回したベルトをそれぞれ固定している。すなわち、左扉２４６ａおよび右扉２４６ｂは、モータによりプーリを介して駆動するベルトの動作に伴って左右にそれぞれ移動する。遮蔽手段は、左扉２４６ａおよび右扉２４６ｂを閉じた状態ではそれぞれの内側端部が重なり、遊技者が装飾図柄表示装置２０８を視認し難いように遮蔽する。左扉２４６ａおよび右扉２４６ｂを開いた状態ではそれぞれの内側端部が装飾図柄表示装置２０８の表示画面の外側端部と若干重なるが、遊技者は装飾図柄表示装置２０８の表示の全てを視認可能である。また、左扉２４６ａおよび右扉２４６ｂは、それぞれ任意の位置で停止可能であり、例えば、表示した装飾図柄がどの装飾図柄であるかを遊技者が識別可能な程度に、装飾図柄の一部だけを遮蔽するようなことができる。なお、左扉２４６ａおよび右扉２４６ｂは、格子の孔から後方の装飾図柄表示装置２０８の一部を視認可能にしてもよいし、格子の孔の障子部分を半透明のレンズ体で塞ぎ、後方の装飾図柄表示装置２０８による表示を漠然と遊技者に視認させるようにしてもよいし、格子の孔の障子部分を完全に塞ぎ（遮蔽し）、後方の装飾図柄表示装置２０８を全く視認不可にしてもよい。
【００３９】
＜制御部＞
次に、図４を用いて、このパチンコ機１００の制御部の回路構成について詳細に説明する。なお、同図は制御部の回路ブロック図を示したものである。
【００４０】
パチンコ機１００の制御部は、大別すると、主に遊技の進行（例えば、遊技者による操作の検出、遊技状態の遷移、遊技媒体の払出制御、当否判定など）を制御する主制御部３００と、主制御部３００が送信するコマンド信号（以下、単に「コマンド」と呼ぶ）に応じて主に演出の制御を行う第１副制御部４００と、第１副制御部４００より送信されたコマンドに基づいて各種機器を制御する第２副制御部５００と、主制御部３００が送信するコマンドに応じて主に遊技球の払い出しに関する制御を行う払出制御部６００と、遊技球の発射制御を行う発射制御部６３０と、パチンコ機１００に供給される電源を制御する電源制御部６６０と、によって構成している。
【００４１】
＜主制御部＞
まず、パチンコ機１００の主制御部３００について説明する。
【００４２】
主制御部３００は、主制御部３００の全体を制御する基本回路３０２を備えており、この基本回路３０２には、ＣＰＵ３０４と、制御プログラムや各種データを記憶するためのＲＯＭ３０６と、一時的にデータを記憶するためのＲＡＭ３０８と、各種デバイスの入出力を制御するためのＩ／Ｏ３１０と、時間や回数等を計測するためのカウンタタイマ３１２と、プログラム処理の異常を監視するＷＤＴ３１４を搭載している。なお、ＲＯＭ３０６やＲＡＭ３０８については他の記憶装置を用いてもよく、この点は後述する第１副制御部４００についても同様である。この基本回路３０２のＣＰＵ３０４は、水晶発振器３１６ｂが出力する所定周期のクロック信号をシステムクロックとして入力して動作する。
【００４３】
また、基本回路３０２には、水晶発振器３１６ａが出力するクロック信号を受信する度に０〜６５５３５の範囲で数値を変動させるハードウェア乱数カウンタとして使用しているカウンタ回路３１８（この回路には２つのカウンタを内蔵しているものとする）と、所定の球検出センサ、例えば各始動口、入賞口、可変入賞口を通過する遊技球を検出するセンサや、前面枠扉開放センサや内枠開放センサや下皿満タンセンサを含む各種センサ３２０が出力する信号を受信し、増幅結果や基準電圧との比較結果をカウンタ回路３１８および基本回路３０２に出力するためのセンサ回路３２２と、所定の図柄表示装置、例えば第１特図表示装置２１２や第２特図表示装置２１４の表示制御を行うための駆動回路３２４と、所定の図柄表示装置、例えば普図表示装置２１０の表示制御を行うための駆動回路３２６と、各種状態表示部３２８（例えば、普図保留ランプ２１６、第１特図保留ランプ２１８、第２特図保留ランプ２２０、高確中ランプ２２２等）の表示制御を行うための駆動回路３３０と、所定の可動部材、例えば第２特図始動口２３２の羽根部材２３２ａや可変入賞口２３４の扉部材２３４ａ等を開閉駆動する各種ソレノイド３３２を制御するための駆動回路３３４を接続している。
【００４４】
なお、第１特図始動口２３０に球が入賞したことを球検出センサ３２０が検出した場合には、センサ回路３２２は球を検出したことを示す信号をカウンタ回路３１８に出力する。この信号を受信したカウンタ回路３１８は、第１特図始動口２３０に対応するカウンタのそのタイミングにおける値をラッチし、ラッチした値を、第１特図始動口２３０に対応する内蔵のカウンタ値記憶用レジスタに記憶する。また、カウンタ回路３１８は、第２特図始動口２３２に球が入賞したことを示す信号を受信した場合も同様に、第２特図始動口２３２に対応するカウンタのそのタイミングにおける値をラッチし、ラッチした値を、第２特図始動口２３２に対応する内蔵のカウンタ値記憶用レジスタに記憶する。
【００４５】
さらに、基本回路３０２には、情報出力回路３３６を接続しており、主制御部３００は、この情報出力回路３３６を介して、外部のホールコンピュータ（図示省略）等が備える情報入力回路３５０にパチンコ機１００の遊技情報（例えば、遊技状態）を出力する。
【００４６】
また、主制御部３００には、電源制御部６６０から主制御部３００に供給している電源の電圧値を監視する電圧監視回路３３８を設けており、この電圧監視回路３３８は、電源の電圧値が所定の値（本実施例では９ｖ）未満である場合に電圧が低下したことを示す低電圧信号を基本回路３０２に出力する。
【００４７】
また、主制御部３００には、電源が投入されると起動信号（リセット信号）を出力する起動信号出力回路（リセット信号出力回路）３４０を設けており、ＣＰＵ３０４は、この起動信号出力回路３４０から起動信号を入力した場合に、遊技制御を開始する（詳細は後述する）。
【００４８】
また、主制御部３００は、第１副制御部４００にコマンドを送信するための出力インタフェースと、払出制御部６００にコマンドを送信するための出力インタフェースをそれぞれ備えており、この構成により、第１副制御部４００および払出制御部６００との通信を可能としている。なお、主制御部３００と第１副制御部４００および払出制御部６００との情報通信は一方向の通信であり、主制御部３００は第１副制御部４００および払出制御部６００にコマンド等の信号を送信できるように構成しているが、第１副制御部４００および払出制御部６００からは主制御部３００にコマンド等の信号を送信できないように構成している。
【００４９】
＜副制御部＞
次に、パチンコ機１００の第１副制御部４００について説明する。第１副制御部４００は、主に主制御部３００が送信したコマンド等に基づいて第１副制御部４００の全体を制御する基本回路４０２を備えており、この基本回路４０２には、ＣＰＵ４０４と、制御プログラムや各種演出データを記憶するためのＲＯＭ４０６と、一時的にデータを記憶するためのＲＡＭ４０８と、各種デバイスの入出力を制御するためのＩ／Ｏ４１０と、時間や回数等を計測するためのカウンタタイマ４１２を搭載している。この基本回路４０２のＣＰＵ４０４は、水晶発信器４１４が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。なお、ＲＯＭ４０６は、制御プログラムと各種演出データとを別々のＲＯＭに記憶させてもよい。
【００５０】
また、基本回路４０２には、スピーカ１２０（およびアンプ）の制御を行うための音源ＩＣ４１６と、各種ランプ４１８（例えば、チャンスボタンランプ１３８）の制御を行うための駆動回路４２０と、遮蔽装置２４６の駆動制御を行うための駆動回路４３２と、遮蔽装置２４６の現在位置を検出する遮蔽装置センサ４３０と、チャンスボタン１３６の押下を検出するチャンスボタン検出センサ４２６と、遮蔽装置センサ４３０やチャンスボタン検出センサ４２６からの検出信号を基本回路４０２に出力するセンサ回路４２８と、ＣＰＵ４０４からの信号に基づいてＲＯＭ４０６に記憶された画像データ等を読み出してＶＲＡＭ４３６のワークエリアを使用して表示画像を生成して装飾図柄表示装置２０８に画像を表示するＶＤＰ４３４（ビデオ・ディスプレイ・プロセッサー）と、を接続している。
【００５１】
次に、パチンコ機１００の第２副制御部５００について説明する。第２副制御部５００は、第１副制御部４００が送信した制御コマンドを入力インタフェースを介して受信し、この制御コマンドに基づいて第２副制御部５００の全体を制御する基本回路５０２を備えており、この基本回路５０２は、ＣＰＵ５０４と、一時的にデータを記憶するためのＲＡＭ５０８と、各種デバイスの入出力を制御するためのＩ／Ｏ５１０と、時間や回数等を計測するためのカウンタタイマ５１２を搭載している。基本回路５０２のＣＰＵ５０４は、水晶発振器５１４が出力する所定周期のクロック信号をシステムクロックとして入力して動作し、第２副制御部５００の全体を制御するための制御プログラム及びデータ、画像表示用のデータ等が記憶されたＲＯＭ５０６が設けられている。
【００５２】
また、基本回路５０２には、演出可動体２２４の駆動制御を行うための駆動回路５１６と、演出可動体２２４の現在位置を検出する演出可動体センサ４２４と、演出可動体センサ４２４からの検出信号を基本回路５０２に出力するセンサ回路５１８と、遊技盤用ランプ５３２の制御を行うための遊技盤用ランプ駆動回路５３０と、遊技台枠用ランプ５４２の制御を行うための遊技台枠用ランプ駆動回路５４０と、遊技盤用ランプ駆動回路５３０と遊技台枠用ランプ駆動回路５４０との間でシリアル通信による点灯制御を行うシリアル通信制御回路５２０と、を接続している。
【００５３】
＜払出制御部、発射制御部、電源制御部＞
次に、パチンコ機１００の払出制御部６００、発射制御部６３０、電源制御部６６０について説明する。
【００５４】
払出制御部６００は、主に主制御部３００が送信したコマンド等の信号に基づいて払出装置１５２の払出モータ６０２を制御すると共に、払出センサ６０４が出力する制御信号に基づいて賞球または貸球の払い出しが完了したか否かを検出すると共に、インタフェース部６０６を介して、パチンコ機１００とは別体で設けられたカードユニット６０８との通信を行う。
【００５５】
発射制御部６３０は、払出制御部６００が出力する、発射許可または停止を指示する制御信号や、球発射ハンドル１３４内に設けた発射強度出力回路が出力する、遊技者による球発射ハンドル１３４の操作量に応じた発射強度を指示する制御信号に基づいて、発射杆１４６および発射槌１４８を駆動する発射モータ６３２の制御や、上皿１２６から発射装置１１０に球を供給する球送り装置６３４の制御を行う。
【００５６】
電源制御部６６０は、パチンコ機１００に外部から供給される交流電源を直流化し、所定の電圧に変換して主制御部３００、第１副制御部４００等の各制御部や払出装置１５２等の各装置に供給する。さらに、電源制御部６６０は、外部からの電源が断たれた後も所定の部品（例えば主制御部３００のＲＡＭ３０８等）に所定の期間（例えば１０日間）電源を供給するための蓄電回路（例えば、コンデンサ）を備えている。なお、本実施形態では、電源制御部６６０から払出制御部６００と第２副制御部５００に所定電圧を供給し、払出制御部６００から主制御部３００と第２副制御部５００と発射制御部６３０に所定電圧を供給しているが、各制御部や各装置に他の電源経路で所定電圧を供給してもよい。
【００５７】
＜図柄の種類＞
次に、図５（ａ）〜（ｃ）を用いて、パチンコ機１００の第１特別図柄表示装置２１２、第２特別図柄表示装置２１４、装飾図柄表示装置２０８、普通図柄表示装置２１０が停止表示する特図および普図の種類について説明する。  同図（ａ）は特図の停止図柄態様の一例を示したものである。
【００５８】
第１特図始動口２３０に球が入球したことを第１始動口センサが検出したことを条件として特図１変動遊技が開始され、第２特図始動口２３２に球が入球したことを第２始動口センサが検出したことを条件として特図２変動遊技が開始される。特図１変動遊技が開始されると、第１特別図柄表示装置２１２は、７個のセグメントの全点灯と、中央の１個のセグメントの点灯を繰り返す「特図１の変動表示」を行う。また、特図２変動遊技が開始されると、第２特別図柄表示装置２１４は、７個のセグメントの全点灯と、中央の１個のセグメントの点灯を繰り返す「特図２の変動表示」を行う。これらの「特図１の変動表示」および「特図２の変動表示」が本発明にいう図柄の変動表示の一例に相当する。そして、特図１の変動開始前に決定した変動時間（本発明にいう変動時間が相当）が経過すると、第１特別図柄表示装置２１２は特図１の停止図柄態様を停止表示し、特図２の変動開始前に決定した変動時間（これも本発明にいう変動時間が相当）が経過すると、第２特別図柄表示装置２１４は特図２の停止図柄態様を停止表示する。したがって、「特図１の変動表示」を開始してから特図１の停止図柄態様を停止表示するまで、あるいは「特図２の変動表示」を開始してから特図２の停止図柄態様を停止表示するまでが本発明にいう図柄変動停止表示の一例に相当し、以下、この「特図１又は２の変動表示」を開始してから特図１又は２の停止図柄態様を停止表示するまでの一連の表示を図柄変動停止表示と称する。後述するように、図柄変動停止表示は複数回、連続して行われることがある。同図（ａ）には、図柄変動停止表示における停止図柄態様として「特図Ａ」から「特図Ｊ」までの１０種類の特図が示されており、図中の白抜きの部分が消灯するセグメントの場所を示し、黒塗りの部分が点灯するセグメントの場所を示している。
【００５９】
「特図Ａ」は１５ラウンド（１５Ｒ）特別大当たり図柄であり、「特図Ｂ」は１５Ｒ大当たり図柄である。本実施形態のパチンコ機１００では、後述するように、特図変動遊技における大当りか否かの決定はハードウェア乱数の抽選によって行い、特別大当りか否かの決定はソフトウェア乱数の抽選によって行う。大当りと特別大当りの違いは、次回の特図変動遊技で、大当りに当選する確率が高い（特別大当り）か低い（大当り）かの違いである。以下、この大当りに当選する確率が高い状態のことを特図高確率状態と称し、その確率が低い状態のことを特図低確率状態と称する。また、１５Ｒ特別大当たり遊技終了後および１５Ｒ大当たり遊技終了後はいずれも時短状態に移行する。時短については詳しくは後述するが、時短状態に移行する状態のことを普図高確率状態と称し、時短状態に移行しない状態のことを普図低確率状態と称する。１５Ｒ特別大当たり図柄である「特図Ａ」は、特図高確率普図高確率状態であり、１５Ｒ大当たり図柄である「特図Ｂ」は、特図低確率普図高確率状態である。これらの「特図Ａ」および「特図Ｂ」は、遊技者に付与する利益量が相対的に大きな利益量になる図柄である。
【００６０】
「特図Ｃ」は突然確変と称される２Ｒ大当たり図柄であり、特図高確率普図高確率状態である。すなわち、１５Ｒである「特図Ａ」と比べて、「特図Ｃ」は２Ｒである点が異なる。「特図Ｄ」は突然時短と称される２Ｒ大当たり図柄であり、特図低確率普図高確率状態である。すなわち、１５Ｒである「特図Ｂ」と比べて、「特図Ｄ」は２Ｒである点が異なる。
【００６１】
「特図Ｅ」は隠れ確変と称される２Ｒ大当たり図柄であり、特図高確率普図低確率状態である。「特図Ｆ」は突然通常と称される２Ｒ大当たり図柄であり、特図低確率普図低確率状態である。これら「特図Ｅ」および「特図Ｆ」はいずれも、２Ｒであるとともに、時短状態に移行しない状態である。
【００６２】
「特図Ｇ」は第１小当たり図柄であり、「特図Ｈ」は第２小当たり図柄であり、何れも特図低確率普図低確率状態である。ここにいう小当たりは、２Ｒ時短無し大当たりと同じものに相当する。すなわち、この「特図Ｇ」、「特図Ｈ」は「特図Ｆ」と同じ状態であるが、両者では装飾図柄表示装置２０８に表示される演出が異なり、あえて、同じ状態でも「特図Ｇ」、「特図Ｈ」と「特図Ｆ」を設けておくことで、遊技の興趣を高めている。
【００６３】
また、「特図Ｉ」は第１はずれ図柄であり、「特図Ｊ」は第２はずれ図柄であり、遊技者に付与する利益量が相対的に小さな利益量になる図柄である。
【００６４】
なお、本実施形態のパチンコ機１００には、１５Ｒ特別大当たり図柄として「特図Ａ」以外の図柄も用意されており、１５Ｒ大当たり図柄等の他の図柄についても同様である。
【００６５】
図５（ｂ）は装飾図柄の一例を示したものである。本実施形態の装飾図柄には、「装飾１」〜「装飾１０」の１０種類がある。第１特図始動口２３０または第２特図始動口２３２に球が入賞したこと、すなわち、第１特図始動口２３０に球が入球したことを第１始動口センサが検出したこと、あるいは第２特図始動口２３２に球が入球したことを第２始動口センサが検出したことを条件にして、装飾図柄表示装置２０８の左図柄表示領域２０８ａ、中図柄表示領域２０８ｂ、右図柄表示領域２０８ｃの各図柄表示領域に、「装飾１」→「装飾２」→「装飾３」→・・・・「装飾９」→「装飾１０」→「装飾１」→・・・の順番で表示を切り替える「装飾図柄の変動表示」を行う。そして、「特図Ｂ」の１５Ｒ大当たりを報知する場合には、図柄表示領域２０８ａ〜２０８ｃに１５Ｒ大当たりに対応する、同じ装飾図柄が３つ並んだ図柄組合せ（例えば「装飾１−装飾１−装飾１」や「装飾２−装飾２−装飾２」等）を停止表示する。「特図Ａ」の１５Ｒ特別大当たりを報知する場合には、同じ奇数の装飾図柄が３つ並んだ図柄組合せ（例えば「装飾３−装飾３−装飾３」や「装飾７−装飾７−装飾７」等）を停止表示する。
【００６６】
また、「特図Ｅ」の隠れ確変と称される２Ｒ大当たり、「特図Ｆ」の突然通常と称される２Ｒ大当たり、あるいは「特図Ｇ」の第１小当たり、「特図Ｈ」の第２小当たりを報知する場合には、「装飾１−装飾２−装飾３」を停止表示する。さらに、「特図Ｃ」の突然確変と称される２Ｒ大当たり、あるいは「特図Ｄ」の突然時短と称される２Ｒ大当たりを報知する場合には、「装飾１−装飾３−装飾５」を停止表示する。一方、「特図Ｉ」の第１はずれ、「特図Ｊ」の第２はずれを報知する場合には、図柄表示領域２０８ａ〜２０８ｃに同図（ｂ）に示す図柄組合せ以外の図柄組合せを停止表示する。
【００６７】
図５（ｃ）は普図の停止表示図柄の一例を示したものである。本実施形態の普図の停止表示態様には、当たり図柄である「普図Ａ」と、外れ図柄である「普図Ｂ」の２種類がある。普図始動口２２８を球が通過したことを上述のゲートセンサが検出したことに基づいて、普通図柄表示装置２１０は、７個のセグメントの全点灯と、中央の１個のセグメントの点灯を繰り返す「普図の変動表示」を行う。そして、普図変動遊技の当選を報知する場合には「普図Ａ」を停止表示し、普図変動遊技の外れを報知する場合には「普図Ｂ」を停止表示する。この同図（ｃ）においても、図中の白抜きの部分が消灯するセグメントの場所を示し、黒塗りの部分が点灯するセグメントの場所を示している。
【００６８】
＜主制御部の基本回路＞
次に、上述の主制御部３００の基本回路３０２について詳細に説明する。図６は、主制御部３００から基本回路３０２の主要部のみを抜き出して示した図である。
【００６９】
主制御部３００の基本回路３０２は、主制御部３００全体の制御を行うＣＰＵ３０４と、ＣＰＵ３０４が実行する制御プログラムやＣＰＵ３０４が参照する各種データを記憶するためのＲＯＭ３０６と、ＣＰＵ３０４が一時的にデータを記憶するためのＲＡＭ３０８と、を有している。
【００７０】
＜主制御部のＣＰＵの内蔵レジスタ＞
ＣＰＵ３０４は、カウンタ回路、タイマ回路、シリアル通信回路、乱数回路、演算回路、リセット／割込みコントローラ等を制御するための制御レジスタのほか、ＣＰＵ３０４が制御プログラムを実行する際に使用するレジスタなどの内蔵レジスタを備える。内蔵レジスタには、本発明の特徴点の一つであるＴレジスタ（特殊レジスタ）と、汎用レジスタと、プログラムカウンタ（ＰＣ）、命令レジスタ等が含まれる。汎用レジスタの種類は特に限定されないが、本実施形態では、Ｉレジスタ、Ａレジスタ、Ｆレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタ、Ｈレジスタ、Ｌレジスタの８ビットレジスタを備えており、ＢレジスタとＣレジスタ、ＤレジスタとＥレジスタ、ＨレジスタとＬレジスタは、それぞれ、１６ビット長の演算が可能なＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタの１６ビットレジスタ（ペアレジスタ）としても機能するように構成されている。
【００７１】
また、本実施形態では、内蔵デバイスが出力する割込みベクタ（所定のデバイスから読み込んだ割込みベクタ）の値を下位８ビット、Ｉレジスタ（割込みベクタレジスタ、インタラプトレジスタ）の内容を上位８ビットとした合計１６ビットのアドレスを、割込処理のアドレスとして読み込んで、後述する割込処理に分岐（ジャンプ）するように構成している。例えば、Ｉレジスタの値が００Ｈ、割込みベクタの値が６０Ｈのときに割込処理の要求が発生した場合には、００６０Ｈ（上位バイトがＩレジスタの００Ｈ、下位バイトが割込みベクタの６０Ｈ）で示されるアドレスに記憶された値（例えば、１２Ｈ）を下位バイト、続く００６１Ｈで示されるアドレスに記憶された値（例えば、０４Ｈ)を上位バイトとする２バイトのアドレス（例えば、０４１２Ｈ）がＰＣにロードされ、このアドレスを先頭アドレスとする割込処理に分岐（ジャンプ）するように構成している。
【００７２】
Ｆレジスタは、命令が実行されると、その実行結果に従ってＦレジスタ内のビット７から順にＳフラグ（サインフラグ）、Ｚフラグ（ゼロフラグ）、ＳＺフラグ（セカンドゼロフラグ）、Ｈフラグ（ハーフキャリフラグ）、ビット３（空きビット）、Ｐ／Ｖフラグ（パリティ／オーバーフローフラグ）、Ｎフラグ（サブトラクトフラグ）、Ｃフラグ（キャリーフラグ）の各フラグが、１または０に変化したり、あるいは変化しなかったりする。ＳＺフラグは、Ｚフラグが変化する命令ではＺフラグ同様に変化するとともに、Ｚ８０互換命令の全てのＬＤ命令、全ての１６ビット算術演算命令（ＩＮＣ命令、ＤＥＣ命令も含む）、ローテートシフト命令のＲＬＣＡ命令、ＲＬＡ命令、ＲＲＣＡ命令、ＲＲＡ命令、「ＩＮ  Ａ，（ｎ）」命令で変化する。
【００７３】
なお、１６ビット演算命令のＡＤＣ命令、ＳＢＣ命令は、Ｚフラグが変化し、他の命令ではＺフラグは変化せず、１６ビット演算命令の全てでＳＺフラグは変化する。また、「ＩＮ  Ａ，（ｎ）」命令は、ＳＺフラグが変化し、Ｚフラグが変化しない。Ｆレジスタ内のＳＺフラグや空きビットの位置は上記したビット以外のビットであってもよい。なお、後述する特殊命令の場合にＳＺフラグが変化しないようにしてもよい。
【００７４】
また、本実施形態では、Ａ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌの各汎用レジスタ（主レジスタ）に対応する補助レジスタ（裏レジスタ）として、Ａ´、Ｆ´、Ｂ´、Ｃ´、Ｄ´、Ｅ´、Ｈ´、Ｌ´の各汎用レジスタを備えているが、特殊レジスタであるＴレジスタのみ補助レジスタを備えていない。よって、Ｔレジスタの使用用途は限定され、Ｔレジスタの使用頻度は汎用レジスタに比べて低くなるため、不用意にＴレジスタの値が書き換えられてしまうような事態（Ｔレジスタの内容が破壊されてしまうような事態）を未然に防止できる場合がある。なお、補助レジスタの値は各種命令によって直接読み書きすることができず、特殊な交換命令（ＥＸ命令、ＥＸＸ命令）によって主レジスタの値と補助レジスタの値を交換することのみが許されている。ここでは、説明の便宜上、レジスタの値をＰＵＳＨ命令・ＰＯＰ命令等の命令で変更し易いレジスタを汎用レジスタとしたが、これに限らず、Ａレジスタ（アキュムレータ）とＦレジスタ（フラグレジスタ）など特別な役割を持つレジスタを汎用レジスタに含めなくてもよい。
【００７５】
また、ここでは、ＴレジスタをＣＰＵ３０４に内蔵する例を示したが、例えば、ＣＰＵ３０４の外部に設けてもよいし、ＣＰＵ３０４とは別体のＲＡＭ３０８の一部に設けてもよい。すなわち、Ｔレジスタは、制御プログラムを記憶するための記憶手段（本実施形態ではＲＯＭ３０６）と物理的に異なる場所に設けられていることが好ましい。さらには、Ｔレジスタに（後述する）特定の値を書き込む処理を行う制御部と、ＲＯＭ３０６から制御プログラムを読み出して遊技制御を行う制御部と、が異なることが好ましい。制御部を異ならせることで、制御プログラムの改造と特定の値の不正取得の両方を行うことを困難にすることができるためである。
【００７６】
＜主制御部のＣＰＵのメモリ空間とＩ／Ｏ空間＞
次に、図７を用いて、主制御部３００のＣＰＵ３０４のメモリ空間とＩ／Ｏ空間について説明する。なお、同図（ａ）はＣＰＵ３０４のメモリマップを示した図であり、同図（ｂ）はＣＰＵ３０４のＩ／Ｏマップを示した図である。
【００７７】
主制御部３００のＣＰＵ３０４は、上述の内蔵レジスタ、ＲＯＭ３０６、ＲＡＭ３０８などにアクセスするためのメモリ空間と、上述のＩ／Ｏ３１０との間で制御信号の入出力を行うためのＩ／Ｏ空間を有している。具体的には、同図（ａ）のメモリマップに示すように、主制御部３００のＲＯＭ３０６のアドレス／データ信号線は、メモリ空間のＲＯＭ領域（本実施形態では、００００Ｈ〜２ＦＦＦＨ（Ｈは１６進数を示す。以下、同じ）のうち、００００Ｈ〜２ＦＢＦＨ。２ＦＣ０Ｈ〜２ＦＦＦＨはプログラム管理エリア）に割り当てられ、ＣＰＵ３０４は、このＲＯＭ領域を指定してＲＯＭ３０６からのデータの読み出しを行う。また、本実施形態では、ＲＯＭ領域を第一領域〜第八領域の８つの領域に分けて管理を行っており、第一領域は００００Ｈから始まる領域としている。
【００７８】
また、内蔵レジスタのアドレス／データ信号線は、メモリ空間のレジスタエリア（本実施形態では、ＦＥ００Ｈ〜ＦＥＢＦＨ）に割り当てられ、ＣＰＵ３０４は、このレジスタエリアを介して内蔵レジスタからのデータの読み出しやレジスタへのデータの書き込みを行う。
【００７９】
また、ＲＡＭ３０８のアドレス／データ信号線は、メモリ空間のＲＷＭ領域（本実施形態では、Ｆ０００Ｈ〜Ｆ３ＦＦＨ）に割り当てられ、ＣＰＵ３０４は、このＲＷＭ領域を指定してＲＡＭ３０８からのデータの読み出しやＲＡＭ３０８へのデータの書き込みを行う。なお、メモリ空間の他の領域（本実施形態では、３０００Ｈ〜ＥＦＦＦＨ、Ｆ４０００Ｈ〜ＦＤＦＦＨ、ＦＥＣ０Ｈ〜ＦＦＦＦＨ）は非使用領域とされている。
【００８０】
また、同図（ｂ）のＩ／Ｏマップに示すように、主制御部３００のＩ／Ｏ３１０は、Ｉ／Ｏ空間のワークエリア（本実施形態では、００Ｈ〜ＢＦＨ）に割り当てられ、ＣＰＵ３０４は、このＩ／Ｏ空間を介して、Ｉ／Ｏ３１０との間で制御信号の入出力を行う。なお、Ｉ／Ｏ空間の他の領域（本実施形態では、０Ｃ０Ｈ〜ＦＦＨ）は非使用領域とされている。
【００８１】
＜初期化処理＞
次に、図８を用いて、主制御部３００の初期化処理について説明する。なお、同図は初期化処理の流れを示すフローチャートである。
【００８２】
上述したように、主制御部３００には、電源が投入されると起動信号（システムリセット信号）を出力する起動信号出力回路（リセット信号出力回路）３４０を設けている。この起動信号を入力した基本回路３０２のＣＰＵ３０４は、後述するセキュリティモードまたはユーザモードに移行する前に、この初期化処理を実行する。
【００８３】
具体的には、ステップＳ５１では、ＣＰＵ３０４に内蔵されたＴレジスタに、特定の値（本実施形態では、上述のＲＷＭ領域の先頭アドレス７Ｅ００Ｈの上位バイトであるＦ０Ｈ）を記憶する。ステップＳ５２では、Ｔレジスタ以外の他のレジスタに初期値をセットした後にステップＳ５３に進み、後述する主制御部メイン処理を実行する。
【００８４】
なお、Ｔレジスタに記憶する特定の値はＦ０Ｈに限定されないことは言うまでもなく、例えば、上述のレジスタエリアの先頭アドレス（本実施形態では２０００Ｈ）の上位バイトである２０ＨをＴレジスタに記憶するように構成すれば、後述するＲＡＭ３０８へのアクセスと同様の原理で、内蔵レジスタへのアクセス効率を高めることができる場合がある。また、第一のタイミングではＴレジスタにＲＷＭ領域の先頭アドレスの上位バイトを設定し、その後（または、その前）の第二のタイミングでＴレジスタにレジスタエリアの先頭アドレスの上位バイトを設定するように構成してもよい。また、所定条件が成立している場合（例えば、所定の端子にＬレベルの信号が入力されている場合）にはＴレジスタにＲＷＭ領域の先頭アドレスの上位バイトを設定し、所定条件が成立していない場合には、Ｔレジスタにレジスタエリアの先頭アドレスの上位バイトを設定するように構成してもよい。
【００８５】
また、この初期化処理において制御プログラムによらずに（自動的に）ＴレジスタにＲＷＭ領域の先頭アドレスの上位バイトを設定（または／およびＴレジスタにレジスタエリアの先頭アドレスの上位バイトを設定）し、この初期化処理後に制御プログラム（例えば、後述するステップＳ１０１の初期設定１処理、ステップＳ１０７の初期設定２処理、ステップＳ１１３の初期化処理など）によって（手動で）Ｔレジスタにレジスタエリアの先頭アドレスの上位バイトを設定（または／およびＴレジスタにＲＷＭ領域の先頭アドレスの上位バイトを設定）するように構成してもよい。
【００８６】
ここで、上述のリセット割込みには、システムリセット割込み（システムリセット端子に一定期間のリセット信号を入力するなど、外部イベントが要因となって行われるリセット割込み）と、ユーザリセット割込み（ユーザリセット端子に一定期間のリセット信号を入力するなど、外部イベントが要因となって行われるリセット割り込みや、ＷＤＴのタイムアウトや指定エリア外のアクセスなど、内部イベントが要因となって行われるリセット割込み）の２種類の割込みがある。システムリセット割込みによるリセットでは、制御レジスタや汎用レジスタを含む全ての内部回路が初期化され（例えば、レジスタに応じた初期値（例えばＩレジスタに００Ｈがセットされる））、ユーザリセット割込みによるリセットでは、内部回路の一部が初期化される。
【００８７】
図９は、システムリセット後の起動処理のタイムチャートである。システムリセット（ＸＳＲＳＴ端子に所定期間（例えば、システムクロックの４周期分の期間）以上のＬレベルの信号が入力された後にＨレベルの信号が入力された場合）による初期化処理を実行した後は、所定条件が成立している場合（例えば、所定の端子にＬレベルの信号が入力されている場合）はセキュリティモードに移行し、所定条件が成立していない場合はユーザモードに移行する。ここで、セキュリティモードは、ユーザプログラムの認証を行うモードである。具体的には、システムリセット入力時にユーザプログラムを基に計算された認証コードが正しいかどうかの再計算を行い、結果（セキュリティチェックの結果）がＯＫ（異常なし）の場合、このモードを終了して自動的にユーザモードに移行可能とし、セキュリティチェックの結果がＮＧ（異常あり）の場合、ＣＰＵ３０４が停止するように構成している。なお、認証コードは、ＲＯＭ書き込み時にユーザプログラム（以下、「制御プログラム」と称する場合がある）とともにＲＯＭ３０６に書き込まれる。
【００８８】
このセキュリティモードにおいてセキュリティチェックが終了した後、一定の期間の経過を待つ固定延長処理（以下、「固定遅延機能」ともいう）が終了したときにＸＲＳＴＯ端子からＨレベルのリセット出力を出力し、その後、ランダムな期間の経過を待つランダム延長処理（以下、「ランダム遅延機能」ともいう）が終了した場合にユーザモードに移行するように構成されている（固定延長処理とランダム延長処理を合わせて「セキュリティモード延長処理」や「セキュリティモード延長機能」ともいう）。ユーザモードは、ＲＯＭのリセットアドレス（上述のＲＯＭ領域の第一領域の先頭アドレスである００００Ｈ）からユーザプログラムを実行するモードであり、後述する主制御部メイン処理が開始される。なお、本実施形態では、ＣＰＵ３０４がユーザプログラムを実行する際に１回の処理（１ステート）で命令レジスタに読みこむデータのバイト長を１バイト（８ビット）長としているが、１ステート当りのデータ長は特に限定されず、例えば、１６ビット長や３２ビット長でもよい。
【００８９】
また、本実施形態では、上述の初期化処理はセキュリティモードやユーザモードへの移行前に（自動的に（制御プログラムによらずに））実行されるように構成しているが、セキュリティモードやユーザモードへの移行後に実行されるよう構成してもよい。また、リセットの種類（ユーザリセット割込みの場合には割込み要因の種類）によって、初期化処理の実行タイミングが異なるように構成してもよい。
【００９０】
具体的には、直前に発生したリセット要因を管理するためのレジスタ（内蔵レジスタのうちの一つである）を参照して、直前に発生したリセット要因が（１）システムリセットであるか否か、（２）ＷＤＴのタイムアウトによるユーザリセットであるか否か、（３）指定エリア外のアクセスによるユーザリセットであるか否か、を判定し、判定結果に応じて初期化処理の実行タイミングを決定するように構成してもよい。また、初期化処理でセットされる特定の値と初期値は、リセットの種類やレジスタの種類によって異なるように構成してもよい（例えば、汎用レジスタはシステムリセットでもユーザリセットでも初期値として００Ｈがセットされ、Ｔレジスタはシステムリセット時は特定の値としてＦ０Ｈがセットされるがユーザリセット時は初期化されないように構成してもよい）。
【００９１】
また、セキュリティモードの時間は、設定した時間分だけ延長することも、ランダムな時間分だけ延長することも可能である。ランダムな時間分だけ延長することにより、不正行為者はユーザプログラムの開始タイミングが狙いにくくなる場合がある。また、ユーザリセット（例えばＷＤＴのタイムアウトによるリセット）からユーザプログラムの実行開始までの時間をランダムな時間に設定可能な構成としてもよい。このような構成とすれば、ユーザプログラムの開始タイミングを狙った不正行為を未然に防止できる場合がある。
【００９２】
＜主制御部メイン処理＞
次に、図１０を用いて、主制御部３００のＣＰＵ３０４が実行する主制御部メイン処理について説明する。なお、同図は主制御部メイン処理の流れを示すフローチャートである。
【００９３】
ステップＳ１０１では、初期設定１を行う。この初期設定１では、ＣＰＵ３０４のスタックポインタ（ＳＰ）へのスタック初期値の設定（仮設定）、割込マスクの設定、Ｉ／Ｏ３１０の初期設定、ＲＡＭ３０８に記憶する各種変数の初期設定、ＷＤＴ３１４の起動やタイマアウト時間の設定、Ｔレジチェック処理（詳細は後述）等を行う。本実施形態では、ＷＤＴ３１４のタイムアウト時間として３２．８ｍｓに相当する数値を初期値として設定する。なお、ここでは、ＷＤＴ３１４の起動とタイムアウト時間の設定を、主制御部メイン処理のメインループに入る直前で行う例を示したが、例えば、上述の初期化処理など、他の処理の中で行ってもよい。また、ステップＳ１０３では、ＷＤＴ３１４のカウンタの値をクリアし、ＷＤＴ３１４による時間計測を再始動（リスタート）する。なお、ＷＤＴ３１４のクリア＆リスタートをメインループ開始直後に行う例を示したが、例えば、後述する主制御部タイマ割込処理の中で定期的に行ってもよい。
【００９４】
また、図示は省略するが、基本回路３０２は、ＷＤＴ３１４を制御するレジスタとして、スタートレジスタとクリアレジスタを備えている。スタートレジスタは、ＷＤＴ３１４の起動／停止を制御するための８ビット長のレジスタであり、ＷＤＴ３１４を起動するときには起動を指示する値（例えば、ＣＣｈ）を設定し（書き込み）、ＷＤＴ３１４を停止するときには停止を指示する値（例えば、３３ｈ）を設定するように構成されている。
【００９５】
また、このスタートレジスタは、リセット時にプログラム管理エリアに「ソフトウェアによる起動」を設定（選択）したときに有効となるレジスタであり、その場合、停止を指示する値（例えば、３３ｈ）が初期値として設定される。したがって、「ソフトウェアによる起動」を設定（選択）したときにＷＤＴ３１４を起動するためには、遊技制御プログラムによって（手動で）起動を指示する値（例えば、ＣＣｈ）を設定する必要がある。一方、リセット時に「ソフトウェアによる起動」を設定（選択）しなかったときは、スタートレジスタには、起動を指示する値（例えば、ＣＣｈ）が遊技制御プログラムによらずに（自動的に）初期値として設定され、遊技制御プログラムによらずに（自動的に）ＷＤＴ３１４が起動される。
【００９６】
クリアレジスタは、ＷＤＴ３１４のクリアとリスタートを制御するための８ビット長のレジスタであり、所定の第一の値（例えば、５５ｈ）を設定した後に、所定の第二の値（例えば、ＡＡｈ）を設定したときにＷＤＴ３１４がクリアされ、直後にリスタートされる。なお、クリアレジスタの値を読み込んだときは、所定の固定値（例えば、ＦＦｈ）が読みだされる。また、詳細は後述するが、本実施形態では、ＣＰＵ３０４の所定記憶領域に、４ビット長の設定値データ００００Ｂ〜１０００Ｂのいずれかを予め設定することによって、ＷＤＴ３１４のタイムアウト時間を自由に設定できるように構成されている（図１１５参照）。
【００９７】
ステップＳ１０５では、低電圧信号がオンであるか否か、すなわち、電圧監視回路３３８が、電源制御部６６０から主制御部３００に供給している電源の電圧値が所定の値（本実施形態では９ｖ）未満である場合に電圧が低下したことを示す低電圧信号を出力しているか否かを監視する。そして、低電圧信号がオンの場合（ＣＰＵ３０４が電源の遮断を検知した場合）にはステップＳ１０３に戻り、低電圧信号がオフの場合（ＣＰＵ３０４が電源の遮断を検知していない場合）にはステップＳ１０７に進む。なお、電源が投入された直後で未だ上記所定の値（９Ｖ）に達しない場合にもステップＳ１０３に戻り、供給電圧がその所定の値以上になるまで、ステップＳ１０５は繰り返し実行される。
【００９８】
ステップＳ１０７では、初期設定２を行う。この初期設定２では、後述する主制御部タイマ割込処理を定期毎に実行するための周期を決める数値をカウンタタイマ３１２に設定する処理、Ｉ／Ｏ３１０の所定のポート（例えば試験用出力ポート、第１副制御部４００への出力ポート）からクリア信号を出力する処理、ＲＡＭ３０８への書き込みを許可する設定等を行う。
【００９９】
ステップＳ１０９では、電源の遮断前（電断前）の状態に復帰するか否かの判定を行い、電断前の状態に復帰しない場合（主制御部３００の基本回路３０２を初期状態にする場合）には初期化処理（ステップＳ１１３）に進む。
【０１００】
具体的には、最初に、電源基板に設けたＲＷＭクリアスイッチ１８０を遊技店の店員などが操作した場合に送信されるＲＡＭクリア信号がオン（操作があったことを示す）であるか否か、すなわちＲＡＭクリアが必要であるか否かを判定し、ＲＡＭクリア信号がオンの場合（ＲＡＭクリアが必要な場合）には、基本回路３０２を初期状態にすべくステップＳ１１３に進む。一方、ＲＡＭクリア信号がオフの場合（ＲＡＭクリアが必要でない場合）には、ＲＡＭ３０８に設けた電源ステータス記憶領域に記憶した電源ステータスの情報を読み出し、この電源ステータスの情報がサスペンドを示す情報であるか否かを判定する。そして、電源ステータスの情報がサスペンドを示す情報でない場合には、基本回路３０２を初期状態にすべくステップＳ１１３に進み、電源ステータスの情報がサスペンドを示す情報である場合には、ＲＡＭ３０８の所定の領域（例えば全ての領域）に記憶している１バイトデータを初期値が０である１バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果が特定の値（例えば０）であるか否か（チェックサムの結果が正常であるか否か）を判定する。そして、チェックサムの結果が特定の値（例えば０）の場合（チェックサムの結果が正常である場合）には電断前の状態に復帰すべくステップＳ１１１に進み、チェックサムの結果が特定の値（例えば０）以外である場合（チェックサムの結果が異常である場合）には、パチンコ機１００を初期状態にすべくステップＳ１１３に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップＳ１１３に進む。
【０１０１】
ステップＳ１１１では、復電時処理を行う。この復電時処理では、電断時にＲＡＭ３０８に設けられたスタックエリアに記憶しておいたスタックポインタの値を読み出し、スタックポインタに再設定（本設定）する。また、後述するように、電断時にＲＡＭ３０８に設けられたレジスタ退避領域に記憶しておいた所定のレジスタの値を読み出し、これらのレジスタに再設定した後、割込許可（ＥＩ）の設定を行う。以降、ＣＰＵ３０４が、再設定後のスタックポインタやレジスタに基づいて制御プログラムを実行する結果、パチンコ機１００は電源断時の状態に復帰する。すなわち、電断直前にタイマ割込処理（後述）に分岐する直前に行った（ステップＳ１１５内の所定の）命令の次の命令から処理を再開する。
【０１０２】
本実施形態に係るＣＰＵ３０４は、ＰＵＳＨ命令として、「ＰＵＳＨ  ＴＩ」命令、「ＰＵＳＨ  ＡＬＬ」命令、「ＰＵＳＨ  ＧＲＰ」命令を備えている。「ＰＵＳＨ  ＴＩ」命令は、Ｔ、Ｉレジスタに記憶されている値を上述のスタックエリアに退避させる命令であり、具体的には、ＰＵＳＨ命令実行時のスタックポインタをＳＰとした場合、ＰＵＳＨ命令実行時にＴレジスタに記憶されている値を、（ＳＰ−１）で示されるアドレスに退避させ、ＰＵＳＨ命令実行時にＩレジスタに記憶されている値を、（ＳＰ−２）で示されるアドレスに退避させる。また、「ＰＵＳＨ  ＡＬＬ」命令は、ＰＵＳＨ命令実行時にＴ、Ｉ、Ａ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌ、ＩＸＨ、ＩＸＬ、ＩＹＨ、ＩＹＬレジスタに記憶されている値を、この順番でスタックエリアに退避させる命令である。また、「ＰＵＳＨ  ＧＲＰ」命令は、ＰＵＳＨ命令実行時にＡ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌレジスタに記憶されている値を、この順番でスタックエリアに退避させる命令である。
【０１０３】
また、ＣＰＵ３０４は、ＰＯＰ命令として、「ＰＯＰ  ＴＩ」命令、「ＰＯＰ  ＡＬＬ」命令、「ＰＯＰ  ＧＲＰ」命令を備えている。「ＰＯＰ  ＴＩ」命令は、スタックエリアに記憶されている値をＴ、Ｉレジスタに復帰させる（ＲＡＭ３０８の記憶領域からＴ、Ｉレジスタにデータをロードする）命令であり、具体的には、ＰＯＰ命令実行時のスタックポインタをＳＰとした場合、ＰＯＰ命令実行時に（ＳＰ−１）で示されるアドレスに記憶されている値をＴレジスタに復帰させ、ＰＯＰ命令実行時に（ＳＰ−２）で示されるアドレスに記憶されている値をＩレジスタに復帰させる。また、「ＰＯＰ  ＡＬＬ」命令は、ＰＯＰ命令実行時にスタックエリアに記憶されている値を、Ｔ、Ｉ、Ａ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌ、ＩＸＨ、ＩＸＬ、ＩＹＨ、ＩＹＬレジスタに復帰させる命令である。また、「ＰＵＳＨ  ＧＲＰ」命令は、ＰＯＰ命令実行時にスタックエリアに記憶された値を、Ａ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌレジスタに復帰させる命令である。
【０１０４】
なお、Ｔレジスタをスタックエリアから復帰させるためには、「ＰＯＰ  ＴＩ」命令を使用する必要があるが、Ｉレジスタを使用しない場合でも、Ｉレジスタにもスタックエリアの値が復帰されてしまうことになる。このように、Ｔレジスタをオペランドとする命令の汎用性を無くすことによって（使い難くすることによって）、Ｔレジスタをオペランドとする命令が多用されることを未然に防ぐことができ、Ｔレジスタの値が不用意に書き替ってしまうような事態（Ｔレジスタの内容が破壊されてしまうような事態）を回避できる場合がある。
【０１０５】
また、ＣＰＵ３０４は、割込み要求の受付を許可する命令（ＥＩ命令）と、割込み要求の受付を禁止する命令（ＤＩ命令）を備えており、上述の「ＰＯＰ  ＴＩ」命令は、ＤＩ命令によって割込み要求の受付が禁止されている場合にのみ実行するように構成され、ＥＩ命令によって割込み要求の受付が許可されている場合に実行しないように構成されている。このように、割込み要求の受付が許可されている状態において「ＰＯＰ  ＴＩ」命令の実行しないように構成すれば、「ＰＯＰ  ＴＩ」命令の実行によって、割込みベクタレジスタやインタラプトレジスタとして機能するＩレジスタに、スタックエリアから予期しない値が復帰されてしまうおそれがなく、割込み処理を確実に実行することで信頼性の高い遊技制御を行うことができる場合がある。
【０１０６】
また、ＣＰＵ３０４は、上述の命令の他にも、８ビットロード（転送）命令、１６ビットロード（転送）命令、スタック操作命令（１６ビットロード命令の一種）、８ビット算術論理演算命令、１６ビット算術論理演算命令、乗算・除算命令、アキュムレータ操作命令、ＭＰＵコントロール命令、交換命令、ブロック転送命令、ブロックサーチ命令、ビット操作命令、ローテート・シフト命令、無条件ジャンプ命令・条件付きジャンプ命令、コール命令・リターン命令、入出力命令、複合命令などを備えている。
【０１０７】
本実施形態では、電断時には、「ＰＵＳＨ  ＧＲＰ」命令によってＴ、Ｉレジスタを含まない、Ａ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌレジスタの値をスタックエリアに退避（記憶）させ、復電時には、「ＰＯＰ  ＧＲＰ」命令によってＴ、Ｉレジスタを含まない、Ａ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌレジスタの値をスタックエリアから復帰させるように構成しており、Ｔレジスタについては「ＰＵＳＨ  ＧＲＰ」命令による退避と「ＰＯＰ  ＧＲＰ」命令による復帰の両方ができないように構成している（これらの命令のオペランドとしてＴレジスタが指定できないように構成している）。また、本実施形態では、加算命令（ＩＮＣ命令）や減算命令（ＤＥＣ命令）のオペランドとしてもＴレジスタが指定できないように構成している。後述するように、ＴレジスタはＲＡＭ３０８へのアクセスにおいて重要な役割を果たす特殊レジスタであるが、コーディングミスなどによってＴレジスタに予期しない値が設定されてしまうような事態を確実に回避することができ、安定した遊技制御が可能である。また、ＴレジスタについてはＰＵＳＨ命令による退避とＰＯＰ命令による復帰の両方を行わないため、電断時や復帰時の処理を速めることができる場合がある。
【０１０８】
また、主制御部３００における基本回路３０２に搭載されているＲＡＭ３０８には、送信情報記憶領域が設けられている。このステップＳ１１１では、その送信情報記憶領域に、復電コマンドをセットする。この復電コマンドは、電源断時の状態に復帰したことを表すコマンドであり、後述する、主制御部３００のタイマ割込処理におけるステップＳ２３３において、第１副制御部４００へ送信される。また、ステップＳ１１６では、ＲＡＭクリアの場合はＲＡＭクリアした後に、ＲＡＭクリアしない場合は各レジスタへデータを復帰させた後に、ＷＤＴ３１４の起動開始を行う。
【０１０９】
ステップＳ１１３では、初期化処理を行う。この初期化処理では、割込禁止（ＤＩ）の設定、スタックポインタへのスタック初期値の設定（本設定）、ＲＡＭ３０８の全ての記憶領域の初期化などを行う。さらにここで、主制御部３００のＲＡＭ３０８に設けられた送信情報記憶領域に正常復帰コマンドをセットする。この正常復帰コマンドは、主制御部３００の初期化処理（ステップＳ１１３）が行われたことを表すコマンドであり、復電コマンドと同じく、主制御部３００のタイマ割込処理におけるステップＳ２３３において、第１副制御部４００へ送信される。また、ステップＳ１１４では、ＲＡＭクリアの場合はＲＡＭクリアした後に、ＲＡＭクリアしない場合は各レジスタへデータを復帰させた後に、ＷＤＴ３１４の起動開始を行う。
【０１１０】
ステップＳ１１５では、割込禁止の設定を行った後、基本乱数初期値更新処理を行う。この基本乱数初期値更新処理では、普図当選乱数カウンタ、および特図乱数値カウンタの初期値をそれぞれ生成するための２つの初期値生成用乱数カウンタと、普図タイマ乱数値、および特図タイマ乱数値それぞれを生成するための２つの乱数カウンタを更新する。例えば、普図タイマ乱数値として取り得る数値範囲が０〜１００とすると、ＲＡＭ３０８に設けた普図タイマ乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に１を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に１を加算した結果が１０１であれば０を元の乱数カウンタ記憶領域に記憶する。他の初期値生成用乱数カウンタ、乱数カウンタもそれぞれ同様に更新する。なお、初期値生成用乱数カウンタは、後述するステップＳ２０７でも更新する。主制御部３００は、所定の周期ごとに開始するタイマ割込処理を行っている間を除いて、ステップＳ１１５の処理を繰り返し実行する。
【０１１１】
＜Ｔレジチェック処理＞
図１１（ａ）は、初期設定１で行うＴレジチェック処理の流れを示すフローチャートであり、同図（ｂ）は、Ｔレジチェック処理のプログラムリストの一例である。
【０１１２】
このＴレジチェック処理のステップＳ１３１では、Ｔレジスタの値をＡレジスタにセットし（ＬＤ  Ａ，Ｔ）、次のステップＳ１３２では、Ａレジスタの値が特定の値（Ｆ０Ｈ）に一致するか否かを判定し（ＳＵＢ  Ｆ０Ｈ、ＪＰ  Ｚ，ＳＥＩＪＹＯＵ）、一致しない場合（異常の場合；Ａレジスタの値から特定の値（Ｆ０Ｈ）を減算した値が０以外の値となりＺフラグが０になった場合）にはステップＳ１３３に進み、一致した場合（正常の場合；Ａレジスタの値から特定の値（Ｆ０Ｈ）を減算した値が０となりＺフラグが１になった場合）には、Ｔレジスタの値が正常であると判定してＴレジチェック処理を終了し、後続の処理に進む。ステップＳ１３３では、Ｔレジスタの値が異常であると判定してＴレジスタに特定の値（Ｆ０Ｈ）をセットした後に（ＬＤ  Ｔ，Ｆ０Ｈ）、Ｔレジチェック処理を終了して後続の処理に進む。
【０１１３】
なお、Ｔレジチェック処理は図１１に示す処理に限定されるものではなく、例えば、図１１に示すような処理でもよい。図１１（ａ）は、変形例に係るＴレジチェック処理の流れを示すフローチャートであり、同図（ｂ）は、変形例に係るＴレジチェック処理のプログラムリストの一例である。
【０１１４】
この変形例に係るＴレジチェック処理では、上記ステップＳ１３３の処理に替えて、ステップＳ１３５のエラー処理を行うように構成している。具体的には、ステップＳ１３２においてＡレジスタの値が特定の値（Ｆ０Ｈ）に一致しないと判定した場合（異常の場合；Ａレジスタの値から特定の値（Ｆ０Ｈ）を減算した値が０以外の値となりＺフラグが０になった場合）にはステップＳ１３５に進みエラー処理を行う（ＳＵＢ  Ｆ０Ｈ、ＪＰ  ＮＺ，ｍｏＥｒｒoｒ）。このエラー処理の内容は特に限定されないが、例えば、無限ループに入って後続の主制御部メイン処理を実行しないように構成したり、後続の主制御部メイン処理において液晶表示装置やスピーカなどを用いてエラーを報知したりすることが考えられる。
【０１１５】
＜ＬＤ命令＞
次に、主制御部３００が備えるＬＤ命令について説明する。ＬＤ命令（ＬＤ  ＯＰ１，ＯＰ２）は、第１オペランドＯＰ１で示されるレジスタに、第２オペランドＯＰ２で示されるレジスタに記憶された値（または、第２オペランドＯＰ２で示されるイミディエイト値（即値または直値ともいう。以下同じ）を記憶するための命令である。例えば、上述のＴレジチェック処理の実行前にＴレジスタにＦ０Ｈが記憶されている状態で「ＬＤ  Ａ，Ｔ」の命令を実行した場合、Ａレジスタには第２オペランドで示されるＴレジスタに記憶された値、すなわちＦ０Ｈが記憶される。また、「ＬＤ  Ａ，Ｆ０Ｈ」の命令を実行した場合にも、Ａレジスタには第２オペランドで示されるイミディエイト値、すなわちＦ０Ｈが記憶される。
【０１１６】
一方、第１オペランドＯＰ１をＴレジスタとするＬＤ命令では、第２オペランドはイミディエイト値に限定されており、第２オペランドにレジスタを設定することは禁止されている（機械語にアセンブルされる過程でエラーとなりアセンブルすることができない）。したがって、上述のＴレジチェック処理で説明したように、第２オペランドをイミディエイト値とするＬＤ命令（先の例では「ＬＤ  Ｔ，Ｆ０Ｈ」）のプログラミング（コーディング）は認められるが、第２オペランドにレジスタを設定するＬＤ命令（例えば「ＬＤ  Ｔ，Ａ」）のプログラミング（コーディング）は認められない。このように、第１オペランドＯＰ１をＴレジスタとするＬＤ命令では、Ｔレジスタに対して直値でデータを転送するよう構成されているので、セットしているデータを確認し易くなる場合がある。また、Ｔレジスタに対して他のレジスタを介してデータを転送できないように構成されているので、Ｔレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。
【０１１７】
図１３はプログラムリストからＬＤ命令のみを抜き出して示した図である。この例では、５つのＬＤ命令を使用しているが、例えば、（４）のＬＤ命令「ＬＤ  Ｂ，Ａ」の実行後にＢレジスタに記憶される値についてデバッグでトレースを行う場合を考える。この場合、ＬＤ命令「ＬＤ  Ｂ，Ａ」の第２オペランドであるＡレジスタについて、プログラムリストを遡ってトレースすることが必要であるが、例えば、「ＬＤ  Ａ」という検索キーでプログラムリストの検索を行った場合、（１）のＬＤ命令「ＬＤ  Ａ，Ｂ」に加えて（３）のＬＤ命令「ＬＤ  Ａ，Ｈ」がヒットすることになる。すなわち、第１オペランドにＡレジスタを設定したＬＤ命令は、第２オペランドにレジスタを設定することと、第２オペランドをイミディエイト値とすることの両方が認められているため使用頻度が高く、コーディングの見直し作業や、デバッグ（例えば、Ａレジスタのトレースなど）の効率を低下させる一因となり得る。なお、ここでは、最も利用頻度が高いＡレジスタについて説明したが、Ｔレジスタを除く他のレジスタを利用した場合にも同様のことが言える。
【０１１８】
一方、第１オペランドにＴレジスタを設定したＬＤ命令は、第２オペランドにレジスタを設定することが禁止され、第２オペランドをイミディエイト値とすることのみが認められているため、Ａレジスタを利用したＬＤ命令よりも相対的に使用頻度が低く、コーディングの見直し作業や、デバッグ（例えば、Ｔレジスタのトレースなど）の効率を高めることが可能となり、制御プログラムの開発効率が向上する場合がある。
【０１１９】
＜主制御部タイマ割込処理＞
次に、図１４を用いて、主制御部３００のＣＰＵ３０４が実行する主制御部タイマ割込処理について説明する。なお、同図は主制御部タイマ割込処理の流れを示すフローチャートである。
【０１２０】
主制御部３００は、所定の周期（本実施形態では約２ｍｓに１回）でタイマ割込信号を発生するカウンタタイマ３１２を備えており、このタイマ割込信号を契機として主制御部タイマ割込処理を所定の周期で開始する。
【０１２１】
ステップＳ２０１では、タイマ割込開始処理を行う。このタイマ割込開始処理では、ＣＰＵ３０４の各レジスタの値をスタック領域に一時的に退避する処理などを行う。
【０１２２】
ステップＳ２０３では、ＷＤＴ３１４のカウント値が初期設定値（本実施形態では３２．８ｍｓ）を超えてＷＤＴ割込が発生しないように（処理の異常を検出しないように）、ＷＤＴを定期的に（本実施形態では、主制御部タイマ割込の周期である約２ｍｓに１回）リスタートを行う。
【０１２３】
ステップＳ２０５では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、Ｉ／Ｏ３１０の入力ポートを介して、上述の前面枠扉開放センサや内枠開放センサや下皿満タンセンサ、各種の球検出センサを含む各種センサ３２０の検出信号を入力して検出信号の有無を監視し、ＲＡＭ３０８に各種センサ３２０ごとに区画して設けた信号状態記憶領域に記憶する。球検出センサの検出信号を例にして説明すれば、前々回のタイマ割込処理（約４ｍｓ前）で検出した各々の球検出センサの検出信号の有無の情報を、ＲＡＭ３０８に各々の球検出センサごとに区画して設けた前回検出信号記憶領域から読み出し、この情報をＲＡＭ３０８に各々の球検出センサごとに区画して設けた前々回検出信号記憶領域に記憶し、前回のタイマ割込処理（約２ｍｓ前）で検出した各々の球検出センサの検出信号の有無の情報を、ＲＡＭ３０８に各々の球検出センサごとに区画して設けた今回検出信号記憶領域から読み出し、この情報を上述の前回検出信号記憶領域に記憶する。また、今回検出した各々の球検出センサの検出信号を、上述の今回検出信号記憶領域に記憶する。
【０１２４】
また、ステップＳ２０５では、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域の各記憶領域に記憶した各々の球検出センサの検出信号の有無の情報を比較し、各々の球検出センサにおける過去３回分の検出信号の有無の情報が入賞判定パターン情報と一致するか否かを判定する。一個の遊技球が一つの球検出センサを通過する間に、約２ｍｓという非常に短い間隔で起動を繰り返すこの主制御部タイマ割込処理は何回か起動する。このため、主制御部タイマ割込処理が起動する度に、上述のステップＳ２０５では、同じ遊技球が同じ球検出センサを通過したことを表す検出信号を確認することになる。この結果、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域それぞれに、同じ遊技球が同じ球検出センサを通過したことを表す検出信号が記憶される。すなわち、遊技球が球検出センサを通過し始めたときには、前々回検出信号無し、前回検出信号有り、今回検出信号有りになる。本実施形態では、球検出センサの誤検出やノイズを考慮して、検出信号無しの後に検出信号が連続して２回記憶されている場合には、入賞があったと判定する。図４に示す主制御部３００のＲＯＭ３０６には、入賞判定パターン情報（本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報）が記憶されている。このステップＳ２０５では、各々の球検出センサにおいて過去３回分の検出信号の有無の情報が、予め定めた入賞判定パターン情報（本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報）と一致した場合に、一般入賞口２２６、可変入賞口２３４、第１特図始動口２３０、および第２特図始動口２３２への入球、または普図始動口２２８の通過があったと判定する。すなわち、これらの入賞口２２６、２３４やこれらの始動口２３０、２３２、２２８への入賞があったと判定する。例えば、一般入賞口２２６への入球を検出する一般入賞口センサにおいて過去３回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致した場合には、一般入賞口２２６へ入賞があったと判定し、以降の一般入賞口２２６への入賞に伴う処理を行うが、過去３回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致しなかった場合には、以降の一般入賞口２２６への入賞に伴う処理を行わずに後続の処理に分岐する。なお、主制御部３００のＲＯＭ３０６には、入賞判定クリアパターン情報（本実施形態では、前々回検出信号有り、前回検出信号無し、今回検出信号無しであることを示す情報）が記憶されている。入賞が一度あったと判定した後は、各々の球検出センサにおいて過去３回分の検出信号の有無の情報が、その入賞判定クリアパターン情報に一致するまで入賞があったとは判定せず、入賞判定クリアパターン情報に一致すれば、次からは上記入賞判定パターン情報に一致するか否かの判定を行う。
【０１２５】
ステップＳ２０７およびステップＳ２０９では、基本乱数初期値更新処理および基本乱数更新処理を行う。これらの基本乱数初期値更新処理および基本乱数更新処理では、上記ステップＳ１１５で行った初期値生成用乱数カウンタの値の更新を行い、次に主制御部３００で使用する、普図当選乱数値、特図１乱数値、および特図２乱数値をそれぞれ生成するための２つの乱数カウンタを更新する。例えば、普図当選乱数値として取り得る数値範囲が０〜１００とすると、ＲＡＭ３０８に設けた普図当選乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に１を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に１を加算した結果が１０１であれば０を元の乱数カウンタ記憶領域に記憶する。また、取得した値に１を加算した結果、乱数カウンタが一周していると判定した場合にはそれぞれの乱数カウンタに対応する初期値生成用乱数カウンタの値を取得し、乱数カウンタの記憶領域にセットする。例えば、０〜１００の数値範囲で変動する普図当選乱数値生成用の乱数カウンタから値を取得し、取得した値に１を加算した結果が、ＲＡＭ３０８に設けた所定の初期値記憶領域に記憶している前回設定した初期値と等しい値（例えば７）である場合に、普図当選乱数値生成用の乱数カウンタに対応する初期値生成用乱数カウンタから値を初期値として取得し、普図当選乱数値生成用の乱数カウンタにセットすると共に、普図当選乱数値生成用の乱数カウンタが次に１周したことを判定するために、今回設定した初期値を上述の初期値記憶領域に記憶しておく。また、普図当選乱数値生成用の乱数カウンタが次に１周したことを判定するための上述の初期値記憶領域とは別に、特図乱数生成用の乱数カウンタが１周したことを判定するための初期値記憶領域をＲＡＭ３０８に設けている。なお、本実施形態では特図１の乱数値を取得するためのカウンタと特図２の乱数値を取得するためのカウンタとを別に設けたが、同一のカウンタを用いてもよい。
【０１２６】
ステップＳ２１１では、演出乱数更新処理を行う。この演出乱数更新処理では、主制御部３００で使用する演出用乱数値を生成するための乱数カウンタを更新する。
【０１２７】
ステップＳ２１３では、タイマ更新処理を行う。このタイマ更新処理では、普通図柄表示装置２１０に図柄を変動・停止表示する時間を計時するための普図表示図柄更新タイマ、第１特別図柄表示装置２１２に図柄を変動・停止表示する時間を計時するための特図１表示図柄更新タイマ、第２特図表示装置２１４に図柄を変動・停止表示する時間を計時するための特図２表示図柄更新タイマ、所定の入賞演出時間、所定の開放時間、所定の閉鎖時間、所定の終了演出期間などを計時するためのタイマなどを含む各種タイマを更新する。
【０１２８】
ステップＳ２１５では、入賞口カウンタ更新処理を行う。この入賞口カウンタ更新処理では、入賞口２２６、２３４や始動口２３０、２３２、２２８に入賞があった場合に、ＲＡＭ３０８に各入賞口ごと、あるいは各始動口ごとに設けた賞球数記憶領域の値を読み出し、１を加算して、元の賞球数記憶領域に設定する。
【０１２９】
また、ステップＳ２１７では、入賞受付処理を行う。この入賞受付処理では、第１特図始動口２３０、第２特図始動口２３２、普図始動口２２８および可変入賞口２３４への入賞があったか否かを判定する。ここでは、ステップＳ２０３における入賞判定パターン情報と一致するか否かの判定結果を用いて判定する。第１特図始動口２３０へ入賞があった場合且つＲＡＭ３０８に設けた対応する保留数記憶領域が満タンでない場合、カウンタ回路３１８の当選用カウンタ値記憶用レジスタから値を特図１当選乱数値として取得するとともに特図１乱数値生成用の乱数カウンタから値を特図１乱数値として取得して対応する乱数値記憶領域に格納する。第２特図始動口２３２へ入賞があった場合且つＲＡＭ３０８に設けた対応する保留数記憶領域が満タンでない場合、カウンタ回路３１８の当選用カウンタ値記憶用レジスタから値を特図２当選乱数値として取得するとともに特図２乱数値生成用の乱数カウンタから値を特図２乱数値として取得して対応する乱数値記憶領域に格納する。普図始動口２２８へ入賞があった場合且つＲＡＭ３０８に設けた対応する保留数記憶領域が満タンでない場合、普図当選乱数値生成用の乱数カウンタから値を普図当選乱数値として取得して対応する乱数値記憶領域に格納する。可変入賞口２３４へ入賞があった場合には、可変入賞口用の入賞記憶領域に、可変入賞口２３４に球が入球したことを示す情報を格納する。
【０１３０】
ステップＳ２１９では、払出要求数送信処理を行う。なお、払出制御部６００に出力する出力予定情報および払出要求情報は、例えば１バイトで構成しており、ビット７にストローブ情報（オンの場合、データをセットしていることを示す）、ビット６に電源投入情報（オンの場合、電源投入後一回目のコマンド送信であることを示す）、ビット４〜５に暗号化のための今回加工種別（０〜３）、およびビット０〜３に暗号化加工後の払出要求数を示すようにしている。
【０１３１】
ステップＳ２２１では、普図状態更新処理を行う。この普図状態更新処理は、普図の状態に対応する複数の処理のうちの１つの処理を行う。例えば、普図変動表示の途中（上述する普図表示図柄更新タイマの値が１以上）における普図状態更新処理では、普通図柄表示装置２１０を構成する７セグメントＬＥＤの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。この制御を行うことで、普通図柄表示装置２１０は普図の変動表示（普図変動遊技）を行う。
【０１３２】
また、普図変動表示時間が経過したタイミング（普図表示図柄更新タイマの値が１から０になったタイミング）における普図状態更新処理では、当りフラグがオンの場合には、当たり図柄の表示態様となるように普通図柄表示装置２１０を構成する７セグメントＬＥＤの点灯・消灯駆動制御を行い、当りフラグがオフの場合には、外れ図柄の表示態様となるように普通図柄表示装置２１０を構成する７セグメントＬＥＤの点灯・消灯駆動制御を行う。また、主制御部３００のＲＡＭ３０８には、普図状態更新処理に限らず各種の処理において各種の設定を行う設定領域が用意されている。ここでは、上記点灯・消灯駆動制御を行うとともに、その設定領域に普図停止表示中であることを示す設定を行う。この制御を行うことで、普通図柄表示装置２１０は、当り図柄（図５（ｃ）に示す普図Ａ）および外れ図柄（図５（ｃ）に示す普図Ｂ）いずれか一方の図柄の確定表示を行う。さらにその後、所定の停止表示期間（例えば５００ｍ秒間）、その表示を維持するためにＲＡＭ３０８に設けた普図停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により、確定表示された図柄が所定期間停止表示され、普図変動遊技の結果が遊技者に報知される。
【０１３３】
また、普図変動遊技の結果が当りであれば、後述するように、普図当りフラグがオンされる。この普図当りフラグがオンの場合には、所定の停止表示期間が終了したタイミング（普図停止時間管理用タイマの値が１から０になったタイミング）における普図状態更新処理では、ＲＡＭ３０８の設定領域に普図作動中を設定するとともに、所定の開放期間（例えば２秒間）、第２特図始動口２３２の羽根部材２３２ａの開閉駆動用のソレノイド（３３２）に、羽根部材２３２ａを開放状態に保持する信号を出力するとともに、ＲＡＭ３０８に設けた羽根開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。
【０１３４】
また、所定の開放期間が終了したタイミング（羽根開放時間管理用タイマの値が１から０になったタイミング）で開始する普図状態更新処理では、所定の閉鎖期間（例えば５００ｍ秒間）、羽根部材の開閉駆動用のソレノイド３３２に、羽根部材を閉鎖状態に保持する信号を出力するとともに、ＲＡＭ３０８に設けた羽根閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。
【０１３５】
また、所定の閉鎖期間が終了したタイミング（羽根閉鎖時間管理用タイマの値が１から０になったタイミング）で開始する普図状態更新処理では、ＲＡＭ３０８の設定領域に普図非作動中を設定する。さらに、普図変動遊技の結果が外れであれば、後述するように、普図外れフラグがオンされる。この普図外れフラグがオンの場合には、上述した所定の停止表示期間が終了したタイミング（普図停止時間管理用タイマの値が１から０になったタイミング）における普図状態更新処理でも、ＲＡＭ３０８の設定領域に普図非作動中を設定する。普図非作動中の場合における普図状態更新処理では、何もせずに次のステップＳ２２３に移行するようにしている。
【０１３６】
ステップＳ２２３では、普図関連抽選処理を行う。この普図関連抽選処理では、普図変動遊技および第２特図始動口２３２の開閉制御を行っておらず（普図の状態が非作動中）、且つ、保留している普図変動遊技の数が１以上である場合に、上述の乱数値記憶領域に記憶している普図当選乱数値に基づいた乱数抽選により普図変動遊技の結果を当選とするか、不当選とするかを決定する当り判定をおこない、当選とする場合にはＲＡＭ３０８に設けた当りフラグにオンを設定する。不当選の場合には、当りフラグにオフを設定する。また、当り判定の結果に関わらず、次に上述の普図タイマ乱数値生成用の乱数カウンタの値を普図タイマ乱数値として取得し、取得した普図タイマ乱数値に基づいて複数の変動時間のうちから普図表示装置２１０に普図を変動表示する時間を１つ選択し、この変動表示時間を、普図変動表示時間として、ＲＡＭ３０８に設けた普図変動時間記憶領域に記憶する。なお、保留している普図変動遊技の数は、ＲＡＭ３０８に設けた普図保留数記憶領域に記憶するようにしており、当り判定をするたびに、保留している普図変動遊技の数から１を減算した値を、この普図保留数記憶領域に記憶し直すようにしている。また当り判定に使用した乱数値を消去する。
【０１３７】
次いで、特図１および特図２それぞれについての特図状態更新処理を行うが、最初に、特図２についての特図状態更新処理（特図２状態更新処理）を行う（ステップＳ２２５）。この特図２状態更新処理は、特図２の状態に応じて、次の８つの処理のうちの１つの処理を行う。例えば、特図２変動表示の途中（上述の特図２表示図柄更新タイマの値が１以上）における特図２状態更新処理では、第２特別図柄表示装置２１４を構成する７セグメントＬＥＤの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。この制御を行うことで、第２特別図柄表示装置２１４は特図２の変動表示（特図２変動遊技）を行う。
また、コマンド設定送信処理（ステップＳ２３３）で回転開始設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶してから処理を終了する。
【０１３８】
また、主制御部３００のＲＡＭ３０８の当否判定結果記憶領域には、１５Ｒ大当りフラグ、２Ｒ大当たりフラグ、第１小当たりフラグ、第２小当たりフラグ、第１はずれフラグ、第２はずれフラグ、特図確率変動フラグ、および普図確率変動フラグそれぞれのフラグが用意されている。特図２変動表示時間が経過したタイミング（特図２表示図柄更新タイマの値が１から０になったタイミング）で開始する特図２状態更新処理では、１５Ｒ大当りフラグはオン、特図確率変動フラグもオン、普図確率変動フラグもオンの場合には図５（ａ）に示す特図Ａ、１５Ｒ大当りフラグはオン、特図確率変動フラグはオフ、普図確率変動フラグはオンの場合には特図Ｂ、２Ｒ大当りフラグはオン、特図確率変動フラグもオン、普図確率変動フラグもオンの場合には特図Ｃ、２Ｒ大当りフラグはオン、特図確率変動フラグはオフ、普図確率変動フラグはオンの場合には特図Ｄ、２Ｒ大当りフラグはオン、特図確率変動フラグもオン、普図確率変動フラグはオンの場合には特図Ｅ、２Ｒ大当りフラグはオン、特図確率変動フラグはオフ、普図確率変動フラグもオフの場合には特図Ｆ、第１小当たりフラグがオンの場合には特図Ｇ、第２小当たりフラグがオンの場合には特図Ｈ、第１はずれフラグがオンの場合には特図Ｉ、第２はずれフラグがオンの場合には特図Ｉそれぞれの態様となるように、第２特別図柄表示装置２１４を構成する７セグメントＬＥＤの点灯・消灯駆動制御を行い、ＲＡＭ３０８の設定領域に特図２停止表示中であることを表す設定を行う。この制御を行うことで、第２特別図柄表示装置２１４は、１５Ｒ特別大当たり図柄（特図Ａ）、１５Ｒ大当たり図柄（特図Ｂ）、突然確変図柄（特図Ｃ）、突然時短図柄（特図Ｄ）、隠れ確変図柄（特図Ｅ）、突然通常図柄（特図Ｆ）、第１小当たり図柄（特図Ｇ）、第２小当たり図柄（特図Ｈ）、第１はずれ図柄（特図Ｉ）、および第２はずれ図柄（特図Ｊ）のいずれか一つの図柄の確定表示を行う。さらにその後、所定の停止表示期間（例えば５００ｍ秒間）その表示を維持するためにＲＡＭ３０８に設けた特図２停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により、確定表示された特図２が所定期間停止表示され、特図２変動遊技の結果が遊技者に報知される。また、ＲＡＭ３０８に設けられた時短回数記憶部に記憶された時短回数が１以上であれば、その時短回数から１を減算し、減算結果が１から０となった場合は、特図確率変動中（詳細は後述）でなければ、時短フラグをオフする。さらに、大当り遊技中（特別遊技状態中）にも、時短フラグをオフする。
【０１３９】
また、コマンド設定送信処理（ステップＳ２３３）で回転停止設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶するとともに、変動表示を停止する図柄が特図２であることを示す特図２識別情報を、後述するコマンドデータに含める情報としてＲＡＭ３０８に追加記憶してから処理を終了する。
【０１４０】
また、特図２変動遊技の結果が大当りであれば、後述するように、大当りフラグがオンされる。この大当りフラグがオンの場合には、所定の停止表示期間が終了したタイミング（特図２停止時間管理用タイマの値が１から０になったタイミング）における特図２状態更新処理では、ＲＡＭ３０８の設定領域に特図２作動中を設定するとともに、所定の入賞演出期間（例えば３秒間）すなわち装飾図柄表示装置２０８による大当りを開始することを遊技者に報知する画像を表示している期間待機するためにＲＡＭ３０８に設けた特図２待機時間管理用タイマの記憶領域に入賞演出期間を示す情報を設定する。また、コマンド設定送信処理（ステップＳ２３３）で入賞演出設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【０１４１】
また、所定の入賞演出期間が終了したタイミング（特図２待機時間管理用タイマの値が１から０になったタイミング）で開始する特図２状態更新処理では、所定の開放期間（例えば２９秒間、または可変入賞口２３４に所定球数（例えば１０球）の遊技球の入賞を検出するまで）可変入賞口２３４の扉部材２３４ａの開閉駆動用のソレノイド（３３２）に、扉部材２３４ａを開放状態に保持する信号を出力するとともに、ＲＡＭ３０８に設けた扉開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。また、コマンド設定送信処理（ステップＳ２３３）で大入賞口開放設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【０１４２】
また、所定の開放期間が終了したタイミング（扉開放時間管理用タイマの値が１から０になったタイミング）で開始する特図２状態更新処理では、所定の閉鎖期間（例えば１．５秒間）可変入賞口２３４の扉部材２３４ａの開閉駆動用のソレノイド（３３２）に、扉部材２３４ａを閉鎖状態に保持する信号を出力するとともに、ＲＡＭ３０８に設けた扉閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。また、コマンド設定送信処理（ステップＳ２３３）で大入賞口閉鎖設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【０１４３】
また、この扉部材の開放・閉鎖制御を所定回数（本実施例では１５ラウンドか２ラウンド）繰り返し、終了したタイミングで開始する特図２状態更新処理では、所定の終了演出期間（例えば３秒間）すなわち装飾図柄表示装置２０８による大当りを終了することを遊技者に報知する画像を表示している期間待機するように設定するためにＲＡＭ３０８に設けた演出待機時間管理用タイマの記憶領域に演出待機期間を示す情報を設定する。また、普図確率変動フラグがオンに設定されていれば、この大当たり遊技の終了と同時に、ＲＡＭ３０８に設けられた時短回数記憶部に時短回数１００回をセットするともに、ＲＡＭ３０８に設けられた時短フラグをオンする。なお、その普図確率変動フラグがオフに設定されていれば、時短回数記憶部に時短回数をセットすることもなく、また時短フラグをオンすることもない。ここにいう時短とは、特図変動遊技における大当りを終了してから、次の大当りを開始するまでの時間を短くするため、パチンコ機が遊技者にとって有利な状態になることをいう。この時短フラグがオンに設定されていると、普図高確率状態である。普図高確率状態では普図低確率状態に比べて、普図変動遊技に大当りする可能性が高い。また、普図高確率状態の方が、普図低確率状態に比べて普図変動遊技の変動時間および特図変動遊技の変動時間は短くなる。さらに、普図高確率状態では普図低確率状態に比べて、第２特別始動口２３２の一対の羽根部材２３２ａの１回の開放における開放時間が長くなりやすい。加えて、普図高確率状態では普図低確率状態に比べて、一対の羽根部材２３２ａは多く開きやすい。また、上述のごとく、時短フラグは、大当り遊技中（特別遊技状態中）にはオフに設定される。したがって、大当たり遊技中には、普図低確率状態が維持される。これは、大当たり遊技中に普図高確率状態であると、大当たり遊技中に可変入賞口２３４に所定の個数、遊技球が入球するまでの間に第２特図始動口２３２に多くの遊技球が入球し、大当たり中に獲得することができる遊技球の数が多くなってしまい射幸性が高まってしまうという問題があり、これを解決するためのものである。
【０１４４】
さらに、コマンド設定送信処理（ステップＳ２３３）で終了演出設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【０１４５】
また、所定の終了演出期間が終了したタイミング（演出待機時間管理用タイマの値が１から０になったタイミング）で開始する特図２状態更新処理では、ＲＡＭ３０８の設定領域に特図２非作動中を設定する。さらに、特図２変動遊技の結果が外れであれば、後述するように、はずれフラグがオンされる。このはずれフラグがオンの場合には、上述した所定の停止表示期間が終了したタイミング（特図２停止時間管理用タイマの値が１から０になったタイミング）における特図２状態更新処理でも、ＲＡＭ３０８の設定領域に特図２非作動中を設定する。特図２非作動中の場合における特図２状態更新処理では、何もせずに次のステップＳ２２７に移行するようにしている。
【０１４６】
続いて、特図１についての特図状態更新処理（特図１状態更新処理）を行う（ステップＳ２２７）。この特図１状態更新処理では、特図１の状態に応じて、上述の特図２状態更新処理で説明した各処理を行う。この特図１状態更新処理で行う各処理は、上述の特図２状態更新処理で説明した内容の「特図２」を「特図１」と読み替えた処理と同一であるため、その説明は省略する。なお、特図２状態更新処理と特図１状態更新処理の順番は逆でもよい。
【０１４７】
ステップＳ２２５およびステップＳ２２７における特図状態更新処理が終了すると、今度は、特図１および特図２それぞれについての特図関連抽選処理を行う。ここでも先に、特図２についての特図関連抽選処理（特図２関連抽選処理）を行い（ステップＳ２２９）、その後で、特図１についての特図関連抽選処理（特図１関連抽選処理）を行う（ステップＳ２３１）。これらの特図関連抽選処理についても、主制御部３００が特図２関連抽選処理を特図１関連抽選処理よりも先に行うことで、特図２変動遊技の開始条件と、特図１変動遊技の開始条件が同時に成立した場合でも、特図２変動遊技が先に変動中となるため、特図１変動遊技は変動を開始しない。また、装飾図柄表示装置２０８による、特図変動遊技の大当り判定の結果の報知は、第１副制御部４００によって行われ、第２特図始動口２３２への入賞に基づく抽選の抽選結果の報知が、第１特図始動口２３０への入賞に基づく抽選の抽選結果の報知よりも優先して行われる。
【０１４８】
ステップＳ２３３では、コマンド設定送信処理を行い、各種のコマンドが第１副制御部４００に送信される。なお、第１副制御部４００に送信する出力予定情報は例えば１６ビットで構成しており、ビット１５はストローブ情報（オンの場合、データをセットしていることを示す）、ビット１１〜１４はコマンド種別（本実施形態では、基本コマンド、図柄変動開始コマンド、図柄変動停止コマンド、入賞演出開始コマンド、終了演出開始コマンド、大当りラウンド数指定コマンド、復電コマンドなどコマンドの種類を特定可能な情報）、ビット０〜１０はコマンドデータ（コマンド種別に対応する所定の情報）で構成している。
【０１４９】
具体的には、ストローブ情報は上述のコマンド送信処理でオン、オフするようにしている。また、コマンド種別が図柄変動開始コマンドの場合であればコマンドデータに、１５Ｒ大当りフラグや２Ｒ大当たりフラグの値、特図確率変動フラグの値、特図関連抽選処理で選択したタイマ番号などを示す情報を含み、図柄変動停止コマンドの場合であれば、１５Ｒ大当りフラグや２Ｒ大当たりフラグの値、特図確率変動フラグの値などを含み、入賞演出コマンドおよび終了演出開始コマンドの場合であれば、特図確率変動フラグの値などを含み、大当りラウンド数指定コマンドの場合であれば特図確率変動フラグの値、大当りラウンド数などを含むようにしている。コマンド種別が基本コマンドを示す場合は、コマンドデータにデバイス情報、第１特図始動口２３０への入賞の有無、第２特図始動口２３２への入賞の有無、可変入賞口２３４への入賞の有無などを含む。
【０１５０】
また、上述の回転開始設定送信処理では、コマンドデータにＲＡＭ３０８に記憶している、１５Ｒ大当りフラグや２Ｒ大当たりフラグの値、特図確率変動フラグの値、特図１関連抽選処理および特図２関連抽選処理で選択したタイマ番号、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。上述の回転停止設定送信処理では、コマンドデータにＲＡＭ３０８に記憶している、１５Ｒ大当りフラグや２Ｒ大当たりフラグの値、特図確率変動フラグの値などを示す情報を設定する。上述の入賞演出設定送信処理では、コマンドデータに、ＲＡＭ３０８に記憶している、入賞演出期間中に装飾図柄表示装置２０８・各種ランプ４１８・スピーカ１２０に出力する演出制御情報、特図確率変動フラグの値、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。上述の終了演出設定送信処理では、コマンドデータに、ＲＡＭ３０８に記憶している、演出待機期間中に装飾図柄表示装置２０８・各種ランプ４１８・スピーカ１２０に出力する演出制御情報、特図確率変動フラグの値、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。上述の大入賞口開放設定送信処理では、コマンドデータにＲＡＭ３０８に記憶している大当りラウンド数、特図確率変動フラグの値、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。上述の大入賞口閉鎖設定送信処理では、コマンドデータにＲＡＭ３０８に記憶している大当りラウンド数、特図確率変動フラグの値、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。また、このステップＳ２３３では一般コマンド特図保留増加処理も行われる。この一般コマンド特図保留増加処理では、コマンドデータにＲＡＭ３０８の送信用情報記憶領域に記憶している特図識別情報（特図１または特図２を示す情報）、予告情報（事前予告情報、偽事前予告情報、または事前予告無情報のいずれか）を設定する。
【０１５１】
第１副制御部４００では、受信した出力予定情報に含まれるコマンド種別により、主制御部３００における遊技制御の変化に応じた演出制御の決定が可能になるとともに、出力予定情報に含まれているコマンドデータの情報に基づいて、演出制御内容を決定することができるようになる。
【０１５２】
ステップＳ２３５では、外部出力信号設定処理を行う。この外部出力信号設定処理では、ＲＡＭ３０８に記憶している遊技情報を、情報出力回路３３６を介してパチンコ機１００とは別体の情報入力回路３５０に出力する。
【０１５３】
ステップＳ２３７では、デバイス監視処理を行う。このデバイス監視処理では、ステップＳ２０５において信号状態記憶領域に記憶した各種センサの信号状態を読み出して、所定のエラーの有無、例えば前面枠扉開放エラーの有無または下皿満タンエラーの有無などを監視し、前面枠扉開放エラーまたは下皿満タンエラーを検出した場合に、第１副制御部４００に送信すべき送信情報に、前面枠扉開放エラーの有無または下皿満タンエラーの有無を示すデバイス情報を設定する。また、各種ソレノイド３３２を駆動して第２特図始動口２３２や、可変入賞口２３４の開閉を制御したり、表示回路３２４、３２６、３３０を介して普通図柄表示装置２１０、第１特別図柄表示装置２１２、第２特別図柄表示装置２１４、各種状態表示部３２８などに出力する表示データを、Ｉ／Ｏ３１０の出力ポートに設定する。また、払出要求数送信処理（ステップＳ２１９）で設定した出力予定情報を出力ポート（Ｉ／Ｏ３１０）を介して第１副制御部４００に出力する。
【０１５４】
ステップＳ２３９では、低電圧信号がオンであるか否かを監視する。そして、低電圧信号がオンの場合（電源の遮断を検知した場合）にはステップＳ２４３に進み、低電圧信号がオフの場合（電源の遮断を検知していない場合）にはステップＳ２４１に進む。
【０１５５】
ステップＳ２４１では、タイマ割込終了処理を行う。このタイマ割込終了処理では、ステップＳ２０１で一時的に退避した各レジスタの値を元の各レジスタに設定したり、割込許可の設定などを行い、その後、主制御部メイン処理に復帰する。
【０１５６】
一方、ステップＳ２４３では、復電時に電断時の状態に復帰するための特定の変数やスタックポインタを復帰データとしてＲＡＭ３０８の所定の領域に退避し、入出力ポートの初期化等の電断処理を行い、その後、主制御部メイン処理に復帰する。
【０１５７】
＜第１副制御部４００の処理＞
次に、図１５を用いて、第１副制御部４００の処理について説明する。なお、同図（ａ）は、第１副制御部４００のＣＰＵ４０４が実行するメイン処理のフローチャートである。同図（ｂ）は、第１副制御部４００のストローブ割込み処理のフローチャートである。同図（ｃ）は、第１副制御部４００のタイマ変数更新割込処理のフローチャートである。同図（ｄ）は、第１副制御部４００の画像制御処理のフローチャートである。
【０１５８】
まず、同図（ａ）のステップＳ３０１では、各種の初期設定を行う。電源投入が行われると、まずＳ３０１で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、ＲＡＭ４０８内の記憶領域の初期化処理等を行う。
【０１５９】
ステップＳ３０３では、タイマ変数が１０以上か否かを判定し、タイマ変数が１０となるまでこの処理を繰り返し、タイマ変数が１０以上となったときには、ステップＳ３０５の処理に移行する。ステップＳ３０５では、タイマ変数に０を代入する。
【０１６０】
ステップＳ３０７では、コマンド処理を行う。第１副制御部４００のＣＰＵ４０４は、主制御部３００からコマンドを受信したか否かを判別する。
【０１６１】
ステップＳ３０９では、演出制御処理を行う。例えば、Ｓ３０７で新たなコマンドがあった場合には、このコマンドに対応する演出データをＲＯＭ４０６から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行う。
【０１６２】
ステップＳ３１１では、チャンスボタンの押下を検出していた場合、ステップＳ３０９で更新した演出データをチャンスボタンの押下に応じた演出データに変更する処理を行う。ステップＳ３１３では、Ｓ３０９で読み出した演出データの中にＶＤＰ４３４への命令がある場合には、この命令をＶＤＰ４３４に出力する（詳細は後述）。
【０１６３】
ステップＳ３１５では、Ｓ３０９で読み出した演出データの中に音源ＩＣ４１６への命令がある場合には、この命令を音源ＩＣ４１６に出力する。ステップＳ３１７では、Ｓ３０９で読み出した演出データの中に各種ランプ４１８への命令がある場合には、この命令を駆動回路４２０に出力する。
【０１６４】
ステップＳ３１９では、Ｓ３０９で読み出した演出データの中に遮蔽装置２４６への命令がある場合には、この命令を駆動回路４３２に出力する。ステップＳ３２１では、Ｓ３０９で読み出した演出データの中に第２副制御部５００に送信する制御コマンドがある場合には、この制御コマンドを出力する設定を行い、Ｓ３０３へ戻る。
【０１６５】
次に、同図（ｂ）を用いて、第１副制御部４００のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第１副制御部４００が、主制御部３００が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップＳ４０１では、主制御部３００が出力したコマンドを未処理コマンドとしてＲＡＭ４０８に設けたコマンド記憶領域に記憶する。
【０１６６】
次に、同図（ｃ）を用いて、第１副制御部４００のＣＰＵ４０４によって実行する第１副制御部タイマ割込処理について説明する。第１副制御部４００は、所定の周期（本実施例では２ｍｓに１回）でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【０１６７】
第１副制御部タイマ割込処理のステップＳ５０１では、第１副制御部メイン処理におけるステップＳ３０３において説明したＲＡＭ４０８のタイマ変数記憶領域の値に、１を加算して元のタイマ変数記憶領域に記憶する。従って、ステップＳ３０３において、タイマ変数の値が１０以上と判定されるのは２０ｍｓ毎（２ｍｓ×１０）となる。
【０１６８】
第１副制御部タイマ割込処理のステップＳ５０３では、ステップＳ３１９で設定された第２副制御部５００への制御コマンドの送信や、演出用乱数値の更新処理等を行う。
【０１６９】
次に、同図（ｄ）を用いて、第１副制御部４００のメイン処理におけるステップＳ３１３の画像制御処理について説明する。同図は、画像制御処理の流れを示すフローチャートを示した図である。
【０１７０】
ステップＳ６０１では、画像データの転送指示を行う。ここでは、ＣＰＵ４０４は、まず、ＶＲＡＭ４３６の表示領域Ａと表示領域Ｂの描画領域の指定をスワップする。これにより、描画領域に指定されていない表示領域に記憶された１フレームの画像が装飾図柄表示装置２０８に表示される。次に、ＣＰＵ４０４は、ＶＤＰ４３４のアトリビュートレジスタに、位置情報等テーブルに基づいてＲＯＭ座標（ＲＯＭ４０６の転送元アドレス）、ＶＲＡＭ座標（ＶＲＡＭ４３６の転送先アドレス）などを設定した後、ＲＯＭ４０６からＶＲＡＭ４３６への画像データの転送開始を指示する命令を設定する。ＶＤＰ４３４は、アトリビュートレジスタに設定された命令に基づいて画像データをＲＯＭ４０６からＶＲＡＭ４３６に転送する。その後、ＶＤＰ４３６は、転送終了割込信号をＣＰＵ４０４に対して出力する。
【０１７１】
ステップＳ６０３では、ＶＤＰ４３４からの転送終了割込信号が入力されたか否かを判定し、転送終了割込信号が入力された場合はステップＳ６０５に進み、そうでない場合は転送終了割込信号が入力されるのを待つ。ステップＳ６０５では、演出シナリオ構成テーブルおよびアトリビュートデータなどに基づいて、パラメータ設定を行う。ここでは、ＣＰＵ４０４は、ステップＳ６０１でＶＲＡＭ４３６に転送した画像データに基づいてＶＲＡＭ４３６の表示領域ＡまたはＢに表示画像を形成するために、表示画像を構成する画像データの情報（ＶＲＡＭ４３６の座標軸、画像サイズ、ＶＲＡＭ座標（配置座標）など）をＶＤＰ４３４に指示する。ＶＤＰ４３４はアトリビュートレジスタに格納された命令に基づいてアトリビュートに従ったパラメータ設定を行う。
【０１７２】
ステップＳ６０７では、描画指示を行う。この描画指示では、ＣＰＵ４０４は、ＶＤＰ４３４に画像の描画開始を指示する。ＶＤＰ４３４は、ＣＰＵ４０４の指示に従ってフレームバッファにおける画像描画を開始する。
【０１７３】
ステップＳ６０９では、画像の描画終了に基づくＶＤＰ４３４からの生成終了割込み信号が入力されたか否かを判定し、生成終了割込み信号が入力された場合はステップＳ６１１に進み、そうでない場合は生成終了割込み信号が入力されるのを待つ。ステップＳ６１１では、ＲＡＭ４０８の所定の領域に設定され、何シーンの画像を生成したかをカウントするシーン表示カウンタをインクリメント（＋１）して処理を終了する。
【０１７４】
＜第２副制御部５００の処理＞
次に、図１６を用いて、第２副制御部５００の処理について説明する。なお、同図（ａ）は、第２副制御部５００のＣＰＵ５０４が実行するメイン処理のフローチャートである。同図（ｂ）は、第２副制御部５００のコマンド受信割込処理のフローチャートである。同図（ｃ）は、第２副制御部５００のタイマ割込処理のフローチャートである。
【０１７５】
まず、同図（ａ）のステップＳ７０１では、各種の初期設定を行う。電源投入が行われると、まずＳ７０１で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、ＲＡＭ５０８内の記憶領域の初期化処理等を行う。
【０１７６】
ステップＳ７０３では、タイマ変数が１０以上か否かを判定し、タイマ変数が１０となるまでこの処理を繰り返し、タイマ変数が１０以上となったときには、ステップＳ７０５の処理に移行する。
【０１７７】
ステップＳ７０５では、タイマ変数に０を代入する。ステップＳ７０７では、コマンド処理を行う。第２副制御部５００のＣＰＵ５０４は、第１副制御部４００のＣＰＵ４０４からコマンドを受信したか否かを判別する。ステップＳ７０９では、演出制御処理を行う。例えば、Ｓ７０７で新たなコマンドがあった場合には、このコマンドに対応する演出データをＲＯＭ５０６から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行う。
【０１７８】
ステップＳ７１１では、第１副制御部４００からの遊技盤用ランプ５３２や遊技台枠用ランプ５４２への命令がある場合には、この命令をシリアル通信制御回路５２０に出力する。
【０１７９】
ステップＳ７１３では、第１副制御部４００からの演出可動体２２４への命令がある場合には、この命令を駆動回路５１６に出力し、Ｓ７０３に戻る。
次に、同図（ｂ）を用いて、第２副制御部５００のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第２副制御部５００が、第１副制御部４００が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップＳ８０１では、第１副制御部４００が出力したコマンドを未処理コマンドとしてＲＡＭ５０８に設けたコマンド記憶領域に記憶する。
【０１８０】
次に、同図（ｃ）を用いて、第２副制御部５００のＣＰＵ５０４によって実行する第２副制御部タイマ割込処理について説明する。第２副制御部５００は、所定の周期（本実施例では２ｍｓに１回）でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【０１８１】
第２副制御部タイマ割込処理のステップＳ９０１では、第２副制御部メイン処理におけるステップＳ７０３において説明したＲＡＭ５０８のタイマ変数記憶領域の値に、１を加算して元のタイマ変数記憶領域に記憶する。従って、ステップＳ７０３において、タイマ変数の値が１０以上と判定されるのは２０ｍｓ毎（２ｍｓ×１０）となる。第２副制御部タイマ割込処理のステップＳ９０３では、演出用乱数値の更新処理等を行う。
【０１８２】
＜主制御部のＲＯＭ＞
次に、図１７を用いて、主制御部３００のＲＯＭ３０６に記憶されるデータの種類について説明する。なお、同図は、上述のＲＯＭ３０６に記憶されるデータの一例を示した図である。
【０１８３】
ＲＯＭ３０６の記憶領域に対応するＲＯＭ領域（本実施形態では、００００Ｈ〜２ＦＦＦＨの１６Ｋバイト領域）は、ＲＯＭ制御領域（本実施形態では、００００Ｈ〜０ＢＢ０Ｈ）、非使用領域（本実施形態では、０ＢＢ１Ｈ〜０ＦＦＦＨ）、ＲＯＭデータ領域（本実施形態では、１ＦＦＦＨ〜１８ＦＤＨ）およびその他領域（本実施形態では、１８ＦＥＨ〜２ＦＦＦＨ）で構成されている。このＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域には、ＣＰＵ３０４が実行する複数種類の命令それぞれに対応する命令データ（オペコード）やＣＰＵ３０４がそれぞれの命令を実行するために必要な補足データ（オペランド）によって構成される制御プログラム用のデータ（単に、制御プログラムデータと称する場合がある）が記憶され、非使用領域に対応するＲＯＭ３０６の記憶領域には、特定値（本実施形態では、００Ｈ）が一律に記憶され、ＲＯＭデータ領域に対応するＲＯＭ３０６の記憶領域には、上記の制御プログラムによって参照される参照データ（例えば、上述の各種抽選データ）が記憶されている。また、その他領域に対応するＲＯＭ３０６の記憶領域には、制御プログラムを管理するための管理データ（例えば、制御プログラムデータの最終アドレスを示すデータ）などが記憶されている。なお、本実施形態では、ＲＯＭ領域の各々のアドレスに対応するＲＯＭ３０６の記憶領域には、１バイト（８ビット）のデータが記憶可能であり、上述の各データ（命令データ、補足データ、参照データ、管理データ）が１バイトを超えるバイト数（例えば、２バイト）のデータである場合には、ＲＯＭ制御領域の連続する複数のアドレスに対応するＲＯＭ３０６の記憶領域に１バイト毎に分割して記憶している。
【０１８４】
また、制御プログラムは、複数のサブルーチンによって構成されており、後述するＣＡＬＬ命令やＥＸＥＳＵＢ（ＥＸＥＣＵＴＥ  ＳＵＢＲＯＵＴＩＮＥ）命令などによってサブルーチンの先頭アドレスに移動して、当該サブルーチンを順次実行することが可能になっている。
【０１８５】
ところで、遊技台の分野では、制御プログラムの検査効率化の観点から、制御プログラムデータを記憶する記憶領域を制限する必要があり、本実施形態では、上述の通りＲＯＭ制御領域を００００Ｈ〜０ＢＢ０Ｈに制限している。また、不正改造の抑止の観点から、制御プログラムデータ間に非使用領域や非使用のデータを設けないようにＲＯＭ制御領域の若いアドレスに詰めて制御用プログラムデータを記憶する必要があるため、開発段階で非使用となった制御プログラムデータの記憶領域を埋めるために別の制御プログラムデータを分割して割り当てるなどの作業が発生し、結果としてサブルーチンを呼び出す制御プログラムデータが多数必要となってくる。さらに、制御プログラムの開発効率を向上させるためや、制御プログラムのデバッグ作業等のメンテナンス作業を簡便にするためにもサブルーチンを多用しているため、サブルーチンを呼び出す制御プログラムデータが多数必要となってくる。
【０１８６】
このような開発環境の中で遊技の興趣を高めることを可能にするためには、ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域に記憶されている従来の制御プログラムデータ（例えば、上述のサブルーチンを呼び出す制御プログラムデータ）を圧縮し、ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域に新しい制御プログラムデータを追加することが可能な記憶領域を確保することが必要となってくる。
【０１８７】
特に、所定の周期（例えば、１０ｍｓ）毎に所定の処理を実行するタイマ割込み処理を実行するための制御プログラムには、複数の遊技制御処理のうちランダムに発生する複数の外部情報（各センサの変化等）を検出する処理（例えば、入力ポート状態更新処理（ステップＳ２０５））や外部情報の検出結果に基づいた処理（例えば、デバイス監視処理（ステップＳ２３７））など多くのサブルーチンを呼び出すための制御プログラムデータが含まれているため、このタイマ割込み処理を実行するための制御プログラムに含まれるサブルーチンを呼び出す制御プログラムデータの圧縮が必要となってくる。
【０１８８】
また、安定した遊技制御をおこなえるようにするためには、上述のタイマ割込み処理を重点的に安定化させなければならない。具体的には、コーディングミスを抑止すること、所定の周期（例えば、１０ｍｓ）毎に所定の処理を実行させるために（リアルタイム性を確保するために）処理速度を向上させることなどが必須となるため、サブルーチンを呼び出す制御プログラムに関する工夫が必要となる（詳細は後述する）。
【０１８９】
＜主制御部の命令データ＞
次に、主制御部３００の命令データについて説明する。図１８は、主制御部３００の命令データの構成の一例を示した図である。また、図１９（ａ）は、主制御部３００の命令データの上位ビットと下位ビットを示した図であり、同図（ｂ）は、命令データテーブルの一例を示した図である。
【０１９０】
主制御部３００の命令データは、例えば、命令データが１バイト（８ビット）のデータによって構成される場合には、最大で２５６パターン定義することが可能である。なお、定義された命令データはＲＯＭ３０６に記憶されているものではなく、ＣＰＵ３０４にハード的に組み込まれているものである。また、１バイトの命令データについて、各々を上位４ビットと下位４ビットによって分類分けすると、上記パターンと命令データの関係性は、図１９（ｂ）に示される通りとなる。例えば、「ＩＮＣ  ＢＣ（ＢＣレジスタを１つ加算する命令）」に使用されるＩＮＣ（命令データ）は、上位ビット０Ｈ（００００Ｂ）、下位ビット３Ｈ（００１１Ｂ）に割り当てられ、「ＤＥＣ  Ｂ（Ｂレジスタを１つ減算する命令）」に使用されるＤＥＣ（命令データ）は、上位ビット０Ｈ（００００Ｂ）、下位ビット５Ｈ（０１０１Ｂ）に割り当てられている。
【０１９１】
なお、１バイト長で定義可能な２５６パターンの命令データを上回るパターン数の命令データを割り当てる方法として、例えば、上記１バイトで定義される２５６パターンのうち１パターンに対してさらに新たな１バイトで定義される２５６パターンを対応付けることで最大５１１パターン（２５５パターン（１バイトの命令データ）＋２５６パターン（２バイトの命令データ））の命令データを定義する方法があるが、拡張した命令データは、２バイトのデータによって構成されるため、この命令を使用すると、上述の１バイトの命令データを使用するよりもＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域を圧迫してしまう。
【０１９２】
そこで、本実施形態では、図１９（ｂ）の太線で囲った領域、すなわち、上位ビット１Ｈ（０００１Ｂ）と下位ビット８Ｈ（１０００Ｂ）〜ＦＨ（１１１１Ｂ）の組合せと、上位ビット３Ｈ（００１１Ｂ）と下位ビット８Ｈ（１０００Ｂ）〜ＦＨ（１１１１Ｂ）の組合せからなる領域を、後述するＥＸＥＳＵＢ命令を割り当てるための特別な領域としている。このように、従来、命令データが割り当てられていない、または、割り当てられていた命令データが削除された空き領域を特別な領域として利用することで、限られたハードウェア資源（例えば、１バイトで定義可能なパターン（２５６パターン））を有効利用することができ、命令データによるＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域の圧迫を抑制することができる。
【０１９３】
また、命令データは、アセンブル後の機械語のチェックを簡便にするためにも役割ごとにグループ化（一の上位ビットに対して連続する複数の下位ビットの組合せからなる領域、または、一の下位ビットに対して連続する複数の上位ビットの組合せからなる領域に、同系統の役割を持つ命令データを割り当てる）して命令データテーブルに割り当てている（例えば、上位ビット８Ｈ（１０００Ｂ）と下位ビット０Ｈ（００００Ｂ）〜７Ｈ（０１１１Ｂ）の組合せで定義される部分におけるＡＤＤ命令）。近年では、チップの開発負担を軽減するため、従来の命令データテーブルに割り当てている命令データの削減、または削減した命令データを割り当てていた部分への新たな命令データを追加するなどしてチップの開発を行う。このため、アセンブル後の機械語のチェックを簡便にしつつも、データ圧縮のために命令データを新たに追加する際には、追加する同系統の命令データをグループにして割り当てていく必要があり、本実施形態では、ＥＸＥＳＵＢ命令をグループにして特別な領域に割り当てることで解決を図っている。さらに、小分けされた特別な領域に対して新たな命令データを効率良く割り当てるためには、追加する命令データのグループを小分けのグループにして割り当てていく必要があり、本実施形態では、さらに、ＥＸＥＳＵＢ命令を小分けのグループにして小分けされた特別な領域に割り当てることで解決を図っている。
【０１９４】
＜ＣＡＬＬ命令＞
次に、上述の制御プログラムの一つであるＣＡＬＬ命令について説明する。図２０は、ＣＡＬＬ命令によるアドレスの移動の一例を概念的に示したものであり、図２１は、ＣＡＬＬ命令の命令データと補足データの一例を示したである。
【０１９５】
例えば、実行中の制御プログラムのアドレスが０７００Ｈで、移動先のサブルーチンの先頭アドレスが０３ＦＦＨの場合には、図２０の符号Ｘで示すように、両者の相対アドレス（移動元のアドレスと移動先のアドレスの差）は、０３０１Ｈ（＝０７００Ｈ−０３ＦＦＨ）であり、この相対アドレスは２バイトのデータで表現可能である。ここで、この制御プログラムをＣＡＬＬ命令によって表現すると、図２１（ａ）に示すように、ＣＡＬＬ命令を示す１バイトの命令データと移動先のアドレスを示す２バイトの補足データで合計３バイトの制御プログラムデータが必要となる。
【０１９６】
また、実行中の制御プログラムのアドレスが０７００Ｈで、移動先のサブルーチンの先頭アドレスが０７５ＦＨの場合には、図２０の符号Ｙで示すように、両者の相対アドレスは、００５ＦＨ（＝０７５ＦＨ−０３ＦＦＨ）であり、この相対アドレスは１バイトのデータで表現可能である。この場合であっても、この制御プログラムをＣＡＬＬ命令によって表現すると、図２１（ｂ）に示すように、ＣＡＬＬ命令を示す１バイトの命令データと移動先のアドレスを示す２バイトの補足データで合計３バイトの制御プログラムデータが必要である。
【０１９７】
すなわち、ＣＡＬＬ命令を実行するための制御プログラムは、移動先のアドレス（２バイトで定義可能な記憶領域（００００Ｈ〜ＦＦＦＦＨ）内の任意のアドレス）に関わらず、３バイトの制御プログラムデータが必要となる。
【０１９８】
なお、ＣＡＬＬ命令を実行する際にＣＰＵ３０４は、具体的に、ＰＣレジスタ（プログラムカウンタ）に記憶されているデータ（２バイト）をスタックエリアに記憶させる処理を実行した後に、ＣＡＬＬ命令を実行するための補足データ（移動先のサブルーチンの先頭アドレスを示すデータ（２バイト））をＰＣレジスタ（プログラムカウンタ）に記憶させる処理（サブルーチンの先頭アドレスに移動）を実行することで、サブルーチンを呼び出すことが可能となる。
【０１９９】
＜ＥＸＥＳＵＢ命令＞
次に、上述の制御プログラムの一つであるＥＸＥＳＵＢ命令について説明する。図２２（ａ）は、ＥＸＥＳＵＢ命令の構成の一例を示した図であり、同図（ｂ）は、図１９（ｂ）の空き領域に対してＥＸＥＳＵＢ命令を割り当てた命令データテーブルを示した図である。
【０２００】
ＥＸＥＳＵＢ命令は、上述のＣＡＬＬ命令同様にサブルーチンを呼び出すことが可能となる命令という点では同じであるが、命令データ／補足データの構造および制御プログラムデータに必要な記憶容量が異なる（詳細は後述する）。
【０２０１】
＜ＥＸＥＳＵＢ命令／命令データ＞
ＥＸＥＳＵＢ命令の命令データは、本実施形態では、最上位ビット７（ＭＳＢ）から最下位ビット０（ＬＳＢ）の順番で、ビット７の０（固定値）、ビット６の０（固定値）、ビット５のα（可変値）、ビット４の１（固定値）、ビット３の１（固定値）、ビット２のβ（可変値）、ビット１のγ（可変値）、ビット０のδ（可変値）の合計８ビット（１バイト）で構成されている。すなわち、ＥＸＥＳＵＢ命令は上述の可変値を変えることによって定義されるパターン（２の４乗＝１６パターン）の命令データとなる。なお、ビット５のα、ビット２のβ、ビット１のγおよびビット０のδの合計４ビットのデータであるｍは、０Ｈ〜ＦＨの数値範囲を表現可能であり、呼び出すサブルーチンの先頭アドレスを識別可能な識別情報（バイナリ形式）の一部である。
【０２０２】
また、ＥＸＥＳＵＢ命令の命令データは、上述の通り、命令データテーブルのうちの同図（ｂ）に示す太線で囲った領域、すなわち、上位ビット１Ｈ（０００１Ｂ）と下位ビット８Ｈ（１０００Ｂ）〜ＦＨ（１１１１Ｂ）の組合せと、上位ビット３Ｈ（００１１Ｂ）と下位ビット８Ｈ（０１１１Ｂ）〜ＦＨ（１１１１Ｂ）の組合せからなる空き領域（従来、命令データが割り当てられていない、または、割り当てられていた命令データが削除された領域）に割り当てられる。
【０２０３】
なお、上述の通り、ＥＸＥＳＵＢ命令の命令データが、可変値のビットと可変値のビットの間に、固定値のビットが入るように構成されていることにより、ＥＸＥＳＵＢ命令の命令データをグループ化しつつ、上述の空き領域に割り当てることが可能になる。よって、ＥＸＥＳＵＢ命令データの機械語のチェックを簡便となり、コーディングミスを抑制することができる。
【０２０４】
さらに、上述の通り、ＥＸＥＳＵＢ命令の命令データが、１または複数の固定値のビット（例えば、上記のビット４、ビット３）を挟んで上位にある可変値のビット数（例えば、１（上記のビット５））と比較して当該固定値のビットを挟んで下位にある可変値のビット数（例えば、３（上記のビット２、ビット１、ビット０））が大きくなる（記憶容量が大きくなる）ように構成されていることにより、ＥＸＥＳＵＢ命令の命令データをグループ化しつつも、きめ細かく上述の空き領域に割り当てることが可能になる。よって、限られたハードウェア資源（例えば、１バイトで定義可能なパターン（２５６パターン））を有効利用することができ、命令データの圧縮によるＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。なお、１または複数の固定値のビットを挟んで下位にある可変値のビット数と比較して当該固定値を挟んで上位にある可変値のビット数が大きくなる（記憶容量が大きくなる）ように構成した場合であっても、上述の効果を奏する。
【０２０５】
なお、上述の可変値α、β、γおよびδとＥＸＥＳＵＢ命令の命令データのビット７〜０の対応関係は上述の対応関係に限らず、例えば、ビット４に可変値αを対応させ、同様に、ビット２に可変値β、ビット１に可変地γ、ビット０に可変値δを対応させてもよく、上述した対応関係であればよい。
【０２０６】
さらに、命令データを構成する可変値α、β、γおよびδの順序は、任意の順序としてもよいが、上述の順序（上位ビットから順にα、β、γ、δ）、すなわち、後述するアドレスｍｎのｍを上位ビットからα、β、γ、δの順に並べることで定義可能になる順序とすることで、ＥＸＥＳＵＢ命令データの機械語のチェックを簡便となり、コーディングミスを抑制することができる。
【０２０７】
＜ＥＸＥＳＵＢ命令／補足データ＞
ＥＸＥＳＵＢ命令の補足データは、本実施形態では、００Ｈ〜ＦＦＨの数値範囲を示す８ビットのデータであるｎで構成されている。
よって、ＥＸＥＳＵＢ命令は、命令データに含まれる４ビットのデータであるｍと、８ビットの補足データであるｎを、この順番で並べて（ｍを上位、ｎを下位として）構成される合計１２ビットのアドレスｍｎによって定義可能なアドレス領域（００００Ｈ〜０ＦＦＦ）に先頭アドレスを持つサブルーチンを呼び出すことができる命令となる。すなわち、ｎは呼び出すサブルーチンの先頭アドレスを識別可能な識別情報（バイナリ形式）から、当該識別情報の一部（ｍ）を除いた情報の少なくとも一部である。
【０２０８】
＜ＥＸＥＳＵＢ命令／サブルーチンの呼び出し＞
図２３は、ＥＸＥＳＵＢ命令によるアドレスの移動の一例を概念的に示した図である。本実施形態では、ｍ（４ビットのデータ）は、同図（ａ）に示すように、ＲＯＭ領域のアドレス００００Ｈ〜０ＦＦＦＨのうち、上位１バイトの下位４ビット（０Ｈ〜ＦＨ）を示し、ｎ（８ビットのデータ）は、同図（ｂ）に示すように、上位アドレスｍによって表現される１００Ｈ単位の記憶領域（０ｍ００Ｈ〜０ｍＦＦＨ：ｍ＝０Ｈ〜ＦＨ）を１ブロックとしたときに、当該１ブロック内のアドレス（００Ｈ〜ＦＦＨ）を示す値である。
【０２０９】
なお、移動先のアドレスを設定可能なアドレス領域を、ｎまたはｍのいずれのデータを上位アドレスのデータとして定義しても、後述する制御プログラムデータの削減の効果は得られるが、上述の通り、命令データに含まれるｍを上位アドレスのデータとして定義することで、図２３（ａ）に示すように、アドレス領域に対してＥＸＥＳＵＢ命令の命令データをグループ化して対応付けることができ、コーディングミスを抑制することができる。
【０２１０】
また、ＥＸＥＳＵＢ命令の命令データは、呼び出すサブルーチンの先頭アドレスの一部を構成するデータであるｍを含んで構成されていることから、移動先のアドレスデータを間違ってしまった場合であっても、間違ってしまったデータが命令データに含まれていれば、制御プログラムの実行が停止されるため、コーディングミスを抑制することができる。
【０２１１】
図２４は、ＥＸＥＳＵＢ命令によるサブルーチンの先頭アドレスの呼び出しの一例を示したものであり、図２５は、ＥＸＥＳＵＢ命令の命令データと補足データの一例を示した図である。
【０２１２】
例えば、実行中の制御プログラムのアドレスが０７００Ｈで、移動先のサブルーチンの先頭アドレスが０３ＦＦＨの場合を挙げる。この制御プログラムをＣＡＬＬ命令で表現すると、上述の通り、図２４の符号Ｘ'で示す両者の相対アドレス（移動元のアドレスと移動先のアドレスの差）は、０３０１Ｈ（＝０７００Ｈ−０３ＦＦＨ）であり、この相対アドレスは２バイトのデータで表現可能であり、１バイトの命令データと２バイトの補足データで合計３バイトの制御プログラムデータが必要である。
【０２１３】
一方、この制御プログラムをＥＸＥＳＵＢ命令で表現すると、移動先のアドレスへの移動は概念的にＸ''で示すものとなり、この相対アドレスは、１バイトのデータで表現可能な００ＦＦＨ（＝０３ＦＦＨ−０３００Ｈ）となる。すなわち、ＥＸＥＳＵＢ命令は、図２５（ａ）に示すように、０００１１０１１Ｂで表される１バイトの命令データと、１１１１１１１１Ｂで表される１バイトの補足データで合計２バイトの制御プログラムデータが必要となる。
【０２１４】
また、実行中の制御プログラムのアドレスが０７００Ｈで、呼び出し先のサブルーチンの先頭アドレスが０７５ＦＨの場合を挙げる。この場合は、この制御プログラムがＣＡＬＬ命令またはＥＸＥＳＵＢ命令のいずれで表現する場合であっても、上述の通り、図２４の符号Ｙ'で示すように、両者の相対アドレスは、１バイトで表現可能な００５ＦＨ（＝０Ｃ５ＦＨ−０Ｃ００Ｈ）であり、この相対アドレスは１バイトのデータで表現可能であるが、この制御プログラムをＣＡＬＬ命令で表現すると、１バイトの命令データと２バイトの補足データで合計３バイトの制御プログラムデータが必要となる。
【０２１５】
一方、この制御プログラムをＥＸＥＳＵＢ命令で表現すると、図２５（ｂ）に示すように、０００１１１１１Ｂで表される１バイトの命令データと、０１０１１１１１Ｂで表される１バイトの補足データの合計２バイトの制御プログラムデータが必要となり、上述のＣＡＬＬ命令よりも、１命令当りのデータを１バイト削減することができる。
【０２１６】
よって、ＥＸＥＳＵＢ命令を実行するための制御プログラムは、移動先のアドレス（１２ビットで定義可能な記憶領域（００００Ｈ〜０ＦＦＦＨ）内の任意のアドレス）に関わらず、２バイトの制御プログラムデータが必要となり、上述のＣＡＬＬ命令よりも、１命令当りの制御プログラムデータを１バイト削減することができる。
【０２１７】
すなわち、サブルーチンを呼び出す制御プログラムに上述のＥＸＥＳＵＢ命令を用いることで、従来のサブルーチンを呼び出す制御プログラム（例えば、ＣＡＬＬ命令）を圧縮することができ、ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域に記憶されている従来の制御プログラムデータを圧縮することが可能となる。
【０２１８】
なお、ＥＸＥＳＵＢ命令を実行する際にＣＰＵ３０４は、具体的に、ＰＣレジスタ（プログラムカウンタ）に記憶されているデータ（２バイト）をスタックエリアに記憶させる処理を実行した後に、ＥＸＥＳＵＢ命令を実行するための補足データ（移動先のサブルーチンの先頭アドレスを示すデータ（２バイト））をＰＣレジスタ（プログラムカウンタ）に記憶させる処理（サブルーチンの先頭アドレスに移動）を実行することで、サブルーチンを呼び出すことが可能となる。
【０２１９】
また、サブルーチンを呼び出す制御プログラムに上述のＥＸＥＳＵＢ命令を用いることで、上述制御プログラムの圧縮に起因して従来（例えば、ＣＡＬＬ命令）よりもサブルーチンを呼び出す制御プログラムの処理速度を向上させる（ステート数を少なくする）ことができる。
【０２２０】
さらに、上述のように、ＲＯＭ領域は、上述のＥＸＥＳＵＢ命令によって呼び出すことができる領域（本実施形態では、００００Ｈ〜０ＦＦＦＨ）に対応するＲＯＭ３０６の記憶領域に、全ての制御プログラムデータが記憶されるようにＲＯＭ制御領域（本実施形態では、００００Ｈ〜０ＢＢ１Ｈ）を設け、少なくとも、上述のＥＸＥＳＵＢ命令によって呼び出すことができる領域（本実施形態では、００００Ｈ〜０ＦＦＦＨ）から、制御プログラムデータが記憶されているＲＯＭ制御領域（本実施形態では、００００Ｈ〜０ＢＢ１Ｈ）を除いた領域（本実施形態では、０ＢＢ１Ｈ〜０ＦＦＦＨ）を、非使用領域となるように構成されるとともに、非使用領域の後にＲＯＭデータ領域が続くように構成されている。
【０２２１】
このようにＲＯＭ領域を構成した遊技台において、サブルーチンを呼び出す制御プログラムに上述のＥＸＥＳＵＢ命令を用いる（ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域にＥＸＥＳＵＢ命令の制御プログラムデータを記憶する）ことで、ＣＰＵ３０４が制御プログラムデータおよび非使用データを除くデータを命令データとして直接読み込むことがないため、補足データのコーディングミスによるＣＰＵ３０４の誤作動を防止できる場合がある。
【０２２２】
＜制御プログラムの一例＞
図２６は、上述の主制御部タイマ割込処理の制御プログラムの一例を示したプログラムリストである。なお、「＊＊」はＥＸＥＳＵＢ命令の補足データを示す。
【０２２３】
ＣＰＵ３０４は、タイマ割込み処理を開始すると、まずＷＤＴをリスタートする処理を実行し、所定の処理（詳細は省略）を実行し、その後、ＥＸＥＳＵＢ命令（１）〜（１９）を用いて、それぞれ、以下のサブルーチンを読み出す処理を実行する。入力ポート状態更新処理、基本乱数初期値更新処理、基本乱数更新処理、演出乱数更新処理、タイマ更新処理、入賞口カウンタ更新処理、入賞受付処理、払出要求数送信処理、普図状態更新処理、普図関連抽選処理特図先読み制御処理、特図２状態更新処理、特図１状態更新処理、特図２関連抽選処理、特図１関連抽選処理、コマンド設定送信処理、外部出力信号設定処理、デバイス監視処理、を実行し、その他の処理（詳細は省略）を実行する。なお、詳細は省略するが、上述のＥＸＥＳＵＢ命令（１）〜（１９）によって呼び出されるサブルーチンの先頭アドレスはＲＯＭ制御領域（本実施形態では、００００Ｈ〜０ＢＢ０Ｈ）に含まれている。
【０２２４】
このように、タイマ割込み処理におけるサブルーチンを呼び出す制御プログラムに上述のＥＸＥＳＵＢ命令を用いる（ＲＯＭ制御領域のうちタイマ割り込み処理の領域に対応するＲＯＭ３０６の記憶領域にＥＸＥＳＵＢ命令の制御プログラムデータを記憶する）ことで、タイマ割込み処理を安定化させることができる。
【０２２５】
ところで、遊技台の開発では、一般的に従来の制御プログラムの一部を変更（削除や追加など）することで新たな遊技台を開発している。特に、遊技制御の安定化を図るためにできるだけ制御プログラムの変更は避けることが望まれる。
【０２２６】
よって、ＲＯＭ領域（例えば、タイマ割込み処理の領域）におけるサブルーチンを呼び出す制御プログラムすべてに、上述のＥＸＥＳＵＢ命令を用いる必要はなく、必要（例えば、上述の制御プログラムデータの圧縮の要求の有無）に応じて適宜用いればよい。
さらに、上述のＥＸＥＳＵＢ命令は、従来の１バイトの命令データと２バイトの補足データで構成される３バイト命令の制御プログラムデータ（例えば、ＣＡＬＬ命令）を、１バイトの命令データと１バイトの補足データで構成される２バイト命令の制御プログラムデータに圧縮した制御プログラムであるが、命令データと補足データで構成される制御プログラムを圧縮する制御プログラムであればよい。すなわち、ＥＸＥＳＵＢ命令は、呼び出すサブルーチンの先頭アドレスを識別可能な識別情報（バイナリ形式）の一部を含んで構成される命令データと、当該識別情報から当該命令データに含まれた識別情報を除いた情報の少なくとも一部で構成される補足データとで構成される制御プログラムであればよく、さらに言えば、上述の命令データおよび補足データそれぞれが、ＣＰＵ３０４が一回の処理で読み込むデータ長（例えば、８ビット）の整数倍であればよい。
【０２２７】
＜ＲＯＭ制御領域の変形例＞
図２７は、ＲＯＭ領域が、上述のＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）によって呼び出すことができる領域（本実施形態では、００００Ｈ〜０ＦＦＦＨ）よりも、制御プログラムデータが記憶されているＲＯＭ制御領域（本実施形態では、００００Ｈ〜１１Ｂ８Ｈ）が広くなるように構成されている場合を示した図である。また、図２８（ａ）および（ｂ）は、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）によって呼び出すことができるサブルーチンの先頭アドレスの領域を拡張した場合の一例を示した図である。
【０２２８】
例えば、図２７に示すように、ＲＯＭ制御領域（本実施形態では、００００Ｈ〜１１Ｂ８Ｈ）が、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）で呼び出すことができるサブルーチンの先頭アドレスの領域（本実施形態では、００００Ｈ〜０ＦＦＦＨ）より広い場合、ＲＯＭ制御領域は、ＥＸＥＳＵＢ対象領域（本実施形態では、００００Ｈ〜０ＦＦＦＨ）と、ＥＸＥＳＵＢ非対象領域（例えば、１０００Ｈ〜１１Ｂ８Ｈ）で構成されることとなる。
【０２２９】
この場合、ＥＸＥＳＵＢ非対象領域に対応するアドレスを先頭アドレスに持つサブルーチンを呼び出す命令に上述のＣＡＬＬ命令を用いて補ったとしても、上述の通り、遊技の興趣を高めることを可能にしつつ、安定した遊技制御を実現することは可能である。
【０２３０】
しかし、図２８に示すように、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）によって呼び出すことができるサブルーチンの先頭アドレスの領域を拡張することで、上述の効果をより高めることが可能になる。
【０２３１】
具体的な手段としては、図２８（ａ）および（ｂ）に示すように、後述する可変値σを用いて、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）に要する記憶容量を維持しつつ、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データを拡張するものである。なお、以下は、同図に新たに追加した可変値σについて説明することとする。
【０２３２】
可変値σは、ＥＸＥＳＵＢ命令（後述のＥＸＥＳＵＢｍ'ｎ）を拡張するために用いられ、図２８（ａ）に示すように、ＥＸＥＳＵＢ命令（後述のＥＸＥＳＵＢｍ'ｎ）の命令データ（本実施形態では、８ビット）のビット６を構成する値であり、呼び出すサブルーチンの先頭アドレスを示すアドレスｍ'ｎのうちｍ'の値に応じて変化するものである。
【０２３３】
また、命令データテーブルには、図２８（ｂ）に示すように、可変値σによって拡張されたＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍ'ｎ）が、同図（ｂ）に示す太線で囲った領域、すなわち、上位ビット５Ｈ（０１０１Ｂ）と下位ビット８Ｈ（１０００Ｂ）および９Ｈ（１００１Ｂ）の組合せからなる空き領域に割り当てられている。
【０２３４】
ここで、ｍ'は、図２２（ａ）で示したｍと同一の役割を持つデータであるが、上述のｍがビット５のα、ビット２のβ、ビット１のγおよびビット０のδの合計４ビットのデータであったのに対して、ｍ'はビット６のσ、ビット５のα、ビット２のβ、ビット１のγおよびビット０のδの合計５ビットのデータである点が異なり、ｍ'は、００Ｈ〜１１Ｈの数値範囲を表現可能なデータであり、呼び出すサブルーチンの先頭アドレスを識別可能な識別情報（バイナリ形式）の一部である。
【０２３５】
このように、上述のＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データのビット６に可変値σを設けたＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍ'ｎ）を用いて、アドレスｍｎによって定義可能なアドレス領域（０００Ｈ〜ＦＦＦ）を拡張（アドレスｍ'ｎによって定義可能なアドレス領域を００００Ｈ〜１１ＦＦＨに）することで、上述のＥＸＥＳＵＢ非対象領域に対応するアドレスを先頭アドレスに持つサブルーチンをＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍ'ｎ）を用いて呼び出すことができる。
【０２３６】
なお、上述の可変値σ、α、β、γおよびδとＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍ'ｎ）の命令データのビット７〜０の対応関係は上述の対応関係に限らず、例えば、ビット５に可変値σを対応させ、同様に、ビット４に可変値α、ビット２に可変値β、ビット１に可変地γ、ビット０に可変値δを対応させてもよく、図２２を用いて説明した対応関係と同じであればよい。
【０２３７】
さらに、命令データを構成する可変値σ、α、β、γおよびδの順序は、任意の順序としてもよいが、上述の順序（上位ビットから順にσ、α、β、γ、δ）、すなわち、後述するアドレスｍ'ｎのｍ'を上位ビットからσ、α、β、γ、δの順に並べることで定義可能になる順序とすることで、ＥＸＥＳＵＢ命令データの機械語のチェックを簡便となり、コーディングミスを抑制することができる。
【０２３８】
このように、上述のＲＯＭ制御領域（例えば、００００Ｈ〜１１Ｂ８Ｈ）に対応させて上述のＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍ'ｎ）の命令データを設けることで、ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。
【０２３９】
さらに、上述のように、ＲＯＭ領域は、上述のＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍ'ｎ）によって呼び出すことができる領域（本実施形態では、００００Ｈ〜１１ＦＦＨ）よりも、制御プログラムデータが記憶されているＲＯＭ制御領域を除いた領域（本実施形態で
ところで、図１７および図２７で示したように、制限されたＲＯＭ制御領域の中でも開発された遊技台ごとに設けられたＲＯＭ制御領域が異なる場合があるが、このような遊技台それぞれに対して、上述のＥＸＥＳＵＢｍｎまたはＥＸＥＳＵＢｍ'ｎそれぞれを命令データとして備えているＣＰＵを使い分けて開発を行うことは、開発工数およびコストの観点からも無駄であるとともに、コーディングミスの原因ともなり、安定した遊技制御の実現を困難にしてしまうこととなる。よって、図１７で示したＲＯＭ制御領域を持つ遊技台であっても、ＥＸＥＳＵＢ命令にＥＸＥＳＵＢｍ'ｎを用いた方が望ましい。
【０２４０】
この場合であっても、ＥＸＥＳＵＢｍ'ｎによって呼び出すことができる領域（本実施形態では、００００Ｈ〜１１ＦＦＨ）よりも、制御プログラムデータが記憶されているＲＯＭ制御領域（本実施形態では、００００Ｈ〜０ＢＢ１Ｈ）が狭くなるように構成されているため、少なくとも、上述のＥＸＥＳＵＢｍ'ｎによって呼び出すことができる領域から、制御プログラムデータが記憶されているＲＯＭ制御領域を除いた領域（本実施形態では、０ＢＢ１Ｈ〜１１ＦＦＨ）を、非使用領域で構成するとともに、非使用領域の後にＲＯＭデータ領域が続くように構成すればよい。
【０２４１】
＜特図状態更新処理、普図状態更新処理＞
次に、図２９を用いて、上述の特図２状態更新処理（ステップＳ２２５）、特図１状態更新処理（ステップＳ２２７）、普図状態更新処理（ステップＳ２２１）の制御プログラムの一部について説明する。なお、同図（ａ）は特図２状態更新処理および特図１状態更新処理の制御プログラムの一部を抜き出したものであり、同図（ｂ）は普図状態更新処理の制御プログラムの一部を抜き出したものである。
【０２４２】
例えば、同図（ａ）に示す特図状態更新処理では、まず最初に、「ＬＤ  Ｌ，Ｌｏｗ．vbTokuzuStatus」の命令を実行することによって、同図（ｄ）においてvbTokuzuStatusとして定義されたアドレス（この例では、ＲＡＭ３０８に設けた特図ステータス用記憶領域を示すアドレスであるＦ０６０Ｈ）の下位バイト（この例では、６０Ｈ）をＬレジスタに記憶する。
【０２４３】
続いて、「ＪＰ  moReadMemory」の命令を実行することによって、同図（ｃ）に示すmoReadMemory（メモリ読出し処理）に移動し、当該処理を実行する。このメモリ読み出し処理では、まず最初に「ＬＤ  Ｈ，Ｆ０Ｈ」の命令を実行することによってＨレジスタにＦ０Ｈを記憶した後、「ＬＤ  Ａ，（ＨＬ）」の命令を実行することによってＨＬレジスタで示されるアドレス（この例では、Ｆ０６０Ｈ）の内容（この例では、特図ステータス）をＡレジスタに記憶する。続いて、「ＡＮＤ  Ａ」の命令を実行した後に、読み出し元の特図状態更新処理に戻る。なお、同図（ｂ）に示す普図状態更新処理も共通のサブルーチンであるmoReadMemory（メモリ読出し処理）を利用することによって、ＲＡＭ３０８の普図ステータス用記憶領域に記憶された普図ステータスの読みだしを行う、
このように、同図（ｃ）に示す従来のメモリ読出し処理を利用した場合には、「ＬＤ  Ｈ，Ｆ０Ｈ」という命令により、特図ステータス用記憶領域や普図ステータス用記憶領域のアドレスの上位（Ｆ０Ｈ）が解析され、不正行為を誘発するおそれがある。このため、本実施形態では、同図（ｃ）に示す従来のメモリ読出し処理に替えて、同図（ｅ）に示すメモリ読出し処理を採用する。
【０２４４】
この本実施形態に係るメモリ読出し処理では、「ＬＤ  Ａ，Ｔ」の命令を実行することによって、Ｔレジスタの値をＡレジスタに記憶するが、上述のように、Ｔレジスタには特定の値（Ｆ０Ｈ）が記憶されているため、ＡレジスタにはＦ０Ｈが記憶される。以降の処理は従来の処理と同様であるが、イミディエイト値を利用する代わりにＴレジスタを利用しているため、特図ステータス用記憶領域や普図ステータス用記憶領域のアドレスの上位（Ｆ０Ｈ）が解析されるおそれが少なく、不正行為を未然に防止できる場合がある。また、イミディエイト値を利用した場合には、例えば、Ｆ０ＨをＦ１Ｈと間違って入力するなど、コーディングミスの可能性が高くなるが、Ｔレジスタを利用すればコーディングミスを未然に防止できる場合がある。
【０２４５】
図３０は、図２９（ｃ）に示す従来のメモリ読出し処理の機械語と、図２９（ｅ）に示す本実施形態に係るメモリ読出し処理の機械語と、を比較した図である。従来のメモリ読出し処理における１行目の「ＬＤ  Ｈ，Ｆ０Ｈ」命令をアセンブルした場合、機械語は「２６Ｆ０Ｈ」となり「Ｆ０Ｈ」を含むため、従来のメモリ読出し処理では、特図ステータス用記憶領域や普図ステータス用記憶領域のアドレスの上位（Ｆ０Ｈ）が解析されてしまうおそれがある。一方、本実施形態のメモリ読出し処理における１行目の「ＬＤ  Ａ，Ｔ」命令をアセンブルした場合、機械語は「ＥＤ０１Ｈ」となり「Ｆ０Ｈ」を含まないため、本実施形態のメモリ読出し処理では、特図ステータス用記憶領域や普図ステータス用記憶領域のアドレスの上位（Ｆ０Ｈ）が解析されるおそれが極めて低く、不正行為を未然に防止できる場合がある。
【０２４６】
＜特図１関連抽選処理＞
次に、図３１を用いて、上述の主制御部タイマ割込処理における特図１関連抽選処理について説明する。なお、同図は、特図１関連抽選処理の流れを示すフローチャートである。
【０２４７】
ステップＳ１００１では、特別図柄乱数移行処理を行う。この特別図柄乱数移行処理では、一次記憶した乱数値を、ＲＡＭ３０８に設けた特別図柄関連抽選乱数の格納領域に移行（記憶）する。ステップＳ１００２では、特別図柄当り抽選処理を行う。この特別図柄当り抽選処理では、上述の特図乱数値（特図１乱数値、特図２乱数値）と、ＲＯＭ３０６に予め記憶している特別図柄抽選データを比較する抽選を行い、当該抽選結果に応じて、上述の１５Ｒ大当りフラグ、２Ｒ大当たりフラグ、第１小当たりフラグ、第２小当たりフラグ、第１はずれフラグ、第２はずれフラグ、特図確率変動フラグ、および普図確率変動フラグなどを設定し、特別図柄遊技状態を変動中に設定する。
【０２４８】
ステップＳ１００３では、表示図柄抽選処理を行う。この表示図柄抽選処理では、ＲＡＭ３０８に記憶している表示図柄判定乱数と、ＲＯＭ３０６に予め記憶している表示図柄抽選データを比較する抽選を行い、当該抽選結果に応じて、１５Ｒ特別大当たり図柄（特図Ａ）、１５Ｒ大当たり図柄（特図Ｂ）、突然確変図柄（特図Ｃ）、突然時短図柄（特図Ｄ）、隠れ確変図柄（特図Ｅ）、突然通常図柄（特図Ｆ）、第１小当たり図柄（特図Ｇ）、第２小当たり図柄（特図Ｈ）、第１はずれ図柄（特図Ｉ）、および第２はずれ図柄（特図Ｊ）のいずれか一つの図柄を設定する。
【０２４９】
ステップＳ１００４では、特別図柄変動時間抽選処理を行う（詳細は後述する）。ステップＳ１００５では、特別図柄変動時間設定処理を行う。この特別図柄変動時間設定処理では、上記ステップＳ１００４の特別図柄変動時間抽選処理で取得した変動パターン（パターン番号）に応じたタイマを特別図柄変動タイマとして設定（記憶）する。ステップＳ１００６では、特別図柄保留内情報移行処理を行う。この特別図柄保留内情報移行処理では、特別図柄保留内情報を変動順が先の格納領域に移行（記憶）した後に処理を終了する。
【０２５０】
なお、ここでは一例として、上述の主制御部タイマ割込処理における特図１関連抽選処理（ステップＳ２３１）について説明したが、例えば、特図２関連抽選処理（ステップＳ２２９）や普図関連抽選処理（ステップＳ２２３）についても同様の処理を適用することができる。
【０２５１】
＜主制御部のデータテーブルと変数記憶領域＞
次に、図３２および図３３を用いて、主制御部３００のＲＯＭ３０６に記憶されるデータテーブルの一部と、ＲＡＭ３０８に設けられる変数記憶領域の一部について説明する。
【０２５２】
＜テーブル選択用テーブル＞
図３２（ａ）は、テーブル選択用テーブルの一例を示した図であり、図３３は、主制御部３００のＲＯＭ３０６に記憶されるデータテーブルの定義の一部と、ＲＡＭ３０８に設けられる変数格納領域の定義の一部を示したプログラムリストの一例である。
【０２５３】
図３２（ａ）に示すテーブル選択用テーブルには、後述する第１変動パターン選択テーブルが記憶されるＲＯＭ３０６のアドレスを示す飛先アドレスが、特図変動遊技の保留数毎に０個用〜３個用の４つに区分けされて記憶されている。具体的には、ＲＯＭデータ領域のアドレス１６００Ｈ〜１６０１Ｈに対応するＲＯＭ３０６の２バイトの記憶領域には、保留数が０の場合に参照する第１変動パターン選択テーブルの飛先アドレスとして１７４ＦＨが記憶されている（１６００    ＤＥＦＢ  １７４ＦＨ）。また、ＲＯＭデータ領域のアドレス１６０２Ｈ〜１６０３Ｈに対応するＲＯＭ３０６の２バイトの記憶領域には、保留数が１の場合に参照する第１変動パターン選択テーブルの飛先アドレスとして１７４ＦＨが記憶されている（１６０２    ＤＥＦＢ  １７４ＦＨ）。また、ＲＯＭデータ領域のアドレス１６０４Ｈ〜１６０５Ｈに対応するＲＯＭ３０６の２バイトの記憶領域には、保留数が２の場合に参照する第１変動パターン選択テーブルの飛先アドレスとして１７４ＦＨが記憶されている（１６０４    ＤＥＦＢ  １７４ＦＨ）。また、ＲＯＭデータ領域のアドレス１６０６Ｈ〜１６０７Ｈに対応するＲＯＭ３０６の２バイトの記憶領域には、保留数が３の場合に参照する第１変動パターン選択テーブルの飛先アドレスとして１７５５Ｈが記憶されている（１６０６    ＤＥＦＢ  １７５５Ｈ）。
【０２５４】
＜第１変動パターン選択テーブル＞
図３２（ｂ）は、第１変動パターン選択テーブルの一例を示した図である。この第１変動パターン選択テーブルには、当該テーブルのアドレスと、後述する第２変動パターン選択テーブルが記憶されたアドレスとの差（オフセット）と、乱数の個数が記憶されている。具体的には、ＲＯＭデータ領域のアドレス１７５０Ｈに対応するＲＯＭ３０６の１バイトの記憶領域には、オフセットとしてＡＥＨが記憶されているとともに、このアドレスに連続する１７５１Ｈに対応するＲＯＭ３０６の１バイトの記憶領域には、乱数の個数として２０が記憶され（１７５０Ｈ    ＤＥＦＢ  ＡＥＨ，２０）、以降のＲＯＭデータ領域のアドレス１７５２Ｈ〜１７５９Ｈに対応するＲＯＭ３０６の記憶領域には、図３２（ｂ）および図３３に示すように、１バイト長のオフセットと、１バイト長の乱数の個数が交互に連続して記憶されている。なお、第１変動パターン選択テーブルにおいて乱数の個数は１０進数で示している。
【０２５５】
＜第２変動パターン選択テーブル＞
図３２（ｃ）は、第２変動パターン選択テーブルの一例を示した図である。この第２変動パターン選択テーブルには、パターン番号と、乱数の個数が記憶されている。具体的には、ＲＯＭデータ領域のアドレス１８００Ｈに対応するＲＯＭ３０６の１バイトの記憶領域には、パターン番号として０１Ｈが記憶されているとともに、このアドレスに連続する１８０１Ｈで示される１バイトの領域には、乱数の個数として２５５が記憶され（１８００Ｈ    ＤＥＦＢ  ０１Ｈ，２５５）、以降のＲＯＭデータ領域のアドレス１８０２Ｈ〜１８０ＦＨに対応するＲＯＭ３０６の記憶領域には、図３２（ｃ）および図３３に示すように、１バイト長のパターン番号と、１バイト長の乱数の個数が交互に連続して記憶されている。なお、第２変動パターン選択テーブルにおいて乱数の個数は１０進数で示している。
【０２５６】
＜変数記憶領域＞
図３２（ｄ）は、ＲＷＭ領域のアドレスＦ０４０Ｈ〜Ｆ０４２Ｈに対応するＲＡＭ３０８の記憶領域に設けられる保留数記憶領域、乱数１記憶領域、乱数２記憶領域を示した図である。ＲＷＭ領域のアドレスＦ０４０Ｈに対応するＲＡＭ３０８の１バイトの記憶領域には保留数記憶領域が設けられ（Ｆ０４０    vbHoryuuSP1  ＤＥＦＳ  １）、この保留数記憶領域には保留数が記憶される。また、アドレスＦ０４１Ｈに対応するＲＡＭ３０８の１バイトの記憶領域には乱数１記憶領域が設けられ（Ｆ０４１    vbRndHendou1  ＤＥＦＳ  １）、この乱数１記憶領域には乱数１が記憶される。また、アドレスＦ０４２Ｈに対応するＲＡＭ３０８の１バイトの記憶領域には乱数２記憶領域が設けられ（Ｆ０４２    vbRndHendou2  ＤＥＦＳ  １）、この乱数２記憶領域には乱数２が記憶される。
【０２５７】
＜特別図柄変動時間抽選処理＞
次に、図３４および図３５を用いて、上述の特図１関連抽選処理における特別図柄変動時間抽選処理について説明する。なお、図３４は、特別図柄変動時間抽選処理の流れを示すフローチャートであり、図３５は、特別図柄変動時間抽選処理のプログラムリストの一例である。
【０２５８】
ステップＳ１１０１では、演出用乱数取得処理を行う。この演出用乱数取得処理では、上述の特図１関連抽選処理で取得した特図１乱数値（０〜２５５）を、上述の乱数値１記憶領域（ＲＷＭ領域のアドレスＦ０４１Ｈ）に記憶し、上述の特図２関連抽選処理で取得した特図２乱数値（０〜２５５）を、上述の乱数値２記憶領域（ＲＷＭ領域のアドレスＦ０４２Ｈ）に記憶する。
【０２５９】
次のステップＳ１１０２では、上述のテーブル選択用テーブル（図３２（ａ））の先頭アドレス（本実施形態では、１６００Ｈ）を、ＨＬレジスタに転送する（ＬＤ  ＨＬ，tableSelectTable）。これにより、ＨＬレジスタに１６００Ｈが記憶される。
【０２６０】
次のステップＳ１１０３では、上述の保留数記憶領域（ＲＷＭ領域のアドレスＦ０４０Ｈ）に記憶された保留数を、Ａレジスタに転送する（ＬＤＴ  Ａ，（４０Ｈ)）。ここで、「ＬＤＴ  Ａ、（ｎ：イミディエイト値）」命令は、図３６に示すように、Ｔレジスタを上位、イミディエイト値を下位で示すアドレスのデータをＡレジスタにロードする命令である。本実施形態では、ＴレジスタにＦ０Ｈを記憶しているため、「ＬＤＴ  Ａ，（４０Ｈ）」命令を実行した場合、Ｔレジスタ（Ｆ０Ｈ）を上位、イミディエイト値（４０Ｈ）を下位で示すアドレス（Ｆ０４０Ｈ）のデータ、すなわち保留数記憶領域に記憶された保留数がＡレジスタにロード（転送）される。例えば、保留数記憶領域に記憶された保留数が２の場合には、Ａレジスタに０２Ｈがロード（転送）される。
【０２６１】
次のステップＳ１１０４では、Ａレジスタの値にＡレジスタの値を加算する（ＡＤＤ  Ａ，Ａ）。先の例では、Ａレジスタの値（０２Ｈ）にＡレジスタの値（０２Ｈ）を加算することによってＡレジスタに０４Ｈが記憶される。次のステップＳ１１０５では、ＨＬレジスタにＡレジスタの値を加算する（ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ａ）。詳細は後述するが、ＡＤＤＴＷＯＯＮＥ命令（ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ａ）は、ＨＬレジスタに記憶された２バイト長の値に、Ａレジスタに記憶された１バイト長の値を加算するための命令である。先の例では、ＨＬレジスタ（１６００Ｈ）にＡレジスタの値（０４Ｈ）を加算することによってＨＬレジスタに１６０４Ｈが記憶される。
【０２６２】
次のステップＳ１１０６では、ＨＬレジスタが示すアドレスの値をＤＥレジスタに転送する（ＬＤＴＷＯ  ＤＥ，（ＨＬ））。ここで、「ＬＤＴＷＯ  ＤＥ，（ＨＬ）」命令は、図３６に示すように、ＨＬレジスタが示すアドレスのデータをＤＥレジスタにロードする命令である。先の例では、ＨＬレジスタが示すアドレス（１６０４Ｈ）の値（１７４ＦＨ）をＤＥレジスタに転送することによってＤＥレジスタには１７４ＦＨが記憶される。
【０２６３】
次のステップＳ１１０７では、ＤＥレジスタの値とＨＬレジスタの値を交換する（ＥＸ  ＤＥ，ＨＬ）。先の例では、ＤＥレジスタの値（１７４ＦＨ）とＨＬレジスタの値（１６０４Ｈ）を交換することによって、ＨＬレジスタには１７４ＦＨが記憶され、ＤＥレジスタには１６０４Ｈが記憶される。
【０２６４】
次のステップＳ１１０８では、上述の乱数１記憶領域に記憶された乱数１（特別図柄変動時間判定乱数１）をＡレジスタに転送する（ＬＤＴ  Ａ，（４１Ｈ)）。本実施形態では、ＴレジスタにＦ０Ｈを記憶しているため、「ＬＤＴ  Ａ，（４１Ｈ）」命令を実行した場合、Ｔレジスタ（Ｆ０Ｈ）を上位、イミディエイト値（４１Ｈ）を下位で示すアドレス（７Ｅ４１Ｈ）のデータ、すなわち乱数１記憶領域に記憶された乱数１がＡレジスタにロード（転送）される。例えば、乱数１記憶領域に記憶された乱数１が２５０の場合には、Ａレジスタに２５０が記憶される。
【０２６５】
次のステップＳ１１０９では、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレスに格納された値をＢＣレジスタに転送する（ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ)）。詳細は後述するが、「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ)」命令は、ＨＬレジスタに記憶された２バイト長の値に１を加算し、加算後のＨＬレジスタの値で示されるアドレスに記憶された１バイト長の値を、ＢＣレジスタのうちの下位のＣレジスタに記憶した後に、ＨＬレジスタに記憶された２バイト長の値にさらに１を加算し、加算後のＨＬレジスタの値で示されるアドレスに記憶された１バイト長の値を、ＢＣレジスタのうちの上位のＢレジスタに記憶するための命令である。先の例では、ＨＬレジスタに記憶された２バイト長の値（１７４ＦＨ）に１を加算し、加算後のＨＬレジスタの値（１７５０Ｈ）で示されるアドレスに記憶された１バイト長の値（ＡＥＨ）を、ＢＣレジスタのうちの下位のＣレジスタに記憶した後に、ＨＬレジスタに記憶された２バイト長の値にさらに１を加算し、加算後のＨＬレジスタの値（１７５１Ｈ）で示されるアドレスに記憶された１バイト長の値（２０）を、ＢＣレジスタのうちの上位のＢレジスタに記憶する。
【０２６６】
次のステップＳ１１１０では、Ａレジスタの値からＢレジスタの値を減算する（ＳＵＢ  Ｂ）。先の例では、Ａレジスタの値（２５０）からＢレジスタの値（２０）を減算する。次のステップＳ１１１１では、ステップＳ１１１０の減算の結果、キャリーが発生したか否か、すなわち減算の結果が負の値になったかどうかを判定し、該当する場合にはステップＳ１１１２に進み、該当しない場合には該当するまでステップＳ１１０９〜Ｓ１１１１の処理を繰り返し実行する（ＪＰ  ＮＣ，ＬＯＯＰ０１）。先の例では、ステップＳ１１０９〜Ｓ１１１１の処理を３回繰り返すことによってキャリーが発生し、ステップＳ１１１２に進む際には、Ｂレジスタの値が８、Ｃレジスタ値がＢ０Ｈ、ＨＬレジスタの値が１７５５Ｈになる。
【０２６７】
次のステップＳ１１１２では、ＨＬレジスタの値にＣレジスタの値を加算する（ＡＤＤＴＷＯＯＮＥ）。先の例では、ＨＬレジスタの値（１７５５Ｈ）にＣレジスタの値（Ｂ０Ｈ）を加算することによってＨＬレジスタには１８０５Ｈが記憶される。次のステップＳ１１１３では、上述の乱数２記憶領域（本実施形態では、Ｆ０４２Ｈ）に記憶された乱数２（特別図柄変動時間判定乱数２）をＡレジスタに転送する（ＬＤＴ  Ａ，（４２Ｈ)）。本実施形態では、ＴレジスタにＦ０Ｈを記憶しているため、「ＬＤＴ  Ａ，（４２Ｈ）」命令を実行した場合、Ｔレジスタ（Ｆ０Ｈ）を上位、イミディエイト値（４２Ｈ）を下位で示すアドレス（７Ｅ４２Ｈ）のデータ、すなわち乱数２記憶領域に記憶された乱数２がＡレジスタにロード（転送）される。例えば、乱数２が１４８の場合には、Ａレジスタに１４８が記憶される。
【０２６８】
次のステップＳ１１１４では、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレスに格納された値をＢＣレジスタに転送する（ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ)）。先の例では、ＨＬレジスタに記憶された２バイト長の値（１８０５Ｈ）に１を加算し、加算後のＨＬレジスタの値（１８０６Ｈ）で示されるアドレスに記憶された１バイト長の値（０４Ｈ）を、ＢＣレジスタのうちの下位のＣレジスタに記憶した後に、ＨＬレジスタに記憶された２バイト長の値にさらに１を加算し、加算後のＨＬレジスタの値（１８０７Ｈ）で示されるアドレスに記憶された１バイト長の値（１２８）を、ＢＣレジスタのうちの上位のＢレジスタに記憶する。
【０２６９】
次のステップＳ１１１５では、Ａレジスタの値からＢレジスタの値を減算する（ＳＵＢ  Ｂ）。先の例では、Ａレジスタの値（１４８）からＢレジスタの値（１２８）を減算する。次のステップＳ１１１６では、ステップＳ１１１５の減算の結果、キャリーが発生したか否か、すなわち減算の結果が負の値になったかどうかを判定し、該当する場合にはステップＳ１１１７に進み、該当しない場合には該当するまでステップＳ１１１４〜Ｓ１１１６の処理を繰り返し実行する（ＪＰ  ＮＣ，ＬＯＯＰ０２）。先の例では、ステップＳ１１１４〜Ｓ１１１６の処理を２回繰り返すことによってキャリーが発生し、ステップＳ１１１７に進む際には、Ｂレジスタの値が３２、Ｃレジスタの値が０５Ｈ、ＨＬレジスタの値が１８０９Ｈになる。ステップＳ１１１７では、その他の処理を行った後に処理を終了する。なお、ここでは一例として、特図１や特図２に関する処理について説明したが、例えば、普図の保留数や乱数値についても同様の処理を適用することができる。
【０２７０】
＜主制御部の特殊命令＞
次に、図３６および図３７を用いて、主制御部３００が備える特殊命令について説明する。なお、図３６は、主制御部３００が備える命令の一部と、その説明を示した図である。また、図３７（ａ）は、主制御部３００の命令データの上位ビットと下位ビットを示した図であり、同図（ｂ）は、命令データテーブルの一例を示した図である。
【０２７１】
＜特殊命令／ＬＤＴ命令＞
特殊命令の一つである「ＬＤＴ  Ａ、（ｎ：イミディエイト値）」命令は、上述のとおり、Ｔレジスタを上位、イミディエイト値を下位で示すアドレスのデータをＡレジスタにロードする命令であり、例えば、上述の特別図柄変動時間抽選処理のステップＳ１１０３では、「ＬＤＴ  Ａ、（４０Ｈ）」命令を実行することによって、Ｔレジスタ（Ｆ０Ｈ）を上位、イミディエイト値（４０Ｈ）を下位で示すアドレス（Ｆ０４０Ｈ）のデータ、すなわち保留数記憶領域に記憶された保留数をＡレジスタにロード（転送）している。
【０２７２】
また、図示はしないが、主制御部３００は、さらに、Ａレジスタに記憶されたデータを、Ｔレジスタを上位、イミディエイト値を下位で示すアドレスにロードするための「ＬＤＴ  （ｎ：イミディエイト値），Ａ」命令を備えている。一方、Ｔレジスタを上位、汎用レジスタ（例えば、Ｈレジスタ）を下位で示すアドレスのデータをＡレジスタにロードする命令（例えば、「ＬＤＴ  Ａ，Ｈ」のような命令）や、Ａレジスタに記憶されたデータを、Ｔレジスタを上位、汎用レジスタ（例えば、Ｈレジスタ）を下位で示すアドレスにロードするための命令（例えば、「ＬＤＴ  Ｈ，Ａ」のような命令）は備えていない。
【０２７３】
すなわち、ＬＤＴ命令によって指定可能なアドレスの下位バイトは、イミディエイト値に限定されており、汎用レジスタを指定することは禁止されている（機械語にアセンブルされる過程でエラーとなりアセンブルすることができない）。このため、ＬＤＴ命令では、プログラムリストの確認などを行う際にアドレスの確認が容易となる上に、Ｔレジスタの値（アドレスの上位バイト）を不用意に変更することができなくなる結果、コーディングミスや不具合の発生を減少させることができる場合がある。
【０２７４】
＜特殊命令／ＬＤＴＷＯ命令＞
特殊命令の一つである「ＬＤＴＷＯ  ＯＰ１，（ＯＰ２）」命令は、上述のとおり、第２オペランドＯＰ２で示される２つのレジスタが示すアドレスのデータを第１オペランドＯＰ１で示される２つのレジスタにロードする命令であり、「ＬＤＴＷＯ  （ＯＰ２），ＯＰ１」命令は、第２オペランドＯＰ２で示される２つのレジスタが示すアドレスに第１オペランドＯＰ１で示される２つのレジスタのデータをロードする命令であり、例えば、上述の特別図柄変動時間抽選処理のステップＳ１１０６では、「ＬＤＴＷＯ  ＤＥ，（ＨＬ）」命令を実行することによって、ＨＬレジスタが示すアドレス（１６０４Ｈ）の値（１７４ＦＨ）をＤＥレジスタにロード（転送）してＤＥレジスタには１７４ＦＨを記憶している。ＯＰ２がＨＬレジスタではないＢＣレジスタまたはＤＥレジスタである場合、ＯＰ１がＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタ、ＩＸレジスタ、ＩＹレジスタとなり、ＯＰ２がＨＬレジスタである場合のみ、ＯＰ１がＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタ、ＡＣレジスタ、ＡＥレジスタ、ＢＤレジスタ、ＩＸレジスタ、ＩＹレジスタとなる。ＬＤＴＷＯ命令は、ＡレジスタやＨＬレジスタを保護するのに適している。
【０２７５】
また、ＬＤＴＷＯ命令では、必要なステート数は１４ステート、必要なバイト数は２バイトである。一方、従来の命令によってＬＤＴＷＯ命令と同様の処理を行う場合には、図３６に示すように、必要なステート数は１４ステート（＝４＋６＋４）、必要なバイト数は３バイト（＝１＋１＋１）である。したがって、ＨＬレジスタが示すアドレスのデータをＤＥレジスタにロードする場合にＬＤＴＷＯ命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているＲＯＭの記憶領域を有効に利用することができる場合がある。また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。
【０２７６】
＜特殊命令／ＡＤＤＴＷＯＯＮＥ命令＞
特殊命令の一つであるＡＤＤＴＷＯＯＮＥ命令（ＡＤＤＴＷＯＯＮＥ  ＯＰ１，ＯＰ２）は、第１オペランドＯＰ１で示される２つのレジスタに記憶された２バイト長の値に、第２オペランドＯＰ２で示されるレジスタに記憶された１バイト長の値（または、第２オペランドＯＰ２で示される１バイト長のイミディエイト値）を加算するための命令である。ＡＤＤＴＷＯＯＮＥ命令の命令コードの上位１バイトは固定値（この例ではＥＤＨ)とし、下位バイトは、命令データテーブルの上位ビット４Ｈ（０１００Ｂ）と下位ビット０Ｈ（００００Ｂ）〜２Ｈ（００１０Ｂ）の組合せと、命令データテーブルの上位ビット４Ｈ（０１００Ｂ）と下位ビット４Ｈ（０１００Ｂ）〜７Ｈ（０００１Ｂ）、９Ｈ（１００１Ｈ）の組合せに割り当てている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令（隠し命令）を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。なお、本実施形態では、特殊命令の命令コードを２バイト長としているが、命令コードのバイト長は特に限定されず、例えば１バイト長でもよい。また、ＡＤＤＴＷＯＯＮＥ命令のうちの特定の命令（例えば、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ａ」命令）のみ、他のＡＤＤＴＷＯＯＮＥ命令よりも命令コードが短く（例えば、１バイト長）てもよい。また、「ＡＤＤＴＷＯＯＮＥ  ＯＰ１，Ａ」命令のうちの特定の命令（例えば、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ａ」命令）のみ、他のＡＤＤＴＷＯＯＮＥ命令よりも命令コードが短く（例えば、１バイト長）てもよい。この場合、該命令の利便性を高めることができる。
【０２７７】
「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｃ」命令を例に挙げると、第１オペランドで示されるペアレジスタＨＬに記憶された２バイト長の値に、第２オペランドで示されるＣレジスタに記憶された１バイト長の値を加算する場合に使用される命令であり、例えば、上述の特別図柄変動時間抽選処理のステップＳ１１１２では、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｃ」を実行することによって、ＨＬレジスタに記憶された２バイト長の値（１７５５Ｈ）に、Ｃレジスタに記憶された１バイト長の値（Ｂ０Ｈ）を加算することによって、ＨＬレジスタの値を１８０５Ｈに更新している。なお、ＡＤＤＴＷＯＯＮＥ命令（ＡＤＤＴＷＯＯＮＥ  ＯＰ１，ＯＰ２）は、キャリーが発生し難いが、ＨＬレジスタに記憶された２バイト長の値（例えば、ＦＦ０１Ｈ）にＣレジスタに記憶された１バイト長の値（例えば、ＦＦＨ）を加算する場合には、キャリーが発生する。すなわち、ＡＤＤＴＷＯＯＮＥ命令（ＡＤＤＴＷＯＯＮＥ  ＯＰ１，ＯＰ２）を実行後にキャリーが発生する場合には、ＨレジスタがＦＦＨであると判断することができる。
【０２７８】
また、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｃ」命令では、必要なステート数は８ステート、必要なバイト数は２バイトである。一方、従来の命令によって「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｃ」命令と同様の処理を行う場合には、図３６に示すように、必要なステート数は２２ステート（＝４＋４＋１０＋４）、必要なバイト数は６バイト（＝１＋１＋３＋１）である。したがって、ＨＬレジスタに記憶された２バイト長の値にＣレジスタに記憶された１バイト長の値を加算する場合に「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｃ」命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているＲＯＭの記憶領域を有効に利用することができる場合がある。また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。
【０２７９】
また、従来ＣＰＵに実行可能に備えられている８ビット演算命令では、「ＡＤＤ  Ａ，Ｅ」命令のように、加算結果（「ＳＵＢ  Ａ，Ｅ」命令の場合は減算結果）をＡレジスタに入れるしかなかったが、ＡＤＤＴＷＯＯＮＥ命令を実行して「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｅ」命令とすることで「ＡＤＤ  Ｌ，Ｅ」を可能にしており、Ａレジスタを使用せずに温存することができる（使用用途が広いＡレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある）。また、「ＬＤ  Ｈ，００Ｈ」命令を実行してＨレジスタに００Ｈを転送した後に、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｅ」命令を実行してＬレジスタにＥレジスタの値を加算して「ＳＲＬ  Ｈ」命令を実行してＬレジスタが桁あふれしたかどうかをキャリーフラグが立ったか否かで確認することでＡレジスタを使用せずに温存することができる（使用用途が広いＡレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある）。
【０２８０】
すなわち、「ＡＤＤ  Ａ，Ｌ」命令は実行可能であり、「ＡＤＤ  Ｌ，Ａ」命令は実行不可能であるが、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ａ」命令を実行可能にした命令セットを備えたことにより、命令セットにおける命令数を１つ増やすだけで、８ビット演算の加算結果を格納可能なレジスタを増やすことができるとともに、１６ビット−８ビット演算も可能にしており、命令セットを１命令増やすだけで２つの機能を実現可能としている。
【０２８１】
換言すると、加算命令「特定のレジスタペア←特定のレジスタペア＋特定のレジスタ」を命令セットに含むとともに、特定のレジスタペアの下位側のレジスタを８ビット演算のアキュムレータとは異なるレジスタとした。
【０２８２】
従来では、命令セットにおける命令数を増やしたくなかったため、１６ビット演算と８ビット演算しか搭載せず、さらに１６ビットのアキュムレータは複数のレジスタペアのうちの特定レジスタペアのみとし、８ビットのアキュムレータは複数のレジスタのうちの特定レジスタのみとしていたが、上記構成により、少ない命令数の増加で複数の機能を実現することができる。
【０２８３】
また、ＨＬレジスタが０か否かを確認するために従来では、「ＬＤ  Ａ，Ｈ」命令でＨレジスタの値をＡレジスタに転送した後に「ＯＲ  Ａ，Ｌ」命令を実行後に０フラグが立つか否かでＨＬレジスタが０か否かを確認していた。すなわち、８ビット演算を実行して０か否かを確認しているため、８ビット演算のアキュムレータ（この場合はＡレジスタ）を使用してしまっていた。しかし、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，ｎ（００Ｈ）」命令後に０フラグが立つか否かを確認することによってＡレジスタを使用しないで済む。すなわち、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，ｎ」命令は、１６ビットレジスタペアに８ビットの直値を加算する機能と、１６ビットレジスタペアが０か否かを確認する機能と、Ａレジスタを温存する機能とを備えている。また、命令に直値を使用しているので、プログラムソースの可読性を向上できる。
【０２８４】
＜特殊命令／ＩＮＣＴＥＮＳＯＵ命令＞
特殊命令の一つであるＩＮＣＴＥＮＳＯＵ命令（ＩＮＣＴＥＮＳＯＵ  ＯＰ１，ＯＰ２）は、第２オペランドＯＰ２で示される２つのレジスタに記憶された２バイト長の値に１を加算し、加算後の２つのレジスタの値で示されるアドレスに記憶された１バイト長の値を、第１オペランドＯＰ１で示される２つのレジスタのうちの下位のレジスタに記憶した後に、第２オペランドＯＰ２で示される２つのレジスタに記憶された２バイト長の値にさらに１を加算し、加算後の２つのレジスタの値で示されるアドレスに記憶された１バイト長の値を、第１オペランドＯＰ１で示される２つのレジスタのうちの上位のレジスタに記憶するための命令である。ＩＮＣＴＥＮＳＯＵ命令の命令コードの上位１バイトは固定値（この例ではＥＤＨ)とし、下位バイトは、命令データテーブルの上位ビット１Ｈ（０００１Ｂ）と下位ビット８Ｈ（１０００Ｂ）〜９Ｈ（１０００１Ｂ）の組合せと、命令データテーブルの上位ビットＤＨ（１１０１Ｂ）と下位ビット４Ｈ（０１００Ｂ）〜６Ｈ（０１１０Ｂ）の組合せに割り当てている。本例では、第１オペランドＯＰ１にアキュムレータを含む機械命令のコードを連番（例えば、「ＩＮＣＴＥＮＳＯＵ  ＡＣ，（ＨＬ）」命令のコードがＥＤＤ４Ｈ、「ＩＮＣＴＥＮＳＯＵ  ＡＥ，（ＨＬ）」のコードがＥＤＤ５Ｈ）にしている。また、第１オペランドＯＰ１にアキュムレータを含む命令のうちの特定のＩＮＣＴＥＮＳＯＵ命令の機械命令のコード（例えば、「ＩＮＣＴＥＮＳＯＵ  ＡＥ，（ＨＬ）」命令のコードがＥＤＤ５Ｈ）と、第１オペランドＯＰ１にアキュムレータを含まない命令のうちの特定のＩＮＣＴＥＮＳＯＵ命令の機械命令のコード（例えば、「ＩＮＣＴＥＮＳＯＵ  ＢＤ，（ＨＬ）」命令のコードがＥＤＤ６Ｈ）を連番にしている。また、第１オペランドＯＰ１にアキュムレータを含まずペアレジスタを含む命令のうちの複数のＩＮＣＴＥＮＳＯＵ命令の機械命令のコード（例えば、「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令のコードがＥＤ１８Ｈ、「ＩＮＣＴＥＮＳＯＵ  ＤＥ，（ＨＬ）」命令のコードがＥＤ１９Ｈ）と、第１オペランドＯＰ１にアキュムレータを含まない命令のうちの特定のＩＮＣＴＥＮＳＯＵ命令の機械命令のコード（例えば、「ＩＮＣＴＥＮＳＯＵ  ＢＤ，（ＨＬ）」命令のコードがＥＤＤ６Ｈ）とを離れた番号にしている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令（隠し命令）を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。
【０２８５】
「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令を例に挙げると、第２オペランドで示されるペアレジスタＨＬに記憶された２バイト長の値に１を加算し、加算後のペアレジスタＨＬの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、第１オペランドで示されるペアレジスタＢＣのうちの下位のレジスタＣに記憶した後に、第２オペランドで示されるペアレジスタＨＬに記憶された２バイト長の値にさらに１を加算し、加算後のペアレジスタＨＬの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、第１オペランドで示されるペアレジスタＢＣのうちの上位のレジスタＢに記憶するための命令である。ＩＮＣＴＥＮＳＯＵ命令は、ＨＬレジスタの値で示されるアドレスの次以降のアドレスに格納されている値をレジスタに転送するのに適している。また、ＩＮＣＴＥＮＳＯＵ命令は、該命令実行後にＨＬレジスタに記憶された値が示すアドレスに格納された値に基づいて該命令を繰り返すか否かの判断処理を行う場合、繰り返すと判断した場合には該命令でＨＬレジスタにプラス１することでＨＬレジスタに記憶された値が示すアドレスを次のアドレスにできるために該命令を使用するのに適している。
【０２８６】
例えば、上述の特別図柄変動時間抽選処理のステップＳ１１０９では、「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」を実行することによって、ＨＬレジスタに記憶された２バイト長の値（１７４ＦＨ）に１を加算し、加算後のＨＬレジスタの値（１７５０Ｈ）で示されるアドレスに記憶された１バイト長の値（ＡＥＨ）を、ＢＣレジスタのうちの下位のＣレジスタに記憶した後に、ＨＬレジスタに記憶された２バイト長の値にさらに１を加算し、加算後のＨＬレジスタの値（１７５１Ｈ）で示されるアドレスに記憶された１バイト長の値（２０）を、ＢＣレジスタのうちの上位のＢレジスタに記憶している。
【０２８７】
また、「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令では、必要なステート数は１４ステート、必要なバイト数は２バイトである。一方、従来の命令によってＩＮＣＴＥＮＳＯＵ命令と同様の処理を行う場合には、図３６に示すように、必要なステート数は２６ステート（＝６＋７＋６＋７）、必要なバイト数は４バイト（＝１＋１＋１＋１）である。したがって、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレスに格納された値をＢＣレジスタに転送する場合に「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているＲＯＭの記憶領域を有効に利用することができる場合がある。
【０２８８】
また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。特に、本実施形態では、ステップＳ１１０９〜Ｓ１１１１のループ処理、またはステップＳ１１１４〜Ｓ１１１６のループ処理においてＩＮＣＴＥＮＳＯＵ命令を繰り返し実行することになるため、処理速度の短縮の効果が高い。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。
【０２８９】
＜特殊命令／ＴＥＮＳＯＵＩＮＣ命令＞
特殊命令の一つであるＴＥＮＳＯＵＩＮＣ命令（ＴＥＮＳＯＵＩＮＣ  ＯＰ１，ＯＰ２)は、第２オペランドＯＰ２で示される２つのレジスタの値で示されるアドレスに記憶された１バイト長の値を、第１オペランドＯＰ１で示される２つのレジスタのうちの下位のレジスタに記憶し、第２オペランドＯＰ２で示される２つのレジスタに記憶された２バイト長の値に１を加算した後に、第２オペランドＯＰ２で示される２つのレジスタの値で示されるアドレスに記憶された１バイト長の値を、第１オペランドＯＰ１で示される２つのレジスタのうちの上位のレジスタに記憶し、第２オペランドＯＰ２で示される２つのレジスタに記憶された２バイト長の値にさらに１を加算するための命令である。ＴＥＮＳＯＵＩＮＣ命令の命令コードの上位１バイトは固定値（この例ではＥＤＨ)とし、下位バイトは、命令データテーブルの上位ビット１Ｈ（０００１Ｂ）と下位ビット６Ｈ（０１１０Ｂ）〜７Ｈ（０１１１Ｂ）の組合せと、命令データテーブルの上位ビットＤＨ（１１０１Ｂ）と下位ビット０Ｈ（００００Ｂ）〜２Ｈ（００１０Ｂ）の組合せに割り当てている。本例では、第１オペランドＯＰ１にアキュムレータを含む機械命令のコードを連番（例えば、「ＴＥＮＳＯＵＩＮＣ  ＡＣ，（ＨＬ）」命令のコードがＥＤＤ０Ｈ、「ＴＥＮＳＯＵＩＮＣ  ＡＥ，（ＨＬ）」のコードがＥＤＤ１Ｈ）にしている。また、第１オペランドＯＰ１にアキュムレータを含む命令のうちの特定のＴＥＮＳＯＵＩＮＣ命令の機械命令のコード（例えば、「ＴＥＮＳＯＵＩＮＣ  ＡＥ，（ＨＬ）」命令のコードがＥＤＤ１Ｈ）と、第１オペランドＯＰ１にアキュムレータを含まない命令のうちの特定のＴＥＮＳＯＵＩＮＣ命令の機械命令のコード（例えば、「ＴＥＮＳＯＵＩＮＣ  ＢＤ，（ＨＬ）」命令のコードがＥＤＤ２Ｈ）を連番にしている。また、第１オペランドＯＰ１にアキュムレータを含まずペアレジスタを含む命令のうちの複数のＴＥＮＳＯＵＩＮＣ命令の機械命令のコード（例えば、「ＴＥＮＳＯＵＩＮＣ  ＢＣ，（ＨＬ）」命令のコードがＥＤ１６Ｈ、「ＴＥＮＳＯＵＩＮＣ  ＤＥ，（ＨＬ）」命令のコードがＥＤ１７Ｈ）と、第１オペランドＯＰ１にアキュムレータを含まない命令のうちの特定のＴＥＮＳＯＵＩＮＣ命令の機械命令のコード（例えば、「ＴＥＮＳＯＵＩＮＣ  ＢＤ，（ＨＬ）」命令のコードがＥＤＤ２Ｈ）とを離れた番号にしている。また、ＴＥＮＳＯＵＩＮＣ命令とＩＮＣＴＥＮＳＯＵ命令は、同一の第１オペランドＯＰ１の命令はＴＥＮＳＯＵＩＮＣ命令のほうがＩＮＣＴＥＮＳＯＵ命令よりも番号が若い（例えば、「ＴＥＮＳＯＵＩＮＣ  ＢＣ，（ＨＬ）」命令のコードがＥＤ１６Ｈ、「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令のコードがＥＤ１８Ｈ）。また、第１オペランドＯＰ１にアキュムレータを含むＴＥＮＳＯＵＩＮＣ命令の機械命令のコード（例えば、「ＴＥＮＳＯＵＩＮＣ  ＡＣ，（ＨＬ）」命令のコードがＥＤＤ０Ｈ）と、第１オペランドＯＰ１にアキュムレータを含むＩＮＣＴＥＮＳＯＵ命令の機械命令のコード（例えば、「ＩＮＣＴＥＮＳＯＵ  ＡＣ，（ＨＬ）」命令のコードがＥＤＤ４Ｈ）とは離れた番号、および／またはＴＥＮＳＯＵＩＮＣ命令とＩＮＣＴＥＮＳＯＵ命令以外の命令の機械���令のコード（例えば、コードＥＤＤ３Ｈ）の前後にしている。
【０２９０】
「ＴＥＮＳＯＵＩＮＣ  ＢＣ，（ＨＬ）」命令を例に挙げると、第２オペランドで示されるペアレジスタＨＬの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、第１オペランドで示されるペアレジスタＢＣのうちの下位のレジスタＣに記憶し、第２オペランドで示されるペアレジスタＨＬに記憶された２バイト長の値に１を加算した後に、第２オペランドで示されるペアレジスタＨＬの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、第１オペランドで示されるペアレジスタＢＣのうちの上位のレジスタＢに記憶し、第２オペランドで示されるペアレジスタＨＬに記憶された２バイト長の値にさらに１を加算するための命令である。ＴＥＮＳＯＵＩＮＣ命令は、ＨＬレジスタの値で示されるアドレス以降のアドレスに格納されている値をレジスタに転送するのに適している。また、ＴＥＮＳＯＵＩＮＣ命令は、該命令を実行後にＢレジスタの値が０か否かで該命令を繰り返すか否かの判断処理を行う場合、繰り返すと判断した場合には判断前にＨＬレジスタにプラス１されているために該命令を使用するのに適している。また、繰り返し処理を行わない場合にもＴＥＮＳＯＵＩＮＣ命令後はＨＬレジスタの値をプラス１した状態で次の処理を行うことができるので該命令を使用するのに適している。
【０２９１】
また、「ＴＥＮＳＯＵＩＮＣ  ＢＣ，（ＨＬ）」命令では、必要なステート数は１４ステート、必要なバイト数は２バイトである。一方、従来の命令によってＴＥＮＳＯＵＩＮＣ命令と同様の処理を行う場合には、図３６に示すように、必要なステート数は２６ステート（＝７＋６＋７＋６）、必要なバイト数は４バイト（＝１＋１＋１＋１）である。したがって、ＨＬレジスタの値で示されるアドレスと次のアドレスに格納された値をＢＣレジスタに転送する場合に「ＴＥＮＳＯＵＩＮＣ  ＢＣ，（ＨＬ）」命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているＲＯＭの記憶領域を有効に利用することができる場合がある。また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。なお、ＩＮＣＴＥＮＳＯＵ命令とＴＥＮＳＯＵＩＮＣ命令は、ＣＰＵに両方実行可能に備えるようにしても良いし、何れか一方のみ実行可能に備えるようにしてもよい。
【０２９２】
＜特殊命令／ＣＰＴ命令＞
特殊命令の一つである「ＣＰＴ  Ａ，（ｎ：イミディエイト値）」命令は、Ａレジスタの内容と、Ｔレジスタを上位、イミディエイト値を下位で示すアドレスのデータを比較する命令であり、例えば、ＴレジスタにＦ０Ｈが記憶された状態で「ＣＰＴ  Ａ，（４０Ｈ）」を実行した場合、Ａレジスタの内容と、Ｔレジスタを上位、イミディエイト値を下位で示すアドレス（Ｆ０４０Ｈ）のデータが比較される。
＜特殊命令／ＡＤＤＯＮＥＴＷＯ命令＞
特殊命令の一つであるＡＤＤＯＮＥＴＷＯ命令（ＡＤＤＯＮＥＴＷＯ  ＯＰ１，ＯＰ２）は、第１オペランドＯＰ１で示されるレジスタに記憶された１バイト長の値に、第２オペランドＯＰ２で示される２つのレジスタに記憶された２バイト長の値（または、第２オペランドＯＰ２で示される２バイト長のイミディエイト値）を加算するための命令である。ＡＤＤＯＮＥＴＷＯ命令の命令コードの上位１バイトは固定値（この例ではＥＤＨ)とし、下位バイトは、命令データテーブルの上位ビット４Ｈ（０１００Ｂ）と下位ビットＡＨ（１０１０Ｂ）の組合せに割り当てている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令（隠し命令）を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。なお、ＡＤＤＯＮＥＴＷＯ命令（ＡＤＤＯＮＥＴＷＯ  ＯＰ１，ＯＰ２）は、キャリーが発生し易く、Ａレジスタに記憶された１バイト長の値（例えば、００Ｈ）にＨＬレジスタに記憶された２バイト長の値（例えば、０１００Ｈ）を加算する場合には、キャリーが発生する。すなわち、Ｈレジスタが００Ｈ以外である場合にＡＤＤＯＮＥＴＷＯ命令（ＡＤＤＯＮＥＴＷＯ  ＯＰ１，ＯＰ２）を実行することでキャリーを発生させることができる。なお、ＡＤＤＴＷＯＯＮＥ命令とＡＤＤＯＮＥＴＷＯ命令は、ＣＰＵに両方備えるようにしても良いし、何れか一方のみ備えるようにしてもよい。
【０２９３】
＜特殊命令／ＳＵＢＴＷＯＯＮＥ命令＞
特殊命令の一つであるＳＵＢＴＷＯＯＮＥ命令（ＳＵＢＴＷＯＯＮＥ  ＯＰ１，ＯＰ２）は、第１オペランドＯＰ１で示される２つのレジスタに記憶された２バイト長の値から、第２オペランドＯＰ２で示されるレジスタに記憶された１バイト長の値（または、第２オペランドＯＰ２で示される１バイト長のイミディエイト値）を減算するための命令である。ＳＵＢＴＷＯＯＮＥ命令の命令コードの上位１バイトは固定値（この例ではＥＤＨ)とし、下位バイトは、命令データテーブルの上位ビット４Ｈ（０１００Ｂ）と下位ビット８Ｈ（１０００Ｂ）の組合せに割り当てている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令（隠し命令）を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。なお、ＳＵＢＴＷＯＯＮＥ命令（ＳＵＢＴＷＯＯＮＥ  ＯＰ１，ＯＰ２）は、キャリーが発生し難いが、ＨＬレジスタに記憶された２バイト長の値（例えば、０００１Ｈ）からＡレジスタに記憶された１バイト長の値（例えば、ＦＦＨ）を減算する場合には、キャリーが発生する。すなわち、ＳＵＢＴＷＯＯＮＥ命令（ＳＵＢＴＷＯＯＮＥ  ＯＰ１，ＯＰ２）を実行後にキャリーが発生する場合には、Ｈレジスタが００Ｈであると判断することができる。
【０２９４】
＜データテーブルの変形例＞
次に、図３８を用いて、上述のデータテーブルの変形例について説明する。なお、同図は、テーブル選択用テーブル、第１変動パターン選択テーブル、および第２変動パターン選択テーブルの変形例を示した図であり、上記図３２に相当する図である。
【０２９５】
同図（ｂ）に示す第１変動パターン選択テーブルでは、上記図３２（ｂ）に示す第１変動パターン選択テーブルに対して、乱数の個数の項目を乱数の上限の項目に変更している。また、同図（ｃ）に示す第２変動パターン選択テーブルでは、上記図３２（ｃ）に示す第２変動パターン選択テーブルに対して、乱数の個数の値を変更している。
【０２９６】
＜特別図柄変動時間抽選処理の変形例＞
次に、図３９を用いて、上記図３４に示す特別図柄変動時間抽選処理の変形例について説明する。なお、同図は、変形例に係る特別図柄変動時間抽選処理の流れを示すフローチャートである。
【０２９７】
この変形例に係る特別図柄変動時間抽選処理では、上記図３４に示す特別図柄変動時間抽選処理の「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令を用いたステップＳ１１０９の処理やステップＳ１１１４の処理を、「ＩＮＣＴＥＮＳＯＵ  ＡＣ，（ＨＬ）」命令を用いたステップＳ１１５０の処理やステップＳ１１５２の処理に変更するとともに、ステップＳ１１５１、Ｓ１１５３において、上述のＣＰＴ命令を利用している。
【０２９８】
具体的には、ステップＳ１１５０では、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレスに格納された値をＡＣレジスタに転送する（ＩＮＣＴＥＮＳＯＵ  ＡＣ，（ＨＬ)）。例えば、ＨＬレジスタの値が１７４ＦＨの場合には、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレス（１７５０Ｈ、１７５１Ｈ）に格納された値をＡＣレジスタに転送することによって、Ａレジスタに１９を、ＣレジスタにＡＥＨを記憶する。
【０２９９】
次のステップＳ１１５１では、「ＣＰＴ  Ａ，（４１Ｈ）」を実行することによって、Ａレジスタの内容と、Ｔレジスタ（Ｆ０Ｈ）を上位、イミディエイト値（４１Ｈ）を下位で示すアドレス（Ｆ０４１Ｈ）のデータ、すなわち、上述の乱数１記憶領域に記憶された乱数１と、を比較する（Ａレジスタの値から乱数１を減算する）。次のステップＳ１１５４では、ステップＳ１１５１の比較（減算）の結果、キャリーが発生しないか否か、すなわち減算の結果が正の値になったかどうかを判定し、該当する場合にはステップＳ１１１２に進み、該当しない場合には該当するまでステップＳ１１５０〜Ｓ１１５１の処理を繰り返し実行する。
【０３００】
また、ステップＳ１１５２では、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレスに格納された値をＡＣレジスタに転送する（ＩＮＣＴＥＮＳＯＵ  ＡＣ，（ＨＬ)）。例えば、ＨＬレジスタの値が１７ＦＦＨの場合には、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレス（１８００Ｈ、１８０１Ｈ）に格納された値をＡＣレジスタに転送することによって、Ａレジスタに２５５を、Ｃレジスタに０１Ｈを記憶する。
【０３０１】
次のステップＳ１１５３では、「ＣＰＴ  Ａ，（４２Ｈ）」を実行することによって、Ａレジスタの内容と、Ｔレジスタ（Ｆ０Ｈ）を上位、イミディエイト値（４２Ｈ）を下位で示すアドレス（Ｆ０４２Ｈ）のデータ、すなわち、上述の乱数２記憶領域に記憶された乱数２を比較する（Ａレジスタの値から乱数２を減算する）。次のステップＳ１１５５では、ステップＳ１１５３の比較（減算）の結果、キャリーが発生しないか否か、すなわち減算の結果が正の値になったかどうかを判定し、該当する場合にはステップＳ１１１７に進み、該当しない場合には該当するまでステップＳ１１５２〜Ｓ１１５３の処理を繰り返し実行する。
【０３０２】
＜初期設定処理＞
次に、図４０および図４１を用いて、上述の主制御部メイン処理の初期設定２（ステップＳ１０７）で実行される初期設定処理について説明する。なお、図４０（ａ）は、ＲＯＭ３０６に記憶される初期設定データテーブルの一例を示した図であり、同図（ｂ）は、初期設定処理後のＲＡＭ３０８の記憶領域の一部を示した図であり、同図（ｃ）は、初期設定処理の流れを示すフローチャートである。また、図４１は、初期設定処理のプログラムリストの一例である。
【０３０３】
ステップＳ１２０１では、上述のＴＥＮＳＯＵＩＮＣ命令（「ＴＥＮＳＯＵＩＮＣ  ＢＤ，（ＨＬ）」によって、ＨＬレジスタの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、ＢＤレジスタのうちの下位のＤレジスタに記憶し、ＨＬレジスタに記憶された２バイト長の値に１を加算した後に、ＨＬレジスタの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、ＢＣレジスタのうちの上位のＢレジスタに記憶し、ＨＬレジスタに記憶された２バイト長の値にさらに１を加算する。例えば、ＨＬレジスタに、同図（ａ）に示す初期設定データテーブルの先頭アドレスである１００ＤＨを設定した場合には、ＤレジスタにはＦ０Ｈが、Ｂレジスタには３が記憶される。
【０３０４】
次のステップＳ１２０２では、上述のＴＥＮＳＯＵＩＮＣ命令（「ＴＥＮＳＯＵＩＮＣ  ＡＥ，（ＨＬ）」によって、ＨＬレジスタの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、ＡＥレジスタのうちの下位のＥレジスタに記憶し、ＨＬレジスタに記憶された２バイト長の値に１を加算した後に、ＨＬレジスタの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、ＡＥレジスタのうちの上位のＡレジスタに記憶し、ＨＬレジスタに記憶された２バイト長の値にさらに１を加算する。例えば、先の例では、Ｅレジスタには、１００ＦＨに記憶されている値である１７Ｈが、Ａレジスタには、１０１０に記憶されている値である０１Ｈが記憶され、ＨＬレジスタの値は１０１１Ｈに更新される。
【０３０５】
次のステップＳ１２０３では、Ａレジスタの値をＤＥレジスタの値で示されるアドレス（ＤＥ）に記憶する。先の例では、Ａレジスタの値である０１Ｈを、ＤＥレジスタの値で示されるアドレスであるＲＡＭ３０８の７Ｅ１７Ｈに記憶する（同図（ｂ）参照）。
【０３０６】
次のステップＳ１２０４では、Ｂレジスタの値から１を減算し、減算結果が０になるまでステップＳ１２０２〜Ｓ１２０３の処理を繰り返し実行し（ステップＳ１２０２の処理のアドレスまで相対ジャンプして処理を実行し）、減算結果が０になった場合にはステップＳ１２０５に進む。
【０３０７】
先の例では、Ｂレジスタが２の場合には、ステップＳ１２０２の処理により、Ｅレジスタには、１０１１Ｈに記憶されている値である２０Ｈが、Ａレジスタには、１０１２Ｈに記憶されている値である１６Ｈが記憶され、ＨＬレジスタの値は１０１３Ｈに更新され、ステップＳ１２０３の処理により、Ａレジスタの値である１６Ｈを、ＤＥレジスタの値で示されるアドレスであるＲＡＭ３０８のＦ０２０Ｈに記憶する（同図（ｂ）参照）。
【０３０８】
また、Ｂレジスタが１の場合には、ステップＳ１２０２の処理により、Ｅレジスタには、１０１３Ｈに記憶されている値である３ＡＨが、Ａレジスタには、１０１４Ｈに記憶されている値である０６Ｈが記憶され、ＨＬレジスタの値は１０１５Ｈに更新され、ステップＳ１２０３の処理により、Ａレジスタの値である０６Ｈを、ＤＥレジスタの値で示されるアドレスであるＲＡＭ３０８のＦ０３ＡＨに記憶する（同図（ｂ）参照）。なお、上記Ｆ０１７Ｈ、Ｆ０２０Ｈ、Ｆ０３ＡＨに記憶する遊技設定（遊技制御に用いる各種情報）としては、例えば電源ステータス、払出制御コマンド加工種別、表示器表示ステータスなどが挙げられ、また、遊技設定の数は、複数でもよいし、１つのみでもよい。また、初期設定処理（ｍｏＤａｔａＳｅｔ）は、処理開始時のＨＬレジスタの値を異ならせることにより（ＨＬレジスタに設定するアドレスを、初期設定データテーブルとは異なる他のテーブルの先頭アドレスなどに設定することにより）、複数の処理から呼び出し可能な（例えば、ＨＬレジスタを引数として呼び出し可能な）汎用的なデータ設定処理モジュールとして扱ってもよい。この場合、プログラム容量の削減や処理速度の向上を図ることができる。
【０３０９】
この初期設定処理では、ステップＳ１２０１、Ｓ１２０２でＴＥＮＳＯＵＩＮＣ命令を使用しているため、ステート数を従来の２６ステートから１４ステートに削減することができ、処理時間を短縮することができる上に、バイト数を従来の４バイトから２バイトに削減することができ、プログラム容量を削減することができる。特に、この例では、ステップＳ１２０２〜Ｓ２０４のループ処理においてＴＥＮＳＯＵＩＮＣ命令を繰り返し実行することになるため、処理速度の短縮の効果が高い。
【０３１０】
また、ＴＥＮＳＯＵＩＮＣ命令の中でも、Ａレジスタ（アキュムレータ）と他のレジスタのペアをオペランドとする命令（本実施形態では、ＴＥＮＳＯＵＩＮＣ  ＡＣ，（ＨＬ）、ＴＥＮＳＯＵＩＮＣ  ＡＥ，（ＨＬ））は、Ａレジスタの値を変更すると同時に、ペアレジスタ（本実施形態では、ＢＣレジスタとＤＥレジスタ）の上位バイトのレジスタ（本実施形態では、ＢレジスタとＤレジスタ）を固定しつつ、ペアレジスタの下位バイトのレジスタ（本実施形態では、ＣレジスタとＥレジスタ）の値だけを変更することができるため、従来よりも高度なプログラミングが可能で、プログラム容量の削減や処理速度の向上を図ることができる。
【０３１１】
また、ＴＥＮＳＯＵＩＮＣ命令の中でも、第１のペアレジスタ（本実施形態では、ＢＣレジスタ）の上位バイトのレジスタ（本実施形態では、Ｂレジスタ）と、第２のペアレジスタ（本実施形態では、ＤＥレジスタ）の上位バイトのレジスタ（本実施形態では、Ｄレジスタ）のペアをオペランドとする命令（本実施形態では、ＴＥＮＳＯＵＩＮＣ  ＢＤ，（ＨＬ））は、第１のペアレジスタと第２のペアレジスタの上位バイトのレジスタの値のみを変更することができるため、従来よりも高度なプログラミングが可能で、プログラム容量の削減や処理速度の向上を図ることができる。
【０３１２】
また、ＴＥＮＳＯＵＩＮＣ命令の中でも、オペランドにＢレジスタを含む命令（本実施形態では、ＴＥＮＳＯＵＩＮＣ  ＢＣ，（ＨＬ）、ＴＥＮＳＯＵＩＮＣ  ＢＤ，（ＨＬ））を利用し、かつ、上述の初期設定処理のステップＳ１２０２〜Ｓ１２０４のループ処理のように、Ｂレジスタによってループ処理の回数を判定するように構成すれば、ループ処理のプログラム容量の削減や処理速度の向上を図ることができる。
【０３１３】
なお、ＣＰＵ３０４は、ＴＥＮＳＯＵＩＮＣ命令とＩＮＣＴＥＮＳＯＵ命令両方を実行可能であり、遊技制御プログラムは第一の命令(ＴＥＮＳＯＵＩＮＣ)によるテーブルサーチと第二の命令(ＩＮＣＴＥＮＳＯＵ)によるテーブルサーチの両方を実行するようにしてもよい。
【０３１４】
「テーブルサーチ」は一般的な用語どおりの意味としてもよく、例えば、一または複数の行と一または複数の列から構成されたテーブル（例えば、図３２、図３８の第１変動パターン選択テーブル・第２変動パターン選択テーブル、図４０の初期設定データテーブル）から対応する行を探し出し、その行の一または複数の列の値を取り出す処理を示してもよいし、探し出した行のテーブル内の行の位置（例えば行番号）を導出する処理としてもよい。同様に対応する列を探し出し、その列の一または複数の行の値を取り出す処理を示すものとしてもよいし、探し出した列のテーブル内の列の位置（例えば列番号）を導出する処理としてもよい。
【０３１５】
ここで対応する行を探し出す処理は、探している一または複数の値が、テーブル内の特定の行における一または複数の特定の列の値と一致または関係する場合に、当該特定の行を対応する行とするような処理としてもよい。対応する列を探し出す処理も同様としてもよい。
【０３１６】
＜主制御部の第２特殊命令＞
次に、主制御部３００が備える第２特殊命令について説明する。図４２（ａ）は、主制御部３００が備える第２特殊命令の一部を示した図である。
【０３１７】
＜第２特殊命令／ＣＰＲＴ命令（演算＋リターン命令）＞
第２特殊命令の一つである「ＣＰＲＴＺ  ｒ」命令（または、「ＣＰＲＴＺ  （ｒｒ）」命令）は、オペランドｒが示すレジスタ（または、オペランド（ｒｒ）が示すペアレジスタｒｒに格納されたアドレス）に記憶された値から０を減算し、Ｚフラグが１にセットされる状態の場合（減算結果が０の場合。以下、同じ）に、スタックポインタＰＣが示すスタック領域ＳＰに記憶されたデータをプログラムカウンタＰＣの下位アドレスに、また、スタックポインタＰＣが示すスタック領域ＳＰ＋１に記憶されたデータをプログラムカウンタＰＣの上位アドレスにそれぞれロード（復帰）した後にスタックポインタＰＣを２つ加算してからＺフラグを１にセットし、Ｚフラグが０にクリアされる状態の場合（減算結果が０以外の場合。以下、同じ）に、後続の処理のアドレスをプログラムカウンタＰＣにセットしてからＺフラグを０にクリアする命令である。なお、プログラムカウンタＰＣをセットするタイミングとＺフラグを０にクリアするタイミングは、逆でもよいし、同時でもよい。
【０３１８】
また、「ＣＰＲＴＮＺ  ｒ」命令（または、「ＣＰＲＴＮＺ  （ｒｒ）」命令）は、オペランドｒが示すレジスタ（または、オペランド（ｒｒ）が示すペアレジスタｒｒに格納されたアドレス）に記憶された値から０を減算し、Ｚフラグが０にクリアされる状態の場合に、スタックポインタＰＣが示すスタック領域ＳＰに記憶されたデータをプログラムカウンタＰＣの下位アドレスに、また、スタックポインタＰＣが示すスタック領域ＳＰ＋１に記憶されたデータをプログラムカウンタＰＣの上位アドレスにそれぞれロード（復帰）した後にスタックポインタＰＣを２つ加算してからＺフラグを０にクリアし、Ｚフラグが１にセットされる状態の場合に、後続の処理のアドレスをプログラムカウンタＰＣにセットしてからＺフラグを１にセットする命令である。なお、オペランドｒが示すレジスタとしては、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌレジスタなどが挙げられ、オペランドｒｒが示すペアレジスタとしては、ＢＣ、ＤＥ、ＨＬなどが挙げられる（次のＣＰＪＲ命令も同様）。
【０３１９】
＜第２特殊命令／ＣＰＪＲ命令（演算＋ジャンプ命令）＞
第２特殊命令の一つである「ＣＰＪＲＺ  ｒ、ｅ」命令（または、「ＣＰＪＰＺ  （ｒｒ）、ｅ」命令）は、オペランドｒが示すレジスタ（または、オペランド（ｒｒ）が示すペアレジスタｒｒに格納されたアドレス）に記憶された値から０を減算し、Ｚフラグが１にセットされる状態の場合にプログラムカウンタＰＣ＋ｅ（ｅは＋１２７〜−１２８の数値）が示すアドレスにジャンプしてからＺフラグを１にセットし、Ｚフラグが０にクリアされる状態の場合に、後続の処理のアドレスをプログラムカウンタＰＣにセットしてからＺフラグを０にクリアする命令である。また、「ＣＰＪＲＮＺ  ｒ、ｅ」命令（または、「ＣＰＪＰＮＺ  （ｒｒ）、ｅ」命令）は、オペランドｒが示すレジスタ（または、オペランドｒｒが示すペアレジスタ）に記憶された値から０を減算し、Ｚフラグが０にクリアされる状態の場合にプログラムカウンタＰＣ＋ｅ（ｅは＋１２７〜−１２８の数値）が示すアドレスにジャンプしてからＺフラグを０にクリアし、Ｚフラグが１にセットされる状態の場合に、後続の処理のアドレスをプログラムカウンタＰＣにセットしてからＺフラグを１にセットする命令である。
【０３２０】
また、「ＣＰＪＲＣ  ｒ、ｎ、ｅ」命令（または、「ＣＰＪＲＣ  （ｒｒ）、ｎ、ｅ」命令）は、オペランドｒが示すレジスタ（または、オペランド（ｒｒ）が示すペアレジスタｒｒに格納されたアドレス）に記憶された値からｎ（８ビット長のイミディエイト値）を減算し、Ｃフラグが１にセットされる状態の場合（減算結果が０の場合。以下、同じ）に、プログラムカウンタＰＣ＋ｅ（ｅは＋１２７〜−１２８の数値）が示すアドレスにジャンプしてからＣフラグを１にセットし、Ｃフラグが０にクリアされる状態の場合（減算結果が０以外の場合。以下、同じ）に、後続の処理のアドレスをプログラムカウンタＰＣにセットしてからＣフラグを０にセットする命令である。また、「ＣＰＪＲＮＣ  ｒ、ｎ、ｅ」命令（または、「ＣＰＪＲＮＣ  （ｒｒ）、ｎ、ｅ」命令）は、オペランドｒが示すレジスタ（または、オペランド（ｒｒ）が示すペアレジスタｒｒに格納されたアドレス）に記憶された値からｎ（８ビット長のイミディエイト値）を減算し、Ｃフラグが０にクリアされる状態の場合に、プログラムカウンタＰＣ＋ｅ（ｅは＋１２７〜−１２８の数値）が示すアドレスにジャンプしてからＣフラグを０にクリアし、Ｃフラグが１にセットされる状態の場合に、後続の処理のアドレスをプログラムカウンタＰＣにセットしてからＣフラグを１にセットする命令である。
【０３２１】
図４２（ｂ）は、第２特殊命令を実行する前後のフラグレジスタの状態を示した図である。主制御部３００は、Ｓフラグ、Ｚフラグ、ＳＺフラグ、Ｈフラグ、、Ｐ／Ｖフラグ、Ｎフラグ、Ｃフラグを有する８ビットのフラグレジスタを備えている。このフラグレジスタに含まれるＳフラグ、Ｚフラグ、ＳＺフラグ、Ｈフラグ、Ｃフラグは、第２特殊命令の実行や、その他の算術論理演算命令の実行によって１にセットされるか０にクリアされる。
【０３２２】
＜ＣＰＪＲ命令を用いた処理＞
次に、ＣＰＪＲ命令を用いた処理について説明する。図４３は、ＣＰＪＲ命令を用いた処理の一例を示した図である。同図に示す第一のモジュールでは、処理Ｘを実行した後に、ＣＰＪＲ命令を実行し、所定条件が成立した場合に処理Ｚにジャンプする処理を行い、所定条件が成立しなかった場合に後続の処理Ｙを実行する処理を行う。
【０３２３】
ここで、「所定条件が成立した場合」とは、上述の「ＣＰＪＲＺ  ｒ、ｅ」命令（または、「ＣＰＪＲＺ  （ｒｒ）、ｅ」命令）であれば、Ｚフラグが１にセットされる状態となった場合であり、上述の「ＣＰＪＰＮＺ  ｒ、ｅ」命令（または、「ＣＰＪＲＮＺ  （ｒｒ）、ｅ」命令）であれば、Ｚフラグが０にクリアされる状態になった場合である。また、上述の「ＣＰＪＲＣ  ｒ、ｎ、ｅ」命令（または、「ＣＰＪＰＣ  （ｒｒ）、ｎ、ｅ」命令）であれば、Ｃフラグが１にセットされる状態になった場合であり、「ＣＰＪＲＮＣ  ｒ、ｎ、ｅ」命令（または、「ＣＰＪＰＮＣ  （ｒｒ）、ｎ、ｅ」命令）であれば、Ｃフラグが０にクリアされる状態になった場合である。
【０３２４】
また、ＣＰＪＲ命令の実行前に行われる処理Ｘにおけるフラグレジスタの内容が第１の内容αであった場合、ＣＰＪＲ命令の実行により、後続の処理Ｙ、処理Ｚにおけるフラグレジスタの内容は第２の内容βに変化する。しかしながら、本実施形態では、ＣＰＪＲ命令の実行中にフラグレジスタの内容を参照しないことに加えて、ＣＰＪＲ命令の実行後の処理Ｙ、処理Ｚでも、ＣＰＪＲ命令によって変化したフラグレジスタの内容を一切参照することなく処理を行うように構成している。
【０３２５】
このように、ＣＰＪＲ命令の実行中にフラグレジスタの内容を参照しないことに加えて、ＣＰＪＲ命令の実行によりフラグレジスタの内容を変化させるが、ＣＰＪＲ命令の実行後に行う所定の処理においてはフラグレジスタの内容を参照することなく処理を行うように構成すれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を無くすことができ、プログラムの解析を困難とし、不正なプログラムの改ざんを未然に防止できる場合がある。なお、この例では、ＣＰＪＲ命令の実行中にフラグレジスタの内容を参照しないように構成したが、ＣＰＪＲ命令の実行中にはフラグレジスタの内容を参照し、ＣＰＪＲ命令の実行後に行う所定の処理においてはＣＰＪＲ命令の実行前に変化したフラグレジスタの内容を参照することなく処理を行うように構成しても、同様の効果を得ることができる場合がある（以下、同様）。
【０３２６】
図４４（ａ）は、従来の命令を用いたプログラムの一例を示した図であり、同図（ｂ）は、ＣＰＪＲ命令を用いたプログラムの一例である。例えば、Ａレジスタの値が０であるか０以外であるかを判定し、Ａレジスタの値が０の場合に所定の処理にジャンプするプログラムを組む場合、同図（ａ）に示す従来のプログラムでは、（１−１）に示すＡＮＤ命令（ＡＮＤ  Ａ）と、（１−２）に示すＪＲ命令（ＪＲ  Ｚ、ITmrRnwCtl020）の２つの命令によって実現する必要があるが、同図（ｂ）に示す本実施形態のプログラムでは、（２−１）に示す１つのＣＰＪＲ命令（ＣＰＪＲＺ  Ａ、ITmrRnwCtl020）だけで同一の処理を実現している。
【０３２７】
このように、所定条件が成立するか否かを判定し、所定条件が成立した場合に所定の処理にジャンプするプログラムを組む場合にＣＰＪＲ命令を用いれば、従来よりもプログラムコードを減らすことができ、限られたメモリを有効に活用できる場合がある。
【０３２８】
また、同図（ｂ）に示す本実施形態のプログラムでは、（２−１）に示すＣＰＪＲ命令（ＣＰＪＲＺ  Ａ、ITmrRnwCtl020）の実行後の処理Ｙ、処理Ｚでは、ＣＰＪＲ命令によって変化したフラグレジスタの内容を一切参照することなく処理を行うように構成している。このように、ＣＰＪＲ命令の実行によりフラグレジスタの内容を変化させる一方で、ＣＰＪＲ命令の実行後に行う所定の処理においてはフラグレジスタの内容を参照することなく処理を行うように構成すれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を無くすことができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
【０３２９】
なお、同図（ｂ）に示す本実施形態のプログラムの処理Ｚに続く処理Ｖでは、ＣＰＪＲ命令の実行後に他の命令（この例では、「ＯＲ  （ＨＬ)」命令）によって変化したフラグレジスタの内容（この例では、Ｚフラグの内容）に基づいた処理（この例では、ＪＲ命令）を行っている。このように、フラグレジスタの内容を参照しない処理Ｚとフラグレジスタの内容を参照する処理Ｖを連続させれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を複雑にすることができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
【０３３０】
さらに、この例では、処理ＺでＬＤ命令（ロード命令）を実行しているが、ＬＤ命令は命令の実行後にＺフラグを変化させずにＳＺフラグを変化させる命令の一つであるため、「ＬＤ  Ａ、（ＨＬ）」命令の実行後にはＺフラグは変化しないが、ＳＺフラグが変化する。一方、その後の処理Ｖでは「ＪＲ  Ｚ、ITmrRnwCtL040」を実行しているが、ここでは、処理Ｚの「ＬＤ  Ａ、（ＨＬ）」命令の実行によって変化していないＺフラグを参照して分岐処理を行っている。
【０３３１】
このように、ＳＺフラグとＺフラグを含む複数のフラグの値を変化させる第１の命令（例えば、ＣＰＪＲ命令）を実行し、当該フラグを参照しない第２の命令（例えば、ＤＥＣ  Ａ命令）を実行し、ＺフラグとＳＺフラグのうちいずれか一方のみが変化する第３の命令（例えば、ＬＤ命令）を実行し、変化しない方（変化した方）のフラグを参照する第４の命令（例えば、ＪＲ  Ｚ命令）を実行するように構成すれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を複雑にすることができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
【０３３２】
図４５は、ＣＰＪＲ命令を用いた他の処理の一例を示した図である。同図に示す第一のモジュールでは、処理Ｘを実行した後に、ＣＰＪＲ命令を実行し、所定条件が成立した場合に、第一のモジュールとは異なる第二のモジュールにジャンプして処理Ｚを行い、所定条件が成立しなかった場合に後続の処理Ｙを実行している。このように、ＣＰＪＲ命令を用いて所定条件が成立した場合に所定の処理にジャンプするプログラムを組む場合には、同一のモジュール内の処理だけではなく、他のモジュールの処理にジャンプさせてもよい。
【０３３３】
図４６は、上述の処理Ｖを含む、ＣＰＪＲ命令を用いた他の処理の一例を示した図である。同図に示す第二のモジュールでは、処理Ｚを実行した後に、算術論理演算命令を実行し、当該命令の実行によって変化したフラグレジスタの内容γに基づいて分岐処理を行っている。このように、ＣＰＪＲ命令の実行によって変化したフラグレジスタに基づいた処理は行わず、ＣＰＪＲ命令以外の命令(この例では、算術論理演算命令）の実行によって変化したフラグレジスタに基づいた処理を行うように構成すれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を複雑にすることができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
【０３３４】
＜ＣＰＲＴ命令を用いた処理＞
次に、ＣＰＲＴ命令を用いた処理について説明する。図４７は、ＣＰＲＴ命令を用いた処理の一例を示した図である。同図に示す第一のモジュールでは、ＣＡＬＬ命令を実行して第二のモジュールを呼び出し、呼び出し先の第二のモジュールで処理Ｘを実行した後に、ＣＰＲＴ命令を実行し、所定条件が成立した場合に呼び出し元の第一のモジュールに戻って処理Ｚを行い、所定条件が成立しなかった場合に後続の処理Ｙを実行している。
【０３３５】
ここで、「所定条件が成立した場合」とは、上述の「ＣＰＲＴＺ  ｒ」命令（または、「ＣＰＲＴＺ  （ｒｒ）」命令）であれば、Ｚフラグが１にセットされる状態になった場合であり、上述の「ＣＰＲＴＮＺ  ｒ」命令（または、「ＣＰＲＴＮＺ  （ｒｒ）」命令）であれば、Ｚフラグが０にクリアされる状態になった場合である。
【０３３６】
また、ＣＰＲＴ命令の実行前に行われる処理Ｘにおけるフラグレジスタの内容が第１の内容αであった場合、ＣＰＲＴ命令の実行により、後続の処理Ｙ、処理Ｚにおけるフラグレジスタの内容は第２の内容βに変化する。しかしながら、ＣＰＲＴ命令の実行中にフラグレジスタを参照しないことに加えて、ＣＰＲＴ命令の実行後の処理Ｙ、処理Ｚでも、ＣＰＲＴ命令によって変化したフラグレジスタの内容を一切参照することなく処理を行うように構成している。
【０３３７】
このように、ＣＰＲＴ命令の実行中にフラグレジスタを参照しないことに加えて、ＣＰＲＴ命令の実行によりフラグレジスタの内容を変化させる一方で、ＣＰＲＴ命令の実行後に行う所定の処理においてはフラグレジスタの内容を参照することなく処理を行うように構成すれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を無くすことができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
【０３３８】
図４８（ａ）は、ＣＰＲＴ命令を用いたプログラムの一例を示した図であり、同図（ｂ）は、従来の命令を用いたプログラムの一例である。例えば、Ａレジスタの値が０であるか０以外であるかを判定し、Ａレジスタの値が０の場合に所定の処理にリターン（復帰）するプログラムを組む場合、同図（ｂ）に示す従来のプログラムでは、（１−１）に示すＡＮＤ命令（ＡＮＤ  Ａ）と（１−２）に示すＲＥＴ命令（ＲＥＴ  Ｚ）の２つの命令によって実現する必要があるが、同図（ａ）に示す本実施形態のプログラムでは、（２−１）に示す１つのＣＰＲＴ命令（ＣＰＲＴＺ  Ａ）だけで同一の処理を実現している。
【０３３９】
このように、所定条件が成立するか否かを判定し、所定条件が成立した場合に所定の処理にリターン（復帰）するプログラムを組む場合にＣＰＲＴ命令を用いれば、従来よりもプログラムコードを減らすことができ、限られたメモリを有効に活用できる場合がある。
【０３４０】
また、同図（ａ）に示す本実施形態のプログラムでは、（２−１）に示すＣＰＲＴ命令（ＣＰＲＴＺ  Ａ）の実行後の処理Ｙ、処理Ｚでは、ＣＰＲＴ命令によって変化したフラグレジスタの内容の一切参照することなく処理を行うように構成している。このように、ＣＰＲＴ命令の実行によりフラグレジスタの内容を変化させる一方で、ＣＰＲＴ命令の実行後に行う所定の処理においてはフラグレジスタの内容を参照することなく処理を行うように構成すれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を無くすことができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
【０３４１】
なお、同図（ａ）に示す本実施形態のプログラムの処理Ｚに続く処理Ｖでは、ＣＰＲＴ命令の実行後に他の命令によって変化したフラグレジスタの内容に基づいた処理を行っている。このように、フラグレジスタの内容を参照しない処理Ｚとフラグレジスタの内容を参照する処理Ｖを連続させれば、フラグレジスタの内容の変化とプログラムの実行の流れの関連性を複雑にすることができ、プログラムの解析を困難とし、不正なプログラムの解析を未然に防止できる場合がある。
【０３４２】
＜主制御部の第３特殊命令＞
次に、主制御部３００が備える第３特殊命令について説明する。図４９は、主制御部３００が備える第３特殊命令の一部を示した図である。
【０３４３】
＜第３特殊命令／ＲＥＳ命令＞
第３特殊命令の一つである「ＲＥＳｍＺ  ｎ、ｒ」命令（ｍは０〜７の数値）は、第２オペランドｒで示されるレジスタに記憶されている値のうち、ｍで示されるビットのアクセスを禁止するとともに、第１オペランドで示されるビットｎ（ｎは、ｍを除く０〜７の数値）を０にリセットする命令である。また、「ＲＥＳｍＺ  ｎ、（ｒｒ）」命令（ｍは０〜７の数値）は、第２オペランド（ｒｒ）で示されるペアレジスタｒｒに格納されたアドレスに記憶されているアドレスに格納された値のうち、ｍで示されるビットのアクセスを禁止するとともに、第１オペランドで示されるｎビット（ｎは、ｍを除く０〜７の数値）を０にリセットする命令である。
【０３４４】
例えば、図５０（ａ）に示すように、「ＲＥＳ２Ｚ  ２、Ｌ」命令は、第２オペランドＬで示されるＬレジスタに記憶されている値のうち、ｍで示されるビット（この例では、ビット２）のアクセスを禁止するとともに、第１オペランドで示されるビット２を０にリセットする命令であり、この命令ではＬレジスタのビット２は０にリセットされない。一方、同図（ｂ）に示すように、「ＲＥＳ２Ｚ  ４、Ｌ」命令は、第２オペランドＬで示されるＬレジスタに記憶されている値のうち、ｍで示されるビット（この例では、ビット２）のアクセスを禁止するとともに、第１オペランドで示されるビット４を０にリセットする命令であり、この命令では、Ｌレジスタのビット２のアクセスは禁止されるがビット４は０にリセットされる。
【０３４５】
また、図５１（ａ）に示すように、「ＲＥＳ２Ｚ  ２、（ＨＬ）」命令は、第２オペランド（ＨＬ）で示されるペアレジスタＨＬに記憶されているアドレス（この例では、Ｆ０１０Ｈ）に格納された値のうち、ｍで示されるビット（この例では、ビット２）のアクセスを禁止するとともに、第１オペランドで示されるビット２を０にリセットする命令であり、この命令では、Ｆ０１０Ｈに格納されている値のビット２は０にリセットされない。一方、同図（ｂ）に示すように、「ＲＥＳ２Ｚ  ４、（ＨＬ）」命令は、第２オペランド（ＨＬ）で示されるペアレジスタＨＬに記憶されているアドレス（この例では、Ｆ０１０Ｈ）に格納された値のうち、ｍで示されるビット（この例では、ビット２）のアクセスを禁止するとともに、第１オペランドで示されるビット４を０にリセットする命令であり、この命令では、Ｆ０１０Ｈに格納されている値のビット２のアクセスは禁止されるがビット４が０にリセットされる。
【０３４６】
このようなＲＥＳ命令によれば、所定のビットのアクセスを禁止しつつ、同時に他のビットを０にリセットすることができるため、所定のビットの数値を保護することができ、所定のビットが予期しない数値に変化して不具合を起こすような事態を未然に防止できる場合がある。
【０３４７】
図５２は、主制御部３００の命令マップのうち、ＲＥＳ命令に該当する部分を抜き出して示した図である。上述のとおり、「ＲＥＳ２Ｚ  ２、Ｌ」命令と「ＲＥＳ２Ｚ  ２、（ＨＬ）」命令は、ビット２のアクセスが禁止されビット２がリセットできない命令であるため（実質的に意味の無い命令であるため）、同図の太線の四角で示すように、「ＲＥＳ２Ｚ  ２、Ｌ」命令に該当する２５Ｈの部分と、「ＲＥＳ２Ｚ  ２、（ＨＬ）」命令に該当する２６Ｈの部分は空き領域とされている。このように、命令マップの一部に空き領域を設けることによって、命令マップを使ったプログラム（機械語）の解析を困難にすることができる場合がある。
【０３４８】
＜ＲＥＳ命令の変形例１＞
図５３は、変形例１に係るＲＥＳ命令を示した図である。ＲＥＳ命令の変形である「ＲＥＳｍＺ  ｎ、ｒ」命令（ｍは１〜２５４の１０進数の数値）は、第２オペランドｒで示されるレジスタに記憶されている値のうち、１０進数のｍを１バイトの２進数に変換したときに１がセットされるビットのアクセスを禁止するとともに、第１オペランドで示されるビットｎ（ｎは、ｍを１バイトの２進数に変換したときに１がセットされないビット）を０にリセットする命令である。また、「ＲＥＳｍＺ  ｎ、（ｒｒ）」命令（ｍは１〜２５４の１０進数の数値）は、第２オペランドｒｒで示されるペアレジスタに記憶されているアドレスに格納された値のうち、１０進数のｍを１バイトの２進数に変換したときに１がセットされるビットのアクセスを禁止するとともに、第１オペランドで示されるｎビット（ｎは、ｍを２進数に変換したときに１がセットされないビット番号）を０にリセットする命令である。
【０３４９】
例えば、図５４（ａ）に示すように、「ＲＥＳ２Ｚ  ４、Ｌ」命令は、第２オペランドＬで示されるレジスタＬに記憶されている値のうち、１０進数の２を１バイトの２進数に変換したときに１がセットされるビット（この例では、ビット１）のアクセスを禁止するとともに、第１オペランドで示されるビット４を０にリセットする命令である。また、同図（ｂ）に示すように、「ＲＥＳ３Ｚ  ４、Ｌ」命令は、第２オペランドＬで示されるレジスタＬに記憶されている値のうち、１０進数の３を１バイトの２進数に変換したときに１がセットされるビット（この例では、ビット１、ビット０）のアクセスを禁止するとともに、第１オペランドで示されるビット４を０にリセットする命令である。
【０３５０】
図５５は、変形例１に係るＲＥＳ命令を用いたプログラムの一例を示した図である。上述のとおり、「ＲＥＳｍＺ  ｎ、（ｒｒ）」命令（ｍは１〜２５４の１０進数の数値）は、第２オペランド（ｒｒ）で示されるペアレジスタｒｒに記憶されているアドレスに格納された値のうち、１０進数のｍを１バイトの２進数に変換したときに１がセットされるビットのアクセスを禁止するとともに、第１オペランドで示されるｎビット（ｎは、ｍを２進数に変換したときに１がセットされないビット番号）を０にリセットする命令である。
【０３５１】
したがって、同図の（３−１）に示す「ＲＥＳ２５１Ｚ  ２（＝ebCS20pnSGt）、（ＨＬ）」命令は、第２オペランド（ＨＬ）で示されるペアレジスタＨＬに記憶されているアドレス（この例では、Ｆ０９６Ｈ（＝v0ptCS2））に格納された値のうち、１０進数の２５１を１バイトの２進数に変換したときに１がセットされるビット（この例では、ビット０〜１、３〜７）のアクセスを禁止するとともに、第１オペランドで示されるビット（この例では、ビット２）を０にリセットする命令である。
【０３５２】
このようなＲＥＳ命令によれば、所定のビットのアクセスを禁止しつつ、同時に他のビットを０にリセットすることができるため、所定のビットの数値を保護することができ、従来のビット操作命令（例えば、ＣＬＲ命令、ＳＥＴ命令、ＲＥＳ命令、ＢＩＴ命令など）のように、コーディングミスなどによって所定のビットが予期しない数値に変更されてしまうような事態を未然に防止でき、デバックやテストの作業を短縮化でき、また、安定した遊技制御を行うことができる場合がある。また、アクセスを禁止するビットを１０進数の数値で指定することができるため、プログラムの解析を困難にすることができる場合がある。
【０３５３】
＜ＲＥＳ命令の変形例２＞
図５６は、変形例２に係るＲＥＳ命令を示した図である。ＲＥＳ命令の変形である「ＲＥＳｍＺ  ｎ、ｒ」命令（ｍは０〜７の数値）は、第２オペランドｒで示されるレジスタを含むペアレジスタに記憶されている値のうち、ｍで示されるビットのアクセスを禁止するとともに、第１オペランドで示されるビットｎ（ｎは、ｍを除く０〜８の数値）を０にリセットする命令である。また、「ＲＥＳｍＺ  ｎ、（ｒｒ）」命令（ｍは０〜７の数値）は、第２オペランド（ｒｒ）で示されるペアレジスタｒｒに記憶されているアドレスと、このアドレスに連続するアドレスに格納された２バイト長の値のうち、ｍで示されるビットのアクセスを禁止するとともに、第１オペランドで示されるビットｎ（ｎは、ｍを除く０〜８の数値）を０にリセットする命令である。
【０３５４】
例えば、図５７に示すように、「ＲＥＳ２Ｚ  ８、Ｌ」命令は、第２オペランドＬで示されるレジスタＬを含むペアレジスタＨＬに記憶されている値のうち、２で示されるビット（ビット２）のアクセスを禁止するとともに、第１オペランドで示されるビット８（この例では、ＨＬレジスタの上位バイトであるＨレジスタのビット０）を０にリセットする命令である。
【０３５５】
また、図５８に示すように、「ＲＥＳ２Ｚ  ８、（ＨＬ）」命令は、第２オペランド（ＨＬ）で示されるペアレジスタＨＬに記憶されているアドレス（この例では、Ｆ０１０Ｈ）と、このアドレスに連続するアドレス（この例では、Ｆ０１１Ｈ）に格納された２バイト長の値のうち、２で示されるビット（ビット２）のアクセスを禁止するとともに、第１オペランドで示されるビット８（この例では、Ｆ０１０Ｈに連続するＦ０１１Ｈに格納された値のビット０値）を０にリセットする命令である。
【０３５６】
図５９は、主制御部３００の命令マップのうち、変形例２に係るＲＥＳ命令に該当する部分を抜き出して示した図である。上述のとおり、「ＲＥＳ２Ｚ  ２、Ｌ」命令と「ＲＥＳ２Ｚ  ２、（ＨＬ）」命令は、ビット２のアクセスが禁止されビット２がリセットできない命令であるため、同図に太線の四角で示すように、これらの命令に替えて、「ＲＥＳ２Ｚ  ８、Ｌ」命令と「ＲＥＳ２Ｚ  ８、（ＨＬ）」命令を割り当てている。このように、命令マップの一部の並び順を不規則にすることによって、プログラム（機械語）の解析を困難にすることができる場合がある。
【０３５７】
＜ＲＥＳ命令の他の変形例＞
図６０は、ＲＥＳ命令の他の変形例を示した図である。例えば、同図（ａ）に示すＲＥＳ命令では、上述の変形例１の「ＲＥＳｍＺ  ｎ、ｒ」命令または「ＲＥＳｍＺ  ｎ、（ｒｒ）」命令（ｍは１〜２５４の１０進数の数値）において、数値ｍに０が指定できるように変更し、０を指定した場合には全てのビットのアクセスを許可するように構成している。また、同図（ｂ）に示すＲＥＳ命令では、上述の変形例１の「ＲＥＳｍＺ  ｎ、ｒ」命令または「ＲＥＳｍＺ  ｎ、（ｒｒ）」命令（ｍは１〜２５４の１０進数の数値）において、数値ｍの指定が省略できるように変更し、指定を省略した場合には全てのビットのアクセスを許可するように構成している。
【０３５８】
図６１（ａ）は、所定ビットのアクセスを禁止しないＲＥＳ命令を備えた場合の命令マップと、所定ビットのアクセスを禁止するＲＥＳ命令を備えた場合の命令マップを示した図である。このように、所定ビットのアクセスを禁止しないＲＥＳ命令を備えた場合と、所定ビットのアクセスを禁止するＲＥＳ命令を備えた場合で命令マップの一部の並び順を変更することによって、プログラム（機械語）の解析を困難にすることができる場合がある。
【０３５９】
また、同図（ｂ）は、ＲＥＳ命令の第１オペランドの数値の大小と、ＲＥＳ命令の命令マップの並び順を異ならせた例を示した図である。このように、ＲＥＳ命令の第１オペランドの数値が８→１→２→３→４→５→６→７と不規則に並ぶようにＲＥＳ命令を命令マップに割り当てることによって、プログラム（機械語）の解析を困難にすることができる場合がある。
【０３６０】
＜ユーザプログラムの具体例＞
次に、上述のユーザプログラムの具体例について説明する。上述のとおり、主制御部３００のＣＰＵ３０４がユーザモードに移行すると、ＲＯＭ領域の第一領域の先頭アドレスである００００Ｈ以降に記憶された命令が順次、実行されてユーザプログラムが開始される。
【０３６１】
図６２（ａ）は、ユーザプログラムの一部であるプログラム起動設定処理の一例を示した図であり、同図（ｂ）は、ユーザプログラムの一部である電源投入時設定処理の一例を示した図である。同図に示すユーザプログラムでは、最初にプログラム起動設定処理（アドレス００００Ｈ〜０００５Ｈに記憶された命令）が実行されることによって、スタックポインタや割込みモードの設定が行われ、その後に電源投入時設定処理（アドレス００６２Ｈ）にジャンプするように構成されている。電源投入時処理では、アドレス００６２Ｈ以降に記憶された命令が順次、実行されることによって、ＷＤＴへの動作許可及び初期値の設定や、電源電圧の監視処理が行われる。
【０３６２】
図６３は、上述の主制御部タイマ割込処理に相当するユーザプログラムの一部を示した図である。主制御部３００の基本回路３０２は、カウンタタイマ３１２からタイマ割込信号が入力された場合に、同図に示すような割込みベクトルテーブルを参照し、割込みベクトルテーブルに定義されたアドレスにジャンプするように構成されており、この例では、タイマ割込みに対応して定義されたアドレス０４０ＡＨにジャンプするように構成されている。主制御部タイマ割込処理では、アドレス０４０ＡＨ以降に記憶された命令が順次、実行されることによって、レジスタの退避や、同図（１）〜（１８）に示す各種処理が、この順番で行われる。
【０３６３】
＜主制御部の第４特殊命令＞
次に、主制御部３００が備える第４特殊命令について説明する。図６４は、主制御部３００が備える第４特殊命令の内容と、主制御部３００のＲＯＭ領域を示した図である。
【０３６４】
＜第４特殊命令／ＲＳＴ命令＞
第４特殊命令の一つである「ＲＳＴ」命令は、固定のアドレスをプログラムカウンタＰＣに設定することによって、固定のアドレスにジャンプするための命令である。
【０３６５】
本実施形態では、プログラムカウンタＰＣにストアされるアドレスが異なる８種類のＲＳＴ命令を備えており、ＲＳＴ命令の命令データは、５ビットの命令コード（オペコード）と、３ビットのオペランドによって構成されている。具体的には、命令データＣ８Ｈ〜Ｆ８Ｈの７種類のＲＳＴ命令のビット７〜６、２〜０の５ビットは、ＲＳＴ命令の命令コード（オペコード）を、それ以外のビット５〜３の３ビット（太線で囲まれた部分）は、オペランドとして、各々のＲＳＴ命令の実行によって分岐することが可能なジャンプ先のアドレスの一部（この例では、ジャンプ先のアドレスのビット５〜３を示す。アドレスのビット２〜０は０固定）を示している。
【０３６６】
例えば、命令データＣ８ＨのＲＳＴ命令のビット５〜３は、００１Ｂであるため、ジャンプ先のアドレスのビット５〜３が００１Ｂで、ビット２〜０が０（固定）、すなわち０００８Ｈであることを示しており、命令データＤ０ＨのＲＳＴ命令のビット５〜３は０１０Ｂであるため、ジャンプ先のアドレスのビット５〜３が０１０Ｂで、ビット２〜０が０（固定）、すなわち００１０Ｈであることを示している。また、その他のＲＳＴ命令のジャンプ先のアドレスは図に示す通りである。
【０３６７】
一方、命令データＣ０ＨのＲＳＴ命令のビット７〜６、２〜０の５ビットは、ＲＳＴ命令の命令コード（オペランド）を示しており、それ以外のビット５〜３の３ビット（太線で囲まれた部分）は、このＲＳＴ命令の実行によって分岐することが可能なジャンプ先のアドレス（この例では、ビット５〜３に格納される数値０００Ｂからは予測が不可能な００４０Ｈ）を示している。すなわち、この命令データＣ０ＨのＲＳＴ命令では、仮に機械語に基づいてオペコードやオペランドを解析できたとしても、当該ＲＳＴ命令の実行によって分岐することが可能なジャンプ先のアドレスを解析することが極めて困難とされている。
【０３６８】
また、これらのＲＳＴ命令の命令データは、上述の通り、５ビットの命令コード（オペコード）と３ビットのオペランドによって構成されているため、ユーザはオペランドを自由に設定することができず（ＲＳＴ命令によって分岐することが可能なジャンプ先のアドレスを自由に設定することができず）、上述の８種類のＲＳＴ命令によって分岐することが可能なジャンプ先のアドレスを選択することだけが許されている。
【０３６９】
なお、この例では、命令データにオペランドを含めることによって、当該命令によって分岐することが可能なジャンプ先のアドレスを規制する例を示したが、命令データにオペランドを含めなくてもよい。例えば、「ＲＳＴ  ００４０Ｈ」のように、オペコード（ＲＳＴ）とオペランド（００４０Ｈ）を別々に構成した上で、指定可能なアドレス以外のアドレス（例えば、００００Ｈ）がオペランドとして設定された場合にアセンブルエラーにして機械語に変換できないように構成するなど、設定可能なオペランドを制限してもよい。また、命令データにオペランドを含む構成を採用した場合でも、指定可能なアドレス以外のアドレスがオペランドとして設定された場合にアセンブルエラーにして機械語に変換できないように構成するなど、設定可能なオペランドを制限してもよい。
【０３７０】
すなわち、本実施形態に係るＲＳＴ命令では８種類のアドレス（０００８Ｈ、００１０Ｈ、００１８Ｈ、００２０Ｈ、００２８Ｈ、００３０Ｈ、００３８Ｈ、００４０Ｈ）だけにジャンプすることが可能となっており、例えば、ＲＳＴ命令によってＲＯＭ領域の第一領域の先頭アドレス００００Ｈにジャンプすることができないように構成されている。このため、不正プログラムを組み込んで先頭アドレスにジャンプさせる（ユーザプログラムを先頭アドレスから開始させて不正に初期状態とする）ような行為を未然に防止できる場合がある。
【０３７１】
また、命令データＣ０ＨのＲＳＴ命令では、命令データには含まれない数値である００４０Ｈをジャンプ先のアドレスとしているため、逆アセンブルなどによってジャンプ先のアドレスやプログラムの流れを特定することが極めて困難で、不正なプログラム改造を未然に防止できる場合がある。また、ＲＳＴ命令では、図６５の命令マップに示すように、命令コードの順番を昇順（Ｃ０Ｈ→Ｃ８Ｈ→…）に設定しているのに対して、ジャンプ先のアドレスの順番（００４０Ｈ→０００８Ｈ→…）を昇順にはしないように構成しているため、命令の分析を行うことが極めて困難で、不正なプログラム改造を未然に防止できる場合がある。
【０３７２】
＜実施形態２＞
以下、図面を用いて、本発明の実施形態２に係る遊技台（スロットマシン１１００）について詳細に説明する。
【０３７３】
＜全体構成＞
まず、図６６を用いて、本発明の実施形態２に係るスロットマシン１１００の全体構成について説明する。なお、同図はスロットマシン１１００を正面側（遊技者側）から見た外観斜視図である。
【０３７４】
同図に示すスロットマシン１１００は、本体１１０１と、本体１１０１の正面に取り付けられ、本体１１０１に対して開閉可能な前面扉１１０２と、を備える。本体１１０１の中央内部には、（図示省略）外周面に複数種類の図柄が配置されたリールが３個（左リール１１１０、中リール１１１１、右リール１１１２）収納され、スロットマシン１１００の内部で回転できるように構成されている。これらのリール１１１０乃至１１１２はステッピングモータ等の駆動装置により回転駆動される。
【０３７５】
本実施形態において、各図柄は帯状部材に等間隔で適当数印刷され、この帯状部材が所定の円形筒状の枠材に貼り付けられて各リール１１１０乃至１１１２が構成されている。リール１１１０乃至１１１２上の図柄は、遊技者から見ると、図柄表示窓１１１３から縦方向に概ね３つ表示され、合計９つの図柄が見えるようになっている。そして、各リール１１１０乃至１１１２を回転させることにより、遊技者から見える図柄の組み合せが変動することとなる。つまり、各リール１１１０乃至１１１２は複数種類の図柄の組合せを変動可能に表示する表示装置として機能する。なお、このような表示装置としてはリール以外にも液晶表示装置等の電子画像表示装置も採用できる。また、本実施形態では、３個のリールをスロットマシン１１００の中央内部に備えているが、リールの数やリールの設置位置はこれに限定されるものではない。
【０３７６】
各々のリール１１１０乃至１１１２の背面には、図柄表示窓１１１３に表示される個々の図柄を照明するためのバックライト（図示省略）が配置されている。バックライトは、各々の図柄ごとに遮蔽されて個々の図柄を均等に照射できるようにすることが望ましい。なお、スロットマシン１１００内部において各々のリール１１１０乃至１１１２の近傍には、投光部と受光部から成る光学式センサ（図示省略）が設けられており、この光学式センサの投光部と受光部の間をリールに設けられた一定の長さの遮光片が通過するように構成されている。このセンサの検出結果に基づいてリール上の図柄の回転方向の位置を判断し、目的とする図柄が入賞ライン上に表示されるようにリール１１１０乃至１１１２を停止させる。
【０３７７】
入賞ライン表示ランプ１１２０は、有効となる入賞ライン１１１４を示すランプである。有効となる入賞ラインは、遊技媒体としてベットされたメダルの数によって予め定まっている。入賞ライン１１１４は５ラインあり、例えば、メダルが１枚ベットされた場合、中段の水平入賞ラインが有効となり、メダルが２枚ベットされた場合、上段水平入賞ラインと下段水平入賞ラインが追加された３本が有効となり、メダルが３枚ベットされた場合、右下り入賞ラインと右上り入賞ラインが追加された５ラインが入賞ラインとして有効になる。なお、入賞ライン１１１４の数については５ラインに限定されるものではなく、また、例えば、メダルが１枚ベットされた場合に、中段の水平入賞ライン、上段水平入賞ライン、下段水平入賞ライン、右下り入賞ラインおよび右上り入賞ラインの５ラインを有効な入賞ラインとして設定してもよく、ベット数に関係なく、一律に同一数の入賞ラインを有効な入賞ラインとして設定してもよい。
【０３７８】
告知ランプ１１２３は、例えば、後述する内部抽選において特定の入賞役（具体的には、ボーナス）に内部当選していること、または、ボーナス遊技中であることを遊技者に知らせるランプである。遊技メダル投入可能ランプ１１２４は、遊技者が遊技メダルを投入可能であることを知らせるためのランプである。再遊技ランプ１１２２は、前回の遊技において入賞役の一つである再遊技に入賞した場合に、今回の遊技が再遊技可能であること（メダルの投入が不要であること）を遊技者に知らせるランプである。リールパネルランプ１１２８は演出用のランプである。
【０３７９】
ベットボタン１１３０乃至１１３２は、スロットマシン１１００に電子的に貯留されているメダル（クレジットという）を所定の枚数分投入するためのボタンである。本実施形態においては、ベットボタン１１３０が押下される毎に１枚ずつ最大３枚まで投入され、ベットボタン１１３１が押下されると２枚投入され、ベットボタン１１３２が押下されると３枚投入されるようになっている。以下、ベットボタン１１３２はＭＡＸベットボタンとも言う。なお、遊技メダル投入ランプ１１２９は、投入されたメダル数に応じた数のランプを点灯させ、規定枚数のメダルの投入があった場合、遊技の開始操作が可能な状態であることを知らせる遊技開始ランプ１１２１が点灯する。
【０３８０】
メダル投入口１１４１は、遊技を開始するに当たって遊技者がメダルを投入するための投入口である。すなわち、メダルの投入は、ベットボタン１１３０乃至１１３２により電子的に投入することもできるし、メダル投入口１１４１から実際のメダルを投入（投入操作）することもでき、投入とは両者を含む意味である。貯留枚数表示器１１２５は、スロットマシン１１００に電子的に貯留されているメダルの枚数を表示するための表示器である。遊技情報表示器１１２６は、各種の内部情報（例えば、ボーナス遊技中のメダル払出枚数）を数値で表示するための表示器である。払出枚数表示器１１２７は、何らかの入賞役に入賞した結果、遊技者に払出されるメダルの枚数を表示するための表示器である。貯留枚数表示器１１２５、遊技情報表示器１１２６、および、払出枚数表示器１１２７は、７セグメント（ＳＥＧ）表示器とした。
【０３８１】
スタートレバー１１３５は、リール１１１０乃至１１１２の回転を開始させるためのレバー型のスイッチである。即ち、メダル投入口１１４１に所望するメダル枚数を投入するか、ベットボタン１１３０乃至１１３２を操作して、スタートレバー１１３５を操作すると、リール１１１０乃至１１１２が回転を開始することとなる。スタートレバー１１３５に対する操作を遊技の開始操作と言う。
【０３８２】
ストップボタンユニット１１３６には、ストップボタン１１３７乃至１１３９が設けられている。ストップボタン１１３７乃至１１３９は、スタートレバー１１３５の操作によって回転を開始したリール１１１０乃至１１１２を個別に停止させるためのボタン型のスイッチであり、各リール１１１０乃至１１１２に対応づけられている。以下、ストップボタン１１３７乃至１１３９に対する操作を停止操作と言い、最初の停止操作を第１停止操作、次の停止操作を第２停止操作、最後の停止操作を第３停止操作という。なお、各ストップボタン１１３７乃至１１３９の内部に発光体を設けてもよく、ストップボタン１１３７乃至１１３９の操作が可能である場合、該発光体を点灯させて遊技者に知らせることもできる。
【０３８３】
メダル返却ボタン１１３３は、投入されたメダルが詰まった場合に押下してメダルを取り除くためのボタンである。精算ボタン１１３４は、スロットマシン１１００に電子的に貯留されたメダル、ベットされたメダルを精算し、メダル払出口１１５５から排出するためのボタンである。ドアキー孔１１４０は、スロットマシン１１００の前面扉１１０２のロックを解除するためのキーを挿入する孔である。ストップボタンユニット１１３６の下部には、機種名の表示と各種証紙の貼付とを行うタイトルパネル１１６２が設けられている。タイトルパネル１１６２の下部には、メダル払出口１１５５、メダルの受け皿１１６１が設けられている。
【０３８４】
音孔１１８０はスロットマシン１１００内部に設けられているスピーカの音を外部に出力するための孔である。前面扉１１０２の左右各部に設けられたサイドランプ１１４４は遊技を盛り上げるための装飾用のランプである。前面扉１１０２の上部には演出装置１１６０が配設されており、演出装置１１６０の上部には音孔１１４３が設けられている。この演出装置１１６０は、水平方向に開閉自在な２枚の右シャッタ１１６３ａ、左シャッタ１１６３ｂからなるシャッタ（遮蔽装置）１１６３と、このシャッタ１１６３の奥側に配設された液晶表示装置１１５７（演出画像表示装置）を備えており、右シャッタ１１６３ａ、左シャッタ１１６３ｂが液晶表示装置１１５７の手前で水平方向外側に開くと液晶表示装置１１５７の表示画面がスロットマシン１１００正面（遊技者側）に出現する構造となっている。なお、液晶表示装置でなくとも、種々の演出画像や種々の遊技情報を表示可能な表示装置であればよく、例えば、複数セグメントディスプレイ（７セグディスプレイ）、ドットマトリクスディスプレイ、有機ＥＬディスプレイ、プラズマディスプレイ、リール（ドラム）、或いは、プロジェクタとスクリーンとからなる表示装置等でもよい。また、表示画面は、方形をなし、その全体を遊技者が視認可能に構成している。本実施形態の場合、表示画面は長方形であるが、正方形でもよい。また、表示画面の周縁に不図示の装飾物を設けて、表示画面の周縁の一部が該装飾物に隠れる結果、表示画面が異形に見えるようにすることもできる。表示画面は本実施形態の場合、平坦面であるが、曲面をなしていてもよい。
【０３８５】
図６７は、前面扉１０２を開けた状態のスロットマシン１１００を示す正面図である。本体１１０１は、上面板１２６１、左側の側面板１２６０、右側の側面板１２６０、下面板１２６４および背面板１２４２で囲われ、前面に開口する箱体である。本体１１０１の内部には、背面板１２４２の上部に設けた通風口１２４９と重ならない位置に、内部に主制御基板を収納した主制御基板収納ケース１２１０が配置され、この主制御基板収納ケース１２１０の下方に、３つのリール１１１０乃至１１１２が配置されている。主制御基板収納ケース１２１０及びリール１１１０乃至１１１２の側方、即ち向って左側の側面板１２６０には、内部に副制御基板を収納した副制御基板収納ケース１２２０が配設してある。また、向かって右側の側面板１２６０には、主制御基板に接続されて、スロットマシン１１００の情報を外部装置に出力する外部集中端子板１２４８が取り付けられている。
【０３８６】
そして、下面板１２６４には、メダル払出装置１１８０（バケットに溜まったメダルを払出す装置）が配設され、このメダル払出装置１１８０の上方、即ちリール１１１０乃至１１１２の下方には、電源基板を有する電源装置１２５２が配設され、電源装置１２５２正面には電源スイッチ１２４４を配設している。電源装置１２５２は、スロットマシン１１００に外部から供給される交流電源を直流化し、所定の電圧に変換して後述する主制御部１３００、副制御部１４００、１５００等の各制御部、各装置に供給する。さらには、外部からの電源が断たれた後も所定の部品（例えば主制御部１３００のＲＡＭ１３０８等）に所定の期間（例えば１０日間）電源を供給するための蓄電回路（例えばコンデンサ）を備えている。
【０３８７】
メダル払出装置１１８０の右側には、メダル補助収納庫１２４０が配設してあり、この背後にはオーバーフロー端子が配設されている（図示省略）。電源装置１２５２には、電源コード１２６４を接続する電源コード接続部が設けられ、ここに接続された電源コード１２６４が、本体１１０１の背面板１２４２に開設した電源コード用穴１２６２を通して外部に延出している。
【０３８８】
前面扉１１０２は、本体１１０１の左側の側面板１２６０にヒンジ装置１２７６を介して蝶着され、図柄表示窓１１１３の上部には、演出装置１１６０、および、この演出装置１１６０を制御する演出制御基板（図示省略）、上部スピーカ１２７２、を設けている。図柄表示窓１１１３の下部には、投入されたメダルを選別するためのメダルセレクタ１１７０、このメダルセレクタ１１７０が不正なメダル等をメダル受皿１１６１に落下させる際にメダルが通過する通路１２６６等を設けている。さらに、音孔１１８０に対応する位置には低音スピーカ１２７７を設けている。
【０３８９】
図６８を用いて、スロットマシン１１００の制御部の回路構成について詳細に説明する。なお、同図は制御部の回路ブロック図を示したものである。
【０３９０】
スロットマシン１１００の制御部は、大別すると、主に遊技の進行（例えば、遊技者による操作の検出、遊技状態の遷移、遊技媒体の払出制御、当否判定など）を制御する主制御部１３００と、主制御部１３００が送信するコマンド信号（以下、単に「コマンド」と呼ぶ）に応じて、主に演出の制御を行う第１副制御部１４００と、第１副制御部１４００より送信されたコマンドに基づいて各種機器を制御する第２副制御部１５００と、によって構成されている。
【０３９１】
＜主制御部＞
まず、スロットマシン１１００の主制御部１３００について説明する。主制御部１３００は、主制御部１３００の全体を制御する基本回路１３０２を備えており、この基本回路１３０２には、ＣＰＵ１３０４と、制御プログラムデータ、入賞役の内部抽選時に用いる抽選データ、リールの停止位置等を記憶するためのＲＯＭ１３０６と、一時的にデータを記憶するためのＲＡＭ１３０８と、各種デバイスの入出力を制御するためのＩ／Ｏ１３１０と、時間や回数等を計測するためのカウンタタイマ１３１２と、ＷＤＴ（ウォッチドックタイマ）１３１４を搭載している。なお、ＲＯＭ１３０６やＲＡＭ１３０８については他の記憶装置を用いてもよく、この点は後述する第１副制御部１４００や第２副制御部５００についても同様である。この基本回路１３０２のＣＰＵ１３０４は、水晶発振器１３１４が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。さらには、ＣＰＵ１３０４は、電源が投入されるとＲＯＭ１３０６の所定エリアに格納された分周用のデータをカウンタタイマ１３１２に送信し、カウンタタイマ１３１２は受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに割り込み要求をＣＰＵ１３０４に送信する。ＣＰＵ１３０４は、この割込み要求を契機に各センサ等の監視や駆動パルスの送信を実行する。例えば、水晶発振器１３１４が出力するクロック信号を８ＭＨｚ、カウンタタイマ１３１２の分周値を１／２５６、ＲＯＭ１３０６の分周用のデータを４７に設定した場合、割り込みの基準時間は、２５６×４７÷８ＭＨｚ＝１．５０４ｍｓとなる。
【０３９２】
主制御部１３００は、０〜６５５３５の範囲で数値を変動させるハードウェア乱数カウンタとして使用している乱数発生回路１３１６と、電源が投入されると起動信号（リセット信号）を出力する起動信号出力回路１３３８を備えており、ＣＰＵ１３０４は、この起動信号出力回路１３３８から起動信号が入力された場合に、遊技制御を開始する（後述する主制御部メイン処理を開始する）。
【０３９３】
また、主制御部１３００には、センサ回路１３２０を備えており、ＣＰＵ１３０４は、割り込み時間ごとに各種センサ１３１８（ベットボタン１１３０センサ、ベットボタン１１３１センサ、ベットボタン１１３２センサ、メダル投入口１１４１から投入されたメダルのメダル受付センサ、スタートレバー１１３５センサ、ストップボタン１１３７センサ、ストップボタン１１３８センサ、ストップボタン１１３９センサ、精算ボタン１１３４センサ、メダル払出装置１１８０から払い出されるメダルのメダル払出センサ、リール１１１０のインデックスセンサ、リール１１１１のインデックスセンサ、リール１１１２のインデックスセンサ、等）の状態を監視している。
【０３９４】
なお、センサ回路１３２０がスタートレバーセンサのＨレベルを検出した場合には、この検出を示す信号を乱数発生回路１３１６に出力する。この信号を受信した乱数発生回路１３１６は、そのタイミングにおける値をラッチし、抽選に使用する乱数値を格納するレジスタに記憶する。
【０３９５】
メダル受付センサは、メダル投入口１１４１の内部通路に２個設置されており、メダルの通過有無を検出する。スタートレバー１１３５センサは、スタートレバー１１３５内部に２個設置されており、遊技者によるスタート操作を検出する。ストップボタン１１３７センサ、ストップボタン１１３８センサ、および、ストップボタン１１３９は、各々のストップボタン１１３７乃至１１３９に設置されており、遊技者によるストップボタンの操作を検出する。
【０３９６】
ベットボタン１１３０センサ、ベットボタン１１３１センサ、および、ベットボタン１１３２センサは、メダル投入ボタン１１３０乃至１１３２のそれぞれに設置されており、ＲＡＭ１３０８に電子的に貯留されているメダルを遊技への投入メダルとして投入する場合の投入操作を検出する。精算ボタン１１３４センサは、精算ボタン１１３４に設けられている。精算ボタン１１３４が一回押されると、電子的に貯留されているメダルを精算する。メダル払出センサは、メダル払出装置１１８０が払い出すメダルを検出するためのセンサである。なお、以上の各センサは、非接触式のセンサであっても接点式のセンサであってもよい。
【０３９７】
リール１１１０のインデックスセンサ、リール１１１１のインデックスセンサ、および、リール１１１２のインデックスセンサは、各リール１１１０乃至１１１２の取付台の所定位置に設置されており、リールフレームに設けた遮光片が通過するたびにＬレベルになる。ＣＰＵ１３０４は、この信号を検出すると、リールが１回転したものと判断し、リールの回転位置情報をゼロにリセットする。
【０３９８】
主制御部１３００は、リール装置１１１０乃至１１１２に設けたステッピングモータを駆動する駆動回路１３２２、投入されたメダルを選別するメダルセレクタ１１７０に設けたソレノイドを駆動する駆動回路１３２４、メダル払出装置１１８０に設けたモータを駆動する駆動回路１３２６、各種ランプ１３３８（入賞ライン表示ランプ１１２０、告知ランプ１１２３、遊技メダル投入可能ランプ１１２４、再遊技ランプ１１２２、遊技メダル投入ランプ１１２９は、遊技開始ランプ１１２１、貯留枚数表示器１１２５、遊技情報表示器１１２６、払出枚数表示器１１２７）を駆動する駆動回路１３２８を備えている。
【０３９９】
また、基本回路１３０２には、情報出力回路１３３４（外部集中端子板１２４８）を接続しており、主制御部１３００は、この情報出力回路１３３４を介して、外部のホールコンピュータ（図示省略）等が備える情報入力回路１６５２にスロットマシン１１００の遊技情報（例えば、遊技状態）を出力する。
【０４００】
また、主制御部１３００は、電源管理部（図示しない）から主制御部１３００に供給している電源の電圧値を監視する電圧監視回路１３３０を備えており、電圧監視回路１３３０は、電源の電圧値が所定の値（本実施例では９ｖ）未満である場合に電圧が低下したことを示す低電圧信号を基本回路１３０２に出力する。
【０４０１】
また、主制御部１３００は、第１副制御部１４００にコマンドを送信するための出力インタフェースを備えており、第１副制御部１４００との通信を可能としている。なお、主制御部１３００と第１副制御部１４００との情報通信は一方向の通信であり、主制御部１３００は第１副制御部１４００にコマンド等の信号を送信できるように構成しているが、第１副制御部１４００からは主制御部１３００にコマンド等の信号を送信できないように構成している。
【０４０２】
＜副制御部＞
次に、スロットマシン１１００の第１副制御部１４００について説明する。第１副制御部１４００は、主制御部１３００が送信した制御コマンドを入力インタフェースを介して受信し、この制御コマンドに基づいて第１副制御部１４００の全体を制御する基本回路１４０２を備えており、この基本回路１４０２は、ＣＰＵ１４０４と、一時的にデータを記憶するためのＲＡＭ１４０８と、各種デバイスの入出力を制御するためのＩ／Ｏ１４１０と、時間や回数等を計測するためのカウンタタイマ１４１２を搭載している。基本回路１４０２のＣＰＵ１４０４は、水晶発振器１４１４が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。ＲＯＭ４０６は、第１副制御部１４００の全体を制御するための制御プログラム及びデータ、バックライトの点灯パターンや各種表示器を制御するためのデータ等を記憶する。
【０４０３】
ＣＰＵ１４０４は、所定のタイミングでデータバスを介してＲＯＭ１４０６の所定エリアに格納された分周用のデータをカウンタタイマ１４１２に送信する。カウンタタイマ１４１２は、受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに割り込み要求をＣＰＵ１４０４に送信する。ＣＰＵ１４０４は、この割込み要求のタイミングをもとに、各ＩＣや各回路を制御する。
【０４０４】
また、第１副制御部１４００には、音源ＩＣ１４１８を設けており、音源ＩＣ１４１８に出力インタフェースを介してスピーカ１２７２、１２７７を設けている。音源ＩＣ１４１８は、ＣＰＵ１４０４からの命令に応じてアンプおよびスピーカ１２７２、１２７７から出力する音声の制御を行う。音源ＩＣ１４１８には音声データが記憶されたＳ−ＲＯＭ（サウンドＲＯＭ）が接続されており、このＲＯＭから取得した音声データをアンプで増幅させてスピーカ１２７２、１２７７から出力する。
【０４０５】
また、第１副制御部１４００には、駆動回路１４２２が設けられ、駆動回路１４２２に入出力インタフェースを介して各種ランプ１４２０（上部ランプ、下部ランプ、サイドランプ１１４４、タイトルパネル１１６２ランプ、等）が接続されている。
【０４０６】
また、ＣＰＵ１４０４は、出力インタフェースを介して第２副制御部１５００へ信号の送受信を行う。第２副制御部１５００は、演出画像表示装置１１５７の表示制御を含む演出装置１１６０の各種制御を行う。なお、第２副制御部１５００は、例えば、液晶表示装置１１５７の表示の制御を行う制御部、各種演出用駆動装置の制御を行う制御部（例えば、シャッタ１１６３のモータ駆動を制御する制御部）とするなど、複数の制御部で構成するようにしてもよい。
【０４０７】
第２副制御部１５００は、第１副制御部１４００が送信した制御コマンドを入力インタフェースを介して受信し、この制御コマンドに基づいて第２副制御部１５００の全体を制御する基本回路１５０２を備えており、この基本回路１５０２は、ＣＰＵ１５０４と、一時的にデータを記憶するためのＲＡＭ１５０８と、各種デバイスの入出力を制御するためのＩ／Ｏ１５１０と、時間や回数等を計測するためのカウンタタイマ１５１２と、を搭載している。基本回路１５０２のＣＰＵ１５０４は、水晶発振器１５１４が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。ＲＯＭ５０６は、第２副制御部１５００の全体を制御するための制御プログラム及びデータ、画像表示用のデータ等を記憶する。
【０４０８】
ＣＰＵ１５０４は、所定のタイミングでデータバスを介してＲＯＭ１５０６の所定エリアに格納された分周用のデータをカウンタタイマ１５１２に送信する。カウンタタイマ１５１２は、受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに割り込み要求をＣＰＵ１４０４に送信する。ＣＰＵ１５０４は、この割込み要求のタイミングをもとに、各ＩＣや各回路を制御する。
【０４０９】
また、第２副制御部１５００には、シャッタ１１６３のモータを駆動する駆動回路１５３０を設けており、駆動回路１５３０には出力インタフェースを介してシャッタ１１６３を設けている。この駆動回路１５３０は、ＣＰＵ１５０４からの命令に応じてシャッタ１１６３に設けたステッピングモータ（図示省略）に駆動信号を出力する。
また、第２副制御部１５００には、センサ回路１５３２を設けており、センサ回路１５３２には入力インタフェースを介してシャッタセンサ１５３８を接続している。ＣＰＵ１５０４は、割り込み時間ごとにシャッタセンサ１５３８状態を監視している。
【０４１０】
また、第２副制御部１５００には、ＶＤＰ１５３４（ビデオ・ディスプレイ・プロセッサー）を設けており、このＶＤＰ１５３４には、バスを介してＲＯＭ１５０６、ＶＲＡＭ１５３６が接続されている。ＶＤＰ１５３４は、ＣＰＵ１５０４からの信号に基づいてＲＯＭ１５０６に記憶された画像データ等を読み出し、ＶＲＡＭ１５３６のワークエリアを使用して表示画像を生成し、演出画像表示装置１１５７に画像を表示する。
【０４１１】
＜図柄配列＞
次に、図６９（ａ）を用いて、上述の各リール１１１０乃至１１１２に施される図柄配列について説明する。なお、同図は、各リール（左リール１１１０、中リール１１１１、右リール１１１２）に施される図柄の配列を平面的に展開して示した図である。
【０４１２】
各リール１１１０乃至１１１２には、同図の右側に示す複数種類（本実施形態では８種類）の図柄が所定コマ数（本実施形態では、番号０〜２０の２１コマ）だけ配置されている。また、同図の左端に示した番号０〜２０は、各リール１１１０乃至１１１２上の図柄の配置位置を示す番号である。例えば、本実施形態では、左リール１１１０の番号１のコマには「リプレイ」の図柄、中リール１１１１の番号０のコマには「ベル」の図柄、右リール１１１２の番号２のコマには「スイカ」の図柄、がそれぞれ配置されている。
【０４１３】
＜入賞役の種類＞
次に、図６９（ｂ）を用いて、スロットマシン１１００の入賞役の種類について説明する。なお、同図は入賞役（作動役を含む）の種類、各入賞役に対応する図柄組合せ、各入賞役の作動または払出を示している。
【０４１４】
本実施形態における入賞役のうち、ビッグボーナス（ＢＢ１、ＢＢ２）および、レギュラーボーナス（ＲＢ）はボーナス遊技に移行する役として、また、再遊技（リプレイ）は新たにメダルを投入することなく再遊技が可能となる役として、それぞれ入賞役とは区別され「作動役」と呼ばれる場合があるが、本実施形態における「入賞役」には、作動役である、ビッグボーナス、レギュラーボーナス、再遊技が含まれる。また、本実施形態における「入賞」には、メダルの配当を伴わない（メダルの払い出しを伴わない）作動役の図柄組合せが有効ライン上に表示される場合も含まれ、例えば、ビッグボーナス、レギュラーボーナス、再遊技への入賞が含まれる。
【０４１５】
スロットマシン１１００の入賞役には、ビッグボーナス（ＢＢ１、ＢＢ２）と、レギュラーボーナス（ＲＢ）と、小役（チェリー、スイカ、ベル）と、再遊技（リプレイ）がある。なお、入賞役の種類は、これに限定されるものではなく、任意に採用できることは言うまでもない。
【０４１６】
「ビッグボーナス（ＢＢ１、ＢＢ２）」（以下、単に、「ＢＢ」と称する場合がある）は、入賞により特別遊技であるビッグボーナス遊技（ＢＢ遊技）が開始される特別役（作動役）である。対応する図柄組合せは、ＢＢ１が「白７−白７−白７」、ＢＢ２が「青７−青７−青７」である。また、ＢＢ１、ＢＢ２についてはフラグ持越しを行う。すなわち、ＢＢ１、ＢＢ２に内部当選すると、これを示すフラグが立つ（主制御部１３００のＲＡＭ１３０８の当否判定結果記憶領域に記憶される）が、その遊技においてＢＢ１、ＢＢ２に入賞しなかったとしても、入賞するまで内部当選を示すフラグが立った状態が維持され、次遊技以降でもＢＢ１、ＢＢ２に内部当選中となり、ＢＢ１に対応する図柄組み合わせ「白７−白７−白７」、ＢＢ２に対応する図柄組み合わせ「青７−青７−青７」が、揃って入賞する状態にある。
【０４１７】
「レギュラーボーナス（ＲＢ）」は、入賞によりレギュラーボーナス遊技（ＲＢ遊技）が開始される特殊役（作動役）である。対応する図柄組合せは、「ボーナス−ボーナス−ボーナス」である。なお、ＲＢについても上述のＢＢと同様にフラグ持越しを行う。但し、（詳細は後述するが）ビッグボーナス遊技（ＢＢ遊技）においては、レギュラーボーナス遊技（ＲＢ遊技）が内部当選することや、図柄組み合わせが入賞ライン上に表示されること、を開始条件とせずに、ビッグボーナス遊技の開始後からレギュラーボーナス遊技を開始し、１回のレギュラーボーナス遊技を終了した場合には次のレギュラーボーナス遊技をすぐに開始するような自動的にレギュラーボーナス遊技を開始させる設定としてもよい。  「小役（チェリー、スイカ、ベル）」（以下、単に、「チェリー」、「スイカ」、「ベル」と称する場合がある）は、入賞により所定数のメダルが払い出される入賞役で、対応する図柄組合せは、チェリーが「チェリー−ＡＮＹ−ＡＮＹ」、スイカが「スイカ−スイカ−スイカ」、ベルが「ベル−ベル−ベル」である。また、対応する払出枚数は同図に示す通りである。なお、「チェリー−ＡＮＹ−ＡＮＹ」の場合、左リール１１１０の図柄が「チェリー」であればよく、中リール１１１１と右リール１１１２の図柄はどの図柄でもよい。
【０４１８】
「再遊技（リプレイ）」は、入賞により次回の遊技でメダル（遊技媒体）の投入を行うことなく遊技を行うことができる入賞役（作動役）であり、メダルの払出は行われない。なお、対応する図柄組合せは、再遊技は「リプレイ−リプレイ−リプレイ」である。
＜遊技状態の種類＞
次に、スロットマシン１１００の遊技状態の種類について説明する。遊技状態とは、抽選などにおいて選択する抽選データの種別を識別するための情報である。本実施形態では、スロットマシン１１００の遊技状態は、通常遊技と、ＢＢ遊技と、ＲＢ遊技と、ビッグボーナス（ＢＢ）およびレギュラーボーナス（ＲＢ）の内部当選遊技と、に大別した。但し、内部当選遊技は、通常遊技に含まれる区分けであってもよい。 
＜通常遊技＞
通常遊技に内部当選する入賞役には、ビッグボーナス（ＢＢ）と、レギュラーボーナス（ＲＢ）と、再遊技（リプレイ）と、小役（チェリー、スイカ、ベル）がある。
【０４１９】
「ビッグボーナス（ＢＢ）」は、入賞により特別遊技であるビッグボーナス遊技（ＢＢ遊技）が開始される特別役（作動役）である。レギュラーボーナス（ＲＢ）」は、入賞によりレギュラーボーナス遊技（ＲＢ遊技）を開始する特殊役（作動役）である。「再遊技（リプレイ）」は、入賞により次回の遊技でメダルの投入を行うことなく遊技を行うことができる入賞役（作動役）であり、メダルの払出も行われない。「小役」は、入賞により所定数のメダルが払い出される入賞役である。なお、各々の役の内部当選確率は、通常遊技に用意された抽選データから、各々の役に対応付けされた抽選データの範囲に該当する数値データを、内部抽選時に取得される乱数値の範囲の数値データ（例えば６５５３５）で除した値で求められる。通常遊技に用意された抽選データは、予めいくつかの数値範囲に分割され、各数値範囲に各々の役やハズレを対応付けしている。内部抽選を実行した結果得られた乱数値が、何れの役に対応する抽選データに対応する値であったかを判定し、内部抽選役を決定する。この抽選データは少なくとも１つの役の当選確率を異ならせた設定１〜設定６が用意され、遊技店の係員等はいずれかの設定値を任意に選択し、設定することができる。
【０４２０】
通常遊技は、内部抽選の結果が概ねハズレ（ビッグボーナス（ＢＢ）、レギュラーボーナス（ＲＢ）、再遊技（リプレイ）および小役に当選していない）となる設定、又は、停止表示結果がいずれの役の図柄組合せに該当しないハズレの停止表示結果が概ね導出される設定がされており、獲得するメダルの総数が、投入したメダルの総数に満たない遊技状態になっている。よって、遊技者にとっては不利益となる遊技状態である。但し、予め定めた条件を満たした場合（例えば、特定の図柄組み合わせが表示された場合）には、再遊技の内部当選の確率を上昇させる変動をさせてもよい遊技状態であり、この場合、遊技に用いられるメダルの消費が抑えられ、小役の入賞によって所定数のメダルが払い出されることにより、獲得するメダルの総数が、投入したメダルの総数を超える遊技状態になり、遊技者にとっては利益となる遊技状態になる場合がある。
【０４２１】
＜ＢＢ遊技＞
ＢＢ遊技は、遊技者にとっては利益となる遊技状態になるように設定されている。つまり、ＢＢ遊技は、獲得するメダルの総数が、投入したメダルの総数を超える遊技状態となる。ＢＢ遊技は、本実施形態では、ビッグボーナス（ＢＢ）の入賞により開始され、ＲＢ遊技（後述する）を連続して繰り返し実行可能になっており、遊技中に予め定められた一の数（例えば、４６５枚）を超えるメダルが獲得された場合に終了する。但し、ＢＢ遊技はＲＢ遊技を複数回数実行可能であればよく、例えば、ＲＢ遊技を開始する役（図柄組み合わせは例えば、リプレイ−リプレイ−リプレイ）を設定し、この役が内部当選した場合、または、入賞した場合に、ＲＢ遊技を開始するように設定してもよい。さらには、ＢＢ遊技は、ＢＢ遊技中のＲＢ遊技を除くＢＢ一般遊技を予め定めた回数（例えば、３０回）実行した場合、または、ＢＢ遊技中に実行したＲＢ遊技の回数が予め定めた回数に達した場合（例えば、３回）に終了するようにしてもよい。
【０４２２】
＜ＲＢ遊技＞
ＲＢ遊技は、遊技者にとっては利益となる遊技状態になるように設定されている。つまり、ＲＢ遊技は、獲得するメダルの総数が、投入したメダルの総数を超える遊技状態となる。ＲＢ遊技は、本実施形態では、レギュラーボーナス（ＲＢ）の入賞により開始され、予め定めた一の役が内部当選の確率を上昇させる変動（例えば、「設定１」「通常遊技」に設定された「小役１」の内部当選確率１／１５を、予め定めた一の値である内部当選確率１／１．２に上昇させる）をし、予め定めた一の数（例えば、８回）の入賞があった場合に終了する。ＲＢ遊技は、予め定めた回数（少なくとも２回）の入賞があった場合（例えば、８回）、または、ＲＢ遊技中に実行したＲＢ遊技の回数が予め定めた回数に達した場合（例えば、８回）に終了するようにしてもよい。上述したＢＢ遊技は、ＲＢ遊技を複数回数実行可能であるので、一回のＲＢ遊技を行った場合には、ＢＢ遊技で得られるメダルの総数よりも少ないメダル数を獲得して終了することとなる。
【０４２３】
＜ビッグボーナス（ＢＢ）およびレギュラーボーナス（ＲＢ）の内部当選遊技＞
ビッグボーナス（ＢＢ）およびレギュラーボーナス（ＲＢ）の内部当選遊技に内部当選する入賞役には、再遊技（リプレイ）と、小役がある。ビッグボーナス（ＢＢ）およびレギュラーボーナス（ＲＢ）は内部当選することはなく、ビッグボーナス（ＢＢ）かレギュラーボーナス（ＲＢ）に対応する図柄組み合わせを入賞させることが可能となっている遊技状態である。
【０４２４】
但し、ビッグボーナス（ＢＢ）およびレギュラーボーナス（ＲＢ）に内部当選した次遊技から、再遊技の内部当選の確率を変動させてもよく、例えば、再遊技の内部当選の確率を上昇させる変動をさせて、ビッグボーナス（ＢＢ）およびレギュラーボーナス（ＲＢ）対応する図柄組み合わせが入賞するまでの間は、獲得するメダルの総数が、投入したメダルの総数とほぼ同じとなる遊技状態とし、通常遊技と比べると遊技者にとっては利益となる遊技状態としてもよい。なお、ＢＢ遊技、ＲＢ遊技は両者とも遊技者にとって利益となる遊技状態であるため、総じて、ボーナス遊技、又は、特別遊技と称する場合がある。
【０４２５】
＜主制御部メイン処理＞
次に、図７０を用いて、主制御部１３００のＣＰＵ１３０４が実行する主制御部メイン処理について説明する。なお、同図は主制御部メイン処理の流れを示すフローチャートである。
【０４２６】
上述したように、主制御部１３００には、電源が投入されると起動信号（リセット信号）を出力する起動信号出力回路（リセット信号出力回路）１３３８を設けている。この起動信号を入力した基本回路１３０２のＣＰＵ１３０４は、リセット割込によりリセットスタートしてＲＯＭ１３０６に予め記憶している制御プログラムに従って、この主制御部メイン処理を実行する。
【０４２７】
電源投入が行われると、まず、ステップＳ２１０１で各種の初期設定を行う。この初期設定では、ＣＰＵ１３０４のスタックポインタ（ＳＰ）へのスタック初期値の設定、割込禁止の設定、Ｉ／Ｏ１３１０の初期設定、ＲＡＭ１３０８に記憶する各種変数の初期設定、ＷＤＴ１３１４への動作許可及び初期値の設定等を行う。ステップＳ２１０３ではメダル投入・スタート操作受付処理を実行する。ここではメダルの投入の有無をチェックし、メダルの投入に応じて入賞ライン表示ランプ１１２０を点灯させる。なお、前回の遊技で再遊技に入賞した場合は、前回の遊技で投入されたメダル枚数と同じ数のメダルを投入する処理を行うので、遊技者によるメダルの投入が不要となる。また、スタートレバー１１３５が操作されたか否かのチェックを行い、スタートレバー１１３５の操作があればステップＳ２１０５へ進む。
【０４２８】
ステップＳ２１０５では投入されたメダル枚数を確定し、有効な入賞ラインを確定する。ステップＳ２１０７では乱数発生回路１３１６で発生させた乱数を取得する。ステップＳ２１０９では、現在の遊技状態に応じてＲＯＭ１３０６に格納されている入賞役抽選テーブルを読み出し、これとステップＳ２１０７で取得した乱数値とを用いて内部抽選を行う。内部抽選の結果、いずれかの入賞役（作動役を含む）に内部当選した場合、その入賞役のフラグがＯＮになる。ステップＳ２１１１では内部抽選結果に基づき、リール停止データを選択する。
【０４２９】
ステップＳ２１１３では全リール１１１０乃至１１１２の回転を開始させる。ステップＳ２１１５では、ストップボタン１１３７乃至１１３９の受け付けが可能になり、いずれかのストップボタンが押されると、押されたストップボタンに対応するリール１１１０乃至１１１２の何れかをステップＳ２１１１で選択したリール停止制御データに基づいて停止させる。全リール１１１０乃至１１１２が停止するとステップＳ２１１７へ進む。ステップＳ２１１７では、入賞判定を行う。ここでは、有効化された入賞ライン１１１４上に、何らかの入賞役に対応する図柄組合せが表示された場合にその入賞役に入賞したと判定する。例えば、有効化された入賞ライン上に「ベル−ベル−ベル」が揃っていたならばベル入賞と判定する。ステップＳ２１１９では払い出しのある何らかの入賞役に入賞していれば、その入賞役に対応する枚数のメダルを入賞ライン数に応じて払い出す。ステップＳ２１２１では遊技状態制御処理を行う。遊技状態制御処理では、通常遊技、ＢＢ遊技、ＲＢ遊技、内部当選遊技、の各遊技状態の移行に関する処理を行い、それらの開始条件、終了条件の成立により、遊技状態を移行する。以上により１ゲームが終了する。以降ステップＳ２１０３へ戻って上述した処理を繰り返すことにより遊技が進行することになる。
【０４３０】
＜主制御部１３００タイマ割込処理＞
次に、図７１を用いて、主制御部１３００のＣＰＵ１３０４が実行する主制御部タイマ割込処理について説明する。なお、同図は主制御部タイマ割込処理の流れを示すフローチャートである。
【０４３１】
主制御部１３００は、所定の周期（本実施形態では約２ｍｓに１回）でタイマ割込信号を発生するカウンタタイマ１３１２を備えており、このタイマ割込信号を契機として主制御部タイマ割込処理を所定の周期で開始する。
【０４３２】
ステップＳ２２０１では、タイマ割込開始処理を行う。このタイマ割込開始処理では、ＣＰＵ１３０４の各レジスタの値をスタック領域に一時的に退避する処理などを行う。ステップＳ２２０３では、ＷＤＴ１３１４のカウント値が初期設定値（本実施形態では３２．８ｍｓ）を超えてＷＤＴ割込が発生しないように（処理の異常を検出しないように）、ＷＤＴ１３１４を定期的に（本実施形態では、主制御部タイマ割込の周期である約２ｍｓに１回）リスタートを行う。
【０４３３】
ステップＳ２２０５では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、Ｉ／Ｏ１３１０の入力ポートを介して、各種センサ１３１８のセンサ回路１３２０の検出信号を入力して検出信号の有無を監視し、ＲＡＭ１３０８に各種センサ１３１８ごとに区画して設けた信号状態記憶領域に記憶する。
【０４３４】
ステップＳ２２０７では、各種遊技処理を行う。具体的には、割込みステータスを取得し（各種センサ１３１８からの信号に基づいて各種割込みステータスを取得する）、このステータスに従った処理を行う（例えば、取得した各ストップボタン１１３７乃至１１３９の割込みステータスに基づいて、停止ボタン受付処理を行う）。ステップＳ２２０９では、タイマ更新処理を行う。各種タイマをそれぞれの時間単位により更新する。
【０４３５】
ステップＳ２２１１では、コマンド設定送信処理を行い、各種のコマンドが第１副制御部１４００に送信される。なお、第１副制御部１４００に送信する出力予定情報は本実施形態では１６ビットで構成しており、ビット１５はストローブ情報（オンの場合、データをセットしていることを示す）、ビット１１〜１４はコマンド種別（本実施形態では、基本コマンド、スタートレバー受付コマンド、演出抽選処理に伴う演出コマンド、リール１１１０乃至１１１２の回転を開始に伴う回転開始コマンド、ストップボタン１１３７乃至１１３９の操作の受け付けに伴う停止ボタン受付コマンド、リール１１１０乃至１１１２の停止処理に伴う停止位置情報コマンド、メダル払出処理に伴う払出枚数コマンド及び払出終了コマンド、遊技状態を示すコマンド等）、ビット０〜１０はコマンドデータ（コマンド種別に対応する所定の情報）で構成されている。第１副制御部１４００では、受信した出力予定情報に含まれるコマンド種別により、主制御部１３００における遊技制御の変化に応じた演出制御の決定が可能になるとともに、出力予定情報に含まれているコマンドデータの情報に基づいて、演出制御内容を決定することができるようになる。
【０４３６】
ステップＳ２２１３では、外部出力信号設定処理を行う。この外部出力信号設定処理では、ＲＡＭ１３０８に記憶している遊技情報を、情報出力回路１３３４を介してスロットマシン１１００とは別体の情報入力回路１６５２に出力する。
【０４３７】
ステップＳ２２１５では、デバイス監視処理を行う。このデバイス監視処理では、まずはステップＳ２２０５において信号状態記憶領域に記憶した各種センサ１３１８の信号状態を読み出して、メダル投入異常及びメダル払出異常等に関するエラーの有無を監視し、エラーを検出した場合には（図示省略）エラー処理を実行させる。さらに、現在の遊技状態に応じて、メダルセレクタ１１７０（メダルセレクタ１１７０内に設けたソレノイドが動作するメダルブロッカ）、各種ランプ１３３８、各種の７セグメント（ＳＥＧ）表示器の設定を行う。
【０４３８】
ステップＳ２２１７では、低電圧信号がオンであるか否かを監視する。そして、低電圧信号がオンの場合（電源の遮断を検知した場合）にはステップＳ２２２１に進み、低電圧信号がオフの場合（電源の遮断を検知していない場合）にはステップＳ２２１９に進む。
【０４３９】
ステップＳ２２１９では、タイマ割込終了処理を終了する各種処理を行う。このタイマ割込終了処理では、ステップＳ２２０１で一時的に退避した各レジスタの値を元の各レジスタに設定等行う。その後、主制御部メイン処理に復帰する。一方、ステップＳ２２２１では、復電時に電断時の状態に復帰するための特定の変数やスタックポインタを復帰データとしてＲＡＭ１３０８の所定の領域に退避し、入出力ポートの初期化等の電断処理を行い、その後、主制御部メイン処理に復帰する。
【０４４０】
＜第１副制御部４００の処理＞
次に、図７２を用いて、第１副制御部１４００の処理について説明する。なお、同図（ａ）は、第１副制御部１４００のＣＰＵ１４０４が実行するメイン処理のフローチャートであり、同図（ｂ）は、第１副制御部１４００のコマンド受信割込処理のフローチャートである。また、同図（ｃ）は、第１副制御部１４００のタイマ割込処理のフローチャートである。
【０４４１】
まず、同図（ａ）のステップＳ２３０１では、各種の初期設定を行う。電源投入が行われると、まずステップＳ２３０１で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、ＲＡＭ１４０８内の記憶領域の初期化処理等を行う。
【０４４２】
ステップＳ２３０３では、タイマ変数が１０以上か否かを判定し、タイマ変数が１０となるまでこの処理を繰り返し、タイマ変数が１０以上となったときには、ステップＳ２３０５の処理に移行する。ステップＳ２３０５では、タイマ変数に０を代入する。ステップＳ２３０７では、コマンド処理を行う。コマンド処理では第１副制御部１４００のＣＰＵ１４０４は、主制御部１３００からコマンドを受信したか否かを判別する。
【０４４３】
ステップＳ２３０９では、演出制御処理を行う。この演出制御処理では、例えば、ステップＳ２３０７で新たなコマンドがあった場合には、このコマンドに対応する処理を行う。この処理には、例えば、演出データをＲＯＭ１４０６から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行うことが含まれる。
【０４４４】
ステップＳ２３１１では、ステップ２３０９の処理結果に基づいて音制御処理を行う。例えば、ステップＳ２３０９で読み出した演出データの中に音源ＩＣ１４１８への命令がある場合には、この命令を音源ＩＣ１４１８に出力する。ステップＳ２３１３では、ステップ２３０９の処理結果に基づいてランプ制御処理を行う。例えば、ステップＳ２３０９で読み出した演出データの中に各種ランプ１４２０への命令がある場合には、この命令を駆動回路１４２２に出力する。
【０４４５】
ステップＳ２３１５では、ステップ２３０９の処理結果に基づいて第２副制御部５００に制御コマンドを送信する設定を行う情報出力処理を行う。例えば、ステップＳ２３０９で読み出した演出データの中に第２副制御部１５００に送信する制御コマンドがある場合には、この制御コマンドを出力する設定を行い、ステップＳ２３０３へ戻る。
【０４４６】
次に、同図（ｂ）を用いて、第１副制御部１４００のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第１副制御部１４００が、主制御部１３００が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップＳ２４０１では、主制御部１３００が出力したコマンドを未処理コマンドとしてＲＡＭ１４０８に設けたコマンド記憶領域に記憶する。
【０４４７】
次に、同図（ｃ）を用いて、第１副制御部１４００のＣＰＵ１４０４によって実行する第１副制御部タイマ割込処理について説明する。第１副制御部１４００は、所定の周期（本実施形態では２ｍｓに１回）でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【０４４８】
ステップＳ２５０１では、第１副制御部メイン処理におけるステップＳ２３０３において説明したＲＡＭ１４０８のタイマ変数記憶領域の値に、１を加算して元のタイマ変数記憶領域に記憶する。従って、ステップＳ２３０３において、タイマ変数の値が１０以上と判定されるのは２０ｍｓ毎（２ｍｓ×１０）となる。ステップＳ２５０３では、ステップＳ２３１５で設定された第２副制御部１５００への制御コマンドの送信や、演出用乱数値の更新処理等を行う。
【０４４９】
＜第２副制御部５００の処理＞
次に、図７３を用いて、第２副制御部１５００の処理について説明する。なお、同図（ａ）は、第２副制御部１５００のＣＰＵ１５０４が実行するメイン処理のフローチャートであり、同図（ｂ）は、第２副制御部１５００のコマンド受信割込処理のフローチャートである。また、同図（ｃ）は、第２副制御部１５００のタイマ割込処理のフローチャートであり、同図（ｄ）は、第２副制御部１５００の画像制御処理のフローチャートである。
【０４５０】
まず、同図（ａ）のステップＳ２６０１では、各種の初期設定を行う。電源投入が行われると、まずステップＳ２６０１で初期化処理が実行される。この初期化処理では、入出力ポート初期設定や、ＲＡＭ１５０８内の記憶領域の初期化処理等を行う。
【０４５１】
ステップＳ２６０３では、タイマ変数が１０以上か否かを判定し、タイマ変数が１０となるまでこの処理を繰り返し、タイマ変数が１０以上となったときには、ステップＳ２６０５の処理に移行する。ステップＳ２６０５では、タイマ変数に０を代入する。
ステップＳ２６０７では、コマンド処理を行う。コマンド処理では第２副制御部１５００のＣＰＵ１５０４は、第１副制御部１４００のＣＰＵ１４０４からコマンドを受信したか否かを判別する。
ステップＳ２６０９では、演出制御処理を行う。この演出制御処理では、例えば、ステップＳ２６０７で新たなコマンドがあった場合には、このコマンドに対応する処理を行う。この処理には、例えば、演出データをＲＯＭ１５０６から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行うことが含まれる。
【０４５２】
ステップＳ２６１１では、ステップＳ２６０９の処理結果に基づいてシャッタ制御処理を行う。例えば、ステップＳ２６０９で読み出した演出データの中にシャッタ制御の命令がある場合には、この命令に対応するシャッタ制御を行う。ステップＳ２６１３では、ステップＳ２６０９の処理結果に基づいて画像制御処理を行う。例えば、ステップＳ２６０９読み出した演出データの中に画像制御の命令がある場合には、この命令に対応する画像制御を行い（詳細は後述する）、ステップＳ２６０３へ戻る。
【０４５３】
次に、同図（ｂ）を用いて、第２副制御部１５００のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第２副制御部１５００が、第１副制御部１４００が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップＳ２７０１では、第１副制御部１４００が出力したコマンドを未処理コマンドとしてＲＡＭ１５０８に設けたコマンド記憶領域に記憶する。
【０４５４】
次に、同図（ｃ）を用いて、第２副制御部１５００のＣＰＵ１５０４によって実行する第２副制御部タイマ割込処理について説明する。第２副制御部１５００は、所定の周期（本実施形態では２ｍｓに１回）でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【０４５５】
ステップＳ２８０１では、第２副制御部メイン処理におけるステップＳ２６０３において説明したＲＡＭ１５０８のタイマ変数記憶領域の値に、１を加算して元のタイマ変数記憶領域に記憶する。従って、ステップＳ２６０３において、タイマ変数の値が１０以上と判定されるのは２０ｍｓ毎（２ｍｓ×１０）となる。ステップＳ２８０３では、演出用乱数値の更新処理等を行う。
【０４５６】
次に、同図（ｄ）を用いて、第２副制御部１５００のメイン処理におけるステップＳ２６１３の画像制御処理について説明する。同図は、画像制御処理の流れを示すフローチャートを示した図である。
【０４５７】
ステップＳ２９０１では、画像データの転送指示を行う。ここでは、ＣＰＵ１５０４は、まず、ＶＲＡＭ１５３６の表示領域Ａと表示領域Ｂの描画領域の指定をスワップする。これにより、描画領域に指定されていない表示領域に記憶された１フレームの画像が演出画像表示装置１１５７に表示される。次に、ＣＰＵ１５０４は、ＶＤＰ１５３４のアトリビュートレジスタに、位置情報等テーブルに基づいてＲＯＭ座標（ＲＯＭ１５０６の転送元アドレス）、ＶＲＡＭ座標（ＶＲＡＭ１５３６の転送先アドレス）などを設定した後、ＲＯＭ１５０６からＶＲＡＭ１５３６への画像データの転送開始を指示する命令を設定する。ＶＤＰ１５３４は、アトリビュートレジスタに設定された命令に基づいて画像データをＲＯＭ１５０６からＶＲＡＭ１５３６に転送する。その後、ＶＤＰ１５３４は、転送終了割込信号をＣＰＵ１５０４に対して出力する。
【０４５８】
ステップＳ２９０３では、ＶＤＰ１５３４からの転送終了割込信号が入力されたか否かを判定し、転送終了割込信号が入力された場合はステップＳ２９０５に進み、そうでない場合は転送終了割込信号が入力されるのを待つ。ステップＳ２９０５では、演出シナリオ構成テーブルおよびアトリビュートデータなどに基づいて、パラメータ設定を行う。ここでは、ＣＰＵ１５０４は、ステップＳ２９０１でＶＲＡＭ１５３６に転送した画像データに基づいてＶＲＡＭ１５３６の表示領域ＡまたはＢに表示画像を形成するために、表示画像を構成する画像データの情報（ＶＲＡＭ１５３６の座標軸、画像サイズ、ＶＲＡＭ座標（配置座標）など）をＶＤＰ１５３４に指示する。ＶＤＰ１５３４はアトリビュートレジスタに格納された命令に基づいてアトリビュートに従ったパラメータ設定を行う。
【０４５９】
ステップＳ２９０７では、描画指示を行う。この描画指示では、ＣＰＵ１５０４は、ＶＤＰ１５３４に画像の描画開始を指示する。ＶＤＰ１５３４は、ＣＰＵ１５０４の指示に従ってフレームバッファにおける画像描画を開始する。ステップＳ２９０９では、画像の描画終了に基づくＶＤＰ１５３４からの生成終了割込み信号が入力されたか否かを判定し、生成終了割込み信号が入力された場合はステップＳ２９１１に進み、そうでない場合は生成終了割込み信号が入力されるのを待つ。ステップＳ２９１１では、ＲＡＭ１５０８の所定の領域に設定され、何シーンの画像を生成したかをカウントするシーン表示カウンタをインクリメント（＋１）して処理を終了する。
【０４６０】
このようなスロットマシン１１００の主制御部１３００に対しても、次に説明する本発明の特徴点の一つ、複数、または全てを適用することができる。
【０４６１】
以上説明したように、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、遊技の進行を中心とした遊技制御を行うＣＰＵ（例えば、ＣＰＵ３０４（またはＣＰＵ１３０４）を有する主制御部（例えば、主制御部３００（または主制御部１３００））と、前記主制御部の遊技制御に基づいて遊技の演出制御を行う副制御部（例えば、第１副制御部４００、第２副制御部５００（または、第１副制御部１４００、第２副制御部１５００））と、を備えた遊技台であって、前記ＣＰＵは、第一レジスタ（例えば、「ＰＯＰ  ＴＩ命令」、「ＰＵＳＨ  ＴＩ命令」などのロード命令で使うことができるが、演算命令では使うことができない（演算命令によって直接、自身の値を変化させることができない）Ｔレジスタ）と第二レジスタ（例えば、Ａレジスタ、Ｆレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタ、Ｈレジスタ、Ｌレジスタ、およびこれらの裏レジスタ）を備えるとともに、前記第一レジスタに前記第二レジスタを介してデータを転送する命令（例えば「ＬＤ  Ｔ，Ａ」命令のように、ＴレジスタにＡレジスタを介して直接、データを転送する命令）を備えず、前記第一レジスタに直値（イミディエイト値や即値ともいう）によりデータを設定する命令（例えば、「ＬＤ  Ｔ，Ｆ０Ｈ」命令）を備えることを特徴とする遊技台である。
【０４６２】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、第一のレジスタに対して直値でデータを転送するよう構成されているので、セットしているデータを確認し易くなる場合がある。また、第一のレジスタに対して他のレジスタを介してデータを転送できないように構成されているので、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。また、第一レジスタは直値によるデータの転送のみが認められているため、レジスタを介したデータの転送と直値によるデータの転送の両方が認められている他のレジスタよりも相対的に使用頻度が低くなる。このため、コーディングの見直し作業や、デバッグ（例えば、Ｔレジスタのトレースなど）の効率を高めることが可能となる。
【０４６３】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、ＣＰＵを有し、遊技制御を行う遊技制御手段を備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記ＣＰＵは、マイクロコンピュータに内蔵され、前記ＣＰＵは、少なくとも特定レジスタ（例えば、Ｔレジスタ）を備え、前記ＣＰＵは、前記特定レジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われるものとしては、直値により値をセットする機能のみを有する遊技台である。
【０４６４】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、ロード命令では特定レジスタに対して直値以外にデータをセットできないので、特定レジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができ、安定した遊技制御を行うことができる。また、特定レジスタにセットしているデータをソースコード上で目視で容易に確認することができるため、コーディングの見直し作業やデバッグの効率を高めることができ、従来よりもミスの発生を大幅に減らすことができ、安定した遊技制御を行うことができる。また、特定レジスタは直値によるデータのセットのみが認められているため、レジスタを介したデータのセットと直値によるデータのセットの両方が認められている他のレジスタよりも相対的に使用頻度が低くなる。このため、コーディングの見直し作業やデバッグ（例えば、Ｔレジスタのトレースなど）の効率を高めることができる場合がある。
【０４６５】
なお、本発明は、「プログラミングの際にロード命令を用いない」ことを特徴とするものではなく、「ＣＰＵは、特定レジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われるものとしては、直値により値をセットする機能のみを有する」ため、「プログラミングの際に、特定レジスタについては直値により値をセットするロード命令しか用いることができない」ことを特徴としている。
【０４６６】
すなわち、本発明では、プログラミングの際に、たとえ特定レジスタに他のレジスタを介して値をセットするロード命令を用いようとしても、ＣＰＵ自体がそのようなロード命令を実行（理解）する機能を有していないため、通常は、アセンブラ言語を機械語にアセンブルする過程で、ＣＰＵが実行（理解）できない命令として排除され、機械語に変換できないように構成される。このため、プログラマーは、プログラミングの際に、たとえ特定レジスタに他のレジスタを介して値をセットするロード命令を用いたくても、用いることができない。なお、本明細書では、アセンブリ言語を使ってプログラミングを行う例を示しているが、機械語を使ってプログラミングを行った場合も事情は同じで、プログラマーは、プログラミングの際に、たとえ特定レジスタに他のレジスタを介して値をセットするロード命令を用いたくても、ＣＰＵが実行（理解）できない以上、当該命令を用いることができない。
【０４６７】
このような理由により、本発明では、上述の顕著な効果を得ることができるが、従来技術では、ロード命令に関して本発明のような制約がないため、プログラマーは、プログラミングの際に、特定レジスタに他のレジスタを介して値をセットするロード命令を自由に用いることができる。「プログラミングの際にロード命令を用いるか否か（記述するか否か）は、プログラムの内容等に基づく必要に応じて当業者が適宜選択し得る事項である」ため、プログラマーは、特定レジスタに他のレジスタを介して値をセットするロード命令を用いるか否かを適宜選択することができるが、従来技術では当該命令を用いることができるという選択肢がある以上、上述の本発明特有の顕著な効果と同等の効果を確実に得ることはできない。
【０４６８】
また、仮にプログラミングの際には当該命令を用いないというルールを策定したとしても、ルールを守るか守らないかはプログラマー（人間）に依存することであり、本発明のように、特定レジスタに他のレジスタを介して値をセットするロード命令の使用を１００％排除できるものでもない。
【０４６９】
さらに、特定レジスタに他のレジスタを介して値をセットするロード命令を自由に用いることができる環境では、通常は、アセンブラ言語を機械語にアセンブルする過程で、ＣＰＵが実行（理解）できる命令として、当該命令を機械語に変換できるように構成される。このため、従来技術においては、プログラマーは、プログラミングの際に、たとえ特定レジスタに他のレジスタを介して値をセットするロード命令を用いないように注意していたとしても、アセンブラの最適化などによって当該命令に相当する機械語にアセンブルされてしまう可能性を１００％排除することができない。
【０４７０】
また、前記第二レジスタは、一の特定レジスタ（例えば、Ａレジスタ）と複数の非特定レジスタ（例えば、Ｆレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタ、Ｈレジスタ、Ｌレジスタ、およびこれらの裏レジスタ）で構成されており、前記ＣＰＵは、前記非特定レジスタに前記第一レジスタを介してデータを転送する命令（例えば、「ＬＤ  Ｂ，Ｔ」命令のように、ＢレジスタにＴレジスタを介してデータを転送する命令）を備えず、前記特定レジスタに前記第一レジスタを介してデータを転送する命令（例えば、「ＬＤ  Ａ，Ｔ」命令）を備えてもよい。
【０４７１】
このような構成とすれば、第一のレジスタを他のレジスタに比べて使いにくくすることができるため、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。
【０４７２】
また、前記第一レジスタおよび前記第二レジスタは、８ビット長の値を記憶可能な８ビットレジスタであり、前記非特定レジスタは、他のレジスタと合わせて１６ビット長の演算が可能なレジスタの組み合わせ（例えば、ＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタ）を構成可能なレジスタであるが、前記第一レジスタは、他のレジスタと合わせて前記１６ビット長の演算が可能なレジスタの組み合わせを構成不可能なレジスタであってもよい。
【０４７３】
このような構成とすれば、第一のレジスタを他のレジスタに比べて使いにくくすることができるため、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。なお、Ｔレジスタは、他のレジスタと合わせて１６ビット長の演算が可能なレジスタの組み合わせを構成不可能であるが、上述の通り、「ＰＵＳＨ  ＴＩ」命令や、「ＰＯＰ  ＴＩ」命令では、Ｉレジスタと合わせて１６ビット長の退避・復帰が可能である。換言すれば、Ｔレジスタは、演算命令のオペランドとしては利用できないが、転送命令のオペランドとしては利用することができるレジスタである。
【０４７４】
また、前記遊技制御に用いるデータを記憶する記憶手段を備え、前記記憶手段は、前記ＣＰＵが実行するプログラムを記憶するＲＯＭ（例えば、ＲＯＭ３０６（またはＲＯＭ１３０６））と、前記ＣＰＵが前記遊技制御を行う際に用いるデータを一時記憶可能なＲＡＭ（例えば、ＲＡＭ３０８（またはＲＡＭ１３０８））と、を少なくとも有し、前記ＣＰＵは、前記遊技制御を開始する前（例えば、「電源投入後、主制御部３００のＣＰＵ３０４がユーザプログラム（制御プログラム）を実行する前」、「システムリセット後、主制御部３００のＣＰＵ３０４がユーザプログラム（制御プログラム）を実行する前」、「セキュリティモードに移行した直後」、「セキュリティチェックの結果がＯＫとなってユーザモードに移行した直後」、「システムリセットによる初期化処理の期間中」など）に、前記ＲＡＭの先頭アドレスのうちの上位アドレスを示す特定の値（例えば、Ｆ０Ｈ)を、（前記プログラムによらずに、）前記第一レジスタに設定してもよい。
【０４７５】
このような構成とすれば、ＲＡＭのデータを読み書きする場合には、第一のレジスタをＲＡＭの上位アドレスを示す値として固定することで、ＲＡＭの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。
【０４７６】
また、ＣＰＵと、遊技制御プログラムが記憶されたＲＯＭと、データを一時記憶可能なＲＡＭと、を内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記ＣＰＵは、少なくとも特定のレジスタを有し、前記ＲＡＭの先頭アドレスの上位バイトは、前記ＲＯＭの先頭アドレスの上位バイトよりも大きく、前記ＣＰＵは、前記特定のレジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われるものとしては、直値により値をセットする機能のみを有し、前記ＣＰＵは、前記特定のレジスタに値をセットする機能のうち、前記ロード命令を受けたことに基づいて行われるもの以外のものとしては、前記ＲＡＭの先頭アドレスの上位バイトと同じ値を初期値としてセットする機能を少なくとも有していてもよい。
【０４７７】
このような構成とすれば、ＲＡＭの上位アドレスを示す値を特定レジスタの初期値としてセットすることで、ＲＡＭのデータを読み書きする場合には、ＲＡＭの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することができる。しかも、特定レジスタには、初期値以外では、ロード命令による直値だけしかセットすることができないので、特定レジスタの値を不用意に変更することができなくなる結果、アドレスの設定ミスや、ＲＡＭへのデータの読み書きミスなどの発生を回避することができ、安定した遊技制御を行うことができる。また、頻繁に演算に用いられることにより、意図しない演算結果が記憶されたレジスタ経由で、間違った値が特定のレジスタにセットされることを防止できるとともに、初期値としてＲＡＭの先頭アドレスの上位バイトと同じ値が特定のレジスタにセットされるので、電源投入後、特定のレジスタを用いてＲＡＭのアクセスを行う場合であれば、特定のレジスタに値をセットする操作をせずに、特定のレジスタを用いてＲＡＭのアクセスを行うことが可能になり、当該「ＲＡＭのアクセスを行う」ことについて、特定のレジスタの値が誤っていることから意図しないアドレスの情報をアクセスしてしまうといった不具合の防止効果をさらに高めることができる。
【０４７８】
また、プログラムを書き換えただけでは遊技を思い通りに制御することができないため、プログラムの書き換えによる不正行為を効果的に防止できる場合がある。特に、ＣＰＵのユーザによって設定されたユーザプログラムを実行可能なユーザモードと、該ユーザプログラムを実行不可能な非ユーザモード（例えば、セキュリティモード）と、を備え、該非ユーザモードにおいて前記特定の値を第一レジスタに設定すれば、特定の値が他の値に改ざんされたり、特定の値が読みだされたりするような不正行為を未然に防止できる場合がある。
【０４７９】
また、前記ＲＡＭは、第一エリア（例えば、７Ｅ００Ｈ〜７ＥＦＦＨのワークエリア（または、Ｉ／ＯマップドＩ／Ｏ方式でアクセス可能なエリア））と第二エリア（例えば、７ＦＥ０Ｈ〜７ＦＦＦＨのスタックエリア（または、メモリマップドＩ／Ｏ方式でアクセス可能なエリア））を有して構成されており、前記特定の値は、前記第一エリアの上位アドレス（Ｆ０Ｈ）を示す値であってもよい。
【０４８０】
このような構成とすれば、ＲＡＭの第一エリアのデータを読み書きする場合には、第一のレジスタをＲＡＭの第一エリアの上位アドレスを示す値として固定することで、ＲＡＭの第一エリアの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。また、第一エリアの上位アドレスを固定することによって、第一エリアの読み書きを行うつもりが誤って第二エリアの読み書きを行ってしまうようなミスを未然に防止できる場合がある。
【０４８１】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、遊技の進行を中心とした遊技制御を行うＣＰＵ（例えば、ＣＰＵ３０４（またはＣＰＵ１３０４）と、前記遊技制御に用いるデータを記憶する記憶手段と、を備えた遊技台であって、前記記憶手段は、前記ＣＰＵが実行するプログラムを記憶するＲＯＭ（例えば、ＲＯＭ３０６（またはＲＯＭ１３０６））と、前記ＣＰＵが前記遊技制御を行う際に用いるデータを一時記憶可能なＲＡＭ（例えば、ＲＡＭ３０８（またはＲＡＭ１３０８））と、を少なくとも有し、前記ＣＰＵは、前記遊技制御を開始する前（例えば、「電源投入後、主制御部３００のＣＰＵ３０４がユーザプログラム（制御プログラム）を実行する前」、「システムリセット後、主制御部３００のＣＰＵ３０４がユーザプログラム（制御プログラム）を実行する前」、「セキュリティモードに移行した直後」、「セキュリティチェックの結果がＯＫとなってユーザモードに移行した直後」、「システムリセットによる初期化処理の期間中」など）に、前記ＲＡＭの先頭アドレスのうちの上位アドレスを示す特定の値（例えば、Ｆ０Ｈ)を、（前記プログラムによらずに、）特定レジスタ（例えば、ＲＯＭ３０６とは別体のＣＰＵ３０４に内蔵されたＴレジスタ）に設定することを特徴とする遊技台である。
【０４８２】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、ＲＡＭのデータを読み書きする場合には、特定レジスタをＲＡＭの上位アドレスを示す値として固定することで、ＲＡＭの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、特定レジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。
【０４８３】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、ＣＰＵと、遊技制御プログラムを記憶するＲＯＭと、データを一時記憶可能なＲＡＭと、を内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記ＣＰＵは、少なくとも特定レジスタを備え、前記ＲＡＭの先頭アドレスの上位バイトは、前記ＲＯＭの先頭アドレスの上位バイトよりも大きく、前記遊技制御プログラムによらずに、前記ＲＡＭの先頭アドレスの上位バイトと同じ値が、初期値として前記特定レジスタにセットされることを特徴とする遊技台である。
【０４８４】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、遊技制御プログラム内でＲＡＭのアドレスの上位バイトを記述する必要がなくなるので、不正行為者にプログラムを不正に解析されたとしてもＲＡＭのアドレスが特定困難である上に、遊技制御プログラムを書き換えただけでは遊技を思い通りに制御することができないため、遊技制御プログラムの書き換えによる不正行為を効果的に防止することができる。また、ＲＡＭのデータを読み書きする場合には、特定レジスタをＲＡＭの上位アドレスを示す値として固定することで、ＲＡＭの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、特定レジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる。
【０４８５】
また、プログラムを書き換えただけでは遊技を思い通りに制御することができないため、プログラムの書き換えによる不正行為を効果的に防止できる場合がある。特に、ＣＰＵのユーザによって設定されたユーザプログラムを実行可能なユーザモードと、該ユーザプログラムを実行不可能な非ユーザモード（例えば、セキュリティモード）と、を備え、該非ユーザモードにおいて前記特定の値を第一レジスタに設定すれば、特定の値が他の値に改ざんされたり、特定の値が読みだされたりするような不正行為を未然に防止できる場合がある。
【０４８６】
また、前記ＣＰＵは、非特定レジスタ（例えば、Ａレジスタ、Ｆレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタ、Ｈレジスタ、Ｌレジスタ、およびこれらの裏レジスタ）をさらに備えるとともに、前記特定レジスタに前記非特定レジスタを介してデータを転送する命令（例えば「ＬＤ  Ｔ，Ａ」命令のように、ＴレジスタにＡレジスタを介してデータを転送する命令）を備えず、前記特定レジスタに直値によりデータを設定する命令（例えば、「ＬＤ  Ｔ，Ｆ０Ｈ」命令）を備えてもよい。
【０４８７】
このような構成とすれば、特定レジスタに対して直値でデータを転送するよう構成されているので、セットしているデータを確認し易くなる場合がある。また、特定レジスタに対して他のレジスタを介してデータを転送できないように構成されているので、特定レジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。また、特定レジスタは直値によるデータの転送のみが認められているため、レジスタを介したデータの転送と直値によるデータの転送の両方が認められている他のレジスタよりも相対的に使用頻度が低くなる。このため、コーディングの見直し作業や、デバッグ（例えば、Ｔレジスタのトレースなど）の効率を高めることが可能となる。
【０４８８】
また、前記ＣＰＵは、前記特定レジスタに直値によりデータを転送する命令に基づいて、前記特定レジスタに前記特定の値を転送することができるようにしてもよい。
【０４８９】
このような構成とすれば、ループ処理などで汎用レジスタの空きがなくなった場合に臨時的に特定レジスタを使用した後に、初期値に戻すことができ、利便性を高めることができる。
【０４９０】
また、前記ＣＰＵは、前記ＲＡＭから前記特定レジスタにデータを転送する命令に基づいて、前記特定レジスタに前記特定の値を転送（例えば、「ＰＯＰ  ＴＩ」命令による転送）することができるように構成してもよい。
【０４９１】
このような構成とすれば、特定レジスタを特定の処理に使用することが可能となり、特定レジスタの利便性を高めることができる場合がある。
【０４９２】
また、前記ＲＡＭは、第一エリア（例えば、７Ｅ００Ｈ〜７ＥＦＦＨのワークエリア（または、Ｉ／ＯマップドＩ／Ｏ方式でアクセス可能なエリア））と第二エリア（例えば、７ＦＥ０Ｈ〜７ＦＦＦＨのスタックエリア（または、メモリマップドＩ／Ｏ方式でアクセス可能なエリア））を有して構成されており、前記特定の値は、前記第一エリアの上位アドレス（Ｆ０Ｈ）を示す値であってもよい。
【０４９３】
このような構成とすれば、ＲＡＭの第一エリアのデータを読み書きする場合には、特定レジスタをＲＡＭの第一エリアの上位アドレスを示す値として固定することで、ＲＡＭの第一エリアの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、特定レジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。また、第一エリアの上位アドレスを固定することによって、第一エリアの読み書きを行うつもりが誤って第二エリアの読み書きを行ってしまうようなミスを未然に防止できる場合がある。
【０４９４】
また、前記ＣＰＵは、所定の割込み条件が成立したことに基づいて実行される割込み処理（例えば、主制御部メイン処理）を実行可能であるとともに、電源投入後、最初の前記割込み処理を実行する前に、前記特定レジスタに前記特定の値が設定されているかを判定する処理（例えば、Ｔレジチェック処理）を実行してもよい。なお、「電源投入後、最初の前記割込み処理を実行する前」の例としては、他にも、「電源投入後、主制御部メイン処理のステップＳ１０５の低電圧状態の確認前」や、「電源投入後、主制御部メイン処理のステップＳ１０９の電断前の状態に復帰する否かの確認前」や、「電源投入後、第１副制御部の立ち上りの確認前」などを挙げることができる。また、「判定する処理」の結果に応じて、上記図１１に示すように、特定レジスタに特定の値を設定したり、上記図１２に示すように、エラー処理を実行してもよい。
【０４９５】
このような構成とすれば、特定レジスタの値を確認することで遊技台が正常動作をしているか否かを判断できる場合がある。
【０４９６】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、複数のアドレスそれぞれで示される記憶領域（例えば、ＲＯＭ領域）に制御プログラムデータを含む複数種類のデータ（例えば、非使用データや参照データ）を記憶したＲＯＭ（例えば、ＲＯＭ３０６）と、前記ＲＯＭに記憶された前記制御プログラムデータに基づいて所定の周期毎に実行される割込み処理（例えば、主制御部タイマ割込み処理）を含む複数種類の遊技制御処理を実行するＣＰＵ（例えば、ＣＰＵ３０４）と、を備え、前記ＲＯＭは、１又は複数の前記制御プログラムデータであって、前記ＣＰＵが実行する複数種類の命令それぞれに対応した命令データ（オペコード）と、１又は複数の前記制御プログラムデータであって、前記ＣＰＵが該命令を実行するために必要な補足データ（オペランド）と、を記憶し、該命令データであって、特定のアドレス（例えば、サブルーチンの先頭のアドレス）を識別可能にする特定識別情報（例えば、サブルーチンの先頭のアドレスをバイナリ形式で表現した情報）の一部である第１の識別情報を示す第１のアドレスデータ（例えば、ｍ）および該第１のアドレスデータと異なる別データ（例えば、ＥＸＥＳＵＢ命令の命令データからｍを除いたデータ）で構成され、該特定のアドレスで示される記憶領域に記憶されたデータを前記ＣＰＵに読み込ませる特定命令（例えば、ＥＸＥＳＵＢ命令）に対応した特定命令データ（例えば、ＥＸＥＳＵＢ命令の命令データ）と、該補足データであって、該特定識別情報から該第１の識別情報を除いた情報のうちの少なくとも一部である第２の識別情報を示す第２のアドレスデータ（例えば、ｎ）で構成され、前記ＣＰＵが該特定命令を実行するために必要な特定補足データと、を前記割込み処理で実行される命令に対応するように（例えば、ＲＯＭ制御領域のうちタイマ割り込み処理の領域に対応するＲＯＭ３０６の記憶領域（タイマ割込み処理に対応したアドレスで示される記憶領域）に）記憶していることを特徴とする遊技台である。
【０４９７】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、命令データに含まれる第１のアドレスデータｍを上位アドレスのデータとして定義することで、アドレス領域に対して命令データをグループ化して対応付けることができ、コーディングミスを抑制することができる場合がある。また、命令データは、呼び出すサブルーチンの先頭アドレスの一部を構成するデータを含んで構成されていることから、移動先のアドレスデータを間違ってしまった場合であっても、間違ってしまったデータが命令データに含まれていれば、制御プログラムの実行が停止される場合があるため、コーディングミスを抑制することができる場合がある。また、従来のサブルーチンを呼び出す制御命令（例えば、ＣＡＬＬ命令）を圧縮することができ、ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域に記憶されている従来の制御プログラムデータを圧縮することが可能となる。また、制御プログラムの圧縮に起因して従来（例えば、ＣＡＬＬ命令）よりもサブルーチンを呼び出す制御プログラムの処理速度を向上させる（ステート数を少なくする）ことができる場合がある。
【０４９８】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、複数のアドレスそれぞれで示される記憶領域に制御プログラムデータおよび該制御プログラムデータに基づいて参照される参照データを含む複数種類のデータを記憶したＲＯＭと、前記ＲＯＭに記憶された前記制御プログラムデータおよび前記参照データに基づいて所定の周期毎に実行される割込み処理を含む複数種類の遊技制御処理を実行するＣＰＵと、を備え、前記ＲＯＭは、１又は複数の前記制御プログラムデータであって、前記ＣＰＵが実行する複数種類の命令それぞれに対応した命令データと、１又は複数の前記制御プログラムデータであって、前記ＣＰＵが該命令を実行するために必要な補足データと、を記憶し、前記命令データであって、特定のアドレスを識別可能にする特定識別情報の一部である第１の識別情報を示す第１のアドレスデータおよび該第１のアドレスデータと異なる別データで構成され、該特定のアドレスで示される記憶領域に記憶されたデータを前記ＣＰＵに読み込ませる特定命令に対応した特定命令データと、前記補足データであって、前記特定識別情報から前記第１の識別情報を除いた情報である第２の識別情報を示す第２のアドレスデータで構成され、前記ＣＰＵが該特定命令を実行するために必要な特定補足データと、を前記割込み処理で実行される命令に対応するように記憶し、前記特定命令の実行により前記ＣＰＵが読み込み可能な特定の記憶領域に全ての前記制御プログラムデータを記憶し、全ての制御プログラムデータが記憶された前記特定の記憶領域とは異なる記憶領域に、前記参照データを記憶していることを特徴とする遊技台である。
【０４９９】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、ＣＰＵが特定命令を実行する際に、誤って参照データを読み込んでしまい、当該参照データに基づいて意図しない遊技制御処理を行ってしまうような事態を未然に防止することができ、遊技制御の安定化を図ることができる。また、特定命令は、特定の記憶領域に記憶された全ての制御プログラムデータを読み込み可能に構成されているため、制御プログラムデータにおける呼出元と呼出先の配置（記憶場所）が制限されることがなく、制御プログラムの設計に自由度を持たせることができる。また、遊技台の分野においては、複数種類の遊技台において制御プログラムデータ（例えば、使用頻度の高いサブルーチン）を共用する一方で、各遊技台の仕様や性能に応じて参照データ（例えば、抽選値や演出データ）を異ならせることが一般的であるため、遊技台に特に好適である。
【０５００】
また、複数のアドレスそれぞれで示される記憶領域に制御プログラムデータおよび該制御プログラムデータに基づいて参照される参照データを含む複数種類のデータを記憶したＲＯＭと、前記ＲＯＭに記憶された前記制御プログラムデータおよび前記参照データに基づいて所定の周期毎に実行される割込み処理を含む複数種類の遊技制御処理を実行するＣＰＵと、を備え、前記ＲＯＭは、１又は複数の前記制御プログラムデータであって、前記ＣＰＵが実行する複数種類の命令それぞれに対応した命令データと、１又は複数の前記制御プログラムデータであって、前記ＣＰＵが該命令を実行するために必要な補足データと、を記憶し、前記命令データであって、特定のアドレスを識別可能にする特定識別情報の一部である第１の識別情報を示す第１のアドレスデータおよび該第１のアドレスデータと異なる別データで構成され、該特定のアドレスで示される記憶領域に記憶されたデータを前記ＣＰＵに読み込ませる特定命令に対応した特定命令データと、前記補足データであって、前記特定識別情報から前記第１の識別情報を除いた情報である第２の識別情報を示す第２のアドレスデータで構成され、前記ＣＰＵが該特定命令を実行するために必要な特定補足データと、を前記割込み処理で実行される命令に対応するように記憶し、前記特定命令の実行により前記ＣＰＵが読み込み可能な特定の記憶領域に全ての前記制御プログラムデータを記憶し、全ての制御プログラムデータが記憶された前記特定の記憶領域とは異なる記憶領域に、前記参照データを記憶していてもよい。
【０５０１】
このような構成とすれば、ＣＰＵが特定命令を実行する際に、誤って参照データを読み込んでしまい、当該参照データに基づいて意図しない遊技制御処理を行ってしまうような事態を未然に防止することができ、遊技制御の安定化を図ることができる。また、特定命令は、特定の記憶領域に記憶された全ての制御プログラムデータを読み込み可能に構成されているため、制御プログラムデータにおける呼出元と呼出先の配置（記憶場所）が制限されることがなく、制御プログラムの設計に自由度を持たせることができる。また、遊技台の分野においては、複数種類の遊技台において制御プログラムデータ（例えば、使用頻度の高いサブルーチン）を共用する一方で、各遊技台の仕様や性能に応じて参照データ（例えば、抽選値や演出データ）を異ならせることが一般的であるため、遊技台に特に好適である。
【０５０２】
また、前記ＲＯＭは、少なくとも前記第１の識別情報、前記第２の識別情報の順序に定義することにより前記特定のアドレスを識別可能にする前記特定識別情報（例えば、ｍｎ）のうち、前記第１の識別情報を示す前記第１のアドレスデータおよび前記別データで構成される前記特定命令データと、該特定識別情報のうち前記第２の識別情報を示す前記第２のアドレスデータで構成される前記特定補足データと、を前記割込み処理で実行される命令に対応するように記憶してもよい。
【０５０３】
このような構成とすれば、命令データは、呼び出すサブルーチンの先頭アドレスの一部を構成するデータを含んで構成されていることから、移動先のアドレスデータを間違ってしまった場合であっても、間違ってしまったデータが命令データに含まれていれば、制御プログラムの実行が停止されるため、コーディングミスを抑制することができる場合がある。
【０５０４】
また、前記ＲＯＭは、少なくとも前記第１のアドレスデータの一部である第１の構成データ（例えば、ＥＸＥＳＵＢ命令の命令データのビット７）、前記別データの少なくとも一部である第２の構成データ（例えば、ＥＸＥＳＵＢ命令の命令データのビット６〜３）、前記第１のアドレスデータから該第１の構成データを除いた第３の構成データ（例えば、ＥＸＥＳＵＢ命令の命令データのビット２〜０）の順序で構成された前記特定命令データをを前記割込み処理で実行される命令に対応するように記憶してもよい。
【０５０５】
このような構成とすれば、命令データをグループ化しつつも、きめ細かく命令データテーブルの空き領域に割り当てることが可能になる。よって、限られたハードウェア資源（例えば、１バイトで定義可能なパターン（２５６パターン））を有効利用することができ、命令データの圧縮によるＲＯＭ制御領域に対応するＲＯＭの記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。
【０５０６】
また、前記第３の構成データ（例えば、ＥＸＥＳＵＢ命令の命令データのビット２〜０）が前記第１の構成データ（例えば、ＥＸＥＳＵＢ命令の命令データのビット７）と比較してデータ容量が大きくなる、または、前記第１の構成データが前記第３の構成データと比較してデータ容量が大きくなる（例えば、３ビットに対して１ビット）ように構成された前記特定命令データを前記割込み処理で実行される命令に対応するように記憶してもよい。
【０５０７】
このような構成とすれば、命令データをグループ化しつつも、きめ細かく命令データテーブルの空き領域に割り当てることが可能になる。よって、限られたハードウェア資源（例えば、１バイトで定義可能なパターン（２５６パターン））を有効利用することができ、命令データの圧縮によるＲＯＭ制御領域に対応するＲＯＭの記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。
【０５０８】
また、前記ＲＯＭは、前記特定命令の実行により前記ＣＰＵが読み込み可能なデータが記憶されている特定の記憶領域（例えば、００００Ｈ〜０ＦＦＦＨや００００Ｈ〜１１ＦＦＨ）に全ての前記制御プログラムデータを記憶するとともに、該特定の記憶領域から前記制御プログラムデータが記憶された制御記憶領域（例えば、ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域）を除いた記憶領域（例えば、非使用領域に対応するＲＯＭ３０６の記憶領域）の全てに前記遊技制御処理の実行に使用されない非使用データ（例えば、００Ｈ）を記憶するようにしてもよい。
【０５０９】
このような構成とすれば、ＣＰＵ３０４が非使用データおよび制御プログラムデータを除くデータ（例えば、参照データや管理データ）を直接命令データとして読み込まれることがないため、補足データのコーディングミスによるＣＰＵ３０４の誤作動を防止できる場合がある。
【０５１０】
また、前記ＲＯＭは、複数のアドレスそれぞれで示される記憶領域に特定のデータ長（例えば、１バイト（８ビット））で表される複数種類のデータを記憶するものであり、前記ＣＰＵは、前記ＲＯＭの記憶された一のアドレスに示される記憶領域に記憶されたデータを一処理毎に読み込むことで前記割込み処理を含む複数種類の遊技制御処理を実行するものであり、前記ＲＯＭは、さらに、前記特定のデータ長の２以上の整数倍である第１のデータ長（例えば、２バイト（１６ビット））で表現される前記特定のアドレスを識別可能な前記特定識別情報の一部である前記第１の識別情報を示す前記第１のアドレスデータおよび前記別データで構成される前記特定命令データと、該第１のデータ長よりも前記特定のデータ長の整数倍のデータ長だけ短い第２のデータ長（例えば、１バイト（８ビット））で表現される前記第２のアドレスデータで構成される前記特定補足データと、を前記割込み処理で実行される命令に対応するように記憶してもよい。
【０５１１】
このような構成とすれば、命令データをグループ化しつつも、きめ細かく命令データテーブルの空き領域に割り当てることが可能になる。よって、限られたハードウェア資源（例えば、１バイトで定義可能なパターン（２５６パターン））を有効利用することができ、命令データの圧縮によるＲＯＭ制御領域に対応するＲＯＭの記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。
【０５１２】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１０）は、複数の制御プログラムデータで構成される制御プログラムを記憶しているＲＯＭ（例えば、ＲＯＭ３０６）と、前記制御プログラムに基づいて遊技制御を実行するＣＰＵ（例えば、ＣＰＵ３０４）と、を備え、前記ＲＯＭは、前記複数の制御プログラムデータのうち、第１のデータ（例えば、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データにおける、ビット６およびビット７）、第２のデータ（例えば、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データにおける、ビット５（α））、第３のデータ（例えば、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データにおける、ビット３およびビット４）、第４のデータ（例えば、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データにおける、ビット０（δ）、ビット１（γ）、ビット２（β））、第５のデータ（例えば、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データにおける、補足データ（ｎ））を含んで構成された特定の制御プログラムデータ（ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データを、少なくとも、該第２のデータ、該第３のデータ、該第４のデータ、順番に並べて（例えば、アドレスの若い順番）記憶するものであり、前記ＣＰＵは、前記特定の制御プログラムデータを読み込んだ場合に、前記第１および第３のデータを用いて特定される第１の命令（例えば、サブルーチンの先頭のアドレスを呼び出す命令）と、前記第２のデータ、前記第４のデータおよび前記第５のデータを用いて特定される第２の命令（例えば、呼び出すサブルーチンの先頭アドレスを特定する命令）と、で特定される特定命令（例えば、ＥＸＥＳＵＢ命令）を所定周期で実行される割込処理（例えば、タイマ割込み処理）中に実行することを特徴とする遊技台とも言える。
【０５１３】
なお、前記ＲＯＭは、前記第１のデータと前記第２のデータの間、前記第２のデータと前記第３のデータの間および前記第３のデータと前記第４のデータの間のうち少なくともいずれか１つのデータ間に別のデータを含んで構成される前記特定の制御プログラムデータを記憶するものであってもよいが、前記ＲＯＭは、前記第１のデータ、前記第２のデータ、前記第３のデータおよび前記第４のデータでのみで構成される前記特定の制御プログラムデータを記憶するものであると、よりアセンブル後の機械語のチェックが簡便になり、コーディングミスを抑制することができる。
【０５１４】
また、前記第１のデータ、前記第２のデータ、第３のデータおよび前記第４のデータを合わせたデータ長と、前記第４のデータのデータ長を同一のデータ長（例えば、１バイト（８ビット）長）としてもよい。さらに、前記ＣＰＵが一度に読み込むデータのデータ長と前記第４のデータのデータ長を同一のデータ長としても良い。
【０５１５】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、プログラムデータおよび一時的なデータを記憶する記憶手段（例えば、ＲＯＭ３０６、ＲＡＭ３０８（またはＲＯＭ１３０６、ＲＡＭ１３０８））と、前記記憶手段に記憶されているデータを用いて遊技の進行を中心とした遊技制御を行う主制御部（例えば、主制御部３００（または、主制御部１３００））と、前記主制御部の遊技制御に基づいて遊技の演出制御を行う副制御部（例えば、第１副制御部４００、第２副制御部５００（または、第１副制御部１４００、第２副制御部１５００））と、を備えた遊技台であって、前記主制御部は、第一のビット長（例えば、８ビット長）からなる複数のレジスタ（例えば、Ａレジスタ、Ｆレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタ、Ｈレジスタ、Ｌレジスタ、Ｔレジスタ）を有し、前記第一のビット長の倍のビット長である第二のビット長（例えば、１６ビット長）の演算が可能なレジスタの組み合わせである前記複数のレジスタ（例えば、ＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタ）のうちの第一のレジスタと第二のレジスタ（例えば、ＨレジスタとＬレジスタ）に格納された値によって示される前記記憶手段における第一のアドレス（例えば、１７５０Ｈ）、および該第一のアドレスと連続する第二のアドレス（例えば、１７５１Ｈ）に格納された第一の値（例えば、ＡＥＨ）と第二の値（例えば、１９）を、前記複数のレジスタのうちの第三のレジスタ（例えば、Ｃレジスタ）と第四のレジスタ（例えば、Ａレジスタ）にそれぞれ転送する所定の命令（例えば、「ＩＮＣＴＥＮＳＯＵ  ＡＣ，（ＨＬ）」命令）を備え、該所定の命令を前記遊技制御（例えば、特別図柄変動時間抽選処理）において実行し、前記第三のレジスタと前記第四のレジスタは、前記第二のビット長の演算が可能なレジスタの組み合わせ（ＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタ）とは異なることを特徴とする遊技台である。なお、「第一のアドレスと連続する第二のアドレス」は第一のアドレスよりも大きなアドレスに限定されず、第一のアドレスよりも小さなアドレスでもよく、先の例では、第一アドレスが１７５０Ｈ、第二アドレスが１７４ＦＨでもよい。
【０５１６】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、１回の命令によって、連続して配置されたアドレスに格納された２つのデータを、レジスタペアを構成しない２種類のレジスタに格納することができるため、プログラム容量を削減することができ、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることが可能となる。また、処理時間を短縮でき、安定した遊技制御を行うことができる場合がある。また、プログラム容量を削減することでプログラムが見やすくなり、コーディングミスやバグの発生を抑制できる場合がある。また、第三のレジスタと第四のレジスタとはレジスタペアではないため、１６ビット演算処理を行う場合にプログラムを注意して作成することができ、コーディングミスやバグの発生を抑制できる場合がある。
【０５１７】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、少なくとも第一から第四のレジスタを備え、上位レジスタおよび下位レジスタからなるレジスタペアを用いた処理を実行可能であるＣＰＵと、遊技制御プログラムを記憶するＲＯＭと、を内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記ＣＰＵは、第一の命令と第二の命令を含む複数の命令を実行可能であり、少なくとも前記第一のレジスタと前記第二のレジスタの二つのレジスタの組み合わせは、前記レジスタペアのうちの所定のレジスタペアであり、前記第三のレジスタと前記第四のレジスタの少なくともいずれかは、前記上位レジスタであり、前記第一の命令が実行されたことに基づいて、前記所定のレジスタペアに格納された値によって示される第一のアドレスが示す領域に格納された第一の値が前記第四のレジスタにセットされ、該第一のアドレスと連続する第二のアドレスが示す領域に格納された第二の値が前記第三のレジスタにセットされ、該所定のレジスタペアの値が該第二のアドレスと連続するアドレスを示す値になり、前記第二の命令が実行されたことに基づいて、前記所定のレジスタペアに格納された値によって示される第一のアドレスと連続する第二のアドレスが示す領域に格納された第二の値が前記第四のレジスタにセットされ、該第二のアドレスと連続する第三のアドレスが示す領域に格納された第三の値が前記第三のレジスタにセットされ、該所定のレジスタペアの値が該第三のアドレスを示す値になり、前記ＣＰＵは、前記レジスタペアとは異なる前記第三のレジスタと前記第四のレジスタの二つのレジスタの組み合わせに前記ＲＯＭに格納された値を一命令でセットすることが可能であるとともに、前記所定のレジスタペアの値を変化させる所定の機能としては、前記第一の命令を受けたことに基づいて値をセットする第一の機能と前記第二の命令を受けたことに基づいて値をセットする第二の機能の二つのみを有することを特徴とする遊技台である。
【０５１８】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、レジスタペアよりも汎用性の低い第三のレジスタと第四のレジスタの二つの組み合わせに値を一命令でセットする機能を限定したため、遊技者の利益に係る値を不正に改ざんする不正行為を不正者が行い難くすることができる。また、第一の命令と第二の命令を前後の処理に応じて使い分けることができ、遊技制御プログラムの容量を削減することができる。また、第一の命令と第二の命令とを従来の命令で構成した場合と比較して遊技制御プログラムの容量を削減でき、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることができる。また、第三のレジスタと第四のレジスタはレジスタペアよりも汎用性が低いため、プログラムを注意して作成することができ、コーディングミスやバグの発生を抑制できる。また、命令の実行中に割込み処理が発生し、割込み処理によって命令実行途中のレジスタの値が意図しない値に書き換えられてしまったり、命令の実行が妨げられて処理が遅延してしまうといったことがなく、安定した遊技制御を行うことができる場合がある。
【０５１９】
また、少なくとも第一から第四のレジスタを備え、上位レジスタおよび下位レジスタからなるレジスタペアを用いた処理を実行可能であるＣＰＵと、遊技制御プログラムを記憶するＲＯＭと、を内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記ＣＰＵは、第一の命令と第二の命令を含む複数の命令を実行可能であり、少なくとも前記第一のレジスタと前記第二のレジスタの二つのレジスタの組み合わせは、前記レジスタペアのうちの所定のレジスタペアであり、前記第三のレジスタと前記第四のレジスタの少なくともいずれかは、前記上位レジスタであり、前記第一の命令が実行されたことに基づいて、前記所定のレジスタペアに格納された値によって示される第一のアドレスが示す領域に格納された第一の値が前記第四のレジスタにセットされ、該第一のアドレスと連続する第二のアドレスが示す領域に格納された第二の値が前記第三のレジスタにセットされ、該所定のレジスタペアの値が該第二のアドレスと連続するアドレスを示す値になり、前記第二の命令が実行されたことに基づいて、前記所定のレジスタペアに格納された値によって示される第一のアドレスと連続する第二のアドレスが示す領域に格納された第二の値が前記第四のレジスタにセットされ、該第二のアドレスと連続する第三のアドレスが示す領域に格納された第三の値が前記第三のレジスタにセットされ、該所定のレジスタペアの値が該第三のアドレスを示す値になり、前記ＣＰＵは、前記レジスタペアとは異なる前記第三のレジスタと前記第四のレジスタの二つのレジスタの組み合わせに前記ＲＯＭに格納された値を一命令でセットすることが可能であるとともに、前記所定のレジスタペアの値を変化させる所定の機能としては、前記第一の命令を受けたことに基づいて値をセットする第一の機能と前記第二の命令を受けたことに基づいて値をセットする第二の機能の二つを少なくとも有し、前記ＣＰＵは、少なくとも特定レジスタを備え、前記ＣＰＵは、前記特定レジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われるものとしては、直値により値をセットする機能のみを有していてもよい。
【０５２０】
このような構成とすれば、レジスタペアよりも汎用性の低い第三のレジスタと第四のレジスタの二つの組み合わせに値を一命令でセットする機能を限定したため、遊技者の利益に係る値を不正に改ざんする不正行為を不正者が行い難くすることができる。また、第一の命令と第二の命令を前後の処理に応じて使い分けることができ、遊技制御プログラムの容量を削減することができる。また、第一の命令と第二の命令とを従来の命令で構成した場合と比較して遊技制御プログラムの容量を削減でき、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることができる。また、第三のレジスタと第四のレジスタはレジスタペアよりも汎用性が低いため、プログラムを注意して作成することができ、コーディングミスやバグの発生を抑制できる。また、命令の実行中に割込み処理が発生し、割込み処理によって命令実行途中のレジスタの値が意図しない値に書き換えられてしまったり、命令の実行が妨げられて処理が遅延してしまうといったことがなく、安定した遊技制御を行うことができる。
【０５２１】
また、前記第三のレジスタと前記第四のレジスタの少なくとも何れかは、前記第二のビット長の演算が可能なレジスタの組み合わせを構成してもよい（例えば、Ｂレジスタは、１６ビット長の演算が可能なレジスタペアであるＢＣレジスタを構成する）。
【０５２２】
このような構成とすれば、１６ビット演算を行うレジスタペアの一方のレジスタの値を固定にすることができ、所定の命令前に設定した一方のレジスタの値を退避することなく所定の命令後の処理で使用することができプログラム容量を削減することができる場合がある。また、１６ビット演算処理を行う場合にプログラムを注意して作成することができ、コーディングミスやバグの発生を抑えることができる場合がある。
【０５２３】
また、前記第三のレジスタと前記第四のレジスタの少なくとも何れかは、前記第二のビット長の演算が可能なレジスタの組み合わせの上位レジスタであってもよい（例えば、Ｂレジスタは、１６ビット長の演算が可能なレジスタペアであるＢＣレジスタの上位レジスタである）。
【０５２４】
このような構成とすれば、１６ビット演算を行うレジスタペアの上位８ビットの値を変更することができ、レジスタペアで示されるアドレスの上位を変更して所定の命令後の処理で使用することができる場合がある。例えば、第三のレジスタと第四のレジスタの各々を違う処理に利用（例えば、一方をＩＮＣＴＥＮＳＯＵ命令で利用し、他方をループ処理の回数をカウントするためのカウンタとして利用）することができ、数の限られたレジスタを有効に活用することができる。また、１６ビット演算処理を行う場合にプログラムを注意して作成することができ、コーディングミスやバグの発生を抑えることができる場合がある。
【０５２５】
また、前記所定の命令は、前記第一のレジスタと前記第二のレジスタのうちの下位レジスタの値に所定値加算する処理（例えば、ＨＬレジスタに２を加算する処理）を含んでいてもよい。
【０５２６】
このような構成とすれば、所定の命令終了後に所定のアドレスから所定値加算されたアドレスの値をレジスタに設定した状態で次の処理を行うことができ、例えば、アドレスを１加算する命令を所定値回実行するようなプログラムに比べ、プログラム容量を削減できる場合がある。
【０５２７】
また、前記第一のアドレスは、前記所定の命令を実行する前の前記第一のレジスタと前記第二のレジスタに格納された値によって示されるアドレス（例えば、１７４ＦＨ）の次のアドレス（例えば、１７５０Ｈ）であってもよい。
【０５２８】
このような構成とすれば、繰り返し処理の際に最初にアドレスを指定することができ、繰り返し処理を抜けた際には所定の命令前のアドレスから所定値加算されたアドレスの値をレジスタに設定した状態で次の処理を行うことができる。特に、２種類のデータを交互に記憶したデータテーブルを利用する場合には、データテーブルから所望のデータを素早く読みだすことが可能となる。
【０５２９】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、プログラムデータおよび一時的なデータを記憶する記憶手段（例えば、ＲＯＭ３０６、ＲＡＭ３０８（またはＲＯＭ１３０６、ＲＡＭ１３０８））と、前記記憶手段に記憶されているデータを用いて遊技の進行を中心とした遊技制御を行う主制御部（例えば、主制御部３００（または、主制御部１３００））と、前記主制御部の遊技制御に基づいて遊技の演出制御を行う副制御部（例えば、第１副制御部４００、第２副制御部５００（または、第１副制御部１４００、第２副制御部１５００））と、を備えた遊技台であって、前記主制御部は、第一のビット長（例えば、８ビット長）の値を記憶可能な第一のレジスタ（例えば、Ｃレジスタ）および前記第一のビット長の整数倍の第二のビット長（例えば、１６ビット長）の値を記憶可能な第二のレジスタ（例えば、ＨＬレジスタ）を含む複数のレジスタ（例えば、ＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタ）を有し、前記第二のレジスタの値に前記第一のレジスタの値を加算して前記第二のレジスタに格納する所定の命令（例えば、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｃ」命令）を備え、該所定の命令を前記遊技制御（例えば、特別図柄変動時間抽選処理）において実行することを特徴とする遊技台である。なお、第二のレジスタは、第一のビット長の整数倍の第二のビット長の値を記憶可能であればよく、例えば、第一のレジスタのビット長が４ビットである場合には４の倍数（４、８、１２、…）をビット長とするレジスタでもよく、第一のレジスタのビット長が１６ビットである場合には１６の倍数（１６、３２、６４、…）をビット長とするレジスタでもよい。
【０５３０】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、桁上がり処理を別途行う必要がないため、プログラム容量を削減することができ、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることが可能となる。また、処理時間を短縮でき、安定した遊技制御を行うことができる場合がある。また、プログラム容量を削減することでプログラムが見やすくなり、コーディングミスやバグの発生を抑制できる場合がある。さらに、ビット長が異なるレジスタ同士の加算演算を行うことができるため、例えば、従来は１６ビット長のレジスタペアを２つ使用して行っていた加算演算を、１６ビット長のレジスタペアと８ビット長のレジスタで行うことができる場合があり、数の限られたレジスタを有効に活用することができる。
【０５３１】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、８ビット長の値を記憶可能な第一から第三のレジスタを少なくとも備えるＣＰＵを備え、前記ＣＰＵは、１６ビット長の値を記憶可能な第四のレジスタを少なくとも備え、前記ＣＰＵは、前記第一のレジスタおよび前記第二のレジスタからなるレジスタペアを用いた処理を実行可能であり、前記ＣＰＵを内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記ＣＰＵは、前記第四のレジスタの値に前記第三のレジスタの値を加算して該第四のレジスタに加算結果をセットすることが可能な第一の命令を実行可能であり、前記第一の命令は、前記レジスタペアの値に前記第三のレジスタの値を加算して該レジスタペアに加算結果をセットすることが可能であり、前記ＣＰＵは、前記レジスタペアの値から前記第三のレジスタの値を減算して該レジスタペアに減算結果をセットする第二の命令を実行可能であり、前記ＣＰＵにおける前記１６ビット長の前記レジスタペアに対して前記８ビット長の値を加減算する機能は、前記第一の命令および前記第二の命令の両方によって実現されるが、前記ＣＰＵにおける前記１６ビット長の前記第四のレジスタに対して前記８ビット長の値を加減算する機能は、前記第一の命令によってのみ実現されることを特徴とする遊技台である。
【０５３２】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、ビット長が異なるレジスタの値同士の加減算を行うことができるため、例えば、従来は１６ビット長のレジスタペアを２つ使用して行っていた加減算を、１６ビット長のレジスタペアと８ビット長のレジスタで行うことができる場合があり、数の限られたレジスタを有効に活用することができる。しかも、レジスタの値同士で加減算を行うため、ＲＡＭなどを用いた場合に比べて加減算の処理時間を短縮でき、安定した遊技制御を行うことができる。また、第四のレジスタを用いた加減算を第一の命令のみで実行可能に構成することにより、遊技者の利益に係る値を不正に改ざんする不正行為（例えば、レジスタペアに対して有利な数値を加算するような命令を不正に埋め込むような行為）を不正者が行い難くすることができる。また、第一の命令と第二の命令とを従来の命令で構成した場合と比較して遊技制御プログラムの容量を削減できるため、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることができる場合がある。
【０５３３】
また、少なくとも第一から第四のレジスタを備え、上位レジスタおよび下位レジスタからなるレジスタペアを用いた処理を実行可能であるＣＰＵと、遊技制御プログラムを記憶するＲＯＭと、を内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記ＣＰＵは、第一の命令と第二の命令を含む複数の命令を実行可能であり、少なくとも前記第一のレジスタと前記第二のレジスタの二つのレジスタの組み合わせは、前記レジスタペアのうちの所定のレジスタペアであり、前記第三のレジスタと前記第四のレジスタの少なくともいずれかは、前記上位レジスタであり、前記第一の命令が実行されたことに基づいて、前記所定のレジスタペアに格納された値によって示される第一のアドレスが示す領域に格納された第一の値が前記第四のレジスタにセットされ、該第一のアドレスと連続する第二のアドレスが示す領域に格納された第二の値が前記第三のレジスタにセットされ、該所定のレジスタペアの値が該第二のアドレスと連続するアドレスを示す値になり、前記第二の命令が実行されたことに基づいて、前記所定のレジスタペアに格納された値によって示される第一のアドレスと連続する第二のアドレスが示す領域に格納された第二の値が前記第四のレジスタにセットされ、該第二のアドレスと連続する第三のアドレスが示す領域に格納された第三の値が前記第三のレジスタにセットされ、該所定のレジスタペアの値が該第三のアドレスを示す値になり、前記ＣＰＵは、前記レジスタペアとは異なる前記第三のレジスタと前記第四のレジスタの二つのレジスタの組み合わせに前記ＲＯＭに格納された値を一命令でセットすることが可能であるとともに、前記所定のレジスタペアの値を変化させる所定の機能としては、前記第一の命令を受けたことに基づいて値をセットする第一の機能と前記第二の命令を受けたことに基づいて値をセットする第二の機能の二つを少なくとも有し、前記ＣＰＵは、少なくとも特定レジスタを備え、前記ＣＰＵは、前記特定レジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われるものとしては、直値により値をセットする機能のみを有していてもよい。
【０５３４】
このような構成とすれば、レジスタペアよりも汎用性の低い第三のレジスタと第四のレジスタの二つの組み合わせに値を一命令でセットする機能を限定したため、遊技者の利益に係る値を不正に改ざんする不正行為を不正者が行い難くすることができる。また、第一の命令と第二の命令を前後の処理に応じて使い分けることができ、遊技制御プログラムの容量を削減することができる。また、第一の命令と第二の命令とを従来の命令で構成した場合と比較して遊技制御プログラムの容量を削減でき、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることができる。また、第三のレジスタと第四のレジスタはレジスタペアよりも汎用性が低いため、プログラムを注意して作成することができ、コーディングミスやバグの発生を抑制できる。また、命令の実行中に割込み処理が発生し、割込み処理によって命令実行途中のレジスタの値が意図しない値に書き換えられてしまったり、命令の実行が妨げられて処理が遅延してしまうといったことがなく、安定した遊技制御を行うことができる。
【０５３５】
また、前記第一のレジスタ（例えば、Ｃレジスタ）は、第二のビット長の演算が可能なレジスタ（例えば、ＢＣレジスタ）の組み合わせの下位レジスタであってもよい。
【０５３６】
このような構成とすれば、レジスタペアの上位８ビットの値を固定にすることができ、１６ビット演算処理を行う場合にプログラムを注意して作成することができ、コーディングミスやバグの発生を抑制できる場合がある。また、レジスタペアの上位レジスタと下位レジスタの各々を違う処理に利用（例えば、一方をＡＤＤＴＷＯＯＮＥ命令で利用し、他方をループ処理の回数をカウントするためのカウンタとして利用）することができ、数の限られたレジスタを有効に活用することができる。
【０５３７】
また、前記主制御部は、前記第二のレジスタ（例えば、ＨＬレジスタ）に格納された値によって示される所定のアドレスに基づく連続する２つのアドレスに格納された第一の値と第二の値を、前記複数のレジスタのうちの前記第一のレジスタ（例えば、Ｃレジスタ）と第三のレジスタ（例えば、Ｂレジスタ）にそれぞれ転送する所定の第二の命令（例えば、「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令）を備え、該所定の第二の命令を実行した後、前記所定の命令を行ってもよい。
【０５３８】
このような構成とすれば、連続する２つのアドレスに格納された値の何れかを第一レジスタに加算することで、所定のアドレスに関連したアドレスを示す値を第一レジスタに設定した状態で次の処理を行うことができ、プログラム容量を削減できる場合がある。
【０５３９】
また、前記主制御部は、前記所定の第二の命令を実行した後に所定の判定処理（例えば、上記ステップＳ１１１０〜Ｓ１１１１に示すような、Ｂレジスタ（第三のレジスタ）から特定の値（ＲＡＭの所定記憶領域に記憶された値など）を減算してキャリーが発生するか否かを判定する処理）を行い、該所定の判定処理の結果が所定の値のときに（例えば、キャリーが発生したときに）前記所定の命令を行ってもよい。
【０５４０】
このような構成とすれば、所定の判定処理の結果が所定の値のときに、所定のアドレスに関連したアドレスを示す値を第一レジスタに設定した状態で次の処理を行うことができ、プログラム容量を削減できる場合がある。
【０５４１】
また、前記主制御部は、前記所定の命令を行った後、再度前記所定の第二の命令と前記所定の判定処理を実行してもよい（例えば、上記ステップＳ１１０９でＩＮＣＴＥＮＳＯＵ命令を実行し、上記ステップＳ１１１２でＡＤＤＴＷＯＯＮＥ命令を実行した後に、上記ステップＳ１１１４でＩＮＣＴＥＮＳＯＵ命令を再度実行し、上記ステップＳ１１１６でＢレジスタから特定の値を減算してキャリーが発生するか否かを判定する）。
【０５４２】
このような構成とすれば、例えば、２段階抽選の２回目のテーブルアドレスを設定することができ、２段階抽選のプログラムを見やすく作ることができ、コーディングミスやバグの発生を抑制できる場合がある。
【０５４３】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、遊技制御を行うＣＰＵを有する主制御部（例えば、主制御部３００（または、主制御部１３００））と、前記主制御部の遊技制御に基づいて遊技の演出制御を行う副制御部（例えば、第１副制御部４００、第２副制御部５００（または、第１副制御部１４００、第２副制御部１５００））と、を備えた遊技台であって、前記ＣＰＵは、所定のフラグ（例えば、Ｚフラグ、ＳＺフラグ）を備え、前記主制御部は、第一の処理と第二の処理の間に実行される処理であって、前記第一の処理において第一の内容であった前記フラグの内容を、前記第二の処理の開始前に第二の内容に変化させる第三の処理を実行し、前記第二の処理は、前記第三の処理の実行結果が所定の結果である場合に行われる処理であって、前記第二の内容に変化した前記フラグを参照しない処理（例えば、ＣＰＲＴ命令、ＣＰＪＲ命令）であることを特徴とする遊技台である。
【０５４４】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、フラグの内容の変化とプログラムの実行の流れの関連性を無くすことができ、プログラムの解析を困難とし、不正なプログラムの改ざんを未然に防止できる場合がある。このため、安定した遊技制御をおこなうことができ、遊技の公平性を担保することができる場合がある。
【０５４５】
また、前記第三の処理は、前記第一の内容であった前記フラグを参照しない処理であってもよい。
【０５４６】
このような構成とすれば、フラグの内容の変化とプログラムの実行の流れの関連性を無くすことができ、プログラムの解析を困難とし、不正なプログラムの改ざんを未然に防止できる場合がある。このため、安定した遊技制御をおこなうことができ、遊技の公平性を担保することができる場合がある。
【０５４７】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、遊技制御を行うＣＰＵを有する主制御部（例えば、主制御部３００（または、主制御部１３００））と、前記主制御部の遊技制御に基づいて遊技の演出制御を行う副制御部（例えば、第１副制御部４００、第２副制御部５００（または、第１副制御部１４００、第２副制御部１５００））と、を備えた遊技台であって、前記ＣＰＵは、記憶手段（例えば、ＲＯＭ３０６、ＲＡＭ３０８、レジスタ、プログラムカウンタ）の所定領域へのアクセスが規制された命令（例えば、ＲＥＳ命令、ＲＳＴ命令）を備え、前記命令を前記遊技制御において実行することを特徴とする遊技台である。
【０５４８】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、所定領域のアクセスを禁止することができるため、所定領域を保護することができ、所定領域の内容が予期しない数値に変化して不具合を起こすような事態を未然に防止できる場合がある。
【０５４９】
また、前記命令は、前記所定領域を除いた領域のうち予め定められた特定領域へのアクセスが可能な命令であってもよい。
【０５５０】
このような構成とすれば、所定領域のアクセスを禁止しつつ、同時に特定領域の内容を読み書きすることができるため、所定領域の内容を保護することができるとともに、プログラム設計の自由度を低下させることがない。
【０５５１】
また、前記ＣＰＵは、前記所定領域へのアクセスが可能な命令をさらに備えてもよい。このような構成とすれば、所定領域のアクセスを禁止しつつ、同時に特定領域の内容を読み書きすることができるため、所定領域の内容を保護することができるとともに、プログラム設計の自由度を低下させることがない。
【０５５２】
また、前記命令を、前記記憶手段の所定領域にジャンプすることができないように構成すれば、不正プログラムを組み込んでユーザプログラムの先頭アドレスにジャンプさせる（ユーザプログラムを先頭アドレスから開始させて不正に初期状態とする）ような行為を未然に防止できる場合がある。
【０５５３】
なお、本発明に係る遊技台は、上述のパチンコ機１００やスロットマシン１１００に限定されない。したがって、例えば、上記実施形態では、リトルエンディアンのＣＰＵの例を示したが、ビッグエンディアンのＣＰＵに適用することもできる。また、８ビットＣＰＵに限定されず、１６ビットＣＰＵ、３２ビットＣＰＵ等にも適用できる。また、命令の名称は上記実施形態で示した名称に限定されるものではない。
【０５５４】
また、主制御部３００のＣＰＵ３０４（または、主制御部１３００のＣＰＵ１３０４）に適用した例を示したが、他の制御部のＣＰＵに適用してもよい。また、記憶手段は、ＲＯＭ、ＲＡＭに限定されず、他の記憶手段を適用してもよい。
【０５５５】
また、図７４（ａ）に示す、「紙幣投入口２００２に紙幣を投入し、ベット２００４およびスタート２００６操作に基づいて抽選を実行し、抽選結果を抽選結果表示装置２００８で表示し、当選時には特典コイン数を残クレジット数に加算し、キャッシュアウト２００９が選択された場合には、レシート発行機２０１０から残クレジット数に対応するコードが記載されたレシートを発行するカジノマシン２０００」に本発明を適用してもよい。また、アレンジボール遊技機や、じゃん球遊技機、スマートボール等に適当してもよい。
【０５５６】
また、同図（ｂ）に示すように、本発明の構成を含む制御部を備えている携帯電話機３０００、同図（ｃ）に示すように、本発明の構成を含む制御部を備えているポータブルゲーム機４０００、本発明の構成を含む制御部を備えている家庭用テレビゲーム機５０００、に本発明を適用してもよい。
【０５５７】
より具体的には、同図（ｂ）における携帯電話機３０００は、遊技者によって操作される操作部と、ゲームに関するデータを携帯電話回線を通して取得するデータ取得部と、取得したゲームに関するデータを記憶する記憶部と、記憶部に記憶したデータと操作部の操作とに基づいてゲームの制御を行う、本発明の構成を含む制御部と、を備えている。
【０５５８】
また、同図（ｃ）におけるポータブルゲーム機４０００は、遊技者によって操作される操作部と、ゲームに関するデータを所定の記憶媒体（ＤＶＤ等）から取得するデータ取得部と、取得したゲームに関するデータを記憶する記憶部と、記憶部に記憶したデータと操作部の操作とに基づいてゲームの制御を行う、本発明の構成を含む制御部と、を備えている。
【０５５９】
また、同図（ｃ）における家庭用テレビゲーム機５０００は、遊技者によって操作される操作部と、ゲームに関するデータを所定の記憶媒体（ＤＶＤ等）から取得するデータ取得部と、取得したゲームに関するデータを記憶する記憶部と、記憶部に記憶したデータと操作部の操作とに基づいてゲームの制御を行う、本発明の構成を含む制御部を備えている。
【０５６０】
さらには、同図（ｄ）に示すように、本発明の構成を含む制御部を備えるデータサーバ６０００に適用してもよい。このデータサーバ６０００からインターネット回線を介して同図（ｄ）に示す家庭用テレビゲーム機５０００に本発明の構成を含むプログラムコードをダウンロードするような場合がある。また、パチンコ機等の実機の動作を家庭用ゲーム機用として擬似的に実行するようなゲームプログラムにおいても、本発明を適用することができる。
【０５６１】
また、本発明に係る遊技台は、封入式遊技機に適用することもできる。また、主制御部、第１副制御部、および第２副制御部をワンチップで構成してもよいし、主制御部と第１副制御部で双方向の通信が可能に構成してもよい。また、主制御部と第１副制御部で双方向の通信を可能とする一方で、第１副制御部から第２副制御部への通信は一方向の通信としてもよい。
【０５６２】
＜実施形態３＞
次に、図面を用いて、本発明の実施形態３に係るパチンコ機について詳細に説明する。
【０５６３】
＜主制御部の基本回路の構成例＞
次に、図７５を用いて、主制御部３００の基本回路３０２の構成例について説明する。同図は、マイクロプロセッサ３０００を用いた場合の基本回路３０２の一構成例を示す図である。
【０５６４】
図７５に示すマイクロプロセッサ３０００には、本発明にいう電気的制御手段の一例に相当し、図４に示す基本回路３０２の機能と、図４に示す乱数生成回路３１８の機能を有するものである。なお、図７５では、図４に示す構成に対応する部分を、図４で用いた符号と同じ符号を付して説明する。
【０５６５】
図７５に示すマイクロプロセッサ３０００には、ＣＰＵ３０４、ＲＯＭ（内蔵ＲＯＭ）３０６、ＲＡＭ（内蔵ＲＡＭ）３０８、外部バス制御回路３１０１、パラレル入力ポート３１０２、アドレスデコード回路３１０３、タイマ回路３１１、カウンタ回路３１２、リセット制御回路３１４に加え、割込み制御回路３１００、クロック回路３２００、乱数生成回路３１８が備えられており、これら全てが内部バス３３００を介して互いに接続されている。内蔵ＲＯＭ３０６は、記憶部の一例に相当する。なお、外部バス制御回路３１０１、パラレル入力ポート３１０２、アドレスデコード回路３１０３の３つが、図４のＩ／Ｏ３１０に相当するものである。
【０５６６】
以下、上記説明した各部の詳細について説明する。まず、ＣＰＵ３０４、ＲＯＭ３０６、ＲＡＭ３０８については、図４にて説明した通りである。外部バス制御回路３１０１は、ＩＯリクエスト端子（ＸＩＯＲＱ端子）、メモリリクエスト端子（ＸＭＲＥＱ端子）、リード信号端子（ＸＲＤ端子）、ライト信号端子（ＸＷＲ端子）、１６ビット幅のアドレス出力端子（Ａ０端子〜Ａ１５端子）、および８ビット幅の入出力端子であるデータ入出力端子（Ｄ０端子〜Ｄ７端子）を有する。本実施形態では、このうちデータ入出力端子（Ｄ０端子〜Ｄ７端子）は、図４に示す各駆動回路３２４，３２６，３３０，３３４へのデータ出力と、各周辺制御回路からのデータ入力に用いられている。このデータ入出力端子（Ｄ０端子〜Ｄ７端子）によるデータの入出力先は、アドレス出力端子（Ａ０端子〜Ａ１５端子）から出力されるアドレス信号、およびアドレスデコード回路３１０３から出力されるチップセレクト信号を用いて切り替えられる。
【０５６７】
パラレル入力ポート３１０２は、４つの入力端子（Ｐ０端子〜Ｐ３端子）を有する。これらの入力端子（Ｐ０端子〜Ｐ３端子）は、図４に示すセンサ回路３２２に接続されており、センサ回路３２２からの信号の入力に用いられている。本実施形態では、第１特図始動口２３０への入球を検出する球検出センサからの信号がＰ０端子に入力され、第２特図始動口２３２への入球を検出する球検出センサからの信号がＰ１端子に入力され、普図始動口２２８への入球を検出する球検出センサからの信号がＰ２端子に入力される。また、センサ回路３２２からの信号は、乱数生成回路３１８が生成する乱数をＣＰＵ３０４に取得させるためのラッチ信号として、乱数生成回路３１８に出力する。この動作については後述する。
【０５６８】
アドレスデコード回路３１０３は、１４の出力端子（ＸＣＳ０端子〜ＸＣＳ１３端子）を有する。この出力端子（ＸＣＳ０端子〜ＸＣＳ１３端子）は、マイクロプロセッサ３０００の外部にある周辺制御回路に接続されており、外部バス制御回路３１０１のデータ入出力端子（Ｄ０端子〜Ｄ７端子）から出力されるデータの送信先を切り替えるためのチップセレクト信号等の出力に用いられている。
【０５６９】
タイマ回路３１１は、時間の計測に用いられる。なお、タイマ回路３１１は設定された計測時間を過ぎると、タイムアウト信号をカウンタ回路３１２に出力する。一方、カウンタ回路３１２は、各種信号の立ち上がり（あるいは立ち下がり）の回数の計測に用いられる。このカウンタ回路で計測される信号には、マイクロプロセッサ３０００のシステムクロックの他、上記タイマ回路からのタイムアウト信号、メモリの読み書き信号、メモリリクエスト信号、外部入出力の信号、割込みに対する応答信号等も計測することができる。
【０５７０】
リセット制御回路３１４は、システムリセット入力端子（ＸＳＲＳＴ端子）と、リセット出力端子（ＸＲＳＴＯ端子）の２つの端子を有する。このシステムリセット入力端子（ＸＳＲＳＴ端子）は電圧監視回路３３８に接続されている。このシステムリセット入力端子（ＸＳＲＳＴ端子）からシステムリセット信号（例えば一定時間Ｌレベルの信号）が入力されると、リセット制御回路３１４は、マイクロプロセッサ３０００の内部の回路に対してこのシステムリセット信号を出力するとともに、マイクロプロセッサ３０００の外部にある周辺制御回路に対してリセット出力端子（ＸＲＳＴＯ端子）からリセット信号（例えば、ＬレベルからＨレベルへの立ち上がり信号）が出力される。この場合、マイクロプロセッサ３０００では、システムリセットと称する処理が実行され、各回路が初期化される。このシステムリセットが実行される一例として、電源投入時が挙げられる。なお、このシステムリセットについては後述する。
【０５７１】
また、リセット制御回路３１４は、ウォッチドッグタイマ（ＷＤＴ）３１４１（復帰指示手段の一例に相当）、および指定エリア外走行禁止回路３１４２を備えている。ＷＤＴ３１４１がタイムアウトになった場合や、ＣＰＵ３０４が所定の範囲以外のアドレスを参照（指定エリア外走行）した場合には、リセット制御回路３１４は、マイクロプロセッサ３０００の内部の回路に対してシステムリセット信号およびユーザリセット信号のいずれかを出力する。なお、システムリセット信号およびユーザリセット信号のどちらを出力するかは、ＲＯＭ３０６内のプログラム管理エリア（詳細は後述）の設定に従う。また、マイクロプロセッサ３０００の外部にある周辺制御回路に対しては、リセット出力端子（ＸＲＳＴＯ端子）からリセット信号が出力される。
【０５７２】
マイクロプロセッサ３０００では、設定によって上記のシステムリセットか、あるいはユーザリセットと称する処理のいずれかを実行させることができる。なお、ユーザリセットでは、各回路が必要に応じて初期化される。このユーザリセットについては後述する。
【０５７３】
上記指定エリア外走行は、プログラムが想定外の動作をしていることを意味する。この場合、ＣＰＵ３０４が本来プログラムとして扱われるはずのないコードにより動作することになる。このような状況は、プログラムミスによる所謂暴走した状態の他に、何らかの不正によって生じている可能性がある。この場合、上記のシステムリセットの処理により、正常な動作に復帰させることができるようになっている。また、ＷＤＴ３１４１がタイムアウトになった場合としては、プログラムミスによる暴走した状態や、電圧降下によりＣＰＵ３０４が本来設計した動作を行うことができなくなった場合等がある。この場合にも、上記のシステムリセットの処理により、正常な動作に復帰させることができるようになっている。
【０５７４】
割込み制御回路３１００は、外部入力や内部状態の変化に応じて適宜処理を実行させるために割込みを発生させる。この割込み処理には、例えば外部からの入力（センサによる信号）を受け付けた場合に実行する処理がある。本実施形態では、乱数生成回路３１８が、乱数を取得するためのラッチ信号を受信した際にも、割込み処理を実行（割込みを発生）させることができるようになっている。なお、割込み制御回路３１００は、内部情報レジスタ３１０１を備えており、この内部情報レジスタ３１０１には、乱数生成回路３１８で乱数更新周期を決める外部クロック（カウントクロック）の周期の異常、および乱数の更新に関するの異常、さらに、直前に発生したリセット要因の情報等が格納される。なお、この内部情報レジスタ３１０１は、異常検出情報保持手段の一例に相当する。
【０５７５】
クロック回路３２００は、図４に示す水晶発振器３１６ｂ（以下、システム用水晶発振器３１６ｂと称する場合がある）から外部クロック入力端子（ＥＸ端子）を介して入力される外部クロック（この例では、２４ＭＨｚのクロック）を所定の分周比（この例では、１／２）で分周し、分周後のシステムクロック（この例では、１２ＭＨｚのクロック）をこのマイクロプロセッサ３０００内部の各回路に供給する。また、このシステムクロックをシステムクロック出力端子（ＣＬＫＯ端子）を介してマイクロプロセッサ３０００外部の周辺制御回路に出力する。
【０５７６】
乱数生成回路３１８は、乱数を更新するためのクロック信号（カウントクロック）を用いて、乱数のラッチ信号を受信したときにこの更新された乱数を乱数レジスタ内に保持するものである。本実施形態では、水晶発振器３１６ａから外部クロック入力端子（ＲＣＫ端子）を介して入力される外部クロック信号を所定の分周比（この例では、１／２）で分周してこのカウントクロックに用いているが、マイクロプロセッサ３０００内部のクロック信号を用いることもでき、この場合は水晶発振器３１６ａは不要となる。乱数レジスタに保持された値は、乱数として読み出して使用することができる。なお、乱数レジスタから乱数を読み出すと、乱数レジスタが次の乱数をラッチすることを許容する許容状態とすることができる。この乱数生成回路３１８の詳細は後述する。
【０５７７】
続いて、図９を用いて、リセットが実行された場合の処理の流れについて説明する。同図は、リセットの流れを示すフローチャートである。このフローチャートは、リセット制御回路３１４にシステムリセット信号が入力された場合、ＷＤＴ３１４１がタイムアウトになった場合、あるいは指定エリア外走行を検知した場合に、マイクロプロセッサ３０００の各回路で実行される処理である。
【０５７８】
最初のステップＳＨ０１では、実行されるリセット動作が、システムリセット動作か否か判定される。マイクロプロセッサ３０００で実行されるリセット動作には、システムリセット動作とユーザリセット動作の２つがある。ここで、システムリセット動作を実行する場合には、ステップＳＨ０３に進む。このシステムリセット動作は本発明にいう復帰処理の一例に相当する。また、システムリセット動作でないリセット動作、すなわちユーザリセット動作を実行する場合には、ステップＳＨ１１に進む。
【０５７９】
ステップＳＨ０３では、第１内部回路初期化処理が実行される。この第１内部回路初期化処理は、ＣＰＵ３０４のコアや内蔵レジスタ（タイマ回路３１１、カウンタ回路３１２、パラレル入力ポート３１０２、ＲＡＭ３０８アクセスプロテクトレジスタ、割込み制御回路３１００、乱数生成回路３１８を制御するレジスタ）の値を初期化する。この第１内部回路初期化処理が終了すると、ステップＳＨ０５に進む。
【０５８０】
ステップＳＨ０５では、セキュリティチェック処理が実行される。このセキュリティチェック処理では、ユーザプログラムを基に計算された値が、ＲＯＭ３０６のプログラム管理エリアに記憶されている認証コードを表す値と一致するか否かの判定を行う。すなわち、認証コードが正しいか否かの再計算を行う。ここにいうユーザプログラムが、本発明にいう記憶部（内蔵ＲＯＭ３０６）に記憶された内容の一例に相当し、内蔵ＲＯＭ３０６のプログラム管理エリアに記憶されている認証コードが、本発明にいう所定の認証情報の一例に相当する。認証コードが正しい場合にはステップＳＨ０７に進み、そうでない場合にはＣＰＵ３０４の動作を停止させる。本実施形態の遊技台では、このようにしてセキュリティチェックを行なうため、遊技台により安定した制御を行なわせることができる。
【０５８１】
ステップＳＨ０７では、固定延長処理が実行される。この固定延長処理では、予め設定した固定時間（例えば、ＲＯＭ３０６のプログラム管理エリア内のセキュリティ時間設定の０〜２ビットを用いて設定）だけセキュリティモードを延長する。例えば、ｎをプログラム管理エリアに設定された時間とし、システムクロックをＳＣＬＫとした場合に、３ｎ×２＾２４／ＳＣＬＫ秒だけ延長する。なお、この延長時間の経過時にＸＲＳＴＯ端子からリセット信号を出力させる。その後ステップＳＨ０９に進む。
【０５８２】
ステップＳＨ０９では、ランダム延長処理が実行される。このランダム延長処理では、予めランダムに選択されたランダム時間（例えば、管理エリア内のセキュリティ時間設定の３〜４ビットを用いて設定）だけセキュリティモードを延長する。例えばショートモードが設定されている場合には０〜Ｓμ秒、ミドルモードが設定されている場合には０〜Ｍμ秒、ロングモードが設定されている場合には、０〜Ｌμ秒それぞれ延長する（Ｓ＜Ｍ＜Ｌ）。この処理が終了するとユーザモードに移行し、ＣＰＵ３０４は、メモリマップの００００Ｈ番地から処理を開始する。本実施形態では、主制御部３００のメイン処理が開始されることになる。
【０５８３】
一方、ステップＳＨ０１で、ユーザリセット動作を実行する場合に進むステップＳＨ１１では、第２内部回路初期化処理が実行される。この第２内部回路初期化処理は、ＣＰＵ３０４のコアや、乱数生成回路３１８を制御するレジスタを除く内蔵レジスタ（タイマ回路３１１、カウンタ回路３１２、パラレル入力ポート３１０２、ＲＡＭ３０８アクセスプロテクトレジスタ、割込み制御回路３１００）の値を初期化する。すなわち、この第２内部回路初期化処理では、乱数生成回路３１８を制御するレジスタの値はリセット前の状態が維持される。この第２内部回路初期化処理が終了すると、ユーザモードに移行し、ＣＰＵ３０４は、メモリマップの００００Ｈ番地から処理を開始する。本実施形態では、主制御部３００のメイン処理が開始されることになる。
【０５８４】
＜乱数生成回路＞
次に、図７７を用いて、図７５に示すマイクロプロセッサ３０００の乱数生成回路３１８の詳細について説明する。同図は、図７５に示す乱数生成回路３１８の内部構成図である。
【０５８５】
乱数生成回路３１８は、それぞれ異なる乱数を生成する４つの乱数生成チャンネルＣＨ１〜ＣＨ４を備えている。なお、各チャンネル回路の内部構成は同一であるため、図７７では、１つの乱数生成チャンネルＣＨ１を示し、残りの乱数生成チャンネルＣＨ２〜ＣＨ４については、図示を簡略化している。以下の説明では、この乱数生成チャンネルＣＨ１を中心に乱数生成回路３１８について説明する。
【０５８６】
乱数生成回路３１８は、初期設定レジスタ３１８１と、周波数監視回路３１８２と、乱数更新回路３１８３と、乱数監視回路３１８４と、ノイズフィルタ３１８５と、ソフトラッチレジスタ３１８６と、ラッチ選択レジスタ３１８７と、乱数レジスタ３１８８と、乱数ラッチフラグレジスタ３１８９と、乱数割込み制御レジスタ３１８０を備えている。なお、周波数監視回路３１８２および乱数監視回路３１８４は、更新異常検出手段の一例に相当する。
【０５８７】
初期設定レジスタ３１８１には、ＲＣＫ端子からの外部クロック信号とシステムクロック（内部クロック信号）のうち、いずれのクロック信号を乱数更新回路３１８３で使用するかを決めるクロック選択情報が、プログラム管理エリア内の情報に基づいて設定される。ＲＣＫ端子からの外部クロック信号とシステムクロック（内部クロック信号）は乱数更新回路３１８３の手前に設けられたマルチプレクサに入力される。初期設定レジスタ３１８１が上記クロック選択情報に従って更新クロック選択信号をこのマルチプレクサに入力することにより、この更新クロック選択信号によって選択されたクロック信号が乱数更新回路３１８３に入力されるようになっている。なお、外部クロック信号が選択されている場合、所定の分周比（この例では、１／２）で分周されたクロック信号が乱数更新回路３１８３に入力される。なお、分周されたクロック信号が、内部クロックよりも低い周波数でない場合には使用することができない。なお、本実施形態では、外部クロック信号が選択されているものとして説明を続ける。
【０５８８】
周波数監視回路３１８２は、内部クロック信号および外部クロック信号の周期を監視し、この周期が一定でなくなった場合に、クロック信号に異常があることを示す情報を、内部情報レジスタ３１０１に出力する。
【０５８９】
乱数更新回路３１８３は、初期設定レジスタ３１８１によって選択されたクロック信号が入力され、このクロック信号の周期に従って乱数を更新する。更新した乱数の値は、乱数監視回路３１８４および乱数レジスタ３１８８にそれぞれ出力される。この乱数更新回路３１８３の詳細については、図７９〜図８２を用いて後述する。
【０５９０】
なお、乱数値の更新は、上述のユーザモードに移行した時に開始（自動開始）するようにしてもよいし、ユーザプログラムによって乱数レジスタ３１８８に乱数の最大値が設定されたときに開始（手動開始）するようにしてもよいし、自動開始したときは手動開始できないように（最大値が設定できないように）構成してもよい。また、乱数の最大値は、乱数生成チャンネルＣＨ１〜ＣＨ４で個別に設定可能としてもよい。また、自動開始の場合には乱数値の更新の停止を不可能に構成し、手動開始の場合には乱数値の更新の停止を手動で可能に構成してもよい。また、手動開始の場合に、開始を指示するレジスタと、更新の停止を指示するレジスタと、更新の再開を指示するレジスタを個別に設けてもよい。
【０５９１】
また、１６ビット乱数値および８ビット乱数値の一方を初期値が設定可能に構成し、他方を初期値が設定不可能に構成してもよいし、乱数が正常に更新されているか否かについて一方を監視可能とし、他方を監視不能としてもよい。また、後述する内部リセットの場合と外部リセットの場合で乱数値の初期値を異ならせてもよく（例えば、内部リセット時の初期値は３３Ｈ、外部リセット時の初期値はＣＣＨ)、この場合、ユーザプログラムの初期設定などにおいて、乱数値の初期値に基づいてリセットの種類を判別し、リセットの種類に合わせた処理を実行してもよい。
【０５９２】
乱数監視回路３１８４は、乱数更新回路３１８３からの入力に基づいて、乱数が正常に更新されているか否かを監視する。乱数の更新に異常がある場合、この乱数の更新に異常があることを示す情報を、内部情報レジスタ３１０１に出力する。
【０５９３】
なお、上記の説明では、乱数生成回路３１８の内部に周波数監視回路３１８２および乱数監視回路３１８４が設けられている構成であったが、乱数生成回路３１８の外部に設けてもよい。また、上記の説明では、乱数更新回路３１８３とは別に周波数監視回路３１８２および乱数監視回路３１８４が設けられている構成であったが、乱数更新回路３１８３の内部にこれらの回路を設けてもよい。
【０５９４】
ノイズフィルタ３１８５には、Ｐ０端子〜Ｐ３端子からの入力が、パラレル入力ポート３１０２を介してラッチ信号として入力される。なお、図７７では、Ｐ３端子、およびそのＰ３端子に接続された回路等は図示省略している。上述のごとく、Ｐ０端子には、第１特図始動口２３０への入球を検出する球検出センサからの信号が入力され、Ｐ１端子には、第２特図始動口２３２への入球を検出する球検出センサからの信号が入力され、Ｐ２端子には、普図始動口２２８への入球を検出する球検出センサからの信号が入力される。さらに、ノイズフィルタ３１８５には、初期設定レジスタ３１８１によって選択されたクロック信号が入力される。このクロック信号を利用して、Ｐ０端子〜Ｐ３端子からの入力に生じるノイズを除去した上で、ラッチ信号を検出する。このラッチ信号が検出されると、ハードラッチ信号が乱数レジスタ３１８８の手前に設けられたマルチプレクサに出力される。なお、このノイズ除去の詳細については、図７８を用いて後述する。
【０５９５】
ソフトラッチレジスタ３１８６には、乱数レジスタ３１８８から乱数をラッチすることを示す情報がＣＰＵ３０４からの指示によって適宜設定される。この情報が、ソフトラッチ信号として乱数レジスタ３１８８の手前に設けられたマルチプレクサに出力される。
【０５９６】
ラッチ選択レジスタ３１８７には、乱数レジスタ３１８８の手前に設けられたマルチプレクサからハードラッチ信号とソフトラッチ信号の何れを出力させるか、すなわち、乱数レジスタ３１８８にどちらのラッチ信号を入力するのかを示す情報が、ＣＰＵ３０４からの指示によって適宜設定される。この情報を設定することにより、ハードラッチ信号とソフトラッチ信号を適宜使用して、乱数を取得することができる。
【０５９７】
乱数レジスタ３１８８には、３つの信号が入力される。１つ目の信号は、乱数更新回路３１８３から出力された乱数を表す信号である。２つ目の信号は、手前に設けられたマルチプレクサから出力された乱数ラッチ信号（ハードラッチ信号とソフトラッチ信号のうち、ラッチ選択レジスタ３１８７で設定された信号）である。３つ目の信号は、乱数の読み取りを示すリード信号である。
【０５９８】
乱数レジスタ３１８８には、乱数更新回路３１８３によって更新された乱数を示す信号が常に入力されている。ここで、乱数ラッチ信号が入力されると、この入力タイミングにおける乱数が乱数レジスタ３１８８内にラッチ（保持）される。このとき、乱数レジスタ３１８８からは、乱数がラッチされていることを示すセット信号が、乱数ラッチフラグレジスタ３１８９に出力される。このときＣＰＵ３０４は、ラッチされている乱数を取得することができる。なお、ＣＰＵ３０４により乱数が取得されると、乱数レジスタ３１８８にリード信号が入力される。この信号により新たな乱数ラッチ信号が入力された場合に乱数をラッチすることを許容する許容状態となる。換言すれば、一度乱数をラッチすると、リード信号が入力されるまで新たに乱数をラッチすることができない非許容状態となる。なお、リード信号が入力されてもラッチされている乱数は保持し続けるため、ＣＰＵ３０４はラッチされている同一のタイミングでラッチされた乱数を何度でも取得することができる。このように構成することで乱数ラッチ信号を出力するセンサ回路におけるチャタリングの影響を押さえることができる。なお、リード信号が入力されたことを示すクリア信号が乱数ラッチフラグレジスタ３１８９に出力される。また、図７７に示すように、乱数レジスタ３１８８が複数あることにより、同じ乱数更新回路から生成された乱数を様々なタイミングで取得することができる。
【０５９９】
乱数ラッチフラグレジスタ３１８９には、乱数レジスタ３１８８に乱数がラッチされているか否かを示す情報が記憶される。なお、乱数ラッチフラグレジスタ３１８９は、乱数レジスタ３１８８にラッチされた乱数（１６ビット乱数の全てまたは一部や、８ビット乱数の全てまたは一部）が読み出されたときに自動的にクリアされるように構成してもよいし、ＣＰＵによってクリアするように構成してもよい。
【０６００】
乱数乱数割込み制御レジスタ３１８０には、乱数レジスタ３１８８に乱数が保持された際に割込み制御回路に割込みを発生させるか否かを示す情報が設定される。この情報は乱数レジスタ３１８８毎に設定することができる。例えば、第１特図始動口２３０への入球により乱数発生チャンネルＣＨ１の乱数がラッチされた場合には、割込みを発生させ、第２特図始動口２３２への入球により乱数発生チャンネルＣＨ２の乱数がラッチされた場合には、割込みを発生させない、というような設定をすることができる。
【０６０１】
上記説明した乱数生成回路３１８を用いて、本実施形態では、普図始動口２８２、第１特図始動口２３０、第２特図始動口２３２のそれぞれに入球したタイミングで乱数を取得する。なお、任意のタイミングでＣＰＵ３０４に乱数を取得させるように、プログラムを実行させることもできる。さらに異なる乱数生成チャンネルを使用してそれぞれ独立の乱数を取得し、それぞれのチャンネル毎に乱数生成範囲の最大値を設定することができる。
【０６０２】
なお、本実施形態では、個別のチャンネルに対して乱数生成範囲を変更することができ、設定されていない場合には所定の最大値（例えば６５５３５）が適用される例について説明したが、これ以外に例えば、乱数生成範囲を変更する場合に全てのチャンネルに対して乱数生成範囲を設定することを必要とする構成であってもよい。
【０６０３】
なお、普図始動口２８２に入球したタイミングで取得された乱数は、後述する普図当選乱数として用いられる。また、第１特図始動口２３０に入球したタイミングで取得された乱数は、加工（例えば、乱数生成回路とは異なる回路(例えば、基本回路３０２やカウンタ回路３１２)でカウントアップ（ダウン）される値を乱数に加算（減算）する処理など)されて、後述する特図１当選乱数として用いられる。さらに、第２特図始動口２３２に入球したタイミングで取得された乱数は、加工されて、後述する特図２当選乱数として用いられる。
【０６０４】
なお、乱数の加工は、第１特図始動口２３０および第２特図始動口２３２に入球したタイミングで取得される乱数に限らず、他の契機（例えば、普図始動口２８２へに入球したタイミングなど）によって取得される乱数に対して行ってもよい。さらに、上述した乱数生成範囲の最大値を設定する場合においては、設定した最大値に応じた加工（例えば、この最大値を超えない値を乱数に加算する処理など）すれば良い。
【０６０５】
また、乱数の加工は必ずしも行う必要はないが、乱数の加工を行うことは乱数の狙いうちの防止に有効に働く。例えば加工した後の乱数が更新されたか否かをＣＰＵ３０４によって監視した場合、乱数生成回路３１８内での乱数の更新が正常に行われているか否かを正確に判断することができない。このように、乱数を加工する場合には、上述の乱数監視回路３１８４による乱数の更新の監視がより有効に働くこととなる。
【０６０６】
続いて、図７８を用いてノイズフィルタ３１８５の動作について説明する。同図は、図７７に示すノイズフィルタ３１８５による処理の一例を示す図である。
【０６０７】
上述したように、ノイズフィルタ３１８５には、Ｐ０端子〜Ｐ３端子からの入力が、パラレル入力ポート３１０２を介してラッチ信号として入力され、初期設定レジスタ３１８１によって選択されたクロック信号が入力される。このノイズフィルタ３１８５は、例えば図７８に示すように、クロック信号のダウンエッジ（ＨレベルからＬレベルへの立ち下り信号）が４回連続で入力されるまで、Ｐ０端子〜Ｐ３端子からの入力信号がＨレベルであれば、ハードウェアラッチ信号を出力するように構成されている。単純に信号の立ち上がりおよび立ち下がりだけを基にハードウェアラッチ信号を出力すると、ノイズが入った場合にもハードウェアラッチ信号が出力されてしまう。このため、上記のようにクロック信号を用いて、一定期間のセンサ信号を検出させることで、ノイズによりハードウェアラッチ信号が出力されてしまわないように構成されている。
【０６０８】
上記説明では、Ｐ０端子〜Ｐ３端子からの入力によりハードラッチ信号を出力させる例について説明したが、例えば、Ｐ０端子〜Ｐ３端子からの入力を一度ＣＰＵ３０４で受け付けた上で乱数を取得する方法もある。この場合には、ハードラッチ信号ではなく、ソフトラッチレジスタ３１８６から出力されたソフトラッチ信号により、乱数をラッチさせることになる。この場合、上記ノイズフィルタによる処理と同様の処理がＣＰＵ３０４により実行される。すなわち、Ｐ０端子〜Ｐ３端子からの入力が所定期間継続したか否かを判定し、これを満たす場合にＰ０端子〜Ｐ３端子からの入力が正しく行われたと判定する。その後、ソフトラッチ信号を出力するようにソフトラッチレジスタ３１８６を設定する。
【０６０９】
次に、図７９を用いて、図７７に示す乱数更新回路３１８３の詳細について説明する。同図は、図７７に示す乱数更新回路３１８３の詳細を示す図である。
【０６１０】
図７９（ａ）に示す乱数更新回路３１８３は、カウンタ回路３１８３ａと、スタート値選択回路３１８３ｂと、最大値設定レジスタ３１８３ｃを備えている。なお、図７７では、乱数更新回路３１８３に対して外部クロック信号および内部クロック信号のいずれかが乱数更新のための更新クロック信号として入力されることが示されているが、この図７９に示す乱数更新回路３１８３には、さらにＣＰＵ３０４から最大値データが入力される。
【０６１１】
カウンタ回路３１８３ａからは、乱数（乱数データ）が出力される。この乱数の初期値は、スタート値選択回路３１８３ｂに設定されている。この初期値には、固定値（例えば０）、プログラム管理エリア内に記憶されているマイクロプロセッサ３０００のＩＤナンバーを基にした値、および、乱数生成範囲内で抽選された値のいずれかが設定される。
【０６１２】
カウンタ回路３１８３ａには、更新クロック信号の１クロック毎に１が加算されるカウンタが設けられており、このカウンタの値に、スタート値選択回路３１８３ｂから入力された乱数の初期値を加えた値を乱数として出力する。
【０６１３】
カウンタ回路３１８３ａから出力される乱数の最大値は、最大値設定レジスタ３１８３ｃに設定されている。なお、乱数の最大値は、ＣＰＵ３０４からの命令に従って最大値設定レジスタ３１８３ｃに設定される。図７９（ｂ）には、この最大値が設定されている１６ビットのレジスタが示されている。ＣＰＵ３０４から最大値を設定する命令がない場合の初期値は、ＦＦＦＦＨ（６５５３５）である。なお、この最大値設定レジスタ３１８３ｃの変わりに、例えば、ＲＯＭ３０６のプログラム管理エリア内に最大値を設定する領域を設け、設定された最大値を参照する構成であってもよい。
【０６１４】
カウンタ回路３１８３ａは、出力する乱数が最大値を超えた場合、この最大値に１を加えた値を減算した上で、この値を乱数として出力する。例えば最大値が６５５３５の場合において、初期値とカウンタの値を足した値が、６５５３４、６５５３５、６５５３６、６５５３７の順に更新されるとすると、出力される乱数は、６５５３４、６５５３５、０（６５５３６−（６５５３５＋１））、１（６５５３７−（６５５３５＋１））のようになる。すなわち、最大値を超えると出力される乱数が０に戻ることになる。
【０６１５】
また、カウンタ回路３１８３ａの内部に設けられたカウンタの値が、最大値レジスタ３１８３ｃに設定された最大値になると、このカウンタの値が０にクリアされるとともに、カウンタ回路３１８３ａからスタート値選択回路３１８３ｂに乱数の出力が一巡したことを示す信号（一巡信号）が出力される。この一巡信号を受けたスタート値選択回路３１８３ｂでは、乱数の初期値が更新される。この際更新される初期値が、最大値設定レジスタ３１８３ｃに設定されている乱数の最大値を超えている場合、例えば、固定値を用いたり、一度現在の乱数の最大値を乗じてから設定可能な乱数生成範囲の最大値（６５５３５）で除算した値を用いることにより、乱数の最大値を超えない値（乱数生成範囲内の値）が初期値として再設定される。無論、最初からこの再設定方法などを用いて、乱数生成範囲内の値が初期値として設定されるようにしてもよい。
【０６１６】
なお、本実施形態では、最大値設定レジスタ３１８３ｃに設定された最大値は、カウンタ回路３１８３ａからの出力が一巡した時点で自動的に更新されるが、例えばＣＰＵ３０４からの更新命令が来た時点で更新されるようにしてもよい。
【０６１７】
ここで、上記の乱数生成の範囲を図８０および図８１を用いて説明する。図８０は、乱数生成範囲の最大値が設定されていない場合（デフォルトの状態）において出力される乱数の範囲を示す図である。また、図８１は、図８０とは異なる最大値が設定された場合に出力される乱数の範囲を示す図である。
【０６１８】
まず、図８０（ａ）ではｎ周期目（ｎ−１回目の一巡信号が出力された直後）の状況について説明する。図８０（ａ）には、０〜６５５３５の乱数生成範囲が示されている。また、出力される乱数の初期値がスタート値（Ｘ）として示されている。
【０６１９】
乱数更新回路３１８３からは、更新クロックの１クロック毎に乱数が更新されて出力される。より具体的には、最初にスタート値（Ｘ）が出力され、その後１クロック毎に、Ｘ＋１、Ｘ＋２の順で更新された乱数が出力される。この乱数の値が乱数生成範囲の最大値である６５５３５になると、上記説明した処理によって、次に出力される乱数は０に戻る。その後、１、２、の順で更新された乱数が出力され、Ｘ−１が出力された時点でこの乱数生成範囲を一巡したことになる。なお、このとき、乱数更新回路３１８３内のカウンタ回路３１８３ａのカウンタの値は最大値と同じ値になっている。スタート値選択回路３１８３ｂに乱数の出力が一巡したことを示す信号（一巡信号）が出力される。
【０６２０】
続いて１クロックが入力されると、乱数更新回路３１８３の出力はｎ＋１周期目（ｎ回目の一巡信号が出力された直後）に入る。このｎ＋１周期目の状況について、図８０（ｂ）を用いて説明する。まず、乱数更新回路３１８３内のカウンタ回路３１８３ａのカウンタの値は０にクリアされる。また、スタート値選択回路３１８３ｂでは、新たな初期値が設定される。図８０（ｂ）には、この新たな初期値がスタート値（Ｘ'）として示されている。この新たな初期値と、カウンタ回路３１８３ａのカウンタの値により、上記説明した流れと同様の流れで乱数が出力される。
【０６２１】
次に、図８１（ａ）では、図８０に示す乱数生成範囲の最大値よりも小さい最大値が設定された場合のｎ周期目（ｎ−１回目の一巡信号が出力された直後）の状況について説明する。図８１（ａ）には、０〜６５５３５のうち、設定された最大値によって図８０（ａ）に示す乱数生成範囲よりも狭くなった乱数生成範囲が示されている。なお、出力されない乱数の範囲が左下がりのハッチングで示されている。また、出力される乱数の初期値がスタート値（Ｙ）として示されている。
【０６２２】
図８０を用いて説明した状況と同様に、乱数更新回路３１８３からは、最初にスタート値（Ｙ）が出力され、その後１クロック毎に、Ｙ＋１、Ｙ＋２の順で更新された乱数が出力される。この乱数の値が設定された最大値になると、上記説明した処理によって、次に出力される乱数は０に戻る。すなわち、左下がりのハッチングで示された範囲の乱数は出力されない。その後、１、２、の順で更新された乱数が出力され、Ｙ−１が出力された時点でこの乱数生成範囲を一巡したことになる。なお、このとき、乱数更新回路３１８３内のカウンタ回路３１８３ａのカウンタの値は設定された最大値と同じ値になっている。スタート値選択回路３１８３ｂに乱数の出力が一巡したことを示す信号（一巡信号）が出力される。
【０６２３】
続いて１クロックが入力されると、乱数更新回路３１８３の出力はｎ＋１周期目（ｎ回目の一巡信号が出力された直後）に入る。このｎ＋１周期目の状況について、図８１（ｂ）を用いて説明する。図８０（ｂ）を用いて説明した場合と同様、乱数更新回路３１８３内のカウンタ回路３１８３ａのカウンタの値は０にクリアされる。また、スタート値選択回路３１８３ｂでは、新たな初期値が設定される。図８１（ｂ）には、この新たな初期値がスタート値（Ｙ'）として示されている。この新たな初期値と、カウンタ回路３１８３ａのカウンタの値により、上記説明した流れと同様の流れで乱数が出力される。
【０６２４】
なお、上記のように乱数生成チャンネルの最大値を適切に設定する以外に、例えば、ある乱数生成チャンネルでは乱数の最大値が６５５３５であるが、別の乱数生成チャンネルでは乱数の最大値が２５５である、というように、チャンネル毎に乱数生成範囲を予め異ならせておいてもよい。この場合には、必要とされる乱数生成範囲に応じてチャンネルを選択すればよい。この場合には、最大値設定レジスタの容量削減や、最大値設定の処理負担を軽減することができる。さらに、予め設定可能な最大値を複数設定した上で、これらの中から適切な最大値を選択して設定するようにしても、最大値設定レジスタの容量削減や、最大値設定の処理負担を軽減することができる。
【０６２５】
以上、乱数更新回路３１８３の乱数の出力について説明した。以下この乱数更新回路３１８３の変形例について図８２を用いて説明する。同図は、最大値と最小値を設定した乱数生成範囲において、乱数を取得することができる範囲を示す図である。
【０６２６】
図７９から図８１の例では、乱数生成範囲の最大値を変更する例について説明したが、例えば、最小値を設定できるものであってもよい。さらに、最大値だけでなく最小値を設定するレジスタを用意し、図８２（ａ）に示すように、最小値、最大値を設定し、乱数生成範囲を設定できるものであってもよい。加えて、図８２（ｂ）に示すように、複数の乱数生成範囲を設定できるものであってもよい。すなわち、出力される乱数の範囲を設定出来る構成であればよい。また、上記説明では、説明を分かり易くするため出力される乱数が１ずつ増加する例について説明したが、これ以外の乱数の更新方法であってもよい。
【０６２７】
以下、図８３を用いて本実施形態の遊技台で使用される乱数と、その主な導出源について説明する。同図は、本実施形態の遊技台で使用される乱数の導出源を表で示す図である。なお、この図で示される各乱数は、後述のフローチャートで用いられる。
【０６２８】
まず、特図１当選乱数、特図２当選乱数、および普図当選乱数は、上記乱数生成回路３１８の乱数生成チャンネルＣＨ１〜ＣＨ４によって生成される乱数が基になる。この値を必要に応じて適宜加工してこれらの乱数として使用する。
【０６２９】
大当り用特図乱数、小当り用特図乱数、およびハズレ用特図乱数は、後述する主制御部タイマ割込み処理において生成される。すなわちこれらの乱数は、所謂ソフトウェア乱数である。なお、これらの乱数を生成する際に用いられる初期値生成用乱数は、主制御部メイン処理および主制御部タイマ割込み処理で生成される。
【０６３０】
特図変動時間決定用乱数、および普図変動時間決定用乱数は、カウンタ回路３１２の値を乱数として用いる。本実施形態のカウント回路３１２は、マイクロプロセッサ３０００のシステムクロックの他、上記タイマ回路からのタイムアウト信号、メモリの読み書き信号、メモリリクエスト信号、外部入出力の信号等もカウンタの対象として用いることができる。このため、これらを組み合わせることで規則性のない値を導出させ、上記の乱数に使用している。演出用乱数は、主制御部メイン処理および主制御部タイマ割込み処理で生成される。
【０６３１】
次に、図８４を用いて、図７５に示す割込み制御回路３１００に設けられた内部情報レジスタ３１０１の詳細について説明する。上述したように、内部情報レジスタ３１０１には、乱数生成回路３１８で乱数更新周期を決める外部クロック（カウントクロック）の周期の異常、および生成された乱数値の異常、さらに、直前に発生したユーザリセットのリセット要因の情報等が格納される。この内部レジスタ３１０１には、第１内部情報レジスタと第２内部情報レジスタと、第３内部情報レジスタとが用意されている。
【０６３２】
図８４は、割込み制御回路３１００の内部レジスタ３１０１に用意された第１内部情報レジスタを説明するための図である。図８４（ａ）には、第１内部情報レジスタのうち、乱数生成回路３１８の異常を示す情報が記憶される範囲が示されている。この範囲は８ビットで構成されており、図８４（ｂ）には、これらの各ビットがどのような情報を示すものかが表で示されている。
【０６３３】
ＣＰＵ３０４は、後述するタイマ割込みが実行される度にこの第１内部情報レジスタの内容を確認する（図９５のステップＳ２３５ａ）。この内容は、異常が発生した場合に遊技の進行を止める等の処理を行うか否かの判定に用いられる。例えば、本実施形態では、乱数生成回路３１８で異常が検出されると、入賞受付処理が実行されないように構成されている（図９５のステップＳ２３５ｃおよび図９６参照）。この他、球の打ち出しを行わないようにしたり、払出しを行わないようにしたり、あるいは、変動タイマの減算を行わないようにしてもよい。特に、乱数更新に異常があった場合、乱数更新回路３１８３に大電流が流れている状態（ラッチアップ状態）である可能性があるため、一度電源をオフにすることを報知するようにしてもよい。
【０６３４】
ビット番号０は、乱数生成回路３１８の外部クロック（更新クロック）の異常を示すビットであり、０は異常なし、１は異常ありを示す。ビット番号１〜４は、乱数生成回路３１８で生成された乱数の異常を、各チャンネル毎に示すビットであり、０は異常なし、１は異常ありを示す。ビット番号５〜７は、不使用（０に固定）である。
【０６３５】
第１内部情報レジスタの値が１である場合、ＣＰＵ３０４から読み出されると０に設定（クリア）される。なお、内部情報レジスタはＣＰＵ３０４に一度に読み出されるため、第１内部情報レジスタが保持している値を０に設定（クリア）したい場合は、ＣＰＵ３０４に第１内部情報レジスタの値を読み出した後に読み出した値を破棄すれば良い。また、上述の通り、システムリセットおよびユーザリセットのいずれかの処理が実行された場合に、この内部情報レジスタは、ＣＰＵ３０４から読み出された場合と同様に各ビットは０に設定（クリア）されることとなる。
【０６３６】
以上、乱数生成回路３１８の異常がどのように記憶されているかについて説明したが、この例と同様に上記リセット要因を示す情報についても、第１内部情報レジスタに記憶されている。なお、上記説明では、乱数生成チャンネルの異常をビット番号１〜４によってそれぞれのチャンネル毎に表していたが、１つのビットによっていずれかのチャンネルで異常が起きたか否かを表すようにしてもよい（全てのチャンネルで共通にしてもよい）。なお、本実施形態では、内部情報レジスタ３１０１が割込み制御回路３１００内に設けられているが、他の回路に設けられているものであってもよい。なお、割込み制御回路３１００の内部レジスタ３１０１に用意された第２内部情報レジスタおよび第３内部情報レジスタについては後述する。
【０６３７】
次に、図７７に示す周波数監視回路３１８２における異常の検出例について、図８５を用いて説明する。同図は、周波数監視回路３１８２における異常の検出例を示す図である。図８５には、一番上からそれぞれ、正常時の動作、異常時の動作例１（異常時１）、異常時の動作例２（異常時２）が示されている。これらの例では、マイクロプロセッサ３０００の内部クロックと、乱数生成回路３１８に入力される外部クロック（ＲＣＫ）に加え、外部クロックの１周期に対する内部クロックの周期の比率が示されている。この検出動作では、外部クロックと内部クロックの周期の比率を監視し、この比率が変化した場合を異常として検出する。
【０６３８】
図８５（ａ）に示す正常時の例では、外部クロックの１周期の間に内部クロックが２．５周期ある状態が継続している。すなわち、外部クロックと内部クロックの周期の比率が変化しないため、異常を示す情報は出力されない。
【０６３９】
次に、図８５（ｂ）に示す異常時の動作例１（異常時１）では、外部クロックの１周期の間に内部クロックが４．５周期ある状態が示されている。図８５（ａ）に示す状態からこの図８５（ｂ）に示す状態になった場合には、この時点で異常を示す情報が出力される。
【０６４０】
次に、図８５（ｃ）に示す異常時の動作例２（異常時２）の最初には、外部クロックの１周期の間に内部クロックが０．５周期ある状態が示されている。仮に、図８５（ａ）に示す状態からこの図８５（ｃ）の最初の状態になった場合には、この時点で異常を示す情報が出力される。さらに、図８５（ｃ）には、外部クロックの１周期の間に内部クロックが０．５周期ある状態に続き、外部クロックの１周期の間に内部クロックが２．５周期ある状態が継続している。この周期の比率が変化した時点でも異常を示す情報が出力される。
【０６４１】
上記の例では、外部クロックと内部クロックのいずれか一方の周期が異常になると、異常を示す情報が出力されることになる。すなわち、内部クロックを乱数の更新クロックとして使用した場合でも、異常を検出することができる。なお、外部クロックと内部クロックの比率が同じであれば、双方の周波数が変更されても異常を示す情報が出力されない。この場合、例えばプログラム管理エリア内に外部クロック又は内部クロックの周波数を示す情報を記憶させておき、この情報を用いて外部クロック又は内部クロックの異常を検出させることも可能である。なお、更新クロックの異常を検出する方法は上述した方法に限らず、更新クロックの周期の異常を検出可能な方法であれば他の方法を採用しても良い。
【０６４２】
続いて、図７７に示す乱数監視回路３１８４における異常の検出例について、図８６を用いて説明する。同図は、乱数監視回路３１８４における異常の検出例を示す図である。この検出例では、１回の乱数の更新毎に更新前後の乱数を比較し、同じ乱数が生成されていないか否かをチェックする。仮に同じ乱数が生成されている場合には、異常を示す情報が出力される。図８６（ａ）の例では、更新前後で同じ乱数が生成されていないため、異常を示す情報は出力されない。これに対して、図８６（ｂ）の例では、更新の途中で同じ乱数が生成されており（乱数４が２回生成されている）、この時点（２回目の４が出力された時点）で異常を示す情報が出力される。なお、上記の例では、乱数が更新される度にチェックを行っているが、この乱数更新周期よりも長い所定の周期毎でチェックさせてもよい。
【０６４３】
上記説明したように乱数生成回路３１８では、周波数監視回路３１８２と乱数監視回路３１８４から異常を示す情報が内部情報レジスタ３１０１に対して出力される。また、内部情報レジスタ３１０１の値は、タイマ割込み毎にＣＰＵ３０４によって読み出される。
【０６４４】
このように周波数監視回路３１８２および乱数監視回路３１８４の双方を用いて乱数生成回路３１８の異常を監視することで、更新クロックの周波数に異常があるが、乱数の更新には異常がない異常状態（乱数監視回路３１８４のみでは検出できない異常状態）と、更新クロックの周波数に異常がないが、乱数の更新には異常がある異常状態の双方の異常状態を的確に把握することが可能になり、遊技制御の安定化を図ることができる。
【０６４５】
従来の遊技台では、遊技者に有利な抽選結果が導出されやすくなるように抽選に用いられる乱数に狙いを定めて不正が行われることがあり、遊技の公平性を担保することが困難になっている。しかし、本実施形態の遊技台によれば、上記の乱数生成３１８によって抽選に用いられる乱数の異常を把握したうえで対処することができるため、乱数の狙いうちを抑止して遊技の公平性を担保することができる。なお、周波数監視回路３１８２および乱数監視回路３１８４は内部情報レジスタ３１０１に記憶されている情報に関わらず継続してそれぞれ監視を行っている。
【０６４６】
ここで、内部情報レジスタ３１０１の値が、乱数生成回路３１８により生成される乱数が一巡する周期（乱数生成範囲内の全ての値を各１回出力するのに必要な期間、以下、乱数一巡周期と称する）だけ保持され、その後クリアされる構成であった場合の問題点について図８７を用いて説明する。同図は、乱数が一巡する周期とタイマ割込みの周期を比較した図である。図８７の一番上には、一番下に示すタイマ割込み周期ｔ４よりも長い乱数一巡周期ｔ１が示されている。また、図８７の上から二番目および三番目には、タイマ割込み周期ｔ４よりも短い乱数一巡周期ｔ２およびｔ３がそれぞれ示されている。
【０６４７】
上述したように内部情報レジスタ３１０１の内容はタイマ割込み毎に確認される。例えば乱数一巡周期が、図８７に示す乱数一巡周期ｔ１のようにタイマ割込み周期ｔ４よりも長い場合、内部レジスタ３１０１に保持された値がクリアされる前にこの値を読み取ることができる。しかし、本実施形態では、乱数生成範囲の最大値を設定することができるため、これに従って乱数一巡周期が短くなってしまう事態が生じ得る。例えば乱数一巡周期が、図８７に示す乱数一巡周期ｔ２およびｔ３のようにタイマ割込み周期ｔ４よりも短い場合、内部レジスタ３１０１に保持された値を読み取る前にこの値がクリアされる場合がある。すなわち、ＣＰＵ３０４が異常を示す情報を取得することが出来なくなる場合がある。
【０６４８】
本実施形態では、内部情報レジスタ３１０１の値が一旦セットされると、この値が読みとられるまでその値が保持される。すなわち、正常に戻ったか否かにかかわらずこの値が維持される。さらに、ＣＰＵ３０４がこの値を読み取ると、読み取られた部分の値がクリアされるようになっている。このため、上記のように乱数一巡周期が変わってしまったとしても、内部情報レジスタ３１０１から異常を示す情報を取得することができる。なお、異常を示す値が読み取られた後に、異常が継続していれば再度異常を示す値がセットされる。
【０６４９】
＜主制御部メイン処理＞
次に、図８８を用いて、図４に示す主制御部３００のＣＰＵ３０４が実行する主制御部メイン処理について説明する。なお、同図は主制御部メイン処理の流れを示すフローチャートである。
【０６５０】
この主制御部メイン処理は上述のユーザモードにおける処理に相当し、システムリセットがかかった場合でも、ユーザーリセットがかかった場合でも実行される処理である。図４に示す主制御部３００のＲＡＭ３０８には、大当り用特図１乱数カウンタ、小当り用特図１乱数カウンタ、ハズレ用特図１乱数カウンタ、およびこれらのカウンタの特図２用のカウンタが設けられている。また、そのＲＡＭ３０８には、特図１の保留数、特図１当選乱数、大当り用特図１乱数、小当り用特図１乱数、ハズレ用特図１乱数、特図１当否判定結果、特図１決定結果、特図１変動時間、およびこれらの、保留数や乱数や結果の特図２用のものがそれぞれが記憶される。またＲＡＭ３０８には、当否判定（抽選）の開始を保留することができる最大数（この例では４つ）の領域に区分けされた保留記憶部が特図１と特図２で別々に用意されている。特図１の保留記憶部には、後述するように、特図１当選乱数、大当り用特図１乱数、小当り用特図１乱数、ハズレ用特図１乱数、および特図１変動時間決定用乱数の５つの乱数を１セットにしてこれら５つの乱数が入賞順（保留順）に１セットずつ１領域ごとに格納される。
【０６５１】
上述したように、図４に示す主制御部３００には、電源が投入されると起動信号（リセット信号）を出力する起動信号出力回路（リセット信号出力回路）３４０を設けている。この起動信号を入力した基本回路３０２のＣＰＵ３０４は、リセット割込によりリセットスタートしてＲＯＭ３０６に予め記憶している制御プログラムに従って図８８に示す主制御部メイン処理を実行する。
【０６５２】
ステップＳ１０１では、初期設定１を行う。この初期設定１では、ＣＰＵ３０４のスタックポインタ（ＳＰ）へのスタック初期値の設定（仮設定）、割込マスクの設定、Ｉ／Ｏ３１０の初期設定、ＲＡＭ３０８に記憶する各種変数の初期設定等を行う。
【０６５３】
ステップＳ１０３では、低電圧信号がオンであるか否か、すなわち、電圧監視回路３３８が、電源制御部６６０が第２副制御部５００を介して主制御部３００に供給している電源の電圧値が所定の値（本実施形態では９ｖ）未満である場合に電圧が低下したことを示す低電圧信号を出力しているか否かを監視する。そして、低電圧信号がオンの場合（ＣＰＵ３０４が電源の遮断を検知した場合）には繰り返しこのステップＳ１０３を実行し、低電圧信号がオフの場合（ＣＰＵ３０４が電源の遮断を検知していない場合）にはステップＳ１０５に進む。なお、電源が投入された直後で未だ上記所定の値（９Ｖ）に達しない場合にも、供給電圧がその所定の値以上になるまでステップＳ１０３は繰り返し実行される。ステップＳ１０５では、初期設定２を行う。
【０６５４】
図８９は、主制御部メイン処理における初期設定２の流れを示すフローチャートである。まず、ステップＳ１０５１では、カウンタ回路３１２に最大値や更新ソースを決める数値を設定する処理等、カウンタ回路３１２に関する設定処理を行う。なお、後述する主制御部タイマ割込処理を定期毎に実行するための周期を決める数値をタイマ回路３１１に設定する処理等、タイマ回路３１１に関する設定処理も併せて行う。ステップＳ１０５２では、第１副制御部４００への出力ポートからクリア信号を出力する処理を行い、ステップＳ１０５３に進む。ステップＳ１０５３では乱数生成回路初期設定処理を行い、次いで、ステップＳ１０５４でＲＡＭ３０８への書き込みを許可する設定を行って、この初期設定２は終了になる。
【０６５５】
図９０は、ステップＳ１０５３における乱数生成回路初期設定処理の流れを示すフローチャートである。この乱数生成回路初期設定処理は、上述のユーザモードにおいて行われる、図７７に示す乱数生成回路３１８の初期設定処理である。まず、乱数の取り得る範囲（乱数生成範囲）範囲の設定を行い（ステップＳ１０５３ａ）、ステップＳ１０５３ｂに進む。上述のごとく、図７７に示す乱数生成回路３１８では、生成する乱数の最大幅は０〜６５５３５であり、この最大幅が乱数生成範囲のデフォルトになり、ここでは、図７９〜図８２を用いて詳細に説明したように、その乱数生成範囲をデフォルトとは異なる範囲に設定することができる。図８８に示す主制御部メイン処理は、リセット（システムリセットまたはユーザーリセット）がかかる度に実行される処理であるため、乱数生成範囲の設定もリセットがかかる度に実行される。このようにすることで、図９７、図９８を用いて後述する乱数生成範囲の異常による問題を防止することができる。
【０６５６】
ステップＳ１０５３ｂでは、図７７に示す乱数レジスタ３１８８の読み出しを行うとともに、読み出した乱数を破棄する処理を行い、ステップＳ１０５３ｃに進む。この処理によって、乱数生成範囲のリセットがかかるごとに乱数レジスタ３１８８が乱数をラッチすることを許容する許容状態になる。この許容状態においては、仮に異常の可能性がある乱数が乱数レジスタに残っている場合でもすぐに乱数を更新させることができるため、異常の可能性がある乱数の使用を防止することができる。
【０６５７】
本実施形態では、乱数生成回路３１８では、特図当選乱数の元になる乱数と普図当選乱数とを生成するが、制御状態に応じて出力チャンネルが異なる。すなわち、特図当選乱数の元になる乱数は、非確率変動中（特図低確率状態）にはチャンネルＣＨ１から出力され、確率変動中（特図高確率状態）にはチャンネルＣＨ２から出力される。また、普図当選乱数は、普図低確率状態（非電サポ中）にはチャンネルＣＨ３から出力され、普図高確率状態（電サポ中）にはチャンネルＣＨ４から出力される。なお、乱数生成回路３１８は、特図当選乱数そのものを生成するものであってもよいし、特図当選乱数の元になる乱数を生成するものであってもよい。また、普図当選乱数そのものを生成するものであってもよいし、普図当選乱数の元になる乱数を生成するものであってもよい。ステップＳ１０５３ｃでは、これら４チャンネル総てのチャンネルについてステップＳ１０５３ａとステップＳ１０５３ｂが実行されたか否かを判定し、全チャンネルについて終了していなければ、ステップＳ１０５３ａに戻り、１チャンネルごとに未了のチャンネルについて処理を行う。なお、乱数生成範囲の設定は、状態に応じて使用されているチャンネルのみを実行してもよいし、乱数生成範囲を設定されるチャンネルのみ実行するようにしてもよい。一方、全チャンネルについて終了していれば、この乱数生成回路初期設定処理は終了になる。
【０６５８】
本実施形態では、以上説明した乱数生成回路初期設定処理が行われると、乱数生成回路３１８は乱数の更新を開始する。ユーザリセットがかかった場合、乱数は更新されており、その状態で乱数生成範囲が更新されることに基づいて遅滞なく新しい乱数生成範囲で乱数が生成されるようになっている。なお、ユーザリセットがかかった場合には、一度乱数の更新を止める処理を行い、乱数生成範囲の設定を行った後に乱数の更新を再開させる処理を行うようにしてもよい。また、主制御部のタイマ割込みはこの時点では禁止されており、乱数生成回路初期設定処理はタイマ割込み許可前に行っていることになるため、新たに乱数がラッチされたとしても各種抽選に使用されることはなく、抽選処理の安定化を図ることができる。
【０６５９】
また、乱数生成回路３１８が、上記乱数生成回路初期設定処理を実行する指示をＣＰＵ３０４から受けた場合に、乱数生成回路初期設定処理を行わないものであってもよい。すなわち、乱数生成回路３１８が乱数更新を行うか否かに関わらず、ＣＰＵ３０４に乱数生成回路初期設定処理を実行する指示を行わせてもよい。この構成であれば、ユーザプログラムの解析結果と乱数生成回路３１８の動作が合わなくなるため、基本回路３０２の動作の解析が困難になり、不正を防止することができる。従って、不正により基本回路３０２の動作が不安定にされることがなく、遊技制御の安定化を図ることができる。仮に、不正により基本回路３０２の動作が解析された場合、遊技者に有利な操作が行われてしまう虞があるが、上記の構成であればこのような不正が防止できるため、遊技制御の安定化を図ることができる。
【０６６０】
さらに、乱数生成回路３１８が乱数更新を行うか否かに関わらず、ＣＰＵ３０４に乱数生成回路初期設定処理を実行する指示を行わせた場合、ユーザリセットが実行された場合の処理を統一することができる。すなわち、ユーザリセット後に不安定な状態となった場合にも分岐処理を行わずにすむため、遊技制御の安定化を図ることができる。なお、上述した内容はユーザリセットがかかった場合について述べたが、システムリセットがかかった場合についても同様の効果を得ることができる。
【０６６１】
図８８に示す主制御部メイン処理におけるステップＳ１０７では、電源の遮断前（電断前）の状態に復帰するか否かの判定を行い、電断前の状態に復帰しない場合（主制御部３００の基本回路３０２を初期状態にする場合）にはＲＷＭクリア処理（ステップＳ１１５）に進む。
【０６６２】
具体的には、最初に、図２に示す電源基板１８２に設けたＲＡＭクリアスイッチ１８０を遊技店の店員などが操作した場合に送信されるＲＡＭクリア信号がオン（操作があったことを示す）であるか否か、すなわちＲＡＭクリアが必要であるか否かを判定し、ＲＡＭクリア信号がオンの場合（ＲＡＭクリアが必要な場合）には、基本回路３０２を初期状態にすべくステップＳ１１３に進む。一方、ＲＡＭクリア信号がオフの場合（ＲＡＭクリアが必要でない場合）には、ＲＡＭ３０８に設けた電源ステータス記憶領域に記憶した電源ステータスの情報を読み出し、この電源ステータスの情報がサスペンドを示す情報であるか否かを判定する。そして、電源ステータスの情報がサスペンドを示す情報でない場合には、基本回路３０２を初期状態にすべくステップＳ１１３に進み、電源ステータスの情報がサスペンドを示す情報である場合には、ＲＡＭ３０８の所定の領域（例えば全ての領域）に記憶している１バイトデータを初期値が０である１バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果が、電断前にＲＡＭ３０８に設定した値と一致するか否か（チェックサムの結果が正常であるか否か）を判定する。そして、チェックサムの結果が特定の値の場合（チェックサムの結果が正常である場合）には電断前の状態に復帰すべくステップＳ１０９に進み、チェックサムの結果が特定の値以外である場合（チェックサムの結果が異常である場合）には、パチンコ機１００を初期状態にすべくステップＳ１１３に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップＳ１１３に進む。
【０６６３】
ステップＳ１０９では、データ書き戻し処理を行う。このデータ書き戻し処理では、電断時にＲＡＭ３０８に設けられたスタックポインタ退避領域に記憶しておいたスタックポインタの値を読み出し、スタックポインタに再設定（本設定）する。また、電断時にＲＡＭ３０８に設けられたレジスタ退避領域に記憶しておいた各レジスタの値を読み出し、各レジスタに再設定した後、割込許可の設定を行う。以降、ＣＰＵ３０４が、再設定後のスタックポインタやレジスタに基づいて制御プログラムを実行する結果、パチンコ機１００は電源断時の状態に復帰する。すなわち、電断直前にタイマ割込処理（後述）に分岐する直前に行った命令の次の命令から処理を再開する。また、図４に示す主制御部３００における基本回路３０２に搭載されているＲＡＭ３０８には、送信情報記憶領域が設けられている。このステップＳ１０９では、その送信情報記憶領域に、復電コマンドをセットする。この復電コマンドは、電源断時の状態に復帰したことを表すコマンドであり、後述する、主制御部３００のタイマ割込処理におけるステップＳ２３１において、第１副制御部４００へ送信される。
【０６６４】
ステップＳ１１１では、ＷＤＴ３１４１を起動させる処理を行う。ここでは、ＷＤＴ３１４１の起動許可及び初期値の設定等を行う。なお、本実施形態では、ＷＤＴ３１４１に、初期値として３２．８ｍｓに相当する数値を設定する。
【０６６５】
ステップＳ１１３では、ＲＷＭクリア処理を行う。このＲＷＭクリア処理では、ＲＡＭ３０８の全ての記憶領域の初期化を行う。また、主制御部のタイマ割込み許可の設定、スタックポインタへのスタック初期値の設定（本設定）なども併せて行う。さらにここで、主制御部３００のＲＡＭ３０８に設けられた送信情報記憶領域に正常復帰コマンドをセットする。この正常復帰コマンドは、主制御部３００のＲＷＭクリア処理（ステップＳ１１３）が行われたことを表すコマンドであり、復電コマンドと同じく、主制御部３００のタイマ割込処理におけるステップＳ２３１において、第１副制御部４００へ送信される。ステップＳ１１５では、ステップＳ１１１と同様、ＷＤＴ３１４１を起動させる処理を行う。
【０６６６】
ステップＳ１１７では、基本乱数初期値更新処理を行う。ここにいう基本乱数とは、ソフトウェア乱数である、大当り用特図乱数、小当り用特図乱数、およびハズレ用特図乱数が相当する。なお、各乱数には特図１用の乱数と特図２用の乱数が存在するが、以降の説明では、特に断りを入れない限り両者を区別することなく単に特図として説明する。この基本乱数初期値更新処理では、大当り用特図乱数カウンタ、小当り用特図乱数カウンタ、およびハズレ用特図乱数カウンタそれぞれの初期値を生成するための初期値生成用乱数カウンタを更新する。各カウンタがＲＡＭ３０８に設けられている。なお、初期値生成用乱数カウンタは、後述するステップＳ２０４でも更新する。
【０６６７】
ステップＳ１１９では演出乱数更新処理を行う。ここにいう演出乱数もソフトウェア乱数であって、この演出乱数は、演出を決定する元になる乱数のことであり、本実施形態では、後述する先読み予告を実行するか否かを抽選する際に用いられる乱数等が相当する。この演出乱数更新処理では、ＲＡＭ３０８に設けられた演出乱数カウンタを更新する。なお、演出乱数カウンタは、後述するステップＳ２１１でも更新する。
【０６６８】
主制御部３００は、所定の周期ごとに開始するタイマ割込処理を行っている間を除いて、ステップＳ１１７およびステップＳ１１９の処理を繰り返し実行する。これらのステップＳ１１７およびステップＳ１１９は、主処理の一例に相当する。
【０６６９】
＜主制御部タイマ割込処理＞
次に、図９１を用いて、主制御部３００のＣＰＵ３０４が実行する主制御部タイマ割込処理について説明する。なお、同図は主制御部タイマ割込処理の流れを示すフローチャートである。
【０６７０】
図４に示す主制御部３００は、所定の周期（本実施形態では約４ｍｓに１回）でタイマ割込信号を発生するタイマ回路３１１を備えており、このタイマ割込信号を契機として主制御部タイマ割込処理を所定の周期で開始する。
【０６７１】
ステップＳ２０１では、タイマ割込スタート処理を行う。このタイマ割込スタート処理では、ＣＰＵ３０４の各レジスタの値をスタック領域に一時的に退避する処理などを行う。ステップＳ２０３では、ＷＤＴ３１４１のカウント値が初期設定値（本実施形態では３２．８ｍｓ）を超えてＷＤＴ３１４１割込が発生しないように（処理の異常を検出しないように）、ＷＤＴ３１４１を定期的に（本実施形態では、主制御部タイマ割込の周期である約４ｍｓに１回）リスタートを行う。
【０６７２】
ステップＳ２０５では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、Ｉ／Ｏ３１０の入力ポートを介して、各種の球検出センサを含む図４に示す各種センサ３２０の検出信号を入力して検出信号の有無を監視し、ＲＡＭ３０８に各種センサ３２０ごとに区画して設けた信号状態記憶領域に記憶する。球検出センサの検出信号を例にして説明すれば、前々回のタイマ割込処理（約４ｍｓ前）で検出した各々の球検出センサの検出信号の有無の情報を、ＲＡＭ３０８に各々の球検出センサごとに区画して設けた前回検出信号記憶領域から読み出し、この情報をＲＡＭ３０８に各々の球検出センサごとに区画して設けた前々回検出信号記憶領域に記憶し、前回のタイマ割込処理（約２ｍｓ前）で検出した各々の球検出センサの検出信号の有無の情報を、ＲＡＭ３０８に各々の球検出センサごとに区画して設けた今回検出信号記憶領域から読み出し、この情報を上述の前回検出信号記憶領域に記憶する。また、今回検出した各々の球検出センサの検出信号を、上述の今回検出信号記憶領域に記憶する。
【０６７３】
また、ステップＳ２０５では、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域の各記憶領域に記憶した各々の球検出センサの検出信号の有無の情報を比較し、各々の球検出センサにおける過去３回分の検出信号の有無の情報が入賞判定パターン情報と一致するか否かを判定する。一個の遊技球が一つの球検出センサを通過する間に、約２ｍｓという非常に短い間隔で起動を繰り返すこの主制御部タイマ割込処理は何回か起動する。このため、主制御部タイマ割込処理が起動する度に、上述のステップＳ２０５では、同じ遊技球が同じ球検出センサを通過したことを表す検出信号を確認することになる。この結果、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域それぞれに、同じ遊技球が同じ球検出センサを通過したことを表す検出信号が記憶される。すなわち、遊技球が球検出センサを通過し始めたときには、前々回検出信号無し、前回検出信号有り、今回検出信号有りになる。本実施形態では、球検出センサの誤検出やノイズを考慮して、検出信号無しの後に検出信号が連続して２回記憶されている場合には、入賞があったと判定する。図４に示す主制御部３００のＲＯＭ３０６には、入賞判定パターン情報（本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報）が記憶されている。このステップＳ２０５では、各々の球検出センサにおいて過去３回分の検出信号の有無の情報が、予め定めた入賞判定パターン情報（本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報）と一致した場合に、一般入賞口２２６、可変入賞口２３４、第１特図始動口２３０、および第２特図始動口２３２への入球、または普図始動口２２８の通過があったと判定する。すなわち、これらの入賞口２３４、２３０やこれらの始動口２３０、２３２、２２８への入賞があったと判定する。例えば、一般入賞口２２６への入球を検出する一般入賞口センサにおいて過去３回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致した場合には、一般入賞口２２６へ入賞があったと判定し、以降の一般入賞口２２６への入賞に伴う処理を行うが、過去３回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致しなかった場合には、以降の一般入賞口２２６への入賞に伴う処理を行わずに後続の処理に分岐する。なお、主制御部３００のＲＯＭ３０６には、入賞判定クリアパターン情報（本実施形態では、前々回検出信号有り、前回検出信号無し、今回検出信号無しであることを示す情報）が記憶されている。入賞が一度あったと判定した後は、各々の球検出センサにおいて過去３回分の検出信号の有無の情報が、その入賞判定クリアパターン情報に一致するまで入賞があったとは判定せず、入賞判定クリアパターン情報に一致すれば、次からは上記入賞判定パターン情報に一致するか否かの判定を行う。
【０６７４】
ステップＳ２０７およびステップＳ２０９では、基本乱数初期値更新処理および基本乱数更新処理を行う。これらの基本乱数初期値更新処理および基本乱数更新処理では、上記ステップＳ１１７で行った初期値生成用乱数カウンタの値の更新を行い、次に主制御部３００で使用する、大当り用特図乱数、小当り用特図乱数、およびハズレ用特図乱数それぞれを生成するための乱数カウンタを更新する。例えば、大当り用特図乱数として取り得る数値範囲が０〜１００とすると、ＲＡＭ３０８に設けた大当り用特図乱数を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に１を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に１を加算した結果が１０１であれば０を元の乱数カウンタ記憶領域に記憶する。また、取得した値に１を加算した結果、乱数カウンタが一周していると判定した場合にはそれぞれの乱数カウンタに対応する初期値生成用乱数カウンタの値を取得し、乱数カウンタの記憶領域にセットする。例えば、０〜１００の数値範囲で変動する大当り用特図乱数生成用の乱数カウンタから値を取得し、取得した値に１を加算した結果が、ＲＡＭ３０８に設けた所定の初期値記憶領域に記憶している前回設定した初期値と等しい値（例えば７）である場合に、大当り用特図乱数生成用の乱数カウンタに対応する初期値生成用乱数カウンタから値を初期値として取得し、大当り用特図乱数生成用の乱数カウンタにセットすると共に、大当り用特図乱数生成用の乱数カウンタが次に１周したことを判定するために、今回設定した初期値を上述の初期値記憶領域に記憶しておく。なお、本実施形態では特図１に関する乱数を取得するためのカウンタと特図２に関する乱数を取得するためのカウンタとを別々に設けているが、同一のカウンタを用いてもよい。
【０６７５】
ステップＳ２１１では、演出乱数更新処理を行う。この演出乱数更新処理では、上記ステップＳ１１９と同様に、主制御部３００で使用する演出用乱数を生成するための乱数カウンタを更新する。ステップＳ２１３では、タイマ更新処理を行う。このタイマ更新処理では、普通図柄表示装置２１０に図柄を変動・停止表示する時間を計時するための普図表示図柄更新タイマ、第１特図表示装置２１２に図柄を変動・停止表示する時間を計時するための特図１表示図柄更新タイマ、第２特図表示装置２１４に図柄を変動・停止表示する時間を計時するための特図２表示図柄更新タイマ、所定の入賞演出時間、所定の開放時間、所定の閉鎖時間、所定の終了演出期間などを計時するためのタイマなどを含む各種タイマを更新する。
【０６７６】
ステップＳ２１５では、入賞口カウンタ更新処理を行う。この入賞口カウンタ更新処理では、入賞口２３４、２３０や始動口２３０、２３２、２２８に入賞があった場合に、ＲＡＭ３０８に各入賞口ごと、あるいは各始動口ごとに設けた賞球数記憶領域の値を読み出し、１を加算して、元の賞球数記憶領域に設定する。
【０６７７】
また、ステップＳ２１７では、入賞受付処理を行う。この入賞受付処理では、第１特図始動口２３０に入賞があり、且つ、保留している特図１変動遊技の数が所定数（本実施形態では４）未満である場合には、所定の始動情報を取得する。すなわち、保留数が所定数未満であれば、図４に示す乱数生成回路３１８から、特図１当選乱数の元になるハードウェア乱数を得、加工を施すことによって特図１当選乱数を取得する。この点についてはさらに詳しく後述する。また、ＲＡＭ３０８に設けた乱数カウンタ記憶領域から、大当り用特図１乱数、小当り用特図１乱数、およびハズレ用特図１乱数を取得する。大当り用特図１乱数、小当り用特図１乱数、およびハズレ用特図１乱数は、ＲＡＭ３０８に設けられたソフトウェア乱数カウンタから導出されたソフトウェア乱数を加工した値（ソフトウェア乱数の値＋Ｒレジスタの値＋１）である。さらに、図４に示すカウンタ回路３１２から特図１変動時間決定用乱数を取得する。図４に示す乱数生成回路３１８、カウンタ回路３１２、ＲＡＭ３０８に設けられたソフトウェア乱数カウンタ、および乱数加工を施す主制御部３００を併せたものが、始動情報を生成して導出するものであり、始動情報導出手段（第１の始動情報導出手段，第２の始動情報導出手段）の一例に相当する。なお、ハードウェア乱数の生成に着目すれば、図４に示す乱数生成回路３１８あるいはカウンタ回路３１２が、始動情報を生成するものであり、始動情報生成手段（第１の始動情報生成手段，第２の始動情報生成手段）の一例に相当する。ここで取得された各種乱数（始動情報）は、ＲＡＭ３０８に設けた特図１の保留記憶部の、入賞順（保留順）に応じた空いている領域に、１セットの始動情報として記憶される。この特図１の保留記憶部は、第１特図始動口２３０（第１の始動領域）に遊技球が進入した場合に取得した始動情報を所定の第１上限個数（ここでは４個）まで記憶可能な第１の始動情報記憶手段に相当する。このとき各種乱数（始動情報）をＲＡＭ３０８に設けた一時領域に一旦記憶し、その一時領域に記憶された値を特図１の保留記憶部に記憶してもよく、この場合、一時領域を第１の始動情報記憶手段としてもよいし、特図１の保留記憶部および一時領域を第１の始動情報記憶手段としてもよい。また、主制御部３００のＣＰＵ３０４は、ＲＡＭ３０８に記憶されている特図１の保留数の値に１を加算し、特図１の保留数が１増加する。したがって、主制御部３００のＣＰＵ３０４が保留手段の一例に相当する。また、特図２についても、特図１と同様に始動情報である各乱数を取得し、取得した乱数をＲＡＭ３０８に設けた特図２の保留記憶部に、１セットの始動情報として同様に記憶され、さらに、ＲＡＭ３０８に記憶されている特図２の保留数の値に１を加算する。特図２の保留記憶部は、第２特図始動口２３２（第２の始動領域）に遊技球が進入した場合に取得した始動情報を所定の第２上限個数（ここでは４個）まで記憶可能な第２の始動情報記憶手段に相当する。このとき各種乱数（始動情報）をＲＡＭ３０８に設けた一時領域に一旦記憶し、その一時領域に記憶された値を特図２の保留記憶部に記憶してもよく、この場合一時領域を第２の始動情報記憶手段としてもよいし、特図２の保留記憶部および一時領域を第２の始動情報記憶手段としてもよい。
【０６７８】
また、普図始動口２２８を球が通過したことを検出し、且つ、保留している普図変動遊技の数が所定数（本実施形態では４）未満の場合には、そのタイミングで、図４に示す乱数生成回路３１８から普図当選乱数を所得し、ＲＡＭ３０８に設けた特図用とは別の乱数記憶領域に記憶する。この乱数生成回路３１８から普図当選乱数を取得する点についても、さらに後述する。
【０６７９】
また、この入賞受付処理では、所定の球検出センサにより、第１特図始動口２３０、第２特図始動口２３２、普図始動口２２８、または可変入賞口２３４の入賞（入球）を検出した場合に、第１副制御部４００に送信すべき送信情報に、第１特図始動口２３０、第２特図始動口２３２、普図始動口２２８、および可変入賞口２３４の入賞（入球）の有無を示す入賞受付情報を設定する。なお、特図の始動情報にしても普図の始動情報にしても、保留数がそれぞれの所定数以上であれば始動情報を取得せずに、ステップＳ２１９に進む。
【０６８０】
ステップＳ２１９では、払出要求数送信処理を行う。図４に示す払出制御部６００に出力する出力予定情報および払出要求情報は１バイトで構成しており、ビット７にストローブ情報（オンの場合、データをセットしていることを示す）、ビット６に電源投入情報（オンの場合、電源投入後一回目のコマンド送信であることを示す）、ビット４〜５に暗号化のための今回加工種別（０〜３）、およびビット０〜３に暗号化加工後の払出要求数を示すようにしている。
【０６８１】
ステップＳ２２１では、普図状態更新処理を行う。この普図状態更新処理は、普図の状態に対応する複数の処理のうちの１つの処理を行う。例えば、普図変動表示の途中（上述する普図表示図柄更新タイマの値が１以上）における普図状態更新処理では、普通図柄表示装置２１０を構成する７セグメントＬＥＤの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。この制御を行うことで、普通図柄表示装置２１０は普図の変動表示（普図変動遊技）を行う。
【０６８２】
また、普図変動表示時間が経過したタイミング（普図表示図柄更新タイマの値が１から０になったタイミング）における普図状態更新処理では、当りフラグがオンの場合には、当り図柄の表示態様となるように普通図柄表示装置２１０を構成する７セグメントＬＥＤの点灯・消灯駆動制御を行い、当りフラグがオフの場合には、ハズレ図柄の表示態様となるように普通図柄表示装置２１０を構成する７セグメントＬＥＤの点灯・消灯駆動制御を行う。また、主制御部３００のＲＡＭ３０８には、普図状態更新処理に限らず各種の処理において各種の設定を行う設定領域が用意されている。ここでは、上記点灯・消灯駆動制御を行うとともに、その設定領域に普図停止表示中であることを示す設定を行う。この制御を行うことで、普通図柄表示装置２１０は、当り図柄（図５（ｃ）に示す普図Ａ）およびハズレ図柄（図５（ｃ）に示す普図Ｂ）いずれか一方の図柄の確定表示を行う。さらにその後、所定の停止表示期間（例えば５００ｍ秒間）、その表示を維持するためにＲＡＭ３０８に設けた普図停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により、確定表示された図柄が所定期間停止表示され、普図変動遊技の結果が遊技者に報知される。
【０６８３】
また、普図変動遊技の結果が当りであれば、後述するように、普図当りフラグがオンされる。この普図当りフラグがオンの場合には、所定の停止表示期間が終了したタイミング（普図停止時間管理用タイマの値が１から０になったタイミング）における普図状態更新処理では、ＲＡＭ３０８の設定領域に普図作動中を設定するとともに、所定の開放期間（例えば２秒間）、第２特図始動口２３２の羽根部材２３２１の開閉駆動用のソレノイド（３３２）に、羽根部材２３２１を開放状態に保持する信号を出力するとともに、ＲＡＭ３０８に設けた羽根開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。このようにして一対の羽根部材２３２１の開放制御を行う主制御部３００のＣＰＵ３０４が、可変始動領域制御を行う可変始動領域制御手段の一例に相当する。一方、非電サポ状態であれば、ＲＡＭ３０８の設定領域に普図非作動中を設定するとともに、第２特図始動口２３２の羽根部材２３２１の開閉駆動用のソレノイド（３３２）には、何ら信号を出力しない。こうすることで、羽根部材２３２１は閉じた状態のままになる。なお、羽根部材２３２１を閉じた状態に維持するための信号を必ず出力するようにしてもよい。
【０６８４】
また、電サポ状態であった場合には、所定の開放期間が終了したタイミング（羽根開放時間管理用タイマの値が１から０になったタイミング）で開始する処理では、所定の閉鎖期間（例えば０．１秒間）、羽根部材２３２１の開閉駆動用のソレノイド（３３２）に、羽根部材２３２１を閉鎖状態に保持する信号を出力するとともに、ＲＡＭ３０８に設けた
羽根閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。
【０６８５】
また、電サポ状態であった場合には、所定の閉鎖期間が終了したタイミング（羽根閉鎖時間管理用タイマの値が１から０になったタイミング）で開始する普図状態更新処理において、ＲＡＭ３０８の設定領域に普図非作動中を設定する。さらに、普図変動遊技の結果がハズレであれば、後述するように、普図ハズレフラグがオンされる。この普図ハズレフラグがオンの場合には、上述した所定の停止表示期間が終了したタイミング（普図停止時間管理用タイマの値が１から０になったタイミング）における普図状態更新処理でも、ＲＡＭ３０８の設定領域に普図非作動中を設定する。普図非作動中の場合における普図状態更新処理では、何もせずに次のステップＳ２２３に移行するようにしている。続いて、ステップＳ２２３では普図関連抽選処理を実行する。
【０６８６】
図９２（ａ）は、普図関連抽選処理の流れを示すフローチャートである。図９２（ａ）に示す普図関連抽選処理では、まず、普図保留情報があるか否かを判定する（ステップＳ２２３１）。ここにいう普図保留情報とは、普図の保留数を指す。すなわち、ここでは、保留している普図変動遊技の数が１以上であるか否かを判定する。なお、普図の保留数をデータとして持っていなくとも、例えば、保留に対応した乱数（普図当選乱数）を普図保留情報として認識するようにしても良い。普図保留情報がなければ、この普図関連抽選処理は終了になり、普図保留情報があればステップＳ２２３２に進む。ステップＳ２２３２では、普図変動遊技が行われているか否かを判定し、行われていればこの普図関連抽選処理は終了になり、行われていなければステップＳ２２３３に進む。ステップＳ２２３３では、第２特図始動口２３２の開閉制御が行われているか否か（普図作動中か否か）を判定し、普図作動中であればこの普図関連抽選処理は終了になり、普図非作動中であればステップＳ２２３４に進む。ステップＳ２２３４では、上述の乱数記憶領域に記憶している普図当選乱数に基づいた乱数抽選を行う。
【０６８７】
図９２（ｂ）は、普図抽選テーブルを示す図である。このテーブルは、主制御部３００のＲＯＭ３０６に記憶されている。主制御部３００のＣＰＵ３０４は、ＲＡＭ３０８の乱数記憶領域から普図当選乱数を取り出し、時短フラグを参照し、時短フラグがオンであれば普図高確率状態（電サポ中）であるため、取得した普図当選乱数から普図高確率状態の普図当選データを引き、キャリーが発生した場合（普図当選乱数よりも普図当選データの値が大きい場合）は普図当選とし、キャリーが発生しなかった場合は普図ハズレになる。すなわち、普図当選乱数範囲は０〜９になる。普図高確率状態では、普図当選乱数は、図１０に示す乱数生成回路３１８のチャンネルＣＨ４から出力される。このチャンネルＣＨ４には、図９０に示す乱数生成回路初期設定処理における乱数生成範囲の設定（ステップＳ１０５３ａ）において０〜９の乱数生成範囲が設定されており、普図高確率状態の普図当選乱数の取り得る範囲は０〜９になる。したがって、普図高確率状態における普図当選確率は１／１になる。一方、時短フラグがオフであれば普図低確率状態（非電サポ中）であるため、取得した普図当選乱数から、普図高確率状態のデータと同じ普図低確率状態の普図当選データを引き、キャリーが発生した場合（普図当選乱数よりも普図当選データの値が大きい場合）は普図当選とし、キャリーが発生しなかった場合は普図ハズレになる。すなわち、普図低確率状態の場合でも普図当選乱数範囲は０〜９になる。普図低確率状態では、普図当選乱数は、図７７に示す乱数生成回路３１８のチャンネルＣＨ３から出力される。このチャンネルＣＨ３には、乱数生成範囲の設定（ステップＳ１０５３ａ）において０〜９９９の乱数生成範囲が設定されており、普図低確率状態の普図当選乱数の取り得る範囲は０〜９９９になる。したがって、普図低確率状態における普図当選確率は１／１００になる。
【０６８８】
本実施形態では、普図当選乱数の取り得る範囲（乱数生成範囲）を、デフォルトの０〜６５５３５から０〜９９９に制限することで大当り確率を、きりのよい１／１００にすることができる。また、普図当選データを、普図高確率状態と普図低確率状態で同じ値にすることができる。乱数生成範囲を制限せずに確率を決定することは開発工数の増大を招くとともに誤った確率設計の原因となってしまう場合がある。特に、一の契機に基づいて複数回の抽選を行う場合に煩雑さはより顕著になってしまう。よって、乱数生成範囲を制限することは開発工数を削減するとともに、抽選処理の安定化を図ることができるといえる。また、普図当選データを、普図高確率状態と普図低確率状態で共通化することも、開発工数を削減するとともに、抽選処理の安定化を図ることができるといえる。
【０６８９】
普図抽選に当選した場合にはＲＡＭ３０８に設けた当りフラグをオンに設定する。ハズレ（不当選）の場合には、当りフラグをオフに設定する。また、普図抽選の結果に関わらず、図４に示すカウンタ回路３１２から普図変動時間決定用乱数を取得し、取得した普図変動時間決定用乱数に基づいて複数の変動時間のうちから普図表示装置２１０に普図を変動表示する時間を１つ選択し、この変動表示時間を、普図変動表示時間として、ＲＡＭ３０８に設けた普図変動時間記憶領域に記憶する。普図変動時間決定用乱数値を用いた抽選で複数の変動時間のうちから普図変動時間を１つ選択する主制御部３００のＣＰＵ３０４が、抽選手段の一例に相当する。ここで、普図変動時間の抽選処理は、普図の当りか否かを抽選する当否判定とは異なる。なお、保留している普図変動遊技の数は、ＲＡＭ３０８に設けた普図保留数記憶領域に記憶するようにしており、ステップＳ２２３４を実行するたびに、保留している普図変動遊技の数から１を減算した値を、この普図保留数記憶領域に記憶し直すようにしている。また、カウンタ回路３１２からの普図変動時間決定用乱数の取得は、普図始動口２２８への入賞時に行ってもよい。
【０６９０】
ステップＳ２２３５では、上述の乱数記憶領域から、先の普図抽選に使用した普図当選乱数を消去し、この普図関連抽選処理は終了になる。続いて、特図先読み処理（ステップＳ２２５）が実行される。この先読み処理では、まず、ＲＡＭ３０８に設けられた特図１の保留記憶部内の特図１当選乱数を先読みするか、あるいは特図２の保留記憶部内の特図２当選乱数を先読みする。なお、ここでの先読みとは始動情報を当否判定（本抽選）の前に先に読むことを意味するが、以降の先読み処理では、先読みという言葉を、先（当否判定（本抽選）の結果）を読むという意味で使用することがある。このステップＳ２２５では、後述する特図関連処理（ステップＳ２２９）で用いる図９４（ａ）に示す特図抽選テーブルの内容と同じ内容の事前判定用テーブルを用い、先読みした特図当選乱数に基づく当否判定の事前判定を行う。なお、特図関連処理では、特図抽選テーブルを用いて特図変動遊技の当否判定を改めて行い、ここでの判定結果は、あくまで事前判定の結果になる。当否判定の事前判定では、「大当り」という結果か、あるいは「大当り」以外という結果が導出され、「大当り」という結果の場合には、ＲＡＭ３０８に設けられた特図１の保留記憶部内の大当り用特図１乱数を先読みするか、あるいは特図２の保留記憶部内の大当り用特図２乱数を先読みする。続いて、ステップＳ２２９の特図関連処理で用いる図９４（ｂ）に示す停止図柄抽選テーブルの内容と同じ内容の事前判定用テーブルを用い、先読みした大当り用特図乱数に基づく特図の停止図柄の事前判定を行う。
【０６９１】
なお、特図関連処理では、停止図柄抽選テーブルを用いて特図の停止図柄の抽選を改めて行い、ここでの判定結果は、あくまで事前判定の結果になる。こうして、特図の停止図柄を事前判定すると、先読み予告の実行可否抽選を行う。この先読み予告は、特図関連抽選処理（ステップＳ２２９）が実行される前、すなわち当否判定が行われる前に、当該特図関連抽選処理で行われる当否判定の結果が大当り（ここではより限定して１５Ｒの大当り（１５Ｒ特別大当りか１５Ｒ大当り））になることを予告するための報知である。ここでの先読み予告には、停止図柄の事前判定結果が１５Ｒの大当り図柄（特図Ａまたは特図Ｂ）でなくても、１５Ｒの大当りになるかのように偽りで予告する偽の先読み予告も含まれる。すなわち、先読み予告は、当否判定の結果が１５Ｒ大当りになる可能性があることを表したり、遊技者に示唆する事前報知、あるいは当否判定の結果が１５Ｒ大当りになることを遊技者に期待させる事前報知であるといえる。先読み予告の実行可否抽選を行うタイミングで、ＲＡＭ３０８に設けられた演出乱数カウンタから演出乱数（例えば、取り得る範囲は０〜９９）を取得し、取得した演出乱数に基づいて実行可否抽選を行う。なお、停止図柄の事前判定結果を第１副制御部４００に送信し、この実行可否抽選は、第１副制御部４００が行うようにしてもよい。
【０６９２】
次に、特図１および特図２それぞれについての特図状態更新処理（ステップＳ２２７）を行うが、最初に、特図２についての特図状態更新処理を行い、次いで、特図１についての特図状態更新処理を行う。特図２状態更新処理は、特図２の状態に応じて、次の８つの処理のうちの１つの処理を行う。例えば、特図２変動表示の途中（上述の特図２表示図柄更新タイマの値が１以上）における特図２状態更新処理では、第２特別図柄表示装置２１４を構成する７セグメントＬＥＤの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。この制御を行うことで、第２特別図柄表示装置２１４は特図２の変動表示（特図２変動遊技）を行う。また、コマンド設定送信処理（ステップＳ２３１）で一般コマンド回転開始設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶してから処理を終了する。
【０６９３】
また、主制御部３００のＲＡＭ３０８には、１５Ｒ大当りフラグ、２Ｒ大当たりフラグ、第１小当たりフラグ、第２小当たりフラグ、第１ハズレフラグ、第２ハズレフラグ、確変フラグ、および時短フラグそれぞれのフラグが用意されている。特図２変動表示時間が経過したタイミング（特図２表示図柄更新タイマの値が１から０になったタイミング）で開始する特図２状態更新処理では、後述する特図関連抽選処理における特図決定結果（特図の停止図柄態様）に基づいて第２特図表示装置２１４を構成する７セグメントＬＥＤの点灯・消灯駆動制御を行い、ＲＡＭ３０８の設定領域に特図２停止表示中であることを表す設定を行う。この制御を行うことで、第２特別図柄表示装置２１４は、１５Ｒ特別大当たり図柄（特図Ａ）、１５Ｒ大当たり図柄（特図Ｂ）、２Ｒ特別大当たり図柄（特図Ｃ）、突然時短図柄（特図Ｄ）、隠れ確変図柄（特図Ｅ）、突然通常図柄（特図Ｆ）、第１小当たり図柄（特図Ｇ）、第２小当たり図柄（特図Ｈ）、第１ハズレ図柄（特図Ｉ）、および第２ハズレ図柄（特図Ｊ）のいずれか一つの図柄の確定表示を行う。さらにその後、所定の停止表示期間（例えば５００ｍ秒間）その表示を維持するためにＲＡＭ３０８に設けた特図２停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により、確定表示された特図２が所定期間停止表示され、特図２変動遊技の結果が遊技者に報知される。また、ＲＡＭ３０８に設けられた電サポ回数記憶部に値がセットされている場合には、その値が１以上であれば、その時短回数から１を減算し、減算結果が１から０となった場合は、特図確率変動中でなければ、時短フラグをオフする。さらに、大当り遊技中や小当り遊技中にも、時短フラグをオフする。すなわち、主制御部３００のＣＰＵ３０４は、大当り遊技状態中および小当り遊技状態中（第二の制御状態中）である場合に、非電サポ状態（第一の進入率制御状態）に移行させる。
【０６９４】
また、後述するコマンド設定送信処理（ステップＳ２３１）で一般コマンド回転停止設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶するとともに、変動表示を停止する図柄が特図２であることを示す特図２識別情報を、後述するコマンドデータに含める情報としてＲＡＭ３０８に追加記憶してから処理を終了する。
【０６９５】
また、特図２変動遊技の結果が大当りであれば、大当りフラグがオンされる。この大当りフラグがオンの場合には、所定の停止表示期間が終了したタイミング（特図２停止時間管理用タイマの値が１から０になったタイミング）における特図２状態更新処理では、ＲＡＭ３０８の設定領域に特図２作動中を設定するとともに、所定の入賞演出期間（例えば３秒間）すなわち装飾図柄表示装置２０８による大当りを開始することを遊技者に報知する画像を表示している期間待機するためにＲＡＭ３０８に設けた特図２待機時間管理用タイマの記憶領域に入賞演出期間を示す情報を設定する。また、コマンド設定送信処理（ステップＳ２３１）で一般コマンド入賞演出設定送信処理を実行させるために上述の送信情報記憶領域に５Ｈを送信情報（コマンド種別）として追加記憶する。
【０６９６】
また、所定の入賞演出期間が終了したタイミング（特図２待機時間管理用タイマの値が１から０になったタイミング）で開始する特図２状態更新処理では、所定の開放期間（例えば２９秒間、または可変入賞口２３４に所定球数（例えば１０球）の遊技球の入賞を検出するまで）可変入賞口２３４の扉部材２３４１の開閉駆動用のソレノイド（３３２）に、扉部材２３４１を開放状態に保持する信号を出力するとともに、ＲＡＭ３０８に設けた扉開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。また、コマンド設定送信処理（ステップＳ２３１）で一般コマンド大入賞口開放設定送信処理を実行させるために上述の送信情報記憶領域に７Ｈを送信情報（コマンド種別）として追加記憶する。
【０６９７】
また、所定の開放期間が終了したタイミング（扉開放時間管理用タイマの値が１から０になったタイミング）で開始する特図２状態更新処理では、所定の閉鎖期間（例えば１．５秒間）可変入賞口２３４の扉部材２３４１の開閉駆動用のソレノイド（３３２）に、扉部材２３４１を閉鎖状態に保持する信号を出力するとともに、ＲＡＭ３０８に設けた扉閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。また、コマンド設定送信処理（ステップＳ２３１）で大入賞口閉鎖設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【０６９８】
また、この扉部材の開放・閉鎖制御を所定回数（本実施例では１５ラウンドか２ラウンド）繰り返し、終了したタイミングで開始する特図２状態更新処理では、所定の終了演出期間（例えば３秒間）すなわち装飾図柄表示装置２０８による大当りを終了することを遊技者に報知する画像を表示している期間待機するように設定するためにＲＡＭ３０８に設けた演出待機時間管理用タイマの記憶領域に演出待機期間を示す情報を設定する。
【０６９９】
以上説明したように、主制御部３００のＣＰＵ３０４は、大当り遊技状態中に、可変入賞口２３４の扉部材２３４１の開閉状態の変化制御を行う可変入賞制御手段の一例に相当する。なお、主制御部３００のＲＯＭ３０６には、可変入賞口２３４の扉部材２３４１の開閉パターンが記憶されており、主制御部３００のＣＰＵ３０４は、そのＲＯＭ３０６から、特図変動遊技の当否判定に応じた開閉パターンを取得する。
【０７００】
また、主制御部３００のＣＰＵ３０４は、特図決定結果が表す停止図柄態様に基づいて、大当り遊技の終了と同時に、ＲＡＭ３０８に設けられた確変フラグや時短フラグをオンに設定する。すなわち、主制御部３００のＣＰＵ３０４は、後述する特図抽選処理で特図決定結果が「特図Ａ」や「特図Ｃ」である場合には確変フラグと時短フラグの双方をオンに設定する。また、特図決定結果が「特図Ｅ」である場合には確変フラグと時短フラグのうち確変フラグのみをオンに設定する。さらに、特図決定結果が「特図Ｂ」や「特図Ｄ」である場合には確変フラグと時短フラグのうち時短フラグのみをオンに設定するとともにＲＡＭ３０８に設けられた電サポ回数記憶部に電サポ回数１００回をセットする。確変フラグがオンに設定されていると、特図高確率状態（確率変動中）であり、大当り遊技終了後に大当りに当選する確率が高くなっている状態（特図高確率状態）である。一方、確変フラグがオンに設定されていない（オフに設定されている）と、特図低確率状態である。したがって、確変フラグの設定状態は、当否判定（特図の抽選）の結果に影響を与える。また、時短フラグがオンに設定されていると電サポ状態であり、電チューが開きやすい（例えば当りやすい）、一回の当りに基づく開放時間が長い、一回の当りに基づく開放回数が多いなど可変始動領域制御が遊技者に有利になるように行われる。反対に、時短フラグがオフに設定されていると非電サポ状態であり、可変始動領域制御が遊技者に不利になるように行われる。したがって、時短フラグの設定状態は、可変始動領域制御にも影響を与える。よって、確変フラグおよび／または時短フラグの設定状態を表す情報は、遊技制御情報の一例に相当し、主制御部３００のＣＰＵ３０４は遊技制御情報決定手段の一例に相当する。
【０７０１】
さらに、コマンド設定送信処理（ステップＳ２３１）で一般コマンド終了演出設定送信処理を実行させるために上述の送信情報記憶領域に６Ｈを送信情報（コマンド種別）として追加記憶する。
【０７０２】
また、所定の終了演出期間が終了したタイミング（演出待機時間管理用タイマの値が１から０になったタイミング）で開始する特図２状態更新処理では、ＲＡＭ３０８の設定領域に特図２非作動中を設定する。さらに、特図２変動遊技の結果がハズレであれば、ハズレフラグがオンされる。このハズレフラグがオンの場合には、上述した所定の停止表示期間が終了したタイミング（特図２停止時間管理用タイマの値が１から０になったタイミング）における特図２状態更新処理でも、ＲＡＭ３０８の設定領域に特図２非作動中を設定する。特図２非作動中の場合における特図２状態更新処理では、何もせずに次の処理に移行するようにしている。
【０７０３】
特図２状態更新処理が終了すると、特図１状態更新処理を行う。この特図１状態更新処理では、特図１の状態に応じて、上述の特図２状態更新処理で説明した各処理を行う。この特図１状態更新処理で行う各処理は、上述の特図２状態更新処理で説明した内容の「特図２」を「特図１」と読み替えた処理と同一であるため、その説明は省略する。なお、特図２状態更新処理と特図１状態更新処理の順番は逆でもよい。
【０７０４】
ステップＳ２２７における特図状態更新処理が終了すると、今度は、特図１および特図２それぞれについての特図関連抽選処理を行う。この特図関連抽選処理を実行する主制御部３００のＣＰＵ３０４が当否判定手段の一例に相当する。主制御部３００は、最初に特図２についての処理（特図２関連抽選処理）を行い、その後、特図１についての処理（特図１関連抽選処理）を行う。このように、主制御部３００が特図２関連抽選処理を特図１関連抽選処理よりも先に行うことで、同じタイミングで、第１特図始動口２３０に遊技球が進入したことに基づいて始動情報を取得し、かつ第２特図始動口２３２に遊技球が進入したことに基づいて始動情報を取得した場合や、特図２変動遊技の開始条件と、特図１変動遊技の開始条件が同時に成立した場合や、特図２変動遊技の開始条件と特図１変動遊技の開始条件の両方が成立している場合でも、特図２変動遊技が先に変動中となるため、特図１変動遊技は変動を開始しない。すなわち、本実施形態のパチンコ機１００は、特図２優先変動を行うものであり、第２特図始動口２３２への入賞に基づく抽選（特図２の当否判定）を、第１特図始動口２３０への入賞に基づく抽選（特図１の当否判定）よりも優先して行う。言い換えれば、本実施形態のパチンコ機１００では、第１の特別始動領域に遊技球が進入した場合に第１の乱数記憶領域に乱数を最大保留数まで格納し、第２の特別始動領域に遊技球が入賞した場合に第２の乱数記憶領域に乱数を最大保留数まで格納する入賞記憶部と、前記第１の乱数記憶領域および前記第２の乱数記憶領域の両方に乱数が記憶されている場合に、前記第１の乱数記憶領域に前記乱数が記憶された時期および前記第２の乱数記憶領域に前記乱数が記憶された時期とは無関係に該第２の乱数記憶領域に記憶されている乱数に基づいて当否判定を行うとともに、前記第１の乱数記憶領域に乱数が記憶されておらず、かつ前記第２の乱数記憶領域に乱数が記憶されている場合には、該第２の乱数記憶領域に記憶されている乱数に基づいて当否判定を行い、前記第２の乱数記憶領域に乱数が記憶されておらず、かつ前記第１の乱数記憶領域に乱数が記憶されている場合には、該第１の乱数記憶領域に記憶されている乱数に基づいて当否判定を行う当否判定手段を備えている。また、第１特図表示装置２１２あるいは第２特図表示装置２１４による特図変動遊技の大当り判定の結果の報知は、主制御部３００で行われ、第２特図始動口２３２への入賞に基づく当否判定の結果報知が、第１特図始動口２３０への入賞に基づく当否判定の結果報知よりも優先して行われ、当否判定が行われていない始動情報として、特図１の始動情報と特図２の始動情報のうちの特図１の始動情報のみが残っている状態で、特図２の始動情報が新たに記憶された場合には、新たに記憶された特図２の始動情報に基づく当否判定の結果の報知が、既に記憶されていた特図１の始動情報に基づく当否判定の結果の報知よりも先に行われる。また、始動情報を取得する始動情報取得手段は、第１の始動情報記憶手段および第２の始動情報記憶手段のうちの両方に始動情報が記憶されている場合には、該第２の始動情報記憶手段から始動情報を取得し、該第１の始動情報記憶手段および該第２の始動情報記憶手段のうちの一方に始動情報が記憶されている場合には、始動情報が記憶されている始動情報記憶手段から始動情報を取得するものである。なお、特図２状態更新処理に続いて先に特図２関連抽選処理を行い、それから、特図１状態更新処理を行い、その後、特図１関連抽選処理を行うようにしてもよい。
【０７０５】
図９３は、特図関連抽選処理の流れを示すフローチャートである。この図９３に示す特図関連抽選処理では、特図１と特図２を区別しないで示しているが、先に特図２についてステップＳ２２９１〜ステップＳ２２９６までの処理を行い、その後、特図１についてステップＳ２２９１〜ステップＳ２２９６までの処理を行う。ここでは、特図２と特図１を区別しないで説明する。
【０７０６】
図９３に示す特図関連抽選処理では、まず、特図保留情報があるか否かを判定する（ステップＳ２２９１）。ここにい特図保留情報とは、特図の保留数を指す。すなわち、ここでは、保留している特図変動遊技の数が１以上であるか否かを判定する。なお、特図の保留数をデータとして持っていなくとも、例えば、保留に対応した乱数（特図当選乱数）を特図保留情報として認識するようにしても良い。特図保留情報がなければ、この特図関連抽選処理は終了になり、特図保留情報があればステップＳ２２９２に進む。ステップＳ２２９２では、特図表示装置（２１２，２１４）が特図変動表示中であるか、または停止表示中であるか否かを判定し、いずれかの表示中である場合には、この特図関連抽選処理は終了になり、いずれの表示中でもない場合には、ステップＳ２２９３に進む。ステップＳ２２９３では、特図作動中であるか否かを判定し、特図作動中であれば、この特図関連抽選処理は終了になり、特図非作動中であれば、ステップＳ２２９４に進む。
【０７０７】
ステップＳ２２９４では特図抽選処理を行う。ここではまず、ＲＡＭ３０８に設けられた特図の保留記憶部から、最も過去に格納した始動情報である１セット分の乱数（特図当選乱数、大当り用特図乱数、小当り用特図乱数、ハズレ用特図乱数、および特図変動時間決定用乱数）を取り出し、その保留記憶部にまだ格納されている始動情報（乱数のセット）を、今記憶されている領域から隣の領域に移し替える。すなわち、最も過去に格納した始動情報を特図の保留記憶部から取り出し、さらに特図の保留記憶部に始動情報が格納されていれば、Ｎ番目に古い始動情報を特図２の保留記憶部におけるＮ−１番目に古い始動情報として設定したことになる。また、ＲＡＭ３０８に記憶している保留数を１減算する。ＲＡＭ３０８の特図の保留記憶部から１セット分の乱数（特図当選乱数、大当り用特図乱数、小当り用特図乱数、ハズレ用特図乱数、および特図変動時間決定用乱数）を取り出す処理を行う主制御部３００のＣＰＵ３０４が、始動情報取得手段の一例に相当する。
【０７０８】
図９４（ａ）は特図抽選テーブルを示す図である。このテーブルは、主制御部３００のＲＯＭ３０６に記憶されている。
【０７０９】
主制御部３００のＣＰＵ３０４は、ＲＡＭ３０８の保留記憶部から始動情報を取り出すと、確変フラグを参照し、確変フラグがオンであれば確率変動中（特図高確率状態）であるため、取得した特図当選乱数から確率変動中の特図大当り当選データを引き、キャリーが発生した場合（特図当選乱数よりも特図当選データの値が大きい場合）は特図大当りに当選とし、キャリーが発生しなかった場合は特図大当りには不当選になる。すなわち、特図大当り当選乱数範囲は０〜１２４になる。確率変動中では、特図当選乱数の元になる乱数は、図７７に示す乱数生成回路３１８のチャンネルＣＨ２から出力される。このチャンネルＣＨ２には、図９０に示す乱数生成回路初期設定処理における乱数生成範囲の設定（ステップＳ１０５３ａ）において０〜４９９９の乱数生成範囲が設定されており、確率変動中の特図当選乱数の取り得る範囲は０〜４９９９になる。したがって、確率変動中における特図大当りの当選確率は１／４０になる。
【０７１０】
一方、確変フラグがオフであれば非確率変動中（特図低確率状態）であるため、取得した特図当選乱数から、確率変動中のデータと同じ非確率変動中の特図大当り当選データを引き、キャリーが発生した場合（特図当選乱数よりも特図当選データの値が大きい場合）は特図大当りに当選とし、キャリーが発生しなかった場合は特図大当りには不当選になる。すなわち、非確率変動中でも特図大当り当選乱数範囲は０〜１２４になる。非確率変動中では、特図当選乱数の元になる乱数は、図７７に示す乱数生成回路３１８のチャンネルＣＨ１から出力される。このチャンネルＣＨ１には、乱数生成範囲の設定（ステップＳ１０５３ａ）において０〜４９９９９の乱数生成範囲が設定されており、非確率変動中の特図当選乱数の取り得る範囲は０〜４９９９９になる。したがって、非確率変動中における特図大当りの当選確率は１／４００になる。
【０７１１】
本実施形態では、特図当選乱数の取り得る範囲（乱数生成範囲）を、デフォルトの０〜６５５３５から０〜４９９９９に制限することで大当り確率を、きりのよい１／４００にすることができる。また、特図大当り当選データを、確率変動中と非確率変動中で同じ値にすることができる。乱数生成範囲を制限せずに確率を決定することは開発工数の増大を招くとともに誤った確率設計の原因となってしまう場合がある。特に、一の契機に基づいて複数回の抽選を行う場合に煩雑さはより顕著になってしまう。よって、乱数生成範囲を制限することは開発工数を削減するとともに、抽選処理の安定化を図ることができるといえる。また、特図大当り当選データを、確率変動中と非確率変動中で共通化することも、開発工数を削減するとともに、抽選処理の安定化を図ることができるといえる。
【０７１２】
図９４（ａ）では、特図大当りの抽選テーブルしか示していないが、特図小当りの当選データとして所定の値が用意されている。主制御部３００のＣＰＵ３０４は、取得した特図当選乱数から特図大当り当選データを引き、キャリーが発生しなかった場合（特図当選乱数よりも特図当選データの値が小さい場合）には、今度は、特図大当り当選データを引いた値から特図小当り当選データを引き、ここでキャリーが発生した場合（特図当選乱数よりも特図小当り当選データの値が大きい場合）は特図小当りに当選とし、ここでもキャリーが発生しなかった場合はハズレになる。なお、ハズレの当選データを別途設けておいてもよい。こうして、特図の「大当り」、「小当り」、「ハズレ」が判定され、判定結果を特図当否判定結果として得る。なお、保留している特図変動遊技の数は、ＲＡＭ３０８に設けた特図保留数記憶領域に記憶するようにしており、ステップＳ２２９４を実行するたびに、保留している特図変動遊技の数から１を減算した値を、この特図保留数記憶領域に記憶し直すようにしている。
【０７１３】
次いで、図９３に示す特図関連抽選処理では、特図当否判定結果に基づいて特図の停止図柄をソフトウェア乱数を用いて抽選する（ステップＳ２２９５）。図９４（ｂ）は、停止図柄抽選テーブルを示す図である。このテーブルも、主制御部３００のＲＯＭ３０６に記憶されている。この停止図柄抽選テーブルは、当否判定結果ごとに特図の停止図柄態様（図５（ａ）参照）に対応した図柄当選データが規定されている。また、同図（ｂ）には、当選確率も示されている。
【０７１４】
主制御部３００のＣＰＵ３０４は、当否判定結果が大当りの場合であれば、ＲＡＭ３０８の保留記憶部から先に取得した１セット分の乱数のうちの大当り用特図乱数（取り得る数値範囲は０〜９９）から特図Ａ、特図Ｂ、・・・特図Ｆの順序で各停止図柄に対応した図柄当選データを徐々に減算し、キャリーが発生した場合の停止図柄を特図決定結果とする。また、当否判定結果が小当りの場合であれば、ＲＡＭ３０８の保留記憶部から先に取得した１セット分の乱数のうちの小当り用特図乱数（取り得る数値範囲は０〜９９）から特図Ｇの図柄当選データを引き、キャリーが発生した場合は「特図Ｇ」に当選とし、キャリーが発生しなかった場合には、特図Ｇの図柄当選データを引いた値からさらに特図Ｈの図柄当選データを引き、ここではキャリーが発生するため「特図Ｈ」に当選とする。なお、特図Ｈの図柄当選データを引く前に、「特図Ｈ」に当選したと判定してもよい。このようにして、当否判定結果が小当りの場合には、特図決定結果として「特図Ｇ」または「特図Ｈ」を決定する。さらに、当否判定結果がハズレの場合であれば、ＲＡＭ３０８の保留記憶部から先に取得した１セット分の乱数のうちのハズレ用特図乱数（取り得る数値範囲は０〜９９）から特図Ｉの図柄当選データを引き、キャリーが発生した場合は「特図Ｉ」に当選とし、キャリーが発生しなかった場合には、特図Ｉの図柄当選データを引いた値からさらに特図Ｊの図柄当選データを引き、ここではキャリーが発生するため「特図Ｊ」に当選とする。なおここでも、特図Ｊの図柄当選データを引く前に、「特図Ｊ」に当選したと判定してもよい。このようにして、当否判定結果がハズレの場合には、特図決定結果として「特図Ｉ」または「特図Ｊ」を決定する。なお、第１副制御部４００では、ここで決定された特図決定結果に応じた装飾図柄の組合せである停止図柄態様を決定する。
【０７１５】
また、ＲＡＭ３０８の保留記憶部から先に取得した１セット分の乱数のうちの特図変動時間決定用乱数（取り得る数値範囲は０〜２５５）を取得し、取得した特図変動時間決定用乱数を用いた抽選で、、特図決定結果に基づいて、複数の変動時間のうちから特図表示装置（２１２，２１４）に特図を変動表示する時間（特図変動時間）を１つ選択する。なお、第１副制御部４００では、ここで決定された特図変動時間に応じた装飾図柄表示装置２０８の演出態様を決定する。特図変動時間決定用乱数値を用いた抽選で複数の変動時間のうちから特図変動時間を１つ選択する主制御部３００のＣＰＵ３０４も、抽選手段の一例に相当する。ここで、特図変動時間の抽選処理は、特図の大当りか否かを抽選する当否判定とは異なり、特図の図柄を決定する抽選とも異なる、演出に関する抽選処理に相当する。すなわち、制御状態の変更とは無関係であって、賞球の払出にも無関係な抽選処理である。
【０７１６】
ステップＳ２２９６では、ＲＡＭ３０８の保留記憶部から先に取得した１セット分の乱数を消去し、この特図関連抽選処理は終了になる。ステップＳ２２９の特図関連抽選処理に続いて行われるステップＳ２３１では、コマンド設定送信処理を行い、各種のコマンドが第１副制御部４００に送信される。なお、第１副制御部４００に送信する出力予定情報は本実施形態では１６ビットで構成しており、ビット１５はストローブ情報（オンの場合、データをセットしていることを示す）、ビット１１〜１４はコマンド種別（本実施形態では、基本コマンド、図柄変動開始コマンド、図柄変動停止コマンド、入賞演出開始コマンド、終了演出開始コマンド、当りラウンド数指定コマンド、復電コマンド、ＲＡＭクリアコマンド、特図保留増加コマンド、普図保留増加コマンドなどコマンドの種類を特定可能な情報）、ビット０〜１０はコマンドデータ（コマンド種別に対応する所定の情報）で構成している。
【０７１７】
具体的には、ストローブ情報は上述のコマンド送信処理でオン、オフするようにしている。また、コマンド種別が図柄変動開始コマンドの場合であればコマンドデータに、特図停止図柄を表す情報、制御状態を表す情報（時短フラグおよび確変フラグの設定状態を表す情報）、特図変動時間を表す情報などを示す情報を含み、図柄変動停止コマンドの場合であれば、特図停止図柄を表す情報（特図決定結果）、制御状態を表す情報などを含み、入賞演出開始コマンドおよび終了演出開始コマンドの場合であれば、制御状態を表す情報などを含み、当りラウンド数指定コマンドの場合であれば制御状態を表す情報、当りラウンド数などを含むようにしている。コマンド種別が基本コマンドを示す場合は、コマンドデータにデバイス情報、第１特図始動口２３０への入賞の有無、第２特図始動口２３２への入賞の有無、可変入賞口２３４への入賞の有無などを含む。
【０７１８】
また、上述の一般コマンド回転開始設定送信処理では、コマンドデータにＲＡＭ３０８に記憶している、特図停止図柄を表す情報（特図決定結果）、制御状態を表す情報、特図変動時間を表す情報、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。
【０７１９】
上述の一般コマンド回転停止設定送信処理では、コマンドデータにＲＡＭ３０８に記憶している、特図停止図柄を表す情報（特図決定結果）、制御状態を表す情報などを示す情報を設定する。上述の一般コマンド入賞演出開始設定送信処理では、コマンドデータに、ＲＡＭ３０８に記憶している、入賞演出期間中に装飾図柄表示装置２０８・各種ランプ４１８・スピーカ１２０に出力する演出制御情報、制御状態を表す情報、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。入演出開始コマンドを受信した第１副制御部４００は、その入演出開始コマンドに基づいて第２副制御部５００に入賞演出制御コマンドを送信する。入賞演出制御コマンドを受信した第２副制御部５００は、装飾図柄表示装置２０８に、大当り遊技が開始されることを遊技者に報知する画像を所定のオープニング演出期間（例えば３秒間）表示させ、大当り遊技が開始する。
【０７２０】
上述の一般コマンド終了演出開始設定送信処理では、コマンドデータに、ＲＡＭ３０８に記憶している、演出待機期間中に装飾図柄表示装置２０８・各種ランプ４１８・スピーカ１２０に出力する演出制御情報、制御状態を表す情報、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。終了演出開始コマンドを受信した第１副制御部４００は、その終了演出開始コマンドに基づいて第２副制御部５００に終了演出制御コマンドを送信する。終了演出制御コマンドを受信した第２副制御部５００は、装飾図柄表示装置２０８に大当りを終了することを遊技者に報知する画像を所定の終了演出期間（例えば３秒間）表示させ、大当り遊技が終了する。
【０７２１】
上述の一般コマンド大入賞口開放設定送信処理では、コマンドデータに、ＲＡＭ３０８に記憶している当りラウンド数、現在のラウンド数、制御状態を表す情報などを示す情報を設定する。上述の一般コマンド大入賞口閉鎖設定送信処理では、コマンドデータに、ＲＡＭ３０８に記憶している現在のラウンド数、制御状態を表す情報、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。
【０７２２】
また、このステップＳ２３１では一般コマンド特図保留増加処理も行われる。この一般コマンド特図保留増加処理では、特図保留増加コマンドのコマンドデータにＲＡＭ３０８の送信用情報記憶領域に記憶している特図識別情報（特図１または特図２を示す情報）、制御状態を表す情報、事前判定した特図１あるいは特図２の情報を設定する。
【０７２３】
さらに、このステップＳ２３１では一般コマンド普図保留増加処理も行われる。この一般コマンド普図保留増加処理では、普図保留増加コマンドのコマンドデータに、制御状態を表す情報等を設定する。また、主制御部３００から第１副制御部４００には、普図絡みのコマンドとして、普図の変動表示が開始した（する）ことを表す普図変動開始コマンドも送信される。なお、主制御部３００から第１副制御部４００には、普図の変動表示が停止した（する）ことを表す普図変動停止コマンドや、一対の羽根部材２３２１が開放を開始した（する）ことを表す電チュー開放開始コマンドや、一対の羽根部材２３２１が閉鎖した（する）ことを表す電チュー閉鎖コマンドを送信するようにしてもよい。
【０７２４】
第１副制御部４００では、受信した出力予定情報に含まれるコマンド種別により、主制御部３００における遊技制御の変化に応じた演出制御の決定が可能になるとともに、出力予定情報に含まれているコマンドデータの情報に基づいて、演出制御内容を決定することができるようになる。また、第１副制御部４００では、コマンドに含まれている当りラウンド数と現在のラウンド数に基づき、当り全ラウンドが終了するまでの残りラウンド数を取得する。
【０７２５】
また、このコマンド設定送信処理では、図４に示す払出制御部６００にもコマンドを送信する。払出制御部６００に出力する出力予定情報および払出要求情報は１バイトで構成しており、ビット７にストローブ情報（オンの場合、データをセットしていることを示す）、ビット６に電源投入情報（オンの場合、電源投入後一回目のコマンド送信であることを示す）、ビット４〜５に暗号化のための今回加工種別（０〜３）、およびビット０〜３に暗号化加工後の払出要求数を示すようにしている。
【０７２６】
次に、図９１に示す主制御部タイマ割込処理では、外部出力信号設定処理（ステップＳ２３３）を行う。この外部出力信号設定処理では、ＲＡＭ３０８に記憶している遊技情報を、情報出力回路３３６を介してパチンコ機１００とは別体の情報入力回路３５０に出力する。ステップＳ２３５では、デバイス監視処理を行う。
【０７２７】
図９５は、デバイス監視処理の流れを示すフローチャートである。まず、ステップＳ２３５ａでは、内部情報レジスタ３１０１の情報を取得する。なお、このステップＳ２３５ａはタイマ割込み毎に実行されるため、内部情報レジスタ３１０１の情報はタイマ割込み毎に取得されることになる。
【０７２８】
ステップＳ２３５ｂでは、ステップＳ２３５ａで取得した情報に基づいて、乱数生成回路３１８に異常があるか否かを判定する。なお、ここでの乱数生成回路の異常とは、周波数監視回路３１８２の異常および乱数監視回路３１８４の異常の双方を指す。ここで、異常があると判定された場合にはステップＳ２３５ｃに進み、異常があると判定されなかった場合にはステップＳ２３５ｅに進む。
【０７２９】
ステップＳ２３５ｃでは、乱数生成回路異常フラグをオンに設定する。なお、このフラグはＲＡＭ３０８内に記憶されている。より具体的には、周波数監視回路３１８２の異常を示すフラグおよび乱数監視回路３１８４の異常を示すフラグがある。以下では、これらのフラグを総称して乱数生成回路異常フラグと称する場合がある。
【０７３０】
続いて実行されるステップＳ２３５ｄでは、乱数生成回路異常フラグ設定コマンドの送信準備が実行され、ステップＳ２３５ｅに進む。なお、この乱数生成回路異常フラグ設定コマンドは、周波数監視回路３１８２の異常か、乱数監視回路３１８４の異常か識別可能
な情報を含むコマンドである。
【０７３１】
ステップＳ２３５ｅでは、その他デバイス監視処理が実行される。例えば、上述のステップ２０５において信号状態記憶領域に記憶した各種センサの信号状態を読み出して、ガラス枠開放エラーの有無または下皿満タンエラーの有無などを監視し、ガラス枠開放エラーまたは下皿満タンエラーを検出した場合に、第１副制御部４００に送信すべき送信情報に、ガラス枠開放エラーの有無または下皿満タンエラーの有無を示すデバイス情報を設定する。また、図４に示す各種ソレノイド３３２を駆動して第２特図始動口２３２や、可変入賞口２３４の開閉を制御したり、駆動回路３２４、３２６、３３０を介して普通図柄表示装置２１０、第１特図表示装置２１２、第２特図表示装置２１４、各種状態表示部３２８などに出力する表示データを、Ｉ／Ｏ３１０の出力ポートに設定する。また、払出要求数送信処理（ステップＳ２１９）で設定した出力予定情報をＩ／Ｏ３１０の出力ポートを介して第１副制御部４００に出力する。これらの処理が終了すると、このステップＳ２３５のデバイス監視処理は終了になる。
【０７３２】
続いて実行されるステップＳ２３７では、電源の遮断（電断）を検出したか否かを判定するために、低電圧信号がオンであるか否かを判定する。そして、低電圧信号がオフの場合（電源の遮断を検知していない場合）にはステップＳ２３９に進み、低電圧信号がオンの場合（電源の遮断を検知した場合）にはステップＳ２４１に進む。
【０７３３】
ステップＳ２３９では、タイマ割込終了処理を行う。このタイマ割込終了処理では、ステップＳ２０１で一時的に退避した各レジスタの値を元の各レジスタに設定したり、割り込み許可の設定などを行い、その後、図８８に示す主制御部メイン処理に復帰する。一方、ステップＳ２４１では、復電時に電断時の状態に復帰するための電断時処理を行う。
【０７３４】
図９６は、主制御部における電断時処理の流れを示すフローチャートである。この電断時処理では、まず、スタックポインタを復帰データとしてＲＡＭ３０８の所定の領域に退避し（ステップＳ２４３１）、次いで、ＲＡＭ３０８に設けた電源ステータス記憶領域に記憶した電源ステータスをサスペンドを示す情報に更新する（ステップＳ２４３２）。続いて、ＲＡＭ３０８の所定の領域（例えば全ての領域）に記憶している１バイトデータを初期値が０である１バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果をＲＡＭ３０８に設定する（ステップＳ２４３３）。最後に、ＲＡＭ３０８へのアクセスを禁止に設定し（ステップＳ２４３３）、この電断時処理は終了になり、やがてパチンコ機１００は電断する。なお、電圧が完全に低下する前に復帰した場合には、図７５に示すリセット制御回路３１４内に設けられたＷＤＴ３１４１がタイムアウトすることによってリセット制御回路３１４によりリセットがかかり設定されたリセット動作（ここではシステムリセット）が実行される。  以上説明した主制御部タイマ割込み処理も、主処理の一例に相当する。
【０７３５】
続いて、図９１に示す入賞受付処理（ステップＳ２１７）のうち、特図当選乱数および普図当選乱数を取得する処理について説明する。図９６は、ステップＳ２１７における入賞受付処理のうち、特図当選乱数および普図当選乱数を取得する処理の流れを示した図である。
【０７３６】
ステップＳ２１７ａでは、乱数生成回路異常フラグがオンに設定されているか否かを判定する。このフラグは、図９５のステップＳ２３５ｃで設定されるフラグであり、乱数更新用のクロックの周波数に異常があった場合や、図７７に示す乱数更新回路３１８３で更新される乱数が正常に更新されなかった場合等に、対応するフラグがオンに設定される。このフラグがオンに設定されている場合には、この入賞受付処理は終了になり、異常がなかった場合にはステップＳ２１７ｂに進む。
【０７３７】
ステップＳ２１７ｂでは、第１特図始動口２３０に入賞したことを表す特図１の入球信号があり、且つ、保留している特図変動遊技の数が所定数（本実施形態では４）未満であるか否かを判定し、否定的な場合にはステップＳ２１７ｆへ進み、肯定的な場合にはステップＳ２１７ｃに進む。ステップＳ２１７ｃでは、ＲＡＭ３０８に用意された確変フラグを参照し、確率変動中（特図高確率状態）か否かを判定する。確変フラグがオフに設定されていれば、非確率変動中（特図低確率状態）であり、ステップＳ２１７ｄが実行される。このステップＳ２１７ｄでは、乱数生成回路３１８のチャンネルＣＨ１の乱数レジスタから乱数を取得する。本実施形態では乱数をラッチする契機となる入球信号とは別に、ＣＰＵに同様の信号が送られ、ＣＰＵはその信号を受信したことに基づいて所定のチャンネル（ここではＣＨ１）における信号に対応する乱数レジスタからラッチされている乱数を取得する。ＣＰＵ３０４は、取得した乱数にＲレジスタの値を加算し、さらに１を加えた値を特図１当選乱数として得、ステップＳ２１７ｆに進む。なお、ＣＰＵ３０４は、図２３に示すステップＳ１０５３ａにおいて設定された乱数生成範囲を認識しており、その乱数生成範囲に基づいて加算処理を行う。すなわち、加算した値が乱数生成範囲の最大値を超える場合には当該乱数生成範囲の最小値に残りの値を加算する。
【０７３８】
一方、確変フラグがオンに設定されていれば、確率変動中であり、ステップＳ２１７ｅが実行される。このステップＳ２１７ｅでは、乱数生成回路３１８のチャンネルＣＨ２の乱数レジスタから乱数を取得し、ステップＳ２１７ｄと同様に、ＣＰＵ３０４は、取得した乱数にＲレジスタの値を加算し、さらに１を加えた値を特図１当選乱数として得、ステップＳ２１７ｆに進む。
【０７３９】
ステップＳ２１７ｆでは、第２特図始動口２３２に入賞したことを表す特図２の入球信号があり、且つ、保留している特図変動遊技の数が所定数（本実施形態では４）未満であるか否かを判定し、否定的な場合にはステップＳ２１７ｊへ進み、肯定的な場合にはステップＳ２１７ｇに進む。ステップＳ２１７ｇでも、ステップＳ２１７ｃと同様に、ＲＡＭ３０８に用意された確変フラグを参照し、確変フラグがオフに設定されていれば（非確率変動中であれば）、乱数生成回路３１８のチャンネルＣＨ１の乱数レジスタから乱数を取得し、ステップＳ２１７ｄと同様に、ＣＰＵ３０４は、取得した乱数にＲレジスタの値を加算し、さらに１を加えた値を、ここでは特図２当選乱数として得（ステップＳ２１７ｈ）、ステップＳ２１７ｊに進む。一方、確変フラグがオンに設定されていれば（確率変動中であれば）、乱数生成回路３１８のチャンネルＣＨ２の乱数レジスタから乱数を取得し、同じくステップＳ２１７ｄと同様に、ＣＰＵ３０４は、取得した乱数にＲレジスタの値を加算し、さらに１を加えた値を特図２当選乱数として得（ステップＳ２１７ｉ）、ステップＳ２１７ｊに進む。
【０７４０】
ステップＳ２１７ｊでは、普図始動口２２８に入賞したことを表す普図の入球信号があり、且つ、保留している普図変動遊技の数が所定数（本実施形態では２）未満であるか否かを判定し、否定的な場合には入賞受付処理は終了になり、肯定的な場合にはステップＳ２１７ｋに進む。ステップＳ２１７ｋでは、ＲＡＭ３０８に用意された時短フラグを参照し、時短フラグがオフに設定されていれば、普図低確率状態（非電サポ中）であり、ステップＳ２１７ｌが実行される。ステップＳ２１７ｌでは、乱数生成回路３１８のチャンネルＣＨ３の乱数レジスタから普図当選乱数として乱数を取得し、この入賞受付処理は終了になる。一方、時短フラグがオンに設定されていれば、普図高確率状態（電サポ中）であり、ステップＳ２１７ｍが実行される。ステップＳ２１７ｍでは、乱数生成回路３１８のチャンネルＣＨ４の乱数レジスタから普図当選乱数として乱数を取得し、入賞受付処理は終了になる。
【０７４１】
ここで、上記説明した内容を踏まえて、遊技台への電圧供給が低下した場合の動作について説明する。例えば大当たり中の状態で停電などによって電源が切られた場合、再度電源投入によって遊技台が初期状態になると、遊技者にとって著しく不利益な状態になる。このような事態にならないよう、コンデンサに蓄えられた電力により遊技台の状態を保持する電断時処理（図９１のステップＳ２４１）が実行される。この電断時処理は、電源が切られた場合の他、静電気などの要因により供給電圧が一時的に低下した場合にも実行される。以下、電源が切られた場合（以下、電源オフと称する）の動作と、供給電圧が一時的に低下した場合（以下、瞬断と称する）の動作について、図９７を用いて説明する。同図（ａ）は、電源オフの場合の動作を示す図であり、（ｂ）は、瞬断の場合の動作を示す図である。
【０７４２】
電源が切られた場合、電圧が供給されなくなる（電断発生）が、すぐに電圧は０にはならず、コンデンサに蓄えられた電力により供給電圧が徐々に降下する。供給電圧が所定の電圧（本実施形態では９Ｖ）まで効果すると電圧監視回路３３８から低電圧信号がＣＰＵ３０４に送信される。この信号を受信したことにより、主制御部タイマ割込み処理のステップＳ２３７により電断が発生したと判定され、ステップＳ２４１の電断時処理が実行される。図９７（ａ）には、電断が発生してから供給電圧が９Ｖに降下するまで通常処理が実行され、供給電圧が９Ｖになった時点で電断時処理が開始されていることが示されている。この電断時処理により、ＲＡＭ３０８の内部に遊技台の状態を示すデータが記憶される。なお、本実施形態では、この電断時処理の実行に必要な時間（主制御部電断時処理猶予時間）を十分確保することができるコンデンサが備えられている。その後、電断時処理が終了すると、そのまま待機状態になる。その後電源の供給が再開されない場合、電圧が０に落ちて遊技台の動作が停止する。
【０７４３】
一方、瞬断の場合にも、電圧監視回路３３８から低電圧信号がＣＰＵ３０４に送信されることにより、上記電断時処理が実行された後、そのまま待機状態になる。図９７（ｂ）には、一時的な電圧降下により、電断時処理が開始されていることが示されている。ここで、電圧が動作電圧まで回復しても、待機状態が継続する。この待機状態が継続していると、主制御部３００のリセット制御回路３１４のＷＤＴ３１４１がリスタートされず（図９１のステップＳ２０３が実行されない）、ＷＤＴ３１４１がタイムアウトする。このことによりリセット制御回路３１４はシステムリセット信号を出力する。その後、図８８に示す主制御部メイン処理が再開すると、電断時処理で記憶されていたデータに基づいてステップＳ１０９のデータ書き戻し処理を含む復帰処理（ステップＳ１０９〜ステップＳ１１１）が実行される。図９７（ｂ）には、ＷＤＴ３１４１のタイムアウトによるリセット信号が送信されたことにより、待機状態から復帰処理（リセット処理）に移っていることが示されている。この復帰処理により遊技台の状態が電断時処理前の状態に復帰する。なお、ここで、電断時処理で記憶されていたデータに不具合があった場合は、電断時処理前の状態に復帰できないと判定され、ＲＡＭ３０８の内容がクリアされる（図８８のステップＳ１１３）。
【０７４４】
次に、本実施形態の乱数生成回路３１８により、乱数の生成範囲を設定することの効果について説明し、その後問題点について説明する。上述したように本実施形態の遊技台が有する乱数生成回路３１８では、抽選結果の基になる乱数の生成範囲を設定することができる。この機能を利用して、遊技状態の設定が容易になる。
【０７４５】
まず、乱数生成範囲が０〜６５５３５の場合について説明する。例えば、これらの乱数が当たりかハズレのいずれかに対応している場合に、当選確率が１／４００（０．２５％）になるように設計しようとしたとする。生成される乱数は６５５３６通りあるが、６５５３６の１／４００を計算すると１６３．８４となり、整数にならない。仮にこの数字に近い１６４通りの乱数を当たりに対応させた場合、厳密には１／４００の当選確率にならない。
【０７４６】
ここで、上記の乱数生成範囲が０〜４９９９９に設定されたとする。上記の場合と同様に当選確率が１／４００（０．２５％）になるようにするには、生成される乱数５００００通りの１／４００、すなわち１２５通りの値を当たりに対応させればよい。例えば、５００００通り乱数のうち０〜１２４までの値を当たりに対応させ、それ以外の１２５〜４９９９９の値をハズレに対応付けることで、当選確率を１／４００にすることができる。すなわち、当選確率が設計値通り（例えば１／４００）になるように、乱数生成範囲（例えば０〜４９９９９）および当たりに対応する乱数の範囲（例えば０〜１２４）をそれぞれ設定することができる。
【０７４７】
以上説明したように、乱数生成範囲を適切に設定することによって、所望の当選確率を設定することができる。これによって、例えば小当たりに対応する乱数生成範囲を除外して大当たりに対応する乱数生成範囲を残したり、あるいは大当たりに対応する乱数生成範囲の半分に該当する乱数が生成されないようにすることも可能である。特に図８２を用いて説明したような乱数生成範囲が設定できれば、最大値だけを設定する場合と比較して遊技台の設計が容易になる。このため、乱数生成範囲を設定することは、遊技台の設計において有用であると言える。
【０７４８】
次に、乱数生成範囲を異ならせることにより、当選確率を変更する方法について説明する。例えば、０〜４９９９９の乱数生成範囲のうち、０〜１２４までの値を当たりに対応させた状態から、乱数生成範囲の最大値を４９９９９から２４９に変更したとする。この場合、０〜１２４までの値が当たりに対応し、１２５〜２４９までの値がハズレに対応し、当選確率は１／２になる。すなわち、当たり又はハズレに対応する値を固定したまま乱数生成範囲だけを異ならせることにより、当選確率を容易に変更することができる。なお、上記説明では、よりわかり易くするために、当たりの範囲を偏らせた例について説明したが、当たりの範囲が偏っていなくてもよい。
【０７４９】
生成された乱数に基づいて当たりかハズレかを判定する方法として、これらの対応を定めたテーブルを用意しておき、これを使用する方法が考えられる。しかし、この方法で当選確率を変更しようとした場合、当選確率に対応するテーブルをそれぞれ用意しておき、遊技の状態に応じてこれらを使い分ける処理を実行させる必要がある。上記説明した方法では、当たり又はハズレに対応する値を定めたテーブルが一つですむため、メモリの容量負担が少なくて済む。当然のことながら、テーブルを切り替える処理は不要である。
【０７５０】
なお、本実施形態では、乱数生成範囲の異なる複数の乱数生成チャンネルを用意し、これらを使い分けることにより遊技中の当選確率を変更しているが、一つのチャンネルに対して適宜乱数生成範囲を変更する構成を用いて当選確率を変更させてもよい。また、本実施形態では、乱数を加工した上で抽選に用いる場合があるが、この場合、加工を考慮したうえで対応するテーブルを用意すればよい。
【０７５１】
ここで、図９８を用いて、乱数生成範囲が意図せずに変更されてしまった場合の問題について説明する。同図は、乱数生成範囲の問題点を示す図である。例えば、静電気等の要因によって上述した瞬断が生じ、その後復帰処理（ユーザリセット）が実行されたとする。この場合、乱数生成回路３１８の内部レジスタは、そのまま復帰処理以前の状態が維持される。ところが、電圧の変化によって内部レジスタの情報が書き換わる可能性がある。これによって乱数生成範囲が意図せずに変更されると、当選確率が変わってしまうことになる。
【０７５２】
例えば、非確率変動状態において、図９８（ａ）の上段に示すように、０〜４９９９９の乱数生成範囲が設定されており、さらにこのうち０〜１２４（左下がりのハッチングで示す範囲）が当たりに対応する乱数であるとする。この状態で静電気等の要因が生じ、乱数生成範囲が０〜２５０になったとする。この場合、当選確率が１／４００から１／２になってしまうため、店側にとっては大きな損害になってしまう。
【０７５３】
また、確率変動状態において、図９８（ｂ）の上段に示すように、０〜４９９９の乱数生成範囲が設定されており、さらにこのうち０〜１２４（左下がりのハッチングで示す範囲）が当たりに対応する乱数であるとする。この状態で静電気等の要因が生じ、乱数生成範囲が０〜５９９９９になったとする。この場合、当選確率が１／４０から１／４８０になってしまうため、遊技者にとって著しく不利益になる。
【０７５４】
上記の例で説明したように、乱数が生成される数値範囲を任意の数値範囲に制限する手法を用いて抽選処理を行うと、何らかの異常で制限した数値範囲が変化した場合に抽選処理の不安定化を招いてしまうという問題が生じる。
【０７５５】
このような事態を防止するため、本実施形態の遊技台では、図９０のステップＳ１０５３ａにおいて、乱数生成範囲を復帰処理の要因が発生した直前の状態に設定し直す処理を実行させる。このように再度乱数生成範囲を設定し直すことによって、上記のような問題が生じないようにすることができる。すなわち、乱数が生成される数値範囲を任意の数値範囲に制限する手法を用いて抽選処理を行いつつも、抽選処理の不安定化を招くことを抑止することができる。
【０７５６】
なお、本実施形態では、遊技台の起動時に乱数生成範囲が設定されるため、復帰処理の要因が発生した直前の状態が、初期状態と同じであるが、例えば、遊技中に乱数生成範囲を変更可能な構成の場合には、直前の状態に戻す処理が実行されればよい。
【０７５７】
また、本実施形態のように、乱数生成範囲が設定されていたチャンネルに対しては乱数生成範囲を設定し直すとともに、乱数生成範囲が設定されていないチャンネルに対しては乱数生成範囲を設定し直さない構成の場合、初期化されるチャンネルと初期化されないチャンネルが存在することになる。この場合、基本回路３０２の外部からチャンネルが初期化されたか否かがわからないため、不正を防止する効果がある。
【０７５８】
さらに、本実施形態の遊技台では、図９０のステップＳ１０５３ｂにおいて、乱数レジスタ３１８８をラッチすることを許容する許容状態にしている。このようにすることで、乱数レジスタ３１８８にラッチされている乱数に異常があった場合に、この乱数が使用される頻度を下げることができる。この際乱数ラッチフラグレジスタ３１８９の内容は、乱数レジスタ３１８８が乱数をラッチすることが可能な状態であることを示す情報に書き換えられる。なお、本実施形態では、ユーザプログラムによって、乱数レジスタ３１８８を許容状態にすることと、乱数生成範囲の設定を同時に実行している（図８９参照）が、ハ ードウェアを用いて許容状態にするようにしてもよい。なお、本実施形態の遊技台では乱数レジスタ３１８８が許容状態になっても新たに乱数をラッチするまでは乱数は残った状態になるが、可能であれば乱数レジスタ３１８８の値を所定の値に設定（例えば０に設定）するようにしてもよい。この場合には、異常の可能性がある乱数を使用させないようにすることができる。
【０７５９】
上記説明した再設定は、ＷＤＴ３１４１によるユーザリセットが実行された場合には、そのユーザリセットが実行されてから、駆動電圧の判定（図８７のステップＳ１０３）を経て実行される（図８７のステップＳ１０５３）この判定処理に要する時間は電圧の供給具合に依存するため、一定ではない。このため再設定を反映した乱数が出力され始めるタイミングにランダム性を持たせることができ、不正防止に効果がある。なお上述した、ＣＰＵ３０４からの更新命令が来た時点で乱数の最大値を更新する構成の場合にも、同様の効果がある。
【０７６０】
なお、上記の説明では、電圧の変化によって生じる問題およびその対処法についての一例について説明したが、他にも例えば乱数生成回路３１８のスタート値選択回路３１８３ｂ内の値が書き換わってしまう可能性もある。この場合、本来生成されるはずのない値が、乱数更新回路３１８３から出力されてしまう虞がある。このような問題に対しても、上記の乱数生成範囲の例と同様に、スタート値選択回路３１８３ｂ内の値を復帰処理の要因が発生した直前の状態に設定し直す処理を実行させることにより、上記のような問題が生じないようにすることができる。また、乱数生成範囲に応じて、別途スタート値選択回路３１８３ｂ内の値を設定し直すようにしてもよい。すなわち、乱数生成回路３１８で設定可能な値を必要に応じて適切に設定し直す処理を実行させることにより、電圧の変化により異常な動作を起こさないようにすることができる。
【０７６１】
また、電圧の変化以外にも、例えば、指定エリア外走行によって予期せぬ動作が生じた場合にも、上記のような問題が生じる虞がある。特に、指定エリア外走行の場合は、プログラムミス等によって同じ状況が再現される可能性が高く、電圧が変化した場合よりも不正をしやすくなる虞がある。従って、本実施形態では、指定エリア外走行が生じた場合でも、図９０のステップＳ１０５３ａおよびステップＳ１０５３ｂによる再設定を行うようにしている。
【０７６２】
ここで、上記説明を踏まえて、図８８の主制御部メイン処理におけるＷＤＴ３１４１の起動開始のタイミング（ステップＳ１１１、ステップＳ１１５）について説明を補足する。通常ＷＤＴでは、プログラムの実行とは独立してカウントアップが行われている。この構成により、プログラムの実行に何らかの問題があっても、これに影響されずにリセット動作（ユーザリセット）を実行することができる。このため、ＷＤＴは初期設定時に起動（再起動）される必要がある。しかし、この起動タイミングによっては、問題が生じることがある。この問題について、図８８におけるステップＳ１０１の初期設定１の直後にＷＤＴを起動する場合を例に挙げて説明する。
【０７６３】
ユーザリセットによってＲＡＭ３０８に復帰用のデータが記憶されている状態で、主制御部メイン処理が開始されたとする。まず、ステップＳ１０１によって初期設定１が実行され、次いでＷＤＴが起動する。次に、駆動電圧が十分確保されるまでステップＳ１０３による待機処理が実行される。
【０７６４】
例えば供給電圧の不安定に起因して上記のユーザリセットが実行された場合等に、この待機処理の実行時間が長くなる場合がある。ここで待機処理に時間がかかると、後のステ
ップＳ１０７やステップＳ１０９の実行中にＷＤＴがタイムアウトして、再度ユーザリセットが実行されてしまう場合がある。この場合、再度主制御部メイン処理が最初から実行されるため、ＲＡＭ３０８に記憶されている復帰用のデータがレジスタに戻されるまでの処理時間が長くなってしまう。
【０７６５】
さらに、例えばステップＳ１０９において、ＲＡＭ３０８のデータをレジスタに戻すとともに、ＲＡＭ３０８のデータを消去する処理が実行されている場合には、ＲＡＭ３０８のデータの一部が消去されている状態でユーザリセットが実行される可能性もある。この場合には、再度主制御部メイン処理が最初から実行されても、ＲＡＭ３０８の復帰用のデータは不完全なものであり、ステップＳ１０７で復帰可能と判定されないことになる。仮にステップＳ１０７で復帰可能と判定されてもステップＳ１０９のデータ書き戻し処理で完全にユーザリセット前の状態に復帰させることができない。
【０７６６】
このような問題を回避するため、本実施形態では、ＷＤＴ３１４１によるタイムアウトではシステムリセットを実行するようにしているが、本実施形態ではさらに、ＷＤＴ３１４１によるタイムアウトでユーザリセットを実行してもよいように、駆動電圧の判定後から主制御部タイマ割込み処理が許可されるまでの間にＷＤＴ３１４１を起動するように構成している（ステップＳ１１１、ステップＳ１１５）。なお、上記構成は一例であり、ユーザリセット後に主制御部メイン処理が開始されてから、主制御部タイマ割込み処理が許可されるまでの間にＷＤＴ３１４１がタイムアウトしないように、ＷＤＴ３１４１を起動させるようにすることが好ましい。また、ユーザリセットが行われてから、主制御部によって遊技の進行が開始される（本実施形態では、主制御部メイン処理のステップＳ１１７〜ステップＳ１１９が開始され、かつ、主制御部タイマ割込み処理が開始される）までの間に、ＷＤＴ３１４１がタイムアウトしないように、ＷＤＴ３１４１を起動させることが好ましい。特に、ユーザリセット後に遊技を復帰させるための処理（遊技の進行を開始可能にするための処理）に、液晶画像表示装置（装飾図柄表示装置）の初期設定処理を実行させるための待機処理が含まれる場合には、上記の問題がより生じやすくなるため、上記説明したタイミングでのＷＤＴ３１４１の起動がより効果的である。さらに、主制御部タイマ割込み処理の最初の処理において、ＷＤＴ３１４１を起動させるようにしても、上記の問題を回避することができる。なお、上記説明ではユーザリセットが実行された場合を例に説明しているが、システムリセットが実行された場合であっても同様である。
【０７６７】
ここで、図９９を用いて、図７９で説明した乱数更新回路３１８３の変形例について説明する。同図は、図７９で説明した乱数更新回路３１８３の変形例を示す図である。この図９９（ａ）に示す乱数更新回路３１８３ｎは、図７９で説明した乱数更新回路３１８３に、乱数列変更回路３１８３ｄを加えたものである。
【０７６８】
乱数列変更回路３１８３ｄは、予め内部に複数の乱数テーブルが設けられている。図９９（ｂ）には、６５５３６個の乱数の並びを予め定めた複数の乱数列が示されている。これらの複数の乱数列を使用する際には、同じ乱数列を継続して使用するか、一つの乱数列を一周した時点で別の乱数列に変更するかを設定することができる。さらに、別の乱数列に変更する場合には、指示がなくても自動的に変更を行うか、あるいはその都度変更を指示するか否かを設定することができる。なお、カウンタ回路３１８３ａから一巡信号を受けた時点で、一つの乱数列を一周したと判定される。
【０７６９】
乱数列変更回路３１８３ｄ内で使用する乱数列が決定されると、カウンタ回路３１８３ａから出力されるカウント値に従って、この乱数列から値が取り出される。この取り出された値が乱数として出力される。例えば図９９（ｂ）において、乱数列Ｂを使用することが決定した場合に、カウント値「５」が入力されると、乱数として「９８０６」が出力さ れる（図９９（ｂ）の太枠で示す部分参照）。
【０７７０】
ここで、最大値設定レジスタ３１８３ｃに最大値が設定された場合における処理の例について説明する。図８１では、最大値設定レジスタ３１８３ｃに設定された最大値に従ってカウント回路３１８３ａから出力される値の範囲が変更される例について説明した。なお、この図８１では、このカウント回路３１８３ａから出力される値をそのまま乱数として用いていた。ここでは、カウント回路３１８３ａから出力される値を乱数ではなくカウント値として用い、乱数列変更回路３１８３ｄに入力する。
【０７７１】
例えば、最大値が９９９９に設定された場合、０〜９９９９のカウント値がカウント回路３１８３ａから出力されることになる。ここで、乱数列変更回路３１８３ｄには、最大値設定レジスタ３１８３ｃから最大値データを取得させ、乱数列の値のうち最大値を超える値を削除して空いた部分を詰める処理を実行させる。この処理により０〜９９９９の値をランダムに並べた乱数列が用意されることになる。この乱数列を用いて上記カウント値に対応する値を乱数として出力させると、乱数生成範囲を０〜９９９９とする乱数を出力させることができる。なお、上記方法は一例であり、例えば、カウント値に対応する値を乱数列から参照したときに最大値を超えている場合には以降の値を順次参照し、参照された値が最大値を超えない値であればその値を出力する、というように他の方法を用いてもよい。
【０７７２】
ここで、上記の乱数更新回路３１８３ｎを用いた場合における、乱数監視回路３１８４における異常の検出例について説明する。この場合には、１回の乱数の更新前後においてカウンタ回路３１８３ａから出力されるカウント値の値を比較し、同じカウント値が出力されていないか否かをチェックする。仮に同じカウント値が出力された場合には、異常を示す情報が出力される。なお、チェックのタイミングについては、この乱数更新周期よりも長い所定の周期毎であってもよい。なお、乱数監視回路３１８４に乱数列変更回路３１８３ｄから出力される乱数を監視させてもよいが、上記したようにカウンタ回路３１３８ａから出力されるカウント値を監視するようにすることで監視精度を高めるとともに、監視負担を低減することができる。
【０７７３】
また、図７７に示す乱数生成回路３１８において説明したことと同様に、乱数生成回路３１８の外部に乱数監視回路３１８３ｎを設けてもよく、また、乱数更新回路３１８３ｎの内部に乱数監視回路３１８４を設けてもよい。
【０７７４】
次に、図１００を用いて、図４に示す払出制御部６００が実行する払出制御部メイン処理について説明する。なお、同図は払出制御部メイン処理の流れを示すフローチャートである。
【０７７５】
図４に示す払出制御部６００は、ＣＰＵ、ＲＡＭ、ＲＯＭ、Ｉ／Ｏポート、および電圧監視回路を備えている。払出制御部６００が備える電圧監視回路も、主制御部３００が備える電圧監視回路と同じく、電源管理部６５０から払出制御部６００に供給している電源の電圧値が所定の値（本実施形態では９ｖ）未満である場合に電圧が低下したことを示す低電圧信号を払出制御部６００のＣＰＵに出力する。なお、主制御部３００の電圧監視回路３３８から低電圧信号が出力されていても、この払出制御部６００の電圧監視回路からは低電圧信号は出力されていないことはある。
【０７７６】
払出制御部６００には、主制御部３００のＣＰＵ３０４から電源投入情報を含めたコマンドが送信されてくる。このコマンドを受信したことに基づいて、払出制御部６００のＣＰＵは、払出制御部メイン処理を開始する。
【０７７７】
まず、ステップＳ５０１では、初期設定１を行う。この初期設定１では、払出制御部６００のＣＰＵのスタックポインタ（ＳＰ）へのスタック初期値の設定等を行う。ステップＳ５０２では、払出制御部６００の電圧監視回路から低電圧信号が出力されているか否か、すなわち低電圧信号がオンであるか否かを判定する。低電圧信号がオンの場合（電源の遮断を検知した場合）にはステップＳ５０２の処理を繰り返し実行し、低電圧信号がオフの場合（電源の遮断を検知していない場合）にはステップＳ５０３に進む。
【０７７８】
ステップＳ５０３では、初期設定２を行う。この初期設定２では、後述する払出制御部タイマ割り込み処理を定期毎に実行するための周期を決める数値をカウンタ・タイマに設定する処理、払出制御部６００のＲＡＭへの書き込みを許可する設定、Ｉ／Ｏポートの初期設定等を行う。
【０７７９】
ステップＳ５０４では、電源の遮断前（電断前）の状態に復帰するか否かの判定を行い、電断前の状態に復帰しない場合（パチンコ機１００を初期状態にする場合）にはステップＳ５０６に進み、電断前の状態に復帰する場合にはステップＳ５０５に進む。具体的には、このステップＳ５０４でも、主制御部３００メイン処理のステップＳ１１１と同様な処理が行われ、ＲＡＭクリアが必要な場合には、パチンコ機１００を初期状態にすべくステップＳ５０６に進む。一方、ＲＡＭクリアが必要でない場合には、払出制御部６００のＲＡＭから電源ステータスの情報を読み出し、電源ステータスの情報が、サスペンドを示す情報でない場合にはパチンコ機１００を初期状態にすべくステップＳ５０６に進み、サスペンドを示す情報である場合には払出制御部６００のＲＡＭについてチェックサムを実行し、チェックサムの結果が正常である場合には電断前の状態に復帰すべくステップＳ５０５に進み、チェックサムの結果が異常である場合には、パチンコ機１００を初期状態にすべくステップＳ５０６に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップＳ５０６に進む。
【０７８０】
ステップＳ５０５では、復電時処理を行う。この復電時処理では、払出制御部６００のＲＡＭの記憶領域のうち、復電時にクリアすべき記憶領域（コマンドを格納するためのコマンドバッファ、エラー状態を記憶するためのエラーステータスなどを除く記憶領域）の初期化などを行う。
【０７８１】
ステップＳ５０６では、初期化処理を行う。この初期化処理では、割り込み禁止の設定、スタックポインタへのスタック初期値の設定、払出制御部６００のＲＡＭの所定の領域（例えば、全ての記憶領域）の初期化などを行う。
【０７８２】
ステップＳ５０７では、初期設定３を行う。この初期設定３では、払出制御部６００のＲＡＭに設けたエラーステータス記憶領域に記憶したエラーステータスのうち、不正払出エラーと払出超過エラー以外の情報をクリアしたり、割り込み許可の設定などを行う。
【０７８３】
ステップＳ５０８では、主制御部３００から入力したデータの中に未解析データがあるか無いかを判定し、未解析データがある場合にはステップＳ５０９でコマンド解析処理を行い、未解析データがない場合にはステップＳ５１０に進む。
【０７８４】
ステップＳ５１０では、ステップＳ５０２と同じく、低電圧信号がオフであるか否かを監視し、低電圧信号がオフの場合（電源の遮断を検知していない場合）にはステップＳ５０８に戻り、低電圧信号がオンの場合（電源の遮断を検知した場合）にはステップＳ５１１に進む。
【０７８５】
ステップＳ５１１では、電断時処理を行う。この電断時処理では、払出制御部６００のＲＡＭに設けたスタックポインタ退避領域に現在のスタックポインタの値を記憶し、上述の電源ステータス記憶領域にサスペンドを示す情報を設定する。また、払出制御部６００のＲＡＭの所定の領域（例えば全ての領域）に記憶している１バイトデータを初期値が０である１バイト構成のレジスタに全て加算し、チェックサム算出用数値記憶領域に記憶している値からその加算した結果を減算した値をチェックサム（電断時チェックサム）として算出し、算出した電断時チェックサムを上述のチェックサム算出用数値記憶領域に記憶し、払出制御部６００のＲＡＭへの書き込みを禁止する設定などを行う。
【０７８６】
＜払出制御部タイマ割り込み処理＞
次に、図１０１を用いて、払出制御部６００のＣＰＵが実行する払出制御部タイマ割り込み処理について説明する。なお、同図は払出制御部タイマ割り込み処理の流れを示すフローチャートである。
【０７８７】
払出制御部６００は、所定の周期（本実施形態では１ｍｓに１回）でタイマ割り込みを発生するカウンタ回路も備えており、このタイマ割り込みを契機として払出制御部タイマ割り込み処理を所定の周期で開始する。
【０７８８】
ステップＳ６０１では、タイマ割り込みスタート処理を行う。このタイマ割り込みスタート処理では、払出制御部６００のＣＰＵの各レジスタの値をスタック領域に一時的に退避する処理などを行う。払出制御部６００には、ウォッチドッグタイマ（ＷＤＴ）も用意されている。ステップＳ６０２ではこのＷＤＴのリスタートを行う。
【０７８９】
ステップＳ６０３では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、払出制御部６００のＩ／Ｏポートの値を取得して、図４に示す払出センサ６０４等の状態などを検出する。ステップＳ６０４では、タイマ更新処理を行う。このタイマ更新処理では、払出報知用ＬＥＤの点灯／消灯時間、図４に示す払出モータ６０２の駆動／非駆動時間などを計時するためのタイマなどを含む各種タイマを更新する。
【０７９０】
ステップＳ６０５では、エラー監視処理を行う。払出制御部６００のＩ／Ｏポートには、主制御部３００から、下皿満タンエラー信号やガラス枠開放エラー信号等の各種のエラー信号が送られてくる。払出制御部６００のＲＡＭには、エラーステータス記憶領域や、遊技媒体貸出情報記憶領域や、払出完了数チェック記憶領域や、モータ駆動量記憶領域が設けられている。エラーステータス記憶領域には、各エラー信号に対応した情報が記憶される。このエラー監視処理では、各種のエラー信号がオンか否かを判定し、オンの場合には、エラーステータス記憶領域に対応したエラーを示す情報を記憶し、オフの場合には、エラーステータス記憶領域に対応したエラーの解除を示す情報を記憶する。また、主制御部３００と払出制御部６００との間の通信が可能かどうかを、主制御部からのコマンドが所定時間（例えば１０００ｍｓ）継続して受信できないか否かで判定し、エラーステータス記憶領域に、通信可能な場合には通信可能であることを示す情報を、反対に通信不可能な場合には通信不可能であること（主制御通信エラー）を示す情報を記憶する。加えて、図４に示すカードユニット（ＣＲユニット）６０８と払出制御部６００との間の通信が可能かどうかについても、カードユニット６０８からの信号が所定時間（例えば１０００ｍｓ）継続して受信できないか否かで判定し、エラーステータス記憶領域に、通信可能な場合には通信可能であることを示す情報を、反対に通信不可能な場合には通信不可能であること（ＣＲユニット未接続エラー）を示す情報を記憶する。また、払出制御部６００のＩ／Ｏポートには、エラー解除信号も送られてくる。このエラー監視処理では、エラー解除信号がオンであるか否かも判定し、エラー解除信号がオンである場合には、エラーステータス記憶領域に記憶している情報を初期化して、エラーを解除する。
【０７９１】
ステップＳ６０６では、ＣＲユニット通信処理を行う。このＣＲユニット通信処理では、図４に示すインターフェース部６０６から遊技媒体貸出信号を受信して遊技媒体貸出信号センサ信号がオンであるか否かを判定し、遊技媒体貸出信号がオンの場合（インターフェース部６０６からの球貸要求を入力した場合）には、ＲＡＭに設けた遊技媒体貸出情報記憶領域に遊技媒体の貸出要求があったことを示す情報を記憶する。
【０７９２】
ステップＳ６０７では、払出動作管理処理を行う。上述のエラーステータス記憶領域には、不正払出エラーの情報や払出超過エラーの情報も記憶されている。この払出動作管理処理では、エラーステータス記憶領域から不正払出エラーの情報、および払出超過エラーの情報を読み出し、いずれのエラーも発生していない場合には、図４に示す払出センサ６０４からの信号（以下、払出センサ信号と称する場合がある）に基づいて払出個数の監視を行う。すなわち、所定のエラーが発生している場合には払出モータ６０２の駆動停止、すなわち払出装置からの賞媒体（例えば遊技球）の払出を停止するようにしている。具体的には、払出センサ６０４の信号を検出して払出センサ信号がオンであるか否かを判定し、払出センサ信号がオンの場合（払出センサを球が通過した場合）には払出完了数チェックに１を加算して払出完了数チェック記憶領域に記憶する。また、賞球および貸出球の要求が無いときに払出センサ信号がオンになった場合には、上述のエラーステータス記憶領域に不正払出エラーを示す情報を記憶し、賞球数または貸出球数が各々の要求数を超え、その超過数が所定数以上になった場合には、上述のエラーステータス記憶領域に払出超過エラーを示す情報を記憶する。
【０７９３】
また、上述のエラーステータス記憶領域から、下皿満タンエラーを表す情報、不正払出エラーの情報、および払出超過エラーの情報を読み出し、いずれのエラーも発生していない場合に、払出開始監視処理、初期位置検索動作処理、通常払出動作処理、リトライ動作処理、逆回転動作処理のいずれかの処理を行う。
【０７９４】
上述のごとく、払出装置１５２は、払出モータ６０２によって回転可能に構成されたスプロケットを備えている。このスプロケットは、タンクレール１５４を通過して払出装置１５２内に流下した遊技球を一時的に滞留させると共に、払出モータ６０２を駆動して所定角度だけ回転することにより、一時的に滞留した遊技球を払出装置１５２の下方へ１個ずつ送り出す。払出開始監視処理では、貸出要求数、および賞球要求数が０であり、次賞球要求数が０以外の場合は、賞球要求数に次賞球要求数をセットし、次賞球要求数をクリアする。また、払出モータ６０２の位置が不確定の場合（動作モードが初期位置検索動作モードの場合）には、払出完了数チェックから１を減算して払出完了数チェック記憶領域に記憶し、払出モータ６０２の位置が確定している場合（動作モードが通常払出動作モードの場合）には、払出完了数チェックとして払出完了数チェック記憶領域に０を設定する。また、賞球要求数を、払出モータ６０２を駆動する量（モータ駆動量）に変換し、これをＲＡＭに設けたモータ駆動量記憶領域に記憶すると共に、ＲＡＭに設けたモータ制御データテーブルを参照してモータ駆動量に対応するモータ駆動制御データを選択し、正転を示すモータ駆動制御データをＩ／Ｏポートを介して、払出モータ６０２を制御するモータ制御回路に出力する。これにより、モータ制御回路は払出モータ６０２のモータの励磁位置を所定回変化させてスプロケットを正方向に回転駆動する。
【０７９５】
初期位置検索動作処理および通常払出動作処理では、払出モータ６０２の駆動終了後に、払出完了数チェック記憶領域から払出完了チェックを読み出し、払出完了チェックが０
の場合には、払出開始監視処理を実行する準備を行い、払出完了チェックが０以外の場合には、エラーステータス記憶領域に払出装置エラーを示す情報を設定すると共に、リトライ動作処理を実行する準備を行う。
【０７９６】
リトライ動作処理では、所定の時間が経過するのを待ち（リトライ動作開始待ちタイマが０になるのを待ち）、リトライ動作開始待ちタイマが０になった場合には、逆回転動作処理を実行する準備を行う。逆回転操作処理では、上述のモータ制御データテーブルを参照してモータ駆動量に対応するモータ駆動制御データを選択し、逆転を示すモータ駆動制御データをＩ／Ｏポートを介してモータ制御回路に出力する。これにより、モータ制御回路は払出モータ６０２の励磁位置を所定回変化させてスプロケットを逆回転駆動する。また、逆回転操作処理では、払出モータ６０２の駆動終了後に払出開始監視処理を実行する準備を行う。
【０７９７】
ステップＳ６０８では、払出モータ駆動監視処理を行う。この払出モータ駆動監視処理では、駆動開始監視処理、加速駆動処理、定速駆動処理、ブレーキ駆動処理、駆動終了処理のいずれかの処理を行う。
【０７９８】
駆動開始監視処理では、上述のエラーステータス記憶領域から下皿満タンエラーの情報、不正払出エラーの情報、および払出超過エラーの情報を読み出し、いずれのエラーも発生していない場合には、上述のモータ制御データテーブルを参照してモータ駆動量に対応するモータ駆動制御データを選択し、正転を示すモータ駆動制御データをＩ／Ｏポートを介してモータ制御回路に出力する。これにより、モータ制御回路は払出モータ６０２の励磁位置を所定回変化させスプロケットを正方向に回転駆動する。
【０７９９】
加速駆動処理および定速駆動処理では、スプロケットの初期位置検索動作中、または、逆回転動作中の場合を除き、払出モータ６０２の励磁位置を１６回変化させるごとに払出完了数チェックから１を減算して払出完了数チェック記憶領域に記憶する。また、更新後の払出完了数チェックが−４未満になった場合には、ブレーキ駆動処理を実行する準備を行う。さらに、上述の遊技媒体貸出情報記憶領域から遊技媒体貸出情報を読み出して、遊技媒体の貸出要求があったことを示す情報の有無を判定し、遊技媒体の貸出要求があったことを示す情報がある場合（賞球の払出中にインターフェース部６０６からの球貸要求を入力した場合）にも、ブレーキ駆動処理を実行する準備を行う。ブレーキ駆動処理では、所定の時間が経過するのを待ち（モータ駆動管理タイマが０になるのを待ち）、モータ駆動管理タイマが０になった場合には、駆動終了処理を実行する準備を行い、駆動終了処理では、モータ駆動の後処理を行う。
【０８００】
ステップＳ６０９では、外部出力信号設定処理を行う。この外部出力信号設定処理では、払出制御部６００のＲＡＭに記憶している遊技情報（例えば払出センサ信号を入力するたびに出力する賞球信号）を、情報出力回路（図示せず）を介してパチンコ機１００とは別体の情報入力回路３５０に出力する。
【０８０１】
ステップＳ６１０では、ポート出力処理を行う。このポート出力処理では、払出制御部６００のＩ／Ｏポートから、図４に示す発射制御部６３０に発射を許可する発射許可信号を出力する。ただし、上述の主制御通信エラーやＣＲユニット未接続エラーが生じている場合には、発射許可信号を出力しない状態に設定する。したがって、主制御部３００が電断し、払出制御部６００には電力が供給されている状態では、上述のステップＳ６０５において主制御通信エラーが認められ、このポート出力処理で、発射許可信号を出力しない状態に設定される。
【０８０２】
ステップＳ６１１では、タイマ割り込みエンド処理を行う。このタイマ割り込みエンド処理では、ステップＳ６０１で一時的に退避した各レジスタの値を元の各レジスタに設定したり、割り込み許可の設定などを行い、払出制御部タイマ割り込み処理は終了になる。
【０８０３】
＜第２内部情報レジスタ＞
続いて、図８４に第１内部情報レジスタを示した割込み制御回路３１００の第２内部情報レジスタについて説明する。図１０２は、割込み制御回路３１００の内部レジスタ３１０１に用意された第２内部情報レジスタを説明するための図である。
【０８０４】
図１０２に示すように、第２内部情報レジスタは８ビットのレジスタであるが、７〜３ビット目は「０」が設定されたままであり、使用されていない。また、２〜０ビット目は、初期値は「０」である。
【０８０５】
本実施形態では、電源投入によって、電圧監視回路３３８からシステムリセット信号がリセット制御回路３１４に入力される。すると、リセット制御回路３１４からは、マイクロプロセッサ３０００の内部の回路に対し内部バス３３００を介して、システムリセット信号１が出力される。また、本実施形態では、ＷＤＴ３１４１がタイムアウトになった場合には、リセット制御回路３１４からは、マイクロプロセッサ３０００の内部の回路に対し内部バス３３００を介して、ＷＤＴのタイムアウト信号が出力されたことを表すシステムリセット信号２が出力される。さらに、ＣＰＵ３０４が所定の範囲以外のアドレスを参照（指定エリア外走行）した場合には、リセット制御回路３１４からは、マイクロプロセッサ３０００の内部の回路に対し内部バス３３００を介して、指定エリア外走行禁止信号が出力されたことを表すシステムリセット信号３が出力される。
【０８０６】
割込み制御回路３１００は、内部バス３３００を介してシステムリセット信号１を取得すると、２ビット目に「１」を設定する。すなわち、第１内部情報レジスタの２ビット目は、直前に発生したリセット要因が電源投入によるリセットであることを示すビットに相当する。
【０８０７】
また、割込み制御回路３１００は、内部バス３３００を介してシステムリセット信号２を取得すると、１ビット目に「１」を設定する。すなわち、第１内部情報レジスタの１ビット目は、直前に発生したリセット要因がＷＤＴ３１４１のタイムアウトであることを示すビットに相当する。
【０８０８】
さらに、割込み制御回路３１００は、内部バス３３００を介してシステムリセット信号３を取得すると、０ビット目に「１」を設定する。すなわち、第１内部情報レジスタの０ビット目は、直前に発生したリセット要因がＣＰＵ３０４の指定エリア外走行であることを示すビットに相当する。各ビットの値は、ＣＰＵ３０４がその値を読み取るとクリアされる（初期値の「０」になる）ようになっている。なお、この第２内部情報レジスタを、図８４に示す第１内部情報レジスタで構成してもよい。
【０８０９】
＜第３内部情報レジスタ＞
図１０３は、割込み制御回路３１００の内部レジスタ３１０１に用意された第３内部情報レジスタを説明するための図である。図１０３に示すように、第３内部情報レジスタも８ビットのレジスタであるが、７〜２ビット目は「０」が設定されたままであり、使用されていない。
【０８１０】
図１０３に示す第３内部情報レジスタの１ビット目は、ＷＤＴ３１４１がタイムアウトした場合に、ユーザリセット動作を行わせるか、あるいはシステムリセット動作を行わせるかを設定するためのビットである。ユーザリセット動作を行わせる場合には「０」を設定し、システムリセット動作を行わせる場合には「１」を設定する。
【０８１１】
また、０ビット目は、ＣＰＵ３０４の指定エリア外走行が生じた場合に、ユーザリセット動作を行わせるか、あるいはシステムリセット動作を行わせるかを設定するためのビットである。このビットでも、ユーザリセット動作を行わせる場合には「０」を設定し、システムリセット動作を行わせる場合には「１」を設定する。
【０８１２】
ここで説明した１ビット目と０ビット目それぞれに設定される値は、内蔵ＲＯＭ３０６のプログラム管理エリアに記憶されている。プログラム管理エリアに記憶されているこれらの値は、図８８に示す主制御部メイン処理における初期設定２（ステップＳ１０７）において、プログラム管理エリアから呼び出され、１ビット目と０ビット目それぞれに設定される。本実施形態では、いずれのビットにもシステムリセット動作を行わせる「１」が設定される。なお、１ビット目にユーザリセット動作を行わせる「０」を設定し、０ビット目にシステムリセット動作を行わせる「１」を設定してもよい。また、１ビット目にシステムリセット動作を行わせる「１」を設定し、０ビット目にユーザリセット動作を行わせる「０」を設定してもよい。
【０８１３】
なお、この第３内部情報レジスタも、図８４に示す第１内部情報レジスタの空きビット（未使用ビット）で構成してもよく、あるいは、上述の図１０２に示す第２内部情報レジスタの空きビット（未使用ビット）で構成してもよい。また、リセット発生時には、ＲＯＭ３０６のプログラム管理エリアに記憶されたリセット動作設定データの値を直接参照するようにしてもよい。この場合、第３内部情報レジスタに値を設定する処理は行わなくてもよい。
【０８１４】
＜第４内部情報レジスタ＞
図１０４は、割込み制御回路３１００の内部レジスタ３１０１に用意された第４内部情報レジスタを説明するための図である。図１０４に示すように、第４内部情報レジスタは８ビットのレジスタであるが、７〜２ビット目は「０」が設定されたままであり、使用されていない。
【０８１５】
この第４内部情報レジスタの１ビット目は、乱数生成回路３１８の外部クロック（更新クロック）ＲＣＫの異常を示すビットである。更新クロックに異常がある場合には、第４内部情報レジスタの１ビット目から「１（異常あり）」の情報が読みだされ、更新クロックに異常がない場合には、第４内部情報レジスタの１ビット目から「０（異常なし）」の情報が読みだされる。
【０８１６】
また、０ビット目は、リセットが発生した場合に、直前のリセット要因がシステムリセット（電源投入によるリセット）であるか否かを示すためのビットである。割込み制御回路３１００は、内部バス３３００を介してシステムリセット信号１を取得すると、この０ビット目に「１」を設定する。直前のリセット要因がシステムリセットである場合には、第４内部情報レジスタの０ビット目から「１（システムリセット発生）」の情報が読みだされ、直前のリセット要因がシステムリセットでない場合（リセット要因がＷＤＴ３１４１のタイムアウトである場合、または、リセット要因がＣＰＵ３０４の指定エリア外走行である場合）には、第４内部情報レジスタの０ビット目から「０（システムリセット未発生）」の情報が読みだされる。
【０８１７】
＜その他の内部情報レジスタ＞
また、図示は省略するが、マイクロプロセッサ３０００は、ＷＤＴ３１４１を制御するレジスタとして、スタートレジスタとクリアレジスタを備えている。スタートレジスタは、ＷＤＴ３１４１の起動／停止を制御するための８ビット長のレジスタであり、ＷＤＴ３１４１を起動するときには起動を指示する値（例えば、ＣＣｈ）を設定し（書き込み）、ＷＤＴ３１４１を停止するときには停止を指示する値（例えば、３３ｈ）を設定するように構成されている。
【０８１８】
また、このスタートレジスタは、リセット時にプログラム管理エリアに「ソフトウェアによる起動」を設定（選択）したときに有効となるレジスタであり、その場合、停止を指示する値（例えば、３３ｈ）が初期値として設定される。したがって、「ソフトウェアによる起動」を設定（選択）したときにＷＤＴ３１４１を起動するためには、遊技制御プログラムによって（手動で）起動を指示する値（例えば、ＣＣｈ）を設定する必要がある。一方、リセット時に「ソフトウェアによる起動」を設定（選択）しなかったときは、スタートレジスタには、起動を指示する値（例えば、ＣＣｈ）が遊技制御プログラムによらずに（自動的に）初期値として設定され、遊技制御プログラムによらずに（自動的に）ＷＤＴ３１４１が起動される。
【０８１９】
クリアレジスタは、ＷＤＴ３１４１のクリアとリスタートを制御するための８ビット長のレジスタであり、所定の第一の値（例えば、５５ｈ）を設定した後に、所定の第二の値（例えば、ＡＡｈ）を設定したときにＷＤＴ３１４１がクリアされ、直後にリスタートされる。なお、クリアレジスタの値を読み込んだときは、所定の固定値（例えば、ＦＦｈ）が読みだされる。
【０８２０】
ここでもう一度、システムリセットの流れについて、乱数更新との関係を含めて説明する。図１０５は、システムリセットの流れを乱数更新との関係を含めて示す図である。これまで、静電気などの要因により瞬断が生じた場合に、ＷＤＴ３１４１のタイムアウトによってリセット制御回路３１４からシステムリセット信号（ここではシステムリセット信号２）が出力され、リセット動作が行われることを説明した。また、ＷＤＴ３１４１のタイムアウトに限らず、例えば、ＣＰＵ３０４の指定エリア外走行が生じた場合などにも、リセット制御回路３１４からシステムリセット信号（ここではシステムリセット信号３）が出力され、リセット動作が行われる。このリセット動作では、遊技台はセキュリティモードに移行し、セキュリティチエック処理（図７６に示すステップＳＨ０５）が実行される。
【０８２１】
ＷＤＴ３１４１のタイムアウトやＣＰＵ３０４の指定エリア外走行は、遊技処理の正常な進行を妨げる異常の一例に相当する。また、システムリセット信号２およびシステムリセット信号３は復帰指示の一例に相当する。さらに、図７６に示すリセット制御回路３１４は、上記異常を検出する異常検出部の一例に相当する。
【０８２２】
なお、図１０５では、図示省略したが、セキュリティモードではまず、図７６に示すステップＳＨ０３の第１内部回路初期化処理が実行され、ＣＰＵ３０４のコアやタイマ回路３１１、カウンタ回路３１２、パラレル入力ポート３１０２、ＲＡＭ３０８アクセスプロテクトレジスタ、割込み制御回路３１００、乱数生成回路３１８を制御するレジスタといった内蔵レジスタの値が初期化される。なお、乱数生成回路３１８を制御するレジスタが初期化されることから、乱数更新範囲が再設定されるとともに、乱数値の初期値も再設定される。ＣＰＵ３０４の指定エリア外走行が生じたときは特に、乱数更新範囲に何らかの影響が及ぼされている可能性があるため、乱数更新範囲の再設定を行うことが好ましい。
【０８２３】
続いて、固定延長処理（ステップＳＨ０７）が行われ、この固定延長処理が終了すると、リセット制御回路３１４は、マイクロプロセッサ３０００の外部にある周辺制御回路に対して、リセット出力端子（ＸＲＳＴＯ端子）からリセット信号を出力する。すなわち、ＸＲＳＴＯ端子からのリセット信号（リセット出力）は、固定延長処理の終了後（セキュリティモード中）に出力され、ユーザモードの開始とは異なるタイミングで出力される。
【０８２４】
次に、ランダム延長処理（ステップＳＨ０９）が行われ、遅延処理の時間が不定になる。ランダム延長処理が終了すると、遊技台はユーザモードに移行し、遊技制御用プログラム（ここでは主制御部メイン処理）が開始される。
【０８２５】
この遊技制御用プログラムでは、最初に、各種の初期設定（図８８に示すステップＳ１０１〜ステップＳ１１５）が行われる。この初期設定では、図１０６（ａ）に示すように、上述の第４内部情報レジスタの１ビット目から「更新クロック異常を示すビット」の値を読み出した後に、読み出した値を汎用レジスタにセットする（書き込む）処理を実行する一方で、第４内部情報レジスタの０ビット目から「リセット要因がシステムリセットであるか否かを示すビット」を読み出す処理は実行するが、読み出した値を汎用レジスタにセットする（書き込む）処理を実行しないように構成している。
【０８２６】
換言すると、同図（ｂ）に示すように、マイクロプロセッサ３０００は、第１の要因（例えば、乱数生成回路３１８の更新クロックの状態）に基づいて変化する内部情報レジスタのビット（例えば、第４内部情報レジスタのビット１）の値を読み出して、読み出した値を汎用レジスタにセットする（書き込む）一方で、第１の要因とは異なる第２の要因（例えば、リセット要因）に基づいて変化する内部情報レジスタのビット（例えば、第４内部情報レジスタのビット０）の値を読み出すが、読み出した値を汎用レジスタにセットしない（書き込まない）ように構成されている。
【０８２７】
初期設定を終えると、続いて、ソフトウェア乱数の更新処理（ステップＳ１１７およびステップＳ１１９）が行われ、次いで、最初に発生する大当りの乱数取得タイミングに到達する。ここで、最初に発生する大当りの乱数取得タイミングに乱数を不正に取得されると、強制的に大当りにされてしまうことがある。しかしながら、ランダム延長処理によって遅延処理の時間が不定になっているため、上述のリセット出力を不正にとらえて、最初に発生する大当りの乱数取得のタイミングを図ろうとしても、上記所定時間も不定になり、不正行為を防止することができる。
【０８２８】
図１０７は、上記図７５に示すマイクロプロセッサ３０００のリセット制御回路３１４の変形例を示した図である。この変形例に係るリセット回路１３１４は、図７５に示すリセット制御回路３１４が備える指定エリア外走行禁止回路３１４２、ウォッチドックタイマ（ＷＤＴ）３１４１に替えて、信号出力タイミング制御回路１３１４ａを備えている。この信号出力タイミング制御回路１３１４ａは、２つのリセット入力端子ＸＳＲＳＴ１、リセット入力端子ＸＳＲＳＴ２から入力するリセット入力信号に基づいて、リセット出力端子ＸＲＳＴＯから出力するリセット出力信号の出力タイミングを決定するための回路である。
【０８２９】
図１０８は、主制御部３００と第１副制御部４００とのうち主制御部３００のみでＷＤＴ３１４１のタイムアウトが生じた場合の例を示すタイミングチャートである。図１０８に示すタイミングチャートでは、図の左から右に向かって時間（Ｔ）が経過していく。図の左端の状態では、主制御部３００にも第１副制御部４００にも１２Ｖの電圧が供給され、主制御部３００も第１副制御部４００も通常処理を行っている。この例では、主制御部３００は特図の変動表示を開始し、第１副制御部４００は、主制御部３００による特図変動表示の開始に合わせて、ここでは不図示の第２副制御部５００を介して、装飾図柄表示装置２０８に装飾図柄の変動表示を開始させる。図１０８に示すタイミングチャートにおける（ａ）〜（ｇ）の符号は、符号が記された位置のタイミングを示すものであり、図１０８の下方には、そのタイミングにおける装飾図柄表示装置２０８の様子が示されている。
【０８３０】
主制御部３００が特図変動表示を開始して間もなく主制御部３００では瞬断が生じ、一時的な電圧降下により、電断時処理が行われ、待機状態に移行する。図９７（ｂ）を用いて説明したように、待機状態では、主制御部３００のＷＤＴ３１４１がリスタートされず、ＷＤＴ３１４１がタイムアウトする。リセット制御回路３１４からは、ＷＤＴ３１４１のタイムアウトに基づいてシステムリセット信号２が出力される。
【０８３１】
システムリセット信号２が出力されたことにより、主制御部３００は、図７６に示すリセット処理を開始する。主制御部３００では、このリセット処理で、第１内部回路初期化処理（ステップＳＨ０３）が実行された後に、セキュリティチェック処理（ステップＳＨ０５）が実行される。そして、セキュリティチェック処理が終了してもユーザモード（図８８に示す主制御部メイン処理）にはすぐには移行せず、遅延処理が行われ、リセット処理が継続する。この遅延処理では、図７６に示す固定延長処理（ステップＳＨ０７）が実行される。なお、上述のごとく、固定延長処理が終了すると、リセット制御回路３１４は、マイクロプロセッサ３０００の外部にある周辺制御回路に対して、リセット出力端子（ＸＲＳＴＯ端子）からリセット信号を出力するが、このリセット信号は、第１副制御部４００に送信されるものではない。さらに、遅延処置では、ランダム延長処理（ステップＳＨ０９）が実行され、最大３０秒のランダム時間だけさらに、ユーザモードへの移行が遅延される。これらステップＳＨ０７およびステップＳＨ０９は、本発明にいう遅延処理の一例に相当する。
【０８３２】
また、上述のごとく、電断時処理が開始されてから所定時間（例えば、１０００ｍｓ）が経過するまでに、図４に示す払出制御部６００が主制御部３００からのコマンドを受信できない場合には、発射制御部６３０への発射許可信号の出力を停止する。
【０８３３】
一方、この例では、主制御部３００では瞬断が生じたものの、第１副制御部４００には継続して１２Ｖの電圧が供給されており、主制御部３００が電断時処理やリセット処理を行っている間も、第１副制御部４００は通常処理を継続する。この結果、演出実行手段は演出を続けており、装飾図柄表示装置２０８でも、装飾図柄の変動表示が継続されており、主制御部３００が電断時処理を開始して間もない（ｂ）のタイミングでは、左図柄表示領域２０８ａで装飾図柄の停止表示が行われる（いわゆる左図柄停止）。また、（ｃ）のタイミングでは、右図柄表示領域２０８ｃで装飾図柄の停止表示が行われ（いわゆる右図柄停止）、リーチ状態になる。続いて、（ｄ）のタイミングでは、スペシャルリーチ（ここではいわゆるトリプルリーチ）に発展し、（ｅ）のタイミングでは、リーチはずれ演出が一旦行われ、（ｆ）のタイミングでは、装飾図柄の組合せ（ここでは「装飾５−装飾４−装飾５」）が揺れ変動している。第１副制御部４００は、主制御部３００から図柄変動停止コマンドが送られてきたことに基づいて、装飾図柄の組合せを完全停止させて確定停止を行う。ところが、主制御部３００が電断時処理やリセット処理を行っている間は、第１副制御部４００には主制御部３００からコマンドが送信されない。
【０８３４】
この結果、特図の変動時間が経過しても揺れ変動が継続することになる。いつまでも続く揺れ変動を見た遊技者は、パチンコ機１００が壊れたのではないかと不安に思い、遊技店の店員を呼ぶことが期待でき、遊技店員に瞬断やリセットが発生したことを知らせることができる場合がある。すなわち、従来の遊技台では、遊技中に静電気などによる瞬間的な電圧低下でリセットが発生した場合にリセット処理を行なう技術が考案されているが、リセット処理には僅かな時間しかかからないため、遊技店側がリセットの発生を把握できず、遊技台に安定した制御を行なわせることができなかったが、本実施形態の遊技台によれば、遊技制御の開始を遅延させることで、遊技者を介してリセットの発生を遊技店員が把握できる。また、リセットの発生を遊技店員が把握できるため、リセットの発生要因を排除する（例えば、遊技台裏の配線等を離す）などして遊技台に安定した制御を行なわせることができる。さらに、この例では、リーチはずれ演出が行われているが、リーチ当り演出が行われてから揺れ変動がいつも以上に継続した場合には、大当りを期待していた遊技者に対して、パチンコ機１００が壊れ、有利な状態にならないように変化してしまったのではないかといった遊技者の不安を一層煽ることができ、遊技者に店員を呼び出させ、遊技店員に瞬断が発生したことを知らせることができる場合がある。
【０８３５】
また、リセット処理が行われている期間は、発射許可信号の出力が停止されており、発射装置１１０からの遊技球の発射ができない。そのため、装飾図柄表示装置２０８による表示は継続しているのに、図１に示す球発射ハンドル１３４をいくら操作しても遊技球が発射されず、遊技者は、パチンコ機１００が壊れたのではないかと不安に思い、遊技店の店員を呼ぶことが期待でき、遊技店員に瞬断やリセットが発生したことを知らせることができる場合がある。すなわち、遅延処理中は発射を停止させることで、遊技者を介してリセットの発生を遊技店員が把握できる場合がある。
【０８３６】
さらに、ＸＲＳＴＯ信号が立ち下がるタイミングで主制御部３００の各回路（例えば、駆動回路３２４〜３３４）にクリア信号が出力され、電断時処理やリセット処理が行われている期間は、主制御部３００が駆動する、普図表示装置２１０や、第１特図表示装置２１２や、第２特図表示装置２１４や、普図保留ランプ２１６や、第１特図保留ランプ２１８や、第２特図保留ランプ２２０や、高確中ランプ２２２等の遊技表示手段も表示されず、これらの非表示に気付いた、遊技者は、パチンコ機１００が壊れたのではないかと不安に思い、遊技店の店員を呼ぶことが期待でき、遊技店員に瞬断やリセットが発生したことを知らせることができる場合がある。特に、普図保留ランプ２１６や、第１特図保留ランプ２１８や、第２特図保留ランプ２２０や、高確中ランプ２２２といった遊技者が獲得した権利に基づく状態を表示する表示器が、非表示になると、パチンコ機１００が壊れて、こらまで獲得した権利が消滅してしまったのではないかといった遊技者の不安を一層煽ることができ、遊技者に店員を呼び出させ、遊技店員に瞬断やリセットが発生したことを知らせることができる場合がある。また、見方を変えれば、店員に遊技客に対してお詫びをする機会が与えられ、遊技客とのコミニュケーションが図れ、アットホームな遊技店を実現する手助けになる可能性がある。
【０８３７】
主制御部３００では、ランダム延長処理（ステップＳＨ０９）が終了すると、ここで初めてユーザモードに移行し、通常処理（図８８に示す主制御部メイン処理）が開始される。図８８に示す主制御部メイン処理では、主制御部３００への供給電圧が１２Ｖまで復帰しているため、図８９に示す初期設定２が行われ、第１副制御部４００には、ここで初めてクリア信号が出力される（ステップＳ１０５２）。 第１副制御部４００は、クリア信号を受信すると各種の初期設定を行う。この初期設定で、装飾図柄表示装置２０８に初期設定時の画面（デフォルト画面）を表示させる。なお、第１副制御部４００のＷＤＴ３１４１でタイムアウトが生じた場合にも、装飾図柄表示装置２０８にはデフォルト画面が表示される。図１０８に示す（ｇ）のタイミングでは、装飾図柄表示装置２０８に「お待ち下さい。」という文字表示がなされている。すなわち、装飾図柄表示装置２０８の画面は、いつまでたっても終わらなかった揺れ変動から「お待ち下さい。」という文字表示の画面に切り替わり、この一連の表示を見ていた遊技者は、パチンコ機１００が壊れたのではないかと不安に思い、遊技店の店員を呼ぶことが期待でき、遊技店員に瞬断が発生したことを知らせることができる場合がある。
【０８３８】
なお、主制御部メイン処理が開始されると、主制御部３００から払出制御部６００にもコマンドが送信されるようになり、発射制御部６３０へ発射許可信号が出力されて、遊技球の発射ができるようになる。
【０８３９】
この例では、主制御部３００がリセット処理から通常処理に移行するタイミングは、装飾図柄の組合せの揺れ変動中（（ｆ）のタイミング以降）であったが、揺れ変動前（（ｆ）のタイミングより前）であっても、装飾図柄表示装置２０８にはデフォルト画面が表示される。
【０８４０】
以上説明した図１０８では、ＷＤＴ３１４１のタイムアウトが生じた場合の例であったが、ＣＰＵ３０４の指定エリア外走行が生じた場合にも同様に、遊技者を介してリセットの発生を遊技店員が把握でき、遊技台に安定した制御を行なわせることができる。また、リセットがかかるようなその他の異常が生じた場合でも、システムリセット動作を行わせるようにしておけば、システムリセット中に遅延処理が実行され、遊技者を介してリセットの発生を遊技店員が把握でき、遊技台に安定した制御を行なわせることができる場合がある。
【０８４１】
以上の説明では、『電源の遮断が検出されるまで繰り返し実行される主処理（例えば、ステップＳ１１７、Ｓ１１９、および主制御部タイマ割込み処理）を含む遊技に関する遊技処理を実行する遊技制御部（例えば、主制御部３００）、および前記遊技制御部が前記遊技処理を実行中に該遊技処理の正常な進行を妨げる異常（例えば、ＷＤＴ３１４１のタイムアウトやＣＰＵ３０４の指定エリア外走行）を検出したことに基づいて復帰指示（例えば、システムリセット信号２，３）を行う異常検出部（例えば、リセット制御回路３１４）が設けられた電気的制御手段（例えば、マイクロプロセッサ３０００）を備え、前記遊技制御部（例えば、主制御部３００）は、前記復帰指示に基づいて前記遊技処理の実行を中止するものであって、前記電気的制御手段（例えば、マイクロプロセッサ３０００）は、前記遊技制御部が前記遊技処理の実行を開始するための復帰処理（例えば、システムリセット動作）を前記復帰指示に基づいて行い、該復帰処理を実行している最中に該遊技処理の開始を遅延させる遅延処理（例えば、ステップＳＨ０７，ＳＨ０９）を実行するものであることを特徴とする遊技台。』についての説明がなされている。
【０８４２】
ここで、前記遊技処理の遊技処理プログラムを記憶した記憶部（例えば、内蔵ＲＯＭ３０６）を備え、前記電気的制御手段は、前記遊技処理の実行を再開するための初期化処理（例えば、ステップＳＨ０３の第１内部回路初期化処理）を前記復帰指示に基づいて行うものであって、前記遊技制御部は、前記復帰指示に基づいて前記遊技処理の実行を中止し、前記初期化処理が行われた後、前記記憶部から前記遊技処理プログラムを順次読み出して前記遊技処理を再開するものであって、前記電気的制御手段は、前記初期化処理を完了してから前記遊技処理を開始するまでの間に、該遊技処理の開始時期を遅延させる遅延処理を実行するものであってもよい。すなわち、ここにいう復帰処理は、初期化処理と遅延処理を併せた処理になる。
【０８４３】
また、電源の遮断が検出されるまで繰り返し実行される主処理を含む遊技に関する遊技処理を実行する遊技制御手段と、前記遊技制御手段が前記遊技処理を実行中に該遊技処理の進行を妨げる異常を検出したことに基づいて復帰指示を行う異常検出手段とを備え、前記遊技制御手段は、前記復帰指示に基づいて前記遊技処理の実行を中止し、該遊技処理の実行を再開するための復帰処理を行うものであって、該復帰処理を実行している最中に該遊技処理の再開を遅延させる遅延処理を実行するものであることを特徴とする遊技台。の態様であってもよい。この態様によれば、前記電気的制御手段といった、ハードウェア処理とソフトウェア処理の双方を行うことができる手段に代えて、遊技制御手段といったソフトウェア処理のみを行う手段によって、上記復帰処理を行い、その復帰処理を実行している最中に上記遅延処理を実行する。なお、前記遊技処理の遊技処理プログラムを記憶した第１記憶部と、前記復帰処理の復帰プログラムを記憶した第２記憶部とを備え、前記遊技制御手段は、前記１記憶部から前記遊技処理プログラムを順次読み出して前記遊技処理を実行するものであって、前記電気的制御手段は、前記復帰プログラムにしたがって前記復帰処理を実行するものであってもよい。
【０８４４】
この場合、安定した遊技制御を行うことができる場合がある。すなわち、遊技制御の開始を遅延させることで、遊技者を介してリセットの発生を遊技店員が把握できる場合がある。また、リセットの発生を遊技店員が把握できるため、リセットの発生要因（例えば、静電気を発する電気部品）を特定して対処する（例えば、遊技台裏の配線の配置等を見直す）ことができ、遊技台に安定した制御を行なわせることができる場合がある。また、復帰処理中は遊技処理が行われないため、リセット発生時に遊技領域を転動していた遊技球が復帰処理中に第１特図始動口２３０に進入したとしても進入に基づく処理が行われず、遊技者に不安を抱かせて遊技店員を呼び易くすることが出来る場合がある。また、遊技店員は、遊技球を第１特図始動口２３０などに手で入れることによって、遊技台の状態を確認することができる場合がある。また、復帰処理中は遊技処理が行われないため、本体１０４または前面枠扉１０６を開放したとしても開放に基づく処理が行われず、遊技店員が本体１０４または前面枠扉１０６を開放することで、遊技台の状態を確認することができる場合がある。
【０８４５】
また、これまでの説明において、『前記電気的制御手段（例えば、マイクロプロセッサ３０００）は、異常が発生したか否かを判定するセキュリティチェック処理を前記復帰処理中に行う（例えば、ステップＳＨ０５のセキュリティチェック処理を行う）ものであることを特徴とする遊技台。』についても説明がなされている。
【０８４６】
この場合、復帰処理中にセキュリティチェック処理も行うため、復帰処理が行われている間の時間を有効に活用することができるとともに、セキュリティを向上させることが出来る場合がある。
【０８４７】
なお、前記異常検出部は、前記異常のうちの第１の異常（例えば、ＣＰＵ３０４の指定エリア外走行）があったことに基づいて前記復帰指示のうちの第１の復帰指示（例えば、システムリセット信号）を出力し、前記異常のうちの第２の異常（例えば、ＷＤＴ３１４１のタイムアウト）があったことに基づいて前記復帰指示のうちの第２の復帰指示（例えば、ユーザリセット信号）を出力し、前記電気的制御手段は、前記第１の復帰指示に基づいて前記復帰処理を実行している最中に前記遅延処理を実行し、前記第２の復帰指示に基づいて前記復帰処理を実行している最中に前記遅延処理を実行しないものであってもよい。
【０８４８】
この場合、異常の種類に応じて遊技処理が開始されるまでの時間が異なるため、遊技店員が異常の種類を判別することができる場合がある。
【０８４９】
また、前記第１の異常は、前記第２の異常よりも異常度が高いものであってもよい。
【０８５０】
この場合、異常度の高い第１の異常が発生したときに復帰処理で遅延処理が行われるため、遊技店員は異常度が高い異常に基づくリセットが発生したことを確認することができる場合がある。
【０８５１】
また、前記電気的制御手段は、前記第１の復帰指示に基づいて前記復帰処理を実行している最中に前記セキュリティチェック処理を実行し、前記第２の復帰指示に基づいて前記復帰処理を実行している最中に前記セキュリティチェック処理を実行しないものであってもよい。
【０８５２】
なお、遊技領域に向けて遊技球を発射する発射手段（例えば、発射装置１１０）を備え、前記発射手段は、前記遅延処理が実行されている間は遊技球の発射を停止するものであってもよい。
【０８５３】
この場合、遊技者は、パチンコ機１００が壊れたのではないかと不安に思い、遊技店の店員を呼ぶことが期待でき、遊技店員に瞬断やリセットが発生したことを知らせることができる場合がある。すなわち、遅延処理中は発射を停止させることで、遊技者を介してリセットの発生を遊技店員が把握できる場合がある。
【０８５４】
また、前記遊技処理の遊技処理プログラムを記憶した記憶部（例えば、内蔵ＲＯＭ３０６）を備え、前記遊技制御部（例えば、主制御部３００）は、前記記憶部から前記遊技処理プログラムを読み出して前記遊技処理を実行するものであって、前記記憶部（例えば、内蔵ＲＯＭ３０６）は、この記憶部に記憶された内容（例えば、ユーザプログラム）に基づいて得られる所定の認証情報（例えば、認証コード）を格納したものであり、前記電気的制御手段（例えば、マイクロプロセッサ３０００）は、前記記憶部に記憶されている内容に基づいて前記認証情報を前記復帰処理中に取得し、取得した認証情報が該記憶部に格
納されている前記所定の認証情報に一致するか否かの判定を該復帰処理中に行う（例えば、ステップＳＨ０５のセキュリティチェック処理を行う）ものであってもよい。
【０８５５】
この場合、復帰処理中に所定の認証情報に一致するか否かの判定を行うため、復帰処理が行われている間の時間を有効に活用することができるとともに、セキュリティを向上させることが出来る場合がある。
【０８５６】
なお、前記電気的制御手段は、取得した認証情報が該記憶部に格納されている前記所定の認証情報に一致したことに基づいて、前記遅延処理を実行するものであってもよい。
【０８５７】
また、前記遊技制御部は、取得した認証情報が該記憶部に格納されている前記所定の認証情報に不一致であったことに基づいて、動作を停止するものであってもよい。
【０８５８】
また、前記電気的制御手段は、前記遊技処理の開始を、予め定まった時間遅延させる第一遅延処理（例えば、ステップＳＨ０７の固定延長処理）、および変更可能な時間遅延させる第二遅延処理（例えば、ステップＳＨ０９のランダム延長処理）のうち少なくともいずれか一方の処理を行うものであってもよい。
【０８５９】
また、前記電気的制御手段は、前記遊技処理の開始を予め定まった時間遅延させる第一遅延処理を行った後で、外部に対してリセット指示（例えば、リセット出力端子（ＸＲＳＴＯ端子）からリセット信号）を出力し、その後、該遊技処理の開始を変更可能な時間遅延させる第二遅延処理処理を行うものであってもよい。ここにいう変更可能時間とは、前記電気的制御手段の製造時や設定時に、複数の用意された時間の中から選択された時間であってもよいし、任意に変えられる時間であってもよい。
【０８６０】
この場合、遊技処理の開始タイミングと外部に対してのリセット指示の出力タイミングとが異なるため、有利な乱数が取得可能な最初のタイミングを不正者が解析困難にすることができ、不正者の不正行為を防止することができる場合がある。
【０８６１】
また、前記遊技制御部は、前記遊技処理の中で、所定の数値範囲（例えば、乱数生成範囲）で数値を繰り返し更新し更新した数値を用いて所定の抽選処理（例えば、特図の当否判定）を実行するものであって、前記電気的制御手段は、前記復帰処理の中で、前記数値を初期化する（例えば、ステップＳＨ０３の第１内部回路初期化処理を実行する）ものであってもよい。
【０８６２】
また、前記遊技制御部によって制御される遊技表示手段（例えば、普図表示装置２１０や、第１特図表示装置２１２や、第２特図表示装置２１４や、普図保留ランプ２１６や、第１特図保留ランプ２１８や、第２特図保留ランプ２２０や、高確中ランプ２２２）を備え、前記遊技表示手段は、前記遅延処理が実行されている間は非表示になるものであってもよい。
【０８６３】
この場合、遊技表示手段の表示が行われるはずが行われないため、遊技者に不安を抱かせて遊技店員を呼び易くすることが出来る場合がある。また、遊技店員は、遊技球を第１始動口２３０などに手で入れることによって、遊技台の状態を確認することができる場合がある。
【０８６４】
また、遊技球が進入可能な第１の状態と、該第１の状態より遊技球な進入困難な第２の状態とに変化可能な可変入賞手段（例えば、第２特図始動口２３２、可変入賞口２３４）を備え、前記可変入賞手段は、前記第１の状態の場合に前記復帰指示があったことに基づいて前記第２の状態に変化するものであってもよい。
【０８６５】
この場合、可変入賞手段が第１の状態であるべきなのに第２の状態となるため、遊技者に不安を抱かせて遊技店員を呼び易くすることが出来る場合がある。また、遊技店員は、遊技球を第１始動口２３０などに手で入れることによって、遊技台の状態を確認することができる場合がある。なお、前記可変入賞手段は、前記第１の状態の場合に前記復帰指示があったことに基づいて該第１の状態を維持するものであってもよい。この場合、予め定められた所定時間（例えば、開放時間）以上第１の状態となるため、遊技者に不安を抱かせて遊技店員を呼び易くすることが出来る場合がある。
【０８６６】
また、前記遊技制御部からの指示に基づいて演出を実行する演出実行手段（例えば、装飾図柄表示装置２０８）を備え、前記演出実行手段は、前記遅延処理が実行されている間も演出を継続するものであってもよい。ここで、前記演出実行手段は、前記遊技表示手段よりも大きな表示領域を有するものであってもよい。
【０８６７】
この場合、遅延処理中に遊技者を退屈させないようにすることができる場合がある。
また、前記電気的制御手段は、前記復帰指示に基づいて、第１復帰処理と第２復帰処理を選択的に実行するものであり、前記第１復帰処理の復帰動作を記憶した第１復帰動作記憶部と、前記第２復帰処理の復帰動作を記憶した第２復帰動作記憶部と、を備え、前記電気的制御手段は、前記第１復帰処理を選択した場合には前記第１復帰動作記憶部に記憶された復帰動作にしたがって前記第１復帰処理を実行し、前記第２復帰処理を選択した場合には前記第２復帰動作記憶部に記憶された復帰動作にしたがって前記第２復帰処理を実行するものであってもよい。
【０８６８】
また、前記遊技制御部は、前記遊技処理の中で、所定の数値範囲で数値を繰り返し更新し更新した数値を用いて所定の抽選処理を実行するものであって、前記電気的制御手段は、前記復帰指示に基づいて、前記数値を初期化する第１復帰処理（例えば、ステップＳＨ０３の第１内部回路初期化処理）と、該数値を該復帰指示がなされる前の値に保持する第２復帰処理（例えば、ステップＳＨ１１の第２内部回路初期化処理）を選択的に実行するものであってもよい。
【０８６９】
また、本発明を所定数の遊技球を循環して使用する封入式遊技機に適用してもよい。また、主制御部３００と副制御部４００は双方向通信でもよいし、主制御部３００と副制御部４００の機能を備えた１つの制御部を代わりに設けてもよい。
【０８７０】
従来より、遊技台として、遊技盤の遊技領域に遊技球の落下の方向に変化を与える障害物や、遊技球が入賞可能な入賞口、始動口、可変入賞口などを設け、これらに遊技球が入賞すると賞球を払い出すなど遊技者に特典が与えられるようにした弾球遊技機（パチンコ機）が知られている。この弾球遊技機では、遊技球が始動口へ進入したことに基づいて当否判定の抽選処理を行い、当否判定の結果に応じて、可変入賞口を所定時間開放させる等、遊技者に有利な遊技状態を発生させるようにしている。
【０８７１】
また、メダル（遊技媒体）を投入してスタートレバーを操作することでリールを回転させるとともに、内部抽選によって役を内部決定し、ストップボタンを操作することでリールを停止させたときに、図柄表示窓上に内部決定に応じて予め定められた図柄の組み合わせが表示されると役が成立し、メダルの払い出しを伴う役が成立した場合には、規定数のメダルを払い出すなど遊技者に特典が与えられるようした回胴遊技機（スロットマシン）も知られている。
【０８７２】
ところで、遊技店の営業中に、遊技台の電気系統に異常が発生し、遊技台の電源が遮断（電断）することがある。電源断した遊技台は、その後、遊技に支障がないように即座に自動的に復電する（電源が投入される）。このため、遊技台が電断したことに遊技店側がその場では気づかないことがある。また、遊技台のプログラムが想定外の動作をした場合等、何らかの異常が生じた場合には、一旦リセットがかかる。しかしながらリセットがかかるような異常が生じた場合でも、遊技に支障がないように即座に自動的に復帰する。
【０８７３】
遊技台の電気系統に異常が発生した原因や、リセットがかかるような異常が生じた原因としては、様々なことが考えられ、遊技店側としては電断が生じたことや、リセットがかかるような異常が生じたことを、その場で把握したい場合がある。
【０８７４】
一方、上記遊技台によれば、電気系統の異常が発生したことや、リセットがかかるような異常が生じたことを、遊技店側がその場で把握する機会を生じさせやすい。また、遊技制御の開始を遅延させることで、遊技者を介してリセットの発生を遊技店員が把握でき、遊技店員がリセットの発生要因を特定して対処する（例えば、遊技台裏の配線の配置等を見直す）ことができ、遊技台に安定した制御を行なわせることができる場合がある。
【０８７５】
以下、これまで説明したことも含めて付記する。
【０８７６】
（付記１）
遊技に関する複数種類の処理を含む遊技制御を行う遊技制御手段と、
前記遊技制御手段の処理の進行に関する異常を検出するとともに、該異常を検出した場合には前記遊技制御手段に復帰指示を行う異常検出手段と、
前記遊技制御手段および前記異常検出手段に所定の電圧を供給する電圧供給手段と、を備えた遊技台であって、
前記遊技制御手段は、
前記異常検出手段から前記復帰指示を受けたことに基づいて行われる復帰処理と、該復帰処理の後に開始され、所定の終了条件が成立するまで繰り返し実行される主処理と、を行い、
前記復帰処理は、前記遊技制御の開始を遅延させる遅延処理を含むことを特徴とする遊技台。
【０８７７】
（付記２）
乱数を生成するものであって、該乱数が生成される数値範囲である乱数生成範囲を設定可能な乱数生成手段（第１実施形態では乱数生成回路３１８、第２実施形態では乱数生成回路３１６'）と、
前記乱数生成手段により生成された乱数を用いる抽選処理を含む、遊技に関する複数種類の処理を行う遊技制御手段（第１実施形態ではＣＰＵ３０４、第２実施形態ではＣＰＵ３０４'）と、
前記遊技制御手段の処理の進行に関する異常があるか否かを検出する処理を実行するとともに、該異常を検出した場合には前記遊技制御手段の処理を特定の処理から再開させて前記遊技制御手段の処理を正常に復帰させるための復帰指示（システムリセット又はユーザリセット）を前記遊技制御手段に対して行う異常検出手段（第１実施形態ではリセット制御回路３１４、第２実施形態ではリセット制御回路３１４'）と、を備え、
前記乱数生成手段は、
前記乱数生成範囲を設定するための乱数範囲設定指示を前記遊技制御手段から受けたことに基づいて前記乱数生成範囲を更新する生成範囲更新処理（図８９のステップＳ１０５３）を実行するものであり、
前記遊技制御手段は、
前記異常検出手段から前記復帰指示を受けた際に、該復帰指示が行われる前に設定され
た前記乱数生成範囲と同じ数値範囲を前記乱数生成範囲として設定するための前記乱数範囲設定指示を前記乱数生成手段に対して行う（図８９のステップＳ１０５３）ものであることを特徴とする遊技台（第１実施形態の遊技台１００、第２実施形態のスロットマシン１００'）。
【０８７８】
（付記３）
付記２記載の遊技台であって、
前記異常検出手段は、
所定の開始条件が成立したことに基づいて経過時間の計測を開始し、該経過時間が特定時間を超えたか否かを判定するとともに、該経過時間が特定時間を超えたと判定したことに基づいて前記遊技制御手段に復帰指示を行う（図６のＷＤＴ３１４１の説明参照）ものであることを特徴とする遊技台。
【０８７９】
（付記４）
所定の数値範囲で所定の周期ごとに更新され、遊技に関する抽選に用いられる乱数を生成する乱数生成手段（第１実施形態では乱数生成回路３１８、第２実施形態では乱数生成回路３１６'）と、
前記乱数の更新に関する異常を検出する更新異常検出手段（周波数監視回路３１８２と乱数監視回路３１８４）と、
前記異常検出手段により前記異常が検出されたことに基づいて、所定条件が成立するまで前記異常検出手段により前記異常が検出されたことを示す異常検出情報を保持する異常検出情報保持手段（内部情報レジスタ３１０１）と、
所定のタイミングで前記異常検出情報保持手段を参照し、前記異常検出情報保持手段により前記異常検出情報が保持されていたことに基づいて、所定の異常対応処理を実行する異常対応処理手段（第１実施形態ではＣＰＵ３０４と図９５のデバイス監視処理および入賞受付処理、第２実施形態ではＣＰＵ３０４'とデバイス監視処理）と、を備えたことを特徴とする遊技台。
【０８８０】
（付記５）
付記４記載の遊技台であって、
前記異常検出情報保持手段は、
前記異常検出情報を保持している状態において前記異常対応処理手段により参照されたことに基づいて、前記異常検出情報が消去されるものであること（内部情報レジスタの説明参照）を特徴とする遊技台。
【０８８１】
＜主制御部の第１変形例＞
図１０９（ａ）は、主制御部の構成の第１変形例を示した図である。この例では、ＣＰＵ３０４は、リセット信号入力端子ＸＳＲＳＴを備え、このリセット信号入力端子ＸＳＲＳＴには、ランダム遅延回路３１７が接続されている。なお、端子名称の先頭に付した「Ｘ」の文字は、端子に入出力する信号がローアクティブであることを示しているが、ハイアクティブでもよいことは言うまでもない（以下同様）。
【０８８２】
また、ランダム遅延回路３１７の入力端子には、電圧監視回路３３８が出力する低電圧信号と、ＷＤＴ３１４が出力するＷＤＴ起動信号の２つが入力されている。電圧監視回路３３８は、電源制御部６６０から主制御部３００に供給している電源の電圧値が所定の値（本実施形態では９ｖ）未満である場合に電圧が低下したことを示す低電圧信号（例えば、Ｌレベルの信号）を出力する。また、ＷＤＴ３１４は、ＷＤＴのタイムアウトによってＷＤＴ起動信号（例えば、Ｌレベルの信号）を出力する。
【０８８３】
ランダム遅延回路３１７は、電圧監視回路３３８が出力する低電圧信号、または、ＷＤＴ３１４が出力するＷＤＴ起動信号を入力端子から入力した後、ランダムに選択した遅延時間の経過を待って、当該入力信号をＣＰＵ３０４のリセット信号入力端子ＸＳＲＳＴに向けて出力する。図９を用いて説明したように、ＣＰＵ３０４は、リセット信号入力端子ＸＳＲＳＴに所定期間（例えば、システムクロックの４周期分の期間）以上のＬレベルの信号が入力された後にＨレベルの信号が入力された場合にシステムリセット（初期化）される。このため、この例では、ＣＰＵ３０４は、電圧監視回路３３８が出力する低電圧信号、または、ＷＤＴ３１４が出力するＷＤＴ起動信号のいずれかに遅延時間を付加した信号に基づいてシステムリセット（初期化）される。
【０８８４】
＜主制御部の第２変形例＞
図１０９（ｂ）は主制御部の構成の第２変形例を示した図である。この例では、ＷＤＴ３１４が出力するＷＤＴ起動信号を、ランダム遅延回路３１７を介さずにＣＰＵ３０４のリセット信号入力端子ＸＳＲＳＴに向けて直接、出力するように構成している。このため、この例では、ＣＰＵ３０４は、電圧監視回路３３８が出力する低電圧信号の出力タイミングを遅延時間だけ遅延させた信号、または、ＷＤＴ３１４が出力するＷＤＴ起動信号（遅延時間なし）に基づいてシステムリセット（初期化）される。
【０８８５】
同図（ｃ）は、上述のランダム遅延回路３１７、電圧監視回路３３８、およびＷＤＴ３１４を有して構成されたリセット回路の構成例を示した図である。この例では、ＣＰＵ３０４を、（１）ＷＤＴ３１４が出力するＷＤＴ起動信号（遅延時間なし）に基づいてシステムリセット、（２）ＷＤＴ３１４が出力するＷＤＴ起動信号にランダム遅延回路３１７で選択した遅延時間だけ出力タイミングを遅延させた信号に基づいてシステムリセット、（３）ＷＤＴ３１４が出力するＷＤＴ起動信号をリセット信号入力端子ＸＳＲＳＴに入力させずに低電圧信号のみに基づいてシステムリセット、の３つの状態のいずれかをＣＰＵ３０４が選択可能に構成している。また、ランダム遅延回路３１７によって付加される遅延時間の設定が可能で、ＷＤＴ起動信号に付加する遅延時間と低電圧信号に付加する遅延時間を個別に設定可能に構成している。これらの選択や設定、ＷＤＴ３１４のスタートやリセットは、例えば、ＣＰＵ３０４のデータ入出力端子Ｄ０〜Ｄ７を介してリセット回路に内蔵したレジスタに設定値を書き込んだり、リセット回路の所定の入力端子に所定のレベルの信号（設定値に対応する信号）を入力したりすることで行われる。
【０８８６】
＜リセット回路の第１変形例＞
図１１０（ａ）は、図１０９（ｃ）に示すリセット回路の第１変形例を示した図である。この例では、リセット回路に内蔵された第一ＷＤＴ３１４ａとは別に、ＣＰＵ３０４にも第二ＷＤＴ３１４ｂを内蔵している。そして、ＣＰＵ３０４は、リセット信号入力端子ＸＳＲＳＴに入力するリセット信号によってシステムリセット（外部リセット）を行うか、内蔵する第二ＷＤＴ３１４ｂのタイムアウトによってシステムリセット（内部リセット）を行うか、の選択が可能なレジスタを備えている。
【０８８７】
＜リセット回路の第２変形例＞
同図（ｂ）は、図１０９（ｃ）に示すリセット回路の第２変形例を示した図である。この例では、ＣＰＵ３０４が、リセット回路に内蔵していたランダム遅延回路３１７を内蔵しているとともに、リセット信号出力端子ＸＲＳＴＯを備えている。そして、ＣＰＵ３０４は、外部リセットに基づいてリセット信号出力端子ＸＲＳＴＯからリセット信号を出力するか、内部リセットに基づいてリセット信号出力端子ＸＲＳＴＯからリセット信号を出力するか、の選択が可能なレジスタを備えている。また、ＣＰＵ３０４は、リセット信号出力端子ＸＲＳＴＯから出力するリセット信号に、ランダム遅延回路３１７が選択する遅延時間を付与するか否かの選択が可能なレジスタも備えており、また、外部リセットに基づくリセット信号の出力タイミングを遅延させるための遅延時間と、内部リセットに基づくリセット信号の出力タイミングを遅延させるための遅延時間を個別に設定可能に構成している。
【０８８８】
＜リセット回路の第３変形例＞
図１１１（ａ）は、図１０９（ｃ）に示すリセット回路の第３変形例を示した図である。この例では、電圧監視回路３３８から出力される低電圧信号の出力タイミングを遅延させる遅延時間を設定するための第１ランダム遅延回路３１７ａと、ＷＤＴが出力するＷＤＴ起動信号の出力タイミングを遅延させる遅延時間を設定するための第２ランダム遅延回路３１７ｂと、を別に設けている。すなわち、この例では、ＣＰＵ３０４を、（１）電圧監視回路３３８が出力する低電圧信号に、第１ランダム遅延回路３１７ａで選択した遅延時間だけ出力タイミングを遅延させた信号に基づいてシステムリセット、（２）ＷＤＴ３１４が出力するＷＤＴ起動信号に、第２ランダム遅延回路３１７ｂで選択した遅延時間だけ出力タイミングを遅延させた信号に基づいてシステムリセット、（３）ＷＤＴ３１４が出力するＷＤＴ起動信号（遅延時間なし）に基づいてシステムリセット、の３つの状態のいずれかをＣＰＵ３０４が選択可能に構成している。また、低電圧信号やＷＤＴ起動信号の出力タイミングを遅延させるための各々の遅延時間を第１ランダム遅延回路３１７ａ、第２ランダム遅延回路３１７ｂによって個別に設定可能に構成している。これらの選択や設定、ＷＤＴ３１４のスタートやリセットは、例えば、ＣＰＵ３０４のデータ入出力端子Ｄ０〜Ｄ７を介してリセット回路に内蔵したレジスタに設定値を書き込んだり、リセット回路の所定の入力端子に所定のレベルの信号（設定値に対応する信号）を入力したりすることで行われる。
【０８８９】
＜リセット信号出力端子の接続の一例＞
図１１１（ｂ）は、ＣＰＵ３０４に接続される各種ＩＣの一部を示した図である。この例では、ＣＰＵ３０４は、リセットに関連する端子として、同図（ａ）に示す電圧監視回路３３８が出力する低電圧信号に基づいて生成されるリセット信号が入力されるリセット信号入力端子ＸＳＲＳＴ１と、同図（ａ）に示すＷＤＴ３１４が出力するＷＤＴ起動信号に基づいて生成されるリセット信号が入力されるリセット信号入力端子ＸＳＲＳＴ２と、リセット信号を出力するためのリセット信号出力端子ＸＲＳＴＯの３つの端子を備える。
【０８９０】
図９を用いて説明したように、ＣＰＵ３０４は、リセット信号入力端子ＸＳＲＳＴ１（またはリセット信号入力端子ＸＳＲＳＴ２）に所定期間（例えば、システムクロックの４周期分の期間）以上のＬレベルの信号が入力された後に、当該入力端子にＨレベルの信号が入力された場合にシステムリセット（初期化）される。
【０８９１】
また、リセット信号出力端子ＸＲＳＴＯには、複数（この例では４つ）のＩＣ１１〜ＩＣ１４の入力端子と、他の回路の入力端子が接続されている。ここで、ＩＣ１１〜ＩＣ１４や他の回路としては、例えば、アドレスデコーダやフリップフロップ等のロジックＩＣ、図４に示される各種回路・ＩＣ・装置（例えば、乱数値生成回路、起動信号出力回路、駆動回路、音源ＩＣ、センサ回路、遮蔽装置、装飾図柄表示装置）を適用することができる。また、ＩＣ１１〜ＩＣ１４や他の回路の入力端子としては、回路全体を初期化するためのリセット信号が入力されるリセット端子や、回路の一部を初期化するための信号が入力されるＣＬＲ端子などを適用することができる。
【０８９２】
＜リセット信号出力端子の接続の第１変形例＞
図１１２は、図１１１（ｂ）に示すリセット信号出力端子ＸＲＳＴＯの接続の第１変形例を示した図である。この例では、ＣＰＵ３０４は、上述のリセット信号出力端子ＸＲＳＴＯをＩＣ１１の入力端子９に接続することに加えて、８本のデータ信号端子Ｄ０〜Ｄ７を、ＩＣ１１のデータ信号入力端子１〜入力端子８の各々に接続している。また、ＩＣ１１は、データ信号入力端子１〜入力端子８の各々に対応する出力端子１〜８を備えており、これらの出力端子１〜８を、図示しない第１副制御部４００のＣＰＵ４０４の８本のデータ信号入力端子に接続している。すなわち、ＣＰＵ３０４のデータ信号線が、ＩＣ１１を介して第１副制御部４００のＣＰＵ４０４に入力されており、ＣＰＵ３０４と第１副制御部４００のＣＰＵ４０４は、ＩＣ１１を介して通信可能に構成されている。なお、ＣＰＵ３０４とＣＰＵ４０４を、ＩＣ１１に加えて（または替えて）、上述のＩＣ１２〜ＩＣ１４の一部または全てを介して通信可能に構成してもよい。また、ＣＰＵ３０４とＣＰＵ４０４を、これらのＩＣ１１〜ＩＣ１４に加えて（または替えて）、中継基板を介して通信可能に構成してもよい。
【０８９３】
＜リセット信号出力端子の接続の第２変形例＞
図１１３は、図４を用いて説明した基本回路３０２と、この基本回路３０２に接続される各種ＩＣの一部を示した図である。なお、ここでは、主制御部３００の基本回路３０２について説明するが、主制御部３００の基本回路３０２に替えて（または、加えて）第１副制御部４００の基本回路４０２、第２副制御部５００の基本回路５０２、その他の制御部（例えば、払出制御部６００）の基本回路に相当する回路に適用することもできる。
【０８９４】
基本回路３０２は、リセットに関連する端子として、上述のリセット信号入力端子ＸＳＲＳＴとリセット信号出力端子ＸＲＳＴＯの２つの端子を備える。リセット信号入力端子ＸＳＲＳＴには、ＩＣ０１（例えば、上述のリセット回路や電源監視回路）の出力端子が接続されており、図９を用いて説明したように、基本回路３０２のＣＰＵ３０４は、リセット信号入力端子ＸＳＲＳＴに所定期間（例えば、システムクロックの４周期分の期間）以上のＬレベルの信号が入力された後にＨレベルの信号が入力された場合にシステムリセット（初期化）される。
【０８９５】
また、リセット信号出力端子ＸＲＳＴＯには、複数（この例では４つ）のＩＣ１１〜ＩＣ１４の入力端子と、他の回路の入力端子が接続されている。ここで、ＩＣ１１〜ＩＣ１４や他の回路としては、例えば、アドレスデコーダやフリップフロップ等のロジックＩＣ、図４に示される各種回路・ＩＣ・装置（例えば、乱数値生成回路、起動信号出力回路、駆動回路、音源ＩＣ、センサ回路、遮蔽装置、装飾図柄表示装置）を適用することができる。また、ＩＣ１１〜ＩＣ１４や他の回路の入力端子としては、回路全体を初期化するためのリセット信号が入力されるリセット端子や、回路の一部を初期化するための信号が入力されるＣＬＲ端子などを適用することができる。
【０８９６】
＜固定延長時間とランダム延長時間＞
次に、図１１４を用いて、システムリセット後に基本回路３０２によって実行される固定延長処理とランダム延長処理の時間設定について説明する。図９を用いて説明したように、ＣＰＵ３０４は、セキュリティモードにおいてセキュリティチェック処理→固定延長処理→ランダム延長処理の順番で各々の処理を実行した後、ユーザモードに移行し、遊技制御用プログラムを実行するように構成されている。本実施形態では、固定延長処理の処理時間（固定延長時間）とランダム延長処理の処理時間（ランダム延長時間）の各々をＣＰＵ３０４に予め設定することによって、セキュリティモード（＝セキュリティチェック処理＋固定延長処理＋ランダム延長処理）の時間を、設定した時間分だけ延長することが可能である。
【０８９７】
図１１４（ａ）は固定延長時間の設定例を示したものである。この例では、ＣＰＵ３０４の所定記憶領域に、３ビット長の設定値データ０００Ｂ〜１１１Ｂのいずれかを予め設定することによって、同図に示す時間だけ固定延長時間を延長できるように構成されている。なお、この例では、設定値データが１１１Ｂの場合を除き、固定延長時間は、「２の２２乗×（１／ＳＣＬＫ）×設定値データ」の計算式によって算出される。
【０８９８】
例えば、設定値データを０００Ｂに設定した場合には、システムクロックＳＣＬＫの周波数とは無関係に固定延長時間が０（延長しない）に設定され、設定値データを００１Ｂに設定した場合、システムクロックＳＣＬＫの周波数が８ＭＨｚのときは固定延長時間が約５２５ｍｓ（＝２の２２乗×（１／８ＭＨｚ）×１）に設定され、システムクロックＳＣＬＫの周波数が１０ＭＨｚのときは固定延長時間が約４２０ｍｓ（＝２の２２乗×（１／１０ＭＨｚ）×１）に設定され、システムクロックＳＣＬＫの周波数が１２ＭＨｚのときは固定延長時間が約３５０ｍｓ（＝２の２２乗×（１／１２ＭＨｚ）×１）に設定される。
【０８９９】
なお、この例では、固定延長時間をシステムクロックＳＣＬＫに基づいて算出する例を示したが、例えば、他の設定値（例えば、後述するランダム延長時間）などに基づいて算出してもよいし、システムクロックＳＣＬＫと他の設定値の両方に基づいて算出してもよい。また、システムクロックＳＣＬＫと固定延長時間を反比例の関係にする例を示したが、両者が比例関係にあってもよい。また、設定値データが１１１Ｂの場合には、システムクロックＳＣＬＫの周波数とは無関係に固定延長時間を共通の約３００００ｍｓに設定する例を示したが、設定値データが１１１Ｂの場合も上述の計算式によって算出してもよいし、最大値を設定してもよい。また、設定値データのデータ長は３ビットに限定されず、延長時間の種類を増やしてもよい。また、固定延長時間に０を含めずに０より大きい時間に限定してもよい（ＣＰＵ３０４が必ず固定延長処理を実行するものとしてもよい）。また、内部リセットと外部リセットで、異なる固定延長時間の設定を可能に構成してもよい。
【０９００】
図１１４（ｂ）はランダム延長時間の設定例を示したものである。この例では、ＣＰＵ３０４の所定記憶領域に、２ビット長の設定値データ００Ｂ〜１１Ｂのいずれかを予め設定することによって、同図に示す時間だけランダム延長時間を延長することができるように構成されている。例えば、設定値データを００Ｂに設定した場合、システムクロックＳＣＬＫの周波数とは無関係にランダム延長時間が０（延長しない）に設定され、設定値データを０１Ｂに設定した場合、システムクロックＳＣＬＫの周波数が８ＭＨｚのときはランダム延長時間が０〜０．５ｍｓのランダムな時間（ＣＰＵ３０４のコアによってランダムに選択された時間）に設定され、システムクロックＳＣＬＫの周波数が１０ＭＨｚのときはランダム延長時間が０〜０．４ｍｓのランダムな時間に設定され、システムクロックＳＣＬＫの周波数が１２ＭＨｚのときはランダム延長時間が０〜０．３ｍｓのランダムな時間に設定される。
【０９０１】
なお、この例では、ランダム延長時間をシステムクロックＳＣＬＫによって変化させる例を示したが、異なるシステムクロックＳＣＬＫ間で同一に設定してもよい。また、他の設定値（例えば、上述の固定延長時間）などに基づいて算出してもよいし、システムクロックＳＣＬＫと他の設定値の両方に基づいて算出してもよい。また、設定値データのデータ長は２ビットに限定されず、延長時間の種類を増やしてもよい。また、ランダム延長時間に０を含めずに０より大きい時間に限定してもよい（ＣＰＵ３０４が必ずランダム延長処理を実行するものとしてもよい）。また、内部リセットと外部リセットで、異なるランダム延長時間の設定を可能に構成してもよい。また、固定延長時間とランダム延長時間の一方について基準クロックを可変とし、他方については基準クロックを固定に構成してもよい。
【０９０２】
＜ＷＤＴタイムアウト時間＞
次に、図１１５を用いて、ＷＤＴ３１４のタイムアウト時間設定について説明する。なお、同図はＷＤＴ３１４のタイムアウト時間の設定例を示したものである。この例では、ＣＰＵ３０４の所定記憶領域に、４ビット長の設定値データ００００Ｂ〜１０００Ｂのいずれかを予め設定することによって、同図に示す時間だけタイムアウト時間を設定できるように構成されている。例えば、設定値データを００００Ｂに設定した場合には、システムクロックＳＣＬＫの周波数とは無関係にタイムアウト時間が禁止（ＷＤＴを使用しない）に設定され、設定値データを０００１Ｂに設定した場合、システムクロックＳＣＬＫの周波数が８ＭＨｚのときはタイムアウト時間が約６５ｍｓに設定され、システムクロックＳＣＬＫの周波数が１０ＭＨｚのときはタイムアウト時間が約５２ｍｓに設定され、システムクロックＳＣＬＫの周波数が１２ＭＨｚのときはタイムアウト時間が約４４ｍｓに設定される。
【０９０３】
なお、この例では、タイムアウト時間をシステムクロックＳＣＬＫによって変化させる例を示したが、異なるシステムクロックＳＣＬＫ間で同一に設定してもよい。また、他の設定値（例えば、上述の固定延長時間やランダム延長時間）などに基づいて算出してもよいし、システムクロックＳＣＬＫと他の設定値の両方に基づいて算出してもよい。また、設定値データのデータ長は４ビットに限定されず、タイムアウト時間の種類を増やしてもよい。また、タイムアウト時間が上述の固定延長時間よりも小さくなるように設定しているが、タイムアウト時間が上述の固定延長時間よりも大きくなるように設定してもよい。
【０９０４】
＜リセット出力信号とセキュリティモード＞
次に、上述のリセット出力端子ＸＳＲＳＴＯの出力信号の変化と、セキュリティモードの状態変化との関係について説明する。図１１６（ａ）に示す例は、上記図９と同一の状態を示しており、リセット入力端子ＸＳＲＳＴに所定期間以上のＬレベルの信号が入力された後にＨレベルの信号が入力されたことによってセキュリティモードに移行している。そして、このセキュリティモードにおいて、最初にセキュリティチェック処理が実行され、次に、上述の固定延長時間の設定に応じた期間の経過を待つ固定延長処理が実行され、当該固定延長処理が終了したときにリセット出力端子ＸＲＳＴＯからＨレベルの信号を出力し、その後、上述のランダム延長時間の設定に応じたランダムな期間の経過を待つランダム延長処理が終了した場合にユーザモードに移行し、遊技制御用プログラムの実行が開始されている。すなわち、この例では、固定延長処理の終了タイミング（＝ランダム延長処理の開始タイミング）と、リセット出力端子ＸＲＳＴＯからＨレベルの信号を出力するタイミングを一致させている。
【０９０５】
また、図１１６（ｂ）に示す例は、固定延長処理が終了した後、所定時間が経過したときにリセット出力端子ＸＲＳＴＯからＨレベルの信号を出力し、その後、ランダム延長処理が終了した場合にユーザモードに移行し、遊技制御用プログラムの実行が開始されている。すなわち、この例では、固定延長処理が終了した後、ランダム延長処理が終了してユーザモードに移行する前（遊技制御用プログラムの実行が開始される前）にリセット出力端子ＸＲＳＴＯからＨレベルの信号を出力している。なお、所定時間（固定延長処理が終了してから、リセット出力端子ＸＲＳＴＯからＨレベルの信号を出力するまでの時間）は、固定時間でもよいし可変時間でもよい。また、固定時間を採用した場合には、例えば、固定延長処理が終了してから、システムクロックＳＣＬＫが所定クロック（例えば、４クロック）経過した後のシステムクロックＳＣＬＫ立上がりエッジ（または、立下りエッジ）までの時間を、所定時間に設定してもよい。また、可変時間を採用した場合には、システムリセットの度に所定時間をランダムな時間に変化させてもよい。
【０９０６】
＜ランダム延長時間を変化させる場合＞
図１１７（ａ）、（ｂ）は、固定延長処理の終了タイミング（＝ランダム延長処理の開始タイミング）と、リセット出力端子ＸＲＳＴＯからＨレベルの信号を出力するタイミングが一致するが、ランダム延長時間が異なる例を示した図である。すなわち、同図（ａ）と（ｂ）では、固定延長時間の設定値が同一（例えば、設定値＝００１Ｂ、ＳＣＬＫ＝約８ＭＨｚ）であるとともに、ランダム延長時間の設定値も同一（例えば、設定値＝０１Ｂ、ＳＣＬＫ＝８ＭＨｚ）であるが、同図（ａ）では、ランダム延長時間の数値範囲（例えば、０〜０．５ｍｓ）から時間Ａ１（例えば、０．２ｍｓ）が選択されている一方で、同図（ｂ）では、ランダム延長時間の数値範囲（例えば、０〜０．５ｍｓ）から、時間Ａ１よりも長い時間Ａ２（例えば、０．３ｍｓ）が選択されている。なお、この例では、ランダム延長時間の数値範囲として０〜０．５ｍｓを選択しているため、ランダム延長時間が０（ランダム延長時間無し）になる場合も含まれている。
【０９０７】
このように、固定延長時間やランダム延長時間の設定が同じであってもランダム延長時間（Ａ１、Ａ２）を変化させることによって、リセット出力端子ＸＲＳＴＯのＨレベル信号出力から、ユーザモードが開始されるまでの時間（Ａ１、Ａ２）を、システムリセットの度に変化させることができる。このため、リセット信号出力端子ＸＲＳＴＯに接続されたＩＣ１１〜ＩＣ１４や他の回路にＨレベルの信号を出力してから（ＩＣ１１〜ＩＣ１４や他の回路を起動したり初期化してから）、遊技制御用プログラムが実行されるまでの時間を変化させることができ、ＣＰＵ３０４の各端子からの出力信号やＣＰＵ３０４の周辺ＩＣの動作などを手掛かりにして遊技制御用プログラムの実行タイミング（例えば、当否判定の抽選タイミング）を把握するような不正行為を未然に防止できる場合がある。なお、この例では、ランダム延長時間の設定値を同一にしたが、両者のランダム延長時間の設定値を異ならせてもよい。
【０９０８】
＜固定延長時間を変化させる場合＞
図１１７（ｃ）、（ｄ）は、固定延長処理の終了タイミング（＝ランダム延長処理の開始タイミング）と、リセット出力端子ＸＲＳＴＯからＨレベルの信号を出力するタイミングが一致するが、固定延長時間が異なる例を示した図である。すなわち、同図（ｃ）と（ｄ）では、ランダム延長時間の設定値データは同一（例えば、設定値＝０１Ｂ、ＳＣＬＫ＝８ＭＨｚ）であり、同図（ａ）および（ｂ）でランダム延長時間の数値範囲（例えば、０〜０．５ｍｓ）から同一の時間Ａ１（例えば、０．２ｍｓ）が設定される一方で、同図（ｃ）では、固定延長時間を時間Ｂ１（例えば、設定値＝００１Ｂ、ＳＣＬＫ＝８ＭＨｚ、約５２５ｍｓ）、同図（ｄ）では、固定延長時間を時間Ｂ１よりも長い時間Ｂ２（例えば、設定値＝０１０Ｂ、ＳＣＬＫ＝８ＭＨｚ、約１０５０ｍｓ）に設定している（Ｂ１＜Ｂ２）。
【０９０９】
このように、ランダム延長時間（Ａ１）が同じであっても固定延長時間（Ｂ１、Ｂ２）を変化させることによって、固定延長処理が開始されてからユーザモードが開始されるまでの時間（Ｃ１、Ｃ２）を変化させることができる。このため、ＣＰＵ３０４のシステムリセットから遊技制御用プログラムが実行されるまでの時間をシステムリセットの度に変化させることができ、ＣＰＵ３０４のリセット入力端子ＸＳＲＳＴに入力するリセット信号などを手掛かりにして遊技制御用プログラムの実行タイミング（例えば、当否判定の抽選タイミング）を把握するような不正行為を未然に防止できる場合がある。なお、図１０９では、固定延長時間とランダム延長時間の一方を異ならせる例を示したが、両者が異なるようにすれば、遊技制御用プログラムの実行タイミングを把握するような不正行為を、より確実に防止できる場合がある。
【０９１０】
＜固定延長処理を契機にリセット出力信号を変化させる場合＞
図１１８は、固定延長処理を契機にリセット出力信号を変化させる例を示した図である。この例では、固定延長処理の開始タイミング（＝セキュリティチェック処理の終了タイミング）と、リセット出力端子ＸＲＳＴＯからＨレベルの信号を出力するタイミングを一致させている。なお、固定延長処理を契機にリセット出力信号を変化させればよいため、例えば、固定延長処理の開始前（例えば、固定延長処理の開始タイミングから２００ｍｓ前）にリセット出力信号を出力してもよいし、固定延長時間の設定値に応じて遅延時間を決定し、当該遅延時間の経過を待ってからリセット出力信号を出力してもよい。また、内部リセット（内蔵するＷＤＴのタイムアウトに基づくリセット）か、外部リセット（ＸＳＲＳＴ端子への信号入力に基づくリセット）かを判別し、当該リセットの種類に応じてリセット出力信号の出力タイミングを決定してもよい。
【０９１１】
また、過去のリセットの種類を記憶する記憶手段を備え、当該記憶手段に記憶されたリセットの種類の履歴に基づいてリセット出力信号の出力タイミングを変化させてもよく、例えば、内部リセットが複数回連続した場合には、リセット出力信号の出力タイミングを前回よりも遅らせたり早めたりしてもよい。
【０９１２】
＜他の出力信号とセキュリティモード＞
図１１９は、ＣＰＵ３０４から出力されるアドレス信号、データ信号、制御信号、およびリセット出力信号の変化と、セキュリティモードの状態変化を示した図である。この例では、ＣＰＵ３０４は、固定延長処理が終了したとき（ランダム延長処理を開始したとき）にリセット出力端子ＸＲＳＴＯからＨレベルの信号を出力するとともに、同じタイミングで外部のＩＣ（例えば、ＲＯＭ３０６、ＲＡＭ３０８）との間でデータのリード（またはライト）を開始している。このため、この例では、リセット出力端子ＸＲＳＴＯからＨレベルの信号を出力すると同時に、アドレス信号Ａ０〜Ａ１５端子から１６ビットのアドレス情報（この例では、００００ｈ）の出力を開始し、制御信号ＸＭ１端子からアドレス情報のラッチタイミング（外部のＩＣがアドレス情報を取り込むタイミング）を示す制御信号を出力し、続けて、データ信号Ｄ０〜Ｄ７端子から８ビットのデータ情報（この例では、オペコード）の出力を開始し、制御信号ＸＭ１端子からデータ情報のラッチタイミング（外部のＩＣがデータ情報を取り込むタイミング）を示す制御信号を出力している。
【０９１３】
なお、この例では、リセット出力端子ＸＲＳＴＯからＨレベルの信号を出力すると同時にアドレス信号と制御信号の出力を開始しているが、例えば、リセット出力よりも前にアドレス信号と制御信号の出力を開始してもよいし、リセット出力よりも後（例えば、セキュリティモードからユーザモードに移行した直後）にアドレス信号と制御信号の出力を開始してもよい。なお、ＸＭ１端子から出力する制御信号は、例えば、ＣＰＵ３０４のマシンサイクルを示す出力信号でもよいし、メモリ空間やＩ／Ｏ空間へのリクエスト出力信号でもよいし、リードサイクルやライトサイクルを示す出力信号でもよい。
【０９１４】
図１２０（ａ）は外部リセット後の他の出力信号の状態変化を示した図であり、同図（ｂ）は内部リセット後の他の出力信号の状態変化を示した図である。この例では、外部リセットの場合には、ランダム延長処理よりも所定時間Ａ１だけ前に、アドレス信号Ａ０〜Ａ１５端子から１６ビットのアドレス情報（この例では、００００ｈ）の出力を開始し、制御信号ＸＭ１端子からアドレス情報のラッチタイミングを示す制御信号を出力している。一方、内部リセットの場合には、ランダム延長処理よりも所定時間Ａ２（Ａ２＞Ａ１）だけ前に、アドレス信号Ａ０〜Ａ１５端子から１６ビットのアドレス情報（この例では、００００ｈ）の出力を開始し、制御信号ＸＭ１端子からアドレス情報のラッチタイミングを示す制御信号を出力している。すなわち、この例では、外部リセットと内部リセットで、アドレス信号Ａ０〜Ａ１５端子の信号出力と、制御信号ＸＭ１端子の信号出力のタイミングを異ならせている。
【０９１５】
また、内部リセットの場合には、ＷＤＴ３１４のタイムアウト直後に、アドレス信号Ａ０〜Ａ１５端子から１６ビットのアドレス情報（この例では、Ｅ０００ｈ）の出力を行うように構成し、外部リセット直後のアドレス情報（例えば、００００ｈ）と異ならせている。なお、内部リセット直後に出力するアドレス情報と、外部リセット直後に出力するアドレス情報を同一に設定してもよい。
【０９１６】
図１２１（ａ）は外部リセット後の他の出力信号の状態変化の他の例を示した図であり、同図（ｂ）は内部リセット後の他の出力信号の状態変化の他の例を示した図である。この例では、内部リセットの場合には、外部リセットのリセット解除時間Ｂ１よりも長い時間Ｂ２の経過を待って、内部リセットを解除するように設定している。なお、本構成と、上記図１１５を用いて説明した各構成を組み合わせて実現してもよい。
【０９１７】
＜セキュリティモードの開始タイミング＞
図１２２（ａ）は外部システムリセット後のセキュリティモードの開始タイミングの一例を示した図であり、同図（ｂ）は内部システムリセット後のセキュリティモードの開始タイミングの一例を示した図である。この例では、外部システムリセットの場合には、当該外部システムリセットの要因が発生してから（例えば、リセット入力信号ＸＳＲＳＴの立下りエッジを検出してから）、時間Ｃ１（例えば、システムクロックＳＣＬＫの４クロック分の時間）が経過した後にセキュリティモードが開始されるように構成している。一方、内部システムリセットの場合には、内部リセットの要因が発生してから（例えば、ＷＤＴタイマがタイムアウトしてから）、時間Ｃ２（例えば、システムクロックＳＣＬＫの１クロック分の時間）が経過した後にセキュリティモードが開始されるように構成している。
【０９１８】
なお、この例では、外部リセットの要因が発生してからセキュリティモードが開始されるまでの時間Ｃ１を、内部リセットの要因が発生してからセキュリティモードが開始されるまでの時間Ｃ２よりも長くしているが（Ｃ１＞Ｃ２）、外部リセットの要因が発生してからセキュリティモードが開始されるまでの時間Ｃ１を、内部リセットの要因が発生してからセキュリティモードが開始されるまでの時間Ｃ２よりも短くしてもよい（Ｃ１＜Ｃ２）。
【０９１９】
また、上述の例では、セキュリティモードに含まれるランダム延長処理の実行時間（ランダム延長時間）や固定延長処理（固定延長時間）をリセットの要因によらずに自由に設定可能としたが、例えば、外部リセットと内部リセットで、ランダム延長時間の設定用レジスタと固定延長時間の設定用レジスタをそれぞれ一種類だけ備えるように構成し、外部リセットと内部リセットで、ランダム延長時間や固定延長時間を個別に設定することを禁止してもよい（共通の設定だけを許可してもよい）。
【０９２０】
図１２３は、本発明の基本概念を示した図である。本発明では、第１の事象に基づいて第２の事象を開始するときに、第１の事象が第１の要因に起因する場合と、第１の事象が第２の要因に起因する場合と、で第２の事象を開始するタイミングを異ならせることができる。
【０９２１】
例えば、上記図１２２を用いて説明したセキュリティモードの開始タイミングについて考えると、第１の事象（リセット）に基づいて第２の事象（セキュリティモード）を開始する場合に、第１の事象が第１の要因（外部システムリセット）に起因する場合と、第１の事象が第２の要因（内部システムリセット）に起因する場合と、で第２の事象（セキュリティモード）を開始するタイミングを異ならせることができる。このため、第１の要因（外部システムリセット）が発生してから第２の事象（セキュリティモード）が開始されるまでの時間Ｃ１を、第２の要因（内部システムリセット）が発生してから第２の事象（セキュリティモード）が開始されるまでの時間Ｃ２よりも長くしたり（Ｃ１＞Ｃ２）、第１の要因（外部システムリセット）が発生してから第２の事象（セキュリティモード）が開始されるまでの時間Ｃ１を、第２の要因（内部システムリセット）が発生してから第２の事象（セキュリティモード）が開始されるまでの時間Ｃ２よりも短くすることができる。
【０９２２】
また、セキュリティモードを開始するタイミングを異ならせることができるため、その後に実行されるユーザモードを開始するタイミングも異ならせることも可能となる。例えば、第１の事象が第１の要因に起因する場合と、第１の事象が第２の要因に起因する場合と、でセキュリティモードの実行時間が同じであっても、セキュリティモードを開始するタイミングを異ならせれば、第１の事象が第１の要因に起因する場合と、第１の事象が第２の要因に起因する場合と、でユーザモードを開始するタイミングを異ならせることができる。
【０９２３】
また、第１の事象が第１の要因に起因する場合と、第１の事象が第２の要因に起因する場合と、でセキュリティモードを開始するタイミングを異ならせなくても、セキュリティモードの実行時間を異ならせれば、第１の事象が第１の要因に起因する場合と、第１の事象が第２の要因に起因する場合と、でユーザモードを開始するタイミングを異ならせることができる。
【０９２４】
＜他の実施形態＞
次に、他の実施形態に係るパチンコ機について説明する。本実施形態に記載した複数の構成のうち、１つの構成に記載している内容を、他の構成に適用することでより遊技の幅を広げられる場合がある。
【０９２５】
例えば、図１２４（ａ）は、図２を用いて説明した電源基板１８２、払出基板１７０、および主基板１５６の接続例を示した図である。電源基板１８２は、ＲＡＭクリアスイッチ１８０と、このＲＡＭクリアスイッチ１８０の操作が検出された場合に、検出信号を出力するための検出信号出力端子と、を備える。電源基板１８２のＣＰＵは、ＲＡＭクリアスイッチ１８０の操作の有無を定期的に検出し、検出結果（例えば、操作ありの場合にはＨレベルの信号、操作なしの場合にはＬレベルの信号）を検出信号出力端子から払出基板１７０に向けて出力する。
【０９２６】
払出基板１７０は、電源基板１８２の検出信号出力端子に接続される検出信号入力端子と、この検出信号入力端子を介して取得したＲＡＭクリアスイッチ１８０の操作情報を一時的に記憶するためのＲＡＭクリアスイッチ操作情報一時憶手段１７１（例えば、ＲＡＭ、ＣＰＵのレジスタ、フリップフロップ）と、このＲＡＭクリアスイッチ操作情報一時憶手段１７１に記憶された操作情報を出力するための操作情報出力端子と、を備える。払出基板１７０のＣＰＵは、電源投入後やシステムリセット後の初期処理などにおいて、検出信号入力端子に入力された信号を検出し、ＲＡＭクリアスイッチ１８０が操作されているか否かを示す操作情報（例えば、Ｈレベルの信号を検出した場合には操作ありを示す１の情報、Ｌレベルの信号を検出した場合には操作無しの情報を示す０の情報）をＲＡＭクリアスイッチ操作情報一時憶手段１７１の所定記憶領域に記憶するとともに、当該操作情報に対応する情報（例えば、操作ありの操作情報の場合にはＨレベルの信号、操作無しの操作情報の場合にはＬレベルの信号）を操作情報出力端子から主基板１５６に向けて出力する。
【０９２７】
主基板１５６は、払出基板１７０の操作情報出力端子に接続される操作情報入力端子（上述のＩ／Ｏ４１０）と、ＲＡＭクリアタイミング報知用ＬＥＤ１５５と、を備える。主基板１５６に搭載されたＣＰＵ３０４は、初期設定において、ＲＡＭクリアタイミング報知用ＬＥＤ１５５を点灯させた後に（ＲＡＭクリアが可能であることを報知した後に）、操作情報入力端子（Ｉ／Ｏ３１０）の入力信号を確認し、Ｈレベルの信号を検出した場合には、ＲＡＭ３０８の所定領域の初期化（ＲＡＭクリア）を行う。
【０９２８】
図１２５は、変形例に係る主制御部メイン処理の流れを示すフローチャートであり、上記図１０に対応するフローチャートである。なお、図１０に示すフローチャートと同一の部分については同一の符号を付し、その説明は省略する。また、図１２６は、主制御部メイン処理における初期設定２の流れを示すフローチャートである。
【０９２９】
ＣＰＵ３０４は、初期設定２のステップＳ１２８において、ＲＡＭクリアタイミング報知用ＬＥＤ１５５を点灯させた後に（ＲＡＭクリアが可能であることを報知した後に）、操作情報入力端子（Ｉ／Ｏ３１０）の入力信号を確認し、ＲＡＭクリアスイッチ１８０が操作されているか否かを示す操作情報（例えば、Ｈレベルの信号を検出した場合には操作ありを示す１の情報、Ｌレベルの信号を検出した場合には操作無しの情報を示す０の情報）をＲＡＭ３０８の所定記憶領域に記憶する。
【０９３０】
また、初期設定２の実行後のステップＳ１０９の判定処理では、最初に、ＲＡＭ３０８に操作ありを示す１の情報が記憶されているか否かを判定し、該当する場合（ＲＡＭクリアが必要な場合）には、基本回路３０２を初期状態にすべくステップＳ１１３に進む。一方、操作なしを示す０の情報が記憶されている場合（ＲＡＭクリアが必要でない場合）には、ＲＡＭ３０８に設けた電源ステータス記憶領域に記憶した電源ステータスの情報を読み出し、この電源ステータスの情報がサスペンドを示す情報であるか否かを判定する。そして、電源ステータスの情報がサスペンドを示す情報でない場合には、基本回路３０２を初期状態にすべくステップＳ１１３に進み、電源ステータスの情報がサスペンドを示す情報である場合には、ＲＡＭ３０８の所定の領域（例えば全ての領域）に記憶している１バイトデータを初期値が０である１バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果が特定の値（例えば０）であるか否か（チェックサムの結果が正常であるか否か）を判定する。そして、チェックサムの結果が特定の値（例えば０）の場合（チェックサムの結果が正常である場合）には電断前の状態に復帰すべくステップＳ１１１に進み、チェックサムの結果が特定の値（例えば０）以外である場合（チェックサムの結果が異常である場合）には、パチンコ機を初期状態にすべくステップＳ１１３に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップＳ１１３に進む。
【０９３１】
図１２５に戻って、同図（ｂ）は、図１２４（ａ）に対応する従来の接続態様を示した図である。従来の接続態様では、主基板１５６において上述の固定延長時間として設定データ１１１Ｂ（約３０秒）を設定した場合、セキュリティーモードが終了してユーザモードに移行し、遊技制御用プログラムが開始されるのは、最低でも約３０秒後となる。このため、主基板１５６の遊技制御用プログラムにおいて操作情報入力端子（Ｉ／Ｏ４１０）に入力される信号を検出する構成を採用した場合、ＲＡＭクリアスイッチ１８０が最低でも約３０秒以上操作され続けなければ、ＲＡＭクリアスイッチ１８０の操作の有無を検出することができない上に、外部からは、主基板１５６がＲＡＭクリアスイッチ１８０の操作を検出するタイミングさえも知ることができない。
【０９３２】
これに対して、同図（ａ）に示す本実施形態に係る接続態様では、遊技店の店員などは、ＲＡＭクリアタイミング報知用ＬＥＤ１５５の点灯／消灯を確認することでＲＡＭクリアが可能な状態か否かを即座に判断することができる。このため、ＲＡＭクリアタイミング報知用ＬＥＤ１５５の点灯を待ってＲＡＭクリアスイッチ１８０を操作することで、確実にＲＡＭクリアを行うことができる上に、ＲＡＭクリアスイッチ１８０を長時間に亘って操作し続けるような煩わしさからも解放され、利便性を高めることができる場合がある。また、ＲＡＭクリアタイミング報知用ＬＥＤ１５５の点灯前（ＣＰＵ３０４の遊技制御用プログラムが開始される前に）にＲＡＭクリアスイッチ１８０が操作されてしまった場合でも、払出基板１７０のＣＰＵが起動していれば操作情報を払出基板１７０が記憶することが可能である。このため、主基板１５６は、払出基板１７０のＲＡＭクリアスイッチ操作情報一時憶手段１７１に記憶された操作情報に基づいて、の遊技制御用プログラムの開始後にＲＡＭクリアを確実に実行することができる場合がある。
【０９３３】
なお、本実施形態では、電源基板１８２、払出基板１７０、および主基板１５６の間の信号の入出力を入出力端子を介して行う例を示したが、例えば、通信線を介した制御コマンドの送受信によるものでもよい。また、ＲＡＭクリアスイッチ１８０は、電源基板１８２に配置される例に限定されず、例えば、払出基板１７０に配置してもよい。
【０９３４】
＜主制御部の他の命令＞
次に、主制御部３００が備える他の命令について説明する。なお、以降の説明において、「ｒ」、「ｓ」、「ｓｓ」、または「ｑｑ」は任意のレジスタを表す略号であり、
ｋ」はＴレジスタとペアになる下位アドレスを表す略号であり、「ｎ」は８ビット長の数値（１６進数）を表す略号であり、「ｍｎ」は１６ビット長の数値（１６進数）を表す略号であり、「（  ）」はカッコ内の値が示すアドレスのデータを表す略号である。
【０９３５】
＜他の命令／８ビットロード命令＞
８ビットロード命令は、８ビット長のデータを所定記憶領域にロードする命令であり、例えば、ＬＤ命令、ＬＤＴ命令、またはＣＬＲＴ命令などが該当する。
【０９３６】
例えば、（ＬＤ  Ａ，Ｔ）命令は、Ｔレジスタに記憶されたデータを、Ａレジスタにロードする命令であり、（ＬＤ  Ｔ，ｎ）命令は、８ビット長の数値ｎを、Ｔレジスタにロードする命令である。
【０９３７】
（ＬＤＴ  Ａ，（ｒ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを下位バイトとするアドレスに記憶されたデータを、Ａレジスタにロードする命令であり、（ＬＤＴ  Ａ，（ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、Ａレジスタにロードする命令であり、（ＬＤＴ  ｒ，（ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、ｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）にロードする命令である。
【０９３８】
（ＬＤＴ  （ｒ），Ａ）命令は、Ａレジスタに記憶されたデータを、Ｔレジスタに記憶されたデータを上位バイト、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを下位バイトとするアドレスにロードする命令であり、（ＬＤＴ  （ｋ），Ａ）命令は、Ａレジスタに記憶されたデータを、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令であり、（ＬＤＴ  （ｋ），ｒ）命令は、ｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令である。
【０９３９】
（ＬＤＴ  （ｋ），（ｓｓ））命令は、ｓｓで示されるペアレジスタ（ＢＣ，ＤＥ，ＨＬ）に記憶されたデータが示すアドレスに記憶されたデータを、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令であり、（ＬＤＴ  （ｋ），（ＨＬ＋ｖ））命令は、ＨＬレジスタに記憶されたデータにｖで示されるデータ（ｖ＝１〜７）を加算した加算結果が示すアドレスに記憶されたデータを、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令であり、（ＬＤＴ  （ｋ），（ＨＬ＋ｄ））命令は、ＨＬレジスタに記憶されたデータにｄで示されるデータ（ｄ＝８〜１２７、−１〜−１２８）を加算した加算結果が示すアドレスに記憶されたデータを、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令であり、（ＬＤＴ  （ｓｓ），（ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、ｓｓで示されるペアレジスタ（ＢＣ，ＤＥ，ＨＬ）に記憶されたデータが示すアドレスにロードする命令である。
【０９４０】
（ＬＤＴ  （ＨＬ＋ｖ），（ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、ＨＬレジスタに記憶されたデータにｖで示されるデータ（ｖ＝１〜７）を加算した加算結果が示すアドレスにロードする命令であり、（ＬＤＴ  （ＨＬ＋ｄ），（ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、ＨＬレジスタに記憶されたデータにｄで示されるデータ（ｄ＝８〜１２７、−１〜−１２８）を加算した加算結果が示すアドレスにロードする命令であり、（ＬＤＴ  （ｋ），ｎ）命令は、ｎで示される値を、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令である。
【０９４１】
（ＣＬＲＴ  （ｋ））命令は、数値の０を、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードする命令である。
【０９４２】
＜他の命令／１６ビットロード命令＞
１６ビットロード命令は、１６ビット長のデータを所定記憶領域にロードする命令であり、例えば、ＬＤＴ命令、ＬＤＷＴ命令、ＣＬＲ命令、ＣＬＲＷＴ命令などが該当する。具体的には、（ＬＤＴ  ＢＣ，ｎ）命令は、Ｔレジスタに記憶されたデータをＢレジスタにロードし、かつ、ｎで示される数値をＣレジスタにロードする命令であり、（ＬＤＴ  ＤＥ，ｎ）命令は、Ｔレジスタに記憶されたデータをＤレジスタにロードし、かつ、ｎで示される数値をＥレジスタにロードする命令であり、（ＬＤＴ  ＨＬ，ｎ）命令は、Ｔレジスタに記憶されたデータをＨレジスタにロードし、かつ、ｎで示される数値をＬレジスタにロードする命令である。
【０９４３】
（ＬＤＴ  ＩＸ，ｎ）命令は、Ｔレジスタに記憶されたデータを１６ビット長のＩＸレジスタの上位８ビットにロードし、かつ、ｎで示される数値を１６ビット長のＩＸレジスタの下位８ビットにロードする命令であり、（ＬＤＴ  ＩＹ，ｎ）命令は、Ｔレジスタに記憶されたデータを１６ビット長のＩＹレジスタの上位バイトにロードし、かつ、ｎで示される数値を１６ビット長のＩＹレジスタの下位バイトにロードする命令である。
【０９４４】
（ＬＤＴ  ｓｓ，（ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、ｓｓで示されるペアレジスタ（ＢＣ，ＤＥ）の上位バイトにロードし、かつ、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに１を加算したアドレスに記憶されたデータを、ｓｓで示されるペアレジスタ（ＢＣ，ＤＥ）の下位バイトにロードする命令である。
【０９４５】
（ＬＤＴ  ｑｑ，（ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、ｑｑで示されるペアレジスタ（ＩＸ，ＩＹ）の上位バイトにロードし、かつ、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに１を加算したアドレスに記憶されたデータを、ｑｑで示されるペアレジスタ（ＩＸ，ＩＹ）の下位バイトにロードする命令である。
【０９４６】
（ＬＤＴ  ＨＬ，（ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを、ＨＬレジスタのＬレジスタにロードし、かつＴレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに１を加算したアドレスに記憶されたデータを、ＨＬレジスタのＨレジスタにロードする命令である。
【０９４７】
（ＬＤＴ  （ｋ），ｓｓ）命令は、ｓｓで示されるペアレジスタ（ＢＣ，ＤＥ，ＨＬ）の下位バイトに記憶されたデータを、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードし、かつｓｓで示されるペアレジスタ（ＢＣ，ＤＥ，ＨＬ）の上位バイトに記憶されたデータを、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに１を加算したアドレスにロードする命令である。
【０９４８】
（ＬＤＴ  （ｋ），ｑｑ）命令は、ｑｑで示されるペアレジスタ（ＩＸ，ＩＹ）の下位バイトに記憶されたデータを、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードし、かつｑｑで示されるペアレジスタ（ＩＸ，ＩＹ）の上位バイトに記憶されたデータを、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに１を加算したアドレスにロードする命令である。
【０９４９】
（ＬＤＴ  （ｋ），ＨＬ）命令は、Ｌレジスタに記憶されたデータを、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードし、かつＨレジスタに記憶されたデータを、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに１を加算したアドレスにロードする命令である。
【０９５０】
（ＬＤＷＴ  （ｒ），ｍｎ）命令は、Ｔレジスタに記憶されたデータを上位バイト、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを下位バイトとするアドレスにロードし、かつ１６ビットの数値であるｍｎ＋１で示されるアドレスに記憶されたデータを、Ｔレジスタに記憶されたデータを上位バイト、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを下位バイトとするアドレスに１を加算したアドレスにロードする命令である。
【０９５１】
（ＣＬＲ  （ｓｓ））命令は、ｓｓで示されるペアレジスタ（ＢＣ，ＤＥ）に数値の０を記憶する命令であり、（ＣＬＲＷ  （ｓｓ））命令は、ｓｓで示されるペアレジスタ（ＢＣ，ＤＥ，ＨＬ）に記憶されたデータが示すアドレスに数値の０を記憶するとともに、当該アドレスに１を加算したアドレスに数値の０を記憶する命令であり、（ＣＬＲＷ  （ｑｑ））命令は、ｑｑで示されるレジスタ（ＩＸ，ＩＹ）に記憶されたデータが示すアドレスに数値の０を記憶するとともに、当該アドレスに１を加算したアドレスに数値の０を記憶する命令であり、（ＣＬＲＷ  （ｑｑ＋ｄ））命令は、ｑｑで示されるレジスタ（ＩＸ，ＩＹ）に記憶されたデータにｄで示されるデータ（ｄ＝８〜１２７、−１〜−１２８）を加算した加算結果が示すアドレスに、数値の０を記憶する命令である。
【０９５２】
（ＣＬＲＴ  （ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに、数値の０を記憶する命令であり、（ＣＬＲＷＴ  （ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスにロードし、かつ、数値の０を、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに１を加算したアドレスに数値の０を記憶する命令である。
【０９５３】
このように、ｓｓで示されるレジスタ（ＢＣ，ＤＥ）や、ｑｑで示されるレジスタ（ＩＸ，ＩＹ）は、（ＣＬＲ  （ｓｓ））命令、（ＣＬＲＷ  （ｓｓ））命令、（ＣＬＲＷ  （ｑｑ＋ｄ））命令のオペランドとして指定が可能である。一方、Ｔレジスタ（特殊レジスタ）は、ＣＬＲＴ命令またはＣＬＲＷＴ命令のオペランドとしてのみ指定が可能であることに加えて、オペランドの一部（本実施形態では、ｋで示されるアドレスの下位１バイト）は直値でのみ指定が可能である。このため、Ｔレジスタの値が予期せずに０にクリアされてしまったり、Ｔレジスタに予期しない値が記憶されてしまうような事態を未然に防止できる場合がある。
【０９５４】
＜他の命令／スタック操作命令＞
スタック操作命令は、スタック領域にデータを退避したり、スタック領域からデータを復帰したりするための命令であり、例えば、ＰＵＳＨ命令、ＰＯＰ命令などが該当する。
【０９５５】
例えば、（ＰＵＳＨ  ｓｓ）命令は、ｓｓで示されるペアレジスタ（ＡＦ，ＢＣ，ＤＥ，ＨＬ）の上位バイトに記憶されたデータを、（ＳＰ（スタックポインタ）−１）で示されるアドレスに退避し、かつ、ｓｓで示されるペアレジスタ（ＡＦ，ＢＣ，ＤＥ，ＨＬ）の下位バイトに記憶されたデータを、（ＳＰ−２）で示されるアドレスに退避した後に、ＳＰから２を減算する命令である。また、（ＰＵＳＨ  ＴＩ）命令は、Ｔレジスタに記憶されたデータを、（ＳＰ−１）で示されるアドレスに退避し、かつ、Ｉレジスタに記憶されたデータを、（ＳＰ−２）で示されるアドレスに退避した後に、ＳＰから２を減算する命令である。また、（ＰＵＳＨ  ｑｑ）命令は、ｑｑで示されるペアレジスタ（ＩＸ，ＩＹ）の上位バイトに記憶されたデータを、（ＳＰ−１）で示されるアドレスに退避し、かつ、ｑｑで示されるペアレジスタ（ＩＸ，ＩＹ）の下位バイトに記憶されたデータを、（ＳＰ−２）で示されるアドレスに退避した後に、ＳＰから２を減算する命令である。
【０９５６】
（ＰＵＳＨ  ＡＬＬ）命令は、全てのレジスタ（Ｔ，Ｉ，Ａ，Ｆ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ，ＩＸの上位バイト，ＩＸの下位バイト，ＩＹの上位バイト，ＩＹの下位バイト）に記憶されたデータを、この順番で１バイトずつスタック領域に退避した後に、ＳＰから１４（レジスタの総数）を減算する命令である。また、（ＰＵＳＨ  ＧＰＲ）命令は、一部のレジスタ（Ａ，Ｆ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを、この順番で１バイトずつスタック領域に退避した後に、ＳＰから８を減算する命令である。
【０９５７】
（ＰＯＰ  ｓｓ）命令は、ＳＰで示されるアドレスに記憶されたデータを、ｓｓで示されるペアレジスタ（ＡＦ，ＢＣ，ＤＥ，ＨＬ）の上位バイトに復帰し、かつ、（ＳＰ＋１）で示されるアドレスに記憶されたデータを、ｓｓで示されるペアレジスタ（ＡＦ，ＢＣ，ＤＥ，ＨＬ）の下位バイトに復帰した後に、ＳＰに２を加算する命令である。また、（ＰＯＰ  ＴＩ）命令は、ＳＰで示されるアドレスに記憶されたデータを、Ｉレジスタに復帰し、かつ、（ＳＰ＋１）で示されるアドレスに記憶されたデータを、Ｔレジスタに復帰した後に、ＳＰに２を加算する命令である。また、（ＰＯＰ  ｑｑ）命令は、ＳＰで示されるアドレスに記憶されたデータを、ｑｑで示されるペアレジスタ（ＩＸ，ＩＹ）の下位バイトに復帰し、かつ、（ＳＰ＋１）で示されるアドレスに記憶されたデータを、ｑｑで示されるペアレジスタ（ＩＸ，ＩＹ）の上位バイトに復帰した後に、ＳＰに２を加算する命令である。
【０９５８】
（ＰＯＰ  ＡＬＬ）命令は、ＳＰ、（ＳＰ＋１）、…、（ＳＰ＋１２）、（ＳＰ＋１３）に記憶されたデータを、この順番で全てのレジスタ（ＩＹの下位バイト，ＩＹの上位バイト，ＩＸの下位バイト，ＩＸの上位バイト，Ｌ，Ｈ，Ｅ，Ｄ，Ｃ，Ｂ，Ｆ，Ａ，Ｉ，Ｔ）に１バイトずつ復帰（ＩＹの下位バイト←（ＳＰ)、ＩＹの上位バイト←（ＳＰ＋１)、…、Ｉ←（ＳＰ＋１２)、Ｔ←（ＳＰ＋１３)）した後に、ＳＰに１４を加算する命令である。また、（ＰＯＰ  ＧＰＲ）命令は、ＳＰ、（ＳＰ＋１）、…、（ＳＰ＋６）、（ＳＰ＋７）に記憶されたデータを、この順番で一部のレジスタ（Ｌ，Ｈ，Ｅ，Ｄ，Ｃ，Ｂ，Ｆ，Ａ）に１バイトずつ復帰（Ｌ←（ＳＰ)、Ｈ←（ＳＰ＋１)、…、Ｆ←（ＳＰ＋６)、Ａ←（ＳＰ＋７)）した後に、ＳＰに８を加算する命令である。
【０９５９】
＜他の命令／算術論理演算命令＞
算術論理演算命令は、各種の論理演算を行うための命令であり、例えば、ＡＤＤ命令、ＳＵＢ命令、ＡＮＤＴ命令、ＯＲＴ命令、ＸＯＲＴ命令、ＣＰＴ命令、ＩＮＣ命令、ＩＮＣＴ命令、ＩＮＣＷＴ命令、ＤＥＣ命令、ＤＥＣＴ命令、ＤＥＣＷＴ命令などが該当する。
【０９６０】
例えば、（ＡＤＤ  Ａ，ｒ）命令は、Ａレジスタに記憶されたデータと、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを加算し、加算結果をＡレジスタに記憶する命令であり、（ＡＤＤＴ  ｒ，（ｋ））命令は、ｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータと、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを加算し、加算結果をｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶する命令である。
【０９６１】
例えば、（ＳＵＢ  ｒ）命令は、Ａレジスタに記憶されたデータから、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを減算し、減算結果をＡレジスタに記憶する命令であり、（ＳＵＢＴ  ｒ，（ｋ））命令は、ｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータから、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、減算結果をｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶する命令である。
【０９６２】
例えば、（ＡＮＤＴ  （ｋ））命令は、Ａレジスタに記憶されたデータと、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータと、の論理積（ＡＮＤ）を算出し、演算結果をＡレジスタに記憶する命令であり、（ＡＮＤＴ  ｒ，（ｋ））命令は、ｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータと、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータと、の論理積（ＡＮＤ）を算出し、演算結果をｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶する命令である。
【０９６３】
（ＯＲＴ  （ｋ））命令は、Ａレジスタに記憶されたデータと、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータと、の論理和（ＯＲ）を算出し、演算結果をＡレジスタに記憶する命令であり、（ＯＲＴ  ｒ，（ｋ））命令は、ｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータと、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータと、の論理和（ＯＲ）を算出し、演算結果をｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）記憶する命令である。
【０９６４】
（ＸＯＲＴ  （ｋ））命令は、Ａレジスタに記憶されたデータと、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータと、の排他的論理和（ＸＯＲ）を算出し、演算結果をＡレジスタに記憶する命令であり、（ＸＯＲＴ  ｒ，（ｋ））命令は、ｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータと、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータと、の排他的論理和（ＸＯＲ）を算出し、演算結果をｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶する命令である。
【０９６５】
（ＣＰＴ  （ｋ））命令は、Ａレジスタに記憶されたデータから、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、演算結果がオーバーフローした場合に所定のフラグを１にセットする一方で、オーバーフローしなかった場合に所定のフラグを０にクリアするとともに、Ｓフラグ、Ｚフラグ、ＴＺフラグ、Ｈフラグ、またはキャリーフラグ（Ｃフラグ）に記憶された値を０から１（または１から０）に変化させる命令である。（ＣＰＴ  ｒ，（ｋ））命令は、ｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータから、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、演算結果がオーバーフローした場合に所定のフラグを１にセットする一方で、オーバーフローしなかった場合に所定のフラグを０にクリアするとともに、Ｓフラグ、Ｚフラグ、ＴＺフラグ、Ｈフラグ、またはキャリーフラグ（Ｃフラグ）に記憶された値を０から１（または１から０）に変化させる命令である。
【０９６６】
（ＩＮＣ  Ｔ）命令は、Ｔレジスタに記憶されたデータに１を加算する命令であり、（ＩＮＣＴ  （ｒ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを下位バイトとするアドレスに記憶されたデータに１を加算する命令であり、（ＩＮＣＴ  （ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータに１を加算する命令である。また、（ＩＮＣＷＴ  （ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスと、当該アドレスに１を加算したアドレスに記憶された２バイト長のデータに１を加算する命令である。
【０９６７】
（ＤＥＣ  Ｔ）命令は、Ｔレジスタに記憶されたデータから１を減算する命令であり、（ＤＥＣＴ  （ｒ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを下位バイトとするアドレスに記憶されたデータから１を減算する命令であり、（ＤＥＣＴ  （ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータから１を減算する命令である。また、（ＩＮＣＷＴ  （ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスと、当該アドレスに１を加算したアドレスに記憶された２バイト長のデータから１を減算する命令である。
【０９６８】
＜他の命令／ローテート  シフト命令＞
算術論理演算命令は、各種の論理演算を行うための命令であり、例えば、ＲＬＣ命令、ＲＬＣＴ命令、ＲＲＣ命令、ＲＲＣＴ命令、ＲＬ命令、ＲＬＴ命令、ＲＲ命令、ＲＲＴ命令、ＳＬＡ命令、ＳＬＡＴ命令、ＳＲＡ命令、ＳＲＡＴ命令、ＳＲＬ命令、ＳＲＬＴ命令などが該当する。
【０９６９】
例えば、（ＲＬＣ  ｒ）命令は、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを左に（ＬＳＢからＭＳＢ側に）１ビットだけローテートし、ＭＳＢからシフトアウトされたビットをＬＳＢとキャリーフラグに記憶する命令であり、（ＲＬＣ  （ＨＬ））命令は、ＨＬレジスタに記憶されたデータを左に１ビットだけローテートし、ＭＳＢからシフトアウトされたビットをＬＳＢとキャリーフラグに記憶する命令であり、（ＲＬＣ  （ｑｑ＋ｄ））命令は、ｑｑで示されるレジスタ（ＩＸ，ＩＹ）に記憶されたデータにｄで示されるデータ（ｄ＝８〜１２７、−１〜−１２８）を加算した加算結果が示すアドレスに記憶されたデータを左に１ビットだけローテートし、ＭＳＢからシフトアウトされたビットをＬＳＢとキャリーフラグに記憶する命令であり、（ＲＬＣＴ  （ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを左に１ビットだけローテートし、ＭＳＢからシフトアウトされたビットをＬＳＢとキャリーフラグに記憶する命令である。
【０９７０】
（ＲＲＣ  ｒ）命令は、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを右に（ＭＳＢからＬＳＢ側に）１ビットだけローテートし、ＬＳＢからシフトアウトされたビットをＭＳＢとキャリーフラグに記憶する命令であり、（ＲＲＣ  （ＨＬ））命令は、ＨＬレジスタに記憶されたデータを右に１ビットだけローテートし、ＬＳＢからシフトアウトされたビットをＭＳＢとキャリーフラグに記憶する命令であり、（ＲＲＣ  （ｑｑ＋ｄ））命令は、ｑｑで示されるレジスタ（ＩＸ，ＩＹ）に記憶されたデータにｄで示されるデータ（ｄ＝８〜１２７、−１〜−１２８）を加算した加算結果が示すアドレスに記憶されたデータを右に１ビットだけローテートし、ＬＳＢからシフトアウトされたビットをＭＳＢとキャリーフラグに記憶する命令であり、（ＲＲＣＴ  （ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを右に１ビットだけローテートし、ＬＳＢからシフトアウトされたビットをＭＳＢとキャリーフラグに記憶する命令である。
【０９７１】
（ＲＬ  ｒ）命令は、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを左に（ＬＳＢからＭＳＢ側に）１ビットだけローテートし、キャリーフラグに記憶されていたビットをＬＳＢに記憶し、ＭＳＢからシフトアウトされたビットをキャリーフラグに記憶する命令であり、（ＲＬ  （ＨＬ））命令は、ＨＬレジスタに記憶されたデータを左に１ビットだけローテートし、キャリーフラグに記憶されていたビットをＬＳＢに記憶し、ＭＳＢからシフトアウトされたビットをキャリーフラグに記憶する命令であり、（ＲＬ  （ｑｑ＋ｄ））命令は、ｑｑで示されるレジスタ（ＩＸ，ＩＹ）に記憶されたデータにｄで示されるデータ（ｄ＝８〜１２７、−１〜−１２８）を加算した加算結果が示すアドレスに記憶されたデータを左に１ビットだけローテートし、キャリーフラグに記憶されていたビットをＬＳＢに記憶し、ＭＳＢからシフトアウトされたビットをキャリーフラグに記憶する命令であり、（ＲＬＴ  （ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを左に１ビットだけローテートし、キャリーフラグに記憶されていたビットをＬＳＢに記憶し、ＭＳＢからシフトアウトされたビットをキャリーフラグに記憶する命令である。
【０９７２】
（ＲＲ  ｒ）命令は、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを右に（ＭＳＢからＬＳＢ側に）１ビットだけローテートし、キャリーフラグに記憶されていたビットをＭＳＢに記憶し、ＬＳＢからシフトアウトされたビットをキャリーフラグに記憶する命令であり、（ＲＲ  （ＨＬ））命令は、ＨＬレジスタに記憶されたデータを右に１ビットだけローテートし、キャリーフラグに記憶されていたビットをＭＳＢに記憶し、ＬＳＢからシフトアウトされたビットをキャリーフラグに記憶する命令であり、（ＲＲ  （ｑｑ＋ｄ））命令は、ｑｑで示されるレジスタ（ＩＸ，ＩＹ）に記憶されたデータにｄで示されるデータ（ｄ＝８〜１２７、−１〜−１２８）を加算した加算結果が示すアドレスに記憶されたデータを右に１ビットだけローテートし、キャリーフラグに記憶されていたビットをＭＳＢに記憶し、ＬＳＢからシフトアウトされたビットをキャリーフラグに記憶する命令であり、（ＲＲＴ  （ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを右に１ビットだけローテートし、キャリーフラグに記憶されていたビットをＭＳＢに記憶し、ＬＳＢからシフトアウトされたビットをキャリーフラグに記憶する命令である。
【０９７３】
（ＳＬＡ  ｒ）命令は、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを左に（ＬＳＢからＭＳＢ側に）１ビットだけシフトし、ＭＳＢからシフトアウトされたビットをキャリーフラグに記憶し、ＬＳＢに０を記憶する命令であり、（ＳＬＡ  （ＨＬ））命令は、ＨＬレジスタに記憶されたデータを左に１ビットだけシフトし、ＭＳＢからシフトアウトされたビットをキャリーフラグに記憶し、ＬＳＢに０を記憶する命令であり、（ＳＬＡ  （ｑｑ＋ｄ））命令は、ｑｑで示されるレジスタ（ＩＸ，ＩＹ）に記憶されたデータにｄで示されるデータ（ｄ＝８〜１２７、−１〜−１２８）を加算した加算結果が示すアドレスに記憶されたデータを左に１ビットだけシフトし、ＭＳＢからシフトアウトされたビットをキャリーフラグに記憶し、ＬＳＢに０を記憶する命令であり、（ＳＬＡＴ  （ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを左に１ビットだけシフトし、ＭＳＢからシフトアウトされたビットをキャリーフラグに記憶し、ＬＳＢに０を記憶する命令である。
【０９７４】
（ＳＲＡ  ｒ）命令は、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを右に（ＭＳＢからＬＳＢ側に）１ビットだけシフトし、ＬＳＢからシフトアウトされたビットをキャリーフラグに記憶し、ＭＳＢに直前のＭＳＢの値を記憶する命令であり、（ＳＬＡ  （ＨＬ））命令は、ＨＬレジスタに記憶されたデータを右に１ビットだけシフトし、ＬＳＢからシフトアウトされたビットをキャリーフラグに記憶し、ＭＳＢに直前のＭＳＢの値を記憶する命令であり、（ＳＬＡ  （ｑｑ＋ｄ））命令は、ｑｑで示されるレジスタ（ＩＸ，ＩＹ）に記憶されたデータにｄで示されるデータ（ｄ＝８〜１２７、−１〜−１２８）を加算した加算結果が示すアドレスに記憶されたデータを右に１ビットだけシフトし、ＬＳＢからシフトアウトされたビットをキャリーフラグに記憶し、ＭＳＢに直前のＭＳＢの値を記憶する命令であり、（ＳＬＡＴ  （ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを右に１ビットだけシフトし、ＬＳＢからシフトアウトされたビットをキャリーフラグに記憶し、ＭＳＢに直前のＭＳＢの値を記憶する命令である。
【０９７５】
（ＳＲＬ  ｒ）命令は、ｒで示されるレジスタ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを右に（ＭＳＢからＬＳＢ側に）１ビットだけシフトし、ＬＳＢからシフトアウトされたビットをキャリーフラグに記憶し、ＭＳＢに０を記憶する命令であり、（ＳＲＬ  （ＨＬ））命令は、ＨＬレジスタに記憶されたデータを右に１ビットだけシフトし、ＬＳＢからシフトアウトされたビットをキャリーフラグに記憶し、ＭＳＢに０を記憶する命令であり、（ＳＲＬ  （ｑｑ＋ｄ））命令は、ｑｑで示されるレジスタ（ＩＸ，ＩＹ）に記憶されたデータにｄで示されるデータ（ｄ＝８〜１２７、−１〜−１２８）を加算した加算結果が示すアドレスに記憶されたデータを右に１ビットだけシフトし、ＬＳＢからシフトアウトされたビットをキャリーフラグに記憶し、ＭＳＢに０を記憶する命令であり、（ＳＲＬＴ  （ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを右に１ビットだけシフトし、ＬＳＢからシフトアウトされたビットをキャリーフラグに記憶し、ＭＳＢに０を記憶する命令である。
【０９７６】
＜他の命令／ビット操作命令＞
ビット操作命令は、ビット単位で各種の操作を行うための命令であり、例えば、ＢＩＴＴ命令、ＳＥＴＴ命令、ＲＥＳＴ命令などが該当する。
【０９７７】
例えば、（ＢＩＴＴ  ｂ，（ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを反転して所定のフラグに記憶する命令であり、（ＳＥＴＴ  ｂ，（ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータに１をセットする命令であり、（ＲＥＳＴ  ｂ，（ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータに０をセットする命令である。
【０９７８】
＜他の命令／演算＆ジャンプ命令＞
演算＆ジャンプ命令は、演算と当該演算の演算結果に基づく分岐処理を行うための命令であり、例えば、ＪＣＰＴ命令や、ＪＴＴ命令や、ＪＢＩＴＴ命令などが該当する。
【０９７９】
例えば、（ＪＣＰＴ  Ｚ，Ａ、（ｋ），ｅ）命令は、Ａレジスタに記憶されたデータから、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、Ｚフラグが１の場合にはｅで示されるアドレスをＰＣ（プログラムカウンタ）にロードし（ｅで示されるアドレスに分岐し）、Ｚフラグが０の場合には後続の命令を実行させる命令であり、（ＪＣＰＴ  ＮＺ，Ａ、（ｋ），ｅ）命令は、Ａレジスタに記憶されたデータから、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、Ｚフラグが０の場合にはｅで示されるアドレスをＰＣ（プログラムカウンタ）にロードし（ｅで示されるアドレスに分岐し）、Ｚフラグが１の場合には後続の命令を実行させる命令である。
【０９８０】
（ＪＣＰＴ  Ｃ，Ａ、（ｋ），ｅ）命令は、Ａレジスタに記憶されたデータから、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、キャリーフラグが１の場合にはｅで示されるアドレスをＰＣ（プログラムカウンタ）にロードし（ｅで示されるアドレスに分岐し）、キャリーフラグが０の場合には後続の命令を実行させる命令であり、（ＪＣＰＴ  ＮＣ，Ａ、（ｋ），ｅ）命令は、Ａレジスタに記憶されたデータから、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータを減算し、キャリーフラグが０の場合にはｅで示されるアドレスをＰＣ（プログラムカウンタ）にロードし（ｅで示されるアドレスに分岐し）、キャリーフラグが１の場合には後続の命令を実行させる命令である。
【０９８１】
（ＪＣＰＴ  Ｚ，（ｋ），ｓｓ，ｅ）命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスと、当該アドレスに１を加算したアドレスに記憶された２バイトのデータから、ｓｓで示されるペアレジスタ（ＢＣ，ＤＥ）に記憶された２バイトのデータを減算し、Ｚフラグが１の場合にはｅで示されるアドレスをＰＣ（プログラムカウンタ）にロードし（ｅで示されるアドレスに分岐し）、Ｚフラグが０の場合には後続の命令を実行させる命令であり、（ＪＣＰＴ  ＮＺ，（ｋ），ｓｓ，ｅ）命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスと、当該アドレスに１を加算したアドレスに記憶された２バイトのデータから、ｓｓで示されるペアレジスタ（ＢＣ，ＤＥ）に記憶された２バイトのデータを減算し、Ｚフラグが０の場合にはｅで示されるアドレスをＰＣ（プログラムカウンタ）にロードし（ｅで示されるアドレスに分岐し）、Ｚフラグが１の場合には後続の命令を実行させる命令である。
【０９８２】
（ＪＣＰＴ  Ｃ，（ｋ），ｓｓ，ｅ）命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスと、当該アドレスに１を加算したアドレスに記憶された２バイトのデータから、ｓｓで示されるペアレジスタ（ＢＣ，ＤＥ）に記憶された２バイトのデータを減算し、キャリーフラグが１の場合にはｅで示されるアドレスをＰＣ（プログラムカウンタ）にロードし（ｅで示されるアドレスに分岐し）、キャリーフラグが０の場合には後続の命令を実行させる命令であり、（ＪＣＰＴ  ＮＣ，（ｋ），ｓｓ，ｅ）命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスと、当該アドレスに１を加算したアドレスに記憶された２バイトのデータから、ｓｓで示されるペアレジスタ（ＢＣ，ＤＥ）に記憶された２バイトのデータを減算し、キャリーフラグが０の場合にはｅで示されるアドレスをＰＣ（プログラムカウンタ）にロードし（ｅで示されるアドレスに分岐し）、キャリーフラグが１の場合には後続の命令を実行させる命令である。
【０９８３】
（ＪＴＴ  Ｚ，（ｋ）ｅ）命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータから、数値の０を減算し、Ｚフラグが１の場合にはｅで示されるアドレスをＰＣ（プログラムカウンタ）にロードし（ｅで示されるアドレスに分岐し）、Ｚフラグが０の場合には後続の命令を実行させる命令であり、（ＪＴＴ  ＮＺ，（ｋ）ｅ）命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータから、数値の０を減算し、Ｚフラグが０の場合にはｅで示されるアドレスをＰＣ（プログラムカウンタ）にロードし（ｅで示されるアドレスに分岐し）、Ｚフラグが１の場合には後続の命令を実行させる命令である。
【０９８４】
（ＪＢＩＴＴ  Ｚ，ｂ，（ｋ），ｅ）命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータのうち、ｂで示されるビットの反転データをＺフラグに記憶し、Ｚフラグが１の場合にはｅで示されるアドレスをＰＣ（プログラムカウンタ）にロードし（ｅで示されるアドレスに分岐し）、Ｚフラグが０の場合には後続の命令を実行させる命令であり、（ＪＢＩＴＴ  ＮＺ，ｂ，（ｋ），ｅ）命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータのうち、ｂで示されるビットの反転データをＺフラグに記憶し、Ｚフラグが０の場合にはｅで示されるアドレスをＰＣ（プログラムカウンタ）にロードし（ｅで示されるアドレスに分岐し）、Ｚフラグが１の場合には後続の命令を実行させる命令である。
【０９８５】
＜他の命令／演算＆リターン命令＞
演算＆リターン命令は、演算と当該演算の演算結果に基づく復帰処理を行うための命令であり、例えば、ＲＴＴ命令などが該当する。
【０９８６】
例えば、（ＲＴＴ  Ｚ、（ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータから、数値の０を減算し、Ｚフラグが１の場合にはＳＰと（ＳＰ＋１）に記憶されたアドレスをＰＣ（プログラムカウンタ）にロードし（ＳＰと（ＳＰ＋１）で示されるアドレスに復帰し）、Ｚフラグが０の場合には後続の命令を実行させる命令であり、（ＲＴＴ  ＮＺ、（ｋ））命令は、Ｔレジスタに記憶されたデータを上位バイト、ｋで示されるレジスタに記憶されたデータを下位バイトとするアドレスに記憶されたデータから、数値の０を減算し、Ｚフラグが０の場合にはＳＰと（ＳＰ＋１）に記憶されたアドレスをＰＣ（プログラムカウンタ）にロードし（ＳＰと（ＳＰ＋１）で示されるアドレスに復帰し）、Ｚフラグが１の場合には後続の命令を実行させる命令である。
【０９８７】
＜他の命令／複合命令＞
複合命令は、複数の処理を一つにした命令であり、例えば、ＩＮＣＰＬＤ命令、ＩＮＣＰＷＬＤ命令、ＤＥＣＰＬＤ命令、ＤＥＣＰＷＬＤ命令などが該当する。
【０９８８】
（ＩＮＣＰＬＤ  Ａ，ｒ）命令は、Ａレジスタに記憶されたデータから、ｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを減算し、キャリーフラグが１の場合にＡレジスタに記憶されたデータに１を加算し、キャリーフラグが０の場合にＡレジスタに０を記憶する命令であり、（ＩＮＣＰＬＤ  （ＨＬ），ｒ）命令は、ＨＬレジスタに記憶されたデータが示すアドレスに記憶されたデータから、ｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを減算し、キャリーフラグが１の場合に、ＨＬレジスタに記憶されたデータが示すアドレスに記憶されたデータに１を加算し、キャリーフラグが０の場合に、ＨＬレジスタに記憶されたデータが示すアドレスに記憶されたデータに０を記憶する命令である。
【０９８９】
（ＩＮＣＰＬＤ  Ａ，ｎ）命令は、Ａレジスタに記憶されたデータから、数値ｎを減算し、キャリーフラグが１の場合にＡレジスタに記憶されたデータに１を加算し、キャリーフラグが０の場合にＡレジスタに０を記憶する命令であり、（ＩＮＣＰＬＤ  （ＨＬ），ｎ）命令は、ＨＬレジスタに記憶されたデータが示すアドレスに記憶されたデータから、数値ｎを減算し、キャリーフラグが１の場合に、ＨＬレジスタに記憶されたデータが示すアドレスに記憶されたデータに１を加算し、キャリーフラグが０の場合に、ＨＬレジスタに記憶されたデータが示すアドレスに記憶されたデータに０を記憶する命令である。
【０９９０】
（ＩＮＣＰＬＤ  ＨＬ，ｍｎ）命令は、ＨＬレジスタに記憶されたデータから、数値ｍｎを減算し、キャリーフラグが１の場合にＨＬレジスタに記憶されたデータに１を加算し、キャリーフラグが０の場合にＨＬレジスタに０を記憶する命令であり、（ＩＮＣＰＷＬＤ  （ＨＬ），ｍｎ）命令は、ＨＬレジスタに記憶されたデータが示すアドレスと、ＨＬレジスタに記憶されたデータ＋１が示すアドレスに記憶されたデータから、数値ｍｎを減算し、キャリーフラグが１の場合に、ＨＬレジスタに記憶されたデータが示すアドレスと、ＨＬレジスタに記憶されたデータ＋１が示すアドレスに記憶されたデータに１を加算し、キャリーフラグが０の場合に、ＨＬレジスタに記憶されたデータが示すアドレスと、ＨＬレジスタに記憶されたデータ＋１が示すアドレスに記憶されたデータに０を記憶する命令である。
【０９９１】
（ＤＥＣＰＬＤ  Ａ，ｒ）命令は、Ａレジスタに記憶されたデータから１を減算し、キャリーフラグが１の場合に、ｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータをＡレジスタに記憶し、キャリーフラグが０の場合に、Ａレジスタから１を減算す命令であり、（ＤＥＣＰＬＤ  （ＨＬ），ｒ）命令は、ＨＬレジスタに記憶されたデータが示すアドレスに記憶されたデータから、ｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを減算し、キャリーフラグが１の場合に、ｒで示されるレジスタ（Ｂ，Ｃ，Ｄ，Ｅ，Ｈ，Ｌ）に記憶されたデータを、ＨＬレジスタに記憶されたデータが示すアドレスに記憶されたデータに記憶し、キャリーフラグが０の場合に、ＨＬレジスタに記憶されたデータが示すアドレスに記憶されたデータから１を減算する命令である。
【０９９２】
（ＤＥＣＰＬＤ  Ａ，ｎ）命令は、Ａレジスタに記憶されたデータから、数値ｎを減算し、キャリーフラグが１の場合に、Ａレジスタに数値ｎを記憶し、キャリーフラグが０の場合に、Ａレジスタに記憶されたデータから１を減算する命令であり、（ＤＥＣＰＬＤ  （ＨＬ），ｎ）命令は、ＨＬレジスタに記憶されたデータが示すアドレスに記憶されたデータから、数値ｎを減算し、キャリーフラグが１の場合に、ＨＬレジスタに記憶されたデータが示すアドレスに記憶されたデータに数値ｎを記憶し、キャリーフラグが０の場合に、ＨＬレジスタに記憶されたデータが示すアドレスに記憶されたデータから１を減算する命令である。
【０９９３】
（ＤＥＣＰＬＤ  ＨＬ，ｍｎ）命令は、ＨＬレジスタに記憶されたデータから、数値ｍｎを減算し、キャリーフラグが１の場合に、ＨＬレジスタに数値ｍｎを記憶し、キャリーフラグが０の場合に、ＨＬレジスタに記憶されたデータから１を減算する命令であり、（ＤＥＣＰＷＬＤ  （ＨＬ），ｍｎ）命令は、ＨＬレジスタに記憶されたデータが示すアドレスと、ＨＬレジスタに記憶されたデータ＋１が示すアドレスに記憶されたデータから、数値ｍｎを減算し、キャリーフラグが１の場合に、ＨＬレジスタに記憶されたデータが示すアドレスと、ＨＬレジスタに記憶されたデータ＋１が示すアドレスに記憶されたデータに数値ｍｎを記憶し、キャリーフラグが０の場合に、ＨＬレジスタに記憶されたデータが示すアドレスと、ＨＬレジスタに記憶されたデータ＋１が示すアドレスに記憶されたデータから１を減算する命令である。
【０９９４】
例えば、上述の主制御部メイン処理の基本乱数初期値更新処理（ステップＳ１１５）において、Ａレジスタに普図タイマ乱数値、数値ｎに普図タイマ乱数値の最大値（例えば、１００）をそれぞれ記憶（ロード）した後に、（ＩＮＣＰＬＤ  Ａ，ｎ）命令を実行すれば、キャリーフラグが１の場合、すなわち、普図タイマ乱数値が最大値ではない場合には、普図タイマ乱数値に１を加算し、キャリーフラグが０の場合、すなわち、普図タイマ乱数値が最大値になった場合には、普図タイマ乱数値に０を記憶することができる。このため、（ＩＮＣＰＬＤ  Ａ，ｎ）命令だけで、普図タイマ乱数値の更新を容易に行うことができ、プログラム容量の削減や、処理速度の向上を図ることができる場合がある。
【０９９５】
また、上述の主制御部メイン処理の基本乱数初期値更新処理（ステップＳ１１５）において、Ａレジスタに普図タイマ乱数値、数値ｎに普図タイマ乱数値の最大値（例えば、１００）をそれぞれ記憶（ロード）した後に、（ＤＥＣＰＬＤ  Ａ，ｎ）命令を実行すれば、キャリーフラグが１の場合、すなわち、普図タイマ乱数値が負の値になった場合には、普図タイマ乱数値に普図タイマ乱数値の最大値を記憶し、キャリーフラグが０の場合、すなわち、普図タイマ乱数値が負の値ではない場合には、普図タイマ乱数値から１を減算することができる。このため、（ＤＥＣＰＬＤ  Ａ，ｎ）命令だけで、普図タイマ乱数値の更新を容易に行うことができ、プログラム容量の削減や、処理速度の向上を図ることができる場合がある。なお、この例では、Ａレジスタのみで乱数値を更新する例を示したが、他のレジスタ（例えば、Ｒレジスタ）を併用したり、ハードウェア乱数値を併用してもよい。
【０９９６】
以上説明したように、本実施形態に係るパチンコ機１００は、ＣＰＵ（例えば、ＣＰＵ３０４）と、遊技制御プログラムが少なくとも記憶されているＲＯＭ（例えば、ＲＯＭ３０６）と、を少なくとも備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記ＣＰＵは、少なくとも特定のレジスタ（例えば、Ｔレジスタ）を備え、前記遊技制御プログラムは、所定の処理（例えば、図３１に示す特図１関連抽選処理）と、該所定の処理から呼び出される所定のサブ処理（例えば、図３４のステップＳ１１０３の「保留数記憶領域（ＲＷＭ領域のアドレスＦ０４０Ｈ）に記憶された保留数を、Ａレジスタに転送する処理」）を少なくとも含み、前記所定の処理は、第一の処理と第二の処理（例えば、図３１に示す、特別図柄乱数移行処理、特別図柄当り抽選処理、表示図柄抽選処理、特別図柄変動時間抽選処理、特別図柄変動時間設定処理、特別図柄保留内情報移行処理のうちの２つの処理である第一の処理と第二の処理）を少なくとも含み、前記所定のサブ処理は、前記第一の処理と前記第二の処理の両方から呼び出され、前記特定のレジスタを用いた処理は、前記所定のサブ処理で少なくとも実行可能であることを特徴とする遊技台である。
【０９９７】
なお、本発明に係る第一の処理は、主制御部メイン処理（メインループ処理）から呼び出される処理（例えば、図１０の主制御部メイン処理に示す各処理）、本発明に係る第二の処理は、主制御部タイマ割込処理（タイマ割込処理）から呼び出される処理（例えば、図１４の主制御部タイマ割込処理に示す各処理）でもよく、本発明に係る所定のサブ処理は、これらの主制御部メイン処理から呼び出される処理と、主制御部タイマ割込処理から呼び出される処理の両方から呼び出されるものでもよい。
【０９９８】
本実施形態に係るパチンコ機１００によれば、２つの異なる処理（第一の処理と第二の処理）から呼び出されるサブ処理において、共通の特定のレジスタを用いた処理を実行するため、遊技制御プログラムを簡素化することができ、プログラムのコード量を従来よりも減らすことができる上に、コーディングミスの発生を減少させることができ、安定した遊技制御を行うことができる場合がある。
【０９９９】
また、前記ＣＰＵは、所定の命令（例えば、図６４に示すＲＳＴ命令）を少なくとも実行可能であり、前記所定の命令は、該命令が実行された処理から、予め定められたアドレス（例えば、０００８Ｈ、００１０Ｈ、００１８Ｈ、００２０Ｈ、００２８Ｈ、００３０Ｈ、００３８Ｈ、００４０Ｈの８種類のアドレス）に配置された処理のみを呼出可能な命令であり、前記所定のサブ処理は、前記第一の処理と前記第二の処理の両方から前記所定の命令を用いて呼出可能な処理のうちの一つであってもよい。
【１０００】
このような構成とすれば、遊技制御プログラムの解析や改ざんが困難となるため、不正にサブ処理を読み出すプログラムを組み込んで不正な利益を得ようとする行為や、不正にＲＡＭに記憶された内部情報を取得するような行為を未然に防止できる場合がある。
【１００１】
また、前記ＣＰＵは、前記特定のレジスタに値をセットする機能のうち、ロード命令を受けたことに基づいて行われるもの以外のものとして、所定の値を初期値としてセットする機能（例えば、８ビットロード（転送）命令、１６ビットロード（転送）命令、スタック操作命令（１６ビットロード命令の一種）、複合命令など）を少なくとも有してもよい。
【１００２】
このような構成とすれば、遊技制御プログラムの設計の自由度を高めることができ、安定した遊技制御を行うことができる場合がある。
【１００３】
また、演出制御を行う演出制御手段（例えば、第１副制御部４００または第２副制御部５００）を備え、前記ＣＰＵは、前記演出制御手段に搭載されず、遊技制御を行う遊技制御手段（例えば、主制御部３００）にのみに搭載されていてもよい。また、演出制御を行う演出制御手段（例えば、第１副制御部４００または第２副制御部５００）と、払出制御を行う払出制御手段（例えば、払出制御部６００）と、を備え、前記ＣＰＵは、前記演出制御手段に搭載されず、遊技制御を行う遊技制御手段（例えば、主制御部３００）および前記払出制御手段のうちの少なくとも一方に搭載されていてもよい。
【１００４】
このような構成とすれば、遊技制御プログラムの解析や改ざんを、より困難にすることができる場合がある。
【１００５】
また、前記ＣＰＵと前記ＲＯＭを少なくとも内蔵するマイクロプロセッサ（例えば、基本回路３０２）を備え、前記マイクロプロセッサは、少なくとも所定の出力端子（例えば、リセット出力端子ＸＲＳＴＯ）を有し、前記所定の出力端子は、少なくとも所定のタイミング（例えば、ランダム延長機能の実行前）で立ち上がることが可能なものであり、前記マイクロプロセッサは、所定の条件が成立した場合（例えば、図１１５に示すタイムアウト時間が経過した場合）に、所定の信号（例えば、ＷＤＴ起動信号（ＷＤＴタイムアウト信号）や、ＣＰＵ内部の信号）を少なくとも発生させることが可能なウォッチドッグタイマ（例えば、ＷＤＴ３１４、第一ＷＤＴ３１４ａ、第二ＷＤＴ３１４ｂ）と、正当な指定エリア以外の記憶領域のコードが実行されたことに基づいて、指定エリア外走行禁止信号を少なくとも発生させることが可能な指定エリア外走行禁止回路（例えば、指定エリア外走行禁止回路３１４２）と、を少なくとも有し、前記指定エリア外走行禁止信号が発生してから前記所定のタイミングの間に開始されるセキュリティチェック中に、前記ウォッチドッグタイマのカウンタが停止している期間が少なくとも含まれていてもよい。
【１００６】
このような構成とすれば、指定エリア外走行禁止信号に基づくリセット処理を行う際に、ウォッチドッグタイマのタイムアウトを制御プログラムによらずに（自動的に）停止させることができ、指定エリア外走行禁止信号に基づくリセット処理を迅速に行うことができる場合がある。
【１００７】
また、上記実施形態に係る遊技台は、ＣＰＵ（例えば、ＣＰＵ３０４）と、遊技制御プログラムが少なくとも記憶されているＲＯＭ（例えば、ＲＯＭ３０６）と、を少なくとも内蔵するマイクロプロセッサ（例えば、基本回路３０２）を備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、前記マイクロプロセッサは、少なくとも所定の出力端子（例えば、リセット出力端子ＸＲＳＴＯ）を有し、前記マイクロプロセッサは、少なくともランダム延長機能（例えば、ランダム延長処理）を有し、前記ランダム延長機能は、前記遊技制御プログラムの実行開始タイミングをランダムに変化させることが可能なものであり、前記所定の出力端子からの出力は、少なくとも所定のタイミングで第一のレベルから該第一のレベル（例えば、ローレベルの信号）よりも高い第二のレベル（例えば、ハイレベルの信号）に変化するものであり、前記所定のタイミングは、前記ランダム延長機能の実行前である、ことを特徴とする遊技台である。
【１００８】
また、上記実施形態に係る遊技台は、ＣＰＵ（例えば、ＣＰＵ３０４）と、遊技制御プログラムを記憶するＲＯＭ（例えば、ＲＯＭ３０６）と、を少なくとも内蔵するマイクロプロセッサ（例えば、基本回路３０２）を備えた遊技台であって、前記マイクロプロセッサは、少なくとも所定の出力端子（例えば、リセット出力端子ＸＲＳＴＯ）を有し、前記マイクロプロセッサは、前記所定の出力端子（例えば、リセット出力端子ＸＲＳＴＯ）からの所定の信号出力（例えば、リセット出力信号出力）の立上りタイミングまたは立下りタイミング（例えば、ローレベル信号からハイレベル信号に変化させる立上りタイミング）を、前記遊技制御プログラムの実行開始前に行われるランダム遅延処理の開始前に実行可能である、ことを特徴とする遊技台である。
【１００９】
図１２７および図１２８は、本発明に係る所定の出力端子の信号出力の一例を説明するための図である。同図には、所定の出力端子の一例であるリセット出力端子ＸＲＳＴＯの出力信号の電圧変化と、本発明に係る第一のレベルであるか否かを判断するための基準電圧であるローレベルしきい値電圧ＶＬと、本発明に係る第二のレベルであるか否かを判断するための基準電圧であるハイレベルしきい値電圧ＶＨを示している。
【１０１０】
この例では、リセット出力端子ＸＲＳＴＯの出力信号の電圧がローレベルしきい値電圧ＶＬよりも低い場合には第一のレベル（ローレベル）と規定し、リセット出力端子ＸＲＳＴＯから出力する電圧がハイレベルしきい値電圧ＶＨよりも高い場合には第二のレベル（ハイレベル）と規定している。なお、この例では、ローレベルしきい値電圧ＶＬとハイレベルしきい値電圧ＶＨにヒステリシスを持たせているが、本発明はこれに限定されず、例えば、ローレベルしきい値電圧ＶＬとハイレベルしきい値電圧ＶＨを同一の電圧（例えば、ハイレベルの最高電圧が５Ｖ、ローレベルの最低電圧が０Ｖの場合に、両者の平均の２．５Ｖ）に設定してもよい。
【１０１１】
図１２７（ａ）では、リセット出力端子ＸＲＳＴＯの出力信号の電圧を、ランダム延長処理の実行開始後に、第一のレベル（ローレベル）の電圧からローレベルしきい値電圧ＶＬを超える電圧に変化させた後に、ランダム延長処理の実行中に、さらにハイレベルしきい値電圧ＶＨを超える電圧に変化させて第二のレベル（ハイレベル）に変化させている。同図（ｂ）では、リセット出力端子ＸＲＳＴＯの出力信号の電圧を、ランダム延長処理の実行開始とほぼ同時に、第一のレベル（ローレベル）の電圧からローレベルしきい値電圧ＶＬを超える電圧に変化させた後に、ランダム延長処理の実行中に、さらにハイレベルしきい値電圧ＶＨを超える電圧に変化させて第二のレベル（ハイレベル）に変化させている。
【１０１２】
また、同図（ｃ）では、リセット出力端子ＸＲＳＴＯの出力信号の電圧を、ランダム延長処理の実行開始前に、第一のレベル（ローレベル）の電圧からローレベルしきい値電圧ＶＬを超える電圧に変化させた後に、ランダム延長処理の実行中に、ランダム延長処理の実行開始後に、さらにハイレベルしきい値電圧ＶＨを超える電圧に変化させて第二のレベル（ハイレベル）に変化させている。同図（ｄ）では、リセット出力端子ＸＲＳＴＯの出力信号の電圧を、ランダム延長処理の実行開始前に、第一のレベル（ローレベル）の電圧からローレベルしきい値電圧ＶＬを超える電圧に変化させた後に、ランダム延長処理の実行開始とほぼ同時に、さらにハイレベルしきい値電圧ＶＨを超える電圧に変化させて第二のレベル（ハイレベル）に変化させている。
【１０１３】
一方、同図（ｅ）では、リセット出力端子ＸＲＳＴＯの出力信号の電圧を、ランダム延長処理の実行開始前に、第一のレベル（ローレベル）の電圧からローレベルしきい値電圧ＶＬを超える電圧に変化させた後に、ランダム延長処理の実行開始前に、さらにハイレベルしきい値電圧ＶＨを超える電圧に変化させて第二のレベル（ハイレベル）に変化させている。図１２８（ａ）では、リセット出力端子ＸＲＳＴＯの出力信号の電圧を、ランダム延長処理の実行開始前、かつ、固定延長処理の実行終了後に、第一のレベル（ローレベル）の電圧からローレベルしきい値電圧ＶＬを超える電圧に変化させた後に、ランダム延長処理の実行開始前、かつ、固定延長処理の実行終了後に、さらにハイレベルしきい値電圧ＶＨを超える電圧に変化させて第二のレベル（ハイレベル）に変化させている。また、同図（ｂ）では、リセット出力端子ＸＲＳＴＯの出力信号の電圧を、ランダム延長処理の実行開始前、かつ、固定延長処理の実行終了とほぼ同時に、第一のレベル（ローレベル）の電圧からローレベルしきい値電圧ＶＬを超える電圧に変化させた後に、ランダム延長処理の実行開始前、かつ、固定延長処理の実行終了後に、さらにハイレベルしきい値電圧ＶＨを超える電圧に変化させて第二のレベル（ハイレベル）に変化させている。
【１０１４】
また、前記マイクロプロセッサは、前記所定の出力端子（例えば、リセット出力端子ＸＲＳＴＯ）からの所定の信号出力（例えば、リセット出力信号出力）を、前記遊技制御プログラムの実行開始前に行われるランダム遅延処理の終了前（または、ランダム遅延処理中）に実行可能であっても、同様の効果を得ることができる。
【１０１５】
上記実施形態に係る遊技台によれば、所定の信号出力のタイミングと遊技制御プログラムの実行開始タイミングをずらすことが可能なため、遊技制御処理の特定の処理（例えばソフト乱数の更新処理、初期値更新処理等）の狙い撃ちを防止することができる場合がある。
【１０１６】
また、前記所定の出力端子はリセット信号を出力可能な端子であってもよい。このような構成とすれば、例えば、リセット信号を所定の電子部品に接続した場合、遊技制御前に電子部品が動作可能となり、不正な電波を送信した場合に電子部品が動作してしまうため、不正行為を発見しやすくなる場合がある。また、遊技制御プログラムの開始前に電子部品が動作可能なので、電子部品の作動開始タイミングと、遊技制御プログラムの実行開始タイミングとが異なると思わせることにより、遊技制御処理の特定の処理の狙い撃ちを防止することができる場合がある。
【１０１７】
また、少なくとも、セキュリティモードおよびユーザモードを備え、前記遊技制御プログラムは、前記ユーザモードで実行されるユーザプログラムであってもよい。
【１０１８】
このような構成とすれば、所定の信号出力のタイミングとユーザプログラムの実行開始タイミングをずらすことが可能なため、遊技制御処理の特定の処理（例えばソフト乱数の更新処理、初期値更新処理等）の狙い撃ちを防止することができる場合がある。
【１０１９】
また、前記遊技制御プログラムの実行開始は、システムリセットおよびユーザリセットのうちの少なくともいずれか一方を受け付けた後でおこなわれるものであってもよい。
【１０２０】
このような構成とすれば、システムリセットまたはユーザリセットの度に所定の信号出力のタイミングと遊技制御プログラムの実行開始タイミングをずらすことが可能なため、遊技制御処理の特定の処理（例えばソフト乱数の更新処理、初期値更新処理等）の狙い撃ちを防止することができる場合がある。
【１０２１】
また、少なくとも所定の入力端子を有する所定の電子部品（例えば、ＩＣ１１〜ＩＣ１４）を備え、前記所定の入力端子（例えば、リセット入力端子）は、前記所定の出力端子からの前記所定の信号を入力可能な端子であってもよい。
【１０２２】
このような構成とすれば、遊技制御プログラムの開始前に電子部品が動作可能なので、電子部品の作動開始タイミングと、遊技制御プログラムの実行開始タイミングとが異なると思わせることにより、遊技制御処理の特定の処理の狙い撃ちを防止することができる場合がある。
【１０２３】
図１２９は、ユーザリセット時におけるシステムクロック信号、アドレス信号、データ信号、制御信号、およびリセット出力信号の変化を示した図である。上述のとおり、本実施形態のユーザリセットには、ＷＤＴのタイムアウトによるユーザリセットと、指定エリア外のアクセスによるユーザリセットの２種類があり、プログラム管理エリアの設定により、ユーザリセットを有効に設定している場合に機能する。
【１０２４】
ＷＤＴのタイムアウトによるユーザリセットは、ＷＤＴタイムアウト信号に基づいて発生するリセットであり、当該リセット中はアドレス信号として第一の固定値（例えば、Ｅ０００ｈ）を出力するように構成している。一方、指定エリア外のアクセスによるユーザリセットは、指定エリア外走行禁止信号に基づいて発生するリセットであり、当該リセット中はアドレス信号として第二の固定値（例えば、８０００ｈなど、Ｅ０００ｈ以外の値）を出力するように構成している。
【１０２５】
ユーザリセットが発生すると、ＣＰＵコア、タイマ回路、演算回路、入出力ポート、通信回路、割込みコントローラなどが初期化され、リセットアドレス（００００ｈ）よりユーザプログラム（遊技制御プログラム）の実行を開始し、起動されていたウォッチドッグタイマも制御プログラムによらずに（自動的に）クリア＆リスタートされる。
【１０２６】
このように、前記マイクロプロセッサは、所定の条件が成立した場合（例えば、図１１５に示すタイムアウト時間が経過した場合）に、所定の信号（例えば、ＷＤＴ起動信号（ＷＤＴタイムアウト信号）や、ＣＰＵ内部の信号）を少なくとも発生させることが可能なウォッチドッグタイマ（例えば、ＷＤＴ３１４、第一ＷＤＴ３１４ａ、第二ＷＤＴ３１４ｂ）と、正当な指定エリア以外の記憶領域のコードが実行されたことに基づいて、指定エリア外走行禁止信号を少なくとも発生させることが可能な指定エリア外走行禁止回路（例えば、指定エリア外走行禁止回路３１４２）と、を少なくとも有し、前記指定エリア外走行禁止信号が発生してから前記所定のタイミングの間に開始されるセキュリティチェック中に、前記ウォッチドッグタイマのカウンタが停止している期間が少なくとも含まれていてもよい。
【１０２７】
なお、本発明に係る「ウォッチドッグタイマのカウンタが停止している」には、カウンタが一時的に停止している場合、カウンタが初期値や０に設定された後にカウンタが一時的に停止している場合、カウンタのカウントは継続するが、カウンタがタイムアウトする前にカウンタをクリア＆リスタートし続けることによってカウンタが実質的に停止する（タイムアウトさせない）場合、カウンタの値をセキュリティチェック時間の最大処理時間よりも長く設定し、セキュリティチェック中のタイムアウトを回避することによってカウンタが実質的に停止する（タイムアウトさせない）場合などが含まれる。また、「ウォッチドッグタイマのカウンタが停止している期間」には、指定エリア外走行禁止信号の発生から当該信号の発生直後までの期間、指定エリア外走行禁止信号の発生後からシステムクロックが所定クロック経過した後（例えば、指定エリア外走行禁止信号の発生後からシステムクロックの１クロック後の立ち下がりエッジまたは立ち上がりエッジまで）、リセット出力端子ＸＲＳＴＯの出力信号の立上りまでの期間の一部やすべてなども含まれる。また、ＷＤＴをマイコンに内蔵し、ＷＤＴタイムアウトが発生してから前記所定のタイミングの間に開始されるセキュリティチェック中に、ＷＤＴ用カウンタが停止している期間が少なくとも含まれ、ＷＤＴをマイコンに内蔵し、指定エリア外走行禁止信号が発生してから前記所定のタイミングの間に開始されるセキュリティチェック中に、ＷＤＴ用カウンタが停止している期間が少なくとも含まれる。
【１０２８】
このような構成とすれば、指定エリア外走行禁止信号に基づくリセット処理を行う際に、ウォッチドッグタイマのタイムアウトを制御プログラムによらずに（自動的に）停止させることができ、指定エリア外走行禁止信号に基づくリセット処理を迅速に行うことができる場合がある。
【１０２９】
また、本実施形態に係るパチンコ機１００は、ＣＰＵ（例えば、ＣＰＵ３０４)と、遊技制御プログラムが少なくとも記憶されているＲＯＭ（例えば、ＲＯＭ３０６）と、を少なくとも備えた遊技台であって、前記遊技台は、ぱちんこ機またはスロットマシンであり、所定の条件が成立した場合（例えば、図１１５に示すタイムアウト時間が経過した場合）に、所定の信号（例えば、ＷＤＴ起動信号（ＷＤＴタイムアウト信号）や、ＣＰＵ内部の信号）を少なくとも発生させるウォッチドッグタイマ（例えば、ＷＤＴ３１４、第一ＷＤＴ３１４ａ、第二ＷＤＴ３１４ｂ）を備え、前記ＣＰＵは、前記所定の信号の発生を契機として前記遊技制御プログラムを所定のアドレス（例えば、図６２に示す００００ｈ番地）から実行可能であり、前記所定の信号の発生から前記遊技制御プログラムの実行開始までの時間を調整可能に構成されている、ことを特徴とする遊技台である。
【１０３０】
本実施形態に係るパチンコ機１００によれば、遊技制御用プログラムが実行されるまでの時間を変化させることができ、遊技制御用プログラムの実行タイミング（例えば、当否判定の抽選タイミング）を把握するような不正行為を未然に防止でき、安定した遊技制御をおこなうことができる場合がある。
【１０３１】
なお、本発明に係るウォッチドッグタイマは、ＣＰＵと別体のもの、ＣＰＵに内蔵のもの、の両方を含み、前者の場合、リセット信号はウォッチドッグタイマからＣＰＵに入力されるため信号線が外部に露出するが、後者の場合、リセット信号はＣＰＵ内部で配線されるため信号線は外部には露出しない。したがって、後者の場合には、ＷＤＴのタイムアウトに基づいてリセット信号が発生したか否か（ＣＰＵにリセットがかかったか否か）を隠蔽することができ、遊技制御用プログラムの実行タイミングを把握するような不正行為を、より確実に防止できる場合がある。
【１０３２】
また、前記ＣＰＵと前記ＲＯＭを少なくとも内蔵するマイクロプロセッサ（例えば、基本回路３０２）を備え、前記マイクロプロセッサは、少なくとも所定の出力端子（例えば、リセット出力端子ＸＲＳＴＯ）を有し、前記所定の出力端子は、少なくとも所定のタイミングで立ち上がることが可能なものであり、前記所定のタイミングは、前記遊技制御プログラムの実行開始前に行われるランダム遅延処理の開始前であってもよい。
【１０３３】
このような構成とすれば、所定の信号出力のタイミングと遊技制御プログラムの実行開始タイミングをずらすことが可能なため、遊技制御処理の特定の処理（例えばソフト乱数の更新処理、初期値更新処理等）の狙い撃ちを防止することができる場合がある。
【１０３４】
また、前記ＣＰＵは、所定の出力端子（例えば、リセット出力端子ＸＲＳＴＯ）からの信号（例えば、リセット出力信号出力）の出力の立上りタイミングまたは立下りタイミング（例えば、ローレベル信号からハイレベル信号に変化させる立上りタイミング）を、前記遊技制御プログラムの実行開始前に行われるランダム遅延処理の開始前に実行可能であってもよい。
【１０３５】
このような構成とすれば、遊技制御用プログラムが実行されるまでの時間を変化させながらも、リセット信号の発生から所定の信号の出力までの時間を一定にすることができ、安定した遊技制御をおこなうことができる場合がある。
【１０３６】
また、前記所定の出力端子はリセット信号を出力可能な端子であってもよい。このような構成とすれば、例えば、リセット信号を所定の電子部品に接続した場合、遊技制御前に電子部品が動作可能となり、不正な電波を送信した場合に電子部品が動作してしまうため、不正行為を発見しやすくなる場合がある。また、遊技制御プログラムの開始前に電子部品が動作可能なので、電子部品の作動開始タイミングと、遊技制御プログラムの実行開始タイミングとが異なると思わせることにより、遊技制御処理の特定の処理の狙い撃ちを防止することができる場合がある。
【１０３７】
また、少なくとも、セキュリティモードおよびユーザモードを備え、前記遊技制御プログラムは、前記ユーザモードで実行されるユーザプログラムであってもよい。
【１０３８】
このような構成とすれば、所定の信号出力のタイミングとユーザプログラムの実行開始タイミングをずらすことが可能なため、遊技制御処理の特定の処理（例えばソフト乱数の更新処理、初期値更新処理等）の狙い撃ちを防止することができる場合がある。
【１０３９】
また、リセット要因を示す所定の情報（例えば、直前に発生したリセット要因がシステムリセットであるか否かを示す情報）が少なくともセットされるレジスタ（例えば、図１０４に示す第４内部情報レジスタ）を備え、前記遊技制御プログラムは、前記所定の情報に基づく処理（例えば、第４内部情報レジスタから読み出した情報を汎用レジスタに書き込む処理）を含まないように（実行しないように）構成してもよい。
【１０４０】
このような構成とすれば、故意にＣＰＵのリセットを発生させて特定の処理（例えばソフト乱数の更新処理、初期値更新処理等）の実行タイミングなどを狙うような不正行為を防止できる場合がある。
【１０４１】
また、前記マイクロプロセッサは、前記ウォッチドッグタイマと、正当な指定エリア以外の記憶領域のコードが実行されたことに基づいて、指定エリア外走行禁止信号を少なくとも発生させることが可能な指定エリア外走行禁止回路（例えば、指定エリア外走行禁止回路３１４２）と、を少なくとも有し、前記指定エリア外走行禁止信号が発生してから前記所定のタイミングの間に開始されるセキュリティチェック中に、前記ウォッチドッグタイマのカウンタが停止している期間が少なくとも含まれていてもよい。
【１０４２】
このような構成とすれば、指定エリア外走行禁止信号に基づくリセット処理を行う際に、ウォッチドッグタイマのタイムアウトを制御プログラムによらずに（自動的に）停止させることができ、指定エリア外走行禁止信号に基づくリセット処理を迅速に行うことができる場合がある。
【１０４３】
また、所定の周期で数値を変化させる乱数回路と、所定の抽出条件が成立したことに基づいて前記乱数回路から数値を抽出し、少なくとも該数値に基づいて遊技に関する抽選を行う処理を含む遊技制御処理を行うためのＣＰＵと、前記遊技制御処理の内容が予め記憶されているＲＯＭと、一時的にデータを記憶するためのＲＡＭと、を含んで構成されたマイクロコンピューターを備え、前記ＣＰＵは、電源が遮断される場合に実行される処理であって、前記ＲＡＭの所定領域に当該処理が行われたことを示す所定のデータを記憶させる処理を含む電断時処理を行い、前記ＣＰＵは、前記所定のデータが記憶されている場合には、前記ＲＡＭ領域を初期化する初期化処理を行うことなく前記遊技制御処理を復帰させることが可能である一方、前記所定のデータが記憶されていない場合には、該初期化処理を行うことなく前記遊技制御処理を復帰させることが不可能であり、前記マイクロコンピューターは、電源が投入された場合に入力される起動信号が入力されてから前記遊技制御処理が開始されるまでの時間の長さをランダムに変動させる時間変動処理を行う時間変動用回路、および正当な指定エリア以外の記憶領域のコードが実行されたことに基づいて指定エリア外走行禁止信号を発生させる指定エリア外走行禁止回路を、含んで構成され、前記ＣＰＵは、前記起動信号が入力されたことに基づいて実行されるシステムリセットの場合には、前記マイクロコンピューターによって、前記ＲＯＭが記憶している前記遊技制御処理の内容に異常がないかをチェックする処理および前記時間変動処理を含むセキュリティチェックが行われた後に、前記遊技制御処理を開始し、前記ＣＰＵは、前記指定エリア外走行禁止信号が発生したことに基づいて実行されるユーザリセットの場合には、前記マイクロコンピューターによって、前記セキュリティチェックが行われないことで、前記時間変動処理が行われず、前記遊技制御処理を開始し、前記システムリセットおよび前記ユーザリセットのいずれの場合であっても、前記ＣＰＵによって前記電断処理が行われず、前記所定領域に前記所定のデータが記憶されないことを特徴とする遊技台としてもよい。
【１０４４】
なお、本発明に係る遊技台は、封入式ぱちんこ機やメダルレススロットマシンに適用することもできる。また、主制御部、第１副制御部、および第２副制御部をワンチップで構成してもよいし、主制御部と第１副制御部で双方向の通信が可能に構成してもよい。また、主制御部と第１副制御部で双方向の通信を可能とする一方で、第１副制御部から第２副制御部への通信は一方向の通信としてもよい。
【１０４５】
また、本発明の実施の形態に記載された作用および効果は、本発明から生じる最も好適な作用および効果を列挙したに過ぎず、本発明による作用および効果は、本発明の実施の形態に記載されたものに限定されるものではない。また、実施形態に記載した複数の構成のうち、１つの構成に記載している内容を、他の構成に適用することでより遊技の幅を広げられる場合がある。したがって、例えば、ＷＤＴに基づくリセットに関する記載において、ＷＤＴタイムアウト信号（ＷＤＴ起動信号）を指定エリア外走行禁止信号に読み替えて適用してもよい。
【産業上の利用可能性】
【１０４６】
本発明に係る遊技台は、回胴遊技機（スロットマシン）や弾球遊技球（ぱちんこ機）などに代表される遊技台に適用することができる。
【符号の説明】
【１０４７】
１００  パチンコ機
２０８    装飾図柄表示装置
２０８ｄ    演出領域
２１２    第１特図表示装置
２１４    第２特図表示装置
２３０    第１特図始動口
２３２    第２特図始動口
２３２１    羽根部材
２３４    可変入賞口
２３４１    扉部材
３００  主制御部
３０４  ＣＰＵ
３０６  ＲＯＭ
３０８  ＲＡＭ
３１０  Ｉ／Ｏ
３１１    タイマ回路
３１２    カウンタ回路
３１４    リセット制御回路
３１８    乱数生成回路
４００  第１副制御部
４０４    ＣＰＵ
４０６    ＲＯＭ
４０８    ＲＡＭ
５００  第２副制御部
６００    払出制御部
１１００  スロットマシン
１３００  主制御部
１３０４  ＣＰＵ
１３０６  ＲＯＭ
１３０８  ＲＡＭ
１３１０  Ｉ／Ｏ
１４００  第１副制御部
１５００  第２制御部
１００    パチンコ機
１００'  スロットマシン
１１０'〜１１２'  リール
１３０'〜１３２'  ベットボタン
１３５'  スタートレバー
１３７'〜１３９'  ストップボタン
１５７'  液晶表示装置
２００'  ベットボタンランプ
２７２'，２７７'  スピーカ
４２０'  各種ランプ
３００'  主制御部
４００'  第１副制御部
【図１】
0005544644.tif 000002
【図２】
0005544644.tif 000003
【図３】
0005544644.tif 000004
【図４】
0005544644.tif 000005
【図５】
0005544644.tif 000006
【図６】
0005544644.tif 000007
【図７】
0005544644.tif 000008
【図８】
0005544644.tif 000009
【図９】
0005544644.tif 000010
【図１０】
0005544644.tif 000011
【図１１】
0005544644.tif 000012
【図１２】
0005544644.tif 000013
【図１３】
0005544644.tif 000014
【図１４】
0005544644.tif 000015
【図１５】
0005544644.tif 000016
【図１６】
0005544644.tif 000017
【図１７】
0005544644.tif 000018
【図１８】
0005544644.tif 000019
【図１９】
0005544644.tif 000020
【図２０】
0005544644.tif 000021
【図２１】
0005544644.tif 000022
【図２２】
0005544644.tif 000023
【図２３】
0005544644.tif 000024
【図２４】
0005544644.tif 000025
【図２５】
0005544644.tif 000026
【図２６】
0005544644.tif 000027
【図２７】
0005544644.tif 000028
【図２８】
0005544644.tif 000029
【図２９】
0005544644.tif 000030
【図３０】
0005544644.tif 000031
【図３１】
0005544644.tif 000032
【図３２】
0005544644.tif 000033
【図３３】
0005544644.tif 000034
【図３４】
0005544644.tif 000035
【図３５】
0005544644.tif 000036
【図３６】
0005544644.tif 000037
【図３７】
0005544644.tif 000038
【図３８】
0005544644.tif 000039
【図３９】
0005544644.tif 000040
【図４０】
0005544644.tif 000041
【図４１】
0005544644.tif 000042
【図４２】
0005544644.tif 000043
【図４３】
0005544644.tif 000044
【図４４】
0005544644.tif 000045
【図４５】
0005544644.tif 000046
【図４６】
0005544644.tif 000047
【図４７】
0005544644.tif 000048
【図４８】
0005544644.tif 000049
【図４９】
0005544644.tif 000050
【図５０】
0005544644.tif 000051
【図５１】
0005544644.tif 000052
【図５２】
0005544644.tif 000053
【図５３】
0005544644.tif 000054
【図５４】
0005544644.tif 000055
【図５５】
0005544644.tif 000056
【図５６】
0005544644.tif 000057
【図５７】
0005544644.tif 000058
【図５８】
0005544644.tif 000059
【図５９】
0005544644.tif 000060
【図６０】
0005544644.tif 000061
【図６１】
0005544644.tif 000062
【図６２】
0005544644.tif 000063
【図６３】
0005544644.tif 000064
【図６４】
0005544644.tif 000065
【図６５】
0005544644.tif 000066
【図６６】
0005544644.tif 000067
【図６７】
0005544644.tif 000068
【図６８】
0005544644.tif 000069
【図６９】
0005544644.tif 000070
【図７０】
0005544644.tif 000071
【図７１】
0005544644.tif 000072
【図７２】
0005544644.tif 000073
【図７３】
0005544644.tif 000074
【図７４】
0005544644.tif 000075
【図７５】
0005544644.tif 000076
【図７６】
0005544644.tif 000077
【図７７】
0005544644.tif 000078
【図７８】
0005544644.tif 000079
【図７９】
0005544644.tif 000080
【図８０】
0005544644.tif 000081
【図８１】
0005544644.tif 000082
【図８２】
0005544644.tif 000083
【図８３】
0005544644.tif 000084
【図８４】
0005544644.tif 000085
【図８５】
0005544644.tif 000086
【図８６】
0005544644.tif 000087
【図８７】
0005544644.tif 000088
【図８８】
0005544644.tif 000089
【図８９】
0005544644.tif 000090
【図９０】
0005544644.tif 000091
【図９１】
0005544644.tif 000092
【図９２】
0005544644.tif 000093
【図９３】
0005544644.tif 000094
【図９４】
0005544644.tif 000095
【図９５】
0005544644.tif 000096
【図９６】
0005544644.tif 000097
【図９７】
0005544644.tif 000098
【図９８】
0005544644.tif 000099
【図９９】
0005544644.tif 000100
【図１００】
0005544644.tif 000101
【図１０１】
0005544644.tif 000102
【図１０２】
0005544644.tif 000103
【図１０３】
0005544644.tif 000104
【図１０４】
0005544644.tif 000105
【図１０５】
0005544644.tif 000106
【図１０６】
0005544644.tif 000107
【図１０７】
0005544644.tif 000108
【図１０８】
0005544644.tif 000109
【図１０９】
0005544644.tif 000110
【図１１０】
0005544644.tif 000111
【図１１１】
0005544644.tif 000112
【図１１２】
0005544644.tif 000113
【図１１３】
0005544644.tif 000114
【図１１４】
0005544644.tif 000115
【図１１５】
0005544644.tif 000116
【図１１６】
0005544644.tif 000117
【図１１７】
0005544644.tif 000118
【図１１８】
0005544644.tif 000119
【図１１９】
0005544644.tif 000120
【図１２０】
0005544644.tif 000121
【図１２１】
0005544644.tif 000122
【図１２２】
0005544644.tif 000123
【図１２３】
0005544644.tif 000124
【図１２４】
0005544644.tif 000125
【図１２５】
0005544644.tif 000126
【図１２６】
0005544644.tif 000127
【図１２７】
0005544644.tif 000128
【図１２８】
0005544644.tif 000129
【図１２９】
0005544644.tif 000130