JP2021192654A - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP2021192654A
JP2021192654A JP2020099023A JP2020099023A JP2021192654A JP 2021192654 A JP2021192654 A JP 2021192654A JP 2020099023 A JP2020099023 A JP 2020099023A JP 2020099023 A JP2020099023 A JP 2020099023A JP 2021192654 A JP2021192654 A JP 2021192654A
Authority
JP
Japan
Prior art keywords
address
register
data
area
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020099023A
Other languages
English (en)
Inventor
昇平 北田
Shohei Kitada
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanyo Bussan Co Ltd
Original Assignee
Sanyo Bussan Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanyo Bussan Co Ltd filed Critical Sanyo Bussan Co Ltd
Priority to JP2020099023A priority Critical patent/JP2021192654A/ja
Publication of JP2021192654A publication Critical patent/JP2021192654A/ja
Priority to JP2023115565A priority patent/JP2023129485A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Pinball Game Machines (AREA)

Abstract

【課題】各種処理が好適に実行されるようにすることが可能な遊技機を提供すること。【解決手段】第1LDY実行回路156は、利用すべき記憶エリアのアドレスを特定し、当該特定したアドレスに対応する記憶エリアを利用して所定処理を実行する。第1LDY実行回路156において特定されるアドレスに含まれる複数のビットのうち一部のビットの情報である特定制御用基準アドレスを記憶することが可能なIYレジスタ109を備えている。第1LDY実行回路156は、当該アドレスに含まれる複数のビットのうち当該特定制御用基準アドレスとは異なるビットの情報をプログラムから特定し、当該特定した情報及びIYレジスタ109に記憶された特定制御用基準アドレスから利用すべき記憶エリアのアドレスを特定する。【選択図】 図9

Description

本発明は、遊技機に関するものである。
遊技機としてパチンコ機やスロットマシンなどが知られている。例えば、パチンコ機は、遊技者に付与された遊技球を貯留する皿貯留部を遊技機前面部に備えており、当該皿貯留部に貯留された遊技球が遊技球発射装置に案内されて、遊技者の発射操作に応じて遊技領域に向けて発射される。そして、例えば遊技領域に設けられた入球部に遊技球が入球した場合に、例えば払出装置から皿貯留部に遊技球が払い出される。また、パチンコ機においては、皿貯留部として上側皿貯留部と下側皿貯留部とを備えた構成も知られており、この場合、上側皿貯留部に貯留された遊技球が遊技球発射装置に案内され、当該上側皿貯留部にて余剰となった遊技球が下側皿貯留部に排出される(例えば特許文献1参照)。
また、スロットマシンでは、メダルがベットされている状況でスタートレバーが操作されて新たなゲームが開始される場合に制御手段にて抽選処理が実行される。また、抽選処理が実行された場合には制御手段にて回転開始制御が実行されることによりリールの回転が開始され、当該リールの回転中にストップボタンが操作された場合には制御手段にて回転停止制御が実行されることによりリールの回転が停止される。そして、リールの回転停止後の停止結果が抽選処理の当選役に対応したものである場合には、当該当選役に対応した特典が遊技者に付与される。
特開2018−20012号公報
ここで、上記例示等のような遊技機においては、各種処理が好適に実行される必要があり、この点について未だ改良の余地がある。
本発明は、上記例示した事情等に鑑みてなされたものであり、各種処理が好適に実行されるようにすることが可能な遊技機を提供することを目的とするものである。
上記課題を解決すべく請求項1記載の発明は、利用すべき記憶エリアの所定アドレスを特定する特定手段と、
当該特定手段により特定された前記所定アドレスに対応する記憶エリアを利用して所定処理を実行する所定処理実行手段と、
を備えた遊技機において、
前記所定アドレスに含まれる複数ビットのうち一部のビットの情報である第1所定アドレス情報を記憶することが可能な所定記憶手段を備え、
前記特定手段は、前記所定アドレスに含まれる前記複数ビットのうち前記一部のビットとは異なるビットの情報である第2所定アドレス情報をプログラムから特定し、その特定した第2所定アドレス情報及び前記所定記憶手段に記憶された前記第1所定アドレス情報から前記所定アドレスを特定することを特徴とする。
本発明によれば、各種処理が好適に実行されるようにすることが可能となる。
第1の実施形態におけるパチンコ機を示す斜視図である。 パチンコ機の主要な構成を分解して示す斜視図である。 遊技盤の構成を示す正面図である。 (a)〜(j)図柄表示装置の表示面における表示内容を説明するための説明図である。 (a),(b)図柄表示装置の表示面における表示内容を説明するための説明図である。 遊技領域を流下した遊技球の排出に関する構成を説明するための説明図である。 主制御装置の正面図である。 パチンコ機の電気的構成を示すブロック図である。 主側MPUの構成を説明するための説明図である。 (a)主側RAMにおける各種エリアの設定態様を説明するための説明図であり、(b)主側ROMにおけるデータ及びプログラムの設定態様を説明するための説明図である。 当否抽選などに用いられる各種カウンタの内容を説明するための説明図である。 (a)特定制御用のワークエリアにおける各種カウンタの設定態様を説明するための説明図であり、(b)特定制御用のワークエリアにおける各種最大値カウンタの設定態様を説明するための説明図である。 主側ROMに記憶されている各種テーブルを説明するための説明図である。 (a)第1特図用振分テーブルを説明するための説明図であり、(b)第2特図用振分テーブルを説明するための説明図である。 主側CPUにおけるメイン処理を示すフローチャートである。 (a)電源投入設定処理において「0」クリア及び初期設定が行われる記憶エリアを説明するための説明図であり、(b)停電エリアのデータ構成を説明するための説明図である。 (a)LDT命令の機械語のデータ構成を説明するための説明図であり、(b)LD命令の機械語のデータ構成を説明するための説明図であり、(c)主側CPUにて実行される電源投入設定処理のプログラム内容を説明するための説明図である。 (a)第1初期化テーブルのデータ構成を説明するための説明図であり、(b)第2初期化テーブルのデータ構成を説明するための説明図である。 (a),(b)LDH更新命令を説明するための説明図であり、(c)データ設定実行処理のプログラム内容について説明するための説明図である。 (a)〜(g)電源投入設定処理においてデータ設定実行処理が実行される場合におけるDレジスタ、Eレジスタ、Wレジスタ、Aレジスタ及びHLレジスタの状態を説明するための説明図である。 (a)主側CPUにて実行されるクリア対応処理を示すフローチャートであり、(b)クリア時設定処理においてデータ設定が行われる記憶エリアを説明するための説明図であり、(c)セキュリティ信号エリアのデータ構成を説明するための説明図である。 (a)クリア時設定テーブルを説明するための説明図であり、(b)主側CPUにて実行されるクリア時設定処理のプログラム内容を説明するための説明図である。 (a)乱数最大値テーブルを説明するための説明図であり、(b)主側CPUにて実行される乱数最大値設定処理を示すフローチャートである。 (a)第1LDY命令の機械語のデータ構成を説明するための説明図であり、(b)主側CPUにて実行される最大値設定開始処理のプログラム内容を説明するための説明図である。 主側CPUにて実行される設定値更新処理を示すフローチャートである。 主側CPUにて実行されるタイマ割込み処理を示すフローチャートである。 (a)主側CPUにて実行される第1乱数更新処理を示すフローチャートであり、(b)主側CPUにて実行される更新開始設定処理のプログラム内容を説明するための説明図である。 主側CPUにて実行される第2乱数更新処理を示すフローチャートである。 (a)主側CPUにて実行される不正検知処理を示すフローチャートであり、(b)主側CPUにて実行される不正検知用初期化処理のプログラム内容を説明するための説明図である。 主側CPUにて実行される特図特電制御処理を示すフローチャートである。 特図特電アドレステーブルのデータ構成を説明するための説明図である。 (a)〜(d)取得データ指定データから取得開始アドレス及び取得開始ビット目が算出される過程を説明するための説明図であり、(e),(f)特図特電アドレステーブルからHLレジスタに開始アドレスが取得される様子を説明するための説明図である。 (a)主側CPUにて実行される特図特電アドレス取得処理のプログラム内容を説明するための説明図であり、(b)〜(d)「TBL_TZTD_B」を算出する過程を説明するための説明図であり、(e)主側CPUにて実行されるアドレス取得実行処理のプログラム内容を説明するための説明図である。 特図特電カウンタの値とHLレジスタに取得される開始アドレスとの対応関係を説明するための説明図である。 主側CPUにて実行される特図変動開始処理を示すフローチャートである。 (a)当否データエリアの構成を説明するための説明図であり、(b)高確当否テーブルの内容を説明するための説明図であり、(c)高確当否テーブルのデータ構成を説明するための説明図である。 (a)主側CPUにて実行される高確率当否判定処理を示すフローチャートであり、(b)主側CPUにて実行される当否判定用データ取得処理のプログラム内容を説明するための説明図であり、(c)WAレジスタに判定値データが設定される様子を説明するための説明図であり、(d)Bレジスタにフラグデータが設定される様子を説明するための説明図である。 (a)〜(e)高確当否テーブルの開始アドレス、LDB命令(「LDB WA,(HL+).5」)における取得データ指定データ、取得開始アドレス、取得開始ビット目、及び更新後の取得データ指定データを説明するための説明図である。 (a)〜(c)LDB命令(「LDB B,(HL+).1」)における取得データ指定データ、取得開始アドレス、取得開始ビット目、及び更新後の取得データ指定データを説明するための説明図である。 「LDB WA,(HL+).5」というLDB更新命令及び「LDB B,(HL+).1」というLDB更新命令の実行回数と、当該LDB更新命令によりWAレジスタ及びBレジスタに取得されるデータとを説明するための説明図である。 (a)振分データエリアの構成を説明するための説明図であり、(b)第1特図用振分テーブルのデータ構成を説明するための説明図であり、(c)第2特図用振分テーブルのデータ構成を説明するための説明図である。 主側CPUにて実行される第1結果対応処理を示すフローチャートである。 (a)主側CPUにて実行される振分用データ取得処理のプログラム内容を説明するための説明図であり、(b)Wレジスタに第1加算前振分値が設定される様子を説明するための説明図であり、(c)Bレジスタに第1フラグデータが設定される様子を説明するための説明図である。 (a)〜(e)第1特図用振分テーブルの開始アドレス、LDB命令(「LDB W,(HL+).4」)における取得データ指定データ、取得開始アドレス、取得開始ビット目、及び更新後の取得データ指定データを説明するための説明図である。 (a)〜(c)LDB命令(「LDB B,(HL+).2」)における取得データ指定データ、取得開始アドレス、取得開始ビット目、及び更新後の取得データ指定データを説明するための説明図である。 「LDB W,(HL+).4」というLDB更新命令及び「LDB B,(HL+).2」というLDB更新命令の実行回数と、これらのLDB更新命令によりWレジスタ及びBレジスタに取得されるデータとを説明するための説明図である。 変動種別番号と当否判定の結果、振分判定の結果、リーチ発生抽選の結果及び第1特図保留エリアの保留数との対応関係を説明するための説明図である。 主側CPUにて実行される第2結果対応処理を示すフローチャートである。 変動開始用テーブルのデータ構成を説明するための説明図である。 (a)変動パターンテーブルの開始アドレスの取得態様を説明するための説明図であり、(b)主側CPUにて実行される変動用開始アドレス取得処理のプログラム内容を説明するための説明図である。 (a)「0」の変動種別番号に対応する変動パターンテーブルのデータ構成を説明するための説明図であり、(b)特定制御用のワークエリアにおける停止結果データ及び表示継続時間データを格納するためのエリアの構成を説明するための説明図である。 主側CPUにて実行される変動情報設定処理を示すフローチャートである。 (a)保留表示データテーブルのデータ構成を説明するための説明図であり、(b)保留表示データの取得態様を説明するための説明図であり、(c)比較例の保留表示データテーブルのデータ構成を説明するための説明図である。 主側CPUにて実行される表示制御処理を示すフローチャートである。 (a)主側CPUにて実行される第1特図保留表示データ取得処理のプログラム内容を説明するための説明図であり、(b)主側CPUにて実行される保留表示データ取得実行処理のプログラム内容を説明するための説明図であり、(c)主側CPUにて実行される第2特図保留表示データ取得処理のプログラム内容を説明するための説明図であり、(d)主側CPUにて実行される普図保留表示データ取得処理のプログラム内容を説明するための説明図である。 (a)主側CPUにて実行される管理用処理を示すフローチャートであり、(b)非特定制御用のワークエリアにおける各種バッファの設定態様を説明するための説明図である。 主側CPUにて実行される管理実行処理を示すフローチャートである。 非特定制御用のワークエリアの構成を説明するための説明図である。 主側CPUにて実行されるチェック処理を示すフローチャートである。 主側CPUにて実行される通常の入球管理処理を示すフローチャートである。 主側CPUから音光側CPUに対してコマンドを送信するための主制御基板及び音声発光制御基板の電気的構成を説明するための説明図である。 (a)ヘッダのデータ構成を説明するための説明図であり、(b)フッタのデータ構成を説明するための説明図であり、(c)通信用の変動用コマンドのデータ構成を説明するための説明図であり、(d)変換後変動用コマンドのデータ構成を説明するための説明図である。 通信用の変動用コマンドの生成態様を説明するための説明図である。 通信用の通常復帰コマンドのデータ構成を説明するための説明図である。 変換後通常復帰コマンドのデータ構成を説明するための説明図である。 通信用の通常復帰コマンドの生成態様を説明するための説明図である。 (a)通信用の変動用コマンドの変換態様を説明するための説明図であり、(b)通信用の通常復帰コマンドの変換態様を説明するための説明図である。 (a)主側CPUにて実行される変動用コマンド送信処理を示すフローチャートであり、(b)変動用コマンド生成テーブルのデータ構成を説明するための説明図である。 主側CPUにて実行される変動用コマンド設定処理を示すフローチャートである。 主側CPUにて実行される復帰コマンド送信処理を示すフローチャートである。 通常復帰コマンド生成テーブルのデータ構成を説明するための説明図である。 主側CPUにて実行される通常復帰コマンド設定処理を示すフローチャートである。 音光側CPUにて実行されるコマンド受信対応処理を示すフローチャートである。 音光側CPUにて実行される第1コマンド変換処理を示すフローチャートである。 音光側CPUにて実行される第2コマンド変換処理を示すフローチャートである。 第2の実施形態における主制御基板の構成を説明するための説明図である。 (a)更新回路の最大値を説明するための説明図であり、(b)ハード乱数最大値テーブルのデータ構成を説明するための説明図である。 (a)主側CPUにて実行される乱数最大値設定処理を示すフローチャートであり、(b)主側CPUにて実行される更新回路設定処理のプログラム内容を説明するための説明図であり、(b)主側CPUにて実行される最大値設定実行処理のプログラム内容を説明するための説明図である。 第3の実施形態における主側CPUにて実行される表示制御処理を示すフローチャートである。 (a)保留表示データテーブルのデータ構成を説明するための説明図であり、(b)保留表示データの取得態様を説明するための説明図であり、(c)主側CPUにて実行される保留表示取得用処理を示すフローチャートであり、(d)主側CPUにて実行される保留表示取得実行処理のプログラム内容を説明するための説明図である。 (a)第4の実施形態における第1初期化テーブルのデータ構成を説明するための説明図であり、(b)第2初期化テーブルのデータ構成を説明するための説明図であり、(c)乱数最大値テーブルのデータ構成を説明するための説明図である。 主側CPUにて実行される電源投入設定処理のプログラム内容を説明するための説明図であり、主側CPUにて実行されるデータ設定実行処理のプログラム内容を説明するための説明図である。 主側CPUにて実行される乱数最大値設定処理を示すフローチャートである。 (a)第5の実施形態における第2初期化テーブルのデータ構成を説明するための説明図であり、(b)主側CPUにて実行される乱数最大値設定処理を示すフローチャートである。 (a)第6の実施形態における主側MPUの構成を説明するための説明図であり、(b)〜(e)取得データ指定データから取得開始アドレス及び取得開始ビット目が算出される過程を説明するための説明図である。 (a),(b)特図特電アドレステーブルからHLレジスタに開始アドレスが取得される様子を説明するための説明図であり、(c)主側CPUにて実行される特図特電アドレス取得処理のプログラム内容の説明図であり、(d)〜(f)「TBL_TZTD2_B」を算出する過程を説明するための説明図である。 特図特電カウンタの値とHLレジスタに取得される開始アドレスとの対応関係を説明するための説明図である。 主側CPUにて実行されるアドレス取得実行処理を示すフローチャートである。
<第1の実施形態>
以下、遊技機の一種であるパチンコ遊技機(以下、「パチンコ機」という)の第1の実施形態を、図面に基づいて詳細に説明する。図1はパチンコ機10の斜視図、図2はパチンコ機10の主要な構成を分解して示す斜視図である。なお、図2では便宜上パチンコ機10の遊技領域内の構成を省略している。
パチンコ機10は、図1に示すように、当該パチンコ機10の外殻を形成する外枠11と、この外枠11に対して前方に回動可能に取り付けられた遊技機本体12とを有する。外枠11は木製の板材を四辺に連結し構成されるものであって矩形枠状をなしている。パチンコ機10は、外枠11を島設備に取り付け固定することにより、遊技ホールに設置される。なお、パチンコ機10において外枠11は必須の構成ではなく、遊技ホールの島設備に外枠11が備え付けられた構成としてもよい。
遊技機本体12は、図2に示すように、内枠13と、その内枠13の前方に配置される前扉枠14と、内枠13の後方に配置される裏パックユニット15とを備えている。遊技機本体12のうち内枠13が外枠11に対して回動可能に支持されている。詳細には、正面視で左側を回動基端側とし右側を回動先端側として内枠13が前方へ回動可能とされている。
内枠13には、前扉枠14が回動可能に支持されており、正面視で左側を回動基端側とし右側を回動先端側として前方へ回動可能とされている。また、内枠13には、裏パックユニット15が回動可能に支持されており、正面視で左側を回動基端側とし右側を回動先端側として後方へ回動可能とされている。
なお、遊技機本体12には、その回動先端部に施錠装置が設けられており、遊技機本体12を外枠11に対して開放不能に施錠状態とする機能を有しているとともに、前扉枠14を内枠13に対して開放不能に施錠状態とする機能を有している。これらの各施錠状態は、パチンコ機10前面にて露出させて設けられたシリンダ錠17に対して解錠キーを用いて解錠操作を行うことにより、それぞれ解除される。
次に、遊技機本体12の前面側の構成について説明する。
内枠13は、外形が外枠11とほぼ同一形状をなす樹脂ベース21を主体に構成されている。樹脂ベース21の中央部には略楕円形状の窓孔23が形成されている。樹脂ベース21には遊技盤24が着脱可能に取り付けられている。遊技盤24は合板よりなり、遊技盤24の前面に形成された遊技領域PAが樹脂ベース21の窓孔23を通じて内枠13の前面側に露出した状態となっている。
ここで、遊技盤24の構成を図3に基づいて説明する。図3は遊技盤24の正面図である。
遊技盤24には、遊技領域PAの外縁の一部を区画するようにして内レール部25と外レール部26とが取り付けられており、これら内レール部25と外レール部26とにより誘導手段としての誘導レールが構成されている。樹脂ベース21において窓孔23の下方に取り付けられた遊技球発射機構27(図2参照)から発射された遊技球は誘導レールにより遊技領域PAの上部に案内されるようになっている。
ちなみに、遊技球発射機構27は、誘導レールに向けて延びる発射レール27aと、後述する上皿55aに貯留されている遊技球を発射レール27a上に供給する球送り装置27bと、発射レール27a上に供給された遊技球を誘導レールに向けて発射させる電動アクチュエータであるソレノイド27cと、を備えている。前扉枠14に設けられた発射操作装置(又は操作ハンドル)28が回動操作されることによりソレノイド27cが駆動制御され、遊技球が発射される。
遊技盤24には、前後方向に貫通する大小複数の開口部が形成されている。各開口部には一般入賞口31、特電入賞装置32、第1作動口33、第2作動口34、スルーゲート35、可変表示ユニット36、特図ユニット37、普図ユニット38及びラウンド表示部39等がそれぞれ設けられている。
スルーゲート35への入球が発生したとしても遊技球の払い出しは実行されない。一方、一般入賞口31、特電入賞装置32、第1作動口33及び第2作動口34については、入球が発生すると所定数の遊技球の払い出しが実行される。当該賞球個数について具体的には、第1作動口33への入球が発生した場合には、3個の賞球の払い出しが実行され、第2作動口34への入球が発生した場合には、1個の賞球の払い出しが実行され、一般入賞口31への入球が発生した場合には、10個の賞球の払い出しが実行され、特電入賞装置32への入球が発生した場合には、15個の賞球の払い出しが実行される。
なお、上記賞球個数は任意であり、例えば、第2作動口34の方が第1作動口33よりも賞球個数が少ないものの具体的な賞球個数が上記のものとは異なる構成としてもよく、第1作動口33と第2作動口34とで賞球個数を同一としてもよく、第2作動口34の方が第1作動口33よりも賞球個数が多い構成としてもよい。
その他に、遊技盤24の最下部にはアウト口24aが設けられており、各種入賞口等に入らなかった遊技球はアウト口24aを通って遊技領域PAから排出される。また、遊技盤24には、遊技球の落下方向を適宜分散、調整等するために多数の釘24bが植設されているとともに、風車等の各種部材が配設されている。
ここで、入球とは所定の開口部を遊技球が通過することを意味し、開口部を通過した後に遊技領域PAから排出される態様だけでなく、開口部を通過した後に遊技領域PAから排出されることなく遊技領域PAの流下を継続する態様も含まれる。但し、以下の説明では、アウト口24aへの遊技球の入球と明確に区別するために、一般入賞口31、特電入賞装置32、第1作動口33、第2作動口34及びスルーゲート35への遊技球の入球を、入賞とも表現する。
第1作動口33及び第2作動口34は、作動口装置としてユニット化されて遊技盤24に設置されている。第1作動口33及び第2作動口34は共に上向きに開放されている。また、第1作動口33が上方となるようにして両作動口33,34は鉛直方向に並んでいる。第2作動口34には、左右一対の可動片よりなるガイド片としての普電役物34aが設けられている。普電役物34aの閉鎖状態では遊技球が第2作動口34に入賞できず、普電役物34aが開放状態となることで第2作動口34への入賞が可能となる。
第2作動口34よりも遊技球の流下方向の上流側に、スルーゲート35が設けられている。スルーゲート35は縦方向に貫通した図示しない貫通孔を有しており、スルーゲート35に入賞した遊技球は入賞後に遊技領域PAを流下する。これにより、スルーゲート35に入賞した遊技球が第2作動口34へ入賞することが可能となっている。
スルーゲート35への入賞に基づき第2作動口34の普電役物34aが閉鎖状態から開放状態に切り換えられる。具体的には、スルーゲート35への入賞をトリガとして内部抽選が行われるとともに、遊技領域PAにおいて遊技球が通過しない領域である右下の隅部に設けられた普図ユニット38の普図表示部38aにて絵柄の変動表示が行われる。そして、内部抽選の結果が電役開放当選であり当該結果に対応した停止結果が表示されて普図表示部38aの変動表示が終了された場合に普電開放状態へ移行する。普電開放状態では、普電役物34aが所定の態様で開放状態となる。
なお、普図表示部38aは、複数のセグメント発光部が所定の態様で配列されてなるセグメント表示器により構成されているが、これに限定されることはなく、液晶表示装置、有機EL表示装置、CRT又はドットマトリックス表示器等その他のタイプの表示装置によって構成されていてもよい。また、普図表示部38aにて変動表示される絵柄としては、複数種の文字が変動表示される構成、複数種の記号が変動表示される構成、複数種のキャラクタが変動表示される構成又は複数種の色が切り換え表示される構成などが考えられる。
普図ユニット38において、普図表示部38aに隣接した位置には、普図保留表示部38bが設けられている。遊技球がスルーゲート35に入賞した個数は最大4個まで保留され、普図保留表示部38bの点灯によってその保留個数が表示されるようになっている。
第1作動口33又は第2作動口34への入賞をトリガとして当たり抽選が行われる。そして、当該抽選結果は特図ユニット37及び可変表示ユニット36の図柄表示装置41における表示演出を通じて明示される。
特図ユニット37について詳細には、特図ユニット37には、第1特図表示部37aと、第2特図表示部37bとが設けられている。第1特図表示部37aの表示領域は図柄表示装置41の表示面41aよりも狭く、同様に、第2特図表示部37bの表示領域は図柄表示装置41の表示面41aよりも狭い。さらに、第1特図表示部37aと第2特図表示部37bとを合わせた表示領域の面積も、表示面41aよりも狭い。
第1特図表示部37aでは、第1作動口33への入賞をトリガとして当たり抽選が行われることで絵柄の変動表示又は所定の表示が行われる。そして、抽選結果に対応した結果が表示される。また、第2特図表示部37bでは、第2作動口34への入賞をトリガとして当たり抽選が行われることで絵柄の変動表示又は所定の表示が行われる。そして、抽選結果に対応した結果が表示される。
なお、第1特図表示部37a及び第2特図表示部37bは、複数のセグメント発光部が所定の態様で配列されてなるセグメント表示器により構成されているが、これに限定されることはなく、液晶表示装置、有機EL表示装置、CRT又はドットマトリックス表示器等その他のタイプの表示装置によって構成されていてもよい。また、第1特図表示部37a及び第2特図表示部37bにて表示される絵柄としては、複数種の文字が表示される構成、複数種の記号が表示される構成、複数種のキャラクタが表示される構成又は複数種の色が表示される構成などが考えられる。
特図ユニット37において、第1特図表示部37a及び第2特図表示部37bに隣接した位置には、第1特図保留表示部37c及び第2特図保留表示部37dが設けられている。遊技球が第1作動口33に入賞した個数は最大4個まで保留され、第1特図保留表示部37cの点灯によってその保留個数が表示されるようになっている。また、遊技球が第2作動口34に入賞した個数は最大4個まで保留され、第2特図保留表示部37dの点灯によってその保留個数が表示されるようになっている。
図柄表示装置41について詳細には、図柄表示装置41は、液晶ディスプレイを備えた液晶表示装置として構成されており、後述する表示制御装置により表示内容が制御される。なお、図柄表示装置41は、液晶表示装置に限定されることはなく、プラズマディスプレイ装置、有機EL表示装置又はCRTといった表示面を有する他の表示装置であってもよく、ドットマトリクス表示器であってもよい。
図柄表示装置41では、第1作動口33への入賞に基づき第1特図表示部37aにて絵柄の変動表示又は所定の表示が行われる場合にそれに合わせて図柄の変動表示又は所定の表示が行われるとともに、第2作動口34への入賞に基づき第2特図表示部37bにて絵柄の変動表示又は所定の表示が行われる場合にそれに合わせて図柄の変動表示又は所定の表示が行われる。なお、図柄表示装置41では、第1作動口33又は第2作動口34への入賞をトリガとした表示演出だけでなく、当たり当選となった後に移行する後述の開閉実行モード中の表示演出などが行われる。
図柄表示装置41にて図柄の変動表示が行われる場合の表示内容について、図4及び図5を参照して詳細に説明する。図4(a)〜(j)は図柄表示装置41にて変動表示される図柄を個々に示す図であり、図5(a),(b)は図柄表示装置41の表示面41aにおける表示内容を説明するための説明図である。
図4(a)〜(j)に示すように、絵柄の一種である図柄は、「1」〜「9」の数字が各々付された9種類の主図柄と、貝形状の絵図柄からなる副図柄とにより構成されている。より詳しくは、タコ等の9種類のキャラクタ図柄に「1」〜「9」の数字がそれぞれ付されて主図柄が構成されている。
図5(a)に示すように、図柄表示装置41の表示面41aには、複数の表示領域として、上段・中段・下段の3つの図柄列Z1,Z2,Z3が設定されている。各図柄列Z1〜Z3は、主図柄と副図柄が所定の順序で配列されて構成されている。詳細には、上図柄列Z1には、「1」〜「9」の9種類の主図柄が数字の降順に配列されるとともに、各主図柄の間に副図柄が1つずつ配されている。下図柄列Z3には、「1」〜「9」の9種類の主図柄が数字の昇順に配列されるとともに各主図柄の間に副図柄が1つずつ配されている。
つまり、上図柄列Z1と下図柄列Z3は18個の図柄により構成されている。これに対し、中図柄列Z2には、数字の昇順に「1」〜「9」の9種類の主図柄が配列された上で「9」の主図柄と「1」の主図柄との間に「4」の主図柄が付加的に配列され、これら各主図柄の間に副図柄が1つずつ配されている。つまり、中図柄列Z2に限っては、10個の主図柄が配されて20個の図柄により構成されている。そして、表示面41aでは、これら各図柄列Z1〜Z3の図柄が周期性をもって所定の向きにスクロールするように変動表示される。
図5(b)に示すように、表示面41aは、図柄列毎に3個の図柄が停止表示されるようになっており、結果として3×3の計9個の図柄が停止表示されるようになっている。また、表示面41aには、図5(a)に示すように、5つの有効ライン、すなわち左ラインL1、中ラインL2、右ラインL3、右下がりラインL4、右上がりラインL5が設定されている。
第1作動口33又は第2作動口34への入賞に基づいて表示面41aにおいて図柄の変動表示が行われる場合には、各図柄列Z1〜Z3の図柄が周期性をもって所定の向きにスクロールするように変動表示が開始される。そして、上図柄列Z1→下図柄列Z3→中図柄列Z2の順に変動表示から待機表示に切り換えられ、最終的に各図柄列Z1〜Z3にて所定の図柄を静止表示した状態で終了される。また、図柄の変動表示が終了する場合、内部抽選の結果が後述する4R高確大当たり結果である場合にはいずれかの有効ラインに同一の偶数図柄の組合せが形成され、8R高確大当たり結果である場合には「7」図柄以外の同一の奇数図柄の組合せが形成され、16R高確大当たり結果である場合には「7」図柄の組合せが形成される。また、内部抽選の結果が後述する小当たり結果であった場合には、いずれかの有効ライン上に所定の図柄の組み合わせ(例えば「3・4・1」)が形成される。
なお、いずれかの作動口33,34への入賞に基づいて、いずれかの特図表示部37a,37b及び図柄表示装置41にて表示が開始され、所定の結果を表示して終了されるまでが遊技回の1回に相当する。また、図柄表示装置41における図柄の変動表示の態様は上記のものに限定されることはなく任意であり、図柄列の数、図柄列における図柄の変動表示の方向、各図柄列の図柄数などは適宜変更可能である。また、図柄表示装置41にて変動表示される絵柄は上記のような図柄に限定されることはなく、例えば絵柄として数字のみが変動表示される構成としてもよい。
第1作動口33への入賞に基づく当たり抽選にて大当たり当選又は小当たり当選となった場合には、特電入賞装置32への入賞が可能となる開閉実行モードへ移行する。同様に、第2作動口34への入賞に基づく当たり抽選にて大当たり当選又は小当たり当選となった場合にも、特電入賞装置32への入賞が可能となる開閉実行モードへ移行する。
図3の説明に戻り、特電入賞装置32は、遊技盤24の背面側へと通じる図示しない大入賞口を備えているとともに、当該大入賞口を開閉する開閉扉32aを備えている。開閉扉32aは、閉鎖状態及び開放状態のいずれかに配置される。具体的には、開閉扉32aは、通常は遊技球が入賞できない閉鎖状態になっており、内部抽選において開閉実行モードへの移行に当選した場合に遊技球が入賞可能な開放状態に切り換えられるようになっている。ちなみに、開閉実行モードとは、当たり結果となった場合に移行することとなるモードである。なお、閉鎖状態では入賞が不可ではないが開放状態よりも入賞が発生しづらい状態となる構成としてもよい。
ラウンド表示部39には、開閉実行モードにおいて発生するラウンド遊技の回数が表示される。ここで、開閉実行モードには大当たり当選となった場合に発生するラウンド数規定モードと、小当たり当選となった場合に発生する開閉数規定モードとが存在している。ラウンド数規定モードは、予め定められた回数のラウンド遊技を上限として実行される開閉実行モードである。ラウンド遊技とは、予め定められた上限継続時間が経過すること、及び予め定められた上限個数の遊技球が特電入賞装置32に入賞することのいずれか一方の条件が満たされるまで継続する遊技のことである。ラウンド数規定モードにて実行されるラウンド遊技の回数は、その移行の契機となった大当たり結果の種類に応じて異なる。ラウンド表示部39では、そのラウンド遊技の回数の表示又はそれに対応した表示がなされる。また、このラウンド表示部39における表示は、開閉実行モードが開始される場合に開始され、開閉実行モードが終了されて新たな遊技回が開始される場合に終了される。一方、開閉数規定モードは、ラウンド遊技が設定されておらず、特電入賞装置32の開閉回数が上限回数となること、及び予め定められた上限個数の遊技球が特電入賞装置32に入賞することのいずれか一方の条件が満たされることに基づき終了される。開閉数規定モードにおいては、ラウンド表示部39は非表示状態が維持される。
図6は、遊技領域PAを流下した遊技球の排出に関する構成を説明するための説明図である。
既に説明したとおり、一般入賞口31、特電入賞装置32、第1作動口33、第2作動口34及びアウト口24aのいずれかに入球した遊技球は遊技領域PAから排出される。換言すれば、遊技球発射機構27から発射されて遊技領域PAに流入した遊技球は一般入賞口31、特電入賞装置32、第1作動口33、第2作動口34及びアウト口24aのいずれかに入球することにより遊技領域PAから排出されることとなる。一般入賞口31、特電入賞装置32、第1作動口33、第2作動口34及びアウト口24aのいずれかに入球した遊技球は遊技盤24の背面側に導かれる。
遊技盤24の背面には、一般入賞口31、特電入賞装置32、第1作動口33、第2作動口34及びアウト口24aのそれぞれに対応させて排出通路部42〜48が形成されている。排出通路部42〜48に流入した遊技球はその流入した排出通路部42〜48を流下することにより、遊技盤24の背面側において遊技盤24の下端部に導かれ図示しない排出球回収部にて回収される。そして、排出球回収部にて回収された遊技球は、遊技ホールにおいてパチンコ機10が設置された島設備の球循環装置に排出される。
各排出通路部42〜48には遊技球を検知するための各種検知センサ42a〜48aが設けられている。これら排出通路部42〜48及び検知センサ42a〜48aについて以下に説明する。一般入賞口31は既に説明したとおり4個設けられているため、それら4個のそれぞれに対応させて排出通路部42〜44が存在している。この場合、最も左の一般入賞口31に対応する第1排出通路部42及びその右隣りの一般入賞口31に対応する第2排出通路部43のそれぞれに対しては1個ずつ検知センサ42a,43aが設けられている。具体的には、第1排出通路部42の途中位置に検知範囲が存在するようにして第1入賞口検知センサ42aが設けられているとともに、第2排出通路部43の途中位置に検知範囲が存在するように第2入賞口検知センサ43aが設けられている。最も左の一般入賞口31に入球した遊技球は第1排出通路部42を通過する途中で第1入賞口検知センサ42aにて検知され、その右隣りの一般入賞口31に入球した遊技球は第2排出通路部43を通過する途中で第2入賞口検知センサ43aにて検知される。また、右側2個の一般入賞口31に対しては途中位置で合流するように形成された第3排出通路部44が設けられている。当該第3排出通路部44は、2個の一般入賞口31のそれぞれに対応する入口側領域を有しているとともに、それら入口側領域が途中で合流することで1個の出口側領域を有している。第3排出通路部44における出口側領域の途中位置に検知範囲が存在するように第3入賞口検知センサ44aが設けられている。右側2個のいずれかの一般入賞口31に入球した遊技球は第3排出通路部44を通過する途中で第3入賞口検知センサ44aにて検知される。
特電入賞装置32に対応させて第4排出通路部45が存在している。第4排出通路部45の途中位置に検知範囲が存在するようにして特電検知センサ45aが設けられており、特電入賞装置32に入球した遊技球は第4排出通路部45を通過する途中で特電検知センサ45aにて検知される。第1作動口33に対応させて第5排出通路部46が存在している。第5排出通路部46の途中位置に検知範囲が存在するようにして第1作動口検知センサ46aが設けられており、第1作動口33に入球した遊技球は第5排出通路部46を通過する途中で第1作動口検知センサ46aにて検知される。第2作動口34に対応させて第6排出通路部47が存在している。第6排出通路部47の途中位置に検知範囲が存在するようにして第2作動口検知センサ47aが設けられており、第2作動口34に入球した遊技球は第6排出通路部47を通過する途中で第2作動口検知センサ47aにて検知される。アウト口24aに対応させて第7排出通路部48が存在している。第7排出通路部48の途中位置に検知範囲が存在するようにしてアウト口検知センサ48aが設けられており、アウト口24aに入球した遊技球は第7排出通路部48を通過する途中でアウト口検知センサ48aにて検知される。
なお、各種検知センサ42a〜48aのうちいずれか1個の検知センサ42a〜48aにて検知対象となった遊技球は他の検知センサ42a〜48aの検知対象となることはない。また、スルーゲート35に対してもゲート検知センサ49aが設けられており、遊技領域PAを流下する途中でスルーゲート35を通過する遊技球はゲート検知センサ49aにて検知される。
各種検知センサ42a〜49aとしては、いずれも電磁誘導型の近接センサが用いられているが、遊技球を個別に検知できるのであれば使用するセンサは任意である。また、各種検知センサ42a〜49aは後述する主制御装置60と電気的に接続されており、各種検知センサ42a〜49aの検知結果は主制御装置60に出力される。具体的には、各種検知センサ42a〜49aは、遊技球を検知していない状況ではHI状態信号を出力し、遊技球を検知している状況ではLOW状態信号を出力する。なお、各種検知センサ42a〜49aが、遊技球を検知していない状況ではLOW状態信号を出力し、遊技球を検知している状況ではHI状態信号を出力する構成としてもよい。
図2に示すように、上記構成の遊技盤24が樹脂ベース21に取り付けられてなる内枠13の前面側全体を覆うようにして前扉枠14が設けられている。前扉枠14には、図1に示すように、遊技領域PAのほぼ全域を前方から視認することができるようにした窓部51が形成されている。窓部51は、略楕円形状をなし、窓パネル52が嵌め込まれている。窓パネル52は、ガラスによって無色透明に形成されているが、これに限定されることはなく合成樹脂によって無色透明に形成されていてもよく、パチンコ機10前方から窓パネル52を通じて遊技領域PAを視認可能であれば有色透明に形成されていてもよい。
窓部51の上方には表示発光部53が設けられている。また、遊技状態に応じた効果音などが出力される左右一対のスピーカ部54が設けられている。また、窓部51の下方には、手前側へ膨出した上側膨出部55と下側膨出部56とが上下に並設されている。上側膨出部55内側には上方に開口した上皿55aが設けられており、下側膨出部56内側には同じく上方に開口した下皿56aが設けられている。上皿55aは、後述する払出装置より払い出された遊技球を一旦貯留し、一列に整列させながら遊技球発射機構27側へ導くための機能を有する。また、下皿56aは、上皿55a内にて余剰となった遊技球を貯留する機能を有する。
次に、遊技機本体12の背面側の構成について説明する。
図2に示すように、内枠13(具体的には、遊技盤24)の背面には、遊技の主たる制御を司る主制御装置60が搭載されている。図7は主制御装置60の正面図である。図7に示すように、主制御装置60は、主制御基板61が基板ボックス60aに収容されてなる。
主制御基板61の一方の板面である素子搭載面には、主側MPU62が搭載されている。基板ボックス60aは当該基板ボックス60aの外部から当該基板ボックス60a内に収容された主側MPU62を目視することが可能となるように透明に形成されている。なお、基板ボックス60aは無色透明に形成されているが、基板ボックス60aの外部から当該基板ボックス60a内に収容された主側MPU62を目視することが可能であれば有色透明に形成されていてもよい。主制御装置60は基板ボックス60aにおいて主制御基板61の素子搭載面と対向する対向壁部60bがパチンコ機10後方を向くようにして樹脂ベース21の背面に搭載されている。したがって、遊技機本体12を外枠11に対してパチンコ機10前方に開放させて樹脂ベース21の背面を露出させることにより、基板ボックス60aの対向壁部60bを目視することが可能となるとともに当該対向壁部60bを通じて主側MPU62を目視することが可能となる。
基板ボックス60aは複数のケース体60cを前後に組合せることにより形成されているが、これら複数のケース体60cには、これらケース体60cの分離を阻止するとともにこれらケース体60cの分離に際してその痕跡を残すための結合部60eが設けられている。結合部60eは、略直方体形状の基板ボックス60aにおける一辺に複数並設されている。これにより、一部の結合部60eを利用してケース体60cの分離を阻止している状態において当該一部の結合部60eを破壊してケース体60cを分離したとしても、その後に別の結合部60eを結合状態とすることでケース体60cの分離を再度阻止することが可能となる。また、ケース体60cの分離に際して結合部60eが破壊されてその痕跡が残ることにより、結合部60eを目視確認することでケース体60cの分離が不正に行われているか否かを把握することが可能となる。また、基板ボックス60aにおいて結合部60eが並設された一辺とは逆の一辺にはケース体60c間の境界を跨ぐようにして封印シール60fが貼り付けられている。封印シール60fはその引き剥がしに際して粘着層がケース体60cに残る。これにより、ケース体60cの分離に際して封印シール60fが剥がされた場合にはその痕跡を残すことが可能となる。
上記構成の主制御装置60において主制御基板61には、パチンコ機10の設定状態を「設定1」から「設定6」の範囲で変更する契機を生じさせるために遊技ホールの管理者が所有する設定キーが挿入されてON操作される設定キー挿入部68aと、設定キー挿入部68aに対するON操作後においてパチンコ機10の設定状態を順次変更させるために操作される更新ボタン68bと、主制御装置60の主側MPU62に設けられた後述する主側RAM65のデータをクリアするために操作されるリセットボタン68cと、遊技履歴の管理結果を報知するための第1〜第3報知用表示装置69a〜69cと、が設けられている。なお、パチンコ機10の設定状態は「設定1」〜「設定6」の6段階に限定されることはなく複数段階であれば任意である。
これら設定キー挿入部68a、更新ボタン68b、リセットボタン68c及び第1〜第3報知用表示装置69a〜69cはいずれも主制御基板61の素子搭載面に設けられている。また、主制御基板61の素子搭載面は既に説明したとおり基板ボックス60aの対向壁部60bと対向しているが、設定キー挿入部68a、更新ボタン68b及びリセットボタン68cは対向壁部60bにより覆われていない。つまり、対向壁部60bには設定キー挿入部68a、更新ボタン68b及びリセットボタン68cのそれぞれと対向する領域が個別の開口部とされている。これにより、基板ボックス60aの開放を要することなく、設定キー挿入部68aに設定キーを挿入することが可能であり、更新ボタン68bを押圧操作することが可能であり、リセットボタン68cを押圧操作することが可能である。
設定キー挿入部68aに設定キーを挿入して所定方向に回転操作することにより設定キー挿入部68aがON操作された状態となる。その状態でパチンコ機10への動作電力の供給を開始させることで(すなわち主制御装置60の主側MPU62への動作電力の供給を開始させることで)、パチンコ機10の設定状態を変更することが可能な変更可能状態となる。そして、この状態において更新ボタン68bを1回押圧操作する度にパチンコ機10の設定状態が「設定1」〜「設定6」の範囲において昇順で1段階ずつ変更される。なお、「設定6」の状態で更新ボタン68bが操作された場合には「設定1」に更新される。また、設定キー挿入部68aに挿入している設定キーをON操作の位置から所定方向とは反対方向に回転操作して初期位置に復帰させることにより設定キー挿入部68aがOFF操作された状態となる。設定キー挿入部68aがOFF操作された状態となることで上記変更可能状態が終了し、その時点における設定値の状態で遊技を行うことが可能な状態となる。つまり、変更可能状態が終了した後に更新ボタン68bを操作しても設定値を変更することはできない。
設定キー挿入部68aに対するON操作はパチンコ機10への動作電力の供給開始時(すなわち主制御装置60の主側MPU62への動作電力の供給開始時)のみ有効とされる。したがって、主制御装置60の主側MPU62において動作電力の供給開始時の処理が終了した後に設定キー挿入部68aに対するON操作を行ったとしても設定値を変更することはできない。
パチンコ機10の設定状態は当該パチンコ機10における単位時間当たりの有利度を定めるものであり、「設定a」(aは「1」〜「6」の整数)のaが大きい値ほど(すなわち設定値が高いほど)有利度が高くなる。詳細は後述するが大当たり結果の当選確率を決定する当否抽選モードとして相対的に当選確率が低くなる低確率モードと相対的に当選確率が高くなる高確率モードとが存在しており、設定値が高いほど低確率モードにおける大当たり結果の当選確率が高くなるように設定されている。一方、いずれの設定値であっても高確率モードにおける大当たり結果の当選確率は一定となっている。
リセットボタン68cは上記のとおり主側RAM65のデータをクリアするために操作されるが、当該データのクリアを発生させるためにはリセットボタン68cを押圧操作した状態でパチンコ機10への動作電力の供給を開始させる必要がある(すなわち主制御装置60の主側MPU62への動作電力の供給を開始させる必要がある)。リセットボタン68cに対するON操作はパチンコ機10への動作電力の供給開始時(すなわち主制御装置60の主側MPU62への動作電力の供給開始時)のみ有効とされる。したがって、主制御装置60の主側MPU62において動作電力の供給開始時の処理が終了した後にリセットボタン68cを押圧操作したとしても主側RAM65のデータのクリアを行うことはできない。
第1〜第3報知用表示装置69a〜69cはいずれも、LEDによる表示用セグメントが7個配列されたセグメント表示器であるが、これに限定されることはなく多色発光タイプの単一の発光体であってもよく、液晶表示装置であってもよく、有機ELディスプレイであってもよい。第1〜第3報知用表示装置69a〜69cはいずれもその表示面が主制御基板61の素子搭載面が向く方向を向くようにして設置されているとともに、基板ボックス60aの対向壁部60bにより覆われている。この場合に、基板ボックス60aが透明に形成されていることにより、基板ボックス60aの外部から当該基板ボックス60a内に収容された第1〜第3報知用表示装置69a〜69cの表示面を目視することが可能となる。また、既に説明したとおり主制御装置60は基板ボックス60aにおいて主制御基板61の素子搭載面と対向する対向壁部60bがパチンコ機10後方を向くようにして樹脂ベース21の背面に搭載されているため、遊技機本体12を外枠11に対してパチンコ機10前方に開放させて樹脂ベース21の背面をパチンコ機10前方に露出させた場合には、対向壁部60bを通じて第1〜第3報知用表示装置69a〜69cの表示面を目視することが可能となる。
第1〜第3報知用表示装置69a〜69cの表示面においては「0」〜「9」の数字だけではなく、アルファベット文字を含めた各種文字が表示される。第1〜第3報知用表示装置69a〜69cを利用して遊技履歴の管理結果が報知される。パチンコ機10の設定状態を変更することが可能な変更可能状態においては現状の設定値に対応する値が第3報知用表示装置69cにて表示される。なお、当該設定値に対応する値が第1報知用表示装置69aにて表示される構成としてもよく、第2報知用表示装置69bにて表示される構成としてもよい。また、変更可能状態となる前における設定値が第1〜第3報知用表示装置69a〜69cのうちの一の報知用表示装置にて表示されるとともに現状の設定値が第1〜第3報知用表示装置69a〜69cのうちの他の一の報知用表示装置にて表示される構成としてもよい。
図2に示すように、主制御装置60を含めて内枠13の背面側を覆うようにして裏パックユニット15が設置されている。裏パックユニット15は、透明性を有する合成樹脂により形成された裏パック72を備えており、当該裏パック72に払出機構部73及び制御装置集合ユニット74が取り付けられている。
払出機構部73は、遊技ホールの島設備から供給される遊技球が逐次補給されるタンク75と、当該タンク75に貯留された遊技球を払い出すための払出装置76と、を備えている。払出装置76より払い出された遊技球は、当該払出装置76の下流側に設けられた払出通路を通じて、上皿55a又は下皿56aに排出される。なお、払出機構部73には、例えば交流24ボルトの主電源が供給されるとともに、電源のON操作及びOFF操作を行うための電源スイッチを有する裏パック基板が搭載されている。
制御装置集合ユニット74は、払出装置76を制御する機能を有する払出制御装置77と、各種制御装置等で要する所定の電力が生成されて出力されるとともに遊技者による発射操作装置28の操作に伴う遊技球の打ち出しの制御が行われる電源・発射制御装置78と、を備えている。これら払出制御装置77と電源・発射制御装置78とは、払出制御装置77がパチンコ機10後方となるように前後に重ねて配置されている。
裏パック72には、払出機構部73及び制御装置集合ユニット74以外にも、外部端子板79が設けられている。外部端子板79は、パチンコ機10の背面において裏パックユニット15の回動基端側であって上側の隅角部分に設置されている。外部端子板79は、パチンコ機10の状態を遊技ホールの管理コンピュータに認識させるために、所定の信号出力を行うとともに、遊技ホールの管理コンピュータからパチンコ機10に所定の信号を入力するための基板である。管理コンピュータは、外部端子板79を通じて主制御装置60及び払出制御装置77から各種情報を受信する。
<パチンコ機10の電気的構成>
図8は、パチンコ機10の電気的構成を示すブロック図である。
主制御装置60は、遊技の主たる制御を司る主制御基板61と、電源を監視する停電監視基板67と、を具備している。主制御基板61には、主側MPU62が搭載されている。主側MPU62には、制御部及び演算部を含む演算処理装置である主側CPU63の他に、主側ROM64及び主側RAM65が内蔵されている。また、主側MPU62には、後述する音声発光制御装置90に対してコマンドを送信するための第1送信回路101、払出制御装置77に対してコマンドを送信するための第2送信回路102及び払出制御装置77からコマンドを受信するための受信回路103が内蔵されている。なお、主側MPU62には、上記素子以外に、割込回路、タイマ回路、データ入出力回路、乱数発生器としての各種カウンタ回路などが内蔵されている。
主側ROM64は、NOR型フラッシュメモリ及びNAND型フラッシュメモリなどの記憶保持に外部からの電力供給が不要なメモリ(すなわち、不揮発性記憶手段)であり、読み出し専用として利用される。主側ROM64は、主側CPU63により実行される各種の制御プログラムや固定値データを記憶している。
主側RAM65は、SRAM及びDRAMなどの記憶保持に外部からの電力供給が必要なメモリ(すなわち、揮発性記憶手段)であり、読み書き両用として利用される。主側RAM65は、ランダムアクセスが可能であるとともに、同一のデータ容量で比較した場合に主側ROM64よりも読み出しに要する時間が早いものとなっている。主側RAM65は、主側ROM64内に記憶されている制御プログラムの実行に対して各種のデータなどを一時的に記憶する。
主側MPU62の入力側には主制御装置60に設けられた停電監視基板67及び払出制御装置77が接続されている。停電監視基板67には動作電力を供給する機能を有する電源・発射制御装置78が接続されており、主側MPU62には停電監視基板67を介して動作電力が供給される。払出制御装置77から主側CPU63に対して送信されたコマンドは受信回路103にて受信される。
主側MPU62の入力側には、各入球検知センサ42a〜49aといった各種センサが接続されている。各入球検知センサ42a〜49aには、既に説明したとおり、第1入賞口検知センサ42a、第2入賞口検知センサ43a、第3入賞口検知センサ44a、特電検知センサ45a、第1作動口検知センサ46a、第2作動口検知センサ47a、アウト口検知センサ48a及びゲート検知センサ49aが含まれる。これら入球検知センサ42a〜49aの検知結果に基づいて、主側CPU63にて各入球部への入球判定が行われる。また、主側CPU63では第1作動口33への入賞に基づいて各種抽選が実行されるとともに第2作動口34への入賞に基づいて各種抽選が実行される。
主側MPU62の入力側には、主制御基板61に設けられた設定キー挿入部68a、更新ボタン68b及びリセットボタン68cが設けられている。設定キー挿入部68aには図示しないセンサが設けられており、当該センサにより当該設定キー挿入部68aがON操作の位置及びOFF操作の位置のいずれに配置されているのかが検知される。そして、主側CPU63はそのセンサからの検知結果に基づいて設定キー挿入部68aがON操作の位置及びOFF操作の位置のいずれに配置されているのかを特定する。更新ボタン68bには図示しないセンサが設けられており、当該センサにより更新ボタン68bが押圧操作されているか否かが検知される。そして、主側CPU63はそのセンサからの検知結果に基づいて更新ボタン68bが押圧操作されているか否かを特定する。リセットボタン68cには図示しないセンサが設けられており、当該センサによりリセットボタン68cが押圧操作されているか否かが検知される。そして、主側CPU63はそのセンサからの検知結果に基づいてリセットボタン68cが押圧操作されているか否かを特定する。
主側MPU62の出力側には、停電監視基板67、払出制御装置77及び音声発光制御装置90が接続されている。払出制御装置77には、例えば、上記入球部のうち入球の発生が遊技球の払い出しに対応する賞球対応入球部に遊技球が入球したことに基づいて賞球コマンドが送信される。主側CPU63は、払出制御装置77に送信するコマンドを第2送信回路102に設定し、第2送信回路102は当該設定されたコマンドを払出制御装置77に送信する。音声発光制御装置90には、後述する通常復帰コマンド、一部クリア時の復帰コマンド、変動用コマンド、種別コマンド及びオープニングコマンドなどの各種コマンドが送信される。主側CPU63は、音声発光制御装置90に送信するコマンドを第1送信回路101に設定し、第1送信回路101は当該設定されたコマンドを音声発光制御装置90に対して送信する。
主側MPU62の出力側には、特電入賞装置32の開閉扉32aを開閉動作させる特電用の駆動部32b、第2作動口34の普電役物34aを開閉動作させる普電用の駆動部34b、特図ユニット37及び普図ユニット38が接続されている。ちなみに、特図ユニット37には、第1特図表示部37a、第2特図表示部37b、第1特図保留表示部37c及び第2特図保留表示部37dが設けられているが、これらの全てが主側MPU62の出力側に接続されている。同様に、普図ユニット38には、普図表示部38a及び普図保留表示部38bが設けられているが、これらの全てが主側MPU62の出力側に接続されている。主制御基板61には各種ドライバ回路が設けられており、当該ドライバ回路を通じて主側MPU62は各種駆動部及び各種表示部の駆動制御を実行する。
つまり、開閉実行モードにおいては特電入賞装置32が開閉されるように、主側CPU63において特電用の駆動部32bの駆動制御が実行される。また、普電役物34aの開放状態当選となった場合には、普電役物34aが開閉されるように、主側CPU63において普電用の駆動部34bの駆動制御が実行される。また、各遊技回に際しては、主側CPU63において第1特図表示部37a又は第2特図表示部37bの表示制御が実行される。また、普電役物34aを開放状態とするか否かの抽選結果を明示する場合に、主側CPU63において普図表示部38aの表示制御が実行される。また、第1作動口33への入賞が発生した場合、又は第1特図表示部37aにおいて変動表示が開始される場合に、主側CPU63において第1特図保留表示部37cの表示制御が実行され、第2作動口34への入賞が発生した場合、又は第2特図表示部37bにおいて変動表示が開始される場合に、主側CPU63において第2特図保留表示部37dの表示制御が実行され、スルーゲート35への入賞が発生した場合、又は普図表示部38aにおいて変動表示が開始される場合に、主側CPU63において普図保留表示部38bの表示制御が実行される。
主側MPU62の出力側には第1〜第3報知用表示装置69a〜69cが接続されている。遊技履歴の管理結果は、第1〜第3報知用表示装置69a〜69cにおける表示を通じて報知される。また、パチンコ機10の設定状態の変更に際しては第3報知用表示装置69cにて現状の設定値が表示される。これら第1〜第3報知用表示装置69a〜69cは主側CPU63により表示制御される。
停電監視基板67は、主制御基板61と電源・発射制御装置78とを中継し、電源・発射制御装置78から出力される最大電圧である直流安定24ボルトの電圧を監視する。払出制御装置77は、主制御装置60から受信した賞球コマンドに基づいて、払出装置76により賞球や貸し球の払出制御を行うものである。
電源・発射制御装置78は、例えば、遊技ホール等における商用電源(外部電源)に接続されている。そして、その商用電源から供給される外部電力に基づいて主制御基板61や払出制御装置77等に対して各々に必要な動作電力を生成するとともに、その生成した動作電力を供給する。ちなみに、電源・発射制御装置78にはバックアップ用コンデンサなどの電断時用電源部が設けられており、パチンコ機10の電源がOFF状態の場合であっても当該電断時用電源部から主制御装置60の主側RAM65及び払出制御装置77に記憶保持用の電力が供給される。また、電源・発射制御装置78は遊技球発射機構27の発射制御を担うものであり、遊技球発射機構27は所定の発射条件が整っている場合に駆動される。また、払出機構部73には既に説明したとおり電源スイッチが設けられており、電源スイッチがON操作されることによりパチンコ機10への動作電力の供給が開始され、電源スイッチがOFF操作されることによりパチンコ機10への動作電力の供給が停止される。
次に、払出制御装置77について説明する。
払出制御装置77は、遊技球の払い出しの制御を司る払出制御基板81を具備している。払出制御基板81には、払出側MPU82が搭載されている。払出側MPU82には、制御部及び演算部を含む演算処理装置である払出側CPU83の他に、払出側ROM84及び払出側RAM85が内蔵されている。また、払出側MPU82には、主側CPU63に対してコマンドを送信するための払出側送信回路86及び主側CPU63から送信されるコマンドを受信するための払出側受信回路87が内蔵されている。なお、払出側MPU82には、上記素子以外に、割込回路、タイマ回路、データ入出力回路、乱数発生器としての各種カウンタ回路などが内蔵されている。
払出側ROM84は、NOR型フラッシュメモリ及びNAND型フラッシュメモリなどの記憶保持に外部からの電力供給が不要なメモリ(すなわち、不揮発性記憶手段)であり、読み出し専用として利用される。払出側ROM84は、払出側CPU83により実行される各種の制御プログラムや固定値データを記憶している。
払出側RAM85は、SRAM及びDRAMなどの記憶保持に外部からの電力供給が必要なメモリ(すなわち、揮発性記憶手段)であり、読み書き両用として利用される。払出側RAM85は、ランダムアクセスが可能であるとともに、同一のデータ容量で比較した場合に払出側ROM84よりも読み出しに要する時間が早いものとなっている。払出側RAM85は、払出側ROM84内に記憶されている制御プログラムの実行に対して各種のデータなどを一時的に記憶する。
次に、音声発光制御装置90について説明する。
音声発光制御装置90は、主制御装置60から受信した各種コマンドに基づいて、前扉枠14に設けられた表示発光部53及びスピーカ部54を駆動制御するとともに、表示制御装置89を制御するものである。表示制御装置89は、音声発光制御装置90から受信したコマンドに基づいて、図柄表示装置41の表示制御を実行する。
音声発光制御装置90は、演出の制御を司る音声発光制御基板91を具備している。音声発光制御基板91には、音光側MPU92が搭載されている。音光側MPU92には、制御部及び演算部を含む演算処理装置である音光側CPU93の他に、音光側ROM94及び音光側RAM95が内蔵されている。また、音光側MPU92には、主側CPU63から送信されるコマンドを受信するための音光側受信回路96が内蔵されている。なお、音光側MPU92には、上記素子以外に、割込回路、タイマ回路、データ入出力回路、乱数発生器としての各種カウンタ回路などが内蔵されている。
音光側ROM94は、NOR型フラッシュメモリ及びNAND型フラッシュメモリなどの記憶保持に外部からの電力供給が不要なメモリ(すなわち、不揮発性記憶手段)であり、読み出し専用として利用される。音光側ROM94は、音光側CPU93により実行される各種の制御プログラムや固定値データを記憶している。
音光側RAM95は、SRAM及びDRAMなどの記憶保持に外部からの電力供給が必要なメモリ(すなわち、揮発性記憶手段)であり、読み書き両用として利用される。音光側RAM95は、ランダムアクセスが可能であるとともに、同一のデータ容量で比較した場合に音光側ROM94よりも読み出しに要する時間が早いものとなっている。音光側RAM95は、音光側ROM94内に記憶されている制御プログラムの実行に対して各種のデータなどを一時的に記憶する。
次に、主側MPU62の構成について説明する。
図9は主側MPU62の構成を説明するための説明図である。図9に示すように、主側MPU62は、汎用レジスタとして、Wレジスタ104a、Aレジスタ104b、Bレジスタ105a、Cレジスタ105b、Dレジスタ106a、Eレジスタ106b、Hレジスタ107a及びLレジスタ107bを備えている。これら8個の汎用レジスタは、1バイトのレジスタである。これらの汎用レジスタは、対応する2つの汎用レジスタを組み合わせることによりペアレジスタとして使用することもできる。具体的には、Wレジスタ104aとAレジスタ104bとを組み合わせて2バイトのWAレジスタ104として使用することができるとともに、Bレジスタ105aとCレジスタ105bとを組み合わせて2バイトのBCレジスタ105として使用することができる。また、Dレジスタ106aとEレジスタ106bとを組み合わせて2バイトのDEレジスタ106として使用することができるとともに、Hレジスタ107aとLレジスタ107bとを組み合わせて2バイトのHLレジスタ107として使用することができる。
主側MPU62は、インデックスレジスタとして、IXレジスタ108及びIYレジスタ109を備えている。これら2つのインデックスレジスタは、2バイトのレジスタである。また、主側MPU62は、2バイトのTPレジスタ111を備えている。TPレジスタ111には、データテーブルのアドレスを指定する場合に基準となるデータテーブルの基準アドレスとして「9000H」が格納される。詳細は後述するが、当該データテーブルの基準アドレスは、主側ROM64において各種データテーブルが記憶されている領域の先頭アドレスである。TPレジスタ111に格納されたデータテーブルの基準アドレスは、データテーブルのアドレスを指定するためのデータのデータ容量を低減するために利用される。なお、TPレジスタ111に格納された基準アドレスを利用して行われるデータテーブルのアドレス指定の詳細については後述する。
主側MPU62は、1バイトからなるフラグレジスタを備えており、当該フラグレジスタにおける1つのビットにゼロフラグZFが設定されている。ゼロフラグZFは、演算結果が「0」であった場合に「1」がセットされるフラグである。また、フラグレジスタには、キャリフラグ、P/Vフラグ、サインフラグ及びハーフキャリフラグなども設定されている。フラグレジスタに設定されているこれらのフラグの情報は、演算命令、ローテート命令及び入出力命令などの実行結果によって変化することとなる。
<特定制御及び非特定制御>
主側CPU63は特定制御と非特定制御とに区別して各種制御を実行する。具体的には、遊技履歴の管理に関する制御が非特定制御とされ、遊技者による遊技操作に基づき遊技を進行させるための制御を含めて非特定制御以外の制御が特定制御とされている。
特定制御について詳細には、主側CPU63への動作電力の供給が開始された場合に実行されるメイン処理(図15)による制御は全て特定制御に含まれている。タイマ割込み処理による割込みが許可されている状態においては、メイン処理(図15)に割り込むようにしてタイマ割込み処理が定期的に実行されることとなるが、当該タイマ割込み処理の各種処理のうち後述する管理用処理(ステップS518)以外の処理はいずれも特定制御に含まれる。また、管理用処理についても一部は特定制御に含まれる。
図10(a)は主側RAM65における各種エリアの設定態様を説明するための説明図である。図10(a)に示すように、主側RAM65には、「0000H」〜「04B2H」のアドレスが割り当てられている。主側RAM65において各アドレスには1バイトのエリア(以下、1バイトエリアともいう。)が設定されている。なお、本明細書において、数値の後に付された「H」は当該数値が16進数で表記されていることを示す記号である。
主側CPU63にて実行される制御が特定制御と非特定制御とで区別されていることに対応させて、主側RAM65においても特定制御用のワークエリア121のアドレス範囲と、非特定制御用のワークエリア122のアドレス範囲と、特定制御用のスタックエリア123のアドレス範囲と、非特定制御用のスタックエリア124のアドレス範囲とが明確に区別されている。
具体的には、「0000H」〜「02FFH」のアドレス範囲における連続する各アドレスのエリアが特定制御用のワークエリア121として設定されている。また、「0000H」〜「02FFH」のアドレス範囲に連続する「0300H」〜「0302H」は未使用のエリアのアドレスとなっており、その後に続けて「0303H」〜「03FFH」のアドレス範囲における連続する各アドレスのエリアが非特定制御用のワークエリア122として設定されている。また、「0303H」〜「03FFH」のアドレス範囲に連続する「0400H」〜「0402H」のアドレス範囲は未使用のエリアのアドレスとなっており、その後に続けて「0403H」〜「044FH」のアドレス範囲における連続する各アドレスのエリアが特定制御用のスタックエリア123として設定されている。また、「0403H」〜「044FH」のアドレス範囲に連続する「0450H」〜「0452H」のアドレス範囲は未使用のエリアのアドレスとなっており、その後に続けて「0453H」〜「04AFH」のアドレス範囲における連続する各アドレスのエリアが非特定制御用のスタックエリア124として設定されている。なお、上記のような各エリアとアドレスとの関係は、主側RAM65における物理アドレス及び主側CPU63において認識されるメモリマップ上の論理アドレスの両方において設定されている。
上記のように特定制御用のワークエリア121と、非特定制御用のワークエリア122とが区別して設定されていることにより、主側CPU63において特定制御を実行する場合と非特定制御を実行する場合とで、各種演算などを実行する場合において主側RAM65の異なるエリアが使用されることとなる。これにより、特定制御及び非特定制御のうち一方を実行する場合に他方において必要な主側RAM65の情報が消去されてしまうといった事象を発生しづらくさせることが可能となる。
特定制御用のスタックエリア123と、非特定制御用のスタックエリア124とが区別して設定されていることにより、主側CPU63において特定制御を実行する場合と非特定制御を実行する場合とで、主側CPU63のレジスタに記憶された情報を退避する場合及びプログラム上の戻り番地の情報を記憶する場合において主側RAM65の異なるエリアが使用されることとなる。これにより、特定制御及び非特定制御のうち一方を実行している状況において主側CPU63のレジスタに記憶された情報を退避する場合及びプログラム上の戻り番地の情報を記憶する場合に、他方において使用される情報が消去されてしまうといった事象を発生しづらくさせることが可能となる。ちなみに、各スタックエリア123,124への情報の書き込みに際しては主側CPU63にてプッシュ命令が行われ、各スタックエリア123,124からの情報の読み出しに際しては主側CPU63にてポップ命令が行われる。また、各スタックエリア123,124からの情報の読み出しに際しては当該スタックエリア123,124への書き込み順序が後の情報から先に読み出し対象となる。
ここで、主側CPU63において特定制御に対応する処理を実行する場合には、主側CPU63は特定制御用のワークエリア121及び特定制御用のスタックエリア123への情報の書き込みが可能であるとともに、特定制御用のワークエリア121及び特定制御用のスタックエリア123からの情報の読み出しが可能である。一方、主側CPU63において特定制御に対応する処理を実行する場合には、主側CPU63は非特定制御用のワークエリア122及び非特定制御用のスタックエリア124からの情報の読み出しは可能であるものの、非特定制御用のワークエリア122及び非特定制御用のスタックエリア124への情報の書き込みは不可である。これにより、特定制御に対応する処理が実行されている状況において、非特定制御に対応する処理にて利用される情報を誤って消去してしまわないようにすることが可能となる。
また、主側CPU63において非特定制御に対応する処理を実行する場合には、主側CPU63は非特定制御用のワークエリア122及び非特定制御用のスタックエリア124への情報の書き込みが可能であるとともに、非特定制御用のワークエリア122及び非特定制御用のスタックエリア124からの情報の読み出しが可能である。一方、主側CPU63において非特定制御に対応する処理を実行する場合には、主側CPU63は特定制御用のワークエリア121及び特定制御用のスタックエリア123からの情報の読み出しは可能であるものの、特定制御用のワークエリア121及び特定制御用のスタックエリア123への情報の書き込みは不可である。これにより、非特定制御に対応する処理が実行されている状況において、特定制御に対応する処理にて利用される情報を誤って消去してしまわないようにすることが可能となる。
なお、主側RAM65にはパチンコ機10の電源遮断後においてもバックアップ電力が供給されることとなるが、当該バックアップ電力は特定制御用のワークエリア121、非特定制御用のワークエリア122、特定制御用のスタックエリア123及び非特定制御用のスタックエリア124の全てに供給される。これにより、これら特定制御用のワークエリア121、非特定制御用のワークエリア122、特定制御用のスタックエリア123及び非特定制御用のスタックエリア124に記憶された情報は、パチンコ機10の電源遮断後においてもバックアップ電力が供給されている間は記憶保持される。
図10(b)は主側ROM64におけるデータ及びプログラムの設定態様を説明するための説明図である。図10(b)に示すように、主側ROM64には、「9000H」〜「9EFFH」のアドレスが割り当てられている。主側ROM64において各アドレスには1バイトのエリア(1バイトエリア)が設定されている。
主側CPU63にて実行される制御が特定制御と非特定制御とで区別されていることに対応させて、主側ROM64においても特定制御用のデータ及び特定制御用のプログラムと、非特定制御用のデータ及び非特定制御用のプログラムとが記憶されているエリアのアドレスが明確に区別されている。
具体的には、「9000H」〜「94FFH」のアドレス範囲における連続する各アドレスのエリアに特定制御用のデータが集約して記憶されている。また、「9000H」〜「94FFH」のアドレス範囲に連続する「9500H」〜「9502H」のアドレス範囲はデータが記憶されていない未使用のエリアのアドレスとなっており、その後に続けて「9503H」〜「98FFH」のアドレス範囲における連続する各アドレスのエリアに特定制御用のプログラムが集約して記憶されている。また、「9503H」〜「98FFH」のアドレス範囲に連続する「9900H」〜「9902H」のアドレス範囲はデータが記憶されていない未使用のエリアのアドレスとなっており、その後に続けて「9903H」〜「9BFFH」のアドレス範囲における連続する各アドレスのエリアに非特定制御用のデータが集約して記憶されている。また、「9903H」〜「9BFFH」のアドレス範囲に連続する「9C00H」〜「9C02H」のアドレス範囲はデータが記憶されていない未使用のエリアのアドレスとなっており、その後に続けて「9C03」〜「9EFFH」のアドレス範囲における連続する各アドレスのエリアに非特定制御用のプログラムが集約して記憶されている。なお、上記のようなデータ及びプログラムとアドレスとの関係は、主側ROM64における物理アドレス及び主側CPU63において認識されるメモリマップ上の論理アドレスの両方において設定されている。
上記のように特定制御用のデータ及び特定制御用のプログラムと、非特定制御用のデータ及び非特定制御用のプログラムとが、対応する制御を実行するための処理の実行順序とは関係なく、異なる範囲のアドレスのエリアに記憶されていることにより、例えば特定制御用のデータ及び特定制御用のプログラムのみをチェックする場合にはこれら特定制御用のデータ及び特定制御用のプログラムが記憶されたアドレス範囲のエリアのみをチェックすればよく、例えば非特定制御用のデータ及び非特定制御用のプログラムのみをチェックする場合にはこれら非特定制御用のデータ及び非特定制御用のプログラムが記憶されたアドレス範囲のエリアのみをチェックすればよい。よって、データ及びプログラムを特定制御と非特定制御とで区別してチェックする場合の作業を効率的に行うことが可能となる。また、それに伴ってデータ及びプログラムを特定制御と非特定制御とで区別して修正する場合の作業を効率的に行うことが可能となる。
特定制御用のデータ及び特定制御用のプログラムが記憶されたエリアのアドレス範囲と、非特定制御用のデータ及び非特定制御用のプログラムが記憶されたエリアのアドレス範囲との間に何らデータが記憶されていない未使用のエリアのアドレス範囲が設定されていることにより、特定制御用のアドレス範囲と非特定制御用のアドレス範囲との境界をチェック作業に際して把握し易くなる。
特定制御用のアドレス範囲及び非特定制御用のアドレス範囲のそれぞれにおいて、データとプログラムとが、対応する制御を実行するための処理の実行順序とは関係なく、異なる範囲のアドレスのエリアに記憶されていることにより、データとプログラムとで区別してチェックする場合の作業を効率的に行うことが可能となる。また、データが記憶されたエリアのアドレス範囲と、プログラムが記憶されたエリアのアドレス範囲との間に何らデータが記憶されていない未使用のエリアのアドレス範囲が設定されていることにより、データのアドレス範囲とプログラムのアドレス範囲との境界をチェック作業に際して把握し易くなる。
<主側CPU63にて各種抽選を行うための電気的構成>
次に、主側CPU63にて各種抽選を行うための電気的な構成について図11を用いて説明する。
主側CPU63は遊技に際し各種カウンタ情報を用いて、当たり発生抽選、第1特図表示部37aの表示の設定、第2特図表示部37bの表示の設定、図柄表示装置41の図柄表示の設定、普図表示部38aの表示の設定などを行うこととしており、具体的には、図11に示すように、当たり発生の抽選に使用する当たり乱数カウンタC1と、大当たり種別を判定する際に使用する大当たり種別カウンタC2と、図柄表示装置41が外れ変動する際のリーチ発生抽選に使用するリーチ乱数カウンタC3と、当たり乱数カウンタC1の初期値設定に使用する乱数初期値カウンタC4と、各特図表示部37a,37b及び図柄表示装置41における表示継続時間を決定する変動種別カウンタC5と、を用いることとしている。さらに、第2作動口34の普電役物34aを電役開放状態とするか否かの抽選に使用する普電乱数カウンタC6を用いることとしている。なお、上記各カウンタC1〜C6は、特定制御用のワークエリア121における抽選用カウンタエリア112に設けられている。
各カウンタC1〜C6は、その更新の都度前回値に1が加算され、最大値に達した後に0に戻るループカウンタとなっている。各カウンタは短時間間隔で更新される。当たり乱数カウンタC1、大当たり種別カウンタC2及びリーチ乱数カウンタC3の各数値情報は、第1作動口33又は第2作動口34への入賞が発生した場合に、特図保留エリア113に格納される。特図保留エリア113は、第1特図保留エリア115と、第2特図保留エリア116と、特図用の実行エリア117と、を備えている。
第1特図保留エリア115は第1エリア115a、第2エリア115b、第3エリア115c及び第4エリア115dを備えており、第1作動口33への入賞履歴に合わせて、当たり乱数カウンタC1、大当たり種別カウンタC2及びリーチ乱数カウンタC3の各数値情報が特図側の保留情報として、いずれかのエリア115a〜115dに格納される。
この場合、第1エリア115a〜第4エリア115dには、第1作動口33への入賞が複数回連続して発生した場合に、第1エリア115a→第2エリア115b→第3エリア115c→第4エリア115dの順に各数値情報が時系列的に格納されていく。このように4つのエリア115a〜115dが設けられていることにより、第1作動口33への遊技球の入賞履歴が最大4個まで保留記憶されるようになっている。
なお、第1特図保留エリア115において保留記憶可能な数は、4個に限定されることはなく任意であり、2個、3個又は5個以上といったように他の複数であってもよく、単数であってもよい。
第2特図保留エリア116は第1エリア116a、第2エリア116b、第3エリア116c及び第4エリア116dを備えており、第2作動口34への入賞履歴に合わせて、当たり乱数カウンタC1、大当たり種別カウンタC2及びリーチ乱数カウンタC3の各数値情報が特図側の保留情報として、いずれかのエリア116a〜116dに格納される。
この場合、第1エリア116a〜第4エリア116dには、第2作動口34への入賞が複数回連続して発生した場合に、第1エリア116a→第2エリア116b→第3エリア116c→第4エリア116dの順に各数値情報が時系列的に格納されていく。このように4つのエリア116a〜116dが設けられていることにより、第2作動口34への遊技球の入賞履歴が最大4個まで保留記憶されるようになっている。
なお、第2特図保留エリア116において保留記憶可能な数は、4個に限定されることはなく任意であり、2個、3個又は5個以上といったように他の複数であってもよく、単数であってもよい。
特図用の実行エリア117は、いずれかの特図表示部37a,37bにて変動表示を開始する際に、特図用の当否判定や振分判定などを行う対象の保留情報が格納されるエリアである。具体的には、第1特図表示部37aの変動表示を開始する際には、第1特図保留エリア115の第1エリア115aに格納された保留情報が特図用の実行エリア117に移動される。一方、第2特図表示部37bの変動表示を開始する際には、第2特図保留エリア116の第1エリア116aに格納された保留情報が特図用の実行エリア117に移動される。
特図保留エリア113には、第1特図保留数カウンタ118及び第2特図保留数カウンタ119が設けられている。第1特図保留数カウンタ118は、第1特図保留エリア115に格納されている保留情報の数を主側CPU63にて把握可能とするカウンタであるとともに、第2特図保留数カウンタ119は、第2特図保留エリア116に格納されている保留情報の数を主側CPU63にて把握可能とするカウンタである。これらの特図保留数カウンタ118,119は1バイトからなり、これらの特図保留数カウンタ118,119には「0」〜「4」のいずれかの数値情報が格納される。
第1特図保留数カウンタ118の値は、第1特図保留エリア115に保留情報が格納される度に1加算されるとともに、当該第1特図保留エリア115に格納されていた保留情報が特図用の実行エリア117に移動された場合に1減算される。第2特図保留数カウンタ119の値は、第2特図保留エリア116に保留情報が格納される度に1加算されるとともに、当該第2特図保留エリア116に格納されていた保留情報が特図用の実行エリア117に移動された場合に1減算される。
普電乱数カウンタC6に対応した情報は、スルーゲート35への入賞が発生した場合に、普図保留エリア114に格納される。普図保留エリア114は、第1エリア125a、第2エリア125b、第3エリア125c及び第4エリア125dを備えており、スルーゲート35への入賞履歴に合わせて、普電乱数カウンタC6の数値情報が普図側の保留情報として、いずれかのエリア125a〜125dに格納される。
この場合、第1エリア125a〜第4エリア125dには、スルーゲート35への入賞が複数回連続して発生した場合に、第1エリア125a→第2エリア125b→第3エリア125c→第4エリア125dの順に数値情報が時系列的に格納されていく。このように4つのエリア125a〜125dが設けられていることにより、スルーゲート35への遊技球の入賞履歴が最大4個まで保留記憶されるようになっている。
なお、普図保留エリア114において保留記憶可能な数は、4個に限定されることはなく任意であり、2個、3個又は5個以上といったように他の複数であってもよく、単数であってもよい。
普図保留エリア114には、普図用の実行エリア126が設けられている。普図用の実行エリア126は、普図表示部38aにて変動表示を開始する際に、サポート用の当否判定を行う対象の保留情報が格納されるエリアである。具体的には、普図表示部38aの変動表示を開始する際には、普図保留エリア114の第1エリア125aに格納された保留情報が普図用の実行エリア126に移動される。
普図保留エリア114には、普図保留数カウンタ127が設けられている。普図保留数カウンタ127は、普図保留エリア114に格納されている保留情報の数を主側CPU63にて把握可能とするカウンタである。普図保留数カウンタ127は1バイトからなり、普図保留数カウンタ127には「0」〜「4」のいずれかの数値情報が格納される。普図保留数カウンタ127の値は、普図保留エリア114に保留情報が格納される度に1加算されるとともに、当該普図保留エリア114に格納されていた保留情報が普図用の実行エリア126に移動された場合に1減算される。
上記各カウンタC1〜C6について詳細に説明する。図12(a)は特定制御用のワークエリア121における各種カウンタC1〜C6の設定態様を説明するための説明図であり、図12(b)は特定制御用のワークエリア121における各種最大値カウンタCN1〜CN6の設定態様を説明するための説明図である。
図12(a)に示すように、特定制御用のワークエリア121において、「0011H」のアドレスに対応する1バイトエリアに大当たり種別カウンタC2が設けられており、「0012H」のアドレスに対応する1バイトエリアにリーチ乱数カウンタC3が設けられており、「0013H」のアドレスに対応する1バイトエリアに変動種別カウンタC5が設けられており、「0014H」のアドレスに対応する1バイトエリアに普電乱数カウンタC6が設けられている。また、「0015H」〜「0016H」のアドレスに対応する2バイトのエリア(以下、2バイトエリアともいう。)に当たり乱数カウンタC1が設けられているとともに、「0017H」〜「0018H」のアドレスに対応する2バイトエリアに乱数初期値カウンタC4が設けられている。
具体的には、「0015H」のアドレスに対応する1バイトエリアに当たり乱数カウンタC1の下位1バイトのエリアである下位エリアが設定されているとともに、「0016H」のアドレスに対応する1バイトエリアに当該当たり乱数カウンタC1の上位1バイトのエリアである上位エリアが設定されている。また、「0017H」のアドレスに対応する1バイトエリアに乱数初期値カウンタC4の下位エリア(下位1バイトのエリア)が設定されているとともに、「0018H」のアドレスに対応する1バイトエリアに当該乱数初期値カウンタC4の上位エリア(上位1バイトのエリア)が設定されている。このように、特定制御用のワークエリア121において、これらのカウンタC1〜C6は連続する「0011H」〜「0018H」のアドレス範囲に設けられている。
大当たり種別カウンタC2の最大値は「99」であり、リーチ乱数カウンタC3の最大値は「238」であり、変動種別カウンタC5の最大値は「198」であり、普電乱数カウンタC6の最大値は「250」である。また、当たり乱数カウンタC1及び乱数初期値カウンタC4の最大値は「7999」である。
図12(b)に示すように、特定制御用のワークエリア121において、「0019H」のアドレスに対応する1バイトエリアには大当たり種別カウンタC2の最大値(「99」)が設定される大当たり種別用最大値カウンタCN2が設けられており、001AHのアドレスに対応する1バイトエリアにはリーチ乱数カウンタC3の最大値(「238」)が設定されるリーチ用最大値カウンタCN3が設けられており、001BHのアドレスに対応する1バイトエリアには変動種別カウンタC5の最大値(「198」)が設定される変動種別用最大値カウンタCN5が設けられており、001CHのアドレスに対応する1バイトエリアには普電乱数カウンタC6の最大値(「250」)が設定される普電用最大値カウンタCN6が設けられている。また、「001DH」〜「001EH」のアドレスに対応する2バイトエリアには当たり乱数カウンタC1の最大値(「7999」)が設定される当たり用最大値カウンタCN1が設けられているとともに、「001FH」〜「0020H」のアドレスに対応する2バイトエリアには乱数初期値カウンタC4の最大値(「7999」)が設定される初期値用最大値カウンタCN4が設けられている。
具体的には、001DHのアドレスに対応する1バイトエリアに当たり用最大値カウンタCN1の下位エリア(下位1バイトのエリア)が設定されているとともに、001EHのアドレスに対応する1バイトエリアに当該当たり用最大値カウンタCN1の上位エリア(上位1バイトのエリア)が設定されている。また、001FHのアドレスに対応する1バイトエリアに初期値用最大値カウンタCN4の下位エリア(下位1バイトのエリア)が設定されているとともに、0020Hのアドレスに対応する1バイトエリアに当該初期値用最大値カウンタCN4の上位エリア(上位1バイトのエリア)が設定されている。
まず、普電乱数カウンタC6について説明する。普電乱数カウンタC6は、0〜250の範囲内で順に1ずつ加算され、最大値に達した後に「0」に戻る構成となっている。普電乱数カウンタC6は定期的に更新され、スルーゲート35に遊技球が入賞したタイミングで特定制御用のワークエリア121における普図保留エリア114に格納される。そして、所定のタイミングにおいて、その格納された普電乱数カウンタC6の値によって普電役物34aを開放状態に制御するか否かの抽選が行われる。
本パチンコ機10では、普電役物34aによるサポートの態様が相互に異なるように複数種類のサポートモードが設定されている。詳細には、サポートモードには、遊技領域PAに対して同様の態様で遊技球の発射が継続されている状況で比較した場合に、第2作動口34の普電役物34aが単位時間当たりに開放状態となる頻度が相対的に高低となるように、高頻度サポートモードと低頻度サポートモードとが設定されている。
高頻度サポートモードと低頻度サポートモードとでは、普電乱数カウンタC6を用いた普電開放抽選における普電開放状態当選となる確率は同一(例えば、共に4/5)となっているが、高頻度サポートモードでは低頻度サポートモードよりも、普電開放状態当選となった際に普電役物34aが開放状態となる回数が多く設定されており、さらに1回の開放時間が長く設定されている。この場合、高頻度サポートモードにおいて普電開放状態当選となり普電役物34aの開放状態が複数回発生する場合において、1回の開放状態が終了してから次の開放状態が開始されるまでの閉鎖時間は、1回の開放時間よりも短く設定されている。さらにまた、高頻度サポートモードでは低頻度サポートモードよりも、1回の普電開放抽選が行われてから次の普電開放抽選が行われる上で最低限確保される確保時間(すなわち、普図表示部38aにおける1回の表示継続時間)が短く設定されている。
上記のとおり、高頻度サポートモードでは、低頻度サポートモードよりも第2作動口34への入賞が発生する確率が高くなる。換言すれば、低頻度サポートモードでは、第2作動口34よりも第1作動口33への入賞が発生する確率が高くなるが、高頻度サポートモードでは、第1作動口33よりも第2作動口34への入賞が発生する確率が高くなる。
なお、高頻度サポートモードを低頻度サポートモードよりも単位時間当たりに普電開放状態となる頻度を高くする上での構成は、上記のものに限定されることはなく、例えば普電開放抽選における普電開放状態当選となる確率を高くする構成としてもよい。また、1回の普電開放抽選が行われてから次の普電開放抽選が行われる上で確保される確保時間(例えば、スルーゲート35への入賞に基づき普図表示部38aにて実行される変動表示の時間)が複数種類用意されている構成においては、高頻度サポートモードでは低頻度サポートモードよりも、短い確保時間が選択され易い又は平均の確保時間が短くなるように設定されていてもよい。さらには、開放回数を多くする、開放時間を長くする、1回の普電開放抽選が行われてから次の普電開放抽選が行われる上で確保される確保時間を短くする、係る確保時間の平均時間を短くする及び当選確率を高くすることのうち、いずれか1条件又は任意の組合せの条件を適用することで、低頻度サポートモードに対する高頻度サポートモードの有利性を高めてもよい。
普電乱数カウンタC6を用いた普電開放抽選において普電開放状態当選となった場合、普電開放状態となる。当該普電開放状態は、予め定められた回数の普電役物34aの開閉が行われた場合、又は予め定められた上限個数の遊技球が第2作動口34に入賞にした場合に、終了する。これらの内容について具体的には、低頻度サポートモード及び高頻度サポートモードのいずれであっても上記上限個数は10個で共通している。一方、普電役物34aの開閉回数は低頻度サポートモードであれば1回であるのに対して、高頻度サポートモードであれば当該低頻度サポートモードの場合よりも多い複数回であり具体的には3回となっている。また、普電役物34aの1回の開放継続時間は、低頻度サポートモードであれば1秒であるのに対して、高頻度サポートモードであれば2秒となっている。
次に、当たり乱数カウンタC1について説明する。当たり乱数カウンタC1は、0〜7999の範囲内で順に1ずつ加算され、最大値に達した後に「0」に戻る構成となっている。特に当たり乱数カウンタC1が1周した場合、その時点の乱数初期値カウンタC4の値が当該当たり乱数カウンタC1の初期値として読み込まれる。なお、乱数初期値カウンタC4は、当たり乱数カウンタC1と同様のループカウンタである(値=0〜7999)。
当たり乱数カウンタC1は後述するタイマ割込み処理(図26)にて定期的に更新されるとともに後述するメイン処理(図15)にて非定期的に更新される。当たり乱数カウンタC1の値は、遊技球が第1作動口33に入賞したタイミングで特定制御用のワークエリア121における第1特図保留エリア115に格納されるとともに、遊技球が第2作動口34に入賞したタイミングで特定制御用のワークエリア121における第2特図保留エリア116に格納される。
大当たり当選となる乱数の値は、主側ROM64に当否テーブルとして記憶されている。図13は主側ROM64に記憶されている各種テーブルを説明するための説明図である。当否テーブルとして、低確率モード用の低確当否テーブル64a〜64fと、高確率モード用の高確当否テーブル64gとが記憶されている。
低確当否テーブル64a〜64fは、「設定1」〜「設定6」の設定状態に1対1で対応させて設けられている。つまり、パチンコ機10の設定状態が「設定1」である場合に参照される設定1用の低確当否テーブル64aと、パチンコ機10の設定状態が「設定2」である場合に参照される設定2用の低確当否テーブル64bと、パチンコ機10の設定状態が「設定3」である場合に参照される設定3用の低確当否テーブル64cと、パチンコ機10の設定状態が「設定4」である場合に参照される設定4用の低確当否テーブル64dと、パチンコ機10の設定状態が「設定5」である場合に参照される設定5用の低確当否テーブル64eと、パチンコ機10の設定状態が「設定6」である場合に参照される設定6用の低確当否テーブル64fと、が存在している。
これら低確当否テーブル64a〜64fは高い設定値ほど大当たり結果の当選確率が高くなるように設定されている。具体的には、設定1用の低確当否テーブル64aには大当たり結果となる値が25個設定されている。設定1用の低確当否テーブル64aが参照された場合には1/320で大当たり結果となる。設定2用の低確当否テーブル64bには大当たり結果となる値が26個設定されている。設定2用の低確当否テーブル64bが参照された場合には約1/308で大当たり結果となる。設定3用の低確当否テーブル64cには大当たり結果となる値が27個設定されている。設定3用の低確当否テーブル64cが参照された場合には約1/296で大当たり結果となる。設定4用の低確当否テーブル64dには大当たり結果となる値が28個設定されている。設定4用の低確当否テーブル64dが参照された場合には約1/286で大当たり結果となる。設定5用の低確当否テーブル64eには大当たり結果となる値が29個設定されている。設定5用の低確当否テーブル64eが参照された場合には約1/276で大当たり結果となる。設定6用の低確当否テーブル64fには大当たり結果となる値が30個設定されている。設定6用の低確当否テーブル64fが参照された場合には約1/267で大当たり結果となる。これにより、パチンコ機10の設定状態が高い設定値である方が低確率モードにおいて大当たり結果が発生し易くなり、遊技者にとって有利となる。
一方、高確当否テーブル64gは、「設定1」〜「設定6」のいずれの設定状態であっても共通となるように1種類のみ設けられている。高確当否テーブル64gは「設定1」〜「設定6」のいずれの設定状態であっても低確当否テーブル64a〜64fよりも大当たり結果の当選確率が高くなるように設定されている。具体的には、高確当否テーブル64gには大当たり結果となる値が266個設定されており、それ以外の値が外れ結果となる値となっている。高確当否テーブル64gが参照された場合には約1/30で大当たり結果となる。これにより、パチンコ機10の設定状態に関係なく高確率モードを低確率モードよりも有利な状態とすることが可能となる。また、最も低い設定状態である「設定1」であっても高確率モードとなることで最も高い設定状態である「設定6」の低確率モードよりも大当たり結果となる確率を高くすることが可能となる。また、高確率モードについてはパチンコ機10の設定状態による有利又は不利が生じないようにすることが可能となるとともに、高確当否テーブル64gを主側ROM64にて予め記憶するための記憶容量を抑えることが可能となる。
低確当否テーブル64a〜64f及び高確当否テーブル64gには小当たり結果となる値が40個設定されている。当否判定では1/200の確率で小当たり結果となる。当否判定において小当たり結果となる確率は、「設定1」〜「設定6」において同一であるとともに、低確率モード及び高確率モードにおいて同一である。
次に、大当たり種別カウンタC2について説明する。大当たり種別カウンタC2は、0〜99の範囲内で順に「1」ずつ加算され、最大値に達した後に「0」に戻る構成となっている。大当たり種別カウンタC2は定期的に更新される。大当たり種別カウンタC2の値は、遊技球が第1作動口33に入賞したタイミングで第1特図保留エリア115に格納されるとともに、遊技球が第2作動口34に入賞したタイミングで第2特図保留エリア116に格納される。そして、この格納された大当たり種別カウンタC2の値を利用して大当たり結果の種類を振り分ける振分判定が行われる。
大当たり種別カウンタC2に対する大当たり結果の種類の振分先は、主側ROM64に振分テーブルとして記憶されている。振分テーブルとしては、第1特図側保留情報の振分判定に際して使用される第1特図用振分テーブル64hと、第2特図側保留情報の振分判定に際して使用される第2特図用振分テーブル64jと、が設定されている。図14(a)は第1特図用振分テーブル64hの内容を説明するための説明図であり、図14(b)は第2特図用振分テーブル64jの内容を説明するための説明図である。図14(a)及び図14(b)に示すように、振分テーブル64h,64jには、大当たり結果の種類として、4R高確大当たり結果と、8R高確大当たり結果と、16R高確大当たり結果とが設定されている。
4R高確大当たり結果では、ラウンド遊技が4回発生する開閉実行モードとなる。また、開閉実行モードの終了後には、開閉実行モード移行前の当否抽選モードがいずれであっても高確率モードとなるとともに開閉実行モード移行前のサポートモードがいずれであっても高頻度サポートモードとなる。これら高確率モード及び高頻度サポートモードは8回の遊技回が消化されるまで継続する。4R高確大当たり結果を契機とした開閉実行モードが終了した後に開閉実行モードが新たに発生することなく8回の遊技回が消化された場合には、当否抽選モードが低確率モードとなり、サポートモードが低頻度サポートモードとなる。
8R高確大当たり結果では、ラウンド遊技が8回発生する開閉実行モードとなる。また、開閉実行モードの終了後には、開閉実行モード移行前の当否抽選モードがいずれであっても高確率モードとなるとともに開閉実行モード移行前のサポートモードがいずれであっても高頻度サポートモードとなる。これら高確率モード及び高頻度サポートモードは8回の遊技回が消化されるまで継続する。8R高確大当たり結果を契機とした開閉実行モードが終了した後に開閉実行モードが新たに発生することなく8回の遊技回が消化された場合には、当否抽選モードが低確率モードとなり、サポートモードが低頻度サポートモードとなる。
16R高確大当たり結果では、ラウンド遊技が16回発生する開閉実行モードとなる。また、開閉実行モードの終了後には、開閉実行モード移行前の当否抽選モードがいずれであっても高確率モードとなるとともに開閉実行モード移行前のサポートモードがいずれであっても高頻度サポートモードとなる。これら高確率モード及び高頻度サポートモードは8回の遊技回が消化されるまで継続する。16R高確大当たり結果を契機とした開閉実行モードが終了した後に開閉実行モードが新たに発生することなく8回の遊技回が消化された場合には、当否抽選モードが低確率モードとなり、サポートモードが低頻度サポートモードとなる。
第1特図用振分テーブル64h及び第2特図用振分テーブル64jのいずれであっても振分対象となる大当たり結果の種類は4R高確大当たり結果、8R高確大当たり結果及び16R高確大当たり結果のいずれかとなっている。この場合に、第1特図用振分テーブル64hでは、図14(a)に示すように、「0〜99」の大当たり種別カウンタC2の値のうち、「0〜39」が4R高確大当たり結果に対応しており、「40〜79」が8R高確大当たり結果に対応しており、「80〜99」が16R高確大当たり結果に対応している。一方、第2特図用振分テーブル64jでは、図14(b)に示すように、「0〜99」の大当たり種別カウンタC2の値のうち、「0〜29」が4R高確大当たり結果に対応しており、「30〜79」が8R高確大当たり結果に対応しており、「80〜99」が16R高確大当たり結果に対応している。第1特図用振分テーブル64hと第2特図用振分テーブル64jとで16R高確大当たり結果が選択される確率は同一であるものの、第2特図用振分テーブル64jの場合、第1特図用振分テーブル64hよりも4R高確大当たり結果が選択される確率が低く8R高確大当たり結果が選択される確率が高く設定されている。したがって、大当たり当選となった場合に選択され得る大当たり結果の種類としては、第1特図側保留情報を契機とする場合よりも、第2特図側保留情報を契機とする場合の方が遊技者にとって有利である。
第1特図用振分テーブル64hは、「設定1」〜「設定6」のいずれの設定状態であっても共通となるように1種類のみ設けられているとともに、第2特図用振分テーブル64jは、「設定1」〜「設定6」のいずれの設定状態であっても共通となるように1種類のみ設けられている。これにより、振分判定の態様についてパチンコ機10の設定状態による有利又は不利が生じないようにすることが可能となるとともに、第1特図用振分テーブル64h及び第2特図用振分テーブル64jを主側ROM64にて予め記憶するための記憶容量を抑えることが可能となる。
なお、パチンコ機10の設定状態に応じて振分判定の態様が相違する構成としてもよい。例えば、高い設定値ほど16R高確大当たり結果に振り分けられる確率を高くする構成としてもよく、高い設定値ほど16R高確大当たり結果又は8R高確大当たり結果に振り分けられる確率を高くする構成としてもよい。また、高い設定値ほど4R高確大当たり結果に振り分けられる確率を低くする構成としてもよく、高い設定値では4R高確大当たり結果に振り分けられないのに対して低い設定値では4R高確大当たり結果に振り分けられ得る構成としてもよい。これにより、高い設定値ほどラウンド遊技の発生回数が多くなり遊技者にとって有利になる構成とすることができる。
次に、リーチ乱数カウンタC3について説明する。リーチ乱数カウンタC3は、0〜238の範囲内で順に1ずつ加算され、最大値に達した後に「0」に戻る構成となっている。ここで、本パチンコ機10には、図柄表示装置41における表示演出の一種として期待演出が設定されている。期待演出とは、図柄の変動表示を行うことが可能な図柄表示装置41を備え、所定の大当たり結果となる遊技回では最終的な停止結果が付与対応結果となる遊技機において、図柄表示装置41における図柄の変動表示が開始されてから停止結果が導出表示される前段階で、前記付与対応結果となり易い変動表示状態であると遊技者に思わせるための表示状態をいう。なお、付与対応結果について具体的には、いずれかの有効ライン上に同一の数字が付された図柄の組合せが停止表示される。
期待演出には、リーチ表示と、リーチ表示が発生する前段階などにおいてリーチ表示の発生や付与対応結果の発生を期待させるための予告表示との2種類が設定されている。
リーチ表示には、図柄表示装置41の表示面41aに表示される複数の図柄列のうち一部の図柄列について図柄を停止表示させることで、リーチ図柄の組合せを表示し、その状態で残りの図柄列において図柄の変動表示を行う表示状態が含まれる。また、上記のようにリーチ図柄の組合せを表示した状態で、残りの図柄列において図柄の変動表示を行うとともに、その背景画面において所定のキャラクタなどを動画として表示することによりリーチ演出を行うものや、リーチ図柄の組合せを縮小表示させる又は非表示とした上で、表示面41aの略全体において所定のキャラクタなどを動画として表示することによりリーチ演出を行うものが含まれる。
予告表示には、図柄表示装置41の表示面41aにおいて図柄の変動表示が開始されてから、全ての図柄列Z1〜Z3にて図柄が変動表示されている状況において、又は一部の図柄列であって複数の図柄列にて図柄が変動表示されている状況において、図柄列Z1〜Z3上の図柄とは別にキャラクタを表示させる態様が含まれる。また、背景画面をそれまでの態様とは異なる所定の態様とするものや、図柄列Z1〜Z3上の図柄をそれまでの態様とは異なる所定の態様とするものも含まれる。かかる予告表示は、リーチ表示が行われる場合及びリーチ表示が行われない場合のいずれの遊技回においても発生し得るが、リーチ表示の行われる場合の方がリーチ表示の行われない場合よりも高確率で発生するように設定されている。
リーチ表示は、最終的に同一の図柄の組合せが停止表示される遊技回では、リーチ乱数カウンタC3の値に関係なく実行される。一方、小当たり結果に対応した遊技回では、リーチ乱数カウンタC3の値に関係なく実行されない。また、外れ結果に対応した遊技回では、主側ROM64のリーチ用テーブル記憶エリアに記憶されたリーチ用テーブルを参照して所定のタイミングで取得したリーチ乱数カウンタC3の値がリーチ表示の発生に対応していると判定した場合に実行される。
一方、予告表示を行うか否かの決定は、主側CPU63において行うのではなく、音光側CPU93において行われる。この場合、音光側CPU93では、いずれかの大当たり結果又は小当たり結果に対応した遊技回の方が、外れ結果に対応した遊技回に比べ、予告表示が発生し易いこと、及び出現率の低い予告表示が発生し易いことの少なくとも一方の条件を満たすように、予告表示用の抽選処理を実行する。ちなみに、この抽選結果は、図柄表示装置41にて遊技回用の演出が実行される場合に反映される。
次に、変動種別カウンタC5について説明する。変動種別カウンタC5は、例えば0〜198の範囲内で順に1ずつ加算され、最大値に達した後に「0」に戻る構成となっている。変動種別カウンタC5は、第1特図表示部37a又は第2特図表示部37bにおける表示継続時間と、図柄表示装置41における図柄の表示継続時間とを主側CPU63において決定する上で用いられる。具体的には、変動種別カウンタC5の値は、第1特図表示部37a又は第2特図表示部37bにおける変動表示の開始時及び図柄表示装置41による図柄の変動開始時における変動パターン決定に際して取得される。
<主側CPU63の処理構成について>
次に、主側CPU63にて遊技を進行させるために実行される各処理を説明する。かかる主側CPU63の処理としては大別して、電源投入に伴い起動されるメイン処理と、定期的に(本実施の形態では4ミリ秒周期で)起動されるタイマ割込み処理とがある。
<メイン処理>
まず、図15のフローチャートを参照しながらメイン処理を説明する。
メイン処理では、まず電源投入ウエイト処理を実行する(ステップS101)。当該電源投入ウエイト処理では、例えばメイン処理が起動されてからウエイト用の所定時間(具体的には1秒)が経過するまで次の処理に進行することなく待機する。かかる電源投入ウエイト処理の実行期間において図柄表示装置41の動作開始及び初期設定が完了することとなる。その後、主側RAM65のアクセスを許可する(ステップS102)。
その後、「LD IY,0000H」という命令を実行する(ステップS103)。ステップS103では、LD命令により、主側MPU62のIYレジスタ109に特定制御用基準アドレスである「0000H」をロードする。特定制御用基準アドレスは、特定制御用の処理が実行されている状況において特定制御用のワークエリア121における「0000H」〜「00FFH」のアドレスに対応するエリアを指定するアドレス指定を行うためのデータのデータ容量を低減するために利用される。図10(a)に示すように、「0000H」は、特定制御用のワークエリア121における先頭アドレスである。
このように、IYレジスタ109には、特定制御用の処理であるメイン処理の開始時に特定制御用基準アドレス(「0000H」)が格納される。これにより、後述する第1LDY命令及び第2LDY命令において、「0000H」〜「00FFH」のいずれかのアドレス指定を行う場合に当該アドレス指定のデータを2バイトのアドレス情報における下位1バイトのみとすることが可能となる。
その後、「LD TP,9000H」という命令を実行する(ステップS104)。ステップS104では、LD命令により、主側MPU62のTPレジスタ111にデータテーブルの基準アドレスである「9000H」をロードする(ステップS104)。図10(b)を参照しながら既に説明したとおり、主側ROM64において特定制御用のデータは「9000H」〜「94FFH」のアドレス範囲に設定されているとともに、非特定制御用のデータは「9903H」〜「9BFFH」のアドレス範囲に設定されている。主側ROM64においてデータテーブルが記憶されているエリアに対応するアドレスの上位4ビットは「9H」で共通している。TPレジスタ111には、メイン処理の開始時にデータテーブルの基準アドレス(「9000H」)が格納される。これにより、後述するLDT命令において、「9000H」〜「94FFH」,「9903H」〜「9BFFH」のいずれかのアドレス指定を行う場合に当該アドレス指定のデータを2バイトのアドレス情報における下位12ビットのみとすることが可能となる。また、後述するLDB命令及びLDB更新命令においてTPレジスタ111に格納されているデータテーブルの基準アドレスを利用可能とすることができる。
その後、設定キー挿入部68aがON操作されているか否かを判定する(ステップS105)。設定キー挿入部68aがON操作されていない場合(ステップS105:NO)、リセットボタン68cが押圧操作されているか否かを判定する(ステップS106)。リセットボタン68cが押圧操作されている場合(ステップS106:YES)には、一部クリア処理を実行する(ステップS107)。
一部クリア処理(ステップS107)では、特定制御用のワークエリア121に設けられた設定値カウンタの情報を維持しながら、主側RAM65の各エリアを「0」クリアするとともにその「0」クリアしたエリアに対して初期設定を行う。設定値カウンタは、パチンコ機10の設定値を主側CPU63にて把握可能とするカウンタである。設定値カウンタは1バイトからなり、設定値カウンタには「設定1」〜「設定6」に対応する「1」〜「6」の数値情報が格納される。設定キー挿入部68aのON操作を伴わずにリセットボタン68cを押圧操作しながらパチンコ機10への動作電力の供給が開始された場合には設定値の情報(設定値カウンタに格納されている情報)についてはパチンコ機10への動作電力の供給が停止される前の状態に維持したまま主側RAM65のクリア処理が実行されるとともにそのクリア処理が実行された記憶エリアに対して初期設定が行われる。これにより、設定値の変更を要することなく主側RAM65の他のエリアを初期化させることが可能となる。
一部クリア処理(ステップS107)では、まず設定値カウンタの情報をWレジスタ104aに退避させる。その後、主側RAM65における「0000H」〜「02FFH」のアドレスに設定されている特定制御用のワークエリア121を「0」クリアする第1クリア処理を実行するとともに、当該「0」クリア後の特定制御用のワークエリア121について初期設定を行う。その後、Wレジスタ104aに退避させた情報を設定値カウンタに書き込む。その後、主側RAM65における「0403H」〜「044FH」のアドレスに設定されている特定制御用のスタックエリア123を「0」クリアする第2クリア処理を実行するとともに、当該「0」クリア後の特定制御用のスタックエリア123について初期設定を行う。その後、主側RAM65における「0303H」〜「03FFH」のアドレスに設定されている非特定制御用のワークエリア122を「0」クリアする第3クリア処理を実行するとともに、当該「0」クリア後の非特定制御用のワークエリア122について初期設定を行う。その後、主側RAM65における「0453H」〜「04AFH」のアドレスに設定されている非特定制御用のスタックエリア124を「0」クリアする第4クリア処理を実行するとともに、当該「0」クリア後の非特定制御用のスタックエリア124について初期設定を行う。一部クリア処理(ステップS104)における第1クリア処理では、IYレジスタ109に格納されている特定制御用基準アドレス(「0000H」)を利用して、「0」クリアの対象となるエリアの開始アドレス(「0000H」)を指定する。なお、当該第1クリア処理の詳細については後述する。
一部クリア処理(ステップS107)では、主側MPU62の各種レジスタのうちIYレジスタ109及びTPレジスタ111以外のレジスタについて、「0」クリアを行った後に初期設定を行う。一方、IYレジスタ109に特定制御用基準アドレス(「0000H」)が設定されている状態及びTPレジスタ111にデータテーブルの基準アドレス(「9000H」)が設定されている状態は維持する。
ステップS107にて一部クリア処理を実行した後は、特定制御用のワークエリア121に設けられた一部クリアフラグに「1」をセットする(ステップS108)。一部クリアフラグは、一部クリア処理(ステップS107)が実行されたことを主側CPU63にて把握可能とするフラグである。ステップS108にて一部クリアフラグに「1」がセットされることにより、後述する復帰コマンド送信処理(ステップS113)において、一部クリア処理(ステップS107)が実行されたことに対応する復帰コマンド(一部クリア時の復帰コマンド)を音光側CPU93に対して送信することが可能となる。また、一部クリアフラグに「1」がセットされることにより、後述するクリア対応処理(ステップS120)において後述するクリア時設定処理(図22(b))を実行することが可能となる。
リセットボタン68cが押圧操作されていない場合(ステップS106:NO)には、停電フラグ131a(図16(b))に「1」がセットされているか否かを判定する(ステップS109)。停電フラグ131aは特定制御用のワークエリア121に設けられており、主側CPU63への動作電力の供給が停止される場合において予め定められた停電時処理が正常に実行された場合には当該停電フラグ131aに「1」がセットされることとなる。なお、停電フラグ131aの詳細については後述する。
停電フラグ131aに「1」がセットされている場合(ステップS109:YES)には、チェックサムの算出結果が電源遮断時に保存したチェックサムと一致するか否かすなわち記憶保持されたデータの有効性を判定する(ステップS110)。
ステップS108の処理を実行した場合、又はステップS110にて肯定判定をした場合には、パチンコ機10の設定値が正常か否かを判定する(ステップS111)。ステップS111では、特定制御用のワークエリア121に設けられた設定値カウンタの値に基づいてパチンコ機10の設定値を把握する。既に説明したとおり、設定値カウンタには「設定1」〜「設定6」に対応する「1」〜「6」の数値情報が格納される。ステップS111では、設定値カウンタの値が「1」〜「6」のいずれかである場合に正常であると判定し、「0」又は「7」以上である場合に異常であると判定する。
ステップS109〜ステップS111のいずれかで否定判定をした場合には動作禁止処理を実行する。動作禁止処理では、ホール管理者等にエラーの発生を報知するためのエラー報知処理を実行した後に(ステップS112)、無限ループとなる。当該動作禁止処理は、一部クリア処理(ステップS107)又は後述する全部クリア処理(ステップS114)が実行されることにより解除される。
ステップS109〜ステップS111の全てにおいて肯定判定をした場合には、復帰コマンド送信処理を実行する(ステップS113)。復帰コマンド送信処理では、特定制御用のワークエリア121における一部クリアフラグに「1」がセットされている場合には音光側CPU93に対して一部クリア時の復帰コマンドを送信する。一部クリア時の復帰コマンドは一部クリア処理(ステップS107)が実行されたことを音光側CPU93に認識させるためのコマンドである。音光側CPU93は、一部クリア時の復帰コマンドを受信した場合、一部クリア処理(ステップS107)が実行されたことを報知する表示が行われるように図柄表示装置41の表示制御を行う。これにより、一部クリア処理(ステップS107)が実行されたことを遊技ホールの管理者に報知することができる。また、ステップS113における復帰コマンド送信処理では、一部クリアフラグに「1」がセットされていない場合、音光側CPU93に対して通常復帰コマンドを送信する。通常復帰コマンドは電源復帰に際して一部クリア処理(ステップS107)及び後述する全部クリア処理(ステップS114)が実行されなかったことを音光側CPU93に認識させるためのコマンドである。音光側CPU93は、通常復帰コマンドを受信した場合、電源復帰に際して一部クリア処理(ステップS107)及び全部クリア処理(ステップS114)が実行されなかったことを報知する表示が行われるように図柄表示装置41の表示制御を行う。これにより、電源復帰に際して一部クリア処理(ステップS107)及び全部クリア処理(ステップS114)が実行されなかったことを遊技ホールの管理者に報知することができる。なお、復帰コマンド送信処理の詳細については後述する。
一方、設定キー挿入部68aがON操作されている場合(ステップS105:YES)には全部クリア処理を実行する(ステップS114)。全部クリア処理では、主側RAM65においてパチンコ機10の設定状態を示す設定値の情報が設定されたエリアも含めて、主側RAM65の全てのエリアを「0」クリアするとともにその「0」クリアしたエリアに対して初期設定を行う。つまり、パチンコ機10の設定状態を変更するための操作が行われている場合にはリセットボタン68cが押圧操作されていなくても主側RAM65の全てのエリアが「0」クリアされるとともにそのクリア処理が実行された記憶エリアに対して初期設定が行われる。なお、パチンコ機10の設定状態を変更するための操作が行われている場合であってもリセットボタン68cが押圧操作されていない場合には主側RAM65の全部クリア処理が実行されずに、パチンコ機10の設定状態を変更するための操作が行われているとともにリセットボタン68cが押圧操作されている場合に全部クリア処理が実行される構成としてもよい。
全部クリア処理(ステップS114)では、まず主側RAM65における「0000H」〜「02FFH」のアドレスに設定されている特定制御用のワークエリア121を「0」クリアする第1クリア処理を実行するとともに、当該「0」クリア後の特定制御用のワークエリア121について初期設定を行う。その後、主側RAM65における「0403H」〜「044FH」のアドレスに設定されている特定制御用のスタックエリア123を「0」クリアする第2クリア処理を実行するとともに、当該「0」クリア後の特定制御用のスタックエリア123について初期設定を行う。その後、主側RAM65における「0303H」〜「03FFH」のアドレスに設定されている非特定制御用のワークエリア122を「0」クリアする第3クリア処理を実行するとともに、当該「0」クリア後の非特定制御用のワークエリア122について初期設定を行う。その後、主側RAM65における「0453H」〜「04AFH」のアドレスに設定されている非特定制御用のスタックエリア124を「0」クリアする第4クリア処理を実行するとともに、当該「0」クリア後の非特定制御用のスタックエリア124について初期設定を行う。全部クリア処理(ステップS114)における第1クリア処理では、IYレジスタ109に格納されている特定制御用基準アドレス(「0000H」)を利用して、「0」クリアの対象となるエリアの開始アドレス(「0000H」)を指定する。なお、当該第1クリア処理の詳細については後述する。
全部クリア処理(ステップS114)では、既に説明した一部クリア処理(ステップS107)と同様に、主側MPU62の各種レジスタのうちIYレジスタ109及びTPレジスタ111以外のレジスタについて、「0」クリアを行った後に初期設定を行う。一方、IYレジスタ109に特定制御用基準アドレス(「0000H」)が設定されている状態及びTPレジスタ111にデータテーブルの基準アドレス(「9000H」)が設定されている状態は維持する。
ステップS114にて全部クリア処理を実行した後は、特定制御用のワークエリア121に設けられた全部クリアフラグに「1」をセットする(ステップS115)。全部クリアフラグは、全部クリア処理(ステップS114)が実行されたことを主側CPU63にて把握可能とするフラグである。ステップS115にて全部クリアフラグに「1」がセットされることにより、後述するクリア対応処理(ステップS120)において後述するクリア時設定処理(図22(b))を実行することが可能となる。
その後、音光側CPU93に対して全部クリア時の復帰コマンドを送信する(ステップS116)。全部クリア時の復帰コマンドは、電源復帰に際して全部クリア処理(ステップS114)が実行されたことを音光側CPU93に対して認識させるためのコマンドである。音光側CPU93は、全部クリア時の復帰コマンドを受信した場合、全部クリア処理(ステップS114)が実行されたことを報知する表示が行われるように図柄表示装置41の表示制御を行う。これにより、全部クリア処理(ステップS114)が実行されたことを遊技ホールの管理者に報知することができる。その後、後述する設定値更新処理を実行する(ステップS117)。
ステップS113の処理を行った場合、又はステップS117の処理を行った場合には、電源投入設定処理を実行する(ステップS118)。電源投入設定処理では、停電フラグ131aの初期化といった特定制御用のワークエリア121における所定のエリアについて初期設定を行う。なお、電源投入設定処理の詳細については後述する。
その後、乱数最大値設定処理を実行する(ステップS119)。乱数最大値設定処理では、最大値カウンタCN1〜CN6に、当たり乱数カウンタC1、大当たり種別カウンタC2、リーチ乱数カウンタC3、乱数初期値カウンタC4、変動種別カウンタC5及び普電乱数カウンタC6の最大値を設定する。その後、クリア対応処理を実行する(ステップS120)。なお、乱数最大値設定処理(ステップS119)及びクリア対応処理(ステップS120)の詳細については後述する。
その後、ステップS121〜ステップS124の残余処理に進む。主側CPU63はタイマ割込み処理を定期的に実行する構成であるが、メイン処理が開始された段階においてはタイマ割込み処理の発生が禁止されている。このタイマ割込み処理の発生が禁止された状態はステップS120の処理が完了した後にステップS121の処理が実行されることにより解除され、タイマ割込み処理の実行が許可される。主側CPU63はタイマ割込み処理を定期的に実行する構成であるが、1のタイマ割込み処理と次のタイマ割込み処理との間に残余時間が生じることとなる。この残余時間は各タイマ割込み処理の処理完了時間に応じて変動することとなるが、かかる不規則な時間を利用してステップS121〜ステップS124の残余処理を繰り返し実行する。この点、当該ステップS121〜ステップS124の残余処理は非定期的に実行される非定期処理であると言える。
残余処理では、まずタイマ割込み処理の発生を禁止している状態から許可する状態へ切り換える割込み許可の設定を行う(ステップS121)。その後、タイマ割込み処理の発生を禁止するために割込み禁止の設定を行う(ステップS122)。その後、乱数初期値カウンタC4の更新を行う乱数初期値更新処理を実行する(ステップS123)。乱数初期値更新処理では、乱数初期値カウンタC4の値を1加算するとともに、当該1加算後の値が最大値である「7999」を超えた場合に乱数初期値カウンタC4の値を「0」クリアする。
その後、変動種別カウンタC5の更新を行う変動用カウンタ更新処理を実行する(ステップS124)。変動用カウンタ更新処理では、変動種別カウンタC5の値を1加算するとともに、当該1加算後の値が最大値である「250」を超えた場合に変動種別カウンタC5の値を「0」クリアする。その後、ステップS121に戻り、ステップS121〜ステップS124の残余処理を繰り返す。
次に、メイン処理(図15)のステップS118における電源投入設定処理について説明する。
図16(a)は電源投入設定処理において「0」クリア及び初期設定が行われる記憶エリアを説明するための説明図である。図16(a)に示すように、特定制御用のワークエリア121における「0001H」のアドレスには停電エリア131が設けられており、「0008H」〜「0009H」のアドレスには不正監視タイマカウンタ132が設けられており、「0021H」のアドレスには不正電波検知カウンタ133が設けられており、「0022H」のアドレスには不正磁気検知カウンタ134が設けられており、「0023H」のアドレスには異常振動検知カウンタ135が設けられている。
電源投入設定処理において「0」クリア及び初期設定が行われる記憶エリアを特定するためのアドレスの上位1バイトは「00H」で共通している。電源投入設定処理では、Dレジスタ106aに当該「00H」を設定するとともに、当該アドレスの下位1バイトをデータテーブルから読み出してEレジスタ106bに設定することによりDEレジスタ106に当該アドレスの全体(2バイト)が格納されている状態とする。そして、DEレジスタ106に格納されているアドレス情報を用いて「0」クリア及び初期設定を行うエリアを指定する。これにより、アドレス指定のために主側ROM64に記憶しておくデータのデータ容量を低減することができる。
停電エリア131は、停電フラグ131aを含む1バイトのエリアである。図16(b)は停電エリア131のデータ構成を説明するための説明図である。図16(b)に示すように、停電エリア131における最下位ビット(第0ビット)には停電フラグ131aが設定されているとともに、停電エリア131における第1〜第7ビットは未使用のビットとなっている。
図示は省略するが、本パチンコ機10には、不正な電波を検知するための不正電波検知センサ、不正な磁気を検知するための不正磁気検知センサ、及び異常な振動を検知するための異常振動検知センサが設けられている。これらの検知センサの検知信号は、主側MPU62の入力側に入力される。主側CPU63は、不正電波検知センサから受信する検知信号がHI状態である場合に不正な電波が検知されている状態であることを把握し、不正磁気検知センサから受信する検知信号がHI状態である場合に不正な磁気が検知されている状態であることを把握し、異常振動検知センサから受信する検知信号がHI状態である場合に異常な振動が検知されている状態であることを把握する。不正電波検知カウンタ133は、不正な電波が検知されている状態が1回の不正監視基準期間(具体的には約262秒)中に5回特定されたか否かを主側CPU63にて把握可能とするカウンタであり、不正磁気検知カウンタ134は、不正な磁気が検知されている状態が1回の不正監視基準期間中に10回特定されたか否かを主側CPU63にて把握可能とするカウンタであり、異常振動検知カウンタ135は、異常な振動が検知されている状態が1回の不正監視基準期間中に15回特定されたか否かを主側CPU63にて把握可能とするカウンタである。これらの検知カウンタ133〜135は1バイトからなる。不正電波検知カウンタ133には初期値として「5」(「0101B」)が設定され、不正磁気検知カウンタ134には初期値として「10」(「1010B」)が設定され、異常振動検知カウンタ135には初期値として「15」(「1111B」)が設定される。1回の不正監視基準期間は約262秒間であり、不正監視基準期間が終了した場合には次の不正監視基準期間が開始される。つまり、不正監視基準期間は、約262秒の周期で繰り返し設定される。なお、本明細書において数値の後に付された「B」は当該数値が2進数で表記されていることを示す記号である。
不正磁気検知カウンタ134の初期値は、遊技者の持ち物に含まれていた磁性体が遊技盤24に偶然に接近した場合に誤って不正と認識されないように、不正電波検知カウンタ133の初期値よりも大きく設定されている。また、異常振動検知カウンタ135の初期値は、遊技者が偶然にパチンコ機10に接触して軽く振動した場合に誤って不正と認識されないように、不正電波検知カウンタ133の初期値及び不正磁気検知カウンタ134の初期値よりも大きく設定されている。なお、これらの検知カウンタ133〜135の初期値は、上記の値に限定されることはなく、任意である。
主側CPU63は、不正な電波が検知されている状態で後述するタイマ割込み処理(図26)が実行される度に不正電波検知カウンタ133の値を1減算し、不正な磁気が検知されている状態で後述するタイマ割込み処理(図26)が実行される度に不正磁気検知カウンタ134の値を1減算し、異常な振動が検知されている状態で後述するタイマ割込み処理(図26)が実行される度に異常振動検知カウンタ135の値を1減算する。そして、これらの検知カウンタ133〜135のうちいずれかの値が「0」となった場合に不正検知対応処理を実行する。不正検知対応処理では特定制御用のワークエリア121に設けられた遊技停止フラグに「1」をセットする。遊技停止フラグは、遊技の進行を停止している状態であるか否かを主側CPU63にて把握可能とするフラグである。遊技停止フラグに「1」がセットされることにより、遊技の進行を停止している状態となる。なお、不正検知対応処理の詳細については後述する。
不正検知対応処理は、不正な電波が検知されている状態が1回の不正監視基準期間中に5回に亘って特定された場合、不正な磁気が検知されている状態が1回の不正監視基準期間中に10回に亘って特定された場合、又は異常な振動が検知されている状態が1回の不正監視基準期間中に15回に亘って特定された場合に実行される。このため、不正電波検知センサ、不正磁気検知センサ又は異常振動検知センサから受信している検知信号のLOW状態からHI状態への立ち上がりが1回検出された場合に直ちに不正検知対応処理を実行する構成と比較して、ノイズの影響により誤って不正検知対応処理が実行されてしまう可能性を低減することができる。
不正監視タイマカウンタ132は、不正検知対応処理が実行されることなく不正監視基準期間が経過したことを主側CPU63にて把握可能とする2バイトのカウンタである。不正監視タイマカウンタ132の初期値は「0」である。不正監視タイマカウンタ132は、後述するタイマ割込み処理(図26)が実行される度に1加算され、最大値である「65535」を超えた場合に1周して「0」となる。主側CPU63は、不正監視タイマカウンタ132の値が1周する度に不正監視基準期間が経過したことを特定するとともに、不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135に初期値をセットする。不正監視基準期間が経過する度にこれらの検知カウンタ133〜135の初期設定を行う構成であることにより、不正監視基準期間を超える長い期間(例えば10時間)において発生したノイズの影響が蓄積することによりこれらの検知カウンタ133〜135の値が「0」となってしまうことを防止することができる。
<LDT命令>
次に、電源投入設定処理(図17(c))のプログラム内容の説明に先立ち、電源投入設定処理のプログラムに含まれているLDT命令について説明する。図17(a)はLDT命令の機械語のデータ構成を説明するための説明図であり、図17(b)はLD命令の機械語のデータ構成を説明するための説明図であり、図17(c)は電源投入設定処理のプログラム内容を説明するための説明図である。
図17(c)に示すように、電源投入設定処理のプログラムには「LDT HL,400H」というLDT命令が含まれている。主側CPU63は、データを転送する転送命令として、LD命令に加えて、LDT命令を実行することができる。図9に示すように、主側MPU62はLDT実行回路149を備えている。LDT実行回路149は、LDT命令を実行するための専用回路である。
LD命令の命令コードは、「LD 転送先,転送元」という構成を有している。LD命令では、「転送先」としてWレジスタ104aなどの汎用レジスタ、WAレジスタ104などのペアレジスタ又は主側RAM65の記憶エリアが設定されるとともに、「転送元」としてWレジスタ104aなどの汎用レジスタ、WAレジスタ104などのペアレジスタ、主側RAM65の記憶エリアに格納されているデータ、又は数値が設定される。
LD命令では、「転送元」に設定されている2バイトの数値情報が「転送先」にロードされる。例えば、「LD HL,9400H」という命令が実行された場合には、「転送元」に設定されている「9400H」が「転送先」に設定されているHLレジスタ107にロードされる。
LDT命令の命令コードは、「LDT 転送先,転送元」という構成を有している。LDT命令では、「転送先」としてHLレジスタ107が設定される。LDT命令では、「転送元」として12ビットの数値(例えば、「400H」)が設定される。なお、LDT命令の「転送先」としてWAレジスタ104、BCレジスタ105又はDEレジスタ106が設定される構成としてもよい。
LDT命令では、「転送元」に設定されている12ビットの数値情報に対してTPレジスタ111に設定されている2バイトの数値情報を加算して得られる2バイトの数値情報が「転送先」に設定されているペアレジスタにロードされる。既に説明したとおり、本実施形態においてTPレジスタ111にはデータテーブルの基準アドレスである「9000H」が設定される。事前にTPレジスタ111に「9000H」が設定されている状態において「LDT HL,400H」が実行されることにより、上述した「LD HL,9400H」が実行される場合と同様に、HLレジスタ107に「9400H」がロードされる。
先ずLD命令の具体的な命令コードとして「LD HL,9400H」を例示しながら、LD命令の機械語のデータ構成について説明する。「LD HL,9400H」は、「9400H」という2バイトの数値情報をHLレジスタ107にロードするための命令コードである。図17(b)に示すように、LD命令の機械語には、「転送元」のデータを「転送先」にロードするように指示する指示データと、「転送先」としてHLレジスタ107を指定する転送先指定データと、「転送元」を指定する転送元指定データとが含まれている。LD命令の機械語において、指示データ及び転送先指定データの合計のデータ容量は2バイトであるとともに、転送元指定データのデータ容量は2バイトである。このように、LD命令の機械語のデータ容量は全体で4バイトである。
次に、LDT命令の具体的な命令コードとして「LDT HL,400H」を例示しながら、LDT命令の機械語のデータ構成について説明する。図17(a)に示すように、LDT命令の機械語には、上述したLD命令の機械語と同様に、「転送元」のデータを「転送先」にロードするように指示する指示データと、「転送先」としてHLレジスタ107を指定する転送先指定データと、「転送元」を指定する転送元指定データとが含まれている。LDT命令の機械語において、指示データ及び転送先指定データのデータ容量の合計は4ビットであるとともに、転送元指定データのデータ容量は12ビットである。「LDT HL,400H」の場合、「転送元」として12ビットの数値情報である「400H」が設定されており、LDT命令の機械語には当該12ビットの数値情報である「400H」がそのまま転送元指定データとして含まれる。このように、LDT命令の機械語のデータ容量は全体で2バイトである。
このため、TPレジスタ111に「9000H」が格納されている状態において、主側ROM64に記憶されているデータテーブルのアドレスをHLレジスタ107にロードする場合には、LD命令に代えてLDT命令を使用することにより、「転送元」のデータを「転送先」にロードする命令の機械語を2バイト低減することができる。これにより、主側ROM64におけるプログラムのデータ容量を低減することができる。
次に、主側CPU63にて実行される電源投入設定処理のプログラム内容について図17(c)の説明図を参照しながら説明する。電源投入設定処理はメイン処理(図15)のステップS118にて実行される。図17(c)に示すように本プログラムには、行番号として「1001」〜「1005」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
「1001」の行番号には「LDT HL,400H」という命令が設定されている。「LDT」はLDT実行回路149によるLDT命令であり、「HL」は転送先としてHLレジスタ107を指定する内容であり、「400H」は転送元として「400H」という12ビットの数値情報を設定する内容である。既に説明したとおり、TPレジスタ111には、メイン処理(図15)のステップS104にてデータテーブルの基準アドレス(「9000H」)が設定されている。このため、「LDT HL,400H」が実行されることにより、転送元として設定されている「400H」に対してTPレジスタ111に設定されている「9000H」を加算して得られる「9400H」がHLレジスタ107にロードされる。主側ROM64には、不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135に初期値を設定するためのデータテーブルとして第1初期化テーブル64k(図18(a))が記憶されており、「9400H」は当該第1初期化テーブル64kの開始アドレスである。なお、第1初期化テーブル64kの詳細については後述する。
このように、LDT命令を利用してHLレジスタ107に第1初期化テーブル64kの開始アドレスを設定する構成であることにより、LD命令を利用してHLレジスタ107に第1初期化テーブル64kの開始アドレスを設定する構成と比較して、電源投入設定処理を実行するためのプログラムのデータ容量を低減することができる。
「1002」の行番号には「XOR D,D」という命令が設定されている。「XOR」はXOR命令という排他的論理和命令であり、コンマの前後の「D」はDレジスタ106aを指定する内容である。「XOR D,D」が実行されることにより、Dレジスタ106aの値とDレジスタ106aの値との排他的論理和の演算結果がコンマの前の「D」で指定されたDレジスタ106aに設定される。具体的には、Dレジスタ106aの値に関わらず、Dレジスタ106aに「00H」が設定される。つまり、Dレジスタ106aが「0」クリアされる。図16(a)を参照しながら既に説明したとおり、電源投入設定処理の対象となるエリア及びカウンタのアドレスにおける上位1バイトは「00H」で共通している。行番号「1002」の命令は、Dレジスタ106aに当該共通の上位1バイト(「00H」)を設定するための命令である。
「1003」の行番号には「CALL 4BTS10」という命令が設定されている。「4BTS10」は後述するデータ設定実行処理(図19(c))である。「CALL 4BTS10」という命令は、データ設定実行処理というサブルーチンを呼び出すための命令である。行番号「1003」では、HLレジスタ107に第1初期化テーブル64kの開始アドレスが設定されているとともにDレジスタ106aに「00H」が格納されている状態でデータ設定実行処理が実行される。既に説明したとおり、第1初期化テーブル64kは、不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135に初期値を設定するためのデータテーブルである。行番号「1003」にてデータ設定実行処理が実行されることにより、不正電波検知カウンタ133には初期値として「5」が設定され、不正磁気検知カウンタ134には初期値として「10」が設定され、異常振動検知カウンタ135には初期として「15」が設定される。行番号「1003」の命令に基づいて呼び出したデータ設定実行処理のサブルーチンが終了した場合には、「1004」の行番号に進む。詳細は後述するが、行番号「1003」にてデータ設定実行処理が実行されることにより、HLレジスタ107には主側ROM64における第2初期化テーブル64m(図18(b))の開始アドレスが設定されている状態となる。第2初期化テーブル64mは、停電エリア131及び不正監視タイマカウンタ132を「0」クリアするためのデータテーブルである。なお、第2初期化テーブル64mの詳細については後述する。
「1004」の行番号にも「CALL 4BTS10」という命令が設定されている。行番号「1004」では、HLレジスタ107に第2初期化テーブル64mの開始アドレスが設定されているとともにDレジスタ106aに「00H」が格納されている状態でデータ設定実行処理が実行される。行番号「1004」にてデータ設定実行処理が実行されることにより、停電エリア131及び不正監視タイマカウンタ132が「0」クリアされる。行番号「1004」の命令に基づいて呼び出したデータ設定実行処理のサブルーチンが終了した場合には、「1005」の行番号に進む。
「1005」の行番号には「RET」という命令が設定されている。既に説明したとおり、電源投入設定処理はメイン処理(図15)のステップS118にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、メイン処理(図15)のステップS119に進むことになる。
第1初期化テーブル64kを用いて不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135の初期設定を行う処理は、電源投入設定処理(図17(c))以外にも、後述する不正検知処理(図29(a))のステップS812における不正検知用初期化処理(図29(b))にて実行される。主側ROM64において初期化テーブルが第1初期化テーブル64k及び第2初期化テーブル64mに分けて記憶されていることにより、電源投入設定処理以外の処理において、第1初期化テーブル64kのみを利用して不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135の初期設定を行う処理を実行することが可能となっている。
<初期化テーブル64k,64mのデータ構成>
次に、主側ROM64に記憶されている第1初期化テーブル64k及び第2初期化テーブル64mについて説明する。
図18(a)は第1初期化テーブル64kのデータ構成を説明するための説明図であり、図18(b)は第2初期化テーブル64mのデータ構成を説明するための説明図である。既に説明したとおり、第1初期化テーブル64kは、不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135に初期値を設定するためのデータテーブルであるとともに、第2初期化テーブル64mは、停電エリア131及び不正監視タイマカウンタ132を「0」クリアするためのデータテーブルである。
主側ROM64において、第1初期化テーブル64kは、図18(a)に示すように「9400H」〜「9405H」のアドレス範囲に記憶されているとともに、第2初期化テーブル64mは、図18(b)に示すように当該第1初期化テーブル64kのアドレス範囲に続く「9406H」〜「940BH」のアドレス範囲に記憶されている。
図18(a),(b)に示すように、各初期化テーブル64k,64mは、第1エリア→第2エリア→第3エリアの順番で、第1〜第3エリアが繰り返されるデータ構成となっている。第1〜第3エリアは1バイトのエリアである。第1エリアは、上位4ビット及び下位4ビットに「0」クリア用のデータ又は初期設定用のデータが設定されているエリアである。例えば、図18(a)に示すように、第1初期化テーブル64kにおける「9400H」のアドレスに対応する第1エリアの上位4ビットには不正電波検知カウンタ133に初期値である「5」をセットするための初期設定データ(「0101B」)が設定されているとともに、当該第1エリアの下位4ビットには不正磁気検知カウンタ134に初期値である「10」をセットするための初期設定データ(「1010B」)が設定されている。また、図18(b)に示すように、第2初期化テーブル64mにおける「9406H」のアドレスに対応する第1エリアの上位4ビットには停電エリア131を「0」クリアするための「0」クリアデータ(「0000B」)が設定されているとともに、当該第1エリアの下位4ビットには不正監視タイマカウンタ132の下位1バイトを「0」クリアするための「0」クリアデータ(「0000B」)が設定されている。
第2エリアは、直前の第1エリアの上位4ビットに設定されている「0」クリアデータ又は初期設定データが転送される転送先を指定するアドレスの下位1バイトが設定されているエリアである。例えば、図18(a)に示すように、第1初期化テーブル64kにおける「9401H」のアドレスに対応する第2エリアには不正電波検知カウンタ133のアドレス(「0021H」)における下位1バイト(「21H」)が設定されている。また、図18(b)に示すように、第2初期化テーブル64mにおける「9407H」のアドレスに対応する第2エリアには停電エリア131のアドレス(「0001H」)における下位1バイト(「01H」)が設定されている。
第3エリアは、直前の第1エリアの下位4ビットに設定されている「0」クリアデータ又は初期設定データが転送される転送先を指定するアドレスの下位1バイトが設定されているエリアである。例えば、図18(a)に示すように、第1初期化テーブル64kにおける「9402H」のアドレスに対応する第3エリアには不正磁気検知カウンタ134のアドレス(「0022H」)における下位1バイト(「22H」)が設定されている。また、図18(b)に示すように、第2初期化テーブル64mにおける「9408H」のアドレスに対応する第3エリアには不正監視タイマカウンタ132の下位エリアのアドレス(「0008H」)における下位1バイト(「08H」)が設定されている。
各初期化テーブルの最終アドレスは第2エリア又は第3エリアとなっており、当該最終アドレスに対応する第2エリア又は第3エリアには、後述するデータ設定実行処理(図19(c))の終了用データとして「00H」が設定されている。具体的には、図18(a)及び図18(b)に示すように、第1初期化テーブル64kの最終アドレスである「9405H」及び第2初期化テーブル64mの最終アドレスである「940BH」には、終了用データである「00H」が設定されている。
<LD更新命令及びLDH更新命令>
ここで、データ設定実行処理(図19(c))の詳細な説明に先立ち、データ設定実行処理に含まれているLD更新命令及びLDH更新命令について説明する。
先ずLD更新命令について説明する。データ設定実行処理(図19(c))には、「LD E,(HL+)」というLD更新命令が含まれている。図9に示すように、主側MPU62はLD更新命令を実行するための専用回路であるLD更新実行回路151を備えており、主側CPU63はLD更新命令を実行することができる。
LD更新命令の命令コードは、「LD 転送先,(転送元+)」という構成を有している。LD更新命令では、「転送先」としてWレジスタ104aなどの汎用レジスタ、又は主側RAM65における記憶エリアが設定される。LD更新命令では、「転送元」としてHLレジスタ107が設定される。LD更新命令では、「転送先」の汎用レジスタ又は記憶エリアに1バイトのデータがロードされる。なお、LD更新命令の「転送先」として、WAレジスタ104などのペアレジスタが設定されるとともに、LD更新命令では「転送先」のデータ容量が2バイトである場合に当該「転送先」に2バイトのデータがロードされる構成としてもよい。また、LD更新命令の「転送元」としてWAレジスタ104、BCレジスタ105又はDEレジスタ106が設定される構成としてもよい。
LD更新命令は、「転送元」のレジスタに格納されているアドレスに対応するエリアに格納されているデータを「転送先」にロードする処理と、当該処理の実行後に「転送元」のレジスタに格納されているアドレスに「1」を加算して当該アドレスを更新する処理と、を一命令で実行可能とする命令である。例えば、「LD E,(HL+)」が実行された場合には、「転送元」として設定されているHLレジスタ107に格納されているアドレスに対応するエリアに格納されているデータが「転送先」であるEレジスタ106bにロードされるとともに、当該ロード後にHLレジスタ107に格納されているアドレスに「1」が加算されてHLレジスタ107に格納されているアドレスが更新される。
LD更新命令を使用する構成とすることにより、LD命令を実行した後に当該LD命令における「転送元」のレジスタに格納されているアドレスに「1」を加算する演算命令を実行する構成と比較して、データのロード後にアドレスを更新するためのプログラムのデータ容量を低減することができる。
次に、LDH更新命令について説明する。データ設定実行処理(図19(c))には、「LDH WA,(HL+)」というLDH更新命令が含まれている。図9に示すように、主側MPU62はLDH更新命令を実行するための専用回路であるLDH更新実行回路152を備えており、主側CPU63はLDH更新命令を実行することができる。
LDH更新命令の命令コードは、「LDH 転送先,(転送元+)」という構成を有している。LDH更新命令では「転送先」としてWAレジスタ104が設定されるとともに、「転送元」としてHLレジスタ107が設定される。
LDH更新命令は、「転送元」のHLレジスタ107に格納されているアドレスに対応するエリアに格納されている1バイトデータにおける上位4ビットのデータを「転送先」に設定されているWAレジスタ104のうち一方の汎用レジスタ(Wレジスタ104a)の下位4ビットにロードするとともに当該汎用レジスタの上位4ビットを「0」でマスクする処理と、当該1バイトデータにおける下位4ビットのデータを「転送先」に設定されているWAレジスタ104のうち他方の汎用レジスタ(Aレジスタ104b)の下位4ビットにロードするとともに当該汎用レジスタの上位4ビットを「0」でマスクする処理と、これらの処理の実行後に「転送元」のHLレジスタ107に格納されているアドレスに「1」を加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、を一命令で実行可能とする命令である。
図19(a)及び図19(b)は、「LDH WA,(HL+)」を例として、LDH更新命令を説明するための説明図である。図19(a)に示すように、HLレジスタ107には「1001010000000000B」(「9400H」)が格納されている。また、主側ROM64において「9400H」のアドレスに対応するエリアの上位4ビットには「0101B」が格納されているとともに、下位4ビットには「1010B」が格納されている。「LDH WA,(HL+)」が実行されることにより、図19(b)に示すように、WAレジスタ104のうち一方の汎用レジスタであるWレジスタ104aの下位4ビットには、「9400H」のアドレスに対応するエリアに格納されているデータの上位4ビットである「0101B」が設定されるとともに、当該Wレジスタ104aの上位4ビットは「0」でマスクされる。また、WAレジスタ104のうち他方の汎用レジスタであるAレジスタ104bの下位4ビットには、「9400H」のアドレスに対応するエリアに格納されていたデータの下位4ビットである「1010B」が設定されるとともに、当該Aレジスタ104bの上位4ビットは「0」でマスクされる。そして、HLレジスタ107に格納されていたアドレスに「1」が加算されて、HLレジスタ107に格納されているアドレスが「1001010000000001B」(「9401H」)に更新される。
このように、LDH更新命令を使用する構成とすることにより、主側ROM64の1バイトのエリアにおける上位4ビットのデータと下位4ビットのデータとを異なる汎用レジスタに読み出すことができるとともに、各汎用レジスタにおいて上位4ビットを「0」でマスクすることができる。また、LDH更新命令を使用する構成とすることにより、「転送元」のHLレジスタ107に格納されているアドレスに対応するエリアにおける上位4ビットのデータを「転送先」に設定されているWAレジスタ104のうち一方の汎用レジスタ(Wレジスタ104a)の下位4ビットにロードするとともに当該汎用レジスタの上位4ビットを「0」でマスクする処理と、当該エリアにおける上位4ビットのデータを「転送先」に設定されているWAレジスタ104のうち他方の汎用レジスタ(Aレジスタ104b)の下位4ビットにロードするとともに当該汎用レジスタの上位4ビットを「0」でマスクする処理と、これらの処理の実行後に「転送元」のHLレジスタ107に格納されているアドレスに「1」を加算して当該アドレスを更新する処理と、を実行するためのプログラムのデータ容量を低減することができる。
次に、主側CPU63にて実行されるデータ設定実行処理のプログラム内容について図19(c)の説明図を参照しながら説明する。既に説明したとおり、データ設定実行処理は電源投入設定処理(図17(c))の行番号「1003」及び行番号「1004」にて「CALL 4BTS10」が実行されることにより呼び出される。また、データ設定実行処理は後述するクリア時設定処理(図22(b))の行番号「1203」にて「CALL 4BTS10」が実行される場合、及び後述する不正検知用初期化処理(図29(b))の行番号「1503」にて「CALL 4BTS10」が実行される場合にも呼び出される。図19(c)に示すように、本プログラムには、行番号として「1101」〜「1109」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
先ず電源投入設定処理(図17(c))の行番号「1003」にてデータ設定実行処理が実行される場合について説明する。図20(a)〜図20(g)は、電源投入設定処理(図17(c))の行番号「1003」にてデータ設定実行処理が実行される場合におけるDレジスタ106a、Eレジスタ106b、Wレジスタ104a、Aレジスタ104b及びHLレジスタ107の状態を説明するための説明図である。
既に説明したとおり、行番号「1003」では、第1初期化テーブル64kの開始アドレスである「9400H」がHLレジスタ107に格納されているとともに、不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135のアドレスデータに共通する上位1バイト(「00H」)がDレジスタ106aに格納されている状態においてデータ設定実行処理が実行される(図20(a)参照)。
行番号「1003」にて実行されるデータ設定実行処理では、先ず第1初期化テーブル64k(図18(a))における「9400H」〜「9402H」のアドレス範囲に設定されているデータを利用して行番号「1102」〜「1109」の命令が実行される。図18(a)を参照しながら既に説明したとおり、第1初期化テーブル64kの開始アドレスである9400Hに対応する第1エリアの上位4ビットには不正電波検知カウンタ133に初期値である「5」を設定するための初期設定データとして「0101B」が設定されているとともに、当該第1エリアの下位4ビットには不正磁気検知カウンタ134に初期値である「10」を設定するための初期設定データとして「1010B」が設定されている。「9400H」に続く「9401H」に対応する第2エリアには不正電波検知カウンタ133のアドレスの下位1バイトである「21H」が設定されている。また、「9401H」に続く「9402H」に対応する第3エリアには不正磁気検知カウンタ134のアドレスの下位1バイトである「22H」が設定されている。
図19(c)に示すように、「1101」の行番号には「4BTS10」が設定されている。これは命令ではなくパチンコ機10の開発者によるプログラムの確認に際して参照されるデータである。したがって、行番号「1101」では何ら命令が実行されることなく行番号「1102」に進む。
「1102」の行番号には「LDH WA,(HL+)」という命令が設定されている。「LDH」はLDH更新実行回路152によるLDH更新命令であり、「WA」は転送先としてWAレジスタ104を指定する内容である。また、「(HL+)」は転送元としてHLレジスタ107に格納されているアドレスに対応するエリアに格納されているデータを指定する内容であるとともに、当該データのロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新することを指示する内容である。上述したとおり、第1初期化テーブル64kにおいて「9400H」に対応する第1エリアの上位4ビットには初期設定データとして「0101B」がセットされているとともに、当該第1エリアの下位4ビットには初期設定データとして「1010B」がセットされている。このため、行番号「1102」にて「LDH WA,(HL+)」が実行されることにより、図20(b)に示すように、Wレジスタ104aの下位4ビットに当該第1エリアの上位4ビットである「0101B」が設定されるとともに、当該Wレジスタ104aの上位4ビットが「0」でマスクされる。また、Aレジスタ104bの下位4ビットに当該第1エリアの下位4ビットである「1010B」が設定されるとともに、当該Aレジスタ104bの上位4ビットが「0」でマスクされる。これにより、Wレジスタ104aに不正電波検知カウンタ133の初期設定用の「00000101B」というデータが格納されている状態とすることができるとともに、Aレジスタ104bに不正磁気検知カウンタ134の初期設定用の「00001010B」というデータが格納されている状態とすることができる。また、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9401H」に更新される。
このように、LDH更新命令を利用することにより、第1エリアの上位4ビットに設定されているデータをWレジスタ104aの下位4ビットに設定するとともに当該Wレジスタ104aの上位4ビットを「0」でマスクする処理と、第1エリアの下位4ビットに設定されているデータをAレジスタ104bの下位4ビットに設定するとともに当該Aレジスタ104bの上位4ビットを「0」でマスクする処理と、HLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、を一命令で実行することができる。このため、これら3つの処理を実行するために複数の命令をプログラムに設定する構成と比較して、データ設定実行処理を実行するためのプログラムのデータ容量を低減することができる。
図19(c)に示すように、「1103」の行番号には「LD E,(HL+)」という命令が設定されている。「LD」はLD更新実行回路151によるLD更新命令であり、「E」は転送先としてEレジスタ106bを指定する内容である。また、「(HL+)」は転送元としてHLレジスタ107に格納されているアドレスに対応するエリアに格納されているデータを指定する内容であるとともに、当該データのロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新することを指示する内容である。上述したとおり、第1初期化テーブル64kにおいて「9401H」に対応する第2エリアには、不正電波検知カウンタ133のアドレスにおける下位1バイトである「21H」が設定されている。行番号「1103」にて「LD E,(HL+)」が実行されることにより、図20(c)に示すようにEレジスタ106bに「21H」が格納される。これにより、不正電波検知カウンタ133のアドレスである「0021H」がDEレジスタ106に格納されている状態とすることができる。また、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9402H」に更新される。
このように、LD更新命令(「LD E,(HL+)」)を利用することにより、第1初期化テーブル64kの第2エリアに設定されているデータをEレジスタ106bにロードする処理と、HLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、を一命令で実行することができる。このため、これら2つの処理を実行するために複数の命令をプログラムに設定する構成と比較して、データ設定実行処理を実行するためのプログラムのデータ容量を低減することができる。
図19(c)に示すように、「1104」の行番号には「RET Z」という命令が設定されている。行番号「1104」における「RET Z」は、Eレジスタ106bに本データ設定実行処理(図19(c))の終了用データが設定されている場合には本データ設定実行処理を終了するとともに、Eレジスタ106bに当該終了用データが設定されていない場合には次の行番号に進むことを指示する命令である。既に説明したとおり、本実施形態ではデータ設定実行処理の終了用データとして「00H」が設定されている。図20(c)に示すように、Eレジスタ106bには「21H」が設定されており、終了用データは設定されていないため、行番号「1105」に進む。
図19(c)に示すように、「1105」の行番号には「LD (DE),W」という命令が設定されている。「LD」はLD命令であり、「(DE)」は転送先としてDEレジスタ106に格納されているアドレスに対応するエリアを指定する内容であり、「W」は転送元としてWレジスタ104aを指定する内容である。既に説明したとおり、DEレジスタ106には不正電波検知カウンタ133のアドレスである「0021H」が格納されているとともに、Wレジスタ104aには初期設定用のデータである「00000101B」が格納されている。このため、行番号「1105」にて「LD (DE),W」が実行されることにより、不正電波検知カウンタ133に当該初期設定用のデータがロードされる。これにより、不正電波検知カウンタ133に初期値である「5」をセットすることができる。
このように、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して不正電波検知カウンタ133のアドレス指定を行う構成とすることにより、第1初期化テーブル64kに記憶するアドレスデータを不正電波検知カウンタ133のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、第1初期化テーブル64kに不正電波検知カウンタ133におけるアドレスデータの全体(2バイト)を記憶する構成と比較して、第1初期化テーブル64kのデータ容量を低減することができる。
図19(c)に示すように、「1106」の行番号には、「1103」の行番号と同様に、「LD E,(HL+)」という命令が設定されている。図20(c)に示すように、HLレジスタ107には「9402H」が格納されている。図18(a)を参照しながら既に説明したとおり、「9402H」に対応する第3エリアには、不正磁気検知カウンタ134のアドレスにおける下位1バイトである「22H」が設定されている。行番号「1106」にて「LD E,(HL+)」が実行されることによりEレジスタ106bに「22H」がロードされる。これにより、DEレジスタ106に不正磁気検知カウンタ134のアドレスである「0022H」が格納されている状態とすることができる。また、図20(d)に示すように、HLレジスタ107の値が1加算されて当該HLレジスタ107に格納されているアドレスが「9403H」に更新される。
このように、LD更新命令(「LD E,(HL+)」)を利用することにより、第1初期化テーブル64kの第3エリアに設定されているデータをEレジスタ106bにロードする処理と、HLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、を一命令で実行することができる。このため、これら2つの処理を実行するために複数の命令をプログラムに設定する構成と比較して、データ設定実行処理を実行するためのプログラムのデータ容量を低減することができる。
図19(c)に示すように、「1107」の行番号には、「1104」の行番号と同様に、「RET Z」という命令が設定されている。行番号「1107」における「RET Z」は、行番号「1104」における「RET Z」と同様に、Eレジスタ106bに本データ設定実行処理(図19(c))の終了用データ(「00H」)が設定されている場合には本データ設定実行処理を終了するとともに、Eレジスタ106bに当該終了用データが設定されていない場合には次の行番号に進むことを指示する命令である。図20(d)に示すように、Eレジスタ106bには「22H」が設定されており、終了用データは設定されていないため、行番号「1108」に進む。
図19(c)に示すように、「1108」の行番号には、「LD (DE),A」という命令が設定されている。「LD」はLD命令であり、「(DE)」は転送先としてDEレジスタ106に格納されているアドレスに対応するエリアを指定する内容であり、「A」は転送元としてAレジスタ104bを指定する内容である。既に説明したとおり、DEレジスタ106には不正磁気検知カウンタ134のアドレスである「0022H」が格納されているとともに、Aレジスタ104bには初期設定用のデータである「00001010B」が格納されている。このため、行番号「1108」にて「LD (DE),A」が実行されることにより、不正磁気検知カウンタ134に当該初期設定用のデータがロードされる。これにより、不正磁気検知カウンタ134に初期値として「10」をセットすることができる。
このように、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して不正磁気検知カウンタ134のアドレス指定を行う構成とすることにより、第1初期化テーブル64kに記憶するアドレスデータを不正磁気検知カウンタ134のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、第1初期化テーブル64kに不正磁気検知カウンタ134のアドレスデータの全体(2バイト)を記憶する構成と比較して、第1初期化テーブル64kのデータ容量を低減することができる。
図19(c)に示すように、「1109」の行番号には、「JR 4BTS10」という命令が設定されている。「JR」は無条件ジャンプ命令としてのJR命令であり、「4BTS10」はジャンプ先としてデータ設定実行処理の開始アドレスを指定する内容である。「JR 4BTS10」が実行されることにより、本データ設定実行処理の行番号「1101」に進む。
その後、第1初期化テーブル64k(図18(a))の「9403H」〜「9405H」のアドレス範囲に設定されているデータを利用して行番号「1102」〜「1109」の命令が実行される。図18(a)に示すように、「9402H」に続く「9403H」に対応する第1エリアの上位4ビットには異常振動検知カウンタ135に初期値として「15」を設定するための初期設定データとして「1111B」が設定されている。また、当該第1エリアの下位4ビットには使用されない調整用データとして「0000B」が設定されている。「9403H」に続く「9404H」に対応する第2エリアには異常振動検知カウンタ135のアドレスの下位1バイトである「23H」が設定されている。また、「9404H」に続く「9405H」に対応する第3エリアには終了用データとして「00H」が設定されている。
データ設定実行処理(図19(c))の説明に戻り、行番号「1101」では何ら命令を実行することなく行番号「1102」に進む。上述したとおり、第1初期化テーブル64kにおいて9403Hのアドレスに対応する第1エリアの上位4ビットには初期設定用データ(「1111B」)が設定されているとともに、下位4ビットには調整用データ(「0000B」)が設定されている。行番号「1102」にて「LDH WA,(HL+)」が実行されることにより、図20(e)に示すように、Wレジスタ104aの下位4ビットに当該第1エリアの上位4ビットである「1111B」が設定されるとともに、当該Wレジスタ104aの上位4ビットが「0」でマスクされる。また、Aレジスタ104bの下位4ビットに当該第1エリアの下位4ビットである「0000B」が設定されるとともに、当該Aレジスタ104bの上位4ビットが「0」でマスクされる。これにより、Wレジスタ104aに初期設定用の「00001111B」というデータが格納されている状態とすることができる。Aレジスタ104bには調整用の「00000000B」が格納されている状態となる。また、HLレジスタ107の値に1が加算されて当該HLレジスタ107に格納されているアドレスが「9404H」に更新される。
上述したとおり、第1初期化テーブル64kにおいて「9404H」に対応する第2エリアには、異常振動検知カウンタ135に対応するアドレスの下位1バイトである「23H」が設定されている。行番号「1103」にて「LD E,(HL+)」が実行されることにより、図20(f)に示すようにEレジスタ106bに「23H」が格納される。これにより、異常振動検知カウンタ135のアドレスである「0023H」がDEレジスタ106に格納されている状態とすることができる。また、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9405H」に更新される。
続く行番号「1104」には「RET Z」が設定されているが、図20(f)に示すようにEレジスタ106bには「23H」が設定されており、終了用データ(「00H」)は設定されていない。このため、行番号「1105」に進む。
既に説明したとおり、DEレジスタ106には異常振動検知カウンタ135のアドレスである「0023H」が格納されているとともに、Wレジスタ104aには初期設定用のデータである「00001111B」が格納されている。このため、行番号「1105」にて「LD (DE),W」が実行されることにより、異常振動検知カウンタ135に当該初期設定用のデータがロードされる。これにより、異常振動検知カウンタ135に初期値として「15」をセットすることができる。
このように、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して異常振動検知カウンタ135のアドレス指定を行う構成とすることにより、第1初期化テーブル64kに記憶するアドレスデータを異常振動検知カウンタ135のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、第1初期化テーブル64kに異常振動検知カウンタ135のアドレスデータの全体(2バイト)を記憶する構成と比較して、第1初期化テーブル64kのデータ容量を低減することができる。
上述したとおり、「9405H」に対応する第3エリアには終了用データである「00H」が設定されている。行番号「1106」にて「LD E,(HL+)」が実行されることにより、図20(g)に示すように、Eレジスタ106bに「00H」がロードされる。また、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9406H」に更新される。これにより、HLレジスタ107に第2初期化テーブル64mの開始アドレスが格納されている状態とすることができる。
その後、Eレジスタ106bに終了用データ(「00H」)が設定されている状態において、行番号「1107」にて「RET Z」が実行されることにより、本データ設定処理が終了する。既に説明したとおり、電源投入設定処理(図17(c))の行番号「1003」にてデータ設定実行処理が終了した場合には、行番号「1004」に進む。
次に、電源投入設定処理(図17(c))の行番号「1004」にてデータ設定実行処理(図19(c))が実行される場合について詳細に説明する。行番号「1004」では、第2初期化テーブル64mの開始アドレスである「9406H」がHLレジスタ107に格納されているとともに、停電エリア131、不正監視タイマカウンタ132の下位エリア及び不正監視タイマカウンタ132の上位エリアのアドレスに共通する上位1バイトのデータ(「00H」)がDレジスタ106aに格納されている状態においてデータ設定実行処理が実行される。
行番号「1004」にて実行されるデータ設定処理では、先ず第2初期化テーブル64mにおける「9406H」〜「9408H」のアドレス範囲に設定されているデータを利用して行番号「1102」〜「1109」の命令が実行される。図18(b)を参照しながら既に説明したとおり、第2初期化テーブル64mの開始アドレスである「9406H」に対応する第1エリアの上位4ビットには停電エリア131を「0」クリアするためのデータとして「0000B」が設定されているとともに、当該第1エリアの下位4ビットには不正監視タイマカウンタ132の下位エリアを「0」クリアするための「0」クリアデータとして「0000B」が設定されている。「9406H」に続く「9407H」に対応する第2エリアには停電エリア131のアドレスの下位1バイトである「01H」が設定されている。また、「9407H」に続く「9408H」に対応する第3エリアには不正監視タイマカウンタ132の下位エリアに対応するアドレスの下位1バイトである「08H」が設定されている。
データ設定実行処理(図19(c))の行番号「1101」では、既に説明したとおり、何ら命令が実行されることなく行番号「1102」に進む。上述したとおり、第2初期化テーブル64mにおいて「9406H」に対応する第1エリアの上位4ビット及び下位4ビットには「0」クリアデータ(「0000B」)がセットされている。このため、「LDH WA,(HL+)」が実行されることにより、Wレジスタ104aの下位4ビットに当該第1エリアの上位4ビットである「0000B」が設定されるとともに、当該Wレジスタ104aの上位4ビットが「0」でマスクされる。また、Aレジスタ104bの下位4ビットに当該第1エリアの下位4ビットである「0000B」が設定されるとともに、当該Aレジスタ104bの上位4ビットが「0」でマスクされる。これにより、Wレジスタ104a及びAレジスタ104bに「0」クリア用の「00000000B」というデータが格納されている状態とすることができる。また、HLレジスタ107の値が「1」加算されて、当該HLレジスタ107に格納されているアドレスが「9407H」に更新される。
既に説明したとおり、Dレジスタ106aには「00H」が格納されている。また、上述したとおり、第2初期化テーブル64mにおいて「9407H」に対応する第2エリアには、停電エリア131のアドレスにおける下位1バイトである「01H」がセットされている。行番号「1103」にて「LD E,(HL+)」が実行されることにより、Eレジスタ106bに「01H」が格納される。これにより、停電エリア131のアドレスである「0001H」がDEレジスタ106に格納されている状態とすることができる。また、HLレジスタ107の値が1加算されて当該HLレジスタ107に格納されているアドレスが「9408H」に更新される。
続く行番号「1104」には「RET Z」が設定されているが、直前の行番号「1103」にてEレジスタ106bには「01H」が設定されており、終了用データ(「00H」)は設定されていないため、行番号「1105」に進む。
既に説明したとおり、DEレジスタ106には停電エリア131のアドレスである「0001H」が格納されているとともに、Wレジスタ104aには「0」クリア用のデータである「00000000B」が格納されている。このため、行番号「1105」にて「LD (DE),W」が実行されることにより、停電エリア131に当該「0」クリア用のデータがロードされて、停電エリア131が「0」クリアされる。既に説明したとおり、停電エリア131の最下位ビットには停電フラグ131aが設けられている。このため、停電エリア131を「0」クリアすることにより停電フラグ131aを「0」クリアすることができる。
このように、事前にDレジスタ106aに格納されている共通の上位1バイト(「00H」)を利用して停電エリア131のアドレス指定を行う構成とすることにより、第2初期化テーブル64m(図18(b))に記憶するアドレスデータを停電エリア131のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、第2初期化テーブル64mに停電エリア131のアドレスデータの全体(2バイト)を記憶する構成と比較して、第2初期化テーブル64mのデータ容量を低減することができる。
既に説明したとおり、Dレジスタ106aには「00H」が設定されている。また、上述したとおり、「9408H」に対応する第3エリアには、不正監視タイマカウンタ132の下位エリアのアドレスにおける下位1バイトである「08H」が設定されている。行番号「1106」にて「LD E,(HL+)」が実行されることによりEレジスタ106bに「08H」がロードされる。これにより、DEレジスタ106に不正監視タイマカウンタ132の下位エリアのアドレスである「0008H」が格納されている状態とすることができる。また、HLレジスタ107の値が1加算されて当該HLレジスタ107に格納されているアドレスが「9409H」に更新される。
続く行番号「1107」には「RET Z」が設定されているが、直前の行番号「1106」にてEレジスタ106bには「08H」が設定されており、終了用データ(「00H」)は設定されていないため、行番号「1108」に進む。
既に説明したとおり、DEレジスタ106には不正監視タイマカウンタ132の下位エリアのアドレスである「0008H」が格納されているとともに、Aレジスタ104bには「0」クリア用のデータである「00000000B」が格納されている。このため、行番号「1108」にて「LD (DE),A」が実行されることにより、不正監視タイマカウンタ132の下位エリアに当該「0」クリア用のデータがロードされて、不正監視タイマカウンタ132の下位エリアが「0」クリアされる。
このように、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して不正監視タイマカウンタ132の下位エリアのアドレス指定を行う構成とすることにより、第2初期化テーブル64mに記憶するアドレスデータを不正監視タイマカウンタ132の下位エリアのアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、第2初期化テーブル64mに不正監視タイマカウンタ132の下位エリアにおけるアドレスデータの全体(2バイト)を記憶する構成と比較して、第2初期化テーブル64mのデータ容量を低減することができる。
その後、行番号「1109」にて「JR 4BTS10」が実行されることにより、本データ設定実行処理の行番号「1101」に進む。そして今度は、第2初期化テーブル64mの「9409H」〜「940BH」のアドレス範囲に設定されているデータを利用して行番号「1102」〜「1109」の命令が実行される。
図18(b)に示すように、「9408H」に続く「9409H」に対応する第1エリアの上位4ビットには不正監視タイマカウンタ132の上位エリアを「0」クリアするためのデータとして「0000B」が設定されている。また、当該第1エリアの下位4ビットには使用されない調整用データとして「0000B」が設定されている。「9409H」に続く「940AH」に対応する第2エリアには不正監視タイマカウンタ132の上位エリアに対応するアドレス(「0009H」)の下位1バイトである「09H」が設定されている。また、「940AH」に続く「940BH」に対応する第3エリアにはデータ設定実行処理の終了用データとして「00H」が設定されている。
データ設定実行処理(図19(c))の説明に戻り、行番号「1101」では何ら命令を実行することなく行番号「1102」に進む。上述したとおり、第2初期化テーブル64mにおいて「9409H」のアドレスに対応する第1エリアの上位4ビットには「0」クリア用のデータ(「0000B」)が設定されているとともに、下位4ビットには調整用データ(「0000B」)が設定されている。行番号「1102」にて「LDH WA,(HL+)」が実行されることにより、Wレジスタ104aの下位4ビットに当該第1エリアの上位4ビットである「0000B」が設定されるとともに、当該Wレジスタ104aの上位4ビットが「0」でマスクされる。また、Aレジスタ104bの下位4ビットに当該第1エリアの下位4ビットである「0000B」が設定されるとともに、当該Aレジスタ104bの上位4ビットが「0」でマスクされる。これにより、Wレジスタ104a及びAレジスタ104bに「00000000B」というデータが格納されている状態とすることができる。また、HLレジスタ107の値が1加算されて当該HLレジスタ107に格納されているアドレスが「940AH」に更新される。
既に説明したとおり、Dレジスタ106aには「00H」が設定されている。また、上述したとおり、第2初期化テーブル64m(図18(b))において940AHに対応する第2エリアには、不正監視タイマカウンタ132の上位エリアに対応するアドレスの下位1バイトである「09H」が設定されている。行番号「1103」にて「LD E,(HL+)」が実行されることにより、Eレジスタ106bに「09H」が格納される。これにより、不正監視タイマカウンタ132の上位エリアのアドレスである「0009H」がDEレジスタ106に格納されている状態とすることができる。また、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「940BH」に更新される。
続く行番号「1104」には「RET Z」が設定されているが、直前の行番号「1103」にてEレジスタ106bには「09H」が設定されており、終了用データ(「00H」)は設定されていないため、行番号「1105」に進む。
既に説明したとおり、DEレジスタ106には不正監視タイマカウンタ132の上位エリアのアドレスである「0009H」が格納されているとともに、Wレジスタ104aには「0」クリア用のデータである「00000000B」が格納されている。このため、行番号「1105」にて「LD (DE),W」が実行されることにより、不正監視タイマカウンタ132の上位エリアに当該「0」クリア用のデータがロードされる。これにより、不正監視タイマカウンタ132の上位エリアを「0」クリアすることができる。
このように、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して不正監視タイマカウンタ132の上位エリアのアドレス指定を行う構成とすることにより、第2初期化テーブル64m(図18(b))に記憶するアドレスデータを不正監視タイマカウンタ132の上位エリアのアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、第2初期化テーブル64mに不正監視タイマカウンタ132の上位エリアにおけるアドレスデータの全体(2バイト)を記憶する構成と比較して、第2初期化テーブル64mのデータ容量を低減することができる。
上述したとおり、「9405H」に対応する第3エリアには終了用データである「00H」が設定されている。行番号「1106」にて「LD E,(HL+)」が実行されることにより、Eレジスタ106bに「00H」がロードされる。また、HLレジスタ107の値が1加算されて当該HLレジスタ107に格納されていたアドレスが「940CH」に更新される。
その後、Eレジスタ106bに終了用データ(「00H」)が設定されている状態において、行番号「1107」にて「RET Z」が実行されることにより、本データ設定実行処理が終了する。既に説明したとおり、電源投入設定処理(図17(c))の行番号「1004」にて呼び出されたデータ設定実行処理が終了した場合には、行番号「1005」に進む。
次に、主側CPU63にて実行されるクリア対応処理について図21(a)のフローチャートを参照しながら説明する。クリア対応処理はメイン処理(図15)のステップS120にて実行される。なお、クリア対応処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
クリア対応処理では、まず特定制御用のワークエリア121における一部クリアフラグに「1」がセットされているか否かを判定する(ステップS201)。既に説明したとおり、一部クリアフラグは、一部クリア処理(ステップS107)が実行されたことを主側CPU63にて把握可能とするフラグであるとともに、復帰コマンド送信処理(ステップS113)において一部クリア時の復帰コマンドを音光側CPU93に対して送信可能とするフラグである。ステップS201にて肯定判定を行った場合には、一部クリアフラグを「0」クリアする(ステップS202)。
ステップS201にて否定判定を行った場合には、特定制御用のワークエリア121における全部クリアフラグに「1」がセットされているか否かを判定する(ステップS203)。既に説明したとおり、全部クリアフラグは、全部クリア処理(ステップS114)が実行されたことを主側CPU63にて把握可能とするフラグである。ステップS203にて否定判定を行った場合には、そのまま本クリア対応処理を終了する。一方、ステップS203にて肯定判定を行った場合には、全部クリアフラグを「0」クリアする(ステップS204)。
ステップS202の処理を行った場合、又はステップS204の処理を行った場合には、クリア時設定処理を実行して(ステップS205)、本クリア対応処理を終了する。ステップS205におけるクリア時設定処理では、遊技ホールの管理コンピュータに対して出力されているセキュリティ信号をLOW状態からHI状態に立ち上げるための処理を実行する。セキュリティ信号は、本パチンコ機10において一部クリア処理(ステップS107)又は全部クリア処理(ステップS114)が実行されたことを遊技ホールの管理コンピュータにて把握可能とする信号である。また、ステップS205におけるクリア時設定処理では、第1特図表示部37a及び第2特図表示部37bにおいて外れ結果に対応する表示が行われるようにするための処理を実行するとともに、普図表示部38aにおいて初期表示が行われるようにするための処理を実行する。なお、クリア時設定処理のプログラム内容については後述する。
図21(b)はクリア時設定処理(ステップS205)においてデータ設定が行われる記憶エリアを説明するための説明図である。図21(b)に示すように、特定制御用のワークエリア121において、「0002H」のアドレスに対応する1バイトエリアにはセキュリティ信号エリア153が設けられており、「0005H」のアドレスに対応する1バイトエリアには第1特図表示カウンタ154が設けられており、「0006H」のアドレスに対応する1バイトエリアには第2特図表示カウンタ155が設けられており、「0007H」のアドレスに対応する1バイトエリアには普図表示カウンタ159が設けられている。このように、クリア時設定処理においてデータ設定の対象となるエリア及びカウンタのアドレスデータにおける上位1バイトのデータは「00H」で共通している。
セキュリティ信号エリア153は、セキュリティ信号フラグ153aを含む1バイトのエリアである。図21(c)はセキュリティ信号エリア153のデータ構成を説明するための説明図である。図21(c)に示すように、セキュリティ信号エリア153における最下位ビット(第0ビット)にはセキュリティ信号フラグ153aが設定されているとともに、セキュリティ信号エリア153における第1〜第7ビットは未使用のビットとなっている。
セキュリティ信号フラグ153aは、上述したセキュリティ信号のLOW状態からHI状態への立ち上げを実行すべきことを主側CPU63にて把握可能とするフラグである。セキュリティ信号フラグ153aに「1」がセットされた場合には、後述するタイマ割込み処理(図26)において外部情報設定処理(ステップS517)が実行されることにより、遊技ホールの管理コンピュータに出力されているセキュリティ信号の立ち上げが行われる。
第1特図表示カウンタ154は、第1特図表示部37aに各種絵柄を表示するための表示データが設定されるカウンタであるとともに、第2特図表示カウンタ155は、第2特図表示部37bに各種絵柄を表示するための表示データが設定されるカウンタである。また、普図表示カウンタ159は、普図表示部38aに各種絵柄を表示するための表示データが設定されるカウンタである。これらの表示カウンタ154,155,159は1バイトからなり、これらの表示カウンタ154,155,159に設定される表示データは1バイトデータである。
次に、主側ROM64に記憶されているクリア時設定テーブル64nについて説明する。クリア時設定テーブル64nには、一部クリア処理(ステップS107)又は全部クリア処理(ステップS114)が実行された場合にセキュリティ信号の立ち上げを行うためのデータ、第1特図表示部37a及び第2特図表示部37bにおいて外れ結果に対応する表示を行うためのデータ及び普図表示部38aにおいて初期表示を行うためのデータが設定されている。クリア時設定テーブル64nはクリア時設定処理(ステップS205)において利用される。
図22(a)はクリア時設定テーブル64nを説明するための説明図である。図22(a)に示すように、主側ROM64において、クリア時設定テーブル64nは「9300H」〜「9307H」のアドレス範囲に設定されている。クリア時設定テーブル64nは、図18(a)及び図18(b)を参照しながら既に説明した第1初期化テーブル64k及び第2初期化テーブル64mと同様に、第1エリア→第2エリア→第3エリアの順番で、第1〜第3エリアが繰り返されるデータ構成である。
図22(b)は主側CPU63にて実行されるクリア時設定処理のプログラム内容を説明するための説明図である。クリア時設定処理はクリア対応処理(図21(a))のステップS205にて実行される。図22(b)に示すように本プログラムには、行番号として「1201」〜「1204」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
「1201」の行番号には「LDT HL,300H」という命令が設定されている。「LDT」はLDT実行回路149によるLDT命令であり、「HL」は転送先としてHLレジスタ107を指定する内容であり、「300H」は転送元として「300H」という12ビットの数値情報を設定する内容である。既に説明したとおり、TPレジスタ111には、メイン処理(図15)のステップS104にてデータテーブルの基準アドレスである「9000H」が設定されている。このため、「LDT HL,300H」が実行されることにより、転送元として設定されている「300H」に対してTPレジスタ111に設定されている「9000H」を加算して得られる「9300H」がHLレジスタ107にロードされる。これにより、HLレジスタ107にクリア時設定テーブル64n(図22(a))の開始アドレスを設定することができる。
このように、LDT命令を利用してHLレジスタ107にクリア時設定テーブル64nの開始アドレスを設定する構成であることにより、LD命令を利用してHLレジスタ107にクリア時設定テーブル64nの開始アドレスを設定する構成と比較して、クリア時設定処理を実行するためのプログラムのデータ容量を低減することができる。
行番号「1202」〜「1203」には、既に説明した電源投入設定処理(図17(c))の行番号「1002」〜「1003」と同様の命令が設定されている。具体的には、「1202」の行番号には「XOR D,D」という命令が設定されている。「XOR」はXOR命令という排他的論理和命令であり、コンマの前後の「D」はDレジスタ106aを指定する内容である。「XOR D,D」が実行されることにより、Dレジスタ106aの値とDレジスタ106aの値との排他的論理和の演算結果がコンマの前の「D」で指定されたDレジスタ106aに設定される。具体的には、Dレジスタ106aの値に関わらず、Dレジスタ106aに「00H」が設定される。つまり、Dレジスタ106aが「0」クリアされる。これにより、Dレジスタ106aにセキュリティ信号エリア153、第1特図表示カウンタ154及び第2特図表示カウンタ155のアドレスデータにおける上位1バイトのデータ(「00H」)を設定することができる。
「1203」の行番号には「CALL 4BTS10」という命令が設定されている。「4BTS10」は既に説明したデータ設定実行処理(図19(c))である。「CALL 4BTS10」という命令は、データ設定実行処理というサブルーチンを呼び出すための命令である。行番号「1203」では、HLレジスタ107にクリア時設定テーブル64nの開始アドレスが設定されているとともにDレジスタ106aに「00H」が格納されている状態でデータ設定実行処理が実行される。
「1204」の行番号には「RET」という命令が設定されている。「RET」という命令が実行されることで、クリア時設定処理が終了する。既に説明したとおり、クリア時設定処理はクリア対応処理(図21(a))のステップS205にて実行されるサブルーチンであり、クリア時設定処理が終了した場合には、クリア対応処理も終了することとなる。
次に、クリア時設定処理(図22(b))の行番号「1203」にてデータ設定実行処理(図19(c))が実行される場合について説明する。行番号「1203」では、クリア時設定テーブル64nの開始アドレスである「9300H」がHLレジスタ107に格納されているとともに、セキュリティ信号エリア153、第1特図表示カウンタ154及び第2特図表示カウンタ155のアドレスデータにおける上位1バイトのデータ(「00H」)がDレジスタ106aに格納されている状態においてデータ設定実行処理が実行される。
行番号「1203」にて実行されるデータ設定実行処理では、先ずクリア時設定テーブル64nにおける「9300H」〜「9302H」のアドレス範囲に設定されているデータを利用して行番号「1102」〜「1109」の命令が実行される。図22(a)に示すように、クリア時設定テーブル64nの開始アドレスである9300Hに対応する第1エリアの上位4ビットにはセキュリティ信号エリア153におけるセキュリティ信号フラグ153aに「1」をセットするためのデータとして「0001B」が設定されているとともに、当該1エリアの下位4ビットには第1特図表示カウンタ154に外れ結果に対応する絵柄の表示データを設定するためのデータとして「0011B」が設定されている。「9300H」に続く「9301H」に対応する第2エリアにはセキュリティ信号エリア153のアドレスの下位1バイトである「02H」が設定されている。また、「9301H」に続く「9302H」に対応する第3エリアには第1特図表示カウンタ154のアドレスの下位1バイトである「05H」が設定されている。
データ設定実行処理(図19(c))の行番号「1101」では、既に説明したとおり、何ら命令が実行されることなく行番号「1102」に進む。上述したとおり、クリア時設定テーブル64nにおいて「9300H」に対応する第1エリアの上位4ビットには「0001B」が設定されているとともに、下位4ビットには「0011B」が設定されている。行番号「1102」にて「LDH WA,(HL+)」が実行されることにより、Wレジスタ104aの下位4ビットに当該第1エリアの上位4ビットである「0001B」が設定されるとともに、当該Wレジスタ104aの上位4ビットが「0」でマスクされる。また、Aレジスタ104bの下位4ビットに当該第1エリアの下位4ビットである「0011B」が設定されるとともに、当該Aレジスタ104bの上位4ビットが「0」でマスクされる。これにより、Wレジスタ104aに「00000001B」というデータを設定することができるとともに、Aレジスタ104bに「00000011B」というデータを設定することができる。また、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9301H」に更新される。
既に説明したとおり、Dレジスタ106aには「00H」が格納されている。また、上述したとおり、クリア時設定テーブル64nにおいて「9301H」に対応する第2エリアには、セキュリティ信号エリア153のアドレスにおける下位1バイトである「02H」が設定されている。行番号「1103」にて「LD E,(HL+)」が実行されることにより、Eレジスタ106bに「02H」が格納される。これにより、セキュリティ信号エリア153のアドレスである「0002H」がDEレジスタ106に格納されている状態とすることができる。また、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9302H」に更新される。
続く行番号「1104」には「RET Z」が設定されているが、直前の行番号「1103」にてEレジスタ106bには「02H」が設定されており、終了用データ(「00H」)は設定されていないため、本データ設定実行処理を終了することはなく、行番号「1105」に進む。
既に説明したとおり、DEレジスタ106にはセキュリティ信号エリア153のアドレスである「0002H」が格納されているとともに、Wレジスタ104aには「00000001B」が格納されている。このため、行番号「1105」にて「LD (DE),W」が実行されることにより、セキュリティ信号エリア153に「00000001B」がセットされる。これにより、セキュリティ信号フラグ153aに「1」をセットすることができる。
このように、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用してセキュリティ信号エリア153のアドレス指定を行う構成とすることにより、クリア時設定テーブル64nに記憶するアドレスデータをセキュリティ信号エリア153のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、クリア時設定テーブル64nにセキュリティ信号エリア153のアドレスデータの全体(2バイト)を記憶する構成と比較して、クリア時設定テーブル64nのデータ容量を低減することができる。
既に説明したとおり、Dレジスタ106aには「00H」が格納されている。また、上述したとおり、「9302H」に対応する第3エリアには、第1特図表示カウンタ154のアドレスにおける下位1バイトである「05H」が設定されている。行番号「1106」にて「LD E,(HL+)」が実行されることによりEレジスタ106bに「05H」がロードされる。これにより、DEレジスタ106に第1特図表示カウンタ154のアドレスである「0005H」が格納されている状態とすることができる。また、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9303H」に更新される。
続く行番号「1107」には「RET Z」が設定されているが、直前の行番号「1106」にてEレジスタ106bには「05H」が設定されており、終了用データ(「00H」)は設定されていないため、本データ設定実行処理を終了することはなく、行番号「1108」に進む。
既に説明したとおり、DEレジスタ106には第1特図表示カウンタ154のアドレスである「0005H」が格納されているとともに、Aレジスタ104bには外れ結果を表示するための表示データである「00000011B」が格納されている。このため、行番号「1108」にて「LD (DE),A」が実行されることにより、第1特図表示カウンタ154に「00000011B」がロードされる。これにより、第1特図表示カウンタ154に外れ結果に対応する絵柄の表示データを設定することができる。
このように、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して第1特図表示カウンタ154のアドレス指定を行う構成とすることにより、クリア時設定テーブル64nに記憶するアドレスデータを第1特図表示カウンタ154のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、クリア時設定テーブル64nに第1特図表示カウンタ154のアドレスデータの全体(2バイト)を記憶する構成と比較して、クリア時設定テーブル64nのデータ容量を低減することができる。
その後、行番号「1109」にて「JR 4BTS10」が実行されることにより、本データ設定実行処理の行番号「1101」に進む。そして今度は、クリア時設定テーブル64nの「9303H」〜「9305H」のアドレス範囲に設定されているデータを利用して行番号「1102」〜「1109」の命令が実行される。
図22(a)に示すように、「9302H」に続く「9303H」に対応する第1エリアの上位4ビットには第2特図表示カウンタ155に外れ結果に対応する絵柄の表示データを設定するためのデータとして「0011B」が設定されている。また、当該1エリアの下位4ビットには普図表示部38aにて初期表示を行うためのデータとして「1010B」が設定されている。「9303H」に続く「9304H」に対応する第2エリアには第2特図表示カウンタ155のアドレスの下位1バイトである「06H」が設定されている。また、「9304H」に続く「9305H」に対応する第3エリアには普図表示カウンタ159のアドレスの下位1バイトである「07H」が設定されている。
データ設定実行処理(図19(c))の説明に戻り、行番号「1101」では何ら命令を実行することなく行番号「1102」に進む。上述したとおり、クリア時設定テーブル64nにおいて「9303H」のアドレスに対応する第1エリアの上位4ビットには「0011B」が設定されているとともに、下位4ビットには「1010B」が設定されている。行番号「1102」にて「LDH WA,(HL+)」が実行されることにより、Wレジスタ104aの下位4ビットに当該第1エリアの上位4ビットである「0011B」が設定されるとともに、当該Wレジスタ104aの上位4ビットが「0」でマスクされる。また、Aレジスタ104bの下位4ビットに当該第1エリアの下位4ビットである「1001B」が設定されるとともに、当該Aレジスタ104bの上位4ビットが「0」でマスクされる。これにより、Wレジスタ104aに外れ結果に対応する絵柄の表示データである「00000011B」を設定することができるととに、Aレジスタ104bに初期表示用の表示データである「00001010B」を設定することができる。また、HLレジスタ107に格納されていたアドレスに「1」が加算されて「9304H」に更新される。
上述したとおり、クリア時設定テーブル64nにおいて「9304H」に対応する第2エリアには、第2特図表示カウンタ155に対応するアドレスの下位1バイトである「16H」が設定されている。行番号「1103」にて「LD E,(HL+)」が実行されることによりEレジスタ106bに「06H」が格納される。これにより、第2特図表示カウンタ155のアドレスである「0006H」がDEレジスタ106に格納されている状態とすることができる。また、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9305H」に更新される。
続く行番号「1104」には「RET Z」が設定されているが、直前の行番号「1103」にてEレジスタ106bには「06H」が設定されており、終了用データ(「00H」)は設定されていないため、本データ設定実行処理を終了することはなく、行番号「1105」に進む。
既に説明したとおり、DEレジスタ106には第2特図表示カウンタ155のアドレスである「0006H」が格納されているとともに、Wレジスタ104aには外れ結果に対応する絵柄の表示データである「00000011B」が格納されている。このため、行番号「1105」にて「LD (DE),W」が実行されることにより、第2特図表示カウンタ155に「00000011B」がロードされる。これにより、第2特図表示カウンタ155に外れ結果に対応する絵柄の表示データをセットすることができる。
このように、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して第2特図表示カウンタ155のアドレス指定を行う構成とすることにより、クリア時設定テーブル64nに記憶しておくアドレスデータを第2特図表示カウンタ155のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、クリア時設定テーブル64nに第2特図表示カウンタ155のアドレスデータの全体(2バイト)を記憶しておく構成と比較して、クリア時設定テーブル64nのデータ容量を低減することができる。
既に説明したとおり、Dレジスタ106aには「00H」が格納されている。また、上述したとおり、「9305H」に対応する第3エリアには、普図表示カウンタ159のアドレスにおける下位1バイトである「07H」が設定されている。行番号「1106」にて「LD E,(HL+)」が実行されることによりEレジスタ106bに「07H」がロードされる。これにより、DEレジスタ106に普図表示カウンタ159のアドレスである「0007H」が格納されている状態とすることができる。また、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9306H」に更新される。
続く行番号「1107」には「RET Z」が設定されているが、直前の行番号「1106」にてEレジスタ106bには「07H」が設定されており、終了用データ(「00H」)は設定されていないため、本データ設定実行処理を終了することはなく、行番号「1108」に進む。
既に説明したとおり、DEレジスタ106には普図表示カウンタ159のアドレスである「0007H」が格納されているとともに、Aレジスタ104bには初期表示用の表示データである「00001010B」が格納されている。このため、行番号「1108」にて「LD (DE),A」が実行されることにより、普図表示カウンタ159に「00001010B」がロードされる。これにより、普図表示カウンタ159に初期表示用の表示データを設定することができる。
このように、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して普図表示カウンタ159のアドレス指定を行う構成とすることにより、クリア時設定テーブル64nに記憶するアドレスデータを普図表示カウンタ159のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、クリア時設定テーブル64nに普図表示カウンタ159のアドレスデータの全体(2バイト)を記憶する構成と比較して、クリア時設定テーブル64nのデータ容量を低減することができる。
その後、行番号「1109」にて「JR 4BTS10」が実行されることにより、本データ設定実行処理の行番号「1101」に進む。そして今度は、クリア時設定テーブル64nの「9306H」〜「9307H」のアドレス範囲に設定されているデータを利用して行番号「1102」〜「1104」の命令が実行される。
図22(a)に示すように、「9305H」に続く「9306H」に対応する第1エリアには使用されない調整用データ(「00000000B」)が設定されている。「9306H」に続く「9307H」に対応する第2エリアにはデータ設定実行処理の終了用データとして「00H」が設定されている。
データ設定実行処理(図19(c))の説明に戻り、行番号「1101」では何ら命令を実行することなく行番号「1102」に進む。上述したとおり、クリア時設定テーブル64nにおいて「9306H」のアドレスに対応する第1エリアには「00000000B」が設定されている。行番号「1102」にて「LDH WA,(HL+)」が実行されることにより、Wレジスタ104aの下位4ビットに当該第1エリアの上位4ビットである「0000B」が設定されるとともに、当該Wレジスタ104aの上位4ビットが「0」でマスクされる。また、Aレジスタ104bの下位4ビットに当該第1エリアの下位4ビットである「0000B」が設定されるとともに、当該Aレジスタ104bの上位4ビットが「0」でマスクされる。また、HLレジスタ107に格納されていたアドレスに「1」が加算されて「9307H」に更新される。
上述したとおり、クリア時設定テーブル64nにおいて「9307H」に対応する第2エリアには、終了用データ(「00H」)が設定されている。行番号「1103」にて「LD E,(HL+)」が実行されることによりEレジスタ106bに「00H」がロードされる。また、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9308H」に更新される。
その後、Eレジスタ106bに終了用データが設定されている状態において、行番号「1104」にて「RET Z」が実行されることにより、本データ設定実行処理が終了する。既に説明したとおり、クリア時設定処理(図22(b))の行番号「1203」にてデータ設定実行処理が終了した場合には、行番号「1204」に進む。
次に、メイン処理(図15)のステップS119にて実行される乱数最大値設定処理の説明に先立ち、主側ROM64に記憶されている乱数最大値テーブル64pについて説明する。既に説明したとおり、乱数最大値設定処理では、当たり乱数カウンタC1、大当たり種別カウンタC2、リーチ乱数カウンタC3、乱数初期値カウンタC4、変動種別カウンタC5及び普電乱数カウンタC6の最大値を設定する。乱数最大値テーブル64pは、これらのカウンタC1〜C6に対応する最大値カウンタCN1〜CN6に最大値データを設定するために利用されるデータテーブルである。
図23(a)は乱数最大値テーブル64pのデータ構成を説明するための説明図である。図23(a)に示すように、乱数最大値テーブル64pは、主側ROM64において「9200H」〜「9208H」のアドレス範囲に記憶されている。乱数最大値テーブル64pにおいて「9200H」に対応するエリアには、大当たり種別カウンタC2の最大値データである「63H」(「99」)が設定されている。既に説明したとおり、大当たり種別カウンタC2の最大値は大当たり種別用最大値カウンタCN2に設定される。
「9200H」に続く「9201H」に対応するエリアには、リーチ乱数カウンタC3の最大値データである「EEH」(「238」)が設定されている。既に説明したとおり、リーチ乱数カウンタC3の最大値はリーチ用最大値カウンタCN3に設定される。「9201H」に続く「9202H」に対応するエリアには、変動種別カウンタC5の最大値データである「C6H」(「198」)が設定されている。既に説明したとおり、変動種別カウンタC5の最大値は変動種別用最大値カウンタCN5に設定される。「9202H」に続く「9203H」に対応するエリアには、普電乱数カウンタC6の最大値データである「FAH」(「250」)が設定されている。既に説明したとおり、普電乱数カウンタC6の最大値は普電用最大値カウンタCN6に設定される。
「9203H」に続く「9204H」に対応するエリアには、当たり乱数カウンタC1の最大値データである「1F3FH」(「7999」)の下位1バイトである「3FH」が設定されているとともに、「9205H」に対応するエリアには、当該最大値データの上位1バイトである「1FH」が設定されている。既に説明したとおり、当たり乱数カウンタC1の最大値は当たり用最大値カウンタCN1に設定される。具体的には、当たり用最大値カウンタCN1の下位エリアに当該最大値データの下位1バイトである「3FH」が設定されるとともに、当たり用最大値カウンタCN1の上位エリアに当該最大値データの上位1バイトである「1FH」が設定される。「9205H」に続く「9206H」に対応するエリアには、乱数初期値カウンタC4の最大値データである「1F3FH」(「7999」)の下位1バイトである「3FH」が設定されているとともに、「9207H」には当該最大値データの上位1バイトである「1FH」が設定されている。既に説明したとおり、乱数初期値カウンタC4の最大値は初期値用最大値カウンタCN4に設定される。具体的には、初期値用最大値カウンタCN4の下位エリアに当該最大値データの下位1バイトである「3FH」が設定されるとともに、初期値用最大値カウンタCN4の上位エリアに当該最大値データの上位1バイトである「1FH」が設定される。「9207H」に続く「9208H」に対応するエリアには、終了用データとして「00H」が設定されている。
乱数最大値設定処理(ステップS119)では、HLレジスタ107に乱数最大値テーブル64pの開始アドレスである「9200H」が設定される。これにより、設定対象の最大値データとして大当たり種別カウンタC2の最大値データが選択されている状態となる。乱数最大値テーブル64pは、HLレジスタ107の値を1加算してHLレジスタ107に格納されているアドレスデータを順番に更新することにより、大当たり種別カウンタC2の最大値データ→リーチ乱数カウンタC3の最大値データ→変動種別カウンタC5の最大値データ→普電乱数カウンタC6の最大値データ→当たり乱数カウンタC1の最大値データの下位1バイト→当たり乱数カウンタC1の最大値データの上位1バイト→乱数初期値カウンタC4の最大値データの下位1バイト→乱数初期値カウンタC4の最大値データの上位1バイトの順番で、設定対象の最大値データを更新することが可能なデータ構成となっている。
図12(b)を参照しながら既に説明したとおり、特定制御用のワークエリア121において最大値カウンタCN1〜CN6は、「0019H」〜「0020H」のアドレス範囲に設定されている。乱数最大値設定処理(ステップS119)では、BCレジスタ105に当該アドレス範囲の先頭アドレスである「0019H」が設定される。これにより、設定対象カウンタとして大当たり種別用最大値カウンタCN2が選択されている状態となる。特定制御用のワークエリア121において最大値カウンタCN1〜CN6は、BCレジスタ105の値を1加算して当該BCレジスタ105に格納されているアドレスデータを順番に更新することにより、大当たり種別用最大値カウンタCN2→リーチ用最大値カウンタCN3→変動種別用最大値カウンタCN5→普電用最大値カウンタCN6→当たり用最大値カウンタCN1の下位エリア→当たり用最大値カウンタCN1の上位エリア→初期値用最大値カウンタCN4の下位エリア→初期値用最大値カウンタCN4の上位エリアの順番で、設定対象カウンタを更新することが可能な態様で設定されている。
次に、主側CPU63にて実行される乱数最大値設定処理について図23(b)のフローチャートを参照しながら説明する。乱数最大値設定処理はメイン処理(図15)のステップS119にて実行される。なお、乱数最大値設定処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
乱数最大値設定処理では、まず最大値設定開始処理を実行する(ステップS301)。最大値設定開始処理では、HLレジスタ107に乱数最大値テーブル64pの開始アドレスである「9200H」をセットするとともに、特定制御用のワークエリア121における大当たり種別用最大値カウンタCN2のアドレスである「0019H」をBCレジスタ105にセットする。乱数最大値設定処理において、HLレジスタ107には、乱数最大値テーブル64pにおける設定対象の最大値データに対応するアドレスが設定されるとともに、BCレジスタ105には、当該設定対象の最大値データが設定される設定対象カウンタに対応するアドレスが設定される。HLレジスタ107に「9200H」がセットされることにより、設定対象の最大値データとして大当たり種別カウンタC2の最大値データが選択されている状態となる。設定対象の最大値データの更新は後述するステップS302にて実行される。また、BCレジスタ105に「0019H」が設定されることにより、設定対象カウンタとして大当たり種別用最大値カウンタCN2が選択されている状態となる。設定対象カウンタの更新は後述する設定対象更新処理(ステップS305)にて実行される。なお、最大値設定開始処理の詳細については後述する。
ステップS301にて最大値設定開始処理を実行した後は、「LD A,(HL+)」という命令を実行する(ステップS302)。「LD」はLD更新実行回路151によるLD更新命令であり、「A」は転送先としてAレジスタ104bを指定する内容であり、「(HL+)」は転送元としてHLレジスタ107に格納されているアドレスに対応するエリアに格納されている最大値データを指定する内容であるとともに、当該最大値データのロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新することを指示する内容である。「LD A,(HL+)」が実行されることにより、HLレジスタ107に格納されているアドレスデータ(「9200H」)に対応する最大値データ(「63H」)がAレジスタ104bにロードされる。これにより、Aレジスタ104bに設定対象の最大値データをセットすることができる。また、当該最大値データのロード後にHLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9201H」に更新される。これにより、設定対象の最大値データを更新することができる。
このように、LD更新命令を利用することにより、乱数最大値テーブル64pにおいて設定対象として選択されている最大値データをAレジスタ104bにロードする処理と、当該最大値データのロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、を一命令で実行することができる。このため、これら2つの処理を実行するために複数の命令をプログラムに設定する構成と比較して、乱数最大値設定処理を実行するためのプログラムのデータ容量を低減することができる。
ステップS302〜ステップS305の処理は、後述するステップS303にて肯定判定が行われるまで繰り返し実行される。ステップS302の処理が実行される度に、大当たり種別カウンタC2の最大値データ→リーチ乱数カウンタC3の最大値データ→変動種別カウンタC5の最大値データ→普電乱数カウンタC6の最大値データ→当たり乱数カウンタC1の最大値データの下位1バイト→当たり乱数カウンタC1の最大値データの上位1バイト→乱数初期値カウンタC4の最大値データの下位1バイト→乱数初期値カウンタC4の最大値データの上位1バイトの順番で、設定対象の最大値データが更新される。また、HLレジスタ107に格納されているアドレスが「9208H」に更新された状態でステップS302の処理が実行された場合には、Aレジスタ104bに終了用データ(「00H」)が設定される。
ステップS302の処理を実行した後は、Aレジスタ104bに終了用データ(「00H」)が設定されているか否かを判定し(ステップS303)、Aレジスタ104bに終了用データが設定されている場合(ステップS303:YES)には、本乱数最大値設定処理を終了する。
ステップS303にて否定判定を行った場合には、最大値データの設定処理を実行する(ステップS304)。最大値データの設定処理では、「LD (BC),A」という命令を実行する。「LD」はロード命令であり、「(BC)」は転送先としてBCレジスタ105に格納されているアドレスに対応する設定対象カウンタを指定する内容であり、「A」は転送元としてAレジスタ104bを指定する内容である。「LD (BC),A」が実行されることにより、Aレジスタ104bに格納されている最大値データが最大値カウンタCN1〜CN6のうち設定対象カウンタとして選択されているカウンタにロードされる。これにより、設定対象カウンタに最大値データを設定することができる。
その後、設定対象更新処理を実行する(ステップS305)。設定対象更新処理では、「INC BC」という命令を実行する。「INC」は加算対象に対して「1」を加算する命令であり、「BC」は当該加算対象としてBCレジスタ105の値を指定する内容である。「INC BC」が実行されることにより、BCレジスタ105の値に「1」が加算される。これにより、設定対象カウンタとして選択されている最大値カウンタCN1〜CN6が更新される。ステップS305にて設定対象更新処理が実行される度に、大当たり種別用最大値カウンタCN2→リーチ用最大値カウンタCN3→変動種別用最大値カウンタCN5→普電用最大値カウンタCN6→当たり用最大値カウンタCN1の下位エリア→当たり用最大値カウンタCN1の上位エリア→初期値用最大値カウンタCN4の下位エリア→初期値用最大値カウンタCN4の上位エリアの順番で、設定対象カウンタが更新される。
ステップS305にて設定対象更新処理を実行した後は、ステップS302に戻り、Aレジスタ104bに終了用データが格納されてステップS303にて肯定判定が行われるまで、ステップS302〜ステップS305の処理を繰り返し実行する。これにより、最大値カウンタCN1〜CN6に最大値データを設定することができる。
<第1LDY命令>
次に、最大値設定開始処理(図24(b))のプログラム内容の説明に先立ち、最大値設定開始処理のプログラムに含まれている第1LDY命令について説明する。図24(a)は第1LDY命令の機械語のデータ構成を説明するための説明図であり、図24(b)は最大値設定開始処理のプログラム内容を説明するための説明図である。
図24(b)に示すように、最大値設定開始処理のプログラムには「LDY BC,19H」という第1LDY命令が含まれている。主側CPU63は、データを転送する転送命令として、第1LDY命令を実行することができる。図9に示すように、主側MPU62は第1LDY実行回路156を備えている。第1LDY実行回路156は、第1LDY命令を実行するための専用回路である。
第1LDY命令の命令コードは、「LDY 転送先,転送元」という構成を有している。第1LDY命令では、「転送先」としてペアレジスタが設定される。第1LDY命令において「転送先」に設定されるペアレジスタは、WAレジスタ104、BCレジスタ105、DEレジスタ106又はHLレジスタ107である。第1LDY命令では、「転送元」として1バイトの数値(例えば、「19H」)が設定される。
第1LDY命令では、「転送元」に設定されている1バイトの数値情報に対してIYレジスタ109に設定されている2バイトの数値情報を加算して得られる2バイトの数値情報が「転送先」に設定されているペアレジスタにロードされる。既に説明したとおり、本実施形態においてIYレジスタ109には、特定制御用の処理の開始時に特定制御用基準アドレスとして「0000H」が設定されるとともに、非特定制御用の処理の開始時に非特定制御用基準アドレスとして「0300H」が設定される。
事前にIYレジスタ109に「0000H」が設定されている状態において「LDY BC,19H」が実行されることにより、「LD BC,0019H」が実行される場合と同様に、BCレジスタ105に「0019H」がロードされる。また、事前にIYレジスタ109に「0300H」が設定されている状態において「LDY BC,19H」が実行されることにより、「LD BC,0319H」が実行される場合と同様に、BCレジスタ105に「0319H」がロードされる。
第1LDY命令の具体的な命令コードとして「LDY BC,19H」を例示しながら、第1LDY命令の機械語のデータ構成について説明する。図24(a)に示すように、第1LDY命令の機械語には、図17(b)を参照しながら既に説明したLD命令の機械語と同様に、「転送元」のデータを「転送先」にロードするように指示する指示データと、「転送先」としてBCレジスタ105を指定する転送先指定データと、「転送元」を指定する転送元指定データとが含まれている。第1LDY命令の機械語において、指示データ及び転送先指定データのデータ容量の合計は2バイトであるとともに、転送元指定データのデータ容量は1バイトである。「LDY HL,19H」の場合、「転送元」として1バイトの数値情報である「19H」が設定されており、第1LDY命令の機械語には当該1バイトの数値情報である「19H」がそのまま転送元指定データとして含まれる。このように、第1LDY命令の機械語のデータ容量は全体で3バイトである。
一方、図17(b)を参照しながら既に説明したとおり、LD命令の機械語において、指示データ及び転送先指定データのデータ容量の合計は2バイトであるとともに、転送元指定データのデータ容量は2バイトである。LD命令の機械語のデータ容量は全体で4バイトである。このように、IYレジスタ109に「0000H」が格納されている状態において、主側ROM64に記憶されているデータテーブルのアドレスをBCレジスタ105などのペアレジスタにロードする場合には、LD命令に代えて第1LDY命令を使用することにより、「転送元」のデータを「転送先」にロードする命令の機械語を1バイト低減することができる。これにより、主側ROM64におけるプログラムのデータ容量を低減することができる。
次に、主側CPU63にて実行される最大値設定開始処理のプログラム内容について図24(b)を参照しながら説明する。最大値設定開始処理は乱数最大値設定処理(図23(b))のステップS301にて実行される。図24(b)に示すように本プログラムには、行番号として「1301」〜「1303」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
「1301」の行番号には「LDT HL,200H」という命令が設定されている。「LDT」はLDT実行回路149によるLDT命令であり、「HL」は転送先としてHLレジスタ107を指定する内容であり、「200H」は転送元として「200H」という12ビットの数値情報を設定する内容である。既に説明したとおり、TPレジスタ111には、メイン処理(図15)のステップS104にてデータテーブルの基準アドレスである「9000H」が設定されている。このため、「LDT HL,200H」が実行されることにより、「転送元」として設定されている「200H」に対してTPレジスタ111に設定されている「9000H」を加算して得られる「9200H」がHLレジスタ107にロードされる。これにより、HLレジスタ107に乱数最大値テーブル64p(図23(a))の開始アドレスをセットすることができる。
このように、LDT命令を利用してHLレジスタ107に乱数最大値テーブル64pの開始アドレスを設定する構成であることにより、LD命令を利用してHLレジスタ107に乱数最大値テーブル64pの開始アドレスを設定する構成と比較して、最大値設定開始処理を実行するためのプログラムのデータ容量を低減することができる。
「1302」の行番号には「LDY BC,19H」という命令が設定されている。「LDY」は第1LDY実行回路156による第1LDY命令であり、「BC」は転送先としてBCレジスタ105を指定する内容であり、「19H」は「転送元」として「19H」という1バイトの数値情報を設定する内容である。既に説明したとおり、IYレジスタ109には、メイン処理(図15)のステップS103にて特定制御用基準アドレスとして「0000H」が設定されている。このため、「LDY BC,19H」が実行されることにより、「転送元」として設定されている「19H」に対してIYレジスタ109に設定されている「0000H」を加算して得られる「0019H」がBCレジスタ105にロードされる。これにより、BCレジスタ105に特定制御用のワークエリア121における大当たり種別用最大値カウンタCN2のアドレスをセットすることができる。
このように、1バイトのアドレスデータを設定してアドレス指定を行う第1LDY命令を利用してBCレジスタ105に大当たり種別用最大値カウンタCN2のアドレスデータ(2バイト)を設定する構成であることにより、2バイトのアドレスデータを設定してアドレス指定を行うLD命令を利用してBCレジスタ105に当該アドレスデータを設定する構成と比較して、最大値設定開始処理を実行するためのプログラムのデータ容量を低減することができる。
「1303」の行番号には「RET」という命令が設定されている。既に説明したとおり、最大値設定開始処理は乱数最大値設定処理(図23(b))のステップS301にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、乱数最大値設定処理のステップS302に進むことになる。
次に、一部クリア処理(ステップS107)及び全部クリア処理(ステップS114)において行われる第1クリア処理について説明する。既に説明したとおり、第1クリア処理は、主側RAM65における「0000H」〜「02FFH」のアドレスに設定されている特定制御用のワークエリア121を「0」クリアする処理である。既に説明したとおり、メイン処理(図15)のステップS103にてIYレジスタ109に特定制御用基準アドレスである「0000H」が設定される。当該第1クリア処理は、IYレジスタ109に当該特定制御用基準アドレスが設定されている状態で実行される。第1クリア処理では、まず「LDY HL,00H」という命令を実行することにより、HLレジスタ107に特定制御用のワークエリア121の開始アドレスである「0000H」をロードする。その後、「LD BC,0300H」という命令を実行することにより、BCレジスタ105に第1クリア処理の終了アドレスである「0300H」をロードする。その後、HLレジスタ107に終了アドレスが格納されている状態となるまで、HLレジスタ107に格納されているアドレスにより特定される記憶エリアを「0」クリアする処理及びHLレジスタ107に格納されているアドレスを1加算する処理を繰り返し実行する。そして、HLレジスタ107に終了アドレスが格納されている状態となった場合に、第1クリア処理を終了する。
メイン処理(図15)において、IYレジスタ109に特定制御用基準アドレスが設定されている状態で一部クリア処理(ステップS107)又は全部クリア処理(ステップS114)が実行される構成であることにより、第1クリア処理において、IYレジスタ109に格納されている当該特定制御用基準アドレスを利用して特定制御用のワークエリア121の先頭アドレスである「0000H」を指定することができる。
LD命令を利用する場合には当該LD命令の命令コードに含まれる開始アドレスのアドレスデータを2バイトのアドレスデータ(「0000H」)の全体とする必要がある一方、第1LDY命令を利用する場合には当該第1LDY命令の命令コードに含まれるアドレスデータを2バイトのアドレスデータにおける下位1バイト(「00H」)のみとすることができる。第1LDY命令(「LDY HL,00H」)を利用してHLレジスタ107に特定制御用のワークエリア121の開始アドレス(「0000H」)を設定する構成とすることにより、LD命令を利用して当該開始アドレスをHLレジスタ107に設定する構成と比較して、プログラムのデータ容量を低減することができる。
次に、主側CPU63にて実行される設定値更新処理について図25のフローチャートを参照しながら説明する。設定値更新処理はメイン処理(図15)のステップS117にて実行される。なお、設定値更新処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
設定値更新処理では、まず特定制御用のワークエリア121に設けられた設定値更新中フラグに「1」をセットする(ステップS401)。設定値更新中フラグは、設定値更新処理の実行中であることを主側CPU63にて把握可能とするフラグである。設定値更新中フラグは、後述するステップS411にて「0」クリアされる。ステップS401の処理を行った後は、タイマ割込み処理の発生を禁止している状態から許可する状態へ切り換える割込み許可の設定を行う(ステップS402)。詳細は後述するが、第1〜第3報知用表示装置69a〜69cの表示制御は、タイマ割込み処理(図26)のステップS518における管理用処理にて実行される。タイマ割込み処理の発生を許可することにより、当該管理用処理(ステップS518)が実行されている状態とすることができる。管理用処理では、設定値更新中フラグに「1」がセットされていることを条件として、特定制御用のワークエリア121における設定値カウンタの値に対応する数字が第3報知用表示装置69cに表示されるように第3報知用表示装置69cの表示制御が行われる。設定値カウンタは、既に説明したとおり、パチンコ機10の設定状態がいずれの設定値であるのかを主側CPU63にて特定するためのカウンタである。設定値更新中フラグに「1」がセットされている状態で設定値カウンタの値が更新された場合には、第3報知用表示装置69cにおける設定値の表示も更新される。遊技ホールの管理者は設定値の変更に際して第3報知用表示装置69cを確認することでパチンコ機10の現状の設定状態を把握することができる。
その後、特定制御用のワークエリア121における設定値カウンタに「1」をセットする(ステップS403)。これにより、設定値更新処理が実行される場合にはそれまでの設定値に関係なく設定値が「設定1」となる。
その後、設定キー挿入部68aがOFF操作されていないことを条件として(ステップS404:NO)、更新ボタン68bが1回押圧操作されたか否かを判定する(ステップS405)。具体的には更新ボタン68bの押圧操作を検知するセンサからの信号がLOW状態からHI状態に切り換わったか否かを判定する。ステップS405にて否定判定をした場合には、ステップS404の処理に戻り、設定キー挿入部68aがOFF操作されているか否かを判定する。
更新ボタン68bが1回押圧操作されている場合(ステップS405:YES)には、特定制御用のワークエリア121の設定値カウンタの値を1加算する(ステップS406)。また、1加算後における設定値カウンタの値が「6」を超えた場合(ステップS407:YES)には、設定値カウンタに「1」をセットする(ステップS408)。これにより、更新ボタン68bが1回押圧操作される度に1段階上の設定値に更新され、「設定6」の状況で更新ボタン68bが1回押圧操作された場合には「設定1」に戻ることになる。
ステップS407にて否定判定をした場合、又はステップS408の処理を実行した場合には、ステップS404に戻り、設定キー挿入部68aがOFF操作されているか否かを判定する。OFF操作されていない場合(ステップS404:NO)には、ステップS405以降の処理を再度実行する。一方、OFF操作されている場合(ステップS404:YES)には、タイマ割込み処理の発生を禁止する割込み禁止の設定を行う(ステップS409)。これにより、第3報知用表示装置69cにおける設定値の表示が終了する。
その後、設定値更新コマンド送信処理を実行する(ステップS410)。設定値更新コマンド送信処理では、音光側CPU93に対して設定値更新コマンドを送信する。設定値更新コマンドは、設定値更新処理が終了したことを音光側CPU93に認識させるとともに、パチンコ機10の更新後の設定値を音光側CPU93にて把握可能とするためのコマンドである。設定値更新コマンドには、特定制御用のワークエリア121における設定値カウンタに格納されているデータが含まれている。その後、特定制御用のワークエリア121における設定値更新中フラグを「0」クリアして(ステップS411)、本設定値更新処理を終了する。
<タイマ割込み処理>
次に、主側CPU63にて実行される本実施形態におけるタイマ割込み処理について、図26のフローチャートを参照しながら説明する。タイマ割込み処理は、メイン処理(図15)において設定値更新処理(ステップS117)又は残余処理(ステップS121〜ステップS124)が実行されている状況で定期的(例えば4ミリ秒周期)に実行される。なお、タイマ割込み処理におけるステップS501〜ステップS517の処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。また、ステップS518における管理用処理(図56(a))のうち後述する管理実行処理(ステップS1603)以外の処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される一方、管理実行処理(ステップS1603)は非特定制御用のプログラム及び非特定制御用のデータを利用して実行される。
タイマ割込み処理では、まず停電情報記憶処理を実行する(ステップS501)。停電情報記憶処理では、停電監視基板67から電源遮断の発生に対応した停電信号を受信しているか否かを監視し、停電の発生を特定した場合には停電時処理を実行した後に無限ループとなる。停電時処理では、図16(b)を参照しながら既に説明した停電エリア131における停電フラグ131aに「1」をセットするとともに、チェックサムを算出しその算出したチェックサムを保存する。
その後、不正用の監視対象として設定されている所定の事象が発生しているか否かを監視する不正検知処理を実行する(ステップS502)。当該不正検知処理では、不正な電波が検知される事象、不正な磁気が検知される事象及び異常な振動が検知される事象の発生を監視し、不正監視基準期間(具体的には約262秒)中に、不正な電波が検知される事象が5回特定された場合、不正な磁気が検知される事象が10回特定された場合、又は異常な振動が検知される事象が15回特定された場合に不正検知対応処理を実行する。詳細については後述するが、不正検知対応処理では特定制御用のワークエリア121に設けられた遊技停止フラグに「1」をセットする。遊技停止フラグは、遊技の進行を停止している状態であるか否かを主側CPU63にて把握可能とするフラグである。遊技停止フラグに「1」がセットされることにより、タイマ割込み処理におけるステップS506〜ステップS518の処理が実行されない状態、すなわち遊技の進行を停止している状態となる。なお、不正検知処理の詳細については後述する。
続くステップS503では、特定制御用のワークエリア121における設定値更新中フラグに「1」がセットされているか否かを判定する。既に説明したとおり、設定値更新中フラグは、設定値更新処理(図25)の実行中であることを主側CPU63にて把握可能とするフラグである。設定値更新中フラグに「1」がセットされている場合(ステップS503:YES)、すなわち設定値更新処理(図25)の実行中である場合には、ステップS504〜ステップS517の処理を実行することなく、ステップS518に進む。
ステップS503にて否定判定を行った場合には、第1乱数更新処理を実行する(ステップS504)。第1乱数更新処理では、当たり乱数カウンタC1、大当たり種別カウンタC2、リーチ乱数カウンタC3、乱数初期値カウンタC4、変動種別カウンタC5及び普電乱数カウンタC6を更新するための処理を実行する。第1乱数更新処理(ステップS504)は、設定値更新中フラグに「1」がセットされていないことを条件として実行される。このため、設定値更新処理(図25)の実行中には、当たり乱数カウンタC1、大当たり種別カウンタC2、リーチ乱数カウンタC3、乱数初期値カウンタC4、変動種別カウンタC5及び普電乱数カウンタC6の更新は行われない。既に説明したとおり、メイン処理(図15)において設定値更新処理(ステップS117)は乱数最大値設定処理(ステップS119)が実行される前に実行される。設定値更新処理(図25)のステップS402にてタイマ割込み処理(図26)の発生が許可されるため、タイマ割込み処理(図26)は設定値更新処理の実行中にも実行される。設定値更新処理の実行中にはこれらのカウンタC1〜C6の更新が行われないようにすることにより、乱数最大値設定処理(ステップS119)が実行される前にこれらのカウンタC1〜C6の更新が開始されてしまうことが防止されている。なお、第1乱数更新処理の詳細については後述する。
続くステップS505では、上記遊技停止フラグに「1」がセットされているか否かを判定することで、遊技の進行を停止している状態であるか否かを判定する。遊技停止フラグに「1」がセットされている場合(ステップS505:YES)には、ステップS506〜ステップS518の処理を実行することなく、本タイマ割込み処理を終了する。一方、ステップS505にて否定判定をした場合には、ステップS506以降の処理を実行する。
ステップS506では、ポート出力処理を実行する。ポート出力処理では、前回のタイマ割込み処理において出力情報の設定が行われている場合に、その出力情報に対応した出力を各種駆動部32b,34bに行うための処理を実行する。例えば、特電入賞装置32を開放状態に切り換えるべき情報が設定されている場合には特電用の駆動部32bへの駆動信号の出力を開始させ、閉鎖状態に切り換えるべき情報が設定されている場合には当該駆動信号の出力を停止させる。また、第2作動口34の普電役物34aを開放状態に切り換えるべき情報が設定されている場合には普電用の駆動部34bへの駆動信号の出力を開始させ、閉鎖状態に切り換えるべき情報が設定されている場合には当該駆動信号の出力を停止させる。
その後、読み込み処理を実行する(ステップS507)。読み込み処理では、停電信号及び入賞信号以外の信号の読み込みを実行し、その読み込んだ情報を今後の処理にて利用するために記憶する。
その後、入球検知処理を実行する(ステップS508)。当該入球検知処理では、各入球検知センサ42a〜49aから受信している信号を読み込み、その読み込み結果に基づいて、アウト口24a、一般入賞口31、特電入賞装置32、第1作動口33、第2作動口34及びスルーゲート35への入球の有無を特定する。ステップS508における入球検知処理では、第1作動口検知センサ46aの検知信号のHI状態からLOW状態への立ち下がりを検出した場合に特定制御用のワークエリア121における第1作動入賞フラグに「1」をセットする。第1作動入賞フラグは、第1作動口33への遊技球の入賞が発生したことを主側CPU63にて把握可能とするフラグである。また、ステップS508における入球検知処理では、第2作動口検知センサ47aの検知信号のHI状態からLOW状態への立ち下がりを検出した場合に特定制御用のワークエリア121における第2作動入賞フラグに「1」をセットする。第2作動入賞フラグは、第2作動口34への遊技球の入賞が発生したことを主側CPU63にて把握可能とするフラグである。主側CPU63は、後述する特図特電制御処理(図30)のステップS901における保留情報の取得処理において、これら第1作動入賞フラグ及び第2作動入賞フラグの状態に基づいて、第1作動口33及び第2作動口34への遊技球の入賞の有無を把握する。
その後、特定制御用のワークエリア121に設けられている複数種類のタイマカウンタの数値情報をまとめて更新するためのタイマ更新処理を実行する(ステップS509)。この場合、記憶されている数値情報が減算されて更新されるタイマカウンタを集約して扱う構成であるが、減算式のタイマカウンタの更新及び加算式のタイマカウンタの更新の両方を集約して行う構成としてもよい。
その後、遊技球の発射制御を行うための発射制御処理を実行する(ステップS510)。発射操作装置28への発射操作が継続されている状況では、所定の発射周期である0.6秒に1個の遊技球が発射される。続くステップS511では、入力状態監視処理として、ステップS507の読み込み処理にて読み込んだ情報に基づいて、各入球検知センサ42a〜49aの断線確認や、遊技機本体12や前扉枠14の開放確認を行う。
その後、遊技回の実行制御及び開閉実行モードの実行制御を行うための特図特電制御処理を実行する(ステップS512)。なお、特図特電制御処理の詳細については後述する。その後、普図普電制御処理を実行する(ステップS513)。普図普電制御処理では、スルーゲート35への入賞が発生している場合に普図側の保留情報を取得するための処理を実行するとともに、普図側の保留情報が記憶されている場合にその保留情報について開放判定を行い、さらにその開放判定を契機として普図用の演出を行うための処理を実行する。また、開放判定の結果に基づいて、第2作動口34の普電役物34aを開閉させる処理を実行する。この場合、サポートモードが低頻度サポートモードであればそれに対応する処理が実行され、サポートモードが高頻度サポートモードであればそれに対応する処理が実行される。また、開閉実行モードである場合にはその直前のサポートモードが高頻度サポートモードであったとしても低頻度サポートモードとなる。
特定制御用のワークエリア121には、高頻度サポートモードフラグ及び開閉実行モードフラグを含むモードデータエリアが設けられている。モードデータエリアは1バイトからなる。高頻度サポートモードフラグは、高頻度サポートモードであるか否かを主側CPU63にて把握可能とするフラグであるとともに、開閉実行モードフラグは開閉実行モード中であるか否かを主側CPU63にて把握可能とするフラグである。高頻度サポートモードフラグはモードデータエリアの第0ビットに設定されているとともに、開閉実行モードフラグはモードデータエリアの第1ビットに設定されている。高頻度サポートモードフラグには実行契機となった大当たり結果の種類に関係なく開閉実行モードが終了する場合に「1」がセットされる。普図普電制御処理(ステップS513)において、主側CPU63は、高頻度サポートモードフラグの状態に基づいて高頻度サポートモードであるか否かを特定するとともに、開閉実行モードフラグの状態に基づいて開閉実行モードであるか否かを特定する。
ステップS513にて普図普電制御処理を実行した後は、表示制御処理を実行する(ステップS514)。表示制御処理では、直前のステップS512及びステップS513の処理結果に基づいて、第1特図表示部37aに係る第1特図側保留情報の増減個数を第1特図保留表示部37cに反映させるための出力情報の設定、第2特図表示部37bに係る第2特図側保留情報の増減個数を第2特図保留表示部37dに反映させるための出力情報の設定、及び普図表示部38aに係る普図側保留情報の増減個数を普図保留表示部38bに反映させるための出力情報の設定を行う。また、ステップS514における表示制御処理では、直前のステップS512及びステップS513の処理結果に基づいて、第1特図表示部37a及び第2特図表示部37bの表示内容を更新させるための出力情報の設定を行うとともに、普図表示部38aの表示内容を更新させるための出力情報の設定を行う。さらにまた、ステップS514における表示制御処理では、直前のステップS513の処理結果に基づいて、ラウンド表示部39の表示内容を更新させるための出力情報の設定を行う。なお、表示制御処理の詳細については後述する。
その後、払出側CPU83から受信したコマンド及び信号の内容を確認し、その確認結果に対応した処理を行うための払出状態受信処理を実行する(ステップS515)。また、賞球コマンドを出力対象として設定するための払出出力処理を実行する(ステップS516)。
その後、外部情報設定処理を実行する(ステップS517)。外部情報設定処理では、既に説明したとおり、セキュリティ信号エリア153(図21(c))におけるセキュリティ信号フラグ153aに「1」がセットされている場合、遊技ホールの管理コンピュータに対して出力しているセキュリティ信号をLOW状態からHI状態に立ち上げる処理を実行するとともに、当該セキュリティ信号フラグ153aを「0」クリアする。セキュリティ信号の立ち上げを行うことにより、一部クリア処理(ステップS107)又は全部クリア処理(ステップS114)が実行されたことを遊技ホールの管理コンピュータにて把握可能とすることができる。また、ステップS517における外部情報設定処理では、今回のタイマ割込み処理にて実行された各種処理の処理結果に応じた外部信号の出力の開始及び終了を制御する。
ステップS503にて肯定判定を行った場合、又はステップS517の処理を行った場合には、コール命令により管理用処理に対応するサブルーチンのプログラムを実行する(ステップS518)。管理用処理(ステップS518)の実行に際しては、特定制御用のプログラムに設定されている管理用処理に対応するサブルーチンのプログラムが実行されることとなるが、当該サブルーチンのプログラムの実行に際しては管理用処理の実行後におけるタイマ割込み処理の戻り番地を特定するための情報がプッシュ命令により特定制御用のスタックエリア123に書き込まれる。そして、管理用処理が終了した場合にはポップ命令によりその戻り番地を特定するための情報が読み出され、当該戻り番地が示すタイマ割込み処理のプログラムに復帰する。なお、管理用処理の詳細については後に説明する。
既に説明したとおり、特定制御用のワークエリア121における設定値更新中フラグに「1」がセットされている場合(ステップS503:YES)、すなわち設定値更新処理(図25)の実行中である場合には、ステップS504〜ステップS517の処理は実行されない一方、管理用処理(ステップS518)は実行される。これにより、設定値更新処理(図25)の実行中に、特定制御用のワークエリア121における設定値カウンタの値に対応する数字が第3報知用表示装置69cに表示されるように第3報知用表示装置69cの表示制御を行うことができる。
次に、主側CPU63にて実行される第1乱数更新処理について図27(a)のフローチャートを参照しながら説明する。第1乱数更新処理はタイマ割込み処理(図26)のステップS504にて実行される。既に説明したとおり、第1乱数更新処理では、1バイトからなる大当たり種別カウンタC2、リーチ乱数カウンタC3、変動種別カウンタC5及び普電乱数カウンタC6の更新が行われる。なお、第1乱数更新処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
第1乱数更新処理では、まず特定制御用のワークエリア121における設定値更新中フラグに「1」がセットされているか否かを判定し(ステップS601)、設定値更新中フラグに「1」がセットされている場合(ステップS601:YES)には、ステップS602以降の処理を実行することなく本第1乱数更新処理を終了する。このように、設定値更新処理の実行中には、大当たり種別カウンタC2、リーチ乱数カウンタC3、変動種別カウンタC5及び普電乱数カウンタC6の更新は行われない。
ステップS601にて否定判定を行った場合には、更新開始設定処理を実行する(ステップS602)。更新開始設定処理では、大当たり種別カウンタC2のアドレスである「0011H」をHLレジスタ107に設定する。第1乱数更新処理においてHLレジスタ107には、更新対象カウンタのアドレスが設定される。大当たり種別カウンタC2のアドレスをHLレジスタ107に設定することにより、更新対象カウンタとして大当たり種別カウンタC2が選択されている状態となる。また、ステップS602における更新開始設定処理では、大当たり種別用最大値カウンタCN2のアドレスをBCレジスタ105に設定する。第1乱数更新処理においてBCレジスタ105には、更新対象カウンタの最大値が設定されているカウンタのアドレスが設定される。主側CPU63は、HLレジスタ107に格納されているアドレスデータに基づいて現状の更新対象カウンタを特定するとともに、BCレジスタ105に格納されているアドレスデータに基づいて当該更新対象カウンタの最大値が設定されているカウンタを特定する。
図12(a)を参照しながら既に説明したとおり、特定制御用のワークエリア121において大当たり種別カウンタC2、リーチ乱数カウンタC3、変動種別カウンタC5及び普電乱数カウンタC6は、「0011H」〜「0014H」のアドレス範囲にアドレスが連番となるように設けられている。このため、HLレジスタ107に格納されているアドレスを1加算して更新する処理(後述するステップS607の処理)を実行する度に、大当たり種別カウンタC2→リーチ乱数カウンタC3→変動種別カウンタC5→普電乱数カウンタC6の順番で、更新対象カウンタを更新することができる。また、図12(b)を参照しながら既に説明したとおり、特定制御用のワークエリア121において大当たり種別用最大値カウンタCN2、リーチ用最大値カウンタCN3、変動種別用最大値カウンタCN5及び普電用最大値カウンタCN6は、「0019H」〜「001CH」のアドレス範囲にアドレスが連番となるように設けられている。このため、BCレジスタ105に格納されているアドレスを1加算して更新する処理(後述するステップS608の処理)を実行する度に、大当たり種別用最大値カウンタCN2→リーチ用最大値カウンタCN3→変動種別用最大値カウンタCN5→普電用最大値カウンタCN6の順番で、更新対象カウンタの最大値が設定されているカウンタを更新することができる。
図27(b)は更新開始設定処理(ステップS602)のプログラム内容を説明するための説明図である。図27(b)に示すように本プログラムには、行番号として「1401」〜「1403」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
「1401」の行番号には「LDY HL,11H」という命令が設定されている。「LDY」は第1LDY実行回路156による第1LDY命令であり、「HL」は転送先としてHLレジスタ107を指定する内容であり、「11H」は「転送元」として「11H」という1バイトの数値情報を設定する内容である。既に説明したとおり、IYレジスタ109には、メイン処理(図15)のステップS103にて特定制御用基準アドレスとして「0000H」が設定されている。このため、「LDY HL,11H」が実行されることにより、「転送元」として設定されている「11H」に対してIYレジスタ109に設定されている「0000H」を加算して得られる「0011H」がHLレジスタ107にロードされる。これにより、HLレジスタ107に大当たり種別カウンタC2のアドレスをセットすることができる。
このように、1バイトのアドレスデータを設定してアドレス指定を行う第1LDY命令を利用してHLレジスタ107に大当たり種別カウンタC2のアドレスデータ(2バイト)をロードする構成であることにより、2バイトのアドレスデータを設定してアドレス指定を行うLD命令を利用してHLレジスタ107に大当たり種別カウンタC2のアドレスデータをロードする構成と比較して、更新開始設定処理を実行するためのプログラムのデータ容量を低減することができる。
「1402」の行番号には「LDY BC,19H」という命令が設定されている。「LDY」は第1LDY実行回路156による第1LDY命令であり、「BC」は転送先としてBCレジスタ105を指定する内容であり、「19H」は「転送元」として「19H」という1バイトの数値情報を設定する内容である。「LDY BC,19H」が実行されることにより、「転送元」として設定されている「19H」に対してIYレジスタ109に設定されている「0000H」を加算して得られる「0019H」がBCレジスタ105にロードされる。これにより、BCレジスタ105に大当たり種別用最大値カウンタCN2のアドレスをセットすることができる。
このように、1バイトのアドレスデータを設定してアドレス指定を行う第1LDY命令を利用してBCレジスタ105に大当たり種別用最大値カウンタCN2のアドレスデータ(2バイト)をロードする構成であることにより、2バイトのアドレスデータを設定してアドレス指定を行うLD命令を利用してBCレジスタ105に大当たり種別用最大値カウンタCN2のアドレスデータをロードする構成と比較して、更新開始設定処理を実行するためのプログラムのデータ容量を低減することができる。
「1403」の行番号には「RET」という命令が設定されている。既に説明したとおり、更新開始設定処理は第1乱数更新処理(図27(a))のステップS602にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、第1乱数更新処理(図27(a))のステップS603に進むことになる。
第1乱数更新処理(図27(a))の説明に戻り、ステップS602にて更新開始設定処理を実行した後は、更新対象カウンタの第1加算処理を実行する(ステップS603)。更新対象カウンタの第1加算処理では、4つのカウンタC2,C3,C5,C6のうち更新対象カウンタとして選択されているカウンタの値を1加算する。具体的には、特定制御用のワークエリア121においてHLレジスタ107に格納されているアドレスにより特定される更新対象カウンタの値を1加算する。
その後、ステップS603にて1加算された後の更新対象カウンタの値が最大値を超えたか否かを判定する(ステップS604)。上述したとおり、主側CPU63はHLレジスタ107に格納されているアドレスに基づいて更新対象カウンタを特定することができるとともに、BCレジスタ105に格納されているアドレスに基づいて当該更新対象カウンタの最大値を特定することができる。ステップS604にて肯定判定を行った場合には、更新対象カウンタの値を「0」クリアする(ステップS605)。
ステップS604にて否定判定を行った場合、又はステップS605の処理を行った場合には、HLレジスタ107に格納されているアドレスデータが第1乱数更新処理の終了アドレス(具体的には「0014H」)であるか否かを判定する(ステップS606)。ステップS606にて否定判定を行った場合には、HLレジスタ107の値を1加算することにより更新対象カウンタを更新し(ステップS607)、BCレジスタ105の値を1加算する(ステップS608)。これにより、BCレジスタ105に格納されているアドレスに基づいて、ステップS607にて更新された後の更新対象カウンタの最大値が設定されているカウンタ(4つの最大値カウンタCN2,CN3,CN5,CN6のいずれか)を特定可能とすることができる。
ステップS608の処理を行った場合には、ステップS603に戻り、ステップS606にて肯定判定が行われるまでステップS603〜ステップS608の処理を繰り返し実行する。これにより、大当たり種別カウンタC2、リーチ乱数カウンタC3、変動種別カウンタC5及び普電乱数カウンタC6の更新を行うことができる。ステップS606にて肯定判定を行った場合には、第2乱数更新処理を実行して(ステップS609)、本第1乱数更新処理を終了する。図28は第2乱数更新処理を示すフローチャートである。
第2乱数更新処理では、まずHLレジスタ107の値を1加算する(ステップS701)。これにより、HLレジスタ107に、当たり乱数カウンタC1の下位エリアのアドレスである「0015H」が格納されている状態となる。その後、BCレジスタ105の値を1加算する(ステップS702)。これにより、BCレジスタ105に、当たり用最大値カウンタCN1の下位エリアのアドレスである「001DH」が格納されている状態となる。
その後、更新対象カウンタの第2加算処理を実行する(ステップS703)。当該第2加算処理では、当たり乱数カウンタC1及び乱数初期値カウンタC4のうち更新対象カウンタとして選択されているカウンタの値を1加算する。これらのカウンタC1,C4は2バイトからなるカウンタである。更新対象カウンタの第2加算処理(ステップS703)では、特定制御用のワークエリア121においてHLレジスタ107に格納されているアドレスにより特定される2バイトのカウンタの値を1加算する。
その後、ステップS703にて1加算された後の更新対象カウンタの値が最大値を超えたか否かを判定する(ステップS704)。上述したとおり、主側CPU63はHLレジスタ107に格納されているアドレスに基づいて更新対象カウンタを特定することができるとともに、BCレジスタ105に格納されているアドレスに基づいて当該更新対象カウンタの最大値を特定することができる。ステップS704にて肯定判定を行った場合には、更新対象カウンタの値を「0」クリアする(ステップS705)。
ステップS704にて否定判定を行った場合、又はステップS705の処理を行った場合には、HLレジスタ107に格納されているアドレスデータが第2乱数更新処理の終了アドレス(具体的には「0017H」)であるか否かを判定する(ステップS706)。ステップS706にて否定判定を行った場合には、HLレジスタ107の値を2加算する(ステップS707)。これにより、HLレジスタ107に乱数初期値カウンタC4の下位エリアのアドレスである「0017H」が格納されている状態として、更新対象カウンタを当たり乱数カウンタC1から乱数初期値カウンタC4に更新することができる。その後、BCレジスタ105の値を2加算する(ステップS708)。これにより、BCレジスタ105に初期値用最大値カウンタCN4の下位エリアのアドレスである「001FH」が格納されている状態とすることができる。
ステップS708の処理を行った場合には、ステップS703に戻り、ステップS703〜ステップS706の処理を実行する。これにより、乱数初期値カウンタC4の値を更新することができる。その後、ステップS706にて肯定判定を行って、本第2乱数更新処理を終了する。
次に、主側CPU63にて実行される不正検知処理について図29(a)のフローチャートを参照しながら説明する。不正検知処理はタイマ割込み処理(図26)のステップS502にて実行される。なお、不正検知処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
不正検知処理では、まず不正な電波を検知しているか否かを判定する(ステップS801)。ステップS801では、既に説明した不正電波検知センサ(図示略)から受信している検知信号がHI状態である場合に肯定判定を行う。ステップS801にて肯定判定を行った場合には、特定制御用のワークエリア121における不正電波検知カウンタ133の値を1減算し(ステップS802)、当該1減算後の不正電波検知カウンタ133の値が「0」となったか否かを判定する(ステップS803)。既に説明したとおり、不正電波検知カウンタ133には、不正監視基準期間(具体的には約262秒)が経過する度に初期値である「5」が設定される。
ステップS801にて否定判定を行った場合、又はステップS803にて否定判定を行った場合には、不正な磁気を検知しているか否かを判定する(ステップS804)。ステップS804では、既に説明した不正磁気検知センサ(図示略)から受信している検知信号がHI状態である場合に肯定判定を行う。ステップS804にて肯定判定を行った場合には、特定制御用のワークエリア121における不正磁気検知カウンタ134の値を1減算し(ステップS805)、当該1減算後の不正磁気検知カウンタ134の値が「0」となったか否かを判定する(ステップS806)。既に説明したとおり、不正磁気検知カウンタ134には、不正監視基準期間(具体的には約262秒)が経過する度に初期値である「10」が設定される。
ステップS804にて否定判定を行った場合、又はステップS806にて否定判定を行った場合には、異常な振動を検知しているか否かを判定する(ステップS807)。ステップS807では、既に説明した異常振動検知センサ(図示略)から受信している検知信号がHI状態である場合に肯定判定を行う。ステップS807にて肯定判定を行った場合には、特定制御用のワークエリア121における異常振動検知カウンタ135の値を1減算し(ステップS808)、当該1減算後の異常振動検知カウンタ135の値が「0」となったか否かを判定する(ステップS809)。既に説明したとおり、異常振動検知カウンタ135には、不正監視基準期間(具体的には約262秒)が経過する度に初期値である「15」が設定される。
ステップS807にて否定判定を行った場合、又はステップS809にて否定判定を行った場合には、不正監視タイマカウンタ132の更新処理を実行する(ステップS810)。当該更新処理では、特定制御用のワークエリア121における不正監視タイマカウンタ132に格納されている数値情報をIXレジスタ108に読み出し、当該IXレジスタ108の値を1加算する。当該1加算後の値が最大値である「65535」を超えた場合、IXレジスタ108の値は「0」となるとともに、キャリーフラグに「1」がセットされる。その後、LD命令により、IXレジスタ108に格納されている数値情報を不正監視タイマカウンタ132にロードする。これにより、不正監視タイマカウンタ132の値が更新される。キャリーフラグの状態は、LD命令が実行されても変化しない。このため、更新後の不正監視タイマカウンタ132の値が「0」となった場合、すなわち不正監視タイマカウンタ132の値が1周した場合には、ステップS810の処理の終了時にキャリーフラグに「1」がセットされている状態となる。不正監視タイマカウンタ132の値は約262秒で1周する。主側CPU63は、不正監視タイマカウンタ132の値が1周したことに基づいて今回の不正監視基準期間が終了して次の不正監視基準期間が開始されるタイミングであることを把握する。
その後、ステップS810にて不正監視タイマカウンタ132の値が1周したか否かを判定する(ステップS811)。ステップS811では、キャリーフラグに「1」がセットされているか否かを判定し、キャリーフラグに「1」がセットされている場合に不正監視タイマカウンタ132の値が1周したと判定する。不正監視タイマカウンタ132の値が1周した場合(ステップS811:YES)には、不正検知用初期化処理を実行して(ステップS812)、本不正検知処理を終了する。ステップS812における不正検知用初期化処理では、不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135に初期値である「5」を設定する。このように、これらの検知カウンタ133〜135には、不正監視基準期間が経過する度に初期値が設定される。
図29(b)は不正検知用初期化処理(ステップS812)のプログラム内容を説明するための説明図である。図29(b)に示すように本プログラムには、行番号として「1501」〜「1504」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
「1501」の行番号には「LDT HL,400H」という命令が設定されている。「LDT」はLDT実行回路149によるLDT命令であり、「HL」は転送先としてHLレジスタ107を指定する内容であり、「400H」は転送元として「400H」という12ビットの数値情報を設定する内容である。既に説明したとおり、TPレジスタ111には、メイン処理(図15)のステップS104にてデータテーブルの基準アドレスである「9000H」が設定されている。このため、「LDT HL,400H」が実行されることにより、転送元として設定されている「400H」に対してTPレジスタ111に設定されている「9000H」を加算して得られる「9400H」がHLレジスタ107にロードされる。これにより、HLレジスタ107に第1初期化テーブル64k(図18(a))の開始アドレスをセットすることができる。
このように、12ビットの数値情報を設定してアドレス指定を行うLDT命令を利用してHLレジスタ107に第1初期化テーブル64kの開始アドレスをロードする構成であることにより、2バイトの数値情報を設定してアドレス指定を行うLD命令を利用してHLレジスタ107に第1初期化テーブル64kの開始アドレスをロードする構成と比較して、不正検知用初期化処理を実行するためのプログラムのデータ容量を低減することができる。
行番号「1502」〜「1503」には、電源投入設定処理(図17(c))の行番号「1002」〜「1003」と同様の命令が設定されている。具体的には、「1502」の行番号には「XOR D,D」という命令が設定されている。「XOR」はXOR命令という排他的論理和命令であり、コンマの前後の「D」はDレジスタ106aを指定する内容である。「XOR D,D」が実行されることにより、Dレジスタ106aの値とDレジスタ106aの値との排他的論理和の演算結果がコンマの前の「D」で指定されたDレジスタ106aに設定される。具体的には、Dレジスタ106aの値に関わらず、Dレジスタ106aに「00H」が設定される。つまり、Dレジスタ106aが「0」クリアされる。これにより、Dレジスタ106aに不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135のアドレスデータにおいて共通している上位1バイトのデータ(「00H」)を設定することができる。
「1503」の行番号には「CALL 4BTS10」という命令が設定されている。「4BTS10」は既に説明したデータ設定実行処理(図19(c))である。「CALL 4BTS10」という命令は、データ設定実行処理というサブルーチンを呼び出すための命令である。行番号「1503」では、既に説明した電源投入設定処理(図17(c))の行番号「1003」と同様に、HLレジスタ107に第1初期化テーブル64kの開始アドレスが設定されているとともにDレジスタ106aに「00H」が格納されている状態でデータ設定実行処理が実行される。行番号「1504」にてデータ設定実行処理が実行されることにより、特定制御用のワークエリア121における不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135に初期値である「5」が設定される。
このように、電源投入設定処理(図17(c))においても利用されるデータ設定実行処理のプログラム及び第1初期化テーブル64kのデータを利用して不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135を初期化する構成であることにより、不正検知用初期化処理においてこれらの検知カウンタ133〜135を初期化するための専用のプログラム及びデータを記憶しておく構成と比較して、主側ROM64におけるプログラム及びデータのデータ容量を低減することができる。
「1504」の行番号には「RET」という命令が設定されている。「RET」という命令が実行されることで、不正検知用初期化処理が終了する。既に説明したとおり、不正検知用初期化処理は不正検知処理(図29(a))のステップS812にて実行されるサブルーチンであり、不正検知用初期化処理が終了した場合には、不正検知処理も終了することとなる。
不正検知処理(図29(a))の説明に戻り、ステップS803にて肯定判定を行った場合、ステップS806にて肯定判定を行った場合、又はステップS809にて肯定判定を行った場合には、不正検知対応処理(ステップS813〜ステップS814の処理)を実行する。具体的には、まず不正報知コマンドを音光側CPU93に送信する(ステップS813)。不正報知コマンドは、不正な電波、不正な磁気又は異常な振動が検出されて異常状態となったことを音光側CPU93に認識させるためのコマンドである。音光側CPU93は、不正報知コマンドを受信した場合、当該異常状態であることを報知するための不正報知が行われるように、表示発光部53の発光制御、スピーカ部54の音出力制御及び図柄表示装置41の表示制御を行う。これにより、不正な電波、不正な磁気又は異常な振動が検出されて異常状態となったことを遊技ホールの管理者に報知することができる。
その後、特定制御用のワークエリア121における遊技停止フラグに「1」をセットして(ステップS814)、本不正検知処理を終了する。遊技停止フラグに「1」がセットされることにより、タイマ割込み処理(図26)におけるステップS506〜ステップS518の処理が実行されない状態となり、遊技の進行を停止している状態となる。遊技停止フラグに「1」がセットされている状態は、メイン処理(図15)において一部クリア処理(ステップS107)又は全部クリア処理(ステップS114)が実行されることにより解消される。
<特図特電制御処理>
次に、主側CPU63にて実行される特図特電制御処理について図30のフローチャートを参照しながら説明する。なお、特図特電制御処理はタイマ割込み処理(図26)におけるステップS512にて実行される。
特図特電制御処理では、第1作動口33又は第2作動口34への入賞が発生している場合に保留情報を取得するための処理を実行するとともに、保留情報が記憶されている場合にその保留情報について当否判定を行い、さらにその当否判定を契機として遊技回用の演出を行うための処理を実行する。当否判定の結果に基づいて、遊技回用の演出後に開閉実行モードに移行させる処理を実行するとともに、開閉実行モード中及び開閉実行モード終了時の処理を実行する。
特図特電制御処理では、まず保留情報の取得処理を実行する(ステップS901)。保留情報の取得処理では、特図側の保留情報を取得する。具体的には、特定制御用のワークエリア121における第1作動入賞フラグの状態に基づいて第1作動口33への遊技球の入賞が発生しているか否かを判定する。第1作動口33への遊技球の入賞が発生している場合には、特図保留エリア113における第1特図保留数カウンタ118を参照して第1特図保留エリア115に記憶されている保留情報の数を把握し、その保留情報の数が上限値(具体的には「4」)未満である場合に、当たり乱数カウンタC1、大当たり種別カウンタC2及びリーチ乱数カウンタC3の各値を、第1特図保留エリア115のうち保留情報が記憶されていない最上位側のエリアに記憶する。そして、第1作動入賞フラグを「0」クリアする。また、当該取得処理では、特定制御用のワークエリア121における第2作動入賞フラグの状態に基づいて第2作動口34への遊技球の入賞が発生しているか否かを判定する。第2作動口34への遊技球の入賞が発生している場合には、特図保留エリア113における第2特図保留数カウンタ119を参照して第2特図保留エリア116に記憶されている保留情報の数を把握し、その保留情報の数が上限値(具体的には「4」)未満である場合に、当たり乱数カウンタC1、大当たり種別カウンタC2及びリーチ乱数カウンタC3の各値を、第2特図保留エリア116のうち保留情報が記憶されていない最上位側のエリアに記憶する。そして、第2作動入賞フラグを「0」クリアする。
ステップS901における保留情報の取得処理では、第1特図保留エリア115についての保留情報又は第2特図保留エリア116についての保留情報を取得した場合には、保留コマンドを音光側CPU93に送信する。音光側CPU93では、受信した保留コマンドに対応したコマンドを表示制御装置89に送信する。表示制御装置89では、保留コマンドを受信することで、図柄表示装置41における保留情報の数の表示を保留個数の増加に対応させて変更させる。この場合、当該保留コマンドには、第1特図保留エリア115及び第2特図保留エリア116のうちいずれの保留情報が増加したのかを示す情報が含まれているため、図柄表示装置41では、増加した側に対応した保留個数の表示が変更される。
また、上記のように保留情報の数が増加した場合には、タイマ割込み処理(図26)のステップS514における表示制御処理にて、第1特図保留表示部37c及び第2特図保留表示部37dのうち保留個数の増加に対応した側に対して、保留個数の増加に対応した表示内容に変更されるように表示制御が行われる。なお、表示制御処理(ステップS514)の詳細については後述する。
ステップS901にて保留情報の取得処理を実行した後は、特図特電アドレス取得処理を実行する(ステップS902)。当該特図特電アドレス取得処理では、特定制御用のワークエリア121に設けられた特図特電カウンタの情報を読み出すとともに、主側ROM64に記憶されている特図特電アドレステーブル64q(図31)を読み出す。そして、特図特電アドレステーブル64qから特図特電カウンタの情報に対応した開始アドレスを取得する。なお、特図特電アドレス取得処理の詳細については後述する。
既に説明したとおり特図特電制御処理には、遊技回用の演出を制御するための処理と、開閉実行モードを制御するための処理と、が含まれている。この場合に、遊技回用の演出を制御するための処理として、遊技回用の演出を開始させるための処理である特図変動開始処理(ステップS904)と、遊技回用の演出を進行させるための処理である特図変動中処理(ステップS905)と、遊技回用の演出を終了させるための処理である特図確定中処理(ステップS906)と、が設定されている。
また、開閉実行モードを制御するための処理として、開閉実行モードのオープニングを制御するための処理である特電開始処理(ステップS907)と、特電入賞装置32の開放中の状態を制御するための処理である特電開放中処理(ステップS908)と、特電入賞装置32の閉鎖中の状態を制御するための処理である特電閉鎖中処理(ステップS909)と、開閉実行モードのエンディング及び開閉実行モード終了時の遊技状態の移行を制御するための処理である特電終了処理(ステップS910)と、が設定されている。
このような処理構成において、特図特電カウンタは、上記複数種類の処理のうちいずれを実行すべきであるかを主側CPU63にて把握するためのカウンタであり、特図特電アドレステーブル64q(図31)には、特図特電カウンタの数値情報に対応させて、上記複数種類の処理を実行するためのプログラムの開始アドレスが設定されている。
図31は特図特電アドレステーブル64qのデータ構成を説明するための説明図である。図31に示すように、特図特電アドレステーブル64qは、主側ROM64において「9180H」〜「918AH」のアドレス範囲に記憶されている。
開始アドレスSA0は、特図変動開始処理(ステップS904)を実行するためのプログラムの開始アドレスであり、開始アドレスSA1は、特図変動中処理(ステップS905)を実行するためのプログラムの開始アドレスであり、開始アドレスSA2は、特図確定中処理(ステップS906)を実行するためのプログラムの開始アドレスであり、開始アドレスSA3は、特電開始処理(ステップS907)を実行するためのプログラムの開始アドレスであり、開始アドレスSA4は、特電開放中処理(ステップS908)を実行するためのプログラムの開始アドレスであり、開始アドレスSA5は、特電閉鎖中処理(ステップS909)を実行するためのプログラムの開始アドレスであり、開始アドレスSA6は、特電終了処理(ステップS910)を実行するためのプログラムの開始アドレスである。
これらの開始アドレスSA0〜SA6のアドレスデータは2バイトのデータであり、これらの開始アドレスSA0〜SA6の上位4ビットはいずれも「9H」である。特図特電アドレステーブル64qには、これらの開始アドレスSA0〜SA6から共通の上位4ビット(「9H」)を除いた下位12ビットのみが設定されている。具体的には、主側ROM64において「9180H」のアドレスに対応するエリア及び「9181H」のアドレスに対応するエリアのうち下位4ビットのエリア(以下、下位4ビットエリアともいう。)には開始アドレスSA0(「9700H」)の下位12ビット(「700H」)が設定されているとともに、「9181H」のアドレスに対応するエリアのうち上位4ビットのエリア(以下、上位4ビットエリアともいう。)及び「9182H」のアドレスに対応するエリアには開始アドレスSA1(「9712H」)の下位12ビット(「712H」)が設定されている。「9183H」のアドレスに対応するエリア及び「9184H」のアドレスに対応する下位4ビットエリアには開始アドレスSA2(「971FH」)の下位12ビット(「71FH」)が設定されているとともに、「9184H」のアドレスに対応する上位4ビットエリア及び「9185H」のアドレスに対応するエリアには開始アドレスSA3(「9731H」)の下位12ビット(「731H」)が設定されている。「9186H」のアドレスに対応するエリア及び「9187H」のアドレスに対応する下位4ビットエリアには開始アドレスSA4(「9740H」)の下位12ビット(「740H」)が設定されているとともに、「9187H」のアドレスに対応する上位4ビットエリア及び「9188H」のアドレスに対応するエリアには開始アドレスSA5(「974CH」)の下位12ビット(「74CH」)が設定されている。「9189H」のアドレスに対応するエリア及び「918AH」のアドレスに対応する下位4ビットエリアには開始アドレスSA6(「9753H」)の下位12ビット(「753H」)が設定されているとともに、「918AH」のアドレスに対応する上位4ビットエリアには使用されない調整用データとして「0000B」が設定されている。
特図特電カウンタは、現状格納されている数値情報に対応した処理を終了した場合に当該数値情報を更新すべき条件が成立していることを契機として、その次の処理回における特図特電制御処理にて実行される処理に対応させて、1加算、1減算又は「0」クリアされる。したがって、各処理回における特図特電制御処理では、特図特電カウンタにセットされている数値情報に応じた処理を実行すればよいこととなる。なお、特図特電カウンタは、初期値として0が設定されている。
特図特電制御処理(図30)の説明に戻り、ステップS902の処理を実行した後は、ステップS903にて、ステップS902にて取得した開始アドレスの示す処理にジャンプする処理を実行する。具体的には、取得した開始アドレスがSA0である場合にはステップS904の特図変動開始処理にジャンプし、取得した開始アドレスがSA1である場合にはステップS905の特図変動中処理にジャンプし、取得した開始アドレスがSA2である場合にはステップS906の特図確定中処理にジャンプし、取得した開始アドレスがSA3である場合にはステップS907の特電開始処理にジャンプし、取得した開始アドレスがSA4である場合にはステップS908の特電開放中処理にジャンプし、取得した開始アドレスがSA5である場合にはステップS909の特電閉鎖中処理にジャンプし、取得した開始アドレスがSA6である場合にはステップS910の特電終了処理にジャンプする。ステップS904〜ステップS910のいずれかの処理を実行した場合には、本特図特電制御処理を終了する。なお、ステップS904〜ステップS910の処理の内容については後述する。
<LDB命令>
特図特電カウンタの値に対応する開始アドレスSA0〜SA6は、後述するアドレス取得実行処理(図33(e))においてHLレジスタ107に取得される。アドレス取得実行処理では、開始アドレスSA0〜SA6を取得するために「LDB HL,(HL).A」というLDB命令が実行される。図9に示すように、主側MPU62はLDB命令を実行するための専用回路であるLDB実行回路157を備えており、主側CPU63はLDB命令を実行することができる。
LDB命令の命令コードは、「LDB 転送先,取得データ指定.取得ビット数指定」という構成を有している。LDB命令では、「転送先」として汎用レジスタ又はペアレジスタが設定される。LDB命令において「転送先」として設定される汎用レジスタはWレジスタ104aであるとともに、LDB命令において「転送先」として設定されるペアレジスタはHLレジスタ107である。なお、LDB命令において「転送先」の汎用レジスタとして、Aレジスタ104b、Bレジスタ105a、Cレジスタ105b、Dレジスタ106a、Eレジスタ106b、Hレジスタ107a又はLレジスタ107bが設定される構成としてもよい。また、LDB命令において「転送先」のペアレジスタとして、WAレジスタ104、BCレジスタ105、又はDEレジスタ106が設定される構成としてもよい。
「転送先」として1バイトのWレジスタ104aが設定されている場合には、LDB命令により当該「転送先」のWレジスタ104aに1〜8のいずれかのビット数のデータが設定される。「転送先」のWレジスタ104aに1〜7のいずれかのビット数のデータが設定される場合には、Wレジスタ104aにおける下位側のビットに当該データがロードされるとともに、Wレジスタ104aにおける上位側のビットが「0」でマスクされる。例えば、「転送先」のWレジスタ104aに2ビットのデータがロードされる場合には、Wレジスタ104aの下位側に存在する第0〜第1ビットに当該データがロードされるとともに、上位側に存在する第2〜第7ビットが「0」でマスクされる。
「転送先」として2バイトのHLレジスタ107が設定されている場合には、LDB命令により当該「転送先」のHLレジスタ107に1〜16のいずれかのビット数のデータがロードされる。「転送先」のHLレジスタ107に1〜15のいずれかのビット数のデータがロードされる場合には、HLレジスタ107における下位側のビットに当該データがロードされるとともに、HLレジスタ107における上位側のビットが「0」でマスクされる。例えば、「転送先」のHLレジスタ107に12ビットのデータがロードされる場合には、HLレジスタ107の下位側に存在する第0〜第11ビットに当該データがロードされるとともに、上位側に存在する第12〜第15ビットが「0」でマスクされる。
LDB命令では、「取得データ指定」として「(HL)」が設定される。LDB命令では、「取得データ指定」として設定されたHLレジスタ107に格納されている2バイトのデータ(以下、取得データ指定データという。)に基づいて、「転送先」のレジスタに転送されるデータの取得開始アドレス及び取得開始ビット目が特定される。
「転送先」として1バイトのWレジスタ104aが設定されている場合、LDB命令では「取得ビット数指定」として、「0」〜「7」のいずれかの数値が格納されている汎用レジスタが設定される。また、「転送先」として2バイトのHLレジスタ107が設定されている場合、LDB命令では「取得ビット数指定」として、「0」〜「15」のいずれかの数値が格納されている汎用レジスタが設定される。LDB命令において「取得ビット数指定」として設定される汎用レジスタはAレジスタ104bである。なお、LDB命令において「取得ビット数指定」の汎用レジスタとして、Bレジスタ105a、Cレジスタ105b、Dレジスタ106a、Eレジスタ106b、Hレジスタ107a又はLレジスタ107bが設定される構成としてもよい。
「取得ビット数指定」は、「転送先」のレジスタにロードされるデータのビット数を指定するためのデータ(以下、取得ビット数指定データともいう。)である。LDB命令では、LDB実行回路157にて「取得ビット数指定」に設定されているAレジスタ104bの値に「1」を加算して得られる値を演算する処理が行われて、当該演算結果に対応するビット数のデータが「転送先」にロードされる。つまり、「転送先」には、「取得ビット数指定」に「1」を加算して得られる値に対応するビット数のデータがロードされる。このため、「取得ビット数指定」には、「転送先」にロードするデータのビット数から「1」を減算した値が設定される。例えば、「取得ビット数指定」として「1」という数値が格納されているAレジスタ104bが設定されている場合、「転送先」のレジスタには当該「1」に「1」を加算して得られる2ビットのデータがロードされる。また、例えば、「取得ビット数指定」として「11」という数値が格納されているAレジスタ104bが設定されている場合、「転送先」のレジスタには当該「11」に「1」を加算して得られる12ビットのデータがロードされる。
LDB命令が実行されることにより、主側ROM64において取得開始アドレスに対応するエリアの取得開始ビット目から「取得ビット数指定」に対応するビット数のデータが「転送先」のレジスタにロードされる。
図32(a)〜図32(d)は取得データ指定データから取得開始アドレス及び取得開始ビット目が算出される過程を説明するための説明図である。2バイトの取得データ指定データのうち上位13ビット(第3〜第15ビット)は取得開始アドレスを指定するためのデータであるとともに、下位3ビット(第0〜第2ビット)は取得開始ビット目を指定するためのデータである。取得開始アドレスは、取得データ指定データを「8」(「1000B」)で除算した場合の商に対してTPレジスタ111に格納されているデータテーブルの基準アドレス(本実施形態では「9000H」)を加算する演算の演算結果として算出されるアドレスである。取得データ指定データの除算に用いられる「8」(「1000B」)は、取得データ指定データのうち取得開始ビット目を指定するためのデータのビット数(「3」)で表される数値範囲(「0」〜「7」)の最大値である「7」に「1」を加算した値であり、「2」の3乗である。ビット数「n」(nは1〜15のいずれかの整数)で表される数値範囲の最大値に「1」を加算した値は「2」のn乗となる。2バイトの2進数を当該「2」のn乗で除算すると、当該2バイトの2進数において第nビット〜第15ビットに設定されている「0」又は「1」の情報がnビット下位側にシフトして除算後の商データにおける下位(16−n)ビットに設定されるとともに、当該除算後の商データにおける上位nビット(第(16−n)ビット〜第15ビット)に「0」が設定される。本実施形態におけるLDB命令では、2バイトの2進数である取得データ指定データを「2」の3乗である「8」(「1000B」)で除算する。取得データ指定データを「8」で除算すると、当該取得データ指定データの第3〜第15ビットに設定されている「0」又は「1」の情報が3ビット下位側にシフトして除算後の商データにおける下位13ビット(第0〜第12ビット)に設定されるとともに、当該除算後の商データにおける上位3ビット(第13〜第15ビット)に「0」が設定される。
具体的には、図32(a)に示すように、取得データ指定データとして「0C24H」が設定されている。図32(b)に示すように、3ビットで表される数値範囲の最大値である「7」に「1」を加算した値である「8」で取得データ指定データ(「0C24H」)を除算すると、当該取得データ指定データの第3〜第15ビットに設定されている「0000110000100」が3ビット下位側にシフトして除算後の商データにおける下位13ビット(第0〜第12ビット)に設定されるとともに、当該除算後の商データにおける上位3ビット(第13〜第15ビット)に「0」が設定される。これにより、除算後の商データは「0000000110000100」となる。その後、当該除算後の商データに対してTPレジスタ111に格納されているデータテーブルの基準アドレス(「9000H」)を加算する演算の演算結果として、図32(c)に示すように「1001000110000100」(「9184H」)という取得開始アドレスが算出される。除算後の商データ(図32(b))における第12ビットは「0」であるとともに、データテーブルの基準アドレスである「9000H」の第12ビットは「1」である。また、除算後の商データにデータテーブルの基準アドレスを加算する演算では当該第12ビットへの繰り上がりは発生しない。このため、図32(c)に示すように、取得開始アドレスにおける第0〜第11ビットには取得データ指定データ(図32(a))における第3〜第14ビットのデータが設定されるとともに、当該取得開始アドレスにおける第12〜第15ビットにはデータテーブルの基準アドレスにおける第12〜第15ビットのデータである「1001B」(「9H」)が設定される。
このように、取得開始アドレスの第0〜第11ビットには取得データ指定データにおける第3〜第14ビットのデータが設定されるとともに、取得開始アドレスの第12〜第15ビットにはTPレジスタ111に格納されているデータテーブルの基準アドレスにおける第12〜第15ビットのデータが設定される。
取得開始ビット目は、取得データ指定データの下位1バイトと「00000111B」(「07H」)との論理積の演算により算出される。取得開始ビット目を算出するための演算に用いられる当該「00000111B」は、2バイトの取得データ指定データから当該取得データ指定データにおける下位3ビット(第0〜第2ビット)のデータのみを分離して、当該下位3ビットのデータを単独で利用可能とするためのデータである。取得データ指定データの下位1バイトと「00000111B」との論理積の演算では、取得データ指定データにおける下位3ビット(第0〜第2ビット)のデータが演算結果の下位3ビット(第0〜第2ビット)に設定されるとともに、当該演算結果の上位5ビット(第3〜第7ビット)に「0」が設定される。具体的には、図32(a)に示すように取得データ指定データとして「0C24H」が設定されている場合の取得開始ビット目は、取得データ指定データの下位1バイトである「00100100B」(「24H」)と「00000111B」との論理積の演算により「00000100B」(「4」)となる。図32(d)に示すように、取得開始ビット目の第0〜第2ビットには取得データ指定データ(図32(a))における第0〜第2ビットのデータが設定されるとともに、取得開始ビット目の第3〜第7ビットには「0」が設定される。
LDB命令の命令コードには、取得開始ビット目を算出するための演算に「00000111B」を用いることを指定するためのデータは設定されない。取得データ指定データの下位1バイトと「00000111B」との論理積の演算は、プログラムに設定されているLDB命令が実行される場合にLDB実行回路157にて自動的に実行される。このため、LDB命令の命令コードに取得開始ビット目を算出するための演算に「00000111B」を用いることを指定するためのデータを設定する必要がある構成と比較して、LDB命令の命令コードのデータ容量を低減することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
取得開始ビット目が「n」(nは0〜7の整数)である場合、主側ROM64において取得開始アドレスに対応するエリアの第0〜第7ビットのうち第nビット目以降(第nビット〜第7ビット)に設定されている取得ビット数分の「0」又は「1」のデータが「転送先」のレジスタに転送される。取得開始アドレスに対応するエリアにおいて取得開始ビット目以降(第nビット〜第7ビット)に存在している「0」又は「1」のデータの数が今回の取得ビット数未満である場合には、取得開始アドレスにおける取得開始ビット目以降のデータ(取得開始アドレスにおける第nビット〜第7ビットのデータ)と、取得開始アドレスの次のアドレスにおける第0ビット目以降のデータとが「転送先」にロードされる。ここで、取得開始アドレスの次のアドレスとは、取得開始アドレスに「1」を加算することにより得られるアドレスである。
例えば、TPレジスタ111に基準アドレスとして「9000H」が格納されており、HLレジスタ107に取得データ指定データとして「0C24H」(「3108」)が格納されており、Aレジスタ104bに取得ビット数指定データとして「BH」(11)が格納されている状態において、「LDB HL,(HL).A」が実行される場合、「転送先」はHLレジスタ107となる。既に説明したとおり、取得開始アドレスを指定するためのデータは取得データ指定データの上位13ビットに設定されているとともに、取得開始ビット目を指定するためのデータは取得データ指定データの下位3ビットに設定されている。取得開始アドレスは、取得データ指定データを「8」で除算した「0184H」(「388」)に基準アドレス(「9000H」)を加算して得られる「9184H」となる。取得開始ビット目は、取得データ指定データの下位3ビットが抽出されて「00000100B」(「4」)となる。既に説明したとおり、取得開始ビット目は、取得データ指定データの下位1バイト(「00100100B」)と「00000111H」との論理積の演算により算出される。取得ビット数は、「0BH」に「1」を加算して得られる「0CH」(「12」)となる。このため、当該状態において「LDB HL,(HL).A」が実行された場合には、主側ROM64において取得開始アドレスである「9184H」(図31参照)に対応するエリアにおける取得開始ビット目(第4ビット目)以降に設定されている4ビットのデータと、当該取得開始アドレスの次のアドレスである「9185H」に対応するエリアにおける第0ビット目以降に設定されている8ビットのデータと、が転送先であるHLレジスタ107の第0〜第11ビットに設定されるとともに、当該HLレジスタ107の第12〜第15ビットが「0」でマスクされる。具体的には、「9184H」に対応するエリアの第4〜第7ビットのデータ及び「9185H」に対応するエリアの第0〜第7ビットのデータがHLレジスタ107の第0〜第11ビットに設定される。
図32(e)及び図32(f)は特図特電アドレステーブル64qからHLレジスタ107に開始アドレスSA3が取得される様子を説明するための説明図である。既に説明したとおり、特図特電アドレステーブル64q(図31)において、「9184H」の第4〜第7ビット及び「9185H」の第0〜第7ビットには開始アドレスSA3の下位12ビットが設定されている。「LDB HL,(HL).A」が実行されることにより、図32(e)に示すように、HLレジスタ107の下位12ビットに開始アドレスSA3の下位12ビットがロードされる。後述するアドレス取得実行処理(図33(e))では、LDB命令を実行した後、HLレジスタ107の値にデータテーブルの基準アドレスである「9000H」を加算する。これにより、図32(f)に示すように、HLレジスタ107に開始アドレスSA3の全体を取得することができる。
LDB命令を利用することにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位3ビット(第0〜第2ビット)に対応する取得開始ビット目を特定する処理と、取得開始アドレスの取得開始ビット目から取得ビット数分のデータを「転送先」のレジスタにロードする処理と、「転送先」のレジスタのうちロードされたデータよりも上位側に存在するビットを「0」でマスクする処理と、を一命令で実行することができる。これらの処理はLDB実行回路157にて実行される。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
次に、特図特電制御処理(図30)のステップS902にて実行される特図特電アドレス取得処理のプログラム内容について図33(a)の説明図を参照しながら説明する。図33(a)に示すように本プログラムには、行番号として「1601」〜「1605」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
「1601」の行番号には「LD W,(TZTDCNT)」という命令が設定されている。「LD」はLD命令であり、「W」は転送先としてWレジスタ104aを指定する内容である。「TZTDCNT」は特定制御用のワークエリア121における特図特電カウンタのアドレスであり、「(TZTDCNT)」は特図特電カウンタに格納されているデータを「転送先」に転送する内容である。既に説明したとおり、特図特電カウンタには0〜6のいずれかの数値データが格納されている。「LD W,(TZTDCNT)」が実行されることにより、「転送先」のWレジスタ104aに特図特電カウンタのデータ(1バイト)がロードされる。
「1602」の行番号には「LD B,0CH」という命令が設定されている。「LD」はLD命令であり、「B」は転送先としてBレジスタ105aを指定する内容であり、「0CH」は「転送元」として「0CH」(「12」)という数値データを指定する内容である。「0CH」は後述するアドレス取得実行処理(図33(e))において特図特電アドレステーブル64qから取得するアドレスデータのビット数である。「LD B,0CH」が実行されることにより、「転送先」のBレジスタ105aに特図特電アドレステーブル64qから取得するアドレスデータのビット数(「12」)が設定される。
「1603」の行番号には「LD HL,TBL_TZTD_B」という命令が設定されている。「LD」はLD命令であり、「HL」は転送先としてHLレジスタ107を指定する内容である。「TBL_TZTD_B」は、取得開始アドレスを特図特電アドレステーブル64qの開始アドレスとするための2バイトの数値データであり、具体的には「0C00H」である。「LD HL,TBL_TZTD_B」が実行されることにより、「転送先」のHLレジスタ107に「0C00H」がロードされる。
「TBL_TZTD_B」は、「{(特図特電アドレステーブル64qの開始アドレス)−9000H}×8」の式で算出される。図33(b)〜図33(d)は「TBL_TZTD_B」を算出する過程を説明するための説明図である。特図特電アドレステーブル64qの開始アドレスである「9180H」(図33(b))からデータテーブルの基準アドレスである「9000H」を減算すると、図33(c)に示すように、減算後のデータにおける第0〜第11ビットに開始アドレス「9180H」(図33(b))における第0〜第11ビットのデータが設定されている状態となる。その後、当該減算後のデータに「8」(「1000B」)を乗算する演算を行うと、図33(d)に示すように「TBL_TZTD_B」が算出される。「TBL_TZTD_B」を算出するための当該演算に用いられる「8」は、取得データ指定データのうち取得開始ビット目を指定するためのデータのビット数(「3」)で表される数値範囲(「0」〜「7」)の最大値である「7」に「1」を加算した値であり、「2」の3乗である。2バイトの2進数を「2」のn乗(nは1〜15のいずれかの整数)で乗算すると、当該2バイトの2進数において第0ビット〜第(15−n)ビットに設定されている「0」又は「1」の情報がnビット上位側にシフトして乗算後のデータにおける上位(16−n)ビットに設定されるとともに、当該乗算後のデータにおける下位nビット(第0ビット〜第(n−1)ビット)に「0」が設定される。
「TBL_TZTD_B」の演算では、特図特電アドレステーブル64qの開始アドレスからデータテーブルの基準アドレスである「9000H」を減算した値(減算後のデータ)に対して「2」の3乗である「8」が乗算される。これにより、減算後のデータにおける第0〜第12ビットのデータが3ビット上位側にシフトして乗算後のデータにおける上位13ビット(第3〜第15ビット)に設定されるとともに、当該乗算後のデータにおける下位3ビット(第0ビット〜第2ビット)に「0」が設定される。図33(d)に示すように、「8」で乗算した後のデータ(乗算後のデータ)である「TBL_TZTD_B」における第3〜第14ビットには、開始アドレス「9180H」(図33(b))における第0〜第11ビットのデータが設定されている。
既に説明したとおり、LDB命令において取得開始アドレスは、取得データ指定データを「8」(「1000B」)で除算した値に対してデータテーブルの基準アドレスである「9000H」を加算することにより算出される。また、既に説明したとおり、LDB命令において取得開始アドレスを算出する過程で取得データ指定データが「8」で除算されることにより、取得データ指定データにおける上位13ビット(第3〜第15ビット)に設定されているデータが3ビット下位側にシフトする。減算後のデータ(図33(c))における第0〜第12ビットのデータを3ビット上位側にシフトさせて導出された「TBL_TZTD_B」を取得データ指定データとしてLDB命令が実行されると、取得開始アドレスを算出する過程で「TBL_TZTD_B」が「8」で除算される。除算後の商データでは、3ビット上位側にシフトしていた減算後のデータ(図33(c))における第0〜第12ビットのデータが3ビット下位側にシフトする。そして、当該除算後の商データに対してデータテーブルの基準アドレスである「9000H」を加算する演算により、取得開始アドレスとして特図特電アドレステーブル64qの開始アドレス(「9180H」)が算出される。
このように、「{(特図特電アドレステーブル64qの開始アドレス)−9000H}×8」の式で算出される「TBL_TZTD_B」は、LDB命令において特図特電アドレステーブル64qの開始アドレスを取得開始アドレスとするための取得データ指定データである。「TBL_TZTD_B」を取得データ指定データとして設定することにより、特図特電アドレステーブル64qの開始アドレスをLDB命令の取得開始アドレスとすることができる。
行番号「1604」にて呼び出すアドレス取得実行処理(図33(e))では、特図特電カウンタの値が「0」である場合、HLレジスタ107に格納されている「0C00H」が取得データ指定データとして使用される。一方、特図特電カウンタの値が「1」以上である場合、HLレジスタ107に格納されている数値情報は、LDB命令が実行される前に当該特図特電カウンタの値に対応する数値情報に変更される。
「1604」の行番号には「CALLS LDBADGET」という命令が設定されている。「LDBADGET」は後述するアドレス取得実行処理(図33(e))である。「CALLS LDBADGET」という命令は、アドレス取得実行処理というサブルーチンを呼び出すための命令である。詳細は後述するが、行番号「1604」にてアドレス取得実行処理が実行されることにより、特図特電カウンタの値に対応する開始アドレス(SA0〜SA6のいずれか)がHLレジスタ107に設定される。アドレス取得実行処理のサブルーチンが終了した場合には、「1605」の行番号に進む。
「1605」の行番号には「RET」という命令が設定されている。既に説明したとおり、特図特電アドレス取得処理は特図特電制御処理(図30)のステップS902にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、特図特電制御処理(図30)のステップS903に進むことになる。
次に、主側CPU63にて実行されるアドレス取得実行処理のプログラム内容について説明する。アドレス取得実行処理は、特図特電アドレス取得処理(図33(a))の行番号「1604」にて実行される。図33(e)は主側CPU63にて実行されるアドレス取得実行処理のプログラム内容を説明するための説明図である。また、図34は特図特電カウンタの値とHLレジスタ107に取得される開始アドレスSA0〜SA6との対応関係を説明するための説明図である。
図33(e)に示すように、本プログラムには、行番号として「1701」〜「1709」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
図33(e)に示すように、「1701」の行番号には「LDBADGET」が設定されている。これは命令ではなくパチンコ機10の開発者によるプログラムの確認に際して参照されるデータである。したがって、行番号「1701」では何ら命令が実行されることなく行番号「1702」に進む。
「1702」の行番号には「LD A,B」という命令が設定されている。「LD」はLD命令であり、「A」は転送先としてAレジスタ104bを指定する内容であり、「B」は転送元としてBレジスタ105aを指定する内容である。既に説明したとおり、特図特電アドレス取得処理(図33(a))においてBレジスタ105aには特図特電アドレステーブル64qから取得するビット数(取得ビット数)を指定する「0CH」(「12」)が設定されている。このため、「LD A,B」が実行されることにより、「転送先」のAレジスタ104bに「0CH」が設定される。
「1703」の行番号には「MUL W,A」という命令が設定されている。「MUL」はMUL命令という演算命令であり、「W」はWレジスタ104aを指定する内容であり、「A」はAレジスタ104bを指定する内容である。「MUL W,A」が実行されることにより、Wレジスタ104aの値とAレジスタ104bの値とを乗算する演算が行われるとともに当該演算の結果がWAレジスタ104に格納される。既に説明したとおり、特図特電アドレス取得処理(図33(a))において、Wレジスタ104aには特図特電カウンタの値(0〜6のいずれかの整数)が設定されている。また、上述したとおり、Aレジスタ104bには取得ビット数である「0CH」が格納されている。このため、行番号「1703」にて「MUL W,A」が実行された場合、WAレジスタ104には、「(特図特電カウンタの値)×(取得ビット数)」の演算結果が格納される。既に説明したとおり、特図特電アドレス取得処理(図33(a))の行番号「1603」において、HLレジスタ107には特図特電カウンタにおける「0」の値に対応する取得データ指定データ(「0C00H」)が格納されている。「(特図特電カウンタの値)×(取得ビット数)」の演算結果のデータは、HLレジスタ107に格納されている当該取得データ指定データを特図特電カウンタの値に対応するデータに変更するために用いられる。
「1704」の行番号には「ADD HL,WA」という命令が設定されている。「ADD」はADD命令という演算命令であり、「HL」はHLレジスタ107を指定する内容であり、「WA」はWAレジスタ104を指定する内容である。「ADD HL,WA」が実行されることにより、HLレジスタ107の値とWAレジスタ104の値との和がHLレジスタ107に格納される。上述したとおり、特図特電アドレス取得処理(図33(a))の行番号「1603」において、HLレジスタ107には特図特電カウンタにおける「0」の値に対応する取得データ指定データ(「0C00H」)が格納されている。また、上述したとおり、WAレジスタ104には、「(特図特電カウンタの値)×(取得ビット数)」の演算結果のデータが格納されている。
図34に示すように、特図特電カウンタの値が「0」である場合、行番号「1704」にてHLレジスタ107の値に加算されるデータは「0000000000000000B」である。この場合、HLレジスタ107に格納されている取得データ指定データは変化しない。特図特電カウンタの値が「1」である場合、行番号「1704」にてHLレジスタ107の値に加算されるデータの上位13ビットは「0000000000001B」であるとともに、当該データの下位3ビットは「100B」である。この場合、HLレジスタ107に格納されている取得データ指定データは、取得開始アドレスが「1」増加するとともに取得開始ビット目が「4」となるように変化する。特図特電カウンタの値が「2」である場合、行番号「1704」にてHLレジスタ107の値に加算されるデータの上位13ビットは「0000000000011B」であるとともに、当該データの下位3ビットは「000B」である。この場合、HLレジスタ107に格納されている取得データ指定データは、取得開始アドレスが「3」増加するとともに取得開始ビット目が「0」となるように変化する。特図特電カウンタの値が「3」である場合、行番号「1704」にてHLレジスタ107の値に加算されるデータの上位13ビットは「0000000000100B」であるとともに、当該データの下位3ビットは「100B」である。この場合、HLレジスタ107に格納されている取得データ指定データは、取得開始アドレスが「4」増加するとともに取得開始ビット目が「4」となるように変化する。特図特電カウンタの値が「4」である場合、行番号「1704」にてHLレジスタ107の値に加算されるデータの上位13ビットは「0000000000110B」であるとともに、当該データの下位3ビットは「000B」である。この場合、HLレジスタ107に格納されている取得データ指定データは、取得開始アドレスが「6」増加するとともに取得開始ビット目が「0」となるように変化する。特図特電カウンタの値が「5」である場合、行番号「1704」にてHLレジスタ107の値に加算されるデータの上位13ビットは「0000000000111B」であるとともに、当該データの下位3ビットは「100B」である。この場合、HLレジスタ107に格納されている取得データ指定データは、取得開始アドレスが「7」増加するとともに取得開始ビット目が「4」となるように変化する。特図特電カウンタの値が「6」である場合、行番号「1704」にてHLレジスタ107の値に加算されるデータの上位13ビットは「0000000001001B」であるとともに、当該データの下位3ビットは「000B」である。この場合、HLレジスタ107に格納されている取得データ指定データは、取得開始アドレスが「9」増加するとともに取得開始ビット目が「0」となるように変化する。
このように、HLレジスタ107に格納されている取得データ指定データに対してWAレジスタ104に格納されている「(特図特電カウンタの値)×(取得ビット数)」の演算結果のデータを加算することにより、特図特電カウンタの値に対応する取得データ指定データがHLレジスタ107に格納されている状態とすることができる。
「1705」の行番号には、行番号「1702」と同様に、「LD A,B」という命令が設定されている。既に説明したとおり、特図特電アドレス取得処理(図33(a))においてBレジスタ105aには取得ビット数を指定する「0CH」(「12」)が設定されている。このため、「LD A,B」が実行されることにより、「転送先」のAレジスタ104bに「0CH」が設定される。既に説明したとおり、Bレジスタ105aに格納された「0CH」は、「(特図特電カウンタの値)×(取得ビット数)」の演算にも用いられた。このように、事前にBレジスタ105aに格納された「0CH」は、「(特図特電カウンタの値)×(取得ビット数)」の演算に用いられるとともに、LDB命令における取得ビット数を指定するためのデータをAレジスタ104bに設定するために用いられる。
「1706」の行番号には「DEC A」という命令が設定されている。「DEC」はDEC命令という演算命令であり、「A」はAレジスタ104bを指定する内容である。「DEC A」が実行されることにより、Aレジスタ104bの値が1減算される。上述したとおり、Aレジスタ104bには取得ビット数である「0CH」が格納されている。このため、行番号「1706」にて「DEC A」が実行されることにより、Aレジスタ104bには「0BH」が格納されている状態となる。「0BH」は、特図特電アドレステーブル64qから取得するビット数である「12」から「1」を減算した値である。
既に説明したとおり、「LDB HL,(HL).A」というLDB命令が実行される場合、LDB実行回路157においてAレジスタ104bの値を1加算する演算が行われるとともに、当該1加算後の値が取得ビット数のデータとして利用される。このため、行番号「1706」にてAレジスタ104bの値を1減算しておくことにより、LDB命令において特図特電アドレステーブル64qから取得されるデータのビット数を「12」とすることができる。
「1707」の行番号には「LDB HL,(HL).A」という命令が設定されている。「LDB」はLDB実行回路157によるLDB命令であり、コンマの前の「HL」は「転送先」としてHLレジスタ107を指定する内容であり、ピリオドの前の「(HL)」はHLレジスタ107に格納されている2バイトのデータを取得データ指定データに指定する内容であり、「A」はAレジスタ104bに格納されている1バイトのデータを取得ビット数指定データとする内容である。既に説明したとおり、HLレジスタ107には特図特電カウンタの値に対応する取得データ指定データが格納されている状態であるとともに、Aレジスタ104bには取得ビット数(「0CH」)から「1」を減算した「0BH」が格納されている状態である。また、TPレジスタ111には基準アドレスである「9000H」が格納されている状態である。当該状態において、行番号「1707」にて「LDB HL,(HL).A」という命令が実行されることにより、転送先であるHLレジスタ107の第0〜第11ビットには特図特電カウンタの値に対応する開始アドレスSA0〜SA6における下位12ビットのデータがロードされるとともに、当該HLレジスタ107の第12〜第15ビットが「0」でマスクされる。
具体的には、図34に示すように、特図特電カウンタの値が「0」である場合、取得開始アドレスが「9180H」となるとともに取得開始ビット目が「0」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA0の下位12ビットである「700H」がロードされる。特図特電カウンタの値が「1」である場合、取得開始アドレスが「9181H」となるとともに取得開始ビット目が「4」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA1の下位12ビットである「712H」がロードされる。特図特電カウンタの値が「2」である場合、取得開始アドレスが「9183H」となるとともに取得開始ビット目が「0」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA2の下位12ビットである「71FH」がロードされる。特図特電カウンタの値が「3」である場合、取得開始アドレスが「9184H」となるとともに取得開始ビット目が「4」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA3の下位12ビットである「731H」がロードされる。特図特電カウンタの値が「4」である場合、取得開始アドレスが「9186H」となるとともに取得開始ビット目が「0」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA4の下位12ビットである「740H」がロードされる。特図特電カウンタの値が「5」である場合、取得開始アドレスが「9187H」となるとともに取得開始ビット目が「4」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA5の下位12ビットである「74CH」がロードされる。特図特電カウンタの値が「6」である場合、取得開始アドレスが「9189H」となるとともに取得開始ビット目が「0」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA6の下位12ビットである「753H」がロードされる。このように、特図特電カウンタの値が1増加する度に特図特電アドレステーブル64qにおけるデータの取得開始位置が12ビットずれる。
LDB命令を利用して特図特電アドレステーブル64qから取得した開始アドレスSA0〜SA6の下位12ビットをHLレジスタ107の第0〜第11ビットにロードする構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位3ビット(第0〜第2ビット)に対応する取得開始ビット目を特定する処理と、特図特電アドレステーブル64qから取得した開始アドレスSA0〜SA6の下位12ビットをHLレジスタ107の下位12ビットにロードする処理と、HLレジスタ107の上位4ビットを「0」でマスクする処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
「1708」の行番号には「ADD HL,9000H」という命令が設定されている。「ADD」はADD命令という演算命令であり、「HL」はHLレジスタ107を指定する内容であり、「9000H」は2バイトの数値データである。「ADD HL,9000H」が実行されることにより、HLレジスタ107の値に対してデータテーブルの基準アドレスである「9000H」が加算される。これにより、図34に示すように、特電特図カウンタにおける「0」〜「6」の値に対応する開始アドレスSA0〜SA6の全体(2バイト)が設定されている状態とすることができる。具体的には、特図特電カウンタの値が「0」である場合にはHLレジスタ107に開始アドレスSA0である「9700H」が設定され、特図特電カウンタの値が「1」である場合にはHLレジスタ107に開始アドレスSA1である「9712H」が設定され、特図特電カウンタの値が「2」である場合にはHLレジスタ107に開始アドレスSA2である「971FH」が設定され、特図特電カウンタの値が「3」である場合にはHLレジスタ107に開始アドレスSA3である「9731H」が設定され、特図特電カウンタの値が「4」である場合にはHLレジスタ107に開始アドレスSA4である「9740H」が設定され、特図特電カウンタの値が「5」である場合にはHLレジスタ107に開始アドレスSA5である「974CH」が設定され、特図特電カウンタの値が「6」である場合にはHLレジスタ107に開始アドレスSA6である「9753H」が設定される。
「1709」の行番号には「RET」という命令が設定されている。既に説明したとおり、アドレス取得実行処理は特図特電アドレス取得処理(図33(a))の行番号「1604」にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、特図特電アドレス取得処理の行番号「1605」に進むことになる。
このように、LDB命令を利用することにより、特図特電アドレステーブル64qから開始アドレスSA0〜SA6の下位12ビットをHLレジスタ107にロードすることができる。また、当該LDB命令の実行後にHLレジスタ107の値に対して開始アドレスSA0〜SA6に共通する上位4ビットに対応する「9000H」を加算することにより、HLレジスタ107に開始アドレスSA0〜SA6の全体を取得することができる。このため、特図特電アドレステーブル64qに設定するアドレスデータを開始アドレスSA0〜SA6の下位12ビットのみとすることができる。これにより、特図特電アドレステーブル64qに2バイトの開始アドレスSA0〜SA6の全体を設定する構成と比較して、主側ROM64における特図特電アドレステーブル64qのデータ容量を低減することができる。
<特図変動開始処理>
次に、特図特電制御処理(図30)のステップS904〜ステップS910の処理の内容について説明する。まずステップS904の特図変動開始処理について、図35のフローチャートを参照しながら説明する。
特図変動開始処理では、まず第1特図保留エリア115及び第2特図保留エリア116のいずれかに保留情報が記憶されているか否かを判定する(ステップS1001)。ステップS1001では、第1特図保留数カウンタ118の値が「0」であるとともに第2特図保留数カウンタ119の値が「0」である場合に否定判定を行う。ステップS1001にて否定判定を行った場合にはそのまま本特図変動開始処理を終了する。
ステップS1001にて肯定判定を行った場合には、第2特図保留数カウンタ119の値が1以上であるか否かを判定し(ステップS1002)、第2特図保留数カウンタ119の値が1以上ではない場合(ステップS1002:NO)には第1特図用データ設定処理を実行する(ステップS1003)。一方、第2特図保留数カウンタ119の値が1以上である場合(ステップS1002:YES)には第2特図用データ設定処理を実行する(ステップS1004)。このように、第2特図保留エリア116の保留個数が「0」ではない場合、すなわち第2特図表示部37bについて変動表示用の保留情報が記憶されている場合には、第1特図保留エリア115の保留個数が1以上であるか否かに関係なく、第2特図保留エリア116に記憶されているデータが変動表示用として設定される。これにより、第1特図保留エリア115及び第2特図保留エリア116の両方に保留情報が記憶されている場合には、第2作動口34に対応した第2特図保留エリア116に記憶されている保留情報が遊技回の開始対象として優先されることとなる。
ステップS1003における第1特図用のデータ設定処理では、まず第1特図保留エリア115の第1エリア115aに格納されたデータを特図用の実行エリア117に移動するとともに、第1特図保留数カウンタ118の値を1減算する。その後、第1特図保留エリア115の記憶エリアに格納されたデータをシフトさせる処理を実行する。このデータシフト処理は、第1〜第4エリア115a〜115dに格納されているデータを下位エリア側に順にシフトさせる処理であって、第1エリア115aのデータをクリアするとともに、第2エリア115b→第1エリア115a、第3エリア115c→第2エリア115b、第4エリア115d→第3エリア115cといった具合に各エリア内のデータがシフトされる。その後、特定制御用のワークエリア121に設けられた第2特図フラグを「0」クリアする。第2特図フラグは、今回の変動表示の開始が第1特図表示部37a又は第2特図表示部37bのいずれであるかを特定するためのフラグである。その後、第1特図保留エリア115のデータのシフトが行われたことを音光側CPU93に認識させるための情報であるシフト時コマンドを出力して、本第1特図用データ設定処理を終了する。音光側CPU93では、受信したシフト時コマンドに対応したコマンドを表示制御装置89に送信することで、図柄表示装置41における第1特図保留エリア115に対応した保留情報の数の表示を保留個数の減少に対応させて変更させる。また、上記のように第1特図保留エリア115における保留情報の数が減少した場合には、タイマ割込み処理(図26)におけるステップS514の表示制御処理にて、第1特図保留表示部37cに対して、保留個数の減少に対応した表示内容に変更されるように表示制御が行われる。
ステップS1004における第2特図用データ設定処理では、まず第2特図保留エリア116の第1エリア116aに格納されたデータを特図用の実行エリア117に移動する。その後、第2特図保留エリア116の記憶エリアに格納されたデータをシフトさせる処理を実行する。このデータシフト処理は、第1〜第4エリア116a〜116dに格納されているデータを下位エリア側に順にシフトさせる処理であって、第1エリア116aのデータをクリアするとともに、第2エリア116b→第1エリア116a、第3エリア116c→第2エリア116b、第4エリア116d→第3エリア116cといった具合に各エリア内のデータがシフトされる。その後、特定制御用のワークエリア121における第2特図フラグに「1」をセットする。その後、第2特図保留エリア116のデータのシフトが行われたことを音光側CPU93に認識させるための情報であるシフト時コマンドを出力して、本データ設定処理を終了する。音光側CPU93では、受信したシフト時コマンドに対応したコマンドを表示制御装置89に送信することで、図柄表示装置41における第2特図保留エリア116に対応した保留情報の数の表示を保留個数の減少に対応させて変更させる。また、上記のように第2特図保留エリア116における保留情報の数が減少した場合には、タイマ割込み処理(図26)におけるステップS514の表示制御処理にて、第2特図保留表示部37dに対して、保留個数の減少に対応した表示内容に変更されるように表示制御が行われる。
ステップS1003の処理を実行した場合、又はステップS1004の処理を実行した場合には、特定制御用のワークエリア121におけるモードデータエリアに設けられている高確率モードフラグに「1」がセットされているか否かを判定することにより高確率モードであるか否かを判定する(ステップS1005)。高確率モードフラグは、当否抽選モードが高確率モードであることを主側CPU63にて特定するためのフラグである。高確率モードフラグには実行契機となった大当たり結果の種類に関係なく開閉実行モードが終了する場合に「1」がセットされる。高確率モードフラグは、モードデータエリアにおける第2ビットに設定されている。ステップS1005では、高確率モードフラグに「1」がセットされている場合に肯定判定を行う。
ステップS1005にて肯定判定を行った場合には、高確率当否判定処理を実行する(ステップS1006)。図13を参照しながら既に説明したとおり、主側ROM64には、現状におけるパチンコ機10の設定値が「設定1」〜「設定6」のいずれであっても参照される高確当否テーブル64gが記憶されている。ステップS1006における高確率当否判定処理では、高確当否テーブル64gを参照して、特図用の実行エリア117に格納された情報のうち当否判定用の情報、すなわち当たり乱数カウンタC1から取得した数値情報が高確当否テーブル64gに設定されている大当たり数値情報又は小当たり数値情報と一致しているか否かを判定する。
特定制御用のワークエリア121には、当否判定処理の結果に対応するデータが設定される当否データエリア158が設けられている。図36(a)は当否データエリア158の構成を説明するための説明図である。当否データエリア158は1バイトからなるエリアである。図36(a)に示すように、当否データエリア158の第0ビットには小当たりフラグ158bが設定されているとともに、第1ビットには大当たりフラグ158aが設定されている。また、当否データエリア158の第2〜第7ビットは使用されない未使用ビットとなっている。大当たりフラグ158aは、当否判定処理において大当たり結果となったことを主側CPU63にて把握可能とするフラグであるとともに、小当たりフラグ158bは、当否判定処理において小当たり結果となったことを主側CPU63にて把握可能とするフラグである。
ステップS1006における高確率当否判定処理では、当たり乱数カウンタC1から取得した数値情報が大当たり数値情報と一致している場合、当否データエリア158に「00000010B」というデータを設定する。これにより、大当たりフラグ158aに「1」をセットすることができる。また、当たり乱数カウンタC1から取得した数値情報が小当たり数値情報と一致している場合、当否データエリア158に「00000001B」というデータを設定する。これにより、小当たりフラグ158bに「1」をセットすることができる。
図36(b)は高確当否テーブル64gの内容を説明するための説明図であり、図36(c)は高確当否テーブル64gのデータ構成を説明するための説明図である。図36(c)に示すように、高確当否テーブル64gは主側ROM64における「9220H」〜「945BH」のアドレス範囲に記憶されている。
既に説明したとおり、当たり乱数カウンタC1から取得される数値情報は、0〜7999のいずれかの整数である。図36(b)に示すように、高確当否テーブル64gには「30」、「60」、「90」及び「7999」を含む266個の大当たり数値情報が設定されているとともに、「75」を含む40個の小当たり数値情報が設定されている。また、高確当否テーブル64gには当否判定を行うための判定値HVn(nは1〜572の整数)と、当該判定値に対応するフラグデータFDn(nは1〜572の整数)とが設定されている。判定値HVnは、1〜31のいずれかの整数に対応する6ビットの数値データである。
フラグデータFDnは、当否データエリア158の下位2ビット(第0〜第1ビット)に設定される2ビットのデータである。フラグデータFD2,FD4,FD8,FD572のように大当たり結果に対応するフラグデータは「10B」である。大当たり結果に対応するフラグデータが当否データエリア158の下位2ビットに設定されることにより大当たりフラグ158aに「1」がセットされるとともに小当たりフラグ158bの値が「0」となる。フラグデータFD6のように小当たり結果に対応するフラグデータは「01B」である。小当たり結果に対応するフラグデータが当否データエリア158の下位2ビットに設定されることにより小当たりフラグ158bに「1」がセットされるとともに大当たりフラグ158aの値が「0」となる。フラグデータFD1,FD3,FD5,FD7,FD571のように外れ結果に対応するフラグデータは「00B」である。外れ結果に対応するフラグデータが当否データエリア158の下位2ビットに設定されることにより大当たりフラグ158a及び小当たりフラグ158bの値が「0」となる。
次に、主側CPU63にて実行される高確率当否判定処理について図37(a)のフローチャートを参照しながら説明する。高確率当否判定処理は特図変動開始処理(図35)のステップS1006にて実行される。なお、高確率当否判定処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
高確率当否判定処理では、まず「LD HL,1150H」という命令を実行する(ステップS1101)。「LD」はLD命令であり、「HL」は転送先としてHLレジスタ107を指定する内容であり、「1100H」は2バイトの数値情報である。後述する当否判定用データ取得処理(ステップS1103)では、高確当否テーブル64g(図36(b),(c))に設定されている572個の判定値HV1〜HV572のうち1つの判定値HVn(nは1〜572のいずれか)をWAレジスタ104に取得するために「LDB WA,(HL+).5」というLDB更新命令が実行されるとともに、当該WAレジスタ104に取得された判定値HVnに対応するフラグデータFDnをBレジスタ105aに取得するために「LDB B,(HL+).1」というLDB更新命令が実行される。高確率当否判定処理(図37(a))では、ステップS1105にて肯定判定が行われるまで、ステップS1103〜ステップS1105の処理が繰り返し実行される。ステップS1103における当否判定用データ取得処理にてWAレジスタ104及びBレジスタ105aに取得される判定値HVn及びフラグデータFDnの組合せは、HV1及びFD1の組合せ→HV2及びFD2の組合せ→HV3及びFD3の組合せ→…→HV572及びFD572の組合せという順番で更新される。「1100H」という数値は、今回の処理回(遊技回)において当否判定用データ取得処理(ステップS1103)が1回目に実行される場合に、WAレジスタ104及びBレジスタ105aに判定値HV1及びフラグデータFD1の組合せを取得するための数値である。ステップS1101にて「LD HL,1150H」という命令が実行されることにより、HLレジスタ107に「1100H」がロードされる。なお、「1100H」という数値及びLDB更新命令の詳細については後述する。
ステップS1101にてHLレジスタ107に「1100H」をロードした後は、特図用の実行エリア117に格納された情報のうち当否判定用の情報、すなわち当たり乱数カウンタC1から取得した0〜7999のいずれかの数値情報(2バイト)をDEレジスタ106にセットする(ステップS1102)。
その後、当否判定用データ取得処理を実行する(ステップS1103)。上述したとおり、当否判定用データ取得処理が実行されることにより、高確当否テーブル64g(図36(b),(c))に設定されている572個の判定値HV1〜HV572のうち1つの判定値HVnがWAレジスタ104に設定されるとともに、当該WAレジスタ104に設定された判定値HVnに対応するフラグデータFDnがBレジスタ105aに設定される。なお、当否判定用データ取得処理の詳細については後述する。
その後、DEレジスタ106の値からWAレジスタ104の値を減算する(ステップS1104)。既に説明したとおり、ステップS1102にてDEレジスタ106には当たり乱数カウンタC1から取得した2バイトの数値情報(0〜7999のいずれか)が設定されるとともに、ステップS1103にてWAレジスタ104には判定値HVnが設定される。このため、今回の処理回(遊技回)においてステップS1104の処理が1回目に実行される場合、当該ステップS1104では当たり乱数カウンタC1から取得した数値情報から判定値HV1を減算する処理が実行される。また、今回の処理回(遊技回)においてステップS1104の処理が(m+1)回目(mは1〜571のいずれかの整数)に実行される場合、当該ステップS1104では当たり乱数カウンタC1から取得した数値情報からm個の判定値HV1〜HVmが減算された後の数値情報から判定値HV(m+1)を減算する処理が実行される。
その後、DEレジスタ106の値が「0」未満であるか否かを判定する(ステップS1105)。ステップS1104の演算結果が「0」以上となった場合にはキャリーフラグの値が「0」となるとともに、当該演算結果が「0」未満となった場合にはキャリーフラグに「1」がセットされる。ステップS1105では、キャリーフラグに「1」がセットされている場合に肯定判定を行う。DEレジスタ106の値が「0」未満ではない場合(ステップS1105:NO)にはステップS1103に戻る。そして、ステップS1105にて肯定判定が行われるまでステップS1103〜ステップS1105の処理を繰り返し実行する。これにより、ステップS1102にて当たり乱数カウンタC1からDEレジスタ106に取得された数値情報からHV1→HV2→HV3→…→HV572という順番で、判定値HVnが減算され、演算結果が「0」未満となった判定値HVnに対応するフラグデータFDnを当選したフラグデータとして特定することができる。
ステップS1105にて肯定判定を行った場合には、Bレジスタ105aに格納されているフラグデータFDn、すなわち当選となったフラグデータFDnを特定制御用のワークエリア121における当否データエリア158に設定して(ステップS1106)、本高確率当否判定処理を終了する。ステップS1106では、大当たり結果に対応するフラグデータFDnが当否データエリア158に設定された場合に大当たりフラグ158aに「1」がセットされるとともに、小当たり結果に対応するフラグデータFDnが当否データエリア158に設定された場合に小当たりフラグ158bに「1」がセットされる。また、外れ結果に対応するフラグデータFDnが当否データエリア158に設定された場合に大当たりフラグ158a及び小当たりフラグ158bの値が「0」となる。
<LDB更新命令>
次に、当否判定用データ取得処理(ステップS1103)の説明に先立ち、当否判定用データ取得処理に含まれているLDB更新命令について説明する。既に説明したとおり、当否判定用データ取得処理には、「LDB WA,(HL+).5」及び「LDB B,(HL+).1」というLDB更新命令が含まれている。図9に示すように、主側MPU62はLDB更新命令を実行するための専用回路であるLDB更新実行回路161を備えており、主側CPU63はLDB更新命令を実行することができる。
LDB更新命令の命令コードは、「LDB 転送先,(取得データ指定+).取得ビット数指定」という構成を有している。LDB更新命令は、LDB命令により実行される処理に加えて、当該処理が実行された後に、「取得データ指定」のレジスタに格納されている取得データ指定データに取得ビット数を加算して更新する処理を一命令で実行可能とする命令である。
LDB更新命令では、LDB命令と同様に、「転送先」として汎用レジスタ又はペアレジスタが設定される。LDB更新命令において「転送先」として設定される汎用レジスタは、Wレジスタ104a又はBレジスタ105aである。また、LDB更新命令において「転送先」として設定されるペアレジスタはWAレジスタ104である。なお、LDB更新命令において「転送先」の汎用レジスタとしてAレジスタ104b、Cレジスタ105b、Dレジスタ106a、Eレジスタ106b、Hレジスタ107a又はLレジスタ107bが設定される構成としてもよい。また、LDB更新命令において「転送先」のペアレジスタとしてBCレジスタ105又はDEレジスタ106が設定される構成としてもよい。
LDB更新命令では、「取得データ指定」として「(HL+)」が設定される。LDB更新命令では、LDB命令と同様に、「取得データ指定」として設定されたHLレジスタ107に格納されている取得データ指定データに基づいて、「転送先」のレジスタにロードされるデータの取得開始アドレス及び取得開始ビット目が特定される。
「転送先」として1バイトの汎用レジスタ(Wレジスタ104a又はBレジスタ105a)が設定されている場合、LDB更新命令では、「取得ビット数指定」として「0」〜「7」のいずれかの数値が設定される。また、「転送先」として2バイトのWAレジスタ104が設定されている場合、LDB更新命令では、「取得ビット数指定」として「0」〜「15」のいずれかの数値が設定される。
LDB更新命令では、主側ROM64において、取得開始アドレスにおける取得ビット目以降に設定されている取得ビット数分のデータが「転送先」であるWAレジスタ104の下位側のエリアにロードされるとともに、当該WAレジスタ104の上位側のエリアが「0」でマスクされる。その後、取得データ指定データが格納されているHLレジスタ107の値に今回の取得ビット数が加算されて当該HLレジスタ107に格納されている取得データ指定データが更新される。
LDB更新命令を利用することにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの第0〜第2ビット(下位3ビット)に対応する取得開始ビット目を特定する処理と、主側ROM64において取得開始アドレスにおける取得開始ビット目以降に設定されている取得ビット数分のデータを「転送先」のレジスタにおける下位ビットにロードする処理と、「転送先」のレジスタにおける上位ビットを「0」でマスクする処理と、データ転送後にHLレジスタ107の値に今回の取得ビット数を加算して取得データ指定データを更新する処理と、を一命令で実行することができる。これらの処理はLDB更新実行回路161にて実行される。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
次に、高確率当否判定処理(図37(a))のステップS1103にて実行される当否判定用データ取得処理について説明する。
図37(b)は当否判定用データ取得処理のプログラム内容を説明するための説明図である。また、図37(c)はWAレジスタ104に判定値HVnが設定される様子を説明するための説明図であり、図37(d)はBレジスタ105aにフラグデータFDnが設定される様子を説明するための説明図である。
図37(b)に示すように、本プログラムには、行番号として「1801」〜「1803」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
図37(b)に示すように、「1801」の行番号には「LDB WA,(HL+).5」という命令が設定されている。「LDB」はLDB更新実行回路161によるLDB更新命令であり、「WA」は「転送先」としてWAレジスタ104を指定する内容であり、「(HL+)」はHLレジスタ107に格納されている2バイトのデータを取得データ指定データに指定するとともにデータのロード後にHLレジスタ107に格納されている取得データ指定データを更新することを指示する内容であり、「5」は取得ビット数指定データとして「5」を設定する内容である。
図38(a)〜図38(e)は高確当否テーブル64gの開始アドレス、LDB命令(「LDB WA,(HL+).5」)における取得データ指定データ、取得開始アドレス、取得開始ビット目、及び更新後の取得データ指定データを説明するための説明図である。既に説明したとおり、高確当否判定処理(図37(a))のステップS1101にてHLレジスタ107に「1100H」という数値情報が設定される。当該「1100H」は、図38(b)に示すように、「LDB WA,(HL+).5」というLDB命令が1回目に実行される場合における取得データ指定データである。既に説明したとおり、高確当否テーブル64gの開始アドレスは「9220H」である(図38(a)参照)。「1100H」は、「{(高確当否テーブル64gの開始アドレス)−9000H}×8」の式で算出される数値情報である。図38(b)に示すように、取得データ指定データ(「1100H」)における第3〜第14ビットには、高確当否テーブル64gの開始アドレスである「9220H」(図38(a))における第0〜第11ビットのデータが設定されている。
既に説明したとおり、取得開始アドレスは、取得データ指定データを「8」(「1000B」)で除算する演算の商データに対してTPレジスタ111に格納されているデータテーブルの基準アドレスである「9000H」を加算する演算により算出される。HLレジスタ107に格納されている「1100H」を取得データ指定データとしてLDB更新命令が実行される場合、取得開始アドレスは、「1100H」を「8」で除算する演算の商データに対して「9000H」を加算する演算により算出される「9220H」となる。図38(c)に示すように、当該取得開始アドレスにおける第0〜第11ビットのデータは、取得データ指定データの第3〜第14ビットのデータ(高確当否テーブル64gの開始アドレスにおける第0〜第11ビットのデータ)であるとともに、当該取得開始アドレスにおける第12〜第15ビットのデータは、データテーブルの基準アドレスにおける第12〜第15ビットのデータである。「9220H」という取得開始アドレスは、高確当否テーブル64gの開始アドレスである。
既に説明したとおり、取得開始ビット目は、取得データ指定データの下位1バイトと「00000111H」との論理積の演算により算出される。HLレジスタ107に格納されている「1100H」を取得データ指定データとしてLDB更新命令が実行される場合、取得開始ビット目は、当該取得データ指定データの下位1バイト(「00000000B」)と「00000111H」との論理積である「00000000B」(「0」)となる。図38(d)に示すように、取得開始ビット目における下位3ビット(第0〜第2ビット)のデータは取得データ指定データ(図38(b))における下位3ビット(第0〜第2ビット)のデータであるとともに、取得開始ビット目における上位5ビット(第3〜第7ビット)のデータは「0」である。
「LDB WA,(HL+).5」というLDB更新命令には、取得ビット指定データとして「5」という数値が設定されているため、取得ビット数は当該「5」に「1」を加算して得られる「6」となる。HLレジスタ107に「1100H」が格納されている状態で「LDB WA,(HL+).5」というLDB更新命令が実行されると、図37(c)に示すように、高確当否テーブル64gにおいて、取得開始アドレスである「9220H」に対応するエリアの取得開始ビット目(第0ビット目)以降に設定されている取得ビット数分(6ビット分)のデータ(HV1)が転送先であるWAレジスタ104の第0〜第5ビット(下位6ビット)にロードされるとともに、当該WAレジスタ104の第6〜第15ビット(上位10ビット)が「0」でマスクされる。これにより、WAレジスタ104に判定値HV1をセットすることができる。
上述したとおり、「LDB WA,(HL+).5」というLDB更新命令における取得ビット数は「6」である。このため、当該LDB更新命令では、WAレジスタ104の第0〜第5ビットに6ビットのデータがロードされた後、HLレジスタ107の値(「1100H」)に取得ビット数(「6」)が加算されて、図38(e)に示すように、当該HLレジスタ107の値が「1106H」に更新される。
「1106H」は、当該「1106H」を取得データ指定データとして次のLDB更新命令を実行する場合に、取得開始アドレスを「9220H」とするとともに取得ビット目を第6ビット目とする数値情報である。このように、LDB更新命令が実行されてHLレジスタ107に格納されている取得データ指定データが更新されると、当該LDB更新命令における取得ビット数分だけ、当該LDB更新命令の次に実行されるLDB更新命令におけるデータの取得開始位置がずれる。
このように、LDB更新命令を利用して高確当否テーブル64gから取得した判定値データDV1をWAレジスタ104に設定して取得データ指定データを更新する構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの第0〜第2ビット(下位3ビット)に対応する取得開始ビット目を特定する処理と、高確当否テーブル64gから取得した判定値データDV1をWAレジスタ104の第0〜第5ビット(下位6ビット)にロードする処理と、当該WAレジスタ104の第6〜第15ビット(上位10ビット)を「0」でマスクする処理と、HLレジスタ107の値に今回の取得ビット数を加算して取得データ指定データを更新する処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
「1802」の行番号には「LDB B,(HL+).1」という命令が設定されている。「LDB」はLDB更新実行回路161によるLDB更新命令であり、「B」は「転送先」としてBレジスタ105aを指定する内容であり、「(HL+)」はHLレジスタ107に格納されている2バイトのデータを取得データ指定データに指定するとともにデータ転送後にHLレジスタ107に格納されている取得データ指定データを更新することを指示する内容であり、「1」は取得ビット数指定データとして「1」を設定する内容である。
図39(a)〜図39(c)はLDB命令(「LDB B,(HL+).1」)における取得データ指定データ、取得開始アドレス、取得開始ビット目、及び更新後の取得データ指定データを説明するための説明図である。既に説明したとおり、取得開始アドレスは、取得データ指定データを「8」(「1000B」)で除算する演算の商データに対してTPレジスタ111に格納されているデータテーブルの基準アドレス(「9000H」)を加算する演算により算出される。HLレジスタ107に格納されている「1106H」を取得データ指定データとしてLDB更新命令が実行される場合、取得開始アドレスは、「1106H」を「8」で除算する演算の商データに対して「9000H」を加算する演算により算出される「9220H」となる。図39(a)に示すように、当該取得開始アドレスにおける第0〜第11ビットのデータは、取得データ指定データの第3〜第14ビットのデータであるとともに、当該取得開始アドレスにおける第12〜第15ビットのデータは、データテーブルの基準アドレスにおける第12〜第15ビットのデータである。「9220H」という取得開始アドレスは、高確当否テーブル64gの開始アドレスである。
既に説明したとおり、取得開始ビット目は、取得データ指定データの下位1バイトと「00000111H」との論理積の演算により算出される。HLレジスタ107に格納されている「1106H」を取得データ指定データとしてLDB更新命令が実行される場合、取得開始ビット目は、当該取得データ指定データの下位1バイト(「00000110B」)と「00000111H」との論理積である「00000110B」(「6」)となる。図39(b)に示すように、取得開始ビット目における下位3ビット(第0〜第2ビット)のデータは取得データ指定データにおける下位3ビット(第0〜第2ビット)のデータであるとともに、取得開始ビット目における上位5ビット(第3〜第7ビット)のデータは「0」である。
「LDB B,(HL+).1」というLDB更新命令には、取得ビット指定データとして「1」という数値が設定されているため、取得ビット数は当該「1」に「1」を加算して得られる「2」となる。HLレジスタ107に「1106H」が格納されている状態で「LDB B,(HL+).1」というLDB更新命令が実行されると、図37(d)に示すように、高確当否テーブル64gにおいて、取得開始アドレスである「9220H」に対応するエリアの取得開始ビット目(第6ビット目)以降に設定されている取得ビット数分(2ビット分)のデータ(フラグデータFD1)が転送先であるDレジスタ106aの第0〜第1ビット(下位2ビット)にロードされるとともに、当該Dレジスタ106aの第2〜第7ビット(上位6ビット)が「0」でマスクされる。これにより、WAレジスタ104に格納されている判定値HV1に対応するフラグデータFD1をDレジスタ106aにセットすることができる。
上述したとおり、「LDB B,(HL+).1」というLDB更新命令における取得ビット数は「2」である。このため、当該LDB更新命令では、Bレジスタ105aの第0〜第1ビットに2ビットのデータがロードされた後、HLレジスタ107の値(「1106H」)に取得ビット数(「2」)が加算されて、図39(c)に示すように、当該HLレジスタ107の値が「1108H」に更新される。
「1108H」は、当該「1108H」を取得データ指定データとして次のLDB更新命令を実行する場合に、取得開始アドレスを「9221H」とするとともに取得ビット目を第0ビット目とする数値情報である。このように、LDB更新命令が実行されてHLレジスタ107に格納されている取得データ指定データが更新されると、当該LDB更新命令における取得ビット数分だけ、当該LDB更新命令の次に実行されるLDB更新命令におけるデータの取得開始位置がずれる。
「LDB WA,(HL+).5」というLDB更新命令及び「LDB B,(HL+).1」というLDB更新命令が実行されることにより、WAレジスタ104及びDレジスタ106aに判定値HV1及びフラグデータFD1が設定される。また、HLレジスタ107の値が「8」(「6」と「2」の合計)増加することにより、「LDB WA,(HL+).5」というLDB更新命令及び「LDB B,(HL+).1」というLDB更新命令における取得開始アドレスが「1」増加する。
このように、LDB更新命令を利用して高確当否テーブル64gから取得したフラグデータFD1をBレジスタ105aに設定して取得データ指定データを更新する構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの第0ビット〜第2ビット(下位3ビット)に対応する取得開始ビット目を特定する処理と、高確当否テーブル64gから取得したフラグデータFD1をBレジスタ105aの第0〜第1ビット(下位2ビット)にロードする処理と、当該Bレジスタ105aの第2〜第7ビット(上位6ビット)を「0」でマスクする処理と、HLレジスタ107の値に取得ビット数を加算して取得データ指定データを更新する処理と、を一命令で実行することができる。これらの処理はLDB更新実行回路161にて実行される。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
「1803」の行番号には「RET」という命令が設定されている。既に説明したとおり、当否判定用データ取得処理は高確率当否判定処理(図37(a))のステップS1103にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、高確率当否判定処理のステップS1104に進むことになる。
既に説明したとおり、高確率当否判定処理(図37(a))において、ステップS1103〜ステップS1105の処理は、ステップS1105にて肯定判定が行われるまで繰り返し実行される。図40は「LDB WA,(HL+).5」というLDB更新命令及び「LDB B,(HL+).1」というLDB更新命令の実行回数と、これらのLDB更新命令によりWAレジスタ104及びBレジスタ105aに取得されるデータとを説明するための説明図である。図40に示すように、2回目の行番号「1801」では、「1108H」を取得データ指定データとして「LDB WA,(HL+).5」が実行され、WAレジスタ104に判定値HV2が設定される。そして、HLレジスタ107の値が「110EH」に更新される。また、2回目の行番号「1802」では、「110EH」を取得データ指定データとして「LDB B,(HL+).1」が実行され、判定値HV2に対応するフラグデータFD2がBレジスタ105aに設定される。そして、HLレジスタ107の値が「1110H」に更新される。
このように、高確当否テーブル64gを利用して当否判定用データ取得処理を繰り返し実行する構成とすることにより、高確当否テーブル64gに設定されている判定値HVn及びフラグデータFDnの組合せを1組ずつ順番にWAレジスタ104及びBレジスタ105aにロードすることができる。
特図変動開始処理(図35)の説明に戻り、ステップS1005にて否定判定を行った場合、すなわち低確率モードである場合には、低確当否判定処理を実行する(ステップS1007)。図13を参照しながら既に説明したとおり、主側ROM64には、設定1用〜設定6用の低確当否テーブル64a〜64fが記憶されている。ステップS1007における低確当否判定処理では、現状におけるパチンコ機10の設定値に対応する低確当否テーブル64a〜64fを参照して、特図用の実行エリア117に格納された情報のうち当否判定用の情報、すなわち当たり乱数カウンタC1から取得した数値情報が低確当否テーブル64a〜64fに設定されている大当たり数値情報又は小当たり数値情報と一致しているか否かを判定する。当たり乱数カウンタC1から取得した数値情報が設定値に対応する低確率用の大当たり数値情報と一致している場合には、当否データエリア158に「00000010B」というデータを設定することにより、大当たりフラグ158aに「1」をセットする。また、当たり乱数カウンタC1から取得した数値情報が小当たり数値情報と一致している場合には、当否データエリア158に「00000001B」というデータを設定することにより、特定制御用のワークエリア121における小当たりフラグ158bに「1」をセットする。
ステップS1006の処理を行った場合、又はステップS1007の処理を行った場合には、大当たりフラグ158aに「1」がセットされているか否かを判定し(ステップS1008)、大当たりフラグ158aに「1」がセットされている場合(ステップS1008:YES)には、第1結果対応処理を実行する(ステップS1009)。第1結果対応処理では、大当たり種別を振り分けるための処理を実行し、当該大当たり種別に対応する変動種別番号を特定制御用のワークエリア121に設けられた変動種別番号カウンタに設定する。変動種別番号は、後述する変動パターンテーブルから当否判定の結果、振分判定の結果、リーチ発生抽選の結果及び特図保留エリア115,116の保留数に対応する停止結果データ及び表示継続時間データを取得するためのデータである。変動種別番号は0〜23のいずれかの数値情報である。変動種別番号カウンタは、変動種別番号を主側CPU63にて把握可能とするカウンタである。変動種別番号カウンタは1バイトからなる。なお、第1結果対応処理の詳細については後述する。
ステップS1008にて否定判定を行った場合には、小当たり結果又は外れ結果に対応する第2結果対応処理を実行する(ステップS1010)。第2結果対応処理では、小当たりフラグ158bに「1」がセットされている場合、小当たり結果に対応する変動種別番号を変動種別番号カウンタに設定する。また、小当たりフラグ158bに「1」がセットされていない場合、すなわち外れ結果である場合、リーチ発生抽選を行い、当該リーチ発生抽選の結果に対応する変動種別番号を変動種別番号カウンタに設定する。なお、第2結果対応処理の詳細については後述する。
ここで、第1結果対応処理(ステップS1009)において行われる第1特図用振分処理及び第2特図用振分処理について説明する。
第1特図用振分処理及び第2特図用振分処理では、4R高確大当たり結果、8R高確大当たり結果及び16R高確大当たり結果のいずれかに振り分けられる。特定制御用のワークエリア121には、振分判定の結果が設定される振分データエリア162が設けられている。図41(a)は振分データエリア162の構成を説明するための説明図である。振分データエリア162は1バイトからなるエリアである。
図41(a)に示すように、振分データエリア162の第0ビットには4R高確フラグ162aが設定されており、第1ビットには8R高確フラグ162bが設定されており、第2ビットには16R高確フラグ162cが設定されている。また、振分データエリア162の第3〜第7ビットは使用されない未使用ビットとなっている。4R高確フラグ162aは4R高確大当たり結果が発生したことを主側CPU63にて把握可能とするフラグであり、8R高確フラグ162bは8R高確大当たり結果が発生したことを主側CPU63にて把握可能とするフラグであり、16R高確フラグ162cは16R高確大当たり結果が発生したことを主側CPU63にて把握可能とするフラグである。
第1特図用振分処理又は第2特図用振分処理において4R高確大当たり結果に振り分けられた場合には振分データエリア162に「00000001B」というデータが設定される。これにより、4R高確フラグ162aに「1」がセットされる。また、これらの振分処理において8R高確大当たり結果に振り分けられた場合には振分データエリア162に「00000010B」というデータが設定される。これにより、8R高確フラグ162bに「1」がセットされる。さらにまた、これらの振分処理において16R高確大当たり結果に振り分けられた場合には振分データエリア162に「00000100B」というデータが設定される。これにより、16R高確フラグ162cに「1」がセットされる。
第1特図用振分処理では、主側ROM64における第1特図用振分テーブル64hが利用される。図14(a)に示すように、第1特図用振分テーブル64hでは、大当たり種別カウンタC2から取得した値が0〜39のいずれかの場合に4R高確大当たり結果に振り分けられるとともに、大当たり種別カウンタC2から取得した値が40〜79のいずれかの場合に8R高確大当たり結果に振り分けられる。また、大当たり種別カウンタC2から取得した値が80〜99のいずれかの場合に16R高確大当たり結果に振り分けられる。
第1特図用振分テーブル64hには、4R高確大当たり結果に対応する第1加算前振分値FVA1として「20」が設定されており、8R高確大当たり結果に対応する第2加算前振分値FVA2として「20」が設定されており、16R高確大当たり結果に対応する第3加算前振分値FVA3として「0」が設定されている。これらの加算前振分値FVAn(nは1〜3のいずれかの整数)は5ビットのデータである。第1特図用振分処理では、これらの加算前振分値FVAnに対して一律に「20」を加算することで、第1振分値である「40」、第2振分値である「40」及び第3振分値である「20」を算出する。そして、第1振分値→第2振分値→第3振分値の順番で、大当たり種別カウンタC2から取得した値からこれらの振分値を減算し、当該減算結果が「0」未満となった場合に振分値に対応するフラグデータFDAnを振分データエリア162に設定する。これにより、主側CPU63にて振分判定の結果を把握可能とすることができる。
図14(a)に示すように、第1特図用振分テーブル64hには、4R高確大当たり結果に対応する第1フラグデータFDA1として3ビットの「001B」が設定されており、8R高確大当たり結果に対応する第2フラグデータFDA2として3ビットの「010B」が設定されており、16R高確大当たり結果に対応する第3フラグデータFDA3として3ビットの「100B」が設定されている。これらのフラグデータFDA1〜FDA3は振分データエリア162の下位3ビット(第0〜第2ビット)に設定され、当該振分データエリア162の上位5ビット(第3〜第7ビット)は「0」でマスクされる。
図41(b)は第1特図用振分テーブル64hのデータ構成を説明するための説明図である。図41(b)に示すように、第1特図用振分テーブル64hは主側ROM64において「9250H」〜「9252H」のアドレス範囲に記憶されている。第1特図用振分テーブル64hの開始アドレスである「9250H」の第0〜第4ビットには4R高確大当たり結果に対応する第1加算前振分値FVA1が設定されているとともに、第5〜第7ビットには第1フラグデータFDA1が設定されている。「9250H」に続く「9251H」の第0〜第4ビットには8R高確大当たり結果に対応する第2加算前振分値FVA2が設定されているとともに、第5〜第7ビットには第2フラグデータFDA2が設定されている。「9251H」に続く「9252H」の第0〜第4ビットには16R高確大当たり結果に対応する第3加算前振分値FVA3が設定されているとともに、第5〜第7ビットには第3フラグデータFDA3が設定されている。
図41(b)に示すように、フラグデータFDAnは3ビットのデータであるとともに、加算前振分値FVAnは5ビットのデータである。対応するフラグデータFDAnと、加算前振分値FVAnとの組合せが1バイトのデータであるため、3つのフラグデータFDAnと加算前振分値FVAnとの組合せを3バイトの記憶エリアに記憶しておくことができる。第2振分値である「40」(「101000B」)は、2進数表記で6ビットの数値情報である。第2フラグデータFDA2と第2振分値との組合せを記憶するためには9ビット以上の記憶エリアが必要となる。このため、第1特図用振分テーブル64hに、3つのフラグデータFDAnと振分値との組合せが記憶されている構成とすると、主側ROM64における第1特図用振分テーブル64hのデータ容量が増大してしまう。これに対して、第1特図用振分テーブル64hにフラグデータFDAnと振分値を20減算した加算前振分値FVAnとの組合せが記憶されている構成であることにより、主側ROM64における第1特図用振分テーブル64hのデータ容量を低減することができる。
第2特図用振分処理では、主側ROM64における第2特図用振分テーブル64jが利用される。図14(b)に示すように、第2特図用振分テーブル64jでは、大当たり種別カウンタC2から取得した値が0〜29のいずれかの場合に4R高確大当たり結果に振り分けられるとともに、大当たり種別カウンタC2から取得した値が30〜79のいずれかの場合に8R高確大当たり結果に振り分けられる。また、大当たり種別カウンタC2から取得した値が80〜99のいずれかの場合に16R高確大当たり結果に振り分けられる。
第2特図用振分テーブル64jには、4R高確大当たり結果に対応する第1加算前振分値FVB1として「10」が設定されており、8R高確大当たり結果に対応する第2加算前振分値FVB2として「30」が設定されており、16R高確大当たり結果に対応する第3加算前振分値FVB3として「0」が設定されている。これらの加算前振分値FVBn(nは1〜3のいずれかの整数)は5ビットのデータである。第2特図用振分処理では、これらの加算前振分値FVBnに対して一律に「20」を加算することで、第1振分値である「30」、第2振分値である「50」及び第3振分値である「20」を算出する。そして、第1振分値→第2振分値→第3振分値の順番で、大当たり種別カウンタC2から取得した値からこれらの振分値を減算し、当該減算結果が「0」未満となった場合に対応するフラグデータFDBnを振分データエリア162に設定する。
図14(b)に示すように、第2特図用振分テーブル64jには、4R高確大当たり結果に対応する第1フラグデータFDB1として3ビットの「001B」が設定されており、8R高確大当たり結果に対応する第2フラグデータFDB2として3ビットの「010B」が設定されており、16R高確大当たり結果に対応する第3フラグデータFDB3として3ビットの「100B」が設定されている。これらのフラグデータFDB1〜FDB3は、振分データエリア162の下位3ビットに設定され、振分データエリア162の上位5ビットは「0」でマスクされる。
図41(c)は第2特図用振分テーブル64jのデータ構成を説明するための説明図である。図41(c)に示すように、第2特図用振分テーブル64jは主側ROM64において「9253H」〜「9255H」のアドレス範囲に記憶されている。第2特図用振分テーブル64jの開始アドレスである「9253H」の第0〜第4ビットには4R高確大当たり結果に対応する第1加算前振分値FVB1が設定されているとともに、第5〜第7ビットには第1フラグデータFDB1が設定されている。「9253H」に続く「9254H」の第0〜第4ビットには8R高確大当たり結果に対応する第2加算前振分値FVB2が設定されているとともに、第5〜第7ビットには第2フラグデータFDB2が設定されている。「9254H」に続く「9255H」の第0〜第4ビットには16R高確大当たり結果に対応する第3加算前振分値FVB3が設定されているとともに、第5〜第7ビットには第3フラグデータFDB3が設定されている。
次に、主側CPU63にて実行される第1結果対応処理について図42のフローチャートを参照しながら説明する。第1結果対応処理は特図変動開始処理(図35)のステップS1009にて実行される。なお、第1結果対応処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
第1結果対応処理では、まず特図用の実行エリア117に格納された保留情報のうち振分判定用の情報、すなわち大当たり種別カウンタC2から取得した数値情報(大当たり種別乱数)をAレジスタ104bにセットする(ステップS1201)。その後、特定制御用のワークエリア121における第2特図フラグに「1」がセットされているか否かを判定する(ステップS1202)。既に説明したとおり、第2特図フラグには、特図変動開始処理(図35)において第2特図用データ設定処理(ステップS1004)が実行された場合に「1」がセットされる。第2特図フラグに「1」がセットされている場合には、今回の変動表示の開始が第2特図表示部37bであることを意味する。
第2特図フラグに「1」がセットされていない場合(ステップS1202:NO)には、「LD HL,1280H」という命令を実行する(ステップS1203)。「LD」はLD命令であり、「HL」は転送先としてHLレジスタ107を指定する内容であり、「1280H」は2バイトの数値情報である。後述する振分用データ取得処理(ステップS1205)では、第2特図フラグに「1」がセットされていない場合、第1特図用振分テーブル64h(図41(b))に設定されている3個の加算前振分値FVA1〜FVA3のうち1つの加算前振分値FVAn(nは1〜3のいずれか)をWレジスタ104aに取得するために「LDB W,(HL+).4」というLDB更新命令が実行されるとともに、当該Wレジスタ104aに取得された加算前振分値FVAnに対応するフラグデータFDAnをBレジスタ105aに取得するために「LDB B,(HL+).2」というLDB更新命令が実行される。本第1結果対応処理(図42)では、ステップS1208にて肯定判定が行われるまで、ステップS1205〜ステップS1208の処理が繰り返し実行される。ステップS1205における振分用データ取得処理にてWレジスタ104a及びBレジスタ105aに取得される加算前振分値FVAn及びフラグデータFDAnの組合せは、FVA1及びFDA1の組合せ→FVA2及びFDA2の組合せ→FVA3及びFDA3の組合せという順番で更新される。「1280H」という数値は、今回の処理回(遊技回)において振分用データ取得処理(ステップS1205)が1回目に実行される場合に、Wレジスタ104a及びBレジスタ105aに加算前振分値FVA1及びフラグデータFDA1の組合せを取得するための数値である。ステップS1203にて「LD HL,1280H」という命令が実行されることにより、HLレジスタ107に「1280H」がロードされる。既に説明したとおり、第1特図用振分テーブル64hの開始アドレスは「9250H」である。「1280H」は、「{(第1特図用振分テーブル64hの開始アドレス)−9000H}×8」で算出されるデータである。HLレジスタ107にセットされた取得データ指定データは、振分用データ取得処理(ステップS1205)においてLDB更新命令が実行される場合に使用される。
一方、第2特図フラグに「1」がセットされている場合(ステップS1202:YES)には、「LD HL,1298H」という命令を実行する(ステップS1204)。「LD」はLD命令であり、「HL」は転送先としてHLレジスタ107を指定する内容であり、「1298H」は2バイトの数値情報である。後述する振分用データ取得処理(ステップS1205)では、第2特図フラグに「1」がセットされている場合、第2特図用振分テーブル64j(図41(c))に設定されている3個の加算前振分値FVB1〜FVB3のうち1つの加算前振分値FVBn(nは1〜3のいずれか)をWレジスタ104aに取得するために「LDB W,(HL+).4」というLDB更新命令が実行されるとともに、当該Wレジスタ104aに取得された加算前振分値FVBnに対応するフラグデータFDBnをBレジスタ105aに取得するために「LDB B,(HL+).2」というLDB更新命令が実行される。上述したとおり、本第1結果対応処理(図42)では、ステップS1208にて肯定判定が行われるまで、ステップS1205〜ステップS1208の処理が繰り返し実行される。ステップS1205における振分用データ取得処理にてWレジスタ104a及びBレジスタ105aに取得される加算前振分値FVBn及びフラグデータFDBnの組合せは、FVB1及びFDB1の組合せ→FVB2及びFDB2の組合せ→FVB3及びFDB3の組合せという順番で更新される。「1298H」という数値は、今回の処理回(遊技回)において振分用データ取得処理(ステップS1205)が1回目に実行される場合に、Wレジスタ104a及びBレジスタ105aに加算前振分値FVB1及びフラグデータFDB1の組合せを取得するための数値である。ステップS1204にて「LD HL,1298H」という命令が実行されることにより、HLレジスタ107に「1298H」がロードされる。既に説明したとおり、第2特図用振分テーブル64jの開始アドレスは「9253H」である。「1298H」は、「{(第2特図用振分テーブル64jの開始アドレス)−9000H}×8」で算出されるデータである。HLレジスタ107にセットされた取得データ指定データは、振分用データ取得処理(ステップS1205)においてLDB更新命令が実行される場合に使用される。
ステップS1203の処理を行った場合、又はステップS1204の処理を行った場合には、振分用データ取得処理を実行する(ステップS1205)。上述したとおり、振分用データ取得処理では、第2特図フラグに「1」がセットされていない場合、第1特図用振分テーブル64h(図41(b))に設定されている3個の加算前振分値FVA1〜FVA3のうち1つの加算前振分値FVAnがWレジスタ104aに設定されるとともに、当該Wレジスタ104aに設定された加算前振分値FVAnに対応するフラグデータFDAnがBレジスタ105aに設定される。また、上述したとおり、振分用データ取得処理(ステップS1205)では、第2特図フラグに「1」がセットされている場合、第2特図用振分テーブル64j(図41(c))に設定されている3個の加算前振分値FVB1〜FVB3のうち1つの加算前振分値FVBnがWレジスタ104aに設定されるとともに、当該Wレジスタ104aに設定された加算前振分値FVBnに対応するフラグデータFDBnがBレジスタ105aに設定される。なお、振分用データ取得処理の詳細については後述する。
その後、Wレジスタ104aに加算前振分値FVAn又は加算前振分値FVBnが格納されている状態において、当該Wレジスタ104aの値に「20」を加算する(ステップS1206)。これにより、加算前のWレジスタ104aにいずれかの第1加算前振分値FVA1,FVB1が格納されていた場合には当該Wレジスタ104aの値が対応する第1振分値に更新される。また、加算前のWレジスタ104aにいずれかの第2加算前振分値FVA2,FVB2が格納されていた場合には当該Wレジスタ104aの値が対応する第2振分値に更新されるとともに、加算前のWレジスタ104aにいずれかの第3加算前振分値FVA3,FVB3が格納されていた場合には当該Wレジスタ104aの値が対応する第3振分値に更新される。
その後、Aレジスタ104bの値からWレジスタ104aの値を減算する(ステップS1207)。既に説明したとおり、ステップS1201にてAレジスタ104bには大当たり種別カウンタC2から取得した数値情報(大当たり種別乱数)が設定されるとともに、ステップS1206にてWレジスタ104aにはいずれかの振分値が設定されている状態となる。このため、今回の処理回(遊技回)においてステップS1207の処理が1回目に実行される場合、当該ステップS1207では大当たり種別カウンタC2から取得した数値情報から振分値を減算する処理が実行される。また、今回の処理回(遊技回)においてステップS1207の処理が(m+1)回目(mは1又は2)に実行される場合、当該ステップS1207では大当たり種別カウンタC2から取得した数値情報からm個の振分値が減算された後の数値情報から(m+1)個目の振分値を減算する処理が実行される。
その後、Aレジスタ104bの値が「0」未満であるか否かを判定する(ステップS1208)。ステップS1207の演算結果が「0」以上となった場合にはキャリーフラグの値が「0」となるとともに、当該演算結果が「0」未満となった場合にはキャリーフラグに「1」がセットされる。ステップS1208では、キャリーフラグに「1」がセットされている場合に肯定判定を行う。Aレジスタ104bの値が「0」未満ではない場合(ステップS1208:NO)にはステップS1205に戻る。そして、ステップS1208にて肯定判定が行われるまでステップS1205〜ステップS1208の処理を繰り返し実行する。これにより、ステップS1201にて大当たり種別カウンタC2からAレジスタ104bに取得された数値情報から第1振分値→第2振分値→第3振分値という順番で、振分値が減算され、演算結果が「0」未満となった振分値に対応するフラグデータFDAn,FDBnを当選したフラグデータとして特定することができる。ステップS1208では、4R高確大当たり結果→8R高確大当たり結果→16R高確大当たり結果という順番で、各大当たり結果が振分判定の対象となり、大当たり種別カウンタC2から取得した大当たり種別乱数に対応する振分判定の結果が特定される。
ステップS1208にて肯定判定を行った場合には、Bレジスタ105aに格納されているフラグデータFDAn,FDBnを特定制御用のワークエリア121における振分データエリア162に設定する(ステップS1209)。ステップS1209では、4R高確大当たり結果に対応する第1フラグデータFDA1,FDB1が振分データエリア162に設定された場合に4R高確フラグ162aに「1」がセットされるとともに、8R高確大当たり結果に対応する第2フラグデータFDA2,FDB2が振分データエリア162に設定された場合に8R高確フラグ162bに「1」がセットされる。また、16R高確大当たり結果に対応する第3フラグデータFDA3,FDB3が振分データエリア162に設定された場合に16R高確フラグ162cに「1」がセットされる。これにより、主側CPU63にて振分判定の結果を把握可能とすることができる。
次に、第1結果対応処理(図42)のステップS1205にて実行される振分用データ取得処理について説明する。以下では、第1特図用振分テーブル64hを利用して振分用データ取得処理を実行する場合を例に挙げて、振分用データ取得処理が実行される場合について説明する。
図43(a)は振分用データ取得処理のプログラム内容を説明するための説明図である。また、図43(b)はWレジスタ104aに第1加算前振分値FVA1が設定される様子を説明するための説明図であり、図43(c)はBレジスタ105aに第1フラグデータFDA1が設定される様子を説明するための説明図である。
図43(a)に示すように、本プログラムには、行番号として「1901」〜「1903」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
図43(a)に示すように、「1901」の行番号には「LDB W,(HL+).4」という命令が設定されている。「LDB」はLDB更新実行回路161によるLDB更新命令であり、「W」は「転送先」としてWレジスタ104aを指定する内容であり、「(HL+)」はHLレジスタ107に格納されている2バイトのデータを取得データ指定データに指定するとともにデータのロード後にHLレジスタ107に格納されている取得データ指定データを更新することを指示する内容であり、「4」は取得ビット数指定データとして「4」を設定する内容である。
図44(a)〜図44(e)は第1特図用振分テーブル64hの開始アドレス、LDB更新命令(「LDB W,(HL+).4」)における取得データ指定データ、取得開始アドレス、取得開始ビット目、及び更新後の取得データ指定データを説明するための説明図である。既に説明したとおり、第1結果対応処理(図42)のステップS1203にてHLレジスタ107に「1280H」という数値情報が設定される。当該「1280H」は、図44(b)に示すように、「LDB W,(HL+).4」というLDB命令が1回目に実行される場合における取得データ指定データである。既に説明したとおり、第1特図用振分テーブル64hの開始アドレスは「9250H」である(図44(a)参照)。「1280H」は、「{(第1特図用振分テーブル64hの開始アドレス)−9000H}×8」の式で算出される数値情報である。図44(b)に示すように、取得データ指定データ(「1280H」)における第3〜第14ビットには、第1特図用振分テーブル64hの開始アドレスである「9250H」(図44(a))における第0〜第11ビットのデータが設定されている。
既に説明したとおり、取得開始アドレスは、取得データ指定データを「8」(「1000B」)で除算する演算の商データに対してTPレジスタ111に格納されているデータテーブルの基準アドレス(「9000H」)を加算する演算により算出される。HLレジスタ107に格納されている「1280H」を取得データ指定データとしてLDB更新命令が実行される場合、取得開始アドレスは、「1280H」を「8」で除算する演算の商データに対して「9000H」を加算する演算により算出される「9250H」となる。図44(c)に示すように、当該取得開始アドレスにおける第0〜第11ビットのデータは、取得データ指定データの第3〜第14ビットのデータ(第1特図用振分テーブル64hの開始アドレスにおける第0〜第11ビットのデータ)であるとともに、当該取得開始アドレスにおける第12〜第15ビットのデータは、データテーブルの基準アドレスにおける第12〜第15ビットのデータである。「9250H」という取得開始アドレスは、第1特図用振分テーブル64hの開始アドレスである。
既に説明したとおり、取得開始ビット目は、取得データ指定データの下位1バイトと「00000111H」との論理積の演算により算出される。HLレジスタ107に格納されている「1280H」を取得データ指定データとしてLDB更新命令が実行される場合、取得開始ビット目は、当該取得データ指定データの下位1バイト(「10000000B」)と「00000111H」との論理積である「00000000B」(「0」)となる。図44(d)に示すように、取得開始ビット目における下位3ビット(第0〜第2ビット)のデータは取得データ指定データにおける下位3ビット(第0〜第2ビット)のデータであるとともに、取得開始ビット目における上位5ビット(第3〜第7ビット)のデータは「0」である。
「LDB W,(HL+).4」というLDB更新命令には、取得ビット指定データとして「4」という数値が設定されているため、取得ビット数は当該「4」に「1」を加算して得られる「5」となる。HLレジスタ107に「1280H」が格納されている状態で「LDB W,(HL+).4」というLDB更新命令が実行されると、図43(b)に示すように、第1特図用振分テーブル64hにおいて、取得開始アドレスである「9250H」に対応するエリアの取得開始ビット目(第0ビット目)以降に設定されている取得ビット数分(5ビット分)のデータ(加算前振分値FVA1)が転送先であるWレジスタ104aの第0〜第4ビット(下位5ビット)にロードされるとともに、当該Wレジスタ104aの第5〜第7ビット(上位3ビット)が「0」でマスクされる。これにより、Wレジスタ104aに判定値HV1をセットすることができる。
上述したとおり、「LDB W,(HL+).4」というLDB更新命令における取得ビット数は「5」である。このため、当該LDB更新命令では、Wレジスタ104aの第0〜第4ビットに5ビットのデータがロードされた後、HLレジスタ107の値(「1280H」)に取得ビット数(「5」)が加算されて、図44(e)に示すように、当該HLレジスタ107の値が「1285H」に更新される。
「1285H」は、当該「1285H」を取得データ指定データとして次のLDB更新命令を実行する場合に、取得開始アドレスを「9250H」とするとともに取得ビット目を第5ビット目とする数値情報である。このように、LDB更新命令が実行されてHLレジスタ107に格納されている取得データ指定データが更新されると、当該LDB更新命令における取得ビット数分だけ、当該LDB更新命令の次に実行されるLDB更新命令におけるデータの取得開始位置がずれる。
このように、LDB更新命令を利用して第1特図用振分テーブル64hから取得した加算前振分値FVA1をWレジスタ104aに設定して取得データ指定データを更新する構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの第0〜第2ビット(下位3ビット)に対応する取得開始ビット目を特定する処理と、第1特図用振分テーブル64hから取得した加算前振分値FVA1をWレジスタ104aの第0〜第4ビット(下位5ビット)にロードする処理と、当該Wレジスタ104aの第5〜第7ビット(上位3ビット)を「0」でマスクする処理と、HLレジスタ107の値に今回の取得ビット数を加算して取得データ指定データを更新する処理と、を一命令で実行することができる。これらの処理はLDB更新実行回路161にて実行される。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
「1902」の行番号には「LDB B,(HL+).2」という命令が設定されている。「LDB」はLDB更新実行回路161によるLDB更新命令であり、「B」は「転送先」としてBレジスタ105aを指定する内容であり、「(HL+)」はHLレジスタ107に格納されている2バイトのデータを取得データ指定データに指定するとともにデータ転送後にHLレジスタ107に格納されている取得データ指定データを更新することを指示する内容であり、「2」は取得ビット数指定データとして「2」を設定する内容である。
図45(a)〜図45(c)はLDB命令(「LDB B,(HL+).2」)における取得データ指定データ、取得開始アドレス、取得開始ビット目、及び更新後の取得データ指定データを説明するための説明図である。既に説明したとおり、取得開始アドレスは、取得データ指定データを「8」(「1000B」)で除算する演算の商データに対してTPレジスタ111に格納されているデータテーブルの基準アドレス(「9000H」)を加算する演算により算出される。HLレジスタ107に格納されている「1285H」を取得データ指定データとしてLDB更新命令が実行される場合、取得開始アドレスは、「1285H」を「8」で除算する演算の商データに対して「9000H」を加算する演算により算出される「9250H」となる。図45(a)に示すように、当該取得開始アドレスにおける第0〜第11ビットのデータは、取得データ指定データの第3〜第14ビットのデータであるとともに、当該取得開始アドレスにおける第12〜第15ビットのデータは、データテーブルの基準アドレスにおける第12〜第15ビットのデータである。上述したとおり、「9250H」という取得開始アドレスは、第1特図用振分テーブル64hの開始アドレスである。
既に説明したとおり、取得開始ビット目は、取得データ指定データの下位1バイトと「00000111H」との論理積の演算により算出される。HLレジスタ107に格納されている「1285H」を取得データ指定データとしてLDB更新命令が実行される場合、取得開始ビット目は、当該取得データ指定データの下位1バイト(「10000101B」)と「00000111H」との論理積である「00000101B」(「5」)となる。図45(b)に示すように、取得開始ビット目における下位3ビット(第0〜第2ビット)のデータは取得データ指定データにおける下位3ビット(第0〜第2ビット)のデータであるとともに、取得開始ビット目における上位5ビット(第3〜第7ビット)のデータは「0」である。
「LDB B,(HL+).2」というLDB更新命令には、取得ビット指定データとして「2」という数値が設定されているため、取得ビット数は当該「2」に「1」を加算して得られる「3」となる。HLレジスタ107に「1285H」が格納されている状態で「LDB B,(HL+).2」というLDB更新命令が実行されると、図43(c)に示すように、第1特図用振分テーブル64hにおいて、取得開始アドレスである「9250H」に対応するエリアの取得開始ビット目(第5ビット目)以降に設定されている取得ビット数分(3ビット分)のデータ(フラグデータFDA1)が転送先であるDレジスタ106aの第0〜第2ビット(下位3ビット)にロードされるとともに、当該Dレジスタ106aの第3〜第7ビット(上位5ビット)が「0」でマスクされる。これにより、WAレジスタ104に格納されている加算前振分値FVA1に対応するフラグデータFDA1をDレジスタ106aにセットすることができる。
上述したとおり、「LDB B,(HL+).2」というLDB更新命令における取得ビット数は「3」である。このため、当該LDB更新命令では、Bレジスタ105aの第0〜第2ビットに3ビットのデータがロードされた後、HLレジスタ107の値(「1285H」)に取得ビット数(「3」)が加算されて、図45(c)に示すように、当該HLレジスタ107の値が「1288H」に更新される。
「1288H」は、当該「1288H」を取得データ指定データとして次のLDB更新命令を実行する場合に、取得開始アドレスを「9251H」とするとともに取得ビット目を第0ビット目とする数値情報である。このように、LDB更新命令が実行されてHLレジスタ107に格納されている取得データ指定データが更新されると、当該LDB更新命令における取得ビット数分だけ、当該LDB更新命令の次に実行されるLDB更新命令におけるデータの取得開始位置がずれる。
「LDB W,(HL+).4」というLDB更新命令及び「LDB B,(HL+).2」というLDB更新命令が実行されることにより、Wレジスタ104a及びDレジスタ106aに加算前振分値FVA1及びフラグデータFDA1が設定される。また、HLレジスタ107の値が「8」(「5」と「3」の合計)増加することにより、「LDB W,(HL+).4」というLDB更新命令及び「LDB B,(HL+).2」というLDB更新命令における取得開始アドレスが「1」増加する。
このように、LDB更新命令を利用して第1特図用振分テーブル64hから取得したフラグデータFDA1をBレジスタ105aに設定して取得データ指定データを更新する構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの第0ビット〜第2ビット(下位3ビット)に対応する取得開始ビット目を特定する処理と、第1特図用振分テーブル64hから取得したフラグデータFDA1をBレジスタ105aの第0〜第2ビット(下位3ビット)にロードする処理と、当該Bレジスタ105aの第3〜第7ビット(上位5ビット)を「0」でマスクする処理と、HLレジスタ107の値に取得ビット数を加算して取得データ指定データを更新する処理と、を一命令で実行することができる。これらの処理はLDB更新実行回路161にて実行される。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
「1903」の行番号には「RET」という命令が設定されている。既に説明したとおり、振分用データ取得処理は第1結果対応処理(図42)のステップS1205にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、第1結果対応処理のステップS1206に進むことになる。
既に説明したとおり、第1結果対応処理(図42)において、ステップS1205〜ステップS1208の処理は、ステップS1208にて肯定判定が行われるまで繰り返し実行される。図46は「LDB W,(HL+).4」というLDB更新命令及び「LDB B,(HL+).2」というLDB更新命令の実行回数と、これらのLDB更新命令によりWレジスタ104a及びBレジスタ105aに取得されるデータとを説明するための説明図である。図46に示すように、2回目の行番号「1901」では、「1288H」を取得データ指定データとして「LDB W,(HL+).4」が実行され、Wレジスタ104aに加算前振分値FVA2が設定される。そして、HLレジスタ107の値が「128DH」に更新される。また、2回目の行番号「1902」では、「128DH」を取得データ指定データとして「LDB B,(HL+).2」が実行され、加算前振分値FVA2に対応するフラグデータFD2がBレジスタ105aに設定される。そして、HLレジスタ107の値が「1290H」に更新される。
このように、第1特図用振分テーブル64hを利用して振分用データ取得処理を繰り返し実行する構成とすることにより、第1特図用振分テーブル64hに設定されている加算前振分値FVAn及びフラグデータFDAnの組合せを1組ずつ順番にWレジスタ104a及びBレジスタ105aにロードすることができる。また、第2特図用振分テーブル64jを利用して振分用データ取得処理(図43(a))を繰り返し実行する構成とすることにより、第1特図用振分テーブル64hを利用して振分用データ取得処理(図43(a))を繰り返し実行する場合と同様に、第2特図用振分テーブル64jに設定されている加算前振分値FVBn及びフラグデータFDBnの組合せを1組ずつ順番にWレジスタ104a及びBレジスタ105aにロードすることができる。
次に、第1結果対応処理(図42)のステップS1210〜ステップS1216の処理についての説明に先立ち、変動種別番号の設定態様について説明する。既に説明したとおり、変動種別番号は、後述する変動パターンテーブルから当否判定の結果、振分判定の結果、リーチ発生抽選の結果及び特図保留エリア115,116の保留数に対応する停止結果データ及び表示継続時間データを取得するためのデータである。
図47は変動種別番号と当否判定の結果、振分判定の結果、リーチ発生抽選の結果及び第1特図保留エリア115の保留数との対応関係を説明するための説明図である。まず第1特図保留エリア115の保留情報を契機として変動表示が開始される場合について説明する。図47に示すように、4R高確大当たり結果の発生に対応して特定制御用のワークエリア121における種別番号カウンタに「0」が設定され、8R高確大当たり結果の発生に対応して種別番号カウンタに「1」が設定され、16R高確大当たり結果の発生に対応して種別番号カウンタに「2」が設定され、小当たり結果の発生に対応して種別番号カウンタに「3」が設定される。また、当否判定において外れ結果が発生するとともに後述するリーチ発生抽選においてリーチ演出に当選しなかった場合、第1特図保留エリア115の保留数が「0」であれば種別番号カウンタに「4」が設定され、当該保留数が「1」であれば種別番号カウンタに「5」が設定され、当該保留数が「2」であれば種別番号カウンタに「6」が設定され、当該保留数が「3」であれば種別番号カウンタに「7」が設定される。さらにまた、当否判定において外れ結果が発生するとともにリーチ発生抽選においてリーチ演出に当選した場合、第1特図保留エリア115の保留数が「0」であれば種別番号カウンタに「8」が設定され、当該保留数が「1」であれば種別番号カウンタに「9」が設定され、当該保留数が「2」であれば種別番号カウンタに「10」が設定され、当該保留数が「3」であれば種別番号カウンタに「11」が設定される。
次に、第2特図保留エリア116の保留情報を契機として変動表示が開始される場合について説明する。図47に示すように、4R高確大当たり結果の発生に対応して特定制御用のワークエリア121における種別番号カウンタに「12」が設定され、8R高確大当たり結果の発生に対応して種別番号カウンタに「13」が設定され、16R高確大当たり結果の発生に対応して種別番号カウンタに「14」が設定され、小当たり結果の発生に対応して種別番号カウンタに「15」が設定される。また、当否判定において外れ結果が発生するとともに後述するリーチ発生抽選においてリーチ演出に当選しなかった場合、第1特図保留エリア115の保留数が「0」であれば種別番号カウンタに「16」が設定され、当該保留数が「1」であれば種別番号カウンタに「17」が設定され、当該保留数が「2」であれば種別番号カウンタに「18」が設定され、当該保留数が「3」であれば種別番号カウンタに「19」が設定される。さらにまた、当否判定において外れ結果が発生するとともにリーチ発生抽選においてリーチ演出に当選した場合、第1特図保留エリア115の保留数が「0」であれば種別番号カウンタに「20」が設定され、当該保留数が「1」であれば種別番号カウンタに「21」が設定され、当該保留数が「2」であれば種別番号カウンタに「22」が設定され、当該保留数が「3」であれば種別番号カウンタに「23」が設定される。
第1結果対応処理(図42)の説明に戻り、ステップS1209の処理を行った後は、特定制御用のワークエリア121における第2特図フラグに「1」がセットされているか否かを判定し(ステップS1210)、第2特図フラグに「1」がセットされていない場合(ステップS1210:NO)には、変動種別番号カウンタに「0」をセットする(ステップS1211)。このように、第1特図保留エリア115の保留情報を契機として実行された当否判定において大当たり結果が発生した場合には、まず変動種別番号カウンタに「0」が設定される。
一方、第2特図フラグに「1」がセットされている場合(ステップS1210:YES)には、変動種別番号カウンタに「12」をセットする(ステップS1212)。このように、第2特図保留エリア116の保留情報を契機として実行された当否判定において大当たり結果が発生した場合には、まず変動種別番号カウンタに「12」が設定される。
ステップS1211の処理を行った場合、又はステップS1212の処理を行った場合には、8R高確フラグ162bに「1」がセットされているか否かを判定し(ステップS1213)、8R高確フラグ162bに「1」がセットされている場合(ステップS1213:YES)には、変動種別番号カウンタの値を1加算する(ステップS1214)。これにより、第2特図フラグに「1」がセットされていない場合には変動種別番号カウンタに8R高確大当たり結果に対応する「1」が設定されている状態とすることができるとともに、第2特図フラグに「1」がセットされている場合には変動種別番号カウンタに8R高確大当たり結果に対応する「13」が設定されている状態とすることができる。
ステップS1213にて否定判定を行った場合には、16R高確フラグ162cに「1」がセットされているか否かを判定し(ステップS1215)、16R高確フラグ162cに「1」がセットされている場合(ステップS1215:YES)には、変動種別番号カウンタの値を2加算して(ステップS1216)、本第1結果対応処理を終了する。変動種別番号カウンタの値を2加算することにより、第2特図フラグに「1」がセットされていない場合には変動種別番号カウンタに16R高確大当たり結果に対応する「2」が設定されている状態とすることができるとともに、第2特図フラグに「1」がセットされている場合には変動種別番号カウンタに16R高確大当たり結果に対応する「14」が設定されている状態とすることができる。
8R高確フラグ162b及び16R高確フラグ162cのいずれにも「1」がセットされていない場合(ステップS1213:NO、ステップS1215:NO)には、そのまま本第1結果対応処理を終了する。これにより、第2特図フラグに「1」がセットされていない場合には変動種別番号カウンタに4R高確大当たり結果に対応する「0」が設定されている状態を維持することができるとともに、第2特図フラグに「1」がセットされている場合には変動種別番号カウンタに4R高確大当たり結果に対応する「12」が設定されている状態を維持することができる。
次に、主側CPU63にて実行される第2結果対応処理について図48のフローチャートを参照しながら説明する。第2結果対応処理は特図変動開始処理(図35)のステップS1010にて実行される。なお、第2結果対応処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
第2結果対応処理では、まず当否データエリア158における小当たりフラグ158bに「1」がセットされているか否かを判定し(ステップS1301)、小当たりフラグ158bに「1」がセットされている場合(ステップS1301:YES)には、特定制御用のワークエリア121における第2特図フラグに「1」がセットされているか否かを判定する(ステップS1302)。ステップS1302にて否定判定を行った場合には、変動種別番号カウンタに「3」をセットして(ステップS1303)、本第2結果対応処理を終了する。このように、第1特図保留エリア115の保留情報を契機として実行された当否判定において小当たり結果が発生した場合には、変動種別番号カウンタに「3」が設定される。
ステップS1302にて肯定判定を行った場合には、変動種別番号カウンタに「15」をセットして(ステップS1304)、本第2結果対応処理を終了する。このように、第2特図保留エリア116の保留情報を契機として実行された当否判定において小当たり結果が発生した場合には、変動種別番号カウンタに「15」が設定される。
ステップS1301にて否定判定を行った場合、すなわち当否判定において外れ結果となった場合には、特図用の実行エリア117に格納された情報のうちリーチ発生抽選用の情報、すなわちリーチ乱数カウンタC3から取得した0〜238のいずれかの数値情報を把握し(ステップS1305)、主側ROM64からリーチ発生抽選テーブルを読み出す(ステップS1306)。リーチ発生抽選テーブルには、リーチ演出に当選する確率が約1/10となるようにリーチ演出に当選する結果に対応する当選値と、リーチ演出に当選しない結果に対応する当選値とが設定されている。
その後、ステップS1305にて把握した数値情報をステップS1306にて読み出したリーチ発生抽選テーブルに照合することによりリーチ演出に当選したか否かを判定し(ステップS1307)、リーチ演出に当選した場合(ステップS1307:YES)には特定制御用のワークエリア121に設けられたリーチ発生フラグに「1」をセットする(ステップS1308)。リーチ発生フラグは、リーチ発生抽選においてリーチ演出に当選したことを主側CPU63にて把握可能とするフラグである。
ステップS1307にて否定判定を行った場合、又はステップS1308の処理を行った場合には、特定制御用のワークエリア121における第2特図フラグに「1」がセットされているか否かを判定し(ステップS1309)、第2特図フラグに「1」がセットされていない場合(ステップS1309:NO)には、リーチ発生フラグに「1」がセットされているか否かを判定する(ステップS1310)。ステップS1310にて否定判定を行った場合には、変動種別番号カウンタに「4」をセットする(ステップS1311)。このように、第1特図保留エリア115の保留情報を契機として実行された当否判定において外れ結果が発生するとともにリーチ発生抽選においてリーチ演出に当選しなかった場合には、まず変動種別番号カウンタに「4」がセットされる。
ステップS1310にて肯定判定を行った場合には、変動種別番号カウンタに「8」をセットする(ステップS1312)。このように、第1特図保留エリア115の保留情報を契機として実行された当否判定において外れ結果が発生するとともにリーチ発生抽選においてリーチ演出に当選した場合には、まず変動種別番号カウンタに「8」がセットされる。
ステップS1311の処理を行った場合、又はステップS1312の処理を行った場合には、変動種別番号カウンタの値に第1特図保留エリア115の保留数を加算して(ステップS1313)、本第2結果対応処理を終了する。変動種別番号カウンタの値に第1特図保留エリア115の保留数を加算することにより、第1特図保留エリア115の保留情報を契機として実行された当否判定において外れ結果が発生するとともにリーチ発生抽選においてリーチ演出に当選しなかった場合、第1特図保留エリア115の保留数が「0」であれば種別番号カウンタに「4」が設定されている状態となり、当該保留数が「1」であれば種別番号カウンタに「5」が設定されている状態となり、当該保留数が「2」であれば種別番号カウンタに「6」が設定されている状態となり、当該保留数が「3」であれば種別番号カウンタに「7」が設定されている状態となる。また、当否判定において外れ結果が発生するとともにリーチ発生抽選においてリーチ演出に当選した場合、第1特図保留エリア115の保留数が「0」であれば種別番号カウンタに「8」が設定されている状態となり、当該保留数が「1」であれば種別番号カウンタに「9」が設定されている状態となり、当該保留数が「2」であれば種別番号カウンタに「10」が設定されている状態となり、当該保留数が「3」であれば種別番号カウンタに「11」が設定されている状態となる。
ステップS1309にて肯定判定を行った場合にはリーチ発生フラグに「1」がセットされているか否かを判定する(ステップS1314)。ステップS1314にて否定判定を行った場合には、変動種別番号カウンタに「16」をセットする(ステップS1315)。このように、第2特図保留エリア116の保留情報を契機として実行された当否判定において外れ結果が発生するとともにリーチ発生抽選においてリーチ演出に当選しなかった場合には、まず変動種別番号カウンタに「16」がセットされる。
ステップS1314にて肯定判定を行った場合には、変動種別番号カウンタに「20」をセットする(ステップS1316)。このように、第2特図保留エリア116の保留情報を契機として実行された当否判定において外れ結果が発生するとともにリーチ発生抽選においてリーチ演出に当選した場合には、まず変動種別番号カウンタに「20」がセットされる。
ステップS1315の処理を行った場合、又はステップS1316の処理を行った場合には、変動種別番号カウンタの値に第2特図保留エリア116の保留数を加算して(ステップS1317)、本第2結果対応処理を終了する。変動種別番号カウンタの値に第2特図保留エリア116の保留数を加算することにより、第2特図保留エリア116の保留情報を契機として実行された当否判定において外れ結果が発生するとともにリーチ発生抽選においてリーチ演出に当選しなかった場合、第2特図保留エリア116の保留数が「0」であれば種別番号カウンタに「16」が設定されている状態となり、当該保留数が「1」であれば種別番号カウンタに「17」が設定されている状態となり、当該保留数が「2」であれば種別番号カウンタに「18」が設定されている状態となり、当該保留数が「3」であれば種別番号カウンタに「19」が設定されている状態となる。また、当否判定において外れ結果が発生するとともにリーチ発生抽選においてリーチ演出に当選した場合、第2特図保留エリア116の保留数が「0」であれば種別番号カウンタに「20」が設定されている状態となり、当該保留数が「1」であれば種別番号カウンタに「21」が設定されている状態となり、当該保留数が「2」であれば種別番号カウンタに「22」が設定されている状態となり、当該保留数が「3」であれば種別番号カウンタに「23」が設定されている状態となる。
特図変動開始処理(図35)の説明に戻り、ステップS1009の処理を行った場合、又はステップS1010の処理を行った場合には、変動用開始アドレス取得処理を実行する(ステップS1011)。変動用開始アドレス取得処理では、主側ROM64に記憶されている変動開始用テーブル64rから変動種別番号カウンタに格納されている変動種別番号に対応する変動パターンテーブルの開始アドレスをHLレジスタ107に取得する。主側ROM64には、当否判定の結果、振分判定の結果、リーチ発生抽選の結果及び第1特図保留エリア115の保留数に対応させて24個の変動パターンテーブルが記憶されている。変動パターンテーブルには、当該当否判定の結果、振分判定の結果、リーチ発生抽選の結果及び特図保留エリア115,116の保留数に対応する変動表示の停止結果データ及び表示継続時間データが設定されている。変動パターンテーブルの開始アドレスは2バイトからなり、当該開始アドレスの上位4ビットはいずれも「9H」である。変動開始用テーブル64rには、変動種別番号に基づいて当否判定の結果、振分判定の結果、リーチ発生抽選の結果及び特図保留エリア115,116の保留数に対応する変動パターンテーブルの開始アドレスを取得するためのデータとして、当該開始アドレスの下位12ビットが設定されている。
図49は変動開始用テーブル64rのデータ構成を説明するための説明図であり、図50(a)は変動パターンテーブルの開始アドレスの取得態様を説明するための説明図である。
図49に示すように、変動開始用テーブル64rは主側ROM64において「9135H」〜「9158H」のアドレス範囲に記憶されている。変動開始用テーブル64rには、0〜23の変動種別番号に対応する変動パターンテーブルの開始アドレスSB0〜SB23における下位12ビットが設定されている。変動開始用テーブル64rは、2つの開始アドレスSBnの下位12ビットが3つの連続するアドレスに対応するエリアに設定されているデータ構成である。例えば、開始アドレスSB0の下位12ビット及び開始アドレスSB1の下位12ビットが「9135H」〜「9137H」に対応する合計3バイトのエリアに設定されているとともに、開始アドレスSB2の下位12ビット及び開始アドレスSB3の下位12ビットが「9138H」〜「913AH」に対応する合計3バイトのエリアに設定されている。
変動開始用テーブル64rにおいて、24個の開始アドレスSB0〜SB23の下位12ビットは合計36バイトの記憶エリアに設定されている。これに対して、1つの開始アドレスSBn(nは0〜23の整数)の全体(2バイト)が2つの連続するアドレスに対応するエリアに記憶されているデータ構成とすると、24個の開始アドレスSB0〜SB23が設定されている変動開始用テーブル64rを記憶するために主側ROM64において48バイトの記憶エリアが必要となる。このように、2つの開始アドレスSBnの下位12ビットが3つの連続するアドレスに対応するエリアに設定されているデータ構成とすることにより、主側ROM64における変動開始用テーブル64rのデータ容量を低減することができる。
特図変動開始処理(図35)のステップS1011における変動用開始アドレス取得処理では、図50(a)に示すように、変動種別番号「n」(nは0〜23のいずれかの整数)に対応する変動パターンテーブルの開始アドレスSBnの下位12ビットが取得される。例えば、変動種別番号が「0」である場合には開始アドレスSB0の下位12ビットである「5CFH」が取得されるとともに、変動種別番号が「1」である場合には開始アドレスSB1の下位12ビットである「5D9H」が取得される。
次に、特図変動開始処理(図35)のステップS1011にて実行される変動用開始アドレス取得処理のプログラム内容について図50(b)の説明図を参照しながら説明する。図50(b)に示すように本プログラムには、行番号として「2001」〜「2005」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
「2001」の行番号には「LD W,(HSBCNT)」という命令が設定されている。「LD」はLD命令であり、「W」は転送先としてWレジスタ104aを指定する内容である。「HSBCNT」は特定制御用のワークエリア121における変動種別番号カウンタのアドレスであり、「(HSBCNT)」は変動種別番号カウンタに格納されているデータを「転送先」にロードする内容である。既に説明したとおり、変動種別番号カウンタには、0〜23のいずれかの数値データが格納されている。「LD W,(HSBCNT)」が実行されることにより、「転送先」のWレジスタ104aに変動種別番号カウンタのデータがロードされる。
「2002」の行番号には「LD B,0CH」という命令が設定されている。「LD」はLD命令であり、「B」は転送先としてBレジスタ105aを指定する内容であり、「0CH」は「転送元」として「0CH」(「12」)という数値データを指定する内容である。「0CH」は後述する行番号「2004」にて呼び出されるアドレス取得実行処理(図33(e))において変動開始用テーブル64r(図49)から取得するアドレスデータのビット数(取得ビット数)である。「LD B,0CH」が実行されることにより、「転送先」のBレジスタ105aに変動開始用テーブル64rから取得するアドレスデータのビット数(「12」)が設定される。
「2003」の行番号には「LD HL,TBL_HDK_B」という命令が設定されている。「LD」はLD命令であり、「HL」は転送先としてHLレジスタ107を指定する内容である。「TBL_HDK_B」は、取得開始アドレスを変動開始用テーブル64rの開始アドレスとするための2バイトの数値データであり、具体的には「09A8H」である。「LD HL,TBL_HDK_B」が実行されることにより、「転送先」のHLレジスタ107に「09A8H」がロードされる。
「TBL_HDK_B」は、「{(変動開始用テーブル64rの開始アドレス)−9000H}×8」の式で算出される。「TBL_HDK_B」における第3〜第14ビットには、開始アドレス「9135H」における第0〜第11ビットのデータが設定されている。既に説明したとおり、LDB命令では、取得データ指定データにおける第3〜第14ビットのデータが取得開始アドレスの第0〜第11ビットに設定されるとともに、取得開始アドレスの第12〜第15ビットにデータテーブルの基準アドレス(「9000H」)における第12〜第15ビットのデータが設定される。「{(変動開始用テーブル64rの開始アドレス)−9000H}×8」の式で算出される「TBL_HDK_B」を取得データ指定データとして設定することにより、変動開始用テーブル64rの開始アドレスを取得開始アドレスとすることができる。
行番号「2004」にて呼び出すアドレス取得実行処理(図33(e))では、変動種別番号カウンタの値が「0」である場合、HLレジスタ107に格納されている「09A8H」が取得データ指定データとして使用される。一方、変動種別番号カウンタの値が「1」以上である場合、HLレジスタ107に格納されている数値情報は、LDB命令が実行される前に当該変動種別番号カウンタの値に対応する数値情報に変更される。
「2004」の行番号には「CALLS LDBADGET」という命令が設定されている。「LDBADGET」は図33(e)を参照しながら既に説明したアドレス取得実行処理である。「CALLS LDBADGET」という命令は、アドレス取得実行処理というサブルーチンを呼び出すための命令である。詳細は後述するが、行番号「2004」にてアドレス取得実行処理が実行されることにより、変動種別番号カウンタの値に対応する開始アドレス(SB0〜SB23のいずれか)がHLレジスタ107に設定される。アドレス取得実行処理のサブルーチンが終了した場合には、「2005」の行番号に進む。
「2005」の行番号には「RET」という命令が設定されている。既に説明したとおり、変動用開始アドレス取得処理は特図変動開始処理(図35)のステップS1011にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、特図変動開始処理(図35)のステップS1012に進むことになる。
次に、変動用開始アドレス取得処理(図50(b))の行番号「2004」にてアドレス取得実行処理(図33(e))が実行される場合について図33(e)を再度参照しながら説明する。
既に説明したとおり、行番号「1701」には「LDBADGET」が設定されているが、これは命令ではないため、行番号「1701」では何ら命令が実行されることなく行番号「1702」に進む。
既に説明したとおり、変動用開始アドレス取得処理(図50(b))においてBレジスタ105aには変動開始用テーブル64rから取得するビット数(取得ビット数)を指定する「0CH」(「12」)が設定されている。このため、行番号「1702」にて「LD A,B」が実行されることにより、「転送先」のAレジスタ104bに「0CH」が設定される。
既に説明したとおり、変動用開始アドレス取得処理(図50(b))において、Wレジスタ104aには変動種別番号カウンタの値(0〜23のいずれかの整数)が設定されている。また、上述したとおり、Aレジスタ104bには取得ビット数である「0CH」が格納されている。このため、行番号「1703」にて「MUL W,A」が実行された場合、WAレジスタ104には、「(変動種別番号カウンタの値)×0CH」の演算結果が格納される。既に説明したとおり、変動用開始アドレス取得処理(図50(b))の行番号「2003」において、HLレジスタ107には変動種別番号カウンタにおける「0」の値に対応する取得データ指定データ(「09A8H」)が格納されている。「(変動種別番号カウンタの値)×(取得ビット数)」の演算結果のデータは、HLレジスタ107に格納されている当該取得データ指定データを変動種別番号カウンタの値に対応するデータに変更するために用いられる。
上述したとおり、変動用開始アドレス取得処理(図50(b))の行番号「1603」において、HLレジスタ107には変動種別番号カウンタにおける「0」の値に対応する取得データ指定データ(「09A8H」)が格納されている。また、上述したとおり、WAレジスタ104には、「(変動種別番号カウンタの値)×(取得ビット数)」の演算結果のデータが格納されている。HLレジスタ107に格納されている取得データ指定データに対してWAレジスタ104に格納されている「(変動種別番号カウンタの値)×(取得ビット数)」の演算結果のデータを加算することにより、変動種別番号カウンタの値に対応する取得データ指定データがHLレジスタ107に格納されている状態とすることができる。
既に説明したとおり、変動用開始アドレス取得処理(図50(b))においてBレジスタ105aには取得ビット数を指定する「0CH」(「12」)が設定されている。このため、行番号「1705」にて「LD A,B」が実行されることにより、「転送先」のAレジスタ104bに「0CH」が設定される。既に説明したとおり、Bレジスタ105aに格納された「0CH」は、「(変動種別番号カウンタの値)×(取得ビット数)」の演算にも用いられた。このように、事前にBレジスタ105aに格納された「0CH」は、「(変動種別番号カウンタの値)×(取得ビット数)」の演算に用いられるとともに、LDB命令における取得ビット数を指定するためのデータをAレジスタ104bに設定するために用いられる。
上述したとおり、Aレジスタ104bには取得ビット数である「0CH」が格納されている。このため、行番号「1706」にて「DEC A」が実行されることにより、Aレジスタ104bには「0BH」が格納されている状態となる。「0BH」は、変動開始用テーブル64rから取得するデータのビット数である「12」から「1」を減算した値である。
既に説明したとおり、「LDB HL,(HL).A」というLDB命令が実行される場合、LDB実行回路157においてAレジスタ104bの値を1加算する演算が行われるとともに、当該1加算後の値が取得ビット数のデータとして利用される。このため、行番号「1706」にてAレジスタ104bの値を1減算しておくことにより、LDB命令において特図特電アドレステーブル64qから取得されるデータのビット数を「12」とすることができる。
既に説明したとおり、「1707」の行番号には「LDB HL,(HL).A」という命令が設定されている。「LDB」は既に説明したLDB命令という転送命令であり、「HL」は「転送先」としてHLレジスタ107を指定する内容であり、「(HL)」はHLレジスタ107に格納されている2バイトのデータを取得データ指定データに指定する内容であり、「A」はAレジスタ104bに格納されている1バイトのデータを取得ビット数指定データに指定する内容である。既に説明したとおり、HLレジスタ107には変動種別番号カウンタの値に対応する取得データ指定データが格納されている状態であるとともに、Aレジスタ104bには取得ビット数(「0CH」)から「1」を減算した「0BH」が格納されている状態である。また、TPレジスタ111にはデータテーブルの基準アドレスである「9000H」が格納されている状態である。当該状態において、行番号「1707」にて「LDB HL,(HL).A」という命令が実行されることにより、転送先であるHLレジスタ107の第0〜第11ビットには変動種別番号カウンタの値に対応する開始アドレスSB0〜SB23における下位12ビットのデータがロードされるとともに、当該HLレジスタ107の第12〜第15ビットが「0」でマスクされる。具体的には、図50(a)に示すように、変動種別番号カウンタの値が「0」である場合には取得開始アドレスが「9135H」となるとともに取得開始ビット目が「0」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSB0の下位12ビットである「05CFH」がロードされる。また、変動種別番号カウンタの値が「1」である場合には取得開始アドレスが「9136H」となるとともに取得開始ビット目が「4」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSB1の下位12ビットである「05D9H」がロードされる。さらにまた、変動種別番号カウンタの値が「2」である場合には取得開始アドレスが「9138H」となるとともに取得開始ビット目が「0」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSB2の下位12ビットである「05E1H」がロードされる。このように、変動種別カウンタの値が1増加する度に変動開始用テーブル64r(図49)においてデータの取得が開始される位置が12ビットずれる。
LDB命令を利用して変動開始用テーブル64rから取得した開始アドレスSB0〜SB23の下位12ビットをHLレジスタ107の第0〜第11ビットにロードする構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの第0〜第2ビット(下位3ビット)に対応する取得開始ビット目を特定する処理と、変動開始用テーブル64rから取得した開始アドレスSBnの下位12ビットをHLレジスタ107の下位12ビットにロードする処理と、当該HLレジスタ107の上位4ビットを「0」でマスクする処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
既に説明したとおり、「1708」の行番号には「ADD HL,9000H」という命令が設定されている。「ADD HL,9000H」が実行されることにより、HLレジスタ107の値に対してデータテーブルの基準アドレスである「9000H」が加算される。行番号「1708」にて「ADD HL,9000H」が実行されることにより、変動種別番号カウンタの値に対応する開始アドレス(開始アドレスSB0〜SB23のいずれか)の全体がHLレジスタ107に設定されている状態とすることができる。具体的には、変動種別番号カウンタの値が「n」(nは0〜23のいずれかの整数)である場合にHLレジスタ107に開始アドレスSBnの全体が設定される。
既に説明したとおり、「1709」の行番号には「RET」という命令が設定されている。アドレス取得実行処理は変動用開始アドレス取得処理(図50(b))の行番号「2004」にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、変動用開始アドレス取得処理の行番号「2005」に進むことになる。
このように、LDB命令を利用することにより、変動開始用テーブル64rから開始アドレスSB0〜SB23の下位12ビットを取得することができる。また、当該LDB命令の実行後に当該下位12ビットに対して開始アドレスSB0〜SB23に共通の上位4ビットに対応する「9000H」を加算することにより、開始アドレスSB0〜SB23の全体を取得することができる。このため、変動開始用テーブル64rに設定するアドレスデータを開始アドレスSB0〜SB23の下位12ビットのみとすることができる。これにより、変動開始用テーブル64rに2バイトの開始アドレスSB0〜SB23の全体を設定する構成と比較して、主側ROM64における変動開始用テーブル64rのデータ容量を低減することができる。
特図変動開始処理(図35)の説明に戻り、ステップS1011にて変動用開始アドレス取得処理を実行した後は、変動情報設定処理を実行する(ステップS1012)。変動情報設定処理では、ステップS1011にてHLレジスタ107に取得した開始アドレスSBn(nは0〜23のいずれか)に基づいて変動パターンテーブルを特定し、当該特定した変動パターンテーブルを利用して、今回の遊技回における停止結果データ及び表示継続時間データの設定を行う。
ここで、変動パターンテーブルのデータ構成について、「0」の変動種別番号に対応する変動パターンテーブルを例に挙げて説明する。図51(a)は「0」の変動種別番号に対応する変動パターンテーブル64tのデータ構成を説明するための説明図である。
図51(a)に示すように、変動パターンテーブル64tは、主側ROM64における「95CFH」〜「95D8H」のアドレスに設定されている。変動パターンテーブル64tの先頭アドレスである「95CFH」には、第1特図表示部37aに停止表示される絵柄の態様に対応する停止結果データが設定されている。また、図示は省略するが、「1」〜「23」の変動種別番号に対応する変動パターンテーブルの先頭アドレスにも第1特図表示部37a又は第2特図表示部37bに停止表示される絵柄の態様に対応する停止結果データが設定されている。停止結果データは1バイトのデータである。第1特図表示部37a又は第2特図表示部37bに停止表示される絵柄の態様の種類は、当否判定の結果及び振分判定の結果の種類毎に相違させて設定されている。
図51(a)に示すように、「95D0H」〜「95D8H」のアドレスには、3つの表示継続時間データHK1〜HK3と、当該表示継続時間データHK1〜HK3に対応する3つの判定値HVB1〜HVB3とが設定されている。具体的には、「95D0H」のアドレスには表示継続時間データHK1に対応する判定値HVB1が設定されているとともに、「95D0H」に続く「95D1H」〜「95D2H」のアドレスには表示継続時間データHK1が設定されている。また、「95D3H」のアドレスには表示継続時間データHK2に対応する判定値HVB2が設定されているとともに、「95D3H」に続く「95D4H」〜「95D5H」のアドレスには表示継続時間データHK2が設定されている。さらにまた、「95D6H」のアドレスには表示継続時間データHK3に対応する判定値HVB3が設定されているとともに、「95D6H」に続く「95D7H」〜「95D8H」のアドレスには表示継続時間データHK3が設定されている。
判定値HVB1〜HVB3は1バイトのデータであるとともに、表示継続時間データHK1〜HK3は2バイトのデータである。判定値HVB1〜HVB3は、3つの表示継続時間データHK1〜HK3から1つの表示継続時間データを選択する表示継続時間抽選に利用される。表示継続時間データHK1は「1000」であり、表示継続時間データHK1に当選した場合には表示継続時間が4秒となる。表示継続時間データHK2は「1500」であり、表示継続時間データHK2に当選した場合には表示継続時間が6秒となる。表示継続時間データHK3は「2000」であり、表示継続時間データHK3に当選した場合には表示継続時間が8秒となる。
表示継続時間抽選では、主側MPU62に設けられている乱数発生器(カウンタ回路)から取得される1バイトの数値情報(「0」〜「255」のいずれか)が利用される。判定値HVB1及び判定値HVB2は「102」であるとともに、判定値HVB3は「51」である。変動パターンテーブル64tにおいて、表示継続時間データHK1に当選する確率及び表示継続時間データHK2に当選する確率は2/5であるとともに、表示継続時間データHK3に当選する確率は1/5である。
図51(b)は特定制御用のワークエリア121における停止結果データ及び表示継続時間データHK1〜HK3を格納するためのエリアの構成を説明するための説明図である。図51(b)に示すように、特定制御用のワークエリア121において、「0031H」のアドレスには停止結果カウンタ141が設けられているとともに、「0032H」〜「0033H」のアドレスには表示継続時間カウンタ142が設けられている。停止結果カウンタ141は、今回の遊技回における停止結果データを主側CPU63にて把握可能とするカウンタである。停止結果カウンタ141は1バイトからなる。表示継続時間カウンタ142は、今回の遊技回における表示継続時間を主側CPU63にて把握可能とするカウンタである。表示継続時間カウンタ142は2バイトからなる。
既に説明したとおり、主側ROM64には、「0」の変動種別番号に対応する変動パターンテーブル64t以外に、「1」〜「23」の変動種別番号に対応する23個の変動パターンテーブルが記憶されている。「1」〜「23」の変動種別番号に対応する変動パターンテーブルには、2つ〜4つの表示継続時間及び判定値の組合せが設定されている。主側ROM64に記憶されている24個の変動パターンテーブルにおける開始アドレスの間隔は不規則である。このため、変動種別番号のみに基づいて当該変動種別番号に対応する変動パターンテーブルの開始アドレスを算出することはできない。変動開始用テーブル64rを利用して変動種別番号に対応する変動パターンテーブルの開始アドレスを取得する構成において、その変動開始用テーブル64rに2バイトの開始アドレスの全体ではなく下位12ビットのみが設定されていることにより、変動開始用テーブル64rのデータ容量が低減されている。
次に、主側CPU63にて実行される変動情報設定処理について図52のフローチャートを参照しながら説明する。変動情報設定処理は特図変動開始処理(図35)のステップS1012にて実行される。なお、変動情報設定処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
変動情報設定処理では、まず「LD (0031H),(HL+)」という命令を実行する(ステップS1401)。「LD」はLD更新実行回路151によるLD更新命令であり、「0031H」は転送先として特定制御用のワークエリア121における停止結果カウンタ141を指定する内容であり、「(HL+)」は転送元としてHLレジスタ107に格納されているアドレスに対応するエリアに格納されている停止結果データを指定する内容であるとともに、当該停止結果データのロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新することを指示する内容である。「LD (0031H),(HL+)」が実行されることにより、HLレジスタ107に格納されているアドレスデータ(「95CFH」)に対応する停止結果データ(「3」)が停止結果カウンタ141にロードされる。これにより、今回の遊技回における停止結果データを主側CPU63にて把握可能とすることができる。また、当該停止結果データのロード後にHLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「95D0H」に更新される。これにより、HLレジスタ107に格納されているアドレスに基づいて判定値HVB1を把握可能な状態とすることができる。
このように、LD更新命令を利用することにより、変動パターンテーブル64tの先頭アドレスに設定されている停止結果データを停止結果カウンタ141にロードする処理と、当該停止結果データのロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、を一命令で実行することができる。このため、これら2つの処理を実行するために複数の命令をプログラムに設定する構成と比較して、乱数最大値設定処理を実行するためのプログラムのデータ容量を低減することができる。
変動用開始アドレス取得処理(特図変動開始処理(図35)のステップS1011)にてHLレジスタ107に取得した開始アドレスSBnに基づいて変動パターンテーブルを特定し、当該特定した変動パターンテーブルに基づいて停止結果データを取得する構成であることにより、当否判定の結果及び振分判定の結果に対応する停止結果データを停止結果カウンタ141にセットすることができる。
変動パターンテーブルとは別に今回の当否判定結果及び振分判定結果に対応する停止結果データを取得するための停止結果テーブルが主側ROM64に記憶されている構成とすると、当該停止結果テーブルの開始アドレスを指定する必要が生じてしまうとともに、当該停止結果テーブルにおいて今回の当否判定結果及び振分判定結果に対応するエリアを特定する必要が生じてしまう。これに対して、変動用開始アドレス取得処理(ステップS1011、図50(b))においてHLレジスタ107に取得した開始アドレスSBnに基づいて変動パターンテーブルを特定するとともに、当該特定した変動パターンテーブルを利用して停止結果データ及び表示継続時間データを取得する構成であることにより、停止結果データ及び表示継続時間データを取得するための構成を簡素化することができる。
ステップS1401にて「LD (0031H),(HL+)」という命令を実行した後は、主側MPU62に設けられている乱数発生器(カウンタ回路)から1バイトの抽選用の数値情報を取得し、当該取得した数値情報を特定制御用のワークエリア121に設けられた変動用乱数カウンタに格納する(ステップS1402)。変動用乱数カウンタは、表示継続時間データの抽選に用いられる抽選用の数値情報が設定されるカウンタである。変動用乱数カウンタは、「0105H」のアドレスに対応する記憶エリアに設けられた1バイトのカウンタである。変動用乱数カウンタには「0」〜「255」のいずれかの数値情報が格納される。
既に説明したとおり、大当たり種別カウンタC2及び大当たり種別用最大値カウンタCN2のように特定制御用の処理を実行するためにプログラムに出現する回数が多いカウンタ等の記憶エリアは特性制御用のワークエリア121においてLDY命令(第1LDY命令及び後述する第2LDY命令)の対象であるアドレス範囲(「0000H」〜「00FFH」)に設定されている一方、変動用乱数カウンタのように特定制御用の処理を実行するためにプログラムに出現する回数が少ないカウンタ等の記憶エリアは特性制御用のワークエリア121においてLDY命令(第1LDY命令及び後述する第2LDY命令)の対象ではないアドレス範囲(「0100H」〜「02FFH」)に設定されている。これにより、特定制御用の処理を実行するためのプログラムのデータ容量が低減されている。
ステップS1402にて変動用乱数カウンタに抽選用の数値情報を取得した後は、「LD D,(HL+)」という命令を実行する(ステップS1403)。「LD」はLD更新実行回路151によるLD更新命令であり、「D」は転送先としてDレジスタ106aを指定する内容であり、「(HL+)」は転送元としてHLレジスタ107に格納されているアドレスに対応するエリアに格納されている判定値HVB1を指定する内容であるとともに、当該停止結果データのロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新することを指示する内容である。「LD D,(HL+)」が実行されることにより、HLレジスタ107に格納されているアドレスデータ(「95D0H」)に対応する判定値HVB1(「102」)がDレジスタ106aにロードされる。また、当該判定値HVB1のロード後にHLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「95D1H」に更新される。これにより、HLレジスタ107に格納されているアドレスに基づいて判定値HVB1に対応する表示継続時間データHK1(「1000」)を把握可能な状態とすることができる。
このように、LD更新命令を利用することにより、変動パターンテーブル64tに設定されている判定値HVB1をDレジスタ106aにロードする処理と、当該判定値HVB1のロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、を一命令で実行することができる。このため、これら2つの処理を実行するために複数の命令をプログラムに設定する構成と比較して、乱数最大値設定処理を実行するためのプログラムのデータ容量を低減することができる。
その後、特定制御用のワークエリア121における変動用乱数カウンタの値からDレジスタ106aの値を減算する減算処理を実行する(ステップS1404)。変動用乱数カウンタにDレジスタ106aの値と同一の値又はDレジスタ106aの値よりも大きい値が格納されている状態で当該減算処理が実行された場合にはキャリーフラグに「0」が設定されている状態となる。一方、変動用乱数カウンタにDレジスタ106aの値よりも小さい値が格納されている状態で当該減算処理が実行された場合にはキャリーフラグに「1」が設定されている状態となる。
その後、キャリーフラグに「1」がセットされているか否かを判定し(ステップS1405)、キャリーフラグに「1」がセットされていない場合(ステップS1405:NO)には、HLレジスタ107の値を2加算する(ステップS1406)。これにより、HLレジスタ107の値は「95D3H」となり、HLレジスタ107に格納されているアドレスに基づいて判定値HVB2を把握可能な状態となる。ステップS1406の処理を行った場合には、ステップS1403に進み、ステップS1405にて肯定判定が行われるまで、ステップS1403〜ステップS1406の処理を繰り返し実行する。
ステップS1405にて肯定判定を行った場合には、「LD (0032H),HL」という命令を実行して(ステップS1407)、本変動情報設定処理を終了する。ステップS1407において、「LD」はLD命令であり、「(0032H)」は転送先として特定制御用のワークエリア121における表示継続時間カウンタ142を指定する内容であり、「HL」は転送元としてHLレジスタ107を指定する内容である。特定制御用のワークエリア121における変動用乱数カウンタの値からDレジスタ106aに格納された判定値HVB1を減算する減算処理によってキャリーフラグに「1」がセットされた場合にはステップS1407にて表示継続時間カウンタ142に表示継続時間データHK1がセットされる。また、変動用乱数カウンタの値からDレジスタ106aに格納された判定値HVB2を減算する減算処理によってキャリーフラグに「1」がセットされた場合にはステップS1407にて表示継続時間カウンタ142に表示継続時間データHK2がセットされるとともに、変動用乱数カウンタの値からDレジスタ106aに格納された判定値HVB3を減算する減算処理によってキャリーフラグに「1」がセットされた場合にはステップS1407にて表示継続時間カウンタ142に表示継続時間データHK3がセットされる。
変動用開始アドレス取得処理(特図変動開始処理(図35)のステップS1011)にてHLレジスタ107に取得した開始アドレスSBnに基づいて変動パターンテーブルを特定し、当該特定した変動パターンテーブルに基づいて表示継続時間抽選を行う構成であることにより、当否判定の結果、振分判定の結果、リーチ発生抽選の結果及び第1特図保留エリア115の保留数に対応する表示継続時間データを表示継続時間カウンタ142にセットすることができる。
このように、変動情報設定処理(図52)が実行されることにより、停止結果カウンタ141に今回の遊技回における停止結果データがセットされるとともに、表示継続時間カウンタ142に表示継続時間抽選において当選となった表示継続時間データHK1〜HK3がセットされる。
特図変動開始処理(図35)の説明に戻り、ステップS1012にて変動情報設定処理を実行した後は、特定制御用のワークエリア121に設けられている特図特電タイマカウンタの設定処理を実行する(ステップS1013)。特図特電タイマカウンタは、タイマ割込み処理(図26)のステップS509におけるタイマ更新処理にて1減算されて更新されるタイマカウンタである。遊技回用の演出として第1特図表示部37a又は第2特図表示部37bにおける絵柄の変動表示と図柄表示装置41における図柄の変動表示とが行われるが、これらの各変動表示が終了される場合にはその遊技回の停止結果が表示された状態(図柄表示装置41では有効ライン上に所定の図柄の組合せが待機された状態)で最終停止時間に亘って最終停止表示される。この場合に、ステップS1012にて取得される表示継続時間は1遊技回分のトータル時間となっており、ステップS1013における特図特電タイマカウンタの設定処理ではステップS1012にて取得された表示継続時間から最終停止時間分を差し引いた時間の情報を特図特電タイマカウンタにセットする。
その後、変動用コマンド送信処理を実行する(ステップS1014)。当該送信処理では、変動用コマンドを音光側CPU93に送信する。変動用コマンドには、変動用コマンドであることを示す識別データと、ステップS1012にて表示継続時間カウンタ142に設定した表示継続時間データとが含まれている。音光側CPU93は、変動用コマンドに基づいて図柄表示装置41における図柄の変動表示の開始タイミングであることを把握するとともに、当該図柄の変動表示における表示継続時間を把握する。なお、変動用コマンド送信処理の詳細については後述する。
その後、種別コマンド送信処理を実行する(ステップS1015)。当該送信処理では、種別コマンドを音光側CPU93に送信する。種別コマンドには、種別コマンドであることを示す識別データと、当否判定処理の結果に対応したデータと、振分判定の結果に対応したデータと、高確率モードであるか否かのデータと、高頻度サポートモードであるか否かのデータとが含まれている。音光側CPU93は、変動用コマンド及び種別コマンドを受信した場合、当否判定処理の結果、振分判定の結果及び表示継続時間に対応する図柄の変動表示を行うために表示発光部53の発光制御、スピーカ部54の音出力制御及び図柄表示装置41の表示制御を行う。また、音光側CPU93は、種別コマンドを受信した場合、高確率モードであるか否かのデータ設定及び高頻度サポートモードであるか否かのデータ設定を行う。
その後、第1特図表示部37a及び第2特図表示部37bのうち今回の遊技回の実行対象側の表示部において、絵柄の変動表示を開始させる(ステップS1016)。その後、特図特電カウンタを1加算して(ステップS1017)、本特図変動開始処理を終了する。特図変動開始処理が実行される場合における特図特電カウンタの数値情報は「0」であるため、ステップS1017の処理が実行された場合には特図特電カウンタの数値情報は「1」となる。
<特図変動中処理>
次に、特図特電制御処理(図30)のステップS905における特図変動中処理について説明する。
特図変動中処理では、遊技回の継続時間中であって、最終停止表示前のタイミングであるか否かを判定し、最終停止表示前であれば第1特図表示部37a及び第2特図表示部37bのうち今回の遊技回の実行対象側における絵柄の表示態様を規則的に変化させるための処理を実行する。この規則的な変化は、最終停止表示を開始させるタイミングとなるまで継続される。また、この規則的な変化は、当たり結果となるか否か及びリーチ表示が発生するか否かに関係なく、一定の態様で行われる。
また、最終停止表示させるタイミングとなるまで特図変動中処理にて待機するのではなく、最終停止表示させるタイミングではない場合には上記規則的に変化させるための処理を実行した後に、本特図変動中処理を終了する。したがって、遊技回用の演出が開始された後は、最終停止表示させるタイミングとなるまで、特図特電制御処理が起動される度に特図変動中処理が起動される。また、最終停止表示させるタイミングとなった場合には、図柄表示装置41にて今回の遊技回の停止結果を最終停止表示させるために、最終停止コマンドを音光側CPU93に送信するとともに、第1特図表示部37a及び第2特図表示部37bのうち今回の遊技回の実行対象側における絵柄の表示態様を今回の遊技回の抽選結果に対応した表示態様とする。また、遊技回の最終停止時間(0.5秒)の情報を主側ROM64から読み出し、特図特電タイマカウンタにセットする。そして、特図特電カウンタの値を1加算することで、当該カウンタの値を特図変動中処理に対応したものから特図確定中処理に対応したものに更新する。
<特図確定中処理>
次に、特図特電制御処理(図30)のステップS906における特図確定中処理について説明する。
特図確定中処理では、今回の遊技回の最終停止時間が経過したか否かを判定し、当該最終停止時間が経過している場合には今回の遊技回の契機となった当否判定の結果が大当たり結果又は小当たり結果であるか否かを判定する。今回の遊技回の契機となった当否判定結果が大当たり結果及び小当たり結果のいずれでもない場合には、特定制御用のワークエリア121におけるデータモードエリアの高確率モードフラグに「1」がセットされているか否かを判定する。主側CPU63は遊技回を開始させる場合における当否判定処理において高確率モードフラグに「1」がセットされているか否かを判定することで、当否テーブルとして高確当否テーブル64g及び低確当否テーブル64a〜64fのうちいずれを参照すべきかを特定する。既に説明したとおり、高確率モードフラグには実行契機となった大当たり結果の種類に関係なく開閉実行モードが終了する場合に「1」がセットされる。高確率モードフラグに「1」がセットされている場合、特定制御用のワークエリア121に設けられた高確率継続カウンタの値を1減算する。高確率継続カウンタは開閉実行モードが終了した後における遊技回の消化回数(具体的には「8」)が高確率モードを終了させる契機となる回数となったか否かを主側CPU63にて特定するためのカウンタである。1減算後における高確率継続カウンタの値が「0」である場合、高確率モードフラグを「0」クリアするとともに、高頻度サポートモードフラグを「0」クリアする。
一方、特図確定中処理(ステップS906)において、今回の遊技回の契機となった当否判定の結果が大当たり結果又は小当たり結果であると判定した場合には、主側ROM64に予め記憶されているオープニング時間(例えば4秒)の情報を読み出し、そのオープニング時間の情報を特図特電タイマカウンタにセットする。その後、オープニングコマンドを音光側CPU93に送信する。オープニングコマンドは、音光側CPU93に対して開閉実行モード用の演出を開始させるタイミングであることを認識させるためのコマンドである。オープニングコマンドには、開閉実行モードの契機となった遊技結果が各種大当たり結果及び小当たり結果のうちいずれであるかを示す情報も含まれる。したがって、音光側CPU93は、開閉実行モードの契機となった遊技結果に対応した態様で、開閉実行モードの演出を実行させることが可能となる。その後、特図特電カウンタの値を1加算することにより「2」が格納されていた当該特図特電カウンタの値を「3」に変更して、本特図確定中処理を終了する。
<特電開始処理>
次に、特図特電制御処理(図30)のステップS907における特電開始処理について説明する。
特電開始処理では、今回の開閉実行モードにおけるオープニング時間が経過したか否かを判定し、当該オープニング時間が経過したと判定した場合には、今回の開閉実行モードの実行契機がいずれかの大当たり結果であるか否かを判定する。今回の開閉実行モードの実行契機がいずれかの大当たり結果であると判定した場合には、特定制御用のワークエリア121に設けられたラウンドカウンタに、今回の大当たり結果に対応したラウンド遊技の回数の値(「4」、「8」又は「16」)をセットし、特定制御用のワークエリア121に設けられた入賞カウンタに「10」をセットする。ラウンドカウンタは、開閉実行モードにおいて残りのラウンド遊技の回数を主側CPU63にて特定するためのカウンタであり、入賞カウンタは、一のラウンド遊技又は一の開閉数規定モードにおいて、上限個数の遊技球の入賞が発生したか否かを主側CPU63にて特定するためのカウンタである。その後、大当たり結果に対応した開放継続時間の読み出し処理を実行する。
一方、今回の開閉実行モードの実行契機がいずれの大当たり結果でもないと判定した場合、すなわち今回の開閉実行モードの実行契機が小当たり結果である場合には、特定制御用のワークエリア121に設けられた開閉カウンタに「5」をセットするとともに、特定制御用のワークエリア121に設けられた入賞カウンタに「10」をセットする。開閉カウンタは、開閉数規定モードの開閉実行モードにおいて、特電入賞装置32を開閉する回数を主側CPU63にて特定するためのカウンタである。その後、小当たり結果に対応した開放継続時間の読み出し処理を実行する。当該開放継続時間は、主側ROM64に予め記憶されており、具体的には、遊技球の発射周期(0.6秒)よりも短い、0.05秒となっている。
今回の開閉実行モードの実行契機がいずれかの大当たり結果であると判定した場合において上述した開放継続時間の読み出し処理を実行した場合、又は今回の開閉実行モードの実行契機がいずれの大当たり結果でもないと判定した場合において上述した開放継続時間の情報の読み出しを行った場合には、読み出した開放継続時間の情報を特図特電タイマカウンタにセットし、特電入賞装置32を開放状態とするための開放設定処理を実行する。その後、開放コマンドを出力する。開放コマンドは、音光側CPU93に対して特電入賞装置32が開放されたタイミングであることを認識させるためのコマンドである。音光側CPU93は、当該開放コマンドを受信することにより、開閉実行モード中の演出をそれに合わせて切り換えるための制御を実行する。その後、特図特電カウンタを1加算することにより「3」が格納されていた当該特図特電カウンタの値を「4」に変更して、本特電開始処理を終了する。
<特電開放中処理>
次に、特図特電制御処理(図30)のステップS908における特電開放中処理について説明する。
特電開放中処理では、今回の開閉実行モードがラウンド数規定モードである場合には1のラウンド遊技の終了条件が成立しているか否かを判定し、当該終了条件が成立している場合には特電入賞装置32を閉鎖状態とするとともに、閉鎖コマンドを音光側CPU93に送信する。閉鎖コマンドは、特電入賞装置32が閉鎖されたタイミングであることを音光側CPU93に認識させるためのコマンドである。また、1減算後のラウンドカウンタの値が「0」となっているか否かを判定し、「0」となっていない場合には、特図特電タイマカウンタに閉鎖時間をセットする。当該閉鎖時間は、開閉実行モードへの移行契機となった遊技結果の種類に関係なく一定となっており、具体的には遊技球の発射周期よりも長い2秒となっている。また、特電入賞装置32を閉鎖状態とした場合には、ラウンドカウンタの値が「0」であるか否かに関係なく、特図特電カウンタを1加算する。この場合、特電開放中処理が実行される場合における特図特電カウンタの値は「4」であるため、1加算後は「5」となる。
今回の開閉実行モードが開閉数規定モードである場合には、特電入賞装置32の開放継続時間が経過している場合には特電入賞装置32を閉鎖状態とするとともに、閉鎖コマンドを音光側CPU93に送信する。そして、1減算後の開閉カウンタの値が「0」となっているか否かを判定し、「0」となっていない場合には、特図特電タイマカウンタに閉鎖時間をセットする。当該閉鎖時間は、既に説明したとおり、開閉実行モードへの移行契機となった遊技結果の種類に関係なく一定となっている。また、開放継続時間が経過していない場合には特電入賞装置32への入賞が発生しているか否かを判定し、入賞が発生している場合には入賞カウンタを1減算する。そして、1減算後の入賞カウンタの値が「0」となっている場合には、開閉カウンタを「0」クリアするとともに、特電入賞装置32を閉鎖状態とする。また、特電入賞装置32を閉鎖状態とした場合には、開閉カウンタの値が「0」であるか否かに関係なく、特図特電カウンタを1加算する。この場合、特電開放中処理が実行される場合における特図特電カウンタの値は「4」であるため、1加算後は「5」となる。
<特電閉鎖中処理>
次に、特図特電制御処理(図30)のステップS909における特電閉鎖中処理について説明する。
特電閉鎖中処理では、ラウンドカウンタ及び開閉カウンタの両方が「0」であるか否かを判定する。いずれか一方が「0」ではない場合には、閉鎖時間が経過したか否かを判定する。閉鎖時間が経過していない場合にはそのまま本特電閉鎖中処理を終了し、閉鎖時間が経過している場合には、特電入賞装置32を開放状態とするとともに、今回の開閉実行モードの実行契機となった当たり結果に対応した開放継続時間を特図特電タイマカウンタにセットする。また、特電入賞装置32を開放状態とした場合には、開放コマンドを音光側CPU93に送信する。その後、特図特電カウンタを1減算した後に、本特電閉鎖中処理を終了する。この場合、特電閉鎖中処理が実行される場合における特図特電カウンタの値は「5」であるため、1減算後は「4」となる。
一方、ラウンドカウンタ及び開閉カウンタの両方が「0」である場合には、エンディングコマンドを音光側CPU93に送信する。エンディングコマンドは、音光側CPU93にエンディング用の演出を開始させるタイミングであることを認識させるためのコマンドである。エンディングコマンドには、開閉実行モードの契機となった遊技結果が各種大当たり結果及び小当たり結果のうちいずれであるかを示す情報も含まれる。したがって、音光側CPU93は、開閉実行モードの契機となった遊技結果に対応させた態様で、エンディング演出を実行させることが可能となる。また、主側ROM64に予め記憶されているエンディング時間(例えば6秒)の情報を読み出し、そのエンディング時間の情報を、特図特電タイマカウンタにセットする。ちなみに、当該エンディング時間は、開閉実行モードへの移行契機となった遊技結果の種類に関係なく一定となっている。その後、特図特電カウンタを1加算した後に、本特電閉鎖中処理を終了する。この場合、特電閉鎖中処理が実行される場合における特図特電カウンタの値は「5」であるため、1加算後は「6」となる。
<特電終了処理>
次に、特図特電制御処理(図30)のステップS910における特電終了処理について説明する。
特電終了処理では、エンディング時間が経過したか否かを判定する。エンディング時間が経過したと判定した場合には、遊技状態移行処理を実行し、特図特電カウンタを「0」クリアして、本特電終了処理を終了する。ここで、遊技状態移行処理について説明する。
遊技状態移行処理では、今回終了した開閉実行モードの移行の契機となった当否判定の結果が大当たり結果である場合、特定制御用のワークエリア121におけるデータエリアの高確率モードフラグ及び高頻度サポートモードフラグに「1」をセットとともに、特定制御用のワークエリア121における高確率継続カウンタに「8」をセットする。これにより、開閉実行モード後の遊技状態が高確率モードであって高頻度サポートモードとなるとともに、当該遊技状態は遊技回が8回消化されるまで継続されることとなる。
遊技状態移行処理では、今回終了した開閉実行モードの移行の契機となった当たり結果が小当たり結果である場合、特定制御用のワークエリア121に設けられた小当たり後カウンタに「30」をセットして、本遊技状態移行処理を終了する。小当たり後カウンタは、小当たり結果となってから小当たり後用基準回数の遊技回が既に消化されたか否かを主側CPU63にて特定するためのカウンタである。小当たり後カウンタの値は遊技回が終了される度に1減算される。また、開閉実行モードの移行に際して、小当たり後カウンタの値は「0」クリアされる。小当たり後カウンタの値が1以上の場合には、遊技回における表示継続時間の選択が、小当たり結果後に対応した態様で行われる。
次に、タイマ割込み処理(図26)のステップS514にて実行される表示制御処理の説明に先立ち、主側ROM64に記憶されている保留表示データテーブル64sについて説明する。保留表示データテーブル64sは、第1特図保留表示部37c、第2特図保留表示部37d及び普図保留表示部38bの表示制御を行うためのデータテーブルである。
図53(a)は保留表示データテーブル64sのデータ構成を説明するための説明図であり、図53(b)は保留数に対応する保留表示データの取得態様を説明するための説明図であり、図53(c)は比較のために示す従来の保留表示データテーブルのデータ構成を説明するための説明図である。図53(a)に示すように、保留表示データテーブル64sは主側ROM64において「9190H」〜「9192H」のアドレス範囲に記憶されている。図53(b)に示すように、保留表示データHR0〜HR4は1バイトのデータであり、保留表示データHR0〜HR4の上位4ビットは「0000B」で共通している。
図53(a)に示すように、保留表示データテーブル64sには、「0」〜「4」の保留数に対応する5個の保留表示データHR0〜HR4の下位4ビットが設定されている。具体的には、保留表示データテーブル64sの開始アドレスである「9190H」に対応する1バイトのエリアの下位4ビット(第0〜第3ビット)には第0保留表示データHR0の下位4ビット(「0000B」)が設定されているとともに、当該エリアの上位4ビット(第4〜第7ビット)には第1保留表示データHR1の下位4ビット(「0001B」)が設定されている。「9190H」に続く「9191H」に対応する1バイトのエリアの下位4ビットには第2保留表示データHR2の下位4ビット(「0011B」)が設定されているとともに、当該エリアの上位4ビットには第3保留表示データHR3の下位4ビット(「0111B」)が設定されている。「9191H」に続く「9192H」に対応する1バイトのエリアの下位4ビットには第4保留表示データHR4の下位4ビット(「1111B」)が設定されているとともに、当該エリアの上位4ビットには使用されない調整データとして「0000B」が設定されている。
後述する表示制御処理(図54)のステップS1501における第1特図保留表示データ取得処理、ステップS1503における第2特図保留表示データ取得処理及びステップS1505における普図保留表示データ取得処理では、保留数に対応する保留表示データHRn(nは0〜4のいずれかの整数)の下位4ビットがWレジスタ104aの下位4ビット(第0〜第3ビット)にロードされるとともに、当該Wレジスタ104aの上位4ビット(第4〜第7ビット)が「0」でマスクされる。これにより、保留数に対応する保留表示データHR0〜HR4の全体をWレジスタ104aにセットすることができる。
図53(a)に示すように、保留表示データテーブル64sにおいて5つの保留表示データHR0〜HR4の下位4ビットは、主側ROM64において合計3バイトのエリアに設定されている。これに対して、1バイトの保留表示データHR0〜HR4の全体を保留表示データテーブル64sに記憶しておく構成とすると、図53(c)に示すように、5つの保留表示データHR0〜HR4を設定するために合計5バイトのエリアが必要となる。このように、5つの保留表示データHR0〜HR4の下位4ビットのみが保留表示データテーブル64sに設定されているデータ構成であることにより、主側ROM64において保留表示データテーブル64sを記憶しておくためのデータ容量が低減されている。
次に、主側CPU63にて実行される表示制御処理について図54のフローチャートを参照しながら説明する。表示制御処理はタイマ割込み処理(図26)のステップS514にて実行される。なお、表示制御処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
表示制御処理では、まず第1特図保留表示データ取得処理を実行する(ステップS1501)。第1特図保留表示データ取得処理では、特定制御用のワークエリア121における第1特図保留数カウンタ118を参照して第1特図保留エリア115の保留数を把握する。その後、主側ROM64における保留表示データテーブル64sに基づいて当該把握した保留数に対応する保留表示データHRn(nは0〜4のいずれかの整数)の下位4ビットをWレジスタ104aの下位4ビット(第0〜第3ビット)にロードするとともに、Wレジスタ104aの上位4ビット(第4〜第7ビット)を「0」でマスクする。これにより、第1特図保留数カウンタ118の値に対応する保留表示データHRnの全体をWレジスタ104aにセットすることができる。なお、第1特図保留表示データ取得処理の詳細については後述する。
その後、ステップS1501にてWレジスタ104aにセットした保留表示データHRnを特定制御用のワークエリア121に設けられた第1特図保留表示エリアにセットする(ステップS1502)。第1特図保留表示エリアは、第1特図保留表示部37cの表示制御を行うための表示データがセットされる記憶エリアである。第1特図保留表示エリアは1バイトからなる。第1特図保留表示エリアに設定された保留表示データHRnは、ステップS1507にて第1特図保留表示部37cの表示制御を行うために主制御基板61に設けられた第1特図用ドライバ回路に出力される。
その後、第2特図保留表示データ取得処理を実行する(ステップS1503)。第2特図保留表示データ取得処理では、特定制御用のワークエリア121における第2特図保留数カウンタ119を参照して第2特図保留エリア116の保留数を把握する。その後、主側ROM64における保留表示データテーブル64sに基づいて当該把握した保留数に対応する保留表示データHRnの下位4ビットをWレジスタ104aの下位4ビット(第0〜第3ビット)に設定するとともに、Wレジスタ104aの上位4ビット(第4〜第7ビット)を「0」でマスクする。これにより、第2特図保留数カウンタ119の値に対応する保留表示データHRnの全体をWレジスタ104aにセットすることができる。なお、第2特図保留表示データ取得処理の詳細については後述する。
その後、ステップS1503にてWレジスタ104aにセットした保留表示データHRnを特定制御用のワークエリア121に設けられた第2特図保留表示エリアにセットする(ステップS1504)。第2特図保留表示エリアは、第2特図保留表示部37dの表示制御を行うための表示データがセットされる記憶エリアである。第2特図保留表示エリアは1バイトからなる。第2特図保留表示エリアにセットされた保留表示データHRnは、ステップS1507にて第2特図保留表示部37dを表示制御するために主制御基板61に設けられた第2特図用ドライバ回路に出力される。
その後、普図保留表示データ取得処理を実行する(ステップS1505)。普図保留表示データ取得処理では、特定制御用のワークエリア121における普図保留数カウンタ127を参照して普図保留エリア114の保留数を把握する。その後、主側ROM64における保留表示データテーブル64sに基づいて当該把握した保留数に対応する保留表示データHRnの下位4ビットをWレジスタ104aの下位4ビット(第0〜第3ビット)にセットするとともに、Wレジスタ104aの上位4ビット(第4〜第7ビット)を「0」でマスクする。これにより、普図保留数カウンタ127の値に対応する保留表示データHRnの全体をWレジスタ104aにセットすることができる。なお、普図保留表示データ取得処理の詳細については後述する。
その後、ステップS1505にてWレジスタ104aにセットした保留表示データHRnを特定制御用のワークエリア121に設けられた普図保留表示エリアにセットする(ステップS1506)。普図保留表示エリアは、普図保留表示部38bの表示制御を行うための表示データがセットされる記憶エリアである。普図保留表示エリアは1バイトからなる。普図保留表示エリアに設定された保留表示データHRnは、ステップS1507にて普図保留表示部38bの表示制御を行うために主制御基板61に設けられた普図用ドライバ回路に出力される。
その後、各種表示データの出力処理を実行して(ステップS1507)、本表示制御処理を終了する。ステップS1507における各種表示データの出力処理では、特定制御用のワークエリア121における第1特図保留表示エリアにセットされている保留表示データHRnを第1特図用ドライバ回路に出力し、第2特図保留表示エリアに格納されている保留表示データHRnを第2特図用ドライバ回路に出力し、普図保留表示エリアに格納されている保留表示データHRnを普図用ドライバ回路に出力する。
次に、表示制御処理(図54)のステップS1501にて実行される第1特図表示データ取得処理のプログラム内容について図55(a)の説明図を参照しながら説明する。図55(a)に示すように本プログラムには、行番号として「2101」〜「2105」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
「2101」の行番号には「LD W,(THRYUH1)」という命令が設定されている。「LD」はLD命令であり、「W」は転送先としてWレジスタ104aを指定する内容である。「THRYUH1」は特定制御用のワークエリア121における第1特図保留数カウンタ118のアドレスであり、「(THRYUH1)」は第1特図保留数カウンタ118に格納されているデータを「転送先」にロードする内容である。既に説明したとおり、第1特図保留数カウンタ118には、0〜4のいずれかの数値データが格納されている。「LD W,(THRYUH1)」が実行されることにより、「転送先」のWレジスタ104aに第1特図保留数カウンタ118のデータがロードされる。
「2102」の行番号には「LD B,04H」という命令が設定されている。「LD」はLD命令であり、「B」は転送先としてBレジスタ105aを指定する内容であり、「04H」は「転送元」として「04H」という数値データを指定する内容である。「04H」は後述する行番号「2104」にて呼び出される保留表示データ取得実行処理(図55(b))において保留表示データテーブル64sから取得するアドレスデータのビット数(取得ビット数)である。「LD B,04H」が実行されることにより、「転送先」のBレジスタ105aに保留表示データテーブル64sから取得するアドレスデータのビット数(「4」)が設定される。
「2103」の行番号には「LD HL,TBL_LEDHYU_B」という命令が設定されている。「LD」はLD命令であり、「HL」は転送先としてHLレジスタ107を指定する内容である。「TBL_LEDHYU_B」は、取得開始アドレスを保留表示データテーブル64sの開始アドレス(「9190H」)とするための2バイトの数値データであり、具体的には「0C80H」である。「LD HL,TBL_LEDHYU_B」が実行されることにより、「転送先」のHLレジスタ107に「0C80H」がロードされる。
「TBL_LEDHYU_B」は、「{(保留表示データテーブル64sの開始アドレス)−9000H}×8」という式で算出される。「TBL_LEDHYU_B」における第3〜第14ビットには、開始アドレス「9190H」における第0〜第11ビットのデータが設定されている。既に説明したとおり、LDB命令では、取得データ指定データにおける第3〜第14ビットのデータが取得開始アドレスの第0〜第11ビットに設定されるとともに、取得開始アドレスの第12〜第15ビットにデータテーブルの基準アドレス(「9000H」)における第12〜第15ビットのデータが設定される。「{(保留表示データテーブル64sの開始アドレス)−9000H}×8」の式で算出される「TBL_LEDHYU_B」を取得データ指定データとして設定することにより、保留表示データテーブル64sの開始アドレスを取得開始アドレスとすることができる。
行番号「2104」にて呼び出す保留表示データ取得実行処理(図55(b))では、第1特図保留数カウンタ118の値が「0」である場合、HLレジスタ107に格納されている「0C80H」が取得データ指定データとして使用される。一方、第1特図保留数カウンタ118の値が「1」以上である場合、HLレジスタ107に格納されている数値情報は、LDB命令が実行される前に当該第1特図保留数カウンタ118の値に対応する数値情報に変更される。
「2104」の行番号には「CALLS LDBGET」という命令が設定されている。「LDBGET」は後述する保留表示データ取得実行処理(図55(b))である。「CALLS LDBGET」という命令は、保留表示データ取得実行処理というサブルーチンを呼び出すための命令である。詳細は後述するが、行番号「2104」にて保留表示データ取得実行処理が実行されることにより、第1特図保留数カウンタ118の値に対応する保留表示データHRnがWレジスタ104aに設定される。保留表示データ取得実行処理のサブルーチンが終了した場合には、「2105」の行番号に進む。
「2105」の行番号には「RET」という命令が設定されている。既に説明したとおり、第1特図表示データ取得処理は表示制御処理(図54)のステップS1501にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、表示制御処理(図54)のステップS1502に進むことになる。
次に、主側CPU63にて実行される保留表示データ取得実行処理について図55(b)の説明図を参照しながら説明する。図55(b)は保留表示データ取得実行処理のプログラム内容を説明するための説明図である。保留表示データ取得実行処理は、第1特図保留表示データ取得処理(図55(a))の行番号「2104」にて実行される。また、保留表示データ取得実行処理は、後述する第2特図保留表示データ取得処理(図55(c))の行番号「2304」、及び後述する普図保留表示データ取得処理(図55(d))の行番号「2404」においても実行される。まず保留表示データ取得実行処理が第1特図保留表示データ取得処理(図55(a))の行番号「2104」にて実行される場合について説明する。
図55(b)に示すように、本プログラムには、行番号として「2201」〜「2208」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
図55(b)に示すように、「2201」の行番号には「LDBGET」が設定されている。これは命令ではなくパチンコ機10の開発者によるプログラムの確認に際して参照されるデータである。したがって、行番号「2201」では何ら命令が実行されることなく行番号「2202」に進む。
「2202」の行番号には「LD A,B」という命令が設定されている。「LD」はLD命令であり、「A」は転送先としてAレジスタ104bを指定する内容であり、「B」は転送元としてBレジスタ105aを指定する内容である。既に説明したとおり、第1特図保留表示データ取得処理(図55(a))においてBレジスタ105aには取得ビット数である「04H」が設定されている。このため、「LD A,B」が実行されることにより、「転送先」のAレジスタ104bに「04H」が設定される。
「2203」の行番号には「MUL W,A」という命令が設定されている。「MUL」はMUL命令という演算命令であり、「W」はWレジスタ104aを指定する内容であり、「A」はAレジスタ104bを指定する内容である。「MUL W,A」が実行されることにより、Wレジスタ104aの値とAレジスタ104bの値とを乗算する演算が行われるとともに当該演算の結果がWAレジスタ104に格納される。既に説明したとおり、第1特図保留表示データ取得処理(図55(a))の行番号「2103」において、HLレジスタ107には第1特図保留数カウンタ118における「0」の値に対応する取得データ指定データ(「0C80H」)が格納されている。「(第1特図保留数カウンタ118の値)×(取得ビット数)」の演算結果のデータは、HLレジスタ107に格納されている当該取得データ指定データを第1特図保留数カウンタ118の値に対応するデータに変更するために用いられる。
「2204」の行番号には「ADD HL,WA」という命令が設定されている。「ADD」はADD命令という演算命令であり、「HL」はHLレジスタ107を指定する内容であり、「WA」はWAレジスタ104を指定する内容である。「ADD HL,WA」が実行されることにより、HLレジスタ107の値とWAレジスタ104の値との和がHLレジスタ107に格納される。上述したとおり、第1特図保留表示データ取得処理(図55(a))の行番号「2103」において、HLレジスタ107には第1特図保留数カウンタ118における「0」の値に対応する取得データ指定データ(「0C80H」)が格納されている。また、上述したとおり、WAレジスタ104には、「(第1特図保留数カウンタ118の値)×(取得ビット数)」の演算結果のデータが格納されている。HLレジスタ107に格納されている取得データ指定データに対してWAレジスタ104に格納されている「(第1特図保留数カウンタ118の値)×(取得ビット数)」の演算結果のデータを加算することにより、第1特図保留数カウンタ118の値に対応する取得データ指定データがHLレジスタ107に格納されている状態とすることができる。
「2205」の行番号には、行番号「2202」と同様に、「LD A,B」という命令が設定されている。既に説明したとおり、第1特図保留表示データ取得処理(図55(a))においてBレジスタ105aには取得ビット数として「04H」が設定されている。このため、「LD A,B」が実行されることにより、「転送先」のAレジスタ104bに「04H」がロードされる。既に説明したとおり、Bレジスタ105aに格納された「04H」は、「(第1特図保留数カウンタ118の値)×(取得ビット数)」の演算にも用いられた。このように、事前にBレジスタ105aに格納された「04H」は、「(第1特図保留数カウンタ118の値)×(取得ビット数)」の演算に用いられるとともに、LDB命令における取得ビット数を指定するためのデータをAレジスタ104bに設定するために用いられる。
「2206」の行番号には「DEC A」という命令が設定されている。「DEC」はDEC命令という演算命令であり、「A」はAレジスタ104bを指定する内容である。「DEC A」が実行されることにより、Aレジスタ104bの値が1減算される。上述したとおり、Aレジスタ104bには「04H」が格納されている。このため、行番号「2206」にて「DEC A」が実行されることにより、Aレジスタ104bには「03H」が格納されている状態となる。「03H」は、保留表示データテーブル64sから取得するビット数である「4」から「1」を減算した値である。
行番号「2207」にて「LDB W,(HL).A」というLDB命令が実行される場合、LDB実行回路157においてAレジスタ104bの値を1加算する演算が行われるとともに、当該1加算後の値が取得ビット数のデータとして利用される。このため、行番号「2206」にてAレジスタ104bの値を1減算しておくことにより、LDB命令において保留表示データテーブル64sから取得されるデータのビット数を「4」とすることができる。
「2207」の行番号には「LDB W,(HL).A」という命令が設定されている。「LDB」はLDB実行回路157によるLDB命令であり、「HL」は「転送先」としてHLレジスタ107を指定する内容であり、「(HL)」はHLレジスタ107に格納されている2バイトのデータを取得データ指定データに指定する内容であり、「A」はAレジスタ104bに格納されている1バイトのデータを取得ビット数指定データに指定する内容である。既に説明したとおり、HLレジスタ107には第1特図保留数カウンタ118の値に対応する取得データ指定データが格納されている状態であるとともに、Aレジスタ104bには取得ビット数(「04H」)から「1」を減算した「03H」が格納されている状態である。また、TPレジスタ111にはデータテーブルの基準アドレスである「9000H」が格納されている状態である。当該状態において、行番号「2207」にて「LDB W,(HL).A」という命令が実行されることにより、転送先であるWレジスタ104aの第0〜第3ビットには第1特図保留数カウンタ118の値に対応する保留表示データHRnにおける下位4ビットのデータがロードされるとともに、当該Wレジスタ104aの第4〜第7ビットが「0」でマスクされる。
具体的には、図53(b)に示すように、第1特図保留数カウンタ118の値が「0」である場合、取得開始アドレスが「9190H」となるとともに取得開始ビット目が「0」となり、Wレジスタ104aの第0〜第3ビットに保留表示データHR0の下位4ビットがロードされる。第1特図保留数カウンタ118の値が「1」である場合、取得開始アドレスが「9190H」となるとともに取得開始ビット目が「4」となり、Wレジスタ104aの第0〜第3ビットに保留表示データHR1の下位4ビットがロードされる。第1特図保留数カウンタ118の値が「2」である場合、取得開始アドレスが「9191H」となるとともに取得開始ビット目が「0」となり、Wレジスタ104aの第0〜第3ビットに保留表示データHR2の下位4ビットがロードされる。第1特図保留数カウンタ118の値が「3」である場合、取得開始アドレスが「9191H」となるとともに取得開始ビット目が「4」となり、Wレジスタ104aの第0〜第3ビットに保留表示データHR3の下位4ビットがロードされる。第1特図保留数カウンタ118の値が「4」である場合、取得開始アドレスが「9192H」となるとともに取得開始ビット目が「0」となり、Wレジスタ104aの第0〜第3ビットに保留表示データHR4の下位4ビットがロードされる。このように、第1特図保留数カウンタ118の値が1増加する度に保留表示データテーブル64sにおけるデータの取得開始位置が4ビットずれる。
LDB命令を利用して保留表示データテーブル64sから取得した保留表示データHRnの下位4ビットをWレジスタ104aの第0〜第3ビット(下位4ビット)にロードする構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの第0〜第2ビット(下位3ビット)に対応する取得開始ビット目を特定する処理と、保留表示データテーブル64sから取得した保留表示データHRnの下位4ビットをWレジスタ104aの下位4ビットにロードする処理と、当該Wレジスタ104aの上位4ビットを「0」でマスクする処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
「2208」の行番号には「RET」という命令が設定されている。保留表示データ取得実行処理が第1特図保留表示データ取得処理(図55(a))の行番号「2104」にて実行された場合には、「RET」という命令が実行されることで、第1特図保留表示データ取得処理の行番号「2105」に進むことになる。
このように、LDB命令を利用することにより、保留表示データテーブル64sから保留表示データHRnの下位4ビットをWレジスタ104aの下位4ビットに取得するとともに、当該Wレジスタ104aの上位4ビットを「0」でマスクして保留表示データHRnの全体を取得することができる。このため、保留表示データテーブル64sに設定する保留表示データHRnを保留表示データHRnの下位4ビットのみとすることができる。これにより、保留表示データテーブル64sに1バイトの保留表示データHRnの全体を設定する構成と比較して、主側ROM64における保留表示データテーブル64sのデータ容量を低減することができる。また、保留表示データHRnの下位4ビットをWレジスタ104aの下位4ビットにロードする処理と、当該Wレジスタ104aの上位4ビットを「0」でマスクする処理と、を一命令で実行することができるため、これらの処理を実行するために複数の命令が設定されている構成と比較して、保留表示データ取得実行処理を実行するためのプログラムの構成を簡素化することができるとともに、当該プログラムの主側ROM64におけるデータ容量を低減することができる。
次に、表示制御処理(図54)のステップS1503にて実行される第2特図表示データ取得処理のプログラム内容について図55(c)の説明図を参照しながら説明する。図55(c)に示すように本プログラムには、行番号として「2301」〜「2305」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
「2301」の行番号には「LD W,(THRYUH2)」という命令が設定されている。「LD」はLD命令であり、「W」は転送先としてWレジスタ104aを指定する内容である。「THRYUH2」は特定制御用のワークエリア121における第2特図保留数カウンタ119のアドレスであり、「(THRYUH2)」は第2特図保留数カウンタ119に格納されているデータを「転送先」にロードする内容である。既に説明したとおり、第2特図保留数カウンタ119には、0〜4のいずれかの数値データが格納されている。「LD W,(THRYUH2)」が実行されることにより、「転送先」のWレジスタ104aに第2特図保留数カウンタ119のデータがロードされる。
「2302」の行番号には、第1特図保留表示データ取得処理(図55(a))の行番号「2102」と同様に、「LD B,04H」という命令が設定されている。「04H」は後述する行番号「2304」にて呼び出される保留表示データ取得実行処理(図55(b))において保留表示データテーブル64sから取得するアドレスデータのビット数(取得ビット数)である。「LD B,04H」が実行されることにより、「転送先」のBレジスタ105aに保留表示データテーブル64sから取得するアドレスデータのビット数(「4」)が設定される。
「2303」の行番号には、第1特図保留表示データ取得処理(図55(a))の行番号「2103」と同様に、「LD HL,TBL_LEDHYU_B」という命令が設定されている。「LD HL,TBL_LEDHYU_B」が実行されることにより、「転送先」のHLレジスタ107に「0C80H」が設定される。「0C80H」は、行番号「2304」にて呼び出す保留表示データ取得実行処理(図55(b))において保留表示データテーブル64sから第2特図保留数カウンタ119の値に対応する保留表示データHRn(nは0〜4のいずれかの整数)の下位4ビットを取得するためにHLレジスタ107に格納される。
「2304」の行番号には、第1特図保留表示データ取得処理(図55(a))の行番号「2104」と同様に、「CALLS LDBGET」という命令が設定されている。既に説明したとおり、「CALLS LDBGET」という命令は、保留表示データ取得実行処理というサブルーチンを呼び出すための命令である。行番号「2304」にて保留表示データ取得実行処理が実行されることにより、第2特図保留数カウンタ119の値に対応する保留表示データHRnがWレジスタ104aにロードされる。このように、第1特図保留表示データ取得処理(図55(a))と共通のサブルーチンのプログラム及び保留表示データテーブル64sを利用して第2特図保留数カウンタ119の値に対応する保留表示データHRnを取得する構成であることにより、保留表示データHRnを取得するためのプログラム及びデータのデータ容量を低減することができる。取得用処理のサブルーチンが終了した場合には、「2305」の行番号に進む。
「2305」の行番号には「RET」という命令が設定されている。既に説明したとおり、第2特図表示データ取得処理は表示制御処理(図54)のステップS1503にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、表示制御処理(図54)のステップS1504に進むことになる。
次に、表示制御処理(図54)のステップS1505にて実行される普図表示データ取得処理のプログラム内容について図55(d)の説明図を参照しながら説明する。図55(d)に示すように本プログラムには、行番号として「2401」〜「2405」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
「2401」の行番号には「LD W,(HHRYUH)」という命令が設定されている。「LD」はLD命令であり、「W」は転送先としてWレジスタ104aを指定する内容である。「HHRYUH」は特定制御用のワークエリア121における普図保留数カウンタ127のアドレスであり、「(HHRYUH)」は普図保留数カウンタ127に格納されているデータを「転送先」にロードする内容である。既に説明したとおり、普図保留数カウンタ127には、0〜4のいずれかの数値データが格納されている。「LD W,(THRYUH2)」が実行されることにより、「転送先」のWレジスタ104aに普図保留数カウンタ127のデータがロードされる。
「2402」の行番号には、第1特図保留表示データ取得処理(図55(a))の行番号「2102」及び第2特図保留表示データ取得処理(図55(c))の行番号「2302」と同様に、「LD B,04H」という命令が設定されている。「04H」は後述する行番号「2404」にて呼び出される保留表示データ取得実行処理(図55(b))において保留表示データテーブル64sから取得するアドレスデータのビット数(取得ビット数)である。「LD B,04H」が実行されることにより、「転送先」のBレジスタ105aに保留表示データテーブル64sから取得するアドレスデータのビット数(「4」)が設定される。
「2403」の行番号には、第1特図保留表示データ取得処理(図55(a))の行番号「2103」及び第2特図保留表示データ取得処理(図55(c))の行番号「2303」と同様に、「LD HL,TBL_LEDHYU_B」という命令が設定されている。「LD HL,TBL_LEDHYU_B」が実行されることにより、「転送先」のHLレジスタ107に「0C80H」がロードされる。「0C80H」は、行番号「2404」にて呼び出す保留表示データ取得実行処理(図55(b))において保留表示データテーブル64sから普図保留数カウンタ127の値に対応する保留表示データHRn(nは0〜4のいずれかの整数)の下位4ビットを取得するためにHLレジスタ107に格納される。
「2404」の行番号には、第1特図保留表示データ取得処理(図55(a))の行番号「2104」及び第2特図保留表示データ取得処理(図55(c))の行番号「2304」と同様に、「CALLS LDBGET」という命令が設定されている。既に説明したとおり、「CALLS LDBGET」という命令は、保留表示データ取得実行処理というサブルーチンを呼び出すための命令である。行番号「2404」にて保留表示データ取得実行処理が実行されることにより、普図保留数カウンタ127の値に対応する保留表示データHRnがWレジスタ104aに設定される。このように、第1特図保留表示データ取得処理(図55(a))及び第2特図保留表示データ取得処理(図55(c))と共通のサブルーチンのプログラム及び保留表示データテーブル64sを利用して普図保留数カウンタ127の値に対応する保留表示データHRnを取得する構成であることにより、保留表示データHRnを取得するためのプログラム及びデータのデータ容量を低減することができる。取得用処理のサブルーチンが終了した場合には、「2405」の行番号に進む。
「2405」の行番号には「RET」という命令が設定されている。既に説明したとおり、普図表示データ取得処理は表示制御処理(図54)のステップS1505にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、表示制御処理(図54)のステップS1506に進むことになる。
<管理用処理>
次に、主側CPU63にて実行される管理用処理について図56(a)のフローチャートを参照しながら説明する。管理用処理はタイマ割込み処理(図26)のステップS518にて実行される。なお、管理用処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
管理用処理では、まずタイマ割込み処理(図26)の発生を禁止するために割込み禁止の設定を行う(ステップS1601)。これにより、非特定制御に対応する処理である後述する管理実行処理(図57)の途中の状況において、特定制御に対応する処理であるタイマ割込み処理(図26)が割り込んで起動されてしまわないようにすることが可能となる。
その後、「PUSH PSW」として、プッシュ命令により、主側CPU63のフラグレジスタの情報を特定制御用のスタックエリア123に退避させる(ステップS1602)。既に説明したとおり、フラグレジスタにはゼロフラグZF、キャリフラグ、P/Vフラグ、サインフラグ及びハーフキャリフラグなどを含み、演算命令、ローテート命令及び入出力命令などの実行結果によってフラグレジスタの情報は変化することとなる。このようなフラグレジスタの情報を管理実行処理に対応するサブルーチンのプログラムが開始される前に退避させることにより、当該サブルーチンのコールや当該サブルーチンの開始後において変化する前の状態のフラグレジスタの情報を特定制御用のスタックエリア123に退避させておくことが可能となる。
その後、非特定制御用のプログラムに設定されている管理実行処理に対応するサブルーチンのプログラムを読み出すことにより、当該管理実行処理を開始する(ステップS1603)。この場合、当該管理実行処理の実行後における管理用処理の戻り番地を特定するための情報がプッシュ命令により特定制御用のスタックエリア123に書き込まれる。そして、管理実行処理が終了した場合にはポップ命令によりその戻り番地を特定するための情報が読み出され、当該戻り番地が示す管理用処理のプログラムに復帰する。
管理実行処理の実行後において管理用処理のプログラムに復帰した場合、「POP PSW」として、ポップ命令により、ステップS1602にて特定制御用のスタックエリア123に退避させたフラグレジスタの情報を主側CPU63のフラグレジスタに復帰させる(ステップS1604)。これにより、主側CPU63のフラグレジスタの情報が、ステップS1602が実行された時点の情報に復帰することとなる。つまり、主側CPU63のフラグレジスタの情報が特定制御を実行するための情報に復帰することとなる。
その後、「LD IY,0000H」として、LD命令により、IYレジスタ109に特定制御用のワークエリア121のアドレスを指定する際に利用される特定制御用基準アドレスとして「0000H」をセットする(ステップS1605)。これにより、特定制御用の処理において第1LDY命令を実行する場合に当該特定制御用基準アドレスを利用可能となる。
その後、タイマ割込み処理(図26)の発生を禁止している状態から許可する状態へ切り換えるために割込み許可の設定を行って(ステップS1606)、本管理用処理を終了する。割込み許可の設定を行うことにより、タイマ割込み処理の新たな実行が可能となる。
次に、主側CPU63にて実行される管理実行処理(図57)の説明に先立ち、非特定制御用のワークエリア122における各種バッファ163a〜163eの設定態様について説明する。図56(b)は非特定制御用のワークエリア122における各種バッファ163a〜163eの設定態様を説明するための説明図である。
図56(b)に示すように、非特定制御用のワークエリア122において、「0340H」〜「0341H」のアドレスに対応する記憶エリアには非特定制御用の処理の開始時にWAレジスタ104の情報を退避させるためのWAバッファ163aが設けられており、「0342H」〜「0343H」のアドレスに対応する記憶エリアには非特定制御用の処理の開始時にBCレジスタ105の情報を退避させるためのBCバッファ163bが設けられており、「0344H」〜「0345H」のアドレスに対応する記憶エリアには非特定制御用の処理の開始時にDEレジスタ106の情報を退避させるためのDEバッファ163cが設けられており、「0346H」〜「0347H」のアドレスに対応する記憶エリアには非特定制御用の処理の開始時にHLレジスタ107の情報を退避させるためのHLバッファ163dが設けられており、「0348H」〜「0349H」のアドレスに対応する記憶エリアには非特定制御用の処理の開始時にIXレジスタ108の情報を退避させるためのIXバッファ163eが設けられている。これらのバッファ163a〜163eは2バイトからなる。非特定制御用の処理が開始される場合、これらのバッファには、対応するレジスタの情報が退避される。また、非特定制御用の処理が終了する場合、これらのバッファに退避されている情報が対応するバッファに戻される。
<第2LDY命令>
次に、主側CPU63にて実行される管理実行処理(図57)の説明に先立ち、管理実行処理のプログラムに含まれている第2LDY命令について説明する。
後述する管理実行処理(図57)には、「LDY WA,(40H)」、「LDY BC,(42H)」、「LDY DE,(44H)」及び「LDY HL,(46H)」という第2LDY命令が含まれている。図9に示すように、主側MPU62は第2LDY実行回路164を備えている。第2LDY実行回路164は、第2LDY命令を実行するための専用回路である。主側CPU63は、データを転送する転送命令として、第2LDY命令を実行することができる。
第2LDY命令の命令コードは、「LDY 転送先,(転送元)」という構成を有している。第2LDY命令では、「転送先」としてペアレジスタが設定される。第2LDY命令において「転送先」に設定されるペアレジスタは、WAレジスタ104、BCレジスタ105、DEレジスタ106又はHLレジスタ107である。第2LDY命令では、「(転送元)」として1バイトの数値(例えば、「(40H)」)が設定される。
第2LDY命令では、「(転送元)」に設定されている1バイトの数値情報に対してIYレジスタ109に設定されている2バイトの数値情報を加算して2バイトのアドレスが算出され、主側RAM65において当該アドレスに対応するエリア及び当該アドレスを1加算して得られるアドレスに対応するエリアに格納されている2バイトのデータが「転送先」に設定されているペアレジスタにロードされる。既に説明したとおり、本実施形態においてIYレジスタ109には、特定制御用の処理の開始時に特定制御用基準アドレスとして「0000H」が設定されるとともに、非特定制御用の処理の開始時に非特定制御用基準アドレスとして「0300H」が設定される。
事前にIYレジスタ109に「0300H」が設定されている状態において「LDY WA,40H」が実行されることにより、「LD WA,(0340H)」が実行される場合と同様に、主側RAM65において「0340H」及び「0341H」に対応するエリア、すなわち非特定制御用のワークエリア122におけるWAバッファ163aに格納されている2バイトのデータがWAレジスタ104にロードされる。
第2LDY命令(例えば「LDY WA,(40H)」)の機械語には、「(転送元)」を指定するためのデータとして1バイトのデータ(40H)が設定される。一方、LD命令(例えば「LD WA,(0340H)」)の機械語には、「(転送元)」を指定するためのデータとして2バイトのデータ(0340H)が設定される。第2LDY命令の機械語のデータ容量は、LD命令の機械語のデータ容量よりも小さい。このため、IYレジスタ109に「0300H」が格納されている状態において、非特定制御用のワークエリア122に記憶されている2バイトのデータをWAレジスタ104、BCレジスタ105、DEレジスタ106又はHLレジスタ107にロードする場合には、LD命令に代えて第2LDY命令を使用することにより、主側ROM64におけるプログラムのデータ容量を低減することができる。
次に、主側CPU63にて実行される管理実行処理について図57のフローチャートを参照しながら説明する。管理実行処理は管理用処理(図56(a))のステップS1603にて実行される。なお、管理実行処理は、主側CPU63において非特定制御用のプログラム及び非特定制御用のデータを利用して実行される。
まず「LD SP,04AFH」として、LD命令により、主側CPU63が備えているスタックポインタに非特定制御の開始時における固定アドレスとして非特定制御用のスタックエリア124の最終アドレスである「04AFH」を設定する(ステップS1701)。スタックポインタは、各スタックエリア123,124への情報の書き込み先が設定されるレジスタである。スタックポインタに格納されているアドレス情報は、プッシュ命令によりスタックエリア123,124への情報の書き込みが行われた場合に更新される。
その後、「LD (0340H),WA」として、LD命令により、主側CPU63のWAレジスタ104の情報をWAバッファ163aに退避させる(ステップS1702)。その後、「LD (0342H),BC」として、LD命令により、主側CPU63のBCレジスタ105の情報をBCバッファ163bに退避させる(ステップS1703)。その後、「LD (0344H),DE」として、LD命令により、主側CPU63のDEレジスタ106の情報をDEバッファ163cに退避させる(ステップS1704)。その後、「LD (0346H),HL」として、LD命令により、主側CPU63のHLレジスタ107の情報をHLバッファ163dに退避させる(ステップS1705)。その後、「LD (0348H),IX」として、LD命令により、主側CPU63のIXレジスタ108の情報をIXバッファ163eに退避させる(ステップS1706)。
その後、「LD IY,0300H」として、LD命令により、IYレジスタ109に非特定制御用のワークエリア122のアドレスを指定する際に利用される非特定制御用基準アドレスとして「0300H」をセットする(ステップS1707)。これにより、非特定制御用の処理において第1LDY命令及び第2LDY命令を実行する場合に当該非特定制御用基準アドレスを利用可能となる。
既に説明したとおり、非特定制御用の処理が終了する場合に、管理用処理(図56(a))のステップS1605にてIYレジスタ109に特定制御用基準アドレス(「0000H」)がセットされる。非特定制御用の処理である管理実行処理(図57)の開始時にIYレジスタ109に非特定制御用基準アドレス(「0300H」)をセットするとともに、当該管理実行処理(図57)の終了時にIYレジスタ109の情報を特定制御用基準アドレス(「0000H」)に戻すことにより、特定制御用の処理の実行中には第1LDY命令及び第2LDY命令により特定制御用基準アドレスを利用可能としながら、非特定制御用の処理である管理実行処理の実行中には第1LDY命令及び第2LDY命令により非特定制御用基準アドレスを利用可能とすることができる。1つのレジスタに格納するデータを切り換えることにより特定制御用基準アドレス及び非特定制御用基準アドレスを利用可能とする構成であるため、特定制御用基準アドレスが格納されるレジスタとは別に非特定制御用基準アドレスが設定されるレジスタを確保する構成と比較して、これらの基準アドレスを利用可能とするために確保されるレジスタの数を低減することができる。
既に説明したとおり、主側CPU63には、各種の汎用レジスタ、補助レジスタ及びインデックスレジスタが存在している。ステップS1702〜ステップS1706では、これら各種の汎用レジスタ、補助レジスタ及びインデックスレジスタのうち一部のレジスタであるWAレジスタ104、BCレジスタ105、DEレジスタ106、HLレジスタ107及びIXレジスタ108の各情報を、非特定制御用のワークエリア122における対応するバッファに退避させている。
これらWAレジスタ104、BCレジスタ105、DEレジスタ106、HLレジスタ107及びIXレジスタ108は非特定制御に対応する処理であるチェック処理(ステップS1708)にて利用されるレジスタである。そのようなレジスタに設定されている情報をチェック処理(ステップS1708)の実行に先立ち非特定制御用のワークエリア122に退避させることにより、特定制御に際して利用されていたこれらレジスタの情報を非特定制御が開始される前に退避させることが可能となる。よって、非特定制御に際してこれらレジスタが上書きされたとしても、非特定制御を終了する場合には非特定制御用のワークエリア122に退避させた情報をこれらレジスタに復帰させることで、これらレジスタの状態を非特定制御が実行される前における特定制御に対応する状態に復帰させることが可能となる。
また、各種の汎用レジスタ、補助レジスタ及びインデックスレジスタの全ての情報を非特定制御用のワークエリア122に退避させるのではなく、非特定制御に対応する処理であるチェック処理にて利用対象となるWAレジスタ104、BCレジスタ105、DEレジスタ106、HLレジスタ107及びIXレジスタ108の情報を選択的に非特定制御用のワークエリア122に退避させることにより、非特定制御用のワークエリア122においてレジスタの情報を退避させるために確保する容量を抑えることが可能となる。よって、チェック処理に際して利用可能となる非特定制御用のワークエリア122の容量を大きく確保しながら、上記のようなレジスタの情報の退避を行うことが可能となる。なお、当然のことながら主側CPU63における各種の汎用レジスタ、補助レジスタ及びインデックスレジスタのうちWAレジスタ104、BCレジスタ105、DEレジスタ106、HLレジスタ107、IXレジスタ108及びIYレジスタ109以外のレジスタについては、非特定制御に対応する処理が開始される前に設定された情報が当該非特定制御に対応する処理が終了して特定制御に対応する処理が再開されるまで記憶保持される。
また、レジスタの情報を非特定制御用のスタックエリア124に退避させるのではなく非特定制御用のワークエリア122に退避させることにより、それだけ非特定制御用のスタックエリア124の容量を小さく抑えることが可能となる。また、非特定制御用のスタックエリア124を利用する場合、既に説明したとおり情報の書き込み順序が後の情報から先に読み出されることとなるため、仮に何らかのノイズなどの原因で情報の読み出し順序がずれてしまうとそれ以降の読み出し順序の情報が全て異なるレジスタに復帰されることとなってしまう。このような事象の発生確率は非特定制御用のスタックエリア124に退避させる情報量が多くなるほど高くなってしまう。これに対して、レジスタの情報を非特定制御用のワークエリア122に退避させることにより退避対象となる情報が多い場合であっても上記のような事象が発生しないようにすることが可能となる。
その後、チェック処理を実行する(ステップS1708)。チェック処理の実行に際しては、非特定制御用のプログラムに設定されているチェック処理に対応するサブルーチンのプログラムが実行されることとなるが、当該サブルーチンのプログラムの実行に際してはチェック処理の実行後における管理実行処理の戻り番地を特定するための情報がプッシュ命令により非特定制御用のスタックエリア124に書き込まれる。そして、チェック処理が終了した場合にはポップ命令によりその戻り番地を特定するための情報が読み出され、当該戻り番地が示す管理実行処理のプログラムに復帰する。チェック処理の詳細については後に説明する。
チェック処理を実行した後は、「LD SP,Y(r+α)」として、ロード命令により、主側CPU63のスタックポインタに特定制御への復帰時における固定アドレスとしてY(r+α)を設定する(ステップS1709)。Y(r+α)のアドレスは、特定制御用のスタックエリア123における「0403H」と「044FH」との間のアドレスとして設定されている。
管理用処理(図56(a))のステップS1603にて管理実行処理のサブルーチンが実行される直前において特定制御用のスタックエリア123に記憶されている情報量は常に一定であり、それに伴って当該タイミングにおける主側CPU63のスタックポインタの情報(すなわちスタックポインタの値)は一定である。この場合に特定制御用のスタックエリア123に記憶されている情報としては、例えば管理実行処理(図57)が終了した後における管理用処理(図56(a))の戻り番地の情報、及び管理用処理(図56(a))が終了した後におけるタイマ割込み処理(図26)の戻り番地の情報が挙げられる。スタックポインタの上記一定の情報がY(r+α)となっている。したがって、非特定制御に対応する処理であるチェック処理が終了して特定制御に対応する処理に復帰する場合には、その一定の情報であるY(r+α)を主側CPU63のスタックポインタに設定することで、当該スタックポインタの情報を非特定制御に対応する処理が開始される直前の情報に復帰させることが可能となる。このように固定の情報をスタックポインタに設定することによって当該スタックポインタの情報を非特定制御に対応する処理が開始される直前の情報に復帰させる構成とすることで、非特定制御に対応する処理を開始する前に特定制御に対応する主側CPU63のスタックポインタの情報を主側RAM65に退避させる必要がなくなる。よって、処理負荷を軽減させることが可能となるとともに当該退避させるための領域を主側RAM65において確保する必要がなくなる。
その後、「LDY WA,(40H)」として、第2LDY命令により、非特定制御用のワークエリア122のWAバッファ163aに退避された情報を主側CPU63のWAレジスタ104に上書きする(ステップS1710)。「LDY」は第2LDY実行回路164による第2LDY命令であり、「WA」はWAレジスタ104であり、「(40H)」は非特定制御用のワークエリア122におけるWAバッファ163aの下位エリア(下位1バイトのエリア)のアドレス(「0340H」)における下位1バイトである。上述したとおり、ステップS1707にてIYレジスタ109に非特定制御用基準アドレス(「0300H」)が格納されている。このため、「LDY WA,(40H)」を実行することにより、「40H」に対して当該非特定制御用基準アドレスを加算して得られる「0340H」のアドレスにより特定されるWAバッファ163aの情報をWAレジスタ104に復帰させることができる。LD命令を利用する場合には当該LD命令の命令コードに含まれるWAバッファ163aのアドレスデータを2バイトのアドレスデータ(「0340H」)の全体とする必要がある一方、第2LDY命令を利用する場合には当該第2LDY命令の命令コードに含まれるアドレスデータを2バイトのアドレスデータにおける下位1バイト(「40H」)のみとすることができる。第2LDY命令を利用してWAバッファ163aに退避された情報をWAバッファ163aに復帰させる構成とすることにより、LD命令を利用して当該情報をWAバッファ163aに復帰させる構成と比較して、プログラムのデータ容量を低減することができる。
その後、「LDY BC,(42H)」として、第2LDY命令により、非特定制御用のワークエリア122のBCバッファ163bに退避された情報を主側CPU63のBCレジスタ105に上書きする(ステップS1711)。「LDY」は第2LDY実行回路164による第2LDY命令であり、「BC」はBCレジスタ105であり、「(42H)」は非特定制御用のワークエリア122におけるBCバッファ163bの下位エリア(下位1バイトのエリア)のアドレス(「0342H」)における下位1バイトである。上述したとおり、ステップS1707にてIYレジスタ109に非特定制御用基準アドレス(「0300H」)が格納されている。このため、「LDY BC,(42H)」を実行することにより、「42H」に対して当該非特定制御用基準アドレスを加算して得られる「0342H」のアドレスにより特定されるBCバッファ163bの情報をBCレジスタ105に復帰させることができる。BCレジスタ105のアドレスにおける下位1バイトのみを設定することによりBCレジスタ105のアドレス指定を行うことが可能な第2LDY命令を利用することにより、当該アドレスの全体(2バイト)を設定しなければならないLD命令を利用する場合と比較して、BCバッファ163bに退避された情報をBCレジスタ105に上書きするための命令のデータ容量を低減することができる。
その後、「LDY DE,(44H)」として、第2LDY命令により、非特定制御用のワークエリア122のDEバッファ163cに退避された情報を主側CPU63のDEレジスタ106に上書きする(ステップS1712)。「LDY」は第2LDY実行回路164による第2LDY命令であり、「DE」はDEレジスタ106であり、「(44H)」は非特定制御用のワークエリア122におけるDEバッファ163cの下位エリア(下位1バイトのエリア)のアドレス(「0344H」)における下位1バイトである。上述したとおり、ステップS1707にてIYレジスタ109に非特定制御用基準アドレス(「0300H」)が格納されている。このため、「LDY DE,(44H)」を実行することにより、「44H」に対して当該非特定制御用基準アドレスを加算して得られる「0344H」のアドレスにより特定されるDEバッファ163cの情報をDEレジスタ106に復帰させることができる。DEレジスタ106のアドレスにおける下位1バイトのみを設定することによりDEレジスタ106のアドレス指定を行うことが可能な第2LDY命令を利用することにより、当該アドレスの全体(2バイト)を設定しなければならないLD命令を利用する場合と比較して、DEバッファ163cに退避された情報をDEレジスタ106に上書きするための命令のデータ容量を低減することができる。
その後、「LDY HL,(46H)」として、第2LDY命令により、非特定制御用のワークエリア122のHLバッファ163dに退避された情報を主側CPU63のHLレジスタ107に上書きする(ステップS1713)。「LDY」は第2LDY実行回路164による第2LDY命令であり、「HL」はHLレジスタ107であり、「(46H)」は非特定制御用のワークエリア122におけるHLバッファ163dの下位エリア(下位1バイトのエリア)のアドレス(「0346H」)における下位1バイトである。上述したとおり、ステップS1707にてIYレジスタ109に非特定制御用基準アドレス(「0300H」)が格納されている。このため、「LDY HL,(46H)」を実行することにより、「46H」に対して当該非特定制御用基準アドレスを加算して得られる「0346H」のアドレスにより特定されるHLバッファ163dの情報をHLレジスタ107に復帰させることができる。HLレジスタ107のアドレスにおける下位1バイトのみを設定することによりHLレジスタ107のアドレス指定を行うことが可能な第2LDY命令を利用することにより、当該アドレスの全体(2バイト)を設定しなければならないLD命令を利用する場合と比較して、HLバッファ163dに退避された情報をHLレジスタ107に上書きするための命令のデータ容量を低減することができる。
このように、主側CPU63のWAレジスタ104、BCレジスタ105、DEレジスタ106及びHLレジスタ107の各情報を、非特定制御に対応する処理が開始される直前における特定制御に対応する情報に復帰させるための処理(ステップS1710〜ステップS1713)において、第2LDY命令を利用する構成であることにより、当該処理においてLD命令を利用する構成と比較して、当該処理を実行するためのプログラムのデータ容量を低減することができる。
ステップS1713の処理を実行した後は、「LD IX,(0348H)」として、LD命令により、非特定制御用のワークエリア122のIXバッファ163eに退避された情報を主側CPU63のIXレジスタ108に上書きして(ステップS1714)、本管理実行処理を終了する。ステップS1710〜ステップS1714の処理が実行されることにより、主側CPU63のWAレジスタ104、BCレジスタ105、DEレジスタ106、HLレジスタ107及びIXレジスタ108の各情報を、非特定制御に対応する処理が開始される直前における特定制御に対応する情報に復帰させることが可能となる。
ここで、非特定制御に対応する処理が実行された場合に主側CPU63のフラグレジスタ及び各種レジスタに記憶された情報は、特定制御に対応する処理が再開される場合に主側RAM65に退避されない。これにより、特定制御用のワークエリア121及び特定制御用のスタックエリア123において上記情報を退避させるための記憶エリアを確保する必要が生じない。
また、非特定制御に対応する処理が実行された場合に主側CPU63のフラグレジスタ及び各種レジスタに記憶された情報は、特定制御に対応する処理への復帰後において非特定制御に対応する処理が再度開始された場合に利用されない情報である。つまり、特定制御に対応する処理を間に挟んで実行される非特定制御に対応する処理の複数回の処理回において必要な情報は非特定制御用のワークエリア122又は非特定制御用のスタックエリア124に記憶されており、主側CPU63のフラグレジスタ及び各種レジスタには記憶されていない。したがって、非特定制御に対応する処理が実行された場合に主側CPU63のフラグレジスタ及び各種レジスタに記憶された情報が主側RAM65に退避されないとしても、非特定制御に対応する処理を実行する上で問題が生じない。
次に、ステップS1708にてサブルーチンのプログラムが呼び出されることにより実行されるチェック処理について説明する。当該チェック処理では遊技履歴の情報を収集するための処理、遊技履歴の管理結果を導出するための処理及びその管理結果を報知するための処理を実行する。つまり、遊技履歴の情報を収集するための処理、遊技履歴の管理結果を導出するための処理及びその管理結果を報知するための処理は、非特定制御に対応する処理として実行される。
チェック処理の説明に先立ち、遊技履歴を管理するために使用される非特定制御用のワークエリア122の各種カウンタ171a〜171g,172a〜172g,173a〜173gの内容について説明する。図58は非特定制御用のワークエリア122の構成を説明するための説明図である。
図58に示すように、非特定制御用のワークエリア122において、「0303H」〜「0304H」のアドレスには通常用の第1一般入賞カウンタ171aが設けられており、「0305H」〜「0306H」のアドレスには通常用の第2一般入賞カウンタ171bが設けられており、「0307H」〜「0308H」のアドレスには通常用の第3一般入賞カウンタ171cが設けられており、「0309H」〜「030AH」のアドレスには通常用の特電入賞カウンタ171dが設けられており、「030BH」〜「030CH」のアドレスには通常用の第1作動カウンタ171eが設けられており、「030DH」〜「030EH」のアドレスには通常用の第2作動カウンタ171fが設けられており、「030FH」〜「0310H」のアドレスには通常用のアウトカウンタ171gが設けられている。
後述する通常の入球管理処理(図60)においてHLレジスタ107には、対象カウンタの下位エリア(下位1バイトのエリア)のアドレスが設定される。非特定制御用のワークエリア122は、通常用の第1一般入賞カウンタ171aの下位エリアに対応する「0303H」のアドレスをHLレジスタ107に設定した後、当該HLレジスタ107の値を2加算する処理を繰り返し実行することにより、通常の入球管理処理(図60)において通常用の第1一般入賞カウンタ171a→通常用の第2一般入賞カウンタ171b→通常用の第3一般入賞カウンタ171c→通常用の特電入賞カウンタ171d→通常用の第1作動カウンタ171e→通常用の第2作動カウンタ171f→通常用のアウトカウンタ171gの順番で、対象カウンタを更新することが可能なデータ構成となっている。
図58に示すように、非特定制御用のワークエリア122において、「0311H」〜「0312H」のアドレスには開閉実行モード用の第1一般入賞カウンタ172aが設けられており、「0313H」〜「0314H」のアドレスには開閉実行モード用の第2一般入賞カウンタ172bが設けられており、「0315H」〜「0316H」のアドレスには開閉実行モード用の第3一般入賞カウンタ172cが設けられており、「0317H」〜「0318H」のアドレスには開閉実行モード用の特電入賞カウンタ172dが設けられており、「0319H」〜「031AH」のアドレスには開閉実行モード用の第1作動カウンタ172eが設けられており、「031BH」〜「031CH」のアドレスには開閉実行モード用の第2作動カウンタ172fが設けられており、「031DH」〜「031EH」のアドレスには開閉実行モード用のアウトカウンタ172gが設けられている。
後述する開閉実行モード中の入球管理処理(チェック処理(図59)のステップS1805)においてHLレジスタ107には、対象カウンタの下位エリア(下位1バイトのエリア)のアドレスが設定される。非特定制御用のワークエリア122は、開閉実行モード用の第1一般入賞カウンタ172aの下位エリアに対応する「0311H」のアドレスをHLレジスタ107に設定した後、当該HLレジスタ107の値を2加算する処理を繰り返し実行することにより、開閉実行モード中の入球管理処理において開閉実行モード用の第1一般入賞カウンタ172a→開閉実行モード用の第2一般入賞カウンタ172b→開閉実行モード用の第3一般入賞カウンタ172c→開閉実行モード用の特電入賞カウンタ172d→開閉実行モード用の第1作動カウンタ172e→開閉実行モード用の第2作動カウンタ172f→開閉実行モード用のアウトカウンタ172gの順番で、対象カウンタを更新することが可能なデータ構成となっている。
図58に示すように、非特定制御用のワークエリア122において、「031FH」〜「0320H」のアドレスには高頻度サポートモード用の第1一般入賞カウンタ173aが設けられており、「0321H」〜「0322H」のアドレスには高頻度サポートモード用の第2一般入賞カウンタ173bが設けられており、「0323H」〜「0324H」のアドレスには高頻度サポートモード用の第3一般入賞カウンタ173cが設けられており、「0325H」〜「0326H」のアドレスには高頻度サポートモード用の特電入賞カウンタ173dが設けられており、「0327H」〜「0328H」のアドレスには高頻度サポートモード用の第1作動カウンタ173eが設けられており、「0329H」〜「032AH」のアドレスには高頻度サポートモード用の第2作動カウンタ173fが設けられており、「032BH」〜「032CH」のアドレスには高頻度サポートモード用のアウトカウンタ173gが設けられている。
後述する高頻度サポートモード中の入球管理処理(チェック処理(図59)のステップS1806)においてHLレジスタ107には、対象カウンタの下位エリア(下位1バイトのエリア)のアドレスが設定される。非特定制御用のワークエリア122は、高頻度サポートモード用の第1一般入賞カウンタ173aの下位エリアに対応する「031FH」のアドレスをHLレジスタ107に設定した後、当該HLレジスタ107の値を2加算する処理を繰り返し実行することにより、高頻度サポートモード中の入球管理処理において高頻度サポートモード用の第1一般入賞カウンタ173a→高頻度サポートモード用の第2一般入賞カウンタ173b→高頻度サポートモード用の第3一般入賞カウンタ173c→高頻度サポートモード用の特電入賞カウンタ173d→高頻度サポートモード用の第1作動カウンタ173e→高頻度サポートモード用の第2作動カウンタ173f→高頻度サポートモード用のアウトカウンタ173gの順番で、対象カウンタを更新することが可能なデータ構成となっている。
一般入賞カウンタ171a〜171c,172a〜172c,173a〜173cは所定の計測開始契機からの一般入賞口31への遊技球の入球個数を計測するためのカウンタである。特電入賞カウンタ171d,172d,173dは所定の計測開始契機からの特電入賞装置32への遊技球の入球個数を計測するためのカウンタである。第1作動カウンタ171e,172e,173eは所定の計測開始契機からの第1作動口33への遊技球の入球個数を計測するためのカウンタである。第2作動カウンタ171f,172f,173fは所定の計測開始契機からの第2作動口34への遊技球の入球個数を計測するためのカウンタである。アウトカウンタ171g,172g,173gは所定の計測開始契機からのアウト口24aへの遊技球の入球個数を計測するためのカウンタである。
通常用の各カウンタ171a〜171gは、前扉枠14が閉鎖状態となっている状況であって開閉実行モード及び高頻度サポートモードのいずれでもない状況において対象となる入球部24a,31〜34に入球した遊技球の個数を計測するために利用される。開閉実行モード用の各カウンタ172a〜172gは、前扉枠14が閉鎖状態となっている状況であって開閉実行モードである状況において対象となる入球部24a,31〜34に入球した遊技球の個数を計測するために利用される。高頻度サポートモード用の各カウンタ173a〜173gは、前扉枠14が閉鎖状態となっている状況であって高頻度サポートモードである状況において対象となる入球部24a,31〜34に入球した遊技球の個数を計測するために利用される。
なお、前扉枠14が開放状態となっている状況が計測対象外となっているのは、前扉枠14を開放した状態で入球部24a,31〜34に手入れで遊技球が入球された場合の入球個数を計測対象から除外するためである。但し、これに限定されることはなく前扉枠14が開放状態となっている状況も前扉枠14が閉鎖状態となっている状況と同様に計測対象とする構成としてもよい。
図58に示すように、非特定制御用のワークエリア122には、演算結果記憶エリア174が設けられている。演算結果記憶エリア174は、通常用の各カウンタ171a〜171g、開閉実行モード用の各カウンタ172a〜172g及び高頻度サポートモード用の各カウンタ173a〜173gを利用して算出した遊技履歴の管理結果の情報を記憶するためのエリアである。演算結果記憶エリア174に記憶された遊技履歴の管理結果の情報は、遊技履歴の管理結果の情報が新たに算出されることで当該新たに算出された情報が上書きされるまで記憶保持される。
図59はステップS1708にてサブルーチンのプログラムが呼び出されることにより実行されるチェック処理を示すフローチャートである。なお、チェック処理におけるステップS1801〜ステップS1808の処理はサブルーチンの処理も含めて、主側CPU63において非特定制御用のプログラム及び非特定制御用のデータを利用して実行される。また、サブルーチンの処理を実行する場合には当該サブルーチンの処理の実行後における戻り番地の情報を非特定制御用のスタックエリア124において主側CPU63の現状のスタックポインタの値に対応する記憶エリアに書き込むとともに、当該スタックポインタの値を次の順番の記憶対象となる記憶エリアのアドレスの情報に更新する。また、サブルーチンの処理が完了した場合には主側CPU63の現状のスタックポインタの値に対して手前の順番の値に対応する記憶エリアから戻り番地の情報を読み出してその戻り番地の情報に対応するプログラムに復帰するとともに、当該スタックポインタの値をその戻り番地の情報の読み出し元となった記憶エリアのアドレスの情報に更新する。
チェック処理では、前扉枠14が開放状態である場合には(ステップS1801:YES)、通常の入球管理処理(ステップS1804)、開閉実行モード中の入球管理処理(ステップS1805)及び高頻度サポートモード中の入球管理処理(ステップS1806)のいずれも実行することなく、後述する結果演算処理(ステップS1807)及び表示用処理(ステップS1808)を実行する。前扉枠14に設けられた窓パネル52の裏面と遊技盤24の前面によって前後に区画された空間によって遊技領域PAが形成されているため、前扉枠14が開放状態となった場合には遊技領域PAが前方に向けて開放された状態となりその状況で遊技領域PAに向けて遊技球が発射されたとしてもその遊技球は遊技領域PAを正常に流下することはできない。また、前扉枠14が開放状態である状況で入球部24a,31〜34への遊技球の入球が発生する場合というのは、メンテナンスや不具合の解消のために遊技ホールの管理者により前扉枠14が開放状態とされて手入れなどにより遊技球の入球が発生する場合である。このような遊技球の入球は正規の遊技の実行状況における遊技球の入球ではないため、そのような遊技球の入球を管理対象とする必要がない。したがって、チェック処理では上記のとおり前扉枠14が開放状態である場合にはステップS1804〜ステップS1806のいずれの処理も実行しない。
前扉枠14が閉鎖状態であって開閉実行モード及び高頻度サポートモードのいずれでもない場合(ステップS1801〜ステップS1803:NO)、通常の入球管理処理を実行する(ステップS1804)。また、前扉枠14が閉鎖状態であって開閉実行モードである場合(ステップS1801:NO、ステップS1802:YES)、開閉実行モード中の入球管理処理を実行する(ステップS1805)。また、前扉枠14が閉鎖状態であって高頻度サポートモードである場合(ステップS1801:NO、ステップS1803:YES)、高頻度サポートモード中の入球管理処理を実行する(ステップS1806)。
図60は、ステップS1804における通常の入球管理処理を示すフローチャートである。
通常の入球管理処理では、まず「LDY HL,03H」という命令を実行する(ステップS1901)。「LDY」は第1LDY実行回路156による第1LDY命令であり、「HL」は「転送先」としてHLレジスタ107を設定する内容であり、「03H」は通常用の第1一般入賞カウンタ171aの下位エリアが設定されているアドレスである「0303H」の下位1バイトである。既に説明したとおり、IYレジスタ109には非特定制御用基準アドレスとして「0300H」が格納されている。「LDY HL,03H」が実行されることにより、当該「03H」に対してIYレジスタ109に格納されている非特定制御用基準アドレスを加算することにより得られる「0303H」が「転送先」のHLレジスタ107にロードされる。これにより、通常用の第1一般入賞カウンタ171aにおける下位エリアのアドレスをHLレジスタ107にセットすることができる。なお、チェック処理(図59)のステップS1805における開閉実行モード中の入球管理処理では「LDY HL,11H」を実行することにより開閉実行モード用の第1一般入賞カウンタ172aの下位エリアに対応するアドレスである「0311H」をHLレジスタ107にセットするとともに、ステップS1806における高頻度サポートモード中の入球管理処理では「LDY HL,1FH」を実行することにより高頻度サポートモード用の第1一般入賞カウンタ173aの下位エリアに対応するアドレスである「031FH」をHLレジスタ107にセットする。
既に説明したとおり、LD命令を利用する場合には当該LD命令の命令コードに含まれるアドレスデータを2バイトのアドレスデータの全体とする必要がある一方、第1LDY命令を利用する場合には当該第1LDY命令の命令コードに含まれるアドレスデータを2バイトのアドレスデータにおける下位1バイトのみとすることができる。第1LDY命令を利用してHLレジスタ107に第1一般入賞カウンタ171a〜173aの下位エリアに対応するアドレスをセットする構成とすることにより、LD命令を利用してHLレジスタ107に当該アドレスをセットする構成と比較して、プログラムのデータ容量を低減することができる。
既に説明したとおり、通常の入球管理処理においてHLレジスタ107には、対象カウンタの下位エリアのアドレスが設定される。ステップS1901にてHLレジスタ107に通常用の第1一般入賞カウンタ171aの下位エリアに対応するアドレスをセットすることにより、対象カウンタとして通常用の第1一般入賞カウンタ171aが選択されている状態とすることができる。対象カウンタは、後述するステップS1905においてHLレジスタ107の値に「2」が加算されることにより更新される。
ステップS1901の処理を実行した後は、対象検知センサの情報として、通常用の第1一般入賞カウンタ171aに対応する第1入賞口検知センサ42aの情報を設定する(ステップS1902)。対象検知センサの情報は、後述するステップS1907において更新される。
その後、対象検知センサから受信している検知信号のHI状態からLOW状態への立ち下がりを検出したか否かを判定し(ステップS1903)、当該立ち下がりが検出された場合(ステップS1903:YES)には、対象カウンタの値を1加算する(ステップS1904)。既に説明したとおり、対象カウンタはHLレジスタ107に格納されているアドレスデータに基づいて把握される。
ステップS1903にて否定判定を行った場合、又はステップS1904の処理を行った場合には、HLレジスタ107の値を2加算することにより、対象カウンタを更新する(ステップS1905)。ステップS1905では、通常用の第1一般入賞カウンタ171a→通常用の第2一般入賞カウンタ171b→通常用の第3一般入賞カウンタ171c→通常用の特電入賞カウンタ171d→通常用の第1作動カウンタ171e→通常用の第2作動カウンタ171f→通常用のアウトカウンタ171gの順番で、対象カウンタが更新される。なお、開閉実行モード中の入球管理処理(ステップS1805)では、開閉実行モード用の第1一般入賞カウンタ172a→開閉実行モード用の第2一般入賞カウンタ172b→開閉実行モード用の第3一般入賞カウンタ172c→開閉実行モード用の特電入賞カウンタ172d→開閉実行モード用の第1作動カウンタ172e→開閉実行モード用の第2作動カウンタ172f→開閉実行モード用のアウトカウンタ172gの順番で、対象カウンタが更新されるとともに、高頻度サポートモード中の入球管理処理(ステップS1806)では、高頻度サポートモード用の第1一般入賞カウンタ173a→高頻度サポートモード用の第2一般入賞カウンタ173b→高頻度サポートモード用の第3一般入賞カウンタ173c→高頻度サポートモード用の特電入賞カウンタ173d→高頻度サポートモード用の第1作動カウンタ173e→高頻度サポートモード用の第2作動カウンタ173f→高頻度サポートモード用のアウトカウンタ173gの順番で、対象カウンタが更新される。
その後、HLレジスタ107に通常の入球管理処理の終了アドレスである「0311H」が格納されているか否かを判定する(ステップS1906)。ステップS1906にて否定判定を行った場合には、対象検知センサをステップS1905にて更新された後の対象カウンタに対応する検知センサに更新する。ステップS1907では、第1入賞口検知センサ42a→第2入賞口検知センサ43a→第3入賞口検知センサ44a→特電検知センサ45a→第1作動口検知センサ46a→第2作動口検知センサ47a→アウト口検知センサ48aの順番で、対象検知センサが更新される。
その後、ステップS1903に戻り、ステップS1905及びステップS1907にて更新された対象カウンタ及び対象検知センサの組合せについて、ステップS1903〜ステップS1907の処理を実行する。ステップS1903〜ステップS1907の処理は、ステップS1906にて肯定判定を行われるまで繰り返し実行される。これにより、通常用の各カウンタ171a〜171gの全てを対象カウンタとしてステップS1903〜ステップS1907の処理が実行されるようにすることができる。ステップS1907にて肯定判定を行った場合には、本通常の入球管理処理を終了する。
このように、通常の入球管理処理では、検知センサ42a〜48aにて1個の遊技球が検知された場合に対応する通常用の各カウンタ171a〜171gの値が1加算される。これにより、開閉実行モード及び高頻度サポートモードのいずれでもない状況における入球部24a,31〜34への遊技球の入球個数を主側CPU63にて把握可能とすることができる。また、開閉実行モード中の入球管理処理では、検知センサ42a〜49aにて1個の遊技球が検知された場合に対応する開閉実行モード用の各カウンタ172a〜172gの値が1加算される。これにより、開閉実行モードである状況における入球部24a,31〜34への遊技球の入球個数を主側CPU63にて把握可能とすることができる。さらにまた、高頻度サポートモード中の入球管理処理では、検知センサ42a〜49aにて1個の遊技球が検知された場合に対応する高頻度サポートモード用の各カウンタ173a〜173gの値が1加算される。これにより、高頻度サポートモードである状況における入球部24a,31〜34への遊技球の入球個数を主側CPU63にて把握可能とすることができる。
チェック処理(図59)においてステップS1804〜ステップS1806の処理が実行されることにより、一般入賞口31への遊技球の入球個数が一般入賞カウンタ171a〜171c,172a〜172c,173a〜173cを利用して計測され、特電入賞装置32への遊技球の入球個数が特電入賞カウンタ171d,172d,173dを利用して計測され、第1作動口33への遊技球の入球個数が第1作動カウンタ171e,172e,173eを利用して計測され、第2作動口34への遊技球の入球個数が第2作動カウンタ171f,172f,173fを利用して計測され、アウト口24aへの遊技球の入球個数がアウトカウンタ171g,172g,173gを利用して計測される。これにより、各入球部24a,31〜34への入球履歴を主側CPU63にて把握することが可能となる。また、通常用の各カウンタ171a〜171g、開閉実行モード用の各カウンタ172a〜172g及び高頻度サポートモード用の各カウンタ173a〜173gのそれぞれが区別して設けられていることにより、開閉実行モード及び高頻度サポートモードのいずれでもない状況と、開閉実行モードである状況と、高頻度サポートモードである状況とのそれぞれを区別して各入球部24a,31〜34への入球履歴を主側CPU63にて把握することが可能となる。
チェック処理(図59)の説明に戻り、ステップS1801にて肯定判定をした場合、ステップS1804の処理を実行した場合、ステップS1805の処理を実行した場合、又はステップS1806の処理を実行した場合には、結果演算処理を実行する(ステップS1807)。結果演算処理では、通常用の各カウンタ171a〜171gの値、開閉実行モード用の各カウンタ172a〜172gの値、及び高頻度サポートモード用の各カウンタ173a〜173gの値を全て合計することで合計個数を算出し、その算出した合計個数が演算基準個数である「6000」以上の個数となっているか否かを判定する。そして、当該合計個数が演算基準個数以上となっている場合には、遊技履歴を把握可能とするための各種パラメータの演算を行い、その演算結果を非特定制御用のワークエリア122における演算結果記憶エリア174に格納する。その後、通常用の各カウンタ171a〜171gの値、開閉実行モード用の各カウンタ172a〜172gの値、及び高頻度サポートモード用の各カウンタ173a〜173gの値を「0」クリアする。
ステップS1807にて結果演算処理を行った後は、表示用処理を実行して(ステップS1808)、本チェック処理を終了する。ステップS1808における表示用処理では、演算結果記憶エリア174に格納されている演算結果に基づいて、遊技履歴の管理結果に対応する表示が行われるように、第1〜第3報知用表示装置69a〜69cの表示制御を行う。遊技ホールの管理者は、第1〜第3報知用表示装置69a〜69cの表示を確認することにより、遊技履歴の管理結果を確認することができる。
上記のとおり、非特定制御用の処理が終了する場合に、管理用処理(図56(a))のステップS1605にてIYレジスタ109に特定制御用基準アドレス(「0000H」)がセットされる。非特定制御用の処理である管理実行処理(図57)の開始時にIYレジスタ109に非特定制御用基準アドレス(「0300H」)をセットするとともに、当該管理実行処理(図57)の終了時にIYレジスタ109の情報を特定制御用基準アドレス(「0000H」)に戻すことにより、特定制御用の処理の実行中には第1LDY命令及び第2LDY命令により特定制御用基準アドレスを利用可能としながら、非特定制御用の処理である管理実行処理の実行中には第1LDY命令及び第2LDY命令により非特定制御用基準アドレスを利用可能とすることができる。1つのレジスタに格納するデータを切り換えることにより特定制御用基準アドレス及び非特定制御用基準アドレスを利用可能とする構成であるため、特定制御用基準アドレスが格納されるレジスタとは別に非特定制御用基準アドレスが設定されるレジスタを確保する構成と比較して、これらの基準アドレスを利用可能とするために確保されるレジスタの数を低減することができる。
管理実行処理(図57)のステップS1710〜ステップS1713において、第2LDY命令を利用してWAバッファ163a、BCバッファ163b、DEバッファ163c及びHLバッファ163dに退避された情報を対応するWAレジスタ104、BCレジスタ105、DEレジスタ106及びHLレジスタ107に復帰させる構成であることにより、LD命令を利用してこれらのバッファ163a〜163eに退避された情報をこれらのレジスタ104〜107に復帰させる構成と比較して、当該情報を復帰させるためのプログラムのデータ容量を低減することができる。
通常の入球管理処理(図60)のステップS1901において、第1LDY命令(「LDY HL,03H」)を利用して通常用の第1一般入賞カウンタ171aにおける下位エリアのアドレス(「0303H」)をHLレジスタ107にセットする構成であることにより、LD命令を利用して当該アドレスをHLレジスタ107にセットする構成と比較して、当該アドレスをHLレジスタ107にセットするためのプログラムのデータ容量を低減することができる。また、チェック処理(図59)のステップS1805における開閉実行モード中の入球管理処理において、第1LDY命令(「LDY HL,11H」)を利用して開閉実行モード用の第1一般入賞カウンタ172aの下位エリアに対応するアドレス(「0311H」)をHLレジスタ107にセットする構成であることにより、LD命令を利用して当該アドレスをHLレジスタ107にセットする構成と比較して、当該アドレスをHLレジスタ107にセットするためのプログラムのデータ容量を低減することができる。さらにまた、チェック処理(図59)のステップS1806における高頻度サポートモード中の入球管理処理において、第1LDY命令(「LDY HL,1FH」)を利用して高頻度サポートモード用の第1一般入賞カウンタ173aの下位エリアに対応するアドレス(「031FH」)をHLレジスタ107にセットする構成であることにより、LD命令を利用して当該アドレスをHLレジスタ107にセットする構成と比較して、当該アドレスをHLレジスタ107にセットするためのプログラムのデータ容量を低減することができる。
次に、主側CPU63と音光側CPU93又は払出側CPU83との通信について説明する。
図8を参照しながら既に説明したとおり、主制御基板61には第1送信回路101、第2送信回路102及び受信回路103が設けられている。第1送信回路101は、主側CPU63から音光側CPU93に対して各種コマンドを送信するための回路である。第1送信回路101には、送信されるコマンドが一時的に記憶される送信待機バッファ175(図61)が設けられており、主側CPU63は当該送信待機バッファ175に送信対象のコマンド(後述する通信用のコマンド)を設定する。第1送信回路101は、音声発光制御基板91に設けられた音光側受信回路96と通信を行うことにより当該送信待機バッファ175に設定されたコマンドを音光側受信回路96に送信する。音光側受信回路96には受信したコマンドが一時的に記憶される受信後待機バッファ178(図61)が設けられており、主側CPU63から受信したコマンドは当該受信後待機バッファ178に記憶されて、音光側CPU93にて利用可能となる。なお、主側CPU63と音光側CPU93との通信の詳細については後述する。
第2送信回路102は、主側CPU63から払出側CPU83に対して各種コマンドを送信するための回路である。第2送信回路102には、送信されるコマンドが一時的に記憶される送信待機バッファ(図示略)が設けられており、主側CPU63は当該送信待機バッファに送信対象のコマンドを設定する。第2送信回路102は、払出制御基板81に設けられた払出側受信回路87と通信を行うことにより当該送信待機バッファに設定されたコマンドを払出側受信回路87に送信する。払出側受信回路87には受信したコマンドが一時的に記憶される受信後待機バッファ(図示略)が設けられており、主側CPU63から受信したコマンドは当該受信後待機バッファに記憶されて、払出側CPU83にて利用可能となる。
受信回路103は、払出側CPU83から送信される各種コマンドを受信するための回路である。払出制御基板81には払出側CPU83から主側CPU63に対して各種コマンドを送信するための払出側送信回路(図示略)が設けられている。払出側送信回路には、送信されるコマンドが一時的に記憶される送信待機バッファ(図示略)が設けられており、払出側CPU83は当該送信待機バッファに送信対象のコマンドを設定する。払出側送信回路は、主制御基板61に設けられた受信回路103と通信を行うことにより当該送信待機バッファに設定されたコマンドを受信回路103に送信する。受信回路103には受信したコマンドが一時的に記憶される受信後待機バッファ(図示略)が設けられており、払出側CPU83から受信したコマンドは当該受信後待機バッファに記憶されて、主側CPU63にて利用可能となる。
<主側CPU63から送信されるコマンドのデータ構成>
次に、主側CPU63から払出側CPU83又は音光側CPU93に送信されるコマンドのデータ構成について、主側CPU63から音光側CPU93に対して送信されるコマンドのデータ構成を例に挙げて説明する。
図61は主側CPU63から音光側CPU93に対してコマンドを送信するための主制御基板61及び音声発光制御基板91の電気的構成を説明するための説明図である。既に説明したとおり、主制御基板61には第1送信回路101が設けられているとともに、音声発光制御基板91には音光側受信回路96が設けられている。図61に示すように、第1送信回路101には、音光側CPU93に対して送信されるコマンド(後述する通信用のコマンド)が設定される送信待機バッファ175が設けられている。送信待機バッファ175は30バイトからなるリングバッファである。主側CPU63から音光側CPU93に対して送信されるコマンドのうち最もデータ量の多いコマンドは通常復帰コマンドであり、送信待機バッファ175に設定される通常復帰コマンド(後述する通信用の通常復帰コマンド)のデータ量は14バイトである。
送信待機バッファ175に送信中のコマンドが残っている状態において新たなコマンドを設定するタイミングとなった場合、当該新たなコマンドは送信待機バッファ175において、送信中のコマンドが設定されているエリアの次以降のエリアに設定されて送信待機状態となる。また、送信待機バッファ175に送信中のコマンド及び送信待機中のコマンドが存在している状態において新たなコマンドを設定するタイミングとなった場合、当該新たなコマンドは送信待機バッファ175において、送信待機中のコマンドが設定されているエリアの次以降のエリアに設定されて送信待機状態となる。第1送信回路101は、送信待機バッファ175に設定されたコマンドを当該送信待機バッファ175に設定された順番で、音光側受信回路96に対して送信する。送信待機バッファ175のデータ容量は、同時期に当該送信待機バッファ175に存在し得る複数のコマンドにおける合計のデータ容量よりも大きく設定されている。このため、各コマンドが送信待機バッファ175に設定されるタイミングにおいて、当該コマンドを設定するための空きエリアは確保されている。
第1送信回路101には、音光側CPU93に送信されるデータが設定される送信バッファ176が設けられている。送信バッファ176は1バイトからなる。送信待機バッファ175に設定されたコマンドは、1バイトずつ送信バッファ176にセットされて音光側CPU93に送信される。具体的には、送信待機バッファ175にコマンドが設定された場合、第1送信回路101は、まず当該コマンドに含まれている複数バイトのデータのうち先頭に存在している1バイトのデータを送信バッファ176にセットし、当該1バイトのデータを音光側CPU93に送信する。その後、第1送信回路101は、当該コマンドに含まれている複数バイトのデータのうち先頭の1バイトのデータの次に設定されている1バイトのデータを送信バッファ176にセットし、当該1バイトのデータを音光側CPU93に送信する。このように、第1送信回路101は、送信待機バッファ175に格納されたコマンドの全体の送信が終了するまで、当該コマンドに含まれている複数バイトのデータのうち送信バッファ176にセットする1バイトのデータを順次更新しながら、送信バッファ176にセットされた1バイトのデータを音光側CPU93に送信する処理を繰り返し実行する。
図61に示すように、音光側受信回路96には、第1送信回路101から受信した1バイトのデータが格納される受信バッファ177と、主側CPU63から受信したコマンドが格納される受信後待機バッファ178とが設けられている。受信後待機バッファ178は、上述した第1送信回路101における送信待機バッファ175と同様に、30バイトからなるリングバッファである。受信後待機バッファ178の記憶容量は、当該受信後待機バッファ178に同時期に存在し得る複数のコマンドにおける合計のデータ量よりも多く設定されている。
音光側RAM95には、主側CPU63から受信したコマンドが音光側CPU93にて利用可能な状態で格納されるコマンド格納バッファ179が設けられている。コマンド格納バッファ179は、30バイトからなるリングバッファである。受信後待機バッファ178に格納されたコマンドはコマンド格納バッファ179に移され、音光側CPU93にて利用されるまでコマンド格納バッファ179にて保存される。コマンド格納バッファ179の記憶容量は、当該コマンド格納バッファ179に同時期に存在し得る複数のコマンドにおける合計のデータ量よりも多く設定されている。
音光側受信回路96は、受信バッファ177に格納された1バイトのデータを受信後待機バッファ178にセットし、受信バッファ177を「0」クリアすることにより次の1バイトのデータを受信可能な状態とする。そして、第1送信回路101に対して受信可能信号を出力する。第1送信回路101は、当該受信可能信号を受信しているとともに送信バッファ176にデータが設定されている状態となった場合、当該送信バッファ176にセットされている1バイトのデータを音光側受信回路96に送信する。
次に、主側CPU63から音光側CPU93に対して送信時のデータ量が3バイト以上のコマンドが送信される場合について説明する。主側CPU63から音光側CPU93に対して送信されるコマンドは、ヘッダHD及びフッタFTを含んでいる。図62(a)はヘッダHDのデータ構成を説明するための説明図であり、図62(b)はフッタFTのデータ構成を説明するための説明図である。
図62(a)に示すように、ヘッダHDは、第0〜第7ビットからなる1バイトのデータである。ヘッダHDの第0〜第7ビットには、コマンドの種類を把握可能とするコマンド識別データが設定されている。音光側CPU93は、当該コマンド識別データに基づいて、受信したコマンドの種類を把握する。
コマンド識別データの最上位ビット(第7ビット)は、ヘッダHDであることを識別可能とするヘッダ識別ビットである。ヘッダ識別ビットには「1」が設定される。コマンドに含まれる1バイトのデータのうち最上位ビットに「1」が設定されているデータはヘッダHDのみである。音光側受信回路96は、受信バッファ177に格納された1バイトのデータにおける最上位ビットに「1」が設定されているか否かを判定することにより、当該1バイトのデータがヘッダHDであるか否かを把握する。音光側受信回路96は、第1送信回路101から複数のコマンドを受信した場合、ヘッダHDの位置に基づいてこれらのコマンドの区切り位置を把握することができる。なお、ヘッダ識別ビットに「0」が設定されているとともに、ヘッダHD以外のデータにおける最上位ビット(第7ビット)に「1」が設定されている構成としてもよい。当該構成において、音光側受信回路96は、受信バッファ177に格納された1バイトのデータにおける最上位ビットに「0」が設定されているか否かを判定することにより、当該1バイトのデータがヘッダHDであるか否かを把握することができる。
図62(b)に示すように、フッタFTは、第0〜第7ビットからなる1バイトのデータである。フッタFTには、フッタFTであることを示すフッタ識別データと、ノイズの影響を受けてコマンドデータの内容が変化していないことを音光側受信回路96にて確認可能とする誤り検出ビットとが設定されている。フッタFTの上位7ビット(第1〜第7ビット)には、フッタ識別データとして、「0101010」というデータが設定されている。主側CPU63から音光側CPU93に対して送信されるコマンドに含まれている1バイトのデータのうち上位7ビットに当該「0101010」が設定されているデータはフッタFTのみである。音光側受信回路96は、受信バッファ177に格納された1バイトのデータにおける上位7ビットにフッタ識別データが設定されているか否かを判定することにより、当該1バイトデータがフッタFTであるか否かを把握する。音光側受信回路96は、ヘッダHDを認識することによりコマンドの開始位置を把握するとともに、フッタFTを認識することにより当該コマンドの終了位置を把握する。そして、ヘッダHDから始まってフッタFTで終わる一連のデータを1つのコマンドとして認識する。
フッタFTの第0ビットには誤り検出ビットが設定されている。誤り検出ビットには、コマンドに含まれている「0」及び「1」の情報のうち「1」の総数が偶数になるように、「0」又は「1」が設定される。音光側受信回路96は、受信後待機バッファ178にコマンドが格納された場合、当該コマンドに含まれている「1」の総数が偶数であるか否かを判定し、当該「1」の総数が偶数ではない場合には通信エラーが発生したことを把握する。これにより、ノイズによって書き換えられたコマンドがそのまま音光側CPU93にて利用されてしまうことを防止することができる。
音光側受信回路96は、第1送信回路101からフッタFTの次に受信した1バイトのデータがヘッダHD以外のデータであった場合、及びヘッダHDを受信してからフッタFTを受信することなく次のヘッダHDを受信した場合にも通信エラーが発生したことを把握する。これにより、主側CPU63が送信待機バッファ175に設定したコマンドに含まれていたデータとは異なるデータが音光側CPU93にて利用されてしまうことを防止することができる。
音光側受信回路96は通信エラーの発生を特定した場合、第1送信回路101に対して再送要求信号を出力する。第1送信回路101は、コマンドの送信が終了した後、再送要求信号を受信しなかった場合には、今回送信が終了したコマンドのデータを送信待機バッファ175から削除する。そして、送信待機バッファ175に次のコマンドが設定されている場合には、当該次のコマンドの送信を開始する。一方、コマンドの送信が終了した後に再送要求信号を受信した場合には、送信待機バッファ175に格納されているコマンドを再び送信する。
図61に示すように、音光側受信回路96には連続して発生した通信エラーの回数をカウントする通信エラーカウンタ181が設けられている。通信エラーカウンタ181には「0」〜「3」の数値情報が格納される。音光側受信回路96は、再送要求信号を出力した場合に通信エラーカウンタ181の値を1加算し、当該再送要求信号の出力後に受信したコマンドについて通信エラーの発生が確認されなかった場合に通信エラーカウンタ181を「0」クリアする。音光側CPU93は、通信エラーカウンタ181の値が「3」に達した場合、通信エラー報知が行われるように表示発光部53の発光制御、スピーカ部54の音出力制御及び図柄表示装置41の表示制御を行う。これにより、主側CPU63から音光側CPU93へのコマンドの送信が正常に行われない状態であることを遊技ホールの管理者に報知することができる。
送信待機バッファ175に格納されているコマンド及び送信バッファ176に格納されている1バイトのデータは、メイン処理(図15)において一部クリア処理(ステップS107)又は全部クリア処理(ステップS114)が実行された場合にクリアされる。
主側CPU63から音光側CPU93に送信されるコマンドにヘッダHD及びフッタFT以外の1バイトのデータが1つ以上設定される場合、主側CPU63はデータ量が4バイト以上である通信用のコマンドを生成し、当該通信用のコマンドを送信待機バッファ175にセットする。通信用のコマンドは、第1送信回路101から音光側受信回路96に送信され、受信後待機バッファ178に格納される。音光側CPU93は、受信後待機バッファ178に格納されているコマンドのデータ量が4バイト以上である場合、すなわち受信後待機バッファ178に通信用のコマンドが格納されている場合には、当該通信用のコマンドを変換後コマンドに変換してコマンド格納バッファ179に格納する。そして、コマンド格納バッファ179に格納されている変換後コマンドに基づいて演出を行う。
特図変動開始処理(図35)のステップS1014における変動用コマンド送信処理(図68)にて音光側CPU93に送信される変動用コマンドには、ヘッダHD及びフッタFT以外に、特定制御用のワークエリア121における表示継続時間カウンタ142(図51(b))に格納されている表示継続時間データが設定される。既に説明したとおり、表示継続時間データは2バイトの数値データである。表示継続時間カウンタ142に格納されているデータをヘッダHD及びフッタFTの間に設定して変動用コマンドを生成する構成とすると、変動用コマンドに含まれているヘッダHD以外のフレーム(1バイトのデータ)における最上位ビット(第7ビット)に「1」が設定されてしまうおそれがある。当該構成において、当該変動用コマンドがそのまま送信待機バッファ175に設定されてしまうと、音光側受信回路96においてヘッダHD以外のフレーム(表示継続時間データが設定されているフレーム)がヘッダHDであると誤って認識されてしまう。本実施形態において主側CPU63は、ヘッダHD以外のフレームにおける最上位ビット(第7ビット)を「0」に変更した通信用の変動用コマンドを生成し、当該通信用の変動用コマンドを送信待機バッファ175にセットする。これにより、ヘッダHD以外のフレームにおける最上位ビット(第7ビット)には必ず「0」が設定されている状態として、ヘッダHDとヘッダHD以外のフレームとを音光側受信回路96にて識別可能とすることができる。以下、本明細書ではコマンドに含まれている1バイトのデータを「フレーム」とも記載する。
一方、例えば、メイン処理(図15)のステップS116にて音光側CPU93に送信される全部クリア時の復帰コマンドは、ヘッダHD及びフッタFTのみからなる2バイトのコマンドである。既に説明したとおり、フッタFTの最上位ビット(第7ビット)は「0」である。このため、ヘッダHD及びフッタFTのみからなる2バイトのコマンドは、各フレームの最上位ビット(第7ビット)が「0」であるか否かを判定することにより当該フレームがヘッダHDであるか否かを識別可能なコマンドである。本実施形態において、主側CPU63から音光側CPU93に送信されるコマンドにヘッダHD及びフッタFT以外のデータが設定されない場合、主側CPU63はヘッダHD及びフッタFTのみからなる2バイトのコマンドをそのまま送信待機バッファ175にセットする。当該コマンドは、第1送信回路101から音光側受信回路96に送信され、受信後待機バッファ178に格納される。音光側CPU93は、受信後待機バッファ178に格納されているコマンドのデータ量が2バイトである場合には、当該コマンドをそのままコマンド格納バッファ179に格納する。
以下では、ヘッダHD及びフッタFT以外のフレームを含むコマンドのデータ構成について、変動用コマンド及び通常復帰コマンドを例に挙げて説明する。
まず変動用コマンドのデータ構成について説明する。図62(c)は通信用の変動用コマンドのデータ構成を説明するための説明図であり、図62(d)は変換後変動用コマンドのデータ構成を説明するための説明図である。
図62(c)に示すように、通信用の変動用コマンドには、ヘッダHD→第1データフレームFR1→第2データフレームFR2→第1最上位フレームSF1→フッタFTという順番で、5つのフレームが設定されている。既に説明したとおり、各フレームには1バイトのデータが設定されている。第1データフレームFR1には表示継続時間カウンタ142の下位エリアに格納されているデータがセットされるとともに、第2データフレームFR2には当該表示継続時間カウンタ142の上位エリアに格納されているデータがセットされる。但し、これらのデータフレームFR1、FR2の最上位ビット(第7ビット)に設定されたデータは、ヘッダHDとこれらのデータフレームFR1,FR2とを識別可能とするために、「0」に変更される。
通信用のコマンドに含まれるデータフレームFRm(mは1〜10のいずれかの整数)の数はコマンドの種類によって異なる。通信用のコマンドには最大で10個のデータフレームFRmが設定される。第1最上位フレームSF1は、第1〜第7データフレームFR1〜FR7に設定されたデータのうち「0」に変更された最上位ビットのデータを把握可能とするフレームである。第1最上位フレームSF1は、通信用のコマンドに含まれるデータフレームFRmの数が7個以下である場合、最後のデータフレームFRmとフッタFTとの間に設定される。第1最上位フレームSF1の第(m−1)ビット(mは1〜7のいずれかの整数)は、第mデータフレームFRmの最上位ビットに対応している。例えば、第1最上位フレームSF1の第0ビットは第1データフレームFR1の最上位ビットに対応しているとともに、第1最上位フレームSF1の第1ビットは第2データフレームFR2の最上位ビットに対応している。表示継続時間カウンタ142の下位エリアにおける最上位ビットのデータは第1最上位フレームSF1の第0ビットに設定されるとともに、表示継続時間カウンタ142の上位エリアにおける最上位ビットのデータは第1最上位フレームSF1の第1ビットに設定される。
上述したとおり、通信用の変動用コマンドに含まれているデータフレームFRmの数は2個であり第1最上位フレームSF1における第2〜第6ビットには対応するデータフレームが存在しない。図62(c)に示すように、通信用の変動用コマンドにおける第1最上位フレームSF1の第2〜第6ビットには「0」が設定されている。このように、通信用のコマンドに含まれるデータフレームFRmの数が6個以下であり第1最上位フレームSF1における第0〜第6ビットのうち対応するデータフレームFRmが存在しないビットには「0」が設定される。第1最上位フレームSF1における最上位ビット(第7ビット)には必ず「0」が設定される。これにより、音光側受信回路96においてヘッダHDと第1最上位フレームSF1とを識別可能とすることができる。
図62(d)に示すように、変換後変動用コマンドには、ヘッダHD、第1データフレームFR1、第2データフレームFR2及びフッタFTが設定されている。変換後変動用コマンドのヘッダHD、第1データフレームFR1の第0〜第6ビット、第2データフレームFR2の第0〜第6ビット及びフッタFTには、通信用の変動用コマンドのヘッダHD、第1データフレームFR1の第0〜第6ビット、第2データフレームFR2の第0〜第6ビット及びフッタFTのデータが設定されている。また、変換後変動用コマンドのデータフレームFR1,FR2の最上位ビットには、通信用の変動用コマンドの第1最上位フレームSF1において対応するビットのデータが設定されている。具体的には、変換後変動用コマンドの第1データフレームFR1の最上位ビットには、通信用の変動用コマンドの第1最上位フレームSF1において当該最上位ビットに対応する第0ビットのデータが設定されている。また、変換後変動用コマンドの第2データフレームFR2の最上位ビットには、通信用の変動用コマンドの第1最上位フレームSF1において当該最上位ビットに対応する第1ビットのデータが設定されている。
このように、通信用の変動用コマンドには、第1〜第2データフレームFR1〜FR2の最上位ビットの情報を集めた第1最上位フレームSF1が設定される。これにより、通信用の変動用コマンドにおいてヘッダHDとヘッダHD以外のフレームとを識別可能としながら、通信用の変動用コマンドにデータが設定された各種カウンタにおける最上位ビットのデータを音光側CPU93において把握可能とすることができる。
図61に示すように、特定制御用のワークエリア121には、第1退避エリア182及び第2退避エリア183が設けられている。第1退避エリア182は、第1最上位フレームSF1のデータが設定されるエリアであるとともに、第2退避エリア183は、後述する第2最上位フレームSF2のデータが設定されるエリアである。これらの退避エリア182,183は1バイトからなる。主側CPU63から音光側CPU93に送信される通信用のコマンドに1〜7個のデータフレームFRmが含まれている場合、第1退避エリア182には第1〜第mデータフレームFR1〜FRm(mは1〜7のいずれかの整数)の最上位ビットのデータが設定される。主側CPU63から音光側CPU93に送信される通信用のコマンドに8〜10個のデータフレームFRmが含まれている場合、第1退避エリア182には第1〜第7データフレームFR1〜FR7の最上位ビットのデータが設定されるとともに、第2退避エリア183には第8〜第mデータフレーム(mは8〜10のいずれかの整数)の最上位ビットのデータが設定される。
図63は通信用の変動用コマンドの生成態様を説明するための説明図である。表示継続時間カウンタ142の下位エリアにおける最上位ビットのデータは第1退避エリア182の第0ビットに設定されるとともに、表示継続時間カウンタ142の上位エリアにおける最上位ビットのデータは第1退避エリア182の第1ビットに設定される。また、第1退避エリア182において対応するカウンタの存在しない第2〜第6ビットには「0」が設定される。さらにまた、第1退避エリア182の最上位ビット(第7ビット)には必ず「0」が設定される。既に説明したとおり、第1退避エリア182に格納される第1最上位フレームSF1のデータにおける最上位ビット(第7ビット)に必ず「0」が設定される構成であることにより、音光側受信回路96においてヘッダHDと第1最上位フレームSF1とを識別可能とすることができる。
図61に示すように、第1送信回路101には書き込みポインタ186が設けられている。書き込みポインタ186は、送信待機バッファ175においてコマンドの書き込み開始位置を主側CPU63にて把握可能とするポインタである。主側CPU63は、書き込みポインタ186の値に基づいて送信待機バッファ175の空きエリアを把握する。そして、当該把握した空きエリアにヘッダHDのデータ、表示継続時間カウンタ142の下位エリアに格納されているデータ、表示継続時間カウンタ142の上位エリアに格納されているデータ、第1退避エリア182に格納されているデータ及びフッタFTのデータを設定する。送信待機バッファ175において、ヘッダHD及びフッタFT以外のデータが設定されたエリアにおける最上位ビット(第7ビット)は「0」クリアされる。これにより、送信待機バッファ175に通信用の変動用コマンドが設定される。
次に、通常復帰コマンドのデータ構成について説明する。図64は通信用の通常復帰コマンドのデータ構成を説明するための説明図であり、図65は変換後通常復帰コマンドのデータ構成を説明するための説明図である。
図64に示すように、通信用の通常復帰コマンドには、ヘッダHD→第1データフレームFR1〜第7データフレームFR7→第1最上位フレームSF1→第8データフレームFR8〜第10データフレームFR10→第2最上位フレームSF2→フッタFTという順番で、14個のフレームが設定されている。既に説明したとおり、各フレームには1バイトのデータが設定されている。
通信用の通常復帰コマンドにおける第1データフレームFR1には特定制御用のワークエリア121における設定値カウンタに格納されているデータが設定される。これにより、音光側CPU93にて現状におけるパチンコ機10の設定値を把握可能とすることができる。第2データフレームFR2には特定制御用のワークエリア121における第1特図保留数カウンタ118に格納されているデータが設定されるとともに、第3データフレームFR3には特定制御用のワークエリア121における第2特図保留数カウンタ119に格納されているデータが設定される。これにより、第1特図保留エリア115における保留数及び第2特図保留エリア116における保留数を音光側CPU93にて把握可能とすることができる。第4データフレームFR4には特定制御用のワークエリア121におけるモードデータエリアに格納されているデータが設定される。既に説明したとおり、モードデータエリアには高頻度サポートモードフラグ及び開閉実行モードフラグが設定されている。通常復帰コマンドにモードデータエリアのデータが含まれていることにより、高頻度サポートモードであるか否か及び開閉実行モードであるか否かを音光側CPU93にて把握可能とすることができる。第5データフレームFR5には特定制御用のワークエリア121におけるラウンドカウンタに格納されているデータが設定される。これにより、開閉実行モードにおける残りのラウンド遊技の回数を音光側CPU93にて把握可能とすることができる。第6データフレームFR6には特定制御用のワークエリア121における当否データエリア158に格納されているデータが設定される。既に説明したとおり、当否データエリア158の第0ビットには小当たりフラグ158bが設定されているとともに、第1ビットには大当たりフラグ158aが設定されている。通常復帰コマンドに当否データエリア158のデータが含まれていることにより、大当たり結果が発生したこと及び小当たり結果が発生したことを音光側CPU93にて把握可能とすることができる。第7データフレームFR7には振分データエリア162に格納されているデータが設定される。既に説明したとおり、振分データエリア162の第0ビットには4R高確フラグ162aが設定されており、第1ビットには8R高確フラグ162bが設定されており、第2ビットには16R高確フラグ162cが設定されている。通常復帰コマンドに振分データエリア162のデータが含まれていることにより、4R高確大当たり結果が発生したこと、8R高確大当たり結果が発生したこと及び12R高確大当たり結果が発生したことを音光側CPU93にて把握可能とすることができる。第8データフレームFR8には遊技回エリアに格納されているデータが設定される。既に説明したとおり、遊技回エリアの第0ビットには遊技回フラグが設定されている。通常復帰コマンドに遊技回エリアのデータが含まれていることにより、遊技回の実行中であるか否かを音光側CPU93にて把握可能とすることができる。既に説明したとおり、いずれかの作動口33,34への入賞に基づいて、いずれかの特図表示部37a,37b及び図柄表示装置41にて表示が開始され、所定の結果を表示して終了されるまでが遊技回の1回に相当する。第9データフレームFR9には特定制御用のワークエリア121における特図特電タイマカウンタの下位エリアに格納されているデータが設定されるとともに、第10データフレームFR10には当該特図特電タイマカウンタの上位エリアに格納されているデータが設定される。これにより、遊技回の実行中である場合に当該遊技回における残りの表示継続時間を音光側CPU93にて把握可能とすることができる。但し、これらのデータフレームFR1〜FR10の最上位ビット(第7ビット)に設定されたデータは、ヘッダHDとこれらのデータフレームFR1〜FR10とを識別可能とするために、「0」に変更される。
表示継続時間カウンタ142に格納されているデータを第9〜第10データフレームFR9〜FR10に設定して通常復帰コマンドを生成する構成とすると、これらのフレームFR9,FR10の最上位ビット(第7ビット)に「1」が設定されてしまうおそれがある。当該構成において、当該通常復帰コマンドがそのまま送信待機バッファ175に設定されてしまうと、音光側受信回路96においてヘッダHD以外のフレーム(第9データフレームFR9及び第10データフレームFR10)がヘッダHDであると誤って認識されてしまう。本実施形態において主側CPU63は、ヘッダHD以外のフレームにおける最上位ビット(第7ビット)を「0」に変更した通信用の通常復帰コマンドを生成し、当該通信用の通常復帰コマンドを送信待機バッファ175にセットする。これにより、ヘッダHD以外のフレームにおける最上位ビット(第7ビット)には必ず「0」が設定されている状態として、ヘッダHDとヘッダHD以外のフレームとを音光側受信回路96にて識別可能とすることができる。
既に説明したとおり、第1最上位フレームSF1は、第1〜第7データフレームFR1〜FR7に設定されたデータのうち「0」に変更された最上位ビットのデータを把握可能とするフレームである。第1最上位フレームSF1は、コマンドに含まれるデータフレームFRmの数が8個以上である場合、第7データフレームFR7と第8データフレームFR8との間に設定される。第1最上位フレームSF1の第mビット(mは0〜6の整数)は、第(m+1)データフレームFR(m+1)の最上位ビットに対応している。設定値カウンタにおける最上位ビットのデータは第1最上位フレームSF1の第0ビットに設定され、第1特図保留数カウンタ118における最上位ビットのデータは第1最上位フレームSF1の第1ビットに設定され、第2特図保留数カウンタ119における最上位ビットのデータは第1最上位フレームSF1の第2ビットに設定され、モードデータエリアにおける最上位ビットのデータは第1最上位フレームSF1の第3ビットに設定される。また、ラウンドカウンタにおける最上位ビットのデータは第1最上位フレームSF1の第4ビットに設定され、当否データエリア158における最上位ビットのデータは第1最上位フレームSF1の第5ビットに設定され、振分データエリア162における最上位ビットのデータは第1最上位フレームSF1の第6ビットに設定される。
第2最上位フレームSF2は、第8データフレームFR8〜第10データフレームFR10に設定されたデータのうち「0」に変更された最上位ビットのデータを把握可能とするフレームである。第2最上位フレームSF2は、コマンドに含まれるデータフレームFRmの数が8個以上である場合、最後のデータフレーム(第10データフレームFR10)とフッタFTとの間に設定される。第2最上位フレームSF2の第(m−8)ビット(mは8〜10の整数)は、第mデータフレームFRmの最上位ビットに対応している。遊技回エリアにおける最上位ビットのデータは第2最上位フレームSF2の第0ビットに設定され、特図特電タイマカウンタの下位エリアにおける最上位ビットのデータは第2最上位フレームSF2の第1ビットに設定され、特図特電タイマカウンタの上位エリアにおける最上位ビットのデータは第2最上位フレームSF2の第2ビットに設定される。
図65に示すように、変換後通常復帰コマンドには、ヘッダHD、第1データフレームFR1〜第10データフレームFR10及びフッタFTが設定されている。変換後通常復帰コマンドのヘッダHD、第1〜第10データフレームFR1〜FR10の第0〜第6ビット及びフッタFTには、通信用の通常復帰コマンドのヘッダHD、第1〜第10データフレームFR1〜FR10の第0〜第6ビット及びフッタFTのデータが設定されている。また、変換後通常復帰コマンドの第1〜第7データフレームFR1〜FR7の最上位ビットには、通信用の通常復帰コマンドの第1最上位フレームSF1において対応するビットのデータが設定されている。さらにまた、変換後通常復帰コマンドの第8〜第10データフレームFR8〜FR10の最上位ビットには、通信用の通常復帰コマンドの第2最上位フレームSF2において対応するビットのデータが設定されている。
通信用の通常復帰コマンドには、第1〜第7データフレームFR1〜FR7の最上位ビットの情報を集めた第1最上位フレームSF1及び第8〜第10データフレームFR8〜FR10の最上位ビットの情報を集めた第2最上位フレームSF2が設定される。これにより、通信用の通常復帰コマンドにおいてヘッダHDとヘッダHD以外のフレームとを識別可能としながら、通信用の通常復帰コマンドにデータが設定された各種カウンタにおける最上位ビットのデータを音光側CPU93において把握可能とすることができる。
図66は通信用の通常復帰コマンドの生成態様を説明するための説明図である。図66に示すように、設定値カウンタの最上位ビットのデータは第1退避エリア182の第0ビットに設定され、第1特図保留数カウンタ118の最上位ビットのデータは第1退避エリア182の第1ビットに設定され、第2特図保留数カウンタ119の最上位ビットのデータは第1退避エリア182の第2ビットに設定され、モードデータエリアの最上位ビットのデータは第1退避エリア182の第3ビットに設定される。また、ラウンドカウンタの最上位ビットのデータは第1退避エリア182の第4ビットに設定され、当否データエリア158の最上位ビットのデータは第1退避エリア182の第5ビットに設定され、振分データエリア162の最上位ビットのデータは第1退避エリア182の第6ビットに設定される。
遊技回エリアの最上位ビットのデータは第2退避エリア183の第0ビットに設定され、特図特電タイマカウンタの下位エリアにおける最上位ビットのデータは第2退避エリア183の第1ビットに設定され、特図特電タイマカウンタの上位エリアにおける最上位ビットのデータは第1退避エリア182の第2ビットに設定される。第2退避エリア183において対応するカウンタが存在しない第3〜第6ビットには「0」が設定される。
既に説明したとおり、第1退避エリア182の最上位ビット(第7ビット)には必ず「0」が設定される。また、第2退避エリア183の最上位ビット(第7ビット)には必ず「0」が設定される。第1退避エリア182に格納されるデータは第1最上位フレームSF1のデータであるとともに、第2退避エリア183に格納されるデータは第2最上位フレームSF2のデータである。これらの最上位フレームSF1,SF2の最上位ビット(第7ビット)に必ず「0」が設定される構成であることにより、音光側受信回路96においてヘッダHDとこれらの最上位フレームSF1,SF2とを識別可能とすることができる。
主側CPU63は、書き込みポインタ186の値に基づいて送信待機バッファ175の空きエリアを把握する。そして、当該把握した空きエリアにヘッダHDのデータ、設定値カウンタ、第1特図保留数カウンタ118、第2特図保留数カウンタ119、モードデータエリア、ラウンドカウンタ、当否データエリア158、振分データエリア162、遊技回エリア、特図特電タイマカウンタの下位エリア及び特図特電タイマカウンタの上位エリアに格納されているデータ、並びにフッタFTのデータを設定する。送信待機バッファ175において、ヘッダHD及びフッタFT以外のデータが設定されたエリアにおける最上位ビット(第7ビット)は「0」クリアされる。これにより、送信待機バッファ175に通信用の通常復帰コマンドが設定される。
既に説明したとおり、主側CPU63は音光側CPU93に通信用の変動用コマンド及び通信用の通常復帰コマンド以外の通信用のコマンドも送信する。通信用のコマンドに含まれているデータフレームFRmの数は「1」〜「12」のいずれかである。通信用のコマンドに含まれているデータフレームFRmの数が「7」の倍数である場合には、当該通信用のコマンドに含まれているデータフレームFRmの数を「7」で除算した場合における商の数の最上位フレームSFpが当該通信用のコマンドに設定されている。また、通信用のコマンドに含まれているデータフレームFRmの数が「7」の倍数ではない場合には、当該通信用のコマンドに含まれているデータフレームFRmの数を「7」で除算した場合における商の数よりも「1」大きい数の最上位フレームSFpが当該通信用のコマンドに設定されている。これにより、通信用のコマンドの受信後に当該通信用のコマンドに含まれている全てのデータフレームFRmにおける最上位のビットに設定される情報を最上位フレームSFpに設定することができる。
次に、音光側受信回路96が通信用のコマンド(通信用の変動用コマンド及び通信用の通常復帰コマンド)を受信した場合について説明する。
音光側受信回路96が主側CPU63から受信した通信用のコマンドは受信後待機バッファ178に格納される。図61に示すように、音光側RAM95には、通信用のコマンドが格納される変換前エリア184と、当該変換前エリア184に格納された通信用のコマンドを変換後コマンドに変換する変換後エリア185とが設けられている。変換前エリア184は14バイトからなる記憶エリアであるとともに、変換後エリア185は12バイトからなる記憶エリアである。既に説明したとおり、音光側受信回路96が第1送信回路101から受信する通信用のコマンドのデータ容量は最大で14バイトである。また、変換後コマンドのデータ容量は最大で12バイトである。音光側CPU93は、受信後待機バッファ178に格納されている通信用のコマンドを変換前エリア184にセットし、当該通信用のコマンドを変換後エリア185にて変換後コマンドに変換する。そして、当該変換後コマンドをコマンド格納バッファ179に格納する。これにより、音光側CPU93にて変換後コマンドを利用可能となる。
図67(a)は通信用の変動用コマンドの変換態様を説明するための説明図であり、図67(b)は通信用の通常復帰コマンドの変換態様を説明するための説明図である。図67(a),(b)に示すように、変換前エリア184には第1〜第14エリアRA1〜RA14が設けられているとともに、変換後エリア185には第1〜12エリアRB1〜RB12が設けられている。これらのエリアRA1〜RA14,RB1〜RB12は1バイトからなる記憶エリアである。
音光側CPU93は、受信後待機バッファ178に格納されているコマンドのデータ量が2バイトである場合、すなわち受信後待機バッファ178に格納されているコマンドがヘッダHD及びフッタFTのみで構成されている場合には、当該コマンドを変換することなくコマンド格納バッファ179に格納する。一方、音光側CPU93は、受信後待機バッファ178に格納されているコマンドのデータ量が3バイト以上である場合、すなわち受信後待機バッファ178に格納されているコマンドに1つ以上のデータフレームFRmが含まれている場合には、当該コマンドを変換後エリア185にて変換後コマンドに変換する。
図67(a)に示すように、通信用の変動用コマンドの変換では、変換前エリア184にセットされた通信用の変動用コマンドに含まれているヘッダHD、第1〜第2データフレームFR1〜FR2、第1最上位フレームSF1及びフッタFTのうち第1最上位フレームSF1を除くヘッダHD、第1〜第2データフレームFR1〜FR2及びフッタFTのデータが変換後エリア185にロードされる。変換前エリア184の第1エリアRA1に格納されているヘッダHDは変換後エリア185の第1エリアRB1にロードされ、変換前エリア184の第2〜第3エリアRA2〜RA3に格納されている第1〜第2データフレームFR1〜FR2は変換後エリア185の第2〜第3エリアRB2〜RB3にロードされ、変換前エリア184の第5エリアRA5に格納されているフッタFTは変換後エリア185の第4エリアRB4にロードされる。
その後、通信用の変動用コマンドに含まれている第1最上位フレームSF1の第sビット(sは0〜1の整数)に格納されている「0」又は「1」の情報が第(s+1)データフレームFR(s+1)の最上位ビット(第7ビット)にセットされる。これにより、変換後エリア185に変換後変動用コマンドが格納されている状態となる。音光側CPU93は、変換後エリア185に格納されている当該変換後変動用コマンドをコマンド格納バッファ179に格納する。これにより、変換後変動用コマンドを音光側CPU93にて利用可能とすることができる。
図67(b)に示すように、通信用の通常復帰コマンドの変換では、変換前エリア184にセットされた通信用の通常復帰コマンドに含まれているヘッダHD、第1〜第10データフレームFR1〜FR10、第1最上位フレームSF1、第2最上位フレームSF2及びフッタFTのうち第1最上位フレームSF1及び第2最上位フレームSF2を除くヘッダHD、第1〜第10データフレームFR1〜FR10及びフッタFTのデータが変換後エリア185にロードされる。変換前エリア184の第1エリアRA1に格納されているヘッダHDは変換後エリア185の第1エリアRB1にロードされ、変換前エリア184の第2〜第8エリアRA2〜RA8に格納されている第1〜第7データフレームFR1〜FR7は変換後エリア185の第2〜第8エリアRB2〜RB8にロードされ、変換前エリア184の第10〜第12エリアRA10〜RA12に格納されている第8〜第10データフレームFR8〜FR10は変換後エリア185の第9〜第11エリアRB9〜RB11にロードされ、変換前エリア184の第14エリアRA14に格納されているフッタFTは変換後エリア185の第12エリアRB12にロードされる。
その後、通信用の通常復帰コマンドに含まれている第1最上位フレームSF1の第sビット(sは0〜6の整数)に格納されている「0」又は「1」の情報が第(s+1)データフレームFR(s+1)の最上位ビット(第7ビット)にセットされるとともに、通信用の通常復帰コマンドに含まれている第2最上位フレームSF2の第tビット(tは0〜2の整数)に格納されている「0」又は「1」の情報が第(t+8)データフレームFR(t+8)の最上位ビット(第7ビット)にセットされる。これにより、変換後エリア185に変換後通常復帰コマンドが格納されている状態となる。音光側CPU93は、変換後エリア185に格納されている当該変換後通常復帰コマンドをコマンド格納バッファ179に格納する。これにより、変換後通常復帰コマンドを音光側CPU93にて利用可能とすることができる。
図61に示すように、音光側RAM95には第1最上位カウンタ188及び第2最上位カウンタ189が設けられている。第1最上位カウンタ188は、変換前エリア184において第1最上位フレームSF1が格納されているエリアRAn(nは3〜9のいずれかの整数)を音光側CPU93にて把握可能とするカウンタであるとともに、第2最上位カウンタ189は、変換前エリア184において第2最上位フレームSF2が格納されているエリアRAm(mは11〜13のいずれかの整数)を音光側CPU93にて把握可能とするカウンタである。第1最上位カウンタ188及び第2最上位カウンタ189は1バイトからなる。変換前エリア184において第1最上位フレームSF1は第3エリアRA3〜第9エリアRA9のいずれかに格納される。第1最上位カウンタ188には、変換前エリア184において第1最上位フレームSF1が格納されているエリアRAnに対応する「3」〜「9」のいずれかの数値情報が設定される。変換前エリア184において第2最上位フレームSF2は第11エリアRA11〜第13エリアRA13のいずれかに格納される。第2最上位カウンタ189には、変換前エリア184において第2最上位フレームSF2が格納されているエリアRAmに対応する「11」〜「13」のいずれかの数値情報が設定される。変換前エリア184に格納されている通信用のコマンドが10バイト以下である場合、すなわち当該通信用のコマンドに第2最上位フレームSF2が含まれていない場合、第2最上位フレームSF2には「0」が設定されている状態となる。音光側CPU93は、第1最上位カウンタ188の値に基づいて変換前エリア184における第1最上位フレームSF1の位置を把握することができる。また、音光側CPU93は、第2最上位カウンタ189の値に基づいて、変換前エリア184に格納されている通信用のコマンドに第2最上位フレームSF2が含まれているか否かを把握することができるとともに、当該変換前エリア184における第2最上位フレームSF2の位置を把握することができる。
次に、主側CPU63にて実行される変動用コマンド送信処理について図68(a)のフローチャートを参照しながら説明する。変動用コマンド送信処理は特図変動開始処理(図35)のステップS1014にて実行される。なお、変動用コマンド送信処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
変動用コマンド送信処理では、まず特定制御用のワークエリア121における第1退避エリア182を「0」クリアする(ステップS2001)。その後、後述するステップS2004にてデータの移動先となる移動先ビットとして第0ビットを設定する(ステップS2002)。本変動用コマンド送信処理(図68(a))において、移動先ビットの情報はWレジスタ104aに設定される。ステップS2002では、Wレジスタ104aを「0」クリアする。
その後、主側ROM64に記憶されている変動用コマンド生成テーブル64u(図68(b))の開始アドレスである「9430H」をHLレジスタ107にセットする(ステップS2003)。変動用コマンド生成テーブル64uは、通信用の変動用コマンドに設定するデータを主側CPU63にて把握可能とするデータテーブルである。
図68(b)は変動用コマンド生成テーブル64uのデータ構成を説明するための説明図である。図68(b)に示すように、変動用コマンド生成テーブル64uは、主側ROM64における「9430H」〜「9435H」のアドレスに設定されている。変動用コマンド生成テーブル64uの開始アドレスである「9430H」及び「9431H」のアドレスには特定制御用のワークエリア121における表示継続時間カウンタ142の下位エリアのアドレスが設定されているとともに、「9432H」及び「9433H」のアドレスには当該表示継続時間カウンタ142の上位エリアのアドレスが設定されている。また、「9434H」のアドレスには終了用データとして「00H」が設定されているとともに、「9435H」のアドレスには変動用コマンドのコマンド識別データが設定されている。既に説明したとおり、変動用コマンドのコマンド識別データの最上位ビット(第7ビット)には「1」が設定されている。
変動用コマンド送信処理(図68(a))においてHLレジスタ107には、移動元エリアのアドレスが設定される。移動元エリアは、後述するステップS2004にてデータの移動元となるエリアである。ステップS2003にてHLレジスタ107に「9430H」がセットされることにより、移動元エリアとして表示継続時間カウンタ142の下位エリアが設定されている状態となる。
ステップS2003の処理を行った後は、Wレジスタ104aの値が「0」である状態、すなわち移動先ビットとして第0ビットが設定されている状態で、ステップS2004〜ステップS2007の処理を行う。具体的には、まず移動元エリアである表示継続時間カウンタ142の下位エリアにおける最上位ビット(第7ビット)に格納されている「0」又は「1」のデータを、第1退避エリア182の移動先ビットにロードする(ステップS2004)。既に説明したとおり、ステップS2002にて移動先ビットとして第0ビットが設定されている。このため、ステップS2004では、表示継続時間カウンタ142の下位エリアにおける最上位ビットに格納されているデータを第1退避エリア182の第0ビットにロードする。
その後、HLレジスタ107の値を2加算して「9432H」とする(ステップS2005)。既に説明したとおり、変動用コマンド生成テーブル64u(図68(b))の「9432H」及び「9433H」には表示継続時間カウンタ142の上位エリアのアドレスが設定されている。HLレジスタ107の値が「9432H」に更新されることにより、移動元エリアが表示継続時間カウンタ142の上位エリアに更新される。
その後、HLレジスタ107に格納されているアドレスに対応するエリアに終了用データ(「00H」)が設定されているか否かを判定する(ステップS2006)。上述したとおり、HLレジスタ107の値は「9432H」であり、当該「9432H」に対応するエリアに終了用データは設定されていないため、ステップS2006では否定判定を行い、移動先ビットを第1ビットに更新する(ステップS2007)。ステップS2007では、Wレジスタ104aの値を1加算して「1」とする。
その後、Wレジスタ104aの値が「1」である状態、すなわち移動先ビットとして第1ビットが設定されている状態で、ステップS2004〜ステップS2006の処理を行う。具体的には、まず移動元エリアである表示継続時間カウンタ142の上位エリアにおける最上位ビット(第7ビット)に格納されている「0」又は「1」のデータを、第1退避エリア182の移動先ビットにロードする(ステップS2004)。既に説明したとおり、ステップS2007にて移動先ビットは第1ビットに更新されている。このため、表示継続時間カウンタ142の上位エリアにおける最上位ビットに格納されているデータを第1退避エリア182の第1ビットにロードする。
その後、HLレジスタ107の値を2加算して「9434H」とし(ステップS2005)、HLレジスタ107に格納されているアドレスに対応するエリアに終了用データ(「00H」)が設定されているか否かを判定する(ステップS2006)。既に説明したとおり、変動用コマンド生成テーブル64u(図68(b))の「9434H」には終了用データが設定されているため、ステップS2006にて肯定判定を行い、変動用コマンド設定処理を実行して(ステップS2008)、本変動用コマンド送信処理を終了する。
次に、主側CPU63にて実行される変動用コマンド設定処理について図69のフローチャートを参照しながら説明する。変動用コマンド設定処理は変動用コマンド送信処理(図68(a))のステップS2008にて実行される。なお、変動用コマンド設定処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
変動用コマンド設定処理では、送信待機バッファ175に対応する書き込みポインタ186の値を特定制御用のワークエリア121に設けられた先頭記憶エリアに記憶する(ステップS2101)。先頭記憶エリアは、送信待機バッファ175において今回のコマンドを設定した領域の先頭エリアを主側CPU63にて把握可能とする記憶エリアである。先頭記憶エリアは2バイトからなる。ステップS2101にて書き込みポインタ186の値を記憶することにより、後述するステップS2113にて送信待機バッファ175において今回のコマンドが設定されているエリアを把握可能とすることができるとともに、当該コマンドに含まれている「1」の総数を把握可能とすることができる。
その後、HLレジスタ107の値を1加算してHLレジスタ107に格納されているアドレスを「9434H」から「9435H」に更新する(ステップS2102)。既に説明したとおり、変動用コマンド生成テーブル64u(図68(b))において「9435H」に対応するエリアには変動用コマンドのコマンド識別データが設定されている。その後、送信待機バッファ175において書き込みポインタ186の値に対応するエリアにコマンド識別データをセットする(ステップS2103)。既に説明したとおり、コマンド識別データの最上位ビット(第7ビット)には、ヘッダ識別ビットとして「1」が設定されている。これにより、音光側受信回路96にてヘッダHDとヘッダHD以外のフレームとを識別可能とすることができる。
その後、書き込みポインタ186の値を2加算することにより送信待機バッファ175における設定先エリアを更新する(ステップS2104)。その後、変動用コマンド生成テーブル64u(図68(b))の開始アドレスである「9430H」をHLレジスタ107にセットして(ステップS2105)、ステップS2106に進む。既に説明したとおり、変動用コマンド生成テーブル64uの「9430H」及び「9431H」には表示継続時間カウンタ142の下位エリアのアドレスが格納されている。
ステップS2106〜ステップS2110の処理は、ステップS2110にて肯定判定が行われるまで2回繰り返される。HLレジスタ107に表示継続時間カウンタ142の下位エリアのアドレスが格納されている状態で実行される1回目のステップS2106では、当該表示継続時間カウンタ142の下位エリアに格納されているデータを送信待機バッファ175において書き込みポインタ186の値に対応する設定先エリアにセットし(ステップS2106)、当該設定先エリアの最上位ビット(第7ビット)を「0」クリアする(ステップS2107)。
その後、書き込みポインタ186の値を2加算することにより送信待機バッファ175における設定先エリアを更新する(ステップS2108)。その後、HLレジスタ107の値を2加算してHLレジスタ107に格納されているアドレスを「9432H」に更新する(ステップS2109)。既に説明したとおり、変動用コマンド生成テーブル64u(図68(b))において「9432H」及び「9433H」のアドレスには表示継続時間カウンタ142の上位エリアのアドレスが格納されている。
その後、変動用コマンド生成テーブル64uにおいてHLレジスタ107に格納されているアドレスに対応するエリアに終了用データ(「00H」)が設定されているか否かを判定する(ステップS2110)。当該エリアには表示継続時間データの上位1バイトが設定されており、終了用データは設定されていないため、ステップS2110では否定判定を行い、ステップS2106に進む。
HLレジスタ107の値に対応するエリアに表示継続時間カウンタ142の上位エリアのアドレスが格納されている状態で実行される2回目のステップS2106では、当該表示継続時間カウンタ142の上位エリアに格納されているデータを送信待機バッファ175において書き込みポインタ186の値に対応する設定先エリアにセットし(ステップS2106)、当該設定先エリアの最上位ビット(第7ビット)を「0」クリアする(ステップS2107)。
その後、書き込みポインタ186の値を2加算することにより送信待機バッファ175における設定先エリアを更新する(ステップS2108)。その後、HLレジスタ107の値を2加算してHLレジスタ107に格納されているアドレスを「9434H」に更新する(ステップS2109)。既に説明したとおり、変動用コマンド生成テーブル64u(図68(b))において「9434H」のアドレスには終了用データ(「00H」)が格納されている。その後、HLレジスタ107の値に対応するエリアに終了用データが設定されているか否かを判定するステップS2110にて肯定判定を行い、ステップS2111に進む。
ステップS2111では、特定制御用のワークエリア121における第1退避エリア182に格納されているデータを送信待機バッファ175において書き込みポインタ186の値に対応する設定先エリアにセットする(ステップS2111)。その後、書き込みポインタ186の値を2加算して設定先エリアを更新し(ステップS2112)、主側ROM64に記憶されているフッタ識別データを当該更新後の設定先エリアにセットして(ステップS2113)、本変動用コマンド設定処理を終了する。ステップS2113では、第1最上位フレームSF1の次にフッタFTを設定する。また、ステップS2113では、送信待機バッファ175に格納されている通信用の変動用コマンドに含まれている「0」及び「1」のデータのうち「1」の総数が偶数であるか否かを判定し、通信用の変動用コマンドに含まれている「1」の総数が偶数ではない場合には、フッタFTの誤り検出ビットに「1」をセットする。主側CPU63は、ステップS2101にて先頭記憶エリアに記憶した最初の書き込みポインタ186の値と、現状の書き込みポインタ186の値とに基づいて、送信待機バッファ175において通信用の変動用コマンドが設定されているエリアを把握する。一方、通信用の変動用コマンドに含まれている「1」の総数が偶数である場合には、フッタFTの誤り検出ビットに「0」がセットされている状態を維持する。通信用の変動用コマンドに含まれている「1」の総数を偶数とすることにより、音光側受信回路96において通信エラーの発生を把握可能とすることができる。
次に、主側CPU63にて実行される復帰コマンド送信処理について図70のフローチャートを参照しながら説明する。復帰コマンド送信処理はメイン処理(図15)のステップS113にて実行される。なお、復帰コマンド送信処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
復帰コマンド送信処理では、まず特定制御用のワークエリア121における第1退避エリア182及び第2退避エリア183を「0」クリアする(ステップS2201)。その後、後述するステップS2207にてデータの移動先となる移動先ビットとして第0ビットを設定する(ステップS2202)。本変動用コマンド送信処理(図70)において移動先ビットの情報は、Wレジスタ104aに設定される。ステップS2202では、Wレジスタ104aを「0」クリアする。
その後、特定制御用のワークエリア121における一部クリアフラグに「1」がセットされているか否かを判定する(ステップS2203)。既に説明したとおり、一部クリアフラグには、メイン処理(図15)において一部クリア処理(ステップS107)が実行された場合にステップS108にて「1」がセットされる。一部クリアフラグに「1」がセットされている場合(ステップS2203:YES)には、一部クリア時の復帰コマンド送信処理を実行して(ステップS2204)、本復帰コマンド送信処理を終了する。一部クリア時の復帰コマンド送信処理(ステップS2204)では、ヘッダHDのデータと、特定制御用のワークエリア121における設定値カウンタに格納されているデータと、フッタFTのデータを含む一部クリア時の復帰コマンドを音光側CPU93に送信する。通信用の一部クリア時の復帰コマンドにはヘッダHD、第1データフレームFR1、第1最上位フレームSF1及びフッタFTが設定されている。ヘッダHDには一部クリア時の復帰コマンドのコマンド識別データが含まれている。第1データフレームFR1には特定制御用のワークエリア121における設定値カウンタの第0〜第6ビットのデータが設定されている。第1最上位フレームSF1の第0ビットには、設定値カウンタの最上位ビット(第7ビット)のデータである「0」が設定されている。音光側CPU93は、一部クリア時の復帰コマンドを受信することにより、メイン処理(図15)において一部クリア処理(ステップS107)が実行されたことを把握するとともに、現状におけるパチンコ機10の設定値を把握する。
ステップS2203にて否定判定を行った場合には、主側ROM64に記憶されている通常復帰コマンド生成テーブル64v(図71)の開始アドレスである「9450H」をHLレジスタ107にセットする(ステップS2205)。通常復帰コマンド生成テーブル64vは、通信用の通常復帰コマンドに設定するデータを主側CPU63にて把握可能とするデータテーブルである。
図71は通常復帰コマンド生成テーブル64vのデータ構成を説明するための説明図である。図71に示すように、通常復帰コマンド生成テーブル64vは、主側ROM64における「9450H」〜「9466H」のアドレスに設定されている。通常復帰コマンド生成テーブル64vの開始アドレスである「9450H」及び「9451H」のアドレスには特定制御用のワークエリア121における設定値カウンタのアドレスが設定されており、「9452H」及び「9453H」のアドレスには特定制御用のワークエリア121における第1特図保留数カウンタ118のアドレスが設定されており、「9454H」及び「9455H」のアドレスには特定制御用のワークエリア121における第2特図保留数カウンタ119のアドレスが設定されており、「9456H」及び「9457H」のアドレスには特定制御用のワークエリア121におけるモードデータエリアのアドレスが設定されており、「9458H」及び「9459H」のアドレスには特定制御用のワークエリア121におけるラウンドカウンタのアドレスが設定されており、「945AH」及び「945BH」のアドレスには特定制御用のワークエリア121における当否データエリア158のアドレスが設定されており、「945CH」及び「945DH」のアドレスには特定制御用のワークエリア121における振分データエリア162のアドレスが設定されている。「945EH」のアドレスには、第1終了用データとして「0001H」が格納されている。「945FH」及び「9460H」のアドレスには特定制御用のワークエリア121における遊技回エリアのアドレスが設定されており、「9461H」及び「9462H」のアドレスには特定制御用のワークエリア121における特図特電タイマカウンタの下位エリアのアドレスが設定されており、「9463H」及び「9464H」のアドレスには特定制御用のワークエリア121における特図特電タイマカウンタの上位エリアのアドレスが設定されている。「9465H」のアドレスには第2終了用データとして「0002H」が格納されているとともに、「9466H」のアドレスには通常復帰コマンドのコマンド識別データが格納されている。
通常復帰コマンド送信処理(図70)においてHLレジスタ107には、後述するステップS2207にてデータの移動元となる移動元エリアのアドレスが設定される。ステップS2205にてHLレジスタ107に「9450H」がセットされることにより、移動元エリアとして設定値カウンタが設定されている状態となる。
その後、後述するステップS2207にてデータの移動先のエリアとなる移動先エリアとして第1退避エリア182を設定する(ステップS2206)。本復帰コマンド送信処理(図70)において移動先エリアのアドレスは、DEレジスタ106に格納される。ステップS2206では、第1退避エリア182のアドレスをDEレジスタ106に格納する。
その後、DEレジスタ106に第1退避エリア182のアドレスが格納されている状態、すなわち移動先エリアとして第1退避エリア182が設定されている状態であるとともに、Wレジスタ104aの値が「0」である状態、すなわち移動先ビットとして第0ビットが設定されている状態において、ステップS2207〜ステップS2211の処理を行う。具体的には、まずHLレジスタ107に格納されているアドレスに基づいて把握される移動元エリアとして現状設定されている設定値カウンタに格納されているデータを、移動先エリアである第1退避エリア182の移動先ビットである第0ビットにロードする(ステップS2207)。
その後、HLレジスタ107の値を2加算して「9452H」に更新する(ステップS2208)。既に説明したとおり、通常復帰コマンド生成テーブル64v(図71)の「9452H」及び「9453H」には第1特図保留数カウンタ118のアドレスが設定されている。HLレジスタ107の値が「9452H」に更新されることにより、移動元エリアとして第1特図保留数カウンタ118が設定されている状態となる。
その後、HLレジスタ107に格納されているアドレスに基づいて把握される移動元エリアに第2終了用データ(「0002H」)が設定されているか否かを判定する(ステップS2209)。上述したとおり、HLレジスタ107の値は「9452H」であり、当該「9452H」に対応するエリアに第2終了用データは設定されていないため、ステップS2209では否定判定を行い、ステップS2210に進む。
ステップS2210では、移動元エリアに第1終了用データ(「0001H」)が設定されているか否かを判定する(ステップS2211)。上述したとおり、HLレジスタ107の値は「9452H」であり、当該「9452H」に対応するエリアに第1終了用データは設定されていないため、ステップS2210では否定判定を行い、ステップS2211に進む。
ステップS2211では、Wレジスタ104aの値を1加算して「1」に更新する。これにより、移動先ビットが第1ビットに更新される。その後、ステップS2207に進む。そして、DEレジスタ106に第1退避エリア182のアドレスが格納されている状態、すなわちデータの移動先エリアとして第1退避エリア182が設定されている状態であるとともに、Wレジスタ104aの値が「1」である状態、すなわち移動先ビットとして第1ビットが設定されている状態で、ステップS2207〜ステップS2211の処理を行う。
上述したとおり、データの移動先として第1退避エリア182の第0ビットが設定されている状態であるとともに移動元エリアとして設定値カウンタが設定されている状態でステップS2207〜ステップS2211の処理が実行されることにより、設定値カウンタにおける最上位ビット(第7ビット)のデータが第1退避エリア182の第0ビットにロードされる。また、データの移動先が第1退避エリア182の第1ビットに更新されるとともに、移動元エリアが第1特図保留数カウンタ118に更新される。ステップS2207〜ステップS2211の処理は、ステップS2210にて肯定判定が行われるまで、7回繰り返される。ステップS2207〜ステップS2211の処理が実行される度に、移動元エリアが設定値カウンタ→第1特図保留数カウンタ118→第2特図保留数カウンタ119→モードデータエリア→ラウンドカウンタ→当否データエリア158→振分データエリア162という順番で更新されるとともに、データの移動先が第1退避エリア182における第0ビット→第1ビット→第2ビット→第3ビット→第4ビット→第5ビット→第6ビットという順番で更新される。これにより、これらのカウンタ及びエリアにおける最上位ビット(第7ビット)のデータを第1退避エリア182において対応するビットに設定することができる。具体的には、設定値カウンタの最上位ビットが第0ビットに設定され、第1特図保留数カウンタ118の最上位ビットが第1ビットに設定され、第2特図保留数カウンタ119の最上位ビットが第2ビットに設定され、モードデータエリアの最上位ビットが第3ビットに設定され、ラウンドカウンタの最上位ビットが第4ビットに設定され、当否データエリア158の最上位ビットが第5ビットに設定され、振分データエリア162の最上位ビットが第6ビットに設定される。
HLレジスタ107に「945CH」が格納されている状態でステップS2208の処理が行われる場合、HLレジスタ107の値が2加算されて「945EH」に更新される。既に説明したとおり、通常復帰コマンド生成テーブル64v(図71)の「945EH」に対応するエリアには第1終了用データ(「0001H」)が設定されている。このため、ステップS2209にて否定判定が行われるとともにステップS2210にて肯定判定が行われて、ステップS2212に進む。
ステップS2212では、DEレジスタ106に特定制御用のワークエリア121における第2退避エリア183のアドレスを設定することにより移動先エリアを第2退避エリア183に更新する。その後、Wレジスタ104aの値を「0」クリアすることにより移動先ビットとして第0ビットが設定されている状態とする(ステップS2213)。これにより、データの移動先として第2退避エリア183の第0ビットが設定されている状態となる。
その後、HLレジスタ107の値を1加算して「945FH」に更新する(ステップS2214)。既に説明したとおり、通常復帰コマンド生成テーブル64v(図71)の「945FH」に対応するエリアには遊技回エリアのアドレスが設定されており、移動元エリアとして遊技回エリアが設定されている状態となる。その後、移動元エリアとして遊技回エリアが設定されている状態であるとともに、データの移動先として第2退避エリア183の第0ビットが設定されている状態で、ステップS2207に進む。
ステップS2207〜ステップS2211の処理は、ステップS2209にて肯定判定が行われるまで、3回繰り返される。ステップS2207〜ステップS2211の処理が実行される度に、通常復帰コマンド生成テーブル64v(図71)に基づいて、移動元エリアが遊技回エリア→特図特電タイマカウンタの下位エリア→特図特電タイマカウンタの上位エリアという順番で更新されるとともに、データの移動先が第2退避エリア183における第0ビット→第1ビット→第2ビットという順番で更新される。これにより、これらのカウンタ及びエリアにおける最上位ビット(第7ビット)のデータを第2退避エリア183において対応するビットに設定することができる。具体的には、遊技回エリアの最上位ビットが第0ビットに設定され、特図特電タイマカウンタの下位エリアの最上位ビットが第1ビットに設定され、特図特電タイマカウンタの上位エリアの最上位ビットが第2ビットに設定される。
HLレジスタ107に「9463H」が格納されている状態でステップS2208の処理が行われる場合、HLレジスタ107の値が2加算されて「9465H」に更新される。既に説明したとおり、通常復帰コマンド生成テーブル64v(図71)の「9465H」に対応するエリアには第2終了用データ(「0002H」)が設定されている。このため、ステップS2209にて肯定判定が行われて、ステップS2215に進む。ステップS2215では、通信用の通常復帰コマンドを送信待機バッファ175に設定する通常復帰コマンド設定処理を実行して、本復帰コマンド送信処理を終了する。
次に、主側CPU63にて実行される通常復帰コマンド設定処理について図72のフローチャートを参照しながら説明する。通常復帰コマンド設定処理は通常復帰コマンド送信処理(図70)のステップS2215にて実行される。なお、通常復帰コマンド設定処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
通常復帰コマンド設定処理では、まず送信待機バッファ175に対応する書き込みポインタ186の値を特定制御用のワークエリア121における先頭記憶エリアに記憶する(ステップS2301)。これにより、後述するステップS2317において、送信待機バッファ175にて通信用の通常復帰コマンドが設定されているエリアを主側CPU63にて把握可能とすることができる。
その後、HLレジスタ107の値を1加算する(ステップS2302)。既に説明したとおり、復帰コマンド送信処理(図70)のステップS2208にてHLレジスタ107に「9465H」が格納されている状態となる。ステップS2302では、HLレジスタ107に格納されているアドレスを「9466H」に更新する。既に説明したとおり、通常復帰コマンド生成テーブル64v(図71)において「9466H」に対応するエリアには通常復帰コマンドのコマンド識別データが設定されている。その後、送信待機バッファ175において書き込みポインタ186の値に対応する設定先エリアに当該コマンド識別データをセットする(ステップS2303)。既に説明したとおり、コマンド識別データの最上位ビット(第7ビット)には、ヘッダ識別ビットとして「1」が設定されている。これにより、音光側受信回路96にてヘッダHDとヘッダHD以外のフレームとを識別可能とすることができる。
その後、書き込みポインタ186の値を2加算することにより送信待機バッファ175における設定先エリアを次のエリアに更新する(ステップS2304)。その後、通常復帰コマンド生成テーブル64v(図71)の開始アドレスである「9450H」をHLレジスタ107にセットして(ステップS2305)、ステップS2306に進む。既に説明したとおり、通常復帰コマンド生成テーブル64vの「9450H」及び「9451H」には特定制御用のワークエリア121における設定値カウンタのアドレスが格納されている。HLレジスタ107に「9450H」をセットすることにより、移動元エリアとして設定値カウンタが設定されている状態となる。
ステップS2306〜ステップS2311の処理は、ステップS2311にて肯定判定が行われるまで7回繰り返される。移動元エリアとして設定値カウンタが設定されている状態で実行される1回目のステップS2306では、移動元エリアである設定値カウンタに格納されているデータを送信待機バッファ175において書き込みポインタ186の値に対応する設定先エリアにセットし(ステップS2306)、当該設定先エリアの最上位ビット(第7ビット)を「0」クリアする(ステップS2307)。
その後、書き込みポインタ186の値を2加算することにより送信待機バッファ175における設定先エリアを次のエリアに更新する(ステップS2308)。その後、HLレジスタ107の値を2加算してHLレジスタ107に格納されているアドレスを「9452H」に更新する(ステップS2309)。既に説明したとおり、通常復帰コマンド生成テーブル64v(図71)において「9452H」及び「9453H」のアドレスには第1特図保留数カウンタ118のアドレスが格納されている。これにより、移動元エリアとして第1特図保留数カウンタ118が設定されている状態となる。
その後、通常復帰コマンド生成テーブル64vにおいてHLレジスタ107に格納されているアドレスに対応するエリアに第2終了用データ(具体的には「0002H」)が設定されているか否かを判定する(ステップS2310)。上述したとおり、「9452H」には第2終了用データは設定されていないため、ステップS2310では否定判定を行い、ステップS2311に進む。ステップS2311では、通常復帰コマンド生成テーブル64vにおいてHLレジスタ107に格納されているアドレスに対応するエリアに第1終了用データ(具体的には「0001H」)が設定されているか否かを判定する。上述したとおり、「9452H」には第1終了用データは設定されていないため、ステップS2311では否定判定を行い、ステップS2306に進む。
ステップS2306〜ステップS2311の処理は、ステップS2311にて肯定判定が行われるまで7回繰り返される。移動元エリアとして設定値カウンタが設定されている状態で実行される1回目のステップS2306では、移動元エリアである設定値カウンタに格納されているデータを送信待機バッファ175において書き込みポインタ186の値に対応する設定先エリアにセットし(ステップS2306)、当該設定先エリアの最上位ビット(第7ビット)を「0」クリアする(ステップS2307)。
上述したとおり、移動元エリアとして設定値カウンタが設定されている状態でステップS2306〜ステップS2311の処理が実行されることにより、設定値カウンタに格納されているデータが送信待機バッファ175の設定先エリアにセットされるとともに、当該設定先エリアにおける最上位ビットが「0」クリアされる。また、移動元エリアが第1特図保留数カウンタ118に更新されるとともに、送信待機バッファ175における設定先エリアが次のエリアに更新される。上述したとおり、ステップS2306〜ステップS2311の処理は、ステップS2311にて肯定判定が行われるまで、7回繰り返される。ステップS2306〜ステップS2311の処理が実行される度に、通常復帰コマンド生成テーブル64v(図71)に基づいて、移動元エリアが設定値カウンタ→第1特図保留数カウンタ118→第2特図保留数カウンタ119→モードデータエリア→ラウンドカウンタ→当否データエリア158→振分データエリア162という順番で更新されるとともに、送信待機バッファ175における設定先エリアが順番に更新される。これにより、これらのカウンタ及びエリアの第0〜第6ビットに格納されているデータを送信待機バッファ175に設定することができる。
HLレジスタ107に「945CH」が格納されている状態でステップS2309の処理が行われる場合、HLレジスタ107の値が2加算されて「945EH」に更新される。既に説明したとおり、通常復帰コマンド生成テーブル64v(図71)の「945EH」に対応するエリアには第1終了用データ(「0001H」)が設定されている。このため、ステップS2311にて肯定判定が行われて、ステップS2312に進む。
ステップS2312では、特定制御用のワークエリア121における第1退避エリア182に格納されているデータを送信待機バッファ175において書き込みポインタ186の値に対応するエリアにセットする(ステップS2312)。これにより、第7データフレームFR7の次に第1最上位フレームSF1を設定することができる。
その後、書き込みポインタ186の値を1加算して送信待機バッファ175における設定先エリアを次のエリアに更新する(ステップS2313)。その後、HLレジスタ107の値を1加算して「945FH」に更新する(ステップS2314)。既に説明したとおり、通常復帰コマンド生成テーブル64v(図71))において「945FH」のアドレスには特定制御用のワークエリア121における遊技回エリアのアドレスが格納されている。HLレジスタ107に格納されているアドレスを「945FH」に更新することにより、移動元エリアとして遊技回エリアが設定されている状態となる。その後、ステップS2306に進み、ステップS2310にて肯定判定が行われるまで、ステップS2306〜ステップS2311の処理を繰り返し実行する。ステップS2306〜ステップS2311の処理は3回実行される。
移動元エリアとして遊技回エリアが設定されている状態でステップS2306〜ステップS2311の処理が実行されることにより、遊技回エリアに格納されているデータが送信待機バッファ175の設定先エリアにセットされるとともに、当該設定先エリアにおける最上位ビットが「0」クリアされる。また、移動元エリアが特図特電タイマカウンタの下位エリアに更新されるとともに、送信待機バッファ175における設定先エリアが次のエリアに更新される。ステップS2306〜ステップS2311の処理が実行される度に、通常復帰コマンド生成テーブル64v(図71)に基づいて、移動元エリアが遊技回エリア→特図特電タイマカウンタの下位エリア→特電タイマカウンタの上位エリアという順番で更新されるとともに、送信待機バッファ175における設定先エリアが順番に更新される。これにより、これらのカウンタ及びエリアの第0〜第6ビットに格納されているデータを送信待機バッファ175に設定することができる。
HLレジスタ107に「9463H」が格納されている状態でステップS2309の処理が行われる場合、HLレジスタ107の値が2加算されて「9465H」に更新される。既に説明したとおり、通常復帰コマンド生成テーブル64v(図71)の「9465H」に対応するエリアには第2終了用データ(「0002H」)が設定されている。このため、ステップS2310にて肯定判定が行われて、ステップS2315に進む。
ステップS2315では、特定制御用のワークエリア121における第2退避エリア183に格納されているデータを送信待機バッファ175において書き込みポインタ186の値に対応するエリアにセットする(ステップS2315)。これにより、第10データフレームFR10の次に第2最上位フレームSF2を設定することができる。
その後、書き込みポインタ186の値を1加算して送信待機バッファ175における設定先エリアを次のエリアに更新する(ステップS2316)。その後、主側ROM64に記憶されているフッタ識別データを送信待機バッファ175における設定先エリアにセットして(ステップS2317)、本通常復帰コマンド設定処理を終了する。ステップS2317では、第2最上位フレームSF2の次にフッタFTを設定する。また、ステップS2317では、送信待機バッファ175に格納されている通信用の通常復帰コマンドに含まれている「0」及び「1」のデータのうち「1」の総数が偶数であるか否かを判定し、通信用の通常復帰コマンドに含まれている「1」の総数が偶数ではない場合には、フッタFTの誤り検出ビットに「1」をセットする。主側CPU63は、ステップS2301にて先頭記憶エリアに記憶した最初の書き込みポインタ186の値と、現状の書き込みポインタ186の値とに基づいて、送信待機バッファ175において通信用の通常復帰コマンドが設定されているエリアを把握する。一方、通信用の通常復帰コマンドに含まれている「1」の総数が偶数である場合には、フッタFTの誤り検出ビットに「0」がセットされている状態を維持する。通信用の通常復帰コマンドに含まれている「1」の総数を偶数とすることにより、音光側受信回路96において通信エラーの発生を把握可能とすることができる。
次に、音光側CPU93にて実行されるコマンド受信対応処理について図73のフローチャートを参照しながら説明する。コマンド受信対応処理は音光側CPU93において4ミリ秒周期で定期的に実行される。
コマンド受信対応処理では、まず音光側受信回路96における受信後待機バッファ178にヘッダHDが格納されているか否かを判定する(ステップS2401)。ステップS2401では、受信後待機バッファ178において最上位ビット(第7ビット)に「1」がセットされているエリアが存在しているか否かを判定し、最上位ビットに「1」がセットされているエリアが存在している場合に肯定判定を行う。ステップS2401にて否定判定を行った場合には、そのまま本コマンド受信対応処理を終了する。
ステップS2401にて肯定判定を行った場合には、受信後待機バッファ178にフッタFTが格納されているか否かを判定する(ステップS2402)。ステップS2402では、受信後待機バッファ178においてフッタ識別データが設定されているエリアが存在しているか否かを判定し、フッタ識別データが設定されているエリアが存在している場合に肯定判定を行う。ステップS2402にて否定判定を行った場合には、そのまま本コマンド受信対応処理を終了する。受信後待機バッファ178にヘッダHDのみが格納されておりフッタFTが格納されていない場合(ステップS2401:YES、ステップS2402:NO)、すなわちコマンドの受信が完了していない場合には、ステップS2403以降の処理は実行されない。
ステップS2402にて肯定判定を行った場合、すなわち受信後待機バッファ178にコマンドが格納されている場合には、音光側RAM95におけるコマンド格納バッファ179に当該コマンドを格納可能な空きエリアが存在しているか否かを判定する(ステップS2403)。コマンド格納バッファ179に当該コマンドを格納可能な空きエリアが存在している場合(ステップS2403:YES)には、受信後待機バッファ178に格納されているコマンドのデータ量が3バイト以上であるか否かを判定する(ステップS2404)。
受信後待機バッファ178に格納されているコマンドのデータ量が3バイト以上である場合(ステップS2404:YES)、すなわち受信後待機バッファ178に格納されているコマンドが1つ以上のデータフレームFRmを含む通信用のコマンドである場合には、音光側RAM95における変換前エリア184及び変換後エリア185を「0」クリアし(ステップS2405)、音光側RAM95における第1最上位カウンタ188及び第2最上位カウンタ189を「0」クリアする(ステップS2406)。既に説明したとおり、第1最上位カウンタ188は、変換前エリア184において第1最上位フレームSF1が格納されているエリアRAn(nは3〜9のいずれかの整数)を音光側CPU93にて把握可能とするカウンタであるとともに、第2最上位カウンタ189は、変換前エリア184において第2最上位フレームSF2が格納されているエリアRAm(mは11〜13のいずれかの整数)を音光側CPU93にて把握可能とするカウンタである。
その後、受信後待機バッファ178に格納されている通信用のコマンドを変換前エリア184に読み出す(ステップS2407)。ステップS2407では、受信後待機バッファ178に格納されている通信用のコマンドのバイト数が「n+3」(nは1〜7のいずれかの整数)である場合、変換前エリア184の第1エリアRA1〜第(n+3)エリアRA(n+3)に、ヘッダHD→第1データフレームFR1〜第nデータフレームFRn→第1最上位フレームSF1→フッタFTの順番でフレームが設定される。また、ステップS2407では、受信後待機バッファ178に格納されている通信用のコマンドのバイト数が「m+4」(mは8〜10のいずれかの整数)である場合、変換前エリア184の第1エリアRA1〜第(m+4)エリアRA(m+4)に、ヘッダHD→第1〜第7データフレームFR1〜FR7→第1最上位フレームSF1→第8データフレームFR8〜第mデータフレームFRm→第2最上位フレームSF2→フッタFTの順番でフレームが設定される。その後、第1コマンド変換処理を実行する(ステップS2408)。第1コマンド変換処理では、変換前エリア184に格納されている通信用のコマンドを変換後エリア185において変換後コマンドに変換する。なお、第1コマンド変換処理の詳細については後述する。
ステップS2404にて否定判定を行った場合、又はステップS2408の処理を実行した場合には、音光側RAM95に設けられたコマンド格納バッファ179の書き込みポインタ187の値に基づいて書き込み先を把握し(ステップS2409)、コマンドの書き込み処理を実行する(ステップS2410)。書き込みポインタ187は、コマンド格納バッファ179においてコマンドの書き込み先を音光側CPU93にて把握可能とするポインタである。変換後エリア185にコマンドが格納されていない場合、すなわち受信後待機バッファ178に格納されていたコマンドが2バイトのコマンドであった場合、ステップS2410では受信後待機バッファ178に格納されていた2バイトのコマンドをコマンド格納バッファ179に格納する。また、変換後エリア185にコマンドが格納されている場合、すなわち受信後待機バッファ178に格納されていたコマンドが通信用のコマンドであった場合、ステップS2410では変換後エリア185に格納されている変換後コマンドをコマンド格納バッファ179に格納する。
その後、コマンド格納バッファ179の書き込みポインタ187を更新する(ステップS2411)。ステップS2411では、書き込みポインタ187の値に対してステップS2410にてコマンド格納バッファ179に書き込んだコマンドのバイト数に対応する値を加算し、当該加算後における書き込みポインタ187の値が当該書き込みポインタ187の最大値を超えた場合には、当該最大値から「1」を減算して得られる値を当該書き込みポインタ187の値から減算する。これにより、コマンド格納バッファ179における次の書き込み先を音光側CPU93にて把握可能とすることができる。
その後、受信後待機バッファ178のクリア処理を実行する(ステップS2412)。当該クリア処理では、受信後待機バッファ178においてコマンドが格納されていたエリアを「0」クリアする。その後、ステップS2412にて受信後待機バッファ178のクリア処理を行った後の受信後待機バッファ178にヘッダHDが格納されているか否かを判定し(ステップS2413)、ヘッダHDが格納されていない場合(ステップS2413:NO)には、そのまま本コマンド受信対応処理を終了する。
ステップS2413にて肯定判定を行った場合には、受信後待機バッファ178にフッタFTが格納されているか否かを判定し(ステップS2414)、フッタFTが格納されていない場合(ステップS2414:NO)には、そのまま本コマンド受信対応処理を終了する。一方、受信後待機バッファ178にヘッダHD及びフッタFTが格納されている場合(ステップS2413:YES、ステップS2414:YES)、すなわち受信後待機バッファ178に他のコマンドが格納されている場合には、ステップS2403に戻り、当該コマンドについてステップS2403〜ステップS2414の処理を実行する。
次に、音光側CPU93にて実行される第1コマンド変換処理について図74のフローチャートを参照しながら説明する。第1コマンド変換処理はコマンド受信対応処理(図73)のステップS2408にて実行される。
第1コマンド変換処理では、まず変換前エリア184においてフッタ識別データが格納されているエリアRAn(nは4〜14のいずれかの整数)を把握することにより、フッタFTが格納されているエリアRAnを把握する(ステップS2501)。その後、ステップS2501にて把握したフッタFTが格納されているエリアRAnに基づいて、変換前エリア184に格納されている通信用のコマンドのバイト数が11バイト以上であるか否かを判定する(ステップS2502)。ステップS2502では、第4〜第10エリアRA4〜RA10のいずれかにフッタFTが格納されている場合に否定判定を行うとともに、第11〜第14エリアRA11〜RA14のいずれかにフッタFTが格納されている場合に肯定判定を行う。
ステップS2502にて否定判定を行った場合、すなわち通信用のコマンドに第1最上位フレームSF1のみが設定されている場合には、変換前エリア184においてフッタFTが格納されているエリアRAn(nは4〜10のいずれかの整数)の1つ前のエリアRA(n−1)に対応する値を音光側RAM95における第1最上位カウンタ188にセットする(ステップS2503)。ステップS2503では、フッタFTが第nエリアRAnに設定されている場合、第1最上位カウンタ188に「n−1」をセットする。これにより、変換前エリア184における第1最上位フレームSF1の位置を音光側CPU93にて把握可能とすることができる。また、ステップS2503では、第2最上位カウンタ189の値が「0」である状態が維持される。これにより、変換前エリア184に格納されている通信用のコマンドに第2最上位フレームSF2が含まれていないことを音光側CPU93にて把握可能とすることができる。
一方、ステップS2502にて肯定判定を行った場合、すなわち通信用のコマンドに第1最上位フレームSF1及び第2最上位フレームSF2が設定されている場合には、音光側RAM95における第1最上位カウンタ188に「9」をセットする(ステップS2504)。これにより、第1最上位フレームSF1が変換前エリア184の第9エリアRA9に格納されていることを音光側CPU93にて把握可能とすることができる。その後、変換前エリア184においてフッタFTが格納されているエリアRAm(mは11〜14のいずれかの整数)の1つ前のエリアRA(m−1)に対応する値を音光側RAM95における第2最上位カウンタ189にセットする(ステップS2505)。ステップS2505では、フッタFTが第mエリアRAmに設定されている場合、第2最上位カウンタ189に「m−1」をセットする。これにより、変換前エリア184における第2最上位フレームSF2の位置を音光側CPU93にて把握可能とすることができる。
ステップS2503の処理を行った場合、又はステップS2505の処理を行った場合には、変換前エリア184に格納されているコマンドのバイト数に対応する値を音光側RAM95に設けられた移動回数カウンタにセットする(ステップS2506)。移動回数カウンタは、変換前エリア184に格納されている通信用のコマンドを変換後コマンドに変換するために、変換前エリア184に格納されている情報を変換後エリア185にロードする回数を音光側CPU93にて把握可能とするカウンタである。ステップS2506では、ステップS2501にて把握した変換前エリア184におけるフッタFTの位置に基づいて、変換前エリア184に格納されている通信用のコマンドのバイト数を把握する。その後、後述するステップS2509における情報の移動元エリアとして変換前エリア184の第1エリアRA1をセットし(ステップS2507)、後述するステップS2509における情報の移動先エリアとして変換後エリア185の第1エリアRB1をセットする(ステップS2508)。
その後、移動元エリア(第1エリアRA1)に格納されているデータを移動先エリア(第1エリアRB1)にロードする(ステップS2509)。その後、移動回数カウンタの値を1減算し(ステップS2510)、当該1減算後の値が「0」であるか否かを判定する(ステップS2511)。ステップS2511にて否定判定を行った場合には、移動元エリアを更新する(ステップS2512)。ステップS2512では、変換前エリア184における第1エリアRA1→第2エリアRA2→…→第8エリアRA8→第9エリアRA9の順番で、移動元エリアを更新する。その後、移動先エリアを更新する(ステップS2513)。ステップS2513では、変換後エリア185における第1エリアRB1→第2エリアRB2→…→第8エリアRB8→第9エリアRB9の順番で、移動先エリアを更新する。
その後、ステップS2513にて更新した後の移動元エリアが変換前エリア184において第1最上位フレームSF1又は第2最上位フレームSF2であるか否かを判定する(ステップS2514)。ステップS2514では、音光側RAM95における第1最上位カウンタ188の値に基づいて変換前エリア184における第1最上位フレームSF1の位置を把握する。また、音光側RAM95における第2最上位カウンタ189の値に基づいて変換前エリア184における第2最上位フレームSF2の有無及び当該第2最上位フレームSF2の位置を把握する。そして、ステップS2513にて更新した後の移動元エリアが第1最上位フレームSF1である場合、又は当該移動元エリアが第2最上位フレームSF2である場合に肯定判定を行う。
ステップS2514にて肯定判定を行った場合には、移動元エリアを変換前エリア184における第1最上位フレームSF1又は第2最上位フレームSF2の次のエリアに更新する(ステップS2515)。ステップS2515では、移動元エリアが変換前エリア184の第1最上位フレームSF1である場合には移動先エリアを当該第1最上位フレームSF1の次のエリアに更新するとともに、移動先エリアが変換前エリア184の第2最上位フレームSF2である場合には移動元エリアを当該第2最上位フレームSF2の次のエリアに更新する。その後、移動回数カウンタの値を1減算する(ステップS2516)。
ステップS2514にて否定判定を行った場合、又はステップS2516の処理を行った場合には、ステップS2509に戻り、ステップS2511にて肯定判定を行うまでステップS2509〜ステップS2516の処理を実行する。これにより、変換前エリア184に格納されているヘッダHD、データフレームFRm、最上位フレームSF1,SF2及びフッタFTのうち最上位フレームSF1,SF2以外の各データを変換後エリア185の対応するエリアにロードすることができる。
ステップS2511にて肯定判定を行った場合には、第2コマンド変換処理を実行して(ステップS2517)、本第1コマンド変換処理を終了する。ステップS2517における第2コマンド変換処理では、変換前エリア184の最上位フレームSF1,SF2に格納されている情報を変換後エリア185の対応するデータフレームFRmにおける最上位ビット(第7ビット)にロードする。図75は第2コマンド変換処理を示すフローチャートである。
第2コマンド変換処理では、まず音光側RAM95における変換前エリア184に格納されているコマンドのバイト数に対応する値を音光側RAM95における移動回数カウンタにセットする(ステップS2601)。ステップS2601では、変換前エリア184においてフッタFTが格納されているエリアRAn(nは4〜14のいずれかの整数)を把握し、当該エリアRAnに対応する値を移動回数カウンタにセットする。
その後、移動回数カウンタから「2」を減算する(ステップS2602)。これにより、移動回数カウンタには、変換前エリア184に格納されている通信用のコマンドに含まれているフレームのうちヘッダHD及びフッタFTを除くフレームの数が設定されている状態となる。
その後、音光側RAM95における第2最上位カウンタ189の値が「0」であるか否かを判定する(ステップS2603)。既に説明したとおり、変換前エリア184に格納されている通信用のコマンドに第1最上位フレームSF1のみが含まれている場合、音光側RAM95における第2最上位カウンタ189の値は「0」である。一方、当該通信用のコマンドに第1最上位フレームSF1及び第2最上位フレームSF2が含まれている場合、第2最上位カウンタ189の値は「11」〜「13」のいずれかである。ステップS2603にて肯定判定を行った場合、すなわち変換前エリア184に格納されている通信用のコマンドに第1最上位フレームSF1のみが含まれている場合には、音光側RAM95における移動回数カウンタの値を1減算する(ステップS2604)。一方、ステップS2604にて否定判定を行った場合、すなわち変換前エリア184に格納されている通信用のコマンドに第1最上位フレームSF1及び第2最上位フレームSF2が含まれている場合には、音光側RAM95における移動回数カウンタの値を2減算する(ステップS2605)。ステップS2604又はステップS2605の処理を実行することにより、変換前エリア184に格納されている通信用のコマンドにおいてヘッダHD、フッタFT及び最上位フレームSFp(pは1又は2)を除くデータフレームFRmの数に対応する値が移動回数カウンタにセットされている状態とすることができる。
ステップS2604の処理を行った場合、又はステップS2605の処理を行った場合には、音光側RAM95における第1最上位カウンタ188の値に基づいて変換前エリア184において第1最上位フレームSF1が格納されているエリアRAn(nは4〜9のいずれかの整数)を把握し、後述するステップS2609における情報の移動元エリアとして当該エリアRAnを設定する(ステップS2606)。その後、後述するステップS2609における情報の移動元ビットとして当該第1最上位フレームSF1の第0ビットを設定する(ステップS2607)。その後、後述するステップS2609における情報の移動先エリアとして変換後エリア185の第2エリアRB2を設定する(ステップS2608)。図67を参照しながら既に説明したとおり、第2エリアRB2は変換後コマンドの第1データフレームFR1が設定されるエリアである。
その後、移動元エリアにおける移動元ビットに格納されている「0」又は「1」の情報を移動先エリアの最上位ビット(第7ビット)にロードし(ステップS2609)、移動回数カウンタを1減算する(ステップS2610)。その後、当該1減算後の値が「0」であるか否かを判定し(ステップS2611)、移動回数カウンタの値が「0」ではない場合(ステップS2611:NO)には、移動元ビットを更新する(ステップS2612)。ステップS2612では、第0ビット→第1ビット→…→第7ビット→第8ビットの順番で、移動元ビットを更新する。その後、移動先エリアを更新する(ステップS2613)。ステップS2613では、移動先エリアを変換後エリア185における現状の移動先エリアの次のエリアに更新する。
その後、ステップS2612にて更新した後の移動元ビットが第8ビットであるか否かを判定する(ステップS2614)。変換前エリア184に格納されている通信用のコマンドに含まれている最上位フレームSFp(pは1又は2)が第1最上位フレームSF1のみである場合には、ステップS2614にて肯定判定が行われることはなく、ステップS2609〜ステップS2614の処理が繰り返された後にステップS2611にて肯定判定が行われる。一方、変換前エリア184に格納されている通信用のコマンドに第1最上位フレームSF1及び第2最上位フレームSF2が含まれている場合には、ステップS2609〜ステップS2614の処理が繰り返された後、ステップS2612にて更新した後の移動元ビットが第8ビットとなることによりステップS2614にて肯定判定が行われる。
ステップS2614にて肯定判定を行った場合には、音光側RAM95における第2最上位カウンタ189の値に基づいて変換前エリア184において第2最上位フレームSF2が格納されているエリアRAm(mは11〜13のいずれかの整数)を把握し、情報の移動元エリアとして当該エリアRAmを設定する(ステップS2615)。その後、ステップS2609に戻り、移動回数カウンタの値が「0」となるまでステップS2609〜ステップS2615の処理を繰り返し実行する。これにより、変換前エリア184における最上位フレームSFp(pは1又は2)の各ビットに格納されている情報を変換後エリア185の対応するエリアにおける最上位ビット(第7ビット)にロードすることができるとともに、変換後エリア185に変換前のコマンドが格納されている状態とすることができる。移動回数カウンタの値が「0」となった場合(ステップS2611:YES)には、本第2コマンド変換処理を終了する。
以上詳述した本実施形態によれば、以下の優れた効果を奏する。
IYレジスタ109には、特定制御用の処理であるメイン処理(図15)の開始時に特定制御用基準アドレスである「0000H」が格納される。これにより、第1LDY実行回路156による第1LDY命令において、「0000H」〜「00FFH」のいずれかのアドレス指定を行う場合に当該アドレス指定のデータを2バイトのアドレス情報における下位1バイトのみとすることが可能となる。よって、プログラムのデータ容量を低減することができる。
IYレジスタ109には、非特定制御用の処理である管理実行処理(図57)において非特定制御用のワークエリア122のアドレスを指定する際に利用される非特定制御用基準アドレスとして「0300H」がセットされる。これにより、非特定制御用の処理において第1LDY命令及び第2LDY命令を実行する場合に当該非特定制御用基準アドレスを利用可能となる。
IYレジスタ109には、非特定制御用の処理である管理実行処理(図57)が終了した場合、特定制御用基準アドレスとして「0000H」をセットされる。これにより、特定制御用の処理において第1LDY命令及び第2LDY命令を実行する場合に当該特定制御用基準アドレスを利用可能となる。
第1LDY命令の機械語のデータ容量は全体で3バイトである。一方、LD命令の機械語のデータ容量は全体で4バイトである。このため、IYレジスタ109に「0000H」が格納されている状態において、主側ROM64に記憶されているデータテーブルのアドレスをBCレジスタ105などのペアレジスタにロードする場合には、LD命令に代えて第1LDY命令を使用することにより、「転送元」のデータを「転送先」にロードする命令の機械語を1バイト低減することができる。これにより、主側ROM64におけるプログラムのデータ容量を低減することができる。
大当たり種別カウンタC2及び大当たり種別用最大値カウンタCN2のように特定制御用の処理を実行するためにプログラムに出現する回数が多いカウンタ等の記憶エリアは特性制御用のワークエリア121においてLDY命令(第1LDY命令及び第2LDY命令)の対象であるアドレス範囲(「0000H」〜「00FFH」)に設定されている一方、変動用乱数カウンタのように特定制御用の処理を実行するためにプログラムに出現する回数が少ないカウンタ等の記憶エリアは特性制御用のワークエリア121においてLDY命令(第1LDY命令及び第2LDY命令)の対象ではないアドレス範囲(「0100H」〜「02FFH」)に設定されている。これにより、特定制御用の処理を実行するためのプログラムのデータ容量が低減されている。
1バイトのアドレスデータを設定してアドレス指定を行う第1LDY命令を利用してBCレジスタ105に大当たり種別用最大値カウンタCN2のアドレスデータ(2バイト)を設定する構成であることにより、2バイトのアドレスデータを設定してアドレス指定を行うLD命令を利用してBCレジスタ105に当該アドレスデータを設定する構成と比較して、最大値設定開始処理(図24(b))を実行するためのプログラムのデータ容量を低減することができる。
1バイトのアドレスデータを設定してアドレス指定を行う第1LDY命令を利用してHLレジスタ107に大当たり種別カウンタC2のアドレスデータ(2バイト)をロードする構成であることにより、2バイトのアドレスデータを設定してアドレス指定を行うLD命令を利用してHLレジスタ107に大当たり種別カウンタC2のアドレスデータをロードする構成と比較して、更新開始設定処理(図27(b))を実行するためのプログラムのデータ容量を低減することができる。
1バイトのアドレスデータを設定してアドレス指定を行う第1LDY命令を利用してBCレジスタ105に大当たり種別用最大値カウンタCN2のアドレスデータ(2バイト)をロードする構成であることにより、2バイトのアドレスデータを設定してアドレス指定を行うLD命令を利用してBCレジスタ105に大当たり種別用最大値カウンタCN2のアドレスデータをロードする構成と比較して、更新開始設定処理(図27(b))を実行するためのプログラムのデータ容量を低減することができる。
第1LDY命令を利用する場合には当該第1LDY命令の命令コードに含まれるアドレスデータを2バイトのアドレスデータにおける下位1バイトのみとすることができる。一方、LD命令を利用する場合には当該LD命令の命令コードに含まれるアドレスデータを2バイトのアドレスデータの全体とする必要がある。第1LDY命令を利用してHLレジスタ107に第1一般入賞カウンタ171a〜173aの下位エリアに対応するアドレスをセットする構成とすることにより、LD命令を利用してHLレジスタ107に当該アドレスをセットする構成と比較して、プログラムのデータ容量を低減することができる。
主側ROM64においてデータテーブルが記憶されているエリアに対応するアドレスの上位4ビットは「9H」で共通している。主側CPU63への動作電力の供給開始時に実行されるメイン処理(図15)において、TPレジスタ111にデータテーブルの基準アドレスである「9000H」が格納される。これにより、LDT実行回路149によるLDT命令において、「9000H」〜「94FFH」,「9903H」〜「9BFFH」のいずれかのアドレス指定を行う場合に当該アドレス指定のデータを2バイトのアドレス情報における下位12ビットのみとすることが可能となる。よって、プログラムのデータ容量を低減することができる。また、LDB実行回路157によるLDB命令及びLDB更新実行回路161におけるLDB更新命令において、TPレジスタ111に格納されているデータテーブルの基準アドレスを利用可能とすることができる。
LDT命令の機械語のデータ容量は全体で2バイトである。一方、LD命令の機械語のデータ容量は全体で4バイトである。このため、TPレジスタ111に「9000H」が格納されている状態において、主側ROM64に記憶されているデータテーブルのアドレスをHLレジスタ107などのペアレジスタにロードする場合には、LD命令に代えてLDT命令を使用することにより、「転送元」のデータを「転送先」にロードする命令の機械語を2バイト低減することができる。これにより、主側ROM64におけるプログラムのデータ容量を低減することができる。
LDT命令を利用してHLレジスタ107に第1初期化テーブル64kの開始アドレスを設定する構成であることにより、LD命令を利用してHLレジスタ107に当該開始アドレスを設定する構成と比較して、電源投入設定処理(図17(c))を実行するためのプログラムのデータ容量を低減することができる。
LDT命令を利用してHLレジスタ107に乱数最大値テーブル64pの開始アドレスを設定する構成であることにより、LD命令を利用してHLレジスタ107に当該開始アドレスを設定する構成と比較して、最大値設定開始処理(図24(b))を実行するためのプログラムのデータ容量を低減することができる。
12ビットの数値情報を設定してアドレス指定を行うLDT命令を利用してHLレジスタ107に第2初期化テーブル64mの開始アドレスをロードする構成であることにより、2バイトの数値情報を設定してアドレス指定を行うLD命令を利用してHLレジスタ107に当該開始アドレスをロードする構成と比較して、不正検知用初期化処理(図29(b))を実行するためのプログラムのデータ容量を低減することができる。
電源投入設定処理(図17(c))において「0」クリア及び初期設定が行われる記憶エリアを特定するためのアドレスの上位1バイトは「00H」で共通している。電源投入設定処理では、Dレジスタ106aに当該「00H」を設定するとともに、当該アドレスの下位1バイトをデータテーブルから読み出してEレジスタ106bに設定することによりDEレジスタ106に当該アドレスの全体(2バイト)が格納されている状態とする。そして、DEレジスタ106に格納されているアドレス情報を用いて「0」クリア及び初期設定を行うエリアを指定する。これにより、アドレス指定のために主側ROM64に記憶しておくデータのデータ容量を低減することができる。
事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して不正電波検知カウンタ133のアドレス指定を行う構成とすることにより、第1初期化テーブル64kに記憶するアドレスデータを不正電波検知カウンタ133のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、第1初期化テーブル64kに不正電波検知カウンタ133におけるアドレスデータの全体(2バイト)を記憶する構成と比較して、第1初期化テーブル64kのデータ容量を低減することができる。また、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して不正磁気検知カウンタ134のアドレス指定を行う構成とすることにより、第1初期化テーブル64kに記憶するアドレスデータを不正磁気検知カウンタ134のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、第1初期化テーブル64kに不正磁気検知カウンタ134のアドレスデータの全体(2バイト)を記憶する構成と比較して、第1初期化テーブル64kのデータ容量を低減することができる。さらにまた、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して異常振動検知カウンタ135のアドレス指定を行う構成とすることにより、第1初期化テーブル64kに記憶するアドレスデータを異常振動検知カウンタ135のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、第1初期化テーブル64kに異常振動検知カウンタ135のアドレスデータの全体(2バイト)を記憶する構成と比較して、第1初期化テーブル64kのデータ容量を低減することができる。
事前にDレジスタ106aに格納されている共通の上位1バイト(「00H」)を利用して停電エリア131のアドレス指定を行う構成とすることにより、第2初期化テーブル64mに記憶するアドレスデータを停電エリア131のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、第2初期化テーブル64mに停電エリア131のアドレスデータの全体(2バイト)を記憶する構成と比較して、第2初期化テーブル64mのデータ容量を低減することができる。また、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して不正監視タイマカウンタ132の下位エリアのアドレス指定を行う構成とすることにより、第2初期化テーブル64mに記憶するアドレスデータを不正監視タイマカウンタ132の下位エリアのアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、第2初期化テーブル64mに不正監視タイマカウンタ132の下位エリアにおけるアドレスデータの全体(2バイト)を記憶する構成と比較して、第2初期化テーブル64mのデータ容量を低減することができる。さらにまた、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して不正監視タイマカウンタ132の上位エリアのアドレス指定を行う構成とすることにより、第2初期化テーブル64mに記憶するアドレスデータを不正監視タイマカウンタ132の上位エリアのアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、第2初期化テーブル64mに不正監視タイマカウンタ132の上位エリアにおけるアドレスデータの全体(2バイト)を記憶する構成と比較して、第2初期化テーブル64mのデータ容量を低減することができる。
LDT命令を利用してHLレジスタ107にクリア時設定テーブル64nの開始アドレスを設定する構成であることにより、LD命令を利用してHLレジスタ107に当該開始アドレスを設定する構成と比較して、クリア時設定処理(図22(b))を実行するためのプログラムのデータ容量を低減することができる。
事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用してセキュリティ信号エリア153のアドレス指定を行う構成とすることにより、クリア時設定テーブル64nに記憶するアドレスデータをセキュリティ信号エリア153のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、クリア時設定テーブル64nにセキュリティ信号エリア153のアドレスデータの全体(2バイト)を記憶する構成と比較して、クリア時設定テーブル64nのデータ容量を低減することができる。また、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して第1特図表示カウンタ154のアドレス指定を行う構成とすることにより、クリア時設定テーブル64nに記憶するアドレスデータを第1特図表示カウンタ154のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、クリア時設定テーブル64nに第1特図表示カウンタ154のアドレスデータの全体(2バイト)を記憶する構成と比較して、クリア時設定テーブル64nのデータ容量を低減することができる。さらにまた、事前にDレジスタ106aに格納されている共通の上位1バイトのデータ(「00H」)を利用して第2特図表示カウンタ155のアドレス指定を行う構成とすることにより、クリア時設定テーブル64nに記憶しておくアドレスデータを第2特図表示カウンタ155のアドレスデータ(2バイト)における下位1バイトのみとすることができる。このため、クリア時設定テーブル64nに第2特図表示カウンタ155のアドレスデータの全体(2バイト)を記憶しておく構成と比較して、クリア時設定テーブル64nのデータ容量を低減することができる。
LDB命令を利用することにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位3ビットに対応する取得開始ビット目を特定する処理と、取得開始アドレスの取得開始ビット目から取得ビット数のデータを「転送先」のレジスタにロードする処理と、「転送先」のレジスタのうちロードされたデータよりも上位側に存在するビットを「0」でマスクする処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
LDB命令を利用して特図特電アドレステーブル64qから取得した開始アドレスの下位12ビットをHLレジスタ107にロードする構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位3ビットに対応する取得開始ビット目を特定する処理と、特図特電アドレステーブル64qから取得した開始アドレスの下位12ビットをHLレジスタ107の下位12ビットにロードする処理と、HLレジスタ107の上位4ビットを「0」でマスクする処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
LDB命令を利用することにより、特図特電アドレステーブル64qから開始アドレスSA0〜SA6の下位12ビットをHLレジスタ107にロードすることができる。また、当該LDB命令の実行後にHLレジスタ107の値に対して開始アドレスSA0〜SA6に共通する上位4ビットに対応する「9000H」を加算することにより、HLレジスタ107に開始アドレスSA0〜SA6の全体を取得することができる。このため、特図特電アドレステーブル64qに設定するアドレスデータを開始アドレスSA0〜SA6の下位12ビットのみとすることができる。これにより、特図特電アドレステーブル64qに2バイトの開始アドレスSA0〜SA6の全体を設定する構成と比較して、主側ROM64における特図特電アドレステーブル64qのデータ容量を低減することができる。
LDB命令を利用して変動開始用テーブル64rから取得した開始アドレスの下位12ビットをHLレジスタ107にロードする構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位3ビットに対応する取得開始ビット目を特定する処理と、変動開始用テーブル64rから取得した開始アドレスSBnの下位12ビットをHLレジスタ107の下位12ビットにロードする処理と、当該HLレジスタ107の上位4ビットを「0」でマスクする処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
LDB命令を利用して保留表示データテーブル64sから取得した保留表示データHRnの下位4ビットをWレジスタ104aの下位4ビットにロードする構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位3ビットに対応する取得開始ビット目を特定する処理と、保留表示データテーブル64sから取得した保留表示データHRnの下位4ビットをWレジスタ104aの下位4ビットにロードする処理と、当該Wレジスタ104aの上位4ビットを「0」でマスクする処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
LDB命令を利用することにより、保留表示データHRnの下位4ビットをWレジスタ104aの下位4ビットにロードする処理と、当該Wレジスタ104aの上位4ビットを「0」でマスクする処理と、を一命令で実行することができるため、これらの処理を実行するために複数の命令が設定されている構成と比較して、保留表示データ取得実行処理を実行するためのプログラムの構成を簡素化することができるとともに、当該プログラムの主側ROM64におけるデータ容量を低減することができる。
変動開始用テーブル64rには、0〜23の変動種別番号に対応する変動パターンテーブルの開始アドレスSB0〜SB23における下位12ビットが設定されている。変動開始用テーブル64rは、2つの開始アドレスSBnの下位12ビットが3つの連続するアドレスに対応するエリアに設定されているデータ構成である。変動開始用テーブル64rにおいて、24個の開始アドレスSB0〜SB23の下位12ビットは合計36バイトの記憶エリアに設定されている。これに対して、1つの開始アドレスSBn(nは0〜23の整数)の全体(2バイト)が2つの連続するアドレスに対応するエリアに記憶されているデータ構成とすると、24個の開始アドレスSB0〜SB23が設定されている変動開始用テーブル64rを記憶するために主側ROM64において48バイトの記憶エリアが必要となる。このように、2つの開始アドレスSBnの下位12ビットが3つの連続するアドレスに対応するエリアに設定されているデータ構成とすることにより、主側ROM64における変動開始用テーブル64rのデータ容量を低減することができる。
LDB命令を利用することにより、変動開始用テーブル64rから開始アドレスSB0〜SB23の下位12ビットを取得することができる。また、当該LDB命令の実行後に当該下位12ビットに対して開始アドレスSB0〜SB23に共通の上位4ビットに対応する「9000H」を加算することにより、開始アドレスSB0〜SB23の全体を取得することができる。このため、変動開始用テーブル64rに設定するアドレスデータを開始アドレスSB0〜SB23の下位12ビットのみとすることができる。これにより、変動開始用テーブル64rに2バイトの開始アドレスSB0〜SB23の全体を設定する構成と比較して、主側ROM64における変動開始用テーブル64rのデータ容量を低減することができる。
保留表示データテーブル64sにおいて5つの保留表示データHR0〜HR4の下位4ビットは、主側ROM64において合計3バイトのエリアに設定されている。これに対して、1バイトの保留表示データHR0〜HR4の全体を保留表示データテーブル64sに記憶しておく構成とすると、5つの保留表示データHR0〜HR4を設定するために合計5バイトのエリアが必要となる。このように、5つの保留表示データHR0〜HR4の下位4ビットのみが保留表示データテーブル64sに設定されているデータ構成であることにより、主側ROM64において保留表示データテーブル64sを記憶しておくためのデータ容量が低減されている。
LDB命令を利用することにより、保留表示データテーブル64sから保留表示データHRnの下位4ビットをWレジスタ104aの下位4ビットに取得するとともに、当該Wレジスタ104aの上位4ビットを「0」でマスクして保留表示データHRnの全体を取得することができる。このため、保留表示データテーブル64sに設定する保留表示データHRnを保留表示データHRnの下位4ビットのみとすることができる。これにより、保留表示データテーブル64sに1バイトの保留表示データHRnの全体を設定する構成と比較して、主側ROM64における保留表示データテーブル64sのデータ容量を低減することができる。
LD更新命令を利用することにより、データをロードする処理と、当該データのロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、を一命令で実行することができる。このため、データをロードするためのLD命令及び当該データのロード後にHLレジスタ107の値を1加算する命令が設定されている構成と比較して、データをロードするとともに当該データのロード後にアドレスを更新するためのプログラムのデータ容量を低減することができる。
LD更新命令を利用することにより、第1初期化テーブル64kの第2エリアに設定されているデータをEレジスタ106bにロードする処理と、HLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、を一命令で実行することができる。このため、これら2つの処理を実行するために複数の命令をプログラムに設定する構成と比較して、データ設定実行処理を実行するためのプログラムのデータ容量を低減することができる。
LD更新命令を利用することにより、乱数最大値テーブル64pにおいて設定対象として選択されている最大値データをAレジスタ104bにロードする処理と、当該最大値データのロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、を一命令で実行することができる。このため、これら2つの処理を実行するために複数の命令をプログラムに設定する構成と比較して、乱数最大値設定処理を実行するためのプログラムのデータ容量を低減することができる。
LDH更新命令を使用する構成とすることにより、主側ROM64の1バイトのエリアにおける上位4ビットのデータと下位4ビットのデータとを異なる汎用レジスタに読み出すことができるとともに、データが読み出された各汎用レジスタにおける上位4ビットを「0」でマスクすることができる。
LDH更新命令を使用する構成とすることにより、「転送元」のHLレジスタ107に格納されているアドレスに対応するエリアにおける上位4ビットのデータを「転送先」に設定されているWAレジスタ104のうち一方の汎用レジスタ(Wレジスタ104a)の下位4ビットにロードするとともに当該汎用レジスタの上位4ビットを「0」でマスクする処理と、当該エリアにおける上位4ビットのデータを「転送先」に設定されているWAレジスタ104のうち他方の汎用レジスタ(Aレジスタ104b)の下位4ビットにロードするとともに当該汎用レジスタの上位4ビットを「0」でマスクする処理と、これらの処理の実行後に「転送元」のHLレジスタ107に格納されているアドレスに「1」を加算して当該アドレスを更新する処理と、を一命令で実行することができる。このため、これら3つの処理を実行するために複数の命令をプログラムに設定する構成と比較して、プログラムの構成を簡素化することができるとともに、プログラムのデータ容量を低減することができる。
LDH更新命令を利用することにより、第1初期化テーブル64kにおける第1エリアの上位4ビットに設定されているデータをWレジスタ104aの下位4ビットに設定するとともに当該Wレジスタ104aの上位4ビットを「0」でマスクする処理と、第1エリアの下位4ビットに設定されているデータをAレジスタ104bの下位4ビットに設定するとともに当該Aレジスタ104bの上位4ビットを「0」でマスクする処理と、HLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、を一命令で実行することができる。このため、これら3つの処理を実行するために複数の命令をプログラムに設定する構成と比較して、データ設定実行処理を実行するためのプログラムのデータ容量を低減することができる。
LDB更新命令を利用することにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位3ビットに対応する取得開始ビット目を特定する処理と、取得開始アドレスの取得開始ビット目から取得ビット数のデータを「転送先」のレジスタにおける下位ビットにロードする処理と、「転送先」のレジスタにおける上位ビットを「0」でマスクする処理と、データ転送後に取得データ指定データに取得ビット数を加算して更新する処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
LDB更新命令を利用して高確当否テーブル64gから取得した判定値データDV1をWAレジスタ104に設定して取得データ指定データを更新する構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位3ビットに対応する取得開始ビット目を特定する処理と、高確当否テーブル64gから取得した判定値データDV1をWAレジスタ104の下位6ビットにロードする処理と、当該WAレジスタ104の上位10ビットを「0」でマスクする処理と、取得データ指定データに取得ビット数を加算して更新する処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
LDB更新命令を利用して高確当否テーブル64gから取得したフラグデータFD1をBレジスタ105aに設定して取得データ指定データを更新する構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位3ビットに対応する取得開始ビット目を特定する処理と、高確当否テーブル64gから取得したフラグデータFD1をBレジスタ105aの下位2ビットにロードする処理と、当該Bレジスタ105aの上位6ビットを「0」でマスクする処理と、取得データ指定データに取得ビット数を加算して更新する処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
LDB更新命令を利用して第1特図用振分テーブル64hから取得した第1加算前振分値FVA1をWレジスタ104aにロードするとともに取得データ指定データを更新する構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位3ビットに対応する取得開始ビット目を特定する処理と、第1特図用振分テーブル64hから取得した第1加算前振分値FVA1をWレジスタ104aの下位5ビットにロードする処理と、当該Wレジスタ104aの上位3ビットを「0」でマスクする処理と、取得データ指定データに取得ビット数を加算して更新する処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
LDB更新命令を利用して第1特図用振分テーブル64hから取得した第1フラグデータFDA1をBレジスタ105aにロードするとともに取得データ指定データを更新する構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位3ビットに対応する取得開始ビット目を特定する処理と、第1特図用振分テーブル64hから取得した第1フラグデータFD1をBレジスタ105aの下位3ビットにロードする処理と、当該Bレジスタ105aの上位5ビットを「0」でマスクする処理と、取得データ指定データに取得ビット数を加算して更新する処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
電源投入設定処理(図17(c))においても利用されるデータ設定実行処理(図19(c))のプログラム及び第2初期化テーブル64mのデータを利用して不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135を初期化する構成であることにより、不正検知用初期化処理(図29(b))においてこれらの検知カウンタ133〜135を初期化するための専用のプログラム及びデータを記憶しておく構成と比較して、主側ROM64におけるプログラム及びデータのデータ容量を低減することができる。
第2特図保留表示データ取得処理(図55(c))では、第1特図保留表示データ取得処理(図55(a))と共通のサブルーチンのプログラム及び保留表示データテーブル64sを利用して第2特図保留数カウンタ119の値に対応する保留表示データHRnを取得する。このため、保留表示データHRnを取得するためのプログラム及びデータのデータ容量を低減することができる。
普図保留表示データ取得処理(図55(d))では、第1特図保留表示データ取得処理(図55(a))及び第2特図保留表示データ取得処理(図55(c))と共通のサブルーチンのプログラム及び保留表示データテーブル64sを利用して普図保留数カウンタ127の値に対応する保留表示データHRnを取得する。このため、保留表示データHRnを取得するためのプログラム及びデータのデータ容量を低減することができる。
第1特図用振分処理では、第1特図用振分テーブル64hに設定されている加算前振分値FVAnに対して一律に「20」を加算することで、第1振分値である「40」、第2振分値である「40」及び第3振分値である「20」を算出する。第1〜第3振分値から「20」を減算した第1〜第3加算前振分値FVA1〜FVA3が第1特図用振分テーブル64hに設定されているデータ構成であることにより、第1〜第3振分値が設定されているデータ構成と比較して、主側ROM64における第1特図用振分テーブル64hのデータ容量を低減することができる。
第2特図用振分処理では、第2特図用振分テーブル64jに設定されている加算前振分値FVBnに対して一律に「20」を加算することで、第1振分値である「30」、第2振分値である「50」及び第3振分値である「20」を算出する。第1〜第3振分値から「20」を減算した第1〜第3加算前振分値FVB1〜FVB3が第2特図用振分テーブル64jに設定されているデータ構成であることにより、第1〜第3振分値が設定されているデータ構成と比較して、主側ROM64における第2特図用振分テーブル64jのデータ容量を低減することができる。
LDB命令及びLDB更新命令では、16ビットの取得データ指定データを「8」(「1000B」)で除算して得られるデータに対してTPレジスタ111に格納されているデータテーブルの基準アドレス(「9000H」)を加算する演算が行われることにより取得開始アドレスが算出される。取得開始アドレスの算出に用いられる「8」は、取得データ指定データのうち取得開始ビット目を指定するためのデータのビット数である「3」ビットで表される数値範囲(「0」〜「7」)の最大値である「7」に「1」を加算した値であり、「2」の3乗である。取得データ指定データを当該「8」(「1000B」)で除算することにより、当該取得データ指定データの第3〜第15ビットに設定されている「0」又は「1」の情報を3ビット下位側にシフトさせて除算後の商データにおける下位13ビット(第0〜第12ビット)に設定することができるとともに、当該除算後の商データにおける上位3ビット(第13〜第15ビット)に「0」を設定することができる。これにより、取得開始アドレスを特定するためのデータ及び取得開始ビット目を特定するためのデータが集約されて設定されている16ビットの取得データ指定データから取得開始アドレスを特定するためのデータのみを取り出して利用可能とすることができる。
LDB命令及びLDB更新命令では、取得データ指定データの下位1バイトと「00000111B」との論理積を演算することにより、取得データ指定データにおける下位3ビットのデータが抽出される。当該下位3ビットのデータは、取得開始ビット目を特定するためのデータである。取得データ指定データの下位1バイトと「00000111B」との論理積を演算することにより、取得開始アドレスを特定するためのデータ及び取得開始ビット目を特定するためのデータが集約されて設定されている16ビットの取得データ指定データから取得開始ビット目を特定するためのデータのみを取り出して利用可能とすることができる。
取得開始アドレスを特定するためのデータ及び取得開始ビット目を特定するためのデータは、2バイトからなる取得データ指定データに集約させて設定されている。これにより、取得データ指定データのデータ容量が低減されているとともに、LDB命令及びLDB更新命令の機械語のデータ容量が低減されている。
ヘッダHDには、ヘッダHDであることを識別可能とするヘッダ識別ビットが設定されている。ヘッダ識別ビットは、ヘッダHDの最上位ビット(第7ビット)である。ヘッダ識別ビットには「1」が設定される。コマンドに含まれる1バイトのデータのうち最上位ビットに「1」が設定されているデータはヘッダHDのみである。このため、音光側受信回路96は、受信バッファ177に格納された1バイトのデータにおける最上位ビットに「1」が設定されているか否かを判定することにより、当該1バイトのデータがヘッダHDであるか否かを把握することができる。これにより、音光側受信回路96において第1送信回路101から受信する複数のコマンド同士の区切り位置を把握可能とすることができる。
通信用のコマンド(通信用の変動用コマンド及び通信用の通常復帰コマンド)には、ヘッダHD及びフッタFTが含まれている。音光側CPU93は、ヘッダHDを利用して通信用のコマンドの開始位置を把握することができるとともに、フッタFTを利用して当該通信用のコマンドの終了位置を把握することができる。
音光側受信回路96は、第1送信回路101からフッタFTの次に受信した1バイトデータがヘッダHD以外のデータであった場合、及びヘッダHDを受信してからフッタFTを受信することなく次のヘッダHDを受信した場合にも通信エラーが発生したことを把握する。これにより、主側CPU63が送信待機バッファ175に設定したコマンドとは異なるデータが音光側CPU93にて利用されてしまうことを防止することができる。
主側CPU63は、1以上のデータフレームFRm(mは1以上の整数)を含むコマンドを送信する場合、各データフレームFRmの最上位ビットを「0」に変更した変換後コマンドを生成する。変換後コマンドには、各データフレームFRmの最上位ビットの情報を集めた最上位フレームSFp(pは1又は2)が設定される。これにより、各データフレームFRmの最上位ビットの情報を把握可能としながら、ヘッダHDとヘッダHD以外のデータとを音光側受信回路96にて識別可能とすることができる。
音光側CPU93は、受信後待機バッファ178に格納されている通信用のコマンド(通信用の変動用コマンド及び通信用の通常復帰コマンド)を変換前エリア184にセットし、当該通信用のコマンドを変換後エリア185にて変換後コマンドに変換する。そして、当該変換後コマンドをコマンド格納バッファ179に格納する。これにより、音光側CPU93にて変換後コマンドを利用可能とすることができる。
音光側CPU93は、受信した通信用のコマンドのバイト数に基づいて、当該通信用のコマンドにおける最上位フレームSFp(pは1又は2)の数及び位置を把握する。このため、通信用のコマンドに最上位フレームSFpの位置を示す情報を設定する処理を不要とすることができる。これにより、通信用のコマンドのデータ容量が増加してしまうことを防止できるとともに、通信用のコマンドを生成するための処理負荷を軽減することができる。また、通信用のコマンドを生成するためのプログラムのデータ容量を低減することができる。
音光側CPU93は、最上位フレームSFpにおけるビットの位置に基づいて、当該ビットに対応するデータフレームFRmを特定する。このため、通信用のコマンドに最上位フレームSFpの各ビットとデータフレームFRmとの対応関係を示す情報を設定する処理を不要とすることができる。これにより、通信用のコマンドのデータ容量が増加してしまうことを防止できるとともに、通信用のコマンドを生成するための処理負荷を軽減することができる。また、通信用のコマンドを生成するためのプログラムのデータ容量を低減することができる。
主側CPU63から音光側CPU93に送信される通信用のコマンドに含まれているデータフレームFRmの数は「1」〜「12」のいずれかである。通信用のコマンドに含まれているデータフレームFRmの数が「7」の倍数である場合には、当該通信用のコマンドに含まれているデータフレームFRmの数を「7」で除算した場合における商の数の最上位フレームSFpが当該通信用のコマンドに設定されている。また、通信用のコマンドに含まれているデータフレームFRmの数が「7」の倍数ではない場合には、当該通信用のコマンドに含まれているデータフレームFRmの数を「7」で除算した場合における商の数よりも「1」大きい数の最上位フレームSFpが当該通信用のコマンドに設定されている。これにより、通信用のコマンドの受信後に当該通信用のコマンドに含まれている全てのデータフレームFRmにおける最上位のビットに設定される情報を最上位フレームSFpに設定することができる。
<第2の実施形態>
本実施形態では、主制御基板61に設けられたハード乱数回路において更新される数値情報の最大値を設定する処理が実行される点において上記第1の実施形態と相違している。以下、上記第1の実施形態と相違する構成について説明する。なお、上記第1の実施形態と同一の構成については基本的にその説明を省略する。
図76は本実施形態における主制御基板61の構成を説明するための説明図である。図76に示すように、主制御基板61には、大当たり種別を判定する際に使用する数値情報の更新が行われる大当たり種別更新回路191と、図柄表示装置41が外れ変動する際のリーチ発生抽選に使用する数値情報の更新が行われるリーチ乱数更新回路192と、第2作動口34の普電役物34aを電役開放状態とするか否かの抽選に使用する数値情報の更新が行われる普電乱数更新回路193とが設けられている。これらの更新回路191〜193はハード乱数回路である。
特定制御用のワークエリア121における抽選用カウンタエリア112(図11)には、上記第1の実施形態において既に説明した当たり乱数カウンタC1、乱数初期値カウンタC4及び変動種別カウンタC5が設けられている。上記第1の実施形態と同様に、当たり乱数カウンタC1にて更新される数値情報は当たり発生の抽選に使用されるとともに、乱数初期値カウンタC4にて更新される数値情報は当たり乱数カウンタC1の初期値設定に使用される。また、変動種別カウンタC5にて更新される数値情報は各特図表示部37a,37b及び図柄表示装置41における表示継続時間を決定するために使用される。
大当たり種別更新回路191にて更新される数値情報、リーチ乱数更新回路192にて更新される数値情報及び普電乱数更新回路193にて更新される数値情報は、これらの更新回路191〜193においてその更新の都度前回値に1が加算され、最大値に達した後に0に戻る。各更新回路191〜193において数値情報は短時間間隔で更新される。大当たり種別更新回路191及びリーチ乱数更新回路192の各数値情報は、第1作動口33又は第2作動口34への入賞が発生した場合に、特図保留エリア113に格納される。また、上記第1の実施形態と同様に、第1作動口33又は第2作動口34への入賞が発生した場合には、当たり乱数カウンタC1の数値情報も特図保留エリア113に格納される。普電乱数更新回路193にて更新される数値情報は、スルーゲート35への入賞が発生した場合に、普図保留エリア114に格納される。
図76に示すように、大当たり種別更新回路191には、当該大当たり種別更新回路191にて更新される数値情報の最大値が設定される大当たり種別最大値カウンタ191aが設けられており、リーチ乱数更新回路192には、当該リーチ乱数更新回路192にて更新される数値情報の最大値が設定されるリーチ乱数最大値カウンタ192aが設けられており、普電乱数更新回路193には、普電乱数更新回路193にて更新される数値情報の最大値が設定される普電乱数最大値カウンタ193aが設けられている。
図77(a)は更新回路191〜193の最大値を説明するための説明図である。大当たり種別最大値カウンタ191a、リーチ乱数最大値カウンタ192a及び普電乱数最大値カウンタ193aへの最大値の設定は電源投入時に行われる。図77(a)に示すように、大当たり種別最大値カウンタ191aには「99」が設定され、リーチ乱数最大値カウンタ192aには「238」が設定され、普電乱数最大値カウンタ193aには「250」が設定される。
大当たり種別最大値カウンタ191aには「1111H」のアドレスが設定されており、リーチ乱数最大値カウンタ192aには「1112H」のアドレスが設定されており、普電乱数最大値カウンタ193aには「1113H」のアドレスが設定されている。主側CPU63は、これらのアドレスを指定することにより、大当たり種別最大値カウンタ191a、リーチ乱数最大値カウンタ192a及び普電乱数最大値カウンタ193aに最大値を設定することができる。
主側ROM64には、大当たり種別更新回路191、リーチ乱数更新回路192及び普電乱数更新回路193の最大値を設定するために利用されるハード乱数最大値テーブル64wが記憶されている。図77(b)はハード乱数最大値テーブル64wのデータ構成を説明するための説明図である。
図77(b)に示すように、ハード乱数最大値テーブル64wは、主側ROM64において「9420H」〜「9426H」のアドレス範囲に設定されている。ハード乱数最大値テーブル64wは、第1エリア及び第2エリアが交互に繰り返されるデータ構成となっている。第1エリアは更新回路191〜193のアドレスにおける下位1バイト又は終了用データが設定されている1バイトのエリアであり、第2エリアは直前の第1エリアのアドレスに対応する更新回路191〜193の最大値データが設定されている1バイトのエリアである。
図77(a)に示すように、大当たり種別最大値カウンタ191a、リーチ乱数最大値カウンタ192a及び普電乱数最大値カウンタ193aの各アドレスにおける上位1バイトは「11H」で共通している。本実施形態において主側CPU63は、これらの最大値カウンタ191a〜193aの上位1バイト用データとして「1100H」を事前にIYレジスタ109に格納して更新回路191〜193の最大値の設定を行う。主側CPU63は、主側ROM64から各最大値カウンタ191a〜193aのアドレスにおける下位1バイトを読み出し、上位1バイト用データと下位1バイトのデータとを加算することにより各最大値カウンタ191a〜193aのアドレスを特定する。
図77(b)に示すように、ハード乱数最大値テーブル64wにおいて、9420Hに対応する第1エリアには大当たり種別最大値カウンタ191aのアドレスの下位1バイトである「11H」が設定されているとともに、当該「9420H」に続く「9421H」に対応する第2エリアには当該大当たり種別最大値カウンタ191aに設定される最大値データである「63H」(「99」)が設定されている。「9421H」に続く「9422H」に対応する第1エリアにはリーチ乱数最大値カウンタ192aのアドレスの下位1バイトである「12H」が設定されているとともに、当該「9422H」に続く「9423H」に対応する第2エリアには当該リーチ乱数最大値カウンタ192aに設定される最大値データである「EEH」(「238」)が設定されている。「9423H」に続く「9424H」に対応する第1エリアには普電乱数最大値カウンタ193aのアドレスの下位1バイトである「13H」が設定されているとともに、当該「9424H」に続く「9425H」に対応する第2エリアには当該普電乱数最大値カウンタ193aに設定される最大値データである「FAH」(「250」)が設定されている。「9425H」に続く「9426H」に対応する第1エリアには終了用データである「00H」が設定されている。
最大値カウンタ191a〜193aのアドレスを特定するためにハード乱数最大値テーブル64wに設定されるデータは当該アドレスの下位1バイトのみである。このため、ハード乱数最大値テーブル64wにおいて、最大値カウンタ191a〜193aのアドレスを特定するためのデータのデータ容量(1バイト)と、当該最大値カウンタ191a〜193aに設定される最大値データのデータ容量(1バイト)とを同一のデータ容量とすることができる。これにより、主側ROM64におけるハード乱数最大値テーブル64wのデータ容量を低減することができる。
次に、主側CPU63にて実行される乱数最大値設定処理について図78(a)のフローチャートを参照しながら説明する。乱数最大値設定処理はメイン処理(図15)のステップS119にて実行される。なお、乱数最大値設定処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
乱数最大値設定処理では、まず更新回路設定処理を実行する(ステップS2701)。更新回路設定処理では、大当たり種別更新回路191の最大値である「99」を大当たり種別最大値カウンタ191aにセットし、リーチ乱数更新回路192の最大値である「238」をリーチ乱数最大値カウンタ192aにセットし、普電乱数更新回路193の最大値である「250」を普電乱数最大値カウンタ193aにセットする。なお、更新回路設定処理の詳細については後述する。
ステップS2701にて更新回路設定処理を実行した後は、当たり乱数カウンタC1の最大値設定処理を実行する(ステップS2702)。当該最大値設定処理では、当たり乱数カウンタC1の最大値である「7999」を当たり用最大値カウンタCN1にセットする。その後、乱数初期値カウンタC4の最大値設定処理を実行する(ステップS2703)。当該最大値設定処理では、乱数初期値カウンタC4の最大値である「7999」を初期値用最大値カウンタCN4にセットする。その後、変動種別カウンタC5の最大値設定処理を実行して(ステップS2704)、本乱数最大値設定処理を終了する。変動種別カウンタC5の最大値設定処理では、変動種別カウンタC5の最大値である「250」を変動種別用最大値カウンタCN5にセットする。
次に、主側CPU63にて実行される更新回路設定処理のプログラム内容について図78(b)の説明図を参照しながら説明する。更新回路設定処理は乱数最大値設定処理(図78(a))のステップS2701にて実行される。図78(b)に示すように本プログラムには、行番号として「2501」〜「2504」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
「2501」の行番号には「LDT HL,420H」という命令が設定されている。「LDT」はLDT実行回路149によるLDT命令であり、「HL」は転送先としてHLレジスタ107を指定する内容であり、「420H」は転送元として「420H」という12ビットの数値情報を設定する内容である。上記第1の実施形態において既に説明したとおり、TPレジスタ111には、メイン処理(図15)のステップS104にてデータテーブルの基準アドレスとして「9000H」が設定されている。このため、「LDT HL,420H」が実行されることにより、「転送元」として設定されている「420H」に対してTPレジスタ111に設定されている「9000H」を加算して得られる「9420H」がHLレジスタ107に設定される。「9420H」は、主側ROM64におけるハード乱数最大値テーブル64w(図77(b))の開始アドレスである。
このように、12ビットの数値情報を設定してアドレス指定を行うLDT命令を利用してHLレジスタ107にハード乱数最大値テーブル64wの開始アドレスをロードする構成であることにより、2バイトの数値情報を設定してアドレス指定を行うLD命令を利用してHLレジスタ107にハード乱数最大値テーブル64wの開始アドレスをロードする構成と比較して、乱数更新回路設定処理を実行するためのプログラムのデータ容量を低減することができる。
「2502」の行番号には「LD IY,1100H」という命令が設定されている。「LD」はLD命令であり、「IY」は転送先としてIYレジスタ109を指定する内容であり、「1100H」は「転送元」として乱数の更新回路191〜193のアドレスに共通している上位1バイト用データを設定する内容である。「LD IY,1100H」が実行されることにより、「転送元」として設定されている「1100H」がIYレジスタ109にロードされる。これにより、IYレジスタ109に上位1バイト用データを格納することができる。
「2503」の行番号には「CALLS HRSDSET」という命令が設定されている。「HRSDSET」は後述する最大値設定実行処理(図78(c))である。「CALLS HRSDSET」という命令は、最大値設定実行処理というサブルーチンを呼び出すための命令である。詳細は後述するが、行番号「2503」にて最大値設定実行処理が実行されることにより、大当たり種別最大値カウンタ191a、リーチ乱数最大値カウンタ192a及び普電乱数最大値カウンタ193aに最大値データがセットされる。なお、最大値設定実行処理の内容については後述する。
最大値設定実行処理のサブルーチンが終了した場合には、「2504」の行番号に進む。「2504」の行番号には「RET」という命令が設定されている。既に説明したとおり、更新回路設定処理は乱数最大値設定処理(図78(a))のステップS2701にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、乱数最大値設定処理(図78(a))のステップS2702に進むことになる。
図78(c)は主側CPU63にて実行される最大値設定実行処理のプログラム内容を説明するための説明図である。最大値設定実行処理は更新回路設定処理(図78(b))の行番号「2503」にて実行される。図78(c)に示すように、最大値設定実行処理の行番号「2605」には「LD (IY+A),W」という特殊LD命令が設定されている。
最大値設定実行処理(図78(c))の説明に先立ち、当該最大値設定実行処理に含まれている特殊LD命令について説明する。図76に示すように、主制御基板61には特殊LD命令を実行するための専用の回路として特殊LD実行回路194が設けられている。
特殊LD命令の命令コードは、「LD (IY+A),W」のように、「LD (インデックスレジスタ+汎用レジスタ),転送元」という構成を有している。特殊LD命令では、「インデックスレジスタ」としてIYレジスタ109が設定されるとともに、「汎用レジスタ」としてAレジスタ104bが設定される。また、特殊LD命令では、「転送元」として1バイトのデータが格納されているWレジスタ104aが設定される。なお、特殊LD命令において「インデックスレジスタ」としてIXレジスタ108又はTPレジスタ111が設定される構成としてもよく、「汎用レジスタ」としてWレジスタ104a、Bレジスタ105a、Cレジスタ105b、Dレジスタ106a、Eレジスタ106b、Hレジスタ107a又はLレジスタ107bが設定される構成としてもよく、「転送元」として1バイトのデータ又は当該1バイトのデータが格納されているAレジスタ104b、Bレジスタ105a、Cレジスタ105b、Dレジスタ106a、Eレジスタ106b、Hレジスタ107a又はLレジスタ107bが設定される構成としてもよい。
特殊LD命令において、「インデックスレジスタ+汎用レジスタ」はインデックスレジスタ(IYレジスタ109)に格納されている2バイトのデータと汎用レジスタ(Aレジスタ104b)に格納されている1バイトのデータとの和(加算の演算結果)を意味するとともに、「(インデックスレジスタ+汎用レジスタ)」は当該和のアドレスに対応するエリアに記憶されている1バイトのデータを意味する。特殊LD命令が実行されることにより、「転送元」として設定されているWレジスタ104aに格納されている1バイトのデータが「インデックスレジスタ+汎用レジスタ」の演算結果のアドレスに対応するエリアにロードされる。
このように、特殊LD命令を利用することにより、IYレジスタ109に格納されているデータとAレジスタ104bに格納されているデータとの和を演算して転送先のアドレスを算出する処理と、「転送元」のWレジスタ104aに格納されている1バイトのデータを転送先にロードする処理と、を一命令により実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
次に、主側CPU63にて実行される最大値設定実行処理のプログラム内容について図78(c)を参照しながら説明する。既に説明したとおり、最大値設定実行処理は更新回路設定処理(図78(b))の行番号「2503」にて実行される。図78(c)に示すように本プログラムには、行番号として「2601」〜「2606」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
図78(c)に示すように、「2601」の行番号には「HRSDSET」が設定されている。これは命令ではなくパチンコ機10の開発者によるプログラムの確認に際して参照されるデータである。したがって、行番号「2601」では何ら命令が実行されることなく行番号「2602」に進む。
「2602」の行番号には「LD A,(HL+)」という命令が設定されている。「LD」はLD更新実行回路151によるLD更新命令であり、「A」は転送先としてAレジスタ104bを指定する内容であり、「(HL+)」は転送元としてHLレジスタ107に格納されている2バイトのアドレスデータに対応する記憶エリアを指定するとともにデータのロード後にHLレジスタ107の値を1加算して更新することを指示にする内容である。既に説明したとおり、HLレジスタ107にはハード乱数最大値テーブル64w(図77(b))の開始アドレスである「9420H」が格納されているとともに、当該ハード乱数最大値テーブル64wにおいて当該開始アドレスに対応する第1エリアには大当たり種別最大値カウンタ191aのアドレスにおける下位1バイト(「11H」)が設定されている。このため、「LD A,(HL+)」が実行されることにより、Aレジスタ104bに「11H」がロードされる。また、HLレジスタ107に「9421H」が格納されている状態となる。
「2603」の行番号には「RET Z」という命令が設定されている。「RET Z」は、Aレジスタ104bに本最大値設定実行処理(図78(c))の終了用データが設定されている場合には本最大値設定実行処理を終了するとともに、Aレジスタ104bに当該終了用データが設定されていない場合には次の行番号に進むことを指示する命令である。行番号「2602」にてAレジスタ104bに終了用データ(「00H」)が設定された場合には、行番号「2603」にて「RET Z」が実行されることにより本最大値設定実行処理(図78(c))を終了する。一方、行番号「2602」にてAレジスタ104bに設定されたデータが終了用データ以外のデータである場合には、行番号「2603」にて「RET Z」が実行されても本最大値設定実行処理(図78(c))が終了することはなく、行番号「2604」に進む。
「2604」の行番号には「LD W,(HL+)」という命令が設定されている。「LD」はLD更新実行回路151によるLD更新命令であり、「W」は転送先としてWレジスタ104aを指定する内容であり、「(HL+)」は転送元としてHLレジスタ107に格納されている2バイトのアドレスデータに対応する記憶エリアを指定するとともにデータのロード後にHLレジスタ107の値を1加算して更新することを指示にする内容である。既に説明したとおり、HLレジスタ107には「9421H」が格納されているとともに、ハード乱数最大値テーブル64w(図77(b))において当該「9421H」に対応する第2エリアには大当たり種別最大値カウンタ191aに設定される最大値データである「63H」(「99」)が設定されている。このため、「LD W,(HL+)」が実行されることにより、Wレジスタ104aに「63H」がロードされるとともに、HLレジスタ107に格納されているアドレスデータが「9422H」に更新される。
「2605」の行番号には「LD (IY+A),W」という命令が設定されている。「LD」は特殊LD実行回路194による特殊LD命令であり、「(IY+A)」は転送先としてIYレジスタ109のデータにAレジスタ104bのデータを加算して得られるアドレスデータに対応する記憶エリアを指定する内容であり、「W」は転送元としてWレジスタ104aを指定する内容である。既に説明したとおり、IYレジスタ109には事前に更新回路191〜193の上位1バイト用データ(「1100H」)が格納されているとともに、Aレジスタ104bには大当たり種別最大値カウンタ191aのアドレスデータにおける下位1バイト(「11H」)が格納されている。また、Wレジスタ104aには大当たり種別最大値カウンタ191aに対応する最大値データ(「63H」)が格納されている。このため、「LD (IY+A),W」が実行されることにより、大当たり種別最大値カウンタ191aに最大値データである「63H」がロードされる。
このように、特殊LD命令を利用することにより、IYレジスタ109に格納されているデータに対してAレジスタ104bに格納されているデータを加算することにより転送先のアドレスを算出する処理と、Wレジスタ104aに格納されている最大値データを転送先にロードする処理と、を一命令により実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
「2606」の行番号には「JR HRSDSET」という命令が設定されている。「JR」はジャンプ命令としてのJR命令であり、「HRSDSET」はジャンプ先として最大値設定実行処理における最初の行番号「2601」を指定する内容である。「JR HRSDSET」が実行されることにより、最大値設定実行処理の行番号「2601」に進む。
その後、HLレジスタ107に「9422H」が格納されている状態で行番号「2602」〜「2606」の処理が実行される。これにより、リーチ乱数最大値カウンタ192aに最大値データである「EEH」(「238」)がロードされるとともに、HLレジスタ107に格納されているアドレスデータが「9424H」に更新される。
その後、HLレジスタ107に「9424H」が格納されている状態で行番号「2602」〜「2606」の処理が実行される。これにより、普電乱数最大値カウンタ193aに最大値データである「FAH」がロードされるとともに、HLレジスタ107に格納されているアドレスデータが「9426H」に更新される。
その後、HLレジスタ107に「9426H」が格納されている状態で行番号「2602」〜「2606」の処理が実行される。行番号「2602」にて「LD A,(HL+)」が実行されることにより、Aレジスタ104bに終了用データである「00H」がロードされる。その後、Aレジスタ104bに終了用データが設定されている状態において行番号「2603」にて「RET Z」が実行されることにより、本最大値設定実行処理を終了する。既に説明したとおり、最大値設定実行処理は更新回路設定処理(図78(b))の行番号「2503」にて実行されるサブルーチンである。したがって、「RET Z」を実行することにより、本最大値設定実行処理を終了して、更新回路設定処理(図78(b))の行番号「2504」に進む。
このように、ハード乱数最大値テーブル64w(図77(b))を利用して更新回路設定処理(図78(b))を実行することにより、大当たり種別最大値カウンタ191a、リーチ乱数最大値カウンタ192a及び普電乱数最大値カウンタ193aに最大値データを設定することができる。
IYレジスタ109に上位1バイト用データ(「1100H」)を設定する処理を行った後、IYレジスタ109に格納されている当該上位1バイト用データを利用する特殊LD命令が複数回(具体的には3回)実行される。このため、IYレジスタ109に上位1バイト用データを設定することなく各最大値カウンタ191a〜193aのアドレスデータ(2バイト)の全体をハード乱数最大値テーブル64w(図77(b))に記憶しておく構成と比較して、主側ROM64におけるハード乱数最大値テーブル64wのデータ容量を低減することができる。
以上詳述した本実施形態によれば、以下の優れた効果を奏する。
特殊LD命令を利用することにより、IYレジスタ109に格納されているデータに対してAレジスタ104bに格納されているデータを加算することにより転送先のアドレスを算出する処理と、Wレジスタ104aに格納されている最大値データを転送先にロードする処理と、を一命令により実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
大当たり種別最大値カウンタ191a、リーチ乱数最大値カウンタ192a及び普電乱数最大値カウンタ193aの各アドレスにおける上位1バイトは「11H」で共通している。これらの最大値カウンタ191a〜193aの上位1バイト用データとして「1100H」を事前にIYレジスタ109に格納する。主側CPU63は、主側ROM64から各最大値カウンタ191a〜193aのアドレスにおける下位1バイトを読み出し、IYレジスタ109に格納されている上位1バイト用データと下位1バイトのデータとを加算することにより各最大値カウンタ191a〜193aのアドレスを特定する。これにより、各最大値カウンタ191a〜193aのアドレスの特定を容易化することができる。
IYレジスタ109に上位1バイト用データとして「1100H」を設定する処理を行った後、IYレジスタ109に格納されている当該上位1バイト用データを利用する特殊LD命令を複数回(具体的には3回)実行する。このため、IYレジスタ109に上位1バイト用データを設定することなく各最大値カウンタ191a〜193aのアドレスデータ(2バイト)の全体をハード乱数最大値テーブル64wに記憶しておく構成と比較して、主側ROM64におけるハード乱数最大値テーブル64wのデータ容量を低減することができる。
最大値カウンタ191a〜193aのアドレスを特定するためにハード乱数最大値テーブル64wに設定されるデータは当該アドレスの下位1バイトのみである。このため、ハード乱数最大値テーブル64wにおいて、最大値カウンタ191a〜193aのアドレスを特定するためのデータのデータ容量(1バイト)と、当該最大値カウンタ191a〜193aに設定される最大値データのデータ容量(1バイト)とを同一のデータ容量とすることができる。これにより、主側ROM64におけるハード乱数最大値テーブル64wのデータ容量を低減することができる。
12ビットの数値情報を設定してアドレス指定を行うLDT命令を利用してHLレジスタ107にハード乱数最大値テーブル64wの開始アドレスをロードする構成であることにより、2バイトの数値情報を設定してアドレス指定を行うLD命令を利用してHLレジスタ107にハード乱数最大値テーブル64wの開始アドレスをロードする構成と比較して、乱数更新回路設定処理を実行するためのプログラムのデータ容量を低減することができる。
<第3の実施形態>
本実施形態では、表示制御処理の処理内容が上記第1の実施形態と相違している。以下、上記第1の実施形態と相違する構成について説明する。なお、上記第1の実施形態と同一の構成については基本的にその説明を省略する。
図79は、本実施形態における主側CPU63にて実行される表示制御処理を示すフローチャートである。上記第1の実施形態において既に説明したとおり、表示制御処理はタイマ割込み処理(図26)のステップS514にて実行される。なお、表示制御処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
表示制御処理では、まずDレジスタ106aを「0」クリアする(ステップS2801)。その後、特定制御用のワークエリア121における第1特図保留数カウンタ118の値をEレジスタ106bに設定する(ステップS2802)。その後、保留表示取得用処理を実行する(ステップS2803)。保留表示取得用処理では、主側ROM64に記憶されている保留表示データテーブル64x(図80(a))からEレジスタ106bに格納されている保留数に対応する4ビットのデータをWレジスタ104aの下位4ビット(第0〜第3ビット)にロードするとともに、当該Wレジスタ104aの上位4ビット(第4〜第7ビット)を「0」でマスクする。これにより、Eレジスタ106bに格納されている保留数に対応する保留表示データHRn(nは0〜4のいずれかの整数)をWレジスタ104aにセットすることができる。
図80(a)は保留表示データテーブル64xのデータ構成を説明するための説明図である。図80(a)に示すように、保留表示データテーブル64xは「9195H」のアドレスに対応する1バイトのエリアに記憶されている。当該1バイトのエリアの下位4ビット(第0〜第3ビット)には「1」が設定されているとともに、上位4ビット(第4〜第7ビット)には「0」が設定されている。
図80(b)は保留数と保留表示データHRnの取得態様との対応関係を説明するための説明図である。後述する保留表示取得実行処理(図80(d))では、保留数(「0」〜「4」のいずれか)に対応する保留表示データをWレジスタ104aに設定するために、HLレジスタ107にいずれかの保留数「0」〜「4」に対応する取得データ指定データが格納されているとともにAレジスタ104bに取得ビット数指定データとして「03H」が格納されている状態において、「LDB W,(HL).A」というLDB命令が実行される。当該LDB命令では、保留表示データテーブル64x(図80(a))から4ビットのデータがWレジスタ104aの第0〜第3ビット(下位4ビット)にロードされるとともに、当該Wレジスタ104aの第4〜第7ビットが「0」でマスクされる。
図80(b)に示すように、保留数「4」に対応する取得データ指定データは「0CA8H」である。また、保留数「3」に対応する取得データ指定データは「0CA9H」であり、保留数「2」に対応する取得データ指定データは「0CAAH」であり、保留数「1」に対応する取得データ指定データは「0CABH」であり、保留数「0」に対応する取得データ指定データは「0CACH」である。保留数「4」に対応する取得データ指定データである「0CA8H」は、「{(保留表示データテーブル64xの開始アドレス)−9000H}×8」の式により算出される数値情報である。「0」〜「4」の保留数に対応する取得データ指定データは、保留数「0」に対応する取得データ指定データである「0CACH」から当該保留数を減算することにより算出される数値情報である。
HLレジスタ107に保留数「0」に対応する取得データ指定データ(「0CACH」)が格納されている状態で「LDB W,(HL).A」というLDB命令が実行される場合には、取得開始アドレスが「9195H」となるとともに取得開始ビット目が「4」となる。そして、「9195H」に対応するエリアの第4ビット目以降に設定されている4ビットのデータ(「0000B」)がWレジスタ104aの第0〜第3ビット(下位4ビット)にロードされるとともに、当該Wレジスタ104aの第4〜第7ビット(上位4ビット)が「0」でマスクされる。これにより、保留数「0」に対応する保留表示データHR0(「00000000B」)をWレジスタ104aに設定することができる。HLレジスタ107に保留数「1」に対応する取得データ指定データ(「0CABH」)が格納されている状態で「LDB W,(HL).A」というLDB命令が実行される場合には、取得開始アドレスが「9195H」となるとともに取得開始ビット目が「3」となる。そして、「9195H」に対応するエリアの第3ビット目以降に設定されている4ビットのデータ(「0001B」)がWレジスタ104aの第0〜第3ビット(下位4ビット)にロードされるとともに、当該Wレジスタ104aの第4〜第7ビット(上位4ビット)が「0」でマスクされる。これにより、保留数「1」に対応する保留表示データHR0(「00000001B」)をWレジスタ104aに設定することができる。HLレジスタ107に保留数「2」に対応する取得データ指定データ(「0CAAH」)が格納されている状態で「LDB W,(HL).A」というLDB命令が実行される場合には、取得開始アドレスが「9195H」となるとともに取得開始ビット目が「2」となる。そして、「9195H」に対応するエリアの第2ビット目以降に設定されている4ビットのデータ(「0011B」)がWレジスタ104aの第0〜第3ビット(下位4ビット)にロードされるとともに、当該Wレジスタ104aの第4〜第7ビット(上位4ビット)が「0」でマスクされる。これにより、保留数「2」に対応する保留表示データHR0(「00000011B」)をWレジスタ104aに設定することができる。HLレジスタ107に保留数「3」に対応する取得データ指定データ(「0CA9H」)が格納されている状態で「LDB W,(HL).A」というLDB命令が実行される場合には、取得開始アドレスが「9195H」となるとともに取得開始ビット目が「1」となる。そして、「9195H」に対応するエリアの第1ビット目以降に設定されている4ビットのデータ(「0111B」)がWレジスタ104aの第0〜第3ビット(下位4ビット)にロードされるとともに、当該Wレジスタ104aの第4〜第7ビット(上位4ビット)が「0」でマスクされる。これにより、保留数「3」に対応する保留表示データHR0(「00000111B」)をWレジスタ104aに設定することができる。HLレジスタ107に保留数「4」に対応する取得データ指定データ(「0CA8H」)が格納されている状態で「LDB W,(HL).A」というLDB命令が実行される場合には、取得開始アドレスが「9195H」となるとともに取得開始ビット目が「0」となる。そして、「9195H」に対応するエリアの第0ビット目以降に設定されている4ビットのデータ(「1111B」)がWレジスタ104aの第0〜第3ビット(下位4ビット)にロードされるとともに、当該Wレジスタ104aの第4〜第7ビット(上位4ビット)が「0」でマスクされる。これにより、保留数「4」に対応する保留表示データHR0(「00001111B」)をWレジスタ104aに設定することができる。
次に、主側CPU63にて実行される保留表示取得用処理について図80(c)のフローチャートを参照しながら説明する。保留表示取得用処理は表示制御処理(図79)のステップS2803にて実行される。また、保留表示取得用処理は表示制御処理(図79)のステップS2806及びステップS2809においても実行される。
保留表示取得用処理では、まずHLレジスタ107に上述した「0CACH」を設定する(ステップS2901)。その後、HLレジスタ107の値からDEレジスタ106の値を減算する(ステップS2902)。既に説明したとおり、表示制御処理(図79)のステップS2801にてDレジスタ106aの値は「0」クリアされているとともに、ステップS2802にてEレジスタ106bには第1特図保留数カウンタ118の値が設定されている。このため、HLレジスタ107の値からDEレジスタ106の値を減算することにより、HLレジスタ107には「0CACH」から第1特図保留エリア115の保留数を減算した値、すなわち第1特図保留数カウンタ118の値に対応する取得データ指定データが格納されている状態となる。なお、表示制御処理(図79)のステップS2806にて保留表示取得用処理(図80(c))が実行される場合には、ステップS2902の処理が実行されることによりHLレジスタ107に第2特図保留数カウンタ119の値に対応する取得データ指定データが格納されている状態となるとともに、表示制御処理(図79)のステップS2809にて保留表示取得用処理(図80(c))が実行される場合には、ステップS2902の処理が実行されることによりHLレジスタ107に普図保留数カウンタ127の値に対応する取得データ指定データが格納されている状態となる。
その後、保留表示取得実行処理を実行して(ステップS2903)、本保留表示取得用処理を終了する。図80(d)は保留表示取得実行処理のプログラム内容を説明するための説明図である。図80(d)に示すように、本プログラムには、行番号として「2701」〜「2703」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
図80(d)に示すように、「2702」の行番号には「LD A,03H」という命令が設定されている。「LD」はLD命令であり、「A」は転送先としてAレジスタ104bを指定する内容であり、「03H」は転送元として「03H」という1バイトの数値情報を指定する内容である。「03H」は、行番号「2702」に設定されているLDB命令により保留表示データテーブル64xから取得するビット数(「4」)から「1」を減算した値である。「LD A,03H」が実行されることにより、「転送先」のAレジスタ104bに「03H」がロードされる。後述する保留表示取得実行処理(図80(d))において「LDB W,(HL).A」というLDB命令が実行される場合、LDB実行回路157においてAレジスタ104bの値を1加算する演算が行われるとともに、当該1加算後の値が取得ビット数のデータとして利用される。このため、行番号「2701」にてAレジスタ104bに「03H」を格納することにより、当該LDB命令において保留表示データテーブル64xから取得されるデータのビット数を「4」とすることができる。
「2702」の行番号には「LDB W,(HL).A」という命令が設定されている。「LDB」はLDB実行回路157によるLDB命令であり、「W」は「転送先」としてWレジスタ104aを指定する内容であり、「(HL)」はHLレジスタ107に格納されている2バイトのデータを取得データ指定データに指定する内容であり、「A」はAレジスタ104bに格納されている1バイトのデータを取得ビット数指定データに指定する内容である。既に説明したとおり、HLレジスタ107には保留数に対応する取得データ指定データが格納されているとともに、Aレジスタ104bには「03H」が格納されている。また、TPレジスタ111にはデータテーブルの基準アドレスである「9000H」が格納されている。図80(b)に示すように、保留数が「0」〜「4」のいずれであっても取得開始アドレスは、保留表示データテーブル64xが記憶されている「9195H」となる。既に説明したとおり、「LDB W,(HL).A」が実行されることにより、保留数「n」に対応する保留表示データHRn(nは0〜4のいずれかの整数)をWレジスタ104aに設定することができる。
このように、LDB命令を利用して保留表示データテーブル64xから取得した保留表示データHRnの下位4ビットをWレジスタ104aの第0〜第3ビット(下位4ビット)にロードするとともに当該Wレジスタ104aの上位4ビットを「0」でマスクする構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの第0〜第2ビット(下位3ビット)に対応する取得開始ビット目を特定する処理と、保留表示データテーブル64xから取得した保留表示データHRnの下位4ビットをWレジスタ104aの第0〜第3ビット(下位4ビット)にロードする処理と、当該Wレジスタ104aの上位4ビットを「0」でマスクする処理と、を一命令で実行することができる。これらの処理はLDB実行回路157にて実行される。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
「2703」の行番号には「RET」という命令が設定されている。既に説明したとおり、保留表示取得実行処理は保留表示取得用処理(図80(c))のステップS2903にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、保留表示取得実行処理が終了するとともに、保留表示取得用処理も終了する。
このように、LDB命令を利用することにより、保留表示データテーブル64xにおいて保留数に対応する態様で取得開始ビット目をずらして保留表示データHRnの下位4ビットを取得することができる。このため、保留表示データテーブル64xのデータ容量を1バイトに低減することができる。
表示制御処理(図79)の説明に戻り、ステップS2803にて保留表示取得用処理を実行した後は、Wレジスタ104aに格納されている保留表示データHRnを特定制御用のワークエリア121における第1特図保留表示エリアに設定する(ステップS2804)。これにより、第1特図保留表示部37cにおいて第1特図保留エリア115の保留数に対応する表示を行うことが可能となる。
その後、特定制御用のワークエリア121における第2特図保留数カウンタ119の値をEレジスタ106bに設定し(ステップS2805)、上述した保留表示取得用処理(図80(c))を実行する(ステップS2806)。これにより、第2特図保留数カウンタ119の値に対応する保留表示データHRnをWレジスタ104aに取得することができる。
その後、Wレジスタ104aに格納されている保留表示データHRnを特定制御用のワークエリア121における第2特図保留表示エリアに設定する(ステップS2807)。これにより、第2特図保留表示部37dにおいて第2特図保留エリア116の保留数に対応する表示を行うことが可能となる。
その後、特定制御用のワークエリア121における普図保留数カウンタ127の値をEレジスタ106bに設定し(ステップS2808)、上述した保留表示取得用処理(図80(c))を実行する(ステップS2809)。これにより、普図保留数カウンタ127の値に対応する保留表示データHRnをWレジスタ104aに取得することができる。
その後、Wレジスタ104aに格納されている保留表示データHRnを特定制御用のワークエリア121における普図保留表示エリアに設定する(ステップS2810)。これにより、普図保留表示部38bにおいて普図保留エリア125の保留数に対応する表示を行うことが可能となる。その後、各種表示データ出力処理を実行して(ステップS2811)、本表示制御処理を終了する。
以上詳述した本実施形態によれば、以下の優れた効果を奏する。
LDB命令を利用して保留表示データテーブル64xから取得した保留表示データHRnの下位4ビットをWレジスタ104aの第0〜第3ビット(下位4ビット)にロードするとともに当該Wレジスタ104aの第4〜第7ビット(上位4ビット)を「0」でマスクする構成であることにより、2バイトの取得データ指定データにおける第3〜第15ビットのデータ及びTPレジスタ111に設定されているデータテーブルの基準アドレスに対応する取得開始アドレスを特定する処理と、当該取得指定データの第0〜第2ビット(下位3ビット)に対応する取得開始ビット目を特定する処理と、保留表示データテーブル64xから取得した保留表示データHRnの下位4ビットをWレジスタ104aの第0〜第3ビット(下位4ビット)にロードする処理と、当該Wレジスタ104aの第4〜第7ビット(上位4ビット)を「0」でマスクする処理と、を一命令で実行することができる。これらの処理はLDB実行回路157にて実行される。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
LDB命令を利用することにより、保留表示データテーブル64xにおいて保留数に対応する態様で取得開始ビット目をずらして保留表示データHRnの下位4ビットを取得することができる。このため、保留表示データテーブル64xのデータ容量を1バイトとすることができる。保留表示データテーブルに5種類の保留数に対応する5種類の保留表示データHRnの全体が設定されている構成、及び保留表示データテーブルに5種類の保留数に対応する5種類の保留表示データHRnの下位4ビットが設定されている構成と比較して、保留表示データテーブル64xのデータ容量を低減することができる。
<第4の実施形態>
本実施形態では、第2初期化テーブルの最終アドレスと乱数最大値テーブルの開始アドレスとが共通のアドレスである点において上記第1の実施形態と相違している。以下、上記第1の実施形態と相違する構成について説明する。なお、上記第1の実施形態と同一の構成については基本的にその説明を省略する。
図81(a)は本実施形態における第1初期化テーブル64yのデータ構成を説明するための説明図であり、図81(b)は第2初期化テーブル64zのデータ構成を説明するための説明図であり、図81(c)は乱数最大値テーブル64αのデータ構成を説明するための説明図である。
第1初期化テーブル64yは、上記第1の実施形態における第1初期化テーブル64k(図18(a))と同様に、不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135に初期値を設定するためのデータテーブルであるとともに、第2初期化テーブル64zは、上記第1の実施形態における第2初期化テーブル64m(図18(b))と同様に、停電エリア131及び不正監視タイマカウンタ132を「0」クリアするためのデータテーブルである。また、乱数最大値テーブル64αは、上記第1の実施形態における乱数最大値テーブル64p(図23(a))と同様に、当たり乱数カウンタC1、大当たり種別カウンタC2、リーチ乱数カウンタC3、乱数初期値カウンタC4、変動種別カウンタC5及び普電乱数カウンタC6に対応する最大値カウンタCN1〜CN6に最大値データを設定するために利用されるデータテーブルである。
図81(a)に示すように、第1初期化テーブル64yは、上記第1の実施形態における第1初期化テーブル64k(図18(a))と同様に、主側ROM64における「9400H」〜「9405H」のアドレスに設定されている。図81(b)に示すように、第2初期化テーブル64zは、上記第1の実施形態における第2初期化テーブル64m(図18(b))と同様に、主側ROM64における「9406H」〜「940BH」のアドレスに設定されている。図81(c)に示すように、乱数最大値テーブル64αは、主側ROM64における「940BH」〜「9413H」のアドレスに設定されている。
図81(b)に示すように第2初期化テーブル64zの最終アドレスは「940BH」であり、図81(c)に示すように当該「940BH」は乱数最大値テーブル64αの開始アドレスでもある。当該「940BH」には「63H」という1バイトのデータが設定されている。「63H」は、図81(c)に示すように大当たり種別用最大値カウンタCN2の最大値データであるとともに、図81(b)に示すように後述するデータ設定実行処理(図82(b))の終了用データである。
このように、主側ROM64において1つのアドレスに対応するエリアに大当たり種別用最大値カウンタCN2の最大値データであるとともにデータ設定実行処理(図82(b))の終了用データである「63H」が設定されている構成であることにより、主側ROM64において大当たり種別用最大値カウンタCN2の最大値データが設定されているエリアとは別に、データ設定実行処理(図82(b))の終了用データが設定されているエリアが設けられている構成と比較して、主側ROM64において第2初期化テーブル64z及び乱数最大値テーブル64αの合計のデータ容量が低減されている。
図82(a)は主側CPU63にて実行される電源投入設定処理のプログラム内容を説明するための説明図である。上記第1の実施形態において既に説明したとおり、電源投入設定処理はメイン処理(図15)のステップS118にて実行される。図82(a)に示すように本プログラムには、行番号として「2801」〜「2806」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
「2801」〜「2802」の行番号には、上記第1の実施形態における電源投入設定処理(図82(a))の「1001」〜「1002」の行番号と同様の命令が設定されている。具体的には、「2801」の行番号には「LDT HL,400H」という命令が設定されている。「LDT」はLDT実行回路149によるLDT命令であり、「HL」は転送先としてHLレジスタ107を指定する内容であり、「400H」は転送元として「400H」という12ビットの数値情報を設定する内容である。上記第1の実施形態において既に説明したとおり、TPレジスタ111には、メイン処理(図15)のステップS104にてデータテーブルの基準アドレス(「9000H」)が設定されている。このため、「LDT HL,400H」が実行されることにより、転送元として設定されている「400H」に対してTPレジスタ111に設定されている「9000H」を加算して得られる「9400H」がHLレジスタ107にロードされる。これにより、HLレジスタ107に第1初期化テーブル64y(図81(a))の開始アドレスが設定されている状態とすることができる。
「2802」の行番号には「XOR D,D」という命令が設定されている。「XOR」はXOR命令という排他的論理和命令であり、コンマの前後の「D」はDレジスタ106aを指定する内容である。「XOR D,D」が実行されることにより、Dレジスタ106aの値とDレジスタ106aの値との排他的論理和の演算結果がコンマの前の「D」で指定されたDレジスタ106aに設定される。具体的には、Dレジスタ106aの値に関わらず、Dレジスタ106aに「00H」が設定される。つまり、Dレジスタ106aが「0」クリアされる。上記第1の実施形態において図16(a)を参照しながら既に説明したとおり、電源投入設定処理の対象となるエリア及びカウンタのアドレスにおける上位1バイトは「00H」で共通している。行番号「2802」の命令は、Dレジスタ106aに当該共通の上位1バイト(「00H」)を設定するための命令である。
「2803」の行番号には「CALL 4BTS20」という命令が設定されている。「4BTS20」は後述するデータ設定実行処理(図82(b))である。「CALL 4BTS20」という命令は、データ設定実行処理というサブルーチンを呼び出すための命令である。行番号「2803」では、HLレジスタ107に第1初期化テーブル64yの開始アドレスが設定されているとともにDレジスタ106aに「00H」が格納されている状態でデータ設定実行処理が実行される。既に説明したとおり、第1初期化テーブル64yは、不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135に初期値を設定するためのデータテーブルである。行番号「2803」にてデータ設定実行処理が実行されることにより、不正電波検知カウンタ133には初期値として「5」が設定され、不正磁気検知カウンタ134には初期値として「10」が設定され、異常振動検知カウンタ135には初期として「15」が設定される。行番号「2803」の命令に基づいて呼び出したデータ設定実行処理のサブルーチンが終了した場合には、「2804」の行番号に進む。詳細は後述するが、行番号「2803」にてデータ設定実行処理が実行されることにより、HLレジスタ107には「9405H」が設定されている状態となる。
「2804」の行番号には、「INC HL」という命令が設定されている。「INC HL」は、HLレジスタ107の値を1加算する演算命令である。行番号「2804」にて「INC HL」が実行されることにより、HLレジスタ107の値が1加算されて「9406H」に更新される。これにより、HLレジスタ107に主側ROM64における第2初期化テーブル64z(図81(c))の開始アドレスが設定されている状態とすることができる。
「2805」の行番号には、上述した「2803」の行番号と同様に、「CALL 4BTS20」という命令が設定されている。行番号「2805」では、HLレジスタ107に第2初期化テーブル64zの開始アドレスが設定されているとともにDレジスタ106aに「00H」が格納されている状態でデータ設定実行処理が実行される。行番号「2805」にてデータ設定実行処理が実行されることにより、停電エリア131及び不正監視タイマカウンタ132が「0」クリアされる。行番号「2805」の命令に基づいて呼び出したデータ設定実行処理のサブルーチンが終了した場合には、「2806」の行番号に進む。
「2806」の行番号には「RET」という命令が設定されている。既に説明したとおり、電源投入設定処理はメイン処理(図15)のステップS118にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、メイン処理(図15)のステップS119に進むことになる。
次に、主側CPU63にて実行されるデータ設定実行処理のプログラム内容について図82(b)の説明図を参照しながら説明する。既に説明したとおり、データ設定実行処理は電源投入設定処理(図82(a))の行番号「2803」及び行番号「2805」にて「CALL 4BTS20」が実行されることにより呼び出される。図82(b)に示すように、本プログラムには、行番号として「2901」〜「2911」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
先ず電源投入設定処理(図82(a))の行番号「2803」にてデータ設定実行処理が実行される場合について説明する。既に説明したとおり、行番号「2803」では、第1初期化テーブル64y(図81(a))の開始アドレスである「9400H」がHLレジスタ107に格納されているとともに、不正電波検知カウンタ133、不正磁気検知カウンタ134及び異常振動検知カウンタ135のアドレスデータに共通する上位1バイト(「00H」)がDレジスタ106aに格納されている状態においてデータ設定実行処理が実行される。
行番号「2803」にて実行されるデータ設定実行処理では、先ず第1初期化テーブル64y(図81(a))における「9400H」〜「9402H」のアドレス範囲に設定されているデータを利用して行番号「2902」〜「2911」の命令が実行される。図81(a)に示すように、第1初期化テーブル64yの開始アドレスである「9400H」に対応する第1エリアの上位4ビットには不正電波検知カウンタ133に初期値である「5」を設定するための初期設定データとして「0101B」が設定されているとともに、当該第1エリアの下位4ビットには不正磁気検知カウンタ134に初期値である「10」を設定するための初期設定データとして「1010B」が設定されている。「9400H」に続く「9401H」に対応する第2エリアには不正電波検知カウンタ133のアドレスの下位1バイトである「21H」が設定されている。また、「9401H」に続く「9402H」に対応する第3エリアには不正磁気検知カウンタ134のアドレスの下位1バイトである「22H」が設定されている。
図82(b)に示すように、「2901」の行番号には「4BTS20」が設定されている。これは命令ではなくパチンコ機10の開発者によるプログラムの確認に際して参照されるデータである。したがって、行番号「2901」では何ら命令が実行されることなく行番号「2902」に進む。
「2902」の行番号には「LDH WA,(HL+)」という命令が設定されている。「LDH」はLDH更新実行回路152によるLDH更新命令であり、「WA」は転送先としてWAレジスタ104を指定する内容である。また、「(HL+)」は転送元としてHLレジスタ107に格納されているアドレスに対応するエリアに格納されているデータを指定する内容であるとともに、当該データのロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新することを指示する内容である。上述したとおり、第1初期化テーブル64yにおいて「9400H」に対応する第1エリアの上位4ビットには初期設定データとして「0101B」がセットされているとともに、当該第1エリアの下位4ビットには初期設定データとして「1010B」がセットされている。このため、行番号「2902」にて「LDH WA,(HL+)」が実行されることにより、Wレジスタ104aの下位4ビットに当該第1エリアの上位4ビットである「0101B」が設定されるとともに、当該Wレジスタ104aの上位4ビットが「0」でマスクされる。また、Aレジスタ104bの下位4ビットに当該第1エリアの下位4ビットである「1010B」が設定されるとともに、当該Aレジスタ104bの上位4ビットが「0」でマスクされる。これにより、Wレジスタ104aに初期設定用の「00000101B」というデータが格納されている状態とすることができるとともに、Aレジスタ104bに初期設定用の「00001010B」というデータが格納されている状態とすることができる。また、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9401H」に更新される。
「2903」の行番号には「LD E,(HL)」という命令が設定されている。「LD」はLD命令であり、「E」は転送先としてEレジスタ106bを指定する内容である。また、「(HL)」は転送元としてHLレジスタ107に格納されているアドレスに対応するエリアに格納されているデータを指定する内容である。上述したとおり、第1初期化テーブル64yにおいて「9401H」に対応する第2エリアには、不正電波検知カウンタ133のアドレスにおける下位1バイトである「21H」が設定されている。行番号「2903」にて「LD E,(HL)」が実行されることにより、Eレジスタ106bに「21H」が格納される。これにより、不正電波検知カウンタ133のアドレスである「0021H」がDEレジスタ106に格納されている状態とすることができる。
「2904」の行番号には「RET Z」という命令が設定されている。行番号「2904」における「RET Z」は、Eレジスタ106bに終了用データが設定されている場合には本データ設定実行処理を終了するとともに、Eレジスタ106bに終了用データが設定されていない場合には次の行番号に進むことを指示する命令である。本実施形態では、終了用データとして「63H」が設定されている。上述したとおり、直前の行番号「2903」にてEレジスタ106bには「21H」が格納されているため、行番号「2905」に進む。
「2905」の行番号には「INC HL」という命令が設定されている。行番号「2905」にて「INC HL」が実行されることにより、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9402H」に更新される。本実施形態において主側MPU62は、LD更新実行回路151を不具備である。HLレジスタ107に格納されているアドレスの更新は「INC」という演算命令を利用して行われる。
「2906」の行番号には「LD (DE),W」という命令が設定されている。「LD」はLD命令であり、「(DE)」は転送先としてDEレジスタ106に格納されているアドレスに対応するエリアを指定する内容であり、「W」は転送元としてWレジスタ104aを指定する内容である。既に説明したとおり、DEレジスタ106には不正電波検知カウンタ133のアドレスである「0021H」が格納されているとともに、Wレジスタ104aには初期設定用のデータである「00000101B」が格納されている。このため、行番号「2905」にて「LD (DE),W」が実行されることにより、不正電波検知カウンタ133に当該初期設定用のデータがロードされる。これにより、不正電波検知カウンタ133に初期値である「5」をセットすることができる。
「2907」の行番号には、「2903」の行番号と同様に、「LD E,(HL)」という命令が設定されている。上述したとおり、HLレジスタ107には「9402H」が格納されている。既に説明したとおり、第1初期化テーブル64y(図81(a))において「9402H」に対応する第3エリアには、不正磁気検知カウンタ134のアドレスにおける下位1バイトである「22H」が設定されている。行番号「2907」にて「LD E,(HL)」が実行されることによりEレジスタ106bに「22H」がロードされる。これにより、DEレジスタ106に不正磁気検知カウンタ134のアドレスである「0022H」が格納されている状態とすることができる。
「2908」の行番号には、「2904」の行番号と同様に、「RET Z」という命令が設定されている。行番号「2908」における「RET Z」では、行番号「2904」における「RET Z」と同様に、Eレジスタ106bに終了用データである「63H」が設定されている場合に本データ設定実行処理を終了するとともに、Eレジスタ106bに当該終了用データが設定されていない場合に次の行番号に進む。上述したとおり、直前の行番号「2907」にてEレジスタ106bには「22H」が格納されているため、行番号「2909」に進む。
「2909」の行番号には、「2905」の行番号と同様に、「INC HL」という命令が設定されている。行番号「2909」にて「INC HL」が実行されることにより、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9403H」に更新される。
「2910」の行番号には、「LD (DE),A」という命令が設定されている。「LD」はLD命令であり、「(DE)」は転送先としてDEレジスタ106に格納されているアドレスに対応するエリアを指定する内容であり、「A」は転送元としてAレジスタ104bを指定する内容である。既に説明したとおり、DEレジスタ106には不正磁気検知カウンタ134のアドレスである「0022H」が格納されているとともに、Aレジスタ104bには初期設定用のデータである「00001010B」が格納されている。このため、行番号「2910」にて「LD (DE),A」が実行されることにより、不正磁気検知カウンタ134に当該初期設定用のデータがロードされる。これにより、不正磁気検知カウンタ134に初期値として「10」をセットすることができる。
「2911」の行番号には、「JR 4BTS20」という命令が設定されている。「JR」は無条件ジャンプ命令としてのJR命令であり、「4BTS20」はジャンプ先としてデータ設定実行処理の開始アドレスを指定する内容である。「JR 4BTS20」が実行されることにより、本データ設定実行処理の行番号「2901」に進む。
その後、第1初期化テーブル64y(図81(a))の「9403H」〜「9405H」のアドレス範囲に設定されているデータを利用して行番号「2902」〜「2911」の命令が実行される。図81(a)に示すように、「9402H」に続く「9403H」に対応する第1エリアの上位4ビットには異常振動検知カウンタ135に初期値として「5」を設定するための初期設定データとして「1111B」が設定されている。また、当該第1エリアの下位4ビットには使用されない調整用データとして「0000B」が設定されている。「9403H」に続く「9404H」に対応する第2エリアには異常振動検知カウンタ135のアドレスの下位1バイトである「23H」が設定されている。また、「9404H」に続く「9405H」に対応する第3エリアには終了用データとして「00H」が設定されている。
データ設定実行処理(図82(b))の説明に戻り、行番号「2901」では何ら命令を実行することなく行番号「2902」に進む。上述したとおり、第1初期化テーブル64yにおいて「9403H」のアドレスに対応する第1エリアの上位4ビットには初期設定用データ(「1111B」)が設定されているとともに、下位4ビットには調整用データ(「0000B」)が設定されている。行番号「2902」にて「LDH WA,(HL)」が実行されることにより、Wレジスタ104aの下位4ビットに当該第1エリアの上位4ビットである「1111B」が設定されるとともに、当該Wレジスタ104aの上位4ビットが「0」でマスクされる。また、Aレジスタ104bの下位4ビットに当該第1エリアの下位4ビットである「0000B」が設定されるとともに、当該Aレジスタ104bの上位4ビットが「0」でマスクされる。これにより、Wレジスタ104aに初期設定用の「00001111B」というデータが格納されている状態とすることができる。Aレジスタ104bには調整用の「00000000B」が格納されている状態となる。また、HLレジスタ107の値に1が加算されて当該HLレジスタ107に格納されているアドレスが「9404H」に更新される。
上述したとおり、第1初期化テーブル64yにおいて「9404H」に対応する第2エリアには、異常振動検知カウンタ135に対応するアドレスの下位1バイトである「23H」が設定されている。行番号「2903」にて「LD E,(HL)」が実行されることにより、Eレジスタ106bに「23H」が格納される。これにより、異常振動検知カウンタ135のアドレスである「0023H」がDEレジスタ106に格納されている状態とすることができる。その後、行番号「2904」では、Eレジスタ106bに格納されているデータは「23H」であり、終了用データ(「63H」)ではないため、行番号「2905」に進む。行番号「2905」では、「INC HL」が実行されることにより、HLレジスタ107の値が1加算されて「9405H」に更新される。
既に説明したとおり、DEレジスタ106には異常振動検知カウンタ135のアドレスである「0023H」が格納されているとともに、Wレジスタ104aには初期設定用のデータである「00001111B」が格納されている。このため、行番号「2906」にて「LD (DE),W」が実行されることにより、異常振動検知カウンタ135に当該初期設定用のデータがロードされる。これにより、異常振動検知カウンタ135に初期値として「15」をセットすることができる。
上述したとおり、「9405H」に対応する第3エリアには終了用データである「63H」が設定されている。行番号「2907」にて「LD E,(HL)」が実行されることにより、Eレジスタ106bに「63H」がロードされる。その後、Eレジスタ106bに終了用データ(「63H」)が格納されている状態において、行番号「2908」にて「RET Z」が実行されることにより、本データ設定処理が終了する。既に説明したとおり、電源投入設定処理(図82(a))の行番号「2803」にてデータ設定実行処理が終了した場合には、行番号「2804」に進む。
次に、電源投入設定処理(図82(a))の行番号「2805」にてデータ設定実行処理(図82(b))が実行される場合について詳細に説明する。行番号「2805」では、第2初期化テーブル64zの開始アドレスである「9406H」がHLレジスタ107に格納されているとともに、停電エリア131、不正監視タイマカウンタ132の下位エリア及び不正監視タイマカウンタ132の上位エリアのアドレスに共通する上位1バイトのデータ(「00H」)がDレジスタ106aに格納されている状態においてデータ設定実行処理が実行される。
行番号「2805」にて実行されるデータ設定処理では、先ず第2初期化テーブル64zにおける「9406H」〜「9408H」のアドレス範囲に設定されているデータを利用して行番号「2902」〜「2911」の命令が実行される。図81(b)に示すように、第2初期化テーブル64zの開始アドレスである「9406H」に対応する第1エリアの上位4ビットには停電エリア131を「0」クリアするためのデータとして「0000B」が設定されているとともに、当該第1エリアの下位4ビットには不正監視タイマカウンタ132の下位エリアを「0」クリアするための「0」クリアデータとして「0000B」が設定されている。「9406H」に続く「9407H」に対応する第2エリアには停電エリア131のアドレスの下位1バイトである「01H」が設定されている。また、「9407H」に続く「9408H」に対応する第3エリアには不正監視タイマカウンタ132の下位エリアに対応するアドレスの下位1バイトである「08H」が設定されている。
データ設定実行処理(図82(b))の行番号「2901」では、既に説明したとおり、何ら命令が実行されることなく行番号「2902」に進む。上述したとおり、第2初期化テーブル64zにおいて「9406H」に対応する第1エリアの上位4ビット及び下位4ビットには「0」クリアデータ(「0000B」)がセットされている。このため、行番号「2902」にて「LDH WA,(HL+)」が実行されることにより、Wレジスタ104aの下位4ビットに当該第1エリアの上位4ビットである「0000B」が設定されるとともに、当該Wレジスタ104aの上位4ビットが「0」でマスクされる。また、Aレジスタ104bの下位4ビットに当該第1エリアの下位4ビットである「0000B」が設定されるとともに、当該Aレジスタ104bの上位4ビットが「0」でマスクされる。これにより、Wレジスタ104a及びAレジスタ104bに「0」クリア用の「00000000B」というデータが格納されている状態とすることができる。また、HLレジスタ107の値が「1」加算されて、当該HLレジスタ107に格納されているアドレスが「9407H」に更新される。
上述したとおり、第2初期化テーブル64zにおいて「9407H」に対応する第2エリアには、停電エリア131のアドレスにおける下位1バイトである「01H」がセットされている。行番号「2903」にて「LD E,(HL)」が実行されることにより、Eレジスタ106bに「01H」が格納される。これにより、停電エリア131のアドレスである「0001H」がDEレジスタ106に格納されている状態とすることができる。続く行番号「2904」には「RET Z」が設定されているが、Eレジスタ106bに格納されているデータは「01H」であり、終了用データ(「63H」)ではないため、行番号「2905」に進む。行番号「2905」では、「INC HL」を実行することにより、HLレジスタ107の値を1加算して「9408H」に更新する。
既に説明したとおり、DEレジスタ106には停電エリア131のアドレスである「0001H」が格納されているとともに、Wレジスタ104aには「0」クリア用のデータである「00000000B」が格納されている。このため、行番号「2906」にて「LD (DE),W」が実行されることにより、停電エリア131に当該「0」クリア用のデータがロードされて、停電エリア131が「0」クリアされる。既に説明したとおり、停電エリア131の最下位ビットには停電フラグ131aが設けられている。このため、停電エリア131を「0」クリアすることにより停電フラグ131aを「0」クリアすることができる。
図81(b)に示すように、第2初期化テーブル64z(図81(b))において「9408H」に対応する第3エリアには、不正監視タイマカウンタ132の下位エリアのアドレスにおける下位1バイトである「08H」が設定されている。行番号「2907」にて「LD E,(HL)」が実行されることによりEレジスタ106bに「08H」がロードされる。これにより、DEレジスタ106に不正監視タイマカウンタ132の下位エリアのアドレスである「0008H」が格納されている状態とすることができる。続く行番号「2908」には「RET Z」が設定されているが、Eレジスタ106bに格納されているデータは「08H」であり、終了用データ(「63H」)ではないため、行番号「2909」に進む。行番号「2909」では、「INC HL」を実行することにより、HLレジスタ107の値を1加算して「9409H」に更新する。
既に説明したとおり、DEレジスタ106には不正監視タイマカウンタ132の下位エリアのアドレスである「0008H」が格納されているとともに、Aレジスタ104bには「0」クリア用のデータである「00000000B」が格納されている。このため、行番号「2910」にて「LD (DE),A」が実行されることにより、不正監視タイマカウンタ132の下位エリアに当該「0」クリア用のデータがロードされて、不正監視タイマカウンタ132の下位エリアが「0」クリアされる。
その後、行番号「2911」にて「JR 4BTS20」が実行されることにより、本データ設定実行処理の行番号「2901」に進む。そして今度は、第2初期化テーブル64zの「9409H」〜「940BH」のアドレス範囲に設定されているデータを利用して行番号「2902」〜「2911」の命令が実行される。
図81(b)に示すように、「9408H」に続く「9409H」に対応する第1エリアの上位4ビットには不正監視タイマカウンタ132の上位エリアを「0」クリアするためのデータとして「0000B」が設定されている。また、当該第1エリアの下位4ビットには使用されない調整用データとして「0000B」が設定されている。「9409H」に続く「940AH」に対応する第2エリアには不正監視タイマカウンタ132の上位エリアに対応するアドレス(「0009H」)の下位1バイトである「09H」が設定されている。また、「940AH」に続く「940BH」に対応する第3エリアには終了用データとして「63H」が設定されている。
データ設定実行処理(図82(b))の説明に戻り、行番号「2901」では何ら命令を実行することなく行番号「2902」に進む。上述したとおり、第2初期化テーブル64zにおいて「9409H」のアドレスに対応する第1エリアの上位4ビットには「0」クリア用のデータ(「0000B」)が設定されているとともに、下位4ビットには調整用データ(「0000B」)が設定されている。行番号「2902」にて「LDH WA,(HL+)」が実行されることにより、Wレジスタ104aの下位4ビットに当該第1エリアの上位4ビットである「0000B」が設定されるとともに、当該Wレジスタ104aの上位4ビットが「0」でマスクされる。また、Aレジスタ104bの下位4ビットに当該第1エリアの下位4ビットである「0000B」が設定されるとともに、当該Aレジスタ104bの上位4ビットが「0」でマスクされる。これにより、Wレジスタ104a及びAレジスタ104bに「0」クリア用の「00000000B」というデータが格納されている状態とすることができる。また、HLレジスタ107の値が1加算されて当該HLレジスタ107に格納されているアドレスが「940AH」に更新される。
上述したとおり、第2初期化テーブル64z(図81(b))において940AHに対応する第2エリアには、不正監視タイマカウンタ132の上位エリアに対応するアドレスの下位1バイトである「09H」が設定されている。行番号「2903」にて「LD E,(HL)」が実行されることにより、Eレジスタ106bに「09H」が格納される。これにより、不正監視タイマカウンタ132の上位エリアのアドレスである「0009H」がDEレジスタ106に格納されている状態とすることができる。続く行番号「2904」には「RET Z」が設定されているが、Eレジスタ106bに格納されているデータは「09H」であり、終了用データ(「63H」)ではないため、行番号「2905」に進む。
行番号「2905」では、「INC HL」を実行することにより、HLレジスタ107の値を1加算して「940BH」に更新する。これにより、HLレジスタ107に、第2初期化テーブル64zの最終アドレスであるとともに乱数最大値テーブル64αの開始アドレスである「940BH」が格納されている状態となる。
既に説明したとおり、DEレジスタ106には不正監視タイマカウンタ132の上位エリアのアドレスである「0009H」が格納されているとともに、Wレジスタ104aには「0」クリア用のデータである「00000000B」が格納されている。このため、行番号「2906」にて「LD (DE),W」が実行されることにより、不正監視タイマカウンタ132の上位エリアに当該「0」クリア用のデータがロードされる。これにより、不正監視タイマカウンタ132の上位エリアを「0」クリアすることができる。
上述したとおり、940BHに対応する第3エリアには終了用データである「63H」が設定されている。行番号「2907」にて「LD E,(HL)」が実行されることにより、Eレジスタ106bに「63H」がロードされる。その後、Eレジスタ106bに終了用データ(「63H」)が格納されている状態において、行番号「2908」にて「RET Z」が実行されることにより、本データ設定実行処理が終了する。
既に説明したとおり、電源投入設定処理(図82(a))の行番号「2805」にて呼び出されたデータ設定実行処理が終了した場合には、行番号「2806」に進む。図82(a)を参照しながら既に説明したとおり、「2806」の行番号には「RET」という命令が設定されており、当該「RET」が実行されることで、電源投入設定処理が終了する。
このように、第2初期化テーブル64zの最終アドレスであるとともに乱数最大値テーブル64αの開始アドレスである「940BH」がHLレジスタ107に格納されている状態で、メイン処理(図15)のステップS118における電源投入設定処理が終了し、ステップS119における乱数最大値設定処理が実行される。このため、乱数最大値設定処理の開始時に、HLレジスタ107に乱数最大値テーブル64αの開始アドレスを設定するための処理を省略することができる。これにより、乱数最大値設定処理を実行するためのプログラムのデータ容量を低減することができる。
乱数最大値設定処理(図83)は、乱数最大値テーブル64αを利用して実行される。図81(c)に示すように、乱数最大値テーブル64αにおける「940BH」〜「9413H」のアドレスには、上記第1の実施形態における乱数最大値テーブル64p(図23(a))の「9200H」〜「9208H」のアドレスに設定されているデータと同一のデータが設定されている。具体的には、「940BH」には大当たり種別カウンタC2の最大値データである「63H」が設定されており、「940CH」にはリーチ乱数カウンタC3の最大値データである「EEH」が設定されており、「940DH」には変動種別カウンタC5の最大値データである「FAH」が設定されており、「940EH」には普電乱数カウンタC6の最大値データである「C6H」が設定されている。また、「940FH」〜「9410H」には当たり乱数カウンタC1の最大値データである「1F3FH」(「7999」)が設定されており、「9411H」〜「9412H」には乱数初期値カウンタC4の最大値データである「1F3FH」が設定されている。さらにまた、「9413H」には乱数最大値設定処理の終了用データとして「00H」が設定されている。
次に、主側CPU63にて実行される乱数最大値設定処理について図83のフローチャートを参照しながら説明する。上記第1の実施形態において既に説明したとおり、乱数最大値設定処理はメイン処理(図15)のステップS119にて実行される。なお、乱数最大値設定処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
乱数最大値設定処理では、まず上記第1の実施形態における最大値設定開始処理(図24(b))の行番号「1302」と同様に、「LDY BC,19H」という命令を実行する(ステップS3001)。「LDY」は第1LDY実行回路156による第1LDY命令であり、「BC」は転送先としてBCレジスタ105を指定する内容であり、「19H」は「転送元」として「19H」という1バイトの数値情報を設定する内容である。上記第1の実施形態において既に説明したとおり、IYレジスタ109には、メイン処理(図15)のステップS103にて特定制御用基準アドレスとして「0000H」が設定されている。このため、「LDY BC,19H」が実行されることにより、「転送元」として設定されている「19H」に対してIYレジスタ109に設定されている「0000H」を加算して得られる「0019H」がBCレジスタ105にロードされる。これにより、BCレジスタ105に特定制御用のワークエリア121における大当たり種別用最大値カウンタCN2のアドレスをセットすることができる。
既に説明したとおり、本乱数最大値設定処理(図83)は、HLレジスタ107に乱数最大値テーブル64αの開始アドレスである「940BH」が格納されている状態で実行される。これにより、HLレジスタ107に当該開始アドレスを設定するための処理を省略することができる。
ステップS3001の処理を行った後、「LD A,(HL)」という命令を実行する(ステップS3002)。「LD」はLD命令であり、「A」は転送先としてAレジスタ104bを指定する内容であり、「(HL)」は転送元としてHLレジスタ107に格納されているアドレスに対応するエリアに格納されている最大値データを指定する内容である。「LD A,(HL)」が実行されることにより、HLレジスタ107に格納されているアドレスデータ(「940BH」)に対応する最大値データ(「63H」)がAレジスタ104bにロードされる。これにより、Aレジスタ104bに設定対象の最大値データをセットすることができる。
その後、「INC HL」という命令を実行する(ステップS3003)。「INC HL」が実行されることにより、HLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「940CH」に更新される。これにより、設定対象の最大値データを更新することができる。
ステップS3002〜ステップS3006の処理は、後述するステップS3004にて肯定判定が行われるまで繰り返し実行される。ステップS3003の処理が実行される度に、大当たり種別カウンタC2の最大値データ→リーチ乱数カウンタC3の最大値データ→変動種別カウンタC5の最大値データ→普電乱数カウンタC6の最大値データ→当たり乱数カウンタC1の最大値データの下位1バイト→当たり乱数カウンタC1の最大値データの上位1バイト→乱数初期値カウンタC4の最大値データの下位1バイト→乱数初期値カウンタC4の最大値データの上位1バイトの順番で、設定対象の最大値データが更新される。また、HLレジスタ107に格納されているアドレスが「9413H」に更新された状態でステップS3002の処理が実行された場合には、Aレジスタ104bに終了用データ(「00H」)が設定される。
ステップS3003の処理を行った後、ステップS3004〜ステップS3006では、上記第1の実施形態における乱数最大値設定処理(図23(b))のステップS303〜ステップS305と同様の処理を実行する。具体的には、まずAレジスタ104bに終了用データである「00H」が設定されているか否かを判定し(ステップS3004)、Aレジスタ104bに終了用データが設定されている場合(ステップS3004:YES)には、本乱数最大値設定処理を終了する。
一方、Aレジスタ104bに終了用データが設定されていない場合(ステップS3004:NO)には、最大値データの設定処理を実行する(ステップS3005)。最大値データの設定処理では、「LD (BC),A」という命令を実行する。「LD」はロード命令であり、「(BC)」は転送先としてBCレジスタ105に格納されているアドレスに対応する設定対象カウンタを指定する内容であり、「A」は転送元としてAレジスタ104bを指定する内容である。「LD (BC),A」が実行されることにより、Aレジスタ104bに格納されている最大値データが最大値カウンタCN1〜CN6のうち設定対象カウンタとして選択されているカウンタにロードされる。これにより、設定対象カウンタに最大値データを設定することができる。
その後、設定対象更新処理を実行する(ステップS3006)。設定対象更新処理では、「INC BC」という命令を実行する。「INC」は加算対象に対して「1」を加算する命令であり、「BC」は当該加算対象としてBCレジスタ105の値を指定する内容である。「INC BC」が実行されることにより、BCレジスタ105の値に「1」が加算される。これにより、設定対象カウンタとして選択されている最大値カウンタCN1〜CN6が更新される。ステップS3006にて設定対象更新処理が実行される度に、大当たり種別用最大値カウンタCN2→リーチ用最大値カウンタCN3→変動種別用最大値カウンタCN5→普電用最大値カウンタCN6→当たり用最大値カウンタCN1の下位エリア→当たり用最大値カウンタCN1の上位エリア→初期値用最大値カウンタCN4の下位エリア→初期値用最大値カウンタCN4の上位エリアの順番で、設定対象カウンタが更新される。
ステップS3006にて設定対象更新処理を実行した後は、ステップS3002に戻り、Aレジスタ104bに終了用データが格納されてステップS3004にて肯定判定が行われるまで、ステップS3002〜ステップS3006の処理を繰り返し実行する。これにより、最大値カウンタCN1〜CN6に最大値データを設定することができる。
以上詳述した本実施形態によれば、以下の優れた効果を奏する。
第2初期化テーブル64zの最終アドレスと乱数最大値テーブル64αの開始アドレスとが共通のアドレスとなっている。「940BH」は、第2初期化テーブル64zの最終アドレスであるとともに乱数最大値テーブル64αの開始アドレスである。主側ROM64において「940BH」のアドレスに対応するエリアには、大当たり種別用最大値カウンタCN2の最大値データである「63H」が設定されている。当該「63H」は、電源投入設定処理(図82(a))において実行されるデータ設定実行処理(図82(b))の終了用データに設定されている。第2初期化テーブル64zの最終アドレスであるとともに乱数最大値テーブル64αの開始アドレスである「940BH」がHLレジスタ107に格納されている状態で、メイン処理(図15)のステップS118における電源投入設定処理が終了し、ステップS119における乱数最大値設定処理が実行される。このため、乱数最大値設定処理の開始時に、HLレジスタ107に乱数最大値テーブル64αの開始アドレスを設定するための処理を省略することができる。これにより、乱数最大値設定処理を実行するためのプログラムのデータ容量を低減することができる。
主側ROM64において1つのアドレスに対応するエリアに大当たり種別用最大値カウンタCN2の最大値データであるとともにデータ設定実行処理(図82(b))の終了用データである「63H」が設定されている構成であることにより、主側ROM64において大当たり種別用最大値カウンタCN2の最大値データが設定されているエリアとは別に、データ設定実行処理(図82(b))の終了用データが設定されているエリアが設けられている構成と比較して、主側ROM64において第2初期化テーブル64z及び乱数最大値テーブル64αの合計のデータ容量が低減されている。
<第5の実施形態>
本実施形態では、大当たり種別用最大値カウンタCN2のアドレスの下位1バイトである「19H」がEレジスタ106bに格納されている状態で電源投入設定処理が終了し、当該「19H」を利用して乱数最大値設定処理が実行される点において上記第1の実施形態と相違している。以下、上記第1の実施形態と相違する構成について説明する。なお、上記第1の実施形態と同一の構成については基本的にその説明を省略する。
図84(a)は本実施形態における第2初期化テーブル64βのデータ構成を説明するための説明図である。第2初期化テーブル64β(図84(a))は、上記第1の実施形態における第2初期化テーブル64m(図18(b))と同様に、主側ROM64における「9406H」〜「940BH」のアドレスに設定されている。
図84(a)に示すように、「940BH」のアドレスに対応する第3エリアには、終了用データとして、大当たり種別用最大値カウンタCN2のアドレスにおける下位1バイトである「19H」が設定されている。上記第1の実施形態において既に説明したとおり、メイン処理(図15)のステップS118にて電源投入設定処理(図17(c))が実行される。当該電源投入設定処理の行番号「1004」にて実行されるデータ設定実行処理(図20(c))では、行番号「1107」にて「RET Z」という命令が実行される。当該行番号「1107」では、Eレジスタ106bに終了用データが設定されている場合にデータ設定実行処理が終了するとともに電源投入設定処理が終了する。その後、メイン処理(図15)のステップS119にて乱数最大値設定処理が実行される。
本実施形態では、データ設定実行処理(図20(c))の終了用データとして「19H」が設定されている。このため、行番号「1107」では、Eレジスタ106bに終了用データとして「19H」が設定されている場合にデータ設定実行処理が終了するとともに電源投入設定処理が終了する。また、上記第1の実施形態において既に説明したとおり、電源投入設定処理(図17)の行番号「1002」にてDレジスタ106aには「00H」が設定されている。このため、大当たり種別用最大値カウンタCN2のアドレスである「0019H」がDEレジスタ106に格納されている状態で乱数最大値設定処理(ステップS119)を開始することができる。
本実施形態における乱数最大値設定処理(図84(b))では、特定制御用のワークエリア121において「0019H」のアドレスに設定されている大当たり種別用最大値カウンタCN2、「001AH」のアドレスに設定されているリーチ用最大値カウンタCN3、「001BH」のアドレスに設定されている変動種別用最大値カウンタCN5、「001CH」のアドレスに設定されている普電用最大値カウンタCN6、「001DH」〜「001EH」のアドレスに設定されている当たり用最大値カウンタCN1及び「001FH」〜「0020H」のアドレスに設定されている初期値用最大値カウンタCN4(図12(b)参照)のうち設定対象カウンタとして選択されている最大値カウンタのアドレスがDEレジスタ106に設定される。上述したとおり、乱数最大値設定処理(図84(b))は、DEレジスタ106に大当たり種別用最大値カウンタCN2のアドレスである「0019H」が格納されている状態、すなわち設定対象カウンタとして大当たり種別用最大値カウンタCN2が設定されている状態で開始される。このため、乱数最大値設定処理の開始時に、設定対象カウンタとして大当たり種別用最大値カウンタCN2を設定するためにDEレジスタ106に「0019H」を設定する処理を省略することができる。これにより、乱数最大値設定処理を実行するためのプログラムのデータ容量を低減することができる。
次に、主側CPU63にて実行される乱数最大値設定処理について図84(b)のフローチャートを参照しながら説明する。上記第1の実施形態において既に説明したとおり、乱数最大値設定処理はメイン処理(図15)のステップS119にて実行される。なお、乱数最大値設定処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
乱数最大値設定処理では、まず上記第1の実施形態における最大値設定開始処理(図24(b))の行番号「1301」と同様に、「LDT HL,200H」という命令を実行する(ステップS3101)。「LDT」はLDT実行回路149によるLDT命令であり、「HL」は転送先としてHLレジスタ107を指定する内容であり、「200H」は転送元として「200H」という12ビットの数値情報を設定する内容である。上記第1の実施形態において既に説明したとおり、TPレジスタ111には、メイン処理(図15)のステップS104にてデータテーブルの基準アドレスである「9000H」が設定されている。このため、「LDT HL,200H」が実行されることにより、「転送元」として設定されている「200H」に対してTPレジスタ111に設定されている「9000H」を加算して得られる「9200H」がHLレジスタ107にロードされる。これにより、HLレジスタ107に乱数最大値テーブル64p(図23(a))の開始アドレスをセットすることができる。
このように、LDT命令を利用してHLレジスタ107に乱数最大値テーブル64pの開始アドレスを設定する構成であることにより、LD命令を利用してHLレジスタ107に乱数最大値テーブル64pの開始アドレスを設定する構成と比較して、最大値設定開始処理を実行するためのプログラムのデータ容量を低減することができる。
その後、ステップS3102〜ステップS3103では、上記第1の実施形態における乱数最大値設定処理(図23(b))のステップS302〜ステップS303と同様の処理を実行する。具体的には、まず「LD A,(HL+)」という命令を実行する(ステップS3102)。「LD」はLD更新実行回路151によるLD更新命令であり、「A」は転送先としてAレジスタ104bを指定する内容であり、「(HL+)」は転送元としてHLレジスタ107に格納されているアドレスに対応するエリアに格納されている最大値データを指定する内容であるとともに、当該最大値データのロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新することを指示する内容である。「LD A,(HL+)」が実行されることにより、HLレジスタ107に格納されているアドレスデータ(「9200H」)に対応する最大値データ(「63H」)がAレジスタ104bにロードされる。これにより、Aレジスタ104bに設定対象の最大値データをセットすることができる。また、当該最大値データのロード後にHLレジスタ107の値に「1」が加算されて当該HLレジスタ107に格納されているアドレスが「9201H」に更新される。これにより、設定対象の最大値データを更新することができる。
このように、LD更新命令を利用することにより、乱数最大値テーブル64pにおいて設定対象として選択されている最大値データをAレジスタ104bにロードする処理と、当該最大値データのロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、を一命令で実行することができる。このため、これら2つの処理を実行するために複数の命令をプログラムに設定する構成と比較して、乱数最大値設定処理を実行するためのプログラムのデータ容量を低減することができる。
ステップS3102〜ステップS3105の処理は、後述するステップS3103にて肯定判定が行われるまで繰り返し実行される。ステップS3102の処理が実行される度に、大当たり種別カウンタC2の最大値データ→リーチ乱数カウンタC3の最大値データ→変動種別カウンタC5の最大値データ→普電乱数カウンタC6の最大値データ→当たり乱数カウンタC1の最大値データの下位1バイト→当たり乱数カウンタC1の最大値データの上位1バイト→乱数初期値カウンタC4の最大値データの下位1バイト→乱数初期値カウンタC4の最大値データの上位1バイトの順番で、設定対象の最大値データが更新される。また、HLレジスタ107に格納されているアドレスが「9208H」に更新された状態でステップS3102の処理が実行された場合には、Aレジスタ104bに終了用データ(「00H」)が設定される。
ステップS3102の処理を実行した後は、Aレジスタ104bに終了用データ(「00H」)が設定されているか否かを判定し(ステップS3103)、Aレジスタ104bに終了用データが設定されている場合(ステップS3103:YES)には、本乱数最大値設定処理(図84(b))を終了する。
ステップS3103にて否定判定を行った場合には、「LD (DE),A」という命令を実行する(ステップS3104)。「LD」はロード命令であり、「(DE)」は転送先としてDEレジスタ106に格納されているアドレスに対応する設定対象カウンタを指定する内容であり、「A」は転送元としてAレジスタ104bを指定する内容である。「LD (DE),A」が実行されることにより、Aレジスタ104bに格納されている最大値データが最大値カウンタCN1〜CN6のうち設定対象カウンタとして選択されている最大値カウンタにロードされる。これにより、設定対象カウンタに最大値データを設定することができる。
その後、設定対象更新処理を実行する(ステップS3105)。設定対象更新処理では、「INC DE」という命令を実行する。「INC」は加算対象に対して「1」を加算する命令であり、「DE」は当該加算対象としてDEレジスタ106の値を指定する内容である。「INC DE」が実行されることにより、DEレジスタ106の値に「1」が加算される。これにより、設定対象カウンタとして選択されている最大値カウンタCN1〜CN6が更新される。ステップS3105にて設定対象更新処理が実行される度に、大当たり種別用最大値カウンタCN2→リーチ用最大値カウンタCN3→変動種別用最大値カウンタCN5→普電用最大値カウンタCN6→当たり用最大値カウンタCN1の下位エリア→当たり用最大値カウンタCN1の上位エリア→初期値用最大値カウンタCN4の下位エリア→初期値用最大値カウンタCN4の上位エリアの順番で、設定対象カウンタが更新される。
ステップS3105にて設定対象更新処理を実行した後は、ステップS3102に戻り、Aレジスタ104bに終了用データが格納されてステップS3103にて肯定判定が行われるまで、ステップS3102〜ステップS3105の処理を繰り返し実行する。これにより、最大値カウンタCN1〜CN6に最大値データを設定することができる。
以上詳述した本実施形態によれば、以下の優れた効果を奏する。
乱数最大値設定処理(図84(b))では、特定制御用のワークエリア121に設定されている6つの最大値カウンタCN1〜CN6のうち設定対象カウンタとして選択されている最大値カウンタのアドレスがDEレジスタ106に設定される。第2初期化テーブル64βには、データ設定実行処理(図20(c))の終了用データとして、大当たり種別用最大値カウンタCN2のアドレスにおける下位1バイトである「19H」が設定されている。DEレジスタ106に大当たり種別用最大値カウンタCN2のアドレスである「0019H」が格納されている状態、すなわち設定対象カウンタとして大当たり種別用最大値カウンタCN2が設定されている状態で、電源投入設定処理が終了するとともに乱数最大値設定処理が開始される。このため、乱数最大値設定処理の開始時に、設定対象カウンタとして大当たり種別用最大値カウンタCN2を設定するためにDEレジスタ106に「0019H」を設定する処理を省略することができる。これにより、乱数最大値設定処理を実行するためのプログラムのデータ容量を低減することができる。
<第6の実施形態>
本実施形態では、主側MPU62にて特殊LDB命令が実行される点において上記第1の実施形態と相違している。以下、上記第1の実施形態と相違する構成について説明する。なお、上記第1の実施形態と同一の構成については基本的にその説明を省略する。
本実施形態では、特定制御用のワークエリア121における特図特電カウンタの値に対応する開始アドレスSA0〜SA6をHLレジスタ107に取得するために、後述するアドレス取得実行処理(図88)のステップS3208にて「LDB HL,(HL).A」という特殊LDB命令が実行される。図85(a)は本実施形態における主側MPU62の構成を説明するための説明図である。図85(a)に示すように、主側MPU62は特殊LDB命令を実行するための専用回路である特殊LDB実行回路201を備えており、主側CPU63は特殊LDB命令を実行することができる。
特殊LDB命令は、2バイトの取得データ指定データのうち上位12ビット(第4〜第15ビット)のデータを利用して取得開始アドレスが算出されるとともに、当該取得データ指定データのうち下位4ビット(第0〜第3ビット)のデータを利用して取得開始ビット目が算出される。
特殊LDB命令の命令コードは、上記第1の実施形態におけるLDB命令の命令コードと同様に、「LDB 転送先,取得データ指定.取得ビット数指定」という構成を有している。特殊LDB命令では、「転送先」としてペアレジスタが設定される。特殊LDB命令において「転送先」として設定されるペアレジスタはHLレジスタ107である。なお、LDB命令において「転送先」のペアレジスタとして、WAレジスタ104、BCレジスタ105、又はDEレジスタ106が設定される構成としてもよい。
特殊LDB命令では、「転送先」のHLレジスタ107に1〜16のいずれかのビット数のデータがロードされる。「転送先」のHLレジスタ107に1〜15のいずれかのビット数のデータがロードされる場合には、HLレジスタ107における下位側のビットに当該データがロードされるとともに、HLレジスタ107における上位側のビットが「0」でマスクされる。例えば、「転送先」のHLレジスタ107に12ビットのデータがロードされる場合には、HLレジスタ107の下位側に存在する第0〜第11ビットに当該データがロードされるとともに、上位側に存在する第12〜第15ビットが「0」でマスクされる。
特殊LDB命令では、「取得データ指定」として「(HL)」が設定される。特殊LDB命令では、「取得データ指定」として設定されたHLレジスタ107に格納されている2バイトのデータ(以下、取得データ指定データという。)に基づいて、「転送先」のレジスタに転送されるデータの取得開始アドレス及び取得開始ビット目が特定される。
特殊LDB命令では「取得ビット数指定」として、「0」〜「15」のいずれかの数値が格納されている汎用レジスタが設定される。特殊LDB命令において「取得ビット数指定」として設定される汎用レジスタはAレジスタ104bである。なお、特殊LDB命令において「取得ビット数指定」の汎用レジスタとして、Bレジスタ105a、Cレジスタ105b、Dレジスタ106a又はEレジスタ106bが設定される構成としてもよい。
「取得ビット数指定」は、「転送先」のHLレジスタ107にロードされるデータのビット数を指定するためのデータ(取得ビット数指定データ)である。特殊LDB命令では、特殊LDB実行回路201にて「取得ビット数指定」に設定されているAレジスタ104bの値に「1」を加算する演算が行われて、当該演算結果に対応するビット数のデータが「転送先」にロードされる。つまり、「転送先」には、「取得ビット数指定」に「1」を加算して得られる値に対応するビット数のデータがロードされる。このため、「取得ビット数指定」には、「転送先」にロードするデータのビット数から「1」を減算した値が設定される。具体的には、「取得ビット数指定」として「11」という数値が格納されているAレジスタ104bが設定されている場合、「転送先」のレジスタには当該「11」に「1」を加算して得られる12ビットのデータがロードされる。
特殊LDB命令が実行されることにより、主側ROM64において取得開始アドレスに対応するエリアの取得開始ビット目から「取得ビット数指定」に対応するビット数のデータが「転送先」のレジスタにロードされる。
図85(b)〜図85(e)は取得データ指定データから取得開始アドレス及び取得開始ビット目が算出される過程を説明するための説明図である。上述したとおり、2バイトの取得データ指定データのうち上位12ビット(第4〜第15ビット)は取得開始アドレスを指定するためのデータであるとともに、下位4ビット(第0〜第3ビット)は取得開始ビット目を指定するためのデータである。取得開始アドレスは、取得データ指定データを「16」(10000H)で除算して得られるデータ(除算後の商データ)に対してTPレジスタ111に格納されているデータテーブルの基準アドレス(9000H)を加算することにより得られるアドレスである。上記第1の実施形態において既に説明したとおり、TPレジスタ111にはデータテーブルの基準アドレスとして「9000H」が設定される。取得データ指定データの除算に用いられる「16」(10000H)は、取得データ指定データのうち取得開始ビット目を指定するためのデータのビット数(「4」)で表される数値範囲(「0」〜「15」)の最大値である「15」に「1」を加算した値であり、「2」の4乗である。上記第1の実施形態において既に説明したとおり、2バイトの2進数を「2」のn乗(nは1〜15のいずれかの整数)で除算すると、当該2バイトの2進数において第nビット〜第15ビットに設定されている「0」又は「1」の情報がnビット下位側にシフトして除算後の商データにおける下位(16−n)ビットに設定されるとともに、当該除算後の商データにおける上位nビット(第(16−n)ビット〜第15ビット)に「0」が設定される。本実施形態におけるLDB命令では、2バイトの2進数である取得データ指定データを「2」の4乗である「16」(10000H)で除算する。取得データ指定データを「16」で除算すると、当該取得データ指定データの第4〜第15ビットに設定されている「0」又は「1」の情報が4ビット下位側にシフトして除算後の商データにおける下位12ビット(第0〜第11ビット)に設定されるとともに、当該除算後の商データにおける上位4ビット(第12〜第15ビット)に「0」が設定される。
具体的には、図85(b)に示すように、取得データ指定データとして「180CH」が設定されている場合について説明する。図85(c)に示すように、4ビットで表される数値範囲(「0」〜「15」)の最大値である「15」に「1」を加算した値である「16」(10000H)で取得データ指定データ(「180CH」)を除算すると、当該取得データ指定データの第4〜第15ビットに設定されている「000110000000」が4ビット下位側にシフトして除算後の商データにおける下位12ビット(第0〜第11ビット)に設定されるとともに、当該除算後の商データにおける上位4ビット(第12〜第15ビット)に「0」が設定される。これにより、図85(c)に示すように、除算後の商データは「0000000110000000」となる。その後、当該除算後の商データに対してTPレジスタ111に格納されているデータテーブルの基準アドレス(「9000H」)を加算することにより、図85(d)に示すように取得開始アドレス(「9180H」)が算出される。取得開始アドレスにおける第0〜第11ビットには取得データ指定データ(図85(b))における第4〜第15ビットのデータが設定されるとともに、当該取得開始アドレスにおける第12〜第15ビットにはデータテーブルの基準アドレスにおける第12〜第15ビットのデータである「1001B」(「9H」)が設定される。
このように、特殊LDB命令では、取得開始アドレスの第0〜第11ビットに取得データ指定データにおける第4〜第15ビットのデータが設定されるとともに、取得開始アドレスの第12〜第15ビットにTPレジスタ111に格納されているデータテーブルの基準アドレスにおける第12〜第15ビットのデータが設定される。
取得開始ビット目は、取得データ指定データの下位1バイトと「00001111B」(「0FH」)との論理積の演算により算出される。取得開始ビット目を算出するための演算に用いられる「00001111B」は、2バイトの取得データ指定データから当該取得データ指定データにおける下位4ビット(第0〜第3ビット)のデータのみを分離して利用可能とするためのデータである。取得データ指定データの下位1バイトと「00001111B」との論理積の演算では、取得データ指定データにおける下位4ビット(第0〜第3ビット)のデータが演算結果の下位4ビット(第0〜第3ビット)に設定されるとともに、当該演算結果の上位4ビット(第4〜第7ビット)に「0」が設定される。具体的には、図85(b)に示すように、取得データ指定データとして「180CH」が設定されている場合、取得データ指定データの下位1バイトは「00001100B」(「0CH」)である。この場合、取得データ指定データの下位1バイトと「00001111B」との論理積の演算により算出される取得開始ビット目は、図85(e)に示すように「00001100B」(「12」)となる。取得開始ビット目の第0〜第3ビットには取得データ指定データ(図85(b))における第0〜第3ビットのデータが設定されるとともに、取得開始ビット目の第4〜第7ビットには「0」が設定される。
特殊LDB命令の命令コードには、取得開始ビット目を算出するための演算に「00001111B」を用いることを指定するためのデータは設定されない。取得データ指定データの下位1バイトと「00001111B」との論理積の演算は、プログラムに設定されている特殊LDB命令が実行される場合に特殊LDB実行回路201にて自動的に実行される。このため、特殊LDB命令の命令コードに取得開始ビット目を算出するための演算に「00001111B」を用いることを指定するためのデータを設定する必要がある構成と比較して、特殊LDB命令の命令コードのデータ容量を低減することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
特殊LDB命令における取得開始ビット目は、「0」〜「15」のいずれかの整数である。まず取得開始ビット目が「0」〜「7」のいずれかの整数である場合について説明する。取得開始ビット目が「n」(nは0〜7の整数)である場合、主側ROM64において取得開始アドレスに対応するエリアの第0〜第7ビットのうち第nビット目以降(第nビット〜第7ビット)に設定されている取得ビット数分の「0」又は「1」のデータが「転送先」のHLレジスタ107に転送される。取得開始アドレスに対応するエリアにおいて取得開始ビット目以降(第nビット〜第7ビット)に存在している「0」又は「1」のデータの数が今回の取得ビット数未満である場合には、取得開始アドレスにおける取得開始ビット目以降のデータ(取得開始アドレスにおける第nビット〜第7ビットのデータ)と、取得開始アドレスの次のアドレスにおける第0ビット目以降のデータとが「転送先」にロードされる。ここで、取得開始アドレスの次のアドレスとは、取得開始アドレスに「1」を加算することにより得られるアドレスである。
例えば、TPレジスタ111に基準アドレスとして「9000H」が格納されており、HLレジスタ107に取得データ指定データとして「1800H」(「6144」)が格納されており、Aレジスタ104bに取得ビット数指定データとして「BH」(11)が格納されている状態において、「LDB HL,(HL).A」という特殊LDB命令が実行される場合、「転送先」はHLレジスタ107となる。既に説明したとおり、取得開始アドレスを指定するためのデータは取得データ指定データの上位12ビットに設定されているとともに、取得開始ビット目を指定するためのデータは取得データ指定データの下位4ビットに設定されている。取得開始アドレスは、取得データ指定データを「16」で除算した「0180H」(「384」)に基準アドレス(「9000H」)を加算して得られる「9180H」となる。取得開始ビット目は、取得データ指定データの下位4ビットが抽出されて「00000000B」(「0」)となる。既に説明したとおり、取得開始ビット目は、取得データ指定データの下位1バイト(「00000000B」)と「00001111H」との論理積の演算により算出される。取得ビット数は、「0BH」に「1」を加算して得られる「0CH」(「12」)となる。このため、当該状態において「LDB HL,(HL).A」という特殊LDB命令が実行された場合には、主側ROM64において取得開始アドレスである「9180H」(図31参照)に対応するエリアにおける取得開始ビット目(第0ビット目)以降に設定されている8ビットのデータと、当該取得開始アドレスの次のアドレスである「9181H」に対応するエリアにおける第0ビット目以降に設定されている4ビットのデータと、が転送先であるHLレジスタ107の第0〜第11ビットに設定されるとともに、当該HLレジスタ107の第12〜第15ビットが「0」でマスクされる。具体的には、「9180H」に対応するエリアの第0〜第7ビットのデータ及び「9181H」に対応するエリアの第0〜第3ビットのデータがHLレジスタ107の第0〜第11ビットに設定される。
次に、取得開始ビット目が「8」〜「15」のいずれかの整数である場合について説明する。取得開始ビット目が「m」(mは8〜15の整数)である場合、主側ROM64において取得開始アドレスの次のアドレスに対応するエリアの第0〜第7ビットのうち第(m−8)ビット目以降(第(m−8)ビット〜第7ビット)に設定されている取得ビット数分の「0」又は「1」のデータが「転送先」のHLレジスタ107に転送される。上述したとおり、取得開始アドレスの次のアドレスとは、取得開始アドレスに「1」を加算することにより得られるアドレスである。取得開始アドレスの次のアドレスに対応するエリアにおいて第(m−8)ビット目以降(第(m−8)ビット〜第7ビット)に存在している「0」又は「1」のデータの数が今回の取得ビット数未満である場合には、取得開始アドレスの次のアドレスにおける第(m−8)ビット目以降のデータ(取得開始アドレスの次のアドレスにおける第(m−8)ビット〜第7ビットのデータ)と、取得開始アドレスの次の次のアドレスにおける第0ビット目以降のデータとが「転送先」にロードされる。ここで、取得開始アドレスの次の次のアドレスとは、取得開始アドレスに「2」を加算することにより得られるアドレスである。
例えば、TPレジスタ111に基準アドレスとして「9000H」が格納されており、HLレジスタ107に取得データ指定データとして「180CH」(「6156」)が格納されており、Aレジスタ104bに取得ビット数指定データとして「BH」(11)が格納されている状態において、「LDB HL,(HL).A」という特殊LDB命令が実行される場合、「転送先」はHLレジスタ107となる。既に説明したとおり、取得開始アドレスを指定するためのデータは取得データ指定データの上位12ビットに設定されているとともに、取得開始ビット目を指定するためのデータは取得データ指定データの下位4ビットに設定されている。取得開始アドレスは、取得データ指定データを「16」で除算した「0180H」(「384」)に基準アドレス(「9000H」)を加算して得られる「9180H」となる。取得開始ビット目は、取得データ指定データの下位4ビットが抽出されて「00001100B」(「12」)となる。既に説明したとおり、取得開始ビット目は、取得データ指定データの下位1バイト(「00001100B」)と「00001111H」との論理積の演算により算出される。取得ビット数は、「0BH」に「1」を加算して得られる「0CH」(「12」)となる。取得開始ビット目は「12」であり、「7」を超えている。このため、当該状態において「LDB HL,(HL).A」という特殊LDB命令が実行された場合には、主側ROM64において取得開始アドレスである「9180H」の次のアドレスである「9181H」(図31参照)に対応するエリアにおける第(12−8)ビット目(第4ビット目)以降に設定されている4ビットのデータと、当該取得開始アドレスの次の次のアドレスである「9182H」に対応するエリアにおける第0ビット目以降に設定されている8ビットのデータと、が転送先であるHLレジスタ107の第0〜第11ビットに設定されるとともに、当該HLレジスタ107の第12〜第15ビットが「0」でマスクされる。具体的には、「9181H」に対応するエリアの第4〜第7ビットのデータ及び「9182H」に対応するエリアの第0〜第7ビットのデータがHLレジスタ107の第0〜第11ビットに設定される。
図86(a)及び図86(b)は特図特電アドレステーブル64qからHLレジスタ107に開始アドレスSA1が取得される様子を説明するための説明図である。上記第1の実施形態において既に説明したとおり、特図特電アドレステーブル64q(図31)において、「9181H」の第4〜第7ビット及び「9182H」の第0〜第7ビットには開始アドレスSA1の下位12ビットが設定されている。「LDB HL,(HL).A」が実行されることにより、図86(a)に示すように、HLレジスタ107の下位12ビットに開始アドレスSA1の下位12ビットがロードされる。後述するアドレス取得実行処理(図88)では、LDB命令を実行した後、HLレジスタ107の値にデータテーブルの基準アドレスである「9000H」を加算する。これにより、図86(b)に示すように、HLレジスタ107に開始アドレスSA1の全体を取得することができる。
特殊LDB命令を利用することにより、2バイトの取得データ指定データの第4〜第15ビットに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位4ビット(第0〜第3ビット)に対応する取得開始ビット目を特定する処理と、取得開始アドレスの取得開始ビット目から取得ビット数分のデータを「転送先」のレジスタにロードする処理と、「転送先」のレジスタのうちロードされたデータよりも上位側に存在するビットを「0」でマスクする処理と、を一命令で実行することができる。これらの処理は特殊LDB実行回路201にて実行される。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
次に、主側CPU63にて実行される特図特電アドレス取得処理のプログラム内容について図86(c)の説明図を参照しながら説明する。上記第1の実施形態において既に説明したとおり、特図特電アドレス取得処理は特図特電制御処理(図30)のステップS902にて実行される。図86(c)に示すように本プログラムには、行番号として「3001」〜「3005」が設定されている。プログラムの命令は、コール命令又はジャンプ命令が実行される場合を除いて、行番号の小さい方から大きい方に向かう順番で実行される。
「3001」〜「3002」の行番号には、上記第1の実施形態における特図特電アドレス取得処理(図33(a))の「1601」〜「1602」と同様の命令が設定されている。具体的には、「3001」の行番号には「LD W,(TZTDCNT)」という命令が設定されている。「LD」はLD命令であり、「W」は転送先としてWレジスタ104aを指定する内容である。上記第1の実施形態において既に説明したとおり、「TZTDCNT」は特定制御用のワークエリア121における特図特電カウンタのアドレスであり、「(TZTDCNT)」は特図特電カウンタに格納されているデータを「転送先」に転送する内容である。上記第1の実施形態と同様に、特図特電カウンタには0〜6のいずれかの数値データが格納されている。「LD W,(TZTDCNT)」が実行されることにより、「転送先」のWレジスタ104aに特図特電カウンタのデータ(1バイト)がロードされる。
「3002」の行番号には「LD B,0CH」という命令が設定されている。「LD」はLD命令であり、「B」は転送先としてBレジスタ105aを指定する内容であり、「0CH」は「転送元」として「0CH」(「12」)という数値データを指定する内容である。「0CH」は後述するアドレス取得実行処理(図88)において特図特電アドレステーブル64qから取得するアドレスデータのビット数である。「LD B,0CH」が実行されることにより、「転送先」のBレジスタ105aに特図特電アドレステーブル64qから取得するアドレスデータのビット数(「12」)が設定される。
「3003」の行番号には「LD HL,TBL_TZTD2_B」という命令が設定されている。「LD」はLD命令であり、「HL」は転送先としてHLレジスタ107を指定する内容である。「TBL_TZTD2_B」は、取得開始アドレスを特図特電アドレステーブル64qの開始アドレスとするための2バイトの数値データであり、具体的には「1800H」である。「LD HL,TBL_TZTD2_B」が実行されることにより、「転送先」のHLレジスタ107に「1800H」がロードされる。
「TBL_TZTD2_B」は、「{(特図特電アドレステーブル64qの開始アドレス)−9000H}×16」の式で算出される。図86(d)〜図86(f)は「TBL_TZTD2_B」を算出する過程を説明するための説明図である。特図特電アドレステーブル64qの開始アドレスである「9180H」(図86(d))からデータテーブルの基準アドレスである「9000H」を減算すると、図86(e)に示すように、減算後のデータにおける第0〜第11ビットに開始アドレス「9180H」(図86(d))における第0〜第11ビットのデータが設定されている状態となる。その後、当該減算後のデータに「16」(10000H)を乗算すると、図86(f)に示すように「TBL_TZTD2_B」が算出される。「TBL_TZTD2_B」を算出するための当該乗算に用いられる「16」は、取得データ指定データのうち取得開始ビット目を指定するためのデータのビット数(「4」)で表される数値範囲(「0」〜「15」)の最大値である「15」に「1」を加算した値である。上記第1の実施形態において既に説明したとおり、2バイトの2進数を「2」のn乗(nは1〜15のいずれかの整数)で乗算すると、当該2バイトの2進数において第0ビット〜第(15−n)ビットに設定されている「0」又は「1」の情報がnビット上位側にシフトして乗算後のデータにおける上位(16−n)ビットに設定されるとともに、当該乗算後のデータにおける下位nビット(第0ビット〜第(n−1)ビット)に「0」が設定される。
「TBL_TZTD2_B」の演算では、特図特電アドレステーブル64qの開始アドレスからデータテーブルの基準アドレスである「9000H」を減算した値(減算後のデータ)に対して「2」の4乗である「16」が乗算される。これにより、減算後のデータ(図86(e))における第0〜第12ビットのデータが4ビット上位側にシフトして乗算後のデータ(図86(f))における上位12ビット(第4〜第15ビット)に設定されるとともに、当該乗算後のデータにおける下位4ビット(第0ビット〜第3ビット)に「0」が設定される。図86(f)に示すように、「16」で乗算した後のデータ(乗算後のデータ)である「TBL_TZTD2_B」における第4〜第15ビットには、開始アドレス「9180H」(図86(d))における第0〜第11ビットのデータが設定されている。既に説明したとおり、特殊LDB命令において取得開始アドレスは、取得データ指定データを「16」(10000H)で除算した値に対してデータテーブルの基準アドレスである「9000H」を加算することにより算出される。また、既に説明したとおり、特殊LDB命令において取得開始アドレスを算出する過程で取得データ指定データが「16」で除算されることにより、取得データ指定データにおける上位12ビット(第4〜第15ビット)に設定されているデータが4ビット下位側にシフトする。減算後のデータ(図86(e))における第0〜第12ビットのデータを4ビット上位側にシフトさせて導出された「TBL_TZTD2_B」を取得データ指定データとして特殊LDB命令が実行されると、取得開始アドレスを算出する過程で「TBL_TZTD2_B」が「16」で除算される。除算後の商データでは、4ビット上位側にシフトしていた減算後のデータにおける第0〜第12ビットのデータが4ビット下位側にシフトする。そして、当該除算後の商データに対してデータテーブルの基準アドレスである「9000H」を加算する演算により、取得開始アドレスとして特図特電アドレステーブル64qの開始アドレスが算出される。
このように、「{(特図特電アドレステーブル64qの開始アドレス)−9000H}×16」の式で算出される「TBL_TZTD2_B」は、特殊LDB命令において特図特電アドレステーブル64qの開始アドレスを取得開始アドレスとするための取得データ指定データである。「TBL_TZTD2_B」を取得データ指定データとして設定することにより、特図特電アドレステーブル64qの開始アドレスを特殊LDB命令の取得開始アドレスとすることができる。
後述するアドレス取得実行処理(図88)では、特図特電カウンタの値が「0」である場合、HLレジスタ107に格納されている「1800H」が取得データ指定データとして使用される。一方、特図特電カウンタの値が「1」以上である場合、HLレジスタ107に格納されている数値情報は、特殊LDB命令が実行される前に当該特図特電カウンタの値に対応する数値情報に変更される。
特図特電アドレス取得処理(図86(c))における「3004」の行番号には「CALLS LDBADGET20」という命令が設定されている。「LDBADGET20」は後述するアドレス取得実行処理(図88)である。「CALLS LDBADGET20」という命令は、アドレス取得実行処理というサブルーチンを呼び出すための命令である。詳細は後述するが、行番号「3004」にてアドレス取得実行処理が実行されることにより、特図特電カウンタの値に対応する開始アドレス(SA0〜SA6のいずれか)がHLレジスタ107に設定される。アドレス取得実行処理のサブルーチンが終了した場合には、「3005」の行番号に進む。
「3005」の行番号には「RET」という命令が設定されている。上記第1の実施形態において既に説明したとおり、特図特電アドレス取得処理は特図特電制御処理(図30)のステップS902にて実行されるサブルーチンである。したがって、「RET」という命令が実行されることで、特図特電制御処理(図30)のステップS903に進むことになる。
次に、アドレス取得実行処理(図88)の説明に先立ち、特図特電アドレステーブル64qから特図特電カウンタの値に対応する開始アドレスSA0〜SA6における下位12ビットのデータを取得する態様について説明する。図87は特図特電カウンタの値とHLレジスタ107に取得される開始アドレスSA0〜SA6との対応関係を説明するための説明図である。
上記第1の実施形態において図31を参照しながら既に説明したとおり、特図特電アドレステーブル64qは、主側ROM64において「9180H」〜「918AH」のアドレス範囲に記憶されており、当該特図特電アドレステーブル64qには、特図特電カウンタの値に対応する開始アドレスSA0〜SA6における下位12ビットのデータが設定されている。
既に説明したとおり、特図特電アドレス取得処理(図86(c))の行番号「3003」にて、HLレジスタ107には「1800H」が格納される。図87に示すように、特図特電カウンタの値が「0」である場合には、当該「1800H」を取得データ指定データとして特殊LDB命令が実行される。特図特電アドレステーブル64qにおいて、特図特電カウンタの「0」の値に対応する開始アドレスSA0の下位12ビットのデータは、「9180H」の第0〜第7ビット及び「9181H」の第0〜第3ビットに設定されている。開始アドレスSA0の下位12ビットのデータは、「9180H」に対応するエリアの第0ビット目を取得開始位置とするとともに取得ビット数を「12」とすることにより取得可能な位置に設定されている。開始アドレスSA0の下位12ビットのデータは、後述するアドレス取得実行処理(図88)のステップS3208にて実行される特殊LDB命令(「LDB HL,(HL).A」)において、取得開始アドレスが「9180H」となるとともに取得開始ビット目が「0」となることにより取得される。
特図特電アドレステーブル64qにおいて、特図特電カウンタの「1」〜「6」の値に対応する開始アドレスSA1〜SA6の下位12ビットのデータは、特図特電カウンタの値が「0」である場合の取得開始位置(「9180H」に対応するエリアの第0ビット目)を基準として、当該取得開始位置を「(取得ビット数)×(特図特電カウンタの値)」ビットだけ後側にずらすことで取得可能な位置に設定されている。本実施形態において取得開始位置をずらす方向としての「後側」とは、取得開始ビット目が増加する方向(第0ビットから第7ビットに向かう方向)であるとともに、取得開始アドレスが増加する方向(「9180H」から「918AH」に向かう方向)である。
図31に示すように、特図特電カウンタの「1」の値に対応する開始アドレスSA1の下位12ビットのデータは、「9181H」の第4〜第7ビット及び「9182H」の第0〜第7ビットに設定されている。開始アドレスSA1の下位12ビットのデータは、特図特電カウンタの値が「0」である場合の取得開始位置を基準として、当該取得開始位置を「取得ビット数×1」ビット(12ビット)だけ後側にずらすことで取得可能な位置に設定されている。開始アドレスSA1の下位12ビットのデータは、「9180H」の次のアドレス(「9181H」)に対応するエリアの第4ビット目を取得開始位置とするとともに取得ビット数を「12」とすることにより取得可能な位置に設定されている。図87に示すように、開始アドレスSA1の下位12ビットのデータは、後述するアドレス取得実行処理(図88)のステップS3208にて実行される特殊LDB命令(「LDB HL,(HL).A」)において、取得開始アドレスが「9180H」となるとともに取得開始ビット目が「12」となることにより取得される。
図31に示すように、特図特電カウンタの「2」の値に対応する開始アドレスSA2の下位12ビットのデータは、「9183H」の第0〜第7ビット及び「9184H」の第0〜第3ビットに設定されている。開始アドレスSA2の下位12ビットのデータは、特図特電カウンタの値が「0」である場合の取得開始位置を基準として、当該取得開始位置を「取得ビット数×2」ビット(24ビット)だけ後側にずらすことで取得可能な位置に設定されている。開始アドレスSA2の下位12ビットのデータは、「9182H」の次のアドレス(「9183H」)に対応するエリアの第0ビット目を取得開始位置とするとともに取得ビット数を「12」とすることにより取得可能な位置に設定されている。図87に示すように、開始アドレスSA2の下位12ビットのデータは、後述するアドレス取得実行処理(図88)のステップS3208にて実行される特殊LDB命令(「LDB HL,(HL).A」)において、取得開始アドレスが「9182H」となるとともに取得開始ビット目が「8」となることにより取得される。
図31に示すように、特図特電カウンタの「3」の値に対応する開始アドレスSA3の下位12ビットのデータは、「9184H」の第4〜第7ビット及び「9185H」の第0〜第7ビットに設定されている。開始アドレスSA3の下位12ビットのデータは、特図特電カウンタの値が「0」である場合の取得開始位置を基準として、当該取得開始位置を「取得ビット数×3」ビット(36ビット)だけ後側にずらすことで取得可能な位置に設定されている。開始アドレスSA3の下位12ビットのデータは、「9184H」に対応するエリアの第4ビット目を取得開始位置とするとともに取得ビット数を「12」とすることにより取得可能な位置に設定されている。図87に示すように、開始アドレスSA3の下位12ビットのデータは、後述するアドレス取得実行処理(図88)のステップS3208にて実行される特殊LDB命令(「LDB HL,(HL).A」)において、取得開始アドレスが「9184H」となるとともに取得開始ビット目が「4」となることにより取得される。
図31に示すように、特図特電カウンタの「4」の値に対応する開始アドレスSA4の下位12ビットのデータは、「9186H」の第0〜第7ビット及び「9187H」の第0〜第4ビットに設定されている。開始アドレスSA4の下位12ビットのデータは、特図特電カウンタの値が「0」である場合の取得開始位置を基準として、当該取得開始位置を「取得ビット数×4」ビット(48ビット)だけ後側にずらすことで取得可能な位置に設定されている。開始アドレスSA4の下位12ビットのデータは、「9186H」に対応するエリアの第0ビット目を取得開始位置とするとともに取得ビット数を「12」とすることにより取得可能な位置に設定されている。図87に示すように、開始アドレスSA4の下位12ビットのデータは、後述するアドレス取得実行処理(図88)のステップS3208にて実行される特殊LDB命令(「LDB HL,(HL).A」)において、取得開始アドレスが「9186H」となるとともに取得開始ビット目が「0」となることにより取得される。
図31に示すように、特図特電カウンタの「5」の値に対応する開始アドレスSA5の下位12ビットのデータは、「9187H」の第4〜第7ビット及び「9188H」の第0〜第7ビットに設定されている。開始アドレスSA5の下位12ビットのデータは、特図特電カウンタの値が「0」である場合の取得開始位置を基準として、当該取得開始位置を「取得ビット数×5」ビット(60ビット)だけ後側にずらすことで取得可能な位置に設定されている。開始アドレスSA5の下位12ビットのデータは、「9186H」の次のアドレス(「9187H」)に対応するエリアの第4ビット目を取得開始位置とするとともに取得ビット数を「12」とすることにより取得可能な位置に設定されている。図87に示すように、開始アドレスSA5の下位12ビットのデータは、後述するアドレス取得実行処理(図88)のステップS3208にて実行される特殊LDB命令(「LDB HL,(HL).A」)において、取得開始アドレスが「9186H」となるとともに取得開始ビット目が「12」となることにより取得される。
図31に示すように、特図特電カウンタの「6」の値に対応する開始アドレスSA6の下位12ビットのデータは、「9189H」の第0〜第7ビット及び「918AH」の第0〜第4ビットに設定されている。開始アドレスSA6の下位12ビットのデータは、特図特電カウンタの値が「0」である場合の取得開始位置を基準として、当該取得開始位置を「取得ビット数×6」ビット(72ビット)だけ後側にずらすことで取得可能な位置に設定されている。開始アドレスSA6の下位12ビットのデータは、「9188H」の次のアドレス(「9189H」)に対応するエリアの第0ビット目を取得開始位置とするとともに取得ビット数を「12」とすることにより取得可能な位置に設定されている。図87に示すように、開始アドレスSA6の下位12ビットのデータは、後述するアドレス取得実行処理(図88)のステップS3208にて実行される特殊LDB命令(「LDB HL,(HL).A」)において、取得開始アドレスが「9188H」となるとともに取得開始ビット目が「8」となることにより取得される。
次に、主側CPU63にて実行されるアドレス取得実行処理について図88のフローチャートを参照しながら説明する。アドレス取得実行処理は特図特電アドレス取得処理(図86(c))の行番号「3004」にて実行される。なお、アドレス取得実行処理は特定制御用のプログラム及び特定制御用のデータを利用して実行される。
既に説明したとおり、特図特電アドレス取得処理(図86(c))の行番号「3003」において、HLレジスタ107には特図特電カウンタにおける「0」の値に対応する取得データ指定データ(「1800H」)が格納されている。ステップS3201〜ステップS3205の処理は、HLレジスタ107に格納されている当該取得データ指定データを特図特電カウンタの値に対応するデータに変更するために実行される。
アドレス取得実行処理におけるステップS3201〜ステップS3203では、上記第1の実施形態におけるアドレス取得実行処理(図33(e))の行番号「1702」〜「1704」と同様の命令を実行する。具体的には、まず「LD A,B」という命令を実行する(ステップS3201)。「LD」はLD命令であり、「A」は転送先としてAレジスタ104bを指定する内容であり、「B」は転送元としてBレジスタ105aを指定する内容である。既に説明したとおり、特図特電アドレス取得処理(図86(c))においてBレジスタ105aには特図特電アドレステーブル64qから取得するビット数(取得ビット数)を指定する「0CH」(「12」)が設定されている。このため、「LD A,B」が実行されることにより、「転送先」のAレジスタ104bに「0CH」が設定される。
その後、「MUL W,A」という命令を実行する(ステップS3202)。「MUL」はMUL命令という演算命令であり、「W」はWレジスタ104aを指定する内容であり、「A」はAレジスタ104bを指定する内容である。「MUL W,A」が実行されることにより、Wレジスタ104aの値とAレジスタ104bの値とを乗算する演算が行われるとともに当該演算の結果がWAレジスタ104に格納される。既に説明したとおり、特図特電アドレス取得処理(図86(c))において、Wレジスタ104aには特図特電カウンタの値(0〜6のいずれかの整数)が設定されている。また、上述したとおり、Aレジスタ104bには取得ビット数である「0CH」が格納されている。このため、ステップS3202にて「MUL W,A」が実行された場合、WAレジスタ104には、「(特図特電カウンタの値)×(取得ビット数)」の演算結果が格納される。
その後、「ADD HL,WA」という命令を実行する(ステップS3203)。「ADD」はADD命令という演算命令であり、「HL」はHLレジスタ107を指定する内容であり、「WA」はWAレジスタ104を指定する内容である。「ADD HL,WA」が実行されることにより、HLレジスタ107の値とWAレジスタ104の値との和がHLレジスタ107に格納される。上述したとおり、特図特電アドレス取得処理(図86(c))の行番号「3003」において、HLレジスタ107には特図特電カウンタにおける「0」の値に対応する取得データ指定データ(「1800H」)が格納されている。また、上述したとおり、WAレジスタ104には、「(特図特電カウンタの値)×(取得ビット数)」の演算結果のデータが格納されている。ステップS3203にて「ADD HL,WA」という命令が実行されることにより、特図特電カウンタにおける「0」の値に対応する取得データ指定データが格納されているHLレジスタ107に、「(特図特電カウンタの値)×(取得ビット数)」の演算結果が加算される。これにより、特図特電カウンタの値に対応する態様で取得データ指定データの下位4ビットが更新される。既に説明したとおり、特殊LDB命令において取得データ指定データの下位4ビットは、取得開始ビット目を特定するために用いられる。
ステップS3203にて「ADD HL,WA」という命令が実行されることにより、WAレジスタ104に格納されている「(取得ビット数)×(特図特電カウンタの値)」の演算結果を「16」で除算した商の分だけ取得開始アドレスが増加する態様で、HLレジスタ107に格納されている取得データ指定データが更新される。上記第1の実施形態において既に説明したとおり、特図特電アドレステーブル64qでは、1つのアドレスに対して8ビットのデータが設定されている。これに対して、本実施形態における特殊LDB命令では、取得開始ビット目を「0」〜「15」の数値範囲で指定する。このため、特殊LDB命令では、取得開始ビット目が「16」増加する度に取得開始アドレスを「2」増加させる必要がある。特図特電カウンタの値に対応する態様でHLレジスタ107に格納されている取得データ指定データの上位12ビットのデータを更新するためには、「(取得ビット数)×(特図特電カウンタの値)」の演算結果を「16」で除算した商の2倍分だけ取得開始アドレスを増加させる必要がある。ところが、ステップS3203の命令を実行しただけでは、当該演算結果を「16」で除算した商の分だけしか取得開始アドレスが増加しない。このため、ステップS3204及びステップS3205の処理を実行することにより、当該演算結果を「16」で除算した商の分だけ取得開始アドレスをさらに増加させる。
具体的には、まずWAレジスタ104の値と「1111111111110000B」との論理積を演算し、当該演算結果をWAレジスタ104に格納することにより、WAレジスタ104に格納されている2バイトのデータのうち下位4ビットのデータを「0000B」に変更する(ステップS3204)。既に説明したとおり、WAレジスタ104には「(取得ビット数)×(特図特電カウンタの値)」の演算結果が格納されている。ステップS3204では、WAレジスタ104に格納されている当該演算結果の下位4ビットを「0000B」に変更することにより、当該演算結果を「16」で除算した商に「16」を乗算した値がWAレジスタ104に格納されている状態とする。
その後、ステップS3203と同様に、「ADD HL,WA」という命令を実行する(ステップS3205)。これにより、「(取得ビット数)×(特図特電カウンタの値)」の演算結果を「16」で除算した商の分だけ取得開始アドレスが増加する態様で、HLレジスタ107に格納されている取得データ指定データが更新される。
このように、ステップS3201〜ステップS3205の処理を実行することにより、特図特電アドレステーブル64qにおいて、特図特電カウンタの値が「0」である場合におけるデータの取得開始位置(「9180H」に対応するエリアの第0ビット目)を基準として、当該取得開始位置が「(取得ビット数)×(特図特電カウンタの値)」ビットだけ後側にずれる態様で、HLレジスタ107に格納されてる取得データ指定データを更新することができる。既に説明したとおり、特図特電アドレステーブル64qにおいて、特図特電カウンタの「1」〜「6」の値に対応する開始アドレスSA1〜SA6は、特図特電カウンタの値が「0」である場合におけるデータの取得開始位置(「9180H」に対応するエリアの第0ビット目)を基準として、当該取得開始位置が「(取得ビット数)×(特図特電カウンタの値)」ビットだけ後側にずらすことで取得可能な位置に設定されている。
ステップS3206〜ステップS3209では、上記第1の実施形態におけるアドレス取得実行処理(図33(e))における「1705」〜「1708」の行番号と同様の命令を実行する。具体的には、まずステップS3201と同様に、「LD A,B」という命令を実行する(ステップS3206)。既に説明したとおり、特図特電アドレス取得処理(図86(c))においてBレジスタ105aには取得ビット数を指定する「0CH」(「12」)が設定されている。このため、「LD A,B」が実行されることにより、「転送先」のAレジスタ104bに「0CH」が設定される。既に説明したとおり、Bレジスタ105aに格納された「0CH」は、「(特図特電カウンタの値)×(取得ビット数)」の演算にも用いられた。このように、事前にBレジスタ105aに格納された「0CH」は、「(特図特電カウンタの値)×(取得ビット数)」の演算に用いられるとともに、LDB命令における取得ビット数を指定するためのデータをAレジスタ104bに設定するために用いられる。
その後、「DEC A」という命令を実行する(ステップS3207)。「DEC」はDEC命令という演算命令であり、「A」はAレジスタ104bを指定する内容である。「DEC A」が実行されることにより、Aレジスタ104bの値が1減算される。上述したとおり、Aレジスタ104bには取得ビット数である「0CH」が格納されている。このため、ステップS3207にて「DEC A」が実行されることにより、Aレジスタ104bには「0BH」が格納されている状態となる。「0BH」は、特図特電アドレステーブル64qから取得するビット数である「12」から「1」を減算した値である。
既に説明したとおり、「LDB HL,(HL).A」というLDB命令が実行される場合、LDB実行回路157においてAレジスタ104bの値を1加算する演算が行われるとともに、当該1加算後の値が取得ビット数のデータとして利用される。このため、ステップS3207にてAレジスタ104bの値を1減算しておくことにより、LDB命令において特図特電アドレステーブル64qから取得されるデータのビット数を「12」とすることができる。
その後、「LDB HL,(HL).A」という命令を実行する(ステップS3208)。「LDB」は特殊LDB実行回路201による特殊LDB命令であり、コンマの前の「HL」は「転送先」としてHLレジスタ107を指定する内容であり、ピリオドの前の「(HL)」はHLレジスタ107に格納されている2バイトのデータを取得データ指定データに指定する内容であり、「A」はAレジスタ104bに格納されている1バイトのデータを取得ビット数指定データとする内容である。既に説明したとおり、HLレジスタ107には特図特電カウンタの値に対応する取得データ指定データが格納されている状態であるとともに、Aレジスタ104bには取得ビット数(「0CH」)から「1」を減算した「0BH」が格納されている状態である。また、TPレジスタ111には基準アドレスである「9000H」が格納されている状態である。当該状態において、ステップS3208にて「LDB HL,(HL).A」という命令が実行されることにより、転送先であるHLレジスタ107の第0〜第11ビットには特図特電カウンタの値に対応する開始アドレスSA0〜SA6における下位12ビットのデータがロードされるとともに、当該HLレジスタ107の第12〜第15ビットが「0」でマスクされる。
具体的には、図87に示すように、特図特電カウンタの値が「0」である場合、取得開始アドレスが「9180H」となるとともに取得開始ビット目が「0」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA0の下位12ビットである「700H」がロードされる。特図特電カウンタの値が「1」である場合、取得開始アドレスが「9180H」となるとともに取得開始ビット目が「12」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA1の下位12ビットである「712H」がロードされる。特図特電カウンタの値が「2」である場合、取得開始アドレスが「9182H」となるとともに取得開始ビット目が「8」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA2の下位12ビットである「71FH」がロードされる。特図特電カウンタの値が「3」である場合、取得開始アドレスが「9184H」となるとともに取得開始ビット目が「4」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA3の下位12ビットである「731H」がロードされる。特図特電カウンタの値が「4」である場合、取得開始アドレスが「9186H」となるとともに取得開始ビット目が「0」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA4の下位12ビットである「740H」がロードされる。特図特電カウンタの値が「5」である場合、取得開始アドレスが「9186H」となるとともに取得開始ビット目が「12」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA5の下位12ビットである「74CH」がロードされる。特図特電カウンタの値が「6」である場合、取得開始アドレスが「9188H」となるとともに取得開始ビット目が「8」となり、HLレジスタ107の第0〜第11ビットに開始アドレスSA6の下位12ビットである「753H」がロードされる。このように、特図特電カウンタの値が1増加する度に特図特電アドレステーブル64qにおけるデータの取得開始位置が後側に12ビットずれる。
特殊LDB命令を利用して特図特電アドレステーブル64qから取得した開始アドレスSA0〜SA6の下位12ビットをHLレジスタ107の第0〜第11ビットにロードする構成であることにより、2バイトの取得データ指定データの第4〜第15ビットに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位4ビット(第0〜第3ビット)に対応する取得開始ビット目を特定する処理と、特図特電アドレステーブル64qから取得した開始アドレスSA0〜SA6の下位12ビットをHLレジスタ107の下位12ビットにロードする処理と、HLレジスタ107の上位4ビットを「0」でマスクする処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
その後、「ADD HL,9000H」という命令を実行して(ステップS3209)、本アドレス取得実行処理を終了する。「ADD」はADD命令という演算命令であり、「HL」はHLレジスタ107を指定する内容であり、「9000H」は2バイトの数値データである。「ADD HL,9000H」が実行されることにより、HLレジスタ107の値に対してデータテーブルの基準アドレスである「9000H」が加算される。これにより、図87に示すように、特電特図カウンタにおける「0」〜「6」の値に対応する開始アドレスSA0〜SA6の全体(2バイト)が設定されている状態とすることができる。具体的には、特図特電カウンタの値が「0」である場合にはHLレジスタ107に開始アドレスSA0である「9700H」が設定され、特図特電カウンタの値が「1」である場合にはHLレジスタ107に開始アドレスSA1である「9712H」が設定され、特図特電カウンタの値が「2」である場合にはHLレジスタ107に開始アドレスSA2である「971FH」が設定され、特図特電カウンタの値が「3」である場合にはHLレジスタ107に開始アドレスSA3である「9731H」が設定され、特図特電カウンタの値が「4」である場合にはHLレジスタ107に開始アドレスSA4である「9740H」が設定され、特図特電カウンタの値が「5」である場合にはHLレジスタ107に開始アドレスSA5である「974CH」が設定され、特図特電カウンタの値が「6」である場合にはHLレジスタ107に開始アドレスSA6である「9753H」が設定される。
既に説明したとおり、アドレス取得実行処理(図88)は特図特電アドレス取得処理(図86(c))の行番号「3004」にて実行されるサブルーチンである。したがって、アドレス取得実行処理が終了した場合には、特図特電アドレス取得処理の行番号「1605」に進むことになる。
このように、特殊LDB命令を利用することにより、特図特電アドレステーブル64qから開始アドレスSA0〜SA6の下位12ビットをHLレジスタ107にロードすることができる。また、当該特殊LDB命令の実行後にHLレジスタ107の値に対して開始アドレスSA0〜SA6に共通する上位4ビットに対応する「9000H」を加算することにより、HLレジスタ107に開始アドレスSA0〜SA6の全体を取得することができる。このため、特図特電アドレステーブル64qに設定するアドレスデータを開始アドレスSA0〜SA6の下位12ビットのみとすることができる。これにより、特図特電アドレステーブル64qに2バイトの開始アドレスSA0〜SA6の全体を設定する構成と比較して、主側ROM64における特図特電アドレステーブル64qのデータ容量を低減することができる。
以上詳述した本実施形態によれば、以下の優れた効果を奏する。
特殊LDB命令では、2バイトの取得データ指定データにおける上位12ビット(第4〜第15ビット)のデータに基づいて主側ROM64におけるデータの取得開始アドレスを特定するとともに、当該取得データ指定データにおける下位4ビット(第0〜第3ビット)のデータに基づいて主側ROM64におけるデータの取得開始ビット目を特定する。このため、取得データ指定データに取得開始アドレスを特定するための2バイトのデータ及び取得開始ビット目を特定するための1バイトのデータが設定される構成と比較して、取得データ指定データのデータ容量を1バイト低減することができる。
特殊LDB実行回路201では、取得開始ビット目を特定するために、取得データ指定データの下位1バイトと「00001111B」との論理積の演算が行われる。特殊LDB命令の命令コードには、取得開始ビット目を算出するための演算に「00001111B」を用いることを指定するためのデータは設定されない。取得データ指定データの下位1バイトと「00001111B」との論理積の演算は、プログラムに設定されている特殊LDB命令が実行される場合に特殊LDB実行回路201にて自動的に実行される。このため、特殊LDB命令の命令コードに取得開始ビット目を算出するための演算に「00001111B」を用いることを指定するためのデータを設定する必要がある構成と比較して、特殊LDB命令の命令コードのデータ容量を低減することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
特殊LDB実行回路201では、取得開始アドレスを特定するために、取得データ指定データを「16」で除算する演算が行われる。取得開始アドレスを特定するための演算に用いられる「16」は、取得データ指定データにおいて取得開始ビット目を指定するために設定されるデータのビット数である4ビットで表される数値範囲(「0」〜「15」)の最大値である「15」に「1」を加算した値である。これにより、2バイトの取得データ指定データの中に取得開始アドレスを特定するためのデータと取得開始ビット目を特定するためのデータとが設定されている構成において、取得開始ビット目を特定するためのデータとは独立に、取得開始アドレスを特定するためのデータを設定することができる。
特殊LDB実行回路201では、取得開始アドレスを特定するために、取得データ指定データを「16」で除算する演算が行われる。特殊LDB命令の命令コードには、取得開始アドレスを算出するための演算に「16」を用いることを指定するためのデータは設定されない。取得データ指定データを「16」で除算する演算は、プログラムに設定されている特殊LDB命令が実行される場合に特殊LDB実行回路201にて自動的に実行される。このため、特殊LDB命令の命令コードに取得開始アドレスを算出するための演算に「16」を用いることを指定するためのデータを設定する必要がある構成と比較して、特殊LDB命令の命令コードのデータ容量を低減することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
特殊LDB命令を利用して特図特電アドレステーブル64qから取得した開始アドレスSA0〜SA6の下位12ビットをHLレジスタ107の第0〜第11ビットにロードする構成であることにより、2バイトの取得データ指定データの第4〜第15ビットに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位4ビット(第0〜第3ビット)に対応する取得開始ビット目を特定する処理と、特図特電アドレステーブル64qから取得した開始アドレスSA0〜SA6の下位12ビットをHLレジスタ107の下位12ビットにロードする処理と、HLレジスタ107の上位4ビットを「0」でマスクする処理と、を一命令で実行することができる。これにより、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、主側ROM64におけるプログラムのデータ容量を低減することができる。
<他の実施形態>
なお、上述した実施形態の記載内容に限定されず、本発明の趣旨を逸脱しない範囲内で種々の変形改良が可能である。例えば以下のように変更してもよい。ちなみに、以下の別形態の構成を、上記実施形態の構成に対して、個別に適用してもよく、組合せて適用してもよい。
(1)上記各実施形態において、LDB実行回路157によるLDB命令が実行された場合に取得ビット数指定データの値に「1」を加算した値のビット数のデータが取得される構成に代えて、取得ビット数指定データの値に対応するビット数のデータが取得される構成としてもよい。上記第1の実施形態において既に説明したとおり、LDB命令の命令コードは、「LDB 転送先,取得データ指定.取得ビット数指定」という構成を有している。本構成では、主側ROM64に記憶されているデータテーブルから取得するデータのビット数をLDB命令の命令コードにおける「取得ビット数指定」に設定することができる。また、上記各実施形態において、特殊LDB実行回路201による特殊LDB命令が実行された場合に取得ビット数指定データの値に「1」を加算した値のビット数のデータが取得される構成に代えて、取得ビット数指定データの値に対応するビット数のデータが取得される構成としてもよい。上記第6の実施形態において既に説明したとおり、特殊LDB命令の命令コードは、「LDB 転送先,取得データ指定.取得ビット数指定」という構成を有している。本構成では、主側ROM64に記憶されているデータテーブルから取得するデータのビット数を特殊LDB命令の命令コードにおける「取得ビット数指定」に設定することができる。
(2)上記各実施形態において、LDB更新実行回路161によるLDB更新命令が実行された場合に取得ビット数指定データの値に「1」を加算した値のビット数のデータが取得される構成に代えて、取得ビット数指定データの値に対応するビット数のデータが取得される構成としてもよい。上記第1の実施形態において既に説明したとおり、LDB命令更新の命令コードは、「LDB 転送先,(取得データ指定+).取得ビット数指定」という構成を有している。本構成では、主側ROM64に記憶されているデータテーブルから取得するデータのビット数をLDB更新命令の命令コードにおける「取得ビット数指定」に設定することができる。
(3)主側MPU62にLDH命令を実行するための専用回路であるLDH実行回路が設けられている構成としてもよい。主側CPU63はLDH命令を実行することができる。LDH命令の命令コードは、「LDH 転送先,転送元」という構成を有している。LDH命令では「転送先」としてWAレジスタ104が設定されるとともに、「転送元」としてHLレジスタ107が設定される。LDH命令は、「転送元」のHLレジスタ107に格納されているアドレスに対応するエリアに格納されている1バイトデータにおける上位4ビットのデータを「転送先」に設定されているWAレジスタ104のうち一方の汎用レジスタ(Wレジスタ104a)の下位4ビットにロードするとともに当該汎用レジスタの上位4ビットを「0」でマスクする処理と、当該1バイトデータにおける下位4ビットのデータを「転送先」に設定されているWAレジスタ104のうち他方の汎用レジスタ(Aレジスタ104b)の下位4ビットにロードするとともに当該汎用レジスタの上位4ビットを「0」でマスクする処理と、を一命令で実行可能とする命令である。LDH命令を利用する構成とすることにより、これら2つの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、プログラムのデータ容量を低減することができる。なお、LDH命令において「転送先」としてBCレジスタ105、DEレジスタ106又はHLレジスタ107が設定される構成としてもよく、LDH命令において「転送元」としてWAレジスタ104、BCレジスタ105又はDEレジスタ106が設定される構成としてもよい。
(4)上記各実施形態において、特定制御用の処理が実行されている状況から非特定制御用の処理が実行されている状況に移行する場合、及び非特定制御用の処理が実行されている状況から特定制御用の処理が実行されている状況に移行する場合にTPレジスタ111に格納されているデータテーブルの基準アドレスが変更される構成としてもよい。具体的には、主側ROM64において特定制御用のデータは「9000H」〜「94FFH」のアドレス範囲に設定されているとともに、非特定制御用のデータは「8903H」〜「8BFFH」のアドレス範囲に設定されている。主側CPU63は、動作電力の供給が開始された場合及び非特定制御用の処理が実行されている状況から特定制御用の処理が実行されている状況に移行する場合に、特定制御用のデータテーブルの基準アドレスとしてTPレジスタ111に「9000H」を設定する。当該「9000H」は、主側ROM64にデータテーブルが記憶されているアドレス範囲のうち特定制御用の処理が実行されている状況において参照されるアドレス範囲に共通する上位4ビット(「9H」)を特定可能とする情報である。特定制御用の処理においてLDT命令を実行することにより、プログラムに設定するアドレス指定用のデータを2バイトのアドレスの下位12ビットとしながら、TPレジスタ111に格納されている「9000H」を流用することにより当該2バイトのアドレスの全体を特定することができる。主側CPU63は、特定制御用の処理が実行されている状況から非特定制御用の処理が実行されている状況に移行する場合に、非特定制御用のデータテーブルの基準アドレスとして「8000H」を設定する。当該「8000H」は、主側ROM64にデータテーブルが記憶されているアドレス範囲のうち非特定制御用の処理が実行されている状況において参照されるアドレス範囲に共通する上位4ビット(「8H」)を特定可能とする情報である。非特定制御用の処理においてLDT命令を実行することにより、プログラムに設定するアドレス指定用のデータを2バイトのアドレスの下位12ビットとしながら、TPレジスタ111に格納されている「8000H」を流用することにより当該2バイトのアドレスの全体を特定することができる。このように、主側ROM64にデータテーブルが記憶されているアドレス範囲のうち非特定制御用の処理が実行されている状況において参照対象となる記憶エリアに対応するアドレスに共通する上位4ビットが、特定制御用の処理が実行されている状況において参照対象となる記憶エリアに対応するアドレスに共通する上位4ビットと異なっている構成においても、特定制御用の処理が実行されている状況から非特定制御用の処理が実行されている状況に移行する場合及び非特定制御用の処理が実行されている状況から特定制御用の処理が実行されている状況に移行する場合にTPレジスタ111に格納されているデータテーブルの基準アドレスを変更することにより、各状況においてLDT命令を利用可能とすることができる。
(5)上記第6の実施形態において、特殊LDB命令の取得データ指定データにおいて取得開始ビット目を特定するために設定されるデータのビット数が「5」以上である構成としてもよい。具体的には、取得データ指定データは、上記第6の実施形態と同様に、2バイトのデータである。取得データ指定データにおいて取得開始ビット目を特定するために設定されるデータのビット数が「n」(nは5〜15のいずれかの整数)である場合、取得データ指定データにおける上位(16−n)ビットは取得開始アドレスを特定する演算に用いられるとともに、当該取得データ指定データにおける下位nビットは取得開始ビット目を特定するための演算に用いられる。取得開始アドレスは、取得データ指定データを「2のn乗」で除算して得られる値に対してTPレジスタ111に予め格納されているデータテーブルの基準アドレス(「9000H」)を加算する演算により算出される。取得開始アドレスを特定する演算に用いられる「2のn乗」というデータは、取得データ指定データにおいて取得開始ビット目を特定するために設定されているデータのビット数であるnビットで表される数値範囲(「0」〜「(2のn乗)−1」)の最大値である「(2のn乗)−1」に「1」を加算した値である。取得データ指定データを当該「2のn乗」で除算すると、当該取得データ指定データの第n〜第15ビットに設定されている「0」又は「1」の情報がnビット下位側にシフトして除算後の商データにおける下位(16−n)ビット(第0〜第(15−n)ビット)に設定されるとともに、当該除算後の商データにおける上位nビット(第(16−n)〜第15ビット)に「0」が設定される。取得開始ビット目は、取得データ指定データの下位nビットのデータである。取得開始ビット目は「0」〜「(2のn乗)−1」のいずれかの整数である。
例えば、取得データ指定データにおいて取得開始ビット目を特定するために設定されるデータのビット数が「5」である場合、取得データ指定データにおける上位11ビットは取得開始アドレスを特定する演算に用いられるとともに、当該取得データ指定データにおける下位5ビットは取得開始ビット目を特定するための演算に用いられる。取得開始アドレスは、取得データ指定データを「32」で除算して得られる値に対してTPレジスタ111に予め格納されているデータテーブルの基準アドレス(「9000H」)を加算する演算により算出される。取得開始アドレスを特定する演算に用いられる「32」というデータは、取得データ指定データにおいて取得開始ビット目を特定するために設定されているデータのビット数である5ビットで表される数値範囲(「0」〜「31」)の最大値である「31」に「1」を加算した値であり、「2」の5乗である。取得データ指定データを当該「32」(100000H)で除算すると、当該取得データ指定データの第5〜第15ビットに設定されている「0」又は「1」の情報が5ビット下位側にシフトして除算後の商データにおける下位11ビット(第0〜第10ビット)に設定されるとともに、当該除算後の商データにおける上位5ビット(第11〜第15ビット)に「0」が設定される。本構成において設定可能な取得開始アドレスの最小値は「1001000000000000」(9000H)であるとともに、設定可能な取得開始アドレスの最大値は「1001011111111111」(97FFH)である。取得開始ビット目は、取得データ指定データの下位5ビットのデータである。当該取得開始ビット目は、取得データ指定データの下位1バイトと「00011111B」(「1FH」)との論理積を演算することにより算出される。取得開始ビット目を算出するための演算に用いられる当該「00011111B」は、16ビットの取得データ指定データから当該取得データ指定データにおける下位5ビット(第0〜第4ビット)のデータのみを抽出するためのデータである。取得開始ビット目は「0」〜「31」のいずれかの整数である。
(6)上記第6の実施形態において、主側ROM64のデータ構成は1つのアドレスに対して2バイトの記憶エリアが設定されている構成としてもよい。特殊LDB命令の取得データ指定データに所定の数値情報を加算することにより、当該所定の数値情報を「16」(2の4乗)で除算する演算の演算結果における商の分だけ取得開始アドレスを更新することができるとともに、当該演算結果における余りの分だけ取得開始ビット目を更新することができる。
(7)上記各実施形態において、LDH更新実行回路152によるLDH更新命令が実行された場合に主側ROM64のデータテーブルに設定されている1バイトのデータのうち異なる2つのレジスタ(Wレジスタ104a及びAレジスタ104b)に読み出されるデータのビット数の組合せは、上位4ビット及び下位4ビットの組合せに限定されることはない。LDH更新命令が実行された場合に1バイトのデータのうち異なる2つのレジスタに読み出されるデータのビット数の組合せは、上位1ビット及び下位7ビットの組合せ、上位2ビット及び下位6ビットの組合せ、上位3ビット及び下位5ビットの組合せ、上位5ビット及び下位3ビットの組合せ、上位6ビット及び下位2ビットの組合せ、又は上位7ビット及び下位1ビットの組合せであってもよい。
(8)LDH更新命令において、データテーブルの1バイトのエリアにおける上位4ビットのデータ及び下位4ビットのデータが設定される領域は、Wレジスタ104aの下位4ビット及びAレジスタ104bにおける下位4ビットに限定されることはない。例えば、LDH更新命令において、1バイトのエリアにおける上位4ビットのデータがWレジスタ104aの第1〜第4ビットに設定されるとともに、当該1バイトのエリアにおける下位4ビットのデータがAレジスタ104bの第1〜第4ビットに設定される構成としてもよい。本構成では、Wレジスタ104aにおいてデータが設定されなかった第0ビット及び第5〜第7ビットに「0」が設定されるとともに、Aレジスタ104bにおいてデータが設定されなかった第0ビット及び第5〜第7ビットに「0」が設定される。第0ビット及び第5〜第7ビットが「0」で共通している複数種類の1バイトデータをデータテーブルに設定する場合に、当該データテーブルに各1バイトデータの第1〜第4ビットのみを集約して設定することにより、当該データテーブルのデータ容量を低減することができる。
(9)LDB命令及びLDB更新命令において、データテーブルから取得されたデータが設定される領域は、「転送先」のレジスタにおける下位側領域に限定されることはない。例えば、LDB命令及びLDB更新命令において、データテーブルから取得された3ビットのデータが「転送先」のBレジスタ105aにおける第1〜第3ビットに設定される構成としてもよい。当該3ビットのデータがBレジスタ105aに設定された場合、当該Bレジスタ105aにおいてデータが設定されなかった第0ビット及び第4〜第7ビットには「0」が設定される。第0ビット及び第4〜第7ビットが「0」で共通している複数種類の1バイトデータをデータテーブルに設定する場合に、当該データテーブルに各1バイトデータの第1〜第3ビットのみを集約して設定することにより、当該データテーブルのデータ容量を低減することができる。
(10)IYレジスタ109に事前に設定される特定制御用基準アドレス及び非特定制御用基準アドレスがアドレスの上位4ビットを指定するために利用される構成に限定されることはなく、これらの基準アドレスがアドレスの一部又は全体を指定するために利用される構成としてもよい。具体的には、主側RAM65において特定制御用のワークエリアは「1050H」〜「134DH」のアドレス範囲に設定されているとともに、非特定制御用のワークエリアは「1350H」〜「14FFH」のアドレス範囲に設定されている。IYレジスタ109には、特定制御用の処理の開始時に特定制御用基準アドレスとして「1050H」が設定されるとともに、非特定制御用の処理の開始時に非特定制御用基準アドレスとして「1350H」が設定される。IYレジスタ109に「1050H」が設定されている状態において「LDY BC,19H」という第1LDY命令を実行することにより、「1050H」に「19H」を加算することにより算出される「1069H」をBCレジスタ105に格納することができる。また、IYレジスタ109に「1350H」が設定されている状態において「LDY HL,03H」という第1LDY命令を実行することにより、「1350H」に「03H」を加算することにより算出される「1353H」をHLレジスタ107に格納することができる。
(11)IYレジスタ109に設定されている特定制御用基準アドレス(「0000H」)又は非特定制御用基準アドレス(「0300H」)と1バイトの数値情報(例えば「19H」)とを加算する演算処理と、当該演算処理の結果をBCレジスタ105等のペアレジスタに設定する設定処理と、がプログラム上のサブルーチンで行われる構成としてもよい。これにより、これら2つの処理を実行するための専用の回路を設けることを不要としながら、事前にIYレジスタ109に格納した特定制御用基準アドレス又は非特定制御用基準アドレスを流用するアドレス指定を可能とすることができる。また、これら2つの処理を実行するためのサブルーチンが複数の処理において共通して利用される構成とすることにより、これら2つの処理を実行するために主側ROM64に設定されるプログラムのデータ容量を低減することができる。
(12)TPレジスタ111に設定されているデータテーブルの基準アドレス(「9000H」)と12ビットの数値情報(例えば「400H」)とを加算する演算処理と、当該演算処理の結果(「9400H」)をHLレジスタ107等のペアレジスタに設定する設定処理と、がプログラム上のサブルーチンで行われる構成としてもよい。これにより、これら2つの処理を実行するための専用の回路を設けることを不要としながら、事前にTPレジスタ111に格納したデータテーブルの基準アドレスを流用するアドレス指定を可能とすることができる。また、これら2つの処理を実行するためのサブルーチンが複数の処理において共通して利用される構成とすることにより、これら2つの処理を実行するために主側ROM64に設定されるプログラムのデータ容量を低減することができる。
(13)取得データ指定データの第3〜第15ビットに対応する取得開始アドレスを特定する処理と、当該取得指定データの下位3ビットに対応する取得開始ビット目を特定する処理と、取得開始アドレスの取得開始ビット目から取得ビット数分のデータを「転送先」のレジスタにロードする処理と、「転送先」のレジスタのうちロードされたデータよりも上位側に存在するビットを「0」でマスクする処理と、がプログラム上のサブルーチンで行われる構成としてもよい。これにより、これら4つの処理を実行するための専用の回路を設けることを不要としながら、データテーブルに設定されている情報をビット単位で指定してビット配列の順番を維持しながら「転送先」のレジスタ(例えばHLレジスタ107)にロードすることができるとともに、当該レジスタのうちロードされたデータよりも上位側に存在するビットを「0」でマスクすることができる。また、これら4つの処理を実行するためのサブルーチンが複数の処理において共通して利用される構成とすることにより、これら4つの処理を実行するために主側ROM64に設定されるプログラムのデータ容量を低減することができる。
(14)IYレジスタ109に格納されているデータ(具体的には「1100H」)とAレジスタ104bに格納されているデータ(例えば「11H」)との和を演算して転送先のアドレス(「1111H」)を算出する処理と、「転送元」のWレジスタ104aに格納されている1バイトのデータを当該転送先にロードする処理と、がプログラム上のサブルーチンで行われる構成としてもよい。これにより、これら2つの処理を実行するための専用の回路を設けることを不要としながら、事前にIYレジスタ109に格納した情報を流用するアドレス指定を可能とすることができる。また、これら2つの処理を実行するためのサブルーチンが複数の処理において共通して利用される構成とすることにより、これら2つの処理を実行するために主側ROM64に設定されるプログラムのデータ容量を低減することができる。
(15)データテーブル(例えば変動パターンテーブル64t)に設定されているデータ(例えば判定値HVB1)をDレジスタ106a等のレジスタにロードする処理と、当該データのロード後にHLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、がプログラム上のサブルーチンで行われる構成としてもよい。これにより、これら2つの処理を実行するための専用の回路を設けることを不要とすることができる。また、各プログラムにおいて、当該サブルーチンの実行後にHLレジスタ107に格納されているアドレスを更新する処理が設定されている構成と比較して、プログラムのデータ容量を低減することができる。
(16)取得データ指定データの第3〜第15ビットに対応する取得開始アドレスを特定する処理と、当該取得指定データの第0〜第2ビットに対応する取得開始ビット目を特定する処理と、主側ROM64において取得開始アドレスにおける取得開始ビット目以降に設定されている取得ビット数分のデータを「転送先」のレジスタにおける下位ビットにロードする処理と、「転送先」のレジスタにおける上位ビットを「0」でマスクする処理と、データ転送後にHLレジスタ107の値に今回の取得ビット数を加算して取得データ指定データを更新する処理と、がプログラム上のサブルーチンで行われる構成としてもよい。これにより、これら5つの処理を実行するための専用の回路を設けることを不要としながら、データテーブルに設定されている情報をビット単位で指定してビット配列の順番を維持しながら「転送先」のレジスタ(例えばHLレジスタ107)にロードすることができるとともに、当該レジスタのうちロードされたデータよりも上位側に存在するビットを「0」でマスクすることができる。また、データのロード後にHLレジスタ107の値に今回の取得ビット数を加算して取得データ指定データを更新することができる。これら5つの処理を実行するためのサブルーチンが複数の処理において共通して利用される構成とすることにより、これら5つの処理を実行するために主側ROM64に設定されるプログラムのデータ容量を低減することができる。
(17)取得データ指定データの第4〜第15ビットに対応する取得開始アドレスを特定する処理と、当該取得指定データの第0〜第3ビットに対応する取得開始ビット目を特定する処理と、主側ROM64において取得開始アドレスにおける取得開始ビット目以降に設定されている取得ビット数分のデータを「転送先」のレジスタにおける下位ビットにロードする処理と、「転送先」のレジスタにおける上位ビットを「0」でマスクする処理と、がプログラム上のサブルーチンで行われる構成としてもよい。これにより、これら4つの処理を実行するための専用の回路を設けることを不要としながら、データテーブルに設定されている情報をビット単位で指定してビット配列の順番を維持しながら「転送先」のレジスタ(例えばHLレジスタ107)にロードすることができるとともに、当該レジスタのうちロードされたデータよりも上位側に存在するビットを「0」でマスクすることができる。これら4つの処理を実行するためのサブルーチンが複数の処理において共通して利用される構成とすることにより、これら4つの処理を実行するために主側ROM64に設定されるプログラムのデータ容量を低減することができる。
(18)データテーブルにおける1バイトのエリアの上位4ビットに設定されているデータをWレジスタ104aの下位4ビットに設定するとともに当該Wレジスタ104aの上位4ビットを「0」でマスクする処理と、当該1バイトのエリアの下位4ビットに設定されているデータをAレジスタ104bの下位4ビットに設定するとともに当該Aレジスタ104bの上位4ビットを「0」でマスクする処理と、HLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新する処理と、がプログラム上のサブルーチンで行われる構成としてもよい。これにより、これら3つの処理を実行するための専用の回路を設けることを不要としながら、1バイトのエリアに設定されている上位4ビットのデータ及び下位4ビットのデータを異なる汎用レジスタに読み出して利用可能とすることができるとともに、HLレジスタ107の値を1加算して当該HLレジスタ107に格納されているアドレスを更新することができる。また、これら3つの処理を実行するためのサブルーチンが複数の処理において共通して利用される構成とすることにより、これら3つの処理を実行するために主側ROM64に設定されるプログラムのデータ容量を低減することができる。
(19)上記各実施形態において、通信用のコマンド(通信用の変動用コマンド及び通信用の通常復帰コマンド)における最上位フレームSFp(pは1又は2)がヘッダHDと第1データフレームFR1との間に設定される構成としてもよい。2つのデータフレームFR1,FR2を含む通信用の変動用コマンドでは、ヘッダHD→第1最上位フレームSF1→第1データフレームFR1→第2データフレームFR2→フッタFTという順番でフレームが設定される。また、10個のデータフレームFR1〜FR10を含む通信用の通常復帰コマンドでは、ヘッダHD→第1最上位フレームSF1→第2最上位フレームSF2→第1データフレームFR1〜第10データフレームFR10→フッタFTという順番でフレームが設定される。音光側CPU93は、変換前エリア184に格納されている通信用のコマンドのデータ容量が3〜9バイトである場合には、当該変換前エリア184における第2エリアRA2に第1最上位フレームSF1が設定されていることを把握することができる。また、音光側CPU93は、変換前エリア184に格納されている通信用のコマンドのデータ容量が10〜12バイトである場合には、当該変換前エリア184における第2エリアRA2に第1最上位フレームSF1が設定されているとともに、当該変換前エリア184における第3エリアRA3に第2最上位フレームSF2が設定されていることを把握することができる。
(20)上記各実施形態において、通信用のコマンド(通信用の変動用コマンド及び通信用の通常復帰コマンド)における最上位フレームSFp(pは1又は2)がフッタFTの直前に設定される構成としてもよい。2つのデータフレームFR1,FR2を含む通信用の変動用コマンドでは、ヘッダHD→第1データフレームFR1→第2データフレームFR2→第1最上位フレームSF1→フッタFTという順番でフレームが設定される。また、10個のデータフレームFR1〜FR10を含む通信用の通常復帰コマンドでは、ヘッダHD→第1データフレームFR1〜第10データフレームFR10→第1最上位フレームSF1→第2最上位フレームSF2→フッタFTという順番でフレームが設定される。音光側CPU93は、変換前エリア184に格納されている通信用のコマンドのデータ容量が3〜9バイトである場合には、当該変換前エリア184においてフッタFTが格納されているエリアの1つ前のエリアに第1最上位フレームSF1が設定されていることを把握することができる。また、音光側CPU93は、変換前エリア184に格納されている通信用のコマンドのデータ容量が10〜12バイトである場合には、当該変換前エリア184においてフッタFTが格納されているエリアの2つ前のエリアに第1最上位フレームSF1が設定されているとともに、フッタFTが格納されているエリアの1つ前のエリアに第2最上位フレームSF2が設定されていることを把握することができる。
(21)上記各実施形態において、ヘッダHDとヘッダHD以外のデータとの識別に利用されるビットは各フレームにおける最上位ビット(第7ビット)に限られることはない。例えばヘッダHDとヘッダHD以外のデータとの識別に利用されるビットが各フレームにおける最下位ビット(第0ビット)である構成としてもよい。通信用のコマンド(通信用の変動用コマンド及び通信用の通常復帰コマンド)において、ヘッダHDの最下位ビットには「1」の情報がセットされる一方、ヘッダHD以外のデータにおける最下位ビットには「0」の情報がセットされる。音光側受信回路96は、各フレームにおける最下位ビットの状態に基づいて当該フレームがヘッダHDであるか否かを把握することができる。本構成において、通信用のコマンドには、各データフレームFRmの最下位ビットにおける「0」又は「1」の情報を集めた最下位フレームが設定される。第1最下位フレームの第nビット(nは1〜7のいずれかの整数)は第nデータフレームFRnに対応している。また、第2最下位フレームの第pビット(pは1〜3のいずれかの整数)は第(p+7)データフレームFR(p+7)に対応している。音光側CPU93は、通信用のコマンドに含まれている最下位フレームの各ビットの情報を変換後コマンドにおいて当該ビットに対応するデータフレームFRmの最下位ビットに設定する。これにより、通信時はヘッダHDとヘッダHD以外のフレームとを識別可能な通信用のコマンドとしながら、音光側CPU93にて利用される前に当該通信用のコマンドをデータフレームFRmの最下位ビットに「1」が設定され得る変換後コマンドに変換することができる。
(22)上記各実施形態において、最上位フレームSF1,SF2に設定するデータを退避エリア182,183に退避させておく構成に代えて、レジスタ(例えばDレジスタ106a及びEレジスタ106b)に退避させておく構成としてもよい。具体的には、2つのデータフレームFR1,FR2を含む通信用の変動用コマンドを送信待機バッファ175に設定する場合、事前に各データフレームFR1,FR2に設定されるデータにおける最上位ビット(第7ビット)のデータをDレジスタ106aに退避させておく。また、10個のデータフレームFR1〜FR10を含む通信用の通常復帰コマンドを送信待機バッファ175に設定する場合、事前に第1〜第7データフレームFR1〜FR7に設定されるデータにおける最上位ビット(第7ビット)のデータをDレジスタ106aに退避させておくとともに、第8〜第10データフレームFR8〜FR10に設定されるデータにおける最上位ビット(第7ビット)のデータをEレジスタ106bに退避させておく。このように、最上位ビットのデータをレジスタに退避させる構成とすることにより、特定制御用のワークエリア121において当該最上位ビットのデータを退避させるための専用エリアを不要とすることができる。
(23)主側CPU63から音光側CPU93に送信される通信用のコマンドに3つ以上の最上位フレームが設定されている構成としてもよい。例えば、通信用のコマンドに15個のデータフレームFR1〜FR16が設定されている場合、当該通信用のコマンドには、第1〜第7データフレームFR1〜FR7における最上位ビットの情報が集約されている第1最上位フレームSF1、第8〜第14データフレームFR8〜FR14における最上位ビットの情報が集約されている第2最上位フレームSF2、及び第15〜第16データフレームFR15〜FR16における最上位ビットの情報が集約されている第3最上位フレームSF3が設定されている。上記第1の実施形態において既に説明したとおり、通信用のコマンドに含まれているデータフレームFRmの数が「7」の倍数である場合には、当該通信用のコマンドに含まれているデータフレームFRmの数を「7」で除算した場合における商の数の最上位フレームSFpが当該通信用のコマンドに設定されている。また、通信用のコマンドに含まれているデータフレームFRmの数が「7」の倍数ではない場合には、当該通信用のコマンドに含まれているデータフレームFRmの数を「7」で除算した場合における商の数よりも「1」大きい数の最上位フレームSFpが当該通信用のコマンドに設定されている。これにより、通信用のコマンドの受信後に当該通信用のコマンドに含まれている全てのデータフレームFRmにおける最上位のビットに設定される情報を最上位フレームSFpに設定することができる。
(24)上記各実施形態において、音光側RAM95に、主側CPU63から受信したコマンドに1対1で対応させて当該コマンドを格納するための専用のエリアが設定されている構成としてもよい。具体的には、音光側RAM95には、変換後変動用コマンドを格納するための変動用コマンド格納エリア、及び変換後通常復帰コマンドを格納するための通常復帰コマンド格納エリアが設けられている。変動用コマンド格納エリアは4バイトからなるエリアであるとともに、通常復帰コマンド格納エリアは12バイトからなるエリアである。音光側CPU93が主側CPU63から通信用の変動用コマンドを受信した場合、当該通信用の変動用コマンドは変換後変動用コマンドに変換されて変動用コマンド格納エリアに格納される。これにより、音光側CPU93において変換後変動用コマンドが利用されるまで、当該コマンドが他のコマンドによって上書きされてしまうことを防止しながら、当該コマンドを変動用コマンド格納エリアに記憶しておくことができる。音光側CPU93が主側CPU63から通信用の通常復帰コマンドを受信した場合、当該通信用の通常復帰コマンドは変換後通常復帰コマンドに変換されて通常復帰コマンド格納エリアに格納される。これにより、音光側CPU93において変換後通常復帰コマンドが利用されるまで、当該コマンドが他のコマンドによって上書きされてしまうことを防止しながら、当該コマンドを通常復帰コマンド格納エリアに記憶しておくことができる。
(25)上記各実施形態において、主側ROM64に「設定1」〜「設定6」に共通する1種類のみの高確当否テーブル64gが記憶されている構成に代えて、主側ROM64に「設定1」〜「設定6」の設定状態に1対1で対応させて高確当否テーブルが記憶されている構成としてもよい。これらの高確当否テーブルは、高い設定値ほど大当たり結果の当選確率が高くなるように設定されている。具体的には、設定1用の高確当否テーブルには大当たり結果となる値が250個設定されている。設定1用の高確当否テーブルが参照された場合には1/32で大当たり結果となる。設定2用の高確当否テーブルには大当たり結果となる値が260個設定されている。設定2用の高確当否テーブルが参照された場合には約1/30.8で大当たり結果となる。設定3用の高確当否テーブルには大当たり結果となる値が270個設定されている。設定3用の高確当否テーブルが参照された場合には約1/29.6で大当たり結果となる。設定4用の高確当否テーブルには大当たり結果となる値が280個設定されている。設定4用の高確当否テーブルが参照された場合には約1/28.6で大当たり結果となる。設定5用の高確当否テーブルには大当たり結果となる値が290個設定されている。設定5用の高確当否テーブルが参照された場合には約1/27.6で大当たり結果となる。設定6用の高確当否テーブルには大当たり結果となる値が300個設定されている。設定6用の高確当否テーブルが参照された場合には約1/26.7で大当たり結果となる。パチンコ機10の設定状態が高い設定値である方が高確率モードにおいて大当たり結果が発生し易くなるとともに、遊技者にとって有利となる。これにより、遊技の興趣向上を図ることができる。
(26)上記各実施形態において、パチンコ機10への動作電力の供給開始時における設定キー挿入部68a及びリセットボタン68cの操作態様に応じて、設定値更新処理が実行される場合と、設定確認処理が実行される場合と、RAMクリア処理が実行される場合と、がある構成としてもよい。具体的には、設定キー挿入部68aのON操作が行われている状態であるとともにリセットボタン68cのON操作が行われている状態でパチンコ機10への動作電力の供給が開始された場合には、パチンコ機10の設定値を更新可能とする設定値更新処理が実行されるとともに、当該設定値更新処理の終了後に主側RAM65に記憶されている情報をクリアするRAMクリア処理が実行される。また、設定キー挿入部68aのON操作が行われている状態であるとともにリセットボタン68cのON操作が行われていない状態でパチンコ機10への動作電力の供給が開始された場合には、パチンコ機10における現状の設定値を確認可能とする設定確認処理が実行される。さらにまた、設定キー挿入部68aのON操作が行われていない状態であるとともにリセットボタン68cのON操作が行われている状態でパチンコ機10への動作電力の供給が開始された場合には、上述したRAMクリア処理が実行される。このように、パチンコ機10への動作電力の供給開始時における設定キー挿入部68a及びリセットボタン68cの操作態様に応じて、設定値更新処理が実行される場合と、設定確認処理が実行される場合と、RAMクリア処理が実行される場合と、がある構成とすることにより、遊技ホールの管理者によるパチンコ機10の管理を容易化することができる。
(27)主制御装置60から送信されるコマンドに基づいて、音声発光制御装置90により表示制御装置89が制御される構成に代えて、主制御装置60から送信されるコマンドに基づいて、表示制御装置89が音声発光制御装置90を制御する構成としてもよい。また、音声発光制御装置90と表示制御装置89とが別々に設けられた構成に代えて、両制御装置が一の制御装置として設けられた構成としてもよく、それら両制御装置のうち一方の機能が主制御装置60に集約されていてもよく、それら両制御装置の両機能が主制御装置60に集約されていてもよい。また、主制御装置60から音声発光制御装置90に送信されるコマンドの内容や、音声発光制御装置90から表示制御装置89に送信されるコマンドの内容も任意である。
(28)上記各実施形態とは異なる他のタイプのパチンコ機等、例えば特別装置の特定領域に遊技球が入ると電動役物が所定回数開放するパチンコ機や、特別装置の特定領域に遊技球が入ると権利が発生して大当たりとなるパチンコ機、他の役物を備えたパチンコ機、アレンジボール機、雀球等の遊技機にも、本発明を適用できる。
また、弾球式ではない遊技機、例えば、複数種の図柄が周方向に付された複数のリールを備え、メダルの投入及びスタートレバーの操作によりリールの回転を開始し、ストップスイッチが操作されるか所定時間が経過することでリールが停止した後に、表示窓から視認できる有効ライン上に特定図柄又は特定図柄の組合せが成立していた場合にはメダルの払い出し等といった特典を遊技者に付与するスロットマシンにも本発明を適用できる。
また、外枠に開閉可能に支持された遊技機本体に貯留部及び取込装置を備え、貯留部に貯留されている所定数の遊技球が取込装置により取り込まれた後にスタートレバーが操作されることによりリールの回転を開始する、パチンコ機とスロットマシンとが融合された遊技機にも、本発明を適用できる。
<上記各実施形態から抽出される発明群について>
以下、上述した各実施形態から抽出される発明群の特徴について、必要に応じて効果等を示しつつ説明する。なお以下においては、理解の容易のため、上記各実施形態において対応する構成を括弧書き等で適宜示すが、この括弧書き等で示した具体的構成に限定されるものではない。
<特徴A群>
特徴A1.利用すべき記憶エリアの所定アドレス(第1LDY命令、第2LDY命令、LDT命令、LDB命令、LDB更新命令及び特殊LDB命令における転送元を指定するアドレス)を特定する特定手段(第1LDY実行回路156による第1LDY命令を実行する機能、LDT実行回路149によるLDT命令を実行する機能、LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、第2LDY実行回路164による第2LDY命令を実行する機能、特殊LD実行回路194における特殊LD命令を実行する機能、特殊LDB実行回路201における特殊LDB命令を実行する機能)と、
当該特定手段により特定された前記所定アドレスに対応する記憶エリアを利用して所定処理(転送元の情報を転送する処理)を実行する所定処理実行手段(第1LDY実行回路156による第1LDY命令を実行する機能、LDT実行回路149によるLDT命令を実行する機能、LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、第2LDY実行回路164による第2LDY命令を実行する機能、特殊LD実行回路194における特殊LD命令を実行する機能、特殊LDB実行回路201における特殊LDB命令を実行する機能)と、
を備えた遊技機において、
前記所定アドレスに含まれる複数ビットのうち一部のビットの情報である第1所定アドレス情報(特定制御用基準アドレス、非特定制御用基準アドレス、データテーブルの基準アドレス)を記憶することが可能な所定記憶手段(IYレジスタ109、TPレジスタ111)を備え、
前記特定手段は、前記所定アドレスに含まれる前記複数ビットのうち前記一部のビットとは異なるビットの情報である第2所定アドレス情報(第1LDY命令、第2LDY命令及び特殊LD命令ではアドレス情報の下位1バイト、LDT命令、LDB命令、LDB更新命令及び特殊LDB命令ではアドレス情報の下位12ビット)をプログラムから特定し、その特定した第2所定アドレス情報及び前記所定記憶手段に記憶された前記第1所定アドレス情報から前記所定アドレスを特定することを特徴とする遊技機。
特徴A1によれば、プログラムから特定した第2所定アドレス情報及び所定記憶手段に記憶された第1所定アドレス情報から所定アドレスを特定するため、所定アドレスの全体がプログラムに設定されている構成と比較して、所定アドレスを特定するためにプログラムに設定する情報のデータ容量を低減することができる。
特徴A2.前記所定記憶手段は、制御手段に設けられた所定のレジスタ(IYレジスタ109、TPレジスタ111)であることを特徴とする特徴A1に記載の遊技機。
特徴A2によれば、制御手段は、所定アドレスを特定するために利用される第1所定アドレス情報が記憶されている所定のレジスタに容易にアクセスすることができる。制御手段に設けられた所定のレジスタ以外に第1所定アドレス情報を記憶するための専用の記憶領域を設けることを不要とすることができる。
特徴A3.前記特定手段が特定する前記所定アドレスの範囲が、前記所定アドレスに含まれる複数ビットのうち一部のビットの情報である前記第1所定アドレス情報が共通する第1アドレス範囲(「0000H」〜「00FFH」)から、当該一部のビットの情報である前記第1所定アドレス情報が前記第1アドレス範囲とは異なるアドレス情報(「0300H」)で共通する第2アドレス範囲(「0303H」〜「03FFH」)に変更される場合に、前記所定記憶手段の情報を前記第1所定アドレス情報から前記異なるアドレス情報(「0300H」)に変更する変更手段(主側CPU63におけるステップS1707の処理を実行する機能)を備えていることを特徴とする特徴A1又はA2に記載の遊技機。
特徴A3によれば、特定手段が第1アドレス範囲内で所定アドレスを特定する状況においては所定記憶手段に記憶された第1所定アドレス情報を利用することができるとともに、特定手段が第2アドレス範囲内で所定アドレスを特定する状況においては所定記憶手段に記憶された異なるアドレス情報を利用することができる。
特徴A4.第1特定処理(特定制御用の処理)を実行する第1特定処理実行手段(主側CPU63における特定制御用の処理を実行する機能)と、
第2特定処理(非特定制御用の処理)を実行する第2特定処理実行手段(主側CPU63における非特定制御用の処理を実行する機能)と、
を備え、
前記所定処理実行手段は、前記第1特定処理が実行されている状況においては、前記第1アドレス範囲の中から前記特定手段により特定された前記所定アドレスに対応する記憶エリアを利用して前記所定処理を実行し、前記第2特定処理が実行されている状況においては、前記第2アドレス範囲の中から前記特定手段により特定された前記所定アドレスに対応する記憶エリアを利用して前記所定処理を実行し、
前記変更手段は、前記第1特定処理が実行されている状況において前記第2特定処理が開始される場合に、前記所定記憶手段の情報を前記第1所定アドレス情報から前記異なるアドレス情報に変更することを特徴とする特徴A3に記載の遊技機。
特徴A4によれば、第1特定処理を実行している状況では特定アドレスを特定するために所定記憶手段に記憶された第1所定アドレス情報を利用することができるとともに、第2特定処理を実行している状況では特定アドレスを特定するために所定記憶手段に記憶された異なるアドレス情報を利用することができる。
特徴A5.前記所定処理実行手段は、前記第1特定処理が実行されている状況において、前記所定記憶手段に格納されている前記第1所定アドレス情報を利用して前記第1アドレス範囲に含まれている前記所定アドレスを特定し、前記所定記憶手段に格納されている情報を利用せずに前記第1アドレス範囲及び前記第2アドレス範囲と重複しない第3アドレス範囲(「0100H」〜「02FFH」)のアドレスを特定することを特徴とする特徴A4に記載の遊技機。
特徴A5によれば、第1特定処理が実行されている状況において、第1アドレス範囲の所定アドレス及び第3アドレス範囲のアドレスを特定することができる。このため、第1特定処理が実行されている状況において第1アドレス範囲の所定アドレスのみが特定される構成と比較して、第1特定処理が実行されている状況において特定可能なアドレスの範囲を広く確保することができる。第1特定処理が実行されている状況において、第1アドレス範囲の所定アドレスが特定される場合には所定記憶手段に格納されている第1所定アドレス情報が利用される一方、第3アドレス範囲のアドレスが特定される場合には所定記憶手段に格納されている情報が利用されない。このため、第1特定処理が実行されている状況において、所定記憶手段に第1所定アドレス情報が設定されている状態を固定することができる。これにより、当該状況において、所定記憶手段に設定されている情報を変更する処理、及び当該所定記憶手段の情報を当該変更の前の情報に戻す処理を不要とすることができる。よって、第1特定処理を実行するためのプログラムのデータ容量を低減することができる。
特徴A6.前記第1特定処理を実行するためのプログラムに前記第1アドレス範囲の前記所定アドレスを特定するための前記第2所定アドレス情報が出現する回数は、当該プログラムに前記第3アドレス範囲のアドレスを特定するための情報が出現する回数よりも多いことを特徴とする特徴A5に記載の遊技機。
特徴A6によれば、第1特定処理を実行するためのプログラムのデータ容量を低減することができる。
特徴A7.動作電力の供給開始時に前記第1所定アドレス情報を前記所定記憶手段に設定する情報設定手段(主側CPU63におけるステップS103の処理を実行する機能)を備えていることを特徴とする特徴A1乃至A6のいずれか1に記載の遊技機。
特徴A7によれば、動作電力の供給開始時に第1所定アドレス情報を所定記憶手段に設定することにより、動作電力の供給開始直後から特定アドレスを特定するために所定記憶手段に記憶された第1所定アドレス情報を利用可能とすることができる。
特徴A8.記憶エリア毎にアドレスが設定されている情報記憶手段(主側ROM64)を備え、
前記特定手段は、前記所定アドレスとして、プログラムから特定した前記第2所定アドレス情報及び前記所定記憶手段に記憶された前記第1所定アドレス情報から前記情報記憶手段の記憶エリアのアドレスを特定することを特徴とする特徴A1乃至A7のいずれか1に記載の遊技機。
特徴A8によれば、情報記憶手段における記憶エリアのアドレスを特定する場合に所定記憶手段に記憶されている第1所定アドレス情報を利用することができる。このため、情報記憶手段における記憶エリアのアドレスを指定するために当該アドレスの情報の全体をプログラムに設定する構成と比較して、情報記憶手段における記憶エリアのアドレスを指定するためにプログラムに設定される情報のデータ容量を低減することができる。
特徴A9.記憶エリア毎にアドレスが設定されている情報記憶手段(主側ROM64)と、
前記情報記憶手段に記憶されている第1情報群(第4の実施形態における第1初期化テーブル64y及び第2初期化テーブル64z)を利用して第1処理(第4の実施形態における電源投入設定処理)を実行する第1処理実行手段(主側CPU63における行番号「2801」〜「2806」の処理を実行する機能)と、
前記情報記憶手段に記憶されている第2情報群(第4の実施形態における乱数最大値テーブル64α)を利用して第2処理(第4の実施形態における乱数最大値設定処理)を実行する第2処理実行手段(主側CPU63におけるステップS3001〜ステップS3006の処理を実行する機能)と、
を備え、
前記特定手段は、前記第1処理の開始時に、前記第2所定アドレス情報をプログラムから特定し、その特定した第2所定アドレス情報及び前記所定記憶手段に記憶された前記第1所定アドレス情報から前記所定アドレスとして、前記情報記憶手段において前記第1情報群が設定されている特定アドレス範囲(「9400H」〜「940BH」のアドレス範囲)における最初のアドレスを特定する手段(第4の実施形態における主側CPU63の行番号「2801」の処理を実行する機能)を備えており、
前記特定アドレス範囲における最後のアドレスは、前記情報記憶手段において前記第2情報群が設定されているアドレス範囲における最初のアドレスと同じ共通アドレス(「940BH」)であることを特徴とする特徴A1乃至A8のいずれか1に記載の遊技機。
特徴A9によれば、第1情報群が設定されているアドレス範囲における最後のアドレスと第2情報群が設定されているアドレス範囲における最初のアドレスとが異なるアドレスである構成と比較して、情報記憶手段における第1情報群及び第2情報群の合計のデータ容量を低減することができる。プログラムから特定した第2所定アドレス情報及び所定記憶手段に記憶された第1所定アドレス情報から特定アドレス範囲における最初のアドレスを特定するため、当該アドレスの全体がプログラムに設定されている構成と比較して、特定アドレス範囲における最初のアドレスを特定するためにプログラムに設定する情報のデータ容量を低減することができる。
特徴A10.前記情報記憶手段において前記共通アドレスに対応する記憶エリアには、所定共通情報(「63H」)が設定されており、
前記第1処理実行手段は、前記所定共通情報を利用して前記第1処理を終了し、
前記第2処理実行手段は、前記第2処理の開始時に前記所定共通情報を情報設定領域に設定することを特徴とする特徴A9に記載の遊技機。
特徴A10によれば、第2処理において情報設定領域に設定される所定共通情報を利用して第1処理が終了される。このため、情報設定領域に設定される所定共通情報とは別に、情報記憶手段に第1処理を終了させるための情報が設定されている構成と比較して、情報記憶手段における第1情報群及び第2情報群の合計のデータ容量を低減することができる。
特徴A11.前記第1処理実行手段は、
前記共通アドレスに対応する記憶エリアに設定されている所定共通情報(「63H」)を所定共通記憶手段(Eレジスタ106b)に設定する所定共通設定手段(主側CPU63における行番号「2903」の命令を実行する機能)と、
前記所定共通情報が前記所定共通記憶手段に設定されていることに基づいて前記第1処理を終了する所定終了手段(主側CPU63における行番号「2904」の命令を実行する機能)と、
を備えており、
前記第2処理実行手段は、前記第1処理の終了時に前記所定共通記憶手段に設定されている前記所定共通情報を利用して前記第2処理を実行することを特徴とする特徴A10に記載の遊技機。
特徴A11によれば、第2処理の開始時に所定共通情報を所定共通記憶手段に設定する処理を省略することができる。これにより、第2処理を実行するためのプログラムのデータ容量を低減することができる。
なお、特徴A1〜A11の構成に対して、特徴A1〜A11、特徴B1〜B6、特徴C1〜C6、特徴D1〜D24、特徴E1〜E15、特徴F1〜F7、特徴G1〜G10、特徴H1〜H15のうちいずれか1又は複数の構成を適用してもよい。これにより、その組み合わせた構成による相乗的な効果を奏することが可能となる。
上記特徴A群に係る発明によれば、以下の課題を解決することが可能である。
遊技機としてパチンコ機やスロットマシンなどが知られている。例えば、パチンコ機は、遊技者に付与された遊技球を貯留する皿貯留部を遊技機前面部に備えており、当該皿貯留部に貯留された遊技球が遊技球発射装置に案内されて、遊技者の発射操作に応じて遊技領域に向けて発射される。そして、例えば遊技領域に設けられた入球部に遊技球が入球した場合に、例えば払出装置から皿貯留部に遊技球が払い出される。また、パチンコ機においては、皿貯留部として上側皿貯留部と下側皿貯留部とを備えた構成も知られており、この場合、上側皿貯留部に貯留された遊技球が遊技球発射装置に案内され、当該上側皿貯留部にて余剰となった遊技球が下側皿貯留部に排出される。
また、スロットマシンでは、メダルがベットされている状況でスタートレバーが操作されて新たなゲームが開始される場合に制御手段にて抽選処理が実行される。また、抽選処理が実行された場合には制御手段にて回転開始制御が実行されることによりリールの回転が開始され、当該リールの回転中にストップボタンが操作された場合には制御手段にて回転停止制御が実行されることによりリールの回転が停止される。そして、リールの回転停止後の停止結果が抽選処理の当選役に対応したものである場合には、当該当選役に対応した特典が遊技者に付与される。
ここで、上記例示等のような遊技機においては、各種処理が好適に実行される必要があり、この点について未だ改良の余地がある。
<特徴B群>
特徴B1.アドレス情報(第1の実施形態における開始アドレスSA0〜SA6の下位12ビット、開始アドレスSB0〜SB23の下位12ビット、第2の実施形態における最大値カウンタ191a〜193aのアドレスの下位1バイト)が複数設定された特定アドレス情報群(第1の実施形態における特図特電アドレステーブル64q、変動開始用テーブル64r、第2の実施形態におけるハード乱数最大値テーブル64w)を利用して参照対象となる特定アドレスを特定するアドレス特定手段(主側CPU63における行番号「1708」の命令を実行する機能、主側CPU63における行番号「2605」の命令を実行する機能)と、
当該アドレス特定手段により特定された前記特定アドレスに対応する記憶エリアを利用して特定処理(第1の実施形態における主側CPU63のステップS903〜ステップS910の処理、第2の実施形態における主側CPU63における最大値設定実行処理)を実行する特定処理実行手段(第1の実施形態における主側CPU63のステップS903〜ステップS910の処理を実行する機能、第2の実施形態における主側CPU63における最大値設定実行処理を実行する機能)と、
を備えた遊技機において、
前記特定アドレス情報群を利用して前記アドレス特定手段により特定される前記特定アドレスは、当該特定アドレスに含まれる複数ビットのうち所定範囲のビットの情報(データテーブルの基準アドレス、最大値カウンタ191a〜193aのアドレスに共通する上位1バイト)が共通しており、
本遊技機は、前記所定範囲のビットの情報を記憶することが可能な特定記憶手段(IYレジスタ109、TPレジスタ111)を備え、
前記特定アドレス情報群に含まれる前記アドレス情報には、前記特定アドレスに含まれる前記複数のビットのうち前記所定範囲のビット以外の情報(開始アドレスSA0〜SA6の下位12ビット、開始アドレスSB0〜SB23の下位12ビット、最大値カウンタ191a〜193aのアドレスの下位1バイト)が設定されていることを特徴とする遊技機。
特徴B1によれば、特定アドレス情報群に設定されているアドレス情報を利用して特定アドレスを特定することができる。特定アドレス情報群に設定されているアドレス情報は、特定アドレスに含まれる複数のビットのうち所定範囲のビット以外の情報であるため、特定アドレスを特定するために特定アドレス情報群に設定されるアドレス情報のデータ容量を低減することができるとともに、当該特定アドレス情報群のデータ容量を低減することができる。
特徴B2.前記特定記憶手段は、制御手段に設けられた所定のレジスタ(IYレジスタ109、TPレジスタ111)であることを特徴とする特徴B1に記載の遊技機。
特徴B2によれば、制御手段は、特定アドレスを特定するために利用される所定範囲のビットの情報が記憶されている所定のレジスタに容易にアクセスすることができる。制御手段に設けられた所定のレジスタ以外に所定範囲のビットの情報を記憶するための専用の記憶領域を設けることを不要とすることができる。
特徴B3.前記特定アドレス情報群には、複数の設定対象エリアのアドレス情報(第2の実施形態におけるハード乱数最大値テーブル64wに設定されている最大値カウンタ191a〜193aのアドレスにおける下位1バイトのデータ)と、当該複数の設定対象エリアに設定される数値情報(第2の実施形態におけるハード乱数最大値テーブル64wの最大値カウンタ191a〜193aに対応する最大値データ)と、が設定されており、
前記アドレス特定手段は、前記特定アドレス情報群を利用して参照対象となる前記設定対象エリアのアドレスを特定し、
前記特定処理実行手段は、前記特定処理として、前記アドレス特定手段により特定されたアドレスに対応する前記設定対象エリアに前記数値情報を設定する処理を実行し、
前記設定対象エリアのアドレスに含まれる複数ビットのうち前記所定範囲のビットの情報が共通しており、
前記特定アドレス情報群には、前記設定対象エリアのアドレスに含まれている前記複数のビットのうち前記所定範囲のビット以外の情報が設定されており、
前記特定アドレス情報群に設定されている前記設定対象エリアの前記アドレス情報は、前記数値情報と同一のデータ容量であることを特徴とする特徴B1又はB2に記載の遊技機。
特徴B3によれば、特定アドレス情報群に設定されている設定対象エリアのアドレス情報を所定範囲のビット以外の情報とすることにより、特定アドレス情報群に設定されている設定対象エリアのアドレス情報と数値情報のデータ容量とを同一のデータ容量をとすることができる。このため、特定アドレス情報群に使用されない調整用のデータが設定されている構成と比較して、特定アドレス情報群のデータ容量を低減することができる。
特徴B4.動作電力の供給開始時に前記特定記憶手段に前記所定範囲のビットの情報を設定する設定手段(主側CPU63におけるステップS103の処理を実行する機能)を備えていることを特徴とする特徴B1乃至B3のいずれか1に記載の遊技機。
特徴B4によれば、動作電力の供給開始時に所定範囲のビットの情報を特定記憶手段に設定することにより、動作電力の供給開始直後から特定アドレスを特定するために特定記憶手段に記憶された所定範囲のビットの情報を利用可能とすることができる。
特徴B5.前記特定記憶手段に記憶されている前記所定範囲のビットの情報は、アドレス情報が複数設定された他のアドレス情報群(第1の実施形態における変動開始用テーブル64r)を利用して参照対象となる他のアドレス(開始アドレスSB0〜SB23)を特定する場合においても利用されることを特徴とする特徴B1乃至B4のいずれか1に記載の遊技機。
特徴B5によれば、特定記憶手段に記憶されている所定範囲のビットの情報は、特定アドレスを特定する場合に利用されるとともに、他のアドレスを特定する場合においても利用される。このため、特定記憶手段に記憶されている情報を変更する処理を不要とすることができる。
特徴B6.前記所定範囲のビット以外の情報は、前記特定アドレスにおいて前記所定範囲のビットの情報よりも下位側に配置されている情報であることを特徴とする特徴B1乃至B5のいずれか1に記載の遊技機。
特徴B6によれば、特定アドレスを特定するためにプログラムに設定される情報を当該特定アドレスにおいて所定範囲のビットよりも下位側の当該所定範囲のビット以外の情報のみとすることができる。
なお、特徴B1〜B6の構成に対して、特徴A1〜A11、特徴B1〜B6、特徴C1〜C6、特徴D1〜D24、特徴E1〜E15、特徴F1〜F7、特徴G1〜G10、特徴H1〜H15のうちいずれか1又は複数の構成を適用してもよい。これにより、その組み合わせた構成による相乗的な効果を奏することが可能となる。
上記特徴B群に係る発明によれば、以下の課題を解決することが可能である。
遊技機としてパチンコ機やスロットマシンなどが知られている。例えば、パチンコ機は、遊技者に付与された遊技球を貯留する皿貯留部を遊技機前面部に備えており、当該皿貯留部に貯留された遊技球が遊技球発射装置に案内されて、遊技者の発射操作に応じて遊技領域に向けて発射される。そして、例えば遊技領域に設けられた入球部に遊技球が入球した場合に、例えば払出装置から皿貯留部に遊技球が払い出される。また、パチンコ機においては、皿貯留部として上側皿貯留部と下側皿貯留部とを備えた構成も知られており、この場合、上側皿貯留部に貯留された遊技球が遊技球発射装置に案内され、当該上側皿貯留部にて余剰となった遊技球が下側皿貯留部に排出される。
また、スロットマシンでは、メダルがベットされている状況でスタートレバーが操作されて新たなゲームが開始される場合に制御手段にて抽選処理が実行される。また、抽選処理が実行された場合には制御手段にて回転開始制御が実行されることによりリールの回転が開始され、当該リールの回転中にストップボタンが操作された場合には制御手段にて回転停止制御が実行されることによりリールの回転が停止される。そして、リールの回転停止後の停止結果が抽選処理の当選役に対応したものである場合には、当該当選役に対応した特典が遊技者に付与される。
ここで、上記例示等のような遊技機においては、情報群のデータ構成を好適なものとする必要があり、この点について未だ改良の余地がある。
<特徴C群>
特徴C1.指定アドレス(LD更新命令、LDH更新命令及びLDB更新命令における転送元のアドレス)に対応する記憶エリアを利用して所定対応処理(LD更新命令により情報を転送する処理、LDH更新命令により情報を転送する処理、LDB更新命令により情報を転送する処理)を実行する所定対応実行手段(LD更新実行回路151によるLD更新命令を実行する機能、LDH更新実行回路152によるLDH更新命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能)と、
前記所定対応処理が実行された場合に前記指定アドレスを更新するアドレス更新手段(LD更新実行回路151によるLD更新命令を実行する機能、LDH更新実行回路152によるLDH更新命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能)と、
を備え、
前記所定対応処理を実行すること及び当該所定対応処理の実行後に前記指定アドレスを更新することの命令が所定命令(LD更新命令、LDH更新命令、LDB更新命令)に集約されていることを特徴とする遊技機。
特徴C1によれば、所定対応処理が実行された場合に指定アドレスを更新することにより、当該指定アドレスに対応する記憶エリアを更新することができる。所定対応処理及び当該所定対応処理の実行後に指定アドレスを更新する処理を、一命令で実行することができる。このため、これら2つの処理を実行するために複数の命令がプログラムに設定されている構成と比較して、これら2つの処理を実行するためのプログラムの構成を簡素化することができるとともに、プログラムのデータ容量を低減することができる。
特徴C2.前記所定対応処理は、前記指定アドレスに対応する前記記憶エリアに格納されている情報を読み出し先エリア(LD更新命令、LDH更新命令及びLDB更新命令の命令コードにおける転送先)に読み出す処理であることを特徴とする特徴C1に記載の遊技機。
特徴C2によれば、指定アドレスに対応する記憶エリアに格納されている情報を読み出し先エリアに読み出す処理及び当該処理の実行後に指定アドレスを更新する処理を、一命令で実行することができる。
特徴C3.前記所定命令には、前記指定アドレスを指定する情報、及び前記読み出し先エリアを指定する情報が含まれており、前記アドレス更新手段による前記指定アドレスの更新量を指定する情報は含まれていないことを特徴とする特徴C2に記載の遊技機。
特徴C3によれば、所定命令には指定アドレスの更新量を指定する情報が含まれていないため、所定命令に指定アドレスの更新量を指定する情報が含まれている構成と比較して、所定命令のデータ容量を低減することができる。
特徴C4.前記所定命令が実行された場合に前記アドレス更新手段により更新される前記指定アドレスの更新量は、固定されていることを特徴とする特徴C1乃至C3のいずれか1に記載の遊技機。
特徴C4によれば、所定命令を実行することにより所定対応処理の実行後に一定の態様で指定アドレスを更新することができる。
特徴C5.前記所定命令が実行された場合に前記アドレス更新手段により更新される前記指定アドレスの更新量は、「1」であることを特徴とする特徴C4に記載の遊技機。
特徴C5によれば、所定命令を実行することにより所定対応処理の実行後に指定アドレスを「1」だけ更新することができる。
特徴C6.初期の前記指定アドレスが設定された後に、終了判定となるまで、前記所定命令を繰り返し実行する所定命令実行手段(第1の実施形態における主側CPU63のステップS301〜ステップS305の処理を実行する機能、主側CPU63の行番号「1101」〜行番号「1109」の処理を実行する機能)を備えていることを特徴とする特徴C1乃至C5のいずれか1に記載の遊技機。
特徴C6によれば、指定アドレスを更新しながら、当該指定アドレスに対応する記憶エリアを利用して所定対応処理を実行するとともに当該所定対応処理の実行後に指定アドレスを更新する処理を繰り返し実行することができる。
なお、特徴C1〜C6の構成に対して、特徴A1〜A11、特徴B1〜B6、特徴C1〜C6、特徴D1〜D24、特徴E1〜E15、特徴F1〜F7、特徴G1〜G10、特徴H1〜H15のうちいずれか1又は複数の構成を適用してもよい。これにより、その組み合わせた構成による相乗的な効果を奏することが可能となる。
<特徴D群>
特徴D1.情報記憶手段(主側ROM64)に設けられた各記憶エリアのうち所定バイト単位(1バイト単位)の記憶エリア毎にアドレスが設定されている遊技機において、
指定アドレス情報(LDH更新命令ではHLレジスタ107に格納されている転送元のアドレス情報、LDB命令、LDB更新命令及び特殊LDB命令ではHLレジスタ107に格納されている取得データ指定データから算出される取得開始アドレス)に対応する前記所定バイト単位の記憶エリアを特定するエリア特定手段(LDH更新実行回路152におけるLDH更新命令を実行する機能、LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
当該エリア特定手段により特定された前記記憶エリアのうち一部のビットを利用対象として特定するビット特定手段(LDH更新実行回路152におけるLDH更新命令を実行する機能、LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
を備えていることを特徴とする遊技機。
特徴D1によれば、所定バイト単位の記憶エリアのうち一部のビットを利用対象として特定することができる。情報記憶手段に所定バイトよりも小さい単位で情報を集約することができるため、情報記憶手段に記憶する情報のデータ容量を低減することができる。
特徴D2.前記エリア特定手段により特定された前記所定バイト単位の記憶エリアのうち他の一部のビット(主側ROM64の1バイトエリアにおける下位4ビット)を利用対象として特定する手段(LDH更新実行回路152におけるLDH更新命令を実行する機能)を備えていることを特徴とする特徴D1に記載の遊技機。
特徴D2によれば、特徴D1の構成を備え、エリア特定手段により特定された所定バイト単位の記憶エリアのうち一部のビットが利用対象として特定される構成において、当該記憶エリアの他の一部のビットも利用対象として特定される。1つの所定バイト単位の記憶エリアに記憶されている一部のビット及び他の一部のビットを利用対象として特定することができるため、2つの情報(一部のビット及び他の一部のビット)を1つの所定バイト単位の記憶エリアに集約させて設定することができる。これにより、情報記憶手段に設定する情報のデータ容量を低減することができる。
特徴D3.前記エリア特定手段により特定された前記所定バイト単位の記憶エリアのうち利用対象として特定される前記一部のビット及び前記他の一部のビットのビット数(4ビット)は同一であることを特徴とする特徴D2に記載の遊技機。
特徴D3によれば、1つの所定バイト単位の記憶エリアにおいて同一のビット数である一部のビット及び他の一部のビットを利用対象として特定することができるため、同一のビット数である2つの情報(一部のビット及び他の一部のビット)を1つの所定バイト単位の記憶エリアに集約させて設定することができる。
特徴D4.前記エリア特定手段により特定された前記所定バイト単位の記憶エリアのうち利用対象として特定された前記一部のビットを第1読み出し対象エリア(Wレジスタ104a)に読み出す第1読み出し手段(LDH更新実行回路152におけるLDH更新命令を実行する機能)と、
前記エリア特定手段により特定された前記所定バイト単位の記憶エリアのうち利用対象として特定された前記他の一部のビットを第2読み出し対象エリア(Aレジスタ104b)に読み出す第2読み出し手段(LDH更新実行回路152におけるLDH更新命令を実行する機能)と、
を備えていることを特徴とする特徴D2又はD3に記載の遊技機。
特徴D4によれば、エリア特定手段により特定された所定バイト単位の記憶エリアのうち利用対象として特定された一部のビットを第1読み出し対象エリアに読み出すことにより他の一部のビットから分離して利用することができる。また、当該記憶エリアのうち利用対象として特定された他の一部のビットを第2読み出し対象エリアに読み出すことにより一部のビットから分離して利用することができる。
特徴D5.前記第1読み出し対象エリア及び前記第2読み出し対象エリアにおいて情報の読み出しが行われなかったビットの情報は2値情報のうちの一方である所定2値情報(「0」の情報)となることを特徴とする特徴D4に記載の遊技機。
特徴D5によれば、第1読み出し対象エリアに、エリア特定手段により特定された所定バイト単位の記憶エリアのうち利用対象として特定された一部のビット、及び所定2値情報が設定されている状態とすることができる。また、第2読み出し対象エリアに、当該所定バイト単位の記憶エリアのうち利用対象として特定された他の一部のビット、及び所定2値情報が設定されている状態とすることができる。
特徴D6.前記指定アドレス情報に対応する前記所定バイト単位の記憶エリアを特定すること、前記エリア特定手段により特定された記憶エリアのうち前記一部のビットを利用対象として特定すること、当該一部のビットを前記第1読み出し対象エリアに読み出すこと、前記エリア特定手段により特定された記憶エリアのうち前記他の一部のビットを利用対象として特定すること、及び当該他の一部のビットを前記第2読み出し対象エリアに読み出すことの命令が特定の命令(LDH更新命令)に集約されていることを特徴とする特徴D4又はD5に記載の遊技機。
特徴D6によれば、指定アドレス情報に対応する所定バイト単位の記憶エリアを特定する処理、エリア特定手段により特定された記憶エリアのうち一部のビットを利用対象として特定する処理、当該一部のビットを第1読み出し対象エリアに読み出す処理、エリア特定手段により特定された記憶エリアのうち他の一部のビットを利用対象として特定する処理、及び当該他の一部のビットを第2読み出し対象エリアに読み出す処理を、一命令で実行することができる。このため、これらの処理を実行するために複数の命令がプログラムに設定されている構成と比較して、これらの処理を実行するためのプログラムの構成を簡素化することができるとともに、プログラムのデータ容量を低減することができる。
特徴D7.前記特定の命令には、前記指定アドレス情報を指定する情報(例えば「LDH WA,(HL+)」というLDH更新命令における「(HL+)」の情報)、前記第1読み出し対象エリアを指定する情報(「LDH WA,(HL+)」というLDH更新命令における「WA」の情報)、及び前記第2読み出し対象エリアを指定する情報(「LDH WA,(HL+)」というLDH更新命令における「WA」の情報)が設定されており、前記一部のビット及び前記他の一部のビットのビット数(Wレジスタ104aに読み出される情報のビット数及びAレジスタ104bに読み出される情報のビット数)を指定する情報は設定されていないことを特徴とする特徴D6に記載の遊技機。
特徴D7によれば、指定アドレス情報、第1読み出し対象エリア及び第2読み出し対象エリアを指定して特定の命令を実行することができる。特定の命令に一部のビット及び他の一部のビットのビット配分を指定する情報が設定されている構成と比較して、特定の命令のデータ容量を低減することができる。
特徴D8.前記エリア特定手段により特定された前記記憶エリアのうち利用対象として特定される前記一部のビットは、当該記憶エリアにおいて配列順序が連続しているビットであり、
前記エリア特定手段により特定された前記記憶エリアのうち利用対象として特定される前記他の一部のビットは、当該記憶エリアにおいて配列順序が連続しているビットであることを特徴とする特徴D2乃至D7のいずれか1に記載の遊技機。
特徴D8によれば、情報記憶手段に設けられた所定バイト単位の記憶エリアから、配列順序を維持しながら一部のビット及び他の一部のビットを利用対象として特定することができる。
特徴D9.前記ビット特定手段により利用対象として特定される前記一部のビットは、1つの前記所定バイト単位の記憶エリアにおける一部のビットであることを特徴とする特徴D1乃至D8のいずれか1に記載の遊技機。
特徴D9によれば、1つの所定バイト単位の記憶エリアから当該記憶エリアの一部のビットを利用対象として特定することができる。
特徴D10.前記エリア特定手段により特定された前記記憶エリアにおける複数のビットのうち一部のビットを含むビット群を、利用対象基準となるビットを特定可能とする基準ビット情報(LDB命令、LDB更新命令及び特殊LDB命令における取得開始ビット目)及び利用対象基準となるビット数を特定可能とする基準数情報(LDB命令、LDB更新命令及び特殊LDB命令における取得ビット数指定データ)に基づき利用対象として特定するビット特定手段(LDB実行回路157におけるLDB命令を実行する機能、LDB更新実行回路161におけるLDB更新命令を実行する機能、特殊LDB実行回路201における特殊LDB命令を実行する機能)を備えていることを特徴とする特徴D1に記載の遊技機。
特徴D10によれば、情報記憶手段に設けられた各記憶エリアのうち所定バイト単位の記憶エリア毎にアドレスが設定されている構成において、エリア特定手段により特定された記憶エリアにおける複数のビットのうち一部のビットを含むビット群を利用対象として特定することができる。また、情報記憶手段にビット単位で情報を集約することができる。これにより、情報記憶手段に記憶する情報のデータ容量を低減することができる。
特徴D11.前記基準ビット情報は、前記エリア特定手段により特定された前記記憶エリアにおいて前記ビット特定手段により利用対象として特定される前記ビット群の開始ビットを指定する情報(取得開始ビット目)であることを特徴とする特徴D10に記載の遊技機。
特徴D11によれば、基準ビット情報によりエリア特定手段により特定された記憶エリアにおいて利用対象として特定されるビット群の開始ビットを指定することができる。
特徴D12.前記ビット群は、前記情報記憶手段において配列順序が連続しているビットであることを特徴とする特徴D10又はD11に記載の遊技機。
特徴D12によれば、情報記憶手段において配列順序が連続しているビットを利用対象のビット群として特定することができる。
特徴D13.前記ビット特定手段が利用対象として特定した前記ビット群を前記所定バイト単位の読み出し対象エリア(LDB命令における転送先のWレジスタ104a又はHLレジスタ107、LDB更新命令における転送先のWAレジスタ104、Wレジスタ104a又はBレジスタ105a、特殊LDB命令における転送先のHLレジスタ107)に読み出す情報読み出し手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)を備え、
前記読み出し対象エリアにおいて情報の読み出しが行われなかったビットの情報が2値情報のうち一方である同一の情報(「0」の情報)となっていることを特徴とする特徴D10乃至D12のいずれか1に記載の遊技機。
特徴D13によれば、情報記憶手段においてビット特定手段が利用対象として特定したビット群を読み出し対象エリアに読み出して利用することができる。読み出し対象エリアにおいて当該ビット群が読み出されないエリアの各ビットが2値情報のうち一方である同一の情報となっている態様で当該ビット群を利用することができる。
特徴D14.前記情報読み出し手段が前記読み出し対象エリアに読み出す前記ビット群のビット数は、1つの前記所定バイト単位の前記記憶エリアに設定されている情報のビット数よりも多いことを特徴とする特徴D13に記載の遊技機。
特徴D14によれば、情報記憶手段から所定バイトを超えるデータ容量の情報を読み出し対象エリアに読み出すことができる。また、情報記憶手段に所定バイトを超えるデータ容量の情報を集約することができる。
特徴D15.前記指定アドレス情報に対応する前記所定バイト単位の記憶エリアを特定すること、前記エリア特定手段により特定された前記記憶エリアにおける複数のビットのうち一部のビットを含むビット群を前記基準ビット情報及び前記基準数情報に基づき利用対象として特定すること、前記ビット特定手段が利用対象として特定した前記ビット群を前記読み出し対象エリアに読み出すこと、並びに前記読み出し対象エリアにおいて情報の読み出しが行われなかったビットの情報が前記2値情報のうち一方である同一の情報となっているようにすることの命令が特定命令(LDB命令、LDB更新命令、特殊LDB命令)として集約されていることを特徴とする特徴D13又はD14に記載の遊技機。
特徴D15によれば、指定アドレス情報に対応する所定バイト単位の記憶エリアを特定する処理、エリア特定手段により特定された記憶エリアにおける複数のビットのうち一部のビットを含むビット群を基準ビット情報及び基準数情報に基づき利用対象として特定する処理、ビット特定手段が利用対象として特定したビット群を読み出し対象エリアに読み出す処理、並びに読み出し対象エリアにおいて情報の読み出しが行われなかったビットの情報が2値情報のうち一方である同一の情報となっているようにする処理を、一命令で実行することができる。このため、これらの処理を実行するために複数の命令がプログラムに設定されている構成と比較して、これらの処理を実行するためのプログラムの構成を簡素化することができるとともに、プログラムのデータ容量を低減することができる。
特徴D16.前記特定命令には、前記指定アドレス情報及び前記基準ビット情報を算出するために利用される所定情報(取得データ指定データ)を指定する情報(取得データ指定データがHLレジスタ107に格納されていることを示す情報)が設定されており、前記指定アドレス情報及び前記基準ビット情報は設定されていないことを特徴とする特徴D15に記載の遊技機。
特徴D16によれば、特定命令に指定アドレス情報及び基準ビット情報を算出するために利用される所定情報が設定されており、指定アドレス情報及び基準ビット情報は設定されていない構成であるため、特定命令に指定アドレス情報及び基準ビット情報が設定されている構成と比較して、特定命令に設定されている情報のデータ容量を低減することができる。
特徴D17.前記特定命令には、前記基準数情報が設定されていることを特徴とする特徴D16に記載の遊技機。
特徴D17によれば、特定命令に基準数情報を設定することにより利用対象基準となるビット数を指定することができる。
特徴D18.前記特定命令には、前記所定情報を利用して前記指定アドレス情報及び前記基準ビット情報を算出する方法を指定する情報は設定されていないことを特徴とする特徴D16又はD17に記載の遊技機。
特徴D18によれば、特定命令に指定アドレス情報及び基準ビット情報を算出する方法を指定する情報が設定されている構成と比較して、特定命令に設定されている情報のデータ容量を低減することができる。
特徴D19.第1所定ビット数(第1の実施形態では「13」、第6の実施形態では「12」)の第1所定情報(第1の実施形態ではLDB命令及びLDB更新命令における取得データ指定データの上位13ビットのデータ、第6の実施形態では特殊LDB命令における取得データ指定データの上位12ビットのデータ)及び当該第1所定情報よりも下位側に配置されている第2所定ビット数(第1の実施形態では「3」、第6の実施形態では「4」)の第2所定情報(第1の実施形態ではLDB命令及びLDB更新命令における取得データ指定データの下位3ビットのデータ、第6の実施形態では特殊LDB命令における取得データ指定データの下位4ビットのデータ)を有する所定情報(取得データ指定データ)を読み出す手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)を備え、
前記エリア特定手段は、
前記所定情報に対して所定の演算処理を実行することにより、前記第2所定ビット数で設定可能な2進数の数値情報の最大値より「1」大きい2進数の値で除算した場合の商に対応する情報を導出する導出手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
前記導出手段により導出された情報を利用して前記指定アドレス情報を生成するアドレス生成手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
を備えていることを特徴とする特徴D10乃至D18のいずれか1に記載の遊技機。
特徴D19によれば、所定情報に対して所定の演算処理を実行することにより、第2所定ビット数で設定可能な2進数の数値情報の最大値より「1」大きい2進数の値で除算した場合の商に対応する情報を導出することができる。そして、導出手段により導出された当該情報を利用して指定アドレス情報を生成することができる。
特徴D20.前記第1所定情報と前記第2所定情報とはビットの配列順序で連続しており、
前記第2所定情報の最下位のビットが前記所定情報の最下位のビットであり、
前記導出手段により導出された情報は、前記第1所定情報のビット配列における最下位のビットが当該導出された情報の最下位のビットとなるように配列された情報であることを特徴とする特徴D19に記載の遊技機。
特徴D20によれば、所定情報に対して所定の演算処理を実行することにより、第1所定情報のビット配列における最下位のビットが当該導出された情報の最下位のビットとなるように、所定情報における第1所定情報を第2所定ビット数の分だけ下位側にシフトさせることができる。
特徴D21.前記導出手段により導出された情報(LDB命令及びLDB更新命令では取得データ指定データを「8」で除算した場合の商データ、特殊LDB命令では取得データ指定データを「16」で除算した場合の商データ)のうち前記第1所定情報のビット配列よりも上位側に存在する各ビットは2値情報のうち一方である同一の情報(「0」の情報)となることを特徴とする特徴D19又はD20に記載の遊技機。
特徴D21によれば、所定情報に対して所定の演算処理を実行することにより、第1所定情報のビット配列よりも上位側に存在する各ビットに2値情報のうち一方である同一の情報が設定されている情報を生成することができるとともに、当該情報を利用することができる。
特徴D22.前記ビット特定手段は、前記所定情報から前記第2所定情報を抽出して前記基準ビット情報を生成する情報抽出手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)を備えていることを特徴とする特徴D19乃至D21のいずれか1に記載の遊技機。
特徴D22によれば、第1所定情報及び第2所定情報が所定情報に集約されている構成において、当該所定情報から第2所定情報を抽出して基準ビット数情報を生成することができる。
特徴D23.前記情報抽出手段は、前記第2所定情報を含む情報(取得データ指定データの下位1バイト)とマスクデータ(LDB命令及びLDB更新命令では「00000111B」というデータ、特殊LDB命令では「00001111B」というデータ)との論理積の演算により前記所定情報から前記第2所定情報を抽出することを特徴とする特徴D22に記載の遊技機。
特徴D23によれば、マスクデータを利用することにより、所定情報に含まれている第1所定情報をマスクして、当該所定情報に含まれている第2所定情報を抽出することができる。
特徴D24.前記所定情報は、前記所定バイト単位の情報であることを特徴とする特徴D19乃至D23のいずれか1に記載の遊技機。
特徴D24によれば、第1所定情報及び第2所定情報を所定バイト単位の所定情報に集約することができる。このため、第1所定情報を利用可能とする情報とは別に第2所定情報を利用可能とする情報が存在している構成と比較して、これらの情報の合計のデータ容量を低減することができる。
なお、特徴D1〜D24の構成に対して、特徴A1〜A11、特徴B1〜B6、特徴C1〜C6、特徴D1〜D24、特徴E1〜E15、特徴F1〜F7、特徴G1〜G10、特徴H1〜H15のうちいずれか1又は複数の構成を適用してもよい。これにより、その組み合わせた構成による相乗的な効果を奏することが可能となる。
<特徴E群>
特徴E1.情報記憶手段(主側ROM64)に設けられた各記憶エリアのうち所定バイト単位(1バイト単位)の記憶エリア毎にアドレスが設定されている遊技機において、
指定アドレス情報(LDB命令、LDB更新命令及び特殊LDB命令においてHLレジスタ107に格納されている取得データ指定データから算出される取得開始アドレス)に対応する前記所定バイト単位の記憶エリアを特定するエリア特定手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
当該エリア特定手段により特定された前記記憶エリアにおける複数のビットのうち一部のビットを含むビット群を、利用対象基準となるビットを特定可能とする基準ビット情報(取得開始ビット目)及び利用対象基準となるビット数を特定可能とする基準数情報(取得ビット数指定データ)に基づき利用対象として特定するビット特定手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
を備えていることを特徴とする遊技機。
特徴E1によれば、エリア特定手段により特定された所定バイト単位の記憶エリアにおける複数のビットのうち一部のビットを含むビット群を利用対象として特定することができる。情報記憶手段に当該ビット群の情報を集約して設定することができるため、情報記憶手段に記憶する情報のデータ容量を低減することができる。
特徴E2.前記基準ビット情報は、前記エリア特定手段により特定された前記記憶エリアにおいて前記ビット特定手段により利用対象として特定される前記ビット群の開始ビットを指定する情報(取得開始ビット目)であることを特徴とする特徴E1に記載の遊技機。
特徴E2によれば、基準ビット情報によりエリア特定手段により特定された記憶エリアにおいて利用対象として特定されるビット群の開始ビットを指定することができる。
特徴E3.前記ビット群は、前記情報記憶手段において配列順序が連続しているビットであることを特徴とする特徴E1又はE2に記載の遊技機。
特徴E3によれば、情報記憶手段において配列順序が連続しているビットを利用対象のビット群として特定することができる。
特徴E4.前記ビット特定手段が利用対象として特定した前記ビット群を前記所定バイト単位の読み出し対象エリア(LDB命令における転送先のWレジスタ104a又はHLレジスタ107、LDB更新命令における転送先のWAレジスタ104、Wレジスタ104a又はBレジスタ105a、特殊LDB命令における転送先のHLレジスタ107)に読み出す情報読み出し手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)を備え、
前記読み出し対象エリアにおいて情報の読み出しが行われなかったビットの情報が2値情報のうち一方である同一の情報(「0」の情報)となっていることを特徴とする特徴E1乃至E3のいずれか1に記載の遊技機。
特徴E4によれば、情報記憶手段においてビット特定手段が利用対象として特定したビット群を読み出し対象エリアに読み出して利用することができる。読み出し対象エリアにおいて当該ビット群が読み出されないエリアの各ビットが2値情報のうち一方である同一の情報となっている態様で当該ビット群を利用することができる。
特徴E5.前記情報読み出し手段が前記読み出し対象エリアに読み出す前記ビット群のビット数は、1つの前記所定バイト単位の前記記憶エリアに設定されている情報のビット数よりも多いことを特徴とする特徴E4に記載の遊技機。
特徴E5によれば、情報記憶手段から所定バイトを超えるデータ容量の情報を読み出し対象エリアに読み出すことができる。また、情報記憶手段に所定バイトを超えるデータ容量の情報を集約することができる。
特徴E6.前記指定アドレス情報に対応する前記所定バイト単位の記憶エリアを特定すること、前記エリア特定手段により特定された前記記憶エリアにおける複数のビットのうち一部のビットを含むビット群を前記基準ビット情報及び前記基準数情報に基づき利用対象として特定すること、前記ビット特定手段が利用対象として特定した前記ビット群を前記読み出し対象エリアに読み出すこと、並びに前記読み出し対象エリアにおいて情報の読み出しが行われなかったビットの情報が前記2値情報のうち一方である同一の情報となっているようにすることの命令が特定命令(LDB命令、LDB更新命令、特殊LDB命令)として集約されていることを特徴とする特徴E4又はE5に記載の遊技機。
特徴E6によれば、指定アドレス情報に対応する所定バイト単位の記憶エリアを特定する処理、エリア特定手段により特定された記憶エリアにおける複数のビットのうち一部のビットを含むビット群を基準ビット情報及び基準数情報に基づき利用対象として特定する処理、ビット特定手段が利用対象として特定したビット群を読み出し対象エリアに読み出す処理、並びに読み出し対象エリアにおいて情報の読み出しが行われなかったビットの情報が2値情報のうち一方である同一の情報となっているようにする処理を、一命令で実行することができる。このため、これらの処理を実行するために複数の命令がプログラムに設定されている構成と比較して、これらの処理を実行するためのプログラムの構成を簡素化することができるとともに、プログラムのデータ容量を低減することができる。
特徴E7.前記特定命令には、前記指定アドレス情報及び前記基準ビット情報を算出するために利用される所定情報(取得データ指定データ)を指定する情報(取得データ指定データがHLレジスタ107に格納されていることを示す情報)が設定されており、前記指定アドレス情報及び前記基準ビット情報は設定されていないことを特徴とする特徴E6に記載の遊技機。
特徴E7によれば、特定命令に指定アドレス情報及び基準ビット情報を算出するために利用される所定情報が設定されており、指定アドレス情報及び基準ビット情報は設定されていない構成であるため、特定命令に指定アドレス情報及び基準ビット情報が設定されている構成と比較して、特定命令に設定されている情報のデータ容量を低減することができる。
特徴E8.前記特定命令には、前記基準数情報が設定されていることを特徴とする特徴E7に記載の遊技機。
特徴E8によれば、特定命令に基準数情報を設定することにより利用対象基準となるビット数を指定することができる。
特徴E9.前記特定命令には、前記所定情報を利用して前記指定アドレス情報及び前記基準ビット情報を算出する方法を指定する情報は設定されていないことを特徴とする特徴E7又はE8に記載の遊技機。
特徴E9によれば、特定命令に指定アドレス情報及び基準ビット情報を算出する方法を指定する情報が設定されている構成と比較して、特定命令に設定されている情報のデータ容量を低減することができる。
特徴E10.第1所定ビット数(第1の実施形態では「13」、第6の実施形態では「12」)の第1所定情報(第1の実施形態ではLDB命令及びLDB更新命令における取得データ指定データの上位13ビットのデータ、第6の実施形態では特殊LDB命令における取得データ指定データの上位12ビットのデータ)及び当該第1所定情報よりも下位側に配置されている第2所定ビット数(第1の実施形態では「3」、第6の実施形態では「4」)の第2所定情報(第1の実施形態ではLDB命令及びLDB更新命令における取得データ指定データの下位3ビットのデータ、第6の実施形態では特殊LDB命令における取得データ指定データの下位4ビットのデータ)を有する所定情報(取得データ指定データ)を読み出す手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)を備え、
前記エリア特定手段は、
前記所定情報に対して所定の演算処理を実行することにより、前記第2所定ビット数で設定可能な2進数の数値情報の最大値より「1」大きい2進数の値で除算した場合の商に対応する情報を導出する導出手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
前記導出手段により導出された情報を利用して前記指定アドレス情報を生成するアドレス生成手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
を備えていることを特徴とする特徴E1乃至E9のいずれか1に記載の遊技機。
特徴E10によれば、所定情報に対して所定の演算処理を実行することにより、第2所定ビット数で設定可能な2進数の数値情報の最大値より「1」大きい2進数の値で除算した場合の商に対応する情報を導出することができる。そして、導出手段により導出された当該情報を利用して指定アドレス情報を生成することができる。
特徴E11.前記第1所定情報と前記第2所定情報とはビットの配列順序で連続しており、
前記第2所定情報の最下位のビットが前記所定情報の最下位のビットであり、
前記導出手段により導出された情報は、前記第1所定情報のビット配列における最下位のビットが当該導出された情報の最下位のビットとなるように配列された情報であることを特徴とする特徴E10に記載の遊技機。
特徴E11によれば、所定情報に対して所定の演算処理を実行することにより、第1所定情報のビット配列における最下位のビットが当該導出された情報の最下位のビットとなるように、所定情報における第1所定情報を第2所定ビット数の分だけ下位側にシフトさせることができる。
特徴E12.前記導出手段により導出された情報のうち前記第1所定情報のビット配列よりも上位側に存在する各ビットは2値情報のうち一方である同一の情報(「0」の情報)となることを特徴とする特徴E10又はE11に記載の遊技機。
特徴E12によれば、所定情報に対して所定の演算処理を実行することにより、第1所定情報のビット配列よりも上位側に存在する各ビットに2値情報のうち一方である同一の情報が設定されている情報を生成することができるとともに、当該情報を利用することができる。
特徴E13.前記ビット特定手段は、前記所定情報から前記第2所定情報を抽出して前記基準ビット情報を生成する情報抽出手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)を備えていることを特徴とする特徴E10乃至E12のいずれか1に記載の遊技機。
特徴E13によれば、第1所定情報及び第2所定情報が所定情報に集約されている構成において、当該所定情報から第2所定情報を抽出して基準ビット数情報を生成することができる。
特徴E14.前記情報抽出手段は、前記第2所定情報を含む情報(取得データ指定データの下位1バイト)とマスクデータ(LDB命令及びLDB更新命令では「00000111B」というデータ、特殊LDB命令では「00001111B」というデータ)との論理積の演算により前記所定情報から前記第2所定情報を抽出することを特徴とする特徴E13に記載の遊技機。
特徴E14によれば、マスクデータを利用することにより、所定情報に含まれている第1所定情報をマスクして、当該所定情報に含まれている第2所定情報を抽出することができる。
特徴E15.前記所定情報は、前記所定バイト単位の情報であることを特徴とする特徴E10乃至E14のいずれか1に記載の遊技機。
特徴E15によれば、第1所定情報及び第2所定情報を所定バイト単位の所定情報に集約することができる。このため、第1所定情報を利用可能とする情報とは別に第2所定情報を利用可能とする情報が存在している構成と比較して、これらの情報の合計のデータ容量を低減することができる。
なお、特徴E1〜E15の構成に対して、特徴A1〜A11、特徴B1〜B6、特徴C1〜C6、特徴D1〜D24、特徴E1〜E15、特徴F1〜F7、特徴G1〜G10、特徴H1〜H15のうちいずれか1又は複数の構成を適用してもよい。これにより、その組み合わせた構成による相乗的な効果を奏することが可能となる。
<特徴F群>
特徴F1.情報記憶手段(主側ROM64)に設けられた各記憶エリアのうち所定バイト単位(1バイト単位)の記憶エリア毎にアドレスが設定されている遊技機において、
指定アドレス情報(LDB命令、LDB更新命令及び特殊LDB命令におけるHLレジスタ107に格納されている取得データ指定データから算出される取得開始アドレス)に対応する前記所定バイト単位の記憶エリアを特定するエリア特定手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
当該エリア特定手段により特定された前記記憶エリアのうち一部のビットに記憶された情報を、前記所定バイト単位の読み出し対象エリア(LDB命令における転送先のWレジスタ104a又はHLレジスタ107、LDB更新命令における転送先のWAレジスタ104、Wレジスタ104a又はBレジスタ105a、特殊LDB命令における転送先のHLレジスタ107)に読み出し、当該読み出し対象エリアにおいて情報の読み出しが行われなかったビットの情報が2値情報のうちの一方である所定2値情報(「0」の情報)となるようにする情報読み出し手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
を備えていることを特徴とする遊技機。
特徴F1によれば、所定バイト単位の記憶エリアのうち一部のビットに記憶された情報を読み出し対象エリアに読み出して利用することができる。読み出し対象エリアに当該一部のビットに記憶された情報が読み出されている状態であるとともに当該読み出し対象エリアにおいて情報の読み出しが行われなかったビットの情報が所定2値情報となっている状態として、当該読み出し対象エリアの情報を利用することができる。所定バイト単位の記憶エリアのうち一部のビットに記憶された情報を読み出し対象エリアに読み出して利用することができるため、情報記憶手段に情報を集約して設定することができる。これにより、情報記憶手段に記憶する情報のデータ容量を低減することができる。
特徴F2.前記指定アドレス情報に対応する前記所定バイト単位の記憶エリアを特定すること、及び前記エリア特定手段により特定された前記記憶エリアのうち一部のビットに記憶された情報を前記読み出し対象エリアに読み出し、当該読み出し対象エリアにおいて情報の読み出しが行われなかったビットの情報が前記所定2値情報となるようにすることの命令が所定転送命令(LDB命令、LDB更新命令、特殊LDB命令)に集約されていることを特徴とする特徴F1に記載の遊技機。
特徴F2によれば、指定アドレス情報に対応する所定バイト単位の記憶エリアを特定する処理、及びエリア特定手段により特定された記憶エリアのうち一部のビットに記憶された情報を読み出し対象エリアに読み出し、当該読み出し対象エリアにおいて情報の読み出しが行われなかったビットの情報が所定2値情報となるようにする処理を、一命令で実行することができる。このため、これらの処理を実行するために複数の命令が設定されている構成と比較して、プログラムの構成を簡素化することができるとともに、プログラムのデータ容量を低減することができる。
特徴F3.前記情報読み出し手段は、前記エリア特定手段により特定された前記記憶エリアのうち一部のビットに記憶された情報を、前記読み出し対象エリアにおいて最下位のビットを含む下位側領域(WAレジスタ104の下位ビット、Wレジスタ104aの下位ビット、Bレジスタ105aの下位ビット、HLレジスタ107の下位ビット)に設定し、当該読み出し対象エリアにおいて当該下位側領域よりも上位側に配置されている上位側領域(WAレジスタ104の上位ビット、Wレジスタ104aの上位ビット、Bレジスタ105aの上位ビット、HLレジスタ107の上位ビット)における各ビットに前記所定2値情報を設定することを特徴とする特徴F1又はF2に記載の遊技機。
特徴F3によれば、エリア特定手段により特定された記憶エリアのうち一部のビットに記憶された情報を読み出し対象エリアの下位側領域に設定することができる。読み出し対象エリアにおける上位側領域の各ビットには所定2値情報が設定される。このため、予め読み出し対象エリアをクリアしておく処理を不要としながら、読み出し対象エリアにエリア特定手段により特定された記憶エリアのうち一部のビットに記憶された情報及び所定2値情報のみが設定されている状態とすることができる。
特徴F4.前記情報読み出し手段が前記読み出し対象エリアに読み出す情報は、前記エリア特定手段により特定された前記記憶エリアにおいて配列順序が連続している一部のビットの情報であることを特徴とする特徴F1乃至F3のいずれか1に記載の遊技機。
特徴F4によれば、エリア特定手段により特定された記憶エリアのうち一部のビットに記憶された情報を、当該一部のビットの配列順序が維持されている態様で読み出し対象エリアに読み出して利用することができる。
特徴F5.前記情報読み出し手段により前記読み出し対象エリアに読み出される情報のビット数は、前記所定バイトよりも多いビット数であることを特徴とする特徴F1乃至F4のいずれか1に記載の遊技機。
特徴F5によれば、情報記憶手段において、1つのアドレスに対応する1つの所定バイトの記憶エリアに設定されている情報のビット数よりもビット数が多い情報を読み出し対象エリアに読み出すことができる。
特徴F6.前記読み出し対象エリアは、制御手段に設けられた所定のレジスタ(LDB命令における転送先のWレジスタ104a又はHLレジスタ107、LDB更新命令における転送先のWAレジスタ104、Wレジスタ104a又はBレジスタ105a、特殊LDB命令における転送先のHLレジスタ107)であることを特徴とする特徴F1乃至F5のいずれか1に記載の遊技機。
特徴F6によれば、制御手段は、エリア特定手段により特定された記憶エリアのうち一部のビットに記憶された情報が読み出される所定のレジスタに容易にアクセスすることができる。
特徴F7.前記情報読み出し手段は、前記エリア特定手段により特定された前記記憶エリアから前記読み出し対象エリアに読み出す情報のビット数を特定するビット数特定手段(LDB実行回路157におけるLDB命令を実行する機能、LDB更新実行回路161におけるLDB更新命令を実行する機能、特殊LDB実行回路201における特殊LDB命令を実行する機能)を備えていることを特徴とする特徴F1乃至F6のいずれか1に記載の遊技機。
特徴F7によれば、情報記憶手段からビット数を指定して読み出し対象エリアに情報を読み出すことができる。このため、情報記憶手段にビット単位で情報を集約して設定することができる。これにより、情報記憶手段に記憶される情報のデータ容量を低減することができる。
なお、特徴F1〜F7の構成に対して、特徴A1〜A11、特徴B1〜B6、特徴C1〜C6、特徴D1〜D24、特徴E1〜E15、特徴F1〜F7、特徴G1〜G10、特徴H1〜H15のうちいずれか1又は複数の構成を適用してもよい。これにより、その組み合わせた構成による相乗的な効果を奏することが可能となる。
<特徴G群>
特徴G1.第1所定ビット数(第1の実施形態では「13」、第6の実施形態では「12」)の第1所定情報(第1の実施形態ではLDB命令及びLDB更新命令における取得データ指定データの上位13ビットのデータ、第6の実施形態では特殊LDB命令における取得データ指定データの上位12ビットのデータ)及び当該第1所定情報よりも下位側に配置されている第2所定ビット数(第1の実施形態では「3」、第6の実施形態では「4」)の第2所定情報(第1の実施形態ではLDB命令及びLDB更新命令における取得データ指定データの下位3ビットのデータ、第6の実施形態では特殊LDB命令における取得データ指定データの下位4ビットのデータ)を有する所定情報(取得データ指定データ)を読み出す手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
その読み出した所定情報に対して所定の演算処理を実行することにより、前記第2所定ビット数で設定可能な2進数の数値情報の最大値より「1」大きい2進数の値で除算した場合の商に対応する情報を導出する導出手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
を備えていることを特徴とする遊技機。
特徴G1によれば、所定情報に対して所定の演算処理を実行することにより、第2所定ビット数で設定可能な2進数の数値情報の最大値より「1」大きい2進数の値で除算した場合の商に対応する情報を導出することができる。
特徴G2.前記第1所定情報と前記第2所定情報とはビットの配列順序で連続しており、
前記第2所定情報の最下位のビットが前記所定情報の最下位のビットであり、
前記導出手段により導出された情報は、前記第1所定情報のビット配列における最下位のビットが当該導出された情報の最下位のビットとなるように配列された情報であることを特徴とする特徴G1に記載の遊技機。
特徴G2によれば、所定情報に対して所定の演算処理を実行することにより、第1所定情報のビット配列における最下位のビットが当該導出された情報の最下位のビットとなるように、所定情報における第1所定情報を第2所定ビット数の分だけ下位側にシフトさせることができる。
特徴G3.前記導出手段により導出された情報のうち前記第1所定情報のビット配列よりも上位側に存在する各ビットは2値情報のうち一方である同一の情報(「0」の情報)となることを特徴とする特徴G1又はG2に記載の遊技機。
特徴G3によれば、所定情報に対して所定の演算処理を実行することにより、第1所定情報のビット配列よりも上位側に存在する各ビットに2値情報のうち一方である同一の情報が設定されている情報を生成することができるとともに、当該情報を利用することができる。
特徴G4.前記所定情報から前記第2所定情報を抽出する情報抽出手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)を備えていることを特徴とする特徴G1乃至G3のいずれか1に記載の遊技機。
特徴G4によれば、第1所定情報及び第2所定情報が所定情報に集約されている構成において、当該所定情報から第2所定情報を抽出して当該第2所定情報を単独で利用することができる。
特徴G5.前記情報抽出手段は、前記第2所定情報を含む情報(取得データ指定データの下位1バイト)とマスクデータ(LDB命令及びLDB更新命令では「00000111B」というデータ、特殊LDB命令では「00001111B」というデータ)との論理積の演算により前記所定情報から前記第2所定情報を抽出することを特徴とする特徴G4に記載の遊技機。
特徴G5によれば、マスクデータを利用することにより、所定情報に含まれている第1所定情報をマスクして、当該所定情報に含まれている第2所定情報を抽出することができる。
特徴G6.前記所定情報に対して前記所定の演算処理を実行することにより、前記第2所定ビット数で設定可能な2進数の数値情報の最大値より「1」大きい2進数の値で除算した場合の商に対応する情報を導出すること、及び前記所定情報から前記第2所定情報を抽出することの命令が所定命令(LDB命令、LDB更新命令、特殊LDB命令)に集約されていることを特徴とする特徴G4又はG5に記載の遊技機。
特徴G6によれば、所定情報に対して所定の演算処理を実行することにより、第2所定ビット数で設定可能な2進数の数値情報の最大値より「1」大きい2進数の値で除算した場合の商に対応する情報を導出する処理、及び所定情報から第2所定情報を抽出する処理を、一命令で実行することができる。このため、これら2つの処理を実行するためにプログラムに複数の命令が設定されている構成と比較して、これら2つの処理を実行するためのプログラムの構成を簡素化することができるとともに、プログラムのデータ容量を低減することができる。
特徴G7.前記所定情報は、所定バイト単位の情報であることを特徴とする特徴G1乃至G6のいずれか1に記載の遊技機。
特徴G7によれば、第1所定情報及び第2所定情報を所定バイト単位の所定情報に集約することができる。このため、第1所定情報を利用可能とする情報とは別に第2所定情報を利用可能とする情報が存在している構成と比較して、これらの情報の合計のデータ容量を低減することができる。
特徴G8.前記所定情報のデータ容量は2バイトであることを特徴とする特徴G1乃至G7のいずれか1に記載の遊技機。
特徴G8によれば、第1所定情報及び第2所定情報が集約されている所定情報のデータ容量を2バイトに抑えることができる。
特徴G9.所定バイト単位(1バイト単位)の記憶エリア毎にアドレスが設定されている情報記憶手段(主側ROM64)と、
前記導出手段により導出された情報を利用して前記所定バイト単位の記憶エリアを特定するエリア特定手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
当該エリア特定手段により特定された前記記憶エリアにおける複数のビットのうち一部のビットを含むビット群を利用対象として特定するビット特定手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)と、
を備えていることを特徴とする特徴G1乃至G8のいずれか1に記載の遊技機。
特徴G9によれば、所定情報を用いて導出手段により導出された情報を利用して所定バイト単位の記憶エリアを特定することができる。エリア特定手段により特定された記憶エリアにおける複数のビットのうち一部のビットを含むビット群を利用対象として特定することができる。情報記憶手段にビット単位で情報を集約することができるため、情報記憶手段に記憶する情報のデータ容量を低減することができる。
特徴G10.前記所定情報から前記第2所定情報を抽出する情報抽出手段(LDB実行回路157によるLDB命令を実行する機能、LDB更新実行回路161によるLDB更新命令を実行する機能、特殊LDB実行回路201による特殊LDB命令を実行する機能)を備え、
前記ビット特定手段は、前記情報抽出手段により抽出された前記第2所定情報を利用して、前記エリア特定手段により特定された前記記憶エリアにおける複数のビットのうち一部のビットを含むビット群を利用対象として特定することを特徴とする特徴G9に記載の遊技機。
特徴G10によれば、上記特徴G9の構成を備え、所定情報を利用して所定バイト単位の記憶エリアを特定することができる構成において、当該所定情報から抽出された第2所定情報を利用して、エリア特定手段により特定された記憶エリアにおける複数のビットのうち一部のビットを含むビット群を利用対象として特定することができる。所定バイト単位の記憶エリアを特定するための情報及び利用対象のビット群を特定するための情報を所定情報に集約することができる。これにより、所定バイト単位の記憶エリアを特定するための情報及び利用対象のビット群を特定するための情報の合計のデータ容量を低減することができる。
なお、特徴G1〜G10の構成に対して、特徴A1〜A11、特徴B1〜B6、特徴C1〜C6、特徴D1〜D24、特徴E1〜E15、特徴F1〜F7、特徴G1〜G10、特徴H1〜H15のうちいずれか1又は複数の構成を適用してもよい。これにより、その組み合わせた構成による相乗的な効果を奏することが可能となる。
上記特徴C群、上記特徴D群、上記特徴E群、上記特徴F群及び上記特徴G群に係る発明によれば、以下の課題を解決することが可能である。
遊技機としてパチンコ機やスロットマシンなどが知られている。例えば、パチンコ機は、遊技者に付与された遊技球を貯留する皿貯留部を遊技機前面部に備えており、当該皿貯留部に貯留された遊技球が遊技球発射装置に案内されて、遊技者の発射操作に応じて遊技領域に向けて発射される。そして、例えば遊技領域に設けられた入球部に遊技球が入球した場合に、例えば払出装置から皿貯留部に遊技球が払い出される。また、パチンコ機においては、皿貯留部として上側皿貯留部と下側皿貯留部とを備えた構成も知られており、この場合、上側皿貯留部に貯留された遊技球が遊技球発射装置に案内され、当該上側皿貯留部にて余剰となった遊技球が下側皿貯留部に排出される。
また、スロットマシンでは、メダルがベットされている状況でスタートレバーが操作されて新たなゲームが開始される場合に制御手段にて抽選処理が実行される。また、抽選処理が実行された場合には制御手段にて回転開始制御が実行されることによりリールの回転が開始され、当該リールの回転中にストップボタンが操作された場合には制御手段にて回転停止制御が実行されることによりリールの回転が停止される。そして、リールの回転停止後の停止結果が抽選処理の当選役に対応したものである場合には、当該当選役に対応した特典が遊技者に付与される。
ここで、上記例示等のような遊技機においては、各種処理が好適に実行される必要があり、この点について未だ改良の余地がある。
<特徴H群>
特徴H1.所定情報群(通信用のコマンド)を送信する送信手段(主側CPU63におけるステップS2001〜ステップS2008の処理を実行する機能、主側CPU63におけるステップS2101〜ステップS2113の処理を実行する機能、主側CPU63におけるステップS2201〜ステップS2215の処理を実行する機能、主側CPU63におけるステップS2301〜ステップS2317の処理を実行する機能)を備え、
前記所定情報群は、所定バイト単位(1バイト単位)の単位情報(ヘッダHD、データフレームFR1〜FR10、最上位フレームSF1,SF2、フッタFT)を複数含み、
前記所定情報群における先頭の前記所定バイト単位の単位情報は所定位置のビット(最上位ビット)の情報が特定ビット情報(「1」の情報)であり、
前記所定情報群における先頭以外の前記所定バイト単位の単位情報は前記所定位置のビットの情報が前記特定ビット情報以外の情報(「0」の情報)であることを特徴とする遊技機。
特徴H1によれば、所定情報群の各所定バイト単位の単位情報における所定位置のビットの状態に基づいて、先頭の所定バイト単位の単位情報と当該先頭以外の所定バイト単位の単位情報との識別を可能とすることができる。先頭の所定バイト単位の単位情報を把握可能とすることにより、複数の所定情報群を受信した場合に、所定情報群同士の区切り位置を把握可能とすることができる。
特徴H2.前記所定位置のビットは、1ビットであることを特徴とする特徴H1に記載の遊技機。
特徴H2によれば、先頭の所定バイト単位の単位情報と先頭以外の所定バイト単位の単位情報とを識別可能とするために各所定バイト単位の単位情報に設定されるビットのビット数を最小限の「1」とすることができる。これにより、各所定バイト単位の単位情報において、先頭の所定バイト単位の単位情報と先頭以外の所定バイト単位の単位情報とを識別可能とするための情報以外の情報が設定されるビット数を多く確保することができる。
特徴H3.前記所定位置のビットは、前記所定バイト単位の単位情報における最上位のビット(第7ビット)であることを特徴とする特徴H1又はH2に記載の遊技機。
特徴H3によれば、各所定バイト単位の単位情報における最上位のビットの状態に基づいて、先頭の所定バイト単位の単位情報と先頭以外の所定バイト単位の単位情報とを識別可能とすることができる。
特徴H4.前記所定情報群には、前記先頭以外の前記所定バイト単位の単位情報として、1つ以上の所定単位情報(データフレームFR1〜FR10)と、当該所定情報群の受信後に当該所定単位情報における前記所定位置のビットに設定される情報が集約された集約単位情報(最上位フレームSF1,SF2)と、が設定されていることを特徴とする特徴H1乃至H3のいずれか1に記載の遊技機。
特徴H4によれば、所定情報群において先頭以外の所定バイト単位の単位情報における所定位置のビットが特定ビット情報以外の情報である構成において、当該所定情報群に設定されている集約単位情報に基づいて当該所定情報群の受信後に所定単位情報における所定位置のビットに設定される情報を把握可能とすることができる。また、所定単位情報における所定位置のビットの情報を別の情報群として送信する構成と比較して、情報群の送受信の回数を低減することができる。
特徴H5.前記集約単位情報における前記所定位置のビットの情報が前記特定ビット情報以外の情報であることを特徴とする特徴H4に記載の遊技機。
特徴H5によれば、所定バイト単位の単位情報における所定位置のビットの情報に基づいて、先頭の所定バイト単位の単位情報と集約単位情報とを識別可能とすることができる。
特徴H6.前記集約単位情報には、前記集約単位情報であることを示す識別情報は設定されていないことを特徴とする特徴H5に記載の遊技機。
特徴H6によれば、集約単位情報に集約単位情報であることを示す識別情報が設定されている構成と比較して、集約単位情報において所定情報群の受信後に所定単位情報における所定位置のビットに設定される情報を設定可能なビットの数が減少してしまうことを防止することができる。
特徴H7.前記単位情報は、1バイト単位の情報であり、
前記所定情報群に設定されている7個の前記所定単位情報に対して1個の前記集約単位情報が設定されていることを特徴とする特徴H4乃至H6のいずれか1に記載の遊技機。
特徴H7によれば、7個の所定単位情報における所定位置のビットの情報を集約単位情報に設定することにより、当該7個の所定単位情報における所定位置のビットの情報を把握可能とすることができる。集約単位情報において所定単位情報における所定位置のビットの情報が設定されない1つのビットを利用して、先頭の1バイト単位の単位情報と集約単位情報とを識別可能とすることができる。
特徴H8.前記所定情報群に含まれている前記所定単位情報の数が「7」の倍数である場合には当該所定情報群に含まれている前記所定単位情報の数を「7」で除算した場合における商の数の前記集約単位情報が当該所定情報群に設定されており、前記所定情報群に含まれている前記所定単位情報の数が「7」の倍数ではない場合には当該所定情報群に含まれている前記所定単位情報の数を「7」で除算した場合における商の数よりも「1」大きい数の前記集約単位情報が当該所定情報群に設定されていることを特徴とする特徴H4乃至H7のいずれか1に記載の遊技機。
特徴H8によれば、所定情報群に含まれている全ての所定単位情報について、当該所定情報群の受信後に当該所定単位情報における所定位置のビットに設定される情報を集約単位情報に設定することができる。
特徴H9.前記所定情報群において、最後の前記所定単位情報を含む連続する6個以下の前記所定単位情報における前記所定位置のビットに設定される情報が集約された前記集約単位情報が当該最後の前記所定単位情報の1つ後の前記所定バイト単位の単位情報として設定されていることを特徴とする特徴H4乃至H8のいずれか1に記載の遊技機。
特徴H9によれば、最後の所定単位情報の1つ後に設定されている集約単位情報に基づいて、当該最後の所定単位情報を含む連続する6個以下の所定単位情報における所定位置のビットに設定される情報を把握可能とすることができる。集約単位情報を最後の所定単位情報の1つ後に設定することにより、当該集約単位情報の位置を把握し易くすることができる。
特徴H10.前記所定情報群において、連続する7個の前記所定単位情報の1つ後の前記所定バイト単位の単位情報に当該連続する7個の前記所定単位情報における前記所定位置のビットが集約された前記集約単位情報が設定されていることを特徴とする特徴H4乃至H9のいずれか1に記載の遊技機。
特徴H10によれば、集約単位情報に基づいて当該集約単位情報よりも前に設定されている連続する7個の所定単位情報における所定位置のビットに設定される情報を把握可能とすることができる。所定情報群に7個以上の所定単位情報が設定されている場合においても、当該所定情報群に含まれている全ての所定単位情報における所定位置のビットに設定される情報を集約単位情報に設定して把握可能とすることができる。
特徴H11.前記所定情報群の最後尾には最後尾情報(フッタFT)が設定されており、
前記集約単位情報は、前記最後尾情報の1つ前の前記所定バイト単位の単位情報として設定されていることを特徴とする特徴H4乃至H10のいずれか1に記載の遊技機。
特徴H11によれば、最後尾情報を基準として当該最後尾情報の1つ前に設定されている集約単位情報の位置を把握し易くすることができる。また、最後尾情報に基づいて所定情報群の最後尾を把握し易くすることができる。
特徴H12.所定情報(表示継続時間データ)が設定される所定情報記憶手段(表示継続時間カウンタ142)と、
前記所定情報記憶手段に設定されている前記所定情報を利用して所定処理(遊技回における表示継続時間を把握する処理)を実行する所定処理実行手段(主側CPU63におけるステップS904〜ステップS906の処理を実行する機能)と、
を備えており、
前記送信手段は、前記所定情報群に、前記所定単位情報として、前記所定情報記憶手段に格納されている前記所定情報を設定する場合に、当該所定単位情報における前記所定位置のビットを前記集約単位情報において当該所定単位情報に対応するビットに設定し、当該所定位置のビットの情報が2値情報のうち前記特定ビット情報ではない側の情報であるようにすることを特徴とする特徴H4乃至H11のいずれか1に記載の遊技機。
特徴H12によれば、所定情報記憶手段に格納されている所定情報が変更されることを防止しながら、所定情報群に含まれている所定単位情報における所定位置のビットの情報が2値情報のうち特定ビット情報ではない側の情報であるようにすることができる。このため、所定情報群の送信後も所定情報記憶手段に格納されている所定情報を利用可能とすることができる。
特徴H13.前記所定情報群には、前記先頭以外の前記所定バイト単位の単位情報として、1つ以上の所定単位情報(データフレームFR1〜FR10)と、当該所定情報群の受信後に当該所定単位情報における前記所定位置のビットに設定される情報が集約された集約単位情報(最上位フレームSF1,SF2)と、が設定されており、
受信した前記所定情報群を、前記所定単位情報における前記所定位置のビットにも前記特定ビット情報が設定され得る所定変換後情報群(変換後のコマンド)に変換する所定変換手段(音光側CPU93における第1コマンド変換処理を実行する機能、音光側CPU93における第2コマンド変換処理を実行する機能)を備えていることを特徴とする特徴H1乃至H12のいずれか1に記載の遊技機。
特徴H13によれば、上記特徴H1の構成を備え、所定情報群の各所定バイト単位の単位情報における所定位置のビットの状態に基づいて先頭の所定バイト単位の単位情報と先頭以外の所定バイト単位の単位情報とを識別可能な構成としながら、利用時には当該所定情報群を、所定単位情報における所定位置のビットにも特定ビット情報が設定され得る所定変換後情報群に変換することができる。
特徴H14.前記所定情報群には、当該所定情報群の受信後に前記所定単位情報における前記所定位置のビットに設定される情報が集約された集約単位情報(最上位フレームSF1,SF2)が設定されており、
前記所定変換手段は、前記集約単位情報のビットに設定されている情報を当該ビットに対応する前記所定単位情報における前記所定位置のビット(第7ビット)に設定することにより前記所定情報群を前記所定変換後情報群に変換することを特徴とする特徴H13に記載の遊技機。
特徴H14によれば、受信した所定情報群を、集約単位情報のビットに設定されている情報が当該ビットに対応する所定単位情報における所定位置のビットに設定された所定変換後情報群に変換することができる。
特徴H15.前記所定変換手段は、前記所定情報群に含まれている前記集約単位情報のビットに対応する前記所定単位情報を、当該集約単位情報における当該ビットの位置及び当該所定情報群のデータ容量に基づいて把握することを特徴とする特徴H13又はH14に記載の遊技機。
特徴H15によれば、所定情報群に含まれている集約単位情報におけるビットの位置及び当該所定情報群のデータ容量に基づいて当該ビットに対応する所定単位情報を把握する構成とすることにより、当該ビットに対応する所定単位情報を把握可能とするための専用の情報を所定情報群に設定することを不要として、所定情報群のデータ容量を低減することができる。
なお、特徴H1〜H15の構成に対して、特徴A1〜A11、特徴B1〜B6、特徴C1〜C6、特徴D1〜D24、特徴E1〜E15、特徴F1〜F7、特徴G1〜G10、特徴H1〜H15のうちいずれか1又は複数の構成を適用してもよい。これにより、その組み合わせた構成による相乗的な効果を奏することが可能となる。
上記特徴H群に係る発明によれば、以下の課題を解決することが可能である。
遊技機としてパチンコ機やスロットマシンなどが知られている。例えば、パチンコ機は、遊技者に付与された遊技球を貯留する皿貯留部を遊技機前面部に備えており、当該皿貯留部に貯留された遊技球が遊技球発射装置に案内されて、遊技者の発射操作に応じて遊技領域に向けて発射される。そして、例えば遊技領域に設けられた入球部に遊技球が入球した場合に、例えば払出装置から皿貯留部に遊技球が払い出される。また、パチンコ機においては、皿貯留部として上側皿貯留部と下側皿貯留部とを備えた構成も知られており、この場合、上側皿貯留部に貯留された遊技球が遊技球発射装置に案内され、当該上側皿貯留部にて余剰となった遊技球が下側皿貯留部に排出される。
また、スロットマシンでは、メダルがベットされている状況でスタートレバーが操作されて新たなゲームが開始される場合に制御手段にて抽選処理が実行される。また、抽選処理が実行された場合には制御手段にて回転開始制御が実行されることによりリールの回転が開始され、当該リールの回転中にストップボタンが操作された場合には制御手段にて回転停止制御が実行されることによりリールの回転が停止される。そして、リールの回転停止後の停止結果が抽選処理の当選役に対応したものである場合には、当該当選役に対応した特典が遊技者に付与される。
ここで、上記例示等のような遊技機においては、情報群の送信が好適に行われる必要があり、この点について未だ改良の余地がある。
以下に、以上の各特徴を適用し得る又は各特徴に適用される遊技機の基本構成を示す。
パチンコ遊技機:遊技者が操作する操作手段と、その操作手段の操作に基づいて遊技球を発射する遊技球発射手段と、その発射された遊技球を所定の遊技領域に導く球通路と、遊技領域内に配置された各遊技部品とを備え、それら各遊技部品のうち所定の通過部を遊技球が通過した場合に遊技者に特典を付与する遊技機。
スロットマシン等の回胴式遊技機:複数の絵柄を可変表示させる絵柄表示装置を備え、始動操作手段の操作に起因して前記複数の絵柄の可変表示が開始され、停止操作手段の操作に起因して又は所定時間経過することにより前記複数の絵柄の可変表示が停止され、その停止後の絵柄に応じて遊技者に特典を付与する遊技機。
10…パチンコ機、63…主側CPU、64…主側ROM、64q…特図特電アドレステーブル、64r…変動開始用テーブル、64w…ハード乱数最大値テーブル、64y…第1初期化テーブル、64z…第2初期化テーブル、64α…乱数最大値テーブル、93…音光側CPU、104…Wレジスタ、104a…Wレジスタ、104b…Aレジスタ、105a…Bレジスタ、106b…Eレジスタ、107…HLレジスタ、109…IYレジスタ、111…TPレジスタ、142…表示継続カウンタ、149…LDT実行回路、151…LD更新実行回路、152…LDH更新実行回路、156…第1LDY実行回路、157…LDB実行回路、161…LDB更新実行回路、164…第2LDY実行回路、191a…大当たり種別最大値カウンタ、192a…リーチ乱数最大値カウンタ、193a…普電乱数最大値カウンタ、201…特殊LDB実行回路、FR1〜FR10…データフレーム、FT…フッタ、HD…ヘッダ、SA0〜SA6…開始アドレス、SB0〜SB23…開始アドレス、SF1…第1最上位フレーム、SF2…第2最上位フレーム。

Claims (10)

  1. 利用すべき記憶エリアの所定アドレスを特定する特定手段と、
    当該特定手段により特定された前記所定アドレスに対応する記憶エリアを利用して所定処理を実行する所定処理実行手段と、
    を備えた遊技機において、
    前記所定アドレスに含まれる複数ビットのうち一部のビットの情報である第1所定アドレス情報を記憶することが可能な所定記憶手段を備え、
    前記特定手段は、前記所定アドレスに含まれる前記複数ビットのうち前記一部のビットとは異なるビットの情報である第2所定アドレス情報をプログラムから特定し、その特定した第2所定アドレス情報及び前記所定記憶手段に記憶された前記第1所定アドレス情報から前記所定アドレスを特定することを特徴とする遊技機。
  2. 前記所定記憶手段は、制御手段に設けられた所定のレジスタであることを特徴とする請求項1に記載の遊技機。
  3. 前記特定手段が特定する前記所定アドレスの範囲が、前記所定アドレスに含まれる複数ビットのうち一部のビットの情報である前記第1所定アドレス情報が共通する第1アドレス範囲から、当該一部のビットの情報である前記第1所定アドレス情報が前記第1アドレス範囲とは異なるアドレス情報で共通する第2アドレス範囲に変更される場合に、前記所定記憶手段の情報を前記第1所定アドレス情報から前記異なるアドレス情報に変更する変更手段を備えていることを特徴とする請求項1又は2に記載の遊技機。
  4. 第1特定処理を実行する第1特定処理実行手段と、
    第2特定処理を実行する第2特定処理実行手段と、
    を備え、
    前記所定処理実行手段は、前記第1特定処理が実行されている状況においては、前記第1アドレス範囲の中から前記特定手段により特定された前記所定アドレスに対応する記憶エリアを利用して前記所定処理を実行し、前記第2特定処理が実行されている状況においては、前記第2アドレス範囲の中から前記特定手段により特定された前記所定アドレスに対応する記憶エリアを利用して前記所定処理を実行し、
    前記変更手段は、前記第1特定処理が実行されている状況において前記第2特定処理が開始される場合に、前記所定記憶手段の情報を前記第1所定アドレス情報から前記異なるアドレス情報に変更することを特徴とする請求項3に記載の遊技機。
  5. 前記所定処理実行手段は、前記第1特定処理が実行されている状況において、前記所定記憶手段に格納されている前記第1所定アドレス情報を利用して前記第1アドレス範囲に含まれている前記所定アドレスを特定し、前記所定記憶手段に格納されている情報を利用せずに前記第1アドレス範囲及び前記第2アドレス範囲と重複しない第3アドレス範囲のアドレスを特定することを特徴とする請求項4に記載の遊技機。
  6. 前記第1特定処理を実行するためのプログラムに前記第1アドレス範囲の前記所定アドレスを特定するための前記第2所定アドレス情報が出現する回数は、当該プログラムに前記第3アドレス範囲のアドレスを特定するための情報が出現する回数よりも多いことを特徴とする請求項5に記載の遊技機。
  7. 動作電力の供給開始時に前記第1所定アドレス情報を前記所定記憶手段に設定する情報設定手段を備えていることを特徴とする請求項1乃至6のいずれか1に記載の遊技機。
  8. 記憶エリア毎にアドレスが設定されている情報記憶手段を備え、
    前記特定手段は、前記所定アドレスとして、プログラムから特定した前記第2所定アドレス情報及び前記所定記憶手段に記憶された前記第1所定アドレス情報から前記情報記憶手段の記憶エリアのアドレスを特定することを特徴とする請求項1乃至7のいずれか1に記載の遊技機。
  9. 記憶エリア毎にアドレスが設定されている情報記憶手段と、
    前記情報記憶手段に記憶されている第1情報群を利用して第1処理を実行する第1処理実行手段と、
    前記情報記憶手段に記憶されている第2情報群を利用して第2処理を実行する第2処理実行手段と、
    を備え、
    前記特定手段は、前記第1処理の開始時に、前記第2所定アドレス情報をプログラムから特定し、その特定した第2所定アドレス情報及び前記所定記憶手段に記憶された前記第1所定アドレス情報から前記所定アドレスとして、前記情報記憶手段において前記第1情報群が設定されている特定アドレス範囲における最初のアドレスを特定する手段を備えており、
    前記特定アドレス範囲における最後のアドレスは、前記情報記憶手段において前記第2情報群が設定されているアドレス範囲における最初のアドレスと同じ共通アドレスであることを特徴とする請求項1乃至8のいずれか1に記載の遊技機。
  10. 前記情報記憶手段において前記共通アドレスに対応する記憶エリアには、所定共通情報が設定されており、
    前記第1処理実行手段は、前記所定共通情報を利用して前記第1処理を終了し、
    前記第2処理実行手段は、前記第2処理の開始時に前記所定共通情報を情報設定領域に設定することを特徴とする請求項9に記載の遊技機。
JP2020099023A 2020-06-08 2020-06-08 遊技機 Pending JP2021192654A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020099023A JP2021192654A (ja) 2020-06-08 2020-06-08 遊技機
JP2023115565A JP2023129485A (ja) 2020-06-08 2023-07-14 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020099023A JP2021192654A (ja) 2020-06-08 2020-06-08 遊技機

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023115565A Division JP2023129485A (ja) 2020-06-08 2023-07-14 遊技機

Publications (1)

Publication Number Publication Date
JP2021192654A true JP2021192654A (ja) 2021-12-23

Family

ID=79168914

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020099023A Pending JP2021192654A (ja) 2020-06-08 2020-06-08 遊技機
JP2023115565A Pending JP2023129485A (ja) 2020-06-08 2023-07-14 遊技機

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023115565A Pending JP2023129485A (ja) 2020-06-08 2023-07-14 遊技機

Country Status (1)

Country Link
JP (2) JP2021192654A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023015642A (ja) * 2021-07-20 2023-02-01 サミー株式会社 遊技機
JP2023015643A (ja) * 2021-07-20 2023-02-01 サミー株式会社 遊技機
JP2023015641A (ja) * 2021-07-20 2023-02-01 サミー株式会社 遊技機
JP2023111140A (ja) * 2022-01-31 2023-08-10 株式会社平和 遊技機

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015202108A (ja) * 2014-03-31 2015-11-16 株式会社大都技研 遊技台
JP2019088728A (ja) * 2017-11-17 2019-06-13 サミー株式会社 遊技機

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015202108A (ja) * 2014-03-31 2015-11-16 株式会社大都技研 遊技台
JP2019088728A (ja) * 2017-11-17 2019-06-13 サミー株式会社 遊技機

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023015642A (ja) * 2021-07-20 2023-02-01 サミー株式会社 遊技機
JP2023015643A (ja) * 2021-07-20 2023-02-01 サミー株式会社 遊技機
JP2023015641A (ja) * 2021-07-20 2023-02-01 サミー株式会社 遊技機
JP7343798B2 (ja) 2021-07-20 2023-09-13 サミー株式会社 遊技機
JP7343800B2 (ja) 2021-07-20 2023-09-13 サミー株式会社 遊技機
JP7343799B2 (ja) 2021-07-20 2023-09-13 サミー株式会社 遊技機
JP2023111140A (ja) * 2022-01-31 2023-08-10 株式会社平和 遊技機
JP7479411B2 (ja) 2022-01-31 2024-05-08 株式会社平和 遊技機

Also Published As

Publication number Publication date
JP2023129485A (ja) 2023-09-14

Similar Documents

Publication Publication Date Title
JP2021192654A (ja) 遊技機
JP2023129490A (ja) 遊技機
JP2023083578A (ja) 遊技機
JP2021192669A (ja) 遊技機
JP6578767B2 (ja) 遊技機
JP7063304B2 (ja) 遊技機
JP7063306B2 (ja) 遊技機
JP2021192662A (ja) 遊技機
JP2021192663A (ja) 遊技機
JP2021192656A (ja) 遊技機
JP2021192655A (ja) 遊技機
JP2021192664A (ja) 遊技機
JP2016073543A (ja) 遊技機
JP2021192657A (ja) 遊技機
JP2021192660A (ja) 遊技機
JP2021192666A (ja) 遊技機
JP2021192668A (ja) 遊技機
JP2021192667A (ja) 遊技機
JP2021192658A (ja) 遊技機
JP2021192665A (ja) 遊技機
JP2016073545A (ja) 遊技機
JP6578769B2 (ja) 遊技機
JP7063305B2 (ja) 遊技機
JP2016073544A (ja) 遊技機
JP6578768B2 (ja) 遊技機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221018

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230418