(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、
ＲＡＭと、
遊技制御プログラムが少なくとも記憶されたＲＯＭと、
を少なくとも内蔵するマイクロコンピュータを備えた遊技台であって、
前記遊技台は、スロットマシンであり、
前記ＲＡＭの先頭アドレスの上位バイトは、前記ＲＯＭの先頭アドレスの上位バイトよりも大きく、
前記ＣＰＵは、少なくとも第一のレジスタを有し、
前記第一のレジスタは、複数の方法のうちのいずれかの方法で値をセット可能なレジスタであり、
前記複数の方法のうちの少なくとも一つは、第一の方法であり、
前記複数の方法のうちの少なくとも一つは、第二の方法であり、
前記第一の方法は、直値により値をセットする方法であり、
前記第二の方法は、前記ＲＡＭの先頭アドレスの上位バイトと同じ値を初期値としてセットする方法であり、
前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、ＬＤ命令を受けたことに基づいて行われる機能としては、前記第一の方法により値がセットされる機能のみを有し、
前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、前記ＬＤ命令を受けたことに基づいて行われる機能以外の機能としては、前記第二の方法により値がセットされる機能を少なくとも有し、
前記第二の方法は、前記遊技制御プログラムによらずに実行され、
前記遊技制御プログラムは、前記複数の方法のうちのいずれかの方法で値がセットされた前記第一のレジスタを用いて前記ＲＡＭをアクセスする命令を少なくとも含むプログラムである、
ことを特徴とする遊技台。
【請求項２】
ＣＰＵと、
ＲＡＭと、
遊技制御プログラムが少なくとも記憶されたＲＯＭと、
を少なくとも内蔵するマイクロコンピュータを備えた遊技台であって、
前記遊技台は、ぱちんこ機であり、
前記ＲＡＭの先頭アドレスの上位バイトは、前記ＲＯＭの先頭アドレスの上位バイトよりも大きく、
前記ＣＰＵは、少なくとも第一のレジスタを有し、
前記第一のレジスタは、複数の方法のうちのいずれかの方法で値をセット可能なレジスタであり、
前記複数の方法のうちの少なくとも一つは、第一の方法であり、
前記複数の方法のうちの少なくとも一つは、第二の方法であり、
前記第一の方法は、直値により値をセットする方法であり、
前記第二の方法は、前記ＲＡＭの先頭アドレスの上位バイトと同じ値を初期値としてセットする方法であり、
前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、ＬＤ命令を受けたことに基づいて行われる機能としては、前記第一の方法により値がセットされる機能のみを有し、
前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、前記ＬＤ命令を受けたことに基づいて行われる機能以外の機能としては、前記第二の方法により値がセットされる機能を少なくとも有し、
前記第二の方法は、前記遊技制御プログラムによらずに実行され、
前記遊技制御プログラムは、前記複数の方法のうちのいずれかの方法で値がセットされた前記第一のレジスタを用いて前記ＲＡＭをアクセスする命令を少なくとも含むプログラムである、
ことを特徴とする遊技台。
【請求項３】
請求項１または請求項２に記載の遊技台であって、
前記ＬＤ命令とは、レジスタに値を転送するロード命令の一種のことである、
ことを特徴とする遊技台。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載の遊技台であって、
前記第一のレジスタは、リセットが発生した場合に前記初期値がセットされる、
ことを特徴とする遊技台。
【請求項５】
請求項４に記載の遊技台であって、
前記リセットとは、システムリセットのことである、
ことを特徴とする遊技台。
【請求項６】
請求項１乃至請求項５のいずれか一項に記載の遊技台であって、
前記複数の方法のうちの少なくとも一つは、第三の方法であり、
前記第三の方法は、前記ＣＰＵにおける前記第一のレジスタに値をセットする機能のうち、前記ＬＤ命令を受けたことに基づいて行われる機能以外の機能による方法であり、
前記第三の方法は、スタック操作命令を受けたことに基づいて行われる機能による方法である、
ことを特徴とする遊技台。
【請求項７】
請求項１乃至請求項６のいずれか一項に記載の遊技台であって、
前記ＣＰＵは、少なくとも複数のレジスタを有し、
前記複数のレジスタのうちの少なくとも一つは、前記第一のレジスタであり、
前記複数のレジスタのうちの少なくとも一つは、第二のレジスタであり、
前記第二のレジスタは、フラグレジスタである、
ことを特徴とする遊技台。
【請求項８】
請求項１乃至請求項７のいずれか一項に記載の遊技台であって、
前記マイクロコンピュータは、セキュリティモードを経てユーザモードに移行可能なものであり、
前記遊技制御プログラムは、前記ユーザモードにおいて、前記ＣＰＵによって実行され、
前記セキュリティモードにおいて、前記遊技制御プログラムが正常なプログラムかどうかのチェックが行われる、
ことを特徴とする遊技台。
【請求項９】
請求項１乃至請求項８のいずれか一項に記載の遊技台であって、
前記マイクロコンピュータが少なくとも設けられた払出制御手段を備え、
前記払出制御手段は、少なくとも賞球を払出する払出制御を少なくとも実行可能な制御手段であり、
前記遊技制御プログラムとは、払出制御プログラムのことである、
ことを特徴とする遊技台。
【請求項１０】
請求項１乃至請求項９のいずれか一項に記載の遊技台であって、
前記マイクロコンピュータが少なくとも設けられた主制御手段を備え、
前記主制御手段は、少なくとも賞球を払出する払出制御を少なくとも実行可能な払出制御手段に対して、コマンドを少なくとも送信可能な制御手段である、
ことを特徴とする遊技台。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回胴遊技機（スロットマシン）や弾球遊技機（パチンコ機）に代表される遊技台に関する。
【背景技術】
【０００２】
従来の遊技台（例えば、スロットマシン、パチンコ機）は、図柄表示部の有効入賞ラインに沿って所定の図柄の組合せを停止表示させることで、遊技者が所定の利益を獲得できるように構成されていたり、遊技領域に設けられた所定の入賞口に遊技球を進入させることで、遊技者が所定の利益を獲得できるように構成されている。
このような遊技台では、遊技の興趣が高められなければ遊技者に飽きられることから遊技制御が複雑になる傾向にある。さらに、遊技者による不正な行為、静電気ノイズなどの外乱、プログラムのコーディングミスなど様々な要因で、遊技制御が不安定になる場合があるが、このような問題点を解決するために、リセット受信からソフト起動までの時間をランダム化させる遊技台が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−３４１６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の遊技台は、ＣＰＵのレジスタと当該レジスタを用いたプログラムに改良の余地がある。
【０００５】
本発明の目的は、ＣＰＵのレジスタと当該レジスタを用いたプログラムに特徴を持った遊技台を提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、ＣＰＵと、ＲＡＭと、遊技制御プログラムが少なくとも記憶されたＲＯＭと、を少なくとも内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、スロットマシンであり、前記ＲＡＭの先頭アドレスの上位バイトは、前記ＲＯＭの先頭アドレスの上位バイトよりも大きく、前記ＣＰＵは、少なくとも第一のレジスタを有し、前記第一のレジスタは、複数の方法のうちのいずれかの方法で値をセット可能なレジスタであり、前記複数の方法のうちの少なくとも一つは、第一の方法であり、前記複数の方法のうちの少なくとも一つは、第二の方法であり、前記第一の方法は、直値により値をセットする方法であり、前記第二の方法は、前記ＲＡＭの先頭アドレスの上位バイトと同じ値を初期値としてセットする方法であり、前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、ＬＤ命令を受けたことに基づいて行われる機能としては、前記第一の方法により値がセットされる機能のみを有し、前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、前記ＬＤ命令を受けたことに基づいて行われる機能以外の機能としては、前記第二の方法により値がセットされる機能を少なくとも有し、前記第二の方法は、前記遊技制御プログラムによらずに実行され、前記遊技制御プログラムは、前記複数の方法のうちのいずれかの方法で値がセットされた前記第一のレジスタを用いて前記ＲＡＭをアクセスする命令を少なくとも含むプログラムである、ことを特徴とする遊技台である。
また、本発明は、ＣＰＵと、ＲＡＭと、遊技制御プログラムが少なくとも記憶されたＲＯＭと、を少なくとも内蔵するマイクロコンピュータを備えた遊技台であって、前記遊技台は、ぱちんこ機であり、前記ＲＡＭの先頭アドレスの上位バイトは、前記ＲＯＭの先頭アドレスの上位バイトよりも大きく、前記ＣＰＵは、少なくとも第一のレジスタを有し、前記第一のレジスタは、複数の方法のうちのいずれかの方法で値をセット可能なレジスタであり、前記複数の方法のうちの少なくとも一つは、第一の方法であり、前記複数の方法のうちの少なくとも一つは、第二の方法であり、前記第一の方法は、直値により値をセットする方法であり、前記第二の方法は、前記ＲＡＭの先頭アドレスの上位バイトと同じ値を初期値としてセットする方法であり、前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、ＬＤ命令を受けたことに基づいて行われる機能としては、前記第一の方法により値がセットされる機能のみを有し、前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、前記ＬＤ命令を受けたことに基づいて行われる機能以外の機能としては、前記第二の方法により値がセットされる機能を少なくとも有し、前記第二の方法は、前記遊技制御プログラムによらずに実行され、前記遊技制御プログラムは、前記複数の方法のうちのいずれかの方法で値がセットされた前記第一のレジスタを用いて前記ＲＡＭをアクセスする命令を少なくとも含むプログラムである、ことを特徴とする遊技台である。
【発明の効果】
【０００７】
本発明によれば、ＣＰＵのレジスタと当該レジスタを用いたプログラムに特徴を持った遊技台を実現できる。
【図面の簡単な説明】
【０００８】
【図１】パチンコ機を正面側（遊技者側）から見た外観斜視図である。
【図２】パチンコ機を背面側から見た外観図である。
【図３】遊技盤を正面から見た略示正面図である。
【図４】制御部の回路ブロック図を示したものである。
【図５】（ａ）特図の停止図柄態様の一例を示したものである。（ｂ）装飾図柄の停止図柄態様の一例を示したものである。（ｃ）普図の停止表示図柄の一例を示したものである。
【図６】主制御部３００から基本回路３０２の主要部のみを抜き出して示した図である。
【図７】（ａ）ＣＰＵ３０４のメモリマップを示した図である。（ｂ）（ａ）に示すメモリマップのうちのＲＷＭ領域の詳細を示した図である。（ｃ）ＣＰＵ３０４のＩ／Ｏマップを示した図である。
【図８】ＲＷＭ領域の一部にＩ／Ｏ空間を割り当てた例を示した図である。
【図９】初期化処理の流れを示すフローチャートである。
【図１０】主制御部メイン処理の流れを示すフローチャートである。
【図１１】（ａ）初期設定１で行うＴレジチェック処理の流れを示すフローチャートである。（ｂ）Ｔレジチェック処理のプログラムリストの一例である。
【図１２】（ａ）変形例に係るＴレジチェック処理の流れを示すフローチャートである。（ｂ）変形例に係るＴレジチェック処理のプログラムリストの一例である。
【図１３】図１１（ｂ）のプログラムリストからＬＤ命令のみを抜き出して示した図である。
【図１４】主制御部タイマ割込処理の流れを示すフローチャートである。
【図１５】（ａ）第１副制御部のＣＰＵが実行するメイン処理のフローチャートである。（ｂ）第１副制御部のコマンド受信割込み処理のフローチャートである。（ｃ）第１副制御部のタイマ割込処理のフローチャートである。（ｄ）第１副制御部の画像制御処理のフローチャートである。
【図１６】（ａ）第２副制御部５００のＣＰＵ５０４が実行するメイン処理のフローチャートである。（ｂ）第２副制御部５００のコマンド受信割込処理のフローチャートである。（ｃ）第２副制御部５００のタイマ割込処理のフローチャートである。
【図１７】ＲＯＭ３０６に記憶されるデータの一例を示した図である。
【図１８】主制御部３００の命令データの構成の一例を示した図である。
【図１９】（ａ）主制御部３００の命令データの上位ビットと下位ビットを示した図である。（ｂ）命令データテーブルの一例を示した図である。
【図２０】ＣＡＬＬ命令によるアドレスの移動の一例を概念的に示したものである。
【図２１】ＣＡＬＬ命令の命令データと補足データの一例を示した図である。
【図２２】（ａ）ＥＸＥＳＵＢ命令の構成の一例を示した図である。（ｂ）図１９（ｂ）の空き領域に対してＥＸＥＳＵＢ命令を割り当てた命令データテーブルを示した図である。
【図２３】ＥＸＥＳＵＢ命令によるアドレスの移動の一例を概念的に示した図である。
【図２４】ＥＸＥＳＵＢ命令によるサブルーチンの先頭アドレスの呼び出しの一例を示したものである。
【図２５】ＥＸＥＳＵＢ命令の命令データと補足データの一例を示した図である。
【図２６】主制御部タイマ割込処理の制御プログラムの一例を示したプログラムリストである。
【図２７】ＲＯＭ領域が、ＥＸＥＳＵＢ命令によって呼び出すことのできる領域よりも、制御プログラムデータが記憶されているＲＯＭ制御領域が広くなるように構成されている場合を示した図である。
【図２８】（ａ）（ｂ）ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）によって呼び出すことができるサブルーチンの先頭アドレスの領域を拡張した場合の一例を示した図である。
【図２９】（ａ）特図２状態更新処理および特図１状態更新処理の制御プログラムの一部を抜き出したものである。（ｂ）普図状態更新処理の制御プログラムの一部を抜き出したものである。（ｃ）従来のメモリ読み出し処理の一部を抜き出したものである。（ｄ）ＲＡＭエリア（ＲＷＭ領域）に設けた変数領域の一部を示した図である。（ｅ）本実施形態に係るメモリ読み出し処理の一部を抜き出したものである。
【図３０】図２９（ｃ）に示す従来のメモリ読出し処理の機械語と、図２９（ｅ）に示す本実施形態に係るメモリ読出し処理の機械語と、を比較した図である。
【図３１】特図１関連抽選処理の流れを示すフローチャートである。
【図３２】（ａ）テーブル選択用テーブルの一例を示した図である。（ｂ）第１変動パターン選択テーブルの一例を示した図である。（ｃ）第２変動パターン選択テーブルの一例を示した図である。（ｄ）ＲＷＭ領域のアドレス７Ｅ４０Ｈ〜７Ｅ４２Ｈに対応するＲＡＭ３０８の記憶領域に設けられる保留数記憶領域、乱数１記憶領域、乱数２記憶領域を示した図である。
【図３３】主制御部３００のＲＯＭ３０６に記憶されるデータテーブルの定義の一部と、ＲＡＭ３０８に設けられる変数格納領域の定義の一部を示したプログラムリストの一例である。
【図３４】特別図柄変動時間抽選処理の流れを示すフローチャートである。
【図３５】特別図柄変動時間抽選処理のプログラムリストの一例である。
【図３６】制御部３００（のＣＰＵ３０４）が備える命令の一部と、その説明を示した図である。
【図３７】（ａ）主制御部３００の命令データの上位ビットと下位ビットを示した図である。（ｂ）命令データテーブルの一例を示した図である。
【図３８】テーブル選択用テーブル、第１変動パターン選択テーブル、および第２変動パターン選択テーブルの変形例を示した図である。
【図３９】変形例に係る特別図柄変動時間抽選処理の流れを示すフローチャートである。
【図４０】（ａ）ＲＯＭ３０６に記憶される初期設定データテーブルの一例を示した図である。（ｂ）初期設定処理後のＲＡＭ３０８の記憶領域の一部を示した図である。（ｃ）初期設定処理の流れを示すフローチャートである。
【図４１】初期設定処理のプログラムリストの一例である。
【図４２】スロットマシンを正面側（遊技者側）から見た外観斜視図である。
【図４３】前面扉を開けた状態のスロットマシンを示す正面図である。
【図４４】制御部の回路ブロック図を示したものである。
【図４５】（ａ）各リール（左リール、中リール、右リール）に施される図柄の配列を平面的に展開して示した図である。（ｂ）入賞役（作動役を含む）の種類、各入賞役に対応する図柄組合せ、各入賞役の作動または払出を示した図である。
【図４６】主制御部メイン処理の流れを示すフローチャートである。
【図４７】主制御部タイマ割込処理の流れを示すフローチャートである。
【図４８】（ａ）第１副制御部のＣＰＵ１４０４が実行するメイン処理のフローチャートである。（ｂ）第１副制御部のコマンド受信割込処理のフローチャートである。（ｃ）第１副制御部のタイマ割込処理のフローチャートである。
【図４９】（ａ）第２副制御部のＣＰＵ１５０４が実行するメイン処理のフローチャートである。（ｂ）第２副制御部のコマンド受信割込処理のフローチャートである。（ｃ）第２副制御部のタイマ割込処理のフローチャートである。（ｄ）第２副制御部の画像制御処理のフローチャートである。
【図５０】本発明の他の適用例を示した図である。
【発明を実施するための形態】
【０００９】
＜実施形態１＞
以下、図面を用いて、本発明の実施形態１に係る遊技台（パチンコ機１００）について詳細に説明する。
【００１０】
＜全体構成＞
まず、図１を用いて、本発明の実施形態１に係るパチンコ機１００の全体構成について説明する。なお、同図はパチンコ機１００を正面側（遊技者側）から見た外観斜視図である。
【００１１】
パチンコ機１００は、外部的構造として、外枠１０２と、本体１０４と、前面枠扉１０６と、球貯留皿付扉１０８と、発射装置１１０と、遊技盤２００と、をその前面に備える。
【００１２】
外枠１０２は、遊技機設置営業店に設けられた設置場所（島設備等）へと固定させるための縦長方形状から成る木製の枠部材である。本体１０４は、内枠と呼ばれ、外枠１０２の内部に備えられ、ヒンジ部１１２を介して外枠１０２に回動自在に装着された縦長方形状の遊技機基軸体となる部材である。また、本体１０４は、枠状に形成され、内側に空間部１１４を有している。また、本体１０４が開放された場合、本体１０４の開放を検出する不図示の内枠開放センサを備える。
【００１３】
前面枠扉１０６は、ロック機能付きで且つ開閉自在となるようにパチンコ機１００の前面側となる本体１０４の前面に対しヒンジ部１１２を介して装着され、枠状に構成されることでその内側を開口部とした扉部材である。なお、この前面枠扉１０６には、開口部にガラス製又は樹脂製の透明板部材１１８が設けられ、前面側には、スピーカ１２０や枠ランプ１２２が取り付けられている。前面枠扉１０６の後面と遊技盤２００の前面とで遊技領域１２４を区画形成する。また、前面枠扉１０６が開放された場合、前面枠扉１０６の開放を検出する不図示の前面枠扉開放センサを備える。
【００１４】
球貯留皿付扉１０８は、パチンコ機１００の前面において本体１０４の下側に対して、ロック機能付きで且つ開閉自在となるように装着された扉部材である。球貯留皿付扉１０８は、複数の遊技球（以下、単に「球」と称する場合がある）が貯留可能で且つ発射装置１１０へと遊技球を案内させる通路が設けられている上皿１２６と、上皿１２６に貯留しきれない遊技球を貯留する下皿１２８と、遊技者の操作によって上皿１２６に貯留された遊技球を下皿１２８へと排出させる球抜ボタン１３０と、遊技者の操作によって下皿１２８に貯留された遊技球を遊技球収集容器（俗称、ドル箱）へと排出させる球排出レバー１３２と、遊技者の操作によって発射装置１１０へと案内された遊技球を遊技盤２００の遊技領域１２４へと打ち出す球発射ハンドル１３４と、遊技者の操作によって各種演出装置２０６の演出態様に変化を与えるチャンスボタン１３６と、チャンスボタン１３６を発光させるチャンスボタンランプ１３８と、遊技店に設置されたカードユニット（ＣＲユニット）に対して球貸し指示を行う球貸操作ボタン１４０と、カードユニットに対して遊技者の残高の返却指示を行う返却操作ボタン１４２と、遊技者の残高やカードユニットの状態を表示する球貸表示部１４４と、を備える。また、下皿１２８が満タンであることを検出する不図示の下皿満タンセンサを備える。
【００１５】
発射装置１１０は、本体１０４の下方に取り付けられ、球発射ハンドル１３４が遊技者に操作されることによって回動する発射杆１４６と、遊技球を発射杆１４６の先端で打突する発射槌１４８と、を備える。
【００１６】
遊技盤２００は、前面に遊技領域１２４を有し、本体１０４の空間部１１４に臨むように、所定の固定部材を用いて本体１０４に着脱自在に装着されている。なお、遊技領域１２４は、遊技盤２００を本体１０４に装着した後、開口部から観察することができる。
【００１７】
図２は、図１のパチンコ機１００を背面側から見た外観図である。パチンコ機１００の背面上部には、上方に開口した開口部を有し、遊技球を一時的に貯留するための球タンク１５０と、この球タンク１５０の下方に位置し、球タンク１５０の底部に形成した連通孔を通過して落下する球を背面右側に位置する払出装置１５２に導くためのタンクレール１５４とを配設している。
【００１８】
払出装置１５２は、筒状の部材からなり、その内部には、不図示の払出モータとスプロケットと払出センサとを備えている。スプロケットは、払出モータによって回転可能に構成されており、タンクレール１５４を通過して払出装置１５２内に流下した遊技球を一時的に滞留させると共に、払出モータを駆動して所定角度だけ回転することにより、一時的に滞留した遊技球を払出装置１５２の下方へ１個ずつ送り出すように構成している。
【００１９】
払出センサは、スプロケットが送り出した遊技球の通過を検知するためのセンサであり、遊技球が通過しているときにハイまたはローの何れか一方の信号を、遊技球が通過していないときはハイまたはローの何れか他方の信号を払出制御部６００へ出力する。なお、この払出センサを通過した遊技球は、不図示の球レールを通過してパチンコ機１００の表側に配設した上皿１２６に到達するように構成しており、パチンコ機１００は、この構成により遊技者に対して球の払い出しを行う。
【００２０】
払出装置１５２の図中左側には、遊技全般の制御処理を行う主制御部３００を構成する主基板１５６を収納する主基板ケース１５８、主制御部３００が生成した処理情報に基づいて演出に関する制御処理を行う第１副制御部４００を構成する第１副基板１６０を収納する第１副基板ケース１６２、第１副制御部４００が生成した処理情報に基づいて演出に関する制御処理を行う第２副制御部５００を構成する第２副基板１６４を収納する第２副基板ケース１６６、遊技球の払出に関する制御処理を行う払出制御部６００を構成するとともに遊技店員の操作によってエラーを解除するエラー解除スイッチ１６８を備える払出基板１７０を収納する払出基板ケース１７２、遊技球の発射に関する制御処理を行う発射制御部６３０を構成する発射基板１７４を収納する発射基板ケース１７６、各種電気的遊技機器に電源を供給する電源制御部６６０を構成するとともに遊技店員の操作によって電源をオンオフする電源スイッチ１７８と電源投入時に操作されることによってＲＷＭクリア信号を主制御部３００に出力するＲＷＭクリアスイッチ１８０とを備える電源基板１８２を収納する電源基板ケース１８４、および払出制御部６００とカードユニットとの信号の送受信を行うＣＲインターフェース部１８６を配設している。
【００２１】
図３は、遊技盤２００を正面から見た略示正面図である。遊技盤２００には、外レール２０２と内レール２０４とを配設し、遊技球が転動可能な遊技領域１２４を区画形成している。
【００２２】
遊技領域１２４の略中央には、演出装置２０６を配設している。この演出装置２０６には、略中央に装飾図柄表示装置２０８を配設し、その周囲に、普通図柄表示装置２１０と、第１特別図柄表示装置２１２と、第２特別図柄表示装置２１４と、普通図柄保留ランプ２１６と、第１特別図柄保留ランプ２１８と、第２特別図柄保留ランプ２２０と、高確中ランプ２２２を配設している。なお、以下、普通図柄を「普図」、特別図柄を「特図」と称する場合がある。
【００２３】
演出装置２０６は、演出可動体２２４を動作して演出を行うものであり、詳細については後述する。装飾図柄表示装置２０８は、装飾図柄ならびに演出に用いる様々な表示を行うための表示装置であり、本実施例では液晶表示装置（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）によって構成する。この装飾図柄表示装置２０８は、左図柄表示領域２０８ａ、中図柄表示領域２０８ｂ、右図柄表示領域２０８ｃおよび演出表示領域２０８ｄの４つの表示領域に分割し、左図柄表示領域２０８ａ、中図柄表示領域２０８ｂおよび右図柄表示領域２０８ｃはそれぞれ異なった装飾図柄を表示し、演出表示領域２０８ｄは演出に用いる画像を表示する。さらに、各表示領域２０８ａ、２０８ｂ、２０８ｃ、２０８ｄの位置や大きさは、装飾図柄表示装置２０８の表示画面内で自由に変更することを可能としている。なお、装飾図柄表示装置２０８として液晶表示装置を採用しているが、液晶表示装置でなくとも、種々の演出や種々の遊技情報を表示可能に構成されていればよく、例えば、ドットマトリクス表示装置、７セグメント表示装置、有機ＥＬ（ＥｌｅｃｔｒｏＬｕｍｉｎｅｓｃｅｎｃｅ）表示装置、リール（ドラム）式表示装置、リーフ式表示装置、プラズマディスプレイ、プロジェクタを含む他の表示デバイスを採用してもよい。
【００２４】
普図表示装置２１０は、普図の表示を行うための表示装置であり、本実施例では７セグメントＬＥＤによって構成する。第１特図表示装置２１２および第２特図表示装置２１４は、特図の表示を行うための表示装置であり、本実施例では７セグメントＬＥＤによって構成する。
【００２５】
普図保留ランプ２１６は、保留している普図変動遊技（詳細は後述）の数を示すためのランプであり、本実施例では、普図変動遊技を所定数（例えば、２つ）まで保留することを可能としている。第１特図保留ランプ２１８および第２特図保留ランプ２２０は、保留している特図変動遊技（詳細は後述）の数を示すためのランプであり、本実施例では、特図変動遊技を所定数（例えば、４つ）まで保留することを可能としている。高確中ランプ２２２は、遊技状態が大当りが発生し易い高確率状態であること、または高確率状態になることを示すためのランプであり、遊技状態を大当りが発生し難い低確率状態から高確率状態にする場合に点灯し、高確率状態から低確率状態にする場合に消灯する。
【００２６】
また、この演出装置２０６の周囲には、所定の球進入口、例えば、一般入賞口２２６と、普図始動口２２８と、第１特図始動口２３０と、第２特図始動口２３２と、可変入賞口２３４を配設している。
【００２７】
一般入賞口２２６は、本実施例では遊技盤２００に複数配設しており、この一般入賞口２２６への入球を所定の球検出センサ（図示省略）が検出した場合（一般入賞口２２６に入賞した場合）、払出装置１５２を駆動し、所定の個数（例えば、１０個）の球を賞球として上皿１２６に排出する。上皿１２６に排出した球は遊技者が自由に取り出すことが可能であり、これらの構成により、入賞に基づいて賞球を遊技者に払い出すようにしている。なお、一般入賞口２２６に入球した球は、パチンコ機１００の裏側に誘導した後、遊技島側に排出する。本実施例では、入賞の対価として遊技者に払い出す球を「賞球」、遊技者に貸し出す球を「貸球」と区別して呼ぶ場合があり、「賞球」と「貸球」を総称して「球（遊技球）」と呼ぶ。
【００２８】
普図始動口２２８は、ゲートやスルーチャッカーと呼ばれる、遊技領域１２４の所定の領域を球が通過したか否かを判定するための装置で構成しており、本実施例では遊技盤２００の左側に１つ配設している。普図始動口２２８を通過した球は一般入賞口２２６に入球した球と違って、遊技島側に排出することはない。球が普図始動口２２８を通過したことを所定の球検出センサが検出した場合、パチンコ機１００は、普図表示装置２１０による普図変動遊技を開始する。
【００２９】
第１特図始動口２３０は、本実施例では遊技盤２００の中央に１つだけ配設している。この第１特図始動口２３０への入球を所定の球検出センサが検出した場合、後述する払出装置１５２を駆動し、所定の個数（例えば、３個）の球を賞球として上皿１２６に排出するとともに、第１特図表示装置２１２による特図変動遊技を開始する。なお、第１特図始動口２３０に入球した球は、パチンコ機１００の裏側に誘導した後、遊技島側に排出する。
【００３０】
第２特図始動口２３２は、電動チューリップ（電チュー）と呼ばれ、本実施例では第１特図始動口２３０の真下に１つだけ配設している。この第２特図始動口２３２は、左右に開閉自在な羽根部材２３２ａを備え、羽根部材２３２ａの閉鎖中は球の入球が不可能であり、普図変動遊技に当選し、普図表示装置２１０が当たり図柄を停止表示した場合に羽根部材２３２ａが所定の時間間隔、所定の回数で開閉する。第２特図始動口２３２への入球を所定の球検出センサが検出した場合、払出装置１５２を駆動し、所定の個数（例えば、４個）の球を賞球として上皿１２６に排出するとともに、第２特図表示装置２１４による特図変動遊技を開始する。なお、第２特図始動口２３２に入球した球は、パチンコ機１００の裏側に誘導した後、遊技島側に排出する。
【００３１】
可変入賞口２３４は、大入賞口またはアタッカーと呼ばれ、本実施例では遊技盤２００の中央部下方に１つだけ配設している。この可変入賞口２３４は、開閉自在な扉部材２３４ａを備え、扉部材２３４ａの閉鎖中は球の入球が不可能であり、特図変動遊技に当選して特図表示装置が大当たり図柄を停止表示した場合に扉部材２３４ａが所定の時間間隔（例えば、開放時間２９秒、閉鎖時間１．５秒）、所定の回数（例えば１５回）で開閉する。可変入賞口２３４への入球を所定の球検出センサが検出した場合、払出装置１５２を駆動し、所定の個数（例えば、１５個）の球を賞球として上皿１２６に排出する。なお、可変入賞口２３４に入球した球は、パチンコ機１００の裏側に誘導した後、遊技島側に排出する。
【００３２】
さらに、これらの入賞口や始動口の近傍には、風車と呼ばれる円盤状の打球方向変換部材２３６や、遊技釘２３８を複数個、配設していると共に、内レール２０４の最下部には、いずれの入賞口や始動口にも入賞しなかった球をパチンコ機１００の裏側に誘導した後、遊技島側に排出するためのアウト口を設けている。
【００３３】
このパチンコ機１００は、遊技者が上皿１２６に貯留している球を発射レールの発射位置に供給し、遊技者の操作ハンドルの操作量に応じた強度で発射モータを駆動し、発射杆１４６および発射槌１４８によって外レール２０２、内レール２０４を通過させて遊技領域１２４に打ち出す。そして、遊技領域１２４の上部に到達した球は、打球方向変換部材２３６や遊技釘２３８等によって進行方向を変えながら下方に落下し、入賞口（一般入賞口２２６、可変入賞口２３４）や始動口（第１特図始動口２３０、第２特図始動口２３２）に入賞するか、いずれの入賞口や始動口にも入賞することなく、または普図始動口２２８を通過するのみでアウト口２４０に到達する。
【００３４】
＜演出装置２０６＞
次に、パチンコ機１００の演出装置２０６について説明する。
【００３５】
この演出装置２０６の前面側には、遊技球の転動可能な領域にワープ装置２４２およびステージ２４４を配設し、遊技球の転動不可能な領域に演出可動体２２４を配設している。また、演出装置２０６の背面側には、装飾図柄表示装置２０８および遮蔽装置２４６（以下、扉と称する場合がある）を配設している。すなわち、演出装置２０６において、装飾図柄表示装置２０８および遮蔽手段は、ワープ装置２４２、ステージ２４４、および演出可動体２２４の後方に位置することとなる。
【００３６】
ワープ装置２４２は、演出装置２０６の左上方に設けたワープ入口２４２ａに入った遊技球を演出装置２０６の前面下方のステージ２４４にワープ出口２４２ｂから排出する。
ステージ２４４は、ワープ出口２４２ｂから排出された球や遊技盤２００の釘などによって乗り上げた球などが転動可能であり、ステージ２４４の中央部には、通過した球が第１特図始動口２３０へ入球し易くなるスペシャルルート２４４ａを設けている。
【００３７】
演出可動体２２４は、本実施形態では人間の右腕の上腕と前腕を模した上腕部２２４ａと前腕部２２４ｂとからなり、肩の位置に上腕部２２４ａを回動させる不図示の上腕モータと肘の位置に前腕部２２４ｂを回動させる不図示の前腕モータを備える。演出可動体２２４は、上腕モータと前腕モータによって装飾図柄表示装置２０８の前方を移動する。
【００３８】
遮蔽装置２４６は、格子状の左扉２４６ａおよび右扉２４６ｂからなり、装飾図柄表示装置２０８および前面ステージ２４４の間に配設する。左扉２４６ａおよび右扉２４６ｂの上部には、不図示の２つのプーリに巻き回したベルトをそれぞれ固定している。すなわち、左扉２４６ａおよび右扉２４６ｂは、モータによりプーリを介して駆動するベルトの動作に伴って左右にそれぞれ移動する。遮蔽手段は、左扉２４６ａおよび右扉２４６ｂを閉じた状態ではそれぞれの内側端部が重なり、遊技者が装飾図柄表示装置２０８を視認し難いように遮蔽する。左扉２４６ａおよび右扉２４６ｂを開いた状態ではそれぞれの内側端部が装飾図柄表示装置２０８の表示画面の外側端部と若干重なるが、遊技者は装飾図柄表示装置２０８の表示の全てを視認可能である。また、左扉２４６ａおよび右扉２４６ｂは、それぞれ任意の位置で停止可能であり、例えば、表示した装飾図柄がどの装飾図柄であるかを遊技者が識別可能な程度に、装飾図柄の一部だけを遮蔽するようなことができる。なお、左扉２４６ａおよび右扉２４６ｂは、格子の孔から後方の装飾図柄表示装置２０８の一部を視認可能にしてもよいし、格子の孔の障子部分を半透明のレンズ体で塞ぎ、後方の装飾図柄表示装置２０８による表示を漠然と遊技者に視認させるようにしてもよいし、格子の孔の障子部分を完全に塞ぎ（遮蔽し）、後方の装飾図柄表示装置２０８を全く視認不可にしてもよい。
【００３９】
＜制御部＞
次に、図４を用いて、このパチンコ機１００の制御部の回路構成について詳細に説明する。なお、同図は制御部の回路ブロック図を示したものである。
【００４０】
パチンコ機１００の制御部は、大別すると、主に遊技の進行（例えば、遊技者による操作の検出、遊技状態の遷移、遊技媒体の払出制御、当否判定など）を制御する主制御部３００と、主制御部３００が送信するコマンド信号（以下、単に「コマンド」と呼ぶ）に応じて主に演出の制御を行う第１副制御部４００と、第１副制御部４００より送信されたコマンドに基づいて各種機器を制御する第２副制御部５００と、主制御部３００が送信するコマンドに応じて主に遊技球の払い出しに関する制御を行う払出制御部６００と、遊技球の発射制御を行う発射制御部６３０と、パチンコ機１００に供給される電源を制御する電源制御部６６０と、によって構成している。
【００４１】
＜主制御部＞
まず、パチンコ機１００の主制御部３００について説明する。
【００４２】
主制御部３００は、主制御部３００の全体を制御する基本回路３０２を備えており、この基本回路３０２には、ＣＰＵ３０４と、制御プログラムや各種データを記憶するためのＲＯＭ３０６と、一時的にデータを記憶するためのＲＡＭ３０８と、各種デバイスの入出力を制御するためのＩ／Ｏ３１０と、時間や回数等を計測するためのカウンタタイマ３１２と、プログラム処理の異常を監視するＷＤＴ３１４を搭載している。なお、ＲＯＭ３０６やＲＡＭ３０８については他の記憶装置を用いてもよく、この点は後述する第１副制御部４００についても同様である。この基本回路３０２のＣＰＵ３０４は、水晶発振器３１６ｂが出力する所定周期のクロック信号をシステムクロックとして入力して動作する。
【００４３】
また、基本回路３０２には、水晶発振器３１６ａが出力するクロック信号を受信する度に０〜６５５３５の範囲で数値を変動させるハードウェア乱数カウンタとして使用しているカウンタ回路３１８（この回路には２つのカウンタを内蔵しているものとする）と、所定の球検出センサ、例えば各始動口、入賞口、可変入賞口を通過する遊技球を検出するセンサや、前面枠扉開放センサや内枠開放センサや下皿満タンセンサを含む各種センサ３２０が出力する信号を受信し、増幅結果や基準電圧との比較結果をカウンタ回路３１８および基本回路３０２に出力するためのセンサ回路３２２と、所定の図柄表示装置、例えば第１特図表示装置２１２や第２特図表示装置２１４の表示制御を行うための駆動回路３２４と、所定の図柄表示装置、例えば普図表示装置２１０の表示制御を行うための駆動回路３２６と、各種状態表示部３２８（例えば、普図保留ランプ２１６、第１特図保留ランプ２１８、第２特図保留ランプ２２０、高確中ランプ２２２等）の表示制御を行うための駆動回路３３０と、所定の可動部材、例えば第２特図始動口２３２の羽根部材２３２ａや可変入賞口２３４の扉部材２３４ａ等を開閉駆動する各種ソレノイド３３２を制御するための駆動回路３３４を接続している。
【００４４】
なお、第１特図始動口２３０に球が入賞したことを球検出センサ３２０が検出した場合には、センサ回路３２２は球を検出したことを示す信号をカウンタ回路３１８に出力する。この信号を受信したカウンタ回路３１８は、第１特図始動口２３０に対応するカウンタのそのタイミングにおける値をラッチし、ラッチした値を、第１特図始動口２３０に対応する内蔵のカウンタ値記憶用レジスタに記憶する。また、カウンタ回路３１８は、第２特図始動口２３２に球が入賞したことを示す信号を受信した場合も同様に、第２特図始動口２３２に対応するカウンタのそのタイミングにおける値をラッチし、ラッチした値を、第２特図始動口２３２に対応する内蔵のカウンタ値記憶用レジスタに記憶する。
【００４５】
さらに、基本回路３０２には、情報出力回路３３６を接続しており、主制御部３００は、この情報出力回路３３６を介して、外部のホールコンピュータ（図示省略）等が備える情報入力回路３５０にパチンコ機１００の遊技情報（例えば、遊技状態）を出力する。
【００４６】
また、主制御部３００には、電源制御部６６０から主制御部３００に供給している電源の電圧値を監視する電圧監視回路３３８を設けており、この電圧監視回路３３８は、電源の電圧値が所定の値（本実施例では９ｖ）未満である場合に電圧が低下したことを示す低電圧信号を基本回路３０２に出力する。
【００４７】
また、主制御部３００には、電源が投入されると起動信号（リセット信号）を出力する起動信号出力回路（リセット信号出力回路）３４０を設けており、ＣＰＵ３０４は、この起動信号出力回路３４０から起動信号を入力した場合に、遊技制御を開始する（詳細は後述する）。
【００４８】
また、主制御部３００は、第１副制御部４００にコマンドを送信するための出力インタフェースと、払出制御部６００にコマンドを送信するための出力インタフェースをそれぞれ備えており、この構成により、第１副制御部４００および払出制御部６００との通信を可能としている。なお、主制御部３００と第１副制御部４００および払出制御部６００との情報通信は一方向の通信であり、主制御部３００は第１副制御部４００および払出制御部６００にコマンド等の信号を送信できるように構成しているが、第１副制御部４００および払出制御部６００からは主制御部３００にコマンド等の信号を送信できないように構成している。
【００４９】
＜副制御部＞
次に、パチンコ機１００の第１副制御部４００について説明する。第１副制御部４００は、主に主制御部３００が送信したコマンド等に基づいて第１副制御部４００の全体を制御する基本回路４０２を備えており、この基本回路４０２には、ＣＰＵ４０４と、制御プログラムや各種演出データを記憶するためのＲＯＭ４０６と、一時的にデータを記憶するためのＲＡＭ４０８と、各種デバイスの入出力を制御するためのＩ／Ｏ４１０と、時間や回数等を計測するためのカウンタタイマ４１２を搭載している。この基本回路４０２のＣＰＵ４０４は、水晶発信器４１４が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。なお、ＲＯＭ４０６は、制御プログラムと各種演出データとを別々のＲＯＭに記憶させてもよい。
【００５０】
また、基本回路４０２には、スピーカ１２０（およびアンプ）の制御を行うための音源ＩＣ４１６と、各種ランプ４１８（例えば、チャンスボタンランプ１３８）の制御を行うための駆動回路４２０と、遮蔽装置２４６の駆動制御を行うための駆動回路４３２と、遮蔽装置２４６の現在位置を検出する遮蔽装置センサ４３０と、チャンスボタン１３６の押下を検出するチャンスボタン検出センサ４２６と、遮蔽装置センサ４３０やチャンスボタン検出センサ４２６からの検出信号を基本回路４０２に出力するセンサ回路４２８と、ＣＰＵ４０４からの信号に基づいてＲＯＭ４０６に記憶された画像データ等を読み出してＶＲＡＭ４３６のワークエリアを使用して表示画像を生成して装飾図柄表示装置２０８に画像を表示するＶＤＰ４３４（ビデオ・ディスプレイ・プロセッサー）と、を接続している。
【００５１】
次に、パチンコ機１００の第２副制御部５００について説明する。第２副制御部５００は、第１副制御部４００が送信した制御コマンドを入力インタフェースを介して受信し、この制御コマンドに基づいて第２副制御部５００の全体を制御する基本回路５０２を備えており、この基本回路５０２は、ＣＰＵ５０４と、一時的にデータを記憶するためのＲＡＭ５０８と、各種デバイスの入出力を制御するためのＩ／Ｏ５１０と、時間や回数等を計測するためのカウンタタイマ５１２を搭載している。基本回路５０２のＣＰＵ５０４は、水晶発振器５１４が出力する所定周期のクロック信号をシステムクロックとして入力して動作し、第２副制御部５００の全体を制御するための制御プログラム及びデータ、画像表示用のデータ等が記憶されたＲＯＭ５０６が設けられている。
【００５２】
また、基本回路５０２には、演出可動体２２４の駆動制御を行うための駆動回路５１６と、演出可動体２２４の現在位置を検出する演出可動体センサ４２４と、演出可動体センサ４２４からの検出信号を基本回路５０２に出力するセンサ回路５１８と、遊技盤用ランプ５３２の制御を行うための遊技盤用ランプ駆動回路５３０と、遊技台枠用ランプ５４２の制御を行うための遊技台枠用ランプ駆動回路５４０と、遊技盤用ランプ駆動回路５３０と遊技台枠用ランプ駆動回路５４０との間でシリアル通信による点灯制御を行うシリアル通信制御回路５２０と、を接続している。
【００５３】
＜払出制御部、発射制御部、電源制御部＞
次に、パチンコ機１００の払出制御部６００、発射制御部６３０、電源制御部６６０について説明する。
【００５４】
払出制御部６００は、主に主制御部３００が送信したコマンド等の信号に基づいて払出装置１５２の払出モータ６０２を制御すると共に、払出センサ６０４が出力する制御信号に基づいて賞球または貸球の払い出しが完了したか否かを検出すると共に、インタフェース部６０６を介して、パチンコ機１００とは別体で設けられたカードユニット６０８との通信を行う。
【００５５】
発射制御部６３０は、払出制御部６００が出力する、発射許可または停止を指示する制御信号や、球発射ハンドル１３４内に設けた発射強度出力回路が出力する、遊技者による球発射ハンドル１３４の操作量に応じた発射強度を指示する制御信号に基づいて、発射杆１４６および発射槌１４８を駆動する発射モータ６３２の制御や、上皿１２６から発射装置１１０に球を供給する球送り装置６３４の制御を行う。
【００５６】
電源制御部６６０は、パチンコ機１００に外部から供給される交流電源を直流化し、所定の電圧に変換して主制御部３００、第１副制御部４００等の各制御部や払出装置１５２等の各装置に供給する。さらに、電源制御部６６０は、外部からの電源が断たれた後も所定の部品（例えば主制御部３００のＲＡＭ３０８等）に所定の期間（例えば１０日間）電源を供給するための蓄電回路（例えば、コンデンサ）を備えている。なお、本実施形態では、電源制御部６６０から払出制御部６００と第２副制御部５００に所定電圧を供給し、払出制御部６００から主制御部３００と第２副制御部５００と発射制御部６３０に所定電圧を供給しているが、各制御部や各装置に他の電源経路で所定電圧を供給してもよい。
【００５７】
＜図柄の種類＞
次に、図５（ａ）〜（ｃ）を用いて、パチンコ機１００の第１特別図柄表示装置２１２、第２特別図柄表示装置２１４、装飾図柄表示装置２０８、普通図柄表示装置２１０が停止表示する特図および普図の種類について説明する。  同図（ａ）は特図の停止図柄態様の一例を示したものである。
【００５８】
第１特図始動口２３０に球が入球したことを第１始動口センサが検出したことを条件として特図１変動遊技が開始され、第２特図始動口２３２に球が入球したことを第２始動口センサが検出したことを条件として特図２変動遊技が開始される。特図１変動遊技が開始されると、第１特別図柄表示装置２１２は、７個のセグメントの全点灯と、中央の１個のセグメントの点灯を繰り返す「特図１の変動表示」を行う。また、特図２変動遊技が開始されると、第２特別図柄表示装置２１４は、７個のセグメントの全点灯と、中央の１個のセグメントの点灯を繰り返す「特図２の変動表示」を行う。これらの「特図１の変動表示」および「特図２の変動表示」が本発明にいう図柄の変動表示の一例に相当する。そして、特図１の変動開始前に決定した変動時間（本発明にいう変動時間が相当）が経過すると、第１特別図柄表示装置２１２は特図１の停止図柄態様を停止表示し、特図２の変動開始前に決定した変動時間（これも本発明にいう変動時間が相当）が経過すると、第２特別図柄表示装置２１４は特図２の停止図柄態様を停止表示する。したがって、「特図１の変動表示」を開始してから特図１の停止図柄態様を停止表示するまで、あるいは「特図２の変動表示」を開始してから特図２の停止図柄態様を停止表示するまでが本発明にいう図柄変動停止表示の一例に相当し、以下、この「特図１又は２の変動表示」を開始してから特図１又は２の停止図柄態様を停止表示するまでの一連の表示を図柄変動停止表示と称する。後述するように、図柄変動停止表示は複数回、連続して行われることがある。同図（ａ）には、図柄変動停止表示における停止図柄態様として「特図Ａ」から「特図Ｊ」までの１０種類の特図が示されており、図中の白抜きの部分が消灯するセグメントの場所を示し、黒塗りの部分が点灯するセグメントの場所を示している。
【００５９】
「特図Ａ」は１５ラウンド（１５Ｒ）特別大当たり図柄であり、「特図Ｂ」は１５Ｒ大当たり図柄である。本実施形態のパチンコ機１００では、後述するように、特図変動遊技における大当りか否かの決定はハードウェア乱数の抽選によって行い、特別大当りか否かの決定はソフトウェア乱数の抽選によって行う。大当りと特別大当りの違いは、次回の特図変動遊技で、大当りに当選する確率が高い（特別大当り）か低い（大当り）かの違いである。以下、この大当りに当選する確率が高い状態のことを特図高確率状態と称し、その確率が低い状態のことを特図低確率状態と称する。また、１５Ｒ特別大当たり遊技終了後および１５Ｒ大当たり遊技終了後はいずれも時短状態に移行する。時短については詳しくは後述するが、時短状態に移行する状態のことを普図高確率状態と称し、時短状態に移行しない状態のことを普図低確率状態と称する。１５Ｒ特別大当たり図柄である「特図Ａ」は、特図高確率普図高確率状態であり、１５Ｒ大当たり図柄である「特図Ｂ」は、特図低確率普図高確率状態である。これらの「特図Ａ」および「特図Ｂ」は、遊技者に付与する利益量が相対的に大きな利益量になる図柄である。
【００６０】
「特図Ｃ」は突然確変と称される２Ｒ大当たり図柄であり、特図高確率普図高確率状態である。すなわち、１５Ｒである「特図Ａ」と比べて、「特図Ｃ」は２Ｒである点が異なる。「特図Ｄ」は突然時短と称される２Ｒ大当たり図柄であり、特図低確率普図高確率状態である。すなわち、１５Ｒである「特図Ｂ」と比べて、「特図Ｄ」は２Ｒである点が異なる。
【００６１】
「特図Ｅ」は隠れ確変と称される２Ｒ大当たり図柄であり、特図高確率普図低確率状態である。「特図Ｆ」は突然通常と称される２Ｒ大当たり図柄であり、特図低確率普図低確率状態である。これら「特図Ｅ」および「特図Ｆ」はいずれも、２Ｒであるとともに、時短状態に移行しない状態である。
【００６２】
「特図Ｇ」は第１小当たり図柄であり、「特図Ｈ」は第２小当たり図柄であり、何れも特図低確率普図低確率状態である。ここにいう小当たりは、２Ｒ時短無し大当たりと同じものに相当する。すなわち、この「特図Ｇ」、「特図Ｈ」は「特図Ｆ」と同じ状態であるが、両者では装飾図柄表示装置２０８に表示される演出が異なり、あえて、同じ状態でも「特図Ｇ」、「特図Ｈ」と「特図Ｆ」を設けておくことで、遊技の興趣を高めている。
【００６３】
また、「特図Ｉ」は第１はずれ図柄であり、「特図Ｊ」は第２はずれ図柄であり、遊技者に付与する利益量が相対的に小さな利益量になる図柄である。
【００６４】
なお、本実施形態のパチンコ機１００には、１５Ｒ特別大当たり図柄として「特図Ａ」以外の図柄も用意されており、１５Ｒ大当たり図柄等の他の図柄についても同様である。
【００６５】
図５（ｂ）は装飾図柄の一例を示したものである。本実施形態の装飾図柄には、「装飾１」〜「装飾１０」の１０種類がある。第１特図始動口２３０または第２特図始動口２３２に球が入賞したこと、すなわち、第１特図始動口２３０に球が入球したことを第１始動口センサが検出したこと、あるいは第２特図始動口２３２に球が入球したことを第２始動口センサが検出したことを条件にして、装飾図柄表示装置２０８の左図柄表示領域２０８ａ、中図柄表示領域２０８ｂ、右図柄表示領域２０８ｃの各図柄表示領域に、「装飾１」→「装飾２」→「装飾３」→・・・・「装飾９」→「装飾１０」→「装飾１」→・・・の順番で表示を切り替える「装飾図柄の変動表示」を行う。そして、「特図Ｂ」の１５Ｒ大当たりを報知する場合には、図柄表示領域２０８ａ〜２０８ｃに１５Ｒ大当たりに対応する、同じ装飾図柄が３つ並んだ図柄組合せ（例えば「装飾１−装飾１−装飾１」や「装飾２−装飾２−装飾２」等）を停止表示する。「特図Ａ」の１５Ｒ特別大当たりを報知する場合には、同じ奇数の装飾図柄が３つ並んだ図柄組合せ（例えば「装飾３−装飾３−装飾３」や「装飾７−装飾７−装飾７」等）を停止表示する。
【００６６】
また、「特図Ｅ」の隠れ確変と称される２Ｒ大当たり、「特図Ｆ」の突然通常と称される２Ｒ大当たり、あるいは「特図Ｇ」の第１小当たり、「特図Ｈ」の第２小当たりを報知する場合には、「装飾１−装飾２−装飾３」を停止表示する。さらに、「特図Ｃ」の突然確変と称される２Ｒ大当たり、あるいは「特図Ｄ」の突然時短と称される２Ｒ大当たりを報知する場合には、「装飾１−装飾３−装飾５」を停止表示する。一方、「特図Ｉ」の第１はずれ、「特図Ｊ」の第２はずれを報知する場合には、図柄表示領域２０８ａ〜２０８ｃに同図（ｂ）に示す図柄組合せ以外の図柄組合せを停止表示する。
【００６７】
図５（ｃ）は普図の停止表示図柄の一例を示したものである。本実施形態の普図の停止表示態様には、当たり図柄である「普図Ａ」と、外れ図柄である「普図Ｂ」の２種類がある。普図始動口２２８を球が通過したことを上述のゲートセンサが検出したことに基づいて、普通図柄表示装置２１０は、７個のセグメントの全点灯と、中央の１個のセグメントの点灯を繰り返す「普図の変動表示」を行う。そして、普図変動遊技の当選を報知する場合には「普図Ａ」を停止表示し、普図変動遊技の外れを報知する場合には「普図Ｂ」を停止表示する。この同図（ｃ）においても、図中の白抜きの部分が消灯するセグメントの場所を示し、黒塗りの部分が点灯するセグメントの場所を示している。
【００６８】
＜主制御部の基本回路＞
次に、上述の主制御部３００の基本回路３０２について詳細に説明する。図６は、主制御部３００から基本回路３０２の主要部のみを抜き出して示した図である。
【００６９】
主制御部３００の基本回路３０２は、主制御部３００全体の制御を行うＣＰＵ３０４と、ＣＰＵ３０４が実行する制御プログラムやＣＰＵ３０４が参照する各種データを記憶するためのＲＯＭ３０６と、ＣＰＵ３０４が一時的にデータを記憶するためのＲＡＭ３０８と、を有している。
【００７０】
＜主制御部のＣＰＵの内蔵レジスタ＞
ＣＰＵ３０４は、カウンタ回路、タイマ回路、シリアル通信回路、乱数回路、演算回路、リセット／割込みコントローラ等を制御するための制御レジスタのほか、ＣＰＵ３０４が制御プログラムを実行する際に使用するレジスタなどの内蔵レジスタを備える。内蔵レジスタには、本発明の特徴点の一つであるＴレジスタ（特殊レジスタ）と、汎用レジスタと、プログラムカウンタ（ＰＣ）、命令レジスタ等が含まれる。汎用レジスタの種類は特に限定されないが、本実施形態では、Ｉレジスタ、Ａレジスタ、Ｆレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタ、Ｈレジスタ、Ｌレジスタの８ビットレジスタを備えており、ＢレジスタとＣレジスタ、ＤレジスタとＥレジスタ、ＨレジスタとＬレジスタは、それぞれ、１６ビット長の演算が可能なＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタの１６ビットレジスタ（ペアレジスタ）としても機能するように構成されている。
【００７１】
また、本実施形態では、内蔵デバイスが出力する割込みベクタ（所定のデバイスから読み込んだ割込みベクタ）の値を下位８ビット、Ｉレジスタ（割込みベクタレジスタ、インタラプトレジスタ）の内容を上位８ビットとした合計１６ビットのアドレスを、割込処理のアドレスとして読み込んで、後述する割込処理に分岐（ジャンプ）するように構成している。例えば、Ｉレジスタの値が００Ｈ、割込みベクタの値が６０Ｈのときに割込処理の要求が発生した場合には、００６０Ｈ（上位バイトがＩレジスタの００Ｈ、下位バイトが割込みベクタの６０Ｈ）で示されるアドレスに記憶された値（例えば、１２Ｈ）を下位バイト、続く００６１Ｈで示されるアドレスに記憶された値（例えば、０４Ｈ)を上位バイトとする２バイトのアドレス（例えば、０４１２Ｈ）がＰＣにロードされ、このアドレスを先頭アドレスとする割込処理に分岐（ジャンプ）するように構成している。
【００７２】
Ｆレジスタは、命令が実行されると、その実行結果に従ってＦレジスタ内のビット７から順にＳフラグ（サインフラグ）、Ｚフラグ（ゼロフラグ）、ＳＺフラグ（セカンドゼロフラグ）、Ｈフラグ（ハーフキャリフラグ）、ビット３（空きビット）、Ｐ／Ｖフラグ（パリティ／オーバーフローフラグ）、Ｎフラグ（サブトラクトフラグ）、Ｃフラグ（キャリーフラグ）の各フラグが、１または０に変化したり、あるいは変化しなかったりする。ＳＺフラグは、Ｚフラグが変化する命令ではＺフラグ同様に変化するとともに、Ｚ８０互換命令の全てのＬＤ命令、全ての１６ビット算術演算命令（ＩＮＣ命令、ＤＥＣ命令も含む）、ローテートシフト命令のＲＬＣＡ命令、ＲＬＡ命令、ＲＲＣＡ命令、ＲＲＡ命令、「ＩＮ  Ａ，（ｎ）」命令で変化する。
【００７３】
なお、１６ビット演算命令のＡＤＣ命令、ＳＢＣ命令は、Ｚフラグが変化し、他の命令ではＺフラグは変化せず、１６ビット演算命令の全てでＳＺフラグは変化する。また、「ＩＮ  Ａ，（ｎ）」命令は、ＳＺフラグが変化し、Ｚフラグが変化しない。Ｆレジスタ内のＳＺフラグや空きビットの位置は上記したビット以外のビットであってもよい。なお、後述する特殊命令の場合にＳＺフラグが変化しないようにしてもよい。
【００７４】
また、本実施形態では、Ａ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌの各汎用レジスタ（主レジスタ）に対応する補助レジスタ（裏レジスタ）として、Ａ´、Ｆ´、Ｂ´、Ｃ´、Ｄ´、Ｅ´、Ｈ´、Ｌ´の各汎用レジスタを備えているが、特殊レジスタであるＴレジスタのみ補助レジスタを備えていない。よって、Ｔレジスタの使用用途は限定され、Ｔレジスタの使用頻度は汎用レジスタに比べて低くなるため、不用意にＴレジスタの値が書き換えられてしまうような事態（Ｔレジスタの内容が破壊されてしまうような事態）を未然に防止できる場合がある。なお、補助レジスタの値は各種命令によって直接読み書きすることができず、特殊な交換命令（ＥＸ命令、ＥＸＸ命令）によって主レジスタの値と補助レジスタの値を交換することのみが許されている。ここでは、説明の便宜上、レジスタの値をＰＵＳＨ命令・ＰＯＰ命令等の命令で変更し易いレジスタを汎用レジスタとしたが、これに限らず、Ａレジスタ（アキュムレータ）とＦレジスタ（フラグレジスタ）など特別な役割を持つレジスタを汎用レジスタに含めなくてもよい。
【００７５】
また、ここでは、ＴレジスタをＣＰＵ３０４に内蔵する例を示したが、例えば、ＣＰＵ３０４の外部に設けてもよいし、ＣＰＵ３０４とは別体のＲＡＭ３０８の一部に設けてもよい。すなわち、Ｔレジスタは、制御プログラムを記憶するための記憶手段（本実施形態ではＲＯＭ３０６）と物理的に異なる場所に設けられていることが好ましい。さらには、Ｔレジスタに（後述する）特定の値を書き込む処理を行う制御部と、ＲＯＭ３０６から制御プログラムを読み出して遊技制御を行う制御部と、が異なることが好ましい。制御部を異ならせることで、制御プログラムの改造と特定の値の不正取得の両方を行うことを困難にすることができるためである。
【００７６】
＜主制御部のＣＰＵのメモリ空間とＩ／Ｏ空間＞
次に、図７を用いて、主制御部３００のＣＰＵ３０４のメモリ空間とＩ／Ｏ空間について説明する。なお、同図（ａ）はＣＰＵ３０４のメモリマップを示した図であり、同図（ｂ）は（ａ）に示すメモリマップのうちのＲＷＭ領域の詳細を示した図であり、同図（ｃ）はＣＰＵ３０４のＩ／Ｏマップを示した図である。
【００７７】
主制御部３００のＣＰＵ３０４は、上述の内蔵レジスタ、ＲＯＭ３０６、ＲＡＭ３０８などにアクセスするためのメモリ空間と、上述のＩ／Ｏ３１０との間で制御信号の入出力を行うためのＩ／Ｏ空間を有している。具体的には、同図（ａ）のメモリマップに示すように、主制御部３００のＲＯＭ３０６のアドレス／データ信号線は、メモリ空間のＲＯＭ領域（本実施形態では、００００Ｈ〜１ＦＦＦＨ（Ｈは１６進数を示す。以下、同じ））に割り当てられ、ＣＰＵ３０４は、このＲＯＭ領域を指定してＲＯＭ３０６からのデータの読み出しを行う。
【００７８】
また、内蔵レジスタのアドレス／データ信号線は、メモリ空間のレジスタエリア（本実施形態では、２０００Ｈ〜２０ＦＦＨ）に割り当てられ、ＣＰＵ３０４は、このレジスタエリアを介して内蔵レジスタからのデータの読み出しやレジスタへのデータの書き込みを行う。
【００７９】
また、ＲＡＭ３０８のアドレス／データ信号線は、メモリ空間のＲＷＭ領域（本実施形態では、７Ｅ００Ｈ〜７ＦＦＦＨ）に割り当てられ、ＣＰＵ３０４は、このＲＷＭ領域を指定してＲＡＭ３０８からのデータの読み出しやＲＡＭ３０８へのデータの書き込みを行う。なお、メモリ空間の他の領域（本実施形態では、２１００Ｈ〜７ＤＦＦＨ、８０００Ｈ〜ＦＦＦＦＨ）は非使用領域とされている。
【００８０】
また、同図（ｂ）のメモリマップに示すように、ＲＷＭ領域の一部は、さらに、ワークエリア（本実施形態では、７Ｅ００Ｈ〜７Ｆ３ＣＨ）と、仮スタックエリア（本実施形態では、７ＦＣ４Ｈ〜７ＦＤＦＨ）と、スタックエリア（本実施形態では、７ＦＥ０Ｈ〜７ＦＦＦＨ）に割り当てられている。なお、ＲＷＭ領域の他の領域（本実施形態では、７Ｆ３ＤＨ〜７ＦＣ３Ｈ）は非使用領域とされている。
【００８１】
また、同図（ｃ）のＩ／Ｏマップに示すように、主制御部３００のＩ／Ｏ３１０は、Ｉ／Ｏ空間のワークエリア（本実施形態では、００Ｈ〜０ＡＨ）に割り当てられ、ＣＰＵ３０４は、このＩ／Ｏ空間を介して、Ｉ／Ｏ３１０との間で制御信号の入出力を行う。なお、Ｉ／Ｏ空間の他の領域（本実施形態では、０ＢＨ〜ＦＦＨ）は非使用領域とされている。
【００８２】
なお、この例では、Ｉ／ＯマップドＩ／Ｏ方式（Ｉ／Ｏ空間にＩ／Ｏデバイスを割り当てる方式）によってＩ／Ｏデバイスからのデータの読み出しやＩ／Ｏデバイスへのデータの書き込みを行う例を示したが、このＩ／ＯマップドＩ／Ｏ方式に替えて（または加えて）、メモリマップドＩ／Ｏ方式（メモリ空間にＩ／Ｏデバイスを割り当てる方式）を採用してもよい。
【００８３】
例えば、図８は、ＲＷＭ領域の一部にＩ／Ｏ空間を割り当てた例を示した図である。同図（ａ）では、７Ｅ００Ｈ〜７ＦＦＦＨの５１２バイトの領域全てをＲＡＭ３０８にアクセスするためのメモリ空間として割り当て、同図（ｂ）では、７Ｅ００Ｈ〜７Ｅ３ＦＨの６４バイトの領域をＩ／ＯデバイスにアクセスするためのＩ／Ｏ空間として割り当てるとともに、残りの７Ｅ４０Ｈ〜７ＦＦＦＨの４４８バイトの領域をＲＡＭ３０８にアクセスするためのメモリ空間として割り当てている。また、同図（ｃ）では、７Ｅ００Ｈ〜７Ｅ７ＦＨの１２８バイトの領域をＩ／ＯデバイスにアクセスするためのＩ／Ｏ空間として割り当てるとともに、残りの７Ｅ８０Ｈ〜７ＦＦＦＨの３８４バイトの領域をＲＡＭ３０８にアクセスするためのメモリ空間として割り当てている。また、同図（ｄ）では、７Ｅ００Ｈ〜７ＥＢＦＨの１９２バイトの領域をＩ／ＯデバイスにアクセスするためのＩ／Ｏ空間として割り当てるとともに、残りの７ＥＣ０Ｈ〜７ＦＦＦＨの３２０バイトの領域をＲＡＭ３０８にアクセスするためのメモリ空間として割り当てている。このように、メモリマップドＩ／Ｏ方式を採用した場合でも、ＲＷＭ領域の先頭アドレスに変化はなく、本実施形態では７Ｅ００Ｈであり、その上位バイトは７ＥＨである。
【００８４】
＜初期化処理＞
次に、図９を用いて、主制御部３００の初期化処理について説明する。なお、同図は初期化処理の流れを示すフローチャートである。
【００８５】
上述したように、主制御部３００には、電源が投入されると起動信号（システムリセット信号）を出力する起動信号出力回路（リセット信号出力回路）３４０を設けている。この起動信号を入力した基本回路３０２のＣＰＵ３０４は、後述するセキュリティモードまたはユーザモードに移行する前に、この初期化処理を実行する。
【００８６】
具体的には、ステップＳ５１では、ＣＰＵ３０４に内蔵されたＴレジスタに、特定の値（本実施形態では、上述のＲＷＭ領域の先頭アドレス７Ｅ００Ｈの上位バイトである７ＥＨ）を記憶する。ステップＳ５２では、Ｔレジスタ以外の他のレジスタに初期値をセットした後にステップＳ５３に進み、後述する主制御部メイン処理を実行する。
【００８７】
なお、Ｔレジスタに記憶する特定の値は７ＥＨに限定されないことは言うまでもなく、例えば、上述のレジスタエリアの先頭アドレス（本実施形態では２０００Ｈ）の上位バイトである２０ＨをＴレジスタに記憶するように構成すれば、後述するＲＡＭ３０８へのアクセスと同様の原理で、内蔵レジスタへのアクセス効率を高めることができる場合がある。また、第一のタイミングではＴレジスタにＲＷＭ領域の先頭アドレスの上位バイトを設定し、その後（または、その前）の第二のタイミングでＴレジスタにレジスタエリアの先頭アドレスの上位バイトを設定するように構成してもよい。また、所定条件が成立している場合（例えば、所定の端子にＬレベルの信号が入力されている場合）にはＴレジスタにＲＷＭ領域の先頭アドレスの上位バイトを設定し、所定条件が成立していない場合には、Ｔレジスタにレジスタエリアの先頭アドレスの上位バイトを設定するように構成してもよい。
【００８８】
また、この初期化処理において制御プログラムによらずに（自動的に）ＴレジスタにＲＷＭ領域の先頭アドレスの上位バイトを設定（または／およびＴレジスタにレジスタエリアの先頭アドレスの上位バイトを設定）し、この初期化処理後に制御プログラム（例えば、後述するステップＳ１０１の初期設定１処理、ステップＳ１０７の初期設定２処理、ステップＳ１１３の初期化処理など）によって（手動で）Ｔレジスタにレジスタエリアの先頭アドレスの上位バイトを設定（または／およびＴレジスタにＲＷＭ領域の先頭アドレスの上位バイトを設定）するように構成してもよい。
【００８９】
ここで、上述のリセット割込みには、システムリセット割込み（システムリセット端子に一定期間のリセット信号を入力するなど、外部イベントが要因となって行われるリセット割込み）と、ユーザリセット割込み（ユーザリセット端子に一定期間のリセット信号を入力するなど、外部イベントが要因となって行われるリセット割り込みや、ＷＤＴのタイムアウトや指定エリア外のアクセスなど、内部イベントが要因となって行われるリセット割込み）の２種類の割込みがある。システムリセット割込みによるリセットでは、制御レジスタや汎用レジスタを含む全ての内部回路が初期化され（例えば、レジスタに応じた初期値（例えばＩレジスタに００Ｈがセットされる））、ユーザリセット割込みによるリセットでは、内部回路の一部が初期化される。
【００９０】
なお、システムリセットによる初期化処理を実行した後は、所定条件が成立している場合（例えば、所定の端子にＬレベルの信号が入力されている場合）はセキュリティモードに移行し、所定条件が成立していない場合はユーザモードに移行する。ここで、セキュリティモードは、ユーザプログラムの認証を行うモードである。具体的には、システムリセット入力時にユーザプログラムを基に計算された認証コードが正しいかどうかの再計算を行い、結果（セキュリティチェックの結果）がＯＫ（異常なし）の場合、このモードを終了して自動的にユーザモードに移行し、セキュリティチェックの結果がＮＧ（異常あり）の場合、ＣＰＵ３０４が停止するように構成している。なお、認証コードは、ＲＯＭ書き込み時にユーザプログラム（以下、「制御プログラム」と称する場合がある）とともにＲＯＭ３０６に書き込まれる。
【００９１】
また、ユーザモードは、ＲＯＭのリセットアドレス（上述のＲＯＭ領域の先頭アドレスである００００Ｈ）からユーザプログラムを実行するモードであり、後述する主制御部メイン処理が開始される。なお、本実施形態では、ＣＰＵ３０４がユーザプログラムを実行する際に１回の処理（１ステート）で命令レジスタに読みこむデータのバイト長を１バイト（８ビット）長としているが、１ステート当りのデータ長は特に限定されず、例えば、１６ビット長や３２ビット長でもよい。
【００９２】
また、本実施形態では、上述の初期化処理はセキュリティモードやユーザモードへの移行前に（自動的に（制御プログラムによらずに））実行されるように構成しているが、セキュリティモードやユーザモードへの移行後に実行されるよう構成してもよい。また、リセットの種類（ユーザリセット割込みの場合には割込み要因の種類）によって、初期化処理の実行タイミングが異なるように構成してもよい。
【００９３】
具体的には、直前に発生したリセット要因を管理するためのレジスタ（内蔵レジスタのうちの一つである）を参照して、直前に発生したリセット要因が（１）システムリセットであるか否か、（２）ＷＤＴのタイムアウトによるユーザリセットであるか否か、（３）指定エリア外のアクセスによるユーザリセットであるか否か、を判定し、判定結果に応じて初期化処理の実行タイミングを決定するように構成してもよい。また、初期化処理でセットされる特定の値と初期値は、リセットの種類やレジスタの種類によって異なるように構成してもよい（例えば、汎用レジスタはシステムリセットでもユーザリセットでも初期値として００Ｈがセットされ、Ｔレジスタはシステムリセット時は特定の値として７ＥＨがセットされるがユーザリセット時は初期化されないように構成してもよい）。
【００９４】
また、セキュリティモードの時間は、設定した時間分だけ延長することも、ランダムな時間分だけ延長することも可能である。ランダムな時間分だけ延長することにより、不正行為者はユーザプログラムの開始タイミングが狙いにくくなる場合がある。また、ユーザリセット（例えばＷＤＴのタイムアウトによるリセット）からユーザプログラムの実行開始までの時間をランダムな時間に設定可能な構成としてもよい。このような構成とすれば、ユーザプログラムの開始タイミングを狙った不正行為を未然に防止できる場合がある。
【００９５】
＜主制御部メイン処理＞
次に、図１０を用いて、主制御部３００のＣＰＵ３０４が実行する主制御部メイン処理について説明する。なお、同図は主制御部メイン処理の流れを示すフローチャートである。
【００９６】
ステップＳ１０１では、初期設定１を行う。この初期設定１では、ＣＰＵ３０４のスタックポインタ（ＳＰ）へのスタック初期値の設定（仮設定）、割込マスクの設定、Ｉ／Ｏ３１０の初期設定、ＲＡＭ３０８に記憶する各種変数の初期設定、ＷＤＴ３１４への動作許可及び初期値の設定、Ｔレジチェック処理（詳細は後述）等を行う。なお、本実施形態では、ＷＤＴ３１４に、初期値として３２．８ｍｓに相当する数値を設定する。ステップＳ１０３では、ＷＤＴ３１４のカウンタの値をクリアし、ＷＤＴ３１４による時間計測を再始動する。
【００９７】
ステップＳ１０５では、低電圧信号がオンであるか否か、すなわち、電圧監視回路３３８が、電源制御部６６０から主制御部３００に供給している電源の電圧値が所定の値（本実施形態では９ｖ）未満である場合に電圧が低下したことを示す低電圧信号を出力しているか否かを監視する。そして、低電圧信号がオンの場合（ＣＰＵ３０４が電源の遮断を検知した場合）にはステップＳ１０３に戻り、低電圧信号がオフの場合（ＣＰＵ３０４が電源の遮断を検知していない場合）にはステップＳ１０７に進む。なお、電源が投入された直後で未だ上記所定の値（９Ｖ）に達しない場合にもステップＳ１０３に戻り、供給電圧がその所定の値以上になるまで、ステップＳ１０５は繰り返し実行される。
【００９８】
ステップＳ１０７では、初期設定２を行う。この初期設定２では、後述する主制御部タイマ割込処理を定期毎に実行するための周期を決める数値をカウンタタイマ３１２に設定する処理、Ｉ／Ｏ３１０の所定のポート（例えば試験用出力ポート、第１副制御部４００への出力ポート）からクリア信号を出力する処理、ＲＡＭ３０８への書き込みを許可する設定等を行う。
【００９９】
ステップＳ１０９では、電源の遮断前（電断前）の状態に復帰するか否かの判定を行い、電断前の状態に復帰しない場合（主制御部３００の基本回路３０２を初期状態にする場合）には初期化処理（ステップＳ１１３）に進む。
【０１００】
具体的には、最初に、電源基板に設けたＲＷＭクリアスイッチ１８０を遊技店の店員などが操作した場合に送信されるＲＡＭクリア信号がオン（操作があったことを示す）であるか否か、すなわちＲＡＭクリアが必要であるか否かを判定し、ＲＡＭクリア信号がオンの場合（ＲＡＭクリアが必要な場合）には、基本回路３０２を初期状態にすべくステップＳ１１３に進む。一方、ＲＡＭクリア信号がオフの場合（ＲＡＭクリアが必要でない場合）には、ＲＡＭ３０８に設けた電源ステータス記憶領域に記憶した電源ステータスの情報を読み出し、この電源ステータスの情報がサスペンドを示す情報であるか否かを判定する。そして、電源ステータスの情報がサスペンドを示す情報でない場合には、基本回路３０２を初期状態にすべくステップＳ１１３に進み、電源ステータスの情報がサスペンドを示す情報である場合には、ＲＡＭ３０８の所定の領域（例えば全ての領域）に記憶している１バイトデータを初期値が０である１バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果が特定の値（例えば０）であるか否か（チェックサムの結果が正常であるか否か）を判定する。そして、チェックサムの結果が特定の値（例えば０）の場合（チェックサムの結果が正常である場合）には電断前の状態に復帰すべくステップＳ１１１に進み、チェックサムの結果が特定の値（例えば０）以外である場合（チェックサムの結果が異常である場合）には、パチンコ機１００を初期状態にすべくステップＳ１１３に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップＳ１１３に進む。
【０１０１】
ステップＳ１１１では、復電時処理を行う。この復電時処理では、電断時にＲＡＭ３０８に設けられたスタックエリアに記憶しておいたスタックポインタの値を読み出し、スタックポインタに再設定（本設定）する。また、後述するように、電断時にＲＡＭ３０８に設けられたレジスタ退避領域に記憶しておいた所定のレジスタの値を読み出し、これらのレジスタに再設定した後、割込許可（ＥＩ）の設定を行う。以降、ＣＰＵ３０４が、再設定後のスタックポインタやレジスタに基づいて制御プログラムを実行する結果、パチンコ機１００は電源断時の状態に復帰する。すなわち、電断直前にタイマ割込処理（後述）に分岐する直前に行った（ステップＳ１１５内の所定の）命令の次の命令から処理を再開する。
【０１０２】
本実施形態に係るＣＰＵ３０４は、ＰＵＳＨ命令として、「ＰＵＳＨ  ＴＩ」命令、「ＰＵＳＨ  ＡＬＬ」命令、「ＰＵＳＨ  ＧＲＰ」命令を備えている。「ＰＵＳＨ  ＴＩ」命令は、Ｔ、Ｉレジスタに記憶されている値を上述のスタックエリアに退避させる命令であり、具体的には、ＰＵＳＨ命令実行時のスタックポインタをＳＰとした場合、ＰＵＳＨ命令実行時にＴレジスタに記憶されている値を、（ＳＰ−１）で示されるアドレスに退避させ、ＰＵＳＨ命令実行時にＩレジスタに記憶されている値を、（ＳＰ−２）で示されるアドレスに退避させる。また、「ＰＵＳＨ  ＡＬＬ」命令は、ＰＵＳＨ命令実行時にＴ、Ｉ、Ａ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌ、ＩＸＨ、ＩＸＬ、ＩＹＨ、ＩＹＬレジスタに記憶されている値を、この順番でスタックエリアに退避させる命令である。また、「ＰＵＳＨ  ＧＲＰ」命令は、ＰＵＳＨ命令実行時にＡ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌレジスタに記憶されている値を、この順番でスタックエリアに退避させる命令である。
【０１０３】
また、ＣＰＵ３０４は、ＰＯＰ命令として、「ＰＯＰ  ＴＩ」命令、「ＰＯＰ  ＡＬＬ」命令、「ＰＯＰ  ＧＲＰ」命令を備えている。「ＰＯＰ  ＴＩ」命令は、スタックエリアに記憶されている値をＴ、Ｉレジスタに復帰させる（ＲＡＭ３０８の記憶領域からＴ、Ｉレジスタにデータをロードする）命令であり、具体的には、ＰＯＰ命令実行時のスタックポインタをＳＰとした場合、ＰＯＰ命令実行時に（ＳＰ−１）で示されるアドレスに記憶されている値をＴレジスタに復帰させ、ＰＯＰ命令実行時に（ＳＰ−２）で示されるアドレスに記憶されている値をＩレジスタに復帰させる。また、「ＰＯＰ  ＡＬＬ」命令は、ＰＯＰ命令実行時にスタックエリアに記憶されている値を、Ｔ、Ｉ、Ａ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌ、ＩＸＨ、ＩＸＬ、ＩＹＨ、ＩＹＬレジスタに復帰させる命令である。また、「ＰＵＳＨ  ＧＲＰ」命令は、ＰＯＰ命令実行時にスタックエリアに記憶された値を、Ａ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌレジスタに復帰させる命令である。
【０１０４】
なお、Ｔレジスタをスタックエリアから復帰させるためには、「ＰＯＰ  ＴＩ」命令を使用する必要があるが、Ｉレジスタを使用しない場合でも、Ｉレジスタにもスタックエリアの値が復帰されてしまうことになる。このように、Ｔレジスタをオペランドとする命令の汎用性を無くすことによって（使い難くすることによって）、Ｔレジスタをオペランドとする命令が多用されることを未然に防ぐことができ、Ｔレジスタの値が不用意に書き替ってしまうような事態（Ｔレジスタの内容が破壊されてしまうような事態）を回避できる場合がある。
【０１０５】
また、ＣＰＵ３０４は、割込み要求の受付を許可する命令（ＥＩ命令）と、割込み要求の受付を禁止する命令（ＤＩ命令）を備えており、上述の「ＰＯＰ  ＴＩ」命令は、ＤＩ命令によって割込み要求の受付が禁止されている場合にのみ実行するように構成され、ＥＩ命令によって割込み要求の受付が許可されている場合に実行しないように構成されている。このように、割込み要求の受付が許可されている状態において「ＰＯＰ  ＴＩ」命令の実行しないように構成すれば、「ＰＯＰ  ＴＩ」命令の実行によって、割込みベクタレジスタやインタラプトレジスタとして機能するＩレジスタに、スタックエリアから予期しない値が復帰されてしまうおそれがなく、割込み処理を確実に実行することで信頼性の高い遊技制御を行うことができる場合がある。
【０１０６】
また、ＣＰＵ３０４は、上述の命令の他にも、８ビットロード（転送）命令、１６ビットロード（転送）命令、スタック操作命令、８ビット算術論理演算命令、１６ビット算術論理演算命令、乗算・除算命令、アキュムレータ操作命令、ＭＰＵコントロール命令、交換命令、ブロック転送命令、ブロックサーチ命令、ビット操作命令、ローテート・シフト命令、無条件ジャンプ命令・条件付きジャンプ命令、コール命令・リターン命令、入出力命令、複合命令などを備えている。
【０１０７】
本実施形態では、電断時には、「ＰＵＳＨ  ＧＲＰ」命令によってＴ、Ｉレジスタを含まない、Ａ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌレジスタの値をスタックエリアに退避（記憶）させ、復電時には、「ＰＯＰ  ＧＲＰ」命令によってＴ、Ｉレジスタを含まない、Ａ、Ｆ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｌレジスタの値をスタックエリアから復帰させるように構成しており、Ｔレジスタについては「ＰＵＳＨ  ＧＲＰ」命令による退避と「ＰＯＰ  ＧＲＰ」命令による復帰の両方ができないように構成している（これらの命令のオペランドとしてＴレジスタが指定できないように構成している）。また、本実施形態では、加算命令（ＩＮＣ命令）や減算命令（ＤＥＣ命令）のオペランドとしてもＴレジスタが指定できないように構成している。後述するように、ＴレジスタはＲＡＭ３０８へのアクセスにおいて重要な役割を果たす特殊レジスタであるが、コーディングミスなどによってＴレジスタに予期しない値が設定されてしまうような事態を確実に回避することができ、安定した遊技制御が可能である。また、ＴレジスタについてはＰＵＳＨ命令による退避とＰＯＰ命令による復帰の両方を行わないため、電断時や復帰時の処理を速めることができる場合がある。
【０１０８】
また、主制御部３００における基本回路３０２に搭載されているＲＡＭ３０８には、送信情報記憶領域が設けられている。このステップＳ１１１では、その送信情報記憶領域に、復電コマンドをセットする。この復電コマンドは、電源断時の状態に復帰したことを表すコマンドであり、後述する、主制御部３００のタイマ割込処理におけるステップＳ２３３において、第１副制御部４００へ送信される。
【０１０９】
ステップＳ１１３では、初期化処理を行う。この初期化処理では、割込禁止（ＤＩ）の設定、スタックポインタへのスタック初期値の設定（本設定）、ＲＡＭ３０８の全ての記憶領域の初期化などを行う。さらにここで、主制御部３００のＲＡＭ３０８に設けられた送信情報記憶領域に正常復帰コマンドをセットする。この正常復帰コマンドは、主制御部３００の初期化処理（ステップＳ１１３）が行われたことを表すコマンドであり、復電コマンドと同じく、主制御部３００のタイマ割込処理におけるステップＳ２３３において、第１副制御部４００へ送信される。
【０１１０】
ステップＳ１１５では、割込禁止の設定を行った後、基本乱数初期値更新処理を行う。この基本乱数初期値更新処理では、普図当選乱数カウンタ、および特図乱数値カウンタの初期値をそれぞれ生成するための２つの初期値生成用乱数カウンタと、普図タイマ乱数値、および特図タイマ乱数値それぞれを生成するための２つの乱数カウンタを更新する。例えば、普図タイマ乱数値として取り得る数値範囲が０〜１００とすると、ＲＡＭ３０８に設けた普図タイマ乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に１を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に１を加算した結果が１０１であれば０を元の乱数カウンタ記憶領域に記憶する。他の初期値生成用乱数カウンタ、乱数カウンタもそれぞれ同様に更新する。なお、初期値生成用乱数カウンタは、後述するステップＳ２０７でも更新する。主制御部３００は、所定の周期ごとに開始するタイマ割込処理を行っている間を除いて、ステップＳ１１５の処理を繰り返し実行する。
【０１１１】
＜Ｔレジチェック処理＞
図１１（ａ）は、初期設定１で行うＴレジチェック処理の流れを示すフローチャートであり、同図（ｂ）は、Ｔレジチェック処理のプログラムリストの一例である。
【０１１２】
このＴレジチェック処理のステップＳ１３１では、Ｔレジスタの値をＡレジスタにセットし（ＬＤ  Ａ，Ｔ）、次のステップＳ１３２では、Ａレジスタの値が特定の値（７ＥＨ）に一致するか否かを判定し（ＳＵＢ  ７ＥＨ、ＪＰ  Ｚ，ＳＥＩＪＹＯＵ）、一致しない場合（異常の場合；Ａレジスタの値から特定の値（７ＥＨ）を減算した値が０以外の値となりＺフラグが０になった場合）にはステップＳ１３３に進み、一致した場合（正常の場合；Ａレジスタの値から特定の値（７ＥＨ）を減算した値が０となりＺフラグが１になった場合）には、Ｔレジスタの値が正常であると判定してＴレジチェック処理を終了し、後続の処理に進む。ステップＳ１３３では、Ｔレジスタの値が異常であると判定してＴレジスタに特定の値（７ＥＨ）をセットした後に（ＬＤ  Ｔ，７ＥＨ）、Ｔレジチェック処理を終了して後続の処理に進む。
【０１１３】
なお、Ｔレジチェック処理は図１１に示す処理に限定されるものではなく、例えば、図１２に示すような処理でもよい。図１２（ａ）は、変形例に係るＴレジチェック処理の流れを示すフローチャートであり、同図（ｂ）は、変形例に係るＴレジチェック処理のプログラムリストの一例である。
【０１１４】
この変形例に係るＴレジチェック処理では、上記ステップＳ１３３の処理に替えて、ステップＳ１３５のエラー処理を行うように構成している。具体的には、ステップＳ１３２においてＡレジスタの値が特定の値（７ＥＨ）に一致しないと判定した場合（異常の場合；Ａレジスタの値から特定の値（７ＥＨ）を減算した値が０以外の値となりＺフラグが０になった場合）にはステップＳ１３５に進みエラー処理を行う（ＳＵＢ  ７ＥＨ、ＪＰ  ＮＺ，ｍｏＥｒｒoｒ）。このエラー処理の内容は特に限定されないが、例えば、無限ループに入って後続の主制御部メイン処理を実行しないように構成したり、後続の主制御部メイン処理において液晶表示装置やスピーカなどを用いてエラーを報知したりすることが考えられる。
【０１１５】
＜ＬＤ命令＞
次に、主制御部３００が備えるＬＤ命令について説明する。ＬＤ命令（ＬＤ  ＯＰ１，ＯＰ２）は、第１オペランドＯＰ１で示されるレジスタに、第２オペランドＯＰ２で示されるレジスタに記憶された値（または、第２オペランドＯＰ２で示されるイミディエイト値（即値または直値ともいう。以下同じ）を記憶するための命令である。例えば、上述のＴレジチェック処理の実行前にＴレジスタに７ＥＨが記憶されている状態で「ＬＤ  Ａ，Ｔ」の命令を実行した場合、Ａレジスタには第２オペランドで示されるＴレジスタに記憶された値、すなわち７ＥＨが記憶される。また、「ＬＤ  Ａ，７ＥＨ」の命令を実行した場合にも、Ａレジスタには第２オペランドで示されるイミディエイト値、すなわち７ＥＨが記憶される。
【０１１６】
一方、第１オペランドＯＰ１をＴレジスタとするＬＤ命令では、第２オペランドはイミディエイト値に限定されており、第２オペランドにレジスタを設定することは禁止されている（機械語にアセンブルされる過程でエラーとなりアセンブルすることができない）。したがって、上述のＴレジチェック処理で説明したように、第２オペランドをイミディエイト値とするＬＤ命令（先の例では「ＬＤ  Ｔ，７ＥＨ」）のプログラミング（コーディング）は認められるが、第２オペランドにレジスタを設定するＬＤ命令（例えば「ＬＤ  Ｔ，Ａ」）のプログラミング（コーディング）は認められない。このように、第１オペランドＯＰ１をＴレジスタとするＬＤ命令では、Ｔレジスタに対して直値でデータを転送するよう構成されているので、セットしているデータを確認し易くなる場合がある。また、Ｔレジスタに対して他のレジスタを介してデータを転送できないように構成されているので、Ｔレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。
【０１１７】
図１３はプログラムリストからＬＤ命令のみを抜き出して示した図である。この例では、５つのＬＤ命令を使用しているが、例えば、（４）のＬＤ命令「ＬＤ  Ｂ，Ａ」の実行後にＢレジスタに記憶される値についてデバッグでトレースを行う場合を考える。この場合、ＬＤ命令「ＬＤ  Ｂ，Ａ」の第２オペランドであるＡレジスタについて、プログラムリストを遡ってトレースすることが必要であるが、例えば、「ＬＤ  Ａ」という検索キーでプログラムリストの検索を行った場合、（１）のＬＤ命令「ＬＤ  Ａ，Ｂ」に加えて（３）のＬＤ命令「ＬＤ  Ａ，Ｈ」がヒットすることになる。すなわち、第１オペランドにＡレジスタを設定したＬＤ命令は、第２オペランドにレジスタを設定することと、第２オペランドをイミディエイト値とすることの両方が認められているため使用頻度が高く、コーディングの見直し作業や、デバッグ（例えば、Ａレジスタのトレースなど）の効率を低下させる一因となり得る。なお、ここでは、最も利用頻度が高いＡレジスタについて説明したが、Ｔレジスタを除く他のレジスタを利用した場合にも同様のことが言える。
【０１１８】
一方、第１オペランドにＴレジスタを設定したＬＤ命令は、第２オペランドにレジスタを設定することが禁止され、第２オペランドをイミディエイト値とすることのみが認められているため、Ａレジスタを利用したＬＤ命令よりも相対的に使用頻度が低く、コーディングの見直し作業や、デバッグ（例えば、Ｔレジスタのトレースなど）の効率を高めることが可能となり、制御プログラムの開発効率が向上する場合がある。
【０１１９】
＜主制御部タイマ割込処理＞
次に、図１４を用いて、主制御部３００のＣＰＵ３０４が実行する主制御部タイマ割込処理について説明する。なお、同図は主制御部タイマ割込処理の流れを示すフローチャートである。
【０１２０】
主制御部３００は、所定の周期（本実施形態では約２ｍｓに１回）でタイマ割込信号を発生するカウンタタイマ３１２を備えており、このタイマ割込信号を契機として主制御部タイマ割込処理を所定の周期で開始する。
【０１２１】
ステップＳ２０１では、タイマ割込開始処理を行う。このタイマ割込開始処理では、ＣＰＵ３０４の各レジスタの値をスタック領域に一時的に退避する処理などを行う。
【０１２２】
ステップＳ２０３では、ＷＤＴ３１４のカウント値が初期設定値（本実施形態では３２．８ｍｓ）を超えてＷＤＴ割込が発生しないように（処理の異常を検出しないように）、ＷＤＴを定期的に（本実施形態では、主制御部タイマ割込の周期である約２ｍｓに１回）リスタートを行う。
【０１２３】
ステップＳ２０５では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、Ｉ／Ｏ３１０の入力ポートを介して、上述の前面枠扉開放センサや内枠開放センサや下皿満タンセンサ、各種の球検出センサを含む各種センサ３２０の検出信号を入力して検出信号の有無を監視し、ＲＡＭ３０８に各種センサ３２０ごとに区画して設けた信号状態記憶領域に記憶する。球検出センサの検出信号を例にして説明すれば、前々回のタイマ割込処理（約４ｍｓ前）で検出した各々の球検出センサの検出信号の有無の情報を、ＲＡＭ３０８に各々の球検出センサごとに区画して設けた前回検出信号記憶領域から読み出し、この情報をＲＡＭ３０８に各々の球検出センサごとに区画して設けた前々回検出信号記憶領域に記憶し、前回のタイマ割込処理（約２ｍｓ前）で検出した各々の球検出センサの検出信号の有無の情報を、ＲＡＭ３０８に各々の球検出センサごとに区画して設けた今回検出信号記憶領域から読み出し、この情報を上述の前回検出信号記憶領域に記憶する。また、今回検出した各々の球検出センサの検出信号を、上述の今回検出信号記憶領域に記憶する。
【０１２４】
また、ステップＳ２０５では、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域の各記憶領域に記憶した各々の球検出センサの検出信号の有無の情報を比較し、各々の球検出センサにおける過去３回分の検出信号の有無の情報が入賞判定パターン情報と一致するか否かを判定する。一個の遊技球が一つの球検出センサを通過する間に、約２ｍｓという非常に短い間隔で起動を繰り返すこの主制御部タイマ割込処理は何回か起動する。このため、主制御部タイマ割込処理が起動する度に、上述のステップＳ２０５では、同じ遊技球が同じ球検出センサを通過したことを表す検出信号を確認することになる。この結果、上述の前々回検出信号記憶領域、前回検出信号記憶領域、および今回検出信号記領域それぞれに、同じ遊技球が同じ球検出センサを通過したことを表す検出信号が記憶される。すなわち、遊技球が球検出センサを通過し始めたときには、前々回検出信号無し、前回検出信号有り、今回検出信号有りになる。本実施形態では、球検出センサの誤検出やノイズを考慮して、検出信号無しの後に検出信号が連続して２回記憶されている場合には、入賞があったと判定する。図４に示す主制御部３００のＲＯＭ３０６には、入賞判定パターン情報（本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報）が記憶されている。このステップＳ２０５では、各々の球検出センサにおいて過去３回分の検出信号の有無の情報が、予め定めた入賞判定パターン情報（本実施形態では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報）と一致した場合に、一般入賞口２２６、可変入賞口２３４、第１特図始動口２３０、および第２特図始動口２３２への入球、または普図始動口２２８の通過があったと判定する。すなわち、これらの入賞口２２６、２３４やこれらの始動口２３０、２３２、２２８への入賞があったと判定する。例えば、一般入賞口２２６への入球を検出する一般入賞口センサにおいて過去３回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致した場合には、一般入賞口２２６へ入賞があったと判定し、以降の一般入賞口２２６への入賞に伴う処理を行うが、過去３回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致しなかった場合には、以降の一般入賞口２２６への入賞に伴う処理を行わずに後続の処理に分岐する。なお、主制御部３００のＲＯＭ３０６には、入賞判定クリアパターン情報（本実施形態では、前々回検出信号有り、前回検出信号無し、今回検出信号無しであることを示す情報）が記憶されている。入賞が一度あったと判定した後は、各々の球検出センサにおいて過去３回分の検出信号の有無の情報が、その入賞判定クリアパターン情報に一致するまで入賞があったとは判定せず、入賞判定クリアパターン情報に一致すれば、次からは上記入賞判定パターン情報に一致するか否かの判定を行う。
【０１２５】
ステップＳ２０７およびステップＳ２０９では、基本乱数初期値更新処理および基本乱数更新処理を行う。これらの基本乱数初期値更新処理および基本乱数更新処理では、上記ステップＳ１１５で行った初期値生成用乱数カウンタの値の更新を行い、次に主制御部３００で使用する、普図当選乱数値、特図１乱数値、および特図２乱数値をそれぞれ生成するための２つの乱数カウンタを更新する。例えば、普図当選乱数値として取り得る数値範囲が０〜１００とすると、ＲＡＭ３０８に設けた普図当選乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に１を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に１を加算した結果が１０１であれば０を元の乱数カウンタ記憶領域に記憶する。また、取得した値に１を加算した結果、乱数カウンタが一周していると判定した場合にはそれぞれの乱数カウンタに対応する初期値生成用乱数カウンタの値を取得し、乱数カウンタの記憶領域にセットする。例えば、０〜１００の数値範囲で変動する普図当選乱数値生成用の乱数カウンタから値を取得し、取得した値に１を加算した結果が、ＲＡＭ３０８に設けた所定の初期値記憶領域に記憶している前回設定した初期値と等しい値（例えば７）である場合に、普図当選乱数値生成用の乱数カウンタに対応する初期値生成用乱数カウンタから値を初期値として取得し、普図当選乱数値生成用の乱数カウンタにセットすると共に、普図当選乱数値生成用の乱数カウンタが次に１周したことを判定するために、今回設定した初期値を上述の初期値記憶領域に記憶しておく。また、普図当選乱数値生成用の乱数カウンタが次に１周したことを判定するための上述の初期値記憶領域とは別に、特図乱数生成用の乱数カウンタが１周したことを判定するための初期値記憶領域をＲＡＭ３０８に設けている。なお、本実施形態では特図１の乱数値を取得するためのカウンタと特図２の乱数値を取得するためのカウンタとを別に設けたが、同一のカウンタを用いてもよい。
【０１２６】
ステップＳ２１１では、演出乱数更新処理を行う。この演出乱数更新処理では、主制御部３００で使用する演出用乱数値を生成するための乱数カウンタを更新する。
【０１２７】
ステップＳ２１３では、タイマ更新処理を行う。このタイマ更新処理では、普通図柄表示装置２１０に図柄を変動・停止表示する時間を計時するための普図表示図柄更新タイマ、第１特別図柄表示装置２１２に図柄を変動・停止表示する時間を計時するための特図１表示図柄更新タイマ、第２特図表示装置２１４に図柄を変動・停止表示する時間を計時するための特図２表示図柄更新タイマ、所定の入賞演出時間、所定の開放時間、所定の閉鎖時間、所定の終了演出期間などを計時するためのタイマなどを含む各種タイマを更新する。
【０１２８】
ステップＳ２１５では、入賞口カウンタ更新処理を行う。この入賞口カウンタ更新処理では、入賞口２２６、２３４や始動口２３０、２３２、２２８に入賞があった場合に、ＲＡＭ３０８に各入賞口ごと、あるいは各始動口ごとに設けた賞球数記憶領域の値を読み出し、１を加算して、元の賞球数記憶領域に設定する。
【０１２９】
また、ステップＳ２１７では、入賞受付処理を行う。この入賞受付処理では、第１特図始動口２３０、第２特図始動口２３２、普図始動口２２８および可変入賞口２３４への入賞があったか否かを判定する。ここでは、ステップＳ２０３における入賞判定パターン情報と一致するか否かの判定結果を用いて判定する。第１特図始動口２３０へ入賞があった場合且つＲＡＭ３０８に設けた対応する保留数記憶領域が満タンでない場合、カウンタ回路３１８の当選用カウンタ値記憶用レジスタから値を特図１当選乱数値として取得するとともに特図１乱数値生成用の乱数カウンタから値を特図１乱数値として取得して対応する乱数値記憶領域に格納する。第２特図始動口２３２へ入賞があった場合且つＲＡＭ３０８に設けた対応する保留数記憶領域が満タンでない場合、カウンタ回路３１８の当選用カウンタ値記憶用レジスタから値を特図２当選乱数値として取得するとともに特図２乱数値生成用の乱数カウンタから値を特図２乱数値として取得して対応する乱数値記憶領域に格納する。普図始動口２２８へ入賞があった場合且つＲＡＭ３０８に設けた対応する保留数記憶領域が満タンでない場合、普図当選乱数値生成用の乱数カウンタから値を普図当選乱数値として取得して対応する乱数値記憶領域に格納する。可変入賞口２３４へ入賞があった場合には、可変入賞口用の入賞記憶領域に、可変入賞口２３４に球が入球したことを示す情報を格納する。
【０１３０】
ステップＳ２１９では、払出要求数送信処理を行う。なお、払出制御部６００に出力する出力予定情報および払出要求情報は、例えば１バイトで構成しており、ビット７にストローブ情報（オンの場合、データをセットしていることを示す）、ビット６に電源投入情報（オンの場合、電源投入後一回目のコマンド送信であることを示す）、ビット４〜５に暗号化のための今回加工種別（０〜３）、およびビット０〜３に暗号化加工後の払出要求数を示すようにしている。
【０１３１】
ステップＳ２２１では、普図状態更新処理を行う。この普図状態更新処理は、普図の状態に対応する複数の処理のうちの１つの処理を行う。例えば、普図変動表示の途中（上述する普図表示図柄更新タイマの値が１以上）における普図状態更新処理では、普通図柄表示装置２１０を構成する７セグメントＬＥＤの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。この制御を行うことで、普通図柄表示装置２１０は普図の変動表示（普図変動遊技）を行う。
【０１３２】
また、普図変動表示時間が経過したタイミング（普図表示図柄更新タイマの値が１から０になったタイミング）における普図状態更新処理では、当りフラグがオンの場合には、当たり図柄の表示態様となるように普通図柄表示装置２１０を構成する７セグメントＬＥＤの点灯・消灯駆動制御を行い、当りフラグがオフの場合には、外れ図柄の表示態様となるように普通図柄表示装置２１０を構成する７セグメントＬＥＤの点灯・消灯駆動制御を行う。また、主制御部３００のＲＡＭ３０８には、普図状態更新処理に限らず各種の処理において各種の設定を行う設定領域が用意されている。ここでは、上記点灯・消灯駆動制御を行うとともに、その設定領域に普図停止表示中であることを示す設定を行う。この制御を行うことで、普通図柄表示装置２１０は、当り図柄（図５（ｃ）に示す普図Ａ）および外れ図柄（図５（ｃ）に示す普図Ｂ）いずれか一方の図柄の確定表示を行う。さらにその後、所定の停止表示期間（例えば５００ｍ秒間）、その表示を維持するためにＲＡＭ３０８に設けた普図停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により、確定表示された図柄が所定期間停止表示され、普図変動遊技の結果が遊技者に報知される。
【０１３３】
また、普図変動遊技の結果が当りであれば、後述するように、普図当りフラグがオンされる。この普図当りフラグがオンの場合には、所定の停止表示期間が終了したタイミング（普図停止時間管理用タイマの値が１から０になったタイミング）における普図状態更新処理では、ＲＡＭ３０８の設定領域に普図作動中を設定するとともに、所定の開放期間（例えば２秒間）、第２特図始動口２３２の羽根部材２３２ａの開閉駆動用のソレノイド（３３２）に、羽根部材２３２ａを開放状態に保持する信号を出力するとともに、ＲＡＭ３０８に設けた羽根開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。
【０１３４】
また、所定の開放期間が終了したタイミング（羽根開放時間管理用タイマの値が１から０になったタイミング）で開始する普図状態更新処理では、所定の閉鎖期間（例えば５００ｍ秒間）、羽根部材の開閉駆動用のソレノイド３３２に、羽根部材を閉鎖状態に保持する信号を出力するとともに、ＲＡＭ３０８に設けた羽根閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。
【０１３５】
また、所定の閉鎖期間が終了したタイミング（羽根閉鎖時間管理用タイマの値が１から０になったタイミング）で開始する普図状態更新処理では、ＲＡＭ３０８の設定領域に普図非作動中を設定する。さらに、普図変動遊技の結果が外れであれば、後述するように、普図外れフラグがオンされる。この普図外れフラグがオンの場合には、上述した所定の停止表示期間が終了したタイミング（普図停止時間管理用タイマの値が１から０になったタイミング）における普図状態更新処理でも、ＲＡＭ３０８の設定領域に普図非作動中を設定する。普図非作動中の場合における普図状態更新処理では、何もせずに次のステップＳ２２３に移行するようにしている。
【０１３６】
ステップＳ２２３では、普図関連抽選処理を行う。この普図関連抽選処理では、普図変動遊技および第２特図始動口２３２の開閉制御を行っておらず（普図の状態が非作動中）、且つ、保留している普図変動遊技の数が１以上である場合に、上述の乱数値記憶領域に記憶している普図当選乱数値に基づいた乱数抽選により普図変動遊技の結果を当選とするか、不当選とするかを決定する当り判定をおこない、当選とする場合にはＲＡＭ３０８に設けた当りフラグにオンを設定する。不当選の場合には、当りフラグにオフを設定する。また、当り判定の結果に関わらず、次に上述の普図タイマ乱数値生成用の乱数カウンタの値を普図タイマ乱数値として取得し、取得した普図タイマ乱数値に基づいて複数の変動時間のうちから普図表示装置２１０に普図を変動表示する時間を１つ選択し、この変動表示時間を、普図変動表示時間として、ＲＡＭ３０８に設けた普図変動時間記憶領域に記憶する。なお、保留している普図変動遊技の数は、ＲＡＭ３０８に設けた普図保留数記憶領域に記憶するようにしており、当り判定をするたびに、保留している普図変動遊技の数から１を減算した値を、この普図保留数記憶領域に記憶し直すようにしている。また当り判定に使用した乱数値を消去する。
【０１３７】
次いで、特図１および特図２それぞれについての特図状態更新処理を行うが、最初に、特図２についての特図状態更新処理（特図２状態更新処理）を行う（ステップＳ２２５）。この特図２状態更新処理は、特図２の状態に応じて、次の８つの処理のうちの１つの処理を行う。例えば、特図２変動表示の途中（上述の特図２表示図柄更新タイマの値が１以上）における特図２状態更新処理では、第２特別図柄表示装置２１４を構成する７セグメントＬＥＤの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。この制御を行うことで、第２特別図柄表示装置２１４は特図２の変動表示（特図２変動遊技）を行う。
また、コマンド設定送信処理（ステップＳ２３３）で回転開始設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶してから処理を終了する。
【０１３８】
また、主制御部３００のＲＡＭ３０８の当否判定結果記憶領域には、１５Ｒ大当りフラグ、２Ｒ大当たりフラグ、第１小当たりフラグ、第２小当たりフラグ、第１はずれフラグ、第２はずれフラグ、特図確率変動フラグ、および普図確率変動フラグそれぞれのフラグが用意されている。特図２変動表示時間が経過したタイミング（特図２表示図柄更新タイマの値が１から０になったタイミング）で開始する特図２状態更新処理では、１５Ｒ大当りフラグはオン、特図確率変動フラグもオン、普図確率変動フラグもオンの場合には図５（ａ）に示す特図Ａ、１５Ｒ大当りフラグはオン、特図確率変動フラグはオフ、普図確率変動フラグはオンの場合には特図Ｂ、２Ｒ大当りフラグはオン、特図確率変動フラグもオン、普図確率変動フラグもオンの場合には特図Ｃ、２Ｒ大当りフラグはオン、特図確率変動フラグはオフ、普図確率変動フラグはオンの場合には特図Ｄ、２Ｒ大当りフラグはオン、特図確率変動フラグもオン、普図確率変動フラグはオンの場合には特図Ｅ、２Ｒ大当りフラグはオン、特図確率変動フラグはオフ、普図確率変動フラグもオフの場合には特図Ｆ、第１小当たりフラグがオンの場合には特図Ｇ、第２小当たりフラグがオンの場合には特図Ｈ、第１はずれフラグがオンの場合には特図Ｉ、第２はずれフラグがオンの場合には特図Ｉそれぞれの態様となるように、第２特別図柄表示装置２１４を構成する７セグメントＬＥＤの点灯・消灯駆動制御を行い、ＲＡＭ３０８の設定領域に特図２停止表示中であることを表す設定を行う。この制御を行うことで、第２特別図柄表示装置２１４は、１５Ｒ特別大当たり図柄（特図Ａ）、１５Ｒ大当たり図柄（特図Ｂ）、突然確変図柄（特図Ｃ）、突然時短図柄（特図Ｄ）、隠れ確変図柄（特図Ｅ）、突然通常図柄（特図Ｆ）、第１小当たり図柄（特図Ｇ）、第２小当たり図柄（特図Ｈ）、第１はずれ図柄（特図Ｉ）、および第２はずれ図柄（特図Ｊ）のいずれか一つの図柄の確定表示を行う。さらにその後、所定の停止表示期間（例えば５００ｍ秒間）その表示を維持するためにＲＡＭ３０８に設けた特図２停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により、確定表示された特図２が所定期間停止表示され、特図２変動遊技の結果が遊技者に報知される。また、ＲＡＭ３０８に設けられた時短回数記憶部に記憶された時短回数が１以上であれば、その時短回数から１を減算し、減算結果が１から０となった場合は、特図確率変動中（詳細は後述）でなければ、時短フラグをオフする。さらに、大当り遊技中（特別遊技状態中）にも、時短フラグをオフする。
【０１３９】
また、コマンド設定送信処理（ステップＳ２３３）で回転停止設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶するとともに、変動表示を停止する図柄が特図２であることを示す特図２識別情報を、後述するコマンドデータに含める情報としてＲＡＭ３０８に追加記憶してから処理を終了する。
【０１４０】
また、特図２変動遊技の結果が大当りであれば、後述するように、大当りフラグがオンされる。この大当りフラグがオンの場合には、所定の停止表示期間が終了したタイミング（特図２停止時間管理用タイマの値が１から０になったタイミング）における特図２状態更新処理では、ＲＡＭ３０８の設定領域に特図２作動中を設定するとともに、所定の入賞演出期間（例えば３秒間）すなわち装飾図柄表示装置２０８による大当りを開始することを遊技者に報知する画像を表示している期間待機するためにＲＡＭ３０８に設けた特図２待機時間管理用タイマの記憶領域に入賞演出期間を示す情報を設定する。また、コマンド設定送信処理（ステップＳ２３３）で入賞演出設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【０１４１】
また、所定の入賞演出期間が終了したタイミング（特図２待機時間管理用タイマの値が１から０になったタイミング）で開始する特図２状態更新処理では、所定の開放期間（例えば２９秒間、または可変入賞口２３４に所定球数（例えば１０球）の遊技球の入賞を検出するまで）可変入賞口２３４の扉部材２３４ａの開閉駆動用のソレノイド（３３２）に、扉部材２３４ａを開放状態に保持する信号を出力するとともに、ＲＡＭ３０８に設けた扉開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。また、コマンド設定送信処理（ステップＳ２３３）で大入賞口開放設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【０１４２】
また、所定の開放期間が終了したタイミング（扉開放時間管理用タイマの値が１から０になったタイミング）で開始する特図２状態更新処理では、所定の閉鎖期間（例えば１．５秒間）可変入賞口２３４の扉部材２３４ａの開閉駆動用のソレノイド（３３２）に、扉部材２３４ａを閉鎖状態に保持する信号を出力するとともに、ＲＡＭ３０８に設けた扉閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。また、コマンド設定送信処理（ステップＳ２３３）で大入賞口閉鎖設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【０１４３】
また、この扉部材の開放・閉鎖制御を所定回数（本実施例では１５ラウンドか２ラウンド）繰り返し、終了したタイミングで開始する特図２状態更新処理では、所定の終了演出期間（例えば３秒間）すなわち装飾図柄表示装置２０８による大当りを終了することを遊技者に報知する画像を表示している期間待機するように設定するためにＲＡＭ３０８に設けた演出待機時間管理用タイマの記憶領域に演出待機期間を示す情報を設定する。また、普図確率変動フラグがオンに設定されていれば、この大当たり遊技の終了と同時に、ＲＡＭ３０８に設けられた時短回数記憶部に時短回数１００回をセットするともに、ＲＡＭ３０８に設けられた時短フラグをオンする。なお、その普図確率変動フラグがオフに設定されていれば、時短回数記憶部に時短回数をセットすることもなく、また時短フラグをオンすることもない。ここにいう時短とは、特図変動遊技における大当りを終了してから、次の大当りを開始するまでの時間を短くするため、パチンコ機が遊技者にとって有利な状態になることをいう。この時短フラグがオンに設定されていると、普図高確率状態である。普図高確率状態では普図低確率状態に比べて、普図変動遊技に大当りする可能性が高い。また、普図高確率状態の方が、普図低確率状態に比べて普図変動遊技の変動時間および特図変動遊技の変動時間は短くなる。さらに、普図高確率状態では普図低確率状態に比べて、第２特別始動口２３２の一対の羽根部材２３２ａの１回の開放における開放時間が長くなりやすい。加えて、普図高確率状態では普図低確率状態に比べて、一対の羽根部材２３２ａは多く開きやすい。また、上述のごとく、時短フラグは、大当り遊技中（特別遊技状態中）にはオフに設定される。したがって、大当たり遊技中には、普図低確率状態が維持される。これは、大当たり遊技中に普図高確率状態であると、大当たり遊技中に可変入賞口２３４に所定の個数、遊技球が入球するまでの間に第２特図始動口２３２に多くの遊技球が入球し、大当たり中に獲得することができる遊技球の数が多くなってしまい射幸性が高まってしまうという問題があり、これを解決するためのものである。
【０１４４】
さらに、コマンド設定送信処理（ステップＳ２３３）で終了演出設定送信処理を実行させることを示す所定の送信情報を上述の送信情報記憶領域に追加記憶する。
【０１４５】
また、所定の終了演出期間が終了したタイミング（演出待機時間管理用タイマの値が１から０になったタイミング）で開始する特図２状態更新処理では、ＲＡＭ３０８の設定領域に特図２非作動中を設定する。さらに、特図２変動遊技の結果が外れであれば、後述するように、はずれフラグがオンされる。このはずれフラグがオンの場合には、上述した所定の停止表示期間が終了したタイミング（特図２停止時間管理用タイマの値が１から０になったタイミング）における特図２状態更新処理でも、ＲＡＭ３０８の設定領域に特図２非作動中を設定する。特図２非作動中の場合における特図２状態更新処理では、何もせずに次のステップＳ２２７に移行するようにしている。
【０１４６】
続いて、特図１についての特図状態更新処理（特図１状態更新処理）を行う（ステップＳ２２７）。この特図１状態更新処理では、特図１の状態に応じて、上述の特図２状態更新処理で説明した各処理を行う。この特図１状態更新処理で行う各処理は、上述の特図２状態更新処理で説明した内容の「特図２」を「特図１」と読み替えた処理と同一であるため、その説明は省略する。なお、特図２状態更新処理と特図１状態更新処理の順番は逆でもよい。
【０１４７】
ステップＳ２２５およびステップＳ２２７における特図状態更新処理が終了すると、今度は、特図１および特図２それぞれについての特図関連抽選処理を行う。ここでも先に、特図２についての特図関連抽選処理（特図２関連抽選処理）を行い（ステップＳ２２９）、その後で、特図１についての特図関連抽選処理（特図１関連抽選処理）を行う（ステップＳ２３１）。これらの特図関連抽選処理についても、主制御部３００が特図２関連抽選処理を特図１関連抽選処理よりも先に行うことで、特図２変動遊技の開始条件と、特図１変動遊技の開始条件が同時に成立した場合でも、特図２変動遊技が先に変動中となるため、特図１変動遊技は変動を開始しない。また、装飾図柄表示装置２０８による、特図変動遊技の大当り判定の結果の報知は、第１副制御部４００によって行われ、第２特図始動口２３２への入賞に基づく抽選の抽選結果の報知が、第１特図始動口２３０への入賞に基づく抽選の抽選結果の報知よりも優先して行われる。
【０１４８】
ステップＳ２３３では、コマンド設定送信処理を行い、各種のコマンドが第１副制御部４００に送信される。なお、第１副制御部４００に送信する出力予定情報は例えば１６ビットで構成しており、ビット１５はストローブ情報（オンの場合、データをセットしていることを示す）、ビット１１〜１４はコマンド種別（本実施形態では、基本コマンド、図柄変動開始コマンド、図柄変動停止コマンド、入賞演出開始コマンド、終了演出開始コマンド、大当りラウンド数指定コマンド、復電コマンド、ＲＡＭクリアコマンドなどコマンドの種類を特定可能な情報）、ビット０〜１０はコマンドデータ（コマンド種別に対応する所定の情報）で構成している。
【０１４９】
具体的には、ストローブ情報は上述のコマンド送信処理でオン、オフするようにしている。また、コマンド種別が図柄変動開始コマンドの場合であればコマンドデータに、１５Ｒ大当りフラグや２Ｒ大当たりフラグの値、特図確率変動フラグの値、特図関連抽選処理で選択したタイマ番号などを示す情報を含み、図柄変動停止コマンドの場合であれば、１５Ｒ大当りフラグや２Ｒ大当たりフラグの値、特図確率変動フラグの値などを含み、入賞演出コマンドおよび終了演出開始コマンドの場合であれば、特図確率変動フラグの値などを含み、大当りラウンド数指定コマンドの場合であれば特図確率変動フラグの値、大当りラウンド数などを含むようにしている。コマンド種別が基本コマンドを示す場合は、コマンドデータにデバイス情報、第１特図始動口２３０への入賞の有無、第２特図始動口２３２への入賞の有無、可変入賞口２３４への入賞の有無などを含む。
【０１５０】
また、上述の回転開始設定送信処理では、コマンドデータにＲＡＭ３０８に記憶している、１５Ｒ大当りフラグや２Ｒ大当たりフラグの値、特図確率変動フラグの値、特図１関連抽選処理および特図２関連抽選処理で選択したタイマ番号、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。上述の回転停止設定送信処理では、コマンドデータにＲＡＭ３０８に記憶している、１５Ｒ大当りフラグや２Ｒ大当たりフラグの値、特図確率変動フラグの値などを示す情報を設定する。上述の入賞演出設定送信処理では、コマンドデータに、ＲＡＭ３０８に記憶している、入賞演出期間中に装飾図柄表示装置２０８・各種ランプ４１８・スピーカ１２０に出力する演出制御情報、特図確率変動フラグの値、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。上述の終了演出設定送信処理では、コマンドデータに、ＲＡＭ３０８に記憶している、演出待機期間中に装飾図柄表示装置２０８・各種ランプ４１８・スピーカ１２０に出力する演出制御情報、特図確率変動フラグの値、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。上述の大入賞口開放設定送信処理では、コマンドデータにＲＡＭ３０８に記憶している大当りラウンド数、特図確率変動フラグの値、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。上述の大入賞口閉鎖設定送信処理では、コマンドデータにＲＡＭ３０８に記憶している大当りラウンド数、特図確率変動フラグの値、保留している第１特図変動遊技または第２特図変動遊技の数などを示す情報を設定する。また、このステップＳ２３３では一般コマンド特図保留増加処理も行われる。この一般コマンド特図保留増加処理では、コマンドデータにＲＡＭ３０８の送信用情報記憶領域に記憶している特図識別情報（特図１または特図２を示す情報）、予告情報（事前予告情報、偽事前予告情報、または事前予告無情報のいずれか）を設定する。
【０１５１】
第１副制御部４００では、受信した出力予定情報に含まれるコマンド種別により、主制御部３００における遊技制御の変化に応じた演出制御の決定が可能になるとともに、出力予定情報に含まれているコマンドデータの情報に基づいて、演出制御内容を決定することができるようになる。
【０１５２】
ステップＳ２３５では、外部出力信号設定処理を行う。この外部出力信号設定処理では、ＲＡＭ３０８に記憶している遊技情報を、情報出力回路３３６を介してパチンコ機１００とは別体の情報入力回路３５０に出力する。
【０１５３】
ステップＳ２３７では、デバイス監視処理を行う。このデバイス監視処理では、ステップＳ２０５において信号状態記憶領域に記憶した各種センサの信号状態を読み出して、所定のエラーの有無、例えば前面枠扉開放エラーの有無または下皿満タンエラーの有無などを監視し、前面枠扉開放エラーまたは下皿満タンエラーを検出した場合に、第１副制御部４００に送信すべき送信情報に、前面枠扉開放エラーの有無または下皿満タンエラーの有無を示すデバイス情報を設定する。また、各種ソレノイド３３２を駆動して第２特図始動口２３２や、可変入賞口２３４の開閉を制御したり、表示回路３２４、３２６、３３０を介して普通図柄表示装置２１０、第１特別図柄表示装置２１２、第２特別図柄表示装置２１４、各種状態表示部３２８などに出力する表示データを、Ｉ／Ｏ３１０の出力ポートに設定する。また、払出要求数送信処理（ステップＳ２１９）で設定した出力予定情報を出力ポート（Ｉ／Ｏ３１０）を介して第１副制御部４００に出力する。
【０１５４】
ステップＳ２３９では、低電圧信号がオンであるか否かを監視する。そして、低電圧信号がオンの場合（電源の遮断を検知した場合）にはステップＳ２４３に進み、低電圧信号がオフの場合（電源の遮断を検知していない場合）にはステップＳ２４１に進む。
【０１５５】
ステップＳ２４１では、タイマ割込終了処理を行う。このタイマ割込終了処理では、ステップＳ２０１で一時的に退避した各レジスタの値を元の各レジスタに設定したり、割込許可の設定などを行い、その後、主制御部メイン処理に復帰する。
【０１５６】
一方、ステップＳ２４３では、復電時に電断時の状態に復帰するための特定の変数やスタックポインタを復帰データとしてＲＡＭ３０８の所定の領域に退避し、入出力ポートの初期化等の電断処理を行い、その後、主制御部メイン処理に復帰する。
【０１５７】
＜第１副制御部４００の処理＞
次に、図１５を用いて、第１副制御部４００の処理について説明する。なお、同図（ａ）は、第１副制御部４００のＣＰＵ４０４が実行するメイン処理のフローチャートである。同図（ｂ）は、第１副制御部４００のストローブ割込み処理のフローチャートである。同図（ｃ）は、第１副制御部４００のタイマ変数更新割込処理のフローチャートである。同図（ｄ）は、第１副制御部４００の画像制御処理のフローチャートである。
【０１５８】
まず、同図（ａ）のステップＳ３０１では、各種の初期設定を行う。電源投入が行われると、まずＳ３０１で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、ＲＡＭ４０８内の記憶領域の初期化処理等を行う。
【０１５９】
ステップＳ３０３では、タイマ変数が１０以上か否かを判定し、タイマ変数が１０となるまでこの処理を繰り返し、タイマ変数が１０以上となったときには、ステップＳ３０５の処理に移行する。ステップＳ３０５では、タイマ変数に０を代入する。
【０１６０】
ステップＳ３０７では、コマンド処理を行う。第１副制御部４００のＣＰＵ４０４は、主制御部３００からコマンドを受信したか否かを判別する。
【０１６１】
ステップＳ３０９では、演出制御処理を行う。例えば、Ｓ３０７で新たなコマンドがあった場合には、このコマンドに対応する演出データをＲＯＭ４０６から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行う。
【０１６２】
ステップＳ３１１では、チャンスボタンの押下を検出していた場合、ステップＳ３０９で更新した演出データをチャンスボタンの押下に応じた演出データに変更する処理を行う。ステップＳ３１３では、Ｓ３０９で読み出した演出データの中にＶＤＰ４３４への命令がある場合には、この命令をＶＤＰ４３４に出力する（詳細は後述）。
【０１６３】
ステップＳ３１５では、Ｓ３０９で読み出した演出データの中に音源ＩＣ４１６への命令がある場合には、この命令を音源ＩＣ４１６に出力する。ステップＳ３１７では、Ｓ３０９で読み出した演出データの中に各種ランプ４１８への命令がある場合には、この命令を駆動回路４２０に出力する。
【０１６４】
ステップＳ３１９では、Ｓ３０９で読み出した演出データの中に遮蔽装置２４６への命令がある場合には、この命令を駆動回路４３２に出力する。ステップＳ３２１では、Ｓ３０９で読み出した演出データの中に第２副制御部５００に送信する制御コマンドがある場合には、この制御コマンドを出力する設定を行い、Ｓ３０３へ戻る。
【０１６５】
次に、同図（ｂ）を用いて、第１副制御部４００のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第１副制御部４００が、主制御部３００が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップＳ４０１では、主制御部３００が出力したコマンドを未処理コマンドとしてＲＡＭ４０８に設けたコマンド記憶領域に記憶する。
【０１６６】
次に、同図（ｃ）を用いて、第１副制御部４００のＣＰＵ４０４によって実行する第１副制御部タイマ割込処理について説明する。第１副制御部４００は、所定の周期（本実施例では２ｍｓに１回）でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【０１６７】
第１副制御部タイマ割込処理のステップＳ５０１では、第１副制御部メイン処理におけるステップＳ３０３において説明したＲＡＭ４０８のタイマ変数記憶領域の値に、１を加算して元のタイマ変数記憶領域に記憶する。従って、ステップＳ３０３において、タイマ変数の値が１０以上と判定されるのは２０ｍｓ毎（２ｍｓ×１０）となる。
【０１６８】
第１副制御部タイマ割込処理のステップＳ５０３では、ステップＳ３１９で設定された第２副制御部５００への制御コマンドの送信や、演出用乱数値の更新処理等を行う。
【０１６９】
次に、同図（ｄ）を用いて、第１副制御部４００のメイン処理におけるステップＳ３１３の画像制御処理について説明する。同図は、画像制御処理の流れを示すフローチャートを示した図である。
【０１７０】
ステップＳ６０１では、画像データの転送指示を行う。ここでは、ＣＰＵ４０４は、まず、ＶＲＡＭ４３６の表示領域Ａと表示領域Ｂの描画領域の指定をスワップする。これにより、描画領域に指定されていない表示領域に記憶された１フレームの画像が装飾図柄表示装置２０８に表示される。次に、ＣＰＵ４０４は、ＶＤＰ４３４のアトリビュートレジスタに、位置情報等テーブルに基づいてＲＯＭ座標（ＲＯＭ４０６の転送元アドレス）、ＶＲＡＭ座標（ＶＲＡＭ４３６の転送先アドレス）などを設定した後、ＲＯＭ４０６からＶＲＡＭ４３６への画像データの転送開始を指示する命令を設定する。ＶＤＰ４３４は、アトリビュートレジスタに設定された命令に基づいて画像データをＲＯＭ４０６からＶＲＡＭ４３６に転送する。その後、ＶＤＰ４３６は、転送終了割込信号をＣＰＵ４０４に対して出力する。
【０１７１】
ステップＳ６０３では、ＶＤＰ４３４からの転送終了割込信号が入力されたか否かを判定し、転送終了割込信号が入力された場合はステップＳ６０５に進み、そうでない場合は転送終了割込信号が入力されるのを待つ。ステップＳ６０５では、演出シナリオ構成テーブルおよびアトリビュートデータなどに基づいて、パラメータ設定を行う。ここでは、ＣＰＵ４０４は、ステップＳ６０１でＶＲＡＭ４３６に転送した画像データに基づいてＶＲＡＭ４３６の表示領域ＡまたはＢに表示画像を形成するために、表示画像を構成する画像データの情報（ＶＲＡＭ４３６の座標軸、画像サイズ、ＶＲＡＭ座標（配置座標）など）をＶＤＰ４３４に指示する。ＶＤＰ４３４はアトリビュートレジスタに格納された命令に基づいてアトリビュートに従ったパラメータ設定を行う。
【０１７２】
ステップＳ６０７では、描画指示を行う。この描画指示では、ＣＰＵ４０４は、ＶＤＰ４３４に画像の描画開始を指示する。ＶＤＰ４３４は、ＣＰＵ４０４の指示に従ってフレームバッファにおける画像描画を開始する。
【０１７３】
ステップＳ６０９では、画像の描画終了に基づくＶＤＰ４３４からの生成終了割込み信号が入力されたか否かを判定し、生成終了割込み信号が入力された場合はステップＳ６１１に進み、そうでない場合は生成終了割込み信号が入力されるのを待つ。ステップＳ６１１では、ＲＡＭ４０８の所定の領域に設定され、何シーンの画像を生成したかをカウントするシーン表示カウンタをインクリメント（＋１）して処理を終了する。
【０１７４】
＜第２副制御部５００の処理＞
次に、図１６を用いて、第２副制御部５００の処理について説明する。なお、同図（ａ）は、第２副制御部５００のＣＰＵ５０４が実行するメイン処理のフローチャートである。同図（ｂ）は、第２副制御部５００のコマンド受信割込処理のフローチャートである。同図（ｃ）は、第２副制御部５００のタイマ割込処理のフローチャートである。
【０１７５】
まず、同図（ａ）のステップＳ７０１では、各種の初期設定を行う。電源投入が行われると、まずＳ７０１で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、ＲＡＭ５０８内の記憶領域の初期化処理等を行う。
【０１７６】
ステップＳ７０３では、タイマ変数が１０以上か否かを判定し、タイマ変数が１０となるまでこの処理を繰り返し、タイマ変数が１０以上となったときには、ステップＳ７０５の処理に移行する。
【０１７７】
ステップＳ７０５では、タイマ変数に０を代入する。ステップＳ７０７では、コマンド処理を行う。第２副制御部５００のＣＰＵ５０４は、第１副制御部４００のＣＰＵ４０４からコマンドを受信したか否かを判別する。ステップＳ７０９では、演出制御処理を行う。例えば、Ｓ７０７で新たなコマンドがあった場合には、このコマンドに対応する演出データをＲＯＭ５０６から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行う。
【０１７８】
ステップＳ７１１では、第１副制御部４００からの遊技盤用ランプ５３２や遊技台枠用ランプ５４２への命令がある場合には、この命令をシリアル通信制御回路５２０に出力する。
【０１７９】
ステップＳ７１３では、第１副制御部４００からの演出可動体２２４への命令がある場合には、この命令を駆動回路５１６に出力し、Ｓ７０３に戻る。
次に、同図（ｂ）を用いて、第２副制御部５００のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第２副制御部５００が、第１副制御部４００が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップＳ８０１では、第１副制御部４００が出力したコマンドを未処理コマンドとしてＲＡＭ５０８に設けたコマンド記憶領域に記憶する。
【０１８０】
次に、同図（ｃ）を用いて、第２副制御部５００のＣＰＵ５０４によって実行する第２副制御部タイマ割込処理について説明する。第２副制御部５００は、所定の周期（本実施例では２ｍｓに１回）でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【０１８１】
第２副制御部タイマ割込処理のステップＳ９０１では、第２副制御部メイン処理におけるステップＳ７０３において説明したＲＡＭ５０８のタイマ変数記憶領域の値に、１を加算して元のタイマ変数記憶領域に記憶する。従って、ステップＳ７０３において、タイマ変数の値が１０以上と判定されるのは２０ｍｓ毎（２ｍｓ×１０）となる。第２副制御部タイマ割込処理のステップＳ９０３では、演出用乱数値の更新処理等を行う。
【０１８２】
＜主制御部のＲＯＭ＞
次に、図１７を用いて、主制御部３００のＲＯＭ３０６に記憶されるデータの種類について説明する。なお、同図は、上述のＲＯＭ３０６に記憶されるデータの一例を示した図である。
【０１８３】
ＲＯＭ３０６の記憶領域に対応するＲＯＭ領域（本実施形態では、００００Ｈ〜１ＦＦＦＨの８Ｋバイト領域）は、ＲＯＭ制御領域（本実施形態では、００００Ｈ〜０ＢＢ０Ｈ）、非使用領域（本実施形態では、０ＢＢ１Ｈ〜０ＦＦＦＨ）、ＲＯＭデータ領域（本実施形態では、１ＦＦＦＨ〜１８ＦＤＨ）およびその他領域（本実施形態では、１８ＦＥＨ〜１ＦＦＦＨ）で構成されている。このＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域には、ＣＰＵ３０４が実行する複数種類の命令それぞれに対応する命令データ（オペコード）やＣＰＵ３０４がそれぞれの命令を実行するために必要な補足データ（オペランド）によって構成される制御プログラム用のデータ（単に、制御プログラムデータと称する場合がある）が記憶され、非使用領域に対応するＲＯＭ３０６の記憶領域には、特定値（本実施形態では、００Ｈ）が一律に記憶され、ＲＯＭデータ領域に対応するＲＯＭ３０６の記憶領域には、上記の制御プログラムによって参照される参照データ（例えば、上述の各種抽選データ）が記憶されている。また、その他領域に対応するＲＯＭ３０６の記憶領域には、制御プログラムを管理するための管理データ（例えば、制御プログラムデータの最終アドレスを示すデータ）などが記憶されている。なお、本実施形態では、ＲＯＭ領域の各々のアドレスに対応するＲＯＭ３０６の記憶領域には、１バイト（８ビット）のデータが記憶可能であり、上述の各データ（命令データ、補足データ、参照データ、管理データ）が１バイトを超えるバイト数（例えば、２バイト）のデータである場合には、ＲＯＭ制御領域の連続する複数のアドレスに対応するＲＯＭ３０６の記憶領域に１バイト毎に分割して記憶している。
【０１８４】
また、制御プログラムは、複数のサブルーチンによって構成されており、後述するＣＡＬＬ命令やＥＸＥＳＵＢ（ＥＸＥＣＵＴＥ  ＳＵＢＲＯＵＴＩＮＥ）命令などによってサブルーチンの先頭アドレスに移動して、当該サブルーチンを順次実行することが可能になっている。
【０１８５】
ところで、遊技台の分野では、制御プログラムの検査効率化の観点から、制御プログラムデータを記憶する記憶領域を制限する必要があり、本実施形態では、上述の通りＲＯＭ制御領域を００００Ｈ〜０ＢＢ０Ｈに制限している。また、不正改造の抑止の観点から、制御プログラムデータ間に非使用領域や非使用のデータを設けないようにＲＯＭ制御領域の若いアドレスに詰めて制御用プログラムデータを記憶する必要があるため、開発段階で非使用となった制御プログラムデータの記憶領域を埋めるために別の制御プログラムデータを分割して割り当てるなどの作業が発生し、結果としてサブルーチンを呼び出す制御プログラムデータが多数必要となってくる。さらに、制御プログラムの開発効率を向上させるためや、制御プログラムのデバッグ作業等のメンテナンス作業を簡便にするためにもサブルーチンを多用しているため、サブルーチンを呼び出す制御プログラムデータが多数必要となってくる。
【０１８６】
このような開発環境の中で遊技の興趣を高めることを可能にするためには、ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域に記憶されている従来の制御プログラムデータ（例えば、上述のサブルーチンを呼び出す制御プログラムデータ）を圧縮し、ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域に新しい制御プログラムデータを追加することが可能な記憶領域を確保することが必要となってくる。
【０１８７】
特に、所定の周期（例えば、１０ｍｓ）毎に所定の処理を実行するタイマ割込み処理を実行するための制御プログラムには、複数の遊技制御処理のうちランダムに発生する複数の外部情報（各センサの変化等）を検出する処理（例えば、入力ポート状態更新処理（ステップＳ２０５））や外部情報の検出結果に基づいた処理（例えば、デバイス監視処理（ステップＳ２３７））など多くのサブルーチンを呼び出すための制御プログラムデータが含まれているため、このタイマ割込み処理を実行するための制御プログラムに含まれるサブルーチンを呼び出す制御プログラムデータの圧縮が必要となってくる。
【０１８８】
また、安定した遊技制御をおこなえるようにするためには、上述のタイマ割込み処理を重点的に安定化させなければならない。具体的には、コーディングミスを抑止すること、所定の周期（例えば、１０ｍｓ）毎に所定の処理を実行させるために（リアルタイム性を確保するために）処理速度を向上させることなどが必須となるため、サブルーチンを呼び出す制御プログラムに関する工夫が必要となる（詳細は後述する）。
【０１８９】
＜主制御部の命令データ＞
次に、主制御部３００の命令データについて説明する。図１８は、主制御部３００の命令データの構成の一例を示した図である。また、図１９（ａ）は、主制御部３００の命令データの上位ビットと下位ビットを示した図であり、同図（ｂ）は、命令データテーブルの一例を示した図である。
【０１９０】
主制御部３００の命令データは、例えば、命令データが１バイト（８ビット）のデータによって構成される場合には、最大で２５６パターン定義することが可能である。なお、定義された命令データはＲＯＭ３０６に記憶されているものではなく、ＣＰＵ３０４にハード的に組み込まれているものである。また、１バイトの命令データについて、各々を上位４ビットと下位４ビットによって分類分けすると、上記パターンと命令データの関係性は、図１９（ｂ）に示される通りとなる。例えば、「ＩＮＣ  ＢＣ（ＢＣレジスタを１つ加算する命令）」に使用されるＩＮＣ（命令データ）は、上位ビット０Ｈ（００００Ｂ）、下位ビット３Ｈ（００１１Ｂ）に割り当てられ、「ＤＥＣ  Ｂ（Ｂレジスタを１つ減算する命令）」に使用されるＤＥＣ（命令データ）は、上位ビット０Ｈ（００００Ｂ）、下位ビット５Ｈ（０１０１Ｂ）に割り当てられている。
【０１９１】
なお、１バイト長で定義可能な２５６パターンの命令データを上回るパターン数の命令データを割り当てる方法として、例えば、上記１バイトで定義される２５６パターンのうち１パターンに対してさらに新たな１バイトで定義される２５６パターンを対応付けることで最大５１１パターン（２５５パターン（１バイトの命令データ）＋２５６パターン（２バイトの命令データ））の命令データを定義する方法があるが、拡張した命令データは、２バイトのデータによって構成されるため、この命令を使用すると、上述の１バイトの命令データを使用するよりもＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域を圧迫してしまう。
【０１９２】
そこで、本実施形態では、図１９（ｂ）の太線で囲った領域、すなわち、上位ビット１Ｈ（０００１Ｂ）と下位ビット８Ｈ（１０００Ｂ）〜ＦＨ（１１１１Ｂ）の組合せと、上位ビット３Ｈ（００１１Ｂ）と下位ビット８Ｈ（１０００Ｂ）〜ＦＨ（１１１１Ｂ）の組合せからなる領域を、後述するＥＸＥＳＵＢ命令を割り当てるための特別な領域としている。このように、従来、命令データが割り当てられていない、または、割り当てられていた命令データが削除された空き領域を特別な領域として利用することで、限られたハードウェア資源（例えば、１バイトで定義可能なパターン（２５６パターン））を有効利用することができ、命令データによるＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域の圧迫を抑制することができる。
【０１９３】
また、命令データは、アセンブル後の機械語のチェックを簡便にするためにも役割ごとにグループ化（一の上位ビットに対して連続する複数の下位ビットの組合せからなる領域、または、一の下位ビットに対して連続する複数の上位ビットの組合せからなる領域に、同系統の役割を持つ命令データを割り当てる）して命令データテーブルに割り当てている（例えば、上位ビット８Ｈ（１０００Ｂ）と下位ビット０Ｈ（００００Ｂ）〜７Ｈ（０１１１Ｂ）の組合せで定義される部分におけるＡＤＤ命令）。近年では、チップの開発負担を軽減するため、従来の命令データテーブルに割り当てている命令データの削減、または削減した命令データを割り当てていた部分への新たな命令データを追加するなどしてチップの開発を行う。このため、アセンブル後の機械語のチェックを簡便にしつつも、データ圧縮のために命令データを新たに追加する際には、追加する同系統の命令データをグループにして割り当てていく必要があり、本実施形態では、ＥＸＥＳＵＢ命令をグループにして特別な領域に割り当てることで解決を図っている。さらに、小分けされた特別な領域に対して新たな命令データを効率良く割り当てるためには、追加する命令データのグループを小分けのグループにして割り当てていく必要があり、本実施形態では、さらに、ＥＸＥＳＵＢ命令を小分けのグループにして小分けされた特別な領域に割り当てることで解決を図っている。
【０１９４】
＜ＣＡＬＬ命令＞
次に、上述の制御プログラムの一つであるＣＡＬＬ命令について説明する。図２０は、ＣＡＬＬ命令によるアドレスの移動の一例を概念的に示したものであり、図２１は、ＣＡＬＬ命令の命令データと補足データの一例を示した図である。
【０１９５】
例えば、実行中の制御プログラムのアドレスが０７００Ｈで、移動先のサブルーチンの先頭アドレスが０３ＦＦＨの場合には、図２０の符号Ｘで示すように、両者の相対アドレス（移動元のアドレスと移動先のアドレスの差）は、０３０１Ｈ（＝０７００Ｈ−０３ＦＦＨ）であり、この相対アドレスは２バイトのデータで表現可能である。ここで、この制御プログラムをＣＡＬＬ命令によって表現すると、図２１（ａ）に示すように、ＣＡＬＬ命令を示す１バイトの命令データと移動先のアドレスを示す２バイトの補足データで合計３バイトの制御プログラムデータが必要となる。
【０１９６】
また、実行中の制御プログラムのアドレスが０７００Ｈで、移動先のサブルーチンの先頭アドレスが０７５ＦＨの場合には、図２０の符号Ｙで示すように、両者の相対アドレスは、００５ＦＨ（＝０７５ＦＨ−０３ＦＦＨ）であり、この相対アドレスは１バイトのデータで表現可能である。この場合であっても、この制御プログラムをＣＡＬＬ命令によって表現すると、図２１（ｂ）に示すように、ＣＡＬＬ命令を示す１バイトの命令データと移動先のアドレスを示す２バイトの補足データで合計３バイトの制御プログラムデータが必要である。
【０１９７】
すなわち、ＣＡＬＬ命令を実行するための制御プログラムは、移動先のアドレス（２バイトで定義可能な記憶領域（００００Ｈ〜ＦＦＦＦＨ）内の任意のアドレス）に関わらず、３バイトの制御プログラムデータが必要となる。
【０１９８】
なお、ＣＡＬＬ命令を実行する際にＣＰＵ３０４は、具体的に、ＰＣレジスタ（プログラムカウンタ）に記憶されているデータ（２バイト）をスタックエリアに記憶させる処理を実行した後に、ＣＡＬＬ命令を実行するための補足データ（移動先のサブルーチンの先頭アドレスを示すデータ（２バイト））をＰＣレジスタ（プログラムカウンタ）に記憶させる処理（サブルーチンの先頭アドレスに移動）を実行することで、サブルーチンを呼び出すことが可能となる。
【０１９９】
＜ＥＸＥＳＵＢ命令＞
次に、上述の制御プログラムの一つであるＥＸＥＳＵＢ命令について説明する。図２２（ａ）は、ＥＸＥＳＵＢ命令の構成の一例を示した図であり、同図（ｂ）は、図１９（ｂ）の空き領域に対してＥＸＥＳＵＢ命令を割り当てた命令データテーブルを示した図である。
【０２００】
ＥＸＥＳＵＢ命令は、上述のＣＡＬＬ命令同様にサブルーチンを呼び出すことが可能となる命令という点では同じであるが、命令データ／補足データの構造および制御プログラムデータに必要な記憶容量が異なる（詳細は後述する）。
【０２０１】
＜ＥＸＥＳＵＢ命令／命令データ＞
ＥＸＥＳＵＢ命令の命令データは、本実施形態では、最上位ビット７（ＭＳＢ）から最下位ビット０（ＬＳＢ）の順番で、ビット７の０（固定値）、ビット６の０（固定値）、ビット５のα（可変値）、ビット４の１（固定値）、ビット３の１（固定値）、ビット２のβ（可変値）、ビット１のγ（可変値）、ビット０のδ（可変値）の合計８ビット（１バイト）で構成されている。すなわち、ＥＸＥＳＵＢ命令は上述の可変値を変えることによって定義されるパターン（２の４乗＝１６パターン）の命令データとなる。なお、ビット５のα、ビット２のβ、ビット１のγおよびビット０のδの合計４ビットのデータであるｍは、０Ｈ〜ＦＨの数値範囲を表現可能であり、呼び出すサブルーチンの先頭アドレスを識別可能な識別情報（バイナリ形式）の一部である。
【０２０２】
また、ＥＸＥＳＵＢ命令の命令データは、上述の通り、命令データテーブルのうちの同図（ｂ）に示す太線で囲った領域、すなわち、上位ビット１Ｈ（０００１Ｂ）と下位ビット８Ｈ（１０００Ｂ）〜ＦＨ（１１１１Ｂ）の組合せと、上位ビット３Ｈ（００１１Ｂ）と下位ビット８Ｈ（０１１１Ｂ）〜ＦＨ（１１１１Ｂ）の組合せからなる空き領域（従来、命令データが割り当てられていない、または、割り当てられていた命令データが削除された領域）に割り当てられる。
【０２０３】
なお、上述の通り、ＥＸＥＳＵＢ命令の命令データが、可変値のビットと可変値のビットの間に、固定値のビットが入るように構成されていることにより、ＥＸＥＳＵＢ命令の命令データをグループ化しつつ、上述の空き領域に割り当てることが可能になる。よって、ＥＸＥＳＵＢ命令データの機械語のチェックを簡便となり、コーディングミスを抑制することができる。
【０２０４】
さらに、上述の通り、ＥＸＥＳＵＢ命令の命令データが、１または複数の固定値のビット（例えば、上記のビット４、ビット３）を挟んで上位にある可変値のビット数（例えば、１（上記のビット５））と比較して当該固定値のビットを挟んで下位にある可変値のビット数（例えば、３（上記のビット２、ビット１、ビット０））が大きくなる（記憶容量が大きくなる）ように構成されていることにより、ＥＸＥＳＵＢ命令の命令データをグループ化しつつも、きめ細かく上述の空き領域に割り当てることが可能になる。よって、限られたハードウェア資源（例えば、１バイトで定義可能なパターン（２５６パターン））を有効利用することができ、命令データの圧縮によるＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。なお、１または複数の固定値のビットを挟んで下位にある可変値のビット数と比較して当該固定値を挟んで上位にある可変値のビット数が大きくなる（記憶容量が大きくなる）ように構成した場合であっても、上述の効果を奏する。
【０２０５】
なお、上述の可変値α、β、γおよびδとＥＸＥＳＵＢ命令の命令データのビット７〜０の対応関係は上述の対応関係に限らず、例えば、ビット４に可変値αを対応させ、同様に、ビット２に可変値β、ビット１に可変地γ、ビット０に可変値δを対応させてもよく、上述した対応関係であればよい。
【０２０６】
さらに、命令データを構成する可変値α、β、γおよびδの順序は、任意の順序としてもよいが、上述の順序（上位ビットから順にα、β、γ、δ）、すなわち、後述するアドレスｍｎのｍを上位ビットからα、β、γ、δの順に並べることで定義可能になる順序とすることで、ＥＸＥＳＵＢ命令データの機械語のチェックを簡便となり、コーディングミスを抑制することができる。
【０２０７】
＜ＥＸＥＳＵＢ命令／補足データ＞
ＥＸＥＳＵＢ命令の補足データは、本実施形態では、００Ｈ〜ＦＦＨの数値範囲を示す８ビットのデータであるｎで構成されている。
よって、ＥＸＥＳＵＢ命令は、命令データに含まれる４ビットのデータであるｍと、８ビットの補足データであるｎを、この順番で並べて（ｍを上位、ｎを下位として）構成される合計１２ビットのアドレスｍｎによって定義可能なアドレス領域（００００Ｈ〜０ＦＦＦ）に先頭アドレスを持つサブルーチンを呼び出すことができる命令となる。すなわち、ｎは呼び出すサブルーチンの先頭アドレスを識別可能な識別情報（バイナリ形式）から、当該識別情報の一部（ｍ）を除いた情報の少なくとも一部である。
【０２０８】
＜ＥＸＥＳＵＢ命令／サブルーチンの呼び出し＞
図２３は、ＥＸＥＳＵＢ命令によるアドレスの移動の一例を概念的に示した図である。本実施形態では、ｍ（４ビットのデータ）は、同図（ａ）に示すように、ＲＯＭ領域のアドレス００００Ｈ〜０ＦＦＦＨのうち、上位１バイトの下位４ビット（０Ｈ〜ＦＨ）を示し、ｎ（８ビットのデータ）は、同図（ｂ）に示すように、上位アドレスｍによって表現される１００Ｈ単位の記憶領域（０ｍ００Ｈ〜０ｍＦＦＨ：ｍ＝０Ｈ〜ＦＨ）を１ブロックとしたときに、当該１ブロック内のアドレス（００Ｈ〜ＦＦＨ）を示す値である。
【０２０９】
なお、移動先のアドレスを設定可能なアドレス領域を、ｎまたはｍのいずれのデータを上位アドレスのデータとして定義しても、後述する制御プログラムデータの削減の効果は得られるが、上述の通り、命令データに含まれるｍを上位アドレスのデータとして定義することで、図２３（ａ）に示すように、アドレス領域に対してＥＸＥＳＵＢ命令の命令データをグループ化して対応付けることができ、コーディングミスを抑制することができる。
【０２１０】
また、ＥＸＥＳＵＢ命令の命令データは、呼び出すサブルーチンの先頭アドレスの一部を構成するデータであるｍを含んで構成されていることから、移動先のアドレスデータを間違ってしまった場合であっても、間違ってしまったデータが命令データに含まれていれば、制御プログラムの実行が停止されるため、コーディングミスを抑制することができる。
【０２１１】
図２４は、ＥＸＥＳＵＢ命令によるサブルーチンの先頭アドレスの呼び出しの一例を示したものであり、図２５は、ＥＸＥＳＵＢ命令の命令データと補足データの一例を示した図である。
【０２１２】
例えば、実行中の制御プログラムのアドレスが０７００Ｈで、移動先のサブルーチンの先頭アドレスが０３ＦＦＨの場合を挙げる。この制御プログラムをＣＡＬＬ命令で表現すると、上述の通り、図２４の符号Ｘ'で示す両者の相対アドレス（移動元のアドレスと移動先のアドレスの差）は、０３０１Ｈ（＝０７００Ｈ−０３ＦＦＨ）であり、この相対アドレスは２バイトのデータで表現可能であり、１バイトの命令データと２バイトの補足データで合計３バイトの制御プログラムデータが必要である。
【０２１３】
一方、この制御プログラムをＥＸＥＳＵＢ命令で表現すると、移動先のアドレスへの移動は概念的にＸ''で示すものとなり、この相対アドレスは、１バイトのデータで表現可能な００ＦＦＨ（＝０３ＦＦＨ−０３００Ｈ）となる。すなわち、ＥＸＥＳＵＢ命令は、図２５（ａ）に示すように、０００１１０１１Ｂで表される１バイトの命令データと、１１１１１１１１Ｂで表される１バイトの補足データで合計２バイトの制御プログラムデータが必要となる。
【０２１４】
また、実行中の制御プログラムのアドレスが０７００Ｈで、呼び出し先のサブルーチンの先頭アドレスが０７５ＦＨの場合を挙げる。この場合は、この制御プログラムがＣＡＬＬ命令またはＥＸＥＳＵＢ命令のいずれで表現する場合であっても、上述の通り、図２４の符号Ｙ'で示すように、両者の相対アドレスは、１バイトで表現可能な００５ＦＨ（＝０Ｃ５ＦＨ−０Ｃ００Ｈ）であり、この相対アドレスは１バイトのデータで表現可能であるが、この制御プログラムをＣＡＬＬ命令で表現すると、１バイトの命令データと２バイトの補足データで合計３バイトの制御プログラムデータが必要となる。
【０２１５】
一方、この制御プログラムをＥＸＥＳＵＢ命令で表現すると、図２５（ｂ）に示すように、０００１１１１１Ｂで表される１バイトの命令データと、０１０１１１１１Ｂで表される１バイトの補足データの合計２バイトの制御プログラムデータが必要となり、上述のＣＡＬＬ命令よりも、１命令当りのデータを１バイト削減することができる。
【０２１６】
よって、ＥＸＥＳＵＢ命令を実行するための制御プログラムは、移動先のアドレス（１２ビットで定義可能な記憶領域（００００Ｈ〜０ＦＦＦＨ）内の任意のアドレス）に関わらず、２バイトの制御プログラムデータが必要となり、上述のＣＡＬＬ命令よりも、１命令当りの制御プログラムデータを１バイト削減することができる。
【０２１７】
すなわち、サブルーチンを呼び出す制御プログラムに上述のＥＸＥＳＵＢ命令を用いることで、従来のサブルーチンを呼び出す制御プログラム（例えば、ＣＡＬＬ命令）を圧縮することができ、ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域に記憶されている従来の制御プログラムデータを圧縮することが可能となる。
【０２１８】
なお、ＥＸＥＳＵＢ命令を実行する際にＣＰＵ３０４は、具体的に、ＰＣレジスタ（プログラムカウンタ）に記憶されているデータ（２バイト）をスタックエリアに記憶させる処理を実行した後に、ＥＸＥＳＵＢ命令を実行するための補足データ（移動先のサブルーチンの先頭アドレスを示すデータ（２バイト））をＰＣレジスタ（プログラムカウンタ）に記憶させる処理（サブルーチンの先頭アドレスに移動）を実行することで、サブルーチンを呼び出すことが可能となる。
【０２１９】
また、サブルーチンを呼び出す制御プログラムに上述のＥＸＥＳＵＢ命令を用いることで、上述制御プログラムの圧縮に起因して従来（例えば、ＣＡＬＬ命令）よりもサブルーチンを呼び出す制御プログラムの処理速度を向上させる（ステート数を少なくする）ことができる。
【０２２０】
さらに、上述のように、ＲＯＭ領域は、上述のＥＸＥＳＵＢ命令によって呼び出すことができる領域（本実施形態では、００００Ｈ〜０ＦＦＦＨ）に対応するＲＯＭ３０６の記憶領域に、全ての制御プログラムデータが記憶されるようにＲＯＭ制御領域（本実施形態では、００００Ｈ〜０ＢＢ１Ｈ）を設け、少なくとも、上述のＥＸＥＳＵＢ命令によって呼び出すことができる領域（本実施形態では、００００Ｈ〜０ＦＦＦＨ）から、制御プログラムデータが記憶されているＲＯＭ制御領域（本実施形態では、００００Ｈ〜０ＢＢ１Ｈ）を除いた領域（本実施形態では、０ＢＢ１Ｈ〜０ＦＦＦＨ）を、非使用領域となるように構成されるとともに、非使用領域の後にＲＯＭデータ領域が続くように構成されている。
【０２２１】
このようにＲＯＭ領域を構成した遊技台において、サブルーチンを呼び出す制御プログラムに上述のＥＸＥＳＵＢ命令を用いる（ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域にＥＸＥＳＵＢ命令の制御プログラムデータを記憶する）ことで、ＣＰＵ３０４が制御プログラムデータおよび非使用データを除くデータを命令データとして直接読み込むことがないため、補足データのコーディングミスによるＣＰＵ３０４の誤作動を防止できる場合がある。
【０２２２】
＜制御プログラムの一例＞
図２６は、上述の主制御部タイマ割込処理の制御プログラムの一例を示したプログラムリストである。なお、「＊＊」はＥＸＥＳＵＢ命令の補足データを示す。
【０２２３】
ＣＰＵ３０４は、タイマ割込み処理を開始すると、まずＷＤＴをリスタートする処理を実行し、所定の処理（詳細は省略）を実行し、その後、ＥＸＥＳＵＢ命令（１）〜（１９）を用いて、それぞれ、以下のサブルーチンを読み出す処理を実行する。入力ポート状態更新処理、基本乱数初期値更新処理、基本乱数更新処理、演出乱数更新処理、タイマ更新処理、入賞口カウンタ更新処理、入賞受付処理、払出要求数送信処理、普図状態更新処理、普図関連抽選処理特図先読み制御処理、特図２状態更新処理、特図１状態更新処理、特図２関連抽選処理、特図１関連抽選処理、コマンド設定送信処理、外部出力信号設定処理、デバイス監視処理、を実行し、その他の処理（詳細は省略）を実行する。なお、詳細は省略するが、上述のＥＸＥＳＵＢ命令（１）〜（１９）によって呼び出されるサブルーチンの先頭アドレスはＲＯＭ制御領域（本実施形態では、００００Ｈ〜０ＢＢ０Ｈ）に含まれている。
【０２２４】
このように、タイマ割込み処理におけるサブルーチンを呼び出す制御プログラムに上述のＥＸＥＳＵＢ命令を用いる（ＲＯＭ制御領域のうちタイマ割り込み処理の領域に対応するＲＯＭ３０６の記憶領域にＥＸＥＳＵＢ命令の制御プログラムデータを記憶する）ことで、タイマ割込み処理を安定化させることができる。
【０２２５】
ところで、遊技台の開発では、一般的に従来の制御プログラムの一部を変更（削除や追加など）することで新たな遊技台を開発している。特に、遊技制御の安定化を図るためにできるだけ制御プログラムの変更は避けることが望まれる。
【０２２６】
よって、ＲＯＭ領域（例えば、タイマ割込み処理の領域）におけるサブルーチンを呼び出す制御プログラムすべてに、上述のＥＸＥＳＵＢ命令を用いる必要はなく、必要（例えば、上述の制御プログラムデータの圧縮の要求の有無）に応じて適宜用いればよい。
さらに、上述のＥＸＥＳＵＢ命令は、従来の１バイトの命令データと２バイトの補足データで構成される３バイト命令の制御プログラムデータ（例えば、ＣＡＬＬ命令）を、１バイトの命令データと１バイトの補足データで構成される２バイト命令の制御プログラムデータに圧縮した制御プログラムであるが、命令データと補足データで構成される制御プログラムを圧縮する制御プログラムであればよい。すなわち、ＥＸＥＳＵＢ命令は、呼び出すサブルーチンの先頭アドレスを識別可能な識別情報（バイナリ形式）の一部を含んで構成される命令データと、当該識別情報から当該命令データに含まれた識別情報を除いた情報の少なくとも一部で構成される補足データとで構成される制御プログラムであればよく、さらに言えば、上述の命令データおよび補足データそれぞれが、ＣＰＵ３０４が一回の処理で読み込むデータ長（例えば、８ビット）の整数倍であればよい。
【０２２７】
＜ＲＯＭ制御領域の変形例＞
図２７は、ＲＯＭ領域が、上述のＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）によって呼び出すことができる領域（本実施形態では、００００Ｈ〜０ＦＦＦＨ）よりも、制御プログラムデータが記憶されているＲＯＭ制御領域（本実施形態では、００００Ｈ〜１１Ｂ８Ｈ）が広くなるように構成されている場合を示した図である。また、図２８（ａ）および（ｂ）は、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）によって呼び出すことができるサブルーチンの先頭アドレスの領域を拡張した場合の一例を示した図である。
【０２２８】
例えば、図２７に示すように、ＲＯＭ制御領域（本実施形態では、００００Ｈ〜１１Ｂ８Ｈ）が、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）で呼び出すことができるサブルーチンの先頭アドレスの領域（本実施形態では、００００Ｈ〜０ＦＦＦＨ）より広い場合、ＲＯＭ制御領域は、ＥＸＥＳＵＢ対象領域（本実施形態では、００００Ｈ〜０ＦＦＦＨ）と、ＥＸＥＳＵＢ非対象領域（例えば、１０００Ｈ〜１１Ｂ８Ｈ）で構成されることとなる。
【０２２９】
この場合、ＥＸＥＳＵＢ非対象領域に対応するアドレスを先頭アドレスに持つサブルーチンを呼び出す命令に上述のＣＡＬＬ命令を用いて補ったとしても、上述の通り、遊技の興趣を高めることを可能にしつつ、安定した遊技制御を実現することは可能である。
【０２３０】
しかし、図２８に示すように、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）によって呼び出すことができるサブルーチンの先頭アドレスの領域を拡張することで、上述の効果をより高めることが可能になる。
【０２３１】
具体的な手段としては、図２８（ａ）および（ｂ）に示すように、後述する可変値σを用いて、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）に要する記憶容量を維持しつつ、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データを拡張するものである。なお、以下は、同図に新たに追加した可変値σについて説明することとする。
【０２３２】
可変値σは、ＥＸＥＳＵＢ命令（後述のＥＸＥＳＵＢｍ'ｎ）を拡張するために用いられ、図２８（ａ）に示すように、ＥＸＥＳＵＢ命令（後述のＥＸＥＳＵＢｍ'ｎ）の命令データ（本実施形態では、８ビット）のビット６を構成する値であり、呼び出すサブルーチンの先頭アドレスを示すアドレスｍ'ｎのうちｍ'の値に応じて変化するものである。
【０２３３】
また、命令データテーブルには、図２８（ｂ）に示すように、可変値σによって拡張されたＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍ'ｎ）が、同図（ｂ）に示す太線で囲った領域、すなわち、上位ビット５Ｈ（０１０１Ｂ）と下位ビット８Ｈ（１０００Ｂ）および９Ｈ（１００１Ｂ）の組合せからなる空き領域に割り当てられている。
【０２３４】
ここで、ｍ'は、図２２（ａ）で示したｍと同一の役割を持つデータであるが、上述のｍがビット５のα、ビット２のβ、ビット１のγおよびビット０のδの合計４ビットのデータであったのに対して、ｍ'はビット６のσ、ビット５のα、ビット２のβ、ビット１のγおよびビット０のδの合計５ビットのデータである点が異なり、ｍ'は、００Ｈ〜１１Ｈの数値範囲を表現可能なデータであり、呼び出すサブルーチンの先頭アドレスを識別可能な識別情報（バイナリ形式）の一部である。
【０２３５】
このように、上述のＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データのビット６に可変値σを設けたＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍ'ｎ）を用いて、アドレスｍｎによって定義可能なアドレス領域（０００Ｈ〜ＦＦＦ）を拡張（アドレスｍ'ｎによって定義可能なアドレス領域を００００Ｈ〜１１ＦＦＨに）することで、上述のＥＸＥＳＵＢ非対象領域に対応するアドレスを先頭アドレスに持つサブルーチンをＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍ'ｎ）を用いて呼び出すことができる。
【０２３６】
なお、上述の可変値σ、α、β、γおよびδとＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍ'ｎ）の命令データのビット７〜０の対応関係は上述の対応関係に限らず、例えば、ビット５に可変値σを対応させ、同様に、ビット４に可変値α、ビット２に可変値β、ビット１に可変地γ、ビット０に可変値δを対応させてもよく、図２２を用いて説明した対応関係と同じであればよい。
【０２３７】
さらに、命令データを構成する可変値σ、α、β、γおよびδの順序は、任意の順序としてもよいが、上述の順序（上位ビットから順にσ、α、β、γ、δ）、すなわち、後述するアドレスｍ'ｎのｍ'を上位ビットからσ、α、β、γ、δの順に並べることで定義可能になる順序とすることで、ＥＸＥＳＵＢ命令データの機械語のチェックを簡便となり、コーディングミスを抑制することができる。
【０２３８】
このように、上述のＲＯＭ制御領域（例えば、００００Ｈ〜１１Ｂ８Ｈ）に対応させて上述のＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍ'ｎ）の命令データを設けることで、ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。
【０２３９】
さらに、上述のように、ＲＯＭ領域は、上述のＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍ'ｎ）によって呼び出すことができる領域（本実施形態では、００００Ｈ〜１１ＦＦＨ）よりも、制御プログラムデータが記憶されているＲＯＭ制御領域を除いた領域（本実施形態で
ところで、図１７および図２７で示したように、制限されたＲＯＭ制御領域の中でも開発された遊技台ごとに設けられたＲＯＭ制御領域が異なる場合があるが、このような遊技台それぞれに対して、上述のＥＸＥＳＵＢｍｎまたはＥＸＥＳＵＢｍ'ｎそれぞれを命令データとして備えているＣＰＵを使い分けて開発を行うことは、開発工数およびコストの観点からも無駄であるとともに、コーディングミスの原因ともなり、安定した遊技制御の実現を困難にしてしまうこととなる。よって、図１７で示したＲＯＭ制御領域を持つ遊技台であっても、ＥＸＥＳＵＢ命令にＥＸＥＳＵＢｍ'ｎを用いた方が望ましい。
【０２４０】
この場合であっても、ＥＸＥＳＵＢｍ'ｎによって呼び出すことができる領域（本実施形態では、００００Ｈ〜１１ＦＦＨ）よりも、制御プログラムデータが記憶されているＲＯＭ制御領域（本実施形態では、００００Ｈ〜０ＢＢ１Ｈ）が狭くなるように構成されているため、少なくとも、上述のＥＸＥＳＵＢｍ'ｎによって呼び出すことができる領域から、制御プログラムデータが記憶されているＲＯＭ制御領域を除いた領域（本実施形態では、０ＢＢ１Ｈ〜１１ＦＦＨ）を、非使用領域で構成するとともに、非使用領域の後にＲＯＭデータ領域が続くように構成すればよい。
【０２４１】
＜特図状態更新処理、普図状態更新処理＞
次に、図２９を用いて、上述の特図２状態更新処理（ステップＳ２２５）、特図１状態更新処理（ステップＳ２２７）、普図状態更新処理（ステップＳ２２１）の制御プログラムの一部について説明する。なお、同図（ａ）は特図２状態更新処理および特図１状態更新処理の制御プログラムの一部を抜き出したものであり、同図（ｂ）は普図状態更新処理の制御プログラムの一部を抜き出したものである。
【０２４２】
例えば、同図（ａ）に示す特図状態更新処理では、まず最初に、「ＬＤ  Ｌ，Ｌｏｗ．vbTokuzuStatus」の命令を実行することによって、同図（ｄ）においてvbTokuzuStatusとして定義されたアドレス（この例では、ＲＡＭ３０８に設けた特図ステータス用記憶領域を示すアドレスである７Ｅ６０Ｈ）の下位バイト（この例では、６０Ｈ）をＬレジスタに記憶する。
【０２４３】
続いて、「ＪＰ  moReadMemory」の命令を実行することによって、同図（ｃ）に示すmoReadMemory（メモリ読出し処理）に移動し、当該処理を実行する。このメモリ読み出し処理では、まず最初に「ＬＤ  Ｈ，７ＥＨ」の命令を実行することによってＨレジスタに７ＥＨを記憶した後、「ＬＤ  Ａ，（ＨＬ）」の命令を実行することによってＨＬレジスタで示されるアドレス（この例では、７Ｅ６０Ｈ）の内容（この例では、特図ステータス）をＡレジスタに記憶する。続いて、「ＡＮＤ  Ａ」の命令を実行した後に、読み出し元の特図状態更新処理に戻る。なお、同図（ｂ）に示す普図状態更新処理も共通のサブルーチンであるmoReadMemory（メモリ読出し処理）を利用することによって、ＲＡＭ３０８の普図ステータス用記憶領域に記憶された普図ステータスの読みだしを行う、
このように、同図（ｃ）に示す従来のメモリ読出し処理を利用した場合には、「ＬＤ  Ｈ，７ＥＨ」という命令により、特図ステータス用記憶領域や普図ステータス用記憶領域のアドレスの上位（７ＥＨ）が解析され、不正行為を誘発するおそれがある。このため、本実施形態では、同図（ｃ）に示す従来のメモリ読出し処理に替えて、同図（ｅ）に示すメモリ読出し処理を採用する。
【０２４４】
この本実施形態に係るメモリ読出し処理では、「ＬＤ  Ａ，Ｔ」の命令を実行することによって、Ｔレジスタの値をＡレジスタに記憶するが、上述のように、Ｔレジスタには特定の値（７ＥＨ）が記憶されているため、Ａレジスタには７ＥＨが記憶される。以降の処理は従来の処理と同様であるが、イミディエイト値を利用する代わりにＴレジスタを利用しているため、特図ステータス用記憶領域や普図ステータス用記憶領域のアドレスの上位（７ＥＨ）が解析されるおそれが少なく、不正行為を未然に防止できる場合がある。また、イミディエイト値を利用した場合には、例えば、７ＥＨを７ＦＨと間違って入力するなど、コーディングミスの可能性が高くなるが、Ｔレジスタを利用すればコーディングミスを未然に防止できる場合がある。
【０２４５】
図３０は、図２９（ｃ）に示す従来のメモリ読出し処理の機械語と、図２９（ｅ）に示す本実施形態に係るメモリ読出し処理の機械語と、を比較した図である。従来のメモリ読出し処理における１行目の「ＬＤ  Ｈ，７ＥＨ」命令をアセンブルした場合、機械語は「２６７ＥＨ」となり「７ＥＨ」を含むため、従来のメモリ読出し処理では、特図ステータス用記憶領域や普図ステータス用記憶領域のアドレスの上位（７ＥＨ）が解析されてしまうおそれがある。一方、本実施形態のメモリ読出し処理における１行目の「ＬＤ  Ａ，Ｔ」命令をアセンブルした場合、機械語は「ＥＤ０１Ｈ」となり「７ＥＨ」を含まないため、本実施形態のメモリ読出し処理では、特図ステータス用記憶領域や普図ステータス用記憶領域のアドレスの上位（７ＥＨ）が解析されるおそれが極めて低く、不正行為を未然に防止できる場合がある。
【０２４６】
＜特図１関連抽選処理＞
次に、図３１を用いて、上述の主制御部タイマ割込処理における特図１関連抽選処理について説明する。なお、同図は、特図１関連抽選処理の流れを示すフローチャートである。
【０２４７】
ステップＳ１００１では、特別図柄乱数移行処理を行う。この特別図柄乱数移行処理では、一次記憶した乱数値を、ＲＡＭ３０８に設けた特別図柄関連抽選乱数の格納領域に移行（記憶）する。ステップＳ１００２では、特別図柄当り抽選処理を行う。この特別図柄当り抽選処理では、上述の特図乱数値（特図１乱数値、特図２乱数値）と、ＲＯＭ３０６に予め記憶している特別図柄抽選データを比較する抽選を行い、当該抽選結果に応じて、上述の１５Ｒ大当りフラグ、２Ｒ大当たりフラグ、第１小当たりフラグ、第２小当たりフラグ、第１はずれフラグ、第２はずれフラグ、特図確率変動フラグ、および普図確率変動フラグなどを設定し、特別図柄遊技状態を変動中に設定する。
【０２４８】
ステップＳ１００３では、表示図柄抽選処理を行う。この表示図柄抽選処理では、ＲＡＭ３０８に記憶している表示図柄判定乱数と、ＲＯＭ３０６に予め記憶している表示図柄抽選データを比較する抽選を行い、当該抽選結果に応じて、１５Ｒ特別大当たり図柄（特図Ａ）、１５Ｒ大当たり図柄（特図Ｂ）、突然確変図柄（特図Ｃ）、突然時短図柄（特図Ｄ）、隠れ確変図柄（特図Ｅ）、突然通常図柄（特図Ｆ）、第１小当たり図柄（特図Ｇ）、第２小当たり図柄（特図Ｈ）、第１はずれ図柄（特図Ｉ）、および第２はずれ図柄（特図Ｊ）のいずれか一つの図柄を設定する。
【０２４９】
ステップＳ１００４では、特別図柄変動時間抽選処理を行う（詳細は後述する）。ステップＳ１００５では、特別図柄変動時間設定処理を行う。この特別図柄変動時間設定処理では、上記ステップＳ１００４の特別図柄変動時間抽選処理で取得した変動パターン（パターン番号）に応じたタイマを特別図柄変動タイマとして設定（記憶）する。ステップＳ１００６では、特別図柄保留内情報移行処理を行う。この特別図柄保留内情報移行処理では、特別図柄保留内情報を変動順が先の格納領域に移行（記憶）した後に処理を終了する。
【０２５０】
＜主制御部のデータテーブルと変数記憶領域＞
次に、図３２および図３３を用いて、主制御部３００のＲＯＭ３０６に記憶されるデータテーブルの一部と、ＲＡＭ３０８に設けられる変数記憶領域の一部について説明する。
【０２５１】
＜テーブル選択用テーブル＞
図３２（ａ）は、テーブル選択用テーブルの一例を示した図であり、図３３は、主制御部３００のＲＯＭ３０６に記憶されるデータテーブルの定義の一部と、ＲＡＭ３０８に設けられる変数格納領域の定義の一部を示したプログラムリストの一例である。
【０２５２】
図３２（ａ）に示すテーブル選択用テーブルには、後述する第１変動パターン選択テーブルが記憶されるＲＯＭ３０６のアドレスを示す飛先アドレスが、特図変動遊技の保留数毎に０個用〜３個用の４つに区分けされて記憶されている。具体的には、ＲＯＭデータ領域のアドレス１６００Ｈ〜１６０１Ｈに対応するＲＯＭ３０６の２バイトの記憶領域には、保留数が０の場合に参照する第１変動パターン選択テーブルの飛先アドレスとして１７４ＦＨが記憶されている（１６００    ＤＥＦＢ  １７４ＦＨ）。また、ＲＯＭデータ領域のアドレス１６０２Ｈ〜１６０３Ｈに対応するＲＯＭ３０６の２バイトの記憶領域には、保留数が１の場合に参照する第１変動パターン選択テーブルの飛先アドレスとして１７４ＦＨが記憶されている（１６０２    ＤＥＦＢ  １７４ＦＨ）。また、ＲＯＭデータ領域のアドレス１６０４Ｈ〜１６０５Ｈに対応するＲＯＭ３０６の２バイトの記憶領域には、保留数が２の場合に参照する第１変動パターン選択テーブルの飛先アドレスとして１７４ＦＨが記憶されている（１６０４    ＤＥＦＢ  １７４ＦＨ）。また、ＲＯＭデータ領域のアドレス１６０６Ｈ〜１６０７Ｈに対応するＲＯＭ３０６の２バイトの記憶領域には、保留数が３の場合に参照する第１変動パターン選択テーブルの飛先アドレスとして１７５５Ｈが記憶されている（１６０６    ＤＥＦＢ  １７５５Ｈ）。
【０２５３】
＜第１変動パターン選択テーブル＞
図３２（ｂ）は、第１変動パターン選択テーブルの一例を示した図である。この第１変動パターン選択テーブルには、当該テーブルのアドレスと、後述する第２変動パターン選択テーブルが記憶されたアドレスとの差（オフセット）と、乱数の個数が記憶されている。具体的には、ＲＯＭデータ領域のアドレス１７５０Ｈに対応するＲＯＭ３０６の１バイトの記憶領域には、オフセットとしてＡＥＨが記憶されているとともに、このアドレスに連続する１７５１Ｈに対応するＲＯＭ３０６の１バイトの記憶領域には、乱数の個数として２０が記憶され（１７５０Ｈ    ＤＥＦＢ  ＡＥＨ，２０）、以降のＲＯＭデータ領域のアドレス１７５２Ｈ〜１７５９Ｈに対応するＲＯＭ３０６の記憶領域には、図３２（ｂ）および図３３に示すように、１バイト長のオフセットと、１バイト長の乱数の個数が交互に連続して記憶されている。なお、第１変動パターン選択テーブルにおいて乱数の個数は１０進数で示している。
【０２５４】
＜第２変動パターン選択テーブル＞
図３２（ｃ）は、第２変動パターン選択テーブルの一例を示した図である。この第２変動パターン選択テーブルには、パターン番号と、乱数の個数が記憶されている。具体的には、ＲＯＭデータ領域のアドレス１８００Ｈに対応するＲＯＭ３０６の１バイトの記憶領域には、パターン番号として０１Ｈが記憶されているとともに、このアドレスに連続する１８０１Ｈで示される１バイトの領域には、乱数の個数として２５５が記憶され（１８００Ｈ    ＤＥＦＢ  ０１Ｈ，２５５）、以降のＲＯＭデータ領域のアドレス１８０２Ｈ〜１８０ＦＨに対応するＲＯＭ３０６の記憶領域には、図３２（ｃ）および図３３に示すように、１バイト長のパターン番号と、１バイト長の乱数の個数が交互に連続して記憶されている。なお、第２変動パターン選択テーブルにおいて乱数の個数は１０進数で示している。
【０２５５】
＜変数記憶領域＞
図３２（ｄ）は、ＲＷＭ領域のアドレス７Ｅ４０Ｈ〜７Ｅ４２Ｈに対応するＲＡＭ３０８の記憶領域に設けられる保留数記憶領域、乱数１記憶領域、乱数２記憶領域を示した図である。ＲＷＭ領域のアドレス７Ｅ４０Ｈに対応するＲＡＭ３０８の１バイトの記憶領域には保留数記憶領域が設けられ（７Ｅ４０    vbHoryuuSP1  ＤＥＦＳ  １）、この保留数記憶領域には保留数が記憶される。また、アドレス７Ｅ４１Ｈに対応するＲＡＭ３０８の１バイトの記憶領域には乱数１記憶領域が設けられ（７Ｅ４１    vbRndHendou1  ＤＥＦＳ  １）、この乱数１記憶領域には乱数１が記憶される。また、アドレス７Ｅ４２Ｈに対応するＲＡＭ３０８の１バイトの記憶領域には乱数２記憶領域が設けられ（７Ｅ４２    vbRndHendou2  ＤＥＦＳ  １）、この乱数２記憶領域には乱数２が記憶される。
【０２５６】
＜特別図柄変動時間抽選処理＞
次に、図３４および図３５を用いて、上述の特図１関連抽選処理における特別図柄変動時間抽選処理について説明する。なお、図３４は、特別図柄変動時間抽選処理の流れを示すフローチャートであり、図３５は、特別図柄変動時間抽選処理のプログラムリストの一例である。
【０２５７】
ステップＳ１１０１では、演出用乱数取得処理を行う。この演出用乱数取得処理では、上述の特図１関連抽選処理で取得した特図１乱数値（０〜２５５）を、上述の乱数値１記憶領域（ＲＷＭ領域のアドレス７Ｅ４１Ｈ）に記憶し、上述の特図２関連抽選処理で取得した特図２乱数値（０〜２５５）を、上述の乱数値２記憶領域（ＲＷＭ領域のアドレス７Ｅ４２Ｈ）に記憶する。
【０２５８】
次のステップＳ１１０２では、上述のテーブル選択用テーブル（図３２（ａ））の先頭アドレス（本実施形態では、１６００Ｈ）を、ＨＬレジスタに転送する（ＬＤ  ＨＬ，tableSelectTable）。これにより、ＨＬレジスタに１６００Ｈが記憶される。
【０２５９】
次のステップＳ１１０３では、上述の保留数記憶領域（ＲＷＭ領域のアドレス７Ｅ４０Ｈ）に記憶された保留数を、Ａレジスタに転送する（ＬＤＴ  Ａ，（４０Ｈ)）。ここで、「ＬＤＴ  Ａ、（ｎ：イミディエイト値）」命令は、図３６に示すように、Ｔレジスタを上位、イミディエイト値を下位で示すアドレスのデータをＡレジスタにロードする命令である。本実施形態では、Ｔレジスタに７ＥＨを記憶しているため、「ＬＤＴ  Ａ，（４０Ｈ）」命令を実行した場合、Ｔレジスタ（７ＥＨ）を上位、イミディエイト値（４０Ｈ）を下位で示すアドレス（７Ｅ４０Ｈ）のデータ、すなわち保留数記憶領域に記憶された保留数がＡレジスタにロード（転送）される。例えば、保留数記憶領域に記憶された保留数が２の場合には、Ａレジスタに０２Ｈがロード（転送）される。
【０２６０】
次のステップＳ１１０４では、Ａレジスタの値にＡレジスタの値を加算する（ＡＤＤ  Ａ，Ａ）。先の例では、Ａレジスタの値（０２Ｈ）にＡレジスタの値（０２Ｈ）を加算することによってＡレジスタに０４Ｈが記憶される。次のステップＳ１１０５では、ＨＬレジスタにＡレジスタの値を加算する（ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ａ）。詳細は後述するが、ＡＤＤＴＷＯＯＮＥ命令（ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ａ）は、ＨＬレジスタに記憶された２バイト長の値に、Ａレジスタに記憶された１バイト長の値を加算するための命令である。先の例では、ＨＬレジスタ（１６００Ｈ）にＡレジスタの値（０４Ｈ）を加算することによってＨＬレジスタに１６０４Ｈが記憶される。
【０２６１】
次のステップＳ１１０６では、ＨＬレジスタが示すアドレスの値をＤＥレジスタに転送する（ＬＤＴＷＯ  ＤＥ，（ＨＬ））。ここで、「ＬＤＴＷＯ  ＤＥ，（ＨＬ）」命令は、図３６に示すように、ＨＬレジスタが示すアドレスのデータをＤＥレジスタにロードする命令である。先の例では、ＨＬレジスタが示すアドレス（１６０４Ｈ）の値（１７４ＦＨ）をＤＥレジスタに転送することによってＤＥレジスタには１７４ＦＨが記憶される。
【０２６２】
次のステップＳ１１０７では、ＤＥレジスタの値とＨＬレジスタの値を交換する（ＥＸ  ＤＥ，ＨＬ）。先の例では、ＤＥレジスタの値（１７４ＦＨ）とＨＬレジスタの値（１６０４Ｈ）を交換することによって、ＨＬレジスタには１７４ＦＨが記憶され、ＤＥレジスタには１６０４Ｈが記憶される。
【０２６３】
次のステップＳ１１０８では、上述の乱数１記憶領域に記憶された乱数１（特別図柄変動時間判定乱数１）をＡレジスタに転送する（ＬＤＴ  Ａ，（４１Ｈ)）。本実施形態では、Ｔレジスタに７ＥＨを記憶しているため、「ＬＤＴ  Ａ，（４１Ｈ）」命令を実行した場合、Ｔレジスタ（７ＥＨ）を上位、イミディエイト値（４１Ｈ）を下位で示すアドレス（７Ｅ４１Ｈ）のデータ、すなわち乱数１記憶領域に記憶された乱数１がＡレジスタにロード（転送）される。例えば、乱数１記憶領域に記憶された乱数１が２５０の場合には、Ａレジスタに２５０が記憶される。
【０２６４】
次のステップＳ１１０９では、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレスに格納された値をＢＣレジスタに転送する（ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ)）。詳細は後述するが、「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ)」命令は、ＨＬレジスタに記憶された２バイト長の値に１を加算し、加算後のＨＬレジスタの値で示されるアドレスに記憶された１バイト長の値を、ＢＣレジスタのうちの下位のＣレジスタに記憶した後に、ＨＬレジスタに記憶された２バイト長の値にさらに１を加算し、加算後のＨＬレジスタの値で示されるアドレスに記憶された１バイト長の値を、ＢＣレジスタのうちの上位のＢレジスタに記憶するための命令である。先の例では、ＨＬレジスタに記憶された２バイト長の値（１７４ＦＨ）に１を加算し、加算後のＨＬレジスタの値（１７５０Ｈ）で示されるアドレスに記憶された１バイト長の値（ＡＥＨ）を、ＢＣレジスタのうちの下位のＣレジスタに記憶した後に、ＨＬレジスタに記憶された２バイト長の値にさらに１を加算し、加算後のＨＬレジスタの値（１７５１Ｈ）で示されるアドレスに記憶された１バイト長の値（２０）を、ＢＣレジスタのうちの上位のＢレジスタに記憶する。
【０２６５】
次のステップＳ１１１０では、Ａレジスタの値からＢレジスタの値を減算する（ＳＵＢ  Ｂ）。先の例では、Ａレジスタの値（２５０）からＢレジスタの値（２０）を減算する。次のステップＳ１１１１では、ステップＳ１１１０の減算の結果、キャリーが発生したか否か、すなわち減算の結果が負の値になったかどうかを判定し、該当する場合にはステップＳ１１１２に進み、該当しない場合には該当するまでステップＳ１１０９〜Ｓ１１１１の処理を繰り返し実行する（ＪＰ  ＮＣ，ＬＯＯＰ０１）。先の例では、ステップＳ１１０９〜Ｓ１１１１の処理を３回繰り返すことによってキャリーが発生し、ステップＳ１１１２に進む際には、Ｂレジスタの値が８、Ｃレジスタ値がＢ０Ｈ、ＨＬレジスタの値が１７５５Ｈになる。
【０２６６】
次のステップＳ１１１２では、ＨＬレジスタの値にＣレジスタの値を加算する（ＡＤＤＴＷＯＯＮＥ）。先の例では、ＨＬレジスタの値（１７５５Ｈ）にＣレジスタの値（Ｂ０Ｈ）を加算することによってＨＬレジスタには１８０５Ｈが記憶される。次のステップＳ１１１３では、上述の乱数２記憶領域（本実施形態では、７Ｅ４２Ｈ）に記憶された乱数２（特別図柄変動時間判定乱数２）をＡレジスタに転送する（ＬＤＴ  Ａ，（４２Ｈ)）。本実施形態では、Ｔレジスタに７ＥＨを記憶しているため、「ＬＤＴ  Ａ，（４２Ｈ）」命令を実行した場合、Ｔレジスタ（７ＥＨ）を上位、イミディエイト値（４２Ｈ）を下位で示すアドレス（７Ｅ４２Ｈ）のデータ、すなわち乱数２記憶領域に記憶された乱数２がＡレジスタにロード（転送）される。例えば、乱数２が１４８の場合には、Ａレジスタに１４８が記憶される。
【０２６７】
次のステップＳ１１１４では、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレスに格納された値をＢＣレジスタに転送する（ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ)）。先の例では、ＨＬレジスタに記憶された２バイト長の値（１８０５Ｈ）に１を加算し、加算後のＨＬレジスタの値（１８０６Ｈ）で示されるアドレスに記憶された１バイト長の値（０４Ｈ）を、ＢＣレジスタのうちの下位のＣレジスタに記憶した後に、ＨＬレジスタに記憶された２バイト長の値にさらに１を加算し、加算後のＨＬレジスタの値（１８０７Ｈ）で示されるアドレスに記憶された１バイト長の値（１２８）を、ＢＣレジスタのうちの上位のＢレジスタに記憶する。
【０２６８】
次のステップＳ１１１５では、Ａレジスタの値からＢレジスタの値を減算する（ＳＵＢ  Ｂ）。先の例では、Ａレジスタの値（１４８）からＢレジスタの値（１２８）を減算する。次のステップＳ１１１６では、ステップＳ１１１５の減算の結果、キャリーが発生したか否か、すなわち減算の結果が負の値になったかどうかを判定し、該当する場合にはステップＳ１１１７に進み、該当しない場合には該当するまでステップＳ１１１４〜Ｓ１１１６の処理を繰り返し実行する（ＪＰ  ＮＣ，ＬＯＯＰ０２）。先の例では、ステップＳ１１１４〜Ｓ１１１６の処理を２回繰り返すことによってキャリーが発生し、ステップＳ１１１７に進む際には、Ｂレジスタの値が３２、Ｃレジスタの値が０５Ｈ、ＨＬレジスタの値が１８０９Ｈになる。ステップＳ１１１７では、その他の処理を行った後に処理を終了する。
【０２６９】
＜主制御部の特殊命令＞
次に、図３６および図３７を用いて、主制御部３００が備える特殊命令について説明する。なお、図３６は、主制御部３００が備える命令の一部と、その説明を示した図である。また、図３７（ａ）は、主制御部３００の命令データの上位ビットと下位ビットを示した図であり、同図（ｂ）は、命令データテーブルの一例を示した図である。
【０２７０】
＜特殊命令／ＬＤＴ命令＞
特殊命令の一つである「ＬＤＴ  Ａ、（ｎ：イミディエイト値）」命令は、上述のとおり、Ｔレジスタを上位、イミディエイト値を下位で示すアドレスのデータをＡレジスタにロードする命令であり、例えば、上述の特別図柄変動時間抽選処理のステップＳ１１０３では、「ＬＤＴ  Ａ、（４０Ｈ）」命令を実行することによって、Ｔレジスタ（７ＥＨ）を上位、イミディエイト値（４０Ｈ）を下位で示すアドレス（７Ｅ４０Ｈ）のデータ、すなわち保留数記憶領域に記憶された保留数をＡレジスタにロード（転送）している。
【０２７１】
また、図示はしないが、主制御部３００は、さらに、Ａレジスタに記憶されたデータを、Ｔレジスタを上位、イミディエイト値を下位で示すアドレスにロードするための「ＬＤＴ  （ｎ：イミディエイト値），Ａ」命令を備えている。一方、Ｔレジスタを上位、汎用レジスタ（例えば、Ｈレジスタ）を下位で示すアドレスのデータをＡレジスタにロードする命令（例えば、「ＬＤＴ  Ａ，Ｈ」のような命令）や、Ａレジスタに記憶されたデータを、Ｔレジスタを上位、汎用レジスタ（例えば、Ｈレジスタ）を下位で示すアドレスにロードするための命令（例えば、「ＬＤＴ  Ｈ，Ａ」のような命令）は備えていない。
【０２７２】
すなわち、ＬＤＴ命令によって指定可能なアドレスの下位バイトは、イミディエイト値に限定されており、汎用レジスタを指定することは禁止されている（機械語にアセンブルされる過程でエラーとなりアセンブルすることができない）。このため、ＬＤＴ命令では、プログラムリストの確認などを行う際にアドレスの確認が容易となる上に、Ｔレジスタの値（アドレスの上位バイト）を不用意に変更することができなくなる結果、コーディングミスや不具合の発生を減少させることができる場合がある。
【０２７３】
＜特殊命令／ＬＤＴＷＯ命令＞
特殊命令の一つである「ＬＤＴＷＯ  ＯＰ１，（ＯＰ２）」命令は、上述のとおり、第２オペランドＯＰ２で示される２つのレジスタが示すアドレスのデータを第１オペランドＯＰ１で示される２つのレジスタにロードする命令であり、「ＬＤＴＷＯ  （ＯＰ２），ＯＰ１」命令は、第２オペランドＯＰ２で示される２つのレジスタが示すアドレスに第１オペランドＯＰ１で示される２つのレジスタのデータをロードする命令であり、例えば、上述の特別図柄変動時間抽選処理のステップＳ１１０６では、「ＬＤＴＷＯ  ＤＥ，（ＨＬ）」命令を実行することによって、ＨＬレジスタが示すアドレス（１６０４Ｈ）の値（１７４ＦＨ）をＤＥレジスタにロード（転送）してＤＥレジスタには１７４ＦＨを記憶している。ＯＰ２がＨＬレジスタではないＢＣレジスタまたはＤＥレジスタである場合、ＯＰ１がＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタ、ＩＸレジスタ、ＩＹレジスタとなり、ＯＰ２がＨＬレジスタである場合のみ、ＯＰ１がＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタ、ＡＣレジスタ、ＡＥレジスタ、ＢＤレジスタ、ＩＸレジスタ、ＩＹレジスタとなる。ＬＤＴＷＯ命令は、ＡレジスタやＨＬレジスタを保護するのに適している。
【０２７４】
また、ＬＤＴＷＯ命令では、必要なステート数は１４ステート、必要なバイト数は２バイトである。一方、従来の命令によってＬＤＴＷＯ命令と同様の処理を行う場合には、図３６に示すように、必要なステート数は１４ステート（＝４＋６＋４）、必要なバイト数は３バイト（＝１＋１＋１）である。したがって、ＨＬレジスタが示すアドレスのデータをＤＥレジスタにロードする場合にＬＤＴＷＯ命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているＲＯＭの記憶領域を有効に利用することができる場合がある。また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。
【０２７５】
＜特殊命令／ＡＤＤＴＷＯＯＮＥ命令＞
特殊命令の一つであるＡＤＤＴＷＯＯＮＥ命令（ＡＤＤＴＷＯＯＮＥ  ＯＰ１，ＯＰ２）は、第１オペランドＯＰ１で示される２つのレジスタに記憶された２バイト長の値に、第２オペランドＯＰ２で示されるレジスタに記憶された１バイト長の値（または、第２オペランドＯＰ２で示される１バイト長のイミディエイト値）を加算するための命令である。ＡＤＤＴＷＯＯＮＥ命令の命令コードの上位１バイトは固定値（この例ではＥＤＨ)とし、下位バイトは、命令データテーブルの上位ビット４Ｈ（０１００Ｂ）と下位ビット０Ｈ（００００Ｂ）〜２Ｈ（００１０Ｂ）の組合せと、命令データテーブルの上位ビット４Ｈ（０１００Ｂ）と下位ビット４Ｈ（０１００Ｂ）〜７Ｈ（０００１Ｂ）、９Ｈ（１００１Ｈ）の組合せに割り当てている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令（隠し命令）を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。なお、本実施形態では、特殊命令の命令コードを２バイト長としているが、命令コードのバイト長は特に限定されず、例えば１バイト長でもよい。また、ＡＤＤＴＷＯＯＮＥ命令のうちの特定の命令（例えば、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ａ」命令）のみ、他のＡＤＤＴＷＯＯＮＥ命令よりも命令コードが短く（例えば、１バイト長）てもよい。また、「ＡＤＤＴＷＯＯＮＥ  ＯＰ１，Ａ」命令のうちの特定の命令（例えば、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ａ」命令）のみ、他のＡＤＤＴＷＯＯＮＥ命令よりも命令コードが短く（例えば、１バイト長）てもよい。この場合、該命令の利便性を高めることができる。
【０２７６】
「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｃ」命令を例に挙げると、第１オペランドで示されるペアレジスタＨＬに記憶された２バイト長の値に、第２オペランドで示されるＣレジスタに記憶された１バイト長の値を加算する場合に使用される命令であり、例えば、上述の特別図柄変動時間抽選処理のステップＳ１１１２では、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｃ」を実行することによって、ＨＬレジスタに記憶された２バイト長の値（１７５５Ｈ）に、Ｃレジスタに記憶された１バイト長の値（Ｂ０Ｈ）を加算することによって、ＨＬレジスタの値を１８０５Ｈに更新している。なお、ＡＤＤＴＷＯＯＮＥ命令（ＡＤＤＴＷＯＯＮＥ  ＯＰ１，ＯＰ２）は、キャリーが発生し難いが、ＨＬレジスタに記憶された２バイト長の値（例えば、ＦＦ０１Ｈ）にＣレジスタに記憶された１バイト長の値（例えば、ＦＦＨ）を加算する場合には、キャリーが発生する。すなわち、ＡＤＤＴＷＯＯＮＥ命令（ＡＤＤＴＷＯＯＮＥ  ＯＰ１，ＯＰ２）を実行後にキャリーが発生する場合には、ＨレジスタがＦＦＨであると判断することができる。
【０２７７】
また、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｃ」命令では、必要なステート数は８ステート、必要なバイト数は２バイトである。一方、従来の命令によって「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｃ」命令と同様の処理を行う場合には、図３６に示すように、必要なステート数は２２ステート（＝４＋４＋１０＋４）、必要なバイト数は６バイト（＝１＋１＋３＋１）である。したがって、ＨＬレジスタに記憶された２バイト長の値にＣレジスタに記憶された１バイト長の値を加算する場合に「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｃ」命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているＲＯＭの記憶領域を有効に利用することができる場合がある。また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。
【０２７８】
また、従来ＣＰＵに実行可能に備えられている８ビット演算命令では、「ＡＤＤ  Ａ，Ｅ」命令のように、加算結果（「ＳＵＢ  Ａ，Ｅ」命令の場合は減算結果）をＡレジスタに入れるしかなかったが、ＡＤＤＴＷＯＯＮＥ命令を実行して「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｅ」命令とすることで「ＡＤＤ  Ｌ，Ｅ」を可能にしており、Ａレジスタを使用せずに温存することができる（使用用途が広いＡレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある）。また、「ＬＤ  Ｈ，００Ｈ」命令を実行してＨレジスタに００Ｈを転送した後に、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｅ」命令を実行してＬレジスタにＥレジスタの値を加算して「ＳＲＬ  Ｈ」命令を実行してＬレジスタが桁あふれしたかどうかをキャリーフラグが立ったか否かで確認することでＡレジスタを使用せずに温存することができる（使用用途が広いＡレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある）。
【０２７９】
すなわち、「ＡＤＤ  Ａ，Ｌ」命令は実行可能であり、「ＡＤＤ  Ｌ，Ａ」命令は実行不可能であるが、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ａ」命令を実行可能にした命令セットを備えたことにより、命令セットにおける命令数を１つ増やすだけで、８ビット演算の加算結果を格納可能なレジスタを増やすことができるとともに、１６ビット−８ビット演算も可能にしており、命令セットを１命令増やすだけで２つの機能を実現可能としている。
【０２８０】
換言すると、加算命令「特定のレジスタペア←特定のレジスタペア＋特定のレジスタ」を命令セットに含むとともに、特定のレジスタペアの下位側のレジスタを８ビット演算のアキュムレータとは異なるレジスタとした。
【０２８１】
従来では、命令セットにおける命令数を増やしたくなかったため、１６ビット演算と８ビット演算しか搭載せず、さらに１６ビットのアキュムレータは複数のレジスタペアのうちの特定レジスタペアのみとし、８ビットのアキュムレータは複数のレジスタのうちの特定レジスタのみとしていたが、上記構成により、少ない命令数の増加で複数の機能を実現することができる。
【０２８２】
また、ＨＬレジスタが０か否かを確認するために従来では、「ＬＤ  Ａ，Ｈ」命令でＨレジスタの値をＡレジスタに転送した後に「ＯＲ  Ａ，Ｌ」命令を実行後に０フラグが立つか否かでＨＬレジスタが０か否かを確認していた。すなわち、８ビット演算を実行して０か否かを確認しているため、８ビット演算のアキュムレータ（この場合はＡレジスタ）を使用してしまっていた。しかし、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，ｎ（００Ｈ）」命令後に０フラグが立つか否かを確認することによってＡレジスタを使用しないで済む。すなわち、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，ｎ」命令は、１６ビットレジスタペアに８ビットの直値を加算する機能と、１６ビットレジスタペアが０か否かを確認する機能と、Ａレジスタを温存する機能とを備えている。また、命令に直値を使用しているので、プログラムソースの可読性を向上できる。
【０２８３】
＜特殊命令／ＩＮＣＴＥＮＳＯＵ命令＞
特殊命令の一つであるＩＮＣＴＥＮＳＯＵ命令（ＩＮＣＴＥＮＳＯＵ  ＯＰ１，ＯＰ２）は、第２オペランドＯＰ２で示される２つのレジスタに記憶された２バイト長の値に１を加算し、加算後の２つのレジスタの値で示されるアドレスに記憶された１バイト長の値を、第１オペランドＯＰ１で示される２つのレジスタのうちの下位のレジスタに記憶した後に、第２オペランドＯＰ２で示される２つのレジスタに記憶された２バイト長の値にさらに１を加算し、加算後の２つのレジスタの値で示されるアドレスに記憶された１バイト長の値を、第１オペランドＯＰ１で示される２つのレジスタのうちの上位のレジスタに記憶するための命令である。ＩＮＣＴＥＮＳＯＵ命令の命令コードの上位１バイトは固定値（この例ではＥＤＨ)とし、下位バイトは、命令データテーブルの上位ビット１Ｈ（０００１Ｂ）と下位ビット８Ｈ（１０００Ｂ）〜９Ｈ（１０００１Ｂ）の組合せと、命令データテーブルの上位ビットＤＨ（１１０１Ｂ）と下位ビット４Ｈ（０１００Ｂ）〜６Ｈ（０１１０Ｂ）の組合せに割り当てている。本例では、第１オペランドＯＰ１にアキュムレータを含む機械命令のコードを連番（例えば、「ＩＮＣＴＥＮＳＯＵ  ＡＣ，（ＨＬ）」命令のコードがＥＤＤ４Ｈ、「ＩＮＣＴＥＮＳＯＵ  ＡＥ，（ＨＬ）」のコードがＥＤＤ５Ｈ）にしている。また、第１オペランドＯＰ１にアキュムレータを含む命令のうちの特定のＩＮＣＴＥＮＳＯＵ命令の機械命令のコード（例えば、「ＩＮＣＴＥＮＳＯＵ  ＡＥ，（ＨＬ）」命令のコードがＥＤＤ５Ｈ）と、第１オペランドＯＰ１にアキュムレータを含まない命令のうちの特定のＩＮＣＴＥＮＳＯＵ命令の機械命令のコード（例えば、「ＩＮＣＴＥＮＳＯＵ  ＢＤ，（ＨＬ）」命令のコードがＥＤＤ６Ｈ）を連番にしている。また、第１オペランドＯＰ１にアキュムレータを含まずペアレジスタを含む命令のうちの複数のＩＮＣＴＥＮＳＯＵ命令の機械命令のコード（例えば、「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令のコードがＥＤ１８Ｈ、「ＩＮＣＴＥＮＳＯＵ  ＤＥ，（ＨＬ）」命令のコードがＥＤ１９Ｈ）と、第１オペランドＯＰ１にアキュムレータを含まない命令のうちの特定のＩＮＣＴＥＮＳＯＵ命令の機械命令のコード（例えば、「ＩＮＣＴＥＮＳＯＵ  ＢＤ，（ＨＬ）」命令のコードがＥＤＤ６Ｈ）とを離れた番号にしている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令（隠し命令）を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。
【０２８４】
「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令を例に挙げると、第２オペランドで示されるペアレジスタＨＬに記憶された２バイト長の値に１を加算し、加算後のペアレジスタＨＬの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、第１オペランドで示されるペアレジスタＢＣのうちの下位のレジスタＣに記憶した後に、第２オペランドで示されるペアレジスタＨＬに記憶された２バイト長の値にさらに１を加算し、加算後のペアレジスタＨＬの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、第１オペランドで示されるペアレジスタＢＣのうちの上位のレジスタＢに記憶するための命令である。ＩＮＣＴＥＮＳＯＵ命令は、ＨＬレジスタの値で示されるアドレスの次以降のアドレスに格納されている値をレジスタに転送するのに適している。また、ＩＮＣＴＥＮＳＯＵ命令は、該命令実行後にＨＬレジスタに記憶された値が示すアドレスに格納された値に基づいて該命令を繰り返すか否かの判断処理を行う場合、繰り返すと判断した場合には該命令でＨＬレジスタにプラス１することでＨＬレジスタに記憶された値が示すアドレスを次のアドレスにできるために該命令を使用するのに適している。
【０２８５】
例えば、上述の特別図柄変動時間抽選処理のステップＳ１１０９では、「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」を実行することによって、ＨＬレジスタに記憶された２バイト長の値（１７４ＦＨ）に１を加算し、加算後のＨＬレジスタの値（１７５０Ｈ）で示されるアドレスに記憶された１バイト長の値（ＡＥＨ）を、ＢＣレジスタのうちの下位のＣレジスタに記憶した後に、ＨＬレジスタに記憶された２バイト長の値にさらに１を加算し、加算後のＨＬレジスタの値（１７５１Ｈ）で示されるアドレスに記憶された１バイト長の値（２０）を、ＢＣレジスタのうちの上位のＢレジスタに記憶している。
【０２８６】
また、「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令では、必要なステート数は１４ステート、必要なバイト数は２バイトである。一方、従来の命令によってＩＮＣＴＥＮＳＯＵ命令と同様の処理を行う場合には、図３６に示すように、必要なステート数は２６ステート（＝６＋７＋６＋７）、必要なバイト数は４バイト（＝１＋１＋１＋１）である。したがって、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレスに格納された値をＢＣレジスタに転送する場合に「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているＲＯＭの記憶領域を有効に利用することができる場合がある。
【０２８７】
また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。特に、本実施形態では、ステップＳ１１０９〜Ｓ１１１１のループ処理、またはステップＳ１１１４〜Ｓ１１１６のループ処理においてＩＮＣＴＥＮＳＯＵ命令を繰り返し実行することになるため、処理速度の短縮の効果が高い。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。
【０２８８】
＜特殊命令／ＴＥＮＳＯＵＩＮＣ命令＞
特殊命令の一つであるＴＥＮＳＯＵＩＮＣ命令（ＴＥＮＳＯＵＩＮＣ  ＯＰ１，ＯＰ２)は、第２オペランドＯＰ２で示される２つのレジスタの値で示されるアドレスに記憶された１バイト長の値を、第１オペランドＯＰ１で示される２つのレジスタのうちの下位のレジスタに記憶し、第２オペランドＯＰ２で示される２つのレジスタに記憶された２バイト長の値に１を加算した後に、第２オペランドＯＰ２で示される２つのレジスタの値で示されるアドレスに記憶された１バイト長の値を、第１オペランドＯＰ１で示される２つのレジスタのうちの上位のレジスタに記憶し、第２オペランドＯＰ２で示される２つのレジスタに記憶された２バイト長の値にさらに１を加算するための命令である。ＴＥＮＳＯＵＩＮＣ命令の命令コードの上位１バイトは固定値（この例ではＥＤＨ)とし、下位バイトは、命令データテーブルの上位ビット１Ｈ（０００１Ｂ）と下位ビット６Ｈ（０１１０Ｂ）〜７Ｈ（０１１１Ｂ）の組合せと、命令データテーブルの上位ビットＤＨ（１１０１Ｂ）と下位ビット０Ｈ（００００Ｂ）〜２Ｈ（００１０Ｂ）の組合せに割り当てている。本例では、第１オペランドＯＰ１にアキュムレータを含む機械命令のコードを連番（例えば、「ＴＥＮＳＯＵＩＮＣ  ＡＣ，（ＨＬ）」命令のコードがＥＤＤ０Ｈ、「ＴＥＮＳＯＵＩＮＣ  ＡＥ，（ＨＬ）」のコードがＥＤＤ１Ｈ）にしている。また、第１オペランドＯＰ１にアキュムレータを含む命令のうちの特定のＴＥＮＳＯＵＩＮＣ命令の機械命令のコード（例えば、「ＴＥＮＳＯＵＩＮＣ  ＡＥ，（ＨＬ）」命令のコードがＥＤＤ１Ｈ）と、第１オペランドＯＰ１にアキュムレータを含まない命令のうちの特定のＴＥＮＳＯＵＩＮＣ命令の機械命令のコード（例えば、「ＴＥＮＳＯＵＩＮＣ  ＢＤ，（ＨＬ）」命令のコードがＥＤＤ２Ｈ）を連番にしている。また、第１オペランドＯＰ１にアキュムレータを含まずペアレジスタを含む命令のうちの複数のＴＥＮＳＯＵＩＮＣ命令の機械命令のコード（例えば、「ＴＥＮＳＯＵＩＮＣ  ＢＣ，（ＨＬ）」命令のコードがＥＤ１６Ｈ、「ＴＥＮＳＯＵＩＮＣ  ＤＥ，（ＨＬ）」命令のコードがＥＤ１７Ｈ）と、第１オペランドＯＰ１にアキュムレータを含まない命令のうちの特定のＴＥＮＳＯＵＩＮＣ命令の機械命令のコード（例えば、「ＴＥＮＳＯＵＩＮＣ  ＢＤ，（ＨＬ）」命令のコードがＥＤＤ２Ｈ）とを離れた番号にしている。また、ＴＥＮＳＯＵＩＮＣ命令とＩＮＣＴＥＮＳＯＵ命令は、同一の第１オペランドＯＰ１の命令はＴＥＮＳＯＵＩＮＣ命令のほうがＩＮＣＴＥＮＳＯＵ命令よりも番号が若い（例えば、「ＴＥＮＳＯＵＩＮＣ  ＢＣ，（ＨＬ）」命令のコードがＥＤ１６Ｈ、「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令のコードがＥＤ１８Ｈ）。また、第１オペランドＯＰ１にアキュムレータを含むＴＥＮＳＯＵＩＮＣ命令の機械命令のコード（例えば、「ＴＥＮＳＯＵＩＮＣ  ＡＣ，（ＨＬ）」命令のコードがＥＤＤ０Ｈ）と、第１オペランドＯＰ１にアキュムレータを含むＩＮＣＴＥＮＳＯＵ命令の機械命令のコード（例えば、「ＩＮＣＴＥＮＳＯＵ  ＡＣ，（ＨＬ）」命令のコードがＥＤＤ４Ｈ）とは離れた番号、および／またはＴＥＮＳＯＵＩＮＣ命令とＩＮＣＴＥＮＳＯＵ命令以外の命令の機械���令のコード（例えば、コードＥＤＤ３Ｈ）の前後にしている。
【０２８９】
「ＴＥＮＳＯＵＩＮＣ  ＢＣ，（ＨＬ）」命令を例に挙げると、第２オペランドで示されるペアレジスタＨＬの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、第１オペランドで示されるペアレジスタＢＣのうちの下位のレジスタＣに記憶し、第２オペランドで示されるペアレジスタＨＬに記憶された２バイト長の値に１を加算した後に、第２オペランドで示されるペアレジスタＨＬの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、第１オペランドで示されるペアレジスタＢＣのうちの上位のレジスタＢに記憶し、第２オペランドで示されるペアレジスタＨＬに記憶された２バイト長の値にさらに１を加算するための命令である。ＴＥＮＳＯＵＩＮＣ命令は、ＨＬレジスタの値で示されるアドレス以降のアドレスに格納されている値をレジスタに転送するのに適している。また、ＴＥＮＳＯＵＩＮＣ命令は、該命令を実行後にＢレジスタの値が０か否かで該命令を繰り返すか否かの判断処理を行う場合、繰り返すと判断した場合には判断前にＨＬレジスタにプラス１されているために該命令を使用するのに適している。また、繰り返し処理を行わない場合にもＴＥＮＳＯＵＩＮＣ命令後はＨＬレジスタの値をプラス１した状態で次の処理を行うことができるので該命令を使用するのに適している。
【０２９０】
また、「ＴＥＮＳＯＵＩＮＣ  ＢＣ，（ＨＬ）」命令では、必要なステート数は１４ステート、必要なバイト数は２バイトである。一方、従来の命令によってＴＥＮＳＯＵＩＮＣ命令と同様の処理を行う場合には、図３６に示すように、必要なステート数は２６ステート（＝７＋６＋７＋６）、必要なバイト数は４バイト（＝１＋１＋１＋１）である。したがって、ＨＬレジスタの値で示されるアドレスと次のアドレスに格納された値をＢＣレジスタに転送する場合に「ＴＥＮＳＯＵＩＮＣ  ＢＣ，（ＨＬ）」命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているＲＯＭの記憶領域を有効に利用することができる場合がある。また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。なお、ＩＮＣＴＥＮＳＯＵ命令とＴＥＮＳＯＵＩＮＣ命令は、ＣＰＵに両方実行可能に備えるようにしても良いし、何れか一方のみ実行可能に備えるようにしてもよい。
【０２９１】
＜特殊命令／ＣＰＴ命令＞
特殊命令の一つである「ＣＰＴ  Ａ，（ｎ：イミディエイト値）」命令は、Ａレジスタの内容と、Ｔレジスタを上位、イミディエイト値を下位で示すアドレスのデータを比較する命令であり、例えば、Ｔレジスタに７ＥＨが記憶された状態で「ＣＰＴ  Ａ，（４０Ｈ）」を実行した場合、Ａレジスタの内容と、Ｔレジスタを上位、イミディエイト値を下位で示すアドレス（７Ｅ４０Ｈ）のデータが比較される。
＜特殊命令／ＡＤＤＯＮＥＴＷＯ命令＞
特殊命令の一つであるＡＤＤＯＮＥＴＷＯ命令（ＡＤＤＯＮＥＴＷＯ  ＯＰ１，ＯＰ２）は、第１オペランドＯＰ１で示されるレジスタに記憶された１バイト長の値に、第２オペランドＯＰ２で示される２つのレジスタに記憶された２バイト長の値（または、第２オペランドＯＰ２で示される２バイト長のイミディエイト値）を加算するための命令である。ＡＤＤＯＮＥＴＷＯ命令の命令コードの上位１バイトは固定値（この例ではＥＤＨ)とし、下位バイトは、命令データテーブルの上位ビット４Ｈ（０１００Ｂ）と下位ビットＡＨ（１０１０Ｂ）の組合せに割り当てている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令（隠し命令）を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。なお、ＡＤＤＯＮＥＴＷＯ命令（ＡＤＤＯＮＥＴＷＯ  ＯＰ１，ＯＰ２）は、キャリーが発生し易く、Ａレジスタに記憶された１バイト長の値（例えば、００Ｈ）にＨＬレジスタに記憶された２バイト長の値（例えば、０１００Ｈ）を加算する場合には、キャリーが発生する。すなわち、Ｈレジスタが００Ｈ以外である場合にＡＤＤＯＮＥＴＷＯ命令（ＡＤＤＯＮＥＴＷＯ  ＯＰ１，ＯＰ２）を実行することでキャリーを発生させることができる。なお、ＡＤＤＴＷＯＯＮＥ命令とＡＤＤＯＮＥＴＷＯ命令は、ＣＰＵに両方備えるようにしても良いし、何れか一方のみ備えるようにしてもよい。
【０２９２】
＜特殊命令／ＳＵＢＴＷＯＯＮＥ命令＞
特殊命令の一つであるＳＵＢＴＷＯＯＮＥ命令（ＳＵＢＴＷＯＯＮＥ  ＯＰ１，ＯＰ２）は、第１オペランドＯＰ１で示される２つのレジスタに記憶された２バイト長の値から、第２オペランドＯＰ２で示されるレジスタに記憶された１バイト長の値（または、第２オペランドＯＰ２で示される１バイト長のイミディエイト値）を減算するための命令である。ＳＵＢＴＷＯＯＮＥ命令の命令コードの上位１バイトは固定値（この例ではＥＤＨ)とし、下位バイトは、命令データテーブルの上位ビット４Ｈ（０１００Ｂ）と下位ビット８Ｈ（１０００Ｂ）の組合せに割り当てている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令（隠し命令）を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。なお、ＳＵＢＴＷＯＯＮＥ命令（ＳＵＢＴＷＯＯＮＥ  ＯＰ１，ＯＰ２）は、キャリーが発生し難いが、ＨＬレジスタに記憶された２バイト長の値（例えば、０００１Ｈ）からＡレジスタに記憶された１バイト長の値（例えば、ＦＦＨ）を減算する場合には、キャリーが発生する。すなわち、ＳＵＢＴＷＯＯＮＥ命令（ＳＵＢＴＷＯＯＮＥ  ＯＰ１，ＯＰ２）を実行後にキャリーが発生する場合には、Ｈレジスタが００Ｈであると判断することができる。
【０２９３】
＜データテーブルの変形例＞
次に、図３８を用いて、上述のデータテーブルの変形例について説明する。なお、同図は、テーブル選択用テーブル、第１変動パターン選択テーブル、および第２変動パターン選択テーブルの変形例を示した図であり、上記図３２に相当する図である。
【０２９４】
同図（ｂ）に示す第１変動パターン選択テーブルでは、上記図３２（ｂ）に示す第１変動パターン選択テーブルに対して、乱数の個数の項目を乱数の上限の項目に変更している。また、同図（ｃ）に示す第２変動パターン選択テーブルでは、上記図３２（ｃ）に示す第２変動パターン選択テーブルに対して、乱数の個数の値を変更している。
【０２９５】
＜特別図柄変動時間抽選処理の変形例＞
次に、図３９を用いて、上記図３４に示す特別図柄変動時間抽選処理の変形例について説明する。なお、同図は、変形例に係る特別図柄変動時間抽選処理の流れを示すフローチャートである。
【０２９６】
この変形例に係る特別図柄変動時間抽選処理では、上記図３４に示す特別図柄変動時間抽選処理の「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令を用いたステップＳ１１０９の処理やステップＳ１１１４の処理を、「ＩＮＣＴＥＮＳＯＵ  ＡＣ，（ＨＬ）」命令を用いたステップＳ１１５０の処理やステップＳ１１５２の処理に変更するとともに、ステップＳ１１５１、Ｓ１１５３において、上述のＣＰＴ命令を利用している。
【０２９７】
具体的には、ステップＳ１１５０では、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレスに格納された値をＡＣレジスタに転送する（ＩＮＣＴＥＮＳＯＵ  ＡＣ，（ＨＬ)）。例えば、ＨＬレジスタの値が１７４ＦＨの場合には、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレス（１７５０Ｈ、１７５１Ｈ）に格納された値をＡＣレジスタに転送することによって、Ａレジスタに１９を、ＣレジスタにＡＥＨを記憶する。
【０２９８】
次のステップＳ１１５１では、「ＣＰＴ  Ａ，（４１Ｈ）」を実行することによって、Ａレジスタの内容と、Ｔレジスタ（７ＥＨ）を上位、イミディエイト値（４１Ｈ）を下位で示すアドレス（７Ｅ４１Ｈ）のデータ、すなわち、上述の乱数１記憶領域に記憶された乱数１と、を比較する（Ａレジスタの値から乱数１を減算する）。次のステップＳ１１５４では、ステップＳ１１５１の比較（減算）の結果、キャリーが発生しないか否か、すなわち減算の結果が正の値になったかどうかを判定し、該当する場合にはステップＳ１１１２に進み、該当しない場合には該当するまでステップＳ１１５０〜Ｓ１１５１の処理を繰り返し実行する。
【０２９９】
また、ステップＳ１１５２では、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレスに格納された値をＡＣレジスタに転送する（ＩＮＣＴＥＮＳＯＵ  ＡＣ，（ＨＬ)）。例えば、ＨＬレジスタの値が１７ＦＦＨの場合には、ＨＬレジスタの値で示されるアドレスの次の連続した２つのアドレス（１８００Ｈ、１８０１Ｈ）に格納された値をＡＣレジスタに転送することによって、Ａレジスタに２５５を、Ｃレジスタに０１Ｈを記憶する。
【０３００】
次のステップＳ１１５３では、「ＣＰＴ  Ａ，（４２Ｈ）」を実行することによって、Ａレジスタの内容と、Ｔレジスタ（７ＥＨ）を上位、イミディエイト値（４２Ｈ）を下位で示すアドレス（７Ｅ４２Ｈ）のデータ、すなわち、上述の乱数２記憶領域に記憶された乱数２を比較する（Ａレジスタの値から乱数２を減算する）。次のステップＳ１１５５では、ステップＳ１１５３の比較（減算）の結果、キャリーが発生しないか否か、すなわち減算の結果が正の値になったかどうかを判定し、該当する場合にはステップＳ１１１７に進み、該当しない場合には該当するまでステップＳ１１５２〜Ｓ１１５３の処理を繰り返し実行する。
【０３０１】
＜初期設定処理＞
次に、図４０および図４１を用いて、上述の主制御部メイン処理の初期設定２（ステップＳ１０７）で実行される初期設定処理について説明する。なお、図４０（ａ）は、ＲＯＭ３０６に記憶される初期設定データテーブルの一例を示した図であり、同図（ｂ）は、初期設定処理後のＲＡＭ３０８の記憶領域の一部を示した図であり、同図（ｃ）は、初期設定処理の流れを示すフローチャートである。また、図４１は、初期設定処理のプログラムリストの一例である。
【０３０２】
ステップＳ１２０１では、上述のＴＥＮＳＯＵＩＮＣ命令（「ＴＥＮＳＯＵＩＮＣ  ＢＤ，（ＨＬ）」によって、ＨＬレジスタの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、ＢＤレジスタのうちの下位のＤレジスタに記憶し、ＨＬレジスタに記憶された２バイト長の値に１を加算した後に、ＨＬレジスタの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、ＢＣレジスタのうちの上位のＢレジスタに記憶し、ＨＬレジスタに記憶された２バイト長の値にさらに１を加算する。例えば、ＨＬレジスタに、同図（ａ）に示す初期設定データテーブルの先頭アドレスである１００ＤＨを設定した場合には、Ｄレジスタには７ＥＨが、Ｂレジスタには３が記憶される。
【０３０３】
次のステップＳ１２０２では、上述のＴＥＮＳＯＵＩＮＣ命令（「ＴＥＮＳＯＵＩＮＣ  ＡＥ，（ＨＬ）」によって、ＨＬレジスタの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、ＡＥレジスタのうちの下位のＥレジスタに記憶し、ＨＬレジスタに記憶された２バイト長の値に１を加算した後に、ＨＬレジスタの値で示されるアドレス（ＨＬ）に記憶された１バイト長の値を、ＡＥレジスタのうちの上位のＡレジスタに記憶し、ＨＬレジスタに記憶された２バイト長の値にさらに１を加算する。例えば、先の例では、Ｅレジスタには、１００ＦＨに記憶されている値である１７Ｈが、Ａレジスタには、１０１０に記憶されている値である０１Ｈが記憶され、ＨＬレジスタの値は１０１１Ｈに更新される。
【０３０４】
次のステップＳ１２０３では、Ａレジスタの値をＤＥレジスタの値で示されるアドレス（ＤＥ）に記憶する。先の例では、Ａレジスタの値である０１Ｈを、ＤＥレジスタの値で示されるアドレスであるＲＡＭ３０８の７Ｅ１７Ｈに記憶する（同図（ｂ）参照）。
【０３０５】
次のステップＳ１２０４では、Ｂレジスタの値から１を減算し、減算結果が０になるまでステップＳ１２０２〜Ｓ１２０３の処理を繰り返し実行し（ステップＳ１２０２の処理のアドレスまで相対ジャンプして処理を実行し）、減算結果が０になった場合にはステップＳ１２０５に進む。
【０３０６】
先の例では、Ｂレジスタが２の場合には、ステップＳ１２０２の処理により、Ｅレジスタには、１０１１Ｈに記憶されている値である２０Ｈが、Ａレジスタには、１０１２Ｈに記憶されている値である１６Ｈが記憶され、ＨＬレジスタの値は１０１３Ｈに更新され、ステップＳ１２０３の処理により、Ａレジスタの値である１６Ｈを、ＤＥレジスタの値で示されるアドレスであるＲＡＭ３０８の７Ｅ２０Ｈに記憶する（同図（ｂ）参照）。
【０３０７】
また、Ｂレジスタが１の場合には、ステップＳ１２０２の処理により、Ｅレジスタには、１０１３Ｈに記憶されている値である３ＡＨが、Ａレジスタには、１０１４Ｈに記憶されている値である０６Ｈが記憶され、ＨＬレジスタの値は１０１５Ｈに更新され、ステップＳ１２０３の処理により、Ａレジスタの値である０６Ｈを、ＤＥレジスタの値で示されるアドレスであるＲＡＭ３０８の７Ｅ３ＡＨに記憶する（同図（ｂ）参照）。なお、上記７Ｅ１７Ｈ、７Ｅ２０Ｈ、７Ｅ３ＡＨに記憶する遊技設定（遊技制御に用いる各種情報）としては、例えば電源ステータス、払出制御コマンド加工種別、表示器表示ステータスなどが挙げられ、また、遊技設定の数は、複数でもよいし、１つのみでもよい。また、初期設定処理（ｍｏＤａｔａＳｅｔ）は、処理開始時のＨＬレジスタの値を異ならせることにより（ＨＬレジスタに設定するアドレスを、初期設定データテーブルとは異なる他のテーブルの先頭アドレスなどに設定することにより）、複数の処理から呼び出し可能な（例えば、ＨＬレジスタを引数として呼び出し可能な）汎用的なデータ設定処理モジュールとして扱ってもよい。この場合、プログラム容量の削減や処理速度の向上を図ることができる。
【０３０８】
この初期設定処理では、ステップＳ１２０１、Ｓ１２０２でＴＥＮＳＯＵＩＮＣ命令を使用しているため、ステート数を従来の２６ステートから１４ステートに削減することができ、処理時間を短縮することができる上に、バイト数を従来の４バイトから２バイトに削減することができ、プログラム容量を削減することができる。特に、この例では、ステップＳ１２０２〜Ｓ２０４のループ処理においてＴＥＮＳＯＵＩＮＣ命令を繰り返し実行することになるため、処理速度の短縮の効果が高い。
【０３０９】
また、ＴＥＮＳＯＵＩＮＣ命令の中でも、Ａレジスタ（アキュムレータ）と他のレジスタのペアをオペランドとする命令（本実施形態では、ＴＥＮＳＯＵＩＮＣ  ＡＣ，（ＨＬ）、ＴＥＮＳＯＵＩＮＣ  ＡＥ，（ＨＬ））は、Ａレジスタの値を変更すると同時に、ペアレジスタ（本実施形態では、ＢＣレジスタとＤＥレジスタ）の上位バイトのレジスタ（本実施形態では、ＢレジスタとＤレジスタ）を固定しつつ、ペアレジスタの下位バイトのレジスタ（本実施形態では、ＣレジスタとＥレジスタ）の値だけを変更することができるため、従来よりも高度なプログラミングが可能で、プログラム容量の削減や処理速度の向上を図ることができる。
【０３１０】
また、ＴＥＮＳＯＵＩＮＣ命令の中でも、第１のペアレジスタ（本実施形態では、ＢＣレジスタ）の上位バイトのレジスタ（本実施形態では、Ｂレジスタ）と、第２のペアレジスタ（本実施形態では、ＤＥレジスタ）の上位バイトのレジスタ（本実施形態では、Ｄレジスタ）のペアをオペランドとする命令（本実施形態では、ＴＥＮＳＯＵＩＮＣ  ＢＤ，（ＨＬ））は、第１のペアレジスタと第２のペアレジスタの上位バイトのレジスタの値のみを変更することができるため、従来よりも高度なプログラミングが可能で、プログラム容量の削減や処理速度の向上を図ることができる。
【０３１１】
また、ＴＥＮＳＯＵＩＮＣ命令の中でも、オペランドにＢレジスタを含む命令（本実施形態では、ＴＥＮＳＯＵＩＮＣ  ＢＣ，（ＨＬ）、ＴＥＮＳＯＵＩＮＣ  ＢＤ，（ＨＬ））を利用し、かつ、上述の初期設定処理のステップＳ１２０２〜Ｓ１２０４のループ処理のように、Ｂレジスタによってループ処理の回数を判定するように構成すれば、ループ処理のプログラム容量の削減や処理速度の向上を図ることができる。
なお、ＣＰＵは３０４、ＴＥＮＳＯＵＩＮＣ命令とＩＮＣＴＥＮＳＯＵ命令両方を実行可能であり、遊技制御プログラムは第一の命令(ＴＥＮＳＯＵＩＮＣ)によるテーブルサーチと第二の命令(ＩＮＣＴＥＮＳＯＵ)によるテーブルサーチの両方を実行するようにしてもよい。
【０３１２】
「テーブルサーチ」は一般的な用語どおりの意味としてもよく、例えば、一または複数の行と一または複数の列から構成されたテーブル（例えば、図３２、図３８の第１変動パターン選択テーブル・第２変動パターン選択テーブル、図４０の初期設定データテーブル）から対応する行を探し出し、その行の一または複数の列の値を取り出す処理を示してもよいし、探し出した行のテーブル内の行の位置（例えば行番号）を導出する処理としてもよい。同様に対応する列を探し出し、その列の一または複数の行の値を取り出す処理を示すものとしてもよいし、探し出した列のテーブル内の列の位置（例えば列番号）を導出する処理としてもよい。
【０３１３】
ここで対応する行を探し出す処理は、探している一または複数の値が、テーブル内の特定の行における一または複数の特定の列の値と一致または関係する場合に、当該特定の行を対応する行とするような処理としてもよい。対応する列を探し出す処理も同様としてもよい。
【０３１４】
＜実施形態２＞
以下、図面を用いて、本発明の実施形態２に係る遊技台（スロットマシン１１００）について詳細に説明する。
【０３１５】
＜全体構成＞
まず、図４２を用いて、本発明の実施形態２に係るスロットマシン１１００の全体構成について説明する。なお、同図はスロットマシン１１００を正面側（遊技者側）から見た外観斜視図である。
【０３１６】
同図に示すスロットマシン１１００は、本体１１０１と、本体１１０１の正面に取り付けられ、本体１１０１に対して開閉可能な前面扉１１０２と、を備える。本体１１０１の中央内部には、（図示省略）外周面に複数種類の図柄が配置されたリールが３個（左リール１１１０、中リール１１１１、右リール１１１２）収納され、スロットマシン１１００の内部で回転できるように構成されている。これらのリール１１１０乃至１１１２はステッピングモータ等の駆動装置により回転駆動される。
【０３１７】
本実施形態において、各図柄は帯状部材に等間隔で適当数印刷され、この帯状部材が所定の円形筒状の枠材に貼り付けられて各リール１１１０乃至１１１２が構成されている。リール１１１０乃至１１１２上の図柄は、遊技者から見ると、図柄表示窓１１１３から縦方向に概ね３つ表示され、合計９つの図柄が見えるようになっている。そして、各リール１１１０乃至１１１２を回転させることにより、遊技者から見える図柄の組み合せが変動することとなる。つまり、各リール１１１０乃至１１１２は複数種類の図柄の組合せを変動可能に表示する表示装置として機能する。なお、このような表示装置としてはリール以外にも液晶表示装置等の電子画像表示装置も採用できる。また、本実施形態では、３個のリールをスロットマシン１１００の中央内部に備えているが、リールの数やリールの設置位置はこれに限定されるものではない。
【０３１８】
各々のリール１１１０乃至１１１２の背面には、図柄表示窓１１１３に表示される個々の図柄を照明するためのバックライト（図示省略）が配置されている。バックライトは、各々の図柄ごとに遮蔽されて個々の図柄を均等に照射できるようにすることが望ましい。なお、スロットマシン１１００内部において各々のリール１１１０乃至１１１２の近傍には、投光部と受光部から成る光学式センサ（図示省略）が設けられており、この光学式センサの投光部と受光部の間をリールに設けられた一定の長さの遮光片が通過するように構成されている。このセンサの検出結果に基づいてリール上の図柄の回転方向の位置を判断し、目的とする図柄が入賞ライン上に表示されるようにリール１１１０乃至１１１２を停止させる。
【０３１９】
入賞ライン表示ランプ１１２０は、有効となる入賞ライン１１１４を示すランプである。有効となる入賞ラインは、遊技媒体としてベットされたメダルの数によって予め定まっている。入賞ライン１１１４は５ラインあり、例えば、メダルが１枚ベットされた場合、中段の水平入賞ラインが有効となり、メダルが２枚ベットされた場合、上段水平入賞ラインと下段水平入賞ラインが追加された３本が有効となり、メダルが３枚ベットされた場合、右下り入賞ラインと右上り入賞ラインが追加された５ラインが入賞ラインとして有効になる。なお、入賞ライン１１１４の数については５ラインに限定されるものではなく、また、例えば、メダルが１枚ベットされた場合に、中段の水平入賞ライン、上段水平入賞ライン、下段水平入賞ライン、右下り入賞ラインおよび右上り入賞ラインの５ラインを有効な入賞ラインとして設定してもよく、ベット数に関係なく、一律に同一数の入賞ラインを有効な入賞ラインとして設定してもよい。
【０３２０】
告知ランプ１１２３は、例えば、後述する内部抽選において特定の入賞役（具体的には、ボーナス）に内部当選していること、または、ボーナス遊技中であることを遊技者に知らせるランプである。遊技メダル投入可能ランプ１１２４は、遊技者が遊技メダルを投入可能であることを知らせるためのランプである。再遊技ランプ１１２２は、前回の遊技において入賞役の一つである再遊技に入賞した場合に、今回の遊技が再遊技可能であること（メダルの投入が不要であること）を遊技者に知らせるランプである。リールパネルランプ１１２８は演出用のランプである。
【０３２１】
ベットボタン１１３０乃至１１３２は、スロットマシン１１００に電子的に貯留されているメダル（クレジットという）を所定の枚数分投入するためのボタンである。本実施形態においては、ベットボタン１１３０が押下される毎に１枚ずつ最大３枚まで投入され、ベットボタン１１３１が押下されると２枚投入され、ベットボタン１１３２が押下されると３枚投入されるようになっている。以下、ベットボタン１１３２はＭＡＸベットボタンとも言う。なお、遊技メダル投入ランプ１１２９は、投入されたメダル数に応じた数のランプを点灯させ、規定枚数のメダルの投入があった場合、遊技の開始操作が可能な状態であることを知らせる遊技開始ランプ１１２１が点灯する。
【０３２２】
メダル投入口１１４１は、遊技を開始するに当たって遊技者がメダルを投入するための投入口である。すなわち、メダルの投入は、ベットボタン１１３０乃至１１３２により電子的に投入することもできるし、メダル投入口１１４１から実際のメダルを投入（投入操作）することもでき、投入とは両者を含む意味である。貯留枚数表示器１１２５は、スロットマシン１１００に電子的に貯留されているメダルの枚数を表示するための表示器である。遊技情報表示器１１２６は、各種の内部情報（例えば、ボーナス遊技中のメダル払出枚数）を数値で表示するための表示器である。払出枚数表示器１１２７は、何らかの入賞役に入賞した結果、遊技者に払出されるメダルの枚数を表示するための表示器である。貯留枚数表示器１１２５、遊技情報表示器１１２６、および、払出枚数表示器１１２７は、７セグメント（ＳＥＧ）表示器とした。
【０３２３】
スタートレバー１１３５は、リール１１１０乃至１１１２の回転を開始させるためのレバー型のスイッチである。即ち、メダル投入口１１４１に所望するメダル枚数を投入するか、ベットボタン１１３０乃至１１３２を操作して、スタートレバー１１３５を操作すると、リール１１１０乃至１１１２が回転を開始することとなる。スタートレバー１１３５に対する操作を遊技の開始操作と言う。
【０３２４】
ストップボタンユニット１１３６には、ストップボタン１１３７乃至１１３９が設けられている。ストップボタン１１３７乃至１１３９は、スタートレバー１１３５の操作によって回転を開始したリール１１１０乃至１１１２を個別に停止させるためのボタン型のスイッチであり、各リール１１１０乃至１１１２に対応づけられている。以下、ストップボタン１１３７乃至１１３９に対する操作を停止操作と言い、最初の停止操作を第１停止操作、次の停止操作を第２停止操作、最後の停止操作を第３停止操作という。なお、各ストップボタン１１３７乃至１１３９の内部に発光体を設けてもよく、ストップボタン１１３７乃至１１３９の操作が可能である場合、該発光体を点灯させて遊技者に知らせることもできる。
【０３２５】
メダル返却ボタン１１３３は、投入されたメダルが詰まった場合に押下してメダルを取り除くためのボタンである。精算ボタン１１３４は、スロットマシン１１００に電子的に貯留されたメダル、ベットされたメダルを精算し、メダル払出口１１５５から排出するためのボタンである。ドアキー孔１１４０は、スロットマシン１１００の前面扉１１０２のロックを解除するためのキーを挿入する孔である。ストップボタンユニット１１３６の下部には、機種名の表示と各種証紙の貼付とを行うタイトルパネル１１６２が設けられている。タイトルパネル１１６２の下部には、メダル払出口１１５５、メダルの受け皿１１６１が設けられている。
【０３２６】
音孔１１８０はスロットマシン１１００内部に設けられているスピーカの音を外部に出力するための孔である。前面扉１１０２の左右各部に設けられたサイドランプ１１４４は遊技を盛り上げるための装飾用のランプである。前面扉１１０２の上部には演出装置１１６０が配設されており、演出装置１１６０の上部には音孔１１４３が設けられている。この演出装置１１６０は、水平方向に開閉自在な２枚の右シャッタ１１６３ａ、左シャッタ１１６３ｂからなるシャッタ（遮蔽装置）１１６３と、このシャッタ１１６３の奥側に配設された液晶表示装置１１５７（演出画像表示装置）を備えており、右シャッタ１１６３ａ、左シャッタ１１６３ｂが液晶表示装置１１５７の手前で水平方向外側に開くと液晶表示装置１１５７の表示画面がスロットマシン１１００正面（遊技者側）に出現する構造となっている。なお、液晶表示装置でなくとも、種々の演出画像や種々の遊技情報を表示可能な表示装置であればよく、例えば、複数セグメントディスプレイ（７セグディスプレイ）、ドットマトリクスディスプレイ、有機ＥＬディスプレイ、プラズマディスプレイ、リール（ドラム）、或いは、プロジェクタとスクリーンとからなる表示装置等でもよい。また、表示画面は、方形をなし、その全体を遊技者が視認可能に構成している。本実施形態の場合、表示画面は長方形であるが、正方形でもよい。また、表示画面の周縁に不図示の装飾物を設けて、表示画面の周縁の一部が該装飾物に隠れる結果、表示画面が異形に見えるようにすることもできる。表示画面は本実施形態の場合、平坦面であるが、曲面をなしていてもよい。
【０３２７】
図４３は、前面扉１０２を開けた状態のスロットマシン１１００を示す正面図である。本体１１０１は、上面板１２６１、左側の側面板１２６０、右側の側面板１２６０、下面板１２６４および背面板１２４２で囲われ、前面に開口する箱体である。本体１１０１の内部には、背面板１２４２の上部に設けた通風口１２４９と重ならない位置に、内部に主制御基板を収納した主制御基板収納ケース１２１０が配置され、この主制御基板収納ケース１２１０の下方に、３つのリール１１１０乃至１１１２が配置されている。主制御基板収納ケース１２１０及びリール１１１０乃至１１１２の側方、即ち向って左側の側面板１２６０には、内部に副制御基板を収納した副制御基板収納ケース１２２０が配設してある。また、向かって右側の側面板１２６０には、主制御基板に接続されて、スロットマシン１１００の情報を外部装置に出力する外部集中端子板１２４８が取り付けられている。
【０３２８】
そして、下面板１２６４には、メダル払出装置１１８０（バケットに溜まったメダルを払出す装置）が配設され、このメダル払出装置１１８０の上方、即ちリール１１１０乃至１１１２の下方には、電源基板を有する電源装置１２５２が配設され、電源装置１２５２正面には電源スイッチ１２４４を配設している。電源装置１２５２は、スロットマシン１１００に外部から供給される交流電源を直流化し、所定の電圧に変換して後述する主制御部１３００、副制御部１４００、１５００等の各制御部、各装置に供給する。さらには、外部からの電源が断たれた後も所定の部品（例えば主制御部１３００のＲＡＭ１３０８等）に所定の期間（例えば１０日間）電源を供給するための蓄電回路（例えばコンデンサ）を備えている。
【０３２９】
メダル払出装置１１８０の右側には、メダル補助収納庫１２４０が配設してあり、この背後にはオーバーフロー端子が配設されている（図示省略）。電源装置１２５２には、電源コード１２６４を接続する電源コード接続部が設けられ、ここに接続された電源コード１２６４が、本体１１０１の背面板１２４２に開設した電源コード用穴１２６２を通して外部に延出している。
【０３３０】
前面扉１１０２は、本体１１０１の左側の側面板１２６０にヒンジ装置１２７６を介して蝶着され、図柄表示窓１１１３の上部には、演出装置１１６０、および、この演出装置１１６０を制御する演出制御基板（図示省略）、上部スピーカ１２７２、を設けている。図柄表示窓１１１３の下部には、投入されたメダルを選別するためのメダルセレクタ１１７０、このメダルセレクタ１１７０が不正なメダル等をメダル受皿１１６１に落下させる際にメダルが通過する通路１２６６等を設けている。さらに、音孔１１８０に対応する位置には低音スピーカ１２７７を設けている。
【０３３１】
図４４を用いて、スロットマシン１１００の制御部の回路構成について詳細に説明する。なお、同図は制御部の回路ブロック図を示したものである。
【０３３２】
スロットマシン１１００の制御部は、大別すると、主に遊技の進行（例えば、遊技者による操作の検出、遊技状態の遷移、遊技媒体の払出制御、当否判定など）を制御する主制御部１３００と、主制御部１３００が送信するコマンド信号（以下、単に「コマンド」と呼ぶ）に応じて、主に演出の制御を行う第１副制御部１４００と、第１副制御部１４００より送信されたコマンドに基づいて各種機器を制御する第２副制御部１５００と、によって構成されている。
【０３３３】
＜主制御部＞
まず、スロットマシン１１００の主制御部１３００について説明する。主制御部１３００は、主制御部１３００の全体を制御する基本回路１３０２を備えており、この基本回路１３０２には、ＣＰＵ１３０４と、制御プログラムデータ、入賞役の内部抽選時に用いる抽選データ、リールの停止位置等を記憶するためのＲＯＭ１３０６と、一時的にデータを記憶するためのＲＡＭ１３０８と、各種デバイスの入出力を制御するためのＩ／Ｏ１３１０と、時間や回数等を計測するためのカウンタタイマ１３１２と、ＷＤＴ（ウォッチドックタイマ）１３１４を搭載している。なお、ＲＯＭ１３０６やＲＡＭ１３０８については他の記憶装置を用いてもよく、この点は後述する第１副制御部１４００や第２副制御部５００についても同様である。この基本回路１３０２のＣＰＵ１３０４は、水晶発振器１３１４が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。さらには、ＣＰＵ１３０４は、電源が投入されるとＲＯＭ１３０６の所定エリアに格納された分周用のデータをカウンタタイマ１３１２に送信し、カウンタタイマ１３１２は受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに割り込み要求をＣＰＵ１３０４に送信する。ＣＰＵ１３０４は、この割込み要求を契機に各センサ等の監視や駆動パルスの送信を実行する。例えば、水晶発振器１３１４が出力するクロック信号を８ＭＨｚ、カウンタタイマ１３１２の分周値を１／２５６、ＲＯＭ１３０６の分周用のデータを４７に設定した場合、割り込みの基準時間は、２５６×４７÷８ＭＨｚ＝１．５０４ｍｓとなる。
【０３３４】
主制御部１３００は、０〜６５５３５の範囲で数値を変動させるハードウェア乱数カウンタとして使用している乱数発生回路１３１６と、電源が投入されると起動信号（リセット信号）を出力する起動信号出力回路１３３８を備えており、ＣＰＵ１３０４は、この起動信号出力回路１３３８から起動信号が入力された場合に、遊技制御を開始する（後述する主制御部メイン処理を開始する）。
【０３３５】
また、主制御部１３００には、センサ回路１３２０を備えており、ＣＰＵ１３０４は、割り込み時間ごとに各種センサ１３１８（ベットボタン１１３０センサ、ベットボタン１１３１センサ、ベットボタン１１３２センサ、メダル投入口１１４１から投入されたメダルのメダル受付センサ、スタートレバー１１３５センサ、ストップボタン１１３７センサ、ストップボタン１１３８センサ、ストップボタン１１３９センサ、精算ボタン１１３４センサ、メダル払出装置１１８０から払い出されるメダルのメダル払出センサ、リール１１１０のインデックスセンサ、リール１１１１のインデックスセンサ、リール１１１２のインデックスセンサ、等）の状態を監視している。
【０３３６】
なお、センサ回路１３２０がスタートレバーセンサのＨレベルを検出した場合には、この検出を示す信号を乱数発生回路１３１６に出力する。この信号を受信した乱数発生回路１３１６は、そのタイミングにおける値をラッチし、抽選に使用する乱数値を格納するレジスタに記憶する。
【０３３７】
メダル受付センサは、メダル投入口１１４１の内部通路に２個設置されており、メダルの通過有無を検出する。スタートレバー１１３５センサは、スタートレバー１１３５内部に２個設置されており、遊技者によるスタート操作を検出する。ストップボタン１１３７センサ、ストップボタン１１３８センサ、および、ストップボタン１１３９は、各々のストップボタン１１３７乃至１１３９に設置されており、遊技者によるストップボタンの操作を検出する。
【０３３８】
ベットボタン１１３０センサ、ベットボタン１１３１センサ、および、ベットボタン１１３２センサは、メダル投入ボタン１１３０乃至１１３２のそれぞれに設置されており、ＲＡＭ１３０８に電子的に貯留されているメダルを遊技への投入メダルとして投入する場合の投入操作を検出する。精算ボタン１１３４センサは、精算ボタン１１３４に設けられている。精算ボタン１１３４が一回押されると、電子的に貯留されているメダルを精算する。メダル払出センサは、メダル払出装置１１８０が払い出すメダルを検出するためのセンサである。なお、以上の各センサは、非接触式のセンサであっても接点式のセンサであってもよい。
【０３３９】
リール１１１０のインデックスセンサ、リール１１１１のインデックスセンサ、および、リール１１１２のインデックスセンサは、各リール１１１０乃至１１１２の取付台の所定位置に設置されており、リールフレームに設けた遮光片が通過するたびにＬレベルになる。ＣＰＵ１３０４は、この信号を検出すると、リールが１回転したものと判断し、リールの回転位置情報をゼロにリセットする。
【０３４０】
主制御部１３００は、リール装置１１１０乃至１１１２に設けたステッピングモータを駆動する駆動回路１３２２、投入されたメダルを選別するメダルセレクタ１１７０に設けたソレノイドを駆動する駆動回路１３２４、メダル払出装置１１８０に設けたモータを駆動する駆動回路１３２６、各種ランプ１３３８（入賞ライン表示ランプ１１２０、告知ランプ１１２３、遊技メダル投入可能ランプ１１２４、再遊技ランプ１１２２、遊技メダル投入ランプ１１２９は、遊技開始ランプ１１２１、貯留枚数表示器１１２５、遊技情報表示器１１２６、払出枚数表示器１１２７）を駆動する駆動回路１３２８を備えている。
【０３４１】
また、基本回路１３０２には、情報出力回路１３３４（外部集中端子板１２４８）を接続しており、主制御部１３００は、この情報出力回路１３３４を介して、外部のホールコンピュータ（図示省略）等が備える情報入力回路１６５２にスロットマシン１１００の遊技情報（例えば、遊技状態）を出力する。
【０３４２】
また、主制御部１３００は、電源管理部（図示しない）から主制御部１３００に供給している電源の電圧値を監視する電圧監視回路１３３０を備えており、電圧監視回路１３３０は、電源の電圧値が所定の値（本実施例では９ｖ）未満である場合に電圧が低下したことを示す低電圧信号を基本回路１３０２に出力する。
【０３４３】
また、主制御部１３００は、第１副制御部１４００にコマンドを送信するための出力インタフェースを備えており、第１副制御部１４００との通信を可能としている。なお、主制御部１３００と第１副制御部１４００との情報通信は一方向の通信であり、主制御部１３００は第１副制御部１４００にコマンド等の信号を送信できるように構成しているが、第１副制御部１４００からは主制御部１３００にコマンド等の信号を送信できないように構成している。
【０３４４】
＜副制御部＞
次に、スロットマシン１１００の第１副制御部１４００について説明する。第１副制御部１４００は、主制御部１３００が送信した制御コマンドを入力インタフェースを介して受信し、この制御コマンドに基づいて第１副制御部１４００の全体を制御する基本回路１４０２を備えており、この基本回路１４０２は、ＣＰＵ１４０４と、一時的にデータを記憶するためのＲＡＭ１４０８と、各種デバイスの入出力を制御するためのＩ／Ｏ１４１０と、時間や回数等を計測するためのカウンタタイマ１４１２を搭載している。基本回路１４０２のＣＰＵ１４０４は、水晶発振器１４１４が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。ＲＯＭ４０６は、第１副制御部１４００の全体を制御するための制御プログラム及びデータ、バックライトの点灯パターンや各種表示器を制御するためのデータ等を記憶する。
【０３４５】
ＣＰＵ１４０４は、所定のタイミングでデータバスを介してＲＯＭ１４０６の所定エリアに格納された分周用のデータをカウンタタイマ１４１２に送信する。カウンタタイマ１４１２は、受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに割り込み要求をＣＰＵ１４０４に送信する。ＣＰＵ１４０４は、この割込み要求のタイミングをもとに、各ＩＣや各回路を制御する。
【０３４６】
また、第１副制御部１４００には、音源ＩＣ１４１８を設けており、音源ＩＣ１４１８に出力インタフェースを介してスピーカ１２７２、１２７７を設けている。音源ＩＣ１４１８は、ＣＰＵ１４０４からの命令に応じてアンプおよびスピーカ１２７２、１２７７から出力する音声の制御を行う。音源ＩＣ１４１８には音声データが記憶されたＳ−ＲＯＭ（サウンドＲＯＭ）が接続されており、このＲＯＭから取得した音声データをアンプで増幅させてスピーカ１２７２、１２７７から出力する。
【０３４７】
また、第１副制御部１４００には、駆動回路１４２２が設けられ、駆動回路１４２２に入出力インタフェースを介して各種ランプ１４２０（上部ランプ、下部ランプ、サイドランプ１１４４、タイトルパネル１１６２ランプ、等）が接続されている。
【０３４８】
また、ＣＰＵ１４０４は、出力インタフェースを介して第２副制御部１５００へ信号の送受信を行う。第２副制御部１５００は、演出画像表示装置１１５７の表示制御を含む演出装置１１６０の各種制御を行う。なお、第２副制御部１５００は、例えば、液晶表示装置１１５７の表示の制御を行う制御部、各種演出用駆動装置の制御を行う制御部（例えば、シャッタ１１６３のモータ駆動を制御する制御部）とするなど、複数の制御部で構成するようにしてもよい。
【０３４９】
第２副制御部１５００は、第１副制御部１４００が送信した制御コマンドを入力インタフェースを介して受信し、この制御コマンドに基づいて第２副制御部１５００の全体を制御する基本回路１５０２を備えており、この基本回路１５０２は、ＣＰＵ１５０４と、一時的にデータを記憶するためのＲＡＭ１５０８と、各種デバイスの入出力を制御するためのＩ／Ｏ１５１０と、時間や回数等を計測するためのカウンタタイマ１５１２と、を搭載している。基本回路１５０２のＣＰＵ１５０４は、水晶発振器１５１４が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。ＲＯＭ５０６は、第２副制御部１５００の全体を制御するための制御プログラム及びデータ、画像表示用のデータ等を記憶する。
【０３５０】
ＣＰＵ１５０４は、所定のタイミングでデータバスを介してＲＯＭ１５０６の所定エリアに格納された分周用のデータをカウンタタイマ１５１２に送信する。カウンタタイマ１５１２は、受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに割り込み要求をＣＰＵ１４０４に送信する。ＣＰＵ１５０４は、この割込み要求のタイミングをもとに、各ＩＣや各回路を制御する。
【０３５１】
また、第２副制御部１５００には、シャッタ１１６３のモータを駆動する駆動回路１５３０を設けており、駆動回路１５３０には出力インタフェースを介してシャッタ１１６３を設けている。この駆動回路１５３０は、ＣＰＵ１５０４からの命令に応じてシャッタ１１６３に設けたステッピングモータ（図示省略）に駆動信号を出力する。
また、第２副制御部１５００には、センサ回路１５３２を設けており、センサ回路１５３２には入力インタフェースを介してシャッタセンサ１５３８を接続している。ＣＰＵ１５０４は、割り込み時間ごとにシャッタセンサ１５３８状態を監視している。
【０３５２】
また、第２副制御部１５００には、ＶＤＰ１５３４（ビデオ・ディスプレイ・プロセッサー）を設けており、このＶＤＰ１５３４には、バスを介してＲＯＭ１５０６、ＶＲＡＭ１５３６が接続されている。ＶＤＰ１５３４は、ＣＰＵ１５０４からの信号に基づいてＲＯＭ１５０６に記憶された画像データ等を読み出し、ＶＲＡＭ１５３６のワークエリアを使用して表示画像を生成し、演出画像表示装置１１５７に画像を表示する。
【０３５３】
＜図柄配列＞
次に、図４５（ａ）を用いて、上述の各リール１１１０乃至１１１２に施される図柄配列について説明する。なお、同図は、各リール（左リール１１１０、中リール１１１１、右リール１１１２）に施される図柄の配列を平面的に展開して示した図である。
【０３５４】
各リール１１１０乃至１１１２には、同図の右側に示す複数種類（本実施形態では８種類）の図柄が所定コマ数（本実施形態では、番号０〜２０の２１コマ）だけ配置されている。また、同図の左端に示した番号０〜２０は、各リール１１１０乃至１１１２上の図柄の配置位置を示す番号である。例えば、本実施形態では、左リール１１１０の番号１のコマには「リプレイ」の図柄、中リール１１１１の番号０のコマには「ベル」の図柄、右リール１１１２の番号２のコマには「スイカ」の図柄、がそれぞれ配置されている。
【０３５５】
＜入賞役の種類＞
次に、図４５（ｂ）を用いて、スロットマシン１１００の入賞役の種類について説明する。なお、同図は入賞役（作動役を含む）の種類、各入賞役に対応する図柄組合せ、各入賞役の作動または払出を示している。
【０３５６】
本実施形態における入賞役のうち、ビッグボーナス（ＢＢ１、ＢＢ２）および、レギュラーボーナス（ＲＢ）はボーナス遊技に移行する役として、また、再遊技（リプレイ）は新たにメダルを投入することなく再遊技が可能となる役として、それぞれ入賞役とは区別され「作動役」と呼ばれる場合があるが、本実施形態における「入賞役」には、作動役である、ビッグボーナス、レギュラーボーナス、再遊技が含まれる。また、本実施形態における「入賞」には、メダルの配当を伴わない（メダルの払い出しを伴わない）作動役の図柄組合せが有効ライン上に表示される場合も含まれ、例えば、ビッグボーナス、レギュラーボーナス、再遊技への入賞が含まれる。
【０３５７】
スロットマシン１１００の入賞役には、ビッグボーナス（ＢＢ１、ＢＢ２）と、レギュラーボーナス（ＲＢ）と、小役（チェリー、スイカ、ベル）と、再遊技（リプレイ）がある。なお、入賞役の種類は、これに限定されるものではなく、任意に採用できることは言うまでもない。
【０３５８】
「ビッグボーナス（ＢＢ１、ＢＢ２）」（以下、単に、「ＢＢ」と称する場合がある）は、入賞により特別遊技であるビッグボーナス遊技（ＢＢ遊技）が開始される特別役（作動役）である。対応する図柄組合せは、ＢＢ１が「白７−白７−白７」、ＢＢ２が「青７−青７−青７」である。また、ＢＢ１、ＢＢ２についてはフラグ持越しを行う。すなわち、ＢＢ１、ＢＢ２に内部当選すると、これを示すフラグが立つ（主制御部１３００のＲＡＭ１３０８の当否判定結果記憶領域に記憶される）が、その遊技においてＢＢ１、ＢＢ２に入賞しなかったとしても、入賞するまで内部当選を示すフラグが立った状態が維持され、次遊技以降でもＢＢ１、ＢＢ２に内部当選中となり、ＢＢ１に対応する図柄組み合わせ「白７−白７−白７」、ＢＢ２に対応する図柄組み合わせ「青７−青７−青７」が、揃って入賞する状態にある。
【０３５９】
「レギュラーボーナス（ＲＢ）」は、入賞によりレギュラーボーナス遊技（ＲＢ遊技）が開始される特殊役（作動役）である。対応する図柄組合せは、「ボーナス−ボーナス−ボーナス」である。なお、ＲＢについても上述のＢＢと同様にフラグ持越しを行う。但し、（詳細は後述するが）ビッグボーナス遊技（ＢＢ遊技）においては、レギュラーボーナス遊技（ＲＢ遊技）が内部当選することや、図柄組み合わせが入賞ライン上に表示されること、を開始条件とせずに、ビッグボーナス遊技の開始後からレギュラーボーナス遊技を開始し、１回のレギュラーボーナス遊技を終了した場合には次のレギュラーボーナス遊技をすぐに開始するような自動的にレギュラーボーナス遊技を開始させる設定としてもよい。  「小役（チェリー、スイカ、ベル）」（以下、単に、「チェリー」、「スイカ」、「ベル」と称する場合がある）は、入賞により所定数のメダルが払い出される入賞役で、対応する図柄組合せは、チェリーが「チェリー−ＡＮＹ−ＡＮＹ」、スイカが「スイカ−スイカ−スイカ」、ベルが「ベル−ベル−ベル」である。また、対応する払出枚数は同図に示す通りである。なお、「チェリー−ＡＮＹ−ＡＮＹ」の場合、左リール１１１０の図柄が「チェリー」であればよく、中リール１１１１と右リール１１１２の図柄はどの図柄でもよい。
【０３６０】
「再遊技（リプレイ）」は、入賞により次回の遊技でメダル（遊技媒体）の投入を行うことなく遊技を行うことができる入賞役（作動役）であり、メダルの払出は行われない。なお、対応する図柄組合せは、再遊技は「リプレイ−リプレイ−リプレイ」である。
＜遊技状態の種類＞
次に、スロットマシン１１００の遊技状態の種類について説明する。遊技状態とは、抽選などにおいて選択する抽選データの種別を識別するための情報である。本実施形態では、スロットマシン１１００の遊技状態は、通常遊技と、ＢＢ遊技と、ＲＢ遊技と、ビッグボーナス（ＢＢ）およびレギュラーボーナス（ＲＢ）の内部当選遊技と、に大別した。但し、内部当選遊技は、通常遊技に含まれる区分けであってもよい。 
＜通常遊技＞
通常遊技に内部当選する入賞役には、ビッグボーナス（ＢＢ）と、レギュラーボーナス（ＲＢ）と、再遊技（リプレイ）と、小役（チェリー、スイカ、ベル）がある。
【０３６１】
「ビッグボーナス（ＢＢ）」は、入賞により特別遊技であるビッグボーナス遊技（ＢＢ遊技）が開始される特別役（作動役）である。レギュラーボーナス（ＲＢ）」は、入賞によりレギュラーボーナス遊技（ＲＢ遊技）を開始する特殊役（作動役）である。「再遊技（リプレイ）」は、入賞により次回の遊技でメダルの投入を行うことなく遊技を行うことができる入賞役（作動役）であり、メダルの払出も行われない。「小役」は、入賞により所定数のメダルが払い出される入賞役である。なお、各々の役の内部当選確率は、通常遊技に用意された抽選データから、各々の役に対応付けされた抽選データの範囲に該当する数値データを、内部抽選時に取得される乱数値の範囲の数値データ（例えば６５５３５）で除した値で求められる。通常遊技に用意された抽選データは、予めいくつかの数値範囲に分割され、各数値範囲に各々の役やハズレを対応付けしている。内部抽選を実行した結果得られた乱数値が、何れの役に対応する抽選データに対応する値であったかを判定し、内部抽選役を決定する。この抽選データは少なくとも１つの役の当選確率を異ならせた設定１〜設定６が用意され、遊技店の係員等はいずれかの設定値を任意に選択し、設定することができる。
【０３６２】
通常遊技は、内部抽選の結果が概ねハズレ（ビッグボーナス（ＢＢ）、レギュラーボーナス（ＲＢ）、再遊技（リプレイ）および小役に当選していない）となる設定、又は、停止表示結果がいずれの役の図柄組合せに該当しないハズレの停止表示結果が概ね導出される設定がされており、獲得するメダルの総数が、投入したメダルの総数に満たない遊技状態になっている。よって、遊技者にとっては不利益となる遊技状態である。但し、予め定めた条件を満たした場合（例えば、特定の図柄組み合わせが表示された場合）には、再遊技の内部当選の確率を上昇させる変動をさせてもよい遊技状態であり、この場合、遊技に用いられるメダルの消費が抑えられ、小役の入賞によって所定数のメダルが払い出されることにより、獲得するメダルの総数が、投入したメダルの総数を超える遊技状態になり、遊技者にとっては利益となる遊技状態になる場合がある。
【０３６３】
＜ＢＢ遊技＞
ＢＢ遊技は、遊技者にとっては利益となる遊技状態になるように設定されている。つまり、ＢＢ遊技は、獲得するメダルの総数が、投入したメダルの総数を超える遊技状態となる。ＢＢ遊技は、本実施形態では、ビッグボーナス（ＢＢ）の入賞により開始され、ＲＢ遊技（後述する）を連続して繰り返し実行可能になっており、遊技中に予め定められた一の数（例えば、４６５枚）を超えるメダルが獲得された場合に終了する。但し、ＢＢ遊技はＲＢ遊技を複数回数実行可能であればよく、例えば、ＲＢ遊技を開始する役（図柄組み合わせは例えば、リプレイ−リプレイ−リプレイ）を設定し、この役が内部当選した場合、または、入賞した場合に、ＲＢ遊技を開始するように設定してもよい。さらには、ＢＢ遊技は、ＢＢ遊技中のＲＢ遊技を除くＢＢ一般遊技を予め定めた回数（例えば、３０回）実行した場合、または、ＢＢ遊技中に実行したＲＢ遊技の回数が予め定めた回数に達した場合（例えば、３回）に終了するようにしてもよい。
【０３６４】
＜ＲＢ遊技＞
ＲＢ遊技は、遊技者にとっては利益となる遊技状態になるように設定されている。つまり、ＲＢ遊技は、獲得するメダルの総数が、投入したメダルの総数を超える遊技状態となる。ＲＢ遊技は、本実施形態では、レギュラーボーナス（ＲＢ）の入賞により開始され、予め定めた一の役が内部当選の確率を上昇させる変動（例えば、「設定１」「通常遊技」に設定された「小役１」の内部当選確率１／１５を、予め定めた一の値である内部当選確率１／１．２に上昇させる）をし、予め定めた一の数（例えば、８回）の入賞があった場合に終了する。ＲＢ遊技は、予め定めた回数（少なくとも２回）の入賞があった場合（例えば、８回）、または、ＲＢ遊技中に実行したＲＢ遊技の回数が予め定めた回数に達した場合（例えば、８回）に終了するようにしてもよい。上述したＢＢ遊技は、ＲＢ遊技を複数回数実行可能であるので、一回のＲＢ遊技を行った場合には、ＢＢ遊技で得られるメダルの総数よりも少ないメダル数を獲得して終了することとなる。
【０３６５】
＜ビッグボーナス（ＢＢ）およびレギュラーボーナス（ＲＢ）の内部当選遊技＞
ビッグボーナス（ＢＢ）およびレギュラーボーナス（ＲＢ）の内部当選遊技に内部当選する入賞役には、再遊技（リプレイ）と、小役がある。ビッグボーナス（ＢＢ）およびレギュラーボーナス（ＲＢ）は内部当選することはなく、ビッグボーナス（ＢＢ）かレギュラーボーナス（ＲＢ）に対応する図柄組み合わせを入賞させることが可能となっている遊技状態である。
【０３６６】
但し、ビッグボーナス（ＢＢ）およびレギュラーボーナス（ＲＢ）に内部当選した次遊技から、再遊技の内部当選の確率を変動させてもよく、例えば、再遊技の内部当選の確率を上昇させる変動をさせて、ビッグボーナス（ＢＢ）およびレギュラーボーナス（ＲＢ）対応する図柄組み合わせが入賞するまでの間は、獲得するメダルの総数が、投入したメダルの総数とほぼ同じとなる遊技状態とし、通常遊技と比べると遊技者にとっては利益となる遊技状態としてもよい。なお、ＢＢ遊技、ＲＢ遊技は両者とも遊技者にとって利益となる遊技状態であるため、総じて、ボーナス遊技、又は、特別遊技と称する場合がある。
【０３６７】
＜主制御部メイン処理＞
図４６を用いて、主制御部１３００のＣＰＵ１３０４が実行する主制御部メイン処理について説明する。なお、同図は主制御部メイン処理の流れを示すフローチャートである。
【０３６８】
上述したように、主制御部１３００には、電源が投入されると起動信号（リセット信号）を出力する起動信号出力回路（リセット信号出力回路）１３３８を設けている。この起動信号を入力した基本回路１３０２のＣＰＵ１３０４は、リセット割込によりリセットスタートしてＲＯＭ１３０６に予め記憶している制御プログラムに従って、この主制御部メイン処理を実行する。
【０３６９】
電源投入が行われると、まず、ステップＳ２１０１で各種の初期設定を行う。この初期設定では、ＣＰＵ１３０４のスタックポインタ（ＳＰ）へのスタック初期値の設定、割込禁止の設定、Ｉ／Ｏ１３１０の初期設定、ＲＡＭ１３０８に記憶する各種変数の初期設定、ＷＤＴ１３１４への動作許可及び初期値の設定等を行う。ステップＳ２１０３ではメダル投入・スタート操作受付処理を実行する。ここではメダルの投入の有無をチェックし、メダルの投入に応じて入賞ライン表示ランプ１１２０を点灯させる。なお、前回の遊技で再遊技に入賞した場合は、前回の遊技で投入されたメダル枚数と同じ数のメダルを投入する処理を行うので、遊技者によるメダルの投入が不要となる。また、スタートレバー１１３５が操作されたか否かのチェックを行い、スタートレバー１１３５の操作があればステップＳ２１０５へ進む。
【０３７０】
ステップＳ２１０５では投入されたメダル枚数を確定し、有効な入賞ラインを確定する。ステップＳ２１０７では乱数発生回路１３１６で発生させた乱数を取得する。ステップＳ２１０９では、現在の遊技状態に応じてＲＯＭ１３０６に格納されている入賞役抽選テーブルを読み出し、これとステップＳ２１０７で取得した乱数値とを用いて内部抽選を行う。内部抽選の結果、いずれかの入賞役（作動役を含む）に内部当選した場合、その入賞役のフラグがＯＮになる。ステップＳ２１１１では内部抽選結果に基づき、リール停止データを選択する。
【０３７１】
ステップＳ２１１３では全リール１１１０乃至１１１２の回転を開始させる。ステップＳ２１１５では、ストップボタン１１３７乃至１１３９の受け付けが可能になり、いずれかのストップボタンが押されると、押されたストップボタンに対応するリール１１１０乃至１１１２の何れかをステップＳ２１１１で選択したリール停止制御データに基づいて停止させる。全リール１１１０乃至１１１２が停止するとステップＳ２１１７へ進む。ステップＳ２１１７では、入賞判定を行う。ここでは、有効化された入賞ライン１１１４上に、何らかの入賞役に対応する図柄組合せが表示された場合にその入賞役に入賞したと判定する。例えば、有効化された入賞ライン上に「ベル−ベル−ベル」が揃っていたならばベル入賞と判定する。ステップＳ２１１９では払い出しのある何らかの入賞役に入賞していれば、その入賞役に対応する枚数のメダルを入賞ライン数に応じて払い出す。ステップＳ２１２１では遊技状態制御処理を行う。遊技状態制御処理では、通常遊技、ＢＢ遊技、ＲＢ遊技、内部当選遊技、の各遊技状態の移行に関する処理を行い、それらの開始条件、終了条件の成立により、遊技状態を移行する。以上により１ゲームが終了する。以降ステップＳ２１０３へ戻って上述した処理を繰り返すことにより遊技が進行することになる。
【０３７２】
＜主制御部１３００タイマ割込処理＞
次に、図４７を用いて、主制御部１３００のＣＰＵ１３０４が実行する主制御部タイマ割込処理について説明する。なお、同図は主制御部タイマ割込処理の流れを示すフローチャートである。
【０３７３】
主制御部１３００は、所定の周期（本実施形態では約２ｍｓに１回）でタイマ割込信号を発生するカウンタタイマ１３１２を備えており、このタイマ割込信号を契機として主制御部タイマ割込処理を所定の周期で開始する。
【０３７４】
ステップＳ２２０１では、タイマ割込開始処理を行う。このタイマ割込開始処理では、ＣＰＵ１３０４の各レジスタの値をスタック領域に一時的に退避する処理などを行う。ステップＳ２２０３では、ＷＤＴ１３１４のカウント値が初期設定値（本実施形態では３２．８ｍｓ）を超えてＷＤＴ割込が発生しないように（処理の異常を検出しないように）、ＷＤＴ１３１４を定期的に（本実施形態では、主制御部タイマ割込の周期である約２ｍｓに１回）リスタートを行う。
【０３７５】
ステップＳ２２０５では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、Ｉ／Ｏ１３１０の入力ポートを介して、各種センサ１３１８のセンサ回路１３２０の検出信号を入力して検出信号の有無を監視し、ＲＡＭ１３０８に各種センサ１３１８ごとに区画して設けた信号状態記憶領域に記憶する。
【０３７６】
ステップＳ２２０７では、各種遊技処理を行う。具体的には、割込みステータスを取得し（各種センサ１３１８からの信号に基づいて各種割込みステータスを取得する）、このステータスに従った処理を行う（例えば、取得した各ストップボタン１１３７乃至１１３９の割込みステータスに基づいて、停止ボタン受付処理を行う）。ステップＳ２２０９では、タイマ更新処理を行う。各種タイマをそれぞれの時間単位により更新する。
【０３７７】
ステップＳ２２１１では、コマンド設定送信処理を行い、各種のコマンドが第１副制御部１４００に送信される。なお、第１副制御部１４００に送信する出力予定情報は本実施形態では１６ビットで構成しており、ビット１５はストローブ情報（オンの場合、データをセットしていることを示す）、ビット１１〜１４はコマンド種別（本実施形態では、基本コマンド、スタートレバー受付コマンド、演出抽選処理に伴う演出コマンド、リール１１１０乃至１１１２の回転を開始に伴う回転開始コマンド、ストップボタン１１３７乃至１１３９の操作の受け付けに伴う停止ボタン受付コマンド、リール１１１０乃至１１１２の停止処理に伴う停止位置情報コマンド、メダル払出処理に伴う払出枚数コマンド及び払出終了コマンド、遊技状態を示すコマンド等）、ビット０〜１０はコマンドデータ（コマンド種別に対応する所定の情報）で構成されている。第１副制御部１４００では、受信した出力予定情報に含まれるコマンド種別により、主制御部１３００における遊技制御の変化に応じた演出制御の決定が可能になるとともに、出力予定情報に含まれているコマンドデータの情報に基づいて、演出制御内容を決定することができるようになる。
【０３７８】
ステップＳ２２１３では、外部出力信号設定処理を行う。この外部出力信号設定処理では、ＲＡＭ１３０８に記憶している遊技情報を、情報出力回路１３３４を介してスロットマシン１１００とは別体の情報入力回路１６５２に出力する。
【０３７９】
ステップＳ２２１５では、デバイス監視処理を行う。このデバイス監視処理では、まずはステップＳ２２０５において信号状態記憶領域に記憶した各種センサ１３１８の信号状態を読み出して、メダル投入異常及びメダル払出異常等に関するエラーの有無を監視し、エラーを検出した場合には（図示省略）エラー処理を実行させる。さらに、現在の遊技状態に応じて、メダルセレクタ１１７０（メダルセレクタ１１７０内に設けたソレノイドが動作するメダルブロッカ）、各種ランプ１３３８、各種の７セグメント（ＳＥＧ）表示器の設定を行う。
【０３８０】
ステップＳ２２１７では、低電圧信号がオンであるか否かを監視する。そして、低電圧信号がオンの場合（電源の遮断を検知した場合）にはステップＳ２２２１に進み、低電圧信号がオフの場合（電源の遮断を検知していない場合）にはステップＳ２２１９に進む。
【０３８１】
ステップＳ２２１９では、タイマ割込終了処理を終了する各種処理を行う。このタイマ割込終了処理では、ステップＳ２２０１で一時的に退避した各レジスタの値を元の各レジスタに設定等行う。その後、主制御部メイン処理に復帰する。一方、ステップＳ２２２１では、復電時に電断時の状態に復帰するための特定の変数やスタックポインタを復帰データとしてＲＡＭ１３０８の所定の領域に退避し、入出力ポートの初期化等の電断処理を行い、その後、主制御部メイン処理に復帰する。
【０３８２】
＜第１副制御部４００の処理＞
次に、図４８を用いて、第１副制御部１４００の処理について説明する。なお、同図（ａ）は、第１副制御部１４００のＣＰＵ１４０４が実行するメイン処理のフローチャートであり、同図（ｂ）は、第１副制御部１４００のコマンド受信割込処理のフローチャートである。また、同図（ｃ）は、第１副制御部１４００のタイマ割込処理のフローチャートである。
【０３８３】
まず、同図（ａ）のステップＳ２３０１では、各種の初期設定を行う。電源投入が行われると、まずステップＳ２３０１で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、ＲＡＭ１４０８内の記憶領域の初期化処理等を行う。
【０３８４】
ステップＳ２３０３では、タイマ変数が１０以上か否かを判定し、タイマ変数が１０となるまでこの処理を繰り返し、タイマ変数が１０以上となったときには、ステップＳ２３０５の処理に移行する。ステップＳ２３０５では、タイマ変数に０を代入する。ステップＳ２３０７では、コマンド処理を行う。コマンド処理では第１副制御部１４００のＣＰＵ１４０４は、主制御部１３００からコマンドを受信したか否かを判別する。
【０３８５】
ステップＳ２３０９では、演出制御処理を行う。この演出制御処理では、例えば、ステップＳ２３０７で新たなコマンドがあった場合には、このコマンドに対応する処理を行う。この処理には、例えば、演出データをＲＯＭ１４０６から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行うことが含まれる。
【０３８６】
ステップＳ２３１１では、ステップ２３０９の処理結果に基づいて音制御処理を行う。例えば、ステップＳ２３０９で読み出した演出データの中に音源ＩＣ１４１８への命令がある場合には、この命令を音源ＩＣ１４１８に出力する。ステップＳ２３１３では、ステップ２３０９の処理結果に基づいてランプ制御処理を行う。例えば、ステップＳ２３０９で読み出した演出データの中に各種ランプ１４２０への命令がある場合には、この命令を駆動回路１４２２に出力する。
【０３８７】
ステップＳ２３１５では、ステップ２３０９の処理結果に基づいて第２副制御部５００に制御コマンドを送信する設定を行う情報出力処理を行う。例えば、ステップＳ２３０９で読み出した演出データの中に第２副制御部１５００に送信する制御コマンドがある場合には、この制御コマンドを出力する設定を行い、ステップＳ２３０３へ戻る。
【０３８８】
次に、同図（ｂ）を用いて、第１副制御部１４００のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第１副制御部１４００が、主制御部１３００が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップＳ２４０１では、主制御部１３００が出力したコマンドを未処理コマンドとしてＲＡＭ１４０８に設けたコマンド記憶領域に記憶する。
【０３８９】
次に、同図（ｃ）を用いて、第１副制御部１４００のＣＰＵ１４０４によって実行する第１副制御部タイマ割込処理について説明する。第１副制御部１４００は、所定の周期（本実施形態では２ｍｓに１回）でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【０３９０】
ステップＳ２５０１では、第１副制御部メイン処理におけるステップＳ２３０３において説明したＲＡＭ１４０８のタイマ変数記憶領域の値に、１を加算して元のタイマ変数記憶領域に記憶する。従って、ステップＳ２３０３において、タイマ変数の値が１０以上と判定されるのは２０ｍｓ毎（２ｍｓ×１０）となる。ステップＳ２５０３では、ステップＳ２３１５で設定された第２副制御部１５００への制御コマンドの送信や、演出用乱数値の更新処理等を行う。
【０３９１】
＜第２副制御部５００の処理＞
次に、図４９を用いて、第２副制御部１５００の処理について説明する。なお、同図（ａ）は、第２副制御部１５００のＣＰＵ１５０４が実行するメイン処理のフローチャートであり、同図（ｂ）は、第２副制御部１５００のコマンド受信割込処理のフローチャートである。また、同図（ｃ）は、第２副制御部１５００のタイマ割込処理のフローチャートであり、同図（ｄ）は、第２副制御部１５００の画像制御処理のフローチャートである。
【０３９２】
まず、同図（ａ）のステップＳ２６０１では、各種の初期設定を行う。電源投入が行われると、まずステップＳ２６０１で初期化処理が実行される。この初期化処理では、入出力ポート初期設定や、ＲＡＭ１５０８内の記憶領域の初期化処理等を行う。
【０３９３】
ステップＳ２６０３では、タイマ変数が１０以上か否かを判定し、タイマ変数が１０となるまでこの処理を繰り返し、タイマ変数が１０以上となったときには、ステップＳ２６０５の処理に移行する。ステップＳ２６０５では、タイマ変数に０を代入する。
ステップＳ２６０７では、コマンド処理を行う。コマンド処理では第２副制御部１５００のＣＰＵ１５０４は、第１副制御部１４００のＣＰＵ１４０４からコマンドを受信したか否かを判別する。
ステップＳ２６０９では、演出制御処理を行う。この演出制御処理では、例えば、ステップＳ２６０７で新たなコマンドがあった場合には、このコマンドに対応する処理を行う。この処理には、例えば、演出データをＲＯＭ１５０６から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行うことが含まれる。
【０３９４】
ステップＳ２６１１では、ステップＳ２６０９の処理結果に基づいてシャッタ制御処理を行う。例えば、ステップＳ２６０９で読み出した演出データの中にシャッタ制御の命令がある場合には、この命令に対応するシャッタ制御を行う。ステップＳ２６１３では、ステップＳ２６０９の処理結果に基づいて画像制御処理を行う。例えば、ステップＳ２６０９読み出した演出データの中に画像制御の命令がある場合には、この命令に対応する画像制御を行い（詳細は後述する）、ステップＳ２６０３へ戻る。
【０３９５】
次に、同図（ｂ）を用いて、第２副制御部１５００のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第２副制御部１５００が、第１副制御部１４００が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップＳ２７０１では、第１副制御部１４００が出力したコマンドを未処理コマンドとしてＲＡＭ１５０８に設けたコマンド記憶領域に記憶する。
【０３９６】
次に、同図（ｃ）を用いて、第２副制御部１５００のＣＰＵ１５０４によって実行する第２副制御部タイマ割込処理について説明する。第２副制御部１５００は、所定の周期（本実施形態では２ｍｓに１回）でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
【０３９７】
ステップＳ２８０１では、第２副制御部メイン処理におけるステップＳ２６０３において説明したＲＡＭ１５０８のタイマ変数記憶領域の値に、１を加算して元のタイマ変数記憶領域に記憶する。従って、ステップＳ２６０３において、タイマ変数の値が１０以上と判定されるのは２０ｍｓ毎（２ｍｓ×１０）となる。ステップＳ２８０３では、演出用乱数値の更新処理等を行う。
【０３９８】
次に、同図（ｄ）を用いて、第２副制御部１５００のメイン処理におけるステップＳ２６１３の画像制御処理について説明する。同図は、画像制御処理の流れを示すフローチャートを示した図である。
【０３９９】
ステップＳ２９０１では、画像データの転送指示を行う。ここでは、ＣＰＵ１５０４は、まず、ＶＲＡＭ１５３６の表示領域Ａと表示領域Ｂの描画領域の指定をスワップする。これにより、描画領域に指定されていない表示領域に記憶された１フレームの画像が演出画像表示装置１１５７に表示される。次に、ＣＰＵ１５０４は、ＶＤＰ１５３４のアトリビュートレジスタに、位置情報等テーブルに基づいてＲＯＭ座標（ＲＯＭ１５０６の転送元アドレス）、ＶＲＡＭ座標（ＶＲＡＭ１５３６の転送先アドレス）などを設定した後、ＲＯＭ１５０６からＶＲＡＭ１５３６への画像データの転送開始を指示する命令を設定する。ＶＤＰ１５３４は、アトリビュートレジスタに設定された命令に基づいて画像データをＲＯＭ１５０６からＶＲＡＭ１５３６に転送する。その後、ＶＤＰ１５３４は、転送終了割込信号をＣＰＵ１５０４に対して出力する。
【０４００】
ステップＳ２９０３では、ＶＤＰ１５３４からの転送終了割込信号が入力されたか否かを判定し、転送終了割込信号が入力された場合はステップＳ２９０５に進み、そうでない場合は転送終了割込信号が入力されるのを待つ。ステップＳ２９０５では、演出シナリオ構成テーブルおよびアトリビュートデータなどに基づいて、パラメータ設定を行う。ここでは、ＣＰＵ１５０４は、ステップＳ２９０１でＶＲＡＭ１５３６に転送した画像データに基づいてＶＲＡＭ１５３６の表示領域ＡまたはＢに表示画像を形成するために、表示画像を構成する画像データの情報（ＶＲＡＭ１５３６の座標軸、画像サイズ、ＶＲＡＭ座標（配置座標）など）をＶＤＰ１５３４に指示する。ＶＤＰ１５３４はアトリビュートレジスタに格納された命令に基づいてアトリビュートに従ったパラメータ設定を行う。
【０４０１】
ステップＳ２９０７では、描画指示を行う。この描画指示では、ＣＰＵ１５０４は、ＶＤＰ１５３４に画像の描画開始を指示する。ＶＤＰ１５３４は、ＣＰＵ１５０４の指示に従ってフレームバッファにおける画像描画を開始する。ステップＳ２９０９では、画像の描画終了に基づくＶＤＰ１５３４からの生成終了割込み信号が入力されたか否かを判定し、生成終了割込み信号が入力された場合はステップＳ２９１１に進み、そうでない場合は生成終了割込み信号が入力されるのを待つ。ステップＳ２９１１では、ＲＡＭ１５０８の所定の領域に設定され、何シーンの画像を生成したかをカウントするシーン表示カウンタをインクリメント（＋１）して処理を終了する。
【０４０２】
このようなスロットマシン１１００の主制御部１３００に対しても、次に説明する本発明の特徴点の一つ、複数、または全てを適用することができる。
【０４０３】
以上説明したように、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、複数のアドレスそれぞれで示される記憶領域（例えば、ＲＯＭ領域）に制御プログラムデータを含む複数種類のデータ（例えば、非使用データや参照データ）を記憶したＲＯＭ（例えば、ＲＯＭ３０６）と、前記ＲＯＭに記憶された前記制御プログラムデータに基づいて所定の周期毎に実行される割込み処理（例えば、主制御部タイマ割込み処理）を含む複数種類の遊技制御処理を実行するＣＰＵ（例えば、ＣＰＵ３０４）と、を備え、前記ＲＯＭは、１又は複数の前記制御プログラムデータであって、前記ＣＰＵが実行する複数種類の命令それぞれに対応した命令データ（オペコード）と、１又は複数の前記制御プログラムデータであって、前記ＣＰＵが該命令を実行するために必要な補足データ（オペランド）と、を記憶し、該命令データであって、特定のアドレス（例えば、サブルーチンの先頭のアドレス）を識別可能にする特定識別情報（例えば、サブルーチンの先頭のアドレスをバイナリ形式で表現した情報）の一部である第１の識別情報を示す第１のアドレスデータ（例えば、ｍ）および該第１のアドレスデータと異なる別データ（例えば、ＥＸＥＳＵＢ命令の命令データからｍを除いたデータ）で構成され、該特定のアドレスで示される記憶領域に記憶されたデータを前記ＣＰＵに読み込ませる特定命令（例えば、ＥＸＥＳＵＢ命令）に対応した特定命令データ（例えば、ＥＸＥＳＵＢ命令の命令データ）と、該補足データであって、該特定識別情報から該第１の識別情報を除いた情報のうちの少なくとも一部である第２の識別情報を示す第２のアドレスデータ（例えば、ｎ）で構成され、前記ＣＰＵが該特定命令を実行するために必要な特定補足データと、を前記割込み処理で実行される命令に対応するように（例えば、ＲＯＭ制御領域のうちタイマ割り込み処理の領域に対応するＲＯＭ３０６の記憶領域（タイマ割込み処理に対応したアドレスで示される記憶領域）に）記憶していることを特徴とする遊技台である。
【０４０４】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、命令データに含まれる第１のアドレスデータｍを上位アドレスのデータとして定義することで、アドレス領域に対して命令データをグループ化して対応付けることができ、コーディングミスを抑制することができる場合がある。また、命令データは、呼び出すサブルーチンの先頭アドレスの一部を構成するデータを含んで構成されていることから、移動先のアドレスデータを間違ってしまった場合であっても、間違ってしまったデータが命令データに含まれていれば、制御プログラムの実行が停止される場合があるため、コーディングミスを抑制することができる場合がある。また、従来のサブルーチンを呼び出す制御命令（例えば、ＣＡＬＬ命令）を圧縮することができ、ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域に記憶されている従来の制御プログラムデータを圧縮することが可能となる。また、制御プログラムの圧縮に起因して従来（例えば、ＣＡＬＬ命令）よりもサブルーチンを呼び出す制御プログラムの処理速度を向上させる（ステート数を少なくする）ことができる場合がある。
【０４０５】
また、前記ＲＯＭは、少なくとも前記第１の識別情報、前記第２の識別情報の順序に定義することにより前記特定のアドレスを識別可能にする前記特定識別情報（例えば、ｍｎ）のうち、前記第１の識別情報を示す前記第１のアドレスデータおよび前記別データで構成される前記特定命令データと、該特定識別情報のうち前記第２の識別情報を示す前記第２のアドレスデータで構成される前記特定補足データと、を前記割込み処理で実行される命令に対応するように記憶してもよい。
【０４０６】
このような構成とすれば、命令データは、呼び出すサブルーチンの先頭アドレスの一部を構成するデータを含んで構成されていることから、移動先のアドレスデータを間違ってしまった場合であっても、間違ってしまったデータが命令データに含まれていれば、制御プログラムの実行が停止されるため、コーディングミスを抑制することができる場合がある。
【０４０７】
また、前記ＲＯＭは、少なくとも前記第１のアドレスデータの一部である第１の構成データ（例えば、ＥＸＥＳＵＢ命令の命令データのビット７）、前記別データの少なくとも一部である第２の構成データ（例えば、ＥＸＥＳＵＢ命令の命令データのビット６〜３）、前記第１のアドレスデータから該第１の構成データを除いた第３の構成データ（例えば、ＥＸＥＳＵＢ命令の命令データのビット２〜０）の順序で構成された前記特定命令データをを前記割込み処理で実行される命令に対応するように記憶してもよい。
【０４０８】
このような構成とすれば、命令データをグループ化しつつも、きめ細かく命令データテーブルの空き領域に割り当てることが可能になる。よって、限られたハードウェア資源（例えば、１バイトで定義可能なパターン（２５６パターン））を有効利用することができ、命令データの圧縮によるＲＯＭ制御領域に対応するＲＯＭの記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。
【０４０９】
また、前記第３の構成データ（例えば、ＥＸＥＳＵＢ命令の命令データのビット２〜０）が前記第１の構成データ（例えば、ＥＸＥＳＵＢ命令の命令データのビット７）と比較してデータ容量が大きくなる、または、前記第１の構成データが前記第３の構成データと比較してデータ容量が大きくなる（例えば、３ビットに対して１ビット）ように構成された前記特定命令データを前記割込み処理で実行される命令に対応するように記憶してもよい。
【０４１０】
このような構成とすれば、命令データをグループ化しつつも、きめ細かく命令データテーブルの空き領域に割り当てることが可能になる。よって、限られたハードウェア資源（例えば、１バイトで定義可能なパターン（２５６パターン））を有効利用することができ、命令データの圧縮によるＲＯＭ制御領域に対応するＲＯＭの記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。
【０４１１】
また、前記ＲＯＭは、前記特定命令の実行により前記ＣＰＵが読み込み可能なデータが記憶されている特定の記憶領域（例えば、００００Ｈ〜０ＦＦＦＨや００００Ｈ〜１１ＦＦＨ）に全ての前記制御プログラムデータを記憶するとともに、該特定の記憶領域から前記制御プログラムデータが記憶された制御記憶領域（例えば、ＲＯＭ制御領域に対応するＲＯＭ３０６の記憶領域）を除いた記憶領域（例えば、非使用領域に対応するＲＯＭ３０６の記憶領域）の全てに前記遊技制御処理の実行に使用されない非使用データ（例えば、００Ｈ）を記憶するようにしてもよい。
【０４１２】
このような構成とすれば、ＣＰＵ３０４が非使用データおよび制御プログラムデータを除くデータ（例えば、参照データや管理データ）を直接命令データとして読み込まれることがないため、補足データのコーディングミスによるＣＰＵ３０４の誤作動を防止できる場合がある。
【０４１３】
また、前記ＲＯＭは、複数のアドレスそれぞれで示される記憶領域に特定のデータ長（例えば、１バイト（８ビット））で表される複数種類のデータを記憶するものであり、前記ＣＰＵは、前記ＲＯＭの記憶された一のアドレスに示される記憶領域に記憶されたデータを一処理毎に読み込むことで前記割込み処理を含む複数種類の遊技制御処理を実行するものであり、前記ＲＯＭは、さらに、前記特定のデータ長の２以上の整数倍である第１のデータ長（例えば、２バイト（１６ビット））で表現される前記特定のアドレスを識別可能な前記特定識別情報の一部である前記第１の識別情報を示す前記第１のアドレスデータおよび前記別データで構成される前記特定命令データと、該第１のデータ長よりも前記特定のデータ長の整数倍のデータ長だけ短い第２のデータ長（例えば、１バイト（８ビット））で表現される前記第２のアドレスデータで構成される前記特定補足データと、を前記割込み処理で実行される命令に対応するように記憶してもよい。
【０４１４】
このような構成とすれば、命令データをグループ化しつつも、きめ細かく命令データテーブルの空き領域に割り当てることが可能になる。よって、限られたハードウェア資源（例えば、１バイトで定義可能なパターン（２５６パターン））を有効利用することができ、命令データの圧縮によるＲＯＭ制御領域に対応するＲＯＭの記憶領域に記憶されている従来の制御プログラムデータの圧縮が可能となる。
【０４１５】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１０）は、複数の制御プログラムデータで構成される制御プログラムを記憶しているＲＯＭ（例えば、ＲＯＭ３０６）と、前記制御プログラムに基づいて遊技制御を実行するＣＰＵ（例えば、ＣＰＵ３０４）と、を備え、前記ＲＯＭは、前記複数の制御プログラムデータのうち、第１のデータ（例えば、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データにおける、ビット６およびビット７）、第２のデータ（例えば、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データにおける、ビット５（α））、第３のデータ（例えば、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データにおける、ビット３およびビット４）、第４のデータ（例えば、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データにおける、ビット０（δ）、ビット１（γ）、ビット２（β））、第５のデータ（例えば、ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データにおける、補足データ（ｎ））を含んで構成された特定の制御プログラムデータ（ＥＸＥＳＵＢ命令（ＥＸＥＳＵＢｍｎ）の命令データを、少なくとも、該第２のデータ、該第３のデータ、該第４のデータ、順番に並べて（例えば、アドレスの若い順番）記憶するものであり、前記ＣＰＵは、前記特定の制御プログラムデータを読み込んだ場合に、前記第１および第３のデータを用いて特定される第１の命令（例えば、サブルーチンの先頭のアドレスを呼び出す命令）と、前記第２のデータ、前記第４のデータおよび前記第５のデータを用いて特定される第２の命令（例えば、呼び出すサブルーチンの先頭アドレスを特定する命令）と、で特定される特定命令（例えば、ＥＸＥＳＵＢ命令）を所定周期で実行される割込処理（例えば、タイマ割込み処理）中に実行することを特徴とする遊技台とも言える。
【０４１６】
なお、前記ＲＯＭは、前記第１のデータと前記第２のデータの間、前記第２のデータと前記第３のデータの間および前記第３のデータと前記第４のデータの間のうち少なくともいずれか１つのデータ間に別のデータを含んで構成される前記特定の制御プログラムデータを記憶するものであってもよいが、前記ＲＯＭは、前記第１のデータ、前記第２のデータ、前記第３のデータおよび前記第４のデータでのみで構成される前記特定の制御プログラムデータを記憶するものであると、よりアセンブル後の機械語のチェックが簡便になり、コーディングミスを抑制することができる。
【０４１７】
また、前記第１のデータ、前記第２のデータ、第３のデータおよび前記第４のデータを合わせたデータ長と、前記第４のデータのデータ長を同一のデータ長（例えば、１バイト（８ビット）長）としてもよい。さらに、前記ＣＰＵが一度に読み込むデータのデータ長と前記第４のデータのデータ長を同一のデータ長としても良い。
【０４１８】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、遊技の進行を中心とした遊技制御を行うＣＰＵ（例えば、ＣＰＵ３０４（またはＣＰＵ１３０４）を有する主制御部（例えば、主制御部３００（または主制御部１３００））と、前記主制御部の遊技制御に基づいて遊技の演出制御を行う副制御部（例えば、第１副制御部４００、第２副制御部５００（または、第１副制御部１４００、第２副制御部１５００））と、を備えた遊技台であって、前記ＣＰＵは、第一レジスタ（例えば、「ＰＯＰ  ＴＩ命令」、「ＰＵＳＨ  ＴＩ命令」などのロード命令で使うことができるが、演算命令では使うことができない（演算命令によって直接、自身の値を変化させることができない）Ｔレジスタ）と第二レジスタ（例えば、Ａレジスタ、Ｆレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタ、Ｈレジスタ、Ｌレジスタ、およびこれらの裏レジスタ）を備えるとともに、前記第一レジスタに前記第二レジスタを介してデータを転送する命令（例えば「ＬＤ  Ｔ，Ａ」命令のように、ＴレジスタにＡレジスタを介して直接、データを転送する命令）を備えず、前記第一レジスタに直値（イミディエイト値や即値ともいう）によりデータを設定する命令（例えば、「ＬＤ  Ｔ，７ＥＨ」命令）を備えることを特徴とする遊技台である。
【０４１９】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、第一のレジスタに対して直値でデータを転送するよう構成されているので、セットしているデータを確認し易くなる場合がある。また、第一のレジスタに対して他のレジスタを介してデータを転送できないように構成されているので、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。また、第一レジスタは直値によるデータの転送のみが認められているため、レジスタを介したデータの転送と直値によるデータの転送の両方が認められている他のレジスタよりも相対的に使用頻度が低くなる。このため、コーディングの見直し作業や、デバッグ（例えば、Ｔレジスタのトレースなど）の効率を高めることが可能となる。
【０４２０】
また、前記第二レジスタは、一の特定レジスタ（例えば、Ａレジスタ）と複数の非特定レジスタ（例えば、Ｆレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタ、Ｈレジスタ、Ｌレジスタ、およびこれらの裏レジスタ）で構成されており、前記ＣＰＵは、前記非特定レジスタに前記第一レジスタを介してデータを転送する命令（例えば、「ＬＤ  Ｂ，Ｔ」命令のように、ＢレジスタにＴレジスタを介してデータを転送する命令）を備えず、前記特定レジスタに前記第一レジスタを介してデータを転送する命令（例えば、「ＬＤ  Ａ，Ｔ」命令）を備えてもよい。
【０４２１】
このような構成とすれば、第一のレジスタを他のレジスタに比べて使いにくくすることができるため、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。
【０４２２】
また、前記第一レジスタおよび前記第二レジスタは、８ビット長の値を記憶可能な８ビットレジスタであり、前記非特定レジスタは、他のレジスタと合わせて１６ビット長の演算が可能なレジスタの組み合わせ（例えば、ＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタ）を構成可能なレジスタであるが、前記第一レジスタは、他のレジスタと合わせて前記１６ビット長の演算が可能なレジスタの組み合わせを構成不可能なレジスタであってもよい。
【０４２３】
このような構成とすれば、第一のレジスタを他のレジスタに比べて使いにくくすることができるため、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。なお、Ｔレジスタは、他のレジスタと合わせて１６ビット長の演算が可能なレジスタの組み合わせを構成不可能であるが、上述の通り、「ＰＵＳＨ  ＴＩ」命令や、「ＰＯＰ  ＴＩ」命令では、Ｉレジスタと合わせて１６ビット長の退避・復帰が可能である。換言すれば、Ｔレジスタは、演算命令のオペランドとしては利用できないが、転送命令のオペランドとしては利用することができるレジスタである。
【０４２４】
また、前記遊技制御に用いるデータを記憶する記憶手段を備え、前記記憶手段は、前記ＣＰＵが実行するプログラムを記憶するＲＯＭ（例えば、ＲＯＭ３０６（またはＲＯＭ１３０６））と、前記ＣＰＵが前記遊技制御を行う際に用いるデータを一時記憶可能なＲＡＭ（例えば、ＲＡＭ３０８（またはＲＡＭ１３０８））と、を少なくとも有し、前記ＣＰＵは、前記遊技制御を開始する前（例えば、「電源投入後、主制御部３００のＣＰＵ３０４がユーザプログラム（制御プログラム）を実行する前」、「システムリセット後、主制御部３００のＣＰＵ３０４がユーザプログラム（制御プログラム）を実行する前」、「セキュリティモードに移行した直後」、「セキュリティチェックの結果がＯＫとなってユーザモードに移行した直後」、「システムリセットによる初期化処理の期間中」など）に、前記ＲＡＭの先頭アドレスのうちの上位アドレスを示す特定の値（例えば、７ＥＨ)を、（前記プログラムによらずに、）前記第一レジスタに設定してもよい。
【０４２５】
このような構成とすれば、ＲＡＭのデータを読み書きする場合には、第一のレジスタをＲＡＭの上位アドレスを示す値として固定することで、ＲＡＭの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。
【０４２６】
また、プログラムを書き換えただけでは遊技を思い通りに制御することができないため、プログラムの書き換えによる不正行為を効果的に防止できる場合がある。特に、ＣＰＵのユーザによって設定されたユーザプログラムを実行可能なユーザモードと、該ユーザプログラムを実行不可能な非ユーザモード（例えば、セキュリティモード）と、を備え、該非ユーザモードにおいて前記特定の値を第一レジスタに設定すれば、特定の値が他の値に改ざんされたり、特定の値が読みだされたりするような不正行為を未然に防止できる場合がある。
【０４２７】
また、前記ＲＡＭは、第一エリア（例えば、７Ｅ００Ｈ〜７ＥＦＦＨのワークエリア（または、Ｉ／ＯマップドＩ／Ｏ方式でアクセス可能なエリア））と第二エリア（例えば、７ＦＥ０Ｈ〜７ＦＦＦＨのスタックエリア（または、メモリマップドＩ／Ｏ方式でアクセス可能なエリア））を有して構成されており、前記特定の値は、前記第一エリアの上位アドレス（７ＥＨ）を示す値であってもよい。
【０４２８】
このような構成とすれば、ＲＡＭの第一エリアのデータを読み書きする場合には、第一のレジスタをＲＡＭの第一エリアの上位アドレスを示す値として固定することで、ＲＡＭの第一エリアの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。また、第一エリアの上位アドレスを固定することによって、第一エリアの読み書きを行うつもりが誤って第二エリアの読み書きを行ってしまうようなミスを未然に防止できる場合がある。
【０４２９】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、遊技の進行を中心とした遊技制御を行うＣＰＵ（例えば、ＣＰＵ３０４（またはＣＰＵ１３０４）と、前記遊技制御に用いるデータを記憶する記憶手段と、を備えた遊技台であって、前記記憶手段は、前記ＣＰＵが実行するプログラムを記憶するＲＯＭ（例えば、ＲＯＭ３０６（またはＲＯＭ１３０６））と、前記ＣＰＵが前記遊技制御を行う際に用いるデータを一時記憶可能なＲＡＭ（例えば、ＲＡＭ３０８（またはＲＡＭ１３０８））と、を少なくとも有し、前記ＣＰＵは、前記遊技制御を開始する前（例えば、「電源投入後、主制御部３００のＣＰＵ３０４がユーザプログラム（制御プログラム）を実行する前」、「システムリセット後、主制御部３００のＣＰＵ３０４がユーザプログラム（制御プログラム）を実行する前」、「セキュリティモードに移行した直後」、「セキュリティチェックの結果がＯＫとなってユーザモードに移行した直後」、「システムリセットによる初期化処理の期間中」など）に、前記ＲＡＭの先頭アドレスのうちの上位アドレスを示す特定の値（例えば、７ＥＨ)を、（前記プログラムによらずに、）特定レジスタ（例えば、ＲＯＭ３０６とは別体のＣＰＵ３０４に内蔵されたＴレジスタ）に設定することを特徴とする遊技台である。
【０４３０】
また、本実施形態に係る遊技機は、ＣＰＵ（例えば、ＣＰＵ１３０４）と、ＲＡＭ（例えば、ＲＡＭ１３０８）と、遊技制御プログラムが少なくとも記憶されたＲＯＭ（例えば、ＲＯＭ１３０６）と、を少なくとも内蔵するマイクロコンピュータ（例えば、基本回路１３０２）を備えた遊技台であって、前記遊技台は、スロットマシン（例えば、スロットマシン１１００）であり、前記ＲＡＭの先頭アドレスの上位バイトは、前記ＲＯＭの先頭アドレスの上位バイトよりも大きく、前記ＣＰＵは、少なくとも第一のレジスタ（例えば、Ｔレジスタ）を有し、前記第一のレジスタは、複数の方法のうちのいずれかの方法で値をセット可能なレジスタであり、前記複数の方法のうちの少なくとも一つは、第一の方法であり、前記複数の方法のうちの少なくとも一つは、第二の方法であり、前記第一の方法は、直値により値をセットする方法であり、前記第二の方法は、前記ＲＡＭの先頭アドレスの上位バイトと同じ値（例えば、７ＥＨ)を初期値としてセットする方法であり、前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、ＬＤ命令を受けたことに基づいて行われる機能としては、前記第一の方法により値がセットされる機能（例えば、直値をＴレジスタにロードする（ＬＤ  Ｔ，直値）命令）のみを有し、前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、前記ＬＤ命令を受けたことに基づいて行われる機能以外の機能としては、前記第二の方法により値がセットされる機能を少なくとも有し、前記第二の方法は、前記遊技制御プログラムによらずに実行され、前記遊技制御プログラムは、前記複数の方法のうちのいずれかの方法で値がセットされた前記第一のレジスタを用いて前記ＲＡＭをアクセスする命令を少なくとも含むプログラムである、ことを特徴とする遊技台である。
また、本実施形態に係る遊技機は、ＣＰＵ（例えば、ＣＰＵ３０４）と、ＲＡＭ（例えば、ＲＡＭ３０８）と、遊技制御プログラムが少なくとも記憶されたＲＯＭ（例えば、ＲＯＭ３０６）と、を少なくとも内蔵するマイクロコンピュータ（例えば、基本回路３０２）を備えた遊技台であって、前記遊技台は、ぱちんこ機（例えば、パチンコ機１００）であり、前記ＲＡＭの先頭アドレスの上位バイトは、前記ＲＯＭの先頭アドレスの上位バイトよりも大きく、前記ＣＰＵは、少なくとも第一のレジスタ（例えば、Ｔレジスタ）を有し、前記第一のレジスタは、複数の方法のうちのいずれかの方法で値をセット可能なレジスタであり、前記複数の方法のうちの少なくとも一つは、第一の方法であり、前記複数の方法のうちの少なくとも一つは、第二の方法であり、前記第一の方法は、直値により値をセットする方法であり、前記第二の方法は、前記ＲＡＭの先頭アドレスの上位バイトと同じ値（例えば、７ＥＨ)を初期値としてセットする方法であり、前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、ＬＤ命令を受けたことに基づいて行われる機能としては、前記第一の方法により値がセットされる機能（例えば、直値をＴレジスタにロードする（ＬＤ  Ｔ，直値）命令）のみを有し、前記ＣＰＵは、前記第一のレジスタに値をセットする機能のうち、前記ＬＤ命令を受けたことに基づいて行われる機能以外の機能としては、前記第二の方法により値がセットされる機能を少なくとも有し、前記第二の方法は、前記遊技制御プログラムによらずに実行され、前記遊技制御プログラムは、前記複数の方法のうちのいずれかの方法で値がセットされた前記第一のレジスタを用いて前記ＲＡＭをアクセスする命令を少なくとも含むプログラムである、ことを特徴とする遊技台である。
本実施形態に係る遊技台によれば、ＲＡＭのデータを読み書きする場合には、第一のレジスタをＲＡＭの上位アドレスを示す値として固定することで、ＲＡＭの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、第一のレジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。
また、前記ＬＤ命令とは、レジスタに値を転送するロード命令の一種のことであってもよい。また、前記第一のレジスタは、リセットが発生した場合に前記初期値がセットされるものでもよく、前記リセットとは、システムリセットのことであってもよい。また、前記複数の方法のうちの少なくとも一つは、第三の方法であり、前記第三の方法は、前記ＣＰＵにおける前記第一のレジスタに値をセットする機能のうち、前記ＬＤ命令を受けたことに基づいて行われる機能以外の機能による方法であり、前記第三の方法は、スタック操作命令を受けたことに基づいて行われる機能による方法であってもよい。
また、前記ＣＰＵは、少なくとも複数のレジスタを有し、前記複数のレジスタのうちの少なくとも一つは、前記第一のレジスタであり、前記複数のレジスタのうちの少なくとも一つは、第二のレジスタであり、前記第二のレジスタは、フラグレジスタであってもよい。
また、前記マイクロコンピュータは、セキュリティモードを経てユーザモードに移行可能なものであり、前記遊技制御プログラムは、前記ユーザモードにおいて、前記ＣＰＵによって実行され、前記セキュリティモードにおいて、前記遊技制御プログラムが正常なプログラムかどうかのチェックが行われるものでもよい。
また、前記マイクロコンピュータが少なくとも設けられた払出制御手段（例えば、払出制御部６００）を備え、前記払出制御手段は、少なくとも賞球を払出する払出制御を少なくとも実行可能な制御手段であり、前記遊技制御プログラムとは、払出制御プログラムのことであってもよい。
また、前記マイクロコンピュータが少なくとも設けられた主制御手段（例えば、主制御部３００）を備え、前記主制御手段は、少なくとも賞球を払出する払出制御を少なくとも実行可能な払出制御手段（例えば、払出制御部６００）に対して、コマンドを少なくとも送信可能な制御手段であってもよい。
【０４３１】
また、プログラムを書き換えただけでは遊技を思い通りに制御することができないため、プログラムの書き換えによる不正行為を効果的に防止できる場合がある。特に、ＣＰＵのユーザによって設定されたユーザプログラムを実行可能なユーザモードと、該ユーザプログラムを実行不可能な非ユーザモード（例えば、セキュリティモード）と、を備え、該非ユーザモードにおいて前記特定の値を第一レジスタに設定すれば、特定の値が他の値に改ざんされたり、特定の値が読みだされたりするような不正行為を未然に防止できる場合がある。
【０４３２】
また、前記ＣＰＵは、非特定レジスタ（例えば、Ａレジスタ、Ｆレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタ、Ｈレジスタ、Ｌレジスタ、およびこれらの裏レジスタ）をさらに備えるとともに、前記特定レジスタに前記非特定レジスタを介してデータを転送する命令（例えば「ＬＤ  Ｔ，Ａ」命令のように、ＴレジスタにＡレジスタを介してデータを転送する命令）を備えず、前記特定レジスタに直値によりデータを設定する命令（例えば、「ＬＤ  Ｔ，７ＥＨ」命令）を備えてもよい。
【０４３３】
このような構成とすれば、特定レジスタに対して直値でデータを転送するよう構成されているので、セットしているデータを確認し易くなる場合がある。また、特定レジスタに対して他のレジスタを介してデータを転送できないように構成されているので、特定レジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。また、特定レジスタは直値によるデータの転送のみが認められているため、レジスタを介したデータの転送と直値によるデータの転送の両方が認められている他のレジスタよりも相対的に使用頻度が低くなる。このため、コーディングの見直し作業や、デバッグ（例えば、Ｔレジスタのトレースなど）の効率を高めることが可能となる。
【０４３４】
また、前記ＣＰＵは、前記特定レジスタに直値によりデータを転送する命令に基づいて、前記特定レジスタに前記特定の値を転送することができるようにしてもよい。
【０４３５】
このような構成とすれば、ループ処理などで汎用レジスタの空きがなくなった場合に臨時的に特定レジスタを使用した後に、初期値に戻すことができ、利便性を高めることができる。
【０４３６】
また、前記ＣＰＵは、前記ＲＡＭから前記特定レジスタにデータを転送する命令に基づいて、前記特定レジスタに前記特定の値を転送（例えば、「ＰＯＰ  ＴＩ」命令による転送）することができるように構成してもよい。
【０４３７】
このような構成とすれば、特定レジスタを特定の処理に使用することが可能となり、特定レジスタの利便性を高めることができる場合がある。
【０４３８】
また、前記ＲＡＭは、第一エリア（例えば、７Ｅ００Ｈ〜７ＥＦＦＨのワークエリア（または、Ｉ／ＯマップドＩ／Ｏ方式でアクセス可能なエリア））と第二エリア（例えば、７ＦＥ０Ｈ〜７ＦＦＦＨのスタックエリア（または、メモリマップドＩ／Ｏ方式でアクセス可能なエリア））を有して構成されており、前記特定の値は、前記第一エリアの上位アドレス（７ＥＨ）を示す値であってもよい。
【０４３９】
このような構成とすれば、ＲＡＭの第一エリアのデータを読み書きする場合には、特定レジスタをＲＡＭの第一エリアの上位アドレスを示す値として固定することで、ＲＡＭの第一エリアの下位アドレスだけを指定すればよく、プログラムコード量の削減や処理速度の向上を実現することが可能となる上に、特定レジスタの値を不用意に変更することができなくなる結果、コーディングミスの発生を減少させることができる場合がある。また、第一エリアの上位アドレスを固定することによって、第一エリアの読み書きを行うつもりが誤って第二エリアの読み書きを行ってしまうようなミスを未然に防止できる場合がある。
【０４４０】
また、前記ＣＰＵは、所定の割込み条件が成立したことに基づいて実行される割込み処理（例えば、主制御部メイン処理）を実行可能であるとともに、電源投入後、最初の前記割込み処理を実行する前に、前記特定レジスタに前記特定の値が設定されているかを判定する処理（例えば、Ｔレジチェック処理）を実行してもよい。なお、「電源投入後、最初の前記割込み処理を実行する前」の例としては、他にも、「電源投入後、主制御部メイン処理のステップＳ１０５の低電圧状態の確認前」や、「電源投入後、主制御部メイン処理のステップＳ１０９の電断前の状態に復帰する否かの確認前」や、「電源投入後、第１副制御部の立ち上りの確認前」などを挙げることができる。また、「判定する処理」の結果に応じて、上記図１１に示すように、特定レジスタに特定の値を設定したり、上記図１２に示すように、エラー処理を実行してもよい。
【０４４１】
このような構成とすれば、特定レジスタの値を確認することで遊技台が正常動作をしているか否かを判断できる場合がある。
【０４４２】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、プログラムデータおよび一時的なデータを記憶する記憶手段（例えば、ＲＯＭ３０６、ＲＡＭ３０８（またはＲＯＭ１３０６、ＲＡＭ１３０８））と、前記記憶手段に記憶されているデータを用いて遊技の進行を中心とした遊技制御を行う主制御部（例えば、主制御部３００（または、主制御部１３００））と、前記主制御部の遊技制御に基づいて遊技の演出制御を行う副制御部（例えば、第１副制御部４００、第２副制御部５００（または、第１副制御部１４００、第２副制御部１５００））と、を備えた遊技台であって、前記主制御部は、第一のビット長（例えば、８ビット長）からなる複数のレジスタ（例えば、Ａレジスタ、Ｆレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタ、Ｈレジスタ、Ｌレジスタ、Ｔレジスタ）を有し、前記第一のビット長の倍のビット長である第二のビット長（例えば、１６ビット長）の演算が可能なレジスタの組み合わせである前記複数のレジスタ（例えば、ＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタ）のうちの第一のレジスタと第二のレジスタ（例えば、ＨレジスタとＬレジスタ）に格納された値によって示される前記記憶手段における第一のアドレス（例えば、１７５０Ｈ）、および該第一のアドレスと連続する第二のアドレス（例えば、１７５１Ｈ）に格納された第一の値（例えば、ＡＥＨ）と第二の値（例えば、１９）を、前記複数のレジスタのうちの第三のレジスタ（例えば、Ｃレジスタ）と第四のレジスタ（例えば、Ａレジスタ）にそれぞれ転送する所定の命令（例えば、「ＩＮＣＴＥＮＳＯＵ  ＡＣ，（ＨＬ）」命令）を備え、該所定の命令を前記遊技制御（例えば、特別図柄変動時間抽選処理）において実行し、前記第三のレジスタと前記第四のレジスタは、前記第二のビット長の演算が可能なレジスタの組み合わせ（ＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタ）とは異なることを特徴とする遊技台である。なお、「第一のアドレスと連続する第二のアドレス」は第一のアドレスよりも大きなアドレスに限定されず、第一のアドレスよりも小さなアドレスでもよく、先の例では、第一アドレスが１７５０Ｈ、第二アドレスが１７４ＦＨでもよい。
【０４４３】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、１回の命令によって、連続して配置されたアドレスに格納された２つのデータを、レジスタペアを構成しない２種類のレジスタに格納することができるため、プログラム容量を削減することができ、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることが可能となる。また、処理時間を短縮でき、安定した遊技制御を行うことができる場合がある。また、プログラム容量を削減することでプログラムが見やすくなり、コーディングミスやバグの発生を抑制できる場合がある。また、第三のレジスタと第四のレジスタとはレジスタペアではないため、１６ビット演算処理を行う場合にプログラムを注意して作成することができ、コーディングミスやバグの発生を抑制できる場合がある。
【０４４４】
また、前記第三のレジスタと前記第四のレジスタの少なくとも何れかは、前記第二のビット長の演算が可能なレジスタの組み合わせを構成してもよい（例えば、Ｂレジスタは、１６ビット長の演算が可能なレジスタペアであるＢＣレジスタを構成する）。
【０４４５】
このような構成とすれば、１６ビット演算を行うレジスタペアの一方のレジスタの値を固定にすることができ、所定の命令前に設定した一方のレジスタの値を退避することなく所定の命令後の処理で使用することができプログラム容量を削減することができる場合がある。また、１６ビット演算処理を行う場合にプログラムを注意して作成することができ、コーディングミスやバグの発生を抑えることができる場合がある。
【０４４６】
また、前記第三のレジスタと前記第四のレジスタの少なくとも何れかは、前記第二のビット長の演算が可能なレジスタの組み合わせの上位レジスタであってもよい（例えば、Ｂレジスタは、１６ビット長の演算が可能なレジスタペアであるＢＣレジスタの上位レジスタである）。
【０４４７】
このような構成とすれば、１６ビット演算を行うレジスタペアの上位８ビットの値を変更することができ、レジスタペアで示されるアドレスの上位を変更して所定の命令後の処理で使用することができる場合がある。例えば、第三のレジスタと第四のレジスタの各々を違う処理に利用（例えば、一方をＩＮＣＴＥＮＳＯＵ命令で利用し、他方をループ処理の回数をカウントするためのカウンタとして利用）することができ、数の限られたレジスタを有効に活用することができる。また、１６ビット演算処理を行う場合にプログラムを注意して作成することができ、コーディングミスやバグの発生を抑えることができる場合がある。
【０４４８】
また、前記所定の命令は、前記第一のレジスタと前記第二のレジスタのうちの下位レジスタの値に所定値加算する処理（例えば、ＨＬレジスタに２を加算する処理）を含んでいてもよい。
【０４４９】
このような構成とすれば、所定の命令終了後に所定のアドレスから所定値加算されたアドレスの値をレジスタに設定した状態で次の処理を行うことができ、例えば、アドレスを１加算する命令を所定値回実行するようなプログラムに比べ、プログラム容量を削減できる場合がある。
【０４５０】
また、前記第一のアドレスは、前記所定の命令を実行する前の前記第一のレジスタと前記第二のレジスタに格納された値によって示されるアドレス（例えば、１７４ＦＨ）の次のアドレス（例えば、１７５０Ｈ）であってもよい。
【０４５１】
このような構成とすれば、繰り返し処理の際に最初にアドレスを指定することができ、繰り返し処理を抜けた際には所定の命令前のアドレスから所定値加算されたアドレスの値をレジスタに設定した状態で次の処理を行うことができる。特に、２種類のデータを交互に記憶したデータテーブルを利用する場合には、データテーブルから所望のデータを素早く読みだすことが可能となる。
【０４５２】
また、本実施形態に係るパチンコ機１００（またはスロットマシン１１００）は、プログラムデータおよび一時的なデータを記憶する記憶手段（例えば、ＲＯＭ３０６、ＲＡＭ３０８（またはＲＯＭ１３０６、ＲＡＭ１３０８））と、前記記憶手段に記憶されているデータを用いて遊技の進行を中心とした遊技制御を行う主制御部（例えば、主制御部３００（または、主制御部１３００））と、前記主制御部の遊技制御に基づいて遊技の演出制御を行う副制御部（例えば、第１副制御部４００、第２副制御部５００（または、第１副制御部１４００、第２副制御部１５００））と、を備えた遊技台であって、前記主制御部は、第一のビット長（例えば、８ビット長）の値を記憶可能な第一のレジスタ（例えば、Ｃレジスタ）および前記第一のビット長の整数倍の第二のビット長（例えば、１６ビット長）の値を記憶可能な第二のレジスタ（例えば、ＨＬレジスタ）を含む複数のレジスタ（例えば、ＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタ）を有し、前記第二のレジスタの値に前記第一のレジスタの値を加算して前記第二のレジスタに格納する所定の命令（例えば、「ＡＤＤＴＷＯＯＮＥ  ＨＬ，Ｃ」命令）を備え、該所定の命令を前記遊技制御（例えば、特別図柄変動時間抽選処理）において実行することを特徴とする遊技台である。なお、第二のレジスタは、第一のビット長の整数倍の第二のビット長の値を記憶可能であればよく、例えば、第一のレジスタのビット長が４ビットである場合には４の倍数（４、８、１２、…）をビット長とするレジスタでもよく、第一のレジスタのビット長が１６ビットである場合には１６の倍数（１６、３２、６４、…）をビット長とするレジスタでもよい。
【０４５３】
本実施形態に係るパチンコ機１００（またはスロットマシン１１００）によれば、桁上がり処理を別途行う必要がないため、プログラム容量を削減することができ、遊技性を向上させるためのプログラムに容量を割り当てることができ、遊技の興趣を高めることが可能となる。また、処理時間を短縮でき、安定した遊技制御を行うことができる場合がある。また、プログラム容量を削減することでプログラムが見やすくなり、コーディングミスやバグの発生を抑制できる場合がある。さらに、ビット長が異なるレジスタ同士の加算演算を行うことができるため、例えば、従来は１６ビット長のレジスタペアを２つ使用して行っていた加算演算を、１６ビット長のレジスタペアと８ビット長のレジスタで行うことができる場合があり、数の限られたレジスタを有効に活用することができる。
【０４５４】
また、前記第一のレジスタ（例えば、Ｃレジスタ）は、第二のビット長の演算が可能なレジスタ（例えば、ＢＣレジスタ）の組み合わせの下位レジスタであってもよい。
【０４５５】
このような構成とすれば、レジスタペアの上位８ビットの値を固定にすることができ、１６ビット演算処理を行う場合にプログラムを注意して作成することができ、コーディングミスやバグの発生を抑制できる場合がある。また、レジスタペアの上位レジスタと下位レジスタの各々を違う処理に利用（例えば、一方をＡＤＤＴＷＯＯＮＥ命令で利用し、他方をループ処理の回数をカウントするためのカウンタとして利用）することができ、数の限られたレジスタを有効に活用することができる。
【０４５６】
また、前記主制御部は、前記第二のレジスタ（例えば、ＨＬレジスタ）に格納された値によって示される所定のアドレスに基づく連続する２つのアドレスに格納された第一の値と第二の値を、前記複数のレジスタのうちの前記第一のレジスタ（例えば、Ｃレジスタ）と第三のレジスタ（例えば、Ｂレジスタ）にそれぞれ転送する所定の第二の命令（例えば、「ＩＮＣＴＥＮＳＯＵ  ＢＣ，（ＨＬ）」命令）を備え、該所定の第二の命令を実行した後、前記所定の命令を行ってもよい。
【０４５７】
このような構成とすれば、連続する２つのアドレスに格納された値の何れかを第一レジスタに加算することで、所定のアドレスに関連したアドレスを示す値を第一レジスタに設定した状態で次の処理を行うことができ、プログラム容量を削減できる場合がある。
【０４５８】
また、前記主制御部は、前記所定の第二の命令を実行した後に所定の判定処理（例えば、上記ステップＳ１１１０〜Ｓ１１１１に示すような、Ｂレジスタ（第三のレジスタ）から特定の値（ＲＡＭの所定記憶領域に記憶された値など）を減算してキャリーが発生するか否かを判定する処理）を行い、該所定の判定処理の結果が所定の値のときに（例えば、キャリーが発生したときに）前記所定の命令を行ってもよい。
【０４５９】
このような構成とすれば、所定の判定処理の結果が所定の値のときに、所定のアドレスに関連したアドレスを示す値を第一レジスタに設定した状態で次の処理を行うことができ、プログラム容量を削減できる場合がある。
【０４６０】
また、前記主制御部は、前記所定の命令を行った後、再度前記所定の第二の命令と前記所定の判定処理を実行してもよい（例えば、上記ステップＳ１１０９でＩＮＣＴＥＮＳＯＵ命令を実行し、上記ステップＳ１１１２でＡＤＤＴＷＯＯＮＥ命令を実行した後に、上記ステップＳ１１１４でＩＮＣＴＥＮＳＯＵ命令を再度実行し、上記ステップＳ１１１６でＢレジスタから特定の値を減算してキャリーが発生するか否かを判定する）。
【０４６１】
このような構成とすれば、例えば、２段階抽選の２回目のテーブルアドレスを設定することができ、２段階抽選のプログラムを見やすく作ることができ、コーディングミスやバグの発生を抑制できる場合がある。
【０４６２】
なお、本発明に係る遊技台は、上述のパチンコ機１００やスロットマシン１１００に限定されない。したがって、例えば、上記実施形態では、リトルエンディアンのＣＰＵの例を示したが、ビッグエンディアンのＣＰＵに適用することもできる。また、８ビットＣＰＵに限定されず、１６ビットＣＰＵ、３２ビットＣＰＵ等にも適用できる。また、命令の名称は上記実施形態で示した名称に限定されるものではない。
【０４６３】
また、上記実施形態では、ＲＡＭの先頭アドレスの上位バイトをＴレジスタ（特殊レジスタ）に設定する例を示したが、本発明はこれに限定されず、例えば、ＲＡＭ以外の特定装置（例えば、ＩＣ）に割り当てた（マッピングした）アドレス（例えば、先頭アドレス）の一部または全てを特殊レジスタに設定してもよい。
【０４６４】
このような構成とすれば、特定装置を制御するための特別な処理が必要となり、主制御部の汎用性を無くすことができる。このため、必要以上に市場に出回ることがなく、内部が解析される可能性を従来よりも低くすることができ、不正行為を未然に防止できる場合がある。また、従来はＲＯＭに設定していたアドレス情報を特殊レジスタに設定することで、制御プログラムが解析されてアドレス情報が読みとられてしまう危険性を無くすことができ、不正行為を防止することが可能となる。
【０４６５】
また、主制御部３００のＣＰＵ３０４（または、主制御部１３００のＣＰＵ１３０４）に適用した例を示したが、他の制御部のＣＰＵに適用してもよい。また、記憶手段は、ＲＯＭ、ＲＡＭに限定されず、他の記憶手段を適用してもよい。
【０４６６】
また、図５０（ａ）に示す、「紙幣投入口２００２に紙幣を投入し、ベット２００４およびスタート２００６操作に基づいて抽選を実行し、抽選結果を抽選結果表示装置２００８で表示し、当選時には特典コイン数を残クレジット数に加算し、キャッシュアウト２００９が選択された場合には、レシート発行機２０１０から残クレジット数に対応するコードが記載されたレシートを発行するカジノマシン２０００」に本発明を適用してもよい。また、アレンジボール遊技機や、じゃん球遊技機、スマートボール等に適当してもよい。
【０４６７】
また、同図（ｂ）に示すように、本発明の構成を含む制御部を備えている携帯電話機３０００、同図（ｃ）に示すように、本発明の構成を含む制御部を備えているポータブルゲーム機４０００、本発明の構成を含む制御部を備えている家庭用テレビゲーム機５０００、に本発明を適用してもよい。
【０４６８】
より具体的には、同図（ｂ）における携帯電話機３０００は、遊技者によって操作される操作部と、ゲームに関するデータを携帯電話回線を通して取得するデータ取得部と、取得したゲームに関するデータを記憶する記憶部と、記憶部に記憶したデータと操作部の操作とに基づいてゲームの制御を行う、本発明の構成を含む制御部と、を備えている。
【０４６９】
また、同図（ｃ）におけるポータブルゲーム機４０００は、遊技者によって操作される操作部と、ゲームに関するデータを所定の記憶媒体（ＤＶＤ等）から取得するデータ取得部と、取得したゲームに関するデータを記憶する記憶部と、記憶部に記憶したデータと操作部の操作とに基づいてゲームの制御を行う、本発明の構成を含む制御部と、を備えている。
【０４７０】
また、同図（ｃ）における家庭用テレビゲーム機５０００は、遊技者によって操作される操作部と、ゲームに関するデータを所定の記憶媒体（ＤＶＤ等）から取得するデータ取得部と、取得したゲームに関するデータを記憶する記憶部と、記憶部に記憶したデータと操作部の操作とに基づいてゲームの制御を行う、本発明の構成を含む制御部を備えている。
【０４７１】
さらには、同図（ｄ）に示すように、本発明の構成を含む制御部を備えるデータサーバ６０００に適用してもよい。このデータサーバ６０００からインターネット回線を介して同図（ｄ）に示す家庭用テレビゲーム機５０００に本発明の構成を含むプログラムコードをダウンロードするような場合がある。また、パチンコ機等の実機の動作を家庭用ゲーム機用として擬似的に実行するようなゲームプログラムにおいても、本発明を適用することができる。
【０４７２】
また、本発明の実施例に記載された作用および効果は、本発明から生じる最も好適な作用および効果を列挙したに過ぎず、本発明による作用および効果は、本発明の実施例に記載されたものに限定されるものではない。また、複数種類の実施例を示したが、各々の実施例を入れ替えたり組み合わせてもよい。
【産業上の利用可能性】
【０４７３】
本発明の遊技台は、回胴遊技機（スロットマシン）や弾球遊技機（パチンコ等）に代表される遊技台の分野で特に利用することができる。
【符号の説明】
【０４７４】
１００  パチンコ機
３００  主制御部
３０４  ＣＰＵ
３０６  ＲＯＭ
３０８  ＲＡＭ
３１０  Ｉ／Ｏ
４００  第１副制御部
５００  第２制御部
１１００  スロットマシン
１３００  主制御部
１３０４  ＣＰＵ
１３０６  ＲＯＭ
１３０８  ＲＡＭ
１３１０  Ｉ／Ｏ
１４００  第１副制御部
１５００  第２制御部
【要約】
【課題】ＣＰＵのレジスタと当該レジスタを用いたプログラムに特徴を持った遊技台を提供する。
【解決手段】遊技台は、ＣＰＵと、ＲＡＭと、遊技制御プログラムが記憶されたＲＯＭと、を内蔵するマイクロコンピュータを備える。また、前記ＣＰＵは、第一のレジスタに値をセットする機能のうち、ＬＤ命令を受けたことに基づいて行われる機能としては、直値により値をセットする方法により値がセットされる機能のみを有し、前記第一のレジスタに値をセットする機能のうち、前記ＬＤ命令を受けたことに基づいて行われる機能以外の機能としては、前記ＲＡＭの先頭アドレスの上位バイトと同じ値を初期値としてセットする方法により値がセットされる機能を少なくとも有する。また、前記遊技制御プログラムは、前記方法のうちのいずれかの方法で値がセットされた前記第一のレジスタを用いて、前記ＲＡＭをアクセスする命令を備えている。
【選択図】図３０【図１】
0005555948.tif 000002
【図２】
0005555948.tif 000003
【図３】
0005555948.tif 000004
【図４】
0005555948.tif 000005
【図５】
0005555948.tif 000006
【図６】
0005555948.tif 000007
【図７】
0005555948.tif 000008
【図８】
0005555948.tif 000009
【図９】
0005555948.tif 000010
【図１０】
0005555948.tif 000011
【図１１】
0005555948.tif 000012
【図１２】
0005555948.tif 000013
【図１３】
0005555948.tif 000014
【図１４】
0005555948.tif 000015
【図１５】
0005555948.tif 000016
【図１６】
0005555948.tif 000017
【図１７】
0005555948.tif 000018
【図１８】
0005555948.tif 000019
【図１９】
0005555948.tif 000020
【図２０】
0005555948.tif 000021
【図２１】
0005555948.tif 000022
【図２２】
0005555948.tif 000023
【図２３】
0005555948.tif 000024
【図２４】
0005555948.tif 000025
【図２５】
0005555948.tif 000026
【図２６】
0005555948.tif 000027
【図２７】
0005555948.tif 000028
【図２８】
0005555948.tif 000029
【図２９】
0005555948.tif 000030
【図３０】
0005555948.tif 000031
【図３１】
0005555948.tif 000032
【図３２】
0005555948.tif 000033
【図３３】
0005555948.tif 000034
【図３４】
0005555948.tif 000035
【図３５】
0005555948.tif 000036
【図３６】
0005555948.tif 000037
【図３７】
0005555948.tif 000038
【図３８】
0005555948.tif 000039
【図３９】
0005555948.tif 000040
【図４０】
0005555948.tif 000041
【図４１】
0005555948.tif 000042
【図４２】
0005555948.tif 000043
【図４３】
0005555948.tif 000044
【図４４】
0005555948.tif 000045
【図４５】
0005555948.tif 000046
【図４６】
0005555948.tif 000047
【図４７】
0005555948.tif 000048
【図４８】
0005555948.tif 000049
【図４９】
0005555948.tif 000050
【図５０】
0005555948.tif 000051