(57)【要約】【課題】１のコマンドを他のコマンドに優先して送信することができる遊技機を提供すること。【解決手段】コマンドバッファに加えて復電コマンドバッファを備え、他のコマンドに優先して送信する必要のあるコマンド（例えば復電コマンド）は、復電コマンドバッファへ設定する。コマンド出力処理（Ｓ２１）では、復電コマンドバッファに送信するべきコマンドが記憶されていれば、コマンドバッファに記憶されるコマンドに優先して復電コマンドバッファに記憶されるコマンドを送信する。よって、サブ制御基板へ他のコマンドに優先して送信したいコマンドがあれば、これを復電コマンドバッファへ記憶することにより、該コマンドをコマンドバッファに記憶される他のコマンドに優先してサブ制御基板へ送信することができる。即ち、１のコマンドを他のコマンドに優先してサブ制御基板へ送信することができる。【選択図】図８
2014158765.tif 000002
【特許請求の範囲】
【請求項１】
遊技の主な制御を行う主制御手段と、その主制御手段から送信されるコマンドに基づいて動作するサブ制御手段とを備えた遊技機において、
前記主制御手段は、前記サブ制御手段へ送信するコマンドを記憶する第１送信バッファと、その第１送信バッファに記憶されるコマンドに優先して前記サブ制御手段へ送信するコマンドを記憶する第２送信バッファと、その第２送信バッファにコマンドが記憶されている場合にその第２送信バッファに記憶されるコマンドを前記第１送信バッファに記憶されるコマンドに優先して送信するコマンド送信手段とを備えていることを特徴とする遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パチンコ機やスロットマシンに代表される遊技機に関するものである。
【背景技術】
【０００２】
スロットマシンやパチンコ機の制御は、遊技の主な制御を行う主制御基板と、その主制御基板に接続されると共に、その主制御基板から送信されるコマンドに基づいて液晶表示装置やランプ、ＬＥＤ、スピーカなどの駆動制御を行うサブ制御基板とにより行われる。主制御基板は、サブ制御基板へ送信するコマンドがあると、そのコマンドを一旦、送信バッファへ記憶する。そして、送信バッファへ記憶したコマンドを所定のタイミングで順に読み出して、これをサブ制御基板へ送信する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−１６１７５９号公報。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のように、送信バッファに記憶されるコマンドを順に読み出してサブ制御基板へ送信する方式では、緊急時のコマンドのように、サブ制御基板へ他のコマンドに優先して送信したいコマンドがあっても、既に送信バッファに記憶されているコマンドの送信後でなければ送信することができないという問題点があった。
本発明は上述した問題点を解決するためになされたものであり、１のコマンドを他のコマンドに優先して送信することができる遊技機を提供することを目的としている。
【課題を解決するための手段】
【０００５】
この目的を達成するために請求項１記載の遊技機は、遊技の主な制御を行う主制御手段と、その主制御手段から送信されるコマンドに基づいて動作するサブ制御手段とを備え、前記主制御手段は、前記サブ制御手段へ送信するコマンドを記憶する第１送信バッファと、その第１送信バッファに記憶されるコマンドに優先して前記サブ制御手段へ送信するコマンドを記憶する第２送信バッファと、その第２送信バッファにコマンドが記憶されている場合にその第２送信バッファに記憶されるコマンドを前記第１送信バッファに記憶されるコマンドに優先して送信するコマンド送信手段とを備えていることを特徴としている。
【発明の効果】
【０００６】
本発明の遊技機によれば、主制御手段は、サブ制御手段へ送信するコマンドを記憶する第１送信バッファに加えて、その第１送信バッファに記憶されるコマンドに優先してサブ制御手段へ送信するコマンドを記憶する第２送信バッファとを備えており、コマンド送信手段は、第２送信バッファにコマンドが記憶されている場合に第２送信バッファに記憶されるコマンドを第１送信バッファに記憶されるコマンドに優先して送信する。よって、サブ制御手段へ他のコマンドに優先して送信したいコマンドがあれば、これを第２送信バッファへ記憶することにより、コマンド送信手段によって、該コマンドを第１送信バッファに記憶される他のコマンドに優先してサブ制御手段へ送信することができる。即ち、１のコマンドを他のコマンドに優先して送信できるという効果がある。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施例であるスロットマシンの前面扉が閉じた状態を示した斜視    図である。
【図２】スロットマシンの前面扉が開いた状態を示した斜視図である。
【図３】スロットマシンの電気的構成を示したブロック図である。
【図４】主制御基板で実行されるＮＭＩ割込処理のフローチャートである。
【図５】主制御基板で実行されるタイマ割込処理のフローチャートである。
【図６】主制御基板のタイマ割込処理の中で実行される停電時処理のフローチャート    である。
【図７】電源投入時に主制御基板で実行されるメイン処理のフローチャートである。
【図８】主制御基板のタイマ割込処理の中で実行されるコマンド出力処理のフローチ    ャートである。
【図９】主制御基板で実行される第２実施例のタイマ割込処理のフローチャートであ    る。
【図１０】電源投入時に主制御基板で実行される第２実施例のメイン処理のフローチ    ャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の好ましい実施例について、添付図面を参照して説明する。図１は、本発明の実施例であるスロットマシン１の前面扉３が閉じた状態を示した斜視図であり、図２は、そのスロットマシン１の前面扉３が開いた状態を示した斜視図である。
【０００９】
図１及び図２を参照して、スロットマシン１の全体構成について説明する。スロットマシン１は、図１に示すように、本体２と前面扉３とから正面視略矩形状の箱状体に構成されている。本体２は、図２に示すように、スロットマシン１の骨格をなす部材であり、回胴Ｌ，Ｍ，Ｒやホッパ４７等を収納するために、前面側が開放した中空状の箱状体に形成されている。
【００１０】
本体２の内部には、図２に示すように、各種の図柄等が表示され回転可能に構成された回胴Ｌ，Ｍ，Ｒと、スロットマシン１の遊技を制御する制御装置４０、電源スイッチ４１とリセットスイッチ４２と設定キー挿入孔４３とを備える電源ボックス４４、メダルを貯留する補助タンク４５とこの補助タンク４５内のメダルを払出用通路６１に通じる開口６２を介してメダル払出口３２へ払い出す払出装置４６とを備えるホッパ４７等が収納されている。
【００１１】
前面扉３は、上述した本体２の前面側開放部分に覆設される部材であり、図２に示すように、その前面扉３の裏面側辺部に取着されたヒンジ部材１０により本体２に開閉可能に連結されている。よって、前面扉３を閉じることにより本体２の前面側開放部分を閉封することができ、図１に示すように、本体２内に収納される回胴Ｌ，Ｍ，Ｒやホッパ４７等をその本体２と共に被包することができる。一方、前面扉３を開くことにより本体２の前面側を開放することができ、ホッパ４７内に貯留されたメダルの回収等を行うことができる。なお、前面扉３には、図１に示すように、施錠装置９が配設されており、かかる施錠装置９により本体２と前面扉３とを図１に示す状態で施錠することができる。
【００１２】
前面扉３は前面枠４によりその外形が形成されており、前面枠４は、枠部材視認部４ａと枠部材操作部４ｂと枠部材貯留部４ｃとに３分割されて構成されている。前面扉３の上段部（前面枠４の枠部材視認部４ａ）には、図１に示すように、遊技の進行に伴って点灯・点滅する上部ランプ１１、遊技の進行に伴って種々の効果音等を発生するスピーカ１２，１２、各種の内容を表示する液晶ディスプレイ（以下「ＬＣＤ」と略す）１３、左回胴Ｌと中回胴Ｍと右回胴Ｒとをそれぞれ透視可能な露出窓１４Ｌ，１４Ｍ，１４Ｒ、メダルのベット数（賭け数）に応じて点灯する５つのベットランプ１５，１６，１６，１７，１７、クレジット数表示部１８、ゲーム数表示部１９、払出枚数表示部２０などが設けられている。
【００１３】
前面扉３の中段部（前面枠４の枠部材操作部４ｂ）には、図１に示すように、メダルを貯玉するか否かを切り替えるクレジットボタン２１と、左中右の各回胴Ｌ，Ｍ，Ｒの停止を指示する左・中・右回胴用ストップボタン２２〜２４と、メダルの詰まりを解消するメダル詰まり解消ボタン２５と、貯玉されたメダルから１枚のメダルを賭けるための１枚ベットボタン２６と、２枚のメダルを賭ける２枚ベットボタン２７と、最大である３枚のメダルを賭けるマックスベットボタン２８と、各回胴Ｌ，Ｍ，Ｒの回転を開始させるスタートレバー２９と、メダル投入口３０と、機種名や遊技に関わるキャラクタ等が表示された表示プレート３１等とが設けられている。また、前面扉３の下段部（前面枠４の枠部材貯留部４ｃ）には、図１に示すように、メダル払出口３２から払い出されたメダルを受けて貯留するメダル受け皿３３、タバコの吸い殻等を入れる灰皿３４などが設けられている。
【００１４】
図３は、スロットマシン１の電気的構成を示したブロック図である。スロットマシン１の主制御基板Ｃは、制御装置４０内に配設されている。この主制御基板Ｃには、演算装置である１チップマイコンとしてのＭＰＵ５１と、そのＭＰＵ５１と接続されると共に各種のＩ／Ｏ装置と接続された入出力ポート５４とが搭載されている。ＭＰＵ５１には、ＭＰＵ５１により実行される各種の制御プログラムや固定値データを記憶したＲＯＭ５２と、そのＲＯＭ５２内に記憶される制御プログラムの実行に当たって各種のデータ等を一時的に記憶するためのメモリであるＲＡＭ５３と、割込回路やタイマ回路、データ送受信回路などの各種回路が内蔵されている。図４から図８に示すフローチャートのプログラムは、制御プログラムの一部としてＲＯＭ５２内に記憶されている。
【００１５】
ＲＡＭ５３には、停電フラグ５３ａと、スタックポインタ保存メモリ５３ｂと、チェックサム補正値メモリ５３ｃと、コマンドバッファ５３ｄと、コマンドカウンタ５３ｅと、コマンド入力ポインタ５３ｆと、コマンド出力ポインタ５３ｇと、復電コマンドバッファ５３ｈと、復電コマンドカウンタ５３ｉとが設けられている。また、このＲＡＭ５３には、スロットマシン１の電源のオフ後においても、後述する電源基板５５からバックアップ電圧が供給され、スロットマシン１の電源のオフ後もデータを保持（バックアップ）できるように構成されている。
【００１６】
停電フラグ５３ａは、停電等の発生（電源スイッチ４１のオフによる電源断を含む）による電源断を報せるためのフラグである。停電等が発生して電源が断されると、後述する停電監視回路５７からＭＰＵ５１のＮＭＩ（Non Maskable
Interrupt）端子（ノンマスカブル割込端子）へ停電信号５８が出力される。すると、Ｍ
ＰＵ５１によって、図４に示すＮＭＩ（ノンマスカブル）割込処理が実行され、停電フラグ５３ａがオンされる。停電フラグ５３ａがオンされると、タイマ割込処理（図５参照）の中で停電時処理（Ｓ１３）が実行され、遊技の制御の中断処理が実行される。なお、ＮＭＩ割込処理で一旦オンされた停電フラグ５３ａは、電源投入時に実行される復電処理（Ｓ６３〜Ｓ６７）の最後にオフされる（Ｓ６７）。
【００１７】
スタックポインタ保存メモリ５３ｂは、スロットマシン１の電源断後においても、ＭＰＵ５１のスタックポインタの値を保存するためのメモリである。スタックポインタの値は停電時処理のはじめに、このスタックポインタ保存メモリ５３ｂへセーブされ（Ｓ３３）、逆に、復電処理のはじめに、スタックポインタ保存メモリ５３ｂからスタックポインタへ復帰される（Ｓ６３）。本実施例のスタックエリアは電源断後もデータを保持可能なＲＡＭ５３内に設けられているので、停電時処理においてスタックポインタの値をスタックポインタ保存メモリ５３ｂへセーブすることにより、スタックエリアへ退避されたデータをそっくり保存することができる。
【００１８】
チェックサム補正値メモリ５３ｃは、停電時処理において算出されたＲＡＭ５３のチェックサムを「０」とするための補正値を記憶するメモリである。停電時処理（Ｓ１３）では、ＲＡＭ５３のチェックサムを「０」にした状態で制御を終了し、電源投入（停電解消）時の処理において、ＲＡＭ５３のチェックサムを調べ、その値が「０」であるか否かにより、ＲＡＭ５３のデータが正常にバックアップされているか否かを判断している。このため停電時処理において、チェックサム補正値メモリ５３ｃの値を０クリアした状態でＲＡＭ５３のチェックサムを算出し、その算出したチェックサムの２の補数がチェックサム補正値メモリ５３ｃへ記憶される。これによりＲＡＭ５３のチェックサムは「０」となる。
【００１９】
コマンドバッファ５３ｄは、主制御基板Ｃから後述するサブ制御基板Ｓへ送信されるコマンドを一時的に記憶するバッファであり、合計容量３２バイトのリングバッファとして構成されている。本実施例のコマンドは１のコマンド（１単位のコマンド。以下同様）が２バイトで構成されるので、コマンドバッファ５３ｄには最大１６のコマンドを記憶することができる。
【００２０】
なお、コマンドバッファ５３ｄは、必ずしも３２バイトで構成する必要はないが、２のｎ乗（ｎは自然数）で構成することが好ましい。コマンドバッファ５３ｄを２のｎ乗のサイズで構成すれば、コマンド入力ポインタ５３ｆおよびコマンド出力ポインタ５３ｇの更新を簡易に行うことができる。具体的には、各ポインタ５３ｆ，５３ｇの更新後の値と、コマンドバッファ５３ｄのサイズマイナス１の値とのアンド論理をとり、その結果を対応するポインタ５３ｆ，ポインタ５３ｇの更新後の値とすることで、各ポインタ５３ｆ，５３ｇの更新を行うことができるからである。かかる構成（コマンドバッファ５３ｄのサイズおよびポインタ５３ｆ，５３ｇの更新方式の構成）によれば、コマンドバッファ５３ｄがリングバッファで構成されていても、各ポインタ５３ｆ，５３ｇの値がコマンドバッファ５３ｄのサイズをオーバーする場合などに条件分岐命令を用いることなく、各ポインタ５３ｆ，５３ｇの値の更新を簡易に行うことができる。
【００２１】
コマンドカウンタ５３ｅは、コマンドバッファ５３ｄに記憶されているコマンドのデータ（バイト）数を記憶するカウンタである。前述した通り、本実施例のコマンドは１のコマンドが２バイトで構成されるので、コマンドバッファ５３ｄに１のコマンドがセットされる毎に、コマンドカウンタ５３ｅの値は「２」ずつ加算される。一方、コマンドバッファ５３ｄに記憶される１データがサブ制御基板Ｓへ送信される毎に、コマンドカウンタ５３ｅの値は「１」ずつ減算される。よって、このコマンドカウンタ５３ｅの値が「０」であれば、コマンドバッファ５３ｄには送信すべきコマンドは記憶されておらず、また、コマンドカウンタ５３ｅの値が奇数であれば、いずれか１（単位）のコマンドの送信途中である。従って、本実施例では、コマンドカウンタ５３ｅの値が「０」である場合にはコマンドの送信は行わず（図８のＳ８３：Ｙｅｓを参照）、また、コマンドカウンタ５３ｅの値が奇数である場合には停電時処理の実行や後述する復電コマンドの送信を待機している（図６のＳ３１：Ｙｅｓ，図８のＳ８１：Ｙｅｓ）。
【００２２】
コマンド入力ポインタ５３ｆは、コマンドバッファ５３ｄへのコマンドの書き込み位置を示すポインタであり、２バイトで構成される１（単位）のコマンドがコマンドバッファ５３ｄへ書き込まれると、その値は「２」加算される。前述した通り、コマンドバッファ５３ｄはリングバッファとして構成されるので、コマンド入力ポインタ５３ｆの値がコマンドバッファ５３ｄのサイズ以上となると、その値は「０」クリアされる。コマンド入力ポインタ５３ｆの値は、メイン処理（Ｓ６１）でコマンドの設定がなされると更新される。
【００２３】
コマンド出力ポインタ５３ｇは、コマンドバッファ５３ｄからコマンドを読み出す場合の読み出し位置を示すポインタであり、コマンドの１データ（１バイト）の読み出し毎に、その値は「１」ずつ加算される。前述した通り、コマンドバッファ５３ｄはリングバッファとして構成されるので、コマンド出力ポインタ５３ｇの値がコマンドバッファ５３ｄのサイズ以上となった場合にはその値は「０」クリアされる。コマンド出力ポインタ５３ｇの値は、タイマ割込処理の中のコマンド出力処理（Ｓ２１）でコマンドの１データが送信される毎に更新される。
【００２４】
なお、前述したコマンドカウンタ５３ｅに代えて、コマンド入力ポインタ５３ｆの値とコマンド出力ポインタ５３ｇの値との差を使用しても良い。
【００２５】
復電コマンドバッファ５３ｈは、停電解消後の復電時に、主制御基板Ｃからサブ制御基板Ｓへ送信される復電時のコマンド（復電コマンド）を一時的に記憶するバッファである。この復電コマンドバッファ５３ｈに記憶されたコマンドは、コマンドバッファ５３ｄに記憶されたコマンドに優先して、主制御基板Ｃからサブ制御基板Ｓへ送信される。ここで復電コマンドは、復電処理（Ｓ６３〜Ｓ６７）の実行をサブ制御基板Ｓへ報せるためのコマンドであり、２バイトで構成されている。よって、復電コマンドバッファ５３ｈも２バイトで構成されている。なお、復電コマンドが２バイト以上で構成される場合には、そのバイト数（データ数）に応じて、復電コマンドバッファ５３ｈのサイズも変更される。
【００２６】
復電コマンドカウンタ５３ｉは、復電コマンドバッファ５３ｈに記憶されているコマンドのデータ（バイト）数を記憶するカウンタである。前述した通り、本実施例の復電コマンドは２バイトで構成されるので、復電処理により復電コマンドカウンタ５３ｉの値は「２」とされる（Ｓ６４）。復電コマンドカウンタ５３ｉの値は、復電コマンドが１データ送信される毎に「１」ずつ減算され、その値が「０」となると、復電コマンドの送信が完了する。その後は、コマンドバッファ５３ｄにコマンドが記憶されていれば、そのコマンドがサブ制御基板Ｓへ送信される。
【００２７】
入出力ポート５４は、前述した通りＲＯＭ５２及びＲＡＭ５３を内蔵したＭＰＵ５１と接続されると共に、各種のＩ／Ｏ装置と接続されている。具体的に入出力ポート５４は、遊技状態をリセットするためのリセットスイッチ４２と、設定キー挿入孔４３内に設けられ設定キーの操作により遊技の当選確率を６段階に切り替えるための設定キースイッチ６１と、１枚・２枚・マックスベットボタン２６〜２８と、クレジットボタン２１と、スタートレバー２９と、左・中・右回胴用ストップボタン２２〜２４と、払い出されたメダルを検出するための払出センサ６２と、回胴Ｌ，Ｍ，Ｒの原点位置をそれぞれ検出する左・中・右回胴インデックスフォトセンサ６３Ｌ，６３Ｍ，６３Ｒと、左・中・右の各回胴Ｌ，Ｍ，Ｒをそれぞれ回転させるための左・中・右回胴用ステッピングモータ６４Ｌ，６４Ｍ，６４Ｒと、１枚〜３枚ベットランプ１５〜１７と、クレジット枚数表示部１８と、ゲーム数表示部１９と、払出枚数表示部２０と、ホッパ駆動モータ６５と、メダル通路切替ソレノイド６６と、主制御基板Ｃから送信されるコマンドを受信して、スピーカ１２から効果音などの出力制御を行うと共に表示用制御基板Ｄを制御してＬＣＤ１３上に演出表示などを行わせるサブ制御基板Ｓと、更には、電源基板５５に設けられた停電監視回路５７とにそれぞれ接続されている。サブ制御基板Ｓには、上部ランプ１１と、スピーカ１２と、サブ制御基板Ｓから送信されるコマンドを受信してＬＣＤ１３上に演出表示などを行う表示用制御基板Ｄとがそれぞれ接続されている。なお、サブ制御基板Ｓと表示用制御基板Ｄとは、データ等の送受信が双方向に可能に構成されている。
【００２８】
電源基板５５は、前述した電源ボックス４４内に設けられており、主制御基板Ｃをはじめ、スロットマシン１の各電子機器に駆動電力を供給する電源部５６と、電源断の発生を監視する停電監視回路５７とを備えている。スロットマシン１の電源のオフ後には、電源基板５５の電源部５６からＲＡＭ５３へバックアップ電圧が供給される。
【００２９】
停電監視回路５７は、停電等の発生による電源断時（電源スイッチ４１のオフによる電源断を含む）に、主制御基板ＣのＮＭＩ端子および入出力ポート５４へ停電信号５８を出力するための回路である。この停電監視回路５７は、電源基板５５から出力される最も大きい電圧である直流安定２４ボルトの電圧を監視し、この電圧が２２ボルト未満になった場合に停電（電源断）の発生と判断して、停電信号５８を出力するように構成されている。この停電信号５８の出力によって、主制御基板Ｃは、停電の発生を認識し、停電時処理（Ｓ１３）を実行する。なお、電源基板５５は、直流安定２４ボルトの電圧が２２ボルト未満になった後においても、停電時処理の実行に充分な時間の間、制御系の駆動電圧である５ボルトの出力を正常値に維持するように構成されている。よって、主制御基板Ｃは、停電時処理を正常に実行することができる。また、停電監視回路５７を、電源基板５５ではなく、例えば主制御基板Ｃに設けるようにしても良い。
【００３０】
次に、図４から図８に示すフローチャートを参照して、主制御基板Ｃで行われる各処理について説明する。図４は、停電の発生等により停電監視回路５７から停電信号５８が出力された場合に主制御基板Ｃで実行されるＮＭＩ割込処理のフローチャートである。停電信号５８がＭＰＵ５１のＮＭＩ端子へ入力されると、このＮＭＩ割込処理が即座に実行される。
【００３１】
ＮＭＩ割込処理では、まずＡレジスタ（アキュムレータ）及びＦレジスタ（フラグレジスタ）をＲＡＭ５３内に設けられたスタックエリアへ退避する（Ｓ１）。次に、停電フラグ５３ａをオンして（Ｓ２）、停電の発生を記憶し、スタックエリアへ退避したＡレジスタ及びＦレジスタを復帰して（Ｓ３）、処理を終了する。なお、停電フラグ５３ａをオンする際に、ＡレジスタおよびＦレジスタのいずれの内容をも破壊しない場合には、Ｓ１及びＳ３の処理は削除して、ＮＭＩ割込処理は、Ｓ２の処理だけで構成される。
【００３２】
図５は、主制御基板Ｃで定期的（本実施例では１．４９０ｍｓ毎）に実行されるタイマ割込処理のフローチャートである。このタイマ割込処理では、各回胴用ステッピングモータ６４Ｌ，６４Ｍ，６４Ｒの駆動制御をはじめ、各種Ｉ／Ｏ装置への入出力処理や、コマンド送信処理等が実行される。
【００３３】
タイマ割込処理では、まず、メイン処理（図７のＳ６１）で使用している全レジスタ（ＡＦ，ＢＣ，ＤＥ，ＨＬ，ＩＸ，ＩＹレジスタ）の値をスタックエリアへ退避し（Ｓ１１）、停電フラグ５３ａがオンされているか否かを確認する（Ｓ１２）。停電フラグ５３ａがオンされていれば（Ｓ１２：Ｙｅｓ）、図４のＮＭＩ割込処理で説明した通り停電の発生であるので、かかる場合には図６に示す停電時処理を実行する（Ｓ１３）。一方、停電フラグ５３ａがオンされていなければ（Ｓ１２：Ｎｏ）、停電は発生していないので、停電時処理（Ｓ１３）をスキップして、処理をＳ１４へ移行する。なお、停電時処理（Ｓ１３）の詳細については、図６を参照しつつ後述する。
【００３４】
Ｓ１４からの処理では、誤動作の発生を監視するウォッチドッグタイマの値を初期化するウォッチドッグタイマクリア処理（Ｓ１４）と、割込終了宣言処理（Ｓ１５）と、各種スイッチの状態を読み込むスイッチ状態読み込み処理（Ｓ１６）と、左・中・右の各回胴Ｌ，Ｍ，Ｒを回転させるために左・中・右回胴用ステッピングモータ６４Ｌ，６４Ｍ，６４Ｒを駆動する回胴モータ制御処理（Ｓ１７）と、各種センサの状態を監視するセンサ監視処理（Ｓ１８）と、各カウンタやタイマの値を減算するタイマ減算処理（Ｓ１９）と、ＩＮ・ＯＵＴカウンタ処理（Ｓ２０）と、サブ制御基板Ｓへコマンドを送信するコマンド出力処理（図８参照）（Ｓ２１）と、クレジット枚数表示部１８とゲーム数表示部１９と払出枚数表示部２０とにそれぞれ表示されるセグメントデータを設定するセグメントデータ設定処理（Ｓ２２）と、そのセグメントデータ設定処理で設定されたセグメントデータを各表示部１８〜２０へそれぞれ表示するセグメントデータ表示処理（Ｓ２３）と、入出力ポート５４から出力データを出力するポート出力処理（Ｓ２４）とが、順に実行される。
【００３５】
そして、これらの処理の実行後には、Ｓ１１の処理でスタックエリアへ退避した各レジスタ（ＡＦ，ＢＣ，ＤＥ，ＨＬ，ＩＸ，ＩＹレジスタ）の値をそれぞれのレジスタへ復帰し（Ｓ２５）、次回のタイマ割込の発生を許容するべく、割込を許可して（Ｓ２６）、このタイマ割込処理を終了する。
【００３６】
図６は、主制御基板Ｃで実行される停電時処理（Ｓ１３）のフローチャートである。前述した通り、この停電時処理は、タイマ割込処理の中で実行される。即ち、停電時処理は、各回胴用ステッピングモータ６４Ｌ，６４Ｍ，６４Ｒの駆動制御をはじめ、各種Ｉ／Ｏ装置への入出力処理や、コマンド送信処理等を行うタイマ割込処理の中で実行されるので、これらの各処理を中断することなく、停電時処理を実行することができる。よって、１のデータの送信途中やスイッチの読み込み途中、更にはカウンタ等の更新途中等に、停電時処理が実行されることはないので、即ちイレギュラーなタイミングで停電時処理が実行されることはないので、停電時処理（Ｓ１３）及び復電処理（Ｓ６３〜Ｓ６７）において、停電時処理がイレギュラーなタイミングで実行されることを考慮したプログラムを不要として、プログラムを簡略化し且つ小容量化することができる。また、停電時処理（Ｓ１３）は、その実行後にリターンされてタイマ割込処理に復帰することもあるが（Ｓ３２，Ｓ４２）、タイマ割込処理におけるレジスタ退避処理（Ｓ１１）の直後に実行されるので、停電時処理自体で各レジスタの退避処理や復帰処理をする必要がなく、その分、プログラム容量を小容量化することができる。
【００３７】
停電時処理では、まず、コマンドカウンタ５３ｅの値が奇数であるか否か、即ちコマンドの送信（出力）途中であるか否かを確認し（Ｓ３１）、送信途中であれば（Ｓ３１：Ｙｅｓ）、リターン命令を実行して停電時処理を中止する（Ｓ３２）。本実施例では２バイトで１（単位）のコマンドが構成される。図５のタイマ割込処理では、コマンド出力処理（Ｓ２１）により１バイトずつコマンドデータが送信（出力）されるので、１（単位）のコマンド送信を完了するためにはタイマ割込処理の実行が２回必要になる。Ｓ３１の処理は、１バイト目のコマンドデータの送信完了後であって且つ２バイト目のコマンドデータの送信完了前である場合（コマンドカウンタ５３ｅの値が奇数である場合）に、コマンドの送信途中と判断しており、かかる場合には停電時処理の実行を中止している（停電時処理を未実行としている）。未送信の２バイト目のコマンドデータは、リターン命令後（Ｓ３２）に実行されるコマンド出力処理（Ｓ２１）で送信されるので、次回のタイマ割込処理の際にはコマンドの送信は完了している。よって、停電時処理は、次回のタイマ割込処理の際に実行される。なお、前述した通り、停電時処理は、コマンド出力処理（Ｓ２１）を行うタイマ割込処理の中で実行されるので、１バイトのコマンドデータの送信が停電時処理により途中で途切れることはない。
【００３８】
このように、停電時処理のはじめで、コマンドの送信途中であるか否かを確認し、送信途中であれば停電時処理を未実行とすることにより、コマンドの送信を完了した上で停電時処理を実行することができる。よって、コマンドの送信途中に停電時処理が実行されることを考慮して、停電時処理（Ｓ１３）及び復電処理（Ｓ６３〜Ｓ６７）をプログラムする必要が無く、プログラムを簡略化して且つ小容量化することができる。なお、Ｓ３１の判断ステップは、必ずしも停電時処理をコールした後に実行する必要はなく、停電時処理のコール前に、即ち図５のＳ１２の処理の前または後に実行するようにしても良い。
【００３９】
また、本実施例では、１のコマンド送信を完了するためには２回のタイマ割込処理の実行が必要なので、電源基板５５は、停電の発生後、タイマ割込処理を少なくとも３回以上実行し且つ図６のＳ３１からＳ３８の各処理を実行するのに十分な時間の間（即ち１．４９０ｍｓ×３＋α＝４．４７ｍｓ＋α以上の間。本実施例では３０ｍｓの間）、制御系の駆動電圧である５ボルトの出力を正常値に維持するように構成されている。よって、主制御基板Ｃは、コマンドの送信途中に停電が発生した場合にも、停電時処理を正常に実行することができる。
【００４０】
Ｓ３１の処理において、コマンドの送信途中でなければ（Ｓ３１：Ｎｏ）、以降のＳ３３〜Ｓ３８の処理によって停電時における制御の中断処理を実行する。まず、ＭＰＵ５１のスタックポインタの値をスタックポインタ保存メモリ５３ｂへセーブし（Ｓ３３）、チェックサム補正値メモリ５３ｃの値を０クリアする（Ｓ３４）。更に、全ての出力ポートの出力状態をクリアして全てのアクチュエータをオフする（Ｓ３５）。ＲＡＭ５３の全ての値を加算してチェックサムを求め（Ｓ３６）、求めたチェックサムを２の補数化してこれをチェックサム補正値メモリ５３ｃへ書き込む（Ｓ３７）。これにより、ＲＡＭ５３のチェックサムは「０」となるので、以降のＲＡＭ５３への書き込みを禁止する（Ｓ３８）。
【００４１】
その後、停電信号５８の状態を入出力ポート５４から読み込んで確認し（Ｓ３９）、停電信号５８が出力されている間は、かかる停電信号５８の状態チェックを制御系の駆動電圧がダウンするまで繰り返す（無限ループする）（Ｓ３９：Ｙｅｓ）。
【００４２】
一方、停電信号５８の状態をチェックした結果、停電信号５８が出力されていなければ（Ｓ３９：Ｎｏ）、停電は解消したということなので、ＲＡＭ５３への書き込みを許可し（Ｓ４０）、停電フラグ５３ａをオフした後に（Ｓ４１）、リターン命令を実行して（Ｓ４２）、タイマ割込処理へ復帰する。前述した通り停電時処理は、各レジスタの退避処理を行わずに実行されるので、リターン命令の実行の際に各レジスタの復帰処理が不要となり、その分、プログラムを小容量化することができる。また、停電時処理は、コール命令により実行されるので、元の処理へはリターン命令を実行するだけで復帰することができる。なお、Ｓ３５の処理では、全ての出力ポートの出力状態をクリアしているが、リターン命令の実行により（Ｓ４２）、タイマ割込処理のＳ１４〜Ｓ２４の各処理が実行されて出力ポートの各状態が再出力されるので、何ら特別な処理を設けることなく、リターン命令の実行だけで、一旦クリアした出力ポートの出力状態をも復帰することができる。
【００４３】
更に、停電信号５８の状態チェックを、停電時処理の実行時のみならず、停電時処理の実行後においても行うことにより、ノイズなどを原因として誤って停電フラグ５３ａがオンされて停電時処理が実行された場合にも、制御を無限ループさせること無く、正常に復帰することができる。なお、停電信号５８の再確認処理（Ｓ３９）は、Ｓ３６の処理以降に実行されれば良いので、Ｓ３７やＳ３８の処理の前に実行するようにしても良い。これは、Ｓ３６のＲＡＭ５３のチェックサムを求める処理が比較的長い処理時間を要するので（本実施例では８７０μｓ）、該処理（Ｓ３６）の後であれば、停電信号５８の再確認処理は有効に機能するからである。停電信号５８の再確認処理をＳ３７やＳ３８の処理の前に設けた場合には、該処理は１回のみ実行されることとなり、Ｓ３８のＲＡＭ５３への書き込み禁止処理の後は、何の判断ステップもない無限ループとなる。
【００４４】
図７は、電源投入時に主制御基板Ｃで実行されるメイン処理のフローチャートである。スロットマシン１の電源が投入されると（停電の解消による電源入を含む）、この処理が実行される。まず、スタックポインタの値を設定し（Ｓ５１）、割込モードを設定する（Ｓ５２）。更に、各レジスタ及びＩ／Ｏ等の設定を行う（Ｓ５３）。
【００４５】
次に、停電フラグ５３ａとリセットスイッチ４２の各オン状態を確認する（Ｓ５４，Ｓ５５）。停電フラグ５３ａのオンは電源断時に停電時処理が実行されたこと、即ちＲＡＭ５３にデータがバックアップされていることを示し、リセットスイッチ４２のオンはバックアップ状態のクリアが操作者によって指示されたことを示している。よって、停電フラグ５３ａがオンされており（Ｓ５４：Ｙｅｓ）、且つリセットスイッチ４２がオフされていれば（Ｓ５５：Ｎｏ）、Ｓ５６のＲＡＭクリア処理の実行をスキップして、処理をＳ５７へ移行する。逆に、停電フラグ５３ａがオフされているか（Ｓ５４：Ｎｏ）、或いはリセットスイッチ４２がオンされていれば（Ｓ５５：Ｙｅｓ）、ＲＡＭクリア処理を実行して（Ｓ５６）、ＲＡＭ５３の全ての内容を０クリアする。
【００４６】
次に、設定キースイッチ６１がオンされているか否かを確認し（Ｓ５７）、オンされていなければ（Ｓ５７：Ｎｏ）、Ｓ５８及びＳ５９の各処理をスキップして処理をＳ６０へ移行する。一方、設定キースイッチ６１がオンされていれば（Ｓ５７：Ｙｅｓ）、ＲＡＭクリア処理を実行して（Ｓ５８）、ＲＡＭ５３の全ての内容を０クリアした後で、６段階確率設定処理（Ｓ５９）を実行する。６段階確率設定処理では、遊技の当選確率が６段階に切り替えられる。
【００４７】
Ｓ６０の処理では、停電フラグ５３ａがオンされているか否かを確認する（Ｓ６０）。Ｓ５４からＳ５９の処理の中でＲＡＭクリア処理（Ｓ５６，Ｓ５９）が実行されバックアップ状態がクリアされていれば、停電フラグ５３ａはオフされている（Ｓ６０：Ｎｏ）。よって、かかる場合にはＳ６３からＳ６７の復電処理を実行すること無く、スロットマシン１の通常遊技を行う各処理へ移行する（Ｓ６１）。この各処理（Ｓ６１）が、スロットマシン１のメイン処理として繰り返し実行され、スロットマシン１の遊技が行われる。
【００４８】
一方、停電フラグ５３ａがオンされていれば（Ｓ６０：Ｙｅｓ）、ＲＡＭ５３に記憶されたデータをクリアすることなく、バックアップ状態を有効にしたまま、Ｓ６０の処理が実行されたということである。即ち、停電フラグ５３ａがオンされていれば、Ｓ５１〜Ｓ５３，Ｓ５４：Ｙｅｓ，Ｓ５５：Ｎｏ，Ｓ５７：Ｎｏの経路をたどってＳ６０の処理へ到達しているので、その間、サブルーチンコールは全くされておらず、スタックエリアへの書き込みを含め、ＲＡＭ５３のデータは全く書き替えられていない。停電時処理ではＲＡＭ５３のチェックサム値を「０」としているので（図６のＳ３７）、ＲＡＭ５３のデータが正常にバックアップされていれば、そのチェックサム値は「０」となっている。よって、かかる場合には、ＲＡＭ５３のチェックサム値を調べ（Ｓ６２）、チェックサム値が正常であれば（チェックサム値が「０」であれば）（Ｓ６２：Ｙｅｓ）、バックアップは正常と判断して、Ｓ６３からＳ６７の復電処理を実行する。
【００４９】
一方、Ｓ６２の処理において、チェックサム値に異常があれば（チェックサム値が「０」でなければ）（Ｓ６２：Ｎｏ）、バックアップ中にデータが破壊されるなどの異常が発生している。よって、かかる場合には、割込を禁止し（Ｓ６８）、全ての出力ポートの出力状態をクリアして全てのアクチュエータをオフした後に（Ｓ６９）、エラー表示処理を行って（Ｓ７０）、バックアップエラーの発生を報知する。
【００５０】
Ｓ６３からの復電処理では、まず、スタックポインタ保存メモリ５３ｂの値をスタックポインタへ復帰し（Ｓ６３）、スタックの状態を電源断前の状態に復帰させる。次に、復電時のコマンド（復電コマンド）を復電コマンドバッファ５３ｈへ書き込み、書き込んだコマンドのデータ数を復電コマンドカウンタ５３ｉへ書き込む（Ｓ６４）。本実施例の復電時のコマンド設定では、通常のコマンドをコマンドバッファ５３ｄに設定する場合とは逆に、先に送信するコマンドのデータを復電コマンドバッファ５３ｈの下位アドレスに書き込み、後から送信するコマンドのデータを復電コマンドバッファ５３ｈの上位アドレスに書き込む。即ち、復電コマンドバッファ５３ｈの先頭アドレスに後から送信するコマンドのデータを書き込み、復電コマンドバッファ５３ｈの先頭＋１のアドレスに先に送信するコマンドのデータを書き込む。これは、図８のコマンド出力処理に示す通り、復電コマンドバッファ５３ｈに記憶されるコマンドデータの送信順を、復電コマンドカウンタ５３ｉの値に基づいて決定しているからである。また、本実施例の復電コマンドは１コマンドで構成されるので、即ち２データ（２バイト）で構成されるので、Ｓ６４の処理により復電コマンドカウンタ５３ｉの値は「２」の設定される。このように、復電時のコマンドを設定し、これをサブ制御基板Ｓへ送信（出力）して、復電処理の実行をサブ制御基板Ｓへ報せる。
【００５１】
更に、打ち止め・自動精算設定保存処理（Ｓ６５）、スイッチ状態の初期化処理（Ｓ６６）をそれぞれ実行した後に、停電フラグ５３ａをオフして（Ｓ６７）、リターン命令を実行し、復電処理を終了する。リターン命令の実行により、ＭＰＵ５１のプログラムカウンタの値はスタックエリアに記憶されている停電時処理（図５のＳ１３）の次のアドレスへ切り替わるので、停電時処理の次の処理である図５のＳ１４の処理から制御が再開される。
【００５２】
図８は、コマンド出力処理（Ｓ２１）のフローチャートである。コマンド出力処理は、メイン処理（Ｓ６１）で設定された通常のコマンドおよび復電処理（Ｓ６４）で設定された復電コマンドを、１データずつサブ制御基板Ｓへ送信するための処理であり、図５に示すタイマ割込処理の中で定期的に実行される。なお、復電コマンドは、通常のコマンドより優先してサブ制御基板Ｓへ送信される。
【００５３】
まず、コマンドカウンタ５３ｅの値が奇数であるか否か、即ちコマンドの送信（出力）途中であるか否かを確認し（Ｓ８１）、送信途中であれば（Ｓ８１：Ｙｅｓ）、処理をＳ８４へ移行して、２データで構成される１コマンドの残りのデータを送信する。一方、コマンドカウンタ５３ｅの値が偶数であれば（Ｓ８１：Ｎｏ）、コマンドの送信途中ではなく、１（単位）のコマンドの送信は完了しているので、復電コマンドカウンタ５３ｉの値が０か否かを確認する（Ｓ８２）。復電コマンドカウンタ５３ｉの値が０であれば（Ｓ８２：Ｙｅｓ）、復電コマンドバッファ５３ｈに復電コマンドは記憶されていない。よって、かかる場合には、コマンドカウンタ５３ｅの値を確認し、その値が０であれば（Ｓ８３：Ｙｅｓ）、送信すべきコマンドはコマンドバッファ５３ｄに記憶されていないので、このコマンド出力処理を終了する。
【００５４】
一方、コマンドカウンタ５３ｅの値が０でなければ（Ｓ８３：Ｎｏ）、送信すべきコマンドがコマンドバッファ５３ｄに記憶されているので、処理をＳ８４へ移行して、コマンドバッファ５３ｄに記憶されるコマンドの送信を１データずつ行う。
【００５５】
Ｓ８４からの処理では、まず、コマンドバッファ５３ｄの先頭アドレスからコマンド出力ポインタ５３ｇの値番目のデータをコマンド（コマンドを構成する１のデータ）としてサブ制御基板Ｓへ送信し（Ｓ８４）、送信したデータを記憶するコマンドバッファ５３ｄの内容を０クリアする（Ｓ８５）。これにより、ノイズなどを原因として誤動作した場合にも、一度、送信したコマンドのデータを、重複して送信しないようにすることができる。なお、コマンドデータの「０」は、本実施例において何の処理も実行しない無実行コードに割り当てられている。
【００５６】
次に、コマンド出力ポインタ５３ｇの値を１加算する（Ｓ８６）。コマンドバッファ５３ｄはリングバッファで構成されるので、加算後のコマンド出力ポインタ５３ｇの値がコマンドバッファ５３ｄのサイズ以上であれば（Ｓ８７：Ｙｅｓ）、コマンド出力ポインタ５３ｇの値を０クリアする（Ｓ８８）。一方、加算後のコマンド出力ポインタ５３ｇの値がコマンドバッファ５３ｄのサイズ以上でなければ（Ｓ８７：Ｎｏ）、Ｓ８８の処理をスキップして、処理をＳ８９へ移行する。Ｓ８９の処理では、コマンドカウンタ５３ｅの値を１減算して（Ｓ８９）、このコマンド出力処理を終了する。
【００５７】
コマンドカウンタ５３ｅの値が偶数で１（単位）のコマンドの送信が完了しており（Ｓ８１：Ｎｏ）且つ復電コマンドカウンタ５３ｉの値が０でなく復電コマンドバッファ５３ｈに復電コマンドが記憶されていれば（Ｓ８２：Ｎｏ）、Ｓ９０からＳ９２の処理によって復電コマンドをサブ制御基板Ｓへ送信する。これにより、復電コマンドバッファ５３ｈに記憶される復電コマンドが、コマンドバッファ５３ｄに記憶される通常のコマンドより優先して、サブ制御基板Ｓへ送信される。
【００５８】
まず、復電コマンドカウンタ５３ｉの値を１減算し（Ｓ９０）、次に、復電コマンドバッファ５３ｈの先頭アドレスから復電コマンドカウンタ５３ｉの値番目のデータをコマンド（コマンドを構成する１のデータ）としてサブ制御基板Ｓへ送信する（Ｓ９１）。図７のＳ６４の部分で説明した通り、復電コマンドのデータは、復電コマンドカウンタ５３ｉの値に基づいて復電コマンドバッファ５３ｈから読み出されて送信されるので、通常のコマンドをコマンドバッファ５３ｄに設定する場合とは逆に、先に送信するコマンドのデータを復電コマンドバッファ５３ｈの下位アドレスに、後から送信するコマンドのデータを復電コマンドバッファ５３ｈの上位アドレスに書き込んでいる。よって、復電コマンドバッファ５３ｈの先頭アドレスから復電コマンドカウンタ５３ｉの値番目のデータをコマンドとしてサブ制御基板Ｓへ送信することにより、復電コマンドの送信を正常に行うことができる。Ｓ９２の処理では、送信したデータを記憶する復電コマンドバッファ５３ｈの内容を０クリアする（Ｓ９２）。これにより、ノイズなどを原因として誤動作した場合にも、一度、送信した復電コマンドのデータを、重複して送信しないようにすることができる。Ｓ９２の処理の実行後は、リターン命令を実行して、このコマンド出力処理を終了する。
【００５９】
以上説明したように、本実施例のスロットマシン１によれば、コマンドバッファ５３ｄに加えて復電コマンドバッファ５３ｈを備え、他のコマンドに優先して送信する必要のあるコマンド（例えば復電コマンド）は、復電コマンドバッファ５３ｈへ設定し、コマンド出力処理（Ｓ２１）では、復電コマンドバッファ５３ｈに送信するべきコマンドが記憶されていれば、コマンドバッファ５３ｄに記憶されるコマンドに優先して復電コマンドバッファ５３ｈに記憶されるコマンドを送信するように構成している。よって、サブ制御基板Ｓへ他のコマンドに優先して送信したいコマンドがあれば、これを復電コマンドバッファ５３ｈへ記憶することにより、該コマンドをコマンドバッファ５３ｄに記憶される他のコマンドに優先してサブ制御基板Ｓへ送信することができる。即ち、１のコマンドを他のコマンドに優先してサブ制御基板Ｓへ送信することができるのである。
【００６０】
なお、他のコマンドに優先して送信されるコマンドは、必ずしも復電コマンドに限られるものではなく、緊急性を要するコマンド、例えばエラーの発生を報せるコマンドなどを適用することができる。これらのコマンドを他のコマンドに優先してサブ制御基板Ｓへ送信する場合には、該コマンドを復電コマンドバッファ５３ｈに書き込み、復電コマンドカウンタ５３ｉの値をセットする。これにより、該コマンドが他のコマンドに優先してサブ制御基板Ｓへ送信される。
【００６１】
次に、図９及び図１０を参照して、第２実施例について説明する。前記した第１実施例では、停電監視回路５７から出力される停電信号５８を、ＭＰＵ５１のＮＭＩ割込端子に入力し、ＮＭＩ割込処理（図４）によって停電フラグ５３ａをオンし、その停電フラグ５３ａがオンされている場合に、タイマ割込処理の中で停電時処理（Ｓ１３）を実行するようにしていた。
【００６２】
これに対し第２実施例では、ＮＭＩ割込処理を使用せず、タイマ割込処理において、入出力ポート５４で停電監視回路５７から出力される停電信号５８の出力状態を読み込み、停電信号５８が出力されている場合に停電時処理（Ｓ１０２）を実行するようにしたものである。このため第２実施例では、ＮＭＩ割込処理（図４）と停電フラグ５３ａとが不要となり、代わって、ＲＡＭクリア処理（Ｓ５６，Ｓ５８）の実行を記憶する初期化フラグが設けられている。即ち、第１実施例では電源投入時の処理（図７）において、停電フラグ５３ａのオン状態がＲＡＭクリア処理（Ｓ５６，Ｓ５８）の未実行を表していたが、第２実施例では停電フラグ５３ａの削除に伴って、初期化フラグを設け、その初期化フラグのオン状態によりＲＡＭクリア処理（Ｓ５６，Ｓ５８）の実行を表すようにしている。以下、第２実施例の説明にあたり、前記した第１実施例と同一の部分には同一の符号を付してその説明を省略する。
【００６３】
図９は、第２実施例のタイマ割込処理のフローチャートである。この処理では、レジスタ退避処理（Ｓ１１）の後に、入出力ポート５４を介して停電信号５８の出力状態を読み込み、停電信号５８が出力されている場合に（Ｓ１０１：Ｙｅｓ）、停電時処理（Ｓ１０２）を実行する。第２実施例の停電時処理（Ｓ１０２）は、図６に示す第１実施例の停電時処理（Ｓ１３）において、停電フラグ５３ａをオフするＳ４１の処理を削除して構成されるので、その説明は省略する。
【００６４】
図１０は、電源投入時に主制御基板Ｃで実行される第２実施例のメイン処理のフローチャートである。この処理では、リセットスイッチ４２がオンされている場合（Ｓ５５：Ｙｅｓ）のＲＡＭクリア処理（Ｓ５６）の実行後、及び設定キースイッチ６１がオンされている場合（Ｓ５７：Ｙｅｓ）のＲＡＭクリア処理（Ｓ５８）の実行後に、ＲＡＭ５３のクリアがなされたことを記憶するべく初期化フラグがオンされる（Ｓ１１１，Ｓ１１２）。
【００６５】
初期化フラグがオンされていれば（Ｓ１１３：Ｙｅｓ）、この初期化フラグをオフした後に（Ｓ１１４）、スロットマシン１の通常遊技を行う各処理へ移行する（Ｓ６１）。一方、初期化フラグがオンされていなければ（Ｓ１１３：Ｎｏ）、ＲＡＭクリア処理（Ｓ５６，Ｓ５８）は実行されていないので、かかる場合には、ＲＡＭ５３のチェックサム値の確認後（Ｓ６２）、チェックサム値が正常であれば（Ｓ６２：Ｙｅｓ）、復電処理（Ｓ６３〜Ｓ６６）を実行する。
【００６６】
この第２実施例においても、第１実施例の場合と同様に、停電時処理の実行タイミングを考慮することなく、メイン処理（Ｓ６１）やタイマ割込処理の各処理（Ｓ１４〜Ｓ２４）をプログラムできるので、その分、プログラムを簡略化して小容量化を図ることができる。同様に、サブ制御基板Ｓへ他のコマンドに優先して送信したいコマンドがあれば、これを復電コマンドバッファ５３ｈへ記憶することにより、該コマンドをコマンドバッファ５３ｄに記憶される他のコマンドに優先してサブ制御基板Ｓへ送信することができる。即ち、１のコマンドを他のコマンドに優先してサブ制御基板Ｓへ送信することができるのである。
【００６７】
なお、上記実施例において、請求項１記載のコマンド送信手段としては、図８に示すコマンド出力処理（Ｓ２１）が該当する。
【００６８】
以上、実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【００６９】
本発明をスロットマシン１以外の遊技機、例えば、第１から３種のパチンコ機に用いるようにしても良い。
【００７０】
本発明を上記実施例とは異なるタイプのパチンコ機等に実施しても良い。例えば、一度大当たりすると、それを含めて複数回（例えば２回、３回）大当たり状態が発生するまで、大当たり期待値が高められるようなパチンコ機（通称、２回権利物、３回権利物と称される）として実施しても良い。また、大当たり図柄が表示された後に、所定の領域に球を入賞させることを必要条件として特別遊技状態となるパチンコ機として実施しても良い。更に、パチンコ機以外にも、アレパチ、雀球、スロットマシン、いわゆるパチンコ機とスロットマシンとが融合した遊技機などの各種遊技機として実施するようにしても良い。
【００７１】
なお、スロットマシンは、例えばコインを投入して図柄有効ラインを決定させた状態で操作レバーを操作することにより図柄が変動され、ストップボタンを操作することにより図柄が停止されて確定される周知のものである。従って、スロットマシンの基本概念としては、「複数の識別情報からなる識別情報列を変動表示した後に識別情報を確定表示する可変表示手段を備え、始動用操作手段（例えば操作レバー）の操作に起因して識別情報の変動が開始され、停止用操作手段（例えばストップボタン）の操作に起因して、或いは、所定時間経過することにより、識別情報の変動が停止され、その停止時の確定識別情報が特定識別情報であることを必要条件として、遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段とを備えたスロットマシン」となり、この場合、遊技媒体はコイン、メダル等が代表例として挙げられる。
【００７２】
また、パチンコ機とスロットマシンとが融合した遊技機の具体例としては、複数の図柄からなる図柄列を変動表示した後に図柄を確定表示する可変表示手段を備えており、球打出用のハンドルを備えていないものが挙げられる。この場合、所定の操作（ボタン操作）に基づく所定量の球の投入の後、例えば操作レバーの操作に起因して図柄の変動が開始され、例えばストップボタンの操作に起因して、或いは、所定時間経過することにより、図柄の変動が停止され、その停止時の確定図柄がいわゆる大当たり図柄であることを必要条件として遊技者に有利な大当たり状態が発生させられ、遊技者には、下部の受皿に多量の球が払い出されるものである。
【００７３】
以下に変形例を示す。請求項１記載の遊技機において、前記１のコマンドは複数のデータで構成されると共に、複数回に分けて前記主制御手段から前記サブ制御手段へ送信されるものであり、前記コマンド送信手段は、前記第２送信バッファに１以上のコマンドが記憶されており且つ１のコマンドの送信途中でない場合に、前記第２送信バッファに記憶されるコマンドを前記第１送信バッファに記憶されるコマンドに優先して送信するものであることを特徴とする遊技機１。ここで、１のコマンドの送信途中とは、１のコマンドを構成する複数のデータのうち、既に一部のデータを送信しており且つすべてのデータは送信していない状態をいう。例えば、１のコマンドが２データで構成される場合には、その２データのうち、１データだけが送信された状態をいう。また、１のコマンドが３データで構成される場合には、その３データのうち、１または２データが送信された状態をいう。１のコマンドが４データ以上で構成される場合にも同様である。この遊技機１によれば、第１送信バッファに記憶される１のコマンドの送信途中に、第２送信バッファに記憶されるコマンドの送信を防止することができるので、１のコマンドが複数のデータで構成され且つ複数回に分けて主制御手段からサブ制御手段へ送信されるものであっても、そのコマンドの送信を正確に行うことができる。
【００７４】
請求項１記載の遊技機または遊技機１において、前記コマンド送信手段は、前記第２送信バッファに記憶されるコマンドを送信した場合には、その第２送信バッファに記憶されるコマンドをすべて送信するまで前記第１送信バッファに記憶されるコマンドの送信を待機するものであることを特徴とする遊技機２。遊技機２によれば、２以上のコマンドを第２送信バッファに記憶した場合でも、その２以上のコマンドを第１送信バッファに記憶されるコマンドに優先して、主制御手段からサブ制御手段へ送信することができる。
【００７５】
請求項１記載の遊技機または遊技機１若しくは２において、前記第２送信バッファは、前記第１送信バッファに比べてデータの記憶数が小さく構成されていることを特徴とする遊技機３。第２送信バッファに記憶されるコマンドは、緊急に送信されるべきコマンドであるので、第１送信バッファに記憶されるべきコマンドより、その種類も使用頻度も少ない。よって、第２送信バッファは第１送信バッファに比べてデータの記憶数を小さく構成することができる。遊技機３によれば、第２送信バッファは第１送信バッファに比べてデータの記憶数が小さく構成されているので、バッファとして使用されるメモリを有効に利用することができる。
【００７６】
請求項１記載の遊技機または遊技機１から３のいずれかにおいて、前記第２送信バッファに記憶されるコマンドは、エラーの発生を報せるコマンドであることを特徴とする遊技機４。遊技機４によれば、エラーの発生を報せるコマンドは他のコマンドに優先して主制御手段からサブ制御手段へ送信されるので、サブ制御手段へエラーの発生をいち早く報せて、サブ制御手段にエラー時の対処をいち早く行わせることができる。
【００７７】
請求項１記載の遊技機または遊技機１から４のいずれかにおいて、前記第２送信バッファに記憶されるコマンドは、停電解消による復電を報せるコマンドであることを特徴とする遊技機５。遊技機５によれば、停電解消による復電を報せるコマンドは他のコマンドに優先して主制御手段からサブ制御手段へ送信される。よって、未送信のコマンドが第１送信バッファに残ったまま停電となっても、停電解消後には、第１送信バッファに残された未送信のコマンドに優先して復電を報せるコマンドをサブ制御手段へ送信することができる。
【００７８】
請求項１記載の遊技機または遊技機１から５のいずれかにおいて、前記コマンド送信手段は、送信後のデータが記憶される第１送信バッファの内容又は第２送信バッファの内容をクリアするクリア手段を備えていることを特徴とする遊技機６。遊技機６によれば、送信後のデータが記憶される第１又は第２送信バッファの内容は、クリア手段によってクリアされるので、ノイズなどを原因として誤動作した場合にも、一度送信したデータを誤って重複送信することを防止できる。なお、送信バッファに記憶されるデータのクリア手法としては、例えば、何の処理も実行しない無実行データを上書きすることが挙げられる。
【００７９】
請求項１記載の遊技機または遊技機１から６のいずれかにおいて、前記第１送信バッファはそのサイズが２のｎ乗のリングバッファとして構成され、その第１送信バッファに設定されたコマンドの読み出し位置を記憶する出力ポインタを備え、その出力ポインタの値の更新は、その出力ポインタの更新後の値と前記第１送信バッファのサイズマイナス１の値とで２進数によるアンド論理をとった結果を前記出力ポインタの値として行われることを特徴とする遊技機７。遊技機７によれば、出力ポインタの値の更新は、出力ポインタの更新後の値にアンド論理をした結果の値とするだけなので、第１送信バッファがリングバッファとして構成され、更新後の出力ポインタの値が第１送信バッファのサイズオーバーをした場合などに条件分岐命令を用いることなく、出力ポインタの更新を簡易に行うことができる。なお、ｎは自然数である。
【００８０】
遊技機７において、前記第１送信バッファへのコマンドの設定位置を記憶する入力ポインタを備え、その入力ポインタの値の更新は、その入力ポインタの更新後の値と前記第１送信バッファのサイズマイナス１の値とで２進数によるアンド論理をとった結果を前記入力ポインタの値として行われることを特徴とする遊技機８。遊技機８によれば、入力ポインタの値の更新は、入力ポインタの更新後の値にアンド論理をした結果の値とするだけなので、第１送信バッファがリングバッファとして構成され、更新後の入力ポインタの値が第１送信バッファのサイズオーバーをした場合などに条件分岐命令を用いることなく、入力ポインタの更新を簡易に行うことができる。
【００８１】
請求項１記載の遊技機または遊技機１から８のいずれかにおいて、電源断後もデータを保持するデータ記憶手段と、停電発生時に停電信号を出力する停電監視手段と、その停電監視手段から停電信号が出力された場合に、データを前記データ記憶手段へ退避すると共に制御の中断処理を実行する停電時手段と、停電解消後にその停電時手段によって前記データ記憶手段へ退避されたデータを復帰して中断した処理を再開する復電手段とを備え、前記停電時手段は、割込の禁止設定が可能な割込処理の中で所定のタイミングで実行されるものであることを特徴とする遊技機９。
【００８２】
スロットマシンやパチンコ機の制御は、停電等の発生によって電源が突然切断されても、停電の解消後（電源の再入時）には電源断時の状態から遊技が再開されるように構成されている。停電の解消後に電源断時の状態から遊技を再開するためには、停電発生時に、所定の停電時処理を実行する必要がある。かかる停電時処理は、制御系の駆動電圧がダウンするまでの僅かな時間に完了しなければならない。よって、停電の発生後、直ちに停電時処理を実行するため、停電の発生を検出する停電監視回路を設け、停電の発生時にその停電監視回路から出力される停電信号を、割込の禁止設定ができないノンマスカブル割込端子に入力し、そのノンマスカブル割込によって停電時処理を実行する。これにより、停電発生時に停電時処理が即座に実行される。
【００８３】
しかしながら、停電時処理をノンマスカブル割込で行う場合、停電はいつ発生するのか分からないので、停電時処理がいつ実行されても支障のないように、メイン処理や他の割込処理をプログラムしなければならず、その結果、プログラムが煩雑化すると共に大容量化するという問題点がある。例えば、データの更新を行う場合には、通常、そのデータの更新とその更新の完了の記憶とをする必要がある。しかし、停電時処理をノンマスカブル割込で行うと、データの更新後であってその更新の完了の記憶前に停電時処理が実行される場合があり、かかる場合には、停電解消後の復電処理において、データの更新の完了が記憶されていないので、既に更新されているデータを再度更新することになり、プログラムが暴走する。このため、停電時処理をノンマスカブル割込で行う場合、データの更新後であってその更新の完了の記憶前に停電時処理が実行された場合には、停電解消後の復電処理において、データの再更新を行わないようにプログラムする必要があり、その結果、プログラムが煩雑化すると共に大容量化するのである。このようなケースは、データの更新を行う場合に限られず、プログラム中に多々存在する。
【００８４】
遊技機９によれば、停電時手段は、停電監視手段から停電信号が出力された場合に、データをデータ記憶手段へ退避すると共に制御の中断処理を実行するものである。この停電時手段は、割込の禁止設定が可能な割込処理の中で所定のタイミングで実行されるので、他の制御に支障を来すことのない好適なタイミングで実行される。よって、停電時手段の実行タイミングを考慮することなく、メイン処理や割込処理をプログラムできるので、その分、プログラムを簡略化できると共に、そのプログラムの小容量化を図ることができる。
【００８５】
遊技機９において、前記データ記憶手段は、遊技の状態を示すメモリやフラグの各記憶エリアと、スタックエリアとを有しており、前記停電時手段は、前記停電監視手段から停電信号が出力された場合にスタックポインタの値を前記データ記憶手段へ退避すると共に、前記復電手段は、停電解消後にそのデータ記憶手段へ退避された値をスタックポインタへ復帰するものであることを特徴とする遊技機１０。スタックポインタの値は、停電発生時に停電時手段によりデータ記憶手段に退避されて電源断中も保持され、停電解消時には復電手段によりデータ記憶手段からスタックポインタへ復帰される。メモリやフラグの各記憶エリア及びスタックエリアは、電源断後もデータを保持可能なデータ記憶手段に設けられているので、このデータ記憶手段へ停電発生時にスタックポインタの値を記憶することにより、電源断後においても遊技の状態を保持して、停電解消後に遊技を再開することができる。
【００８６】
遊技機９または１０において、前記停電時手段が実行される所定のタイミングは、前記割込処理におけるレジスタの退避処理後のタイミングであることを特徴とする遊技機１１。停電時手段は、レジスタの退避処理後に実行されるので、停電時手段にてレジスタの退避処理を実行する必要がなく、その分、プログラムを小容量化できる。
【００８７】
遊技機９から１１のいずれかにおいて、前記割込処理は定期的に実行されるものであることを特徴とする遊技機１２。停電時手段は定期的に実行される割込処理の中で且つ所定のタイミングで実行されるので、割込処理の中の他の処理を分断することなく且つ特定のタイミングで、停電時手段を実行することができる。よって、停電時手段がイレギュラーなタイミングで実行されることを考慮することなく、他の処理（割込処理のみならずメイン処理も含む）をプログラムすることができるので、プログラムの簡略化と小容量化とを図ることができる。
【００８８】
遊技機９から１２のいずれかにおいて、前記停電時手段は、前記割込処理において戻り先番地をスタックエリアへ記憶した後に処理を前記停電時手段へ移行することにより実行されるものであることを特徴とする遊技機１３。停電時手段は、停電時手段の実行後の戻り先番地がスタックエリアに記憶された後に実行される。よって、復電手段は停電解消後に復電に伴う各処理（以下「復電処理」と略す）を実行した後にリターン命令を実行するだけで（又はスタックエリアに記憶された戻り先番地をＭＰＵのプログラムカウンタにセットするだけで）、制御の実行番地を戻すことができ、プログラムを簡略化して小容量化することができる。なお、戻り先番地をスタックエリアへ記憶した後に停電時手段へ処理を移行するものとしては、停電時手段をコールするコール命令の実行や停電時手段の実行前にＭＰＵのプログラムカウンタの値をスタックエリアへ退避しその後停電時手段へのジャンプ命令を実行するものが例示される。
【００８９】
遊技機１３において、戻り先番地をスタックエリアへ記憶した後に処理を前記停電時手段へ移行する処理は、プログラム中の１カ所にのみ設けられていることを特徴とする遊技機１４。よって、停電時手段の実行後の戻り先番地、即ち復電手段による復電処理後に再開されるプログラムの番地も１カ所になる。従って、復電処理後には毎回同じ番地からプログラムを再開することができるので、プログラム再開時のイレギュラーな処理が不要となり、再開処理を簡略化してプログラムを小容量化することができる。
【００９０】
遊技機９から１４のいずれかにおいて、前記停電監視手段から停電信号が出力された場合に実行される割込の禁止設定が不可能なノンマスカブル割込手段と、そのノンマスカブル割込手段の実行により停電の発生を記憶する停電記憶手段とを備え、前記停電時手段はその停電記憶手段に停電の発生が記憶されている場合に実行されるものであることを特徴とする遊技機１５。遊技機１５によれば、ノンマスカブル割込手段によって停電の発生を即座に記憶し、その記憶に基づいて、割込の禁止設定が可能な割込処理の中で所定のタイミングで停電時手段を実行することができる。よって、他の制御に支障を来すことのない好適なタイミングで、停電時手段を迅速に実行することができる。
【００９１】
遊技機９から１４のいずれかにおいて、前記停電時手段は、割込の禁止設定が可能な前記割込処理の中で、前記停電監視手段から出力される停電信号の出力状態を確認し、その停電信号が出力されている場合に実行されるものであることを特徴とする遊技機１６。遊技機１６によれば、停電監視手段から出力される停電信号の出力状態を、ポート入力して確認し、停電信号が出力されている場合に停電時手段を実行することができる。
【００９２】
遊技機９から１６のいずれかにおいて、前記停電時手段は、スタックポインタの値を前記データ記憶手段へ退避する退避処理と、その退避処理の後に実行され前記データ記憶手段のチェックサムを算出する算出処理と、その算出処理によって算出されたチェックサムを２の補数化して前記データ記憶手段へ書き込む補正処理と、前記停電信号の出力状態を確認しその停電信号が出力されていない場合には前記停電時手段により中断された制御を再開する停電信号再確認処理とを有しており、その停電信号再確認処理は、前記算出処理の実行後に実行されるものであることを特徴とする遊技機１７。算出処理の実行時間は、データ記憶手段の容量に応じて変化するものの比較的長い（実施例では８７０μｓ）。よって、その算出処理の実行後に停電信号の出力状態を再確認し、停電信号が出力されている場合に停電時における処理を継続し、出力されていない場合には停電時における処理を終了して停電時手段により中断した制御を再開する。これにより、ノイズなどの影響によって停電信号が誤検出（或いは誤出力）された結果、停電時手段が実行されても、元の制御へ復帰することができる。
【００９３】
遊技機１７において、前記停電時手段は、所定の停電時における処理の実行後に制御を無限ループさせて制御系の駆動電圧がダウンするのを待機するものであり、前記停電信号再確認処理は、その無限ループ中に設けられていることを特徴とする遊技機１８。無限ループ時に停電が解消し、停電信号の出力が解除された場合には、停電信号再確認処理によって、停電時における処理が終了され、停電時手段により中断された制御が再開される。よって、停電が一旦発生しても、その停電が制御系の駆動電圧がダウンする前に解消すれば、制御を無限ループによって停止することなく再開することができる。
【００９４】
遊技機９から１８のいずれかにおいて、前記１のコマンドは２以上のデータで構成され、そのコマンドの２以上のデータのうち少なくとも１のデータの送信後であってそのコマンドの全データの送信完了前には、前記停電時手段の実行を待機する実行待機手段を備えていることを特徴とする遊技機１９。遊技機１９によれば、１のコマンドの全データの送信が完了した状態で停電時手段が実行されるので、コマンドの送信途中を考慮して停電時手段および復電手段を構成する必要がない。よって、その分、プログラムを簡略化して小容量化することができる。なお、停電時手段の実行の待機の態様としては、第１に、停電時手段の実行前にコマンドの送信状態を確認し、コマンドの全データの送信が未完了であれば、戻り先番地をスタックエリアへ記憶した後に処理を前記停電時手段へ移行する処理（例えば、停電時手段のコール命令）を未実行とするもの。第２に、一旦は停電時手段を実行し、その停電時手段の中でコマンドの送信状態を確認し、コマンドの全データの送信が未完了であれば、以降の停電時手段の各処理を未実行として停電時手段を終了するもの、などが例示される。
【００９５】
遊技機１９において、前記停電監視手段による停電信号の出力から、前記コマンドの全データの送信と前記停電時手段の実行とに充分な時間の間、制御系の駆動電圧を有効な状態に維持する電源手段を備えていることを特徴とする遊技機２０。コマンドの送信状況によって停電時手段の実行が最も遅れた場合においても、電源手段により制御系の駆動電圧は有効な状態に維持される。よって、停電時手段を正常に完了することができる。
【００９６】
請求項１記載の遊技機または遊技機１から２０のいずれかにおいて、前記遊技機はパチンコ機であることを特徴とする遊技機２１。中でも、パチンコ機の基本構成としては操作ハンドルを備え、その操作ハンドルの操作に応じて球を所定の遊技領域へ発射し、球が遊技領域内の所定の位置に配設された作動口に入賞（又は作動口を通過）することを必要条件として、表示装置において変動表示されている識別情報が所定時間後に確定停止されるものが挙げられる。また、特別遊技状態の発生時には、遊技領域内の所定の位置に配設された可変入賞装置（特定入賞口）が所定の態様で開放されて球を入賞可能とし、その入賞個数に応じた有価価値（景品球のみならず、磁気カードへ書き込まれるデータ等も含む）が付与されるものが挙げられる。
【００９７】
請求項１記載の遊技機または遊技機１から２０のいずれかにおいて、前記遊技機はスロットマシンであることを特徴とする遊技機２２。中でも、スロットマシンの基本構成としては、「複数の識別情報からなる識別情報列を変動表示した後に識別情報を確定表示する可変表示手段を備え、始動用操作手段（例えば操作レバー）の操作に起因して、或いは、所定時間経過することにより、識別情報の変動が停止され、その停止時の確定識別情報が特定識別情報であることを必要条件として、遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段とを備えた遊技機」となる。この場合、遊技媒体はコイン、メダル等が代表例として挙げられる。
【００９８】
請求項１記載の遊技機または遊技機１から２０のいずれかにおいて、前記遊技機はパチンコ機とスロットマシンとを融合させたものであることを特徴とする遊技機２３。中でも、融合させた遊技機の基本構成としては、「複数の識別情報からなる識別情報列を変動表示した後に識別情報を確定表示する可変表示手段を備え、始動用操作手段（例えば操作レバー）の操作に起因して識別情報の変動が開始され、停止用操作手段（例えばストップボタン）の操作に起因して、或いは、所定時間経過することにより、識別情報の変動が停止され、その停止時の確定識別情報が特定識別情報であることを必要条件として、遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段とを備え、遊技媒体として球を使用すると共に、前記識別情報の変動開始に際しては所定数の球を必要とし、特別遊技状態の発生に際しては多くの球が払い出されるように構成されている遊技機」となる。
【符号の説明】
【００９９】
１            スロットマシン（遊技機）
５１          ＭＰＵ
５２          ＲＯＭ
５３          ＲＡＭ（データ記憶手段）
５３ａ        停電フラグ
５３ｂ        スタックポインタ保存メモリ
５３ｃ        チェックサム補正値メモリ
５３ｄ        コマンドバッファ（第１送信バッファ）
５３ｅ        コマンドカウンタ
５３ｈ        復電コマンドバッファ（第２送信バッファ）
５３ｉ        復電コマンドカウンタ
Ｃ            主制御基板（主制御手段）
Ｓ            サブ制御基板（サブ制御手段）
【図１】
2014158765.tif 000003
【図２】
2014158765.tif 000004
【図３】
2014158765.tif 000005
【図４】
2014158765.tif 000006
【図５】
2014158765.tif 000007
【図６】
2014158765.tif 000008
【図７】
2014158765.tif 000009
【図８】
2014158765.tif 000010
【図９】
2014158765.tif 000011
【図１０】
2014158765.tif 000012