(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
〔遊技機の基本構成〕
図1は、本実施の形態に係るパチンコ遊技機100の概略正面図である。
同図に示す遊技機の一例としてのパチンコ遊技機100は、遊技者の指示操作により打ち出された遊技球が入賞すると賞球を払い出すように構成されたものである。このパチンコ遊技機100は、遊技球が打ち出される遊技盤110と、遊技盤110を囲む枠部材150とを備えている。遊技盤110は、枠部材150に着脱自在に取り付けられている。
【0014】
遊技盤110は、前面に、遊技球により遊技を行うための遊技領域111と、下方から発射された遊技球が上昇して遊技領域111の上部位置へ向かう通路を形成するレール部材112と、遊技領域111の右側に遊技球を案内する案内部材113とを備えている。
本実施の形態では、遊技者により視認され易い遊技領域111の位置に、演出のための各種の画像を表示する画像表示部114が配設されている。この画像表示部114は、液晶ディスプレイ等による表示画面を備え、遊技者によるゲームの進行に伴い、例えば、図柄抽選結果(図柄変動結果)を遊技者に報知するための装飾図柄を表示したり、キャラクタの登場やアイテムの出現による演出画像を表示したりする。すなわち、画像表示部114は、装飾図柄や演出画像の表示手段である。
また、遊技盤110の前面に、各種の演出に用いられる可動役物115および盤ランプ116を備えている。可動役物115は、遊技盤110上で動作することにより各種の演出を行い、また、盤ランプ116は、発光することで各種の演出を行う。
【0015】
遊技領域111には、遊技球が落下する方向に変化を与えるための図示しない遊技くぎおよび風車等が配設されている。また、遊技領域111には、入賞や抽選に関する種々の役物が所定の位置に配設されている。また、遊技領域111には、遊技領域111に打ち出された遊技球のうち入賞口に入賞しなかったものを遊技領域111の外に排出する排出口117が配設されている。
【0016】
本実施の形態では、入賞や抽選に関する種々の役物として、遊技球が入ると入賞して特別図柄抽選(大当たり抽選)が始動する第1始動口121および第2始動口122と、遊技球が通過すると普通図柄抽選(開閉抽選)が始動する始動ゲート(以下、単にゲートと呼ぶ)124と、が遊技盤110に配設されている。なお、
図1において、ゲート124は、遊技領域111の左右にそれぞれ設けられており、左側のゲート124は124Lと記載し、右側のゲート124は124Rと記載している。また、ここにいう第1始動口121および第2始動口122とは、予め定められた特別図柄表示器を作動させることとなる遊技球の入賞に係る入賞口をいう。具体的には、第1始動口121および第2始動口には、入賞の際に遊技球の通過を検知するスイッチ(後述の第1始動口スイッチ211および第2始動口スイッチ212)が設けられている。そして、第1始動口121または第2始動口122に遊技球が入賞した際にこのスイッチが遊技球の通過を検知することが、特別図柄表示器を作動させる契機となる。
【0017】
第2始動口122は、チューリップの花の形をした一対の羽根が電動ソレノイドにより開閉すると共に点灯する普通電動役物としての電動チューリップ(開閉部材)123を備えている。電動チューリップ123は、羽根が閉じていると、遊技球が第2始動口122へ入り難い一方で、羽根が開くと第2始動口122の入口が拡大して遊技球が第2始動口122へ入り易くなるように構成されている。そして、電動チューリップ123は、普通図柄抽選に当選すると、点灯ないし点滅しながら羽根が規定時間(例えば6秒間)および規定回数(例えば3回)だけ開く。
【0018】
なお、パチンコ遊技機100は、所定の条件下で、特別図柄抽選において大当たりに当選する大当たり確率が変動する場合(低確状態(例えば300分の1)から高確状態(例えば30分の1)への変動)がある。また、パチンコ遊技機100は、所定の条件下で、特別図柄抽選時の特別図柄変動時間が短縮されたり、普通図柄抽選時の当選する確率が高まったり、普通図柄抽選時の普通図柄変動時間が短縮されたり、電動チューリップ123の羽根の開時間が延長されたり、電動チューリップ123の羽根が開く回数が増えたりする場合がある。
【0019】
また、本実施の形態では、入賞や抽選に関するその他の役物として、特別図柄抽選の結果に応じて開放する特別電動役物としての大入賞口125と、遊技球が入賞しても抽選が始動しない普通入賞口126と、が遊技盤110に配設されている。
本実施の形態では、遊技盤110の右下の位置に、抽選結果や保留数に関する表示を行う表示器130が配設されている。表示器130の詳細な構成については後述する。
【0020】
また、遊技盤110の裏面には、内部抽選および当選の判定等を行い、遊技の進行を制御する遊技制御基板、演出を統括的に制御する演出制御基板、画像および音による演出を制御する画像制御基板、各種のランプおよび可動役物115による演出を制御するランプ制御基板などの図示しない各種の基板等が取り付けられる。また、遊技盤110の裏面には、供給された24VのAC電源をDC電源に変換して各種の基板等に出力するスイッチング電源(不図示)が配設されている。
【0021】
枠部材150は、遊技者がハンドル151に触れてレバー152を時計方向に回転させる操作を行うとその操作角度に応じた打球力にて遊技球を所定の時間間隔(例えば1分間に100個)で電動発射する発射装置(不図示)を備えている。また、枠部材150は、遊技者のレバー152による操作と連動したタイミングで発射装置に遊技球を1つずつ順に供給する供給装置(不図示)と、供給装置が発射装置に供給する遊技球を一時的に溜めておく皿153(
図2参照)と、を備えている。この皿153には、例えば払い出しユニットによる払出球が払い出される。
なお、本実施の形態では、皿153を上下皿一体で構成しているが、上皿と下皿とを分離する構成例も考えられる。また、発射装置のハンドル151を所定条件下で発光させる構成例も考えられる。
【0022】
また、枠部材150は、発射装置のハンドル151に遊技者が触れている状態であっても遊技球の発射を一時的に停止させるための停止ボタン154と、皿153に溜まっている遊技球を箱(不図示)に落下させて取り出すための取り出しボタン155と、を備えている。
また、枠部材150は、パチンコ遊技機100の遊技状態や状況を告知したり各種の演出を行ったりするスピーカ156および枠ランプ157を備えている。スピーカ156は、楽曲や音声、効果音による各種の演出を行い、また、枠ランプ157は、点灯/点滅によるパターンや発光色の違い等で光による各種の演出を行う。なお、枠ランプ157については、光の照射方向を変更する演出を行うことを可能にする構成例が考えられる。
また、枠部材150は、遊技盤110を遊技者と隔てるための透明板(不図示)を備えている。
【0023】
図2は、本実施の形態に係るパチンコ遊技機100を説明する図であり、(a)は、遊技盤110の右下に配設された表示器130の一例を示す拡大図であり、(b)は、パチンコ遊技機100の部分平面図である。
パチンコ遊技機100の表示器130は、LED等の発光素子(以下、発光素子の例としてLEDを用いた場合について説明するが、同様の用途で使用可能な他の発光素子で置き換え得るものとする)を用いて所定の情報を表示する装置であり、
図2の(a)に示すように、第1始動口121の入賞に対応して作動する第1特別図柄表示器221と、第2始動口122の入賞に対応して作動する第2特別図柄表示器222と、ゲート124の通過に対応して作動する普通図柄表示器223と、を備えている。第1特別図柄表示器221は、第1始動口121の入賞による特別図柄を変動表示しその抽選結果を表示する。第2特別図柄表示器222は、第2始動口122の入賞による特別図柄を変動表示しその抽選結果を表示する。普通図柄表示器223は、遊技球がゲート124を通過することにより普通図柄を変動表示しその抽選結果を表示する。本実施の形態では、第1特別図柄表示器221、第2特別図柄表示器222は、各々LEDを配列した表示装置で構成され、その点灯態様によって特別図柄抽選の抽選結果が表示される。同様に、普通図柄表示器223も、LEDを配列した表示装置で構成され、その点灯態様によって普通図柄抽選の抽選結果が表示される。
【0024】
また、表示器130は、第1特別図柄表示器221での保留に対応して作動する第1特別図柄保留表示器218と、第2特別図柄表示器222での保留に対応して作動する第2特別図柄保留表示器219と、普通図柄表示器223での保留に対応して作動する普通図柄保留表示器220と、を備えている。本実施の形態では、第1特別図柄保留表示器218、第2特別図柄保留表示器219および普通図柄保留表示器220は、各々LEDを配列した表示装置で構成され、その点灯態様によって保留数が表示される。
【0025】
ここで、保留について説明する。特別図柄の変動表示動作中(入賞1回分の変動表示が行なわれている間)にさらに他の遊技球による入賞があった場合、図柄が変動中であるために、後の入賞に基づく図柄の変動表示動作を開始することができない。そのため、後の入賞は規定個数(例えば4個)を限度に記憶され、その入賞した遊技球に対する図柄の変動表示動作は、先に入賞した遊技球に対する変動表示動作が終了するまで、保留される。これは、普通図柄の変動表示動作についても同様である。このような保留がなされていることおよびその保留の数(未抽選数)が、第1特別図柄保留表示器218、第2特別図柄保留表示器219および普通図柄保留表示器220に表示される。
【0026】
さらに、表示器130は、パチンコ遊技機100の状態を表示する状態表示器224を備えている。本実施の形態では、状態表示器224は、2個のLEDを配列した表示装置で構成されている。2個のLEDのうち1つは、パチンコ遊技機100の遊技状態が、特別図柄抽選の当選確率が高確率に変動(確率変動)した遊技状態である確変遊技状態となっているか否かを点灯により報知するものである。他の1つは、右打ちすることによって(遊技球の打球力を変更することによって)大入賞口125や第2始動口122に入賞しやすい遊技者に有利な遊技状態となっているか否かを点灯により報知するものである。
【0027】
パチンコ遊技機100の枠部材150は、遊技者が演出に対する入力を行うための入力装置を備えている。
図2の(b)に示すように、本実施の形態では、入力装置の一例として、演出ボタン161と、演出ボタン161に隣接し、略十字に配列された複数のキーからなる演出キー162と、が枠部材150に配設されている。演出キー162は、その中央に1つの中央キーを配置し、また、中央キーの周囲に略同一形状の4つの周囲キーを配置して構成されている。遊技者は、4つの周囲キーを操作することにより、画像表示部114に表示されている複数の画像のいずれかを指示することが可能であり、また、中央キーを操作することにより、指示した画像を選択することが可能である。また、入力装置の形態としては、図示した演出ボタン161および演出キー162の他、レバーやダイヤル等、演出の内容等に応じて様々な入力形態を採用することができる。
【0028】
〔制御ユニットの構成〕
次に、パチンコ遊技機100での動作制御や信号処理を行う制御ユニットについて説明する。
図3は、制御ユニットの内部構成を示すブロック図である。同図に示すように、制御ユニットは、メイン制御手段として、内部抽選および当選の判定等といった払い出す賞球数に関する各種制御を行う遊技制御部200を備えている。また、サブ制御手段として、演出を統括的に制御する演出制御部300と、画像および音響を用いた演出を制御する画像/音響制御部310と、各種のランプおよび可動役物115を用いた演出を制御するランプ制御部320と、払出球の払い出し制御を行う払出制御部400と、を備えている。
【0029】
前述したように、遊技制御部200、演出制御部300、画像/音響制御部310、ランプ制御部320、および払出制御部400各々は、遊技盤110の後面に配設されたメイン基板としての遊技制御基板、サブ基板としての演出制御基板、画像制御基板、ランプ制御基板、および払出制御基板において個別に構成されている。
【0030】
〔遊技制御部の構成・機能〕
遊技制御部200は、内部抽選および当選の判定等といった払い出し賞球数に関連する各種制御を行う際の演算処理を行うCPU201と、CPU201にて実行されるプログラムや各種データ等が記憶されたROM202と、CPU201の作業用メモリ等として用いられるRAM203と、を備えている。詳しくは後述するが、遊技制御部200において遊技制御に係る処理が行われる場合、制御装置であるCPU201により、必要に応じて処理に要するデータが読み出し用メモリであるROM202から読み出されて読み書き用メモリであるRAM203に格納される。そして、CPU201は、RAM203に格納したデータを用いて遊技制御に係る処理を実行する。
遊技制御部200は、第1始動口121または第2始動口122に遊技球が入賞すると特別図柄抽選を行い、特別図柄抽選での当選か否かの判定結果を演出制御部300に送る。また、特別図柄抽選時の当選確率の変動設定(例えば300分の1から30分の1への変動設定)、特別図柄抽選時の特別図柄変動時間の短縮設定、および普通図柄抽選時の普通図柄変動時間の短縮設定を行い、設定内容を演出制御部300に送る。
さらに、遊技制御部200は、普通電動役物である電動チューリップ123の羽根の開時間の延長、および電動チューリップ123の羽根が開く回数の設定、さらには羽根が開く際の開閉動作間隔の設定を制御する。また、遊技制御部200は、遊技球が連続的に第1始動口121または第2始動口122へ入賞したときの未抽選分の限度個数(例えば4個)までの保留や、遊技球が連続的にゲート124を通過したときの未抽選分の限度個数(例えば4個)までの保留を設定する。
さらにまた、遊技制御部200は、特別図柄抽選の結果に応じて、特別電動役物である大入賞口125が所定条件(例えば30秒経過または遊技球10個の入賞)を満たすまで開状態を維持するラウンドを所定回数だけ繰り返すように制御する。さらには、大入賞口125が開く際の開閉動作間隔を制御する。
【0031】
さらに、遊技制御部200は、第1始動口121、第2始動口122、大入賞口125および普通入賞口126に遊技球が入賞すると、遊技球が入賞した場所に応じて1つの遊技球当たり所定数の賞球を払い出すように、払出制御部400に対する指示を行う。例えば、第1始動口121に遊技球が入賞すると3個の賞球、第2始動口122に遊技球が入賞すると4個の賞球、大入賞口125に遊技球が入賞すると13個の賞球、普通入賞口126に遊技球が入賞すると10個の賞球をそれぞれ払い出すように、払出制御部400に指示命令(コマンド)を送る。なお、ゲート124を遊技球が通過したことを検出しても、それに連動した賞球の払い出しは払出制御部400に指示しない。
払出制御部400が遊技制御部200の指示に従って賞球の払い出しを行った場合には、遊技制御部200は、払い出した賞球の個数に関する情報を払出制御部400から取得する。それにより、払い出した賞球の個数を管理する。
【0032】
遊技制御部200には、検知手段として、
図3に示すように、第1始動口121への遊技球の入賞を検出する第1始動口検出部(第1始動口スイッチ(SW))211と、第2始動口122への遊技球の入賞を検出する第2始動口検出部(第2始動口スイッチ(SW))212と、電動チューリップ123を開閉する電動チューリップ開閉部213と、ゲート124への遊技球の通過を検出するゲート検出部(ゲートスイッチ(SW))214と、が接続されている。
さらに、遊技制御部200には、大入賞口125への遊技球の入賞を検出する大入賞口検出部(大入賞口スイッチ(SW))215と、大入賞口125を閉状態と突出傾斜した開状態とに設定する大入賞口開閉部216と、普通入賞口126への遊技球の入賞を検出する普通入賞口検出部(普通入賞口スイッチ(SW))217と、が接続されている。
【0033】
また、遊技制御部200には、第1始動口121への遊技球の入賞により始動した特別図柄抽選(大当たり抽選)の未抽選分の保留個数を限度個数内(例えば4個)で表示する第1特別図柄保留表示器218と、第2始動口122への遊技球の入賞により始動した特別図柄抽選の未抽選分の保留個数を限度個数内で表示する第2特別図柄保留表示器219と、ゲート124への遊技球の通過により始動した普通図柄抽選(開閉抽選)が始動する未抽選分の保留個数を限度個数内で表示する普通図柄保留表示器220と、が接続されている。
さらに、遊技制御部200には、第1始動口121への遊技球の入賞により始動した特別図柄抽選の結果を表示する第1特別図柄表示器221と、第2始動口122への遊技球の入賞により始動した特別図柄抽選の結果を表示する第2特別図柄表示器222と、普通図柄抽選の結果を表示する普通図柄表示器223と、パチンコ遊技機100の状態を表示する状態表示器224と、が接続されている。
【0034】
そして、第1始動口スイッチ211、第2始動口スイッチ212、ゲートスイッチ214、大入賞口スイッチ215および普通入賞口スイッチ217にて検出された検出信号が、遊技制御部200に送られる。また、遊技制御部200からの制御信号が、電動チューリップ開閉部213、大入賞口開閉部216、第1特別図柄保留表示器218、第2特別図柄保留表示器219、普通図柄保留表示器220、第1特別図柄表示器221、第2特別図柄表示器222、普通図柄表示器223および状態表示器224に送られる。それにより、遊技制御部200は、上記した払い出し賞球数に関連する各種制御を行う。
【0035】
さらに、遊技制御部200には、ホールに設置されたホストコンピュータ(不図示)に対して各種の情報を送信する盤用外部情報端子基板250が接続されている。そして、遊技制御部200は、払出制御部400から取得した、払い出した賞球数に関する情報や遊技制御部200の状態等を示す情報を、盤用外部情報端子基板250を介してホストコンピュータに送信する。
【0036】
〔演出制御部の構成・機能〕
演出制御部300は、演出を制御する際の演算処理を行うCPU301と、CPU301にて実行されるプログラムや各種データ等が記憶されたROM302と、CPU301の作業用メモリ等として用いられるRAM303と、日時を計測するリアルタイムクロック(RTC)と、を備えている。
演出制御部300は、例えば遊技制御部200から送られる特別図柄抽選での当選か否かの判定結果に基づいて、演出内容を設定する。その際、演出ボタン161または演出キー162を用いたユーザからの操作入力を受けて、操作入力に応じた演出内容を設定する場合もある。この場合、例えば演出ボタン161等のコントローラ(不図示)から操作に応じた信号(操作信号)を受け付け、この操作信号により識別される操作内容を演出の設定に反映させる。
また、演出制御部300は、遊技が所定期間中断された場合には、演出の一つとして客待ち用の画面表示の設定を指示する。
さらには、遊技制御部200が特別図柄抽選時の当選確率を変動させた場合、特別図柄抽選時の特別図柄変動時間を短縮させた場合、および普通図柄抽選時の普通図柄変動時間を短縮させた場合には、演出制御部300は設定された内容に対応させて演出内容を設定する。
また、演出制御部300は、設定した演出内容の実行を指示するコマンドを画像/音響制御部310およびランプ制御部320に送る。
【0037】
〔画像/音響制御部の構成・機能〕
画像/音響制御部310は、演出内容を表現する画像および音響を制御する際の演算処理を行うCPU311と、CPU311にて実行されるプログラムや各種データ等が記憶されたROM312と、CPU311の作業用メモリ等として用いられるRAM313と、を備えている。
そして、画像/音響制御部310は、演出制御部300から送られたコマンドに基づいて、画像表示部114に表示する画像およびスピーカ156から出力する音響を制御する。
具体的には、画像/音響制御部310のROM312には、画像表示部114において遊技中に表示する図柄画像や背景画像、遊技者に抽選結果を報知するための装飾図柄、遊技者に予告演出を表示するためのキャラクタやアイテム等といった画像データが記憶されている。
ROM312には、さらに、画像データと同期させて、または画像データとは独立にスピーカ156から出力させる楽曲や音声、さらにはジングル等の効果音等といった各種音響データが記憶されている。CPU311は、ROM312に記憶された画像データや音響データの中から、演出制御部300から送られたコマンドに対応したものを選択して読み出す。さらには、読み出した画像データを用いて背景画像表示、図柄画像表示、図柄画像変動、およびキャラクタ/アイテム表示等のための画像処理と、読み出した音響データを用いた音声処理とを行う。
そして、画像/音響制御部310は、画像処理された画像データにより画像表示部114での画面表示を制御する。また、音声処理された音響データによりスピーカ156から出力される音響を制御する。
【0038】
〔ランプ制御部の構成・機能〕
ランプ制御部320は、盤ランプ116や枠ランプ157の発光、および可動役物115の動作を制御する際の演算処理を行うCPU321と、CPU321にて実行されるプログラムや各種データ等が記憶されたROM322と、CPU321の作業用メモリ等として用いられるRAM323と、を備えている。
そして、ランプ制御部320は、演出制御部300から送られたコマンドに基づいて、盤ランプ116や枠ランプ157の点灯/点滅や発光色等を制御する。また、可動役物115の動作を制御する。
具体的には、ランプ制御部320のROM322には、演出制御部300にて設定される演出内容に応じた盤ランプ116や枠ランプ157での点灯/点滅パターンデータおよび発光色パターンデータ(発光パターンデータ)が記憶されている。CPU321は、ROM322に記憶された発光パターンデータの中から、演出制御部300から送られたコマンドに対応したものを選択して読み出す。そして、ランプ制御部320は、読み出した発光パターンデータにより盤ランプ116や枠ランプ157の発光を制御する。
また、ランプ制御部320のROM322には、演出制御部300にて設定される演出内容に応じた可動役物115の動作パターンデータが記憶されている。CPU321は、可動役物115に対しては、読み出した動作パターンデータによりその動作を制御する。
【0039】
〔払出制御部の構成・機能〕
払出制御部400は、払出球の払い出しを制御する際の演算処理を行うCPU401と、CPU401にて実行されるプログラムや各種データ等が記憶されたROM402と、CPU401の作業用メモリ等として用いられるRAM403と、を備えている。
そして、払出制御部400は、遊技制御部200から送られたコマンドに基づいて、払出球の払い出しを制御する。
具体的には、払出制御部400は、遊技制御部200から、遊技球が入賞した場所(第1始動口121等)に応じた所定数の賞球を払い出すコマンドを取得する。そして、コマンドに指定された数だけの賞球を払い出すように払出駆動部411を制御する。ここでの払出駆動部411は、遊技球の貯留部から遊技球を送り出す駆動モータで構成される。
【0040】
また、払出制御部400には、払出駆動部411により遊技球の貯留部から実際に払い出された賞球の数を検出する払出球検出部412と、貯留部(不図示)での遊技球の貯留の有無を検出する球有り検出部413と、遊技者が遊技する際に使用する遊技球や払い出された賞球が保持される皿153が満タン状態に有るか否かを検出する満タン検出部414と、が接続されている。そして、払出制御部400は、払出球検出部412、球有り検出部413および満タン検出部414にて検出された検出信号を受け取り、これらの検出信号に応じた所定の処理を行う。
さらに、払出制御部400には、ホールに設置されたホストコンピュータに対して各種の情報を送信する枠用外部情報端子基板450が接続されている。そして、払出制御部400は、例えば払出駆動部411に対して払い出すように指示した賞球数に関する情報や払出球検出部412にて検出された実際に払い出された賞球数に関する情報等を枠用外部情報端子基板450を介してホストコンピュータに送信する。また、遊技制御部200に対しても、同様の情報を送信する。
【0041】
〔遊技制御部の機能構成〕
続いて、遊技制御部200の機能構成を説明する。
図4は、遊技制御部200の機能構成を示すブロック図である。同図に示すように、遊技制御部200は、各種抽選処理を実行する機能部として、特別図柄抽選部231と、普通図柄抽選部232と、特別図柄変動制御部233と、特別図柄抽選結果判定部234と、普通図柄制御部237と、を備えている。
また、遊技制御部200は、特別図柄変動に伴う処理を実行する機能部として、変動パターン選択部235と、遊技進行制御部236と、を備えている。
さらに、遊技制御部200は、各種役物の動作制御や賞球等に関するデータ処理を実行する機能部として、大入賞口動作制御部238と、電動チューリップ動作制御部239と、賞球処理部240と、出力制御部241と、乱数制御部242と、を備えている。
【0042】
特別図柄抽選部231は、第1始動口121や第2始動口122に遊技球が入賞した場合に、特別図柄の抽選を行う。具体的には、判定情報として、所定の範囲の数値の中から一つの数値(乱数値)が選択(取得)されて、特別図柄抽選結果判定部234による判定のために付与される。すなわち、特別図柄抽選部231は、判定情報取得手段として機能する。
普通図柄抽選部232は、ゲート124を遊技球が通過した場合に、普通図柄抽選を行う。具体的には、判定情報として、所定の範囲の数値の中から一つの数値(乱数値)が選択(取得)されて、普通図柄制御部237による判定のために付与される。
特別図柄変動制御部233は、特別図柄の抽選が行われた場合に、その抽選結果に応じて特別図柄の変動を制御する。本実施の形態では、
図2(a)に示したように、第1特別図柄表示器221および第2特別図柄表示器222が、複数個のLEDの配列により構成されている。そこで、これらの特別図柄表示器221、222を構成するLEDを所定のパターンで点滅させることにより特別図柄の変動が行われる。
【0043】
特別図柄抽選結果判定部234は、特別図柄の抽選が行われた場合に、付与された上記の乱数値に基づき、予め保持している乱数テーブルを用いて抽選結果が「大当たりか否か」、「大当たりに当選した場合の大当たりの種類」、「大当たりに当選していない場合での小当たりかはずれか」を判定する。すなわち、特別図柄抽選部231と特別図柄抽選結果判定部234は、検知手段である第1始動口スイッチ211または第2始動口スイッチ212により遊技球の通過が検知されたことを契機として、遊技者にとって有利な特別遊技(大当たり遊技等)を行うか否かを判定する特別遊技判定手段として機能する。
【0044】
ここで、「大当たり」は、大当たり遊技の終了後に発生する遊技状態に応じて複数の種類に分けられる。具体的には、特別図柄の変動時間が短縮される時短遊技状態の有無および大当たりの当選確率が高確率に変動した確変遊技状態の有無の組み合わせによって大当たりの種類が決まる。すなわち、大当たりの種類としては、大当たり遊技の終了後に、時短遊技状態および確変遊技状態の両方が発生する大当たり、時短遊技状態のみが発生する大当たり、確変遊技状態のみが発生する大当たり、時短遊技状態および確変遊技状態のいずれも発生しない大当たりが有り得る。以下、これらの大当たりを区別する場合は、大当たり遊技の終了後に発生する遊技状態に基づき、「時短有り」、「時短無し」、「確変有り」、「確変無し」等と記載して区別する。これらの大当たりは、各々個別の特別図柄に対応付けられており、特別図柄抽選において当選した特別図柄の種類に応じて大当たりの種類が確定する。
【0045】
また、「大当たり」は、大当たり遊技の時間が長く多量の遊技球の払い出しが期待できる大当たりと、大当たり遊技の時間が短く遊技球の払出がほとんど期待できない大当たりとに分けられる場合がある。前者は「長当たり」と呼ばれ、後者は「短当たり」と呼ばれる。例えば、「長当たり」では、大入賞口125の開状態が所定条件(例えば一定時間経過または一定個数の遊技球の入賞)を満たすまで維持されるラウンドが所定回数繰り返される。また、「短当たり」では、一定時間だけ大入賞口125が開状態となるラウンドが所定回数繰り返される。通常、大当たり遊技の終了後に時短遊技状態が発生する(時短有り)大当たりは長当たりとなり、時短遊技状態が発生しない(時短無し)大当たりは短当たりとなる。
【0046】
なお、大当たり遊技の終了後に確変遊技状態が発生する(確変有り)大当たりは「確変大当たり」とも呼ばれ、確変遊技状態が発生しない(確変無し)大当たりは「通常大当たり」とも呼ばれる。また、遊技の態様によっては、大当たり遊技の終了後に確変遊技状態のみが発生し、時短遊技状態が発生しない(確変有り+時短無し)大当たりは「潜伏確変大当たり」とも呼ばれる。さらに、「確変大当たり」において、大入賞口125が開状態となるラウンド数に基づき、「15ラウンド(15R)確変大当たり」、「2ラウンド(2R)確変大当たり」等のように区別される場合もある。
【0047】
また、大当たりに当選していない場合の「小当たり」は、例えば大入賞口125の開閉が所定回数行われる小当たり遊技が行われ、終了した後においても小当たり当選時の遊技状態を継続する当たりである。すなわち、小当たり当選時の遊技状態が確変遊技状態である場合には、小当たり遊技の終了後においても確変遊技状態が継続され、遊技状態は移行しない。同様に、小当たりの当選時の遊技状態が確率変動も時間短縮もしていない通常の遊技状態(通常遊技状態)である場合には、小当たり遊技の終了後においても通常遊技状態が継続され、遊技状態は移行しない。
また、「はずれ」では、「大当たり」でも「小当たり」でもなく、遊技者に有利となる上記の遊技状態の何れも設定されない。
【0048】
変動パターン選択部235は、特別図柄の抽選結果が「大当たり」であった場合に、第1特別図柄表示器221や第2特別図柄表示器222にて表示する特別図柄の変動パターン(変動時間)を選択する。そして、変動パターン選択部235により選択された変動パターンに基づいて、特別図柄変動制御部233が特別図柄の変動(LEDの点滅)を制御する。すなわち、この変動パターン選択部235および特別図柄変動制御部233は、特別図柄抽選の抽選結果に応じて、第1特別図柄表示器221および第2特別図柄表示器222による特別図柄の表示を制御する特別図柄制御手段として機能する。
また、変動パターン選択部235は、「リーチ演出を行うか否か」を判定する。ここでの「リーチ演出」とは、遊技者に大当たりを期待させるための画像表示部114等にて行われる演出である。
遊技進行制御部236は、各遊技状態において遊技の進行を制御する。
【0049】
普通図柄制御部237は、普通図柄の抽選が行われた場合に、普通図柄の抽選結果が「当選かはずれであるか」を判定する。また、その抽選結果に応じて普通図柄の変動を制御する。この普通図柄抽選の当選確率は、主に時短遊技状態において行われる、電動チューリップ123の開放による第2始動口122への入賞サポート(いわゆる電チューサポート)がある場合には、入賞サポートがない場合(時短遊技状態でない場合)と比べて高くなる。
「当選」と判定された場合には、電動チューリップ123を規定時間および規定回数だけ開放し、第2始動口122への遊技球の入賞確率が高まる状態を発生させる。上記の入賞サポート(電チューサポート)時には、入賞サポートがない場合と比べて、この規定回数や規定時間が増える。また、「はずれ」と判定された場合には、電動チューリップ123のこのような開放状態は発生しない。
【0050】
大入賞口動作制御部238は、大入賞口125の開放動作を制御する。
電動チューリップ動作制御部239は、電動チューリップ123の開放動作を制御する。
賞球処理部240は、入賞や抽選に関する種々の役物への入賞個数の管理および入賞に応じた賞球の払い出しを制御する。
出力制御部241は、遊技制御部200から演出制御部300および払出制御部400へ制御用コマンドの出力を制御する。
乱数制御部242は、メイン制御手段やサブ制御手段による処理で用いられる各種の乱数値の更新を制御する。
【0051】
〔遊技機の基本動作〕
次に、上記のように構成されたパチンコ遊技機100の基本動作を説明する。
パチンコ遊技機100の基本的な動作は、メイン制御手段である遊技制御部200により行われる。そして、この遊技制御部200の制御の下、サブ制御手段である演出制御部300により遊技上の演出の制御が行われ、払出制御部400により賞球の払い出しの制御が行われる。
【0052】
図5は、遊技制御部200の主要動作を示すフローチャートである。
遊技制御部200は、電源投入時や電源断時等の特殊な場合を除く通常の動作時において、
図5に示す各処理を一定時間(例えば4ミリ秒)ごとに繰り返し実行する。
図5を参照すると、乱数更新処理、スイッチ処理、図柄処理、電動役物処理、賞球処理、出力処理が順次実行される(ステップ501〜506)。
【0053】
乱数更新処理(ステップ501)では、遊技制御部200の乱数制御部242は、メイン制御手段やサブ制御手段による処理で用いられる各種の乱数の値を更新する。乱数の設定および乱数値の更新の詳細については後述する。
【0054】
スイッチ処理(ステップ502)としては、始動口スイッチ処理、ゲートスイッチ処理が行われる。
始動口スイッチ処理では、遊技制御部200の特別図柄抽選部231は、
図3の第1始動口スイッチ211および第2始動口スイッチ212の状態を監視し、スイッチがONとなった場合に、特別図柄抽選のための処理を実行する。
ゲートスイッチ処理では、遊技制御部200の普通図柄抽選部232は、
図3のゲートスイッチ214の状態を監視し、スイッチがONとなった場合に、普通図柄抽選のための処理を実行する。
これらのスイッチ処理の詳細な内容については後述する。
【0055】
図柄処理(ステップ503)としては、特別図柄処理、普通図柄処理が行われる。
特別図柄処理では、遊技制御部200の特別図柄変動制御部233、特別図柄抽選結果判定部234、変動パターン選択部235、および遊技進行制御部236により、特別図柄変動およびこの図柄変動に伴う処理が行われる。
普通図柄処理では、遊技制御部200の普通図柄制御部237により、普通図柄変動およびこの図柄変動に伴う処理が行われる。
これらの図柄処理の詳細な内容については後述する。
【0056】
電動役物処理(ステップ504)としては、大入賞口処理、電動チューリップ処理が行われる。
大入賞口処理では、遊技制御部200の大入賞口動作制御部238は、所定の条件に基づいて大入賞口125の開放動作を制御する。
電動チューリップ処理では、遊技制御部200の電動チューリップ動作制御部239は、所定の条件に基づいて電動チューリップ123の開放動作を制御する。
これらの電動役物処理の詳細な内容については後述する。
【0057】
賞球処理(ステップ505)では、遊技制御部200の賞球処理部240は、入賞個数の管理および入賞に応じた賞球の払い出しを制御する。
出力処理(ステップ506)では、遊技制御部200の出力制御部241は、演出制御部300および払出制御部400へ制御用コマンドを出力する。制御用コマンドは、ステップ505までの各処理において生成され、RAM203にセットされており、この出力処理で出力される。
【0058】
〔演出制御部の動作〕
次に、演出制御部300の動作を説明する。
図6は、遊技制御部200からコマンドを受信した際の演出制御部300の動作を示すフローチャートである。
演出制御部300の動作は、
図6(a)に示すメイン処理と、
図6(b)に示す割り込み処理とからなる。
図6(a)を参照すると、演出制御部300は、まず起動時に初期設定を行い(ステップ601)、CTC(Counter/Timer Circuit)の周期設定を行った後(ステップ602)、設定された周期にしたがって、演出制御において用いられる乱数を更新しながら(ステップ603)、割り込み処理を受け付ける。
【0059】
割り込み処理は、ステップ602で設定された周期にしたがって定期的に行われる。
図6(b)を参照すると、この割り込み処理において、演出制御部300は、遊技制御部200からのコマンドを受信してコマンド受信処理を行う(ステップ611)。このコマンド受信処理において、演出パターンが選択される。また、演出制御部300は、遊技者による演出ボタン161等の操作を受け付けるための演出ボタン処理を行う(ステップ612)。この後、演出制御部300は、選択した演出パターンの情報を含むコマンドを画像/音響制御部310およびランプ制御部320に送信するコマンド送信処理を行う(ステップ613)。これにより、画像表示部114への画像表示や音響出力、可動役物115の動作、盤ランプ116や枠ランプ157の発光等による演出が行われる。また、センサユニット171〜173による遊技者の動作の検知も行われる。
【0060】
〔遊技制御基板のチップ構成〕
図3を参照して説明したように、遊技制御部200を構成する遊技制御基板には、各種処理を実行するためのCPU201、記憶手段であるROM202およびRAM203が装着されている。パチンコ遊技機100においては、通常、これらの電子部品は、ナックチップと呼ばれる一体型のチップとして構成される。遊技制御部200に搭載されるROM202およびRAM203は、使用可能な記憶容量が厳格に規定されている。
【0061】
図7は、ROM202およびRAM203のメモリ・イメージの例を示す図である。
図7に示すように、ROM202は、全体の記憶容量が16Kバイト(KByte)を超えないものであり、そのうち制御領域202aの容量が3Kバイトを超えず、データ領域202bの容量が3Kバイトを超えないもの、と規定されている。また、RAM203は、全体の記憶容量が1024バイト(1Kバイト)を超えないものであり、使用領域203aの容量が512バイトを超えないもの、と規定されている。
【0062】
CPU201は、ROM202の制御領域202aに格納されている命令に基づいて遊技制御に係る処理を行う際、必要に応じて、ROM202のデータ領域202bに格納されているデータを読み出してRAM203の使用領域203aに格納する。そして、RAM203の使用領域203aに格納されたデータを用いて処理を実行する。ここで、ROM202のデータ領域202bからRAM203の使用領域203aへデータを読み込むロード処理自体も、ROM202の制御領域202aに格納されている命令に基づいて実行される。
【0063】
このロード処理は、予め定められた回数の繰り返し処理(ループ処理)により実行される場合がある。繰り返して実行される個々の処理は、具体的には、ROM202の制御領域202aに格納されているアドレス値とデータの組を読み出し、読み出したアドレス値に対応するRAM203の使用領域203aのアドレスに、読み出したデータを格納する処理である。
【0064】
〔データをロードするための繰り返し処理〕
次に、この繰り返し処理について、詳細に説明する。
図8は、繰り返し処理によるロードの対象となるデータ(以下、ロード対象データ)の、ROM202の制御領域202aにおけるデータ構成の例を示す図である。
図8に示す構成例において、長方形の枠で示した各ブロックは、1バイトのデータを示している。このロード対象データは、先頭の1バイト・データとして繰り返し回数(ループ回数)を記録したデータが設けられている。そして、1バイトのアドレス値と1バイトのデータの組(2バイト)が、繰り返し回数分だけ設けられている。図示の例では、繰り返し回数は「n」である。なお、繰り返し回数「n」は、1バイト・データにより設定されるので、最大で256回である。
【0065】
図9は、繰り返し処理の呼び出し時の動作を示すフローチャートである。
図9に示すように、繰り返し処理の呼び出しにおいて、CPU201は、まず、ロード対象データの先頭アドレスの値を読み出し先としてレジスタにセットする(ステップ901)。そして、データをRAM203の使用領域203aに格納するための繰り返し処理のサブルーチンを呼び出して実行する(ステップ902)。なお、この繰り返し処理の呼び出し時の動作も、ROM202の制御領域202aに格納されている命令に基づいて実行される。
【0066】
ところで、この繰り返し処理でロードされるデータの格納先(RAM203の使用領域203a)のアドレスの個数が、256個まで(例えば、アドレス値が「0」〜「255」)であれば、全てのアドレス値は、1バイト(「00H」〜「FFH」)のデータで表現可能である(「H」は16進数の値であることを示す)。一般に、パチンコ遊技機100の遊技制御においては、データの格納先のアドレスは、256個以内であった。そこで、次に、データの格納先のアドレスが256個以下の場合の繰り返し処理について説明する。
【0067】
〔データの格納先アドレスが256個以下の場合の繰り返し処理における動作の流れ〕
図10は、データの格納先のアドレスが256個以下の場合の繰り返し処理の動作を示すフローチャートである。
図10を参照すると、CPU201は、まず、
図9のステップ901でセットされた読み出し先のアドレス値にしたがって、ロード対象データの先頭の1バイト・データの値を取得する。そして、取得した値(
図8に示した例では「n」)を、繰り返し処理における繰り返し回数としてレジスタにセットする(ステップ1001)。また、このとき、読み出し先のアドレス値を「1」加算する。これにより、読み出し先が更新され、
図8に示したロード対象データにおける2番目の1バイト・データ、すなわち、最初のアドレス値とデータとの組におけるアドレス値を指すことになる。
【0068】
次に、CPU201は、ステップ1001で更新された読み出し先のアドレス値にしたがって、2番目の1バイト・データの値を取得する。そして、取得した値を、RAM203の使用領域203aの格納先アドレスとしてレジスタにセットする(ステップ1002)。また、このとき、読み出し先のアドレス値を「1」加算する。これにより、読み出し先が更新され、
図8に示したロード対象データにおける3番目の1バイト・データ、すなわち、最初のアドレス値とデータとの組におけるデータを指すことになる。
【0069】
次に、CPU201は、ステップ1002で更新された読み出し先のアドレス値にしたがって、3番目の1バイト・データの値を取得する。そして、取得した値を、ステップ1002でセットされたRAM203の使用領域203aのアドレスに格納するデータ(以下、格納データ)としてレジスタにセットする(ステップ1003)。また、このとき、読み出し先のアドレス値を「1」加算する。これにより、読み出し先が更新され、
図8に示したロード対象データにおける4番目の1バイト・データ、すなわち、2番目のアドレス値とデータとの組におけるアドレス値を指すことになる。
【0070】
次に、CPU201は、RAM203の使用領域203aにおけるステップ1002でセットされた格納先アドレスに、ステップ1003でセットされた格納データを書き込む(ステップ1004)。そして、ステップ1001でセットされた繰り返し回数「n」を「1」減算し、算出された値が「0」か否かを判定する(ステップ1005)。算出値が「0」でなければ、ステップ1002に戻り、ステップ1003で更新された読み出し先のアドレス値にしたがって、4番目の1バイト・データの値を取得する。
【0071】
以下、同様にしてステップ1002〜ステップ1005に示した格納処理の動作を繰り返し、ステップ1005で算出値が「0」となったならば(すなわち、ステップ1002〜ステップ1005の動作をn回繰り返したならば)、繰り返し処理を終了する。
【0072】
上記のように、データの格納先のアドレスが256個以下の場合、繰り返し処理は、ロード対象データを1バイトずつ読み込み、交互に、格納先のアドレス値および格納データとして、順次処理すれば良い。しかし、パチンコ遊技機100の遊技制御におけるRAM203の使用領域203aの容量は512バイトまで許容されるので、データの格納先のアドレスは512個まで設定することが可能である。したがって、複雑な遊技制御を行うためにRAM203に読み込むべきデータ量が増加すると、データの格納先として256個を超える数のアドレスが必要となる場合があり得る。
【0073】
ここで、データの格納先のアドレスが256個を超える場合は、全てのアドレスを表現するために必要なデータ量は1バイトでは足りない。そのため、
図10に示した処理手順では、必要なデータをRAM203の使用領域203aに格納することができない。そこで、2バイトで表現されるアドレスを用いてRAM203の使用領域203aにデータを格納する手順が必要となる。
【0074】
このような手順の一例としては、2バイトのアドレスを上位1バイトと下位1バイトに分け、上位1バイトの値ごとに、下位1バイトの256個のアドレスに対する
図10に示した処理を2セット実行することが考えられる。具体的なアドレスの例を挙げて説明すると、まず、512個のアドレスを「0000H」〜「01FFH」とする。このアドレスを上位1バイトと下位1バイトに分けると、上位1バイトは「00H」と「01H」の2種類であり、下位1バイトは「00H」〜「FFH」である。したがって、上位1バイトが「00H」であるアドレス用に
図10の処理1セットを実行し、上位1バイトが「01H」であるアドレス用に
図10の処理1セットを実行することにより、512個までのアドレスを対象として、データをRAM203の使用領域203aに格納することが可能となる。
【0075】
ところで、
図10に示した256個以下のアドレスを対象としてデータを格納する繰り返し処理を実行するための命令(プログラム)をROM202の制御領域202aに格納するために11バイトのメモリ容量が使用される。具体的には、繰り返し回数のセット(ステップ1001)に2バイト、RAM203の使用領域203aのアドレスのセット(ステップ1002)に2バイト、格納データのセット(ステップ1003)に2バイト、データの書き込み(ステップ1004)に2バイト、繰り返し回数の更新および判定(ステップ1005)に2バイト、処理を終了するのに1バイトのメモリ容量を使用する。また、上記のように、2バイトのアドレスに対応するために、アドレスの上位1バイトの値(「00H」または「01H」)を設定する処理を行う場合、この処理に3バイトのメモリ容量を使用する。したがって、2バイトのアドレスに対して2セットの繰り返し処理を用意するには、28バイト(=(11バイト+3バイト)×2セット)のメモリ容量を使用することとなる。
【0076】
一方、ROM202の制御領域202aの記憶容量は3Kバイトまでと規定されているため、同じ処理を行うためのプログラムであれば、使用するメモリ容量(プログラムサイズ)が小さい方が望ましい。ここで、上記の2バイトアドレスに対応して繰り返し処理を用意する場合を考えると、ステップ1002〜ステップ1005の処理の内容が重複する(すなわち、アドレスの上位1バイトの値と繰り返し回数を設定した後は、同一の処理が実行される)。そこで、本実施形態では、この重複する処理をまとめた一つのプログラムとすることで、繰り返し処理を2バイトアドレスに対応させるためのプログラムサイズの増大を抑制した。以下、この2バイトアドレス用の繰り返し処理のプログラムの動作について説明する。
【0077】
〔データの格納先アドレスが256個を超える場合の繰り返し処理における動作の流れ〕
図11は、データの格納先のアドレスが256個を超える(2バイトアドレス)場合の繰り返し処理の動作を示すフローチャートである。
ここでは、RAM203の使用領域203aにおけるアドレス空間「0000H」〜「01FFH」に対応する領域にデータを格納する場合を例として説明する。このアドレス空間における格納先アドレスを第1部分アドレス値である下位1バイトの値(「00H」乃至「FFH」)と第2部分アドレス値である上位1バイトの値(「00H」または「01H」)とに分ける。
図11を参照すると、CPU201は、まず、データの格納先アドレスの上位1バイトの値として「00H」をレジスタにセットする(ステップ1101)。
【0078】
次に、CPU201は、事前に
図9のステップ901でセットされた読み出し先のアドレス値にしたがって、ロード対象データの先頭の1バイト・データの値を取得する。そして、取得した値を、繰り返し処理における繰り返し回数としてレジスタにセットする(ステップ1102)。そして、読み出し先のアドレス値を「1」加算する。これにより、読み出し先が更新され、
図8に示したロード対象データにおける2番目の1バイト・データ、すなわち、最初のアドレス値とデータとの組におけるアドレス値(格納先アドレスの下位1バイトの値)を指すことになる。
【0079】
本実施形態では、ロード対象データの先頭の1バイト・データにより指定される繰り返し回数の値を、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数と、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数とに分けて記述する。具体的には、1バイト=8ビットのデータを上位sビットと下位(8−s)ビットとに分けて、上位sビットでデータの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数を記述し、下位(8−s)ビットでデータの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数を記述する。「s」の値としては、「1」〜「7」を取り得るので、以下では、それぞれの場合について個別に動作を説明する。
【0080】
「s」の値が「4」の場合の動作について説明する。
s=4であるので、上位4ビットでデータの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数が記述され、下位4(=(8−4))ビットでデータの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数が記述されている。この場合、CPU201は、まず、ステップ1102でセットされた繰り返し回数の下位4ビットの値が「0000B」か否かを判定する(ステップ1103)。
【0081】
ステップ1102でセットされた繰り返し回数の下位4ビットの値が「0000B」でない場合、次にCPU201は、
図10のステップ1002〜1005に記載した動作と同様に、
図8に示したロード対象データにおけるアドレス値(格納先アドレスの下位1バイトの値)とデータとの組における各値を順次読み込んでレジスタにセットする(ステップ1106、1107)。そして、ステップ1101でセットされた上位1バイトの値(「00H」)とステップ1106でセットされた下位1バイトの値とからなる2バイトアドレス(「0000H」〜「00FFH」)に該当するRAM203の使用領域203aの領域に、ステップ1107でセットされたデータを書き込む(ステップ1108)。この後、CPU201は、ステップ1102でセットされた繰り返し回数を更新(「1」減算)し、更新後の値が「0」か否かを判定する(ステップ1109)。
【0082】
ステップ1102でセットされた繰り返し回数の値が「0」でなく(ステップ1109でNo)、かつ、その下位4ビットの値が「0000B」である場合(ステップ1103でYes)、繰り返し回数の下位4ビットで示された、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数分の繰り返し処理が済んだことを意味する。すなわち、RAM203の使用領域203aにおける「0000H」〜「00FFH」のアドレス空間にデータが格納された。そこで、次にCPU201は、8ビットの繰り返し回数における上位4ビットと下位4ビットとを入れ替える(ステップ1104)。これにより、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数がセットされる。なお、この繰り返し回数の上位4ビットと下位4ビットの入れ替えは、例えば、既存のアセンブラ命令におけるスワップ命令を用いて実行することができる。
【0083】
図12は、レジスタにセットされた繰り返し回数の値の変化の様子を示す図である。
図12(a)は、
図11のステップ1102で繰り返し回数がセットされた際の値の例を示す。図示の例では、「01010110B」となっている。ここで、下位4ビットで示される「0110B」は、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数であり、上位4ビットで示される「0101B」は、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数である。
【0084】
図12(b)は、繰り返し処理の実行により下位4ビットの値が「0000B」となった様子を示す。このとき、ステップ1104で上位4ビットの値と下位4ビットの値の入れ替えが行われる。
図12(c)は、値の入れ替えが行われた様子を示す。
【0085】
次に、CPU201は、ステップ1101でセットしたデータの格納先アドレスの上位1バイトの値に「1」を加算して「01H」とする(ステップ1105)。これにより、これ以降の繰り返し処理において、ステップ1107でロード対象データから取得される格納データは、ステップ1105で更新された上位1バイトの値(「01H」)とステップ1106で取得される下位1バイトの値とを組み合わせた2バイトアドレス(「0100H」〜「01FFH」)に格納されることとなる(ステップ1106〜1108)。
【0086】
以上のようにして、CPU201は、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数だけ繰り返し処理を実行し、さらに、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数だけ繰り返し処理を実行して、ステップ1102でセットされた繰り返し回数が更新されて「0(=00000000B)」(「B」は2進数の値であることを示す)となったならば、繰り返し処理を終了する(ステップ1109)。
【0087】
ここで、
図11に示した手順で繰り返し処理を実行するための命令(プログラム)をROM202の制御領域202aに格納するために使用されるメモリ容量は、23バイトである。具体的には、格納先アドレスの上位1バイトの値(「00H」)の設定(ステップ1101)に3バイト、繰り返し回数のセット(ステップ1102)に2バイトのメモリ容量を使用する。また、繰り返し回数の下位4ビットの値が「0000B」か否かの判定(ステップ1103)に5バイト、繰り返し回数の上位4ビットと下位4ビットとの入れ替え(ステップ1104)に2バイト、格納先アドレスの上位1バイトの値の更新(ステップ1105)に2バイトのメモリ容量を使用する。そして、RAM203の使用領域203aのアドレスのセット(ステップ1106)、格納データのセット(ステップ1107)、データの書き込み(ステップ1108)、繰り返し回数の更新および判定(ステップ1109)に、
図10のステップ1002〜1005と同様に、合計で8バイトのメモリを使用する。また、処理を終了するのに1バイトのメモリ容量を使用する。したがって、
図10に示した手順を用いて2バイトのアドレスに対して2セットの繰り返し処理を用意する場合と比較して、メモリの使用量を5バイト削減することができた。
【0088】
なお、この実施形態では、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数と、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数とを、それぞれ4ビットデータで設定した。したがって、
図11に示した手順により繰り返し処理を行うことが可能な繰り返し回数は、データの格納先アドレスの上位1バイトの値が「00H」の場合と、「01H」の場合の各々で、最大で16回である。
【0089】
〔データの格納先アドレスが256個を超える場合の他の動作例1〕
図13は、データの格納先のアドレスが256個を超える(2バイトアドレス)場合の繰り返し処理における他の動作例を示すフローチャートである。
図13に示す動作例では、データの格納先アドレスの上位1バイトの値が「00H」である場合と「01H」である場合とにおける各々の繰り返し回数を記述するための、ロード対象データの先頭の1バイト・データにおける上位sビットにおいて、s=1とする。すなわち、上位1ビットでデータの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数が記述され、下位7(=(8−1))ビットでデータの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数が記述される。
【0090】
図13に示す動作例において、ステップ1301、1302、1306〜1309の各動作は、
図11に示したステップ1101、1102、1106〜1109の各動作と同様である。したがって、これらの動作については説明を省略し、以下ではステップ1303〜1305の動作について説明する。
【0091】
ところで、この動作例では、s=1としたので、上位1ビットに入る値は「1」のみである。そして、設定可能な繰り返し回数は、2回のみとなる。また、ステップ1302でセットされた繰り返し回数の値が「0」でなく、かつ、下位7ビットの値が「0(=0000000B)」である値は、「10000000B」=「80H」のみである。したがって、本動作例では、CPU201は、まず、ステップ1302でセットされた繰り返し回数の値が「80H」か否かを判定する(ステップ1303)。
【0092】
ステップ1302でセットされた繰り返し回数の値が「80H」でない場合、次にCPU201は、
図8に示したロード対象データにおけるアドレス値とデータとの組における各値を順次読み込んでレジスタにセットし、RAM203の使用領域203aに書き込み、ステップ1302でセットされた繰り返し回数を更新し、更新後の値が「0」か否かを判定する(ステップ1306〜1309)。
【0093】
ステップ1302でセットされた繰り返し回数の値が「80H」である場合(ステップ1309でNo、ステップ1303でYes)、繰り返し回数の下位7ビットで示された、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数分の繰り返し処理が済んだことを意味する。すなわち、RAM203の使用領域203aにおける「0000H」〜「00FFH」のアドレス空間にデータが格納された。そこで、次にCPU201は、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数の値として、改めて、「02H(=00000010B)」をセットする(ステップ1304)。なお、ここでは、ステップ1304の動作を、繰り返し回数の値を再設定する動作として説明したが、例えば、ローテート(巡回シフト)命令を用いて各ビットの値をシフトさせ、値が「02H」になるように操作しても良い。
【0094】
次に、CPU201は、ステップ1301でセットしたデータの格納先アドレスの上位1バイトの値に「1」を加算して「01H」とする(ステップ1305)。そして、ロード対象データにおけるアドレス値とデータとの組における各値の読み込み、RAM203の使用領域203aへの書き込み、繰り返し回数を更新および更新後の値の判定を継続する(ステップ1306〜1309)。
【0095】
ここで、
図13に示した手順で繰り返し処理を実行するための命令(プログラム)をROM202の制御領域202aに格納するために使用されるメモリ容量は、24バイトである。具体的には、格納先アドレスの上位1バイトの値(「00H」)の設定(ステップ1301)に3バイト、繰り返し回数のセット(ステップ1302)に2バイトのメモリ容量を使用する。また、繰り返し回数の値が「80H」か否かの判定(ステップ1303)に5バイト、繰り返し回数の値の再設定(ステップ1304)に3バイト、格納先アドレスの上位1バイトの値の更新(ステップ1305)に2バイトのメモリ容量を使用する。そして、RAM203の使用領域203aのアドレスのセット(ステップ1306)、格納データのセット(ステップ1307)、データの書き込み(ステップ1308)、繰り返し回数の更新および判定(ステップ1309)に、
図10のステップ1002〜1005と同様に、合計で8バイトのメモリを使用する。また、処理を終了するのに1バイトのメモリ容量を使用する。したがって、
図10に示した手順を用いて2バイトのアドレスに対して2セットの繰り返し処理を用意する場合と比較して、メモリの使用量を4バイト削減することができた。
【0096】
なお、この動作例では、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数は、7ビットデータで設定されるので、最大で128回である。一方、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数は、上記のように2回のみである。したがって、本動作例は、データを格納するために100回程度の多大な回数の繰り返しが必要なデータが存在する一方で、2回の繰り返しで格納可能なデータがある程度存在する場合等に用いることができる。
【0097】
〔データの格納先アドレスが256個を超える場合の他の動作例2〕
図14は、データの格納先のアドレスが256個を超える(2バイトアドレス)の場合の繰り返し処理における、さらに他の動作例を示すフローチャートである。
図14に示す動作例では、データの格納先アドレスの上位1バイトの値が「00H」である場合と「01H」である場合とにおける各々の繰り返し回数を記述するための、ロード対象データの先頭の1バイト・データにおける上位sビットにおいて、s=2とする。すなわち、上位2ビットでデータの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数が記述され、下位6(=(8−2))ビットでデータの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数が記述される。
【0098】
図14に示す動作例において、ステップ1401、1402、1406〜1409の各動作は、
図11に示したステップ1101、1102、1106〜1109の各動作と同様である。したがって、これらの動作については説明を省略し、以下ではステップ1403〜1405の動作について説明する。
【0099】
本動作例では、CPU201は、まず、ステップ1402でセットされた繰り返し回数の下位6ビットの値が「000000B」か否かを判定する(ステップ1403)。「000000B」でない場合、次にCPU201は、
図8に示したロード対象データにおけるアドレス値とデータとの組における各値を順次読み込んでレジスタにセットし、RAM203の使用領域203aに書き込み、ステップ1402でセットされた繰り返し回数を更新し、更新後の値が「0」か否かを判定する(ステップ1406〜1409)。
【0100】
ステップ1402でセットされた繰り返し回数の値が「0」でなく(ステップ1409でNo)、かつ、その下位6ビットの値が「000000B」である場合(ステップ1403でYes)、繰り返し回数の下位6ビットで示された、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数分の繰り返し処理が済んだことを意味する。すなわち、RAM203の使用領域203aにおける「0000H」〜「00FFH」のアドレス空間にデータが格納された。そこで、次にCPU201は、8ビットの繰り返し回数における各ビットの値をシフトし、上位2ビットを下位2ビットに置き換える(ステップ1404)。これにより、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数がセットされる。なお、この繰り返し回数の各ビットの値のシフトは、例えば、ローテート(巡回シフト)命令を用いて実行することができる。この場合、具体的には、右へ6ビット分シフト(ローテート・ライト)させるか、または左へ2ビット分シフト(ローテート・レフト)させる。
【0101】
図15は、レジスタにセットされた繰り返し回数の値の変化の様子を示す図である。
図15(a)は、
図14のステップ1402で繰り返し回数がセットされた際の値の例を示す。図示の例では、「11000110B」となっている。ここで、下位6ビットで示される「000110B」は、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数であり、上位2ビットで示される「11B」は、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数である。
【0102】
図15(b)は、繰り返し処理の実行により下位6ビットの値が「000000B」となった様子を示す。このとき、ステップ1404で上位2ビットの値が下位2ビットにシフトされる。
図15(c)は、値がシフトされた様子を示す。
【0103】
次に、CPU201は、ステップ1401でセットしたデータの格納先アドレスの上位1バイトの値に「1」を加算して「01H」とする(ステップ1405)。そして、ロード対象データにおけるアドレス値とデータとの組における各値の読み込み、RAM203の使用領域203aへの書き込み、繰り返し回数を更新および更新後の値の判定を継続する(ステップ1406〜1409)。
【0104】
ここで、
図14に示した手順で繰り返し処理を実行するための命令(プログラム)をROM202の制御領域202aに格納するために使用されるメモリ容量は、24バイトである。具体的には、ステップ1401、1402、1406〜1409の動作は、
図13に示したステップ1301、1302、1306〜1309の動作と同様に、合計で13バイトのメモリ容量を使用する。そして、繰り返し回数の下位6ビットの値が「000000B」か否かの判定(ステップ1403)に5バイト、繰り返し回数の上位2ビットを下位2ビットにシフトする処理(ステップ1404)に3バイト、格納先アドレスの上位1バイトの値の更新(ステップ1405)に2バイトのメモリ容量を使用する。また、処理を終了するのに1バイトのメモリ容量を使用する。したがって、
図10に示した手順を用いて2バイトのアドレスに対して2セットの繰り返し処理を用意する場合と比較して、メモリの使用量を4バイト削減することができた。
【0105】
なお、この動作例では、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数は、6ビットデータで設定されるので、最大で64回である。一方、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数は、2ビットデータで設定されるので、最大で4回である。したがって、本動作例は、データを格納するために60回程度の繰り返しが必要なデータが存在する一方で、4回以内の繰り返しで格納可能なデータがある程度存在する場合等に用いることができる。
【0106】
〔データの格納先アドレスが256個を超える場合の他の動作例3〕
図16は、データの格納先のアドレスが256個を超える(2バイトアドレス)の場合の繰り返し処理における、さらに他の動作例を示すフローチャートである。
図16に示す動作例では、データの格納先アドレスの上位1バイトの値が「00H」である場合と「01H」である場合とにおける各々の繰り返し回数を記述するための、ロード対象データの先頭の1バイト・データにおける上位sビットにおいて、s=3とする。すなわち、上位3ビットでデータの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数が記述され、下位5(=(8−3))ビットでデータの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数が記述される。
【0107】
図16に示す動作例において、ステップ1601、1602、1606〜1609の各動作は、
図11に示したステップ1101、1102、1106〜1109の各動作と同様である。したがって、これらの動作については説明を省略し、以下ではステップ1603〜1605の動作について説明する。
【0108】
本動作例では、CPU201は、まず、ステップ1602でセットされた繰り返し回数の下位5ビットの値が「00000B」か否かを判定する(ステップ1603)。「00000B」でない場合、次にCPU201は、
図8に示したロード対象データにおけるアドレス値とデータとの組における各値を順次読み込んでレジスタにセットし、RAM203の使用領域203aに書き込み、ステップ1602でセットされた繰り返し回数を更新し、更新後の値が「0」か否かを判定する(ステップ1606〜1609)。
【0109】
ステップ1602でセットされた繰り返し回数の値が「0」でなく(ステップ1609でNo)、かつ、その下位5ビットの値が「00000B」である場合(ステップ1603でYes)、繰り返し回数の下位5ビットで示された、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数分の繰り返し処理が済んだことを意味する。すなわち、RAM203の使用領域203aにおける「0000H」〜「00FFH」のアドレス空間にデータが格納された。そこで、次にCPU201は、8ビットの繰り返し回数における各ビットの値をシフトし、上位3ビットを下位3ビットに置き換える(ステップ1604)。これにより、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数がセットされる。なお、この繰り返し回数の各ビットの値のシフトは、例えば、ローテート(巡回シフト)命令を用いて実行することができる。この場合、具体的には、右へ5ビット分シフト(ローテート・ライト)させるか、または左へ3ビット分シフト(ローテート・レフト)させる。
【0110】
図17は、レジスタにセットされた繰り返し回数の値の変化の様子を示す図である。
図17(a)は、
図16のステップ1602で繰り返し回数がセットされた際の値の例を示す。図示の例では、「10100110B」となっている。ここで、下位5ビットで示される「00110B」は、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数であり、上位3ビットで示される「101B」は、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数である。
【0111】
図17(b)は、繰り返し処理の実行により下位5ビットの値が「00000B」となった様子を示す。このとき、ステップ1404で上位2ビットの値が下位2ビットにシフトされる。
図17(c)は、値がシフトされた様子を示す。
【0112】
次に、CPU201は、ステップ1601でセットしたデータの格納先アドレスの上位1バイトの値に「1」を加算して「01H」とする(ステップ1605)。そして、ロード対象データにおけるアドレス値とデータとの組における各値の読み込み、RAM203の使用領域203aへの書き込み、繰り返し回数を更新および更新後の値の判定を継続する(ステップ1606〜1609)。
【0113】
ここで、
図16に示した手順で繰り返し処理を実行するための命令(プログラム)をROM202の制御領域202aに格納するために使用されるメモリ容量は、24バイトである。具体的には、ステップ1601、1602、1606〜1609の動作は、
図13に示したステップ1301、1302、1306〜1309の動作と同様に、合計で13バイトのメモリ容量を使用する。そして、繰り返し回数の下位5ビットの値が「00000B」か否かの判定(ステップ1603)に5バイト、繰り返し回数の上位3ビットを下位3ビットにシフトする処理(ステップ1604)に3バイト、格納先アドレスの上位1バイトの値の更新(ステップ1605)に2バイトのメモリ容量を使用する。また、処理を終了するのに1バイトのメモリ容量を使用する。したがって、
図10に示した手順を用いて2バイトのアドレスに対して2セットの繰り返し処理を用意する場合と比較して、メモリの使用量を4バイト削減することができた。
【0114】
なお、この動作例では、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数は、5ビットデータで設定されるので、最大で32回である。一方、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数は、3ビットデータで設定されるので、最大で8回である。したがって、本動作例は、データを格納するために30回程度の繰り返しが必要なデータが存在する一方で、8回以内の繰り返しで格納可能なデータがある程度存在する場合等に用いることができる。
【0115】
〔データの格納先アドレスが256個を超える場合におけるその他の例〕
データの格納先アドレスの上位1バイトの値が「00H」である場合と「01H」である場合とにおける各々の繰り返し回数を記述するための、ロード対象データの先頭の1バイト・データにおける上位sビットの値としては、さらに、s=5、6、7の各値を取り得る。しかしながら、これらの場合の動作は、上記の
図14、16を参照して説明した動作例におけるステップ1404およびステップ1604のシフト量を、繰り返し回数の記述に合わせて適切に設定することで実現されるので、説明を省略する。いずれの場合も、繰り返し処理を実行するための命令(プログラム)をROM202の制御領域202aに格納するために使用されるメモリ容量は、24バイトであり、
図10に示した手順を用いて2バイトのアドレスに対して2セットの繰り返し処理を用意する場合と比較して、メモリの使用量が4バイト削減される。
【0116】
なお、上記の実施形態では、繰り返し処理における繰り返し回数を1バイト(8ビット)データで記述する場合を例として説明した。しかしながら、この繰り返し回数を8ビット以外のサイズのデータで記述した場合にも、本実施形態を適用することが可能である。例えば、16ビットのデータで繰り返し回数を記述する場合、上位8ビットと下位8ビットからなる2バイトのデータで繰り返し回数が記述されているものとして扱う。そして、データの格納先アドレスの上位1バイトの値が「00H」である場合の繰り返し回数と、データの格納先アドレスの上位1バイトの値が「01H」である場合の繰り返し回数との切り替えは、2バイトのデータ全体に対するシフト命令によって実行する。この場合は、ローテート(巡回シフト)命令ではなく、右方向へのシフト命令により、上位sビットの値を下位sビットにシフトさせる。
【0117】
図18は、2バイト・データに対する値のシフトの様子を示す図である。
図18に示す例では、
図18(a)に示した状態から右方向へ4ビットシフトしたことにより、
図18(b)に示すように、上位12ビットの値が下位12ビットにシフトしている。なお、この繰り返し回数を記述したデータのシフトは、データの格納先アドレスの上位1バイトの値が「00H」である繰り返し処理が済んだ後に行われる。すなわち、
図18の例では、
図18(a)の下位4ビットが「0000B」となった後に実行される。そのため、ローテート(巡回シフト)命令ではない右方向へのシフト命令を用いても構わない。