IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ サミー株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-06
(45)【発行日】2024-08-15
(54)【発明の名称】遊技機
(51)【国際特許分類】
   A63F 5/04 20060101AFI20240807BHJP
【FI】
A63F5/04 611B
【請求項の数】 1
(21)【出願番号】P 2020107028
(22)【出願日】2020-06-22
(65)【公開番号】P2022001222
(43)【公開日】2022-01-06
【審査請求日】2023-04-18
(73)【特許権者】
【識別番号】390031783
【氏名又は名称】サミー株式会社
(74)【代理人】
【識別番号】100113228
【弁理士】
【氏名又は名称】中村 正
(72)【発明者】
【氏名】松田 健二
(72)【発明者】
【氏名】岡本 浩一
(72)【発明者】
【氏名】中村 一紀
【審査官】鶴岡 直樹
(56)【参考文献】
【文献】特開2021-154098(JP,A)
【文献】特開2005-160652(JP,A)
【文献】特開2012-179251(JP,A)
【文献】「日工組質問事項(PQ-17)主基板に装着されるロムの使用領域について」,日本遊技機工業組合提供資料(「性能表示モニタ」に関する技術資料),2017年03月09日
(58)【調査した分野】(Int.Cl.,DB名)
A63F 5/04
A63F 7/02
(57)【特許請求の範囲】
【請求項1】
マイクロプロセッサの記憶領域には、
主制御使用領域と、
遊技媒体数制御使用領域と、
使用領域外と、
第1レジスタバンクと、
第2レジスタバンクと
を有し、
主制御使用領域には、
第1データ領域と、
第1制御領域と、
第1RWM領域と、
を有し、
遊技媒体数制御使用領域には、
第2データ領域と、
第2制御領域と、
第2RWM領域と、
を有し、
使用領域外には、
第3データ領域と、
第3制御領域と、
第3RWM領域と、
を有し、
第1制御領域に記憶されているプログラムを用いて第3RWM領域に記憶されているデータを参照可能であり、
第2制御領域に記憶されているプログラムを用いて第3RWM領域に記憶されているデータを参照可能であり、
第3制御領域に記憶されているプログラムを用いて第1RWM領域に記憶されているデータを参照可能であり、
第3制御領域に記憶されているプログラムを用いて第2RWM領域に記憶されているデータを参照可能であり、
第1レジスタバンクは、第1制御領域に記憶されているプログラムで使用され、
第2レジスタバンクは、第2制御領域に記憶されているプログラムで使用され、
第1レジスタバンクには、複数のレジスタを有し、
第2レジスタバンクには、複数のレジスタを有し、
第1制御領域に記憶されている特殊呼び出し命令を実行することによって、第1制御領域のプログラムから第2制御領域のプログラムの呼び出しが可能であり、
第1制御領域に記憶されている特殊呼び出し命令を実行することによって、第1レジスタバンクから第2レジスタバンクに切り換え可能とする
遊技機。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、遊技機に関するものである。
【背景技術】
【0002】
従来より、遊技価値(遊技媒体)として、物理的な(有体物としての)メダルを用いずに、電子情報(電子メダル)を用いる遊技機(「メダルレス遊技機」、「管理遊技機」、「封入式遊技機」等と称される。)が知られている(たとえば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2015-062558号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、遊技価値として電子情報を用いる遊技機において、適切な情報処理を実行可能とすることである。
【課題を解決するための手段】
【0005】
本発明は、以下の解決手段によって上述の課題を解決する(かっこ書きで、対応する実施形態の構成を示す。)。
本発明は、
マイクロプロセッサ(1チップマイクロプロセッサ500)の記憶領域には、
主制御使用領域(図53(A)中、領域1)と、
遊技媒体数制御使用領域(図53(A)中、領域2)と、
使用領域外(図53(A)中、領域3)と、
第1レジスタバンク(レジスタバンク0)と、
第2レジスタバンク(レジスタバンク1)と
を有し、
主制御使用領域には、
第1データ領域(図53(A)中、データ領域1)と、
第1制御領域(図53(A)中、制御領域1)と、
第1RWM領域(図53(A)中、RWM領域1)と、
を有し、
遊技媒体数制御使用領域には、
第2データ領域(図53(A)中、データ領域2)と、
第2制御領域(図53(A)中、制御領域2)と、
第2RWM領域(図53(A)中、RWM領域2)と、
を有し、
使用領域外には、
第3データ領域(図53(A)中、データ領域3)と、
第3制御領域(図53(A)中、制御領域3)と、
第3RWM領域(図53(A)中、RWM領域3)と、
を有し、
第1制御領域に記憶されているプログラムを用いて第3RWM領域に記憶されているデータを参照可能であり、
第2制御領域に記憶されているプログラムを用いて第3RWM領域に記憶されているデータを参照可能であり、
第3制御領域に記憶されているプログラムを用いて第1RWM領域に記憶されているデータを参照可能であり、
第3制御領域に記憶されているプログラムを用いて第2RWM領域に記憶されているデータを参照可能であり、
第1レジスタバンクは、第1制御領域に記憶されているプログラムで使用され、
第2レジスタバンクは、第2制御領域に記憶されているプログラムで使用され、
第1レジスタバンクには、複数のレジスタを有し、
第2レジスタバンクには、複数のレジスタを有し、
第1制御領域に記憶されている特殊呼び出し命令を実行することによって、第1制御領域のプログラムから第2制御領域のプログラムの呼び出しが可能であり、
第1制御領域に記憶されている特殊呼び出し命令を実行することによって、第1レジスタバンクから第2レジスタバンクに切り換え可能とする
遊技機である。
【発明の効果】
【0006】
本発明によれば、適切な情報処理を実行可能となる。
【図面の簡単な説明】
【0007】
図1】第1実施形態において、遊技機の一例であるスロットマシンの制御の概略を示すブロック図である。
図2】第1実施形態において、電力供給経路の例1を示す図である。
図3】第1実施形態において、電力供給経路の例2を示す図である。
図4】第1実施形態において、メイン制御基板から払出制御基板に送信されるコマンド(メイン制御コマンド)の一覧を示す図である。
図5】第1実施形態において、払出制御基板からメイン制御基板に送信されるコマンド(払出制御コマンド)の一覧を示す図である。
図6】第1実施形態において、管理装置から払出制御基板に送信されるコマンド(管理装置コマンド)の一覧を示す図である。
図7】第1実施形態において、払出制御基板から管理装置に送信されるコマンド(遊技機コマンド)の一覧を示す図である。
図8】第1実施形態において、払出制御基板におけるメインルーチンの処理の流れを示すフローチャートである。
図9図8のステップS110におけるメイン制御コマンド解析処理の流れを示すフローチャートである。
図10図8のステップS110におけるメイン制御コマンド解析処理の流れを示すフローチャートであり、図9に続くフローチャートである。
図11図8のステップS119における貸出処理の流れを示すフローチャートである。
図12図8のステップS117における計数処理の流れを示すフローチャートである。
図13】第1実施形態において、メイン制御基板におけるメインルーチンの処理の流れを示すフローチャートである。
図14】第1実施形態において、メイン制御基板及び払出制御基板における電源投入処理の流れを示すフローチャートである。
図15】第1実施形態において、メイン制御基板及び払出制御基板における設定変更処理の流れを示すフローチャートである。
図16】第1実施形態において、メイン制御基板及び払出制御基板における3枚ベット処理の流れを示すフローチャートである。
図17】第1実施形態において、メイン制御基板及び払出制御基板における1枚ベット処理の流れを示すフローチャートである。
図18】第1実施形態において、メイン制御基板及び払出制御基板における遊技開始処理の流れを示すフローチャートである。
図19】第1実施形態において、メイン制御基板及び払出制御基板における遊技終了処理の流れを示すフローチャートである。
図20】第1実施形態において、メイン制御基板及び払出制御基板における払出処理の流れを示すフローチャートである。
図21】第1実施形態において、メイン制御基板及び払出制御基板における返却処理の流れを示すフローチャートである。
図22】第1実施形態において、払出制御基板及び管理装置における電源投入処理の流れを示すフローチャートである。
図23】第1実施形態において、払出制御基板及び管理装置における貸出処理の流れを示すフローチャートである。
図24】第1実施形態において、払出制御基板及び管理装置における計数処理の流れを示すフローチャートである。
図25】第1実施形態において、払出制御基板及び管理装置における計数処理の流れを示すフローチャートであり、図24に続くフローチャートである。
図26】第1実施形態において、払出制御基板と管理装置との間におけるシリアル通信のデータ信号及びストローブ信号の波形を示す図である。
図27】第1実施形態において、電子メダル貸出し時における各信号のオン/オフを示すタイミングチャートである。
図28】第1実施形態において、電子メダル計数(払戻し)時における各信号のオン/オフを示すタイミングチャートである。
図29】第2実施形態において、遊技機の制御の概略を示すブロック図である。
図30】第2実施形態において、遊技機と貸出ユニットとの間の電文を説明する図である。
図31】第2実施形態において、遊技機性能情報、遊技機設置情報、ホールコン・不正監視情報を説明する図である。
図32】第2実施形態において、基本通信シーケンスを示すタイムチャートである。
図33】第2実施形態において、起動シーケンスの例1(遊技機が先に起動した場合)を示すタイムチャートである。
図34】第2実施形態において、起動シーケンスの例2(貸出ユニットが先に起動した場合)を示すタイムチャートである。
図35】第2実施形態において、遊技機情報通知の基本シーケンスを示すタイムチャートである。
図36】第2実施形態において、計数通知シーケンスを示すタイムチャートである。
図37】第2実施形態において、計数処理を示すフローチャートである。
図38】第2実施形態において、貸出通知シーケンスを示すタイムチャートである。
図39】第2実施形態において、遊技機情報通知タイマ及び遊技機情報通知要求フラグを示す図である。
図40】第2実施形態において、遊技機情報通知タイマの更新シーケンスを示すタイムチャートである。
図41】第2実施形態において、遊技機情報管理を示すフローチャートである。
図42】第3実施形態におけるメインCPU55の内蔵メモリを示す図であり、(A)は内蔵メモリの概要を示し、(B)は内蔵レジスタ領域を示す。
図43】Fレジスタの詳細な構成を示す図である。
図44】第3実施形態におけるスタック領域を示す図である。
図45】第3実施形態における主要な命令を示す図である。
図46】LDF命令及びLD命令の態様を示す図である。
図47】CALLEX命令の態様を示す図である。
図48】従来のCALL命令及びRET命令の一例を示す図である。
図49】第3実施形態におけるプログラム開始(M_PRG_SET )を示すフローチャートである。
図50】CALLEX命令及びジャンプ命令を使用した例を示す図である。
図51】第4実施形態における遊技機の制御の概略を示すブロック図である。
図52】第4実施形態における内蔵メモリのメモリマップを示す図である。
図53】第4実施形態における領域の区分を示す図であり、(A)は例1を示し、(B)は例2を示す。
図54】第4実施形態における領域間の通信を説明する図である。
図55】制御領域1~3のプログラム例(例1)を示す図である。
図56】制御領域1~3のプログラム例(例2)を示す図である。
図57】制御領域1~3のプログラム例(例3)を示す図である。
図58】制御領域1~3のプログラムの変形例を示す図である。
【発明を実施するための形態】
【0008】
本明細書において、用語の意味は、以下の通りである。
「遊技価値(遊技媒体)」とは、遊技の用に供する媒体をいい、本実施形態では「電子情報(電子メダル)」である。
また、「電子情報(電子メダル)」とは、管理装置(CRユニット)200に金銭(紙幣)を投入すると、その金額に応じた電子情報に変換され、その電子情報の一部又は全部が遊技機で遊技を行うための遊技価値として遊技機にクレジット可能となるものである。
【0009】
さらにまた、「管理装置(CRユニット)200」とは、遊技価値としての電子情報の貸出し及び払戻しの管理を行うための装置であり、遊技機1台ごとに設けられ、その遊技機に隣接して配置されるものである。ホールでは、管理装置200は、遊技機の間に配置されることから、サンドと称される。また、遊技機と、その遊技機に対応する管理装置200とから、「遊技システム」が構成される。
さらに、「貸出し」とは、管理装置200から遊技機に遊技価値としての電子情報を移し、遊技機の内部にクレジットすることをいう。
【0010】
また、「計数」とは、遊技機の内部にクレジットされている遊技価値としての電子情報を管理装置200に戻すことをいう。計数スイッチ47を操作すると、遊技機の内部にクレジットされている遊技価値としての電子情報が管理装置200に戻される。このとき、クレジット数が「0」になり、その分、管理装置200において管理する電子情報が加算される。
さらにまた、「クレジット」とは、遊技機の内部に遊技価値としての電子情報を貯留することをいう。
さらに、「ベット」とは、遊技を行うために遊技価値としての電子情報を賭けることをいう。ベットスイッチ40を操作すると、クレジットされている遊技価値としての電子情報がベットされる。
【0011】
「規定数」とは、当該遊技で遊技を開始(実行)可能なベット数をいう。
また、「払出し」とは、役の入賞に基づき、入賞役の配当に応じた数の遊技価値としての電子情報をクレジット数に加算するこという。
さらにまた、「ベットメダル」とは、遊技を行うためにベットされている遊技価値としての電子情報をいう。
さらに、「貯留メダル」とは、クレジット(貯留)されている遊技価値としての電子情報をいう。
【0012】
また、「貯留ベット」とは、ベットスイッチ40を操作することにより、当該遊技でベット可能な範囲内において、遊技機の内部にクレジットされている遊技価値としての電子情報の一部又は全部を、遊技を行うためにベットすることをいう。
さらにまた、「自動ベット」とは、リプレイが入賞したときに、遊技機としてのスロットマシン10の制御処理により、前回遊技でベットされていた数の遊技価値としての電子情報を自動でベットすることをいう。
【0013】
さらに、「キャンセル」とは、キャンセルスイッチ46を操作することにより、ベットされている遊技価値としての電子情報(ベットメダル)をクレジットに戻すことをいう。キャンセルスイッチ46を操作すると、ベットされている遊技価値としての電子情報がクレジットに戻される。このとき、ベットメダルの数が「0」になり、その分、クレジット数に加算される。
また、「返却」とは、管理装置200の内部に貯留されている遊技価値としての電子情報をカード(磁気カードやICカード等)に記憶し、そのカードをカードリーダライタ205から排出することをいう。返却スイッチ203を操作すると、電子情報がカードに記憶されてカードリーダライタ205から排出される。
【0014】
また、「N-1」遊技目、「N」遊技目、「N+1」遊技目、・・・(「N」は、2以上の整数)と遊技が進行する場合において、現在の遊技が「N」遊技目であるとき、「N」遊技目の遊技を「今回遊技」と称する。また、「N-1」遊技目の遊技を「前回遊技」と称する。さらにまた、「N+1」遊技目の遊技を「次回遊技」と称する。
【0015】
本明細書において、数字の末尾(特に、8ビット)に「(B)」を付した数値は、2進数を意味する。同様に、数字の末尾に「(H)」を付した数値は、16進数を意味する。具体的には、たとえば10進数で「16」を示す数値は、2進数では「00010000(B)」と表記し、16進数では「10(H)」と表記する。また、10進数を意味する数値については、必要に応じて「16(D)」と表記する。
ただし、2進数、10進数、及び16進数のいずれであるかが明確であるときは、それぞれ「(B)」、「(D)」、「(H)」の末尾記号を省略する場合がある。
【0016】
以下、図面等を参照して、本発明の一実施形態について説明する。
<第1実施形態>
第1実施形態における遊技機の一例であるスロットマシン10は、遊技価値(遊技媒体)として、物理的な(有体物としての)メダルを使用せずに、電子情報(電子メダル)を使用するものである。このため、本実施形態のスロットマシン10は、メダル投入口、メダルセレクタ、及びメダル払出し装置等を備えていない。
【0017】
また、第1実施形態では、スロットマシン10に隣接して、管理装置(CRユニット)200が配置されており、さらに、スロットマシン10と管理装置200とは、双方向で通信可能に接続されている。そして、スロットマシン10と管理装置200との間で通信により電子メダルを移行可能とされており、スロットマシン10においては、管理装置200から移行された電子メダルを使用して遊技を実行可能とされている。
【0018】
図1は、第1実施形態における遊技機の一例であるスロットマシン10の制御の概略を示すブロック図である。図1では、スロットマシン10とともに、管理装置(CRユニット)200、及びホールコンピュータ300を示している。
図1に示すように、本実施形態では、スロットマシン10は、代表的な制御基板として、メイン制御基板50、サブ制御基板80、及び払出制御基板100(クレジット数管理基板)を備えている。
【0019】
図1中、実線部がデータのやりとりを示す通信線であり、矢印の向きは、データの流れる方向を示している。たとえば、メイン制御基板50と払出制御基板100とは、双方向で通信可能に形成されている。これに対し、メイン制御基板50とサブ制御基板80とは、メイン制御基板50からサブ制御基板80に対して一方向の通信となっている。
また、図1に示すように、メイン制御基板50は、入力ポート51及び出力ポート52を有し、RWM53、ROM54及びメインCPU55等を備えている(図1で図示したもののみを備える意味ではない)。
【0020】
さらにまた、図1に示すように、メイン制御基板50と、ベットスイッチ40等の操作スイッチを含む遊技進行用の周辺機器とは、入力ポート51又は出力ポート52を介して電気的に接続されている。
入力ポート51は、操作スイッチ等の信号が入力される接続部であり、出力ポート52は、モータ32等の周辺機器に対して信号を送信する接続部である。
図1中、入力用の周辺機器は、その周辺機器からの信号がメイン制御基板50に向かう矢印で表示しており、出力用の周辺機器は、メイン制御基板50からその周辺機器に向かう矢印で示している(サブ制御基板80も同様である)。
【0021】
また、RWM53は、遊技の進行等に基づいた各種データ(変数)を記憶(更新)可能な記憶媒体である。
さらにまた、ROM54は、遊技の進行に必要なプログラムや各種データ(たとえば、データテーブル)等を記憶しておく記憶媒体である。
さらに、メインCPU55は、メイン制御基板50上に設けられたCPU(演算機能を備えるIC)を指し、遊技の進行に必要なプログラムの実行、演算等を行い、具体的には、役の抽選、リール31の駆動制御、及び入賞時の払出し等を実行する。
【0022】
また、メイン制御基板50上には、RWM53、ROM54、メインCPU55及びレジスタを含むMPUが搭載される。なお、RWM53及びROM54は、MPU内部に搭載されるもの以外に、外部に備えていてもよい。
なお、後述するサブ制御基板80上においても、RWM83、ROM84、及びサブCPU85を含むMPUが搭載される。なお、RWM83及びROM84は、MPU内部に搭載されるもの以外に、外部に備えてもよい。
【0023】
また、図1に示すように、本実施形態では、スロットマシン10は、遊技者が操作する操作スイッチとして、ベットスイッチ40、スタートスイッチ41、(左、中、右)ストップスイッチ42、キャンセルスイッチ46、及び計数スイッチ47を備えている。
そして、ベットスイッチ40、スタートスイッチ41、(左、中、右)ストップスイッチ42、及びキャンセルスイッチ46については、メイン制御基板50と電気的に接続されており、計数スイッチ47については、メイン制御基板50ではなく、後述する払出制御基板100(クレジット数管理基板)と電気的に接続されている。
【0024】
ここで、「操作スイッチ(又は、単に、「スイッチ」)」とは、遊技者(操作者)による操作体の操作に基づいて(外部からの力を受け)、電気信号のオン/オフを切り替える装置(電気回路及び/又は電気部品を含む)を指し、遊技者が操作する操作体の形状を限定するものではない。
操作スイッチがオフ状態であるときは、たとえば発光素子からの光が受光素子に入射し続けている(受光素子が光を検知し続けているときは、操作スイッチはオフ状態にある。)。そして、遊技者等により操作スイッチ(の操作体)が操作されると、発光素子からの光が受光素子に入射しない状態となる。この状態を検知したときに、操作スイッチがオン状態になったことを示す電気信号をメイン制御基板50に送信する。なお、上記とは逆に、操作スイッチがオフ状態であるときは発光素子からの光が受光素子に入射せず、発光素子からの光が受光素子に入射したときにオン状態となるように構成してもよい。
【0025】
本実施形態では、スタートスイッチ41の操作体は、レバー(棒)状であり(このため、「スタートレバー(スイッチ)41」とも称される。)、ベットスイッチ40、ストップスイッチ42、キャンセルスイッチ46、計数スイッチ47の操作体は、押しボタン状である(このため、「ベットボタン(スイッチ)40」、「停止(ストップ)ボタン(スイッチ)42」、「キャンセルボタン(スイッチ)46」、「計数ボタン(スイッチ)47」とも称される)。
【0026】
また、図1では図示しないが、操作スイッチの操作体及び/又はその周囲若しくは近傍には、LED(発光手段)が設けられている。そして、その操作スイッチの操作受付けが許可状態にあるときは、たとえばその操作スイッチに対応するLED等を青色発光し、その操作スイッチの操作受付けが不許可状態にあるときは、たとえばその操作スイッチのLED等を赤色発光することにより、その操作スイッチの許可/不許可状態を遊技者に示すようにしている。
【0027】
ベットスイッチ40は、スロットマシン10の内部にクレジットされている電子メダルを今回遊技のためにベットするときに遊技者に操作される操作スイッチである。
本実施形態では、ベットスイッチ40として、1回の操作で1枚の電子メダルをベットするための1ベットスイッチ40aと、1回の操作で3枚(最大数、規定数)の電子メダルをベットするための3ベットスイッチ40bとを備えている。
なお、ベットスイッチ40を1個のみ備え、このベットスイッチ40を1回操作することで、クレジットされている電子メダルのうち3枚(最大数、規定数)の電子メダルがベットされるようにしてもよい。
【0028】
また、スタートスイッチ41は、(左、中、右のすべての)リール31を始動(リール31の回転を開始)させるときに遊技者に操作される操作スイッチである。
さらにまた、ストップスイッチ42は、3つ(左、中、右)のリール31に対応して3つ設けられており、対応するリール31を停止させるときに遊技者に操作される操作スイッチである。
【0029】
さらに、キャンセルスイッチ46は、ベットされている電子メダル(ベットメダル)をクレジットに戻すときに遊技者に操作される操作スイッチである。
キャンセルスイッチ46を操作すると、ベットされている電子メダルがクレジットに戻される。このとき、ベット数が「0」になり、その分、クレジット数に加算される。たとえば、3枚の電子メダルがベットされている状況下で、キャンセルスイッチ46を操作すると、ベット数が「3」から「0」になり、クレジット数に「3」が加算される。
【0030】
電源スイッチ11は、スロットマシン10の電源のオン/オフを行うときに操作されるスイッチである。
設定キースイッチ12は、設定変更時や設定確認時に操作されるスイッチである。
設定キー挿入口に設定キーを挿入し、時計回りに90度回転させると、設定キースイッチ12がオンになる。
また、電源スイッチ11をオフにした状態(電源断の状態)で、設定キースイッチ12をオンにし、この状態で、電源スイッチ11をオンにすると、設定変更中、すなわち設定変更モードになる。
さらにまた、電源スイッチ11がオンの状態で、設定キースイッチ12をオンにすると、設定確認中、すなわち設定確認モードになる。
【0031】
設定スイッチ13は、設定値を変更するときに操作されるスイッチである。
設定変更中に設定スイッチ13を1回操作するごとに、設定値が「1」加算される。
本実施形態では、設定値は、設定1から設定6まで有し、設定変更中は、設定スイッチ13を1回操作するごとに、設定値が、「1」→「2」→・・・→「6」→「1」→・・・と切り替わる。
なお、設定変更中にはいずれかの設定値が所定の表示装置に表示されており、スタートスイッチ41を操作すると、表示されている設定値が確定する。
【0032】
リセットスイッチ14は、RWM53を初期化するときやエラーを解除するときに操作されるスイッチである。
リセットスイッチ14をオンにした状態で電源スイッチ11をオンにすると、初期化処理が行われ、RWM53に記憶されている所定のデータがクリアされる。
また、エラーの原因を除去し、リセットスイッチ14を操作(オン)すると、エラーが解除される。
【0033】
また、メイン制御基板50は、出力ポート52の一部から、外部集中端子板190に対し、外部信号(外端信号)を出力する。
ここで、「外部信号」とは、外部集中端子板190を介してスロットマシン10の外部(ホールコンピュータ300や、ホールに設置されているデータカウンタ等)に出力するための信号である。
図1に示すように、メイン制御基板50は、外部集中端子板190を介して、ホールコンピュータ300と電気的に接続されている。そして、メイン制御基板50から外部集中端子板190に対して一方向で信号を送信し、外部集中端子板190からホールコンピュータ300に対して一方向で信号を送信する。
【0034】
また、図1に示すように、本実施形態では、スロットマシン10は、枚数表示装置として、獲得数表示LED78、及びクレジット数表示LED76を備えている。
そして、獲得数表示LED78は、メイン制御基板50と電気的に接続されており、クレジット数表示LED76は、メイン制御基板50ではなく、後述する払出制御基板100(クレジット数管理基板)と電気的に接続されている。
獲得数表示LED78は、役の入賞時に、電子メダルの払出し枚数(遊技者の獲得数)を表示するLEDであり、上位桁及び下位桁の2桁から構成されている。
なお、獲得数表示LED78は、払い出される電子メダルがないときは、消灯するように制御してもよい。あるいは、上位桁を消灯し、下位桁のみを「0」表示してもよい。
【0035】
また、獲得数表示LED78は、通常は電子メダルの払出し枚数(獲得数)を表示するが、エラー発生時にはエラーの内容(種類)を表示するLEDとして機能する。
さらにまた、獲得数表示LED78は、AT中に押し順を報知する遊技では、押し順指示情報を表示する(有利な押し順を報知する)LEDとして機能する。
よって、本実施形態における獲得数表示LED78は、払出し枚数(獲得数)、エラー内容、及び押し順指示情報の表示を兼ねるLEDである。ただし、これに限らず、押し順指示情報を表示する専用のLED等を設けてもよいのはもちろんである。
なお、AT中において、有利な押し順の報知は、サブ制御基板80に接続された画像表示装置23によっても実行される。
【0036】
また、図1に示すように、メイン制御基板50には、図柄表示装置のモータ32(本実施形態ではステッピングモータ)等が電気的に接続されている。
図柄表示装置は、図柄を表示する(本実施形態では3つの)リール31と、各リール31をそれぞれ駆動するモータ32と、リール31の位置を検出するためのリールセンサ33とを含む。
【0037】
モータ32は、リール31を回転させるための駆動手段となるものであり、各リール31の回転中心部に連結され、リール制御手段65によって制御される。
ここで、リール31は、左リール31、中リール31、右リール31からなり、左リール31を停止させるときに操作するストップスイッチ42が左ストップスイッチ42であり、中リール31を停止させるときに操作するストップスイッチ42が中ストップスイッチ42であり、右リール31を停止させるときに操作するストップスイッチ42が右ストップスイッチ42である。
【0038】
リール31は、リング状のものであって、その外周面には複数種類の図柄(役に対応する図柄組合せを構成している図柄)を印刷したリールテープを貼付したものである。
また、各リール31には、1個(2個以上であってもよい)のインデックスが設けられている。インデックスは、リール31のたとえば周側面に凸状に設けられており、リール31が所定位置を通過したか否かや、1回転したか否か等を検出するときに用いられる。そして、各インデックスは、リールセンサ33によって検知される。
【0039】
リールセンサ33は、メイン制御基板50に電気的に接続されている。そして、リールセンサ33がインデックスを検知すると、その入力信号がメイン制御基板50に入力され、そのリール31が所定位置を通過したことが検知される。
また、リールセンサ33がリール31のインデックスを検知した瞬間の基準位置上の図柄を予めROM54に記憶している。これにより、インデックスを検知した瞬間の基準位置上の図柄を検知することができる。さらに、リールセンサ33がリール31のインデックスを検知した瞬間から、(ステッピング)モータ32を何パルス駆動すれば、前記基準位置上の図柄から数えて何図柄先の図柄を有効ライン上に停止させることができるかを識別可能となる。
【0040】
遊技者は、遊技を開始するときは、クレジットされている電子メダルをベットスイッチ40の操作によりベットする。そして、当該遊技の規定数の電子メダルがベットされた状態でスタートスイッチ41が操作されると、そのときに発生する信号がメイン制御基板50に入力される。メイン制御基板50は、この信号を受信すると、役抽選手段61(内部抽せん手段)による抽選を行うとともに、すべてのモータ32を駆動制御して、すべてのリール31を回転させるように制御する。このようにしてリール31がモータ32によって回転されることで、リール31上の図柄は、所定の速度で表示窓内で上下方向に移動表示される。
【0041】
そして、遊技者は、ストップスイッチ42を操作することで、そのストップスイッチ42に対応するリール31(たとえば、左ストップスイッチ42に対応する左リール31)の回転を停止させる。
ストップスイッチ42が操作されると、そのときに発生する信号がメイン制御基板50に入力される。メイン制御基板50は、この信号を受信すると、そのストップスイッチ42に対応するモータ32を駆動制御して、役抽選手段61の抽選結果(内部抽せん手段により決定した結果)に対応するように、そのモータ32に係るリール31の停止制御を行う。そして、すべてのリール31の停止時における図柄組合せにより、今回遊技の遊技結果を表示する。さらに、いずれかの役に対応する図柄組合せが有効ラインに停止したとき(その役の入賞となったとき)は、入賞した役に対応する電子メダルの払出し等が行われる。
【0042】
次に、メイン制御基板50の具体的構成について説明する。
図1に示すように、メイン制御基板50のメインCPU55は、以下の役抽選手段61等を備える。本実施形態における以下の各手段は例示であり、本実施形態で示した手段に限定されるものではない。
役抽選手段61は、当選番号の抽選(決定、選択)を行う。ここで、「役抽選手段61による当選番号の抽選」は、風営法規則(遊技機の認定及び型式の検定等に関する規則。以下、単に「規則」という。)における「内部抽せん」と同じであり、役抽選手段61による抽選結果は、規則における「内部抽せんにより決定した結果」と同じである。したがって、役抽選手段61を、規則に合わせた表現で、「内部抽せん手段61」とも称する。
【0043】
役抽選手段61により当選番号が決定されると、その当選番号に基づいて、入賞及びリプレイ条件装置番号、並びに役物条件装置番号が決定され、当該遊技で作動可能となる入賞及びリプレイ条件装置、並びに役物条件装置が定まることとなる。このため、役抽選手段61は、条件装置番号の決定(抽選又は選択)手段、当選役決定(抽選又は選択)手段等とも称される。
役抽選手段61は、たとえば、抽選用の乱数発生手段(ハードウェア乱数等)と、この乱数発生手段が発生する乱数を抽出する乱数抽出手段と、乱数抽出手段が抽出した乱数値に基づいて、当選番号を決定する当選番号決定手段とを備えている。
【0044】
乱数発生手段は、所定の領域(たとえば10進数で「0」~「65535」)の乱数を発生させる。乱数は、たとえば200n(ナノ)secで1カウントを行うカウンターが「0」~「65535」の範囲を1サイクルとしてカウントし続ける乱数であり、スロットマシン10の電源が投入されている間は、乱数をカウントし続ける。
乱数抽出手段は、乱数発生手段によって発生した乱数を、所定の時、本実施形態では遊技者によりスタートスイッチ41が操作(オン)された時に抽出する。
当選番号決定手段は、乱数抽出手段により抽出された乱数値を、抽選テーブルと照合することにより、その乱数値が属する領域に対応する当選番号を決定する。
【0045】
当選フラグ制御手段62は、役抽選手段61による抽選結果に基づいて、各役に対応する当選フラグのオン/オフを制御するものである。
本実施形態では、すべての役について、役ごとに当選フラグを備える。そして、役抽選手段61による抽選においていずれかの役の当選となったときは、その役の当選フラグをオンにする(当選フラグを立てる)。なお、役の当選には、当選役が1つである場合(単独当選)と、当選役が複数ある場合(重複当選)とが挙げられる。
【0046】
リール制御手段65は、リール31の回転開始命令を受けたとき、特に本実施形態ではスタートスイッチ41の操作(オン)を検知したときに、すべて(3つ)のリール31の回転を開始するように制御する。
また、リール制御手段65は、役抽選手段61により当選番号の決定が行われた後、今回遊技における当選フラグのオン/オフを参照して、当選フラグのオン/オフに対応する停止位置決定テーブルを選択するとともに、ストップスイッチ42が操作されたときに、ストップスイッチ42の操作(オン)を検知したときのタイミングに基づいて、そのストップスイッチ42に対応するリール31の停止位置を決定するとともに、モータ32を駆動制御して、その決定した位置にそのリール31を停止させるように制御する。
【0047】
たとえば、リール制御手段65は、少なくとも1つの当選フラグがオンである遊技では、リール31の停止制御の範囲内において、当選役(当選フラグがオンになっている役)に対応する図柄組合せを有効ラインに停止可能にリール31を停止制御するとともに、当選役以外の役(当選フラグがオフになっている役)に対応する図柄組合せを有効ラインに停止させないようにリール31を停止制御する。
ここで、「リール31の停止制御の範囲内」とは、ストップスイッチ42が操作された瞬間からリール31が実際に停止するまでの時間又はリール31の回転量(移動図柄(コマ)数)の範囲内を意味する。
【0048】
本実施形態では、リール31は、定速時は1分間で約80回転する速度で回転される。
そして、ストップスイッチ42が操作されたときは、MB作動中の所定のリール31(たとえば、中リール31)を除き、ストップスイッチ42が操作された瞬間からリール31を停止させるまでの時間が190ms以内に設定されている。これにより、本実施形態では、MB作動中の所定のリール31を除き、ストップスイッチ42が操作された瞬間の図柄からリール31が停止するまでの最大移動図柄数が4図柄に設定されている。
一方、MB作動中の所定のリール31については、ストップスイッチ42が操作された瞬間からリール31を停止させるまでの時間が75ms以内に設定されている。これにより、MB作動中の所定のリール31については、ストップスイッチ42が操作された瞬間の図柄からリール31が停止するまでの最大移動図柄数が1図柄に設定されている。
【0049】
そして、ストップスイッチ42の操作を検知した瞬間に、リール31の停止制御の範囲内にある図柄のいずれかが所定の有効ラインに停止させるべき図柄であるときは、ストップスイッチ42が操作されたときに、その図柄が所定の有効ラインに停止するように制御される。
すなわち、ストップスイッチ42が操作された瞬間に直ちにリール31を停止させると、当選番号に対応する役の図柄が所定の有効ラインに停止しないときには、リール31を停止させるまでの間に、リール31の停止制御の範囲内においてリール31を回転移動制御することで、当選番号に対応する役の図柄をできる限り所定の有効ラインに停止させるように制御する(引込み停止制御)。
【0050】
また逆に、ストップスイッチ42が操作された瞬間に直ちにリール31を停止させると、当選番号に対応しない役の図柄組合せが有効ラインに停止してしまうときは、リール31の停止時に、リール31の停止制御の範囲内においてリール31を回転移動制御することで、当選番号に対応しない役の図柄組合せを有効ラインに停止させないように制御する(蹴飛ばし停止制御)。
さらに、複数の役に当選している遊技(たとえば、押し順ベル当選時)では、ストップスイッチ42の押し順や、ストップスイッチ42の操作タイミングに応じて、入賞させる役の優先順位が予め定められており、所定の優先順位によって、最も優先する役に係る図柄の引込み停止制御を行う。
【0051】
入賞判定手段66は、リール31の停止時に、有効ラインに停止したリール31の図柄組合せが、いずれかの役に対応する図柄組合せであるか否かを判断するものである。
ここで、入賞判定手段66は、実際に、役に対応する図柄組合せが有効ラインに停止したか否かを検知することはない。具体的には、当該遊技で作動した条件装置と、ストップスイッチ42の押し順及び/又はストップスイッチ42の操作タイミングとから、リール31が実際に停止する前に有効ラインに停止する図柄組合せを予め判断するか、又はリール31の停止後に有効ラインに停止した図柄組合せを予め判断する。
【0052】
払出し手段67は、入賞判定手段66により、リール31の停止時に有効ラインに停止した図柄組合せがいずれかの役に対応する図柄組合せと一致すると判断され、その役の入賞となったときに、その入賞役に応じた枚数の電子メダルをクレジット数に加算する処理を行うものである。
また、払出し手段67は、リプレイの入賞時には、電子メダルをクレジット数に加算することなく、今回遊技で投入された枚数の電子メダルを自動投入(自動ベット)するように制御する。
【0053】
メイン制御基板50は、サブ制御基板80に対し、サブ制御基板80で出力する演出に必要な情報(制御コマンド)を送信する。
制御コマンドとしては、たとえば、ベットスイッチ40が操作されたときの情報、スタートスイッチ41が操作されたときの情報、役の抽選結果(内部抽せんにより決定した結果)に関する情報、ストップスイッチ42が操作されたときの情報、入賞した役の情報等が挙げられる。
【0054】
サブ制御基板80は、遊技中及び遊技待機中における演出(情報)の選択や出力等を制御するものである。
ここで、メイン制御基板50とサブ制御基板80とは、電気的に接続されており、メイン制御基板50は、シリアル通信によってサブ制御基板80に一方向で、演出の出力に必要な情報(制御コマンド)を送信する。
なお、メイン制御基板50とサブ制御基板80とは、電気的に接続されることに限らず、光通信手段を用いた接続であってもよい。さらに、電気的接続及び光通信接続のいずれにおいても、シリアル通信に限らず、パラレル通信であってもよく、シリアル通信とパラレル通信とを併用してもよい。
【0055】
サブ制御基板80は、メイン制御基板50と同様に、入力ポート81、出力ポート82、RWM83、ROM84、及びサブCPU85等を備える。
サブ制御基板80には、入力ポート81又は出力ポート82を介して、図1に示すような以下の演出ランプ21等の演出用周辺機器が電気的に接続されている。ただし、演出用の周辺機器は、これらに限られるものではない。
【0056】
RWM83は、サブCPU85が演出を制御するときに取り込んだデータ等を一時的に記憶可能な記憶媒体である。
また、ROM84は、演出用データとして、演出に係る抽選を行うとき等のプログラムや各種データ等を記憶しておく記憶媒体である。
さらに、サブCPU85は、サブ制御基板80上に設けられたCPU(演算機能を備えるIC)を指し、遊技中及び遊技待機中における演出の出力に必要なプログラムの実行、演算等を行う。
【0057】
また、演出ランプ21は、たとえばLED等からなり、所定の条件を満たしたときに、それぞれ所定のパターンで点灯又は点滅する。
なお、演出ランプ21には、各リール31の内周側に配置され、リール31に表示された図柄(表示窓から見える上下に連続する3図柄)を背後から照らすためのバックランプ、リール31の上部からリール31上の図柄を照光する蛍光灯、スロットマシン10のフロントドア前面に配置され、役の入賞時等に点滅する枠ランプ等が含まれる。
さらにまた、スピーカ22は、遊技中に各種の演出を行うべく、所定の条件を満たしたときに、所定のサウンドを出力するものである。
【0058】
さらに、画像表示装置23は、液晶ディスプレイ、有機ELディスプレイ、ドットディスプレイ等からなるものであり、遊技中に各種の演出画像(正解押し順、当該遊技で作動する条件装置に対応する演出等)や、遊技情報(役物作動時や有利区間(AT)中の遊技回数や獲得枚数等)等を表示するものである。
また、サブ制御基板80のサブCPU85は、演出出力制御手段91を備える。そして、演出出力制御手段91は、メイン制御基板50から送信された制御コマンドに基づいて、どのようなタイミングで、どのような演出を出力するかを決定し、この決定に基づいて、演出用の周辺機器から各種の演出を出力するように制御する。
【0059】
図1に示すように、本実施形態では、スロットマシン10は、払出制御基板100(クレジット数管理基板)を備えている。
また、払出制御基板100は、電子メダルのクレジット数を管理するものである。
ここで、メイン制御基板50と払出制御基板100とは、電気的に接続されており、双方向での通信が可能に形成されている。
なお、メイン制御基板50と払出制御基板100とは、電気的に接続されることに限らず、光通信手段を用いた接続であってもよい。
また、電気的接続及び光通信接続のいずれにおいても、シリアル通信としてもよく、パラレル通信としてもよく、シリアル通信とパラレル通信とを併用してもよい。
【0060】
払出制御基板100は、メイン制御基板50やサブ制御基板80と同様に、入力ポート101、出力ポート102、RWM103、ROM104、及びクレジット数管理CPU105等を備える。
また、払出制御基板100には、入力ポート101又は出力ポート102を介して、メイン制御基板50、操作スイッチとしての計数スイッチ47、枚数表示装置としてのクレジット数表示LED76、及びスロットマシン10の外部の管理装置(CRユニット)200等が電気的に接続されている。
【0061】
RWM103は、クレジット数管理CPU105がクレジット数を管理するときに取り込んだデータ等を一時的に記憶可能な記憶媒体である。
また、ROM104は、クレジット数を管理するときのプログラムや各種データ等を記憶しておく記憶媒体である。
さらに、クレジット数管理CPU105は、払出制御基板100上に設けられたCPU(演算機能を備えるIC)を指し、クレジット数の管理に必要なプログラムの実行、演算等を行う。
【0062】
また、計数スイッチ47は、スロットマシン10の内部にクレジットされている電子メダルを管理装置200に戻すときに遊技者に操作される操作スイッチである。
計数スイッチ47を操作すると、スロットマシン10の内部にクレジットされている電子メダルが管理装置200に戻される。このとき、クレジット数が「0」になり、その分、管理装置200において管理する電子メダルの枚数が加算される。
たとえば、スロットマシン10の内部に100枚の電子メダルがクレジットされている状況下で、計数スイッチ47を操作すると、クレジット数が「100」から「0」になり、管理装置200において管理する電子メダルの枚数に「100」が加算される。
【0063】
また、たとえば、3枚の電子メダルがベットされ、かつ100枚の電子メダルがクレジットされている状況下で、キャンセルスイッチ46を操作すると、ベットされている電子メダルがクレジットに戻される。このとき、ベット数が「3」から「0」になり、クレジット数が「100」から「103」になる。その後、計数スイッチ47を操作すると、クレジット数が「103」から「0」になり、管理装置200において管理する電子メダルの枚数に「103」が加算される。
このように、本実施形態では、遊技者が遊技をやめるときに、ベットされている電子メダルがあれば、まず、キャンセルスイッチ46を操作して、ベットされている電子メダルをクレジットに戻し、その後に、計数スイッチ47を操作して、クレジットされている電子メダルを管理装置200に戻す。
【0064】
ただし、前回遊技でリプレイが入賞し、前回遊技でベットした枚数の電子メダルが自動ベットされたときは、キャンセルスイッチ46を操作しても、この自動ベットされた電子メダルをクレジットに戻すことができないように設定されている。すなわち、自動ベットされた電子メダルについては、キャンセルスイッチ46を操作しても、クレジットに戻すことができないように設定されている。
なお、ベットスイッチ40の操作に基づきベットされた電子メダル、及びリプレイ入賞に基づき自動ベットされた電子メダルの双方とも、キャンセルスイッチ46の操作によりクレジットに戻すことができるようにしてもよい。
【0065】
また、計数スイッチ47の操作により、ベットされている電子メダル及びクレジットされている電子メダルが管理装置200に戻されるようにしてもよい。
たとえば、3枚の電子メダルがベットされ、かつ100枚の電子メダルがクレジットされている状況下で、計数スイッチ47を操作すると、ベットされている電子メダル及びクレジットされている電子メダルが管理装置200に戻され、ベット数及びクレジット数が「0」になるとともに、管理装置200において管理する電子メダルの枚数に「103」が加算されるようにしてもよい。
この場合、キャンセルスイッチ46を設けてもよく、設けなくてもよい。
【0066】
また、クレジット数表示LED76は、スロットマシン10の内部にクレジットされている電子メダルの枚数を表示するLEDである。
本実施形態では、最大で1万枚の電子メダルをクレジット可能とされている。すなわち、クレジット数の上限値は「10000」に設定されている。このため、クレジット数表示LED76は、5桁から構成されている。
なお、クレジット数の上限値は「10000」に限らず、たとえば、「15000」としてもよく、「30000」としてもよく、「50000」としてもよい。
また、クレジット数表示LED76の桁数は、5桁に限らず、クレジット数の上限値にあわせて適宜設定することができる。
【0067】
また、払出制御基板100からメイン制御基板50にイネーブル信号を送信可能とされている。そして、メイン制御基板50は、イネーブル信号がオンのときは、各種処理を実行可能とされ、イネーブル信号がオフのときは、所定の処理を実行不可とされるように設定されている。
本実施形態では、クレジット数が上限値に到達すると、すなわち、クレジット数表示LED76の表示が「10000」に到達すると、イネーブル信号をオフにする。そして、イネーブル信号がオフになると、メイン制御基板50は、ベットスイッチ40及びスタートスイッチ41の操作を受付け不可にするように制御する。
なお、クレジット数が「15000」、「30000」又は「50000」に到達したときにイネーブル信号をオフにするようにしてもよい。
【0068】
また、たとえば、通常遊技と、通常遊技より遊技者にとって有利となる特別遊技(1BB遊技;第一種ビッグボーナスゲーム;第一種役物連続作動装置の作動)とを実行可能とし、通常遊技から特別遊技に移行したときは、特別遊技の終了時に、打ち止めとなり、遊技を進行させることができなくなるようにしてもよい。すなわち、打ち止め機能を備えてもよい。また、打ち止めとなる条件は、特別遊技の終了時に限らず、適宜設定することができる。そして、打ち止めとなる条件を満たしたときに、イネーブル信号をオフにするようにしてもよい。
【0069】
この場合、打ち止め機能を有効(打ち止め有り)にするか又は無効(打ち止め無し)にするかを設定する(切り替える)ための打ち止め有無設定スイッチを備えることができる。また、打ち止めを解除するための打ち止め解除スイッチを備えることができる。そして、打ち止めとなる条件を満たしたときは、打ち止め解除スイッチを操作することにより、打ち止めを解除して、遊技を進行可能にするとともに、イネーブル信号をオンにすることができる。また、打ち止め解除スイッチは、たとえば、設定スイッチ13やリセットスイッチ14などの他のスイッチと兼用にすることができる。
【0070】
また、払出制御基板100のクレジット数管理CPU105は、クレジット数管理手段111を備える。そして、クレジット数管理手段111は、メイン制御基板50から送信された制御コマンド、管理装置200から送信された制御コマンド、及び計数スイッチ47の操作に基づいて、クレジット数を管理(加算又は減算)するとともに、クレジット数表示LED76におけるクレジット数の表示を制御する。
【0071】
また、管理装置(CRユニット)200は、電子メダルの貸出し及び払戻しの管理を行うための装置である。1台のスロットマシン10につき、1台の管理装置200が設置される。ホールでは、管理装置200は、スロットマシン10の間に配置されることから、サンドと称される。また、スロットマシン10と、そのスロットマシン10に対応する管理装置200とから、1つの遊技システムが構成される。
【0072】
図1に示すように、スロットマシン10の払出制御基板100と管理装置200とは、電気的に接続されており、双方向での通信が可能に形成されている。
なお、払出制御基板100と管理装置200とは、遊技球等貸出装置接続端子板を介して接続される。
また、払出制御基板100と管理装置200は、電気的に接続されることに限らず、光通信手段を用いた接続であってもよい。
さらにまた、電気的接続及び光通信接続のいずれにおいても、シリアル通信としてもよく、パラレル通信としてもよく、シリアル通信とパラレル通信とを併用してもよい。
【0073】
また、図1に示すように、払出制御基板100は、メイン制御基板50との間で双方向通信が可能とされているとともに、管理装置200との間でも双方向通信が可能とされている。
そして、管理装置200と払出制御基板100との間の通信により、管理装置200から払出制御基板100に電子メダルを移行(貸出し)可能とされ、貸し出された電子メダルを払出制御基板100にクレジット可能とされている。
【0074】
また、払出制御基板100とメイン制御基板50との間の通信により、払出制御基板100にクレジットされている電子メダルをベットして遊技を実行可能とされ、役の入賞時には、払い出された電子メダルを払出制御基板100にクレジット可能とされている。
さらに、遊技者が遊技をやめるときは、管理装置200と払出制御基板100との間の通信により、払出制御基板100にクレジットされている電子メダルを管理装置200に移行(払戻し)可能とされている。
【0075】
図1に示すように、管理装置200は、紙幣投入口201、貸出スイッチ202、返却スイッチ203、度数表示部204、及びカードリーダライタ205等を備えている。
紙幣投入口201は、電子メダルの貸出しに必要な紙幣(たとえば千円札)を挿入するための投入口である。
紙幣投入口201から管理装置200内に挿入された紙幣が正しく認識されると、投入された紙幣に対応する度数が度数表示部204に表示される。度数表示部204は、たとえば3桁の7セグから構成される。たとえば千円札を投入したときは、度数として「10」と表示され、一万円札を投入したときは、度数として「100」と表示される。
【0076】
貸出スイッチ202は、度数表示部204に残度数が表示されていることを条件として、電子メダルを貸し出すときに遊技者に操作されるスイッチである。
たとえば、貸出スイッチ202が1回押されるごとに、度数「10」に相当する電子メダルの貸出しが行われるようにすることができる。
ここで、たとえば、紙幣投入口201から管理装置200内に千円札を投入したときに度数表示部204に表示される度数が「10」であり、度数「1」あたり貸し出される電子メダルの枚数が5枚であるとする。この場合、度数表示部204の表示が「10」のときに貸出スイッチ202を操作すると、50枚の電子メダルが貸し出される。そして、管理装置200と払出制御基板100との間の通信により、貸し出された50枚の電子メダルが払出制御基板100にクレジットされる。
【0077】
払出制御基板100にクレジットされている電子メダルの枚数は、クレジット数表示LED76に表示される。たとえば、クレジット数が「0」のときに、50枚の電子メダルが貸し出されると、クレジット数表示LED76の表示が「0」から「50」になる。
このように、本実施形態では、物理的な(有体物としての)メダルが遊技者に貸し出されることはなく、管理装置200と払出制御基板100との間の通信により、貸し出された電子メダルが管理装置200から払出制御基板100に移行してクレジットされる。
【0078】
返却スイッチ203は、遊技をやめるときに遊技者に操作されるスイッチである。
スロットマシン10の計数スイッチ47を操作すると、スロットマシン10から管理装置に電子メダルが戻される。そして、管理装置200の返却スイッチ203を操作すると、スロットマシン10から管理装置200に戻された電子メダルの枚数、及び度数表示部204に表示された度数に相当する電子メダルの枚数が、電子データとしてカード(磁気カードやICカード等)に記憶され、そのカードがカードリーダライタ205の排出口から排出される。
【0079】
たとえば、管理装置200の度数表示部204に、度数「10」(電子メダル50枚分に相当する。)が表示されているとする。さらに、スロットマシン10の計数スイッチ47を操作することにより、150枚の電子メダルがスロットマシン10から管理装置200に戻されたとする。このとき、管理装置200の返却スイッチ203が操作されると、電子メダル200枚分に相当する電子データがカードに記憶されてカードリーダライタ205の排出口から排出される。
また、図1に示すように、管理装置200は、ホールコンピュータ300と電気的に接続されている。そして、管理装置200からホールコンピュータ300に対して電子メダルの貸出しや払戻し等に関する情報が一方向で送信される。
【0080】
図2は、電力供給経路の例1を示す図である。
図1では図示を省略したが、図2に示すように、スロットマシン10は、電源基板150を備えている。また、電源基板150には、蓄電用のコンデンサ151が搭載されており、払出制御基板100にも、蓄電用のコンデンサ106が搭載されている。
さらにまた、電源基板150とメイン制御基板50とは、ハーネスA161で接続されており、このハーネスA161を通じて、電源基板150からメイン制御基板50に電力を供給可能とされている。
【0081】
さらに、電源基板150と払出制御基板100とは、ハーネスC163で接続されており、このハーネスC163を通じて、電源基板150から払出制御基板100に電力を供給可能とされている。
電源基板150には、外部から交流で電力が供給される。そして、電源基板150で交流を直流に変換して、メイン制御基板50及び払出制御基板100に電力を供給する。
また、メイン制御基板50と払出制御基板100とは、ハーネスB162で接続されており、このハーネスB162を通して、メイン制御基板50から払出制御基板100に、又は払出制御基板100からメイン制御基板50に、電力を供給可能とされている。
【0082】
さらにまた、メイン制御基板50と払出制御基板100とは、ハーネスD164で接続されており、このハーネスD164を通して、メイン制御基板50と払出制御基板100との間で双方向でコマンドの通信が可能とされている。
払出制御基板100は、電子メダルのクレジット数を管理する制御基板であり、その安定性は遊技者の利益に大きくかかわるため、電源基板150からハーネスC163を通じて払出制御基板100に直接電力を供給するようにしている。
【0083】
また、ハーネスC163が切れてしまったときは、電源基板150から、ハーネスA161、メイン制御基板50、及びハーネスB162を介して、払出制御基板100に電力を供給可能とされている。
さらにまた、払出制御基板100には蓄電用のコンデンサ106が搭載されており、電源基板150からの電力供給が途絶えたときは、コンデンサ106から払出制御基板100に電力を供給可能とされている。
【0084】
さらに、ハーネスA161及びハーネスC163が切れてしまったときは、コンデンサ106から払出制御基板100に電力を供給するとともに、ハーネスB162を通して、払出制御基板100からメイン制御基板50に電力を供給可能とされている。
このように、例1では、払出制御基板100にバックアップ電源用のコンデンサ106を搭載しており、ハーネスA161やハーネスC163の切断等により電源基板150からの電力供給が途絶えてしまったとしても、払出制御基板100やメイン制御基板50が駆動するようにし、電断時の処理を確実に実行できるようにして、遊技者に不利益を及ぼさないようにしている。
【0085】
図3は、電力供給経路の例2を示す図である。
図3に示すように、例2では、電源基板150には、コンデンサが搭載されておらず、払出制御基板100には、蓄電用のコンデンサA107及びコンデンサB108が搭載されている。
また、電源基板150とメイン制御基板50とは、ハーネスE165で接続されており、このハーネスE165を通じて、電源基板150からメイン制御基板50に電力を供給可能とされている。
【0086】
さらにまた、電源基板150と払出制御基板100とは、ハーネスG167で接続されており、このハーネスG167を通じて、電源基板150から払出制御基板100に電力を供給可能とされている。
さらに、メイン制御基板50と払出制御基板100とは、ハーネスF166で接続されており、このハーネスF166を通して、メイン制御基板50から払出制御基板100に、又は払出制御基板100からメイン制御基板50に、電力を供給可能とされている。
【0087】
また、メイン制御基板50と払出制御基板100とは、ハーネスH168で接続されており、このハーネスH168を通して、メイン制御基板50と払出制御基板100との間で双方向でコマンドの通信が可能とされている。
そして、ハーネスG167が切れてしまったときは、電源基板150から、ハーネスE165、メイン制御基板50、及びハーネスF166を介して、払出制御基板100に電力を供給可能とされている。
【0088】
また、払出制御基板100には蓄電用のコンデンサA107及びコンデンサB108が搭載されており、電源基板150からの電力供給が途絶えたときは、コンデンサA107及びコンデンサB108から払出制御基板100に電力を供給可能とされている。
さらに、ハーネスE165及びハーネスG167が切れてしまったときは、コンデンサA107及びコンデンサB108から払出制御基板100に電力を供給するとともに、コンデンサA107からハーネスF166を通してメイン制御基板50に電力を供給可能とされている。
【0089】
例2においても、電源基板150からの電力供給が途絶えたときに、払出制御基板100に搭載されたバックアップ電源用のコンデンサから払出制御基板100及びメイン制御基板50に電力を供給することは、例1と同様である。
ただし、例2では、コンデンサB108を、払出制御基板100専用のバックアップ電源としている。これにより、ハーネスE165やハーネスG167の切断等により電源基板150からの電力供給が途絶えてしまったとしても、電子メダルのクレジット数を管理する払出制御基板100が確実に駆動するようにし、電断時の処理を確実に実行できるようにして、遊技者に不利益を及ぼさないようにしている。
【0090】
なお、例2では、コンデンサB108の電気容量を、コンデンサA107の電気容量より大きく設定することが好ましい。これにより、遊技者の利益に大きくかかわる払出制御基板100に対してバックアップの電力を確実に供給し、電断時の処理を確実に実行できるようにすることができる。
また、本実施形態では、電源断時には、メイン制御基板50上のプログラムより先に払出制御基板100上のプログラムが停止するように設定されている。
さらに、本実施形態では、電源断からの復帰時には、メイン制御基板50上のプログラムより先に払出制御基板100上のプログラムが起動するように設定されている。
【0091】
図4図7は、コマンド一覧を示す図である。
図4は、メイン制御基板50から払出制御基板100に送信されるコマンドの一覧を示す図であり、図5は、払出制御基板100からメイン制御基板50に送信されるコマンドの一覧を示す図である。
また、図6は、管理装置200から払出制御基板100に送信されるコマンドの一覧を示す図であり、図7は、払出制御基板100から管理装置200に送信されるコマンドの一覧を示す図である。
【0092】
ここで、メイン制御基板50から払出制御基板100に送信されるコマンドを総称して「メイン制御コマンド」という。
また、払出制御基板100からメイン制御基板50に送信されるコマンドを総称して「払出制御コマンド」という。
さらにまた、払出制御基板100から管理装置200に送信されるコマンドを総称して「遊技機コマンド」という。
さらに、管理装置200から払出制御基板100に送信されるコマンドを総称して「管理装置コマンド」という。
【0093】
本実施形態では、メイン制御コマンド、払出制御コマンド、遊技機コマンド、管理装置コマンドは、いずれも、16ビット(2バイト)のデータで構成されている。
また、メイン制御コマンド、払出制御コマンド、遊技機コマンド、管理装置コマンドは、いずれも、先行コマンド(上位8ビット)及び後続コマンド(下位8ビット)から構成されている。
すなわち、先行コマンド及び後続コマンドからなる16ビット(2バイト)のデータで1つのメイン制御コマンド、払出制御コマンド、遊技機コマンド、管理装置コマンドが構成されている。
また、先行コマンドは、コマンドの種別を示すデータであり、後続コマンドは、パラメータ(変数)を示すデータである。
そして、本実施形態では、メイン制御基板50と払出制御基板100との間、及び払出制御基板100と管理装置200との間では、シリアル通信でコマンドの送受信を行う。
【0094】
図4図7中、「先行」の欄のデータは、先行コマンド(上位8ビット)を示しており、「後続」の欄のデータは、後続コマンド(下位8ビット)を示している。また、先行コマンド及び後続コマンドは、いずれも、16進数で表している。
メイン制御コマンドとして、図4中の「内容」の欄に記載されている8種類のコマンドを挙げることができる。また、これら8種類のコマンドのうち、設定変更開始コマンド、設定変更終了コマンド、遊技開始+RT状態コマンド、遊技終了+遊技状態コマンドを総称して「遊技情報コマンド」と称する。さらにまた、投入要求コマンド、払出要求コマンド、返却要求コマンドを総称して「演算要求コマンド」と称する。
【0095】
払出制御コマンドとして、図5中の「内容」の欄に記載されている12種類のコマンドを挙げることができる。また、投入要求コマンドのACK応答は「投入復唱コマンド」とも称し、投入要求コマンドのNAK応答は「投入不可コマンド」とも称する。同様に、払出要求コマンドのACK応答、同NAK応答、返却要求コマンドのACK応答、同NAK応答は、それぞれ「払出復唱コマンド」、「払出不可コマンド」、「返却復唱コマンド」、「返却不可コマンド」とも称する。さらにまた、異常時のNAK応答は「エラーコマンド」とも称する。
【0096】
管理装置コマンドとして、図6中の「内容」の欄に記載されている5種類のコマンドを挙げることができる。また、下位計数要求コマンドのACK応答は「下位計数復唱コマンド」とも称し、上位計数要求コマンドのACK応答は「上位計数復唱コマンド」とも称する。
遊技機コマンドとして、図7中の「内容」の欄に記載されている13種類のコマンドを挙げることができる。また、貸出要求コマンドのACK応答は「貸出復唱コマンド」とも称する。
【0097】
図4中、起動確認コマンドは、メイン制御基板50と払出制御基板100との間の通信が正常であるか否かをメイン制御基板50側で確認するためのコマンドであって、電源投入時にメイン制御基板50から払出制御基板100に対して送信されるコマンドである。
メイン制御基板50は、電源投入時に、払出制御基板100に対し、起動確認コマンドを送信する。また、払出制御基板100は、起動確認コマンドを受信すると、これをそのままメイン制御基板50に送り返す(図5に示す起動確認コマンドのACK応答)。
そして、メイン制御基板50側では、送信した起動確認コマンドがそのまま払出制御基板100から送り返されることにより、メイン制御基板50と払出制御基板100との間の通信が正常であると判断することができる。
【0098】
また、上述したように、電源断時には、メイン制御基板50上のプログラムより先に払出制御基板100上のプログラムが停止し、電源断からの復帰時には、メイン制御基板50上のプログラムより先に払出制御基板100上のプログラムが起動する。
ここで、電源投入時、すなわち、電源断からの復帰時には、メイン制御基板50から払出制御基板100に対し起動確認コマンドを送信するが、払出制御基板100上のプログラムの方が先に起動するため、起動確認コマンドを確実に受信することができる。そして、メイン制御基板50は、送信した起動確認コマンドがそのまま払出制御基板100から送り返されることにより、メイン制御基板50と払出制御基板100との間の通信が正常であると判断すると、その後の処理を進めるように設定されている。
【0099】
図4中、設定変更開始コマンドは、設定変更モードに移行したことを払出制御基板100側に伝達するためのコマンドであって、設定変更モードへの移行時にメイン制御基板50から払出制御基板100に対して送信されるコマンドである。また、後続の「01H」は、設定キースイッチ12がオン状態であることを示している。
メイン制御基板50は、設定変更モードへの移行時に、払出制御基板100に対し、設定変更開始コマンドを送信する。また、払出制御基板100は、設定変更開始コマンドを受信すると、これをそのままメイン制御基板50に送り返し(図5に示す設定変更開始コマンドのACK応答)、さらに、管理装置200に対しても設定変更開始コマンドを送信する(図7)。すなわち、払出制御基板100は、メイン制御基板50及び管理装置200の双方に設定変更開始コマンドを送信する。
【0100】
これにより、払出制御基板100側では、設定変更モードに移行したと判断することができる。また、メイン制御基板50側では、送信した設定変更開始コマンドがそのまま払出制御基板100から送り返されることにより、設定変更モードへの移行を払出制御基板100に伝達できたと判断することができる。さらに、管理装置200側でも、設定変更モードに移行したと判断することができる。
【0101】
図4中、設定変更終了コマンドは、設定変更モードが終了したことを払出制御基板100側に伝達するためのコマンドであって、設定変更モードの終了時にメイン制御基板50から払出制御基板100に対して送信されるコマンドである。また、後続の「00H」は、設定キースイッチ12がオフ状態であることを示している。
メイン制御基板50は、設定変更モードの終了時に、払出制御基板100に対し、設定変更終了コマンドを送信する。また、払出制御基板100は、設定変更終了コマンドを受信すると、これをそのままメイン制御基板50に送り返し(図5に示す設定変更終了コマンドのACK応答)、さらに、管理装置200に対しても設定変更終了コマンドを送信する(図7)。すなわち、払出制御基板100は、メイン制御基板50及び管理装置200の双方に設定変更終了コマンドを送信する。
【0102】
これにより、払出制御基板100側では、設定変更モードが終了したと判断することができる。また、メイン制御基板50側では、送信した設定変更終了コマンドがそのまま払出制御基板100から送り返されることにより、設定変更モードの終了を払出制御基板100に伝達できたと判断することができる。さらに、管理装置200側でも、設定変更モードが終了したと判断することができる。
【0103】
図4中、遊技開始+RT状態コマンドは、遊技が開始したこと及びRT状態を払出制御基板100側に伝達するためのコマンドであって、スタートスイッチ41のオン時にメイン制御基板50から払出制御基板100に送信されるコマンドである。
メイン制御基板50は、スタートスイッチ41のオン時に、払出制御基板100に対し、遊技開始+RT状態コマンドを送信する。また、払出制御基板100は、遊技開始+RT状態コマンドを受信すると、これをそのままメイン制御基板50に送り返し(図5に示す遊技開始+RT状態コマンドのACK応答)、さらに、管理装置200に対しても遊技開始+RT状態コマンドを送信する(図7)。すなわち、払出制御基板100は、メイン制御基板50及び管理装置200の双方に遊技開始+RT状態コマンドを送信する。
【0104】
これにより、払出制御基板100側では、遊技が開始したこと、及びRT状態を判断することができる。また、メイン制御基板50側では、送信した遊技開始+RT状態コマンドがそのまま払出制御基板100から送り返されることにより、遊技開始及びRT状態を払出制御基板100に伝達できたと判断することができる。さらに、管理装置200側でも、遊技が開始したこと、及びRT状態を判断することができる。
【0105】
図4中、遊技終了+遊技状態コマンドは、遊技が終了したこと及び遊技状態を払出制御基板100側に伝達するためのコマンドであって、第3ストップスイッチ42(最後に停止するリール31に対応するストップスイッチ42)がオンからオフになった時にメイン制御基板50から払出制御基板100に送信されるコマンドである。
メイン制御基板50は、第3ストップスイッチ42がオンからオフになった(遊技者が第3ストップスイッチ42から手を離した)時に、払出制御基板100に対し、遊技終了+遊技状態コマンドを送信する。また、払出制御基板100は、遊技終了+遊技状態コマンドを受信すると、これをそのままメイン制御基板50に送り返し(図5に示す遊技終了+遊技状態コマンドのACK応答)、さらに、管理装置200に対しても遊技終了+遊技状態コマンドを送信する(図7)。すなわち、払出制御基板100は、メイン制御基板50及び管理装置200の双方に遊技終了+遊技状態コマンドを送信する。
【0106】
これにより、払出制御基板100側では、遊技が終了したこと、及び遊技状態を判断することができる。また、メイン制御基板50側では、送信した遊技終了+遊技状態コマンドがそのまま払出制御基板100から送り返されることにより、遊技終了及び遊技状態を払出制御基板100に伝達できたと判断することができる。さらに、管理装置200側でも、遊技が終了したこと、及び遊技状態を判断することができる。
【0107】
図4中、投入要求コマンドは、ベット数をクレジット数から減算することを払出制御基板100に要求するコマンドであって、ベットスイッチ40のオン時にメイン制御基板50から払出制御基板100に送信されるコマンドである。
また、投入要求コマンドの後続コマンドは、ベット数(ベットスイッチ40の操作に基づきクレジット数から減算することを要求する数)を示す。
【0108】
本実施形態では、メイン制御基板50は、1ベットスイッチ40aのオン時に、払出制御基板100に対し、投入要求コマンドとして、クレジット数からベット数「1」を減算することを要求する「2001H」(1枚投入要求コマンド)を送信する。
また、メイン制御基板50は、3ベットスイッチ40bのオン時に、払出制御基板100に対し、投入要求コマンドとして、クレジット数からベット数「3」を減算することを要求する「2003H」(3枚投入要求コマンド)を送信する。
なお、3ベットスイッチ40bのオン時に、払出制御基板100に対し、投入要求コマンドとして、1枚投入要求コマンドを3回送信してもよい。
【0109】
また、払出制御基板100は、投入要求コマンドを受信すると、投入要求を受付け可能であるか否か、具体的には、クレジット数がベット数(投入要求コマンドの後続コマンドが示す数)以上であるか否かを判断する。
そして、投入要求を受付け可能であると判断したとき、すなわち、クレジット数がベット数以上であると判断したときは、払出制御基板100は、クレジット数からベット数を減算する処理を実行し、クレジット数表示LED76の表示を更新する処理を実行し、投入復唱コマンドをメイン制御基板50に送信する(受信した投入要求コマンドをそのままメイン制御基板50に送り返す(図5に示す投入要求コマンドのACK応答))。
【0110】
たとえば、クレジット数が「50」のときに、3枚投入要求コマンド「2003H」を受信すると、払出制御基板100は、クレジット数「50」から、3枚投入要求コマンド「2003H」の後続コマンドが示すベット数「3」を減算する処理を実行し、クレジット数表示LED76の表示を「50」から「47」に変更し、投入復唱コマンドをメイン制御基板50に送信する。
これに対し、投入要求を受付け不可であると判断したとき、すなわち、クレジット数がベット数未満であると判断した(たとえば、クレジット数が「2」の状況下で、3枚投入要求コマンド「2003H」を受信した)ときは、払出制御基板100は、クレジット数からベット数を減算する処理は実行せずに、投入不可コマンドをメイン制御基板50に送信する(図5に示す投入要求コマンドのNAK応答)。
【0111】
さらに、投入復唱コマンドを受信した(送信した投入要求コマンドがそのまま払出制御基板100から送り返された)ときは、メイン制御基板50は、ベット数をクレジット数から減算する要求が許可されたと判断し、電子メダルのベットに応じた処理(たとえば、1ベット表示LED~3ベット表示LEDを点灯させる処理、及びスタートスイッチ41の操作を受付け可能にする処理)を実行する。
これに対し、投入不可コマンドを受信したときは、メイン制御基板50は、ベット数をクレジット数から減算する要求が許可されなかったと判断し、電子メダルのベットに応じた処理を実行しない。
また、投入要求コマンドを送信した後、所定時間を経過しても、投入復唱コマンド及び投入不可コマンドのいずれも受信しないと、タイムアウトとなり、メイン制御基板50は、払出制御基板100に対し、再度、投入要求コマンドを送信する。
【0112】
このように、クレジット数からベット数を減算することを払出制御基板100に要求するときは、メイン制御基板50と払出制御基板100との間で一往復のコマンド通信を行う。
これにより、電子メダルのベットに関する処理がメイン制御基板50及び払出制御基板100の双方で確実に実行され、クレジット数の管理が正確に行われるので、遊技者に不利益を与えないようにすることができる。
【0113】
また、上述したように、電源断時には、メイン制御基板50上のプログラムより先に払出制御基板100上のプログラムが停止し、電源断からの復帰時には、メイン制御基板50上のプログラムより先に払出制御基板100上のプログラムが起動する。
さらにまた、メイン制御基板50は、ベットスイッチ40のオン時に、払出制御基板100に投入要求コマンドを送信し、払出制御基板100は、投入要求コマンドの受信時に、投入要求を受付け可能であれば、メイン制御基板50に投入復唱コマンドを送信し、投入要求を受付け不可であれば、メイン制御基板50に投入不可コマンドを送信する。
【0114】
さらに、メイン制御基板50は、投入復唱コマンドを受信したときは、電子メダルのベットに応じた処理を実行し、投入不可コマンドを受信したときは、電子メダルのベットに応じた処理を実行せず、投入復唱コマンド及び投入不可コマンドのいずれも受信しないと、払出制御基板100に対し、再度、投入要求コマンドを送信する。
ここで、メイン制御基板50が払出制御基板100に投入要求コマンドを送信した後、払出制御基板100が投入要求コマンドを受信する前に、電源断が発生し、払出制御基板100上のプログラムが停止したとする。この場合、メイン制御基板50は、投入復唱コマンド及び投入不可コマンドのいずれも受信しないことになり、電源断からの復帰後に、払出制御基板100に対し、再度、投入要求コマンドを送信することになるため、メイン制御基板50と払出制御基板100との間で確実にコマンドを送受信できる。
【0115】
また、メイン制御基板50が払出制御基板100に投入要求コマンドを送信し、払出制御基板100が投入要求コマンドを受信したが、メイン制御基板50に投入復唱コマンド又は投入不可コマンドを送信する前に、電源断が発生し、払出制御基板100上のプログラムが停止したとする。この場合、電源断からの復帰後に、払出制御基板100は、メイン制御基板50に対し、投入復唱コマンド又は投入不可コマンドを送信するので、メイン制御基板50と払出制御基板100との間で確実にコマンドを送受信できる。
【0116】
なお、電源投入時、すなわち、電源断からの復帰時には、メイン制御基板50は、払出制御基板100に、起動確認コマンドを送信し、払出制御基板100は、起動確認コマンドを受信すると、これをそのままメイン制御基板50に送り返す。そして、メイン制御基板50は、送信した起動確認コマンドがそのまま払出制御基板100から送り返されると、メイン制御基板50と払出制御基板100との間の通信が正常であると判断する。その後、払出制御基板100は、メイン制御基板50に、投入復唱コマンド又は投入不可コマンドを送信する。このため、電源断からの復帰時には、メイン制御基板50上のプログラムより先に払出制御基板100上のプログラムが起動するが、メイン制御基板50は、投入復唱コマンド又は投入不可コマンドを確実に受信することができる。
【0117】
また、メイン制御基板50が払出制御基板100に投入要求コマンドを送信し、払出制御基板100が投入要求コマンドを受信して、メイン制御基板50に投入復唱コマンド又は投入不可コマンドを送信した後に、電源断が発生し、払出制御基板100のプログラムが停止したとする。この場合、払出制御基板100上のプログラムが停止した後にメイン制御基板50上のプログラムが停止するため、メイン制御基板50は、払出制御基板100が送信した投入復唱コマンド又は投入不可コマンドを受信することができるので、メイン制御基板50と払出制御基板100との間で確実にコマンドを送受信できる。
【0118】
図4中、払出要求コマンドは、払出し枚数をクレジット数に加算することを払出制御基板100に要求するコマンドであって、第3ストップスイッチ42がオンからオフになった時にメイン制御基板50から払出制御基板100に送信されるコマンドである。
また、払出要求コマンドの後続コマンドは、払出し枚数(役の入賞に基づきクレジット数に加算することを要求する数)を示す。
【0119】
たとえば、10枚役の入賞時には、メイン制御基板50は、第3ストップスイッチ42がオンからオフになった時に、払出制御基板100に対し、払出要求コマンドとして、クレジット数に払出し枚数「10」を加算することを要求する「210AH」を送信する。
なお、役の非入賞時にも、メイン制御基板50は、第3ストップスイッチ42がオンからオフになった時に、払出制御基板100に、払出要求コマンドを送信する。この場合、払出し枚数は「0」であるので、払出要求コマンドは「2100H」となる。
【0120】
また、払出制御基板100は、払出要求コマンドを受信すると、払出し要求を受付け可能であるか否か、具体的には、クレジット数に払出し枚数(払出要求コマンドの後続コマンドが示す数)を加算することによりクレジット数の上限値(本実施形態では「10000」)を超えるか否かを判断する。
そして、払出し要求を受付け可能であると判断したとき、すなわち、クレジット数に払出し枚数を加算してもクレジット数の上限値以下であると判断したときは、払出制御基板100は、クレジット数に払出し枚数を加算する処理を実行し、クレジット数表示LED76の表示を更新する処理を実行し、払出復唱コマンドをメイン制御基板50に送信する(受信した払出要求コマンドをそのままメイン制御基板50に送り返す(図5に示す払出要求コマンドのACK応答))。
【0121】
たとえば、クレジット数が「50」のときに、払出要求コマンド「210AH」(10枚払出し)を受信すると、払出制御基板100は、クレジット数「50」に、払出要求コマンド「210AH」の後続コマンドが示す払出し枚数「10」を加算する処理を実行し、クレジット数表示LEDの表示を「50」から「60」に変更し、払出復唱コマンドをメイン制御基板50に送信する。
【0122】
これに対し、払出し要求を受付け不可であると判断したとき、すなわち、クレジット数に払出し枚数を加算するとクレジット数の上限値を超えると判断した(たとえば、クレジット数が「9995」の状況下で、払出要求コマンド「210AH」(10枚払出し)を受信した)ときは、払出制御基板100は、クレジット数に払出し枚数を加算する処理を実行せずに、払出不可コマンドをメイン制御基板50に送信する(図5に示す払出要求コマンドのNAK応答)。
【0123】
さらに、払出復唱コマンドを受信した(送信した払出要求コマンドがそのまま払出制御基板100から送り返された)ときは、メイン制御基板50は、払出し枚数をクレジット数に加算することの要求が許可されたと判断し、役の入賞に基づく電子メダルの払出しに応じた処理(たとえば、獲得数表示LED78に電子メダルの払出し枚数を表示する処理)を実行する。
これに対し、払出不可コマンドを受信したときは、メイン制御基板50は、払出し枚数をクレジット数に加算することの要求が許可されなかったと判断し、役の入賞に基づく電子メダルの払出しに応じた処理を実行しない。
【0124】
このように、入賞役に応じた払出し枚数をクレジット数に加算することを払出制御基板100に要求するときは、メイン制御基板50と払出制御基板100との間で一往復のコマンド通信を行う。
これにより、役の入賞に基づく電子メダルの払出しに関する処理がメイン制御基板50及び払出制御基板100の双方で確実に実行され、クレジット数の管理が正確に行われるので、遊技者に不利益を与えないようにすることができる。
【0125】
図4中、返却要求コマンドは、ベットされた電子メダルをクレジットに戻すことを払出制御基板100に要求するコマンドであって、キャンセルスイッチ46のオン時にメイン制御基板50から払出制御基板100に送信されるコマンドである。
また、返却要求コマンドの後続コマンドは、返却枚数(電子メダルの返却に基づきクレジット数に加算することを要求する数)を示す。
たとえば、3枚の電子メダルがベットされた状態でキャンセルスイッチ46が操作されると、メイン制御基板50は、キャンセルスイッチ46のオン時に、払出制御基板100に対し、返却要求コマンドとして、クレジット数に返却枚数「3」を加算することを要求する「2203H」を送信する。
【0126】
また、払出制御基板100は、返却要求コマンドを受信すると、返却要求を受付け可能であるか否か、具体的には、クレジット数に返却枚数(返却要求コマンドの後続コマンドが示す数)を加算することによりクレジット数の上限値(本実施形態では「10000」)を超えるか否かを判断する。
そして、返却要求を受付け可能であると判断したとき、すなわち、クレジット数に返却枚数を加算してもクレジット数の上限値以下であると判断したときは、払出制御基板100は、クレジット数に返却枚数を加算する処理を実行し、クレジット数表示LED76の表示を更新する処理を実行し、返却復唱コマンドをメイン制御基板50に送信する(受信した返却要求コマンドをそのままメイン制御基板50に送り返す(図5に示す返却要求コマンドのACK応答))。
【0127】
たとえば、クレジット数が「100」のときに、返却要求コマンド「2203H」を受信すると、払出制御基板100は、クレジット数「100」に、返却要求コマンド「2203H」の後続コマンドが示す返却枚数「3」を加算する処理を実行し、クレジット数表示LEDの表示を「100」から「103」に変更し、返却復唱コマンドをメイン制御基板50に送信する。
【0128】
これに対し、返却要求を受付け不可であると判断したとき、すなわち、クレジット数に返却枚数を加算するとクレジット数の上限値を超えると判断した(たとえば、クレジット数が「9999」の状況下で、返却要求コマンド「2203H」を受信した(3枚の電子メダルの返却要求があった))ときは、払出制御基板100は、クレジット数に返却枚数を加算する処理を実行せずに、返却不可コマンドをメイン制御基板50に送信する(図5に示す返却要求コマンドのNAK応答)。
【0129】
さらに、返却復唱コマンドを受信した(送信した返却要求コマンドがそのまま払出制御基板100から送り返された)ときは、メイン制御基板50は、返却枚数をクレジット数に加算することの要求が許可されたと判断し、電子メダルの返却に応じた処理(たとえば、1ベット表示LED~3ベット表示LEDを消灯させる処理、及びスタートスイッチ41の操作を受付け不可にする処理)を実行する。
これに対し、返却不可コマンドを受信したときは、メイン制御基板50は、返却枚数をクレジット数に加算することの要求が許可されなかったと判断し、電子メダルの返却に応じた処理を実行しない。
【0130】
このように、ベットされた電子メダルをクレジットに戻すことを払出制御基板100に要求するときは、メイン制御基板50と払出制御基板100との間で一往復のコマンド通信を行う。
これにより、電子メダルの返却に関する処理がメイン制御基板50及び払出制御基板100の双方で確実に実行され、クレジット数の管理が正確に行われるので、遊技者に不利益を与えないようにすることができる。
【0131】
図6中、貸出要求コマンドは、貸出し枚数をクレジット数に加算することを払出制御基板100に要求するコマンドであって、貸出スイッチ202のオン時に管理装置(CRユニット)200から払出制御基板100に送信されるコマンドである。
また、貸出要求コマンドの後続コマンドは、貸出し枚数(電子メダルの貸出しに基づきクレジット数に加算することを要求する数)を示す。
【0132】
たとえば、管理装置200の紙幣投入口201に千円札が投入されて、度数表示部204に度数「10」が表示された状況下で、貸出スイッチ202が操作されると、管理装置200は、貸出スイッチ202のオン時に、払出制御基板100に対し、貸出要求コマンドとして、クレジット数に貸出し枚数「50」を加算することを要求する「4032H」を送信する。
【0133】
また、払出制御基板100は、貸出要求コマンドを受信すると、貸出し要求を受付け可能であるか否か、具体的には、クレジット数に貸出し枚数(貸出要求コマンドの後続コマンドが示す数)を加算することによりクレジット数の上限値(本実施形態では「10000」)を超えるか否かを判断する。
そして、貸出し要求を受付け可能であると判断したとき、すなわち、クレジット数に貸出し枚数を加算してもクレジット数の上限値以下であると判断したときは、払出制御基板100は、管理装置200に対し、貸出復唱コマンドを送信する(受信した貸出要求コマンドをそのまま管理装置200に送り返す(図7に示す貸出要求コマンドのACK応答))。
【0134】
これに対し、貸出し要求を受付け不可であると判断したとき、すなわち、クレジット数に貸出し枚数を加算するとクレジット数の上限値を超えると判断した(たとえば、クレジット数が「9955」の状況下で、貸出要求コマンド「4032H」(貸出し枚数「50」)を受信した)ときは、払出制御基板100は、管理装置200に対し、エラーコマンド「E000H」を送信する(図7に示す異常時のNAK応答)。
【0135】
また、貸出復唱コマンドを受信した(送信した貸出要求コマンドがそのまま払出制御基板100から送り返された)ときは、管理装置200は、払出制御基板100に対し、貸出し要求の実行を指示する貸出指示コマンドを送信し、さらに、貸出し枚数に応じて度数表示部204の表示を更新する処理を実行する。
【0136】
たとえば、管理装置200から払出制御基板100に対して貸出要求コマンドとして「4032H」(貸出し枚数「50」)を送信し、その後、払出制御基板100から管理装置200に対して貸出復唱コマンドとして「4032H」(貸出要求コマンドのACK応答)を送信したときは、管理装置200は、払出制御基板100に対し、貸出指示コマンドとして、クレジット数に貸出し枚数「50」を加算することを指示する「4132H」を送信する。さらに、管理装置200は、度数表示部204に表示中の数値から、貸出し枚数「50」に応じた度数「10」を減算する処理を実行する。
【0137】
これに対し、エラーコマンドを受信したときは、管理装置200は、待機状態に戻るように制御する。
また、貸出指示コマンドを受信すると、払出制御基板100は、クレジット数に貸出し枚数を加算する処理を実行し、クレジット数表示LED76の表示を更新する処理を実行する。
たとえば、クレジット数が「50」のときに、貸出指示コマンド「4132H」(貸出し枚数「50」)を受信すると、払出制御基板100は、クレジット数「50」に、貸出指示コマンド「4132H」の後続コマンドが示す貸出し枚数「50」を加算する処理を実行し、クレジット数表示LEDの表示を「50」から「100」に変更する。
【0138】
このように、管理装置200からスロットマシン10の払出制御基板100に電子メダルを貸し出すときは、管理装置200と払出制御基板100との間で一往復半のコマンド通信を行う。
これにより、電子メダルの貸出しに関する処理が管理装置200及び払出制御基板100の双方で確実に実行され、クレジット数の管理が正確に行われるので、遊技者に不利益を与えないようにすることができる。
【0139】
図7中、下位計数要求コマンド及び上位計数要求コマンドは、電子メダルの払戻しを管理装置(CRユニット)200に要求するコマンドであって、計数スイッチ47のオン時に払出制御基板100から管理装置200に送信されるコマンドである。
また、下位計数要求コマンドの後続コマンドは、払戻し枚数(クレジット数)を16ビット(2バイト)で表したときの下位8ビットを示す。
さらにまた、上位計数要求コマンドの後続コマンドは、払戻し枚数(クレジット数)を16ビットで表したときの上位8ビットを示す。
すなわち、下位計数要求コマンドの後続コマンド、及び上位計数要求コマンドの後続コマンドから、払戻し枚数が特定される。
【0140】
上述したように、本実施形態では、クレジット数の上限値は「10000(D)」に設定されている。また、クレジット数の上限値「10000(D)」は、2進数で表すと「10011100010000(B)」であり、16進数で表すと「2710(H)」である。このように、クレジット数の上限値「10000(D)」は、8ビット(1バイト)で表すことができない。このため、本実施形態では、下位計数要求コマンドの後続コマンド、及び上位計数要求コマンドの後続コマンドの16ビット(2バイト)で、払戻し枚数(クレジット数)を特定するようにしている。
【0141】
たとえば、払出制御基板100に1000枚の電子メダルがクレジットされている(クレジット数「1000(D)」の)状況下で、計数スイッチ47が操作されたとする。ここで、クレジット数「1000(D)」は、2進数で表すと「1111101000(B)」であり、16進数で表すと「03E8(H)」である。この場合、下位計数要求コマンドは、「50E8(H)」となり、上位計数要求コマンドは、「5103(H)」となる。そして、払出制御基板100は、計数スイッチ47のオン時に、管理装置200に対し、下位計数要求コマンドとして、「50E8(H)」を送信する。
【0142】
また、下位計数要求コマンドを受信すると、管理装置200は、払戻し要求を受付け可能であるか否かを判断する。
そして、払戻し要求を受付け可能であると判断したときは、管理装置200は、払出制御基板100に対し、下位計数復唱コマンドを送信する(受信した下位計数要求コマンドをそのまま払出制御基板100に送り返す(図6に示す下位計数要求コマンドのACK応答))。
これに対し、払戻し要求を受付け不可であると判断したときは、管理装置200は、払出制御基板100に対し、エラーコマンド「E000H」を送信する(図6に示す異常時のNAK応答)。この場合、管理装置200は、待機状態に戻るように制御する。
【0143】
また、下位計数復唱コマンドを受信した(送信した下位計数要求コマンドがそのまま管理装置200から送り返された)ときは、払出制御基板100は、管理装置200に対し、上位計数要求コマンドとして、「5103(H)」を送信する。
これに対し、エラーコマンドを受信したときは、払出制御基板100は、上位計数要求コマンドを送信せずに、待機状態に戻るように制御する。
【0144】
また、上位計数要求コマンドを受信すると、管理装置200は、払出制御基板100に対し、上位計数復唱コマンドを送信する(受信した上位計数要求コマンドをそのまま払出制御基板100に送り返す(図6に示す上位計数要求コマンドのACK応答))。
さらにまた、上位計数復唱コマンドを受信した(送信した上位計数要求コマンドがそのまま管理装置200から送り返された)ときは、払出制御基板100は、管理装置200に対し、計数指示コマンドを送信し、さらに、クレジット数をクリアする(「0」にする)処理を実行し、クレジット数表示LED76の表示を更新する(「0」にする)処理を実行する。
【0145】
さらに、計数指示コマンドを受信すると、管理装置200は、下位計数要求コマンド及び上位計数要求コマンドから特定される払戻し枚数を、管理装置200側で管理する電子メダルの枚数に反映させる処理を実行するように制御する。
その後、返却スイッチ203が操作されると、管理装置200は、計数スイッチ47の操作によりスロットマシン10(払出制御基板100)から管理装置200に戻された電子メダルの枚数、及び度数表示部204に表示された度数に相当する電子メダルの枚数を、電子データとしてカード(磁気カードやICカード等)に記憶し、そのカードをカードリーダライタ205の排出口から排出する。
【0146】
このように、スロットマシン10の払出制御基板100から管理装置200に電子メダルを払い戻すときは、払出制御基板100と管理装置200との間で一往復半のコマンド通信を行う。
これにより、電子メダルの払戻しに関する処理が払出制御基板100及び管理装置200の双方で確実に実行され、クレジット数の管理が正確に行われるので、遊技者に不利益を与えないようにすることができる。
【0147】
また、本実施形態では、クレジット数管理CPU105には、4バイトのデータからなる固有のIDが設定されている。そして、図7中、CPU固有ID1バイト目~4バイト目は、クレジット数管理CPU105に固有のIDの1バイト目~4バイト目を管理装置200に伝達するコマンドである。
払出制御基板100は、電源投入時に、管理装置200に対し、CPU固有ID1バイト目~4バイト目を順次送信する。
【0148】
また、管理装置200は、CPU固有ID1バイト目~4バイト目を受信すると、これらを所定の記憶領域に記憶(保存)し、かつこれらをホールコンピュータ300に順次送信する。
さらにまた、ホールコンピュータ300は、CPU固有ID1バイト目~4バイト目を受信すると、これらを所定の記憶領域に記憶(保存)する。
さらに、管理装置200及びホールコンピュータ300は、記憶したCPU固有ID1バイト目~4バイト目を履歴として残しておくことが可能とされている。
【0149】
たとえば、払出制御基板100が不正に交換されると、払出制御基板100に搭載されているクレジット数管理CPU105が変わるため、交換を境に、管理装置200及びホールコンピュータ300に記憶されているCPU固有ID1バイト目~4バイト目も変わることになる。
このため、管理装置200及びホールコンピュータ300に記憶されているCPU固有ID1バイト目~4バイト目が途中で変わっていないか否かをチェックすることにより、払出制御基板100が不正に交換されたか否かを判断することができる。
【0150】
図8は、払出制御基板100におけるメインルーチンの処理の流れを示すフローチャートである。
払出制御基板100のメインルーチンでは、ステップS101において入力ポート101にいずれかの信号が入力されると、次のステップS102に進み、払出制御基板100は、入力された信号が計数スイッチ47のオン信号であるか否かの判断処理を実行する。
ここで、計数スイッチ47のオン信号であると判断したときは、次のステップS103に進み、計数要求フラグをオンにする処理を実行する。そして、次のステップS104に進む。
これに対し、計数スイッチ47のオン信号でないと判断したときは、ステップS103をスキップして、ステップS104に進む。
【0151】
ステップS104では、払出制御基板100は、VL信号がオンであるか否かの判断処理を実行する。
ここで、管理装置(CRユニット)200から払出制御基板100にVL信号(直流18Vの信号)が供給されていれば、ステップS104では、VL信号はオンであると判断し、管理装置200と払出制御基板100とが正常に接続されていると判断して、ステップS105に進み、VLエラーフラグをクリアする処理を実行する。そして、ステップS107に進む。
これに対し、管理装置200から払出制御基板100にVL信号が供給されていなければ、ステップS104では、VL信号はオフであると判断し、管理装置200と払出制御基板100とが正常に接続されていないと判断して、ステップS106に進み、VLエラーフラグをセットする処理を実行する。そして、ステップS107に進む。
【0152】
ステップS107では、払出制御基板100は、入力ポート101に入力された(受信した)信号がメイン制御コマンドであるか否かの判断処理を実行する。
ここで、入力された信号がメイン制御コマンドであると判断したときは、次のステップS108に進み、払出制御基板100は、入力されたメイン制御コマンドをRWM103の所定の記憶領域に記憶(保存)する。そして、次のステップS109に進む。
これに対し、入力された信号がメイン制御コマンドでないと判断したときは、ステップS108をスキップして、ステップS109に進む。
【0153】
ステップS109では、払出制御基板100は、記憶したコマンドがメイン制御コマンドであるか否かの判断処理を実行する。
ここで、記憶したコマンドがメイン制御コマンドであると判断したときは、次のステップS110に進み、払出制御基板100は、メイン制御コマンド解析処理(図9及び図10)を実行する。メイン制御コマンド解析処理の詳細は後述する。そして、メイン制御コマンド解析処理を実行すると、次のステップS111に進む。
【0154】
ステップS111では、払出制御基板100は、計数処理(図12)を実行中であるか否かの判断処理を実行する。
ここで、計数処理は、後述するステップS116で「Yes」となったときに開始される処理であり、その詳細については後述する。また、計数処理を実行中に、この計数処理と並行して、払出制御基板100のメインルーチンを実行可能とされている。このため、払出制御基板100のメインルーチンのステップS111において、計数処理を実行中であるか否かの判断処理を実行する。
なお、計数処理の開始時に、計数処理中フラグをセットし、計数処理の終了時に、計数処理中フラグをクリアする。これにより、計数処理中フラグのオン/オフをチェックすることで、計数処理を実行中であるか否かを判断することができる。
【0155】
そして、ステップS111において、計数処理を実行中であると判断したときは、ステップS113以降の処理を実行することなく、本フローチャートによる処理を終了する。
なお、ステップS111において、計数処理を実行中であると判断したときは、その後、実行中の計数処理を続ける。
これに対し、ステップS111において、計数処理を実行中でないと判断したときは、ステップS113に進み、払出制御基板100は、貸出処理(図11)を実行中であるか否かの判断処理を実行する。
【0156】
ここで、貸出処理は、後述するステップS118で「Yes」となったときに開始される処理であり、その詳細については後述する。また、貸出処理を実行中に、この貸出処理と並行して、払出制御基板100のメインルーチンを実行可能とされている。このため、払出制御基板100のメインルーチンのステップS113において、貸出処理を実行中であるか否かの判断処理を実行する。
なお、貸出処理の開始時に、貸出処理中フラグをセットし、貸出処理の終了時に、貸出処理中フラグをクリアする。これにより、貸出処理中フラグのオン/オフをチェックすることで、貸出処理を実行中であるか否かを判断することができる。
【0157】
そして、ステップS113において、貸出処理を実行中であると判断したときは、ステップS115以降の処理を実行することなく、本フローチャートによる処理を終了する。
なお、ステップS113において、貸出処理を実行中であると判断したときは、その後、実行中の貸出処理を続ける。
これに対し、ステップS113において、貸出処理を実行中でないと判断したときは、ステップS115に進み、払出制御基板100は、遊技機コマンドを送信中であるか否かの判断処理を実行する。
【0158】
ここで、遊技機コマンド送信処理は、後述するステップS118で「No」となったときに実行される処理である。また、遊技機コマンド送信処理を実行中に、この遊技機コマンド送信処理と並行して、払出制御基板100のメインルーチンを実行可能とされている。このため、払出制御基板100のメインルーチンのステップS115において、遊技機コマンド送信処理を実行中であるか否かの判断処理を実行する。
そして、ステップS115において、遊技機コマンド送信処理を実行中であると判断したときは、ステップS116以降の処理を実行することなく、本フローチャートによる処理を終了する。
これに対し、ステップS115において、遊技機コマンド送信処理を実行中でないと判断したときは、ステップS116に進み、払出制御基板100は、計数要求フラグがオンであるか否かの判断処理を実行する。
【0159】
また、ステップS116において計数要求フラグがオンであると判断したときは、ステップS117に進み、払出制御基板100は、計数処理(図12)を開始する。そして、本フローチャートによる処理を終了する。
これに対し、ステップS116において計数要求フラグがオフであると判断したときは、ステップS118に進み、払出制御基板100は、入力ポート101に入力された(受信した)信号が貸出要求コマンドであるか否かの判断処理を実行する。
【0160】
ここで、入力された(受信した)信号が貸出要求コマンドであると判断したときは、ステップS119に進み、払出制御基板100は、貸出処理(図11)を開始する。そして、本フローチャートによる処理を終了する。
これに対し、入力された信号が貸出要求コマンドでないと判断したときは、ステップS120に進み、払出制御基板100は、遊技機コマンド送信処理を実行する。この処理は、遊技機コマンドを管理装置200に送信する処理である。そして、本フローチャートによる処理を終了する。
【0161】
上述したように、ステップS111において計数処理を実行中であるか否かを判断し、計数処理を実行中であると判断したときは、ステップS113以降の処理を実行することなく、実行中の計数処理を続け、計数処理を実行中でないと判断したときは、ステップS113に進んで貸出処理を実行中であるか否かを判断する。
また、ステップS116において計数要求フラグがオンであるか否かを判断し、計数要求フラグがオンであると判断したときはステップS117に進んで計数処理を開始し、計数要求フラグがオフであると判断したときはステップS118に進んで貸出要求コマンドを受信したか否かを判断する。
【0162】
このように、払出制御基板100は、計数処理(電子メダルの払戻しに関する処理)及び貸出処理(電子メダルの貸出しに関する処理)を実行可能であり、かつ計数処理を実行中であるか否かの判断処理を、貸出処理を実行中であるか否かの判断処理より先に行うとともに、計数要求フラグがオンであるか否かの判断処理を、貸出要求コマンドを受信したか否かの判断処理より先に行うことにより、計数処理を貸出処理より優先して実行するように設定されている。
ここで、計数スイッチ47が操作されると、払出制御基板100は、計数処理を実行する。
また、貸出スイッチ202が操作され、管理装置200から払出制御基板100に貸出要求コマンドが送信されると、払出制御基板100は、貸出処理を実行する。
【0163】
さらにまた、計数スイッチ47と貸出スイッチ202とが同時に操作されると、払出制御基板100は、計数処理を優先するため、計数処理を実行し、貸出処理は実行しない。
一旦貸し出した電子メダルを払い戻すと、電子メダルを貨幣に等価で交換できない場合には、遊技者に不利益を与えてしまうことになるが、計数処理を優先し、貸出処理を実行せずに、計数処理を実行することにより、遊技者に不利益を与えないようにすることができる。
【0164】
さらに、貸出処理を実行中に、計数スイッチ47が操作されると、払出制御基板100は、計数スイッチ47の操作を受け付けるとともに、実行中の貸出処理を継続し、貸出処理が終了すると、計数処理を実行する。
すなわち、払出制御基板100は、貸出処理の実行中やリール31の回転中を含め、いかなるときも、計数スイッチ47の操作を受け付けることができ、そして、計数スイッチ47の操作を受け付けておくことにより、その後の適切なタイミングで計数処理を実行することができる。
これにより、計数スイッチ47を1回操作すれば、電子メダルの払戻しが必ず行われるようにすることができ、計数スイッチ47の再操作を不要にすることができるので、遊技者に煩わしい思いをさせないようにすることができる。
【0165】
図9及び図10は、図8のステップS110におけるメイン制御コマンド解析処理のサブルーチンを示している。図10は、図9に続くフローチャートである。
上述したように、メイン制御基板50から払出制御基板100に送信されるコマンドを総称してメイン制御コマンドという。
また、メイン制御コマンドとして、図4中の「内容」の欄に記載されている8種類のコマンドを挙げることができる。
そして、メイン制御コマンド解析処理では、8種類のコマンドのうち、いずれのコマンドを受信したかを判断し、受信したコマンドに応じた処理を実行する。
【0166】
具体的には、メイン制御コマンド解析処理では、ステップS131において、エラーフラグがオンであるか(エラーが発生しているか)否かの判断処理を実行する。
そして、エラーフラグがオンであると判断したときは、ステップS132に進み、払出制御基板100は、メイン制御基板50に対し、エラーコマンドを送信する処理を実行する。そして、本フローチャートによる処理を終了する。
これに対し、エラーフラグがオフであると判断したときは、ステップS133に進む。
【0167】
ステップS133では、払出制御基板100は、受信したコマンドが起動確認コマンドであるか否かの判断処理を実行する。
そして、受信したコマンドが起動確認コマンドであると判断したときは、ステップS134に進み、払出制御基板100は、受信した起動確認コマンドをそのままメイン制御基板50に送り返す処理を実行する(起動確認コマンドのACK応答)。
これに対し、受信したコマンドが起動確認コマンドでないと判断したときは、ステップS135に進む。
【0168】
ステップS135に進むと、払出制御基板100は、受信したコマンドが投入要求コマンド、返却要求コマンド、又は払出要求コマンドのいずれかであるか否か、すなわち、演算要求コマンドであるか否かの判断処理を実行する。
そして、受信したコマンドが投入要求コマンド、返却要求コマンド、又は払出要求コマンドのいずれかであると判断したとき、すなわち、演算要求コマンドであると判断したときは、図10のステップS138に進む。
これに対し、受信したコマンドが投入要求コマンド、返却要求コマンド、及び払出要求コマンドのいずれでもないと判断したとき、すなわち、演算要求コマンドでないと判断したときは、ステップS136に進む。
【0169】
ここで、受信したコマンドが起動確認コマンドであれば、ステップS133で「Yes」となってステップS134に進み、また、受信したコマンドが演算要求コマンド(投入要求コマンド、返却要求コマンド、又は払出要求コマンド)であれば、ステップS135で「Yes」となって図10のステップS138に進む。このため、ステップS135で「No」となってステップS136に進むのは、図4の「内容」の欄に示す8種類のコマンドのうち、設定変更開始コマンド、設定変更終了コマンド、遊技開始+RT状態コマンド、又は遊技終了+遊技状態コマンドを受信したとき、すなわち、遊技情報コマンドを受信したときとなる。
【0170】
そして、払出制御基板100は、ステップS136では、受信した遊技情報コマンド(設定変更開始コマンド、設定変更終了コマンド、遊技開始+RT状態コマンド、又は遊技終了+遊技状態コマンド)を管理装置送信用コマンドバッファにセットする処理を実行し、次のステップS137では、受信した遊技情報コマンドをそのままメイン制御基板50に送り返す処理を実行する(遊技情報コマンドのACK応答)。そして、本フローチャートによる処理を終了する。
なお、ステップS136で遊技情報コマンドを管理装置送信用コマンドバッファにセットする処理が実行されると、この処理以降に実行される払出制御基板100上の割込み処理により、管理装置送信用コマンドバッファに記憶されている遊技情報コマンドが管理装置200に送信されることとなる。
【0171】
また、図10のステップS138に進むと、払出制御基板100は、受信したコマンドが投入要求コマンドであるか否かの判断処理を実行する。
そして、受信したコマンドが投入要求コマンドであると判断したときは、ステップS139に進み、払出制御基板100は、投入要求コマンドの後続コマンド(下位8ビット)を「03H(00000011B)」でマスクする処理を実行する。
上述したように、投入要求コマンドの後続コマンドは、ベット数を示す。また、ベット数の最大値は「3」に設定されており、3枚投入時には、投入要求コマンドの後続コマンドは「03H(00000011B)」となる。すなわち、ベット数の最大値は、投入要求コマンドの後続コマンドにおけるD0~D1ビットで表すことができる。
【0172】
このため、ステップS139では、投入要求コマンドの後続コマンドを「03H(00000011B)」でマスクする処理を実行する。すなわち、投入要求コマンドの後続コマンドと「03H(00000011B)」とをAND演算する。
これにより、投入要求コマンドの後続コマンドにおけるD0~D1ビット以外のビットを「0」にすることができ、仮に投入要求コマンドの後続コマンドにおけるD2~D7ビットにノイズで「1」が入っても、これを「0」にすることができるので、投入時にクレジット数から「3」を超える数を誤って減算しないようにすることができる。
【0173】
また、ステップS139の処理を実行すると、ステップS140に進み、払出制御基板100は、「(クレジット数-ベット数)<0」か否か、すなわち、クレジット数がベット数未満であるか否かの判断処理を実行する。
そして、クレジット数がベット数未満であると判断したときは、ステップS141に進み、払出制御基板100は、投入不可コマンドをメイン制御基板50に送信する処理を実行する(投入要求コマンドのNAK応答)。そして、本フローチャートによる処理を終了する。
【0174】
これに対し、クレジット数がベット数以上であると判断したときは、払出制御基板100は、ステップS142に進み、クレジット数からベット数を減算する処理を実行し、次のステップS143では、投入復唱コマンドをメイン制御基板50に送信する(受信した投入要求コマンドをそのままメイン制御基板50に送り返す)処理を実行する(投入要求コマンドのACK応答)。そして、本フローチャートによる処理を終了する。
【0175】
また、ステップS138において、受信したコマンドが投入要求コマンドでないと判断したときは、ステップS144に進み、払出制御基板100は、受信したコマンドが払出要求コマンドであるか否かの判断処理を実行する。
そして、受信したコマンドが払出要求コマンドであると判断したときは、ステップS145に進み、払出制御基板100は、払出要求コマンドの後続コマンド(下位8ビット)を「0FH(00001111B)」でマスクする処理を実行する。
上述したように、払出要求コマンドの後続コマンドは、払出し枚数を示す。また、払出し枚数の最大値は「15」に設定されており、15枚払出し時には、払出要求コマンドの後続コマンドは「0EH(00001110B)」となる。すなわち、払出し枚数の最大値は、払出要求コマンドの後続コマンドにおけるD0~D3ビットで表すことができる。
【0176】
このため、ステップS145では、払出要求コマンドの後続コマンドを「0FH(00001111B)」でマスクする処理を実行する。すなわち、払出要求コマンドの後続コマンドと「0FH(00001111B)」とをAND演算する。これにより、払出要求コマンドの後続コマンドにおけるD0~D3ビット以外のビットを「0」にすることができ、仮に払出要求コマンドの後続コマンドにおけるD4~D7ビットにノイズで「1」が入っても、これを「0」にすることができるので、払出し時にクレジット数に「15」を超える数を誤って加算しないようにすることができる。
【0177】
また、ステップS145の処理を実行すると、ステップS146に進み、払出制御基板100は、「(クレジット数+払出し枚数)>上限値」か否か、すなわち、クレジット数に払出し枚数を加算するとクレジット数の上限値(本実施形態では「10000」)を超えるか否かの判断処理を実行する。
そして、クレジット数に払出し枚数を加算するとクレジット数の上限値を超えると判断したときは、ステップS147に進み、払出制御基板100は、払出不可コマンドをメイン制御基板50に送信する処理を実行する(払出要求コマンドのNAK応答)。そして、本フローチャートによる処理を終了する。
【0178】
これに対し、クレジット数に払出し枚数を加算してもクレジット数の上限値を超えないと判断したときは、払出制御基板100は、ステップS148に進み、クレジット数に払出し枚数を加算する処理を実行し、次のステップS149では、払出復唱コマンドをメイン制御基板50に送信する(受信した払出要求コマンドをそのままメイン制御基板50に送り返す)処理を実行する(払出要求コマンドのACK応答)。そして、本フローチャートによる処理を終了する。
【0179】
また、ステップS144において、受信したコマンドが払出要求コマンドでないと判断したときは、ステップS150に進み、払出制御基板100は、受信したコマンドが返却要求コマンドであるか否かの判断処理を実行する。
そして、受信したコマンドが返却要求コマンドであると判断したときは、ステップS151に進み、払出制御基板100は、返却要求コマンドの後続コマンド(下位8ビット)を「03H(00000011B)」でマスクする処理を実行する。
上述したように、返却要求コマンドの後続コマンドは、返却枚数を示す。また、ベット数の最大値は「3」であるから、返却枚数の最大値も「3」となる。そして、3枚返却時には、返却要求コマンドの後続コマンドは「03H(00000011B)」となる。すなわち、返却枚数の最大値は、ベット数の最大値と同様に、返却要求コマンドの後続コマンドにおけるD0~D1ビットで表すことができる。
【0180】
このため、ステップS151では、返却要求コマンドの後続コマンドを「03H(00000011B)」でマスクする処理を実行する。すなわち、返却要求コマンドの後続コマンドと「03H(00000011B)」とをAND演算する。これにより、返却要求コマンドの後続コマンドにおけるD0~D1ビット以外のビットを「0」にすることができ、仮に返却要求コマンドの後続コマンドにおけるD2~D7ビットにノイズで「1」が入っても、これを「0」にすることができるので、返却時にクレジット数に「3」を超える数を誤って加算しないようにすることができる。
【0181】
また、ステップS151の処理を実行すると、ステップS152に進み、払出制御基板100は、「(クレジット数+返却枚数)>上限値」か否か、すなわち、クレジット数に返却枚数を加算するとクレジット数の上限値(本実施形態では「10000」)を超えるか否かの判断処理を実行する。
そして、クレジット数に返却枚数を加算するとクレジット数の上限値を超えると判断したときは、ステップS153に進み、払出制御基板100は、返却不可コマンドをメイン制御基板50に送信する処理を実行する(返却要求コマンドのNAK応答)。そして、本フローチャートによる処理を終了する。
【0182】
これに対し、クレジット数に返却枚数を加算してもクレジット数の上限値を超えないと判断したときは、払出制御基板100は、ステップS154に進み、クレジット数に返却枚数を加算する処理を実行し、次のステップS155では、返却復唱コマンドをメイン制御基板50に送信する(受信した返却要求コマンドをそのままメイン制御基板50に送り返す)処理を実行する(返却要求コマンドのACK応答)。そして、本フローチャートによる処理を終了する。
なお、本フローチャートによる処理を終了すると、図8に示すステップS111の処理に進む。
【0183】
図11は、図8のステップS119における貸出処理のサブルーチンを示している。なお、図11において「貸出処理1」としているのは、図8のステップS119における貸出処理の一部の処理であることを示している。当該貸出処理の他の一部については、後述する図23(「貸出処理2」と称する。)で図示している。
図8のステップS118で貸出要求コマンドを受信したと判断すると、図8のステップS119に進む。これにより、図11の貸出処理を開始する。また、貸出処理では、ステップS161において、払出制御基板100は、貸出復唱コマンドを管理装置200に送信する(受信した貸出要求コマンドをそのまま管理装置200に送り返す)処理を実行する(貸出要求コマンドのACK応答)。そして、次のステップS162に進む。
【0184】
ステップS162では、払出制御基板100は、貸出復唱コマンドの送信を完了したか否かの判断処理を「Yes」となるまで繰り返し実行し、ステップS162で「Yes」となると、ステップS163に進む。
ステップS163に進むと、払出制御基板100は、管理装置コマンドを受信したか否かの判断処理を実行する。上述したように、管理装置コマンドは、管理装置200から払出制御基板100に送信されるコマンドの総称である。
そして、ステップS163において、管理装置コマンドを受信したと判断したときは、ステップS164に進み、受信した管理装置コマンドが貸出指示コマンドであるか否かの判断処理を実行する。
【0185】
これに対し、ステップS163において、管理装置コマンドを受信していないと判断したときは、ステップS168に進み、払出制御基板100は、タイムアウト(貸出復唱コマンドを送信してから所定時間が経過した)か否かの判断処理を実行する。
ここで、ステップS168において、タイムアウトであると判断したときは、ステップS169に進み、払出制御基板100は、エラーフラグをセットする。そして、本フローチャートによる処理を終了する。
これに対し、ステップS168において、タイムアウトでないと判断したときは、再度、ステップS163の処理を実行する。
【0186】
また、ステップS164において、受信した管理装置コマンドが貸出指示コマンドであると判断したときは、ステップS165に進み、払出制御基板100は、貸出し枚数(貸出要求コマンドの後続コマンド(下位8ビット)と貸出指示コマンドの後続コマンド(下位8ビット)とが一致するか否かの判断処理を実行する。
ここで、ステップS165において、一致しないと判断したときは、次のステップS166に進み、払出制御基板100は、貸出指示コマンドの後続コマンド(下位8ビット)を払出し枚数としてRWM103の所定の記憶領域に記憶(保存)する。そして、次のステップS167に進む。
これに対し、ステップS165において、一致すると判断したときは、ステップS166をスキップして、ステップS167に進む。
【0187】
ステップS167に進むと、払出制御基板100は、クレジット数に貸出し枚数を加算する処理を実行する。そして、本フローチャートによる処理を終了する。
また、ステップS164において、受信した管理装置コマンドが貸出指示コマンドでないと判断したときは、ステップS169に進み、払出制御基板100は、エラーフラグをセットする。そして、本フローチャートによる処理を終了する。
なお、ステップS169でエラーフラグがセットされると、この処理以降に実行される図9のメイン制御コマンド解析処理のステップS131で「Yes」と判断されて、ステップS132に進む。そして、メイン制御基板50にエラーコマンドが送信される。
【0188】
図12は、図8のステップS117における計数処理のサブルーチンを示している。なお、図12において「計数処理1」としているのは、図8のステップS117における計数処理の一部の処理であることを示している。当該計数処理の他の一部については、後述する図24(「計数処理2」と称する。)で図示している。
図8のステップS116で計数要求フラグがオンであると判断すると、図8のステップS117に進む。これにより、図12の計数処理を開始する。また、計数処理では、ステップS181において、払出制御基板100は、下位計数要求コマンドを管理装置200に送信する処理を実行する。そして、次のステップS182に進む。
【0189】
ステップS182では、払出制御基板100は、下位計数要求コマンドの送信を完了したか否かの判断処理を「Yes」となるまで繰り返し実行し、ステップS182で「Yes」となると、ステップS183に進む。
ステップS183に進むと、払出制御基板100は、管理装置コマンドを受信したか否かの判断処理を実行する。
そして、ステップS183において、管理装置コマンドを受信したと判断したときは、ステップS184に進み、受信したコマンドと送信したコマンドとが一致するか否かの判断処理を実行する。すなわち、送信した下位計数要求コマンドがそのまま管理装置200から送り返された(下位計数復唱コマンドを受信した)か否かの判断処理を実行する。
【0190】
これに対し、ステップS183において、管理装置コマンドを受信していないと判断したときは、ステップS192に進み、払出制御基板100は、タイムアウト(下位計数要求コマンドを送信してから所定時間が経過した)か否かの判断処理を実行する。
ここで、ステップS192において、タイムアウトであると判断したときは、ステップS194に進み、払出制御基板100は、エラーフラグをセットする。そして、本フローチャートによる処理を終了する。
これに対し、ステップS192において、タイムアウトでないと判断したときは、再度、ステップS183の処理を実行する。
【0191】
また、ステップS184において、受信したコマンドと送信したコマンドとが一致する(送信した下位計数要求コマンドがそのまま管理装置200から送り返された)と判断したときは、ステップS185に進み、払出制御基板100は、上位計数要求コマンドを管理装置200に送信する処理を実行する。そして、次のステップS186に進む。
これに対し、ステップS184において、受信したコマンドと送信したコマンドとが一致しないと判断したときは、ステップS194に進み、払出制御基板100は、エラーフラグをセットする。そして、本フローチャートによる処理を終了する。
【0192】
ステップS186に進むと、払出制御基板100は、上位計数要求コマンドの送信を完了したか否かの判断処理を「Yes」となるまで繰り返し実行し、ステップS186で「Yes」となると、ステップS187に進む。
ステップS187に進むと、払出制御基板100は、管理装置コマンドを受信したか否かの判断処理を実行する。
そして、ステップS187において、管理装置コマンドを受信したと判断したときは、ステップS188に進み、受信したコマンドと送信したコマンドとが一致するか否かの判断処理を実行する。すなわち、送信した上位計数要求コマンドがそのまま管理装置200から送り返された(上位計数復唱コマンドを受信した)か否かの判断処理を実行する。
【0193】
これに対し、ステップS187において、管理装置コマンドを受信していないと判断したときは、ステップS193に進み、払出制御基板100は、タイムアウト(上位計数要求コマンドを送信してから所定時間が経過した)か否かの判断処理を実行する。
ここで、ステップS193において、タイムアウトであると判断したときは、ステップS194に進み、払出制御基板100は、エラーフラグをセットする。そして、本フローチャートによる処理を終了する。
これに対し、ステップS193において、タイムアウトでないと判断したときは、再度、ステップS187の処理を実行する。
【0194】
また、ステップS188において、受信したコマンドと送信したコマンドとが一致する(送信した上位計数要求コマンドがそのまま管理装置200から送り返された)と判断したときは、ステップS189に進み、払出制御基板100は、計数指示コマンドを管理装置200に送信する処理を実行する。そして、次のステップS190に進む。
これに対し、ステップS188において、受信したコマンドと送信したコマンドとが一致しないと判断したときは、ステップS194に進み、払出制御基板100は、エラーフラグをセットする。そして、本フローチャートによる処理を終了する。
【0195】
ステップS190に進むと、払出制御基板100は、計数指示コマンドの送信を完了したか否かの判断処理を「Yes」となるまで繰り返し実行し、ステップS190で「Yes」となると、ステップS191に進む。
ステップS191に進むと、払出制御基板100は、クレジット数をクリアする(「0」にする)処理を実行する。そして、本フローチャートによる処理を終了する。
なお、ステップS194でエラーフラグがセットされると、この処理以降に実行される図9のメイン制御コマンド解析処理のステップS131で「Yes」と判断されて、ステップS132に進む。そして、メイン制御基板50にエラーコマンドが送信される。
【0196】
図13は、メイン制御基板50におけるメインルーチンの処理の流れを示すフローチャートである。
メイン制御基板50においては、電源が投入されると、ステップS201において、電源投入処理が行われる。そして、次のステップS202に進む。
ステップS202に進むと、設定キースイッチ12がオンであるか否かの判断処理を実行する。
【0197】
ここで、ステップS202において、設定キースイッチ12がオンであると判断したときは、ステップS203に進み、設定変更処理を実行する。そして、設定変更処理が終了すると、ステップS211に進む。
これに対し、ステップS202において、設定キースイッチ12がオフであると判断したときは、ステップS204に進み、遊技復帰処理を実行する。そして、遊技復帰処理が終了すると、ステップS211に進む。
ステップS211に進むと、3枚ベット又は1枚ベットの判断処理を実行する。そして、3枚ベットと判断したときは、ステップS205に進み、1枚ベットと判断したときは、ステップS206に進む。
【0198】
ステップS205に進むと、3枚ベット処理(図16)を実行する。この処理は、3ベットスイッチ40bの操作に基づいて、クレジットされている電子メダルを3枚ベットする処理である。3枚ベット処理の詳細は後述する。そして、3枚ベット処理が終了すると、ステップS212に進む。
ステップS206に進むと、1枚ベット処理(図17)を実行する。この処理は、1ベットスイッチ40aの操作に基づいて、クレジットされている電子メダルを1枚ベットする処理である。1枚ベット処理の詳細は後述する。そして、1枚ベット処理が終了すると、ステップS212に進む。
【0199】
ステップS212に進むと、スタート又はキャンセルの判断処理を実行する。そして、スタートと判断したときは、ステップS207に進み、キャンセルと判断したときは、ステップS210に進む。
ステップS207に進むと、遊技開始処理(図18)を実行する。この処理は、スタートスイッチ41の操作に基づいて、遊技を開始する処理である。遊技開始処理の詳細は後述する。そして、遊技開始処理が終了すると、次のステップS208に進む。
【0200】
ステップS208では、遊技終了処理(図19)を実行する。この処理は、ストップスイッチ42が操作され、すべてのリール31の回転が停止したことに基づいて、遊技を終了する処理である。遊技終了処理の詳細は後述する。そして、遊技終了処理が終了すると、次のステップS209に進み、払出処理(図20)を実行する。この処理は、役の入賞に基づいて、電子メダルを払い出す処理である。そして、払出処理が終了すると、ステップS211に戻る。
ステップS210に進むと、返却処理(図21)を実行する。この処理は、キャンセルスイッチ46の操作に基づいて、ベットされた電子メダルをクレジットに戻す処理である。そして、返却処理が終了すると、ステップS211に戻る。
【0201】
図14は、メイン制御基板50及び払出制御基板100における電源投入処理の流れを示すフローチャートである。
図14中、左側のフローチャートは、メイン制御基板50における電源投入処理の流れを示し、右側のフローチャートは、払出制御基板100における電源投入処理1の流れを示す。なお、「電源投入処理1」としているのは、図14では、払出制御基板100における電源投入処理の一部の処理であることを示している。当該電源投入処理の他の一部については、後述する図22(「電源投入処理2」と称する。)で図示している。また、図14中、左右のフローチャートの間の矢印は、電源投入処理時にメイン制御基板50と払出制御基板100との間で送受信されるコマンドの送信方向を示す。
そして、この図14及び後述する図15図21は、メイン制御基板50と払出制御基板100との間のコマンド送受信状況を示すものである。
また、後述する図23図25は、払出制御基板100と管理装置200との間のコマンド送受信状況を示すものである。
【0202】
スロットマシン10の電源が投入されると、電源基板150からメイン制御基板50及び払出制御基板100に電力が供給される。そして、メイン制御基板50上のプログラムが起動するとともに、払出制御基板100上のプログラムが起動する。このとき、メイン制御基板50において電源投入処理が実行されるとともに、払出制御基板100において電源投入処理1が実行される。
【0203】
まず、図14中の左側に示すメイン制御基板50における電源投入処理について説明する。図14中の左側に示すフローチャートは、図13のステップS201における電源投入処理のサブルーチンを示している。
ステップS301において、メイン制御基板50は、初期化処理を実行する。そして、初期化処理が終了すると、次のステップS302に進む。
ステップS302に進むと、メイン制御基板50は、起動確認コマンドを払出制御基板100に送信する処理を実行する。そして、次のステップS303に進む。
ステップS303では、メイン制御基板50は、応答待機処理を実行する。この処理は、払出制御基板100による起動確認コマンドのACK応答を待つ処理である。
【0204】
そして、送信した起動確認コマンドがそのまま払出制御基板100から送り返される(ACK応答がある)と、本フローチャートによる処理を終了する。なお、本フローチャートによる処理を終了すると、図13に示すステップS202の処理に進む。
これに対し、起動確認コマンドを送信してから所定時間が経過しても起動確認コマンドのACK応答がない(タイムアウトとなる)か、又は払出制御基板100からエラーコマンドが送信される(NAK応答がある)と、ステップS304に進み、メイン制御基板50は、再送カウンタを減算する処理を実行する。
再送カウンタは、起動確認コマンドの再送回数をカウントするためのカウンタであり、起動確認コマンドの最初の送信時に初期値として「2」が設定される。
なお、再送カウンタの初期値は「2」に限らず、たとえば「3」としてもよい。
【0205】
また、再送カウンタの減算処理が終了すると、次のステップS305に進み、メイン制御基板50は、再送カウンタが「0」か否かの判断処理を実行する。
ここで、再送カウンタが「0」であると判断したときは、次のステップS306に進み、メイン制御基板50は、エラー処理を実行する。
これに対し、再送カウンタが「0」でないと判断したときは、再度、ステップS302を実行する。
【0206】
次に、図14中の右側に示す払出制御基板100における電源投入処理1について説明する。
ステップS401において、払出制御基板100は、初期化処理を実行する。そして、初期化処理が終了すると、次のステップS402に進む。
ステップS402では、払出制御基板100は、コマンド受信処理を実行する。この処理は、メイン制御基板50から送信される起動確認コマンドを受信する処理である。そして、起動確認コマンドを受信すると、次のステップS403に進み、払出制御基板100は、受信した起動確認コマンドをそのままメイン制御基板50に送り返す処理を実行する(起動確認コマンドのACK応答)。そして、受信した起動確認コマンドをそのままメイン制御基板50に送り返すと、本フローチャートによる処理を終了する。
【0207】
図15は、メイン制御基板50及び払出制御基板100における設定変更処理の流れを示すフローチャートである。
図15中、左側のフローチャートは、メイン制御基板50における設定変更処理の流れを示し、右側のフローチャートは、払出制御基板100における設定変更処理の流れを示す。また、図15中、左右のフローチャートの間の矢印は、設定変更処理時にメイン制御基板50と払出制御基板100との間で送受信されるコマンドの送信方向を示す。
【0208】
まず、図15中の左側に示すメイン制御基板50における設定変更処理について説明する。図15中の左側に示すフローチャートは、図13のステップS203における設定変更処理のサブルーチンを示している。
電源投入時に設定キースイッチ12がオンであると、メイン制御基板50は、設定変更処理を実行する。この設定変更処理では、ステップS311において、設定変更開始コマンドを払出制御基板100に送信する処理を実行する。そして、次のステップS312に進む。
ステップS312では、メイン制御基板50は、応答待機処理を実行する。この処理は、払出制御基板100による設定変更開始コマンドのACK応答を待つ処理である。
ここで、送信した設定変更開始コマンドがそのまま払出制御基板100から送り返されると、メイン制御基板50は、払出制御基板100による設定変更開始コマンドのACK応答があったと判断し、ステップS203の設定値変更中処理に進む。この処理は、設定スイッチ13が操作されるごとに、設定値の表示を「1」→「2」→・・・→「6」→「1」→・・・と切り替えていき、スタートスイッチ41が操作されると、表示中の設定値で確定させる処理である。そして、設定値変更中処理が終了すると、ステップS313に進む。
【0209】
これに対し、設定変更開始コマンドを送信してから所定時間が経過しても設定変更開始コマンドのACK応答がない(タイムアウトとなる)か、又は払出制御基板100からエラーコマンドが送信される(NAK応答がある)と、ステップS311に戻り、メイン制御基板50は、再度、設定変更開始コマンドを払出制御基板100に送信する処理を実行する。
また、ステップS313に進むと、メイン制御基板50は、設定変更終了コマンドを払出制御基板100に送信する処理を実行する。そして、次のステップS314に進む。
【0210】
ステップS314では、メイン制御基板50は、応答待機処理を実行する。この処理は、払出制御基板100による設定変更終了コマンドのACK応答を待つ処理である。
ここで、送信した設定変更終了コマンドがそのまま払出制御基板100から送り返されると、メイン制御基板50は、払出制御基板100による設定変更終了コマンドのACK応答があったと判断し、本フローチャートによる処理を終了する。なお、本フローチャートによる処理を終了すると、図13に示すステップS211の処理に進む。
これに対し、設定変更終了コマンドを送信してから所定時間が経過しても設定変更終了コマンドのACK応答がない(タイムアウトとなる)か、又は払出制御基板100からエラーコマンドが送信される(NAK応答がある)と、ステップS313に戻り、メイン制御基板50は、再度、設定変更終了コマンドを払出制御基板100に送信する処理を実行する。
【0211】
次に、図15中の右側に示す払出制御基板100における設定変更処理の流れについて説明する。
ステップS411において、払出制御基板100は、コマンド受信処理を実行する。この処理は、メイン制御基板50から送信される設定変更開始コマンドを受信する処理である。そして、設定変更開始コマンドを受信すると、次のステップS412に進み、払出制御基板100は、受信した設定変更開始コマンドをそのままメイン制御基板50に送り返す処理を実行する(設定変更開始コマンドのACK応答)。そして、次のステップS413に進む。
【0212】
ステップS413に進むと、払出制御基板100は、コマンド受信処理を実行する。この処理は、メイン制御基板50から送信される設定変更終了コマンドを受信する処理である。そして、設定変更終了コマンドを受信すると、次のステップS414に進み、払出制御基板100は、受信した設定変更終了コマンドをそのままメイン制御基板50に送り返す処理を実行する(設定変更終了コマンドのACK応答)。そして、受信した設定変更終了コマンドをそのままメイン制御基板50に送り返すと、本フローチャートによる処理を終了する。
【0213】
図16は、メイン制御基板50及び払出制御基板100における3枚ベット処理の流れを示すフローチャートである。
図16中、左側のフローチャートは、メイン制御基板50における3枚ベット処理の流れを示し、右側のフローチャートは、払出制御基板100における3枚ベット処理の流れを示す。また、図16中、左右のフローチャートの間の矢印は、3枚ベット処理時にメイン制御基板50と払出制御基板100との間で送受信されるコマンドの送信方向を示す。
【0214】
また、図16では、3枚ベット処理時に、投入要求コマンドとして、クレジット数からベット数「1」を減算することを要求する1枚投入要求コマンド(「2001H」)を3回送信する例を示している。
なお、3枚ベット処理時に、1枚投入要求コマンドを3回送信することに限らず、クレジット数からベット数「3」を減算することを要求する3枚投入要求コマンド(「2003H」)を1回送信してもよい。
【0215】
まず、図16中の左側に示すメイン制御基板50における3枚ベット処理について説明する。図16中の左側に示すフローチャートは、図13のステップS205における3枚ベット処理のサブルーチンを示している。
ステップS321において、メイン制御基板50は、規定数の電子メダルがベット済であるか否かの判断処理を実行する。そして、規定数の電子メダルがベット済であると判断したときは、本フローチャートによる処理を終了する。これに対し、規定数の電子メダルがベット済でないと判断したときは、次のステップS322で3ベットスイッチ40bの操作(オン)が検知されると、その次のステップS323に進む。
ステップS323では、メイン制御基板50は、投入要求コマンドとして、1枚投入要求コマンドを払出制御基板100に送信する処理を実行する。そして、次のステップS324に進む。
【0216】
ステップS324では、メイン制御基板50は、応答待機処理を実行する。この処理は、払出制御基板100から1枚投入復唱コマンドが送信されること(1枚投入要求コマンドのACK応答)を待つ処理である。
そして、1枚投入復唱コマンドを受信する(送信した1枚投入要求コマンドがそのまま払出制御基板100から送り返される)と、メイン制御基板50は、払出制御基板100による1枚投入要求コマンドのACK応答があったと判断し、ステップS325に進む。
【0217】
これに対し、ステップS323で1枚投入要求コマンドを送信してから所定時間が経過しても1枚投入復唱コマンドを受信しない(タイムアウトとなる)か、又は払出制御基板100からエラーコマンドが送信される(NAK応答がある)と、ステップS323に戻り、メイン制御基板50は、再度、1枚投入要求コマンドを払出制御基板100に送信する処理を実行する。
その後、メイン制御基板50は、ステップS325及びS326、並びにステップS327及びS328において、ステップS323及びS324と同様の処理を実行する。すなわち、ステップS323及びS324と同様の処理を3回繰り返し実行する。そして、本フローチャートによる処理を終了する。なお、本フローチャートによる処理を終了すると、図13に示すステップS212の処理に進む。
【0218】
次に、図16中の右側に示す払出制御基板100における3枚ベット処理について説明する。
ステップS421において、払出制御基板100は、コマンド受信処理を実行する。この処理は、メイン制御基板50から送信される1枚投入要求コマンドを受信する処理である。そして、1枚投入要求コマンドを受信すると、次のステップS422に進み、払出制御基板100は、1枚投入復唱コマンドをメイン制御基板50に送信する(受信した1枚投入要求コマンドをそのままメイン制御基板50に送り返す)処理を実行する(1枚投入要求コマンドのACK応答)。そして、次のステップS423に進む。
その後、払出制御基板100は、ステップS423及びS424、並びにステップS425及びS426において、ステップS421及びS422と同様の処理を実行する。すなわち、ステップS421及びS422と同様の処理を3回繰り返し実行する。そして、本フローチャートによる処理を終了する。
【0219】
図17は、メイン制御基板50及び払出制御基板100における1枚ベット処理の流れを示すフローチャートである。
図17中、左側のフローチャートは、メイン制御基板50における1枚ベット処理の流れを示し、右側のフローチャートは、払出制御基板100における1枚ベット処理の流れを示す。また、図17中、左右のフローチャートの間の矢印は、1枚ベット処理時にメイン制御基板50と払出制御基板100との間で送受信されるコマンドの送信方向を示す。
【0220】
まず、図17中の左側に示すメイン制御基板50における1枚ベット処理について説明する。図17中の左側に示すフローチャートは、図13のステップS206における1枚ベット処理のサブルーチンを示している。
ステップS331において、メイン制御基板50は、規定数の電子メダルがベット済であるか否かの判断処理を実行する。そして、規定数の電子メダルがベット済であると判断したときは、本フローチャートによる処理を終了する。これに対し、規定数の電子メダルがベット済でないと判断したときは、次のステップS332で1ベットスイッチ40aの操作(オン)が検知されると、その次のステップS333に進む。
ステップS333では、メイン制御基板50は、投入要求コマンドとして、1枚投入要求コマンドを払出制御基板100に送信する処理を実行する。そして、次のステップS334に進む。
【0221】
ステップS334では、メイン制御基板50は、応答待機処理を実行する。この処理は、払出制御基板100から1枚投入復唱コマンドが送信されること(1枚投入要求コマンドのACK応答)を待つ処理である。
そして、1枚投入復唱コマンドを受信する(送信した1枚投入要求コマンドがそのまま払出制御基板100から送り返される)と、メイン制御基板50は、払出制御基板100による1枚投入要求コマンドのACK応答があったと判断し、本フローチャートによる処理を終了する。なお、本フローチャートによる処理を終了すると、図13に示すステップS212の処理に進む。
【0222】
これに対し、ステップS333で1枚投入要求コマンドを送信してから所定時間が経過しても1枚投入復唱コマンドを受信しない(タイムアウトとなる)か、又は払出制御基板100からエラーコマンドが送信される(NAK応答がある)と、ステップS333に戻り、メイン制御基板50は、再度、1枚投入要求コマンドを払出制御基板100に送信する処理を実行する。
【0223】
次に、図17中の右側に示す払出制御基板100における1枚ベット処理について説明する。
ステップS431において、払出制御基板100は、コマンド受信処理を実行する。この処理は、メイン制御基板50から送信される1枚投入要求コマンドを受信する処理である。そして、1枚投入要求コマンドを受信すると、次のステップS432に進み、払出制御基板100は、1枚投入復唱コマンドをメイン制御基板50に送信する(受信した1枚投入要求コマンドをそのままメイン制御基板50に送り返す)処理を実行する(1枚投入要求コマンドのACK応答)。そして、本フローチャートによる処理を終了する。
【0224】
図18は、メイン制御基板50及び払出制御基板100における遊技開始処理の流れを示すフローチャートである。
図18中、左側のフローチャートは、メイン制御基板50における遊技開始処理の流れを示し、右側のフローチャートは、払出制御基板100における遊技開始処理の流れを示す。また、図18中、左右のフローチャートの間の矢印は、遊技開始処理時にメイン制御基板50と払出制御基板100との間で送受信されるコマンドの送信方向を示す。
【0225】
まず、図18中の左側に示すメイン制御基板50における遊技開始処理について説明する。図18中の左側に示すフローチャートは、図13のステップS207における遊技開始処理のサブルーチンを示している。
ステップS351において、メイン制御基板50は、規定数の電子メダルがベット済であるか否かの判断処理を実行する。そして、規定数の電子メダルがベット済でないと判断したときは、本フローチャートによる処理を終了する。これに対し、規定数の電子メダルがベット済であると判断したときは、次のステップS352でスタートスイッチ41の操作(オン)が検知されると、その次のステップS353に進む。
ステップS353では、メイン制御基板50は、遊技開始+RT状態コマンドを払出制御基板100に送信する処理を実行する。そして、次のステップS354に進む。
ステップS354では、メイン制御基板50は、応答待機処理を実行する。この処理は、払出制御基板100から遊技開始+RT状態コマンドが送り返されること(ACK応答)を待つ処理である。
【0226】
そして、送信した遊技開始+RT状態コマンドがそのまま払出制御基板100から送り返される)と、メイン制御基板50は、払出制御基板100によるACK応答があったと判断し、本フローチャートによる処理を終了する。なお、本フローチャートによる処理を終了すると、図13に示すステップS208の処理に進む。
これに対し、ステップS353で遊技開始+RT状態コマンドを送信してから所定時間が経過してもACK応答がない(タイムアウトとなる)か、又は払出制御基板100からエラーコマンドが送信される(NAK応答がある)と、ステップS353に戻り、メイン制御基板50は、再度、遊技開始+RT状態コマンドを払出制御基板100に送信する処理を実行する。
【0227】
次に、図18中の右側に示す払出制御基板100における遊技開始処理について説明する。
ステップS451において、払出制御基板100は、コマンド受信処理を実行する。この処理は、メイン制御基板50から送信される遊技開始+RT状態コマンドを受信する処理である。そして、遊技開始+RT状態コマンドを受信すると、次のステップS452に進み、払出制御基板100は、受信した遊技開始+RT状態コマンドをそのままメイン制御基板50に送り返す処理を実行する(ACK応答)。そして、本フローチャートによる処理を終了する。
【0228】
図19は、メイン制御基板50及び払出制御基板100における遊技終了処理の流れを示すフローチャートである。
図19中、左側のフローチャートは、メイン制御基板50における遊技終了処理の流れを示し、右側のフローチャートは、払出制御基板100における遊技終了処理の流れを示す。また、図19中、左右のフローチャートの間の矢印は、遊技終了処理時にメイン制御基板50と払出制御基板100との間で送受信されるコマンドの送信方向を示す。
【0229】
まず、図19中の左側に示すメイン制御基板50における遊技終了処理について説明する。図19中の左側に示すフローチャートは、図13のステップS208における遊技終了処理のサブルーチンを示している。
ステップS361において、メイン制御基板50は、第3ストップスイッチ42(最後に停止するリール31に対応するストップスイッチ42)がオンからオフになったか否かの判断処理を実行する。そして、第3ストップスイッチ42がオフになっていないと判断したときは、本フローチャートによる処理を終了する。これに対し、第3ストップスイッチ42がオフになったと判断したときは、ステップS362に進む。
ステップS362に進むと、メイン制御基板50は、遊技終了+遊技状態コマンドを払出制御基板100に送信する処理を実行する。そして、次のステップS363に進む。
ステップS363では、メイン制御基板50は、応答待機処理を実行する。この処理は、払出制御基板100から遊技終了+遊技状態コマンドが送り返されること(ACK応答)を待つ処理である。
【0230】
そして、送信した遊技終了+遊技状態コマンドがそのまま払出制御基板100から送り返される)と、メイン制御基板50は、払出制御基板100によるACK応答があったと判断し、本フローチャートによる処理を終了する。なお、本フローチャートによる処理を終了すると、図13に示すステップS209の処理に進む。
これに対し、ステップS362で遊技終了+遊技状態コマンドを送信してから所定時間が経過してもACK応答がない(タイムアウトとなる)か、又は払出制御基板100からエラーコマンドが送信される(NAK応答がある)と、ステップS362に戻り、メイン制御基板50は、再度、遊技終了+遊技状態コマンドを払出制御基板100に送信する処理を実行する。
【0231】
次に、図19中の右側に示す払出制御基板100における遊技終了処理について説明する。
ステップS461において、払出制御基板100は、コマンド受信処理を実行する。この処理は、メイン制御基板50から送信される遊技終了+遊技状態コマンドを受信する処理である。そして、遊技終了+遊技状態コマンドを受信すると、次のステップS462に進み、払出制御基板100は、受信した遊技終了+遊技状態コマンドをそのままメイン制御基板50に送り返す処理を実行する(ACK応答)。そして、本フローチャートによる処理を終了する。
【0232】
図20は、メイン制御基板50及び払出制御基板100における払出処理の流れを示すフローチャートである。
図20中、左側のフローチャートは、メイン制御基板50における払出処理の流れを示し、右側のフローチャートは、払出制御基板100における払出処理の流れを示す。また、図20中、左右のフローチャートの間の矢印は、払出処理時にメイン制御基板50と払出制御基板100との間で送受信されるコマンドの送信方向を示す。
【0233】
まず、図20中の左側に示すメイン制御基板50における払出処理について説明する。図20中の左側に示すフローチャートは、図13のステップS209における払出処理のサブルーチンを示している。
ステップS371において、メイン制御基板50は、払出要求コマンドを払出制御基板100に送信する処理を実行する。そして、次のステップS372に進む。
ステップS372では、メイン制御基板50は、応答待機処理を実行する。この処理は、払出制御基板100から払出復唱コマンドが送信されること(払出要求コマンドのACK応答)を待つ処理である。
【0234】
そして、払出復唱コマンドを受信する(送信した払出要求コマンドがそのまま払出制御基板100から送り返される)と、メイン制御基板50は、払出制御基板100による払出要求コマンドのACK応答があったと判断し、本フローチャートによる処理を終了する。なお、本フローチャートによる処理を終了すると、図13に示すステップS211の処理に戻る。
これに対し、ステップS371で払出要求コマンドを送信してから所定時間が経過しても払出復唱コマンドを受信しない(タイムアウトとなる)か、又は払出制御基板100からエラーコマンドが送信される(NAK応答がある)と、ステップS371に戻り、メイン制御基板50は、再度、払出要求コマンドを払出制御基板100に送信する処理を実行する。
【0235】
次に、図20中の右側に示す払出制御基板100における払出処理について説明する。
ステップS471において、払出制御基板100は、コマンド受信処理を実行する。この処理は、メイン制御基板50から送信される払出要求コマンドを受信する処理である。そして、払出要求コマンドを受信すると、次のステップS472に進み、払出制御基板100は、払出復唱コマンドをメイン制御基板50に送信する(受信した払出要求コマンドをそのままメイン制御基板50に送り返す)処理を実行する(払出要求コマンドのACK応答)。そして、本フローチャートによる処理を終了する。
【0236】
図21は、メイン制御基板50及び払出制御基板100における返却処理の流れを示すフローチャートである。
図21中、左側のフローチャートは、メイン制御基板50における返却処理の流れを示し、右側のフローチャートは、払出制御基板100における返却処理の流れを示す。また、図21中、左右のフローチャートの間の矢印は、返却処理時にメイン制御基板50と払出制御基板100との間で送受信されるコマンドの送信方向を示す。
【0237】
まず、図21中の左側に示すメイン制御基板50における返却処理について説明する。図20中の左側に示すフローチャートは、図13のステップS210における返却処理のサブルーチンを示している。
ステップS341において、メイン制御基板50は、ベットされている電子メダルがあるか否かの判断処理を実行する。そして、ベットされている電子メダルがないと判断したときは、本フローチャートによる処理を終了する。これに対し、ベットされている電子メダルがあると判断したときは、次のステップS342でキャンセルスイッチ46の操作(オン)が検知されると、その次のステップS343に進む。
ステップS343では、メイン制御基板50は、返却要求コマンドを払出制御基板100に送信する処理を実行する。そして、次のステップS344に進む。
ステップS344では、メイン制御基板50は、応答待機処理を実行する。この処理は、払出制御基板100から返却復唱コマンドが送信されること(返却要求コマンドのACK応答)を待つ処理である。
【0238】
そして、返却復唱コマンドを受信する(送信した返却要求コマンドがそのまま払出制御基板100から送り返される)と、メイン制御基板50は、払出制御基板100による返却要求コマンドのACK応答があったと判断し、本フローチャートによる処理を終了する。なお、本フローチャートによる処理を終了すると、図13に示すステップS211の処理に戻る。
これに対し、ステップS343で返却要求コマンドを送信してから所定時間が経過しても返却復唱コマンドを受信しない(タイムアウトとなる)か、又は払出制御基板100からエラーコマンドが送信される(NAK応答がある)と、ステップS343に戻り、メイン制御基板50は、再度、返却要求コマンドを払出制御基板100に送信する処理を実行する。
【0239】
次に、図21中の右側に示す払出制御基板100における返却処理について説明する。
ステップS441において、払出制御基板100は、コマンド受信処理を実行する。この処理は、メイン制御基板50から送信される返却要求コマンドを受信する処理である。そして、返却要求コマンドを受信すると、次のステップS442に進み、払出制御基板100は、返却復唱コマンドをメイン制御基板50に送信する(受信した返却要求コマンドをそのままメイン制御基板50に送り返す)処理を実行する(返却要求コマンドのACK応答)。そして、本フローチャートによる処理を終了する。
【0240】
図22は、払出制御基板100及び管理装置200における電源投入処理の流れを示すフローチャートである。
図22中、左側のフローチャートは、払出制御基板100における電源投入処理2の流れを示し、右側のフローチャートは、管理装置200における電源投入処理の流れを示す。また、図22中、左右のフローチャートの間の矢印は、電源投入処理時に払出制御基板100と管理装置200との間で送受信されるコマンドの送信方向を示す。
スロットマシン10及び管理装置200の電源が投入されると、スロットマシン10の払出制御基板100上のプログラムが起動するとともに、管理装置200上のプログラムが起動する。このとき、スロットマシン10の払出制御基板100において電源投入処理が実行されるとともに、管理装置200において電源投入処理が実行される。
【0241】
ここで、図14中の右側に示す払出制御基板100における電源投入処理1、及び図22中の左側に示す払出制御基板100における電源投入処理2は、いずれも、電源投入時に払出制御基板100において実行される処理であり、一部の処理が重複している。そして、同一の内容の処理には、同一のステップ番号を付している。
ただし、図14中の右側に示す払出制御基板100における電源投入処理1では、メイン制御基板50と払出制御基板100との間におけるコマンドの送受信を説明するために必要な処理を抽出して図示し、それ以外の処理の図示を省略している。
これに対し、図22中の左側に示す払出制御基板100における電源投入処理2では、払出制御基板100と管理装置200との間におけるコマンドの送受信を説明するために必要な処理を抽出して図示し、それ以外の処理の図示を省略している。
【0242】
まず、図22中の左側に示す払出制御基板100における電源投入処理2について説明する。
ステップS401において、払出制御基板100は、初期化処理を実行する。そして、初期化処理が終了すると、次のステップS502に進む。なお、図22中のステップS401と、図14中のステップS401とは、同一の内容の処理である。
ステップS502に進むと、払出制御基板100は、CPU固有ID1バイト目~4バイト目を払出制御基板100に順次送信する処理を実行する。そして、次のステップS503に進む。
ステップS503では、メイン制御基板50は、CPU固有ID4バイト目の送信を完了したか否かの判断処理を実行する。そして、CPU固有ID4バイト目の送信を完了したと判断すると、本フローチャートによる処理を終了する。これに対し、CPU固有ID4バイト目の送信を完了していないと判断したときは、ステップS502に戻り、払出制御基板100は、再度、CPU固有ID1バイト目~4バイト目を払出制御基板100に順次送信する処理を実行する。
【0243】
次に、図22中の右側に示す管理装置200における電源投入処理について説明する。
ステップS601において、管理装置200は、初期化処理を実行する。そして、初期化処理が終了すると、次のステップS602に進む。
ステップS602では、管理装置200は、コマンド受信処理を実行する。この処理は、払出制御基板100から送信されるCPU固有ID1バイト目~4バイト目を受信する処理である。そして、CPU固有ID1バイト目~4バイト目を受信すると、次のステップS603に進み、管理装置200は、受信したコマンドがCPU固有IDであるか否かの判断処理を実行する。
【0244】
ここで、ステップS603において、受信したコマンドがCPU固有IDであると判断したときは、次のステップS604に進み、管理装置200は、受信したCPU固有ID1バイト目~4バイト目を所定の記憶領域に記憶(保存)する処理を実行する。そして、次のステップS605に進む。
これに対し、ステップS603において、受信したコマンドがCPU固有IDでないと判断すると、本フローチャートによる処理を終了する。
【0245】
ステップS605に進むと、管理装置200は、CPU固有ID4バイト目の受信を完了したか否かの判断処理を実行する。
そして、ステップS605において、CPU固有ID4バイト目の受信を完了したと判断したときは、次のステップS606に進み、管理装置200は、CPU固有ID1バイト目~4バイト目をホールコンピュータ300に送信する処理を実行する。そして、本フローチャートによる処理を終了する。
これに対し、ステップS605において、CPU固有ID4バイト目の受信を完了していないと判断したときは、ステップS606をスキップして、本フローチャートによる処理を終了する。
【0246】
図23は、払出制御基板100及び管理装置200における貸出処理の流れを示すフローチャートである。
図23中、左側のフローチャートは、払出制御基板100における貸出処理2の流れを示し、右側のフローチャートは、管理装置200における貸出処理の流れを示す。また、図23中、左右のフローチャートの間の矢印は、貸出処理時に払出制御基板100と管理装置200との間で送受信されるコマンドの送信方向を示す。
【0247】
ここで、図11に示す払出制御基板100における貸出処理1、及び図23中の左側に示す払出制御基板100における貸出処理2は、いずれも、図8のステップS119における貸出処理のサブルーチンを示しており、一部の処理が重複している。そして、同一の内容の処理には、同一のステップ番号を付している。
ただし、図11に示す払出制御基板100における貸出処理1では、貸出処理時の処理を詳細に図示している。
これに対し、図23中の左側に示す払出制御基板100における貸出処理2では、払出制御基板100と管理装置200との間におけるコマンドの送受信を説明するために必要な処理を抽出して図示し、それ以外の処理の図示を省略している。
【0248】
まず、図23中の右側に示す管理装置200における貸出処理について説明する。
ステップS611において、貸出スイッチ202の操作(オン)が検知されると、次のステップS612に進み、管理装置200は、貸出可LEDを消灯させる処理、貸出スイッチ202の操作を無効(受付け不可)にする処理、及び返却スイッチ203の操作を無効(受付け不可)にする処理を実行する。そして、次のステップS613に進む。
なお、貸出可LEDは、電子メダルの貸出しが可能であるか否かを示すLEDであって、点灯時には電子メダルの貸出しが可能であることを示し、消灯時には電子メダルの貸出しが不可であることを示すものである。
【0249】
ステップS613に進むと、管理装置200は、貸出要求コマンドを払出制御基板100に送信する。そして、次のステップS614に進む。
ステップS614では、管理装置200は、応答待機処理を実行する。この処理は、払出制御基板100から貸出復唱コマンドが送信されること(貸出要求コマンドのACK応答)を待つ処理である。
【0250】
そして、貸出復唱コマンドを受信する(送信した貸出要求コマンドがそのまま払出制御基板100から送り返される)と、管理装置200は、払出制御基板100による貸出要求コマンドのACK応答があったと判断し、次のステップS615に進む。
また、払出制御基板100からエラーコマンドが送信される(NAK応答がある)と、ステップS617に進む。
さらにまた、ステップS613で貸出要求コマンドを送信してから所定時間が経過しても貸出復唱コマンドを受信しない(タイムアウトとなる)と、ステップS618に進み、管理装置200は、エラー処理を実行する。
【0251】
ステップS615に進むと、管理装置200は、貸出指示コマンドを払出制御基板100に送信する。そして、次のステップ616に進む。
ステップS616では、管理装置200は、貸出し枚数を減算する処理を実行する。そして、次のステップS617に進む。
ステップS617に進むと、管理装置200は、貸出可LEDを点灯させる処理、貸出スイッチ202の操作を有効(受付け可能)にする処理、及び返却スイッチ203の操作を有効(受付け可能)にする処理を実行する。そして、本フローチャートによる処理を終了する。
【0252】
次に、図23中の左側に示す払出制御基板100における貸出処理2について説明する。
ステップS511において、払出制御基板100は、コマンド受信処理を実行する。この処理は、管理装置200から送信される貸出要求コマンドを受信する処理である。そして、貸出要求コマンドを受信すると、ステップS118に進む。
【0253】
ステップS118に進むと、払出制御基板100は、受信したコマンドが貸出要求コマンドであるか否かの判断処理を実行する。なお、図23中のステップS118と、図8中のステップS118とは、同一の内容の処理である。
ここで、受信したコマンドが貸出要求コマンドであると判断したときは、ステップS513に進み、払出制御基板100は、受信した貸出要求コマンドをRWM103の所定の記憶領域に記憶(保存)する処理を実行する。そして、次のステップS514に進む。
これに対し、受信したコマンドが貸出要求コマンドでないと判断したときは、本フローチャートによる処理を終了する。
【0254】
ステップS514に進むと、払出制御基板100は、貸出し要求を受付け可能であるか否か、具体的には、クレジット数に貸出し枚数(貸出要求コマンドの後続コマンドが示す数)を加算することによりクレジット数の上限値を超えるか否かの判断処理を実行する。
ここで、ステップS514において、貸出し要求を受付け可能であると判断したとき、すなわち、クレジット数に貸出し枚数を加算してもクレジット数の上限値以下であると判断したときは、ステップS161に進み、払出制御基板100は、貸出復唱コマンドを管理装置200に送信する(受信した貸出要求コマンドをそのまま管理装置200に送り返す)処理を実行する(貸出要求コマンドのACK応答)。そして、ステップS164に進む。
【0255】
これに対し、ステップS514において、貸出し要求を受付け不可であると判断したとき、すなわち、クレジット数に貸出し枚数を加算するとクレジット数の上限値を超えると判断したときは、ステップS515に進み、払出制御基板100は、エラーコマンドを管理装置200に送信する(NAK応答)。そして、ステップS169に進み、払出制御基板100は、エラーフラグをセットする処理を実行する。そして、本フローチャートによる処理を終了する。
【0256】
ステップS164に進むと、払出制御基板100は、貸出指示コマンドを受信したか否かの判断処理を実行する。
ここで、ステップS164において、貸出指示コマンドを受信したと判断したときは、ステップS167に進み、払出制御基板100は、クレジット数に貸出し枚数を加算する処理を実行する。そして、本フローチャートによる処理を終了する。
【0257】
これに対し、ステップS164において、貸出指示コマンドを受信していないと判断したときは、ステップS169に進み、払出制御基板100は、エラーフラグをセットする処理を実行する。そして、本フローチャートによる処理を終了する。
なお、図23中のステップS161、S164、S167及びS169と、図11中のステップS161、S164、S167及びS169とは、それぞれ同一の内容の処理である。
【0258】
図24及び図25は、払出制御基板100及び管理装置200における計数処理の流れを示すフローチャートである。図25は、図24に続くフローチャートである。
図24及び図25中、左側のフローチャートは、払出制御基板100における計数処理の流れを示し、右側のフローチャートは、管理装置200における計数処理の流れを示す。また、図24及び図25中、左右のフローチャートの間の矢印は、計数処理時に払出制御基板100と管理装置200との間で送受信されるコマンドの送信方向を示す。
【0259】
ここで、図12に示す払出制御基板100における計数処理1、並びに図24及び図25中の左側に示す払出制御基板100における計数処理2は、いずれも、図8のステップS117における計数処理のサブルーチンを示しており、一部の処理が重複している。そして、同一の内容の処理には、同一のステップ番号を付している。
ただし、図12に示す払出制御基板100における計数処理1では、計数処理時の処理を詳細に図示している。
これに対し、図24及び図25中の左側に示す払出制御基板100における計数処理2では、払出制御基板100と管理装置200との間におけるコマンドの送受信を説明するために必要な処理を抽出して図示し、それ以外の処理の図示を省略している。
【0260】
まず、図24及び図25中の左側に示す払出制御基板100における計数処理について説明する。
ステップS181において、払出制御基板100は、下位計数要求コマンドを管理装置200に送信する。そして、ステップS533に進む。
ステップS533では、払出制御基板100は、応答待機処理を実行する。この処理は、管理装置200から下位計数復唱コマンドが送信されること(下位計数要求コマンドのACK応答)を待つ処理である。
【0261】
そして、下位計数復唱コマンドを受信する(送信した下位計数要求コマンドがそのまま管理装置200から送り返される)と、払出制御基板100は、管理装置200による下位計数要求コマンドのACK応答があったと判断し、ステップS185に進む。
また、管理装置200からエラーコマンドが送信される(NAK応答がある)と、本フローチャートによる処理を終了する。
さらにまた、ステップS181で下位計数要求コマンドを送信してから所定時間が経過しても下位計数復唱コマンドを受信しない(タイムアウトとなる)と、ステップS194に進み、払出制御基板100は、エラーフラグをセットする処理を実行する。そして、本フローチャートによる処理を終了する。
【0262】
ステップS185に進むと、払出制御基板100は、上位計数要求コマンドを管理装置200に送信する。そして、図25のステップS535に進む。
ステップS535では、払出制御基板100は、応答待機処理を実行する。この処理は、管理装置200から上位計数復唱コマンドが送信されること(上位計数要求コマンドのACK応答)を待つ処理である。
【0263】
そして、上位計数復唱コマンドを受信する(送信した上位計数要求コマンドがそのまま管理装置200から送り返される)と、払出制御基板100は、管理装置200による上位計数要求コマンドのACK応答があったと判断し、ステップS189に進む。
これに対し、管理装置200からエラーコマンドが送信される(NAK応答がある)か、又は図24のステップS185で上位計数要求コマンドを送信してから所定時間が経過しても上位計数復唱コマンドを受信しない(タイムアウトとなる)と、ステップS194に進み、払出制御基板100は、エラーフラグをセットする処理を実行する。そして、本フローチャートによる処理を終了する。
なお、図24のステップS538のエラー処理と、図25のステップS538のエラー処理とは、同一の処理である。
【0264】
ステップS189に進むと、払出制御基板100は、計数指示コマンドを管理装置200に送信し、ステップS191に進む。
ステップS191では、クレジット数をクリアする(「0」にする)処理を実行する。そして、本フローチャートによる処理を終了する。
なお、図24及び図25中のステップS181、S185、S189、S191及びS194と、図12中のステップS181、S185、S189、S191及びS194とは、それぞれ同一の内容の処理である。
【0265】
次に、図24及び図25中の右側に示す管理装置200における計数処理について説明する。
ステップS631において、管理装置200は、コマンド受信処理を実行する。この処理は、払出制御基板100から送信される下位計数要求コマンドを受信する処理である。そして、下位計数要求コマンドを受信すると、次のステップS632に進む。
【0266】
ステップS632に進むと、管理装置200は、受信したコマンドが下位計数要求コマンドであるか否かの判断処理を実行する。
ここで、ステップS632において、受信したコマンドが下位計数要求コマンドであると判断したときは、次のステップS633に進み、管理装置200は、受信した下位計数要求コマンドを所定の記憶領域に記憶(保存)する処理を実行する。そして、次のステップS634に進む。
これに対し、ステップS632において、受信したコマンドが下位計数要求コマンドでないと判断したときは、本フローチャートによる処理を終了する。
【0267】
ステップS634に進むと、管理装置200は、計数(払戻し)要求を受付け可能であるか否かの判断処理を実行する。
ここで、ステップS634において、計数(払戻し)要求を受付け可能であると判断したときは、ステップS636に進み、管理装置200は、貸出可LEDを消灯させる処理、貸出スイッチ202の操作を無効(受付け不可)にする処理、及び返却スイッチ203の操作を無効(受付け不可)にする処理を実行する。そして、次のステップS637に進む。
これに対し、ステップS634において、計数(払戻し)要求を受付け不可であると判断したときは、ステップS635に進み、管理装置200は、エラーコマンドを払出制御基板100に送信する(NAK応答)。そして、本フローチャートによる処理を終了する。
【0268】
ステップS637に進むと、管理装置200は、下位計数復唱コマンドを払出制御基板100に送信する(受信した下位計数要求コマンドをそのまま払出制御基板100に送り返す)処理を実行する(下位計数要求コマンドのACK応答)。そして、次のステップS638に進む。
ステップS638では、管理装置200は、コマンド受信処理を実行する。この処理は、払出制御基板100から送信される上位計数要求コマンドを受信する処理である。そして、上位計数要求コマンドを受信すると、図25のステップS639に進む。
【0269】
ステップS639に進むと、管理装置200は、受信したコマンドが上位計数要求コマンドであるか否かの判断処理を実行する。
ここで、ステップS639において、受信したコマンドが上位計数要求コマンドであると判断したときは、ステップS641に進み、管理装置200は、受信した上位計数要求コマンドを所定の記憶領域に記憶(保存)する処理を実行する。そして、ステップS642に進む。
これに対し、ステップS639において、受信したコマンドが上位計数要求コマンドでないと判断したときは、ステップS640に進み、管理装置200は、エラーコマンドを払出制御基板100に送信する(NAK応答)。そして、ステップS647に進み、管理装置200は、エラー処理を実行する。
【0270】
ステップS642に進むと、管理装置200は、上位計数復唱コマンドを払出制御基板100に送信する(受信した上位計数要求コマンドをそのまま払出制御基板100に送り返す)処理を実行する(ACK応答)。そして、次のステップS643に進む。
ステップS643では、管理装置200は、コマンド受信処理を実行する。この処理は、払出制御基板100から送信される計数指示コマンドを受信する処理である。そして、計数指示コマンドを受信すると、次のステップS644に進む。
【0271】
ステップS644に進むと、管理装置200は、受信したコマンドが計数指示コマンドであるか否かの判断処理を実行する。
ここで、受信したコマンドが計数指示コマンドであると判断したときは、次のステップS645に進み、管理装置200は、下位計数要求コマンド及び上位計数要求コマンドから特定される払戻し枚数を、管理装置200側で管理する電子メダルの枚数に反映させる処理を実行する。そして、次のステップS646に進む。
これに対し、受信したコマンドが計数指示コマンドでないと判断したときは、ステップS647に進み、管理装置200は、エラー処理を実行する。
【0272】
ステップS646に進むと、管理装置200は、貸出可LEDを点灯させる処理、貸出スイッチ202の操作を有効(受付け可能)にする処理、及び返却スイッチ203の操作を有効(受付け可能)にする処理を実行する。そして、本フローチャートによる処理を終了する。
【0273】
図26は、払出制御基板100と管理装置200との間におけるシリアル通信のデータ信号及びストローブ信号の波形を示す図である。
図23図25では、払出制御基板100と管理装置200との間で送受信されるコマンドとして、貸出要求コマンド、下位計数要求コマンド、上位計数要求コマンド等を示したが、これらのコマンドは、上述したように、先行コマンド(上位8ビット)及び後続コマンド(下位8ビット)から構成されている。
【0274】
そして、図26では、これらのコマンドを構成する先行コマンドや後続コマンドを1つの単位とし、そのデータ信号及びストローブ信号の波形を示している。
図26に示すように、払出制御基板100と管理装置200との間では、データ信号をD0ビット(DB0)からD7ビット(DB7)まで1ビットずつ送信するとともに、これらをストローブ信号がオンのタイミングで1ビットずつ読み取らせるようにしている。
【0275】
図27は、電子メダル貸出し時における各信号のオン/オフを示すタイミングチャートである。
図23では、電子メダル貸出し時に払出制御基板100と管理装置200との間で送受信されるコマンドを示したが、図27は、電子メダル貸出し時における払出制御基板100及び管理装置200の各信号のオン/オフのタイミングを示している。
【0276】
図27に示すように、スロットマシン10及び管理装置200の電源がオンになると、その後、管理装置200の返却スイッチ203の操作が受付け可能になる。
その後、スロットマシン10の払出制御基板100及び管理装置200のデータ信号が「0」になり、スロットマシン10の払出制御基板100及び管理装置200のストローブ信号がオフになる。
その後、管理装置200の貸出スイッチ202の操作が受付け可能になり、動作状態が待機状態から通常状態となる。なお、通常状態は、管理装置200による電子メダルの貸出しが可能であり、スロットマシン10での遊技の進行が可能な状態を意味する。
【0277】
そして、管理装置200の貸出スイッチ202の操作(オン)が検知されると、まず、管理装置200の貸出スイッチ202及び返却スイッチ203の操作が受付け不可になり、その後、管理装置200からスロットマシン10の払出制御基板100に貸出要求コマンドの先行コマンド及び後続コマンドが順次送信される。
その後、スロットマシン10の払出制御基板100から管理装置200に貸出復唱コマンドの先行コマンド及び後続コマンドが順次送信される。
その後、管理装置200からスロットマシン10の払出制御基板100に貸出指示コマンドの先行コマンド及び後続コマンドが順次送信される。
そして、貸出指示コマンドの送信が完了すると、管理装置200の貸出スイッチ202及び返却スイッチ203の操作が受付け可能になる。
【0278】
図28は、電子メダル計数(払戻し)時における各信号のオン/オフを示すタイミングチャートである。
図24及び図25では、電子メダル計数時に払出制御基板100と管理装置200との間で送受信されるコマンドを示したが、図28は、電子メダル計数時における払出制御基板100及び管理装置200の各信号のオン/オフのタイミングを示している。
【0279】
図28に示すように、スロットマシン10及び管理装置200の電源がオンになると、その後、管理装置200の返却スイッチ203の操作が受付け可能になる。
その後、スロットマシン10の払出制御基板100及び管理装置200のデータ信号が「0」になり、スロットマシン10の払出制御基板100及び管理装置200のストローブ信号がオフになる。
その後、管理装置200の貸出スイッチ202の操作が受付け可能になり、動作状態が待機状態から通常状態となる。ここまでは、図27と同様である。
【0280】
そして、スロットマシン10の計数スイッチ47の操作(オン)が検知されると、まず、管理装置200の貸出スイッチ202及び返却スイッチ203の操作が受付け不可になり、その後、スロットマシン10の払出制御基板100から管理装置200に下位計数要求コマンドの先行コマンド及び後続コマンドが順次送信される。
その後、管理装置200からスロットマシン10の払出制御基板100に下位計数復唱コマンドの先行コマンド及び後続コマンドが順次送信される。
【0281】
その後、スロットマシン10の払出制御基板100から管理装置200に上位計数要求コマンドの先行コマンド及び後続コマンドが順次送信される。
その後、管理装置200からスロットマシン10の払出制御基板100に上位計数復唱コマンドの先行コマンド及び後続コマンドが順次送信される。
その後、スロットマシン10の払出制御基板100から管理装置200に計数指示コマンドの先行コマンド及び後続コマンドが順次送信される。
そして、計数指示コマンドの送信が完了すると、管理装置200の貸出スイッチ202及び返却スイッチ203の操作が受付け可能になる。
【0282】
以上、本発明の第1実施形態について説明したが、本発明は、上述した内容に限定されるものではなく、たとえば以下のような種々の変形が可能である。
(1)本実施形態では、図4図7に示す各種コマンドは、先行コマンド(上位8ビット)及び後続コマンド(下位8ビット)からなる16ビットのデータで構成されるとしたが、これに限らず、たとえば、8ビットとしてもよく、32ビットとしてもよい。
【0283】
(2)本実施形態では、メイン制御基板50と払出制御基板100との間、及び払出制御基板100と管理装置200との間では、シリアル通信でコマンドの送受信を行うとしたが、これに限らず、パラレル通信としてもよく、シリアル通信とパラレル通信とを併用してもよい。
(3)本実施形態では、メイン制御基板50は、3ベットスイッチ40bのオン時に、払出制御基板100に対し、1枚投入要求コマンドを3回送信する例を示したが、これに限らず、3枚投入要求コマンドを1回送信してもよい。
【0284】
(4)本実施形態では、メイン制御基板50は、第3ストップスイッチ42がオンからオフになった時に、払出制御基板100に対し、払出要求コマンドを送信したが、これに限らず、全リール31停止時に、払出要求コマンドを送信してもよい。
(5)本実施形態では、メイン制御基板50は、役の非入賞時にも、第3ストップスイッチ42がオンからオフになった時に、払出制御基板100に対し、払出し枚数が「0」である払出要求コマンドを送信したが、これに限らず、役の非入賞時には、払出要求コマンドを送信しなくてもよい。
【0285】
(6)本実施形態では、遊技機の1つとしてスロットマシン10を例に挙げたが、スロットマシン10は、風営法の適用を受ける第4号営業店に設置される「回胴式遊技機」(いわゆる「パチスロ遊技機」)に限られるものではなく、たとえばカジノマシンにも適用することができる。また、本発明をぱちんこ遊技機に適用してもよい。
(7)本明細書に記載のすべての実施形態及び各種の変形例は、単独で実施されることに限らず、適宜組み合わせて実施することが可能である。
【0286】
<第2実施形態>
第2実施形態の遊技機10は、第1実施形態と同様に、有体物としてのメダルを用いないメダルレス遊技機である。
ここで、「メダルレス遊技機」の称呼における「メダルレス」とは、有体物としてのメダルを用いないことを意味する。
このため、「メダルレス遊技機」であっても、遊技の用に供する遊技媒体(遊技価値)を用いることは従来の遊技機と同様であり、メダルレス遊技機における遊技の用に供する遊技媒体についても単に「メダル」と称する場合がある。
したがって、「メダル」と称するときは、有体物としてのメダルだけに限らず、無体物としてのメダル(たとえば、電子データ)を指す場合もある。
また、無体物としてのメダルは、遊技媒体、遊技価値、得点(又は単に「点」)、電子メダル、電子データ、電子情報、電子遊技媒体、電子遊技価値等と称する場合がある。以下の第2実施形態の説明では、遊技機10(メダルレス遊技機)に用いられる無体物としての「メダル」を「遊技媒体」と称する。
【0287】
「貸出し」とは、遊技に必要な遊技媒体を、貸出ユニット200から遊技機10に送信することをいう。
「クレジット」とは、遊技機10に遊技媒体を記憶(貯留、クレジット)することをいう。「クレジットされている遊技媒体」とは、遊技媒体数制御基板100のRWM103に記憶されているデータに相当する。
「ベット」とは、遊技を行うために遊技媒体を賭けることをいう。ベットスイッチ40(1ベットスイッチ40a又は3ベットスイッチ40b)を操作すると、遊技媒体数制御基板100のRWM103に記憶されているデータに相当する遊技媒体から、所定数の遊技媒体がベットされる。
「ベット」は、「投入」とも称される。なお、「投入」とは、実際のメダルをメダル投入口から遊技機内に入れることのみを指すのではなく、ベットスイッチ40の操作により、遊技媒体(電子メダル)をベットすることも含まれる。
【0288】
「精算」とは、ベットされている遊技媒体を遊技媒体数制御基板100のRWM103に(クレジットに)戻すことをいい、精算スイッチ46を操作することにより行う。「精算」は、「返却」や「キャンセル」と称される場合がある。したがって、「精算スイッチ46」を「返却スイッチ46」や「キャンセルスイッチ46」と称する場合がある。
遊技媒体が遊技媒体数制御基板100のRWM103内にデータとして記憶(クレジット)されている状況下で、ベットスイッチ40が操作されると、所定数の遊技媒体がベットされ(ベット数として加算され)、ベットされた数だけ遊技媒体数制御基板100のRWM103のデータ(クレジット数)が減算される。一方、遊技媒体がベットされている状況下において精算スイッチ46が操作されると、それまでのベット数(遊技媒体数)が「0」になり、かつ、それまでのベット数が遊技媒体数制御基板100のRWM103に加算される(クレジットに戻される)。
【0289】
「付与」とは、役の入賞に基づき、入賞役の配当に対応する数の遊技媒体を遊技機10に記憶されているクレジット数に加算するこという。
「付与」は、「払出し」とも称する。なお、「払出し」とは、実際のメダルをメダル返却口から排出することのみを指すのではなく、小役の入賞時に、遊技媒体数制御基板100のRWM103に記憶された遊技媒体数に、当該小役の入賞に対応する数の遊技媒体数を加算する処理も、「払出し(処理)」に含まれる。
第2実施形態では、第1実施形態における「払出し手段67」を、「付与数制御手段67」と称する。
「計数」とは、遊技機10(遊技媒体数制御基板100のRWM103)に記憶されている(クレジットされている)遊技媒体を、貸出ユニット200に戻すことをいい、計数スイッチ47の操作によって行われる。計数スイッチ47が操作されると、遊技機10に記憶された所定数の遊技媒体が減算されるとともに、減算された分の遊技媒体が貸出ユニット300側に加算される。
【0290】
貸出ユニット200からの遊技媒体の「返却」とは、貸出ユニット200に記憶されている遊技媒体数を、遊技媒体数記憶媒体(磁気カード、ICカード、ICコイン等)に記憶して、外部(遊技者)に排出することをいう。貸出ユニット200に記憶されている遊技媒体数を遊技媒体数記憶媒体に記憶する場合には、リーダライタが用いられる(貸出ユニット200には、リーダライタが内蔵されている)。
なお、上述したように、「精算」を「返却」と称する場合があると説明したが、第2実施形態において「返却」というときは、貸出ユニット200に記憶されている遊技媒体数を、遊技媒体数記憶媒体に記憶して、外部(遊技者)に排出することをいうものとする。
【0291】
第2実施形態で用いられる設定値表示手段73や役比モニタ113等のLEDは、各桁が7セグメントから構成されている。そして、「7セグメント」とは、7つのセグメント素子に加え、DP(デシマルポイント)セグメントを有するものである。
【0292】
「通知」とは、遊技機10から貸出ユニット200に対して、又は貸出ユニット200から遊技機10に対して電文を送信(出力)することに相当し、「送信」、「出力」と同義である。
以下では、たとえば遊技機情報通知を「送信する」と称する場合もあり、あるいは、たとえば遊技機情報を「通知する」と称する場合もある。
【0293】
RWMやROMの記憶域の少なくとも一部を、「記憶領域」と称する場合と「記憶手段」と称する場合とがあり、両者は、同義である。
また、(主、副等の)制御基板を「制御手段」と称する場合もある。さらに、CPUを「制御手段」と称する場合もある。
【0294】
図29は、第2実施形態における遊技機10(スロットマシン)のブロック図を示す図である。なお、第1実施形態では「スロットマシン10」と称したが、第2実施形態では「遊技機10」と称する。
また、第1実施形態では「メイン制御基板50」と称したが、第2実施形態では「主制御基板50」と称する。同様に、第1実施形態では「サブ制御基板80」と称したが、第2実施形態では「副制御基板80」と称する。ただし、主制御基板をメイン制御基板と称してもよく、副制御基板をサブ制御基板と称してもよい(いずれも同じ意味である)。
また、第1実施形態では「払出制御基板100」と称したが、第2実施形態では「遊技媒体数制御基板100」と称する。ただし、遊技媒体数制御基板を払出制御基板と称してもよく、両者は同じ意味である。
【0295】
さらにまた、第1実施形態では「クレジット数表示LED76」と称したが、第2実施形態では「遊技媒体数表示部121」と称する。両者は同じ機能を有し、たとえば5桁のLEDから構成されている。
さらに、第1実施形態では「獲得数表示LED78」と称したが、第2実施形態では「付与数表示部78」と称する。両者は同じ機能を有し、たとえば2桁のLEDから構成されている。
【0296】
主制御基板50を主制御基板の1つと見たとき、遊技媒体数制御基板100は、主制御基板の他の1つである。このため、主制御基板50のRWM53、ROM54、CPU55は、それぞれ第1主制御RWM53、第1主制御ROM54、第1主制御CPU55と称される場合がある。
また、遊技媒体数制御基板100のRWM103、ROM104、CPU105は、それぞれ第2主制御RWM103、第2主制御ROM14、第2主制御CPU105と称される場合がある。
【0297】
さらにまた、第1実施形態では「管理装置(CRユニット)200」と称したが、第2実施形態では「貸出ユニット200」と称する。両者は同じ機能を有する。また、貸出ユニット200は「専用ユニット200」と称される場合もある。
1つの遊技機10に対して1つの貸出ユニット200が設けられている。換言すれば、1つの貸出ユニット200は、1つの遊技機10専用の装置である。
これに対し、貸出ユニット200と電気的に接続されているホールコンピュータ300は、貸出ユニット200ごとに設けられていてもよく、あるいは複数の貸出ユニット200あたり1つのホールコンピュータ300が設けられていてもよい。
同様に、貸出ユニット200と電気的に接続されている管理コンピュータ400は、貸出ユニット200ごとに設けられていてもよく(貸出ユニット200と管理コンピュータ400とが一対一接続であってもよく)、あるいは複数の貸出ユニット200あたり1つの管理コンピュータ400が設けられていてもよい。
【0298】
ホールコンピュータ300は、ホール営業のためのデータ収集用のコンピュータである。たとえば当日の遊技回数、イン(投入)数、アウト(付与)数、MY(差数、差枚数)、役物作動回数、貸出数等を集計する。
管理コンピュータ400は、外部(ホール外のたとえば外部センタ)に情報を送信するためのコンピュータである。なお、管理コンピュータ400についても、ホールコンピュータ300と同様に、ホール内に設置されている。
図29では、ホールコンピュータ300と管理コンピュータ400とを別に設けているが、これらが1つになったコンピュータとしてもよい。
【0299】
主制御基板50において、RWM53の記憶領域の一部として、ベット数記憶手段53a及び付与数記憶手段53bが設けられている。
ベット数記憶手段53aは、現時点でのベット数を記憶するものである。
一方、主制御基板50には、ベット数表示部77が接続されている。ベット数表示部77は、ベット数記憶手段53aに記憶されているベット数を表示する装置であり、たとえば2桁のLEDから構成されている。
また、付与数記憶手段53bは、小役の入賞に基づき所定数の遊技媒体が付与されたときに、遊技媒体の付与数を記憶するものである。
一方、主制御基板50には、付与数表示部78が接続されている。付与数表示部78は、付与数記憶手段53bに記憶されている付与数を表示する装置であり、たとえば2桁のLEDから構成されている。
【0300】
さらにまた、第1実施形態(図1)では図示していないが、主制御基板50上には、設定値表示手段73が搭載されている。設定値表示手段73はたとえば1桁のLEDから構成され、設定変更状態や設定確認状態において、現設定値を表示可能とする。一方、後述する役比モニタ113は、主制御基板50ではなく遊技媒体数制御基板100上に搭載されている。ただし、これに限らず、主制御基板50上に役比モニタ113を搭載してもよい。
【0301】
遊技媒体数制御基板100は、第2主制御基板(手段)、払出制御基板(手段)、メダル数制御基板(手段)、メダル数表示制御基板(手段)、又は遊技媒体数表示制御基板(手段)等とも称される。遊技媒体数制御基板100は、主制御基板50と同様に、不正防止のためのセキュリティ性が求められるため、基板ケース内に収容され、カシメ(封印部材)により封印することによって、基板ケースの開放(遊技媒体数制御基板100内へのアクセス)が困難となるように構成されている。
【0302】
遊技媒体数制御基板100は、主制御基板50と同様に、独立したRWM103、ROM104、CPU105を備える。これらのRWM103、ROM104、CPU105は、1つのチップ内に内蔵されていてもよい。遊技媒体数制御基板100は、遊技媒体数表示部121の表示制御や、接続端子板130を介して貸出ユニット200に対して情報を送信したり、接続端子板130を介して貸出ユニット200から情報を受信可能となるように構成されている。また、主制御基板50に対して情報を送信したり、主制御基板50から情報を受信可能となるように構成されている。図29中、各基板間の矢印の向きが情報の送受信方向を示している。したがって、主制御基板50と遊技媒体数制御基板100とは双方向通信が可能に構成されている。
【0303】
なお、図29では、主制御基板50と遊技媒体数制御基板100とを別体から構成しているが、1つの主制御基板から構成することも可能である。ただし、この場合も、1基板上に、第1主制御RWM53、第1主制御ROM54、第1主制御CPU55、第2主制御RWM103、第2主制御ROM104、第2主制御CPU105が設けられることになる。
【0304】
遊技媒体数制御基板100のRWM103には、遊技媒体数(クレジット数)を記憶する遊技媒体数記憶手段103a(「遊技媒体数記憶領域(_NB_MEDAL )」とも称する。)を備える。小役の入賞により遊技媒体が付与されるときには、遊技媒体数記憶手段103aの遊技媒体数(データ)が更新(加算)される。
また、遊技を開始するために遊技媒体がベットされると、ベット数に対応する遊技媒体数だけ、遊技媒体数記憶手段103aの遊技媒体(データ)が更新(減算)される。
【0305】
また、遊技媒体数制御基板100には、遊技媒体数表示基板120が電気的に接続されている。この遊技媒体数表示基板120上には、遊技媒体数表示部121が搭載されている。遊技媒体数表示部121は、遊技媒体数記憶手段103aに記憶されている遊技媒体数を表示するものであり、たとえば5桁のLEDから構成される。
たとえば、遊技媒体数記憶手段103aに遊技媒体数として「100」が記憶されていると仮定する。この場合に、遊技媒体数表示部121には「100」と表示される。
【0306】
遊技を開始するために3ベットスイッチ40bが操作されると、そのベット操作信号が主制御基板50から遊技媒体数制御基板100に送信される。遊技媒体数制御基板100は、遊技媒体数記憶手段103aに記憶された遊技媒体数に基づいて、当該ベットが可能であるか否かを判断し、ベット可能であると判断したときは、主制御基板50に対してベット信号を送信する。主制御基板50は、当該ベット信号を受信すると、ベット処理を実行し、ベット数記憶手段53aにベット数を記憶する。ベット数記憶手段53aに記憶されたベット数が「0」から「3」に更新されると、ベット数表示部77の表示(下一桁)も「0」から「3」に更新される。
【0307】
また、遊技媒体数制御基板100は、上記のように主制御基板50に対してベット信号を送信すると、遊技媒体数記憶手段103aに記憶された遊技媒体数を更新する。この例では、遊技媒体数を「100」から「97」に更新する。遊技媒体数記憶手段103aに記憶された遊技媒体数が「100」から「97」に更新されると、遊技媒体数表示部121の表示も「100」から「97」に更新される。
【0308】
主制御基板50には、精算スイッチ46が接続されている。精算スイッチ46は、ベットされている遊技媒体を戻す(換言すれば、ベット数を「0」にする)ときに操作されるスイッチである。
ベット数記憶手段53aにベット数が記憶され、ベット数表示部77にベット数が表示されている状況下において、スタートスイッチ41を操作する前(遊技を開始する前)に精算スイッチ46が操作されたときは、ベット数を返却する(元に戻す)。
たとえば上記例のように、ベット数記憶手段53aに「3」が記憶され、かつ、遊技媒体数記憶手段103aに「97」が記憶されている状況下において、精算スイッチ46が操作されると、ベット数記憶手段53aに記憶されているベット数は「3」から「0」に更新される。これにより、ベット数表示部77の表示は「3」から「0」に更新される。
【0309】
また、精算スイッチ46が操作されたことに基づいて、精算信号(ベット数「3」を戻すことに相当する信号)が主制御基板50から遊技媒体数制御基板100に送信される。遊技媒体数制御基板100は、この精算信号を受信すると、遊技媒体数記憶手段103aに記憶されている遊技媒体数を「97」から「100」に更新する。これにより、遊技媒体数表示部121の表示は「97」から「100」に更新される。
【0310】
このように、精算スイッチ46は、ベットされた遊技媒体を元に戻す(ベット数を「0」にする)ときに使用される。したがって、精算スイッチ46が操作されても、遊技媒体数記憶手段103aに記憶されている遊技媒体数が減算されることはない。
また、ベット数記憶手段53aにベット数が記憶されていない状況において精算スイッチ46が操作されても、ベット数記憶手段53aに記憶されているベット数は「0」のままであり、かつ、遊技媒体数記憶手段103aに記憶されている遊技媒体数もそのままである。
このような精算処理を開始するために、精算スイッチ46が操作されているか否かを判断し、精算スイッチ46が操作されていない場合は精算処理を開始せず、精算スイッチ46が操作されている場合は、ベット数記憶手段53aに記憶されているベット数が「0」であるか否かを判断する。さらに、ベット数記憶手段53aに記憶されているベット数が「0」である場合は精算処理を開始せず、ベット数記憶手段53aに記憶されているベット数が「0」でない場合は精算処理を開始するように構成されている。
これにより、精算スイッチ46が操作されている状況とベット数記憶手段53aに記憶されているベット数が「0」である状況とを比較したときに、精算スイッチ46が操作されている状況の方が相対的に少ないため、精算スイッチ46が操作されているか否かを先に判断することで、処理負担を軽減することが可能となる。
【0311】
ベット数が「3」である状況下でスタートスイッチ41が操作されると、当該遊技でのベット数が確定するとともに、遊技が開始される(リール31の回転が開始する)。この場合、ベット数記憶手段53aに記憶されているベット数は、スタートスイッチ41の操作時(遊技の開始時)にクリアしてもよく、あるいは、全リール31の停止時にクリアしてもよい。ベット数記憶手段53aに記憶されているベット数がクリアされると、ベット数表示部77の表示も「0」に更新される。
【0312】
当該遊技において、たとえば付与数「8」の小役が入賞したときには、主制御基板50は、付与数記憶手段53bに「8」を記憶する。付与数記憶手段53bに記憶された値が「8」に更新されると、付与数表示部78の表示(下一桁)も「0」から「8」に更新される。
また、遊技媒体が付与されると、付与(払出し)信号が主制御基板50から遊技媒体数制御基板100に送信される。遊技媒体数制御基板100は、付与信号を受信したときは、付与信号に対応する遊技媒体数だけ、遊技媒体数記憶手段103aに記憶されている遊技媒体数に加算する。本例では、遊技媒体数記憶手段103aに記憶されている遊技媒体数は、「97」から「105」に更新される。遊技媒体数記憶手段103aに記憶されている遊技媒体数が「97」から「105」に更新されると、遊技媒体数表示部121の表示も「97」から「105」に更新される。
【0313】
また、付与数記憶手段53bに付与数が記憶された後は、次回遊技のスタートスイッチ41の操作時(遊技の開始時)や、次回遊技の全リール31の停止時等に、付与数記憶手段53bに記憶された付与数をクリアする。付与数記憶手段53bに記憶されている付与数がクリアされると、付与数表示部78の表示も「0」に更新される。
【0314】
なお、遊技媒体数表示部121に、発生したエラーに対応するエラー情報を表示するように構成されている。
この場合、遊技媒体数表示部121に表示されている遊技媒体数に替えてエラー情報を表示してもよいが、遊技媒体数とエラー情報とを交互に表示してもよい。たとえば、遊技媒体数を「3」秒表示→エラー情報を「3」秒表示→遊技媒体数を「3」秒表示→・・・のようにしてもよい。なお、遊技媒体数表示部121が5桁のLEDから構成される場合において、表示するエラー情報がたとえば「E1」であるときは、「000E1」、「---E1」、「E1000」、「E1---」等と表示することが挙げられる。
【0315】
ここで、遊技媒体数表示部121に、発生したエラーに対応するエラー情報を表示させない場合には、付与数表示部78に、発生したエラーに対応するエラー情報を表示してもよい。この場合、付与数表示部78には、付与した遊技媒体数の表示後に、エラー情報を表示するようにしてもよい。たとえば、上記のように、付与数が「8」である場合、付与数表示部78に、「00」→「01」→「02」→・・・「07」→「08」と表示(カウントアップ)した後、「E1」(エラーコードの一例)と表示する態様が挙げられる。
【0316】
計数スイッチ47は、遊技媒体数制御基板100と電気的に接続されている。図示しないが、計数スイッチ47は、たとえばベットスイッチ40等と同様に、遊技機10のコントロールパネル上等に設けられている。
計数スイッチ47が操作されると、遊技媒体数記憶手段103aに記憶されている遊技媒体(情報)を、接続端子板130を介して貸出ユニット200に送信可能に構成されている。たとえば、遊技媒体数記憶手段103aに遊技媒体数「200」が記憶されている状況下において、計数スイッチ47が操作されると、計数値として「200」という情報が接続端子板130に送信され、その後、貸出ユニット200に計数値として「200」という情報が送信され得るように構成されている。そして、計数スイッチ47が操作され、計数値を送信した後の遊技媒体数記憶手段103aには「0」が記憶されるように構成されている。
【0317】
また、計数スイッチ47が操作される前の遊技媒体数表示部121には「200」と表示されている状況下において、計数スイッチ47が操作され、貸出ユニット200に計数値として「200」という情報が送信されると、遊技媒体数表示部121の表示は「0」に更新される。
【0318】
遊技媒体数制御基板100には、総遊技媒体数クリアスイッチ112が設けられている。総遊技媒体数クリアスイッチ112が操作されると、遊技媒体数制御基板100の遊技媒体数記憶手段103aに記憶されている(総)遊技媒体数をクリア可能としている(「0」を記憶する)。遊技媒体数記憶手段103aに記憶されている遊技媒体数がクリアされると、遊技媒体数表示部121に表示されている遊技媒体数も「0」に更新される。
なお、総遊技媒体数クリアスイッチ112の操作によりクリアされる情報は、遊技媒体数記憶手段103aに記憶されている総遊技媒体数のみであり、他の情報はクリアされない。
【0319】
たとえば、ベット数記憶手段53aに記憶されているベット数が「3」であり、遊技媒体数記憶手段103aに記憶されている遊技媒体数が「1000」であるときに、総遊技媒体数クリアスイッチ112が操作されると、ベット数記憶手段53aに記憶されているベット数は「3」のままであるが、遊技媒体数記憶手段103aに記憶されている遊技媒体数は「0」となる。換言すると、総遊技媒体数クリアスイッチ112が操作されたことにより、ベット数記憶手段53aに記憶されているベット数はクリアされない。
同様に、貸出ユニット200の貸出可能遊技媒体数記憶手段206に、貸出可能遊技媒体数として「50」が記憶されており、かつ、遊技媒体数記憶手段103aに記憶されている遊技媒体数が「1000」であるときに、総遊技媒体数クリアスイッチ112が操作されると、貸出可能遊技媒体数記憶手段206に記憶されている貸出可能遊技媒体数は「50」のままであるが、遊技媒体数記憶手段103aに記憶されている遊技媒体数は「0」となる。換言すると、総遊技媒体数クリアスイッチ112が操作されたことにより、貸出可能遊技媒体数記憶手段206に記憶されている貸出可能遊技媒体数はクリアされない。
【0320】
総遊技媒体数クリアスイッチ112の操作方法は、1回押すことでもよいし、所定時間長押しすることでもよいし、押下されている状況下で電源を投入することでもよい。なお、総遊技媒体数クリアスイッチ112は、遊技者が操作できない位置、たとえば遊技媒体数制御基板100上や、遊技機10の筐体内部や、遊技機10のフロントドアの背面部等に配置されている。
総遊技媒体数クリアスイッチ112が操作されたことにより遊技媒体数がクリアされた場合は、総遊技媒体数クリアステータスをオンにし、1遊技が終了するまで総遊技媒体数クリアステータスのオンを維持し、当該1遊技の終了後に総遊技媒体数クリアステータスをオフにする。
総遊技媒体数クリアステータスの情報は、貸出ユニット200に送信してもよい。貸出ユニット200が総遊技媒体数クリアステータスがオンである情報を受信した場合は、貸出ユニット200で記憶している総遊技媒体数をクリアする。また、遊技機10において総遊技媒体数クリアステータスがオンの状況下で、貸出ユニット200から貸出遊技媒体が付与された場合、総遊技媒体数クリアステータスはオンのまま、新たに遊技媒体数記憶手段103aに、貸出遊技媒体数を加算する。
【0321】
また、総遊技媒体数クリアスイッチ112は、遊技中に操作されても無効であり、遊技待機中(遊技開始前や遊技終了後)に総遊技媒体数クリアスイッチ112が操作されることにより有効となる。この場合、遊技媒体数制御基板100は、主制御基板50から送信された遊技開始情報と遊技終了情報とに基づいて遊技中であるか否かを判定し、遊技中であるときの総遊技媒体数クリアスイッチ112の操作を無効にする。
【0322】
ただし、総遊技媒体数クリアスイッチ112は、遊技中の操作で有効となるようにしてもよい。この場合は、総遊技媒体数クリアステータスは、総遊技媒体数クリアスイッチ112が操作された遊技の次回遊技の終了に基づいてオンからオフにする。換言すると、総遊技媒体数クリアスイッチ112が操作された当該遊技の終了では総遊技媒体数クリアステータスのオンを維持し、その次回遊技が終了すると総遊技媒体数クリアステータスをオフにする。これにより総遊技媒体数クリアステータスが短時間だけオンとなるようなタイミング(遊技終了直前に総遊技媒体数クリアスイッチ112が操作されたタイミング)であっても次回遊技に総遊技媒体数クリアステータスのオンを維持できるので、総遊技媒体数をクリアするような不正を抑制できる。
【0323】
なお、総遊技媒体数クリアスイッチ112が操作された遊技の終了後に総遊技媒体数クリアステータスをオフにしてもよく、この場合は、総遊技媒体数クリアステータスを更新するプログラムを共通化することによる容量削減が可能となる。
【0324】
役比モニタ113は、所定の比率を表示するものであり、たとえば4桁のLED(7セグメント(DPセグメントあり))から構成されている。第2実施形態において、遊技媒体数制御基板100の割込み周期は「1」msに設定されている。なお、主制御基板50の割込み周期は「2.235」msである。
そして、4割込みが1周期となって、役比モニタ113の4桁のLEDをダイナミック点灯させる。具体的には、たとえばLED表示カウンタを設け、割込みごとに、
「00000001(B)」
「00000010(B)」
「00000100(B)」
「00001000(B)」
を循環するように構成する。
【0325】
そして、LED表示カウンタが「00000001(B)」のときは役比モニタ113の一の位のLEDを点灯可能(他のLEDは消灯)とし、LED表示カウンタが「00000010(B)」のときは役比モニタ113の十の位のLEDを点灯可能(他のLEDは消灯)とし、LED表示カウンタが「00000100(B)」のときは役比モニタ113の百の位のLEDを点灯可能(他のLEDは消灯)とし、LED表示カウンタが「00001000(B)」のときは役比モニタ113の千の位のLEDを点灯可能(他のLEDは消灯)とする。
【0326】
役比モニタ113を構成する4個のLEDのうち、左側(千及び百の位)の2個のLEDは、「識別セグ」と称するものであり、情報種別を表示する。また、右側(十及び一の位)の2個のLEDは、「比率セグ」と称するものであり、算出した比率を表示する。
そして、第2実施形態では、役比モニタ113には、比率として、以下の(1)~(6)の6項目の情報を所定時間ごとに繰り返し表示する。
(1)指示込役物比率(累計)(7P.)、又は有利区間比率(累計)(7U.)
(2)連続役物比率(6000遊技)(6y.)
(3)役物比率(6000遊技)(7y.)
(4)連続役物比率(累計)(6A.)
(5)役物比率(累計)(7A.)
(6)役物等状態比率(累計)(5H.)
【0327】
なお、識別セグ及び比率セグによりいずれかの比率を表示する場合には、識別セグの一の位のDPセグメントを点灯させ、識別セグと比率セグとの境目を明確にする。このときには、識別セグの十の位、比率セグの十の位及び一の位の各DPセグメントは点灯させない。
上記の表記中、たとえば「P.」とは、識別セグの一の位の7セグメントにより「P」を表示し、かつ、当該7セグメントのDPセグメントを点灯させることを意味する。
【0328】
たとえば、指示込役物比率(累計)を表示する場合において、その比率が「50」%であるときは、指示込役物比率(累計)を示す記号「7P.」を識別セグに表示し、「50」を比率セグに表示する。
ここで、「累計」とは、それまでにカウントし続けた数値の総和を指し、本実施形態では、少なくとも「175000」遊技回数以上になるまではカウントする。
なお、「175000」遊技回数以上となった後も、RWM103の所定アドレスの記憶領域に記憶可能な値(上限値)に到達するまで加算し続ける。
また、「6000遊技」とは、1セットを「400」遊技回数とし、その15セットを合計した遊技回数である。
【0329】
以下に、上記の6項目の比率について説明する。
(1)指示込役物比率(累計)
「指示込役物比率(累計)」とは、累計付与数(「付与数」とは、遊技媒体の付与数を指す。以下同じ。)を分母とし、役物(RB、CB、SB)の作動により付与された累計の役物作動時付与数と指示機能の作動により付与された累計の指示付与数の合算を分子とした比率である。
なお、上記の「合算」とは、第1に、役物作動時の付与数を記憶する記憶領域と、指示付与数を記憶する記憶領域とを別個に設けた場合には、双方の記憶領域に記憶された値の合計値に相当する。また第2に、役物作動時の付与数と指示機能の作動時の付与数との双方(以下、「指示込役物付与数」と称する。)を記憶する一記憶領域(指示込役物カウンタ)を設けた場合には、当該一記憶領域の値に相当する。
【0330】
たとえば、遊技回数が「175000」回以上であって、累計付与数が「200000」、累計の指示込役物付与数が「100000」の場合には、指示込役物比率は「50」と算出される。なお、「累計」とは、必ずしも全遊技の累計とは限らない。たとえば、累計の付与数が予め定められた上限値(たとえば「1677215」)に達した場合や、累計の遊技回数に今回遊技の遊技回数を加算した結果、上限値を超えてしまう場合には、それ以降の遊技では、累計の付与数、及び累計の役物作動時付与数と累計の指示付与数の合算が更新されないように構成されている。
【0331】
また、「指示機能の作動」とは、ストップスイッチ42の操作態様に応じて遊技結果に有利/不利が生じる役(当選番号)の抽選結果となった遊技において、有利な遊技結果を得るためのストップスイッチ42の操作態様を報知(指示)した遊技に相当する。たとえばいわゆる押し順ベル当選時に正解押し順を報知した遊技に相当する。
なお、役物を搭載していない遊技機10では、「指示込役物比率」は、指示機能の作動により付与された累計の指示付与数を総付与数で割った値となる。
【0332】
「指示機能を作動させた遊技での付与数」については、指示機能を作動させた遊技において、表示した押し順でストップスイッチ42が操作されたことに基づいて、たとえば付与数「15」の小役が入賞したときは、指示込役物付与数及び総付与数に「15」を加算する。
これに対し、指示機能を作動させた遊技において、表示した押し順と異なる押し順でストップスイッチ42が操作されたために、たとえば付与数「3」の小役が入賞したときは、指示込役物付与数及び総付与数に「3」を加算する。
また、指示機能を作動させた遊技において、表示した押し順と異なる押し順でストップスイッチ42が操作されたために、当選役を取りこぼしたとき(役の非入賞時)には、指示込役物付与数及び総付与数は、前回遊技と同じ値となる。
【0333】
なお、指示機能を作動させた遊技において、表示した押し順と異なる押し順でストップスイッチ42が操作されたために、当選役を取りこぼしたときは、指示込役物付与数及び総付与数に「0」を加算する処理を実行することにより、両付与数(カウンタ)の値が前回遊技と同じ値になるようにしてもよい。
【0334】
(2)有利区間比率(累計)
「有利区間比率(累計)」とは、累計の遊技回数を分母とし、累計の有利区間遊技回数を分子とした比率である。たとえば、累計の遊技回数が「20000」、累計の有利区間遊技回数が「18000」の場合には、有利区間比率は「90」と算出される。
なお、「累計」とは、必ずしも全遊技の累計とは限らない。たとえば、累計の遊技回数が予め定められた上限値(たとえば「65535」)に達した場合には、それ以降の遊技では、累計の遊技回数、及び有利区間遊技回数が更新されないように構成されている。
上記の「指示込役物比率(累計)」又は「有利区間比率(累計)」は、遊技機10の仕様に応じていずれか一方を表示する。具体的には、指示機能を搭載した遊技機では「指示込役物比率(累計)」を表示し、「有利区間比率(累計)」の表示は不要である。これに対し、指示機能非搭載の遊技機では「有利区間比率(累計)」を表示し、「指示込役物比率(累計)」は表示しない。
【0335】
(3)連続役物比率(6000遊技)、連続役物比率(累計)
「連続役物比率(6000遊技)」とは、遊技回数「6000」での付与数を分母とし、遊技回数「6000」中、連続役物(RB)作動時の付与数を分子とした比率である。
また、「連続役物比率(累計)」とは、累計の遊技回数における付与数を分母とし、累計の遊技回数において、連続役物(RB)作動時の付与数を分子とした比率である。たとえば、累計の遊技回数が所定回数(たとえば、17500回)以上であって、累計の遊技回数における付与数が「20000」、累計の連続役物作動時の付与数が「10000」の場合には、連続役物比率(累計)は「50」と算出される。
なお、「累計」とは、必ずしも全遊技の累計とは限らない。たとえば、累計の付与数が予め定められた上限値(たとえば「65535」)に達した場合や、累計の付与数に今回遊技の付与数を加算した結果、上限値を超えてしまう場合には、それ以降の遊技では、累計の付与数、及び累計の連続役物作動時の遊技媒体の付与数は更新されないように構成されている。
【0336】
(4)役物比率(6000遊技)、役物比率(累計)
「役物比率(6000遊技)」とは、遊技回数「6000」での付与数を分母とし、遊技回数「6000」中、役物(RB、CB、SB)作動時の付与数を分子とした比率である。
また、「役物比率(累計)」とは、累計の遊技回数における付与数を分母とし、累計の遊技回数において、役物(RB、CB、SB)作動時の付与数を分子とした比率である。たとえば、累計の遊技回数が所定回数(たとえば、17500回)以上であって、累計の付与数が「20000」、累計の役物作動時の付与数が「10000」の場合には、役物比率(累計)は「50」と算出される。
なお、「累計」とは、必ずしも全遊技の累計とは限らない。たとえば、累計の付与数が予め定められた上限値(たとえば「65535」)に達した場合や、累計の付与数に今回遊技の付与数を加算した結果、上限値を超えてしまう場合には、それ以降の遊技では、累計の付与数、及び、累計の役物作動時の遊技媒体の付与数は更新されないように構成されている。
【0337】
(5)役物等状態比率(累計)
「役物等状態比率(累計)」とは、累計の遊技回数を分母とし、役物(RB、CB、SB)が作動している遊技回数、又は連続役物(1BB、2BB)が作動している遊技回数を分子とした比率である。たとえば、累計の遊技回数が「20000」、累計の役物作動時又は連続役物作動時の遊技回数が「5000」の場合には、役物等状態比率(累計)は「25」と算出される。
なお、累計とは、必ずしも全遊技の累計とは限らない。たとえば、累計の遊技回数が予め定められた上限値(たとえば「175000」)に達した場合には、それ以降の遊技では、累計の遊技回数、並びに役物作動時及び連続役物作動時の遊技回数は更新されないように構成されている。
【0338】
また、上記6項目において、その項目に該当する機能を備えていない遊技機では、比率セグを「--」と点灯表示する。
たとえば、「RB(第1種特別役物)」を備えていない場合には、連続役物比率は存在しないので、「連続役物比率(6000遊技)」及び「連続役物比率(累計)」の表示時には、比率セグを「--」と点灯表示する。
【0339】
さらにまた、比率を計算した結果、小数点以下が存在する場合には小数点以下を切り捨てて表示する。たとえば比率を計算した結果、「49.99」であるときは、「49」と表示する。
さらに、比率を計算した結果、「100」であったときは「99」と表示する。
また、比率を計算した結果、「10」未満の場合には、十の位には「0」を表示する。具体的には、比率を計算した結果、「9」%であったときは、「09」と表示する。
【0340】
役比モニタ113の識別セグや比率セグを点滅表示する場合がある。
第1に、比率が閾値以上の場合には、比率セグを点滅表示する。
各比率の閾値(%)は、以下の通りである。
(1)指示込役物比率(累計)又は有利区間比率(累計):70
(2)連続役物比率(6000遊技):60
(3)役物比率(6000遊技):70
(4)連続役物比率(累計):60
(5)役物比率(累計):70
(6)役物等状態比率(累計):50
したがって、たとえば指示込役物比率(累計)が「69」であるときは指示込役物比率(累計)の表示時に比率セグの「69」は点灯表示されるが、「70」であるときは点滅表示される。
【0341】
また第2に、累計遊技数が基準遊技数に満たない場合には、識別セグを点滅表示する。
各比率の基準遊技数は、以下の通りである。
(1)指示込役物比率(累計)又は有利区間比率(累計):175000
(2)連続役物比率(6000遊技):6000
(3)役物比率(6000遊技):6000
(4)連続役物比率(累計):17500
(5)役物比率(累計):17500
(6)役物等状態比率(累計):175000
【0342】
したがって、たとえば累積遊技数が「6000」であるときは、連続役物比率(6000遊技)の表示時に識別セグ(6y.)は点灯表示される。これに対し、たとえば累積遊技数が「5999」であるときは、連続役物比率(6000遊技)の表示時に識別セグ(6y.)は点滅表示される。
また、累計遊技数が集計単位1セットあたりの遊技回数「400」に満たない場合には、比率セグには「00」を表示する。
【0343】
さらにまた、識別セグや比率セグを点滅表示する場合には、点灯時間「0.3」秒と消灯時間「0.3」秒からなる点滅1周期を「0.6」秒とし、許容差を±10%とすることが好ましい。
第2実施形態では、点滅表示における点灯と消灯との切替えを以下のように管理(制御)する。
まず、点滅切替え時間を管理するタイマ領域として、RWM103に「点滅切替え時間(_TM_CHG_FLS )」(2バイト)を備える。
【0344】
点滅切替え時間は、遊技機10の電源投入時に初期化され(「0」が記憶され)、1割込みごとに「1」ずつ加算される。上述したように、1割込み時間は「1」msである。さらに、点滅切替え時間は、「0」~「299」を循環するように構成されている。
また、点灯であるか消灯であるかを判断するためのフラグとして、RWM103に「点滅切替えフラグ(_FL_CHG_FLS )」(1バイト)を備える。
点滅切替えフラグは、電源投入時に初期化され(「0」が記憶され)、その後、「300」msごとに、「0」と「1」とが切り替わる。「0」の場合は点灯を指し、「1」の場合は「消灯」を指す。
【0345】
点滅切替え時間の更新では、現タイマ値から「299」を減算する処理を行う。具体的には、以下のようになる。
例1)初期値「0」であるときに更新処理を行うと、「0-299=298」となる。このとき、桁下がりが発生するために、キャリーフラグが「1」となる。
例2)点滅切替え時間が「298」のときに更新処理を行うと、「298-299=1」となる。このとき、桁下がりが発生するために、キャリーフラグが「1」となる。
例3)点滅切替え時間が「299」のときに更新処理を行うと、「299-299=0」となる。このとき、桁下がりが発生しないために、キャリーフラグは「0」となる。
【0346】
そして、点滅切替え時間を更新した結果、キャリーフラグが「1」であるときは点滅切替えフラグを更新せず、キャリーフラグが「0」であるときは点滅切替えフラグを更新する。これにより、「300」msごとに、点滅切替えフラグが切り替わる。具体的には、以下のようになる。
例1)点滅切替えフラグが「0」(点灯)であるとき、更新処理を行うと「1」(消灯)になる。
例2)点滅切替えフラグが「1」(消灯)であるとき、更新処理を行うと「0」(点灯)になる。
【0347】
さらにまた、役比モニタ113は、各LEDのセグメント素子が正常に作動するか否かを確認できるようにするために、テストパターンを表示する。
テストパターンは、電源を投入にした後、上記のキャリーフラグが「0」となった回数が「16」になるまで、すなわち「300ms×16回=4800ms」を経過するまで、「8.8.8.8.」(全LEDの全セグメント素子(セグメントDPを含む))を表示する。
なお、役比モニタ113の4桁の各LEDは、1割込みごと(1ms)ごとにダイナミック点灯されるので、厳密には4個のすべてのLEDが同時に点灯しているわけではない。
【0348】
テストパターンを「4800」ms間表示した後は、上述の(1)有利区間比率(累計)又は指示込役物比率(累計)~(6)役物等状態比率(累計)の表示に移行し、(1)~(6)は、それぞれ「4800」ms間表示し、それを繰り返す。
よって、
電源投入

(0)テストパターン表示(4800ms)

(1)指示込役物比率(累計)又は有利区間比率(累計)表示(4800ms)

(2)連続役物比率(6000遊技)表示(4800ms)

(3)役物比率(6000遊技)表示(4800ms)

(4)連続役物比率(累計)表示(4800ms)

(5)役物比率(累計)表示(4800ms)

(6)役物等状態比率(累計)表示(4800ms)

(1)指示込役物比率(累計)又は有利区間比率(累計)表示(4800ms)


となる。
なお、上記(1)~(6)の各比率についても、テストパターンと同様に、上記キャリーフラグが「0」となった回数が「16」になるまで(300ms×16回=4800ms)表示する。
【0349】
ここで、上述したように、識別セグや比率セグを点滅表示する場合には、「300」msの点灯と「300」msの消灯を繰り返す(1周期「600」ms)。
そして、点灯又は消灯時間をT1とし、テストパターン又は比率の表示時間をT2としたとき、
T2=T1×2×n(nは、自然数)
に設定すれば、点灯と消灯との切替えタイミングと、テストパターン表示又は比率表示の切替えタイミングとを一致させることができ、見栄えのよい表示を行うことができ、役比モニタ113を見る人に対して故障しているかもしれないと誤認させないようにすることができる。
上記において、「T1」を「300」msに設定したとき、「T2」は、「600」msの倍数となるが、各比率表示時間を「5000ms±10%」にするためには、「T2」を「4800」msとすればよい。
【0350】
たとえば、テストパターンを点滅表示後、有利区間比率を点滅表示する場合には、
テストパターン(300ms間点灯。累計300ms。)

テストパターン(300ms間消灯。累計600ms。)



テストパターン(300ms間点灯。累計4500ms。)

テストパターン(300ms間消灯。累計4800ms。テストパターン表示終了。)

有利区間比率(300ms間点灯)

有利区間比率(300ms間消灯)


となる。
【0351】
このようにすれば、何らかの情報の点灯表示を行うときは、「300」ms間、点灯状態を維持することができる。換言すれば、何らかの情報の点灯表示を開始した後、「300」msを経過する前に消灯してしまうことをなくすことができる。さらにいえば、何らかの情報の点灯表示を開始した後、当該情報がすぐに消えてしまうこと(故障しているかもしれないと誤認させること)をなくすことができる。
【0352】
説明を図29のブロック図に戻す。
副制御基板80は、第1実施形態(図1)のサブ制御基板80と同様であるので説明を省略する。ただし、副制御基板80のRWM83、ROM84、CPU85を、それぞれ副制御RWM83、副制御ROM84、副制御CPU85と称する場合がある。
副制御基板80に電気的に接続されている演出ランプ21、スピーカ22、画像表示装置23についても第1実施形態と同様である。
接続端子板(「遊技球等貸出装置接続端子板」とも称される。)130は、遊技機10と貸出ユニット200との間での双方向通信を行うための中継基板としての役割を有する。
【0353】
貸出ユニット200は、第1実施形態(図1)における管理装置200に相当する。第1実施形態と同様に、貸出スイッチ202、及び返却スイッチ203等が設けられている。
また、貸出可能遊技媒体数表示部204は、第1実施形態における度数表示部204に相当し、貸出ユニット200から遊技機10に対して貸し出すことが可能な遊技媒体数の最大値を表示するものであり、たとえば3桁のLEDから構成されている。
【0354】
さらにまた、貸出可能遊技媒体数記憶手段206は、貸出ユニット200から遊技機10に対して貸し出すことができる遊技媒体数の最大値を記憶しておくものであり、たとえば貸出ユニット200の内部に備えるRWMから構成されている。貸出可能遊技媒体数記憶手段206に記憶されている貸出可能遊技媒体数が貸出可能遊技媒体数表示部204に表示される。
【0355】
貸出可能遊技媒体数記憶手段206に貸出可能遊技媒体数「400」が記憶されている状況下において、貸出スイッチ202が操作され、1回の貸出スイッチ202の操作により遊技媒体数「50」を貸出ユニット200から遊技機10に貸し出す仕様の場合には、貸出通知が送信された後、遊技媒体数記憶手段103aに記憶されている遊技媒体数に「50」が加算される。一方、貸出可能遊技媒体数記憶手段206の貸出可能遊技媒体数は、「400」から「350」に更新される。
【0356】
また、返却スイッチ203が操作されると、貸出ユニット200の貸出可能遊技媒体数記憶手段206に記憶されている遊技媒体数を、遊技媒体数記憶媒体(磁気カード、ICカード、ICコイン等)に記憶し、当該遊技媒体数記憶媒体を貸出ユニット200から排出する。
なお、遊技媒体数制御基板100の遊技媒体数記憶手段103aに「0」を超える遊技媒体数が記憶されており、かつ、貸出ユニット200の貸出可能遊技媒体数記憶手段206には遊技媒体数が記憶されていない状況下では、返却スイッチ203を操作しても遊技媒体数記憶媒体は排出されない。換言すれば、遊技媒体数制御基板100の遊技媒体数記憶手段103aに遊技媒体数が記憶されている場合であっても、貸出ユニット200の貸出可能遊技媒体数記憶手段206に遊技媒体数が記憶されていなければ、返却スイッチ203を操作しても、遊技媒体数記憶媒体は排出されない。
【0357】
したがって、上記の場合には、計数スイッチ47を操作することにより、遊技媒体数記憶手段103aに記憶された遊技媒体数を貸出ユニット200に送信し、貸出可能遊技媒体数記憶手段206に遊技媒体数を記憶する。その後、返却スイッチ203を操作すれば、貸出可能遊技媒体数記憶手段206に記憶された遊技媒体数が遊技媒体数記憶媒体に記憶され、貸出ユニット200から排出される。貸出可能遊技媒体数記憶手段206に記憶された遊技媒体数が遊技媒体数記憶媒体に記憶されると、貸出可能遊技媒体数記憶手段206に記憶された貸出可能遊技媒体数は「0」に更新される。
【0358】
図30は、遊技機10と貸出ユニット200との間の通信に用いられる電文を説明する図である。
電文の種類としては、図30に示すように、
1.遊技機情報通知
2.計数通知
3.貸出通知
4.貸出受領結果応答
が設けられている。
これらの電文のうち、遊技機情報通知、計数通知、貸出受領結果応答は、遊技機10から貸出ユニット200に送信される電文である。
一方、貸出通知は、貸出ユニット200から遊技機10に送信される電文である。
【0359】
また、各電文は、下記の5つのデータから構成されている。
(1)電文長
(2)コマンド
(3)通番、計数通番、又は貸出通番
(4)データ部
(5)チェックサム
上記5つからなるデータ群を「電文」と称し、1回の送信によって送信される。すなわち、分割送信は行わない。
【0360】
(1)電文長
「電文長」とは、電文長、コマンド、通番(通番、計数通番、又は貸出通番)、データ部、チェックサムの5つからなるデータのデータ長の長さを示したものであり、1バイトデータで構成される。たとえば、電文長が1バイト、コマンドが1バイト、通番が1バイト、データ部が14バイト、チェックサムが1バイトの場合、電文は18バイトとなり、電文長は18バイトに対応したデータ(12h)となる。
【0361】
(2)コマンド
「コマンド」とは、遊技機情報通知、計数通知、貸出通知、貸出受領結果応答のうち、どの電文であるかの種別を通知するためのデータであり、1バイトデータで構成される。
たとえば、図30に示すように、遊技機情報通知のコマンドは「01h」、計数通知のコマンドは「02h」、貸出通知のコマンドは「13h」、貸出受領結果応答のコマンドは「03h」に設定されている。
電文の受信側は、コマンドの値を判定すれば、電文の種類を識別することができる。
【0362】
(3)通番
「通番」とは、遊技機情報通知、計数通知、貸出通知、貸出受領結果応答に含まれる番号を指すデータである。遊技機情報通知に含まれる通番を「通番」、計数通知に含まれる通番を「計数通番」、貸出通知に含まれる通番を「貸出通番」、貸出受領結果応答に含まれる通番を「貸出通番」と称する。これらの各種の通番は、「0」~「FFh」の範囲内の数値であり、1バイトデータで構成される。
通番は、遊技機10の電源投入時は、「00h」を通知するように制御する。
また、電源投入以降は、通知するごとに通番を更新(+1)する。
通番が「FFh」の次の値は、「01h」に更新(+1を2回)する(「0」にはならない)。
【0363】
(4)データ部
「データ部」とは、遊技機情報通知、計数通知、貸出通知、貸出受領結果応答に対応したデータに相当する。各電文のデータ部の詳細については、後述する。
(5)チェックサム
「チェックサム」とは、電文長、コマンド、通番、データ部、チェックサムの5つからなるデータを加算し、総計の下位1バイトを示す値である。このチェックサムを用いて、受信側は、通信中のデータの破損等を把握することができ、たとえばチェックサムが一致しなかった電文の数を遊技機10や貸出ユニット200がカウントして、通信の不具合状況等を確認することができる。たとえば遊技機10においては、チェックサムが一致しなかった電文の数を、所定の状況(設定値を確認可能な設定確認モード中や設定値を変更可能な設定変更モード中)に画像表示装置23等で表示可能としてもよい。
【0364】
続いて、遊技機情報通知、計数通知、貸出通知、貸出受領結果応答の各データ部について、それぞれ説明する。
1.遊技機情報通知のデータ部
遊技機情報通知のデータ部は、図30に示すように、遊技機種類、遊技機情報種別、遊技機情報から構成される。
a)遊技機種類
「遊技機種類」とは、遊技機10の種類等を識別するための情報である。この情報は、たとえば管理媒体、団体区分、遊技機種類等を通知するデータである。
【0365】
b)遊技機情報種別
「遊技機情報種別」とは、今回通知する遊技機情報通知の遊技機情報が、遊技機性能情報、遊技機設置情報、又はホールコン・不正監視情報のいずれであるかを識別するための情報である。遊技機性能情報を通知する場合には「00h」、遊技機設置情報を通知する場合には「01h」、ホールコン・不正監視情報を通知する場合には「02h」を通知する。
【0366】
c)遊技機情報
「遊技機情報」は、遊技機性能情報、遊技機設置情報、ホールコン・不正監視情報から構成される。遊技機情報としては、遊技機性能情報、遊技機設置情報、ホールコン・不正監視情報のうち、いずれか1つを送信する。
ここで、ホールコン・不正監視情報は、原則として「300」msごと(遊技機情報通知の送信ごと)に送信する。
また、遊技機設置情報は、「60」秒ごとに送信する。
さらにまた、遊技機性能情報は、原則として「180」秒ごとに送信する。
上記において、「原則として」とは、複数の遊技機情報の送信タイミングが重なった場合には、優先順位の高い方の遊技機情報を送信することを意味する。換言すれば、遊技機性能情報、遊技機設置情報、及びホールコン・不正監視情報の送信タイミングが重なった場合には、優先度に応じていずれか1つを送信する。図30に示すように、「60」秒ごとに送信する遊技機設置情報が第1優先であり、「180」秒ごとに送信する遊技機性能情報が第2優先である。
【0367】
さらに、ホールコン・不正監視情報の送信周期である「300」msは、「300」~「310」msの範囲内であればよい。
同様に、遊技機設置情報の送信周期である「60」秒は、「60」~「62」秒の範囲内であればよい。
さらに同様に、遊技機性能情報の送信周期である「180」秒は、「180」~「186」秒の範囲内であればよい。
ただし、上述した送信周期の範囲は、毎回ランダムな値をとるわけではなく、あらかじめ定められた値で送信する。
【0368】
図31は、遊技機情報通知の遊技機情報である遊技機性能情報、遊技機設置情報、及びホールコン・不正監視情報の具体的構成を説明する図である。
(ア)遊技機性能情報
遊技機性能情報は、以下の総投入数等の情報から構成されている。
a)総投入数
「総投入数」とは、電源が投入されてから累積した遊技媒体の投入数である。なお、電源断が発生し、その後、電源が投入された場合には、総投入数として「0」が出力され得る。たとえば、累計「1000」回の遊技において、遊技媒体の累計投入数が「2000」であった場合には、総投入数は「2000」となり、総投入数として「2000」が出力され得る。そして、電源断が発生し、その後、電源が投入された場合には総投入数として「0」が出力され得る。なお、役抽選によりリプレイに当選し、リプレイに対応した図柄組合せが停止表示した場合には、その遊技の次回遊技のベット数は総投入数には含めない。
【0369】
b)総付与数
「総付与数」とは、電源が投入されてから累積した遊技媒体の付与数である。電源断が発生し、その後、電源が投入された場合には、総付与数として「0」が出力され得る。たとえば、累計「1000」回の遊技において、付与された遊技媒体の累計数が「2000」であった場合には、総付与数は「2000」となり、総付与数として「2000」が出力され得る。そして、電源断が発生し、その後、電源が投入された場合には、総付与数として「0」が出力され得る。
なお、リプレイに対応する図柄組合せが停止表示したことに基づいて、当該遊技におけるベット数の遊技媒体が自動ベットされた場合には、その自動ベットされた遊技媒体は「付与数」には含めない。
【0370】
c)MY(差数)
「MY」は、「差数」、「差枚数」とも称される。
「MY」とは、電源が投入されてからの遊技媒体の付与数と投入数とから算出可能な最大差数の情報である。電源断が発生し、その後、電源が投入された場合には、MYとして「0」が出力され得る。具体的には、遊技の結果が得られたときの遊技媒体数が最も減少したときを基準として、当該基準からの遊技媒体数の増加数(総付与数から総投入数を引いた数)である最大差数を「MY」と称する。たとえば、累計「1000」回の遊技において、「100」回目の遊技が最も遊技媒体数の差数が少なく、そのときの遊技媒体数が「-200」であり、その時点から「800」回目の遊技が最も遊技媒体数の差数が多く、そのときの遊技媒体数が「+800」であるときには、MYは「+1000」となり、MYとして「1000」が出力され得る。そして、電源断が発生し、その後、電源が投入された場合には、MYとして「0」が出力され得る。
【0371】
d)役物総付与数
「役物総付与数」とは、電源が投入されてからの役物(シングルボーナス(SB)、レギュラーボーナス(RB)、及びチャレンジボーナス(CB))の作動により付与された遊技媒体の総数(累積数)である。電源断が発生し、その後、電源が投入された場合には、役物総付与数として「0」が出力され得る。たとえば、累計「1000」回の遊技において、役物の作動により得られた総遊技媒体数が「100」であった場合には、役物総付与数は「100」となり、役物総付与数として「100」が出力され得る。そして、電源断が発生し、その後、電源が投入された場合には役物総付与数として「0」が出力され得る。
【0372】
e)連続役物総付与数
「連続役物総付与数」とは、電源が投入されてからの連続役物(第一種特別役物。レギュラーボーナス(RB)とも称する。)の作動により付与された遊技媒体の総数(累積数)である。電源断が発生し、その後、電源が投入された場合には、連続役物総付与数として「0」が出力され得る。たとえば、累計「1000」回の遊技において、連続役物の作動により得られた総遊技媒体数が「100」であった場合には、連続役物総付与数は「100」となり、連続役物総付与数として「100」が出力され得る。そして、電源断が発生し、その後、電源が投入された場合には連続役物総付与数として「0」が出力され得る。
なお、第一種特別役物連続作動装置(「1種BB」とも称される。)による第一種特別役物の作動により付与される遊技媒体の付与数も、連続役物総付与数として累積される。
【0373】
f)役物比率
上述したように、役比モニタ113によって表示される役物比率(累計)の値である。累計の遊技回数が所定回数(たとえば、17500回)未満であるときは、役物比率(累計)として「FFh」を出力するように構成されている。
g)連続役物比率
上述したように、役比モニタ113によって表示される連続役物比率(累計)の値である。累計の遊技回数が所定回数(たとえば、17500回)未満であるときは、連続役物比率(累計)として「FFh」を出力するように構成されている。
【0374】
h)有利区間比率
上述したように、役比モニタ113によって表示される有利区間比率(累計)の値である。累計の遊技回数が所定回数(たとえば、175000回)未満においては、有利区間比率として「FFh」を出力するように構成されている。また、有利区間を備えていない遊技機においても、「FFh」を出力するように構成されている。
i)指示込役物比率
上述したように、役比モニタ113によって表示される指示込役物比率(累計)の値である。累計の遊技回数が所定回数(たとえば、175000回)未満においては、指示込役物比率として「FFh」を出力するように構成されている。また、役物や指示機能を備えていない遊技機においても、「FFh」を出力するように構成されている。
【0375】
j)役物等状態比率
上述したように、役比モニタ113によって表示される役物等状態比率(累計)の値である。累計の遊技回数が所定回数(たとえば、175000回)未満においては、役物等状態比率として「FFh」を出力するように構成されている。また、役物を備えていない遊技機においても、「FFh」を出力するように構成されている。
k)遊技回数
「遊技回数」とは、遊技機10の電源が投入されてからの累積した遊技回数である。遊技機10の電源が投入されたときにクリアされる(「0」が記憶される)。
l)その他
上記以外の情報として、貸出ユニット200で使用される情報等、複数種類の情報が挙げられるが、本実施形態では説明を割愛する。
【0376】
(イ)遊技機設置情報
遊技機設置情報は、以下の主制御チップID番号等の情報から構成されている。
a)主制御チップID番号
「主制御チップID番号」とは、主制御基板50に設けられたCPU55、RWM53、及びROM54が一体となった主制御チップを識別するためのチップ個別ナンバーを含む情報であり、同一機種であっても遊技機10ごとに異なる情報となる。
b)主制御チップメーカコード
「主制御チップメーカコード」とは、主制御チップの内蔵メモリに記憶した遊技機メーカを示す情報である。
【0377】
c)主制御チップ製品コード
「主制御チップ製品コード」とは、主制御チップの内蔵メモリに記憶した遊技機10の機種名を示す情報である。
上述した主制御チップID番号、主制御チップメーカコード、及び主制御チップ製品コードは、遊技機10の電源が投入されたときの電源投入処理において、主制御基板50から遊技媒体数制御基板100に送信されるように構成されている。そして、遊技媒体数制御基板100のRWM103に、それぞれ、主制御チップID番号、主制御チップメーカコード、及び主制御チップ製品コードを記憶するように構成されている。
【0378】
d)遊技媒体数制御チップID番号
「遊技媒体数制御チップID番号」とは、遊技媒体数制御基板100に設けられたCPU105、RWM103、及びROM104が一体となった遊技媒体数制御チップを識別するためのチップ個別ナンバーを含む情報であり、同一機種であっても遊技機10ごとに異なる情報となる。
なお、遊技媒体数制御基板100を搭載していない遊技機の場合には、遊技媒体数制御チップID番号として「000000000000000000h」を貸出ユニット200に出力可能とする。
【0379】
e)遊技媒体数制御チップメーカコード
「遊技媒体数制御チップメーカコード」とは、遊技媒体数制御チップの内蔵メモリ(ROM54)に記憶した遊技機メーカを示す情報である。
なお、遊技媒体数制御基板100を搭載していない遊技機の場合には、遊技媒体数制御チップメーカコードとして「000000h」を貸出ユニット200に出力可能とする。
f)遊技媒体数制御チップ製品コード
「遊技媒体数制御チップ製品コード」とは、主制御チップの内蔵メモリ(ROM54)に記憶した遊技機10の機種名を示す情報である。
なお、遊技媒体数制御基板100を搭載していない遊技機の場合には、遊技媒体数制御チップ製品コードとして「0000000000000000h」を貸出ユニットに向けて出力可能とする。
【0380】
(ウ)ホールコン・不正監視情報
ホールコン・不正監視情報は、以下の遊技媒体数等の情報から構成されている。
a)遊技媒体数
「遊技媒体数」とは、遊技媒体数制御基板100に記憶されている現在の遊技媒体数(総数)を示す情報であり、遊技媒体の投入(ベット)により減じられ、小役の入賞に基づく遊技媒体の付与により加算される。現在の遊技媒体数は、遊技媒体数記憶手段103aに記憶されており、遊技媒体数表示部121に表示される。遊技媒体数としてたとえば「2000」を記憶している場合には、遊技媒体数として「0007D0h」を貸出ユニット200に出力可能とする。なお、遊技媒体数制御基板100で記憶可能な遊技媒体数の上限値は「16383(D)」としている。
なお、現在の遊技媒体数を(「300」msごとに)貸出ユニット200に送信することで、貸出ユニット200側でも遊技媒体数を管理することが可能となる。これにより、セキュリティ性をより強化することができる。
【0381】
b)投入数
「投入数」とは、投入(ベット)されている遊技媒体数を示す情報である。たとえば遊技媒体数「3」を投入(ベット)した場合には、「03h」を貸出ユニット200に出力可能とする。また、「3」を投入した状況から遊技を開始する前に(スタートスイッチ41が操作される前に)精算スイッチ46の操作により投入数「3」を遊技媒体数制御基板100に戻す場合には、「-3」に相当する「FDh」を貸出ユニット200に出力可能とする。換言すると、「-3」(FDh)~+3(03h)の情報を貸出ユニット200に出力可能とする。
【0382】
c)付与数
「付与数」とは、すべてのリール31が停止した後、有効ライン上に停止した(入賞した)図柄組合せの態様によって、付与された遊技媒体数(配当)を示す情報である。たとえば、遊技媒体数「8」が付与された場合には「08h」の情報を出力可能とし、「15」が付与され場合には「0Fh」を貸出ユニット200に出力可能とする。
このように、遊技機10は、上述した「遊技媒体数」、「投入数」、「付与数」を貸出ユニット200に送信することで、貸出ユニット200側では、遊技媒体数の異常を検知可能となっている。
【0383】
d)主制御状態1
「主制御状態1」とは、遊技状態に関する状態を示す情報である。具体的には、1バイトのデータのうち、ビットごとにどの遊技状態であるかを割り当てられている。たとえば、D0ビットが「1」のときにはRB状態であることをし、また、たとえばD1ビットが「1」のときにはBB状態であることを示し、さらにまた、たとえばD2ビットが「1」であるときはAT状態であることを示す。そして、遊技機10は、これらの情報を貸出ユニット200に出力可能とする。
【0384】
D3~D6ビットは、遊技機状態信号1~4に対応している。遊技機状態信号1~4は、遊技機10の種類に応じて使用用途を変更したり、使用しなかったりすることができる。たとえばATで付与した遊技媒体数が「100」に達するごとに、遊技機状態信号1を出力可能とすることが挙げられる。D7ビットは未使用であり、遊技機10の種類にかかわらず「0」が出力可能となるように構成されている。このように構成することによって、たとえば、AT状態であることを報知する場合には、「00000100B」を貸出ユニット200に出力可能とする。
【0385】
e)主制御状態2
「主制御状態2」とは、主制御状態1と同様に、遊技状態に関する状態を示す情報である。D0ビットからD2ビットは、遊技機状態信号5~7に対応している。遊技状態信号5~7は、遊技機10の種類に応じて使用用途を変更したり、使用しなかったりすることができる。たとえば、特定のRT状態(再遊技確率変動(高確率)状態)に移行した場合に、遊技状態信号5を出力することなどが挙げられる。D3~D7ビットは未使用であり、遊技機10の種類にかかわらず「0」が出力可能となるように構成されている。このように構成することによって、たとえば特定のRT状態へ移行した際には、「00000001B」を貸出ユニット200に出力可能とする。
【0386】
f)遊技機エラー状態
「遊技機エラー状態」とは、遊技機10で発生中のエラーを示すエラーコード等を含む情報である。
具体的には、D0~D5ビットでエラーコードを示す。D6ビットで遊技媒体数制御基板100のエラー(この場合には、D6ビットは「0」)であるか、又は主制御基板50のエラー(この場合にはD6ビットは「1」)であるかを示す。D7ビットで貸出ユニット200にてエラー報知のみを行うもの(この場合にはD7ビットは「0」)であるか、又は貸出ユニット200にてエラー報知を行うとともに、貸出ユニット200を通じてホールコンピュータ300にもエラーコードを通知するもの(この場合にはD7ビットが「1」)であるかを示す。
【0387】
たとえば、エラーの種類として乱数異常エラーと、電波異常エラーとを検出可能な遊技機10であるとする。このとき、エラーコードとして、乱数異常エラーを「00001B」とし、電波異常エラーを「00010B」と定め、このエラーコードを含む情報を出力することが可能となる。具体的には、乱数異常エラーは、主制御基板50のエラーであって、貸出ユニット200でエラー報知のみを行う場合には、「01000001B」を貸出ユニット200に出力可能とする。また、電波異常エラーは、遊技媒体数制御基板100のエラーであって、貸出ユニット200でエラー報知を行い、さらにホールコンピュータ300にもエラーコードを通知する場合には、「10000010B」を貸出ユニット200に出力可能とする。なお、エラーが未発生の場合や、エラーコードを有していない遊技機の場合には、「00000000B」を貸出ユニット200に出力可能とする。
【0388】
g)遊技機不正1(主制御)
「遊技機不正1(主制御)」とは、主制御基板50に係る不正の検知や主制御基板50に係る状態に関する情報である。なお、遊技機不正1(主制御)の信号は、ホールコンピュータ300用の信号として扱う。換言すると、遊技機10から出力された遊技機不正1(主制御)の各信号は、貸出ユニット200を通じて、ホールコンピュータ300へ出力されるようになっている。
【0389】
遊技機不正1(主制御)を構成する各信号は、以下の通りである。
まず、D0ビットには設定変更中信号が割り当てられている。D0ビットが「1」であるときは、設定変更中(設定変更モード中)及び設定変更が行われたことを示す。設定変更中信号は、設定変更中~設定変更後の1遊技終了時(たとえば、全リール31が停止し、遊技媒体の付与処理が終了したとき)まではD0ビットが「1」となる。設定変更中~設定変更後の1遊技終了時以外の状況では、D0ビットは「0」となる。
D1ビットには設定確認中信号が割り当てられている。設定確認中(設定確認モード中)のときはD1ビットが「1」となり、設定確認中以外の状況ではD1ビットが「0」となる。
【0390】
D2ビットには不正検知信号1、D3ビットには不正検知信号2、D4ビットには不正検知信号3がそれぞれ割り当てられている。たえとば、乱数異常を不正とした遊技機10において、乱数異常の検知を不正検知信号1に割り当てた場合に、乱数異常を検知した場合にはD2ビットが「1」となり、乱数異常を検知していない場合にはD2ビットが「0」となる。
D5ビットにはセキュリティ信号が割り当てられている。具体的には、不正検知信号を出力しているとき、設定変更中信号を出力しているとき、設定確認中信号を出力しているときのいずれかの状況下でD5ビットが「1」となり、それ以外の状況ではD5ビットは「0」となる。
D6及びD7ビットは未使用であり、いずれの「0」となる。
【0391】
h)遊技機不正2(主制御又は遊技媒体数制御)
「遊技機不正2(主制御又は遊技媒体数制御)」とは、主制御基板50又は遊技媒体数制御基板100に係る不正の検知や主制御基板50又は遊技媒体数制御基板100に係る状態を示す情報である。なお、遊技機不正2(主制御又は遊技媒体数制御)の信号は、ホールコンピュータ300用の信号として扱う。換言すると、遊技機10から出力された遊技機不正2(主制御又は遊技媒体数制御)の各信号は、貸出ユニット200を通じて、ホールコンピュータ300へ出力されるようになっている。
【0392】
遊技機不正2(主制御又は遊技媒体数制御)を構成する各信号は、以下の通りである。
D0ビットには、設定ドアオープン信号が割り当てられている。「設定ドアオープン信号」とは、設定変更を行うための設定キースイッチ12をカバーする設定キースイッチカバーが開放しているか否かを示す信号である。設定キースイッチカバーが開放しているときにはD0ビットが「1」となり、設定キースイッチカバーが閉鎖しているときにはD0ビットが「0」となる。なお、設定キースイッチカバーを設けていない遊技機や、設定キースイッチカバーの開放を検知する機能を有していない遊技機においては、D0ビットが「0」となる。
【0393】
D1ビットには、ドアオープン信号が割り当てられている。「ドアオープン信号」とは、遊技機10の扉(「前扉」、「フロントドア」とも称される。)が開放しているか否かを示す情報である。遊技機10の扉が開放しているときにはD1ビットが「1」となり、遊技機10の扉が閉鎖しているときにはD1ビットが「0」となる。
D2ビットは未使用であり、「0」である。
D3ビットには、遊技媒体数クリア検知が割り当てられている。「遊技媒体数クリア検知」とは、遊技媒体数制御基板100に設けられた総遊技媒体数クリアスイッチ112が操作された(総遊技媒体数がクリアされた)ことの検知である。
総遊技媒体数クリアスイッチ112の操作を検出した場合にはD3ビットが「1」となり、総遊技媒体数クリアスイッチ112の操作を検出していない場合にはD3ビットが「0」となる。なお、総遊技媒体数クリアスイッチ112を備えていない遊技機の場合には、D3ビットは「0」となる。
D4~D7ビットは未使用であり、これらのビットは「0」となる。
【0394】
i)遊技機不正3(主制御又は遊技媒体数制御)
「遊技機不正3」とは、予備として設けられ、主制御基板50又は遊技媒体数制御基板100に係る不正の検知や、主制御基板50又は遊技媒体数制御基板100に係る状態の情報を示す。
本実施形態の遊技機10においては、遊技機不正3(主制御又は遊技媒体数制御)は未使用であり、D0~D7ビットは「0」となる。
さらに、図31では図示していないが、ホールコン・不正監視情報として、他にも情報が設けられているが、本実施形態では説明を割愛する。
【0395】
説明を図30に戻す。
2.計数通知のデータ部
計数通知のデータ部は、計数遊技媒体数と、計数累積遊技媒体数とから構成される。
a)計数遊技媒体数
「計数遊技媒体数」は、計数スイッチ47が操作されたことに基づいて遊技機10から貸出ユニット200に送信する(戻す)遊技媒体数である。計数遊技媒体数は、「0x00h」から「0x32h」までの範囲となっており、1回の計数通知では最大「50(D)」を貸出ユニット200に送信可能となっている。また、遊技媒体数制御基板100が記憶している遊技媒体数が「50」以上である場合は、「50」を示す「0x32h」のデータが送信されるが、遊技媒体数制御基板100が記憶している遊技媒体数が「50」未満である場合は遊技媒体数制御基板100が記憶している現在の遊技媒体数に応じたデータが送信される。たとえば、遊技媒体数制御基板100が記憶している遊技媒体数が「30(D)」である場合には、「0x1Eh」のデータが送信される。
【0396】
なお、上述した計数遊技媒体数の例は、計数スイッチ47の操作を1回のみ受け付けた(以下、「短押し操作」と称する場合がある。)ときに「50」を通知する場合の例であるが、計数スイッチ47の短押し操作を受け付けた場合は計数遊技媒体数として「1」を通知し、計数スイッチ47の長押し操作を受け付けた場合は計数遊技媒体数として「50」を通知してもよい。
ここで、「計数スイッチ47の短押し操作を受け付けた」とは、たとえば、遊技媒体数制御基板100が計数スイッチ47の操作受け付けに関するレベルデータがオンを示す値となっている期間(割込み処理で計数スイッチ47の操作受付がオンを示す値となっている期間)が所定期間未満(たとえば「1」秒未満)である場合が挙げられる。すなわち、前記所定期間未満の時間で計数スイッチ47の操作が受け付けられた場合には、計数スイッチ47の短押し操作を受け付けたと判断し、計数遊技媒体数を「1」とする。
【0397】
計数スイッチ47が1回操作されたときに、一律に遊技媒体数「50」を計数すると、遊技者の意思で遊技媒体数「50」未満、たとえば遊技媒体数「1」を取り出すことができなくなる。したがって、計数スイッチ47のたとえば短押し操作により、最小単位の遊技媒体数「1」を取り出すことができれば、「遊技媒体を自由に取り出すことができる性能を有する」という計数スイッチ47の趣旨に合致するものとなる。
【0398】
一方、「計数スイッチ47の長押し操作を受け付けた」とは、たとえば、遊技媒体数制御基板100が計数スイッチ47の操作受付けに関するレベルデータがオンを示す値となっている期間(割込み処理で計数スイッチ47の操作受付がオンを示す値となっている期間)が所定期間以上(たとえば「1」秒以上)である場合が挙げられる。すなわち、所定期間以上の時間、計数スイッチ47の操作が受け付けられた場合に、計数スイッチ47の長押し操作を受け付けたとして、計数遊技媒体数を「50」とする。
【0399】
なお、計数通知において計数遊技媒体数「50」を貸出ユニット200に送信した後、次に計数通知を送信するタイミングにおいて計数スイッチ47が未だ長押しされている場合は、計数通知として計数遊技媒体数「50」を貸出ユニット200に送信する。すなわち、一度長押し判定した後は、計数スイッチ47の操作がなくなるまで(計数スイッチ47の操作受付けに関するレベルデータがオフを示す値となるまで)計数通知において計数遊技媒体数「50」を貸出ユニット200に送信し続ける。この場合、計数スイッチ47が長押し操作されていると判断するまでの間(たとえば「1」秒間)は計数されないことになる。
【0400】
b)計数累積遊技媒体数
「計数累積遊技媒体数」とは、遊技機10の電源投入時からの計数遊技媒体数の累積値である。計数累積遊技媒体数は、「0x0000h」から「0xFFFFh」までの範囲であり、計数が行われるごとにその計数遊技媒体数を加算する。なお、計数累積遊技媒体数が「0xFFFFh」を超える場合は「0xFFFFh」の次の値を「0x0000h」とする。また、遊技機10の電源投入があった場合は、計数累積遊技媒体数をクリアする(「0」にする)。
【0401】
3.貸出通知のデータ部
貸出通知のデータ部である「貸出遊技媒体数」は、貸出ユニット200の貸出スイッチ202が操作されることで、貸出ユニット200から遊技機10に送信される貸出しに関する遊技媒体数である。貸出遊技媒体数は、「0x00h」から「0x32h」までの範囲であり、1回の貸出通知では最大「50(D)」を遊技機10に送信可能となっている。また、貸出ユニット200側に記憶されている貸出可能遊技媒体数が「50」以上である場合は、「50」を示す「0x32h」のデータが遊技機10に送信される。これに対し、貸出ユニット200側に記憶されている貸出可能遊技媒体数が「50」未満である場合は、貸出ユニット200側に記憶されている現在の貸出可能遊技媒体数に応じたデータが送信される。たとえば、貸出可能遊技媒体数が「20」の場合は「20」を示す「0x14h」のデータが送信される。
【0402】
4.貸出受領結果応答のデータ部
貸出受領結果応答のデータ部である「貸出遊技媒体数受領結果」は、貸出ユニット200から遊技機10に送信される貸出遊技媒体数のデータを受信したことに基づいて、遊技機10から貸出ユニット200に送信されるデータである。貸出ユニット200から受信したデータが正常であるときは「0x00h」となり、異常であるときは「0x01h」となる。
異常となる場合としては、たとえば、
a)貸出ユニット200から通知された貸出通番が連続していない場合、
b)遊技媒体数制御基板100のRWM103の異常等により遊技機10側が貸出不可能な状態である場合、
c)遊技媒体数制御基板100が記憶している総遊技媒体数と貸出遊技媒体数とを加算した値が遊技媒体数制御基板100が記憶する遊技媒体数の記憶上限値を超える場合
等が挙げられる。
また、その他の要因で「0x00h」、「0x01h」以外の値となったときも貸出ユニット200は異常と判断する。
【0403】
続いて、遊技機10と貸出ユニット200との間の通信について説明する。
図32は、遊技機10と貸出ユニット200との間の基本通信シーケンスを示すタイムチャートである。
遊技機10は、遊技機10の起動が完了したときから、貸出ユニット200に対し、遊技機情報通知を「300」msごとに送信する。図32の例では、通番「n」の遊技機情報通知を送信した後、「300」ms経過後に、通番「n+1」の遊技機情報通知を送信している。
なお、遊技機情報通知の遊技機情報中、図30に示したように、遊技機性能情報は「180」秒ごとに送信し、遊技機設置情報は「60」秒ごとに送信し、ホールコン・不正監視情報は「300」msごとに送信するが、その点については、後述する。
【0404】
さらに、遊技機10は、貸出ユニット200に対し、遊技機情報通知を送信した後、「100」ms後に計数通知を送信する。
また、貸出ユニット200は、計数通知を受信した後、「170」ms以内に、遊技機10に対して貸出通知を送信する。そして、遊技機10は、貸出通知を受信した後、「10」ms以内に貸出受領結果応答を貸出ユニット200に送信する。
遊技機10は、遊技機情報通知を送信してから「300」ms後に次の遊技機情報通知を送信するため、貸出受領結果応答を送信してから次の遊技機情報通知を送信するまでの間は、「20」ms以上となる。
【0405】
図33は、遊技機10と貸出ユニット200との起動シーケンスの例1を説明するタイムチャートであり、遊技機10が先に起動した場合を示す。
遊技機10、及び貸出ユニット200の双方の電源がオフ(「電源断」と同義である。以下同じ。)の場合は、遊技機10と貸出ユニット200とのVL信号及びPSI信号はオフとなっている。
VL信号は、遊技機10が遊技可能(遊技媒体をベット可能)となったときにオンになる信号であり、貸出ユニット200が起動するまでオフとなっている信号である。
また、PSI信号は、遊技機10と貸出ユニット200との接続信号であり、貸出ユニット200が起動するまでオフとなっている信号である。
【0406】
電源がオンにされた後、遊技機10の起動が完了した時点で、貸出ユニット200の起動は未だ完了していない。
この状況下において、遊技機10は、電文通知のプログラムに従って、最初の電文、すなわち遊技機情報通知を貸出ユニット200に送信し、さらに上述したように、遊技機情報通知の送信から「100」ms後に計数通知を送信する。しかし、遊技機情報通知及び計数通知の送信時には、貸出ユニット200の起動がまだ完了していないので、貸出ユニット200は、この遊技機情報通知及び計数通知を受信できない。図中、「?」印は、遊技機10が遊技機情報通知及び計数通知を送信したものの、貸出ユニット200がこれらの通知を受信できないことを示している。
さらに、貸出ユニット200が未だ起動しておらず、かつ計数通知を受信していないので、貸出ユニット200から遊技機10に対して貸出通知が送信されることもない。よって、遊技機10は、貸出受領結果応答を送信することもない。
【0407】
遊技機10の起動が完了した後、最初に送信する遊技機情報通知の通番と計数通知の計数通番は、「0x00h」を送信する。また、通番や計数通番は、遊技機10と貸出ユニット200とが接続されているか否かにかかわらず更新されるため、次に送信するタイミング(遊技機10の起動完了後、最初に送信した遊技機情報通知の「300」ms後に送信するタイミング)では、通番及び計数通番として「0x01h」を送信する。
【0408】
その後、貸出ユニット200の起動が完了すると、VL信号及びPSI信号がオンになり、遊技機10のベットスイッチ40の操作及び計数スイッチ47の操作が有効になる。また、遊技機10から送信した情報を貸出ユニット200が受信可能となる。貸出ユニット200は、その起動後は、計数通知の受信に基づいて貸出通知を遊技機10に送信可能となる。図33の例では、計数通番「m」の計数通知を遊技機10が貸出ユニット200に送信し、貸出ユニット200が当該通知を受信すると、貸出通番「k」の貸出通知を遊技機10に送信する例を示している。
さらに、遊技機10は、受信した貸出通知に基づいて貸出受領結果応答を貸出ユニット200に送信可能となる。図33の例では、遊技機10は、貸出通番「k」の貸出通知を受信したことに基づいて、貸出通番「k」の貸出受領結果応答を貸出ユニット200に送信した例を示している。
【0409】
上述したように、遊技機10は、貸出ユニット200が起動しているか否かにかかわらず、遊技機情報通知や計数通知を送信するため、貸出ユニット200は、貸出ユニット200の起動が完了した後に遊技機10から送信された遊技機情報通知の通番、及び計数通知の計数通番から管理する。このように構成することで、遊技機10は、貸出ユニット200の状況を判断することなく電文を送信できるため、貸出ユニット200の状況を判断するためのプログラム容量を削減することができる。
【0410】
図34は、遊技機10と貸出ユニット200との起動シーケンスの例2を説明するタイムチャートであり、貸出ユニット200が先に起動した場合を示す。
遊技機10の電源がオフの状態において、貸出ユニット200の電源のみがオンにされると、貸出ユニット200のみが起動を開始する。貸出ユニット200の起動中は、VL信号及びPSI信号はオフである。
そして、貸出ユニット200の起動が完了すると、貸出ユニット200のVL信号及びPSI信号がオンになる。
【0411】
図34では、貸出ユニット200のVL信号及びPSI信号がオンになった後に、遊技機10の電源がオンにされた例を示している。
そして、遊技機10の起動が完了すると、遊技機10及び貸出ユニット200双方のVL信号及びPSI信号がオンになり、遊技機10のベットスイッチ40の操作及び計数スイッチ47の操作が有効になる。
【0412】
そして、図33の例と同様に、遊技機10は、電文通知のプログラムに従って、最初の電文、すなわち遊技機情報通知を貸出ユニット200に送信し、さらに、遊技機情報通知の送信から「100」ms後に計数通知を送信する。この時点で貸出ユニット200の起動は完了しているので、貸出ユニット200は、最初の遊技機情報通知及び計数通知を受信可能である。
貸出ユニット200は、計数通知を受信したときは、「170」ms以内に貸出通知を遊技機10に送信する。さらに、遊技機10は、貸出通知を受信すると、「10」ms以内に、貸出受領結果応答を貸出ユニット200に送信する。
以上のようにして、遊技機10の起動完了時にすでに貸出ユニット200の起動が完了している場合には、貸出ユニット200は、遊技機10から送信される最初の電文(通番「0」の遊技機情報通知)から受信することができる。
【0413】
図35は、遊技機情報通知の基本シーケンスを説明するタイムチャートである。
図35中、遊技機10の起動完了後、最初の遊技機情報通知を「A0」とし、それ以降の遊技機情報通知を、「A1」、「A2」、・・・と称する。
同様に、計数通知を「B0」、「B1」、「B2」、・・・と称し、貸出通知を「C0」、「C1」、「C2」、・・・と称し、貸出受領結果応答を「D0」、「D1」、「D2」、・・・と称する。
図32で示したように、遊技機10は、貸出ユニット200に対し、「300」msごとに、遊技機情報通知を送信する。
ここで、図30に示したように、
(1)遊技機性能情報:180秒ごと(第2優先)
(2)遊技機設置情報:60秒ごと(第1優先)
(3)ホールコン・不正監視情報:300msごと
に、いずれかの遊技機情報を含む遊技機情報通知を送信する。
【0414】
ホールコン・不正監視情報は、原則として「300」msごとに送信するが、「60」秒ごとに送信する遊技機設置情報の送信周期と重なり、かつ「180」秒ごとに送信する遊技機性能情報の送信周期と重ならない場合には、当該送信タイミングでは、遊技機設置情報を優先して送信し、遊技機設置情報の送信後の次の送信タイミング(「300」ms後)に、ホールコン・不正監視情報を送信する。
図35において、遊技機10の起動後、「200」回目の遊技機情報通知(図中、「A199」)の送信は、最初の遊技機情報通知の送信時から「60」秒経過時となる(300ms×200=60000ms)。
したがって、「A199」の遊技機情報通知の送信タイミングでは、ホールコン・不正監視情報よりも優先して、遊技機設置情報を含む遊技機情報通知を送信する。そして、その送信から「300」ms後の「A200」の遊技機情報通知の送信タイミングでは、ホールコン・不正監視情報を含む遊技機情報通知を送信する。
【0415】
さらに、「60」秒周期である遊技機設置情報の送信周期と重なり、かつ「180」秒周期である遊技機性能情報の送信周期と重なる場合には、第1優先として、遊技機設置情報を送信し、その次の送信周期(遊技機設置情報の送信から「300」ms後)に、第2優先として遊技機性能情報を送信する。さらに、その次の送信周期(遊技機性能情報の送信から「300」ms後)に、ホールコン・不正監視情報を送信する。
図35において、「A599」の遊技機情報通知の送信タイミングは、最初の遊技機情報通知の送信時から、「60」秒経過時かつ「180」秒経過時である(300ms×600=180000ms)。なお、「180」秒経過時は、常に「60」秒経過時に相当する。
【0416】
したがって、「A599」の遊技機情報通知の送信タイミングでは、第1優先として、遊技機設置情報を送信する。さらに、その時点から「300」ms経過後の「A600」の遊技機情報通知の送信タイミングでは、第2優先として、遊技機性能情報を送信する。さらに、その時点から「300」ms経過後の「A601」の遊技機情報通知の送信タイミングでは、ホールコン・不正監視情報を送信する。
【0417】
遊技機情報通知を送信するときは、遊技機情報(ホールコン・不正監視情報、遊技機設置情報、遊技機性能情報)を取得し(RWMやROM等から読込み)、送信用レジスタに記憶し、所定の出力ポートから送信する。
したがって、ホールコン・不正監視情報、遊技機設置情報、遊技機性能情報は、いずれも、送信する直前の最新の情報を送信する。
遊技機情報通知のうち、遊技機設置情報は、主制御チップID番号等であるため、時間の経過(遊技の進行)とともに変化する情報ではなく、固定的情報である。
一方、ホールコン・不正監視情報は、図31に示したように、遊技媒体数、投入数、付与数等を含む情報であるから、遊技の進行(時間経過)によって変化する情報である。
【0418】
そして、遊技機設置情報、遊技機性能情報、ホールコン・不正監視情報の送信周期がすべて重なったときは、遊技機設置情報、遊技機性能情報、ホールコン・不正監視情報の優先順位で送信されるため、遊技機情報通知の送信周期(「300」ms)が到来した時から、最長で、「600」ms、ホールコン・不正監視情報の送信が遅れる。
【0419】
この場合、遊技機設置情報の送信タイミングの時点でホールコン・不正監視情報を取得しておき、遊技機設置情報の送信タイミングから「600」ms経過後(遊技機設置情報の送信後、かつ遊技機性能情報の送信後)にホールコン・不正監視情報を送信すると、「600」ms前のホールコン・不正監視情報を送信することになってしまう。
そこで、ホールコン・不正監視情報の送信時には、実際に送信する直前に、ホールコン・不正監視情報を取得し、送信用レジスタに記憶するようにしている。
【0420】
以上は、遊技機設置情報とホールコン・不正監視情報の送信周期が重なったときも同様である。この場合には、遊技機情報通知の送信周期(「300」ms)が到来したときから、「300」ms後に、ホールコン・不正監視情報が送信される。
ここで、遊技機設置情報の送信タイミングの時点でホールコン・不正監視情報を取得しておき、遊技機設置情報の送信タイミングから「300」ms経過後にホールコン・不正監視情報を送信すると、「300」ms前のホールコン・不正監視情報を送信することになってしまう。
そこで、ホールコン・不正監視情報の送信時には、実際に送信する直前に、ホールコン・不正監視情報を取得し、送信用レジスタに記憶するようにしている。
【0421】
また、遊技機性能情報は、図31に示したように、総投入数、総付与数、MY等を含む情報であるから、遊技の進行(時間経過)によって変化する。
そして、遊技機設置情報と遊技機性能情報との送信周期が重なったときは、遊技機設置情報が遊技機性能情報よりも優先して送信されるため、遊技機情報通知の送信周期(「300」ms)が到来したときから、「300」ms経過後に、遊技機性能情報が送信される。
この場合、遊技機設置情報の送信タイミングの時点で遊技機性能情報を取得しておき、遊技機設置情報の送信タイミングから「300」ms経過後に遊技機性能情報を送信すると、「300」ms前の遊技機性能情報を送信することになってしまう。
そこで、遊技機性能情報の送信時には、実際に送信する直前に遊技機性能情報を取得し、送信用レジスタに記憶するようにしている。
換言すると、「300」msごとの遊技機情報通知の送信タイミングでは、今回の割込み処理で送信する遊技機情報通知の遊技機情報(ホールコン・不正監視情報、遊技機設置情報、又は遊技機性能情報のいずれか)のみを、送信用レジスタに記憶する。
【0422】
図36は、計数通知シーケンスを説明するタイムチャートである。
遊技者が遊技を終了するとき等に、計数スイッチ47が操作されると、遊技機10側の遊技媒体を貸出ユニット200に送信する(戻す、返却する)処理を実行する。
なお、計数処理は、遊技機10側の遊技媒体データを貸出ユニット200に実際に伝送ないし転送処理を実行するわけではなく、遊技機10の遊技媒体数記憶手段103aに記憶された遊技媒体数の減算処理を実行し、かつ、貸出ユニット200の貸出可能遊技媒体数記憶手段206に記憶された遊技媒体数の加算処理を実行するものである。
図36の例では、計数スイッチ47の操作を受け付ける前の状況として、遊技媒体数制御基板100(遊技媒体数記憶手段103a)に記憶されている(総)遊技媒体数が「200」であり、貸出ユニット200に記憶されている貸出可能遊技媒体数は「20」であるものとする。
【0423】
遊技機10及び貸出ユニット200の起動が完了しており、遊技機10と貸出ユニット200との通信が可能な状況下において、計数スイッチ47の操作(オン)を検知した後の最初の遊技機情報通知を貸出ユニット200に送信するタイミングでは、遊技機情報通知の通番は「n」であるものとする。また、この時点で遊技媒体数制御基板100に記憶されている遊技媒体数は「200」であるので、遊技媒体数「200」を貸出ユニット200に送信する。
さらに、遊技機10は、計数通知を貸出ユニット200に更新する。このときの計数通知の計数通番は「m」であるものとする。また、このときの計数通知における計数遊技媒体数は「50」である。この例では、計数スイッチ47の操作が検知されると、1回の計数通知の送信で計数遊技媒体数「50」を送信するものとする。
【0424】
また、当該計数に係る処理が遊技機10の起動が完了してから初めての計数に係る処理であるとすると、計数通知として計数累積遊技媒体数「50」を送信する。なお、遊技機10は、計数通知を送信する処理を実行する前に、遊技媒体数から計数遊技媒体数を減算する。したがって、計数通知を送信する処理を実行する前に、遊技媒体数制御基板100に記憶されている遊技媒体数は、「200」から「150」に更新される。また、貸出ユニット200は、計数通知を受信すると、貸出ユニット200の貸出可能遊技媒体数記憶手段206に記憶されている貸出可能遊技媒体数に、計数遊技媒体を加算する。したがって、図36の例では、貸出可能遊技媒体数は、「20」から「70」に更新される。
続いて、貸出ユニット200は、貸出通知を遊技機10に送信する。この貸出通知の貸出通番は「k」であるものとする。また、この貸出通知における貸出遊技媒体数は「0」である。ここで、貸出遊技媒体数「0」を送信するのは、貸出スイッチ202が操作されていないためである。
【0425】
また、遊技機10は、貸出ユニット200から貸出通知を受信したときは、貸出通知が示す情報と前回の貸出通知が示す情報との整合性をチェックする。
そして、貸出通知が示す情報と前回の貸出通知が示す情報との整合性をチェックした結果、正常であると判断したときは、遊技機10は、貸出通番を「k」、貸出点受領結果を「正常」とする貸出受領結果応答を貸出ユニット200に送信する。
【0426】
次の通番「n+1」の遊技機情報通知の送信時には、通番「n+1」、遊技媒体数「150」を送信する。
図36は、通番「n」の遊技機情報通知が送信された後、「300」msを経過して、次の通番「n+1」の遊技機情報通知が送信される際にも、計数スイッチ47のオン状態が維持されている(計数スイッチ47が長押しされている)例である。したがって、計数通知として、計数通番「m+1」、計数遊技媒体数「50」、計数累積遊技媒体数「100」を送信する。これにより、貸出ユニット200側では、貸出可能遊技媒体数は「120」に更新される。
また、貸出ユニット200から遊技機10に対し、貸出通知として、貸出通番「k+1」、貸出遊技媒体数「0」を遊技機10に送信する。さらに、遊技機10は、当該貸出通知を受信すると、貸出ユニット200に対し、貸出受領結果応答として、貸出通番「k+1」、貸出点受領結果「正常」を送信する。
【0427】
このように、遊技機10に遊技媒体が記憶されている状況下において、計数スイッチ47のオンを検知してからオフを検知するまでの間(計数スイッチ47が長押しされている間)は、「300」msごとに、遊技機10から貸出ユニット200に対して、所定数の計数遊技媒体を含む計数通知を送信し続ける。このように構成することにより、複雑な操作をさせることなく(長押しするのみ)、「300」msごとに一定量(本例では「50」)の計数遊技媒体数を貸出ユニット200に送信可能となるため、計数操作の負担を軽減することができる。
なお、計数スイッチ47は、遊技媒体数制御基板100と接続されているため、遊技媒体数制御基板100の割込み処理ごとに入力ポート101をチェックし、計数スイッチ47を示す入力ポート101にオンを示す情報が入力されていた場合は、計数スイッチ47の操作を受け付ける。その後、計数スイッチ47を示す入力ポート101にオフを示す情報が入力されていた場合は、計数スイッチ47の操作受付けを終了する。
【0428】
図36の例では、通番「n+1」の遊技機情報通知が送信された後、通番「n+2」の遊技機情報通知が送信される前に、計数スイッチ47のオフを検知した例を示している。
この場合、遊技機10は、通番「n+2」の遊技機情報通知の送信時には、遊技媒体数「100」を送信する。
また、計数通知として、計数通番「m+2」、計数遊技媒体数「0」、計数累積遊技媒体数「100」を送信する。さらにまた、貸出ユニット200から遊技機10に対する貸出通知として、貸出通番「k+2」、貸出遊技媒体数「0」を遊技機10に送信する。さらに、遊技機10から貸出ユニット200に対する貸出受領結果応答として、貸出通番「k+2」、貸出点受領結果「正常」を送信する。
【0429】
なお、計数通知は、遊技機情報通知の送信後、「100」ms後に送信されるものである。換言すれば、計数通知は「300」msごとに送信される。このため、計数スイッチ47が操作されていない状況下においても、計数遊技媒体数が「0」である計数通知が「300」msごとに送信される。
また、遊技機10の遊技媒体数記憶手段103aに遊技媒体が記憶されていない状況下では、計数スイッチ47が操作されても、計数遊技媒体数が「0」である計数通知が「300」msごとに送信される。
【0430】
次に、計数処理を、フローチャートを用いて説明する。
図37は、第2実施形態における計数処理を示すフローチャートである。
なお、図29では図示していないが、遊技媒体数制御基板100のRWM103には、以下の記憶領域を備える。
計数中フラグ(_FL_CAL_EXE )は、計数中であるか否かを示すデータを記憶する記憶領域である。
計数値記憶領域(_CT_CAL_VAL )は、計数通知時に送信する計数値(計数遊技媒体数)を記憶する記憶領域である。
計数累積値記憶領域(_CT_CAL_ALL )は、計数累積値(計数累積遊技媒体数)を記憶する記憶領域である。
計数通番記憶領域(_NB_CAL_NUM)は、計数通番を記憶する記憶領域である。
なお、遊技媒体数制御基板100を備えていない遊技機の場合には、主制御基板50のRWM53に上記各記憶領域を備えるようにしてもよい。
【0431】
まず、ステップS701では、計数通知タイミングであるか否かが判断される。ここで、「計数通知タイミング」とは、遊技機情報通知を送信した後から「100」ms経過後であるタイミングを指す。なお、「100」ms経過後とは、「90」ms~「100」msの範囲内であればよい。
計数通知タイミングであると判断されたときはステップS702に進み、計数通知タイミングでないと判断されたときは本フローチャートによる処理を終了する。
【0432】
計数通知タイミングであると判断され、ステップS702に進むと、遊技媒体数制御基板100は、計数中フラグをクリア(「0」に)する。次にステップS703に進み、計数を実行するか否かを判断する。ここでは、計数スイッチ47が操作されたか否かを判断する。
なお、計数スイッチ47が操作された場合には、遊技媒体数制御基板100の入力ポート101に計数スイッチ信号がオンとなって入力される。そして、入力ポート101に計数スイッチ信号がオンとなって入力された場合には、計数スイッチ信号がオンとなって入力された(計数スイッチ47が操作された)ことを示す情報(操作された場合には「1」、操作されていない場合には「0」)を遊技媒体数制御基板100のRWM103内の所定記憶領域に記憶する。なお、入力ポート101に入力された信号をRWM103に記憶するのは、1msごとのタイマ割込み処理で実行している。
ステップS703において計数スイッチ47が操作されたと判断したときはステップS704に進み、計数スイッチ47が操作されていないと判断したときはステップS712に進む。
【0433】
ステップS704では、遊技媒体数制御基板100の遊技媒体数記憶手段103aに記憶された(総)遊技媒体数が「0」であるか否かを判断する。遊技媒体数が「0」でないと判断したときはステップS705に進み、「0」であると判断したときはステップS712に進む。
このように、最初に計数スイッチ47が操作されたか否かを判断し、計数スイッチ47が操作されていない場合は計数処理を開始せず、計数スイッチ47が操作されている場合には、遊技媒体数記憶手段103aに記憶された(総)遊技媒体数が「0」であるか否かを判断する。そして、遊技媒体数記憶手段103aに記憶された(総)遊技媒体数が「0」である場合は計数処理を開始せず、(総)遊技媒体数が「0」でない場合は計数処理を開始するように構成されている。
これにより、計数スイッチ47が操作されている状況と遊技媒体数記憶手段103aに記憶された(総)遊技媒体数が「0」である状況とを比較したときに、計数スイッチ47が操作されている状況の方が相対的に少ないため、計数スイッチ47が操作されているか否かを先に判断することで、計数処理での処理負担を軽減することが可能となる。
【0434】
ステップS705では、計数値(計数遊技媒体数)として「50」をセットする。
次にステップS706に進み、遊技媒体数記憶手段103aに記憶された遊技媒体数と計数値「50」とを比較する演算処理(減算する演算処理)を実行する。この演算処理の結果、遊技媒体数記憶手段103aに記憶された遊技媒体数が計数値以上であると判断したときはステップS708に進み、遊技媒体数記憶手段103aに記憶された遊技媒体数が計数値未満であると判断したときはステップS707に進む。
ステップS707では、遊技媒体数記憶手段103aに記憶された遊技媒体数を取得する。
次のステップS708では、計数値を保存する。この処理は、ステップS706で「Yes」と判断された(遊技媒体数が計数値以上であると判断された)ときは、ステップS705でセットした計数値「50」を計数値記憶領域に保存する。一方、ステップS706で「No」と判断されたとき(遊技媒体数が計数値未満であるとき)は、ステップS707で取得した、遊技媒体数記憶手段103aに記憶された遊技媒体数を計数値として計数値記憶領域に保存する。
【0435】
次のステップS709では、遊技媒体数記憶手段103aに記憶された(総)遊技媒体数を更新する。この処理は、遊技媒体数記憶手段103aに記憶された遊技媒体数から、計数値記憶領域に保存された計数値を減算する処理である。したがって、遊技媒体数記憶手段103aに記憶された遊技媒体数が「50」以上であると判断され、計数値記憶領域に「50」が記憶されているときは、遊技媒体数記憶手段103aに記憶された遊技媒体数から「50」を減算し、遊技媒体数を更新する。一方、遊技媒体数記憶手段103aに記憶された遊技媒体数が「50」未満であり、計数値記憶領域に、遊技媒体数記憶手段103aに記憶された遊技媒体数が記憶されているときは、遊技媒体数記憶手段103aに記憶された遊技媒体数は「0」に更新される。
次にステップS710に進み、計数累積値記憶領域に、計数値記憶領域に記憶されている計数値を加算して、計数累積値記憶領域に記憶された値を更新する。
次にステップS711に進み、計数を行うことが決まっているので、計数中フラグをセット(「FFh」を記憶)する。
【0436】
そして、ステップS712に進んで計数通知を出力する。具体的には、電文長として「0x07h」を出力し、コマンドとして「0x02h」を出力し、計数通番として、計数通番記憶領域に記憶されている計数通番を出力し、計数値として、計数値記憶領域に記憶されている計数値を出力し、計数累積値として、計数累積値記憶領域に記憶されている計数累積値を出力し、出力した各種データのチェックサム値(1バイト)を出力する。
その後、ステップS713に進み、計数値記憶領域に記憶されている計数値をクリアする。なお、計数累積値記憶領域に記憶されている値は、計数通知を出力する(した)タイミングではクリアしない。
【0437】
次にステップS714に進み、計数通番を更新する処理(「+1」にする処理)を実行する。なお、計数通番が「255(D)」であるときに「+1」をした結果は「0」となるため、「0」となった場合には、再度、計数通番を更新する処理(「+1」する処理)を実行する。換言すると、計数通番が「255」であるときは、計数通番を更新する処理を2回実行することにより、計数通番を「1」に更新する。また、計数通番が「255」未満の値(たとえば「10」)であるときには、計数通番を更新する処理(「+1」する処理)を実行した結果が「0」とならないため、計数通番を更新する処理は1回だけ実行する。上記例では、計数通番は「11」に更新される。
【0438】
また、計数中フラグに基づいた情報を主制御基板50に送信する。これにより、主制御基板50は、計数中であることを判断することができる。また、たとえば主制御基板50から副制御基板80に対して計数中であることを示す情報を送信することにより、副制御基板80により、計数中に対応した演出を行うことができる。
【0439】
なお、本実施形態では、設定変更モード中や設定確認モード中においても、計数スイッチ47の操作に基づく計数が可能である。
しかし、遊技媒体をベット可能な状況下で計数スイッチ47が操作された場合には、計数スイッチ47の操作に基づいた演出を実行するが、設定変更モード中や設定確認モード中に計数スイッチ47が操作された場合には、計数スイッチ47の操作に基づく演出を実行しないようにしてもよい。このように構成にするのは、設定変更モード中や設定確認モード中に計数スイッチ47が操作されるような場合には、ホール店員が計数している可能性が高いため(遊技者ではない可能性が高いため)である。
【0440】
一方、設定変更モード中や設定確認モード中に計数スイッチ47が操作された場合には、設定変更モード中や設定確認モード中の専用の画面を画像表示装置23に表示したり、音声を出力してもよい。このようにすれば、ホール店員に、必要な情報を提供することができる。さらに、設定変更モード中や設定確認モード中の専用の画面を表示しつつ、計数中であることを示す報知(たとえば「計数中です」と画面に表示すること)を行ってもよい。この場合の報知は、上述した(遊技者に対する)計数中の演出とは異なるように構成されている。このような報知により、注意喚起を行うことができる。
【0441】
また、本実施形態では、エラー中(予め定められた一部の(所定の)エラーでもよく、すべてのエラーでもよい。)であっても、計数スイッチ47の操作に基づく計数が可能である。
しかし、遊技媒体をベット可能な状況下で計数スイッチ47が操作された場合には、計数スイッチ47の操作に基づいた演出を実行するが、エラー中に計数スイッチ47が操作された場合には、計数スイッチ47の操作に基づく演出を実行しないようにしてもよい。このように構成にするのは、エラー中に計数スイッチ47が操作されるような場合には、不正行為が行われているおそれがあるためである。
なお、エラーには、復帰不可能エラー(たとえば、RWM異常エラーや乱数更新エラーなどの設定値の再設定(電源のオン/オフを含む)を必要とするエラー。)と復帰可能エラー(たとえば、フロントドアのドアオープンエラーなど)とが挙げられるが、エラーの種類に応じて計数処理が不可能な状況と可能な状況とを設けてもよい。たとえば、復帰不可能エラーの発生中は計数処理を不可能とし、復帰可能エラーの発生中は計数処理を可能とすることが挙げられる。
【0442】
一方、エラー中に計数スイッチ47が操作された場合には、エラー中の専用の画面を画像表示装置23で表示することや、音声を出力してもよい。このようにすれば、ホール店員に、必要な情報を提供することができる。さらに、エラー中の専用の画面を表示しつつ計数中であることを示す報知(たとえば「計数中です」と画面に表示すること)を行ってもよい。この場合の報知は、上述した(遊技者に対する)計数中の演出とは異なるように構成されている。このような報知により、注意喚起を行うことができる。なお、このときに、精算スイッチ46によるベット数の返却はできないように構成されていてもよい。
【0443】
また、本実施形態では、遊技中(たとえばリール31が回転している状況下)においても計数スイッチ47の操作に基づく計数が可能である。
しかし、遊技媒体をベット可能な状況下で計数スイッチ47が操作された場合には、計数スイッチ47の操作に基づいた演出を実行するが、遊技中に計数スイッチ47が操作された場合には、計数スイッチ47の操作に基づく演出を実行しないようにしてもよい。このように構成にするのは、遊技中に計数スイッチ47が操作されるような場合には、不正行為が行われているおそれがあるためである。
【0444】
図38は、遊技機10と貸出ユニット200との貸出通知シーケンスを説明するタイムチャートである。
図38の例では、貸出スイッチ202のオンを検知する前(貸出スイッチ202の操作を受け付ける前)の状況として、遊技媒体数制御基板100の遊技媒体数記憶手段103aには遊技媒体数「10」が記憶され、貸出ユニット200の貸出可能遊技媒体数記憶手段206には貸出可能遊技媒体数「120」が記憶されている状況下であるものとする。なお、遊技媒体数制御基板100の遊技媒体数記憶手段103aに記憶された遊技媒体数が「50」未満であるため、計数スイッチ47が操作されると「10」が計数される状況でもある。
【0445】
遊技機10と貸出ユニット200の起動が完了しており、遊技機10と貸出ユニット200との通信が可能な状況下において、貸出ユニット200の貸出スイッチ202のオンを検知した後(操作を受け付けた後)に、遊技機10から、遊技機情報通知として通番「n」、遊技媒体数「10」の遊技機情報通知が送信された例を示している。
次に、計数通知として計数通番「m」、計数遊技媒体数「0」を送信する。この計数通知を受信した後、貸出通知として貸出通番「k」、貸出遊技媒体数「50」を送信する。貸出ユニット200は、貸出遊技媒体数「50」を送信した後は、貸出可能遊技媒体数を「120-50=70」に更新する。なお、貸出ユニット200が貸出可能遊技媒体数を更新するタイミングは、貸出受領結果応答を受信したタイミングであってもよい。
【0446】
遊技機10は、貸出通知を受信すると、貸出通知が示す情報と前回の貸出通知が示す情報との整合性をチェックし、チェック結果が正常の場合には(この例では正常であるものとする)、貸出受領結果応答として貸出通番「k」、貸出点受領結果「正常」を貸出ユニット200に送信する。
次に、遊技機10は、貸出通知を受信してから貸出受領結果応答を送信するまでの間に遊技媒体数を「10+50=60」に更新する。
遊技機10が次に貸出ユニット200に対して遊技機情報通知を送信するタイミングでは、遊技機情報通知として通番「n+1」、遊技媒体数「60」を貸出ユニット200に送信する。さらに、計数通知として、計数通番「m+1」、計数遊技媒体数「0」、計数累積遊技媒体数「0」を送信する。
【0447】
この時点において、貸出ユニット200の貸出スイッチ202のオンが継続して検知されているときは、貸出ユニット200から遊技機10に対する貸出通知として貸出通番「k+1」、貸出遊技媒体数「50」を遊技機10に送信する(図中、「*1」)。そして、貸出可能遊技媒体数を「70-50=20」に更新する。さらに、遊技機10から貸出ユニット200に対する貸出受領結果応答として貸出通番「k+1」、貸出点受領結果「正常」(チェック結果は正常であったものとする)を送信する。また、遊技機10は、当該貸出通知を受信してから貸出受領結果応答を送信するまでの間に遊技媒体数を「60+50=110」に更新する。
一方、貸出ユニット200から遊技機10に対し、貸出通番「k+1」の貸出通知を送信するタイミングで、貸出スイッチ202のオフが検知されているときは、貸出遊技媒体数「0」の貸出通知を遊技機10に送信する(図中、「*2」)。この場合は、貸出可能遊技媒体数は「70」のままである。また、遊技機10の遊技媒体数も「60」のままである。
【0448】
なお、貸出ユニット200は、貸出スイッチ202がオフからオンになったことを検知する方法として、貸出通知を送信するごと(すなわち、「300」msごと)に貸出スイッチ202のレベルデータのオン/オフを判断してもよい。これに対し、本実施形態では、貸出通知を送信するごとに、貸出スイッチ202の立ち上がりデータのオン/オフを判断する。したがって、この場合は、貸出スイッチ202が継続してオンにされているときであっても最初に操作されたタイミングでのみ貸出操作を受け付けることになるため、貸出スイッチ202が継続してオンにされていても、2回目以降の貸出通知を送信するタイミングでは貸出遊技媒体数を「0」として送信する。よって、図38の例では、貸出通番「k+1」の貸出通知が送信されるタイミングで貸出スイッチ202のオンが継続して検知されている場合であっても、貸出遊技媒体数「0」の貸出通知を遊技機10に送信する。
【0449】
また、貸出スイッチ202のオンを検知したときの遊技機10から送信される計数通知として計数遊技媒体数が「1」以上であるとき(すなわち、貸出スイッチ202と計数スイッチ47との双方が操作されたとき)は、貸出ユニット200は、当該計数通知の直後に送信する貸出通知の貸出遊技媒体数を「0」とする。このときに受け付けた貸出スイッチ202については無効としてもよく、あるいは、貸出ユニット200が貸出スイッチ202の操作受付フラグを記憶しておき、計数通知の計数遊技媒体数が「0」となった後に送信する貸出通知において貸出遊技媒体数を「50」として送信してもよい。
さらにまた、貸出ユニット200が貸出スイッチ202の操作受付けフラグを記憶する場合に、貸出スイッチ202の操作受付けに関するフラグが記憶されているときに再度貸出スイッチ202が操作されたときは2回操作されたフラグに書き換えてもよいし、2回目以降の操作を無効にしてもよい。
【0450】
また、貸出ユニット200が貸出通知を遊技機10に送信し、遊技機10が貸出通知を受信したときは、遊技媒体数制御基板100のRWM103に設けられた貸出通知情報記憶領域に貸出通知の情報をすべて記憶する。これにより、遊技機10が貸出受領結果応答を送信する際に貸出点受領結果の情報を「正常」とするか「異常」とするかを判断することができる。
具体的には、貸出通知情報記憶領域に貸出通番として「k」を記憶しており、貸出ユニット200から送信された貸出通知の貸出通番が「k+1」である場合に、記憶している「k」をインクリメントして「k+1」を生成し、受信した貸出通番「k+1」と比較する。この場合、生成した貸出通番と受信した貸出通番とが一致しているので、受信した貸出通番「k+1」を貸出通知情報記憶領域に記憶する。
【0451】
また、貸出通知情報記憶領域に貸出通番として「k」を記憶しており、貸出ユニット200から送信された貸出通知の貸出通番が「k+2」である場合、記憶している「k」をインクリメントして「k+1」を生成し、受信した貸出通番「k+2」と比較する。この場合、生成した貸出通番と受信した貸出通番とが一致しないので、受信した貸出通番「k+2」を記憶しない(貸出通知情報記憶領域の貸出通番は「k」のままである。)。
また、貸出通番の上限は「255」であるため、貸出通番が「255」である状況でインクリメントすると、貸出通番は「0」となる。ただし、貸出通番「0」は貸出ユニット200の起動直後にのみ遊技機10に送信され得る貸出通番であるため、再度インクリメントして貸出通番を「1」とする。換言すれば、貸出通番が「255」の状況下で貸出通番を更新する際は、インクリメントを2回行うことにより、次の貸出通番を「1」にする。
【0452】
なお、上述した例では、遊技機10に記憶された貸出通番と受信した貸出通知の貸出通番とを比較する手法として、遊技機10に記憶された貸出通番をインクリメントしてから、貸出ユニット200から受信した貸出通番と一致するか否かを判断した。しかし、これに限らず、貸出ユニット200から受信した貸出通番をデクリメントしてから遊技機10が記憶している貸出通番と一致するか否かを比較してもよい。
また、貸出ユニット200から受信した貸出通番から遊技機10が記憶している貸出通番を減算し、結果が「1」となるか否かで判断してもよい。
【0453】
続いて、遊技機情報通知を送信するためのタイマ(以下、「遊技機情報通知タイマ」と称する。)について説明する。
図39は、遊技機情報通知タイマ及び遊技機情報通知要求フラグを示す図である。
遊技機情報通知タイマは、遊技機情報通知タイマA(_TM_INF_CTL_A )、遊技機情報通知タイマB(_TM_INF_CTL_B )、及び遊技機情報通知タイマC(_TM_INF_CTL_C )を備える。
遊技機情報通知タイマAは、ホールコン・不正監視情報を「300」msごとに送信するタイミングを判断するためのタイマである。
遊技機情報通知タイマBは、遊技機設置情報を「60」秒ごとに送信するタイミングを判断するためのタイマである。
遊技機情報通知タイマCは、遊技機性能情報を「180」秒ごとに送信するタイミングを判断するためのタイマである。
【0454】
遊技媒体数制御基板100のRWM103に、遊技機情報通知タイマA~Cの各記憶領域が設けられ、各記憶領域にはタイマ値が記憶される。
遊技機情報通知タイマAの記憶領域は「2」バイトからなり、遊技機情報通知タイマB及びCは「1」バイトからなる。
遊技機情報通知タイマA~Cの各記憶領域は、電源投入時に初期化(クリア、「0」が記憶)される。
なお、上述したように、役比モニタ113の点滅切替え周期は「300」msであり、点滅切替え時間を管理するタイマ領域として、RWM103に「点滅切替え時間(_TM_CHG_FLS )」を備え、さらに、点灯であるか消灯であるかを判断するためのフラグとして、RWM103に「点滅切替えフラグ(_FL_CHG_FLS )」を備えている。
一方、遊技機情報通知タイマAは、点滅切替え周期と同じ「300」msを計測するものの、点滅切替え時間とは別個のタイマ領域となっている。
【0455】
以下の説明では、遊技機情報通知タイマAの記憶領域、遊技機情報通知タイマBの記憶領域、遊技機情報通知タイマCの記憶領域を、それぞれ単に遊技機情報通知タイマA、遊技機情報通知タイマB、遊技機情報通知タイマCと略称する。
さらに、遊技機情報通知タイマAの記憶領域に記憶された値、遊技機情報通知タイマBの記憶領域に記憶された値、遊技機情報通知タイマCの記憶領域に記憶された値を、それぞれ単に遊技機情報通知タイマAの値、遊技機情報通知タイマBの値、遊技機情報通知タイマCの値と略称する。
【0456】
第2実施形態では、遊技媒体数制御基板100のCPU105は、「1」msごとにタイマ割込み処理を実行する。そして、このタイマ割込みが行われるごと(「1」msごと)に遊技機情報通知タイマAの値が更新される。
遊技機情報通知タイマAは、デクリメントタイマであり、上述のように電源投入時にはその値として「0」が記憶される。遊技機情報通知タイマAの値は、「0」~「300(D)」の範囲を循環する。
したがって、遊技機情報通知タイマAの値は、電源投入時は「0」にされ、最初のタイマ割込みが実行されると、「300」に更新され、さらに次のタイマ割込みが実行されると「299」に更新される。
さらに、電源投入時のように更新前の値が「0」である状況下の割込み処理において「1」減算されると「300」に更新され、次の割込み処理で「1」減算されると「299」に更新される。
これに対し、更新前の値が「1」である割込み処理において、「1」減算されると減算結果は「0」になるが、この場合には当該割込み処理ですぐに「300」が記憶される。
したがって、
「0」→「300」→「299」→・・・→「2」→「1」→(「0」→)「300」→「299」→・・・
のように更新される。
【0457】
遊技機情報通知タイマBは、インクリメントタイマであり、上述のように電源投入時にはその値として「0」が記憶される。遊技機情報通知タイマBの値は、「0」~「199(D)」の範囲を循環する。
したがって、
「0」→「1」→「2」→・・・→「198」→「199」→「0」→「1」→・・・
のように更新される。
遊技機情報通知タイマBの値は、遊技機情報通知タイマAの値が「300」となったときに「+1」される。ただし、電源投入時に遊技機情報通知タイマAの値が初期化されることにより「0」が記憶され、最初のタイマ割込み処理で遊技機情報通知タイマAの値が「300」になったときは、遊技機情報通知タイマBの値は更新されずに「0」のままである。この制御については後述する。
【0458】
遊技機情報通知タイマCは、インクリメントタイマであり、上述のように電源投入時にはその値として「0」が記憶される。遊技機情報通知タイマCの値は、「0」~「2(D)」の範囲を循環する。
したがって、
「0」→「1」→「2」→「0」→「1」→・・・
のように更新される。
遊技機情報通知タイマCの値は、遊技機情報通知タイマBの値が「0」になったときに「+1」される。ただし、電源投入時に遊技機情報通知タイマBの値が初期化されることにより「0」が記憶されたときは、遊技機情報通知タイマCの値についても初期化された「0」のままであり、この時点では「1」に更新されることはない。
【0459】
遊技機情報通知要求フラグ(_FL_INF_CTL )とは、遊技機性能情報を通知するタイミング(180秒ごとのタイミング)であるか否か、及び遊技機設置情報を通知するタイミング(60秒ごとのタイミング)であるか否かを示すフラグであり、遊技媒体数制御基板100のRWM103において1バイトの記憶領域として設けられている。
遊技機情報通知要求フラグは、電源が投入されたときの初期化処理によって、初期値(全ビット「0」)が記憶される。
遊技機情報通知要求フラグとして、遊技機性能情報通知要求フラグと、遊技機設置情報通知要求フラグとを備える。
【0460】
遊技機性能情報通知要求フラグとは、遊技機情報通知のうち遊技機性能情報を送信する周期(タイミング)が到来したときに「0」から「1」となるフラグであり、遊技機情報通知要求フラグの「D0」ビットを使用する。「D0」ビットが「1」であるときは遊技機性能情報を送信する周期が到来していることを示し、「0」であるときは遊技機性能情報を送信する周期が到来していないことを示す。また、遊技機性能情報通知が送信されたときは、「1」から「0」に更新される。
また、遊技機設置情報通知要求フラグとは、遊技機情報通知のうち遊技機設置情報を送信する周期(タイミング)が到来したときに「0」から「1」となるフラグであり、遊技機情報通知要求フラグの「D1」ビットを使用する。「D0」ビットが「1」であるときは遊技機設置情報を送信する周期が到来していることを示し、「0」であるときは遊技機設置情報を送信する周期が到来していないことを示す。また、遊技機設置情報通知が送信されたときは、「1」から「0」に更新される。
なお、遊技機性能情報通知要求フラグを1バイトの記憶領域とし、遊技機設置情報通知要求フラグを他の1バイトの記憶領域とすることも可能である。ただし、本実施形態のように遊技機情報通知要求フラグを1バイトの記憶領域として設け、この1バイト記憶領域のビットに遊技機性能情報通知要求フラグと遊技機設置情報通知要求フラグとを割り当てれば、記憶容量を削減することができる。
【0461】
図40は、遊技機情報通知タイマA、B、及びCの各値の更新シーケンスを示すタイムチャートである。
図40中、遊技機情報通知タイマAの値に基づくホールコン・不正監視情報を含む遊技機情報通知を「通知A」と称し、遊技機情報通知タイマBの値に基づく遊技機設置情報を含む遊技機情報通知を「通知B」と称し、遊技機情報通知タイマCの値に基づく遊技機性能情報を含む遊技機情報通知を「通知C」と称する。
まず、遊技機10の電源が投入されると、遊技媒体数制御基板100のRWM103の初期化処理が実行され、これによって遊技機情報通知タイマA、B、及びCの各値がクリアされる(「0」が記憶される)。
【0462】
遊技媒体数制御基板100のCPU105は、フラグレジスタ(Fレジスタ)を備える。フラグレジスタには、キャリーフラグ(CY)及びゼロフラグ(Z)を備える。なお、フラグレジスタには、これらのフラグ以外のフラグも備えているが、本実施形態では説明を省略する。
キャリーフラグは、演算処理の結果、「0」未満となったとき、換言すれば桁下がりが生じたときに「1」になるフラグである。
また、ゼロフラグは、演算処理の結果、「0」となったときに「1」になるフラグである。
【0463】
キャリーフラグ及びゼロフラグについて、具体例を挙げると、以下の通りである。
例1)遊技機情報通知タイマAの値が「10」であるときに「1」減算されると、遊技機情報通知タイマAの値は「9」に更新される。このとき、ゼロフラグ及びキャリーフラグは変化しない(「0」のままである)。
例2)遊技機情報通知タイマAの値が「1」であるときに「1」減算されると、遊技機情報通知タイマAの値は「0」に更新される。これにより、ゼロフラグは「1」となる。一方、キャリーフラグは変化しない(「0」のままである)。ここで、本実施形態の演算処理では、遊技機情報通知タイマAの値が「1」から「0」に更新され、ゼロフラグが「1」となったときは、その直後に(「1」を減算した結果、「0」に更新された割込み処理中に)「300」に更新される。
【0464】
例3)遊技機情報通知タイマAの値が「0」であるときに「1」減算されると、遊技機情報通知タイマAの値は「300」に更新される。このとき、ゼロフラグは変化しない(「0」のままである)。一方、キャリーフラグは「1」となる。
なお、減算前の遊技機情報通知タイマAの値が「0」であるのは、電源投入後に初期化されたときのみである。したがって、電源投入後の最初の割込み処理において遊技機情報通知タイマAの値が「0」から「300」に更新されたときにキャリーフラグが「1」になる。
【0465】
遊技機情報通知タイマAの値を更新した結果、キャリーフラグ又はゼロフラグのいずれかが「1」となったときは、通知Aの送信タイミングが到来したと判断する。これにより、遊技機10は、貸出ユニット200に対し、通知Aを送信可能とする。図40では、電源のオンにより遊技機情報通知タイマAが初期化されて「0」になった後、最初の割込み処理により遊技機情報通知タイマAの値が「0」から「300」に更新され、キャリーフラグ(CY)が「1」となったときに通知Aが送信されることを示している(図中、「*1」)。
【0466】
次に、「1」msごとに割込みが実行され、遊技機情報通知タイマAの値が「299」、「298」、・・・と更新されていくが、キャリーフラグ又はゼロフラグのいずれかが「1」にならなければ、通知Aの送信タイミングが到来したと判断されないので、通知Aは送信されない。「60」秒及び「180」秒も「300」msの倍数であるから、当然に、通知Bや通知Cも送信されない。
なお、上述したように、電源投入後の最初の割込み処理でのみ、遊技機情報通知タイマAの値の更新によりキャリーフラグが「1」となるが、その後に、遊技機情報通知タイマAの値の更新によりキャリーフラグが「1」になることはない。
【0467】
最初の通知Aが送信されたとき(図中、「*1」)から割込み回数が「300」回に到達すると(すなわち、「300」msを経過すると)、遊技機情報通知タイマAの値は、「1」から「0」に更新され(さらに「300」に更新され)、ゼロフラグ(Z)が「1」になる。したがって、通知Aの送信タイミングが到来したと判断する。これにより、遊技機10は、貸出ユニット200に対し、通知Aを送信する(図中、「*2」)。
【0468】
次に、最初の通知Aの送信時(図中「*1」)から割込み回数が「6000」回となったとき、すなわち「60」秒経過時には、以下のようにタイマ値等が更新される。
第1に、遊技機情報通知タイマAの値が「1」から「0」に更新され(さらに「300」に更新され)、ゼロフラグ(Z)が「1」になる(図中、「*3」)。したがって、通知Aの送信タイミングが到来したと判断する。
第2に、遊技機情報通知タイマBが「199」から「0」に更新される。遊技機情報通知タイマBの値が更新された結果、「0」となったときは、通知Bの送信タイミングが到来したと判断し、遊技機設置情報通知要求フラグ(D1ビット)は「1」に更新される。
【0469】
この時点では、通知Aの送信タイミングが到来し、かつ、通知Bの送信タイミングが到来している。したがって、通知Bが通知Aよりも優先して送信されることから、このタイミングでは通知Bが送信される(図中、「*4」)。通知Bが送信されると、遊技機設置情報通知要求フラグ(D1ビット)は「0」に更新される。
そして、そのタイミングから「300」ms経過後に、遊技機情報通知タイマAの値が再度「1」から「0」に更新され(さらに「300」に更新され)、ゼロフラグ(Z)が「1」になる。ゼロフラグ(Z)が「1」になったことに基づいて、通知Aの送信タイミングが到来したと判断し、通知Aが送信される(図中、「*5」)。
【0470】
このように、図中「*3」の送信タイミングにおいて、通知Bの送信が優先されるときは、そのタイミングでは通知Aが送信されず、そのタイミングから「300」ms経過後の「*5」のタイミングで通知Aが送信される。
ここで、図中「*5」のタイミングで通知Aが送信されるときは、その送信直前に取得されたホールコン・不正監視情報が所定の送信用レジスタに記憶され、そのホールコン・不正監視情報を含む遊技機情報通知が送信される。
換言すれば、図中「*3」の送信タイミングでホールコン・不正監視情報が取得され、所定の送信用レジスタに記憶された後、図中「*5」のタイミングで当該ホールコン・不正監視情報が送信されるのではない。
【0471】
図中「*3」の送信タイミングで通知Aが送信されないと判断されたときは、その時点でのホールコン・不正監視情報を所定の送信用レジスタに記憶しないように構成してもよい。ただし、処理の簡素化から、通知Aの送信タイミングが到来したときは、一律、その時点でのホールコン・不正監視情報を所定の送信用レジスタに記憶する。そして、「300」msごとに、換言すればゼロフラグ(Z)が「1」になるごとに、その時点でのホールコン・不正監視情報を所定の送信用レジスタに記憶(上書き)すればよい。
【0472】
次に、最初の通知Aの送信時(図中「*1」)から割込み回数が「18000」回となったとき、すなわち「180」秒経過時には、以下のようにタイマ値等が更新される。
第1に、遊技機情報通知タイマAの値が「1」から「0」に更新され(さらに「300」に更新され)、ゼロフラグ(Z)が「1」になる(図中「*6」)。ゼロフラグ(Z)が「1」になったことに基づいて、通知Aの送信タイミングが到来したと判断する。
【0473】
第2に、遊技機情報通知タイマBが「199」から「0」に更新される。遊技機情報通知タイマBの値が更新された結果、「0」となったときは、通知Bの送信タイミングが到来したと判断し、遊技機設置情報通知要求フラグ(D1ビット)は「1」に更新される(図中「*7」)。
第3に、遊技機情報通知タイマCが「2」から「0」に更新される。遊技機情報通知タイマCの値が更新された結果、「0」となったときは、通知Cの送信タイミングが到来したと判断し、遊技機性能情報通知要求フラグ(D0ビット)は「1」に更新される(図中「*8」)。
【0474】
この時点では、通知Aの送信タイミングが到来し、通知Bの送信タイミングが到来し、かつ、通知Cの送信タイミングが到来している。したがって、通知A、通知B、及び通知Cの送信タイミングがすべて重なっている。この場合には、通知Bが第1優先で送信されることから、このタイミングでは通知Bが送信される(図中「*7」)。換言すれば、当該タイミングでは通知A及び通知Cは送信されない。通知Bが送信されると、遊技機設置情報通知要求フラグ(D1ビット)は「0」に更新される。なお、この時点では通知Cは送信されていないので、遊技機性能情報通知要求フラグ(D0ビット)は「1」のままである。
【0475】
このタイミングから「300」msが経過し、遊技機情報通知の送信タイミングが到来すると、遊技機情報通知タイマAの値が「1」から「0」に更新され(さらに「300」に更新され)、ゼロフラグ(Z)が「1」になる(図中、「*9」)。ゼロフラグ(Z)が「1」になったことに基づいて、通知Aの送信タイミングが到来したと判断される。
また、このタイミングでは、遊技機性能情報通知要求フラグ(D0ビット)は「1」となっている。よって、通知Cの送信タイミングが到来している。そして、通知Aと通知Cの送信タイミングが重なったときは、通知Cの送信が優先されるので、通知Cが送信される(図中「*10」)。換言すれば、当該タイミングでは通知Aは送信されない。通知Cが送信されると、遊技機性能情報通知要求フラグ(D0ビット)は「0」に更新される。
【0476】
この時点から「300」msを経過すると、遊技機情報通知タイマAの値が「1」から「0」に更新され(さらに「300」に更新され)、ゼロフラグ(Z)が「1」になる(図中「*11」)。ゼロフラグ(Z)が「1」になったことに基づいて、通知Aの送信タイミングが到来したと判断される。さらに、この時点では、遊技機設置情報通知要求フラグ(D1ビット)及び遊技機性能情報通知要求フラグ(D0ビット)はいずれも「0」であるので、通知Bの送信タイミングでなく、かつ、通知Cの送信タイミングでもない。したがって、このタイミングでは、通知Aが送信される(図中「*11」)。
【0477】
図中「*11」のタイミングで通知Aが送信されるときは、その送信直前に取得されたホールコン・不正監視情報が所定の送信用レジスタに記憶され、そのホールコン・不正監視情報を含む遊技機情報通知が送信される。換言すれば、図中「*6」や「*9」のタイミングで取得されたホールコン・不正監視情報ではない。
【0478】
以上のように、キャリーフラグ又はゼロフラグのいずれか一方が「1」になったときに、通知Aの送信タイミングが到来したと判断する。
したがって、上述した役比モニタ113において、点滅切替え時間を更新した結果、キャリーフラグが「0」になったときに点灯と消灯とを切り替える制御とは相違する。
【0479】
図41は、遊技機情報管理を示すフローチャートである。
ここで、「遊技機情報管理」とは、遊技機10から遊技機情報通知を貸出ユニット200に送信するための制御処理である。図41の処理は、遊技媒体数制御基板100によって実行されるタイマ割込み処理内の1つのサブルーチンである。換言すると、タイマ割込み処理が実行されるごとに(「1」msの周期で)、遊技機情報管理が実行される。
まず、ステップS721では、遊技機情報通知タイマAから「1」を減算する(遊技機情報通知タイマAを更新する)。次にステップS722に進み、更新前の遊技機情報通知タイマAの値が「0」であるか否かを判断する。ステップS721の減算処理においてキャリーフラグが「1」となったときは、更新前の遊技機情報通知タイマAの値が「0」であると判断する。なお、更新前の遊技機情報通知タイマAの値が「0」であったためにキャリーフラグが「1」となるのは、電源投入時に遊技機情報通知タイマAの値が「0」にされた(初期化された)後に「1」減算された場合に相当する。更新前の遊技機情報通知タイマAが「0」であると判断したときはステップS733に進み、「0」でないと判断したときはステップS723に進む。
【0480】
ステップS723では、更新前の遊技機情報通知タイマAの値が「1」であるか否かを判断する。換言すれば、更新によって遊技機情報通知タイマAの値が「0」なったか否か、さらに換言すれば、更新によってゼロフラグが「1」となったか否かを判断する。更新前の遊技機情報通知タイマAの値が「1」であると判断したときはステップS724に進み、「0」でないと判断したときは本フローチャートによる処理を終了する。
更新前の遊技機情報通知タイマAの値が「1」であるときは、「300」ms周期のタイミング、すなわちホールコン・不正監視情報を含む遊技機情報通知の送信タイミングであることを意味する。
【0481】
一方、通知Aの送信タイミングでないときは、「300」ms周期のタイミングではないので、「60」秒周期の送信タイミングでもなく、かつ、「180」秒周期の送信タイミングでもない。換言すれば、遊技機設置情報を含む遊技機情報通知の送信タイミングでもなく、かつ、遊技機性能情報を含む遊技機設置情報の送信タイミングでもない。したがって、ホールコン・不正監視情報を含む遊技機設置情報の送信タイミングでないと判断したときは、遊技機設置情報を含む遊技機情報通知の送信タイミングであるか否かや、遊技機性能情報を含む遊技機設置情報の送信タイミングであるか否かを判断することなく、遊技機情報管理を終了するようにしている。これにより、プログラム処理を簡素化できるとともに、遊技機情報管理の高速化を図ることができる。
【0482】
ステップS724では、遊技機情報通知タイマAの値に初期値を保存する。ここで、初期値は「300(D)」である。本実施形態における遊技媒体数制御基板100のタイマ割込みの周期は「1」msであるため、遊技機情報通知タイマAの値として「300(D)」を記憶することで、「300」msのカウントが可能となっている。したがって、ステップS721における減算で演算結果が「0」になったときは、すぐにステップS724で「300」が記憶される。
なお、たとえば遊技媒体数制御基板100のタイマ割込みの周期が「2」msである場合には、遊技機情報通知タイマAに「150(D)」を記憶すればよい。
また、たとえば遊技媒体数制御基板100のタイマ割り込みの周期を「2.235」msとした場合は、遊技機情報通知タイマAに「135」~「138」の範囲のいずれかの値を記憶すればよい。このように、「遊技機情報通知の送信周期/タイマ割込み周期」が整数にならない場合(割り切れない場合)は、遊技機情報通知の送信タイミングが「300」ms~「310」msの間となる任意の値を初期値に設定することができる。
【0483】
なお、上述したステップS721の演算命令としては、DCPWLD命令が挙げられる。DCPWLD命令は、「1」減算した結果としてキャリーフラグが「1」となった場合に、所定値を記憶する命令である。本実施形態における所定値は「300」としている。したがって、電源投入後、遊技機情報通知タイマAが初期化されて「0」にされた後、最初の割込み処理における遊技機情報管理処理において、ステップS721で「1」が減算されると、キャリーフラグが「1」となり、所定値「300」が記憶される。
このように、電源投入時の初期化処理により、遊技機情報通知タイマAの値が「0」にされるが、それ以外は、ステップS721の処理後からステップS724の処理前の期間を除き、遊技機情報通知タイマAの値が「0」になることはない(異常時を除く)。
【0484】
次のステップS725では、遊技機情報通知タイマBの値を「1」加算する処理を実行する。ここでの加算処理は、特殊加算命令が用いられる。具体的には、遊技機情報通知タイマBに「199」未満の値が記憶されているときは遊技機情報通知タイマBの値に「1」を加算し、遊技機情報通知タイマBの値が「199」未満でないとき(すなわち、正常動作状況下において「199」が記憶されているとき)は、遊技機情報通知タイマBに「0」を記憶する演算処理である。
【0485】
具体例を挙げると、以下の通りである。
例1)遊技機情報通知タイマBに「0」が記憶されている場合において、「1」を加算する特殊加算命令を用いた演算処理を行うと、「1」となる。
例2)遊技機情報通知タイマBに「100」が記憶されている場合において、「1」を加算する特殊加算命令を用いた演算処理を行うと、遊技機情報通知タイマBは「101」となる。
例3)遊技機情報通知タイマBに「199」が記憶されている場合において、「1」を加算する特殊加算命令を用いた演算処理を行うと、遊技機情報通知タイマBの値は「200」にならずに「0」になる。たとえば、上述した図40中、「*4」のタイミングにおける演算に相当する。
【0486】
このように、遊技機情報通知タイマBに「1」を加算する特殊加算命令を用いた演算処理を行うと、遊技機情報通知タイマBの値として「0」~「199」を循環させることができる。
また、遊技機情報通知タイマBに「199」が記憶されているときに「1」を加算する状況とは、遊技機情報通知タイマAが「0」となった契機が「200」回到来した状況に相当する。換言すれば、割込み処理が「300」回実行されるごとに遊技機情報通知タイマBが「1」ずつ加算されるため、「300回×200回=60000回」の割込み処理が実行された(「60」秒が経過した)状況である。
【0487】
そして、本来であれば、「60000」回の割込み処理が実行されたか否かを計測するためには「2」バイトの記憶領域を設けなければならない。しかし、遊技機情報通知タイマAの値に基づいて遊技機情報通知タイマBを更新することにより、遊技機情報通知タイマBの記憶領域を「1」バイトとすることができ、RWM103の記憶容量を削減することができる。
また、遊技機情報通知タイマBに「1」加算する演算命令としては、ICPLD命令が挙げられる。
なお、上記例では遊技機情報通知タイマBに「1」加算する命令を実行しているが、「1」減算する命令としてもよい。減算命令の場合は、電源投入時に遊技機情報通知タイマBに初期値として「200」を記憶し、その後「0」となったときに「200」を記憶してもよい。あるいは、電源投入時に遊技機情報通知タイマBに初期値として「199」を記憶し、その後、キャリーフラグが「1」となったときに「200」を記憶してもよい。
【0488】
また、遊技機情報通知タイマBの更新を加算命令としているため、減算命令にした場合と比べて、初期値をセットする処理を省略できる(電源投入時の初期化処理により初期値は「0」となる)分、処理速度の向上やプログラム容量を削減することができる。
【0489】
ステップS726では、遊技機情報通知タイマBの時間が経過したか否かを判断する。ここでは、遊技機情報通知タイマBの値が「1」加算により「0」となったときは、遊技機情報通知タイマBの時間が経過したと判断する。一方、遊技機情報通知タイマBの値が「1」加算により「0」にならなかったときは、遊技機情報通知タイマBの時間が経過していないと判断する。
遊技機情報通知タイマBの時間が経過したと判断したときはステップS727に進み、経過していないと判断したときはステップS731に進む。
ステップS727では、遊技機情報通知タイマCに「1」加算する処理を実行する。
ここでの加算処理は、特殊加算命令が用いられる。具体的には、遊技機情報通知タイマBに「2」未満の値が記憶されているときは遊技機情報通知タイマCの値に「1」を加算し、遊技機情報通知タイマCの値が「2」未満でないとき(すなわち、正常動作状況下において「3」が記憶されているとき)は、遊技機情報通知タイマCに「0」を記憶する演算処理である。
【0490】
具体例を挙げると、以下の通りである。
例1)遊技機情報通知タイマCに「0」が記憶されている場合において、「1」を加算する特殊加算命令を用いた演算処理を行うと、「1」となる。
例2)遊技機情報通知タイマCに「1」が記憶されている場合において、「1」を加算する特殊加算命令を用いた演算処理を行うと、遊技機情報通知タイマCは「2」となる。
例3)遊技機情報通知タイマCに「2」が記憶されている場合において、「1」を加算する特殊加算命令を用いた演算処理を行うと、遊技機情報通知タイマBの値は「3」にならずに「0」になる。たとえば、上述した図40中、「*8」のタイミングにおける演算に相当する。
【0491】
このように、遊技機情報通知タイマCに「1」を加算する特殊加算命令を用いた演算処理を行うと、遊技機情報通知タイマCの値として「0」~「2」を循環させることができる。
また、遊技機情報通知タイマCに「2」が記憶されているときに「1」を加算する状況とは、遊技機情報通知タイマBが「0」となった契機が「3」回到来した状況に相当する。換言すれば、割込み処理が「300」回実行されるごとに遊技機情報通知タイマBが「1」加算され、遊技機情報通知タイマBが「200」回更新されるごとに遊技機情報通知タイマCに「1」が加算されることから、「300回×200回×3回=180000回」の割込み処理が実行された(「180」秒が経過した)状況である。
【0492】
そして、本来であれば、「180000」回の割込み処理が実行されたか否かを計測するためには「3」バイトの記憶領域を設けなければならないが、遊技機情報通知タイマAの値に基づいて遊技機情報通知タイマBの値を更新し、さらに遊技機情報通知タイマBの値に基づいて遊技機情報通知タイマCの値を更新するので、遊技機情報通知タイマCの記憶領域を「1」バイトとすることができ、RWM103の記憶容量を削減することができる。
また、遊技機情報通知タイマCに「1」加算する演算命令としては、上述したICPLD命令が挙げられる。
なお、上記例では遊技機情報通知タイマCに「1」加算する命令を実行しているが、減算命令としてもよい。減算命令の場合は、電源投入時に遊技機情報通知タイマCの値として初期値「3」を記憶し、その後「0」となったときに「3」を記憶してもよい。あるいは、電源投入時に遊技機情報通知タイマCの値として初期値「2」を記憶し、その後、キャリーフラグが「1」となったときに「3」を記憶してもよい。
【0493】
ただし、本実施形態のように、遊技機情報通知タイマCの更新を加算命令とすれば、減算命令にした場合と比べて、初期値をセットする処理を省略できる(電源投入時の初期化処理により初期値は「0」となる)分、処理速度の向上やプログラム容量を削減することができる。
【0494】
ステップS728では、遊技機情報通知タイマCの時間が経過したか否かを判断する。ここでは、遊技機情報通知タイマCの値が「1」加算により「0」となったときは、遊技機情報通知タイマCの時間が経過したと判断する。一方、遊技機情報通知タイマCの値が「1」加算により「0」にならなかったときは、遊技機情報通知タイマCの時間が経過していないと判断する。
遊技機情報通知タイマCの時間が経過したと判断したときはステップS729に進み、経過していないと判断したときはステップS730に進む。
【0495】
なお、ステップS726で「Yes」と判断されたときに限り、ステップS727の処理を実行するようにしている。遊技機情報通知タイマCを更新するタイミングは、遊技機情報通知タイマBが「0」になったときに限られるからである。さらに、その次のステップS728において遊技機情報通知タイマCの時間が経過したか否かを判断するのは、ステップS726で「Yes」と判断された場合に限られる。遊技機情報通知タイマCの時間が経過したか否かは、「180」秒の周期が到来したか否かであり、「180」秒の周期が到来するのは、必ず「60」秒の周期が到来している(遊技機情報通知タイマBの時間が経過している)からである。
【0496】
ステップS729では、遊技機性能情報通知要求フラグをセットする。この処理は、遊技機情報通知要求フラグの「D0」ビットに「1」を記憶する処理である。次のステップS730では、遊技機設置情報通知要求フラグをセットする。この処理は、遊技機情報通知要求フラグの「D1」ビットに「1」を記憶する処理である。
すなわち、遊技機情報通知タイマCの時間が経過したと判断されたときは、「180」秒の周期が到来したときであり、「180」秒の周期には「60」秒の周期が含まれるため、遊技機性能情報を通知するタイミングが到来し、かつ遊技機設置情報を通知するタイミングが到来したときである。したがって、遊技機情報通知要求フラグの「D0」及び「D1」ビットの双方を「1」にする。
【0497】
これに対し、ステップS726において遊技機情報通知タイマBの時間が経過したと判断され、かつ、遊技機情報通知タイマCの時間が経過していないと判断されたときは、「60」秒の周期(遊技機設置情報を通知するタイミング)が到来しているが、「180」秒の周期(遊技機性能情報を通知するタイミング)が到来していないときである。したがって、この場合には、ステップS729の処理を実行せず、ステップS730の処理のみを実行し、遊技機情報通知要求フラグの「D1」ビットだけを「1」にする。
【0498】
このように、遊技機設置情報を送信するタイミング、及び遊技機性能情報を送信するタイミングをフラグで管理するため、ホールコン・不正監視情報と、遊技機設置情報と、遊技機性能情報とを送信する処理を簡略化できる。換言すれば、各種情報に対応したタイマを連動させることで、個別に管理することなく送信することが可能となる。さらに、ホールコン・不正監視情報と、遊技機設置情報と、遊技機性能情報とを送信するためのタイマの計測開始タイミングがずれることがないため、正確に送信することが可能となる。
【0499】
次のステップS731では、遊技機設置情報の通知要求があるか否かを判断する。ここでは、遊技機設置情報通知要求フラグがセットされているか否かを判断する。したがって、遊技機情報通知要求フラグの「D1」ビットが「1」であれば遊技機設置情報の通知要求があると判断し、遊技機情報通知要求フラグの「D1」ビットが「1」でなければ遊技機設置情報の通知要求がないと判断する。
遊技機設置情報の通知要求があると判断したときはステップS734に進み、遊技機設置情報の通知要求がないと判断したときはステップS732に進む。
ステップS732では、遊技機性能情報の通知要求があるか否かを判断する。ここでは、遊技機性能情報通知要求フラグがセットされているか否かを判断する。したがって、遊技機情報通知要求フラグの「D0」ビットが「1」であれば遊技機性能情報の通知要求があると判断し、遊技機情報通知要求フラグの「D0」ビットが「1」でなければ遊技機性能情報の通知要求がないと判断する。
遊技機性能情報の通知要求があると判断したときはステップS736に進み、遊技機性能情報の通知要求がないと判断したときはステップS733に進む。
【0500】
ステップS733では、ホールコン・不正監視情報の送信処理を実行する。ここでは、遊技媒体数制御基板100のRWM103に記憶されているホールコン・不正監視情報を取得し、当該情報を送信用レジスタに記憶し、当該情報を送信する。そして、送信後、本フローチャートによる処理を終了する。
なお、ステップS722において、遊技機情報通知タイマAの更新前の値が「0」であると判断したときは、遊技機情報通知タイマBや遊技機情報通知タイマCの時間が経過したか否かの判断(ステップS726やステップS728の処理)を実行することなく、ホールコン・不正監視情報の送信処理を実行する。その理由は、遊技機情報通知タイマAの更新前の値が「0」であるのは、電源投入直後の最初の割込み処理での減算処理時に限られるからである。換言すれば、電源投入直後の最初の割込み処理での減算処理時に、「60」秒や「180」秒が経過していることはあり得ないからである。このような場合には、遊技機情報通知タイマBや遊技機情報通知タイマCの時間が経過したか否かの判断を実行することなくホールコン・不正監視情報の送信処理を実行することで、処理の迅速化(送信処理の高速化)を図ることができる。
【0501】
また、ステップS731で遊技機設置情報の通知要求があるか否かを判断し、遊技機設置情報の通知要求がないと判断したときは、ステップS732に進んで遊技機性能情報の通知要求があるか否かを判断する処理順序となっている。このような処理順序にすることにより、遊技機設置情報通知要求フラグと遊技機性能情報通知要求フラグの両方がセットされている状況(「180」秒周期が到来した状況)においては、先に、遊技機設置情報の通知要求があるか否かを判断することにより、遊技機性能情報の送信処理よりも先に遊技機設置情報の送信処理を実行できる(優先できる)ように構成している。
【0502】
さらにまた、上述したように、ステップS733におけるホールコン・不正監視情報の送信では、その時点での最新の情報が送信される。
たとえば、ホールコン・不正監視情報に含まれる(総)遊技媒体数は、送信時点における遊技媒体数記憶手段103a(_NB_MEDAL )に記憶されている情報を送信する。換言すれば、ホールコン・不正監視情報の送信タイミングである「300」msごとの送信タイミングにおいて遊技機設置情報や遊技機性能情報の送信タイミングと重なった場合には、遊技機設置情報や遊技機性能情報の送信が優先されるため、当該タイミングではホールコン・不正監視情報を送信せず、次の「300」ms経過後(遊技機設置情報の送信タイミングと重なった場合)又は「600」ms経過後(遊技機設置情報及び遊技機性能情報の送信タイミングと重なった場合)にホールコン・不正監視情報を送信する。この「「300」ms経過後又は「600」ms経過後に送信するホールコン・不正監視情報」については、遊技機設置情報の送信タイミングと重なった時点でのホールコン・不正監視情報ではなく、「300」ms経過後又は「600」ms経過後にホールコン・不正監視情報を送信するタイミングで取得したホールコン・不正監視情報である。したがって、ホールコン・不正監視情報の送信タイミングが遅れても、最新の情報を送信することが可能となる。
【0503】
また、ホールコン・不正監視情報の送信処理が終了した後は、通番を更新(「1」加算)する。当該通番も、計数通番等と同様に、電源復帰直後の送信時には通番として「0」を送信し、それ以降は、「1」~「255」のいずれかを送信できるように(「1」~「255」を循環するように)更新している。この通番は、ホールコン・不正監視情報、遊技機設置情報、遊技機性能情報の3つの情報のうちいずれかを送信したときに更新される通番である。換言すれば、ホールコン・不正監視情報、遊技機設置情報、遊技機性能情報で同じ通番を用いているため、電源が投入されている状況下においては、「300」msの周期で通番が更新されるように構成されている。
【0504】
ステップS731からステップS734に進むと、遊技機設置情報の送信処理を実行する。このときに送信する内容は、このタイミングで取得した遊技媒体数制御基板100に記憶されている情報である。次にステップS735に進み、遊技機設置情報通知要求フラグをクリアする。具体的には、遊技機情報通知要求フラグの「D1」ビットを「0」にする。また、遊技機設置情報の送信処理が終了した後には、通番を更新(「1」加算)する。そして本フローチャートによる処理を終了する。
一方、ステップS732からステップS736に進むと、遊技機性能情報の送信処理を実行する。このときに送信する内容は、このタイミングで取得した遊技媒体数制御基板100に記憶されている情報である。次にステップS735に進み、遊技機性能情報通知要求フラグをクリアする。具体的には、遊技機情報通知要求フラグの「D0」ビットを「0」にする。また、遊技機性能情報の送信処理が終了した後には、通番を更新(「1」加算)する。そして本フローチャートによる処理を終了する。
【0505】
続いて、遊技機情報通知タイマA~Cと、主制御基板50のRWM53に記憶された情報との関係について説明する。
遊技機情報通知タイマA~Cの各記憶領域は、上述したように、遊技媒体数制御基板100のRWM103に設けられている。そして、電源投入時の初期化処理により、これらの記憶領域はクリア(「0」が記憶)される。
一方、遊技媒体数制御基板100のRWM103には、役比モニタ113の点灯制御に必要なデータ記憶領域として、上記で説明したデータ記憶領域以外に、たとえば以下のようなデータ記憶領域が設けられている。
「400」遊技回数カウンタ(「400」遊技をカウントするためのカウンタ)
総付与数リングバッファ「0」~「14」(それぞれ、「400」遊技間の総付与数をカウントするバッファ)
連続役物付与数リングバッファ「0」~「14」(それぞれ、「400」遊技間の連続役物付与数をカウントするバッファ)
役物付与数リングバッファ「0」~「14」(それぞれ、「400」遊技間の役物付与数をカウントするバッファ)
総遊技回数カウンタ(総遊技回数のカウント値の記憶領域)
有利区間遊技回数カウンタ(有利区間の遊技回数の記憶領域)
総付与数カウンタ(総付与数のカウント値の記憶領域)
指示付与数カウンタ(指示機能作動時における付与数の記憶領域)
連続役物付与数カウンタ(連続役物作動時における付与数の記憶領域)
役物付与数カウンタ(役物作動時における付与数の記憶領域)
指示込役物比率データ(算出した指示込役物比率の記憶領域)
有利区間比率データ(算出した有利区間比率の記憶領域)
連続役物比率データ(算出した連続役物比率の記憶領域)
役物比率データ(算出した役物比率の記憶領域)
役物等状態比率データ(算出した役物等状態比率の記憶領域)
点滅切替え時間(点滅切替え時間に係るカウント値の記憶領域)(上述)
点滅切替えフラグ(点灯又は消灯を判断するフラグの記憶領域)(上述)
なお、上記のデータ記憶領域は、役比モニタ113の点灯制御に必要なデータ記憶領域の一部であり、上記に限定されるものではない。
【0506】
上記の各記憶領域のうち、リングバッファ、遊技回数カウンタ、付与数カウンタ、比率データの各記憶領域は、電源のオン/オフや、設定変更処理では初期化されない。電源のオン/オフや、設定変更処理が行われたとしても、過去の遊技履歴を反映させた正しい比率表示を行うためである。
ただし、RWM異常エラーのような復帰不可能エラーが発生した場合には、上記の記憶領域をすべて初期化する。復帰後に不正なデータを残さないようにするためである。
一方、点滅切替え時間及び点滅切替えフラグは、電源のオン/オフや設定変更処理により初期化(クリア)する。これにより、電源投入時は、毎回、テストパターンの表示を「4800」ms実行することができる。また、電源投入後において、点滅表示を行う場合でも、最初の点灯「3」秒間から開始することができる。
【0507】
また、主制御基板50のRWM53には、図29で示したベット数記憶手段53a、付与数記憶手段53b以外に、たとえば以下のようなデータの記憶領域が設けられている。
入力ポートレベルデータ(各スイッチが操作されている状態であるか否かを判断するデータの記憶領域)
入力ポート立ち上がりデータ(各スイッチが操作されたか否かを判断するデータの記憶領域)
区間種別番号(有利区間を管理するための番号の記憶領域)
MYカウンタ(差数の記憶領域)
入賞及びリプレイ条件装置番号(当該遊技で作動する賞及びリプレイ条件装置の番号の記憶領域)
役物条件装置番号(当該遊技で作動する役物条件装置の番号の記憶領域)
最小遊技期間(1遊技の最小遊技期間(「4.1」秒)を監視するためのタイマ値の記憶領域)
遊技待機表示時間(遊技待機に移行するまでの時間を計測するタイマ値の記憶領域)
なお、上記のデータ記憶領域は、RWM53のデータ記憶領域の一部であり、上記に限定されるものではない。
【0508】
また、第2実施形態の遊技機10は、メダルレス遊技機であるので、有体物としてのメダルを用いる遊技機で設けられていた、たとえば以下の記憶領域は、設けられていない。
ブロッカ信号(ブロッカのオン/オフの記憶領域)
ホッパーモータ駆動信号(ホッパーモータのオン/オフの記憶領域)
払出しセンサチェック時間(メダル詰まりを検出するタイマ値の記憶領域)
ブロッカ監視時間(ブロッカのオン/オフの待機時間を示すタイマ値の記憶領域)
メダル払出し制御時間(メダル払出し装置の制御時間を示すタイマ値の記憶領域)
【0509】
以上のRWM53の記憶領域において、たとえば、最小遊技時間は、電源のオン/オフにより初期化されない。したがって、最初遊技時間の計測途中で電源がオフにされたときは、その後に電源が投入されると、最小遊技時間の計測を再開し、最小遊技時間を経過したと判断したときは、遊技の開始(リール31の回転開始)を許可する。
このため、最小遊技時間と、遊技機情報通知タイマA~Cとは、いずれも時間を計測するためのタイマ値を記憶する点で共通するが、電源のオン/オフにより初期化されるか否かは、相違する。
【0510】
以上、本発明の第2実施形態について説明したが、本発明は、上述した内容に限定されるものではなく、たとえば以下のような種々の変形が可能である。
(1)第2実施形態において、遊技媒体数制御基板100と接続端子板130を介して遊技機10と貸出ユニット200とを通信可能としているがこれに限らず、主制御基板50と接続端子板130とを接続し、主制御基板50と接続端子板130を介して遊技機10と貸出ユニット200とを通信可能としてもよい。上記のように構成し、遊技媒体数制御基板100を搭載しなければ、生産コストを下げることができる。
なお、この場合には、遊技媒体数制御基板100が制御する処理はすべて主制御基板50が行うこととなる。また、主制御基板50の機能と遊技媒体数制御基板100の機能とを同一の基板で実現する場合は、主制御基板50の機能を制御するCPU55と遊技媒体数制御基板100の機能を制御するCPU105とを別個に備えることで、上述した実施形態と同様な処理を実現することが可能となる。
【0511】
(2)上記実施形態では、「60」秒ごとに送信する遊技機設置情報を第1優先とし、次に、「180」秒ごとに送信する遊技機性能情報を第2優先とした。しかし、これは例示であり、たとえば「T1」秒ごとに送信する遊技機情報通知1と、「T2」秒(T2>T1)ごとに送信する遊技機情報通知2とを有する場合に、遊技機情報通知2を遊技機情報通知1よりも優先して送信する仕様であってもよい。
【0512】
(3)主制御基板50のRWM53や、遊技媒体数制御基板100のRWM103の記憶領域は、一般に、使用領域内と使用領域外とに分けられている。
ここで、「使用領域内」とは、RWMの記憶領域中、遊技の進行に関係するデータを記憶するための領域を指す。
一方、「使用領域外」とは、RWMの記憶領域中、遊技の進行に関係しないデータを記憶するための領域を指す。
したがって、役比モニタ113の表示制御に関するデータは、遊技の進行に関係しないデータであることから、RWMの使用領域外に記憶されるのが一般的である。
たとえば、主制御基板50で役比モニタの表示制御を実行する場合には、RWM53の使用領域外に、役比モニタの表示制御に関するデータが記憶される。これにより、RWM53の使用領域内の記憶容量を圧迫しようにすることができる。
【0513】
しかし、これに限らず、遊技媒体数制御基板100で役比モニタ113の表示制御を実行する場合には、役比モニタ113の表示制御に関するデータによってRWM103の使用領域内の記憶容量を圧迫するおそれが少ないことから、役比モニタ113の表示制御に関するデータ記憶領域を、RWM103の使用領域内に設けることも可能である。
(4)上記実施形態では、遊技機10として、スロットマシン(回胴式遊技機)の例をしめしたが、これに限らず、カジノマシン等の様々な遊技用の機種に適用することが可能である。
【0514】
<第3実施形態>
第3実施形態は、メインCPU55の構造、及び命令に関するものである。第3実施形態では、第1実施形態と同様に、メイン制御基板50上に、RWM53、ROM54、メインCPU55を備える。
図42は、第3実施形態におけるメインCPU55の内蔵メモリを示す図である。図中、(A)は内蔵メモリの概要を示す図であり、(B)は内蔵メモリ内の記憶領域のうち内蔵レジスタ領域を示す図である。図42では、内蔵メモリのうち、本実施形態に係る部分のみを示しており、内蔵メモリのすべてを示しているわけではない。
ROM54の領域中、第1プログラム領域及び第1データ領域は、使用領域内(遊技の進行に関係するプログラム及びデータを記憶するための領域)に相当し、第2プログラム領域及び第2データ領域は、使用領域外(遊技の進行に関係しないプログラム及びデータを記憶するための領域。たとえば、役比モニタの表示制御に関するプログラム及びデータや、試験信号の出力制御に関するプログラム及びデータを記憶するための領域。)に相当する。
なお、「プログラム領域」は「制御領域」とも称される。
【0515】
ROM54は、アドレス「0000h」~「2FFFh」の範囲を有し、「12K」バイトの記憶領域を有する。この記憶領域中、第1プログラム領域は「4.5K」バイト、第1データ領域は「3.0K」バイトに設定されている。
さらに、RWM53中、第1作業領域及び第1スタック領域は、第1プログラム領域に記憶された第1プログラム(遊技の進行に関係するプログラム)の実行中に使用される(更新される、参照される)記憶領域である。同様に、第2作業領域及び第2スタック領域は、第2プログラム領域に記憶された第2プログラム(遊技の進行に関係しないプログラム。たとえば、役比モニタの表示に関するプログラム。)の実行中に使用される(更新される、参照される)記憶領域である。
また、第1プログラム領域に記憶された第1プログラムでは、第2作業領域及び第2スタック領域のデータを更新できないが、第2作業領域及び第2スタック領域のデータを参照することは可能である。
同様に、第2プログラム領域に記憶された第2プログラムでは、第1作業領域及び第1スタック領域のデータを更新できないが、第1作業領域及び第1スタック領域のデータを参照することは可能である。
【0516】
また、内蔵レジスタ領域(内蔵レジスタエリアと同義)には、レジスタバンク0とレジスタバンク1とを備える。そして、各レジスタバンク内に、メインレジスタ(表レジスタ)とサブレジスタ(裏レジスタ)とを備えている。メインレジスタは、いわゆる汎用レジスタを含むものである。
以下の説明では、サブレジスタについては割愛し、「レジスタ」と称するときはメインレジスタを指すものとする。
【0517】
レジスタバンク0の各レジスタは、第1プログラム領域に記憶されたプログラムを実行しているときに使用されるレジスタである。同様に、レジスタバンク1の各レジスタは、第2プログラム領域に記憶されたプログラムを実行しているときに使用されるレジスタである。たとえば、Aレジスタ、Fレジスタ等は、それぞれ、レジスタバンク0及びレジスタバンク1の双方に設けられている。換言すれば、レジスタバンク0のAレジスタと、レジスタバンク1のAレジスタは、異なるレジスタである。
【0518】
Aレジスタは、アキュムレータである。
Fレジスタは、フラグレジスタであり、その構造については後述する。
B、C、D、E、H、及びLレジスタは、汎用レジスタである。
IX及びIYレジスタは、インデックスレジスタであり、たとえばアドレスを指定するとき等に使用される。
SPレジスタは、スタックポインタレジスタである。SPレジスタは、データをスタック領域に退避させるときにどのアドレスに退避させるかを指定し、かつ、データをスタック領域から復帰させるときにどのアドレスのデータを復帰させるかを指定するレジスタである。
具体的には、レジスタバンク0のSPレジスタは、第1スタック領域(「F1D0h」~「F1FFh」の範囲)のアドレスを指定する。同様に、レジスタバンク1のSPレジスタは、第2スタック領域(「F3E8h」~「F3FFh」の範囲)のアドレスを指定する。
【0519】
レジスタバンク0及び1の外には、I、R、PC、IFFレジスタを備える。
Iレジスタは、インタラプトレジストであり、割込み処理を実行するときに使用される。
Rレジスタは、リフレッシュレジスタであり、RWM53のリフレッシュに使用される。
PCレジスタは、プログラムカウンタであり、メモリ上の現在実行中のアドレスを保持するレジスタである。
【0520】
IFFレジスタは、割込み許可レジスタである。IFFレジスタには、マスカブル割込み(INT)の許可及び禁止を決定するIFF1レジスタと、ノンマスカブル割込み(NMI)の処理後にIFF1を復帰させるためのIFF2レジスタとから構成されている。IFF2レジスタは、ノンマスカブル割込み処理からの復帰以外に、CALLEX命令(後述)の実行後のRETEX命令(後述)による復帰にも使用される。
また、ノンマルカブル割込み受付け時、又はCALLEX命令の実行時に、IFF1レジスタはクリア(割込み処理を禁止する値(「0」)に設定)され、マスカブル割込みは禁止され、IFF2レジスタはこのときの状態(ノンマルカブル割込み受付け時、又はCALLEX命令の実行時において割込み禁止状態であったか割込み許可状態であったか)を保持する。また、RET命令又はRETEX命令の実行により、IFF2レジスタ値がIFF1レジスタに移され、マスカブル割込みの受付け状態を以前の状態に復帰する。
【0521】
図43は、Fレジスタの詳細な構成を示す図である。Fレジスタは、1バイト(8ビット。図中、「D0」~「D7」で示す。)から構成されている。Fレジスタの構造は、以下の通りである。
(1)D0ビット:キャリーフラグ(C)
キャリーフラグは、演算の結果、桁上がり、又は桁下がりが発生すれば「1」になり、桁上がり、又は桁下がりが発生しなければ「0」になるフラグである。
(2)D1ビット:減算フラグ(N)
減算フラグは、サブトラクトフラグとも称する。直前に実行された命令が減算命令であれば「1」になり、減算命令でなければ「0」になるフラグである。
【0522】
(3)D2ビット:パリティ/オーバーフローフラグ(P/V)
パリティ/オーバーフローフラグは、演算結果中、「1」のビットの数(パリティ)が偶数であれば「1」になり、奇数であれば「0」になるフラグである。また、演算の結果、オーバーフローが生じたときは「1」になり、オーバーフローが生じなければ「0」になるフラグである。
(4)D3ビット:レジスタバンクモニタ(RB)
レジスタバンクモニタは、レジスタバンク0の使用中は「0」になり、レジスタバンク1の使用中は「1」になるフラグである。したがって、FレジスタのD3ビットを参照することにより、使用中のレジスタバンクが0又は1のいずれであるかを判断可能となる。
【0523】
(5)D4ビット:ハーフキャリーフラグ(H)
ハーフキャリーフラグは、演算時、下位4ビットから上位4ビットに桁上がりがあったときは「1」になり、桁上がりがないときは「0」になるフラグである。
(6)D5ビット:第2ゼロフラグ(TZ)
第2ゼロフラグは、演算結果が「0」であるときは「1」になり、演算結果が「0」でなければ「0」になるフラグである。
(7)D6ビット:ゼロフラグ(Z)
ゼロフラグは、上記と同様に、演算結果が「0」であるときは「1」になり、演算結果が「0」でなければ「0」になるフラグである。
(8)D7ビット:サインフラグ(S)
サインフラグは、演算結果が正(プラス)であれば「0」になり、負(マイナス)であれば「1」になるフラグである。
【0524】
図44は、第3実施形態におけるスタック領域を示す図である。図42に示すように、RWM53には、第1プログラム用の第1スタック領域(「F1D0h」~「F1FFh」)と、第2プログラム用の第2スタック領域(「F3E8h」~「F3FFh」)とを備える。
上述したように、第1スタック領域にデータを記憶する(積む、退避する、スタックする等とも称する。)場合には、最終アドレスから昇順(逆順)に積んでいく。たとえば、第1スタック領域に、最初に2バイトのデータを積む場合には、「F1FFh」及び「F1FEh」にデータを記憶する。
第2スタック領域についても上記と同様であり、最終アドレス(F3FFh)から順に積んでいく。
【0525】
また、スタック領域のうち、どのアドレスにデータを積むかを示す値を記憶しておくものが、SPレジスタである。SPレジスタは、図42に示すように、レジスタバンク0及び1の双方に設けられ、レジスタバンク0内のSPレジスタが、第1スタック領域のどのアドレスにデータを積むかを記憶する。同様に、レジスタバンク1内のSPレジスタが、第2スタック領域のどのアドレスにデータを積むかを記憶する。
【0526】
図44に示すように、レジスタバンク0のSPレジスタには、電源投入時に、「LD SP,F200h」の命令により、初期値「F200h」が記憶される。
次に、何らかのプログラム(CALL命令(「第1の呼出し命令」とも称する。)、CALLEX命令(「第2の呼出し命令」とも称する。)、PUSH命令(「レジスタの退避命令」とも称する。)等)が実行されて、第1スタック領域の「F1FFh」及び「F1FEh」の2バイト領域にデータを積んだ場合には、レジスタバンク0のSPレジスタ値は「F1FEh」に更新される。なお、図44の例では、「CALL mn」が実行された例を示している。
次に、第1スタック領域の「F1FFh」及び「F1FEh」に記憶されたデータを呼び出す場合には、何らかのプログラム(RET命令(「第1の戻り命令」とも称する。)、RETEX命令(「第2の戻り命令」とも称する。)、POP命令(「レジスタの復帰命令」とも称する。)等)を実行する。そして、当該命令により、「F1FEh」及び「F1FFh」の2バイト記憶領域に記憶されたデータが呼び出される。たとえば、RET命令(図44の例)によりCALL後の命令に戻る(スタック領域に保存されているプログラムカウンタのプログラムに戻る(戻り番地のプログラムに戻る))とともに、レジスタバンク0のSPレジスタ値は「F1FEh」から「F200h」に更新される。
【0527】
第2スタック領域についても上記と同様である。
レジスタバンク1のSPレジスタには、電源投入時に、「LD SP,F400h」の命令により、初期値「F400h」が記憶される。
次に、何らかのプログラム(CALL命令、PUSH命令等)が実行されて、第2スタック領域の「F3FFh」にデータを積んだ場合には、レジスタバンク1のSPレジスタ値は「F1FFh」に更新される。
次に、第2スタック領域の「F3FFh」に記憶されたデータを呼び出す場合には、何らかのプログラム(RET命令、RETEX命令、POP命令等)を実行する。そして、当該命令により、「F3FFh」の1バイト記憶領域に記憶されたデータが呼び出され、RET命令又はRETEX命令によりCALL後の命令に戻るとともに、レジスタバンク1のSPレジスタ値は「F3FFh」から「F400h」に更新される。
【0528】
ここで、命令の詳細は後述するが、本実施形態においては、CALLEX命令は、第1プログラム(レジスタバンク0のとき)には有する命令であり、第2プログラム(レジスタバンク1のとき)には有さない命令である。
また、RETEX命令は、第1プログラム(レジスタバンク0のとき)には有さない命令であり、第2プログラム(レジスタバンク1のとき)には有する命令である。
【0529】
図45は、第3実施形態における主要な命令を示す図である。第3実施形態において、命令の種類は数千にも及ぶが、このうち、図45では、代表的な3種類を示している。
図中(A)は、LDF命令を示す。
図45において、まず、命令文におけるオペコードとオペランドについて説明する。
図中(A)に示すように、命令が「LDF HL,mn」であるとき、前半の「LDF」をオペコード(関数)と称し、後半の「HL,mn」をオペランド(引数)と称する場合がある。LDF命令は、LD(ロード)命令の一態様(特殊形。なぜ特殊であるかについては後述する。)である。また、「HL」は、HLレジスタを示し、「mn」は、アドレスを示す。そして、「LDF HL,mn」の命令は、アドレス「mn」値をHLレジスタに記憶することを指示する命令である。
なお、後述するように、LDF命令は、アドレス値を所定のレジスタに記憶することを指示する命令に限らず、所定値(ただし、「所定値」は、所定の範囲内に限られる(後述)。)を所定のレジスタに記憶することを指示する命令の場合もある。
【0530】
具体的には、たとえば「LDF HL,1200h」が実行されると、
1200h=0001/0010/0000/0000(4ビットごとに「/」を入れている。以下同じ。)
であるので、
Hレジスタ値=0001/0010
Lレジスタ値=0000/0000
となる。
【0531】
さらにまた、LDF命令は、「1200h」~「1DFF」の範囲の値をレジスタ(この例ではHLレジスタ)に記憶する命令に限られる。それ以外のロード命令のオペコードは、「LDF」ではなく「LD」を用いる。
すなわち、
LDF HL,mn (mn=1200h~1DFFh)
LD HL,mn (mn≠1200h~1DFFh)
である。
【0532】
図46は、LDF命令及びLD命令の態様を示す図である。図42に示すように、第1データ領域の範囲は、アドレス「1200h」~「1DF3h」である。したがって、第1データ領域のアドレスを指定するロード命令の場合には、すべてLDF命令で実行可能である。
これに対し、第2データ領域は、アドレス「2600h」~「2FBEh」の範囲である。したがって、第2データ領域のアドレスを指定するロード命令の場合には、オペコード「LDF」を使用することができず、オペコード「LD」を使用する。
図46中、(A)は、アドレス「1200h」~「1DF3h」の範囲(第1データ領域)を指定するLDF命令を示し、(B)は、アドレス「2600h」~「2FBEh」の範囲(第2データ領域)を指定するLD命令を示す。
【0533】
また、ロード命令は、所定のアドレス値を所定のレジスタに記憶する命令に限らず、たとえばいずれかのレジスタ値を他のいずれかのレジスタに記憶する命令にも用いられる。
図46(C)は、LDF命令を用いて所定値「xy」(「1200h」~「1DFFh」の範囲内)をHLレジスタに記憶する命令である「LDF HL,xy」を示している。このように、「xy」の値が「1200h」~「1DFFh」の範囲内であるときは、当該値を所定レジスタに記憶する命令についても、LDF命令を用いることができる。
たとえば、タイマ値「5000(D)」(1388h)をHLレジスタに記憶する命令の場合には、「LDF HL,1388h」となる。
さらにまた、図46(D)は、LD命令を用いて所定のレジスタ値(この例ではHLレジスタ値)を他の所定のレジスタ(この例ではAレジスタ)に記憶する命令である「LD A,(HL)」を示している。所定のレジスタ値を他の所定のレジスタにコピーするような命令において、コピー元の所定のレジスタ値又は所定値が「1200h」~「1DFFh」の範囲外であるような場合には、(LDF命令ではなく)LD命令が用いられる。
【0534】
また、「LDF HL,mn」や「LD HL,mn」のようなすべての命令は、実際には符号化されてROM54のプログラム領域に記憶される。
ここで、第3実施形態では、「LDF HL,mn」のコードサイズは2バイトであり、「LD HL,mn」のコードサイズは3バイトである。
まず、「LDF HL,mn」の命令の場合には、「mn」の範囲は、「1200h」~「1DFFh」であるが、「1200h」及び「1DFFh」(いずれも16進数)を、それぞれ10進数及び2進数で表すと、
1200h=4608(D)=0001/0010/0000/0000(B)
1DFFh=7679(D)=0001/1101/1111/1111(B)
となる。
【0535】
そして、「1200h」を基準値「0」としたとき、「1DFFh」は、「3070(D)」又は「1011/1111/1110(B)」(12ビット)となる。
そこで、LDF命令において、アドレス値を指定するためのオペコードでは、「1200h」を値「0」とする。これにより、アドレス値「mn」(mn=「1200h」~「1DFFh」)を指定するためには、12ビットで足りることとなる。
【0536】
また、命令のすべての数がたとえば「3000」であると仮定し、各命令ごとに固有の値を割り当てると仮定する。
この場合、
3000(D)=1011/1011/1000(B)(12ビット)
であるので、「0000/0000/0000(B)」~「1011/1011/1000(B)」に割り当てることができる。
そして、特に重要な命令、具体的にはたとえば使用頻度の高い命令の場合には、小さい値を割り当てる。本実施形態では、「LDF HL」のコード値を「1101」に割り当てる(4ビット)。
よって、「LDF HL」が4ビットであり、「mn」が12ビットであるので、合計で16ビットすなわち2バイトとなる。よって、「LDF HL,mn(mn=1200h~1DFFh)」のコードサイズは、2バイトとなる。
【0537】
一方、ロード命令のうち、「mn」の範囲が「1200h」~「1DFFh」の範囲外である場合、特に、第2データ領域の範囲「2600h」~「2FBEh」を指定する場合には、以下のようになる。
第2データ領域の範囲のうち、アドレス値が最も大きいのは、「2FBEh」であるので、
「2FBEh」-「1200h」
=1DBEh
=1/1101/1011/1110(B)
となり、13ビットとなる。
すなわち、上記のように「1200h」を基準値「0」としたとき、「2FBEh」は13ビットで表すことができる。
そこで、「LD HL」をコード化したときには、上記「LDF HL」と同様に4ビットとし、「LD HL,mn」(mn≠1200h~1DFFh)については、「4+13=17ビット(3バイト)」で表す。
【0538】
また、上述の他のロード命令、たとえば「LD A,(HL)」等のような場合でも、上記と同様に、コードサイズは3バイトとする。
なお、「LD HL,mn」のコードサイズが3バイトとするのであれば、「LD HL」については、必ずしも4ビットである必要はなく、11ビット以下であれば、「mn」(mn≠1200h~1DFFh)が13ビットであるから、これらの合計で24ビット(3バイト)以内に収めることが可能となる。
【0539】
以上より、第3実施形態において、ロード命令のコードサイズは、
LDF HL,mn(mn=1200h~1DFFh):2バイト(16ビット)
LD HL,mn(mn≠1200h~1DFFh):3バイト(17ビット)
LD A,(HL)(「A」や「HL」は任意):3バイト
となる。
これにより、第1データ領域のアドレスを指定してHLレジスタに記憶する「LDF HL,mn(mn=1200h~1DFFh)」のコードサイズは、他のロード命令のコードサイズよりも1バイト少なくて済むので、第1プログラム領域の記憶容量を節約することが可能となる。
【0540】
特に、第1プログラム領域には、遊技の進行に関係するプログラムを記憶するので、第2プログラム領域に記憶するプログラム、換言すれば遊技の進行に関係しないプログラム(役比モニタに関するプログラム)よりも容量が増大しやすい。たとえば、遊技に関する抽選処理や、遊技状態を移行するための処理、リールを駆動するための処理、遊技の結果(停止表示した図柄組合せ)に応じて遊技価値(遊技媒体)を付与する処理などは、第1プログラムで実行している。そこで、第1プログラム領域に記憶するロード命令のうち、アドレス「1200h」~「1DFFh」を呼び出すロード命令のコードサイズを小さくすることによって、第1プログラム領域に、より多くのプログラムを記憶することが可能となる。
一方、第2プログラム領域に記憶されるプログラムのうち、第2データ領域内のアドレスを指定するロード命令のオペコードは、すべて「LD」で統一される。これにより、第2プログラム領域に記憶されるプログラムでは、プログラムソースの正当性の確認をより容易に行うことができる。換言すれば、プログラム容量(コードサイズ)の削減よりも、プログラムの見やすさを重視した設計とすることが可能となる。
【0541】
第2プログラムで参照するROM54のデータ領域は、「1200h」~「1DFFh」の範囲外である。したがって、第2プログラムで参照するROM54のデータ領域のアドレスを指定する際には、「LD HL,mn」(mn≠1200h~1DFF)を使用する。
【0542】
LD命令(LDをオペコードとした命令。「第1のロード命令」とも称する。)は、第1プログラムを構成する命令として複数有し、第2プログラムを構成する命令としても複数有する。しかし、LDF命令(LDFをオペコードとした命令。「第2のロード命令」又は「特殊ロード命令」とも称する。)は、第1プログラムを構成する命令として複数有するが、第2プログラムを構成する命令としては有さない。
また、LD命令であっても、2バイトデータをHLレジスタに記憶する命令とすることができる。しかし、LDF命令で2バイトデータをHLレジスタに記憶する方がコードサイズを小さくすることができる。ただし、LDF命令の場合には、2バイトデータの範囲に制限がある。
【0543】
上述したLDF命令及びLD命令は、スロットマシン(たとえば風営法上の回胴式遊技機)における各種処理でのみ適用される命令ではなく、ぱちんこ遊技機における汎用的な各種処理においても問題なく適用可能である。
ぱちんこ遊技機においても、スロットマシンと同様に、第1プログラム領域と第2プログラム領域を備えており、第1プログラム領域には遊技の進行に関係するプログラムを記憶し、第2プログラム領域には遊技の進行に関係しないプログラム(たとえば、ベース(通常時において「賞球払出数/総排出数×100」で算出される値を指す。以下同じ。)を表示するベースモニタに関するプログラム。)を記憶する。このため、第1プログラム領域の方が第2プログラム領域よりも容量が増大しやすい傾向にある。したがって、第1プログラム領域に記憶するプログラムにLDF命令を採用することによる容量圧縮効果が期待できる。
【0544】
また、ぱちんこ遊技機において第1プログラム領域に記憶されるプログラムとしては、たとえば、当否抽選に係る処理、特別図柄の変動停止制御に係る処理、特別図柄又は普通図柄の表示に係る処理、遊技情報(遊技状態、エラー状態、ベース等)の表示に係る処理、大当り制御に係る処理、各種可動物(大入賞口、開放延長機能を作動させる電動役物等)の可動制御に係る処理、払出制御に係る処理等が挙げられる。これらのプログラムに対して、LDF命令を使用することができる。
特に、ぱちんこ遊技機のベースモニタの表示制御と、スロットマシンの役比モニタの表示制御とでは、表示内容を算出する過程において違いはあるが、最終的に遊技情報をデータとして表示する点において類似する表示制御が行われる。
なお、上記に限らず、スロットマシン及びぱちんこ遊技のいずれにおいても、メインCPUで制御されるその他の処理でLDF命令を使用することは、もちろん可能である。
【0545】
説明を図45に戻す。
図45(B)は、CALLEX命令を示す。CALLEX命令は、コール(CALL、呼出し)命令の1つである。
「CALLEX mn」の命令が実行されると、
(1)その時点において割込み許可状態であるか割込み禁止状態であるかにかかわらず、ノンマスカブル割込み(NMI)及びマスカブル割込み(INT)を禁止し、
(2)レジスタバンクを「1」に切り替え、
(3)mnで指定されるアドレスにコールする(呼び出す)
ことを実行する。
本実施形態では、第1プログラム領域内のプログラムから第2プログラム領域内のプログラムを実行する際に、CALLEX命令を実行することによって、第2プログラム領域内のプログラムを実行可能とする。
【0546】
上述したロード命令では、mnの範囲に応じて、LDF命令又はLD命令のいずれかとしたが、第3実施形態のコール命令では、mnの範囲にかかわらず、CALLEX命令を使用する。CALLEX命令は、第1プログラムから第2プログラムを読み出すときに用いられる。
ここで、第2プログラム領域は、図42に示すように、アドレス「2000h」~「25FFh」の範囲である。そして、CALLEX命令では、アドレス「2000h」~「25FFh」のうち、アドレス「2000h」~「20FFh」の範囲を呼び出す場合の「CALLEX mn」のコードサイズは2バイトとなり、アドレス「2000h」~「20FFh」以外の範囲を呼び出す場合の「CALLEX mn」のコードサイズは、4バイトとなるように構成されている。
【0547】
ここで、アドレス「2000h」~「20FFh」の範囲は、「FFh」、すなわち1バイトである。この場合に、アドレス値「2000h」のコード値を「0h」にする。これにより、アドレス値「20FFh」を呼び出すときのコード値を「FFh」にすることができるので、アドレス「2000h」~「20FFh」の範囲のいずれを呼び出す場合であっても、「mn」のコードサイズを1バイトに設定することができる。
また、「CALLEX」のオペコードをコード化する場合に、第3実施形態では、当該コードを「0100/1000」すなわち1バイトに設定する。これにより、「CALLEX mn」(mn=2000h~20FFh)のコードサイズを2バイトに設定することができる。
【0548】
図47は、CALLEX命令の態様を示す図である。
図中(A)は、「CALLEX 2000h」を示す。この場合の「2000h」に対応するコード値は、上述したように「0000/0000」である。また、「mn」の範囲が「2000h」~「20FFh」である場合の「CALLEX」のコード値は、「0100/1000」である。したがって、「CALLEX 2000h」のコードは、
0100/1000/0000/0000
となる。
この命令が実行されると、第2プログラム領域のアドレス「2000h」の命令を呼び出す。
【0549】
また、図中(B)は、「CALLEX 20FFh」を示す。この場合の「20FFh」に対応するコード値は、「1111/1111」である。また、上述と同様に、「mn」の範囲が「2000h」~「20FFh」である場合の「CALLEX」のコード値は、「0100/1000」である。したがって、「CALLEX 20FFh」のコードは、
0100/1000/1111/1111
となる。
この命令が実行されると、第2プログラム領域のアドレス「20FFh」の命令を呼び出す。
【0550】
さらにまた、図中(C)は、「CALLEX 2100h」を示す。ここで、「mn」が「20FFh」から「2100h」になると、桁上がりが生じ、「mn」を1バイトで表すことができなくなり、「mn」のコードサイズは2バイトとなる。「mn」=「2100h」の場合には、「mn」のコードは、
0000/0001/0000/0000
となる。
【0551】
さらに、この場合の「CALLEX」のコードも異なる。「mn」の範囲が「2000h」~「20FFh」である場合の「CALLEX」のコードを1バイトとしたが、「mn」の範囲が「2100h」~「25FFh」であるときには、「CALLEX」のコードとして1バイトを用いずに2バイトとする。上述したように、オペコードを1バイトから構成する場合には、数千の命令のうち、256個に限られるため、「mn」の範囲が「2000h」~「20FFh」である場合の「CALLEX」のコードとして1バイトのコードを割り当てたが、「mn」の範囲が「2000h」~「20FFh」でない場合には、「CALLEX」のコードとして2バイトのコードを割り当てている。図47の例では、この場合の「CALLEX」のコードを、
1010/0000/1000/0000
としている。
よって、「mn」=「2100h」であるときの「CALLEX mn」のコードは、
1010/0000/1000/0000/0000/0001/0000/0000
となる。
この命令が実行されると、第2プログラム領域のアドレス「2100h」の命令を呼び出す。
【0552】
さらに、図中(D)は、「CALLEX 25FFh」(第2プログラム領域の最後のアドレスを指定する命令)を示す。第2プログラム領域のアドレスを指定するときの最大値が「25FFh」となる。
「2000h」のコードを「0」としたとき、「25FFh」は、
0000/0101/1111/1111
となる。
よって、「CALLEX 25FFh」のコードは、
1010/0000/1000/0000/0000/0101/1111/1111
となる。
この命令が実行されると、第2プログラム領域のアドレス「25FFh」の命令を呼び出す。
【0553】
以上のように、第3実施形態の「CALLEX mn」命令では、「mn」の範囲が「2000h」~「20FFh」の範囲内であればコードサイズが2バイトの命令となり、「mn」の範囲が上記範囲以外であればコードサイズが4バイトの命令となる。
よって、呼び出す回数が多い命令ほど、アドレス「2000h」~「20FFh」の範囲内に集約しておけば、それだけ、コードサイズが2バイトで済む命令が多くなる。これにより、命令を記憶するROM54の記憶容量を節約することが可能となる。
また、第2プログラム領域のアドレス「2000h」~「25FFh」の範囲のうち、アドレス「2000h」~「20FFh」の範囲に、第1プログラムから第2プログラムを呼び出す際のアドレスを収めておくことによって、第2プログラムを確認するときに、第1プログラムから呼び出されるプログラムであることを容易に把握することができる。
【0554】
説明を図45に戻す。
図45(C)は、RETEX命令を示す。このRETEX命令は、従来のリターン命令に対応する命令である。
RETEX命令は、
(1)ノンマスカブル割込み(NMI)、及びマスカブル割込み(INT)をCALLEX命令前の状態にし、
(2)レジスタバンクを「0」に切り替え、
(3)リターン(RET)する(CALLEX前の状態(CALLEXの次の命令(戻り番地のプログラム))に戻る)
ことを実行する。
これにより、第1プログラム領域内のプログラムを実行可能とする。
なお、CALLEX命令時の状態が割込み許可状態であるときは、RETEX命令によって割込み許可状態にする。一方、CALLEX命令時の状態が割込み禁止状態であるときは、RETEX命令によって割込み禁止状態にする。
【0555】
従来の一般的なコール(CALL)/リターン(RET)命令では、コール命令によってプログラムを呼び出し、当該プログラムを実行した後、リターン命令によって当該コール命令後に戻るものである。
これに対し、本実施形態では、CALLEX命令においてプログラムを呼び出し、当該プログラムを実行した後、RETEX命令によって当該CALLEX命令後に戻るものである。
以上の点について、より詳しく説明する。
【0556】
図48は、従来のCALL命令及びRET命令の一例を示す図である。
この例では、第1プログラムの実行中に、第2プログラムを呼び出す例を示している。
第1プログラムの実行中に第2プログラムを呼び出す場合には、少なくとも、以下の処理を実行する必要がある。
「1」割込み管理処理
処理の煩雑化を防ぐため、第2プログラムの実行中は、割込み処理が実行されないようにする。
「2」SPレジスタ切替え処理
第2プログラムで用いるスタック領域は、第1プログラムで用いるスタック領域と異なるため、SPレジスタを切り替える必要がある。
「3」レジスタ管理処理
第2プログラムの実行中にレジスタを使用したときは、そのレジスタ値を引き継いで第1プログラムに戻らないようにする必要がある。
【0557】
以上を遵守するため、図48で例示したプログラムには、以下に示す命令が含まれる。
まず、第1プログラムの実行中に第2プログラムを実行するときは、割込み処理を禁止する。割込み禁止命令は、図中、DI命令である。これが、上記「1」に対応する命令である。なお、割込み禁止命令であるDI命令と対をなすのが、割込み許可命令であるEI命令である。なお、DI命令ではマスカブル割込み処理を禁止することはできるが、ノンマスカブル割込み処理(NMI)を禁止することはできない。
【0558】
DI命令の実行後、AFレジスタを退避するため、「PUSH AF」を実行する。この命令は、上記「3」に対応する命令である。なお、PUSH命令とは、スタック領域にデータを格納する命令である。すなわち、Aレジスタ値及びFレジスタ値をスタック領域に記憶する命令を実行する。
次の「CALL S_CHERR_CHK」命令は、第2プログラムの1つである「S_CHERR_CHK」(投入・払出しセンサ異常管理)を呼び出す命令である。この例では、第2プログラムとして「S_CHERR_CHK」を挙げている。
この「S_CHERR_CHK」(第2プログラム)を終了すると、「POP AF」命令により、退避していたAFレジスタを復帰させる。この命令は、スタック領域のデータを呼び出す命令であり、上記「3」に対応する命令である。次に、EI命令により、割込み処理を許可する(上記「1」に対応する命令)。
【0559】
「S_CHERR_CHK」(第2プログラム)において、「LD (_SB_STACK2),SP」は、第1プログラム用のSPレジスタ値を第2スタック領域の所定の番地に退避(記憶)する命令(上記「2」に対応する命令)である。
次の「LD SP,@STACK2」は、第2プログラム用のSPレジスタをセットする命令(上記「2」に対応する命令)である。
次に、「PUSH GPR」及び「PUSH QI」をそれぞれ実行し、レジスタを退避させる。ここで、「GPR」は、退避するレジスタの種類を示し、A、F、B、C、D、E、H、及びLレジスタに相当する。また、「GPR」には、Q及びIレジスタが含まれないため、「PUSH GPR」に加えて「PUSH QI」を実行し、Q及びIレジスタを退避させる(上記「3」に対応する命令)。
【0560】
そして、当該第2プログラムの実行後、レジスタ及びSPレジスタを復帰させる。「POP QI」により、Q及びIレジスタを復帰させる。さらに、「POP GPR」により、A、F、B、C、D、E、H、及びLレジスタを復帰させる(これらは、上記「3」に対応する命令)。
次に、「LD SP,(_SB_STACK2)」により、SPレジスタを復帰させる(上記「2」に対応する命令)。
そして、RETにより、CALL命令前の状態に戻す。
【0561】
以上のようにして、一般的なコール/リターン命令では、上記「1」~「3」に対応する命令として、第1プログラムでは、
DI
PUSH AF
POP AF
EI
を実行する必要がある。
また、第2プログラムでは、
LD (),SP
PUSH GPR
PUSH QI
POP QI
POP GPR
LD SP,()
を実行する必要がある。
【0562】
これに対し、本実施形態におけるCALLEX命令では、上述したように、割込みを禁止する処理と、レジスタバンクを0から1に切り替える処理とを含んでいる。したがって、CALLEX命令(1命令)によって第2プログラム領域内のプログラムを実行でき、割込み禁止命令(DI命令)やレジスタの退避命令(PUSH命令)を独立して設ける必要がない。
また、RETEX命令では、割込みをCALLEX命令前の状態にする処理と、レジスタバンクを1から0に切り替える処理とを含んでいる。したがって、RETEX命令(1命令)によって第1プログラム領域内のプログラムに戻ることができ、割込みを元に戻すための割込み許可命令(EI命令)や、レジスタを復帰させる命令(POP命令)を独立して設ける必要がない。
よって、プログラム容量を削減することが可能となる。
【0563】
さらにまた、CALLEX命令及びRETEX命令により、第2プログラムを実行する直前の第1プログラムの割込み状態に戻ることができる。
したがって、CALLEX命令直前の状態が割込み許可状態であれば、第2プログラムの実行後、RETEX命令により、割込み許可状態の第1プログラムに戻ることができる。
一方、CALLEX命令直前の状態が割込み禁止状態であれば、第2プログラムの実行後、RETEX命令により、割込み禁止状態の第1プログラムに戻ることができる。
【0564】
また、CALLEX命令が実行されると、レジスタバンクが0から1に切り替えられる。さらに、RETEX命令が実行されると、レジスタバンクが1から0に切り替えられる。
このため、CALLEX命令が実行されると、レジスタバンク0及び1のFレジスタのD3ビットは「0」から「1」に更新される。また、RETEX命令が実行されると、レジスタバンク0及び1のFレジスタのD3ビットは「1」から「0」に更新される。
なお、CALLEX命令が実行されたときは、レジスタバンク0又は1のいずれか一方のFレジスタのD3ビットが「0」から「1」に更新されるようにしてもよい。
【0565】
また、レジスタバンク0及び1の各レジスタに記憶されているデータは、FレジスタのD3ビットを除き、CALLEX命令及びRETEX命令自体によって更新されることはない。
この点を具体例を挙げて説明する。
以下の説明において、レジスタバンク0のA、B、H、及びLレジスタを、それぞれ、0A、0B、0H、0Lレジスタと称する。
また、レジスタバンク1のA、B、H、及びLレジスタを、それぞれ、1A、1B、1H、1Lレジスタと称する。
現時点で、レジスタバンク0及び1の各レジスタには、以下のデータが記憶されているものとする。
0Aレジスタ:00000001(B)
0Bレジスタ:00000000(B)
0Hレジスタ:11110001(B)
0Lレジスタ:00000001(B)
1Aレジスタ:00000000(B)
1Bレジスタ:00000011(B)
1Hレジスタ:11110010(B)
1Lレジスタ:00000001(B)
【0566】
この状態において、CALLEX命令が実行されると、それまでの0A、0B、0H、0Lレジスタを使用する状態から、1A、1B、1H、1Lレジスタを使用する状態に切り替わる。そして、CALLEX命令の直前及び直後で、0A、0B、0H、0L、1A、1B、1H、1Lレジスタの各レジスタ値は変化しない。上述したように、更新されるのはFレジスタのD3ビットだけである。
次に、第2プログラムの実行により、1A、1H、1Lレジスタが使用され、たとえば、
1Aレジスタ:00000011(B)
1Bレジスタ:00000011(B)
1Hレジスタ:11110001(B)
1Lレジスタ:00000000(B)
となったと仮定する。
【0567】
そして、第2プログラムの終了に基づいてRETEX命令が実行されると、上記の1A、1B、1H、1Lレジスタの各値はそのままで、0A、0B、0H、0Lレジスタを使用する状態に切り替わる。この時点での0A、0B、0H、0Lレジスタの各値は、CALLEX命令直前の値、すなわち、
0Aレジスタ:00000001(B)
0Bレジスタ:00000000(B)
0Hレジスタ:11110001(B)
0Lレジスタ:00000001(B)
である。
なお、0Hレジスタ値は、CALLEX命令直前の値が維持されているものであり、1Hレジスタ値と入れ替わったわけではない。
そして、第1プログラムの実行により、たとえば0Aレジスタ値の「1」加算処理が実行されると、
0Aレジスタ:00000010(B)
となる。
【0568】
以上より、特定レジスタ(たとえばAレジスタ)に着目すると、CALLEX命令直前の特定レジスタ値が「x」である場合、CALLEX命令の実行によって特定レジスタ値は「y」となる。これは、CALLEX命令によって特定レジスタ値が変化したわけではなく、使用する特定レジスタが、レジスタバンク0の特定レジスタからレジスタバンク1の特定レジスタに変わったためである。
【0569】
そして、第2プログラム領域のプログラムが実行されることにより、特定レジスタが使用され、特定レジスタ値が「y」から「y’」に更新されたと仮定する。その後、RETEX命令が実行されると、使用する特定レジスタは、レジスタバンク1の特定レジスタからレジスタバンク0の特定レジスタに切り替わる。よって、RETEX命令直後の特定レジスタ値は、CALLEX命令直前の値、すなわち「x」になる。なお、RETEX命令の直後も、レジスタバンク1の特定レジスタ値は「y’」のままである。
【0570】
上述したCALLEX命令及びRETEX命令は、具体的には、たとえば以下のように使用される。
図49は、第3実施形態におけるプログラム開始(M_PRG_START )を示すフローチャートである。図49中、第3実施形態特有のステップ番号にはアンダーラインを付している。
プログラム開始(M_PRG_START )は、電源投入後に最初に実行されるメイン制御基板50のプログラムであり、設定変更モードへの移行条件を満たすか否か、電源断復帰異常がないか否か等が判断される。
電源断復帰異常があると判断されたときは、ステップS2801の復帰不可能エラー処理(C_ERROR_STOP)又はステップS2731の初期化処理(M_INI_SET )に移行する。
また、設定変更モードへの移行が可能であると判断されたときはステップS2731の初期化処理に移行し、この初期化処理後、設定変更モードに移行可能となる。
一方、設定変更モードに移行せず、かつ電源断復帰異常がないと判断されたときはステップS2721の電源復帰処理(M_POWER_ON)に移行する。
【0571】
図49において、プログラム開始(M_PRG_START )処理が開始されると、まず、ステップS2851において、第1に、レジスタバンク0のSPレジスタに初期値をセットする。電源投入時は、レジスタバンク0のSPレジスタ値は「0」である。ここでは、「LD SP,F200h」の命令により、レジスタバンク0のSPレジスタに「F200h」を記憶する。
【0572】
ここで記憶される値「F200h」は、図44で示したように、第1スタック領域の最後のアドレスに「1」を加算した値となる。そして、レジスタバンク0のSPレジスタ値が「F200h」であるときは、「F1FFh」にデータを記憶する(積む)ことを示すものとなる。
また、ステップS2851では、第2に、「CALLEX 2000h」を実行する。なお、この例では、ステップS2852におけるRWMチェックサム算出命令の開始アドレスが「2000h」であるものとする。
次にステップS2852に進み、「CALLEX 2000h」に基づき第2プログラム(RWMチェックサム算出)を開始する。電源投入後に第2プログラムを最初に開始するときには、レジスタバンク1のSPレジスタに初期値をセットする。電源投入時は、レジスタバンク1のSPレジスタ値は「0」である。ここでは、「LD SP,F400h」の命令により、レジスタバンク1のSPレジスタに「F400h」を記憶する。
【0573】
ここで記憶される値「F400h」は、図44で示したように、第2スタック領域の最後のアドレス「F3FFh」に「1」を加算した値となる。そして、レジスタバンク1のSPレジスタ値が「F400h」であるときは、「F3FFh」にデータを記憶する(積む)ことを示すものとなる。
さらに、RWMチェックサム算出を終了すると、RETEXを実行し、第1プログラム内のプログラム(命令)であって、ステップS2851のCALLEX後のプログラム(S2705)に戻る。そして、ステップS2075以降の処理に進む。ステップS2705以降の処理は、説明を省略する。
上記のように、第3実施形態では、CALLEX命令がレジスタ退避を含む命令であるので、別途、レジスタ退避命令(「PUSH AF」、「PUSH GPR」、及び「PUSH QI」)を定める必要がない。同様に、RETEX命令がレジスタ復帰を含む命令であるので、別途、レジスタ復帰命令(「POP AF」、「POP GPR」、及び「POP QI」)を定める必要がない。
【0574】
また、電源投入後の最初の第2プログラムの実行時(ステップS2852)に、レジスタバンク1のSPレジスタに初期値「F400h」を記憶した後は、その後に第1プログラムに戻り、再度、第2プログラムを実行する際には、改めてレジスタバンク1のSPレジスタに初期値「F400h」を記憶する必要がない。
換言すると、電源投入時を起点として、第2プログラムの最初の実行時にはレジスタバンク1のSPレジスタに初期値「F400h」を記憶する処理(命令)を実行するが、それ以降の第2プログラムの実行時にはレジスタバンク1のSPレジスタに初期値「F400h」を記憶する処理(命令)を実行しなくてよい。これにより、第2プログラムの容量を削減することが可能となる。
【0575】
ただし、これに限らず、第2プログラムの実行時ごとに、レジスタバンク1のSPレジスタに初期値「F400h」を記憶する処理(命令)を実行してもよい。あるいは、第2プログラムの実行時であって特定の条件を満たすときに、レジスタバンク1のSPレジスタに初期値「F400h」を記憶する処理(命令)を実行してもよい。
電源投入後の最初の第2プログラムの実行時に、レジスタバンク1のSPレジスタに初期値「F400h」を記憶し、第2プログラムを実行すると仮定する。そして、第2プログラムの実行中に、第2スタック領域にデータを記憶する場合、レジスタバンク1のSPレジスタ値が更新される。
【0576】
上述したように、たとえば最初に2バイトのデータを第2スタック領域に記憶した場合には、レジスタバンク1のSPレジスタ値は「F400h」から「F3FEh」に更新される。その後、第2プログラムを終了するまでに第2スタック領域からデータが戻されるのが通常である。したがって、第2プログラムの終了時には、通常、レジスタバンク1のSPレジスタ値は「F400h」になっている。
第2プログラムが終了し、第1プログラムに戻ると、レジスタバンク0のSPレジスタが使用される。レジスタバンク0のSPレジスタ値は、第2プログラムに移行する直前の値を維持している。たとえば、第2プログラムに移行する直前のレジスタバンク0のSPレジスタ値が「F1FDh」であれば、第2プログラムを終了して第1プログラムに戻ると、レジスタバンク0のSPレジスタ値は「F1FDh」となる。
【0577】
次に、CALLEX命令の利用方法(応用例)について説明する。
図50は、CALLEX命令及びJR命令(ジャンプ命令)を使用した例を示す図である。
上述したように、CALLEX命令は、呼び出すアドレスの範囲が「2000h」~「20FFh」であれば2バイトの命令とすることができるので、第1プログラムから第2プログラムを呼び出す際には、CALLEX命令をできるだけ多く使用すれば、それだけ、命令に係る記憶容量を節約することができる。
【0578】
たとえば、「CALLEX 2000h」の命令を設け、この命令が実行されると、アドレス「2000h」に記憶されたプログラムが呼び出されるが、アドレス「2000h」からそのプログラムの記述(記憶)が開始され、そのプログラムがアドレス「2000h」~「20FDh」の多くを占めてしまうと、CALLEX命令を多く設けることができない。極論すれば、アドレス「2000h」からプログラムが開始され、当該プログラムがアドレス「20FFh」まで続くような場合、換言すればアドレス「2000h」~「20FFh」の範囲に1プログラムしか有さないときには、2バイトのCALLEX命令は1つしか設けることができなくなる。
【0579】
そこで、図50の例では、アドレス「2000h」~「20FFh」の範囲には、JR(ジャンプ)命令を配置し、そのJR命令の飛ぶ先をアドレス「2000h」~「20FFh」の範囲外に指定し、かつ、JR命令の飛ぶ先に実際のプログラムを記憶するようにした。
たとえば、アドレス「2000h」には、「JR 2200h」を記憶しておく。なお、「JR 2200h」の命令である場合、アドレス「2200h」に飛ぶ(ジャンプする)ことを意味する。これにより、「CALLEX 2000h」が実行されると、アドレス「2000h」が呼び出されるが、アドレス「2000h」には「JR 2200h」が記憶されているので、さらにアドレス「2200h」にジャンプすることになる。そして、アドレス「2200h」以降に実際のプログラム(図50中、「プログラムA」)を記憶しておけば、実際のプログラム(プログラムA)をアドレス「2000h」~「20FFh」の範囲外に置くことができる。
【0580】
なお、本実施形態では、「JR mn(mn=2000h~20FFh)」命令に要するコードサイズは3バイトである。このため、図50に示すように、
2000h JR mn1(図50の例では、mn1=2200h)
2003h JR mn2(図50の例では、mn2=2250h)
2006h JR mn3(図50の例では、mn3=22A0h)

のように、3バイト刻みでJR命令を配置している。
【0581】
ただし、これに限らず、「JR mn(mn=2000h~20FFh)」命令に要するコードサイズが2バイトから構成可能である場合には、
2000h JR mn1
2002h JR mn2
2004h JR mn3

となる。
また、「JR mn(mn=2000h~20FFh)」命令に要するコードサイズが4バイトとなるような場合には、
2000h JR mn1
2004h JR mn2
2008h JR mn3

となる。
【0582】
図50の例において、極論すれば、アドレス「2000h」~「20FFh」の範囲には、すべてJR命令を置くことも可能である。この場合には、
(1)2000h JR mn1
(2)2003h JR mn2
(3)2006h JR mn3

(84)20F9h JR mn84
(85)20FCh JR mn85
(86)20FFh JR mn86
とすることができる。したがって、アドレス「2000h」~「20FFh」の範囲内に、3バイトからなるJR命令を合計で86個記憶することが可能となる。
【0583】
図50の例では、
2000h JR 2200h
とし、アドレス「2000h」の実際のプログラム(プログラムA)をアドレス「2200h」~「224Fh」の範囲内に記憶した。
また、
2003h JR 2250h
とし、アドレス「2003h」の実際のプログラム(プログラムB)をアドレス「2250h」~「229Fh」の範囲内に記憶した。
【0584】
さらにまた、
2006h JR 22A0h
とし、アドレス「2006h」の実際のプログラム(プログラムC)をアドレス「22A0h」以降に記憶した。
このように、コードサイズが2バイトで可能となるCALLEX命令のアドレス範囲「2000h」~「20FFh」にはCALLEX命令で実行したい実際のプログラムは、ほとんど記憶しないことが望ましい。換言すると、CALLEX命令で呼び出される第2プログラムのアドレスは、アドレス範囲「2000h」~「20FFh」に収めている。ただし、後述するように、CALLEX命令で呼び出される第2プログラムであって、アドレス範囲「2000h」~「20FFh」のうちアドレス「20FFh」に最も近いプログラムに関しては、JR命令を使用しなくてもよい。このように、CALLEX命令で呼び出される第2プログラムの命令のうち過半数(「ほとんど」又は「すべて」を含む。)はJR命令を使用し、実際のプログラムをアドレス「2100h」以降に記憶すれば、第2プログラム領域を効率よく使用することができる。
【0585】
なお、たとえばCALLEX命令が10個しかないような場合には、1~9個目のCALLEX命令に対応するアドレスにはJR命令を記憶しておくが、10個目のCALLEX命令に対応するアドレスには、JR命令を使用せずに実際のプログラムを直接記憶しておいてもよい。
一方、CALLEX命令の数にかかわらず、アドレス範囲「2000h」~「20FFh」にはJR命令しか記憶しないように定め、JR命令(CALLEX命令)が上限の86個を大幅に下回っていても、アドレス「20FFh」より前の記憶領域は予備として空けておくようにしてもよい。
【0586】
なお、上述したように、CALLEX命令では、アドレス「2000h」~「20FFh」の範囲内の呼び出しの場合はコードサイズが2バイトであり、アドレス「2000h」~「20FFh」の範囲外の呼び出しの場合はコードサイズが4バイトである。
したがって、「CALLEX命令2バイト+JR命令3バイト」であるので、合計5バイトとなり、アドレス「2000h」~「20FFh」の範囲外を呼び出すCALLEX命令のコードサイズ(4バイト)よりも大きくなる。
【0587】
しかし、風営法規則に従う遊技機(回胴式遊技機やぱちんこ遊技機等)のチップにおいては、第1プログラム領域の記憶容量には余裕がなく、第2プログラム領域の記憶容量には余裕があるのが実情である。
したがって、第2プログラム領域に記憶するJR命令の3バイト分が増加しても、第1プログラム領域に記憶するCALLEX命令のコードサイズを2バイトにする方が、第1プログラム領域の効率的な使用の点では有利となる。
【0588】
また、アドレス「20FFh」に近づく最後の方では、JR命令を設けることなく、プログラムそのものを記憶してもよい。
上述のように、アドレス「2000h」以降に3バイトのJR命令を順次配置した場合には、アドレス「20FFh」に「JR mn86」の命令を記憶することになる。なお、この場合には、アドレス「20FFh」~「2101h」の3バイト記憶領域に「JR mn86」の命令が記憶される。
【0589】
しかし、アドレス「20FFh」以降の3バイト記憶領域にJR命令を記憶し、他の記憶領域に当該命令に対する実際のプログラムを記憶するよりも、アドレス「20FFh」から直接プログラムを記憶する方が、記憶容量の節約になる。
このため、図50に示す例では、アドレス「20FFh」にはJR命令を置かず、アドレス「20FFh」からプログラム(プログラムD)が記憶されるようにしている。
これにより、「CALLEX 20FFh」が実行されると、アドレス「20FFh」以降に記憶されているプログラムDが実行されることとなる。
【0590】
なお、上記は、アドレス「20FFh」を例に挙げたが、アドレス「20FDh」や「20FEh」にJR命令を配置するようなケースについても当てはまる。
具体的には、アドレス「20FDh」~「20FFh」の3バイト記憶領域にJR命令を記憶し、かつ他の記憶領域にプログラムを記憶するよりも、アドレス「20FDh」以降に直接プログラムを記憶した方が記憶容量の節約の点で好ましいといえる。
同様に、アドレス「20FEh」~「2100h」の3バイト記憶領域にJR命令を記憶し、かつ他の記憶領域にプログラムを記憶するよりも、アドレス「20FEh」以降に直接プログラムを記憶した方が記憶容量の節約の点で好ましいといえる。
【0591】
以上、本発明の第3実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、たとえば以下のような種々の変形が可能である。
(1)図42において、ROM54にはプログラム管理領域や未使用領域を備えたが、これに限らず、ROM54内には、少なくとも、第1プログラム領域、第1データ領域、第2プログラム領域、第2データ領域を備えるものであればよい。また、これらの各記憶領域に対し、図42では、先頭アドレス及び末尾アドレスを示したが、図42で示す記憶容量は一例であり、これに限られるものではない。したがって、図42で示した各記憶領域の先頭アドレス及び末尾アドレスも一例にすぎず、任意に設定可能である。
【0592】
したがって、図42の例では、第2プログラム領域のアドレス範囲は「2000h」~「25FFh」であることから、CALLEX命令のコードサイズを2バイトとすることが可能なアドレス範囲として、「2000h」~20FFh」を例示したが、第2プログラム領域のアドレス範囲が変われば、CALLEX命令のコードサイズを2バイトとすることが可能なアドレス範囲も変わる。
たとえば、第2プログラム領域のアドレス範囲が「2150h」~「264Fh」である場合、CALLEX命令のコードサイズを2バイトとすることが可能なアドレス範囲は、「2150h」~224Fh」となる。
【0593】
(2)図42の例では、ROM54内において、第1プログラム領域、第1データ領域、第2プログラム領域、第2データ領域の順に配置したが、これに限られるものではなく、たとえば第2プログラム領域及び第2データ領域が第1プログラム領域及び第1データ領域よりも先に配置されていてもよい。また、ROM54の先頭アドレス(図42中、第1プログラム領域の前)に、所定の管理領域等が配置されていてもよい。
RWM53についても同様に、作業領域及びスタック領域の順に配置されていることに限らず、スタック領域及び作業領域の順に配置されていてもよい。また、第1作業領域、第1スタック領域、第2作業領域、第2スタック領域の順に配置したが、これに限られるものではなく、たとえば第2作業領域及び第2スタック領域が第1作業領域及び第1スタック領域よりも先に配置されていてもよい。さらにまた、RWM53の先頭アドレス(図42中、第1作業領域の前)に、所定の管理領域等が配置されていてもよい。
【0594】
(3)内蔵レジスタ領域において、各レジスタバンクには、それぞれメインレジスタとサブレジスタとを設けたが、これに限らず、少なくともメインレジスタを備えるものであればよい。
(4)図43において、FレジスタのD3ビットにレジスタバンクモニタを割り当てたが、これに限られるものではなく、どのビットに割り当ててもよい。たとえば第2ゼロフラグを使用しない場合には、D5ビットでもよい。
また、Fレジスタ内の特定ビットにレジスタバンクモニタを割り当てるのではなく、レジスタバンクモニタ専用のレジスタを設けることも可能である。
【0595】
(5)図42の例では、第1データ領域のアドレス範囲を「1200h」~「1DF3h」とし、当該範囲内であれば「mn」の範囲を12ビットで表すことができると説明した。
ここで、
1200h=0000/0000/0000(B)
としたとき、
1111/1111/1111(B)=FFFh
である。
そして、
1200h+FFFh=21FFh
である。
このため、第1データ領域の範囲が「1200h」~「21FFh」の範囲内であれば、「mn」の範囲を12ビットで表すことができ、「LDF HL,mn」のコードサイズを2バイトで構成可能となる。
【0596】
(6)図42に示す第1スタック領域、及び第2スタック領域のアドレス範囲及び大きさは一例であり、これに限られるものではない。たとえば第1スタック領域の範囲がアドレス「F1D0h」~「F2FFh」である場合には、図49のステップS2851では、「LD SP,F300h」となる。
【0597】
(7)第3実施形態は、メダルレス遊技機に限らず、風営法上の回胴式遊技機や、ぱちんこ遊技機にも適用することができる。さらには、遊技球を用いるパロット、カジノマシンにも適用することができる。
(8)第1~第3実施形態、及び第1~第3実施形態で示した各種の変形例は、単独で実施されることに限らず、適宜組み合わせて実施することが可能である。
【0598】
<第4実施形態>
第4実施形態における遊技機10は、第1及び第2実施形態と同様に、メダルレス遊技機(管理遊技機、封入式遊技機)である。
第4実施形態では、主制御基板50に設けられた1チップマイクロプロセッサ500が遊技媒体数制御を含む制御を実行するものである。
また、第4実施形態では、第3実施形態で説明したCALLEX命令、RETEX命令、及びレジスタバンク等を使用する。
図51は、第4実施形態における遊技機10を示すブロック図であり、図29(第2実施形態)に対応する図である。
第2実施形態の遊技機10では、図29で示したように、主制御基板50に加え、遊技媒体数制御基板100を備えていた。これに対し、第4実施形態の遊技機10は、遊技媒体数制御基板100を備えていない。
【0599】
図51において、主制御基板50には、1チップマイクロプロセッサ500が設けられている。1チップマイクロプロセッサ500は、CPU(マイクロプロセッサ。図51では「主CPU501」と称する。)、ROM(リードオンメモリ)、及びRWM(リードライトメモリ)を1チップ化することにより外部からの不正なアクセスを遮断し、高いセキュリティ性を確保したものである。
【0600】
図51において、主CPU501は、図29(第2実施形態)の「第1主制御CPU55」に相当する。ここで、図29における第1主制御CPU55は、遊技媒体数に関する制御を実行しなかった。第2実施形態において、遊技媒体数に関する制御は、遊技媒体数制御基板100に設けられた第2主制御CPU105によって実行した。
【0601】
これに対し、第4実施形態では、上述したように遊技媒体数制御基板100、すなわち第2主制御CPU105は設けられていない。このため、第4実施形態では、主CPU501が遊技媒体数に関する制御を実行する。なお、主CPU501は、他の実施形態におけるメイン制御基板50上のCPU55(第1実施形態におけるメインCPU55、第2実施形態における第1主制御CPU55)と同様に、遊技の進行に関する制御(リールの駆動制御、役抽選等)、その他の制御(試験機に対する試験信号の出力制御、役比モニタ113の表示制御等)を行うことはもちろんである。
【0602】
図51において、主制御ROM502は、遊技の進行に関する制御を行うためのプログラムやデータを記憶する記憶手段であり、主制御RWM503は、遊技の進行に関する制御を行う際にデータを一時的に記憶しておくための記憶手段である。
さらにまた、遊技媒体数制御ROM502は、遊技媒体数に関する制御(遊技媒体の付与数の算出、遊技媒体の付与処理等)を行うためのプログラムやデータを記憶する記憶手段であり、遊技媒体数制御RWM503は、遊技媒体数に関する制御を行う際にデータを一時的に記憶しておくための記憶手段である。
【0603】
「遊技媒体数制御」とは、
(1)貸し出され若しくは入賞により獲得された遊技媒体(メダル等)を受け皿に送出するための制御(遊技媒体(メダル)が有体物である場合)、
又は、
(2)貸し出され若しくは入賞により獲得された遊技媒体数を示す信号を遊技媒体数表示装置(遊技球数表示装置又はメダル数表示装置)に送信するための制御(遊技媒体(メダル)が無体物である場合)
をいう。
遊技媒体数制御ROM504に記憶されているプログラム、並びに遊技媒体数制御ROM504及び遊技媒体数制御RWM505に記憶されているデータについては、遊技媒体数制御のみを行うために設けられており、遊技媒体数制御以外の制御を行うことはない。
【0604】
なお、「遊技媒体数制御」は、「メダル数制御」と称する場合もある。この場合には「メダル数制御ROM」、「メダル数制御RWM」等と称される。ただし、第2実施形態でも説明したように、メダルレス遊技機は、有体物としてのメダルを用いない。このため、メダルレス遊技機における「メダル」とは、遊技の用に供する遊技媒体(遊技価値)を指す。したがって、「メダル」と称するときは、現行風営法上の回胴式遊技機で用いられるメダル(遊技メダル)を指す場合と、無体物としてのメダル(たとえば、電子データ)を指す場合とを有する。なお、無体物としてのメダルは、遊技媒体、遊技価値、得点(又は単に「点」)、電子メダル、電子データ、電子情報、電子遊技媒体、電子遊技価値等と称する場合がある。
【0605】
さらに、「遊技媒体数制御」における「遊技媒体」は、風営法上のぱちんこ遊技機で用いられる遊技媒体(遊技球)を含むものである。換言すれば、第4実施形態における「遊技媒体数制御」は、ぱちんこ遊技機に適用可能であることはもちろんである。
【0606】
現行の風営法規則では、「主制御基板50に装着されるROM及びRWMの総数は、すべての主基板を通じてそれぞれ1個を超えるものでないこと(ただし、遊技媒体数制御に規定するものを除く。)」と規定されている。
さらに、「主制御基板50に装着されるROM及びRWMであって、遊技媒体数制御のためのものの総数は、すべての主基板を通じてそれぞれ1個を超えるものでないこと」と規定されている。
よって、
主制御ROM502:1個
主制御RWM503:1個
遊技媒体数制御ROM504:1個
遊技媒体数制御RWM505:1個
と定められる。
なお、上記4個の記憶手段は、物理的に分離していることを意味するものではなく、後述するように、1つの内蔵メモリ内に設けられている。
【0607】
使用領域外ROM506は、使用領域内ROMに記憶されるプログラム又はデータ以外の記憶手段であり、使用領域外RWM507は、使用領域内RWMに記憶されるデータ以外を記憶する記憶手段である。
ここで、「使用領域外」とは、遊技機10の試験に必要な信号の出力制御及び不正防止を目的として使用される記憶領域をいう。さらに、「不正防止を目的として使用される」プログラム及びデータとは、たとえば役比モニタ113の表示制御に必要なプログラム及びデータが挙げられる。使用領域外のROMやRWMに配置するプログラム及びデータは、遊技の公正を害さないものであることが必要である。
なお、「使用領域」以外の領域が「使用領域外」となり、「使用領域」は「使用領域内」とも称される。
したがって、主制御ROM502及び遊技媒体数制御ROM504は、使用領域内ROMである。
また、主制御RWM503及び遊技媒体数制御RWM505は、使用領域内RWMである。
【0608】
以上の主制御ROM502、主制御RWM503、遊技媒体数制御ROM504、遊技媒体数制御RWM505、使用領域外ROM506、及び使用領域外RWM507は、1チップマイクロプロセッサ500内部の内蔵メモリとして設けられている。詳細は後述するが、これらのROM及びRWMは、アドレス順に所定の順序で並べられている。
換言すると、当該内蔵メモリ内に、主制御ROM502、主制御RWM503、遊技媒体数制御ROM504、遊技媒体数制御RWM505、使用領域外ROM506、及び使用領域外RWM507がそれぞれ分割して配置されている。
ただし、主制御ROM502、遊技媒体数制御ROM504、使用領域外ROM506については、それぞれが明示的に区分された領域に配置されている。
同様に、主制御RWM503、遊技媒体数制御RWM505、使用領域外RWM507についても、それぞれが明示的に区分された領域に配置されている。
【0609】
第4実施形態では、第2実施形態のように遊技媒体数制御基板100が設けられていないことから、第2実施形態における遊技媒体数制御基板100に設けられていた総遊技媒体数クリアスイッチ112及び役比モニタ113は、主制御基板50に設けられている。なお、上述したように、役比モニタ113に所定の比率を表示するための制御は、使用領域外ROM506及び使用領域外RWM507に記憶されたプログラム及びデータに基づいて実行される。なお、総遊技媒体数クリアスイッチ112は、主制御基板50に直接設けられている場合だけでなく、主制御基板50と電気的に接続されている(たとえば、総遊技媒体数クリアスイッチ112を搭載した基板と主制御基板50とが電気的に接続されている)ように構成されていてもよい。
また、遊技媒体数表示基板(遊技媒体数表示装置)120は、第2実施形態では遊技媒体数制御基板100と電気的に接続されているが、第4実施形態では主制御基板50と電気的に接続されている。遊技媒体数表示部121に遊技媒体数を表示するための制御は、遊技媒体数制御ROM504及び遊技媒体数制御RWM505に記憶されたプログラム及びデータに基づいて実行される。
【0610】
計数スイッチ47は、第2実施形態では遊技媒体数制御基板100と電気的に接続されているが、第4実施形態では主制御基板50と電気的に接続されている。
接続端子板130は、第2実施形態では遊技媒体数制御基板100と電気的に接続されているが、第4実施形態では主制御基板50と電気的に接続されている。
なお、第2実施形態の図29では、副制御基板80の副制御RWM83、副制御ROM84、及び副制御CPU85を図示しているが、これらは主制御基板50と同様に副制御基板80の1チップマイクロプロセッサに内蔵されているものである。このため、図51では、主制御基板50の1チップマイクロプロセッサ500と同様に、副制御基板80の1チップマイクロプロセッサ80aを図示している。
【0611】
図52は、主制御基板50の1チップマイクロプロセッサ500内に設けられた内蔵メモリ(ROM及びRWM等)のメモリマップを示す図である。図52では、内蔵メモリのうち、本実施形態に係る部分のみを示しており、内蔵メモリのすべてを示しているわけではない。
なお、第3実施形態の図42中、「プログラム領域」と、図52等における「制御領域」は、称呼が異なるが、機能は同一である。
【0612】
また、記憶領域の区分については後述するが、図52において、主制御ROM502及び遊技媒体数制御ROM504は使用領域のROMとし、これら以外に、使用領域外ROM506を設けている。同様に、主制御RWM503及び遊技媒体数制御RWM505は使用領域のRWMとし、これら以外に、使用領域外RWM507を設けている。
主制御ROM502及び遊技媒体数制御ROM504は、使用領域のROMであるので、遊技の進行に関係する(遊技媒体数の制御を含む)プログラム及びデータを記憶するための領域に相当する。これに対し、使用領域外ROM506は、使用領域外のROMであるので、遊技の進行に関係しないプログラム及びデータを記憶するための領域に相当する。特に本実施形態では、使用領域外ROM506は、役比モニタ113の表示制御に関するプログラム及びデータを記憶するための記憶領域、並びに試験信号の出力制御に関するプログラム及びデータを記憶するための記憶領域に相当する。
【0613】
主制御ROM502、遊技媒体数制御ROM504、及び使用領域外ROM506の各記憶領域は、いずれも、制御領域とデータ領域とを備える。
ここで、「データ領域」とは、プログラム以外の情報のみが記憶され、又は記憶されることとなる記憶領域をいう。
第4実施形態では、主制御に関する記憶領域を「領域1」とし、遊技媒体数制御に関する記憶領域を「領域2」とし、使用領域外の記憶領域を「領域3」と称する。
【0614】
ROMは、アドレス「0000h」~「2FFFh」の範囲を少なくとも有し、「16K」バイト以下の記憶領域を有する。この記憶領域中、主制御ROM502の制御領域1は「4.5K」バイト以下、データ領域1は「3.0K」バイト以下に設定されている。
また、遊技媒体数制御ROM504の記憶領域は、制御領域2及びデータ領域2の合計で「2.5K」バイト以下に設定されている。
【0615】
さらに、RWM中、主制御RWM503の記憶領域であるRWM領域1は、制御領域1に記憶されたプログラム(遊技の進行に関するプログラム)の実行中に使用される(更新される、参照される)記憶領域である。同様に、遊技媒体数制御RWM505の記憶領域であるRWM領域2は、制御領域2に記憶されたプログラム(遊技媒体数の制御に関するプログラム)の実行中に使用される(更新される、参照される)記憶領域である。さらに、使用領域外RWM507の記憶領域であるRWM領域3は、制御領域3に記憶されたプログラムの実行中に使用される(更新される、参照される)記憶領域である。
RWMの領域は、全体として「1024K」バイト以下に設定されている。さらに、RWM領域1及びRWM領域2は、それぞれ「512K」バイト以下に設定されている。
【0616】
主制御ROM502、遊技媒体数制御ROM504、及び使用領域外ROM506の各間には、未使用領域が介在していてもよく(図52の例)、あるいは主制御ROM502、遊技媒体数制御ROM504、及び使用領域外ROM506が連続するアドレスで配置されていてもよい。
同様に、主制御RWM503、遊技媒体数制御RWM505、及び使用領域外RWM507は連続するアドレスで配置されていてもよく(図52の例)、あるいは主制御RWM503、遊技媒体数制御RWM505、及び使用領域外RWM507の各間に未使用領域等が介在していてもよい。
【0617】
また、内蔵メモリ内には、1つの内蔵レジスタ領域を備えている。さらにこの内蔵レジスタ領域には、レジスタバンク0とレジスタバンク1とを備える。レジスタバンク0及びレジスタバンク1は、図42(第3実施形態)で説明したレジスタバンク0及びレジスタバンク1と同様のものであり、それぞれのレジスタバンクには各種のレジスタ(図42(B)参照)を備える。
【0618】
詳細は後述するが、レジスタバンク0又はレジスタバンク1の各レジスタは、制御領域1、制御領域2、又は制御領域3のいずれかに記憶されたプログラムを実行しているときに使用される。
具体的には、たとえば以下のように振り分けることが挙げられる。
(1)パターン1
レジスタバンク0:制御領域1に記憶されたプログラムを実行しているときに使用
レジスタバンク1:制御領域2及び制御領域3に記憶されたプログラムを実行しているときに使用
(2)パターン2
レジスタバンク0:制御領域1及び制御領域2に記憶されたプログラムを実行しているときに使用
レジスタバンク1:制御領域3に記憶されたプログラムを実行しているときに使用
【0619】
(3)パターン3
レジスタバンク0:制御領域1及び制御領域3に記憶されたプログラムを実行しているときに使用
レジスタバンク1:制御領域2に記憶されたプログラムを実行しているときに使用
(4)その他のパターン
本実施形態では2つのレジスタバンクを設けているが、たとえばレジスタバンクを3つ(制御領域ごとに)設け、
レジスタバンク0:制御領域1に記憶されたプログラムを実行しているときに使用
レジスタバンク1:制御領域2に記憶されたプログラムを実行しているときに使用
レジスタバンク2:制御領域3に記憶されたプログラムを実行しているときに使用
とすることも可能である。
【0620】
また、図52に示すように、RWM領域1、RWM領域2、RWM領域3には、それぞれ固有のスタック領域1、スタック領域2、スタック領域3が設けられている。主制御ROM502のプログラムはスタック領域1を利用し、遊技媒体数制御ROM504のプログラムはスタック領域2を利用し、使用領域外ROM506のプログラムはスタック領域3を利用する。そして、主制御ROM502のプログラム、遊技媒体数制御ROM504のプログラム、及び使用領域外ROM506のプログラムは、それぞれ、スタック領域を共用しないように構成されている。具体的には、たとえば主制御ROM502のプログラムと遊技媒体数制御ROM504のプログラムとでスタック領域1を共用するようなことはしない。
さらに、主制御ROM502のプログラム、遊技媒体数制御ROM504のプログラム、及び使用領域外ROM506のプログラムは、いずれも、対応するスタック領域(たとえば主制御ROM502のプログラムではスタック領域1)以外のスタック領域を使用しないように構成されている。具体的には、たとえば主制御ROM502のプログラムがスタック領域3を使用するようなことはしない。
【0621】
以上説明したように、第4実施形態では、
(1)「制御領域1」、「データ領域1」とは、主制御ROM502(使用領域)の記憶領域を指し、
(2)「制御領域2」、「データ領域2」とは、遊技媒体数制御ROM504(使用領域)の記憶領域を指し、
(3)「制御領域3」、「データ領域3」とは、使用領域外ROM506の記憶領域を指し、
(4)「RWM領域1」とは主制御RWM503(使用領域)の記憶領域を指し、「スタック領域1」とはRWM領域1のスタック領域を指し、
(5)「RWM領域2」とは、遊技媒体数制御RWM505(使用領域)の記憶領域を指し、「スタック領域2」とはRWM領域2のスタック領域を指し、
(6)「RWM領域3」とは、使用領域外RWM507の記憶領域を指し、「スタック領域3」とはRWM領域3のスタック領域を指す
ものとする。
【0622】
図53は、主制御領域、遊技媒体数制御領域、使用領域外領域の区分例を示す図であり、(A)は例1を示し、(B)は例2を示す。
図中(A)の例1では、主制御領域内には使用領域外を設けないようにしたものである。換言すれば、主制御領域及び遊技媒体数制御領域の外部に使用領域外を設けたものである。
この場合には、
(1)主制御領域
遊技の進行に関するプログラム及びデータを記憶するための記憶領域(主制御ROM502及び主制御RWM503)を含み、遊技機10の試験に必要な信号の出力制御及び不正防止を目的として使用される記憶領域(使用領域外ROM506及び使用領域外RWM507)を含まない。
(2)遊技媒体数制御領域
遊技媒体数の制御に係るプログラム及びデータを記憶するための記憶領域(遊技媒体数制御ROM504、遊技媒体数制御RWM505)
(3)使用領域外領域
遊技機10の試験に必要な信号の出力制御及び不正防止を目的として使用される記憶領域(使用領域外ROM506及び使用領域外RWM507)
となる。
【0623】
また、図中(B)の例2では、主制御領域に、使用領域及び使用領域外を設けたものである。なお、遊技媒体数制御領域は、使用領域のみであり、使用領域外を有さない。上述したように、遊技媒体数制御領域は、遊技媒体数に係る制御のみを実行するためのプログラム及びデータを記憶する記憶領域であるためである。さらに、主制御領域及び遊技媒体数制御領域の外部に使用領域外を有さない。
この場合には、
(1)主制御領域
遊技の進行に関するプログラム及びデータを記憶するための記憶領域(主制御ROM502及び主制御RWM503)、及び遊技機10の試験に必要な信号の出力制御及び不正防止を目的として使用される記憶領域(使用領域外ROM506及び使用領域外RWM507)
(2)遊技媒体数制御領域
遊技媒体数の制御に係るプログラム及びデータを記憶するための記憶領域(遊技媒体数制御ROM504、遊技媒体数制御RWM505)
となる。
【0624】
図54は、主制御領域(使用領域、使用領域外)及び遊技媒体数制御領域間における通信を示す図である。図54の例では、図53(B)の例2による記憶領域の区分をしている。すなわち、主制御領域内に使用領域と使用領域外とを備える。
主制御基板50に搭載される1チップマイクロプロセッサ500の1個の主CPU501におけるプログラムの実行は、主制御ROM502の制御領域1のプログラムを主とする。また、遊技媒体数制御ROM504の使用領域のプログラム及び使用領域外ROM506の領域のプログラムは、主制御ROM502の制御領域1のプログラムから、予め定められたアドレスを(換言すれば、「静的に」)呼び出された上で実行される。その際のプログラムリストにおいては、呼出し先アドレスが明らかに記載されているように構成されている。
また、遊技媒体数制御ROM504のプログラム及び使用領域外ROM506のプログラムは、機能ごとにモジュール化されており、主制御ROM502のプログラムによって呼び出された際には、主制御ROM502のプログラムで利用している全レジスタ(「全レジスタ」とは、複数のレジスタを指すため、「複数のレジスタ」とも称する。以下同じ。)が保護されるように構成されている。全レジスタを保護する場合には、以下の方法が挙げられる。
【0625】
(1)第1の方法
主制御ROM502のプログラムで使用するレジスタバンクと、遊技媒体数制御ROM504のプログラム及び使用領域外ROM506のプログラムで使用するレジスタバンクとを異ならせる。換言すれば、主制御ROM502のプログラムから、遊技媒体数制御ROM504のプログラム又は使用領域外ROM506のプログラムを呼び出し、遊技媒体数制御ROM504のプログラム又は使用領域外ROM506のプログラムを実行する場合には、レジスタバンクを切り替える。
【0626】
(2)第2の方法
主制御ROM502のプログラムで使用するレジスタバンクと、遊技媒体数制御ROM504のプログラム又は使用領域外ROM506のプログラムで使用するレジスタバンクとを同一にする。この場合には、主制御ROM502のプログラムから遊技媒体数制御ROM504のプログラム又は使用領域外ROM506のプログラムを呼出して実行する際に、全レジスタの退避命令を実行する。
全レジスタを保護するプログラムについては後述する。
【0627】
主制御領域の使用領域において、制御領域1に記憶されたプログラムは、データ領域1に記憶されたデータを参照可能である。また、制御領域1に記憶されたプログラムは、RWM領域1に記憶されたデータを参照・更新可能である。
同様に、制御領域2に記憶されたプログラムは、データ領域2に記憶されたデータを参照可能であり、RWM領域2に記憶されたデータを参照・更新可能である。
さらに、制御領域3に記憶されたプログラムは、データ領域3に記憶されたデータを参照可能であり、RWM領域3に記憶されたデータを参照・更新可能である。
【0628】
一方、制御領域1のプログラムは、制御領域2のプログラムを呼び出すことが可能であり、制御領域3のプログラムを呼び出すことが可能である。具体的には、制御領域1のプログラムのCALLEX命令又はCALL命令に基づいて、制御領域2のプログラムを呼び出し、実行することが可能である。また、制御領域2のプログラムのRETEX命令又はRET命令に基づいて、制御領域2の当該プログラムの実行後に、制御領域1のプログラムの当該CALLEX命令又はCALL命令直後に復帰することが可能である。
同様に、制御領域1のプログラムのCALLEX命令又はCALL命令に基づいて、制御領域3のプログラムを呼び出し、実行することが可能である。また、制御領域3のプログラムのRETEX命令又はRET命令に基づいて、制御領域3の当該プログラムの実行後に、制御領域1のプログラムの当該CALLEX命令又はCALL命令直後に復帰することが可能である。
【0629】
これに対し、制御領域2のプログラムから制御領域1のプログラム(サブルーチン)を呼び出したり、制御領域2のプログラムから制御領域3のプログラム(サブルーチン)を呼び出すことはできないように構成されている。仮に、制御領域2のプログラムから制御領域1又は制御領域3のプログラム(サブルーチン)の呼出しを可能にすると、プログラムの構成が煩雑になるためである。また、主制御ROM502及び遊技媒体数制御ROM504の記憶容量に上限を設けた趣旨から逸脱するおそれがあるためである。
【0630】
同様に、制御領域3のプログラムから制御領域1のプログラム(サブルーチン)を呼び出したり、制御領域3のプログラムから制御領域2のプログラム(サブルーチン)を呼び出すことはできないように構成されている。仮に、制御領域3のプログラムから、制御領域1又は制御領域2のプログラム(サブルーチン)の呼出しを可能にすると、プログラムの構成が煩雑になるためである。また、主制御ROM502及び遊技媒体数制御ROM504の記憶容量に上限を設けた趣旨から逸脱するおそれがあるためである。
【0631】
さらにまた、制御領域1のプログラムにより、データ領域2のデータを直接参照することはできない。この場合には、制御領域1のプログラムから制御領域2のプログラムを呼び出し、制御領域2のプログラムによってデータ領域2のデータを参照する。
同様に、制御領域1のプログラムにより、データ領域3のデータを直接参照することはできない。この場合には、制御領域1のプログラムから制御領域3のプログラムを呼び出し、制御領域3のプログラムによってデータ領域3のデータを参照する。
【0632】
さらに、制御領域1のプログラムにより、RWM領域2のデータを更新することはできないが、RWM領域2のデータを参照することは可能であるように構成されている。
同様に、制御領域2のプログラムにより、RWM領域1のデータを更新することはできないが、RWM領域1のデータを参照することは可能であるように構成されている。
また、制御領域1のプログラムにより、RWM領域3のデータを更新することはできないが、RWM領域3のデータを参照することは可能であるように構成されている。
同様に、制御領域3のプログラムにより、RWM領域1のデータを更新することはできないが、RWM領域1のデータを参照することは可能であるように構成されている。
【0633】
さらにまた、制御領域2のプログラムにより、RWM領域3のデータを更新することはできないが、RWM領域3のデータを参照することは可能であるように構成されている。
同様に、制御領域3のプログラムにより、RWM領域2のデータを更新することはできないが、RWM領域2のデータを参照することは可能であるように構成されている。
【0634】
以上のように、制御領域「N」(「N」は、「1」、「2」、又は「3」のいずれか)のプログラムにより、RWM領域「M」(「M」は、「N」以外とする。)のデータを更新することができないように(参照は可能に)構成されている。
仮に、制御領域「N」のプログラムにより、RWM領域「M」のデータを更新可能とすると、図52に示すように、RWM領域1及びRWM領域2の容量の上限を「512K」バイトと定めた趣旨から逸脱してしまうことになるためである。
【0635】
また、制御領域1のプログラムの使用量削減のため、制御領域2又は制御領域3に、共通の汎用サブルーチンを設けないように構成されている。制御領域1のプログラムで使用可能な汎用サブルーチンを制御領域2又は制御領域3に設けると、制御領域1に記憶されるべきプログラムを実質的に制御領域2又は制御領域3に記憶可能となってしまい、制御領域1の記憶容量に上限(「4.5K」バイト以下)を設けた趣旨から逸脱してしまうおそれがあるためである。
【0636】
さらにまた、制御領域1、制御領域2、及び制御領域3の各プログラムのモジュールは、必ずサブルーチン形式で呼び出し、サブルーチン終了後はRETEX命令又はRET命令により呼出し直後に戻るように構成されている。さらに、モジュールは、目的ごとに1つ設けられる。このように構成することにより、プログラムの構成の明確化を図ることができる。
なお、「モジュール」とは、目的ごとのプログラムのまとまりを指す。
また、「サブルーチン」とは、CALLEX命令やCALL命令等によりメインルーチンから呼び出され、RETEX命令又はRET命令等により必ず呼出し直後に戻るプログラムのまとまりを指す。したがって、サブルーチンは、モジュールの下位概念であるといえる。
【0637】
続いて、制御領域1、制御領域2、及び制御領域3のプログラムの具体例を説明する。
以下の図55図57の例では、
制御領域1:主制御領域の使用領域
制御領域2:遊技媒体数制御領域(使用領域)
制御領域3:主制御領域の使用領域外
とする。
図55は、制御領域1、制御領域2、及び制御領域3のプログラムの例1を示す図である。例1では、制御領域1のプログラムはレジスタバンク0を使用し、制御領域2及び制御領域3のプログラムはレジスタバンク1を使用する。したがって、制御領域1のプログラムから制御領域2又は制御領域3のプログラムを呼び出し、制御領域2又は制御領域3のプログラムを実行する場合には、レジスタバンクをレジスタバンク0からレジスタバンク1に切り替える必要がある。
さらに、制御領域2又は制御領域3のプログラムを終了し、制御領域1のプログラムに復帰する場合には、レジスタバンクをレジスタバンク1からレジスタバンク0に切り替える(戻す)必要がある。
【0638】
なお、制御領域1のプログラム以外のプログラム(制御領域2のプログラムや制御領域3のプログラム)の実行中は、割込み処理が入ることにより他の領域のRWM領域のデータが更新されないように、割込み処理が禁止される。
また、禁止することができない割込み(NMI)は使用しないように構成されている。
【0639】
図55において、制御領域1のプログラムは、以下の通りである。
最初の「ORG 0000h」は、制御領域1の先頭アドレスが「0000h」であることを示す。
次の「M1_aaaaa」は、制御領域1の最初のプログラムを示す。
このプログラムにおいて、最初の「LD SP,@STACK1」は、SPレジスタ(スタックポインタレジスタ。ここでは、レジスタバンク0のSPレジスタを指す。)にスタック1をセットすることを示す。スタック1の初期値(@STACK1)は、図55に示すように「F200h」であり、この値をレジスタバンク0のSPレジスタに書き込む。
【0640】
「CALLEX M2_nnnnn」は、プログラム「M2_nnnnn」を呼び出す命令である。この例では、プログラム「M2_nnnnn」は、制御領域2に記憶されている。
「CALLEX mn」の命令が実行されると、
(1)その時点において割込み許可状態であるか割込み禁止状態であるかにかかわらず、割込みを禁止し、
(2)レジスタバンクをレジスタバンク0からレジスタバンク1に切り替え、
(3)指定されるアドレスにコールする(呼び出す)
ことを実行する。
このように、第1制御領域のプログラムから第2制御領域又は第3制御領域のプログラムを実行する際に、CALLEX命令を実行することによって、第2制御領域又は第3制御領域のプログラムを実行可能とする。
【0641】
ここで、一般的なCALL命令を用いるのではなくCALLEX命令を用いているのは、制御領域1のプログラム「M1_aaaaa」から制御領域2のプログラム「M2_nnnnn」を呼び出す(実行する)ので、レジスタバンクを切り替える必要があるためである。
換言すると、制御領域1のプログラムの実行時と制御領域2のプログラムの実行時とで、異なるレジスタバンク(異なるレジスタ)を用いることにより、制御領域2のプログラムの終了後、制御領域1のプログラムに復帰したときに、制御領域2のプログラムの呼出し直前のレジスタ値に戻すことができる。
【0642】
また、CALLEX命令は、上述したように、対象となるプログラムを呼び出す前に割込みが禁止されることから、DI(割込み禁止)命令を設けていない。
また、CALLEX命令により他のプログラムが実行され、当該他のプログラムの終了時に実行されるRETEX命令には割込みを許可する命令を含むので、当該他のプログラムの終了時にはEI(割込み許可)命令を設けていない。
【0643】
「CALLEX M2_nnnnn」の実行により、制御領域2の「M2_nnnnn」の先頭アドレスに飛ぶ。なお、制御領域2のプログラムの冒頭にある「ORG 2000h」は、制御領域2の先頭アドレスが「2000h」であることを示す。
制御領域2のプログラム「M2_nnnnn」において、先頭アドレスの「LD SP,@STACK2」は、SPレジスタ(ここでは、レジスタバンクが切り替えられた後、すなわちレジスタバンク1のSPレジスタを意味する。)にスタック2をセットすることを示す。スタック2の初期値(@STACK2)は、図55に示すように「F300h」であり、この値をレジスタバンク1のSPレジスタに書き込む。
【0644】
次の「CALL M2_ooooo」は、プログラム「M2_ooooo」を呼び出す命令である。プログラム「M2_ooooo」は、制御領域2(同一領域)に記憶されている。ここで、同一の制御領域2内のプログラム「M2_ooooo」の呼出しであることから、レジスタバンクを切り替える必要はない。このため、CALLEX命令ではなくCALL命令を用いている(CALL命令では、CALLEX命令と異なり、レジスタバンクは切り替わらない。)。図55の例1では、制御領域2及び制御領域3のプログラムを実行する場合には、いずれもレジスタバンク1を使用する。そして、レジスタバンク0からレジスタバンク1への切替えは、上述した「CALLEX M2_nnnnn」によって実行済みである。
【0645】
プログラム「M2_ooooo」を終了(RET命令)した後にRETEX命令を実行する。このRETEX命令は、制御領域1のプログラムで実行された「CALLEX M2_nnnnn」に対応する命令である。
RETEX命令は、
(1)割込み状態をCALLEX命令前の状態にし、
(2)レジスタバンクをレジスタバンク1からレジスタバンク0に切り替え、
(3)リターン(RET)する(「CALLEX M2_nnnnn」の次の命令(戻り番地のプログラム))に戻る)
ことを実行する。
一方、RET命令は、RETEX命令とは異なり、割込み状態を変化させない。また、レジスタバンクの切替えを行わない。
【0646】
これにより、再度、制御領域1のプログラムに戻る。
なお、CALLEX命令時の状態が割込み許可状態であるときは、RETEX命令によって割込み許可状態となる。一方、CALLEX命令時の状態が割込み禁止状態であるときは、RETEX命令によって割込み禁止状態となる。
【0647】
以上のプログラムの流れにおいて、たとえばレジスタバンク0及びレジスタバンク1のSPレジスタは、以下のようになる。
制御領域1のプログラム「M1_aaaaa」において、「LD SP,@STACK1」により、
SP=F200h(レジスタバンク0)
となる。
【0648】
次に何らかのプログラムが実行され、スタック領域1にたとえば2バイトデータが積まれると、
SP=F1FEh(レジスタバンク0)
に更新される。
このSPレジスタ値の状態で「CALLEX M2_nnnnn」が実行されると、制御領域2におけるプログラム「M2_nnnnn」の「LD SP,@STACK2」により、
SP=F300h(レジスタバンク1)
となる。
【0649】
そして、制御領域2のプログラム「M2_ooooo」の実行により、スタック領域2にたとえば4バイトのスタックが詰まれると、
SP=F2FCh(レジスタバンク1)
に更新される。
このSPレジスタ値の状態でプログラム「M2_ooooo」が終了し、RETEX命令により制御領域1のプログラムに戻ると、制御領域1のプログラムで使用するレジスタバンクはレジスタバンク0となり、その時点におけるSPレジスタ値は「F1FEh」となる。
なお、制御領域2のプログラム「M2_ooooo」が終了し、RETEX命令により制御領域1のプログラムに戻ったときでも、レジスタバンク1のSPレジスタ値は「F2FCh」のままである。
【0650】
次に、制御領域1におけるプログラム「M1_aaaaa」において、「CALLEX M3_xxxxx」は、プログラム「M3_xxxxx」を呼び出す命令である。この例では、プログラム「M3_xxxxx」は、制御領域3に記憶されている。
なお、この「CALLEX M3_xxxxx」により、再度、レジスタバンクは、レジスタバンク0からレジスタバンク1に切り替えられる。
「CALLEX M3_xxxxx」の実行により、制御領域3の「M3_xxxxx」の先頭アドレスに飛ぶ。なお、制御領域3の冒頭にある「ORG 2A00h」は、制御領域3の先頭アドレスが「2A00h」であることを示す。
【0651】
制御領域3のプログラム「M3_xxxxx」において、「LD SP,@STACK3」は、SPレジスタ(ここでは、レジスタバンク1のSPレジスタを意味する。)にスタック3をセットすることを示す。スタック3の初期値(@STACK3)は、図55に示すように「F400h」であり、この値をレジスタバンク1のSPレジスタに書き込む。よって、上述したように、「LD SP,@STACK3」の直前におけるレジスタバンク1のSPレジスタ値は「F2FCh」であるが、この値が「F400h」に上書きされる。
次の「CALL M3_yyyyy」は、プログラム「M3_yyyyy」を呼び出す命令である。プログラム「M3_yyyyy」は、制御領域3に記憶されている。上記と同様に、このCALL命令では、レジスタバンクは切り替わらない。
【0652】
そして、プログラム「M3_yyyyy」が終了(RET命令)した後にRETEX命令により、割込み状態を「CALLEX M3_xxxxx」命令前の状態にし、レジスタバンクをレジスタバンク1からレジスタバンク0に切り替え、リターン(RET)する。これにより、「CALLEX M3_xxxxx」の次の命令(戻り番地のプログラム)に戻る。
【0653】
以上のようにして、制御領域1のプログラムから制御領域2又は制御領域3のプログラムに飛ぶときは、CALLEX命令によってレジスタバンクが切り替えられる。これにより、制御領域1のプログラムで使用していたレジスタバンク0の各レジスタは保護される。
一方、例1では、制御領域2のプログラム「M2_nnnnn」が実行された後、制御領域3のプログラム「M3_xxxxx」が実行される。そして、制御領域2のプログラムと制御領域3のプログラムでは、いずれも、レジスタバンク1が使用される。このため、制御領域2のプログラムで使用されたレジスタ値が、制御領域3のプログラムの実行により変わるおそれがある。
【0654】
制御領域2のプログラムと制御領域3のプログラムとの往来で、レジスタ値を保護する必要がない場合には、レジスタ値を保護するための命令は不要である。これに対し、制御領域2のプログラムの実行後に制御領域3のプログラムを実行したとき、あるいは制御領域3のプログラムの実行後に制御領域2のプログラムを実行したときに、レジスタ値が変化しないようにレジスタを保護する場合には、制御領域2におけるプログラム「CALL M2_ooooo」の前後、あるいは制御領域3におけるプログラム「CALL M3_yyyyy」の前後に、レジスタを保護する命令を加える。
【0655】
具体的には、
制御領域2のプログラムにおいて、
PUSH ALL
CALL M2_ooooo
POP ALL
とするか、又は、
制御領域3のプログラムにおいて、
PUSH ALL
CALL M3_yyyyy
POP ALL
とする。
ここで、第3実施形態と同様に、「PUSH ALL」は全レジスタをスタック領域に退避させる命令文であり、「POP ALL」は退避した全レジスタをスタック領域から復帰させる命令文である。
また、後述する「PUSH AF」はAFレジスタをスタック領域に退避させる命令文であり、「POP AF」は退避したAFレジスタをスタック領域から復帰させる命令文である。
なお、スタック領域に退避させたり、スタック領域から復帰させたりする場合のスタック領域とは、制御領域1の命令として「PUSH ALL」、「POP ALL」、「PUSH AF」、「POP AF」を行った場合には、図52で示したスタック領域1が該当し、制御領域2の命令として「PUSH ALL」、「POP ALL」、「PUSH AF」、「POP AF」を行った場合には、図52で示したスタック領域2が該当し、制御領域3の命令として「PUSH ALL」、「POP ALL」、「PUSH AF」、「POP AF」を行った場合には、図52で示したスタック領域3が該当する。
【0656】
図56は、制御領域1、制御領域2、及び制御領域3のプログラムの例2を示す図である。例2では、制御領域1及び制御領域2のプログラムはレジスタバンク0を使用し、制御領域3のプログラムはレジスタバンク1を使用する。したがって、制御領域1のプログラムから制御領域2のプログラムを呼び出して実行する場合には、レジスタバンク0のままである。これに対し、制御領域1のプログラムから制御領域3のプログラムを呼び出して実行する場合にはレジスタバンクをレジスタバンク0からレジスタバンク1に切り替える。そして、制御領域3のプログラムを終了し、制御領域1のプログラムに復帰する場合には、レジスタバンクをレジスタバンク1からレジスタバンク0に切り替える(戻す)。
【0657】
図56において、制御領域1のプログラムは、以下の通りである。
最初の「ORG 0000h」は、例1と同様である。
「M1_aaaaa」は、制御領域1の先頭アドレスのプログラムを示す。
このプログラムにおいて、「LD SP,@STACK1」は、例1と同様に、SPレジスタにスタック1をセットする命令である。
その後、制御領域2のプログラム「M2_nnnnn」を実行するが、制御領域1のプログラムと制御領域2のプログラムとはいずれもレジスタバンク0を使用するので、レジスタバンクの切替えを伴うCALLEX命令は用いない。換言すると、この場合にはCALL命令を用いる。CALL命令ではレジスタバンクの切替えは行われない。
【0658】
制御領域1のプログラムの実行中に制御領域2のプログラムを実行するときは、割込み処理を禁止する。割込み禁止命令は、図中、DI命令である。
DI命令の実行後、AFレジスタを退避する(スタック領域に格納する)ため、「PUSH AF」を実行する。その後、「CALL M2_nnnnn」により、制御領域2のプログラム「M2_nnnnn」を実行する。
ここで、AFレジスタを退避させる理由は、以下の通りである。制御領域2のプログラム「M2_nnnnn」に飛ぶと、後述するように、スタックポインタをセットする命令「LD SP,@STACK2」が実行される。このLD命令が実行されると、フラグ(F)レジスタの第2ゼロフラグ(図43参照)の値が変化してしまうか、変化してしまうおそれがある。そこで、制御領域2のプログラムに飛ぶ前に、AFレジスタを退避させている。
【0659】
制御領域2の冒頭の「ORG 2000h」は、例1と同様である。
制御領域2の「M2_nnnnn」において、「LD (BF_STACK),SP」は、スタックポインタを退避する命令である。この処理は、現在のSPレジスタ値を、図52に示すRWM領域2の所定の記憶領域(BF_STACK)に記憶する処理に相当する。制御領域1のプログラムと制御領域2のプログラムとで同一のレジスタバンク0を使用するため、制御領域1のプログラムから制御領域2のプログラムに飛んだときに、制御領域1のプログラムを実行していたときのスタックポインタを退避させ、かつ、制御領域2のプログラムのためのスタックポインタをセットするためである。
【0660】
換言すると、CALL命令によってレジスタバンクの切替えが行われず、制御領域1のプログラムと制御領域2のプログラムとで同一のレジスタバンクのレジスタ(たとえばSPレジスタ)を使用することになるため、「LD (BF_STACK),SP」によってレジスタを退避させないと、制御領域1のプログラムで使用していたレジスタポインタが、制御領域2のプログラムの実行によって書き換えられてしまい、制御領域2のプログラムの終了後に制御領域1のプログラムに復帰したときに、制御領域1のプログラムでの正しいスタックポインタを指定できなくなってしまうからである。
【0661】
次の「LD SP,@STACK2」は、上記例1と同様に、SPレジスタにスタック2(F300h)をセットすることを示す。
「PUSH ALL」は、上述のように、全レジスタを退避する命令である。
次の「CALL M2_ooooo」は、プログラム「M2_ooooo」を呼び出す命令である。プログラム「M2_ooooo」は、制御領域2に記憶されている。通常のCALL命令では、レジスタバンクは切り替わらないので、プログラム「M2_ooooo」の実行中もレジスタバンク0のままである。
プログラム「M2_ooooo」を終了すると、「POP ALL」により、退避していた全レジスタを復帰させる。
【0662】
次の「LD SP,(BF_STACK)」は、退避していたスタックポインタを復帰する命令である。この処理は、図52に示すRWM領域2の所定の記憶領域(BF_STACK)に記憶していたデータをSPレジスタに記憶する(SPレジスタ値にする)処理に相当する。これにより、スタックポインタは、「LD (BF_STACK),SP」の命令前の値、換言すれば、制御領域1のプログラムが実行されていたときの値に戻る。
その後、RET命令により、制御領域1のプログラムに戻る。
制御領域1のプログラムに戻ると、「POP AF」により、退避させていたAFレジスタを復帰させる。これにより、プログラム「M2_nnnnn」が実行される前の値にAFレジスタが戻る。
次に、EI命令により、禁止していた割込みを再開する。
【0663】
以上のスタックポインタのセット、退避、復帰について具体例を挙げて説明する。
まず、制御領域1のプログラム「M1_aaaaa」において、「LD SP,@STACK1」により、
SP=F200h(レジスタバンク0)
となる。
次に何らかのプログラムが実行され、「F200h」にたとえば1バイトデータが積まれると、
SP=F1FFh(レジスタバンク0)
に更新される。
このSPレジスタ値の状態で「CALL M2_nnnnn」が実行され、制御領域2のプログラム「M2_nnnnn」が実行されると、「LD (BF_STACK),SP」によって、制御領域1のプログラムでのスタックポインタ「F1FFh」を退避させる。この場合、RWM領域2の所定の記憶領域に「F1FFh」を記憶する。
【0664】
次に、「LD SP,@STACK2」により、
SP=F300h(レジスタバンク0)
となる。
よって、SPがそれまでの「F1FFh」から「F300h」に更新される。
そして、プログラム「M2_ooooo」の実行により、たとえば2バイトのスタックが積まれると、
SP=F2FEh(レジスタバンク0)
に更新される。
【0665】
次に、プログラム「M2_ooooo」を終了し、「LD SP,(BF_STACK)」が実行されると、上記所定の記憶領域に記憶されている「F1FFh」を読み込み、SPに記憶(上書き)する。換言すると、SPはそれまでの「F2FEh」から「F1FFh」に更新される。
よって、
SP=F1FFh(レジスタバンク0)
となる。
【0666】
次に、制御領域1のプログラムにおいて、「CALLEX M3_xxxxx」の実行により、制御領域3の「M3_xxxxx」に飛ぶ。また、このCALLEX命令により、割込みが禁止されるとともに、レジスタバンクがレジスタバンク0からレジスタバンク1に切り替えられる。
制御領域3の冒頭にある「ORG 2A00h」は、例1と同じである。
制御領域3の「M3_xxxxx」において、「LD SP,@STACK3」では、SPレジスタ(レジスタバンク1のSPレジスタ)にスタック3(F400h)をセットする。
次の「CALL M3_yyyyy」は、プログラム「M3_yyyyy」を呼び出す命令である。プログラム「M3_yyyyy」は、制御領域3に記憶されている。上記と同様に、このCALL命令では、レジスタバンクは切り替わらない。
【0667】
そして、プログラム「M3_yyyyy」が終了(RET命令)した後にRETEX命令により、割込み状態を「CALLEX M3_xxxxx」命令前の状態にし、レジスタバンクをレジスタバンク1からレジスタバンク0に切り替え、リターン(RET)する。これにより、「CALLEX M3_xxxxx」の次の命令(戻り番地のプログラム)に戻る。
【0668】
図57は、制御領域1、制御領域2、及び制御領域3のプログラムの例3を示す図である。例3では、制御領域1及び制御領域3のプログラムはレジスタバンク0を使用し、制御領域2のプログラムはレジスタバンク1を使用する。したがって、制御領域1のプログラムから制御領域3のプログラムを呼び出して実行する場合にはレジスタバンク0のままである。これに対し、制御領域1のプログラムから制御領域2のプログラムを呼び出して実行する場合にはレジスタバンクをレジスタバンク0からレジスタバンク1に切り替える。そして、制御領域2のプログラムを終了し、制御領域1のプログラムに復帰する場合には、レジスタバンクをレジスタバンク1からレジスタバンク0に切り替える(戻す)。
【0669】
図56において、制御領域1のプログラムは、以下の通りである。
最初の「ORG 0000h」は、例1と同様である。
次の「M1_aaaaa」において、「LD SP,@STACK1」は、例1と同様に、SPレジスタにスタック1(F200h)をセットする命令である。
次の「CALLEX M2_nnnnn」は、制御領域2のプログラム「M2_nnnnn」を呼び出す命令である。このCALLEX命令により、割込みを禁止し、レジスタバンクをレジスタバンク0からレジスタバンク1に切り替える。
「CALLEX M2_nnnnn」の実行により、制御領域2のプログラム「M2_nnnnn」に飛ぶ。なお、制御領域2の冒頭にある「ORG 2000h」は、例1と同じである。
制御領域2の「M2_nnnnn」において、「LD SP,@STACK2」は、例1と同様に、SPレジスタ(レジスタバンク1のSPレジスタ)にスタック2(F300h)をセットする命令である。
【0670】
次の「CALL M2_ooooo」は、プログラム「M2_ooooo」を呼び出す命令である。プログラム「M2_ooooo」は、制御領域2に記憶されている。CALL命令では、レジスタバンクは切り替わらない。
プログラム「M2_ooooo」を終了(RET命令)した後にRETEX命令を実行する。RETEX命令により、割込み状態をCALLEX命令前の状態にし、レジスタバンクをレジスタバンク1からレジスタバンク0に切り替え、リターン(RET)する。これにより、制御領域1の「CALLEX M2_nnnnn」の次の命令(戻り番地のプログラム)に戻る。そして、再度、第1制御領域内のプログラムを実行可能とする。
【0671】
制御領域1において、プログラム「M2_nnnnn」の実行後、制御領域3のプログラム「M3_xxxxx」を実行する。
制御領域1のプログラムと制御領域3のプログラムとはいずれもレジスタバンク0を使用するので、レジスタバンクの切替えを伴うCALLEX命令は用いない。
制御領域1のプログラムの実行中に制御領域3のプログラムを実行するときは、まず、DI命令により割込み処理を禁止する。
DI命令の実行後、「PUSH AF」命令によりAFレジスタを退避する(スタック領域に格納する)。その後、「CALL M3_xxxxx」により、制御領域3のプログラム「M3_xxxxx」を実行する。
【0672】
制御領域3の冒頭にある「ORG 2A00h」は、例1と同じである。
制御領域3の「M3_xxxxx」において、「LD (BF_STACK),SP」は、スタックポインタを退避する命令である。この処理は、現在のSPレジスタ値を、図52に示すRWM領域3の所定の記憶領域(BF_STACK)に記憶する処理に相当する。制御領域1のプログラムと制御領域3のプログラムとで同一のレジスタバンク0を使用するため、制御領域1のプログラムから制御領域3のプログラムに飛んだときに、制御領域1のプログラムを実行していたときのスタックポインタを退避させ、かつ、制御領域3のプログラムのためのスタックポインタをセットするためである。
【0673】
「LD SP,@STACK3」は、上記例1と同様に、SPレジスタにスタック3(F400h)をセットすることを示す。
次に、「PUSH ALL」により、全レジスタを退避する。
次の「CALL M3_yyyyy」は、プログラム「M3_yyyyy」を呼び出す命令である。プログラム「M3_yyyyy」は、制御領域3に記憶されている。CALL命令では、レジスタバンクは切り替わらないので、プログラム「M3_yyyyy」の実行中もレジスタバンク0のままである。
プログラム「M3_yyyyy」を終了すると、「POP ALL」により、退避していた全レジスタを復帰させる。
【0674】
次の「LD SP,(BF_STACK)」は、退避していたスタックポインタを復帰する命令である。この処理は、図52に示すRWM領域3の所定の記憶領域(BF_STACK)に記憶していたデータをSPレジスタに記憶する(SPレジスタ値にする)処理に相当する。これにより、スタックポインタは、「LD (BF_STACK),SP」の命令前の値、換言すれば、制御領域1のプログラムが実行されていたときの値に戻る。
その後、RET命令により、制御領域1のプログラムに戻る。
制御領域1のプログラムに戻ると、「POP AF」により、退避させていたAFレジスタを復帰させる。これにより、AFレジスタがプログラム「M2_nnnnn」が実行される前の値に戻る。
そして、EI命令により、禁止していた割込みを再開する。
【0675】
次に、プログラムのコードサイズについて説明する、
第4実施形態において、各命令のコードサーズは、以下の通りである。
CALLEX mn(mn=2000h~20FFh):2バイト
CALLEX mn(mn≠2000h~20FFh):4バイト
RETEX:2バイト
CALL mn:3バイト
RET:1バイト
DI:1バイト
EI:1バイト
PUSH AF:1バイト
POP AF:1バイト
【0676】
CALLEX命令のコードサイズは、第3実施形態と同じであるが、改めて説明する。
CALLEX命令において、アドレス「2000h」~「20FFh」の範囲を呼び出す場合の「CALLEX mn」のコードサイズは2バイトとなり、アドレス「2000h」~「20FFh」以外の範囲を呼び出す場合の「CALLEX mn」のコードサイズは、4バイトとなるように構成されている。
【0677】
アドレス「2000h」~「20FFh」の範囲は、「FFh」、すなわち1バイトである。この場合に、アドレス値「2000h」のコード値を「0h」にする。これにより、アドレス値「20FFh」を呼び出すときのコード値を「FFh」にすることができるので、アドレス「2000h」~「20FFh」の範囲のいずれを呼び出す場合であっても、「mn」のコードサイズを1バイトに設定することができる。
また、「CALLEX」のオペコードをコード化する場合に、当該コードを1バイトに設定する。これにより、「CALLEX mn」(mn=2000h~20FFh)のコードサイズを2バイトに設定することができる。
【0678】
一方、「mn」が「2100h」以上になると、「mn」のコードサイズは2バイトとなる。さらに、「mn」の範囲が「2000h」~「20FFh」でない場合には、「CALLEX」のコードを2バイトから構成する。オペコードを1バイトから構成する場合には、数千の命令のうち、256個に限られるため、「mn」の範囲が「2000h」~「20FFh」である場合の「CALLEX」のコードとして1バイトのコードを割り当てたが、「mn」の範囲が「2000h」~「20FFh」でない場合には、「CALLEX」のコードとして2バイトのコードを割り当てている。
【0679】
以上のように、「CALLEX mn」命令では、「mn」の範囲が「2000h」~「20FFh」の範囲内であればコードサイズが2バイトの命令となり、「mn」の範囲が上記範囲以外であればコードサイズが4バイトの命令となる。
よって、呼び出す回数が多い命令ほど、制御領域2のアドレス「2000h」~「20FFh」の範囲内に集約しておけば、それだけ、コードサイズが2バイトで済む命令が多くなる。これにより、制御領域1の記憶容量を節約することが可能となる。
また、第2制御領域のアドレス「2000h」~「25FFh」の範囲のうち、アドレス「2000h」~「20FFh」の範囲に、制御領域1のプログラムから制御領域2のプログラムを呼び出す際のアドレスをできるだけ多く収めておくことによって、制御領域2を確認するときに、制御領域1のプログラムから呼び出されるプログラムであることを容易に把握することができる。
【0680】
図55(例1)を例に挙げて具体的に説明する。
図55に示すように、制御領域2の先頭アドレスは「2000h」である。また、制御領域3の先頭アドレスは「2A00h」である。よって、たとえば制御領域2のプログラム「M2_nnnnn」を、アドレス「2000h」~「20FFh」の範囲内に配置しておけば、制御領域1のプログラム「CALLEX M2_nnnnn」を2バイトから構成することができる。
また、制御領域2のプログラム「M2_nnnnn」では、「LD SP,@STACK2」の後、「CALL M2_ooooo」を実行することにより、制御領域2のプログラム「M2_ooooo」を呼び出している。なお、プログラム「M2_ooooo」は、アドレス「2000h」~「20FFh」の範囲内である必要はない。
【0681】
ここで、制御領域1のプログラムにおいて、「CALLEX M2_nnnnn」ではなく、直接、「CALLEX M2_ooooo」とすることも考えられる。
しかし、制御領域2のプログラムにおいて、実際に実行するプログラム「M2_ooooo」をアドレス「2100h」以降に配置し、アドレス「2000h」~「20FFh」の範囲には、制御領域1のCALLEX命令によって呼び出されるプログラムの先頭プログラムを多く配置しておけば、それだけ、制御領域1のプログラムで2バイトのCALLEX命令を多く設けることが可能となる。よって、制御領域1のプログラム容量を節約することが可能となる。換言すると、制御領域1のプログラムから制御領域2のプログラムを呼び出すのは、1回に限られるものではなく、複数回呼び出されるように構成されていてもよい。
【0682】
また、制御領域3のプログラムの先頭アドレスは「2A00h」であり、「20FFh」以降である。したがって、制御領域3のプログラム「M3_xxxxx」は、アドレス「20FFh」以降に配置されている。このため、制御領域1のプログラム「CALLEX M3_xxxxx」は4バイトとなる。換言すると、制御領域3のアドレスには「2000h」~「20FFh」の範囲が存在しないので、制御領域1のプログラムから制御領域3のプログラムを呼び出す場合のCALLEX命令のコードサイズは、すべて4バイトとなる。なお、制御領域1のプログラムから制御領域3のプログラムを呼び出すのは、1回に限られるものではなく、複数回呼び出されるように構成されていてもよい。
【0683】
ここで、通常のCALL命令によりプログラム「M3_xxxxx」を呼び出す場合には、
DI(1バイト)
PUSH AF(1バイト)
CALL M3_xxxxx(3バイト)
POP AF(1バイト)
EI(1バイト)
となり、合計7バイトとなり、4バイトのCALLEX命令よりも大きくなる。よって、制御領域1のプログラムから制御領域3のプログラムを呼び出す場合であっても、CALL命令ではなくCALLEX命令を用いた方が容量を少なくすることができる。
【0684】
以上、本発明の第4実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、たとえば以下のような種々の変形が可能である。
(1)制御領域1のプログラムにおいて、2バイトからなる「CALLEX mn(mn=2000h~20FFh)」をより多く設けるために、第3実施形態の図50で示したJR(ジャンプ)命令を用いてもよい。
図58は、この場合のプログラム例を示す図である。JR命令のコードサイズは、第3実施形態と同様に3バイトであるものとする。
【0685】
そして、制御領域1のCALLEX命令で指定した制御領域2のアドレスには、JR命令を配置する。たとえば制御領域1のプログラムにおいて「CALLEX 2000h」とした場合には、制御領域2のアドレス「2000h」には、「JR 2100h」を置く。すなわち、ジャンプ先アドレスは「2100h」以降に設定されている。
「JR mn」命令は3バイト要するため、制御領域2のアドレス「2000h」以降では、3バイト刻みで「JR mn」を配置している。
そして、制御領域2のアドレス「2100h」以降に、実際のプログラムを配置すればよい。
このように設定すれば、制御領域1のプログラムにおいて、2バイトのCALLEX命令をできるだけ多く設けることができる。
【0686】
(2)図55の例1~図57の例3は、制御領域1において、制御領域2のプログラム「M2_nnnnn」を呼び出し、この「M2_nnnnn」を終了してから制御領域3のプログラム「M3_xxxxx」を呼び出し、この「M3_xxxxx」を実行したが、制御領域2のプログラムや、制御領域3のプログラムを実行する処理の順序や処理のタイミングは、適宜、設計変更することが可能である。
たとえば、制御領域2のプログラムを実行した後、制御領域1のプログラムを実行し、ある処理タイミングで制御領域3のプログラムを実行することや、制御領域3のプログラムを実行した後、制御領域1のプログラムを実行し、ある処理タイミングで制御領域2のプログラムを実行すること等が挙げられる。
また、上述したように、制御領域1のプログラムから制御領域2のプログラムを呼出す回数は、1回に限らず、複数回でもよい。同様に、制御領域1のプログラムから制御領域3のプログラムを呼出す回数は、1回に限らず、複数回でもよい。
【0687】
(3)第4実施形態は、メダルレス遊技機に限らず、風営法上の回胴式遊技機やぱちんこ遊技機にも適用することができる。さらには、遊技球を用いるパロットや、カジノマシンにも適用することができる。
(4)第1~第4実施形態、及び第1~第4実施形態で示した各種の変形例は、単独で実施されることに限らず、適宜組み合わせて実施することが可能である。
【0688】
<付記>
本願の当初明細書等に記載した発明(当初発明)は、たとえば以下の当初発明1及び2を挙げることができ、それぞれ、当初発明が解決しようとする課題、当初発明に係る課題を解決するための手段及び当初発明の効果は、以下の通りである。ただし、本明細書に記載した発明は、当初発明1及び2に限ることを意味するものではない。
【0689】
1.当初発明1
当初発明は、
主制御ROM領域(主制御ROM502の記憶領域)と、
遊技媒体数制御ROM領域(遊技媒体数制御ROM504の記憶領域)と、
使用領域外ROM領域(使用領域外ROM506の記憶領域)とを有し、
遊技媒体数制御ROM領域のプログラムからは、使用領域外ROM領域のプログラムを呼び出すことができないように構成され、
主制御ROM領域のプログラムからは、使用領域外ROM領域のプログラムを呼び出すことができるように構成されている
ことを特徴とする。
【0690】
2.当初発明2
当初発明は、
主制御ROM領域(主制御ROM502の記憶領域)と、
遊技媒体数制御ROM領域(遊技媒体数制御ROM504の記憶領域)と、
使用領域外ROM領域(使用領域外ROM506の記憶領域)とを有し、
第1レジスタバンク(レジスタバンク0)には、複数のレジスタ(たとえば、FレジスタやSPレジスタ等)を有し、
第2レジスタバンク(レジスタバンク1)には、複数のレジスタ(たとえば、FレジスタやSPレジスタ等)を有し、
主制御ROM領域のプログラムから遊技媒体数制御ROM領域のプログラムを呼び出す際には、特殊呼び出し命令(CALLEX命令)を用い、
特殊呼び出し命令を実行することによって、第1レジスタバンクから第2レジスタバンクに切り換え可能とする
ことを特徴とする。
【符号の説明】
【0691】
10 スロットマシン、遊技機
11 電源スイッチ
12 設定キースイッチ
13 設定スイッチ
14 リセットスイッチ
21 演出ランプ
22 スピーカ
23 画像表示装置
31 リール
32 モータ
33 リールセンサ
40a 1ベットスイッチ
40b 3ベットスイッチ
41 スタートスイッチ
42 ストップスイッチ
46 キャンセルスイッチ、精算スイッチ
47 計数スイッチ
50 メイン制御基板(メイン制御手段)、主制御基板(主制御手段)
51 入力ポート
52 出力ポート
53 (第1主制御)RWM
53a ベット数記憶手段
53b 付与数記憶手段
54 (第1主制御)ROM
55 メインCPU、(第1主制御)CPU
61 役抽選手段
62 当選フラグ制御手段
65 リール制御手段
66 入賞判定手段
67 付与手段
73 設定値表示手段
76 クレジット数表示LED
77 ベット数表示部
78 獲得数表示LED、付与数表示部
80 サブ制御基板(サブ制御手段)、副制御基板(副制御手段)
80a 1チップマイクロプロセッサ
81 入力ポート
82 出力ポート
83 (副制御)RWM
84 (副制御)ROM
85 サブCPU、(副制御)CPU
91 演出出力制御手段
100 払出制御基板(クレジット数管理基板)、遊技媒体数制御基板
101 入力ポート
102 出力ポート
103 (第2主制御)RWM
103a 遊技媒体数記憶手段
104 (第2主制御)ROM
105 クレジット数管理CPU、(第2主制御)CPU
106 コンデンサ
107 コンデンサA
108 コンデンサB
111 クレジット数管理手段
112 総遊技媒体数クリアスイッチ
113 役比モニタ
120 遊技媒体数表示基板(遊技媒体数表示装置)
121 遊技媒体数表示部
130 接続端子板
150 電源基板
151 コンデンサ
161 ハーネスA
162 ハーネスB
163 ハーネスC
164 ハーネスD
165 ハーネスE
166 ハーネスF
167 ハーネスG
168 ハーネスH
190 外部集中端子板
200 管理装置(CRユニット)、貸出ユニット
201 紙幣投入口
202 貸出スイッチ
203 返却スイッチ
204 度数表示部
205 カードリーダライタ
300 ホールコンピュータ
400 管理コンピュータ
500 1チップマイクロプロセッサ
501 主CPU
502 主制御ROM
503 主制御RWM
504 遊技媒体数制御ROM
505 遊技媒体数制御RWM
506 使用領域外ROM
507 使用領域外RWM
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46
図47
図48
図49
図50
図51
図52
図53
図54
図55
図56
図57
図58