2020-001264
遊技機
- 審判番号
- 2020-001264
- 法域
- 特許
- 審判種別
- 拒絶査定不服審判(拒絶査定不服の審決)
- 出願番号
- 特願2016-196939外部サイト(J-PlatPat)へ移動します
- 請求日
- 2020年01月30日
- 審決日
- 2021年01月05日
- 公報発行日
- 2021年04月30日
- 結論
- 請求不成立
- 分類
- P18 .121-Z (A63F) / P18 .575-Z (A63F)
- 根拠条文(結論部分から自動抽出・参考)
- 特許法29条2項
- 条文(本文から自動抽出・参考)
- 特許法第29条第2項、特許法第17条の2第6項、特許法第17条の2第5項第2号、特許法第17条の2第3項
- データ出所
- 審決公報(SGML)
事件の表示
結論
理由
目次 ▾ 11項目
第1 手続の経緯の概要
折りたたみ中(クリックで表示)
本願は、平成28年10月5日の出願であって、平成30年10月26日付けで拒絶の理由が通知され、平成31年1月8日に意見書及び手続補正書が提出され、令和1年6月17日付けで最後の拒絶の理由が通知され、同年7月19日に意見書及び手続補正書が提出されたところ、同年12月12日付け(謄本送達日:同年同月17日)で、同年7月19日付け手続補正書による手続補正が却下されるとともに拒絶査定がなされ、これに対し、令和2年1月30日に拒絶査定不服審判の請求がなされると同時に手続補正書が提出されたものである。
第2 令和2年1月30日にされた手続補正についての補正の却下の決定
令和2年1月30日にされた手続補正(以下「本件補正」という。)を却下する。
[理由]
1 補正の内容
本件補正は、平成31年1月8日付け手続補正書の特許請求の範囲の請求項1~3のうち、請求項1における
「【請求項1】遊技の制御を行う制御装置を備え、前記制御装置は、所定ビット数の第1レジスタのデータと前記所定ビット数とは異なる規定ビット数の第2レジスタのデータとを1回の命令で加算する加算命令を用いて加算値を算出し、算出した前記加算値に基づいて所定のデータが格納されているデータテーブルから前記所定のデータを取得するデータ取得モジュールを備え、前記データ取得モジュールは、前記データ取得モジュール以外のモジュールから呼び出されるモジュールであり、前記データ取得モジュールは、少なくとも前記加算命令に関するプログラム、及び、前記所定のデータを取得するプログラムを含んでいることを特徴とする遊技機。」を、
審判請求時に提出された手続補正書(令和2年1月30日付け)の特許請求の範囲の請求項1における
「【請求項1】遊技の制御を行う制御装置を備え、前記制御装置は、所定ビット数の第1レジスタのデータと前記所定ビット数よりもビット数が多い規定ビット数の第2レジスタのデータとを1回の命令で加算する加算命令を用いて加算値を算出し、算出した前記加算値に基づいて所定のデータが格納されているデータテーブルから前記所定のデータを取得するとともに、前記所定のデータを取得する際には、前記加算命令を用いて算出した前記加算値に基づいて取得した前記所定のデータを前記加算命令で使用した前記第1レジスタに格納するデータ取得モジュールを備え、前記データ取得モジュールは、前記データ取得モジュール以外のモジュールから呼び出されるモジュールであり、前記データ取得モジュールは、少なくとも前記加算命令に関するプログラム、及び、前記所定のデータを取得するプログラムを含んでいることを特徴とする遊技機。」とする補正を含むものである(下線は補正前後の箇所を明示するために当審判合議体にて付した。)。
2 補正の適否
2-1 補正の目的及び新規事項について
本件補正は、補正前の請求項1に係る発明を特定するために必要な事項である「前記所定ビット数とは異なる規定ビット数」に関して、「前記所定ビット数よりもビット数が多い規定ビット数」と限定し、同じく補正前の請求項1に記載した発明を特定するために必要な事項である「前記所定のデータを取得するデータ取得モジュール」に関して、「前記所定のデータを取得するとともに、前記所定のデータを取得する際には、前記加算命令を用いて算出した前記加算値に基づいて取得した前記所定のデータを前記加算命令で使用した前記第1レジスタに格納する」と限定することを含むものである。
そして、補正後の請求項1に係る発明は、補正前の請求項1に係る発明と、産業上の利用分野及び解決しようとする課題が同一であるから、本件補正のうち特許請求の範囲の請求項1についてする補正は、特許法第17条の2第5項第2号に掲げる「特許請求の範囲の減縮」を目的とする補正に該当する。
また、本件補正の補正事項は、願書に最初に添付した明細書(以下「当初明細書」という。)の段落【0008】、【0419】~【0421】の記載に基づくものであり、新規事項を追加するものではないから、特許法第17条の2第3項に規定する要件を満たす。
2-2 独立特許要件について
そこで、本件補正後の請求項1に係る発明(以下「本件補正発明」という。)が特許出願の際に独立して特許を受けることができるものであるか否か、すなわち、特許法第17条の2第6項において準用する同法第126条第7項の規定に適合するか否かについて、以下に検討する。
(1)本件補正発明
本件補正発明は、次のとおりのものであると認める(記号A~Dは、分説するため当審判合議体にて付した。)。
「【請求項1】A 遊技の制御を行う制御装置を備え、B 前記制御装置は、B1 所定ビット数の第1レジスタのデータと前記所定ビット数よりもビット数が多い規定ビット数の第2レジスタのデータとを1回の命令で加算する加算命令を用いて加算値を算出し、B2 算出した前記加算値に基づいて所定のデータが格納されているデータテーブルから前記所定のデータを取得するとともに、前記所定のデータを取得する際には、前記加算命令を用いて算出した前記加算値に基づいて取得した前記所定のデータを前記加算命令で使用した前記第1レジスタに格納するデータ取得モジュールを備え、C 前記データ取得モジュールは、C1 前記データ取得モジュール以外のモジュールから呼び出されるモジュールであり、C 前記データ取得モジュールは、C2 少なくとも前記加算命令に関するプログラム、及び、前記所定のデータを取得するプログラムを含んでいるD ことを特徴とする遊技機。」
(2)引用発明
原査定の拒絶の理由に引用文献1として引用された、本願の出願前に電気通信回線を通じて公衆に閲覧可能となった特開2015-109892号公報(以下「引用文献1」という。)には、図面とともに以下の事項が記載されている(下線は当審判合議体にて付した。以下同じ。)。
ア 記載事項
折りたたみ中(クリックで表示)
(ア)「【発明の効果】【0015】本発明によれば、プログラムの容量がむやみに増大することを防止し、プログラムの容量を削減することができる。」
(イ)「【0089】〔制御上の構成〕次に、パチンコ機1の制御に関する構成について説明する。図9は、パチンコ機1に装備された各種の電子機器類を示すブロック図である。パチンコ機1は、制御動作の中枢となる主制御装置70(主制御用コンピュータ)を備えており、この主制御装置70は主に、パチンコ機1における遊技の進行を制御する機能を有している。なお、主制御装置70は、上記の主制御基板ユニット170に内蔵されている。【0090】また、主制御装置70には、中央演算処理装置である主制御CPU72を実装した回路基板(主制御基板)が装備されており、主制御CPU72は、図示しないCPUコアやレジスタとともにROM74、RAM(RWM)76等の半導体メモリを集積したLSIとして構成されている。また、主制御装置70には、乱数発生器75やサンプリング回路77が装備されている。このうち乱数発生器75は、特別図柄抽選の大当り判定用や普通図柄抽選の当り判定用にハードウェア乱数(例えば10進数表記で0~65535)を発生させるものであり、ここで発生された乱数は、サンプリング回路77を通じて主制御CPU72に入力される。その他にも主制御装置70には、入出力(I/O)ポート79や図示しないクロック発生回路、カウンタ/タイマ回路(CTC)等の周辺ICが装備されており、これらは主制御CPU72とともに回路基板上に実装されている。なお、回路基板上(又は内層部分)には、信号伝送経路や電源供給経路、制御用バス等が配線パターンとして形成されている。」
(ウ)「【0147】ステップS200:先ず主制御CPU72は、メインループの実行中に使用していたレジスタ(アキュムレータAとフラグレジスタF、汎用レジスタB~Lの各ペア)の値をRAM76の退避領域に退避させる。値を退避させた後のレジスタ(A~L)には、割込管理処理の中で別の値を書き込むことができる。」
(エ)「【0223】〔特別図柄遊技処理〕次に、割込管理処理(図13)の中で実行される特別図柄遊技処理の詳細について説明する。図18は、特別図柄遊技処理の構成例を示すフローチャートである。特別図柄遊技処理は、実行選択処理(ステップS1000)、特別図柄変動前処理(ステップS2000)、特別図柄変動中処理(ステップS3000)、特別図柄停止表示中処理(ステップS4000)、大当り時可変入賞装置管理処理(ステップS5000)、小当り時可変入賞装置管理処理(ステップS6000)のサブルーチン(プログラムモジュール)群を含む構成である。ここでは先ず、各処理に沿って特別図柄遊技処理の基本的な流れを説明する。」
(オ)「【0287】〔図20:特別図柄変動前処理を参照〕ステップS2412:次に主制御CPU72は、大当り時変動パターン決定処理を実行する。この処理では、主制御CPU72は先のステップS2200でシフトした変動パターン決定乱数に基づいて第1特別図柄又は第2特別図柄の変動パターン(変動時間と停止表示時間)を決定する。また、主制御CPU72は、決定した変動時間の値を変動タイマにセットするとともに、停止表示時間の値を停止図柄表示タイマにセットする。一般的に大当りリーチ変動の場合、はずれ時よりも長い変動時間が決定される。」
(カ)「【0430】次に、上記で説明した処理のうち特別な処理において行われる具体的なプログラミング内容について説明する。ここで、特別な処理として、特別図柄の変動表示に関する変動パターンを選択する処理、内部抽選の結果大当りに該当した際に当選種類(当選図柄)を選択する処理、普通図柄の変動表示に関する変動パターンを選択する処理、作動抽選の結果当りに該当した際に当選種類(当選図柄)を選択する処理、大当り遊技や小当り遊技におけるオープニング時間、エンディング時間、インターバル時間等を選択する処理、大当り遊技終了後に設定する確変回数や時短回数、特殊変動回数を選択する処理等のサブルーチンプログラムが挙げられる。これらの特別な処理(サブルーチンプログラム)において、共通のサブモジュールが呼び出され、その共通のサブモジュールが呼び出された結果、所望するデータ値(例えば、変動パターン番号等)が決定される。このサブモジュールを呼び出す処理として簡単なサブルーチンプログラムを例にして説明する。なお、簡単なサブルーチンプログラムとして、例えば、第1特別図柄又は第2特別図柄に関してそれぞれテーブルが用意されている際に、いずれか1つのテーブルを参照してそのテーブルの中から対応する値を決定するといった内容を想定して説明する。【0431】先ず、本実施形態の比較対象とするサブルーチンプログラム(比較例1、比較例2)について説明し、次に、本実施形態であるサブルーチンプログラムについて説明する。続きを表示(全37行)【0432】図42は、比較対象とするサブルーチンプログラム(比較例1)の手順例を示すフローチャートである。以下、手順例に沿って説明する。また、図43は、比較対象とするサブルーチンプログラム(比較例1)で使用される参照データの一例を示す図である。【0433】ステップS7000:主制御CPU72は、選択オフセット1をセットする。具体的には、次の処理(ワードデータ選択処理(ステップS7004))において使用する値である選択オフセット1をセットする。なお、選択オフセット1として、例えば、第1特別図柄である場合は00Hがセットされたり、第2特別図柄である場合は01Hがセットされたりする。主制御CPU72は次にステップS7002を実行する。【0434】ステップS7002:主制御CPU72は、選択アドレスとしてデータ選択テーブル(D_Table_Sel)のアドレスをセットする。例えば、データ選択テーブル(D_Table_Sel)のアドレスとして1000Hがセットされる。主制御CPU72は次にステップS7004を実行する。ここで、データ選択テーブルとは、図43に示す参照データのアドレス1000Hから開始されるデータ値を表している。【0435】また、図43に示す参照データには、他にもデータ値が記録されており、具体的な内容について説明する。例えば、アドレス1000Hには1002Hが記録されている。他にも、アドレス1001Hには1005H、アドレス1002Hには10、アドレス1003Hには20、アドレス1004Hには30、アドレス1005Hには40、アドレス1006Hには50、アドレス1007Hには60が記録されている。ここで、アドレス値1000H,1001Hは、データ選択テーブルを表しており、それぞれのデータ値はワードサイズのデータが記録されている。アドレス値1002H~1004Hは、第1特別図柄に対応する変動時間の選択テーブルを表しており、アドレス値1005H~1007Hは、第2特別図柄に対応する変動時間の選択テーブルを表していると想定する。また、それぞれのデータ値はバイトサイズのデータであり、変動時間に対応する値であると想定する。【0436】ステップS7004:主制御CPU72は、ワードデータ選択処理を実行する。ここで、ワードデータ選択処理が共通サブモジュールであることを想定しており、この処理においては、主制御CPU72はワードデータ選択処理といった共通サブモジュールを呼び出して実行していることを表している。この処理により、先の処理(ステップS7000、ステップS7002)でセットされた、選択オフセット1と選択アドレスとに基づいて、ワードデータが出力されることとなる。なお、具体的な処理の内容については、後述するバイトデータ選択処理(ステップS7008)と同様の処理であり、出力される結果がワードサイズであるのか、バイトサイズであるのかの違いのみであるため、説明は省略する。【0437】そして、このワードデータ選択処理により、アドレス値が出力される。具体的には、選択オフセット1として00Hが入力されると、第1特別図柄に対応する変動時間の選択テーブルの先頭アドレス値(1002H)が出力され、選択オフセット1として01Hが入力されると、第2特別図柄に対応する変動時間の選択テーブルの先頭アドレス値(1005H)が出力される。主制御CPU72は次にステップS7006を実行する。【0438】ステップS7006:主制御CPU72は、選択オフセット2をセットする。具体的には、次の処理(バイトデータ選択処理(ステップS7008))において使用する値である選択オフセット2をセットする。なお、選択オフセット2として、例えば、内部抽選の結果のはずれに対応して00Hがセットされたり、大当りに対応して01Hがセットされたり、小当りに対応して02Hがセットされたりする。主制御CPU72は次にステップS7008を実行する。【0439】ステップS7008:主制御CPU72は、バイトデータ選択処理を実行する。ここで、バイトデータ選択処理が共通サブモジュールであることを想定しており、このバイトデータ選択処理においては、主制御CPU72はバイトデータ選択処理といった共通サブモジュールを呼び出して実行していることを表している。この処理により、先の処理(ステップS7004、ステップS7006)でセットされた、選択オフセット2とワードデータ選択処理による結果のアドレス値とに基づいて、バイトデータが出力されることとなる。例えば、変動時間を表す値が出力されることとなる。具体的には、アドレス値が1002Hである際に、選択オフセット2として00Hが入力されると、バイトデータ10(例えば、10秒)が出力され、選択オフセット2として01Hが入力されると、バイトデータ20(例えば、20秒)が出力され、選択オフセット3として02Hが入力されると、バイトデータ30(例えば、30秒)が出力される。同様に、アドレス値が1005Hである際に、選択オフセット2として00Hが入力されると、バイトデータ40(例えば、40秒)が出力され、選択オフセット2として01Hが入力されると、バイトデータ50(例えば、50秒)が出力され、選択オフセット3として02Hが入力されると、バイトデータ60(例えば、60秒)が出力される。【0440】図44は、バイトデータ選択処理の手順例を示すフローチャートである。以下、手順例に沿って説明する。この処理は、共通サブモジュールとして、様々な処理において呼び出され実行されるものである。【0441】ステップS7030:主制御CPU72は、選択オフセットと選択アドレスの下位バイトを加算する。例えば、選択オフセットが00Hであり、選択アドレスが1000Hである場合、00Hと00Hとを加算して、00Hといった加算結果が出力される。主制御CPU72は次にステップS7032を実行する。【0442】ステップS7032:主制御CPU72は、選択アドレスの下位バイトに演算結果値をセットする。具体的には、選択アドレスの下位バイトに先の処理(ステップS7030)で出力された結果をセットする。例えば、選択アドレスが1000Hの下位バイトに加算結果00Hがセットされ、選択結果アドレスとして1000Hが出力される。主制御CPU72は次にステップS7034を実行する。【0443】ステップS7034:主制御CPU72は、桁上がりではないか否かを確認する。具体的には、先の処理(ステップS7032)の加算結果が桁上がりしているか否かを確認する。例えば、FFHが100Hに桁上がりしているか否かを確認する。この確認の結果、桁上がりではない場合(Yes)、主制御CPU72は次にステップS7038を実行する。一方、桁上がりである場合(No)、主制御CPU72は次にステップS7036を実行する。【0444】ステップS7036:主制御CPU72は、選択アドレスの上位バイトを1加算する。例えば、選択アドレスが1000Hであった場合、1100Hに加算する。主制御CPU72は次にステップS7038を実行する。【0445】ステップS7038:主制御CPU72は、選択結果アドレスで示す選択結果データをロードする。具体的には、先の処理(ステップS7032やステップS7036)で出力された選択結果のアドレス値に記録されているデータ値を読み出す。例えば、図43に示すように、アドレス1000Hに1002が記録されている場合、1002Hが読み出される。他にも、アドレスが1001Hであれば1005Hが読み出され、アドレスが1002Hであれば10が読み出され、アドレスが1003Hであれば20が読み出され、アドレスが1004Hであれば30が読み出され、アドレスが1005Hであれば40が読み出され、アドレスが1006Hであれば50が読み出され、アドレスが1007Hであれば60が読み出される。主制御CPU72は次にステップS7040を実行する。【0446】ステップS7040:主制御CPU72は、選択結果データを確認し選択結果フラグ値をセットする。例えば、先の処理(ステップS7038)で読み出された値に対応したフラグがセットされる。そして、そのフラグに基づいて別の処理が行われる場合もある。【0447】以上の手順を終えると、主制御CPU72は図42のサブルーチンプログラム処理に復帰する。」
(キ)「【図42】」
(ク)「【図43】」
(ケ)「【図44】」
イ 認定事項
(ア)【0147】の「・・・先ず主制御CPU72は、メインループの実行中に使用していたレジスタ(アキュムレータAとフラグレジスタF、汎用レジスタB~Lの各ペア)の値をRAM76の退避領域に退避させる。値を退避させた後のレジスタ(A~L)には、割込管理処理の中で別の値を書き込むことができる。」との記載から、主制御CPU72は、レジスタ(アキュムレータAとフラグレジスタF、汎用レジスタB~Lの各ペアのいずれかのレジスタ)に、割込管理処理の中で別の値を書き込むことができる。
主制御CPU72が行うバイトデータ選択処理は、【0223】の「〔特別図柄遊技処理〕次に、割込管理処理(図13)の中で実行される特別図柄遊技処理の詳細について説明する。図18は、特別図柄遊技処理の構成例を示すフローチャートである。特別図柄遊技処理は、実行選択処理(ステップS1000)、特別図柄変動前処理(ステップS2000)、特別図柄変動中処理(ステップS3000)、特別図柄停止表示中処理(ステップS4000)、大当り時可変入賞装置管理処理(ステップS5000)、小当り時可変入賞装置管理処理(ステップS6000)のサブルーチン(プログラムモジュール)群を含む構成である。ここでは先ず、各処理に沿って特別図柄遊技処理の基本的な流れを説明する。」との記載から、割込管理処理の中で実行される特別図柄遊技処理は特別図柄変動前処理を含むサブルーチン(プログラムモジュール)群から構成されている。
また、【0287】の「〔図20:特別図柄変動前処理を参照〕ステップS2412:次に主制御CPU72は、大当り時変動パターン決定処理を実行する。この処理では、主制御CPU72は先のステップS2200でシフトした変動パターン決定乱数に基づいて第1特別図柄又は第2特別図柄の変動パターン(変動時間と停止表示時間)を決定する。また、主制御CPU72は、決定した変動時間の値を変動タイマにセットするとともに、停止表示時間の値を停止図柄表示タイマにセットする。一般的に大当りリーチ変動の場合、はずれ時よりも長い変動時間が決定される。」との記載から、特別図柄変動前処理は、第1特別図柄又は第2特別図柄の変動パターン(変動時間と停止表示時間)を決定する処理であり、【0430】の「次に、上記で説明した処理のうち特別な処理において行われる具体的なプログラミング内容について説明する。ここで、特別な処理として、特別図柄の変動表示に関する変動パターンを選択する処理、内部抽選の結果大当りに該当した際に当選種類(当選図柄)を選択する処理、普通図柄の変動表示に関する変動パターンを選択する処理、作動抽選の結果当りに該当した際に当選種類(当選図柄)を選択する処理、大当り遊技や小当り遊技におけるオープニング時間、エンディング時間、インターバル時間等を選択する処理、大当り遊技終了後に設定する確変回数や時短回数、特殊変動回数を選択する処理等のサブルーチンプログラムが挙げられる。これらの特別な処理(サブルーチンプログラム)において、共通のサブモジュールが呼び出され、その共通のサブモジュールが呼び出された結果、所望するデータ値(例えば、変動パターン番号等)が決定される。このサブモジュールを呼び出す処理として簡単なサブルーチンプログラムを例にして説明する。なお、簡単なサブルーチンプログラムとして、例えば、第1特別図柄又は第2特別図柄に関してそれぞれテーブルが用意されている際に、いずれか1つのテーブルを参照してそのテーブルの中から対応する値を決定するといった内容を想定して説明する。」との記載から、特別な処理として、特別図柄の変動表示に関する変動パターンを選択する処理のサブルーチンプログラムが挙げられ、変動パターンを選択する処理は上記【0287】の記載から、特別図柄変動前処理の中で実行される処理である。
そして、【0430】には、簡単なサブルーチンプログラムとして、例えば、第1特別図柄又は第2特別図柄に関してそれぞれテーブルが用意されている際に、いずれか1つのテーブルを参照してそのテーブルの中から対応する値を決定するといった内容を想定して説明されていると記載されており、その説明が始まる【0430】の次の段落である【0431】には「先ず、本実施形態の比較対象とするサブルーチンプログラム(比較例1、比較例2)について説明し、次に、本実施形態であるサブルーチンプログラムについて説明する。」と記載されており、その具体的なサブルーチンプログラムの説明としての【0435】の「また、図43に示す参照データには、他にもデータ値が記録されており、具体的な内容について説明する。例えば、アドレス1000Hには1002Hが記録されている。他にも、アドレス1001Hには1005H、アドレス1002Hには10、アドレス1003Hには20、アドレス1004Hには30、アドレス1005Hには40、アドレス1006Hには50、アドレス1007Hには60が記録されている。ここで、アドレス値1000H,1001Hは、データ選択テーブルを表しており、それぞれのデータ値はワードサイズのデータが記録されている。アドレス値1002H~1004Hは、第1特別図柄に対応する変動時間の選択テーブルを表しており、アドレス値1005H~1007Hは、第2特別図柄に対応する変動時間の選択テーブルを表していると想定する。また、それぞれのデータ値はバイトサイズのデータであり、変動時間に対応する値であると想定する。」との記載や、具体的なサブルーチンプログラムの説明として続いている【0439】の「ステップS7008:主制御CPU72は、バイトデータ選択処理を実行する。ここで、バイトデータ選択処理が共通サブモジュールであることを想定しており、このバイトデータ選択処理においては、主制御CPU72はバイトデータ選択処理といった共通サブモジュールを呼び出して実行していることを表している。この処理により、先の処理(ステップS7004、ステップS7006)でセットされた、選択オフセット2とワードデータ選択処理による結果のアドレス値とに基づいて、バイトデータが出力されることとなる。例えば、変動時間を表す値が出力されることとなる。具体的には、アドレス値が1002Hである際に、選択オフセット2として00Hが入力されると、バイトデータ10(例えば、10秒)が出力され、選択オフセット2として01Hが入力されると、バイトデータ20(例えば、20秒)が出力され、選択オフセット3として02Hが入力されると、バイトデータ30(例えば、30秒)が出力される。同様に、アドレス値が1005Hである際に、選択オフセット2として00Hが入力されると、バイトデータ40(例えば、40秒)が出力され、選択オフセット2として01Hが入力されると、バイトデータ50(例えば、50秒)が出力され、選択オフセット3として02Hが入力されると、バイトデータ60(例えば、60秒)が出力される。」との記載から、バイトデータ選択処理は、特別図柄変動前処理の中で実行されるサブルーチンプログラムにおいて、主制御CPU72が呼び出して実行する共通サブモジュールである。
そうすると、バイトデータ選択処理は、割込管理処理の中で実行される特別図柄遊技処理の特別図柄変動前処理の中で実行される共通のサブモジュールであることから、引用文献1には、主制御CPU72は、レジスタ(アキュムレータAとフラグレジスタF、汎用レジスタB~Lの各ペアのいずれかのレジスタ)をバイトデータ選択処理で使用することが記載されているといえる。
(イ)【0438】の「ステップS7006:主制御CPU72は、選択オフセット2をセットする。具体的には、次の処理(バイトデータ選択処理(ステップS7008))において使用する値である選択オフセット2をセットする。なお、選択オフセット2として、例えば、内部抽選の結果のはずれに対応して00Hがセットされたり、大当りに対応して01Hがセットされたり、小当りに対応して02Hがセットされたりする。主制御CPU72は次にステップS7008を実行する。」との記載から、選択オフセット2は00H、01H、02Hが少なくとも存在し、【0439】の「ステップS7008:主制御CPU72は、バイトデータ選択処理を実行する。ここで、バイトデータ選択処理が共通サブモジュールであることを想定しており、このバイトデータ選択処理においては、主制御CPU72はバイトデータ選択処理といった共通サブモジュールを呼び出して実行していることを表している。この処理により、先の処理(ステップS7004、ステップS7006)でセットされた、選択オフセット2とワードデータ選択処理による結果のアドレス値とに基づいて、バイトデータが出力されることとなる。例えば、変動時間を表す値が出力されることとなる。具体的には、アドレス値が1002Hである際に、選択オフセット2として00Hが入力されると、バイトデータ10(例えば、10秒)が出力され、選択オフセット2として01Hが入力されると、バイトデータ20(例えば、20秒)が出力され、選択オフセット3として02Hが入力されると、バイトデータ30(例えば、30秒)が出力される。同様に、アドレス値が1005Hである際に、選択オフセット2として00Hが入力されると、バイトデータ40(例えば、40秒)が出力され、選択オフセット2として01Hが入力されると、バイトデータ50(例えば、50秒)が出力され、選択オフセット3として02Hが入力されると、バイトデータ60(例えば、60秒)が出力される。」との記載から、ワードデータ選択処理による結果のアドレス値は、1002H、1005Hが少なくとも存在する。
また、上記ア(ク)の図43の記載から、D_Table_Set1とD_Table_Set2の先頭アドレスが、それぞれ1002H、1005Hであり、D_Table_Set1とD_Table_Set2に対応したバイトデータが10、20、30と40、50、60の3つずつあることから、オフセット値は少なくとも存在すると上で説示した00H、01H、02Hであることが分かる。
そうすると、主制御CPU72が、選択オフセットと選択アドレスの下位バイトを加算するにあたって、選択アドレスは1002H又は1005Hであり、選択オフセットは、00H、01H、02Hのいずれかである。
よって、選択オフセットは16進数で2桁の値であるから1バイト(8ビット)のデータであり、選択アドレスは16進数で4桁の値であるから2バイト(16ビット)のデータである。
よって、選択オフセットは1バイト(8ビット)のデータを、選択アドレスは2バイト(16ビット)のデータを使用することが記載されている。
ウ 引用発明
上記アの記載事項及びイの認定事項を総合すると、引用文献1には、【0431】-【0447】、図42-44の比較例1として、次の発明(以下「引用発明」という。)が記載されていると認められる(a~eのうちa~dは、本件補正発明のA~Dに対応させて付与した。)。
「a、b 主に、遊技の進行を制御する機能を有している制御動作の中枢となる主制御装置70を備え、主制御装置70には、主制御CPU72を実装した回路基板(主制御基板)が装備されており(【0089】、【0090】)、主制御CPU72は、バイトデータ選択処理でレジスタ(アキュムレータAとフラグレジスタF、汎用レジスタB~Lの各ペアのいずれかのレジスタ)を使用し(認定事項(ア))、b1、c、c1、c2 主制御CPU72は、特別図柄遊技処理に含まれる特別図柄変動前処理のサブルーチンプログラムを用いて、選択オフセット1をセットし(【0223】、【0432】、【0433】、図42)、選択アドレスとしてデータ選択テーブル(D_Table_Sel)のアドレスをセットし(【0434】)、ワードデータ選択処理を実行し、選択オフセット1と選択アドレスとに基づいて、第1特別図柄又は第2特別図柄に対応する変動時間の選択テーブルの先頭アドレス値を出力し(【0436】、【0437】)、選択オフセット2をセットし、共通サブモジュールであるバイトデータ選択処理を呼び出して実行し、選択オフセット2とワードデータ選択処理による結果のアドレス値に基づいて、バイトデータが出力され(【0438】【0439】)、バイトデータ選択処理を終えるとサブルーチンプログラムに復帰し(【0447】)、主制御CPU72は、バイトデータ選択処理において、選択オフセットは1バイト(8ビット)のデータを、選択アドレスは2バイト(16ビット)のデータを使用し(認定事項(イ))、選択オフセット2と選択アドレスの下位バイトを加算し(【0441】、図44)、b2、c2 選択アドレスの下位バイトに選択オフセット2と選択アドレスの下位バイトを加算した演算結果値をセットし(【0441】、【0442】)、桁上がりではないか否かを確認し(【0443】)、桁上がりがない場合、上記演算結果値で示される選択結果アドレスで示す選択結果データ(上記変動時間を表す値)をロードし(【0439】、【0443】、【0445】、図43)、桁上がりである場合、選択アドレスの上位バイトを1加算し(【0443】、【0444】)、選択結果アドレスで示す選択結果データ(上記変動時間を表す値)をロードする(【0439】、【【0445】、図43)、d パチンコ機1(【0089】)。」
(3)引用文献2の記載事項
折りたたみ中(クリックで表示)
原査定の拒絶の理由に引用文献2として引用された、本願の出願前に頒布された特開2012-223334号公報(以下「引用文献2」という。)には、図面とともに以下の事項が記載されている。
ア 記載事項
(ア)「【0009】<実施形態1> 以下、図面を用いて、本発明の実施形態1に係る遊技台(パチンコ機100)について詳細に説明する。」
(イ)「【0275】<特殊命令/ADDTWOONE命令>特殊命令の一つであるADDTWOONE命令(ADDTWOONE OP1,OP2)は、第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値(または、第2オペランドOP2で示される1バイト長のイミディエイト値)を加算するための命令である。ADDTWOONE命令の命令コードの上位1バイトは固定値(この例ではEDH)とし、下位バイトは、命令データテーブルの上位ビット4H(0100B)と下位ビット0H(0000B)~2H(0010B)の組合せと、命令データテーブルの上位ビット4H(0100B)と下位ビット4H(0100B)~7H(0001B)、9H(1001H)の組合せに割り当てている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令(隠し命令)を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。なお、本実施形態では、特殊命令の命令コードを2バイト長としているが、命令コードのバイト長は特に限定されず、例えば1バイト長でもよい。また、ADDTWOONE命令のうちの特定の命令(例えば、「ADDTWOONE HL,A」命令)のみ、他のADDTWOONE命令よりも命令コードが短く(例えば、1バイト長)てもよい。また、「ADDTWOONE OP1,A」命令のうちの特定の命令(例えば、「ADDTWOONE HL,A」命令)のみ、他のADDTWOONE命令よりも命令コードが短く(例えば、1バイト長)てもよい。この場合、該命令の利便性を高めることができる。【0276】「ADDTWOONE HL,C」命令を例に挙げると、第1オペランドで示されるペアレジスタHLに記憶された2バイト長の値に、第2オペランドで示されるCレジスタに記憶された1バイト長の値を加算する場合に使用される命令であり、例えば、上述の特別図柄変動時間抽選処理のステップS1112では、「ADDTWOONE HL,C」を実行することによって、HLレジスタに記憶された2バイト長の値(1755H)に、Cレジスタに記憶された1バイト長の値(B0H)を加算することによって、HLレジスタの値を1805Hに更新している。なお、ADDTWOONE命令(ADDTWOONE OP1,OP2)は、キャリーが発生し難いが、HLレジスタに記憶された2バイト長の値(例えば、FF01H)にCレジスタに記憶された1バイト長の値(例えば、FFH)を加算する場合には、キャリーが発生する。すなわち、ADDTWOONE命令(ADDTWOONE OP1,OP2)を実行後にキャリーが発生する場合には、HレジスタがFFHであると判断することができる。【0277】また、「ADDTWOONE HL,C」命令では、必要なステート数は8ステート、必要なバイト数は2バイトである。一方、従来の命令によって「ADDTWOONE HL,C」命令と同様の処理を行う場合には、図36に示すように、必要なステート数は22ステート(=4+4+10+4)、必要なバイト数は6バイト(=1+1+3+1)である。したがって、HLレジスタに記憶された2バイト長の値にCレジスタに記憶された1バイト長の値を加算する場合に「ADDTWOONE HL,C」命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているROMの記憶領域を有効に利用することができる場合がある。また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。【0278】また、従来CPUに実行可能に備えられている8ビット演算命令では、「ADD A,E」命令のように、加算結果(「SUB A,E」命令の場合は減算結果)をAレジスタに入れるしかなかったが、ADDTWOONE命令を実行して「ADDTWOONE HL,E」命令とすることで「ADD L,E」を可能にしており、Aレジスタを使用せずに温存することができる(使用用途が広いAレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある)。また、「LD H,00H」命令を実行してHレジスタに00Hを転送した後に、「ADDTWOONE HL,E」命令を実行してLレジスタにEレジスタの値を加算して「SRL H」命令を実行してLレジスタが桁あふれしたかどうかをキャリーフラグが立ったか否かで確認することでAレジスタを使用せずに温存することができる(使用用途が広いAレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある)。」
イ 引用文献2の記載事項
上記アの記載事項を総合すると、引用文献2には、次の事項(以下「引用文献2の記載事項」という。)が記載されていると認められる。
「第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値を加算する命令であるADDTWOONE命令を有したパチンコ機100」
(4)周知技術
ア 周知例1
新たに提示する、本願の出願前に頒布された特開2013-27440号公報(以下「周知例1」という。)には、図面とともに以下の事項が記載されている。
(ア) 記載事項
折りたたみ中(クリックで表示)
(a)「【0009】<実施形態1> 以下、図面を用いて、本発明の実施形態1に係る遊技台(パチンコ機100)について詳細に説明する。」
(b)「【0272】<特殊命令/ADDTWOONE命令>特殊命令の一つであるADDTWOONE命令(ADDTWOONE OP1,OP2)は、第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値(または、第2オペランドOP2で示される1バイト長のイミディエイト値)を加算するための命令である。ADDTWOONE命令の命令コードの上位1バイトは固定値(この例ではEDH)とし、下位バイトは、命令データテーブルの上位ビット4H(0100B)と下位ビット0H(0000B)~2H(0010B)の組合せと、命令データテーブルの上位ビット4H(0100B)と下位ビット4H(0100B)~7H(0001B)、9H(1001H)の組合せに割り当てている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令(隠し命令)を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。なお、本実施形態では、特殊命令の命令コードを2バイト長としているが、命令コードのバイト長は特に限定されず、例えば1バイト長でもよい。また、ADDTWOONE命令のうちの特定の命令(例えば、「ADDTWOONE HL,A」命令)のみ、他のADDTWOONE命令よりも命令コードが短く(例えば、1バイト長)てもよい。また、「ADDTWOONE OP1,A」命令のうちの特定の命令(例えば、「ADDTWOONE HL,A」命令)のみ、他のADDTWOONE命令よりも命令コードが短く(例えば、1バイト長)てもよい。この場合、該命令の利便性を高めることができる。【0273】「ADDTWOONE HL,C」命令を例に挙げると、第1オペランドで示されるペアレジスタHLに記憶された2バイト長の値に、第2オペランドで示されるCレジスタに記憶された1バイト長の値を加算する場合に使用される命令であり、例えば、上述の特別図柄変動時間抽選処理のステップS1112では、「ADDTWOONE HL,C」を実行することによって、HLレジスタに記憶された2バイト長の値(1755H)に、Cレジスタに記憶された1バイト長の値(B0H)を加算することによって、HLレジスタの値を1805Hに更新している。なお、ADDTWOONE命令(ADDTWOONE OP1,OP2)は、キャリーが発生し難いが、HLレジスタに記憶された2バイト長の値(例えば、FF01H)にCレジスタに記憶された1バイト長の値(例えば、FFH)を加算する場合には、キャリーが発生する。すなわち、ADDTWOONE命令(ADDTWOONE OP1,OP2)を実行後にキャリーが発生する場合には、HレジスタがFFHであると判断することができる。【0274】また、「ADDTWOONE HL,C」命令では、必要なステート数は8ステート、必要なバイト数は2バイトである。一方、従来の命令によって「ADDTWOONE HL,C」命令と同様の処理を行う場合には、図35に示すように、必要なステート数は22ステート(=4+4+10+4)、必要なバイト数は6バイト(=1+1+3+1)である。したがって、HLレジスタに記憶された2バイト長の値にCレジスタに記憶された1バイト長の値を加算する場合に「ADDTWOONE HL,C」命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているROMの記憶領域を有効に利用することができる場合がある。また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。【0275】また、従来CPUに実行可能に備えられている8ビット演算命令では、「ADD A,E」命令のように、加算結果(「SUB A,E」命令の場合は減算結果)をAレジスタに入れるしかなかったが、ADDTWOONE命令を実行して「ADDTWOONE HL,E」命令とすることで「ADD L,E」を可能にしており、Aレジスタを使用せずに温存することができる(使用用途が広いAレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある)。また、「LD H,00H」命令を実行してHレジスタに00Hを転送した後に、「ADDTWOONE HL,E」命令を実行してLレジスタにEレジスタの値を加算して「SRL H」命令を実行してLレジスタが桁あふれしたかどうかをキャリーフラグが立ったか否かで確認することでAレジスタを使用せずに温存することができる(使用用途が広いAレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある)。」
(c)「【0328】<表示図柄抽選処理>次に、図46を用いて、上述の特図1関連抽選処理における表示図柄抽選(ステップS1003)について説明する。なお、同図は、表示図柄抽選の流れを示すフローチャートである。【0329】続きを表示(全15行)同図(a)に示す表示図柄抽選処理のステップS1601では、ROM306に設けた表示図柄抽選テーブルのアドレス(テーブルアドレス)を取得する。また、ステップS1602では、抽選準備処理を行い、ステップS1603では、抽選処理を行う。ステップS1604では、当り種別情報設定処理を行った後に処理を終了する。【0330】また、同図(b)に示す抽選準備処理のステップS1611では、オフセット値を取得し、ステップS1612では、取得済みの表示図柄抽選テーブルのアドレスを1つ加算して更新する。ステップS1613では、データ選択処理を行い、ステップS1614では、データ選択処理の結果である取得値が0か0以外かを判定し、0の場合には処理を終了し、0以外の場合にはステップS1615に進む。ステップS1615では、抽選用乱数値を取得した後に処理を終了する。【0331】また、同図(c)に示すデータ選択処理のステップS1621では、テーブルアドレスにオフセット値を加算し、ステップS1622では、テーブルアドレスの値をAレジスタに転送する。また、ステップS1623では、Aレジスタの値を1つ減算し、ステップS1624では、テーブルアドレスの値をAレジスタに転送した後に処理を終了する。【0332】図47は、本発明に係る抽選準備処理のプログラムの一例を示した図である。本発明に係る抽選準備処理のプログラムでは、プログラムの(3-1)で示すRST命令を実行することによって、データ選択処理にジャンプし、このデータ選択処理のプログラムの(3-3)で示す「DEC A」命令を実行することによって、Aレジスタの値を1つ減算する。ここで、8ビットDEC命令は、上記図42に示す通り、命令の実行後にZフラグとSZフラグを同じ値に変化させる命令の一つであるため、「DEC A」命令の実行後にはZフラグとSZフラグが同じ値に変化する。【0333】続いて、プログラムの(3-4)で示す「LD A、(HL)」命令を実行することによって、テーブルアドレスの値をAレジスタに転送する。ここで、LD命令(ロード命令)は、上記図42に示す通り、命令の実行後にZフラグを変化させずにSZフラグを変化させる命令の一つであるため、「LD A、(HL)」命令の実行後にはZフラグは変化しないが、SZフラグが変化する。【0334】続いて、プログラムの(3-5)で示す「RET」命令を実行することによって、抽選準備処理のプログラムの(3-1)で示すRST命令の直後に戻り、(3-2)で示す「RET Z」命令を実行する。ここで、「RET Z命令」は、Zフラグが1の場合に、スタックポインタPCが示すスタック領域SPに記憶されたデータをプログラムカウンタPCの下位アドレスに、また、スタックポインタPCが示すスタック領域SP+1に記憶されたデータをプログラムカウンタPCの上位アドレスにそれぞれロード(復帰)した後にスタックポインタPCを2つ加算し、Zフラグが0の場合に後続の処理を継続する命令である。すなわち、(3-2)で示す「RET Z」命令では、(3-3)で示す「DEC A」命令の実行後には変化するが、次の(3-4)で示す「LD A、(HL)」命令の実行後には変化しないZフラグに応じて、表示図柄抽選処理に復帰する処理か、後続の処理を継続する処理のいずれかの処理を行う。」
(d)「【図46】」
(e)「【図47】」
上記(c)の【0333】には、「また、同図(c)に示すデータ選択処理のステップS1621では、テーブルアドレスにオフセット値を加算し、ステップS1622では、テーブルアドレスの値をAレジスタに転送する。また、ステップS1623では、Aレジスタの値を1つ減算し、ステップS1624では、テーブルアドレスの値をAレジスタに転送した後に処理を終了する。」と記載され、上記図46(c)のデータ選択処理のフローチャートについて説明されており、上記図47の下部には、データ選択処理を実行するプログラムが記載されており、【0333】の記載、上記図46(c)のフローチャートの記載及び図47のプログラムの記載から、データ選択処理は、S1621でテーブルアドレスにオフセット値を加算し(プログラムでは「ADDTWOONE HL,A」であり、【0272】には、「ADDTWOONE命令(ADDTWOONE OP1,OP2)は、第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値(または、第2オペランドOP2で示される1バイト長のイミディエイト値)を加算するための命令」と記載されていることから、ADDTWOONE命令でHLレジスタに記憶された2バイト長のテーブルアドレスに、Aレジスタに記憶された1バイト長のオフセット値を加算している)、S1622でテーブルアドレスの値をAレジスタに転送し(プログラムでは「LD A,(HL)」であり、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送している)、S1623でAレジスタの値を1つ減算し、S1624でテーブルアドレスの値をAレジスタに転送し(プログラムでは「LD A,(HL)」であり、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送している)、処理を終了している(プログラムでは、「RET」)ことが見て取れる。
(イ) 周知例1の認定事項
(a)【0272】の記載から、周知例1には、第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値を加算するための命令であるADDTWOONE命令を有することが記載されている。
(b)上記(ア)(e)で説示した、【0272】の記載、【0333】の記載、上記図46(c)のフローチャートの記載及び図47のプログラムの記載から、周知例1には「データ選択処理は、S1621でテーブルアドレスにオフセット値を加算し(プログラムでは「ADDTWOONE HL,A」であり、ADDTWOONE命令でHLレジスタに記憶された2バイト長のテーブルアドレスに、Aレジスタに記憶された1バイト長のオフセット値を加算している)、S1622でテーブルアドレスの値をAレジスタに転送し(プログラムでは「LD A,(HL)」であり、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送している)、S1623でAレジスタの値を1つ減算し、S1624でテーブルアドレスの値をAレジスタに転送し(プログラムでは「LD A,(HL)」であり、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送している)、処理を終了している(プログラムでは、「RET」)ことから、「データ選択処理は、ADDTWOONE命令でHLレジスタに記憶された2バイト長のテーブルアドレスに、Aレジスタに記憶された1バイト長のオフセット値を加算し、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送し、Aレジスタの値を1つ減算し、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送する」ことが記載されている。
ここで、「ADDTWOONE HL,A」における第1オペランドは「HL」レジスタで、第2オペランドは「A」レジスタであるから、周知例1には、データ選択処理は、ADDTWOONE命令で第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値を加算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送し、第2オペランドOP2で示されるレジスタの値1を1つ減算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送することが記載されているといえる。
(ウ) 周知例1の記載事項
折りたたみ中(クリックで表示)
上記(ア)の記載事項、(イ)の認定事項を総合すると、周知例1には次の事項が記載されていると認められる。
「ADDTWOONE命令で第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値を加算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送し、第2オペランドOP2で示されるレジスタの値1を1つ減算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送するデータ選択処理を有するパチンコ機」
イ 周知例2
新たに提示する、本願の出願前に電気通信回線を通じて公衆に閲覧可能となった特開2015-33584号公報(以下「周知例2」という。)には、図面とともに以下の事項が記載されている
(ア) 記載事項
折りたたみ中(クリックで表示)
(a)「【0010】以下、図面を用いて、本発明の実施形態1に係る遊技台(パチンコ機100)について詳細に説明する。」
(b)「【0268】次のステップS1102では、上述のテーブル選択用テーブル(図32(a))の先頭アドレス(本実施形態では、1600H)を、HLレジスタに転送する(LD HL,tableSelectTable)。これにより、HLレジスタに1600Hが記憶される。【0269】次のステップS1103では、上述の保留数記憶領域(RWM領域のアドレスF040H)に記憶された保留数を、Aレジスタに転送する(LDT A,(40H))。ここで、「LDT A、(n:イミディエイト値)」命令は、図36に示すように、Tレジスタを上位、イミディエイト値を下位で示すアドレスのデータをAレジスタにロードする命令である。本実施形態では、TレジスタにF0Hを記憶しているため、「LDT A,(40H)」命令を実行した場合、Tレジスタ(F0H)を上位、イミディエイト値(40H)を下位で示すアドレス(F040H)のデータ、すなわち保留数記憶領域に記憶された保留数がAレジスタにロード(転送)される。例えば、保留数記憶領域に記憶された保留数が2の場合には、Aレジスタに02Hがロード(転送)される。【0270】次のステップS1104では、Aレジスタの値にAレジスタの値を加算する(ADD A,A)。先の例では、Aレジスタの値(02H)にAレジスタの値(02H)を加算することによってAレジスタに04Hが記憶される。次のステップS1105では、HLレジスタにAレジスタの値を加算する(ADDTWOONE HL,A)。詳細は後述するが、ADDTWOONE命令(ADDTWOONE HL,A)は、HLレジスタに記憶された2バイト長の値に、Aレジスタに記憶された1バイト長の値を加算するための命令である。先の例では、HLレジスタ(1600H)にAレジスタの値(04H)を加算することによってHLレジスタに1604Hが記憶される。」
(c)「【0285】<特殊命令/ADDTWOONE命令>【0286】特殊命令の一つであるADDTWOONE命令(ADDTWOONE OP1,OP2)は、第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値(または、第2オペランドOP2で示される1バイト長のイミディエイト値)を加算するための命令である。ADDTWOONE命令の命令コードの上位1バイトは固定値(この例ではEDH)とし、下位バイトは、命令データテーブルの上位ビット4H(0100B)と下位ビット0H(0000B)~2H(0010B)の組合せと、命令データテーブルの上位ビット4H(0100B)と下位ビット4H(0100B)~7H(0001B)、9H(1001H)の組合せに割り当てている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令(隠し命令)を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。なお、本実施形態では、特殊命令の命令コードを2バイト長としているが、命令コードのバイト長は特に限定されず、例えば1バイト長でもよい。また、ADDTWOONE命令のうちの特定の命令(例えば、「ADDTWOONE HL,A」命令)のみ、他のADDTWOONE命令よりも命令コードが短く(例えば、1バイト長)てもよい。また、「ADDTWOONE OP1,A」命令のうちの特定の命令(例えば、「ADDTWOONE HL,A」命令)のみ、他のADDTWOONE命令よりも命令コードが短く(例えば、1バイト長)てもよい。この場合、該命令の利便性を高めることができる。【0287】「ADDTWOONE HL,C」命令を例に挙げると、第1オペランドで示されるペアレジスタHLに記憶された2バイト長の値に、第2オペランドで示されるCレジスタに記憶された1バイト長の値を加算する場合に使用される命令であり、例えば、上述の特別図柄変動時間抽選処理のステップS1112では、「ADDTWOONE HL,C」を実行することによって、HLレジスタに記憶された2バイト長の値(1755H)に、Cレジスタに記憶された1バイト長の値(B0H)を加算することによって、HLレジスタの値を1805Hに更新している。なお、ADDTWOONE命令(ADDTWOONE OP1,OP2)は、キャリーが発生し難いが、HLレジスタに記憶された2バイト長の値(例えば、FF01H)にCレジスタに記憶された1バイト長の値(例えば、FFH)を加算する場合には、キャリーが発生する。すなわち、ADDTWOONE命令(ADDTWOONE OP1,OP2)を実行後にキャリーが発生する場合には、HレジスタがFFHであると判断することができる。【0288】また、「ADDTWOONE HL,C」命令では、必要なステート数は8ステート、必要なバイト数は2バイトである。一方、従来の命令によって「ADDTWOONE HL,C」命令と同様の処理を行う場合には、図36に示すように、必要なステート数は22ステート(=4+4+10+4)、必要なバイト数は6バイト(=1+1+3+1)である。したがって、HLレジスタに記憶された2バイト長の値にCレジスタに記憶された1バイト長の値を加算する場合に「ADDTWOONE HL,C」命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているROMの記憶領域を有効に利用することができる場合がある。また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。【0289】また、従来CPUに実行可能に備えられている8ビット演算命令では、「ADD A,E」命令のように、加算結果(「SUB A,E」命令の場合は減算結果)をAレジスタに入れるしかなかったが、ADDTWOONE命令を実行して「ADDTWOONE HL,E」命令とすることで「ADD L,E」を可能にしており、Aレジスタを使用せずに温存することができる(使用用途が広いAレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある)。また、「LD H,00H」命令を実行してHレジスタに00Hを転送した後に、「ADDTWOONE HL,E」命令を実行してLレジスタにEレジスタの値を加算して「SRL H」命令を実行してLレジスタが桁あふれしたかどうかをキャリーフラグが立ったか否かで確認することでAレジスタを使用せずに温存することができる(使用用途が広いAレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある)。」
(d)「<表示図柄抽選処理>【1309】次に、図166を用いて、上述の特図1関連抽選処理における表示図柄抽選(ステップS1003)について説明する。なお、同図は、表示図柄抽選の流れを示すフローチャートである。【1310】続きを表示(全15行)同図(a)に示す表示図柄抽選処理のステップS5601では、ROM306に設けた表示図柄抽選テーブルのアドレス(テーブルアドレス)を取得する。また、ステップS5602では、抽選準備処理を行い、ステップS5603では、抽選処理を行う。ステップS5604では、当り種別情報設定処理を行った後に処理を終了する。【1311】また、同図(b)に示す抽選準備処理のステップS5611では、オフセット値を取得し、ステップS5612では、取得済みの表示図柄抽選テーブルのアドレスを1つ加算して更新する。ステップS5613では、データ選択処理を行い、ステップS5614では、データ選択処理の結果である取得値が0か0以外かを判定し、0の場合には処理を終了し、0以外の場合にはステップS5615に進む。ステップS5615では、抽選用乱数値を取得した後に処理を終了する。【1312】また、同図(c)に示すデータ選択処理のステップS5621では、テーブルアドレスにオフセット値を加算し、ステップS5622では、テーブルアドレスの値をAレジスタに転送する。また、ステップS5623では、Aレジスタの値を1つ減算し、ステップS5624では、テーブルアドレスの値をAレジスタに転送した後に処理を終了する。【1313】図167は、本発明に係る抽選準備処理のプログラムの一例を示した図である。本発明に係る抽選準備処理のプログラムでは、プログラムの(3-1)で示すRST命令を実行することによって、データ選択処理にジャンプし、このデータ選択処理のプログラムの(3-3)で示す「DEC A」命令を実行することによって、Aレジスタの値を1つ減算する。ここで、8ビットDEC命令は、上記図162に示す通り、命令の実行後にZフラグとSZフラグを同じ値に変化させる命令の一つであるため、「DEC A」命令の実行後にはZフラグとSZフラグが同じ値に変化する。【1314】続いて、プログラムの(3-4)で示す「LD A、(HL)」命令を実行することによって、テーブルアドレスの値をAレジスタに転送する。ここで、LD命令(ロード命令)は、上記図162に示す通り、命令の実行後にZフラグを変化させずにSZフラグを変化させる命令の一つであるため、「LD A、(HL)」命令の実行後にはZフラグは変化しないが、SZフラグが変化する。【1315】続いて、プログラムの(3-5)で示す「RET」命令を実行することによって、抽選準備処理のプログラムの(3-1)で示すRST命令の直後に戻り、(3-2)で示す「RET Z」命令を実行する。ここで、「RET Z命令」は、Zフラグが1の場合に、スタックポインタSPが示すスタック領域SPに記憶されたデータをプログラムカウンタPCの下位アドレスに、また、スタックポインタSPが示すスタック領域SP+1に記憶されたデータをプログラムカウンタPCの上位アドレスにそれぞれロード(復帰)した後にスタックポインタSPを2つ加算し、Zフラグが0の場合に後続の処理を継続する命令である。すなわち、(3-2)で示す「RET Z」命令では、(3-3)で示す「DEC A」命令の実行後には変化するが、次の(3-4)で示す「LD A、(HL)」命令の実行後には変化しないZフラグに応じて、表示図柄抽選処理に復帰する処理か、後続の処理を継続する処理のいずれかの処理を行う。」
(e)「【図166】」
(f)「【図167】」
上記(c)の【1312】には、「また、同図(c)に示すデータ選択処理のステップS5621では、テーブルアドレスにオフセット値を加算し、ステップS5622では、テーブルアドレスの値をAレジスタに転送する。また、ステップS5623では、Aレジスタの値を1つ減算し、ステップS5624では、テーブルアドレスの値をAレジスタに転送した後に処理を終了する。」と記載され、上記図166(c)のデータ選択処理のフローチャートについて説明されており、上記図167の下部には、データ選択処理を実行するプログラムが記載されており、【1312】の記載、上記図166(c)のフローチャートの記載及び図167のプログラムの記載から、データ選択処理は、S5621でテーブルアドレスにオフセット値を加算し(プログラムでは「ADDTWOONE HL,A」であり、【0286】には、「ADDTWOONE命令(ADDTWOONE OP1,OP2)は、第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値(または、第2オペランドOP2で示される1バイト長のイミディエイト値)を加算するための命令」と記載されていることから、ADDTWOONE命令でHLレジスタに記憶された2バイト長のテーブルアドレスに、Aレジスタに記憶された1バイト長のオフセット値を加算している)、S5622でテーブルアドレスの値をAレジスタに転送し(プログラムでは「LD A,(HL)」であり、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送している)、S5623でAレジスタの値を1つ減算し、S5624でテーブルアドレスの値をAレジスタに転送し(プログラムでは「LD A,(HL)」であり、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送している)、処理を終了している(プログラムでは、「RET」)ことが見て取れる。
(イ) 周知例2の認定事項
(a)【0286】の記載から、周知例2には、第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値を加算するための命令であるADDTWOONE命令を有することが記載されている。
(b)上記(ア)(f)で説示した、【0286】の記載、【1312】の記載、上記図166(c)のフローチャートの記載及び図47のプログラムの記載から周知例2には「データ選択処理は、S5621でテーブルアドレスにオフセット値を加算し(プログラムでは「ADDTWOONE HL,A」であり、ADDTWOONE命令でHLレジスタに記憶された2バイト長のテーブルアドレスに、Aレジスタに記憶された1バイト長のオフセット値を加算している)、S5622でテーブルアドレスの値をAレジスタに転送し(プログラムでは「LD A,(HL)」であり、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送している)、S5623でAレジスタの値を1つ減算し、S5624でテーブルアドレスの値をAレジスタに転送し(プログラムでは「LD A,(HL)」であり、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送している)、処理を終了している(プログラムでは、「RET」)ことから、「データ選択処理は、ADDTWOONE命令でHLレジスタに記憶された2バイト長のテーブルアドレスに、Aレジスタに記憶された1バイト長のオフセット値を加算し、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送し、Aレジスタの値を1つ減算し、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送することが記載されている。
ここで、「ADDTWOONE HL,A」における第1オペランドは「HL」レジスタで、第2オペランドは「A」レジスタであるから、周知例1には、データ選択処理は、ADDTWOONE命令で第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値を加算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送し、第2オペランドOP2で示されるレジスタの値1を1つ減算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送することが記載されているといえる。
(ウ) 周知例2の記載事項
折りたたみ中(クリックで表示)
上記(ア)の記載事項、(イ)の認定事項を総合すると、周知例2には次の事項が記載されていると認められる。
「ADDTWOONE命令で第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値を加算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送し、第2オペランドOP2で示されるレジスタの値1を1つ減算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送するデータ選択処理を有するパチンコ機」
ウ 周知例3
新たに提示する、本願の出願前に電気通信回線を通じて公衆に閲覧可能となった特開2015-110176号公報(以下「周知例3」という。)には、図面とともに以下の事項が記載されている
(ア)周知例3の記載事項
折りたたみ中(クリックで表示)
(a)「【0010】<全体構成> まず、図1を用いて、本発明の実施形態1に係るパチンコ機100の全体構成について説明する。なお、同図はパチンコ機100を正面側(遊技者側)から見た外観斜視図である。」
(b)「【0276】<特殊命令/ADDTWOONE命令>特殊命令の一つであるADDTWOONE命令(ADDTWOONE OP1,OP2)は、第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値(または、第2オペランドOP2で示される1バイト長のイミディエイト値)を加算するための命令である。ADDTWOONE命令の命令コードの上位1バイトは固定値(この例ではEDH)とし、下位バイトは、命令データテーブルの上位ビット4H(0100B)と下位ビット0H(0000B)~2H(0010B)の組合せと、命令データテーブルの上位ビット4H(0100B)と下位ビット4H(0100B)~7H(0001B)、9H(1001H)の組合せに割り当てている。このように、従来は空き領域とされていた命令の領域を利用することで、限られたハードウェア資源を有効利用することができる上に、空き領域に不正な命令(隠し命令)を埋め込むような不正行為を未然に防止することができ、遊技の公平性を担保できる場合がある。なお、本実施形態では、特殊命令の命令コードを2バイト長としているが、命令コードのバイト長は特に限定されず、例えば1バイト長でもよい。また、ADDTWOONE命令のうちの特定の命令(例えば、「ADDTWOONE HL,A」命令)のみ、他のADDTWOONE命令よりも命令コードが短く(例えば、1バイト長)てもよい。また、「ADDTWOONE OP1,A」命令のうちの特定の命令(例えば、「ADDTWOONE HL,A」命令)のみ、他のADDTWOONE命令よりも命令コードが短く(例えば、1バイト長)てもよい。この場合、該命令の利便性を高めることができる。【0277】「ADDTWOONE HL,C」命令を例に挙げると、第1オペランドで示されるペアレジスタHLに記憶された2バイト長の値に、第2オペランドで示されるCレジスタに記憶された1バイト長の値を加算する場合に使用される命令であり、例えば、上述の特別図柄変動時間抽選処理のステップS1112では、「ADDTWOONE HL,C」を実行することによって、HLレジスタに記憶された2バイト長の値(1755H)に、Cレジスタに記憶された1バイト長の値(B0H)を加算することによって、HLレジスタの値を1805Hに更新している。なお、ADDTWOONE命令(ADDTWOONE OP1,OP2)は、キャリーが発生し難いが、HLレジスタに記憶された2バイト長の値(例えば、FF01H)にCレジスタに記憶された1バイト長の値(例えば、FFH)を加算する場合には、キャリーが発生する。すなわち、ADDTWOONE命令(ADDTWOONE OP1,OP2)を実行後にキャリーが発生する場合には、HレジスタがFFHであると判断することができる。【0278】また、「ADDTWOONE HL,C」命令では、必要なステート数は8ステート、必要なバイト数は2バイトである。一方、従来の命令によって「ADDTWOONE HL,C」命令と同様の処理を行う場合には、図36に示すように、必要なステート数は22ステート(=4+4+10+4)、必要なバイト数は6バイト(=1+1+3+1)である。したがって、HLレジスタに記憶された2バイト長の値にCレジスタに記憶された1バイト長の値を加算する場合に「ADDTWOONE HL,C」命令を使用すれば、制御プログラムの処理時間を短縮して制御負担を軽減することができる上に、プログラムコード量を削減することができ、メモリ容量が制限されているROMの記憶領域を有効に利用することができる場合がある。また、遊技性を高めるためにプログラムコードが増えたとしても、プログラム容量の増加や処理速度の低下を抑止できる場合がある。また、プログラム容量を削減することによって、開発者のコーディングミスやチェックミスを減らし、デバッグが容易で開発効率を高めることが可能となることに加えて、遊技台として適正な機能を有するか否かを外部機関が確認する際にも、確認作業のミスを防止でき、遊技者が安心して遊技を行うことができる遊技台を提供できる場合がある。【0279】また、従来CPUに実行可能に備えられている8ビット演算命令では、「ADD A,E」命令のように、加算結果(「SUB A,E」命令の場合は減算結果)をAレジスタに入れるしかなかったが、ADDTWOONE命令を実行して「ADDTWOONE HL,E」命令とすることで「ADD L,E」を可能にしており、Aレジスタを使用せずに温存することができる(使用用途が広いAレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある)。また、「LD H,00H」命令を実行してHレジスタに00Hを転送した後に、「ADDTWOONE HL,E」命令を実行してLレジスタにEレジスタの値を加算して「SRL H」命令を実行してLレジスタが桁あふれしたかどうかをキャリーフラグが立ったか否かで確認することでAレジスタを使用せずに温存することができる(使用用途が広いAレジスタを他の命令で使用することが可能となる結果、プログラム容量を削減できる場合がある)。」
(c)「【1250】<表示図柄抽選処理>次に、図166を用いて、上述の特図1関連抽選処理における表示図柄抽選(ステップS1003)について説明する。なお、同図は、表示図柄抽選の流れを示すフローチャートである。【1251】続きを表示(全15行)同図(a)に示す表示図柄抽選処理のステップS5601では、ROM306に設けた表示図柄抽選テーブルのアドレス(テーブルアドレス)を取得する。また、ステップS5602では、抽選準備処理を行い、ステップS5603では、抽選処理を行う。ステップS5604では、当り種別情報設定処理を行った後に処理を終了する。【1252】また、同図(b)に示す抽選準備処理のステップS5611では、オフセット値を取得し、ステップS5612では、取得済みの表示図柄抽選テーブルのアドレスを1つ加算して更新する。ステップS5613では、データ選択処理を行い、ステップS5614では、データ選択処理の結果である取得値が0か0以外かを判定し、0の場合には処理を終了し、0以外の場合にはステップS5615に進む。ステップS5615では、抽選用乱数値を取得した後に処理を終了する。【1253】また、同図(c)に示すデータ選択処理のステップS5621では、テーブルアドレスにオフセット値を加算し、ステップS5622では、テーブルアドレスの値をAレジスタに転送する。また、ステップS5623では、Aレジスタの値を1つ減算し、ステップS5624では、テーブルアドレスの値をAレジスタに転送した後に処理を終了する。【1254】図167は、本発明に係る抽選準備処理のプログラムの一例を示した図である。本発明に係る抽選準備処理のプログラムでは、プログラムの(3-1)で示すRST命令を実行することによって、データ選択処理にジャンプし、このデータ選択処理のプログラムの(3-3)で示す「DEC A」命令を実行することによって、Aレジスタの値を1つ減算する。ここで、8ビットDEC命令は、上記図162に示す通り、命令の実行後にZフラグとSZフラグを同じ値に変化させる命令の一つであるため、「DEC A」命令の実行後にはZフラグとSZフラグが同じ値に変化する。【1255】続いて、プログラムの(3-4)で示す「LD A、(HL)」命令を実行することによって、テーブルアドレスの値をAレジスタに転送する。ここで、LD命令(ロード命令)は、上記図162に示す通り、命令の実行後にZフラグを変化させずにSZフラグを変化させる命令の一つであるため、「LD A、(HL)」命令の実行後にはZフラグは変化しないが、SZフラグが変化する。【1256】続いて、プログラムの(3-5)で示す「RET」命令を実行することによって、抽選準備処理のプログラムの(3-1)で示すRST命令の直後に戻り、(3-2)で示す「RET Z」命令を実行する。ここで、「RET Z命令」は、Zフラグが1の場合に、スタックポインタSPが示すスタック領域SPに記憶されたデータをプログラムカウンタPCの下位アドレスに、また、スタックポインタSPが示すスタック領域SP+1に記憶されたデータをプログラムカウンタPCの上位アドレスにそれぞれロード(復帰)した後にスタックポインタSPを2つ加算し、Zフラグが0の場合に後続の処理を継続する命令である。すなわち、(3-2)で示す「RET Z」命令では、(3-3)で示す「DEC A」命令の実行後には変化するが、次の(3-4)で示す「LD A、(HL)」命令の実行後には変化しないZフラグに応じて、表示図柄抽選処理に復帰する処理か、後続の処理を継続する処理のいずれかの処理を行う。」
(d)「【0166】
(e)「【図167】」
上記(c)の【1253】には、「また、同図(c)に示すデータ選択処理のステップS5621では、テーブルアドレスにオフセット値を加算し、ステップS5622では、テーブルアドレスの値をAレジスタに転送する。また、ステップS5623では、Aレジスタの値を1つ減算し、ステップS5624では、テーブルアドレスの値をAレジスタに転送した後に処理を終了する。」と記載され、上記図166(c)のデータ選択処理のフローチャートについて説明されており、上記図167の下部には、データ選択処理を実行するプログラムが記載されており、【0333】の記載、上記図166(c)のフローチャートの記載及び図167のプログラムの記載から、データ選択処理は、S5621でテーブルアドレスにオフセット値を加算し(プログラムでは「ADDTWOONE HL,A」であり、【0277】には、「ADDTWOONE命令(ADDTWOONE OP1,OP2)は、第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値(または、第2オペランドOP2で示される1バイト長のイミディエイト値)を加算するための命令」と記載されていることから、ADDTWOONE命令でHLレジスタに記憶された2バイト長のテーブルアドレスに、Aレジスタに記憶された1バイト長のオフセット値を加算している)、S5622でテーブルアドレスの値をAレジスタに転送し(プログラムでは「LD A,(HL)」であり、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送している)、S5623でAレジスタの値を1つ減算し、S5624でテーブルアドレスの値をAレジスタに転送し(プログラムでは「LD A,(HL)」であり、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送している)、処理を終了している(プログラムでは、「RET」)ことが見て取れる。
(イ) 周知例3の認定事項
(a)【0277】の記載から、周知例3には、第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値を加算するための命令であるADDTWOONE命令を有することが記載されている。
(b)上記(ア)(e)で説示した、【0277】の記載、【1257】の記載、上記図166(c)のフローチャートの記載及び図47のプログラムの記載から周知例3には「データ選択処理は、S5621でテーブルアドレスにオフセット値を加算し(プログラムでは「ADDTWOONE HL,A」であり、ADDTWOONE命令でHLレジスタに記憶された2バイト長のテーブルアドレスに、Aレジスタに記憶された1バイト長のオフセット値を加算している)、S5622でテーブルアドレスの値をAレジスタに転送し(プログラムでは「LD A,(HL)」であり、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送している)、S5623でAレジスタの値を1つ減算し、S5624でテーブルアドレスの値をAレジスタに転送し(プログラムでは「LD A,(HL)」であり、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送している)、処理を終了している(プログラムでは、「RET」)ことから、「データ選択処理は、ADDTWOONE命令でHLレジスタに記憶された2バイト長のテーブルアドレスに、Aレジスタに記憶された1バイト長のオフセット値を加算し、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送し、Aレジスタの値を1つ減算し、HLレジスタに記憶されているテーブルアドレスの値をAレジスタに転送することが記載されている。
ここで、「ADDTWOONE HL,A」における第1オペランドは「HL」レジスタで、第2オペランドは「A」レジスタであるから、周知例1には、データ選択処理は、ADDTWOONE命令で第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値を加算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送し、第2オペランドOP2で示されるレジスタの値1を1つ減算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送することが記載されているといえる。
(ウ) 周知例3の記載事項
折りたたみ中(クリックで表示)
上記(ア)の記載事項、(イ)の認定事項を総合すると、周知例3には次の事項が記載されていると認められる。
「ADDTWOONE命令で第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値を加算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送し、第2オペランドOP2で示されるレジスタの値1を1つ減算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送するデータ選択処理を有するパチンコ機」
エ 周知技術
上記ア(ウ)、イ(ウ)、ウ(ウ)の周知例1~3の記載事項を総合すると、「ADDTWOONE命令で第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値を加算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送するデータ選択処理を有するパチンコ機」は本願出願前に周知(以下「周知技術」という。)であると認められる。
(5)対比
本件補正発明と引用発明を対比する。
(ア)本件補正発明の構成A及びBについて
引用発明の構成a、bの「遊技の進行を制御する」は、本件補正発明の構成Aの「遊技の制御を行う」に相当することから、引用発明の構成a、bの「主制御CPU72を実装した回路基板(主制御基板)が装備され」た「主制御装置70」は、本件補正発明の構成A及びBの「制御装置」に相当する。
そうすると、引用発明は、本件補正発明の構成A及びBに相当する事項を有する。
(イ)本件補正発明の構成B1について
引用発明の構成b1、c、c1、c2では「選択オフセットは1バイト(8ビット)のデータ」であり、「選択アドレスは2バイト(16ビット)のデータ」であり、同構成a、bでは「バイトデータ選択処理でレジスタを使用」しているものの、引用発明では、「選択オフセット」、「選択アドレス」に対して、アキュムレータAとフラグレジスタF、汎用レジスタB~Lの各ペアのうちいずれのビット数のいずれのレジスタを使用しているのかが不明であることから、引用発明の構成b1、c、c1、c2の「選択オフセット」、「選択アドレス」は、それぞれ本件補正発明のB1の「所定ビット数のデータ」、「前記所定ビット数よりもビット数が多い規定ビット数のデータ」である点で共通している。
また、引用発明の構成b1、c、c1、c2は「選択オフセット2と選択アドレスの下位バイトを加算」していることから、引用発明と本件補正発明とは2つのデータを「加算する加算命令を用いて加算値を算出」する点で共通している。
そうすると、引用発明と本件補正発明とは「所定ビット数のデータと前記所定ビット数よりもビット数が多い規定ビット数のデータとを加算する加算命令を用いて加算値を算出し」ている点で共通する。
(ウ)本件補正発明の構成B2及びCについて
引用発明の構成b2、c2は、「選択アドレスの下位バイトに選択オフセット2と選択アドレスの下位バイトを加算した演算結果値をセットし、桁上がりではないか否かを確認し、桁上がりがない場合、上記演算結果値で示される選択結果アドレスで示す選択結果データ(上記変動時間を表す値)をロードし、桁上がりである場合は、選択アドレスの上位バイトを1加算し、選択結果アドレスで示す選択結果データ(上記変動時間を表す値)をロード」し、ロードは、「第1特別図柄又は第2特別図柄に対応する変動時間の選択テーブル」から行われ、ロードしたデータ値をアキュムレータAとフラグレジスタF、汎用レジスタB~Lの各ペアのいずれかのレジスタに記憶することは明らかであることから、引用発明の構成b1、c、c1、c2の「第1特別図柄又は第2特別図柄に対応する変動時間の選択テーブル」、同b2、c2の「選択結果データ」は、それぞれ本件補正発明の構成B2の「所定のデータが格納されているデータテーブル」、「前記加算命令を用いて算出した前記加算値に基づいて取得した前記所定のデータ」に相当し、引用発明と本件補正発明とは「取得した前記所定のデータをレジスタに格納する」点で共通する。
また、引用発明の構成b1、c、c1、c2の「バイトデータ選択処理」は「共通サブモジュール」であって、前段落で説示したとおり、引用発明と本件補正発明とは「取得した前記所定のデータをレジスタに格納する」点で共通しているから、引用発明と本件補正発明とは「データ取得手段」を備える点で共通する。
そうすると、引用発明と本件補正発明とは「算出した前記加算値に基づいて所定のデータが格納されているデータテーブルから前記所定のデータを取得するとともに、前記所定のデータを取得する際には、前記加算命令を用いて算出した前記加算値に基づいて取得した前記所定のデータをレジスタに格納するデータ取得手段を備え」る点で共通する。
(エ)本件補正発明の構成C1について
引用発明の構成b1、c、c1、c2では、「主制御CPU72は、サブルーチンプログラムを用いて」「共通サブモジュールであるバイトデータ選択処理を呼び出して実行し」「バイトデータ選択処理を終えるとサブルーチンプログラムに復帰し」ていることから、引用発明の「バイトデータ選択処理」は、本件補正発明と「前記データ取得手段以外のモジュールから呼び出されるモジュール」である点で共通する。
(オ)本件補正発明の構成C2について
引用発明は、上記(ウ)で説示したとおり、本件補正発明と、「加算命令を用いて算出した前記加算値に基づいて取得した前記所定のデータをレジスタに格納するデータ取得モジュールを備え」る点で共通し、引用発明の構成b2、c2では、「主制御CPU72」は「バイトデータ選択処理」で「選択オフセット2と選択アドレスの下位バイトを加算」しているから、本件補正発明と「加算命令に関するプログラム」を有する点で共通し、「桁上がりがない場合、選択結果アドレスで示す選択結果データをロードし、桁上がりである場合、選択アドレスの上位バイトを1加算し、選択結果アドレスで示す選択結果データをロードする」ことから、本件補正発明の「所定のデータを取得するプログラム」を有している点で共通する。
(カ)本件補正発明の構成Dについて
引用発明の「パチンコ機1」は本件補正発明の「遊技機」に相当する。
そうすると、本件補正発明と引用発明とは、
「【請求項1】A 遊技の制御を行う制御装置を備え、B 前記制御装置は、B1’所定ビット数のデータと前記所定ビット数よりもビット数が多い規定ビット数のデータとを加算する加算命令を用いて加算値を算出し、B2’算出した前記加算値に基づいて所定のデータが格納されているデータテーブルから前記所定のデータを取得するとともに、前記所定のデータを取得する際には、前記加算命令を用いて算出した前記加算値に基づいて取得した前記所定のデータをレジスタに格納するデータ取得手段を備え、C’ 前記データ取得手段は、C1’ 前記データ取得手段以外のモジュールから呼び出されるモジュールであり、C’ 前記データ取得手段は、C2’ 少なくとも前記加算命令に関するプログラム、及び、前記所定のデータを取得するプログラムを含んでいるD 遊技機。」である点で一致し、以下の点で相違する。
<相違点1>(構成B1、C2)
「加算命令」に関し、
本件補正発明では、「所定ビット数の第1レジスタのデータと前記所定ビット数よりもビット数が多い規定ビット数の第2レジスタのデータとを1回の命令で加算」しているのに対して、引用発明では、「選択オフセット2と選択アドレスの下位バイトを加算し、」「桁上がりではないか否かを確認し、」「桁上がりがない場合、上記演算結果値」を用いるが、「桁上がりである場合は、選択アドレスの上位バイトを1加算」しており、また、「1バイト(8ビット)のデータ」である「選択オフセット2」、「2バイト(16ビット)のデータ」である「選択アドレス」に対して、アキュムレータAとフラグレジスタF、汎用レジスタB~Lの各ペアのうちいずれのビット数のいずれのレジスタ使用しているのかが不明である点。
<相違点2>(構成B2、C、C1、C2)
本件補正発明では、「前記所定のデータを取得する際には、前記加算命令を用いて算出した前記加算値に基づいて取得した前記所定のデータを前記加算命令で使用した前記第1レジスタに格納」しているのに対して、引用発明では、アキュムレータAとフラグレジスタF、汎用レジスタB~Lの各ペアのうちいずれのレジスタに記憶しているのかが不明である点。
(6)判断
ア 相違点1について
(ア)上記(3)イのとおり、「第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値を加算する命令であるADDTWOONE命令を有したパチンコ機100」が引用文献2に記載されている。
そして、「ADDTWOONE命令」が1回の命令であることは明らかであり、第1オペランドOP1は2つのレジスタに記憶された2バイト長の値で、第2オペランドOP2はレジスタに記憶された1バイト長の値であるから、引用文献2の記載事項は、上記相違点1に係る本件補正発明の「所定ビット数の第1レジスタのデータと前記所定ビット数よりもビット数が多い規定ビット数の第2レジスタのデータとを1回の命令で加算」に相当する構成を備えているといえる。
(イ)引用発明は、パチンコ機のプログラムの容量をむやみに増大することを防止し、プログラムの容量を削減することを目的としており(【0015】)、引用文献2の記載事項は、制御プログラムの処理時間を短縮して制御負担を軽減させることができる上に、プログラムコード量を削減することができるものであり(【0277】)、両者は課題が共通している。
(ウ)そして、2つのデータを用いて演算を行う場合に、2つのデータを同時に1つのレジスタに記憶できないことから、2つのデータを別のレジスタに記憶しないと、それらのデータを用いて演算ができないことは当然であるし、このことは、上記第2 2-2(3)イで説示した引用文献2の記載事項における、加算する命令で、第1オペランドOP1で示される2つのレジスタに記憶された値と第2オペランドOP2で示されるレジスタに記憶された値を加算しているように加算する2つの値を別のレジスタに記憶していること、上記第2 2-2(4)ア(ウ)、同イ(ウ)、同ウ(ウ)で説示した周知例1~3における、加算する命令で、第1オペランドOP1で示される2つのレジスタに記憶された値と第2オペランドOP2で示されるレジスタに記憶された値を加算しているように加算する2つの値を別のレジスタに記憶していること、で例示されるように周知技術でもある。
(エ)そうすると、引用発明の「1バイト(8ビット)のデータ」である「選択オフセット2」と「2バイト(16ビット)のデータ」である「選択アドレス」を用いて加算する場合に、それぞれ引用文献2の記載事項の1バイトの「第2オペランドOP2で示されるレジスタ」として、引用発明の「アキュムレータA」に、2バイトの「第1オペランドOP2で示される2つのレジスタ」として、引用発明の「汎用レジスタB~Lの各ペア」のうちのいずれかのペアに記憶することとし、引用発明の加算命令である「選択オフセット2と選択アドレスの下位バイトを加算し、選択アドレスの下位バイトに演算結果値をセットし、桁上がりではないか否かを確認し、桁上がりがない場合、上記演算結果値を用い、桁上がりである場合は、選択アドレスの上位バイトを1加算」することに代えて、引用文献2の記載事項の「第1オペランドOP1で示される2つのレジスタに記憶された2バイト長の値に、第2オペランドOP2で示されるレジスタに記憶された1バイト長の値を加算する命令であるADDTWOONE命令」を採用して、上記相違点1に係る本件補正発明の構成のようになすことは当業者が容易になし得たことである。
イ 相違点2について
(ア)上記(4)エのとおり、「ADDTWOONE命令で第1オペランドOP1で示される2つのレジスタに記憶された2バイト長のテーブルアドレスに、第2オペランドOP2で示されるレジスタに記憶された1バイト長のオフセット値を加算し、第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送するデータ選択処理を有するパチンコ機」は周知技術である。
(イ)引用発明と周知技術とは、データを選択する処理を用いるパチンコ機である点で技術分野が共通しており、さらに、引用発明は、パチンコ機のプログラムの容量をむやみに増大することを防止し、プログラムの容量を削減することを目的としており、周知技術は、1つのADDTWOONE命令を使用することにより、加算命令を1回の命令で行え、制御プログラムの処理時間を短縮して制御負担を軽減させることができる上に、プログラムコード量を削減することができることは明らかであるから、両者は、プログラムの容量を削減するという点で課題が共通している。また、引用発明と周知技術とは、それぞれ、1バイト(8ビット)のデータ、2バイト(16ビット)のデータである選択オフセットと選択アドレスを加算し、選択結果アドレスで示す選択結果データをロードする点で、機能・作用が共通している。
(ウ)そして、遊技機の分野において、プログラム容量を削減し、CPUの処理効率を向上させることは自明の課題であり、また、遊技機において、取得したデータをどのレジスタに格納するか、データテーブルの値としてどのようなデータを記憶しておくかは、プログラム容量の制約や制御内容に応じて、当業者が適宜決定し得る事項に過ぎないことであることを勘案すると、上記周知技術を参酌して、引用発明の「1バイト(8ビット)のデータ」である「選択オフセット2」と「2バイト(16ビット)のデータ」である「選択アドレス」を用いて加算する場合に、それぞれ周知技術の1バイトの「第2オペランドOP2で示されるレジスタ」として、引用発明の「アキュムレータA」に、2バイトの「第1オペランドOP2で示される2つのレジスタ」として、引用発明の「汎用レジスタB~Lの各ペア」のうちのいずれかのペアに記憶することとし、、引用発明におけるデータをデータテーブルから取得する処理を、ADDTWOONE命令の第1オペランドOP1で示される2つのレジスタに記憶されているテーブルアドレスの値を第2オペランドOP2で示されるレジスタに転送するデータ選択処理とすることは当業者が適宜なし得たことであり、上記相違点2に係る本件補正発明の構成のようになすことは当業者が容易になし得たことである。
(7)本件補正発明の奏する効果は、引用発明の奏する効果、引用文献2の記載事項及び周知技術の奏する効果から、予測することができた程度のものである。
(8)請求人の主張について
請求人は、審判請求書の「3.本願発明が特許されるべき理由」の「(5)本願発明と引用文献1の発明の対比」及び「(6)作用効果」において、以下のとおり主張している。
「(5)本願発明と引用文献1の発明の対比本願請求項1に係る発明は、構成Bに示すように、「前記所定のデータを取得する際には、前記加算命令を用いて算出した前記加算値に基づいて取得した前記所定のデータを前記加算命令で使用した前記第1レジスタ(ADDWBで使用した8ビットのAレジスタ)に格納する」ことを特徴としている。つまり、本願請求項1に係る発明では、「前記所定のデータを取得する際には」、「前記所定のデータ」を適当なレジスタに格納している訳ではなく、「前記加算命令で使用した前記第1レジスタ」に格納している。このため、「前記第1レジスタ」は、加算処理でも使用され、取得処理でも使用されるレジスタとなる。続きを表示(全14行)これを実施形態に即して説明すると、本願図33に示すように、BYTESELのモジュールは、3行のプログラムにより構成されている。そして、この3行のプログラムでは、HLレジスタとAレジスタといった2つのレジスタしか使用しておらず(2つのレジスタだけで処理が完結しており)、BCレジスタやDEレジスタを保護レジスタとすることができるという作用効果がある(図33の保護レジスタ参照)。なお、保護レジスタとは、そのモジュールでは使用されないレジスタである。保護レジスタは、そのモジュールで未使用のレジスタとなることから、モジュールを呼び出しても値が変化することがない。このため、保護レジスタの値の変化を考慮することなく、モジュールを呼び出すことができる。例えば、保護レジスタに所定の値を格納した状態でモジュールを呼び出しても、保護レジスタに格納されている値は変化しない。保護レジスタは、保護数が多くなればなるほど、モジュールの汎用性や利便性が向上する。一方、引用文献1の発明では、選択結果アドレスで示す選択結果データをロードする際に、どのようなレジスタにデータを格納するのかについて明確な記載はない(引用文献1〔0445〕)。このため、引用文献1の発明は、本願請求項1に係る発明の「保護レジスタの数を増加させてモジュールの汎用性や利便性を向上させることができる」という作用効果を発揮することができない。なお、補正却下決定の謄本における相違点2に関しては、引用文献2は登場していないが、念のため説明すると、引用文献2の発明では、引用文献2図35に示すように、ADDTWOONE命令では、HLレジスタとAレジスタといった2つのレジスタを用いており、次のLDTWO命令では、DEレジスタとHLレジスタといった2つのレジスタを用いており、結果として、HLレジスタ、Aレジスタ、DEレジスタといった3つのレジスタを用いている。このため、引用文献2の発明は、本願請求項1に係る発明とは異なり、DEレジスタを保護レジスタにすることができない。したがって、引用文献2のmoTimerSelectモジュールは、本願図33のBYTESELと比較して、汎用性や利便性が低下する。(6)作用効果そして、本願発明の作用効果は、本願発明の構成Bの「所定ビット数の第1レジスタのデータと前記所定ビット数よりもビット数が多い規定ビット数の第2レジスタのデータとを1回の命令で加算する加算命令を用いて加算値を算出し」という構成、及び、「前記加算値に基づいて取得した前記所定のデータを前記加算命令で使用した前記第1レジスタに格納する」という構成を採用することによる格別なものであって、そこには格別の技術的意義があり、本願発明には単に技術の具体的適用というレベルを超える作用効果があり、設計的事項には該当しない。また、本願発明と引用文献1の発明とは、両者の機能・作用を異にするから、本願発明と引用文献1の発明との間にある相違点は、設計的事項には該当しない。」
しかしながら、請求人が主張する上記「本願発明の構成B」は、上記第2(4)エで説示したとおり周知技術であり、請求人が主張する上記作用効果についても引用発明に上記周知技術を適用することで、第1特別図柄又は第2特別図柄に対応する変動時間の選択処理に用いるレジスタの数を節約し、他のレジスタを保護レジスタ等として活用できることは明らかであるから格別なものとはいえない。
よって、上記請求人の主張は採用することができない。
また、請求項1では、「少なくとも前記加算命令に関するプログラム、及び、前記所定のデータを取得するプログラムを含んでいる」と特定されており、「データ取得モジュール」において、保護レジスタがどの程度あるのかは特定されておらず不明であるため、上記請求人の主張は採用することができない。
また、仮に上記出願人の主張が請求項1の特定として反映されていると仮定した場合においても、BCレジスタやDEレジスタを保護レジスタとすることができるという作用効果は上記周知技術が有する作用効果に過ぎず、遊技機において、取得したデータをどのレジスタに格納するか、データテーブルの値としてどのようなデータを記憶しておくかは、プログラム容量の制約や制御内容に応じて、当業者が適宜決定し得る事項に過ぎないことであるから、いずれにしても上記出願人の主張は採用することができない。
(9)まとめ
以上のように、本件補正発明は、当業者が、引用発明、引用文献2の記載事項及び周知技術に基いて容易に発明をすることができたものである。
したがって、本件補正発明は、特許法第29条第2項の規定により特許出願の際独立して特許を受けることができないものである。
3 むすび
したがって、本件補正は、特許法第17条の2第6項において準用する同法第126条第7項の規定に違反するので、同法第159条第1項において読み替えて準用する同法第53条第1項の規定により却下すべきものである。
第3 本願発明について
1 本願発明
本件補正は上記第2のとおり却下されたので、本願の請求項1ないし3に係る発明は、平成31年1月8日提出の手続補正書により補正された特許請求の範囲の請求項1ないし3に記載されたとおりのものであるところ、その請求項1に係る発明(以下、「本願発明」という。)は、平成31年1月8日付け手続補正書の特許請求の範囲の請求項1に記載された、次のとおりのものと認める。
「【請求項1】遊技の制御を行う制御装置を備え、前記制御装置は、所定ビット数の第1レジスタのデータと前記所定ビット数とは異なる規定ビット数の第2レジスタのデータとを1回の命令で加算する加算命令を用いて加算値を算出し、算出した前記加算値に基づいて所定のデータが格納されているデータテーブルから前記所定のデータを取得するデータ取得モジュールを備え、前記データ取得モジュールは、前記データ取得モジュール以外のモジュールから呼び出されるモジュールであり、前記データ取得モジュールは、少なくとも前記加算命令に関するプログラム、及び、前記所定のデータを取得するプログラムを含んでいることを特徴とする遊技機。」
2 原査定の拒絶の理由の概要
原査定の拒絶の理由は、この出願の平成31年1月8日提出の手続補正書により補正された請求項1ないし3に係る発明は、その出願前に日本国内又は外国において、頒布された下記の刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基いて、その出願前にその発明の属する技術の分野における通常の知識を有する者が容易に発明をすることができたものであるから、特許法第29条第2項の規定により特許を受けることができない、というものである。
<引用文献等一覧>
1.特開2015-109892号公報
2.特開2012-223334号公報
3 引用文献
引用文献1及び引用文献2は、上記第2〔理由〕2-2の(2)ウ及び(3)イに記載したとおりである。
4 対比・判断
本願発明(上記第2〔理由〕1)は、本件補正発明(上記第2〔理由〕2の2-2(1))から、上記「第2〔理由〕2の2-1」において検討したとおり、本件補正発明において、「前記所定ビット数よりもビット数が多い規定ビット数」を「前記所定ビット数とは異なる規定ビット数」と上位概念とし、「前記所定のデータを取得するデータ取得モジュール」に関して、「前記所定のデータを取得する際には、前記加算命令を用いて算出した前記加算値に基づいて取得した前記所定のデータを前記加算命令で使用した前記第1レジスタに格納する」という限定を省いたものである。
そうすると、本願発明と引用発明とは、上記「第2〔理由〕2の2-2(5)対比」において検討した、上記相違点1でのみ相違するから、本願発明も上記第2〔理由〕2の2-2(6)アで示した理由と同様の理由により、当業者が、引用発明、引用文献2の記載事項に基いて、容易に発明をすることができたものである。
5 むすび
以上のとおりであるから、本願発明は、特許法第29条第2項の規定により特許を受けることができない。
したがって、他の請求項に係る発明について検討するまでもなく、本願は、拒絶されるべきものである。
よって、結論のとおり審決する。
審決本文(J-PlatPat)
J-PlatPatの審決検索トップを開きます。番号入力で「審判番号」を選び、下の番号を貼り付けて検索してください。
2020-001264