(57)【要約】 【課題】プログラム容量の削減を図ることができると共に、ＲＯＭのデータ容量の削減を図ることができる遊技機を提供することを目的としている。【解決手段】特定データが格納されている領域のアドレス番地に関する第１アドレス番地情報を記憶する図１６（ａ），（ｂ）に示すＨＬレジスタと、  複数のデータが格納されている領域のアドレス番地に関する第２アドレス番地情報を記憶する図１６（ａ），（ｂ）に示すＴＰレジスタと、を有し、  主制御ＣＰＵは、  第１アドレス番地情報と第２アドレス番地情報とに基づいて、前記特定データが格納されている特定アドレス番地を参照し、特定データを汎用レジスタに読み出してなる。【選択図】図１６
2020171352.tif 000002
【特許請求の範囲】
【請求項１】
図柄変動遊技を実行可能な遊技手段と、
前記図柄変動遊技のプログラムに関する複数のデータが格納されているＲＯＭと、
前記複数のデータのうちから指定された特定データを記憶手段に読み出すデータ読み出し手段と、
を備え、
前記特定データが格納されている領域のアドレス番地に関する第１アドレス番地情報を記憶する第１アドレス番地情報記憶手段と、
前記複数のデータが格納されている領域のアドレス番地に関する第２アドレス番地情報を記憶する第２アドレス番地情報記憶手段と、
を有し、
前記データ読み出し手段は、
前記第１アドレス番地情報と第２アドレス番地情報とに基づいて、前記特定データが格納されている特定アドレス番地を参照し、前記特定データを前記記憶手段に読み出してなる遊技機。
【請求項２】
前記ＲＯＭは、
前記第２アドレス番地情報により特定可能な第１記憶領域と、
前記第２アドレス番地情報により特定不能な第２記憶領域と、を有し、
前記第１記憶領域に記憶されたデータを用いた処理を行う第１処理と、
前記第２記憶領域に記憶されたデータを用いた処理を行う第２処理と、があり、
前記第１処理から前記第２処理に移行する場合に、前記第２アドレス番地情報を前記第２アドレス番地情報記憶手段から所定の記憶領域に退避させる第２アドレス番地情報退避処理を実行し、
前記第２処理から前記第１処理に移行する場合に、前記第２アドレス番地情報を前記所定の記憶領域から前記第２アドレス番地情報記憶手段に復帰させる第２アドレス番地情報復帰処理を実行する請求項１に記載の遊技機。
【請求項３】
前記第１処理から前記第２処理に移行する場合に、前記第２アドレス番地情報退避処理及び前記記憶手段に記憶されたデータを所定の記憶領域に退避させる記憶手段退避処理を実行し、
前記第２処理から前記第１処理に移行する場合に、前記第２アドレス番地情報復帰処理及び前記所定の記憶領域に退避させたデータを前記記憶手段に復帰させる記憶手段復帰処理を実行する請求項２に記載の遊技機。
【請求項４】
前記ＲＯＭは、
前記第２アドレス番地情報により特定可能な第１記憶領域と、
前記第２アドレス番地情報により特定不能な第２記憶領域と、を有し、
前記第１記憶領域に記憶されたデータを用いた処理を行う第１処理と、
前記第２記憶領域に記憶されたデータを用いた処理を行う第２処理と、があり、
前記第１処理は、前記図柄変動遊技に関する第１遊技処理と第２遊技処理とを含み、
前記第１遊技処理から前記第２遊技処理に移行する場合に、前記記憶手段に記憶されたデータを所定の記憶領域に退避させる記憶手段退避処理が実行されるが、前記第２アドレス番地情報を前記第２アドレス番地情報記憶手段から所定の記憶領域に退避させる第２アドレス番地情報退避処理が実行されず、
前記第２遊技処理から前記第１遊技処理に移行する場合に、前記所定の記憶領域に退避させたデータを前記記憶手段に復帰させる記憶手段復帰処理が実行されるが、前記第２アドレス番地情報を前記所定の記憶領域から前記第２アドレス番地情報記憶手段に復帰させる第２アドレス番地情報復帰処理が実行されない請求項１〜３の何れか１項に記載の遊技機。
【請求項５】
前記複数のデータが格納されている領域のうちから指定された指定アドレス番地を前記記憶手段に読み出すアドレス番地読み出し手段と、
前記アドレス番地読み出し手段が前記記憶手段に前記指定アドレス番地を読み出す場合の情報として、
前記複数のデータが格納されている領域のアドレス番地に関する第２アドレス番地情報と、
前記指定アドレス番地を特定するための一部の情報を含む第３アドレス番地情報と、
を有し、
前記アドレス番地読み出し手段は、
前記第２アドレス番地情報と第３アドレス番地情報とに基づいて、前記指定アドレス番地を特定し、前記記憶手段に読み出してなる請求項１〜４の何れか１項に記載の遊技機。
【請求項６】
前記データ読み出し手段が前記記憶手段に前記特定データを読み出す場合の情報として、
前記特定データのビット長に関するビット長指定情報と、
前記特定データの読み出し開始位置に関するビット指定位置情報と、をさらに有し、
前記データ読み出し手段は、
前記第１アドレス番地情報と第２アドレス番地情報とに基づいて、前記特定データが格納されている特定アドレス番地を参照し、前記ビット長指定情報と前記ビット指定位置情報に基づき、前記特定アドレス番地の指定ビット位置から指定ビット長の前記特定データを読み出す特定データ読み出し処理を実行してなる請求項１〜５の何れか１項に記載の遊技機。
【請求項７】
前記データ読み出し手段は、
前記第１アドレス番地情報と前記ビット指定位置情報とを含む特定情報に基づいて、前記特定データ読み出し処理を実行する請求項６に記載の遊技機。
【請求項８】
前記特定情報は、１バイトよりも大きい前記第１アドレス番地情報と、１バイトよりも小さい前記ビット指定位置情報とで構成された２バイトのデータである請求項７に記載の遊技機。
【請求項９】
前記第１アドレス番地情報は、前記特定アドレス番地を示す特定値とは異なる所定値であり、
前記データ読み出し手段は、
前記第１アドレス番地情報を、前記所定値から前記特定値に変換し、変換した前記特定値と前記第２アドレス番地情報とに基づいて、前記特定アドレス番地を参照する請求項１〜８の何れか１項に記載の遊技機。
【請求項１０】
前記ビット指定位置情報として０を使用する請求項６〜９の何れか１項に記載の遊技機。
【請求項１１】
前記ＲＯＭは、
前記特定情報を複数記憶する特定情報記憶テーブルを有し、
前記特定情報記憶テーブルに記憶された複数の特定情報から選択した特定情報に基づいて、前記データ読み出し手段による前記特定データ読み出し処理を実行可能とした請求項６〜１０の何れか１項に記載の遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パチンコ機、アレンジボール機、雀球遊技機、スロットなどの遊技機に関し、より詳しくは、プログラム容量の削減を図ることができると共に、ＲＯＭのデータ容量の削減を図ることができる遊技機に関する。
【背景技術】
【０００２】
従来のパチンコ機等の遊技機として、例えば特許文献１に記載のような遊技機が知られている。この遊技機は、基本ビット数より大きいビット数を扱うことで、ＲＯＭのデータ配置を工夫しているものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２０８１５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のような遊技機では、まだプログラムに改良の余地があり、ＲＯＭのデータ容量の削減を図れていないという問題があった。
【０００５】
そこで本発明は、上記問題に鑑み、プログラム容量の削減を図ることができると共に、ＲＯＭのデータ容量の削減を図ることができる遊技機を提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記本発明の目的は、以下の手段によって達成される。なお、括弧内は、後述する実施形態の参照符号を付したものであるが、本発明はこれに限定されるものではない。
【０００７】
請求項１の発明に係る遊技機によれば、図柄変動遊技を実行可能な遊技手段（例えば、図７に示す主制御ＣＰＵ６００ａ）と、
前記図柄変動遊技のプログラムに関する複数のデータが格納されているＲＯＭ（例えば、図７に示す主制御ＲＯＭ６００ｂ）と、
前記複数のデータのうちから指定された特定データを記憶手段（例えば、図１５に示す汎用レジスタ６００ａ１）に読み出すデータ読み出し手段（例えば、図７に示す主制御ＣＰＵ６００ａ）と、
を備え、
前記特定データが格納されている領域のアドレス番地に関する第１アドレス番地情報を記憶する第１アドレス番地情報記憶手段（例えば、図１６（ａ），（ｂ）に示すＨＬレジスタ参照）と、
前記複数のデータが格納されている領域のアドレス番地に関する第２アドレス番地情報を記憶する第２アドレス番地情報記憶手段（例えば、図１６（ａ），（ｂ）に示すＴＰレジスタ６００ａ４参照）と、
を有し、
前記データ読み出し手段（例えば、図７に示す主制御ＣＰＵ６００ａ）は、
前記第１アドレス番地情報と第２アドレス番地情報とに基づいて、前記特定データが格納されている特定アドレス番地を参照し、前記特定データを前記記憶手段（例えば、図１５に示す汎用レジスタ６００ａ１）に読み出してなることを特徴としている。
【０００８】
また、請求項２の発明によれば、上記請求項１に記載の遊技機において、前記ＲＯＭ（例えば、図７に示す主制御ＲＯＭ６００ｂ）は、
前記第２アドレス番地情報により特定可能な第１記憶領域（例えば、図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ）と、
前記第２アドレス番地情報により特定不能な第２記憶領域（例えば、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用データ領域６００ｂｃ）と、を有し、
前記第１記憶領域（例えば、図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ）に記憶されたデータを用いた処理を行う第１処理（例えば、抽選処理等の遊技処理）と、
前記第２記憶領域（例えば、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用データ領域６００ｂｃ）に記憶されたデータを用いた処理を行う第２処理（例えば、賞球数，非入賞数を含む遊技領域に発射された遊技球の総数等を計測する処理）と、があり、
前記第１処理（例えば、抽選処理等の遊技処理）から前記第２処理（例えば、賞球数，非入賞数を含む遊技領域に発射された遊技球の総数等を計測する処理）に移行する場合に、前記第２アドレス番地情報を前記第２アドレス番地情報記憶手段（例えば、図１６（ａ），（ｂ）に示すＴＰレジスタ６００ａ４参照）から所定の記憶領域（例えば、図９（ａ）に示す主制御ＲＡＭ６００ｃの計測用スタック領域６００ｃｇ）に退避させる第２アドレス番地情報退避処理（例えば、図２３（ｂ）に示す「ＰＵＳＨ  ＴＰ」参照）を実行し、
前記第２処理（例えば、賞球数，非入賞数を含む遊技領域に発射された遊技球の総数等を計測する処理）から前記第１処理（例えば、抽選処理等の遊技処理）に移行する場合に、前記第２アドレス番地情報を前記所定の記憶領域（例えば、図９（ａ）に示す主制御ＲＡＭ６００ｃの計測用スタック領域６００ｃｇ）から前記第２アドレス番地情報記憶手段（例えば、図１６（ａ），（ｂ）に示すＴＰレジスタ６００ａ４参照）に復帰させる第２アドレス番地情報復帰処理（例えば、図２３（ｂ）、図２４、図２５に示す「ＰＯＰ  ＴＰ」参照）を実行することを特徴としている。
【０００９】
さらに、請求項３の発明によれば、上記請求項２に記載の遊技機において、前記第１処理（例えば、抽選処理等の遊技処理）から前記第２処理（例えば、賞球数，非入賞数を含む遊技領域に発射された遊技球の総数等を計測する処理）に移行する場合に、前記第２アドレス番地情報退避処理（例えば、図２３（ｂ）に示す「ＰＵＳＨ  ＴＰ」参照）及び前記記憶手段（例えば、図１５に示す汎用レジスタ６００ａ１）に記憶されたデータを所定の記憶領域（例えば、図９（ａ）に示す主制御ＲＡＭ６００ｃの計測用スタック領域６００ｃｇ）に退避させる記憶手段退避処理（例えば、図２３（ａ）に示す「ＰＵＳＨ  ＡＬＬ」参照）を実行し、
前記第２処理（例えば、賞球数，非入賞数を含む遊技領域に発射された遊技球の総数等を計測する処理）から前記第１処理（例えば、抽選処理等の遊技処理）に移行する場合に、前記第２アドレス番地情報復帰処理（例えば、図２３（ｂ）、図２４、図２５に示す「ＰＯＰ  ＴＰ」参照）及び前記所定の記憶領域（例えば、図９（ａ）に示す主制御ＲＡＭ６００ｃの計測用スタック領域６００ｃｇ）に退避させたデータを前記記憶手段（例えば、図１５に示す汎用レジスタ６００ａ１）に復帰させる記憶手段復帰処理（例えば、図２３（ａ）、図２４、図２５に示す「ＰＵＳＨ  ＡＬＬ」参照）を実行することを特徴としている。
【００１０】
一方、請求項４の発明によれば、上記請求項１〜３の何れか１項に記載の遊技機において、前記ＲＯＭ（例えば、図７に示す主制御ＲＯＭ６００ｂ）は、
前記第２アドレス番地情報により特定可能な第１記憶領域（例えば、図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ）と、
前記第２アドレス番地情報により特定不能な第２記憶領域（例えば、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用データ領域６００ｂｃ）と、を有し、
前記第１記憶領域（例えば、図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ）に記憶されたデータを用いた処理を行う第１処理（例えば、抽選処理等の遊技処理）と、
前記第２記憶領域（例えば、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用データ領域６００ｂｃ）に記憶されたデータを用いた処理を行う第２処理（例えば、賞球数，非入賞数を含む遊技領域に発射された遊技球の総数等を計測する処理）と、があり、
前記第１処理（例えば、抽選処理等の遊技処理）は、前記図柄変動遊技に関する第１遊技処理（例えば、図２６（ａ）に示すプログラムに記載の特別図柄変動変動パターンコマンド生成処理）と第２遊技処理（例えば、図２６（ａ）に示すプログラムに記載の特別図柄変動変動パターンコマンド送信処理）とを含み、
前記第１遊技処理（例えば、図２６（ａ）に示すプログラムに記載の「ＣＡＬＬ_Ｓ  _ＣＭＤＯＵＴ」のプログラムを除く処理）から前記第２遊技処理（例えば、図２６（ａ）に示すプログラムに記載の「ＣＡＬＬ_Ｓ  _ＣＭＤＯＵＴ」のプログラム例）に移行する場合に、前記記憶手段（例えば、図１５に示す汎用レジスタ６００ａ１）に記憶されたデータを所定の記憶領域（例えば、図９（ａ）に示す主制御ＲＡＭ６００ｃの通常用スタック領域６００ｃｃ）に退避させる記憶手段退避処理（例えば、図２６（ａ）に示す「ＰＵＳＨ  ＡＬＬ」参照）が実行されるが、前記第２アドレス番地情報を前記第２アドレス番地情報記憶手段（例えば、図１６（ａ），（ｂ）に示すＴＰレジスタ６００ａ４参照）から所定の記憶領域（例えば、図９（ａ）に示す主制御ＲＡＭ６００ｃの通常用スタック領域６００ｃｃ）に退避させる第２アドレス番地情報退避処理（例えば、図２３（ｂ）に示す「ＰＵＳＨ  ＴＰ」参照）が実行されず、
前記第２遊技処理（例えば、図２６（ａ）に示すプログラムに記載の「ＣＡＬＬ_Ｓ  _ＣＭＤＯＵＴ」のプログラム例）から前記第１遊技処理（例えば、図２６（ａ）に示すプログラムに記載の「ＣＡＬＬ_Ｓ  _ＣＭＤＯＵＴ」のプログラムを除く処理）に移行する場合に、前記所定の記憶領域（例えば、図９（ａ）に示す主制御ＲＡＭ６００ｃの通常用スタック領域６００ｃｃ）に退避させたデータを前記記憶手段（例えば、図１５に示す汎用レジスタ６００ａ１）に復帰させる記憶手段復帰処理（例えば、図２６（ａ）に示す「ＰＯＰ  ＡＬＬ」参照）が実行されるが、前記第２アドレス番地情報を前記所定の記憶領域（例えば、図９（ａ）に示す主制御ＲＡＭ６００ｃの通常用スタック領域６００ｃｃ）から前記第２アドレス番地情報記憶手段（例えば、図１６（ａ），（ｂ）に示すＴＰレジスタ６００ａ４参照）に復帰させる第２アドレス番地情報復帰処理（例えば、図２３（ｂ）に示す「ＰＯＰ  ＴＰ」参照）が実行されないことを特徴としている。
【００１１】
また、請求項５の発明によれば、上記請求項１〜４の何れか１項に記載の遊技機において、前記複数のデータが格納されている領域のうちから指定された指定アドレス番地を前記記憶手段（例えば、図１５に示す汎用レジスタ６００ａ１）に読み出すアドレス番地読み出し手段（例えば、図７に示す主制御ＣＰＵ６００ａ）と、
前記アドレス番地読み出し手段（例えば、図７に示す主制御ＣＰＵ６００ａ）が前記記憶手段（例えば、図１５に示す汎用レジスタ６００ａ１）に前記指定アドレス番地を読み出す場合の情報として、
前記複数のデータが格納されている領域のアドレス番地に関する第２アドレス番地情報（例えば、図１６（ａ），（ｂ）に示すＴＰレジスタ６００ａ４参照）と、
前記指定アドレス番地を特定するための一部の情報を含む第３アドレス番地情報（例えば、図１６（ａ），（ｂ）に示すＨＬレジスタの上位１３ビット参照）と、
を有し、
前記アドレス番地読み出し手段（例えば、図７に示す主制御ＣＰＵ６００ａ）は、
前記第２アドレス番地情報（例えば、図１６（ａ），（ｂ）に示すＴＰレジスタ６００ａ４参照）と第３アドレス番地情報（例えば、図１６（ａ），（ｂ）に示すＨＬレジスタの上位１３ビット参照）とに基づいて、前記指定アドレス番地を特定し、前記記憶手段（例えば、図１５に示す汎用レジスタ６００ａ１）に読み出してなることを特徴としている。
【００１２】
さらに、請求項６の発明によれば、上記請求項１〜５の何れか１項に記載の遊技機において、前記データ読み出し手段（例えば、図７に示す主制御ＣＰＵ６００ａ）が前記記憶手段（例えば、図１５に示す汎用レジスタ６００ａ１）に前記特定データを読み出す場合の情報として、
前記特定データのビット長に関するビット長指定情報（例えば、図２０（ａ）に示すプログラム例の「ＬＤＢ  ＢＣ，（ＨＬ＋）．９」の「．９」、「ＬＤＢ  Ｅ，（ＨＬ＋）．４」の「．４」参照）と、
前記特定データの読み出し開始位置に関するビット指定位置情報（例えば、図１６（ａ），（ｂ）に示すＨＬレジスタの下位３ビット参照）と、をさらに有し、
前記データ読み出し手段（例えば、図７に示す主制御ＣＰＵ６００ａ）は、
前記第１アドレス番地情報と第２アドレス番地情報とに基づいて、前記特定データが格納されている特定アドレス番地を参照し、前記ビット長指定情報（例えば、図２０（ａ）に示すプログラム例の「ＬＤＢ  ＢＣ，（ＨＬ＋）．９」の「．９」、「ＬＤＢ  Ｅ，（ＨＬ＋）．４」の「．４」参照）と前記ビット指定位置情報（例えば、図１６（ａ），（ｂ）に示すＨＬレジスタの下位３ビット参照）に基づき、前記特定アドレス番地の指定ビット位置から指定ビット長の前記特定データを読み出す特定データ読み出し処理を実行してなることを特徴としている。
【００１３】
そしてさらに、請求項７の発明によれば、上記請求項６に記載の遊技機において、前記データ読み出し手段（例えば、図７に示す主制御ＣＰＵ６００ａ）は、
前記第１アドレス番地情報（例えば、図１６（ａ），（ｂ）に示すＨＬレジスタの上位１３ビット参照）と前記ビット指定位置情報（例えば、図１６（ａ），（ｂ）に示すＨＬレジスタの下位３ビット参照）とを含む特定情報に基づいて、前記特定データ読み出し処理を実行してなることを特徴としている。
【００１４】
一方、請求項８の発明によれば、上記請求項７に記載の遊技機において、前記特定情報は、１バイトよりも大きい前記第１アドレス番地情報（例えば、図１６（ａ），（ｂ）に示すＨＬレジスタの上位１３ビット参照）と、１バイトよりも小さい前記ビット指定位置情報（例えば、図１６（ａ），（ｂ）に示すＨＬレジスタの下位３ビット参照）とで構成された２バイトのデータであることを特徴としている。
【００１５】
また、請求項９の発明によれば、上記請求項１〜８の何れか１項に記載の遊技機において、前記第１アドレス番地情報（例えば、図１６（ａ），（ｂ）に示すＨＬレジスタの上位１３ビット参照）は、前記特定アドレス番地を示す特定値とは異なる所定値（例えば、図１６（ａ）に示すＨＬレジスタの上位１３ビット「２Ｄ２０」、図１６（ｂ）に示すＨＬレジスタの上位１３ビット「２Ｄ２１」参照）であり、
前記データ読み出し手段（例えば、図７に示す主制御ＣＰＵ６００ａ）は、
前記第１アドレス番地情報（例えば、図１６（ａ），（ｂ）に示すＨＬレジスタの上位１３ビット参照）はを、前記所定値から前記特定値に変換し（例えば、図１６に示すＨＬ／８参照）、変換した前記特定値と前記第２アドレス番地情報（例えば、図１６（ａ），（ｂ）に示すＴＰレジスタ６００ａ４参照）とに基づいて、前記特定アドレス番地を参照することを特徴としている。
さらに、請求項１０の発明によれば、上記請求項６〜９の何れか１項に記載の遊技機において、前記ビット指定位置情報（例えば、図１６（ａ），（ｂ）に示すＨＬレジスタの下位３ビット参照）として０を使用することを特徴としている。
そしてさらに、請求項１１の発明によれば、上記請求項６〜１０の何れか１項に記載の遊技機において、前記ＲＯＭ（例えば、図７に示す主制御ＲＯＭ６００ｂ）は、
前記特定情報を複数記憶する特定情報記憶テーブル（例えば、図２１に示す特図変動パターン群テーブル１参照）を有し、
前記特定情報記憶テーブル（例えば、図２１に示す特図変動パターン群テーブル１参照）に記憶された複数の特定情報から選択した特定情報（例えば、ＤＷ  （Ｄ_ＰＴ_ＦＨ１−０９００００Ｈ）＊８＋０参照）に基づいて、前記データ読み出し手段（例えば、図７に示す主制御ＣＰＵ６００ａ）による前記特定データ読み出し処理を実行可能としたことを特徴としている。
【発明の効果】
【００１６】
本発明によれば、プログラム容量の削減を図ることができると共に、ＲＯＭのデータ容量の削減を図ることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態に係る遊技機の外観を示す斜視図である。
【図２】同実施形態に係る遊技盤を装着する前の遊技機の扉を開放した状態を示す正面側の斜視図である。
【図３】同実施形態に係る遊技盤を装着する前の遊技機の扉を開放した状態を示す正面図である。
【図４】同実施形態に係る遊技機の外観を示す背面側の斜視図である。
【図５】同実施形態に係る遊技盤の正面図である。
【図６】図５に示すＸ部分を拡大表示した正面斜視図である。
【図７】同実施形態に係る遊技機の制御装置を示すブロック図である。
【図８】（ａ）は同実施形態に係る計測表示装置の詳細図、（ｂ）は同実施形態に係る設定表示装置の詳細図である。
【図９】（ａ）は同実施形態に係る主制御ＲＡＭのメモリ領域を示し、（ｂ）は同実施形態に係る主制御ＲＯＭのメモリ領域を示すメモリマップを説明する説明図である。
【図１０】（ａ）は主制御ＲＯＭの従来のデータ配置を示し、（ｂ）は同実施形態に係る主制御ＲＯＭのデータ配置を示す説明図である。
【図１１】（ａ）は図１０（ｂ）に示すデータ配置をする際のプログラム例を示し、（ｂ）は図１０（ｂ）に示すデータを読み出す際のプログラム例を示す図である。
【図１２】図１１（ａ）に示すプログラム例とは異なる他の実施形態を示すプログラム例を示す図である。
【図１３】（ａ）は従来のカウンタプログラムの例を示し、（ｂ）は同実施形態に係るカウンタプログラムの例を示し、（ｃ）は（ｂ）に示すカウンタプログラムを汎用モジュール化した場合のプログラム例を示し、（ｄ）は、（ｃ）に示す汎用モジュール化したプログラムを呼び出す際のプログラムの例を示す図である。
【図１４】（ａ）はＣＡＬＬ_Ｓ命令で呼び出すことができるサブルーチンのテーブルアドレスのプログラム例を示し、（ｂ）は主制御の初期化処理の一部を示すプログラム例を示し、（ｃ）は（ｂ）に示すＣＴＣの設定テーブルのプログラム例を示し、（ｄ）は（ｂ）に示すデータセット処理のプログラム例を示し、（ｅ）は（ｂ）に示すコマンド送信処理のプログラム例を示し、（ｆ）は主制御のメインループ処理のプログラム例を示す図である。
【図１５】主制御ＣＰＵの内部レジスタを説明するための説明図である。
【図１６】（ａ）はＨＬレジスタに格納された値が、ＬＤＢ命令によって、どのような処理が実行されるのかを説明する説明図、（ａ−１）は（ａ）にて算出したアドレス番地の所定のビット目から所定のビット数分データを取得することを説明する説明図、（ｂ）は（ａ）に続いて、再び、ＨＬレジスタに格納された値が、ＬＤＢ命令によって、どのような処理が実行されるのかを説明する説明図、（ｂ−１）は（ｂ）にて算出したアドレス番地の所定のビット目から所定のビット数分データを取得することを説明する説明図である。
【図１７】（ａ）は大当たりのラウンド数に応じて、大入賞口パターンを選択するプログラム例を示し、（ｂ）は大入賞口パターン選択テーブル１のプログラム例を示す図である。
【図１８】（ａ）は図１７（ａ）に示すプログラムを用いて、ＨＬレジスタに格納された値が、ＬＤＢ命令によって、どのような処理が実行されるのかを説明する説明図、（ａ−１）は（ａ）にて算出したアドレス番地の所定のビット目から所定のビット数分データを取得することを説明する説明図、（ｂ）は図１７（ａ）に示すプログラムを用いて、再び、ＨＬレジスタに格納された値が、ＬＤＢ命令によって、どのような処理が実行されるのかを説明する説明図、（ｂ−１）は（ｂ）にて算出したアドレス番地の所定のビット目から所定のビット数分データを取得することを説明する説明図である。
【図１９】ＬＤＴ命令によってＨＬレジスタにアドレス番地が格納される仕組みを説明する説明図である。
【図２０】（ａ）は特別図柄変動パターン処理のプログラム例を示し、（ｂ）は特図変動パターン群アドレステーブルのプログラム例を示し、（ｃ）はデータ検索処理のプログラム例を示す図である。
【図２１】特図変動パターン群テーブル１のプログラム例を示す図である。
【図２２】（ａ）は変動振分けテーブルＨ１のプログラム例を示し、（ｂ）は変動振分けテーブルＢ１のプログラム例を示す図である。
【図２３】（ａ）は主制御ＣＰＵの内部レジスタをＰＵＳＨ  ＡＬＬで退避させた場合に退避されるレジスタを説明する説明図、（ｂ）は主制御ＣＰＵの内部レジスタをＰＵＳＨ  ＴＰで退避させた場合に退避されるレジスタを説明する説明図である。
【図２４】タイマ割込み処理のプログラム例を示す図である。
【図２５】メインループ処理のプログラム例を示す図である。
【図２６】（ａ）は特別図柄変動パターンデータ処理のプログラム例を示し、（ｂ）は特図変動パラメータ指定テーブルのプログラム例を示す図である。
【図２７】（ａ）は特図変動時間テーブル１のプログラム例を示し、（ｂ）は特図変動時間テーブル２のプログラム例を示す図である。
【図２８】同実施形態に係る主制御のメイン処理を説明するフローチャート図である。
【図２９】図２８に示すメイン処理中入力管理処理を説明するフローチャート図である。
【図３０】同実施形態に係る主制御のタイマ割込み処理を説明するフローチャート図である。
【図３１】図３０に示す普通図柄処理を説明するフローチャート図である。
【図３２】図３０に示す特別図柄処理を説明するフローチャート図である。
【図３３】図３２に示す始動口チェック処理１（２）を説明するフローチャート図である。
【図３４】図３２に示す特別図柄変動開始処理を説明するフローチャート図である。
【図３５】図３２に示す特別図柄変動中処理を説明するフローチャート図である。
【図３６】図３２に示す特別図柄確認時間中処理を説明するフローチャート図である。
【図３７】（ａ）は普通図柄の当否抽選を実行する際に使用される普通図柄当たり判定テーブルを示し、（ｂ）は特別図柄の当否抽選を実行する際に使用される特別図柄大当たり判定テーブルを示し、（ｃ）は特別図柄の当否抽選を実行する際に使用される特別図柄小当たり判定テーブルを示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明に係る遊技機の一実施形態を、パチンコ遊技機を例にして、図面を参照して具体的に説明する。なお、以下の説明において、上下左右の方向を示す場合は、図示正面から見た場合の上下左右をいうものとする。
【００１９】
＜パチンコ遊技機外観構成の説明＞
まず、図１〜図６を参照して、本実施形態に係るパチンコ遊技機の外観構成を説明する。
【００２０】
＜パチンコ遊技機前面の外観構成の説明＞
図１に示すように、パチンコ遊技機１は、木製の外枠２と、この外枠２の前面に、左側面に設けられているヒンジ４ａ（図２参照）を介して縦軸心廻りに開閉自在及び着脱自在に枢着された矩形状の前面枠３とを備えている。
【００２１】
この前面枠３は、図２及び図３に示すように、上部装着部５と、この上部装着部５の下側に設けられた下部装着部６とを備えている。この上部装着部５の前側には、上記ヒンジ４ａを介して縦軸心廻りに開閉自在及び着脱自在に枢着された透明ガラスを支持した上部開閉扉７が設けられ、下部装着部６の前側には、下部開閉扉８がヒンジ４ａと同じ側に設けられたヒンジ４ｂにより開閉自在及び着脱自在に枢着されている。
【００２２】
そして、この下部開閉扉８には、図１に示すように、排出された遊技球を貯留する上受け皿９と、この上受け皿９が満杯になったときにその余剰球を受けて貯留する下受け皿１０とが一体形成されている。また、下部開閉扉８には、球貸しボタン１１及びプリペイドカード排出ボタン１２（カード返却ボタン１２）が設けられ、そして、上受け皿９の上皿表面部分には、内蔵ランプ（図示せず）点灯時に押下することにより演出効果を変化させることができる押しボタン式の演出ボタン装置１３が設けられている。また、この上受け皿９には、当該上受け皿９に貯留された遊技球を下方に抜くための球抜きボタン１４が設けられ、さらに、略十字キーからなる設定ボタン１５が設けられている。この設定ボタン１５は、遊技者による操作が可能なもので、中央部に設けられた円形の決定キー１５ａと、その決定キー１５ａの図示上側に設けられた三角形状の上キー１５ｂと、その決定キー１５ａの図示左側に設けられた三角形状の左キー１５ｃと、その決定キー１５ａの図示右側に設けられた三角形状の右キー１５ｄと、その決定キー１５ａの図示下側に設けられた三角形状の下キー１５ｅとで構成されている。
【００２３】
一方、下部開閉扉８の右端部側には、図１に示すように、発射ユニットを作動させるための発射ハンドル１６が設けられ、図１〜図３に示すように、前面枠３の上部両側面側及び発射ハンドル１６の近傍には、ＢＧＭ（Ｂａｃｋｇｒｏｕｎｄ  ｍｕｓｉｃ）あるいは効果音を発するスピーカ１７が設けられている。そして、上部開閉扉７及び下部開閉扉８の各所には、光の装飾による演出効果を現出するＬＥＤランプ等の装飾ランプが配置されている。
【００２４】
他方、上部装着部５には、図２及び図３に示すように、遊技盤装着枠１８が設けられており、この遊技盤装着枠１８に遊技盤ＹＢ（図１参照）が、図５に示す遊技領域４０を前面に臨ませた状態で装着され、遊技盤装着枠１８内に固定されることとなる。すなわち、図３に示すように、上部装着部５には、右側面側下部に複数の接続用コネクタ１９（図示では４個）が設けられているため、これら接続用コネクタ１９に、遊技盤ＹＢの背面に設けられた被接続用コネクタ（図示せず）が接続されることで、遊技盤装着枠１８内に遊技盤ＹＢが装着される。そして、右側面側上下方向に設けられた固定具２０ａ，２０ｂによって遊技盤装着枠１８内に遊技盤ＹＢが固定されることとなる。これにより、遊技盤装着枠１８内に遊技盤ＹＢが装着され、もって、その遊技盤ＹＢの遊技領域４０の前側に、透明ガラスを支持した上部開閉扉７が設けられることとなる（図１参照）。なお、上記遊技領域４０は、遊技盤ＹＢの面上に配置された球誘導レールＵＲ（図５参照）で囲まれた領域からなるものである。
【００２５】
一方、下部装着部６には、図２及び図３に示すように、左右方向略中央に発射機構２１が配置され、その発射機構２１の右側には、スピーカ１７が配置されている。この発射機構２１は、図３に示すように、板金製の支持板２２と、この支持板２２の前面に装着された発射レール２３と、支持板２２の前面に装着され且つ発射用の遊技球を発射レール２３上の発射待機位置２４に保持する球保持部２５と、支持板２２の前面で前後方向の駆動軸２６廻りに揺動自在に支持された打撃槌２７と、支持板２２の裏側に装着され、且つ、打撃槌２７を、駆動軸２６を介して打撃方向に駆動する発射モータを備えた発射制御基板７１とを備えている。
【００２６】
＜遊技盤の外観構成の説明＞
他方、上記遊技盤ＹＢの遊技領域４０には、図５に示すように、略中央部にＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）等からなる液晶表示装置４１が配置されている。この液晶表示装置４１は、表示エリアを左、中、右の３つのエリアに分割し、独立して数字やキャラクタ、文字（キャラクタの会話や歌詞テロップ等）あるいは特別図柄の変動表示が可能なものである。そしてこのような液晶表示装置４１の周囲には、装飾用の上飾り４２ａ、左飾り４２ｂ、右飾り４２ｃが設けられており、この上飾り４２ａ、左飾り４２ｂ、右飾り４２ｃの背面側には可動役物装置４３が配置されている。
【００２７】
この可動役物装置４３は、図５に示すように、遊技の進行に伴い所定の演出動作を行う上可動役物４３ａと、左可動役物４３ｂと、右可動役物４３ｃと、左上可動役物４３ｄと、さらに、上・左・右・左上可動役物４３ａ〜４３ｄを、夫々、駆動する２相のステッピングモータ等のモータ（図示せず）とで構成されている。なお、これら上・左・右・左上可動役物４３ａ〜４３ｄには、光の装飾により演出効果を現出するＬＥＤランプ等の装飾ランプが配置されている。
【００２８】
一方、液晶表示装置４１の真下には、特別図柄１始動口４４が配置され、その内部には入賞球を検出する特別図柄１始動口スイッチ４４ａ（図７参照）が設けられている。そしてこの特別図柄１始動口スイッチ４４ａ（図７参照）が検出した有効入賞球数、すなわち、第１始動保留球数が所定数（例えば、４個）液晶表示装置４１に表示されることとなる。なお、この第１始動保留球数は、特別図柄１始動口４４へ遊技球が入賞し、特別図柄１始動口スイッチ４４ａ（図７参照）にて検出されると、１加算（＋１）され、数字やキャラクタあるいは図柄（装飾図柄）等の特別図柄の変動表示が開始されると、１減算（−１）されるというものである。
【００２９】
他方、液晶表示装置４１の右下部側には、特別図柄２始動口４５が配置され、その内部には入賞球を検出する特別図柄２始動口スイッチ４５ａ（図７参照）が設けられている。そしてこの特別図柄２始動口スイッチ４５ａ（図７参照）が検出した有効入賞球数、すなわち、第２始動保留球数が所定数（例えば、４個）液晶表示装置４１に表示されることとなる。なお、この第２始動保留球数は、特別図柄２始動口４５へ遊技球が入賞し、特別図柄２始動口スイッチ４５ａ（図７参照）にて検出されると、１加算（＋１）され、数字やキャラクタあるいは図柄（装飾図柄）等の特別図柄の変動表示が開始されると、１減算（−１）されるというものである。
【００３０】
一方、この特別図柄２始動口４５は、図５に示すように、開閉部材４５ｂを備えており、この開閉部材４５ｂが開放した場合に遊技球が入賞し易い状態となる。この開閉部材４５ｂは、後述する普通図柄の抽選に当選した場合に、所定回数、所定時間開放するもので、普通電動役物ソレノイド４５ｃ（図７参照）によって開閉動作が制御されている。なお、以下では、このような開閉部材４５ｂ及び普通電動役物ソレノイド４５ｃを合せた装置を普通電動役物と称することがある。
【００３１】
他方、特別図柄１始動口４４の右側には、図５に示すように、入賞装置４６が配置されている。この入賞装置４６は、後述する特別図柄の抽選に当選したとき、すなわち大当たりしたことにより発生する特別遊技状態の際、開閉扉４６ａにて閉止されている図示しない大入賞口が開放するように開閉扉４６ａが特別電動役物ソレノイド４６ｂ（図７参照）によって駆動制御され、遊技球が大入賞口（図示せず）に入球可能となる。なお、この大入賞口（図示せず）に入球した遊技球は入賞球として大入賞口（図示せず）内部に設けられている大入賞口スイッチ４６ｃ（図７参照）によって検出される。
【００３２】
一方、特別図柄の抽選に当選していないとき、すなわち、特別遊技状態でない場合は、特別電動役物ソレノイド４６ｂ（図７参照）によって開閉扉４６ａが駆動制御され、大入賞口（図示せず）が閉止される。これにより、大入賞口（図示せず）内に遊技球が入球することができなくなる。なお、以下では、このような開閉扉４６ａ及び特別電動役物ソレノイド４６ｂを合せた装置を特別電動役物と称することがある。
【００３３】
他方、液晶表示装置４１の右上部には、図５に示すように、ゲートからなる普通図柄始動口４７が配置され、その内部には、遊技球の通過を検出する普通図柄始動口スイッチ４７ａ（図７参照）が設けられている。また、上記入賞装置４６の右側及び上記特別図柄１始動口４４の左側には、一般入賞口４８が夫々配置されている。この一般入賞口４８は、上記入賞装置４６の右側に配置されている右上一般入賞口４８ａと、上記特別図柄１始動口４４の左側に配置されている左上一般入賞口４８ｂと、左中一般入賞口４８ｃと、左下一般入賞口４８ｄとで構成されている。そして、右上一般入賞口４８ａの内部には遊技球の通過を検出する右上一般入賞口スイッチ４８ａ１（図７参照）が設けられ、左上一般入賞口４８ｂの内部には遊技球の通過を検出する左上一般入賞口スイッチ４８ｂ１（図７参照）が設けられ、左中一般入賞口４８ｃの内部には遊技球の通過を検出する左中一般入賞口スイッチ４８ｃ１（図７参照）が設けられ、左下一般入賞口４８ｄの内部には遊技球の通過を検出する左下一般入賞口スイッチ４８ｄ１（図７参照）が設けられている。
【００３４】
一方、特別図柄１始動口４４の真下には、入賞することなく遊技領域４０最下流部まで流下してきた遊技球（アウト球）が入球されるアウト口４９が配置されている。なお、このアウト口４９に入球した遊技球は非入賞球として内部に設けられているアウト口スイッチ４９ａ（図７参照）によって検出され、さらに、上述した入賞球も遊技盤４の背面側を通って最下流部まで流下することとなるため、アウト口スイッチ４９ａ（図７参照）によって検出されることとなる。それゆえ、アウト口スイッチ４９ａ（図７参照）は、排出されたアウト総数、すなわち、発射ハンドル１６にて遊技領域４０に発射された遊技球と同数の遊技球を検出することとなる。
【００３５】
他方、上記遊技盤４の遊技領域４０の右下周縁部には、７セグメントが３個並べて構成されており、そのうち２個の７セグメントが特別図柄表示装置５０であり、他の７セグメントは特別図柄１や特別図柄２の始動保留球数を表示するものである。この特別図柄表示装置５０は、図５に示すように、特別図柄１表示装置５０ａと特別図柄２表示装置５０ｂとで構成されており、その特別図柄１表示装置５０ａの左側には、２個のＬＥＤからなる普通図柄表示装置５１が設けられている。なお、上記遊技盤４の遊技領域４０には、図示はしないが複数の遊技釘が配置され、遊技球の落下方向変換部材としての風車５２が配置されている。
【００３６】
ところで、上記の説明においては、発射ハンドル１６にて遊技領域４０に発射された遊技球と同数の遊技球を検出するにあたり、アウト口スイッチ４９ａ（図７参照）にて、排出されたアウト総数を検出する例を示したが、それに限らず、図６に示すように、球誘導レールＵＲに遊技球検出スイッチＵＲ１ａを備えた遊技球検出装置ＵＲ１を設けても良い。すなわち、図６に示すように、発射ハンドル１６にて遊技領域４０に向って発射された遊技球ＹＫは、球誘導レールＵＲに沿って矢印Ｙ１方向に移動することとなる。そして、その矢印Ｙ１方向に移動した遊技球ＹＫが、遊技球検出スイッチＵＲ１ａに接触すると、遊技球検出装置ＵＲ１は、発射ハンドル１６にて発射された遊技球を検出することとなる。しかして、このようにしても、発射ハンドル１６にて遊技領域４０に発射された遊技球と同数の遊技球を検出することができる。
【００３７】
ところで、このような遊技球検出スイッチＵＲ１ａを備えた遊技球検出装置ＵＲ１を設けるにあたり、発射ハンドル１６にて遊技領域４０に向って発射された遊技球ＹＫが球誘導レールＵＲの先端部ＵＲａに移動し、遊技領域４０内に到達すれば何ら問題はないが、発射ハンドル１６にて遊技領域４０に向って発射された遊技球ＹＫの勢いが弱く、図６に示す矢印Ｙ２方向に遊技球ＹＫが落下し、球誘導レールＵＲ内に侵入した際、遊技球ＹＫは、図６に示す矢印Ｙ３方向・矢印Ｙ４方向に移動しながら、遊技領域４０内に到達することとなる。この際、球誘導レールＵＲ内に侵入した遊技球ＹＫが遊技球検出装置ＵＲ１に接触（衝突）すると、遊技球検出装置ＵＲ１が遊技球検出スイッチＵＲ１ａに遊技球ＹＫが接触したと勘違いし、誤検出する可能性がある。
【００３８】
そこで、本実施形態においては、遊技球検出装置ＵＲ１に遊技球ＹＫが接触（衝突）しないよう、遊技球検出装置ＵＲ１の上部側（図示右側）、すなわち、球誘導レールＵＲ内に位置する部分を覆うように防護壁ＵＲ２を設けている。これにより、球誘導レールＵＲ内に侵入した遊技球ＹＫは、遊技球検出装置ＵＲ１に接触（衝突）せず、防護壁ＵＲ２に接触（衝突）することとなるから、誤検出を防止することできる。
【００３９】
一方、誤検出を防止する方法として、防護壁ＵＲ２を設けず、プログラム処理で対応することも可能である。すなわち、遊技球検出装置ＵＲ１が遊技球検出スイッチＵＲ１ａに遊技球ＹＫが接触したことを検出した後、一定期間（例えば、４００ｍｓ）検出無効期間を設けるようにしても良い。このようにしても、球誘導レールＵＲ内に侵入した遊技球ＹＫが遊技球検出装置ＵＲ１に接触（衝突）する場合、上記の検出無効期間内に接触（衝突）する可能性が高いため、もって、誤検出を防止することができる。なお、この一定期間（例えば、４００ｍｓ）は、発射ハンドル１６にて遊技領域４０に発射される間隔（例えば、６００ｍｓ）よりも短くするのが好ましい。また、遊技球検出装置ＵＲ１に何らかの不具合が発生し、例えば、１０００ｍｓ区間、遊技球検出装置ＵＲ１が遊技球検出スイッチＵＲ１ａに遊技球ＹＫが接触したことを検出し続けていた場合、遊技球検出装置ＵＲ１に何らかの不具合が発生したとし、エラーを報知するようにしても良い。
【００４０】
＜パチンコ遊技機背面の外観構成の説明＞
かくして、このように構成されるパチンコ遊技機１の背面は、図４に示すように、遊技盤装着枠１８を覆って遊技盤ＹＢを裏側から押さえる枠体状の裏機構板５３が取付けられている。そして、この裏機構板５３の上部右側寄りには、パチンコホール側島設備の遊技球補給装置（図示せず）から供給される遊技球を貯留する遊技球貯留タンク５４が設けられ、さらには、その遊技球貯留タンク５４から球を導出するタンクレール５５が設けられている。
【００４１】
このタンクレール５５の傾斜下端には、払出し装置５６と払出し通路５７とが装着されており、遊技球が大入賞口（図示せず）等の入賞口に入賞した時、又は、遊技球貸出装置（図示せず）から球貸し指令があった時に、遊技球貯留タンク５４内の遊技球を、タンクレール５５を経て払出し装置５６により払出し、その遊技球を、払出し通路５７を経て上受け皿９（図１参照）に案内するようになっている。
【００４２】
また、裏機構板５３の略中央には、遊技盤ＹＢの裏側に着脱自在に装着された透明の裏カバー５８（図３も参照）が装着されており、この裏カバー５８内には、演出制御基板９０を収納した透明の演出制御基板ケース９０ａと、液晶制御基板１２０を収納した透明の液晶基板ケース１２０ａとが着脱自在に設けられている。そして、演出制御基板ケース９０ａの下方には、内部に主制御基板６０を収納した透明な主制御基板ケース６０ａが着脱自在に設けられ、この主制御基板ケース６０ａの下方には、払出制御基板７０を収納した透明な払出制御基板ケース７０ａが着脱自在に設けられている。さらに、この主制御基板ケース６０ａの下方には、電源基板１３０を収納した電源基板ケース１３０ａが着脱自在に設けられている。
【００４３】
＜制御装置の説明＞
次に、上記のような外観構成からなるパチンコ遊技機１内に設けられる遊技の進行状況に応じて電子制御を行う制御装置を、図７を用いて説明する。この制御装置は、図７に示すように、遊技動作全般の制御を司る主制御基板６０と、その主制御基板６０からの制御コマンドに基づいて遊技球を払出す払出制御基板７０と、画像と光と音についての制御を行うサブ制御基板８０とで主に構成されている。なお、サブ制御基板８０は、図７に示すように、演出制御基板９０と、装飾ランプ基板１００と、液晶制御基板１２０とで構成されている。
【００４４】
＜主制御基板に関する説明＞
主制御基板６０は、主制御ＣＰＵ６００ａと、一連の遊技制御手順を記述した遊技プログラム等を格納した主制御ＲＯＭ６００ｂと、作業領域やバッファメモリ等として機能する主制御ＲＡＭ６００ｃとで構成されたワンチップマイクロコンピュータ６００と、低確時（当たり抽選確率が通常の低確率状態）に幾らの賞球がされたかの比率等に関する内容を表示する７セグメントからなる計測表示装置６１０と、遊技者に有利な特別遊技状態を発生させる確率の設定内容を表示する７セグメントからなる設定表示装置６２０と、ＲＡＭクリアスイッチ６３０と、設定キースイッチ６４０と、設定変更スイッチ６５０と、を主に搭載している。
【００４５】
そして、このように構成される主制御基板６０には、払出モータＭを制御して遊技球を払出す払出制御基板７０が接続されている。そしてさらには、特別図柄１始動口４４への入賞を検出する特別図柄１始動口スイッチ４４ａと、特別図柄２始動口４５への入賞を検出する特別図柄２始動口スイッチ４５ａと、普通図柄始動口４７の通過を検出する普通図柄始動口スイッチ４７ａと、一般入賞口４８（右上一般入賞口４８ａ，左上一般入賞口４８ｂ，左中一般入賞口４８ｃ，左下一般入賞口４８ｄ）への入賞を検出する右上一般入賞口スイッチ４８ａ１，左上一般入賞口スイッチ４８ｂ１，左中一般入賞口スイッチ４８ｃ１，左下一般入賞口スイッチ４８ｄ１と、開閉扉４６ａによって開放又は閉止される大入賞口（図示せず）の入賞を検出する大入賞口スイッチ４６ｃと、発射ハンドル１６にて遊技領域４０に発射された遊技球と同数の遊技球を検出可能なアウト口スイッチ４９ａとが接続されている。またさらには、開閉部材４５ｂの動作を制御する普通電動役物ソレノイド４５ｃと、開閉扉４６ａの動作を制御する特別電動役物ソレノイド４６ｂと、特別図柄１表示装置５０ａと、特別図柄２表示装置５０ｂと、普通図柄表示装置５１とが接続されている。
【００４６】
このように構成される主制御基板６０は、特別図柄１始動口スイッチ４４ａ又は特別図柄２始動口スイッチ４５ａあるいは普通図柄始動口スイッチ４７ａからの信号を主制御ＣＰＵ６００ａにて受信すると、遊技者に有利な特別遊技状態を発生させるか（いわゆる「当たり」）、あるいは、遊技者に有利な特別遊技状態を発生させないか（いわゆる「ハズレ」）の抽選を行い、その抽選結果である当否情報に応じて特別図柄の変動パターンや停止図柄あるいは普通図柄の表示内容を決定し、その決定した情報を特別図柄１表示装置５０ａ又は特別図柄２表示装置５０ｂあるいは普通図柄表示装置５１に送信する。これにより、特別図柄１表示装置５０ａ又は特別図柄２表示装置５０ｂあるいは普通図柄表示装置５１に抽選結果が表示されることとなる。そしてさらに、主制御基板６０、すなわち、主制御ＣＰＵ６００ａは、その決定した情報を含む演出制御コマンドＤＩ_ＣＭＤを生成し、演出制御基板９０に送信する。なお、主制御基板６０、すなわち、主制御ＣＰＵ６００ａが、特別図柄１始動口スイッチ４４ａ、特別図柄２始動口スイッチ４５ａ、右上一般入賞口スイッチ４８ａ１、左上一般入賞口スイッチ４８ｂ１、左中一般入賞口スイッチ４８ｃ１、左下一般入賞口スイッチ４８ｄ１、大入賞口スイッチ４６ｃからの信号を受信した場合は、遊技者に幾らの遊技球を払い出すかを決定し、その決定した情報を含む払出制御コマンドＰＡＹ_ＣＭＤを払出制御基板７０に送信することで、払出制御基板７０が遊技者に遊技球を払出すこととなる。
【００４７】
また、抽選を行った結果、普通図柄の抽選に当選した場合、開閉部材４５ｂが所定回数、所定時間開放するように普通電動役物ソレノイド４５ｃが駆動制御され、特別図柄の抽選に当選した場合、特別電動役物ソレノイド４６ｂが大入賞口（図示せず）を開放するように制御される。
【００４８】
一方、主制御基板６０、すなわち、主制御ＣＰＵ６００ａは、特別図柄１始動口スイッチ４４ａ、特別図柄２始動口スイッチ４５ａ、右上一般入賞口スイッチ４８ａ１、左上一般入賞口スイッチ４８ｂ１、左中一般入賞口スイッチ４８ｃ１、左下一般入賞口スイッチ４８ｄ１、大入賞口スイッチ４６ｃからの信号を受信する毎に、賞球数を計測し、アウト口スイッチ４９ａからの信号を受信する毎に、排出された遊技球の総数を計測する。そして、主制御基板６０、すなわち、主制御ＣＰＵ６００ａは、この計測した賞球数及び排出された遊技球の総数に基づき、低確時に幾らの賞球がされたかの比率等に関する内容（性能表示）を計測表示装置６１０に出力する。これにより、計測表示装置６１０に低確時に幾らの賞球がされたかの比率等に関する内容（性能表示）が表示されることとなる。
【００４９】
この計測表示装置６１０についてより詳しく説明すると、計測表示装置６１０は、図８（ａ）に示すように、７セグメントからなる第１の計測表示装置６１０Ａと、７セグメントからなる第２の計測表示装置６１０Ｂと、７セグメントからなる第３の計測表示装置６１０Ｃと、７セグメントからなる第４の計測表示装置６１０Ｄと、で構成されており、この第１の計測表示装置６１０Ａ、第２の計測表示装置６１０Ｂ、第３の計測表示装置６１０Ｃ、第４の計測表示装置６１０Ｄに低確時に幾らの賞球がされたかの比率等に関する内容（性能表示）が表示されることとなる。
【００５０】
一方、設定表示装置６２０は、図８（ｂ）に示すように、１個の７セグメントからなり、遊技者に有利な特別遊技状態を発生させる確率の設定内容を、例えば、「１」〜「６」の６段階で表示することができるようになっている。しかして、このような設定内容を変更するにあたっては、設定キースイッチ６４０に専用キーを挿入し、ＯＮされると、設定変更スイッチ６５０にて、遊技者に有利な特別遊技状態を発生させる確率の設定内容を例えば「１」〜「６」の６段階で設定変更することができるようになっている（例えば、設定「６」が、遊技者に有利な特別遊技状態を発生させる確率が最も高く、設定「１」が、遊技者に有利な特別遊技状態を発生させる確率が最も低くなっている）。そして、その設定変更内容は、設定表示装置６２０に表示され、設定変更内容が確定すると、７セグメントの右下側にあるドットが点灯し、設定内容が確定したことが表示されるようになっている。なお、以下の説明において、設定変更スイッチ６５０は、遊技者に有利な特別遊技状態を発生させる確率の設定内容を変更させる機能（設定変更機能）と、その設定変更内容を確定させる機能（設定変更完了機能）を両方合わせ持つことを前提に説明するが、勿論、設定変更スイッチ６５０は、遊技者に有利な特別遊技状態を発生させる確率の設定内容を変更させる機能だけを備え、その設定変更内容の確定は、別のスイッチを設けて行うようにしても良い。
【００５１】
他方、ＲＡＭクリアスイッチ６３０は、ＲＡＭクリアスイッチ６３０が押下されると、主制御ＲＡＭ６００ｃ（図７参照）のメモリ領域は全てクリアされず、一部のメモリ領域のみクリアされるようになっている。すなわち、主制御ＲＡＭ６００ｃは、図９（ａ）に示すように、メモリ空間アドレス００００Ｈ番地〜０２００Ｈ番地のうち、メモリ空間アドレス００００Ｈ番地〜０１００Ｈ番地までが、抽選処理等の遊技処理時の作業領域等として使用される通常用ＲＡＭ領域６００ｃａで、メモリ空間アドレス０１００Ｈ番地〜０１１０Ｈ番地までが、未使用領域６００ｃｂで、メモリ空間アドレス０１１０Ｈ番地〜０１３０Ｈ番地までが、抽選処理等の遊技処理時に使用される通常用スタック領域６００ｃｃで、メモリ空間アドレス０１３０Ｈ番地〜０１５０Ｈ番地までが、未使用領域６００ｃｄで、メモリ空間アドレス０１５０Ｈ番地〜０１９０Ｈ番地までが、主制御基板６０、すなわち、主制御ＣＰＵ６００にて計測した賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を記憶する計測用ＲＡＭ領域６００ｃｅで、メモリ空間アドレス０１９０Ｈ番地〜０１Ｅ０Ｈ番地までが、未使用領域６００ｃｆで、メモリ空間アドレス０１Ｅ０Ｈ番地〜０２００Ｈ番地までが、賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する等の際に使用される計測用スタック領域６００ｃｇで構成されている。
【００５２】
かくして、このように構成された主制御ＲＡＭ６００ｃは、ＲＡＭクリアスイッチ６３０が押下された際、主制御ＲＡＭ６００ｃの計測用ＲＡＭ領域６００ｃｅ，計測用スタック領域６００ｃｇはクリアされず、通常用ＲＡＭ領域６００ｃａ，通常用スタック領域６００ｃｃがクリアされるようになっている。しかして、このようにすれば、計測した賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等が誤ってクリアされる事態を防止することができる。なお、本実施形態においては、ＲＡＭクリアスイッチ６３０が押下された際、通常用ＲＡＭ領域６００ｃａ，通常用スタック領域６００ｃｃがクリアされる例を示したが、それに限らず、未使用領域６００ｃｂ，６００ｃｄを含めて、メモリ空間アドレス００００Ｈ番地〜０１５０Ｈ番地までクリアされるようにしてもよい。
【００５３】
また、通常用ＲＡＭ領域６００ｃａ，通常用スタック領域６００ｃｃ，計測用ＲＡＭ領域６００ｃｅ，計測用スタック領域６００ｃｇの各領域を下１桁が０から始まる番地から開始し、通常用ＲＡＭ領域６００ｃａと通常用スタック領域６００ｃｃとの間に未使用領域６００ｃｂを設け、又、通常用スタック領域６００ｃｃと計測用ＲＡＭ領域６００ｃｅとの間に未使用領域６００ｃｄを設け、さらに、計測用ＲＡＭ領域６００ｃｅと計測用スタック領域６００ｃｇとの間に未使用領域６００ｃｆを設けることによって、領域毎の区別をつけるようにしている。これにより、プログラムが暴走した際に、他の領域に影響が出ないようにすることができる。
【００５４】
一方、主制御ＲＯＭ６００ｂは、図９（ｂ）に示すように、メモリ空間アドレス８０００Ｈ番地〜Ａ８００Ｈ番地のうち、メモリ空間アドレス８０００Ｈ番地〜８Ｂ９０Ｈ番地までが、抽選処理等の遊技処理時に使用されるプログラムが格納されている通常用プログラム領域６００ｂａで、メモリ空間アドレス８Ｂ９０Ｈ番地〜９０００Ｈ番地までが、未使用領域６００ｂｂで、メモリ空間アドレス９０００Ｈ番地〜９Ａ００Ｈ番地までが、抽選処理等の遊技処理時に使用されるデータが格納されている通常用データ領域６００ｂｃで、メモリ空間アドレス９Ａ００Ｈ番地〜９Ｃ００Ｈ番地までが、未使用領域６００ｂｄで、メモリ空間アドレス９Ｃ００Ｈ番地〜Ａ０１０Ｈ番地までが、賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムが格納されている計測用プログラム領域６００ｂｅで、メモリ空間アドレスＡ０１０Ｈ番地〜Ａ２００Ｈ番地までが、未使用領域６００ｂｆで、メモリ空間アドレスＡ２００Ｈ番地〜Ａ３２０Ｈ番地までが、賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるデータが格納されている計測用データ領域６００ｂｇで、メモリ空間アドレスＡ３２０Ｈ番地〜Ａ７８０Ｈ番地までが、未使用領域６００ｂｈで、メモリ空間アドレスＡ７８０Ｈ番地〜Ａ８００Ｈ番地までが、ベクタテーブル領域６００ｂｉで構成されている。なお、このベクタテーブル領域６００ｂｉは、後述する複数のコール命令のうち、ＣＡＬＬ_Ｓ命令で呼び出すことができるサブルーチンのテーブルアドレスが格納されているものである。
【００５５】
しかして、このように構成された主制御ＲＡＭ６００ｃは、通常用プログラム領域６００ｂａ，通常用データ領域６００ｂｃ，計測用プログラム領域６００ｂｅ，計測用データ領域６００ｂｇ，ベクタテーブル領域６００ｂｉの各領域を下１桁が０から始まる番地から開始し、通常用プログラム領域６００ｂａと通常用データ領域６００ｂｃとの間に未使用領域６００ｂｂを設け、又、通常用データ領域６００ｂｃと計測用プログラム領域６００ｂｅとの間に未使用領域６００ｂｄを設け、さらに、計測用プログラム領域６００ｂｅと計測用データ領域６００ｂｇとの間に未使用領域６００ｂｆを設け、そしてさらに、計測用データ領域６００ｂｇとベクタテーブル領域６００ｂｉとの間に未使用領域６００ｂｈを設けることによって、領域毎の区別をつけるようにしている。これにより、プログラムが暴走した際に、他の領域に影響が出ないようにすることができる。
【００５６】
＜払出制御基板に関する説明＞
払出制御基板７０は、上記主制御基板６０（主制御ＣＰＵ６００ａ）からの払出制御コマンドＰＡＹ_ＣＭＤを受信し、その受信した払出制御コマンドＰＡＹ_ＣＭＤに基づいて払出モータ信号を生成する。そして、その生成した払出モータ信号にて、払出モータＭを制御し、遊技者に遊技球を払出す。そしてさらに、払出制御基板７０は、遊技球の払出動作を示す賞球計数信号や払出動作の異常に係るステイタス信号を送信し、遊技者の操作に応答して遊技球を発射させる発射制御基板７１の動作を開始又は停止させる発射制御信号を送信する処理を行う。
【００５７】
＜演出制御基板に関する説明＞
演出制御基板９０は、上記主制御基板６０（主制御ＣＰＵ６００ａ）からの演出制御コマンドＤＩ_ＣＭＤを受けて各種演出を実行制御する演出制御ＣＰＵ９００と、演出制御手順を記述した制御プログラム等が格納されているフラッシュメモリからなる演出制御ＲＯＭ９１０と、作業領域やバッファメモリ等として機能する演出制御ＲＡＭ９２０とで構成されている。そしてさらに、演出制御基板９０は、所望のＢＧＭや効果音を生成する音ＬＳＩ９３０と、ＢＧＭや効果音等の音データ等が予め格納されている音ＲＯＭ９４０とが搭載されている。
【００５８】
このように構成される演出制御基板９０には、ランプ演出効果を現出するＬＥＤランプ等の装飾ランプが搭載されている装飾ランプ基板１００が接続され、さらに、内蔵されているランプ（図示せず）点灯時に遊技者が押下することにより演出効果を変化させることができる押しボタン式の演出ボタン装置１３が接続され、ＢＧＭや効果音等を発するスピーカ１７が接続されている。そしてさらに、演出制御基板９０には、遊技の進行に伴い所定の演出動作を行う可動役物装置４３が接続され、各種設定が可能な設定ボタン１５が接続され、液晶表示装置４１を制御する液晶制御基板１２０が接続されている。なお、言うまでもないが、この装飾ランプ基板１００には、上・左・右・左上可動役物４３ａ〜４３ｄに配置されている装飾ランプも搭載されている。
【００５９】
かくして、このように構成される演出制御基板９０は、主制御基板６０（主制御ＣＰＵ６００ａ）より送信される大当たり抽選結果（大当たりかハズレの別）に基づく特別図柄変動パターン、現在の遊技状態、第１始動保留球数、第２始動保留球数、抽選結果に基づき停止させる装飾図柄等に必要となる基本情報を含んだ演出制御コマンドＤＩ_ＣＭＤを演出制御ＣＰＵ９００にて受信する。そして、演出制御ＣＰＵ９００は、受信した演出制御コマンドＤＩ_ＣＭＤに対応した演出パターンを、演出制御ＲＯＭ９１０内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンを実行指示する制御信号を演出制御ＲＡＭ９２０内に一時的に格納する。
【００６０】
そして、演出制御ＣＰＵ９００は、演出制御ＲＡＭ９２０内に格納しておいた演出パターンを実行指示する制御信号のうち、音に関する制御信号を音ＬＳＩ９３０に送信する。これを受けて音ＬＳＩ９３０は、当該制御信号に対応する音データを音ＲＯＭ９４０より読み出し、スピーカ１７に出力する。これにより、スピーカ１７より上記決定された演出パターンに対応したＢＧＭや効果音が発せられることとなる。
【００６１】
また、演出制御ＣＰＵ９００は、演出制御ＲＡＭ９２０内に格納しておいた演出パターンを実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板１００に送信する。これにより、装飾ランプ基板１００が、ランプ演出効果を現出するＬＥＤランプ等の装飾ランプを点灯又は消灯する制御を行うため、上記決定された演出パターンに対応したランプ演出が実行されることとなる。
【００６２】
さらに、演出制御ＣＰＵ９００は、演出制御ＲＡＭ９２０内に格納しておいた演出パターンを実行指示する制御信号のうち、画像に関する液晶制御コマンドＬＣＤ_ＣＭＤを液晶制御基板１２０に送信する。これにより、液晶制御基板１２０が、当該液晶制御コマンドＬＣＤ_ＣＭＤに基づく画像を表示させるように液晶表示装置４１を制御することにより、上記決定された演出パターンに対応した画像が液晶表示装置４１に表示されることとなる。なお、液晶制御基板１２０には演出内容に沿った画像を表示するための種々の画像データが記憶されており、さらに、演出出力全般の制御を担うＶＤＰ（Ｖｉｄｅｏ  Ｄｉｓｐｌａｙ  Ｐｒｏｃｅｓｓｏｒ）が搭載されている。
【００６３】
またさらに、演出制御ＣＰＵ９００は、演出制御ＲＡＭ９２０内に格納しておいた演出パターンを実行指示する制御信号のうち、可動役物に関する制御信号を可動役物装置４３に送信する。これにより、可動役物装置４３は、上記決定された演出パターンに対応した可動をすることとなる。
【００６４】
ところで、上記説明した各基板への電源供給は、図７に示す電源基板１３０より供給されている。この電源基板１３０は、電圧生成部１３００と、電圧監視部１３１０と、システムリセット生成部１３２０とを含んで構成されている。この電圧生成部１３００は、遊技店に設置された図示しない変圧トランスから供給される外部電源である交流電圧ＡＣ２４Ｖを受けて複数種類の直流電圧を生成するもので、その生成された直流電圧は、図示はしないが各基板に供給されている。
【００６５】
また、電圧監視部１３１０は、上記交流電圧ＡＣ２４Ｖの電圧を監視するもので、この電圧が遮断されたり、停電が発生したりして電圧異常を検出した場合に電圧異常信号ＡＬＡＲＭを主制御基板６０に出力するものである。なお、電圧異常信号ＡＬＡＲＭは、電圧異常時には「Ｌ」レベルの信号を出力し、正常時には「Ｈ」レベルの信号を出力する。
【００６６】
また、一方、システムリセット生成部１３２０は、電源投入時のシステムリセット信号を生成するもので、その生成されたシステムリセット信号は、図示はしないが各基板に出力されている。
【００６７】
＜主制御ＲＯＭのデータ配置の説明＞
ここで、上記説明した主制御ＲＯＭ６００ｂのうち、通常用データ領域６００ｂｃ，計測用データ領域６００ｂｇに格納されるデータ配置について、図１０を参照して説明することとする。
【００６８】
従来、主制御ＲＯＭ６００ｂのデータ配置は、１バイト単位で構成されている為、データの種類によっては、１バイトを構成する８ビットの内、未使用となるビットも含めたデータ配置となっている。この点、図１０（ａ）に示す、特別図柄の変動時間データのデータ配置を例にして、具体的に説明することとする。
【００６９】
特別図柄の変動時間のデータとして、１０秒の第１変動時間と、３０秒の第２変動時間と、５０秒の第３変動時間と、１２０秒の第４変動時間とが存在したとする。この際、１０秒は、１００００ミリ秒で、後述するように４ｍｓ毎に定期的にタイマ割込みが発生すると１カウントすることとなるため、１００００／４＝２５００となり、これを１６進数にすると、０９Ｃ４Ｈとなる。しかして、このようにして計算していくと、３０秒は、１Ｄ４ＣＨ、５０秒は、３０Ｄ４Ｈ、１２０秒は、７５３０Ｈとなる。
【００７０】
かくして、１０秒に相当する第１変動時間データは、０９Ｃ４Ｈであって、２進数にすると、「００００  １００１  １１００  ０１００」となり、図１０（ａ）に示すように、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃにおける従来の変動時間データのデータ配置では、メモリ空間アドレス９０００Ｈ番地に、下位８ビットである「１１００  ０１００」が配置され、次のメモリ空間アドレス９００１Ｈ番地に、上位８ビットである「００００  １００１」が配置されることとなる。
【００７１】
次いで、３０秒に相当する第２変動時間データは、１Ｄ４ＣＨであって、２進数にすると、「０００１  １１０１  ０１００  １１００」となり、図１０（ａ）に示すように、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃにおける従来の変動時間データのデータ配置では、メモリ空間アドレス９００２Ｈ番地に、下位８ビットである「０１００  １１００」が配置され、次のメモリ空間アドレス９００３Ｈ番地に、上位８ビットである「０００１  １１０１」が配置されることとなる。
【００７２】
次いで、５０秒に相当する第３変動時間データは、３０Ｄ４Ｈであって、２進数にすると、「００１１  ００００  １１０１  ０１００」となり、図１０（ａ）に示すように、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃにおける従来の変動時間データのデータ配置では、メモリ空間アドレス９００４Ｈ番地に、下位８ビットである「１１０１  ０１００」が配置され、次のメモリ空間アドレス９００５Ｈ番地に、上位８ビットである「００１１  ００００」が配置されることとなる。
【００７３】
次いで、１２０秒に相当する第４変動時間データは、７５３０Ｈであって、２進数にすると、「０１１１  ０１０１  ００１１  ００００」となり、図１０（ａ）に示すように、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃにおける従来の変動時間データのデータ配置では、メモリ空間アドレス９００６Ｈ番地に、下位８ビットである「００１１  ００００」が配置され、次のメモリ空間アドレス９００７Ｈ番地に、上位８ビットである「０１１１  ０１０１」が配置されることとなる。
【００７４】
かくして、このようにして、従来の変動時間データのデータ配置では、メモリ空間アドレス番地毎にデータが配置されることとなる。
【００７５】
しかしながら、このようなデータ配置では、１０秒の第１変動時間と、３０秒の第２変動時間と、５０秒の第３変動時間と、１２０秒の第４変動時間いずれも、最上位ビットである１６ビット目が何れも「０」であるから、本来であれば、変動時間データとして１５ビットしか必要でないにもかかわらず、無駄な１ビットを、図１０（ａ）に示すように、メモリ空間アドレス９００１Ｈ番地の８ビット目、メモリ空間アドレス９００３Ｈ番地の８ビット目、メモリ空間アドレス９００５Ｈ番地の８ビット目、メモリ空間アドレス９００７Ｈ番地の８ビット目に配置していることとなる。それゆえ、従来のデータ配置では、主制御ＲＯＭ６００ｂのデータ配置を効率的に行えておらず、もって、主制御ＲＯＭ６００ｂのデータ容量の削減を図れていないといった問題があった。
【００７６】
そこで、本実施形態においては、主制御ＲＯＭ６００ｂのデータ配置を効率的に行うために、通常用データ領域６００ｂｃに格納されるデータを、図１０（ｂ）に示すようなデータ配置としている。
【００７７】
すなわち、１０秒に相当する第１変動時間データは、０９Ｃ４Ｈであって、使用する１５ビット分のデータを２進数で表すと、「０００  １００１  １１００  ０１００」となり、図１０（ｂ）に示すように、メモリ空間アドレス９０００Ｈ番地に、下位８ビットである「１１００  ０１００」が配置され、次のメモリ空間アドレス９００１Ｈ番地に、上位７ビットである「０００  １００１」が配置されることとなる。
【００７８】
次いで、３０秒に相当する第２変動時間データは、１Ｄ４ＣＨであって、使用する１５ビット分のデータを２進数で表すと、「００１  １１０１  ０１００  １１００」となり、図１０（ｂ）に示すように、メモリ空間アドレス９００１Ｈ番地の８ビット目に、下位８ビットのうち最下位ビットである「０」が配置され、次のメモリ空間アドレス９００２Ｈ番地に、下位８ビットのうち残り７ビットである「０１００  １１０」が配置され、メモリ空間アドレス９００２Ｈ番地の８ビット目に、上位７ビットのうち、最下位ビットである「１」が配置され、次のメモリ空間アドレス９００３Ｈ番地に、上位７ビットのうち残り６ビットである「００１  １１０」が配置されることとなる。
【００７９】
次いで、５０秒に相当する第３変動時間データは、３０Ｄ４Ｈであって、使用する１５ビット分のデータを２進数で表すと、「０１１  ００００  １１０１  ０１００」となり、図１０（ｂ）に示すように、メモリ空間アドレス９００３Ｈ番地の８ビット目、７ビット目に、下位８ビットのうち下位２ビットである「００」が配置され、次のメモリ空間アドレス９００４Ｈ番地に、下位８ビットのうち残り６ビットである「１１０１  ０１」が配置され、メモリ空間アドレス９００４Ｈ番地の８ビット目、７ビット目に、上位７ビットのうち、下位２ビットである「００」が配置され、次のメモリ空間アドレス９００５Ｈ番地に、上位７ビットのうち残り５ビットである「０１１  ００」が配置されることとなる。
【００８０】
次いで、１２０秒に相当する第４変動時間データは、７５３０Ｈであって、使用する１５ビット分のデータを２進数で表すと、「１１１  ０１０１  ００１１  ００００」となり、図１０（ｂ）に示すように、メモリ空間アドレス９００５Ｈ番地の８ビット目〜６ビット目に、下位８ビットのうち下位３ビットである「０００」が配置され、次のメモリ空間アドレス９００６Ｈ番地に、下位８ビットのうち残り５ビットである「００１１  ０」が配置され、メモリ空間アドレス９００６Ｈ番地の８ビット目〜６ビット目に、上位７ビットのうち、下位３ビットである「１０１」が配置され、次のメモリ空間アドレス９００７Ｈ番地に、上位７ビットのうち残り４ビットである「１１１  ０」が配置されることとなる。
【００８１】
かくして、このようにして、連続するアドレス番地に跨ってデータを配置するようにし、且つ、データを詰めて配置するようにすれば、メモリ空間アドレス９００７Ｈ番地の８ビット目〜５ビット目が空き領域となり、もって、データ容量の削減を図ることができることとなる。
【００８２】
ところで、図１０（ｂ）に示すようなデータ配置をするにあたっては、例えば、図１１（ａ）に示すようなプログラムが用いられる。以下、このプログラムについて説明することとする。なお、このプログラムは、図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用プログラム領域６００ｂａに格納されているものである。
【００８３】
図１１（ａ）に示すように、まず、データ配置を行う通常用データ領域６００ｂｃ（図９（ｂ）参照）の先頭のメモリ空間アドレス番地９０００Ｈを定義し（ＯＲＧ  ９０００Ｈ）、その定義したラベルをＤ_ＨＥＤＯＵＴＩＭＥとする。
【００８４】
次いで、格納するサイズを１５ビットにする宣言をし（ＳＴＡＲＴ  ＥＱＵ  ＳＩＺＥ｛１５｝）、１０秒の第１変動時間に相当するデータ０９Ｃ４Ｈ、３０秒の第２変動時間に相当するデータ１Ｄ４ＣＨ、５０秒の第３変動時間に相当するデータ３０Ｄ４Ｈ、１２０秒の第４変動時間に相当するデータ７５３０Ｈを記載し、格納するサイズを１５ビットにするデータがここまでであることを宣言する（ＥＮＤ  ＥＱＵ  ＳＩＺＥ）。これにより、プログラムをアセンブルしてＲＯＭデータが作成される際、通常用データ領域６００ｂｃ（図９（ｂ）参照）に、図１０（ｂ）に示すように、上記プログラムに記載したデータが格納されていくこととなる。
【００８５】
かくして、このようにプログラムで格納するサイズを指定したデータ配置にすることによって、図１０（ｂ）に示すようなデータ配置がされることとなる。なお、０９Ｃ４Ｈ、１Ｄ４ＣＨ、３０Ｄ４Ｈ、７５３０Ｈのデータは１６ビット形式で記載しているものの、格納するサイズを１５ビットにする宣言をしていることから、プログラムをアセンブルしてＲＯＭデータが作成される際、図１０（ｂ）に示すように、９０００Ｈ番地を先頭に１５ビット分のデータが格納されていくこととなる。
【００８６】
一方、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ（図９（ｂ）参照）に格納されているデータを取得するにあたっては、例えば、図１１（ｂ）に示すようなプログラムが用いられる。以下、このプログラムについて説明することとする。なお、このプログラムは、図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用プログラム領域６００ｂａに格納されているものである。
【００８７】
まず、このプログラムの処理が開始される前の処理として、主制御ＣＰＵ６００ａにて特別図柄の変動パターン（特別図柄の変動時間）抽選が行われ、この抽選の結果、１２０秒の第４変動時間の変動パターンが選択され、その選択された変動パターンの番号を示す「０４Ｈ」が、図１１（ｂ）に示すＷ_ＨＥＮＤＯＵＮｏに格納されているものとして説明することとする。
【００８８】
図１１（ｂ）に示すように、まず、選択された変動パターンの番号（「０４Ｈ」）が格納されているＷ_ＨＥＮＤＯＵＮｏから選択された変動パターンの番号（「０４Ｈ」）を取得する（ＬＤ  Ａ、（Ｗ_ＨＥＮＤＯＵＮｏ）−１）。
【００８９】
次いで、取得した変動パターンの番号からディクリメント（−１）された番号（「０３Ｈ」）に１５をかけて、オフセット値を計算する（ＭＵＬ  Ａ、１５）。
【００９０】
次いで、呼び出すビット位置に合わせるために、上記で計算したオフセット値をインクリメント（＋１）する（ＩＮＣ  Ａ）。
【００９１】
次いで、変動時間が格納されている先頭のアドレス番地（図１１（ａ）に示す、Ｄ_ＨＥＮＤＯＵＴＩＭＥ（９０００Ｈ））に、上記で計算したオフセット値を加算したアドレスから１５ビット分のデータをＨＬレジスタにセットする（ＬＤ（１５）  ＨＬ、Ｄ_ＨＥＮＤＯＵＴＩＭＥ、Ａ）。これにより、主制御ＣＰＵ６００ａは、図１０（ｂ）に示す、メモリ空間アドレス９０００Ｈ番地からオフセット値４６ビット目のデータから１５ビット分のデータ、すなわち、メモリ空間アドレス９００５Ｈ番地の６ビット目からメモリ空間アドレス９００７Ｈ番地の４ビット目まで格納されているデータ（１１１  ０１０１  ００１１  ００００）をＨＬレジスタにセットすることとなる。しかして、このようにして、１２０秒に相当する第４変動時間データが、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ（図９（ｂ）参照）より取得されることとなる。なお、主制御ＣＰＵ６００ａの内部レジスタ（Ａレジスタ、ＨＬレジスタ等）は、１バイト単位で構成されている。そのため、主制御ＣＰＵ６００ａは、プログラム上、主制御ＣＰＵ６００ａの内部レジスタ（Ａレジスタ、ＨＬレジスタ等）に合わせて１バイト単位で処理を行うため、２バイトのＨＬレジスタに１５ビットのデータ（１１１  ０１０１  ００１１  ００００）をセットする際、最上位ビットに０を付加し、２バイトのＨＬレジスタに１６ビットのデータ（０１１１  ０１０１  ００１１  ００００）をセットすることとなる。それゆえ、プログラムでは、読み込んだデータサイズが１５ビットであることを気にせず、処理が行えることとなる。
【００９２】
ところで、本実施形態においては、通常用データ領域６００ｂｃのみを例に説明したが、もちろん、計測用データ領域６００ｂｇであっても、同様のデータ配置が可能である。また、通常用データ領域６００ｂｃ，計測用データ領域６００ｂｇとして、上記説明したデータ配置の領域のみで構成しても良いし、上記説明したデータ配置の領域と、従来のデータ配置の領域とに分けて構成するようにしても良い。このようにすれば、状況に応じたプログラムを組むことができ、もって、最適なプログラム処理が可能となる。
【００９３】
また、本実施形態においては、特別図柄の変動時間データのデータ配置を例にして説明したが、これに限らず、変動パターンの振分け値と、選択される変動パターンの番号の振分けテーブルデータ、大当りの種別抽選の振分け値と、振分けテーブルデータ、その他大当り制御に関わる設定値データなど、どのようなデータにも適用可能である。
【００９４】
一方、本実施形態においては、１５ビットのデータサイズを定義、すなわち、１つのデータサイズを定義する例を示したが、複数のデータに対し、それぞれ別のビットサイズを定義することも可能である。この点、変動パターン乱数の判定値と、その時選択される変動パターンの番号データを定義する場合のプログラムを例にして、図１２を参照して具体的に説明する。
【００９５】
図１２に示すように、当該データ配置を行う通常用データ領域６００ｂｃ（図９（ｂ）参照）の先頭のメモリ空間アドレス番地９１００Ｈを定義し（ＯＲＧ  ９１００Ｈ）、その定義したラベルをＤ_ＨＥＤＯＵＨＡＮＴＥＩとする。
【００９６】
次いで、格納するサイズを１４ビット、４ビットにする宣言（ＳＴＡＲＴ  ＥＱＵ  ＳＩＺＥ｛１４，４｝）をする。そして、変動パターン乱数が０〜２５５（＝０１００Ｈ−１）の場合、変動パターンの番号０１Ｈを選択することを示す「０１００Ｈ、０１Ｈ」を記載し、変動パターン乱数が２５６〜５１１（＝０２００Ｈ−１）の場合、変動パターンの番号０２Ｈを選択することを示す「０２００Ｈ、０２Ｈ」を記載し、変動パターン乱数が５１２〜４９９９（＝１３８８Ｈ−１）の場合、変動パターンの番号０４Ｈを選択することを示す「１３８８Ｈ、０４Ｈ」を記載し、変動パターン乱数が５０００〜１００００（＝２７１０Ｈ−１）の場合、変動パターンの番号０８Ｈを選択することを示す「２７１０Ｈ、０８Ｈ」を記載し、格納するサイズを１４ビット、４ビットにするデータがここまであることを宣言する（ＥＮＤ  ＥＱＵ  ＳＩＺＥ）。これにより、主制御ＣＰＵ６００ａは、通常用データ領域６００ｂｃ（図９（ｂ）参照）のメモリ空間アドレス番地９１００Ｈ番地から順に、１４ビット、４ビットのデータを格納していくこととなる。なお、０１００Ｈ、０２００Ｈ、１３８８Ｈ、２７１０Ｈのデータは１６ビット形式で記載し、０１Ｈ、０２Ｈ、０４Ｈ、０８Ｈのデータは８ビット形式で記載しているものの、格納するサイズを１４ビット、４ビットにする宣言をしていることから、主制御ＣＰＵ６００ａは、９１００Ｈ番地を先頭に１４ビット分、４ビット分のデータを格納していくこととなる。
【００９７】
かくして、このようにして、複数のデータに対し、それぞれ別のビットサイズを定義することができる。
【００９８】
＜カウンタの更新処理の説明＞
次に、後述する当否抽選に使用する普通図柄、特別図柄等の乱数の更新、コモンカウンタ等のカウンタの更新処理について、図１３を参照して説明することとする。
【００９９】
従来、プログラムで所定範囲を循環するカウンタを更新する際、所定範囲を超えたら０に戻すという処理のプログラムを組む必要があった。この点、図１３（ａ）に示す、０〜９９の範囲で更新するカウンタプログラムを例にして、具体的に説明することとする。
【０１００】
図１３（ａ）に示すように、ラベルＭ_ＩＮＣＥＸのカウンタプログラムでは、まず、指定された上限値をもとにカウンタを更新、すなわち、Ｗ_ＣＯＵＮＴＥＲのワークの値をＡレジスタにセットする（ＬＤ  Ａ、（Ｗ_ＣＯＵＮＴＥＲ））。
【０１０１】
次いで、Ａレジスタの値をインクリメント（＋１）する（ＩＮＣ  Ａ）。
【０１０２】
次いで、１００と比較し（ＣＰ  １００）、１００を超えていれば、Ａレジスタを０にする（ＸＯＲ  Ａ）。
【０１０３】
一方、１００と比較し（ＣＰ  １００）、１００を超えていなければ、ラベルＸＸＸへ飛ぶ（ＪＲ  Ｃ、ＸＸＸ）。そして、このラベルＸＸＸでは、更新したカウント値をＷ_ＣＯＵＮＴＥＲのワークに格納する（ＬＤ  （Ｗ_ＣＯＵＮＴＥＲ）、Ａ）。
【０１０４】
かくして、上記のようなプログラムを繰り返し行うことで、０〜９９の範囲でカウント値を更新することとなる。
【０１０５】
しかして、このように従来においては、プログラムで０〜９９を循環するカウンタを更新する際、９９を超えたら０に戻すという処理のプログラムを上記のように組む必要があった。
【０１０６】
しかしながら、上記のようなプログラムでは、比較命令を必ず用いて分岐処理を行わなければならず、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができていないという問題があった。
【０１０７】
そこで、本実施形態においては、比較命令を用いて分岐することなく、所定範囲を循環するカウンタを更新可能なカウンタプログラムを組むようにしている。この点、図１３（ｂ）に示す、０〜６３の範囲で更新するカウンタプログラムを例にして、具体的に説明することとする。なお、このカウンタプログラムは、図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用プログラム領域６００ｂａ、計測用プログラム領域６００ｂｅに格納されているものである。
【０１０８】
図１３（ｂ）に示すように、ラベルＭ_ＩＮＣＥＸのカウンタプログラムでは、まず、指定された上限値をもとにカウンタを更新、すなわち、Ｗ_ＣＯＵＮＴＥＲのワークの値をＡレジスタにセットする（ＬＤ  Ａ、（Ｗ_ＣＯＵＮＴＥＲ））。
【０１０９】
次いで、Ａレジスタの値をインクリメント（＋１）すると共に、下位６ビットを「００１１  １１１１」でマスクする（ＡＮＤ  Ａ＋、００１１  １１１１Ｂ）。
【０１１０】
次いで、更新したカウント値をＷ_ＣＯＵＮＴＥＲのワークに格納する（ＬＤ  （Ｗ_ＣＯＵＮＴＥＲ）、Ａ）。
【０１１１】
かくして、上記のようなプログラムを繰り返し行うことで、０〜６３の範囲でカウント値を更新することとなる。
【０１１２】
しかして、上記のようなプログラムを用いれば、カウント値が６３（＝００１１  １１１１）からインクリメント（＋１）し、６４（＝０１００  ００００）になったとしても、加算後の値に対して「００１１  １１１１」でマスクすることにより（ＡＮＤ  Ａ＋、００１１  １１１１Ｂ）、カウント値が０（＝００００  ００００）となる。それゆえ、上記説明したプログラムのように６３から６４へ値が変化するときだけに限らず、常に「００１１  １１１１」でマスクすることにより、従来のように、プログラムで比較命令を用いた分岐処理を設けることなく、所定範囲を循環するカウンタを更新することができる。これにより、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができることとなる。
【０１１３】
なお、本実施形態においては、総数が６４、すなわち、総数が２のべき乗で構成されるカウント値を例に説明したが、それに限らず、上記プログラムは、どのようなカウント値にも適用可能である。しかしながら、総数が２のべき乗で構成されるカウント値を更新するカウンタプログラムに用いた方が好ましい。マスク処理がしやすいためである。
【０１１４】
ところで、上記説明したカウンタプログラムは、汎用モジュールとして使用することもできる。この点、図１３（ｃ）〜（ｄ）を参照して具体的に説明する。
【０１１５】
図１３（ｃ）に示すように、ラベルＭ_ＩＮＣＥＸのカウンタプログラムでは、まず、指定された上限値をもとにカウンタを更新、すなわち、ＨＬレジスタの値をＡレジスタにセットする（ＬＤ  Ａ、（ＨＬ））。
【０１１６】
次いで、Ａレジスタの値をインクリメント（＋１）すると共に、Ｂレジスタの値でマスクする（ＡＮＤ  Ａ＋、Ｂ）。
【０１１７】
次いで、更新したカウント値をＨＬレジスタに格納する（ＬＤ  （ＨＬ）、Ａ）。
【０１１８】
かくして、上記のように汎用モジュール化されたラベルＭ_ＩＮＣＥＸのカウンタプログラムは、図１３（ｄ）に示すように、Ｗ_ＣＯＵＮＴＥＲのワークの値をＨＬレジスタにセットし（ＬＤ  ＨＬ、Ｗ_ＣＯＵＮＴＥＲ）、「００１１  １１１１」の値をＢレジスタにセットした上で、ラベルＭ_ＩＮＣＥＸのカウンタプログラムを読み出す（ＣＡＬＬ  Ｍ_ＩＮＣＥＸ）ことで使用することができる。
【０１１９】
しかして、このように、上記説明したカウンタプログラムを汎用モジュールとして使用することにより、複数のカウント値を更新する際に使用することが可能となる。
【０１２０】
＜コール命令の説明＞
次に、図９（ｂ）に示す、主制御ＲＯＭ６００ｂのベクタテーブル領域６００ｂｉに格納されているＣＡＬＬ_Ｓ命令で呼び出すことができるサブルーチンのテーブルアドレスに関するコール命令について、図１４を参照して説明することとする。
【０１２１】
本実施形態においては、主制御ＣＰＵ６００ａが実行可能なコール命令として、ＣＡＬＬ_Ｓ命令、ＣＡＬＬ_Ｍ命令、ＣＡＬＬ_Ｌ命令、ＣＡＬＬ命令の複数のコール命令を備えている。このＣＡＬＬ_Ｓ命令は、複数のコール命令の中で最小のプログラムコードのデータ量（例えば、１バイト）である。そして、このＣＡＬＬ_Ｓ命令で呼び出すサブルーチンは、図９（ｂ）に示す、主制御ＲＯＭ６００ｂのベクタテーブル領域６００ｂｉに格納されているアドレスデータテーブルの格納番号を使って呼び出されるようになっている。このアドレスデータテーブルとしては、図１４（ａ）に示すように、データセット処理（ＤＷ  Ｍ_ＤＴＳＥＴ）、コマンド送信処理（ＤＷ  Ｍ_ＣＭＤＯＵＴ）等のＣＡＬＬ_Ｓ命令で呼び出すサブルーチンの先頭アドレスデータ、が２バイトで格納されている。なお、この格納された順番がそのままＣＡＬＬ_Ｓ命令で呼び出される際の格納番号となる。これにより、プログラムでは格納番号を意識することなく、このアドレスデータテーブルで宣言したサブルーチンの名前を使用すれば良いこととなる。
【０１２２】
しかして、このようなアドレスデータテーブルに格納されている処理を呼び出すために、図１４（ｂ）に示すように、ＣＡＬＬ_Ｓ命令が使用されることとなる。より具体的に説明すると、図１４（ｂ）に示すプログラムは、後述する初期化処理の一部を示すもので、主制御ＣＰＵ６００ａの内部に設けられている一定周期のパルス出力を作成する機能や時間計測の機能等を有するＣＴＣ（Ｃｏｕｎｔｅｒ  Ｔｉｍｅｒ  Ｃｉｒｃｕｉｔ）の設定テーブル（Ｄ_ＣＴＣＳＥＴ）をＨＬレジスタにセットし（ＬＤ  ＨＬ、Ｄ_ＣＴＣＳＥＴ）、データセット処理（Ｍ_ＤＴＳＥＴ）をＣＡＬＬ_Ｓ命令でコールするようにしているものである（ＣＡＬＬ_Ｓ  Ｍ_ＤＴＳＥＴ）。
【０１２３】
ところで、このＣＴＣの設定テーブルは、図１４（ｃ）に示すような内容が格納されている。すなわち、前半部分（ＬＯＷ  Ｗ_ＣＴＣ１〜３）がセットされる図９（ａ）に示す主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａを示し、後半部分（００１Ｈ、０１０Ｈ、０８０Ｈ）が通常用ＲＡＭ領域６００ｃａにセットされるデータを示し、そして、最後に、データセット終了を示す終了コードが格納されている（ＤＢ  ０ＦＦＨ）。
【０１２４】
一方、データセット処理は、図１４（ｄ）に示すような処理が行われる。具体的には、まず、ＨＬレジスタの中をＡレジスタに移行した後、ＨＬレジスタをインクリメント（＋１）する（ＬＤ  Ａ、（ＨＬ＋））。
【０１２５】
次いで、データセットの終了か否かをチェックするために、Ａレジスタと０ＦＦＨを比較する（ＣＰ  ０ＦＦＨ）。
【０１２６】
次いで、Ｄレジスタに通常用ＲＡＭ領域６００ｃａの上位アドレスをセットする（ＬＤ  Ｄ、００Ｈ）。
【０１２７】
次いで、ＥレジスタにＣＴＣの設定テーブル（図１４（ｃ）に示すＤ_ＣＴＣＳＥＴ）で読み込んだ通常用ＲＡＭ領域６００ｃａの下位アドレスをセットする（ＬＤ  Ｅ、Ａ）。
【０１２８】
次いで、ＣＴＣの設定テーブル（図１４（ｃ）に示すＤ_ＣＴＣＳＥＴ）からセットするデータの値をＡレジスタに読み込む（ＬＤ  Ａ、（ＨＬ＋））。
【０１２９】
次いで、ＤＥレジスタにセットされたワークアドレスにデータをセットし（ＬＤ  （ＤＥ）、Ａ）、データセット処理の最初の処理に戻る（ＪＲ  Ｍ_ＤＴＳＥＴ）。
【０１３０】
かくして、このようにして、ＣＡＬＬ_Ｓ命令で呼び出されたデータセット処理が実行されることとなる。
【０１３１】
一方、図１４（ｂ）に示す後述する初期化処理の一部を示すプログラムは、データセット処理（Ｍ_ＤＴＳＥＴ）をＣＡＬＬ_Ｓ命令でコールした後、液晶表示装置４１（図５参照）に待機画面を表示させる待機画面表示コマンド（０ＢＡ０１Ｈ）をＤＥレジスタにセットする（ＬＤ  ＤＥ、０ＢＡ０１Ｈ）。
【０１３２】
次いで、コマンド送信処理（Ｍ_ＣＭＤＯＵＴ）をＣＡＬＬ_Ｓ命令でコールする（ＣＡＬＬ_Ｓ  Ｍ_ＣＭＤＯＵＴ）。このコマンド送信処理は、図１４（ｅ）に示すような処理が行われる。
【０１３３】
具体的には、
ＬＤ  Ａ、Ｄ
ＯＵＴ  （ＣＭＤＰＯＲＴ）、Ａ
とプログラムし、コマンドの上位バイトデータをコマンドポートから出力する。
【０１３４】
次いで、
ＬＤ  Ｂ、１０００
ＷＡＩＴ：
ＤＪＮＺ  ＷＡＩＴ
とプログラムし、演出制御ＣＰＵ９００がコマンドデータを受信するまでしばらく待機する。
【０１３５】
次いで、
ＬＤ  Ａ、Ｅ
ＯＵＴ  （ＣＭＤＰＯＲＴ）、Ａ
とプログラムし、コマンドの下位バイトデータをコマンドポートから出力する。
【０１３６】
かくして、このようにして、ＣＡＬＬ_Ｓ命令で呼び出されたコマンド送信処理が実行されることとなる。
【０１３７】
しかして、このようにして、初期化処理にてＣＡＬＬ_Ｓ命令が使用されることとなる。
【０１３８】
ただし、上記プログラムはあくまで一例であるため、ＣＡＬＬ_Ｓ命令は初期化処理に限らず、後述するタイマ割込みでも使用される。すなわち、コマンド送信処理は、初期化処理に限らず、タイマ割込み処理で実行される始動保留球の増加時、特別図柄の変動開始時、大当たり開始時、エラー発生時など様々な状況でコマンド送信が実行される。そのため、ＣＡＬＬ_Ｓ命令はタイマ割込みでも使用される。
【０１３９】
しかして、上記プログラムにて説明したように、汎用性が高い処理を、ＣＡＬＬ_Ｓ命令に対応するサブルーチンとすることで、プログラムのデータ量の増加を抑制することができる。それゆえ、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができる。
【０１４０】
また、コマンド送信処理は、タイマ割込み処理で実行される始動保留球の増加時、特別図柄の変動開始時、大当たり開始時、エラー発生時など様々な状況でコマンド送信が実行されることとなるため、ＣＡＬＬ_Ｓ命令が使用される割合は、タイマ割込み処理で使用される割合の方が、初期化処理からタイマ割込み処理を呼び出すメインループ処理までに使用される割合より高くなる。それゆえ、よりプログラムの処理負荷軽減と、プログラム容量の削減を図ることができる。
【０１４１】
ところで、複数のコール命令のうちＣＡＬＬ_Ｍ命令は、予め決められたアドレス番地の範囲内にあるサブルーチンをコールする際に使用される。具体的には、後述するタイマ割込み処理で実行される特別図柄処理、普通図柄処理、タイマ管理処理等の各サブルーチンをコールする際に使用される。汎用性が高いサブルーチンを呼び出す際は、ＣＡＬＬ_Ｓ命令が用いられるため、１回しか呼び出されないタイマ割込み処理内で実行される各サブルーチンなどは、ＣＡＬＬ_Ｍ命令が使用される。なお、ＣＡＬＬ_Ｍ命令は、呼び出すサブルーチンのアドレス番地によってプログラムコードのデータ量が異なるようになっている（例えば、２バイト〜３バイト）。
【０１４２】
一方、複数のコール命令のうちＣＡＬＬ_Ｌ命令は、サブルーチンをコールする際、プログラムカウンタ（実行しているプログラムのアドレス）を、図９（ａ）に示す主制御ＲＡＭ６００ｃの通常用スタック領域６００ｃｃ、計測用スタック領域６００ｃｇに退避させるだけでなく、フラグレジスタの値も図９（ａ）に示す主制御ＲＡＭ６００ｃの通常用スタック領域６００ｃｃ、計測用スタック領域６００ｃｇに退避させる。それゆえ、ＣＡＬＬ_Ｌ命令は、サブルーチンを呼び出す前にフラグを保持した上で、サブルーチン内でフラグの値が変化する場合に使用される。なお、このＣＡＬＬ_Ｌ命令は、例えば、２バイトで構成されるものである。
【０１４３】
また一方、複数のコール命令のうちＣＡＬＬ命令は、呼び出すサブルーチンのアドレス番地に制限がないものであるため、主に、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用プログラム領域６００ｂｅに格納されている賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムを呼び出す際に使用される。すなわち、賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムのアドレス番地を呼び出す場合には、他のコール命令では読み出すことができないアドレス番地にサブルーチンを配置している可能性があるため、賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムを呼び出す際にＣＡＬＬ命令が使用される。なお、上述したＣＡＬＬ_Ｍ命令では、賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムを呼び出すことができない。上述したＣＡＬＬ_Ｍ命令は、ＨＬレジスタ等の２バイトのレジスタにサブルーチンのアドレス番地をセットして呼び出すことができないため、直接アドレス番地を指定して呼び出すこととなるが、そのアドレス番地の値に制限がある。それゆえ、ＣＡＬＬ命令は、呼び出すサブルーチンのアドレス番地に制限がないため、賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムを呼び出すことができる。なお、このＣＡＬＬ命令は、例えば、４バイトで構成されるものである。
【０１４４】
ここで、上述したＣＡＬＬ_Ｍ命令とＣＡＬＬ命令の使用例について、図１４（ｆ）に示すプログラムを例にして説明する。図１４（ｆ）に示すプログラムは、後述するメインループ処理を示すもので、割込み禁止処理（ＤＩ）をした後、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用プログラム領域６００ｂｅに格納されている賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムである後述する賞球入賞数管理処理１（Ｍ_ＳＨＯＵＫＹＵ１）をＣＡＬＬ命令でコールし（ＣＡＬＬ  Ｍ_ＳＨＯＵＫＹＵ１）、図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用プログラム領域６００ｂａに格納されている抽選処理等の遊技処理時に使用されるプログラムである後述する各種乱数更新処理（Ｍ_ＲＡＮＳＵ）をＣＡＬＬ_Ｍ命令でコールし（ＣＡＬＬ  Ｍ_ＳＨＯＵＫＹＵ１）、割込み許可（ＥＩ）をするという処理を繰り返し行うものである。
【０１４５】
かくして、このようにして、ＣＡＬＬ_Ｍ命令とＣＡＬＬ命令が使用されることとなる。
【０１４６】
しかして、上述したように、複数のコール命令のうちＣＡＬＬ_Ｍ命令で呼び出されるサブルーチンと、ＣＡＬＬ_Ｓ命令で呼び出されるサブルーチンは、図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用プログラム領域６００ｂａに格納されており、ＣＡＬＬ命令で呼び出されるサブルーチンは、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用プログラム領域６００ｂｅに格納されている。しかるに、このように、複数のコール命令を状況に応じて使い分けることにより、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができる。
【０１４７】
＜ＬＤＢ命令の説明＞
次に、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ（図９（ｂ）参照）に格納されているデータを取得するにあたって使用するＬＤＢ命令について、図１５〜図１８，図２０〜図２２を参照して説明することとする。
【０１４８】
まず、主制御ＣＰＵ６００ａ内の内部レジスタについて、図１５を用いて説明する。図１５に示すように、主制御ＣＰＵ６００ａ内の内部レジスタは、レジスタバンク０とレジスタバンク１を備える汎用レジスタ６００ａ１と、プログラムカウンタとして機能するＰＣレジスタ６００ａ２と、スタックポインタとして機能するＳＰレジスタ６００ａ３と、テーブルポインタとして機能するＴＰレジスタ６００ａ４と、プログラムステータスワードとして機能するＰＳＷレジスタ６００ａ５と、で構成されている。この汎用レジスタ６００ａ１は、図１５に示すように、レジスタバンク０、レジスタバンク１共に、８ｂｉｔで構成されるＷレジスタ、Ａレジスタ、Ｂレジスタ、Ｃレジスタ、Ｄレジスタ、Ｅレジスタ、Ｈレジスタ、Ｌレジスタ、そして、１６ビットで構成されるＩＸレジスタ、ＩＹレジスタを備えている。また、ＴＰレジスタ６００ａ４は、データ領域を指定するための基準となるアドレス番地（例えば、９０００番地）が格納されており、リセット時に、データ領域を指定するための基準となるアドレス番地である、例えば、９０００Ｈに初期化されるようになっている。
【０１４９】
しかして、このような内部レジスタを用いて、ＬＤＢ命令は実行されることとなる。より詳しく説明すると、ＬＤＢ命令を実行するにあたっては、図２０（ａ）に示す特別図柄変動パターン処理のプログラム例にあるように、「ＬＤＢ  ＢＣ，（ＨＬ＋）．９」、「ＬＤＢ  Ｅ，（ＨＬ＋）．４」とプログラムされることとなる。この「ＬＤＢ  ＢＣ，（ＨＬ＋）．９」のプログラムは、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ（図９（ｂ）参照）の「９５Ａ４Ｈ」のアドレス番地から１０ビットのデータを読み出し、その読み出した１０ビットのデータをＢＣレジスタに格納するというプログラムである。そして、「ＬＤＢ  Ｅ，（ＨＬ＋）．４」のプログラムは、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ（図９（ｂ）参照）の「９５Ａ５Ｈ」のアドレス番地から５ビットのデータを読み出し、その読み出した５ビットのデータをＥレジスタに格納するというプログラムである。
【０１５０】
このプログラム内容を、図１６、図２０〜図２２を用いて、さらに詳しく説明する。まず、ＨＬレジスタには、図２０（ａ）に示すように、「ＬＤＴ  ＨＬ，_ＴＰＴＡＤＲ」とプログラムされることによって、図２０（ｂ）に示す特別図柄パターン群アドレステーブルのアドレス番地が格納される。そして、図２０（ａ）に示す、以下のようなプログラムによって、通常遊技状態か、確率変動状態かの何れかのテーブルが選択される。
【０１５１】
すなわち、図２０（ａ）に示すように、
ＬＤ          Ａ,（ＩＹ＋Ｗ_ＴＣＯＤＥ１） 
ＣＡＬＬ_Ｓ    _ＤＴＳＲＣＨ
とプログラムし、ＣＡＬＬ_Ｓ命令によって、図２０（ｃ）に示すデータ検索処理を呼び出しすることによって、通常遊技状態か、確率変動状態か、何れかのテーブルが選択される。本実施形態においては、通常遊技状態であることを示す「ＤＷ  Ｄ_ＴＰＡＴＢＬ_１」とプログラムされた「Ｄ_ＴＰＡＴＢＬ_１」のテーブルが選択され、ＨＬレジスタには、図２１に示す特図変動パターン群テーブル１のアドレス番地が格納される。そして、図２０（ａ）に示す、以下のようなプログラムによって、図２１に示す何れかのテーブルが選択される。
【０１５２】
すなわち、図２０（ａ）に示すように、
ＬＤ    Ａ,（ＩＹ＋Ｗ_ＴＰＴＯＦＦ）
ＪＲ  ＮＺ,ＴＰＴＭＫ_１０
;
ＬＤ    Ａ,（ＩＹ＋Ｗ_Ｔ１ＧＯＮＵＭ）
ＴＰＴＭＫ_１０： 
ＣＡＬＬ_Ｓ  _ＤＴＳＲＣＨ
とプログラムし、ＣＡＬＬ_Ｓ命令によって、図２０（ｃ）に示すデータ検索処理を呼び出しすることによって、図２１に示す何れかのテーブルが選択される。本実施形態においては、始動保留球数が０個であることを示す「ＤＷ  （Ｄ_ＰＴ_ＦＨ１−０９０００Ｈ）＊８＋０」とプログラムされた「Ｄ_ＰＴ_ＦＨ１」のテーブルが選択され、ＨＬレジスタには、図２２（ａ）に示す変動振分けテーブルＨ１のアドレス番地が格納される。すなわち、ＨＬレジスタには、図１６（ａ）に示すように、Ｄ_ＰＴ_ＦＨ１のアドレス番地から９０００Ｈが差し引かれ、８で乗算することによって、上位１３ｂｉｔに、「０５Ａ４」が格納される。この、始動保留球数が０個であることを示す「ＤＷ  （Ｄ_ＰＴ_ＦＨ１−０９０００Ｈ）＊８＋０」のうち、「（Ｄ_ＰＴ_ＦＨ１−０９０００Ｈ）＊８」が上位１３ｂｉｔに、「０５Ａ４」が格納されるプログラムである。
【０１５３】
一方、ＨＬレジスタには、指定されたアドレス番地に格納されている０ビット目〜７ビット目のうち、何ビット目から「ＬＤＢ  ＢＣ，（ＨＬ＋）．９」のプログラムで指定された９＋１（＝１０）ビット分のデータを取得するかのビット指定情報が下位３ｂｉｔに格納される。このビット指定情報は、「ＤＷ  （Ｄ_ＰＴ_ＦＨ１−０９０００Ｈ）＊８＋０」のプログラムのうち「＋０」が、ビット指定情報に該当するものである。すなわち、「＋０」の場合は、０ビット目からデータを取得、「＋１」の場合は、１ビット目からデータを取得、「＋２」の場合は、２ビット目からデータを取得というような処理をすることとなる。しかして、このようにして、ＨＬレジスタには、図１６（ａ）に示すように、「２Ｄ２０」の値が格納されることとなる。
【０１５４】
かくして、このようなデータが格納されたＨＬレジスタに対し、ＬＤＢ命令が実行されると、主制御ＣＰＵ６００ａは、図１６（ａ）に示すように、ＨＬレジスタの値を８で除算する。これにより、「２Ｄ２０」の値は、「０５Ａ４」となる。そして、主制御ＣＰＵ６００ａは、ＴＰレジスタ６００ａ４（図１５参照）に格納されているデータ領域を指定するための基準となるアドレス番地９０００Ｈと、この８で除算した値「０５Ａ４」を足し合わせ、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ（図９（ｂ）参照）の「９５Ａ４Ｈ」のアドレス番地を算出する。続いて、主制御ＣＰＵ６００ａは、ビット指定情報が「０」であることから、図１６（ａ−１）に示すように、この算出したアドレス番地「９５Ａ４Ｈ」の０ビット目から１０ビット分のデータ「０００１０１０００１」（図示では、読み出すデータを四角で囲んでいる）を取得する（読み出す）こととなる。
【０１５５】
次いで、図２０（ａ）に示すように、「ＬＤＢ  ＢＣ，（ＨＬ＋）．９」のプログラムに続いて、「ＬＤＢ  Ｅ，（ＨＬ＋）．４」とプログラムされていると、主制御ＣＰＵ６００ａは、図１６（ｂ）に示すように、ＨＬレジスタに格納されている「２Ｄ２０」の値に、「ＬＤＢ  ＢＣ，（ＨＬ＋）．９」のプログラムで指定された９＋１（＝１０）の値を足し合わせ、「２Ｄ２Ａ」とする。これにより、ＨＬレジスタには、上位１３ｂｉｔに、「０５Ａ５」が格納され、下位３ｂｉｔには、２ビット目からデータを取得するビット指定情報が格納されることとなる。
【０１５６】
次いで、主制御ＣＰＵ６００ａは、図１６（ｂ）に示すように、ＨＬレジスタの値を８で除算する。これにより、「２Ｄ２Ａ」の値は、「０５Ａ５」となる。続いて、主制御ＣＰＵ６００ａは、ＴＰレジスタ６００ａ４（図１５参照）に格納されているデータ領域を指定するための基準となるアドレス番地９０００Ｈと、この８で除算した値「０５Ａ５」を足し合わせ、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ（図９（ｂ）参照）の「９５Ａ５Ｈ」のアドレス番地を算出する。しかして、主制御ＣＰＵ６００ａは、ビット指定情報が「２」であることから、図１６（ｂ−１）に示すように、この算出したアドレス番地「９５Ａ５Ｈ」の２ビット目から５ビット分（「ＬＤＢ  Ｅ，（ＨＬ＋）．４」とプログラムされていることから、４＋１（＝５）ビット分となる）のデータ「１００００」（図示では、読み出すデータを四角で囲んでいる）を取得する（読み出す）こととなる。
【０１５７】
かくして、この取得された値が、図２２（ａ）に示すように、０〜５５２であれば、変動パターンコマンドとして、「００１」が選択され、５５３〜７８２（５５２＋２３０）であれば、変動パターンコマンドとして、「００２」が選択され、７８３〜９９７（５５２＋２３０＋２１５）であれば、変動パターンコマンドとして、「００４」が選択され、９９７〜１０００（５５２＋２３０＋２１５＋３）であれば、変動パターンコマンドとして、「００５」が選択されることとなる。なお、本実施形態においては、０〜５５２であるため、変動パターンコマンドとして、「００１」が選択されることとなる。
【０１５８】
なお、上記説明した変動パターンコマンド取得の処理は、図２０（ａ）に示す、
ＬＤ        ＷＡ,（ＩＹ＋Ｗ_ＴＰＲＢＦ０）
ＴＰＴＭＫ_２０：
ＬＤＢ      ＢＣ,（ＨＬ＋）.９
ＬＤＢ        Ｅ,（ＨＬ＋）.４
ＳＵＢ      ＷＡ,ＢＣ
ＪＲ      ＮＣ,ＴＰＴＭＫ_２０
というプログラムによって実行されることとなる。
【０１５９】
しかして、図１６に示すように、ＨＬレジスタに、ＴＰレジスタ６００ａ４（図１５参照）に格納されているデータ領域を指定するための基準となるアドレス番地が差し引かれたデータと、ビット指定情報と、を格納するようにすれば、ＨＬレジスタに、２つのデータを格納することができることとなるため、プログラム容量の削減を図ることができると共に、ＲＯＭのデータ容量の削減を図ることができる。
【０１６０】
また、ビット指定情報として、「ＤＷ  （Ｄ_ＰＴ_ＦＨ１−０９０００Ｈ）＊８＋０」と「０」をプログラムしておくことにより、誤ったビットを指定する可能性を低減させることができ、もって、デバックの精度を向上させることができる。
【０１６１】
一方、図２１に示す「ＤＷ  （Ｄ_ＰＴ_ＦＨ１−０９０００Ｈ）＊８＋０」のプログラムのように、ＨＬレジスタに、Ｄ_ＰＴ_ＦＨ１のアドレス番地からＴＰレジスタ６００ａ４（図１５参照）に格納されているデータ領域を指定するための基準となるアドレス番地９０００Ｈを差し引いたアドレス番地を格納しておくことにより、ＨＬレジスタの使用容量を削減することができることとなる。これにより、図１６に示すように、ＨＬレジスタに、２つのデータを格納することができることとなり、もって、プログラム容量の削減を図ることができると共に、ＲＯＭのデータ容量の削減を図ることができる。
【０１６２】
なお、本実施形態においては、変動振分けテーブルＨ１が選択された例を示したが、通常遊技５ラウンド当たりを示す「ＤＷ  （Ｄ_ＰＴ_ＦＢ１−０９０００Ｈ）＊８＋０」とプログラムされた「Ｄ_ＰＴ_ＦＢ１」のテーブルが選択された場合は、図２２（ｂ）に示す変動振分けテーブルＢ１が選択されることとなる。なおまた、この際の変動パターンコマンド取得の処理も、上記説明と同様の処理を行うこととなるめ、説明は省略する。
【０１６３】
＜ＬＤＢ命令の変形例の説明＞
ところで、本実施形態においては、連続してＬＤＢ命令を実行する例を示したが、それに限らず、図１７に示すプログラムのように、ＬＤＢ命令を実行することができる。
【０１６４】
すなわち、図１７（ａ）に示すプログラムは、大当たりのラウンド数に応じて、大入賞口パターンを選択するプログラムであって、「ＬＤ  ＨＬ，_ＴＤＰＴＳＥＬ１＊８」とプログラムすることによって、図１７（ｂ）に示す大入賞口パターン選択テーブル１のアドレス番地が、ＨＬレジスタに格納される。具体的には、図１８（ａ）に示すように、_ＴＤＰＴＳＥＬ１のアドレス番地「０３５２Ｈ」（図１７（ｂ）参照）の値を８で乗算することによって、ＨＬレジスタの上位１３ｂｉｔに「０３５２Ｈ」が格納される。
【０１６５】
そして、ＨＬレジスタの下位３ｂｉｔに、ビット指定情報を格納するにあたっては、以下のような処理を行う。すなわち、図１７（ａ）に示すように、「ＬＤ  Ａ，（Ｗ_ＶＣＮＴ）」とプログラムすることによって、大当たりのラウンド数を示すＷ_ＶＣＮＴの値をＡレジスタに格納する。次いで、「ＭＵＬ  Ａ．２」とプログラムすることによって、ビット指定情報を生成し、「ＬＤ  ＨＬ，（ＨＬ＋Ａ）」とプログラムすることによって、生成されたビット指定情報が、ＨＬレジスタの下位３ｂｉｔに格納されることとなる。なお、図１８（ａ）では、Ｗ_ＶＣＮＴの値は「０」であるため、ビット指定情報として「０」が格納されている。
【０１６６】
かくして、このようなデータが格納されたＨＬレジスタに対し、「ＬＤＢ  Ａ，（ＨＬ）．１」というＬＤＢ命令が実行されると、主制御ＣＰＵ６００ａは、図１８（ａ）に示すように、ＨＬレジスタの値を８で除算する。これにより、「１Ａ９０」の値は、「０３５２」となる。そして、主制御ＣＰＵ６００ａは、ＴＰレジスタ６００ａ４（図１５参照）に格納されているデータ領域を指定するための基準となるアドレス番地９０００Ｈと、この８で除算した値「０３５２」を足し合わせ、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ（図９（ｂ）参照）の「９３５２Ｈ」のアドレス番地を算出する。続いて、主制御ＣＰＵ６００ａは、ビット指定情報が「０」であることから、図１８（ａ−１）に示すように、この算出したアドレス番地「９３５２Ｈ」の０ビット目から２ビット分のデータ「１０」（図示では、読み出すデータを四角で囲んでいる）を取得する（読み出す）こととなる。
【０１６７】
次いで、Ｗ_ＶＣＮＴの値が「１」となり、ビット指定情報として「２」が格納されると、ＨＬレジスタには、図１８（ｂ）に示すように、ＨＬレジスタの下位３ｂｉｔに、「０１０」の値が格納される。これにより、ＨＬレジスタには、「１Ａ９０」の値が格納されることとなる。
【０１６８】
かくして、このようなデータが格納されたＨＬレジスタに対し、「ＬＤＢ  Ａ，（ＨＬ）．１」というＬＤＢ命令が実行されると、主制御ＣＰＵ６００ａは、図１８（ｂ）に示すように、ＨＬレジスタの値を８で除算する。これにより、「１Ａ９２」の値は、「０３５２」となる。そして、主制御ＣＰＵ６００ａは、ＴＰレジスタ６００ａ４（図１５参照）に格納されているデータ領域を指定するための基準となるアドレス番地９０００Ｈと、この８で除算した値「０３５２」を足し合わせ、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ（図９（ｂ）参照）の「９３５２Ｈ」のアドレス番地を算出する。続いて、主制御ＣＰＵ６００ａは、ビット指定情報が「２」であることから、図１８（ｂ−１）に示すように、この算出したアドレス番地「９３５２Ｈ」の２ビット目から２ビット分のデータ「００」（図示では、読み出すデータを四角で囲んでいる）を取得する（読み出す）こととなる。
【０１６９】
しかして、このように、プログラムによってビット指定情報を生成するようにすれば、連続してＬＤＢ命令を実行せずとも、ＬＤＢ命令を実行することができる。しかるに、このようにすれば、様々なプログラムに使用することが可能となり、もって、プログラム容量の削減をより図ることができると共に、ＲＯＭのデータ容量の削減をより図ることができる。
【０１７０】
＜ＬＤＴ命令の説明＞
次に、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ（図９（ｂ）参照）に格納されているデータを取得するにあたって使用するＬＤＴ命令について、図１９〜図２０を参照して説明することとする。
【０１７１】
ＬＤＴ命令を実行するにあたっては、図２０（ａ）に示す特別図柄変動パターン処理のプログラム例にあるように、「ＬＤＴ  ＨＬ，_ＴＰＴＡＤＲ」とプログラムされることとなる。この「ＬＤＴ  ＨＬ，_ＴＰＴＡＤＲ」のプログラムは、ＨＬレジスタに、図２０（ｂ）に示す特図変動パターン群アドレステーブルの「９５４Ｅ」のアドレス番地を格納するというプログラムである。
【０１７２】
このプログラム内容を、図１９を用いて、さらに詳しく説明する。ＨＬレジスタに、「９５４Ｅ」のアドレス番地を格納するにあたって、ＬＤＴ命令が実行されると、主制御ＣＰＵ６００ａは、ｍレジスタに、「０５４Ｅ」を格納する。そして、主制御ＣＰＵ６００ａは、その格納した値「０５４Ｅ」と、ＴＰレジスタ６００ａ４（図１５参照）に格納されているデータ領域を指定するための基準となるアドレス番地９０００Ｈとを加算し、もって、ＨＬレジスタに「９５４Ｅ」を格納することとなる。
【０１７３】
しかして、このようにすれば、プログラム容量の削減を図ることができると共に、ＲＯＭのデータ容量の削減を図ることができる。
【０１７４】
すなわち、従来、このようなアドレス番地を取得するにあたっては、ＬＤ命令が使用されていた。このＬＤ命令は、命令長が４ビットで、取得するアドレス番地は最低２バイトであるため、結局の所、ＬＤ命令を使用すると、プログラム容量として、３バイト使用されていた。
【０１７５】
しかしながら、ＬＤＴ命令を使用すると、ＴＰレジスタ６００ａ４（図１５参照）に格納されているデータ領域を指定するための基準となるアドレス番地９０００Ｈを使用するため、アドレス番地の指定が１２ビット（ｍレジスタに格納されている「５４Ｅ」参照）で済むこととなる。それゆえ、ＬＤＴ命令の命令長が４ビットであることから、プログラム容量として、計１６ビットの２バイトで済むこととなる。
【０１７６】
しかして、ＬＤＴ命令を使用すれば、従来より１バイト、プログラム容量の削減を図ることができる。それゆえ、ＲＯＭのデータ容量の削減も図ることができる。
【０１７７】
ところで、本実施形態においては、ＨＬレジスタに、アドレス番地を格納するにあたって、ＬＤＴ命令を実行する例を示したが、ＬＤ命令を実行しても良い場合がある。すなわち、図２０（ｃ）に示すように、サブルーチンであるデータ検索処理において、「ＬＤ  ＨＬ，（ＨＬ）」とプログラムされている。これは、ＨＬレジスタに格納されている値を、ＨＬレジスタに格納するというプログラムであるが、この場合、レジスタからレジスタに値を格納する命令であるため、命令長も含め、２バイトのプログラム容量で済むこととなる。そのため、このような場合は、ＬＤＴ命令を使用せずとも、ＬＤ命令を使用すれば良いこととなる。しかして、このように、処理内容に応じて、命令を使い分けるようにすれば、無駄な処理を実行させずとも良く、もって、処理速度の向上を図ることができる。
【０１７８】
＜ＴＰレジスタに関する説明＞
次に、ＬＤＢ命令、ＬＤＴ命令で使用したＴＰレジスタ６００ａ４（図１５参照）について、図２３〜図２５を参照して説明する。このＴＰレジスタ６００ａ４は、データ領域を指定するための基準となるアドレス番地９０００Ｈが格納されている。そのため、図９（ｂ）に示すように、主制御ＲＯＭ６００ｂの計測用データ領域６００ｂｇ（図９（ｂ）参照）のアドレス番地は、９０００Ｈ番地を跨いで「Ａ２００Ｈ」から始まるため、主制御ＲＯＭ６００ｂの計測用データ領域６００ｂｇ（図９（ｂ）参照）に格納されているデータを取得するような場合、ＴＰレジスタ６００ａ４を使用することができない。それゆえ、上記説明したＬＤＢ命令、ＬＤＴ命令を使用することができない。
【０１７９】
しかして、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用プログラム領域６００ｂｅに格納されている賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムを使用する際は、使用しないＴＰレジスタ６００ａ４を一旦退避させる必要がある。
【０１８０】
この退避にあたって、図２３（ａ）に示すように、「ＰＵＳＨ  ＡＬＬ」という命令を用いることにより、汎用レジスタ６００ａ１と、ＳＰレジスタ６００ａ３と、ＰＳＷレジスタ６００ａ５と、を退避させる。この際、ＴＰレジスタ６００ａ４は、「ＰＵＳＨ  ＡＬＬ」という命令では退避させることができないことから、図２３（ｂ）に示すように、「ＰＵＳＨ  ＴＰ」という命令を用いることにより、ＴＰレジスタ６００ａ４のみ退避させるようにする。なお、退避させたレジスタを復帰するにあたっては、「ＰＯＰ  ＡＬＬ」という命令を用いることにより、退避させた、汎用レジスタ６００ａ１と、ＳＰレジスタ６００ａ３と、ＰＳＷレジスタ６００ａ５と、を復帰させることができ、「ＰＯＰ  ＴＰ」という命令を用いることにより、退避させたＴＰレジスタ６００ａ４のみ復帰させることができる。
【０１８１】
かくして、このようなプログラムは、次のように使用することができる。図２４は、タイマ割込み処理の一例を示すプログラムで、図２５は、メインループの一例を示すプログラムである。
【０１８２】
図２４に示すように、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用プログラム領域６００ｂｅに格納されている賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムによる処理を「ＣＡＬＬ  Ｏ_ＥＸＡＲＥＡ２」とプログラムして、呼び出すにあたって、レジスタを退避させる処理として、図２４では、以下のようにプログラムされている。
【０１８３】
ＰＵＳＨ  ＡＬＬ
ＰＵＳＨ  ＴＰ
ＣＡＬＬ  Ｏ_ＥＸＡＲＥＡ２
【０１８４】
かくして、「ＰＵＳＨ  ＡＬＬ」により、図２３（ａ）に示すように、汎用レジスタ６００ａ１と、ＳＰレジスタ６００ａ３と、ＰＳＷレジスタ６００ａ５と、が主制御ＲＡＭ６００ｃの計測用スタック領域６００ｃｇ（図９（ａ）参照）に退避され、「ＰＵＳＨ  ＴＰ」により、図２３（ｂ）に示すように、ＴＰレジスタ６００ａ４が主制御ＲＡＭ６００ｃの計測用スタック領域６００ｃｇ（図９（ａ）参照）に退避されることとなる。
【０１８５】
一方、退避させたレジスタを復帰させる処理として、図２４では、以下のようにプログラムされている。
【０１８６】
ＣＡＬＬ  Ｏ_ＥＸＡＲＥＡ２
ＰＯＰ  ＴＰ
ＰＯＰ  ＡＬＬ
【０１８７】
かくして、「ＰＯＰ  ＴＰ」により、図２３（ｂ）に示すように、退避させたＴＰレジスタ６００ａ４が復帰し、「ＰＯＰ  ＡＬＬ」により、図２３（ａ）に示すように、退避させた、汎用レジスタ６００ａ１と、ＳＰレジスタ６００ａ３と、ＰＳＷレジスタ６００ａ５と、が復帰することとなる。
【０１８８】
また、図２５に示すように、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用プログラム領域６００ｂｅに格納されている賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムによる処理を「ＣＡＬＬ  Ｏ_ＥＸＡＲＥＡ１」とプログラムして、呼び出すにあたって、レジスタを退避させる処理として、図２５では、以下のようにプログラムされている。
【０１８９】
ＰＵＳＨ  ＡＬＬ
ＰＵＳＨ  ＴＰ
ＣＡＬＬ  Ｏ_ＥＸＡＲＥＡ１
【０１９０】
かくして、「ＰＵＳＨ  ＡＬＬ」により、図２３（ａ）に示すように、汎用レジスタ６００ａ１と、ＳＰレジスタ６００ａ３と、ＰＳＷレジスタ６００ａ５と、が主制御ＲＡＭ６００ｃの計測用スタック領域６００ｃｇ（図９（ａ）参照）に退避され、「ＰＵＳＨ  ＴＰ」により、図２３（ｂ）に示すように、ＴＰレジスタ６００ａ４が主制御ＲＡＭ６００ｃの計測用スタック領域６００ｃｇ（図９（ａ）参照）に退避されることとなる。
【０１９１】
一方、退避させたレジスタを復帰させる処理として、図２５では、以下のようにプログラムされている。
【０１９２】
ＣＡＬＬ  Ｏ_ＥＸＡＲＥＡ１
ＰＯＰ  ＴＰ
ＰＯＰ  ＡＬＬ
【０１９３】
かくして、「ＰＯＰ  ＴＰ」により、図２３（ｂ）に示すように、退避させたＴＰレジスタ６００ａ４が復帰し、「ＰＯＰ  ＡＬＬ」により、図２３（ａ）に示すように、退避させた、汎用レジスタ６００ａ１と、ＳＰレジスタ６００ａ３と、ＰＳＷレジスタ６００ａ５と、が復帰することとなる。
【０１９４】
しかして、このような処理をすることにより、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用プログラム領域６００ｂｅに格納されている賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムを使用する際は、使用しないＴＰレジスタ６００ａ４を一旦退避させることが可能となる。
【０１９５】
なお、図２４に示すタイマ割込み処理にて、最初に、「ＬＤ  ＴＰ，０９０００Ｈ」とプログラムされ、ＴＰレジスタ６００ａ４に９０００Ｈを格納するようにしているが、このプログラムは記述しなくても良い。ＴＰレジスタ６００ａ４は、リセット時に、データ領域を指定するための基準となるアドレス番地である、９０００Ｈに初期化されるためである。しかしながら、記述しておけば、何らかのバグが発生したとしても、タイマ割込みが発生する毎に、ＴＰレジスタ６００ａ４に９０００Ｈが格納されることとなるため、好ましい。また、頻繁に格納する必要がなければ、電源投入時の初期処理において、ＴＰレジスタ６００ａ４に９０００Ｈを格納しておいても良い。
【０１９６】
＜その他のプログラムの説明＞
ところで、図２０（ａ）に示す特別図柄変動パターン処理のプログラムにおいて、「ＣＡＬＬ_Ｍ  Ｍ_ＴＰＴＤＴＭＫ」とプログラムすることによって、特別図柄変動パターンデータ処理をコールしているが、この特別図柄変動パターンデータ処理は、図２６（ａ）に示すようにプログラムされている。
【０１９７】
このプログラムでは、まず、
ＬＤ      Ｃ，０００Ｈ
;
ＣＰ    （ＩＹ＋Ｗ_ＴＰＴＯＦＦ），００５Ｈ
ＪＲＳ    Ｔ,ＴＰＴＤＴＭＫ_１０
ＩＮＣ    Ｃ
とプログラムすることによって、当たりかハズレかの値をＣレジスタに格納するようにしている。
【０１９８】
次いで、
ＴＰＴＤＴＭＫ_１０：
ＬＤＴ  ＨＬ,_ＴＭＶＴＢＬ；
ＬＤ    Ｂ，００３Ｈ
ＭＵＬ  Ｂ,Ｃ
ＡＤＤ  ＨＬ,ＢＣ
ＬＤ    Ｄ,（ＨＬ＋）
とプログラムすることによって、Ｃレジスタの値を確認し、当たりかハズレかの変動パターンコマンドを生成するようにしている。
【０１９９】
より詳しく説明すると、「ＬＤＴ  ＨＬ,_ＴＭＶＴＢＬ」とプログラムされることによって、図２６（ｂ）に示す特図変動パラメータ指定テーブルが読み出される。ハズレの場合、変動パターンコマンドの上位バイトとして、図２６（ｂ）に示す「ＤＢ  ０Ａ０Ｈ」のうち「Ａ０Ｈ」がＤレジスタに格納され、当たりの場合、変動パターンコマンドの上位バイトとして、図２６（ｂ）に示す「ＤＢ  ０Ａ１Ｈ」のうち「Ａ１Ｈ」がＤレジスタに格納されることとなる。なお、変動パターンコマンドの下位バイトは、図２０（ａ）に示す変動パターンコマンド取得の処理にて、Ｅレジスタに格納された変動パターンコマンドとして選択された値（本実施形態においては、「００１」）である。
【０２００】
次いで、ＤＥレジスタに値が格納されると、
ＬＤ          ＨＬ,（ＨＬ）；
ＰＵＳＨ      ＡＬＬ；
ＣＡＬＬ_Ｓ  _ＣＭＤＯＵＴ；
ＰＯＰ        ＡＬＬ
とプログラムすることによって、ＤＥレジスタに格納された変動パターンコマンドが、演出制御ＣＰＵ９００（図７参照）に送信されることとなる。
【０２０１】
なお、変動パターンコマンドの下位バイトが、００Ｈであると、ノイズ等の影響でバグが発生したか否かが不明であるため、図２２（ａ）に示すように、下位バイトは、０１Ｈから使用するようにしている。しかしながら、主制御メイン処理内でのオフセットとしては、０を使用するため、ＤＥレジスタに格納された変動パターンコマンドを、演出制御ＣＰＵ９００（図７参照）に送信した後、図２６（ａ）に示すように、「ＤＥＣ  Ｅ」とプログラムして、Ｅレジスタをディクリメントしている。
【０２０２】
また、ＤＥレジスタに格納された変動パターンコマンドを、演出制御ＣＰＵ９００（図７参照）に送信するにあたって、「ＣＡＬＬ_Ｓ  _ＣＭＤＯＵＴ」とプログラムすることによって、「_ＣＭＤＯＵＴ」のサブルーチンを呼び出すことにより、ＤＥレジスタに格納された変動パターンコマンドを、演出制御ＣＰＵ９００（図７参照）に送信する処理を行うこととなるが、この際、サブルーチンの処理にて、レジスタの値が書き換わってしまう可能性がある。
【０２０３】
そこで、本実施形態においては、「ＣＡＬＬ_Ｓ  _ＣＭＤＯＵＴ」とプログラムする前に、「ＰＵＳＨ  ＡＬＬ」とプログラムし、図２３（ａ）に示すように、汎用レジスタ６００ａ１と、ＳＰレジスタ６００ａ３と、ＰＳＷレジスタ６００ａ５と、を主制御ＲＡＭ６００ｃの通常用スタック領域６００ｃｃ（図９（ａ）参照）に退避させるようにし、「ＣＡＬＬ_Ｓ  _ＣＭＤＯＵＴ」とプログラムした後、「ＰＯＰ  ＡＬＬ」とプログラムし、図２３（ａ）に示すように、退避させた、汎用レジスタ６００ａ１と、ＳＰレジスタ６００ａ３と、ＰＳＷレジスタ６００ａ５と、を復帰させるようにしている。
【０２０４】
この際、ＴＰレジスタ６００ａ４を退避させないのは、主制御ＲＯＭ６００ｂの通常用データ領域６００ｂｃ（図９（ｂ）参照）に格納されているデータを取得するにあたって、ＴＰレジスタ６００ａ４を使用する処理を行うためである。すなわち、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用プログラム領域６００ｂｅに格納されている賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムを使用する処理ではないためである。
【０２０５】
しかして、賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムを使用する処理でない場合、ＴＰレジスタ６００ａ４を退避させる処理を行わないようにしておけば、無駄な処理を実行させずとも良く、もって、処理速度の向上を図ることができる。
【０２０６】
次いで、ＤＥレジスタに格納された変動パターンコマンドを、演出制御ＣＰＵ９００（図７参照）に送信した後、
ＤＥＣ        Ｅ
ＡＤＤ        ＨＬ,Ｅ
ＡＤＤ        ＨＬ,Ｅ
ＬＤ          ＨＬ,（ＨＬ）
ＣＡＬＬ_Ｓ    _ＳＶＴＭＲ
とプログラムすることによって、主制御で使用する変動時間の設定を行っている。なお、図２６（ｂ）に示すように、ハズレの場合は、「ＤＷ  Ｄ_ＴＭＴＭＲ１」とプログラムされることによって、図２７（ａ）に示す特図変動時間テーブル１が選択され、当たりの場合は、「ＤＷ  Ｄ_ＴＭＴＭＲ２」とプログラムされることによって、図２７（ｂ）に示す特図変動時間テーブル２が選択されることとなる。
【０２０７】
しかして、このように、ＤＥレジスタに格納された変動パターンコマンドを、演出制御ＣＰＵ９００（図７参照）に送信した後、主制御で使用する変動時間の設定を行うことによって、処理の効率化を図ることができ、もって、処理速度の向上を図ることができる。
【０２０８】
＜プログラムの説明＞
ここで、上記説明した図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用プログラム領域６００ｂａに格納されている抽選処理等の遊技処理時に使用されるプログラム、主制御ＲＯＭ６００ｂの計測用プログラム領域６００ｂｅに格納されている賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等を計測する際に使用されるプログラムの概要を図２８〜図３７を参照して説明する。
【０２０９】
＜メイン処理の説明＞
まず、パチンコ遊技機１に電源が投入されると、電源基板１３０（図７参照）の電圧生成部１３００にて生成された直流電圧が各制御基板に投入された旨の電源投入信号が送られ、その信号を受けて、主制御ＣＰＵ６００ａ（図７参照）は、図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用プログラム領域６００ｂａに格納されているプログラムを読み出し、図２８に示す主制御メイン処理を行う。この際、主制御ＣＰＵ６００ａは、まず、最初に自らを割込み禁止状態に設定する（ステップＳ１）。
【０２１０】
次いで、主制御ＣＰＵ６００ａは、当該主制御ＣＰＵ６００ａ内のレジスタ値等の初期設定を行う（ステップＳ２）。
【０２１１】
続いて、主制御ＣＰＵ６００ａは、サブ制御基板８０の起動待ち時間をセットし（ステップＳ３）、セットした待ち時間をデクリメント（−１）し（ステップＳ４）、図示しないウォッチドックタイマ（ＷＤＴ）をクリアする（ステップＳ５）。
【０２１２】
次いで、主制御ＣＰＵ６００ａは、セットした待ち時間が「０」になったか否かを確認し（ステップＳ６）、「０」になっていなければ（ステップＳ６：≠０）、ステップＳ４の処理に戻り、「０」になっていれば（ステップＳ６：＝０）、ステップＳ７の処理に進む。
【０２１３】
次いで、主制御ＣＰＵ６００ａは、電源基板１３０（電圧監視部１３１０）（図７参照）より出力されている電圧異常信号ＡＬＡＲＭ（図７参照）を２回取得し、その２回取得した電圧異常信号ＡＬＡＲＭのレベルが一致するか否かを確認した上で図示しない当該主制御ＣＰＵ６００ａの内部レジスタ内に格納し、その電圧異常信号ＡＬＡＲＭのレベルを確認する（ステップＳ７）。そして電圧異常信号ＡＬＡＲＭのレベルが「Ｌ」レベルであれば（ステップＳ８：ＹＥＳ）、ステップＳ７の処理に戻り、電圧異常信号ＡＬＡＲＭのレベルが「Ｈ」レベルであれば（ステップＳ８：ＮＯ）、ステップＳ９の処理に進む。すなわち、主制御ＣＰＵ６００ａは、電圧異常信号ＡＬＡＲＭが正常レベル（すなわち「Ｈ」レベル）に変化するまで同一の処理を繰り返す（ステップＳ７〜Ｓ８）。このように、電圧異常信号ＡＬＡＲＭを２回取得することで、正確な信号を読み込むことができる。
【０２１４】
次いで、主制御ＣＰＵ６００ａは、図示しないウォッチドックタイマ（ＷＤＴ）をクリアし（ステップＳ９）、払出制御基板７０から電源が投入された旨の信号（電源投入信号）が来たか否かを確認する（ステップＳ１０）。電源投入信号が来ていなければ（ステップＳ１０：ＯＦＦ）、ステップＳ９の処理に戻り、電源投入信号が来ていれば（ステップＳ１０：ＯＮ）、主制御ＣＰＵ６００ａの内部に設けられている一定周期のパルス出力を作成する機能や時間計測の機能等を有するＣＴＣ（Ｃｏｕｎｔｅｒ  Ｔｉｍｅｒ  Ｃｉｒｃｕｉｔ）の設定を行う。すなわち、主制御ＣＰＵ６００ａは、４ｍｓ毎に定期的にタイマ割込みがかかるように上記ＣＴＣの時間定数レジスタを設定する（ステップＳ１１）。
【０２１５】
なお、このＣＴＣの設定処理が、図１４（ｂ）に示す、ＣＴＣの設定テーブル（Ｄ_ＣＴＣＳＥＴ）をＨＬレジスタにセットし（ＬＤ  ＨＬ、Ｄ_ＣＴＣＳＥＴ）、データセット処理（Ｍ_ＤＴＳＥＴ）をＣＡＬＬ_Ｓ命令でコールするようにしているプログラムで処理されるものである。
【０２１６】
＜メイン処理：設定表示装置に関する説明＞
次いで、主制御ＣＰＵ６００ａは、図７に示す設定キースイッチ６４０に専用キーが挿入され、ＯＮされているか否かを確認する（ステップＳ１２）。設定キースイッチ６４０がＯＮされていれば（ステップＳ１２：ＹＥＳ）、主制御ＣＰＵ６００ａは、図２に示すように、上部開閉扉７、下部開放扉８が開放されているか否かを確認する（ステップＳ１３）。上部開閉扉７、下部開放扉８が開放されていれば（ステップＳ１３：ＹＥＳ）、主制御ＣＰＵ６００ａは、図９（ａ）に示す主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ、通常用スタック領域６００ｃｃを全てクリアする（ステップＳ１４）。ただし、後述する設定値に関するデータが格納されているＲＡＭ領域は、前回の設定値を元に変更することも考慮して、クリアせずに保持しておいたほうが望ましい。
【０２１７】
次いで、主制御ＣＰＵ６００ａは、設定変更中フラグをＯＮに設定し（ステップＳ１５）、主制御ＲＡＭ６００ｃ（図７参照）へのデータ書込みを許可する（ステップＳ１６）。
【０２１８】
次いで、主制御ＣＰＵ６００ａは、演出制御基板９０に液晶表示装置４１に設定変更中であることを表示させるような処理コマンド（演出制御コマンドＤＩ_ＣＭＤ）を送信し（ステップＳ１７）、主制御ＲＡＭ６００ｃ（図７参照）内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値（例えば「１」〜「６」の設定値）を取得する（ステップＳ１８）。なお、この設定変更中であることを表示させるような処理コマンド（演出制御コマンドＤＩ_ＣＭＤ）送信処理は、ＣＡＬＬ_Ｓ命令でコールして処理されることとなる。
【０２１９】
次いで、主制御ＣＰＵ６００ａは、取得した設定値の値が、「１」〜「６」の何れかの値を示しているか否かを確認する（ステップＳ１９）。取得した設定値の値が、「１」〜「６」の何れかの値を示していなければ（ステップＳ１９：ＮＯ）、取得した設定値に「１」を設定する（ステップＳ２０）。一方、取得した設定値の値が、「１」〜「６」の何れかの値を示していれば（ステップＳ１９：ＹＥＳ）、ステップＳ２１の処理に進む。
【０２２０】
次いで、主制御ＣＰＵ６００ａは、上記設定値を設定表示装置６２０（図７、図８（ｂ）参照）に表示させる処理を行う（ステップＳ２１）。これにより、設定表示装置６２０に、「１」〜「６」の何れかの値が表示させることとなる。
【０２２１】
次いで、主制御ＣＰＵ６００ａは、メイン処理中入力管理処理を実行する（ステップＳ２２）。
【０２２２】
＜メイン処理中入力管理処理の説明＞
このメイン処理中入力管理処理について、図２９を参照して具体的に説明する。図２９に示すように、主制御ＣＰＵ６００ａは、まず、図示しないウォッチドックタイマ（ＷＤＴ）をクリアする（ステップＳ５０）。
【０２２３】
次いで、主制御ＣＰＵ６００ａは、４ｍｓのウェイトがかかるように、主制御ＣＰＵ６００ａ内のレジスタに所定値をセットして、カウントダウンする処理を行う（ステップＳ５１）。なお、この処理は、設定変更スイッチ６５０（図７参照）のレベルデータの変化を確認する際、前回のスイッチレベルの取得から少なくとも４ｍｓの時間をおくことで、ノイズ等のイレギュラーによるレベルデータの変化ではないことを確認するための処理である。
【０２２４】
次いで、主制御ＣＰＵ６００ａは、設定変更スイッチ６５０（図７参照）のスイッチレベルの変化を確認することができる主制御ＣＰＵ６００ａの入力ポート（スイッチポート）から今回のスイッチレベルデータを取得する（ステップＳ５２）。
【０２２５】
次いで、主制御ＣＰＵ６００ａは、前回と今回のスイッチレベルデータからスイッチエッジデータを作成する（ステップ５３）。なお、主制御ＣＰＵ６００ａは、作成したエッジデータを主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）に格納する。
【０２２６】
次いで、主制御ＣＰＵ６００ａは、電圧監視処理を実行し（ステップＳ５４）、メイン処理中入力管理処理を終える。この電圧監視処理は、電源基板１３０（図７参照）から出力される電圧異常信号ＡＬＡＲＭのレベルを判定し、電圧異常信号ＡＬＡＲＭが「Ｌ」レベル（異常レベル）であれば、主制御ＣＰＵ６００ａの出力ポートのクリア、演出制御基板９０への電断コマンド（演出制御コマンドＤＩ_ＣＭＤ）送信など、バックアップ処理が目的ではなく、通常遊技時の電断時処理を実行することを目的としている。なお、この電断コマンド（演出制御コマンドＤＩ_ＣＭＤ）送信処理は、ＣＡＬＬ_Ｓ命令でコールして処理されることとなる。
【０２２７】
かくして、このようなメイン処理中入力管理処理を実行することにより、主制御ＣＰＵ６００ａが、設定変更スイッチ６５０（図７参照）にて設定が変更されていないにも係らず、誤ってノイズ等のデータを取得して設定が変更されたと誤認し、誤った設定変更がされないようにしている。
【０２２８】
＜メイン処理：設定表示装置に関する説明＞
次いで、主制御ＣＰＵ６００ａは、主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）に格納している作成したエッジデータを確認し、設定変更スイッチ６５０（図７参照）にて設定変更完了機能がＯＮされているか否かを確認する（ステップＳ２３）。設定変更スイッチ６５０（図７参照）にて設定変更完了機能がＯＮされていなければ（ステップＳ２３：ＮＯ）、主制御ＣＰＵ６００ａは、設定変更スイッチ６５０（図７参照）にて設定変更機能がＯＮされているか否かを確認する（ステップＳ２４）。設定変更スイッチ６５０（図７参照）にて設定変更機能がＯＮされていなければ（ステップＳ２４：ＮＯ）、主制御ＣＰＵ６００ａは、ステップＳ２２の処理に戻り、設定変更スイッチ６５０（図７参照）にて設定変更機能がＯＮされていれば（ステップＳ２４：ＹＥＳ）、主制御ＣＰＵ６００ａは、現在の設定値をインクリメント（＋１）し（ステップＳ２５）、ステップＳ１９の処理に戻る。
【０２２９】
一方、主制御ＣＰＵ６００ａは、設定変更スイッチ６５０（図７参照）にて設定変更完了機能がＯＮされていれば（ステップＳ２３：ＹＥＳ）、現在の設定値を主制御ＲＡＭ６００ｃ（図７参照）内（図９（ａ）に示す主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ）に記憶させ（ステップＳ２６）、設定表示装置６２０（図７、図８（ｂ）参照）に設定値が確定したことを示す表示をさせる処理を行う（ステップＳ２７）。これにより、設定表示装置６２０（図８（ｂ）参照）を構成する７セグメントの右下側にあるドットが点灯し、設定内容が確定したことが表示されることとなる。
【０２３０】
次いで、主制御ＣＰＵ６００ａは、図示しないウォッチドックタイマ（ＷＤＴ）をクリアする（ステップＳ２８）。
【０２３１】
次いで、主制御ＣＰＵ６００ａは、図７に示す設定キースイッチ６４０がＯＦＦされているか否かを確認する（ステップＳ２９）。ＯＦＦされていなければ（ステップＳ２９：ＮＯ）、ＯＦＦされるまでステップＳ２８〜ステップＳ２９の処理を繰り返し行い、ＯＦＦされれば（ステップＳ２９：ＹＥＳ）、演出制御基板９０に設定された設定値を示す設定値コマンド（演出制御コマンドＤＩ_ＣＭＤ）を送信し（ステップＳ３０）、設定変更中フラグをＯＦＦに設定し（ステップＳ３１）、ステップＳ４０の処理に進む。なお、この設定値コマンド（演出制御コマンドＤＩ_ＣＭＤ）送信処理は、ＣＡＬＬ_Ｓ命令でコールして処理されることとなる。
【０２３２】
＜メイン処理の説明＞
他方、主制御ＣＰＵ６００ａは、設定キースイッチ６４０（図７参照）がＯＦＦ（ステップＳ１２：ＮＯ）、図２に示すように、上部開閉扉７、下部開放扉８が開放されていなければ（ステップＳ１３：ＮＯ）、主制御ＣＰＵ６００ａは、主制御ＲＡＭ６００ｃ（図７参照）へのデータ書込みを許可し（ステップＳ３２）、演出制御基板９０に液晶表示装置４１に待機画面を表示させるような処理コマンド（演出制御コマンドＤＩ_ＣＭＤ）を送信する（ステップＳ３３）。
【０２３３】
なお、この待機画面表示コマンド送信の設定処理が、図１４（ｂ）に示す、液晶表示装置４１（図５参照）に待機画面を表示させる待機画面表示コマンド（０ＢＡ０１Ｈ）をＤＥレジスタにセットし（ＬＤ  ＤＥ、０ＢＡ０１Ｈ）、コマンド送信処理（Ｍ_ＣＭＤＯＵＴ）をＣＡＬＬ_Ｓ命令でコールする（ＣＡＬＬ_Ｓ  Ｍ_ＣＭＤＯＵＴ）プログラムで処理されるものである。
【０２３４】
次いで、主制御ＣＰＵ６００ａは、バックアップフラグＢＦＬの内容を確認する（ステップＳ３４）。なお、このバックアップフラグＢＦＬとは、図３０に示す電圧監視処理において、停電等による電圧低下を検出した場合に、バックアップの処理が実行されたか否かを示すデータである。
【０２３５】
このバックアップフラグＢＦＬがＯＦＦ状態（ステップＳ３４：ＯＦＦ）であれば、後述する図３０に示す電圧監視処理において、停電等による電圧低下を検出した場合に、バックアップの処理が実行されていないこととなり、主制御ＣＰＵ６００ａは、演出制御基板９０にＲＡＭエラーであることを示す処理コマンド（演出制御コマンドＤＩ_ＣＭＤ）を送信し（ステップＳ３５）、無限ループ処理を行う。なお、このＲＡＭエラーであることを示す処理コマンド（演出制御コマンドＤＩ_ＣＭＤ）送信処理は、ＣＡＬＬ_Ｓ命令でコールして処理されることとなる。
【０２３６】
一方、バックアップフラグＢＦＬがＯＮ状態（ステップＳ３４：ＯＮ）であれば、後述する図３０に示す電圧監視処理において、停電等による電圧低下を検出した場合に、バックアップの処理が実行されていることとなるため、主制御ＣＰＵ６００ａは、チェックサム値を算出するためのチェックサム演算を行う。そして、主制御ＣＰＵ６００ａは、上記チェックサム値が算出されたら、この演算結果を主制御ＲＡＭ６００ｃ内のＳＵＭ番地の記憶値と比較する処理を行う（ステップＳ３６）。なお、チェックサム演算とは、主制御ＲＡＭ６００ｃを対象とする８ビット加算演算であり、記憶された演算結果は、主制御ＲＡＭ６００ｃ内に記憶されている他のデータと共に、図７に示す電源基板１３０にて生成されるバックアップ電源によって維持されている。
【０２３７】
このＳＵＭ番地の記憶値と算出されたチェックサム値が不一致（ステップＳ３６：ＮＯ）であれば、主制御ＣＰＵ６００ａは、演出制御基板９０にＲＡＭエラーであることを示す処理コマンド（演出制御コマンドＤＩ_ＣＭＤ）を送信し（ステップＳ３５）、無限ループ処理を行う。なお、上述したように、このＲＡＭエラーであることを示す処理コマンド（演出制御コマンドＤＩ_ＣＭＤ）送信処理は、ＣＡＬＬ_Ｓ命令でコールして処理されることとなる。
【０２３８】
一方、一致（ステップＳ３６：ＹＥＳ）していれば、主制御ＣＰＵ６００ａは、ＲＡＭクリアスイッチ６３０（図７参照）の内容を確認する（ステップＳ３７）。ＲＡＭクリアスイッチ６３０のエッジデータがＯＮであれば（ステップＳ３７：ＯＮ）、主制御ＣＰＵ６００ａは、ＲＡＭクリアスイッチ６３０が押下されたと判断し、主制御ＲＡＭ６００ｃの計測用ＲＡＭ領域６００ｃｅ（図９（ａ）参照）、計測用スタック領域６００ｃｇ（図９（ａ）参照）はクリアせず、主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）、通常用スタック領域６００ｃｃ（図９（ａ）参照）をクリアし（ステップＳ３９）、ステップＳ４０の処理に進む。
【０２３９】
かくして、上述したように、バックアップフラグがＯＦＦの場合（ステップＳ３４：ＯＦＦ）や、チェックサム値が一致していない場合（ステップＳ３６：ＮＯ）、ＲＡＭクリアスイッチ６３０（図７参照）がＯＮとなっていても、主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ、通常用スタック領域６００ｃｃ（図９（ａ）参照）がクリアされることはない。これは、バックアップ処理に異常があった場合やチェックサム値が異常の場合、設定表示装置６２０（図７、図８（ｂ）参照）に表示される設定値が異常となっている可能性が高いためである。それゆえ、本実施形態にて示すように、ステップＳ３５の処理後、無限ループ処理を実行し、再度、電源投入をし直し、設定値の変更処理を行ってからでないと遊技を再開できないようにすることで、遊技者及び遊技場（ホール）側が不利益となる事態を防止することができる。
【０２４０】
一方、ＲＡＭクリアスイッチ６３０のエッジデータがＯＦＦであれば（ステップＳ３７：ＯＦＦ）、主制御ＣＰＵ６００ａは、ＲＡＭクリアスイッチ６３０が押下されていないと判断し、主制御ＲＡＭ６００ｃ内に記憶されているデータに基づいて電源遮断時の遊技動作に復帰させる処理を行う（ステップＳ３８）。
【０２４１】
かくして、主制御ＣＰＵ６００ａは、上記ステップＳ３８又はステップＳ３９の処理を終えた後、主制御ＲＡＭ６００ｃ（図７参照）へのデータ書込みを許可し（ステップＳ４０）、図示しないウォッチドックタイマ（ＷＤＴ）をクリアする（ステップＳ４１）。
【０２４２】
次いで、主制御ＣＰＵ６００ａは、発射制御信号をＯＮに設定し、払出制御基板７０に送信する（ステップＳ４２）。これにより、払出制御基板７０は、発射制御基板７１の動作を開始させるように制御する。
【０２４３】
次いで、主制御ＣＰＵ６００ａは、自身への割込みを禁止状態にセットした状態（ステップＳ４３）で、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用プログラム領域６００ｂｅに格納されているプログラムを読み出し、賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等の性能を算出する賞球入賞数管理処理１の処理を行う（ステップＳ４４）。この処理の際、図２５に示すように、「ＰＵＳＨ  ＡＬＬ」，「ＰＵＳＨ  ＴＰ」のプログラムが実行され、図２３（ａ）に示すように、汎用レジスタ６００ａ１と、ＳＰレジスタ６００ａ３と、ＰＳＷレジスタ６００ａ５と、が主制御ＲＡＭ６００ｃの計測用スタック領域６００ｃｇ（図９（ａ）参照）に退避され、「ＰＵＳＨ  ＴＰ」により、図２３（ｂ）に示すように、ＴＰレジスタ６００ａ４が主制御ＲＡＭ６００ｃの計測用スタック領域６００ｃｇ（図９（ａ）参照）に退避されることとなる。なお、賞球入賞数管理処理１の処理を行った後、「ＰＯＰ  ＴＰ」，「ＰＯＰ  ＡＬＬ」のプログラムが実行され、図２３（ｂ）に示すように、退避させたＴＰレジスタ６００ａ４が復帰し、図２３（ａ）に示すように、退避させた、汎用レジスタ６００ａ１と、ＳＰレジスタ６００ａ３と、ＰＳＷレジスタ６００ａ５と、が復帰することとなる。
【０２４４】
次いで、主制御ＣＰＵ６００ａは、図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用プログラム領域６００ｂａに格納されているプログラムに基づいて、各種の乱数カウンタの更新処理を行った後（ステップＳ４５）、割込み許可状態に戻して（ステップＳ４６）、ステップＳ４３に戻り、ステップＳ４３〜ステップＳ４６の処理を繰り返し行うループ処理を行う。
【０２４５】
なお、このステップＳ４３〜ステップＳ４６の処理が、図１４（ｆ）に示す、割込み禁止処理（ＤＩ）をした後、賞球入賞数管理処理１（Ｍ_ＳＨＯＵＫＹＵ１）をＣＡＬＬ命令でコールし（ＣＡＬＬ  Ｍ_ＳＨＯＵＫＹＵ１）、各種乱数更新処理（Ｍ_ＲＡＮＳＵ）をＣＡＬＬ_Ｍ命令でコールし（ＣＡＬＬ  Ｍ_ＳＨＯＵＫＹＵ１）、割込み許可（ＥＩ）をするという処理を繰り返し行うプログラムで処理されるものである。
【０２４６】
しかして、このように、ＲＡＭクリアスイッチ６３０（図７参照）が押下されていた際、主制御ＲＡＭ６００ｃの計測用ＲＡＭ領域６００ｃｂ、計測用スタック領域６００ｃｇ（図９（ａ）参照）はクリアせず、主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ、通常用スタック領域６００ｃｃ（図９（ａ）参照）をクリアするようにすれば、計測した賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等が誤ってクリアされる事態を防止することができる。すなわち、何らかの異常等が発生し電源が遮断され、その後、電源遮断復帰したとしても、計測した賞球数，非入賞数を含む遊技領域４０に発射された遊技球の総数等が誤ってクリアされる事態を防止することができるため、計測表示装置６１０（図７、図８（ａ）参照）に表示される正確な情報を生成することができ、もって、電源遮断復帰時に正確な情報を生成することができる。
【０２４７】
＜タイマ割込み処理の説明＞
次に、図３０を参照して、上述したメイン処理を中断させて、４ｍｓ毎に開始されるタイマ割込みプログラムについて説明する。なお、このプログラムは、図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用プログラム領域６００ｂａに格納されているプログラムを読み出して実行するものである。
【０２４８】
このタイマ割込みが生じると、主制御ＣＰＵ６００ａ内のレジスタ群の内容を主制御ＲＡＭ６００ｃの通常用スタック領域６００ｃｃ（図９（ａ）参照）に退避させる退避処理を実行し（ステップＳ１００）、その後電圧監視処理を実行する（ステップＳ１０１）。この電圧監視処理は、電源基板１３０（図７参照）から出力される電圧異常信号ＡＬＡＲＭのレベルを判定し、電圧異常信号ＡＬＡＲＭが「Ｌ」レベル（異常レベル）であれば、主制御ＲＡＭ６００ｃ内に記憶されているデータのバックアップ処理、すなわち、当該データのチェックサム値を算出し、その算出したチェックサム値をバックアップデータとして主制御ＲＡＭ６００ｃ内に保存する処理を行うものである。
【０２４９】
次いで、主制御ＣＰＵ６００ａは、上記電圧監視処理（ステップＳ１０１）が終了すると、各遊技動作の時間を管理している各種タイマ（普通図柄変動タイマ、普通図柄役物タイマ等）のタイマ減算処理を行う（ステップＳ１０２）。
【０２５０】
続いて、主制御ＣＰＵ６００ａには、特別図柄１始動口スイッチ４４ａ（図７参照）と、特別図柄２始動口スイッチ４５ａ（図７参照）と、普通図柄始動口スイッチ４７ａ（図７参照）と、右上一般入賞口スイッチ４８ａ１（図７参照），左上一般入賞口スイッチ４８ｂ１（図７参照），左中一般入賞口スイッチ４８ｃ１（図７参照），左下一般入賞口スイッチ４８ｄ１（図７参照）と、アウト口スイッチ４９ａ（図７参照）と、大入賞口スイッチ４６ｃ（図７参照）を含む各種スイッチ類のＯＮ／ＯＦＦ信号が入力され、主制御ＲＡＭ６００ｃ内の作業領域にＯＮ／ＯＦＦ信号レベルや、その立ち上がり状態が記憶される（ステップＳ１０３）。
【０２５１】
次いで、主制御ＣＰＵ６００ａは、乱数管理処理を行う（ステップＳ１０４）。具体的には、当否抽選に使用する普通図柄、特別図柄等の乱数を更新する処理を行うものである。なお、この際、上述した図１３（ｂ）〜（ｄ）に示すようなカウンタプログラムが実行されることとなる。
【０２５２】
次いで、主制御ＣＰＵ６００ａは、エラー管理処理を行う（ステップＳ１０５）。なお、エラー管理処理は、遊技球の補給が停止したり、あるいは、遊技球が詰まったり、特別図柄１始動口スイッチ４４ａ（図７参照）、特別図柄２始動口スイッチ４５ａ（図７参照）、普通図柄始動口スイッチ４７ａ（図７参照）、右上一般入賞口スイッチ４８ａ１（図７参照）、左上一般入賞口スイッチ４８ｂ１（図７参照）、左中一般入賞口スイッチ４８ｃ１（図７参照）、左下一般入賞口スイッチ４８ｄ１（図７参照）、アウト口スイッチ４９ａ（図７参照）、大入賞口スイッチ４６ｃ（図７参照）の断線など、機器内部に異常が生じていないかの判定を行うものである。なお、何らかのエラーが発生した際、演出制御基板９０へ、そのエラーに応じたコマンド（演出制御コマンドＤＩ_ＣＭＤ）が送信されることとなり、このコマンド（演出制御コマンドＤＩ_ＣＭＤ）送信処理は、ＣＡＬＬ_Ｓ命令でコールして処理されることとなる。
【０２５３】
次いで、主制御ＣＰＵ６００ａは、主制御ＲＡＭ６００ｃ（図７参照）内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値が「１」〜「６」の範囲内か否かを示すＲＡＭエラーフラグを確認する（ステップＳ１０６）。ＲＡＭエラーフラグがＯＮに設定されていれば（ステップＳ１０６：ＹＥＳ）、主制御ＣＰＵ６００ａは、主制御ＲＡＭ６００ｃ（図７参照）内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値が「１」〜「６」の範囲外となっていると判断し、図柄に関連する処理をスキップし、ステップＳ１１９の処理に進む。一方、ＲＡＭエラーフラグがＯＦＦに設定されていれば（ステップＳ１０６：ＮＯ）、主制御ＣＰＵ６００ａは、主制御ＲＡＭ６００ｃ（図７参照）内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値が「１」〜「６」の範囲内となっていると判断し、ステップＳ１０７の処理に進む。
【０２５４】
次いで、主制御ＣＰＵ６００ａは、設定変更中フラグを確認する（ステップＳ１０７）。設定変更中フラグがＯＮに設定されていれば（ステップＳ１０７：ＹＥＳ）、主制御ＣＰＵ６００ａは、本来電源投入時でしか変更できない設定値の変更状態となっているイレギュラー状態と判断し、ステップＳ１１７の処理に進む。一方、設定変更中フラグがＯＦＦに設定されていれば（ステップＳ１０７：ＮＯ）、主制御ＣＰＵ６００ａは、遊技者に有利な特別遊技状態を発生させる確率の設定値が変更中でないと判断し、ステップＳ１０８の処理に進む。
【０２５５】
次いで、主制御ＣＰＵ６００ａは、設定確認フラグを確認する（ステップＳ１０８）。設定確認フラグがＯＮに設定されていれば（ステップＳ１０８：ＹＥＳ）、主制御ＣＰＵ６００ａは、遊技者に有利な特別遊技状態を発生させる確率の設定値を確認中であると判断し、ステップＳ１１４の処理に進む。一方、設定確認フラグがＯＦＦに設定されていれば（ステップＳ１０８：ＮＯ）、主制御ＣＰＵ６００ａは、遊技者に有利な特別遊技状態を発生させる確率の設定値を確認中でないと判断し、ステップＳ１０９の処理に進む。
【０２５６】
次いで、主制御ＣＰＵ６００ａは、賞球管理処理を実行する（ステップＳ１０９）。この賞球管理処理は、払出制御基板７０（図７参照）に払出し動作を行わせるための払出制御コマンドＰＡＹ_ＣＭＤを出力している。
【０２５７】
次いで、主制御ＣＰＵ６００ａは、普通図柄処理を実行する（ステップＳ１１０）。この普通図柄処理は、普通図柄の当否抽選を実行し、その抽選結果に基づいて普通図柄の変動パターンや普通図柄の停止表示状態を決定したりするものである。なお、この処理の詳細は後述することとする。
【０２５８】
次いで、主制御ＣＰＵ６００ａは、普通電動役物管理処理を実行する（ステップＳ１１１１）。この普通電動役物管理処理は、普通図柄処理（ステップＳ１１０）の抽選結果に基づき、普通電動役物開放遊技発生に必要な普通電動役物ソレノイド４５ｃ（図７参照）の制御に関する信号が生成されるものである。
【０２５９】
次いで、主制御ＣＰＵ６００ａは、特別図柄処理を実行する（ステップＳ１１２）。この特別図柄処理では、特別図柄の当否抽選を実行し、その抽選の結果に基づいて特別図柄の変動パターンや特別図柄の停止表示態様を決定するものである。なお、この処理の詳細は後述することとする。
【０２６０】
ところで、特別図柄処理を実行する際、主制御ＣＰＵ６００ａは、特別図柄の当否抽選に関し、主制御ＲＡＭ６００ｃ（図７参照）内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値に基づいて、特別図柄の当否抽選を行う。そのため、主制御ＣＰＵ６００ａは、主制御ＲＡＭ６００ｃ（図７参照）内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値が「１」〜「６」の範囲内であるか否かを確認し、範囲外であれば、ＲＡＭエラーフラグにＯＮを設定する。
【０２６１】
次いで、主制御ＣＰＵ６００ａは、特別電動役物管理処理を実行する（ステップＳ１１３）。この特別電動役物管理処理では、主に、大当たり抽選結果が「大当たり」又は「小当たり」であった場合、その当りに対応した当り遊技を実行制御するために必要な設定処理を行うものである。この際、特別電動役物ソレノイド４６ｂ（図７参照）の制御に関する信号も生成される。なお、大当たり抽選結果が「大当たり」又は「小当たり」であった場合、それに関するコマンド（演出制御コマンドＤＩ_ＣＭＤ）が演出制御基板９０に送信される。なお、このコマンド（演出制御コマンドＤＩ_ＣＭＤ）送信処理は、ＣＡＬＬ_Ｓ命令でコールして処理されることとなる。
【０２６２】
次いで、主制御ＣＰＵ６００ａは、主制御ＲＡＭ６００ｃ（図７参照）内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値を確認する処理を行う（ステップＳ１１４）。
【０２６３】
次いで、主制御ＣＰＵ６００ａは、図９（ｂ）に示す主制御ＲＯＭ６００ｂの計測用プログラム領域６００ｂｅに格納されているプログラムを読み出し、賞球入賞数管理処理２を実行する（ステップＳ１１５）。この賞球入賞数管理処理２では、図２８に示すステップＳ４４の賞球入賞数管理処理１にて算出した値を計測表示装置６１０（図７、図８（ａ）参照）に表示させる処理を行うものである。この処理の際、図２４に示すように、「ＰＵＳＨ  ＡＬＬ」，「ＰＵＳＨ  ＴＰ」のプログラムが実行され、図２３（ａ）に示すように、汎用レジスタ６００ａ１と、ＳＰレジスタ６００ａ３と、ＰＳＷレジスタ６００ａ５と、が主制御ＲＡＭ６００ｃの計測用スタック領域６００ｃｇ（図９（ａ）参照）に退避され、「ＰＵＳＨ  ＴＰ」により、図２３（ｂ）に示すように、ＴＰレジスタ６００ａ４が主制御ＲＡＭ６００ｃの計測用スタック領域６００ｃｇ（図９（ａ）参照）に退避されることとなる。なお、賞球入賞数管理処理２の処理を行った後、「ＰＯＰ  ＴＰ」，「ＰＯＰ  ＡＬＬ」のプログラムが実行され、図２３（ｂ）に示すように、退避させたＴＰレジスタ６００ａ４が復帰し、図２３（ａ）に示すように、退避させた、汎用レジスタ６００ａ１と、ＳＰレジスタ６００ａ３と、ＰＳＷレジスタ６００ａ５と、が復帰することとなる。
【０２６４】
ところで、賞球入賞数管理処理２は、図３０に示すように、ＲＡＭエラー（図３０に示すステップＳ１０６）、設定値の変更状態となっているイレギュラー状態（図３０に示すステップＳ１０７）は処理されないこととなる。なお、賞球入賞数管理処理２は、ＣＡＬＬ命令でコールされて処理されることとなる。
【０２６５】
次いで、主制御ＣＰＵ６００ａは、ソレノイド駆動処理を行う（ステップＳ１１６）。この際、主制御ＣＰＵ６００ａは、普通電動役物管理処理（ステップＳ１１１）にて生成された普通電動役物ソレノイド４５ｃ（図７参照）の制御に関する信号を確認すると共に、特別電動役物管理処理（ステップＳ１１３）にて生成された特別電動役物ソレノイド４６ｂ（図７参照）の制御に関する信号を確認する。そしてこの信号に基づき、普通電動役物ソレノイド４５ｃ又は特別電動役物ソレノイド４６ｂの作動／停止が制御され、開閉部材４５ｂ（図５参照）が開放又は閉止、あるいは、大入賞口（図示せず）が開放又は閉止するように開閉扉４６ａ（図５参照）が動作することとなる。
【０２６６】
次いで、主制御ＣＰＵ６００ａは、ＬＥＤ管理処理を実行する（ステップＳ１１７）。このＬＥＤ管理処理は、処理の進行状態に応じて、特別図柄表示装置５０（図５参照）や普通図柄表示装置５１（図５参照）への出力データを生成したり、当該データに基づく制御信号を出力したり、あるいは、設定変更中フラグ、設定確認フラグがＯＮに設定されている場合は、設定表示装置６２０（図７、図８（ｂ）参照）への出力データを生成したり、当該データに基づく制御信号を出力したりする処理である。この処理により、特別図柄表示装置５０、普通図柄表示装置５１に抽選結果が表示され、設定表示装置６２０に遊技者に有利な特別遊技状態を発生させる確率の設定値が表示されることとなる。
【０２６７】
次いで、主制御ＣＰＵ６００ａは、外部端子管理処理を実行する（ステップＳ１１８）。この外部端子管理処理では、遊技場の遊技島管理に使用されるホールコンピュータ（図示せず）に、当り遊技中、当りの発生回数、特別図柄の変動回数、入賞口への入賞球検出情報など、所定の遊技情報が出力されるものである。また、設定変更中フラグ、設定確認フラグがＯＮに設定されている場合は、セキュリティ信号の出力が行われる。
【０２６８】
次いで、主制御ＣＰＵ６００ａは、割込み許可状態に戻し（ステップＳ１１９）、主制御ＲＡＭ６００ｃの通常用スタック領域６００ｃｃ（図９（ａ）参照）に退避させておいたレジスタの内容を復帰させタイマ割込みを終える（ステップＳ１２０）。これにより、割込み処理ルーチンからメイン処理（図２８参照）に戻ることとなる。
【０２６９】
なお、タイマ割込み処理にて実行される電圧監視処理（ステップＳ１０１）〜エラー管理処理（ステップＳ１０５）、賞球管理処理（ステップＳ１０９）〜外部端子管理処理（ステップＳ１１８）は、ＣＡＬＬ_Ｍ命令でコールされて処理されることとなる。
【０２７０】
＜普通図柄処理の説明＞
次に、図３１を参照して、上記普通図柄処理について詳細に説明する。
【０２７１】
図３１に示すように、普通図柄処理は、先ず、ゲートからなる普通図柄始動口４７（図５参照）において、遊技球の通過を検出したか否かを確認、すなわち、普通図柄始動口４７の普通図柄始動口スイッチ４７ａ（図７参照）の信号レベルを確認する（ステップＳ１５０）。そして遊技球の通過を検出した場合（ステップＳ１５０：ＹＥＳ）、主制御ＣＰＵ６００ａは、普通図柄の始動保留球数が例えば４以上か否かを判断するため、普通図柄の始動保留球数が格納されている主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）を確認する（ステップＳ１５１）。その際、普通図柄の始動保留球数が４未満であれば（ステップＳ１５１：≠ＭＡＸ）、普通図柄の始動保留球数を１加算する（ステップＳ１５２）。その後、主制御ＣＰＵ６００ａは、普通図柄の当否抽選に用いられる普通図柄当り判定用乱数値を普通図柄の始動保留球数が格納されている主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）に格納した上で（ステップＳ１５３）、ステップＳ１５４の処理に進む。
【０２７２】
一方、ステップＳ１５０にて、遊技球の通過を検出しなかった場合（ステップＳ１５０：ＮＯ）、ステップＳ１５１にて、普通図柄の始動保留球数が４以上であると判断した場合（ステップＳ１５１：＝ＭＡＸ）には、ステップＳ１５２〜Ｓ１５３の処理は行わず、ステップＳ１５４の処理に進む。
【０２７３】
主制御ＣＰＵ６００ａは、ステップＳ１５４の処理に進むと、普通図柄当たり作動フラグがＯＮに設定されているか、すなわち、普通図柄当たり作動フラグに５ＡＨが設定されているかを確認する（ステップＳ１５４）。普通図柄当たり作動フラグに５ＡＨが設定されていれば（ステップＳ１５４：ＯＮ）、普通図柄が当たり中であると判断し、普通図柄の表示データの更新を行った後（ステップＳ１５３）、普通図柄処理を終える。
【０２７４】
一方、普通図柄当たり作動フラグに５ＡＨが設定されていなければ（ステップＳ１５４：ＯＦＦ）、普通図柄の挙動を示す処理状態、すなわち、普通図柄動作ステータスフラグの値を確認する（ステップＳ１５５）。そして、普通図柄動作ステータスフラグが００Ｈであれば、主制御ＣＰＵ６００ａは、普通図柄の変動開始前の状態であると判断し、ステップＳ１５６に進み、普通図柄の始動保留球数が０か否かを確認する（ステップＳ１５６）。
【０２７５】
主制御ＣＰＵ６００ａは、普通図柄の始動保留球数が格納されている主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）を確認した上で、０であると判断した場合（ステップＳ１５６：＝０）は、普通図柄の表示データの更新を行った後（ステップＳ１５３）、普通図柄処理を終える。一方、０でないと判断した場合（ステップＳ１５６：≠０）は、普通図柄の始動保留球数を１減算する（ステップＳ１５７）。
【０２７６】
その後、主制御ＣＰＵ６００ａは、図３７（ａ）に示す普通図柄当たり判定テーブルＮＰＰ_ＴＢＬを用いて主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）に格納されている普通図柄の始動保留球数に対応した乱数値の当たり判定を行う。すなわち、主制御ＣＰＵ６００ａは、遊技状態を示す普通図柄確変フラグがＯＦＦであれば、当該乱数値が、図３７（ａ）に示す普通図柄当たり判定テーブルＮＰＰ_ＴＢＬ（通常状態）の下限値（図示では、２４９）以上で上限値（図示では、２５０）以下か否かを判定し、下限値以上で上限値以下であれば、普通図柄当たり判定フラグに５ＡＨをセットし、ＯＮにする。それ以外の場合は、普通図柄当たり判定フラグをＯＦＦにする。
【０２７７】
一方、遊技状態を示す普通図柄確変フラグがＯＮであれば、当該乱数値が、図３７（ａ）に示す普通図柄当たり判定テーブルＮＰＰ_ＴＢＬ（確変状態）の下限値（図示では、４）以上で上限値（図示では、２５０）以下か否かを判定し、下限値以上で上限値以下であれば、普通図柄当たり判定フラグに５ＡＨをセットし、ＯＮにする。それ以外の場合は、普通図柄当たり判定フラグをＯＦＦにセットする処理を行う（ステップＳ１５８）。
【０２７８】
そして、主制御ＣＰＵ６００ａは、上記乱数抽選処理にて決定した抽選結果に基づいて、停止図柄（普通図柄停止図柄）を決定する（ステップＳ１５９）。
【０２７９】
次いで、主制御ＣＰＵ６００ａは、普通図柄の変動時間を短くする普通図柄時短フラグがＯＮに設定されているかを確認し、ＯＮに設定されていれば、普通図柄変動タイマにそれに応じた変動時間を設定し、ＯＦＦに設定されていれば、普通図柄変動タイマに通常の変動時間を設定する処理を行う（ステップＳ１６０）。
【０２８０】
次いで、主制御ＣＰＵ６００ａは、普通図柄の始動保留球数に対応した普通図柄の当否抽選に用いられる乱数値が格納されている主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）の記憶領域をシフトする（ステップＳ１６１）。すなわち、普通図柄の始動保留球数を最大で４個保留できるとすると、普通図柄の始動保留球数４に対応した普通図柄の当否抽選に用いられる乱数値を普通図柄の始動保留球数３に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）にシフトし、普通図柄の始動保留球数３に対応した普通図柄の当否抽選に用いられる乱数値を普通図柄の始動保留球数２に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）にシフトし、普通図柄の始動保留球数２に対応した普通図柄の当否抽選に用いられる乱数値を普通図柄の始動保留球数１に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）にシフトするという処理を行う。
【０２８１】
この処理の後、主制御ＣＰＵ６００ａは、上記ステップＳ１５５にて用いた普通図柄動作ステータスフラグに０１Ｈを設定し、普通図柄の始動保留球数４に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）に００Ｈを設定する処理を行う（ステップＳ１６２）。
【０２８２】
そして、主制御ＣＰＵ６００ａは、上記ステップＳ１６２の処理を終えた後、普通図柄の表示データの更新を行い（ステップＳ１６３）、普通図柄処理を終える。
【０２８３】
他方、主制御ＣＰＵ６００ａは、上記ステップＳ１５５にて、普通図柄の挙動を示す処理状態、すなわち、普通図柄動作ステータスフラグの値が０１Ｈであれば、主制御ＣＰＵ６００ａは、普通図柄が変動中であると判断し、ステップＳ１６４に進み、普通図柄変動タイマが０か否かを確認する（ステップＳ１６４）。普通図柄変動タイマが０でなければ（ステップＳ１６４：≠０）、普通図柄の表示データの更新を行い（ステップＳ１６３）、普通図柄処理を終える。そして、普通図柄変動タイマが０であれば（ステップＳ１６４：＝０）、主制御ＣＰＵ６００ａは、上記ステップＳ１５５にて用いた普通図柄動作ステータスフラグに０２Ｈを設定し、普通図柄の当否抽選結果を一定時間維持させるために、普通図柄変動タイマに例えば約６００ｍｓの時間が設定される（ステップＳ１６５）。
【０２８４】
主制御ＣＰＵ６００ａは、上記ステップＳ１６５の処理を終えた後、普通図柄の表示データの更新を行い（ステップＳ１６３）、普通図柄処理を終える。
【０２８５】
一方、主制御ＣＰＵ６００ａは、上記ステップＳ１５５にて、普通図柄の挙動を示す処理状態、すなわち、普通図柄動作ステータスフラグの値が０２Ｈであれば、主制御ＣＰＵ６００ａは、普通図柄が確認時間中（普通図柄の変動が終了して停止中）であると判断し、ステップＳ１６６に進み、普通図柄変動タイマが０か否かを確認する（ステップＳ１６６）。普通図柄変動タイマが０でなければ（ステップＳ１６６：≠０）、普通図柄の表示データの更新を行い（ステップＳ１６３）、普通図柄処理を終える。そして、普通図柄変動タイマが０であれば（ステップＳ１６６：＝０）、主制御ＣＰＵ６００ａは、上記ステップＳ１５５にて用いた普通図柄動作ステータスフラグに００Ｈを設定し（ステップＳ１６７）、普通図柄当たり判定フラグがＯＮに設定（５ＡＨが設定）されているかを確認する（ステップＳ１６８）。
【０２８６】
これにより、普通図柄当たり判定フラグがＯＦＦに設定（５ＡＨが設定されていない）されていれば（ステップＳ１６８：ＯＦＦ）、主制御ＣＰＵ６００ａは、普通図柄の表示データの更新を行い（ステップＳ１６３）、普通図柄処理を終える。そして、普通図柄当たり判定フラグがＯＮに設定（５ＡＨが設定）されていれば（ステップＳ１６８：ＯＮ）、主制御ＣＰＵ６００ａは、ステップＳ１５４にて用いられる普通図柄当たり作動フラグをＯＮ（５ＡＨを設定）に設定した（ステップＳ１６９）後、普通図柄処理を終える。
【０２８７】
＜特別図柄処理の説明＞
次に、図３２〜図３７を参照して、上記特別図柄処理について詳細に説明する。
【０２８８】
図３２に示すように、特別図柄処理は、先ず、特別図柄１始動口４４（図５参照）の特別図柄１始動口スイッチ４４ａ（図７参照）において、遊技球の入球（入賞球）を検出した否かを確認し（ステップＳ２００）、さらに、特別図柄２始動口４５（図５参照）の特別図柄２始動口スイッチ４５ａ（図７参照）において、遊技球の入球（入賞球）を検出したか否かを確認する（ステップＳ２０１）。
【０２８９】
＜特別図柄処理：始動口チェック処理の説明＞
この処理について、図３３を用いて詳しく説明すると、主制御ＣＰＵ６００ａは、特別図柄１始動口４４又は特別図柄２始動口４５に遊技球が入球（入賞）したか否かを確認、すなわち、特別図柄１始動口４４の特別図柄１始動口スイッチ４４ａ又は特別図柄２始動口４５の特別図柄２始動口スイッチ４５ａのレベルを確認する（ステップＳ２５０）。これにより、遊技球の入球（入賞）を検出しなければ（ステップＳ２５０：ＮＯ）、特別図柄処理を終える。
【０２９０】
一方、遊技球の入球（入賞）を検出すれば（ステップＳ２５０：ＹＥＳ）、主制御ＣＰＵ６００ａは、特別図柄の変動契機となる始動保留球数が所定数、主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）に格納されているか否かを確認する（ステップＳ２５１）。その始動保留球数が、４未満であれば（ステップＳ２５１：≠ＭＡＸ）、当該始動保留球数を１加算（＋１）する（ステップＳ２５２）。
【０２９１】
次いで、主制御ＣＰＵ６００ａは、特別図柄停止の際用いられる乱数値及び変動パターン用乱数値並びに大当たり判定用乱数値を特別図柄の変動契機となる始動保留球数が格納されている主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）に格納する（ステップ２５３）。
【０２９２】
次いで、主制御ＣＰＵ６００ａは、現在の遊技状態（特別図柄大当たり判定フラグがＯＮに設定されているか否か等）を確認し、先読み禁止状態か否かを判定する（ステップＳ２５４）。そして、先読み禁止状態でなければ（ステップＳ２５４：ＮＯ）、主制御ＣＰＵ６００ａは、上記ステップＳ２５３にて主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）に格納した特別図柄の当否抽選に用いられる大当たり判定用乱数値を取得し（ステップＳ２５５）、さらに、図示しない始動口入賞時乱数判定テーブルを取得する（ステップＳ２５６）。
【０２９３】
次いで、主制御ＣＰＵ６００ａは、上記ステップＳ２５５にて取得した大当たり判定用乱数値及びステップＳ２５６にて取得した始動口入賞時乱数判定テーブル（図示せず）を用いて、大当たり抽選を行い、さらに、上記ステップＳ２５３にて主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）に格納した特別図柄用乱数値を用いて、大当たりの種類（ランクアップボーナス当り，通常の大当り等）を決定し、変動パターン用乱数値を用いて、変動パターンを決定し、それに応じた特別図柄始動口入賞コマンドを生成する（ステップＳ２５７）。なお、この特別図柄始動口入賞コマンドを生成する際、図１１（ｂ）、図２６、図２７に示すような変動時間を取得するプログラムが実行されることとなる。
【０２９４】
次いで、主制御ＣＰＵ６００ａは、上記生成された特別図柄始動口入賞コマンドに応じた下位バイトの始動保留加算コマンドを生成する（ステップＳ２５８）。
【０２９５】
一方、主制御ＣＰＵ６００ａは、上記ステップＳ２５８の処理を終えるか、又は、上記ステップＳ２５１にて特別図柄１又は２の始動保留球数が４以上であるか（ステップＳ２５１：＝ＭＡＸ）、あるいは、先読み禁止状態であれば（ステップＳ２５４：ＹＥＳ）、増加した始動保留球数に応じた上位バイトの始動保留加算コマンドを生成する（ステップＳ２５９）。
【０２９６】
次いで、主制御ＣＰＵ６００ａは、上記ステップＳ２５８にて生成した下位バイトの始動保留加算コマンドと、上記ステップＳ２５９にて生成した上位バイトの始動保留加算コマンドとを結合した上で、始動保留加算コマンド（演出制御コマンドＤＩ_ＣＭＤ）として、演出制御基板９０に送信する処理を行う（ステップＳ２６０）。この始動保留加算コマンド（演出制御コマンドＤＩ_ＣＭＤ）送信処理は、ＣＡＬＬ_Ｓ命令でコールして処理されることとなる。
【０２９７】
＜特別図柄処理の説明＞
かくして、図３２に示すステップＳ２００及びステップＳ２０１の処理を終えると、主制御ＣＰＵ６００ａは、特別図柄小当たり作動フラグがＯＮに設定されているか、すなわち、特別図柄小当たり作動フラグに５ＡＨが設定されているかを確認する（ステップＳ２０２）。特別図柄小当たり作動フラグに５ＡＨが設定されていれば（ステップＳ２０２：ＯＮ）、特別図柄が小当たり中であると判断し、特別図柄の表示データの更新を行った後（ステップＳ２０８）、特別図柄処理を終える。
【０２９８】
一方、特別図柄小当たり作動フラグに５ＡＨが設定されていなければ（ステップＳ２０２：ＯＦＦ）、特別図柄大当たり作動フラグがＯＮに設定されているか、すなわち、特別図柄大当たり作動フラグに５ＡＨが設定されているかを確認する（ステップＳ２０３）。特別図柄大当たり作動フラグに５ＡＨが設定されていれば（ステップＳ２０３：ＯＮ）、特別図柄が大当たり中であると判断し、特別図柄の表示データの更新を行った後（ステップＳ２０８）、特別図柄処理を終える。
【０２９９】
一方、特別図柄大当たり作動フラグに５ＡＨが設定されていなければ（ステップＳ２０３：ＯＦＦ）、特別図柄の挙動を示す処理状態、すなわち、特別図柄動作ステータスフラグの値を確認する（ステップＳ２０４）。より詳しく説明すると、主制御ＣＰＵ６００ａは、特別図柄動作ステータスフラグの値が００Ｈ又は０１Ｈであれば、特別図柄変動待機中（特別図柄の変動が行われておらず次回の変動のための待機状態であることを示す）であると判定し、特別図柄変動開始処理を行う（ステップＳ２０５）。
【０３００】
＜特別図柄処理：特別図柄変動開始処理の説明＞
この処理について、図３４を用いて詳しく説明すると、主制御ＣＰＵ６００ａは、特別図柄の変動契機となる始動保留球数が０か否かを確認する（ステップＳ３００）。すなわち、主制御ＣＰＵ６００ａは、主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）に格納されているか否かを確認し、始動保留球数が０であると判断した場合（ステップＳ３００：＝０）、特別図柄動作ステータスフラグの値が００Ｈか否かを確認する（ステップＳ３０１）。特別図柄動作ステータスフラグの値が００Ｈであれば（ステップＳ３０１：ＹＥＳ）、特別図柄変動開始処理を終了する。
【０３０１】
一方、特別図柄動作ステータスフラグの値が００Ｈでなければ（ステップＳ３０１：ＮＯ）、主制御ＣＰＵ６００ａは、客待ちデモコマンドを演出制御コマンドＤＩ_ＣＭＤとして演出制御基板９０に送信する（ステップＳ３０２）。なお、客待ちデモコマンド（演出制御コマンドＤＩ_ＣＭＤ）送信処理は、ＣＡＬＬ_Ｓ命令でコールして処理されることとなる。
【０３０２】
次いで、主制御ＣＰＵ６００ａは、特別図柄動作ステータスフラグに００Ｈをセットし（ステップＳ３０３）、特別図柄変動開始処理を終了する。
【０３０３】
他方、主制御ＣＰＵ６００ａは、始動保留球数が０でないと判断した場合（ステップＳ３００：≠０）、始動保留球数を１減算（−１）し（ステップＳ３０４）、始動保留減算コマンドを演出制御コマンドＤＩ_ＣＭＤとして、演出制御基板９０に送信する（ステップＳ３０５）。なお、始動保留減算コマンド（演出制御コマンドＤＩ_ＣＭＤ）送信処理は、ＣＡＬＬ_Ｓ命令でコールして処理されることとなる。
【０３０４】
次いで、主制御ＣＰＵ６００ａは、特別図柄停止の際用いられる乱数値及び変動パターン用乱数値並びに大当たり判定用乱数値（図３３のステップＳ２５３参照）が格納されている主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）内の記憶領域をシフトし（ステップＳ３０６）、始動保留４に対応した特別図柄の当否抽選に用いられる乱数値が格納されていた主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）内の領域に０を設定する（ステップＳ３０７）。
【０３０５】
次いで、主制御ＣＰＵ６００ａは、図３３のステップＳ２５３にて主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）に格納した各始動保留球数（始動保留１〜４）に対応した乱数値（大当たり判定用乱数値）が、特別図柄の大当たりか小当たりかを図３７（ｂ）に示す特別図柄大当たり判定テーブルＳＤＨ_ＴＢＬ、図３７（ｃ）に示す特別図柄小当たり判定テーブルＳＤＰ_ＴＢＬを用いて判定する。すなわち、主制御ＣＰＵ６００ａは、遊技状態を示す特別図柄確変フラグがＯＦＦであれば、大当たり判定用乱数値が、図３７（ｂ）に示す特別図柄大当たり判定テーブルＳＤＨ_ＴＢＬ（通常状態）の下限値（図示では、１０００１）以上で上限値（図示では、１０１６４）以下か否かを判定し、下限値以上で上限値以下であれば、特別図柄大当たり判定フラグに５ＡＨをセットし、ＯＮにする。それ以外の場合は、特別図柄大当たり判定フラグをＯＦＦにする。
【０３０６】
一方、遊技状態を示す特別図柄確変フラグがＯＮであれば、大当たり判定用乱数値が、図３７（ｂ）に示す特別図柄大当たり判定テーブルＳＤＨ_ＴＢＬ（確変状態）の下限値（図示では、１０００１）以上で上限値（図示では、１１６４０）以下か否かを判定し、下限値以上で上限値以下であれば、特別図柄大当たり判定フラグに５ＡＨをセットし、ＯＮにする。それ以外の場合は、特別図柄大当たり判定フラグをＯＦＦにセットする処理を行う。
【０３０７】
他方、主制御ＣＰＵ６００ａは、特別図柄２変動中フラグがＯＦＦであれば、大当たり判定用乱数値が、図３７（ｃ）に示す特別図柄小当たり判定テーブルＳＤＰ_ＴＢＬ（特別図柄１）の下限値（図示では、２０００１）以上で上限値（図示では、２０１６４）以下か否かを判定し、下限値以上で上限値以下であれば、特別図柄小当たり判定フラグに５ＡＨをセットし、ＯＮにする。それ以外の場合は、特別図柄小当たり判定フラグをＯＦＦにセットする処理を行う。
【０３０８】
一方、特別図柄２変動中フラグがＯＮであれば、大当たり判定用乱数値が、図３７（ｃ）に示す特別図柄小当たり判定テーブルＳＤＰ_ＴＢＬ（特別図柄２）の下限値（図示では、２０００１）以上で上限値（図示では、２００８２）以下か否かを判定し、下限値以上で上限値以下であれば、特別図柄小当たり判定フラグに５ＡＨをセットし、ＯＮにする。それ以外の場合は、特別図柄小当たり判定フラグをＯＦＦにセットする処理を行う（ステップＳ３０８）。
【０３０９】
かくして、上記のような当たり判定処理（ステップＳ３０８）を終えた後、主制御ＣＰＵ６００ａは、図３３のステップＳ２５３にて主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）に格納した特別図柄停止の際用いられる乱数値を用いて、特別図柄の停止図柄を生成する（ステップＳ３０９）。
【０３１０】
次いで、主制御ＣＰＵ６００ａは、通常状態、時短状態、潜伏確変状態、確変状態のいずれかの遊技状態に移行する準備を行う（ステップＳ３１０）。
【０３１１】
次いで、主制御ＣＰＵ６００ａは、図３３のステップＳ２５３にて主制御ＲＡＭ６００ｃの通常用ＲＡＭ領域６００ｃａ（図９（ａ）参照）に格納した変動パターン用乱数値を用いて特別図柄の変動パターンの生成を行い、その生成された特別図柄の変動パターンの変動パターンコマンドを演出制御コマンドＤＩ_ＣＭＤとして、演出制御基板９０に送信する（ステップＳ３１１）。この際、図１３（ｂ）、図２６（ａ）に示すような変動時間を取得するプログラムが実行され、特別図柄変動タイマに変動時間が設定される。なお、変動パターンコマンド（演出制御コマンドＤＩ_ＣＭＤ）送信処理は、ＣＡＬＬ_Ｓ命令でコールして処理されることとなる。
【０３１２】
次いで、主制御ＣＰＵ６００ａは、特別図柄変動中フラグに５ＡＨを設定し、ＯＮ状態にする（ステップＳ３１２）。
【０３１３】
次いで、主制御ＣＰＵ６００ａは、液晶表示装置４１に表示される特別図柄の指定を行う図柄指定コマンドを生成し（ステップＳ３１３）、その生成した図柄指定コマンドを演出制御コマンドＤＩ_ＣＭＤとして演出制御基板９０に送信する処理を行う（ステップＳ３１４）。なお、図柄指定コマンド（演出制御コマンドＤＩ_ＣＭＤ）送信処理は、ＣＡＬＬ_Ｓ命令でコールして処理されることとなる。
【０３１４】
次いで、主制御ＣＰＵ６００ａは、特別図柄動作ステータスフラグに０２Ｈを設定し（ステップＳ３１５）、特別図柄変動開始処理を終了する。
【０３１５】
＜特別図柄処理の説明＞
他方、図３２に示すように、特別図柄動作ステータスフラグの値が０２Ｈの場合、主制御ＣＰＵ６００ａは、特別図柄変動中（特別図柄が現在変動中であることを示す）であると判定し、特別図柄変動中処理を行う（ステップＳ２０６）。
【０３１６】
＜特別図柄処理：特別図柄変動中処理の説明＞
この処理について、図３５を用いて詳しく説明すると、主制御ＣＰＵ６００ａは、まず、図３４のステップＳ３１１にて特別図柄変動タイマに設定された変動時間が経過したか、すなわち、０になったか否かを確認する（ステップＳ３５０）。特別図柄変動タイマが０でなければ（ステップＳ３５０：ＮＯ）、主制御ＣＰＵ６００ａは、特別図柄変動中処理を終了する。
【０３１７】
一方、特別図柄変動タイマが０であれば（ステップＳ３５０：ＹＥＳ）、主制御ＣＰＵ６００ａは、図柄停止コマンドを演出制御コマンドＤＩ_ＣＭＤとして演出制御基板９０に送信する（ステップＳ３５１）。なお、図柄停止コマンド（演出制御コマンドＤＩ_ＣＭＤ）送信処理は、ＣＡＬＬ_Ｓ命令でコールして処理されることとなる。
【０３１８】
次いで、主制御ＣＰＵ６００ａは、特別図柄動作ステータスフラグに０３Ｈを設定し、特別図柄変動中フラグに００Ｈを設定する。そしてさらに、主制御ＣＰＵ６００ａは、特別図柄の当否抽選結果を一定時間維持するために、特別図柄変動タイマに例えば約５００ｍｓの時間を設定する（ステップＳ３５２）。その後、主制御ＣＰＵ６００ａは、特別図柄変動中処理を終了する。
【０３１９】
＜特別図柄処理の説明＞
一方、図３２に示すように、特別図柄動作ステータスフラグの値が０３Ｈの場合、主制御ＣＰＵ６００ａは、特別図柄確認中（特別図柄の変動が終了して停止中であることを示す）であると判定し、特別図柄確認時間中処理を行う（ステップＳ２０７）。
【０３２０】
＜特別図柄処理：特別図柄確認中処理の説明＞
この処理について、図３６を用いて詳しく説明すると、主制御ＣＰＵ６００ａは、まず、図３４のステップＳ３１１にて特別図柄変動タイマに設定された変動時間が経過したか、すなわち、０になったか否かを確認する（ステップＳ４００）。特別図柄変動タイマが０でなければ（ステップＳ４００≠０）、主制御ＣＰＵ６００ａは、特別図柄確認時間中処理を終了する。
【０３２１】
一方、特別図柄変動タイマが０であれば（ステップＳ４００＝０）、主制御ＣＰＵ６００ａは、特別図柄動作ステータスフラグに０１Ｈを設定し（ステップＳ４０１）、特別図柄大当たり判定フラグがＯＮに設定されているか（５ＡＨが設定されているか）を確認する（ステップＳ４０２）。特別図柄大当たり判定フラグがＯＮに設定されていれば（５ＡＨが設定されていれば）（ステップＳ４０２：ＹＥＳ）、特別図柄大当たり判定フラグに００Ｈを設定し、特別図柄大当たり作動フラグに５ＡＨを設定し、そして普通図柄時短フラグに００Ｈを設定し、普通図柄確変フラグに００Ｈを設定し、さらに、特別図柄時短フラグに００Ｈを設定し、特別図柄確変フラグに００Ｈを設定し、後述する特別図柄時短回数カウンタ及び特別図柄確変回数カウンタに００Ｈを設定する処理を行う（ステップＳ４０３）。その後、主制御ＣＰＵ６００ａは、特別図柄確認時間中処理を終了する。
【０３２２】
他方、特別図柄大当たり判定フラグがＯＮに設定されていなければ（５ＡＨが設定されていなければ）（ステップＳ４０２：ＮＯ）、主制御ＣＰＵ６００ａは、特別図柄小当たり判定フラグがＯＮに設定されているか（５ＡＨが設定されているか）を確認する（ステップＳ４０４）。特別図柄小当たり判定フラグがＯＮに設定されていれば（５ＡＨが設定されていれば）（ステップＳ４０４：ＹＥＳ）、特別図柄小当たり判定フラグに００Ｈを設定し、特別図柄小当たり作動フラグに５ＡＨを設定する（ステップＳ４０５）。
【０３２３】
主制御ＣＰＵ６００ａは、上記ステップＳ４０５の処理を終えた後、又は、特別図柄小当たり判定フラグがＯＮに設定されていなければ（５ＡＨが設定されていなければ）（ステップＳ４０４：ＮＯ）、特別図柄時短回数カウンタの値が０か否かを確認する（ステップＳ４０６）。
【０３２４】
特別図柄時短回数カウンタの値が０でなければ（ステップＳ４０６：ＮＯ）、特別図柄時短回数カウンタの値を１減算（−１）し（ステップＳ４０７）、主制御ＣＰＵ６００ａは、再度、特別図柄時短回数カウンタの値が０か否かを確認する（ステップＳ４０８）。そして、特別図柄時短回数カウンタの値が０であれば（ステップＳ４０８：ＹＥＳ）、普通図柄時短フラグに００Ｈを設定すると共に、普通図柄確変フラグに００Ｈを設定し、さらに、普通図柄時短フラグに００Ｈを設定する（ステップＳ４０９）。
【０３２５】
上記ステップＳ４０９の処理を終えた後、又は、特別図柄時短回数カウンタの値が０（ステップＳ４０６：ＹＥＳ）、あるいは、特別図柄時短回数カウンタの値が０でなければ（ステップＳ４０８：ＮＯ）、主制御ＣＰＵ６００ａは、特別図柄確変回数カウンタの値が０か否かを確認する（ステップＳ４１０）。特別図柄確変回数カウンタの値が０であれば（ステップＳ４１０：ＹＥＳ）、主制御ＣＰＵ６００ａは、特別図柄確認時間中処理を終了する。
【０３２６】
一方、特別図柄確変回数カウンタの値が０でなければ（ステップＳ４１０：ＮＯ）、主制御ＣＰＵ６００ａは、特別図柄確変回数カウンタの値を１減算（−１）し（ステップＳ４１１）、再度、特別図柄確変回数カウンタの値が０か否かを確認する（ステップＳ４１２）。特別図柄確変回数カウンタの値が０でなければ（ステップＳ４１２：ＮＯ）、主制御ＣＰＵ６００ａは、特別図柄確認時間中処理を終了する。
【０３２７】
一方、特別図柄確変回数カウンタの値が０であれば（ステップＳ４１２：ＹＥＳ）、主制御ＣＰＵ６００ａは、普通図柄時短フラグに００Ｈを設定し、普通図柄確変フラグに００Ｈを設定し、特別図柄時短フラグに００Ｈを設定し、特別図柄確変フラグに００Ｈを設定する処理を行い（ステップＳ４１３）、特別図柄確認時間中処理を終了する。
【０３２８】
＜主制御：特別図柄処理の説明＞
かくして、図３２に示す上記ステップＳ２０５、ステップＳ２０６、ステップＳ２０７のいずれかの処理を終えると、主制御ＣＰＵ６００ａは、特別図柄の表示データの更新を行った後（ステップＳ２０８）、特別図柄処理を終える。
【０３２９】
しかして、以上説明した本実施形態によれば、プログラム容量の削減を図ることができると共に、ＲＯＭのデータ容量の削減を図ることができる。
【０３３０】
また、本実施形態によれば、図９（ｂ）に示す主制御ＲＯＭ６００ｂの通常用プログラム領域６００ｂａに格納されている上述したプログラムの概要で説明したように、ＣＡＬＬ_Ｓ命令が使用される割合は、タイマ割込み処理で使用される割合の方が、初期化処理からタイマ割込み処理を呼び出すメインループ処理までに使用される割合より高くなっている。それゆえ、よりプログラムの処理負荷軽減と、プログラム容量の削減を図ることができる。
【符号の説明】
【０３３１】
１                      パチンコ遊技機
６０                    主制御基板
６００                  ワンチップマイクロコンピュータ
６００ａ                主制御ＣＰＵ（遊技手段、データ読み出し手段）
６００ａ１              汎用レジスタ（記憶手段）
６００ａ４              ＴＰレジスタ（第２アドレス番地情報記憶手段）
６００ｂ                主制御ＲＯＭ（ＲＯＭ）
６００ｂａ              通常用プログラム領域
６００ｂｃ              通常用データ領域（第１記憶領域）
６００ｂｅ              計測用プログラム領域
６００ｂｇ              計測用データ領域（第２記憶領域）
６００ｃ                主制御ＲＡＭ
６００ｃｃ              通常用スタック領域（所定の記憶領域）
６００ｃｇ              計測用スタック領域（所定の記憶領域）
【図１】
2020171352.tif 000003
【図２】
2020171352.tif 000004
【図３】
2020171352.tif 000005
【図４】
2020171352.tif 000006
【図５】
2020171352.tif 000007
【図６】
2020171352.tif 000008
【図７】
2020171352.tif 000009
【図８】
2020171352.tif 000010
【図９】
2020171352.tif 000011
【図１０】
2020171352.tif 000012
【図１１】
2020171352.tif 000013
【図１２】
2020171352.tif 000014
【図１３】
2020171352.tif 000015
【図１４】
2020171352.tif 000016
【図１５】
2020171352.tif 000017
【図１６】
2020171352.tif 000018
【図１７】
2020171352.tif 000019
【図１８】
2020171352.tif 000020
【図１９】
2020171352.tif 000021
【図２０】
2020171352.tif 000022
【図２１】
2020171352.tif 000023
【図２２】
2020171352.tif 000024
【図２３】
2020171352.tif 000025
【図２４】
2020171352.tif 000026
【図２５】
2020171352.tif 000027
【図２６】
2020171352.tif 000028
【図２７】
2020171352.tif 000029
【図２８】
2020171352.tif 000030
【図２９】
2020171352.tif 000031
【図３０】
2020171352.tif 000032
【図３１】
2020171352.tif 000033
【図３２】
2020171352.tif 000034
【図３３】
2020171352.tif 000035
【図３４】
2020171352.tif 000036
【図３５】
2020171352.tif 000037
【図３６】
2020171352.tif 000038
【図３７】
2020171352.tif 000039