(57)【要約】【課題】Ｚ８０ベースのアセンブラ言語での記述が義務付けられている、遊技機用の制御プログラムにおいて、役比等、分母となる値を所定の整数値とした場合に、分子となる値が相当する整数値たる分率を算出する算出アルゴリズムの効率化を図ることが出来る遊技機を提供する。【解決手段】  １.５ミリ秒ごとにタイマ割込処理を実行する遊技機において、総払出数の１００倍値を被除数、役物作動中の払出数を除数とし、被除数から除数を減算する処理を、減算結果が負となるまで繰り返し、当該繰り返し回数を役物比率として算出する役物比率算出処理を割込禁止期間に実行する。タイマ割込処理の遅延による不具合を防止すべく、１つの連続する割込禁止区間中に実行する前記減算処理の最大繰り返し回数を５０回とした。【選択図】図１１
2018110640.tif 000002
【特許請求の範囲】
【請求項１】
遊技の進行制御を司る制御装置を備えた遊技機であって、
前記制御装置にて実行される種々の処理には、予め決められた順番で処理を実行する基本処理と、一定時間間隔毎に前記基本処理に割り込んで処理を実行する定期割込処理を行う定期割込処理とを含み、
前記基本処理には、
払い出された遊技媒体の数を累積した総払出数を更新する総払出数更新処理と、
役物作動中に払い出された遊技媒体の数を累積した役物中総払出数を更新する役物中総払出数更新処理と、
前記総払出数中の前記役物中総払出数が占める割合たる役物比率を、百分率の整数値として算出する役物比率算出処理と、を含み、
前記制御装置は、
前記定期割込処理を禁止した割込禁止期間中において、前記役物比率算出処理を実行するとともに、
前記役物比率算出処理は、前記総払出数から前記役物中総払出数を減算する減算処理を減算結果が負となるまで繰り返し、当該繰り返し回数を前記役物比率として算出する処理であって、
前回の前記定期割込処理と次の前記定期割込処理との間に実行可能な前記減算処理の繰り返し回数に上限回数を設けたことを特徴とする、遊技機。
【請求項２】
前記上限回数は、前記一定時間間隔から前記定期割込処理の実行に要する最長処理時間を除いた残余時間中に、確実に実行可能な前記減算処理の繰り返し回数に設定されている、請求項１に記載の遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スロットマシンやパチンコ機などの遊技機に関する。
【背景技術】
【０００２】
遊技機は、検査機関での検査に適合しないと、パチンコホールに設置することができない。また、遊技機関連規則には、例えばスロットマシンの実射試験での出球に関して、以下のような規程があり、この規程を遵守したスロットマシンのみが、パチンコホールへの設置を許容される。
【０００３】
（１）  設定ごと及び規定数ごとに、回胴回転装置を作動させた後、回転するすべての回胴につき、任意の順序により、任意の時間に回転停止装置を作動させる試験を４００回行つた場合において、獲得する遊技メダル等の総数が、投入をした遊技メダル等の総数の３倍に満たないものであること。
（２）  設定ごと及び規定数ごとに、（１）に規定する試験を６，０００回行つた場合において、獲得する遊技メダル等の総数が、投入をした遊技メダル等の総数の１．５倍に満たないものであること。
（３）  設定ごと及び規定数ごとに、（１）に規定する試験を１７，５００回行つた場合において、獲得する遊技メダル等の総数が、投入をした遊技メダル等の総数の２０分の１１を超え、かつ、１．２倍に満たないものであること。
（４）  設定ごと及び規定数ごとに、（１）に規定する試験を６，０００回行つた場合において、獲得する遊技メダル等の数のうち役物の作動によるものの割合（以下、役物比率または役比という）が、７割（第１種特別役物の作動によるものの割合（以下、連役比率、または連役比という）にあつては、６割）を超えるものでないこと。
【０００４】
（４）の規程の「役物」とは、「入賞を容易にするための特別の装置」と定義されており、現状、「第１種特別役物」、「第２種特別役物」及び「普通役物」の３通りの役物のスロットマシンへの搭載が認められている。また、「第１種特別役物」及び「第２種特別役物」については、各役物を連続して作動させることができる「役物連続作動装置」の搭載が認められている。一般的に、「第１種特別役物」を連続して作動させることができる「役物連続作動装置」はＢＢ（ビッグボーナス）、「第２種特別役物」を連続して作動させることができる「役物連続作動装置」はＭＢ（ミドルボーナス）／ＣＢ（チャンスボーナス）と呼ばれている。
【０００５】
従って、上記（４）の規程の存在により、パチンコホールに設置されたスロットマシンも、役比が７割または６割前後となるはずであるが、従来のスロットマシンには、役比の確認が出来る機能が搭載されていなかったため、役比を確認することが出来なかった。
【０００６】
所謂ゴト行為の１つとして、スロットマシンのボーナス確率を正規な状態よりも過度に高め、ボーナスゲームを頻発させることによって、不正に出球を搾取するものもあり、このようなゴト行為の早期発見には、役比の確認が効果的であることから、昨今、スロットマシンへの役比確認機能の搭載が検討されている（例えば、特許文献１参照）。
【特許文献１】特開２０１６−０８７２３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、遊技機の制御に係る主制御プログラムは、検査機関での検査の効率化のため、Ｚ８０ベースのアセンブラ言語での記述が義務付けられており、プログラム領域、並びにデータ領域の容量にも一定の制限が課されている。
役比の算出には、払い出したメダル枚数を累積した総払出数と、役物作動中に払い出したメダル枚数を累積した役物中総払出数とを記憶しておく必要があり、総払出数及び役物中総払出数ともに大きな数になるとともに、例えば、役比を百分率の整数値にて算出するとした場合、Ｚ８０ベースのアセンブラ言語には、乗除算の命令がないため、計算速度上及びプログラム容量上の双方の観点において、効率的な役比算出アルゴリズムが求められる。
【０００８】
そこで、本発明は、Ｚ８０ベースのアセンブラ言語での記述が義務付けられている、遊技機用の制御プログラムにおいて、役比等、分母となる値を所定の整数値とした場合に、分子となる値が相当する整数値たる分率を算出する算出アルゴリズムの効率化を図ることが出来る遊技機を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の遊技機（１）は、遊技の進行制御を司る制御装置（４１）を備え、
前記制御装置（４１）にて実行される種々の処理には、予め決められた順番で処理を実行する基本処理と、一定時間間隔毎に前記基本処理に割り込んで処理を実行する定期割込処理を行う定期割込処理とを含み、
前記基本処理には、
払い出された遊技媒体の数を累積した総払出数（ＴＯ＿ＡＬＬ、ＴＯ＿６０００）を更新する総払出数更新処理と、
役物作動中に払い出された遊技媒体の数を累積した役物中総払出数（ＹＯ＿ＡＬＬ、ＲＯ＿ＡＬＬ、ＹＯ＿６０００、ＲＯ＿６０００）を更新する役物中総払出数更新処理と、
前記総払出数（ＴＯ＿ＡＬＬ、ＴＯ＿６０００）中の前記役物中総払出数（ＹＯ＿ＡＬＬ、ＲＯ＿ＡＬＬ、ＹＯ＿６０００、ＲＯ＿６０００）が占める割合たる役物比率（ＹＨ＿ＡＬＬ、ＲＨ＿ＡＬＬ、ＹＨ＿６０００、ＲＨ＿６０００）を、百分率の整数値として算出する役物比率算出処理と、を含み、
前記制御装置は、
前記定期割込処理を禁止した割込禁止期間中において、前記役物比率算出処理を実行するとともに、
前記役物比率算出処理は、前記総払出数（ＴＯ＿ＡＬＬ、ＴＯ＿６０００）から前記役物中総払出数（ＹＯ＿ＡＬＬ、ＲＯ＿ＡＬＬ、ＹＯ＿６０００、ＲＯ＿６０００）を減算する減算処理を減算結果が負となるまで繰り返し、当該繰り返し回数を前記役物比率として算出する処理であって、
前回の前記定期割込処理と次の前記定期割込処理との間に実行可能な前記減算処理の繰り返し回数に上限回数を設けたことを特徴としている。
【００１０】
具体的構成において、前記上限回数は、前記一定時間間隔から前記定期割込処理の実行に要する最長処理時間を除いた残余時間中に、確実に実行可能な前記減算処理の繰り返し回数に設定されている。
【発明の効果】
【００１１】
本発明の遊技機によれば、Ｚ８０ベースのアセンブラ言語での記述が義務付けられている、遊技機用の制御プログラムにおいて、役比等、分母となる値を所定の整数値とした場合に、分子となる値が相当する整数値たる分率を算出する算出アルゴリズムの効率化を図ることが出来る。
【図面の簡単な説明】
【００１２】
【図１】スロットマシン１の概観を示す斜視図である。
【図２】スロットマシン１の電気的構成を示すブロック図である。
【図３】スロットマシン１の役比表示装置を示す図である。
【図４】スロットマシン１の主制御装置のＲＯＭのメモリマップを示す図である。
【図５】スロットマシン１の主制御装置のＲＡＭのメモリマップを示す図である。
【図６】スロットマシン１の主制御装置のＲＡＭにおいて、（ａ）は４００ゲーム毎の総払出、役物払出、連役払出を各記憶するデータセットを示す図、（ｂ）は直近６０００ゲーム累計と、全ゲーム累計の総払出、役物払出、連役払出を各記憶するデータセットを示す図、（ｃ）は、直近６０００ゲームの役物比率並びに連役比率と、全ゲーム累計の役物比率並びに連役比率を各記憶するデータセットを示す図である。
【図７】スロットマシン１の役比更新処理のフローチャートである。
【図８】スロットマシン１の６０００ゲーム／全ゲーム払出枚数更新処理のフローチャートである。
【図９】スロットマシン１の６０００ゲーム／全ゲーム役物／連役比率更新処理のフローチャートである。
【図１０】スロットマシン１の第１実施例における、６０００ゲーム役物比率更新処理のフローチャートである。
【図１１】スロットマシン１の第１実施例における、百分率算出処理Ａのフローチャートである。
【図１２】スロットマシン１の第２実施例における、６０００ゲーム役物比率更新処理のフローチャートである。
【図１３】スロットマシン１の第２実施例における、百分率算出処理Ｂのフローチャートである。
【図１４】被除数が４２４０００、除数が８００００である場合の、百分率算出処理Ｂの進行に伴う、各値の変化を具体的に示す図である。
【発明を実施するための形態】
【００１３】
以下では、本発明の実施の形態について、添付図面を参照しつつ詳細に説明する。
図１は、本発明の一実施形態に係るスロットマシン１の斜視図である。
スロットマシン１は、前面が開放された箱型の本体２と、本体２の前面を開閉可能に設けられた前扉３とを備えている。
本体２内には、上下方向の中央部より少し上方の位置に、左リール４Ｌ、中リール４Ｃおよび右リール４Ｒが左右に並べて配置されている。左リール４Ｌ、中リール４Ｃおよび右リール４Ｒは、ドラム状のリール枠の周面にリール帯を巻着した構成を有しており、リール枠の中心で左右方向に延びる軸を中心に回転可能に設けられている。リール帯には、２１個の図柄が周方向に並べて配列されている。
【００１４】
前扉３には、左リール４Ｌ、中リール４Ｃおよび右リール４Ｒと対向する位置に、表示パネルユニット５が配置されている。
表示パネルユニット５には、左リール４Ｌ、中リール４Ｃおよび右リール４Ｒの周面の一部を視認可能にするためのリール窓６が形成されている。左リール４Ｌ、中リール４Ｃおよび右リール４Ｒの回転中は、リール窓６内に、左リール４Ｌ、中リール４Ｃおよび右リール４Ｒの図柄が次々に現れる（図柄の変動表示）。左リール４Ｌ、中リール４Ｃおよび右リール４Ｒが停止すると、リール窓６内に、左リール４Ｌ、中リール４Ｃおよび右リール４Ｒのそれぞれ３個の図柄、合計９個の図柄が表示される（図柄の停止表示）。
【００１５】
また、表示パネルユニット５には、遊技に関する基本的な情報を表示するための各種の表示器が備えられている。この表示器には、たとえば、クレジット表示器７、配当数表示器８、３個のベット数表示ＬＥＤ９、リプレイ表示ＬＥＤ１０、スタート可否表示ＬＥＤ１１およびメダル受付可否表示ＬＥＤ１２が含まれる。クレジット表示器７および配当数表示器８は、リール窓６の下方において、左右に並べて配置されている。クレジット表示器７および配当数表示器８は、それぞれドット付きの２桁の７セグメント表示器を横方向に並べて構成されている。３個のベット数表示ＬＥＤ９は、クレジット表示器７の左側において、上下に並べて配置されている。リプレイ表示ＬＥＤ１０、スタート可否表示ＬＥＤ１１およびメダル受付可否表示ＬＥＤ１２は、配当数表示器８の右側において、上下に並べて配置されている。
【００１６】
図１に戻り、前扉３には、表示パネルユニット５の下方に、操作部１３が設けられている。操作部１３は、表示パネルユニット５の前面に対して前側に張り出しており、平坦な上面１４および前側に緩やかに凸湾曲した前面１５を有している。
【００１７】
上面１４の右端部には、メダル投入口１６が設けられている。上面１４の左端部には、ＭＡＸベットボタン１７および１枚ベットボタン１８が設けられている。１枚ベットボタン１８は、ＭＡＸベットボタン１７の左側に配置されている。
また、上面１４の中央部には、液晶表示装置２４にて遊技者介入型の演出が実行された場合に、操作が促される演出ボタンＰＢが配置されている。
【００１８】
前面１５には、スタートレバー１９、左ストップボタン２０Ｌ、中ストップボタン２０Ｃ、右ストップボタン２０Ｒおよび精算ボタン２１が設けられている。左ストップボタン２０Ｌ、中ストップボタン２０Ｃおよび右ストップボタン２０Ｒは、前面１５の左右方向の中央部において、左からこの順に並べて配置されている。スタートレバー１９は、左ストップボタン２０Ｌの左側に配置されている。精算ボタン２１は、スタートレバー１９のさらに左側に配置されている。
【００１９】
メダル受付可否表示ＬＥＤ１２の点灯中は、メダル投入口１６からメダルが投入されると、その投入が受け付けられる。メダル受付可否表示ＬＥＤ１２の消灯中は、メダル投入口１６からメダルが投入されても、その投入が受け付けられず、前扉３の最下部に設けられたメダル排出口２２からメダルトレイ２３にメダルが排出される。
【００２０】
ゲームに供するメダルがベットされていない状態において、メダルの投入が受け付けられると、そのメダルがゲームにベットされ、１個のベット数表示ＬＥＤ９が点灯される。つづいて、メダルがメダル投入口１６から投入されると、２枚目のメダルがゲームに追加ベットされ、２個のベット数表示ＬＥＤ９が点灯される。さらに、メダルがメダル投入口１６から投入されると、３枚目のメダルがゲームに追加ベットされ、３個のベット数表示ＬＥＤ９が点灯される。スロットマシン１では、１ゲーム（１回のゲーム）に対して規定数（スロットマシン１においては常時３枚）のメダルがベットされると、１ゲームが開始可能となり、スタート可否表示ＬＥＤ１１が点灯されるとともに、リール窓６内に設定される所定の入賞ラインが有効化される。規定数のメダルがゲームにベットされている状態で、メダル投入口１６からメダルが投入された場合、その投入されたメダルは、５０枚を上限として、スロットマシン１にクレジットされる。クレジットされているメダルの枚数は、クレジット数表示器ＣＲに表示される。５０枚のメダルがクレジットされている状態で、メダル投入口１６からメダルが投入された場合、その投入されたメダルは、メダル排出口２２からメダルトレイ２３に排出される。
【００２１】
規定数以上のメダルがスロットマシン１にクレジットされ、ゲームに対してメダルがベットされていない状態において、ＭＡＸベットボタン１７が操作されると、そのクレジットされているメダルから規定数のメダルがゲームにベットされ、３個のベット数表示ＬＥＤ９およびスタート可否表示ＬＥＤ１１が点灯されるとともに、リール窓６内に設定される所定の入賞ラインが有効化される。また、クレジット数が規定数分だけ減り、クレジット数表示器ＣＲの表示が更新される。１枚ベットボタン１８が操作された場合には、クレジットされているメダルから１枚のメダルがゲームにベットされ、１個のベット数表示ＬＥＤ９が点灯されるとともに、クレジット数が１だけ減り、クレジット数表示器ＣＲの表示が更新される。
【００２２】
ベットされたメダルは、ゲームの開始とともに消費される。スタートレバー１９が操作されると、１ゲームが開始となり、左リール４Ｌ、中リール４Ｃおよび右リール４Ｒの順方向の回転が開始される。また、スタート可否表示ＬＥＤ１１およびメダル受付可否表示ＬＥＤ１２が消灯される。左ストップボタン２０Ｌ、中ストップボタン２０Ｃ、右ストップボタン２０Ｒは、それぞれ左リール４Ｌ、中リール４Ｃおよび右リール４Ｒに対応して設けられている。左リール４Ｌ、中リール４Ｃおよび右リール４Ｒの回転開始後、左ストップボタン２０Ｌ、中ストップボタン２０Ｃおよび右ストップボタン２０Ｒが操作されると、それぞれ左リール４Ｌ、中リール４Ｃおよび右リール４Ｒの回転が停止される。
【００２３】
左リール４Ｌ、中リール４Ｃおよび右リール４Ｒのすべてが停止した時点で、有効化されている入賞ライン（以下、「有効ライン」という。）上に所定の図柄の組合せが並ぶと、その図柄の組合せに応じた処理が行われる。以上で１ゲームが終了となり、すべてのベット数表示ＬＥＤ９が消灯され、メダル受付可否表示ＬＥＤ１２が点灯される。
【００２４】
たとえば、有効ライン上に小役に係る図柄の組合せが並ぶと、所定の配当数のメダルが配当として付与され、その配当数が配当数表示器８に表示される。配当は、スロットマシン１に５０枚を上限としてクレジットされ、５０枚を超える分については、メダル排出口２２からメダルトレイ２３に排出される。配当がクレジットされると、クレジット数が配当数だけ増え、クレジット数表示器ＣＲの表示が更新される。
【００２５】
また、有効ライン上にリプレイ役に係る図柄の組合せが並ぶと、メダルのベットなしで次の１ゲームの実行が許可され、リプレイ表示ＬＥＤ１０が点灯される。この場合、メダル受付可否表示ＬＥＤ１２が消灯されたまま、点灯中のベット数表示ＬＥＤ９が一旦消灯された後に再び点灯されるとともに、スタート可否表示ＬＥＤ１１が点灯される。
【００２６】
メダル受付可否表示ＬＥＤ１２が点灯され、１枚以上のメダルがクレジットされている状態で、精算ボタン２１が操作されると、クレジットされている全メダルがメダル排出口２２からメダルトレイ２３に排出されて、クレジット数表示器ＣＲの表示が「０」に更新される。
【００２７】
また、スロットマシン１には、液晶表示装置２４、１対のスピーカ２５Ｌ，２５Ｒおよび１対のスピーカ２６Ｌ，２６Ｒが搭載されている。液晶表示装置２４は、表示パネルユニット５の上方に配置されている。スピーカ２５Ｌ，２５Ｒは、液晶表示装置２４の左側および右側に分かれて配置されている。スピーカ２６Ｌ，２６Ｒは、メダル排出口２２の左側および右側に分かれて配置されている。遊技（ゲーム）の進行に合わせて、液晶表示装置２４に演出画像や各種の情報などが表示され、また、スピーカ２５Ｌ，２５Ｒ，２６Ｌ，２６Ｒから効果音などが出力される。
【００２８】
図２は、スロットマシン１の電気的構成を示すブロック図である。
【００２９】
スロットマシン１は、ゲームの中枢的な制御を実行する主制御装置３１と、ゲームに付随する演出のための制御を実行する副制御装置３２と、液晶表示装置２４を制御する液晶制御装置３３とを備えている。
【００３０】
主制御装置３１には、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、入出力ポート４４およびデータ送出回路４５が備えられている。ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、入出力ポート４４およびデータ送出回路４５は、バスにより、データを通信可能に接続されている。また、主制御装置３１には、ＣＰＵ４１にクロックパルスを与えるクロック発生回路４６と、乱数を生成する乱数生成回路４７とが備えられている。
【００３１】
ＣＰＵ４１は、ＲＯＭ４２に格納されているプログラムを実行し、入出力ポート４４から入力される信号に基づいて、入出力ポート４４に接続されている各制御対象を制御する。
【００３２】
ＲＡＭ４３は、ＣＰＵ４１によるプログラムの実行時のワークエリアとして使用される。
【００３３】
入出力ポート（入力ポート）４４には、ＭＡＸベットボタン１７、１枚ベットボタン１８、スタートレバー１９、左ストップボタン２０Ｌ、中ストップボタン２０Ｃ、右ストップボタン２０Ｒ、精算ボタン２１、左リール位置検出センサ５１Ｌ、中リール位置検出センサ５１Ｃ、右リール位置検出センサ５１Ｒ、メダル投入センサ５２およびメダル払出センサ５３が接続されている。
【００３４】
入出力ポート（出力ポート）４４には、クレジット表示器７、役比表示装置ＹＤ、配当数表示器８、ベット数表示ＬＥＤ９、リプレイ表示ＬＥＤ１０、スタート可否表示ＬＥＤ１１およびメダル受付可否表示ＬＥＤ１２が制御対象として接続されている。また、入出力ポート（出力ポート）４４には、左リール４Ｌを回転駆動する左リール駆動モータ６１Ｌ、中リール４Ｃを回転駆動する中リール駆動モータ６１Ｃ、右リール４Ｒを回転駆動する右リール駆動モータ６１Ｒ、メダル投入口１６から投入されるメダルの受付／拒否を切り替えるためのメダルブロックソレノイド６２および本体２内に設けられたメダル貯留部（図示せず）からメダルを払い出すためのメダル払出駆動モータ６３が制御対象として接続されている。
【００３５】
図３は、役比表示装置ＹＤを示しており、該役比表示装置ＹＤは、ドット付きの２桁の７セグメント表示器で構成している。本体２内には、主制御装置３１を構成する主制御基板（図示せず）が取り付けられており、役比表示装置ＹＤは、当該主制御基板上に実装されている。従って、前扉３を開放しない限り、役比表示装置ＹＤを視認することができないため、遊技者は視認することができない。
役比表示装置ＹＤには、ゲーム結果として払い出されたメダルの累計枚数に対する、役物作動中に払い出されたメダルの累計枚数の比率を百分率で表した役物比率が、２桁の整数値にて表示される。
【００３６】
ＭＡＸベットボタン１７、１枚ベットボタン１８、スタートレバー１９、左ストップボタン２０Ｌ、中ストップボタン２０Ｃ、右ストップボタン２０Ｒおよび精算ボタン２１が操作されると、それらの個々に設けられたスイッチまたはセンサから信号が出力され、その信号が入出力ポート４４を介してＣＰＵ４１に入力される。また、左リール４Ｌ、中リール４Ｃおよび右リール４Ｒが１回転する度に、それぞれ左リール位置検出センサ５１Ｌ、中リール位置検出センサ５１Ｃおよび右リール位置検出センサ５１Ｒから信号が出力され、その信号が入出力ポート４４を介してＣＰＵ４１に入力される。メダル投入口１６からメダルが１枚投入される度に、メダル投入センサ５２から検出信号が出力され、その検出信号が入出力ポート４４を介してＣＰＵ４１に入力される。メダル払出駆動モータ６３が駆動されて、メダル貯留部からメダルが払い出される度に、メダル払出センサ５３から信号が出力され、その信号が入出力ポート４４を介してＣＰＵ４１に入力される。
【００３７】
左リール駆動モータ６１Ｌ、中リール駆動モータ６１Ｃおよび右リール駆動モータ６１Ｒには、ステッピングモータが採用されている。規定数のメダルがゲームにベットされた後、スタートレバー１９が操作されると、ＣＰＵ４１は、左リール駆動モータ６１Ｌ、中リール駆動モータ６１Ｃおよび右リール駆動モータ６１Ｒに駆動パルス信号を入力し、左リール４Ｌ、中リール４Ｃおよび右リール４Ｒの回転を開始させる。ＣＰＵ４１は、左リール位置検出センサ５１Ｌ、中リール位置検出センサ５１Ｃおよび右リール位置検出センサ５１Ｒの出力信号ならびに左リール駆動モータ６１Ｌ、中リール駆動モータ６１Ｃおよび右リール駆動モータ６１Ｒへの駆動パルス信号の出力数に基づいて、左リール４Ｌ、中リール４Ｃおよび右リール４Ｒの回転位置を常に把握している。
【００３８】
また、スタートレバー１９が操作されると、ＣＰＵ４１は、内部抽選を実行する。具体的には、ＣＰＵ４１は、スタートレバー１９が操作されたタイミングで、乱数生成回路４７から乱数を取得する。そして、ＣＰＵ４１は、ＲＯＭ４２に格納されている抽選テーブルを参照する。抽選テーブルでは、乱数生成回路４７が生成する乱数の範囲（たとえば、０〜６５５３５）が複数の抽選区分に分けられ、抽選区分の個々に１以上の役が対応づけられている。ＣＰＵ４１は、乱数生成回路４７から取得した乱数が属する抽選区分に対応づけられた役を当選役として決定する。また、ＣＰＵ４１は、乱数生成回路４７から取得した乱数がどの抽選区分にも属さない場合には、内部抽選の結果を不当選（純ハズレ）と決定する。
【００３９】
その後、左リール４Ｌ、中リール４Ｃおよび右リール４Ｒの回転速度が一定になると、ＣＰＵ４１は、左ストップボタン２０Ｌ、中ストップボタン２０Ｃおよび右ストップボタン２０Ｒを有効化する。そして、左ストップボタン２０Ｌ、中ストップボタン２０Ｃおよび右ストップボタン２０Ｒが操作されると、ＣＰＵ４１は、左ストップボタン２０Ｌ、中ストップボタン２０Ｃおよび右ストップボタン２０Ｒが操作されたタイミングと内部抽選の結果とに基づいて、左リール駆動モータ６１Ｌ、中リール駆動モータ６１Ｃおよび右リール駆動モータ６１Ｒへの駆動パルス信号の出力を停止し、左リール４Ｌ、中リール４Ｃおよび右リール４Ｒの停止を制御する。このとき、左ストップボタン２０Ｌが押操作されたタイミングでの左リール４Ｌの回転位置を基準として、所定コマ数分の図柄が移動する引込範囲内で左リール４Ｌの回転が停止される（引込制御）。中リール４Ｃおよび右リール４Ｒについても同様である。
【００４０】
そして、ＣＰＵ４１は、有効ライン上に内部抽選での当選役に対応した図柄の組合せが並んでいるか否かを判定する。有効ライン上に当選役に対応した図柄の組合せが並んでいれば、ＣＰＵ４１は、その当選役に入賞と判定し、当選役に応じた処理を実行する。
【００４１】
また、ＣＰＵ４１は、データ送出回路４５を介して、副制御装置３２に各種データを送出する。各種データには、ゲーム開始の条件が成立したことを表すベット信号、スタートレバー１９が操作されたことを表すレバーオン信号、左ストップボタン２０Ｌが操作されたことを表す左停止信号、中ストップボタン２０Ｃが操作されたことを表す中停止信号、右ストップボタン２０Ｒが操作されたことを表す右停止信号、内部抽選やＡＴ抽選の結果に係るデータ、及び左ストップボタン２０Ｌ、中ストップボタン２０Ｃ及び右ストップボタン２０Ｒの操作順を指示する指示データなどが含まれる。
【００４２】
副制御装置３２には、データ入力回路７１が備えられている。データ入力回路７１は、主制御装置３１のデータ送出回路４５とデータを通信可能に接続されている。データ送出回路４５とデータ入力回路７１との間では、データ送出回路４５からデータ入力回路７１への一方向に通信が行われ、データ入力回路７１からデータ送出回路４５への通信は行われない。
【００４３】
また、副制御装置３２には、ＣＰＵ７２、ＲＯＭ７３、ＲＡＭ７４、サウンドプロセッサ７５、入出力ポート７６およびデータ入出力回路７７が備えられている。データ入力回路７１、ＣＰＵ７２、ＲＯＭ７３、ＲＡＭ７４、サウンドプロセッサ７５、入出力ポート７６およびデータ入出力回路７７は、バスにより、データを通信可能に接続されている。さらに、副制御装置３２は、ＣＰＵ７２にクロックパルスを与えるクロック発生回路７８が備えるとともに、ＣＰＵ７２に操作信号を出力する演出ボタンＰＢが接続されている。
【００４４】
ＣＰＵ７２は、ＲＯＭ７３に格納されているプログラムを実行し、データ入力回路７１データ入出力回路７７、及び演出ボタンＰＢから入力される信号に基づいて、サウンドプロセッサ７５にデータ（コマンド）を送信し、入出力ポート７６に接続されている各制御対象を制御する。制御対象には、スロットマシン１の各部の照明のためのＬＥＤ７９およびバックライト８０などが含まれる。また、ＣＰＵ７２は、データ入出力回路７７を介して、液晶制御装置３３に液晶表示装置２４の制御に必要なデータを送出する。
【００４５】
ＲＡＭ７４は、ＣＰＵ４１によるプログラムの実行時のワークエリアとして使用される。
【００４６】
サウンドプロセッサ７５は、ＣＰＵ７２から与えられるデータに基づいて、スピーカ２５Ｌ，２５Ｒ，２６Ｌ，２６Ｒからの効果音や音声の出力を制御する。
【００４７】
液晶制御装置３３には、データ入出力回路８１が備えられている。データ入出力回路８１は、副制御装置３２のデータ入出力回路７７とデータを通信可能に接続されている。データ入出力回路７７とデータ入出力回路８１との間では、双方向に通信が行われる。
【００４８】
また、液晶制御装置３３には、ＣＰＵ８２、ＲＯＭ８３、ＲＡＭ８４および駆動回路８５が備えられている。データ入出力回路８１、ＣＰＵ８２、ＲＯＭ８３、ＲＡＭ８４および駆動回路８５は、バスにより、データを通信可能に接続されている。さらに、液晶制御装置３３には、ＣＰＵ８２にクロックパルスを与えるクロック発生回路８６が備えられている。
【００４９】
ＣＰＵ８２は、ＲＯＭ８３に格納されているプログラムを実行し、データ入出力回路８１から入力される信号に基づいて、駆動回路８５を介して、液晶表示装置２４を制御する。また、ＣＰＵ８２は、データ入出力回路８１を介して、副制御装置３２にスピーカ２５Ｌ，２５Ｒ，２６Ｌ，２６Ｒからの効果音や音声の出力制御などに必要なデータを送出する。
【００５０】
また、スロットマシン１には、貸出機中継基板９１が備えられている。主制御装置３１とスロットマシン１に隣接して設けられるメダル貸出機（図示せず）の制御基板とは、貸出機中継基板９１を介して通信可能に接続されている。
【００５１】
＜１．主制御装置３１のＣＰＵ４１について＞
主制御装置３１のＣＰＵ４１は、Ｚ８０準拠のＣＰＵを用いている。検査機関での検査の効率化のため、Ｚ８０ベースのアセンブラ言語での記述が義務付けられているためである。
【００５２】
＜２．主制御装置３１のＲＯＭ４２について＞
現行の遊技機関連法規によれば、主制御装置３１のＲＯＭ４２にも、以下の制限が課されている。
１）記憶容量が１６キロバイトを超えないこと。
２）制御領域とデータ領域とが区分されているものであること。
３）ぱちんこ遊技機：制御領域の容量が３キロバイトを超えず、かつ、データ領域の容量が３キロバイトを超えないものであること。
４）回胴式遊技機(スロットマシン)：制御領域の容量が４．５キロバイトを超えず、かつ、データ領域の容量が３キロバイトを超えないものであること。
【００５３】
なお、上記のデータ領域とは、プログラム以外の情報のみが記憶される領域、上記の制御領域とは、データ領域以外の記憶領域と規定されているため、制御領域は、プログラム情報が記憶される領域となる。
【００５４】
図４は、主制御装置３１のＲＯＭ４２のメモリマップを示している。
ＲＯＭ４２の容量は１２キロバイトで、１６進のアドレス表記で、００００Ｈ〜２ＦＦＦＨで示される領域を有している。
先頭番地の００００Ｈから始まる第１プログラム領域ＰＧ１＿ＡＲＥＡには、メインルーチンを含むスロットマシン１の遊技制御に係る遊技制御プログラムが記憶されている。第１プログラム領域ＰＧ１＿ＡＲＥＡは、遊技機関連法規上の制御領域に相当するため、第１プログラム領域ＰＧ１＿ＡＲＥＡの容量は、ぱちんこ遊技機の場合は３キロバイト未満、回胴式遊技機の場合は、４．５キロバイト未満とする必要がある。
【００５５】
第１プログラム領域ＰＧ１＿ＡＲＥＡに記憶される遊技制御プログラムは、予め決められた順番で処理を実行する基本処理と、一定時間間隔毎に前記基本処理に割り込んで処理を実行するタイマ割込処理とに大別される。
図２に示す如く、主制御装置３１のＣＰＵ４１には、クロック発生回路４６から一定周期で割込信号が入力されており、ＣＰＵ４１は、割込禁止期間でない限り、当該割込信号の受信に応じて、実行中の基本処理を中断して、定期割込処理を開始する。定期割込処理の終了後は、割込時に中断した基本処理に戻り、当該基本処理を継続する。なお、スロットマシン１では、前記割込信号の周期（割込周期）を１.５ミリ秒に設定している。
定期割込処理は、最長でも割込周期内で処理を完了できるように設定されている。従って、基本処理は、割込周期から、定期割込処理に要した時間を除いた、余剰期間にて実行される。
【００５６】
第１プログラム領域ＰＧ１＿ＡＲＥＡの後ろには、間に未使用領域挟み、遊技機関連法規上のデータ領域に相当する第１データ領域ＰＧ１＿ＤＡＴＡ＿ＡＲＥＡが設けられている。第１データ領域ＰＧ１＿ＤＡＴＡ＿ＡＲＥＡには、第１プログラム領域ＰＧ１＿ＡＲＥＡに記憶された遊技制御プログラムから参照する固定データが記憶されている。また、第１データ領域ＰＧ１＿ＤＡＴＡ＿ＡＲＥＡの容量は、ぱちんこ遊技機、回胴式遊技機にかかわらず、３キロバイト未満とする必要がある。
第１プログラム領域ＰＧ１＿ＡＲＥＡと第１データ領域ＰＧ１＿ＤＡＴＡ＿ＡＲＥＡとの間の未使用領域は、制御領域とデータ領域とを明確に区分するために設けられ、ＮＵＬＬ(００Ｈ)データで埋められた１６バイト以上の容量を有する。以降の各未使用領域も同様に、各未使用領域の前後の領域を明確に区別するために設けられ、ＮＵＬＬ(００Ｈ)データで埋められた１６バイト以上の容量を有する。
【００５７】
第１データ領域ＰＧ１＿ＤＡＴＡ＿ＡＲＥＡの後ろには、間に未使用領域を挟み、検査情報領域ＴＥＳＴ＿ＤＡＴＡ＿ＡＲＥＡが設けられている。検査情報領域ＴＥＳＴ＿ＤＡＴＡ＿ＡＲＥＡには、検査機関指定の各種情報が記憶される。
【００５８】
検査情報領域ＴＥＳＴ＿ＤＡＴＡ＿ＡＲＥＡの後ろには、間に未使用領域挟み、第２プログラム領域ＰＧ２＿ＡＲＥＡが設けられている。第２プログラム領域ＰＧ２＿ＡＲＥＡには、前記遊技制御プログラムから呼び出される複数のサブルーチンを含む遊技制御に直接関連のない補助プログラムが記憶されている。これらの補助プログラムは、基本処理であるため、第２プログラム領域ＰＧ２＿ＡＲＥＡにはタイマ割込処理は含まない。
補助プログラムに含まれる各サブルーチンの機能は、例えば以下の通りである。
１）メダル投入ゴト検知処理
例えば、メダル投入以外の方法でメダル投入センサを誤検知させることにより、クレジットを増加させるクレマンゴトと呼ばれるゴト行為の有無を判別する処理。
２）ホッパーゴト検知処理
ホッパーを誤動作させて不正にメダルを払い出すゴト行為の有無を判別する処理。
３）検査機関試験用信号出力処理
検査機関による試験でのみ用いられる遊技関連信号を出力する処理。
４）払い出されたメダル枚数を累積した総払出数中に、役物作動中に払い出されたメダル枚数を累積した役物中総払出数が占める割合たる役物比率を、百分率の整数値として算出する役物比率算出処理。
【００５９】
第２プログラム領域ＰＧ１＿ＡＲＥＡに記憶される補助プログラムを構成する上記各サブルーチン群は、それぞれ割込禁止期間に実行される。この理由については後述するが、このため、各サブルーチン群は、短時間で処理が完了するように設計する必要がある。
【００６０】
第２プログラム領域ＰＧ２＿ＡＲＥＡの後ろには、間に未使用領域挟み、第２データ領域ＰＧ２＿ＤＡＴＡ＿ＡＲＥＡが設けられている。第２データ領域ＰＧ２＿ＤＡＴＡ＿ＡＲＥＡには、第２プログラム領域ＰＧ２＿ＡＲＥＡに記憶された補助プログラムから参照する固定データが記憶されている。
【００６１】
第２データ領域ＰＧ２＿ＤＡＴＡ＿ＡＲＥＡの後ろには、間に未使用領域挟み、管理データ領域ＭＧ＿ＤＡＴＡ＿ＡＲＥＡが設けられている。管理データ領域ＭＧ＿ＤＡＴＡ＿ＡＲＥＡには、機種名やメーカ名等の機種固有情報のほか、第１プログラム領域ＰＧ１＿ＡＲＥＡの終了アドレス、第１データ領域ＰＧ１＿ＤＡＴＡ＿ＡＲＥＡの開始及び終了アドレス、第２プログラム領域ＰＧ２＿ＡＲＥＡの開始及び終了アドレス、第２データ領域ＰＧ２＿ＤＡＴＡ＿ＡＲＥＡの開始及び終了アドレス等が記憶される。
【００６２】
＜３．主制御装置３１のＲＡＭ４３について＞
現行の遊技機関連法規によれば、主制御装置３１のＲＡＭ４３には、以下の制限が課されている。
１）記憶容量が１０２４バイトを超えないこと。
２）使用領域の容量が５１２バイトを超えないものであること。
【００６３】
図５は、主制御装置３１のＲＡＭ４３のメモリマップを示している。
ＲＡＭ４３の容量は１０２４バイトで、１６進のアドレス表記で、Ｆ０００Ｈ〜Ｆ３ＦＦＨで示される領域を有している。
【００６４】
ＲＡＭ４３の先頭番地Ｆ０００Ｈから始まる領域は、第１ワーク領域ＷＯＲＫ１＿ＡＲＥＡで、第１ワーク領域ＷＯＲＫ１＿ＡＲＥＡには、ＲＯＭ４２の第１プログラム領域ＰＧ１＿ＡＲＥＡに記憶された遊技制御プログラムに基づき実行される演算処理に用いる各種ワークデータが記憶される。
第１ワーク領域ＷＯＲＫ１＿ＡＲＥＡの後ろには、間に未使用領域挟み、第１スタック領域ＳＴＡＣＫ１＿ＡＲＥＡが設けられている。第１スタック領域ＳＴＡＣＫ１＿ＡＲＥＡは、ＲＯＭ４２の第１プログラム領域ＰＧ１＿ＡＲＥＡに記憶された遊技制御プログラムにて用いるスタック領域である。
【００６５】
第１スタック領域ＳＴＡＣＫ１＿ＡＲＥＡの後ろには、間に未使用領域挟み、第２ワーク領域ＷＯＲＫ２＿ＡＲＥＡが設けられている。第２ワーク領域ＷＯＲＫ２＿ＡＲＥＡには、ＲＯＭ４２の第２プログラム領域ＰＧ２＿ＡＲＥＡに記憶された補助プログラムに基づき実行される演算処理に用いる各種ワークデータが記憶される。
第２ワーク領域ＷＯＲＫ２＿ＡＲＥＡの後ろには、間に未使用領域挟み、第２スタック領域ＳＴＡＣＫ２＿ＡＲＥＡが設けられている。第２スタック領域ＳＴＡＣＫ２＿ＡＲＥＡは、ＲＯＭ４２の第２プログラム領域ＰＧ２＿ＡＲＥＡに記憶された補助プログラムにて用いるスタック領域である。
【００６６】
また、遊技制御プログラムからの第２ワーク領域ＷＯＲＫ２＿ＡＲＥＡへの参照、及び補助プログラムからの第１ワーク領域ＷＯＲＫ１＿ＡＲＥＡへの参照は可としているが、遊技制御プログラムからの第２ワーク領域ＷＯＲＫ２＿ＡＲＥＡの更新、及び補助プログラムからの第１ワーク領域ＷＯＲＫ１＿ＡＲＥＡの更新は不可としている。この理由も、検査機関での検査の効率化のためである。
【００６７】
同様に、検査機関での検査の効率化のため、遊技制御プログラムにて用いる第１スタック領域ＳＴＡＣＫ１＿ＡＲＥＡと、補助プログラムにて用いる第２スタック領域ＳＴＡＣＫ２＿ＡＲＥＡとは、完全に分離してそれぞれ独立させる必要がある。
仮に、割込許可状態下で補助プログラムを実行した場合、補助プログラム実行中の割込信号受信に伴い、遊技制御プログラム中のタイマ割込処理へ移行することとなり、この際に、スタックが第２スタック領域ＳＴＡＣＫ２＿ＡＲＥＡから第１スタック領域ＳＴＡＣＫ１＿ＡＲＥＡに切り替わることとなるため、これを防止すべく、補助プログラムを構成する各サブルーチン群は、それぞれ割込禁止期間に実行することとしている。
【００６８】
＜４．役比及び連役比の算出に必要な各種データの構成について＞
役比の算出に必要な各種データは、主制御装置３１のＲＡＭ４３に記憶される。
なお、スロットマシン１では、直近の６０００ゲーム間の役比及び役連比と、全ゲームを通じた役比及び連役比とを４００ゲーム毎に算出することとしている。また、直近の６０００ゲームについては、４００ゲーム毎の各種メダル払出枚数のカウント結果の履歴も残すことにしている。役比及び役連比の算出が４００ゲームごとであるため、厳密には、常に直近の６０００ゲームというわけではないが、以下、同様に直近の６０００ゲームという。
【００６９】
図６（ａ）は、各種メダル払出枚数のカウント結果が記憶される各種データを示している。
役比及び連役比の算出には、メダルの総払出枚数（以下、総払出という）、役物作動中に払い出されたメダル枚数（以下、役物払出という）、及び第１種特別役物作動中に払い出されたメダル枚数（以下、連役払出という）のカウント結果が必要である。
この３種類のメダル払出枚数のカウント結果が記憶されるデータセットとして、スロットマシン１では、直近４００ゲームのメダル払出枚数のカウント結果を記憶するワークセットＷｋを、主制御装置３１のＲＡＭ４３の第１ワーク領域ＷＯＲＫ１＿ＡＲＥＡに設けている。
ワークセットＷｋは、総払出ワークＴＯＷ、役物払出ワークＹＯＷ及び連役払出ワークＲＯＷとからなる。総払出ワークＴＯＷ、役物払出ワークＹＯＷ及び連役払出ワークＲＯＷは、それぞれ２バイトである。
【００７０】
また、４００ゲームごとの上記３種類のメダル払出枚数のカウント結果を記憶するデータセットＲｇ１〜Ｒｇ１５、１５セットからなるリングバッファを、主制御装置３１のＲＡＭ４３の第２ワーク領域ＷＯＲＫ２＿ＡＲＥＡに設けている。各データセットＲｇ１〜１５は、総払出データＴＯ１〜１５、役物払出データＹＯ１〜１５及び連役払出データＲＯ１〜１５とからなる。総払出データＴＯ１〜１５、役物払出データＹＯ１〜１５及び連役払出データＲＯ１〜１５は、それぞれ２バイトである。
当該リングバッファにより、直近の６０００ゲームについては、４００ゲーム毎の各種メダル払出枚数のカウント結果の履歴を残すことが出来る。
【００７１】
図６（ｂ）は、直近６０００ゲーム分の累計、及び全ゲームの累計のデータセットを示している。当該２種類のデータセットも、主制御装置３１のＲＡＭ４３の第２ワーク領域ＷＯＲＫ２＿ＡＲＥＡに設けている。
直近６０００ゲーム分の累計のデータセットは、総払出ワークＴＯ＿６０００、役物払出ワークＹＯ＿６０００及び連役払出ワークＲＯ＿６０００からなる。総払出ワークＴＯ＿６０００、役物払出ワークＹＯ＿６０００及び連役払出ワークＲＯ＿６０００は、それぞれ３バイトである。
全ゲーム分の累計のデータセットは、総払出ワークＴＯ＿ＡＬＬ、役物払出ワークＹＯ＿ＡＬＬ及び連役払出ワークＲＯ＿ＡＬＬからなる。総払出ワークＴＯ＿ＡＬＬ、役物払出ワークＹＯ＿ＡＬＬ及び連役払出ワークＲＯ＿ＡＬＬは、それぞれ４バイトである。
【００７２】
図６（ｃ）は、直近６０００ゲーム分の役比及び役連比と、全ゲーム累計の役比及び役連比を記憶するデータセットを示している。当該２種類のデータセットも、主制御装置３１のＲＡＭ４３の第２ワーク領域ＷＯＲＫ２＿ＡＲＥＡに設けている。
また、直近６０００ゲーム分の役比ＹＨ＿６０００、直近６０００ゲーム分の役連比ＲＨ＿６０００、全ゲーム累計の役比ＹＨ＿ＡＬＬ、及び全ゲーム累計の役連比ＲＨ＿ＡＬＬはそれぞれ、以下の計算式に基づき算出される百分率であって、小数点以下を切り下げた、０〜９９の整数値としているため、１バイトである。
ＹＨ＿６０００＝ＹＯ＿６０００／ＴＯ＿６０００×１００
ＲＨ＿６０００＝ＲＯ＿６０００／ＴＯ＿６０００×１００
ＹＨ＿ＡＬＬ＝ＹＯ＿ＡＬＬ／ＴＯ＿ＡＬＬ×１００
ＲＨ＿ＡＬＬ＝ＲＯ＿ＡＬＬ／ＴＯ＿ＡＬＬ×１００
【００７３】
＜５．役比更新処理について＞
図７は、主制御装置３１のＣＰＵ４１で実行される、役比更新処理のフローチャートを示している。
先ず、ステップＳ７０１にてゲームが終了したか否かを判断し、ノーと判断した場合には、ステップＳ７０１にて同じ判断を繰り返す。一方、ステップＳ７０１にてイエスと判断した場合には、次のステップＳ７０２にて、払出があったか否かを判断し、イエスと判断した場合には、ステップＳ７０３に移行する一方、ノーと判断した場合にはステップＳ７０８に移行する。
【００７４】
ステップＳ７０３では、総払出ワークＴＯＷに払出枚数を加算する。次のステップＳ７０４では、役物作動中か否かを判断し、イエスと判断した場合には、役物払出ワークＹＯＷに払出枚数を加算する。次のステップＳ７０５では、第１種特別役物の作動中か否かを判断し、イエスと判断した場合には、連役払出ワークＲＯＷに払出枚数を加算して、ステップＳ７０８へ移行する。ステップＳ７０４及びＳ７０６にて、ノーと破断した場合にも、ステップＳ７０８へ移行する。
【００７５】
ステップＳ７０８では、ゲーム数を１インクリメントし、次のステップＳ７０９ではゲーム数が４００ゲームに至ったか否かを判断する。ステップＳ７０９にてノーと判断した場合には、ステップＳ７０１に戻る。
一方、ステップＳ７０９にてイエスと判断した場合には、ステップＳ７１０にて６０００ゲーム／全ゲーム払出枚数更新処理、ステップＳ７１１にて６０００ゲーム／全ゲーム役物／連役比率更新処理を実行した後、次のステップＳ７１２にて、ゲーム数、総払出ワークＴＯＷ、役物払出ワークＹＯＷ及び連役払出ワークＲＯＷにそれぞれゼロをセットして、ステップＳ７０１に戻る。
なお、６０００ゲーム／全ゲーム払出枚数更新処理、及び６０００ゲーム／全ゲーム役物／連役比率更新処理については、後述する。
【００７６】
＜６．６０００ゲーム／全ゲーム払出枚数更新処理について＞
図８は、主制御装置３１のＣＰＵ４１で実行される、６０００ゲーム／全ゲーム払出枚数更新処理のフローチャートを示している。
本処理は、主制御装置３１のＲＡＭ４３の第２ワーク領域ＷＯＲＫ２＿ＡＲＥＡに記憶されている各種データの更新を伴うため、当該処理プログラムは、主制御装置３１のＲＯＭ４２の第２プログラム領域ＰＧ２＿ＡＲＥＡに記憶されている。
このため、当該処理は、最初のステップＳ８０１で割込禁止、最後のステップＳ８０９で割込許可を行っていることからわかるように、割り込み禁止区間に実行される。以下、この割込み禁止区間にて実行する各ステップについて説明する。
【００７７】
ステップＳ８０２では、全ゲーム総払出ＴＯ＿ＡＬＬに総払出ワークＴＯＷを加算、全ゲーム役物払出ＹＯ＿ＡＬＬに役物払出ワークＹＯＷを加算、及び全ゲーム連役払出ＲＯ＿ＡＬＬに連役払出ワークＲＯＷを加算する。
次のステップＳ８０３では、リングバッファを構成する１５個のデータセットＲｇ１〜Ｒｇ１５のうち、更新（上書き）対象のデータセット（更新対象のデータセット番号をＮとする、Ｎ＝１〜１５）の更新（上書き）処理を行う。
具体的には、更新（上書き）対象のデータセットの総払出ＴＯ（Ｎ）に総払出ワークＴＯＷをセット、役物払出ＹＯ（Ｎ）に役物払出ワークＹＯＷをセット、及び連役払出ＲＯ（Ｎ）に連役払出ワークＲＯＷをセットする。
【００７８】
次のステップＳ８０４では、６０００ゲーム総払出ＴＯ＿６０００、６０００ゲーム役物払出ＹＯ＿６０００、及び６０００ゲーム連役払出ＲＯ＿６０００を算出する。
具体的には、リングバッファを構成する１５個のデータセットに関し、総払出、役物払出、及び連役払出の種別ごとに総和を算出し、その結果をそれぞれ、６０００ゲーム総払出ＴＯ＿６０００、６０００ゲーム役物払出ＹＯ＿６０００、及び６０００ゲーム連役払出ＲＯ＿６０００にセットする。
【００７９】
次のステップでは、次回の更新（上書き）のため、更新（上書き）対象のデータセット番号Ｎを１インクリメントし、次のステップＳ８０６では、Ｎが１６に至ったか否かを判断する。ステップＳ８０６にてイエスと判断した場合には、ステップＳ８０７にてＮに１をセットして、ステップＳ８０８へ移行する一方、ノーと判断した場合にはステップＳ８０７をスキップして、ステップＳ８０８へ移行する。
【００８０】
＜７．６０００ゲーム／全ゲーム役物／連役比率更新処理について＞
図９は、主制御装置３１のＣＰＵ４１で実行される、６０００ゲーム／全ゲーム役物／連役比率更新処理のフローチャートを示している。
具体的には、ステップＳ９０１にて、６０００ゲーム役物比率ＹＨ＿６０００更新処理、ステップＳ９０２にて、６０００ゲーム連役比率ＲＨ＿６０００更新処理、ステップＳ９０３にて、全ゲーム役物比率ＹＨ＿ＡＬＬ更新処理、ステップＳ９０４にて、全ゲーム連役比率ＲＨ＿ＡＬＬ更新処理をそれぞれ実行してリターンする。
なお、ステップ９０１〜９０４の４つの処理は、算出の基となるデータと、結果の出力先とが異なるのみで、ロジック（プロセス）的には同等であるため、以下、６０００ゲーム役物比率ＹＨ＿６０００更新処理についてのみ説明し、他の処理については説明を省略する。
【００８１】
＜８．６０００ゲーム役物比率更新処理について＞
＜８−１．第１実施例＞
図１０は、主制御装置３１のＣＰＵ４１で実行される、６０００ゲーム役物比率ＹＨ＿６０００更新処理のフローチャートを示している。
先ず、ステップＳ１００１にて、被除数に６０００ゲーム総払出ＴＯ＿６０００を１００倍した値、除数に６０００ゲーム役物払出ＴＯ＿６０００、百分率にゼロをそれぞれセットする。
なお、６０００ゲーム連役比率更新処理では、上記に代えて、被除数に６０００ゲーム総払出ＴＯ＿６０００を１００倍した値、除数に６０００ゲーム役連払出ＲＯ＿６０００をそれぞれセットする。
全ゲーム役物比率更新処理では、上記に代えて、被除数に全ゲーム総払出ＴＯ＿ＡＬＬを１００倍した値、除数に全ゲーム役連払出ＹＯ＿ＡＬＬをそれぞれセットする。
全ゲーム連役比率更新処理では、上記に代えて、被除数に全ゲーム総払出ＴＯ＿ＡＬＬを１００倍した値、除数に全ゲーム役連払出ＲＯ＿ＡＬＬをそれぞれセットする。
【００８２】
次のステップＳ１００２では、百分率算出処理Ａを実行し、次のステップＳ１００３では当該処理の返り値が終了値か否かを判断し、イエスと判断した場合にはステップＳ１００４にて、６０００ゲーム役物比率ＹＨ＿６０００に、百分率算出処理Ａにて算出した百分率をセットしてリターンする。
なお、６０００ゲーム連役比率更新処理では、上記に代えて、百分率算出処理Ａにて算出した百分率を６０００ゲーム連役比率ＲＨ＿６０００にセットする。
全ゲーム役物比率更新処理では、上記に代えて、百分率算出処理Ａにて算出した百分率を全ゲーム役物比率ＹＨ＿ＡＬＬにセットする。
全ゲーム連役比率更新処理では、上記に代えて、百分率算出処理Ａにて算出した百分率を全ゲーム連役比率ＲＨ＿ＡＬＬにセットする。
【００８３】
図１１は、主制御装置３１のＣＰＵ４１で実行される、百分率算出処理Ａのフローチャートを示している。
本処理は、主制御装置３１のＲＡＭ４３の第２ワーク領域ＷＯＲＫ２＿ＡＲＥＡに記憶されている各種データの更新を伴うため、当該処理プログラムは、主制御装置３１のＲＯＭ４２の第２プログラム領域ＰＧ２＿ＡＲＥＡに記憶されている。
このため、当該処理は、最初のステップＳ１１０１で割込禁止、最後のステップＳ１１１０で割込許可を行っていることからわかるように、割り込み禁止区間に実行される。以下、この割込み禁止区間にて実行する各ステップについて説明する。
【００８４】
ステップＳ１１０２では、ループ回数にゼロをセットする。次のステップＳ１１０３では、被除数から除数を減算した結果をワーク変数Ａにセットする。次のステップＳ１１０４では、ワーク変数Ａの値がゼロ未満か否かを判断し、イエスと判断した場合には、ステップＳ１１０９にて返り値に終了値をセットして、ステップＳ１１１０へ移行する。
一方、ステップＳ１１０４にてノーと判断した場合には、ステップＳ１１０５にて被除数にワーク変数Ａの値をセットするとともに、次のステップＳ１１０６にて百分率及びループ回数をそれぞれ１づつインクリメントして、ステップＳ１１０７へ移行する。
【００８５】
次のステップＳ１１０７では、ループ回数が５０回に至ったか否かを判断し、ノーと判断した場合にはステップＳ１１０３へ戻る一方、イエスと判断した場合には、ステップＳ１１０８にて返り値に継続値をセットして、ステップＳ１１１０へ移行する。
【００８６】
以上の説明からわかるように、百分率算出処理Ａでは、ステップＳ１１０３にて、被除数から除数を減算する処理を減算結果が負になるまで繰り返し、この繰り返し回数を百分率にセットするという、最も単純なロジックを採用している。
従って、減算処理の繰り返し回数は最大でも１００回であるものの、百分率算出処理Ａを割込禁止期間に実行する必要があることから、タイマー割込周期の１.５ミリ秒と、タイマー割込処理の実行に要する最長の時間とを考慮すると、百分率算出処理Ａにて、上記減算処理を最大の１００回行った場合には、タイマー割込処理の遅延により、不具合が生じる虞があることが判明した。
【００８７】
そこで、上記減算処理の最大繰り返し回数として５０回を設定し、上記減算処理を５０回実行した場合には、百分率の算出を一旦中断して、割込禁止期間を解除することとした。これにより、上記不具合を回避することが出来る。
なお、百分率算出処理Ａにおける上記減算処理の最大繰り返し回数は、タイマー割込周期と、タイマー割込処理の実行に要する最長の時間とを考慮して、不具合が生じる虞のない値に設定すればよい。具体的には、タイマー割込周期からタイマー割込処理の実行に要する最長の時間を除いた残余時間中に、確実に実行可能な上記減算処理の繰り返し回数に設定すればよい。
【００８８】
＜８−２．第２実施例＞
第１実施例の百分率算出処理Ａでは、減算処理の最大繰り返し回数が１００回となる、最も単純なロジックを採用したが、本第２実施例では、減算処理の最大繰り返し回数が７回で済む、効率的なロジックを採用している。
以下、第２実施例について説明する。
【００８９】
図１２は、主制御装置３１のＣＰＵ４１で実行される、６０００ゲーム役物比率ＹＨ＿６０００更新処理のフローチャートを示している。
先ず、ステップＳ１２０１にて、被除数に６０００ゲーム総払出ＴＯ＿６０００を１００倍した値、除数に６０００ゲーム役物払出ＴＯ＿６０００、百分率にゼロをそれぞれセットする。
なお、６０００ゲーム連役比率更新処理では、上記に代えて、被除数に６０００ゲーム総払出ＴＯ＿６０００を１００倍した値、除数に６０００ゲーム役連払出ＲＯ＿６０００をそれぞれセットする。
全ゲーム役物比率更新処理では、上記に代えて、被除数に全ゲーム総払出ＴＯ＿ＡＬＬを１００倍した値、除数に全ゲーム役連払出ＹＯ＿ＡＬＬをそれぞれセットする。
全ゲーム連役比率更新処理では、上記に代えて、被除数に全ゲーム総払出ＴＯ＿ＡＬＬを１００倍した値、除数に全ゲーム役連払出ＲＯ＿ＡＬＬをそれぞれセットする。
【００９０】
次のステップＳ１２０２では、百分率算出処理Ｂを実行し、次のステップＳ１２０３にて、６０００ゲーム役物比率ＹＨ＿６０００に、百分率算出処理Ｂにて算出した百分率をセットしてリターンする。
なお、６０００ゲーム連役比率更新処理では、上記に代えて、百分率算出処理Ａにて算出した百分率を６０００ゲーム連役比率ＲＨ＿６０００にセットする。
全ゲーム役物比率更新処理では、上記に代えて、百分率算出処理Ａにて算出した百分率を全ゲーム役物比率ＹＨ＿ＡＬＬにセットする。
全ゲーム連役比率更新処理では、上記に代えて、百分率算出処理Ａにて算出した百分率を全ゲーム連役比率ＲＨ＿ＡＬＬにセットする。
【００９１】
図１３は、主制御装置３１のＣＰＵ４１で実行される、百分率算出処理Ｂのフローチャートを示している。
本処理は、主制御装置３１のＲＡＭ４３の第２ワーク領域ＷＯＲＫ２＿ＡＲＥＡに記憶されている各種データの更新を伴うため、当該処理プログラムは、主制御装置３１のＲＯＭ４２の第２プログラム領域ＰＧ２＿ＡＲＥＡに記憶されている。
このため、当該処理は、最初のステップＳ１３０１で割込禁止、最後のステップＳ１３１６で割込許可を行っていることからわかるように、割り込み禁止区間に実行される。以下、この割込み禁止区間にて実行する各ステップについて説明する。
【００９２】
先ず、ステップＳ１３０２にて、ループカウンタＮにゼロをセットするとともに、ステップＳ１３０３にて、被除数を表すのに必要な最小限のビット数をＮｍａｘにセットする。
図１４に、被除数が４２４０００、除数が８００００の場合の具体例を示す。
この場合、百分率は５３となるが、以下の図１３の各ステップの説明の際に、適宜図１４を参照して、当該具体例についても説明する。
図１４に示す具体例において、被除数４２４０００を表すのに必要な最小限のビット数は２３ビットであるため、Ｎｍａｘは２３となる。
【００９３】
図１３に戻り、次のステップＳ１３０４では、Ｎを１インクリメントするとともに、ステップＳ１３０５にて、余りに被除数の最上位ビットからＮビット分の値をセットする。
次のステップＳ１３０６では、余りが除数以上か否かを判断し、ノーと判断した場合には、ステップＳ１３１５にて、ＮがＮｍａｘに至ったか否かを判断する。ステップＳ１３１５にてノーと判断した場合には、ステップＳ１３０４に戻る一方、イエスと判断した場合には、ステップＳ１３１６へ移行する。
【００９４】
また、ステップＳ１３０６にてイエスと判断した場合には、ステップＳ１３０７にて、百分率の（Ｎｍａｘ−Ｎ＋１）ビット目に１をセットするとともに、ステップＳ１３０８にて、余りから除数を減算してステップＳ１３０９に移行する。
【００９５】
図１４に示す具体例において、ステップＳ１３０６にてイエスと判断されるのは、Ｎが１８となった場合であり、この際の余りは、被除数の上位から１８ビット分の値、即ち、１３２５００となる。この後、ステップＳ１３０７にて、百分率の（Ｎｍａｘ（＝２３）−Ｎ（＝１８）＋１）ビット目、即ち６ビット目に１をセットするとともに、ステップＳ１３０８にて、余り（＝１３２５００）から除数（＝８００００）が減算され、余りは５２５００となる。
【００９６】
図１３に戻り、次のステップＳ１３０９では、Ｎを１インクリメントするとともに、ステップＳ１３１０にて、ＮがＮｍａｘよりも大きいか否かを判断する。ステップＳ１３１０にてイエスと判断した場合には、ステップＳ１３１６へ移行する一方、ノーと判断した場合には、ステップＳ１３１１へ移行する。
【００９７】
ステップＳ１３１１では、余りを１ビット分上位側へシフト（左シフト）するとともに、余りの最下位ビットに、被除数の最上位ビットからＮビット目の値をセットする。
次のステップＳ１３１２では、余りが除数以上か否かを判断し、ノーと判断した場合には、ステップＳ１３０９へ戻る一方、イエスと判断した場合には、ステップＳ１３１３にて、百分率の（Ｎｍａｘ−Ｎ＋１）ビット目に１をセットするとともに、ステップＳ１３１４にて、余りから除数を減算してステップＳ１３０９に戻る。
【００９８】
図１４に示す具体例において、Ｎが１９の場合は、ステップＳ１３１１での処理の結果、余りは１０５０００となる。余りは除数（＝８００００）よりも大きいため、ステップＳ１３１２にてイエスと判断され、この後、ステップＳ１３１３にて、百分率の（Ｎｍａｘ（＝２３）−Ｎ（＝１９）＋１）ビット目、即ち５ビット目に１をセットするとともに、ステップＳ１３１４にて、余り（＝１０５０００）から除数（＝８００００）が減算され、余りは２５０００となる。
【００９９】
ステップＳ１３１４の後、ステップＳ１３０９にてＮが２０となった場合は、ステップＳ１３１１での処理の結果、余りは５００００となる。余りは除数（＝８００００）よりも小さいため、ステップＳ１３１２にてノーと判断され、ステップＳ１３０９へ戻り、Ｎが２１となる。
【０１００】
Ｎが２１となった場合は、ステップＳ１３１１での処理の結果、余りは１０００００となる。余りは除数（＝８００００）よりも大きいため、ステップＳ１３１２にてイエスと判断され、この後、ステップＳ１３１３にて、百分率の（Ｎｍａｘ（＝２３）−Ｎ（＝２１）＋１）ビット目、即ち３ビット目に１をセットするとともに、ステップＳ１３１４にて、余り（＝１０００００）から除数（＝８００００）が減算され、余りは２００００となる。
【０１０１】
ステップＳ１３１４の後、ステップＳ１３０９にてＮが２２となった場合は、ステップＳ１３１１での処理の結果、余りは４００００となる。余りは除数（＝８００００）よりも小さいため、ステップＳ１３１２にてノーと判断され、ステップＳ１３０９へ戻り、Ｎが２３となる。
【０１０２】
Ｎが２３となった場合は、ステップＳ１３１１での処理の結果、余りは８００００となる。余りは除数（＝８００００）と等しいため、ステップＳ１３１２にてイエスと判断され、この後、ステップＳ１３１３にて、百分率の（Ｎｍａｘ（＝２３）−Ｎ（＝２３）＋１）ビット目、即ち１ビット目に１をセットするとともに、ステップＳ１３１４にて、余り（＝８００００）から除数（＝８００００）が減算され、余りは０となる。
その後、ステップＳ１３０９へ戻り、Ｎが２４となり、ステップＳ１３１０にてイエスと判断されて、ステップＳ１３１６へ移行する。
この結果、百分率は、２進数で１１０１０１、即ち５３となる。
【０１０３】
以上の説明からわかるように、第２実施例の百分率算出処理Ｂにおいて、減算処理の最大回数は、百分率の最大値である１００を表すのに必要なビット数、即ち７回となる。
また、減算処理以外の処理は、ビットのシフト処理ならびに論理演算であるため、処理時間を要さない。このため、第１実施例の百分率算出処理Ａのように、百分率の算出を一旦中断して、割込禁止期間を解除しなくとも、１つの連続した短い割込禁止期間で、百分率の算出を完了させることが出来るため、タイマー割込処理を遅延させることがない。従って、これに起因する不具合が生じることもない。
【０１０４】
以上説明したように、第１実施例の百分率算出処理Ａ、または第２実施例の百分率算出処理Ｂによれば、タイマー割込処理の遅延による不具合を招くことなく、役物比率並びに連役比率の算出が可能となる。
【０１０５】
なお、６０００ゲーム役物比率ＹＨ＿６０００、６０００ゲーム連役比率ＲＨ＿６０００、全ゲーム役物比率ＹＨ＿ＡＬＬ及び全ゲーム連役比率ＲＨ＿ＡＬＬは、前扉３が開放された状態において、役比表示装置ＹＨに表示される。当該役比表示装置ＹＨの表示更新処理は、タイマー割込処理にて実行される。具体的には、前扉３開放後、一定時間（例えば５秒間）は、６０００ゲーム役物比率ＹＨ＿６０００が役比表示装置ＹＨに表示され、一定時間経過後は、さらに一定時間、６０００ゲーム連役比率ＲＨ＿６０００が役比表示装置ＹＨに表示される、といったように、上記４種類の比率が順次、役比表示装置ＹＨに表示されるようになっている。
【０１０６】
以上、本発明の一実施形態について説明したが、本発明は、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。
例えば、上記では本発明をスロットマシンに適用した実施形態について説明したが、スロットマシンと同様に、主制御装置のＣＰＵとしてＺ８０ベースのＣＰＵを用いるパチンコ遊技機への適用はいうまでもなく可能である。
【０１０７】
また、上記では本発明を百分率の算出に適用した実施形態について説明したが、百分率に限らず、スロットマシンやパチンコ遊技機において、第１値と、該第１値よりも大きくなることはない第２値とに関し、前記第１値を所定の整数値とした場合に前記第２値が相当する整数値たる分率を算出する場合、例えば、千分率等を算出する場合にも適用が可能である。
【符号の説明】
【０１０８】
１……スロットマシン、４Ｌ、４Ｃ、４Ｒ……リール、１７……ＭＡＸベットボタン、
１９……スタートレバー、２０Ｌ、２０Ｃ、２０Ｒ……ストップボタン、
３１……主制御装置、４１……ＣＰＵ、４２……ＲＯＭ、４３……ＲＡＭ、
４６……クロック発生回路、ＹＤ……役比表示装置
【図１】
2018110640.tif 000003
【図２】
2018110640.tif 000004
【図３】
2018110640.tif 000005
【図４】
2018110640.tif 000006
【図５】
2018110640.tif 000007
【図６】
2018110640.tif 000008
【図７】
2018110640.tif 000009
【図８】
2018110640.tif 000010
【図９】
2018110640.tif 000011
【図１０】
2018110640.tif 000012
【図１１】
2018110640.tif 000013
【図１２】
2018110640.tif 000014
【図１３】
2018110640.tif 000015
【図１４】
2018110640.tif 000016