以下、本発明の実施形態について、図面を参照しながら説明する。
図1に示すパチンコ遊技機(以下、「パチンコ機」と略称する)Pは、遊技球を遊技媒体として用いるものであり、遊技者は、遊技場運営者から遊技球を借り受けてパチンコ機Pによる遊技を行う。なお、パチンコ機Pにおける遊技において、遊技球はその1個1個が遊技価値を有した媒体であり、遊技の成果として遊技者が享受する特典(利益)は、例えば遊技者が獲得した遊技球の数に基づいて遊技価値に換算することができる。以下、図1〜図4を参照して遊技機の構成について説明する。また、遊技媒体としてメダルを使用し、遊技の成果の特典としてメダルが払い出される回胴式遊技機(スロットマシン)等の他の遊技機にも適用可能である。
[遊技機の全体構成]
図1〜図3に示すように、パチンコ機Pは、機枠(外枠)1と内枠扉(前面枠)2とガラス扉3と遊技盤5とを備える。機枠1は、縦長矩形状の木製枠体であり、遊技場内の島設備(図示省略)に対して締結固定される。内枠扉2は、機枠1に開閉自在に取り付けられ、ガラス扉3は、内枠扉2に開閉自在に取り付けられる。
遊技盤5は、内枠扉2の内側に収容され、内枠扉2に対して着脱可能に固定される。ガラス扉3の中央部には、縦長円形状の開口窓6が形成され、開口窓6には、遊技盤5の前方を覆う透明なガラス板7が取り付けられる。遊技盤5の前面(盤面)は、遊技者が開口窓6を介して前方から視認可能な遊技領域8を含み、ガラス扉3が閉じられると、ガラス板7の内面(後面)と遊技領域8との間に遊技球が流下可能な空間が形成される。
内枠扉2の一側(図1中の右側)の縁部には、シリンダ錠9が設けられている。機枠1に対して内枠扉2及びガラス扉3を閉じてシリンダ錠9を施錠すると、機枠1に対する内枠扉2及びガラス扉3の開放が禁止される。
ガラス扉3は、その下部に前面ボード4を一体的に有し、前面ボード4には、前方へ突出する上皿10と下皿11とが設けられる。上皿10は前面ボード4の上部に配置され、下皿11は上皿10の下方に配置される。上皿10には、遊技者に貸し出された遊技球(貸球)や入賞により獲得した遊技球(賞球)が貯留され、下皿11には、上皿10が満杯の状態でさらに払い出された遊技球が貯留される。なお、本実施形態のパチンコ機PはいわゆるCR機(CRユニット50(図5に示す)に接続される機種)であり、遊技者が借り受けた遊技球は、賞球とは別に上皿10に払い出される。
前面ボード4の上面には、貸出操作部15と演出ボタン23とが設けられている。貸出操作部15は、球貸スイッチ12と返却スイッチ13と度数表示装置14と球貸表示装置24とを有し、遊技者がCRユニット50(図5に示す)に残高がゼロではなく且つ適正な有価媒体(例えば磁気記録媒体や記憶IC内蔵媒体等)を投入すると、投入された有価媒体の残存度数が球貸表示装置24に表示されるとともに、球貸表示装置24の球貸可能ランプ(図示省略)が点灯する。係る状態で遊技者が球貸スイッチ12を操作すると、予め決められた度数単位(例えば500円分に相当する5度数)に対応する個数(例えば125個)分の遊技球が貸し出され、球貸表示装置24に、貸出処理中であることが表示されるとともに、遊技球の貸出に応じて有価媒体の残高度数が減少する。なお、本実施形態ではCR機を例に挙げているが、パチンコ機Pは、CR機以外の機種(CRユニット50に接続されない機種)であってもよい。また、演出ボタン23は、演出に関する遊技者からの操作を受け付ける。
前面ボード4の前面には、上皿球抜き操作部16と下皿球抜き操作部17とが設けられている。上皿球抜き操作部16が操作されると、上皿10の遊技球が下皿11へ流下し、下皿球抜き操作部17が操作されると、下皿11の遊技球が下方へ落下して排出される。下皿11から排出された遊技球は、例えば球受け箱(図示省略)等に受け止められる。
前面ボード4の右下部には、発射ハンドル18が回転自在に支持され、内枠扉2の下部には、発射装置19が取り付けられている。上皿1の遊技球は発射装置19に1個ずつ供給され、遊技者が発射ハンドル18を回転操作すると、発射装置19(発射モータ86(図5に示す))が作動し、遊技領域8に向かって遊技球が発射される。遊技領域8は、ガイドレール20及び遊技球規制レール21によって略円形状に区画形成され、発射装置19から発射された遊技球は、レール20,21に沿って滑走して遊技領域8に左上方から進入し、遊技釘や風車等に誘導及び案内されて流下する。
ガラス扉3の左右上部と内枠扉2の左下部とには、スピーカ22がそれぞれ取り付けら、ガラス扉3の前面には、複数の枠体ランプ25が取り付けられている。スピーカ22は、遊技に関する様々な効果音を発する。枠体ランプ25は、例えば内蔵するLEDの発光(点灯や点滅、輝度階調の変化、色調の変化等)により演出を実行する。
[盤面の構成]
遊技領域8内には、統合表示ユニット30、演出表示装置(画像表示器)31、スルーチャッカ32、電動チューリップ(普通電動役物)33、ステージ34、第1始動入賞口(第1特図始動入賞口)35、第2始動入賞口(第2特図始動入賞口)36、一般入賞口37、アウト口38、アタッカー装置(特別電動役物)39、複数の盤面ランプ60、遊技釘(図示省略)、及び風車(図示省略)等が設けられている。第1始動入賞口35と第2始動入賞口36とは上下方向に間隔を空けて配置されている。盤面ランプ60は、例えば内蔵するLEDの発光(点灯や点滅、輝度階調の変化、色調の変化等)により演出を実行する。
統合表示ユニット30は、演出表示装置31を視認している遊技者の視界に同時に入らないように、遊技盤3の右下部分に配置されている。図4に示すように、統合表示ユニット30は、第1特図表示装置(第1特別図柄表示装置)40と、第2特図表示装置(第2特別図柄表示装置)41と、普図表示装置(普通図柄表示装置)42と、状態表示装置43とを備え、これらの表示装置40〜43は、1つの統合表示基板48に実装された状態で遊技盤5に取り付けられる。
第1特図表示装置40は、第1始動入賞口35への遊技球の入賞を契機に行われた第1特別図柄に係る電子抽選の結果を、第1特別図柄(数字や絵柄)を変動させた後に停止表示するものである。第2特図表示装置41は、第2始動入賞口36への遊技球の入賞を契機に行われた第2特別図柄に係る電子抽選の結果を、第2特別図柄(数字や絵柄)を変動させた後に停止表示するものである。本実施形態の第1特図表示装置40及び第2特図表示装置41は、7セグメントLEDによって第1特別図柄及び第2特別図柄を変動後に停止表示する。なお、本実施形態では、第2始動入賞口36への入賞に基づく遊技の方が第1始動入賞口35への入賞に基づく遊技よりも優先して実行されるため、第1特別図柄と第2特別図柄とが同時に変動することはない。
普通図柄表示装置42は、スルーチャッカ32の遊技球の通過を契機に行われた普通図柄に係る電子抽選の結果を、普通図柄(数字や絵柄)を変動させた後に停止表示するものである。本実施形態の普通図柄表示装置42は、7セグメントLEDによって普通図柄を変動後に停止表示する。
状態表示装置43は、ラウンド数表示部44、第1特図保留数表示部45、第2特図保留数表示部46、及び普図保留数表示部47を有する。ラウンド数表示部44は、4つのランプ(LED)から構成され、ランプの消灯、点灯又は点滅の組合せによって現在の大当たりが何ラウンド継続するかを表示する。第1特図保留数表示部45は、第1始動入賞口35に遊技球が入賞し、当該入賞に応じて取得された第1特図当たり決定乱数(大当たり決定乱数)が第1特図保留乱数としてRAM75の第1特図保留乱数記憶領域(図示省略)に記憶されると、その記憶数を現在の保留数として表示する。第2特図保留数表示部46は、第2始動入賞口36に遊技球が入賞し、当該入賞に応じて取得された第2特図当たり決定乱数(大当たり決定乱数)が第2特図保留乱数としてRAM75の第2特図保留乱数記憶領域(図示省略)に記憶されると、その記憶数を現在の保留数を表示する。普図保留数表示部47は、スルーチャッカ32を遊技球が通過し、当該通過に応じて取得された普図当たり決定乱数(当たり決定乱数)が普図保留乱数としてRAM75の普図保留乱数記憶領域(図示省略)に記憶されると、その記憶数を現在の保留数を表示する。これらの保留数表示部45,46,47は、それぞれランプ(LED)から構成され、ランプの消灯、点灯又は点滅の組合せによって「0」個〜「4」個(保留球乱数の記憶数の上限)の間で保留数を表示する。
図2に示すように、演出表示装置31は、液晶の画像表示器を有し、遊技盤3の略中央部に設けられ、第1始動入賞口35及び第2始動入賞口36への遊技球の入賞を契機に行われた特別図柄に係る電子抽選の結果に基づいて所定の演出画像を表示する。演出画像には、第1特図表示装置40及び第2特図表示装置41に変動表示される第1特別図柄及び第2特別図柄と同期をとって変動するダミー図柄(演出図柄)と、第1特図当たり決定乱数の保留数表示と、第2特図当たり決定乱数の保留数表示とが含まれる。
電動チューリップ33は、1対の羽根部材49と電動チューリップ駆動装置51(図5に示す)とを備える。1対の羽根部材49は、遊技盤3との直交軸を中心に回転自在であり、第2始動入賞口36の入口の左右に配置される。電動チューリップ駆動装置51のソレノイド(図示省略)が通電されると、1対の羽根部材が互いに離れる方向に回転し、電動チューリップ33が開口して、第2始動入賞口36の入口が拡大される。電動チューリップ33が閉じた状態(通常状態)では、第2始動入賞口36に遊技球は入賞できず、第2始動入賞口36への入賞は、電動チューリップ33の開口時に制限される。
ステージ34は、遊技球が転動しながら一時的に滞在する構造物であり、演出表示装置31の下方に配置される。ステージ34の略中央の真下に第1始動入賞口35が配され、ステージ34の中央部分から落下した遊技球は、高い確率で第1始動入賞口35へと導かれる。
アタッカー装置39は、第1始動入賞口35及び第2始動入賞口36に遊技球が入賞することを契機に行われる特別図柄に係る電子抽選の結果、特図当たり(大当たり)となって大当たり遊技に移行した場合に所定回数(本実施形態では、2ラウンド又は15ラウンド)開放される装置である。アタッカー装置39は、横長矩形状の大入賞口52と横長板状の蓋部材53とアタッカー駆動装置54(図5に示す)とを備える。蓋部材53の下部は、水平な軸を中心として前後方向に開閉自在に支持され、アタッカー駆動装置54のソレノイド(図示省略)が通電されると、蓋部材53の上部が前下方へ傾動し、アタッカー装置39が開口して大入賞口52が露呈され、多量の遊技球が蓋部材53の上面(裏面)に案内されて大入賞口52へ入賞可能となる。アタッカー装置39が閉じた状態(通常状態)では、蓋部材53が大入賞口52を閉止するため、大入賞口52への入賞は、アタッカー装置39の開口時に制限される。
各入賞口(第1始動入賞口35、第2始動入賞口36、一般入賞口37、大入賞口52)に遊技球が入賞すると、所定個数の遊技球が賞球として遊技者に払い出され、入賞した遊技球は、その入賞口35,36,37,52から遊技盤5の裏側へ回収される。また、何れの入賞口35,36,37,52にも入賞しなかった遊技球は、最終的にアウト口38から遊技盤5の裏側へ回収される。回収された遊技球は、アウト通路アセンブリ(図示省略)を通じてパチンコ機Pの裏側から枠外へ排出され、さらに島設備の補給経路(図示省略)に合流する。
スルーチャッカ32、第1始動入賞口35、第2始動入賞口36、一般入賞口37、大入賞口52の内部には、それぞれ遊技球の通過を検知するためのセンサ(図5に示すゲート通過球検知センサ55、第1特図始動球検知センサ56、第2特図始動球検知センサ57、大入賞球検知センサ58及び一般入賞球検知センサ59)が設けられている。これらのセンサ55,56,57,58,59は、遊技球の通過を検知する度に、主制御装置70(図5に示す)に検知信号を送信する。なお、第1特図始動球検知センサ56と第2特図始動球検知センサ57と大入賞球検知センサ58と一般入賞球検知センサ59とは、遊技領域8に発射された遊技球の入賞を検知する入賞検知手段として機能する。また、以下の説明において、これらの検知信号のうち、センサ56,57,58,59が送信する検知信号を入賞球検知信号と称し、センサ55が送信する検知信号を球通過検知信号と称して、両者を区別する場合がある。
[裏側の構成]
図3に示すように、パチンコ機Pの裏側には、電源供給装置61、主制御基板ユニット62、払出制御基板ユニット63、サブ制御基板ユニット64、外部情報端子基板65、電源コード(電源プラグ)66、アース線(アース端子)67、パチンコ機Pの電源系統や制御系統を構成する各種の電子機器類(図示外の制御コンピュータを含む)等が設置されている。
外部情報端子基板65は、パチンコ機Pを外部の電子機器(例えば、ホールコンピュータ68(図5に示す)やデータ表示装置等)に接続するためのインタフェースであり、パチンコ機Pの遊技進行状態やメンテナンス状態等を表す各種の外部情報信号(例えばメイン賞球情報、賞球情報、扉開放情報、図柄確定回数情報、大当たり情報、始動口情報、エラー情報等)は、外部情報端子基板65から外部の電子機器に送信される。
電源コード66は、遊技場の島設備に設置された電源装置(例えばAC24V)に接続されて、パチンコ機Pの動作に必要な電源(電力)を確保する。アース線67は、島設備に設置されたアース端子に接続され、パチンコ機Pをアース(接地)する。
[制御に関する構成]
次に、パチンコ機Pの制御に関する構成について説明する。図5は、パチンコ機Pに装備された各種の電子機器類を示すブロック図である。
パチンコ機Pは、主制御装置70と払出制御装置71とサブ制御装置72と発射制御装置100とを備える。主制御装置70は、制御動作の中枢であり、主にパチンコ機Pにおける遊技処理の実行を制御する機能を有し、主制御基板ユニット62に内蔵されている。払出制御装置71は、主に遊技球の払い出しを制御する機能を有し、発射制御装置100は主に遊技球の発射を制御する機能を有し、払出制御装置71と発射制御装置100とは、共に払出制御基板ユニット63に内蔵され、共通の制御基板(払出制御基板)に実装されている。サブ制御装置72は、主に演出を制御する機能を有し、サブ制御基板ユニット64に内蔵されている。主制御装置70と払出制御装置71とは、主制御装置70から払出制御装置71に対して一方向にコマンドが送信される通信線(主コマンド許可信号線及び主コマンドデータ信号線)と、払出制御装置71から主制御装置70に対して一方向にコマンドが送信される通信線(払出コマンド許可信号線及び払出コマンドデータ信号線)とによって接続されている。
(電源供給装置61)
電源供給装置61は、電源コード66を通じて島設備から外部電源(例えば、24Vの交流電源)の供給を受け、この交流電源をパチンコ機Pで使用する複数の定電圧の直流電源や粗整流の直流電源に変換し、主制御装置70、払出制御装置71、サブ制御装置72、発射制御装置100等に供給する。電源供給装置61には、電源回路やコンデンサ等のバックアップ電源(図示省略)と、外部電源からの電源の供給が途絶えたとき(電源断の発生時)に電源断の発生時に電源断予告信号(電源断信号)を生成する電源断検出回路(電源断信号発生手段)96とが設けられている。電源供給装置61は、電源断の発生時に、主制御装置70及び払出制御装置71に対して、電源断予告信号を送信するとともに、バックアップ電源を供給する。なお、電源断検出回路96は、電源供給装置61以外(例えば、主制御装置70や払出制御装置71など)に設けてもよい。
RWMクリアスイッチ69は、主制御装置70及び払出制御装置71に保存されている過去の遊技情報をクリアするために操作されるスイッチであり、電源供給装置61に設けられ、RWMクリアスイッチ69が操作されると、RWMクリア指定信号(コマンド)を主制御装置70及び払出制御装置71に送信する。
(主制御装置70)
主制御装置70には、中央演算処理装置(中央命令処理部)である主制御CPU73を実装した回路基板(主制御基板)が装備されており、主制御CPU73は、CPUコア、各種レジスタ(汎用レジスタ、フラグレジスタ、インデックスレジスタ、リフレッシュレジスタ、割込レジスタ、命令レジスタなど)、スタックポインタ、プログラムカウンタ、命令レコーダ(何れも図示省略)等を含み、ROM74やRAM(RWM)75等の半導体メモリとともにLSIとして構成されている。各レジスタは、演算結果、次に読み込む命令のアドレス、実行状態等を保持する。また主制御装置70には、ハード乱数発生回路76やサンプリング回路(図示省略)が装備されている。ハード乱数発生回路76は、ハードウェア乱数(例えば10進数表記で0〜65535)を発生させるものであり、発生させた乱数は、サンプリング回路を通じて主制御CPU73に入力される。ハードウェア乱数は、大当たり判定用の第1特図当たり決定乱数及び第2特図当たり決定乱数や、当たり(普図当たり)判定用の普図当たり決定乱数として用いられる。主制御装置70には、クロック(周波数発生回路部)77、入出力(I/O)ポート、カウンタ/タイマ回路(CTC)等の周辺ICが装備されており、これらは主制御CPU73とともに回路基板上に実装されている。
RAM75には、各種フラグの記憶領域を含むワーク領域(図示省略)が設けられ、割り込み発生時やサブルーチンや関数を呼び出す際に、処理中のデータや戻りアドレスなどがワーク領域のスタック領域(退避領域)に一時的に退避される。また、主制御CPU73は、ROM74に記憶されている遊技制御用プログラムに従って処理を実行することにより、電源断検知手段及び実行制御手段として機能する。
球検知センサ類56〜59の入賞検知信号は、入出力ドライバ(図示省略)を介して主制御CPU73に入力される。なお、本実施形態では、第1特図始動球検知センサ56及び第2特図始動球検知センサ57からの入賞検知信号は、主制御装置70に直接送信され、ゲート通過球検知センサ55、大入賞球検知センサ58及び一般入賞球検知センサ59からの入賞検知信号は、中継端子板(図示省略)を経由して主制御装置70に送信される。
第1特図表示装置40、第2特図表示装置41、普図表示装置42、及び状態表示装置43の各表示は、主制御CPU73からの制御信号によって制御される。主制御CPU73は、遊技の進行状況に応じてこれら表示装置40〜43に対する制御信号を出力し、各LEDの点灯状態を制御する。
電動チューリップ駆動装置51及びアタッカー駆動装置54の駆動は、主制御CPU73からの制御信号によって制御される。各駆動装置51,54のソレノイドは、主制御CPU73からの制御信号に基づいて動作(励磁)し、電動チューリップ33及びアタッカー装置39を開閉動作(作動)させる。
内枠扉2には、ガラス扉開放スイッチ78と内枠扉開放スイッチ79とが設置されている。内枠扉2からガラス扉3が開放されると、ガラス扉開放スイッチ78からの接点信号が払出制御基板ユニット63を経由して主制御装置70及び外部情報端子基板65に入力される。また、機枠1から内枠扉2が開放されると、内枠扉開放スイッチ79からの接点信号が払出制御基板ユニット63を経由して主制御装置70及び外部情報端子基板65に入力される。なお、主制御装置70及び外部情報端子基板65への各接点信号は、払出制御基板ユニット63(払出制御基板)を単に経由するだけであり、後述する払出制御装置71の払出制御CPU80や発射制御装置100の発射制御CPUには入力されない。スイッチ78,79から接点信号を受信した主制御CPU73は、扉が開放したことを音やLEDや液晶などによって報知するため、これらの報知処理の実行を指示する制御信号をサブ制御装置72に送信する。また、スイッチ78,79から接点信号を受信した外部情報端子基板65は、扉開放を示す外部情報信号(扉開放情報)を出力する。
パチンコ機Pには磁気や電波等を検知するエラー検知センサ98が設けられ、エラー検知センサ98は、磁気や電波等を検知すると、主制御装置70にエラー検知信号を送信する。エラー検知信号を受信した主制御CPU73は、所定のエラー処理を実行するとともに、払出制御基板ユニット63を経由して外部情報端子基板65にエラー検知信号を送信する。エラー検知信号を受信した外部情報端子基板65は、エラー検知を示す外部情報信号(エラー情報)を出力する。なお、外部情報端子基板65へのエラー検知信号は、払出制御基板ユニット63(払出制御基板)を単に経由するだけであり、後述する払出制御装置71の払出制御CPU80や発射制御装置100の発射制御CPUには入力されない。
また、主制御装置70は、払出制御装置71に対し、スイッチ78,79からの接点信号の受信に応じて扉開放を示すエラー信号を出力し、エラー検知センサ98からのエラー検知信号の受信に応じてエラー検知を示すエラー信号を出力する。
(払出制御装置71)
払出制御装置71には、払出制御CPU80を実装した回路基板(払出制御基板)が装備されており、払出制御CPU80も、主制御CPU73と同様に、CPUコア(図示省略)を含み、ROM81、RAM82等の半導体メモリとともにLSIとして構成されている。払出制御CPU80(賞球払出制御手段、メイン賞球情報出力手段、賞球払出判定手段)は、主制御CPU73から受信した賞球指示コマンド(払出指示信号)に基づいて遊技球(賞球)の払い出し動作を制御し、賞球指示コマンドによって指示された個数(払出賞球数)の遊技球の払出動作を実行させる。
遊技場の球補給経路(図示省略)から補給された遊技球は、賞球タンク(図示省略)に蓄えられ、賞球樋(図示省略)を流下して賞球ケース(図示省略)に導入され、賞球ケースから上皿10に供給される。
賞球ケースには、払出モータ(例えばステッピングモータ)83が設けられ、払出制御装置71(払出制御基板ユニット63)には、払出モータ83の駆動回路(図示省略)が設けられている。払出制御装置71は、払出モータ83を回転駆動して遊技球を賞球ケースから払い出させる。払出モータ83の1回の払出動作(所定量の回転駆動)によって1個の遊技球が払い出され、払い出された遊技球は、払出流路(図示省略)を通って前面ボード4へ流下する。
払出モータ83の下流側には払出計数スイッチ84が設置され、払出モータ83の駆動によって実際に賞球が払い出されると、払出計数スイッチ84からの払出計数信号(払出検知信号)が払出制御装置71に送信される。払出計数信号は、1個の遊技球の払い出しを検出する度に送信され、払出制御CPU80は、受信した払出計数信号に基づき、実際の払出数や球切れ状態を検知して、遊技球の払い出しを管理する。
CRユニット50に残高がゼロではない適正な有価媒体が投入されると、CRユニット50は、貸出の処理中であること(球貸しが可能な状態であること)を示す貸出装置READY信号を、貸出装置接続基板101を経由して払出制御装置71へ送信し、貸出装置REDY信号を受信した払出制御装置71は、貸出可LED信号及び度数表示LED信号を、貸出装置接続基板101及び払出操作基板102を経由して球貸表示装置24及び度数表示装置14に送信する。球貸可LED信号を受信した球貸表示装置24では球貸可能ランプが点灯し、度数表示LED信号を受信した度数表示装置14では、有価媒体の残高度数が表示される。係る状態で球貸スイッチ12が操作されると、その操作信号(貸出スイッチ信号)が払出操作基板102及び貸出装置接続基板101を経由してCRユニット50に送信され、貸出スイッチ信号を受信したCRユニット50は、有価媒体の残高の減算処理を実行するとともに、台端末貸出要求完了確認信号を、貸出装置接続基板101を経由して払出制御装置71へ送信する。台端末貸出要求完了確認信号は、基本単位分(25個)の遊技球の貸出を要求する信号であり、例えば球貸スイッチ12の1回の操作が5度数分(125個)の貸出要求に対応するようにCRユニット50側で設定されている場合には、球貸スイッチ12が1回操作されると、台端末貸出要求完了確認信号は5回繰り返して送信される。
払出制御装置71のRAM82(払出残数記憶手段、メイン賞球関連情報記憶手段)には、遊技球の払出残数を記憶する払出残数記憶領域とが設けられている。払出残数記憶領域は、賞球として払い出す予定の遊技球数(賞球残数)を記憶する賞球メモリ領域と、貸出として払い出す予定の遊技球数(貸出残数)を記憶する貸出メモリ領域とに区分されている。払出制御CPU80は、主制御CPU73から賞球指示コマンドを受信すると、受信した賞球指示コマンドが示す賞球数分だけ賞球残数を加算し、CRユニット50から台端末貸出要求完了確認信号を受信すると、基本単位分だけ貸出残数を加算する。遊技球の払出動作において、払出制御CPU80は、払出計数SW84からの払出計数信号を受信する度に、賞球残数又は貸出残数の一方を1ずつ減算し、賞球残数及び貸出残数の双方がゼロになるまで払出動作を継続する。なお、本実施形態の払出制御CPU80は、貸出残数の払い出しを賞球残数よりも優先して実行する。すなわち、貸出残数がゼロではない場合には、貸出残数がゼロになるまで貸出残数を優先して減算し、貸出残数がゼロである場合に限り、賞球残数を減算し、賞球残数がゼロになったときに払い出しを終了する。なお、1回の賞球払出を所定単位個数(例えば25個)を上限とした個数分まで連続して実行する処理(賞球連続払出処理)が設定されている場合には、連続賞球払出処理の途中に貸出残数がゼロから増加しても、実行中の連続賞球払出処理が完了するまではその処理(賞球払出)を中断せずに継続する。そして、1回の連続賞球払出処理が完了した後は、賞球残数が未だゼロに達していなくても、貸出残数がゼロではない場合には、賞球残数よりも貸出残数の払い出しを優先して実行する。払出制御CPU80は、払出動作が実行可能であるときにはこれを示す台READY信号を、基本単位分の貸出が終了したときにはこれを示す台端末貸出完了信号を、貸出装置接続基板101を経由してCRユニット50へそれぞれ送信する。
図6(b)に示すように、主制御CPU73から賞球指示コマンドを受信した払出制御CPU80は、受信した賞球指示コマンドに基づく賞球払出処理(賞球残数の払出動作)の開始前に、払出指示を受けた払出予定の賞球数を示す所定単位数量毎のメイン賞球信号(メイン賞球情報)を外部情報端子基板65に送信(出力)する。払出制御装置71のRAM82には、メイン賞球数(払出指示を受けた賞球個数)を記憶するメイン賞球数記憶領域(メイン賞球カウンタ)が設けられている。払出制御CPU80は、受信した賞球指示コマンドが指示する賞球数分だけメイン賞球カウンタを加算し、メイン賞球数が所定単位数(本実施形態では10個)に達する毎に、メイン賞球信号を生成して外部情報端子基板65に出力し、メイン賞球カウンタを所定単位数分だけ減算する。
また、賞球払出処理を実行した払出制御CPU80は、払出動作によって払い出した賞球数量(賞球情報)を示す賞球情報信号を外部情報端子基板65に送信する。払出制御装置71のRAM82には、払出賞球数(払出済みの賞球個数)を記憶する払出賞球数記憶領域(賞球情報カウンタ)が設けられている。払出制御CPU80は、払い出しを行った賞球数分だけ賞球情報カウンタを加算し、払出賞球数が所定単位数(本実施形態では10個)に達する毎に、賞球情報信号を生成して外部情報端子基板65に出力し、賞球情報カウンタを所定単位数分だけ減算する。
外部情報端子基板65は、メイン賞球信号を受信するとメイン賞球情報を示す外部情報信号を出力し、賞球情報信号を受信すると、賞球情報を示す外部情報信号を出力する。
図5の全体構成に戻って説明する。上皿10(図1に示す)への遊技球の供給経路には皿満タンスイッチ85が設置され、下皿11(図1に示す)が遊技球で満杯になると、皿満タンスイッチ85がONになり、満タン検出信号が払出制御装置71に送信される。満タン検出信号を受信した払出制御CPU80は、主制御CPU73から受信した賞球指示コマンドに応じた賞球動作を一旦保留とし、未払出の賞球残数をRAM82に記憶させておく。なお、RAM82の記憶は電源断時にもバックアップが可能であり、遊技中に停電(瞬間的な停電を含む)が発生しても、未払出の賞球残数情報が消失してしまうことはない。
払出制御装置71の基板上には、状態LED(図示省略)が設けられている。状態LEDは、電源からの電力供給時に発光する電源LED、受け皿の満タン時に発光する受け皿満タンLED、通信エラー時に発光する通信エラーLED、扉開放時に発光する扉開放LED、払出動作の不良時に発光する払出動作不良LED、CRユニット50との未接続時に発光するCR未接続LEDとを含む。状態LEDの発光制御は、対応する信号(コマンド)の受信に基づいて払出制御CPU80が実行する。
(発射制御装置100)
払出制御装置71の基板(払出制御基板)には、払出制御CPU80に加えて、発射制御装置100の発射制御CPU(図示省略)が実装されている。発射制御CPUも、主制御CPU73及び払出制御CPU80と同様に、CPUコア(図示省略)を含み、ROM(図示省略)、RAM(図示省略)等の半導体メモリとともにLSIとして構成されている。
発射装置19(図2に示す)には、発射モータ86と球送りソレノイド87とが設けられ、発射ハンドル18(図1に示す)には、発射ボリューム88とタッチセンサ89と発射停止スイッチ90とが設けられている。球送りソレノイド87は、上皿10(図1に示す)から流下した遊技球を1個ずつ発射位置に送り出し、発射モータ86は、発射位置に送り出された遊技球を打ち出す。なお遊技球の発射間隔は、例えば0.6秒程度(1分間で100個以内)である。
発射ボリューム88は、発射ハンドル18(図1に示す)の回転操作量(ストローク)に比例した発射勢指示信号を払出制御装置71に送信する。タッチセンサ89は、静電容量の変化から遊技者の身体が発射ハンドル18に触れていることを検出し、その検出信号を払出制御装置71に送信する。発射停止スイッチ90は、遊技者から操作されたときに発射停止信号(接点信号)を発射制御装置100に送信する。
遊技者が発射ハンドル18を回転操作すると、発射ボリューム88から発射制御装置100に回転操作量に応じた発射勢指示信号が送信される。発射制御装置100(発射制御CPU)は、受信した発射勢指示信号に基づいて発射モータ86の駆動を制御する。これにより、遊技者の操作量に応じて遊技球の打ち出し強さが調整される。但し、発射制御CPUは、タッチセンサ89からの検出信号がオフ(ローレベル)の場合、及び発射停止スイッチ90から発射停止信号が入力された場合には、発射モータ86の駆動を停止する。また、払出制御CPU80は、CRユニット50の接続に基づき発射許可信号を発射制御装置100に送信し、発射制御CPUは、発射制御装置100からの発射許可信号の受信を条件として発射モータ86を駆動する。すなわち、発射制御CPUは、パチンコ機PにCRユニット50が接続されていない場合、発射モータ86の駆動を停止する。
また、上記制御に加え、主制御装置からの発射許可信号を条件に発射モータ86を駆動(発射許可信号を電源投入時にON、電源断時にOFFして発射許可信号ONで駆動)させてもよい。
(サブ制御装置72)
サブ制御装置72には、演出制御CPU92を実装した回路基板(複合サブ制御基板)が装備されており、演出制御CPU92も、主制御CPU73と同様に、CPUコア(図示省略)を含み、ROM93、RAM94等の半導体メモリとともにLSIとして構成されている。サブ制御装置72には、入出力ドライバや各種の周辺IC(共に図示省略)が装備されている。
サブ制御装置72のROM93には、演出の制御に関する演出制御プログラムが格納されており、演出制御CPU92は、格納された演出制御プログラムに従い、主制御CPU73から送信される演出用のコマンドに基づいて、演出表示装置31、各種ランプ25,60、音発生装置97及び可動役物による演出の制御を実行する。演出表示装置31は、画像プロセッサや液晶等を含み、音発生装置97は、サウンドプロセッサやスピーカ22等を含む。演出の制御には、演出表示装置31の画像の表示制御、各種ランプ25,60の発光制御、スピーカ22からの音声発生制御、及び可動役物の駆動装置95の駆動制御が含まれる。なお、画像プロセッサ及びサウンドプロセッサは、サブ制御基板ユニット64に設けてもよい。
(外部への出力)
主制御装置70及び払出制御装置71において生成された各種の外部情報信号は、外部情報端子基板65から外部に出力される。外部情報端子基板65から出力される信号は、例えば遊技場のホールコンピュータ68で集計される。
[主制御装置70の入力ポートの説明]
主制御装置70の入出力ポートには、複数のポート(本実施形態では、入力ポート0、入力ポート1及び入力ポート2の3つの入力ポートを含む)が設定されている。入力ポート0には、スイッチ異常信号(遊技盤5に搭載する検知センサ55〜59の断線信号)、扉開放信号(扉開放スイッチ78,79からの接点信号)、エラー検知信号(エラー検知センサ98からの信号)、払出コマンド許可信号及び払出コマンド送信信号(払出制御装置71からの信号)、及びRWMクリア指定信号(電源供給装置61からの信号)が割り当てられている。入力ポート1には、大入賞球検知センサ58及び一般入賞球検知センサ59からの入賞球検知信号が割り当てられている。入力ポート2には、第1特図始動球検知センサ56からの入賞球検知信号、第2特図始動球検知センサ57からの入賞球検知信号、ゲート通過球検知センサ55からの球通過検知信号、及び電源供給装置61からの電源断予告信号が割り当てられている。各入力ポートには、各信号の受信時に状態が切り替わる(1/0で切り替わる)1ビットの受信記憶領域が設けられ、各信号の入力の確認は、対応する受信記憶領域のビットチェックによって行われる。入力ポート2は、電源断の発生時に電源断予告信号を受信する電源断信号受信手段として機能し、入力ポート2に電源断予告信号が入力している間、対応する受信記憶領域の状態が切り替わる。
[主制御装置70が実行する制御処理]
次に、主制御装置70の主制御CPU73がROM74に記憶されている遊技制御用プログラムに従って実行する制御処理について説明する。主制御CPU73が実行する制御処理は、メインルーチンとしてのCPU初期化処理及びメインループ、シリアル通信受信割り込み処理、タイマ割り込み処理(メイン割り込み処理)、並びに電源断時退避処理を含み、主制御CPU73は、これらの処理の実行を制御する。
図7(a)に示すように、シリアル通信受信割り込み処理の割り込み発生要因は主コマンドの受信によって成立し、タイマ割り込み処理の割り込み発生要因は、所定周期(本実施形態では4ms)毎に成立し、電源断時退避処理の割り込み発生要因は電源断予告信号の受信によるINT割り込み発生によって成立する。シリアル通信受信割り込み処理とタイマ割り込み処理と電源断時退避処理とは、この順番で割り込み優先順位が高くなるように設定されている。また、シリアル通信受信割り込み処理と電源断時退避処理とは多重割り込みを禁止し、タイマ割り込み処理は多重割り込みを許可する。
すなわち、主制御装置70では、図7(b)に示すように、メインルーチンが基本処理として繰り返して実行され、タイマ割り込み処理が所定周期毎に起動してメインループに割り込む。メインルーチンの実行中又はタイマ割り込み処理の実行中に主コマンドを受信すると、シリアル通信受信割り込み処理が起動してメインループ又はタイマ割り込み処理に割り込む(図示省略)。メインルーチンの実行中(シリアル通信受信割り込み処理及びタイマ割り込み処理の実行中ではなく、主コマンドも受信していない)に電源断予告信号を受信すると、電源断時退避処理が起動してメインルーチンに割り込む。また、タイマ割り込み処理の実行中に電源断予告信号を受信すると、タイマ割り込み処理が終了してメインループに復帰した後に電源断時退避処理が起動する。但し、電源断時退避処理の実行中にはシリアル通信受信割り込み処理及びタイマ割り込み処理は起動せず、電源断時退避処理の実行中に割り込み発生要因が成立した場合には、電源断時退避処理の終了を待って対応する割り込み処理が起動する。なお、割り込み処理は、割り込み先の処理(現在実行中の処理)が割り込み許可状態であることを条件として起動する。
また、タイマ割り込み処理は、入力ポート1及び入力ポート2の内容を取得して保存する処理(図13のステップS123、S126)と、ポート入力処理で取得した情報に基づいて遊技球が入賞したか否かを判定する入賞判定処理(入力ポート1のオンエッジ検出フラグを生成する処理(図13のステップS125)、入力ポート2のオンエッジ検出フラグを生成する処理(図13のステップS128))と、大当たり遊技状態を生成するか否かを判定するための電子的な当否抽選を入賞判定処理での判定結果に応じて実行する大当たり判定処理(図12のスイッチ管理処理(ステップS69)及び特別遊技管理処理(ステップS70))と、入賞判定処理での判定結果に応じた払出指示信号を生成する払出制御管理処理(図12のステップS74)と、払出制御管理処理で生成した払出指示信号を払出制御装置71に送信する出力処理(図12のステップS79)とを含む。メインCPU73は、タイマ割り込み処理の実行中は電源断時退避処理の割り込みを禁止する一方、実行中のタイマ割り込み処理において入賞判定処理の実行前に電源断予告信号を受信した場合(図13のステップS124:Yes、ステップS127:Yes)には、入賞判定処理を実行しない。
(CPU初期化処理)
パチンコ機Pに電源が投入されると、主制御CPU73はCPU初期化処理を開始する。CPU初期化処理によって、パチンコ機Pの安定した遊技動作が保証される。
図8及び図9は、主制御CPU73が実行するCPU初期化処理を示すフローチャートである。
CPU初期化処理の開始により、スタックポインタにスタック領域の先頭アドレス(アドレス初期値)をセットし(ステップS1)、ベクタ方式の割込モード(割り込みモードモード2)に設定する(ステップS2)。これにより、主制御CPU73は、任意のアドレス(但し最下位ビットは0)を割込ベクタとして参照し、指定の割込ハンドラを実行することができる。
次に、割り込みベクタテーブルを設定し(ステップS3)、内蔵レジスタを設定し(ステップS4)、入力ポート0の内容を2回読み込み(ステップS5)、入力ポート0の結果を論理変換してRAM75の退避領域に退避させる(ステップS6)。
次に、リセット時待機処理を実行する。この処理では、リセットスタート(例えば電源投入)時にある程度の待機時間(例えば数千ms程度)を確保し、その間に入力ポート2の電源断予告信号をチェックする。本実施形態では、サブ制御起動待ちとして2秒分のループカウンタをセットし(ステップS7)、ループカウンタの値をデクリメントしながら電源断予告信号の入力ポートをビットチェックする(ステップS8)。2秒間経過する前(ループカウンタが0になる前)に電源断予告信号が入力すると(ステップS9:Yes)、リセット時待機処理の最初(ステップS7)に戻る。電源断予告信号が入力せずに2秒間が経過するまでこの処理を継続し(ステップS9:Yes→ステップS7、又はステップS9:No→ステップS10:No→ステップS8)、電源断予告信号が入力せずに2秒間が経過すると(ステップS9:No→ステップS10:Yes)、この処理を終了する。これにより、例えばサブ制御装置72の起動処理終了前の主制御装置70からサブ制御装置72への制御信号の送信を防止することができる。また、主電源スイッチ(図示省略)の投入と切断の操作が短時間(1〜2秒程度)内に繰り返し行われた場合のシステム保護を図ることができる。
次に、RAM75のワーク領域に対するアクセスを許可する(ステップS11)。具体的には、ワーク領域のRAMプロテクト設定値をリセットする。これにより、以後はRAM75のワーク領域に対するアクセスが許可された状態となる。
次に、ステップS6で退避した入力ポート0の結果を復帰させ(ステップS12)、復帰させた入力ポート0のRWMクリア指定信号を参照し、RWMクリア指定信号のビットがオンか否か(RWMクリアスイッチ69が操作されたか否か)を判定する(ステップS13)。
RWMクリアスイッチ69が操作されていない場合(ステップS13:No)、RAM75にバックアップ有効判定値(バックアップ有効判定フラグ)が保存されているか否かを判定する。具体的には、RAM75のバックアップ判定記憶領域のデータをバックアップ有効判定値と比較し(ステップS14)、両者が一致している場合(バックアップ有効判定フラグがセットされている場合)には、電源断時退避処理が適正に終了した後のCPU初期化処理であると判定し(ステップS15:No)、不一致の場合(バックアップ有効判定フラグがセットされていない場合)には、電源断時退避処理が適正に終了した後のCPU初期化処理ではないと判定する(ステップS15:Yes)。
電源断時退避処理が適正に終了した後のCPU初期化処理である場合(ステップS15:No)、RAM75のバックアップ情報についてサムチェックを実行する。具体的には、RAM75のワーク領域(使用禁止領域及びスタック領域を含むユーザワーク領域)のうち、バックアップ判定記憶領域及びサムチェックバッファを除く領域について、チェックサム値を算出し(ステップS16)、算出したチェックサム値が正常値か否かを判定する(ステップS17)。具体的には、ステップS16で算出したチェックサム値と、後述する電源断時退避処理(ステップS108)で保存したチェックサム値とを比較し、両者が一致する場合には正常値であると判定し、相違する場合には正常値ではないと判定する。
チェックサム値が正常値の場合(ステップS17:Yes)、復帰処理(ステップS18〜ステップS20)を実行する。
復帰処理では、電源復帰時クリア領域(例えば、バックアップ判定記憶領域)をリセットした後(ステップS18)、演出制御復帰処理(ステップS19)及び払出制御復帰処理(ステップS20)を実行する。
演出制御復帰処理(ステップS19)では、サブ制御装置72に対し、電源復帰指定のサブコマンド(例えば機種指定コマンド、特別図柄確率状態指定コマンド、作動記憶数コマンド、回数切りカウンタ残数コマンド、特別遊技状態指定コマンド等)を送信する。これを受けたサブ制御装置72は、前回の電源遮断時に実行中であった演出状態(例えば、内部確率状態、演出図柄の表示態様、作動記憶数の演出表示態様、音響出力内容、各種ランプの発光状態等)を復帰させる。
払出制御復帰処理(ステップS20)では、払出制御装置71に対し、電源復帰指定の主コマンド送信信号(電源復帰指定信号)を送信する。これを受けた払出制御装置71は、前回の電源遮断時の状態を復帰させるとともに、主制御装置70からの払出起動確認指定信号(賞球の払出許可を指示する賞球払出許可信号)の受信を条件に払出禁止状態を解除する。
一方、RWMクリアスイッチ69が操作されていた場合(ステップS13:Yes)、電源断時退避処理が適正に終了した後のCPU初期化処理ではない場合(ステップS15:Yes)、又はチェックサム値が正常値でなかった場合(ステップS16:No)、初期化処理(ステップS21〜ステップS24)を実行する。
初期化処理では、RAM75の使用禁止領域以外の記憶領域を全てクリアする(ステップS21)。これにより、RAM75のワーク領域及びスタックエリアは全て初期化される。
次に、RAM75にクリア起動時の初期値をセットすることによりRAM75の初期設定を行い(ステップS22)、演出制御初期化処理(ステップS23)及び払出制御初期化処理(ステップS24)を実行する。
演出制御初期化処理(ステップS23)では、サブ制御装置72に対し、RWMクリア指定のサブコマンドを送信する。これを受けたサブ制御装置72は、演出制御状態を初期化する。また、払出制御初期化処理(ステップS24)では、払出制御装置71に対し、RWMクリア指定の主コマンド送信信号(RWMクリア指定信号)を送信する。これを受けた払出制御装置71は、払出制御状態を初期化するとともに、主制御装置70からの払出起動確認指定信号の受信を条件に払出禁止状態を解除する。
払出制御復帰処理(ステップS20)又は払出制御初期化処理(ステップS24)が終了すると、演出制御装置73に電源投入後のサブコマンドを送信した後(ステップS25)、入力ポート1の内容を取得し(ステップS26)、入力ポート2の内容を取得し(ステップS27)、乱数ラッチレジスタをクリアし(ステップS28)、主コマンド許可信号をセットし(ステップS29)、タイマ割り込み用カウンタをセットし(ステップS30)、割り込みデイジーチェンをリセットして(ステップS31)、メインループへ移行する。割り込みデイジーチェンをリセット(ステップS31)することにより、後述する電源断時退避処理におけるステップS113(図14参照)の判定がYesでCPU初期化処理へ移行した際に、割り込み処理から抜ける際のRETI処理を行っていないために、後述するメインループにおけるステップS45(図10参照)で割り込み許可を行っても各割り込み処理に移行しないといったことを防止している。
(メインループ)
図10は、主制御CPU73が実行するメインループを示すフローチャートである。
メインループでは、割り込みを禁止して(ステップS41)、初期値乱数更新処理(ステップS42)、主コマンド解析処理(ステップS43)、サブコマンド送信処理(ステップS44)を実行し、割り込みを許可した後(ステップS45)、その他乱数更新処理(ステップS46)を実行して、ステップS41へ戻る。従って、メインループに対して電源断時退避処理の割り込みが許容される期間は、その他乱数更新処理(ステップS46)の実行中となる。
初期値乱数更新処理(ステップS42)では、当たり図柄乱数用初期値更新乱数を更新する。当たり図柄乱数用初期値更新乱数とは、当たり図柄乱数の初期値及び終了値を決定するためのソフトウェア乱数である。当たり図柄乱数とは、大当たりの当選種別の抽選に用いるソフトウェア乱数である。なお、割込を禁止した状態(ステップS41)でステップS42を実行するのは、タイマ割り込み処理(図12のステップS67)でも同様の処理を実行するため、これとの重複(競合)を防止するためである。また、本実施形態の当たり決定乱数(普図当選決定乱数)と大当たり決定乱数(特図当選決定乱数)とは、ハード乱数発生回路76により発生されるハードウェア乱数であり、その更新周期はタイマ割込周期(例えば数ms)よりもさらに高速(例えば数μs)であるため、大当たり決定乱数の初期値を更新する必要はない。
主コマンド解析処理(ステップS43)は、払出制御装置71から受信したコマンド(各種エラー発生指定の払出コマンド送信信号やエラー解除指定の払出コマンド送信信号を含む)を解析する処理である。サブコマンド送信処理(ステップS44)では、サブコマンド(演出制御に必要なサブコマンド)を演出制御装置72に送信する。このサブコマンド送信処理によって、後述するタイマ割り込み処理の特別遊技管理処理(ステップS70)及び普通遊技管理処理(ステップS71)においてサブコマンド出力要求バッファに格納されたサブコマンド(演出関連コマンド)が演出制御装置72に送信される。その他乱数更新処理(ステップS46)では、例えばリーチグループ決定乱数やリーチモード決定乱数や変動パターン乱数などを更新する。リーチグループ決定乱数とは、特別図柄変動パターンのリーチグループの抽選に用いるソフトウェア乱数であり、リーチモード決定乱数とは、特別図柄変動パターンのリーチモードの抽選に用いるソフトウェア乱数であり、変動パターン乱数とは、特別図柄変動パターンの抽選に用いるソフトウェア乱数である。
(シリアル通信受信割り込み処理)
図11は、主制御CPU73が実行するシリアル通信受信割り込み処理を示すフローチャートである。主制御CPU73は、メインループの割り込み許可中又はタイマ割り込み処理の割り込み許可中において、主コマンド(例えば、払出制御装置71から入力する各種の払出コマンド送信信号)を受信すると、受信した主コマンドを優先して処理するためにシリアル通信受信割り込み処理を割り込ませる。
図11に示すように、シリアル通信受信割り込み処理では、AFレジスタの値をRAM75の退避領域に退避させ(ステップS51)、チャンネルA(CHA)のステータスレジスタの内容をロードし(ステップS52)、受信FIFOにデータがあるか否かをチェックし(ステップS53)、CHAデータレジスタから受信値を取得し(ステップS54)、受信FIFOにデータが無いか否かを判定し(ステップS55)、受信FIFOにデータがない場合(ステップS55:Yes)には、ステップS51で退避させたAFレジスタの値を復帰させ(ステップS57)、割り込みを許可した後(ステップS58)、シリアル通信受信割り込み処理を終了する。一方、受信FIFOにデータがある場合(ステップS55:No)、主コマンドバッファに受信データを格納し(ステップS56)、ステップS51で退避させたAFレジスタの値を復帰させ(ステップS57)、割り込みを許可した後(ステップS58)、シリアル通信受信割り込み処理を終了する。シリアル通信受信割り込み処理の終了により、メインループ(スタックポインタで指示されるプログラムアドレス)に復帰する。
(タイマ割り込み処理)
図12は、主制御CPU73が実行するタイマ割り込み処理を示すフローチャートである。主制御CPU73は、カウンタ/タイマ回路は所定周期毎に割込要求信号を発生し、割込要求信号の発生に基づき、割り込み許可中のメインループにタイマ割り込み処理を割り込ませる。
図12に示すように、タイマ割り込み処理では、メインループの実行中に使用していた全てのレジスタの値をRAM75の退避領域に退避させる(ステップS61)。値を退避させた後のレジスタには、タイマ割り込み処理の中で別の値を書き込むことができる。
次に、割り込みフラグを初期化し(ステップS62)、割り込みを許可し(ステップS63)、ダイナミックポート出力処理を実行した後(ステップS64)、ポート入力処理を実行する(ステップS65)。割り込みフラグの初期化(ステップS62)により、割り込みフラグが4ms毎にセットされ、タイマ割り込み処理が4ms毎に周期的に実行される。
ダイナミックポート出力処理(ステップS64)では、前回のタイマ割り込み処理の後述するLED表示設定処理(ステップS77)においてダイナミックポート出力要求バッファに格納されたLEDの駆動信号(例えば、第1特図表示装置40の点灯状態を制御するための駆動信号など)を、統合表示ユニット30(第1特図表示装置40、第2特図表示装置41、普図表示装置42、及び状態表示装置43)に対してポート出力する。
ポート入力処理(ステップS65)では、図13に示すように、オンエッジ検出フラグをクリアし(ステップS121)、入力ポート0の内容を取得・保存し(ステップS122)、入力ポート1の内容を取得・保存した後(ステップS123)、電源断予告信号を受信しているか否かを判定する(ステップS124)。具体的には、電源断予告信号の入力ポートをビットチェックし、電源断予告信号が入力しているか否かを判定する。
電源断予告信号を受信していない場合(ステップS124:No)には、入力ポート1のオンエッジ検出フラグを生成し(ステップ125)、電源断予告信号を受信している場合(ステップS124:Yes)には、入力ポート1のオンエッジ検出フラグを生成しない。大入賞口52及び一般入賞口37への遊技球の入賞の検知は、大入賞球検知センサ58及び一般入賞球検知センサ59にそれぞれに対応する受信記憶領域(1ビット)の受信状態への変化(立ち上がり)を検出することによって行われ、例えば、一般入賞球検知センサ59に対応する受信記憶領域が受信状態に切り替わっていた場合、対応するオンエッジ検出フラグを、電源断予告信号を受信していなければオンに設定し、電源断予告信号を受信していればオンに設定せずにオフのまま維持する。
次に、入力ポート1と同様に、入力ポート2の内容を取得・保存した後(ステップS126)、電源断予告信号を受信しているか否かを判定する(ステップS127)。
電源断予告信号を受信していない場合(ステップS127:No)には、入力ポート2のオンエッジ検出フラグを生成して(ステップ128)、ポート入力処理を終了し、電源断予告信号を受信している場合(ステップS127:Yes)には、入力ポート2のオンエッジ検出フラグを生成せずに、ポート入力処理を終了する。第1始動入賞口35及び第2始動入賞口36への遊技球の入賞の検知は、第1特図始動球検知センサ56及び第2特図始動球検知センサ57にそれぞれに対応する受信記憶領域(1ビット)の受信状態への変化(立ち上がり)を検出することによって行われ、例えば、第2特図始動球検知センサ57に対応する受信記憶領域が受信状態に切り替わっていた場合、対応するオンエッジ検出フラグを、電源断予告信号を受信していなければオンに設定し、電源断予告信号を受信していればオンに設定せずにオフのまま維持する。また、スルーチャッカ32への遊技球の通過の検知は、ゲート通過球検知センサ55に対応する受信記憶領域(1ビット)の受信状態への変化(立ち上がり)を検出することによって行われ、ゲート通過球検知センサ55に対応する受信記憶領域が受信状態に切り替わっていた場合、対応するオンエッジ検出フラグを、電源断予告信号を受信していなければオンに設定し、電源断予告信号を受信していればオンに設定せずにオフのまま維持する。
このように、ポート入力処理では、ゲート通過球検知センサ55からの通過検知信号や、第1特図始動球検知センサ56、第2特図始動球検知センサ57、大入賞球検知センサ58、及び一般入賞球検知センサ59からの入賞検知信号の入力状態(オン/オフ)をリードする。電源断発生時ではない場合には、受信記憶領域の受信状態への変化を検出することによって遊技球の通過や入賞を検知し、通過や入賞を検知すると、対応するオンエッジ検出フラグをオンに設定した後、本処理を終了する。一方、電源断発生時の場合には、遊技球の通過や入賞を検知せずに、本処理を終了する。ポート入力処理を終了すると、図12のタイマ更新処理(ステップS66)及び初期値乱数更新処理(ステップS67)を実行する。
タイマ更新処理(ステップS66)では、カウンタ/タイマ回路のカウント値を初期値に更新して周期のカウントを再開する。初期値乱数更新処理(ステップS67)では、メインループの初期値乱数更新処理(図10のステップS42)と同様の処理を実行する。
次に、当たり図柄乱数更新処理を実行する(ステップS68)。当たり図柄乱数更新処理では、大当たり図柄抽選用の当たり図柄乱数を発生させるためのカウンタの値を更新する。カウンタの値は、RAM75のカウンタ領域にてインクリメントされ、それぞれ規定の範囲内でループする。
次に、スイッチ管理処理を実行する(ステップS69)。スイッチ管理処理では、ポート入力処理(ステップS65)で検知された第1始動入賞口35への遊技球の入賞、第2始動入賞口36への遊技球の入賞、及びスルーチャッカ32への遊技球の通過に基づいて、各当否判定処理に用いるハード乱数を取得する。
具体的には、第1始動入賞口35への遊技球の入賞を検知している場合(対応するオンエッジフラグがオンの場合)、RAM75の第1特図保留乱数記憶領域に記憶された第1特図保留乱数の数が上限数(4個)未満であるか否かを判定し、上限数に達していなければ、第1特図当たり決定乱数を取得し、第1特図保留乱数として第1特図保留乱数記憶領域に記憶する。一方、第1特図保留乱数の数が上限数に達している場合には、第1特図当たり決定乱数を取得しない。
同様に、第2始動入賞口36への遊技球の入賞を検知している場合(対応するオンエッジフラグがオンの場合)、RAM75の第2特図保留乱数記憶領域に記憶された第2特図保留乱数の数が上限数(4個)未満であるか否かを判定し、上限数に達していなければ、第2特図当たり決定乱数を取得し、第2特図保留乱数として第2特図保留乱数記憶領域に記憶する。一方、第2特図保留乱数の数が上限数に達している場合には、第2特図当たり決定乱数を取得しない。
スルーチャッカ32への遊技球の通過を検知している場合(対応するオンエッジフラグがオンの場合)、RAM75の普図保留乱数記憶領域に記憶された普図保留乱数の数が上限数(4個)未満であるか否かを判定し、上限数に達していなければ、普図当たり決定乱数を取得し、普図保留乱数として普図保留乱数記憶領域に記憶する。一方、普図保留乱数の数が上限数に達している場合には、普図当たり決定乱数を取得しない。
また、第1特図当たり決定乱数又は第2特図当たり決定乱数を取得する場合、図柄表示用乱数として用いるソフト乱数を取得する。図柄表示乱数は、独立する複数の乱数(当たり図柄乱数、リーチグループ決定乱数、リーチモード決定乱数、及び変動パターン乱数)から構成され、図柄表示乱数も、特図保留乱数と同様に、上限数(4個)までRAM75に記憶される。なお、スルーチャッカ32への遊技球の通過を検知している場合(普通図柄の場合)にも、特別図柄の場合と同様に図柄表示用乱数を取得して記憶するが、その内容は特別図柄と比較して簡素化されている。
このように、第1特図当たり決定乱数又は第2特図当たり決定乱数、及び対応する図柄表示用乱数(当たり図柄乱数、リーチグループ決定乱数、リーチモード決定乱数、及び変動パターン乱数)を取得するタイミングは、第1始動入賞口35又は第2始動入賞口36への遊技球の入賞時(第1特図始動球検知センサ56又は第2特図始動検知センサ56による遊技球の検知時)であり、普図当たり決定乱数及び対応する図柄表示用乱数を取得するタイミングは、スルーチャッカ32への遊技球の通過時(ゲート通過球検知センサ55による遊技球の検知時)である。
次に、特別遊技管理処理を実行する(ステップS70)。特別遊技管理処理では、第1特別図柄又は第2特別図柄に関する内部抽選(特別図柄判定処理)や、第1特図表示装置40及び第2特図表示装置41による図柄の変動及び停止の表示態様の決定(図柄及び変動パターン決定処理)を実行する。
特別図柄判定処理では、第1特図保留乱数記憶領域に最先に記憶された第1特図保留乱数、又は第2特図保留乱数記憶領域に最先に記憶された第2特図保留乱数の何れか一方を読み出し、読み出した特図保留乱数(第1特図当たり決定乱数又は第2特図当たり決定乱数)が当選であるか否かを、予め設定された第1特図当否判定テーブル又は第2特図当否判定テーブルを参照して決定する(特図抽選)。第1特図保留乱数は、第1特図当たり決定乱数として読み出されることによって第1特図保留乱数記憶領域から消去され、第2特図保留乱数は、第2特図当たり決定乱数として読み出されることによって第2特図保留乱数記憶領域から消去される。第1特図保留乱数と第2特図保留乱数との双方が記憶されている場合、第2特図保留乱数を優先して読み出してもよく、記憶領域(第1特図であるか第2特図であるか)に関わらず最先に記憶された保留球乱数を読み出してもよい。
図柄及び変動パターン決定処理では、特図停止図柄及び変動パターン(変動パターンコマンド)を、上記読み出した第1特図当たり決定乱数又は第2特図当たり決定乱数と、この当たり決定用乱数に対応して最先に記憶された当たり図柄乱数、リーチグループ決定乱数、リーチモード決定乱数、及び変動パターン乱数との組合せに応じて、予め設定されたパターン決定テーブルを参照して決定する。当たり図柄乱数は、特図の停止図柄を規定するとともに、特図抽選に当選している場合には生起する大当たり遊技状態の態様(種別)を規定する。変動パターンは、変動時間、リーチの発生の有無、リーチ発生時の基本演出パターン等を規定する。
特図抽選に当選すると、当たり図柄乱数に応じた態様の大当たり遊技状態を生起する。大当たりの態様として、例えば2R通常当たり、2R確変当たり、15R通常当たり、15R確変当たり等が設定されており、2R当たりでは、アタッカー装置39を2ラウンド分開閉し、15R当たりでは、アタッカー装置39を15ラウンド分開閉する。また、通常当たりでは、大当たり遊技終了(アタッカー装置39の作動終了)後に通常遊技状態又は時短遊技状態へ移行する場合があり、確変当たりでは、大当たり遊技終了後に確変遊技状態へ移行する場合がある。
確変遊技状態では、特別図柄判定処理において参照する当否判定テーブルを、通常用の低確率判定テーブルから高確率判定テーブル(通常用よりも当選確率が高い判定テーブル)に変更する。確変遊技状態は、次回の特図当選まで継続するが、時短遊技状態は、特図抽選を所定回数実行することによって終了する。
また、特別遊技管理処理では、第1特別図柄及び第2特別図柄の変動の開始及び終了、大当たり遊技状態の開始及び終了、大当たり遊技状態におけるラウンド数、確変遊技状態の開始及び終了、時短遊技状態の開始及び終了などの管理を行い、これらの管理に関する演出関連コマンド(例えば、特別図柄の変動の開始を示す変動開始指示コマンドや終了を示す変動終了指示コマンドなどであり、上記決定した特別図柄の変動パターンコマンドを含む)をサブコマンド出力要求バッファに格納する。
次に、普通遊技管理処理を実行する(ステップS71)。普通遊技管理処理では、普通図柄に対応する内部抽選(普通図柄判定処理)や、普図表示装置42による図柄の変動及び停止の表示態様の決定(図柄及び変動パターン決定処理)などを実行する。
普通図柄判定処理では、普図保留乱数記憶領域に最先に記憶された普図保留乱数を読み出し、読み出した普図保留乱数(普図当たり決定乱数)が当選であるか否かを、予め設定された普図当否判定テーブルを参照して決定する(普図抽選)。普図保留乱数は、普図当たり決定乱数として読み出されることによって普図保留乱数記憶領域から消去される。
図柄及び変動パターン決定処理では、普図停止図柄及び変動パターン(変動パターンコマンド)を、上記読み出した普図当たり決定乱数と、この当たり決定用乱数に対応して最先に記憶された図柄表示用乱数の組合せに応じて、予め設定されたパターン決定テーブルを参照して決定する。
なお、普通図柄判定処理において普図抽選に当選すると、電動チューリップ33が所定回数(本実施形態では1回)開放される。また、確変遊技状態及び時短遊技状態では、普通図柄判定処理において参照する普図当否判定テーブルを、通常用の低確率判定テーブルから高確率判定テーブル(通常用よりも当選確率が高い判定テーブル)に変更し、図柄及び変動パターン決定処理において参照するパターン決定テーブルを、通常用のパターン決定テーブルから時短用パターン決定テーブル(通常用よりも変動時間が短い決定テーブル)に変更する。
また、普通図柄管理処理では、普通図柄の変動の開始及び終了、普図当選による電動チューリップ33開放の開始及び終了などの管理を行い、これらの管理に関する演出関連コマンド(上記決定した普通図柄の変動パターンコマンドを含む)をサブコマンド出力要求バッファに格納する。
次に、エラー管理処理を実行する(ステップS72)。エラー管理処理では、ポート入力処理(ステップS122)で保存した入力ポート0のエラー検知信号の入力が確認された場合、磁石等を使用した不正が行われている可能性があるため、以降の通常の処理を実行せずに所定のエラー処理を実行する。
次に、入賞口スイッチ処理を実行する(ステップS73)。入賞口スイッチ処理では、ポート入力処理(ステップS65)で検知された第1始動入賞口35、第2始動入賞口36、一般入賞口37、及び大入賞口52への遊技球の入賞情報(各オンエッジフラグのオン情報)を取得する。
次に、払出制御管理処理を実行する(ステップS74)。払出制御管理処理では、入賞口スイッチ処理(ステップS73)において取得した入賞情報に基づき、払出制御装置71に対して賞球動作の実行及び賞球個数を指示する賞球指示コマンドを生成し、生成した賞球指示コマンドを払出制御装置71に出力する。
次に、外部情報出力管理処理を実行する(ステップS75)。外部情報出力管理処理では、外部情報端子基板65を介して遊技場のホールコンピュータ68へ出力する外部情報信号(例えば扉開放情報、図柄確定回数情報、大当たり情報、始動口情報等)をポート出力要求バッファに格納する。
次に、試験信号管理処理を実行する(ステップS76)。試験信号管理処理では、主制御CPU73が自己の内部状態(例えば、普通図柄遊技管理状態、特別図柄遊技管理状態、大当たり中、確率変動機能作動中、時間短縮機能作動中)を表す各種の試験信号を生成し、これらをポート出力要求バッファに格納する。この試験信号により、例えば主制御装置70の外部で主制御CPU73の内部状態を試験することができる。
次に、LED表示設定処理を実行する(ステップS77)。LED表示設定処理では、第1特図表示装置40、第2特図表示装置41、普図表示装置42、状態表示装置43等の点灯状態を制御するために各LEDに対して印加するバイトデータとしての駆動信号を、ダイナミックポート出力要求バッファに格納する。
例えば、第1特図表示装置40及び第2特図表示装置41に対しては、特別遊技管理処理(ステップS70)において決定した特図停止図柄及び変動パターンでの点灯表示を行わせる駆動信号を格納し、普図表示装置42に対しては、普通遊技管理処理(ステップS71)において決定した普図停止図柄及び変動パターンでの点灯表示を行わせる駆動信号を格納し、第1特図保留数表示部45に対しては、第1特図保留乱数記憶領域に記憶された第1特図保留乱数の数を示す点灯表示を行わせる駆動信号を格納し、第2特図保留数表示部46に対しては、第2特図保留乱数記憶領域に記憶された第2特図保留乱数の数を示す点灯表示を行わせる駆動信号を格納し、普図保留数表示部47に対しては、普図保留乱数記憶領域に記憶された普図保留乱数の数を示す点灯表示を行わせる駆動信号を格納し、ラウンド数表示部44に対しては、特別遊技管理処理(ステップS70)において管理されている大当たり遊技中の現在のラウンド数を示す点灯表示を行わせる駆動信号を格納する。
次に、ソレノイド出力イメージ合成処理を実行する(ステップS78)。ソレノイド出力イメージ合成処理では、アタッカー装置39及び電動チューリップ33を開閉制御するためにアタッカー駆動装置54及び電動チューリップ駆動装置51に対して出力する制御コマンドとしての駆動信号を、ポート出力要求バッファに格納する。
例えば、アタッカー駆動装置54に対しては、特別遊技管理処理(ステップS70)において管理されている大当たり遊技中のラウンドに基づいてアタッカー装置39を開閉させる駆動信号を格納し、電動チューリップ駆動装置51に対しては、普通遊技管理処理(ステップS71)における普図抽選の当選に応じて電動チューリップ33を所定回数開放させる駆動信号を格納する。
次に、ポート出力処理を実行する(ステップS79)。ポート出力処理では、上述の各処理(ステップS70、ステップS75〜ステップS78)においてポート出力要求バッファに格納された各信号を、対応する送信対象に対してポート出力する。
例えば、外部情報出力管理処理(ステップS75)において格納された外部情報信号を外部情報端子基板65に送信し、ソレノイド出力イメージ合成処理(ステップS78)において格納された駆動信号をアタッカー駆動装置54や電動チューリップ駆動装置51に送信する。
なお、LED表示設定処理(ステップS77)において、ダイナミックポート出力要求バッファに格納されたLEDの駆動信号(例えば、第1特図表示装置40の点灯状態を制御するための駆動信号など)は、次回のタイマ割り込み処理のダイナミックポート出力処理(ステップS64)において各表示装置40〜43に送信される。
最後に、ステップS61において退避させた全てのレジスタの値を復帰させ(ステップS80)、タイマ割り込み処理を終了する。タイマ割り込み処理の終了により、メインループ(スタックポインタで指示されるプログラムアドレス)に復帰する。
(電源断時退避処理)
図14は、主制御CPU73が実行する電源断時退避処理を示すフローチャートである。主制御CPU73は、メインルーチンの割り込み許可中に電源断予告信号を受信すると、電源断時退避処理を割り込ませる。また、タイマ割り込み処理の実行中に電源断予告信号を受信すると、タイマ割り込み処理が終了してメインループに復帰した後に電源断時退避処理を割り込ませる。
図14に示すように、電源断時退避処理では、AFレジスタの値をRAM75の退避領域に退避させ(ステップS101)、電源断予告信号を受信しているか否かを判定する(ステップS102)。具体的には、電源断予告信号の入力ポートをビットチェックし、電源断予告信号が入力しているか否かを判定する。このように電源断時退避処理の開始直後に電源断予告信号を再度チェックすることによって、ノイズ等による誤検知に起因したステップS106以降の処理の実行を回避することができる。
電源断予告信号を受信していない場合(ステップS103:No)には、ステップS101で退避させたAFレジスタの値を復帰させ(ステップS104)、割り込みを許可した後(ステップS105)、電源断時退避処理を終了する。電源断時退避処理の終了により、メインループ(スタックポインタで指示されるプログラムアドレス)に復帰する。
一方、電源断予告信号を受信している場合(ステップS103:Yes)には、出力ポート(出力ポート要求バッファ)の全てにクリア値を出力する(ステップS106)。これにより、電源断時退避処理以前に出力ポート要求バッファに格納された信号は全て削除され、送信されない。
次に、RAM75のワーク領域(使用禁止領域及びスタック領域を含むユーザワーク領域)のうち、バックアップ判定記憶領域及びサムチェックバッファを除く領域について、チェックサム値を算出し、算出したチェックサム値をサムチェックバッファに保存する(ステップS108)。
次に、バックアップ判定記憶領域にバックアップ有効判定値(バックアップ有効判定フラグ)を保存し(ステップS108)、RAM75のワーク領域に対するアクセスを禁止して(ステップS109)、電源断時待機処理を実行する。
電源断時待機処理では、電源断時にある程度の待機時間(例えば数十ms程度)を確保し、その間に入力ポート2の電源断予告信号をチェックする。本実施形態では、リセット信号待ちとして80ms分のループカウンタをセットし(ステップS110)、ループカウンタの値をデクリメントしながら電源断予告信号の入力ポートをビットチェックする(ステップS111)。80ms間経過する前(ループカウンタが0になる前)に電源断予告信号が入力すると(ステップS112:Yes)、電源断時待機処理の最初(ステップS110)に戻る。電源断予告信号が入力せずに80ms間が経過するまでこの処理を継続し(ステップS112:Yes→ステップS110、又はステップS112:No→ステップS113:No→ステップS111)、電源断予告信号が入力せずに80ms間が経過すると(ステップS112:No→ステップS113:Yes)、電源断時退避処理を終了し、CPU初期化処理(図8のステップS1)へ移行する。電源断時待機処理によって、電源断予告信号が所定時間(80ms)以上入力しない安定した状態となった後にCPU初期化処理へ移行させることができ、処理の安定化及びシステム保護を図ることができる。
このように主制御装置70のタイマ割り込み処理は、電源断時退避処理に優先してメインループに割り込むので、タイマ割り込み処理の実行中に電源断が発生した場合であっても、タイマ割り込み処理は電源断時退避処理によって中断せず、電源断時退避処理はタイマ割り込み処理の終了を待って開始される。従って、電源断時退避処理において退避させるデータ量を最小限に抑えるとともに、復帰プログラムの複雑化を回避することができる。
すなわち、電源断時退避処理において、RAM75のワーク領域の内容をバックアップ情報としてRAM75の退避領域に退避させるバックアップ情報退避処理や、退避させたバックアップ情報をRAM75のワーク領域に復帰させて前回の電源断発生時に実行中であった遊技状態に復帰させる状態復帰処理を実行しないので、RAM75の退避領域の記憶量を低減させることができる。また、バックアップ情報退避処理や状態復帰処理を実行しないので、復帰プログラムの簡素化を図ることができる。
また、ポーリングによって電源断予告信号を監視していないので、主制御CPU73の処理負担を軽減することができる。
さらに、タイマ割り込み処理において、入賞判定処理(ステップS125、ステップS128)の実行前に電源断予告信号を受信した場合(ステップS124:Yes、ステップS127:Yes)には入賞判定処理を実行しないので、電源断によるノイズ等に起因して入賞球検知信号が誤って主制御装置に入力しても、誤入力に基づく払出(ステップS73、ステップS4)や当否抽選(ステップS69〜ステップS71)が実行されることはない。従って、例えば、故意に電源断を発生させるという遊技者の不正行為に起因して、賞球の払い出しや大当たり遊技状態の生成が行われることがなく、賞球の不正な取得を防止することができる。
[払出制御装置71の入力ポートの説明]
払出制御装置71(本実施形態では発射制御装置100を含む払出制御ユニット63)の複数の入出力ポートのうち、入力ポート0には、払出計数スイッチ84からの払出計数信号、CRユニット50からの貸出装置READY信号及び台端末貸出要求完了確認信号、主制御CPU73からの主コマンド許可信号、発射許可信号が割り当てられ、電源供給装置61からの電源断予告信号及びRWMクリア指定信号が割り当てられている。入力ポートには、各信号の受信時に状態が切り替わる(1/0で切り替わる)1ビットの受信記憶領域が設けられ、各信号の入力の確認は、対応する受信記憶領域のビットチェックによって行われる。入力ポート0は、電源断の発生時に電源断予告信号を受信する電源断信号受信手段として機能し、入力ポート0に電源断予告信号が入力している間、対応する受信記憶領域の状態が切り替わる。
[払出制御装置71のシリアル入力/出力の説明]
払出制御装置71は、主制御装置70から主コマンド送信信号を受信して払出CPU80に入力するとともに、払出制御装置71から主制御装置70へ払出コマンド送信信号を出力(送信)するシリアル通信回路を備えている。
[払出制御装置71と主制御装置70との間の通信]
払出制御装置71(発射制御装置100を含む払出制御ユニット63)と主制御装置70との間では、図6(a)に示すように、4本の信号線を介して双方向通信が行われる。4本の信号線は、払出制御装置71から主制御装置70へ信号を送信する払出コマンド許可信号線及び払出コマンドデータ信号線と、主制御装置70から払出制御装置71へ信号を送信する主コマンド許可信号線及び主コマンドデータ信号線である。
払出コマンド許可信号線は、払出制御装置71がコマンド受信可能な状態を主制御装置70に通知する(払出コマンド許可信号をOFF状態からON状態にする)。主コマンド許可信号線は、主制御装置70がコマンド受信可能な状態を払出制御装置71へ通知する(主コマンド許可信号をOFF状態からON状態にする)。払出コマンドデータ信号線は、主コマンド許可信号がON状態のときにシリアル化された払出コマンド送信信号を送信する。主コマンドデータ信号線は、払出コマンド許可信号がON状態のときにシリアル化された主コマンド送信信号を送信する。
起動時(電源投入時)に送信される主コマンド送信信号は、主制御装置70がコマンド受信可能な状態であることを払出制御装置71に通知するコマンドであり、主起動情報指定信号と払出起動確認指定信号とを含む。
起動時(電源投入時)に送信される払出コマンド送信信号は、払出制御装置71がコマンド受信可能な状態であることを主制御装置70に通知するコマンドであり、払出起動指定信号を含む。
起動して払出コマンド許可信号がON状態であることを受信した主制御装置70は、図6(b)に示すように、主起動情報指定信号を送信する。同様に、起動して主コマンド許可信号がON状態であることを受信した払出制御装置71は、払出起動指定信号を送信する。払出起動指定信号を受信した主制御装置70は、払出起動確認指定信号を送信し、払出起動確認指定信号を受信した払出制御装置71は、払出動作の実行が許可(払出禁止状態が解除)される。
[払出制御装置71が実行する制御処理]
次に、払出制御装置71の払出制御CPU80がROM81に記憶されている遊技制御用プログラム(払出発射制御プログラム)に従って実行する制御処理について説明する。払出制御CPU80が実行する制御処理は、メインルーチンとしてのCPU初期化処理及びメインループ、シリアル通信受信割り込み処理、タイマ割り込み処理(メイン割り込み処理)、並びに電源断時退避処理を含み、払出制御CPU80は、これらの処理の実行を制御する。なお、後述する発射制御処理(ステップS248)は発射制御装置100の発射制御CPUによって実行される処理であるが、払出制御CPU80が管理する一連の制御処理の一部に含まれるため、払出制御装置71が実行する制御処理に含めて説明する。
図15(a)に示すように、シリアル通信受信割り込み処理の割り込み発生要因は主コマンドの受信によって成立し、タイマ割り込み処理の割り込み発生要因は、所定周期(本実施形態では1.4ms)毎に成立し、電源断時退避処理の割り込み発生要因は電源断予告信号の受信によるINT割り込み発生によって成立する。シリアル通信受信割り込み処理とタイマ割り込み処理と電源断時退避処理とは、この順番で割り込み優先順位が高くなるように設定されている。また、シリアル通信受信割り込み処理と電源断時退避処理とは多重割り込みを禁止し、タイマ割り込み処理は多重割り込みを許可する。
すなわち、払出制御装置71では、図15(b)に示すように、メインルーチンが基本処理として繰り返して実行され、タイマ割り込み処理が所定周期毎に起動してメインループに割り込む。メインルーチンの実行中又はタイマ割り込み処理の実行中に主コマンドを受信すると、シリアル通信受信割り込み処理が起動してメインループ又はタイマ割り込み処理に割り込む(図示省略)。メインルーチンの実行中(シリアル通信受信割り込み処理及びタイマ割り込み処理の実行中ではなく、主コマンドも受信していない)に電源断予告信号を受信すると、電源断時退避処理が起動してメインルーチンに割り込む。また、タイマ割り込み処理の実行中に電源断予告信号を受信すると、タイマ割り込み処理が終了してメインループに復帰した後に電源断時退避処理が起動する。但し、電源断時退避処理の実行中にはシリアル通信受信割り込み処理及びタイマ割り込み処理は起動せず、電源断時退避処理の実行中に割り込み発生要因が成立した場合には、電源断時退避処理の終了を待って対応する割り込み処理が起動する。なお、割り込み処理は、割り込み先の処理(現在実行中の処理)が割り込み許可状態であることを条件として起動する。
また、タイマ割り込み処理は、入力ポート0の内容(払出計数信号を含む)を取得する処理(図23のステップS262)と、入力ポート0の内容を更新して保存する処理(図23のステップS264)と、払出モータ83による1回の払出動作の完了を検出する払出検出処理(更新した入力ポート0の払出計数信号の立ち下がりを検出し、立ち下がりを検出したときに立ち下がりの検出(オンエッジ)を保存する処理(図23のステップS265))と、払出検出処理において1回の払出動作の完了を検出したときにRAM82に記憶された払出残数を1個減算する払出残数減算処理(図22のステップS247)と、RAM82に記憶された払出残数が正数であるときに払出モータ83に1回の払出動作を実行させるための払出駆動制御コマンドを生成し(図22のステップS247)、生成した払出駆動制御コマンド送信信号を払出モータ83に送信する払出指示処理(図22のステップS252)とを含む。メインCPU73は、タイマ割り込み処理の実行中は電源断時退避処理の割り込みを禁止する一方、実行中のタイマ割り込み処理において払出検出処理の実行前に電源断予告信号を受信した場合(図23のステップS263:Yes)には、払出検出処理を実行しない。
(CPU初期化処理)
パチンコ機Pに電源が投入されると、払出制御CPU80はCPU初期化処理を開始する。CPU初期化処理によって、払出制御装置71の安定した払出動作及び発射動作が保証される。
図16は、払出制御CPU80が実行するCPU初期化処理を示すフローチャートである。
CPU初期化処理の開始により、スタックポインタにスタック領域の先頭アドレス(アドレス初期値)をセットし(ステップS201)、ベクタ方式の割込モード(割り込みモードモード2)に設定する(ステップS202)。これにより、払出制御CPU80は、任意のアドレス(但し最下位ビットは0)を割込ベクタとして参照し、指定の割込ハンドラを実行することができる。
次に、割り込みベクタテーブルを設定し(ステップS203)、内蔵レジスタを設定して(ステップS204)、リセット時待機処理を実行する。この処理では、リセットスタート(例えば電源投入)時にある程度の待機時間(例えば百ms程度)を確保し、その間に入力ポート0の電源断予告信号をチェックする。本実施形態では、供給電源安定待ち時間として100ミリ秒分のループカウンタをセットし(ステップS205)、ループカウンタの値をデクリメントしながら電源断予告信号の入力ポートをビットチェックする(ステップS206)。100ミリ秒間経過する前(ループカウンタが0になる前)に電源断予告信号が入力すると(ステップS207:Yes)、リセット時待機処理の最初(ステップS205)に戻る。電源断予告信号が入力せずに100ミリ秒間が経過するまでこの処理を継続し(ステップS207:Yes→ステップS205、又はステップS207:No→ステップS208:No→ステップS206)、電源断予告信号が入力せずに100ミリ秒間が経過すると(ステップS207:No→ステップS208:Yes)、この処理を終了する。
次に、RAM82のワーク領域に対するアクセスを許可する(ステップS209)。具体的には、ワーク領域のRAMプロテクト設定値をリセットする。これにより、以後はRAM82のワーク領域に対するアクセスが許可された状態となる。
次に、RAM82にバックアップ有効判定値(バックアップ有効判定フラグ)が保存されているか否かを判定する。具体的には、RAM82のバックアップ判定記憶領域のデータをバックアップ有効判定値と比較し(ステップS210)、両者が一致している場合(バックアップ有効判定フラグがセットされている場合)には、電源断時退避処理が適正に終了した後のCPU初期化処理であると判定し(ステップS211:No)、不一致の場合(バックアップ有効判定フラグがセットされていない場合)には、電源断時退避処理が適正に終了した後のCPU初期化処理ではないと判定する(ステップS211:Yes)。
電源断時退避処理が適正に終了した後のCPU初期化処理である場合(ステップS211:No)、RAM82のバックアップ情報についてサムチェックを実行する。具体的には、RAM82のワーク領域(使用禁止領域及びスタック領域を含むユーザワーク領域)のうち、バックアップ判定記憶領域及びサムチェックバッファを除く領域について、チェックサム値を算出し(ステップS212)、算出したチェックサム値が正常値か否かを判定する(ステップS213)。具体的には、ステップS212で算出したチェックサム値と、後述する電源断時退避処理(ステップS280)で保存したチェックサム値とを比較し、両者が一致する場合には正常値であると判定し、相違する場合には正常値ではないと判定する。
チェックサム値が正常値の場合(ステップS213:Yes)、バックアップエラーではないと判定して復帰処理(電源復帰処理)を実行する。復帰処理では、電源復帰時クリア領域(例えば、バックアップ判定記憶領域)をリセットする(ステップS214)。
一方、電源断時退避処理が適正に終了した後のCPU初期化処理ではない場合(ステップS211:Yes)、又はチェックサム値が正常値でなかった場合(ステップS213:No)、バックアップエラーであると判定して初期化処理(ステップS215、S216)を実行する。
初期化処理では、RAM82の使用禁止領域以外の記憶領域を全てクリアする(ステップS215)。これにより、RAM82のワーク領域及びスタックエリアは全て初期化される。次に、RAM82にクリア起動時の初期値をセットすることによりRAM82の初期設定を行う(ステップS216)。
復帰処理(ステップS214)又は初期化処理(ステップS215、S216)が終了すると、起動時の設定値をセットし(ステップS217)、タイマ割り込み用カウンタをセットし(ステップS218)、割り込みデイジーチェンをリセットして(ステップS219)、メインループへ移行する。割り込みデイジーチェンをリセット(ステップS219)することにより、後述する電源断時退避処理におけるステップS286(図26参照)の判定がYesでCPU初期化処理へ移行した際に、割り込み処理から抜ける際のRETI処理を行っていないために、後述するメインループにおけるステップS224(図17参照)で割り込み許可を行っても各割り込み処理に移行しないといったことを防止している。
(メインループ)
図17は、払出制御CPU80が実行するメインループを示すフローチャートである。
メインループでは、割り込みを禁止して(ステップS221)、受信コマンド解析処理(ステップS222)、コマンド送受信関連処理(ステップS223)を実行し、割り込みを許可した後(ステップS224)、ステップS221へ戻る。このように受信コマンド解析処理(ステップS222)及びコマンド送受信関連処理(ステップS223)の実行中は割り込みが禁止されるため、開始されたこれらの処理は、途中で中断及び中止されることなく最後まで実行される。
受信コマンド解析処理(ステップS222)は、主制御装置70から受信したコマンドを解析する処理である。主制御装置70から受信するコマンドは、起動に関する起動関連コマンド(主起動情報指定信号(RWMクリア指定信号、電源復帰指定信号)、払出起動確認指定信号)、払出停止のコマンド(例えば、扉開放やエラーが発生した場合に主制御装置70が出力するエラー信号)、及び賞球に関するコマンド(払出指示信号)を含む。
コマンド送受信解析処理(ステップS222)では、図18に示すように、起動関連コマンドを受信した否かを判定し(ステップS301)、受信したコマンドが起動関連コマンドである場合(ステップS301:Yes)、受信したコマンドに対応する受信関連情報をRAM82に記憶して一時的に保存する。受信したコマンドが起動関連コマンドではない場合(ステップS301:No)、賞球指示コマンド(払出指示信号)を受信したか否かを判定する(ステップS303)。
受信したコマンドが賞球指示コマンドである場合(ステップS303:Yes)、払出制御CPU80は、受信した賞球指示コマンドが示す賞球数を賞球メモリ領域の賞球残数(残払出個数)に加算し(ステップS304)、受信した賞球指示コマンドが示す賞球数をメイン賞球数記憶領域のメイン賞球数に加算して(ステップS305)、受信コマンド解析処理を終了する(ステップS306)。また、受信したコマンドが賞球指示コマンドではない場合(ステップS303:No)、ステップS304及びS305の処理を実行せずに、受信コマンド解析処理を終了する。なお、払出制御CPU80は、エラーに関するコマンドを受信した場合には、払出動作を中断する処理を実行する。
コマンド送受信関連処理(ステップS223)では、図19に示すように、起動関連指定チェック処理2を実行する(ステップ311)。
起動関連指定チェック処理2では、図20に示すように、受信したコマンド(図18のステップS302で保存した起動関連情報)に応じてフェーズを設定する。具体的には、起動確認指定信号を受信したか否かを判定し(ステップS321)、受信したコマンドが起動確認指定信号である場合(ステップS321:Yes)、フェーズ4をセットする(ステップS322)。受信したコマンドが起動確認指定信号ではない場合(ステップS321:No)、RWMクリア指定信号を受信したか否かを判定する(ステップS323)。受信したコマンドがRWMクリア指定信号である場合(ステップS323:Yes)、フェーズ5をセットする(ステップS324)。受信したコマンドがRWMクリア指定信号ではない場合(ステップS323:No)、電源復帰指定信号を受信したか否かを判定する(ステップS325)。受信したコマンドが電源復帰指定信号である場合(ステップS325:Yes)、フェーズ0をセットする(ステップS326)。受信したコマンドが電源復帰指定信号ではない場合(ステップS325:No)、起動関連指定チェック処理2を終了する(ステップS327)。起動関連指定チェック処理2により、起動確認指定信号の受信に応じてフェーズ4がセットされ、RWMクリア指定信号の受信に応じてフェーズ5がセットされ、電源復帰指定信号の受信に応じてフェーズ0がセットされる。
起動関連指定チェック処理2が終了すると、図19に戻り、フェーズ4が設定されているか否かを判定する(ステップS312)。フェーズ4が設定されている場合(ステップS312:Yes)、払出許可をセットして(ステップS313)、コマンド送受信関連処理を終了する(ステップS315)。フェーズ4が設定されていない場合(ステップS312:No)、払出不可をセットして(ステップS315)、コマンド送受信関連処理を終了する(ステップS315)。フェーズ4であるときに、払出許可がセットされて払出禁止状態が解除され、フェーズ4以外であるときに、払出不可がセットされて払出禁止状態が設定又は維持される。なお、フェーズ5は初期化処理の実行を指定するフェーズであり、フェーズ0は電源復帰処理の実行を指定するフェーズである。
また、図示を省略しているが、コマンド送受信関連処理(ステップS223)では、上記以外にも受信したコマンドに関連する処理を実行する。例えば、皿満タンSW85からの受信に基づいて皿満タンエラーを検知した場合や、払出計数スイッチ84からの受信に基づいて球切れエラーや球詰まりエラーを検知した場合には、発生したエラーを示すエラーコマンドを主制御装置70へ送信する。
(シリアル通信受信割り込み処理)
図21は、払出制御CPU80が実行するシリアル通信受信割り込み処理を示すフローチャートである。払出制御CPU80は、メインループの割り込み許可中又はタイマ割り込み処理の割り込み許可中において、主コマンド(主制御装置70から入力する各種コマンド)を受信すると、受信した主コマンドを優先して処理するためにシリアル通信受信割り込み処理を割り込ませる。
図21に示すように、シリアル通信受信割り込み処理では、AFレジスタの値をRAM82の退避領域に退避させ(ステップS231)、SCUのステータスレジスタの内容をロードし(ステップS232)、受信データがあるか否かをチェックし(ステップS233)、SCUデータレジスタから受信値を取得し(ステップS234)、受信データを確認したか否かを判定し(ステップS235)、受信データを確認しなかった場合(ステップS235:No)には、ステップS231で退避させたAFレジスタの値を復帰させ(ステップS237)、割り込みを許可した後(ステップS238)、シリアル通信受信割り込み処理を終了する。一方、受信データを確認した場合(ステップS235:No)、シリアル通信用バッファに受信データを格納し(ステップS236)、ステップS231で退避させたAFレジスタの値を復帰させ(ステップS237)、割り込みを許可した後(ステップS238)、シリアル通信受信割り込み処理を終了する。シリアル通信受信割り込み処理の終了により、メインループ又は、タイマ割り込み処理(スタックポインタで指示されるプログラムアドレス)に復帰する。
(タイマ割り込み処理)
図22は、払出制御CPU80が実行するタイマ割り込み処理を示すフローチャートである。払出制御CPU80は、カウンタ/タイマ回路は所定周期毎に割込要求信号を発生し、割込要求信号の発生に基づき、割り込み許可中のメインループにタイマ割り込み処理を割り込ませる。
図22に示すように、タイマ割り込み処理では、メインループの実行中に使用していた全てのレジスタの値をRAM82の退避領域に退避させる(ステップS241)。値を退避させた後のレジスタには、タイマ割り込み処理の中で別の値を書き込むことができる。
次に、割り込みを許可し(ステップS242)、割り込みフラグを初期化した後(ステップS243)、ポート入力処理を実行する(ステップS244)。割り込みフラグの初期化(ステップS243)により、割り込みフラグが1.4ms毎にセットされ、タイマ割り込み処理が1.4ms毎に周期的に実行される。
ポート入力処理(ステップS244)では、図23に示すように、オンエッジ検出フラグをクリアし(ステップS261)、入力ポート0の内容を取得した後(ステップS262)、電源断予告信号を受信しているか否かを判定する(ステップS263)。具体的には、電源断予告信号の入力ポートをビットチェックし、電源断予告信号が入力しているか否かを判定する。
電源断予告信号を受信していない場合(ステップS263:No)には、入力ポート0の内容を更新して保存し(ステップS264)、入力ポート0の払出計数信号のオンエッジを保存して(ステップS265)、ポート入力処理を終了する。払出計数SW84に対応する受信記憶領域(1ビット)の受信状態(レベル)は、通常はH(High)に設定され、払出計数信号の受信によってL(Low)に変更されるため、電断予告信号を受信しておらず、且つ払出計数SW84に対応する受信記憶領域(1ビット)の受信状態への変化(HからLへの立ち下がり)を検出した場合に、ステップS265の処理によって払出計数信号のオンエッジが保存される。なお、払出計数信号のオンエッジは、HからLへの変更(H→L)のみによって検出してもよく、HからLへ変更された後のLの維持(H→L→L)によって検出してもよい。一方、電源断予告信号を受信している場合(ステップS263:Yes)には、入力ポート0の内容の更新、及び入力ポート0のオンエッジの保存を実行せずに、ポート入力処理を終了する。
このように、ポート入力処理において、払出計数SW84からの払出計数信号の入力状態(H/L)をリードし、電源断発生時ではない場合には、受信記憶領域の受信状態への変化を検出することによって遊技球の払い出しを検知し、払出計数信号のオンエッジを保存した後、本処理を終了する。一方、電源断発生時の場合には、遊技球の払い出しを検知せずに、本処理を終了する。ポート入力処理を終了すると、図22のタイマ更新処理(ステップS245)を実行する。
タイマ更新処理(ステップS245)では、各処理の実行間隔を規定するカウンタ/タイマ回路のカウント値を初期値に一括して更新して周期のカウントを再開する。
次に、CR通信処理を実行する(ステップS246)。CR通信処理では、ポート入力処理(ステップS264)でCRユニット50から台端末貸出要求完了確認信号の受信を保存した場合に、基本単位分だけ貸出メモリ領域の貸出残数を加算する。
次に、ステップS313の払出許可がセットされた状態(ステップS315の払出不可がセットされていない状態)であることを条件として、払出モータ関連処理を実行する(ステップS247)。払出モータ関連処理では、図24に示すように、皿満タンエラーが発生しているか否か(ステップS331)、払出ユニット断線エラーが発生しているか否か(ステップS332)、球詰まりエラー又は球切れエラーが発生しているか否か(ステップS334)、及び扉開放エラーが発生しているか否か(ステップS335)を判定し、何れのエラー(賞球の払出動作を停止すべき払出停止対象エラー)も発生していない賞球払出可能状態であると判定した場合(ステップS331〜S334:No)、払出動作を開始し(ステップS335)、何れかのエラーが発生している賞球払出停止状態であると判定した場合(ステップS331〜S334の何れか:Yes)、払出動作を停止する(ステップS336)。なお、払出停止対象エラーは、上記エラーに限定されず、他のエラーであってもよい。
払出制御CPU80は、皿満タンSW85から球満タン検出信号を受信した場合に皿満タンエラーであると判定し、払出モータ83や払出計数スイッチ84の断線を検出した場合に払出ユニット断線エラーであると判定し、払出計数スイッチ84からの払出計数信号を所定時間以上継続して受信した場合に球詰まりエラーであると判定し、払出モータ83を駆動中に払出計数スイッチ84からの払出計数信号を所定時間以上継続して受信しなかった場合に球切れエラーであると判定し、主制御装置70から扉開放を示すエラー信号を受信した場合に扉開放エラーであると判定する。
払出制御CPU80は、払出動作を開始すると、ポート入力処理(ステップS265)で払出計数SW84からの払出計数信号のオンエッジを保存した場合に、賞球残数及び貸出残数の一方を貸出残数を優先して1つ減算する。また、賞球残数及び貸出残数の一方がゼロではない場合には、遊技球1個分の払出動作を払出モータ83に実行させるための払出駆動制御コマンドを生成し、ポート出力要求バッファに格納する。なお、1回の賞球払出を所定単位個数(例えば25個)を上限とした個数分まで連続で行う処理(賞球連続払出処理)が設定されている場合には、連続賞球払出処理の途中に貸出残数がゼロから増加した場合であっても、実行中の連続賞球払出処理を中断せずに継続する。そして、1回の連続賞球払出処理が完了した後は、賞球残数が未だゼロに達していなくても、貸出残数がゼロではない場合には、賞球残数よりも貸出残数の払い出しを優先して実行する。
また、払出制御CPU80は、払出動作の停止に応じて、払出モータ83を弱励磁状態で待機させる。弱励磁とは、払出モータ83の駆動軸の停止を維持するために必要十分な弱い励磁である。
次に、発射制御処理(ステップS248)を実行する。発射制御処理は、上述のように発射制御CPUによって実行される。発射制御処理では、発射ボリューム88から受信した発射勢指示信号に基づいて発射モータ86の駆動を制御する。これにより、遊技者の操作量に応じて遊技球の打ち出し強さが調整される。但し、タッチセンサ89からの検出信号がオフ(ローレベル)の場合、発射停止スイッチ90から発射停止信号が入力された場合、及びパチンコ機PにCRユニット50が接続されていない場合(発射許可信号を払出制御CPU80から受信していない場合)には、発射モータ86の駆動を停止する。
次に、エラー関連処理を実行する(ステップS249)。エラー関連処理では、皿満タンエラー等のエラーを検知した場合に、エラーの内容を示すエラーコマンドをポート出力要求バッファに格納する。
次に、外部情報出力管理処理を実行する(ステップS250)。外部情報出力管理処理では、図25に示すように、払出賞球数(賞球情報カウンタのカウント値)が所定単位数(10個)に達したか否かを判定し(ステップS341)、払出賞球数が所定単位数に達した場合(ステップS341:Yes)、賞球情報信号をポート出力要求バッファに設定し(ステップS342)、賞球情報カウンタのカウント値を所定単位数(10個)減算して(ステップS343)、ステップS344へ移行する。また、払出賞球数が未だ所定単位数に達していない場合(ステップS341:No)、ステップS342及びS343の処理を実行せずに、ステップS344へ移行する。
ステップS344では、メイン賞球数(メイン賞球カウンタのカウント値)が所定単位数(10個)に達したか否かを判定し(ステップS344)、メイン賞球数が所定単位数に達した場合(ステップS344:Yes)、メイン賞球信号をポート出力要求バッファに格納し(ステップS345)、メイン賞球カウンタのカウント値を所定単位数(10個)減算して(ステップS343)、外部情報出力管理処理を終了する(ステップS347)。また、メイン賞球数が未だ所定単位数に達していない場合(ステップS344:No)、ステップS345及びS346の処理を実行せずに、外部情報出力管理処理を終了する(ステップS347)。
このように、外部情報出力管理処理では、外部情報端子基板65を介して遊技場のホールコンピュータ68へ出力する外部情報信号(例えばメイン賞球情報、賞球情報等)をポート出力要求バッファに格納する。
払出制御CPU80は、ホールコンピュータ68にメイン賞球情報や賞球情報の外部情報信号を確実に送信するため、所定送信時間(本実施形態では60ms)が経過するまでの間、ポート出力要求バッファに賞球情報信号及びメイン賞球信号を連続的に繰り返して格納する。具体的には、ステップS342及びS345においてポート出力要求バッファに賞球情報信号及びメイン賞球信号を最初に格納する際に、所定送信時間からのカウントダウンを内部タイマによって開始し、内部タイマの値がゼロになるまでの間は、タイマ割り込み処理が実行される度に賞球情報信号及びメイン賞球信号を連続的に繰り返して格納し、内部タイマの値がゼロになることによって送信(ポート出力要求バッファへの連続格納)を完了する。本実施形態では、所定送信時間が60msであり、タイマ割り込み処理を1.4ms毎に実行するため、賞球情報信号及びメイン賞球信号は設計上最大で42回連続して格納されることになる。これにより、後述するポート出力処理(ステップS252)において、所定送信時間の間は賞球情報信号及びメイン賞球信号の送信状態(ビットオン状態)が継続して維持され、ホールコンピュータ68にメイン賞球情報や賞球情報の外部情報信号が確実に送信される。
また、払出制御CPU80は、電源断発生時(電源断予告信号の受信時)に、内部タイマによるカウントダウンを停止し、そのときの値(残り時間)をそのままRAM82に保持する。
次に、試験信号管理処理を実行する(ステップS251)。試験信号管理処理では、払出制御CPU80が自己の内部状態を表す各種の試験信号を生成し、これらをポート出力要求バッファに格納する。この試験信号により、例えば払出制御装置71の外部で払出制御CPU80の内部状態を試験することができる。
次に、ポート出力処理を実行する(ステップS252)。ポート出力処理では、上述の各処理においてポート出力要求バッファに格納された各信号を、対応する送信対象に対してポート出力する。ポート出力処理によって、払出モータ83への払出駆動制御コマンドの送信やホールコンピュータ68への賞球情報の送信の他、状態LEDの発光制御が実行される。
最後に、ステップS241において退避させた全てのレジスタの値を復帰させ(ステップS253)、タイマ割り込み処理を終了する。タイマ割り込み処理の終了により、メインループ(スタックポインタで指示されるプログラムアドレス)に復帰する。
(電源断時退避処理)
図26は、払出制御CPU80が実行する電源断時退避処理を示すフローチャートである。払出制御CPU80は、メインルーチンの割り込み許可中に電源断予告信号を受信すると、電源断時退避処理を割り込ませる。また、タイマ割り込み処理の実行中に電源断予告信号を受信すると、タイマ割り込み処理が終了してメインループに復帰した後に電源断時退避処理を割り込ませる。
図26に示すように、電源断時退避処理では、AFレジスタの値をRAM82の退避領域に退避させ(ステップS271)、電源断予告信号を受信しているか否かを判定する(ステップS272)。具体的には、電源断予告信号の入力ポートをビットチェックし、電源断予告信号が入力しているか否かを判定する。このように電源断時退避処理の開始直後に電源断予告信号を再度チェックすることによって、ノイズ等による誤検知に起因したステップS276以降の処理の実行を回避することができる。
電源断予告信号を受信していない場合(ステップS273:No)には、ステップS271で退避させたAFレジスタの値を復帰させ(ステップS274)、割り込みを許可した後(ステップS275)、電源断時退避処理を終了する。電源断時退避処理の終了により、メインループ(スタックポインタで指示されるプログラムアドレス)に復帰する。
一方、電源断予告信号を受信している場合(ステップS273:Yes)には、出力ポート(出力ポート要求バッファ)の全てにクリア値を出力する(ステップS276)。これにより、電源断時退避処理以前に出力ポート要求バッファに格納された信号は全て削除され、送信されない。
次に、コマンド受信待ち時間として4.5ミリ秒分のループカウンタをセットし(ステップS277)、ループカウンタの値をデクリメントしながらその値がゼロに達したか否か(4.5ミリ秒が経過したか否か)を判定し(ステップS278)、4.5ミリ秒が経過すると(ステップS278:Yes)、データ格納処理を実行する(ステップS279)。データ格納処理では、払出制御CPU80に入力したデータ(入力ポートの状態)を格納する。データ格納処理は、シリアル通信受信割り込み処理におけるステップS232〜S236(図21参照)と同様の処理であり、SCUのステータスレジスタの内容をロードし、受信データがあるか否かをチェックし、SCUデータレジスタから受信値を取得し、受信データを確認したか否かを判定し、受信データを確認した場合にシリアル通信用バッファに受信データを格納する。データ格納処理までの待機時間は、4.5ミリ秒に限定されず、主制御装置71が実行するタイマ割り込み処理の周期(4ミリ秒)を超えていればよく、タイマ割り込み処理の周期(4ミリ秒)にタイマ割り込み処理に要する時間を加えた時間以上が好適である。データ格納処理までの待機時間を上述のように設定することにより、この待機時間内に主制御CPU73がタイマ割り込み処理を必ず1回実行することになる。従って、待機時間内に、主制御CPU73が払出制御管理処理(図12のステップS74)及びポート出力処理(図12のステップS79)が1回以上実行され、データ格納処理(ステップS279)において、電源断時退避処理の開始後に主制御CPU73から送信された最新の賞球指示コマンドを受信して格納することができる。
次に、RAM82のワーク領域(使用禁止領域及びスタック領域を含むユーザワーク領域)のうち、バックアップ判定記憶領域及びサムチェックバッファを除く領域について、チェックサム値を算出し、算出したチェックサム値をサムチェックバッファに保存する(ステップS280)。
次に、バックアップ判定記憶領域にバックアップ有効判定値(バックアップ有効判定フラグ)を保存し(ステップS281)、RAM82のワーク領域に対するアクセスを禁止して(ステップS282)、電源断時待機処理を実行する。
電源断時待機処理では、電源断時にある程度の待機時間(例えば十ms程度)を確保し、その間に入力ポート0の電源断予告信号をチェックする。本実施形態では、リセット信号待ちとして10ms分のループカウンタをセットし(ステップS283)、ループカウンタの値をデクリメントしながら電源断予告信号の入力ポートをビットチェックする(ステップS284)。10ms間経過する前(ループカウンタが0になる前)に電源断予告信号が入力すると(ステップS285:Yes)、電源断時待機処理の最初(ステップS283)に戻る。電源断予告信号が入力せずに10ms間が経過するまでこの処理を継続し(ステップS285:Yes→ステップS283、又はステップS285:No→ステップS286:No→ステップS284)、電源断予告信号が入力せずに10ms間が経過すると(ステップS285:No→ステップS286:Yes)、電源断時退避処理を終了し、CPU初期化処理(図16のステップS201)へ移行する。電源断時待機処理によって、電源断予告信号が所定時間(10ms)以上入力しない安定した状態となった後にCPU初期化処理へ移行させることができ、処理の安定化及びシステム保護を図ることができる。
このように払出御装置71のタイマ割り込み処理も、主制御装置70のタイマ割り込み処理と同様に、電源断時退避処理に優先してメインループに割り込むので、タイマ割り込み処理の実行中に電源断が発生した場合であっても、タイマ割り込み処理は電源断時退避処理によって中断せず、電源断時退避処理はタイマ割り込み処理の終了を待って開始される。従って、電源断時退避処理において退避させるデータ量を最小限に抑えるとともに、復帰プログラムの複雑化を回避することができる。
すなわち、電源断時退避処理において、RAM82のワーク領域の内容をバックアップ情報としてRAM82の退避領域に退避させるバックアップ情報退避処理や、退避させたバックアップ情報をRAM82のワーク領域に復帰させて前回の電源断発生時に実行中であった遊技状態に復帰させる状態復帰処理を実行しないので、RAM82の退避領域の記憶量を低減させることができる。また、バックアップ情報退避処理や状態復帰処理を実行しないので、復帰プログラムの簡素化を図ることができる。
また、ポーリングによって電源断予告信号を監視していないので、払出制御CPU80の処理負担を軽減することができる。
さらに、タイマ割り込み処理において、払出検出処理(ステップS265)の実行前に電源断予告信号を受信した場合(ステップS263:Yes)には払出検出処理を実行しないので、電源断によるノイズ等に起因して払出計数信号が誤って払出制御装置71に入力しても、誤入力に基づいて遊技球の払出完了が誤検知されてしまうことがない。従って、電源断に起因して払出残数が不適正に減算されてしまうことがなく、賞球や貸し球の不当な損失の発生を未然に防止することができる。
(電源復帰時の賞球払出制御処理)
払出制御装置71(払出制御CPU80)は、電源断予告信号の受信に応じて電源断退避処理を実行し、電源復帰時に初期化処理からメインループへ移行(メインループを再開)する。払出制御CPU80は、メインループの再開後に主制御装置70から払出起動確認指定信号を受信すると、シリアル通信受信割り込み処理において、受信した賞球指示コマンドをシリアル通信用バッファに格納し(ステップS236)、次のメインループのコマンド送受信関連処理(ステップS223)において、フェーズ4をセットして払出許可をセットし(ステップS322,S313)、次のタイマ割り込み処理の払出モータ関連処理(ステップS247)において、記憶されている賞球残数に応じた払出処理を実行する。すなわち、電源復帰時の払出制御CPU80は、主制御装置70からの払出起動確認指定信号の受信を条件として、記憶されている賞球残数に応じて払出モータ83に賞球の払出動作を指示する処理(賞球払出制御処理)を開始する。
(通常時のメイン賞球情報出力処理)
電源断が発生しない通常時のメイン賞球情報出力処理(賞球指示コマンドの受信からメイン賞球信号の送信までの処理)では、払出制御装置71(払出制御CPU80)は、主制御装置70から賞球指示コマンド(払出指示信号)を受信すると、シリアル通信受信割り込み処理において、受信した賞球指示コマンドをシリアル通信用バッファに格納し(ステップS236)、メインループの受信コマンド解析処理(ステップS222)において、受信(格納)した賞球指示コマンドが示す賞球数をメイン賞球数記憶領域のメイン賞球数に加算し(ステップS305)、タイマ割り込み処理の外部情報出力管理処理(ステップS250)において、メイン賞球数が所定単位数(10個)に達している場合にメイン賞球信号をポート出力要求バッファに格納し(ステップS345)、ポート出力処理(ステップS252)において、格納したメイン賞球信号を外部情報端子基板65に対して送信(ポート出力)する。ポート出力要求バッファへのメイン賞球信号の格納(ステップS345)では、最初の格納時に所定送信時間からのカウントダウンを内部タイマによって開始し、内部タイマの値がゼロになるまでの間は、タイマ割り込み処理が実行される度に連続的に繰り返して格納する。
このように、通常時において、主制御装置70から払出指示信号を受信した払出制御装置71では、受信した払出指示信号に応じた賞球払出制御処理を実行したか否かに拘わらず、受信した払出指示信号に応じたメイン賞球情報出力処理が実行される。
(主制御装置70及び払出制御装置71が電源断した場合の電源復帰時におけるメイン賞球情報出力処理)
上述のように、払出制御装置71(払出制御CPU80)は、電源復帰時に初期化処理からメインループへ移行(メインループを再開)する。
また、電源断発生時において、RAM82は、記憶しているメイン賞球関連情報を電源復帰後までそのまま保持する。メイン賞球関連情報とは、メイン賞球情報出力処理に関連してRAM82が記憶する情報であり、シリアル通信用バッファに格納される賞球指示コマンドや、メイン賞球数記憶領域に記憶されるメイン賞球数や、ポート出力要求バッファに格納されるメイン賞球信号や、外部情報出力管理処理(ステップS250)のメイン賞球信号出力処理(ステップS345)で所定送信時間の計時に用いられる内部タイマのカウント途中の値を含む。
電源復帰時のシリアル通信用バッファに電源断発生時の賞球指示コマンドが格納されている場合、再開した最初のメインループの受信コマンド解析処理(ステップS222)において、電源断発生時の賞球指示コマンドが示す賞球数をメイン賞球数記憶領域のメイン賞球数に加算し(ステップS305)、次のタイマ割り込み処理の外部情報出力管理処理(ステップS250)において、メイン賞球数が所定単位数(10個)に達している場合にメイン賞球信号をポート出力要求バッファに格納し(ステップS345)、ポート出力処理(ステップS252)において、格納したメイン賞球信号を外部情報端子基板65に対して送信(ポート出力)する。
シリアル通信用バッファに電源断発生時の賞球指示コマンドが格納されている場合とは、例えば賞球指示コマンドの受信後であって、受信した賞球指示コマンドに対する受信コマンド解析処理(ステップS222)の開始前(割り込み許可時)に電源断予告信号を受信した場合である。
また、電源復帰時のメイン賞球数記憶領域に電源断発生時のメイン賞球数が記憶されている場合、再開したメインルーチンに最初に割り込んだタイマ割り込み処理の外部情報出力管理処理(ステップS250)において、電源断発生時のメイン賞球数が所定単位数に達しているか否かを判定し(ステップS344)、メイン賞球数が所定単位数に達している場合(ステップS344:Yes)、メイン賞球信号をポート出力要求バッファに格納し(ステップS345)、ポート出力処理(ステップS252)において、格納したメイン賞球信号を外部情報端子基板65に対して送信(ポート出力)する。
電源断発生時のメイン賞球数が所定単位数に達している場合とは、例えば受信コマンド解析処理(ステップS222)の実行中又は実行完了後であって、次のタイマ割り込み処理の開始前に電源断予告信号を受信した場合であり、且つ当該受信コマンド解析処理後のメイン賞球数が所定単位数以上の場合である。なお、受信コマンド解析処理(ステップS222)は割り込み禁止(ステップS221)の状態で実行されるため、受信コマンド解析処理の実行中に電源断予告信号を受信した場合、加算後のメイン賞球数が記憶されることになる。
また、電源復帰後のポート出力要求バッファに電源断発生時のメイン賞球信号が格納され、RAM82に電源断発生時の内部タイマの値が記憶されている場合、再開したメインルーチンに最初に割り込んだタイマ割り込み処理のポート出力処理(ステップS252)において、内部タイマのカウントダウンを電源断発生時の値から再開し、内部タイマの値がゼロになるまでの間は、タイマ割り込み処理が実行される度に賞球情報信号及びメイン賞球信号を連続的に繰り返して格納して、メイン賞球信号の送信状態(ビットオン状態)を継続して維持する。例えば、所定送信時間60msのうち10msが経過した時点で電源断が発生した場合には、内部タイマの値(残り時間)は50msであるため、電源復帰時において50msの間はメイン賞球信号の送信状態を継続して維持する。なお、再開後の内部カウンタの値を所定値(例えば所定送信時間)に一律に設定してもよく、また、電源断発生時の内部タイマの値が所定の閾値(例えば20ms)以下である場合にのみ電源復帰時に内部カウンタのカウントダウンを再開してもよい。さらに、電源復帰時に内部タイマのカウントダウンを再開する上記処理を省略してもよい。
電源復帰後のポート出力要求バッファに電源断発生時のメイン賞球信号が格納され、RAM82に内部タイマの値が記憶されている場合とは、例えばタイマ割り込み処理の実行中であって内部タイマの値がゼロとなる前に電源断予告信号を受信した場合である。
このように、払出制御CPU80は、電源復帰時において、賞球の払出動作については、主制御装置70からの払出起動確認指定信号の受信を条件として処理を開始するのに対し、メイン賞球情報出力処理については、払出起動確認指定信号の受信を条件とせずに開始する。すなわち、払出起動確認指定信号を受信したか否かに拘わらず、上記通常時と同様にメイン賞球情報出力処理を実行する。
従って、電源断の発生時にメイン賞球情報出力処理が未完了であり、電源復帰時に何らかの不都合によって払出起動確認指定信号が払出制御装置71側で正常に受信されない場合であっても、未完了のメイン賞球情報出力処理が電源復帰時に確実に再開され、未完了のメイン賞球情報出力処理に係るメイン賞球信号を、電源復帰時の払出制御装置71によって確実に出力させることができ、ホールコンピュータ68での賞球数量の管理を適正に行うことができる。
(主制御装置70が電源断せずに払出制御装置71が電源断した場合の電源復帰時におけるメイン賞球情報出力処理)
主制御装置70が電源断せずに払出制御装置71が電源断すると、電源復帰時の主制御装置70は、払出制御装置71に対して払出起動確認指定信号を送信せずに賞球指示コマンドを送信する場合がある。電源復帰時に賞球指示コマンドを受信した払出制御CPU80は、上述のように払出起動確認指定信号を受信したか否かに拘わらず、上記通常時と同様にメイン賞球情報出力処理を実行する。すなわち、払出制御CPU80は、電源復帰時に賞球指示コマンドを受信すると、払出起動確認指定信号の受信を条件とせずに、受信した賞球指示コマンドが示す賞球数をメイン賞球数記憶領域のメイン賞球数に加算し(ステップS305)、メイン賞球数が所定単位数(10個)に達している場合にメイン賞球信号をポート出力要求バッファに格納し(ステップS345)、格納したメイン賞球信号を外部情報端子基板65に対して送信(ポート出力)する。
従って、主制御装置70が電源断せずに払出制御装置71が電源断し、電源断復帰時の払出制御装置71が払出起動確認指定信号を受信せずに賞球指示コマンドを受信した場合であっても、払出制御CPU80は、受信した賞球指示コマンドに対するメイン賞球情報出力処理を実行し、メイン賞球信号を確実に出力するので、ホールコンピュータ68での賞球数量の管理を適正に行うことができる。
(払出動作停止中のメイン賞球情報出力処理)
払出制御CPU80は、皿満タンエラー(ステップS331)、払出ユニット断線エラー(ステップS332)、球詰まりエラー又は球切れエラー(ステップS334)、又は扉開放エラー(ステップS335)のうち何れかのエラー(払出停止対象エラー)が発生している賞球払出停止状態であると判定した場合(ステップS331〜S334の何れか:Yes)、払出動作を停止する(ステップS336)。
一方、このような払出動作の停止中であっても、払出制御CPU80は、上記通常時と同様にメイン賞球情報出力処理を実行する。すなわち、払出制御CPU80は、メイン賞球信号を受信すると、受信した賞球指示コマンドが示す賞球数をメイン賞球数記憶領域のメイン賞球数に加算し(ステップS305)、メイン賞球数が所定単位数(10個)に達している場合にメイン賞球信号をポート出力要求バッファに格納し(ステップS345)、格納したメイン賞球信号を外部情報端子基板65に対して送信(ポート出力)する。
従って、払出停止中であっても、滞ることなく早いタイミングでメイン賞球信号を送信することができる。
なお、上記実施形態では、2種類の特別図柄を変動する例を説明したが、特別図柄は1種類でもよく、3種類以上であってもよい。また、特別図柄又は普通図柄の一方のみによる当否抽選を実行して大当たり遊技状態を生起してもよい。
また、上記実施形態では、電源断発生時にメイン賞球関連情報を退避させない払出制御装置71について説明したが、電源断発生時にメイン賞球関連情報をバックアップデータとして退避させ、電源復帰時に復元する払出制御装置であってもよい。
以上、本発明者によってなされた発明を適用した実施形態について説明したが、この実施形態による本発明の開示の一部をなす論述及び図面により本発明は限定されることはない。すなわち、この実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれることは勿論であることを付け加えておく。