以下、本発明の一実施形態を図面を参照して説明する。
まず、遊技機の一例であるパチンコ遊技機の全体の構成について説明する。図1はパチンコ遊技機1を正面からみた正面図である。なお、ここでは、遊技機の一例としてパチンコ遊技機を示すが、本発明はパチンコ遊技機に限られず、例えばコイン遊技機やスロット機等であってもよい。
図1に示すように、パチンコ遊技機1は、額縁状に形成されたガラス扉枠2を有する。ガラス扉枠2の下部表面には打球供給皿3がある。打球供給皿3の下部には、打球供給皿3からあふれた遊技球を貯留する余剰玉受皿4と打球を発射する打球操作ハンドル(操作ノブ)5が設けられている。ガラス扉枠2の後方には、遊技盤6が着脱可能に取り付けられている。また、遊技盤6の前面には遊技領域7が設けられている。
遊技領域7の中央付近には、複数種類の図柄を可変表示するための可変表示部(特別図柄表示装置)9と7セグメントLEDによる普通図柄表示器(普通図柄表示装置)10とを含む可変表示装置8が設けられている。可変表示部9には、例えば「左」、「中」、「右」の3つの図柄表示エリアがある。可変表示装置8の側部には、打球を導く通過ゲート11が設けられている。通過ゲート11を通過した打球は、玉出口13を経て始動入賞口14の方に導かれる。通過ゲート11と玉出口13との間の通路には、通過ゲート11を通過した打球を検出するゲートスイッチ12がある。また、始動入賞口14に入った入賞球は、遊技盤6の背面に導かれ、始動口スイッチ17によって検出される。また、始動入賞口14の下部には開閉動作を行う可変入賞球装置15が設けられている。可変入賞球装置15は、ソレノイド16によって開状態とされる。
可変入賞球装置15の下部には、特定遊技状態(大当り状態)においてソレノイド21によって開状態とされる開閉板20が設けられている。この実施の形態では、開閉板20が大入賞口を開閉する手段となる。開閉板20から遊技盤6の背面に導かれた入賞球のうち一方(Vゾーン)に入った入賞球はVカウントスイッチ22で検出される。また、開閉板20からの入賞球はカウントスイッチ23で検出される。可変表示装置8の下部には、始動入賞口14に入った入賞球数を表示する4個の表示部を有する始動入賞記憶表示器18が設けられている。この例では、4個を上限として、始動入賞がある毎に、始動入賞記憶表示器18は点灯している表示部を1つずつ増やす。そして、可変表示部9の可変表示が開始される毎に、点灯している表示部を1つ減らす。
遊技盤6には、複数の入賞口19,24が設けられ、遊技球のそれぞれの入賞口19,24への入賞は、対応して設けられている入賞口スイッチ19a,19b,24a,24bによって検出される。遊技領域7の左右周辺には、遊技中に点滅表示される装飾ランプ25が設けられ、下部には、入賞しなかった打球を吸収するアウト口26がある。また、遊技領域7の外側の左右上部には、効果音を発する2つのスピーカ27が設けられている。遊技領域7の外周には、遊技効果LED28aおよび遊技効果ランプ28b,28cが設けられている。
そして、この例では、一方のスピーカ27の近傍に、景品球払出時に点灯する賞球ランプ51が設けられ、他方のスピーカ27の近傍に、補給球が切れたときに点灯する球切れランプ52が設けられている。さらに、図1には、パチンコ遊技機1に隣接して設置され、プリペイドカードが挿入されることによって球貸しを可能にするカードユニット50も示されている。
カードユニット50には、使用可能状態であるか否かを示す使用可表示ランプ151、カード内に記録された残額情報に端数(100円未満の数)が存在する場合にその端数を打球供給皿3の近傍に設けられる度数表示LEDに表示させるための端数表示スイッチ152、カードユニット50がいずれの側のパチンコ遊技機1に対応しているのかを示す連結台方向表示器153、カードユニット50内にカードが投入されていることを示すカード投入表示ランプ154、記録媒体としてのカードが挿入されるカード挿入口155、およびカード挿入口155の裏面に設けられているカードリーダライタの機構を点検する場合にカードユニット50を解放するためのカードユニット錠156が設けられている。
打球発射装置から発射された打球は、打球レールを通って遊技領域7に入り、その後、遊技領域7を下りてくる。打球が通過ゲート11を通ってゲートスイッチ12で検出されると、普通図柄表示器10の表示数字が連続的に変化する状態になる。また、打球が始動入賞口14に入り始動口スイッチ17で検出されると、図柄の変動を開始できる状態であれば、可変表示部9内の図柄が回転を始める。図柄の変動を開始できる状態でなければ、始動入賞記憶を1増やす。
可変表示部9内の画像の回転は、一定時間が経過したときに停止する。停止時の画像の組み合わせが大当り図柄の組み合わせであると、大当り遊技状態に移行する。すなわち、開閉板20が、一定時間経過するまで、または、所定個数(例えば10個)の打球が入賞するまで開放する。そして、開閉板20の開放中に打球が特定入賞領域に入賞しVカウントスイッチ22で検出されると、継続権が発生し開閉板20の開放が再度行われる。継続権の発生は、所定回数(例えば15ラウンド)許容される。
停止時の可変表示部9内の画像の組み合わせが確率変動を伴う大当り図柄の組み合わせである場合には、次に大当りとなる確率が高くなる。すなわち、高確率状態という遊技者にとってさらに有利な状態となる。また、普通図柄表示器10における停止図柄が所定の図柄(当り図柄=小当り図柄)である場合に、可変入賞球装置15が所定時間だけ開状態になる。さらに、高確率状態では、普通図柄表示器10における停止図柄が当り図柄になる確率が高められるとともに、可変入賞球装置15の開放時間と開放回数が高められる。
次に、パチンコ遊技機1の裏面に配置されている各基板について説明する。
図2に示すように、パチンコ遊技機1の裏面では、枠体2A内の機構板の上部に玉貯留タンク38が設けられ、パチンコ遊技機1が遊技機設置島に設置された状態でその上方から遊技球が球貯留タンク38に供給される。球貯留タンク38内の遊技球は、誘導樋39を通って賞球ケース40Aで覆われる球払出装置に至る。
遊技機裏面側では、可変表示部9を制御する図柄制御基板を含む可変表示制御ユニット29、遊技制御用マイクロコンピュータ等が搭載された遊技制御基板(主基板)31が設置されている。また、球払出制御を行う払出制御用マイクロコンピュータ等が搭載された払出制御基板37、およびモータの回転力を利用して打球を遊技領域7に発射する打球発射装置が設置されている。さらに、装飾ランプ25、遊技効果LED28a、遊技効果ランプ28b,28c、賞球ランプ51および球切れランプ52に信号を送るためのランプ制御基板35、スピーカ27からの音声発生を制御するための音制御基板70および打球発射装置を制御するための発射制御基板91も設けられている。
さらに、DC30V、DC21V、DC12VおよびDC5Vを作成する電源回路が搭載された電源基板910が設けられ、上方には、各種情報を遊技機外部に出力するための各端子を備えたターミナル基板160が設置されている。ターミナル基板160には、少なくとも、球切れ検出スイッチの出力を導入して外部出力するための球切れ用端子、賞球個数信号を外部出力するための賞球用端子および所定個数の球貸し毎に発生する球貸し信号を外部出力するための球貸し用端子が設けられている。また、中央付近には、主基板31からの各種情報を遊技機外部に出力するための各端子を備えた情報端子盤34が設置されている。
なお、図2には、ランプ制御基板35および音制御基板70からの信号を、枠側に設けられている遊技効果LED28a、遊技効果ランプ28b,28c、賞球ランプ51および球切れランプ52に供給するための電飾中継基板A77が示されているが、信号中継の必要に応じて他の中継基板も設けられる。
図3はパチンコ遊技機1の機構板を背面からみた背面図である。球貯留タンク38に貯留された玉は誘導樋39を通り、図3に示されるように、球切れ検出器(球切れスイッチ)187a,187bを通過して球供給樋186a,186bを経て球払出装置97に至る。球切れスイッチ187a,187bは遊技球通路内の遊技球の有無を検出するスイッチであるが、球タンク38内の補給球の不足を検出する球切れ検出スイッチ167も設けられている。以下、球切れスイッチ187a,187bを、球切れスイッチ187と表現することがある。
球払出装置97から払い出された遊技球は、連絡口45を通ってパチンコ遊技機1の前面に設けられている打球供給皿3に供給される。連絡口45の側方には、パチンコ遊技機1の前面に設けられている余剰玉受皿4に連通する余剰玉通路46が形成されている。
入賞にもとづく景品球が多数払い出されて打球供給皿3が満杯になり、ついには遊技球が連絡口45に到達した後さらに遊技球が払い出されると遊技球は、余剰玉通路46を経て余剰玉受皿4に導かれる。さらに遊技球が払い出されると、感知レバー47が満タンスイッチ48を押圧して満タンスイッチ48がオンする。その状態では、球払出装置97内のステッピングモータの回転が停止して球払出装置97の動作が停止するとともに打球発射装置34の駆動も停止する。
図4は、主基板31における回路構成の一例を示すブロック図である。なお、図4には、払出制御基板37、ランプ制御基板35、音制御基板70、発射制御基板91および図柄制御基板80も示されている。なお、以下、払出制御基板37、ランプ制御基板35、音制御基板70および図柄制御基板80を電気部品制御基板ということがある。また、電気部品制御基板に搭載されているマイクロコンピュータを含む制御手段を電気部品制御手段ということがある。電気部品制御手段によって制御される電気部品のうち、遊技演出に関わるものが演出部品である。そして、ランプ制御基板35、音制御基板70および図柄制御基板80は演出部品制御基板の例でもある。また、ランプ制御基板35、音制御基板70および図柄制御基板80に搭載されている電気部品制御手段(ランプ制御手段、音制御手段および表示制御手段)は演出部品制御手段の例でもある。
主基板31には、プログラムに従ってパチンコ遊技機1を制御する基本回路53と、ゲートスイッチ12、始動口スイッチ17、Vカウントスイッチ22、カウントスイッチ23、入賞口スイッチ19a,19b,24a,24b、満タンスイッチ48、球切れスイッチ187および賞球カウントスイッチ301Aからの信号を基本回路53に与えるスイッチ回路58と、可変入賞球装置15を開閉するソレノイド16、開閉板20を開閉するソレノイド21および大入賞口内の経路を切り換えるための切換ソレノイド21Aを基本回路53からの指令に従って駆動するソレノイド回路59とが搭載されている。
なお、図4には示されていないが、カウントスイッチ短絡信号もスイッチ回路58を介して基本回路53に伝達される。
また、基本回路53から与えられるアドレス信号をデコードしてI/Oポート部57のうちのいずれかのI/Oポートを選択するための信号を出力するアドレスデコード回路67と、基本回路53から与えられるデータに従って、大当りの発生を示す大当り情報、可変表示部9の画像表示開始に利用された始動入賞球の個数を外部で特定可能とするために可変表示の停止時に出力される有効始動情報、確率変動が生じたことを示す確変情報等の情報出力信号をホールコンピュータ等の外部機器に対して出力する情報出力回路64が搭載されている。
基本回路53は、ゲーム制御用のプログラム等を記憶するROM54、ワークメモリとして使用される記憶手段の一例であるRAM55、プログラムに従って制御動作を行うCPU56およびI/Oポート部57を含む。この実施の形態では、ROM54,RAM55はCPU56に内蔵されている。すなわち、CPU56は、1チップマイクロコンピュータである。なお、1チップマイクロコンピュータは、少なくともRAM55が内蔵されていればよく、ROM54およびI/Oポート部57は外付けであっても内蔵されていてもよい。
さらに、主基板31には、電源投入時に基本回路53をリセットするためのシステムリセット回路65が設けられている。
遊技球を打撃して発射する打球発射装置は発射制御基板91上の回路によって制御される駆動モータ94で駆動される。そして、駆動モータ94の駆動力は、操作ノブ5の操作量に従って調整される。すなわち、発射制御基板91上の回路によって、操作ノブ5の操作量に応じた速度で打球が発射されるように制御される。
なお、この実施の形態では、ランプ制御基板35に搭載されているランプ制御手段が、遊技盤に設けられている始動記憶表示器18、ゲート通過記憶表示器41および装飾ランプ25の表示制御を行うとともに、枠側に設けられている遊技効果ランプ・LED28a,28b,28c、賞球ランプ51および球切れランプ52の表示制御を行う。また、特別図柄を可変表示する可変表示部9および普通図柄を可変表示する普通図柄表示器10の表示制御は、図柄制御基板80に搭載されている表示制御手段によって行われる。
図5は、図柄制御基板80内の回路構成を、可変表示部9の一実現例であるLCD(液晶表示装置)82、普通図柄表示器10、主基板31の出力ポート(ポート0,2)570,572および出力バッファ回路620,62Aとともに示すブロック図である。出力ポート(出力ポート2)572からは8ビットのデータが出力され、出力ポート570からは1ビットのストローブ信号(INT信号)が出力される。
表示制御用CPU101は、制御データROM102に格納されたプログラムに従って動作し、主基板31からノイズフィルタ107および入力バッファ回路105Bを介してINT信号が入力されると、入力バッファ回路105Aを介して表示制御コマンドを受信する。入力バッファ回路105A,105Bとして、例えば汎用ICである74HC540,74HC14を使用することができる。なお、表示制御用CPU101がI/Oポートを内蔵していない場合には、入力バッファ回路105A,105Bと表示制御用CPU101との間に、I/Oポートが設けられる。
そして、表示制御用CPU101は、受信した表示制御コマンドに従って、LCD82に表示される画面の表示制御を行う。具体的には、表示制御コマンドに応じた指令をVDP103に与える。VDP103は、キャラクタROM86から必要なデータを読み出す。VDP103は、入力したデータに従ってLCD82に表示するための画像データを生成し、R,G,B信号および同期信号をLCD82に出力する。
なお、図5には、VDP103をリセットするためのリセット回路83、VDP103に動作クロックを与えるための発振回路85、および使用頻度の高い画像データを格納するキャラクタROM86も示されている。キャラクタROM86に格納される使用頻度の高い画像データとは、例えば、LCD82に表示される人物、動物、または、文字、図形もしくは記号等からなる画像などである。
入力バッファ回路105A,105Bは、主基板31から図柄制御基板80へ向かう方向にのみ信号を通過させることができる。従って、図柄制御基板80側から主基板31側に信号が伝わる余地はない。すなわち、入力バッファ回路105A,105Bは、入力ポートともに不可逆性情報入力手段を構成する。図柄制御基板80内の回路に不正改造が加えられても、不正改造によって出力される信号が主基板31側に伝わることはない。
なお、出力ポート570,572の出力をそのまま図柄制御基板80に出力してもよいが、単方向にのみ信号伝達可能な出力バッファ回路620,62Aを設けることによって、主基板31から図柄制御基板80への一方向性の信号伝達をより確実にすることができる。すなわち、出力バッファ回路620,62Aは、出力ポートともに不可逆性情報出力手段を構成する。不可逆性情報出力手段によって、図柄制御基板80への信号伝達線を介する不正信号の入力が確実に防止される。
また、高周波信号を遮断するノイズフィルタ107として、例えば3端子コンデンサやフェライトビーズが使用されるが、ノイズフィルタ107の存在によって、表示制御コマンドに基板間でノイズが乗ったとしても、その影響は除去される。なお、主基板31のバッファ回路620,62Aの出力側にもノイズフィルタを設けてもよい。
図6は、主基板31およびランプ制御基板35における信号送受信部分を示すブロック図である。この実施の形態では、遊技領域7の外側に設けられている遊技効果LED28a、遊技効果ランプ28b,28cと遊技盤に設けられている装飾ランプ25の点灯/消灯と、賞球ランプ51および球切れランプ52の点灯/消灯とを示すランプ制御コマンドが主基板31からランプ制御基板35に出力される。また、始動記憶表示器18およびゲート通過記憶表示器41の点灯個数を示すランプ制御コマンドも主基板31からランプ制御基板35に出力される。
図6に示すように、ランプ制御に関するランプ制御コマンドは、基本回路53におけるI/Oポート部57の出力ポート(出力ポート0,3)570,573から出力される。出力ポート(出力ポート3)573は8ビットのデータを出力し、出力ポート570は1ビットのINT信号を出力する。ランプ制御基板35において、主基板31からの制御コマンドは、入力バッファ回路355A,355Bを介してランプ制御用CPU351に入力する。なお、ランプ制御用CPU351がI/Oポートを内蔵していない場合には、入力バッファ回路355A,355Bとランプ制御用CPU351との間に、I/Oポートが設けられる。
ランプ制御基板35において、ランプ制御用CPU351は、各制御コマンドに応じて定義されている遊技効果LED28a、遊技効果ランプ28b,28c、装飾ランプ25の点灯/消灯パターンに従って、遊技効果LED28a、遊技効果ランプ28b,28c、装飾ランプ25に対して点灯/消灯信号を出力する。点灯/消灯信号は、遊技効果LED28a、遊技効果ランプ28b,28c、装飾ランプ25に出力される。なお、点灯/消灯パターンは、ランプ制御用CPU351の内蔵ROMまたは外付けROMに記憶されている。
主基板31において、CPU56は、RAM55の記憶内容に未払出の賞球残数があるときに賞球ランプ51の点灯を指示する制御コマンドを出力し、前述した遊技盤裏面の払出球通路186a,186bの上流に設置されている球切れスイッチ187a,187b(図3参照)が遊技球を検出しなくなると球切れランプ52の点灯を指示する制御コマンドを出力する。ランプ制御基板35において、各制御コマンドは、入力バッファ回路355A,355Bを介してランプ制御用CPU351に入力する。ランプ制御用CPU351は、それらの制御コマンドに応じて、賞球ランプ51および球切れランプ52を点灯/消灯する。なお、点灯/消灯パターンは、ランプ制御用CPU351の内蔵ROMまたは外付けROMに記憶されている。
さらに、ランプ制御用CPU351は、制御コマンドに応じて始動記憶表示器18およびゲート通過記憶表示器41に対して点灯/消灯信号を出力する。
入力バッファ回路355A,355Bとして、例えば、汎用のCMOS−ICである74HC540,74HC14が用いられる。入力バッファ回路355A,355Bは、主基板31からランプ制御基板35へ向かう方向にのみ信号を通過させることができる。従って、ランプ制御基板35側から主基板31側に信号が伝わる余地はない。たとえ、ランプ制御基板35内の回路に不正改造が加えられても、不正改造によって出力される信号がメイン基板31側に伝わることはない。なお、入力バッファ回路355A,355Bの入力側にノイズフィルタを設けてもよい。
また、主基板31において、出力ポート570,573の外側にバッファ回路620,63Aが設けられている。バッファ回路620,63Aとして、例えば、汎用のCMOS−ICである74HC250,74HC14が用いられる。このような構成によれば、外部から主基板31の内部に入力される信号が阻止されるので、ランプ制御基板70から主基板31に信号が与えられる可能性がある信号ラインをさらに確実になくすことができる。なお、バッファ回路620,63Aの出力側にノイズフィルタを設けてもよい。
図7は、主基板31における音声制御コマンドの信号送信部分および音制御基板70の構成例を示すブロック図である。この実施の形態では、遊技進行に応じて、遊技領域7の外側に設けられているスピーカ27の音声出力を指示するための音声制御コマンドが、主基板31から音制御基板70に出力される。
図7に示すように、音声制御コマンドは、基本回路53におけるI/Oポート部57の出力ポート(出力ポート0,4)570,574から出力される。出力ポート(出力ポート4)574からは8ビットのデータが出力され、出力ポート570からは1ビットのINT信号が出力される。音制御基板70において、主基板31からの各信号は、入力バッファ回路705A,705Bを介して音声制御用CPU701に入力する。なお、音制御用CPU701がI/Oポートを内蔵していない場合には、入力バッファ回路705A,705Bと音制御用CPU701との間に、I/Oポートが設けられる。
そして、例えばディジタルシグナルプロセッサによる音声合成回路702は、音制御用CPU701の指示に応じた音声や効果音を発生し音量切替回路703に出力する。音量切替回路703は、音制御用CPU701の出力レベルを、設定されている音量に応じたレベルにして音量増幅回路704に出力する。音量増幅回路704は、増幅した音声信号をスピーカ27に出力する。
入力バッファ回路705A,705Bとして、例えば、汎用のCMOS−ICである74HC540,74HC14が用いられる。入力バッファ回路705A,705Bは、主基板31から音制御基板70へ向かう方向にのみ信号を通過させることができる。よって、音制御基板70側から主基板31側に信号が伝わる余地はない。従って、音制御基板70内の回路に不正改造が加えられても、不正改造によって出力される信号が主基板31側に伝わることはない。なお、入力バッファ回路705A,705Bの入力側にノイズフィルタを設けてもよい。
また、主基板31において、出力ポート570,574の外側にバッファ回路620,67Aが設けられている。バッファ回路620,67Aとして、例えば、汎用のCMOS−ICである74HC250,74HC14が用いられる。このような構成によれば、外部から主基板31の内部に入力される信号が阻止されるので、音制御基板70から主基板31に信号が与えられる可能性がある信号ラインをさらに確実になくすことができる。なお、バッファ回路620,67Aの出力側にノイズフィルタを設けてもよい。
図8は、払出制御基板37および球払出装置97の構成要素などの払出に関連する構成要素を示すブロック図である。図8に示すように、満タンスイッチ48からの検出信号は、中継基板71を介して主基板31のI/Oポート57に入力される。満タンスイッチ48は、余剰球受皿4の満タンを検出するスイッチである。また、球切れスイッチ187(187a,187b)からの検出信号も、中継基板72および中継基板71を介して主基板31のI/Oポート57に入力される。
主基板31のCPU56は、球切れスイッチ187からの検出信号が球切れ状態を示しているか、または、満タンスイッチ48からの検出信号が満タン状態を示していると、払出禁止を指示する払出制御コマンドを送出する。払出禁止を指示する払出制御コマンドを受信すると、払出制御基板37の払出制御用CPU371は球払出処理を停止する。
さらに、賞球カウントスイッチ301Aからの検出信号も、中継基板72および中継基板71を介して主基板31のI/Oポート57に入力される。賞球カウントスイッチ301Aは、球払出装置97の払出機構部分に設けられ、実際に払い出された賞球払出球を検出する。
入賞があると、払出制御基板37には、主基板31の出力ポート(ポート0,1)570,571から賞球個数を示す払出制御コマンドが入力される。出力ポート(出力ポート1)571は8ビットのデータを出力し、出力ポート570は1ビットのストローブ信号(INT信号)を出力する。賞球個数を示す払出制御コマンドは、入力バッファ回路373Aを介してI/Oポート372aに入力される。INT信号は、入力バッファ回路373Bを介して払出制御用CPU371の割込端子に入力されている。払出制御用CPU371は、I/Oポート372aを介して払出制御コマンドを入力し、払出制御コマンドに応じて球払出装置97を駆動して賞球払出を行う。
なお、この実施の形態では、払出制御用CPU371は、1チップマイクロコンピュータであり、少なくともRAMが内蔵されている。
また、主基板31において、出力ポート570,571の外側にバッファ回路620,68Aが設けられている。バッファ回路620,68Aとして、例えば、汎用のCMOS−ICである74HC250,74HC14が用いられる。このような構成によれば、外部から主基板31の内部に入力される信号が阻止されるので、払出制御基板37から主基板31に信号が与えられる可能性がある信号ラインをさらに確実になくすことができる。なお、バッファ回路620,68Aの出力側にノイズフィルタを設けてもよい。
払出制御用CPU371は、出力ポート372gを介して、貸し球数を示す球貸し個数信号をターミナル基板160に出力し、ブザー駆動信号をブザー基板75に出力する。ブザー基板75にはブザーが搭載されている。さらに、出力ポート372eを介して、エラー表示用LED374にエラー信号を出力する。
さらに、払出制御基板37の入力ポート372bには、中継基板72を介して、賞球カウントスイッチ301Aおよび球貸しカウントスイッチ301Bからの検出信号が入力される。球貸しカウントスイッチ301Bは、球払出装置97の払出機構部分に設けられ、実際に払い出された貸し球を検出する。払出制御基板37からの払出モータ289への駆動信号は、出力ポート372cおよび中継基板72を介して球払出装置97の払出機構部分における払出モータ289に伝えられる。
カードユニット50には、カードユニット制御用マイクロコンピュータが搭載されている。また、カードユニット50には、端数表示スイッチ152、連結台方向表示器153、カード投入表示ランプ154およびカード挿入口155が設けられている(図1参照)。残高表示基板74には、打球供給皿3の近傍に設けられている度数表示LED、球貸しスイッチおよび返却スイッチが接続される。
残高表示基板74からカードユニット50には、遊技者の操作に応じて、球貸しスイッチ信号および返却スイッチ信号が払出制御基板37を介して与えられる。また、カードユニット50から残高表示基板74には、プリペイドカードの残高を示すカード残高表示信号および球貸し可表示信号が払出制御基板37を介して与えられる。カードユニット50と払出制御基板37の間では、接続信号(VL信号)、ユニット操作信号(BRDY信号)、球貸し要求信号(BRQ信号)、球貸し完了信号(EXS信号)およびパチンコ機動作信号(PRDY信号)がI/Oポート372fを介してやりとりされる。
パチンコ遊技機1の電源が投入されると、払出制御基板37の払出制御用CPU371は、カードユニット50にPRDY信号を出力する。また、カードユニット制御用マイクロコンピュータは、VL信号を出力する。払出制御用CPU371は、VL信号の入力状態により接続状態/未接続状態を判定する。カードユニット50においてカードが受け付けられ、球貸しスイッチが操作され球貸しスイッチ信号が入力されると、カードユニット制御用マイクロコンピュータは、払出制御基板37にBRDY信号を出力する。この時点から所定の遅延時間が経過すると、カードユニット制御用マイクロコンピュータは、払出制御基板37にBRQ信号を出力する。
そして、払出制御基板37の払出制御用CPU371は、カードユニット50に対するEXS信号を立ち上げ、カードユニット50からのBRQ信号の立ち下がりを検出すると、払出モータ289を駆動し、所定個の貸し球を遊技者に払い出す。このとき、振分用ソレノイド310は駆動状態とされている。すなわち、球振分部材311を球貸し側に向ける。そして、払出が完了したら、払出制御用CPU371は、カードユニット50に対するEXS信号を立ち下げる。その後、カードユニット50からのBRDY信号がオン状態でなければ、賞球払出制御を実行する。
以上のように、カードユニット50からの信号は全て払出制御基板37に入力される構成になっている。従って、球貸し制御に関して、カードユニット50から主基板31に信号が入力されることはなく、主基板31の基本回路53にカードユニット50の側から不正に信号が入力される余地はない。
なお、この実施の形態では、カードユニット50が遊技機とは別体として遊技機に隣接して設置されている場合を例にするが、カードユニット50は遊技機と一体化されていてもよい。また、コイン投入に応じてその金額に応じた遊技球を遊技機が貸し出すように構成した場合でも本発明を適用できる。
図9は、電源基板910の一構成例を示すブロック図である。電源基板910は、主基板31、図柄制御基板80、音制御基板70、ランプ制御基板35および払出制御基板37等の電気部品制御基板と独立して設置され、遊技機内の各電気部品制御基板および機構部品が使用する電圧を生成する。この例では、AC24V、VSL(DC+30V)、DC+21V、DC+12VおよびDC+5Vを生成する。また、バックアップ電源となるコンデンサ916は、DC+5Vすなわち各基板上のIC等を駆動する電源のラインから充電される。なお、VSLは、整流回路912において、整流素子でAC24Vを整流昇圧することによって生成される。VSLは、ソレノイド駆動電源となる。
トランス911は、交流電源からの交流電圧を24Vに変換する。AC24V電圧は、コネクタ915に出力される。また、整流回路912は、AC24Vから+30Vの直流電圧を生成し、DC−DCコンバータ913およびコネクタ915に出力する。DC−DCコンバータ913は、1つまたは複数のコンバータIC922(図9では1つのみを示す。)を有し、VSLにもとづいて+21V、+12Vおよび+5Vを生成してコネクタ915に出力する。コンバータIC922の入力側には、比較的大容量のコンデンサ923が接続されている。従って、外部からの遊技機に対する電力供給が停止したときに、+30V、+12V、+5V等の直流電圧は、比較的緩やかに低下する。この結果、コンデンサ923は、後述する補助駆動電源の役割を果たす。コネクタ915は例えば中継基板に接続され、中継基板から各電気部品制御基板および機構部品に必要な電圧の電力が供給される。
ただし、電源基板910に各電気部品制御基板に至る各コネクタを設け、電源基板910から、中継基板を介さずにそれぞれの基板に至る各電圧を供給するようにしてもよい。また、図9には1つのコネクタ915が代表して示されているが、コネクタは、各電気部品制御基板対応に設けられている。
DC−DCコンバータ913からの+5Vラインは分岐してバックアップ+5Vラインを形成する。バックアップ+5Vラインとグラウンドレベルとの間には大容量のコンデンサ916が接続されている。コンデンサ916は、遊技機に対する電力供給が遮断されたときの電気部品制御基板のバックアップRAM(電源バックアップされているRAMすなわち電力供給停止時にも記憶内容保持状態となりうるバックアップ記憶手段)に対して記憶状態を保持できるように電力を供給するバックアップ電源となる。また、+5Vラインとバックアップ+5Vラインとの間に、逆流防止用のダイオード917が挿入される。この実施の形態では、バックアップ用の+5Vは、主基板31および払出制御基板37に供給される。
なお、バックアップ電源として、+5V電源から充電可能な電池を用いてもよい。電池を用いる場合には、+5V電源から電力供給されない状態が所定時間継続すると容量がなくなるような充電池が用いられる。
また、電源基板910には、電源監視用IC902が搭載されている。電源監視用IC902は、VSL電圧を導入し、VSL電圧を監視することによって電源断の発生を検出する。具体的には、VSL電圧が所定値(この例では+22V)以下になったら、電源断が生ずるとして電源断信号を出力する。なお、監視対象の電源電圧は、各電気部品制御基板に搭載されている回路素子の電源電圧(この例では+5V)よりも高い電圧であることが好ましい。この例では、交流から直流に変換された直後の電圧であるVSLが用いられている。電源監視用IC902からの電源断信号は、主基板31や払出制御基板37等に供給される。
電源監視用IC902が電源断を検知するための所定値は、通常時の電圧より低いが、各電気部品制御基板上のCPUが暫くの間動作しうる程度の電圧である。また、電源監視用IC902が、CPU等の回路素子を駆動するための電圧(この例では+5V)よりも高く、また、交流から直流に変換された直後の電圧を監視するように構成されているので、CPUが必要とする電圧に対して監視範囲を広げることができる。従って、より精密な監視を行うことができる。さらに、監視電圧としてVSL(+30V)を用いる場合には、遊技機の各種スイッチに供給される電圧が+12Vであることから、電源瞬断時のスイッチオン誤検出の防止も期待できる。すなわち、+30V電源の電圧を監視すると、+30V作成の以降に作られる+12Vが落ち始める以前の段階でそれの低下を検出できる。
よって、+12V電源の電圧が低下するとスイッチ出力がオン状態を呈するようになるが、+12Vより早く低下する+30V電源電圧を監視して電源断を認識すれば、スイッチ出力がオン状態を呈する前に電源復旧待ちの状態に入ってスイッチ出力を検出しない状態とすることができる。
また、電源監視用IC902は、電気部品制御基板とは別個の電源基板910に搭載されているので、電源監視回路から複数の電気部品制御基板に電源断信号を供給することができる。電源断信号を必要とする電気部品制御基板が幾つあっても電源監視手段は1つ設けられていればよいので、各電気部品制御基板における各電気部品制御手段が後述する復帰制御を行っても、遊技機のコストはさほど上昇しない。
なお、図9に示された構成では、電源監視用IC902の検出出力(電源断信号)は、バッファ回路918,919を介してそれぞれの電気部品制御基板(例えば主基板31と払出制御基板37)に伝達されるが、例えば、1つの検出出力を中継基板に伝達し、中継基板から各電気部品制御基板に同じ信号を分配する構成でもよい。また、電源断信号を必要とする基板数に応じたバッファ回路を設けてもよい。
図10は、CPU56の内部構成例を詳細に示すブロック図である。CPUコア501はレジスタを内蔵しプログラムに従って演算処理等を行う。クロックジェネレータ502は、外部から供給されるクロック信号を分周して各内蔵デバイスに供給する。なお、クロックジェネレータ502は、1/2分周クロックをシステムクロックとしてCLKO端子から出力可能であり、出力制御回路511を介して、システムクロックを分周したクロック信号をIEO/SCLK0端子から出力可能である。
リセット割込コントローラ503は、XRST端子に入力されるシステムリセット信号やXNMI端子に入力されるマスク不能割込要求信号等をCPUコア501に伝える。外部バスインタフェース504は、アドレスバス、データバスおよび各種制御信号の方向制御や駆動制御を行うバスドライバである。内蔵RAM55は電源バックアップ可能であり、内蔵ROM54にはプログラムが格納される。アドレスデコーダ505は、出力制御回路511を介して4本のチップセレクト信号XCS0〜3を出力可能である。なお、チップセレクト信号XCS0〜3の端子は、入出力ポートPB0〜PB3と兼用されている。
メモリ制御回路510は、内蔵ROM54および内蔵RAM55を制御するための信号を生成する。また、メモリ制御回路510には、内蔵RAM55へのアクセスを許可することを設定するレジスタが内蔵されている。
PIO506は、8ビットの内蔵入力ポートPA0〜PA7である。なお、内蔵PIOを使用しない場合には、例えば、使用しないポートを入力モードとして、そのポートをグラウンドレベルに接続する。また、CTC508は、2本の外部クロック/タイマトリガ入力CLK/TRG2,3と2本のタイマ出力ZC/TO0,1を内蔵している。
次に遊技機の動作について説明する。
図11は、主基板31におけるCPU56が実行するメイン処理を示すフローチャートである。遊技機に対する電源が投入されると、メイン処理において、CPU56は、まず、必要な初期設定を行う。
初期設定処理において、CPU56は、まず、割込禁止に設定する(ステップS1)。次に、割込モードを割込モード2に設定し(ステップS2)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。そして、内蔵デバイスレジスタの初期化を行う(ステップS4)。また、内蔵デバイス(内蔵周辺回路)であるCTC(カウンタ/タイマ)およびPIO(パラレル入出力ポート)の初期化(ステップS5)を行った後、RAMをアクセス可能状態に設定する(ステップS6)。
この実施の形態で用いられているCPU56には、マスク可能な割込(INT)のモードとして以下の3種類のモードが用意されている。なお、マスク可能な割込が発生すると、CPU56は、自動的に割込禁止状態に設定するとともに、プログラムカウンタの内容をスタックにセーブする。
割込モード0:割込要求を行った内蔵デバイスがRST命令(1バイト)またはCALL命令(3バイト)をCPUの内部データバス上に送出する。よって、CPU56は、RST命令に対応したアドレスまたはCALL命令で指定されるアドレスの命令を実行する。リセット時に、CPU56は自動的に割込モード0になる。よって、割込モード1または割込モード2に設定したい場合には、初期設定処理において、割込モード1または割込モード2に設定するための処理を行う必要がある。
割込モード1:割込が受け付けられると、常に0038(h)番地に飛ぶモードである。
割込モード2:CPU56の特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビット0)から合成されるアドレスが、割込番地を示すモードである。すなわち、割込番地は、上位アドレスが特定レジスタの値とされ下位アドレスが割込ベクタとされた2バイトで示されるアドレスである。従って、任意の(飛び飛びではあるが)偶数番地に割込処理を設置することができる。各内蔵デバイスは割込要求を行うときに割込ベクタを送出する機能を有している。
よって、割込モード2に設定されると、各内蔵デバイスからの割込要求を容易に処理することが可能になり、また、プログラムにおける任意の位置に割込処理を設置することが可能になる。さらに、割込モード1とは異なり、割込発生要因毎のそれぞれの割込処理を用意しておくことも容易である。上述したように、この実施の形態では、初期設定処理のステップS2において、CPU56は割込モード2に設定される。
そして、電源断時にバックアップRAM領域のデータ保護処理(例えばパリティデータの付加等の電力供給停止時処理)が行われたか否か確認する(ステップS7)。この実施の形態では、不測の電源断が生じた場合には、バックアップRAM領域のデータを保護するための処理が行われている。そのような保護処理が行われていた場合をバックアップありとする。バックアップなしを確認したら、CPU56は初期化処理を実行する。
この実施の形態では、バックアップRAM領域にバックアップデータがあるか否かは、電源断時にバックアップRAM領域に設定されるバックアップフラグの状態によって確認される。この例では、図12に示すように、バックアップフラグ領域に「55(H)」が設定されていればバックアップあり(オン状態)を意味し、「55(H)」以外の値が設定されていればバックアップなし(オフ状態)を意味する。
バックアップありを確認したら、CPU56は、バックアップRAM領域のデータチェック(この例ではパリティチェック)を行う。不測の電源断が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されていたはずであるから、チェック結果は正常になる。チェック結果が正常でない場合には、内部状態を電源断時の状態に戻すことができないので、停電復旧時でない電源投入時に実行される初期化処理を実行する。
チェック結果が正常であれば(ステップS8)、CPU56は、遊技制御手段の内部状態と表示制御手段等の電気部品制御手段の制御状態を電源断時の状態に戻すための遊技状態復旧処理を行う(ステップS9)。そして、バックアップRAM領域に保存されていたPC(プログラムカウンタ)の退避値がPCに設定され、そのアドレスに復帰する。
ステップS9の遊技状態復旧処理では、例えば、CPU56は、バックアップRAMに保存されていた値を各レジスタに復元する。そして、バックアップRAMに保存されていたデータにもとづいて電源断時の遊技状態を確認して復帰させる。すなわち、バックアップRAMに保存されていたデータにもとづいて電源断時の特別図柄プロセス処理の進行状況を復元する。その結果、電源断時に図柄の変動中であった場合には内部状態がその状態になり、電源断時に大当り遊技状態であった場合には内部状態がその状態になり、電源断時に高確率状態であった場合には内部状態がその状態になる。そして、復元された状態に応じて、必要であれば、ソレノイド回路59を介してソレノイド16やソレノイド21を駆動し、始動入賞口14や開閉板20の開閉状態の復旧を行う。また、電源断中でも保存されていた特別図柄プロセスフラグおよび普通図柄プロセスフラグの値に応じて、電源断時の特別図柄プロセス処理の進行状況および普通図柄プロセス処理の進行状況に対応した制御コマンドを、図柄制御基板80、ランプ制御基板35および音声制御基板70に送出する。
以上のように、遊技状態復旧処理では、復元された内部状態に応じて、各種電気部品の状態復元が行われるとともに、図柄制御基板80、ランプ制御基板35および音声制御基板70に対して、制御状態を電源断時の状態に戻すための制御コマンド(電源断時の制御状態を生じさせるための制御コマンド)が送出される。そのような制御コマンドは、一般に、電源断前に最後に送出された1つまたは複数の制御コマンドである。例えば、電源断時に可変表示装置9において図柄の変動中であった場合には、その変動における停止図柄がバックアップRAMの記憶内容から復元され、停止図柄(可変表示結果)を示す制御コマンドや図柄の確定を示す制御コマンドを表示制御手段に送出したりする。
初期化処理では、CPU56は、まず、RAMクリア処理を行う(ステップS11)。また、所定の作業領域(例えば、普通図柄判定用乱数カウンタ、普通図柄判定用バッファ、特別図柄左中右図柄バッファ、払出コマンド格納ポインタなど)に初期値を設定する初期値設定処理も行われる。さらに、サブ基板(ランプ制御基板35、払出制御基板37、音制御基板70、図柄制御基板80)を初期化するための処理を実行する(ステップS13)。サブ基板を初期化する処理とは、例えば初期設定コマンドを送出する処理である。初期設定コマンドとして、例えば、払出制御基板37に出力される払出可能状態指定コマンド(払出可能状態の場合)または払出停止状態指定コマンド(払出不能状態の場合)がある。払出不能状態として、例えば、球切れスイッチ187または満タンスイッチ48がオンしていた状態がある。すなわち、CPU56は、球切れスイッチ187または満タンスイッチ48がオンしていたら払出制御基板37に払出停止状態指定コマンドを送出し、そうでなければ、払出可能状態指定コマンドを送出する。なお、払出可能状態指定コマンド(払出可能状態の場合)または払出停止状態指定コマンド(払出不能状態の場合)は、ステップS9の遊技状態復旧処理においても実行されるように構成してもよい。
そして、2ms毎に定期的にタイマ割込がかかるようにCPU56に設けられているCTCのレジスタの設定が行われる(ステップS14)。すなわち、初期値として2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。そして、初期設定処理のステップS1において割込禁止とされているので、初期化処理を終える前に割込が許可される(ステップS15)。
この実施の形態では、CPU56の内蔵CTCが繰り返しタイマ割込を発生するように設定される。この実施の形態では、繰り返し周期は2msに設定される。そして、タイマ割込が発生すると、図13に示すように、CPU56は、例えばタイマ割込が発生したことを示すタイマ割込フラグをセットする(ステップS12)。
初期化処理の実行(ステップS11〜S15)が完了すると、メイン処理で、タイマ割込が発生したか否かの監視(ステップS17)の確認が行われるループ処理に移行する。なお、ループ内では、表示用乱数更新処理(ステップS16)も実行される。
CPU56は、ステップS17において、タイマ割込が発生したことを認識すると、ステップS21〜S31の遊技制御処理を実行する。遊技制御処理において、CPU56は、まず、スイッチ回路58を介して、ゲートセンサ12、始動口センサ17、カウントセンサ23および入賞口スイッチ19a,19b,24a,24b等のスイッチの状態を入力し、それらの状態判定を行う(スイッチ処理:ステップS21)。
次いで、パチンコ遊技機1の内部に備えられている自己診断機能によって種々の異常診断処理が行われ、その結果に応じて必要ならば警報が発せられる(エラー処理:ステップS22)。
次に、遊技制御に用いられる大当り判定用の乱数等の各判定用乱数を示す各カウンタを更新する処理を行う(ステップS23)。CPU56は、さらに、停止図柄の種類を決定する乱数等の表示用乱数を更新する処理を行う(ステップS24)。
さらに、CPU56は、特別図柄プロセス処理を行う(ステップS25)。特別図柄プロセス制御では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。また、普通図柄プロセス処理を行う(ステップS26)。普通図柄プロセス処理では、7セグメントLEDによる普通図柄表示器10を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
次いで、CPU56は、特別図柄に関する表示制御コマンドをRAM55の所定の領域に設定して表示制御コマンドを送出する処理を行う(特別図柄コマンド制御処理:ステップS27)。また、普通図柄に関する表示制御コマンドをRAM55の所定の領域に設定して表示制御コマンドを送出する処理を行う(普通図柄コマンド制御処理:ステップS28)。
さらに、CPU56は、例えばホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う(ステップS29)。
また、CPU56は、所定の条件が成立したときにソレノイド回路59に駆動指令を行う(ステップS30)。ソレノイド回路59は、駆動指令に応じてソレノイド16,21を駆動し、可変入賞球装置15または開閉板20を開状態または閉状態とする。
そして、CPU56は、各入賞口への入賞を検出するためのスイッチ17,23,19a,19b,24a,24bの検出出力にもとづく賞球数の設定などを行う賞球処理を実行する(ステップS31)。具体的には、入賞検出に応じて払出制御基板37に払出制御コマンドを出力する。払出制御基板37に搭載されている払出制御用CPU371は、払出制御コマンドに応じて球払出装置97を駆動する。
以上の制御によって、この実施の形態では、遊技制御処理は2ms毎に起動されることになる。なお、この実施の形態では、タイマ割込処理では例えば割込が発生したことを示すフラグのセットのみがなされ、遊技制御処理はメイン処理において実行されるが、タイマ割込処理で遊技制御処理を実行してもよい。
また、メイン処理には遊技制御処理に移行すべきか否かを判定する処理が含まれ、CPU56の内部タイマが定期的に発生するタイマ割込にもとづくタイマ割込処理で遊技制御処理に移行すべきか否かを判定するためのフラグがセット等がなされるので、遊技制御処理の全てが確実に実行される。つまり、遊技制御処理の全てが実行されるまでは、次回の遊技制御処理に移行すべきか否かの判定が行われないので、遊技制御処理中の全ての各処理が実行完了することは保証されている。
以上に説明したように、この実施の形態では、CTCやPIOを内蔵するCPU56に対して、初期設定処理で割込モード2が設定される。従って、内蔵CTCを用いた定期的なタイマ割込処理を容易に実現できる。また、タイマ割込処理をプログラム上の任意の位置に設置できる。また、内蔵PIOを用いたスイッチ検出処理等を容易に割込処理で実現できる。その結果、プログラム構成が簡略化され、プログラム開発工数が低減する等の効果を得ることができる。
なお、CTCおよびPIOの設定(ステップS5)が完了した後に、IEO/SCLK0端子から出力されるクロック信号の周波数を決めるための内部レジスタの設定を行ってもよい。その際、クロック信号の周波数は、遊技制御処理の起動周期である2msに応じた周波数とされる。そのような設定を行うと、IEO/SCLK0端子から、遊技制御処理の起動周期に応じた周波数のクロック信号がCPU56から外部出力される。すると、CPU56の外部において遊技制御処理の起動周期に対応した信号を観測することができる。よって、そのような信号を用いて、遊技機外部においてCPU56による遊技制御処理をシミュレーションしたり、CPU56の動作状況を試験したりすることが容易になる。
図14(A)は、主基板31から他の電気部品制御基板の電気部品制御手段に送出される制御コマンドのコマンド形態の一例を示す説明図である。この実施の形態では、制御コマンドは2バイト構成であり、1バイト目はMODE(コマンドの分類)を表し、2バイト目はEXT(コマンドの種類)を表す。MODEデータの先頭ビット(ビット7)は必ず「1」とされ、EXTデータの先頭ビット(ビット7)は必ず「0」とされる。このように、電気部品制御手段への制御指令となる制御コマンドは、複数のデータで構成され、先頭ビットによってそれぞれを区別可能な態様になっている。
図14(B)は、各電気部品制御手段に対する制御コマンドを構成する8ビットの制御信号CD0〜CD7とINT信号との関係を示すタイミング図である。図14(B)に示すように、MODEまたはEXTのデータが出力ポートに出力されてから、所定の期間が経過すると、CPU56は、データ出力を示す信号であるINT信号(取込信号)をハイレベルにする。また、そこから所定の期間が経過するとINT信号をローレベルにする。さらに、次に送出すべきデータがある場合には、すなわち、MODEデータ送出後では、所定の期間をおいてから2バイト目のデータを出力ポートに送出する。このように、取込信号はMODEおよびEXTのデータのそれぞれについて出力される。
この実施の形態では、遊技制御手段から各電気部品制御基板に制御コマンドを出力しようとするときに、ROM55に設定されているコマンド送信テーブルの先頭アドレスの設定が行われる。図14(C)は、コマンド送信テーブルの一構成例を示す説明図である。1つのコマンド送信テーブルは3バイトで構成され、1バイト目にはINTデータが設定される。また、2バイト目のコマンドデータ1には、制御コマンドの1バイト目のMODEデータが設定される。そして、3バイト目のコマンドデータ2には、制御コマンドの2バイト目のEXTデータが設定される。
なお、EXTデータそのものがコマンドデータ2の領域に設定されてもよいが、コマンドデータ2には、EXTデータが格納されているテーブルのアドレスを指定するためのデータが設定されるようにしてもよい。例えば、コマンドデータ2のビット7(ワークエリア参照ビット)が0であれば、コマンドデータ2にEXTデータそのものが設定されていることを示す。そのようなEXTデータはビット7が0であるデータである。例えば、ワークエリア参照ビットが1であれば、EXTデータとして、コマンド拡張データテーブルの内容を使用することを示す。
図14(D)INTデータの一構成例を示す説明図である。INTデータにおけるビット0は、払出制御基板37に払出制御コマンドを送出すべきか否かを示す。ビット0が「1」であるならば、払出制御コマンドを送出すべきことを示す。また、INTデータにおけるビット1は、図柄出制御基板80に表示制御コマンドを送出すべきか否かを示す。ビット1が「1」であるならば、表示制御コマンドを送出すべきことを示す。INTデータのビット2,3は、それぞれ、ランプ制御コマンド、音声制御コマンドを送出すべきか否かを示すビットである。コマンド送信テーブルは、払出制御コマンド、表示制御コマンド、ランプ制御コマンドおよび音声制御コマンドの各制御コマンドのそれぞれについて用意されている。
図15は、この実施の形態でのROM54のアドレスマップを示す説明図である。図15に示す例では、0000(H)番地からプログラム領域が割り当てられている。また、1000(H)番地〜1FFF(H)番地に制御用データ領域が割り当てられている。
制御用データ領域において、最も前部には内蔵デバイスレジスタ設定テーブルとCTC,PIO設定テーブルがある。内蔵デバイスレジスタ設定テーブルには、CTCやPIO等の内蔵デバイスの動作状態を決めるための内蔵デバイスレジスタのアドレスや内蔵デバイスを初期化のための値が順次格納されている。すなわち、メイン処理のステップS4で、CPU56は、所定の汎用レジスタ(HLレジスタ等)に内蔵デバイスレジスタ設定テーブルのアドレスを設定し、HLレジスタ等の内容が指すアドレスのデータ(内蔵デバイスレジスタのアドレスおよび内蔵デバイスを初期化のための値)を順次ロードして、内蔵デバイスレジスタに、内蔵デバイスを初期化のための値を設定する。
このように、内蔵デバイスレジスタの設定に際して、ROMの制御用データ領域に設定されているデータを使用するので、ステップS4のプログラムでは、直接に内蔵デバイスレジスタのアドレスを設定したり内蔵デバイスレジスタにデータを設定する命令を使用しない。従って、プログラムは見やすいものとなり、プログラム保守が容易になる。また、内蔵デバイスレジスタの初期化のための値を変更する必要が生じても、プログラムを変更する必要はなく、制御用データ領域のデータのみを変更すればよい。
メイン処理のステップS5のCTCおよびPIOの設定についても、CTCの各チャネルの制御レジスタおよびPIOの各チャネル(各ポート)のコマンドレジスタのアドレスや各レジスタに対する設定値がCTC,PIO設定テーブルに順次格納されている。従って、ステップS5では、CPU56は、所定の汎用レジスタ(HLレジスタ等)にCTC,PIO設定テーブルのアドレスを設定し、HLレジスタ等の内容が指すアドレスのデータ(CTCの各チャネルの制御レジスタおよびPIOの各チャネルのコマンドレジスタのアドレスや各レジスタに対する設定値)を順次ロードして、各レジスタに設定値を設定する。
制御用データ領域において、内蔵デバイスレジスタの初期設定のためのデータ(ステップS4,S5で使用するデータ)の次には、作業領域,ワークエリア設定テーブルが格納されている。作業領域,ワークエリア設定テーブルは、CPU56が遊技制御の実行中に使用する作業領域,ワークエリア(RAM)の初期値および遊技進行中の各状態における作業領域の設定値を設定するためのテーブルであり、作業領域,ワークエリアのアドレスと設定されるべき値とが格納されている。CPU56は、例えば、メイン処理のステップS11で、所定の汎用レジスタ(HLレジスタ等)に作業領域,ワークエリア設定テーブルのアドレスを設定し、HLレジスタ等の内容が指すアドレスのデータ(作業領域,ワークエリアの初期値)を順次ロードして、作業領域,ワークエリアに初期値を設定する。また、ステップS25(特別図柄プロセス処理)で、遊技状態の変化(例えば、図柄変動中状態から大入賞口開放状態への変化)が生じたときに、作業領域,ワークエリアに設定されている値を用いて、作業領域の値を設定する。
制御用データ領域において、次に、コマンド拡張データアドレステーブルが格納されている。コマンド拡張データアドレステーブルは、CPU56が電気部品制御手段に対してコマンドを送出する場合に上述したコマンド拡張データテーブルのデータを使用する際に用いられる。コマンド拡張データアドレステーブルの次には、コマンド送信テーブルが格納されている。
さらに、大当り図柄設定用テーブルが制御用データ領域に格納されている。大当り図柄設定用テーブルには、大当りとする場合の図柄に対応した図柄番号が設定されている。
次いで、制御用データ領域において、変動パターンを特定するためのデータが設定されている変動パターン振り分けテーブルのどのデータを使用するのかを決めるための変動パターン振り分けテーブルオフセット値テーブルが格納されている。変動パターン振り分けテーブルオフセット値テーブルは、メイン処理のステップS25(特別図柄プロセス処理)で参照される。変動パターン振り分けテーブルオフセット値テーブルの次に、変動パターン振り分けテーブルが格納されている。次に、特別図柄変動回数カウンタの初期値が設定されている特別図柄変動回数設定テーブルが格納されている。
そして、制御用データ領域において、低確率時の特別図柄判定値テーブルが格納されている。低確率時の特別図柄判定値テーブルには、遊技機の状態が低確率状態(大当りとする確率が高められていない状態)における大当り判定値が設定されている。CPU56は、メイン処理のステップS25(特別図柄プロセス処理)において、大当り判定用の乱数が大当り判定値と一致したときに大当りとすることに決定する。また、低確率時の特別図柄判定値テーブルの次に、高確率時の特別図柄判定値テーブルが格納されている。低確率時の特別図柄判定値テーブルには、遊技機の状態が低確率状態(大当りとする確率が高められている状態)における大当り判定値が設定されている。
以上のように、内蔵デバイスのレジスタの初期設定のためのデータ、およびCPU56が制御プログラムを実行する際に使用するワークエリアの初期設定のためのデータは、制御用データ領域の前部に格納されている。遊技機の機種が異なっても、使用するマイクロコンピュータが同じである場合には、内蔵デバイスのレジスタの初期設定の方法は変わらないのが一般的であるから、複数の機種間で共通に使用されるデータについては制御用データを格納する記憶領域における前部に配置されることになる。
また、作業領域,ワークエリア設定テーブルも、制御用データ領域の前部に格納されている。すなわち、マイクロコンピュータが制御プログラムを実行する際に使用する作業領域,ワークエリアの初期設定のためのデータは、複数の機種間で共通に使用される可能性が高いので、記憶領域における前部に配置される。
制御用データ領域において、低確率時の特別図柄判定値テーブルおよび高確率時の特別図柄判定値テーブルは、後部に格納されている。従って、機種変更に当たって、大当り判定値を変更するのは容易である。制御用データ領域における後部に設定されていれば、データ数すなわち大当り判定値数を増減することが容易であり、かつ、判定値そのものを変更するにも、後部にあった方が変更誤りの可能性が小さいと考えられるからである。そして、高確率時の特別図柄判定値テーブルは、低確率時の特別図柄判定値テーブルよりも後に設定されている。従って、高確率とする制御を行わない機種(プリペイドカードを使用しない現金機等)に制御プログラムおよび制御用データを流用する場合、高確率時の特別図柄判定値テーブルを削除するだけでよい。
電気部品制御手段に出力する制御コマンドを作成するためのデータや変動パターン振り分けテーブルのデータ等の識別情報の表示結果に関するデータは、内蔵デバイスレジスタに関するデータや作業領域,ワークエリア設定テーブルに比べて、機種変更に応じて変更される可能性が比較的高いので、制御用データ領域における中間部に設定されている。
また、空き領域は、制御用データ領域における最も後部に設けられている。従って、制御用データ領域におけるデータ数の増減に容易に対応することができる。
なお、プリペイドカードにより遊技媒体の貸出を行う遊技機(いわゆるCR機)と遊技媒体の貸出についてプリペイドカード介在させない遊技機(いわゆる現金機)とで共通に使用されるデータは、制御用データ領域における前部に配置されていることが好ましい。そして、それらの間で非共通なデータは制御用データ領域における後部に配置されていることが好ましい。そのように構成しておけば、CR機の制御用データの後部のデータを削除するだけで、現金機用の制御用データを作成できる。
図16〜図17は、電源基板910からの電源断信号に応じて実行される電力供給停止時処理の処理例を示すフローチャートである。なお、電源断信号は、CPU56のマスク不能割込端子に接続され、マスク不能割込によって電力供給停止時処理が起動される。
電力供給停止時処理において、CPU56は、AFレジスタ(アキュミュレータとフラグのレジスタ)を所定のバックアップRAM領域に退避する(ステップS51)。また、割込フラグをパリティフラグにコピーする(ステップS52)。パリティフラグはバックアップRAM領域に形成されている。また、BCレジスタ、DEレジスタ、HLレジスタ、IXレジスタおよびスタックポインタをバックアップRAM領域に退避する(ステップS54〜S58)。なお、電源復旧時には、退避された内容にもとづいてレジスタ内容が復元され、パリティフラグの内容に応じて、割込許可状態/禁止状態の内部設定がなされる。
次に、バックアップあり指定値(この例では「55(H)」)をバックアップフラグにストアする。バックアップフラグはバックアップRAM領域に形成されている。次いで、パリティデータを作成する(ステップS60〜S67)。すなわち、まず、クリアデータ(00)をチェックサムデータエリアにセットし(ステップS60)、チェックサム算出開始アドレスをポインタにセットする(ステップS61)。また、チェックサム算出回数をセットする(ステップS62)。
そして、チェックサムデータエリアの内容とポインタが指すRAM領域の内容との排他的論理和を演算する(ステップS63)。演算結果をチェックサムデータエリアにストアするとともに(ステップS64)、ポインタの値を1増やし(ステップS65)、チェックサム算出回数の値を1減算する(ステップS66)。ステップS63〜S66の処理が、チェックサム算出回数の値が0になるまで繰り返される(ステップS67)。
チェックサム算出回数の値が0になったら、CPU56は、チェックサムデータエリアの内容の各ビットの値を反転する(ステップS68)。そして、反転後のデータをチェックサムバッファにストアする(ステップS69)。このデータが、電源投入時にチェックされるパリティデータとなる。次いで、RAMアクセスレジスタにアクセス禁止値を設定する(ステップS70)。以後、内蔵RAM55のアクセスができなくなる。
さらに、CPU56は、クリアデータ(00)を適当なレジスタにセットし(ステップS71)、処理数(この例では「7」)を別のレジスタにセットする(ステップS72)。また、出力ポート0のアドレスをIOポインタに設定する(ステップS73)。IOポインタとして、さらに別のレジスタが用いられる。なお、処理数「7」はI/Oポートの数に相当する。
そして、IOポインタが指すアドレスにクリアデータをセットするとともに(ステップS74)、IOポインタの値を1増やし(ステップS75)、処理数の値を1減算する(ステップS77)。ステップS74〜S76の処理が、処理数の値が0になるまで繰り返される。その結果、全ての出力ポートにクリアデータが設定され、全ての出力ポートがオフ状態になる。
従って、遊技状態を保存するための処理(この例では、チェックサムの生成およびRAMアクセス防止)が実行された後、各出力ポートは直ちにオフ状態になる。なお、この実施の形態では、遊技制御処理において用いられるデータが格納されるRAM領域は全て電源バックアップされている。
図18は、この実施の形態におけるRAM領域のアドレスマップを示す説明図である。図18に示すように、RAM領域の先頭はバックアップフラグの領域に割り当てられている。そして、最後部にチェックサムバッファの領域が割り当てられている。
図19は、チェックサム作成方法の一例を説明するための説明図である。ただし、図19に示す例では、簡単のために、バックアップRAM領域のデータのサイズを3バイトとする。電源電圧低下にもとづく電力供給停止時処理において、図19に示すように、チェックサムデータとして初期データ(この例では00(H))が設定される。次に、「00(H)」と「F0(H)」の排他的論理和がとられ、その結果と「16(H)」の排他的論理和がとられる。さらに、その結果と「DF(H)」の排他的論理和がとられる。そして、その結果(この例では「39(H)」)を論理反転して得られた値(この例では「C6(H)」)がバックアップパリティデータ領域に設定される。なお、図19では、説明を容易にするために、論理反転前のデータ「39(H)」がチェックサムバッファに格納されている様子が示されている。なお、初期データとしての00(H)はステップS60で設定されるチェックサムデータに対するクリアデータに応じた値であり、実際には、00(H)との排他的論理和は演算前と後とで値が変わらないので、00(H)との排他的論理和演算を行わなくてもよい。すなわち、図19に示す初期データは、単に、図16に示されたフローチャートとの整合をとるために記載されているものである。
この実施の形態では、チェックサムバッファは、バックアップRAM領域(変動データ記憶手段)の最後のアドレスに格納されている。従って、例えば、チェックサム作成方法のプログラムに誤りがないかどうか確認する際に、容易にその確認を行うことができる。RAM領域の最終アドレスの値が正しいか否か確認すればよいからである。また、この実施の形態では、チェックサム算出開始アドレスはバックアップフラグが設定されるアドレスであり、チェックサム算出最終アドレスは賞球制御用フラグ・バッファのうちの最後のアドレスである(図18参照)。従って、賞球制御用フラグ・バッファの後、すなわち、バックアップRAM領域の最後のアドレスをチェックサムバッファの領域にすれば、RAM領域において無駄が生ずることはない。
なお、確認のしやすさやRAM領域の無駄防止を考慮すると、バックアップRAM領域の最初のアドレスをチェックサムバッファの領域にしてもよい。
また、遊技機への電力供給開始時にはパリティチェックOKか否かの判断が行われるが(図11におけるステップS8)、その判断では、電力供給停止時処理におけるパリティデータを作成処理(ステップS60〜S67)と同様の処理が行われ、処理結果すなわち演算結果がチェックサムバッファの内容と一致したらパリティチェックOKと判定される。
上記の実施の形態では、バックアップRAM領域の最後または最初のアドレスをチェックサムバッファの領域にしたが、バックアップRAM領域の中途の領域にチェックサムバッファの領域を割り当ててもよい。図20は、そのようなRAM領域のメモリマップの一例を示す説明図である。なお、図20に示すチェックサムバッファの領域の位置は一例であって、バックアップRAM領域の中途であれば、他の箇所をチェックサムバッファの領域の位置にしてもよい。
図21〜図22は、バックアップRAM領域の中途の領域にチェックサムバッファの領域を割り当てた場合の電力供給停止時処理を示すフローチャートである。この場合には、ステップS62Aにおいて、チェックサム算出回数の前半を設定する。図20に示す例では、チェックサム算出回数の前半は、バックアップフラグのアドレスから特別図柄関連フラグ・カウンタ・バッファにおける最後のアドレスまでの間の領域サイズに対応する。
そして、チェックサム算出回数の前半に対する演算が終了すると、チェックサム算出回数(後半)をセットする(ステップS82)。図20に示す例では、チェックサム算出開始アドレス(後半)は普通図柄関連フラグ・カウンタ・バッファの先頭アドレスであり、チェックサム算出回数(後半)は、普通図柄関連フラグ・カウンタ・バッファにおける最初のアドレスから賞球制御用フラグ・バッファにおける最後のアドレスまでの間の領域サイズに対応する。
そして、チェックサムデータエリアの内容とポインタが指すRAM領域の内容との排他的論理和を演算する(ステップS83)。演算結果をチェックサムデータエリアにストアするとともに(ステップS84)、ポインタの値を1増やし(ステップS85)、チェックサム算出回数の値を1減算する(ステップS86)。ステップS83〜S86の処理が、チェックサム算出回数の値が0になるまで繰り返される(ステップS87)。
チェックサム算出回数の値が0になったら、CPU56は、チェックサムデータエリアの内容の各ビットの値を反転する(ステップS68)。そして、反転後のデータをチェックサムバッファにストアする(ステップS69)。次いで、RAMアクセスレジスタにアクセス禁止値を設定する(ステップS70)。そして、図17に示された処理と同様の処理を行う。
図23は、バックアップRAM領域の中途の領域にチェックサムバッファの領域を割り当てた場合のパリティチェックOKか否かの判断、すなわち電力供給開始時のパリティチェック処理(図11におけるステップS8)を示すフローチャートである。
パリティチェック処理において、CPU56は、まず、チェックサムバッファの内容を論理反転し(ステップS89)、初期データ(00)をチェックサムデータエリアにセットし(ステップS90)、チェックサム算出開始アドレスをポインタにセットする(ステップS91)。また、チェックサム算出回数をセットする(ステップS92)。図20に示された例では、チェックサム算出開始アドレスはバックアップフラグのアドレスであり、チェックサム算出回数は、バックアップRAM領域のアドレスから最後のアドレスまでの領域サイズに対応した数である。すなわち、チェックサムバッファがバックアップRAM領域の中途に割り当てられているにもかかわらず、チェックサムの演算は、バックアップRAM領域の最初から最後まで通して実行される。
そして、チェックサムデータエリアの内容とポインタが指すRAM領域の内容との排他的論理和を演算する(ステップS93)。演算結果をチェックサムデータエリアにストアするとともに(ステップS94)、ポインタの値を1増やし(ステップS95)、チェックサム算出回数の値を1減算する(ステップS96)。ステップS93〜S96の処理が、チェックサム算出回数の値が0になるまで繰り返される(ステップS97)。
チェックサム算出回数の値が0になったら、CPU56は、演算結果が00(H)であるか否か確認する(ステップS99)。00(H)であればパリティチェックOKとし(ステップS100)、チェックサムバッファの内容を0クリアする(ステップS102)。00(H)でなければ、パリティチェックNGとし(ステップS101)、チェックサムバッファの内容を0クリアする(ステップS102)。従って、チェックサムバッファの内容は、パリティチェックが行われると内容が00(H)にクリアされる。なお、遊技機への電力供給開始時には、RAMクリア処理(図11に示すステップS11)においてチェックサムバッファの内容は00(H)にクリアされる。
このように、遊技機への電力供給停止時に、CPU56は、初期データおよびバックアップRAM領域の各データの排他的論理和を順次演算することによってチェックサムを作成してバックアップRAM領域に格納し、遊技機への電力供給開始時に、バックアップRAM領域に格納されている各データの排他的論理和を順次演算して演算結果が00(H)であったらバックアップRAM領域に記憶されている最終記憶内容(電力供給が停止したことによって遊技が中断された場合に記憶される電力供給停止直前の最終的な制御状態に関する記憶内容)が正常であると判定する。そして、バックアップRAM領域の内容にもとづいて制御状態を電力供給停止前の状態に復旧させる制御を行う。この場合には、演算結果をチェックサムバッファの内容と比較する必要はなく、単に、00(H)と比較すればよいので、パリティチェック処理が簡略化されるメリットがある。
図24は、チェックサム作成方法を説明するための説明図である。ただし、図24に示す例では、簡単のために、バックアップRAM領域のデータのサイズを3バイトとする。電源電圧低下にもとづく電力供給停止時処理において、図24(A)に示すように、チェックサムデータとして初期データ(チェックサムデータの初期データとしてのクリアデータ)が設定される。次に、「00(H)」と「F0(H)」の排他的論理和がとられ、その結果と「16(H)」の排他的論理和がとられる。さらに、その結果と「DF(H)」の排他的論理和がとられる。そして、その結果(この例では「39(H)」)を論理反転して得られた値(この例では「C6(H)」)が、バックアップRAM領域におけるバックアップパリティデータ領域に設定される。なお、図24では、説明を容易にするために、論理反転前のデータ「39(H)」がチェックサムバッファに格納されている様子が示されている。
そして、電力供給開始時のパリティチェック処理において、図24(B)に示すように、チェックサムデータとして初期データが設定される。次に、「00(H)」と「F0(H)」の排他的論理和がとられ、その結果と「39(H)」の排他的論理和がとられ、さらに「16(H)」の排他的論理和がとられる。次いで、その結果と「DF(H)」の排他的論理和がとられる。そして、演算結果は00(H)であるから、パリティチェックOKと判断される。
なお、ここでは、図21および図22に示されたように、チェックサムバッファを排他的論理和演算の対象から除外し、チェックサムバッファよりも前のバックアップRAM領域について順次排他的論理和演算を行い、次いで、チェックサムバッファよりも後のバックアップRAM領域について順次排他的論理和演算を行うようにしたが、チェックサムの作成処理開始時には、バックアップRAM領域におけるチェックサムバッファの内容は00(H)になっていれば排他的論理和演算に影響を与えないので、バックアップRAM領域の最初のアドレスから最後のアドレスまで通して順次排他的論理和演算を行っても同じ結果が得られる。なお、上記の実施の形態では、電力供給開始時のRAMクリアの際、およびパリティチェックが行われたときに、バックアップRAM領域におけるチェックサムバッファの内容は00(H)になっている。
次に、遊技制御手段以外の電気部品制御手段においてデータ保存処理および復旧処理が行われる場合の例として、払出制御手段においてデータ保存や復旧が行われる場合について説明する。
図25は、払出制御用CPU371周りの一構成例を示すブロック図である。図25に示すように、電源基板910の電源監視回路(電源監視手段)からの電源断信号が、バッファ回路960を介して払出制御用CPU371のマスク不能割込端子(XNMI端子)に接続されている。従って、払出制御用CPU371は、マスク不能割込処理によって電源断の発生を確認することができる。
払出制御用CPU371のCLK/TRG2端子には、主基板31からのINT信号が接続されている。CLK/TRG2端子にクロック信号が入力されると、払出制御用CPU371に内蔵されているタイマカウンタレジスタCLK/TRG2の値がダウンカウントされる。そして、レジスタ値が0になると割込が発生する。従って、タイマカウンタレジスタCLK/TRG2の初期値を「1」に設定しておけば、INT信号の入力に応じて割込が発生することになる。
払出制御基板37には、システムリセット回路975も搭載されているが、この実施の形態では、システムリセット回路975におけるリセットIC976は、電源投入時に、外付けのコンデンサに容量で決まる所定時間だけ出力をローレベルとし、所定時間が経過すると出力をハイレベルにする。また、リセットIC976は、VSLの電源電圧を監視して電圧値が所定値(例えば+9V)以下になると出力をローレベルにする。従って、電源断時には、リセットIC976からの信号がローレベルになることによって払出制御用CPU371がシステムリセットされる。
リセットIC976が電源断を検知するための所定値は、通常時の電圧より低いが、払出制御用CPU371が暫くの間動作しうる程度の電圧である。また、リセットIC976が、払出制御用CPU371が必要とする電圧(この例では+5V)よりも高い電圧を監視するように構成されているので、払出制御用CPU371が必要とする電圧に対して監視範囲を広げることができる。従って、より精密な監視を行うことができる。
+5V電源から電力が供給されていない間、払出制御用CPU371の内蔵RAMの少なくとも一部は、電源基板から供給されるバックアップ電源がバックアップ端子に接続されることによってバックアップされ、遊技機に対する電源が断しても内容は保存される。そして、+5V電源が復旧すると、システムリセット回路975からリセット信号が発せられるので、払出制御用CPU371は、通常の動作状態に復帰する。そのとき、必要なデータがバックアップされているので、停電等からの復旧時には停電発生時の払出制御状態に復帰することができる。
図26は、払出制御用CPU371が実行するメイン処理を示すフローチャートである。メイン処理では、払出制御用CPU371は、まず、必要な初期設定を行う。すなわち、払出制御用CPU371は、まず、割込禁止に設定する(ステップS701)。次に、割込モードを割込モード2に設定し(ステップS702)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS703)。また、払出制御用CPU371は、内蔵デバイスレジスタの初期化を行い(ステップS704)、CTCおよびPIOの初期化(ステップS705)を行った後に、RAMをアクセス可能状態に設定する(ステップS706)。
この実施の形態では、内蔵CTCのうちの一つのチャネルがタイマモードで使用される。従って、ステップS704の内蔵デバイスレジスタの設定処理およびステップS705の処理において、使用するチャネルをタイマモードに設定するためのレジスタ設定、割込発生を許可するためのレジスタ設定および割込ベクタを設定するためのレジスタ設定が行われる。そして、そのチャネルによる割込がタイマ割込として用いられる。タイマ割込を例えば2ms毎に発生させたい場合は、初期値として2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。
なお、タイマモードに設定されたチャネル(この実施の形態ではチャネル3)に設定される割込ベクタは、タイマ割込処理の先頭番地に相当するものである。具体的は、Iレジスタに設定された値と割込ベクタとでタイマ割込処理の先頭番地が特定される。タイマ割込処理ではタイマ割込フラグがセットされ、メイン処理でタイマ割込フラグがセットされていることが検知されると、払出制御処理が実行される。すなわち、タイマ割込処理では、電気部品制御処理の一例である払出制御処理を実行するための設定がなされる。
また、内蔵CTCのうちの他の一つのチャネル(この実施の形態ではチャネル2)が、遊技制御手段からの払出制御コマンド受信のための割込発生用のチャネルとして用いられ、そのチャネルがカウンタモードで使用される。従って、ステップS704の内蔵デバイスレジスタの設定処理およびステップS705の処理において、使用するチャネルをカウンタモードに設定するためのレジスタ設定、割込発生を許可するためのレジスタ設定および割込ベクタを設定するためのレジスタ設定が行われる。
カウンタモードに設定されたチャネル(チャネル2)に設定される割込ベクタは、後述するコマンド受信割込処理の先頭番地に相当するものである。具体的は、Iレジスタに設定された値と割込ベクタとでコマンド受信割込処理の先頭番地が特定される。
この実施の形態では、払出制御用CPU371でも割込モード2が設定される。従って、内蔵CTCのカウントアップにもとづく割込処理を使用することができる。また、CTCが送出した割込ベクタに応じた割込処理開始番地を設定することができる。
CTCのチャネル2(CH2)のカウントアップにもとづく割込は、上述したタイマカウンタレジスタCLK/TRG2の値が「0」になったときに発生する割込である。従って、例えばステップS705において、特定レジスタとしてのタイマカウンタレジスタCLK/TRG2に初期値「1」が設定される。また、CTCのチャネル3(CH3)のカウントアップにもとづく割込は、CPUの内部クロック(システムクロック)をカウントダウンしてレジスタ値が「0」になったら発生する割込であり、後述する2msタイマ割込として用いられる。具体的には、CH3のレジスタ値はシステムクロックの1/256周期で減算される。ステップS705において、CH3のレジスタには、初期値として2msに相当する値が設定される。
CTCのCH2のカウントアップにもとづく割込は、CH3のカウントアップにもとづく割込よりも優先順位が高い。従って、同時にカウントアップが生じた場合に、CH2のカウントアップにもとづく割込、すなわち、コマンド受信割込処理の実行契機となる割込の方が優先される。
そして、払出制御用CPU371は、払出制御用のバックアップRAM領域にバックアップデータが存在しているか否かの確認を行う(ステップS707)。すなわち、例えば、主基板31のCPU56の処理と同様に、電源断時にセットされるバックアップフラグがセット状態になっているか否かによって、バックアップデータが存在しているか否か確認する。バックアップフラグがセット状態になっている場合には、バックアップデータありと判断する。
バックアップありを確認したら、払出制御用CPU371は、バックアップRAM領域のデータチェック(この例ではパリティチェック)を行う。不測の電源断が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されていたはずであるから、チェック結果は正常になる。チェック結果が正常でない場合には、内部状態を電源断時の状態に戻すことができないので、停電復旧時でない電源投入時に実行される初期化処理を実行する。
チェック結果が正常であれば(ステップS708)、払出制御用CPU371は、内部状態を電源断時の状態に戻すための払出状態復旧処理を行う(ステップS709)。そして、バックアップRAM領域に保存されていたPC(プログラムカウンタ)の指すアドレスに復帰する。
払出状態復旧処理では、少なくとも未払出の賞球個数を示すデータと未払出の貸し球個数を示すデータとが復元される。すなわち、未払出の賞球個数および未払出の貸し球個数を示すデータはバックアップRAMに形成されている。そして、未払出の賞球個数を示すデータと未払出の貸し球個数を示すデータとが復元されれば、後述する球貸し制御処理(ステップS756)および賞球制御処理(ステップS757)において、それらのデータにもとづいて払出制御が実行される。従って、賞球払出処理中や球貸し処理中に電源断が生じても、電源復旧時に、未払出の賞球や球貸しの処理が続行され、遊技者に不利益が与えられることはない。
初期化処理では、払出制御用CPU371は、まず、RAMクリア処理を行う(ステップS711)。そして、2ms毎に定期的にタイマ割込がかかるように払出制御用CPU371に設けられているCTCのレジスタの設定が行われる(ステップS712)。すなわち、初期値として2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。そして、初期設定処理のステップS701において割込禁止とされているので、初期化処理を終える前に割込が許可される(ステップS713)。
この実施の形態では、払出制御用CPU371の内蔵CTCが繰り返しタイマ割込を発生するように設定される。この実施の形態では、繰り返し周期は2msに設定される。そして、タイマ割込が発生すると、払出制御用CPU371は、例えばタイマ割込が発生したことを示すタイマ割込フラグをセットする。
払出制御用CPU371は、ステップS724において、タイマ割込フラグがセットされたことを検出するとステップS751以降の払出制御処理を実行する。以上の制御によって、この実施の形態では、払出制御処理は2ms毎に起動されることになる。なお、この実施の形態では、タイマ割込処理ではフラグセットのみがなされ、払出制御処理はメイン処理において実行されるが、タイマ割込処理で払出制御処理を実行してもよい。
払出制御処理において、払出制御用CPU371は、まず、中継基板72を介して入力ポート372bに入力される賞球カウントスイッチ301A、球貸しカウントスイッチ301Bがオンしたか否かを判定する(スイッチ処理:ステップS751)。
次に、払出制御用CPU371は、センサ(例えば、払出モータ289の回転数を検出するモータ位置センサ)からの信号入力状態を確認してセンサの状態を判定する等の処理を行う(入力判定処理:ステップS752)。払出制御用CPU371は、さらに、受信した払出制御コマンドを解析し、解析結果に応じた処理を実行する(コマンド解析実行処理:ステップS753)。
次いで、払出制御用CPU371は、主基板31から払出停止指示コマンドを受信していたら払出停止状態に設定し、払出開始指示コマンドを受信していたら払出停止状態の解除を行う(ステップS754)。また、プリペイドカードユニット制御処理を行う(ステップS755)。
次いで、払出制御用CPU371は、球貸し要求に応じて貸し球を払い出す制御を行う(ステップS756)。このとき、払出制御用CPU371は、振分ソレノイド310によって球振分部材311を球貸し側に設定する。
さらに、払出制御用CPU371は、バックアップRAMに形成されている総合個数記憶に格納された個数の賞球を払い出す賞球制御処理を行う(ステップS757)。このとき、払出制御用CPU371は、振分ソレノイド310によって球振分部材311を賞球側に設定する。そして、出力ポート372cおよび中継基板72を介して球払出装置97の払出機構部分における払出モータ289に対して駆動信号を出力し、所定の回転数分払出モータ289を回転させる払出モータ制御処理を行う(ステップS758)。
次いで、エラー検出処理が行われ、その結果に応じてエラー表示LED374に所定の表示を行う(エラー処理:ステップS759)。
図27〜図28は、電源基板910からの電源断信号に応じて実行されるマスク不能割込処理(電力供給停止時処理)の処理例を示すフローチャートである。
電力供給停止時処理において、払出制御用CPU371は、AFレジスタを所定のバックアップRAM領域に退避する(ステップS801)。また、割込フラグをパリティフラグにコピーする(ステップS802)。パリティフラグはバックアップRAM領域に形成されている。また、BCレジスタ、DEレジスタ、HLレジスタ、IXレジスタおよびスタックポインタをバックアップRAM領域に退避する(ステップS804〜808)。
次に、バックアップあり指定値(例えば「55H」)をバックアップフラグにストアする。バックアップフラグはバックアップRAM領域に形成されている。次いで、主基板31のCPU56の処理と同様の処理を行ってパリティデータを作成しバックアップRAM領域に保存する(ステップS810〜S819)。そして、RAMアクセスレジスタにアクセス禁止値を設定する(ステップS820)。以後、内蔵RAMのアクセスができなくなる。
さらに、払出制御用CPU371は、クリアデータ(00)を適当なレジスタにセットし(ステップS821)、処理数(この例では「3」)を別のレジスタにセットする(ステップS822)。また、出力ポートのアドレスうちの最も小さいアドレス(この例では「00H」)をIOポインタに設定する(ステップS823)。IOポインタとして、さらに別のレジスタが用いられる。なお、処理数「3」は、出力ポート数に対応した数である。
そして、IOポインタが指すアドレスにクリアデータをセットするとともに(ステップS824)、IOポインタの値を1増やし(ステップS825)、処理数の値を1減算する(ステップS827)。ステップS824〜S826の処理が、処理数の値が0になるまで繰り返される。その結果、全ての出力ポートにクリアデータが設定され、全ての出力ポートがオフ状態になる。
また、遊技機への電力供給開始時にはパリティチェックOKか否かの判断が行われるが(図26におけるステップS708)、その判断では、電力供給停止時処理におけるパリティデータを作成処理(ステップS810〜S817)と同様の処理が行われ、処理結果すなわち演算結果がチェックサムバッファの内容と一致したらパリティチェックOKと判定される。
払出制御用CPU371を含む払出制御手段においても、チェックサムバッファは、バックアップRAM領域(変動データ記憶手段)の最初または最後のアドレスに格納されていれば、例えば、チェックサム作成方法のプログラムに誤りがないかどうか確認する際に、容易にその確認を行うことができる。また、RAM領域において無駄が生ずることはない。
そして、払出制御手段についても、CPU56を含む遊技制御手段の場合と同様に、バックアップRAM領域の中途の領域にチェックサムバッファの領域を割り当ててもよい。そのように構成した場合には、電力供給開始時のパリティチェック処理(図26におけるステップS708)において、チェックサムの演算は、バックアップRAM領域の最初から最後まで通して実行される。そして、バックアップRAM領域の中途の領域にチェックサムバッファの領域を割り当てた場合には、演算結果をチェックサムバッファの内容と比較する必要はなく、単に、00(H)と比較すればよいので、パリティチェック処理が簡略化されるメリットがある。
以上に説明したように、上記の各実施の形態では、複数の機種間で共通に使用されるデータについては制御用データ領域における前部に配置され、複数の機種間で共通に使用される可能性が低いデータについては制御用データ領域における後部に配置されているので、共通に使用される可能性が低いデータについての変更が容易であるとともに、複数の機種間で共通に使用されるデータについては流用の際に変更を施す必要性を低減させることができる。
また、遊技機への電力供給開始時に、変動データ記憶手段に格納されているチェックデータにもとづいて変動データ記憶手段に記憶されている最終記憶内容が正常であるか否かの判定を行い、正常である場合には最終記憶内容にもとづいて制御状態を電力供給停止前の状態に復旧させる制御を行うように構成されている場合に、チェックデータを、変動データ記憶手段の最初または最後のアドレスに格納するようにしたので、チェックデータ作成方法のプログラムに誤りがないかどうか確認する際に、容易にその確認を行うことができる。また、RAM領域において無駄が生ずることはない。
さらに、チェックデータを、変動データ記憶手段の中途のアドレスに格納するようにした場合には、演算結果を、保存されているチェックサムデータと比較する必要はなく、単に、00(H)と比較すればよいので、パリティチェック処理が簡略化されるメリットがある。
なお、上記の各実施の形態のパチンコ遊技機1は、始動入賞にもとづいて可変表示部9に可変表示される特別図柄の停止図柄が所定の図柄の組み合わせになると所定の遊技価値が遊技者に付与可能になる第1種パチンコ遊技機であったが、始動入賞にもとづいて開放する電動役物の所定領域への入賞があると所定の遊技価値が遊技者に付与可能になる第2種パチンコ遊技機や、始動入賞または始動ゲートの通過にもとづいて可変表示される図柄の停止図柄が所定の図柄の組み合わせになると開放する所定の電動役物へ入賞し、かつ、複数の入賞領域のうち特別の入賞領域への入賞があると所定の権利が発生または継続する第3種パチンコ遊技機であっても、本発明を適用できる。
また、パチンコ遊技機に限られず、スロット機等においても、何らかの動作をする電気部品等を制御するためのマイクロコンピュータや電気部品制御基板が備えられている場合などには本発明を適用することができる。
また、上記の実施の形態では、下記のような遊技機が開示されている。
(1)変動データ記憶手段におけるチェックデータが格納されているアドレスの内容は、チェックデータの作成処理が開始される以前の段階でクリアされる遊技機。
そのような構成によれば、そのアドレスの内容が排他的論理和演算に影響を与えないことから、変動データ記憶手段の最初のアドレスから最後のアドレスまで通して順次排他的論理和演算を行うことができ、チェックデータ作成処理をより簡単に行うことができる。
(2)遊技機で使用される所定の電源の状態を監視する電源監視手段を備え、マイクロコンピュータが、電源監視手段により電源の状態があらかじめ定められた所定の状態となったことが検出された場合に、チェックデータの作成を行うように構成されている遊技機。
そのような構成によれば、マイクロコンピュータは、チェックデータ作成の契機を容易に認識することができる。
(3)マイクロコンピュータが、電力供給停止時に、チェックデータを作成して変動データ記憶手段に格納するとともに、変動データ記憶手段に最終記憶内容が記憶されていることを示すバックアップフラグを変動データ記憶手段に格納し、遊技機への電力供給開始時に、バックアップフラグがオン状態であって、かつ、チェックデータにもとづいて変動データ記憶手段に記憶されている最終記憶内容が正常であると判断した場合に、最終記憶内容にもとづいて制御状態を電力供給停止前の状態に復旧させる制御を行うように構成されている遊技機。
そのような構成によれば、バックアップフラグとチェックデータの双方をチェックすることによって、より確実に、電力供給開始時に電力供給停止時の状態から遊技を再開させる制御を行うことができる。
(4)遊技の進行に応じて遊技者にとって有利な特定遊技状態に制御可能な遊技機である場合、マイクロコンピュータが、例えば、少なくとも特定遊技状態に制御するか否かの決定を行う制御を含む遊技進行の制御を行う遊技制御手段における遊技制御用マイクロコンピュータである遊技機。
そのような構成によれば、停電等によって不測の電力供給の停止が発生したときに、必要なデータを保存して電力供給開始時に電力供給停止時の状態から遊技を再開できるので、遊技者の不利益を極力防止することができる。
(5)マイクロコンピュータが、少なくとも特定遊技状態であるか否かに関するデータを復旧させるように構成されている遊技機。
そのような構成によれば、電力供給の復帰時に、遊技者の利益に関連する遊技状態を確実に復旧させることができる。
(6)表示状態が変化可能な可変表示装置を含み、可変表示の開始の条件の成立に応じて可変表示を開始し、可変表示の表示結果があらかじめ定められた特定表示態様となったことを条件として遊技者にとって有利な特定遊技状態に制御可能な遊技機であって、マイクロコンピュータが、少なくとも可変表示装置における可変表示の表示結果に関するデータを復旧させるように構成されている遊技機。
そのような構成によれば、見た目も極力電力供給停止直前の状態に戻すことが可能になり、復旧したことを遊技者が容易に認識することができる。
(7)マイクロコンピュータが、例えば、遊技の結果として払い出される遊技媒体の払出制御を行う払出制御手段における払出制御用マイクロコンピュータである遊技機。
そのような構成によれば、不測の電力供給の停止が発生したときに、必要なデータを保存して電力供給開始時に電力供給停止時の状態から払出制御を再開できる。
(8)払出制御用マイクロコンピュータが、少なくとも、電力供給停止により払出が行われなかった未払出の遊技媒体数に関するデータを復旧させる制御を実行可能であり、復旧させたデータにもとづいて未払出の遊技媒体を払い出すための制御を行うように構成されている遊技機。
そのような構成によれば、電力供給の復帰時に、遊技者の利益に関連する払出制御状態を確実に復旧させることができ、遊技者に不利益が与えられることを確実に防止できる。