[スロットマシンの構成例]
図1に示すように、本実施の形態のスロットマシン1は、前面が開口する筐体1aと、この筐体1aの側端に回動自在に枢支された前面扉1bと、から構成されている。
図2に示すように、本実施の形態のスロットマシン1の筐体1aの内部には、外周に複数種の図柄が配列されたリール2L、2C、2R(以下、左リール、中リール、右リール)が水平方向に並設されており、図1に示すように、これらリール2L、2C、2Rに配列された図柄のうち連続する3つの図柄が前面扉1bに設けられた透視窓3から見えるように配置されている。
図3に示すように、リール2L、2C、2Rの外周部には、それぞれ「黒7」、「網7(図中網掛け7)」、「白7」、「BAR」、「リプレイ」、「プラム」、「スイカ」、「チェリー」、「ベル」、「オレンジ」といった互いに識別可能な複数種類の図柄が所定の順序で、それぞれ21個ずつ描かれている。リール2L、2C、2Rの外周部に描かれた図柄は、前面扉1bのリールパネル1c略中央に設けられた透視窓3において各々上中下三段に表示される。
各リール2L、2C、2Rは、各々対応して設けられリールモータ32L、32C、32R(図4参照)によって回転させることで、各リール2L、2C、2Rの図柄が透視窓3に連続的に変化しつつ表示されるとともに、各リール2L、2C、2Rの回転を停止させることで、透視窓3に3つの連続する図柄が表示結果として導出表示されるようになっている。
リール2L、2C、2Rの内側には、リール2L、2C、2Rそれぞれに対して、基準位置を検出するリールセンサ33L、33C、33Rと、リール2L、2C、2Rを背面から照射するリールLED55と、が設けられている。また、リールLED55は、リール2L、2C、2Rの連続する3つの図柄に対応する12のLEDからなり、各図柄をそれぞれ独立して照射可能とされている。
前面扉1bにおける各リール2L,2C,2Rに対応する位置には、リール2L,2C,2Rを前面側から透視可能とする横長長方形状の透視窓3が設けられており、該透視窓3を介して遊技者側から各リール2L,2C,2Rが視認できるようになっている。
前面扉1bには、メダルを投入可能なメダル投入部4、メダルが払い出されるメダル払出口9、クレジット(遊技者所有の遊技用価値として記憶されているメダル数)を用いて、その範囲内において遊技状態に応じて定められた規定数の賭数のうち最大の賭数(本実施の形態ではいずれの遊技状態においても3)を設定する際に操作されるMAXBETスイッチ6、クレジットとして記憶されているメダルおよび賭数の設定に用いたメダルを精算する(クレジットおよび賭数の設定に用いた分のメダルを返却させる)際に操作される精算スイッチ10、ゲームを開始する際に操作されるスタートスイッチ7、リール2L、2C、2Rの回転を各々停止する際に操作されるストップスイッチ8L、8C、8R、演出に用いるための演出用スイッチ56が遊技者により操作可能にそれぞれ設けられている。
なお、本実施の形態では、回転を開始した3つのリール2L、2C、2Rのうち、最初に停止するリールを第1停止リールと称し、また、その停止を第1停止、その停止操作を第1停止操作(または第1停止)と称する。同様に、2番目に停止するリールを第2停止リールと称し、また、その停止を第2停止、その停止操作を第2停止操作(または第2停止)と称する。また、3番目に停止するリールを第3停止リールと称し、また、その停止を第3停止あるいは最終停止、その停止操作を第3停止操作(または第3停止)と称する。
また、前面扉1bには、クレジットとして記憶されているメダル枚数が表示されるクレジット表示器11、入賞の発生により払い出されたメダル枚数やエラー発生時にその内容を示すエラーコード等が表示される遊技補助表示器12、賭数が1設定されている旨を点灯により報知する1BETLED14、賭数が2設定されている旨を点灯により報知する2BETLED15、賭数が3設定されている旨を点灯により報知する3BETLED16、メダルの投入が可能な状態を点灯により報知する投入要求LED17、スタートスイッチ7の操作によるゲームのスタート操作が有効である旨を点灯により報知するスタート有効LED18、ウェイト(前回のゲーム開始から一定期間経過していないためにリールの回転開始を待機している状態)中である旨を点灯により報知するウェイト中LED19、後述するリプレイゲーム中である旨を点灯により報知するリプレイ中LED20が設けられた遊技用表示部13が設けられている。
MAXBETスイッチ6の内部には、MAXBETスイッチ6の操作による賭数の設定操作が有効である旨を点灯により報知するBETスイッチ有効LED21(図4参照)が設けられており、ストップスイッチ8L、8C、8Rの内部には、該当するストップスイッチ8L、8C、8Rによるリールの停止操作が有効である旨を点灯により報知する左、中、右停止有効LED22L、22C、22R(図4参照)がそれぞれ設けられている。
また、前面扉1bにおけるストップスイッチ8L、8C、8Rの下方には、スロットマシン1のタイトルや後述する配当表1などが印刷された下部パネル1dが設けられている。
前面扉1bの内側には、所定のキー操作により後述するエラー状態および後述する打止状態を解除するためのリセット操作を検出するリセットスイッチ23、後述する設定値の変更中や設定値の確認中にその時点の設定値が表示される設定値表示器24、後述のBB終了時に打止状態(リセット操作がなされるまでゲームの進行が規制される状態)に制御する打止機能の有効/無効を選択するための打止スイッチ36a、後述のBB終了時に自動精算処理(クレジットとして記憶されているメダルを遊技者の操作によらず精算(返却)する処理)に制御する自動精算機能の有効/無効を選択するための自動精算スイッチ36b、メダル投入部4から投入されたメダルの流路を、筐体1a内部に設けられた後述のホッパータンク34a(図2参照)側またはメダル払出口9側のいずれか一方に選択的に切り替えるための流路切替ソレノイド30、メダル投入部4から投入され、ホッパータンク34a側に流下したメダルを検出する投入メダルセンサ31を有するメダルセレクタ(図示略)、前面扉1bの開放状態を検出するドア開放検出スイッチ25(図4参照)が設けられている。
図2に示すように、筐体1a内部には、前述したリール2L、2C、2R、リールモータ32L、32C、32R、各リール2L、2C、2Rのリール基準位置をそれぞれ検出可能なリールセンサ33L、33C、33R(図4参照)からなるリールユニット2、外部出力信号を出力するための外部出力基板1000、メダル投入部4から投入されたメダルを貯留するホッパータンク34a、ホッパータンク34aに貯留されたメダルをメダル払出口9より払い出すためのホッパーモータ34b、ホッパーモータ34bの駆動により払い出されたメダルを検出する払出センサ34cからなるホッパーユニット34、電源ボックス100が設けられている。
ホッパーユニット34の側部には、ホッパータンク34aから溢れたメダルが貯留されるオーバーフロータンク35が設けられている。オーバーフロータンク35の内部には、貯留された所定量のメダルを検出可能な高さに設けられた左右に離間する一対の導電部材からなる満タンセンサ35aが設けられており、導電部材がオーバーフロータンク35内に貯留されたメダルを介して接触することにより導電したときに内部に貯留されたメダル貯留量が所定量以上となったこと、すなわちオーバーフロータンクが満タン状態となったことを検出できるようになっている。
電源ボックス100の前面には、設定変更状態または設定確認状態に切り替えるための設定キースイッチ37、通常時においてはエラー状態や打止状態を解除するためのリセットスイッチとして機能し、設定変更状態においては後述する内部抽選の当選確率(出玉率)の設定値を変更するための設定スイッチとして機能する設定/リセットスイッチ38、電源をオン/オフする際に操作される電源スイッチ39が設けられている。
本実施の形態のスロットマシン1においてゲームを行う場合には、まず、メダルをメダル投入部4から投入するか、あるいはクレジットを使用して賭数を設定する。クレジットを使用するにはMAXBETスイッチ6を操作すれば良い。遊技状態に応じて定められた規定数の賭数が設定されると、入賞ラインLN(図1参照)が有効となり、スタートスイッチ7の操作が有効な状態、すなわち、ゲームが開始可能な状態となる。本実施の形態では、規定数の賭数として遊技状態に関わらず3枚が定められて規定数の賭数が設定されると入賞ラインLNが有効となる。なお、遊技状態に対応する規定数のうち最大数を超えてメダルが投入された場合には、その分はクレジットに加算される。
入賞ラインとは、各リール2L、2C、2Rの透視窓3に表示された図柄の組み合わせが入賞図柄の組み合わせであるかを判定するために設定されるラインである。本実施の形態では、図1に示すように、リール2Lの中段、リール2Cの中段、リール2Rの中段、すなわち中段に水平方向に並んだ図柄に跨って設定された入賞ラインLNのみが入賞ラインとして定められている。なお、本実施の形態では、1本の入賞ラインのみを適用しているが、複数の入賞ラインを適用しても良い。
また、本実施の形態では、入賞ラインLNに入賞を構成する図柄の組み合わせが揃ったことを認識しやすくするために、入賞ラインLNとは別に、無効ラインLM1〜4を設定している。無効ラインLM1〜4は、これら無効ラインLM1〜4に揃った図柄の組み合わせによって入賞が判定されるものではなく、入賞ラインLNに特定の入賞を構成する図柄の組み合わせが揃った際に、無効ラインLM1〜4のいずれかに入賞ラインLNに揃った場合に入賞となる図柄の組み合わせ(例えば、ベル−ベル−ベル)が揃う構成とすることで、入賞ラインLNに特定の入賞を構成する図柄の組み合わせが揃ったことを認識しやすくするものである。本実施の形態では、図1に示すように、リール2Lの上段、リール2Cの上段、リール2Rの上段、すなわち上段に水平方向に並んだ図柄に跨って設定された無効ラインLM1、リール2Lの下段、リール2Cの下段、リール2Rの下段、すなわち下段に水平方向に並んだ図柄に跨って設定された無効ラインLM2、リール2Lの上段、リール2Cの中段、リール2Rの下段、すなわち右下がりに並んだ図柄に跨って設定された無効ラインLM3、リール2Lの下段、リール2Cの中段、リール2Rの上段、すなわち右上がりに並んだ図柄に跨って設定された無効ラインLM4の4種類が無効ラインLMとして定められている。
ゲームが開始可能な状態でスタートスイッチ7を操作すると、各リール2L、2C、2Rが回転し、各リール2L、2C、2Rの図柄が連続的に変動する。この状態でいずれかのストップスイッチ8L、8C、8Rを操作すると、対応するリール2L、2C、2Rの回転が停止し、透視窓3に表示結果が導出表示される。
そして全てのリール2L、2C、2Rが停止されることで1ゲームが終了し、入賞ラインLNに予め定められた図柄の組み合わせ(以下、役とも呼ぶ)が各リール2L、2C、2Rの表示結果として停止した場合には入賞が発生し、その入賞に応じて定められた枚数のメダルが遊技者に対して付与され、クレジットに加算される。また、クレジットが上限数(本実施の形態では50)に達した場合には、メダルが直接メダル払出口9(図1参照)から払い出されるようになっている。また、入賞ラインLNに、遊技状態の移行を伴う図柄の組み合わせが各リール2L、2C、2Rの表示結果として停止した場合には図柄の組み合わせに応じた遊技状態に移行するようになっている。
なお、本実施形態では、スタートスイッチ7の操作が有効な状態でスタートスイッチ7の操作が検出されたときにゲームが開始し、全てのリールが停止したときにゲームが終了する。また、ゲームを実行するための1単位の制御(ゲーム制御)は、前回のゲームの終了に伴う全ての制御が完了したときに開始し、当該ゲームの終了に伴う全ての制御が完了したときに終了する。
また、本実施の形態におけるスロットマシン1にあっては、ゲームが開始されて各リール2L、2C、2Rが回転して図柄の変動が開始した後、いずれかのストップスイッチ8L、8C、8Rが操作されたときに、当該ストップスイッチ8L、8C、8Rに対応するリールの回転が停止して図柄が停止表示される。ストップスイッチ8L、8C、8Rの操作から対応するリール2L、2C、2Rの回転を停止するまでの最大停止遅延時間は190ms(ミリ秒)である。
リール2L、2C、2Rは、1分間に80回転し、80×21(1リール当たりの図柄コマ数)=1680コマ分の図柄を変動させるので、190msの間では最大で4コマの図柄を引き込むことができることとなる。つまり、停止図柄として選択可能なのは、ストップスイッチ8L、8C、8Rが操作されたときに表示されている図柄と、そこから4コマ先までにある図柄、合計5コマ分の図柄である。
このため、例えば、ストップスイッチ8L、8C、8Rのいずれかが操作されたときに当該ストップスイッチに対応するリールの下段に表示されている図柄を基準とした場合、当該図柄から4コマ先までの図柄を下段に表示させることができるため、リール2L、2C、2R各々において、ストップスイッチ8L、8Rのうちいずれかが操作されたときに当該ストップスイッチに対応するリールの中段に表示されている図柄を含めて5コマ以内に配置されている図柄を入賞ラインLNに表示させることができる。
図4は、スロットマシン1の構成を示すブロック図である。スロットマシン1には、図4に示すように、遊技制御基板40、演出制御基板90、電源基板101が設けられており、遊技制御基板40によって遊技状態が制御され、演出制御基板90によって遊技状態に応じた演出が制御され、電源基板101によってスロットマシン1を構成する電気部品の駆動電源が生成され、各部に供給される。
電源基板101には、外部からAC100Vの電源が供給されるとともに、このAC100Vの電源からスロットマシン1を構成する電気部品の駆動に必要な直流電圧が生成され、遊技制御基板40および遊技制御基板40を介して接続された演出制御基板90に供給されるようになっている。また、後述するメイン制御部41からサブ制御部91へのコマンド伝送ラインと、遊技制御基板40から演出制御基板90に対して電源を供給する電源供給ラインと、が一系統のケーブルおよびコネクタを介して接続されており、これらケーブルと各基板とを接続するコネクタ同士が全て接続されることで演出制御基板90側の各部が動作可能となり、かつメイン制御部41からのコマンドを受信可能な状態となる。このため、メイン制御部41からコマンドを伝送するコマンド伝送ラインが演出制御基板90に接続されている状態でなければ、演出制御基板90側に電源が供給されず、演出制御基板90側のみが動作してしまうことがない。
また、電源基板101には、前述したホッパーモータ34b、払出センサ34c、満タンセンサ35a、設定キースイッチ37、設定/リセットスイッチ38、電源スイッチ39が接続されている。
遊技制御基板40には、前述したMAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R、精算スイッチ10、リセットスイッチ23、打止スイッチ36a、自動精算スイッチ36b、投入メダルセンサ31、ドア開放検出スイッチ25、リールセンサ33L、33C、33Rが接続されているとともに、電源基板101を介して前述した払出センサ34c、満タンセンサ35a、設定キースイッチ37、設定/リセットスイッチ38が接続されており、これら接続されたスイッチ類の検出信号が入力されるようになっている。
また、遊技制御基板40には、前述したクレジット表示器11、遊技補助表示器12、ペイアウト表示器13、1〜3BETLED14〜16、投入要求LED17、スタート有効LED18、ウェイト中LED19、リプレイ中LED20、BETスイッチ有効LED21、左、中、右停止有効LED22L、22C、22R、設定値表示器24、流路切替ソレノイド30、リールモータ32L、32C、32Rが接続されているとともに、電源基板101を介して前述したホッパーモータ34bが接続されており、これら電気部品は、遊技制御基板40に搭載された後述のメイン制御部41の制御に基づいて駆動されるようになっている。
遊技制御基板40には、メイン制御部41、乱数発生回路42、サンプリング回路43、スイッチ検出回路44、モータ駆動回路45、ソレノイド駆動回路46、LED駆動回路47、電断検出回路48、リセット回路49が搭載されている。
メイン制御部41は、1チップマイクロコンピュータにて構成され、メインCPU41a、ROM41b、RAM41c、I/Oポート41d、乱数発生回路42を備えている。メイン制御部41は、ROM41bに記憶されたプログラムを実行して、遊技の進行に関する処理を行うととともに、遊技制御基板40に搭載された制御回路の各部を直接的または間接的に制御する。
乱数発生回路42は、所定数のパルスを発生するたびにカウントアップして値を更新するカウンタによって構成され、サンプリング回路43は、乱数発生回路42がカウントしている数値を取得する。乱数発生回路42は、乱数の種類毎にカウントする数値の範囲が定められており、本実施の形態では、その範囲として0〜65535が定められている。メインCPU41aは、その処理に応じてサンプリング回路43に指示を送ることで、乱数発生回路42が示している数値を乱数値として取得する(以下、この機能をハードウェア乱数機能という)。後述する内部抽選用の乱数は、ハードウェア乱数機能により抽出した乱数をそのまま使用するのではなく、ソフトウェアにより加工して使用する。また、メインCPU41aは、前述のタイマ割込処理(メイン)により、RAM41cに格納されている数値を更新し、こうして更新された数値を乱数として取得する機能も有する(以下、この機能をソフトウェア乱数機能という)。
スイッチ検出回路44は、遊技制御基板40に直接または電源基板101を介して接続されたスイッチ類から入力された検出信号を取り込んでメイン制御部41に伝送する。モータ駆動回路45は、メイン制御部41から出力されたモータ駆動信号をリールモータ32L、32C、32Rに伝送する。ソレノイド駆動回路46は、メイン制御部41から出力されたソレノイド駆動信号を流路切替ソレノイド30に伝送する。LED駆動回路は、メイン制御部41から出力されたLED駆動信号を遊技制御基板40に接続された各種表示器やLEDに伝送する。電断検出回路48は、スロットマシン1に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をメイン制御部41に対して出力する。リセット回路49は、電源投入時または電源遮断時などの電源が不安定な状態においてメイン制御部41にシステムリセット信号を与える。
メイン制御部41のCPU41aは、ROMから読み出したプログラムを実行することにより、スロットマシン1におけるゲームの進行を制御するための処理などを実行する。
このように、メイン制御部41では、CPU41aがROM41bに格納されているプログラムにしたがって制御を実行するので、以下、メイン制御部41(又はCPU41a)が実行する(又は処理を行う)ということは、具体的には、CPU41aがプログラムにしたがって制御を実行することである。このことは、遊技制御基板40以外の他の基板に搭載されているマイクロコンピュータについても同様である。
メイン制御部41が備えるRAM41cは、ゲーム制御用のワークエリアを提供する。ここで、RAM41cの少なくとも一部は、バックアップ電源によってバックアップされているバックアップRAMであれば良い。すなわち、スロットマシンへの電力供給が停止しても、所定期間はRAM41cの少なくとも一部の内容が保存される。なお、本実施の形態では、RAM41cの全ての領域がバックアップRAMとされており、スロットマシンへの電力供給が停止しても、所定期間はRAM41cの全ての内容が保存される。
メイン制御部41が備えるROM41bには、ゲームの進行を制御するために用いられる各種の選択用データ、テーブルデータ、プログラムなどが格納される。例えば、ROM41bには、CPU41aが各種の判定や決定、設定を行うために用意された複数の判定テーブルや決定テーブル、設定テーブルなどを構成するデータが記憶されている。また、ROM41bには、CPU41aが遊技制御基板40から各種の制御コマンドとなる制御信号を送信するために用いられる複数のコマンドテーブルを構成するテーブルデータなどが記憶されている。
メイン制御部41が備えるRAM41cには、スロットマシン1におけるゲームの進行などを制御するために用いられる各種のデータを保持する領域として、遊技制御用データ保持エリアが設けられている。RAM41cとしては、例えばDRAMが使用されており、記憶しているデータ内容を維持するためのリフレッシュ動作が必要になる。CPU41aには、このリフレッシュ動作を行うためのリフレッシュレジスタが内蔵されている。例えば、リフレッシュレジスタは8ビットからなり、そのうち下位7ビットはCPU41aがROM41bから命令フェッチするごとに自動的にインクリメントされる。したがって、リフレッシュレジスタにおける格納値の更新は、CPU41aにおける1命令の実行時間ごとに行われることになる。
メイン制御部41は、サブ制御部91に各種のコマンドを送信する。メイン制御部41からサブ制御部91へ送信されるコマンドは一方向のみで送られ、サブ制御部91からメイン制御部41へ向けてコマンドが送られることはない。
メイン制御部41は、遊技制御基板40に接続された各種スイッチ類の検出状態が入力ポートから入力される。そしてメイン制御部41は、これら入力ポートから入力される各種スイッチ類の検出状態に応じて段階的に移行する基本処理を実行する。
また、メイン制御部41は、割込の発生により基本処理に割り込んで割込処理を実行できるようになっている。本実施の形態では、一定時間間隔(本実施の形態では、約0.56ms)毎に後述するタイマ割込処理(メイン)を実行する。
また、メイン制御部41は、割込処理の実行中に他の割込を禁止するように設定されているとともに、複数の割込が同時に発生した場合には、予め定められた順位によって優先して実行する割込が設定されている。なお、割込処理の実行中に他の割込要因が発生し、割込処理が終了してもその割込要因が継続している状態であれば、その時点で新たな割込が発生することとなる。
演出制御基板90には、演出用スイッチ56が接続されており、この演出用スイッチ56の検出信号が入力されるようになっている。
演出制御基板90には、スロットマシン1の前面扉1bに配置された液晶表示器51(図1参照)、演出効果LED52、スピーカ53、54、前述したリールLED55等の演出装置が接続されており、これら演出装置は、演出制御基板90に搭載された後述のサブ制御部91による制御に基づいて駆動されるようになっている。
なお、本実施の形態では、演出制御基板90に搭載されたサブ制御部91により、液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の演出装置の出力制御が行われる構成であるが、サブ制御部91とは別に演出装置の出力制御を直接的に行う出力制御部を演出制御基板90または他の基板に搭載し、サブ制御部91がメイン制御部41からのコマンドに基づいて演出装置の出力パターンを決定し、サブ制御部91が決定した出力パターンに基づいて出力制御部が演出装置の出力制御を行う構成としても良く、このような構成では、サブ制御部91および出力制御部の双方によって演出装置の出力制御が行われることとなる。
また、本実施の形態では、演出装置として液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55を例示しているが、演出装置は、これらに限られず、例えば、機械的に駆動する表示装置や機械的に駆動する役モノなどを演出装置として適用しても良い。
演出制御基板90には、メイン制御部41と同様にサブCPU91a、ROM91b、RAM91c、I/Oポート91dを備えたマイクロコンピュータにて構成され、演出の制御を行うサブ制御部91、演出制御基板90に接続された液晶表示器51の表示制御を行う表示制御回路92、演出効果LED52、リールLED55の駆動制御を行うLED駆動回路93、スピーカ53、54からの音声出力制御を行う音声出力回路94、電源投入時またはサブCPU91aからの初期化命令が一定時間入力されないときにサブCPU91aにリセット信号を与えるリセット回路95、演出制御基板90に接続された演出用スイッチ56から入力された検出信号を検出するスイッチ検出回路96、日付情報および時刻情報を含む時間情報を出力する時計装置97、スロットマシン1に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をサブCPU91aに対して出力する電断検出回路98、その他の回路等、が搭載されており、サブCPU91aは、遊技制御基板40から送信されるコマンドを受けて、演出を行うための各種の制御を行うとともに、演出制御基板90に搭載された制御回路の各部を直接的または間接的に制御する。
リセット回路95は、遊技制御基板40においてメイン制御部41にシステムリセット信号を与えるリセット回路49よりもリセット信号を解除する電圧が低く定められており、電源投入時においてサブ制御部91は、メイン制御部41よりも早い段階で起動するようになっている。一方で、電断検出回路98は、遊技制御基板40においてメイン制御部41に電圧低下信号を出力する電断検出回路48よりも電圧低下信号を出力する電圧が低く定められており、電断時においてサブ制御部91は、メイン制御部41よりも遅い段階で停電を検知し、後述する電断処理(サブ)を行うこととなる。
サブ制御部91は、メイン制御部41と同様に、割込機能を備えており、メイン制御部41からのコマンド受信時に割込を発生させて、メイン制御部41から送信されたコマンドを取得し、バッファに格納するコマンド受信割込処理を実行する。また、サブ制御部91は、システムクロックの入力数が一定数に到達する毎、すなわち一定間隔毎に割込を発生させて後述するタイマ割込処理(サブ)を実行する。
また、サブ制御部91は、メイン制御部41とは異なり、コマンドの受信に基づいて割込が発生した場合には、タイマ割込処理(サブ)の実行中であっても、当該処理に割り込んでコマンド受信割込処理を実行し、タイマ割込処理(サブ)の契機となる割込が同時に発生してもコマンド受信割込処理を最優先で実行するようになっている。
また、サブ制御部91にも、停電時においてバックアップ電源が供給されており、バックアップ電源が供給されている間は、RAM91cに記憶されているデータが保持されるようになっている。すなわち、スロットマシンへの電力供給が停止しても、所定期間はRAM91cの少なくとも一部の内容が保存される。なお、本実施の形態では、RAM91cの全ての領域がバックアップRAMとされており、スロットマシンへの電力供給が停止しても、所定期間はRAM91cの全ての内容が保存される。なお、本実施の形態では、RAM91cの全ての領域がバックアップRAMとされており、スロットマシンへの電力供給が停止しても、所定期間はRAM91cの全ての内容が保存される。
[設定値について]
本実施の形態のスロットマシン1は、設定値に応じてメダルの払出率が変わるものである。詳しくは、後述する内部抽選において設定値に応じた当選確率を用いることにより、メダルの払出率が変わるようになっている。設定値は1〜6の6段階からなり、6が最も払出率が高く、5、4、3、2、1の順に値が小さくなるほど払出率が低くなる。すなわち設定値として6が設定されている場合には、遊技者にとって最も有利度が高く、5、4、3、2、1の順に値が小さくなるほど有利度が段階的に低くなる。
設定値を変更するためには、設定キースイッチ37をオン状態としてからスロットマシン1の電源をオンする必要がある。設定キースイッチ37をオン状態として電源をオンすると、設定値表示器24にRAM41cから読み出された設定値が表示値として表示され、設定/リセットスイッチ38の操作による設定値の変更操作が可能な設定変更状態に移行する。設定変更状態において、設定/リセットスイッチ38が操作されると、設定値表示器24に表示された表示値が1ずつ更新されていく(設定6からさらに操作されたときは、設定1に戻る)。そして、スタートスイッチ7が操作されると表示値を設定値として確定する。そして、設定キースイッチ37がoffされると、確定した表示値(設定値)がメイン制御部41のRAM41cに格納され、遊技の進行が可能な状態に移行する。
また、設定値を確認するためには、ゲーム終了後、賭数が設定されていない状態で設定キースイッチ37をオン状態とすれば良い。このような状況で設定キースイッチ37をオン状態とすると、設定値表示器24にRAM41cから読み出された設定値が表示されることで設定値を確認可能な設定確認状態に移行する。設定確認状態においては、ゲームの進行が不能であり、設定キースイッチ37をoff状態とすることで、設定確認状態が終了し、ゲームの進行が可能な状態に復帰することとなる。
本実施の形態のスロットマシン1においては、メイン制御部41は、タイマ割込処理(メイン)を実行する毎に、電断検出回路48からの電圧低下信号が検出されているか否かを判定する停電判定処理を行い、停電判定処理において電圧低下信号が検出されていると判定した場合に、電断処理(メイン)を実行する。電断処理(メイン)では、RAM41cにいずれかのビットが1となる破壊診断用固定データ(本実施の形態では、5AH)、すなわち0以外の特定のデータを格納するとともに、RAM41cの全ての領域に格納されたデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、RAM41cに格納する処理を行うようになっている。なお、RAMパリティとはRAM41cの該当する領域(本実施の形態では、全ての領域)の各ビットに格納されている値の排他的論理和として算出される値である。このため、RAM41cの全ての領域に格納されたデータに基づくRAMパリティが0であれば、RAMパリティ調整用データは0となり、RAM41cの全ての領域に格納されたデータに基づくRAMパリティが1であれば、RAMパリティ調整用データは1となる。
そして、メイン制御部41は、システムリセットによるかユーザリセットによるかに関わらず、その起動時においてRAM41cの全ての領域に格納されたデータに基づいてRAMパリティを計算するとともに、破壊診断用固定データの値を確認し、RAMパリティが0であり、かつ破壊診断用固定データの値も正しいことを条件に、RAM41cに記憶されているデータに基づいてメイン制御部41の処理状態を電断前の状態に復帰させるが、RAMパリティが0でない場合(1の場合)や破壊診断用固定データの値が正しくない場合には、RAM異常と判定し、RAM異常フラグをRAM41cにセットしてRAM異常エラー状態に制御し、遊技の進行を不能化させるようになっている。
なお、本実施の形態では、RAM41cに格納されている全てのデータが停電時においてもバックアップ電源により保持されるとともに、メイン制御部41は、電源投入時においてRAM41cのデータが正常であると判定した場合に、RAM41cの格納データに基づいて電断前の制御状態に復帰する構成であるが、RAM41cに格納されているデータのうち停電時において制御状態の復帰に必要なデータのみをバックアップし、電源投入時においてバックアップされているデータに基づいて電断前の制御状態に復帰する構成としても良い。
また、電源投入時において電断前の制御状態に復帰させる際に、全ての制御状態を電断前の制御状態に復帰させる必要はなく、遊技者に対して不利益とならない最低限の制御状態を復帰させる構成であれば良く、例えば、入力ポートの状態などを全て電断前の状態に復帰させる必要はない。
[内部抽選について]
本実施の形態のスロットマシン1は、前述のように遊技状態(通常、内部中、BB(RB))に応じて設定可能な賭数の規定数が定められており、遊技状態に応じて定められた規定数の賭数が設定されたことを条件にゲームを開始させることが可能となる。なお、本実施の形態では、遊技状態に応じた規定数の賭数が設定された時点で、入賞ラインLNが有効化される。
本実施の形態のスロットマシン1は、全てのリール2L、2C、2Rが停止した際に、有効化された入賞ラインLN(以下では、有効化された入賞ラインLNを単に入賞ラインLNと呼ぶ)に役と呼ばれる図柄の組合せが揃うと入賞となる。役は、同一図柄の組合せであっても良いし、異なる図柄を含む組合せであっても良い。入賞となる役の種類は、遊技状態に応じて定められているが、大きく分けて、メダルの払い出しを伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役(以下、「リプレイ」と称することもある)と、遊技者にとって有利な遊技状態への移行を伴う特別役(以下、「ボーナス」と称することもある)と、がある。以下では、小役と再遊技役をまとめて一般役とも呼ぶ。遊技状態に応じて定められた各役の入賞が発生するためには、後述する内部抽選に当選して、当該役の当選フラグがRAMに設定されている必要がある。
なお、これら各役の当選フラグのうち、小役および再遊技役の当選フラグは、当該フラグが設定されたゲームにおいてのみ有効とされ、次のゲームでは無効となるが、特別役の当選フラグは、当該フラグにより許容された役の組合せが揃うまで有効とされ、許容された役の組合せが揃ったゲームにおいて無効となる。すなわち特別役の当選フラグが一度当選すると、例え、当該フラグにより許容された役の組合せを揃えることができなかった場合にも、その当選フラグは無効とされずに、次のゲームへ持ち越されることとなる。
図9のSc6における内部抽選処理で実行する内部抽選は、上記した各役への入賞を許容するか否かを、全てのリール2L、2C、2Rの表示結果が導出表示される以前に(実際には、スタートスイッチ7の検出時)決定するものである。内部抽選では、まず、スタートスイッチ7の検出時に内部抽選用の乱数値(0〜65535の整数)を取得する。詳しくは、RAM41cに割り当てられた乱数値格納ワークの値を同じくRAM41cに割り当てられた抽選用ワークに設定する。そして、遊技状態および特別役の持ち越しの有無に応じて定められた各役について、抽選用ワークに格納された数値データと、遊技状態を特定するための遊技状態フラグの値、後述するRTを特定するためのRTフラグの値、賭数および設定値に応じて定められた各役の判定値数に応じて行われる。なお、特別役の持ち越しとは、内部抽選において特別役に当選したゲームで特別役が入賞しなかった場合に、特別役の当選状態を次ゲーム以降に持ち越し、特別役が入賞するまで特別役の当選状態を維持することである。
内部抽選では、内部抽選の対象となる役、現在の遊技状態フラグ値、RTフラグ値および設定値に対応して定められた判定値数を、内部抽選用の乱数値(抽選用ワークに格納された数値データ)に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定される。このため、判定値数の大小に応じた確率(判定値数/65536)で役が当選することとなる。
そして、いずれかの役の当選が判定された場合には、当選が判定された役に対応する当選フラグをRAM41cに割り当てられた内部当選フラグ格納ワークに設定する。内部当選フラグ格納ワークは、2バイトの格納領域にて構成されており、そのうちの上位バイトが、特別役の当選フラグが設定される特別役格納ワークとして割り当てられ、下位バイトが、一般役の当選フラグが設定される一般役格納ワークとして割り当てられている。詳しくは、特別役が当選した場合には、当該特別役が当選した旨を示す特別役の当選フラグを特別役格納ワークに設定し、一般役格納ワークに設定されている当選フラグをクリアする。また、一般役が当選した場合には、当該一般役が当選した旨を示す一般役の当選フラグを一般役格納ワークに設定する。なお、いずれの役および役の組合せにも当選しなかった場合には、一般役格納ワークのみクリアする。
[リールの停止制御について]
次に、図9のSc7におけるリール制御処理において実行するリール2L、2C、2Rの停止制御について説明する。
メイン制御部41は、リールの回転が開始したとき、およびリールが停止し、かつ未だ回転中のリールが残っているときに、ROM41bに格納されているテーブルインデックスおよびテーブル作成用データを参照して、回転中のリール別に停止制御テーブルを作成する。そして、ストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作が有効に検出されたときに、該当するリールの停止制御テーブルを参照し、参照した停止制御テーブルの滑りコマ数に基づいて、操作されたストップスイッチ8L、8C、8Rに対応するリール2L、2C、2Rの回転を停止させる制御を行う。
テーブルインデックスには、内部抽選による当選フラグの設定状態(以下、内部当選状態と呼ぶ)別に、テーブルインデックスを参照する際の基準アドレスから、テーブル作成用データが格納された領域の先頭アドレスを示すインデックスデータが格納されているアドレスまでの差分が登録されている。これにより内部当選状態に応じた差分を取得し、基準アドレスに対してその差分を加算することで該当するインデックスデータを取得することが可能となる。なお、役の当選状況が異なる場合でも、同一の制御が適用される場合においては、インデックスデータとして同一のアドレスが格納されており、このような場合には、同一のテーブル作成用データを参照して、停止制御テーブルが作成されることとなる。
テーブル作成用データは、停止操作位置に応じた滑りコマ数を示す停止制御テーブルと、リールの停止状況に応じて参照すべき停止制御テーブルのアドレスと、からなる。
リールの停止状況に応じて参照される停止制御テーブルは、全てのリールが回転しているか、左リールのみ停止しているか、中リールのみ停止しているか、右リールのみ停止しているか、左、中リールが停止しているか、左、右リールが停止しているか、中、右リールが停止しているか、によって異なる場合があり、更に、いずれかのリールが停止している状況においては、停止済みのリールの停止位置によっても異なる場合があるので、それぞれの状況について、参照すべき停止制御テーブルのアドレスが回転中のリール別に登録されており、テーブル作成用データの先頭アドレスに基づいて、それぞれの状況に応じて参照すべき停止制御テーブルのアドレスが特定可能とされ、この特定されたアドレスから、それぞれの状況に応じて必要な停止制御テーブルを特定できるようになっている。なお、リールの停止状況や停止済みのリールの停止位置が異なる場合でも、同一の停止制御テーブルが適用される場合においては、停止制御テーブルのアドレスとして同一のアドレスが登録されているものもあり、このような場合には、同一の停止制御テーブルが参照されることとなる。
停止制御テーブルは、停止操作が行われたタイミング別の滑りコマ数を特定可能なデータである。本実施の形態では、リールモータ32L、32C、32Rに、168ステップ(0〜167)の周期で1周するステッピングモータを用いている。すなわちリールモータ32L、32C、32Rを168ステップ駆動させることでリール2L、2C、2Rが1周することとなる。そして、リール1周に対して16ステップ(1図柄が移動するステップ数)毎に分割した21の領域(コマ)が定められており、これらの領域には、リール基準位置から0〜20の領域番号が割り当てられている。一方、1リールに配列された図柄数も21であり、各リールの図柄に対して、リール基準位置から0〜20の図柄番号が割り当てられているので、0番図柄から20番図柄に対して、それぞれ0〜20の領域番号が順に割り当てられていることとなる。そして、停止制御テーブルには、領域番号別の滑りコマ数が所定のルールで圧縮して格納されており、停止制御テーブルを展開することによって領域番号別の滑りコマ数を取得できるようになっている。
前述のようにテーブルインデックスおよびテーブル作成用データを参照して作成される停止制御テーブルは、領域番号に対応して、各領域番号に対応する領域が停止基準位置(本実施の形態では、透視窓3の下段図柄の領域)に位置するタイミング(リール基準位置からのステップ数が各領域番号のステップ数の範囲に含まれるタイミング)でストップスイッチ8L、8C、8Rの操作が検出された場合の滑りコマ数がそれぞれ設定されたテーブルである。
次に、停止制御テーブルの作成手順について説明すると、まず、リール回転開始時においては、そのゲームの内部当選状態に応じたテーブル作成用データの先頭アドレスを取得する。具体的には、まずテーブルインデックスを参照し、内部当選状態に対応するインデックスデータを取得し、そして取得したインデックスデータに基づいてテーブル作成用データを特定し、特定したテーブル作成用データから全てのリールが回転中の状態に対応する各リールの停止制御テーブルのアドレスを取得し、取得したアドレスに格納されている各リールの停止制御テーブルを展開して全てのリールについて停止制御テーブルを作成する。
また、いずれか1つのリールが停止したとき、またはいずれか2つのリールが停止したときには、リール回転開始時に取得したインデックスデータ、すなわちそのゲームの内部当選状態に応じたテーブル作成用データの先頭アドレスに基づいてテーブル作成用データを特定し、特定したテーブル作成用データから停止済みのリールおよび当該リールの停止位置の領域番号に対応する未停止リールの停止制御テーブルのアドレスを取得し、取得したアドレスに格納されている各リールの停止制御テーブルを展開して未停止のリールについて停止制御テーブルを作成する。
次に、メイン制御部41がストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作を有効に検出したときに、該当するリールに表示結果を導出させる際の制御について説明すると、ストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作を有効に検出すると、停止操作を検出した時点のリール基準位置からのステップ数に基づいて停止操作位置の領域番号を特定し、停止操作が検出されたリールの停止制御テーブルを参照し、特定した停止操作位置の領域番号に対応する滑りコマ数を取得する。そして、取得した滑りコマ数分リールを回転させて停止させる制御を行う。具体的には、停止操作を検出した時点のリール基準位置からのステップ数から、取得した滑りコマ数引き込んで停止させるまでのステップ数を算出し、算出したステップ数分リールを回転させて停止させる制御を行う。これにより、停止操作が検出された停止操作位置の領域番号に対応する領域から滑りコマ数分先の停止位置となる領域番号に対応する領域が停止基準位置(本実施の形態では、透視窓3の下段図柄の領域)に停止することとなる。
本実施の形態のテーブルインデックスには、一の遊技状態における一の内部当選状態に対応するインデックスデータとして1つのアドレスのみが格納されており、更に、一のテーブル作成用データには、一のリールの停止状況(および停止済みのリールの停止位置)に対応する停止制御テーブルの格納領域のアドレスとして1つのアドレスのみが格納されている。すなわち一の遊技状態における一の内部当選状態に対応するテーブル作成用データ、およびリールの停止状況(および停止済みのリールの停止位置)に対応する停止制御テーブルが一意的に定められており、これらを参照して作成される停止制御テーブルも、一の遊技状態における一の内部当選状態、およびリールの停止状況(および停止済みのリールの停止位置)に対して一意となる。このため、遊技状態、内部当選状態、リールの停止状況(および停止済みのリールの停止位置)の全てが同一条件となった際に、同一の停止制御テーブル、すなわち同一の制御パターンに基づいてリールの停止制御が行われることとなる。
また、本実施の形態では、滑りコマ数として0〜4の値が定められており、停止操作を検出してから最大4コマ図柄を引き込んでリールを停止させることが可能である。すなわち停止操作を検出した停止操作位置を含め、最大5コマの範囲から図柄の停止位置を指定できるようになっている。また、1図柄分リールを移動させるのに1コマの移動が必要であるので、停止操作を検出してから最大4図柄を引き込んでリールを停止させることが可能であり、停止操作を検出した停止操作位置を含め、最大5図柄の範囲から図柄の停止位置を指定できることとなる。
本実施の形態では、いずれかの役に当選している場合には、当選役を入賞ラインLNに4コマの範囲で最大限引き込み、当選していない役が入賞ラインLNに揃わないように引き込む滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う一方、いずれの役にも当選していない場合には、いずれの役も揃わない滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う。これにより、停止操作が行われた際に、入賞ラインLNに最大4コマの引込範囲で当選している役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、最大4コマの引込範囲でハズシて停止させる制御が行われることとなる。
特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合など、特別役と小役が同時に当選している場合には、当選した小役を入賞ラインLNに4コマの範囲で最大限に引き込むように滑りコマ数が定められているとともに、当選した小役を入賞ラインLNに最大4コマの範囲で引き込めない停止操作位置については、当選した特別役を入賞ラインLNに4コマの範囲で最大限に引き込むように滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う。これにより、停止操作が行われた際に、入賞ラインLNに最大4コマの引込範囲で当選している小役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、入賞ラインLNに最大4コマの引込範囲で当選している小役を引き込めない場合には、入賞ラインLNに最大4コマの引込範囲で当選している特別役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、4コマの引込範囲でハズシて停止させる制御が行われることとなる。すなわちこのような場合には、特別役よりも小役を入賞ラインLNに揃える制御が優先され、小役を引き込めない場合にのみ、特別役を入賞させることが可能となる。なお、特別役と小役を同時に引き込める場合には、小役のみを引き込み、特別役と同時に小役が入賞ラインLNに揃わないようになっている。
なお、本実施の形態では、特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合や新たに特別役と小役が同時に当選した場合など、特別役と小役が同時に当選している場合には、当選した特別役よりも当選した小役が優先され、小役が引き込めない場合のみ、特別役を入賞ラインLNに揃える制御を行っているが、特別役と小役が同時に当選している場合に、小役よりも特別役を入賞ラインLNに揃える制御が優先され、特別役を引き込めない場合にのみ、小役を入賞ラインLNに揃える制御を行っても良い。
特別役が前ゲーム以前から持ち越されている状態で再遊技役が当選した場合など、特別役とリプレイが同時に当選している場合には、停止操作が行われた際に、入賞ラインLNに最大4コマの引込範囲で再遊技役の図柄を揃えて停止させる制御が行われる。なお、この場合、再遊技役を構成する図柄または同時当選する再遊技役を構成する図柄は、リール2L、2C、2Rのいずれについても5図柄以内、すなわち4コマ以内の間隔で配置されており、4コマの引込範囲で必ず任意の位置に停止させることができるので、特別役と再遊技役が同時に当選している場合には、遊技者によるストップスイッチ8L、8C、8Rの操作タイミングに関わらずに、必ず再遊技役が揃って入賞することとなる。すなわちこのような場合には、特別役よりも再遊技役を入賞ラインLNに揃える制御が優先され、必ず再遊技役が入賞することとなる。なお、特別役と再遊技役を同時に引き込める場合には、再遊技役のみを引き込み、再遊技役と同時に特別役が入賞ラインLNに揃わないようになっている。
本実施の形態においてメイン制御部41は、リール2L、2C、2Rの回転が開始した後、ストップスイッチ8L、8C、8Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。なお、リール回転エラーの発生により、一時的にリールの回転が停止した場合でも、その後リール回転が再開した後、ストップスイッチ8L、8C、8Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。
なお、本実施の形態では、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっているが、リールの回転が開始してから、予め定められた自動停止時間が経過した場合に、リールの停止操作がなされない場合でも、停止操作がなされたものとみなして自動的に各リールを停止させる自動停止制御を行うようにしても良い。この場合には、遊技者の操作を介さずにリールが停止することとなるため、例え、いずれかの役が当選している場合でもいずれの役も構成しない表示結果を導出させることが好ましい。
[各種コマンドについて]
次に、メイン制御部41がサブ制御部91に対して送信するコマンドについて説明する。メイン制御部41がサブ制御部91に対して送信するコマンドは、コマンドの種類を示す1バイトのモードデータとコマンドの内容を示す1バイトのEXTデータとからなる。サブ制御部91は、モードデータからコマンドの種類を判別し、EXTデータからコマンドの内容を判別する。
各コマンドは、メイン制御部41のRAM41cの特別ワークに設けられたコマンド送信用バッファに一時的に格納され、図10および図11に示すタイマ割込処理(メイン)で実行されるコマンド送信処理(Sk16)においてサブ制御部91に送信される。
サブ制御部91は、メイン制御部41からコマンドを受信したときに、受信したコマンドの種類に応じて、液晶表示器51から表示されている画像、スピーカ53,54から出力される音声、前面扉1bに設けられたランプなどの制御を行う。
設定変更開始コマンドは、設定変更が開始されたことを示すコマンドである。設定変更開始コマンドは設定変更の開始時に送信される。EXTデータには、設定変更が開始されたことを示す値が設定される。
設定変更終了コマンドは、設定変更が終了したことおよび設定変更により選択された設定値を示すコマンドである。設定変更終了コマンドは設定変更の終了時に送信される。EXTデータには、設定変更により選択される6種類の設定値のいずれかが設定される。
エラー開始コマンドは、エラーが発生したことを示すコマンドである。EXTデータには、8種類のエラーのいずれかが設定される。エラー開始コマンドはエラー処理の開始時に送信される。8種類のエラーには、オーバーフロータンク35内のメダルが満タンになったことを示すオーバーフロータンク溢れエラー、ホッパータンク34a内のメダルがなくなったことを示す払出メダルなしエラー、払い出すメダルがホッパータンク34aなどで詰まったことを示す払出メダル詰まりエラー、メダルセレクタでのメダルの検出異常が発生したことを示す投入信号異常エラー、リールの回転が正常に行われていないことを示すリール回転異常エラー、内部抽選の結果から入賞が予想される入賞予想フラグと実際に入賞した入賞結果とが一致しなかったことを示す不正入賞エラー、RAM異常を示すRWM内容エラーが設定されている。
エラー解除コマンドは、エラーが解除されたことを示すコマンドである。エラー解除コマンドはエラー処理の解除時に送信される。EXTデータには、エラーが解除されたことを示す値が設定される。
精算開始時コマンドは、メダルの精算が開始されたことを示すコマンドである。精算開始時コマンドは精算処理の開始時に送信される。EXTデータには、投入されたメダルが精算されたことを示すデータとクレジットされたメダルが精算されたことを示すデータとのいずれかが設定される。
精算終了コマンドは、メダルの精算が終了したことを示すコマンドである。精算終了コマンドは精算処理の終了時に送信される。EXTデータには、精算が終了したことを示す値が設定される。
メダル投入コマンドは、メダルが投入されたことを示すコマンドである。メダル投入コマンドは、クレジットの加算を伴わないメダルの投入時に送信される。EXTデータには、投入したメダルの枚数(1〜3枚のいずれか)を示す値が設定される。
クレジット増加コマンドは、クレジットされたメダルの枚数が増加したことを示すコマンドである。クレジット増加コマンドは、クレジットの加算を伴うメダルの投入時に送信される。EXTデータには、クレジットが増加したことを示す値が設定される。
遊技カウンタ1コマンドは、ゲームが行われるたびにカウントされる0〜127のカウント値を示すコマンドである。遊技カウンタ1コマンドは、スタートスイッチの操作の受付時に送信される。EXTデータには、0〜127のカウント値のうちのいずれかを示す値が設定される。
リール加速情報コマンドは、リールの回転が開始したことを示すコマンドである。リール加速情報コマンドは、スタートスイッチの操作の受付時に送信される。EXTデータには、9種類のリールの回転開始パターンのうちのいずれかを示す値が設定される。
内部当選コマンドは、BBに当選したか否かおよびRTの状態を示すコマンドである。内部当選コマンドは、スタートスイッチの操作の受付時に送信される。EXTデータには、BBに当選したか否かおよびRTの状態を示す値が設定される。
当選番号コマンドは、内部抽選の結果を示すコマンドである。当選番号コマンドは、スタートスイッチの操作の受付時に送信される。EXTデータには、内部抽選の結果を示す値が設定される。
BB投入枚数1コマンドは、BBのゲームで投入したメダルの枚数を示すコマンドである。BB投入枚数1コマンドは、リールの回転開始時に送信される。EXTデータには、投入されたメダルの枚数を示す値が設定される。
リール停止受付1コマンドは、第1停止が行われたことを示すコマンドである。リール停止受付1コマンドは、ストップスイッチの操作の受付時に送信される。EXTデータには、各ストップスイッチの受付状態(すなわち操作されたか否か)および各ストップスイッチに内蔵されたLEDの点灯状態(点灯中か否か)を示す値が設定される。
リール滑りコマ数1コマンドは、第1停止が行われたときにリールが停止するまでのコマ数を示すコマンドである。リール滑りコマ数1コマンドは、ストップスイッチの操作の受付時に送信される。EXTデータには、リールが停止するまでのコマ数(0〜4コマ)を示す値が設定される。
リール停止位置1コマンドは、第1停止が行われたときにリールが停止する位置を示すコマンドである。リール停止位置1コマンドは、ストップスイッチの操作の受付時に送信される。EXTデータには、リールの停止位置(コマ番号0〜20)を示す値が設定される。
リール停止受付2コマンドは、第2停止が行われたことを示すコマンドである。リール停止受付2コマンドは、ストップスイッチの操作の受付時に送信される。EXTデータには、各ストップスイッチの受付状態(すなわち操作されたか否か)および各ストップスイッチに内蔵されたLEDの点灯状態(点灯中か否か)を示す値が設定される。
リール滑りコマ数2コマンドは、第2停止が行われたときにリールが停止するまでのコマ数を示すコマンドである。リール滑りコマ数2コマンドは、ストップスイッチの操作の受付時に送信される。EXTデータには、リールが停止するまでのコマ数(0〜4コマ)を示す値が設定される。
リール停止位置2コマンドは、第2停止が行われたときにリールが停止する位置を示すコマンドである。リール停止位置2コマンドは、ストップスイッチの操作の受付時に送信される。EXTデータには、リールの停止位置(コマ番号0〜20)を示す値が設定される。
リール停止受付3コマンドは、第3停止が行われたことを示すコマンドである。リール停止受付3コマンドは、ストップスイッチの操作の受付時に送信される。EXTデータには、各ストップスイッチの受付状態(すなわち操作されたか否か)および各ストップスイッチに内蔵されたLEDの点灯状態(点灯中か否か)を示す値が設定される。
リール滑りコマ数3コマンドは、第3停止が行われたときにリールが停止するまでのコマ数を示すコマンドである。リール滑りコマ数3コマンドは、ストップスイッチの操作の受付時に送信される。EXTデータには、リールが停止するまでのコマ数(0〜4コマ)を示す値が設定される。
リール停止位置3コマンドは、第3停止が行われたときにリールが停止する位置を示すコマンドである。リール停止位置3コマンドは、ストップスイッチの操作の受付時に送信される。EXTデータには、リールの停止位置(コマ番号0〜20)を示す値が設定される。
遊技カウンタ2コマンドは、ゲームが行われるたびにカウントされる0〜127のカウント値を示すコマンドである。遊技カウンタ2コマンドは、全リールの停止後に送信される。EXTデータには、0〜127のカウント値のうちのいずれかを示す値が設定される。
RT情報2コマンドは、BBに当選したか否か、RBに当選したか否かおよびRTの状態を示すコマンドである。RT情報2コマンドは、スタートスイッチの操作の受付時に送信される。EXTデータには、BBに当選したか否かまたはRBに当選したか否かと、RTの状態とを示す値が設定される。
入賞番号1コマンドは、入賞の種類を示すコマンドである。入賞番号1コマンドは、メダルの払出処理開始時に送信される。EXTデータには、BBの作動状態(BB中か否か)と入賞の種類を示す値が設定される。
入賞番号2コマンドは、入賞の種類を示すコマンドである。入賞番号1コマンドは、メダルの払出処理開始時に送信される。EXTデータには、BBの作動状態(BB中か否か)と入賞の種類を示す値が設定される。
入賞枚数コマンドは、入賞により払い出されるメダルの枚数を示すコマンドである。入賞枚数コマンドは、メダルの払出処理開始時に送信される。EXTデータには、メダルの払出枚数を示す値が設定される。
BB払出枚数1コマンドは、BB時のメダルの払出枚数を示すコマンドである。BB払出枚数1コマンドは、BB中におけるメダルの払出処理開始時に送信される。EXTデータには、BB中におけるメダルの払出枚数を示す値(上位7ビット)が設定される。
BB払出枚数2コマンドは、BB時のメダルの払出枚数を示すコマンドである。BB払出枚数2コマンドは、BB中におけるメダルの払出処理開始時に送信される。EXTデータには、BB中におけるメダルの払出枚数を示す値(下位7ビット)が設定される。
BB終了待ちコマンドは、BBの終了待ちであることを示すコマンドである。BB終了待ちコマンドはBB終了時に送信される。EXTデータには、終了待ちのBBの種類(本実施形態では1種類)を示す値が設定される。
BB終了コマンドは、BBが終了することを示すコマンドである。BB終了コマンドはBB終了時、自動精算の開始時、打ち止め処理の開始時に送信される。EXTデータには、終了するBBの種類(本実施形態では1種類)を示す値が設定される。
RT情報1コマンドは、RTの状態を示すコマンドである。RT情報1コマンドは、ゲームの終了時に送信される。EXTデータには、RTの状態を示す値が設定される。
BB作動種別コマンドは、BB中か否かを示すコマンドである。BB作動種別コマンドは、ゲームの終了時に送信される。EXTデータには、BB中か否かを示す値が設定される。
遊技終了コマンドは、ゲームを終了したときの遊技状態(BB、RB、リプレイ入賞)を示すコマンドである。遊技終了コマンドは、ゲームの終了時に送信される。EXTデータには、ゲームを終了したときの遊技状態(BB、RB、リプレイ入賞)を示す値が設定される。
ドアコマンドは、前面扉1bが開放されているか否かを示すコマンドである。ドアコマンドは、電源投入時、設定変更開始時、RWM内容エラー開始時、ゲーム終了時、ドア開閉時に送信される。EXTデータには、ドアの開放状態(開放あるいは閉鎖のいずれであるか)を示す値が設定される。
電断復帰1コマンドは、ゲームが行われるたびにカウントされる0〜127のカウント値を示すコマンドである。電断復帰1コマンドは、電源の投入後にバックアップが正常であった場合に送信される。EXTデータには、0〜127のカウント値のうちのいずれかを示す値が設定される。
電断復帰2コマンドは、BBに当選したか否かおよびRTの状態を示すコマンドである。電断復帰2コマンドは、電源の投入後にバックアップが正常であった場合に送信される。EXTデータには、BBに当選したか否かおよびRTの状態を示す値が設定される。
電断復帰3コマンドは、BB中か否かおよび投入済みのメダルの枚数を示すコマンドである。電断復帰3コマンドは、電源の投入後にバックアップが正常であった場合に送信される。EXTデータには、BB中か否かおよび投入済みのメダルの枚数を示す値が設定される。
電断復帰4コマンドは、ゲームを終了したときの遊技状態(BB、RB、リプレイ入賞)を示すコマンドである。電断復帰4コマンドは、電源の投入後にバックアップが正常であった場合に送信される。EXTデータには、ゲームを終了したときの遊技状態(BB、RB、リプレイ入賞)を示す値が設定される。
ホットスタートコマンドは、電源をオフにしないで再起動することを示すコマンドである。ホットスタートコマンドは、電源の投入後にバックアップが正常であった場合に送信される。EXTデータには、電源をオフにしないで再起動することを示す値が設定される。
次に、本実施の形態におけるメイン制御部41が実行する各種制御内容を説明する。
[初期設定処理]
まず、メイン制御部41が実行する初期設定処理について説明する。メイン制御部41は、電力が供給されてリセット回路49からリセット信号が入力されると、システムリセットを行い、起動処理を実行する。そして、起動処理を実行することにより、後述するIMFが0となり、割込禁止状態が設定される。また、起動処理によって内部機能レジスタ(CTCコントロールレジスタや乱数回路に関わるレジスタなど)に初期値が設定される(図24参照)。その後、ユーザプログラムとしてROM41bに記憶されたプログラムにしたがって、図5および図6のフローチャートに示す初期設定処理を行う。
図5及び図6に示すように、メイン制御部41は、まず、後述するDI命令の実行により割込マスタ許可フラグ(IMF)=0にし、割込を禁止する(Sa1)。なお、割込処理とは、割込要因が発生したときに基本処理に割り込んで発生する処理である。図10および図11において説明するメイン制御部41が一定間隔(0.56msの間隔)で実行するタイマ割込処理(メイン)の割込を禁止する(Sa1)。次いで、初期化データをセットし(Sa2)、各出力ポートを初期化する(Sa3)。次いで、内蔵レジスタの設定を行う(Sa4)。
内蔵レジスタの設定では、例えば、乱数発生回路42の設定を行う。具体的には、メイン制御部41は、乱数回路の設定において、ユーザによって予め設定された乱数最大値を指定する乱数最大値設定データを内蔵レジスタに書き込む。また、メイン制御部41は、内蔵レジスタに設定した乱数最大値が所定の下限値以下でないかを確認し、乱数最大値が下限値以下である場合には、乱数最大値設定レジスタに設定されている乱数最大値の再設定を行う乱数最大値再設定処理を実行する。
また、メイン制御部41は、乱数発生回路42のカウンタが更新するカウント値の初期値を変更させる初期値変更処理を実行する。また、メイン制御部41は、乱数更新方式選択データを乱数更新方式選択レジスタに書き込む。また、メイン制御部41は、ユーザによって予め設定された乱数発生用クロック信号の周期を指定する周期設定データ(基準クロック信号を何分周させるかを設定するためのデータ)を書き込む。また、メイン制御部41は、乱数発生回路42のカウンタによって所定の最終値までカウント値が更新されたときに、カウンタに入力する初期値を更新するか否かを設定する。また、メイン制御部41は、乱数発生回路42のカウンタによって所定の最終値までカウント値が更新されたときに、カウンタが更新するカウント値の順列を変更するか否かを設定する。そして、メイン制御部41は、乱数回路起動データを書き込む。そのようにすることによって、メイン制御部41は乱数発生回路42を起動させる。
次いで、電源電圧が正常か否かを判定する(Sa5)。電源電圧が正常でない場合(Sa5でN)には正常になるまで判定を繰り返す。電源電圧が正常である場合(Sa5でY)には割込ベクタの上位アドレスをセットする(Sa6)。そして、RAMのアクセスを許可し(Sa7)、スタックポインタを初期化する(Sa8)。
次いで、RAMパリティを計算する(Sa10)。そして、計算したRAMパリティが0になるか否かを判定する(Sa11)。RAMパリティが0にならない場合(Sa11でN)にはSa14に進む。
RAMパリティが0になる場合(Sa11でY)にはRAM破壊診断用固定データをRAM41cから取得する(Sa12)。そして、取得したRAM破壊診断用固定データが正しいか否かを判定する(Sa13)。次いで、Sa14のステップでは、RAM破壊診断用固定データをクリアする(Sa14)。
次いで、設定キースイッチがオンにされているか否かを判定する(Sa15)。設定キースイッチがオンの場合(Sa15でY)には、メイン制御部41は、タイマ割込の設定を行う(Sa22)。具体的には、所定時間毎に定期的にタイマ割込がかかるようにメイン制御部41に内蔵されているタイマ回路のレジスタの設定を行なう。例えば0.56msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。この実施の形態では、0.56ms毎に定期的にタイマ割込がかかるとする。なお、タイマ回路では該レジスタの設定が行われることにより、タイマが初期化され、初期値から計時を開始することになる。そして、タイマ割込の設定が終了すると図7及び図8に示す設定変更処理に移行する。
一方、設定キースイッチがオフの場合(Sa15でY)には、Sa11の判定、Sa13の判定、後述するRAM異常フラグがセットされているか否かにもとづきRAM41cの記憶内容が破壊されていたか否か、すなわちRAM41cの記憶内容が正常か否かを判定する(Sa16)。RAM41cの記憶内容が破壊されていない場合(Sa16でN)には、電断復帰コマンド(電断復帰コマンド1〜4)をサブ制御部91に送信するとともに(Sa17)、ホットスタートコマンドをサブ制御部91に送信する(Sa18)。なお、RAM41cの記憶内容が破壊されていない場合とは、Sa11でY、かつSa13でRAM破壊診断用固定データが正しいと判定され、かつRAM異常フラグがセットされていない場合である。
そして、全レジスタを復帰し(Sa19)、Sa22と同様のタイマ割込みの設定を行う(Sa20)。そして、図11に示すタイマ割込処理(メイン)のSk26の処理に復帰する。
また、RAM41cの記憶内容が破壊されている場合(Sa16でY)には、初期化するRAMの開始アドレスをレジスタにセットし(Sa23)、指定したアドレスで示すRAMの領域をクリア(以下、「初期化」ともいう)する(Sa24)。なお、RAM41cの記憶内容が破壊されている場合とは、Sa11でNまたはSa13でRAM破壊診断用固定データが正しいと判定されない場合またはRAM異常フラグがセットされている場合のいずれかの場合である。
ここで、RAM41cの格納領域は、設定値ワーク、特別ワーク、重要ワーク、一般ワーク、未使用領域、スタック領域に区分されている。
設定値ワーク(本実施形態では0000H〜(図14参照))は、設定値や乱数値など、通常の設定変更時に初期化すると不都合のあるデータが格納される領域である。
特別ワーク(本実施形態では0003H〜(図14参照))は、I/Oポート41dの入出力データや、演出制御基板90へコマンドを送信するためのデータなど、設定変更開始前にのみ初期化されるデータが格納される領域である。
重要ワーク(本実施形態では0014H〜(図14参照))は、クレジット数を示すカウンタや、各種表示器やLEDの表示データ、遊技時間の計時カウンタ、ゲーム終了時に初期化すると不都合があるデータが格納される領域である。
一般ワーク(本実施形態では0045H〜(図14参照))は、持越しが行われない当選フラグや、停止制御テーブル、停止図柄、メダルの払い出し枚数など、1遊技(1ゲーム)に必要なデータであって、ゲーム終了時に初期化可能なデータが格納される領域である。
未使用領域(本実施形態では0173H〜(図14参照))は、RAM41cの格納領域のうち使用していない領域である。
スタック領域(本実施形態では01CCH〜(図14参照))は、メイン制御部41のレジスタから退避したデータが格納される領域である。
そして、Sa23でアドレスを指定した場合には、RAM41cの格納領域のうち、上記した全ての領域が初期化される。次いで、RAM41cの記憶内容が正常でないことを示すRAM異常フラグをRAM41cにセットし(Sa25)、エラー処理に移行する。エラー処理では、エラー状態になって遊技を行うことが不能になる。エラー状態は、設定キースイッチ37をオンにして電源スイッチ39をオンにすることによって、Sa15でYと判定させ、設定変更処理(図7及び図8参照)に移行させることにより解除することができる。よって、設定キースイッチ37をオンにせずに電源スイッチ39をオンにした場合には、Sa15でNとなり、Sa16でYとなるので再度エラー状態になる。
なお、本実施形態では、データを「00h」とすること、すなわちクリアすることにより初期化を行っている。しかし、例えば、データを「FFh」としたり、データごとに予め決められた値を入力することにより、初期化を行うことも可能である。
[設定変更処理]
次に、メイン制御部41が実行する設定変更処理について説明する。
図7及び図8に示すように、メイン制御部41は、まず、初期化するRAM41cの開始アドレスをレジスタにセットする(Sb1)。なお、RAM41cは16ビットのメモリ空間アドレスにより、使用目的に応じた領域に区切られている(図14参照)。そして、Sb1の処理においては、メモリ空間アドレスのうち初期化を行う開始アドレスをレジスタにセットする。次いで、図5のSa10におけるRAMパリティの計算又は図5のSa12で取得したRAM破壊診断用固定データにもとづき、RAMの内容が異常であるか否かを判定する(Sb2)。RAMの内容が異常の場合(Sb2でY)にはSb3処理に進む。RAMの内容が異常でない場合(Sb2でN)には、設定変更開始時の初期化対象RAMの先頭アドレスをレジスタにセットする(Sb3)。
次いで、Sb1又はSb3で指定したアドレスで示すRAMの領域をクリアする(Sb4)。なお、Sb1でアドレスをした場合には、RAM41cの格納領域のうち、上記した全ての領域が初期化される。また、Sb2でアドレスを指定した場合には、RAM41cの格納領域のうち、特別ワーク、重要ワーク、一般ワーク、未使用領域、スタック領域が初期化される。Sb4の処理が終了すると、後述する設定変更開始コマンドをサブ制御部91に送信し(Sb5)、図10および図11において説明するメイン制御部41が一定間隔(0.56msの間隔)で実行するタイマ割込処理(メイン)の割込を許可する(Sb6)。
次いで、設定/リセットスイッチ38がオンか否かを判定する(Sb7)。設定/リセットスイッチ38がオンの場合(Sb7でY)には設定値をレジスタにセットする(Sb8)。設定/リセットスイッチ38がオフの場合(Sb7でN)には、スタートスイッチ7がオンか否かを判定する(Sb9)。
スタートスイッチ7がオンになっていない場合(Sb9でN)にはSb7の処理に戻る。スタートスイッチ7がオンになっている場合(Sb9でY)には設定キースイッチがオフになっているか否かを判定する(Sb10)。設定キースイッチがオフになっていない場合(Sb10でN)には、設定キースイッチがオンになるまで判定を繰り返す。設定キースイッチがオフになっている場合(Sb10でY)には、レジスタにセットしている設定値のデータをRAM41cに格納する(Sb11)。
次いで、設定変更終了コマンドをサブ制御部91に送信する(Sb12)。そして、設定変更終了時の初期化対象RAMの先頭アドレスをレジスタにセットし(Sb13)、図9のメイン処理に移行する。
[メイン処理]
次に、メイン制御部41が実行するメイン処理について説明する。なお、メイン処理は一単位の遊技毎に繰り返し実行される。そして、メイン処理の一周期が遊技の一単位に相当している。
図9に示すように、メイン制御部41は、まず、図10および図11において説明するメイン制御部41が一定間隔(0.56msの間隔)で実行するタイマ割込処理(メイン)の割込を禁止する(Sc1)。次いで、初期化対象RAMの最終アドレスをセットする(Sc2)。
次いで、指定したアドレスで示すRAMの領域をクリアする(Sc3)。このとき、設定変更処理後にメイン処理が開始された場合は、図8のSb13で指定したアドレスからSc2で指定したアドレスまでが初期化される。これにより、RAM41cの格納領域のうち、重要ワーク、一般ワークが初期化される。また、一単位の遊技の終了時には、Sc9で指定したアドレスからSc2で指定したアドレスまでが初期化される。これにより、RAM41cの格納領域のうち、一般ワークが初期化される。そして、図10および図11において説明するメイン制御部41が一定間隔(0.56msの間隔)で実行するタイマ割込処理(メイン)の割込を許可する(Sc4)。
次いで、遊技開始待ち処理を実行する(Sc5)。遊技開始待ち処理では、賭数を設定可能な状態で待機し、遊技状態に応じた規定数の賭数が設定され、スタートスイッチ7が操作された時点でゲームを開始させる処理を実行する。
次いで、内部抽選処理を実行する(Sc6)。内部抽選処理では、Sc5のステップにおけるスタートスイッチ7の検出によるゲーム開始と同時にラッチされた内部抽選用の乱数値に基づいて上記した各役への入賞を許容するか(すなわち、表示結果の導出を許容するか否か)どうかを決定する処理を行う。この内部抽選処理では、それぞれの抽選結果に基づいて、RAM41cに当選フラグが設定される。なお、内部抽選により特別役(BBまたはRB)に当選した場合は特別役持ち越しフラグセットされる。そして、上記したように特別役持ち越しフラグの有無を判定することによって特別役の持ち越しの有無を判定し、持ち越しの有無に応じた当選役(特別役持ち越し中には特別役は内部抽選の対象から除外される)について判定処理が行われる。
次いで、リール制御処理を実行する(Sc7)。リール制御処理では、スタートスイッチ7の操作に応答して各リール2L、2C、2Rを回転させる処理、Sd2のステップにおける内部抽選の結果および遊技者によるストップスイッチ8L、8C、8Rの操作が検出されたことに応じて対応するリール2L、2C、2Rの回転を停止させる処理を実行する。
次いで、遊技終了時設定処理を実行する(Sc8)。遊技終了時設定処理では、Sc7の処理において全てのリール2L、2C、2Rの回転が停止したと判定した時点で、各リール2L、2C、2Rに導出された表示結果に応じて入賞が発生したか否かを判定する処理を実行する。なお、特別役が入賞した場合には本処理において特別役持ち越しフラグがクリアされる。そして、入賞が発生したと判定した場合に、その入賞に応じた払出枚数に基づきクレジットの加算並びにメダルの払出等の処理を行う。入賞が発生した場合にはメダルの払い出し等が終了した後に次のゲームに備えて遊技状態を設定する処理を実行する。また、入賞が発生しなかった場合にはリールが停止した後に、次のゲームに備えて遊技状態を設定する処理を実行する。
遊技終了時設定処理が終了すると、遊技毎終了時の初期対象RAMの先頭アドレスをセットして、Sc1に戻る。Sc1に戻るとSc2で初期化対象RAM最終アドレスをレジスタにセットし、Sc3で指定した領域のRAMをクリアする。これにより、遊技毎にRAMがクリアされる。
また、メイン処理では、ゲームの進行制御に応じてコマンドを生成してコマンドバッファに設定し、サブ制御部91に送信されるようになっている。
[タイマ割込処理(メイン)]
図10および図11は、メイン制御部41が一定間隔(0.56msの間隔)で初期設定処理やゲーム処理に割り込んで実行するタイマ割込処理(メイン)の制御内容を示すフローチャートである。なお、タイマ割込処理(メイン)とは、後述するカウンタタイマ(CTC)のカウントに応じて発生する割込(タイマ割込ともいう)により実行される処理であり、タイマ割込処理のプログラムが格納されたアドレスは、割込処理用ベクタテーブルのタイマ割込(CTC0)に対応する値として設定されている。そして、タイマ割込が発生すると該アドレスからの処理が実行される。また、タイマ割込処理(メイン)の間隔(0.56ms)は、CTCのタイマ値に任意値として0.56msを設定することにより設定されている。タイマ割込処理(メイン)の実行期間中は自動的に他の割込が禁止される。
図10および図11に示すように、タイマ割込処理(メイン)においては、まず、使用中のレジスタをスタック領域に退避する(Sk1)。
次いで、停電判定処理を行う(Sk2)。停電判定処理では、電断検出回路48から電圧低下信号が入力されているか否かを判定し、電圧低下信号が入力されていれば、前回の停電判定処理でも電圧低下信号が入力されていたか否かを判定し、前回の停電判定処理でも電圧低下信号が入力されていた場合には停電と判定し、その旨を示す電断フラグを設定する。
Sk2のステップにおける停電判定処理の後、電断フラグが設定されているか否かを判定し(Sk3)、電断フラグが設定されていなければ、Sk4に進み、電断フラグが設定されていた場合には、電断処理(メイン)に移行する。
Sk4のステップでは、入力ポートから各種スイッチ類の検出データを入力するポート入力処理を行う。
次いで、4種類のタイマ割込1〜4から当該タイマ割込処理(メイン)において実行すべきタイマ割込を識別するための分岐用カウンタを1進める(Sk5)。この実施形態では、タイマ割込1とは、モータを制御してリールの開始制御を行うタイマ割込中の分岐処理であり、具体的には、後述するリール始動処理など、Sk9〜Sk11の処理が行われる。また、タイマ割込2とは、LED表示制御や、時間カウンタの更新、ドア開閉状態の監視、制御信号等の出力制御、コマンドおよび外部出力信号の更新を行うタイマ割込中の分岐処理であり、具体的には、後述するLEDダイナミック表示処理など、Sk12〜Sk17の処理が行われる。また、タイマ割込3とは、リールの原点通過を検出したり、スイッチ入力を監視したり、乱数値の読み出しを行うタイマ割込中の分岐処理であり、具体的には、後述する原点通過時処理など、Sk20〜Sk22の処理が行われる。また、タイマ割込4とは、停止スイッチの入力を検出してリールの停止制御を行うタイマ割込中の分岐処理であり、具体的には、後述する停止スイッチ処理など、Sk23〜Sk25の処理が行われる。Sk5のステップでは、分岐用カウンタ値が0〜2の場合に1が加算され、カウンタ値が3の場合に0に更新される。すなわち分岐用カウンタ値は、タイマ割込処理(メイン)が実行される毎に、0→1→2→3→0・・・の順番でループする。
次いで、分岐用カウンタ値を参照して2または3か、すなわちタイマ割込3またはタイマ割込4かを判定し(Sk6)、タイマ割込3またはタイマ割込4ではない場合、すなわちタイマ割込1またはタイマ割込2の場合には、リールモータ32L、32C、32Rの始動時または定速回転中か否かを確認し、リールモータ32L、32C、32Rの始動時または定速回転中であれば、後述するSk10のモータステップ処理において変更した位相信号データや後述するSk24の最終停止処理において変更した位相信号データを出力するモータ位相信号出力処理を実行する(Sk7)。
次いで、分岐用カウンタ値を参照して1か否か、すなわちタイマ割込2か否かを判定し(Sk8)、タイマ割込2ではない場合、すなわちタイマ割込1の場合には、リールモータ32L、32C、32Rの始動時のステップ時間間隔の制御を行うリール始動処理(Sk9)、リールモータ32L、32C、32Rの位相信号データの変更を行うモータステップ処理(Sk10)、リールモータ32L、32C、32Rの停止後、一定時間経過後に位相信号を1相励磁に変更するモータ位相信号スタンバイ処理(Sk11)を順次実行した後、Sk25のステップに進む。
また、Sk8のステップにおいてタイマ割込2の場合には、各種表示器をダイナミック点灯させるLEDダイナミック表示処理(Sk12)、各種LED等の点灯信号等のデータを出力ポートへ出力する制御信号等出力処理(Sk13)、各種時間カウンタを更新する時間カウンタ更新処理(Sk14)、ドア開放検出スイッチ25の検出状態の監視、ドアコマンドの送信要求などを行うドア監視処理(Sk15)、コマンドバッファに設定された設定変更中コマンドや復帰コマンド、エラーコマンド等の各種コマンドをサブ制御部91に送信するコマンド送信処理(Sk16)、外部出力信号を更新する外部出力信号更新処理(Sk17)を順次実行した後、Sk25のステップに進む。
また、Sk6のステップにおいてタイマ割込3またはタイマ割込4であれば、更に、分岐用カウンタ値を参照して3か否か、すなわちタイマ割込4か否かを判定し(Sk18)、タイマ割込4でなければ、すなわちタイマ割込3であれば、回転中のリール2L、2C、2Rの原点通過(リール基準位置の通過)をチェックし、リール回転エラーの発生を検知するとともに、停止準備が完了しているか(停止準備完了コードが設定されているか)を確認し、停止準備が完了しており、かつ定速回転中であれば、回転中のリールに対応するストップスイッチの操作を有効化する原点通過時処理(Sk20)、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rなどのスイッチ類の検出状態に変化があったか否かの判定、操作検出コマンドの送信要求等を行うスイッチ入力判定処理(Sk21)、乱数値レジスタR1Dから数値データを読み出して乱数値格納ワークに格納する乱数値読出処理(Sk22)を順次実行した後、Sk26のステップに進む。
また、Sk18のステップにおいてタイマ割込4であれば、ストップスイッチ8L、8C、8Rの検出に伴って停止リールのワークに停止操作位置が格納されたときに、停止リールのワークに格納された停止操作位置から停止位置を決定し、何ステップ後に停止すれば良いかを算出する停止スイッチ処理(Sk23)、停止スイッチ処理で算出された停止までのステップ数をカウントして、停止する時期になったら2相励磁によるブレーキを開始する停止処理(Sk24)、停止処理においてブレーキを開始してから一定時間後に3相励磁とする最終停止処理(Sk25)を順次実行した後、Sk26のステップに進む。
Sk26のステップでは、Sk1においてスタック領域に退避したレジスタを復帰し、禁止されていた割込が許可されて、割込前の処理に戻る。
[電断処理(メイン)]
図12は、メイン制御部41が前述したタイマ割込処理(メイン)において電断フラグが設定されていると判定した場合に実行する電断処理(メイン)の制御内容を示すフローチャートである。
電断処理(メイン)においては、まず、使用している可能性がある全てのレジスタをスタック領域に退避する(Sm1)。なお、前述したIレジスタ及びIYレジスタの値は使用されているが、起動時の初期化に伴って常に同一の固定値が設定されるため、ここでは保存されない。
次いで、破壊診断用固定データ(本実施の形態では、5A(H))をセットする(Sm2)。そして、図10および図11において説明するメイン制御部41が一定間隔(0.56msの間隔)で実行するタイマ割込処理(メイン)の割込を禁止し、全ての出力ポートを初期化する(Sm3)。次いでRAM41cの全ての格納領域(未使用領域及び未使用スタック領域を含む)の排他的論理和が0になるようにRAMパリティ調整用データを計算してセットし(Sm4)、RAM41cへのアクセスを禁止する(Sm5)。
その後、電圧が低下してメイン制御部41のCPU41aが停止して待機状態に移行する。そして、この待機状態のまま電圧が低下すると内部的に動作停止状態になる。よって、電断時に確実にメイン制御部41は動作停止する。
なお、本実施形態では、出力ポートの初期化の前に割込禁止に設定しているが、サブ制御基板90、外部出力基板1000、リールモータやリールセンサにデータを出力するための出力ポートへのデータの書き込みやシリアル通信回路へのデータの書き込みを行う前に割込禁止に設定してもよい。
[マイクロコンピュータの構成について]
図13に示すように、メイン制御部41やサブ制御部91として使用されるマイクロコンピュータは、クロック生成回路200、リセットコントローラ201、割込コントローラ202、WDT(ウォッチドッグタイマ)203、CTC(カウンタタイマ)204、演算回路205、アドレスデコーダ206、メインCPU41aやサブCPU91aとして用いられるCPU207、ROM41bやROM91bとして用いられるROM208、ROM41cやRAM91cとして用いられるRAM209、M1カウンタ210、検査ポート211、乱数発生回路42として用いられる乱数回路212および汎用初期値用乱数回路212、シリアル通信回路214、PWM(パルス幅変調)出力回路215、割込/汎用出力回路216、乱数外部ラッチ入力回路217を備えている。
図13に示すマイクロコンピュータは、セキュリティ機能として、個別のID、ROM読み出し制限、64ピンSZIP封入、検査ポート211を備えている。
また、CPU207は10MHz(最小命令実行時間:100msec)の周波数で動作する。
また、ROM208は10,240バイトの容量を備え、RAM209は512バイトの容量を備えている。
また、リセット機能として、システムリセット、WDT(ウォッチドッグタイマ)リセット、定期リセット、イリーガルアクセスリセットの4つの機能を備えている。
また、割込機能として、外部端子割込(INT/NMI)、CTC割込(CTC0、CTC1、CTC2)の2つの機能を備えている。
また、チップセレクト端子として、CSモード時に16本、ECSモード時に23本を用いる。また、CTC204は、16ビット×3チャンネルを備えている。
また、乱数回路212は、8ビット固定長乱数×8チャンネル、16ビット固定長乱数×2チャンネル、8ビット可変長乱数×4チャンネル、16可変長乱数×2チャンネルの計16チャンネルを備えている。さらに、汎用初期値用乱数回路212は1チャンネルを備えている。
また、シリアル通信回路214は、送信×3チャンネル、受信×1チャンネルを備えている。
また、演算回路205は、CRC16、チェックサム、水平パリティの計算を行う。
また、PWM出力回路217は、4チャンネルを備えている。汎用外部ラッチ入力回路は3本の入力を備えている。
また、汎用入出力端子として、入力側に4本、出力側に3本を備えている。また、アドレスデコーダ207は、CS0〜CS15の出力に用いられる。
[メモリ空間のアドレスマップ]
次に、図13に示すマイクロコンピュータのROM208及びRAM209におけるメモリ空間のアドレスマップについて図14を用いて説明する。図14に示すメモリ空間は16ビットアドレスでアクセスするメモリ空間である。メモリ空間には、メモリ命令でアクセスされる。図14では、0000h〜7FFFhがRAMのメモリ空間、8000h〜FFFFhがROMのメモリ空間になっている。
RAM209のメモリ空間アドレス0000h〜01FFhにはアクセスが可能となる使用可能領域となっている。メモリ空間アドレス0200h〜0FFFhはアクセスが禁止される未使用領域になっている。メモリ空間アドレス1000h〜1080hには内部レジスタが割り当てられている。メモリ空間アドレス1081h〜7FFFhはアクセスが禁止される未使用領域になっている。メモリ空間アドレス8000h〜A7FFhにはROMが割り当てられている。メモリ空間アドレスA800h〜FFFFhはアクセスが禁止される未使用領域になっている。
ROM208のメモリ空間では、アドレス8000h〜A6FFhにプログラム/データが割り当てられる。また、アドレスA700h〜A7FFhにROMコメントが割り当てられる。また、アドレスA780h〜A7A7hにベクタテーブルが割り当てられる。また、アドレスA7A8h〜A7FFhにHWパラメータが割り当てられる。
以上のように、512バイトのRAMが0000h〜01FFhに配置されている。システムリセット又はWDTリセットが発生するとRAMプロテクト状態となる。RAMプロテクト状態ではRAMの読み出しはできるが、書き込みはできない。RAMプロテクト状態を解除するにはRAMプロテクトレジスタ(RAMPT)に00h又は80hを設定する。
内部機能レジスタは、図13のマイクロコンピュータに搭載されている各機能を制御するためのレジスタ群である。HWパラメータのシステム設定(HSYSCNT)の内部機能レジスタ配置(HRGACS)に1を設定するとI/O空間に配置することもできる。
また、10,240バイトのROMが8000h〜A7FFhに配置されている。ROM領域には、プログラム/データ、ROMコメント、ベクタテーブル、HWパラメータが配置されている。
マイクロコンピュータは、システムリセット、WDTリセット、定期リセット、イリーガルアクセスリセット後8000hからプログラムを実行する。この領域以外ではプログラムを実行することができない。
ROMコメントは、プログラムのタイトル、バージョンなどを設定する領域で、任意のデータを設定することができる。ここに設定したデータは検査ポート(TXD,RXD,STB,DIR)から読み出すことができる。
ベクタテーブルは、CALLV命令のサブルーチンの先頭アドレスと、割込処理の先頭アドレスを設定するテーブルである。使用しないベクタテーブルには0000hを設定する。ベクタテーブルに設定した値が、0000hと8000h〜HPRGEND以外の場合は、マイクロコンピュータは起動しない。HPRGENDは、HWパラメータのプログラムエンドアドレスで設定する。
HWパラメータは、マイクロコンピュータの内部機能をハードウェア的に設定するためのパラメータである。設定は定数テーブルとして記述する。なお、プログラムで書き込むことはできない。
[ベクタテーブルアドレスマップ]
次に、図14で示したROM208のメモリ空間におけるベクタテーブルのアドレスマップについて図15を用いて説明する。
図15に示すように、ベクタテーブルは、メモリ空間アドレスA780h〜A79FhがCALLV命令用ベクタテーブルとなっており、メモリ空間アドレスA7A0h〜A7A7hが割込処理用ベクタテーブルとなっている。
CALLV命令用ベクタテーブルのメモリ空間アドレスA780h〜A781hには、CALLV0の(下位)および(上位)の値が設定されている。メモリ空間アドレスA782h〜A783hには、CALLV1の(下位)および(上位)の値が設定されている。メモリ空間アドレスA784h〜A785hには、CALLV2の(下位)および(上位)の値が設定されている。メモリ空間アドレスA786h〜A787hには、CALLV3の(下位)および(上位)の値が設定されている。メモリ空間アドレスA788h〜A789hには、CALLV4の(下位)および(上位)の値が設定されている。メモリ空間アドレスA78Ah〜A78Bhには、CALLV5の(下位)および(上位)の値が設定されている。メモリ空間アドレスA78Ch〜A78Dhには、CALLV6の(下位)および(上位)の値が設定されている。メモリ空間アドレスA78Eh〜A78Fhには、CALLV7の(下位)および(上位)の値が設定されている。メモリ空間アドレスA790h〜A791hには、CALLV8の(下位)および(上位)の値が設定されている。メモリ空間アドレスA792h〜A793hには、CALLV9の(下位)および(上位)の値が設定されている。メモリ空間アドレスA794h〜A795hには、CALLV10の(下位)および(上位)の値が設定されている。メモリ空間アドレスA796h〜A797hには、CALLV11の(下位)および(上位)の値が設定されている。メモリ空間アドレスA798h〜A799hには、CALLV12の(下位)および(上位)の値が設定されている。メモリ空間アドレスA79Ah〜A79Bhには、CALLV13の(下位)および(上位)の値が設定されている。メモリ空間アドレスA79Ch〜A79Dhには、CALLV14の(下位)および(上位)の値が設定されている。メモリ空間アドレスA79Eh〜A79Fhには、CALLV15の(下位)および(上位)の値が設定されている。
割込処理用ベクタテーブルのメモリ空間アドレスA7A0h〜A7A1hには、INT/NMIの(下位)および(上位)の値が設定されている。メモリ空間アドレスA7A2h〜A7A3hには、CTC0の(下位)および(上位)の値が設定されている。メモリ空間アドレスA7A4h〜A7A5hには、CTC1の(下位)および(上位)の値が設定されている。メモリ空間アドレスA7A6h〜A7A7hには、CTC2の(下位)および(上位)の値が設定されている。
[HWパラメータ一覧]
次に、図14で示したROM208のメモリ空間におけるHWパラメータについて図16を用いて説明する。
図16に示すように、メモリ空間アドレスA7A8hはシンボルHCSATR0が対応付けされ、CS/PWM設定に用いられる。メモリ空間アドレスA7A9hはシンボルHCSATR1が対応付けされ、CS/PWM設定に用いられる。メモリ空間アドレスA7AAhはシンボルHCSATR2が対応付けされ、CS/PWM設定に用いられる。メモリ空間アドレスA7ABhはシンボルHCSATR3が対応付けされ、CS/PWM設定に用いられる。メモリ空間アドレスA7AChはシンボルHCSATR4が対応付けされ、CS/PWM設定に用いられる。メモリ空間アドレスA7ADhはシンボルHCSATR5が対応付けされ、CS/PWM設定に用いられる。メモリ空間アドレスA7AEhはシンボルHCSATRDが対応付けされ、CS/PWM設定に用いられる。
メモリ空間アドレスA7AFhはシンボルHPRSTが対応付けされ、定期リセット設定に用いられる。
メモリ空間アドレスA7B0hはシンボルHRDMDが対応付けされ、乱数回路動作モード設定に用いられる。
メモリ空間アドレスA7B1hはシンボルHSYSCNTが対応付けされ、システム設定に用いられる。
メモリ空間アドレスA7B2hはシンボルHSYSCNTが対応付けされ、リセット期間/INP端子設定に用いられる。
メモリ空間アドレスA7B3h〜A7B4hはシンボルHRPGENDが対応付けされ、プログラムエンドアドレスの設定に用いられる。
メモリ空間アドレスA7B5h〜A7B6hはシンボルHRAMSTATが対応付けされ、RAMアクセス禁止アドレスの設定に用いられる。
メモリ空間アドレスA7B7h〜A7B8hはシンボルHRAMENDが対応付けされ、RAMアクセス禁止アドレスに用いられる。
メモリ空間アドレスA7B9h〜A7CChはシンボルHSWSTSが対応付けされ、SWステータスの設定に用いられる。
メモリ空間アドレスA7CDh〜A7CFhはメーカコードの設定に用いられる。
メモリ空間アドレスA7D0h〜A7D7hは製品コードの設定に用いられる。
メモリ空間アドレスA7D8h〜A7FFhはセキュリティコードの設定に用いられる。
[プログラムエンドアドレス]
次に、図16に示すHWパラメータにおけるプログラムエンドアドレスについて図17を用いて説明する。
メモリ空間アドレスにおける「8000h〜A6FFh」は、図14に示すように「プログラム/データ」を格納するための領域として定められている。しかしながら、「プログラム/データ」の容量は遊技機の制御の内容によって異なり、これら領域の全てに格納されるわけではない。本マイクロコンピュータでは、プログラムエンドアドレスを設定することにより「プログラム/データ」が格納されている領域の範囲を設定して、「プログラム/データ」が格納されていない領域にアクセスがあった場合、イリーガルアクセスリセットが発生するように設定することができる。なお、「プログラム/データ」が格納されている領域の範囲についてエンドアドレス(最終アドレス)を指定することで設定を行っているが、スタートアドレス(開始アドレス)を指定するようにしてもよい。また、離間した複数領域を設定できるようにしてもよい。
図17に示すように、メモリ空間アドレスA7B3hのビット7〜0にシンボルHPRGEND(下位)が対応付けされ、メモリ空間アドレスA7B4hのビット7〜0にシンボルHPRGEND(上位)が対応付けされている。HPRGENDではプログラムエンドアドレスの設定が行われる。そして、8000h〜A6FFhで使用するROM領域の最終アドレスが設定される。
なお、HPRGENDに8000h〜A6FFh以外を設定するとエラー状態となってマイクロコンピュータは起動しない。HPRGENDには最終アドレスを設定する。ROM領域全てをアクセス可能とする場合にはHPRGEND=A6FFhを設定する。HPRGENDで設定したアドレス+1からA6FFhまでの領域をアクセスした場合はイリーガルアクセスリセットが発生する。
図18に示すように、例えば、HPRGEND=8852hを設定した場合は、8852hにアクセスするとイリーガルアクセスリセットが発生する。
[RAMアクセス禁止アドレス]
次に、図16に示すHWパラメータにおけるRAMアクセス禁止アドレスについて図19を用いて説明する。
図19に示すように、メモリ空間アドレスA7B5hのビット7〜0にシンボルHRAMSTAT(下位)が対応付けされ、メモリ空間アドレスA7B5hのビット7〜0にシンボルHRAMSTAT(上位)が対応付けされている。HRAMSTATではRAMアクセス禁止スタートアドレスの設定が行われる。そして、0000h〜01FFhにアクセス禁止するRAM領域の開始アドレスが設定される。
メモリ空間アドレスA7B7hのビット7〜0にシンボルHRAMEND(下位)が対応付けされ、メモリ空間アドレスA7B8hのビット7〜0にシンボルHRAMEND(上位)が対応付けされている。HRAMENDではRAMアクセス禁止エンドアドレスの設定が行われる。そして、0000h〜01FFhにアクセス禁止するRAM領域の最終アドレスが設定される。
なお、HRAMSTATとHRAMENDに設定する値が次の関係を満たさない場合はエラー状態としてマイクロコンピュータは起動しない。
0000h≦HRAMSTAT≦HRAMEND≦01FFh
また、アクセス禁止するRAM領域の開始アドレスをHRAMSTATに設定し、アクセス禁止するRAM領域の最終アドレスをHRAMENDに設定する。
RAM領域全てにアクセスする場合は、HRAMSTAT=0000h、HRAMEND=0000hに設定する。
また、HRAMSTATとHRAMENDで設定されたアクセス禁止領域にアクセスした場合はイリーガルアクセスリセットが発生する。
図20に示すように、例えば、HRAMSTAT=00F2h、HRAMEND=01A7hを設定した場合は、002Fh〜01A7hにアクセスするとイリーガルアクセスリセットが発生する。また、HRAMSTATとHRAMENDの設定は、RAMプロテクトレジスタ(RAMPT)の設定で無効にすることもできる。
[イリーガルアクセスリセットが発生する条件]
次に、図13に示すマイクロコンピュータにおいてイリーガルアクセスリセットが発生する条件について図21を用いて説明する。図21に示す場合には、不正アクセスと判断してイリーガルアクセスリセットが発生する。イリーガルアクセスリセットが発生すると、CPUコアだけがリセットされ、内部機能はリセットされない。
図21に示すように、CS/PWM設定(シンボル名:HCSATR0〜HCSATR5)において、設定内容がHCSRW0=00;CS機能無効(HCSRW1〜HCSRW23も同様)のときは、CS0(I/O空間のC0h)へのアクセス(CS1〜CS23も同様)があったことがイリーガルアクセスリセットの発生条件となる。
また、CS/PWM設定(シンボル名:HCSATR0〜HCSATR5)において、設定内容がHCSRW0=01;R0信号と同期(HCSRW1〜HCSRW23も同様)のときは、CS0(I/O空間のC0h)への書き込み(CS1〜CS23も同様)があったことがイリーガルアクセスリセットの発生条件となる。
また、CS/PWM設定(シンボル名:HCSATR0〜HCSATR5)において、設定内容がHCSRW0=10;W0信号と同期(HCSRW1〜HCSRW23も同様)のときは、CS0(I/O空間のC0h)からの読み出し(CS1〜CS23も同様)があったことがイリーガルアクセスリセットの発生条件となる。
また、CS/PWM設定(シンボル名:HCSMOD)において、設定内容がHCSMD=0;CSモードのときは、ECS領域(I/O空間のD0h〜D7h)へのアクセスがあったことがイリーガルアクセスリセットの発生条件となる。
また、CS/PWM設定(シンボル名:HCSMOD)において、設定内容がHCSMD=1;ECSモードのときは、CS15(I/O空間のCFh)へのアクセスがあったことがイリーガルアクセスリセットの発生条件となる。
次に、システム設定(シンボル名:HSYSCNT)において、設定内容がHRGACS=0;メモリ空間のときは、内部レジスタへのI/Oアクセスがあったことがイリーガルアクセスリセットの発生条件となる。
次に、システム設定(シンボル名:HSYSCNT)において、設定内容がHRGACS=1;I/O空間のときは、内部レジスタへのメモリアクセスがあったことがイリーガルアクセスリセットの発生条件となる。
次に、システム設定(シンボル名:HSYSCNT)において、設定内容がHRGACS=1;I/O空間のときは、内部レジスタへのメモリアクセスがあったことがイリーガルアクセスリセットの発生条件となる。
次に、プログラムエンドアドレス(シンボル名:HPRGEND)の設定に関して、プログラムエンドアドレスとして設定されたアドレスの次のアドレスからA6FFhの間の領域へのアクセスがあったことがイリーガルアクセスリセットの発生条件となる。
次に、RAMアクセス禁止アドレス(シンボル名:HRAMSTAT、HRAMEND)に関して、RAMアクセス禁止アドレスとして設定されたRAM領域の開始アドレスと最終アドレスの間の領域へのアクセスがあったことがイリーガルアクセスリセットの発生条件となる。
次に、内部機能レジスタ(シンボル名:MKCODE)に関し、MKCODEへの書き込みがあったことがイリーガルアクセスリセットの発生条件となる。
次に、内部機能レジスタ(シンボル名:PRCODE)に関し、PRCODEへの書き込みがあったことがイリーガルアクセスリセットの発生条件となる。
次に、内部機能レジスタ(シンボル名:CPCODE)に関し、CPCODEへの書き込みがあったことがイリーガルアクセスリセットの発生条件となる。
次に、ROM領域として設定されている領域(8000h〜A7FFh)への書き込みがあったこと、ROMコメント領域(A700h〜A77Fh)へのアクセスがあったこと、HWパラメータ領域(A7A8h〜A77Fh)へのアクセスがあったことがイリーガルアクセスリセットの発生条件となる。
次に、メモリ空間のうち未使用領域(200h〜FFFh、10B1h〜7FFFh、A800h〜FFFh)へのアクセスがあったことがイリーガルアクセスリセットの発生条件となる。
次に、I/O空間のうち未使用領域(B1h〜BFh)へのアクセスがあったことがイリーガルアクセスリセットの発生条件となる。
次に、CPUコアが未定義命令をフェッチしたことがイリーガルアクセスリセットの発生条件となる。
[起動しない条件]
次に図13に示すマイクロコンピュータが起動しない条件について図22を用いて説明する。図22に示す条件を満たした場合はエラー状態と判断してマイクロコンピュータは起動しない。
図22に示すように、ベクタテーブルの設定(関係するシンボル名:HPRGEND)においては、0000hと8000h〜HPRGEND以外の値が設定されるとマイクロコンピュータが起動しない条件が満たされる。
CS/PWM設定(関係するシンボル名:HCSMD、HCSRW16〜HCSRW23)においては、CS/PWM設定で設定した値がHCSMD=0、かつHCSRW16が00以外の値が設定されるとマイクロコンピュータが起動しない条件が満たされる。HCSRW17〜HCSRW23も同様である。
CS/PWM設定(関係するシンボル名:HCSMD、HCSRW15)においては、HCSMD=1、かつHCSRW15が00以外の値が設定されるとマイクロコンピュータが起動しない条件が満たされる。
CS/PWM設定(関係するシンボル名:HPW0MD〜HPW3MD、HCSRW11〜HCSRW14)においては、HPW0MD=1、かつHCSRW11が00以外の値が設定されるとマイクロコンピュータが起動しない条件が満たされる。また、HPW1MD=1、かつHCSRW12が00以外の値が設定されるとマイクロコンピュータが起動しない条件が満たされる。HPW2MD=1、かつHCSRW13が00以外の値が設定されるとマイクロコンピュータが起動しない条件が満たされる。HPW3MD=1、かつHCSRW14が00以外の値が設定されるとマイクロコンピュータが起動しない条件が満たされる。
CS/PWM設定(関係するシンボル名:HCSMOD)においては、HCSMODのビット4=1が設定されるとマイクロコンピュータが起動しない条件が満たされる。また、HCSMODのビット5=1が設定されるとマイクロコンピュータが起動しない条件が満たされる。また、HCSMODのビット6=1が設定されるとマイクロコンピュータが起動しない条件が満たされる。
乱数回路動作モード設定(関係するシンボル名:HRDMD)においては、HEDMDのビット3=1が設定されるとマイクロコンピュータが起動しない条件が満たされる。
乱数回路動作モード設定(関係するシンボル名:HFRCLK)においては、HFRCLK=1を設定し、かつ乱数外部クロック(EXCLK)入力がないときにマイクロコンピュータが起動しない条件が満たされる。
乱数回路動作モード設定(関係するシンボル名:HRDMYE)においては、HRDMYE=1の場合にマイクロコンピュータが起動しない条件が満たされる。
システム設定(関係するシンボル名:HSYSCNT)においては、HSYSCNTのビット5=1が設定されるとマイクロコンピュータが起動しない条件が満たされる。また、HSYSCNTのビット6=1が設定されるとマイクロコンピュータが起動しない条件が満たされる。また、HSYSCNTのビット7=1が設定されるとマイクロコンピュータが起動しない条件が満たされる。なお、HSYSCNTのビット5〜7は、いずれの機能の設定にも用いられていない未使用ビットであり、通常は0が設定される。
システム設定(関係するシンボル名:HLNKMD、HAUTLK)においては、HLNKMD=0、かつHAUTLK=1が設定されるとマイクロコンピュータが起動しない条件が満たされる。
プログラムエンドアドレス(関係するシンボル名:HPRGEND)においては、HPRGENDに8000h〜A6FF以外の値が設定されるとマイクロコンピュータが起動しない条件が満たされる。
RAMアクセス禁止アドレス(関係するシンボル名:HRAMSTAT、HRAMEND)においては、0000h≦HRAMSTAT≦HRAMEND≦01FFhを満たさない場合はマイクロコンピュータが起動しない条件が満たされる。
SWステータス(関係するシンボル名:HSWSTS0〜HSWSTS9)においては、HSWSTS0が0000h〜01FFh以外の値が設定されるとマイクロコンピュータが起動しない条件が満たされる。HSWSTS1〜HSWSTS9も同様である。
SWステータス(関係するシンボル名:HSWSTS0〜HSWSTS9、HRAMSTAT、HRAMEND)においては、HSWSTS0がHRAMSTATとHRAMENDで設定したアクセス禁止権領域の値が設定されるとマイクロコンピュータが起動しない条件が満たされる。HSWSTS1〜HSWSTS9も同様である。
[リセット要因による動作の変化]
次に、図13に示すマイクロコンピュータにおいてリセット要因による動作の変化について図23を用いて説明する。図23に示すように4種類のリセット要因により動作が変化する。
システムリセットが行われた場合にはシステムリセット期間が設定され、リセット要因がWDTリセット、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合にはシステムリセット期間が設定されない。
また、システムリセットによりリセット期間が延長された場合には、HWパラメータでリセット期間の延長を有効に設定した場合にリセット期間の延長が設定され、WDTリセット、定期リセット、イリーガルアクセスリセットのいずれかによりリセット期間が延長されなかった場合には、リセット期間の延長が設定されない。
また、システムリセット、WDTリセット、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合には、CPUコアが初期化される。
また、システムリセットが行われた場合には入出力端子は初期化され、WDTリセット、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合には、入出力端子は初期化されない。
また、システムリセット、WDTリセット、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合でもRAMの内容は変化しない。
また、システムリセット、WDTリセットのいずれかが行われた場合にはRAMはプロテクト状態に設定され、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合にはRAMはプロテクト状態に設定されない。
また、システムリセット、WDTリセットのいずれかが行われた場合にはCTCは初期化され、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合にはCTCは初期化されない。
また、システムリセットが行われた場合にはWDTは初期化され、WDTリセット、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合にはWDTは初期化されない。
また、システムリセットが行われた場合にはWDT循環クリアモードのクリア値の順番は初期化され、WDTリセット、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合にはWDT循環クリアモードのクリア値の順番は初期化されない。
また、システムリセットが行われた場合にはシリアル通信は送受信を中断して初期化され、WDTリセット、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合には初期化されない。
また、システムリセット、WDTリセットのいずれかが行われた場合には割込コントローラは初期化され、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合には割込コントローラは初期化されない。
また、システムリセットが行われた場合には、外部信号入力/リセット要因、レジスタのリセット要因、PINSTSのビット5〜7は初期化され、WDTリセット、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合には初期化されない。
また、システムリセット、WDTリセットのいずれかが行われた場合には乱数回路は初期化され、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合には乱数回路は初期化されない。
また、システムリセット、WDTリセットのいずれかが行われた場合には乱数の初期値は毎回異なり、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合には乱数の初期値はリセット前のスタート値に設定される。
また、システムリセットが行われた場合には、乱数エラーステータスレジスタは初期化され、WDTリセット、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合には初期化されない。
また、システムリセットが行われた場合には、汎用初期値用乱数は毎回異なり、WDTリセット、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合には汎用初期値用乱数は変化しない。
また、システムリセット、WDTリセットのいずれかが行われた場合にはM1カウンタは初期化され、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合にはM1カウンタは初期化されない。
また、システムリセット、WDTリセットのいずれかが行われた場合には定期リセットモニタは初期化され、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合には定期リセットモニタは初期化されない。
また、システムリセット、WDTリセットのいずれかが行われた場合には演算機能は初期化され、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合には演算機能は初期化されない。
また、システムリセット、WDTリセットのいずれかが行われた場合にはPWM出力は初期化され、定期リセット、イリーガルアクセスリセットのいずれかが行われた場合にはPWM出力は初期化されない。
[内部機能レジスタ]
次に、図14に示す内部機能レジスタについて図24を用いて具体的に説明する。なお、図中のSは「システムリセット」、Wは「WDTリセット」を示す。また、R/W(Read/Write)は、R/Wが読み書き可能、Rが読み出しのみ可能、Wが書き込みのみ可能であることを示す。また、一部機能を省略して説明する。
なお、図示を省略した機能には、乱数回路で更新する乱数値の最大値を定める乱数最大値レジスタや、乱数値を取得する際の動作を定める外部ラッチ信号許可レジスタ、外部ラッチ信号モードレジスタなどの乱数回路に関わるレジスタが含まれており、これらの初期化要因はシステムリセットとWDTリセットになっている(図23参照)。
図24に示すように、I/O空間アドレス00h、メモリ空間アドレス1000hにはRAMプロテクトレジスタ(RAMPT)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス01h、メモリ空間アドレス1001hにはCTCコントロールレジスタ(TMCNT0)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス02h、メモリ空間アドレス1002hにはCTCコントロールレジスタ(TMCNT1)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス03h、メモリ空間アドレス1003hにはCTCコントロールレジスタ(TMCNT2)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス04h及び05h、メモリ空間アドレス1004hおよび1005hにはCTCデータレジスタ(CTC0)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス06h及び07h、メモリ空間アドレス1006hおよび1007hにはCTCデータレジスタ(CTC1)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス08h及び09h、メモリ空間アドレス1008hおよび1009hにはCTCデータレジスタ(CTC2)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス0Ah、メモリ空間アドレス100AhにはWDTコントロールレジスタ(WDTCNT)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス0Bh、メモリ空間アドレス100BhにはWDTクリアレジスタ(WDTCLR0)が割り当てられている。そして、R/WはWとなっている。なお、初期化要因はない。
I/O空間アドレス0Ch、メモリ空間アドレス100ChにはWDTクリアレジスタ(WDTCLR1)が割り当てられている。そして、R/WはWとなっている。なお、初期化要因はない。
I/O空間アドレス0Dh、メモリ空間アドレス100DhにはWDTクリアレジスタ(WDTCLR2)が割り当てられている。そして、R/WはWとなっている。なお、初期化要因はない。
I/O空間アドレス0Eh、メモリ空間アドレス100EhにはWDTクリアレジスタ(WDTCLR3)が割り当てられている。そして、R/WはWとなっている。なお、初期化要因はない。
I/O空間アドレス23h、メモリ空間アドレス1023hには割込要求レジスタ(IRR)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス24h、メモリ空間アドレス1024hには割込許可レジスタ(IRR)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス25h、メモリ空間アドレス1025hには割込優先順位レジスタ(IPR)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス26h、メモリ空間アドレス1026hには外部信号入力/リセット要因レジスタ(PINSTS)が割り当てられている。そして、R/WはR/W、初期化要因はSとなっている。
I/O空間アドレス94h、メモリ空間アドレス1094hには定期リセットモニタレジスタ(ITRMN)が割り当てられている。そして、R/WはR、初期化要因はS,Wとなっている。
I/O空間アドレス95h、メモリ空間アドレス1095hには演算データレジスタ(CDAT)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス96h、メモリ空間アドレス1096hには水平パリティ演算結果レジスタ(CPTY)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス97h及び98h、メモリ空間アドレス1097h及び1098hにはチェックサム演算結果レジスタ(CSUM)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス99h及び9Ah、メモリ空間アドレス1099h及び109AhにはCRC16演算結果レジスタ(CCRC)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス9Bh、メモリ空間アドレス109BhにはPWMコントロールレジスタ(PWMC0)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス9Ch、メモリ空間アドレス109ChにはPWMコントロールレジスタ(PWMC1)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス9Dh、メモリ空間アドレス109DhにはPWMコントロールレジスタ(PWMC2)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレス9Eh、メモリ空間アドレス109EhにはPWMコントロールレジスタ(PWMC3)が割り当てられている。そして、R/WはR/W、初期化要因はS,Wとなっている。
I/O空間アドレスA2h及びA3h及びA4h、メモリ空間アドレス10A2h及び10A3h及び10A4hにはメーカコードレジスタ(MKCODE)が割り当てられている。そして、R/WはRとなっている。なお、初期化要因はない。
I/O空間アドレスA5h〜ACh、メモリ空間アドレス10A5h〜10AChには製品コードレジスタ(PRCODE)が割り当てられている。そして、R/WはRとなっている。なお、初期化要因はない。
I/O空間アドレスADh〜B0h、メモリ空間アドレス10ADh〜10B0hにはチップコードレジスタ(CPCODE)が割り当てられている。そして、R/WはRとなっている。なお、初期化要因はない。
[RAMプロテクト]
次に、RAMプロテクトについて説明する。RAMプロテクトは、間違った操作によるRAMの書き換え防止する機能である。
RAMプロテクトの動作は、次のようになる。システムリセット又はWDTリセットが発生した後はRAMプロテクト状態になっている。RAMプロテクト状態ではRAMからデータを読み出すことができるが、RAMへデータを書き込むことができない。RAMへデータを書き込む場合はRAMプロテクトレジスタ(RAMPT)にRAMプロテクトを無効に設定する。RAMPTのRAMアクセス禁止領域の設定を無効に設定すると、HWパラメータのRAMアクセス禁止領域を有効に設定しても、HRAMSTAT=0000hかつHRAMEND=0000hを設定している場合は、RAMアクセス禁止領域は存在しないので、イリーガルアクセスリセットは発生しない。
[RAMプロテクトレジスタ]
次に、図24で示した内部機能レジスタにおけるRAMプロテクタレジスタについて図25を用いて説明する。
図25に示すように、RAMプロテクトレジスタでは、メモリ空間アドレス1000h(I/O空間アドレス00h)のビット7〜0にシンボルRAMPTが対応付けされている。RAMPTでは、RAMプロテクトの設定と、RAMアクセス禁止領域のコントロールが行われる。そして、00hではRAMアクセス禁止領域が無効に設定され、RAMプロテクトが無効に設定される。また、01hではRAMアクセス禁止領域が無効に設定され、RAMプロテクトが有効に設定される。また、80hではRAMアクセス禁止領域が有効に設定され、RAMプロテクトが無効に設定される。また、81hではRAMアクセス禁止領域が有効に設定され、RAMプロテクトが有効に設定される。これらの値以外では状態が保持される。なお、R/WはR/Wになり、初期値は81hになっている。
[カウンタタイマ(CTC)]
次に、CTCについて図26を用いて説明する。図13に示すマイクロコンピュータでは、16ビットのCTCが3チャンネル搭載されている。
CTCの動作は次のようになる。CTCは設定されたタイマ値をダウンカウントし、0000hに達したときに割込コントローラへの割込要求信号を出力する。このときの0000hをターミナルカウントと称する。CTCの各チャンネル(CTC0〜2)は、独立して動作させることができるので、3種類の時間間隔で割込を発生させることができる。
図26に示すように、CTC0、CTC1は、CTC2のターミナルカウントをクロック源とすることができるので長い時間間隔を容易に作ることができる。例えば、CTC0のクロック源にCTC2のターミナルカウントを設定し、CTC2のタイマ値を2msec、CTC0を65,000カウントに設定した場合は、2msec×65,000=130secをカウントすることができる。CTCは、システムリセットまたはWDTリセットが発生した場合に初期化される。
CTCの動作モードは以下のようになる。CTCには、1回だけ動作するワンショットタイマモードと繰り返し動作するインターバルタイマモードの2つの動作モードがある。ワンショットタイマモードは、設定したタイマ値からダウンカウントを行い、ターミナルカウントに達するとダウンカウントを停止する。そして、ターミナルカウントに達したときに割込要求が1回発生する。
タイマ値に5を設定した場合:5→4→3→2→1→0(停止)
インターバルタイマモードは、設定したタイマ値からダウンカウントを行い、ターミナルカウントに達すると設定したタイマ値から再びダウンカウントを行う。そして、ターミナルカウントに達するたびに割込要求が繰り返し発生する。
タイマ値に5を設定した場合:5→4→3→2→1→5→4→・・・(繰り返し)
タイマ値の設定に関して、CTCのタイマ値は、任意値または4種類の固定値(1msec、2msec、4msec、1.4890msec)を設定することができる。
任意値の設定方法は、CTCデータレジスタ(CTC0〜2)にタイマ値を設定し、CTCコントロールレジスタ(TMCNT0〜2)のタイマ値設定方法、動作モード、クロック分周、クロック源を設定する。
CTC0で3msecごとに割込を発生させる設定例
1.CTC0=012Ch タイマ値=300
2.TMCNT=02h タイマ値設定方法=任意値、動作モード=インターバルタイマモード、クロック分周=10μsec、クロック源=MLCKの分周
固定値の設定方法は、CTCコントロールレジスタ(TMCNT0〜2)のタイマ値設定方法、動作モード、固定値を設定する。
CTC0で4msecごとに割込を発生させる設定例
1.TMCNT=0Bh タイマ値設定方法=固定値、動作モード=インターバルタイマモード、固定値設定=4msec
CTC0(CTC0データレジスタ)の設定は不要。
CTCの起動は、システムリセット後及びWDTリセット後は、CTCのカウント動作を停止している。
CTCの起動は次の順番で設定する。
1.CTCデータレジスタ(CTC0〜2)にタイマ値を設定する。
2.CTCコントロールレジスタ(TMCNT0〜2)を設定する。
なお、タイマ値設定方法に固定値を設定する場合は、1.のCTCデータレジスタ(CTC0〜2)の設定は不要である。TMCNT0〜2を設定するだけで起動する。CTCがカウント動作中であってもTMCNT0〜2を設定すると、CTC0〜2とTMCNT0〜2の設定内容で更新される。カウント中のタイマ値はCTC0〜2の設定値から再度ダウンカウントする。
[CTCコントロールレジスタ]
次に、図24で示した内部機能レジスタにおけるCTCコントロールレジスタについて図27を用いて説明する。
図27に示すように、CTCコントロールレジスタでは、メモリ空間アドレス1001h(I/O空間アドレス01h)のビット7は未使用であり、常に0となる。なお、R/WはRになり、初期値は0になっている。
メモリ空間アドレス1001h(I/O空間アドレス01h)のビット6にはシンボルC0CKCELが対応付けされ、メモリ空間アドレス1002h(I/O空間アドレス02h)のビット6にはシンボルC1CKCELが対応付けされている。C0CKCEL、C1CKCELでは、CTC0〜1のクロック源の設定が行われる。そして、0ではMCLKの分周に設定され、1ではCTC2のターミナルカウントに設定される。なお、R/WはR/Wになり、初期値は0になっている。
なお、C0CKCELに0を設定した場合はCTC0をC0CKCELに設定したクロックでダウンカウントする。C0CKCELに1を設定した場合はCTC0をCTC2のターミナルカウントでダウンカウントする。C1CKCELに0を設定した場合はCTC1をC1CKCELに設定したクロックでダウンカウントする。C1CKCELに1を設定した場合はCTC1をCTC2のターミナルカウントでダウンカウントする。
メモリ空間アドレス1001h(I/O空間アドレス01h)のビット4〜5にはシンボルC0CLKが対応付けされ、メモリ空間アドレス1002h(I/O空間アドレス02h)のビット5〜4にはシンボルC1CLKが対応付けされ、メモリ空間アドレス1003h(I/O空間アドレス03h)のビット4〜5にはシンボルC2CLKが対応付けされている。C0CLK、C1CLK、C2CLKでは、CTC0〜2のクロック分周設定が行われる。そして、MLCK=20MHzの場合に、00では10μsecに設定され、01では1μsecに設定され、10では5μsecに設定され、11では20μsecに設定される。なお、R/WはR/Wになり、初期値は0になっている。
なお、CTC2は、C2CLKに設定したクロックでダウンカウントする。
メモリ空間アドレス1001h(I/O空間アドレス01h)のビット3〜2にはシンボルTMCEL0が対応付けされ、メモリ空間アドレス1002h(I/O空間アドレス02h)のビット2〜3にはシンボルTMCEL1が対応付けされ、メモリ空間アドレス1003h(I/O空間アドレス03h)のビット2〜3にはシンボルTMCEL2が対応付けされている。TMCEL0、TMCEL1、TMCEL2では、CTC0〜2の固定値の設定が行われる。そして、00では1msec(タイマ値=03E8h)に設定され、01では2msec(タイマ値=07D0h)に設定され、10では4msec(タイマ値=0FA0h)に設定され、11では1.489msec(タイマ値=05D1h)に設定される。なお、R/WはR/Wになり、初期値は0になっている。
なお、TMCEL0〜2の設定時間は、HWパラメータのシステム設定(HSYSCNT)のMCLK周波数設定(HSYSCLK)がシステムクロック(MCLK)と同じ周波数に設定された場合に所定の時間となる。
メモリ空間アドレス1001h(I/O空間アドレス01h)のビット1にはシンボルTMMOD0が対応付けされ、メモリ空間アドレス1002h(I/O空間アドレス02h)のビット1にはシンボルTMMOD1が対応付けされ、メモリ空間アドレス1003h(I/O空間アドレス03h)のビット1にはシンボルTMMOD2が対応付けされている。TMMOD0、TMMOD1、TMMOD2では、CTC0〜2の動作モードの設定が行われる。そして、0ではワンショットタイマモードに設定され、1ではインターバルタイマモードに設定される。なお、R/WはR/Wになり、初期値は0になっている。
メモリ空間アドレス1001h(I/O空間アドレス01h)のビット0にはシンボルTMFVM0が対応付けされ、メモリ空間アドレス1002h(I/O空間アドレス02h)のビット0にはシンボルTMFVM1が対応付けされ、メモリ空間アドレス1003h(I/O空間アドレス03h)のビット1にはシンボルTMFVM2が対応付けされている。TMFVM0、TMFVM1、TMFVM2では、CTC0〜2のタイマ値設定方法の設定が行われる。そして、0では任意値に設定され、1では固定値に設定される。なお、R/WはR/Wになり、初期値は0になっている。
なお、TMFVM0〜2に0を設定した場合はTMCEL0〜2の設定は無効である。TMFVM0〜2に1を設定した場合はC0CKSEL、C1CKSEL、C0CLK、C1CLK、C2CLKの設定は無効である。このとき、TMSEL0〜2の設置値により、CTC0〜2のタイマ値が03E8h、07D0h、0FA0h、05D1hのいずれかでかつクロック分周は1μsecで動作する。なお、C0CLK、C1CLK、C2CLK、CTCデータレジスタ(CTC0〜2)の設定値には影響を与えない。
[CTCデータレジスタ]
次に、図24で示した内部機能レジスタにおけるCTCデータレジスタについて図28を用いて説明する。
図28に示すように、CTCコントロールレジスタでは、メモリ空間アドレス1004h(I/O空間アドレス04h)のビット7〜0にはシンボルCTC0(下位)が対応付けされ、メモリ空間アドレス1005h(I/O空間アドレス05h)のビット7〜0にはシンボルCTC0(上位)が対応付けされている。CTC0ではCTC0のタイマ値の設定が行われる。読み出す場合はカウント値が読み出される。書き込む場合は0000hに65,536、0001hに1、以降1ずつ書き込まれる値が増えていき、FFFFhに65,535が書き込まれる。なお、R/WはR/Wになり、初期値はFFFFhになっている。
メモリ空間アドレス1006h(I/O空間アドレス06h)のビット7〜0にはシンボルCTC1(下位)が対応付けされ、メモリ空間アドレス1007h(I/O空間アドレス07h)のビット7〜0にはシンボルCTC1(上位)が対応付けされている。CTC1ではCTC1のタイマ値の設定が行われる。その他、CTC1はCTC0と同様である。
メモリ空間アドレス1008h(I/O空間アドレス08h)のビット7〜0にはシンボルCTC2(下位)が対応付けされ、メモリ空間アドレス1009h(I/O空間アドレス09h)のビット7〜0にはシンボルCTC2(上位)が対応付けされている。CTC2ではCTC2のタイマ値の設定が行われる。その他、CTC2はCTC0と同様である。
以上のように、CTCデータレジスタではCTC0〜2のタイマ値を設定する。0000hを設定した場合は65,536が設定される。CTCコントロールレジスタ(TMCNT0〜2)のTMFVM0〜2に1(固定値)を設定した場合は、このレジスタは不要である。
また、このレジスタからCTC0〜2のカウント値を読み出すことができる。CTCコントロールレジスタ(TMCNT0〜2)のTMFVM0〜2に1(固定値)を設定した場合でもカウント値を読み出すことができる。カウント値の読み出しはCTCを起動した後に行う。
2バイトの読み出し命令を使用してカウント値を読み出した場合は、更新中のカウント値が読み出されることはない。1バイトの読み出し命令で上位と下位を別々に読み出した場合は、途中でカウント値が更新される場合がある。
[割込コントローラ]
次に、割込コントローラについて説明する。図29を割込コントローラのブロック図である。
割込動作として、まず、割込要因と割込の設定が行われる。
割込要因は、割込入力/汎用入力端子(INP)の入力信号とCTC0〜2のターミナルカウントがあり、次の場合に割込が発生する。
1.INP端子がLレベルになった場合
2.CTC0がターミナルカウントに達した場合
3.CTC1がターミナルカウントに達した場合
4.CTC2がターミナルカウントに達した場合
INP端子を割込の入力信号として使用する場合は、HWパラメータのリセット期間/INP端子設定(HRSTCNT)のINP端子機能設定(HPORTEN)に1(割込入力端子として使用する)を設定する。
INP端子はHRSTCNTの割込入力端子設定(HPORTMD)でINT割込入力又はNMI割込入力を選択することができる。
4つの割込要因は、割込許可レジスタ(IER)により個別に割込許可の設定と禁止を設定することができる。また、割込優先順位レジスタ(IPR)により割込の優先順位を設定することができる。
NMIを除く割込は、CPUコアのプログラムステータスワード(PSW)に割り当てられている割込マスタ許可フラグ(IMF)により、割込コントローラとは独立して割込要求の受付許可と受付禁止とを設定することができる。
IMFの設定はEI(IMF=1)命令、DI(IMF=0)により行う。
CPUコアが割込許可状態(IMF=1)の場合に、割込コントローラが割込要求信号をCPUコアに出力する。
NMI割込の場合は割込許可/禁止の状態にかかわらず割込要求信号をCPUコアへ出力する。
割込要求レジスタ(IRR)、割込許可レジスタ(IER)、割込優先順位レジスタ(IPR)は、システムリセット又はWDTリセットが発生した場合に初期化される。
割込処理は、次のステップで開始される。
1.割込が発生すると、割込要因を割込要求レジスタ(IRR)にラッチする。
2.IER,IPR,IMFの設定状態に従い、CPUコアへ割込要求信号を出力する。
3.CPUコアは、M1サイクル中に割込要求の有無を判断する。
4.割込要求があった場合は、そのM1サイクルでフェッチした命令は破棄され、プログラムカウンタ(PC)は更新されない。このPCは下記「8.」においてそのスタックにプッシュされるので、割込処理終了時はこのPCからプログラムの実行を再開する。LDIR、CPIR命令実行中は、処理を繰り返す都度M1サイクルがあるが、その際も同様に割込要求の有無を判断する。
5.M1とIPEQ0を同時にLレベルとし、CPUコアが割込を受け付けたことを示す。
6.IRRの割込要因に対応するビットを0にクリアする。
7.割込要因に応じた割込処理の先頭アドレスを割込処理用ベクタテーブルから読み出す。
8.PSW、PCの上位バイト(PCH)、PCの下位バイト(PCL)の順にスタックにプッシュする。
9.IMFを0にクリアし、割込禁止状態にする。
10.割込処理用ベクタテーブルから読み出したアドレスをPCカウンタにセットする。
11.割込処理を開始する。
なお、上記処理は割込要求がINT割込とCTC0〜2割込の場合である。NMI割込の場合は、IER、IPR、IMFの設定に関係なく、割込要求信号を出力する。
割込受付処理でPSWとPCは自動的にスタックに退避されるが、CPUコアの汎用レジスタ(W,A,B,C,D,E,H,L,IX,IY)は自動的に退避されない。必要に応じてプログラムにより退避させる。
なお。汎用レジスタの退避は、PUSH命令により方法や、汎用レジスタのバンクを切り替える方法がある。例えば、割込処理が多重に起動しないシステムの場合は、通常処理は汎用レジスタのバンク0を使用し、割込処理の先頭でLD、RBS,1(RBS=1)命令を実行し、バンク1に切り替えることでバンク0のレジスタを退避することができる。
レジスタバンクセレクタ(RBS)は、PSWに含まれるので割込処理のリターン命令(RETIまたはRETN)を実行するとPSWがスタックから復帰し、自動的にバンク0に切り替わる。
割込処理の終了は、リターン命令(RETIまたはRETN)の実行以外の特別な措置は不要である。リターン命令を実行すると、PSWとPCがスタックから復帰されて割込処理開始前の処理に戻る。割込要因のクリアは、割込要求受付時に割込コントローラが自動的に行う。IMFやRBSはPSWに含まれるので、リターン命令により自動的にスタックから復帰される。したがって、割込処理終了前にEI命令やRBS切替を実行する必要はない。
なお、EI命令を実行するとすぐに割込を受け付けることができるので、EI命令とリターン命令で連続して記述するとリターン命令をフェッチするときに新たな割込を受け付けることがある。
図30はCTC0で割込処理を実行する場合の割込処理手順の例を示す。図30の例では詳述すると以下のようになる。
1.メイン(Main)ルーチンでは汎用レジスタのバンク0(RBS=0)を使用する。
2.CTC0割込ルーチンでは汎用レジスタのバンク1(RBS=1)を使用する。
3.割込処理の終了はRETIの実行のみとなる。
[割込要求レジスタ]
次に、図24で示した内部機能レジスタにおける割込要求レジスタについて図31を用いて説明する。割込要求レジスタは、割込要求信号をラッチするレジスタである。
図31に示すように、割込要求レジスタでは、メモリ空間アドレス1023h(I/O空間アドレス23h)のビット7にはシンボルIRR3が対応付けされている。IRR3では、CTC2割込要求の設定が行われる。そして、読み出す場合は、0のときに割込要求なし設定され、1のときに割込要求ありに設定される。また、書き込む場合は、0のときにクリアに設定され、1のときに何もしないに設定される。なお、R/WはR/Wになり、初期値は0になっている。
メモリ空間アドレス1023h(I/O空間アドレス23h)のビット6にはシンボルIPR2が対応付けされている。IRR2では、CTC1割込要求の設定が行われる。その他、IRR2はIRR3と同様である。
メモリ空間アドレス1023h(I/O空間アドレス23h)のビット5にはシンボルIPR1が対応付けされている。IRR1では、CTC0割込要求の設定が行われる。その他、IRR1はIRR3と同様である。
メモリ空間アドレス1023h(I/O空間アドレス23h)のビット4にはシンボルIPR0が対応付けされている。IRR0では、INT/NMI割込要求の設定が行われる。その他、IRR0はIRR3と同様である。
メモリ空間アドレス1023h(I/O空間アドレス23h)のビット3〜30未使用であり、常に0である。なお、R/WはRになり、初期値は0になっている。
なお、CPUコアが割込要求を受け付けると割込コントローラが自動的に0にクリアする。0を設定するとクリアすることはできるが1を設定しても割込要求をセットすることはできない。
IRRは割込許可レジスタ(IER)の前段に位置しているので、IERで割込禁止に設定されている割込要因であってもラッチする。割込が禁止されている間に発生した割込要求を無視する場合は割込を許可する前にIRRに0を設定して割込要求をクリアする。
[割込許可レジスタ]
次に、図24で示した内部機能レジスタにおける割込許可レジスタについて図32を用いて説明する。割込許可レジスタは、割込要求信号を許可するレジスタである。
図32に示すように、割込許可レジスタでは、メモリ空間アドレス1024h(I/O空間アドレス24h)のビット7にはシンボルIER3が対応付けされている。IER3では、CTC2割込許可の設定が行われる。そして、0のときに割込禁止に設定され、1のときに割込許可に設定される。なお、R/WはR/Wになり、初期値は0になっている。
メモリ空間アドレス1024h(I/O空間アドレス24h)のビット6にはシンボルIER2が対応付けされている。IER2では、CTC1割込許可の設定が行われる。その他、IER2はIER3と同様である。
メモリ空間アドレス1024h(I/O空間アドレス24h)のビット5にはシンボルIER1が対応付けされている。IER1では、CTC0割込許可の設定が行われる。その他、IER1はIER3と同様である。
メモリ空間アドレス1024h(I/O空間アドレス24h)のビット4にはシンボルIER0が対応付けされている。IER0では、INT割込許可の設定が行われる。その他、IER0はIRR3と同様である。
メモリ空間アドレス1024h(I/O空間アドレス24h)のビット0〜3は未使用であり、常に0である。なお、R/WはRになり、初期値は0になっている。
なお、割込要求レジスタ(IER)に割込要求信号がラッチされた状態で割込を許可すると、すぐにCPUコアに対して割込要求信号を出力する。
[割込優先順位レジスタ]
次に、図24で示した内部機能レジスタにおける割込許可レジスタについて図33を用いて説明する。割込優先順位レジスタは、割込要因(INT、CTC0、CTC1、CTC2)の優先順位を設定するレジスタである。
図33に示すように、割込優先順位レジスタでは、メモリ空間アドレス1025h(I/O空間アドレス25h)のビット7〜6にはシンボルIPR3が対応付けされている。IPR3では、CTC2優先順位の設定が行われる。そして、00のときに優先順位が最も低いレベル0に設定される。また、01のときに00よりも優先順位が高く、かつ10よりも優先順位が低いレベル1に設定される。また、10のときに01よりも優先順位が高く、かつ11よりも優先順位が低いレベル2に設定される。また、11のときに最も優先順位が高いレベル3に設定される。なお、R/WはR/Wになり、初期値は0になっている。
メモリ空間アドレス1025h(I/O空間アドレス25h)のビット5〜4にはシンボルIPR2が対応付けされている。IPR2では、CTC1優先順位の設定が行われる。その他、IPR2はIPR3と同様である。
メモリ空間アドレス1025h(I/O空間アドレス25h)のビット3〜2にはシンボルIPR1が対応付けされている。IPR1では、CTC0優先順位の設定が行われる。その他、IPR1はIPR3と同様である。
メモリ空間アドレス1025h(I/O空間アドレス25h)のビット1〜0にはシンボルIPR0が対応付けされている。IPR0では、INT優先順位の設定が行われる。その他、IPR0はIPR3と同様である。
なお、複数の割込要因が同時に発生した場合は、優先順位の高い割込要因がCPUコアに対して割込要求信号を出力する。優先順位は4レベルあり、レベル3が最上位、レベル0が最下位である。また、同レベルであれば優先順の高い方からINT,CTC0,CTC1,CTC2の順となっている。
[乱数の動作]
乱数回路として、8ビット固定長乱数回路、16ビット固定長乱数回路、8ビット可変長乱数回路、16ビット可変長乱数回路を備えている。システムリセット後の1週目のスタート値はシステムリセットの都度、更新される。乱数列のパターンは自動更新される。16ビット固定長乱数はビット並びを転置することができる。16ビット固定長乱数は動作クロックをMCLKの1/2又はEXCLKの1/2から選択できる。3本の乱数外部ラッチ端子により、乱数値をラッチすることができる。乱数回路の異常を判定する機能を搭載している。
8ビット固定長乱数回路と16ビット固定長乱数回路は、システムリセットまたはWDTリセット後に自動的に起動する。また、8ビット可変長乱数回路と16ビット可変長乱数回路は、システムリセットまたはWDTリセット後は停止しており、最大値を設定すると起動する。また、乱数回路はシステムリセットまたはWDTリセットで初期化される。定期リセット、イリーガルアクセスリセットの発生では乱数機能には影響を与えず動作が継続する。
乱数回路は、初期値をスタート値としてとびとびの値をとりながら乱数値を更新し、すべての値を重複することなく1回ずつ出現させる。すべての値が出現した後は別な値をスタート値とし、かつ数列の出現パターンを別なパターンに変更し、再び全ての値をとびとびの値をとりながら更新していく。
乱数値は、乱数クロック(MCLKの1/2又はEXCLKの1/2)の立ち上がりで更新される。乱数外部ラッチ0〜2端子(EXLATCH0〜2)へ入力される信号により、乱数値をラッチすることができる。
外部ラッチ信号モードレジスタ(RDEXLM)によりラッチデータレジスタの保持又は更新を設定することができる。RDEXLMに0(保持)を設定すると、乱数ラッチデータレジスタがクリアされた状態でEXLATCH0〜2へ信号が入力された場合のみ、乱数ラッチデータレジスタに乱数値がラッチされる。乱数ラッチデータレジスタにラッチデータがある状態であるときは、EXLATCH0〜2へ信号が入力されて乱数ラッチデータレジスタが更新されずそれまでのラッチデータが保持される。RDEXLMに1(更新)を設定すると、EXLATCH0〜2へ信号が入力される都度、ラッチデータは更新される。
[レジスタ構成について]
次にレジスタ構成について説明する。
[汎用レジスタについて]
図34に示すように、レジスタバンクとして、バンク0とバンク1からなる2つのレジスタバンクを備えている。各レジスタバンクには、8つの8ビット汎用レジスタW,A,B,C,D,E,H,L及び2つの16ビット汎用レジスタIX,IYを備えている。W,A,B,C,D,E,H,Lは8ビットの転送や演算などに用いられる。また、これらのレジスタを結合してWA,BC,DE,HLとして用いることもできる。WA,BC,DE,HL,IX,IYは、16ビットの転送や演算になどに用いることができる。汎用レジスタは、システムリセット、WDTリセット、定期リセット、イリーガルアクセスリセット時00h又は0000hに初期化される。
[プログラムステータスワード(PSW)]
次に図34で示すPSWについて図35を用いて説明する。PSWは、命令の演算結果や実行結果の状態を保持するレジスタであり、8種類のフラグで構成されている。PSWは、前述したCPUコアとの初期化にともない、システムリセット、WDTリセット、定期リセット、イリーガルアクセスリセット時に00hにクリアされる。
図35に示すように、PSWでは、ビット7にシンボルJF(ジャンプステータスフラグ)が対応付けされている。JFは、1バイト長のJRS命令などで使用するフラグである。図中の例で示すように、命令により、ゼロフラグがセットされる場合とキャリーフラグがセットされる場合とがある。また、図中の例で示すように、INC、DEC命令の場合にはキャリーフラグは変化しないが、キャリーフラグがセットされる条件でジャンプステータスフラグがセットされる。
また、ビット6にZF(ゼロフラグ)が対応付けされている。ZFは、演算結果又は転送データが00h(8ビットの場合)又は0000h(16ビットの場合)で1にセットされ、その他の場合は0にクリアされる。交換命令(XCH dst,src)では、dstに格納される値が0のときにセットされる。
また、ビット5にCF(キャリーフラグ)が対応付けされている。CFは、演算時のキャリー又はボローがセットされる。除算命令の場合は、0除算又は除算結果が0100h以上の場合に1がセットされる。INC,DEC命令の場合は、キャリーまたはボローが生じる場合でもキャリーフラグは変化せず値を保持する。
また、ビット4にHF(ハーフキャリーフラグ)が対応付けされている。HFは、8ビット演算時に4ビット目へのキャリー又はボローがセットされる。
また、ビット3にSF(サインフラグ)が対応付けされている。SFは、演算結果のMBSが1のときに1にセットされ、それ以外の場合0にクリアされる。
また、ビット2にVF(オーバーフローフラグ)が対応付けされている。VFは、演算結果にオーバーフローが生じたときに1にセットされ、それ以外のときに0にクリアされる。
また、ビット1にRBS(レジスタバンクセレクタ)が対応付けされている。RBSは、汎用レジスタで選択されているバンクを示している。
また、ビット0にIMF(割込マスタ許可フラグ)が対応付けされている。IMFは、DI命令でIMF=0となり、マスカブル割込の受付が禁止される。EI命令でIMF=1となり、マスカブル割込の受付が許可される。
[マイクロコンピュータの起動処理の動作の概要]
上記のように構成されたマイクロコンピュータでは、電力が供給され、リセット回路49、リセット回路95からリセット信号が入力されると、システムリセットを行う。
このシステムリセットにより、マイクロコンピュータの各機能がリセット要因による動作の変化(図23参照)として説明した動作を行う。例えば、CPUコアの初期化が行われ、それに伴いPSWが00hにクリアされる。従って、IMFが0となり、割込禁止状態が設定される。また、起動処理の実行によって初期化要因にシステムリセットが定められている内部機能レジスタ(CTCコントロールレジスタや乱数回路に関わるレジスタなど)に初期値が設定される(図24参照)。
さらに、HWパラメータを参照して各種機能の設定を行う(図16参照)。ここで、HWパラメータにおいて、マイクロコンピュータが起動しない条件(図22参照)が満たされるか否かを判定し、満たされている場合にはマイクロコンピュータは起動しない。
その後、設定されたシステムリセット時間が経過した後に、ユーザプログラム(図14における「プログラム/データ」に格納されているプログラム)に従って図5及び図6に示す初期設定処理を実行する。
[上記実施形態の効果]
上記実施形態では、RAMの内容が異常か否かによってRAMの異なる領域を初期化する(本例では、図7のSb2でNの場合にSb3の処理を実行してSb4の処理を実行し、Sb2でYの場合にSb3の処理を実行せずにSb4の処理を実行する部分)。
よって、RAMの初期化を好適に実行することができる。
上記実施形態では、RAMの内容が正常でないと判定したときに設定キーがオンでないときでもRAMを初期化する(本例では、図6のSa23及びSa24の処理を実行する部分)。
よって、RAMの記憶内容が正常でない状態で制御が行われることを防止できる。
上記実施形態では、RAMの内容が正常でないと判定したときに設定値を含む領域を初期化し、RAMの内容が正常であると判定したときに設定値を含む領域を初期化する(本例では、図7のSb2でNの場合にSb3の処理を実行してSb4の処理を実行し、Sb2でYの場合にSb3の処理を実行せずにSb4の処理を実行する部分)。
よって、設定値を好適に保護できる。
上記実施形態では、RAMの内容が異常であるときにRAM異常フラグをセットし、初期設定処理でRAM異常フラグにもとづいてRAMの内容が異常であるか否かを判定する(本例では、図6のSa25及び図5のSa16の処理を実行する部分)。
よって、記憶手段の記憶内容が正常でない状態で制御が再開することを防止できる。
上記実施形態では、RAMの初期化を行うときには割込禁止に設定する(本例では、図5のSa1及び図9のSc1の処理を実行する部分)。
よって、初期化を行っているときに他の処理が行われることを防止できる。
上記実施形態では、出力ポートを初期化する前に割込禁止に設定する(本例では、図12のSm3の前に割込禁止を実行する部分)。
よって、意図しないデータが出力されることを防止することができる。
上記実施形態では、設定変更処理が終了した後に遊技毎のRAMの初期化を実行する前の処理からメイン処理の実行を開始する(本例では、設定変更処理が終了した後に図9のSc1の処理から実行を開始する部分)。
よって、設定変更処理での初期化に加え、遊技毎の初期化を実行できる。
上記実施形態では、初期設定処理でタイマ割込の設定を行った後に割込許可し、ベクタテーブルに設定した値が0000h、8000h〜HPRGEND以外の値の場合にはマイクロコンピュータの起動を制限する(本例では、図5及び図6、図22に示す部分)。
よって、意図しない割込処理が実行されることを事前に防止することができる。
上記実施形態では、設定変更処理が終了した後に遊技毎のRAMの初期化を実行する前の処理からメイン処理の実行を開始する(本例では、設定変更処理が終了した後に図9のSc1の処理から実行を開始する部分)。
よって、一遊技の遊技毎の初期化を好適な状態で実行できる。
上記実施形態では、設定変更処理の初期化では使用中スタック領域を除く全ての領域(未使用領域および未使用スタック領域を含む)を初期化し、遊技毎の初期化では未使用領域および未使用スタック領域を初期化する(本例では、図7のSb4の処理及び図9のSc3の処理を実行する部分)。
よって、確実に初期化を行うことができる。
上記実施形態では、設定変更処理中に割込処理を実行するとともに、設定変更処理が終了した後に遊技毎のRAMの初期化を実行する前からメイン処理を開始する(本例では、図7のSb6の処理を実行する部分)。
よって、設定変更処理中に実行された割込処理により書き換えられたデータを遊技毎の初期化により初期化することができる。
上記実施形態では、マイクロコンピュータの起動において割込を禁止するとともに、初期設定処理において割込を禁止する(本例では、マイクロコンピュータの起動時にPSWが00hにクリアされてIMFが0となり、割込禁止状態に設定するとともに、初期設定処理において図35のDI命令を実行することにより図5のSa1の処理を実行する部分)。
よって、意図しない割込が発生することを防止できる。
上記実施形態では、初期設定処理でタイマ割込の設定を行った後に割込許可する(本例では、図6のSa20及びSa22の処理を実行する部分)。
よって、意図しない割込が発生することを防止できる。
上記実施形態では、CTCがカウント動作中であってもTMCNT0〜2を設定すると、CTC0〜2とTMCNT0〜2の設定内容で更新され、カウント中のタイマ値はCTC0〜2の設定値から再度ダウンカウントする(本例では、図27及び図28に示す部分)。
よって、意図しない割込処理が実行されることを事前に防止することができる。
上記実施形態では、システムリセットが行われて割込コントローラが初期化されると、割込要求レジスタ、割込許可レジスタ、割込優先順位レジスタに初期値が設定される(本例では、図23及び図29に示す部分)。
よって、意図しない設定で割込処理が実行されることを事前に防止することができる。
上記実施形態では、プログラムエンドアドレスの機能を使用しているときにおいて、シンボルがHPRGENDであるときで、設定内容がプログラムエンドアドレスのときは、HPRGEND1〜A6FFhの領域へのアクセスがあったときにイリーガルアクセスリセットが発生する。(本例では、図21に示す部分)。
よって、不正なプログラムの実行を防止することができる。
[その他、変形例]
上記実施形態では、メイン制御部41による初期設定処理、タイマ割込処理(メイン)、電断処理(メイン)に本発明を適用する例を挙げたが、サブ制御部91による初期設定処理(サブ)、タイマ割込処理(サブ)、電断処理(サブ)に本発明を適用してもよい。
[初期化条件について]
上記実施形態では、設定キースイッチ37が操作されたときに初期化を行うようにしたが、他の人為的操作に基づく初期化条件が成立したときに初期化を実行してもよい。例えば、初期化専用のスイッチを設け、このスイッチが操作されたときに初期化を実行することが挙げられる。また、パチンコ遊技機に本発明を適用するときには、クリアスイッチが操作されたときに初期化を実行することが挙げられる。
[一単位の遊技について]
上記実施形態では、スロットマシンにおける1ゲームを一単位の遊技としたが、他の遊技機における1ゲームを一単位の遊技としてもよい。例えば、パチンコ遊技機のように、1回の図柄の変動表示を一単位の遊技とすることが挙げられる。また、いわゆるアレパチ遊技機や雀球遊技機のように、所定個数の遊技球を発射したことを一単位の遊技とすることが挙げられる。
[遊技機について]
以上のように、上記の実施の形態では、スロットマシンを例に挙げて説明したが、例えば遊技球を用いるパチンコ遊技機に上記の実施形態で示した構成を適用して、請求項に係る発明を実現することが可能である。
また、上記の実施の形態では、メダル並びにクレジットを用いて賭数を設定するスロットマシンを例に挙げて説明したが、これに限定されることなく、例えば、パチンコ遊技機で用いられている遊技球を用いて賭数を設定するスロットマシンや、クレジットのみを使用して賭数を設定する完全クレジット式のスロットマシンに上記の実施の形態で示した構成を適用して、請求項に係る発明を実現することが可能である。遊技球を遊技媒体として用いる場合は、例えば、メダル1枚分を遊技球5個分に対応させた場合に、上記の実施の形態で賭数として3を設定する場合は、15個の遊技球を用いて賭数を設定するものに相当する。
また、本発明の遊技機は、メダル及び遊技球などの複数種類の遊技用価値のうちのいずれか1種類のみを用いるものに限定されるものでなく、例えばメダル及び遊技球などの複数種類の遊技用価値を併用できるものであってもよい。すなわち、メダル及び遊技球などの複数種類の遊技用価値のいずれを用いても賭数を設定してゲームを行うことが可能であり、かつ入賞の発生によってメダル及び遊技球などの複数種類の遊技用価値のいずれをも払い出し得る遊技機も本発明の遊技機に含まれるものである。