(57)【要約】【課題】電断状態が繰り返される場合でも、異常動作の可能性を低減化する。【解決手段】電源電圧の異常降下時に起動される割込み処理には、スタックポインタが示すスタック領域に保存するスタック処理（ＳＴ６１）と、スタックポインタの値を第一箇所に保存するポインタ記憶処理（ＳＴ６２）と、が設けられ、ＣＰＵのリセット時に起動される初期処理（ＳＴ１）には、第一箇所のデータを判定する第一判定処理（ＳＴ４４）と、第一箇所のデータが正当でない場合に報知動作を繰り返す報知処理（ＳＴ４９）と、第一箇所のデータが正当である場合に、第一箇所のデータをスタックポインタに格納するポインタ復帰処理（ＳＴ５０）と、スタック領域のデータをレジスタに格納するレジスタ復帰処理（ＳＴ５６）と、レジスタ復帰処理の後、スタック領域に記憶されたアドレス情報に基づいて、電源遮断時の制御処理を再開する動作復帰処理（ＳＴ５８）と、が設けられている。【選択図】図１０
2013252263.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵのリセット時に起動される初期処理と、電源電圧の異常降下時には実行中の制御処理を中断して起動され、中断した制御処理に関するアドレス情報をスタック領域に保存して動作する割込み処理と、を有して構成され、スタック領域とワーク領域とに区分された揮発性メモリの記憶内容を適宜に参照して制御処理を進行させると共に、電源遮断後も揮発性メモリの内容を維持することで、電断復帰後に電源遮断時の制御処理を再開可能に構成された遊技機であって、
前記割込み処理には、
ＣＰＵのレジスタの全部又は一部を、スタックポインタが示すスタック領域に保存すると共に、スタックポインタの値を順方向に更新するスタック処理と、スタック処理後のスタックポインタの値を、ワーク領域の第一箇所に保存するポインタ記憶処理と、が設けられ、
前記初期処理には、
第一箇所のデータが正当か否かを判定する第一判定処理と、第一箇所のデータが正当でない場合に機能して、エラー状態の報知動作を実行するか、揮発性メモリの内容を消去する異常対応処理と、第一箇所のデータが正当である場合に機能して、第一箇所のデータをスタックポインタに格納するポインタ復帰処理と、前記ポインタ復帰処理後のスタックポインタが示すスタック領域のデータをレジスタに格納すると共に、スタックポインタを逆方向に更新するレジスタ復帰処理と、前記レジスタ復帰処理の後、スタック領域に記憶されたアドレス情報に基づいて、電源遮断時の制御処理を再開する動作復帰処理と、が設けられていることを特徴とする遊技機。
【請求項２】
ＣＰＵのリセット時に起動される初期処理と、電源電圧の異常降下時には実行中の制御処理を中断して起動され、中断した制御処理に関するアドレス情報をスタック領域に保存して動作する割込み処理と、を有して構成され、スタック領域とワーク領域とに区分された揮発性メモリの記憶内容を適宜に参照して制御処理を進行させると共に、電源遮断後も揮発性メモリの内容を維持することで、電断復帰後に電源遮断時の制御処理を再開可能に構成された遊技機であって、
前記割込み処理には、
ＣＰＵのレジスタの全部又は一部を、スタックポインタが示すスタック領域に保存すると共に、スタックポインタの値を順方向に更新するスタック処理と、スタック処理後のスタックポインタの値を、ワーク領域の第一箇所に保存するポインタ記憶処理と、必要な処理を終えたことを示すキーコードをワーク領域の第二箇所に保存するコード記憶処理と、が設けられ、
前記初期処理には、
第二箇所にキーコードが検出されるか否かを判定する第二判定処理と、第二箇所にキーコードが検出されない場合に機能して、エラー状態の報知動作を実行するか、揮発性メモリの内容を消去する異常対応処理と、第二箇所にキーコードが検出される場合に機能して、第一箇所のデータをスタックポインタに格納するポインタ復帰処理と、ポインタ復帰処理の後に第一箇所と第二箇所のキーコードを消去する消去処理と、前記ポインタ復帰処理後のスタックポインタが示すスタック領域のデータをレジスタに格納すると共に、スタックポインタを逆方向に更新するレジスタ復帰処理と、前記レジスタ復帰処理の後、スタック領域に記憶されたアドレス情報に基づいて、電源遮断時の制御処理を再開する動作復帰処理と、が設けられていることを特徴とする遊技機。
【請求項３】
前記割込み処理には、
ワーク領域の第三箇所のデータをゼロにした上で、第三箇所を含んだ揮発性メモリの全部又は一部である演算範囲について、記憶内容の総和を算出する第一演算処理と、
第一演算処理が算出した総和の２の補数を算出して、これを第三箇所に格納する数値格納処理と、が更に設けられ、
前記初期処理に、前記演算範囲について、第三箇所の記憶内容を維持した状態で、記憶内容の総和を算出する第二演算処理が、更に設けられることで、
第二演算処理の演算結果がゼロでない場合には、無限ループ状にエラー状態の報知動作を繰り返す報知処理が実行されるよう構成されている請求項１又は２に記載の遊技機。
【請求項４】
前記初期処理には、ポインタ復帰処理の後に第三箇所のデータを消去する消去処理が更に設けられている請求項３に記載の遊技機。
【請求項５】
前記報知処理は、揮発性メモリのアクセスを禁止した状態で報知動作を実行する請求項１〜４の何れかに記載の遊技機。
【請求項６】
ＣＰＵがリセットされた後、前記動作復帰処理を経て電断前に中断された制御処理を再開するホットスタート動作と、電源遮断後も維持された揮発性メモリの全部又は一部の内容を消滅させることで、初期状態から制御処理を開始するコールドスタート動作とを設け、
係員が所定の係員操作をしていることを条件に、前記コールドスタート動作が機能するよう構成されている請求項１〜５の何れかに記載の遊技機。
【請求項７】
ＣＰＵのリセット時に起動される初期処理と、電源電圧の異常降下時には実行中の制御処理を中断して起動され、中断した制御処理に関するアドレス情報をスタック領域に保存して動作する割込み処理と、を有して構成され、スタック領域とワーク領域とに区分された揮発性メモリの記憶内容を適宜に参照して制御処理を進行させると共に、電源遮断後も揮発性メモリの内容を維持することで、電断復帰後に電源遮断時の制御処理を再開可能に構成された遊技機であって、
前記割込み処理には、
ＣＰＵのレジスタの全部又は一部を、スタックポインタが示すスタック領域に保存すると共に、スタックポインタの値を順方向に更新するスタック処理と、スタック処理後のスタックポインタの値を、ワーク領域の第一箇所に保存するポインタ記憶処理と、必要な処理を終えたことを示すキーコードをワーク領域の第二箇所に保存するコード記憶処理と、が設けられ、
前記初期処理には、
第二箇所にキーコードが検出されるか否かを判定する第二判定処理と、第二箇所にキーコードが検出されない場合に機能して、エラー状態の報知動作を実行するか、揮発性メモリの内容を消去する異常対応処理と、第二箇所にキーコードが検出される場合に機能して、第一箇所のデータをスタックポインタに格納するポインタ復帰処理と、前記ポインタ復帰処理後のスタックポインタが示すスタック領域のデータをレジスタに格納すると共に、スタックポインタを逆方向に更新するレジスタ復帰処理と、前記レジスタ復帰処理の後、スタック領域に記憶されたアドレス情報に基づいて、電源遮断時の制御処理を再開する動作復帰処理と、が設けられ、
前記割込み処理における、スタック処理、及び、コード記憶処理は、第二箇所にキーコードが検出されないことを条件に実行されるよう構成されていることを特徴とする遊技機。
【請求項８】
前記初期処理には、第二箇所にキーコードが検出される場合に機能して、その後、第二箇所のキーコードを消去する消去処理が設けられている請求項７に記載の遊技機。
【請求項９】
前記割込み処理には、
ワーク領域の第三箇所のデータをゼロにした上で、第三箇所を含んだ揮発性メモリの全部又は一部である演算範囲について、記憶内容の総和を算出する第一演算処理と、
第一演算処理が算出した総和の２の補数を算出して、これを第三箇所に格納する数値格納処理と、が更に設けられ、
第一演算処理及び数値格納処理は、第二箇所にキーコードが検出される場合にも実行されるよう構成されている請求項７又は８に記載の遊技機。
【請求項１０】
前記ポインタ復帰処理は、スタックポインタを使用する処理の直前に配置される請求項７〜９の何れかに記載の遊技機。
【請求項１１】
前記消去処理は、前記ポインタ復帰処理の直前に配置される請求項１０に記載の遊技機。
【請求項１２】
前記割込み処理は、マスク不能の割込み処理である請求項１〜１１の何れかに記載の遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ装置を内蔵する電子遊技機に関し、特に、回胴遊技機に好適に適用される。
【背景技術】
【０００２】
スロットマシンなどの回胴遊技機では、遊技者がメダル投入口にメダルを投入してスタートレバーを操作すると、これに応じて、回転リールの回転が開始される。そして、遊技者がストップボタンを押して回転リールを停止させたとき、有効な停止ライン（以下、有効ラインという）に図柄が揃うと、その図柄に応じた配当メダルが払い出されるようになっている。
【０００３】
但し、実際には、各ゲームの当否状態は、遊技者が停止操作を開始するまでに、主制御部における内部抽選処理（以下、図柄抽選処理ということがある）によって予め決定されており、この抽選処理によって内部当選した図柄を、遊技者が有効ライン上に揃えることで配当メダルが払出される。
【０００４】
ところで、遊技ホールの電源設備の不備や、電力会社による停電状態などによって、突然、遊技機への給電が停止される可能性も否定できない。そこで、このような電断時にも、その後の電断復帰後には、それまでの遊技状態を正しく再開できるよう、一般に、この種の遊技機にはバックアップ機能が設けられている。ここで、バックアップ機能は、ＲＡＭの記憶内容を維持するバックアップ電源と、電断状態を素早く検出してＲＡＭに必要なデータを保存するマスク不能割込み処理(Non Maskable Interrupt)などで実現されるのが一般的である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３２５７４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、極めて稀には、短い時間間隔で電断状態が繰り返される可能性もあり、その場合には、多重割込みが生じる結果として、プログラムが暴走して遊技機が異常な動作をすることになる。そこで、このような異常事態を考慮して、先行文献１に記載の発明では、電断復帰後、その電源電圧が安定化するまでは、ＲＡＭへのアクセスを禁止するようにしている。
【０００７】
しかし、このような対策を採ったとしても、ＲＡＭへのアクセスを許可した後に、繰り返し断電状態となる可能性もあり、この点まで考慮すると多重割込み対策としては十分とは言えない。
【０００８】
本発明は、上記の問題点に鑑みてなされたものであって、電断状態が繰り返される場合でも、異常動作が発生する可能性を更に低減化した遊技機を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、本発明は、請求項１に記載の通り、ＣＰＵのリセット時に起動される初期処理と、電源電圧の異常降下時には実行中の制御処理を中断して起動され、中断した制御処理に関するアドレス情報をスタック領域に保存して動作する割込み処理と、を有して構成され、スタック領域とワーク領域とに区分された揮発性メモリの記憶内容を適宜に参照して制御処理を進行させると共に、電源遮断後も揮発性メモリの内容を維持することで、電断復帰後に電源遮断時の制御処理を再開可能に構成された遊技機であって、前記割込み処理には、ＣＰＵのレジスタの全部又は一部を、スタックポインタが示すスタック領域に保存すると共に、スタックポインタの値を順方向に更新するスタック処理と、スタック処理後のスタックポインタの値を、ワーク領域の第一箇所に保存するポインタ記憶処理と、が設けられ、前記初期処理には、第一箇所のデータが正当か否かを判定する第一判定処理と、第一箇所のデータが正当でない場合に機能して、エラー状態の報知動作を実行するか、揮発性メモリの内容を消去する異常対応処理と、第一箇所のデータが正当である場合に機能して、第一箇所のデータをスタックポインタに格納するポインタ復帰処理と、前記ポインタ復帰処理後のスタックポインタが示すスタック領域のデータをレジスタに格納すると共に、スタックポインタを逆方向に更新するレジスタ復帰処理と、前記レジスタ復帰処理の後、スタック領域に記憶されたアドレス情報に基づいて、電源遮断時の制御処理を再開する動作復帰処理と、が設けられている。
【００１０】
また、本発明は、請求項２に記載の通り、ＣＰＵのリセット時に起動される初期処理と、電源電圧の異常降下時には実行中の制御処理を中断して起動され、中断した制御処理に関するアドレス情報をスタック領域に保存して動作する割込み処理と、を有して構成され、スタック領域とワーク領域とに区分された揮発性メモリの記憶内容を適宜に参照して制御処理を進行させると共に、電源遮断後も揮発性メモリの内容を維持することで、電断復帰後に電源遮断時の制御処理を再開可能に構成された遊技機であって、前記割込み処理には、ＣＰＵのレジスタの全部又は一部を、スタックポインタが示すスタック領域に保存すると共に、スタックポインタの値を順方向に更新するスタック処理と、スタック処理後のスタックポインタの値を、ワーク領域の第一箇所に保存するポインタ記憶処理と、必要な処理を終えたことを示すキーコードをワーク領域の第二箇所に保存するコード記憶処理と、が設けられ、前記初期処理には、第二箇所にキーコードが検出されるか否かを判定する第二判定処理と、第二箇所にキーコードが検出されない場合に機能して、エラー状態の報知動作を実行するか、揮発性メモリの内容を消去する異常対応処理と、第二箇所にキーコードが検出される場合に機能して、第一箇所のデータをスタックポインタに格納するポインタ復帰処理と、ポインタ復帰処理の後に第一箇所と第二箇所のキーコードを消去する消去処理と、前記ポインタ復帰処理後のスタックポインタが示すスタック領域のデータをレジスタに格納すると共に、スタックポインタを逆方向に更新するレジスタ復帰処理と、前記レジスタ復帰処理の後、スタック領域に記憶されたアドレス情報に基づいて、電源遮断時の制御処理を再開する動作復帰処理と、が設けられている。
【００１１】
上記各発明において、前記割込み処理には、ワーク領域の第三箇所のデータをゼロにした上で、第三箇所を含んだ揮発性メモリの全部又は一部である演算範囲について、記憶内容の総和を算出する第一演算処理と、第一演算処理が算出した総和の２の補数を算出して、これを第三箇所に格納する数値格納処理と、が更に設けられ、前記初期処理に、前記演算範囲について、第三箇所の記憶内容を維持した状態で、記憶内容の総和を算出する第二演算処理が、更に設けられることで、第二演算処理の演算結果がゼロでない場合には、無限ループ状にエラー状態の報知動作を繰り返す報知処理が実行されるよう構成されているのが好適である。ここで、前記初期処理には、ポインタ復帰処理の後に第三箇所のデータを消去する消去処理が更に設けられていると更に好適である。
【００１２】
また、上記各発明において、前記報知処理は、揮発性メモリのアクセスを禁止した状態で報知動作を実行するのが好適である。同様に、上記各発明において、ＣＰＵがリセットされた後、前記動作復帰処理を経て電断前に中断された制御処理を再開するホットスタート動作と、電源遮断後も維持された揮発性メモリの全部又は一部の内容を消滅させることで、初期状態から制御処理を開始するコールドスタート動作とを設け、係員が所定の係員操作をしていることを条件に、前記コールドスタート動作が機能するよう構成されているのが好適である。
【００１３】
更に、本発明は、請求項７に記載の通り、ＣＰＵのリセット時に起動される初期処理と、電源電圧の異常降下時には実行中の制御処理を中断して起動され、中断した制御処理に関するアドレス情報をスタック領域に保存して動作する割込み処理と、を有して構成され、スタック領域とワーク領域とに区分された揮発性メモリの記憶内容を適宜に参照して制御処理を進行させると共に、電源遮断後も揮発性メモリの内容を維持することで、電断復帰後に電源遮断時の制御処理を再開可能に構成された遊技機であって、前記割込み処理には、ＣＰＵのレジスタの全部又は一部を、スタックポインタが示すスタック領域に保存すると共に、スタックポインタの値を順方向に更新するスタック処理と、スタック処理後のスタックポインタの値を、ワーク領域の第一箇所に保存するポインタ記憶処理と、必要な処理を終えたことを示すキーコードをワーク領域の第二箇所に保存するコード記憶処理と、が設けられ、前記初期処理には、第二箇所にキーコードが検出されるか否かを判定する第二判定処理と、第二箇所にキーコードが検出されない場合に機能して、エラー状態の報知動作を実行するか、揮発性メモリの内容を消去する異常対応処理と、第二箇所にキーコードが検出される場合に機能して、第一箇所のデータをスタックポインタに格納するポインタ復帰処理と、前記ポインタ復帰処理後のスタックポインタが示すスタック領域のデータをレジスタに格納すると共に、スタックポインタを逆方向に更新するレジスタ復帰処理と、前記レジスタ復帰処理の後、スタック領域に記憶されたアドレス情報に基づいて、電源遮断時の制御処理を再開する動作復帰処理と、が設けられ、前記割込み処理における、スタック処理、及び、コード記憶処理は、第二箇所にキーコードが検出されないことを条件に実行されるよう構成されている。
【００１４】
本発明において、前記初期処理には、第二箇所にキーコードが検出される場合に機能して、その後、第二箇所のキーコードを消去する消去処理が設けられているのが好適である。また、これらの発明では、前記割込み処理には、ワーク領域の第三箇所のデータをゼロにした上で、第三箇所を含んだ揮発性メモリの全部又は一部である演算範囲について、記憶内容の総和を算出する第一演算処理と、第一演算処理が算出した総和の２の補数を算出して、これを第三箇所に格納する数値格納処理と、が更に設けられ、第一演算処理及び数値格納処理は、第二箇所にキーコードが検出される場合にも実行されるよう構成されているのが好適である。なお、請求項７〜９に記載の発明では、前記ポインタ復帰処理は、スタックポインタを使用する処理の直前に配置するのが好適であり、この場合には、前記消去処理は、前記ポインタ復帰処理の直前に配置されるのが好適である。
【００１５】
なお、請求項１、請求項２、請求項７に記載の各発明は、各々、特徴部分が相違するものの、各特徴部分は、特に排他的である部分を除き、交互に組み合わせることができ、適宜に特徴部分を組み合わせた発明も好適に機能する。また、何れの発明も、マスク可能な割込み処理でも機能するものの、マスク不能の割込み処理に適用する方が効果的である。
【発明の効果】
【００１６】
上記した本発明によれば、電断状態が繰り返される場合でも、異常動作が発生する可能性を更に低減することができる。
【図面の簡単な説明】
【００１７】
【図１】実施例に係るスロットマシンの正面図である。
【図２】図１のスロットマシンの右側面図（ａ）と平面図（ｂ）である。
【図３】スロットマシンの前面パネルを背面から図示した図面である。
【図４】スロットマシンの本体ケースの内部正面図である。
【図５】図１のスロットマシンの回路構成を示すブロック図である。
【図６】主制御基板の回路構成を示すブロック図である。
【図７】カウンタ回路を示す回路図である。
【図８】電源基板の回路構成を示すブロック図である。
【図９】主制御部におけるメイン処理を説明するフローチャートである。
【図１０】図９の一部である第１実施例の初期処理を説明するフローチャートである。
【図１１】第１実施例と第２実施例の電断割込みＮＭＩ処理を説明するフローチャートである。
【図１２】ＮＭＩ処理時のメモリの内容を説明する図面である。
【図１３】第２実施例の初期処理を説明するフローチャートである。
【図１４】タイマ割込み処理を説明するフローチャートである。
【発明を実施するための形態】
【００１８】
以下、実施例に基づいて本発明を更に詳細に説明する。図１〜図４は、実施例に係るスロットマシンＳＬを図示したものである。本スロットマシンＳＬは、矩形箱状の本体ケース１と、各種の遊技部材を装着した前面パネル２とが、ヒンジ３を介して連結され、前面パネル２が本体ケース１に対して開閉可能に構成されている（図２）。そして、図１は前面パネル２の正面図、図２はスロットマシンＳＬの右側面図（ａ）と平面図（ｂ）、図３は前面パネル２の背面図、図４は本体ケース１の内部正面図を示している。
【００１９】
図４に示す通り、本体ケース１の略中央には、３つの回転リール４ａ〜４ｃを備える図柄回転ユニット４が配置され、その下側に、メダル払出装置５が配置されている。各回転リール４ａ〜４ｃには、ＢＢ図柄、ＲＢ図柄、各種のフルーツ図柄、及びリプレイ図柄などが描かれている。メダル払出装置５には、メダルを貯留するメダルホッパー５ａと、払出モータＭと、メダル払出制御基板５５と、払出中継基板６３と、払出センサ（不図示）などが設けられている。ここで、メダルは、払出モータＭの回転に基づいて、払出口５ｂから図面手前に向けて導出される。なお、限界量を越えて貯留されたメダルは、オーバーフロー部５ｃを通して、補助タンク６に落下するよう構成されている。
【００２０】
上記のメダル払出装置５に隣接して電源基板６２が配置され、また、図柄回転ユニット４の上部に主制御基板５０が配置され、主制御基板５０に隣接して回胴設定基板５４が配置されている。なお、図柄回転ユニット４の内部には、回胴ＬＥＤ中継基板５８と回胴中継基板５７とが設けられ、図柄回転ユニット４に隣接して外部集中端子板５６が配置されている。
【００２１】
図１に示すように、前面パネル２の上部には液晶表示ユニット７が配置されている。この表示ユニット７には、各種のキャラクタを表示することで遊技動作を効果的に盛り上げている。液晶表示ユニット７の下部には、回転リール４ａ〜４ｃに対応する３つの表示窓８ａ〜８ｃが配置されている。表示窓８ａ〜８ｃを通して、各回転リール４ａ〜４ｃの回転方向に、各々３個程度の図柄が見えるようになっており、合計９個の図柄の水平方向の三本と、対角線方向の二本が仮想的な停止ラインとなる。
【００２２】
このような表示窓８ａの左側には、遊技状態を示すＬＥＤ群９が設けられ、その下方には、遊技成果として払出されるメダル数を表示する払出表示部１０や、クレジット状態のメダル数を表示する貯留数表示部１１が設けられている。
【００２３】
払出表示部１０は、７セグメントＬＥＤを２個連設して構成されており、払出メダル数を特定すると共に、何らかの異常事態の発生時には、異常内容を表示するエラー表示器としても機能している。
【００２４】
前面パネル２の垂直方向中央には、メダルを投入するメダル投入口１２が設けられ、これに隣接して、メダル投入口１２に詰まったメダルを返却させるための返却ボタン１３が設けられている。また、クレジット状態のメダルを払出すクレジット精算ボタン１４と、メダル投入口１２へのメダル投入に代えてクレジット状態のメダルを擬似的に一枚投入する投入ボタン１５と、クレジット状態のメダルを擬似的に三枚投入するマックス投入ボタン１６とが設けられている。
【００２５】
これらの遊技部材の下方には、回転リール４ａ〜４ｃの回転を開始させるスタートレバー１７と、回転中の回転リール４ａ〜４ｃを停止させるためのストップボタン１８ａ〜１８ｃが設けられている。
【００２６】
遊技者がスタートレバー１７を操作すると、通常は、３つの回転リール４ａ〜４ｃが、正方向に正常回転を開始するが、内部当選状態を予告するリール演出時には、回転リール４ａ〜４ｃの全部又は一部が、変則的に回転した上で正常回転を開始することもある。
【００２７】
図１に示す通り、前面パネル２の下方には、メダルを蓄える横長の受け皿１９と、払出装置５の払出口５ｂに連通するメダル導出口２０とが設けられている。なお、メダル導出口２０の左右にはスピーカＳＰが配置されている。
【００２８】
図３に示すように、前面パネル２の裏側には、メダル投入口１２に投入されたメダルの選別を行うメダル選別装置２１と、メダル選別装置２１により不適正と判別されたメダルをメダル導出口２０に案内する返却通路２２とが設けられている。また、前面パネル３の裏側上部には、演出制御基板５１、演出インタフェイス基板５２、及び液晶制御基板６１などを収容する基板ケース２３が配置されている。そして、メダル選別装置２１の上部には、図１に示す各種の遊技部材と主制御基板５０との間の信号を中継する遊技中継基板５３が設けられている。
【００２９】
図５は、実施例に係るスロットマシンＳＬの回路構成を示すブロック図である。図示の通り、このスロットマシンＳＬは、回転リール４ａ〜４ｃを含む各種の遊技部材の動作を制御する主制御基板５０と、主制御基板５０から受けた制御コマンドに基づいて演出動作を実現する演出制御基板５１と、交流電圧（２４Ｖ）を直流電圧（５Ｖ，１２Ｖ，２４Ｖ）に変換して装置各部に供給する電源基板６２とを中心に構成されている。
【００３０】
主制御基板５０は、演出制御基板５１に対して、スピーカＳＰによる音声演出、ＬＥＤランプや冷陰極線管放電管によるランプ演出、及び、液晶表示ユニット７による図柄演出を実現するための制御コマンドを出力している。そして、演出制御部５１では、主制御基板５０から、内部抽選結果を特定する制御コマンド（遊技開始コマンド）受けると、内部抽選結果に対応してアシストタイム当選状態とするか否かのＡＴ抽選を実行している。
【００３１】
これらの動作のため、演出制御基板５１は、演出インタフェイス基板５２を通して、液晶制御基板６１に接続されており、液晶制御基板６１は、液晶表示（ＬＣＤ）ユニット７における適宜な図柄演出を実現している。
【００３２】
また、演出制御基板５１は、演出インタフェイス基板５２と共に、ＬＥＤ基板５９やインバータ基板６０や回胴ＬＥＤドライブ基板５８を経由して、各種のＬＥＤや冷陰極線管放電管におけるランプ演出を実現している。更にまた、演出制御基板５１は、演出インタフェイス基板５２を通してスピーカＳＰを駆動して音声演出を実現している。
【００３３】
主制御基板５０は、遊技中継基板５３を通して、スロットマシンの各種遊技部材に接続されている。具体的には、スタートレバー１７の始動スイッチ、ストップボタン１８ａ〜１８ｃの停止スイッチ、投入ボタン１５，１６の投入スイッチ、清算ボタン１４の清算スイッチ、前面パネル２の開閉を認識するドアセンサ、上流側センサＳ０を構成するレバー検知センサ、メダル通過センサＳ１，Ｓ２を構成するフォトインタラプタＰＨ１，ＰＨ２、不正メダルの通過を阻止するブロッカーをＯＮ／ＯＦＦ制御するブロッカーソレノイド３０、及び、各種ＬＥＤ素子９〜１１などに接続されている。
【００３４】
本実施例のメダル選別装置２１は、上流側センサＳ０（レバー検知センサ）と、メダル通過センサＳ１，Ｓ２（フォトインタラプタＰＨ１，ＰＨ２）と、ブロッカーソレノイド３０と、を内蔵して構成されており、メダル投入口１２に近接して最上流位置に上流側センサＳ０が配置され、ブロッカーを経由して、その下流位置に一対のメダル通過センサＳ１，Ｓ２が近接して配置されている（図６参照）。
【００３５】
上流側センサＳ０は、具体的には、メダル表面で押圧されて揺動するレバーＬＶと、レバーＬＶの揺動に対応してＯＮ／ＯＦＦ動作するフォトインタラプタＰＨと、を有して構成されている。そして、上流側センサＳ０は、メダル表面がレバーＬＶを押圧するメダル通過時にはＯＮ状態となり、メダルの通過後にＯＦＦ状態に復帰するよう構成されている。
【００３６】
ブロッカーは、上記した上流側センサＳ０の下流位置に配置され、ブロッカーソレノイド３０の通電時にはメダルの通過を許可する導入姿勢となり、非通電時には、メダルの通過を拒否する返却姿勢となる。
【００３７】
図５に示す通り、主制御基板５０は、回胴中継基板５７を経由して、回転リール４ａ〜４ｃを回転させる３つのステッピングモータ、及び、回転リール４ａ〜４ｃの基準位置を検出するためのインデックスセンサに接続されている。そして、ステッピングモータを駆動又は停止させることによって、回転リール４ａ〜４ｃの回転動作と、目的位置での停止動作を実現している。
【００３８】
また、主制御基板５０は、払出中継基板６３を通してメダル払出装置５にも接続されている。メダル払出装置５には、メダル払出制御基板５５と、メダル満杯センサと、メダル払出センサと、払出モータＭとが設けられており、メダル払出制御基板５５は、主制御基板５０からの制御コマンドに基づいて払出モータＭを回転させて、所定量のメダルを払出している。
【００３９】
メダル満杯センサは、補助収納庫にメダルが満杯状態になったオーバーフロー異常を検出し、メダル払出センサは、払出メダル枚数が不足する不足異常や、遊技機による払出動作を伴わない異常払出を検出している。その他、主制御基板５０は、外部集中端子板５６と、回胴設定基板５４にも接続されている。外部集中端子板５６は、例えばホールコンピュータＨＣに接続されており、主制御基板５０は、外部集中端子板５６を通して、メダルの投入枚数やメダルの払出枚数などを出力している。
【００４０】
また、回胴設定基板５４は、設定値の設定時に係員が操作する設定キーや、エラー状態の解除時や設定値の変更時に係員が操作するリセットスイッチからの信号を受けて、受けた設定キー信号や、リセットスイッチ信号を主制御基板５０に伝送している。ここで、設定値とは、当該遊技機で実行される抽選処理の当選確率などを、設定１から設定６まで６段階で規定するもので、遊技ホールの営業戦略に基づいて適宜に設定される。例えば、最高ランクに設定された遊技機は、メダル払出枚数の期待値が最高レベルであるため、遊技者にとって最も有利である。
【００４１】
図６は、主制御基板５０の回路構成を図示したものである。図示の通り、主制御基板５０は、ワンチップマイコン６４と、８ｂｉｔパラレルデータを入出力するＩ／Ｏポート回路６５と、ハードウェア的に乱数値を生成するカウンタ回路６６と、演出制御基板５１などの外部基板とのインタフェイス回路とを中心に構成されている。ここで、ワンチップマイコン６４は、Ｚ８０相当品のＣＰＵコア６４ａ、ＲＯＭ、ＲＡＭなどの他に、ＣＴＣ(Counter/Timer Circuit) ６４ｂや、割込みコントローラ６４ｃなどを内蔵している。
【００４２】
ＣＴＣ６４ｂは、８ｂｉｔのカウンタやタイマを集積した回路であり、Ｚ８０システムに、周期的割り込みや一定周期のパルス出力作成機能（ビットレートジェネレータ）や時間計測の機能を付与するものである。そこで、本実施例では、ＣＴＣ６４ｂを利用して、Ｚ８０ＣＰＵ６４ａに１．５ｍＳの時間間隔τでタイマ割込み(Maskable Interrupt)をかけている。
【００４３】
インタフェイス回路としては、電源回路とのインタフェイス回路６７、遊技中継基板５３とのインタフェイス回路６８と、回胴モータ駆動回路６９と、演出制御基板５１とのインタフェイス回路７０などが設けられている。そして、電源遮断時（電断時）には、インタフェイス回路６７を通して、Ｚ８０ＣＰＵ６４ａに電圧降下割込みをかけている。
【００４４】
インタフェイス回路７０は、演出制御基板５１に制御コマンドを出力するための８ビットパラレルポートであり、回胴モータ駆動回路６９は、回転リール４ａ〜４ｃのステッピングモータの駆動信号を生成する回路である。回転リール４ａ〜４ｃを回転させる３つのステッピングモータは、各々、２組の駆動巻線を有する二相モータであって、１相励磁と２相励磁とを繰り返す１−２相励磁によって駆動されている。
【００４５】
図６に示す通り、主制御基板５０のインタフェイス回路６８は、遊技中継基板５３を経由してメダル選別装置２１が接続されている。そして、上流側センサＳ０のセンサ信号Ｓ０は、入力回路ＩＮ０に入力され、メダル通過センサＳ１とメダル通過センサＳ２のセンサ信号Ｓ１，Ｓ２は、入力回路ＩＮ１、ＩＮ２に入力されている。また、ブロッカーソレノイド３０の通電状態は、出力回路によって制御されている。
【００４６】
図７は、カウンタ回路６６をより詳細に例示した回路図である。図示のカウンタ回路６６は、スタートレバー１７のＯＮ操作を示す始動スイッチ信号ＳＧを受ける入力部２４と、２つのＤ型フリップフロップ２５ａ，２５ｂによる信号取得部２５と、ハードウェア乱数の下位８ビット（ＬＯＷ）を生成するＩＣカウンタ２６Ｌと、ハードウェア乱数の上位８ビット（ＨＩ）を生成するＩＣカウンタ２６Ｈとを中心に構成されている。そして、ＩＣカウンタ２６Ｈ，２６Ｌの各出力端子（ＱＡ〜ＱＨ）は、データバスを通して、ワンチップマイコン６４（ＣＰＵコア６４ａ）に接続されている。
【００４７】
入力部２４は、抵抗とコンデンサによるローパスフィルタと、シュミットトリガ型のインバータとで構成されている。そのため、負論理の始動スイッチ信号ＳＧは、論理変換されて信号取得部２５に供給される。
【００４８】
信号取得部２５は、直列接続された２つのＤ型フリップフロップ２５ａ，２５ｂで構成されている。そして、各クロック端子ＣＬＫには、基準パルスΦが供給されており、基準パルスΦの立ち上がりエッヂのタイミングで、Ｄ入力端子のデータが取得されてＱ出力端子に出力される。したがって、始動スイッチ信号ＳＧがＬレベルに変化した後、２つ目の基準パルスΦの立ち上がりエッヂで、各ＩＣカウンタ２６Ｌ，２６Ｈのロック端子ＲＣＬＫが、Ｈレベルに立ち上がる。
【００４９】
基準パルスΦは、専用の発振回路によって、システムクロックとは別に発振させるのが好ましいが、簡易的には、ワンチップマイコン６４を動作させるシステムクロックを基準パルスΦに代用しても良い。
【００５０】
２つのＩＣカウンタ２６は、いずれも、８ビットのバイナリカウンタと８ビットの出力レジスタとを内蔵している。そして、クロック端子ＣＣＬＫに供給されるクロック信号を２進カウントする一方、ロック端子ＲＣＬＫに保持信号を受けると、その瞬間のバイナリカウンタのカウンタ値が、内蔵する出力レジスタに記憶されるようになっている。なお、出力レジスタに記憶されたカウンタ値は、出力イネーブル端子ＯＥがＬレベルであることを条件に、外部出力端子（ＱＡ〜ＱＨ）に出力される。
【００５１】
図示の通り、このカウンタ回路６６では、電源電圧値（ＤＣ５Ｖ）が正常値である限り、基準パルスΦが、ＮＡＮＤゲートを経由して下位ＩＣカウンタ２６Ｌのクロック端子ＣＣＬＫに供給される。一方、上位ＩＣカウンタ２６Ｈには、下位ＩＣカウンタ２６Ｌの桁上げ信号ＲＣＯが供給されている。そのため、２つのＩＣカウンタ２６は、全体として１６ビットカウンタとして機能することになり、２つの内部カウンタは、００００Ｈ〜ＦＦＦＦＨ（１０進数６５５３５）カウンタ値の間で循環することになる。なお、添字Ｈは、以下の場合も含め、１６進数を意味する。
【００５２】
先に説明した通り、始動スイッチ信号ＳＧがＬレベルに変化すると、これに対応して、各ＩＣカウンタ２６Ｌ，２６Ｈのロック端子ＲＣＬＫがＨレベルに立ち上がり、内部のバイナリカウンタの値が出力レジスタに保持される。一方、各ＩＣカウンタ２６Ｌ，２６Ｈの出力イネーブル端子ＯＥには、ワンチップマイコン６４からチップセレクト信号ＣＳ０，ＣＳ１が供給されている。そのため、ワンチップマイコン６４は、必要時に、チップセレクト信号ＣＳ０，ＣＳ１をＬレベルに変化させることによって、ＩＣカウンタ２６Ｌ，２６Ｈに内蔵の出力レジスタが保持するデータＱＡ〜ＱＨを取得できることになる。
【００５３】
図８は、電源基板６２の回路構成を示すブロック図である。この電源基板６２は、交流２４Ｖを受けて脈流電圧に変換する整流部８０と、脈流電圧を直流５Ｖに変換する第１電圧変換部８１と、脈流電圧を直流１２Ｖに変換する第２電圧変換部８２と、脈流電圧を直流２４Ｖに変換する第３電圧変換部８３と、第１電圧変換部８１の出力電圧を蓄電する蓄電部８４と、電源遮断状態を検出して検出信号ＲＥＳを出力する電源監視部８５とで構成されている。
【００５４】
蓄電部８４は、大容量（１ファラッド程度）のコンデンサＣと、過電流用の制限抵抗ｒ１、ｒ２と、逆方向電流を阻止するダイオードＤとで構成されている。なお、制限抵抗ｒ１は７５Ω程度、制限抵抗ｒ２は１０Ω程度である。コンデンサＣの両端電圧は、バックアップ電源として、ワンチップマイコン６４に供給されている。
【００５５】
このバックアップ電源は、ワンチップマイコン６４に内蔵されたＳＲＡＭ(static ram)に供給されており、電源電圧の遮断状態でも、通常７〜８日はＲＡＭ(Random Access Memory)の記憶内容を保持するようにしている。なお、ＲＡＭの記憶容量は、この実施例では、遊技機のワークエリアとして使用される５１２バイト程度である。
【００５６】
電源監視部８５は、交流入力電圧２４Ｖの電圧レベルと、直流電源電圧５Ｖの電圧レベルとを監視している。そして、何れか一方のレベルが所定値を下回ると、検出信号ＲＥＳがＬレベルに変化するよう構成されている。瞬停や停電などの異常時には、先ず、交流入力電圧の電圧降下に対応して、検出信号ＲＥＳが素早く出力される。
【００５７】
この検出信号ＲＥＳは、主制御基板５０のインタフェイス回路６７（図６）に供給されて、正論理の電源異常信号ＡＢＮと、負論理の電源異常信号ＡＢＮバーとなる。そして、正論理の電源異常信号ＡＢＮがＩ／Ｏポート回路６５に供給される一方、負論理の電源異常信号ＡＢＮバーは、ワンチップマイコン６４の割込み端子ＮＭＩ(Non Maskable Interrupt)に供給される。したがって、ＣＰＵコア６４ａが割込み許可状態であるか否かに拘らず、負論理の電源異常信号ＡＢＮバーに基づいて、電圧降下に対応する電断割込み（ＮＭＩ）処理（図１１）が開始されることになる。
【００５８】
図６のインタフェイス回路６７には電源リセット回路も内蔵されている。そして、電源投入時には、インタフェイス回路６７で生成されたリセット信号が、ワンチップマイコン６４のリセット端子ＲＳＴ１に供給される。その結果、ＣＰＵコア６４ａがリセット状態となり、ＲＯＭの先頭アドレス以降の制御プログラムの実行が開始されることになる。
【００５９】
続いて、主制御基板５０のワンチップマイコン６４（以下、主制御部５０という）が実現する制御動作を説明する。図９〜図１０は、主制御部５０が実行する制御プログラムを説明するフローチャートである。主制御部５０の制御プログラムは、電源投入時などＣＰＵがリセットされて開始される無限ループ状のメイン処理（図９〜図１０）と、ＣＴＣからの定期割込みで一定時間τ毎に起動されるマスク可能な(Maskable Interrupt)タイマ割込み処理（図１４）と、電断時に電源基板６２からの検出信号ＲＥＳで起動されるマスク不能の(Non Maskable Interrupt)ＮＭＩ割込み処理（図１１）とを有して構成されている。なお、図１１（ａ）は、第１実施例、図１１（ｂ）は、第２実施例を示している。
【００６０】
そこで、この実施例では、図１１（ａ）に示す第１実施例の電断割込み処理から説明する。先に説明した通り、電源監視部８５が瞬停や停電などの電源異常を検出すると、検出信号ＲＥＳが出力され、負論理の電源異常信号ＡＢＮバーに基づいて電断割込み（ＮＭＩ）処理が起動される。このとき、Ｉ／Ｏポート回路６５には、正論理の電源異常信号ＡＢＮが供給されているので、起動された電断割込み処理では、最初に、電源異常信号ＡＢＮの論理レベルを確認する（ＳＴ６０）。そして、電源異常信号ＡＢＮが正常レベルであれば、ノイズなどによる誤割込みであると判断して、何もしないで電断割込み処理を終える。
【００６１】
一方、電源異常信号ＡＢＮが異常レベルである場合には、ＰＵＳＨ命令を実行して、ＣＰＵのレジスタを２バイト毎にスタック領域（図１２（ａ）参照）に保存する（ＳＴ６１）。なお、Ｚ８０ＣＰＵのＰＵＳＨ命令（ＰＵＳＨ  ｑｑ）では、スタックポインタＳＰの値が−１された上で、スタックポインタＳＰの示すアドレスに、保存データの上位１バイト（ｑｑＨ）が保存され、更に−１されたスタックポインタＳＰの示すアドレスに、保存データの下位１バイト（ｑｑＬ）が保存される（図１１（ｃ）参照）。
【００６２】
保存対象となるレジスタは、何ら限定されないが、図１１に示す実施例では、Ｚ８０ＣＰＵのＡＦレジスタ（アキュムレータＡｃｃ＋フラグレジスタＦ）、ＢＣレジスタ、ＤＥレジスタ、ＨＬレジスタと、これらの裏レジスタ（ＡＦ’，ＢＣ’，ＤＥ’，ＨＬ’）を保存している。そのため、ステップＳＴ６１の処理終了時には、電断割込み起動時に保存された戻り番地のアドレス値（２バイト長○○○○）の他に、８×２バイト長のデータがスタック領域に保存されることなり、スタックポインタＳＰはＡＤ１番地を示している（図１２（ａ）参照）。
【００６３】
なお、図１２では、便宜上、ＲＡＭの内容を２バイト毎に記載しているが、実際には、１バイト毎にアドレスが付されている。また、○○○○は、電断割込みで中断され、電断復帰時に再開されるべき処理の先頭アドレス（戻り番地）であって、電断復帰後に実行されるＲＥＴ命令（図１０のＳＴ５８）に基づいて、プログラムカウンタＰＣに書き込まれるアドレス値を示している。
【００６４】
何れにしても、ステップＳＴ６１の処理が終われば、その時のスタックポインタＳＰの値を、ワーク領域のＢＵＦ番地に格納する（ＳＴ６２）。先に説明した通り、この時のスタックポインタＳＰは、ＰＵＳＨ命令を８回実行してＡＤ１番地を示しているので、ＢＵＦ番地には、アドレス値ＡＤ１が記憶される（図１２（ａ））。次に、ワーク領域のＣＨＫ番地にチェックコード５ＡＨを格納する（ＳＴ６３）。ここで、チェックコード５ＡＨは、スタックポインタＳＰの値を、ＢＵＦ番地に保存したことを示すコードであり、電断復帰時にチェックされる（図１０のＳＴ４３）。なお、Ｈは１６進数を意味する。
【００６５】
続いて、ＳＵＭ番地にゼロを格納した後（ＳＴ６４）、ＳＵＭ番地も含んだＲＡＭの全領域（ワーク領域＋スタック領域）について、８ビット加算演算を実行し、その総和値Σの２の補数をＳＵＭ番地に格納する（ＳＴ６５）。この格納処理によって、ＳＵＭ番地のデータが、総和値Σの２の補数値に変更された結果、ステップＳＴ６５の実行後は、ＲＡＭの全領域の総和値Σがゼロになる（Σ＝０）。そして、その後、ＲＡＭがアクセス禁止状態に制御されるので（ＳＴ６６）、これ以降は、電源遮断後も総和値Σ＝０の状態が維持されることになる。
【００６６】
次に、出力ポートのＯＦＦレベル（＝０）のデータを出力し、電源遮断までの時間を考慮した所定の時間を消費した後（ＳＴ６８）、制御プログラムの先頭番地（００００Ｈ）にジャンプする。図１０に示す通り、その後は、無限ループ状に電源異常信号ＡＢＮの判定を繰り返し、電断状態を待つことになる。
【００６７】
続いて、ＣＰＵがリセットされた後、或いは、図１１（ａ）のステップＳＴ６８の処理に続いて実行されるメイン処理（図９）について説明する。典型的には、電源が投入されるか、又は電源が復旧すると、ＣＰＵがリセットされて初期処理（ＳＴ１）が実行され、その後、電断前に実行されていた処理を再開してホットスタートするか、或いは、ステップＳＴ２の処理に移行してコールドスタートする。
【００６８】
初期処理（ＳＴ１）の内容は、概略、図９（ｂ）と図１０に示す通りであり、ステップＳＴ２０〜ＳＴ２４の処理は、重複して記載している。図９（ｂ）及び図１０に示す通り、最初に、スタックポインタＳＰの初期設定によってスタック領域が開放される。図１２（ａ）に示す通り、この実施例では、スタック領域の最終アドレスを、ＢＴＭ−１番地に設定しているので、ステップＳＴ２０の処理では、スタックポインタＳＰに、アドレス値ＢＴＭを初期設定することになる。
【００６９】
次に、ＣＰＵのその他のレジスタ類を初期設定すると共に、ワーク領域やスタック領域として機能するＲＡＭ全体をアクセス禁止状態に設定する（ＳＴ２１）。なお、ステップＳＴ２１の処理の結果、ＣＰＵは割込み禁止状態となる。続いて、電源異常信号ＡＢＮのレベルを判定して、これが異常レベルである限り、ステップＳＴ２０〜ＳＴ２１の処理を繰り返す（ＳＴ２２）。
【００７０】
一方、電源異常信号ＡＢＮが正常レベルであれば、先にアクセス禁止状態に設定されたＲＡＭを、アクセス許可状態に設定する（ＳＴ２３）。このように、本実施例では、電源異常信号ＡＢＮが異常レベルであるタイミングでは、ＲＡＭを書き換えることができないので、電断復帰時の電源電圧が不安定であっても、バックアップ電源によって維持されたＲＡＭ（ワーク領域＋スタック領域）の内容が破壊されるおそれがない。
【００７１】
次に、前面パネル２が開放状態か否かをドアセンサの出力に基づいて判定し（ＳＴ２４）、開放状態であれば、設定キーが挿入状態か否かを判定する（ＳＴ２５）。先に説明した通り、設定キーは、抽選処理の当選確率などを設定するために、営業開始前に係員によって操作される。そして、設定キーが挿入状態であれば、電源遮断前の設定キーの記憶領域などを除いて、ＲＡＭのほぼ全領域をクリアする（ＳＴ２６）。以上の説明から明らか通り、電源投入時に前面パネル２を開放して設定キーを挿入すると、電源遮断時に記憶保持されていたＲＡＭの内容は実質的に全て消滅する。そして、ステップＳＴ２０の処理で、スタック領域が開放されているので、その後、遊技動作が初期状態から正しく開始されることになる（ＳＴ２参照）。
【００７２】
その後の処理は、設定値の変更に関する処理であり、スタートレバーをＯＮ操作することなくリセットスイッチをＯＮ操作すると（ＳＴ２８〜ＳＴ２９）、ＯＮ操作のたびに設定値が＋１される（ＳＴ３０）。そして、設定値の設定が終わってスタートレバーをＯＮ操作すると、確定した設定値が表示されるので（ＳＴ３１）、その後に設定キーを抜くと、ステップＳＴ２の処理に移行して、初期状態から定常処理が開始される。
【００７３】
以上、図９（ｂ）に基づいて、前面パネル２が開放状態であった場合を説明したので、停電時からの復帰時のように、前面パネル２が閉鎖状態でＣＰＵがリセットされた場合について、図１０に基づいて説明する。前面パネル２が閉鎖状態である場合には、ステップＳＴ２４の処理に続いて、設定値が正常値であるかを判定する（ＳＴ４０）。そして、設定値が異常値であれば、ステップＳＴ４５以降のエラー処理を実行する。具体的には、検出した異常内容を特定して記憶すると共に（ＳＴ４５）、ＣＰＵを割込み禁止状態に設定する（ＳＴ４６）。
【００７４】
ここで、ステップＳＴ２１の処理に加えて、ステップＳＴ４６の処理で、ＣＰＵを割込み禁止状態に再設定するのは、電断復帰時の電源電圧が不安定であるような場合には、例えば、ステップＳＴ２３〜ＳＴ４４の区間で、電断割込み処理（ＮＭＩ）が実行され、その後の電断復帰処理（ＳＴ５０〜ＳＴ５８）を経て、ステップＳＴ２３〜ＳＴ４４の区間の中断処理が、割込み許可状態で再開される可能性もあるからである。
【００７５】
このような意義を有するステップＳＴ４６の処理を終えると、ＲＡＭをアクセス禁止状態に設定した上で（ＳＴ４７）、出力ポートにＯＦＦレベルのデータを出力した状態で、無限ループ状にエラー表示を繰り返す（ＳＴ４９）。
【００７６】
表示されるべきエラー内容には、前記した設定値エラーの他に、後述する総和値エラー、チェックコードエラー、スタックポインタエラーが存在するが、その何れのエラーであるかは、ステップＳＴ４５の処理でセットされており、エラー内容を特定してエラー表示される（ＳＴ４９）。そして、エラー表示に対応して、係員が設定キーを挿入した状態で、電源を遮断して復帰させと、ステップＳＴ２４→ＳＴ２５→ＳＴ２６〜ＳＴ３２の処理を経て、初期状態から遊技動作が正しく開始されることになる（図９参照）。
【００７７】
以上、設定値エラーについて説明したが、ステップＳＴ４０の判定において、設定値が正常範囲であれば、ＲＡＭの全領域について、その記憶値（８ビット長）の総和値Σを算出する総和演算を実行する（ＳＴ４１）。この総和演算は、図１１（ａ）のステップＳＴ６５の演算と同じであり、その演算領域にはＳＵＭ番地が含まれている（図１２（ａ）参照）。そして、このＳＵＭ番地には、電断割込み処理において、総和値Σの２の補数値を保存しているので（ＳＴ６５）、ステップＳＴ４１の演算結果は、本来、ゼロになる筈である。
【００７８】
したがって、総和値Σがゼロでない場合とは、電断割込み処理が正常に機能しなかったか、或いは、何らかの理由でＲＡＭの一部のデータが破壊されていることを意味する。そこで、このような総和値エラー時には、ステップＳＴ４５以降のエラー処理を実行する（ＳＴ４２）。
【００７９】
一方、総和値Σがゼロである正常時には、ステップＳＴ４２の判定に続いて、ＲＡＭのＣＨＫ番地の内容を判定する（ＳＴ４３）。ＣＨＫ番地には、電断割込み処理においてチェックコード（＝５ＡＨ）が保存されるので（ＳＴ６４）、ステップＳＴ４３の処理は、その保存内容の確認を意味する。そして、通常は、正しいチェックコードが検出される筈である（ＣＨＫ番地＝５ＡＨ）。但し、例えば、ＣＰＵが異常リセットされた場合、或いは、電断復帰時に、再度、電断したような場合には、正しいチェックコードが検出されないことがある（ＣＨＫ番地＝００Ｈ）。そこで、そのようなチェックコードエラー時には、ステップＳＴ４５以降のエラー処理を実行する（ＳＴ４３）。
【００８０】
一方、正しいチェックコードが検出された場合には、ＲＡＭのＢＵＦ番地の内容を判定する（ＳＴ４４）。ＢＵＦ番地には、電断割込み処理において、スタックポインタＳＰの値が保存されているので（ＳＴ６２）、ステップＳＴ４４の処理では、その保存値の正当性を判定する。具体的には、保存されているスタックポインタＳＰの値が、スタック領域を超えてワーク領域を示している場合や、スタック領域をほぼ使い切っている場合には、ＢＵＦ番地の保存値が異常であるとして、その後は、ステップＳＴ４５以降のエラー処理を実行する。
【００８１】
一方、ＢＵＦ番地の内容に異常が認められない場合には、ＢＵＦ番地の保存値をスタックポインタＳＰに書き込む（ＳＴ５０）。図１２（ａ）に示す通り、正常状態では、ＢＵＦ番地にはアドレス値ＡＤ１が記憶されているので、ステップＳＴ５０の処理を終えた後のスタックポインタＳＰは、スタックされたデータ群の最上位アドレス（ＡＤ１番地）を指すことになる。
【００８２】
続いて、ＳＵＭ番地と、ＣＨＫ番地と、ＢＵＦ番地の内容を全てゼロクリアする（ＳＴ５１〜ＳＴ５３）。また、停止操作に至らないタイミングで電断した回転リールの回転制御を初期状態に戻すべく、回胴制御フラグを初期設定し（ＳＴ５４）、出力ポートの出力状態をＯＦＦ状態から本来の値に復帰させる（ＳＴ５５）。
【００８３】
以上のようにして、遊技制御動作の再開に必要な初期設定処理が終われば、ＰＯＰ命令を複数回実行して、スタック領域に保存されているレジスタを復帰させる（ＳＴ５６）。先に説明した通り、ステップＳＴ５６の処理開始時には、スタックポインタＳＰがＡＤ１番地を差しているので、８回のＰＯＰ命令の実行によって、ＣＰＵのレジスタ群が復帰し、スタックポインタＳＰの値は、ＡＤ０番地を指すことになる。
【００８４】
そして、復帰したレジスタの値に基づいて、電断時のＣＰＵが割込み禁止状態であったか否かを判定し、もし、割込み許可状態であれば、ＣＰＵを割込み許可状態に設定する（ＳＴ５７）。そして、ＲＥＴ命令を実行することで（ＳＴ５８）、スタックポインタＳＰが指しているＡＤ０番地のアドレスデータ（戻り番地○○○○）をプログラムカウンタＰＣに設定する。以上の動作の結果、その後の処理は、○○○○番地に移行し、電断前の処理が再開されることになる。
【００８５】
ところで、電断復帰時の電源状態が不安定な場合には、予定した復帰動作を正常に実行できないことがある。しかし、本実施例では、ステップＳＴ４１〜ＳＴ５３の処理を設けているので、プログラムの暴走が効果的に防止されている。
【００８６】
以下、この点を説明するため、先ず、複数回の電断の繰り返しによって、スタック領域を重層的に使用した場合を想定する（想定例１）。すなわち、ＰＯＰ命令（ＳＴ５６）の実行前に、電断割込み処理が繰り返されると、スタック領域には、保存データが重層的にスタックされるので、遂にはワーク領域を侵食すると思われる（図１２（ｂ）参照）。
【００８７】
しかし、本実施例では、このような場合を想定して、ステップＳＴ４４の処理を設けているので、ワーク領域が侵食された場合、又は、侵食されそうになった場合には、ステップＳＴ５０以降の処理を実行することなく、ステップＳＴ４５以降のエラー処理に移行するので、プログラムの暴走を回避することができる。すなわち、最後の電断後の電断復帰時に、ステップＳＴ２０→・・・→ＳＴ４０→ＳＴ４１→ＳＴ４２→ＳＴ４３まで処理が正常に進行したとしても、ＢＵＦ番地の判定処理（ＳＴ４４）の後に、ステップＳＴ４５の処理に移行するので、ステップＳＴ５７のＲＥＴ命令が実行されることがなく、プログラム暴走が回避される。
【００８８】
次に、上記の想定例１とは別に、電断復帰時に繰返し電断状態となった場合であって、しかも、最終の電断タイミングが、ステップＳＴ２３〜ＳＴ４４の処理中であった場合を想定する（想定例２）。なお、この想定例２では、スタック領域には、十分な余裕があると仮定する。
【００８９】
このような場合、毎回の電断時に電断割込み処理が正しく実行されたとすると、総和値エラー（ＳＴ４２参照）や、チェックコードエラー（ＳＴ４３参照）は生じない。また、スタック領域にも余裕があるので、ステップＳＴ４４の処理も問題にならない。
【００９０】
しかし、多重割込みが生じた場合には、電断割込み処理のたびにＢＵＦ番地の内容が更新されるので、もはや、最初の電断割込み処理によって中断された処理に戻ることができない。この点は、想定例１の場合も同じであり、図１２（ｂ）は、最後の電断割込み処理が終わったタイミングでのスタック領域とワーク領域の状態を示している。
【００９１】
以下、便宜上、二度目の電断割込み処理が、最後の電断割込み処理であるとして説明する。一度目の電断割込み処理の終了時には、スタックポインタＳＰは、ＡＤ１番地を示しており、このタイミングでのＢＵＦ番地には、アドレス値ＡＤ１が記憶されていた筈である。しかし、二度目の電断割込み処理によってスタックポインタＳＰの値が変化して、ＡＤ２番地を示すことになり、ＢＵＦ番地には、アドレス値ＡＤ１に代えて、アドレス値ＡＤ２が格納される。そのため、二度目の電断割込み処理後に電断復帰して、各レジスタの値を復帰させた後に、××××番地には復帰できるものの、その後、本来の戻り番地である○○○○番地に復帰することはできない。
【００９２】
それだけでなく、ＲＥＴ命令（図１０のＳＴ５８）を実行して××××番地に復帰した後に、何らかの処理を経て、再度、ＲＥＴ命令（ＳＴ５８）を実行するようなことがあると、ＲＥＴ命令の実行によって、スタックされているレジスタ値（ＨＬ’の値）が、戻り番地としてプログラムカウンタＰＣに書き込まれるので、プログラムが暴走することになる。なお、この点は、想定例１の場合も同じである。
【００９３】
しかし、本実施例では、このような事態を想定して、電断割込み処理後の電断復帰時に、ＳＵＭ番地、ＣＨＫ番地、及びＢＵＦ番地をゼロクリアしているので（ＳＴ５１〜ＳＴ５３）、二度目の電断後の再開処理（××××番地から再開される処理）が、ステップＳＴ４４より手前の処理であれば、プログラムの暴走が回避される。
【００９４】
すなわち、ＲＥＴ命令（ＳＴ５８）の実行で××××番地に復帰したタイミングでは、ＳＵＭ番地、ＣＨＫ番地、及びＢＵＦ番地は、全てゼロクリアされているので（ＳＴ５１〜ＳＴ５３）、ステップＳＴ４１〜ＳＴ４４の何れかの処理に基づいて、ステップＳＴ４５以降のエラー処理が開始されることになり、再度のＲＥＴ命令の実行によるプログラムの暴走が回避される。
【００９５】
ところで、電断復帰時に繰返し電断状態となった場合であって、しかも、最終の電断タイミングが、ステップＳＴ５０〜ＳＴ５８の処理中であった場合（想定例３）では、プログラムの暴走が避けられない。
【００９６】
そこで、このような場合を想定する場合には、電断割込み処理を図１１（ｂ）のように構成するのが好ましい。この第２実施例では、電源異常信号ＡＢＳを判定した後（ＳＴ６０）、ＲＡＭをアクセス許可状態に設定した上で（ＳＴ６００）、ＣＨＫ番地の内容を判定している（ＳＴ６０１）。ここで、ＲＡＭをアクセス許可状態に設定するのは、電断復帰時の初期状態では、ＲＡＭがアクセス禁止状態であり（ＳＴ２１）、このアクセス禁止状態のタイミングで電断割込み（ＮＭＩ）があると、ＣＨＫ番地をアクセスできないからである。
【００９７】
ステップＳＴ６０１の処理によってＣＨＫ番地をアクセスした結果、ＣＨＫ番地にチェックコード（５ＡＨ）が検出される場合には、多重割込みが発生したことを意味する。そこで、多重割込み時には、ＰＯＰ命令を実行して（ＳＴ６０２）、電断割込み時のスタックポインタＳＰの値を＋２した上で、ステップＳＴ６４の処理に移行させる。なお、スタックポインタＳＰの値を＋２するのは、電断割込み時（ＮＭＩ）にスタックされた戻り番地を、事実上、消去して、スタック領域の重層的な使用を防ぐためである。
【００９８】
このように、図１１（ｂ）の第２実施例では、ＣＨＫ番地がクリアされていない限り、２度目以降の電断時に、スタック領域が無駄に消費されることがなく、また、ＢＵＦ番地の戻り番地（ＡＤ１番地）が書き換えられることもない。そのため、多重割込みが生じても、それが事実上無視されることになり、その後の電断復帰時に、本来の戻り番地（○○○○番地）に復帰することができる。
【００９９】
以上の通り、第２実施例では、ＣＨＫ番地がクリアされていない限り、多重割込みが回避される。したがって、ＣＨＫ番地をクリアする処理は、なるべくＲＥＴ命令のタイミングに近づけるのが好ましい。また、正常状態でありながら、ステップＳＴ４５以降のエラー処理を実行することを避けるためには、ＳＵＭ番地やＢＵＦ番地のクリア処理を設けないのも好適である。そこで、第２実施例の初期処理（ＳＴ１）では、図１３に示す通り、ＳＵＭ番地のクリア処理（図１０のＳＴ５１）の使用を排除している。なお、ステップＳＴ５５の処理までに、ＲＡＭの内容を変更する処理を設けない方が好ましいが、もしＲＡＭの内容が変化しても、図１１（ｂ）の電断割込み時には、ステップＳＴ６０１→ＳＴ６０２の処理を経て、総和演算（ＳＴ６４〜ＳＴ６５）が再実行されるので、電断復帰後のステップＳＴ４２の判定によってエラー処理に移行することはない。
【０１００】
また、第２実施例では、ＢＵＦ番地のクリア処理（図１０のＳＴ５３）についても、これを設けることなく、ＣＨＫ番地のクリア処理（ＳＴ７０）と、スタックポインタＳＰの復帰処理（ＳＴ７１）を設けている。また、レジスタの復帰処理（ＳＴ５８）の直前、つまり、スタックポインタＳＰを使用する処理の直前に、スタックポインタＳＰの復帰処理（ＳＴ７１）を設けることで、最大限、多重割込みの回避を図っている。
【０１０１】
以上の通り、この第２実施例では、ステップＳＴ５５以前のタイミングで電断割込みが生じると、ＳＵＭ番地の内容が更新されるだけで、その電断割込みが事実上無視されて、スタック領域、ＣＨＫ番地、及びＢＵＦ番地が変化せず、一方、ステップＳＴ５８が実行された後に電断割込みが生じると、電断割込み処理が正しく実行されるので、何れの場合も、プログラムの暴走が回避される。
【０１０２】
以上、電断割込み処理（図１１（ａ）（ｂ））と、電断復帰処理（図１０、図１３に示すホットスタート処理）について説明したので、図９に戻って、ステップＳＴ２以降のコールドスタート処理についても参考のために説明する。ステップＳＴ２の処理に移行すると、主制御部５０では、一連のメインループ処理（ＳＴ２〜ＳＴ１７）を定常的に繰返す。そして、最初に、ＲＡＭのワークエリアを適宜にクリアし、また、遊技制御を管理する各種のフラグを適宜に初期設定する（ＳＴ２）。次に、そのゲームにおける遊技状態フラグを生成する（ＳＴ３）。ここで、遊技状態フラグとは、現在のゲームが、「ボーナスゲーム中」か、「ボーナス内部当選中」か、「通常ゲーム中」か、などの遊技状態を特定するフラグである。
【０１０３】
続いて、メダル投入口１２から実際に投入されたメダル、及び、投入ボタン１５、１６の押下によって擬似的に投入されたメダルについての投入メダル管理処理が実行される（ＳＴ４）。投入メダル管理処理（ＳＴ４）では、遊技者が投入又は擬似投入したメダルを検出して、その投入枚数を判定し、その後、スタートレバー１７がＯＮ操作されるとサブルーチン処理を終了する。この場合、メダルが１枚投入される毎に、そのことを示す制御コマンド（投入コマンド）が送信バッファにセットされ、図１４に示すタイマ割込み処理のコマンド出力処理（ＳＴ８４）において、演出制御部５１に送信される。なお、このタイミングでは、遊技者による清算動作を示す清算コマンドなどが送信されることもある。
【０１０４】
スタートレバー１７がＯＮ操作されてメダル投入管理処理が終わると、スタートレバー１７がＯＮ操作に対応して、始動スイッチ信号ＳＧがＬレベルに変化し、その瞬間のカウンタ値が、各ＩＣカウンタ２６Ｈ，２６Ｌに内蔵された出力レジスタに保持記憶される（図７参照）。そこで、スタートレバー１７がＯＮ操作されると、ＩＣカウンタ２６Ｈ，２６Ｌに記憶されている乱数値が取得される（ＳＴ５）。具体的には、ワンチップマイコン６４は、チップセレクト信号ＣＳ０，ＣＳ１をＬレベルに変化させて、カウンタ回路６６に保持されているカウンタ値を取得し、これが、乱数値ＲＮＤ（数値範囲：０〜６５５３５）としてＲＡＭの該当番地に記憶される。
【０１０５】
次に、記憶した乱数値ＲＮＤに基づいて内部抽選処理（図柄抽選処理）を実行する（ＳＴ６）。この図柄抽選処理では、ボーナス図柄への当選か否か、小役図柄への当選か否か、再遊技を示すリプレイ図柄への当選か否かが決定され、決定された抽選結果を示す制御コマンド（遊技開始コマンド）が送信バッファにセットされ、タイマ割込み処理のコマンド出力処理（ＳＴ８４）によって演出制御部５１に送信される。なお、小役図柄としては、例えば、「チェリー図柄」、「ベル図柄」、「スイカ図柄」、「チャンス図柄」などを例示することができる。
【０１０６】
このような当選確率の内部抽選処理（ＳＴ６）が終われば、次に、リール演出を実行するか否かを決定するリール演出抽選処理を実行する（ＳＴ７）。リール演出抽選処理において選出可能な演出は、内部抽選処理（ＳＴ６）の結果に対応して規定されおり、内部当選状態を予告する演出となっている。
【０１０７】
リール演出抽選（ＳＴ７）が終われば、回転リール４ａ〜４ｃの回転を開始させるべく、回胴開始設定処理を実行する（ＳＴ８）。そいて、回転リール４ａ〜４ｃが回転を開始すると、回転開始コマンドを演出制御部５１に送信するべく、回転開始コマンドを送信バッファにセットした後、回胴停止処理（ＳＴ９）に移行する。
【０１０８】
そして、ストップボタン１８ａ〜１８ｃが押されたら、停止受付コマンドを演出制御部５１に送信するべく、停止受付コマンドを送信バッファにセットし、内部抽選処理（ＳＴ６）の当否結果に沿うように、対応する回転リール４ａ〜４ｃを停止制御する（ＳＴ９）。すなわち、内部抽選処理（ＳＴ６）の結果、何らかの内部当選状態であれば、遊技者の適切な停止操作を条件として、当選結果に合うよう回転リール４ａ〜４ｃの図柄を整列させる。但し、遊技者がストップボタンを押すタイミングや、停止操作の順番が不適切である場合には、ハズレ状態の図柄で停止される。この結果、折角の小役当選も無駄になるが、ボーナス当選については、次回のゲーム以降も持ち越される。但し、リール演出が実行された場合には、その示唆に沿って正しい停止操作を実行すれば、メダルの取りこぼしが回避可能となる。
【０１０９】
なお、この回胴停止処理（ＳＴ９）では、各回転リール４ａ〜４ｃについての停止制御が完了する毎に、停止位置を示す制御コマンド（停止結果コマンド）を演出制御部５１に送信するべく、停止結果コマンドが送信バッファにセットされる。
【０１１０】
このようにして、３回の停止操作と停止制御動作が完了して全ての回転リール４ａ〜４ｃが停止したら、有効ライン上に、当選図柄（当選役）が揃ったか否かが判定され、その結果を示す制御コマンド（入賞情報コマンド）を演出制御部５１に送信するべく、入賞情報コマンドが送信バッファにセットされる（ＳＴ１０）。また、当選図柄が揃っている場合には、必要数のメダルが払出されると共に、メダル払出を示す制御コマンド（払出コマンド）を演出制御部５１に送信するべく、払出コマンドが送信バッファにセットされる（ＳＴ１１）。
【０１１１】
次に、リプレイ当選状態か否か判定され（ＳＴ１２）、リプレイ当選状態であれば、再遊技動作の開始処理（ＳＴ１５）を実行した後、ステップＳＴ２に移行する。
【０１１２】
リプレイ当選状態でない場合には、現在がボーナスゲーム中か否か判定され（ＳＴ１３）、ボーナスゲーム中であれば、対応する処理（ＳＴ１６）を実行してステップＳＴ２に移行する。
【０１１３】
一方、ステップＳＴ１３の判定がＮＯの場合には、ボーナス図柄が揃っているか否か判定され（ＳＴ１４）、ボーナス図柄が揃っている場合には、ボーナスゲームの開始処理（ＳＴ１７）を実行した後、ステップＳＴ２に移行する。
【０１１４】
続いて、図１４に基づいて、所定時間毎（τ）に起動されるタイマ割込み処理について参考のために説明する。タイマ割込み処理では、ＣＰＵのレジスタが退避された後（ＳＴ８０）、各種スイッチ信号やセンサ信号を受ける入力ポートのデータが取得され記憶される（ＳＴ８１）。なお、センサ信号には、上流側センサのセンサ信号Ｓ０や、メダル通過センサのセンサ信号Ｓ１，Ｓ２が含まれており、その他、メダル払出センサ、メダル通過センサ、メダル満杯センサ、インデックスセンサ、ドアセンサなどのセンサ信号のデータも含めてメモリに記憶される。
【０１１５】
次に、回転リールの回転についての回転制御動作が実行され（ＳＴ８２）、各種のタイマ変数が更新される（ＳＴ８３）。なお、更新されるタイマ変数には、各々、ゼロになるまで、タイマ割込み毎にデクリメント処理される。
【０１１６】
続いて、送信バッファ（コマンドバッファ）に格納させている制御コマンドについて、コマンド出力処理（ＳＴ８４）を実行する。ここで、コマンド出力処理とは、送信バッファに設定されている制御コマンドを１バイト毎に演出制御部５１に伝送する処理である。
【０１１７】
コマンド出力処理（ＳＴ８４）が終われば、払出したメダルなどの情報をホールコンピュータに伝送し（ＳＴ８５）、各種ランプの表示動作を更新すると共に、回転リールを駆動するステッピングモータに励磁データを出力する（ＳＴ８６）。ここで、表示更新されるランプには、遊技開始ＬＥＤや、メダル投入許可ＬＥＤや、投入枚数ＬＥＤや、ステップＳＴ４９のエラー表示動作に関わるエラーランプが含まれている。そして、最後に、ステップＳＴ８０の処理で退避したレジスタをＣＰＵに復帰させて（ＳＴ８７）タイマ割込み処理を終える。
【０１１８】
以上、本発明の実施例について詳細に説明したが、具体的な記載内容は、何ら本発明を限定するものではない。例えば、実施例では、スロットマシンについて説明したが、ＮＭＩ処理を設けた弾球遊技機について本発明を適用することもできる。
【０１１９】
例えば、上記した各実施例では、エラー報知動作を無限ループ状に繰り返して（ＳＴ４９）、係員の対応を待ったが、ＲＡＭクリア処理を実行した上で、例えば、０番地にジャンプすることで、ＣＰＵリセット時の処理（ＳＴ１）を最初からやり直すのも好適である。なお、ステップＳＴ２の処理にジャンプさせても良い。
【符号の説明】
【０１２０】
ＳＬ        遊技機
ＳＴ１      初期処理
ＮＭＩ      割込み処理
ＳＴ６１    スタック処理
ＳＴ６２    ポインタ記憶処理
ＳＴ４４    第一判定処理
ＳＴ４９    報知処理
ＳＴ５６    レジスタ復帰処理
ＳＴ５８    動作復帰処理
【図１】
2013252263.tif 000003
【図２】
2013252263.tif 000004
【図３】
2013252263.tif 000005
【図４】
2013252263.tif 000006
【図５】
2013252263.tif 000007
【図６】
2013252263.tif 000008
【図７】
2013252263.tif 000009
【図８】
2013252263.tif 000010
【図９】
2013252263.tif 000011
【図１０】
2013252263.tif 000012
【図１１】
2013252263.tif 000013
【図１２】
2013252263.tif 000014
【図１３】
2013252263.tif 000015
【図１４】
2013252263.tif 000016