以下、実施例に基づいて本発明を更に詳細に説明する。図1〜図4は、実施例に係るスロットマシンSLを図示したものである。本スロットマシンSLは、矩形箱状の本体ケース1と、各種の遊技部材を装着した前面パネル2とが、ヒンジ3を介して連結され、前面パネル2が本体ケース1に対して開閉可能に構成されている(図2)。そして、図1は前面パネル2の正面図、図2はスロットマシンSLの右側面図(a)と平面図(b)、図3は前面パネル2の背面図、図4は本体ケース1の内部正面図を示している。
図4に示す通り、本体ケース1の略中央には、3つの回転リール4a〜4cを備える図柄回転ユニット4が配置され、その下側に、メダル払出装置5が配置されている。各回転リール4a〜4cには、BB図柄、RB図柄、各種のフルーツ図柄、及びリプレイ図柄などが描かれている。メダル払出装置5には、メダルを貯留するメダルホッパー5aと、払出モータMと、メダル払出制御基板55と、払出中継基板63と、払出センサ(不図示)などが設けられている。ここで、メダルは、払出モータMの回転に基づいて、払出口5bから図面手前に向けて導出される。なお、限界量を越えて貯留されたメダルは、オーバーフロー部5cを通して、補助タンク6に落下するよう構成されている。
上記のメダル払出装置5に隣接して電源基板62が配置され、また、図柄回転ユニット4の上部に主制御基板50が配置され、主制御基板50に隣接して回胴設定基板54が配置されている。なお、図柄回転ユニット4の内部には、回胴LED中継基板58と回胴中継基板57とが設けられ、図柄回転ユニット4に隣接して外部集中端子板56が配置されている。
図1に示すように、前面パネル2の上部には液晶表示ユニット7が配置されている。この表示ユニット7には、各種のキャラクタを表示することで遊技動作を効果的に盛り上げている。但し、異常事態が検出された場合には、液晶表示ユニット7には、異常事態を特定する異常報知画面が表示される。ここで、異常報知画面は、図11(c)に示すように、強調表示領域と、一般表示領域に区分されている。そして、複数の異常事態が検出された場合には、その重要レベルに応じて、最高レベルの異常が強調表示領域に表示され、その他の異常が一般表示領域に表示されるようになっている。
このような液晶表示ユニット7の下部には、回転リール4a〜4cに対応する3つの表示窓8a〜8cが配置されている。表示窓8a〜8cを通して、各回転リール4a〜4cの回転方向に、各々3個程度の図柄が見えるようになっており、合計9個の図柄の水平方向の三本と、対角線方向の二本が仮想的な停止ラインとなる。
このような表示窓8aの左側には、遊技状態を示すLED群9が設けられ、その下方には、遊技成果として払出されるメダル数を表示する払出表示部10や、クレジット状態のメダル数を表示する貯留数表示部11が設けられている。
払出表示部10は、7セグメントLEDを2個連設して構成されており、払出メダル数を特定すると共に、何らかの異常事態の発生時には、異常内容を表示するエラー表示器としても機能している。この実施例では、エラー表示器としての表示内容は、図10(b)に例示する6パターンの何れかであり、遊技者や係員は、その表示内容に基づいて、発生している異常事態の内容を特定できるようになっている。
但し、払出表示部10の表示ケタが制限されているので、複数の異常事態が同時に発生した場合には、複数の異常の中で重要度が最も高い異常だけを報知するようにしている。重要度は、適宜に設定されるが、この実施例では、0〜5に付番されているエラー番号の数値に対応している。
すなわち、エラー番号5の「払出センサエラー」は、違法行為の発生に基づく可能性が高いので、最重要レベルに規定されており、他のエラーと重複した場合にも、必ず、払出表示部(エラー表示器)10には、エラー報知文字「HJ」が表示される。また、このエラー報知文字に対応して、液晶表示ユニット7には、その強調表示領域に「払出センサエラー」の文字が表示される。
そのため、違法行為者が、軽微なエラーを意図的に発生させた後に、違法なメダル払出動作を図っても、メダル払出センサ(図5)のON動作に対応して、エラー表示器10と液晶表示ユニット7とで、図11(c)に例示するような報知動作が整合した実行されることになり、防犯効果を高めている。
後述するように、異常発生時には、1バイト長のエラーフラグERがセットされるが、エラー番号に対応するビットがセット状態になることで、エラー番号が特定される。すなわち、この実施例では、エラー番号0〜5と、エラーフラグERのエラービット(bit0〜bit5)とが一対一に対応している。但し、エラーフラグERのbit6とbit7は、未使用であり、常に0に固定されている。
前面パネル2の垂直方向中央には、メダルを投入するメダル投入口12が設けられ、これに隣接して、メダル投入口12に詰まったメダルを返却させるための返却ボタン13が設けられている。また、クレジット状態のメダルを払出すクレジット精算ボタン14と、メダル投入口12へのメダル投入に代えてクレジット状態のメダルを擬似的に一枚投入する投入ボタン15と、クレジット状態のメダルを擬似的に三枚投入するマックス投入ボタン16とが設けられている。
これらの遊技部材の下方には、回転リール4a〜4cの回転を開始させるスタートレバー17と、回転中の回転リール4a〜4cを停止させるためのストップボタン18a〜18cが設けられている。その他、前面パネル2の下方には、メダルを蓄える横長の受け皿19と、払出装置5の払出口5bに連通するメダル導出口20とが設けられている。なお、メダル導出口20の左右にはスピーカSPが配置されている。
図3に示すように、前面パネル2の裏側には、メダル投入口12に投入されたメダルの選別を行うメダル選別装置21と、メダル選別装置21により不適正と判別されたメダルをメダル導出口20に案内する返却通路22とが設けられている。また、前面パネル3の裏側上部には、演出制御基板51、演出インタフェイス基板52、及び液晶制御基板61などを収容する基板ケース23が配置されている。そして、メダル選別装置21の上部には、図1に示す各種の遊技部材と主制御基板50との間の信号を中継する遊技中継基板53が設けられている。
図5は、実施例に係るスロットマシンSLの回路構成を示すブロック図である。図示の通り、このスロットマシンSLは、回転リール4a〜4cを含む各種の遊技部材の動作を制御する主制御基板50と、主制御基板50から受けた制御コマンドに基づいて演出動作を実現する演出制御基板51と、交流電圧(24V)を直流電圧(5V,12V,24V)に変換して装置各部に供給する電源基板62とを中心に構成されている。
主制御基板50は、演出制御基板51に対して、スピーカSPによる音声演出、LEDランプや冷陰極線管放電管によるランプ演出、及び、液晶表示ユニット7による図柄演出を実現するための制御コマンドを出力している。そして、演出制御基板51では、主制御基板50から受ける所定の制御コマンド(遊技開始コマンド)に基づいて、アシストタイム当選状態とするか否かのAT抽選を実行している。
この演出制御基板51は、演出インタフェイス基板52を通して、液晶制御基板61に接続されており、液晶制御基板61は、液晶表示(LCD)ユニット7における適宜な図柄演出を実現している。
演出制御基板51は、演出インタフェイス基板52と共に、LED基板59やインバータ基板60や回胴LEDドライブ基板58を経由して、各種のLEDや冷陰極線管放電管におけるランプ演出を実現している。また、演出制御基板51は、演出インタフェイス基板52を通してスピーカSPを駆動して音声演出を実現している。
そして、演出制御基板51においてAT抽選に当選した後の所定回数のゲーム(AT中)では、小役当選状態において、その図柄を停止ラインに整列できるよう、3つの回転リールの停止順序を遊技者に報知している。このアシスト動作は、図柄演出、液晶演出、ランプ演出、音声演出の全部又は一部として実行される。
主制御基板50は、遊技中継基板53を通して、スロットマシンの各種遊技部材に接続されている。具体的には、スタートレバー17の始動スイッチ、ストップボタン18a〜18cの停止スイッチ、投入ボタン15,16の投入スイッチ、清算ボタン14の清算スイッチ、前面パネル2の開閉を認識するドアセンサ、投入枚数判定部21dを構成するフォトインタラプタPH1,PH2、投入メダル返却部21cを構成するブロッカーソレノイド30、及び、各種LED素子9〜11などに接続されている。
ここで、フォトインタラプタPH1,PH2は、メダルが正当に通過したか否かを判定するメダル通過センサとして機能しており、メダルが逆行するなどの異常の発生を検出している。投入されたメダルが逆行する事態は、違法行為に起因する可能性が高いので、本実施例では、「投入メダルエラー」として、重要レベル4に位置付けられている(図10参照)。
また、主制御基板50は、回胴中継基板57を経由して、回転リール4a〜4cを回転させる3つのステッピングモータ、及び、回転リール4a〜4cの基準位置を検出するためのインデックスセンサに接続されている。そして、ステッピングモータを駆動又は停止させることによって、回転リール4a〜4cの回転動作と、目的位置での停止動作を実現している。インデックスセンサは、当選していない図柄が、有効ラインに停止した「不当入賞エラー」(図10参照)を検出する機能も有している。
主制御基板50は、払出中継基板63を通してメダル払出装置5にも接続されている。メダル払出装置5には、メダル払出制御基板55と、メダル満杯センサと、メダル払出センサと、払出モータMとが設けられており、メダル払出制御基板55は、主制御基板50からの制御コマンドに基づいて払出モータMを回転させて、所定量のメダルを払出している。
メダル満杯センサは、補助収納庫にメダルが満杯状態になった「オーバーフロー異常」を検出し、メダル払出センサは、払出メダル枚数が不足する不足異常や、遊技機による払出動作を伴わない異常払出を検出している。図10に示す通り、メダル払出センサが一定時間継続してONした異常払出や、払出処理中でないときに、メダル払出センサがONになった異常払出は、違法遊技の可能性が高いので、「払出センサエラー」として最重要レベル5に位置付けられている。
その他、主制御基板50は、外部集中端子板56と、回胴設定基板54にも接続されている。外部集中端子板56は、例えばホールコンピュータHCに接続されており、主制御基板50は、外部集中端子板56を通して、メダルの投入枚数やメダルの払出枚数などを出力している。また、回胴設定基板54は、係員が設定キーで設定した設定値を示す設定キー信号などを出力している。
ここで、設定値とは、当該遊技機で実行される抽選処理の当選確率などを、設定1から設定6まで6段階で規定するもので、遊技ホールの営業戦略に基づいて適宜に設定される。例えば、最高ランクに設定された遊技機は、メダル払出枚数の期待値が最高レベルであるため、遊技者にとって最も有利である。
図6は、主制御基板50の回路構成を図示したものである。図示の通り、主制御基板50は、ワンチップマイコン64と、8bitパラレルデータを入出力するI/Oポート回路65と、ハードウェア的に乱数値を生成するカウンタ回路66と、演出制御基板51などの外部基板とのインタフェイス回路とを中心に構成されている。ここで、ワンチップマイコン64は、Z80相当品のCPUコア64a、ROM、RAMなどの他に、CTC(Counter/Timer Circuit)64bや、割込みコントローラ64cなどを内蔵している。
CTC64bは、8bitのカウンタやタイマを集積した回路であり、Z80システムに、周期的割り込みや一定周期のパルス出力作成機能(ビットレートジェネレータ)や時間計測の機能を付与するものである。そこで、本実施例では、CTC64bを利用して、Z80CPU64aに1.5mS程度の時間間隔τでタイマ割込み(図11(a))をかけている。
インタフェイス回路としては、電源回路とのインタフェイス回路67、遊技中継基板53とのインタフェイス回路68と、回胴モータ駆動回路69と、演出制御基板51とのインタフェイス回路70などが設けられている。そして、電源遮断時には、インタフェイス回路67を通して、Z80CPU64aに電圧降下割込みをかけている。なお、回胴モータ駆動回路69は、回転リール4a〜4cのステッピングモータの駆動信号を生成する回路であり、インタフェイス回路70は、演出制御基板51に制御コマンドを出力するための8ビットパラレルポートである。
図7は、カウンタ回路66をより詳細に例示した回路図である。図示のカウンタ回路66は、スタートレバー17のON操作を示す始動スイッチ信号SGを受ける入力部24と、2つのD型フリップフロップ25a,25bによる信号取得部25と、ハードウェア乱数の下位8ビット(LOW)を生成するICカウンタ26Lと、ハードウェア乱数の上位8ビット(HI)を生成するICカウンタ26Hとを中心に構成されている。そして、ICカウンタ26H,26Lの各出力端子(QA〜QH)は、データバスを通して、ワンチップマイコン64(CPUコア64a)に接続されている。
入力部24は、抵抗とコンデンサによるローパスフィルタと、シュミットトリガ型のインバータとで構成されている。そのため、負論理の始動スイッチ信号SGは、論理変換されて信号取得部25に供給される。
信号取得部25は、直列接続された2つのD型フリップフロップ25a,25bで構成されている。そして、各クロック端子CLKには、基準パルスΦが供給されており、基準パルスΦの立ち上がりエッヂのタイミングで、D入力端子のデータが取得されてQ出力端子に出力される。したがって、始動スイッチ信号SGがLレベルに変化した後、2つ目の基準パルスΦの立ち上がりエッヂで、各ICカウンタ26L,26Hのロック端子RCLKが、Hレベルに立ち上がる。
基準パルスΦは、専用の発振回路によって、システムクロックとは別に発振させるのが好ましいが、簡易的には、ワンチップマイコン64を動作させるシステムクロックを基準パルスΦに代用しても良い。
2つのICカウンタ26は、いずれも、8ビットのバイナリカウンタと8ビットの出力レジスタとを内蔵している。そして、クロック端子CCLKに供給されるクロック信号を2進カウントする一方、ロック端子RCLKに保持信号を受けると、その瞬間のバイナリカウンタのカウンタ値が、内蔵する出力レジスタに記憶されるようになっている。なお、出力レジスタに記憶されたカウンタ値は、出力イネーブル端子OEがLレベルであることを条件に、外部出力端子(QA〜QH)に出力される。
図示の通り、このカウンタ回路66では、電源電圧値(DC5V)が正常値である限り、基準パルスΦが、NANDゲートを経由して下位ICカウンタ26Lのクロック端子CCLKに供給される。一方、上位ICカウンタ26Hには、下位ICカウンタ26Lの桁上げ信号RCOが供給されている。そのため、2つのICカウンタ26は、全体として16ビットカウンタとして機能することになり、2つの内部カウンタは、0000H〜FFFFH(10進数65535)カウンタ値の間で循環することになる。なお、添字Hは、以下の場合も含め、16進数を意味する。
先に説明した通り、始動スイッチ信号SGがLレベルに変化すると、これに対応して、各ICカウンタ26L,26Hのロック端子RCLKがHレベルに立ち上がり、内部のバイナリカウンタの値が出力レジスタに保持される。一方、各ICカウンタ26L,26Hの出力イネーブル端子OEには、ワンチップマイコン64からチップセレクト信号CS0,CS1が供給されている。そのため、ワンチップマイコン64は、必要時に、チップセレクト信号CS0,CS1をLレベルに変化させることによって、ICカウンタ26L,26Hに内蔵の出力レジスタが保持するデータQA〜QHを取得できることになる。
図8は、電源基板62の回路構成を示すブロック図である。この電源基板62は、交流24Vを受けて脈流電圧に変換する整流部80と、脈流電圧を直流5Vに変換する第1電圧変換部81と、脈流電圧を直流12Vに変換する第2電圧変換部82と、脈流電圧を直流24Vに変換する第3電圧変換部83と、第1電圧変換部81の出力電圧を蓄電する蓄電部84と、電源遮断状態を検出して検出信号RESを出力する電源監視部85とで構成されている。
蓄電部84は、大容量(1ファラッド程度)のコンデンサCと、過電流用の制限抵抗r1、r2と、逆方向電流を阻止するダイオードDとで構成されている。なお、制限抵抗r1は75Ω程度、制限抵抗r2は10Ω程度である。コンデンサCの両端電圧は、バックアップ電源として、ワンチップマイコン64に供給されている。
このバックアップ電源は、ワンチップマイコン64に内蔵されたSRAM(static ram)に供給されており、電源電圧の遮断状態でも、通常7〜8日はRAM(Random Access Memory)の記憶内容を保持するようにしている。なお、RAMの記憶容量は、この実施例では、遊技機のワークエリアとして使用される512バイト程度である。
電源監視部85は、交流入力電圧24Vの電圧レベルと、直流電源電圧5Vの電圧レベルとを監視している。そして、何れか一方のレベルが所定値を下回ると、検出信号RESがLレベルに変化するよう構成されている。瞬停や停電などの異常時には、先ず、交流入力電圧の電圧降下に対応して、検出信号RESが素早く出力される。
この検出信号RESは、主制御基板50のインタフェイス回路67(図6)に供給されて、正論理の異常信号ALMと、負論理の異常信号ALMバーとなる。そして、正論理の異常信号ALMがI/Oポート回路65に供給される一方、負論理の異常信号ALMバーは、ワンチップマイコン64の割込み端子INT(maskable Interrupt)に供給される。したがって、この時、CPUコア64aが割込み許可状態であれば、負論理の異常信号ALMバーに基づいて、電圧降下割込み処理が開始されることになる。
図6のインタフェイス回路67には電源リセット回路も内蔵されている。そして、電源投入時には、インタフェイス回路67で生成されたリセット信号が、ワンチップマイコン64のリセット端子RST0に供給される。その結果、CPUコア64aがリセット状態となり、ROMの先頭アドレス以降の制御プログラムの実行が開始されることになる。
続いて、主制御基板50のワンチップマイコン64(以下、主制御部50という)が実現する制御動作を説明する。図9は、主制御部50が実行する制御プログラムを説明するフローチャートである。主制御部50の制御プログラムは、電源投入時に開始される無限ループ状のメイン処理(図9(a))と、CTCからの定期割込みで一定時間τ毎に起動されるタイマ割込み処理(図11(a))と、電源遮断時に電源基板62からの検出信号RESで起動される電圧降下割込み処理(不図示)とで構成されている。但し、電圧降下割込み処理は、本発明の趣旨と関連性が乏しいので説明を省略し、先ず、図9(a)のメイン処理について説明する。
電源が投入されると適宜な初期処理(ST1)の後、電源遮断前に実行されていた処理を再開してホットスタートするか、或いは、ステップST2の処理に移行してコールドスタートする。例えば、営業開始前に係員が設定キーを操作して、抽選処理の当選確率などを設定した場合には、コールドスタート処理となる。
ステップST2の処理に移行すると、主制御部50では、一連のメインループ処理(ST2〜ST17)を定常的に繰返す。そして、最初に、RAMのワークエリアを適宜にクリアし、また、遊技制御を管理する各種のフラグを適宜に初期設定する(ST2)。次に、そのゲームにおける遊技状態フラグを生成する(ST3)。ここで、遊技状態フラグとは、現在のゲームが、「ボーナスゲーム中」か、「ボーナス内部当選中」か、「通常ゲーム中」か、などの遊技状態を特定するフラグである。
続いて、メダル投入口12から実際に投入されたメダル、及び、投入ボタン15、16の押下によって擬似的に投入されたメダルについてのメダル投入管理処理が実行される(ST2)。メダル投入管理処理(ST2)では、遊技者が投入又は擬似投入したメダルを検出して、その投入枚数を判定し、その後、スタートレバー17がON操作されるとサブルーチン処理を終了する。この場合、メダルが1枚投入される毎に、そのことを示す制御コマンド(投入コマンド)が演出制御基板51(以下、演出制御部51という)に送信する。なお、このタイミングでは、遊技者による清算動作を示す清算コマンドなどが送信されることもある。
本実施例の制御コマンドは、エラーコマンドも含めて、全て2バイト長であり、最上位ビット(Most Significant Bit)が「1」の上位バイトDHと、最上位ビットが「0」の下位バイトDLとに区分され(図9(b))、1バイト毎に主制御部50から演出制御部51に伝送される。ここで、上位バイトDHには、上記した遊技状態フラグの値を示す3ビット長と、制御コマンドの種別を示す4ビット長(ステイタス情報)とが含まれている。また、下位バイトDLには、演出制御部51に伝送すべき通知情報である7ビット長のイベント情報EVENTが含まれている。
ところで、スタートレバー17がON操作されると、始動スイッチ信号SGがLレベルに変化し、その瞬間のカウンタ値が、各ICカウンタ26H,26Lに内蔵された出力レジスタに保持記憶される(図7参照)。そこで、スタートレバー17がON操作されると、ICカウンタ26H,26Lに記憶されている乱数値が取得される(ST5)。具体的には、ワンチップマイコン64は、チップセレクト信号CS0,CS1をLレベルに変化させて、カウンタ回路66に保持されているカウンタ値を取得し、これが、乱数値RND(数値範囲:0〜65535)としてRAMの該当番地に記憶される。
次に、記憶した乱数値RNDに基づいて内部抽選処理(図柄抽選処理)を実行する(ST6)。この図柄抽選処理では、ボーナス図柄への当選か否か、小役図柄への当選か否か、再遊技を示すリプレイ図柄への当選か否かが決定され、決定された抽選結果を示す制御コマンド(遊技開始コマンド)が演出制御部51に送信される。なお、小役図柄としては、例えば、「チェリー図柄」、「ベル図柄」、「スイカ図柄」などを例示することができる。
このような当選確率の内部抽選処理(ST6)が終われば、次に、回転リール4a〜4cを回転させるための準備作業が実行され、タイマ割込みによる回転リール4a〜4cの回転制御を可能にする(ST7〜ST8)。また、回転リールの回転開始時には、そのことを示す制御コマンド(回転開始コマンド)が演出制御部51に送信される。
その後、ストップボタン18a〜18cが押されたら、対応する回転リール4a〜4cを停止させる回胴停止処理を実行する(ST9)。この回胴停止処理では、内部抽選処理(ST6)の当否結果に沿うように、停止制御が実行される。すなわち、内部抽選処理(ST6)の結果、何らかの内部当選状態であれば、遊技者の適切な停止操作を条件として、当選結果に合うよう回転リール4a〜4cの図柄を整列させる。但し、遊技者がストップボタンを押すタイミングや、停止操作の順番が不適切である場合には、ハズレ状態の図柄で停止される。この結果、折角の小役当選も無駄になるが、ボーナス当選については、次回のゲーム以降も持ち越される。なお、遊技状態がAT(アシストタイム)中であれば、小役当選時に正しい停止操作順が遊技者に報知されるアシスト動作(AT動作)が実行されるので、メダルの取りこぼしが回避可能となる。
また、この回胴停止処理(ST9)では、ストップボタン18a〜18cが押される毎に、操作されたストップボタンを特定する制御コマンド(停止受付コマンド)が演出制御部51に送信される。また、各回転リール4a〜4cについての停止制御が完了する毎に、停止位置を示す制御コマンド(停止結果コマンド)が演出制御部51に送信される。
このようにして、3回の停止操作と停止制御動作が完了して全ての回転リール4a〜4cが停止したら、有効ライン上に、当選図柄(当選役)が揃ったか否かが判定され、その結果を示す制御コマンド(入賞情報コマンド)が演出制御部51に送信される(ST10)。また、当選図柄が揃っている場合には、必要数のメダルが払出されると共に、メダル払出を示す制御コマンド(払出コマンド)が演出制御部51に送信される(ST11)。
次に、リプレイ当選状態か否か判定され(ST12)、リプレイ当選状態であれば、再遊技動作の開始処理(ST15)を実行した後、ステップST2に移行する。
リプレイ当選状態でない場合には、現在がボーナスゲーム中か否か判定され(ST13)、ボーナスゲーム中であれば、対応する処理(ST16)を実行してステップST2に移行する。
一方、ステップST13の判定がNOの場合には、ボーナス図柄が揃っているか否か判定され(ST14)、ボーナス図柄が揃っている場合には、ボーナスゲームの開始処理(ST17)を実行した後、ステップST2に移行する。
続いて、図11(a)に基づいて、所定時間毎(τ)に起動されるタイマ割込み処理について説明する。タイマ割込み処理では、CPUのレジスタが退避された後(ST20)、各種スイッチ信号やセンサ信号を受ける入力ポートのデータが取得され記憶される(ST21)。記憶されるデータには、メダル払出センサ、メダル通過センサ、メダル満杯センサ、インデックスセンサ、ドアセンサなど、図10に示す異常を検出するためのセンサ信号のデータが含まれている。
そして、記憶されたセンサ信号のデータに基づいて、異常監視処理が実行される(ST22)。すなわち、本実施例では、遊技動作中も、割込み周期(τ)の間隔で、繰返しセンサ信号のレベルがチェックされており、異常事態を見逃すことがない。この異常監視処理(ST22)は、図11(b)に示す通り、異常事態が新規に発生するか、或いは、それまで以上の重要レベルの異常事態が発生したことを検出する第一検出処理(ST30)と、全ての異常事態が消滅したか、或いは、それまでの最高レベルの異常事態が消滅したことを検出する第二検出処理(ST31)と、に区分されている。
最初に概略説明をすると、第一検出処理(ST30)では、前回の割込み処理で生成されたエラーフラグERと、今回の割込み処理で新規に生成された検出フラグDTとが比較され、異常事態が発生又は追加された場合には、異常事態を特定するエラーコマンドが生成される。そして、生成されたエラーコマンドは、ステップST25の処理で演出制御部51に伝送される。なお、異常事態の深刻レベルが高い場合には、遊技動作が停止されることも含め、それに対応する適宜な警報動作を実行するよう構成されている。
図12は、この第一検出処理(ST30)の処理内容を具体的に示すフローチャートである。先ず、ステップ21の処理で取得したセンサ信号に基づいて、検出フラグDTを設定する(ST34)。ここで、検出フラグDTは、図10(c)に示すエラーフラグERと同一構成であり、エラー番号0〜5の異常事態の何れか一以上が検出された場合には、Bit0〜Bit5の該当ビットを1にセットする。なお、それ以外の正常ビットは0にリセットする。
次に、前回の割込み処理で生成されたエラーフラグERと、ステップST34の処理で生成した検出フラグDTとを比較する(ST35)。ここで、エラーフラグER=検出フラグDTとなる場合は、異常事態に関して、前回の割込み処理時から何の変化も認められないことを意味する。そこで、ER=DTとなる場合には、変化検出フラグFLGをリセットしてサブルーチン処理を終える(ST36)。なお、エラーフラグERは、CPUリセット時に0に初期設定されており、エラーが検出されない限り、ST34→ST35→ST36の処理を繰り返す。
一方、エラーフラグER≠検出フラグDTとなる場合は、新規に異常事態が検出されたか、或いは、検出済みの異常事態が消滅したことを意味し、要するに、異常事態が変化したことを意味する。そこで、この場合には、変化検出フラグFLGを1にセットした上で(ST37)、検出フラグDTに基づいてエラーコマンドを生成して通信バッファBUFに設定する(ST38)。
図13(b)に示す通り、通信バッファBUFは、リングバッファ形式のMAXバイト長(BUF+1番地〜BUF+MAX番地)の記憶領域である。そして、0〜MAX−1の間で循環的に更新される書込みポインタWRと読出しポインタRDによって、書込み動作と読出し動作が管理されている。
コマンド設定処理(ST38)は、図13(a)に示す通りであり、検出フラグDTに基づいてエラーコマンドの上位バイトDHと下位バイトDLとを生成する(ST50)。ここで、エラーコマンドの上位バイトDHは、エラーコマンドであることを示す4ビット長ステイタス情報を含んでいる(図9(b))。また、下位バイトDLの7ビット長イベント情報は、検出フラグDTのMSB(Most Significant Bit)を除いた7ビットデータと同じであり、エラー番号を特定している。なお、下位バイトDLの7ビット長が全て0の場合には、発生していたエラーが全て消滅したことを意味するエラー解除コマンドとなる。
次に、送信予定の制御コマンドの個数を特定するべく、送信回数カウンタCTを+2する(ST51)。そして、書込みポインタWRをインクリメント(+1)しつつ(ST52,ST54)、2バイト長のエラーコマンド(DH+DL)を、順番に通信バッファBUFの該当領域に格納してサブルーチン処理を終える(ST53,ST55)。なお、通信バッファBUFには、遊技開始コマンドなどの一般の制御コマンドも格納され、送信回数カウンタCTは、図13(c)に示すコマンド出力処理(図11のST25)を実行する毎に−1される(ST65)。
以上のようにして、エラーコマンドを通信バッファBUFに設定すると、次に、重要度が最高レベルの異常を払出表示部(エラー表示器)10に表示するための制御処理が実行される。
具体的には、シフト回数をカウンタするためのBレジスタに8を初期設定すると共に、エラーフラグERと検出フラグDTの各1バイトデータを、DレジスタとEレジスタに設定する(ST39)。ここで、Bレジスタ、Dレジスタ、及びEレジスタは、Z80相当品であるCPUコア64aの内蔵レジスタである。
次に、エラーフラグERに検出フラグDTの値を書込むことで、エラーフラグERの値を新規に更新する(ST40)。このようにして初期処理が終われば、Dレジスタの値を1ビット左方向にシフト演算することで、MSB(Most Significant Bit)を、CPU(Z80相当品)のキャリフラグCYに移動させる(ST41)。これは、エラーレジスタERの値(既検出のエラービット)を保持するDレジスタについて、各ビットが1か否かをMSBからLSB(Least Significant Bit)に向けて、重要度が高い順番にチェックするためである。
ここで、キャリフラグCYが1になる場合とは、過去のタイマ割込み時に、当該エラービットに対応する異常が検出されたことを意味しており、この場合には、既に、異常報知動作(ST48+ST27)が実行されている筈である。そこで、検出済みのエラービット(=1)が見つかれば、その後の処理を実行することなくサブルーチン処理を終える(ST42)。なお、過去のタイマ割込み時に検出された異常事態が、今回のタイマ割込み時には消滅している可能性もあるが、消滅した異常事態については、第二検出処理(ST31)において対応している。
一方、ステップST42の判定でキャリフラグCYが0になる場合とは、過去のタイマ割込み時に、当該エラービットに対応する異常が検出されていないことを意味する。そこで、そのような場合には、今回検出された異常事態を保持するEレジスタの値を左方向にシフト演算することで、MSB(Most Significant Bit)を、CPUのキャリフラグCYに移動させる(ST43)。これは、今回検出された新規の異常について、重要度が高い順番にチェックするためである。
そして、キャリフラグCYが1になる場合には、新規の異常事態が検出されたことを意味するので、このことを記憶するべく、変化検出フラグFLGを2にセットする(ST47)。そして、その時のBレジスタの値より1つ小さい値(Bレジスタ−1)に基づいて、エラー番号を特定して、払出表示部(エラー表示器)10に必要なエラー報知をするべく表示設定をする(ST48)。
Bレジスタは、Eレジスタのエラービットが0である限り、デクリメントされる(ST45〜ST46)。そして、Bレジスタの値は、初期値8から→7→6→5→4→3→2→1→0と減少するので、ステップST44のタイミングでは、Bレジスタが、エラー番号+1の値を特定していることになる。図11(c)は、エラー番号5の「払出センサエラー」が、検出された場合を示しており、払出表示部10には、図11のステップST27の処理を経て「HJ」のエラー表示がされる。
また、エラー番号の重要レベルが高い場合には、払出表示部10のエラー報知の表示設定に加えて、必要な警報動作を開始する(ST49)。必要な警報動作としては、遊技機の動作停止、音声による警報動作、遊技機を一元管理するホールコンピュータへの通報などを例示することができ、これらの全部又は一部が、エラー番号の重要レベルに対応して選択される。なお、軽微レベルの異常時には、異常を報知するエラー報知処理だけが実行される。一方、Bレジスタが0になることは本来ありえないので、この場合にはステップST49の処理に移行させている。
図14は、新旧エラービットの態様と、図12の動作内容を説明するための図面である。例えば、エラーフラグER=00000010であって、「不当入賞エラー」が検出済みである状態で、今回のタイマ割込みで、再度、「不当入賞エラー」が検出された場合には、検出フラグDTもDT=00000010となるので、ステップST35の判定を経てサブルーチン処理を終える(図14(b))。したがって、変化検出フラグFLGは0である。
一方、図14(c)は、エラーフラグER=00001000であって、「払出メダル無しエラー」が検出済みである状態で、今回のタイマ割込みでは、「払出メダル無しエラー」に加えて、より重要な「払出センサエラー」が検出された場合を示している。したがって、この場合の検出フラグDTは、DT=00101000である。
このような場合には、ステップST40の処理で、エラーフラグERが検出フラグDTの値に書き換えられて、ER=00101000となり、また、ステップST47〜ST48の処理を経て、変化検出フラグFLG=2となる。そして、払出表示部10には、図11のステップST27の処理を経て、エラー番号5の「払出センサエラー」が、「HJ」の文字で表示される。
図14(d)は、エラー内容が変更された場合を示している。すなわち、エラーフラグER=00000010であって、「不当入賞エラー」が検出済みである状態で、今回のタイマ割込みでは、「不当入賞エラー」が消滅する一方で、「払出メダル無しエラー」が検出されている。
このような場合には、図14(c)の場合と同様に、ステップST40の処理で、エラーフラグERが検出フラグDTの値に書き換えられて、ER=00010000となり、また、ステップST47〜ST48の処理を経て、変化検出フラグFLG=2となり、払出表示部10には、図11のステップST27の処理を経て、エラー番号3の「払出メダル無しエラー」が、「HE」の文字で表示される。
図14(e)は、エラーフラグER=00001010であって、二種類の異常事態が検出済みである状態で、今回のタイマ割込みでは、一方の異常事態が消滅する一方で、消滅した異常より重要度の低い二種類の異常事態が新たに検出された場合を示している。
このような場合には、ステップST40の処理で、エラーフラグERが検出フラグDTの値に書き換えられ、ER=00000111となるが、ステップST42の判定を経てサブルーチン処理を終えるので、変化検出フラグFLG=1であって、このタイミングでは、払出表示部10のエラー表示に変更はない。そのため、既に消滅している異常事態が、このタイミングの制御だけでは報知され続けることになるが、消滅した異常事態に対応する報知動作は、第二検出処理(ST31)において実行されるので問題は生じない。
図14(f)は、エラーフラグER=00001000であって、「払出メダル無しエラー」が検出済みである状態で、今回のタイマ割込みでは、相対的に重要度の低い「ドア開放エラー」「不当入賞エラー」「オーバーフローエラー」が検出された場合を示している。なお、この場合の検出フラグDTは、DT=00001111である。
このような場合には、ステップST40の処理で、エラーフラグERが検出フラグDTの値に書き換えられて、ER=00001111となるが、ステップST42の判定を経てサブルーチン処理を終えるので、変化検出フラグFLG=1であって、このタイミングでは、払出表示部10のエラー表示に変更はない。これは、今回検出されたエラーの重要レベルが、何れも、検出済みのエラーの重要レベルより低いためである。
以上、エラー監視処理(ST22)の第一検出処理(ST30)について説明したので、次に、第二検出処理(ST31)について、図15に基づいて詳細に説明する。
図15(a)に示す通り、第二検出処理(ST31)では、最初に、変化検出フラグFLGの値が判定される(ST70)。図12に関して説明した通り、変化検出フラグFLGは、前回のタイマ割込み時と今回のタイマ割込み時とで、エラー状態に変化がない場合にはFLG=0であり(ST36)、エラー状態の変化が検出されるとFLG>0となる。
そして、エラー状態が変化していた場合、最重要レベルのエラーが、先のタイマ割込み時に、既に検出済みであればFLG=1であり(ST37)、今回検出された新規エラーの重要レベルの方が、高レベルの場合にはFLG=2となっている(ST47)。
そこで、第二検出処理(ST31)では、エラー状態に変化がないか(FLG=0)、変化があっても新規エラーの重要レベルが高い場合(FLG=2)には、そのまま処理を終える。新規エラーの重要レベルが高い場合には、それに対応して、払出表示部10のエラー表示が変更されるよう、第一検出処理において、既に表示設定が終わっており(ST48)、それ以上の処理が必要ないからである。
一方、それ以外の場合(FLG=1)には、払出表示部10のエラー表示を設定又は変更する必要があるので、Bレジスタに8を初期設定すると共に、検出フラグDTの各1バイトデータをEレジスタに設定する(ST71)。ここで、Bレジスタは、Eレジスタのビットデータのシフト回数を管理する用途で使用される。
以上の初期設定が終われば、Eレジスタの値を1ビット左方向にシフト演算することで、MSBをCPUのキャリフラグCYに移動させる(ST72)。これは、今回のタイマ割込みで検出されたエラーについて、MSBからLSBに向けて、1ビット毎に判定するためである。
次に、キャリフラグCYの値を判定する(ST72)。ここで、CY=1となる場合とは、今回のタイマ割込み時に異常事態が検出された場合である。そこで、CY=1となる場合には、ステップST76の処理に移行させて、払出表示部10のエラー表示について、必要な表示設定をする(ST76)。具体的には、その時のBレジスタの値より1つ小さい値(Bレジスタ−1)に基づいて、払出表示部10のエラー表示に関する表示設定をしてサブルーチン処理を終える。
Bレジスタは、デクリメント処理されることで(ST74〜ST75)、初期値8から→7→6→5→4→3→2→1→0と減少するので、ステップST76のタイミングでは、エラー番号+1の値を特定していることになる。
図15(b)は、異常状態が増加しているものの、それまで最高レベルであった異常が消滅した場合を示しており、図14(e)と同一内容である。この場合には、エラー番号0とエラー番号2の異常が増加したが、それまで最高レベルであったエラー番号3の異常が消滅している。そのため、エラー番号3の判定時には、CY=1の条件が成立せず、その後のエラー番号2の判定時に、CY=1の条件が成立する。その結果、ステップST76の処理に基づいて、エラー番号2の表示設定がされる。
ところで、キャリフラグCY=1となる場合に、同じ異常事態が既に前回のタイマ割込みで検出されている場合もある(例えば、図14(f)や図15(c)の場合)。しかし、更新前のエラーフラグERの該当ビットが、「1」であろうが、「0」であろうが、現に今回のタイマ割込み時にも同じエラーが検出されている以上、ステップST76の処理を実行することに何の問題もない。したがって、図14(f)や図15(c)の場合には、第二検出処理のステップST76のタイミングで、エラー番号3の表示設定がされる。そして、この表示設定に対応して、ステップST27の処理を経て、払出表示部10には、「HE」のエラー表示がされる。
なお、この場合のエラー表示は、前回のタイマ割込み処理時と変わらないが、ステップST76の処理で、重複してエラー番号3の表示設定することに特に問題はない。ここで、過去の表示設定を記憶しておくことで、この重複設定を回避する制御を採っても良いが、制御内容がいたずらに複雑化するので必ずしも好適とは言えない。
ところで、上記したCY=1の条件を繰り返し満たさない場合とは、全ての異常が解消されている場合である。そこで、8回のシフト演算においてCY=0となり、Bレジスタが0となった場合には(ST75)、その時のBレジスタの値より1つ小さい値(−1)に基づいて、払出表示部10のエラー表示を消滅させるべく必要な表示設定をする(ST76)。
以上の通り、本実施例では、新旧のエラーフラグER,DTについて、MSBからLSBに向けて1ビットずつエラービットを判定することで、最も重要度の高いエラーだけを払出表示部10に表示している。
なお、図14(a)は、新旧のエラービットの関係を図示している。MSBからLSBに向けて判定して、第一検出処理(ST30)において、新規のエラーが検出されると(エラービットが0→1)、図12のステップST48の処理が実行される。この場合、変化検出フラグFLG=2となるので、その後、第二検出処理(ST31)が実行されることはない。
一方、上記の処理が実行されることなく、変化検出フラグFLG=1の状態で、第一検出処理を終えた場合には、今回検出されたエラーがMSBからLSBに向けて判定され、エラーが検出されると(エラービットが1)、図15のステップST76の処理が実行される。また、8回のシフト演算でエラーが検出されない場合も図15のステップST76の処理が実行され、その後、ステップST27のタイミングで、払出表示部10のエラー表示が消滅する。
以上、異常監視処理(ST22)について詳細に説明したので、図11に戻ってタイマ割込み処理の説明を続ける。上記のような異常監視処理が終われば、次に、回転リールの回転についての回転制御動作が実行され(ST23)、各種のタイマ変数が更新される(ST24)。
次に、図13(b)に示すコマンド出力処理(ST25)を実行する。ここで、コマンド出力処理とは、通信バッファBUFに設定されている制御コマンドを1バイト毎に演出制御部51に伝送する処理である。具体的には、先ず、送信回数カウンタCTの値が判定される(ST60)。先に説明した通り、送信回数カウンタCTは、通信バッファBUFに、2バイト長の制御コマンドが格納される毎に、+2されて更新されている(図13(a)のST52)。
そこで、送信回数カウンタCTの値がゼロでない場合には、通信バッファBUFから出力すべき制御コマンドを読出しポインタRDで特定し、読出しポインタRDが指示する制御コマンド(その上位バイトDH又は下位バイトDL)を演出制御部51に伝送する(ST51)。次に、パルス状のストローブ信号(図13(d)参照)を演出制御部51に伝送する(ST52)。このストローブ信号は、演出制御部51のCPUに受信割込み処理(図16(a))を起動させるための信号であり、起動された受信割込み処理によって、ステップST61で伝送された制御コマンドの上位バイトDH又は下位バイトDLが取得される。
続いて、ポインタRDが指示する通信バッファBUFにゼロデータを書込むことで、ステップST61の処理で出力された制御コマンドを消去する(ST63)。以上の処理によって制御コマンドの1バイト分(上位バイトDH又は下位バイトDL)の伝送が終わったので、次に、読出しポインタRDをインクリメント(+1)し、送信回数カウンタをデクリメント(−1)した上でサブルーチン処理を終える(ST64,ST65)。
以上の説明から明らかな通り、エラーコマンドなどの制御コマンドが2バイト長であるのに対して、一回のタイマ割込み処理では、制御コマンドの1バイト分だけが伝送されるので、制御コマンドは、二回のタイマ割込み処理を経由して伝送されることになる。したがって、制御コマンドの1バイト目(上位バイトDH)と2バイト目(下位バイトDL)の伝送間隔は、タイマ割込み周期(τ)と同一となり、演出制御部51は、制御コマンドを確実に受信することができる。なお、タイマ割込み周期τは、例えば、1.5mS程度に設定されている。
上記したコマンド出力処理(ST25)が終われば、払出したメダルなどの情報をホールコンピュータに伝送し(ST26)、各種ランプの表示動作を更新する(ST27)。ここで、更新されるランプには、エラー表示器としても機能する払出表示部10のLEDランプも含まれており、図12のステップST48や、図15のステップST76で設定された表示設定に基づいて表示内容が更新される。
次に、ステップST20の処理で退避したレジスタをCPUに復帰させて(ST48)タイマ割込み処理を終える。
以上、主制御部50の動作を説明したので、続いて、制御コマンドに基づいて演出動作を実行する演出制御部51のCPUの動作について説明する。演出制御部51の動作は、ストローブ信号によって起動される受信割込み処理(図16(a))と、電源投入時に開始される無限ループ状のメイン処理(不図示)と、一定時間毎に起動されるタイマ割込み処理(図16(b))とを有して構成されている。但し、メイン処理は、本発明の趣旨と関連性が乏しいので説明を省略し、受信割込み処理(図16(a))とタイマ割込み処理(図16(b))について説明する。
主制御部50からストーブ信号が伝送されると、演出制御部51では、図16(a)に示す受信割込み処理が起動される。この受信割込み処理では、定型的なレジスタ退避処理の後、制御コマンド取得用の入力ポートからコマンドデータ(DH又はDL)を入力し(SP1)、この入力データが複数回連続して同一値であることを確認する(SP2)。ここで、複数回連続して同一コマンドデータを入力することができれば、次に、前回の受信割込み処理で取得したコマンドデータと、今回のコマンドデータとが同一値でないことを確認する(SP3)。そして、2つのコマンドデータが同一値でないことを条件に、今回のコマンドデータを、図16(d)に示す受信バッファRVに取得する(SP4)。具体的には、書込みポインタWR’が特定する受信バッファRVの該当領域に、今回受信したコマンドデータを格納する(SP4)。
次に、今回取得したコマンドデータが、制御コマンドの上位バイト(DH)か下位バイト(DL)かに応じて、受信中フラグを設定する(SP5)。受信中フラグは、2バイト長の制御コマンドを取得し終わったか否かを示すものであり、上位バイト(DH)を取得したタイミングで受信中フラグがセットされ、下位バイト(DL)を取得したタイミングで受信中フラグがリセットされる(SP5)。そして、以上の処理が終われば、定型的なレジスタ復帰処理を実行した上で受信割込み処理を終える。
このように、本実施例では、入力ポートからコマンドデータを繰り返し入力して、複数回、同一値を入力できることを条件に、そのコマンドデータを取得しているので、ビット化けした制御コマンドを誤取得してしまう可能性が大幅に低減される。図13(d)に示す通り、特に、制御コマンドの2バイト目(下位バイトDL)は、それが演出制御部51に取得された後も、伝送路に長く維持されることがあり、ノイズによって受信割込み処理が多重起動される可能性も否定できないところ、本実施例では、そのような場合にも、重複取得したコマンドデータを廃棄することで、その後の異常動作を回避している。
続いて、図16(b)に示すタイマ割込み処理について説明する。タイマ割込み処理では、先ず、演出動作をランダム化するための乱数値が更新され(SP10)、制御コマンドの受信中か否かが判定される(SP11)。具体的には、受信中フラグがセット状態かリセット状態かが判定され、もし、リセット状態であって、2バイト長の制御コマンドが取得済みであることが確認されれば、次に、受信バッファRVに未処理の制御コマンドが存在するか否かが判定される(SP12)。制御コマンドが未処理状態か否かは、読出しポインタRD’と書込みポインタWR’の値に基づいて判定される。
続いて、受信した制御コマンドの受信順序に不合理が無いかが判定される(SP13)。そして、受信順位が正しくない場合には、制御コマンドがビット化けしたか、違法な制御コマンドであると考えられるので、不整合フラグをON状態に設定し、その後の受信コマンド対応処理(SP15)がスキップされる。
一方、不整合フラグがON状態でない場合には、今回のステップSP15の処理で生成されたか、又はそれ以前に生成されている演出シナリオに基づき、演出動作を進行させて定期割込み処理を終える(SP16〜SP17)。
以上、タイマ割込み処理(図16(b))について概略的に説明したので、受信コマンド対応処理(SP15)のうち、特にエラーコマンドを受信した場合の動作(図16(c)について、図17のフローチャートに基づいて説明する。
図17に示す通り、エラーコマンドを受信した場合には、シフト回数を管理する適宜なレジスタ(仮にBレジスタとする)に、8を初期設定すると共に、レベル判定フラグFGを0に設定する(SP30)。レベル判定フラグFGは、エラーコマンドで特定される複数の異常事態を、液晶表示ユニット7の強調表示領域に表示するか、一般表示領域に表示するかを規定する用途で使用される。
ステップSP31の処理が終われば、受信したエラーコマンド(制御コマンド)に基づいてエラーフラグを再生して、これをCPUの適宜なレジスタ(仮にRレジスタとする)に格納する。エラーフラグERは、図10(c)の構成を有しており、エラーフラグERの全ビットがゼロである場合は、それまでの異常が全て消滅していることを意味し、要するに、今回、エラー解除コマンドを受信したことを意味する。
そこで、Rレジスタの値を判定し、もしR=0なら液晶表示ユニット7のエラー表示を全て消滅させる(SP33)。
一方、Rレジスタ≠0の場合には、エラーが存在することを意味するので、次に、
LSBからMSBに向けて重要レベルが上昇しているエラーフラグについて、RレジスタのビットをMSBからLSBに向けてチェックすることで、最高レベルの異常を特定する。具体的には、Rレジスタの値を1ビット左方向にシフト演算することで、MSBをCPUのキャリフラグCYに移動させ(SP34)、キャリフラグCYの値を判定する(SP35)。ここで、CY=1となる場合とは、エラーコマンドによって特定された異常ビットが検出された場合である。
そこで、CY=1となる場合には、表示領域を特定するべく、レベル判定フラグFGの値を判定する(SP36)。ここで、レベル判定フラグFGが0となる場合とは、液晶表示ユニット7の強調表示領域が、今回のエラーコマンドでは、まだ使用されていないことを意味する。
そこで、レベル判定フラグFG=0と判定される場合には、強調表示領域に異常内容を特定する文字や模様を表示する(図11(c)参照)。また、この動作に対応して強調表示領域が使用されたことを特定するべく、レベル判定フラグFGを1にセットする(SP38)。なお、Bレジスタ−1の値が、エラー番号を示すことは、図12や図15の場合と同じである。
すなわち、Bレジスタは、繰返しデクリメント処理されて(SP40〜SP41)、初期値8から→7→6→5→4→3→2→1→0と減少するので、ステップSP39やSP37のタイミングでは、エラー番号+1の値を特定している。
その後も、ステップSP34〜SP36は繰り返されるので、もし重複してエラービットが検出される場合には、レベル判定フラグFG=1であることに対応して、Bレジスタで特定される異常状態が、一般表示領域に表示される(SP39)。
このように、この実施例では、最重要レベルの異常が、強調表示領域に表示されるので防犯機能を高めることができる。また、強調表示領域の表示内容は、常に、払出表示部10の表示と整合するので、遊技者や係員を混乱させることもない。更にまた、複数個の異常事態が発生した場合には、最重要レベル以外の異常事態が一般表示領域に表示されるので、他の異常を係員が読み落とすこともない。
以上、本発明の実施例について具体的に説明したが、具体的な記載内容は特に本発明を限定する趣旨ではなく、適宜に変更可能である。
例えば、上記の実施例では、主制御部50の異常監視処理(ST22)を、第一検出処理(ST30)と、第二検出処理(ST31)とに区分したが、簡易的には、2つの検出処理を一体化しても良い。図18は、一体化された異常監視処理を示すフローチャートである。
動作内容は、図17に示すエラーコマンド処理と類似しており、先ず、センサ信号に基づいてエラーフラグERを生成し(ST90)、エラーフラグERに基づいてエラーコマンド設定する(ST91)。なお、エラーコマンドの生成は、それ以前のエラーコマンドを更新することを意味する。
次に、Bレジスタを8に初期設定し、エラーフラグERの値をDレジスタに設定する(ST92)。そして、Dレジスタ(エラーフラグER)の値をMSBからLSBに向けてチェックして、最初に検出されるエラービットに対応して、払出表示部10の表示内容について表示設定をする(ST97)。また、検出された異常事態の重要レベルに対応した報知動作を実行する(ST98)。
ところで、演出制御部51におけるエラーコマンド処理についても、適宜に変更可能であり、例えば、図12や図15に示す二段階の処理としても良い。
図19と図20は、このようなエラーコマンド処理(SP21)を示すものであり、異常事態が新規に発生するか、或いは、それまで以上の重要レベルの異常事態が発生したことを検出する第一処理(図19)と、全ての異常事態が消滅したか、或いは、それまでの最高レベルの異常事態が消滅したことを検出する第二処理(図20)とを示している。
図19に示す第一処理は、図12に示す第一検出処理に類似しており、受信したエラーコマンドに基づいて検出フラグDTが生成され(SP44)、全ビットがゼロであればエラー表示を消滅させる(SP46)。次に、過去のエラーコマンドに基づく異常フラグERと、今回のエラーコマンドに基づく検出フラグDTとに基づいて適宜な処理を実行する。
なお、ER=DTとなることは、ほぼ有り得ないが、もし、ER=DTとなる場合は、コマンド受信エラーであるので、これに対応する処理を実行する(SP48)。これ以外の場合は、エラーフラグERとの関係で、異常事態が新規に発生したか、或いは、それまで以上の重要レベルの異常事態が発生したことを検出し、検出された事態の重要度に応じて、液晶表示ユニット7での警報表示動作が開始される(SP57)。
例えば、図14(c)のように、極めて重大な異常が新規に発生した場合には、強調表示領域の表示内容を、より直接的で過激なものにすることが考えられる。
以上のような第一処理が終われば、図20に示す第二処理が実行される。但し、そのステップSP72〜SP79の処理は、図17のステップSP34〜SP41の処理と同じである。
ところで、上記の実施例では、複数の異常事態が検出された場合には、最高レベルの異常が強調表示領域に表示され、その他の異常が一般表示領域に表示されるようになっているが、最高レベルの異常も一般表示領域に表示されるようにしてもよい。
このように構成することで、一般表示領域の表示によって、現在発生しているエラー総数を直ちに確認することができる。
また、上記の実施例では、図10に示す異常についてだけ説明したが、何ら限定されず、その他のエラーについても同様な処理を行うことが可能である。
また、電源時の判定されるエラーであって、例えば、係員が設定キーで設定する設定値が所定の数値範囲を越えていることを示す「設定値エラー」や、電源ON時にワンチップマイコンに関して検出される「主基板エラー」や「RWMエラー」についても同様である。但し、この場合には、タイマ割込み処理ではなく、これら定常処理(ST2〜ST17)を開始する以前の初期処理(ST1)において、同様の処理を実行する必要がある。