(57)【要約】【課題】ノイズ対策を万全化した遊技機を提供する。【解決手段】無限ループ状に実行されるメインルーチン（ＳＴ５〜ＳＴ１４）と、実行中の他の処理を中断して開始される音声出力割込みルーチン（ＳＴＯＵＴ１〜ＳＴＯＵＴ１２）と、自らの計時動作の結果に応じて遊技動作を強制的に初期状態に戻すウォッチドッグタイマＷＤＴとを備えると共に、割込みルーチンでオン状態にされるフラグ値ＷＤＦＬＧがオン状態となっている場合には、ウォッチドッグタイマＷＤＴにクリア信号を出力する処理をメインルーチンに設けた。【選択図】      図１６
2006102554.tif 000002
【特許請求の範囲】
【請求項１】
無限ループ状に実行されるメイン処理部と、実行中の他の処理を中断して開始される一種又はそれ以上の割込み処理部と、自らの計時動作の結果に応じて制御動作を強制的に初期状態に戻すリセット部とを備えると共に、前記割込み処理部の動作が実行されたことを条件に、前記リセット部の計時動作を初期状態に戻すリセット禁止手段を設けたことを特徴とする遊技機。
【請求項２】
前記割込み処理部を二種類以上備え、前記リセット禁止手段は、複数の割込み処理部の動作が実行されたことを条件に、前記リセット部の計時動作を初期状態に戻している請求項１に記載の遊技機。
【請求項３】
予め所定領域に記憶した検査データの正当性を、その後も繰返し判定する判定手段と、
前記判定手段によって正当でないと判定された場合には、前記リセット禁止手段の動作を回避させる回避手段とを
前記メイン処理部に設けている請求項１又は２に記載の遊技機。
【請求項４】
遊技動作を中心的に制御する主制御部と、前記主制御部からの制御コマンドに基づいて個別的な動作を実現するサブ制御部とで構成されている請求項１〜３の何れかに記載の遊技機。
【請求項５】
遊技動作を中心的に制御する主制御部と、前記主制御部からの制御コマンドに基づいて個別的な動作を実現する複数のサブ制御部とで構成され、前記メイン処理部、前記割込み処理部、及び前記リセット部は、前記主制御部と、前記サブ制御部の全部又は一部に設けられている請求項１〜４の何れかに記載の遊技機。
【請求項６】
遊技動作を中心的に制御する主制御部と、前記主制御部からの制御コマンドに基づいて音声演出を実現する音声制御部とを備える遊技機において、前記音声制御部は、無限ループ状に実行されるメイン処理と、実行中の他の処理を中断して音声信号を出力する割込み処理とを備えて構成され、
前記割込み処理は、出力すべき音声信号の有無に係わらず定常的に起動されるようになっていることを特徴とする遊技機。
【請求項７】
前記割込み処理は、受信した制御コマンドに対応する音声信号を出力する一方、この音声信号を出力し終えた後は、無音信号を音声回路に出力しつづけるよう機能している請求項６に記載の遊技機。
【請求項８】
無限ループ状に実行されるメイン処理部と、実行中の他の処理を中断して一単位分の音声出力処理を実行する割込み処理部とを備え、
計時タイマが所定の上限値に達すると、前記計時タイマが初期値に戻されると共に前記割込み処理が起動されるよう構成されている請求項６又は７に記載の遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パチンコ機、アレンジボール機、雀球遊技機、回胴式遊技機などの遊技機に関し、特に、万全のノイズ対策を施した遊技機に関するものである。
【背景技術】
【０００２】
遊技機は、一般に、機能別に分離された複数の回路基板で構成され、複数の回路基板が制御コマンドに基づいて同期して動作することによって、全体として複雑な遊技動作を実現している。このような遊技機では、制御コマンドを出力する主制御基板と、主制御基板からの制御コマンドに基づいて動作する複数のサブ制御基板とで構成されるのが一般的である。
【０００３】
サブ制御基板としては、例えば、液晶ディスプレイを制御する図柄制御基板、払出モータの駆動によって遊技球の払出動作を制御する払出制御基板、ＬＥＤランプなどを点滅させるランプ制御基板、スピーカを駆動する音声制御基板などが存在する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、遊技ホールには多数の遊技機が近接状態で設置されており、しかも、ソレノイドやモータなどを内蔵するそれらの遊技機が一斉に動作していので、少なからずノイズ環境にある。そのため、制御コマンドがノイズの影響でビット化けしたり、或いはＲＡＭのワークエリアのデータがビット化けするおそれもあった。
【０００５】
そのような場合、例えば、スピーカから不意に意味不明の音声が発生されることもあり、遊技者の大きな不信感を与えるおそれがある。特に、スピーカを大型化して迫力ある音声演出をしているような場合には、耐えられないほどの大音響のノイズ音が長時間にわたって発生する可能性もあり、万が一にも、そのような不測の事態が発生しないような万全の対策が必要である。
【０００６】
本発明は、上記の問題点に鑑みてなされたものであって、ノイズ対策を万全化した遊技機を提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に係る発明は、無限ループ状に実行されるメイン処理部と、実行中の他の処理を中断して開始される一種又はそれ以上の割込み処理部と、自らの計時動作の結果に応じて制御動作を強制的に初期状態に戻すリセット部とを備えると共に、前記割込み処理部の動作が実行されたことを条件に、前記リセット部の計時動作を初期状態に戻すリセット禁止手段を設けたことを特徴とする。
【０００８】
リセット禁止手段は、メイン処理部と割込み処理部のいずれに設けても良いが、好適にはメイン処理部に設けられる。この場合、割込み処理部の動作が実行されたことは、割込み処理部の最終段階で設定されるフラグ値などで判定される。
【０００９】
本発明は、好適には、割込み処理部を二種類以上備え、前記リセット禁止手段は、複数の割込み処理部の動作が実行されたことを条件に、前記リセット部の計時動作を初期状態に戻している。また、予め所定領域に記憶した検査データの正当性を、その後も繰返し判定する判定手段と、前記判定手段によって正当でないと判定された場合には、前記リセット禁止手段の動作を回避させる回避手段とを前記メイン処理部に設けるのも好適である。検査データとしては、特に限定されないが、チェックサム用のサム値や、ＲＯＭの複数番地のデータをＲＡＭエリアにコピーしたものが好適に活用される。なお、前記リセット禁止手段の動作を回避させるに先だってＣＰＵを割込み受付禁止状態に設定するのが好適である。
【００１０】
また、本発明は、遊技動作を中心的に制御する主制御部と、前記主制御部からの制御コマンドに基づいて個別的な動作を実現するサブ制御部とで構成されているのが好ましい典型例であり、遊技動作を中心的に制御する主制御部と、前記主制御部からの制御コマンドに基づいて個別的な動作を実現する複数のサブ制御部とで構成され、前記メイン処理部、前記割込み処理部、及び前記リセット部は、前記主制御部と、前記サブ制御部の全部又は一部に設けられていると更に好適である。
【００１１】
一方、請求項６に係る発明は、遊技動作を中心的に制御する主制御部と、前記主制御部からの制御コマンドに基づいて音声演出を実現する音声制御部とを備える遊技機において、前記音声制御部は、無限ループ状に実行されるメイン処理と、実行中の他の処理を中断して音声信号を出力する割込み処理とを備えて構成され、前記割込み処理は、出力すべき音声信号の有無に係わらず定常的に起動されるようになっている。この発明では、常に音声回路が駆動されるので、異常音が長時間にわたって発生する可能性が事実上ない。ここで、前記割込み処理は、受信した制御コマンドに対応する音声信号を出力する一方、この音声信号を出力し終えた後は、無音信号を音声回路に出力しつづけるよう機能しているのが好適である。
【発明の効果】
【００１２】
以上説明したように、本発明によれば、ノイズなどの影響を事実上排除した万全のノイズ対策を施した遊技機を実現することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の遊技機を実施例に基づいて更に詳細に説明する。図１７は、実施例に係るパチンコ機の全体構成を図示したブロック図である。図示のパチンコ機は、遊技動作を中心的に制御する主制御基板１と、液晶ディスプレイ８に表示されたキャラクタや図柄を変動させる図柄制御基板２と、スピーカを駆動して音声演出を実現する音声制御基板３と、ランプ類の点滅動作させてランプ演出を実現するランプ制御基板４と、遊技球を払出す払出制御基板５と、払出制御基板５に制御されて遊技球を発射する発射制御基板７と、ＡＣ２４Ｖを受けて装置各部に直流電圧を供給する電源基板６とを中心に構成されている。
【００１４】
主制御基板１、図柄制御基板２、音声制御基板３、ランプ制御基板４、及び払出制御基板５は、それぞれワンチップマイコンを備えるコンピュータ回路で構成されており、各サブ制御基板２〜５は、主制御基板１からの制御コマンドに基づいて上記した個別的な制御動作を実現している。なお、この実施例の場合には、制御コマンドは２バイト長であり、一方向のパラレル通信方式によって伝送されているが、特にこの構成に限定されるものではない。
【００１５】
図１８は、音声制御基板３の回路構成を示すブロック図である。図示の通り、音声制御基板３は、ワンチップマイコン１０と、ワンチップマイコン１０から出力される音声アナログ信号（効果音ＢＧＭと背景音ＳＥのミキシング音）を増幅するアンプ１１と、ウォッチドッグタイマ（ＷＤＴ）１２とを中心的に備えている。
【００１６】
ワンチップマイコン１０は、主制御基板１からの制御コマンドを受ける入力ポート１３と、ウォッチドッグタイマ１２にクリアパルスを出力する出力ポート１４と、音声制御基板３の動作を制御するＣＰＵコア１５と、システムクロックに基づいて各種の信号を出力するＴＰＵ（Ｔｉｍｅｒ  Ｐｕｌｓｅ  Ｕｎｉｔ）１６と、ＴＰＵ１６からの内部割込み信号ＣＨ０，ＣＨ１や主制御基板１からのストローブ信号ＳＴＢ（外部割込み信号）を受ける割込みコントローラ１７と、ソフトウェア的に復元されたＰＣＭ音声データを受けて音声アナログ信号を出力するＤ／Ａコンバータ１８と、制御プログラムやＡＤＰＣＭデータ（ａｄａｐｔｉｖｅ  ｄｉｆｆｅｒｅｎｔｉａｌ  ｐｕｌｓｅ  ｃｏｄｅ  ｍｏｄｕｌａｔｉｏｎ）を固定的に記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１９と、制御プログラムの作業領域（ワークエリア）として使用されるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０とを中心に構成されている。
【００１７】
なお、出力ポート１４から出力されるべきクリアパルスが所定時間以上途絶えると、ウォッチドッグタイマ１２からＣＰＵコア１５に対してリセット信号が出力され、ＣＰＵコア１５がリセット状態となって制御プログラムを最初から再実行されることになる。
【００１８】
図１８に示すように、割込みコントローラ１７には、ＴＰＵ１６からの内部割込み信号ＣＨ０，ＣＨ１と、主制御基板１からのストローブ信号ＳＴＢとが供給されるが、これらは共に禁止（マスク）可能な割込み信号となっている。ここで、ストローブ信号ＳＴＢは、主制御基板１から制御コマンドと共に出力される信号であり、割込みコントローラ１７にはＩＲＱ（Ｉｎｔｅｒｒｕｐｔ  Ｒｅｑｕｅｓｔ）信号として供給され、これを受けた割込みコントローラ１７は、ＣＰＵコア１５に割込み信号ＩＮＴを供給する共に、割込み処理ルーチンを特定する割込みベクトルを出力している。
【００１９】
ＴＰＵ１６のチャネル０とチャネル１からは、それぞれ内部割込み信号が出力されるよう設定されているが、チャネル１からの割込み信号ＣＨ１は４ｍＳ毎に発せられるよう設定され、チャネル０からの割込み信号ＣＨ０は、制御プログラムによって個々的に設定されたサンプリング周期（τ）毎に発せられるように設定されている。ここでサンプリング周期とは、Ｄ／Ａコンバータ１８から出力される音声アナログ信号の出力間隔（τ）を意味する。
【００２０】
そして、Ｄ／Ａコンバータ１８から出力される個々の音声メッセージに応じて、適宜にサンプリング周期を変更できるよう、サンプリング周期（τ）は制御プログラムによって個々的に設定される。例えば、８ＫＨｚ、１６ＫＨｚ、３２ＫＨｚのサンプリング周波数で取得されてＲＯＭ１９に記憶されている音声データ（ＡＤＰＣＭデータ）を再現する場合には、それぞれ１２５μＳ、６２．５μＳ、３１．２５μＳの時間間隔（τ）で割込み信号ＣＨ０が発せられることにより、そのＡＤＰＣＭデータがＰＣＭデータに変換され、サンプリング周波数に対応するタイミングでＤ／Ａコンバータ１８から出力されることになる。
【００２１】
これらの点に関連して、ＴＰＵ１６の動作を更に詳細に説明する。ＴＰＵ１６（日立製作所）には、ＴＣＮＴ（タイマ・カウンタ）と、ＴＧＲ（タイマ・ジェネラル・レジスタ）と、ＴＳＲ（タイマ・ステイタス・レジスタ）と、ＴＩＥＲ（タイマ・インターラプト・レジスタ）その他が、各チャネル毎に設けられている。そして、この実施例では、ＴＧＲ（タイマ・ジェネラル・レジスタ）にタイマ上限値を設定しておき、ＴＣＮＴ（タイマ・カウンタ）のカウントアップ動作を開始させ、システムクロックの同期してカウントアップされたＴＣＮＴ値がＴＧＲの上限値に一致すると、ＴＰＵ１６のＴＳＲ（タイマ・ステイタス・レジスタ）のＴＧＦフラグがオン状態になるようになっている。なお、この動作に合わせて、ＴＣＮＴ（タイマ・カウンタ）はゼロクリアされる。
【００２２】
ここで、ＴＩＥＲ（タイマ・インターラプト・レジスタ）が割込み許可状態に設定されている場合には、チャネル０又はチャネル１の内部割込みが発生し、割込みコントローラ１７に伝えられることになる。なお、割込みコントローラ１７は、割り込み優先度に応じて、ＣＰＵコア１５に対して割込み信号ＩＮＴを発生するが、ＣＰＵコア１５が割込み受け付け状態ＥＩ（Ｅｎａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ）であれば、割込みベクトルで特定されるアドレスに記憶されている割込み処理プログラムが実行されることになる。
【００２３】
したがって、例えば、８ＫＨｚ、１６ＫＨｚ、３２ＫＨｚのサンプリング周波数の音声データを再現する場合には、システムクロックの周波数が２０ＭＨｚである実施例では、チャネル０のＴＧＲ（タイマ・ジェネラル・レジスタ）に、それぞれ、タイマ上限値として、２００００／８、２００００／１６、２００００／３２８を設定すれば良いことになる。すると、ＴＣＮＴがゼロクリアされた後、カウントアップ動作の開始がソフト的に指示された場合、その後、２０ＭＨｚの速度でＴＣＮＴの値が更新され、上記した所定回数のカウントアップ動作の後に、ＴＰＵ１６のＴＳＲ（タイマ・ステイタス・レジスタ）のＴＧＦフラグがオン状態となる。
【００２４】
先に説明したように、ＴＧＦフラグがオン状態となると、ＴＩＥＲ（タイマ・インターラプト・レジスタ）がオン状態であることを条件に、ＣＰＵコア１５に割込み信号ＩＮＴが出力されるが、ＴＰＵ１６のＴＳＲ（タイマ・ステイタス・レジスタ）のＴＧＦフラグは、割込み処理プログラムにおいて、オン状態からオフ状態に戻されることになる。その他、ＴＰＵ１６のＴＩＥＲ（タイマ・インターラプト・レジスタ）や、割込みコントローラ１７のＩＥＲ（ＩＲＱ・イネーブル・レジスタ）についても、ソフト的にオン状態又はオフ状態にされて、割込み動作が適宜に管理されている。
【００２５】
この実施例では、このようなＴＰＵ１６のチャネル０（ＣＨ０）からの内部割込みを利用して、音声演出を実現している。図１９は、図６に示すメインルーチン（詳細は後述する）のうち、チャネル０の割込みに関する部分を抽出したフローチャートである。図示の通り、電源投入時のように、ＣＰＵがリセットされた後は、ＣＰＵが割込み受け付け禁止状態（ＤＩ状態ｄｉｓｅｎａｂｌｅ  ｉｎｔｅｒｒｕｐｔ）となり、（１）ＴＧＲにカウンタ上限値（８ＫＨｚに対応する値）が設定されると共に、（２）ＴＣＮＴがゼロクリアされた後にカウントアップ動作が開始され、（３）チャネル０のＴＩＥＲ（タイマ・インターラプト・イネーブル・レジスタ）がオン状態に設定される（ＳＴ４）。
【００２６】
この結果、ＣＰＵが割込み許可状態（ＥＩ状態ｅｎａｂｌｅ  ｉｎｔｅｒｒｕｐｔ）に設定された後（ＳＴ５）、１２５μＳ（＝１／８ＫＨｚ）毎にチャネル０の内部割込みが生じることになる。但し、最初の段階で、ワークエリアのＳＮＤＤＡＴＡ番地に無音データが格納されており（ＳＴ３）、また、ＢＧＭ音やＳＥ音のためのＳＮＤＦＬＧ番地が００Ｈに設定されているので（ＳＴ３）、Ｄ／Ａコンバータなどの音声回路は無音状態で駆動される。ＳＮＤＤＡＴＡ番地やＳＮＤＦＬＧ番地の意義については後述するが、本実施例は、音声演出をしない場合でも、必ず音声回路を無音状態で駆動しており、かかる特徴的な構成によってノイズなどによる異常音の発生を有効に防止している。
【００２７】
すなわち、音声回路を非駆動状態（例えば、チャネル０の割込みを発生させない状態）に維持している場合には、ノイズなどの影響でＤ／Ａコンバータの入力値が異常レベルに維持されて、かなりの時間にわたって大音響が出力され続ける弊害も考えられるが、本実施例では、定常的にチャネル０の割込みが発生しているので、不要時にはＳＮＤＤＡＴＡ番地が繰返し無音データに書き直されることになり（図１４のＳＴＯＵＴ１１’他）、このようなトラブルがあり得ない。
【００２８】
図１〜図５は、主制御基板１から受信する制御コマンドと、音声制御基板３から発せられる音声情報との関係を説明するため参照テーブルを例示したものである。この実施例では、主制御基板１から伝送されてくる２バイト長の制御コマンドに対応して、スピーカＳＰからは効果音（ＳＥ）と背景音（ＢＧＭ）をミキシングした音声情報が出力されるが、最初に、この一連の処理を概略的に説明する。
【００２９】
図１（ａ）に示すように、受信した２バイト長の制御コマンドに対応して、１バイト長のＦｉコマンド（完全情報Ｆｕｌｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ  Ｃｏｍｍａｎｄ）が特定される。ここでＦｉコマンドとは、一連の音声情報を完全に特定するものであり、例えば、図柄始動口への入賞に合わせて液晶ディスプレイ８において図柄変動の動作が開始される場合には、その図柄変動の動作に合わせて、（１）「今回は期待できるよ！」→（２）・・・・（無音状態）→（３）「ほーらリーチだ！」→（４）・・・・（無音状態）→（５）「やったー！。大当りー！！」のような一連の効果音ＳＥを、背景音ＢＧＭ（通常は音楽）と共に特定するものである。
【００３０】
Ｆｉコマンドは、上記のような区分情報（１）〜（５）を組合せて構成されているが、区分情報はＳｉコマンド（Ｓｅｍｉ  Ｉｎｔｅｌｌｉｇｅｎｃｅ  Ｃｏｍｍａｎｄ）で特定されるようになっている。すなわち、Ｆｉコマンドは、Ｓｉコマンドの組合せによって構成されており、複数個のＳｉコマンドの組合せによって、（１）「今回は期待できるよ！」、（２）・・・（無音状態）、（３）「ほーらリーチだ！」、（４）・・・・（無音状態）、（５）「やったー！。大当りー！！」の一連の音声情報が特定されることになる。
【００３１】
図２は、Ｆｉコマンドと、Ｓｉコマンドと、サウンドＮＯの関係を概略的に図示したものである。図２（ａ）及び図２（ｂ）に示すように、一つのＦｉコマンドに対して、背景音（ＢＧＭ）用のＳｉコマンドと効果音（ＳＥ）用のＳｉコマンドとが特定される。例えばコマンド番号０１ＨのＦｉコマンドの場合には、効果音としては、一連の１０個のＳｉコマンド番号（５０Ｈ，２３Ｈ，５０Ｈ，２４Ｈ，４１Ｈ，５０Ｈ，４ＢＨ，４ＣＨ，５ＣＨ，５０Ｈ）の組合せが特定され、背景音としては、一連の７個のＳｉコマンド番号（０１Ｈ，５１Ｈ，０２Ｈ，５１Ｈ，１０Ｈ，０ＦＨ，５１Ｈ）の組合せが特定されることになる。なお、Ｈは１６進数を意味する。
【００３２】
各Ｓｉコマンドは、その再生時間と共に規定されており、図２（ａ）に例示する効果音（ＳＥ）の場合には、
（１）９．４秒の再生時間を要するＳｉコマンド５０Ｈ（無音）
（２）０．７秒の再生時間を要するＳｉコマンド２３Ｈ
（３）１２．７秒の再生時間を要するＳｉコマンド５０Ｈ（無音）
（４）１．０秒の再生時間を要するＳｉコマンド２４Ｈ
（５）０．８秒の再生時間を要するＳｉコマンド４１Ｈ
（６）３．６秒の再生時間を要するＳｉコマンド５０Ｈ（無音）
（７）２．０秒の再生時間を要するＳｉコマンド４ＢＨ
（８）０．８秒の再生時間を要するＳｉコマンド４ＣＨ
（９）１１．２７秒の再生時間を要するＳｉコマンド５ＣＨ
（１０）０．００４秒の再生時間を要するＳｉコマンド５０Ｈ（無音）
によってＦｉコマンド１が実効化されることを意味している。そして、一連のＳｉコマンドのうち、現在どのＳｉコマンドを実行すべきかは、ＳＥ用の進行カウンタＣＮＴ ＳＥによって指示される。
【００３３】
これらの点は、背景音の場合も同様であり、図２（ｂ）に例示する背景音（ＢＧＭ）の場合には、
（１）９．４秒の再生時間を要するＳｉコマンド０１Ｈ
（２）０．７秒の再生時間を要するＳｉコマンド５１Ｈ（無音）
（３）１２．７秒の再生時間を要するＳｉコマンド０２Ｈ
（４）３．６秒の再生時間を要するＳｉコマンド５１Ｈ（無音）
（５）４．８秒の再生時間を要するＳｉコマンド１０Ｈ
（６）９．１秒の再生時間を要するＳｉコマンド０ＦＨ
（７）０．００４秒の再生時間を要するＳｉコマンド５１Ｈ（無音）
によってＦｉコマンド０１Ｈが実効化されることを意味している。そして、一連のＳｉコマンドのうち、現在どのＳｉコマンドを実行すべきかは、ＢＧＭ用の進行カウンタＣＮＴ ＢＧによって指示される。
【００３４】
各Ｓｉコマンドは、更に、音声パーツであるサウンドＮＯ及びその再生時間の組合せを特定するよう構成されている。例えば、図２（ａ）の例では、Ｓｉコマンド５ＣＨは、０．６秒の再現時間を要するサウンドＮＯ４７Ｈ→０．６秒の再現時間を要するサウンドＮＯ４７Ｈ→・・・→１．１秒の再現時間を要するサウンドＮＯ４７Ｈ→・・・→２秒の再現時間を要するサウンドＮＯ５６Ｈの組合せで実効化される。このように、サウンドＮＯとその再生時間とは必ずしも固定的ではなく、再生時間は適宜に変更される。そして、一連のサウンドＮＯのうち、現在どのサウンドＮＯを実行すべきかは進行カウンタＰＴ ＣＮＴによって指示される。なお、図２においてＥＮＤＣＤは、データの終了を意味するコードであり、再生時間がｍＳ（ミリ秒）の単位であって、且つ＊＊／４の形式で特定されているのは、後述するタイマ割込み処理が４ｍＳ毎に発生することに因るものである。
【００３５】
以上の通り、この実施例では、制御コマンドからＦｉコマンドが特定され、ＦｉコマンドによってＳｉコマンドの組合せが特定され、各ＳｉコマンドはサウンドＮＯの組合せを特定するよう構成されている。図３〜図５は、Ｆｉコマンド番号の特定から音声信号の再現までの関係をより詳細に図示したものであり、図３は、Ｆｉコマンド番号と、これを実効化する一連のＳｉコマンドの関係を示している。また、図４は、Ｓｉコマンドと、これを実効化する一連のサウンドＮＯの関係を示しており、図５は、サウンドＮＯと、これに対応する音声データ（ＡＤＰＣＭデータ）の格納位置との関係を示している。
【００３６】
以下、これらの点を踏まえて音声制御基板３の制御プログラムについて説明する。本実施例では、音声制御基板３の制御プログラムは、電源投入後に実行を開始されるメインルーチン（図６）と、所定時間（４ｍＳ）毎に起動されるタイマ割込み処理ルーチン（図７）と、サンプリング周期（τ）毎にＤ／ＡコンバータにＰＣＭデータを供給するサウンド出力割込みルーチン（図１４）と、主制御基板１からストローブ信号ＳＴＢを受けて開始される受信割込みルーチン（図１５）と、プログラムの暴走などに起因して開始される異常割込みルーチン（不図示）とで構成されている。
【００３７】
なお、タイマ割込み（図７）、サウンド出力割込み（図１４）、受信割込み（図１５）が開始されるとＣＰＵは割込み禁止状態となるが、この実施例では、割込み処理ルーチン内ではＣＰＵを割込み許可状態に戻さないので、メインルーチンの実行中に何れかの割込み処理が開始されると、その後は、メインルーチンでＥＩ命令を実行しない限り（ＳＴ５）、他の割込み信号は保留されることになる。
【００３８】
また、タイマ割込み（図７）、サウンド出力割込み（図１４）の最後では、それぞれフラグＷＤＦＬＧ１とフラグＷＤＦＬＧ２とをオン状態にセットして、各割込み処理が少なくとも一度実行されたことがメインルーチン（図６）で把握できるようにしている。
【００３９】
更にまた、タイマ割込み（図７）、サウンド出力割込み（図１４）の最後では、ＴＰＵ１６のＴＳＲ（タイマ・ステイタス・レジスタ）のＴＧＦフラグを、オン状態からオフ状態にしている。したがって、この段階ではゼロクリアされているＴＰＵ１６のＴＣＮＴ（タイマ・カウンタ）のカウントアップ動作が、内部モジュール再設定処理（図１９のＳＴ５）によって開始されて、再度、ＴＧＲ（タイマ・ジェネラル・レジスタ）の値に達するまで、ＣＨ０の割込みは生じないことになる。
【００４０】
先ず、図６を参照しつつメインルーチンから説明する。電源が投入されたり、或いは、ウォッチドッグタイマ１２からリセット信号を受けると、ＣＰＵはリセット状態となり、ＣＰＵは、自らを割込み受け付け禁止状態（ＤＩ）にした後、検査データＤｉが全て一致するか否かをチェックする（ＳＴ１）。ここで、検査データＤｉとは、特定複数のＲＯＭ（ＡＤ１、ＡＤ２、・・・、ＡＤｎ番地）の記憶データを、ＲＡＭエリアのｎ個の番地にコピーしたものである。
【００４１】
そして、チェック処理として、ＲＡＭエリアに格納されている前記ｎ個の検査データが、ＲＯＭ（ＡＤ１、ＡＤ２、・・・、ＡＤｎ番地）の記憶データと全て一致するか否かを判定する。ここで、検査データＤｉの一つでも不一致となる場合には、音声制御基板３を構成するワンチップマイコン１０のＲＡＭ２０をゼロクリアするが（ＳＴ２）、一方、検査データＤｉが全て一致する場合には、ステップＳＴ２の処理をスキップする。
【００４２】
次に、Ｄ／Ａコンバータ１８への出力データを格納するＳＮＤＤＡＴＡ番地に８０Ｈ（無音データ）が格納され、効果音ＳＥや背景音ＢＧＭの出力を禁止するべくフラグ値（ＳＮＤＦＬＧ番地の値）を００Ｈに設定する。また、内蔵モジュールの初期化などを行うと共に、検査データＤｉの設定処理を行う（ＳＴ３）。この設定処理は、先に説明した検査データＤｉに対応するものであり、例えば、図１６（ａ）に示す通り、固定的に記憶されている特定複数番地のＲＯＭ（ＡＤ１、ＡＤ２、・・・、ＡＤｎ番地）のデータを、作業領域（ワークエリア）として使用しないＲＡＭのｎ個の番地にコピーすることで実行される。
【００４３】
このようにして検査データＤｉの設定が完了すると、次に、音声出力処理が実行された後（ＳＴ４）、ＣＰＵが割込み許可状態（ＥＩ：ｅｎａｂｌｅ  ｉｎｔｅｒｒｕｐｔ）に設定されると共にワンチップマイコン１０の内蔵モジュールが初期状態に再設定される（ＳＴ５）。
【００４４】
ＣＰＵがＥＩ命令を実行したことにより、これ以降は、ＣＨ０の内部割込みを含むマスク可能な割込み信号が受け付けられる。但し、電源投入後に、ＳＮＤＤＡＴＡ番地には無音データが格納されているので（ＳＴ３）、１２５μＳ経過後（１／８Ｋ）に生じる音声出力用の割込み処理（図１４）では、ＡＤコンバータ１８から無音が出力される（図１４のＳＴＯＵＴ１参照）。なお、ＳＥ音用とＢＧＭ音用のフラグ値（ＳＮＤＦＬＧ番地の値）が００Ｈに設定されているので（ＳＴ３）、ＡＤコンバータ１８から無音が出力された後、ＳＮＤＤＡＴＡ番地には、再度、無音データが格納される（図１４のＳＴＯＵＴ１１’参照）。
【００４５】
ステップＳＴ５の処理に続いて、サウンドＮＯの実効化を管理しているサウンド制御用作業テーブル（図１３参照）に関する処理が行われる（ＳＴ６）。具体的には、図１２に記載の通りであり、図１３に示す制御用作業テーブルＳＮＤＣＴＢＬ（ＢＧＭ用）及びＳＮＤＣＴＢＬ（ＳＥ用）について、ステップＳＴ９２〜ＳＴ９７の処理が行われる。先ず、作業テーブルＳＮＤＣＴＢＬにおいてサウンドＮＯを記憶しているＳＮＤＮＯ番地のデータと、ＳＮＤＮＯＣＳ番地のデータの反転データとが比較され、一致すれば以降の処理においてＳＮＤＮＯ番地のデータをサウンドＮＯとして使用する（ＳＴ９２）。
【００４６】
一方、両者が不一致なら、ＳＮＯＢＵＰ番地のデータとＳＮＯＢＵＰＣ番地のデータの反転データとが一致することを条件にバックアップ領域ＳＮＯＢＵＰ番地のデータをサウンドＮＯとして使用する（ＳＴ９２）。なお、いずれのデータも使用できない場合は無音処理を施してスピーカから音が出ないようにしている。
【００４７】
前記の通り、作業領域に、第１の情報とその第１の情報を反転して得られる第２の情報を格納し、その第１と第２の情報とにより作業領域に格納されたデータの正当性チェックをおこなっている。このように、データ（サウンドＮＯ）の正当性を厳しくチェックするのは、本実施例の場合には、メインルーチンの実行中にデータ受信割込み（図１５）が生じるだけでなく、４ｍＳ毎のタイマ割込み（図７）と、音声出力割込み（図１４）とが平行して実行され、各々において複雑なタイミングでサウンドＮＯについての制御処理を行うため、ノイズなどの影響でデータの不整合が生じる可能性があるからである。なお、正当性チェックは、上記の方法に限らず、所定数のビットを用いたチェックサム方式でも良い。
【００４８】
続いて、作業テーブルＳＮＤＣＴＢＬのＳＮＯＢＵＰ番地、ＳＮＤＮＯＣＳ番地、ＳＮＯＢＵＰＣ番地に、サウンドＮＯやその反転データを格納する（ＳＴ９３）。また、作業テーブルＳＮＤＣＴＢＬのＡＤＦＬＧ番地、ＳＮＤＡＤＲ番地、ＳＮＤＦＬＧ番地、ＳＮＤＮＯ番地、ＤＥＬＴＡ番地、ＸＮ番地、ＡＤＦＬＧ番地、ＳＮＤＡＤＲ番地のデータを、この順番で取得する（ＳＴ９４）。ここで、ＡＤＦＬＧ番地とＳＮＤＡＤＲ番地のデータを２度取得するのは、ステップＳＴ９４の処理中に、タイマ割込み（図７）や音声出力割込み（図１４）が生じて、格納データが変化する可能性があるからである。したがって、最初と最後のデータが一致しない限り、全てのデータを取得し直すことになる。
【００４９】
次に、（ＳＮＤＦＬＧ＋ＳＮＤＮＯ＋ＤＥＬＴＡ＋ＡＤＦＬＧ＋ＸＮ＋ＳＮＤＡＤＲ Ｈ＋ＳＮＤＡＤＲ Ｌ）の１６ｂｉｔ加算演算によってチェックサムを算出し、その反転データをＢ ＣＳ番地に格納する（ＳＴ９５）。なお、ＳＮＤＡＤＲ Ｈは、４バイト長のアドレス値（ＳＮＤＡＤＲ番地から４バイト）の上位２バイト、ＳＮＤＡＤＲ Ｌはその下位２バイトを意味する。その他、作業テーブルＳＮＤＣＴＢＬのＢ ＤＥＬＴＡ番地、Ｂ ＸＮ番地、Ｂ ＡＤＦＬＧ番地、Ｂ ＳＮＤＡＤＲ番地、Ｂ ＳＮＤＮＯ番地、Ｂ ＳＮＤＦＬＧ番地にバックアップデータを記憶する。これもステップＳＴ９４の処理中に、タイマ割込み（図７）や音声出力割込み（図１４）が生じて、格納データが変化する可能性があることを考慮したものである。
【００５０】
続いて、サウンドＮＯに対応するアドレス情報その他の情報を、図５（ａ）の参照テーブルＳＮＤＴＢＬに基づいて取得し、作業テーブルＳＮＤＣＴＢＬのＳＮＤＳＴＲ番地、ＳＮＤＥＮＤ番地、ＳＮＤＬＯＯＰ番地、ＳＭＰＦＲＱ番地に記憶する（ＳＴ９６）。
【００５１】
このステップＳＴ９２〜ＳＴ９６の処理は、制御用作業テーブルＳＮＤＣＴＢＬ（ＢＧＭ用）及びＳＮＤＣＴＢＬ（ＳＥ用）について行われるが、制御用作業テーブルＳＮＤＣＴＢＬの内容を更新するのは、メインルーチンの実行中（主としてＳＴ４〜ＳＴ８）にも、サンプリング周期（τ）毎に、音声情報の出力処理（図１４）が進行しているからである。
【００５２】
以上のようにしてステップＳＴ６の処理が終われば、ステップＳＴ３の処理で設定された検査データのチェック処理を行う（ＳＴ７）。具体的には図１６（ｂ）に示す通りであり、ステップＳＴ１の場合と同様に、ＲＡＭエリアに格納されている前記ｎ個の検査データが、ＲＯＭ（ＡＤ１、ＡＤ２、・・・、ＡＤｎ番地）の記憶データと全て一致するか否かを先ず判定する。
【００５３】
ここで、不一致のデータが一つでも存在する場合には、無限ループ処理に突入させる。この場合、ＣＰＵを割込み受付禁止状態（ＤＩ）に設定した上で無限ループ処理に突入させるのが好適である。検査データに異常が見つかった以上、この状態で音声出力割込み処理（図１４）が起動されると、異常音が発せられる可能性があるからである。
【００５４】
何れにしても、無限ループ処理に入ったことによって、ウォッチドッグタイマ１２に対するクリアパルスは供給されなくなり、やがてＣＰＵがリセットされることになる。そして、その後は、検査データが不一致であるとしてＲＡＭクリア処理（ＳＴ２）に移行することになる。
【００５５】
一方、検査データチェック処理（ＳＴ７）が正常に終了すると、次に、ウォッチドッグタイマ処理を実行する（ＳＴ８）。具体的内容は、図１６（ｃ）に示す通りであり、ウォッチドッグ用のフラグＷＤＦＬＧ１とＷＤＦＬＧ２とが共にオン状態であるか否かを判定し（Ｓ１００，Ｓ１０１）、何れのフラグもオン状態であれば、フラグＷＤＦＬＧ１とＷＤＦＬＧ２とをオフ状態に戻した後（Ｓ１０２）、ウォッチドッグタイマ１２に対してクリアパルスを出力する（Ｓ１０３）。
【００５６】
図７のステップＳＴ２７や、図１４のステップＳＴＯＵＴ１２に示すように、ウォッチドッグ用のフラグＷＤＦＬＧ１，ＷＤＦＬＧ２は、割込み処理の終了時にオン状態にセットされるので、各割込み処理が共に実行済みであれば、ステップＳ１０２からＳ１０３の処理に移行して、ウォッチドッグタイマ１２をクリアすることになる。但し、少なくとも何れか一方の割込み処理が未実行の場合には、何もしないでステップＳＴ８のウォッチドッグ処理を終えることになる。したがって、何れか一方の割込み処理が未実行である状態が所定時間以上続くと、ウォッチドッグタイマ１２からＣＰＵコア１５に対してＣＰＵリセット信号が出力されることになる。
【００５７】
このように、この実施例では、図７や図１４の割込み処理が正常に実行されているか否かをメインルーチン（図６）において常時チェックしているので、ノイズなどの影響でプログラムが暴走したような場合にも、音声制御基板の動作状態を迅速に初期状態に復帰させることができ、異常音がスピーカから発生することが防止される。
【００５８】
以上のようにしてウォッチドッグ処理（ＳＴ５）が終われば、新規の制御コマンドを受信していることを条件に、コマンド変換処理と乱数振分け処理とを行う（ＳＴ９）。また、新規の制御コマンドを受信していた場合には、ＣＯＭ  ＷＲＴ番地に５ＡＨを記憶する（ＳＴ９）。ここでコマンド変換処理とは、主制御基板１からの制御コマンドを循環的に記憶しているＲＩＮＧ ＢＵＦＦＥＲ領域（受信バッファ図１５（ｂ）参照）をチェックして、もし新規の制御コマンドが検出された場合には、図１（ａ）のような変換テーブルを参照して、制御コマンドをＦｉコマンドに変換する処理である。また、乱数振分け処理とは、図１（ｂ）のような抽選テーブルを参照して、Ｆｉコマンドを変更する処理である。
【００５９】
乱数振分け処理では、具体的には、コマンド変換処理によって決定されたＦｉコマンドと、乱数値ＲＮＤとによってＦｉコマンドを変更する。ここで、乱数値ＲＮＤは、例えば０〜２５５（＝ＲＮＤ ＭＡＸ）までの数値である。したがって、図１（ｂ）の例では、コマンド変換処理によって決定されたＦｉコマンドが１１Ｈの場合には、０≦乱数値ＲＮＤ≦６８又は７９≦乱数値ＲＮＤ≦２５５であればＦｉコマンド＝１１Ｈのままであるが、６９≦乱数値ＲＮＤ≦７８であればＦｉコマンド＝８３Ｈと変更されることになる。
【００６０】
次に、乱数値ＲＮＤを更新する（ＳＴ１０）。この実施例では、乱数値ＲＮＤは０〜２５５（＝ＲＮＤ ＭＡＸ）の数値であるから、その数値範囲内で乱数値ＲＮＤをインクリメント（＋１）することで更新される。続いて、サウンドＮＯ書込み完了フラグＲＣＭＤＦＬＧの値がチェックされ、このフラグＲＣＭＤＦＬＧがセットされていなければ、新規に出力すべき音声情報がないと判断してステップＳＴ５の処理に戻る（ＳＴ１１）。なお、サウンドＮＯ書込み完了フラグＲＣＭＤＦＬＧは、タイマ割込み処理（図７）において、新規の制御コマンドに対応するサウンドＮＯが決定された際にセットされている（図９（ａ）ＳＴ５８参照）。
【００６１】
そのため、ステップＳＴ１１の判定において、サウンドＮＯ書込み完了フラグＲＣＭＤＦＬＧがセットされていることが確認された場合には、サウンドＮＯ解析処理を実行することになる（ＳＴ１２）。具体的には、タイマ割込み処理（図７）において書込まれているサウンドＮＯを作業領域ＲＣＭＤにコピーすると共に、そのサウンドＮＯに対応する各種の情報をサウンド制御用の作業テーブルＳＮＤＣＴＲＬの該当欄に記憶する（ＳＴ１２）。
【００６２】
また、サウンドＮＯ解析処理（ＳＴ１２）では、サウンドＮＯの正当性も判定されるので、正当でないと判定された場合にはステップＳＴ５に戻り、正当であると判定された場合に限り、次の音声出力起動処理（ＳＴ１４）に移行する。なお、サウンドＮＯが正当でないのは、複数の割込み処理が重層的に実行されることがあるためと考えられるが、このような場合には音声出力起動処理がスキップされるので、異常な音声情報が出力されることが防止される。
【００６３】
ステップＳＴ１３の判定において、サウンドＮＯが正当であると判定された場合には、音声出力起動処理として、抽出されているサウンドＮＯに対応する一連の音声データのサンプリング周期（τ）を特定して、このサンプリング周期（τ）毎にＴＰＵ１６から内部割込み信号ＣＨ０が出力されるよう設定する（ＳＴ１４）。具体的には、ＴＧＲ（タイマ・ジェネラル・レジスタ）に所定値を上限値として設定し、ＴＣＮＴをゼロクリアした後、カウントアップ動作を開始させ、ＣＨ０からの内部割込みを許可するべく、ＴＩＥＲ（タイマ・インターラプト・イネーブル・レジスタ）をオン状態にする（図１９参照）。
【００６４】
その後、ステップＳＴ５の処理に戻るが、ＴＰＵ１６から内部割込み信号ＣＨ０が出力されるよう設定されたことにより、以降は、サンプリング周期（τ）毎に内部割込みが生じ、特定されたサウンドＮＯに対応する音声データがサンプリング周期（τ）毎に出力されることになる（図１４参照）。なお、複数回のＣＨ０の割込み処理（図１４）によって一連の音声データの出力が完了すると、図１４の割込み処理において、無音処理が施されるので（図１４の破線部参照）、それ以降は、連続的に無音がＤ／Ａコンバータ１８から出力されることになる。なお、無音処理において、サンプリング周波数が１６ＫＨｚに設定されるので、６２．５μＳ（＝１／１６ＫＨｚ）の時間周期で無音が出力される。
【００６５】
これら音声出力処理について図１９を参照しつつ確認する。ステップＳＴ１４の処理でゼロクリアされたＴＣＮＴ（タイマ・カウンタ）がカウンタ上限値に達してゼロクリアされると、音声出力用のＣＨ０の割込み処理（図１４）が実行される。そして、この割込み処理を終えた後に、ＴＩＥＲ（タイマ・インターラプト・イネーブル・レジスタ）が再度オン状態とされ（図１９のＳＴ５）、ＴＣＮＴ（タイマ・カウンタ）のカウントアップ動作が再開される（図１９のＳＴ５）。したがって、サウンドＮＯで特定されるサンプリング周期（τ）毎にその後も繰返しＣＨ０の割込みが実行されることになる。
【００６６】
このようにして一連の音声データが出力された後は、図１４の無音処理ではサンプリング周波数が１６ＫＨｚに設定されるので、その後は、新たな制御コマンドに対応する音声演出が開始されるまで、１６ＫＨｚのサンプリング周波数の無音データがＤ／Ａコンバータ１８から繰返し出力される。
【００６７】
以上説明したように、電源投入後はステップＳＴ５〜ＳＴ１４までの処理が無限ループ状に繰り返されるが、そのようなメインルーチンの処理に平行して、図７に示すタイマ割込み処理が行われる。タイマ割込み処理では、Ｓｉコマンドの再生時間を管理しているＢＧＭ用変数ＴＩＭＥ ＢＧ，及びＳＥ用変数ＴＩＭＥ ＳＥがゼロになるまでデクリメント（−１）される（ＳＴ２０）。また、サウンドＮＯの再生時間を管理しているＢＧＭ用変数ＰＴ１、及びＳＥ用変数ＰＴ２がゼロになるまでデクリメントされる（ＳＴ２０）。図２に関して先に説明したように、Ｓｉコマンド及びサウンドＮＯは、その再生時間が特定されて抽出されているが、その特定された再生時間を実現するべく各変数ＴＩＭＥ ＢＧ，ＴＩＭＥ ＳＥ，ＰＴ１，ＰＴ２がデクリメントされるのである。なお、タイマ割込みの割込み周期が４ｍＳであることから、例えば、９．４秒の再生時間を実現するのに、９４００／４＝２３５０回の割込み処理を要することになる。
【００６８】
続いて、作業領域ＣＯＭ ＷＲＴの値が０５Ｈであるか否かが判定される（ＳＴ２１）。図６のステップＳＴ６において説明した通り、新規の制御コマンドを取得した場合には、作業領域ＣＯＭ ＷＲＴに０５Ｈが書込まれている。そこで、作業領域ＣＯＭ ＷＲＴ＝０５Ｈの場合には、Ｆｉコマンド用の作業領域とＳｉコマンド用の作業領域とを初期設定した後（ＳＴ２２）、コマンドバッファ領域であるＣＯＭ ＳＮＤ（不図示）に記憶されているＦｉコマンドを、Ｆｉコマンド記憶領域であるＣＯＭ ＮＵＭに格納する（ＳＴ２３）。
【００６９】
Ｆｉコマンド用とＳｉコマンド用の作業領域は、図７（ｂ）と図７（ｃ）に示すデータ構造をしており、Ｆｉコマンド用の作業領域には、記憶領域ＣＯＭ ＮＵＭが設けられている。また、ステップＳＴ２０で問題となるＳｉコマンド用の時間変数ＴＩＭＥ ＢＧ，ＴＩＭＥ ＳＥは、Ｆｉコマンド用の作業領域に設けられており、サウンドＮＯ用の時間変数ＰＴ１，ＰＴ２はＳｉコマンド用の作業領域に設けられている。
【００７０】
ステップＳＴ２３の処理が終われば、Ｆｉコマンド記憶領域ＣＯＭ ＮＵＭの記憶内容をビット反転させてバッファ領域ＢＵＰ ＮＵＭに記憶させると共に、新規の制御コマンドに対する初期処理が終わったことを示すべくＣＯＭ ＷＲＴ番地にゼロを格納する（ＳＴ２４）。なお、ＣＯＭ ＷＲＴ番地＝０（ＣＯＭ ＷＲＴ≠０５Ｈ）の場合にはステップＳＴ２２〜ＳＴ２４の処理はスキップされる。
【００７１】
続いて、Ｆｉコマンドの展開処理が行われる（ＳＴ２５）。Ｆｉコマンド展開処理の詳細は図８に示す通りであるが、簡略化して説明すると、ＣＯＭ ＮＵＭに格納されているＦｉコマンドと、Ｓｉ進行カウンタとに基づいて、これから実効化すべきＳｉコマンドが特定される。なお、Ｓｉ進行カウンタとは、Ｆｉコマンド用作業領域中のＣＮＴ ＢＧ及びＣＮＴ ＳＥの値であり、１つのＦｉコマンドに対して、ＢＧＭ（背景音）用ＳｉコマンドとＳＥ（報知音）用Ｓｉコマンドとが特定される。そして、特定されたＢＧＭ（背景音）用ＳｉコマンドとＳＥ（報知音）用Ｓｉコマンドとは、それぞれ、図７（ｃ）のＢＧＭ用エリアと、ＳＥ用エリアのＰＴ ＮＵＭに格納される。
【００７２】
以上の処理によって、これから実効化すべきＳｉコマンドが特定されたので、次に、そのＳｉコマンドについてデータ展開処理が行われる（ＳＴ２６）。Ｓｉコマンドデータ展開処理の詳細は、図９に示す通りであるが、簡略化して説明すると、ＳｉコマンドとサウンドＮＯ進行カウンタＰＴ ＣＮＴとに基づいて、これから実効化すべきサウンドＮＯが特定される。ここで進行カウンタとは、ＢＧＭ用エリアのＰＴ ＣＮＴ、及びＳＥエリア２のＰＴ ＣＮＴの値であり、１つのＦｉコマンドに対して、ＢＧＭ用とＳＥ用のサウンドＮＯが特定される。そして、特定された２種類のサウンドＮＯは、それぞれ、図７（ｄ）に示すＲＣＭＤＢＦ１とＲＣＭＤＢＦ２に格納される。
【００７３】
図８は、Ｆｉコマンド展開処理（図７のＳＴ２５）の具体的内容を示すフローチャートである。先ずＦｉコマンド用の作業領域（図７（ｂ）参照）についてのエラー確認処理（ＳＴ３０）が実行される。具体的には、（１）ＣＯＭ ＮＵＭの値とＢＵＰ ＮＵＭの反転値との比較、（２）ＣＯＭ ＮＵＭに記憶されているＦｉコマンドが所定の数値範囲内か否かの正当性チェック、（３）ＣＮＴ ＢＧの値とＢＵＰ ＢＧの反転値との比較、（４）ＣＮＴ ＳＥの値とＢＵＰ ＳＥの反転値との比較などが行われ、一つでも異常が検出されたらＦｉコマンド用の作業領域（図７（ｂ））を初期設定して処理を終える。このように、本実施例では、Ｆｉコマンドの展開処理に先だって異常判定が行われるので、異常な音声情報が出力されることがない。
【００７４】
次に、変数ＴＩＭＥ ＢＧの値がゼロになったか否かが判定される（ＳＴ３１）。変数ＴＩＭＥ ＢＧは、ＢＧＭ用のＳｉコマンドの再生時間を管理するものであり、図７（ａ）のステップＳＴ２０において４ｍＳ毎にデクリメントされる変数である。したがって、ＴＩＭＥ ＢＧ＝０の場合には、次に実効化すべきＳｉコマンドを特定するべくステップＳＴ３２の処理に移行する。具体的には、ＣＯＭ ＮＵＭ番地の格納データ（Ｆｉコマンド）に対応する一群のＳｉコマンドのうち、ＢＧＭ進行カウンタＣＮＴ ＢＧに対応するデータＤｘ（Ｓｉコマンド）を取得する（ＳＴ３２）。
【００７５】
そして、そのＳｉコマンドがエンドコードＥＮＤＣＤ（図３参照）であるか否かが判定され（ＳＴ３３）、エンドコードＥＮＤＣＤでなければ、そのＳｉコマンドの再生時間を、時間変数ＴＩＭＥ ＢＧの初期値として設定する。次に、ステップＳＴ３２で取得したデータＤｘが継続コードであるか否かが判定され（ＳＴ３５）、継続コードでなければ、Ｓｉコマンド用の作業領域（図７（ｃ））のうち、ＢＧＭ用作業エリア１を初期設定する（ＳＴ３６）。具体的には、図７（ｃ）に示すＳＥＭＩＤＴ番地からの４番地（ＰＴ ＴＩＭＥ，ＰＴ ＮＵＭ，ＰＴ ＣＴ）に００Ｈを格納すると共に、続く２番地（ＰＴ ＮＵＭ ＢＰ，ＰＴ ＣＮＴ ＢＰ）に０ＦＦＨを格納する。
【００７６】
その後、ステップＳＴ３２の処理で取得したＳｉコマンド（Ｄｘ）をＢＧＭ用作業エリア１のＰＴ ＮＵＭ番地に格納すると共に、Ｓｉコマンド（Ｄｘ）の反転データをＢＧＭ作業エリア１のＰＴ ＮＵＭ ＢＰに格納する（ＳＴ３７）。そして、ＢＧＭ進行カウンタＣＮＴ ＢＧの値をインクリメント（＋１）すると共に、ＢＧＭ進行カウンタＣＮＴ ＢＧの反転データをＢＵＰ ＢＧ番地に格納する（ＳＴ３８）。なお、反転データを格納するのは、これから実効化しようとするＳｉコマンドや、サウンドＮＯを特定するＢＧＭ進行カウンタの値の正当性を必要時にチェックできるようにするためである。
【００７７】
以上の処理によって、Ｓｉコマンド用の作業領域（図７（ｃ））のうち、ＢＧＭ用エリアの処理が終わるので、次に、ＳＥ用エリアの処理に移行する。ステップＳＴ３９〜ＳＴ４６の具体的な処理内容は、上記したステップＳＴ３１〜ＳＴ３８の処理内容と実質的に同じであり、ＳＥ用エリア（ＳＥＭＩＤＴ＋６番地から始まる６番地分）に必要なデータが格納される。また、ＳＥ進行カウンタＣＮＴ ＳＥの値もインクリメント（＋１）される（ＳＴ４６）。
【００７８】
続いて、図７のＳｉコマンドデータ展開処理（ＳＴ２６）について、図９に示すフローチャートに基づいて説明する。先ず、Ｓｉコマンドのエラーチェック処理が行われる（ＳＴ５０）。具体的には、図７（ｃ）に示すＢＧＭ用エリアにおける（１）ＰＴ ＮＵＭ番地のデータとＰＴ ＮＵＭ ＢＰ番地の反転データとの対比、（２）ＰＴ ＣＮＴ番地のデータとＰＴ ＣＮＴ ＢＰ番地の反転データとの対比や、また、ＳＥ用エリアにおける（３）ＰＴ ＮＵＭ番地のデータとＰＴ ＮＵＭ ＢＰ番地の反転データとの対比、（４）ＰＴ ＣＮＴ番地のデータとＰＴ ＣＮＴ ＢＰ番地の反転データとの対比などの処理が行われ、異常が検出されたらＢＧＭ用エリアとＳＥ用エリアを初期設定して処理を終える。
【００７９】
次に、レジスタＲ３をゼロクリアすると共に、Ｓｉコマンド用の作業領域（図７（ｂ））のうち、ＢＧＭ用エリアについての初期処理を行う（ＳＴ５１）。その結果、最初はＢＧＭ用エリアについての作業が行われることになり、先ずＢＧＭ用のサウンドＮＯの再生時間を管理する時間変数ＰＴ１の値がゼロか否かが判定される（ＳＴ５２）。時間変数ＰＴ１は、図９（ａ）のステップＳＴ５６の処理で初期値設定され、タイマ割込み毎に図７（ａ）のステップＳＴ２０の処理でデクリメント（−１）されている。そして、ＰＴ１＝０である場合とは、現在のサウンドＮＯを実行し終わり、次のサウンドＮＯの実行に移行すべき時であるから、ステップＳＴ５３以下の処理を実行する。
【００８０】
先ず、図４（ａ）に図示するような指示テーブルＰＡＲＴＳ ＣＯＭのアドレスリストから、ＢＧＭ用エリア（図７（ｃ））のＰＴ ＮＵＭ番地に格納されたＳｉコマンドに対応するＰＡＲＴＳ ＣＯＭｉのアドレス情報を抽出する（ＳＴ５３）。次に、抽出されたＰＡＲＴＳ ＣＯＭｉエリア（図４（ｂ）参照）に記憶されている一群のサウンドＮＯデータから、図７（ｃ）のサウンドＮＯ進行カウンタＰＴ ＣＮＴに対応するサウンドＮＯデータＤｚを抽出する（ＳＴ５４）。
【００８１】
そして、抽出されたデータＤｚがエンドコードＥＮＤＣＤでない場合には、ステップ５４の処理によって特定されたサウンドＮＯの再生時間を、図７（ｃ）のＢＧＭ用エリアのＰＴ ＴＩＭＥ番地に初期設定する（ＳＴ５６）。また、データＤｚが継続コードでない場合には、抽出したサウンドＮＯ（Ｄｚ）を、図７（ｄ）に図示する作業領域ＲＣＭＤＢＦ１番地に格納すると共に、書込み完了フラグＲＣＭＤＦＬＧの該当ビットを１にセットする（ＳＴ５８）。
【００８２】
また、図７（ｃ）のＢＧＭエリア１の、サウンドＮＯ進行カウンタＰＴ ＣＮＴの値をインクリメントすると共に、その反転データをＰＴ ＣＮＴ ＢＰ番地に格納する（ＳＴ５９）。以上の処理によって、図７（ｃ）のＢＧＭエリア１に対する処理が終わるので、次に、ステップＳＴ５１の処理でゼロリセットされているレジスタＲ３の値をチェックして（ＳＴ７０）、レジスタＲ３に０５Ｈに書込んだ後、ＳＥ用エリアについての初期処理を行って（ＳＴ７１）ステップＳＴ５２の処理に戻る。
【００８３】
その結果、続いてＳＲ用エリア２について、上記したＢＧＭ用エリア用の作業と同一の作業が行われることになる。すなわち、ＰＴ２＝０であれば、ＰＡＲＴＳ ＣＯＭｉエリア（図４（ｂ）参照）に記憶されている一群のサウンドＮＯデータから、図７（ｃ）ＳＥ用エリア１のサウンドＮＯ進行カウンタＰＴ ＣＮＴに対応するサウンドＮＯデータＤｚを抽出する（ＳＴ５４）。そして、ステップ５４の処理によって特定されたサウンドＮＯの再生時間を、図７（ｃ）のＳＥ用エリアのＰＴ ＴＩＭＥ番地に初期設定し（ＳＴ５６）、サウンドＮＯ（Ｄｚ）を、図７（ｄ）に図示する作業領域ＲＣＭＤＢＦ２番地に格納すると共に、書込み完了フラグＲＣＭＤＦＬＧの該当ビットを１にセットする（ＳＴ５８）。なお、ステップＳＴ５８の処理は、詳細には、図９（ｂ）に示す通りであり、図９（ｃ）は、図７（ｄ）を転記したものである。
【００８４】
続いて、図１０のフローチャートについて説明する。図１０は、図６のサウンドＮＯ解析処理（ＳＴ９）の内容を詳細に図示したものである。サウンドＮＯ解析処理では、先ず、図９（ｃ）に示すサウンドＮＯ書込み完了フラグＲＣＭＤＦＬＧの該当ビットをチェックして、サウンドＮＯ第１バッファＲＣＭＤＢＦ１（図９（ｃ）参照）にサウンドＮＯが格納されているか判定する（ＳＴ７０）。ここで、判定結果がＹｅｓなら、受信バッファ１であるＲＣＭＤＢＦ１のデータを作業領域ＲＣＭＤ番地にコピーすると共に、サウンドＮＯ書込み完了フラグＲＣＭＤＦＬＧの該当ビットをリセットして作業終了を示す（ＳＴ７１）。
【００８５】
一方、サウンドＮＯ書込み完了フラグＲＣＭＤＦＬＧのチェックにより、受信バッファ１が空であると判定されると、サウンドＮＯ書込み完了フラグＲＣＭＤＦＬＧの該当ビットをチェックして、サウンドＮＯ第２バッファＲＣＭＤＢＦ２にサウンドＮＯが格納されているか判定する（ＳＴ７２）。そして、判定結果がＹｅｓなら、受信バッファ２であるＲＣＭＤＢＦ２のデータを作業領域ＲＣＭＤ番地にコピーすると共に、サウンドＮＯ書込み完了フラグＲＣＭＤＦＬＧの該当ビットをリセットして作業終了を示す（ＳＴ７２）。
【００８６】
このように、受信バッファ１と受信バッファ２とを順番にチェックするのは、一度に処理できる音声情報は一つであるためである。すなわち、受信バッファ１に格納されているサウンドＮＯをＲＣＭＤ番地に格納し、その後の音出力起動（ＳＴ１１）からステップＳＴ４〜ＳＴ８の処理を経た上で（この間に一度だけＣＨ０の内部割込み処理が実行され受信バッファ１に対応する音声が出力される可能性がある）、改めて、受信バッファ２に格納されているサウンドＮＯをＲＣＭＤ番地に格納するのである。なお、図６のステップＳＴ８では、「サウンドＮＯ書込み完了」と判定されたのに、図１０のステップＳＴ７０及びＳＴ７２の判定が共にＮＯである場合は、異常状態であるのでキャリーフラグＣＹを１にセットして処理を終える（ＳＴ８０）。
【００８７】
但し、通常の場合には、受信バッファ１又は受信バッファ２に格納されていたサウンドＮＯがＲＣＭＤ番地にコピーされるので（ＳＴ７１，ＳＴ７３）、次に、そのサウンドＮＯの値が所定の数値範囲内のものであるか否かが判定される（ＳＴ７４）。例えば、サウンドＮＯが、０≦サウンドＮＯ≦ＳＮＤｍａｘの数値範囲に割り振られている場合には、ＳＮＤｍａｘより大きいサウンドＮＯはエラーと判定されて、ステップＳＴ８０に移行する。このような判定処理を設けているので、異常な音声が出力されたり、プログラムが暴走することが未然に防止される。
【００８８】
サウンドＮＯが所定の数値範囲を越えていない判定された場合には、更に、サウンドＮＯの値がチェックされ、正常ならばキャリーフラグＣＹ＝０とし、異常ならばキャリーフラグＣＹ＝１にする（ＳＴ７５）。サウンドＮＯのチェックには、図５に示す参照テーブルＳＮＤＴＢＬを参照する処理も含まれており、サウンドＮＯに対応する参照テーブルＳＮＤＴＢＬの該当番地の内容がゼロであれば、ＡＤＰＣＭデータは存在しないことから、異常としてキャリーフラグＣＹ＝１とされる。
【００８９】
ステップＳＴ７５の処理が終われば、次に、キャリーフラグＣＹの値に基づいてサウンドＮＯの値が異常か否かが判定され（ＳＴ７６）、正常ならば当該サウンドＮＯを再生する際のサンプリング周波数を取得する（ＳＴ７７）。詳細には、図１１（ａ）に示す通りであり、背景音（ＢＧＭ）用と効果音（ＳＥ）用に確保されているサウンド制御用の作業テーブルＳＮＤＣＴＢＬ（図１１（ｂ）、図１３）のうち、何れを使用するかを決定し（ＳＴ８０）、何れか一方の作業テーブルＳＮＤＣＴＢＬの該当欄にサウンドＮＯを格納する（ＳＴ８１）。なお、背景音（ＢＧＭ）用と効果音（ＳＥ）用のサウンド制御用作業テーブルＳＮＤＣＴＢＬのうち、いずれを使用すべきかはサウンドＮＯから特定できる。すなわち、図５（ｂ）（ｃ）に示すように、サウンドＮＯからそれがＢＧＭ音に関するものであるか、ＳＥ音に関するものであるか特定できるようになっており（ＢＧＭ１＋２番地、ＳＥ１＋２番地を参照）、以降の処理も含め、特定された一方のサウンド制御用作業テーブルＳＮＤＣＴＢＬが使用される。
【００９０】
ステップＳＴ８１の処理が終われば、サウンドＮＯに対応する音声データ（ＡＤＰＣＭデータ）が格納されている位置を特定して、そのヘッダー情報から音声データの開始番地や終了番地などの情報を、サウンド制御用作業テーブルＳＮＤＣＴＢＬの該当欄に格納する（ＳＴ８２）。また、音声データのヘッダー情報からサウンドフラグ（ＢＧＭ／ＳＥ）と、繰返し再生ＬＯＯＰの有無の情報と、サンプリング周波数とを取得して、サウンド制御用作業テーブルＳＮＤＣＴＢＬの該当欄に格納する（ＳＴ８３）。そして最後に、データチェック処理を行うが（ＳＴ８４）、その処理内容は、図１２のフローチャートに記載の通りであり、図６のステップＳＴ５に関する処理と同一である。
【００９１】
図１４は、音声出力用の割込み処理（ＴＰＵ１６のＣＨ０の内部割込み）を説明するフローチャートである。例えば、図６ステップＳＴ１４の処理によって、サンプリング周波数８ＫＨｚの音声データを再現するべく指示された場合には、１２５μＳ毎にこのＣＨ０の割込み処理が実行され、またサンプリング周波数１６ＫＨｚの音声データを再現すべき場合には、６２．５μＳ毎にＣＨ０の割込み処理が実行される。なお、この内部割込みは、禁止（マスク）可能な割込みであるから、ＣＰＵがＥＩ状態であることを条件に受け付けられることになり（ＳＴ５参照）、要するに、無限ループ処理（主としてＳＴ５〜ＳＴ１１）を一巡することが実行の条件となる。
【００９２】
以上を踏まえて図１４について説明する。音声出力割込み（ＳＮＤ ＩＮＴ）では、先ず、ＳＮＤＤＡＴＡ番地の内容をＤ／Ａコンバータ１８に出力する（ＳＴＯＵＴ１）。ＳＮＤＤＡＴＡ番地には、先の割込み処理（ＳＮＤ ＩＮＴ）におけるステップＳＴＯＵＴ１２の処理によってＳＥ音とＢＧＭ音のミキシングされたＰＣＭデータ（８ビット長）が格納されているので、そのＰＣＭデータをＤ／Ａコンバータ１８に出力することになる。なお、Ｄ／Ａコンバータ１８では、受けたＰＣＭデータをアナログ信号に変換して出力する。
【００９３】
次に、背景音ＢＧＭ用のＳＮＤＦＬＧ番地（図１３）の内容を参照する（ＳＴＯＵＴ２）。そして、ＳＮＤＦＬＧ番地の格納値が００Ｈであれば、ステップＳＴＯＵＴ３〜５の処理をスキップする。一方、００Ｈ以外の値であれば、サウンド制御用（ＢＧＭ）の作業テーブルＳＮＤＣＴＢＬのＳＮＤＡＤＲ番地に記憶されているアドレス値を取得して圧縮音声データ（ＡＤＰＣＭデータ）を取得し（ＳＴＯＵＴ３）、また、ＳＮＤＡＤＲ番地に記憶されているアドレス値（サウンドデータ変換中のデータのアドレス）を次のアドレス値に更新する（ＳＴＯＵＴ４）。なお、更新後のアドレス値が最終アドレス値を越えた場合には、破線部に示すように、ＳＮＤＦＬＧ番地に００Ｈを格納する処理を含んだ無音処理を実行する。
【００９４】
次に、ステップＳＴＯＵＴ３の処理で取得したＡＤＰＣＭデータをＰＣＭデータ（背景音ＢＧＭ）に変換して一時記憶する（ＳＴＯＵＴ５）。この実施例では８ビットのＰＣＭデータが４ビットのＡＤＰＣＭデータに圧縮されているので、その復元を行い一時記憶する。
【００９５】
以上の処理によって背景音（ＢＧＭ）が復元できたので、次に、効果音ＳＥ用のＳＮＤＦＬＧ番地（図１３）の内容を参照する（ＳＴＯＵＴ６）。そして、ＳＮＤＦＬＧ番地の格納値が００Ｈであれば、背景音ＢＧＭ、及び／又は、効果音ＳＥを無音データにしてＳＮＤＤＡＴＡ番地に格納した後、ステップＳＴＯＵＴ１２の処理に移行する（ＳＴＯＵＴ１１’）。すなわち、ＢＧＭ用のＳＮＤＦＬＧが００Ｈであれば、背景音ＢＧＭを無音データとし、ＳＥ用のＳＮＤＦＬＧが００Ｈであれば、効果音ＳＥを無音データとする。したがって、次回の音声出力割込みでは、背景音ＢＧＭのみ、効果音ＳＥのみ、或いは、完全な無音の何れかが出力されることになる（ＳＴＯＵＴ１参照）。
【００９６】
一方、効果音ＳＥ用のＳＮＤＦＬＧ番地（図１３）の格納値が００Ｈ以外の値であれば、効果音（ＳＥ）についての復元処理を行う。具体的には、サウンド制御用（ＳＥ）の作業テーブルＳＮＤＣＴＢＬのＳＮＤＡＤＲに記憶されているアドレス値を取得して圧縮音声データ（ＡＤＰＣＭデータ）を取得し（ＳＴＯＵＴ７）、ＳＮＤＡＤＲ番地に記憶されているアドレス値（サウンドデータ変換中のデータのアドレス）を次のアドレス値に更新する（ＳＴＯＵＴ８）。
【００９７】
そして、更新後のアドレス値が最終アドレス値を越えた場合には、破線部に示すように、ＳＮＤＦＬＧ番地に００Ｈを格納する処理を含んだ無音処理を実行する。その後、ステップＳＴＯＵＴ７の処理で取得したＡＤＰＣＭデータをＰＣＭデータ（効果音ＳＥ）変換した後（ＳＴＯＵＴ９）、一時記憶されている背景音ＢＧＭとミキシングして（ＳＴＯＵＴ１０）、そのミキシング音を作業領域ＳＮＤＤＡＴＡ（不図示）に格納する（ＳＴＯＵＴ１１）。なお、このミキシング音は、次回の音声割込み時にＤ／Ａコンバータに出力されることになる（ＳＴＯＵＴ１参照）。
【００９８】
最後に、音声出力用の割込み処理が正常に終了することを示すべく、ワークエリアのフラグ値ＷＤＦＬＧ２をオン状態にする。また、ＴＰＵ１６のＴＳＲ（タイマ・ステイタス・レジスタ）のＴＧＦフラグをオン状態からオフ状態に戻して割込み処理を終える（ＳＴＯＵＴ１２）。
【００９９】
続いて、図１５を参照しつつ、主制御基板１から制御コマンドを受信するための受信割込みについて説明する。先に説明したように、主制御基板１は、制御コマンド出力時にストローブ信号ＳＴＢを合わせて出力しており、そのストローブ信号の受信に起因して図１５の処理が開始される。なお、この割込みも禁止（マスク）可能割込みであるから、メインルーチン（主としてＳＴ５〜ＳＴ１１）の一巡を条件に受け付けられる。
【０１００】
受信割込みでは、コマンド入力ポート１３から連続して２回データを受信し、その２回のデータが一致するか否かを先ず判定している（同一チェック）。これは、雑音などの影響でビット化けした制御コマンドデータを受信しないためであり、この同一性チェックが、７回連続でＯＫであることを条件に、次の受け付け処理に移行するようにしている（ＳＴＩＮ１、ＳＴＩＮ２）。
【０１０１】
ステップＳＴＩＮ２の判定がＹｅｓとなると、次に、今回受信した制御コマンドが、直前に受信した制御コマンドと対比され、一致する場合にはそのまま処理を終える（ＳＴＩＮ３）。これは、主制御基板１から同一の制御コマンドが連続して出力されることがあり得ないので、何らかの誤動作であると判断して受信した制御コマンドを廃棄するのである。
【０１０２】
一方、新規に受信した制御コマンドが、直前に受信した制御コマンドと異なる場合には、書込みポインタＷＲ ＰＯＩＮＴの示す番地に制御コマンドを格納する（ＳＴＩＮ４）。また、書込みポインタＷＲ ＰＯＩＮＴの値を更新する（ＳＴＩＮ５）。図１５（ｂ）に示すように制御コマンドを格納する受信バッファは、リングバッファ構造になっており、書込みポインタＷＲ ＰＯＩＮＴの値は循環的に更新される。なお、受信バッファに格納された制御コマンドは、図６のステップＳＴ６の処理において読み出される。読み出し時には読出しポインタＲＤ ＰＯＩＮＴが用いられ、この読出しポインタＲＤ ＰＯＩＮＴも循環的に更新されて使用される。
【０１０３】
最後に本発明が好適に適用される弾球遊技機について確認的に説明する。図２０は、本実施例のパチンコ機２２を示す斜視図であり、図２１は、同パチンコ機２２の側面図である。なお、パチンコ機２１は、カード式球貸し機２２に電気的に接続された状態で、パチンコホールの島構造体の長さ方向に複数個が配設されている。
【０１０４】
図示のパチンコ機２１は、島構造体に着脱可能に装着される矩形枠状の木製外枠２３と、外枠２３に固着されたヒンジＨを介して開閉可能に枢着される前枠２４とで構成されている。この前枠２４には、遊技盤２５が裏側から着脱自在に装着され、その前側には、ガラス扉２６と前面板２７とが夫々開閉自在に枢着されている。
【０１０５】
前面板２７には発射用の遊技球を貯留する上皿２８が装着され、前枠２４の下部には、上皿２８から溢れ出し又は抜き取った遊技球を貯留する下皿２９と、発射ハンドル３０とが設けられている。発射ハンドル３０は発射モータと連動しており、発射ハンドルの回動角度に応じて動作する打撃槌３１（図２３参照）によって遊技球が発射される。
【０１０６】
上皿２８の右部には、カード式球貸し機２２に対する球貸し操作用の操作パネル３２が設けられ、この操作パネル３２には、カード残額を３桁の数字で表示するカード残額表示部３２ａと、所定金額分の遊技球の球貸しを指示する球貸しスイッチ３２ｂと、ゲーム終了時にカードの返却を指令する返却スイッチ３２ｃとが設けられている。ガラス扉２６の上部には、大当り状態を示す大当りＬＥＤランプＰ１が配置されている。また、この大当りＬＥＤランプＰ１に近接して、補給切れ状態や下皿の満杯状態を示す異常報知ＬＥＤランプＰ２，Ｐ３が設けられている。
【０１０７】
図２２に示すように、遊技盤２５には、金属製の外レールと内レールとからなるガイドレール３３が環状に設けられ、その内側の遊技領域２５ａの略中央には、液晶カラーディスプレイ８が配置されている。また、遊技領域２５ａの適所には、図柄始動口３５、大入賞口３６、複数個の普通入賞口３７（大入賞口３６の左右に４つ）、２つの通過口であるゲート３８が配設されている。これらの入賞口３５〜３８は、それぞれ内部に検出スイッチを有しており、遊技球の通過を検出できるようになっている。
【０１０８】
液晶ディスプレイ８は、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。この液晶ディスプレイ８は、中央部に特別図柄表示部Ｄａ〜Ｄｃと右上部に普通図柄表示部３９を有している。普通図柄表示部３９は普通図柄を表示するものであり、ゲート３８を通過した遊技球が検出されると、表示される普通図柄が所定時間だけ変動し、遊技球のゲート３８の通過時点において抽選された抽選用乱数値により決定される停止図柄を表示して停止するようになっている。
【０１０９】
図柄始動口３５は、左右１対の開閉爪３５ａを備えた電動式チューリップで開閉され、普通図柄表示部３９の変動後の停止図柄が当り図柄を表示した場合には、開閉爪３５ａが所定時間だけ開放されるようになっている。図柄始動口３５に遊技球が入賞すると、特別図柄表示部Ｄａ〜Ｄｃの表示図柄が所定時間だけ変動し、図柄始動口３５への遊技球の入賞タイミングに応じた抽選結果に基づいて決定される停止図柄パターンで停止する。
【０１１０】
大入賞口３６は、前方に開放可能な開閉板３６ａで開閉制御されるが、特別図柄表示部Ｄａ〜Ｄｃの図柄変動後の停止図柄が「７７７」などの当り図柄のとき、「大当り」と称する特別遊技が開始され、開閉板３６ａが開放されるようになっている。大入賞口３６の内部に特定領域３６ｂがあり、この特定領域３６ｂを入賞球が通過すると、遊技者に有利な特別遊技が継続される。
【０１１１】
大入賞口３６の開閉板３６ａが開放された後、所定時間が経過し、又は所定数（例えば１０個）の遊技球が入賞すると開閉板３６ａが閉じる。このとき、遊技球が特定領域３６ｂを通過していない場合には特別遊技が終了するが、特定領域３６ｂを通過していれば、最大で例えば１５回まで特別遊技が継続され、遊技者に有利な状態に制御される。さらに、変動後の停止図柄が特別図柄のうちの一定図柄（以下、特定図柄）であった場合には、特別遊技の終了後に高確率状態に移行するという特典が付与される。
【０１１２】
図２３に示すように、前枠２４の裏側には、遊技盤２５を裏側から押さえる裏機構板４０が着脱自在に装着されている。この裏機構板４０には開口部４０ａが形成され、その上側に賞球タンク４１と、これから延びるタンクレール４２とが設けられている。裏機構板４０の側部には、タンクレール４２に接続された払出装置４３が設けられ、裏機構板４０の下側には払出装置４３に接続された通路ユニット４４が設けられている。払出装置４３から払出された遊技球は、通路ユニット４４を経由して上皿排出口２８ａ（図２０）から上皿２８に払出されることになる。
【０１１３】
裏機構板４０の開口部４０ａには、遊技盤２５の裏側に装着された裏カバー４５と、入賞口３５〜３７に入賞した遊技球を排出する入賞球排出樋（不図示）とが嵌合されている。この裏カバー４５に装着されたケースＣＡ１の内部に主制御基板１が配設され、その前側に図柄制御基板２が配設されている（図２１参照）。主制御基板１の下側で、裏カバー４５に装着されたケースＣＡ２の内部にランプ制御基板４が設けられ、隣接するケースＣＡ３の内部に音声制御基板３が設けられている。
【０１１４】
これらケースＣＡ２，ＣＡ３の下側で、裏機構板４０に装着されたケースＣＡ４の内部には、電源基板６と払出制御基板５が設けられている。この電源基板６には、電源スイッチ５３と初期化スイッチ５４とが配置されている。これら両スイッチ５３，５４に対応する部位は切欠かれ、両スイッチを指で同時に操作可能になっている。発射ハンドル３０の後側に装着されたケースＣＡ５の内部には、発射制御基板７が設けられている。そして、これらの回路基板１〜７は夫々独立して構成され、電源基板６と発射制御基板７を除く制御基板２〜６には、ワンチップマイコンを備えるコンピュータ回路が搭載されている。
【０１１５】
以上、本発明の一実施例について具体的に説明したが、本発明の遊技機は、上記した各実施例の構成に限らず適宜変更可能である。例えば、上記の実施例では、主制御基板と複数のサブ制御基板とをそれぞれ別の基板構成として、主制御基板からの制御コマンドを一方向通信によって伝送したが、例えば、図２４の構成も含め、任意の組合せ構成が可能である。図２４では、矢印が制御コマンドなどの信号の伝送方向を示しており、例えば、図２４（ｂ）のように、確認信号（ＡＣＫ）を返送するようにしても良い。また、音声制御基板を独立した回路基板に構成する必要はなく、図２４（ｂ）（ｃ）のように、他の制御部との複合基板としても良い。
【図面の簡単な説明】
【０１１６】
【図１】Ｆｉコマンド取得用の変換テーブル（ａ）と、Ｆｉコマンドの抽選テーブル（ｂ）である。
【図２】ＦｉコマンドとＳｉコマンドとサウンドＮＯの関係を説明する図面である。
【図３】ＦｉコマンドからＳｉコマンドを特定する方法を図示したものである。
【図４】ＳｉコマンドからサウンドＮＯを特定する方法を図示したものである。
【図５】サウンドＮＯから音声データを特定する方法（ａ）と、音声データのデータ構造（ｂ）を図示したものである。
【図６】メインルーチンを説明するフローチャートである。
【図７】タイマ割込みルーチンを説明するフローチャート（ａ）、及びその作業領域を図示したものである。
【図８】タイマ割込みルーチンの一部を詳細に図示したフローチャートである。
【図９】タイマ割込みルーチンの一部を詳細に図示したフローチャートである。
【図１０】メインルーチンの一部を詳細に図示したフローチャートである。
【図１１】図１０の一部を詳細に図示したフローチャートである。
【図１２】メインルーチンの一部を詳細に図示したフローチャートである。
【図１３】サウンド制御用の作業テーブルＳＮＤＣＴＢＬを図示したものである。
【図１４】音声出力用の割込み処理を説明するフローチャートである。
【図１５】制御コマンド受信用の割込み処理を説明するフローチャートである。
【図１６】図６の一部を詳細に説明するフローチャートである。
【図１７】実施例に係るパチンコ機の全体構成を示すブロック図である。
【図１８】音声制御基板の構成を示すブロック図である。
【図１９】ＣＨ０の内部割込みを説明する概略フローチャートである。
【図２０】実施例に係るパチンコ機の斜視図である。
【図２１】図２０のパチンコ機の側面図である。
【図２２】図２０のパチンコ機の正面図である。
【図２３】図２０のパチンコ機の背面図である。
【図２４】基板構成の変形例を図示したものである。
【符号の説明】
【０１１７】
ＳＴ１〜１４        メイン処理部
ＳＴ２０〜２７      割込み処理部（タイマ割込み）
ＳＴＯＵＴ１〜１２  割込み処理部（音声出力割込み）
ＷＤＴ              リセット部（ウォッチドッグタイマ）
Ｓ１０２〜１０３    リセット禁止手段
１                  主制御部（主制御基板）
３                  音声制御部（音声制御基板）
２１    遊技機（パチンコ機）
【図１】
2006102554.tif 000003
【図２】
2006102554.tif 000004
【図３】
2006102554.tif 000005
【図４】
2006102554.tif 000006
【図５】
2006102554.tif 000007
【図６】
2006102554.tif 000008
【図７】
2006102554.tif 000009
【図８】
2006102554.tif 000010
【図９】
2006102554.tif 000011
【図１０】
2006102554.tif 000012
【図１１】
2006102554.tif 000013
【図１２】
2006102554.tif 000014
【図１３】
2006102554.tif 000015
【図１４】
2006102554.tif 000016
【図１５】
2006102554.tif 000017
【図１６】
2006102554.tif 000018
【図１７】
2006102554.tif 000019
【図１８】
2006102554.tif 000020
【図１９】
2006102554.tif 000021
【図２０】
2006102554.tif 000022
【図２１】
2006102554.tif 000023
【図２２】
2006102554.tif 000024
【図２３】
2006102554.tif 000025
【図２４】
2006102554.tif 000026
【手続補正書】
【提出日】平成18年1月16日(2006.1.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
遊技動作を中心的に制御する主制御部と、前記主制御部からの制御コマンドに基づいて音声演出を実現する音声制御部とを備える遊技機において、前記音声制御部は、無限ループ状に実行されるメイン処理と、実行中の他の処理を中断して音声信号を出力する割込み処理とを備えて構成され、
前記割込み処理は、出力すべき有意な音声信号の有無に係わらず定常的に起動されるようになっていることを特徴とする遊技機。
【請求項２】
前記割込み処理は、受信した制御コマンドに対応する音声信号を出力する一方、この音声信号を出力し終えた後は、無音信号を音声回路に出力しつづけるよう機能している請求項１に記載の遊技機。
【請求項３】
無限ループ状に実行されるメイン処理部と、実行中の他の処理を中断して一単位分の音声出力処理を実行する割込み処理部とを備え、
計時タイマが所定の上限値に達すると、前記計時タイマが初期値に戻されると共に前記割込み処理が起動されるよう構成されている請求項１又は２に記載の遊技機。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上記課題を解決するために、請求項１に係る発明は、遊技動作を中心的に制御する主制御部と、前記主制御部からの制御コマンドに基づいて音声演出を実現する音声制御部とを備える遊技機において、前記音声制御部は、無限ループ状に実行されるメイン処理と、実行中の他の処理を中断して音声信号を出力する割込み処理とを備えて構成され、前記割込み処理は、出力すべき有意な音声信号の有無に係わらず定常的に起動されるようになっている。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
本発明では、常に音声回路が駆動されるので、異常音が長時間にわたって発生する可能性が事実上ない。ここで、前記割込み処理は、受信した制御コマンドに対応する音声信号を出力する一方、この音声信号を出力し終えた後は、無音信号を音声回路に出力しつづけるよう機能しているのが好適である。