本発明が適用された遊技機の一例であるスロットマシンの実施例を図面を用いて説明すると、本実施例のスロットマシン1は、図2に示すように、前面が開口する筐体1aと、この筐体1aの側端に回動自在に枢支された前面扉1bと、から構成されている。
本実施例のスロットマシン1の筐体1aの内部には、図2に示すように、外周に複数種の図柄が配列されたリール2L、2C、2R(以下、左リール、中リール、右リール)が水平方向に並設されており、図1に示すように、これらリール2L、2C、2Rに配列された図柄のうち連続する3つの図柄が前面扉1bに設けられた透視窓3から見えるように配置されている。
リール2L、2C、2Rの外周部には、図3に示すように、それぞれ「黒7」、「網7(図中網掛け7)」、「白7」、「BAR」、「リプレイ」、「プラム」、「スイカ」、「チェリー」、「ベル」、「オレンジ」といった互いに識別可能な複数種類の図柄が所定の順序で、それぞれ21個ずつ描かれている。リール2L、2C、2Rの外周部に描かれた図柄は、前面扉1bの略中央に設けられた透視窓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には、図1に示すように、メダルを投入可能なメダル投入部4、メダルが払い出されるメダル払出口9、クレジット(遊技者所有の遊技用価値として記憶されているメダル数)を用いて、その範囲内において遊技状態に応じて定められた規定数の賭数のうち最大の賭数(本実施例ではいずれの遊技状態においても3)を設定する際に操作されるMAXBETスイッチ6、クレジットとして記憶されているメダル及び賭数の設定に用いたメダルを精算する(クレジット及び賭数の設定に用いた分のメダルを返却させる)際に操作される精算スイッチ10、ゲームを開始する際に操作されるスタートスイッチ7、リール2L、2C、2Rの回転を各々停止する際に操作されるストップスイッチ8L、8C、8R、演出に用いるための演出用スイッチ56が遊技者により操作可能にそれぞれ設けられている。
尚、本実施例では、回転を開始した3つのリール2L、2C、2Rのうち、最初に停止するリールを第1停止リールと称し、また、その停止を第1停止と称する。同様に、2番目に停止するリールを第2停止リールと称し、また、その停止を第2停止と称し、3番目に停止するリールを第3停止リールと称し、また、その停止を第3停止あるいは最終停止と称する。
また、前面扉1bには、図1に示すように、画像を表示可能な液晶表示器51、クレジットとして記憶されているメダル枚数が表示されるクレジット表示器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の内側には、図2に示すように、所定のキー操作により後述するエラー状態及び後述する打止状態を解除するためのリセット操作を検出するリセットスイッチ23(図4参照)、後述する設定値の変更中や設定値の確認中にその時点の設定値が表示される設定値表示器24、ボーナス終了時に打止状態(リセット操作がなされるまでゲームの進行が規制される状態)に制御する打止機能の有効/無効を選択するための打止スイッチ36a、ボーナス終了時に自動精算処理(クレジットとして記憶されているメダルを遊技者の操作によらず精算(返却)する処理)に制御する自動精算機能の有効/無効を選択するための自動精算スイッチ36b、メダル投入部4から投入されたメダルの流路を、筐体1a内部に設けられた後述のホッパータンク34a側またはメダル払出口9側のいずれか一方に選択的に切り替えるための流路切替ソレノイド30(図4参照)、メダル投入部4から投入され、ホッパータンク34a側に流下したメダルを検出する投入メダルセンサ31(図4参照)を有するメダルセレクタ29、前面扉1bの開放状態を検出するドア開放検出スイッチ25(図4参照)が設けられている。
筐体1a内部には、図2に示すように、前述したリール2L、2C、2R、リールモータ32L、32C、32R(図4参照)、各リール2L、2C、2Rのリール基準位置をそれぞれ検出可能なリールセンサ33L、33C、33R(図4参照)からなるリールユニット2、外部出力信号を出力するための外部出力基板1000(図4参照)、メダル投入部4から投入されたメダルを貯留するホッパータンク34a、ホッパータンク34aに貯留されたメダルをメダル払出口9より払い出すためのホッパーモータ34b(図4参照)、ホッパーモータ34bの駆動により払い出されたメダルを検出する払出センサ34c(図4参照)からなるホッパーユニット34、電源ボックス100が設けられている。
ホッパーユニット34の側部には、ホッパータンク34aから溢れたメダルが貯留されるオーバーフロータンク35が設けられている。オーバーフロータンク35の内部には、メダルの貯留量が所定量以上となったこと、すなわちオーバーフロータンク35が満タン状態となったことを検出する満タンセンサ35aが設けられている。
電源ボックス100の前面には、図2に示すように、設定変更状態または設定確認状態に切り替えるための設定キースイッチ37、通常時においてはエラー状態や打止状態を解除するためのリセットスイッチとして機能し、設定変更状態においては後述する内部抽選の当選確率(出玉率)の設定値を変更するための設定スイッチとして機能するリセット/設定スイッチ38、電源をon/offする際に操作される電源スイッチ39が設けられている。
尚、電源ボックス100は、筐体1aの内部に設けられており、さらに前面扉1bは、店員等が所持する所定のキー操作により開放可能な構成であるため、これら電源ボックス100の前面に設けられた設定キースイッチ37、リセット/設定スイッチ38、電源スイッチ39は、キーを所持する店員等の者のみが操作可能とされ、遊技者による操作ができないようになっている。また、所定のキー操作により検出されるリセットスイッチ23も同様である。特に、設定キースイッチ37は、キー操作により前面扉1bを開放したうえで、さらにキー操作を要することから、遊技場の店員のなかでも、設定キースイッチ37の操作を行うキーを所持する店員のみ操作が可能とされている。
本実施例のスロットマシン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単位の制御(ゲーム制御)は、前回のゲームの終了に伴う全ての制御が完了したときに開始し、当該ゲームの終了に伴う全ての制御が完了したときに終了する。
また、本実施例では、3つのリールを用いた構成を例示しているが、リールが1つのみ用いた構成、2つのリールを用いた構成、4つ以上のリールを用いた構成としても良く、2以上のリールを用いた構成においては、2以上の全てのリールに導出された表示結果の組合せに基づいて入賞を判定する構成とすれば良い。また、本実施例では、物理的なリールにて可変表示装置が構成されているが、液晶表示器などの画像表示装置にて可変表示装置が構成されていても良い。
また、本実施例におけるスロットマシン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コマ以内に配置されている図柄を入賞ライン上に表示させることができる。
図4は、スロットマシン1の構成を示すブロック図である。スロットマシン1には、図4に示すように、遊技制御基板40、演出制御基板90、電源基板101が設けられており、遊技制御基板40によって遊技状態が制御され、演出制御基板90によって遊技状態に応じた演出が制御され、電源基板101によってスロットマシン1を構成する電気部品の駆動電源が生成され、各部に供給される。
電源基板101には、外部からAC100Vの電源が供給されるとともに、このAC100Vの電源からスロットマシン1を構成する電気部品の駆動に必要な直流電圧が生成され、遊技制御基板40及び遊技制御基板40を介して接続された演出制御基板90に供給されるようになっている。尚、演出制御基板に対して電源を供給する電源供給ラインが遊技制御基板40を介さず、電源基板101から演出制御基板90に直接接続され、電源基板101から演出制御基板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、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は、遊技の進行に関する処理を行うととともに、遊技制御基板40に搭載された制御回路の各部を直接的または間接的に制御する。メイン制御部41では、後述のCPU41aがROM41bに格納されているプログラムに従って制御を実行するので、以下、メイン制御部41が実行する(または、処理を行う)ということは、具体的には、CPU41aがプログラムに従って制御を実行することである。このことは、後述するサブ制御部91についても同様である。ただし、後述するように、スロットマシン1への電源投入時やシステムリセット発生時には、メイン制御部41は、プログラム管理エリアの設定内容に従って、内部リセット動作の設定や搭載回路の設定、レジスタの設定などを行うのであるが、この設定動作については、メイン制御部41は、プログラムによらず、ハードウェア的に実行する。
制御用クロック生成回路42は、メイン制御部41の外部にて、所定周波数の発振信号となる制御用クロックCCLKを生成する。制御用クロック生成回路42により生成された制御用クロックCCLKは、クロック回路502に供給される。乱数用クロック生成回路43は、メイン制御部41の外部にて、制御用クロックCCLKの発振周波数とは異なる所定周波数の発振信号となる乱数用クロックRCLKを生成する。乱数用クロック生成回路43により生成された乱数用クロックRCLKは、乱数回路508a、508bに供給される。一例として、乱数用クロック生成回路43により生成される乱数用クロックRCLKの発振周波数は、制御用クロック生成回路42により生成される制御用クロックCCLKの発振周波数以下となるようにすれば良い。あるいは、乱数用クロック生成回路43により生成される乱数用クロックRCLKの発振周波数は、制御用クロック生成回路42により生成される制御用クロックCCLKの発振周波数よりも高周波となるようにしても良い。
尚、本実施例では、乱数用クロック生成回路43から専用の乱数用クロックRCLKを乱数回路508a、508bに入力する場合を示しているが、そのような態様に限られない。例えば、専用のクロックを用いるのではなく、制御用クロック生成回路42からの制御用クロックCCLKをメイン制御部41内部で乱数回路508a、508bに入力させるように構成しても良い。この場合、例えば、制御用クロックCCLKを分周した信号を用いて乱数回路508a、508b内蔵の乱数カウンタ(後述する乱数生成回路525a、525b)を更新させるようにしても良い。また、この場合、乱数用クロック生成回路43は遊技制御基板40上に設けなくても良い。
スイッチ検出回路44は、遊技制御基板40に直接または電源基板101を介して接続されたスイッチ類から入力された検出信号を取り込んでメイン制御部41に伝送する。モータ駆動回路45は、メイン制御部41から出力されたモータ駆動信号をリールモータ32L、32C、32Rに伝送する。ソレノイド駆動回路46は、メイン制御部41から出力されたソレノイド駆動信号を流路切替ソレノイド30に伝送する。LED駆動回路47は、メイン制御部41から出力されたLED駆動信号を遊技制御基板40に接続された各種表示器やLEDに伝送する。電断検出回路48は、スロットマシン1に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をメイン制御部41に対して出力する。リセット回路49は、電源投入時または電源遮断時などの電源が不安定な状態においてメイン制御部41にシステムリセット信号を与える。
図5は、遊技制御基板40に搭載されたメイン制御部41の構成例を示している。図5に示すメイン制御部41は、図5に示すメイン制御部41は、1チップマイクロコンピュータであり、外部バスインターフェイス501と、クロック回路502と、照合用ブロック503と、固有情報記憶回路504と、演算回路505と、リセット/割込コントローラ506と、CPU(Central Processing Unit)56と、ROM(Read Only Memory)54と、RAM(Random Access Memory)55と、フリーランカウンタ回路507と、乱数回路508a、508bと、タイマ回路509と、割込コントローラ510と、パラレル入力ポート511と、シリアル通信回路512と、パラレル出力ポート513と、アドレスデコード回路514とを備えて構成される。
リセット/割込コントローラ506は、外部割込要求や、内蔵の周辺回路(例えば、シリアル通信回路512、乱数回路508a、508b、タイマ回路509)からの割込要求を制御する回路である。リセット/割込コントローラ506は、指定エリア外走行禁止(IAT)回路506aとウォッチドッグタイマ(WDT)506bとを備える。IAT回路506aは、ユーザプログラムが指定エリア内で正しく実行されているか否かを監視する回路であり、指定エリア外でユーザプログラムが実行されたことを検出するとIAT発生信号を出力する機能を備える。また、ウォッチドッグタイマ506bは、設定期間ごとにタイムアウト信号を発生させる機能を備える。
リセット/割込コントローラ506が制御するリセットには、システムリセットとユーザリセットが含まれている。システムリセットは、外部システムリセット端子XSRSTに一定の期間にわたりローレベル信号が入力されたときに発生するリセットである。尚、本実施例では、リセット設定(KRES)の設定により、ウォッチドッグタイマ(WDT)のタイムアウト信号が発生したときや、指定エリア外走行禁止(IAT)が発生したときにも、システムリセットが発生することがある。ユーザリセットは、ウォッチドッグタイマ(WDT)のタイムアウト信号が発生したことや、指定エリア外走行禁止(IAT)が発生したことなど、所定の要因により発生するリセットである。
リセット/割込コントローラ506が制御する割込には、ノンマスカブル割込NMIとマスカブル割込INTが含まれている。ノンマスカブル割込NMIは、CPU41aの割込禁止状態でも無条件に受け付けられる割込であり、外部ノンマスカブル割込端子XNMI(入力ポートPI6と兼用)に一定の期間にわたりローレベル信号が入力されたときに発生する割込である。マスカブル割込INTは、CPU41aの設定命令により、割込要求の受け付けを許可/禁止できる割込であり、優先順位設定による多重割込の実行が可能である。マスカブル割込INTの要因としては、外部マスカブル割込端子XINT(入力ポートPI5と兼用)に一定の期間にわたりローレベル信号が入力されたこと、タイマ回路509にてタイムアウトが発生したこと、シリアル通信回路512にてデータ受信またはデータ送信による割込要因が発生したこと、乱数回路508a、508bにて乱数値となる数値データの取込による割込要因が発生したことなど、複数種類の割込要因があらかじめ定められていれば良い。
外部バスインターフェイス501は、メイン制御部41を構成するチップの外部バスと内部バスとのインターフェイス機能や、アドレスバス、データバス及び各制御信号の方向制御機能などを有するバスインターフェイスである。例えば、外部バスインターフェイス501は、メイン制御部41に外付けされた外部メモリや外部入出力装置などに接続され、これらの外部装置との間でアドレス信号やデータ信号、各種の制御信号などを送受信するものであれば良い。
クロック回路502は、クロック回路502は、例えば制御用外部クロック端子EXに入力される発振信号を2分周することなどにより、内部システムクロックSCLKを生成する回路である。尚、生成された内部システムクロックは、外部出力端子(CLKO端子)から外部に出力される。
照合用ブロック503は、外部の照合機と接続し、チップの照合を行う機能を備える。演算回路505は、乗算及び除算を行う回路である。
固有情報記憶回路504は、メイン制御部41の内部情報となる複数種類の固有情報を記憶する回路である。一例として、固有情報記憶回路504は、ROMコード、チップ個別ナンバー、IDナンバーといった3種類の固有情報を記憶する。ROM41bコードは、ROM41bの所定領域における記憶データから生成される4バイトの数値であり、生成方法の異なる4つの数値が準備されれば良い。チップ個別ナンバーは、メイン制御部41の製造時に付与される4バイトの番号であり、メイン制御部41を構成するチップ毎に異なる数値を示している。IDナンバーは、メイン制御部41の製造時に付与される8バイトの番号であり、メイン制御部41を構成するチップ毎に異なる数値を示している。ここで、チップ個別ナンバーはユーザプログラムから読み取ることができる一方、IDナンバーはユーザプログラムから読み取ることができないように設定されていれば良い。尚、固有情報記憶回路504は、例えばROM41bの所定領域を用いることなどにより、ROM41bに含まれるようにしても良い。あるいは、固有情報記憶回路504は、例えばCPU41aの内蔵レジスタを用いることなどにより、CPU41aに含まれるようにしても良い。
CPU41aは、ROM41bから読み出した制御コードに基づいてユーザプログラム(ゲーム制御用の遊技制御処理プログラム)を実行することにより、スロットマシン1における遊技制御を実行する制御用CPUである。こうした遊技制御が実行されるときには、CPU41aがROM41bから固定データを読み出す固定データ読出動作や、CPU41aがRAM41cに各種の変動データを書き込んで一時記憶させる変動データ書込動作、CPU41aがRAM41cに一時記憶されている各種の変動データを読み出す変動データ読出動作、CPU41aが外部バスインターフェイス501やパラレル入力ポート511、シリアル通信回路512などを介してメイン制御部41の外部から各種信号の入力を受け付ける受信動作、CPU41aが外部バスインターフェイス501やシリアル通信回路512、パラレル出力ポート513などを介してメイン制御部41の外部へと各種信号を出力する送信動作等も行われる。
ROM41bには、ユーザプログラム(ゲーム制御用の遊技制御処理プログラム)を示す制御コードや固定データ等が記憶されている。
RAM41cは、ゲーム制御用のワークエリアを提供する。ここで、RAM41cの少なくとも一部は、バックアップ電源によってバックアップされているバックアップRAMであれば良い。すなわち、スロットマシン1への電力供給が停止しても、所定期間はRAM41cの少なくとも一部の内容が保存される。
フリーランカウンタ回路507として、8ビットのフリーランカウンタを4チャネル搭載している。
乱数回路508aは、8ビット乱数を発生させる回路であり、乱数回路508bは、16ビット乱数を発生させる回路である。本実施例では、乱数回路508a、508bのうち16ビット乱数回路508bが生成するハードウェア乱数が、後述する内部抽選用の乱数及びフリーズ抽選用の乱数として用いられる。尚、図5に示す例では、8ビット乱数を生成する乱数回路508aと、16ビット乱数を発生させる乱数回路508bと、が1つずつ図示されているが、メイン制御部41は、8ビット乱数を生成する乱数回路508aと、16ビット乱数を発生させる乱数回路508bと、をそれぞれ4回路(4チャネル)ずつ搭載している。また、本実施例では、8ビット乱数を生成する乱数回路508aの4つのチャネルをそれぞれRS0〜RS3と表現する場合があり、16ビット乱数を生成する乱数回路508bの4つのチャネルをそれぞれRL0〜RL3と表現する場合がある。
タイマ回路509は、8ビットプログラマブルタイマであり、メイン制御部41は、タイマ回路509として、8ビットのカウンタを3チャネル備える。本実施例では、タイマ回路509を用いてユーザプログラムによる設定により、リアルタイム割込要求や時間計測を行うことが可能である。
割込コントローラ510は、PI5/XINT端子からの外部割込要求や、内蔵の周辺回路(例えば、シリアル通信回路512、乱数回路508a、508b、タイマ回路509)からの割込要求を制御する回路である。
パラレル入力ポート511は、8ビット幅の入力専用ポート(PIP)を内蔵する。また、図5に示すメイン制御部41が備えるパラレル出力ポート513は、11ビット幅の出力専用ポート(POP)を内蔵する。
シリアル通信回路512は、外部に対する入出力において非同期シリアル通信を行う回路である。尚、メイン制御部41は、シリアル通信回路512として、送受信両用の1チャネルの回路と、送信用のみの3チャネルの回路とを備える。
アドレスデコード回路514は、メイン制御部41の内部における各機能ブロックのデコードや、外部装置用のデコード信号であるチップセレクト信号のデコードを行うための回路である。チップセレクト信号により、メイン制御部41の内部回路、あるいは、周辺デバイスとなる外部装置を、選択的に有効動作させて、CPU41aからのアクセスが可能となる。
図6は、メイン制御部41におけるアドレスマップの一例を示している。図6に示すように、アドレス0000H〜アドレス2FFFHの領域は、メイン制御部41のROM41bに割り当てられ、プログラムコード/データエリア(ユーザプログラムやデータを格納するエリア)とプログラム管理エリアとを含んでいる。図7は、ROM41bにおけるプログラム管理エリアの主要部分について、用途や内容の一例を示している。アドレスF000H〜アドレスF3FFHの領域は、メイン制御部41のRAM41cに割り当てられている。アドレスFE00H〜アドレスFEBFHの領域は、メイン制御部41の内蔵レジスタに割り当てられる内蔵レジスタエリアである。図8〜図10は、内蔵レジスタエリアの主要部分について、用途や内容の一例を示している。アドレスFED0H〜アドレスFEFDHの領域は、アドレスデコード回路514に割り当てられるXCS、XCSEデコードエリアである。
プログラム管理エリアは、メイン制御部41がシステムリセット時に内部リセット動作の設定や乱数回路508a、508bの設定など各種設定を行うために必要な情報を格納する記憶領域である。図7に示すように、プログラム管理エリアには、ヘッダ(KHDR)、プログラムコードエンドアドレス(KPCE)、プログラムコードスタートアドレス2(KPCS2)、プログラムコードエンドアドレス2(KPCE2)、リセット設定(KRES)、16ビット乱数初期設定1(KRL1)、16ビット乱数初期設定2(KRL2)、16ビット乱数初期設定3(KRL3)、8ビット乱数初期設定1(KRS1)、8ビット乱数初期設定2(KRS2)、セキュリティ時間設定(KSES)、乱数クロック監視設定(KRCS)などが、含まれている。また、図8〜図10に示すように、内蔵レジスタエリアには、内部情報レジスタ(CIF)や、乱数回路508a、508bで用いる各種レジスタなどが、含まれている。
プログラム管理エリアに記憶されるヘッダ(KHDR)は、プログラム管理エリアのスタートを示す8バイトのコード列の設定、及びメイン制御部41における内部データの読出設定を示す。図11は、ヘッダ(KHDR)における設定データと動作との対応関係を例示している。ここで、メイン制御部41では、ROM読出防止機能と、バス出力マスク機能とを設定可能である。ROM読出防止機能は、メイン制御部41が備えるROM41bの記憶データについて、読出動作を許可または禁止する機能であり、読出禁止に設定された状態では、ROM41bの記憶データを読み出すことができない。バス出力マスク機能は、外部バスインターフェイス501に接続された外部装置からメイン制御部41の内部データに対する読出要求があった場合に、外部バスインターフェイス501におけるアドレスバス出力、データバス出力及び制御信号出力にマスクをかけることにより、外部装置から内部データの読み出しを不能にする機能である。図11に示すように、プログラム管理エリアのスタートを示す8バイトのコード列として設定する設定データに対応して、ROM読出防止機能やバス出力マスク機能の動作組合せが異なるように設定される。図11に示す設定データのうち、ROM読出が許可されるとともに、バス出力マスクが有効となる設定データは、バス出力マスク有効データともいう。また、ROM読出が禁止されるとともに、バス出力マスクが有効となる設定データ(全て「00H」)は、ROM読出禁止データともいう。ROM読出が許可されるとともに、バス出力マスクが無効となる設定データは、バス出力マスク無効データともいう。本実施例では、ROM読出禁止データが設定されており、ROM読出が禁止されるとともに、バス出力マスクが有効となる。
プログラム管理エリアに記憶されるプログラムコードエンドアドレス(KPCE)は、ユーザプログラムの0000Hから続くプログラムコードエリアの最終アドレスの設定を示す。図12(A)は、プログラムコードエンドアドレス(KPCE)における設定内容の一例を示している。
尚、本実施例では、アドレス0000H〜アドレス2FBFHまでのプログラムコード/データエリア内に2つのプログラムコードエリアを設定可能である。具体的には、1つ目のプログラムコードエリアは、アドレス0000Hからプログラムコードエンドアドレス(KPCE)で設定されるアドレスまでのエリアとして設定可能であり、2つ目のプログラムコードエリアは、プログラムコードスタートアドレス2(KPCS2)で設定されるアドレスからプログラムコードエンドアドレス2(KPCE2)で設定されるアドレスまでのエリアとして設定可能である。以下、1つ目のプログラムコードエリアに格納されるプログラムコードをプログラムコード1ともいい、2つ目のプログラムコードエリアに格納されるプログラムコードをプログラムコード2ともいう。
図12(A)に示すように、プログラムコードエンドアドレス(KPCE)のアドレス2FD3Hには、プログラムコード1の最終アドレスの下位アドレスが設定される。また、アドレス2FD4Hには、プログラムコード1の最終アドレスの上位アドレスが設定される。
プログラム管理エリアに記憶されるプログラムコードスタートアドレス2(KPCS2)は、ユーザプログラムが2つのブロックに分かれた場合の2つ目のプログラムコードエリアの先頭アドレスの設定を示す。図12(B)は、プログラムコードスタートアドレス2(KPCS2)における設定内容の一例を示している。
図12(B)に示すように、プログラムコードスタートアドレス2(KPCS2)のアドレス2FD5Hには、プログラムコード2の先頭アドレスの下位アドレスが設定される。また、アドレス2FD6Hには、プログラムコード2の先頭アドレスの上位アドレスが設定される。尚、プログラムコードエリアを2つに分けない場合には、プログラムコードスタートアドレス2(KPCS2)のアドレス2FD5H及びアドレス2FD6Hにそれぞれ0000Hを設定するようにすれば良い。
プログラム管理エリアに記憶されるプログラムコードエンドアドレス2(KPCE2)は、ユーザプログラムが2つのブロックに分かれた場合の2つ目のプログラムコードエリアの最終アドレスの設定を示す。図12(C)は、プログラムコードエンドアドレス2(KPCE2)における設定内容の一例を示している。
図12(C)に示すように、プログラムコードエンドアドレス2(KPCE2)のアドレス2FD7Hには、プログラムコード2の最終アドレスの下位アドレスが設定される。また、アドレス2FD8Hには、プログラムコード2の最終アドレスの上位アドレスが設定される。尚、プログラムコードエリアを2つに分けない場合には、プログラムコードエンドアドレス2(KPCE2)のアドレス2FD7H及びアドレス2FD8Hにそれぞれ0000Hを設定するようにすれば良い。
尚、図12に示すプログラムコードエンドアドレス(KPCE)、プログラムコードスタートアドレス2(KPCS2)及びプログラムコードエンドアドレス2(KPCE2)の設定内容は、IAT回路506aによってユーザプログラムが指定エリア内で正しく実行されているか否かを監視する際に参照される。すなわち、IAT回路506aは、0000Hからプログラムコードエンドアドレス(KPCE)で示されるアドレス、またはプログラムコードスタートアドレス2(KPCS2)で示されるアドレスからプログラムコードエンドアドレス2(KPCE2)で示されるアドレスまでの指定範囲でユーザプログラムが実行されているか否かを判定し、その指定範囲外でユーザプログラムが実行されていることを検出したことに基づいてIAT信号を出力する。
プログラム管理エリアに記憶されるリセット設定(KRES)は、内部リセット動作やウォッチドッグタイマ(WDT)506bの動作許可/禁止の設定を示す。図13は、リセット設定(KRES)における設定内容の一例を示している。
リセット設定(KRES)のビット[7]は、ウォッチドッグタイマ(WDT)506bからのタイムアウト信号を入力したことや、IATが発生したこと(IAT回路506aからのIAT信号を入力したとき)により内部リセットが発生したときの動作の設定を示している。図13に示す例において、リセット設定(KRES)のビット[7]におけるビット値が“0”であれば、タイムアウト信号やIAT信号を入力したときにユーザリセットが発生する。これに対して、リセット設定(KRES)のビット[7]におけるビット値が“1”であれば、タイムアウト信号やIAT信号を入力したときにシステムリセットが発生する。
リセット設定(KRES)のビット[6]は、ウォッチドッグタイマ(WDT)506bの起動方法の設定を示している。図13に示す例において、リセット設定(KRES)のビット[6]におけるビット値が“0”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことに基づいて自動的にウォッチドッグタイマ(WDT)506bが起動され時間計測が開始される。これに対して、リセット設定(KRES)のビット[6]におけるビット値が“1”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)によりウォッチドッグタイマ(WDT)506bが起動され時間計測が開始される。
リセット設定(KRES)のビット[5−4]は、ウォッチドッグタイマ(WDT)506bの基準クロック信号の設定を示している。図13に示す例では、リセット設定(KRES)のビット[5−4]に“00”が設定された場合には、基準クロック信号として215×TSCLKが選択される。また、リセット設定(KRES)のビット[5−4]に“01”が設定された場合には、基準クロック信号として219×TSCLKが選択される。また、リセット設定(KRES)のビット[5−4]に“10”が設定された場合には、基準クロック信号として222×TSCLKが選択される。また、リセット設定(KRES)のビット[5−4]に“11”が設定された場合には、基準クロック信号として225×TSCLKが選択される。尚、SCLKとは、メイン制御部41の内部システムクロックを示しており、TSCLKは、1/SCLKを示している。
リセット設定(KRES)のビット[3−0]は、ウォッチドッグタイマ(WDT)506bのタイムアウト時間の設定を示している。具体的には、ウォッチドッグタイマ(WDT)506bのタイムアウト時間は、リセット設定(KRES)のビット[5−4]で選択した基準クロックに、リセット設定(KRES)のビット[3−0]で設定した設定値を乗算した値となる。例えば、リセット設定(KRES)のビット[3−0]に“1000”を設定(すなわち、値「8」を設定)した場合、リセット設定(KRES)のビット[5−4]に“00”を設定した場合には、タイムアウト時間は215×TSCLK×8となり、リセット設定(KRES)のビット[5−4]に“01”を設定した場合には、タイムアウト時間は219×TSCLK×8となり、リセット設定(KRES)のビット[5−4]に“10”を設定した場合には、タイムアウト時間は222×TSCLK×8となり、リセット設定(KRES)のビット[5−4]に“11”を設定した場合には、タイムアウト時間は225×TSCLK×8となる。また、リセット設定(KRES)のビット[3−0]に“1111”を設定(すなわち、値「15」を設定)した場合、リセット設定(KRES)のビット[5−4]に“00”を設定した場合には、タイムアウト時間は215×TSCLK×15となり、リセット設定(KRES)のビット[5−4]に“01”を設定した場合には、タイムアウト時間は219×TSCLK×15となり、リセット設定(KRES)のビット[5−4]に“10”を設定した場合には、タイムアウト時間は222×TSCLK×15となり、リセット設定(KRES)のビット[5−4]に“11”を設定した場合には、タイムアウト時間は225×TSCLK×15となる。尚、図13には、内部システムクロックが10.0MHzと12.0MHzである場合のタイムアウト時間の値の具体例もそれぞれ示されている。
尚、ウォッチドッグタイマ(WDT)506bを使用しないように設定する場合、図13に示すように、リセット設定(KRES)のビット[3−0]に“0000”を設定するようにすれば良い。ただし、リセット設定(KRES)のビット[3−0]に“0000”がセットされてウォッチドッグタイマ(WDT)506bが使用禁止状態に設定された場合であっても、リセット設定(KRES)のビット[7]の値を設定することにより、システムリセットするかユーザリセットとするかの設定を行うことは可能である。
本実施例では、リセット設定(KRES)のビット[7]の設定値として“0”が設定されており、タイムアウト信号やIAT信号を入力したときにユーザリセットが発生する。また、リセット設定(KRES)のビット[6]の設定値として“0”が設定されており、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことに基づいて自動的にウォッチドッグタイマ(WDT)506bが起動され時間計測が開始される。また、リセット設定(KRES)のビット[5−4]の設定値として“11”、リセット設定(KRES)のビット[3−0]の設定値として“1111”が設定されており、ウォッチドッグタイマ(WDT)506bの基準クロック信号として225×TSCLKが選択され、タイムアウト時間は225×TSCLK×15となる。
プログラム管理エリアに記憶される16ビット乱数初期設定1(KRL1)、16ビット乱数初期設定2(KRL2)及び16ビット乱数初期設定3(KRL3)は、16ビット乱数回路508bの設定を示す。図14は、16ビット乱数初期設定1(KRL1)のにおける設定内容の一例を示している。また、図15は、16ビット乱数初期設定2(KRL2)のにおける設定内容の一例を示している。さらに、図16は、16ビット乱数初期設定3(KRL3)のにおける設定内容の一例を示している。
まず、図14を用いて、16ビット乱数初期設定1(KRL1)における設定内容を説明する。16ビット乱数初期設定1(KRL1)のビット「7」は、4チャネルの16ビット乱数回路508bのうち、チャネル1の16ビット乱数回路508bの起動方法の設定を示している。図14に示す例において、16ビット乱数初期設定1(KRL1)のビット「7」におけるビット値が“0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル1の16ビット乱数回路508bが起動される。これに対して、16ビット乱数初期設定1(KRL1)のビット「7」におけるビット値が“1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことに基づいて自動的にチャネル1の16ビット乱数回路508bが起動される。
16ビット乱数初期設定1(KRL1)のビット「6」は、チャネル1の16ビット乱数回路508bの更新クロックの設定を示している。図14に示す例において、16ビット乱数初期設定1(KRL1)のビット「6」におけるビット値が“0”であれば、メイン制御部41の内部システムクロックを更新クロックとして用いる。これに対して、16ビット乱数初期設定1(KRL1)のビット「6」におけるビット値が“1”であれば、メイン制御部41の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
尚、本実施例では、既に説明した乱数用クロック生成回路43により生成された乱数用クロックRCLKを乱数用外部クロック端子(RCK端子)を介して入力し、その乱数用クロックRCLKを2分周した信号を更新クロックとして用いるものとする。尚、このことは、他のチャネルの16ビット乱数回路508bや8ビット乱数回路508aについても同様である。
16ビット乱数初期設定1(KRL1)のビット「5−4」は、チャネル1の16ビット乱数回路508bが更新する乱数列を変更するか否かの設定を示している。図14に示す例において、16ビット乱数初期設定1(KRL1)のビット「5−4」におけるビット値が“00”であれば、チャネル1の16ビット乱数回路508bが更新する乱数列は変更されない。また、16ビット乱数初期設定1(KRL1)のビット「5−4」におけるビット値が“01”であれば、チャネル1の16ビット乱数回路508bが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、16ビット乱数初期設定1(KRL1)のビット「5−4」におけるビット値が“10”であれば、チャネル1の16ビット乱数回路508bが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、16ビット乱数初期設定1(KRL1)のビット「5−4」におけるビット値が“11”であれば、チャネル1の16ビット乱数回路508bが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
本実施例では、16ビット乱数初期設定1(KRL1)のビット「7」の設定値として“1”が設定されており、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことに基づいて自動的にチャネル1の16ビット乱数回路508bが起動される。また、16ビット乱数初期設定1(KRL1)のビット「6」の設定値として“1”が設定されており、メイン制御部41の外部から入力された外部クロック信号を2分周した信号がチャネル1の16ビット乱数回路508bの更新クロックとして用いられる。また、16ビット乱数初期設定1(KRL1)のビット「5−4」の設定値として“10”が設定されており、チャネル1の16ビット乱数回路508bが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
16ビット乱数初期設定1(KRL1)のビット「3」は、4チャネルの16ビット乱数回路508bのうち、チャネル0の16ビット乱数回路508bの起動方法の設定を示している。図14に示す例において、16ビット乱数初期設定1(KRL1)のビット「3」におけるビット値が“0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル0の16ビット乱数回路508bが起動される。これに対して、16ビット乱数初期設定1(KRL1)のビット「3」におけるビット値が“1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことに基づいて自動的にチャネル0の16ビット乱数回路508bが起動される。
16ビット乱数初期設定1(KRL1)のビット「2」は、チャネル0の16ビット乱数回路508bの更新クロックの設定を示している。図14に示す例において、16ビット乱数初期設定1(KRL1)のビット「2」におけるビット値が“0”であれば、メイン制御部41の内部システムクロックを更新クロックとして用いる。これに対して、16ビット乱数初期設定1(KRL1)のビット「2」におけるビット値が“1”であれば、メイン制御部41の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
16ビット乱数初期設定1(KRL1)のビット「1−0」は、チャネル0の16ビット乱数回路508bが更新する乱数列を変更するか否かの設定を示している。図14に示す例において、16ビット乱数初期設定1(KRL1)のビット「1−0」におけるビット値が“00”であれば、チャネル0の16ビット乱数回路508bが更新する乱数列は変更されない。また、16ビット乱数初期設定1(KRL1)のビット「1−0」におけるビット値が“01”であれば、チャネル0の16ビット乱数回路508bが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、16ビット乱数初期設定1(KRL1)のビット「1−0」におけるビット値が“10”であれば、チャネル0の16ビット乱数回路508bが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、16ビット乱数初期設定1(KRL1)のビット「1−0」におけるビット値が“11”であれば、チャネル0の16ビット乱数回路508bが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
本実施例では、16ビット乱数初期設定1(KRL1)のビット「3」の設定値として“1”が設定されており、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことに基づいて自動的にチャネル0の16ビット乱数回路508bが起動される。また、16ビット乱数初期設定1(KRL1)のビット「2」の設定値として“1”が設定されており、メイン制御部41の外部から入力された外部クロック信号を2分周した信号がチャネル0の16ビット乱数回路508bの更新クロックとして用いられる。また、16ビット乱数初期設定1(KRL1)のビット「1−0」の設定値として“10”が設定されており、チャネル0の16ビット乱数回路508bが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
次に、図15を用いて、16ビット乱数初期設定2(KRL2)における設定内容を説明する。16ビット乱数初期設定2(KRL2)のビット「7」は、4チャネルの16ビット乱数回路508bのうち、チャネル3の16ビット乱数回路508bの起動方法の設定を示している。図15に示す例において、16ビット乱数初期設定2(KRL2)のビット「7」におけるビット値が“0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル3の16ビット乱数回路508bが起動される。これに対して、16ビット乱数初期設定2(KRL2)のビット「7」におけるビット値が“1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことに基づいて自動的にチャネル3の16ビット乱数回路508bが起動される。
16ビット乱数初期設定2(KRL2)のビット「6」は、チャネル3の16ビット乱数回路508bの更新クロックの設定を示している。図15に示す例において、16ビット乱数初期設定2(KRL2)のビット「6」におけるビット値が“0”であれば、メイン制御部41の内部システムクロックを更新クロックとして用いる。これに対して、16ビット乱数初期設定2(KRL2)のビット「6」におけるビット値が“1”であれば、メイン制御部41の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
16ビット乱数初期設定2(KRL2)のビット「5−4」は、チャネル3の16ビット乱数回路508bが更新する乱数列を変更するか否かの設定を示している。図15に示す例において、16ビット乱数初期設定2(KRL2)のビット「5−4」におけるビット値が“00”であれば、チャネル3の16ビット乱数回路508bが更新する乱数列は変更されない。また、16ビット乱数初期設定2(KRL2)のビット「5−4」におけるビット値が“01”であれば、チャネル3の16ビット乱数回路508bが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、16ビット乱数初期設定2(KRL2)のビット「5−4」におけるビット値が“10”であれば、チャネル3の16ビット乱数回路508bが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、16ビット乱数初期設定2(KRL2)のビット「5−4」におけるビット値が“11”であれば、チャネル3の16ビット乱数回路508bが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
本実施例では、16ビット乱数初期設定2(KRL2)のビット「7」の設定値として“0”が設定されており、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル3の16ビット乱数回路508bが起動される設定であるが、後述のように、チャネル3の16ビット乱数回路508bに対しては、ソフトウェアにより最大値設定を行わないようになっており、チャネル3の16ビット乱数回路508bを起動させない未使用設定となる。また、16ビット乱数初期設定2(KRL2)のビット「6」の設定値として“1”が設定されており、メイン制御部41の外部から入力された外部クロック信号を2分周した信号がチャネル3の16ビット乱数回路508bの更新クロックとして用いられる。また、16ビット乱数初期設定2(KRL2)のビット「5−4」の設定値として“10”が設定されており、チャネル3の16ビット乱数回路508bが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。すなわち16ビット乱数初期設定2(KRL2)のビット「7」に“0”を設定し、ソフトウェアによりチャネル3の16ビット乱数回路508bの最大値設定を行わないことによりチャネル3の16ビット乱数回路508bを起動させない未使用設定としているが、チャネル3の16ビット乱数回路508bの更新クロックの設定、更新する乱数列を変更するか否かの設定については、初期値(出荷時の値(全て0))ではなく、未使用設定ではないチャネル0、1の16ビット乱数回路508bと同一の設定がされている。
16ビット乱数初期設定2(KRL2)のビット「3」は、4チャネルの16ビット乱数回路508bのうち、チャネル2の16ビット乱数回路508bの起動方法の設定を示している。図15に示す例において、16ビット乱数初期設定2(KRL2)のビット「3」におけるビット値が“0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル2の16ビット乱数回路508bが起動される。これに対して、16ビット乱数初期設定2(KRL2)のビット「3」におけるビット値が“1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことに基づいて自動的にチャネル2の16ビット乱数回路508bが起動される。
16ビット乱数初期設定2(KRL2)のビット「2」は、チャネル2の16ビット乱数回路508bの更新クロックの設定を示している。図15に示す例において、16ビット乱数初期設定2(KRL2)のビット「2」におけるビット値が“0”であれば、メイン制御部41の内部システムクロックを更新クロックとして用いる。これに対して、16ビット乱数初期設定2(KRL2)のビット「2」におけるビット値が“1”であれば、メイン制御部41の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
16ビット乱数初期設定2(KRL2)のビット「1−0」は、チャネル2の16ビット乱数回路508bが更新する乱数列を変更するか否かの設定を示している。図15に示す例において、16ビット乱数初期設定2(KRL2)のビット「1−0」におけるビット値が“00”であれば、チャネル2の16ビット乱数回路508bが更新する乱数列は変更されない。また、16ビット乱数初期設定2(KRL2)のビット「1−0」におけるビット値が“01”であれば、チャネル2の16ビット乱数回路508bが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、16ビット乱数初期設定2(KRL2)のビット「1−0」におけるビット値が“10”であれば、チャネル2の16ビット乱数回路508bが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、16ビット乱数初期設定2(KRL2)のビット「1−0」におけるビット値が“11”であれば、チャネル2の16ビット乱数回路508bが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
本実施例では、16ビット乱数初期設定2(KRL2)のビット「3」の設定値として“0”が設定されており、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル2の16ビット乱数回路508bが起動される設定であるが、後述のように、チャネル2の16ビット乱数回路508bに対しては、ソフトウェアにより最大値設定を行わないようになっており、チャネル2の16ビット乱数回路508bを起動させない未使用設定となる。また、16ビット乱数初期設定2(KRL2)のビット「2」の設定値として“1”が設定されており、メイン制御部41の外部から入力された外部クロック信号を2分周した信号がチャネル2の16ビット乱数回路508bの更新クロックとして用いられる。また、16ビット乱数初期設定2(KRL2)のビット「1−0」の設定値として“10”が設定されており、チャネル2の16ビット乱数回路508bが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。すなわち16ビット乱数初期設定2(KRL2)のビット「3」に“0”を設定し、ソフトウェアによりチャネル2の16ビット乱数回路508bの最大値設定を行わないことによりチャネル2の16ビット乱数回路508bを起動させない未使用設定としているが、チャネル2の16ビット乱数回路508bの更新クロックの設定、更新する乱数列を変更するか否かの設定については、初期値(出荷時の値(全て0))ではなく、未使用設定ではないチャネル0、1の16ビット乱数回路508bと同一の設定がされている。
次に、図16を用いて、16ビット乱数初期設定3(KRL3)のにおける設定内容を説明する。16ビット乱数初期設定3(KRL3)のビット「7」は、4チャネルの16ビット乱数回路508bのうち、チャネル3の16ビット乱数回路508bの1周目からのスタート値の設定を示している。図16に示す例において、16ビット乱数初期設定3(KRL3)のビット「7」におけるビット値が“0”であれば、乱数更新の1周目のスタート値として0001Hが用いられる。これに対して、16ビット乱数初期設定3(KRL3)のビット「7」におけるビット値が“1”であれば、乱数更新の1周目のスタート値としてメイン制御部41のIDナンバーをもとにした値が用いられる。メイン制御部41のIDナンバーはチップごとに異なることから、スタート値としてIDナンバーをもとにした値を用いることにより、乱数の更新タイミングを予測しにくくすることができ、乱数の更新タイミングを狙って不正に大当りを発生させるような行為を防止することができる。尚、IDナンバーをもとにした値として、IDナンバーそのものを用いても良いし、IDナンバーに所定の演算(例えば、所定値を加算したり減算したりした値)を用いても良い。
16ビット乱数初期設定3(KRL3)のビット「6」は、チャネル3の16ビット乱数回路508bのスタート値をシステムリセットごとに変更するか否かの設定を示している。図16に示す例において、16ビット乱数初期設定3(KRL3)のビット「6」におけるビット値が“0”であれば、システムリセット時にスタート値の変更は行わない。これに対して、16ビット乱数初期設定3(KRL3)のビット「6」におけるビット値が“1”であれば、システムリセットごとにスタート値を変更する。
本実施例において、16ビット乱数初期設定3(KRL3)のビット「7」の設定値として“1”が設定されており、チャネル3の16ビット乱数回路508bの乱数更新の1周目のスタート値としてメイン制御部41のIDナンバーをもとにした値が用いられる。また、16ビット乱数初期設定3(KRL3)のビット「6」の設定値として“1”が設定されており、システムリセットごとにチャネル3の16ビット乱数回路508bのスタート値を変更する。すなわち16ビット乱数初期設定2(KRL2)のビット「7」に“0”を設定し、ソフトウェアによりチャネル3の16ビット乱数回路508bの最大値設定を行わないことによりチャネル3の16ビット乱数回路508bを起動させない未使用設定としているが、チャネル3の16ビット乱数回路508bの1周目からのスタート値の設定については、初期値(出荷時の値(全て0))ではなく、未使用設定ではないチャネル0、1の16ビット乱数回路508bと同一の設定がされている。
16ビット乱数初期設定3(KRL3)のビット「5」は、4チャネルの16ビット乱数回路508bのうち、チャネル2の16ビット乱数回路508bの1周目からのスタート値の設定を示している。図16に示す例において、16ビット乱数初期設定3(KRL3)のビット「5」におけるビット値が“0”であれば、乱数更新の1周目のスタート値として0001Hが用いられる。これに対して、16ビット乱数初期設定3(KRL3)のビット「5」におけるビット値が“1”であれば、乱数更新の1周目のスタート値としてメイン制御部41のIDナンバーをもとにした値が用いられる。
16ビット乱数初期設定3(KRL3)のビット「4」は、チャネル2の16ビット乱数回路508bのスタート値をシステムリセットごとに変更するか否かの設定を示している。図16に示す例において、16ビット乱数初期設定3(KRL3)のビット「4」におけるビット値が“0”であれば、システムリセット時にスタート値の変更は行わない。これに対して、16ビット乱数初期設定3(KRL3)のビット「6」におけるビット値が“1”であれば、システムリセットごとにスタート値を変更する。
本実施例において、16ビット乱数初期設定3(KRL3)のビット「5」の設定値として“1”が設定されており、チャネル2の16ビット乱数回路508bの乱数更新の1周目のスタート値としてメイン制御部41のIDナンバーをもとにした値が用いられる。また、16ビット乱数初期設定3(KRL3)のビット「4」の設定値として“1”が設定されており、システムリセットごとにチャネル2の16ビット乱数回路508bのスタート値を変更する。すなわち16ビット乱数初期設定2(KRL2)のビット「3」に“0”を設定し、ソフトウェアによりチャネル2の16ビット乱数回路508bの最大値設定を行わないことによりチャネル2の16ビット乱数回路508bを起動させない未使用設定としているが、チャネル2の16ビット乱数回路508bの1周目からのスタート値の設定については、初期値(出荷時の値(全て0))ではなく、未使用設定ではないチャネル0、1の16ビット乱数回路508bと同一の設定がされている。
16ビット乱数初期設定3(KRL3)のビット「3」は、4チャネルの16ビット乱数回路508bのうち、チャネル1の16ビット乱数回路508bの1周目からのスタート値の設定を示している。図16に示す例において、16ビット乱数初期設定3(KRL3)のビット「3」におけるビット値が“0”であれば、乱数更新の1周目のスタート値として0001Hが用いられる。これに対して、16ビット乱数初期設定3(KRL3)のビット「3」におけるビット値が“1”であれば、乱数更新の1周目のスタート値としてメイン制御部41のIDナンバーをもとにした値が用いられる。
16ビット乱数初期設定3(KRL3)のビット「2」は、チャネル1の16ビット乱数回路508bのスタート値をシステムリセットごとに変更するか否かの設定を示している。図16に示す例において、16ビット乱数初期設定3(KRL3)のビット「2」におけるビット値が“0”であれば、システムリセット時にスタート値の変更は行わない。これに対して、16ビット乱数初期設定3(KRL3)のビット「2」におけるビット値が“1”であれば、システムリセットごとにスタート値を変更する。
本実施例において、16ビット乱数初期設定3(KRL3)のビット「3」の設定値として“1”が設定されており、チャネル1の16ビット乱数回路508bの乱数更新の1周目のスタート値としてメイン制御部41のIDナンバーをもとにした値が用いられる。また、16ビット乱数初期設定3(KRL3)のビット「2」の設定値として“1”が設定されており、システムリセットごとにチャネル1の16ビット乱数回路508bのスタート値を変更する。
16ビット乱数初期設定3(KRL3)のビット「1」は、4チャネルの16ビット乱数回路508bのうち、チャネル0の16ビット乱数回路508bの1周目からのスタート値の設定を示している。図16に示す例において、16ビット乱数初期設定3(KRL3)のビット「1」におけるビット値が“0”であれば、乱数更新の1周目のスタート値として0001Hが用いられる。これに対して、16ビット乱数初期設定3(KRL3)のビット「1」におけるビット値が“1”であれば、乱数更新の1周目のスタート値としてメイン制御部41のIDナンバーをもとにした値が用いられる。
16ビット乱数初期設定3(KRL3)のビット「0」は、チャネル0の16ビット乱数回路508bのスタート値をシステムリセットごとに変更するか否かの設定を示している。図16に示す例において、16ビット乱数初期設定3(KRL3)のビット「0」におけるビット値が“0”であれば、システムリセット時にスタート値の変更は行わない。これに対して、16ビット乱数初期設定3(KRL3)のビット「0」におけるビット値が“1”であれば、システムリセットごとにスタート値を変更する。
本実施例において、16ビット乱数初期設定3(KRL3)のビット「1」の設定値として“1”が設定されており、チャネル0の16ビット乱数回路508bの乱数更新の1周目のスタート値としてメイン制御部41のIDナンバーをもとにした値が用いられる。また、16ビット乱数初期設定3(KRL3)のビット「0」の設定値として“1”が設定されており、システムリセットごとにチャネル0の16ビット乱数回路508bのスタート値を変更する。
プログラム管理エリアに記憶される8ビット乱数初期設定1(KRS1)及び8ビット乱数初期設定2(KRS2)は、8ビット乱数回路508aの設定を示す。図17は、8ビット乱数初期設定1(KRS1)のにおける設定内容の一例を示している。また、図18は、8ビット乱数初期設定2(KRS2)のにおける設定内容の一例を示している。
まず、図17を用いて、8ビット乱数初期設定1(KRS1)における設定内容を説明する。8ビット乱数初期設定1(KRS1)のビット「7」は、4チャネルの8ビット乱数回路508aのうち、チャネル1の8ビット乱数回路508aの起動方法の設定を示している。図17に示す例において、8ビット乱数初期設定1(KRS1)のビット「7」におけるビット値が“0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル1の8ビット乱数回路508aが起動される。これに対して、8ビット乱数初期設定1(KRS1)のビット「7」におけるビット値が“1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことに基づいて自動的にチャネル1の8ビット乱数回路508aが起動される。
8ビット乱数初期設定1(KRS1)のビット「6」は、チャネル1の8ビット乱数回路508aの更新クロックの設定を示している。図17に示す例において、8ビット乱数初期設定1(KRS1)のビット「6」におけるビット値が“0”であれば、メイン制御部41の内部システムクロックを更新クロックとして用いる。これに対して、8ビット乱数初期設定1(KRS1)のビット「6」におけるビット値が“1”であれば、メイン制御部41の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
8ビット乱数初期設定1(KRS1)のビット「5−4」は、チャネル1の8ビット乱数回路508aが更新する乱数列を変更するか否かの設定を示している。図17に示す例において、8ビット乱数初期設定1(KRS1)のビット「5−4」におけるビット値が“00”であれば、チャネル1の8ビット乱数回路508aが更新する乱数列は変更されない。また、8ビット乱数初期設定1(KRS1)のビット「5−4」におけるビット値が“01”であれば、チャネル1の8ビット乱数回路508aが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、8ビット乱数初期設定1(KRS1)のビット「5−4」におけるビット値が“10”であれば、チャネル1の8ビット乱数回路508aが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、8ビット乱数初期設定1(KRS1)のビット「5−4」におけるビット値が“11”であれば、チャネル1の8ビット乱数回路508aが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
本実施例では、8ビット乱数初期設定1(KRS1)のビット「7」の設定値として“0”が設定されており、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル1の8ビット乱数回路508aが起動される設定であるが、後述のように、チャネル1の8ビット乱数回路508aに対しては、ソフトウェアにより最大値設定を行わないようになっており、チャネル1の8ビット乱数回路508aを起動させない未使用設定となる。また、8ビット乱数初期設定1(KRS1)のビット「6」の設定値として“1”が設定されており、メイン制御部41の外部から入力された外部クロック信号を2分周した信号がチャネル1の8ビット乱数回路508aの更新クロックとして用いられる。また、8ビット乱数初期設定1(KRS1)のビット「5−4」の設定値として“10”が設定されており、チャネル1の8ビット乱数回路508aが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。すなわち8ビット乱数初期設定1(KRS1)のビット「7」に“0”を設定し、ソフトウェアによりチャネル1の8ビット乱数回路508aの最大値設定を行わないことによりチャネル1の8ビット乱数回路508aを起動させない未使用設定としているが、チャネル1の8ビット乱数回路508aの更新クロックの設定、更新する乱数列を変更するか否かの設定については、初期値(出荷時の値(全て0))ではなく、未使用設定ではないチャネル0、1の16ビット乱数回路508bと同一の設定がされている。
8ビット乱数初期設定1(KRS1)のビット「3」は、4チャネルの8ビット乱数回路508aのうち、チャネル0の8ビット乱数回路508aの起動方法の設定を示している。図17に示す例において、8ビット乱数初期設定1(KRS1)のビット「3」におけるビット値が“0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル0の8ビット乱数回路508aが起動される。これに対して、8ビット乱数初期設定1(KRS1)のビット「3」におけるビット値が“1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことに基づいて自動的にチャネル0の8ビット乱数回路508aが起動される。
8ビット乱数初期設定1(KRS1)のビット「2」は、チャネル0の8ビット乱数回路508aの更新クロックの設定を示している。図17に示す例において、8ビット乱数初期設定1(KRS1)のビット「2」におけるビット値が“0”であれば、メイン制御部41の内部システムクロックを更新クロックとして用いる。これに対して、8ビット乱数初期設定1(KRS1)のビット「2」におけるビット値が“1”であれば、メイン制御部41の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
8ビット乱数初期設定1(KRS1)のビット「1−0」は、チャネル0の8ビット乱数回路508aが更新する乱数列を変更するか否かの設定を示している。図17に示す例において、8ビット乱数初期設定1(KRS1)のビット「1−0」におけるビット値が“00”であれば、チャネル0の8ビット乱数回路508aが更新する乱数列は変更されない。また、8ビット乱数初期設定1(KRS1)のビット「1−0」におけるビット値が“01”であれば、チャネル0の8ビット乱数回路508aが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、8ビット乱数初期設定1(KRS1)のビット「1−0」におけるビット値が“10”であれば、チャネル0の8ビット乱数回路508aが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、8ビット乱数初期設定1(KRS1)のビット「1−0」におけるビット値が“11”であれば、チャネル0の8ビット乱数回路508aが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
本実施例では、8ビット乱数初期設定1(KRS1)のビット「3」の設定値として“0”が設定されており、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル0の8ビット乱数回路508aが起動される設定であるが、後述のように、チャネル0の8ビット乱数回路508aに対しては、ソフトウェアにより最大値設定を行わないようになっており、チャネル0の8ビット乱数回路508aを起動させない未使用設定となる。また、8ビット乱数初期設定1(KRS1)のビット「2」の設定値として“1”が設定されており、メイン制御部41の外部から入力された外部クロック信号を2分周した信号がチャネル0の8ビット乱数回路508aの更新クロックとして用いられる。また、8ビット乱数初期設定1(KRS1)のビット「1−0」の設定値として“10”が設定されており、チャネル0の8ビット乱数回路508aが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。すなわち8ビット乱数初期設定1(KRS1)のビット「3」に“0”を設定し、ソフトウェアによりチャネル0の8ビット乱数回路508aの最大値設定を行わないことによりチャネル0の8ビット乱数回路508aを起動させない未使用設定としているが、チャネル0の8ビット乱数回路508aの更新クロックの設定、更新する乱数列を変更するか否かの設定については、初期値(出荷時の値(全て0))ではなく、未使用設定ではないチャネル0、1の16ビット乱数回路508bと同一の設定がされている。
次に、図18を用いて、8ビット乱数初期設定2(KRS2)における設定内容を説明する。8ビット乱数初期設定2(KRS2)のビット「7」は、4チャネルの8ビット乱数回路508aのうち、チャネル3の8ビット乱数回路508aの起動方法の設定を示している。図18に示す例において、8ビット乱数初期設定2(KRS2)のビット「7」におけるビット値が“0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル3の8ビット乱数回路508aが起動される。これに対して、8ビット乱数初期設定2(KRS2)のビット「7」におけるビット値が“1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことに基づいて自動的にチャネル3の8ビット乱数回路508aが起動される。
8ビット乱数初期設定2(KRS2)のビット「6」は、チャネル3の8ビット乱数回路508aの更新クロックの設定を示している。図18に示す例において、8ビット乱数初期設定2(KRS2)のビット「6」におけるビット値が“0”であれば、メイン制御部41の内部システムクロックを更新クロックとして用いる。これに対して、8ビット乱数初期設定2(KRS2)のビット「6」におけるビット値が“1”であれば、メイン制御部41の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
8ビット乱数初期設定2(KRS2)のビット「5−4」は、チャネル3の8ビット乱数回路508aが更新する乱数列を変更するか否かの設定を示している。図18に示す例において、8ビット乱数初期設定2(KRS2)のビット「5−4」におけるビット値が“00”であれば、チャネル3の8ビット乱数回路508aが更新する乱数列は変更されない。また、8ビット乱数初期設定2(KRS2)のビット「5−4」におけるビット値が“01”であれば、チャネル3の8ビット乱数回路508aが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、8ビット乱数初期設定2(KRS2)のビット「5−4」におけるビット値が“10”であれば、チャネル3の8ビット乱数回路508aが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、8ビット乱数初期設定2(KRS2)のビット「5−4」におけるビット値が“11”であれば、チャネル3の8ビット乱数回路508aが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
本実施例では、8ビット乱数初期設定2(KRS2)のビット「7」の設定値として“0”が設定されており、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル3の8ビット乱数回路508aが起動される設定であるが、後述のように、チャネル1の8ビット乱数回路508aに対しては、ソフトウェアにより最大値設定を行わないようになっており、チャネル3の8ビット乱数回路508aを起動させない未使用設定となる。また、8ビット乱数初期設定2(KRS2)のビット「6」の設定値として“1”が設定されており、メイン制御部41の外部から入力された外部クロック信号を2分周した信号がチャネル3の8ビット乱数回路508aの更新クロックとして用いられる。また、8ビット乱数初期設定2(KRS2)のビット「5−4」の設定値として“10”が設定されており、チャネル3の8ビット乱数回路508aが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。すなわち8ビット乱数初期設定2(KRS2)のビット「7」に“0”を設定し、ソフトウェアによりチャネル3の8ビット乱数回路508aの最大値設定を行わないことによりチャネル3の8ビット乱数回路508aを起動させない未使用設定としているが、チャネル3の8ビット乱数回路508aの更新クロックの設定、更新する乱数列を変更するか否かの設定については、初期値(出荷時の値(全て0))ではなく、未使用設定ではないチャネル0、1の16ビット乱数回路508bと同一の設定がされている。
8ビット乱数初期設定2(KRS2)のビット「3」は、4チャネルの8ビット乱数回路508aのうち、チャネル2の8ビット乱数回路508aの起動方法の設定を示している。図18に示す例において、8ビット乱数初期設定2(KRS2)のビット「3」におけるビット値が“0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル2の8ビット乱数回路508aが起動される。これに対して、8ビット乱数初期設定2(KRS2)のビット「3」におけるビット値が“1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことに基づいて自動的にチャネル2の8ビット乱数回路508aが起動される。
8ビット乱数初期設定2(KRS2)のビット「2」は、チャネル2の8ビット乱数回路508aの更新クロックの設定を示している。図18に示す例において、8ビット乱数初期設定2(KRS2)のビット「2」におけるビット値が“0”であれば、メイン制御部41の内部システムクロックを更新クロックとして用いる。これに対して、8ビット乱数初期設定2(KRS2)のビット「2」におけるビット値が“1”であれば、メイン制御部41の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
8ビット乱数初期設定2(KRS2)のビット「1−0」は、チャネル2の8ビット乱数回路508aが更新する乱数列を変更するか否かの設定を示している。図18に示す例において、8ビット乱数初期設定2(KRS2)のビット「1−0」におけるビット値が“00”であれば、チャネル2の8ビット乱数回路508aが更新する乱数列は変更されない。また、8ビット乱数初期設定2(KRS2)のビット「1−0」におけるビット値が“01”であれば、チャネル2の8ビット乱数回路508aが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、8ビット乱数初期設定2(KRS2)のビット「1−0」におけるビット値が“10”であれば、チャネル2の8ビット乱数回路508aが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、8ビット乱数初期設定2(KRS2)のビット「1−0」におけるビット値が“11”であれば、チャネル2の8ビット乱数回路508aが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
本実施例では、8ビット乱数初期設定2(KRS2)のビット「3」の設定値として“0”が設定されており、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル2の8ビット乱数回路508aが起動される設定であるが、後述のように、チャネル2の8ビット乱数回路508aに対しては、ソフトウェアにより最大値設定を行わないようになっており、チャネル2の8ビット乱数回路508aを起動させない未使用設定となる。また、8ビット乱数初期設定2(KRS2)のビット「2」の設定値として“1”が設定されており、メイン制御部41の外部から入力された外部クロック信号を2分周した信号がチャネル2の8ビット乱数回路508aの更新クロックとして用いられる。また、8ビット乱数初期設定2(KRS2)のビット「1−0」の設定値として“10”が設定されており、チャネル2の8ビット乱数回路508aが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。すなわち8ビット乱数初期設定2(KRS2)のビット「3」に“0”を設定し、ソフトウェアによりチャネル2の8ビット乱数回路508aの最大値設定を行わないことによりチャネル2の8ビット乱数回路508aを起動させない未使用設定としているが、チャネル2の8ビット乱数回路508aの更新クロックの設定、更新する乱数列を変更するか否かの設定については、初期値(出荷時の値(全て0))ではなく、未使用設定ではないチャネル0、1の16ビット乱数回路508bと同一の設定がされている。
尚、8ビット乱数回路508aに関しては、16ビット乱数回路508bとは異なり、図16に示したようなスタート値の設定を行う機能はない。
プログラム管理エリアに記憶されるセキュリティ時間設定(KSES)は、セキュリティモードを延長する時間の設定を示す。図19は、セキュリティ時間設定(KSES)における設定内容の一例を示している。
セキュリティ時間設定(KSES)のビット[7−6]は、セキュリティモード時間をランダムに延長する時間の設定を示している。図19に示す例では、セキュリティ時間設定(KSES)のビット[7−6]に“01”が設定された場合には、セキュリティモード時間をランダムに延長するモードとして、ショートモードが設定され、具体的には、内部システムクロックが10.0MHzである場合には0〜0.816msの範囲の時間がランダムに延長され、内部システムクロックが12.0MHzである場合には0〜0.51msの範囲の時間がランダムに延長される。また、セキュリティ時間設定(KSES)のビット[7−6]に“10”が設定された場合には、セキュリティモード時間をランダムに延長するモードとして、ミドルモードが設定され、具体的には、内部システムクロックが10.0MHzである場合には0〜26.112msの範囲の時間がランダムに延長され、内部システムクロックが12.0MHzである場合には0〜16.32msの範囲の時間がランダムに延長される。また、セキュリティ時間設定(KSES)のビット[7−6]に“11”が設定された場合には、セキュリティモード時間をランダムに延長するモードとして、ロングモードが設定され、具体的には、内部システムクロックが10.0MHzである場合には0〜835.584msの範囲の時間がランダムに延長され、内部システムクロックが12.0MHzである場合には0〜522.24msの範囲の時間がランダムに延長される。
尚、セキュリティモード時間のランダム延長を行わないように設定する場合、図19に示すように、セキュリティ時間設定(KSES)のビット[7−6]に“00”を設定するようにすれば良い。
本実施例では、セキュリティ時間設定(KSES)のビット[7−6]の設定値として“11”が設定されており、セキュリティモード時間をランダムに延長するモードとして、ロングモードが設定され、内部システムクロックが10.0MHzである場合には0〜835.584msの範囲の時間がランダムに延長され、内部システムクロックが12.0MHzである場合には0〜522.24msの範囲の時間がランダムに延長される。
セキュリティ時間設定(KSES)のビット[5]は、セキュリティモード時間を固定延長する時間の基準クロック信号の設定を示している。図19に示す例では、セキュリティ時間設定(KSES)のビット[5]に“0”が設定された場合には、基準クロック信号として222×TSCLKが選択される。また、セキュリティ時間設定(KSES)のビット[5]に“1”が設定された場合には、基準クロック信号として224×TSCLKが選択される。
セキュリティ時間設定(KSES)のビット[4−0]は、セキュリティモード時間を固定で延長する時間の設定を示している。具体的には、セキュリティモード時間の固定延長時間は、セキュリティ時間設定(KSES)のビット[5]で選択した基準クロックに、セキュリティ時間設定(KSES)のビット[4−0]で設定した設定値を乗算した値となる。例えば、セキュリティ時間設定(KSES)のビット[4−0]に“00001”を設定(すなわち、値「1」を設定)した場合、セキュリティ時間設定(KSES)のビット[5]に“0”を設定した場合には、固定延長時間は222×TSCLK×1となり、セキュリティ時間設定(KSES)のビット[5]に“1”を設定した場合には、固定延長時間は224×TSCLK×1となる。また、セキュリティ時間設定(KSES)のビット[4−0]に“01000”を設定(すなわち、値「8」を設定)した場合、セキュリティ時間設定(KSES)のビット[5]に“0”を設定した場合には、固定延長時間は222×TSCLK×8となり、セキュリティ時間設定(KSES)のビット[5]に“1”を設定した場合には、固定延長時間は224×TSCLK×8となる。また、セキュリティ時間設定(KSES)のビット[4−0]に“10000”を設定(すなわち、値「16」を設定)した場合、セキュリティ時間設定(KSES)のビット[5]に“0”を設定した場合には、固定延長時間は222×TSCLK×16となり、セキュリティ時間設定(KSES)のビット[5]に“1”を設定した場合には、固定延長時間は224×TSCLK×16となる。また、セキュリティ時間設定(KSES)のビット[4−0]に“11111”を設定(すなわち、値「31」を設定)した場合、セキュリティ時間設定(KSES)のビット[5]に“0”を設定した場合には、固定延長時間は222×TSCLK×31となり、セキュリティ時間設定(KSES)のビット[5]に“1”を設定した場合には、固定延長時間は224×TSCLK×31となる。尚、図19には、内部システムクロックが10.0MHzと12.0MHzである場合の固定延長時間の値の具体例もそれぞれ示されている。
尚、セキュリティモード時間の固定延長を行わないように設定する場合、図19に示すように、セキュリティ時間設定(KSES)のビット[4−0]に“00000”を設定するようにすれば良い。
本実施例では、セキュリティ時間設定(KSES)のビット[5]の設定値として“0”が設定され、セキュリティ時間設定(KSES)のビット[4−0]の設定値として“00000”が設定されており、セキュリティモード時間の固定延長を行わないようになっている。
図19に示すように、セキュリティモード時間は、セキュリティ時間設定(KSES)のビット[7−6]の設定によるランダム延長と、セキュリティ時間設定(KSES)のビット[5−0]の設定による固定延長との2種類の方法で延長設定が可能である。そして、これら2種類の方法で設定された時間の加算時間が最終的なセキュリティモード時間の延長時間となる。
プログラム管理エリアに記憶される乱数クロック監視設定(KRCS)は、乱数用外部クロック端子(RCK端子)から入力された外部クロック信号の監視周波数の設定を示す。図20は、乱数クロック監視設定(KRCS)における設定内容の一例を示している。
乱数クロック監視設定(KRCS)のビット[7−2]は、固定ビット(すなわち、特に設定に使用しないビット)であり、全ビット必ず“0”を設定するものとする。
乱数クロック監視設定(KRCS)のビット[1−0]は、乱数を更新するためのクロックとして、乱数用外部クロック端子(RCK端子)から入力された外部クロック信号を選択した場合に、その入力クロックの周波数異常の検出対象とする周波数の設定を示している。図20に示す例では、乱数クロック監視設定(KRCS)のビット[1−0]に“00”が設定された場合には、監視周波数としてSCLK(内部システムクロック)の周波数未満を設定する。また、乱数クロック監視設定(KRCS)のビット[1−0]に“01”が設定された場合には、監視周波数としてSCLK(内部システムクロック)/2の周波数未満を設定する。また、乱数クロック監視設定(KRCS)のビット[1−0]に“10”が設定された場合には、監視周波数としてSCLK(内部システムクロック)/22の周波数未満を設定する。また、乱数クロック監視設定(KRCS)のビット[1−0]に“11”が設定された場合には、監視周波数としてSCLK(内部システムクロック)/23の周波数未満を設定する。
本実施例では、乱数クロック監視設定(KRCS)のビット[1−0]の設定値として“10”が設定されており、監視周波数としてSCLK(内部システムクロック)/22の周波数未満が設定される。
尚、乱数用外部クロック端子(RCK端子)から入力された外部クロック信号の監視周波数の異常を検出した場合には、後述する内部情報レジスタ(CIF)のビット3に“1”がセットされる。
また、本実施例では、メイン制御部41は、8ビット乱数回路508aと16ビット乱数回路508bと、のうち、16ビット乱数回路508bの動作異常(外部クロック周波数異常)を検出する機能を備えている。具体的には、メイン制御部41は、乱数更新用クロックとして乱数用外部クロック端子(RCK端子)から入力された外部クロック信号が選択されている場合に、乱数クロック監視設定(KRCS)で設定されている監視周波数に基づいて、外部クロック信号の周波数が低下したか否かを検出し、外部クロック信号の周波数が低下(外部クロック周波数異常)を検出した場合には、後述する内部情報レジスタ(CIF)のビット3に“1”をセットする。
また、メイン制御部41は、16ビット乱数回路508bの乱数の更新状態を監視する機能を備え、更新状態に異常を検出すると(例えば、乱数値が同じ値のまま更新されなくなったり、通常は乱数値が1つずつカウントアップされていくのに乱数値のカウント値がいきなり2以上の値増加した状態を検出したりすると)、内部情報レジスタ(CIF)のビット7〜4のうちの対応するビットに“1”をセットする。
本実施例では、チャネル2、3の16ビット乱数回路508bが未使用設定とされているが、チャネル2、3の16ビット乱数回路508bの更新異常が検出された場合にも、内部情報レジスタ(CIF)の対応するビット7、6のうち対応するビットに“1”をセットするようになっており、未使用設定とされているチャネル2、3の16ビット乱数回路508bについても内部情報レジスタ(CIF)の値を取得することにより、更新状態の異常が検出されているか否かを確認できるようになっている。
特に本実施例では、CPU41aが、所定の契機(例えば、起動時、所定間隔毎、1ゲームに1回等)で行われるエラー判定処理において、内部情報レジスタ(CIF)の値を取得し、内部情報レジスタ(CIF)の値が0か否か判定し、0以外、すなわち内部情報レジスタ(CIF)のいずれかのビットに“1”がセットされており、外部クロック信号の周波数異常が検知されているか、または使用設定であるか未使用設定であるかに関わらず、8ビット乱数回路506aのチャネル0〜3、16ビット乱数回路506bのいずれかにおいて更新状態の異常が検知されている場合に、エラー状態に制御し、遊技の進行が不能動化されるとともに、乱数異常が生じた旨を報知するようになっている。
尚、本実施例では、乱数クロック監視設定(KRCS)を用いて設定を行うことによって、16ビット乱数回路508bの動作異常の検出に関して、監視対象の外部クロック信号の監視周波数を設定する場合を示しているが、外部クロック周波数異常の検出自体を行うか否かを設定可能に構成したり、更新異常の検出自体を行うか否かを設定可能に構成したりしても良い。この場合、外部クロック周波数異常の検出自体を行うか否かの設定と、更新異常の検出自体を行うか否かの設定とをそれぞれ独立して行えるように構成しても良いし、両方の設定を一括して有効とするか無効とするかのみ行えるように構成しても良い。
また、本実施例では、乱数用クロック生成回路43から専用の乱数用クロックRCLKを乱数回路508a、508bに外部入力する場合を示しているが、例えば、制御用クロック生成回路42からの制御用クロックCCLKを外部入力する場合など専用の乱数用クロックRCLK以外のクロックを外部入力する場合であっても、外部クロック周波数異常の検出や更新異常の検出を行うことが可能である。尚、乱数回路の更新異常の検出に関しては、乱数用クロック生成回路43から専用の乱数用クロックRCLK用いて乱数更新する場合と、制御用クロック生成回路42からの制御用クロックCCLKなど他のクロックを用いて乱数更新する場合とのいずれか一方の場合のみ設定可能に構成しても良い。
また、本実施例では、CPU41aが、内部情報レジスタ(CIF)の値を取得し、内部情報レジスタ(CIF)の値が0か否か判定し、0以外の場合に、エラーを判定する構成、すなわち具体的なエラー原因を特定しない構成であるが、内部情報レジスタ(CIF)の値からエラー原因を特定し、その原因を認識可能に報知する構成としても良い。
また、本実施例では、外部クロック周波数の異常の検出を行い、メイン制御部41の内部システムクロックSCLKの周波数については特に異常の検出を行っていないが、それは次のような理由による。すなわち、乱数更新に内部システムクロックSCLKを用いる場合には、内部システムクロックSCLKに異常が発生しているような状況では、CPU41a自体の動作が停止している筈であるので、CPU41aが動作しているのに乱数の更新だけが停止しているような事態が生じる場合がなく、何らかの問題が生じるおそれがない。これに対して、乱数更新に外部クロック信号を用いる場合には、CPU41aが動作しているのに乱数の更新だけが停止しているような事態が生じる可能性があり弊害が生じるおそれがあるためである。
リセット/割込コントローラ506は、図8〜図10に示すようなメイン制御部41が備える内蔵レジスタのうち、内部情報レジスタCIF(アドレスFE25H)などを用いて、割込の制御やリセットの管理を行う。内部情報レジスタCIFは、直前に発生したリセット要因を管理したり、乱数更新状態、乱数更新クロックを外部クロックとした場合の入力周波数の状態を読み取るためのレジスタである。
図21(A)は、内部情報レジスタCIFの構成例を示している。図21(B)は、内部情報レジスタCIFに格納される内部情報データの各ビットにおける設定内容の一例を示している。内部情報レジスタCIFのビット番号[7]に格納される内部情報データRL3ERは、チャネル3の16ビット乱数回路508bが更新する16ビット乱数RL3の更新状態の異常を示す。図21(B)に示す例では、16ビット乱数RL3の更新異常が検知されないときに、内部情報データRL3ERのビット値が“0”となる一方、16ビット乱数RL3の更新異常が検知されたときには、そのビット値が“1”となる。内部情報レジスタCIFのビット番号[6]に格納される内部情報データRL2ERは、チャネル2の16ビット乱数回路508bが更新する16ビット乱数RL2の更新状態の異常を示す。図21(B)に示す例では、16ビット乱数RL2の更新異常が検知されないときに、内部情報データRL2ERのビット値が“0”となる一方、16ビット乱数RL2の更新異常が検知されたときには、そのビット値が“1”となる。内部情報レジスタCIFのビット番号[5]に格納される内部情報データRL1ERは、チャネル1の16ビット乱数回路508bが更新する16ビット乱数RL1の更新状態の異常を示す。図21(B)に示す例では、16ビット乱数RL1の更新異常が検知されないときに、内部情報データRL1ERのビット値が“0”となる一方、16ビット乱数RL1の更新異常が検知されたときには、そのビット値が“1”となる。内部情報レジスタCIFのビット番号[4]に格納される内部情報データRL0ERは、チャネル0の16ビット乱数回路508bが更新する16ビット乱数RL0の更新状態の異常を示す。図21(B)に示す例では、16ビット乱数RL0の更新異常が検知されないときに、内部情報データRL0ERのビット値が“0”となる一方、16ビット乱数RL0の更新異常が検知されたときには、そのビット値が“1”となる。尚、内部情報レジスタCIFのビット番号[7−4」は、初期値として“0”が設定されている。
前述のように、チャネル2、3の16ビット乱数回路508bが未使用設定とされているが、チャネル2、3の16ビット乱数回路508bの更新異常が検出された場合にも、内部情報レジスタ(CIF)の対応するビット7、6のうち対応するビットに“1”をセットするようになっており、未使用設定とされているチャネル2、3の16ビット乱数回路508bについても内部情報レジスタ(CIF)の値を取得することにより、更新状態の異常が検出されているか否かを確認できるようになっている。
内部情報レジスタCIFのビット番号[3]に格納される内部情報データRCERは、乱数更新用クロックとして乱数用外部クロック端子(RCK端子)から入力された外部クロック信号が選択されている場合に、その外部クロック信号の周波数異常を示す。図21(B)に示す例では、外部クロック信号の周波数異常が検知されないときに、内部情報データRCERのビット値が“0”となる一方、外部クロック信号の周波数異常が検知されたときには、そのビット値が“1”となる。尚、内部情報レジスタCIFのビット番号[3」は、初期値として“0“が設定されている。
内部情報レジスタCIFのビット番号[2]に格納される内部情報データSRSFは、直前に発生したリセット要因がシステムリセットであることを示す。図21(B)に示す例では、直前のリセット要因がシステムリセットではないときに(システムリセット未発生)、内部情報データSRSFのビット値が“0”となる一方、システムリセットであるときには(システムリセット発生)、そのビット値が“1”となる。尚、内部情報レジスタCIFのビット番号[2」は、初期値として“1”が設定されている。
内部情報レジスタCIFのビット番号[1]に格納される内部情報データWDTFは、直前に発生したリセット要因がウォッチドッグタイマ(WDT)506bからタイムアウト信号を入力したことによるユーザリセットであることを示す。図21(B)に示す例では、直前のリセット要因がタイムアウト信号によるユーザリセットではないときに(タイムアウト信号によるユーザリセット未発生)、内部情報データWDTFのビット値が“0”となる一方、タイムアウト信号によるユーザリセットであるときには(タイムアウト信号によるユーザリセット発生)、そのビット値が“1”となる。尚、内部情報レジスタCIFのビット番号[1」は、初期値として“0”が設定されている。
内部情報レジスタCIFのビット番号[0]に格納される内部情報データIATFは、直前に発生したリセット要因がIAT回路506aからのIAT発生信号を入力したことによるユーザリセットであることを示す。図21(B)に示す例では、直前のリセット要因がIAT発生信号によるユーザリセットではないときに(IAT発生信号によるユーザリセット未発生)、内部情報データIATFのビット値が“0”となる一方、IAT発生信号によるユーザリセットであるときには(IAT発生信号によるユーザリセット発生)、そのビット値が“1”となる。尚、内部情報レジスタCIFのビット番号[0」は、初期値として“0”が設定されている。
図22は、8ビット乱数回路508aの一構成例を示すブロック図である。また、図23は、16ビット乱数回路508bの一構成例を示すブロック図である。8ビット乱数回路508a及び16ビット乱数回路508bは、図22及び図23に示すように、乱数列変更選択回路523a、523b、乱数生成回路525a、525b、乱数列変更回路526a、526b、及び最大値比較回路527a、527bを備えて構成される。また、16ビット乱数回路508bは、図23に示すように、8ビット乱数回路508aが備える構成要素に加えて、乱数スタート値選択回路535を備える。さらに、16ビット乱数回路508bは、図23に示すように、8ビット乱数回路508aが備える構成要素に加えて、乱数生成回路525bが更新監視回路537を含む。
また、図23に示す例では、16ビット乱数回路508bの回路部分の構成のみを示し、乱数列変更レジスタ522及び最大値設定レジスタ524b以外の16ビット乱数回路508bが用いる各レジスタについては記載を省略している。尚、具体的には、16ビット乱数回路508bは、図22に示すRSハードラッチ選択レジスタ528a、528bに代えて図8に示すRL0ハードラッチ選択レジスタ0(RL0LS0)〜RL3ハードラッチ選択レジスタ(RL3LS)を用い、図22に示すRS0ハードラッチ乱数値レジスタ529a〜RS3ハードラッチ乱数値レジスタ529dに代えて図9及び図10に示すRL0ハードラッチ乱数値レジスタ0(RL0HV0)〜RL3ハードラッチ乱数値レジスタ1(RL3HV1)を用い、図22に示すRSハードラッチフラグレジスタ530に代えて図9に示すRLハードラッチフラグレジスタ0(RLHF0)〜RLハードラッチフラグレジスタ1(RLHF1)を用い、図22に示すRS割込制御レジスタ531に代えて図8に示すRL割込制御レジスタ0(RLIC0)〜RL割込制御レジスタ1(RLIC1)を用い、図22に示すRS0ソフトラッチ乱数値レジスタ533a〜RS3ソフトラッチ乱数値レジスタ533dに代えて図9に示すRL0ソフトラッチ乱数値レジスタ(RL0SV)〜RL3ソフトラッチ乱数値レジスタ(RL3SV)を用いる。また、16ビット乱数回路508bは、乱数値ソフトラッチレジスタ532及び乱数ソフトラッチフラグレジスタ534については、8ビット乱数回路508aと兼用で同じレジスタを用いる。
また、8ビット乱数回路508aは、既に説明したプログラム管理エリアに設けられた8ビット乱数初期設定521a(図7に示す8ビット乱数初期設定1(KRS1)及び8ビット乱数初期設定2(KRS2))の設定内容に従って動作する。
また、16ビット乱数回路508bは、既に説明したプログラム管理エリアに設けられた16ビット乱数初期設定521b(図7に示す16ビット乱数初期設定1(KRL1)〜16ビット乱数初期設定2(KRL2))の設定内容に従って動作する。また、16ビット乱数回路508bは、8ビット乱数回路508aの機能に加えて、乱数スタート値選択回路535が16ビット乱数初期設定536(図7に示す16ビット乱数初期設定3(KRL3))の設定内容に従って動作することにより、1周目の乱数値のスタート値を変更する機能を備えている(図16参照)。
また、16ビット乱数回路508bは、乱数生成回路525bが更新監視回路537を含んでおり、8ビット乱数回路508aの機能に加えて、更新監視回路537が動作することにより外部クロック周波数異常及び更新異常を検出する機能を備えている(図20参照)。尚、本実施例では、1つの更新監視回路537により外部クロック周波数異常及び更新異常の両方を検出する場合を示しているが、外部クロック周波数異常を検出する監視回路と更新異常を検出する監視回路とを別々に備えても良い。
尚、8ビット乱数回路508aも更新監視回路を備えるように構成し、8ビット乱数回路508aの外部クロック周波数異常及び更新異常を検出可能に構成するようにしても良い。
また、乱数列変更レジスタ522は、図8に示すようなメイン制御部41の内蔵レジスタに含まれる乱数列変更レジスタRDSCに対応している。尚、乱数列変更レジスタRDSCとして、8ビット乱数回路508a及び16ビット乱数回路508bの各チャネルで共通のレジスタが用いられる。
また、最大値設定レジスタ524a、524bは、図8に示すようなメイン制御部41の内蔵レジスタに含まれるRS0最大値設定レジスタ(RS0MX)〜RS3最大値設定レジスタ(RS3MX)に対応している(16ビット乱数回路508bの場合は、RL0最大値設定レジスタ(RL0MX)〜RL3最大値設定レジスタ(RL3MX)に対応している)。
また、ハードラッチ選択レジスタ528aは、図8に示すようなメイン制御部41の内蔵レジスタに含まれるRSハードラッチ選択レジスタ0(RSLS0)に対応している。また、ハードラッチ選択レジスタ528bは、図8に示すようなメイン制御部41の内蔵レジスタに含まれるRSハードラッチ選択レジスタ1(RSLS1)に対応している。尚、16ビット乱数回路508bの場合は、図8に示すRL0ハードラッチ選択レジスタ0(RL0LS0)〜RL3ハードラッチ選択レジスタ3(RL3LS)に対応している。
また、RS0ハードラッチ乱数値レジスタ529a〜RS3ハードラッチ乱数値レジスタ529dは、図10に示すようなメイン制御部41の内蔵レジスタに含まれるRS0ハードラッチ乱数値レジスタ(RS0HV)〜RS3ハードラッチ乱数値レジスタ(RS3HV)に対応している。尚、16ビット乱数回路508bの場合は、図9に示すRL0ハードラッチ乱数値レジスタ0(RL0HV0)〜RL1ハードラッチ乱数値レジスタ1(RL1HV1)及び図10に示すRL2ハードラッチ乱数値レジスタ0(RL2HV0)〜RL3ハードラッチ乱数値レジスタ1(RL3HV1)に対応している。
また、RSハードラッチフラグレジスタ530は、図9に示すRSハードラッチフラグレジスタ(RSHF)に対応している。尚、16ビット乱数回路508bの場合は、図9に示すRLハードラッチフラグレジスタ0(RLHF0)〜RLハードラッチフラグレジスタ1(RLHF1)に対応している。
また、RS割込制御レジスタ531は、図8に示すRS割込制御レジスタ(RSIC)に対応している。尚、16ビット乱数回路508bの場合は、図8に示すRL割込制御レジスタ0(RLIC0)〜RL割込制御レジスタ1(RLIC1)に対応している。
また、乱数ソフトラッチレジスタ532は、図8に示す乱数ソフトラッチレジスタ(RDSL)に対応している。尚、ソフトラッチレジスタRDSLとして、8ビット乱数回路508a及び16ビット乱数回路508bの各チャネルで共通のレジスタが用いられる。
また、RS0ソフトラッチ乱数値レジスタ533a〜RS3ソフトラッチ乱数値レジスタ533dは、は、図9に示すRS0ソフトラッチ乱数値レジスタ(RS0SV)〜RS3ソフトラッチ乱数値レジスタ(RS3SV)に対応している。尚、16ビット乱数回路508bの場合は、図9に示すRL0ソフトラッチ乱数値(RL0SV)〜RL3ソフトラッチ乱数値(RL3SV)に対応している。
また、乱数ソフトラッチフラグレジスタ534は、図8に示す乱数ソフトラッチフラグレジスタ(RDSF)に対応している。尚、乱数ソフトラッチフラグレジスタRDSFとして、8ビット乱数回路508a及び16ビット乱数回路508bの各チャネルで共通のレジスタが用いられる。
乱数列変更選択回路523a、523bは、図17や図18に示す8ビット乱数初期設定1(KRS1)や8ビット乱数初期設定2(KRS2)の設定内容に従って(16ビット乱数回路508bの場合には、図14や図15に示す16ビット乱数初期設定1(KRL1)や16ビット乱数初期設定2(KRL2)の設定内容に従って)、乱数列の変更方法として、「変更しない」、「ソフトウェアで変更」、「2周目から自動で変更」または「1周目から自動で変更」のうちのいずれかを選択する。そして、「ソフトウェアで変更」、「2周目から自動で変更」または「1周目から自動で変更」のいずれかに選択した場合には、その選択方法に従って乱数列変更回路526a、526bに乱数列を変更させる。また、「変更しない」を選択した場合には乱数列を変更させる制御を行わない。
乱数列変更回路526a、526bは、乱数生成回路525a、525bにより生成された数値データの順列を、乱数列変更選択回路523a、523bの指示に従って変更可能とする回路である。例えば、乱数列変更回路526a、526bは、「ソフトウェアで変更」が指示された場合には、乱数生成回路525a、525bが更新する乱数列をソフトウェア(ユーザプログラム)により変更する。また、例えば、乱数列変更回路526a、526bは、「2周目から自動で変更」が指示された場合には、乱数生成回路525a、525bが更新する乱数列を2周目から自動的に変更し、以降、乱数列が一巡するごとに自動的に乱数列を変更する。また、例えば、乱数列変更回路526a、526bは、「1周目から自動で変更」が指示された場合には、乱数生成回路525a、525bが更新する乱数列を1周目から自動的に変更し、以降、乱数列が一巡するごとに自動的に乱数列を変更する。
乱数生成回路525a、525bは、例えば8ビットのカウンタ(16ビット乱数回路508bの場合は16ビットのカウンタ)などから構成され、乱数更新クロック信号などの入力に基づき、数値データを更新可能な所定の範囲において所定の初期値から所定の最終値まで循環的に更新する回路である。例えば乱数生成回路525a、525bは、乱数更新クロック信号における立ち下がりエッジに応答して、「0」から「255」までの範囲内で設定された初期値から「255」まで1ずつ加算するように数値データをカウントアップして行く(16ビット乱数回路508bの場合には、「0」から「65535」までの範囲内で設定された初期値から「65535」まで1ずつ加算するように数値データをカウントアップして行く)。そして、「255」までカウントアップした後には、「0」から初期値よりも1小さい最終値となる数値まで1ずつ加算するようにカウントアップすることで、数値データを循環的に更新する。
最大値比較回路527a、527bは、図17や図18に示す8ビット乱数初期設定1(KRS1)や8ビット乱数初期設定2(KRS2)の設定内容に従って(16ビット乱数回路508bの場合には、図14や図15に示す16ビット乱数初期設定1(KRL1)や16ビット乱数初期設定2(KRL2)の設定内容に従って)、乱数生成回路525a、525bが生成する乱数値の最大値を設定する。
図24(A)は、RL0ハードラッチ選択レジスタ0(RL0LS0)の構成例を示している。図24(B)は、RL0ハードラッチ選択レジスタ0(RL0LS0)に格納されるデータの各ビットにおける設定内容の一例を示している。RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[7]に格納されるデータRL01RFは、RL0ハードラッチ乱数値レジスタ1(RL0HV1)に、外部端子入力により、16ビット乱数RL0の値を取り込む際の条件の設定を示している。図24(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRL01RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。
尚、本実施例では、プログラム管理エリアや内蔵レジスタのレジスタに関して、具体的には、プログラム管理エリアなどの対応するビットを“0”または“1”のいずれかの値としておくことにより、その対応するビットの値が読み込まれて、読み込まれた“0”または“1”の値がメイン制御部41の制御レジスタにハードウェア的に書き込まれることにより各種の設定が行われる。
RL0ハードラッチ選択レジスタ0(RL0LS0)のビット7(RL01RF)については、そのビット7から読み込まれた値が“0”であれば、メイン制御部41の制御レジスタにハードウェア的に“0”が書き込まれることによりRL0ハードラッチ乱数値レジスタ1(RL0HV1)から値を読み込まないと次の値をラッチしないように設定され、そのビット7から読み込まれた値が“1”であれば、メイン制御部41の制御レジスタにハードウェア的に“1”が書き込まれることによりRL0ハードラッチ乱数値レジスタ1(RL0HV1)から値を読み込まなくても次の値をラッチするように設定される。このことは、他のプログラム管理エリアの各設定項目や内蔵レジスタの各レジスタの各ビットに関しても同様である。
本実施例では、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[7]の設定値として“1”が設定されており、RL0ハードラッチ乱数値レジスタ1(RL0HV1)から値を読み込まなくても次の値をラッチできるようになっている。
RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[6−4]に格納されるデータRL01LS0〜RL01LS2は、RL0ハードラッチ乱数値レジスタ1(RL0HV1)に、どの外部端子入力により、16ビット乱数RL0の値を取り込むかの設定を示している。図24(B)に示す例では、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[6−4]に“000”が設定された場合にはPI0端子が選択され、“001”が設定された場合にはPI1端子が選択され、“010”が設定された場合にはPI2端子が選択され、“011”が設定された場合にはPI3端子が選択され、“100”が設定された場合にはPI4端子が選択され、“101”が設定された場合にはPI5/XINT端子が選択される。尚、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[6−4]に“110”や“111”が設定された場合には、その設定は無効である。
本実施例では、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[6−4]の設定値として“111”が設定されており、外部端子入力によっては、RL0ハードラッチ乱数値レジスタ1(RL0HV1)に16ビット乱数RL0の値が取り込まれないように設定されている。
RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[3]に格納されるデータRL00RFは、RL0ハードラッチ乱数値レジスタ0(RL0HV0)に、外部端子入力により、16ビット乱数RL0の値を取り込む際の条件の設定を示している。図24(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRL00RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。
本実施例では、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[3]の設定値として“1”が設定されており、RL0ハードラッチ乱数値レジスタ0(RL0HV1)から値を読み込まなくても次の値をラッチできるようになっている。
RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[2−0]に格納されるデータRL00LS0〜RL00LS2は、RL0ハードラッチ乱数値レジスタ0(RL0HV0)に、どの外部端子入力により、16ビット乱数RL0の値を取り込むかの設定を示している。図24(B)に示す例では、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[2−0]に“000”が設定された場合にはPI0端子が選択され、“001”が設定された場合にはPI1端子が選択され、“010”が設定された場合にはPI2端子が選択され、“011”が設定された場合にはPI3端子が選択され、“100”が設定された場合にはPI4端子が選択され、“101”が設定された場合にはPI5/XINT端子が選択される。尚、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[2−0]に“110”や“111”が設定された場合には、その設定は無効である。また、データRL00LS0〜RL00LS2は、初期値として“000”が設定されている。
本実施例では、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[2−0]の設定値として“000”が設定されており、PI0端子からの入力(スタートスイッチ7の操作検出信号の入力)により、RL0ハードラッチ乱数値レジスタ0(RL0HV1)に16ビット乱数RL0の値が取り込まれるように設定されている。
図25(A)は、RL0ハードラッチ選択レジスタ1(RL0LS1)の構成例を示している。図25(B)は、RL0ハードラッチ選択レジスタ1(RL0LS1)に格納されるデータの各ビットにおける設定内容の一例を示している。RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[7]に格納されるデータRL03RFは、RL0ハードラッチ乱数値レジスタ3(RL0HV3)に、外部端子入力により、16ビット乱数RL0の値を取り込む際の条件の設定を示している。図25(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRL03RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。
本実施例では、RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[7]の設定値として“1”が設定されており、RL0ハードラッチ乱数値レジスタ3(RL0HV3)から値を読み込まなくても次の値をラッチできるようになっている。
RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[6−4]に格納されるデータRL03LS0〜RL03LS2は、RL0ハードラッチ乱数値レジスタ3(RL0HV3)に、どの外部端子入力により、16ビット乱数RL0の値を取り込むかの設定を示している。図25(B)に示す例では、RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[6−4]に“000”が設定された場合にはPI0端子が選択され、“001”が設定された場合にはPI1端子が選択され、“010”が設定された場合にはPI2端子が選択され、“011”が設定された場合にはPI3端子が選択され、“100”が設定された場合にはPI4端子が選択され、“101”が設定された場合にはPI5/XINT端子が選択される。尚、RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[6−4]に“110”や“111”が設定された場合には、その設定は無効である。
本実施例では、RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[6−4]の設定値として“111”が設定されており、外部端子入力によっては、RL0ハードラッチ乱数値レジスタ3(RL0HV3)に16ビット乱数RL0の値が取り込まれないように設定されている。
RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[3]に格納されるデータRL02RFは、RL0ハードラッチ乱数値レジスタ2(RL0HV2)に、外部端子入力により、16ビット乱数RL0の値を取り込む際の条件の設定を示している。図25(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRL02RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。
本実施例では、RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[3]の設定値として“1”が設定されており、RL0ハードラッチ乱数値レジスタ2(RL0HV2)から値を読み込まなくても次の値をラッチできるようになっている。
RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[2−0]に格納されるデータRL02LS0〜RL02LS2は、RL0ハードラッチ乱数値レジスタ2(RL0HV2)に、どの外部端子入力により、16ビット乱数RL0の値を取り込むかの設定を示している。図25(B)に示す例では、RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[2−0]に“000”が設定された場合にはPI0端子が選択され、“001”が設定された場合にはPI1端子が選択され、“010”が設定された場合にはPI2端子が選択され、“011”が設定された場合にはPI3端子が選択され、“100”が設定された場合にはPI4端子が選択され、“101”が設定された場合にはPI5/XINT端子が選択される。尚、RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[2−0]に“110”や“111”が設定された場合には、その設定は無効である。
本実施例では、RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[2−0]の設定値として“111”が設定されており、外部端子入力によっては、RL0ハードラッチ乱数値レジスタ2(RL0HV2)に16ビット乱数RL0の値が取り込まれないように設定されている。
図26(A)は、RLnハードラッチ選択レジスタ(RLnLS)の構成例を示している。図26(B)は、RLnハードラッチ選択レジスタ(RLnLS)に格納されるデータの各ビットにおける設定内容の一例を示している。尚、図26において、nは0〜3の値をとる。RLnハードラッチ選択レジスタ(RLnLS)のビット番号[7]に格納されるデータRLn1RFは、RLnハードラッチ乱数値レジスタ1(RLnHV1)に、外部端子入力により、16ビット乱数RLnの値を取り込む際の条件の設定を示している。図26(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRLn1RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。
本実施例では、RLnハードラッチ選択レジスタ(RLnLS)のビット番号[7]の設定値として“1”が設定されており、RLnハードラッチ乱数値レジスタ1(RLnHV1)から値を読み込まなくても次の値をラッチできるようになっている。
RLnハードラッチ選択レジスタ(RLnLS)のビット番号[6−4]に格納されるデータRLn1LS0〜RLn1LS2は、RLnハードラッチ乱数値レジスタ1(RLnHV1)に、どの外部端子入力により、16ビット乱数RLnの値を取り込むかの設定を示している。図26(B)に示す例では、RLnハードラッチ選択レジスタ(RLnLS)のビット番号[6−4]に“000”が設定された場合にはPI0端子が選択され、“001”が設定された場合にはPI1端子が選択され、“010”が設定された場合にはPI2端子が選択され、“011”が設定された場合にはPI3端子が選択され、“100”が設定された場合にはPI4端子が選択され、“101”が設定された場合にはPI5/XINT端子が選択される。尚、RLnハードラッチ選択レジスタ(RLnLS)のビット番号[6−4]に“110”や“111”が設定された場合には、その設定は無効である。
本実施例では、RLnハードラッチ選択レジスタ(RLnLS)のビット番号[6−4]の設定値として“111”が設定されており、外部端子入力によっては、RLnハードラッチ乱数値レジスタ1(RLnHV1)に16ビット乱数RLnの値が取り込まれないように設定されている。
RLnハードラッチ選択レジスタ(RLnLS)のビット番号[3]に格納されるデータRLn0RFは、RLnハードラッチ乱数値レジスタ0(RLnHV0)に、外部端子入力により、16ビット乱数RLnの値を取り込む際の条件の設定を示している。図26(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRLn0RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。
本実施例では、RLnハードラッチ選択レジスタ(RLnLS)のビット番号[3]の設定値として“1”が設定されており、RLnハードラッチ乱数値レジスタ0(RLnHV0)から値を読み込まなくても次の値をラッチできるようになっている。
RLnハードラッチ選択レジスタ(RLnLS)のビット番号[2−0]に格納されるデータRLn0LS0〜RLn0LS2は、RLnハードラッチ乱数値レジスタ0(RLnHV0)に、どの外部端子入力により、16ビット乱数RLnの値を取り込むかの設定を示している。図26(B)に示す例では、RLnハードラッチ選択レジスタ(RLnLS)のビット番号[2−0]に“000”が設定された場合にはPI0端子が選択され、“001”が設定された場合にはPI1端子が選択され、“010”が設定された場合にはPI2端子が選択され、“011”が設定された場合にはPI3端子が選択され、“100”が設定された場合にはPI4端子が選択され、“101”が設定された場合にはPI5/XINT端子が選択される。尚、RLnハードラッチ選択レジスタ(RLnLS)のビット番号[2−0]に“110”や“111”が設定された場合には、その設定は無効である。
本実施例では、RL1ハードラッチ選択レジスタ(RL1LS)のビット番号[2−0]の設定値として“001”が設定されており、PI1端子からの入力(MAXBETスイッチ6の操作検出信号の入力)により、RL1ハードラッチ乱数値レジスタ0(RL1HV0)に16ビット乱数RL1の値が取り込まれるように設定されている。一方、RL2ハードラッチ選択レジスタ(RL2LS)のビット番号[2−0]の設定値、RL3ハードラッチ選択レジスタ(RL3LS)のビット番号[2−0]の設定値として“111”が設定されており、外部端子入力によっては、RL2ハードラッチ乱数値レジスタ0(RL2HV0)、RL3ハードラッチ乱数値レジスタ0(RL3HV0)に16ビット乱数RL2、RL3の値が取り込まれないように設定されている。
図27(A)は、RSハードラッチ選択レジスタ0(RSLS0)の構成例を示している。図27(B)は、RSハードラッチ選択レジスタ0(RSLS0)に格納されるデータの各ビットにおける設定内容の一例を示している。RSハードラッチ選択レジスタ0(RSLS0)のビット番号[7]に格納されるデータRS1RFは、RS1ハードラッチ乱数値レジスタ(RS1HV)に、外部端子入力により、8ビット乱数RS1の値を取り込む際の条件の設定を示している。図27(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRS1RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。
本実施例では、RSハードラッチ選択レジスタ0(RSLS0)のビット番号[7]の設定値として“1”が設定されており、RS1ハードラッチ乱数値レジスタ(RS1HV)から値を読み込まなくても次の値をラッチできるようになっている。
RSハードラッチ選択レジスタ0(RSLS0)のビット番号[6−4]に格納されるデータRS1LS0〜RS1LS2は、RS1ハードラッチ乱数値レジスタ(RS1HV)に、どの外部端子入力により、8ビット乱数RS1の値を取り込むかの設定を示している。図27(B)に示す例では、RSハードラッチ選択レジスタ0(RSLS0)のビット番号[6−4]に“000”が設定された場合にはPI0端子が選択され、“001”が設定された場合にはPI1端子が選択され、“010”が設定された場合にはPI2端子が選択され、“011”が設定された場合にはPI3端子が選択され、“100”が設定された場合にはPI4端子が選択され、“101”が設定された場合にはPI5/XINT端子が選択される。尚、RSハードラッチ選択レジスタ0(RSLS0)のビット番号[6−4]に“110”や“111”が設定された場合には、その設定は無効である。
本実施例では、RSハードラッチ選択レジスタ0(RSLS0)のビット番号[6−4]の設定値として“111”が設定されており、外部端子入力によっては、RS1ハードラッチ乱数値レジスタ(RS1HV)に8ビット乱数RS1の値が取り込まれないように設定されている。
RSハードラッチ選択レジスタ0(RSLS0)のビット番号[3]に格納されるデータRS0RFは、RS0ハードラッチ乱数値レジスタ(RS0HV)に、外部端子入力により、8ビット乱数RS0の値を取り込む際の条件の設定を示している。図27(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRS0RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。
本実施例では、RSハードラッチ選択レジスタ0(RSLS0)のビット番号[3]の設定値として“1”が設定されており、RS0ハードラッチ乱数値レジスタ(RS0HV)から値を読み込まなくても次の値をラッチできるようになっている。
RSハードラッチ選択レジスタ0(RSLS0)のビット番号[2−0]に格納されるデータRS0LS0〜RS0LS2は、RS0ハードラッチ乱数値レジスタ(RS0HV)に、どの外部端子入力により、8ビット乱数RS0の値を取り込むかの設定を示している。図27(B)に示す例では、RSハードラッチ選択レジスタ0(RSLS0)のビット番号[2−0]に“000”が設定された場合にはPI0端子が選択され、“001”が設定された場合にはPI1端子が選択され、“010”が設定された場合にはPI2端子が選択され、“011”が設定された場合にはPI3端子が選択され、“100”が設定された場合にはPI4端子が選択され、“101”が設定された場合にはPI5/XINT端子が選択される。尚、RSハードラッチ選択レジスタ0(RSLS0)のビット番号[2−0]に“110”や“111”が設定された場合には、その設定は無効である。
本実施例では、RSハードラッチ選択レジスタ0(RSLS0)のビット番号[2−0]の設定値として“111”が設定されており、外部端子入力によっては、RSハードラッチ選択レジスタ0(RSLS0)に8ビット乱数RS0の値が取り込まれないように設定されている。
図28(A)は、RSハードラッチ選択レジスタ1(RSLS1)の構成例を示している。図28(B)は、RSハードラッチ選択レジスタ1(RSLS1)に格納されるデータの各ビットにおける設定内容の一例を示している。RSハードラッチ選択レジスタ1(RSLS1)のビット番号[7]に格納されるデータRS3RFは、RS3ハードラッチ乱数値レジスタ(RS3HV)に、外部端子入力により、8ビット乱数RS3の値を取り込む際の条件の設定を示している。図28(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRS3RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。
本実施例では、RSハードラッチ選択レジスタ1(RSLS1)のビット番号[7]の設定値として“1”が設定されており、RS3ハードラッチ乱数値レジスタ(RS3HV)から値を読み込まなくても次の値をラッチできるようになっている。
RSハードラッチ選択レジスタ1(RSLS1)のビット番号[6−4]に格納されるデータRS3LS0〜RS3LS2は、RS3ハードラッチ乱数値レジスタ(RS3HV)に、どの外部端子入力により、8ビット乱数RS3の値を取り込むかの設定を示している。図28(B)に示す例では、RSハードラッチ選択レジスタ1(RSLS1)のビット番号[6−4]に“000”が設定された場合にはPI0端子が選択され、“001”が設定された場合にはPI1端子が選択され、“010”が設定された場合にはPI2端子が選択され、“011”が設定された場合にはPI3端子が選択され、“100”が設定された場合にはPI4端子が選択され、“101”が設定された場合にはPI5/XINT端子が選択される。尚、RSハードラッチ選択レジスタ0(RSLS1)のビット番号[6−4]に“110”や“111”が設定された場合には、その設定は無効である。
本実施例では、RSハードラッチ選択レジスタ1(RSLS1)のビット番号[6−4]の設定値として“111”が設定されており、外部端子入力によっては、RS3ハードラッチ乱数値レジスタ(RS3HV)に8ビット乱数RS3の値が取り込まれないように設定されている。
RSハードラッチ選択レジスタ1(RSLS1)のビット番号[3]に格納されるデータRS2RFは、RS2ハードラッチ乱数値レジスタ(RS2HV)に、外部端子入力により、8ビット乱数RS2の値を取り込む際の条件の設定を示している。図28(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRS2RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。
本実施例では、RSハードラッチ選択レジスタ1(RSLS1)のビット番号[3]の設定値として“1”が設定されており、RS2ハードラッチ乱数値レジスタ(RS2HV)から値を読み込まなくても次の値をラッチできるようになっている。
RSハードラッチ選択レジスタ1(RSLS1)のビット番号[2−0]に格納されるデータRS2LS0〜RS2LS2は、RS2ハードラッチ乱数値レジスタ(RS2HV)に、どの外部端子入力により、8ビット乱数RS2の値を取り込むかの設定を示している。図28(B)に示す例では、RSハードラッチ選択レジスタ1(RSLS1)のビット番号[2−0]に“000”が設定された場合にはPI0端子が選択され、“001”が設定された場合にはPI1端子が選択され、“010”が設定された場合にはPI2端子が選択され、“011”が設定された場合にはPI3端子が選択され、“100”が設定された場合にはPI4端子が選択され、“101”が設定された場合にはPI5/XINT端子が選択される。尚、RSハードラッチ選択レジスタ1(RSLS1)のビット番号[2−0]に“110”や“111”が設定された場合には、その設定は無効である。
本実施例では、RSハードラッチ選択レジスタ1(RSLS1)のビット番号[2−0]の設定値として“111”が設定されており、外部端子入力によっては、RS2ハードラッチ乱数値レジスタ(RS2HV)に8ビット乱数RS2の値が取り込まれないように設定されている。
図29(A)は、RL割込制御レジスタ0(RLIC0)の構成例を示している。図29(B)は、RL割込制御レジスタ0(RLIC0)に格納されるデータの各ビットにおける設定内容の一例を示している。尚、RL割込制御レジスタ0(RLIC0)のビット[7−6]のビット値は必ず“0”とされる。
RL割込制御レジスタ0(RLIC0)のビット番号[5]に格納されるデータRL11IEは、RL1ハードラッチ乱数値レジスタ1(RL1HV1)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図29(B)に示す例では、割込禁止に設定した場合には、データRL11IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RL割込制御レジスタ0(RLIC0)のビット番号[4]に格納されるデータRL10IEは、RL1ハードラッチ乱数値レジスタ0(RL1HV0)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図29(B)に示す例では、割込禁止に設定した場合には、データRL10IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RL割込制御レジスタ0(RLIC0)のビット番号[3]に格納されるデータRL03IEは、RL0ハードラッチ乱数値レジスタ3(RL0HV3)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図29(B)に示す例では、割込禁止に設定した場合には、データRL03IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RL割込制御レジスタ0(RLIC0)のビット番号[2]に格納されるデータRL02IEは、RL0ハードラッチ乱数値レジスタ2(RL0HV2)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図29(B)に示す例では、割込禁止に設定した場合には、データRL02IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RL割込制御レジスタ0(RLIC0)のビット番号[1]に格納されるデータRL01IEは、RL0ハードラッチ乱数値レジスタ1(RL0HV1)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図29(B)に示す例では、割込禁止に設定した場合には、データRL01IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RL割込制御レジスタ0(RLIC0)のビット番号[1]に格納されるデータRL00IEは、RL0ハードラッチ乱数値レジスタ0(RL0HV0)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図29(B)に示す例では、割込禁止に設定した場合には、データRL00IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
本実施例では、RL割込制御レジスタ0(RLIC0)のビット番号[5]〜[0]の設定値として、いずれも“0”が設定されており、RL0ハードラッチ乱数値レジスタ0(RL0HV0)〜RL0ハードラッチ乱数値レジスタ3(RL0HV3)、RL1ハードラッチ乱数値レジスタ0(RL1HV0)〜RL1ハードラッチ乱数値レジスタ1(RL1HV1)に乱数値が取り込まれたことを要因とする割込が禁止されるようになっている。
図30(A)は、RL割込制御レジスタ1(RLIC1)の構成例を示している。図30(B)は、RL割込制御レジスタ1(RLIC1)に格納されるデータの各ビットにおける設定内容の一例を示している。尚、RL割込制御レジスタ1(RLIC1)のビット[7−6]及びビット[3−2]のビット値は必ず“0”とされる。
RL割込制御レジスタ1(RLIC1)のビット番号[5]に格納されるデータRL31IEは、RL3ハードラッチ乱数値レジスタ1(RL3HV1)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図30(B)に示す例では、割込禁止に設定した場合には、データRL31IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RL割込制御レジスタ1(RLIC1)のビット番号[4]に格納されるデータRL30IEは、RL3ハードラッチ乱数値レジスタ0(RL3HV0)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図30(B)に示す例では、割込禁止に設定した場合には、データRL30IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RL割込制御レジスタ1(RLIC1)のビット番号[1]に格納されるデータRL21IEは、RL2ハードラッチ乱数値レジスタ1(RL2HV1)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図30(B)に示す例では、割込禁止に設定した場合には、データRL21IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RL割込制御レジスタ1(RLIC1)のビット番号[0]に格納されるデータRL20IEは、RL2ハードラッチ乱数値レジスタ0(RL2HV0)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図30(B)に示す例では、割込禁止に設定した場合には、データRL20IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
本実施例では、RL割込制御レジスタ1(RLIC1)のビット番号[5]、[4]、[1]、[0]の設定値として、いずれも“0”が設定されており、RL2ハードラッチ乱数値レジスタ0(RL2HV0)〜RL2ハードラッチ乱数値レジスタ1(RL2HV1)、RL3ハードラッチ乱数値レジスタ0(RL3HV0)〜RL3ハードラッチ乱数値レジスタ1(RL3HV1)に乱数値が取り込まれたことを要因とする割込が禁止されるようになっている。
図31(A)は、RS割込制御レジスタ(RSIC)の構成例を示している。図31(B)は、RS割込制御レジスタ(RSIC)に格納されるデータの各ビットにおける設定内容の一例を示している。尚、RS割込制御レジスタ(RSIC)は、8ビット乱数回路508aとフリーランカウンタ回路507とで兼用で用いられるレジスタであり、RS割込制御レジスタ(RSIC)のビット[7−4]は、フリーランカウンタ回路507が用いるハードラッチレジスタ(FRC0ハードラッチレジスタ(FR0HV)〜FRC3ハードラッチレジスタ(FR3HV))に関する設定を示している。
RS割込制御レジスタ(RSIC)のビット番号[7]に格納されるデータFR3IEは、FRC3ハードラッチレジスタ(FR3HV)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図31(B)に示す例では、割込禁止に設定した場合には、データFR3IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RS割込制御レジスタ(RSIC)のビット番号[6]に格納されるデータFR2IEは、FRC2ハードラッチレジスタ(FR2HV)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図31(B)に示す例では、割込禁止に設定した場合には、データFR2IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RS割込制御レジスタ(RSIC)のビット番号[5]に格納されるデータFR1IEは、FRC1ハードラッチレジスタ(FR1HV)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図31(B)に示す例では、割込禁止に設定した場合には、データFR1IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RS割込制御レジスタ(RSIC)のビット番号[4]に格納されるデータFR0IEは、FRC0ハードラッチレジスタ(FR0HV)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図31(B)に示す例では、割込禁止に設定した場合には、データFR0IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
本実施例では、RL割込制御レジスタ0(RLIC0)のビット番号[7]〜[4]の設定値として、いずれも“0”が設定されており、FRC0ハードラッチレジスタ(FR0HV)〜FRC3ハードラッチレジスタ(FR3HV)に乱数値が取り込まれたことを要因とする割込が禁止されるようになっている。
RS割込制御レジスタ(RSIC)のビット番号[3]に格納されるデータRS3IEは、RS3ハードラッチ乱数値レジスタ(RS3HV)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図31(B)に示す例では、割込禁止に設定した場合には、データRS3IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RS割込制御レジスタ(RSIC)のビット番号[2]に格納されるデータRS2IEは、RS2ハードラッチ乱数値レジスタ(RS2HV)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図31(B)に示す例では、割込禁止に設定した場合には、データRS2IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RS割込制御レジスタ(RSIC)のビット番号[1]に格納されるデータRS1IEは、RS1ハードラッチ乱数値レジスタ(RS1HV)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図31(B)に示す例では、割込禁止に設定した場合には、データRS1IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
RS割込制御レジスタ(RSIC)のビット番号[0]に格納されるデータRS0IEは、RS0ハードラッチ乱数値レジスタ(RS0HV)に、乱数値が取り込まれたことを要因とする割込の禁止/許可の設定を示している。図31(B)に示す例では、割込禁止に設定した場合には、データRS0IEのビット値が“0”となる一方、割込許可に設定した場合には、そのビット値が“1”となる。
本実施例では、RL割込制御レジスタ0(RLIC0)のビット番号[3]〜[0]の設定値として、いずれも“0”が設定されており、RS0ハードラッチ乱数値レジスタ(RS0HV)〜RS3ハードラッチ乱数値レジスタ(RS3HV)に乱数値が取り込まれたことを要因とする割込が禁止されるようになっている。
図32(A)は、RLn最大値設定レジスタ(RLnMX)の構成例を示している。図32(B)は、RLn最大値設定レジスタ(RLnMX)に格納されるデータの各ビットにおける設定内容の一例を示している。尚、図32において、nは0〜3の値をとる。図32(B)に示すように、RLn最大値設定レジスタ(RLnMX)のビット番号[15−0]に格納されるデータRLnMX15〜RLnMX0は、16ビット乱数RLnの最大値が設定される。
RLn最大値設定レジスタ(RLnMX)は、ユーザモードに移行後にソフトウェア(ユーザプログラム)にて設定可能とされており、16ビット乱数初期設定1、2(KRL1、2)において、16ビット乱数回路508bの起動方法としてソフトウェアによる起動が設定されたチャネルの16ビット乱数回路508bに対応するRLn最大値設定レジスタ(RLnMX)に、最大値(1〜65536)を設定することで、該当するチャネルの16ビット乱数回路508bが起動し、0〜最大値の範囲で乱数が生成されることとなる。尚、16ビット乱数回路508bの起動方法としてソフトウェアによる起動が設定されたチャネルの16ビット乱数回路508bに対応するRLn最大値設定レジスタ(RLnMX)に最大値を設定しないことで、該当するチャネルの16ビット乱数回路508bを起動させず、未使用に設定することができる。
本実施例では、チャネル2、3の16ビット乱数回路508bの起動方法としてソフトウェアによる起動が設定されており、さらに対応するRL2最大値設定レジスタ(RL2MX)、RL3最大値設定レジスタ(RL3MX)にそれぞれ0が設定されているため、チャネル2、3の16ビット乱数回路508bは未使用設定となる。
図33(A)は、RSn最大値設定レジスタ(RSnMX)の構成例を示している。図33(B)は、RSn最大値設定レジスタ(RSnMX)に格納されるデータの各ビットにおける設定内容の一例を示している。尚、図33において、nは0〜3の値をとる。図33(B)に示すように、RSn最大値設定レジスタ(RSnMX)のビット番号[7−0]に格納されるデータRSnMX7〜RSnMX0は、8ビット乱数RSnの最大値が設定される。
RSn最大値設定レジスタ(RSnMX)は、ユーザモードに移行後にソフトウェア(ユーザプログラム)にて設定可能とされており、8ビット乱数初期設定1、2(KRL1、2)において、8ビット乱数回路508aの起動方法としてソフトウェアによる起動が設定されたチャネルの8ビット乱数回路508aに対応するRSn最大値設定レジスタ(RSnMX)に、最大値(1〜255)を設定することで、該当するチャネルの8ビット乱数回路508aが起動し、0〜最大値の範囲で乱数が生成されることとなる。尚、8ビット乱数回路508aの起動方法としてソフトウェアによる起動が設定されたチャネルの8ビット乱数回路508aに対応するRSn最大値設定レジスタ(RSnMX)に最大値を設定しないことで、該当するチャネルの8ビット乱数回路508aを起動させず、未使用に設定することができる。
本実施例では、チャネル0〜3の8ビット乱数回路508aの起動方法としてソフトウェアによる起動が設定されており、さらに対応するRL0最大値設定レジスタ(RL0MX)〜RL3最大値設定レジスタ(RL3MX)にそれぞれ0が設定されているため、チャネル0〜3の8ビット乱数回路508aは未使用設定となる。
図34(A)は、乱数列変更レジスタ(RDSC)の構成例を示している。図34(B)は、乱数列変更レジスタ(RDSC)に格納されるデータの各ビットにおける設定内容の一例を示している。乱数列変更レジスタ(RDSC)のビット番号[7]に格納されるデータRS3SCは、8ビット乱数RS3の乱数列変更要求ビットを示している。図34(B)に示す例では、乱数列を変更しないに設定した場合には、データRS3SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRS3SCは、初期値として“0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[6]に格納されるデータRS2SCは、8ビット乱数RS2の乱数列変更要求ビットを示している。図34(B)に示す例では、乱数列を変更しないに設定した場合には、データRS2SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRS2SCは、初期値として“0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[5]に格納されるデータRS1SCは、8ビット乱数RS1の乱数列変更要求ビットを示している。図34(B)に示す例では、乱数列を変更しないに設定した場合には、データRS1SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRS1SCは、初期値として“0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[4]に格納されるデータRS0SCは、8ビット乱数RS0の乱数列変更要求ビットを示している。図34(B)に示す例では、乱数列を変更しないに設定した場合には、データRS0SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRS0SCは、初期値として“0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[3]に格納されるデータRL3SCは、16ビット乱数RL3の乱数列変更要求ビットを示している。図34(B)に示す例では、乱数列を変更しないに設定した場合には、データRL3SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRL3SCは、初期値として“0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[2]に格納されるデータRL2SCは、16ビット乱数RL2の乱数列変更要求ビットを示している。図34(B)に示す例では、乱数列を変更しないに設定した場合には、データRL2SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRL2SCは、初期値として“0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[1]に格納されるデータRL1SCは、16ビット乱数RL1の乱数列変更要求ビットを示している。図34(B)に示す例では、乱数列を変更しないに設定した場合には、データRL1SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRL1SCは、初期値として“0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[0]に格納されるデータRL0SCは、16ビット乱数RL0の乱数列変更要求ビットを示している。図34(B)に示す例では、乱数列を変更しないに設定した場合には、データRL0SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRL0SCは、初期値として“0”が設定されている。
図35(A)は、乱数ソフトラッチレジスタ(RDSL)の構成例を示している。図35(B)は、乱数ソフトラッチレジスタ(RDSL)に格納されるデータの各ビットにおける設定内容の一例を示している。乱数ソフトラッチレジスタ(RDSL)のビット番号[7]に格納されるデータRS3SLは、8ビット乱数RS3の乱数値を、RS3ソフトラッチ乱数値レジスタ(RS3SV)に取り込むためのビットを示している。図35(B)に示す例では、乱数値を取り込まないに設定した場合には、データRS3SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRS3SLは、初期値として“0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[6]に格納されるデータRS2SLは、8ビット乱数RS2の乱数値を、RS2ソフトラッチ乱数値レジスタ(RS2SV)に取り込むためのビットを示している。図35(B)に示す例では、乱数値を取り込まないに設定した場合には、データRS2SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRS2SLは、初期値として“0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[5]に格納されるデータRS1SLは、8ビット乱数RS1の乱数値を、RS1ソフトラッチ乱数値レジスタ(RS1SV)に取り込むためのビットを示している。図35(B)に示す例では、乱数値を取り込まないに設定した場合には、データRS1SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRS1SLは、初期値として“0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[4]に格納されるデータRS0SLは、8ビット乱数RS0の乱数値を、RS0ソフトラッチ乱数値レジスタ(RS0SV)に取り込むためのビットを示している。図35(B)に示す例では、乱数値を取り込まないに設定した場合には、データRS0SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRS0SLは、初期値として“0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[3]に格納されるデータRL3SLは、16ビット乱数RL3の乱数値を、RL3ソフトラッチ乱数値レジスタ(RL3SV)に取り込むためのビットを示している。図35(B)に示す例では、乱数値を取り込まないに設定した場合には、データRL3SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRL3SLは、初期値として“0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[2]に格納されるデータRL2SLは、16ビット乱数RL2の乱数値を、RL2ソフトラッチ乱数値レジスタ(RL2SV)に取り込むためのビットを示している。図35(B)に示す例では、乱数値を取り込まないに設定した場合には、データRL2SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRL2SLは、初期値として“0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[1]に格納されるデータRL1SLは、16ビット乱数RL1の乱数値を、RL1ソフトラッチ乱数値レジスタ(RL1SV)に取り込むためのビットを示している。図35(B)に示す例では、乱数値を取り込まないに設定した場合には、データRL1SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRL1SLは、初期値として“0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[0]に格納されるデータRL0SLは、16ビット乱数RL0の乱数値を、RL0ソフトラッチ乱数値レジスタ(RL0SV)に取り込むためのビットを示している。図35(B)に示す例では、乱数値を取り込まないに設定した場合には、データRL0SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。尚、データRL0SLは、初期値として“0”が設定されている。
図36(A)は、乱数ソフトラッチフラグレジスタ(RDSF)の構成例を示している。図36(B)は、乱数ソフトラッチフラグレジスタ(RDSF)に格納されるデータの各ビットにおける設定内容の一例を示している。乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[7]に格納されるデータRS3SFは、RS3ソフトラッチ乱数値レジスタ(RS3SV)に、乱数値が取り込まれたことを示している。図36(B)に示す例では、乱数値が取り込まれていない場合には、データRS3SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRS3SFは、初期値として“0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[6]に格納されるデータRS2SFは、RS2ソフトラッチ乱数値レジスタ(RS2SV)に、乱数値が取り込まれたことを示している。図36(B)に示す例では、乱数値が取り込まれていない場合には、データRS2SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRS2SFは、初期値として“0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[5]に格納されるデータRS1SFは、RS1ソフトラッチ乱数値レジスタ(RS1SV)に、乱数値が取り込まれたことを示している。図36(B)に示す例では、乱数値が取り込まれていない場合には、データRS1SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRS1SFは、初期値として“0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[4]に格納されるデータRS0SFは、RS0ソフトラッチ乱数値レジスタ(RS0SV)に、乱数値が取り込まれたことを示している。図36(B)に示す例では、乱数値が取り込まれていない場合には、データRS0SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRS0SFは、初期値として“0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[3]に格納されるデータRL3SFは、RL3ソフトラッチ乱数値レジスタ(RL3SV)に、乱数値が取り込まれたことを示している。図36(B)に示す例では、乱数値が取り込まれていない場合には、データRL3SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL3SFは、初期値として“0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[2]に格納されるデータRL2SFは、RL2ソフトラッチ乱数値レジスタ(RL2SV)に、乱数値が取り込まれたことを示している。図36(B)に示す例では、乱数値が取り込まれていない場合には、データRL2SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL2SFは、初期値として“0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[1]に格納されるデータRL1SFは、RL1ソフトラッチ乱数値レジスタ(RL1SV)に、乱数値が取り込まれたことを示している。図36(B)に示す例では、乱数値が取り込まれていない場合には、データRL1SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL1SFは、初期値として“0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[0]に格納されるデータRL0SFは、RL0ソフトラッチ乱数値レジスタ(RL0SV)に、乱数値が取り込まれたことを示している。図36(B)に示す例では、乱数値が取り込まれていない場合には、データRL0SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL0SFは、初期値として“0”が設定されている。
図37(A)は、RLnソフトラッチ乱数値レジスタ(RLnSV)の構成例を示している。図37(B)は、RLnソフトラッチ乱数値レジスタ(RLnSV)に格納されるデータの各ビットにおける格納内容の一例を示している。尚、図37において、nは0〜3の値をとる。図37(B)に示すように、RLnソフトラッチ乱数値レジスタ(RLnSV)のビット番号[15−0]に格納されるデータRLnSV15〜RLnSV0は、乱数ソフトラッチレジスタ(RDSL)により取り込まれた16ビット乱数RLnの値が格納される。尚、乱数値が取り込まれると、乱数ソフトラッチフラグレジスタ(RDSF)の該当するビットに“1”がセットされる。
図38(A)は、RSnソフトラッチ乱数値レジスタ(RSnSV)の構成例を示している。図38(B)は、RSnソフトラッチ乱数値レジスタ(RSnSV)に格納されるデータの各ビットにおける格納内容の一例を示している。尚、図38において、nは0〜3の値をとる。図38(B)に示すように、RSnソフトラッチ乱数値レジスタ(RSnSV)のビット番号[7−0]に格納されるデータRSnSV7〜RSnSV0は、乱数ソフトラッチレジスタ(RDSL)により取り込まれた8ビット乱数RSnの値が格納される。尚、乱数値が取り込まれると、乱数ソフトラッチフラグレジスタ(RDSF)の該当するビットに“1”がセットされる。
図39(A)は、RLハードラッチフラグレジスタ0(RLHF0)の構成例を示している。図39(B)は、RLハードラッチフラグレジスタ0(RLHF0)に格納されるデータの各ビットにおける設定内容の一例を示している。尚、RLハードラッチフラグレジスタ0(RLHF0)のビット[7−6]のビット値は必ず“0”とされる。
RLハードラッチフラグレジスタ0(RLHF0)のビット番号[5]に格納されるデータRL11HFは、RL1ハードラッチ乱数値レジスタ1に、乱数値が取り込まれたことを示している。図39(B)に示す例では、乱数値が取り込まれていない場合には、データRL11HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL11HFは、初期値として“0”が設定されている。
RLハードラッチフラグレジスタ0(RLHF0)のビット番号[4]に格納されるデータRL10HFは、RL1ハードラッチ乱数値レジスタ0に、乱数値が取り込まれたことを示している。図39(B)に示す例では、乱数値が取り込まれていない場合には、データRL10HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL10HFは、初期値として“0”が設定されている。
RLハードラッチフラグレジスタ0(RLHF0)のビット番号[3]に格納されるデータRL03HFは、RL0ハードラッチ乱数値レジスタ3に、乱数値が取り込まれたことを示している。図39(B)に示す例では、乱数値が取り込まれていない場合には、データRL03HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL03HFは、初期値として“0”が設定されている。
RLハードラッチフラグレジスタ0(RLHF0)のビット番号[2]に格納されるデータRL02HFは、RL0ハードラッチ乱数値レジスタ2に、乱数値が取り込まれたことを示している。図39(B)に示す例では、乱数値が取り込まれていない場合には、データRL02HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL02HFは、初期値として“0”が設定されている。
RLハードラッチフラグレジスタ0(RLHF0)のビット番号[1]に格納されるデータRL01HFは、RL0ハードラッチ乱数値レジスタ1に、乱数値が取り込まれたことを示している。図39(B)に示す例では、乱数値が取り込まれていない場合には、データRL01HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL01HFは、初期値として“0”が設定されている。
RLハードラッチフラグレジスタ0(RLHF0)のビット番号[0]に格納されるデータRL00HFは、RL0ハードラッチ乱数値レジスタ0に、乱数値が取り込まれたことを示している。図39(B)に示す例では、乱数値が取り込まれていない場合には、データRL00HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL00HFは、初期値として“0”が設定されている。
図40(A)は、RLハードラッチフラグレジスタ1(RLHF1)の構成例を示している。図40(B)は、RLハードラッチフラグレジスタ1(RLHF1)に格納されるデータの各ビットにおける設定内容の一例を示している。尚、RLハードラッチフラグレジスタ1(RLHF1)のビット[7−6]及びビット[3−2]のビット値は必ず“0”とされる。
RLハードラッチフラグレジスタ1(RLHF1)のビット番号[5]に格納されるデータRL31HFは、RL3ハードラッチ乱数値レジスタ1に、乱数値が取り込まれたことを示している。図40(B)に示す例では、乱数値が取り込まれていない場合には、データRL31HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL31HFは、初期値として“0”が設定されている。
RLハードラッチフラグレジスタ1(RLHF1)のビット番号[4]に格納されるデータRL30HFは、RL3ハードラッチ乱数値レジスタ0に、乱数値が取り込まれたことを示している。図40(B)に示す例では、乱数値が取り込まれていない場合には、データRL30HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL30HFは、初期値として“0”が設定されている。
RLハードラッチフラグレジスタ1(RLHF1)のビット番号[1]に格納されるデータRL21HFは、RL2ハードラッチ乱数値レジスタ1に、乱数値が取り込まれたことを示している。図40(B)に示す例では、乱数値が取り込まれていない場合には、データRL21HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL21HFは、初期値として“0”が設定されている。
RLハードラッチフラグレジスタ1(RLHF1)のビット番号[1]に格納されるデータRL20HFは、RL2ハードラッチ乱数値レジスタ0に、乱数値が取り込まれたことを示している。図40(B)に示す例では、乱数値が取り込まれていない場合には、データRL20HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRL20HFは、初期値として“0”が設定されている。
図41(A)は、RSハードラッチフラグレジスタ(RSHF)の構成例を示している。図41(B)は、RSハードラッチフラグレジスタ(RSHF)に格納されるデータの各ビットにおける設定内容の一例を示している。尚、RSハードラッチフラグレジスタ(RSHF)は、8ビット乱数回路508aとフリーランカウンタ回路507とで兼用で用いられるレジスタであり、RSハードラッチフラグレジスタ(RSHF)のビット[7−4]は、フリーランカウンタ回路507が用いるハードラッチレジスタ(FRC0ハードラッチレジスタ(FR0HV)〜FRC3ハードラッチレジスタ(FR3HV))に関する設定を示している。
RSハードラッチフラグレジスタ(RSHF)のビット番号[3]に格納されるデータRS3HFは、RS3ハードラッチ乱数値レジスタ(RS3HV)に、乱数値が取り込まれたことを示している。図41(B)に示す例では、乱数値が取り込まれていない場合には、データRS3HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRS3HFは、初期値として“0”が設定されている。
RSハードラッチフラグレジスタ(RSHF)のビット番号[2]に格納されるデータRS2HFは、RS2ハードラッチ乱数値レジスタ(RS2HV)に、乱数値が取り込まれたことを示している。図41(B)に示す例では、乱数値が取り込まれていない場合には、データRS2HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRS2HFは、初期値として“0”が設定されている。
RSハードラッチフラグレジスタ(RSHF)のビット番号[1]に格納されるデータRS1HFは、RS1ハードラッチ乱数値レジスタ(RS1HV)に、乱数値が取り込まれたことを示している。図41(B)に示す例では、乱数値が取り込まれていない場合には、データRS1HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRS1HFは、初期値として“0”が設定されている。
RSハードラッチフラグレジスタ(RSHF)のビット番号[0]に格納されるデータRS0HFは、RS0ハードラッチ乱数値レジスタ(RS0HV)に、乱数値が取り込まれたことを示している。図41(B)に示す例では、乱数値が取り込まれていない場合には、データRS0HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。尚、データRS0HFは、初期値として“0”が設定されている。
図42(A)は、RL0ハードラッチ乱数値レジスタm(RL0mHV)の構成例を示している。図42(B)は、RL0ハードラッチ乱数値レジスタm(RL0mHV)に格納されるデータの各ビットにおける格納内容の一例を示している。尚、図42において、mは0〜3の値をとる。図42(B)に示すように、RL0ハードラッチ乱数値レジスタm(RL0mHV)のビット番号[15−0]に格納されるデータRL0mHV15〜RL0mHV0は、外部端子入力により取り込まれた16ビット乱数RL0の値が格納される。尚、乱数値が取り込まれると、RLハードラッチフラグレジスタ0(RLHF0)の該当するビットに“1”がセットされる。
図43(A)は、RL1ハードラッチ乱数値レジスタm(RL1mHV)の構成例を示している。図43(B)は、RL1ハードラッチ乱数値レジスタm(RL1mHV)に格納されるデータの各ビットにおける格納内容の一例を示している。尚、図43において、mは0〜3の値をとる。図43(B)に示すように、RL1ハードラッチ乱数値レジスタm(RL1mHV)のビット番号[15−0]に格納されるデータRL1mHV15〜RL1mHV0は、外部端子入力により取り込まれた16ビット乱数RL1の値が格納される。尚、乱数値が取り込まれると、RLハードラッチフラグレジスタ0(RLHF0)の該当するビットに“1”がセットされる。
図44(A)は、RL2ハードラッチ乱数値レジスタm(RL2mHV)の構成例を示している。図44(B)は、RL2ハードラッチ乱数値レジスタm(RL2mHV)に格納されるデータの各ビットにおける格納内容の一例を示している。尚、図44において、mは0〜3の値をとる。図44(B)に示すように、RL2ハードラッチ乱数値レジスタm(RL2mHV)のビット番号[15−0]に格納されるデータRL2mHV15〜RL2mHV0は、外部端子入力により取り込まれた16ビット乱数RL2の値が格納される。尚、乱数値が取り込まれると、RLハードラッチフラグレジスタ1(RLHF1)の該当するビットに“1”がセットされる。
図45(A)は、RL3ハードラッチ乱数値レジスタm(RL3mHV)の構成例を示している。図45(B)は、RL3ハードラッチ乱数値レジスタm(RL3mHV)に格納されるデータの各ビットにおける格納内容の一例を示している。尚、図45において、mは0〜3の値をとる。図45(B)に示すように、RL3ハードラッチ乱数値レジスタm(RL3mHV)のビット番号[15−0]に格納されるデータRL3mHV15〜RL3mHV0は、外部端子入力により取り込まれた16ビット乱数RL3の値が格納される。尚、乱数値が取り込まれると、RLハードラッチフラグレジスタ1(RLHF1)の該当するビットに“1”がセットされる。
図46(A)は、RSnハードラッチ乱数値レジスタ(RSnHV)の構成例を示している。図46(B)は、RSnハードラッチ乱数値レジスタ(RSnHV)に格納されるデータの各ビットにおける格納内容の一例を示している。尚、図46において、nは0〜3の値をとる。図46(B)に示すように、RSnハードラッチ乱数値レジスタ(RLnHV)のビット番号[70]に格納されるデータRSnHV7〜RSnHV0は、外部端子入力により取り込まれた8ビット乱数RSnの値が格納される。尚、乱数値が取り込まれると、RSハードラッチフラグレジスタ(RSHF)の該当するビットに“1”がセットされる。
本実施例においてメイン制御部41は、パラレル出力ポート513を介してサブ制御部91に各種のコマンドを送信する。メイン制御部41からサブ制御部91へ送信されるコマンドは一方向のみで送られ、サブ制御部91からメイン制御部41へ向けてコマンドが送られることはない。また、本実施例では、パラレル出力ポート513を介してサブ制御部91に対してコマンドが送信される構成、すなわちコマンドがパラレル信号にて送信される構成であるが、シリアル通信回路512を介してサブ制御部91に対してコマンドを送信する構成、すなわちコマンドをシリアル信号にて送信する構成としても良い。
また、メイン制御部41は、遊技制御基板40に接続された各種スイッチ類の検出状態がパラレル入力ポート511から入力される。そしてメイン制御部41は、これらパラレル入力ポート511から入力される各種スイッチ類の検出状態に応じて段階的に移行する基本処理を実行する。
また、メイン制御部41は、割込の発生により基本処理に割り込んで割込処理を実行できるようになっている。本実施例では、タイマ回路509にてタイムアウトが発生したこと、すなわち一定時間間隔(本実施例では、約0.56ms)毎に後述するタイマ割込処理(メイン)を実行する。
また、メイン制御部41は、割込処理の実行中に他の割込を禁止するように設定されているとともに、複数の割込が同時に発生した場合には、予め定められた順位によって優先して実行する割込が設定されている。尚、割込処理の実行中に他の割込要因が発生し、割込処理が終了してもその割込要因が継続している状態であれば、その時点で新たな割込が発生することとなる。
メイン制御部41は、基本処理として遊技制御基板40に接続された各種スイッチ類の検出状態が変化するまでは制御状態に応じた処理を繰り返しループし、各種スイッチ類の検出状態の変化に応じて段階的に移行する処理を実行する。また、メイン制御部41は、一定時間間隔(本実施例では、約0.56ms)毎にタイマ割込処理(メイン)を実行する。尚、タイマ割込処理(メイン)の実行間隔は、基本処理において制御状態に応じて繰り返す処理が一巡する時間とタイマ割込処理(メイン)の実行時間とを合わせた時間よりも長い時間に設定されており、今回と次回のタイマ割込処理(メイン)との間で必ず制御状態に応じて繰り返す処理が最低でも一巡することとなる。
演出制御基板90には、演出用スイッチ56が接続されており、この演出用スイッチ56の検出信号が入力されるようになっている。
演出制御基板90には、液晶表示器51、演出効果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には、サブ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に記憶されているデータが保持されるようになっている。
本実施例のスロットマシン1は、設定値に応じてメダルの払出率が変わるものである。詳しくは、後述する内部抽選において設定値に応じた当選確率を用いることにより、メダルの払出率が変わるようになっている。設定値は1〜6の6段階からなり、6が最も払出率が高く、5、4、3、2、1の順に値が小さくなるほど払出率が低くなる。すなわち設定値として6が設定されている場合には、遊技者にとって最も有利度が高く、5、4、3、2、1の順に値が小さくなるほど有利度が段階的に低くなる。
設定値を変更するためには、設定キースイッチ37をon状態としてからスロットマシン1の電源をonする必要がある。設定キースイッチ37をon状態として電源をonすると、設定値表示器24にRAM41cから読み出された設定値が表示値として表示され、リセット/設定スイッチ38の操作による設定値の変更操作が可能な設定変更状態に移行する。設定変更状態において、リセット/設定スイッチ38が操作されると、設定値表示器24に表示された表示値が1ずつ更新されていく(設定値6からさらに操作されたときは、設定値1に戻る)。そして、スタートスイッチ7が操作されると表示値を設定値として確定する。そして、設定キースイッチ37がoffされると、確定した表示値(設定値)がメイン制御部41のRAM41cに格納され、遊技の進行が可能な状態に移行する。
尚、設定キースイッチ37がon状態で電源投入された場合に、ドア開放検出スイッチ25により前面扉1bの開放が検出されていることを条件に、設定変更状態に移行する構成としても良く、このような構成とすることで、前面扉1bが開放されていない状態で不正に設定変更がされてしまうことを防止できる。また、前面扉1bの開放が検出されていることを条件に、設定変更状態に移行する構成においては、設定変更状態に移行後、ドア開放検出スイッチ25により前面扉1bの開放が検出されなくなっても、設定変更状態を維持することが好ましく、これにより、設定変更中に前面扉1bが一時的に閉じてしまっても、再度、設定変更状態に移行させるための操作を必要とせず、設定変更操作が煩雑となってしまうことがない。また、設定変更状態に移行後、スタートスイッチ7が操作されて設定値が確定した後、設定キースイッチ37がoffとなったときに、ドア開放検出スイッチ25により前面扉1bの開放が検出されていることを条件に、設定変更状態を終了して遊技の進行が可能な状態に移行する構成としても良く、このような構成においても、前面扉1bが開放されていない状態で不正に設定変更がされてしまうことを防止できる。
また、設定値を確認するためには、ゲーム終了後、賭数が設定されていない状態で設定キースイッチ37をon状態とすれば良い。このような状況で設定キースイッチ37をon状態とすると、設定値表示器24にRAM41cから読み出された設定値が表示されることで設定値を確認可能な設定確認状態に移行する。設定確認状態においては、ゲームの進行が不能であり、設定キースイッチ37をoff状態とすることで、設定確認状態が終了し、ゲームの進行が可能な状態に復帰することとなる。
尚、ゲーム終了後、賭数が設定されていない状態で設定キースイッチ37がon状態となったときに、ドア開放検出スイッチ25により前面扉1bの開放が検出されていることを条件に、設定確認状態に移行する構成としても良く、このような構成とすることで、前面扉1bが開放されていない状態で不正に設定値が確認されてしまうことを防止できる。また、前面扉1bの開放が検出されていることを条件に、設定確認状態に移行する構成においては、設定確認状態に移行後、ドア開放検出スイッチ25により前面扉1bの開放が検出されなくなっても、設定確認状態を維持することが好ましく、これにより、設定確認中に前面扉1bが一時的に閉じてしまっても、再度、設定確認状態に移行させるための操作を必要とせず、設定確認操作が煩雑となってしまうことがない。また、設定確認状態に移行後、スタートスイッチ7が操作されて設定値が確定した後、設定キースイッチ37がoffとなったときに、ドア開放検出スイッチ25により前面扉1bの開放が検出されていることを条件に、設定確認状態を終了して遊技の進行が可能な状態に復帰する構成としても良く、このような構成においても、前面扉1bが開放されていない状態で不正に設定値が確認されてしまうことを防止できる。
本実施例のスロットマシン1においては、メイン制御部41は、タイマ割込処理(メイン)を実行する毎に、電断検出回路48からの電圧低下信号が検出されているか否かを判定する停電判定処理を行い、停電判定処理において電圧低下信号が検出されていると判定した場合に、次回復帰時にRAM41cのデータが正常か否かを判定するためのデータを設定する電断処理(メイン)を実行する。
そして、メイン制御部41は、その起動時においてRAM41cのデータが正常であることを条件に、RAM41cに記憶されているデータに基づいてメイン制御部41の処理状態を電断前の状態に復帰させるが、RAM41cデータが正常でない場合には、RAM異常と判定し、RAM異常エラーコードをレジスタにセットしてRAM異常エラー状態に制御し、遊技の進行を不能化させるようになっている。
また、サブ制御部91もタイマ割込処理(サブ)において電断検出回路98からの電圧低下信号が検出されているか否かを判定し、電圧低下信号が検出されていると判定した場合に、次回復帰時にRAM91cのデータが正常か否かを判定するためのデータを設定する電断処理(サブ)を実行する。
そして、サブ制御部91は、その起動時においてRAM91cのデータが正常であることを条件に、RAM91cに記憶されているデータに基づいてサブ制御部91の処理状態を電断前の状態に復帰させるが、RAM91cのデータが正常でない場合には、RAM異常と判定し、RAM91cを初期化するようになっている。この場合、メイン制御部41と異なり、RAM91cが初期化されるのみで演出の実行が不能化されることはない。
また、サブ制御部91は、その起動時においてRAM91cのデータが正常であると判断された場合でも、メイン制御部41から設定変更状態に移行した旨を示す後述の設定コマンドを受信した場合、起動後一定時間が経過してもメイン制御部41の制御状態が復帰した旨を示す後述の復帰コマンドも設定コマンドも受信しない場合にも、RAM91cを初期化するようになっている。この場合も、RAM91cが初期化されるのみで演出の実行が不能化されることはない。
次に、メイン制御部41のRAM41cの初期化について説明する。メイン制御部41のRAM41cの格納領域は、重要ワーク、非保存ワーク、一般ワーク、特別ワーク、未使用領域、スタック領域に区分されている。
本実施例においてメイン制御部41は、RAM異常エラー発生時、設定キースイッチ37がonの状態での起動時、ボーナス終了時、設定キースイッチ37がoffの状態での起動時でRAM41cのデータが破壊されていないとき、1ゲーム終了時の5つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる4種類の初期化を行う。
初期化1は起動時において設定キースイッチ37がonの状態であり、設定変更状態へ移行する場合において、その前に行う初期化、またはRAM異常エラー発生時に行う初期化であり、初期化1では、RAM41cの格納領域のうち重要ワーク及び特別ワーク以外の領域が初期化される。初期化2は、ボーナス終了時に行う初期化であり、初期化2では、RAM41cの格納領域のうち一般ワーク、未使用領域及び未使用スタック領域が初期化される。初期化3は、起動時において設定キースイッチ37がoffの状態であり、かつRAM41cのデータが破壊されていない場合において行う初期化であり、初期化3では、非保存ワーク、未使用領域及び未使用スタック領域が初期化される。初期化4は、1ゲーム終了時に行う初期化であり、初期化4では、RAM41cの格納領域のうち、未使用領域及び未使用スタック領域が初期化される。
尚、本実施例では、初期化1を設定変更状態の移行前に行っているが、設定変更状態の終了時に行ったり、設定変更状態移行前、設定変更状態終了時の双方で行ったりするようにしても良い。
本実施例のスロットマシン1は、前述のように遊技状態に応じて設定可能な賭数の規定数が定められており、遊技状態に応じて定められた規定数の賭数が設定されたことを条件にゲームを開始させることが可能となる。尚、本実施例では、遊技状態に応じた規定数の賭数が設定された時点で、入賞ラインLNが有効化される。
本実施例のスロットマシン1は、全てのリール2L、2C、2Rが停止した際に、有効化された入賞ライン(本実施例の場合、常に全ての入賞ラインが有効化されるため、以下では、有効化された入賞ラインを単に入賞ラインと呼ぶ)上に役と呼ばれる図柄の組合せが揃うと入賞となる。役は、同一図柄の組合せであっても良いし、異なる図柄を含む組合せであっても良い。
入賞となる役の種類は、遊技状態に応じて定められているが、大きく分けて、メダルの払い出しを伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役と、遊技者にとって有利な遊技状態への移行を伴う特別役と、がある。以下では、小役と再遊技役をまとめて一般役とも呼ぶ。
遊技状態に応じて定められた各役の入賞が発生するためには、後述する内部抽選に当選して、当該役の当選フラグがRAM41cに設定されている必要がある。
尚、これら各役の当選フラグのうち、小役及び再遊技役の当選フラグは、当該フラグが設定されたゲームにおいてのみ有効とされ、次のゲームでは無効となるが、特別役の当選フラグは、当該フラグにより許容された役の組合せが揃うまで有効とされ、許容された役の組合せが揃ったゲームにおいて無効となる。すなわち特別役の当選フラグが一度当選すると、例え、当該フラグにより許容された役の組合せを揃えることができなかった場合にも、その当選フラグは無効とされずに、次のゲームへ持ち越されることとなる。
以下、本実施例の内部抽選について説明する。内部抽選は、メイン制御部41が上記した各役への入賞を許容するか否かを、全てのリール2L、2C、2Rの表示結果が導出表示される以前に(実際には、スタートスイッチ7の検出時)決定するものである。内部抽選では、まず、スタートスイッチ7の検出時に内部抽選用の乱数値(0〜65535の整数)を取得する。詳しくは、乱数回路508bのチャネルRL0により生成され、RL0ハードラッチ乱数値レジスタ0(RL0HV0)に格納されている値をRAM41cに割り当てられた抽選用ワークに設定する。そして、遊技状態及び特別役の持ち越しの有無に応じて定められた各役について、抽選用ワークに格納された数値データと、現在の遊技状態及びRTの種類、賭数及び設定値に応じて定められた各役の判定値数に応じて行われる。
尚、既に、図24で説明したように、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット2−0の設定内容によりいずれかの端子からの信号(ラッチ信号)に基づいて、乱数回路508bのチャネルRL0のRL0ハードラッチ乱数値レジスタ0(RL0HV0)に乱数値をラッチさせるかが設定されている。本実施例では、スタートスイッチ7からの検出信号が入力されるPI0端子からの信号に基づいて乱数回路508bのチャネルRL0のRL0ハードラッチ乱数値レジスタ0(RL0HV0)に乱数値をラッチさせる旨が設定されており、スタートスイッチ7が操作されたタイミングで乱数回路508bのチャネルRL0におけるRL0ハードラッチ乱数値レジスタ0(RL0HV0)に乱数値をラッチできるように構成されている。
内部抽選では、内部抽選の対象となる役、現在の遊技状態、現在のRTの種別及び設定値に対応して定められた判定値数を、内部抽選用の乱数値(抽選用ワークに格納された数値データ)に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定される。このため、判定値数の大小に応じた確率(判定値数/65536)で役が当選することとなる。
そして、いずれかの役の当選が判定された場合には、当選が判定された役に対応する当選フラグをRAM41cに割り当てられた内部当選フラグ格納ワークに設定する。内部当選フラグ格納ワークは、2バイトの格納領域にて構成されており、そのうちの上位バイトが、特別役の当選フラグが設定される特別役格納ワークとして割り当てられ、下位バイトが、一般役の当選フラグが設定される一般役格納ワークとして割り当てられている。詳しくは、特別役が当選した場合には、当該特別役が当選した旨を示す特別役の当選フラグを特別役格納ワークに設定し、一般役格納ワークに設定されている当選フラグをクリアする。また、一般役が当選した場合には、当該一般役が当選した旨を示す一般役の当選フラグを一般役格納ワークに設定する。尚、いずれの役及び役の組合せにも当選しなかった場合には、一般役格納ワークのみクリアする。
次に、リール2L、2C、2Rの停止制御について説明する。
メイン制御部41は、リールの回転が開始したとき、及びリールが停止し、かつ未だ回転中のリールが残っているときに、ROM41bAに格納されているテーブルインデックス及びテーブル作成用データを参照して、回転中のリール別に停止制御テーブルを作成する。そして、ストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作が有効に検出されたときに、該当するリールの停止制御テーブルを参照し、参照した停止制御テーブルの滑りコマ数に基づいて、操作されたストップスイッチ8L、8C、8Rに対応するリール2L、2C、2Rの回転を停止させる制御を行う。
テーブルインデックスには、内部抽選による当選フラグの設定状態(以下、内部当選状態と呼ぶ)別に、テーブルインデックスを参照する際の基準アドレスから、テーブル作成用データが格納された領域の先頭アドレスを示すインデックスデータが格納されているアドレスまでの差分が登録されている。これにより内部当選状態に応じた差分を取得し、基準アドレスに対してその差分を加算することで該当するインデックスデータを取得することが可能となる。尚、役の当選状況が異なる場合でも、同一の制御が適用される場合においては、インデックスデータとして同一のアドレスが格納されており、このような場合には、同一のテーブル作成用データを参照して、停止制御テーブルが作成されることとなる。
テーブル作成用データは、停止操作位置に応じた滑りコマ数を示す停止制御テーブルと、リールの停止状況に応じて参照すべき停止制御テーブルのアドレスと、からなる。
リールの停止状況に応じて参照される停止制御テーブルは、全てのリールが回転しているか、左リールのみ停止しているか、中リールのみ停止しているか、右リールのみ停止しているか、左、中リールが停止しているか、左、右リールが停止しているか、中、右リールが停止しているか、によって異なる場合があり、更に、いずれかのリールが停止している状況においては、停止済みのリールの停止位置によっても異なる場合があるので、それぞれの状況について、参照すべき停止制御テーブルのアドレスが回転中のリール別に登録されており、テーブル作成用データの先頭アドレスに基づいて、それぞれの状況に応じて参照すべき停止制御テーブルのアドレスが特定可能とされ、この特定されたアドレスから、それぞれの状況に応じて必要な停止制御テーブルを特定できるようになっている。尚、リールの停止状況や停止済みのリールの停止位置が異なる場合でも、同一の停止制御テーブルが適用される場合においては、停止制御テーブルのアドレスとして同一のアドレスが登録されているものもあり、このような場合には、同一の停止制御テーブルが参照されることとなる。
停止制御テーブルは、停止操作が行われたタイミング別の滑りコマ数を特定可能なデータである。本実施例では、リールモータ32L、32C、32Rに、336ステップ(0〜335)の周期で1周するステッピングモータを用いている。すなわちリールモータ32L、32C、32Rを336ステップ駆動させることでリール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図柄の範囲から図柄の停止位置を指定できることとなる。
本実施例では、いずれかの役に当選している場合には、当選役を入賞ライン上に4コマの範囲で最大限引き込み、当選していない役が入賞ライン上に揃わないように引き込む滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う一方、いずれの役にも当選していない場合には、いずれの役も揃わない滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う。これにより、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で当選している役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、最大4コマの引込範囲で揃えずに停止させる制御が行われることとなる。
特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合など、特別役と小役が同時に当選している場合には、当選した小役を入賞ラインに4コマの範囲で最大限に引き込むように滑りコマ数が定められているとともに、当選した小役を入賞ラインに最大4コマの範囲で引き込めない停止操作位置については、当選した特別役を入賞ラインに4コマの範囲で最大限に引き込むように滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う。これにより、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で当選している小役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、入賞ライン上に最大4コマの引込範囲で当選している小役を引き込めない場合には、入賞ライン上に最大4コマの引込範囲で当選している特別役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、4コマの引込範囲で揃えずに停止させる制御が行われることとなる。すなわちこのような場合には、特別役よりも小役を入賞ライン上に揃える制御が優先され、小役を引き込めない場合にのみ、特別役を入賞させることが可能となる。尚、特別役と小役を同時に引き込める場合には、小役のみを引き込み、特別役と同時に小役が入賞ライン上に揃わないようになっている。
尚、本実施例では、特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合や新たに特別役と小役が同時に当選した場合など、特別役と小役が同時に当選している場合には、当選した特別役よりも当選した小役が優先され、小役が引き込めない場合のみ、特別役を入賞ライン上に揃える制御を行っているが、特別役と小役が同時に当選している場合に、小役よりも特別役を入賞ライン上に揃える制御が優先され、特別役を引き込めない場合にのみ、小役を入賞ライン上に揃える制御を行っても良い。
特別役が前ゲーム以前から持ち越されている状態で再遊技役が当選した場合など、特別役と再遊技役が同時に当選している場合には、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で再遊技役の図柄を揃えて停止させる制御が行われる。尚、この場合、再遊技役を構成する図柄または同時当選する再遊技役を構成する図柄は、リール2L、2C、2Rのいずれについても5図柄以内、すなわち4コマ以内の間隔で配置されており、4コマの引込範囲で必ず任意の位置に停止させることができるので、特別役と再遊技役が同時に当選している場合には、遊技者によるストップスイッチ8L、8C、8Rの操作タイミングに関わらずに、必ず再遊技役が揃って入賞することとなる。すなわちこのような場合には、特別役よりも再遊技役を入賞ライン上に揃える制御が優先され、必ず再遊技役が入賞することとなる。尚、特別役と再遊技役を同時に引き込める場合には、再遊技役のみを引き込み、再遊技役と同時に特別役が入賞ライン上に揃わないようになっている。
本実施例においてメイン制御部41は、リール2L、2C、2Rの回転が開始した後、ストップスイッチ8L、8C、8Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。尚、リール回転エラーの発生により、一時的にリールの回転が停止した場合でも、その後リール回転が再開した後、ストップスイッチ8L、8C、8Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。
尚、本実施例では、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっているが、リールの回転が開始してから、予め定められた自動停止時間が経過した場合に、リールの停止操作がなされない場合でも、停止操作がなされたものとみなして自動的に各リールを停止させる自動停止制御を行うようにしても良い。この場合には、遊技者の操作を介さずにリールが停止することとなるため、例え、いずれかの役が当選している場合でもいずれの役も構成しない表示結果を導出させることが好ましい。
本実施例においてメイン制御部41は、ゲームの開始後、リールの回転を開始させる毎にその時点、すなわちリールの回転を開始させた時点から経過した時間であるゲーム時間を計時するようになっており、1ゲームの終了後、メダルの投入等により規定数の賭数が設定され、ゲームの開始操作が有効となった状態でゲームの開始操作がされたときに、前のゲームのリール回転開始時点から計時を開始したゲーム時間が所定の規制時間(本実施例では4.1秒)以上であれば、すなわち前のゲームのリール回転開始時点から所定の規制時間が経過していれば、その時点で当該ゲームにおけるリールの回転を開始させる。
一方、1ゲームの終了後、メダルの投入等により規定数の賭数が設定され、ゲームの開始操作が有効となった状態でゲームの開始操作がされたときに、前のゲームのリール回転開始時点から計時を開始したゲーム時間が所定の規制時間未満であれば、すなわち前のゲームのリール回転開始時点から所定の規制時間が経過していなければ、その時点ではリールの回転を開始させず、前のゲームのリール回転開始時点から計時を開始したゲーム時間が所定の規制時間に到達するまで待機し、所定の規制時間に到達した時点で当該ゲームにおけるリールの回転を開始させる。
次に、メイン制御部41がサブ制御部91に対して送信するコマンドについて説明する。
本実施例では、メイン制御部41がサブ制御部91に対して、投入枚数コマンド、クレジットコマンド、内部当選コマンド、リール回転開始コマンド、リール停止コマンド、入賞番号コマンド、払出開始コマンド、払出終了コマンド、復帰コマンド、遊技状態コマンド、待機コマンド、打止コマンド、エラーコマンド、設定コマンド、設定確認コマンド、ドアコマンド、操作検出コマンドを含む複数種類のコマンドを送信する。
これらコマンドは、コマンドの種類を示す1バイトの種類データとコマンドの内容を示す1バイトの拡張データとからなり、サブ制御部91は、種類データからコマンドの種類を判別できるようになっている。
投入枚数コマンドは、メダルの投入枚数、すなわち賭数の設定に使用されたメダル枚数を特定可能なコマンドであり、ゲーム終了後(設定変更後)からゲーム開始までの状態であり、電断復帰時、または規定数の賭数が設定されていない状態においてメダルが投入されるか、MAXBETスイッチ6が操作されて賭数が設定されたときに送信される。また、投入枚数コマンドは、賭数の設定操作がなされたときに送信されるので、投入枚数コマンドを受信することで賭数の設定操作がなされたことを特定可能である。
クレジットコマンドは、クレジットとして記憶されているメダル枚数を特定可能なコマンドであり、ゲーム終了後(設定変更後)からゲーム開始までの状態であり、規定数の賭数が設定されている状態において、メダルが投入されてクレジットが加算されたときに送信される。
内部当選コマンドは、内部抽選結果を特定可能なコマンドであり、スタートスイッチ7が操作されてゲームが開始したときに送信される。また、内部当選コマンドは、スタートスイッチ7が操作されたときに送信されるので、内部当選コマンドを受信することでスタートスイッチ7が操作されたことを特定可能である。
リール回転開始コマンドは、後述のフリーズ状態に制御されないゲームにおいてリールの回転の開始を通知するコマンドであり、リール2L、2C、2Rの回転が開始されたときに送信される。
リール停止コマンドは、停止するリールが左リール、中リール、右リールのいずれかであるか、該当するリールの停止操作位置の領域番号、該当するリールの停止位置の領域番号、を特定可能なコマンドであり、各リールの停止操作に伴う停止制御が行われる毎に送信される。また、リール停止コマンドは、ストップスイッチ8L、8C、8Rが操作されたときに送信されるので、リール停止コマンドを受信することでストップスイッチ8L、8C、8Rが操作されたことを特定可能である。
入賞番号コマンドは、入賞ラインLNに揃った図柄の組合せ、入賞の有無、並びに入賞の種類、入賞時のメダルの払出枚数を特定可能なコマンドであり、全リールが停止して入賞判定が行われた後に送信される。
払出開始コマンドは、メダルの払出開始を通知するコマンドであり、入賞やクレジット(賭数の設定に用いられたメダルを含む)の精算によるメダルの払出が開始されたときに送信される。また、払出終了コマンドは、メダルの払出終了を通知するコマンドであり、入賞及びクレジットの精算によるメダルの払出が終了したときに送信される。
復帰コマンドは、メイン制御部41が電断前の制御状態に復帰した旨を示すコマンドであり、メイン制御部41の起動時において電断前の制御状態に復帰した際に送信される。
遊技状態コマンドは、現在の遊技状態(BB中、RB中、再遊技等)を特定可能なコマンドであり、電断復帰時またはゲームの終了時に送信される。
待機コマンドは、待機状態へ移行する旨を示すコマンドであり、1ゲーム終了後、賭数が設定されずに一定時間経過して待機状態に移行するとき、クレジット(賭数の設定に用いられたメダルを含む)の精算によるメダルの払出が終了し、払出終了コマンドが送信された後に送信される。
打止コマンドは、打止状態の発生または解除を示すコマンドであり、BB終了後、エンディング演出待ち時間が経過した時点で打止状態の発生を示す打止コマンドが送信され、リセット操作がなされて打止状態が解除された時点で、打止状態の解除を示す打止コマンドが送信される。
エラーコマンドは、エラー状態の発生または解除、エラー状態の種類を示すコマンドであり、エラーが判定され、エラー状態に制御された時点でエラー状態の発生及びその種類を示すエラーコマンドが送信され、リセット操作がなされてエラー状態が解除された時点で、エラー状態の解除を示すエラーコマンドが送信される。
設定コマンドは、設定変更状態の開始または終了、設定変更後設定値を示すコマンドであり、設定変更状態に移行する時点で設定変更状態の開始を示す設定コマンドが送信され、設定変更状態の終了時に設定変更状態の終了及び設定変更後の設定値を示す設定コマンドが送信される。また、設定変更状態への移行に伴ってメイン制御部41の制御状態が初期化されるため、設定開始を示す設定コマンドによりメイン制御部41の制御状態が初期化されたことを特定可能である。
設定確認コマンドは、設定確認状態の開始または終了を示すコマンドであり、設定確認状態に移行する際に設定確認開始を示す設定確認コマンドが送信され、設定確認状態の終了時に設定確認終了を示す設定確認コマンドが送信される。
ドアコマンドは、ドア開放検出スイッチ25の検出状態、すなわちon(開放状態)/off(閉状態)を示すコマンドであり、電源投入時、1ゲーム終了時(ゲーム終了後、次のゲームの賭数の設定が開始可能となる前までの時点)、ドア開放検出スイッチ25の検出状態が変化(onからoff、offからon)した時に送信される。
操作検出コマンドは、操作スイッチ類(MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R)の検出状態(on/off)を示すコマンドであり、定期的に送信される。
これらコマンドのうちドアコマンド及び操作検出コマンド以外のコマンドは、基本処理において生成され、RAM41cに設けられたコマンドキューに一時格納され、前述したタイマ割込処理(メイン)のコマンド送信処理おいて送信される。
一方、ドアコマンドは、タイマ割込処理(メイン)のドア監視処理においてに生成され、RAM41cに設けられたコマンドキューに一時格納され、その後のタイマ割込処理(メイン)のコマンド送信処理おいて送信される。
また、操作検出コマンドは、タイマ割込処理(メイン)のコマンド送信処理が10回実行される毎に、スイッチの検出状態に基づいて生成されるとともに、RAM41cに設けられたコマンドキューに一時格納され、その後のタイマ割込処理(メイン)のコマンド送信処理おいて送信される。
次に、メイン制御部41が演出制御基板90に対して送信するコマンドに基づいてサブ制御部91が実行する演出の制御について説明する。
サブ制御部91は、メイン制御部41からのコマンドを受信した際に、コマンド受信割込処理を実行する。コマンド受信割込処理では、RAM91cに設けられた受信用バッファに、コマンド伝送ラインから取得したコマンドを格納する。
受信用バッファには、最大で16個のコマンドを格納可能な領域が設けられており、複数のコマンドを蓄積できるようになっている。
サブ制御部91は、タイマ割込処理(サブ)において、受信用バッファに未処理のコマンドが格納されているか否かを判定し、未処理のコマンドが格納されている場合には、そのうち最も早い段階で受信したコマンドに基づいてROM91bに格納された制御パターンテーブルを参照し、制御パターンテーブルに登録された制御内容に基づいて液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の各種演出装置の出力制御を行う。
制御パターンテーブルには、複数種類の演出パターン毎に、コマンドの種類に対応する液晶表示器51の表示パターン、演出効果LED52の点灯態様、スピーカ53、54の出力態様、リールLED55の点灯態様等、これら演出装置の制御パターンが登録されており、サブ制御部91は、コマンドを受信した際に、制御パターンテーブルの当該ゲームにおいてRAM91cに設定されている演出パターンに対応して登録された制御パターンのうち、受信したコマンドの種類に対応する制御パターンを参照し、当該制御パターンに基づいて演出装置の出力制御を行う。これにより演出パターン及び遊技の進行状況に応じた演出が実行されることとなる。
尚、サブ制御部91は、あるコマンドの受信を契機とする演出の実行中に、新たにコマンドを受信した場合には、実行中の制御パターンに基づく演出を中止し、新たに受信したコマンドに対応する制御パターンに基づく演出を実行するようになっている。すなわち演出が最後まで終了していない状態でも、新たにコマンドを受信すると、受信した新たなコマンドが新たな演出の契機となるコマンドではない場合を除いて実行していた演出はキャンセルされて新たなコマンドに基づく演出が実行されることとなる。
特に、本実施例では、演出の実行中に賭数の設定操作がなされたとき、すなわちサブ制御部91が、賭数が設定された旨を示す投入枚数コマンドを受信したときに、実行中の演出を中止するようになっている。このため、遊技者が、演出を最後まで見るよりも次のゲームを進めたい場合には、演出がキャンセルされ、次のゲームを開始できるので、このような遊技者に対して煩わしい思いをさせることがない。また、演出の実行中にクレジットまたは賭数の精算操作がなされたとき、すなわちサブ制御部91が、ゲームの終了を示す遊技状態コマンドを受信した後、ゲームの開始を示す内部当選コマンドを受信する前に、払出開始コマンドを受信した場合には、実行中の演出を中止するようになっている。クレジットや賭数の精算を行うのは、遊技を終了する場合であり、このような場合に実行中の演出を終了させることで、遊技を終了する意志があるのに、不要に演出が継続してしまわないようになっている。
演出パターンは、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じた選択率にて選択され、RAM91cに設定される。演出パターンの選択率は、ROM91bに格納された演出テーブルに登録されており、サブ制御部91は、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じて演出テーブルに登録されている選択率を参照し、その選択率に応じて複数種類の演出パターンからいずれかの演出パターンを選択し、選択した演出パターンを当該ゲームの演出パターンとしてRAM91cに設定するようになっており、同じコマンドを受信しても内部当選コマンドの受信時に選択された演出パターンによって異なる制御パターンが選択されるため、結果として演出パターンによって異なる演出が行われることがある。
本実施例においてメイン制御部41は、ゲームを進行させるための操作が有効化されるタイミングを遅延させることにより、所定期間にわたりゲームを進行させるための操作が無効化されるフリーズ状態に制御するか否かを決定するフリーズ抽選を行い、フリーズ抽選に当選することで、上記のフリーズ状態に制御する。
本実施例では、乱数回路508bのチャネルRL1により生成された乱数値を用いてフリーズ抽選の結果が判定される。
尚、既に、図26で説明したように、RL1ハードラッチ選択レジスタ(RL1LS)のビット番号[2−0]の設定内容により、PI1端子からの入力(MAXBETスイッチ6の操作検出信号の入力)により、RL1ハードラッチ乱数値レジスタ0(RL1HV0)に16ビット乱数RL1の値が取り込まれるように設定されており、MAXBETスイッチ6が操作されたタイミングで乱数回路508bのチャネルRL1におけるRL1ハードラッチ乱数値レジスタ0(RL1HV0)に乱数値をラッチできるように構成されているが、操作手段からの検出信号によるタイミングで乱数回路508bのチャネルRL1により生成された乱数値がラッチされるものに限らず、所定のタイミングで乱数回路508bのチャネルRL1に対応する乱数ソフトラッチレジスタ(RDSL)のビット1(RL1SL)に“1”をセットすることでプログラムにて乱数回路508bのチャネルRL1におけるRL1ソフトラッチ乱数値レジスタ(RL1SV)に乱数値をラッチさせてフリーズ抽選の結果判定に用いるようにしても良い。
このように本実施例では、フリーズ抽選の結果に応じてフリーズ状態に制御されるようになっている。そして、フリーズ抽選にメイン制御部41が搭載する乱数回路508bが生成した乱数を利用しているが、乱数回路508bは、それぞれ別個の乱数を生成するチャネルRL0〜RL3の4回路を備えており、フリーズ抽選では、乱数回路508bが生成する乱数のうち内部抽選に用いるチャネルRL0にて生成される乱数とは別のチャネルRL1にて生成される乱数が用いられるので、内部抽選が用いる乱数と、フリーズ抽選が用いる乱数と、が同期してしまうことを防止できる。
尚、本実施例では、16ビット乱数回路508bの異なるチャネル(チャネル0とチャネル1)からそれぞれ乱数値を抽出することにより、内部抽選を行う場合と、フリーズ抽選を行う場合と、で乱数を抽出する乱数値を異ならせる場合を示したが、本実施例で示した態様に限られない。例えば、16ビット乱数回路508bの同じチャネルであっても、その同じチャネルで用いる異なるハードラッチ乱数値レジスタから(例えば、同じチャネル0のRL0ハードラッチ乱数値レジスタ0(RL0HV0)とRL0ハードラッチ乱数値レジスタ1(RL0HV1)とから)乱数値を抽出することにより、抽出する乱数値レジスタを異ならせても良い。
また、本実施例では、フリーズ抽選が用いる乱数として、16ビット乱数回路508bが生成した乱数を利用しているが8ビット乱数回路508aが生成した乱数を利用しても良い。
また、本実施例では、フリーズ抽選が用いる乱数として、乱数回路508bが生成した乱数を利用しているが、フリーズ抽選が用いる乱数としてプログラムによって更新されるソフト乱数を用いても良い。
また、本実施例では、フリーズ状態に制御するか否かを決定するフリーズ抽選に用いる乱数として乱数回路508bが生成した乱数を利用する構成であるが、遊技者にとっての有利度を決定する抽選や遊技者にとって有利な特典を付与するか否かを決定する抽選に用いる乱数として乱数回路508a、508bが生成した乱数を利用する構成としても良い。また、フリーズ抽選の結果が、遊技者にとっての有利度の決定、遊技者にとって有利な特典を付与するか否かの決定に反映される構成としても良い。
本実施例では、メイン制御部41のプログラム管理エリアの設定値により、メイン制御部41に搭載された回路(乱数回路508a、508b、ウォッチドッグタイマ506b、リセット/割込コントローラ506等)の使用/未使用の設定が可能とされており、不要な回路については、未使用に設定しておくことにより、未使用に設定された回路を起動させないようにすることができる。このような構成においては、使用しない回路について未使用に設定されていても、不正なプログラムの起動やノイズ等によって当該回路が動作する可能性があり、この際、未使用の回路についての動作設定として、メイン制御部41を構成するマイクロコンピュータの工場出荷時の設定のままだと、メイン制御部41が想定外の動作を引き起こしてしまう虞がある。
本実施例において、乱数回路508a、508bは、それぞれ4チャネルの乱数回路を備えており、そのうち乱数回路508bのチャネル0、1のみ起動するように設定され、乱数回路508aのチャネル0〜3、乱数回路508bのチャネル2、3については未使用に設定され、起動しないようになっている。そして、プログラム管理エリアにおける未使用の乱数回路の動作設定に対応する設定値として、工場出荷時の初期値(全て0)とは異なる設定値であり、仮に動作してしまっても問題の生じない設定値が設定されている。このため、何らかの原因で未使用に設定された乱数回路が動作してしまった場合であっても、未使用の乱数回路により想定外の動作をしてしまうことを防止できる。
また、本実施例では、乱数回路508bを構成するチャネル0〜4の乱数回路のうち、チャネル0、1については使用に設定され、チャネル2、3については未使用に設定されており、これら未使用に設定されたチャネル2、3についてのプログラム管理エリアにおける未使用の乱数回路の動作設定に対応する設定値(16ビット乱数初期設定2(KRL2)のビット「6」、ビット「5−4」及びビット「2」、ビット1−0)の設定値、16ビット乱数初期設定3(KRL3のビット「7」、ビット「6」、ビット「5」、ビット「4」の設定値)として、使用に設定されたチャネル0、1の設定値(16ビット乱数初期設定1(KRL1)のビット「6」、ビット「5−4」及びビット「2」、ビット1−0)の設定値、16ビット乱数初期設定3(KRL3のビット「3」、ビット「2」、ビット「1」、ビット「0」の設定値)と同一の設定値が設定されている。すなわち複数の同種の制御回路のうち使用する一の制御回路について使用に設定され、一の制御回路とは異なる他の制御回路について未使用に設定されており、未使用に設定されている制御回路の動作設定として、使用に設定されている同種の制御回路の動作設定と同一の設定がされている。このため、何らかの原因で未使用に設定された他の制御回路が動作してしまった場合であっても、工場出荷時の初期値による設定ではなく、使用に設定された同種の制御回路と同一設定としておくことにより、当該制御回路による動作を想定内の範囲留めることができる。
また、本実施例では、乱数回路508bのチャネル2、3については未使用に設定され、起動しないようになっているが、これら未使用に設定された乱数回路508bのチャネル2、3のシステムリセット毎に乱数値の初期値を変更するか否かの動作設定として、工場出荷時の設定値(0)、すなわちシステムリセット毎に乱数値の初期値を変更しない旨の設定値ではなく、システムリセット毎に乱数値の初期値を変更する設定値(1)が設定されている。このため、未使用の乱数回路であっても、不正な要因によって起動された乱数回路により生成される数値データの更新タイミングを予測しにくくなり、乱数の更新タイミングから狙われた特定の数値データを利用して不正に遊技者にとって有利な状況を発生させるような不正行為を未然に防止することができる。
また、本実施例では、乱数回路508bのチャネル2、3については未使用に設定され、起動しないようになっているが、これら未使用に設定された乱数回路508bのチャネル2、3のシステムリセット後、乱数更新の1週目の初期値として、工場出荷時の設定値(0)に基づく0001ではなく、IDナンバーをもとにした値をとる設定値(1)が設定されている。このため、未使用の乱数回路であっても、不正な要因によって起動された乱数回路により生成される数値データの更新タイミングを予測しにくくなり、乱数の更新タイミングから狙われた特定の数値データを利用して不正に遊技者にとって有利な状況を発生させるような不正行為を未然に防止することができる。
また、本実施例では、乱数回路508aのチャネル0〜3、乱数回路508bのチャネル2、3については未使用に設定され、起動しないようになっているが、これら未使用に設定された乱数回路508aのチャネル0〜3、乱数回路508bのチャネル2、3の乱数列の更新方法を変更するか否かの動作設定として、工場出荷時の設定値(00)、すなわち乱数列を変更しない旨の設定値ではなく、乱数列を自動で変更する旨の設定値(10)が設定されている。このため、未使用の乱数回路であっても、不正な要因によって起動された乱数回路により生成される数値データの更新タイミングを予測しにくくなり、乱数の更新タイミングから狙われた特定の数値データを利用して不正に遊技者にとって有利な状況を発生させるような不正行為を未然に防止することができる。
また、本実施例では、乱数回路508aのチャネル0〜3、乱数回路508bのチャネル2、3については未使用に設定され、起動しないようになっているが、これら乱数回路508aのチャネル0〜3、乱数回路508bのチャネル2、3において更新異常が検出された場合にも、内部情報レジスタ(CIF)の対応するビットに“1”がセットされるようになっており、内部情報レジスタ(CIF)の値を確認することにより、未使用に設定された乱数回路であっても更新異常が検出されたか否かを確認することができる。
また、本実施例では、CPU41aが、所定の契機で行われるエラー判定処理において、内部情報レジスタ(CIF)の値を取得し、内部情報レジスタ(CIF)の値が0か否か判定し、0以外、すなわち内部情報レジスタ(CIF)のいずれかのビットに“1”がセットされており、外部クロック信号の周波数異常が検知されているか、または使用設定であるか未使用設定であるかに関わらず、8ビット乱数回路506aのチャネル0〜3、16ビット乱数回路506bのいずれかにおいて更新状態の異常が検知されている場合に、エラー状態に制御するようになっている。すなわち、内部情報レジスタ(CIF)の個々のビットの値から異常原因を特定せずとも、CIFの値が0以外であれば、乱数回路回りに異常が生じていることは明らかであることから、CPU41aは、内部情報レジスタ(CIF)の個々のビットの値を特定することなく、全体の値が0か否かを判定し、0以外であればエラーと判定するようになっており、当該判定に係るプログラム容量を削減できる。
尚、本実施例では、メイン制御部41が搭載する乱数回路が未使用に設定されている場合に、その動作設定として、工場出荷時とは異なる設定値とする例について説明したが、その他の未使用に設定された回路について、工場出荷時の設定値では不具合が生じる可能性がある場合には、不具合が生じないように工場出荷時の設定値とは異なる設定値を設定することにより、何らかの原因で未使用に設定された回路が動作してしまった場合であっても、未使用の回路により想定外の動作をしてしまうことを防止できる。
例えば、シリアル通信回路512が未使用に設定されている場合に、対応する端子の機能設定として工場出荷時の設定値(例えば、外部デバイスへの属性無しチップセレクト端子として使用する旨の設定)とは異なる設定値(例えば、シリアル通信回路512の通信端子として使用する旨の設定等)を設定することにより、シリアル通信回路512が未使用に設定されることで利用されない端子が、外部デバイスへの属性無しチップセレクト端子として使用可能に設定されることがなく、これらの端子が不正なプログラムの読み出しに用いられてしまう等の不正利用を防止できる。
また、ウォッチドッグタイマ506bが未使用に設定されている場合に、タイムアウト時間の設定として工場出荷時の設定値(0000)ではなく、その他の時間を設定しておくことにより、システムリセットやユーザリセットのタイミングを特定することが困難となり、システムリセットやユーザリセットのタイミングからハード乱数やソフト乱数の更新タイミングを特定することも困難となるため、これらの更新タイミングから特定のタイミングを狙って不正に遊技者にとって有利な状況を発生させるような不正行為を未然に防止することができる。
また、リセット/割込コントローラ506による特定の割込要因が未使用に設定されている場合に、当該特定の割込要因の発生により実行される割込処理のアドレス設定として工場出荷時の設定値(00H)ではなく、他のアドレス設定としておくことで、未使用に設定された特定の割込要因の発生により割込が生じた場合に実行されるプログラムの格納アドレスを特定することが困難となるため、当該未使用の割込要因を発生させることにより不正なプログラムを実行させる不正を防止できる。
また、本実施例では、同種の制御回路のうちの一部が使用に設定され、残りが未使用に設定される構成であるが、同種の制御回路全てが未使用に設定される構成でも良く、このような構成であっても、未使用に設定された制御回路について、工場出荷時の設定値では不具合が生じる可能性がある場合には、不具合が生じないように工場出荷時の設定値とは異なる設定値を設定することにより、何らかの原因で未使用に設定された回路が動作してしまった場合であっても、未使用の回路により想定外の動作をしてしまうことを防止できる。
また、本実施例では、同種の制御回路のうちの一部が使用に設定され、残りが未使用に設定される構成において、未使用に設定された回路についての動作設定として、使用に設定された回路についての動作設定と同一の設定としているが、少なくとも工場出荷時の設定値では不具合が生じる可能性がある動作設定のみ、使用に設定された回路についての動作設定と同一の設定とするだけでも、何らかの原因で未使用に設定された回路が動作してしまった場合において、未使用の回路により想定外の動作をしてしまうことを防止できる。
以上、本発明の実施例を図面により説明してきたが、本発明はこの実施例に限定されるものではなく、本発明の主旨を逸脱しない範囲における変更や追加があっても本発明に含まれることは言うまでもない。
前記実施例では、本発明を遊技用価値としてメダル並びにクレジットを用いて賭数が設定されるスロットマシンに適用した例ついて説明したが、遊技用価値として遊技球を用いて賭数を設定するスロットマシンや、遊技用価値としてクレジットのみを使用して賭数を設定する完全クレジット式のスロットマシンに適用しても良い。遊技球を遊技用価値として用いる場合は、例えば、メダル1枚分を遊技球5個分に対応させることができ、前記実施例1で賭数として3を設定する場合は、15個の遊技球を用いて賭数を設定するものに相当する。
さらに、メダル及び遊技球等の複数種類の遊技用価値のうちいずれか1種類のみを用いるものに限定されるものではなく、例えば、メダル及び遊技球等の複数種類の遊技用価値を併用できるものであっても良い。すなわち、メダル及び遊技球等の複数種類の遊技用価値のいずれを用いても賭数を設定してゲームを行うことが可能であり、かつ入賞の発生によってメダル及び遊技球等の複数種類の遊技用価値のいずれをも払い出し得るスロットマシンを適用しても良い。
さらにスロットマシンだけでなく、複数の回路を備えるマイクロコンピュータを搭載する遊技機であり、これら搭載回路の使用/未使用を設定可能な遊技機であれば本発明を適用可能で有り、例えば、遊技球を遊技領域内に発射して遊技を行う弾球遊技機にも適用可能である。