(57)【特許請求の範囲】
【請求項１】
無限ループ状に繰り返し実行されるメイン処理部と、このメイン処理部の実行中に所定時間毎の周期的な割込みにより実行される割込み処理部とを有し、前記割込み処理部で更新されるメインカウンタの値に基づいて遊技者に有利な状態を発生させるか否かを決定する遊技機であって、
前記メインカウンタが所定の数値範囲を一回ないし複数回循環した時にのみに機能して、次回の循環動作の初期値を決定する初期値変更処理を設け、
前記初期値変更処理では、その処理以前の初期値に、この時に取得されたサブカウンタの値を加算又は減算して新たな初期値を算出し、これを前記メインカウンタに設定しており、
前記サブカウンタは、ハードウェア構成で８ビット長の外部カウンタであるか、又はＣＰＵに内蔵された７ビット長のレジスタである遊技機。
【請求項２】
無限ループ状に繰り返し実行されるメイン処理部と、このメイン処理部の実行中に所定時間毎の周期的な割込みにより実行される割込み処理部とを有し、前記割込み処理部で更新されるメインカウンタの値に基づいて遊技者に有利な状態を発生させるか否かを決定する遊技機であって、
前記メインカウンタが所定の数値範囲を一回ないし複数回循環した時にのみに機能して、次回の循環動作の初期値を決定する初期値変更処理を設け、
前記初期値変更処理では、その処理以前の初期値に、この時に取得されたサブカウンタの値を加算又は減算して新たな初期値を算出し、これを前記メインカウンタに設定しており、
前記サブカウンタは、８ビット長であって前記メイン処理部及び前記割込み処理部の双方で、８ビットの全数値範囲を循環させるよう更新されている遊技機。
【請求項３】
前記メインカウンタの循環動作の数値範囲は、前記サブカウンタの循環動作の数値範囲より大きく設定されていることを特徴とする請求項１又は２に記載の遊技機。
【請求項４】
前記サブカウンタは、前記メイン処理部において、割込み禁止状態で更新されている特徴とする請求項２又は３に記載の遊技機。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パチンコ機、アレンジボール機、雀球遊技機、回胴式遊技機などの遊技機に関し、特に、無駄のないプログラム構成でありながら大当たり状態の発生タイミングを予測不能にした遊技機に関するものである。
【０００２】
【従来の技術】
パチンコ機などの弾球遊技機は、遊技盤に設けた図柄始動口と、複数個の図柄を所定時間変動させた後に停止させる図柄表示手段と、開閉板を開閉駆動する大入賞手段などを備えて構成されている。そして、図柄始動口に設けられた検出スイッチが遊技球の通過を検出すると、図柄表示手段が表示図柄を所定時間変動させ、その後、特別図柄が整列して停止すると、大入賞手段が機能して遊技者に有利な利益状態を発生させるようにしている。
【０００３】
この種の遊技機では、大当り用カウンタＣＴをソフトウェア的に実現すると共に、大当り確率が１／Ｎの場合、大当り用カウンタＣＴを０〜Ｎ−１の数値範囲内で循環動作させる一方、その数値範囲内の一つを大当り当選値Ｈｉｔに設定するようにしている。そして、図柄始動口に設けられた検出スイッチが遊技球の通過を検出した場合には、その時の大当り用カウンタＣＴの値を取得して大当り当選値Ｈｉｔと比較し、一致する場合にはその後の利益状態へと移行させている。なお、この大当り用カウンタＣＴは、電源投入後の初期処理によってゼロクリアされた後、所定周期ごとに発せられる割込み信号に応答してインクリメント（＋１）処理などによって更新されている。
【０００４】
ところで、大当り当選値Ｈｉｔは、遊技機を入手してプログラムを解析するだけで把握できる。従って、仮に、上記のような構成の遊技機に違法回路を取付けて電源投入後の割込み信号をカウントすれば、大当り用カウンタＣＴの値が大当り当選値Ｈｉｔに一致する大当りタイミングが分ることになる。しかも、この大当りタイミングは、その後もＮ個目の割込み信号に対応して規則的に到来するので、この大当りタイミングに合わせて図柄始動口の検出スイッチのＯＮ信号を違法回路で発生させれば、任意に大当り状態を実現できることになる。
【０００５】
そこで、このような違法行為に対処するために、大当り用カウンタＣＴの他にサブカウンタＳＵＢを用いることで、大当り用カウンタＣＴの値を不規則なものにすることが試みられている。この場合、サブカウンタＳＵＢは、０〜Ｎ−１の数値範囲を０から始めて循環動作する。また、大当り用カウンタＣＴは、０〜Ｎ−１の数値範囲を、サブカウンタＳＵＢで決まる初期値ＳＴＡＲＴから始めて循環動作する。
【０００６】
そして、大当り用カウンタＣＴが数値範囲Ｎを一周すると、その時のサブカウンタＳＵＢの値を取得して、それを新たな初期値ＳＵＢとして再び循環動作を繰り返すのである。このようにして大当り用カウンタＣＴの初期値ＳＴＡＲＴをランダムに変更すれば、大当りタイミングがＮ個目の割込み信号に対応して規則的に到来することがなくなり、不正行為の排除に大きな効果がある。
【０００７】
【発明が解決しようとする課題】
しかしながら、上記の構成の場合、サブカウンタＳＵＢは、大当り用カウンタＣＴの循環動作の初期値を決定するものであるから、サブカウンタＳＵＢの循環範囲は大当り用カウンタＣＴの循環範囲と一致させる必要があり、この点でプログラム処理上の大きな負担となっていた。
【０００８】
すなわち、大当り用カウンタの循環動作における数値範囲は、例えば３００のような任意の整数であるから、２進数Ｎビットの００００・・・０００（全部ゼロ）から１１１１・・・１１１（全部イチ）までのように単純には表現できない。そのため、大当り用カウンタＣＴだけでなく、サブカウンタＳＵＢについても、その数値の更新のたびに数値範囲を越えていないかの判定が必要となり、しかも、数値範囲を越えていれば、数値の変換処理も必要となり極めて煩雑である。
【０００９】
遊技機には使用可能なメモリ容量が限られているのであるから、省略可能な処理や他で代用できる処理は極力改善する必要がある。また、遊技機において複雑高度な遊技制御を実現するためには、遊技進行に合わせた極めて限られた時間内に多くの処理をすることが必要であり、極限的に無駄のないプログラム構成が要求される。
【００１０】
本発明は、このような要求に鑑みてなされたものであって、無駄のないプログラム構成でありながら不正遊技行為も未然に排除できる遊技機を提供することを課題とする。
【００１１】
【課題を解決するための手段】
上記課題を解決するために、本発明は、無限ループ状に繰り返し実行されるメイン処理部と、このメイン処理部の実行中に所定時間毎の周期的な割込みにより実行される割込み処理部とを有し、前記割込み処理部で更新されるメインカウンタの値に基づいて遊技者に有利な状態を発生させるか否かを決定する遊技機であって、前記メインカウンタが所定の数値範囲を一回ないし複数回循環した時にのみに機能して、次回の循環動作の初期値を決定する初期値変更処理を設け、前記初期値変更処理では、その処理以前の初期値に、この時に取得されたサブカウンタの値を加算又は減算して新たな初期値を算出し、これを前記メインカウンタに設定しており、前記サブカウンタは、ハードウェア構成で８ビット長の外部カウンタであるか、又はＣＰＵに内蔵された７ビット長のレジスタである。
【００１２】
また、本発明は、無限ループ状に繰り返し実行されるメイン処理部と、このメイン処理部の実行中に所定時間毎の周期的な割込みにより実行される割込み処理部とを有し、前記割込み処理部で更新されるメインカウンタの値に基づいて遊技者に有利な状態を発生させるか否かを決定する遊技機であって、前記メインカウンタが所定の数値範囲を一回ないし複数回循環した時にのみに機能して、次回の循環動作の初期値を決定する初期値変更処理を設け、前記初期値変更処理では、その処理以前の初期値に、この時に取得されたサブカウンタの値を加算又は減算して新たな初期値を算出し、これを前記メインカウンタに設定しており、前記サブカウンタは、８ビット長であって前記メイン処理部及び前記割込み処理部の双方で、８ビットの全数値範囲を循環させるよう更新されている。上記した各発明では、サブカウンタの値を用いた加減算処理によって初期値を変更するので、無駄のないプログラム構成とすることができる。具体的には、上限値を超えたか否かの判定や、上限値を越えた場合の数値変換処理などが不要となり、シンプルなプログラム構成となる。また、初期値が適宜に変更されるので不正遊技行為も未然に排除できる。
【００１３】
【発明の実施の形態】
以下、本発明の遊技機を実施例に基づいて更に詳細に説明する。図１は、実施例に係るパチンコ機の全体構成を図示したブロック図である。
【００１４】
図示のパチンコ機は、遊技動作を中心的に制御する主制御基板１と、液晶ディスプレイ８の動作を制御する図柄制御基板２と、音声的に遊技動作を盛上げる音声制御基板３と、ランプ類を点滅動作させて遊技動作を盛上げるランプ制御基板４と、遊技球を払出す払出制御基板５と、払出制御基板５に制御されて遊技球を発射する発射制御基板７と、ＡＣ２４Ｖを受けて装置各部に直流電圧を供給する電源基板６とを中心に構成されている。
【００１５】
主制御基板１、図柄制御基板２、音声制御基板３、ランプ制御基板４、払出制御基板５は、Ｚ８０ＣＰＵ相当品を内蔵したワンチップマイコンを備えるコンピュータ回路で構成されており、サブ制御基板２〜５は、主制御基板１からの制御コマンドに基づいて個別的な制御動作を実現している。
【００１６】
図２は、主制御基板１の回路構成を示すブロック図である。図示の通り、主制御基板１は、ワンチップマイコンからなるＣＰＵ回路１ａと、ＣＰＵ動作クロックＣＬＫの整数倍の周波数であるクロック信号Φ０を発生するシステムクロック発生部１ｂと、ＣＰＵからのアドレス信号に基づき各部のチップセレクト信号を生成するデコード回路１ｃと、ＣＰＵからのデータを出力するための出力ポート回路１ｄと、外部データをＣＰＵが取り込むための入力ポート回路１ｅと、各サブ制御基板２〜５に制御コマンドを出力する出力駆動回路１ｆと、遊技盤各部のスイッチ類のＯＮ／ＯＦＦ状態を入力するスイッチ入力回路１ｇとを中心に構成されている。
【００１７】
図３〜図５は、主制御基板１の制御プログラムを示すフローチャートである。主制御基板１の制御プログラムは、電源投入後に実行され通常は無限ループ処理（ＳＴ６〜ＳＴ９）で終わるシステムリセット処理プログラム（図３）と、所定時間毎に起動されるタイマ割込み処理（Maskable Interrupt禁止可能割込み）プログラム（図４）と、電源電圧が所定値を下回るとＮＭＩ（Non Maskable interrupt）信号によって駆動されてＣＰＵのレジスタ値をバックアップするＮＭＩ処理プログラム（不図示）とで構成されている。
【００１８】
以下、図３を参照しつつシステムリセット処理プログラム（メインルーチン）について説明する。このメインルーチンが開始されるのは、停電状態からの復旧時のように初期化スイッチ８５がＯＦＦ状態で電源がＯＮ状態になる場合と、パチンコホールの開店時のように、初期化スイッチ８５がＯＮ状態で電源がＯＮ状態になる場合とがある。
【００１９】
図３に示すメインルーチンでは、最初に、Ｚ８０ＣＰＵは、自らを割込み禁止状態に設定し、Ｚ８０ＣＰＵコアを含むワンチップマイコンの各部を初期設定する（ＳＴ１）。また、ＣＰＵは自らを割込みモード２に設定した後（ＳＴ２）、ＲＡＭクリア信号の値を判定する（ＳＴ３）。ＲＡＭクリア信号とは、ＲＡＭ領域を初期設定するか否かを示す信号であって、初期化スイッチ８５のＯＮ／ＯＦＦ状態に対応した値を有している。今、パチンコホールの開店時であって、初期化スイッチ８５がＯＮ状態で電源投入されたと仮定すると、ステップＳＴ３の判定がＹｅｓとなり、ＲＡＭのワークエリアが初期化され、その他のＲＡＭ領域がゼロクリアされると共に、ＣＰＵが割込み許可状態（ＥＩ）に設定される（ＳＴ５）。そして、その後は無限ループ状の乱数発生処理が行われる（ＳＴ６〜ＳＴ９）。
【００２０】
乱数発生処理では、先ず、外れ図柄用カウンタの更新が行われる（ＳＴ６）。この外れ図柄用カウンタは、図４の特別図柄処理（ＳＴ３４）における大当り判定処理の判定によって外れ状態となった場合に、どのような態様の外れゲームを演出するかを決定するためのカウンタである。次に、ＣＰＵは、自らを割込み禁止状態にした後（ＳＴ７）サブカウンタＳＵＢの値を更新する。この実施例では、サブカウンタＳＵＢは８ビット長のソフトウェアカウンタであり（具体的にはＳＵＢ番地の内容がカウンタ値を意味する）、インクリメント処理によって数値範囲０〜２５５を循環動作している。
【００２１】
インクリメント処理によるサブカウンタＳＵＢの更新処理が終われば、ＣＰＵは自らを割込み許可状態にして無限ループ状にステップＳＴ６〜ＳＴ９の処理を繰り返す（ＳＴ９）。このように、この実施例では、サブカウンタＳＵＢの更新中は割込み禁止状態に設定されているので、図４に示すタイマ割込みによって更新中のＳＵＢ番地の値が影響を受けることがない。
【００２２】
以下、説明をステップＳＴ３の処理に戻すと、停電状態からの復旧時のように、初期化スイッチ８５がＯＦＦ状態であった場合には、ステップＳＴ３の判定に続いて、バックアップフラグＢＦＬの内容が判定される（ＳＴ４）。バックアップフラグＢＦＬとは、ＮＭＩ処理において退避されていたバックアップデータが、元の状態に復帰されているか否かを示すデータであり、この実施例では、不図示のＮＭＩ割込み処理においてバックアップフラグＢＦＬが５ＡＨとされ、図３のステップＳＴ１５の処理においてゼロクリアされるようになっている。
【００２３】
今、停電状態からの復旧時であれば、図３のステップＳＴ４の判定において、バックアップフラグＢＦＬの内容が５ＡＨとなる。そこで、次にＣＰＵは、ＲＡＭのＳＰ記憶エリアから読み出した１６ビットデータをＣＰＵのスタックポインタＳＰに書き込む（ＳＴ１０）。次に、停電時のＮＭＩ処理においてバックアップされていたＲＡＭエリアのデータを読み出して、バックアップ復帰コマンドを作成する（ＳＴ１１〜ＳＴ１３）。
【００２４】
ここで払出制御基板用のバックアップ復帰コマンド作成処理（ＳＴ１１）とは、エラー信号を再チェックして、遊技機の現状に合わせた制御コマンドを払出制御基板５に出力するための準備動作を意味する。例えば、停電前に上皿が満杯であるエラー状態であった場合、バックアップデータによってエラー状態が保存されているが、停電によって遊技者が遊技球を回収する可能性も高いので、改めてエラー信号の現状を確認しているのである。
【００２５】
また、図柄制御基板用やランプ制御基板用のバックアップ復帰コマンド作成処理（ＳＴ１２、ＳＴ１３）とは、停電前の遊技機が、大当り状態であった場合や、当選確率が増加しているいわゆる確変状態であった場合もあるので、そのような場合には、動作状態に合わせた液晶ディスプレイ８の背景色を設定したり、効果音を発生できるようにするための処理である。
【００２６】
ステップＳＴ１１〜ＳＴ１３の処理が終われば、ＣＰＵはＰＯＰ命令を実行して、スタックエリアからＡＦレジスタを除く各レジスタ（ＢＣ，ＤＥ，ＨＬ）の値を復帰させる（ＳＴ１４）。この処理によって、停電時からの復帰処理は一応完了するので、そのことを示すべくバックアップフラグＢＦＬをゼロクリアする（ＳＴ１５）。最後に、停電前が割込み禁止状態であったか否かをチェックして（ＳＴ１６，ＳＴ１７）、ＡＦレジスタをスタックエリアから復帰させた後（ＳＴ１８，ＳＴ２０）、割込み禁止状態のままで処理を終えるか（ＳＴ１９）、或いは、割込み許可状態に戻して処理を終える（ＳＴ２１，ＳＴ２２）。なお、ステップＳＴ１９，ＳＴ２２のＲＥＴ命令が実行されることによって、スタック領域にＰＵＳＨ処理されていた中断時のＰＣ（プログラムカウンタ）の値が復元され、停電等により中断されていた処理が再開されることになる。
【００２７】
図４は、図３に示すメインルーチンの無限ループ処理（ＳＴ６〜ＳＴ９）の間に２ｍsec毎に生じるタイマ割込みＩＮＴ（Maskable Interrupt禁止可能割込み）の割込み処理プログラムの内容を示すフローチャートである。タイマ割込みが生じると、各レジスタの内容はスタック領域に退避され、乱数作成処理、スイッチ入力管理処理、エラー管理処理などが行われる（ＳＴ３０）。
【００２８】
ここで、乱数作成処理とは、普通図柄処理ＳＴ３３や特別図柄処理ＳＴ３４での抽選動作で使用される当り用カウンタＲＧや大当たり用カウンタＣＴの更新処理を意味する。また、乱数作成処理には、ステップＳＴ８で更新したサブカウンタＳＵＢの更なる更新処理も含んでいる。なお、この実施例では、サブカウンタＳＵＢと当り用カウンタＲＧは単純なインクリメント処理によって更新されているが、大当たり用カウンタ（メインカウンタ）ＣＴの更新処理については図５に基づいて後述する。
【００２９】
スイッチ入力管理処理とは、ゲートや電動チューリップなどを遊技球が通過したか否かの判定であり、遊技球が通過していれば、スイッチ入力がＯＮとなり、このスイッチ入力ＯＮを条件に、普通図柄処理ＳＴ３３や特別図柄処理ＳＴ３４において、カウンタＲＧ，ＣＴを用いて当り抽選や大当り抽選が行われることになる。なお、エラー管理処理は、機器内部に異常が生じていないかの判定である。
【００３０】
以上のような内容のステップＳＴ３０の処理が終われば、処理分けカウンタの値が判定されて、ＳＴ３２〜ＳＴ３６のうちの該当する処理が行われる。上記したエラー管理やスイッチ管理は、短い時間間隔で繰り返し行うべきであるが、一方、パチンコゲームの演出に係わる処理は遊技者のニーズに応じて複雑高度化するため、ある程度以上の処理時間を要することになる。そこで、この実施例では、全ての遊技制御動作を１回の割込み処理で完了させのではなく、５種類の処理に区分し、区分された各処理を割込み毎に分担して実行するようにしている。そのため、０〜４の範囲で循環動作する処理分けカウンタを設けて、処理分けカウンタの値に応じた処理を行うようにしている。
【００３１】
具体的に説明すると、処理分けカウンタが０の場合には大入賞口の開放などに関する処理を行い（ＳＴ３２）、処理分けカウンタが１の場合には当り状態（電動チューリップの開放）か否かに関する普通図柄処理を行い（ＳＴ３３）、処理分けカウンタが２の場合には大当り状態か否かに関する処理を行っている（ＳＴ３４）。例えば、ゲート通過スイッチがＯＮ状態であれば、普通図柄処理ＳＴ３３において、当りカウンタＲＧを用いた普通当りか否かの当否判定が行われ、図柄始動口の通過スイッチがＯＮ状態であれば、特別図柄処理３４において、大当りカウンタＣＴを用いた大当り判定が行われる。
【００３２】
また、処理分けカウンタが３の場合には、電動チューリップや大入賞口の開閉タイミングに関係するタイマ管理処理や、主制御基板から各制御基板に伝送されるコマンド作成処理が行われる（ＳＴ３５）。処理分けカウンタが４の場合には、情報出力やエラー表示コマンドの作成処理が行われる（ＳＴ３６）。
【００３３】
ステップＳＴ３２〜ＳＴ３６の何れかの処理が終わると、処理分けカウンタの値が更新された後（ＳＴ３７）、生成されているコマンドが各サブ制御基板に出力される（ＳＴ３８）。また、各レジスタの値が復帰されると共に割込み許可状態に変更されて、割込み処理ルーチンからメインルーチンに戻る（ＳＴ３９）。
【００３４】
図５は、ステップＳＴ３０の乱数作成処理のうち、大当り用カウンタ（メインカウンタ）ＣＴの更新処理を中心に具体的に図示したものである。なお、この例では大当り確率は１／３００とし、大当り用カウンタＣＴは、数値範囲ＭＡＸ（＝３００）を０〜２９９の間で循環的にインクリメントされることにする。図５に示す通り、最初に大当り用カウンタＣＴの値がインクリメントされ（ＳＴ６０）、大当り用カウンタＣＴの数値範囲ＭＡＸ（＝３００）を超えたか否か判断される（ＳＴ６１）。そして、大当り用カウンタＣＴの値がＭＡＸ＝３００に一致すると、大当り用カウンタＣＴの値が０に書き換えられる（ＳＴ６２）。
【００３５】
次に、大当り用カウンタＣＴの値が、今回の循環動作の初期値ＳＴＡＲＴと一致するか否かが判定される（ＳＴ６３）。ここで、大当り用カウンタＣＴの値が今回の循環動作の初期値ＳＴＡＲＴに一致すれば、カウンタの一巡動作が完了したことを意味する。そこで、ステップＳＴ８及びステップＳＴ５９の処理によって更新されているサブカウンタＳＵＢの値を取得して、初期値変数ＳＴＡＲＴにサブカウンタ値ＳＵＢを加算して、その結果を新たな初期値変数ＳＴＡＲＴとして再設定する（ＳＴ６４）。
【００３６】
ところで、このままでは、サブカウンタ値ＳＵＢを加算して得られた新たな初期値ＳＴＡＲＴが、大当り用カウンタの最大数値ＭＡＸを超えるおそれがある。そこで、新たな初期値ＳＴＡＲＴが、最大数値ＭＡＸ未満か否かが判定される（ＳＴ６５）。そして、もし初期値ＳＴＡＲＴが最大数値ＭＡＸ以上の場合には、初期値ＳＴＡＲＴから最大数値ＭＡＸを差し引いた値を、新たな初期値ＳＴＡＲＴに再設定する（ＳＴ６６）。そして、大当り用カウンタＣＴのカウンタ値を新たな初期値ＳＴＡＲＴに書き換える（ＳＴ６７）。
【００３７】
例えば、電源投入時の初期値ＳＴＡＲＴが０であれば、０→１→２…→２９８→２９９のように、大当り用カウンタＣＴが数値範囲（ＭＡＸ）を一巡するが、ステップＳＴ６３〜ＳＴ６７の処理によって、これ以降の循環動作の初期値ＳＴＡＲＴが、その時のサブカウンタの値ＳＵＢに基づいて変更される。
【００３８】
初期値変更用のサブカウンタの値ＳＵＢは、ステップＳＴ８及びステップＳＴ５９の処理において順次更新されるが、このサブカウンタ値が例えば４８であったとする。この場合、新たな初期値ＳＴＡＲＴは、現在の初期値（ＳＴＡＲＴ）０にサブカウンタ値（ＳＵＢ）４８を加えた４８に書き換えられる（ＳＴ６４）。そして、これ以降は、大当り用カウンタＣＴは、４８→４９→…→２９９→０→１→…→４６→４７のようにインクリメントされつつ、数値範囲（ＭＡＸ）を一巡することになる。
【００３９】
なお、本実施例においては、大当り用カウンタ値ＣＴが数値範囲を一巡した場合には、その時点のサブカウンタ値ＳＵＢを加算した値を、新たな初期値ＳＴＡＲＴに設定した例について説明したが、サブカウンタ値ＳＵＢを加算するのではなく、減算した値を新たな初期値ＳＴＡＲＴに設定してもよい。この場合、例えば現在の初期値ＳＴＡＲＴ＝１００で、大当り用カウンタＣＴが一巡して、現在の初期値１００へ戻ってきた場合を考える。そして、その時点のサブカウンタ値ＳＵＢが４８だったとする。この場合、大当り用カウンタＣＴには、現在の初期値１００からサブカウンタ値４８を引いた５２に書き換えられる。そして、これ以降は、大当り用カウンタＣＴは、５２→５３→…→２９９→０→１→…→５０→５１のようにインクリメントされつつ、数値範囲を一巡することになる。なお、初期値変更のために、現在の初期値ＳＴＡＲＴからサブカウンタ値ＳＵＢを引いた際に０未満になった場合には、ＭＡＸをプラスして数値範囲内の数値に変換するのは勿論である。
【００４０】
このように、大当り用カウンタＣＴが数値範囲内を一周すると、その時のサブカウンタ値ＳＵＢを加算するか或いは減算して、以降の循環動作の初期値ＳＴＡＲＴとするのである。このようにサブカウンタＳＵＢは、大当り用カウンタＣＴの値を偏移させる際の偏差を与えるだけであるから、大当り用カウンタと同じ数値範囲を循環させる必要はなく、この実施例のように８ビット長のソフトウェアカウンタとすることができる。
【００４１】
従って、サブカウンタＳＵＢの更新は、単なるインクリメント命令だけで足り、更新処理が極限的に簡素化される。本実施例のようにＺ８０ＣＰＵを使用する場合には、▲１▼ＬＤ  ＨＬ，ＳＵＢ  ▲２▼ＩＮＣ（ＨＬ）の命令だけで更新処理を終えることができ、数値範囲を越えたか否かの判定や、数値範囲を超えた場合の数値変換処理が全く不要となる。
【００４２】
なお、サブカウンタをハードウェアカウンタとして構成しても良く、８ビット長カウンタであればデータ入力処理に何の煩雑さもない。すなわち、サブカウンタＳＵＢの値が必要なタイミングで、単にＩＮ命令を実行するだけで大当り用カウンタＣＴの初期値を変更できる。更にまた、わざわざ外部カウンタを使用しなくても、例えばＺ８０ＣＰＵに内蔵されたハードウェアカウンタであるＲレジスタ（７ビット長）を使用することもできる。
【００４３】
ところで、サブカウンＳＵＢは、図３の無限ループ処理（ＳＴ６〜ＳＴ９）において循環的にインクリメントされているが、そのようなインクリメント処理中にも、所定周期（２ｍＳ）で図５の割込み処理プログラムが起動される。そこで、ステップＳＴ８のサブカウンタ値ＳＵＢのインクリメント処理を、特に割込み禁止状態で行う本実施例の意義について、図６を参照しつつ具体的に確認する。
【００４４】
先ず、本実施例とは異なり、サブカウンタＳＵＢのインクリメント処理（ＳＴ８）を割込み許可状態で行う場合を考える。この場合、ＣＰＵは、まずメモリに格納された現在のサブカウンタＳＵＢの値をＡレジスタに転送する（ＳＴ４０）。次に、そのＡレジスタの値をインクリメントして（ＳＴ４１）、その結果をサブカウンタＳＵＢへ転送して、更新処理を完了する（ＳＴ４２）。
【００４５】
ところが、このようなサブカウンタＳＵＢの更新処理は、図３のシステムリセット処理プログラムの無限ループ内だけでなく、その無限ループ処理中に所定周期で起動される図５のタイマ割込み処理プログラムにおいても行われる。従って、仮に、無限ループ内の乱数作成処理（ＳＴ８）の途中にタイマ割込み処理が入ると、重複した命令が繰り返し行われる不都合がある。
【００４６】
例えば、図６の右下ボックス内に示すように、サブカウンタ値ＳＵＢが１６であるとした場合において、ステップＳＴ８の更新処理にてメモリからサブカウンタＳＵＢの値（＝１６）がＡレジスタに転送された際に、図４のタイマ割込みが発生した場合について考える。この場合、タイマ割込みのサブカウンタの更新処理（図５のＳＴ５９）においては、再びメモリからＡレジスタにサブカウンタＳＵＢの値（＝１６）を転送し、そのＡレジスタをインクリメントした後、そのＡレジスタの内容をメモリに格納して、メインの無限ループ処理に復帰させる。なお、この時点の初期値カウンタＳＵＢは１７となっている。
【００４７】
そして、ステップＳＴ８の更新処理に復帰すると、当然ながら割込発生前の処理の続きを行うことになる。この例では、割込み発生前に、サブカウンタＳＵＢの値（＝１６）をＡレジスタに転送していたので、その続きの処理として、サブカウンタＳＵＢのインクリメント処理を続行することになる。つまり、Ａレジスタの値１６をインクリメントした後のＡレジスタの内容（＝１７）をメモリに格納することになる。これにより、サブカウンタ値が１７に書き換えられることになる。
【００４８】
ところが、このような処理では、サブカウンタＳＵＢに同一内容のインクリメント処理が２回続けて重複して行われることになる。図７（ｃ）はこの関係を図示したものである。サブカウンタＳＵＢの値が・・・→１５→１６と増加し、次に１７に更新されようとしているタイミングで割込みがかかったため（カッコつき１７の位置で更新完了の予定であった）サブカウンタＳＵＢは割込み処理プログラムのステップＳＴ５９において１７に更新された後、メインルーチンのステップＳＴ８において同じ１７に更新されている。
【００４９】
このように、無限ループ処理内でのサブカウンタの更新処理（ＳＴ８）とタイマ割込み処理内でのサブカウンタの更新処理（ＳＴ５９）とが重複すると、同じ数値が二度現われることになり、その結果、発生する数値列が乱数としての発生一様性が損なわれるおそれがある。そこで、この実施例では、無限ループ状のサブカウンタの更新処理（ＳＴ８）に先だって、割込み禁止を行う一方（ＳＴ７）、乱数作成処理の直後に、割込み許可を行っている（ＳＴ９）。
【００５０】
本実施例では、このような構成を採るので、図７（ｄ）に示すように、サブカウンタＳＵＢの値が１６から１７に更新されようとしているタイミングで割込みがかかっても、割込み処理が後回しとなり、サブカウンタＳＵＢが１６から１７に更新された後に、タイマ割込みの処理が開始されることになる。その結果、タイマ割込み後のサブカウンタ更新処理（ＳＴ５９）においてサブカウンタＳＵＢは１７から１８に更新され、発生する数値列の一様性が確保される。
【００５１】
但し、メインルーチンにおけるサブカウンタの更新処理（ＳＴ８）を割込み禁止状態で行うため、タイマ割込みの時間間隔が不正確なものとなる点は否定できない。そのため、サブカウンタの更新に係わる処理（ステップＳＴ７〜ＳＴ９）は、極力、短時間で終わらせるべきであり、８ビット構成のサブカウンタＳＵＢを採用する本実施例はその意味でも有効性が高い。
【００５２】
また、ＣＰＵの割込み端子に供給する割込みパルスのパルス幅ＰＷは、上記したサブカウンタの更新に係わる処理（ステップＳＴ７〜ＳＴ９）の処理時間τに基づいて、ＰＷ＞τに設定されている。これは、もしＰＷ＜τであると、割込み禁止状態で割込み信号を受けた場合、図７（ａ）に示すように、割込み許可状態となった時には、割込み信号が非活性レベル（Ｌレベル）に戻っていて割込み信号を読み落とす可能性があるからである。
【００５３】
本実施例では、例えば、▲１▼ＤＩ  ▲２▼ＩＮＣ  （ＨＬ）  ▲３▼ＥＩの３つの命令によってサブカウンタの更新に係わる処理（ステップＳＴ７〜ＳＴ９）を完了させることができるので、本来、一定時間毎に開始されるべきタイマ割込み処理に殆ど影響を与えず、要するに、タイマ割込み処理の計時機能を阻害することがない。しかも、割込み信号のパルス幅ＰＷは、上記▲１▼〜▲３▼に要する時間τより長く設定されているので（図７（ｂ）参照）、ＣＰＵが割込み信号の読み落とすこともない。
【００５４】
続いて、上記の弾球遊技機について更に追加的に説明する。図８は、本実施例のパチンコ機２２を示す斜視図であり、図９は、同パチンコ機２２の側面図である。
【００５５】
図８に示すパチンコ機２２は、島構造体に着脱可能に装着される矩形枠状の木製の外枠２３と、外枠２３に固着されたヒンジＨを介して開閉可能に枢着される前枠２４とで構成されている。なお、このパチンコ機２２は、カード式球貸し機２１に電気的に接続された状態で、パチンコホールの島構造体の長さ方向に複数個が配設されている。
【００５６】
ヒンジＨを介して外枠２３に枢着される前枠２４には、遊技盤２５が裏側から着脱自在に装着され、この遊技盤２５の前側に対応して、窓部を有するガラス扉２６と前面板２７とが夫々開閉自在に枢着されている。前面板２７には発射用の遊技球を貯留する上皿２８が装着され、前枠２４の下部には、上皿２８から溢れ出し又は抜き取った遊技球を貯留する下皿２９と、発射手段３０の発射ハンドル３１とが設けられている。
【００５７】
発射手段３０は、回動操作可能な発射ハンドル３１と、この発射ハンドル３１の回動角度に応じた打撃力で打撃槌３２（図１１）により遊技球を発射させる発射モータなどを備えている。上皿２８の右部には、カード式球貸し機２１に対する球貸し操作用の操作パネル３３が設けられ、この操作パネル３３には、カード残額を３桁の数字で表示するカード残額表示部３３ａと、所定金額分の遊技球の球貸しを指示する球貸しスイッチ３３ｂと、ゲーム終了時にカードの返却を指令する返却スイッチ３３ｃとが設けられている。
【００５８】
図１０に示すように、遊技盤２５には、金属製の外レールと内レールとからなるガイドレール３５がほぼ環状に設けられ、このガイドレール３５の内側の遊技領域２５ａには、カラーの液晶ディスプレイ（ＬＣＤモニタ）８、検出スイッチを備える図柄始動口（図柄始動手段兼入賞手段）３７、開閉式入賞手段（大入賞手段）３８、複数の普通入賞手段３９（上段の普通入賞手段３９以外に、開閉式入賞手段３８の左右両側部に６つの普通入賞手段３９）、２つのゲート４０（通過口）が夫々所定の位置に配設されている。
【００５９】
液晶ディスプレイ８は、変動図柄を表示するとともに背景画像や各種のキャラクタの動画などを表示する第１図柄表示手段４２（可変表示装置）として機能する。第１図柄表示手段４２は、背景画やキャラクタをアニメーション的に表示するとともに、左右方向に並ぶ３個（左、中、右）の図柄表示部４２ａ〜４２ｃを有し、図柄始動口３７に遊技球が入賞することを条件に、各図柄表示部４２ａ〜４２ｃの表示図柄が所定時間だけ変動表示（スクロール表示）され、図柄始動口３７への遊技球の入賞タイミングに応じた抽選結果に基づいて決定される停止図柄パターンで停止する。
【００６０】
液晶ディスプレイ８の直ぐ上側に、普通入賞手段３９と第２図柄表示手段４３とが設けられている。第２図柄表示手段４３は１個の普通図柄を表示する普通図柄表示部を有し、ゲート４０を通過した遊技球が検出されたとき、普通図柄表示部（可変表示装置）の表示図柄が所定時間だけ変動し、遊技球のゲート４０通過時点において抽選された抽選用乱数値により決定される停止図柄を表示して停止するようになっている。図柄始動口３７は、開閉自在な左右１対の開閉爪３７ａを備えた電動式チューリップであり、第２図柄表示手段４３の変動後の停止図柄が当り図柄を表示した場合に、開閉爪３７ａが所定時間だけ開放されて入賞し易くなっている。
【００６１】
開閉式入賞手段３８は前方に開放可能な開閉板３８ａを備え、第１図柄表示手段４２の変動後の停止図柄が「７７７」などの当り図柄のとき、「大当り」と称する特別遊技が開始され、開閉板３８ａが前側に開放される。この開閉式入賞手段３８の内部に特定領域３８ｂがあり、この特定領域３８ｂを入賞球が通過すると、特別遊技が継続される。ここで、特別遊技状態が遊技者に有利な第１状態に相当する。
【００６２】
開閉式入賞手段３８の開閉板３８ａが開放された後、所定時間が経過し、又は所定数（例えば１０個）の遊技球が入賞して開閉板３８ａが閉じるときに、遊技球が特定領域３８ｂを通過していない場合には特別遊技が終了するが、特定領域３８ｂを通過していれば最大で例えば１６回まで特別遊技が継続され、遊技者に有利な状態に制御される。
【００６３】
前枠２４の裏側には、図１１に示すように、遊技盤２５を裏側から押さえる裏機構板５０が着脱自在に装着され、この裏機構板５０には開口部５０ａが形成され、その上側に賞球タンク５３と、これから延びるタンクレール５４とが設けられ、このタンクレール５４に接続された払出手段５５が裏機構板５０の側部に設けられ、裏機構板５０の下側には払出手段（払出モータ）５５に接続された通路ユニット５６が設けられている。払出手段５５から払出された遊技球は通路ユニット５６を経由して上皿排出口２８ａ（図８）から上皿８に払出される。
【００６４】
裏機構板５０の開口部５０ａには、遊技盤２５の裏側に装着された裏カバー５７と、入賞手段３７〜３９に入賞した遊技球を排出する入賞球排出樋（不図示）とが夫々嵌合されている。この裏カバー５７に装着されたケース５８の内部に主制御基板１が配設され、その前側に図柄制御基板２が配設されている（図９）。主制御基板１の下側で、裏カバー５７に装着されたケース６１ａの内部にランプ制御基板４が設けられ、このケース６１ａに隣接するケース６１ｂの内部に音声制御基板３が設けられている。
【００６５】
これらケース６１ａ，６１ｂの下側で裏機構板５０に装着されたケース６４の内部には、電源基板６と払出制御基板５が夫々設けられている。この電源基板６には、図１１に示すように、電源スイッチ８０と初期化スイッチ８５とが配置されている。これら両スイッチ８０，８５に対応する部位はケース６４が切欠かれ、両スイッチ８０，８５の各々を指で同時に操作可能になっている。
【００６６】
また、発射手段３０の後側に装着されたケース６７の内部には、発射制御基板７が設けられている。これら制御基板１〜７は夫々独立の基板であり、電源基板６と発射制御基板７を除く制御基板１〜５には、ワンチップマイコンを備えるコンピュータ回路が搭載されており、主制御基板１と他の制御基板２〜５とは、複数本の信号線でコネクタを介して電気的に接続されている。
【００６７】
以上、本発明について具体的に説明したが、具体的な記載内容は特に本発明を限定するものではない。例えば、上記実施例では、基本的には大当り用カウンタＣＴが数値範囲を一周すると、その初期値を変更したが、数値範囲を複数回循環してから初期値を変更しても良い。
【００６８】
また、上記の実施例はサブカウンタＳＵＢの値を加減算することで、大当り用カウンタの初期値を変更するものであったが、これに代えて、ローテーション処理を用いても良い。すなわち、大当り用カウンタＣＴを特定ビット長のデータとし、この大当り用カウンタＣＴが一周すると、その時のサブカウンタＳＵＢ（例えば３ビットデータ）の値分だけ、大当り用カウンタＣＴのビットをローテーションさせるのである。なお、大当り用カウンタの値のローテーションは、右方向に行ってもよいし、左方向に行うようにしてもよい。大当り用カウンタ値の循環初期値をビットローテーションにより変更する場合には、初期値の偏差を大きくできる。
【００６９】
【発明の効果】
以上説明したように、本発明によれば、無駄のないプログラム構成でありながら不正遊技行為も未然に排除できる遊技機を実現できる。
【図面の簡単な説明】
【図１】実施例に係るパチンコ機の全体構成を示すブロック図である。
【図２】主制御基板の構成を示すブロック図である。
【図３】主制御基板におけるシステムリセット処理を示すフローチャートである。
【図４】主制御基板におけるタイマ割込み処理を示すフローチャートである。
【図５】大当り用カウンタの更新処理を示すフローチャートである。
【図６】システムリセット処理とタイマ割込み処理におけるサブカウンタの更新処理を示すフローチャートである。
【図７】割込み信号とサブカウンタの更新処理との関係を説明する図面である。
【図８】実施例に係るパチンコ機の斜視図である。
【図９】図８のパチンコ機の側面図である。
【図１０】図８のパチンコ機の遊技盤の正面図である。
【図１１】図８のパチンコ機の背面図である。
【符号の説明】
ＳＴ６〜ＳＴ９      メイン処理部
ＳＴ３０〜ＳＴ３９  割込み処理部
ＣＴ                メインカウンタ（大当り用カウンタ）
ＳＴ６３〜ＳＴ６７  初期値変更処理
ＳＴＡＲＴ          初期値
【図１】
0003939527.tif 000002
【図２】
0003939527.tif 000003
【図３】
0003939527.tif 000004
【図４】
0003939527.tif 000005
【図５】
0003939527.tif 000006
【図６】
0003939527.tif 000007
【図７】
0003939527.tif 000008
【図８】
0003939527.tif 000009
【図９】
0003939527.tif 000010
【図１０】
0003939527.tif 000011
【図１１】
0003939527.tif 000012