以下、本発明の好ましい実施の形態について、図面を参照して具体的に説明する。
[遊技機の外観構成]
図1は、本発明の一実施形態に係る遊技機の外観を示す斜視図である。同図に示すように、本実施形態では、遊技機としてパチスロ1が適用される。パチスロ1の外装体2は、リールや回路基板等を収容するキャビネット2aと、キャビネット2aに対して開閉可能に取り付けられるフロントドア2bとを有している。キャビネット2aの両側面には、把手7が設けられている。この把手7は、パチスロ1を運搬するときに手をかける凹部である。
キャビネット2aの内部には、3つのリール3L,3C,3Rが横並びに設けられている。各リール3L,3C,3Rについては、個別に説明する場合にそれぞれ左リール3L、中リール3C、右リール3Rと称する。各リール3L,3C,3Rは、円筒状に形成されたリール本体と、リール本体の周面に装着された透光性のシート材を有している。シート材の表面には、複数(例えば21個)の図柄が周方向に沿って所定の間隔をあけて描かれている。
フロントドア2bの中央には、液晶表示装置10が設けられている。この液晶表示装置10は、液晶表示領域10Aと図柄表示領域4L,4C,4Rとを含む表示画面を備え、正面から見て3つのリール3L,3C,3Rに重畳する手前側に位置するように設けられている。本実施形態では、液晶表示領域10A及び図柄表示領域4L,4C,4Rを含めた表示画面の全体を使って、映像の表示が行われ、演出が実行される。
図柄表示領域4L,4C,4Rは、3つのリール3L,3C,3Rのそれぞれに対応して設けられている。この図柄表示領域4L,4C,4Rは、表示窓としての機能を果たすものであり、その背後に設けられた各リール3L,3C,3Rを透過することが可能な構成になっている。図柄表示領域4L,4C,4Rについては、個別に説明する場合にそれぞれ左表示窓4L、中表示窓4C、右表示窓4Rと称する。
表示窓4L,4C,4Rは、その背後に設けられたリール3L,3C,3Rの回転が停止されたとき、各リール3L,3C,3Rの複数種類の図柄のうち、その枠内における上段、中段及び下段の各領域にそれぞれ1個の図柄(合計で3個)を表示する。各表示窓4L,4C,4Rが有する上段、中段及び下段からなる3つの領域のうち予め定められたいずれかをそれぞれ組合せてなる擬似的なラインを、入賞か否かの判定を行う対象となるライン(入賞判定ライン)として定義する。
本実施形態では、入賞判定ラインとしてセンターライン8が設けられている。センターライン8は、左表示窓4Lの中段、中表示窓4Cの中段、及び右表示窓4Rの中段の組合せからなる。
液晶表示装置10の表示画面の下方には、7セグメントLEDからなる7セグ表示器6が設けられている。この7セグ表示器6は、特典として遊技者に対して払い出すメダルの枚数(以下、払出枚数)、パチスロ1の内部に預けられているメダルの枚数(以下、クレジット枚数)等の情報をデジタル表示する。
フロントドア2bには、遊技者による操作の対象となる各種装置が設けられている。メダル投入口11は、遊技者によって外部から投下されるメダルを受け入れるために設けられる。メダル投入口11に受け入れられたメダルは、予め定められた規定数を上限として1回の遊技に投入されることとなり、規定数を超えた分は、パチスロ1の内部に預けることが可能となる(いわゆるクレジット機能)。
メダル投入口11の左には、選択ボタン11A及び決定ボタン11Bが設けられている。遊技者や係員は、液晶表示領域10Aに表示されたメニュー画面等に対して選択ボタン11A及び決定ボタン11Bにより入力を行うことができる。
最大BETボタン12は、パチスロ1の内部に預けられているメダルから1回の遊技に投入する最大枚数を決定するために設けられる。精算ボタン14は、パチスロ1の内部に預けられているメダルを外部に引き出すために設けられる。
スタートレバー16は、全てのリール3L,3C,3Rの回転を開始するために設けられる。ストップボタン17L,17C,17Rは、3つのリール3L,3C,3Rのそれぞれに対応づけられ、対応するリールの回転を停止するために設けられる。ストップボタン17L,17C,17Rについては、個別に説明する場合にそれぞれ左ストップボタン17L、中ストップボタン17C、右ストップボタン17Rと称する。
メダル払出口18は、後述のメダル払出装置34の駆動により排出されるメダルを外部に導く。メダル払出口18から排出されたメダルは、メダル受皿19に貯められる。ランプ(LED等)20は、演出内容に応じた点消灯のパターンにて光を出力する。スピーカ用孔48,49,22L,22Rは、演出内容に応じた効果音や楽曲等の音を出力するために設けられている。
このパチスロ1には、フロントドア2bを閉じた状態でフロントドア2bをロック状態又はアンロック状態に切り替えるロック機構を備えている。このロック機構は、ドアキー穴11Cにドアキー110を挿入して、ドアキー110を回転することにより操作されるようになっている。
ドアキー110がドアキー穴11Cに挿入され、例えば、右回転されることによりフロントドア2bが開閉可能になるとともに、左回転されることにより後述の主制御回路60(図3参照)等が電気的にリセットされるようになっている。すなわち、ドアキー110は、ロック機構の操作の他に、パチスロ1を電気的にリセットするリセット機能を有している。
[遊技機の内部構造]
図2は、本発明の一実施形態に係る遊技機の内部構造を示す斜視図である。キャビネット2a内部の上側には、主制御回路60(図3参照)を構成する主制御基板6A(後述する主基板6A、図2において図示せず図6参照)が配設されている。主制御回路60は、内部当籤役の決定、リール3L,3C,3Rの回転及び停止、入賞の有無の判定といった、パチスロ1における遊技の主な流れを制御する回路である。主制御回路60の具体的な構成は後述する。
キャビネット2aの内部の中央には、3つのリール3L,3C,3Rが設けられている。なお、図2では、各リール3L,3C,3Rからシート材を取り除いてリール本体を露出させた状態を示している。3つのリール3L,3C,3Rには、所定の減速比をもったギアを介してステッピングモータ50L,50C,50R(図3参照)が接続されている。
キャビネット2a内部を正面から見て、右リール3Rの右側には、設定用鍵型スイッチ(図示せず)及び外部集中端子板9A(図2において図示せず図3及び図10参照)が配設されている。設定用鍵型スイッチは、パチスロ1の設定を変更もしくは確認を行うときに設定キーを用いて使用する。外部集中端子板9Aは、キャビネット2aの側板に取り付けられている。この外部集中端子板9Aは、メダル投入信号、メダル払出信号及びセキュリティ信号などの信号をパチスロ1外の外部機器(例えばホールコンピュータ)へと出力するために設けられている。また、キャビネット2a内部を正面から見て、左リール3Lの左側には、外部中継基板8A(図2において図示せず図3及び図10参照)が配設されている。外部中継基板8Aは、主制御基板6Aと外部集中端子板9Aとを光ファイバーケーブル100(図2において図示せず図10等参照)を介して接続する配線の中継を行う。外部中継基板8A及び外部集中端子板9Aの具体的な構成は後述する。
キャビネット2aの内部の下方には、多量のメダルを収容可能で、それらを1枚ずつ排出可能な構造を有するメダル払出装置(以下、ホッパー装置)34が設けられている。このホッパー装置34は、貯留されたメダルが例えば50枚を超えたとき、又は精算ボタンが押圧されてメダルの精算を行うときに、メダルを払い出す。ホッパー装置34によって払い出されたメダルは、メダル払出口18(図2参照)から排出される。
キャビネット2a内部を正面から見て、ホッパー装置34の右側には、ホッパー装置34から溢れ出たメダルを収納するメダル補助庫35が配設されている。また、キャビネット2a内部を正面から見て、ホッパー装置34の左側には、パチスロ1が有する各装置に対して必要な電力を供給するための電源装置36が設けられている。また、ホッパー装置34と3つのリール3L,3C,3Rとの間には、サブスピーカ37が配設されている。
フロントドア2bの裏面における上側には、副制御基板7A(後述する副基板7A、図2において図示せず図6参照)を収容する副制御基板ケース42が配設されている。副制御基板7Aは、副制御基板ケース42を介してキャビネット2aの内部の主制御基板6Aに対向している。この副制御基板7Aは、副制御回路70(図3及び図4参照)を構成する。副制御基板7Aは、後述するドア中継基板53を介して主制御基板6Aと光ファイバーケーブル100(図2において図示せず図6参照)により接続されている。副制御回路70は、映像の表示等による演出の実行を制御する回路である。副制御回路70の具体的な構成は後述する。
フロントドア2bを裏面側から見て、副制御基板ケース42の右側方には、副中継基板43が配設されている。この副中継基板43は、副制御基板7Aと、この副制御基板7Aの周辺に配設された基板との配線を中継する基板である。なお、副制御基板41の周辺に配設される基板としては、後述するLED基板45A,45B,45CやサウンドI/O基板46が挙げられる。
フロントドア2bの裏面側の適部には、LED基板45A,45B,45CやサウンドI/O基板46が配設されている。LED基板45A,45B,45Cは、副制御回路70の制御により実行される演出に応じて、ランプ(LED等)20による点滅パターンを表示制御する。サウンドI/O基板46は、後述するスピーカ48L,48R,49L,49R(48,49)への音声の出力を行う。
サウンドI/O基板46の下側には、遊技動作表示基板(図示せず)が配設されている。この遊技動作表示基板は、メダルの投入を受け付けるとき、3つのリール3L,3C,3Rが回動可能なとき及び再遊技を行うときに、投入されたメダルの枚数を7セグ表示器6に表示させるための基板である。
サウンドI/O基板46の左側及び右側には、上部スピーカ48L,48R(48)が配設されている。そして、フロントドア2bの裏面における下側には、下部スピーカ49L,49R(49)が配設されている。上部スピーカ48L,48Rは、それぞれスピーカ用孔48,49に対向しており、下部スピーカ49L,49Rは、それぞれスピーカ用孔22L,22Rに対向している。
上部スピーカ48Rと下部スピーカ49Rとの間には、セレクタ51と、ドア開閉監視スイッチ52が配設されている。セレクタ51は、メダルの材質や形状等が適正であるか否かを選別する装置であり、メダル投入口11に受け入れられた適正なメダルをホッパー装置34へ案内する。セレクタ51内においてメダルが通過する経路上には、適正なメダルが通過したことを検出するメダルセンサ(図示せず)が設けられている。
ドア開閉監視スイッチ52は、フロントドア2bを裏面側から見て、セレクタ51の左側に配置されている。このドア開閉監視スイッチ52は、パチスロ1の外部へ、フロントドア2bの開閉を報知するためのセキュリティ信号を出力する。
フロントドア2bを裏面側から見て、セレクタ51の右側には、ドア中継基板53が配設されている。このドア中継基板53は、主制御基板6Aと、各種のボタンやスイッチ、副制御基板7A、遊技動作表示基板、及びセレクタ51との配線を中継する基板である。なお、各種のボタン及びスイッチとしては、例えば、最大BETボタン12、精算ボタン(C/Pボタン)14、ドア開閉監視スイッチ52、後述する最大BETスイッチ13S及びスタートスイッチ6S等を挙げることができる。
ドア中継基板53の下側には、24hドア開閉監視ユニット(図示せず)が配設されている。この24hドア開閉監視ユニットは、フロントドア2bの開閉の履歴を保存する。また、フロントドア2bを開放したとき、又はセレクタ51を取り外したときに、液晶表示装置10にエラー表示を行うための信号を副制御基板7A(副制御回路70)に出力する。
次に、図3〜11を参照して、パチスロ1の電気的な構成及び通信機能に係る構成について説明する。図3は、主制御回路の構成を示すブロック図である。図4は、副制御回路の構成を示すブロック図である。図5は、主基板通信LSI及び副基板通信LSIの構成を示すブロック図である。図6は、主基板と副基板との接続形態を示す模式図である。図7は、通信LSIにおけるAES回路を示す模式図である。図8及び図9は、データの流れを示す説明図である。図10は、主基板と外部集中端子板との接続形態を示す模式図である。図11は、外部出力用通信LSI及び外部端子板制御LSIの構成を示すブロック図である。なお、以下の説明においては、「入力」及び「出力」と同義の用語として「受信」及び「送信」を用いることがある。
[主制御回路の構成]
主制御回路60は、内部当籤役の決定やリールの回転制御等一連の遊技の進行を制御する。主制御回路60は、主基板6A(図6参照)上に配置されたマイクロコンピュータ600を主たる構成要素とし、これに乱数サンプリングのための回路を加えて構成されている。マイクロコンピュータ600は、メインCPU601、メインROM602、及びメインRAM603により構成される。
メインCPU601には、クロックパルス発生回路604、分周器605、乱数発生器606、及びサンプリング回路607が接続されている。
メインCPU601は、乱数値と後述する内部抽籤テーブルとに基づいて内部当籤役を決定し、当該内部当籤役と停止操作が検出されたタイミングとに基づいて、リール3L,3C,3Rの回転を停止させる。メインCPU601は、リール3L,3C,3Rの回転を停止させた際に、図柄表示領域4L,4C,4Rに表示された図柄の組合せに基づいて、役が成立したか否かを判別し、役が成立(入賞)している場合に、当該成立した役に応じてメダルを払い出す等の利益を遊技者に付与する。
クロックパルス発生回路604および分周器605は、基準クロックパルスを発生する。乱数発生器606は、「0」〜「65535」の範囲の乱数を発生する。サンプリング回路607は、乱数発生器606により発生された乱数から1つの乱数値を抽出(サンプリング)する。
メインCPU601は、抽出した乱数値を後述のメインRAM603の乱数値記憶領域に記憶させる。そして、メインCPU601は、遊技毎にメインRAM603の乱数値記憶領域に記憶された乱数値に基づいて、後述の内部抽籤処理において内部当籤役の決定を行う。
なお、乱数サンプリングのための手段としては、マイクロコンピュータ600内で、すなわちメインCPU601の動作プログラム上で、乱数サンプリングを実行するようにしてもよい。その場合、乱数発生器606およびサンプリング回路607は省略可能である。あるいは、乱数サンプリング動作のバックアップ用として残しておくことも可能である。
メインROM602には、メインCPU601の処理に係るプログラム、各種テーブル等が記憶されている。
メインRAM603には、メインCPU601の処理により得られる種々の情報がセットされる。例えば、抽出した乱数値、遊技状態、内部当籤役、払出枚数、ボーナス持越状況、設定値等を特定する情報、各種カウンタおよびフラグがセットされる。これらの情報の一部は、コマンドとして副基板7A(副制御回路70)及び外部集中端子板9Aに送信される。
マイクロコンピュータ600からの制御信号により動作が制御される主要な周辺装置等としては、メダル払出装置(ホッパー装置)34、ステッピングモータ50L,50C,50R等がある。これらのアクチュエータとメインCPU601との間の信号の授受は、バス60Aを介して行われる。
バス60Aには、メインCPU601から出力される制御信号を受けて、前述の各周辺装置等の動作を制御するための各回路が接続されている。各回路としては、モータ駆動回路39、表示部駆動回路340、及びホッパー駆動回路341がある。
モータ駆動回路39は、ステッピングモータ50L,50C,50Rを駆動制御する。これにより、リール3L,3C,3Rの回転や停止が行われる。
表示部駆動回路340は、7セグ表示器6を表示制御する。これにより、7セグ表示器6に払出枚数やクレジット枚数等が表示される。
ホッパー駆動回路341は、ホッパー装置34を駆動制御する。これにより、ホッパー装置34に収容されたメダルの払い出しが行われる。
また、バス60Aには、前述の各回路および各周辺装置等に制御信号を出力する契機となる入力信号を発生する各スイッチおよび各回路が接続されている。各スイッチおよび各回路としては、スタートスイッチ6S、ストップスイッチ7LS,7CS,7RS、最大BETスイッチ13S、精算スイッチ(C/Pスイッチ)14S、メダルセンサ22S、リール位置検出回路50、払出完了信号回路342がある。なお、ストップスイッチ7LS,7CS,7RSを総称してストップスイッチ7Sと称する。
スタートスイッチ6Sは、スタートレバー16に対する遊技者の開始操作を検出し、遊技の開始を指令する開始信号をマイクロコンピュータ600に出力する。
ストップスイッチ7LS,7CS,7RSは、それぞれストップボタン7L,7C,7Rに対する遊技者の停止操作を検出し、検出したストップボタン7L,7C,7Rに対応するリール3L,3C,3Rの回転の停止を指令する停止信号をマイクロコンピュータ600に出力する。
最大BETスイッチ13Sは、最大BETボタン12に対する遊技者の投入操作(押下操作)を検出し、クレジットされたメダルからのメダルの投入を指令する信号をマイクロコンピュータ600に出力する。
精算スイッチ14Sは、精算ボタン14に対する遊技者の切り替え操作を検出し、クレジットモードまたは払出モードを切り替えるための信号をマイクロコンピュータ600に出力する。また、クレジットモードから払出モードに切り替えられた場合、パチスロ1にクレジットされているメダルの払い出しを指令する信号をマイクロコンピュータ600に出力する。
メダルセンサ22Sは、遊技者の投入操作によりメダル投入口11に投入されたメダルを検出し、メダルが投入されたことを示す信号をマイクロコンピュータ600に出力する。
リール位置検出回路50は、リール回転センサ(図示せず)からのパルス信号を検出し、各リール3L,3C,3R上の図柄の位置を検出するための信号を発生する。
払出完了信号回路342は、メダル検出部34Sにより検出されたメダルの枚数(すなわちホッパー装置34から払い出されたメダルの枚数)が指定された枚数に達した際に、メダルの払い出しが完了したことを示すための信号を発生する。
主制御回路60には、副制御回路70に対してコマンド等の情報を送信するための主基板通信LSI610が接続されている。主基板通信LSI610は、マイクロコンピュータ600とともに主制御回路60を構成する要素として主基板6A(図6参照)に搭載されている。主基板通信LSI610は、光伝送媒体としての光ファイバーケーブル100(図6参照)によりドア中継基板53を介して副制御回路70に接続されている。マイクロコンピュータ600(メインCPU601)は、主基板通信LSI610を通じて各種のコマンド等を副制御回路70に送信する。なお、本実施形態のメインCPU601には、第1UART601Aが内蔵されており、メインCPU601は、第1UART601Aを通じて主基板通信LSI610に情報を送信可能とされる(図6参照)。このような主基板通信LSI610や第1UART601Aの詳細については、後述する。
副制御回路70は、後述するスタートコマンド等を含む主制御回路60から送信された各種のコマンドに基づいて演出データの決定や実行等の各種の処理を行う。副制御回路70が主制御回路60へコマンドや情報等を送信することはなく、主制御回路60から副制御回路70に向けて単方向(片方向)で通信が行われる。
副制御回路70からの制御信号により動作が制御される主要な周辺装置等としては、液晶表示領域10Aに画像を表示させる表示手段としての液晶表示装置10、スピーカ48,49、及びランプ20等がある。副制御回路70は、決定した演出データに基づいて、液晶表示装置10に表示される画像の決定とその表示、各種のランプ20の発光パターンの決定と出力、スピーカ48,49から出力する演出音や効果音の決定と出力等の制御を行う。この副制御回路70の詳細については、後述する。
また、主制御回路60には、パチスロ1の外部に設置されたホールコンピュータ1000に対してコマンド等の情報を出力するための外部出力用通信LSI610Aが接続されている。外部出力用通信LSI610Aは、マイクロコンピュータ600とともに主制御回路60を構成する要素として主基板6A(図10参照)に搭載されている。外部出力用通信LSI610Aは、光伝送媒体としての光ファイバーケーブル100(図10参照)により外部中継基板8Aを介して外部集中端子板9Aの後述する外部端子板制御LSI910に接続されている。マイクロコンピュータ600(メインCPU601)は、外部出力用通信LSI610Aを通じて各種のコマンド等を外部集中端子板9Aの外部端子板制御LSI910に送信する。なお、本実施形態のメインCPU601には、第1UART601Aとは別の第2UART601Bが内蔵されており、メインCPU601は、第2UART601Bを通じて外部出力用通信LSI610Aに情報を送信可能とされる(図10参照)。このような外部出力用通信LSI610Aや第2UART601Bの詳細については、後述する。
図10に示すように、外部集中端子板9Aは、外部出力用通信LSI610Aからのコマンド等をホールコンピュータ1000(図3参照)へと出力するための外部端子板制御LSI910を有する。外部端子板制御LSI910は、主制御回路60の外部出力用通信LSI610Aへとコマンドや情報等を送信することはなく、主基板6Aから外部集中端子板9Aに向けて単方向(片方向)で通信が行われる。外部出力用通信LSI610A及び外部端子板制御LSI910は、主基板通信LSI610と概ね同様の構成からなる。このような外部出力用通信LSI610A及び外部端子板制御LSI910の詳細については、後述する。
パチスロ1では、メダルの投入を条件に、遊技者のスタートレバー16に対する操作によって、スタートスイッチ6Sから遊技を開始する信号が出力されると、モータ駆動回路39に制御信号が出力され、ステッピングモータ50L,50C,50Rの駆動制御(例えば、各相への励磁等)によりリール3L,3C,3Rの回転が開始される。この際、ステッピングモータ50L,50C,50Rに出力されるパルスの数が計数され、その計数値は、パルスカウンタとしてメインRAM603の所定の領域にセットされる。パチスロ1では、「16」のパルスが出力されると、リール3L,3C,3Rが図柄1つ分移動する。移動した図柄の数は計数され、その計数値は、図柄カウンタとしてメインRAM603の所定の領域にセットされる。つまり、パルスカウンタにより「16」のパルスが計数されるごとに、図柄カウンタが「1」ずつ更新される。なお、図柄カウンタの値が示す図柄位置の図柄(図22参照)がセンターライン8上に位置している図柄に対応する。例えば、左リール3Lの図柄カウンタが「0」である場合には、図22(a)に示す図柄配置テーブルの図柄位置「0」のベルがセンターライン8上に位置している。
また、リール3L,3C,3Rからは、1回転毎にリールインデックスが得られ、リールインデックスは、リール位置検出回路50を介してメインCPU601に出力される。リールインデックスの出力により、メインRAM603にセットされているパルスカウンタや図柄カウンタが「0」にクリアされる。このようにして、各リール3L,3C,3Rについて1回転の範囲内における図柄位置が特定される。なお、リールの回転により各図柄が1図柄分移動する距離を1コマという。すなわち、図柄が1コマ移動することは、図柄カウンタが「1」更新されることに対応する。
リール3L,3C,3Rの回転位置とリール外周面上に描かれた図柄とを対応付けるために、メインROM602には、図柄配置テーブル(図22(a)参照)が記憶されている。この図柄配置テーブルは、前述のリールインデックスが出力される位置を基準として、各リール3L,3C,3Rの一定の回転ピッチ毎に順次付与される、「00」から「20」までのコードナンバーと、それぞれのコードナンバー毎に対応して設けられた図柄の種類を識別する図柄コードとを対応付けている。
また、スタートスイッチ6Sから開始信号が出力されると、乱数発生器606やサンプリング回路607により乱数値が抽出される。パチスロ1では、乱数値が抽出されると、メインRAM603の乱数値記憶領域に記憶される。そして、乱数値記憶領域に記憶された乱数値に基づいて内部当籤役が決定される。
リール3L,3C,3Rが定速回転に達した後、停止操作によりストップスイッチ7LS,7CS,7RSから停止信号が出力されると、出力された停止信号および決定された内部当籤役に基づいて、リール3L,3C,3Rを停止制御する制御信号がモータ駆動回路39に出力される。モータ駆動回路39は、ステッピングモータ50L,50C,50Rを駆動制御し、リール3L,3C,3Rの回転を停止させる。
メインCPU601は、停止操作が行われた時点から内部当籤役の成立に係る図柄を最大滑りコマ数分、すなわち、4コマ分引き込んでリール3L,3C,3Rの回転を停止させる。具体的に、メインCPU601は、ストップスイッチ7LS,7CS,7RSにより停止操作の検出が行われた後、4コマ以内に内部当籤役の成立に係る図柄が存在するか否かを判別し、4コマ以内に内部当籤役の成立に係る図柄が存在する場合に、当該図柄を有効ライン上に停止表示されるように滑りコマ数を決定し、該当するリールを停止させる。また、メインCPU601は、内部当籤役として複数の役を決定した場合において、4コマ以内に内部当籤役の成立に係る図柄が複数存在する場合には、より優先順位の高い内部当籤役に係る図柄を有効ライン上に停止表示させるように滑りコマ数を決定する。
なお、基本的には、優先順位1位(優先度が最も高い)は、リプレイに係る図柄の組合せであり、優先順位2位は、小役に係る図柄の組合せである。次いで、優先順位3位は、ボーナスに係る図柄の組合せである。また、ストップスイッチ7LS,7CS,7RSにより停止操作の検出された際、該当するリール3L,3C,3Rの図柄カウンタに対応する図柄位置、すなわち、リール3L,3C,3Rの回転の停止が開始される図柄位置を「停止開始位置」といい、当該停止開始位置に決定した滑りコマ数(数値範囲「0」〜「4」)を加算した図柄位置、すなわち、リール3L,3C,3Rの回転を停止させる図柄位置を「停止予定位置」という。滑りコマ数は、ストップスイッチ7LS,7CS,7RSにより停止操作が検出されてから対応するリール3L,3C,3Rの回転が停止するまでのリール3L,3C,3Rの回転量であり、本実施形態においては、例えば最大滑りコマ数を「4」と規定している。
全てのリール3L,3C,3Rの回転が停止すると、メインCPU601は、センターライン8を含む有効ライン上に表示された図柄の組合せに基づいて表示役の検索処理、すなわち役の成立・不成立の判定処理を行う。表示役の検索は、メインROM602に記憶された後述の図柄組合せテーブル(図23参照)に基づいて行われる。この図柄組合せテーブルでは、表示役に係る図柄の組合せと、対応する配当とが設定されている。
表示役の検索により、入賞に係る図柄の組合せが表示されたと判別されると、ホッパー駆動回路341に制御信号が出力され、ホッパー装置34の駆動によりメダルの払い出しが行われる。この際、メダル検出部34Sは、ホッパー装置34から払い出されるメダルの枚数を計数し、その計数値が指定された数に達すると、払出完了信号回路342によりメダル払い出しの完了を示す信号が出力される。これにより、ホッパー駆動回路341に制御信号が出力され、ホッパー装置34の駆動が停止される。
なお、精算スイッチ14Sにより、クレジットモードに切り替えられている場合には、入賞に係る図柄の組合せが表示されたと判別されると、入賞に係る図柄の組合せに応じた払出枚数をメインRAM603のクレジットカウンタに加算する。また、副制御回路70には、払い出されたメダルの枚数に関する情報が送信され、これに基づいて液晶表示装置10の液晶表示領域10Aには、メダルの払出枚数および更新されたクレジット枚数が表示される。ここで、入賞に係る図柄の組合せが表示された場合に行われる、メダルの払い出し又はクレジットを総称して単に「払い出し」という場合がある。
[副制御回路の構成]
副制御回路70は、映像、音、光等を用いた遊技に関する演出を行うための制御を行う。副制御回路70は、主制御回路60から送信される各種のコマンド等に基づいて、演出データを決定して各種演出処理を行う。副制御回路70は、処理手段としてのサブCPU701、サブROM702、記憶手段としてのサブRAM703、レンダリングプロセッサ704、描画用RAM705(フレームバッファ706を含む)、ドライバ707、DSP708、A/D変換器709A、アンプ709B、オーディオRAM709C、及び通信手段としての副基板通信LSI710を有する。
サブCPU701は、サブROM702に記憶されているプログラムに基づいて、液晶表示装置10の表示制御、スピーカ48,49の出力制御、ランプ20の発光制御等を行う。具体的に、サブCPU701は、主制御回路60から各種のコマンド等を受信し、受信したコマンドに含まれる各種情報をサブRAM703に記憶させる。なお、主制御回路60からは、あらゆる情報がコマンドにより送信され、副制御回路70は、受信したコマンドに基づいて主制御回路60の状態を逐一判断することができる。サブCPU701は、サブRAM703に記憶させた遊技状態情報、内部当籤役情報等を参照しながら、プログラムを実行することにより、液晶表示装置10、スピーカ48,49、及びランプ20等の演出装置に行わせる演出の内容を決定する。サブCPU701は、決定した演出データに基づいて、レンダリングプロセッサ704を介して液晶表示装置10を制御し、スピーカ48,49から出力させる音と、各種ランプ20の発光を制御する。
また、サブCPU701は、サブROM702に記憶されている乱数取得プログラムを実行することにより、演出データ等を決定する際に用いる乱数値を取得する。ただし、主制御回路60と同様に乱数発生器およびサンプリング回路を副制御回路70内に設ける場合には、当該処理は不要である。
サブROM702は、サブCPU701が実行するプログラムを記憶するプログラム記憶領域と、各種テーブル等を記憶するデータ記憶領域を有する。プログラム記憶領域は、オペレーティングシステム、デバイスドライバ、主制御回路60との通信に係る各種の処理、演出の内容を決定するための演出登録タスク等を記憶する。一方、データ記憶領域は、演出抽籤テーブル等を記憶するテーブル記憶領域、キャラクタオブジェクトデータといったアニメーションデータ等を記憶する描画制御データ記憶領域、BGMや効果音といった音データ等を記憶する音声制御データ記憶領域、光の点灯パターン等を記憶するLED制御データ記憶領域等を有する。
サブRAM703は、図54に示すように、サブ制御ゲームデータ領域703aと、サブ制御ゲームデータサム値領域703bと、ワーク領域703cと、エラー情報履歴格納領域703dと、通信ログ収集領域703eと、通信エラー保存領域703fとを備える。
サブ制御ゲームデータ領域703aは、遊技の進行に関するゲームデータのうちでサブRAM703に記憶されるデータを記憶するようになっている。サブ制御ゲームデータサム値領域703bは、サブ制御ゲームデータ領域703aに記憶されたゲームデータのチェックサム用のサム値を記憶するようになっている。ワーク領域703cは、各種処理におけるワークデータを記憶するようになっている。
サブ制御ゲームデータ領域703aおよびワーク領域703cは、サブCPU701が各プログラムを実行する際に、作業用一時記憶手段として使用される。また、サブ制御ゲームデータ領域703aは、例えば、主制御回路60から送信されたコマンド、演出データ情報、遊技状態情報、内部当籤役情報、表示役情報、各種カウンタおよび各種フラグ等の情報を記憶するようになっている。
エラー情報履歴格納領域703dは、図55(a)に示すように、後述する主基板通信処理(図40参照)や通信LSI受信データ解析処理(図41参照)等により検出された全てのエラー情報を記憶するようになっている。エラー情報履歴格納領域703dでは、エラーコードが逐次記憶されることにより、エラー情報履歴が作成されるようになっている。エラー情報履歴格納領域703dでは、検出されたエラーがCOMエラーとして記憶されるようになっている。
具体的には、図55(a)に示すように、エラー情報履歴格納領域703dは、エラーコード(図中、ERROR CODE)と、エラー発生日時(図中、「発生」)と、エラー解除日時(図中、「解除」)とを1組のエラー情報とし、128組のエラー情報を格納可能になっている。このように、エラー情報履歴格納領域703dでは、エラーコードが逐次記憶されることにより、エラー情報履歴が作成される。
エラーコードは、1バイトデータであり、その内容は、図55(b)に示すように、データ破壊エラー(図中、「サム異常」)や、通信に係る各種のエラー(図中、「主基板通信LSI物理層エラー」、「主基板通信LSIサイズ不足」、「副基板通信LSI物理層エラー」、「副基板通信LSIサイズ不足」、「副基板通信LSI CRCエラー」、「サブCPU CRCエラー」、「サブCPU サイズ不足」)や、その他のエラーを含んでいる。エラー発生日時およびエラー解除日時は、いずれも2バイトデータの年、1バイトデータの月、1バイトデータの日、1バイトデータの時、1バイトデータの分、1バイトデータの秒から構成されている。
本実施形態においては、エラー情報履歴格納領域703dに格納されたエラー情報履歴を液晶表示装置10に表示させるために次のような手順を一例として採用している。例えば、係員がドアキー110を右回転させると、フロントドア2bのロック機構が解除され、さらに設定キーを設定用鍵型スイッチに差し込んでオン操作すると、液晶表示領域10Aには、図44に示すメニュー画面が表示される。そして、係員が画面上の操作キーを操作して、「エラー情報履歴」項目100aを選択することで、液晶表示領域10Aには、図45に示すようなエラー情報履歴画面が表示される。また、係員がドアキーを左回転させるとエラーのリセットが行われ、その状態を一定時間、例えば5秒間以上保持することによっても、液晶表示領域10Aには、図45に示すようなエラー情報履歴画面が表示されるようになっている。
図47に示すように、通信ログ収集領域703eには、256のコマンドおよびパラメータのデータ組と、対応する1つのバッファインデックスとからなるデータ群が適宜数記憶され、それらがリングバッファとして機能するようになっている。図48に示すように、通信エラー保存領域703fには、256のコマンドおよびパラメータのデータ組と、対応する1つのバッファインデックスとからなるデータ群が1024個記憶されている。また、通信エラー保存領域703fには、1024のバッファインデックスのうちのどのバッファインデックスが選択されているかを示すバッファ選択インデックスが1つ設けられている。図47に示す通信ログ収集領域703e及び図48に示す通信エラー保存領域703fでは、コマンドは1文字データからなるとともに、パラメータは2文字データからなるものとしている。
サブCPU701は、受信ログ(以下、通信ログともいう)に関する情報を収集して、通信ログ収集領域703eに通信ログを一時的に保存する。さらに、サブCPU701は、通信に関するエラーを検出した場合に、通信エラー保存領域703fに通信エラーに関する通信ログ(以下、通信エラーログという)を1024個まで保存するようになっている。
図46には、コマンドの種別とパラメータとの例を示す。同図中の数値は、データの文字数であり、1文字のデータはコマンド種別、2文字のデータは直前のコマンドに対するパラメータをそれぞれ示す。本実施形態において、受信コマンドの数値範囲は、図46に示すように、01H〜10Hとなっている。
図4に示すように、サブCPU701には、主制御回路60から送信されたコマンド等のデータを受信するための副基板通信LSI710が接続されている。副基板通信LSI710は、副制御回路70を構成する要素として副基板7A(図6参照)に搭載されている。副基板通信LSI710は、光伝送媒体としての光ファイバーケーブル100(図6参照)によりドア中継基板53を介して主制御回路60における主基板通信LSI610に接続されている。サブCPU701は、副基板通信LSI710を通じて主制御回路60から送信された各種のコマンド等を受信する。なお、本実施形態のサブCPU701には、UART701Aが内蔵されており、サブCPU701は、UART701Aを通じて副基板通信LSI710との間でデータを送受信可能とされる(図6参照)。このような副基板通信LSI710やUART701Aの詳細については、後述する。
レンダリングプロセッサ704は、サブCPU701からの画像表示コマンド等に基づいて、液晶表示装置10に画像を表示させるための処理を行う。レンダリングプロセッサ704が行う処理に必要なデータは、起動時に描画用RAM705に展開される。レンダリングプロセッサ704は、描画用RAM705に展開されている画像データを後方に位置する背景画像から前方に位置する画像まで順に重ね合わせて画像データを生成し、ドライバ707を介して液晶表示装置10に供給する。その結果、サブCPU701により決定された演出データに応じた画像が液晶表示装置10によって液晶表示領域10Aに表示される。
描画用RAM705は、書込画像データ領域と表示画像データ領域の2つのフレームバッファ706を有する。書込画像データ領域は、レンダリングプロセッサ704が表示画像を生成した画像データを格納し、表示画像データ領域は、液晶表示装置10に表示させる画像データを格納する。レンダリングプロセッサ704は、これらのフレームバッファを交互に切り替える(すなわち、バンクを切り替える)ことにより、順次、画像データを液晶表示装置10に表示させる。
DSP708は、サブCPU701が演出データに基づいて選択するデジタル形式の音データに基づいてサウンドデータを生成する。オーディオRAM709Cは、サウンドデータを一時的に記憶し、オーディオバッファとして用いられる。A/D変換器709Aは、DSP708からのサウンドデータを、アナログ形式の音データに変換してアンプ709Bに出力する。アンプ709Bは、A/D変換器709Aからのアナログ形式の音データを音量調整用ツマミ(図示せず)により調節された音量に基づいて増幅させ、スピーカ48,49に出力する。その結果、サブCPU701により決定された演出データに応じた音が、スピーカ48,49から出力される。
[主基板通信LSI及び副基板通信LSIの構成]
図5は、主基板通信LSI610及び副基板通信LSI710の構成を示している。主基板通信LSI610及び副基板通信LSI710は、同一の構成要素を有するものである。以下、主基板通信LSI610と副基板通信LSI710とに共通する各構成要素の機能を主として説明するとともに、主基板通信LSI610と副基板通信LSI710とで各構成要素の機能が異なる点については、主基板通信LSI610と副基板通信LSI710とで適宜区別して説明する。
図5に示すように、主基板通信LSI610及び副基板通信LSI710は、専用コントローラ611,711、設定レジスタ612,712、キャッシュメモリ613,713、AES(Advanced Encryption Standard)回路614,714、第1UART(Universal Asynchronous Receiver Transmitter)615,715、第2UART616,716、第1SPI(Serial Peripheral Interface)617,717、第2SPI(図示せず)、第1〜4マンチェスター回路618〜621,718〜721、及びクロック・リセット制御回路622,722を構成要素として有する。これらの構成要素は、内部バス623,723を介して相互に接続されている。第1UART615,715及び第1マンチェスター回路618,718は、互いに接続されており、第2UART616,716及び第2マンチェスター回路619,719も、互いに接続されている。このような主基板通信LSI610及び副基板通信LSI710は、例えばASICにより構成される。
専用コントローラ611,711は、送信及び受信に係る全般的な制御を行う。例えば、専用コントローラ611,711は、例えばハードウェアタイマとして機能し、送受信時にタイムアウト処理を行う。設定レジスタ612,712は、不揮発性メモリと同等の機能をもつ記憶回路である。設定レジスタ612,712には、後述のAES回路614,714で使用される暗号化キーや通信仕様に係る設定データ等が格納される。設定レジスタ612,712には、例えば基板実装時において1回に限り後述の第2SPIを通じてデータが書き込み可能である。キャッシュメモリ613,713は、主にバッファとして用いられる。例えば、キャッシュメモリ613,713には、送受信に係るデータが一時記憶される。クロック・リセット制御回路622,722は、発振器(OSC:Oscillator)や外部リセットによる入力信号に基づいてクロック信号やリセット信号を生成し、送受信のタイミングやリセット動作を制御する。
AES回路614,714は、共通鍵ブロック暗号方式によりデータの暗号化及び復号化を行う。AES回路614,714は、AES暗号化アルゴリズムに基づく機能ブロックと、AES暗号化アルゴリズムの逆関数であるAES復号化アルゴリズムに基づく機能ブロックとをハードウェア構成として備えている。AES暗号化アルゴリズムは、共通鍵を使って平文データを暗号化し、AES復号化アルゴリズムは、同じ共通鍵を使って暗号化したデータを元の平文データに戻すようになっている。
ここで、AES暗号化アルゴリズムは、共通鍵暗号方式の代表的な暗号化アルゴリズムであり、鍵長が128ビット、192ビット、256ビットから選択可能であって、ブロック長が例えば128ビットのSPN(Substitution Permutation Network Structure)構造のブロック暗号である。ほとんどのブロック暗号は、実装コストを効率化するため、同一のラウンド関数を繰り返す繰返し暗号になっており、SPN構造は、繰返し暗号の代表的な構成法である。また、ブロック暗号とは、共通鍵暗号の一種であり、固定長のデータを単位として処理する暗号の総称である。ちなみに、ビット単位やバイト単位で処理を行う暗号は、ストリーム暗号と称される。
図7は、AES回路614,714の構成を示す模式図である。同図に示すように、AES回路614,714は、所定ラウンド数の行列演算操作をステップ単位に繰り返し実行する機能ブロックにより構成される。AES回路614,714により繰り返し実行されるステップとしては、バイトサブステップ614A,714A、行シフトステップ614B,714B、列混合ステップ614C,714C、及び最終ステップとしてラウンド鍵追加ステップ614D,714Dがある。これらのステップが繰り返し実行される回数(ラウンド数)は、鍵長によって異なり、鍵長が128ビットでラウンド数11、鍵長が192ビットでラウンド数13、鍵長が256ビットでラウンド数15となっている。ただし、いずれにおいても最終ラウンドにおいては、列混合ステップ614C,714Cは実行されない。
バイトサブステップ614A,714Aでは、最初に、固定長の入力データが例えば4行4列からなる16個のバイトに区分され、各バイトがSボックスによって置換される。Sボックスは、共通鍵ブロック暗号方式の基本的な関数をハードウェアにより実現したものであり、平文と暗号文の相関性(線形性)を壊すための仕組みを提供している。Sボックスは、差分暗号解読に対する耐性に優れており、また、線形暗号解読による近似を防止することにおいても優れている。
次に、行シフトステップ614B,714Bでは、行及び列からなるバイトのうちの各行が所定のアルゴリズムに基づいて行方向にシフトされる。このような行シフトステップ614B,714Bは、各行の異なるバイトがその他の行において対応するバイトと相互作用しないようにする仕組みを提供している。
次に、列混合ステップ614C,714Cでは、行シフトステップ614B,714Bを経た各列のバイトがガロア体演算に基づく行列により乗算される。このような列混合ステップ614C,714Cは、各列における各バイトが他のバイトに影響を与えるようにする仕組みを提供している。
次に、ラウンド鍵追加ステップ614D,714Dでは、設定レジスタ612,712に格納された暗号化キー(公開鍵)を所定のアルゴリズムに基づいて変換し、変換したデータがラウンド鍵として次のラウンドに渡される。そして、ラウンド鍵追加ステップ614D,714Dでは、ラウンドごとに異なるラウンド鍵と列混合ステップ614C,714Cあるいは行シフトステップ614B,714Bを経た各バイトとの排他的論理和がとられる。なお、ラウンド鍵に対してオリジナル鍵となる暗号化キー(公開鍵)やAES回路614,714に関する設定データ等は、例えば基板実装時において1回に限り、後述の第2SPIを通じて設定レジスタ612,712に書き込まれる。
このようなAES回路614,714によれば、上述したバイトサブステップ614A,714A、行シフトステップ614B,714B、列混合ステップ614C,714C、ラウンド鍵追加ステップ614D,714Dが所定ラウンド数繰り返し実行されることにより、暗号化されたデータが出力される。暗号化されたデータは、AES回路614,714によるAES暗号化アルゴリズムとは逆のAES復号化アルゴリズムにより元の平文データに変換される。これにより、主基板通信LSI610から副基板通信LSI710へと送信されるデータは、AES暗号化されたデータとなって解読されにくい。すなわち、主基板通信LSI610と副基板通信LSI710との間の通信区間においては、AES暗号化により通信ゴトを十分に防止することができる。
第1UART615,715は、調歩同期方式によるシリアル信号をパラレル信号に変換したり、その逆方向の変換を行う回路である。第1UART615,715では、送受信のタイミングを計るための同期クロック信号線が不要とされる。第1UART615,715は、送受信時のエラー(物理層エラー)を検出する機能を有する。第1UART615,715は、専用コントローラ611,711にエラーが発生したことを伝える。
図51に示すように、エラーの種類には、パリティエラー、オーバーランエラー、フレーミングエラー等がある。パリティエラーは、受信したデータのパリティビットに誤りがあるときに発生する。オーバーランエラーは、受信データバッファ(キャッシュメモリ613,713)に格納されたデータを専用コントローラ611,711が取り出さないうちに、次のデータを受信してしまったときに発生する。フレーミングエラーは、ストップビットを受信すべきタイミングで、ストップビットの論理値ではなかったときに発生する。
なお、第2UART616,716は、第1UART615,715と同様の機能を有するものであり、共通する機能についての説明は省略する。メインCPU601及びサブCPU701のそれぞれに内蔵された第1UART601A及びUART701A(図6参照)も、第1UART615,715と同様の機能を有するものであり、共通する機能についての説明は省略する。
第1SPI617,717は、同期方式によるシリアル通信用のインターフェース回路である。第1SPI617,717は、非同期方式のシリアル通信に比べて高速にデータを送受信し得る。第1SPI617,717には、複数のデバイスが接続可能である。本実施形態において、第1SPI617,717は、主基板通信LSI610及び副基板通信LSI710の拡張機能として予備的に設けられている。なお、図示しない第2SPIは、第1SPI617,717と同様の機能を有するものであり、共通する機能についての説明は省略する。本実施形態の第2SPIには、設定レジスタ612,712に対して暗号化キーや設定データ等を書き込む際に用いる専用端子が設けられている。すなわち、第2SPIは、暗号化キーや設定データ等の書き込みデバイス専用の接続回路として使用される。
第1マンチェスター回路618,718は、二相位相偏移変調(BPSK:Binary Phase−Shift Keying)方式によりデジタル形式のシリアルデータの変調(符号化)及び復調(復号化)を行う回路である。第1マンチェスター回路618,718は、連続する「0」又は「1」からなる比較的長いストリングが含まれない任意のビット列からなるシリアルデータを変調し、また、変調されたシリアルデータから元のビット列からなるデジタルデータを復調する。第1マンチェスター回路618,718は、変調の際に用いるクロックレートをシリアルデータ内に埋め込むことができる。基本的にマンチェスター変調方式では、デジタル入力値の「1」及び「0」からなるバイナリ状態を遷移として定義付け、シリアルデータとして入力される信号の立上りエッジと立下りエッジに対し、デジタル出力値としてロジックレベルの「0」と「1」、あるいはその逆のロジックレベルを割り当てることにより、変調されたシリアルデータを生成する。復調の際には、変調とは逆の手順で復調を行い、デジタル入力値としてロジックレベルの「0」と「1」に対して、出力すべき信号に立上りエッジと立下りエッジ、あるいはその逆の信号波形を形成することにより、復調されたシリアルデータを生成する。
なお、本実施形態においては、図5及び図6に具体的に示すように、第1マンチェスター回路618,718は、第1UART615,715と対をなし、この第1UART615,715を通じてデータを送受信し得るように構成されている。第2マンチェスター回路619,719、第3マンチェスター回路620,720、及び第4マンチェスター回路621,721は、第1マンチェスター回路618,718と同様の機能を有するものであり、共通する機能についての説明は省略する。また、本実施形態では、有線の光通信システム(主基板通信LSI610及び副基板通信LSI710)に第1マンチェスター回路618,718を設けているが、マンチェスター回路は、一般的に無線伝送に適しているので、マンチェスター回路を含む無線通信システムを構築するようにしてもよい。
第2マンチェスター回路619,719は、第2UART616,716と対をなし、この第2UART616,716を通じてデータを送受信するように構成されている。第3マンチェスター回路620,720は、第1SPI617,717を介する送受信用として設けられ、この第1SPI617,717を通じてデータを送受信するように構成されている。第4マンチェスター回路621,721は、その他の回路と組み合わされずに独立したものとして設けられ、第4マンチェスター回路621,721単独でデータを送受信し得るように構成されている。
本実施形態においては、図8に具体的に示すように、主基板通信LSI610の第2マンチェスター回路619は、主にマンチェスター変調回路として機能する一方、副基板通信LSI710の第2マンチェスター回路719は、主にマンチェスター復調回路として機能する。変調回路としての第2マンチェスター回路619は、同期用のクロック信号800cと入力されるシリアルデータ800dとの排他的論理和をとり、その結果、変調されたシリアルデータ800d’を生成・出力する。復調回路としての第2マンチェスター回路719は、同期用のクロック信号800cと変調されたシリアルデータ800d’とを入力としてこれらの排他的論理和をとり、その結果、復調された元のシリアルデータ800dを生成・出力する。このような第2マンチェスター回路619,719は、デジタルデータを比較的安価に送受信することができる。
図6に模式的に示すように、本実施形態の主基板6Aにおいては、メインCPU601からのコマンドを含むデータ(パケットデータ)が、第1UART601Aから第1UART615に供給され、この第1UART615で後述する物理層エラーの検出等が行われた後、AES回路614で暗号化され、さらに第2UART616を通じて第2マンチェスター回路619に供給され、この第2マンチェスター回路619で変調されるように構成されている。このようにして変調されたデータは、コマンドを含むシリアルデータとされ、光ファイバーケーブル100の発光側接続端に配置された光通信デバイスの発光素子630により光信号として出力されることにより、光ファイバーケーブル100を通じて副基板7Aへと送信される。
副基板7Aにおいては、主基板6Aから送信されたコマンドを含むシリアルデータが、光ファイバーケーブル100の発光側接続端から受光側接続端へとドア中継基板53を経由しつつ光信号として伝送され、光ファイバーケーブル100の受光側接続端に配置された光通信デバイスの受光素子730に受信されることで第2マンチェスター回路719に供給され、この第2マンチェスター回路719で復調された後、第2UART716を通じてAES回路714に供給され、さらにAES回路714において復号化された後、第1UART715を通じてUART701Aに供給されることにより、サブCPU701がメインCPU601からのコマンドを受信し得るようになっている。
また、図9に示すように、メインCPU601から主基板通信LSI610へと送信されるデータは、8Byteの平文からなるパケットデータであり、その際の通信速度(ボーレート)は、19200bpsとされる。これは、メインCPU601及び主基板通信LSI610間の通信仕様、具体的には、メインCPU601の処理スペックに応じて設計された通信仕様に準拠するものである。主基板通信LSI610から副基板通信LSI710へと送信されるデータは、マンチェスター変調及び暗号化された16Byteのデータであり、その際の通信速度は、115200bpsとされる。これは、主基板通信LSI610及び副基板通信LSI710間の通信仕様、具体的には、主基板通信LSI610及び副基板通信LSI710、並びにサブCPU701の処理スペックに応じて設計された通信仕様に準拠するものである。副基板通信LSI710からサブCPU701へと送信されるデータは、マンチェスター復調及びAES復号化された16Byteの平文データであり、その際の通信速度は、115200bpsとされる。これは、副基板通信LSI710及びサブCPU701間の通信仕様、具体的には、サブCPU701のスペックに応じて設計された通信仕様に準拠するものである。
[通信データの内容]
図49〜53は、送受信に係る通信データの内容を示す説明図である。以下、図49〜53を参照して通信データについて説明する。
図49に示すように、主基板通信LSI610から副基板通信LSI710へと送信される外部通信データは、D0〜D15のバイト単位の番号(バイトナンバー)で区分けされた16Byte固定長のデータフレームからなる。
外部通信データのバイトナンバーD0,D1には、パケット受信番号が割り当てられる。パケット受信番号は、0〜65535の値が割り当て可能であり、1パケット受信あるいは受信中タイムアウトにより加算(インクリメント)される。1パケット受信とは、メインCPU601から例えば1Byteのパケット単位(伝送単位)で送信されるデータを受信したことを意味する。受信中タイムアウトとは、パケット単位の1個分のデータが例えば1Byteである場合、1Byte未満のデータしか受信していない状況でタイムアウトが発生したことを意味する。
外部通信データのバイトナンバーD2〜D9には、メインCPU601から送信されたパケットデータが割り当てられる。パケットデータは、メインCPU601からサブCPU701へと送信されるコマンドに相当する。パケットデータは、通信仕様に基づいて8Byte固定長と定められている。
外部通信データのバイトナンバーD10,D11には、主基板通信LSI610に関連する通信情報が割り当てられる。具体的にいうと、バイトナンバーD10には、主基板通信LSI610から送信されるパケットデータのデータサイズが割り当てられる。バイトナンバーD11には、主基板通信LSI物理層エラー等が受信ステータス(図51参照)として割り当てられる。主基板通信LSI物理層エラーとは、メインCPU601から供給されたデータを主基板通信LSI610が受信する際に第1UART615により検出され得るハードウェア上の通信エラーであり、例えば図51に示すオーバーランエラー、フレーミングエラー、パリティエラー等である。なお、パケットデータのデータサイズは、通信仕様に基づいて8Byte固定長であるので、バイトナンバーD10には、常に8Byteを示す固定値が割り当てられる。
外部通信データのバイトナンバーD12,D13には、副基板通信LSI710に関連する通信情報が割り当てられる。なお、バイトナンバーD12,D13には、後述するように副基板通信LSI710のデータ受信時に発生する受信ステータス等が割り当てられる。そのため、外部通信データにおけるバイトナンバーD12,D13は、単に予約領域として確保されており、例えばダミーデータとして固定値‘0000H’が割り当てられる。
外部通信データのバイトナンバーD14,D15には、巡回冗長検査(Cyclic Redundancy Check)によるCRCデータが割り当てられる。巡回冗長検査は、バイトナンバーD0〜D13を対象として行われる。
図50に示すように、副基板通信LSI710からサブCPU701へと送信される内部通信データは、基本的に図49に示す通信データと同一構造のフレームからなる。
内部通信データのバイトナンバーD0〜D11には、先述した外部通信データのバイトナンバーD0〜D11の内容がそのまま複写されて割り当てられる。
内部通信データのバイトナンバーD12,D13には、副基板通信LSI710に関連する通信情報が割り当てられる。具体的にいうと、バイトナンバーD12には、副基板通信LSI物理層エラー等が受信ステータスとして割り当てられる。副基板通信LSI物理層エラーとは、主基板通信LSI610から供給されたデータを副基板通信LSI710が受信する際に第2UART716により検出され得るハードウェア上の通信エラーであり、例えば図51に示すオーバーランエラー、フレーミングエラー、パリティエラー等である。バイトナンバーD13には、副基板通信LSI710が主基板通信LSI610から供給されたデータを受信する際に検出され得る後述の論理エラーがパケット種別として割り当てられる。
内部通信データのバイトナンバーD14,D15には、外部通信データと同様に巡回冗長検査によるCRCデータが割り当てられる。巡回冗長検査は、バイトナンバーD0〜D13を対象として行われる。
図51に示すように、受信ステータスは、B0〜B7のビット単位の番号(ビットナンバー)で区分けされたフォーマットからなる。
受信ステータスのビットナンバーB0〜B3には、エラーカウントが割り当てられる。エラーカウントは、受信エラー発生総数となる、パリティ、フレーミング、及びオーバーランに係るエラー発生総数を示し、0〜15の値が割り当て可能とされる。
受信ステータスのビットナンバーB4には、物理層エラーとしてオーバーランエラーの有無が割り当てられる。例えば、オーバーランエラーが有る場合、ビットナンバーB4には「1」が割り当てられ、オーバーランエラーが無い場合、ビットナンバーB4には「0」が割り当てられる。
受信ステータスのビットナンバーB5には、物理層エラーとしてフレーミングエラーの有無が割り当てられる。例えば、フレーミングエラーが有る場合、ビットナンバーB5には「1」が割り当てられ、フレーミングエラーが無い場合、ビットナンバーB5には「0」が割り当てられる。
受信ステータスのビットナンバーB6には、物理層エラーとしてパリティエラーの有無が割り当てられる。例えば、パリティエラーが有る場合、ビットナンバーB6には「1」が割り当てられ、パリティエラーが無い場合、ビットナンバーB6には「0」が割り当てられる。
受信ステータスのビットナンバーB7には、タイムアウトの有無が割り当てられる。例えば、タイムアウトが発生した場合、ビットナンバーB7には「1」が割り当てられ、タイムアウトが発生し無かった場合、ビットナンバーB7には「0」が割り当てられる。
図52に示すように、パケット種別は、B0〜B7のビット単位の番号(ビットナンバー)で区分けされたフォーマットからなる。
パケット種別のビットナンバーB0〜B4には、論理エラーの種類が割り当てられる。例えば、ビットナンバーB0〜B4には、論理エラーが無い場合、「00000」のビット列が割り当てられ、CRCエラーが有る場合、「00001」のビット列が割り当てられ、主基板通信LSI610がメインCPU601から受信したデータにサイズ不足が有る場合、「00010」のビット列が割り当てられ、副基板通信LSI710が主基板通信LSI610から受信したデータにサイズ不足が有る場合、「00100」のビット列が割り当てられ、その他の論理エラーが有る場合、その論理エラーに対応付けられたビット列が割り当てられる。なお、パケット種別のビットナンバーB0〜B4に割り当てられるCRCエラーは、副基板通信LSI710が主基板通信LSI610からデータを受信する際に発生し得るものである。主基板通信LSI610がメインCPU601からデータを受信する際のサイズ不足は、主基板通信LSI610の受信ステータスとしてタイムアウトが発生した場合に生じるものである。副基板通信LSI710が主基板通信LSI610からデータを受信する際のサイズ不足は、副基板通信LSI710の受信ステータスとしてタイムアウトが発生した場合に生じるものである。
パケット種別のビットナンバーB5〜B7には、通信分類が割り当てられる。例えば、ビットナンバーB5〜B7には、主制御回路60との通信(主制御通信)に該当する場合、「000」のビット列が割り当てられ、その他の通信に該当する場合、その通信に対応付けられたビット列が割り当てられる。
図53(a)に示すように、メインCPU601は、コマンドを含む8Byte固定長のパケットデータP0〜P7をシリアルデータとして主基板通信LSI610に送信する。例えば、パケットデータP0は、コマンドに係るデータを示し、パケットデータP1〜P6は、コマンドに対応するパラメータデータを示し、パケットデータP7は、パケットデータP0〜P6のチェックサムとして例えばBCC(Block Check Character)を示す。主基板通信LSI610では、受信したパケットデータP0〜P7に対して物理層エラー等のチェックを行い、さらに受信結果等を付加したデータに対してAES暗号化が行われる。
図53(b)に示すように、主基板通信LSI610は、メインCPU601からパケットデータP0〜P7を受信すると、当該パケットデータP0〜P7を含む16Byte固定長の外部通信データD0〜D15をシリアルデータとして副基板通信LSI710に送信する。このとき、主基板通信LSI610から送信されるシリアルデータには、AES回路614により暗号化され、かつ、変調回路としての第2マンチェスター回路619により変調された外部通信データD0〜D15が載せられる。パケットデータP0〜P7は、外部通信データD0〜D15のうちの例えばD2〜D9に配置される(図49参照)。
図53(c)に示すように、副基板通信LSI710は、主副基板通信LSI610からシリアルデータとして外部通信データD0〜D15を受信すると、当該外部通信データD0〜D15に応じた可変長の内部通信データSTX(Start of TeXt),DLE(Data Link Escape),D0〜D15をシリアルデータとしてサブCPU701に送信する。このとき、副基板通信LSI710から送信されるシリアルデータには、AES回路714により復号化され、かつ、復調回路としての第2マンチェスター回路719により復調された内部通信データD0〜D15が載せられる。メインCPU601からのパケットデータP0〜P7は、内部通信データD0〜D15のうちの例えばD2〜D9に配置される(図50参照)。D0〜D15は、シリアル形式のバイナリデータとして送信される一方、STXやDLEは、後述するように制御キャラクタとして送信される。
例えば、副基板通信LSI710から送信されるデータに後述の制御データ(受信コマンドに該当するデータ、図46参照)に該当するものが無い場合、通信伝文の開始を示す制御キャラクタの「STX」のみを先頭に付加した内部通信データSTX,D0〜D15が送信される。このとき、データ送信サイズとして最小送信バイト数は、D0〜D15の16ByteにSTXの1Byte分を加えた17Byteとなる。一方、副基板通信LSI710から送信されるデータに制御データに該当するものが有る場合、「STX」を先頭に付加すると共に、制御データを含むブロック(図53(c)では一例としてバイトナンバーD12)の前にその旨を示す制御キャラクタの「DLE」を付加した内部通信データSTX,DLE,D0〜D15が送信される。これにより、データ送信サイズとして最大送信バイト数は、全てのブロックD0〜D15に制御データが含まれている場合を仮定すると、理論的にはD0〜D15の16Byteとこれらに対応するDLEの最大16ByteとSTXの1Byteとを合計した33Byteとなる。副基板通信LSI710は、送信すべきデータ中に制御データを検出すると、該当するバイトナンバーのブロックをエスケープ処理し、当該ブロックの前にDLEを付加する。エスケープ処理は、該当するブロック(バイトナンバー)のデータと所定値との排他的論理和を算出することにより実行される。
[外部出力用通信LSI及び外部端子板制御LSIの構成]
図10は、主基板6Aと外部集中端子板9Aとの接続形態を模式的に示し、図11は、外部出力用通信LSI610A及び外部端子板制御LSI910の構成を示し、図12は、メインCPU601からホールコンピュータ1000までのデータ及び信号の流れを示している。なお、図11に示すように、外部出力用通信LSI610A及び外部端子板制御LSI910は、先述した主基板通信LSI610及び副基板通信LSI710と同様の構成要素として、専用コントローラ611A,911、設定レジスタ612A,912、キャッシュメモリ613A,913、AES回路614A,914、第1UART615A,915、第2UART616A,916、第1SPI617A,917、第2SPI(図示せず)、第1〜4マンチェスター回路618A〜621A,918〜921、及びクロック・リセット制御回路622A,922を有している。これらの構成要素は、主基板通信LSI610及び副基板通信LSI710によるものと同様の機能を果たすため、その説明を省略する。外部出力用通信LSI610A及び外部端子板制御LSI910は、先述した主基板通信LSI610及び副基板通信LSI710とは異なる構成要素として、GPIO(General Purpose Input/Output)インターフェース624A,924を有する。これらの構成要素は、内部バス623A,923を介して相互に接続されている。このような外部出力用通信LSI610A及び外部端子板制御LSI910も、例えばASICにより構成される。
本実施形態の主基板6Aにおいては、メインCPU601の第2UART601Bから外部出力用通信LSI610Aに対してコマンドが送信され、この外部出力用通信LSI610Aで物理層エラーの検出等が行われた後、AES回路614Aで暗号化され、さらに第2UART616Aを通じて第2マンチェスター回路619Aに供給され、この第2マンチェスター回路619Aで変調されるように構成されている。このようにして変調されたコマンドは、シリアル通信方式に従う外部出力用データとされ、光ファイバーケーブル100の発光側接続端に配置された光通信デバイスの発光素子630Aにより光信号として出力されることにより、光ファイバーケーブル100を通じて外部集中端子板9Aへと送信される。
外部集中端子板9Aにおいては、主基板6Aから送信された外部出力用データが、光ファイバーケーブル100の発光側接続端から受光側接続端へと外部中継基板8Aを経由しつつ光信号として伝送され、光ファイバーケーブル100の受光側接続端に配置された光通信デバイスの受光素子930に受信されることで外部端子板制御LSI910の第2マンチェスター回路919に供給され、この第2マンチェスター回路919で復調された後、第2UART916を通じてAES回路914に供給され、さらにAES回路914において復号化された後、受信した外部出力用データに基づいて汎用入出力方式に従う複数のオン/オフ状態を示す信号が生成され、これら複数の信号がGPIOインターフェース924の各出力ポートから各リレー940を介して外部出力コネクタ950に供給される。外部出力コネクタ950には、ホールコンピュータ1000が接続されており、ホールコンピュータ1000には、複数の信号のオン/オフ状態が伝えられる。ホールコンピュータ1000では、外部集中端子板9Aからの複数の信号のオン/オフ状態に基づいて各種の解析処理が行われる。本実施形態の信号としては、メダルイン信号、メダルアウト信号、セキュリティ信号、外部信号1〜4がある。
このような主基板6Aと外部集中端子板9Aとは、外部中継基板8Aで配線が中継された光ファイバーケーブル100を介して互いに接続されている。また、主基板6A及び副基板7Aも、ドア中継基板53で配線が中継された光ファイバーケーブル100を介して互いに接続されている。なお、光ファイバーケーブルを用いた接続方式では、必ずしも中継基板を設ける必要はなく、接続対象となる双方の基板に光ファイバーケーブルの両端を直結し、これらの基板どうしを直接接続するようにしてもよい。
また、図12に示すように、メインCPU601から外部出力用通信LSI610Aへと送信されるコマンドは、2Byteの平文データであり、その際の通信速度(ボーレート)は、19200bpsとされる。これは、メインCPU601及び外部出力用通信LSI610A間の通信仕様、具体的には、メインCPU601の処理スペックに応じて設計された通信仕様に準拠するものである。外部出力用通信LSI610Aから外部端子板制御LSI910へと送信される外部出力用データは、マンチェスター変調及び暗号化された1Byteのデータであり、その際の通信速度は、115200bpsとされる。これは、外部出力用通信LSI610A及び外部端子板制御LSI910間の通信仕様、具体的には、外部出力用通信LSI610A及び外部端子板制御LSI910並びにホールコンピュータ1000の処理スペックに応じて設計された通信仕様に準拠するものである。外部端子板制御LSI910からホールコンピュータ1000へと出力されるパラレル信号は、複数の信号からなる。なお、外部出力用通信LSIから外部端子板制御LSIへと送信される外部出力用データは、マンチェスター変調が施されることなく暗号化のみがなされたデータとしてもよい。これによれば、主基板から外部集中端子板へと効率よくデータを転送することができる。
より詳細に説明すると、図66に示すように、コマンドは、コマンドの種別を示す1Byteのコマンド情報(CMD)と、これに付随してパラメータを示す1Byteの設定データ(DATA)とをセットにしたものである。本実施形態においては、例えば16進数表記によるコマンド情報として、メダルインを示すメダルインコマンド「90H」、メダルアウトを示すメダルアウトコマンド「A0H」、遊技等に係る各種の情報を単に外部出力することを示す外部出力コマンド「B0H」、当該各種の情報をメダルアウトに係るコマンドの外部出力終了後に続いて外部出力すべきことを示す外部出力チェーンコマンド「B1H」、当該各種の情報を所定時間継続して外部出力すべきことを示す外部出力ONコマンド「B2H」、当該各種の情報をメダルアウトに係るコマンドの外部出力終了後であって、かつ、所定時間継続して外部出力すべきことを示す外部出力ONチェーンコマンド「B3H」、当該各種の情報を所定時間継続して外部出力オフ状態とすべきことを示す外部出力OFFコマンド「B4H」、当該各種の情報をメダルアウトに係るコマンドの外部出力終了後であって、かつ、所定時間継続して外部出力オフ状態とすべきことを示す外部出力OFFチェーンコマンド「B5H」、セキュリティに係る情報を外部出力することを示すセキュリティコマンド「C0H」が用意されている。
なお、外部出力に係るコマンド「B0H」〜「B5H」には、例えば遊技状態や入賞といった情報が割り当てられるが、特にそのような情報に限られるものではなく、機種ごとに必要な各種の情報を適宜定めることが可能である。また、セキュリティコマンド「C0H」には、例えば、ドア開検知及び設定変更開始を示す情報に加え、メインRAM603のサム異常、投入メダル通過時間、投入メダル通過チェック、投入メダル逆行、補助庫満杯、ホッパーエンプティ、ホッパージャム、イリーガルヒット(当籤役と入賞役とが異なる不正入賞)といったセキュリティ情報が割り当てられる。
メダルインコマンド「90H」の設定データには、メダル投入枚数を示す数値として1〜3がセットされる。メダルアウトコマンド「A0H」の設定データには、メダル払出枚数を示す数値として1〜15がセットされる。外部出力に係るコマンド「B1H」〜「B5H」の設定データの下位4ビットには、その種別を示す情報として外部信号1〜4がセットされる。外部出力コマンド「B0H」及び外部出力チェーンコマンド「B1H」の設定データの上位4ビットは、未使用とされる。外部出力ONコマンド「B2H」、外部出力ONチェーンコマンド「B3H」、外部出力OFFコマンド「B4H」、及び外部出力OFFチェーンコマンド「B5H」のの上位4ビットには、時間設定を示す数値(時間設定値)として0〜7がセットされる。セキュリティコマンド「C0H」の設定データの上位4ビットには、時間設定を示す数値(時間設定値)として0〜7が任意にセット可能であり、下位4ビットのうちの最下位ビット(Bit0)には、セキュリティ情報の有無状態(1/0)がセットされる。なお、本実施形態では、時間設定値「1」当たりの実時間が例えば500ms程度と予め定められている。また、本実施形態では、コマンド情報(CMD)の最上位ビット(Bit7)は、必ずオン(1)にセットされる一方、設定データ(DATA)の最上位ビット(Bit7)は、必ずオフ(0)にセットされ、外部出力用通信LSI610Aは、1バイト単位で後述の受信処理(図76)を実行するようになっている。これにより、外部出力用通信LSI610Aは、メインCPU601から受信したコマンドをコマンド情報(CMD)と設定データ(DATA)とに振り分けながら効率よくデータ通信処理を行うことができる。
上記コマンドを受信した外部出力用通信LSI610Aは、受信したコマンドから外部出力用データを生成し、当該外部出力用データを適宜のタイミングで外部端子板制御LSI910へと送信するために、複数のワーキングエリア及び複数のソフトウェアタイマの領域をキャッシュメモリ613Aに確保する。ワーキングエリアとしては、現時点で外部出力すべき外部出力用データの出力状態をセットするための出力状態エリア、外部出力用データの出力状態を編集するための出力編集エリア、チェーンコマンドに係る外部出力用データを格納するためのチェーンエリア、外部出力ONチェーンコマンドに係る外部出力用データを格納するための外部出力ONエリア、外部出力OFFチェーンコマンドに係る外部出力用データを格納するための外部出力OFFエリア、外部出力ONコマンド(チェーン含む)の設定時間後に外部出力用データの出力状態を復帰させるための外部出力ON計測後復帰エリア、外部出力OFFコマンド(チェーン含む)の設定時間後に外部出力用データの出力状態を復帰させるための外部出力OFF計測後復帰エリア、セキュリティコマンドの設定時間後に外部出力用データの出力状態を復帰させるためのセキュリティ計測後復帰エリアがある。
図68に示すように、ソフトウェアタイマとしては、メダルインカウント用のソフトウェアタイマ(1)、メダルアウトカウント用のソフトウェアタイマ(2)、外部出力ONコマンド用のソフトウェアタイマ(3)、外部出力OFFコマンド用のソフトウェアタイマ(4)、セキュリティコマンド用のソフトウェアタイマ(5)がある。なお、キャッシュメモリ613Aには、ワーキングエリアやソフトウェアタイマの領域が確保されるほか、受信した設定データを一時的に保存するための設定データ保存領域やバッファ領域も確保される。また、ソフトウェアタイマは、カウントダウンタイマとして機能するものであり、予備としてソフトウェアタイマ(6)〜(8)も設けられている。ソフトウェアタイマの領域としては、タイマ別のアドレスごとに、停止(0)/計測(1)/予約(2)/終了(−1)といったタイマの作動状態を示す1バイトの領域と、実際にタイマカウンタの値を保持する2バイトのカウンタ領域とが設けられる。
図67に示すように、ワーキングエリアは、1Byteの領域からなり、各Bitにコマンドの状態(1/0)が割り付けられる。具体的にいうと、ワーキングエリアのBit0〜Bit3には、外部出力用データの内容として外部信号4〜外部信号1の各状態がセットされる。外部信号4〜外部信号1は、パラレル信号の各信号要素となり、外部集中端子板9Aのリレー(2)〜(5)940及び外部出力コネクタ950を通じてホールコンピュータ1000へと出力される。ワーキングエリアのBit4には、外部出力用データの内容としてセキュリティ信号の状態がセットされる。セキュリティ信号は、パラレル信号の一信号要素となり、外部集中端子板9Aのリレー(1)940及び外部出力コネクタ950を通じてホールコンピュータ1000へと出力される。ワーキングエリアのBit5には、外部出力用データの内容としてメダルアウト信号の状態がセットされる。メダルアウト信号は、パラレル信号の一信号要素となり、外部集中端子板9Aのリレー(6)940及び外部出力コネクタ950を通じてホールコンピュータ1000へと出力される。ワーキングエリアのBit6には、外部出力用データの内容としてメダルイン信号の状態がセットされる。メダルイン信号は、パラレル信号の一信号要素となり、外部集中端子板9Aのリレー(7)940及び外部出力コネクタ950を通じてホールコンピュータ1000へと出力される。ワーキングエリアのBit7は、未使用とされる。外部出力用通信LSI610Aは、上記の外部信号4〜外部信号1、セキュリティ信号、メダルアウト信号、及びメダルイン信号それぞれの状態をデータセットとした1Byteのデータを外部出力用データとしてシリアル通信方式により外部端子板制御LSI910へと送信する。
具体的には、図13に示すように、コマンドとして、例えばメダル投入枚数3を示す設定データ「03H」と共にメダルインコマンド「90H」が、メインCPU601から外部出力用通信LSI610Aに送信された場合、外部出力用通信LSI610Aは、後述のメダルイン出力変換処理(図78参照)やメダルイン出力制御処理(図85参照)等を実行することにより、そのようなコマンド(CMD:90H,DATA:03H)に対応する外部出力用データを生成し、当該外部出力用データの出力状態を適宜制御しながら外部端子板制御LSI910へと送信する。これにより、外部端子板制御LSI910は、受信した外部出力用データに基づき、例えば50msのパルス幅でパルス周期を100msとし、設定データ(メダル投入枚数)をパルス数に対応付けたメダルイン信号をリレー(7)940を通じてホールコンピュータ1000へと出力する。
図14に示すように、コマンドとして、例えばメダル払出枚数15を示す設定データ「0FH」と共にメダルアウトコマンド「A0H」が、メインCPU601から外部出力用通信LSI610Aに送信された場合、外部出力用通信LSI610Aは、後述のメダルアウト出力変換処理(図79参照)やメダルアウト出力制御処理(図86参照)等を実行することにより、そのようなコマンド(CMD:A0H,DATA:0FH)に対応する外部出力用データを生成し、当該外部出力用データの出力状態を適宜制御しながら外部端子板制御LSI910へと送信する。これにより、外部端子板制御LSI910は、受信した外部出力用データに基づき、例えば50msのパルス幅でパルス周期を100msとし、設定データ(メダル払出枚数)をパルス数に対応付けたメダルアウト信号をリレー(6)940を通じてホールコンピュータ1000へと出力する。
図15に示すように、コマンドとして、例えば外部信号2及び外部信号4を出力オンとし、かつ、外部信号1及び外部信号3を出力オフとすることを示す設定データ「05H」と共に外部出力コマンド「B0H」が、メインCPU601から外部出力用通信LSI610Aに送信された場合、外部出力用通信LSI610Aは、後述の外部出力変換処理(図80参照)や出力制御処理(図84参照)等を実行することにより、そのようなコマンド(CMD:B0H,DATA:05H)に対応する外部出力用データを生成し、当該外部出力用データの出力状態を適宜制御しながら外部端子板制御LSI910へと送信する。これにより、外部端子板制御LSI910は、受信した外部出力用データに基づき、設定データ(外部信号2及び外部信号4の出力オン、並びに外部信号1及び外部信号3の出力オフ)に対応するリレー(4)940及びリレー(2)940に通じる信号線をオン状態とすると共に、リレー(5)940及びリレー(3)940に通じる信号線をオフ状態とし、外部信号1〜4をホールコンピュータ1000へと出力する。
図16に示すように、コマンドとして、例えば外部信号1及び外部信号3を出力オンとすることを示す設定データ「0AH」と共に外部出力チェーンコマンド「B1H」が、メインCPU601から外部出力用通信LSI610Aに送信された場合、外部出力用通信LSI610Aは、後述の外部出力変換処理(図80参照)や設定出力制御処理(図87参照)等を実行することにより、そのようなコマンド(CMD:B1H,DATA:0AH)に対応する外部出力用データを生成し、当該外部出力用データの出力状態をメダルアウトコマンドに対応する外部出力用データの出力状態と適宜調整しながら外部端子板制御LSI910へと送信する。これにより、外部端子板制御LSI910は、受信した外部出力用データに基づき、メダルアウトコマンドに対応するリレー(6)940からのメダルアウト信号の出力を終了した後、設定データ(外部信号1及び外部信号3の出力オン)に対応するリレー(5)940及びリレー(3)940に通じる信号線をオン状態とし、外部信号1及び外部信号3をホールコンピュータ1000へと出力する。
図17に示すように、コマンドとして、例えば外部信号2及び外部信号4を時間設定値「2」とした上で出力オンとすることを示す設定データ「25H」と共に外部出力ONコマンド「B2H」が、メインCPU601から外部出力用通信LSI610Aに送信された場合、外部出力用通信LSI610Aは、後述の外部出力ON変換処理(図81参照)や設定出力制御処理(図87参照)等を実行することにより、そのようなコマンド(CMD:B2H,DATA:25H)に対応する外部出力用データを生成し、当該外部出力用データの出力状態を適宜制御しながら外部端子板制御LSI910へと送信する。これにより、外部端子板制御LSI910は、受信した外部出力用データに基づき、設定データ(外部信号2及び外部信号4を時間設定値「2」とした上で出力オン)に対応するリレー(4)940及びリレー(2)940に通じる信号線を1000msの間に限りオン状態とし、外部信号2及び外部信号4をホールコンピュータ1000へと出力する。なお、この場合の設定データは、外部信号1〜4に対応する下位4ビットのうちいずれかをオン(1)にセットすることでオン状態とすべき外部信号1〜4を指示しており、設定データの下位4ビットのうちオフ(0)に対応する外部信号1〜4については、そのまま出力状態が維持されることとなる。
図18に示すように、コマンドとして、例えば外部信号1及び外部信号3を時間設定値「1」とした上で出力オンとすることを示す設定データ「1AH」と共に外部出力ONチェーンコマンド「B3H」が、メインCPU601から外部出力用通信LSI610Aに送信された場合、外部出力用通信LSI610Aは、後述の外部出力ON変換処理(図81参照)や設定出力制御処理(図87参照)等を実行することにより、そのようなコマンド(CMD:B2H,DATA:25H)に対応する外部出力用データを生成し、当該外部出力用データの出力状態をメダルアウトコマンドに対応する外部出力用データの出力状態と適宜調整しながら外部端子板制御LSI910へと送信する。これにより、外部端子板制御LSI910は、受信した外部出力用データに基づき、メダルアウトコマンドに対応するリレー(6)940からのメダルアウト信号の出力を終了した後、設定データ(外部信号1及び外部信号3を時間設定値「1」とした上で出力オン)に対応するリレー(5)940及びリレー(3)940に通じる信号線を500msの間に限りオン状態とし、外部信号1及び外部信号3をホールコンピュータ1000へと出力する。なお、この場合の設定データも、外部信号1〜4に対応する下位4ビットのうちいずれかをオン(1)にセットすることでオン状態とすべき外部信号1〜4を指示しており、設定データの下位4ビットのうちオフ(0)に対応する外部信号1〜4については、そのまま出力状態が維持されることとなる。
図19に示すように、コマンドとして、例えば外部信号3及び外部信号4を時間設定値「2」とした上で出力オフとすることを示す設定データ「23H」と共に外部出力OFFコマンド「B4H」が、メインCPU601から外部出力用通信LSI610Aに送信された場合、外部出力用通信LSI610Aは、後述の外部出力OFF変換処理(図82参照)や設定出力制御処理(図87参照)等を実行することにより、そのようなコマンド(CMD:B4H,DATA:23H)に対応する外部出力用データを生成し、当該外部出力用データの出力状態を適宜制御しながら外部端子板制御LSI910へと送信する。これにより、外部端子板制御LSI910は、受信した外部出力用データに基づき、設定データ(外部信号3及び外部信号4を時間設定値「2」とした上で出力オフ)に対応するリレー(3)940及びリレー(2)940に通じる信号線を1000msの間に限りオフ状態とし、外部信号3及び外部信号4をホールコンピュータ1000へと出力する。なお、この場合の設定データは、外部信号1〜4に対応する下位4ビットのうちいずれかをオン(1)にセットすることでオフ状態とすべき外部信号1〜4を指示しており、設定データの下位4ビットのうちオフ(0)に対応する外部信号1〜4については、そのまま出力状態が維持されることとなる。
図20に示すように、コマンドとして、例えば外部信号1及び外部信号2を時間設定値「1」とした上で出力オフとすることを示す設定データ「1CH」と共に外部出力OFFチェーンコマンド「B5H」が、メインCPU601から外部出力用通信LSI610Aに送信された場合、外部出力用通信LSI610Aは、後述の外部出力OFF変換処理(図82参照)や設定出力制御処理(図87参照)等を実行することにより、そのようなコマンド(CMD:B5H,DATA:1CH)に対応する外部出力用データを生成し、当該外部出力用データの出力状態をメダルアウトコマンドに対応する外部出力用データの出力状態と適宜調整しながら外部端子板制御LSI910へと送信する。これにより、外部端子板制御LSI910は、受信した外部出力用データに基づき、メダルアウトコマンドに対応するリレー(6)940からのメダルアウト信号の送出を終了した後、設定データ(外部信号1及び外部信号2を時間設定値「1」とした上で出力オフ)に対応するリレー(5)940及びリレー(4)940に通じる信号線を500msの間に限りオフ状態とし、外部信号1及び外部信号2をホールコンピュータ1000へと出力する。なお、この場合の設定データも、外部信号1〜4に対応する下位4ビットのうちいずれかをオン(1)にセットすることでオフ状態とすべき外部信号1〜4を指示しており、設定データの下位4ビットのうちオフ(0)に対応する外部信号1〜4については、そのまま出力状態が維持されることとなる。
図21に示すように、コマンドとして、例えばセキュリティ信号S1を時間設定値「2」とした上で出力オンとすることを示す設定データ「21H」と共にセキュリティコマンド「C0H」が、メインCPU601から外部出力用通信LSI610Aに送信された場合、外部出力用通信LSI610Aは、後述のセキュリティ出力変換処理(図83参照)や出力制御処理(図84参照)等を実行することにより、そのようなコマンド(CMD:C0H,DATA:21H)に対応する外部出力用データを生成し、当該外部出力用データの出力状態を適宜制御しながら外部端子板制御LSI910へと送信する。これにより、外部端子板制御LSI910は、受信した外部出力用データに基づき、設定データ(セキュリティ信号S1を時間設定値「2」とした上で出力オン)に対応するリレー(1)940に通じる信号線を1000msの間に限りオン状態とし、そのようなセキュリティ信号S1をホールコンピュータ1000へと出力する。
図21に示すように、コマンドとして、例えばセキュリティ信号S2を単に出力オンとすることを示す設定データ「01H」と共にセキュリティコマンド「C0H」が、メインCPU601から外部出力用通信LSI610Aに送信された場合、外部出力用通信LSI610Aは、後述のセキュリティ出力変換処理(図83参照)や出力制御処理(図84参照)等を実行することにより、そのようなコマンド(CMD:C0H,DATA:01H)に対応する外部出力用データを生成し、当該外部出力用データの出力状態を適宜制御しながら外部端子板制御LSI910へと送信する。これにより、外部端子板制御LSI910は、受信した外部出力用データに基づき、設定データ(セキュリティ信号S1を単に出力オン)に対応するリレー(1)940に通じる信号線をオン状態とし、そのようなセキュリティ信号S2をホールコンピュータ1000へと出力する。
以上説明したように、メインCPU601は、遊技に係る各種の主制御処理を行う主制御処理手段を実現している。サブCPU701は、複数の周辺機器に対して各種の副制御処理を行う副制御処理手段を実現している。主基板通信LSI610は、主制御処理手段から副制御処理手段へと主制御情報(コマンド)を出力するための主制御出力手段を実現している。外部出力用通信LSI610A及び外部集中端子板9Aは、主制御処理手段から遊技機外の外部機器(ホールコンピュータ1000)へと外部出力情報(コマンド)を出力するための外部出力手段を実現している。外部出力用通信LSI610Aは、主制御処理手段から外部出力情報を入力するとともに、当該外部出力情報を暗号化してシリアル通信方式で出力する第1の通信手段を実現している。外部端子板制御LSI910は、第1の通信手段から暗号化された外部出力情報を入力するとともに、当該外部出力情報を復号化して出力する第2の通信手段を実現している。外部端子板制御LSI910のリレー940は、第2の通信手段から外部出力情報を入力するとともに、当該外部出力情報を所定の出力方式で外部機器(ホールコンピュータ1000)へと出力する出力手段を実現している。外部出力用通信LSI610AのAES回路614Aは、出力状態指示情報あるいは連続出力情報(外部出力用データ)を共通鍵暗号方式で暗号化する暗号化手段を実現している。外部出力用通信LSI610Aの第2マンチェスター回路619Aは、暗号化手段により暗号化された出力状態指示情報あるいは連続出力情報を二相位相偏移変調方式により変調する変調手段を実現している。外部端子板制御LSI910の第2マンチェスター回路919は、変調手段により変調された出力状態指示情報あるいは連続出力情報を二相位相偏移変調方式により復調する復調手段を実現している。外部端子板制御LSI910のAES回路914は、復調手段により復調された出力状態指示情報あるいは連続出力情報を共通鍵暗号方式により復号化する復号化手段を実現している。
また、主制御処理手段(メインCPU601)は、外部出力情報(コマンド)に、所定の出力時間を示す時間情報を含めて出力可能であるとともに、当該時間情報を含めずとも出力可能である。第1の通信手段(外部出力用通信LSI610A)は、主制御処理手段から入力した外部出力情報に時間情報が含まれる場合、当該時間情報に基づいて所定の出力時間を計時する計時手段(専用コントローラ611A及びソフトウェアタイマ(3)〜(5))と、主制御処理手段から入力した外部出力情報に基づいて、所定の出力方式に対応して外部出力オン状態又は外部出力オフ状態を指示する出力状態指示情報(外部出力用データ)を生成する出力状態指示情報生成手段(専用コントローラ611A及びキャッシュメモリ613Aのワーキングエリア)と、外部出力情報に時間情報が含まれる場合、計時手段により所定の出力時間を計時する間、出力状態指示情報を第2の通信手段へと出力する一方、外部出力情報に時間情報が含まれない場合、計時手段によって所定の出力時間を計時することなく、出力状態指示情報を第2の通信手段へと出力する情報出力手段(専用コントローラ611A、第2UART616A)と、を作動可能な機能として有する。第2の通信手段(外部端子板制御LSI910)は、情報出力手段から出力された出力状態指示情報を入力する情報入力手段(専用コントローラ911、第2UART916)と、情報入力手段により入力した出力状態指示情報を、所定の出力方式に従う信号に変換し、当該信号を出力手段を通じて外部機器へと出力する信号出力手段(専用コントローラ911、GPIOインターフェース924)と、を作動可能な機能として有する。
また、主制御処理手段(メインCPU601)は、外部出力情報(外部出力OFFコマンド、外部出力OFFチェーンコマンド)に、外部出力オフ状態の所定時間を示すOFF時間情報を含めて出力可能である。第1の通信手段(外部出力用通信LSI610A)は、主制御処理手段から入力した外部出力情報に含まれるOFF時間情報に基づいて所定時間を計時する計時手段(専用コントローラ611A及びソフトウェアタイマ(4))と、主制御処理手段から入力した外部出力情報に基づいて、所定の出力方式に対応して外部出力オフ状態を指示する第1の出力状態指示情報(外部出力用データ)を生成する一方、所定の出力方式に対応して第1の出力状態指示情報が生成される前の外部出力の状態維持または状態復帰を指示する第2の出力状態指示情報(外部出力用データ)を生成する出力状態指示情報生成手段(専用コントローラ611A及びキャッシュメモリ613Aのワーキングエリア)と、計時手段により所定時間の計時中、第1の出力状態指示情報を第2の通信手段へと出力する一方、計時手段による所定時間の計時が終了すると、第2の出力状態指示情報を第2の通信手段へと出力する情報出力手段(専用コントローラ611A、第2UART616A)と、を作動可能な機能として有する。第2の通信手段(外部端子板制御LSI910)は、情報出力手段から出力された第1の出力状態指示情報及び第2の出力状態指示情報を入力する情報入力手段(専用コントローラ911、第2UART916)と、情報入力手段により入力した第1の出力状態指示情報を、所定の出力方式に従う第1の信号として出力手段を通じて外部機器へと出力し、その後、情報入力手段により入力した第2の出力状態指示情報を、所定の出力方式に従う第2の信号として出力手段を通じて外部機器へと出力する信号出力手段(専用コントローラ911、GPIOインターフェース924)と、を作動可能な機能として有する。
また、主制御処理手段(メインCPU601)は、外部出力情報として、第1の外部出力情報(メダルアウトコマンド)を出力可能であるとともに、当該第1の外部出力情報に続いて外部出力すべき第2の外部出力情報(外部出力チェーンコマンド、外部出力ONチェーンコマンド、外部出力OFFチェーンコマンド)を出力可能である。第1の通信手段(外部出力用通信LSI610A)は、主制御処理手段から入力した第1の外部出力情報に基づいて、所定の出力方式に応じた第1の連続出力情報(外部出力用データ)を生成し、その後、主制御処理手段から入力した第2の外部出力情報に基づいて、所定の出力方式に応じた第2の連続出力情報(外部出力用データ)を生成する連続出力情報生成手段(専用コントローラ611A及びキャッシュメモリ613Aのワーキングエリア)と、第1の連続出力情報を第2の通信手段へと出力し、その後、第2の連続出力情報を第2の通信手段へと出力する情報出力手段(専用コントローラ611A、第2UART616A)と、を作動可能な機能として有する。第2の通信手段(外部端子板制御LSI910)は、情報出力手段から出力された第1の連続出力情報を入力し、その後、第2の連続出力情報を入力する情報入力手段(専用コントローラ911、第2UART916)と、情報入力手段により入力した第1の連続出力情報を、所定の出力方式に従う第1の信号として出力手段を通じて外部機器へと出力し、その後、情報入力手段により入力した第2の連続出力情報を、所定の出力方式に従う第2の信号として出力手段を通じて外部機器へと出力する信号出力手段(専用コントローラ911、GPIOインターフェース924)と、を作動可能な機能として有する。
また、主制御処理手段(メインCPU601)は、外部出力情報として、第1の外部出力情報(メダルアウトコマンド)を出力可能であるとともに、第1の外部出力情報に続いて所定時間経過後に外部出力すべき旨を示す遅延時間情報を含む第2の外部出力情報(外部出力OFFチェーンコマンド)を出力可能である。第1の通信手段(外部出力用通信LSI610A)は、主制御処理手段から入力した第2の外部出力情報に含まれる遅延時間情報に基づいて所定時間を計時する計時手段(専用コントローラ611A及びソフトウェアタイマ(4))と、主制御処理手段から入力した第1の外部出力情報に基づいて、所定の出力方式に応じた第1の連続出力情報(外部出力用データ)を生成し、その後、主制御処理手段から入力した第2の外部出力情報に基づいて、所定の出力方式に対応して外部出力待機状態を指示する第2の連続出力情報(外部出力用データ)を生成する一方、所定の出力方式に対応して外部出力有効状態を指示する第3の連続出力情報(外部出力用データ)を生成する連続出力情報生成手段(専用コントローラ611A及びキャッシュメモリ613Aのワーキングエリア)と、第1の連続出力情報を第2の通信手段へと出力し、その後、計時手段により所定時間の計時中、第2の連続出力情報を第2の通信手段へと出力する一方、計時手段による所定時間の計時が終了すると、第3の連続出力情報を第2の通信手段へと出力する情報出力手段(専用コントローラ611A、第2UART616A)と、を作動可能な機能として有する。第2の通信手段(外部端子板制御LSI910)は、情報出力手段から出力された第1の連続出力情報を入力し、その後、第2の連続出力情報を入力し、さらにその後、第3の連続出力情報を入力する情報入力手段(専用コントローラ911、第2UART916)と、情報入力手段により入力した第1の連続出力情報を、所定の出力方式に従う第1の信号として出力手段を通じて外部機器へと出力し、その後、情報入力手段により入力した第2の連続出力情報を、所定の出力方式に従う第2の信号として出力手段を通じて外部機器へと出力し、さらにその後、情報入力手段により入力した第3の連続出力情報を、所定の出力方式に従う第3の信号として出力手段を通じて外部機器へと出力する信号出力手段(専用コントローラ911、GPIOインターフェース924)と、を作動可能な機能として有する。
また、主制御処理手段(メインCPU601)は、外部出力情報(外部出力ONコマンド、外部出力ONチェーンコマンド、セキュリティコマンド)に、外部出力オン状態の所定時間を示すON時間情報を含めて出力可能である。第1の通信手段(外部出力用通信LSI610A)は、主制御処理手段から入力した外部出力情報に含まれるON時間情報に基づいて所定時間を計時する計時手段(専用コントローラ611A及びソフトウェアタイマ(3),(5))と、主制御処理手段から入力した外部出力情報に基づいて、所定の出力方式に対応して外部出力オン状態を指示する第1の出力状態指示情報(外部出力用データ)を生成する一方、所定の出力方式に対応して第1の出力状態指示情報が生成される前の外部出力の状態維持または状態復帰を指示する第2の出力状態指示情報(外部出力用データ)を生成する出力状態指示情報生成手段(専用コントローラ611A及びキャッシュメモリ613Aのワーキングエリア)と、計時手段により所定時間の計時中、第1の出力状態指示情報を第2の通信手段へと出力する一方、計時手段による所定時間の計時が終了すると、第2の出力状態指示情報を第2の通信手段へと出力する情報出力手段(専用コントローラ611A、第2UART616A)と、を作動可能な機能として有する。第2の通信手段(外部端子板制御LSI910)は、情報出力手段から出力された第1の出力状態指示情報及び第2の出力状態指示情報を入力する情報入力手段(専用コントローラ911、第2UART916)と、情報入力手段により入力した第1の出力状態指示情報を、所定の出力方式に従う第1の信号として出力手段を通じて外部機器へと出力し、その後、情報入力手段により入力した第2の出力状態指示情報を、所定の出力方式に従う第2の信号として出力手段を通じて外部機器へと出力する信号出力手段(専用コントローラ911、GPIOインターフェース924)と、を作動可能な機能として有する。
次に、図22〜28を参照して、メインROM602に記憶されている各種テーブル等の構成について説明する。メインROM602には、図柄配置テーブル、図柄コード、図柄組合せテーブル、ボーナス作動時テーブル、内部抽籤テーブル、内部当籤役決定テーブルが記憶されている。
[図柄配置テーブル及び図柄コード]
図22(a)に示すように、図柄配置テーブルは、各リールの回転方向における各図柄の位置と、各位置に配された図柄の種類を特定するデータ(以下、図柄コード(図22(b)参照)とを規定している。
図柄配置テーブルは、リールインデックスが検出されるときに表示窓4L,4C,4R内の中段(センターライン8上)に存在する図柄の位置を「0」として、リールの回転方向に進む順に、各図柄の位置に対して「0」〜「20」をそれぞれ割り当てている。したがって、リールインデックスが検出されてから図柄何個分の回転が行われたかを管理しつつ、図柄配置テーブルを参照することによって、主として表示窓4L,4C,4Rの中段に存在する図柄の位置及びその図柄の種類を常に管理することが可能である。
[図柄組合せテーブル]
本実施形態においては、入賞判定ラインとなるセンターライン8に沿って各リール3L,3C,3Rにより表示される図柄の組合せが、図柄組合せテーブルにより規定されている図柄の組合せと一致する場合に、メインCPU601により入賞と判定され、メダルの払い出し、再遊技の作動、ボーナスゲームの作動といった特典が遊技者に対して与えられる。
図23に示すように、図柄組合せテーブルは、特典の種類に応じて予め定められた図柄の組合せと、表示役と、払出枚数とを規定している。表示役は、入賞判定ライン(センターライン8)に沿って表示された図柄の組合せを識別するデータである。
表示役は、各ビットに対して固有の図柄の組合せが割り当てられた1バイトのデータとして表される。例えば、各リール3L,3C,3Rの図柄「ベル」が入賞判定ライン(センターライン8)に沿って表示されたとき、表示役として「ベル(00000010)」が決定される。
また、払出枚数として1以上の数値が決定された場合、メダルの払い出しが行われる。本実施形態では、表示役としてチェリー、ベル、又はスイカが決定されたときメダルの払い出しが行われる。また、払出枚数は、投入枚数に応じて規定されており、基本的に投入枚数が少ないときの方がより多くの払出枚数が決定される。
また、表示役としてリプレイが決定されたとき、再遊技の作動が行われる。表示役としてBBが決定されたとき、ボーナスの作動が行われる。なお、入賞判定ライン(センターライン8)に沿って表示された図柄の組合せが、図柄組合せテーブルにより規定されている図柄の組合せの何れとも一致しない場合には、いわゆる「ハズレ」となる。
[ボーナス作動時テーブル]
図24に示すように、ボーナス作動時テーブルは、ボーナスの作動が行われるときに、メインRAM603に設けられた各種格納領域に格納するデータを規定している。
作動中フラグは、作動が行われるボーナスの種類を識別するためのデータである。本実施形態では、ボーナスの種類としてBB(第1種特別役物に係る役物連続作動装置)及びRB(第1種特別役物)を設けている。RBの作動は、BBの作動が行われている間、連続的に行われる。
BBの作動は、規定枚数に達するメダルの払い出しが行われた場合に終了する。RBの作動は、規定回数に達する遊技が行われた場合、規定回数に達する入賞があった場合、又は、BBの作動が終了した場合の何れかによって終了する。ボーナス終了枚数カウンタ、遊技可能回数カウンタ及び入賞可能回数カウンタは、ボーナスの終了契機となる上記規定枚数或いは上記規定回数に達したか否かを管理するためのデータである。
より具体的には、ボーナス作動時テーブルにより規定されている数値が上記各カウンタに格納され、ボーナスの作動を通じてその減算が行われていく。その結果、各カウンタの値が「0」に更新されたことを条件に該当ボーナスの作動が終了する。
[内部抽籤テーブル]
図25及び図26に示すように、内部抽籤テーブルとしては、一般遊技状態用内部抽籤テーブル及びRB作動中用内部抽籤テーブルが設けられている。内部抽籤テーブルは、当籤番号に応じて、データポインタと抽籤値とを規定している。データポインタは、内部抽籤テーブルを参照して行う抽籤の結果として取得されるデータであり、後述の内部当籤役決定テーブルにより規定されている内部当籤役を指定するためのデータである。データポインタには、小役・リプレイ用データポインタ及びボーナス用データポインタが設けられている。
本実施形態では、予め定められた数値の範囲「0〜65535」から抽出される乱数値を、各当籤番号に応じた抽籤値で順次減算し、減算の結果が負となったか否か(いわゆる「桁かり」が生じたか否か)の判定を行うことによって内部的な抽籤が行われる。これにより、抽籤値として規定されている数値が大きいほど、これが割り当てられたデータ(つまり、データポインタ)が決定される確率が高い。なお、各当籤番号の当籤確率は、「各当籤番号に対応する抽籤値/抽出される可能性のある全ての乱数値の個数(65536)」によって表すことができる。
また、本実施の形態では、ボーナスの作動が行われているか否かといった状況に応じて、複数種類の内部抽籤テーブル(図25の一般遊技状態用内部抽籤テーブル及び図26のRB作動中用内部抽籤テーブル)を使い分けることにより、決定される内部当籤役の種類や当籤確率を変動させ、この結果、遊技者が抱く期待に起伏が生じるようにしている。
[内部当籤役決定テーブル]
図27及び図28に示すように、内部当籤役決定テーブルとしては、小役・リプレイ用内部当籤役決定テーブル及びボーナス用内部当籤役決定テーブルが設けられている。内部当籤役決定テーブルは、データポインタに応じて内部当籤役を規定している。データポインタが決定されると、内部当籤役が一義的に取得される構成となっている。
内部当籤役は、入賞判定ライン(センターライン8)に沿って表示を許可する各リール3L,3C,3Rの図柄の組合せを識別するデータである。内部当籤役は、表示役と同様に、各ビットに対して固有の図柄の組合せが割り当てられた1バイトのデータとして表される。なお、データポインタが「0」のとき、内部当籤役の内容は「ハズレ」となるが、これは前述の図柄組合せテーブルにより規定されている図柄の組合せの表示が何れも許可されないことを示す。
図27に示すように、小役・リプレイ用内部当籤役決定テーブルは、メダルの払い出しに係る内部当籤役又は再遊技の作動に係る内部当籤役を規定している。図28に示すように、ボーナス用内部当籤役決定テーブルは、ボーナスの作動に係る内部当籤役を規定している。
次に、図29〜31を参照して、メインRAM603に設けられている各種格納領域の構成について説明する。メインRAM603には、内部当籤役格納領域、表示役格納領域、持越役格納領域、作動中フラグ格納領域が設けられている。
[内部当籤役格納領域]
図29に示すように、内部当籤役格納領域は、前述の1バイトのデータにより表される内部当籤役を格納する。ビットに「1」が立っているとき、該当する図柄の組合せの表示が許可される。全ビットが「0」であるとき、その内容はハズレとなる。なお、メインRAM603には、前述の表示役が格納される表示役格納領域が設けられている。表示役格納領域の構成は、内部当籤役格納領域の構成と同様となっている。ビットに「1」が立っているとき、該当する図柄の組合せが入賞判定ライン(センターライン8)に沿って表示されたことになる。
[持越役格納領域]
図30に示すように、持越役格納領域は、前述の抽籤の結果、ボーナスの作動に係る内部当籤役が決定されたときにこれを格納する。持越役格納領域に格納されたボーナスの作動に係る内部当籤役(以下、持越役)は、対応する図柄の組合せが入賞判定ライン(センターライン8)に表示されるまで、その内容がクリアされずに保持される構成となっている。そして、持越役格納領域に持越役が格納されている間は、前述の抽籤の結果にかかわらず、これが内部当籤役格納領域に格納される。
[作動中フラグ格納領域]
図31に示すように、作動中フラグ格納領域は、1バイトからなる作動中フラグを格納する。作動中フラグは、各ビットに対して固有のボーナスが割り当てられている。ビットに「1」が立っているとき、該当するボーナスの作動が行われている。なお、本実施形態においては、全ビットが「0」であるときの状態を一般遊技状態と定義する。
次に、図32〜38、図69〜72を参照して、主制御回路60のメインCPU601により実行される処理について説明する。なお、図69〜72に示す処理は、特にコマンドの外部出力に関する処理であり、これらの処理については後述する。
[メインCPUの制御によるメインフローチャート]
図32は、メインCPU601の制御によるメインフローチャートを示す。図32に示すように、パチスロ1に電源が投入されると、はじめに、メインCPU601は、初期化処理を行う(S1)。
次に、メインCPU601は、メインRAM603における指定格納領域のクリアを行う(S2)。例えば、内部当籤役格納領域や表示役格納領域等、1回の遊技ごとに消去が必要となる格納領域に格納されたデータがクリアされる。
次に、メインCPU601は、図33を参照して説明するメダル受付・スタートチェック処理を行う(S3)。この処理では、メダルセンサやスタートスイッチの入力のチェック等が行われる。
次に、メインCPU601は、乱数値を抽出し、メインRAM603に設けられた乱数値格納領域に格納する(S4)。
次に、メインCPU601は、図34を参照して説明する内部抽籤処理を行う(S5)。この処理では、乱数値に基づいた抽籤により内部当籤役の決定が行われる。
次に、メインCPU601は、スタートコマンドを副制御回路70に対して送信する(S6)。スタートコマンドは、内部当籤役等を特定するパラメータを含んで構成される。スタートコマンドは、メインCPU601内の第1UART601Aから主基板通信LSI610及び副基板通信LSI710を通じてサブCPU701に供給される。
次に、メインCPU601は、全リール3L,3C,3Rの回転開始を要求する(S7)。なお、全リール3L,3C,3Rの回転開始が要求されると、一定の周期(1.1173msec)で実行される割込処理(図38参照)によってステッピングモータ50L,50C,50Rの駆動が制御され、各リール3L,3C,3Rの回転が開始される。
次に、メインCPU601は、図69を参照して後述する外部出力用メダルインコマンド登録処理を行う(S8)。この処理では、外部出力すべきメダルインコマンドに係るコマンドがセットされる。
次に、メインCPU601は、図35を参照して説明するリール停止制御処理を行う(S9)。この処理では、ストップスイッチ7LS,7CS,7RSの入力のチェックが行われ、ストップボタン17L,17C,17Rが押されたタイミングと内部当籤役とに基づいて該当リール3L,3C,3Rの回転が停止される。
次に、メインCPU601は、入賞判定ライン(センターライン8)に沿って表示された図柄の組合せを検索し、その結果に基づいて払出枚数等を決定する(S10)。検索の結果、入賞判定ライン(センターライン8)に沿って表示された図柄の組合せが図柄組合せテーブルにより規定されている図柄の組合せと一致する場合、対応する表示役及び払出枚数が決定される。
次に、メインCPU601は、表示コマンドを副制御回路70に対して送信する(S11)。表示コマンドは、表示役や払出枚数等を特定するパラメータを含んで構成される。表示コマンドは、メインCPU601内の第1UART601Aから主基板通信LSI610及び副基板通信LSI710を通じてサブCPU701に供給される。
次に、メインCPU601は、図70を参照して後述する外部出力用メダルアウトコマンド登録処理を行う(S12)。この処理では、外部出力すべきメダルアウトコマンドに係るコマンドがセットされる。
次に、メインCPU601は、メダル払出処理を行う(S13)。決定された払出枚数に基づいて、ホッパー装置34の駆動やクレジット枚数の更新が行われる。
次に、メインCPU601は、払出枚数に基づいて、ボーナス終了枚数カウンタを更新する(S14)。払出枚数として決定された数値がボーナス終了枚数カウンタから減算される。
次に、メインCPU601は、ボーナス作動中フラグがオンであるか否かを判別する(S15)。メインCPU601は、ボーナス作動中フラグがオンであると判別したときには、図37を参照して説明するボーナス終了チェック処理を行う(S16)。ボーナス終了チェック処理では、ボーナスの終了契機を管理するための各種カウンタを参照して、ボーナスの作動を終了するか否かがチェックされる。
メインCPU601は、S16の後、又は、S15においてボーナス作動中フラグがオンではないと判別したときには、図36を参照して説明するボーナス作動チェック処理を行う(S17)。ボーナス作動チェック処理では、ボーナスの作動を開始するか否かがチェックされる。この処理が終了すると、メインCPU601は、S2に移る。
[メダル受付・スタートチェック処理]
図33は、メインCPU601によるメダル受付・スタートチェック処理を示す。図33に示すように、メインCPU601は、自動投入カウンタは0であるか否かを判別する(S31)。メインCPU601は、自動投入カウンタは0であると判別したときには、メダル通過許可を行う(S32)。これにより、セレクタ51のソレノイドの駆動が行われ、セレクタ内のメダルの通過が促される。
メインCPU601は、自動投入カウンタは0ではないと判別したときには、自動投入カウンタを投入枚数カウンタに複写する(S33)。次に、メインCPU601は、自動投入カウンタをクリアする(S34)。S33及びS34は、再遊技を行うための処理である。
メインCPU601は、S32又はS34の後で、投入枚数カウンタの最大値として3をセットする(S35)。次に、メインCPU601は、ボーナス作動中フラグがオンであるか否かを判別する(S36)。メインCPU601は、ボーナス作動中フラグがオンであると判別したときには、投入枚数カウンタの最大値を変更する(S37)。例えば、最大値が2に変更される。
メインCPU601は、S37の後、又は、S36においてボーナス作動中フラグがオンではないと判別したときには、メダルの通過は検出されたか否かを判別する(S38)。メインCPU601は、メダルの通過は検出されたと判別したときには、投入枚数カウンタは最大値に達したか否かを判別する(S39)。メインCPU601は、投入枚数カウンタは最大値に達していないと判別したときには、投入枚数カウンタを1加算する(S40)。
次に、メインCPU601は、有効ラインカウンタに5を格納する(S41)。次に、メインCPU601は、メダル投入コマンドを副制御回路70に対して送信する(S42)。メダル投入コマンドは、投入枚数等を特定するためのパラメータを含んで構成されている。メダル投入コマンドは、メインCPU601内の第1UART601Aから主基板通信LSI610及び副基板通信LSI710を通じてサブCPU701に供給される。
メインCPU601は、S39において投入枚数カウンタは最大値であると判別したときには、クレジットカウンタを1加算する(S43)。メインCPU601は、S43の後、S42の後、又は、S38においてメダルの通過が検出されていないと判別したときには、ベットスイッチ13Sのチェックを行う(S44)。これにより、ベットボタン12に対応する数値が投入枚数カウンタに加算される一方でクレジットカウンタから減算される。
次に、メインCPU601は、投入枚数カウンタは最大値に達したか否かを判別する(S45)。メインCPU601は、投入枚数カウンタは最大値に達していないと判別したときには、S38に移る一方で、投入枚数カウンタは最大値に達したと判別したときには、スタートスイッチ6Sはオンであるか否かを判別する(S46)。
メインCPU601は、スタートスイッチ6Sはオンではないと判別したときには、S38に移る一方で、スタートスイッチ6Sはオンであると判別したときには、メダル通過禁止を行う(S47)。セレクタ51のソレノイドの駆動が行われず、メダルの排出が促される。この処理が終了すると、メインCPU601は、メダル受付・スタートチェック処理を終了する。
[内部抽籤処理]
図34は、メインCPU601による内部抽籤処理を示す。図34に示すように、メインCPU601は、内部抽籤テーブル及び抽籤回数を決定する(S61)。これにより、作動中フラグ格納領域が参照され、ボーナスの作動の有無等に応じて、内部抽籤テーブル及び抽籤回数が決定される。なお、抽籤回数は、内部抽籤テーブルにより規定された各当籤番号について、抽籤値の減算及び桁かりが生じたか否かの判定を行う回数を示す。
次に、メインCPU601は、乱数値格納領域に格納されている乱数値を取得し、判定用乱数値としてセットする(S62)。次に、メインCPU601は、当籤番号の初期値として1をセットする(S63)。
次に、メインCPU601は、内部抽籤テーブルを参照し、当籤番号に対応する抽籤値を取得する(S64)。次に、メインCPU601は、判定用乱数値から抽籤値を減算する(S65)。次に、メインCPU601は、桁かりが行われたか否かを判別する(S66)。メインCPU601は、桁かりが行われていないと判別したときには、抽籤回数を1減算し、当籤番号を1加算する(S67)。
次に、メインCPU601は、抽籤回数は0であるか否かを判別する(S68)。メインCPU601は、抽籤回数は0ではないと判別したときには、S64に移る一方で、抽籤回数は0であると判別したときには、小役・リプレイ用データポインタとして0をセットし、ボーナス用データポインタとして0をセットする(S69)。
メインCPU601は、S66において桁かりが行われたと判別したときには、現在の当籤番号に応じて、小役・リプレイ用データポインタ及びボーナス用データポインタを取得する(S70)。メインCPU601は、S70又はS69の後で、小役・リプレイ用内部当籤役決定テーブルを参照し、小役・リプレイ用データポインタに基づいて内部当籤役を取得する(S71)。
次に、メインCPU601は、取得した内部当籤役を内部当籤役格納領域に格納する(S72)。次に、メインCPU601は、持越役格納領域に格納されているデータは0であるか否かを判別する(S73)。メインCPU601は、持越役格納領域に格納されているデータは0であると判別したときは、ボーナス用内部当籤役決定テーブルを参照し、ボーナス用データポインタに基づいて内部当籤役を取得する(S74)。次に、メインCPU601は、取得した内部当籤役を持越役格納領域に格納する(S75)。
メインCPU601は、S75の後、又は、S73において持越役格納領域に格納されているデータは0ではないと判別したときには、持越役格納領域と内部当籤役格納領域との論理和をとり、その結果を内部当籤役格納領域に格納する(S76)。これにより、ボーナスの作動に係る内部当籤役の持ち越しが行われる。この処理が終了すると、メインCPU601は、内部抽籤処理を終了する。
[リール停止制御処理]
図35は、メインCPU601によるリール停止制御処理を示す。図35に示すように、メインCPU601は、有効なストップボタン17L,17C,17Rが押されたか否かを判別する(S101)。メインCPU601は、有効なストップボタン17L,17C,17Rが押されていないと判別したときには、これが押されるまで待機する。
メインCPU601は、有効なストップボタン17L,17C,17Rが押されたと判別したときには、該当するストップボタン17L,17C,17Rの操作を無効化する(S102)。各ストップボタン17L,17C,17Rの有効及び無効の状態は、メインRAM603に設けられた所定の格納領域において管理される。
次に、メインCPU601は、チェック回数として5をセットする(S103)。本実施形態では、滑りコマ数の最大数を「4」としていることから、ストップボタン17L,17C,17Rが押されたときに該当表示窓4L,4C,4Rの中段にある図柄の位置を含め、そこから4コマ先の図柄の位置までがチェックの対象となる。つまり、「0」、「1」、「2」、「3」及び「4」の5つの数値の何れかが滑りコマ数として決定される。
次に、メインCPU601は、内部当籤役に基づいて、ストップボタン17L,17C,17Rが押されたときに対応する表示窓4L,4C,4Rの中段にある図柄の位置(以下、停止開始位置)を含めたチェック回数の範囲内にある各図柄の位置の中で、最も優先順位の高い図柄の位置を検索する(S104)。この処理では、内部当籤役によって表示が許可されている図柄の組合せを、入賞判定ライン(センターライン8)に沿って表示することが可能となる図柄の位置が、最も優先順位の高い図柄の位置として決定される。
次に、メインCPU601は、検索の結果に基づいて滑りコマ数を決定する(S105)。停止開始位置から上記最も優先順位の高い図柄の位置までの図柄の個数が滑りコマ数として決定される。次に、メインCPU601は、停止予定位置待ちへ移行する(S106)。停止予定位置待ちへ移行すると、後述の割込処理によってステッピングモータ50L,50C,50Rの駆動が制御され、最も優先順位の高い図柄の位置が対応する表示窓4L,4C,4Rの中段に到達するのを待って該当リール3L,3C,3Rの回転が停止される。
次に、メインCPU601は、リール停止コマンドを副制御回路70に対して送信する(S107)。リール停止コマンドは、停止したリールの種別等を特定するパラメータを含んで構成されている。リール停止コマンドは、メインCPU601内の第1UART601Aから主基板通信LSI610及び副基板通信LSI710を通じてサブCPU701に供給される。
次に、メインCPU601は、操作が有効なストップボタン17L,17C,17Rがあるか否かを判別する(S108)。つまり、まだ回転中のリール3L,3C,3Rがあるか否かが判別される。メインCPU601は、操作が有効なストップボタン17L,17C,17Rがあると判別したときには、S101に移る一方で、操作が有効なストップボタン17L,17C,17Rがないと判別したときには、リール停止制御処理を終了する。
[ボーナス作動チェック処理]
図36は、メインCPU601によるボーナス作動チェック処理を示す。図36に示すように、メインCPU601は、表示役はBBであるか否かを判別する(S121)。メインCPU601は、表示役はBBであると判別したときには、ボーナス作動時テーブルを参照し、BB作動時処理を行う(S122)。この処理では、BB作動中フラグがオンにされ、ボーナス終了枚数カウンタに所定値がセットされる。
次に、メインCPU601は、持越役格納領域をクリアする(S123)。次に、メインCPU601は、ボーナス開始コマンドを副制御回路に対して送信する(S124)。ボーナス開始コマンドは、メインCPU601内の第1UART601Aから主基板通信LSI610及び副基板通信LSI710を通じてサブCPU701に供給される。この処理が終了すると、メインCPU601は、ボーナス作動チェック処理を終了する。
メインCPU601は、S121において表示役はBBではないと判別したときには、表示役はリプレイであるか否かを判別する(S125)。メインCPU601は、表示役はリプレイであると判別したときには、投入枚数カウンタの値を自動投入カウンタに複写する(S126)。
メインCPU601は、S125において表示役はリプレイではないと判別したときには、BB作動中フラグはオンであるか否かを判別する(S127)。メインCPU601は、BB作動中フラグはオンではないと判別したときには、ボーナス作動チェック処理を終了する一方で、BB作動中フラグはオンであると判別したときには、RB作動中フラグはオンであるか否かを判別する(S128)。
メインCPU601は、RB作動中フラグはオンであると判別したときには、ボーナス作動チェック処理を終了する一方で、RB作動中フラグはオンではないと判別したときには、ボーナス作動時テーブルを参照し、RB作動時処理を行う(S129)。この処理では、RB作動中フラグがオンにされ、入賞可能回数カウンタ及び遊技可能回数カウンタに所定値がセットされる。この処理が終了すると、メインCPU601は、ボーナス作動チェック処理を終了する。
[ボーナス終了チェック処理]
図37は、メインCPU601によるボーナス終了チェック処理を示す。図37に示すように、メインCPU601は、ボーナス終了枚数カウンタは0であるか否かを判別する(S141)。メインCPU601は、ボーナス終了枚数カウンタは0であると判別したときには、BB終了時処理を行う(S142)。この処理では、BB作動中フラグ及びRB作動中フラグがオフされ、ボーナスの終了契機を管理するための各種カウンタがクリアされる。次に、メインCPU601は、ボーナス終了コマンドを副制御回路70に対して送信する(S143)。ボーナス終了コマンドは、メインCPU601内の第1UART601Aから主基板通信LSI610及び副基板通信LSI710を通じてサブCPU701に供給される。この処理が終了すると、メインCPU601は、ボーナス終了チェック処理を終了する。
メインCPU601は、S141においてボーナス終了枚数カウンタは0ではないと判別したときには、入賞可能回数カウンタ又は遊技可能回数カウンタを更新する(S144)。これにより、遊技可能回数カウンタが1減算され、また、入賞が有った場合に入賞可能回数カウンタが1減算される。次に、メインCPU601は、入賞可能回数カウンタ又は遊技可能回数カウンタは0であるか否かを判別する(S145)。
メインCPU601は、入賞可能回数カウンタ又は遊技可能回数カウンタは0ではないと判別したときには、ボーナス終了チェック処理を終了する一方で、入賞可能回数カウンタ又は遊技可能回数カウンタは0であると判別したときには、RB終了時処理を行う(S146)。この処理では、RB作動中フラグがオフされ、入賞可能回数カウンタ及び遊技可能回数カウンタがクリアされる。この処理が終了すると、メインCPU601は、ボーナス終了チェック処理を終了する。
[メインCPUの制御による割込処理(1.1172msec)]
図38は、メインCPU601による割込処理を示す。このメインCPU601による割込処理は、所定の周期(本実施形態では、1.1173ミリ秒)毎に実行される処理である。図38に示すように、メインCPU601は、この割込処理を呼び出す前に実行されているプログラムを中断し、その中断した位置を示すアドレス、各種レジスタの値をメインRAM603の所定の領域に退避させる(S161)。これは、当該メインCPU601の制御による割込処理が終了した場合に、退避されたプログラムの中断した位置を示すアドレス、各種レジスタの値を復帰させ、中断した時点からプログラムを継続して実行するためである。
次に、メインCPU601は、入力ポートチェック処理を行う(S162)。具体的に、メインCPU601は、最大BETスイッチ13S等の各スイッチからの信号をチェックする。
次に、メインCPU601は、リール制御処理を行う(S163)。具体的に、メインCPU601は、メインフローチャート(図32参照)においてリールの回転開始要求があった場合には、リール3L,3C,3Rの回転を開始させ、一定速度で回転させるための制御を行う。また、メインCPU601は、リール停止制御処理(図35参照)において滑りコマ数が決定されたことにより停止予定位置が定まっている場合には、該当するリールの図柄カウンタの値が停止予定位置を示す値と同一の値となったときに当該リールを停止させるための制御を行う。例えば、メインCPU601は、停止予定位置を示す値が「4」である場合には、図柄カウンタの値が「4」になったときに、該当するリールを停止させるための制御を行う。
次に、メインCPU601は、ランプ・7セグ駆動処理を行う(S164)。次に、メインCPU601は、外部出力用カウンタの値を4で除算し、その除算結果として余りがないか否かを判別する(S165)。この外部出力用カウンタは、割込処理を4回行う(4.4692ミリ秒経過)ごとに、後述のコマンド外部出力処理を実行するためのものであり、メインRAM603の所定の領域に例えば1バイトカウンタとしてセットされる。
メインCPU601は、S165において外部出力用カウンタの値を4で除算した結果として余りがないと判別したときには、図71を参照して後述するコマンド外部出力処理を行う(S166)。この処理では、外部出力すべきコマンドが外部出力用通信LSI610Aへと出力される。その後、メインCPU601は、S167に移る。一方、メインCPU601は、S165において外部出力用カウンタの値を4で除算した結果として余りが生じると判別したときには、コマンド外部出力処理を行うことなくS167に移る。
次に、メインCPU601は、外部出力用カウンタの値を1加算して更新する(S167)。その後、メインCPU601は、S161の処理においてメインRAM603に退避した値を参照してレジスタの復帰を行う(S168)。この処理が終了すると、メインCPU601は、この割込処理を終了させ、当該割込処理の発生により中断したプログラムを継続して実行する。
次に、図39〜43に示すフローチャートを参照して、副制御回路70の遊技に関する動作について説明する。
[受信割込み処理]
図39は、サブCPU701による受信割込み処理を示す。図39に示すように、サブCPU701は、主制御回路60(メインCPU601)から主基板通信LSI610及び副基板通信LSI710を経由して供給された受信データを取得する(S181)。このとき、受信データは、サブCPU701内のUART701Aを通じてシリアルデータとして受信される。
次に、サブCPU701は、受信データは「STX」であるか否かを判別する(S182)。サブCPU701は、受信データは「STX」であると判別したときは、受信データバッファ及び受信カウンタをクリアするとともに、受信エラーフラグをオフにセットし(S183)、後述のS196に移る。受信データバッファ、受信カウンタ、受信エラーフラグは、サブRAM703の所定領域に確保される。受信データバッファは、受信データを一時記憶するために用いられる。受信カウンタは、例えば受信データをバイトナンバーで示されるブロック単位で1Byteずつ計数するために用いられる。受信エラーフラグは、データ受信時のエラーの有無を識別するために用いられる。
S182において、受信データは「STX」でないと判別すると、サブCPU701は、受信データは「DLE」であるか否かを判別する(S184)。サブCPU701は、受信データは「DLE」であると判別したときは、エスケープ処理フラグをオンにセットし(S185)、後述のS196に移る。エスケープ処理フラグは、サブRAM703の所定領域に確保される。エスケープ処理フラグは、エスケープ処理を実行する必要があるか無いかを識別するために用いられる。
S184において、受信データは「DLE」でないと判別すると、サブCPU701は、エスケープ処理フラグはオンであるか否かを判別する(S186)。サブCPU701は、エスケープ処理フラグはオンであると判別した場合は、受信データについてエスケープ処理を実行し(S187)、その後、エスケープ処理フラグをオフにセットする(S188)。
サブCPU701は、S188の後、又は、S186においてエスケープ処理フラグはオンでないと判別した場合は、受信データ及び受信ステータスをサブRAM703の所定領域に保存する(S189)。次に、サブCPU701は、受信カウンタを1加算して更新する(S190)。
次に、サブCPU701は、タイムアウトタイマをセットする(S191)。タイムアウトタイマは、データ受信時の通信エラーの有無を受信待ち時間によって判別するためのものである。本実施形態において、サブCPU701のタイムアウトタイマは、後述する主基板通信LSI610や副基板通信LSI710のタイムアウトタイマにより計時される受信待ち時間よりも長い例えば8Byte分程度のデータを受信するための待ち時間が計時されるように構成されている。
次に、サブCPU701は、受信カウンタは16Byteを計数したか否かを判別する(S192)。サブCPU701は、受信カウンタは16Byteを計数したと判別した場合は、タイムアウトタイマをクリアし(S193)、その後、S194に移る。サブCPU701は、受信カウンタは16Byteを計数していないと判別した場合は、後述のS196に移る。
次に、サブCPU701は、受信データの中からコマンド部に相当するデータと受信ステータスデータとを抽出し、これらのデータを受信データ登録キューに登録する(S194)。受信データ登録キューは、サブRAM703の所定領域に確保される。
次に、サブCPU701は、図41を参照して説明する通信LSI受信データ解析処理を行う(S195)。この通信LSI受信データ解析処理によれば、メインCPU601と主基板通信LSI610との間における通信エラー、主基板通信LSI610と副基板通信LSI710との間における通信エラー、副基板通信LSI710とサブCPU701との間における通信エラー等といった通信経路上における各種の通信エラーが特定される。この通信LSI受信データ解析処理については後述する。
次に、サブCPU701は、副基板通信LSI710から供給された受信データに物理層エラーはあるか否かを判別する(S196)。この物理層エラーの有無を判別する処理は、主としてサブCPU701に内蔵されたUART701Aにより行われる。この際に検出され得る物理層エラーは、受信データ内の受信ステータス(バイトナンバーD11,D12に示される主基板通信LSI610及び副基板通信LSI710に係る受信ステータス)ではなく、サブCPU701がデータを受信した際にUART701Aにより検出されるオーバーランエラー、フレーミングエラー、パリティエラー等である。
S196において、受信データに物理層エラーはあると判別すると、サブCPU701は、受信エラーフラグをオンにセットする(S197)。その後、サブCPU701は、受信割込み処理を終了する。受信データに物理層エラーはないと判別すると、サブCPU701は、受信割込み処理を終了する。
[主基板通信処理]
図40は、サブCPU701による主基板通信処理を示す。図40に示すように、サブCPU701は、タイムアウトは発生したか否かを判別する(S201)。タイムアウトは、タイムアウトタイマにより計時される待ち時間を経過しても16Byte分のデータが受信されない場合に発生する。
S201において、タイムアウトは発生したと判別すると、サブCPU701は、‘COM3 ERR2’を該当するエラー情報としてサブRAM703のエラー情報履歴格納領域703dに登録する(S202)。一方、タイムアウトは発生しなかったと判別すると、サブCPU701は、後述のS204に移る。次に、サブCPU701は、受信データバッファ及び受信カウンタをクリアし(S203)、S201に移る。
次に、サブCPU701は、受信データ登録キューから受信データ(コマンドと受信ステータス)を取得する(S204)。そして、サブCPU701は、受信データ登録キューに受信データはあるか否かを判別する(S205)。
S205において、受信データ登録キューに受信データはあると判別した場合、サブCPU701は、次のS206に移る。一方、受信データ登録キューに受信データはないと判別した場合、サブCPU701は、S201に移る。
次に、サブCPU701は、取得した受信ステータスの内容に基づき、受信データにはエラーがないか否かを判別する(S206)。受信データにはエラーがないと判別した場合、サブCPU701は、コマンドの範囲についてチェックを行う(S207)。すなわち、サブCPU701は、コマンドの種別を確認する。一方、受信データにはエラーがあると判別した場合、サブCPU701は、S201に移る。
次に、サブCPU701は、コマンドは所定の範囲内(所定のコマンド種別)にあるか否かを判別する(S208)。コマンドは所定の範囲内にあると判別した場合、サブCPU701は、受信データについてBCCチェック処理を行う(S209)。このBCCチェック処理は、パケットデータP0〜P6のチェックサムとして再算出したBCCとパケットデータP7に収められたBCCとが一致するか否かに基づいて行われる。一方、コマンドは所定の範囲内にないと判別した場合、サブCPU701は、S201に移る。
次に、サブCPU701は、BCCチェック処理の結果としてBCCは正常か否かを判別する(S210)。BCCは正常と判別した場合、サブCPU701は、コマンドからコマンドの種別を抽出する(S211)。コマンドの種別としては、例えば、スタートコマンド、表示コマンド、メダル投入コマンド、リール停止コマンド、ボーナス開始コマンド、ボーナス終了コマンド等のほか、無操作状態を示す無操作コマンド等がある。一方、BCCは正常でないと判別した場合、サブCPU701は、S201に移る。
次に、サブCPU701は、コマンド種別が無操作コマンドか否かを判別する(S212)。無操作コマンドではないその他のコマンドと判別した場合、サブCPU701は、今回のコマンドとして前回と異なるコマンドを受信したか否かを判別する(S213)。一方、無操作コマンドであると判別した場合、サブCPU701は、S201に移る。
S213において、今回のコマンドとして前回と異なるコマンドを受信したと判別した場合、サブCPU701は、今回受信したコマンドをメッセージキューに登録し(S214)、S201に移る。一方、今回のコマンドとして前回と同じコマンドを受信したと判別した場合、サブCPU701は、そのままS201に移る。
[通信LSI受信データ解析処理]
図41は、サブCPU701による通信LSI受信データ解析処理を示す。図41に示すように、サブCPU701は、受信データのうちのバイトナンバーD0〜D13のデータについて巡回冗長検査によりCRCを算出する(S221)。
次に、サブCPU701は、算出したCRCは異常か否かを判別する(S222)。CRCは異常と判別した場合、サブCPU701は、‘COM3 ERR1’を該当するエラー情報としてサブRAM703のエラー情報履歴格納領域703dに登録するとともに、受信エラーフラグをオンにセットする(S223)。一方、CRCは正常と判別した場合、サブCPU701は、次のS224に移る。
次に、サブCPU701は、受信データの中から主基板通信LSI受信ステータスを取得する(S224)。そして、サブCPU701は、主基板通信LSI受信ステータスに物理層エラーはあるか否かを判別する(S225)。
S225において、主基板通信LSI受信ステータスに物理層エラーはあると判別した場合、サブCPU701は、‘COM1 ERR1’を該当するエラー情報としてサブRAM703のエラー情報履歴格納領域703dに登録するとともに、受信エラーフラグをオンにセットする(S226)。一方、物理層エラーはないと判別した場合、サブCPU701は、次のS227に移る。
次に、サブCPU701は、受信データの中から副基板通信LSI受信ステータスを取得する(S227)。そして、サブCPU701は、副基板通信LSI受信ステータスに物理層エラーはあるか否かを判別する(S228)。
S228において、副基板通信LSI受信ステータスに物理層エラーはあると判別した場合、サブCPU701は、‘COM2 ERR1’を該当するエラー情報としてサブRAM703のエラー情報履歴格納領域703dに登録するとともに、受信エラーフラグをオンにセットする(S229)。一方、物理層エラーはないと判別した場合、サブCPU701は、次のS230に移る。
次に、サブCPU701は、受信データの中から副基板通信LSIパケット種別を取得する(S230)。そして、サブCPU701は、取得した副基板通信LSIパケット種別から論理エラー種類として主基板通信LSIサイズ不足はあるか否かを判別する(S231)。
S231において、副基板通信LSIパケット種別に論理エラー種類として主基板通信LSIサイズ不足はあると判別した場合、サブCPU701は、‘COM1 ERR2’を該当するエラー情報としてサブRAM703のエラー情報履歴格納領域703dに登録するとともに、受信エラーフラグをオンにセットする(S232)。一方、主基板通信LSIサイズ不足はないと判別した場合、サブCPU701は、次のS233に移る。
次に、サブCPU701は、取得した副基板通信LSIパケット種別から論理エラー種類として副基板通信LSIサイズ不足はあるか否かを判別する(S233)。
S233において、副基板通信LSIパケット種別に論理エラー種類として副基板通信LSIサイズ不足はあると判別した場合、サブCPU701は、‘COM2 ERR2’を該当するエラー情報としてサブRAM703のエラー情報履歴格納領域703dに登録するとともに、受信エラーフラグをオンにセットする(S234)。一方、副基板通信LSIサイズ不足はないと判別した場合、サブCPU701は、次のS235に移る。
次に、サブCPU701は、取得した副基板通信LSIパケット種別から論理エラー種類として副基板通信LSIのCRCエラーはあるか否かを判別する(S235)。
S235において、副基板通信LSIパケット種別に論理エラー種類として副基板通信LSIのCRCエラーはあると判別した場合、サブCPU701は、‘COM2 ERR3’を該当するエラー情報としてサブRAM703のエラー情報履歴格納領域703dに登録するとともに、受信エラーフラグをオンにセットする(S236)。その後、サブCPU701は、通信LSI受信データ解析処理を終了する。一方、副基板通信LSIのCRCエラーはないと判別した場合、サブCPU701は、通信LSI受信データ解析処理を終了する。
[サブCPUにより行われる演出登録タスク]
図42は、サブCPU701により行われる演出登録タスクを示す。図42に示すように、サブCPU701は、メッセージキューからメッセージを取り出す(S241)。次に、サブCPU701は、メッセージは有るか否かを判別する(S242)。サブCPU701は、メッセージは有ると判別したときには、メッセージから遊技情報を複写する(S243)。例えば、パラメータによって特定される、内部当籤役、回転が停止したリールの種別、表示役、作動中フラグ等といった各種データがサブRAM703に設けられた所定の格納領域に複写される。
次に、サブCPU701は、図43を参照して説明する演出内容決定処理を行う(S244)。この処理では、受信したコマンドの種別に応じて、演出内容の決定や演出データの登録等が行われる。
サブCPU701は、S244の後、又は、S242においてメッセージは無かったと判別したときには、アニメーションデータの登録を行う(S245)。次に、サブCPU701は、サウンドデータの登録を行う(S246)。次に、サブCPU701は、ランプデータの登録を行う(S247)。アニメーションデータの登録、サウンドデータの登録及びランプデータの登録は、演出内容決定処理において登録された演出データに基づいて行われる。この処理が終了すると、S241に移る。
[演出内容決定処理]
図43は、サブCPU701による演出内容決定処理を示す。図43に示すように、サブCPU701は、スタートコマンド受信時であるか否かを判別する(S261)。サブCPU701は、スタートコマンド受信時であると判別したときには、演出用乱数値を抽出し、内部当籤役等に基づいて演出番号を抽籤により決定し、登録する(S262)。演出番号は、今回において実行する演出内容を指定するデータである。
次に、サブCPU701は、登録されている演出番号に基づいて、スタート時の演出データを登録する(S263)。演出データは、アニメーションデータ、サウンドデータ、及びランプデータを指定するデータである。演出データが登録されると、対応するアニメーションデータ等が決定され、映像の表示等の演出が実行される。この処理が終了すると、サブCPU701は、演出内容決定処理を終了する。
次に、サブCPU701は、スタートコマンド受信時ではないと判別したときには、リール停止コマンド受信時であるか否かを判別する(S264)。サブCPU701は、リール停止コマンド受信時であると判別したときには、登録されている演出番号とストップボタンの種別に基づいて、停止時の演出データを登録する(S265)。この処理が終了すると、サブCPU701は、演出内容決定処理を終了する。
次に、サブCPU701は、リール停止コマンド受信時ではないと判別したときには、表示コマンド受信時であるか否かを判別する(S266)。サブCPU701は、表示コマンド受信時であると判別したときには、登録されている演出番号に基づいて、表示時の演出データを登録する(S267)。この処理が終了すると、サブCPU701は、演出内容決定処理を終了する。
次に、サブCPU701は、表示コマンド受信時ではないと判別したときには、ボーナス開始コマンド受信時であるか否かを判別する(S268)。サブCPU701は、ボーナス開始コマンド受信時であると判別したときには、ボーナス開始用の演出データを登録する(S269)。この処理が終了すると、サブCPU701は、演出内容決定処理を終了する。
次に、サブCPU701は、ボーナス開始コマンド受信時ではないと判別したときには、ボーナス終了コマンド受信時であるか否かを判別する(S270)。サブCPU701は、ボーナス終了コマンド受信時ではないと判別したときには、演出内容決定処理を終了する。一方、ボーナス終了コマンド受信時であると判別した場合、サブCPU701は、ボーナス終了用の演出データを登録する(S271)。この処理が終了すると、サブCPU701は、演出内容決定処理を終了する。
上述したように、サブCPU701による受信割込み処理、主基板通信処理、及び通信LSI受信データ解析処理によれば、各種の通信に係るエラー情報がサブRAM703のエラー情報履歴格納領域703dに登録される。
次に、係員がエラー情報履歴を利用する際におけるパチスロ1について説明する。パチスロ1のサブCPU701は、図45に示すエラー情報履歴を液晶表示装置10に表示させるために、係員による通常操作と簡易操作との2種類の操作法を採用している。通常操作を実行する場合は、係員がドアキー110を右回転させてフロントドア2bのロック機構を解放し、設定キーをオン操作して設定用鍵型スイッチをオンにすることで、液晶表示領域10Aに図44に示すメニュー画面が表示される。そして、係員が操作キーを操作して、「エラー情報履歴」項目100aを選択することで、液晶表示領域10Aに図45に示すエラー情報履歴画面が表示される。一方、簡易操作を実行する場合は、係員は、エラー発生時や非遊技時にドアキー110を左回転させてエラーのリセットを行い、その状態を一定時間、例えば5秒間以上保持する。これにより、液晶表示領域10Aには、図45に示すエラー情報履歴画面が表示される。
サブCPU701は、係員が選択ボタン11Aと決定ボタン11Bを用いて、「エラー情報履歴」項目100aを選択する操作を検出すると、図45に示すように、液晶表示領域10Aにエラー情報履歴を表示する。エラー情報履歴には、例えば図中にハッチングで示すように、通信に係るCOMエラーとして、前述した「COM1 ERR1(COM1エラー1)」、「COM3 ERR2(COM3エラー2)」、「COM2 ERR1(COM2エラー1)」、「COM2 ERR3(COM2エラー3)」等が含まれる場合がある。
なお、サブCPU701は、係員が選択ボタン11Aと決定ボタン11Bを用いて、例えば「COM2 ERR3(COM2エラー3)」項目100bを選択する操作を検出すると、当該エラー情報履歴に基づいて送信情報を生成し、当該送信情報がホールコンピュータ1000等に送信されるように構成することも可能である。
次に、図56〜65に示すフローチャートを参照して、主基板通信LSI610及び副基板通信LSI710の通信に係る動作について説明する。
[メイン制御シーケンス(主基板通信LSI)]
図56は、主基板通信LSIによるメイン制御シーケンスを示す。図56に示すように、主基板通信LSI610の専用コントローラ611は、図58を参照して説明する初期設定処理を行う(S401)。この初期設定処理によれば、予め定められた通信仕様に基づいて通信に係る各種の設定情報がセットされる。初期設定処理については後述する。
次に、専用コントローラ611は、図59を参照して説明する受信処理を行う(S402)。この受信処理によれば、メインCPU601から供給されるコマンド等のデータが通信仕様に基づいて受信される。この受信処理については後述する。
次に、専用コントローラ611は、送信要求はあるか否かを判別する(S403)。このような送信要求の有無は、後述の送信要求フラグに基づいて判別される。送信要求はあると判別した場合、専用コントローラ611は、図60を参照して説明する送信処理を行う(S404)。その後、専用コントローラ611は、S402に移る。一方、送信要求はないと判別した場合、専用コントローラ611は、送信処理を行うことなくS402に移る。送信処理については後述する。
[受信割込み処理(主基板通信LSI)]
図57は、主基板通信LSIによる受信割込み処理を示す。図57に示すように、主基板通信LSI610の専用コントローラ611は、メインCPU601から第1UART601A及び第1UART615を経由して供給された受信データを取得する(S421)。
次に、専用コントローラ611は、メインCPU601から供給された受信データに物理層エラーはあるか否かを判別する(S422)。この物理層エラーの有無を判別する処理は、主として主基板通信LSI610に内蔵された第1UART615により行われる。この際に検出され得る物理層エラーは、第1UART615により検出されるオーバーランエラー、フレーミングエラー、パリティエラー等である。
S422において、受信データに物理層エラーはあると判別すると、専用コントローラ611は、検出した物理層エラーを主基板通信LSI受信ステータスにセットし(S423)、その後S424に移る。主基板通信LSI受信ステータスは、図49に示すように、主基板通信LSI610から副基板通信LSI710へと送信されるシリアルデータのバイトナンバーD11のブロックにセットされる。一方、受信データに物理層エラーはないと判別すると、専用コントローラ611は、後のS425に移る。
次に、専用コントローラ611は、エラーカウントを1加算して更新する(S424)。このようなエラーカウントは、主基板通信LSI受信ステータスのうちのビットナンバーB0〜B3にセットされ、エラーカウントにより受信エラー発生総数が示される(図51参照)。
次に、専用コントローラ611は、メインCPU601からの受信データを送信バッファ(キャッシュメモリ613)に順次保存し(S425)、その後、受信カウンタを1加算して更新する(S426)。受信カウンタは、メインCPU601から8Byte固定長のデータサイズで送られてくるデータを計数するために用いられる。
次に、専用コントローラ611は、タイムアウトタイマをセットし(S427)、この受信割込み処理を終了する。タイムアウトタイマは、データ受信時の通信エラーの有無を受信待ち時間によって判別するためのものである。本実施形態において、主基板通信LSI610における受信時のタイムアウトタイマは、パケット単位(伝送単位)で通信エラーを検出するために、少なくとも1Byte分のデータを受信することが可能な待ち時間が計時されるようになっている。具体的にいうと、主基板通信LSI610のタイムアウトタイマは、例えば48ビット(6Byte)分のデータを受信することが可能な待ち時間として、通信速度19200bpsを基に2.5msecが計時されるように構成されている。
[初期設定処理(主基板通信LSI)]
図58は、主基板通信LSIによる初期設定処理を示す。図58に示すように、主基板通信LSI610の専用コントローラ611は、第1UART615について初期設定を行う(S441)。具体的にいうと、専用コントローラ611は、設定レジスタ612に予め記憶されている通信仕様等に基づく設定データを参照し、第1UART615のコントロールレジスタにボーレート(送受信に係る通信速度)、送受信時のデータ長、パリティ、ストップビット等をセットする。本実施形態においては、例えば、メインCPU601との間の通信速度が19200bps、データ長が8ビット、パリティが偶数パリティ、ストップビットが1ビットとしてセットされる。
次に、専用コントローラ611は、受信に係る通信速度のボーレート設定値から第1UART615の受信時におけるタイムアウト値を算出する(S442)。具体的にいうと、専用コントローラ611は、例えばボーレート設定値が19200bpsで少なくとも48ビット分のデータを受信する場合、1/ボーレート×48によりタイムアウト値として2.5msecを得る。こうして得られたタイムアウト値は、タイムアウトタイマにセットされる。
次に、専用コントローラ611は、第2UART616について初期設定を行い(S443)、この初期設定処理を終了する。具体的にいうと、専用コントローラ611は、設定レジスタ612に予め記憶されている通信仕様等に基づく設定データを参照し、第2UART616のコントロールレジスタにボーレート(受信に係る通信速度)、送受信時のデータ長、パリティ、ストップビット等をセットする。本実施形態においては、例えば、副基板通信LSI710との間の通信速度が115200bps、データ長が8ビット、パリティが偶数パリティ、ストップビットが1ビットとしてセットされる。
[受信処理(主基板通信LSI)]
図59は、主基板通信LSIによる受信処理を示す。図59に示すように、主基板通信LSI610の専用コントローラ611は、メインCPU601からの受信データの取得に際してタイムアウトタイマを用いてタイムアウトが発生したか否かを判別する(S461)。
S461において、タイムアウトが発生していないと判別した場合、専用コントローラ611は、この受信処理を終了する。一方、タイムアウトが発生したと判別した場合、専用コントローラ611は、パケット受信番号を1加算して更新する(S462)。
次に、専用コントローラ611は、受信データは8Byte未満か否かを判別する(S463)。受信データは8Byte未満であると判別した場合、専用コントローラ611は、主基板通信LSI受信ステータスにエラー情報としてタイムアウトをセットする(S464)。エラー情報としてのタイムアウトは、図51に示すように、主基板通信LSI受信ステータスにおけるビットナンバーB7のビットを「1」としてセットされる。一方、受信データは8Byte未満でない、すなわち少なくとも8Byteの受信データであると判別した場合、専用コントローラ611は、次のS465に移る。
次に、専用コントローラ611は、送信要求フラグをセットし(S465)、この受信処理を終了する。送信要求フラグは、キャッシュメモリ613の所定領域に確保され、主基板通信LSI610が送信すべきデータの有無を識別するために用いられる。
[送信処理(主基板通信LSI)]
図60は、主基板通信LSIによる送信処理を示す。図60に示すように、主基板通信LSI610の専用コントローラ611は、送信要求フラグに基づいてデータの送信要求があるか否か、すなわちメインCPU601からのコマンド等を含む受信データがあるか否かを判別する(S481)。
S481において、データの送信要求があると判別した場合、専用コントローラ611は、パケット受信番号を送信バッファにセットする(S482)。送信バッファは、キャッシュメモリ613の所定領域に確保され、メインCPU601からサブCPU701へと供給されるコマンド等を含む通信データ等を一時記憶するために用いられる。一方、データの送信要求がないと判別した場合、専用コントローラ611は、この送信処理を終了する。
次に、専用コントローラ611は、メインCPU601からの受信データ(パケットデータ:データ固定長8Byte)を送信バッファにセットする(S483)。続いて、専用コントローラ611は、主基板通信LSI受信ステータスを送信バッファにセットする(S484)。また、専用コントローラ611は、ダミーデータを送信バッファにセットする(S485)。さらに、専用コントローラ611は、巡回冗長検査によりCRCを計算し、その計算結果としてのCRCデータを送信バッファにセットする(S486)。これにより、送信バッファからは、バイトナンバーD0〜D15の16Byteからなる外部通信データ(図49参照)がシリアル形式の送信データとして1Byteずつ順次出力される。このようにして主基板通信LSI610から副基板通信LSI710へと送信されるデータは、主基板通信LSI610においてマンチェスター変調及びAES暗号化された固定データ長16Byteのデータであり、通信仕様に基づいて通信速度115200bpsで伝送される。
次に、専用コントローラ611は、16Byte分のデータを送信したか否かを判別する(S487)。16Byte分のデータを送信していないと判別した場合、専用コントローラ611は、第2UART616の送信ポートから送信データを送信し(S488)、その後再びS487に戻る。一方、16Byte分のデータを送信したと判別した場合、専用コントローラ611は、受信データ、受信カウンタ、及び送信要求フラグをクリアし(S489)、この送信処理を終了する。
[メイン制御シーケンス(副基板通信LSI)]
図61は、副基板通信LSIによるメイン制御シーケンスを示す。図61に示すように、副基板通信LSI710の専用コントローラ711は、図63を参照して説明する初期設定処理を行う(S501)。この初期設定処理によれば、予め定められた通信仕様に基づいて通信に係る各種の設定情報がセットされる。初期設定処理については後述する。
次に、専用コントローラ711は、図64を参照して説明する受信処理を行う(S502)。この受信処理によれば、メインCPU601から主基板通信LSI610を通じて供給されるコマンド等を含む外部通信データが通信仕様に基づいて受信される。この受信処理については後述する。
次に、専用コントローラ711は、送信要求はあるか否かを判別する(S503)。このような送信要求の有無は、後述の送信要求フラグに基づいて判別される。送信要求はあると判別した場合、専用コントローラ711は、図65を参照して説明する送信処理を行う(S504)。その後、専用コントローラ711は、S502に移る。一方、送信要求はないと判別した場合、専用コントローラ711は、送信処理を行うことなくS502に移る。送信処理については後述する。
[受信割込み処理(副基板通信LSI)]
図62は、副基板通信LSIによる受信割込み処理を示す。図62に示すように、副基板通信LSI710の専用コントローラ711は、主基板通信LSI610から第2UART716を経由して供給された受信データを取得する(S521)。
次に、専用コントローラ711は、主基板通信LSI610から供給された受信データに物理層エラーはあるか否かを判別する(S522)。この物理層エラーの有無を判別する処理は、主として副基板通信LSI710に内蔵された第2UART716により行われる。この際に検出され得る物理層エラーは、第2UART716により検出されるオーバーランエラー、フレーミングエラー、パリティエラー等である。
S522において、受信データに物理層エラーはあると判別すると、専用コントローラ711は、検出した物理層エラーを副基板通信LSI受信ステータスにセットし(S523)、その後S524に移る。副基板通信LSI受信ステータスは、図50に示すように、副基板通信LSI710からサブCPU701へと送信されるシリアルデータのバイトナンバーD12のブロックにセットされる。一方、受信データに物理層エラーはないと判別すると、専用コントローラ711は、後のS525に移る。
次に、専用コントローラ711は、エラーカウントを1加算して更新する(S524)。このようなエラーカウントは、副基板通信LSI受信ステータスのうちのビットナンバーB0〜B3にセットされ、エラーカウントにより受信エラー発生総数が示される(図51参照)。
次に、専用コントローラ711は、主基板通信LSI610からの受信データを送信バッファ(キャッシュメモリ713)に順次保存し(S525)、その後、受信カウンタを1加算して更新する(S526)。受信カウンタは、主基板通信LSI610から16Byte固定長のデータサイズで送られてくるデータを計数するために用いられる。
次に、専用コントローラ711は、タイムアウトタイマをセットし(S527)、この受信割込み処理を終了する。このような副基板通信LSI710のタイムアウトタイマも、パケット単位(伝送単位)で通信エラーを検出するために、少なくとも1Byte分のデータを受信することが可能な待ち時間が計時されるようになっている。具体的にいうと、副基板通信LSI710のタイムアウトタイマは、例えば48ビット(6Byte)分のデータを受信することが可能な待ち時間として、通信速度115200bpsを基に約0.4msecが計時されるように構成されている。
[初期設定処理(副基板通信LSI)]
図63は、副基板通信LSIによる初期設定処理を示す。図63に示すように、副基板通信LSI710の専用コントローラ711は、第1UART715について初期設定を行う(S541)。具体的にいうと、専用コントローラ711は、設定レジスタ712に予め記憶されている通信仕様等に基づく設定データを参照し、第1UART715のコントロールレジスタにボーレート(送受信に係る通信速度)、送受信時のデータ長、パリティ、ストップビット等をセットする。本実施形態においては、例えば、サブCPU701との間の通信速度が115200bps、データ長が8ビット、パリティが偶数パリティ、ストップビットが1ビットとしてセットされる。
次に、専用コントローラ711は、第2UART716について初期設定を行う(S542)。具体的にいうと、専用コントローラ711は、設定レジスタ712に予め記憶されている通信仕様等に基づく設定データを参照し、第2UART716のコントロールレジスタにボーレート(受信に係る通信速度)、送受信時のデータ長、パリティ、ストップビット等をセットする。本実施形態においては、例えば、主基板通信LSI610との間の通信速度が115200bps、データ長が8ビット、パリティが偶数パリティ、ストップビットが1ビットとしてセットされる。
次に、専用コントローラ711は、受信に係る通信速度のボーレート設定値から第2UART716の受信時におけるタイムアウト値を算出し(S543)、この初期設定処理を終了する。具体的にいうと、専用コントローラ711は、例えばボーレート設定値が115200bpsで少なくとも48ビット分のデータを受信する場合、1/ボーレート×48によりタイムアウト値として約0.4msecを得る。こうして得られたタイムアウト値は、タイムアウトタイマにセットされる。
[受信処理(副基板通信LSI)]
図64は、副基板通信LSIによる受信処理を示す。図64に示すように、副基板通信LSI710の専用コントローラ711は、主基板通信LSI610からの受信データの取得に際してタイムアウトタイマを用いてタイムアウトが発生したか否かを判別する(S561)。
S561において、タイムアウトが発生していないと判別した場合、専用コントローラ711は、この受信処理を終了する。一方、タイムアウトが発生したと判別した場合、専用コントローラ711は、受信データは16Byteか否かを判別する(S562)。
S562において、受信データは16Byteでない、例えば16Byte未満であると判別した場合、専用コントローラ711は、副基板通信LSI受信ステータスにエラー情報としてタイムアウトをセットする(S563)。エラー情報としてのタイムアウトは、図51に示すように、副基板通信LSI受信ステータスにおけるビットナンバーB7のビットを「1」としてセットされる。一方、受信データは16Byteであると判別した場合、専用コントローラ711は、次のS564に移る。
次に、専用コントローラ711は、受信データのうちのバイトナンバーD0〜D13のデータについて巡回冗長検査によりCRCを算出する(S564)。
次に、専用コントローラ711は、算出したCRCは正常か否かを判別する(S565)。CRCは正常と判別した場合、専用コントローラ711は、後のS567に移る。一方、CRCは異常と判別した場合、専用コントローラ711は、副基板通信LSIパケット種別に論理エラー種類としてCRCエラーをセットする(S566)。副基板通信LSIパケット種別は、図50に示すように、副基板通信LSI710からサブCPU701へと送信されるシリアルデータのバイトナンバーD13のブロックにセットされる。
次に、専用コントローラ711は、送信要求フラグをセットし(S567)、この受信処理を終了する。送信要求フラグは、キャッシュメモリ713の所定領域に確保され、副基板通信LSI710が送信すべきデータの有無を識別するために用いられる。
[送信処理(副基板通信LSI)]
図65は、副基板通信LSIによる送信処理を示す。図65に示すように、副基板通信LSI710の専用コントローラ711は、送信要求フラグに基づいてデータの送信要求があるか否か、すなわちメインCPU601から主基板通信LSI610を通じて送られてきたコマンド等を含む受信データがあるか否かを判別する(S581)。
S581において、データの送信要求があると判別した場合、専用コントローラ711は、主基板通信LSI610からの受信データ(外部通信データ:データ固定長16Byte)のうちのバイトナンバーD0〜D11のブロックを送信バッファにセットする(S582)。続いて、専用コントローラ711は、副基板通信LSI受信ステータスにエラーカウントをセットし(S583)、当該副基板通信LSI受信ステータスをバイトナンバーD12のブロックとして送信バッファにセットする(S584)。
また、専用コントローラ711は、副基板通信LSIパケット種別をバイトナンバーD13のブロックとして送信バッファにセットする(S585)。さらに、専用コントローラ711は、送信バッファのバイトナンバーD0〜D13のブロックについて巡回冗長検査によりCRCを計算し、その計算結果としてのCRCデータを送信バッファにセットする(S586)。これにより、送信バッファには、バイトナンバーD0〜D15の16Byteからなる内部通信データ(図50参照)がシリアル形式の送信データとして一時記憶される。
こうして送信バッファに送信すべきデータ(D0〜D15)が一時記憶(待機)されると、専用コントローラ711は、最初に第1UART715の送信ポートから通信伝文の開始を示す「STX」に対応するデータを送信する(S587)。
そして、専用コントローラ711は、16Byte分のデータ(D0〜D15)を送信したか否かを判別する(S588)。16Byte分のデータ(D0〜D15)を送信したと判別した場合、専用コントローラ711は、受信データ、受信カウンタ、及び送信要求フラグをクリアし(S593)、この送信処理を終了する。
一方、S588において、16Byte分のデータ(D0〜D15)を送信していないと判別した場合、専用コントローラ711は、現時点のタイミングで送信バッファから出力される送信データは「STX」又は「DLE」と同じ値に該当するか否かを判別する(S589)。
S589において、送信データは「STX」又は「DLE」と同じ値に該当すると判別した場合、専用コントローラ711は、第1UART715の送信ポートから制御データを含むブロックであることを示す「DLE」に対応するデータを送信し(S590)、該当する送信データについてエスケープ処理を行う(S591)。エスケープ処理では、該当するブロックとその次順以降のブロックのデータ送信順がそれぞれ1つずつ繰り下げられる。一方、送信データは「STX」又は「DLE」と同じ値に該当しないと判別した場合、専用コントローラ711は、「DLE」の送信やエスケープ処理を行うことなく、次のS592に移る。
次に、専用コントローラ711は、第1UART715の送信ポートから送信バッファにセットとされた送信データ(D0〜D15)を送信し(S592)、その後再びS588に戻る。これにより、送信バッファからは、バイトナンバーD0〜D15を含む内部通信データ(図50参照)がシリアル形式の送信データとして1Byteずつ順次出力される。このようにして副基板通信LSI710からサブCPU701へと送信されるデータは、副基板通信LSI710においてマンチェスター復調及びAES復号化されたものであって、さらに副基板通信LSI710においてバイトナンバーD0〜D15のブロックに「STX」や「DLE」を含む可変長17〜33Byteのデータとされ、通信仕様に基づいて通信速度115200bpsで伝送される。
次に、図69〜90に示すフローチャートを参照して、メインCPU601、外部出力用通信LSI610A、及び外部端子板制御LSI910の外部出力に係る動作について説明する。
[外部出力用メダルインコマンド登録処理]
図69は、メインCPUによる外部出力用メダルインコマンド登録処理を示す。図69に示すように、メインCPU601は、メダルインコマンドをメインRAM603の外部出力用格納領域(0)にセットする(S601)。外部出力用格納領域(0)は、コマンドのうちのコマンド種別(コマンド情報)を出力するための領域であり、メインRAM603に1バイト分の領域として確保される。
次に、メインCPU601は、メダル投入枚数を外部出力用格納領域(1)にセットし(S602)、この登録処理を終了する。外部出力用格納領域(1)は、コマンドのうちの設定データを出力するための領域であり、メインRAM603に1バイト分の領域として確保される。この場合、外部出力用格納領域(1)には、メダル投入枚数に相当する値として1〜3のいずれかがセットされる。すなわち、外部出力すべきメダルインに係るコマンドがある場合、当該コマンドは、外部出力用通信LSI610Aへと送信されるのに先立ち、コマンド情報(メダルインコマンド)と設定データ(メダル投入枚数)とに分けられ、それぞれの情報が外部出力用格納領域(0)と外部出力用格納領域(1)とにセットされる。
[外部出力用メダルアウトコマンド登録処理]
図70は、メインCPUによる外部出力用メダルアウトコマンド登録処理を示す。図70に示すように、メインCPU601は、メダル払出枚数があるか否かを判別し(S621)、メダル払出枚数がないと判別した場合は、この登録処理を終了する。一方、S621においてメダル払出枚数があると判別した場合、メインCPU601は、メダルアウトコマンドを外部出力用格納領域(0)にセットする(S622)。
次に、メインCPU601は、メダル払出枚数を外部出力用格納領域(1)にセットし(S623)、この登録処理を終了する。この場合、外部出力用格納領域(1)には、メダル払出枚数に相当する値として1〜15のいずれかがセットされる。すなわち、外部出力すべきメダルアウトに係るコマンドがある場合、当該コマンドは、外部出力用通信LSI610Aへと送信されるのに先立ち、コマンド情報(メダルアウトコマンド)と設定データ(メダル払出枚数)とに分けられ、これらの情報がそれぞれ外部出力用格納領域(0)と外部出力用格納領域(1)とにセットされる。
[コマンド外部出力処理]
図71は、メインCPUによるコマンド外部出力処理を示す。図71に示すように、メインCPU601は、外部出力用格納領域(0)又は(1)に外部出力すべきデータが存在するか否かを判別する(S641)。
S641において、外部出力用格納領域(0)又は(1)に外部出力すべきデータが存在する場合、メインCPU601は、後述のS649に移る。一方、外部出力用格納領域(0)及び(1)に外部出力すべきデータが存在しない場合、メインCPU601は、図72を参照して後述する外部信号編集処理を行う(S642)。この外部信号編集処理では、外部信号1〜4に係るコマンドが外部出力用格納領域にセットされる。
次に、メインCPU601は、再び外部出力用格納領域(0)又は(1)に外部出力すべきデータが存在するか否かを判別する(S643)。
S643において、外部出力用格納領域(0)又は(1)に外部出力すべきデータが存在する場合、メインCPU601は、後述のS649に移る。一方、外部出力用格納領域(0)及び(1)に外部出力すべきデータが存在しない場合、メインCPU601は、セキュリティ信号編集処理を行う(S644)。このセキュリティ信号編集処理では、メインRAM603を用いて外部出力すべきセキュリティ信号の出力状態イメージが必要に応じて時間設定された上で作成される。
メインCPU601は、セキュリティ信号に変化があるか否か、セキュリティ信号の出力状態イメージが状態変化を示すものであるか否かを判別する(S645)。セキュリティ信号の出力状態イメージが状態変化を示すものでない場合、メインCPU601は、このコマンド外部出力処理を終了する。一方、セキュリティ信号の出力状態イメージが状態変化を示すものである場合、メインCPU601は、セキュリティコマンド「C0H」を外部出力用格納領域(0)にセットする(S646)。このとき、外部出力用格納領域(1)の下位4ビットには、セキュリティ信号の状態情報(設定データ)がセットされる。
さらに、メインCPU601は、セットしたセキュリティコマンドの出力状態イメージにおいて変化する時間の時間設定値が1以上あるか否かを判別する(S647)。S647において時間設定値が1以上ない、すなわち時間設定値0であってセキュリティ信号の出力状態が維持される場合、メインCPU601は、後述のS649に移る。一方、S647において時間設定値が1以上ある場合、メインCPU601は、当該時間設定値を外部出力用格納領域(1)の上位4ビットにセットする(S648)。
そして、メインCPU601は、最終的に外部出力用格納領域(0)及び外部出力用格納領域(1)にセットされたデータ(コマンド情報及び設定データ)を外部出力用通信LSI610Aに送信し(S649)、このコマンド外部出力処理を終了する。これにより、外部出力用格納領域(0)及び外部出力用格納領域(1)にセットされたコマンドは、メインCPU601内の第2UART601Bを通じて外部出力用通信LSI610Aへと速やかに送信される。コマンドの送信後、外部出力用格納領域(0)及び外部出力用格納領域(1)は、クリアされる。なお、本実施形態のコマンド外部出力処理では、外部出力用格納領域(0)のコマンド情報(1バイト)が送信された後、これに続いて外部出力用格納領域(1)の設定データ(1バイト)が送信されることにより、2バイト単位でコマンドが送信されるようになっている。
[外部信号編集処理]
図72は、メインCPUによる外部信号編集処理を示す。図72に示すように、メインCPU601は、外部信号1〜4について状態出力設定があるか否か、すなわち外部信号1〜4を単に継続して外部出力すべきものか否かを判別する(S661)。
S661において、外部信号1〜4に状態出力設定がない場合、すなわち、時間設定値が1以上であって外部信号1〜4を所定時間限定して外部出力すべき場合、メインCPU601は、後述のS666に移る。一方、外部信号1〜4に状態出力設定がある場合、すなわち、時間設定値が0で外部信号1〜4を単に継続して外部出力すべき場合、メインCPU601は、外部信号1〜4に係る外部出力コマンドを外部出力用格納領域(0)にセットする(S662)。このとき、外部出力用格納領域(0)には、仮のコマンド情報として「B0H」がセットされる。
次に、メインCPU601は、実際に外部出力すべき外部出力コマンドがチェーンコマンドに該当するか否かを判別する(S663)。S663において、実際の外部出力コマンドがチェーンコマンドに該当しない場合、メインCPU601は、後述のS665に移る。一方、実際の外部出力コマンドがチェーンコマンドに該当する場合、メインCPU601は、チェーン情報を含めるべく外部出力用格納領域(0)の値を1加算して再セットする(S664)。これにより、外部出力用格納領域(0)には、実際のコマンド情報に応じた外部出力チェーンコマンドとして「B1H」がセットされる。
その後、メインCPU601は、外部信号1〜4の状態情報(設定データ)を外部出力用格納領域(1)の下位4ビットにセットし(S665)、この外部信号編集処理を終了する。これにより、外部出力コマンド又は外部出力チェーンコマンドがある場合、これらのコマンドは、外部出力用通信LSI610Aへと送信されるのに先立ち、コマンド情報と設定データ(外部信号1〜4の状態出力設定情報)とに分けられ、それぞれの情報が外部出力用格納領域(0)と外部出力用格納領域(1)とにセットされる。
一方、S666において、メインCPU601は、外部信号作成処理を行う。この外部信号作成処理では、メインRAM603の外部信号編集領域を用いて外部出力すべき外部信号1〜4の出力状態イメージが時間設定された上で作成される。
そして、メインCPU601は、外部信号編集領域に変化があるか否か、すなわち外部信号編集領域に作成された外部信号1〜4の出力状態イメージが状態変化を示すものか否かを判別する(S667)。
S667において、外部信号編集領域に変化がなく、外部信号1〜4の出力状態イメージが状態変化を示すものでない場合、メインCPU601は、この外部信号編集処理を終了する。一方、外部信号編集領域に変化があり、外部信号1〜4の出力状態イメージが状態変化を示す場合、さらにメインCPU601は、外部信号編集領域の変化として、外部信号1〜4の出力状態イメージがOFFからONへの変化を示しているか否かを判別する(S668)。
S668において、外部信号1〜4の出力状態イメージがOFFからONへの変化を示している場合、メインCPU601は、外部信号1〜4に係る外部出力ONコマンドを外部出力用格納領域(0)にセットし(S669)、S671に移る。このとき、外部出力用格納領域(0)には、仮のコマンド情報として「B2H」がセットされる。一方、外部信号1〜4の出力状態イメージがOFFからONへの変化とは逆、すなわち、ONからOFFへの変化を示している場合、メインCPU601は、外部信号1〜4に係る外部出力OFFコマンドを外部出力用格納領域(0)にセットし(S670)、S671に移る。このとき、外部出力用格納領域(0)には、仮のコマンド情報として「B4H」がセットされる。
次に、メインCPU601は、実際に外部出力すべきコマンドがチェーンコマンドに該当するか否かを判別する(S671)。S671において、実際のコマンドがチェーンコマンドに該当しない場合、メインCPU601は、後述のS673に移る。一方、実際のコマンドがチェーンコマンドに該当する場合、メインCPU601は、チェーン情報を含めるべく外部出力用格納領域(0)の値を1加算して再セットする(S672)。これにより、外部出力用格納領域(0)には、実際のコマンド情報に応じた外部出力ONチェーンコマンドとして「B3H」、又は、外部出力OFFチェーンコマンドとして「B5H」がセットされる。
その後、メインCPU601は、外部信号編集領域のデータ、すなわち外部信号1〜4の状態情報(設定データ)を外部出力用格納領域(1)の下位4ビットにセットする(S673)。
さらに、メインCPU601は、セットした外部信号1〜4に係るコマンドについて時間設定値が1以上あるか否かを判別する(S674)。S674において時間設定値が1以上ない、すなわち時間設定値が0の場合、メインCPU601は、この外部信号編集処理を終了する。一方、時間設定値が1以上ある場合、メインCPU601は、当該時間設定値を外部出力用格納領域(1)の上位4ビットにセットし(S675)、の外部信号編集処理を終了する。これにより、外部出力ONコマンド、外部出力OFFコマンド、外部出力ONチェーンコマンド、外部出力OFFチェーンコマンドについても、外部出力用通信LSI610Aへと送信されるのに先立ち、コマンド情報と設定データ(外部信号1〜4の状態出力設定情報及び時間設定情報)とに分けられ、それぞれの情報が外部出力用格納領域(0)と外部出力用格納領域(1)とにセットされる。
[メイン制御シーケンス(外部出力用通信LSI)]
図73は、外部出力用通信LSIによるメイン制御シーケンスを示す。図73に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、主基板通信LSI610と同様の初期設定処理を行う(S681)。この初期設定処理によれば、予め定められた外部集中端子板9Aとの通信仕様に基づいて外部出力に係る各種の設定情報がセットされる。
次に、専用コントローラ611Aは、図76を参照して説明する受信処理を行う(S682)。この受信処理によれば、メインCPU601から出力されたコマンドが通信仕様に基づいて受信される。この受信処理については後述する。
次に、専用コントローラ611Aは、図84を参照して説明する出力制御処理を行う(S683)。その後、専用コントローラ611は、S682に移る。この出力制御処理については後述する。
[受信割込み処理(外部出力用通信LSI)]
図74は、外部出力用通信LSIによる受信割込み処理を示す。図74に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、メインCPU601から第2UART601B及び第1UART615Aを経由して供給された受信データ(コマンド情報又は設定データ)を取得する(S701)。
次に、専用コントローラ611Aは、メインCPU601から供給された受信データ(コマンド)に物理層エラーがあるか否かを判別する(S702)。この物理層エラーの有無を判別する処理は、主として外部出力用通信LSI610Aに内蔵された第1UART615Aにより行われる。
S702において、受信データに物理層エラーがないと判別すると、専用コントローラ611Aは、メインCPU601からの受信データをキャッシュメモリ613Aの受信バッファ領域に一時的に保存し(S703)、この受信割込み処理を終了する。一方、受信データに物理層エラーがあると判別すると、専用コントローラ611Aは、コマンド受信済みフラグをオフにセットし(S704)、この受信割込み処理を終了する。なお、本実施形態においては、物理層エラーがあると判別された受信データは、破棄されるようになっているが、物理層エラーがあることを示す情報とともに保存するようにしてもよい。
[タイマ割込み処理(5msec)]
図75は、外部出力用通信LSIによるタイマ割込み処理(5msec)を示す。このタイマ割込み処理は、例えばカウンタタイマ回路の信号やプログラマブルタイマの信号を用いて予め定められた5ミリ秒ごとに周期的に実行される処理である。
図75に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、ソフトウェアタイマ数として5をキャッシュメモリ613Aの所定領域にセットし(S721)、ソフトウェアタイマの参照アドレスをキャッシュメモリ613Aの所定領域にセットする(S722)。ソフトウェアタイマ数の「5」は、予備を除くソフトウェア1〜5の数に相当する。ソフトウェアタイマの参照アドレスとしては、ソフトウェアタイマ(1)〜(5)に割り当てられた最初のアドレスがセットされる。
次に、専用コントローラ611Aは、現時点でのソフトウェアタイマ数が0か否かを判別する(S723)。S723において、ソフトウェアタイマ数が0の場合、専用コントローラ611Aは、このタイマ割込み処理を終了する。一方、ソフトウェアタイマ数が0でない場合、専用コントローラ611Aは、参照アドレスのソフトウェアタイマの状態が計測(1)であるか否かを判別する(S724)。
S724において、ソフトウェアタイマの状態が計測(1)でない場合、専用コントローラ611Aは、後述のS728に移る。一方、ソフトウェアタイマの状態が計測(1)である場合、専用コントローラ611Aは、ソフトウェアタイマカウンタの値を1減算して更新する(S725)。ソフトウェアタイマカウンタは、減算カウンタとして用いられ、基本的に値が0になるまでタイマ計測状態とされる。
次に、専用コントローラ611Aは、ソフトウェアタイマカウンタの値が0か否かを判別する(S726)。S726において、ソフトウェアタイマカウンタの値が0でない場合、専用コントローラ611Aは、後述のS728に移る。一方、ソフトウェアタイマカウンタの値が0の場合、専用コントローラ611Aは、参照アドレスのソフトウェアタイマの状態を終了(−1)に設定する(S727)。
次に、専用コントローラ611Aは、ソフトウェアタイマのアドレスを3バイト加算して更新する(S728)。その後、専用コントローラ611Aは、ソフトウェアタイマ数を1減算し(S729)、再びS723に戻る。このようなタイマ割込み処理によれば、ソフトウェアタイマ(1)〜(5)ごとに時間計測が行われ、例えば100回繰り返し行われることにより、500msの時間を計測することができる。
[受信処理(外部出力用通信LSI)]
図76は、外部出力用通信LSIによる受信処理を示す。図76に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、メインCPU601からの受信データがキャッシュメモリ613Aの受信バッファ領域にあるか否かを判別する(S741)。
S741において、メインCPU601からの受信データがない場合、専用コントローラ611Aは、この受信処理を終了する。一方、メインCPU601からの受信データがある場合、専用コントローラ611Aは、受信データの最上位ビットであるBit7がオンであるか否かを判別する(S742)。受信データは、通信エラー等がない限り、コマンド情報であれば最上位ビットBit7が必ずオンであり、設定データであれば最上位ビットBit7が必ずオフになっている。
S742において、受信データの最上位ビット(Bit7)がオンでない場合、専用コントローラ611Aは、後述のS745に移る。一方、受信データの最上位ビット(Bit7)がオンの場合、専用コントローラ611Aは、コマンド受信済みフラグをオンにセットし(S743)、当該受信データをコマンド情報としてキャッシュメモリ614Aの所定領域に保存する(S744)。その後、専用コントローラ611Aは、この受信処理を終了する。
S745において、専用コントローラ611Aは、コマンド受信済みフラグがオンであるか否かを判別する。コマンド受信済みフラグがオンでない場合、専用コントローラ611Aは、この受信処理を終了する。一方、コマンド受信済みフラグがオンの場合、専用コントローラ611Aは、受信データを設定データとしてキャッシュメモリ614Aの設定データ保存領域に保存する(S746)。
そして、専用コントローラ611Aは、図77を参照して後述するコマンド出力変換処理を実行する(S747)。このコマンド出力変換処理では、コマンド情報及び設定データをワンセットにしてメインCPU601から受信したコマンドが、パラレル信号に適した外部出力用データに変換される。その後、専用コントローラ611Aは、コマンド受信済みフラグをオフにセットし(S748)、この受信処理を終了する。このような受信処理によれば、例えば2バイトからなるコマンドを1バイトずつコマンド情報と設定データとに効率よく区別しながら受け取ることができる。
[コマンド出力変換処理]
図77は、外部出力用通信LSIによるコマンド出力変換処理を示す。図77に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、キャッシュメモリ614Aの所定領域に保存されたコマンド情報を参照することにより、受信したコマンドがメダルインコマンドか否かを判別する(S761)。S761において、受信したコマンドがメダルインコマンドでない場合、専用コントローラ611Aは、S763に移る。一方、受信したコマンドがメダルインコマンドである場合、専用コントローラ611Aは、図78を参照して後述するメダルイン出力変換処理を実行する(S762)。その後、専用コントローラ611Aは、コマンド出力変換処理を終了する。メダルイン出力変換処理では、メダルインに係るコマンドに応じた外部出力用データが生成される。
次に、専用コントローラ611Aは、キャッシュメモリ614Aの所定領域に保存されたコマンド情報を参照することにより、受信したコマンドがメダルアウトコマンドか否かを判別する(S763)。S763において、受信したコマンドがメダルアウトコマンドでない場合、専用コントローラ611Aは、S765に移る。一方、受信したコマンドがメダルアウトコマンドである場合、専用コントローラ611Aは、図79を参照して後述するメダルアウト出力変換処理を実行する(S764)。その後、専用コントローラ611Aは、コマンド出力変換処理を終了する。メダルアウト出力変換処理では、メダルアウトに係るコマンドに応じた外部出力用データが生成される。
次に、専用コントローラ611Aは、キャッシュメモリ614Aの所定領域に保存されたコマンド情報を参照することにより、受信したコマンドが外部出力コマンド(外部出力チェーンコマンドを含む)か否かを判別する(S765)。S765において、受信したコマンドが外部出力コマンドでない場合、専用コントローラ611Aは、S767に移る。一方、受信したコマンドが外部出力コマンドまたは外部出力チェーンコマンドである場合、専用コントローラ611Aは、図80を参照して後述する外部出力変換処理を実行する(S766)。その後、専用コントローラ611Aは、コマンド出力変換処理を終了する。外部出力変換処理では、外部信号1〜4に係る外部出力コマンドまたは外部出力チェーンコマンドのコマンドに応じた外部出力用データが生成される。
次に、専用コントローラ611Aは、キャッシュメモリ614Aの所定領域に保存されたコマンド情報を参照することにより、受信したコマンドが外部出力ONコマンド(外部出力ONチェーンコマンドを含む)か否かを判別する(S767)。S767において、受信したコマンドが外部出力ONコマンドでない場合、専用コントローラ611Aは、S769に移る。一方、受信したコマンドが外部出力ONコマンドまたは外部出力ONチェーンコマンドである場合、専用コントローラ611Aは、図81を参照して後述する外部出力ON変換処理を実行する(S768)。その後、専用コントローラ611Aは、コマンド出力変換処理を終了する。外部出力ON変換処理では、外部信号1〜4に係る外部出力ONコマンドまたは外部出力ONチェーンコマンドのコマンドに応じた外部出力用データが生成される。
次に、専用コントローラ611Aは、キャッシュメモリ614Aの所定領域に保存されたコマンド情報を参照することにより、受信したコマンドが外部出力OFFコマンド(外部出力OFFチェーンコマンドを含む)か否かを判別する(S769)。S769において、受信したコマンドが外部出力OFFコマンドでない場合、専用コントローラ611Aは、S771に移る。一方、受信したコマンドが外部出力OFFコマンドまたは外部出力OFFチェーンコマンドである場合、専用コントローラ611Aは、図82を参照して後述する外部出力OFF変換処理を実行する(S770)。その後、専用コントローラ611Aは、コマンド出力変換処理を終了する。外部出力OFF変換処理では、外部信号1〜4に係る外部出力OFFコマンドまたは外部出力OFFチェーンコマンドのコマンドに応じた外部出力用データが生成される。
次に、専用コントローラ611Aは、キャッシュメモリ614Aの所定領域に保存されたコマンド情報を参照することにより、受信したコマンドがセキュリティコマンドか否かを判別する(S771)。S771において、受信したコマンドがセキュリティコマンドでない場合、専用コントローラ611Aは、コマンド出力変換処理を終了する。一方、受信したコマンドがセキュリティコマンドである場合、専用コントローラ611Aは、図83を参照して後述するセキュリティ出力変換処理を実行する(S772)。その後、専用コントローラ611Aは、コマンド出力変換処理を終了する。セキュリティ出力変換処理では、セキュリティ信号に係るセキュリティコマンドのコマンドに応じた外部出力用データが生成される。
[メダルイン出力変換処理]
図78は、外部出力用通信LSIによるメダルイン出力変換処理を示す。図78に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、キャッシュメモリ614Aの設定データ保存領域に保存された設定データを参照することにより、設定データの値が1〜3に該当するか否かを判別する(S781)。
S781において、設定データの値が1〜3に該当しない場合、専用コントローラ611Aは、メダルインに係る設定データを無効として破棄し、メダルイン出力変換処理を終了する。一方、設定データの値が1〜3に該当する場合、専用コントローラ611Aは、キャッシュメモリ614Aにメダルインカウンタの領域を確保し、メダルインカウンタに設定データの値をセットする(S782)。
次に、専用コントローラ611Aは、キャッシュメモリ614Aに設けられた出力編集エリアにアクセスし、当該出力編集エリアのBit6をオン状態(1)に設定する(S783)。出力編集エリアのBit6は、メダルインコマンドに対応している。
次に、専用コントローラ611Aは、ソフトウェアタイマ(1)のタイマカウンタ値として10をセットする(S784)。このタイマカウンタ値10は、メダルインに係る設定データの値をパルス数として対応付ける際に設定すべき、パルス幅の50msに相当する。
次に、専用コントローラ611Aは、ソフトウェアタイマ(1)の状態を示す値として計測(1)をセットし(S785)、メダルイン出力変換処理を終了する。このようなメダルイン出力変換処理によれば、メダルインに係るコマンドに対応し、かつ、単位時間(パルス幅)ごとに状態変化するメダルイン信号に応じた外部出力用データが効率よく生成される。
[メダルアウト出力変換処理]
図79は、外部出力用通信LSIによるメダルアウト出力変換処理を示す。図79に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、キャッシュメモリ614Aの設定データ保存領域に保存された設定データを参照することにより、設定データの値が1〜15に該当するか否かを判別する(S801)。
S801において、設定データの値が1〜15に該当しない場合、専用コントローラ611Aは、メダルアウトに係る設定データを無効として破棄し、メダルアウト出力変換処理を終了する。一方、設定データの値が1〜15に該当する場合、専用コントローラ611Aは、キャッシュメモリ614Aにメダルアウトカウンタの領域を確保し、メダルアウトカウンタに設定データの値をセットする(S802)。その後、専用コントローラ611Aは、メダルアウト出力中フラグをオンにセットする(S803)。メダルアウト出力中フラグは、メダルアウト信号が外部出力中にあるか否かを判別するために用いられる。
次に、専用コントローラ611Aは、キャッシュメモリ614Aに設けられた出力編集エリアにアクセスし、当該出力編集エリアのBit5をオン状態(1)に設定する(S804)。出力編集エリアのBit5は、メダルアウトコマンドに対応している。
次に、専用コントローラ611Aは、ソフトウェアタイマ(2)のタイマカウンタ値として10をセットする(S805)。このタイマカウンタ値10は、メダルアウトに係る設定データの値をパルス数として対応付ける際に設定すべき、パルス幅の50msに相当する。
次に、専用コントローラ611Aは、ソフトウェアタイマ(2)の状態を示す値として計測(2)をセットし(S806)、メダルアウト出力変換処理を終了する。このようなメダルアウト出力変換処理によれば、メダルアウトに係るコマンドに対応し、かつ、単位時間(パルス幅)ごとに状態変化するメダルアウト信号に応じた外部出力用データが効率よく生成される。
[外部出力変換処理]
図80は、外部出力用通信LSIによる外部出力変換処理を示す。図80に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、受信した外部出力に係るコマンドについて、外部出力チェーンコマンドで、かつ、メダルアウト出力中フラグがオンであるか否かを判別する(S821)。
S821において、外部出力チェーンコマンドではなく、あるいは、メダルアウト出力中フラグがオンでない場合、専用コントローラ611Aは、後述のS824に移る。一方、外部出力チェーンコマンドで、かつ、メダルアウト出力中フラグがオンの場合、専用コントローラ611Aは、キャッシュメモリ614Aの設定データ保存領域に保存された設定データからBit0〜Bit3の値を取得し、当該設定データのBit0〜Bit3の値をキャッシュメモリ614Aに設けられたチェーンエリアのBit0〜Bit3にセットする(S822)。設定データのBit0〜Bit3は、外部信号1〜4の状態を示している。
次に、専用コントローラ611Aは、チェーンフラグをオンにセットする(S823)。その後、専用コントローラ611Aは、外部出力変換処理を終了する。チェーンフラグは、メダルアウト信号の外部出力が終了した後に続いて外部出力すべき他の信号があるか否かを判別するために用いられる。
S824において、専用コントローラ611Aは、キャッシュメモリ614Aの設定データ保存領域に保存された設定データからBit0〜Bit3の値を取得し、当該設定データのBit0〜Bit3の値をキャッシュメモリ614Aに設けられた出力編集エリアのBit0〜Bit3にセットする。その後、専用コントローラ611Aは、外部出力変換処理を終了する。このような外部出力変換処理によれば、外部信号1〜4に係る外部出力のコマンドに対応し、かつ、単調な出力状態となる外部信号1〜4に応じた外部出力用データが効率よく生成される。
[外部出力ON変換処理]
図81は、外部出力用通信LSIによる外部出力ON変換処理を示す。図81に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、受信した外部出力ONに係るコマンドについて、外部出力ONチェーンコマンドで、かつ、メダルアウト出力中フラグがオンであるか否かを判別する(S841)。
S841において、外部出力ONチェーンコマンドで、かつ、メダルアウト出力中フラグがオンの場合、専用コントローラ611Aは、後述のS847に移る。一方、外部出力ONチェーンコマンドではなく、あるいは、メダルアウト出力中フラグがオンでない場合、専用コントローラ611Aは、キャッシュメモリ614Aの設定データ保存領域に保存された設定データからBit0〜Bit3の値を取得し、当該設定データのBit0〜Bit3の値をキャッシュメモリ614Aに設けられた出力編集エリアのBit0〜Bit3にセットする(S842)。設定データのBit0〜Bit3は、外部信号1〜4のいずれかがオン設定であることを示しており、専用コントローラ611Aは、設定データのBit0〜Bit3のうちオン設定とされたBitを特定している。
次に、専用コントローラ611Aは、設定データの上位ビットに時間設定値がセットされているか否かを判別する(S843)。S843において、設定データに時間設定値がセットされていない場合、専用コントローラ611Aは、外部出力ONに係る設定データを無効として破棄し、外部出力ON変換処理を終了する。
S843において、設定データに時間設定値がセットされている場合、専用コントローラ611Aは、ソフトウェアタイマ(3)のタイマカウンタ値として、当該時間設定値に10を乗算した値をセットする(S844)。このタイマカウンタ値は、外部信号1〜4のうちオン設定とされた外部信号を所定時間にわたりオン状態として外部出力する際の当該所定時間に相当する。
次に、専用コントローラ611Aは、ソフトウェアタイマ(3)の状態を示す値として計測(1)をセットする(S845)。その後、専用コントローラ611Aは、出力状態エリアのBit0〜Bit3の値を取得し、設定データのBit0〜Bit3でオン設定とされた対応するBitの値のみをオフ状態の値(0)として外部出力ON計測後復帰エリアに保存する(S846)。その後、専用コントローラ611Aは、外部出力ON変換処理を終了する。この処理によれば、外部出力ONコマンドに対応する外部出力用データの送信に先立ち、当該コマンドにより設定された所定時間経過後に復帰すべき外部信号1〜4の各状態が保存される。
S847において、専用コントローラ611Aは、チェーンフラグをオンにセットする。次に、専用コントローラ611Aは、設定データの上位ビットに時間設定値がセットされているか否かを判別する(S848)。S848において、設定データに時間設定値がセットされていない場合、専用コントローラ611Aは、設定データのBit0〜Bit3の値をキャッシュメモリ614Aに設けられたチェーンエリアのBit0〜Bit3にセットし(S853)、外部出力ON変換処理を終了する。
S848において、設定データに時間設定値がセットされている場合、専用コントローラ611Aは、ソフトウェアタイマ(3)のタイマカウンタ値として、当該時間設定値に10を乗算した値をセットする(S849)。このタイマカウンタ値は、外部信号1〜4のうちオン設定とされた外部信号をメダルアウト信号の外部出力後に所定時間にわたりオン状態として外部出力する際の当該所定時間に相当する。
次に、専用コントローラ611Aは、ソフトウェアタイマ(3)の状態を示す値として予約(2)をセットする(S850)。その後、専用コントローラ611Aは、設定データのBit0〜Bit3の値をキャッシュメモリ614Aに設けられた外部出力ONエリアのBit0〜Bit3にセットする(S851)。
そして、専用コントローラ611Aは、出力状態エリアのBit0〜Bit3の値を取得し、設定データのBit0〜Bit3でオン設定とされた対応するBitの値のみをオフ状態の値(0)として外部出力ON計測後復帰エリアに保存する(S852)。その後、専用コントローラ611Aは、外部出力ON変換処理を終了する。この処理によれば、外部出力ONチェーンコマンドに対応する外部出力用データの送信に先立ち、当該コマンドにより設定された所定時間経過後に復帰すべき外部信号1〜4の各状態が保存される。
[外部出力OFF変換処理]
図82は、外部出力用通信LSIによる外部出力OFF変換処理を示す。図82に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、受信した外部出力OFFに係るコマンドについて、外部出力OFFチェーンコマンドで、かつ、メダルアウト出力中フラグがオンであるか否かを判別する(S861)。
S861において、外部出力OFFチェーンコマンドで、かつ、メダルアウト出力中フラグがオンの場合、専用コントローラ611Aは、後述のS867に移る。一方、外部出力OFFチェーンコマンドではなく、あるいは、メダルアウト出力中フラグがオンでない場合、専用コントローラ611Aは、キャッシュメモリ614Aの設定データ保存領域に保存された設定データからBit0〜Bit3の値を取得し、当該設定データのBit0〜Bit3でオフ設定とされたBitの値のみをオフ状態の値(0)としてキャッシュメモリ614Aに設けられた出力編集エリアのBit0〜Bit3にセットする(S862)。設定データのBit0〜Bit3は、外部信号1〜4のいずれかがオフ設定であることを示しており、専用コントローラ611Aは、設定データのBit0〜Bit3のうちオフ設定とされたBitを特定している。
次に、専用コントローラ611Aは、設定データの上位ビットに時間設定値がセットされているか否かを判別する(S863)。S863において、設定データに時間設定値がセットされていない場合、専用コントローラ611Aは、外部出力OFFに係る設定データを無効として破棄し、外部出力OFF変換処理を終了する。
S863において、設定データに時間設定値がセットされている場合、専用コントローラ611Aは、ソフトウェアタイマ(4)のタイマカウンタ値として、当該時間設定値に10を乗算した値をセットする(S864)。このタイマカウンタ値は、外部信号1〜4のうちオフ設定とされた外部信号を所定時間にわたりオフ状態(0)として外部出力する際の当該所定時間に相当する。
次に、専用コントローラ611Aは、ソフトウェアタイマ(4)の状態を示す値として計測(1)をセットする(S865)。その後、専用コントローラ611Aは、出力状態エリアのBit0〜Bit3の値を取得し、設定データのBit0〜Bit3でオフ設定とされた対応するBitの値のみをオン状態の値(1)として外部出力OFF計測後復帰エリアに保存する(S866)。その後、専用コントローラ611Aは、外部出力OFF変換処理を終了する。この処理によれば、外部出力OFFコマンドに対応する外部出力用データの送信に先立ち、当該コマンドにより設定された所定時間経過後に復帰すべき外部信号1〜4の各状態が保存される。
S867において、専用コントローラ611Aは、チェーンフラグをオンにセットする。次に、専用コントローラ611Aは、設定データの上位ビットに時間設定値がセットされているか否かを判別する(S868)。S868において、設定データに時間設定値がセットされていない場合、専用コントローラ611Aは、設定データのBit0〜Bit3でオフ設定とされたBitの値のみをオフ状態の値(0)としてキャッシュメモリ614Aに設けられたチェーンエリアのBit0〜Bit3にセットし(S873)、外部出力OFF変換処理を終了する。
S868において、設定データに時間設定値がセットされている場合、専用コントローラ611Aは、ソフトウェアタイマ(4)のタイマカウンタ値として、当該時間設定値に10を乗算した値をセットする(S869)。このタイマカウンタ値は、外部信号1〜4のうちオフ設定とされた外部信号をメダルアウト信号の外部出力後に所定時間にわたりオフ状態として外部出力する際の当該所定時間に相当する。
次に、専用コントローラ611Aは、ソフトウェアタイマ(4)の状態を示す値として予約(2)をセットする(S870)。その後、専用コントローラ611Aは、設定データのBit0〜Bit3でオフ設定とされたBitの値のみをオフ状態の値(0)としてキャッシュメモリ614Aに設けられた外部出力OFFエリアのBit0〜Bit3にセットする(S871)。
そして、専用コントローラ611Aは、出力状態エリアのBit0〜Bit3の値を取得し、設定データのBit0〜Bit3でオフ設定とされた対応するBitの値のみをオン状態の値(1)として外部出力OFF計測後復帰エリアに保存する(S872)。その後、専用コントローラ611Aは、外部出力OFF変換処理を終了する。この処理によれば、外部出力OFFチェーンコマンドに対応する外部出力用データの送信に先立ち、当該コマンドにより設定された所定時間経過後に復帰すべき外部信号1〜4の各状態が保存される。
[セキュリティ出力変換処理]
図83は、外部出力用通信LSIによるセキュリティ出力変換処理を示す。図83に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、受信した設定データの最下位ビットとなるBit0の値を出力編集エリアのBit4にセットする(S881)。設定データのBit0には、外部出力すべきセキュリティ情報が有ることを示す値(0又は1)がセットされている。
次に、専用コントローラ611Aは、設定データの上位ビットに時間設定値がセットされているか否かを判別する(S882)。S882において、設定データに時間設定値がセットされていない場合、専用コントローラ611Aは、そのままセキュリティ出力変換処理を終了する。この場合、単に継続して外部出力すべきセキュリティ信号S2に係る外部出力用データが生成されることなる。
S882において、設定データに時間設定値がセットされている場合、専用コントローラ611Aは、ソフトウェアタイマ(5)のタイマカウンタ値として、当該時間設定値に10を乗算した値をセットする(S883)。このタイマカウンタ値は、セキュリティ信号S1を所定時間にわたり外部出力する際の当該所定時間に相当する。
次に、専用コントローラ611Aは、ソフトウェアタイマ(5)の状態を示す値として計測(1)をセットする(S884)。
次に、専用コントローラ611Aは、設定データのBit0の論理反転値、すなわち所定時間経過後に復帰すべき状態の値(設定データのBit0が“1”の場合は“0”)をセキュリティ計測後復帰エリアに保存する(S885)。その後、専用コントローラ611Aは、セキュリティ出力変換処理を終了する。このようなセキュリティ出力変換処理によれば、セキュリティコマンドのコマンドに対応し、かつ、セキュリティ信号S1,S2に応じた外部出力用データが効率よく生成される。
[出力制御処理]
図84は、外部出力用通信LSIによる出力制御処理を示す。図84に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、メダルイン出力制御処理(図85参照)、メダルアウト出力制御処理(図86参照)、設定出力制御処理(図87参照)、時間復帰出力制御処理(図88参照)を順次実行する(S901〜S904)。これらの処理については後述する。
その後、専用コントローラ611Aは、出力編集エリアと出力状態エリアとが同一内容か否かを判別する(S905)。S905において、出力編集エリアと出力状態エリアとが同一内容である場合、専用コントローラ611Aは、出力制御処理を終了する。一方、出力編集エリアと出力状態エリアとが異なる内容の場合、専用コントローラ611Aは、出力編集エリアの内容を出力状態エリアに上書き保存する(S906)。
次に、専用コントローラ611Aは、出力状態エリアのBit0〜Bit7の値で示されるデータ(外部出力用データ)を外部端子板制御LSI910に送信し、出力制御処理を終了する。この出力制御処理によれば、外部出力すべきコマンドに応じた外部出力用データが外部出力用通信LSI610Aから外部端子板制御LSI910へと効率よく送信される。
[メダルイン出力制御処理]
図85は、外部出力用通信LSIによるメダルイン出力制御処理を示す。図85に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、ソフトウェアタイマ(1)の状態が終了(−1)か否かを判別する(S921)。
S921において、ソフトウェアタイマ(1)の状態が終了(−1)でない場合、すなわち、ソフトウェアタイマ(1)の状態が停止(0)、計測(1)、予約(2)のいずれかにある場合、専用コントローラ611Aは、メダルイン出力制御処理を終了する。一方、ソフトウェアタイマ(1)の状態が終了(−1)の場合、専用コントローラ611Aは、出力編集エリアのBit6がオン状態(1)か否かを判別する(S922)。
S922において、出力編集エリアのBit6がオン状態でなくオフ状態(0)の場合、専用コントローラ611Aは、後述のS926に移る。一方、出力編集エリアのBit6がオン状態(1)の場合、専用コントローラ611Aは、出力編集エリアのBit6をオフ状態(0)にセットする(S923)。
次に、専用コントローラ611Aは、ソフトウェアタイマ(1)のタイマカウンタ値として10をセットする(S924)。このタイマカウンタ値は、メダルイン信号が外部出力される際のパルス幅に相当する。
次に、専用コントローラ611Aは、ソフトウェアタイマ(1)の状態を示す値として計測(1)をセットする(S925)。その後、専用コントローラ611Aは、メダルイン出力制御処理を終了する。
S926において、専用コントローラ611Aは、メダルインカウンタの値を1減算する。次に、専用コントローラ611Aは、メダルインカウンタの値が0か否かを判別する(S927)。
S927において、メダルインカウンタの値が0の場合、専用コントローラ611Aは、後述のS931に移る。一方、メダルインカウンタの値が0でない場合、専用コントローラ611Aは、出力編集エリアのBit6をオン状態(1)にセットする(S928)。
次に、専用コントローラ611Aは、ソフトウェアタイマ(1)のタイマカウンタ値として10をセットする(S929)。その後、専用コントローラ611Aは、ソフトウェアタイマ(1)の状態を示す値として計測(1)をセットする(S930)。その後、専用コントローラ611Aは、メダルイン出力制御処理を終了する。
S931において、専用コントローラ611Aは、ソフトウェアタイマ(1)の状態を示す値として停止(0)をセットする。その後、専用コントローラ611Aは、メダルイン出力制御処理を終了する。このようなメダルイン出力制御処理によれば、50msごとにオン状態(1)/オフ状態(0)となり、メダル投入枚数に応じたパルス数となるメダルイン信号の出力状態イメージが外部出力用データとして出力編集エリアに作成される。
[メダルアウト出力制御処理]
図86は、外部出力用通信LSIによるメダルアウト出力制御処理を示す。図86に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、ソフトウェアタイマ(2)の状態が終了(−1)か否かを判別する(S941)。
S941において、ソフトウェアタイマ(2)の状態が終了(−1)でない場合、すなわち、ソフトウェアタイマ(2)の状態が停止(0)、計測(1)、予約(2)のいずれかにある場合、専用コントローラ611Aは、メダルアウト出力制御処理を終了する。一方、ソフトウェアタイマ(2)の状態が終了(−1)の場合、専用コントローラ611Aは、出力編集エリアのBit5がオン状態(1)か否かを判別する(S942)。
S942において、出力編集エリアのBit5がオン状態でなくオフ状態(0)の場合、専用コントローラ611Aは、後述のS946に移る。一方、出力編集エリアのBit5がオン状態(1)の場合、専用コントローラ611Aは、出力編集エリアのBit5をオフ状態(0)にセットする(S943)。
次に、専用コントローラ611Aは、ソフトウェアタイマ(2)のタイマカウンタ値として10をセットする(S944)。このタイマカウンタ値は、メダルアウト信号が外部出力される際のパルス幅に相当する。
次に、専用コントローラ611Aは、ソフトウェアタイマ(2)の状態を示す値として計測(1)をセットする(S945)。その後、専用コントローラ611Aは、メダルアウト出力制御処理を終了する。
S946において、専用コントローラ611Aは、メダルアウトカウンタの値を1減算する。次に、専用コントローラ611Aは、メダルアウトカウンタの値が0か否かを判別する(S947)。
S947において、メダルアウトカウンタの値が0の場合、専用コントローラ611Aは、後述のS951に移る。一方、メダルアウトカウンタの値が0でない場合、専用コントローラ611Aは、出力編集エリアのBit5をオン状態(1)にセットする(S948)。
次に、専用コントローラ611Aは、ソフトウェアタイマ(2)のタイマカウンタ値として10をセットする(S949)。その後、専用コントローラ611Aは、ソフトウェアタイマ(2)の状態を示す値として計測(1)をセットする(S950)。その後、専用コントローラ611Aは、メダルアウト出力制御処理を終了する。
S951において、専用コントローラ611Aは、ソフトウェアタイマ(2)の状態を示す値として停止(0)をセットする。その後、専用コントローラ611Aは、メダルアウト出力中フラグをオフにセットし(S952)、メダルアウト出力制御処理を終了する。このようなメダルアウト出力制御処理によれば、50msごとにオン状態(1)/オフ状態(0)となり、メダル払出枚数に応じたパルス数となるメダルアウト信号の出力状態イメージが外部出力用データとして出力編集エリアに作成される。
[設定出力制御処理]
図87は、外部出力用通信LSIによる設定出力制御処理を示す。図87に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、チェーンフラグがオンで、かつ、メダルアウト出力中フラグがオフであるか否かを判別する(S961)。
S961において、チェーンフラグがオンでなく、又は、メダルアウト出力中フラグがオフでない場合、専用コントローラ611Aは、設定出力制御処理を終了する。一方、チェーンフラグがオンで、かつ、メダルアウト出力中フラグがオフの場合、専用コントローラ611Aは、チェーンフラグをオフにセットする(S962)。
次に、専用コントローラ611Aは、ソフトウェアタイマ(3)又はソフトウェアタイマ(4)の状態を示す値として予約(2)がセットされているか否かを判別する(S963)。
S963において、ソフトウェアタイマ(3)及びソフトウェアタイマ(4)の状態がいずれも予約(2)にセットされていない場合、専用コントローラ611Aは、後述のS970に移る。一方、ソフトウェアタイマ(3)又はソフトウェアタイマ(4)のいずれかの状態が予約(2)にセットされている場合、専用コントローラ611Aは、ソフトウェアタイマ(3)の状態が予約(2)にセットされているか否かを判別する(S964)。
S964において、ソフトウェアタイマ(3)の状態が予約(2)にセットされていない場合、専用コントローラ611Aは、後述のS967に移る。一方、ソフトウェアタイマ(3)の状態が予約(2)にセットされている場合、専用コントローラ611Aは、現時点で予約状態にあるソフトウェアタイマ(3)の状態を新たに計測(1)としてセットする(S965)。
次に、専用コントローラ611Aは、外部出力ONエリアのBit0〜Bit3の値を出力編集エリアのBit0〜Bit3にセットする(S966)。その後、専用コントローラ611Aは、設定出力制御処理を終了する。
S967において、専用コントローラ611Aは、ソフトウェアタイマ(4)の状態が予約(2)にセットされているか否かを判別する。
S967において、ソフトウェアタイマ(4)の状態が予約(2)にセットされていない場合、専用コントローラ611Aは、設定出力制御処理を終了する。一方、ソフトウェアタイマ(4)の状態が予約(2)にセットされている場合、専用コントローラ611Aは、現時点で予約状態にあるソフトウェアタイマ(4)の状態を新たに計測(1)としてセットする(S968)。
次に、専用コントローラ611Aは、外部出力OFFエリアのBit0〜Bit3の値を出力編集エリアのBit0〜Bit3にセットする(S969)。その後、専用コントローラ611Aは、設定出力制御処理を終了する。
S970において、専用コントローラ611Aは、チェーンエリアのBit0〜Bit3の値を出力編集エリアのBit0〜Bit3にセットする。その後、専用コントローラ611Aは、設定出力制御処理を終了する。このような設定出力制御処理によれば、メダルアウト信号の出力後に外部出力すべき外部出力ONチェーンコマンドあるいは外部出力OFFチェーンコマンドに係る外部信号1〜4の出力状態イメージが外部出力用データとして出力編集エリアに作成される。
[時間復帰出力制御処理]
図88は、外部出力用通信LSIによる時間復帰出力制御処理を示す。図88に示すように、外部出力用通信LSI610Aの専用コントローラ611Aは、ソフトウェアタイマ(3)の状態が終了(−1)か否かを判別する(S981)。
S981において、ソフトウェアタイマ(3)の状態が終了(−1)でない場合、専用コントローラ611Aは、後述のS984に移る。一方、ソフトウェアタイマ(3)の状態が終了(−1)の場合、専用コントローラ611Aは、外部出力ON計測後復帰エリアのBit0〜Bit3の値を出力編集エリアのBit0〜Bit3にセットする(S982)。
次に、専用コントローラ611Aは、ソフトウェアタイマ(3)の状態として停止(0)をセットする(S983)。その後、専用コントローラ611Aは、時間復帰出力制御処理を終了する。
S984において、専用コントローラ611Aは、ソフトウェアタイマ(4)の状態が終了(−1)か否かを判別する。
S984において、ソフトウェアタイマ(4)の状態が終了(−1)でない場合、専用コントローラ611Aは、後述のS987に移る。一方、ソフトウェアタイマ(4)の状態が終了(−1)の場合、専用コントローラ611Aは、外部出力OFF計測後復帰エリアのBit0〜Bit3の値を出力編集エリアのBit0〜Bit3にセットする(S985)。
次に、専用コントローラ611Aは、ソフトウェアタイマ(4)の状態として停止(0)をセットする(S986)。その後、専用コントローラ611Aは、時間復帰出力制御処理を終了する。
S987において、専用コントローラ611Aは、ソフトウェアタイマ(5)の状態が終了(−1)か否かを判別する。
S987において、ソフトウェアタイマ(5)の状態が終了(−1)でない場合、専用コントローラ611Aは、時間復帰出力制御処理を終了する。一方、ソフトウェアタイマ(5)の状態が終了(−1)の場合、専用コントローラ611Aは、セキュリティ計測後復帰エリアのBit4の値を出力編集エリアのBit4にセットする(S988)。
次に、専用コントローラ611Aは、ソフトウェアタイマ(5)の状態として停止(0)をセットする(S989)。その後、専用コントローラ611Aは、時間復帰出力制御処理を終了する。このような時間復帰出力制御処理によれば、外部出力ONコマンドや外部出力ONチェーンコマンド、あるいは外部出力OFFコマンドや外部出力OFFチェーンコマンドに係る外部信号1〜4、若しくはセキュリティ信号S1の出力後における出力状態イメージが外部出力用データとして出力編集エリアに作成される。
[メイン制御シーケンス(外部端子板制御LSI)]
図89は、外部端子板制御LSIによるメイン制御シーケンスを示す。図89に示すように、外部端子板制御LSI910の専用コントローラ911は、外部出力用通信LSI610Aと同様、、すなわち主基板通信LSI610と同様の初期設定処理を行う(S1001)。この初期設定処理によれば、予め定められた主基板6Aとの通信仕様に基づいて外部出力に係る各種の設定情報がセットされる。
次に、専用コントローラ911は、図90を参照して後述する受信割込み処理により受信したデータ(外部出力用データ)と出力エリアとが同一内容か否かを判別する(S1002)。出力エリアは、キャッシュメモリ913に設けられるワーキングエリアであって、出力状態エリア等と同様のビット列により構成される1バイトの領域であり、この出力エリアには、現時点で外部出力される各信号の出力状態がセットされる。
S1002において、受信データ(外部出力用データ)と出力エリアとが同一内容である場合、専用コントローラ911は、それらが異なる内容として認識されるまでS1002の処理を繰り返し実行する。一方、受信データ(外部出力用データ)と出力エリアとが異なる内容の場合、専用コントローラ911は、当該受信データを出力エリアにセットする(S1003)。
そして、専用コントローラ911は、出力エリアのデータをGPIOインターフェース924を通じて出力する(S1004)。その後、専用コントローラ911は、S1002に戻る。このような外部端子板制御LSI910のメイン制御シーケンスによれば、外部出力用通信LSI610Aから送信されてくる外部出力用データをそのまま出力するだで、各種のコマンドに応じた信号(メダルイン信号、メダルアウト信号、外部信号1〜4、セキュリティ信号)を適切な出力状態のパラレル信号としつつ適切な出力タイミングでホールコンピュータ1000へと外部出力することができる。外部出力された信号は、ホールコンピュータ1000により入力され、ホールコンピュータ1000では、入力した信号に基づいて遊技状態やセキュリティ状態が解析される。
[受信割込み処理(外部端子板制御LSI)]
図90は、外部端子板制御LSIによる受信割込み処理を示す。図90に示すように、外部端子板制御LSI910の専用コントローラ911は、外部出力用通信LSI610Aから送信された外部出力用データを受信し、当該外部出力用データを受信データとして取得する(S1021)。
次に、専用コントローラ911は、受信データ(外部出力用データ)に物理層エラーがあるか否かを判別する(S1022)。
S1022において、受信データに物理層エラーがないと判別すると、専用コントローラ911は、受信データをキャッシュメモリ913の受信バッファ領域に一時的に保存し(S1023)、この受信割込み処理を終了する。一方、受信データに物理層エラーがあると判別すると、専用コントローラ911は、何らエラー処理を行うことなく受信割込み処理を終了する。このように、本実施形態においては、物理層エラーがあると判別された受信データは、破棄されるようになっているが、物理層エラーがあることを示す情報とともに保存するようにしてもよい。
以上説明したように、本実施形態のパチスロ1によれば、次のような効果が得られる。
本実施形態のパチスロ1では、メインCPU601が時間情報を含むコマンドや時間情報を含まないコマンドを外部出力用通信LSI610Aへと送信するだけで、外部出力用通信LSI610Aがコマンドに時間情報が含まれるか否かを判別し、時間情報が含まれる場合は、その時間情報に基づいて所定時間を計時し、所定時間の計時中、汎用入出力方式に対応した外部出力用データが外部端子板制御LSI910へと送信される。一方、コマンドに時間情報が含まれない場合、汎用入出力方式でコマンドに応じた外部出力用データが外部端子板制御LSI910へと送信される。
その結果、外部端子板制御LSI910は、コマンドに時間情報が含まれていた場合、所定時間にわたり汎用入出力方式で外部出力用データに応じた外部信号1〜4やセキュリティ信号を外部出力し、コマンドに時間情報が含まれていない場合、汎用入出力方式で外部出力用データに応じた外部信号1〜4やセキュリティ信号を時間的な制約を受けずに速やかに外部出力する。これにより、メインCPU601は、シリアル通信方式に準じたコマンドを送信するだけでよく、その送信に際して時間計測を行うかの判断や時間計測自体を行う必要がないので、メインCPU601の通信用プログラムを大規模化することなくプログラム容量を抑えることができ、ひいては通信システムを構築する上での設計負担を軽減することができる。
また、本実施形態のパチスロ1では、メインCPU601から外部出力用通信LSI610Aへとコマンドが送信され、外部出力用通信LSI610Aから外部端子板制御LSI910へと外部出力用データが送信される。その際、外部出力用データは、AES回路614Aにより共通鍵暗号方式で暗号化され、さらに第2マンチェスター回路619Aで二相位相偏移変調方式により変調された上で送信される。
そして、外部端子板制御LSI910では、外部出力用通信LSI610Aから受信した外部出力用データが、第2マンチェスター回路919で二相位相偏移変調方式により復調され、さらに復調された外部出力用データがAES回路914で共通鍵暗号方式により復号化された後、外部出力用データに基づくパラレル信号が外部出力される。
これにより、本実施形態のパチスロ1によれば、二相位相偏移変調方式により外部出力用データを正しく安定的に送受信することができる。また、外部出力用通信LSI610Aと外部端子板制御LSI910との間で二相位相偏移変調方式により外部出力用データを送受信する際には、クロックレートをデータに埋め込むことができるので、非同期通信方式によっても効率よくデータの送受信を行うことができる。
また、本実施形態のパチスロ1では、メインCPU601がOFF時間情報を含む外部出力OFFコマンドや外部出力OFFチェーンコマンドに係るコマンドを外部出力用通信LSI610Aへと送信するだけで、外部出力用通信LSI610AがOFF時間情報に基づいて所定時間を計時し、その所定時間の計時中、汎用入出力方式に対応して外部出力オフ状態を指示する外部出力用データが外部端子板制御LSI910へと送信される。
その結果、外部端子板制御LSI910は、所定時間にわたり汎用入出力方式で外部出力OFFコマンドや外部出力OFFチェーンコマンドに係る外部出力用データに応じた外部信号1〜4のいずれかをオフ状態として外部出力する。その後、所定時間の計時が終了すると、汎用入出力方式に対応して外部出力の状態復帰を指示する外部出力用データが外部端子板制御LSI910へと送信される。その結果、外部端子板制御LSI910は、所定時間経過後に汎用入出力方式で元の状態に復帰された外部信号1〜4を外部出力する。
これによっても、メインCPU601は、シリアル通信方式に準じたコマンドを送信するだけでよく、その送信に際して時間計測を行う必要がないので、メインCPU601の通信処理による負荷を軽減することができる。
また、本実施形態のパチスロ1では、メインCPU601がメダルアウトコマンドに係るコマンドを送信し、例えばその直後に、外部出力チェーンコマンド、外部出力ONチェーンコマンド、外部出力OFFチェーンコマンドに係るコマンドを外部出力用通信LSI610Aへと送信することも可能である。
この場合、外部出力用通信LSI610Aがメダルアウトコマンドに係るコマンドに応じた汎用入出力方式に対応する外部出力用データを生成した後、外部出力チェーンコマンド、外部出力ONチェーンコマンド、外部出力OFFチェーンコマンドに係るコマンドに応じた汎用入出力方式に対応する外部出力用データを生成することとなる。
これにより、メダルアウトコマンドに対応する外部出力用データが外部端子板制御LSI910へと送信された後、外部出力チェーンコマンド、外部出力ONチェーンコマンド、外部出力OFFチェーンコマンドに対応する外部出力用データが外部端子板制御LSI910へと送信される。その結果、外部端子板制御LSI910は、汎用入出力方式でメダルアウト信号を外部出力した後、外部出力チェーンコマンド、外部出力ONチェーンコマンド、外部出力OFFチェーンコマンドに対応する外部信号1〜4を外部出力することとなる。
従って、メインCPU601は、シリアル通信方式に準じてメダルアウトコマンドに係るコマンドを送信した直後に、外部出力チェーンコマンド、外部出力ONチェーンコマンド、外部出力OFFチェーンコマンドに係るコマンドを送信することによっても、それぞれのコマンドに応じたメダルアウト信号及び外部信号1〜4を順序よく外部出力することができ、ひいては信号の入力先となるホールコンピュータ1000の処理負担を軽減することができる。
また、本実施形態のパチスロ1では、メインCPU601がメダルアウトコマンドに係るコマンド及び外部出力OFFチェーンコマンドに係るコマンドを外部出力用通信LSI610Aへと送信すると、外部出力用通信LSI610Aは、メダルアウトコマンドに係るコマンドに応じた汎用入出力方式に対応するメダルアウト信号を外部出力すべき旨の外部出力用データを生成した後、外部出力OFFチェーンコマンドに応じた汎用入出力方式に対応して指定された外部信号1〜4のオフ状態を指示するオフ指定の外部出力用データを生成する一方、当該外部信号1〜4のオン状態を指示するオン指定の外部出力用データを生成することとなる。
そして、メダルアウト信号に係る外部出力用データが外部端子板制御LSI910へと送信されると、外部端子板制御LSI910は、汎用入出力方式でメダルアウト信号を外部出力する。その後、外部出力用通信LSI610Aは、外部出力OFFチェーンコマンドに含まれる設定データに基づいて所定時間を計時し、その所定時間の計時中、汎用入出力方式に対応するオフ指定の外部出力用データを外部端子板制御LSI910へと送信する。
その結果、外部端子板制御LSI910は、所定時間にわたり汎用入出力方式でオフ指定された外部信号1〜4をオフ状態として外部出力する。そして、所定時間の計時が終了すると、汎用入出力方式に対応してオン指定とされた外部出力用データが外部端子板制御LSI910へと送信される。その結果、外部端子板制御LSI910は、所定時間経過後にオン指定された外部信号1〜4をオン状態として外部出力する。
これにより、メインCPU601は、シリアル通信方式に準じて直ちにメダルアウトコマンドに係るコマンド及び外部出力OFFチェーンコマンドを送信することによっても、メダルアウト信号の次に指定された外部信号1〜4が所定時間にわたりオフ状態で外部出力され、その後遅れて同一の外部信号1〜4がオン状態として外部出力されるので、メインCPU601の通信処理による負荷を軽減することができる。
また、本実施形態のパチスロ1では、メインCPU601がオン状態の時間設定値を指定した設定データを含む、外部出力ONコマンドや外部出力ONチェーンコマンド、さらにはセキュリティコマンドに係るコマンドを外部出力用通信LSI610Aへと送信する。
この場合、外部出力用通信LSI610Aは、そのような時間設定値に基づいて所定時間を計時し、その所定時間の計時中、汎用入出力方式に対応して外部出力オン状態を指示する外部出力ONコマンドや外部出力ONチェーンコマンド、さらにはセキュリティコマンドに対応する外部出力用データが外部端子板制御LSI910へと送信される。
その結果、外部端子板制御LSI910は、所定時間にわたり汎用入出力方式でオン指定の外部出力用データに応じた外部信号1〜4やセキュリティ信号を外部出力する。一方、所定時間の計時開始前や所定時間の計時が終了すると、汎用入出力方式に対応して外部出力の状態維持や状態復帰を指示する外部出力用データが外部端子板制御LSI910へと送信される。その結果、外部端子板制御LSI910は、所定時間の計時開始前や所定時間経過後に汎用入出力方式で元の出力状態として外部信号1〜4やセキュリティ信号を外部出力する。これにより、メインCPU601は、シリアル通信方式に準じたコマンドを送信するだけでよく、その送信に際して時間計測を行う必要がないので、メインCPU601の通信処理による負荷を軽減することができる。
また、本実施形態においては、メインCPU601から主基板通信LSI610へと固定データ長8Byteとして各種のコマンドが送信され、主基板通信LSI610から副基板通信LSI710へとより大きい固定データ長16Byteとしてコマンドを含む外部通信データが送信され、さらに副基板通信LSI710からサブCPU701へと17〜33Byteの可変データ長としてコマンドを含む内部通信データが送信される。
これにより、サブCPU701は、コマンドだけでなくその他の通信エラーに関する情報を含む内部通信データを受信することができる。すなわち、サブCPU701においては、メインCPU601からコマンドのみを受信する場合よりも受信データサイズが大きい内部通信データを受信するので、受信待ち時間を無駄に発生させないようにすることができ、ひいてはメインCPU601からサブCPU701への通信上におけるボトルネックを解消することができる。
また、サブCPU701が受信した内部通信データには、コマンド以外の情報として通信エラーに係る各種の情報が含まれるので、サブCPU701は、通信エラーの情報に基づいてそれに関連する処理を実行することができ、効率よく作動させることができる。
また、主基板通信LSI610及び副基板通信LSI710は、コマンド及び通信データを例えば1Byteの伝送単位ごとに小刻みに検出しながら受信することができる一方、サブCPU701は、そのような伝送単位に制限されることなく、より大きい例えば16Byteというある程度一括したデータ量ごとに通信データをまとめて検出しながら受信することができる。これにより、主基板通信LSI610及び副基板通信LSI710は、周期的に効率よくデータを送受信することができ、サブCPU701は、ある程度まとまったデータ量として通信データを効率よく受信することができる。
また、本実施形態においては、メインCPU601から主基板通信LSI610へと通信速度19200bps(第1の通信速度)でコマンドが送信され、主基板通信LSI610から副基板通信LSI710へとより速い通信速度115200bps(第2の通信速度)でコマンドを含む通信データが送信される。さらに、副基板通信LSI710からサブCPU701へと通信速度115200bps(第2の通信速度)でコマンドを含む通信データが送信される。
このとき、主基板通信LSI610では、コマンドを所定の伝送単位となる1Byteごとに検出するための受信待ち時間(第1の受信待ち時間)が第1の通信速度に基づいて2.5msecと算出され、算出された第1の受信待ち時間(2.5msec)に基づいて所定の伝送単位ごとにコマンドが検出されることで受信される。一方、副基板通信LSI710では、コマンドを含む通信データを所定の伝送単位となる1Byteごとに検出するための受信待ち時間(第2の受信待ち時間)が第2の通信速度に基づいて約0.4msecと算出され、算出された第2の受信待ち時間(約0.4msec)に基づいて所定の伝送単位ごとに通信データが検出されることで受信される。
すなわち、相対的に低スペックのメインCPU601に応じた通信仕様に基づいて主基板通信LSI610がコマンドを受信する第1の通信速度と、相対的に高スペックのサブCPU701に応じた通信仕様に基づいて副基板通信LSI710が通信データを受信する第2の通信速度とが互いに異なる速度で設定されていても、それぞれの通信速度に適した第1の受信待ち時間(2.5msec)及び第2の受信待ち時間(約0.4msec)を使用することができる。
これにより、通信データを最後に受信するサブCPU701においては、通信データを受信する際に受信待ち時間に係る無駄時間をできる限り生じさせないようにし、通信上のボトルネックを解消することができ、サブCPU701を効率よく作動させることができる。
また、サブCPU701に通信データが達する手前の副基板通信LSI710おける第2の受信待ち時間(約0.4msec)が主基板通信LSI610における第1の受信待ち時間(2.5msec)よりも短いので、その分、サブCPU701における通信データの受信処理を軽減することができる。
また、本実施形態によれば、相対的に低スペックで通信速度が低速とされるメインCPU601と、相対的に高スペックで通信速度が高速とされるサブCPU701とを備えたパチスロ1に最適な通信システムを実現することができる。
また、本実施形態においては、メインCPU601から主基板通信LSI610へとコマンドが送信され、主基板通信LSI610から副基板通信LSI710へとコマンドを含む通信データが送信され、さらに副基板通信LSI710からサブCPU701へとコマンドを含む通信データが送信される。
その際、主基板通信LSI610は、コマンドの受信に際してサイズ不足や物理層エラー(第1の通信エラー)を検出すると、それらを示すデータサイズや主基板通信LSI受信ステータス(第1エラー情報)をコマンドに該当するパケットデータと共に通信データに含めて送信する。また、副基板通信LSI710は、主基板通信LSI610からの通信データの受信に際して物理層エラーやサイズ不足を含む論理エラー(第2の通信エラー)を検出すると、それらを示す副基板通信LSI受信ステータスや副基板通信LSIパケット種別(第2エラー情報)をコマンド(パケットデータ)及び上記第1エラー情報と共に通信データに含めて送信する。
さらに、サブCPU701は、通信データの受信に際してCRCエラーやタイムアウト発生に係るエラー(第3の通信エラー)を検出すると、それらを示すエラー情報として‘COM3 ERR1’、‘COM3 ERR2’(第3エラー情報)を登録する。また、サブCPU701は、副基板通信LSI710から受信した通信データに基づき、主基板通信LSI610に係るエラー情報として‘COM1 ERR1’、‘COM1 ERR2’(第1エラー情報)を登録し、副基板通信LSI710に係るエラー情報として‘COM2 ERR1’、‘COM2 ERR2’、‘COM2 ERR3’(第2エラー情報)を登録する。
これにより、サブCPU701は、通信エラーとして区別して登録された‘COM1 ERR1’、‘COM1 ERR2’、‘COM2 ERR1’、‘COM2 ERR2’、‘COM2 ERR3’、‘COM3 ERR1’、‘COM3 ERR2’に基づいて通信エラーの原因や発生箇所を詳細に特定・解析することができる。
また、副基板通信LSI710は、コマンド等をバイナリデータとして通信データに含ませるとともに、当該バイナリデータの送信開始を示すSTXや、そのバイナリデータ内にある制御データを示すDLEといった制御キャラクタも通信データに含ませた上で当該通信データをサブCPU701へと送信する。すなわち、副基板通信LSI710とサブCPU701との間では、コード変換が必要なテキストデータに比べてデータサイズが比較的小さいバイナリデータによりコマンドが送受信される。
これにより、サブCPU701においては、比較的小さいサイズのバイナリデータを、STXやDLEという制御キャラクタに基づいて検出しつつ、所定のデータ量を取得したか否かを判別することによって受信することができるので、受信待ち時間をできる限り生じさせないようにすることができ、副基板通信LSI710とサブCPU701との間において効率よくデータ通信を行うことができる。なお、本実施形態においては、副基板通信LSI710とサブCPU701との間でバイナリデータと共に制御キャラクタを通信データに含めて送信しているが、例えば主基板通信LSI610と副基板通信LSI710との間でバイナリデータと共に制御キャラクタを通信データに含めて送信するようにしてもよい。
また、本実施形態においては、メインCPU601から主基板通信LSI610へとコマンドが送信され、主基板通信LSI610から副基板通信LSI710へとコマンドを含む通信データが、AES暗号方式により暗号化され、さらにマンチェスター変調方式により変調された上で送信される。副基板通信LSI710では、主基板通信LSI610から受信した通信データが、マンチェスター変調方式により復調され、さらに復調された通信データがAES暗号方式により復号化された後、サブCPU701へと送信される。これにより、本実施形態では、マンチェスター変調方式により通信データを正しく安定的に送受信することができる。
また、マンチェスター変調方式でやり取りされる通信データには、クロックレートを埋め込むことができるので、主基板6Aと副基板7Aとの間にクロック信号を生成するためのデバイス等を別途設ける必要がなくなることから、通信に係る伝送媒体を光ファイバーケーブル100としても容易に簡素化することができる。
また、主基板6Aと副基板7Aとの間でクロック信号を光学的に生成せずとも光ファイバーケーブル100を介して通信データをそのまま送受信することができ、デジタルデータの変調回路として安価なマンチェスター回路を用いることからも、安価なデバイス及び伝送路によって主基板6Aと副基板7Aとを接続することができる。
本発明の他の実施形態としては、図91〜97に示すような構成でもよい。なお、以下の説明において、先述した実施形態によるものと同一又は類似の構成要素については、同一符号を付してその説明を省略する。
図91は、本発明の他の実施形態に係る遊技機の主基板と副基板との接続形態を示す。図91に示すように、本実施形態においては、第3マンチェスター回路620,720は、第1SPI617,717と組み合わせて用いられ、この第1SPI617,717を通じてデータを送受信し得るように構成されている。また、本実施形態では、第3マンチェスター回路620と第3マンチェスター回路720とは、互いに電気的に通信用ケーブルを介して接続されている。
本実施形態の主基板6Aにおいては、メインCPU601からのコマンドを含むデータ(パケットデータ)が、第1UART601Aから第1UART615に供給され、この第1UART615で物理層エラーの検出等が行われた後、AES回路614で暗号化され、さらにマスターとなる第1SPI617を通じて第3マンチェスター回路620に供給され、この第3マンチェスター回路620で変調されるように構成されている。このようにして変調されたデータは、コマンドを含むシリアルデータとされ、通信用ケーブルを通じて副基板7Aへと送信される。
副基板7Aにおいては、主基板6Aから送信されたコマンドを含むシリアルデータが、通信用ケーブルを通じて第3マンチェスター回路720に供給され、この第3マンチェスター回路720で復調された後、スレーブとなる第1SPI717を通じてAES回路714に供給され、さらにAES回路714において復号化された後、第1UART715を通じてUART701Aに供給されることにより、サブCPU701がメインCPU601からのコマンドを受信し得るようになっている。
図92は、本発明の他の実施形態に係る遊技機の主基板と副基板との接続形態を示す。図93は、図92に示す接続形態でのデータの流れを示す説明図である。本実施形態におおいては、図92に示すように、マンチェスター変調及び復調が行われないように構成されている。具体的にいうと、第2UART616,716は、マンチェスター回路等と組み合わされて使用されず、単独でデータを送受信し得るように構成されている。
本実施形態の主基板6Aにおいては、メインCPU601からのコマンドを含むデータ(パケットデータ)が、第1UART601Aから第1UART615に供給され、この第1UART615で物理層エラーの検出等が行われた後、AES回路614で暗号化され、コマンドを含むシリアルデータとして第2UART616を通じて副基板7Aへと送信される。
副基板7Aにおいては、主基板6Aから送信されたコマンドを含むシリアルデータが、第6UART716を通じてAES回路714に供給され、さらにAES回路714において復号化された後、第1UART715を通じてUART701Aに供給されることにより、サブCPU701がメインCPU601からのコマンドを受信し得るようになっている。
また、図93に示すように、メインCPU601から主基板通信LSI610へと送信されるデータは、8Byteの平文からなるパケットデータであり、その際の通信速度(ボーレート)は、19200bpsとされる。主基板通信LSI610から副基板通信LSI710へと送信されるデータは、暗号化された16Byteのデータであり、その際の通信速度は、115200bpsとされる。副基板通信LSI710からサブCPU701へと送信されるデータは、AES復号化された16Byteの平文データであり、その際の通信速度は、115200bpsとされる。
図94は、本発明の他の実施形態に係る遊技機の主基板と副基板との接続形態を示す。図95は、図94に示す接続形態でのデータの流れを示す説明図である。本実施形態におおいては、図94に示すように、AES暗号化及び復号化が行われないように構成されている。具体的にいうと、主基板通信LSI610及び副基板通信LSI710においては、主として第4マンチェスター回路621,721が使用され、この第4マンチェスター回路621,721が単独でデータを送受信し得るように構成されている。
本実施形態の主基板6Aにおいては、メインCPU601からのコマンドを含むデータ(パケットデータ)が、第1UART601Aから第4マンチェスター回路621に供給され、この第4マンチェスター回路621から直接副基板7Aへと送信される。
副基板7Aにおいては、主基板6Aから送信されたコマンドを含むデータが、第4マンチェスター回路721を通じて直接取り込まれ、この第4マンチェスター回路721からUART701Aへと供給されることにより、サブCPU701がメインCPU601からのコマンドを受信し得るようになっている。
また、図95に示すように、メインCPU601から主基板通信LSI610へと送信されるデータは、8Byteの平文からなるパケットデータであり、その際の通信速度(ボーレート)は、19200bpsとされる。主基板通信LSI610から副基板通信LSI710へと送信されるデータは、マンチェスター変調された8Byteの平文データであり、その際の通信速度は、19200bpsとされる。副基板通信LSI710からサブCPU701へと送信されるデータは、マンチェスター復調された8Byteの平文データであり、その際の通信速度は、19200bpsとされる。
図94及び図95に示す実施形態においては、メインCPU601から主基板通信LSI610へとコマンドが送信され、主基板通信LSI610から副基板通信LSI710へとコマンドを含む通信データがマンチェスター変調方式により変調された上で直接送信される。副基板通信LSI710では、主基板通信LSI610から受信した通信データがマンチェスター変調方式により復調された後、サブCPU701へとそのまま送信される。このような構成では、マンチェスター変調方式により速やかにデータを変調及び復調しながら通信データを正しく安定的に送受信することができる。
図96は、本発明の他の実施形態に係る遊技機(パチンコ)の外観を示す斜視図である。図97は、図96に示す遊技機の主制御回路及び副制御回路の構成を示すブロック図である。本発明は、図96に示すようなパチンコ1’にも適用可能である。図97に示すように、パチンコ1’は、主制御回路60に接続される特有の構成要素として、特別図柄表示装置80、普通図柄表示装置81、特別図柄保留表示装置82、普通図柄保留表示装置83、カウントセンサ84、一般入賞球センサ85、通過球センサ86、始動入賞球センサ87、普通電動役物ソレノイド88、大入賞口ソレノイド89、バックアップクリアスイッチ90、払出・発射制御回路350、払出装置34A、発射装置35B、カードユニット34C、貸し出し用操作部34D等を有する。このようなパチンコ1’においても、液晶表示装置10やスピーカ48,49、及びランプ20等が副制御回路70に接続されている。そして、主制御回路60及び副制御回路70は、主基板通信LSI610及び副基板通信LSI710を備えており、これらの主基板通信LSI610及び副基板通信LSI710は、先述した実施形態によるものと同様に互いに接続されている。また、主制御回路60が形成された主基板は、外部集中端子板9Aに対しても先述した実施形態によるものと同様に直接接続されている。
なお、本発明は、上述した各実施形態に限定されるものではない。
各実施形態において例示した通信速度やタイムアウト値としての受信待ち時間、伝送単位等に係る数値は、あくまでも一例として挙げたものであり、これらの数値は、CPUのスペックや通信LSIの仕様に応じて適宜変更可能である。
通信手段は、通信LSIに限らず、集積回路の規模に応じて例えばICにより構成してもよい。
通信手段は、主制御回路と副制御回路との間の通信等に限らず、例えばホールコンピュータと副制御回路との間で通信を行うものとして設けてもよい。
上述した実施形態では、外部出力用通信LSI610AでメインCPU601からの受信データを変換して外部端子板制御LSI910へと出力しているが、外部出力用通信LSIは、メインCPUからの受信データを変換することなく外部端子板制御LSIへと送信し、外部端子板制御LSIでコマンドに対応した各種の処理を行い、ホールコンピュータへと信号を出力するようにしてもよい。
また、上述した実施形態では、図73〜90を参照して外部出力用通信LSI610A及び外部端子板制御LSI910の各処理について説明したが、このような各処理に限らず、ホールコンピュータへの出力として、図13〜21に示すような信号を出力するための処理が実行されればよい。