(57)【要約】【課題】遊技機開発者の負担を増すことなく、マイクロプロセッサメーカの開発および製造の効率を向上させる。【解決手段】エミュレーションプログラム格納部３０３には、６８系マイクロプロセッサのプログラムがＲＯＭ３１１に格納されている場合に、そのプログラムを解析して命令コードに対応した処理を実行する第１のエミュレーションプログラムと、Ｚ８０系マイクロプロセッサのプログラムがＲＯＭ３１１に格納されている場合に、そのプログラムを解析して命令コードに対応した処理を実行する第２のエミュレーションプログラムとが格納されている。論理演算ユニット３０１は、ＲＯＭ３１１に格納されたプログラムを指定用端子に指定された方のマイクロプロセッサのプログラムとして、第１のエミュレーションプログラムまたは第２のエミュレーションプログラムに従って、ＲＯＭ３１１内の命令コードが指定する動作を実行する。【選択図】　図６
2004133633.tif 000002
【特許請求の範囲】
【請求項１】
遊技者が所定の遊技を行うことが可能な遊技機に搭載され、遊技に関する制御を行う遊技機用マイクロコンピュータであって、
プログラムに従って処理を実行する論理演算ユニットと、
複数種類のマイクロプロセッサのいずれかが実行可能なエミュレーション対象プログラムを格納するためのプログラムコード格納部と、
前記複数種類のマイクロプロセッサのそれぞれで使用される種類の命令コードを解析するとともに解析した命令コードが指定する動作を前記論理演算ユニットに実行させるプログラムが格納されたエミュレーションプログラム格納部と、
前記複数種類のマイクロプロセッサ各々に対応するいずれかのエミュレーションを指定するための使用エミュレーション指定部とを備え、
前記論理演算ユニットは、前記プログラムコード格納部に格納されたエミュレーション対象プログラムを、前記使用エミュレーション指定部により指定されるマイクロプロセッサのプログラムとして、当該プログラムを構成する命令コードが指定する制御動作を実行する
ことを特徴とする遊技機用マイクロコンピュータ。
【請求項２】
複数種類のマイクロプロセッサのそれぞれの制御信号バスに対応した出力端子を有する
請求項１記載の遊技機用マイクロコンピュータ。
【請求項３】
複数種類のマイクロプロセッサのそれぞれのデータバスを実現する入出力ポートを備えた
請求項１または請求項２記載のうちのいずれかに遊技機用マイクロコンピュータ。
【請求項４】
複数種類のマイクロプロセッサのそれぞれのレジスタを実現するＲＡＭを備えた
請求項１から請求項３記載のうちのいずれかに遊技機用マイクロコンピュータ。
【請求項５】
エミュレーションプログラム格納部は、複数種類のマイクロプロセッサのプログラムコードをもとに所定の演算を行ってプログラムが正規のプログラムであるか否かの認証を前記論理演算ユニットに実行させるための認証プログラムを格納している
請求項１から請求項４記載のうちのいずれかに遊技機用マイクロコンピュータ。
【請求項６】
認証プログラムは、
プログラムコード格納部に格納されたプログラムを、使用エミュレーション指定部により指定されるマイクロプロセッサのプログラムとして、プログラムの認証を論理演算ユニットに実行させ、
認証により前記プログラムが正規のプログラムでないと判定したときには当該プログラムを構成する命令コードが指定する動作を前記論理演算ユニットに開始させないように構成される
請求項５記載の遊技機用マイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、遊技者が所定の遊技を行うことが可能なパチンコ遊技機やスロット機等の遊技機において使用される遊技機用マイクロコンピュータに関する。
【０００２】
【従来の技術】
遊技機として、例えば遊技球などの遊技媒体を発射装置によって遊技領域に発射し、遊技領域に設けられている入賞口などの入賞領域に遊技媒体が入賞すると、所定個の賞球が遊技者に払い出されるものがある。さらに、表示状態が変化可能な可変表示部が設けられ、可変表示部における図柄等の識別情報の表示結果があらかじめ定められた特定の表示態様となった場合に所定の遊技価値を遊技者に与えるように構成されたものがある。
【０００３】
なお、遊技価値とは、遊技機の遊技領域に設けられた可変入賞球装置の状態が打球が入賞しやすい遊技者にとって有利な状態になることや、遊技者にとって有利な状態となるための権利を発生させたりすることや、有価価値としての景品遊技媒体の払出の条件が成立しやすくなる状態になることである。
【０００４】
そのような遊技機には、ＲＯＭに格納されているプログラムに従って遊技の進行を制御するマイクロプロセッサが搭載されている。そして、プログラムは、まず、検査機関による検査の都合やプログラム実行上の処理速度等の観点から、アッセンブリ言語で作成され、その後、アッセンブラによって機械語に変換された後、ＲＯＭに書き込まれる。
【０００５】
遊技機において使用可能なマイクロプロセッサとして、例えば、いわゆる６８系マイクロプロセッサとＺ８０系マイクロプロセッサとがある。そして、各系統のマイクロプロセッサには、プログラムを格納するためのＲＯＭが内蔵されるとともに、ＲＯＭに格納されているプログラムの正当性を検証するためのセキュリティチェック機能が内蔵されている。いずれの系統のマイクロプロセッサを使用するのかは、遊技機開発者の選択事項である。従って、遊技機において使用可能なマイクロプロセッサの供給者（メーカ）は、複数種類のマイクロプロセッサを供給しなければならない。その結果、メーカは、複数種類のマイクロプロセッサの開発および製造を行わなければならず、はなはだ非効率的である。
【０００６】
なお、本願発明に関連するマイクロプロセッサに関わる技術として、例えば特許文献１に記載された技術がある。
【０００７】
【特許文献１】
特開平８−３３９３２５号公報
【０００８】
【発明が解決しようとする課題】
上述したように、メーカは、複数種類のマイクロプロセッサの開発および製造を行わなければならず、その結果、マイクロプロセッサの価格が高くなってしまう。メーカにとっては１種類のマイクロプロセッサの開発および製造を行えば製造効率が上がりマイクロプロセッサの価格を低くすることができる。しかし、そのようにしたのでは、他の種類のマイクロプロセッサを扱い慣れた遊技機開発者が、メーカが供給する種類のマイクロプロセッサを使用した遊技機開発に移行しなければならず、遊技機開発者の負担が重くなってしまう。
【０００９】
そこで、本発明は、遊技機開発者の負担を増すことなく、マイクロプロセッサメーカの開発および製造の効率を向上させることができる遊技機用マイクロコンピュータを提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明による遊技機用マイクロコンピュータは、遊技者が所定の遊技を行うことが可能な遊技機に搭載され、遊技に関する制御を行う遊技機用マイクロコンピュータであって、プログラムに従って処理を実行する論理演算ユニット（例えば図６に示す論理演算ユニット３０１）と、複数種類のマイクロプロセッサ（例えば６８系マイクロプロセッサとＺ８０系マイクロプロセッサ）が実行可能なエミュレーション対象プログラムを格納するためのプログラムコード格納部（例えばＲＯＭ３１１）と、複数種類のマイクロプロセッサのそれぞれで使用される種類の命令コードを解析するとともに解析した命令コードが指定する動作を論理演算ユニットに実行させるプログラムが格納されたエミュレーションプログラム格納部（例えばＲＯＭ３０２におけるエミュレーションプログラムコード格納部３０３）と、複数種類のマイクロプロセッサ各々に対応するいずれかのエミュレーションを指定するための使用エミュレーション指定部（例えば指定用端子３４１，３４２）とを備え、論理演算ユニットが、プログラムコード格納部に格納されたエミュレーション対象プログラムを、使用エミュレーション指定部により指定されるマイクロプロセッサのプログラムとして、当該プログラムを構成する命令コードが指定する制御動作を実行することを特徴とする。
【００１１】
遊技機用マイクロコンピュータは、複数種類のマイクロプロセッサのそれぞれの制御信号バスに対応した出力端子（例えばＩ／ＯポートからのＲ／Ｗ信号と、ＸＲＤ信号およびＸＷＲ信号を出力する端子）を有する構成であってもよい。
【００１２】
遊技機用マイクロコンピュータは、複数種類のマイクロプロセッサのそれぞれのデータバスを実現する入出力ポート（例えばＩ／Ｏポート３３７）を備えていてもよい。
【００１３】
複数種類のマイクロプロセッサのそれぞれのレジスタを実現するＲＡＭ（例えばＲＡＭ３１２）を備えていてもよい。
【００１４】
エミュレーションプログラム格納部は、複数種類のマイクロプロセッサのプログラムコードをもとに所定の演算を行ってプログラムが正規のプログラムであるか否かの認証を論理演算ユニットに実行させるための認証プログラム（例えばエミュレーションプログラムコード格納部３０３に格納されている認証用のプログラム）を格納していることが好ましい。
【００１５】
認証プログラムが、プログラムコード格納部に格納されたプログラムを、使用エミュレーション指定部により指定されるマイクロプロセッサのプログラムとして、プログラムの認証を論理演算ユニットに実行させ、認証によりプログラムが正規のプログラムでないと判定したときには当該プログラムを構成する命令コードが指定する動作を論理演算ユニットに開始させない（例えばプログラムコード格納部に格納されたプログラムにもとづく計算の結果と認証コードとが一致しない場合にはステップＳ１０２以降の処理を開始しない）ように構成されていることが好ましい。
【００１６】
【発明の実施の形態】
以下、本発明の一実施形態を図面を参照して説明する。
まず、遊技機の一例であるパチンコ遊技機の全体の構成について説明する。図１はパチンコ遊技機を正面からみた正面図、図２は遊技盤の前面を示す正面図である。なお、以下の実施の形態では、パチンコ遊技機を例に説明を行うが、本発明による遊技機はパチンコ遊技機に限られず、スロット機などの他の遊技機に適用することもできる。
【００１７】
パチンコ遊技機１は、縦長の方形状に形成された外枠（図示せず）と、外枠の内側に開閉可能に取り付けられた遊技枠とで構成される。また、パチンコ遊技機１は、遊技枠に開閉可能に設けられている額縁状に形成されたガラス扉枠２を有する。遊技枠は、外枠に対して開閉自在に設置される前面枠（図示せず）と、機構部品等が取り付けられる機構板と、それらに取り付けられる種々の部品（後述する遊技盤を除く。）とを含む構造体である。
【００１８】
図１に示すように、パチンコ遊技機１は、額縁状に形成されたガラス扉枠２を有する。ガラス扉枠２の下部表面には打球供給皿（上皿）３がある。打球供給皿３の下部には、打球供給皿３に収容しきれない遊技球を貯留する余剰球受皿４と遊技球を発射する打球操作ハンドル（操作ノブ）５が設けられている。ガラス扉枠２の背面には、遊技盤６が着脱可能に取り付けられている。なお、遊技盤６は、それを構成する板状体と、その板状体に取り付けられた種々の部品とを含む構造体である。また、遊技盤６の前面には遊技領域７が形成されている。
【００１９】
遊技領域７の中央付近には、それぞれが識別情報としての図柄を可変表示する複数の可変表示部を含む可変表示装置（特別図柄表示装置）９が設けられている。可変表示装置９には、例えば「左」、「中」、「右」の３つの可変表示部（図柄表示エリア）がある。また、可変表示装置９には、始動入賞口１４に入った有効入賞球数すなわち始動記憶数を表示する４つの特別図柄始動記憶表示エリア（始動記憶表示エリア）１８が設けられている。有効始動入賞がある毎に、表示色が変化する（例えば青色表示から赤色表示に変化）始動記憶表示エリアを１増やす。そして、可変表示装置９の可変表示が開始される毎に、表示色が変化している始動記憶数表示エリアを１減らす（すなわち表示色をもとに戻す）。この例では、図柄表示エリアと始動記憶表示エリアとが区分けされて設けられているので、可変表示中も始動記憶数が表示された状態にすることができる。なお、始動記憶表示エリアを図柄表示エリアの一部に設けるようにしてもよ。また、可変表示中は始動記憶数の表示を中断するようにしてもよい。また、この例では、始動記憶表示エリアが可変表示装置９に設けられているが、始動記憶数を表示する表示器（特別図柄始動記憶表示器）を可変表示装置９とは別個に設けてもよい。
【００２０】
可変表示装置９の下方には、始動入賞口１４としての可変入賞球装置１５が設けられている。始動入賞口１４に入った入賞球は、遊技盤６の背面に導かれ、始動口スイッチ１４ａによって検出される。また、始動入賞口１４の下部には開閉動作を行う可変入賞球装置１５が設けられている。可変入賞球装置１５は、ソレノイド１６によって開状態とされる。
【００２１】
可変入賞球装置１５の下部には、特定遊技状態（大当り状態）においてソレノイド２１によって開状態とされる開閉板２０が設けられている。開閉板２０は大入賞口を開閉する手段である。開閉板２０から遊技盤６の背面に導かれた入賞球のうち一方（Ｖ入賞領域：特別領域）に入った入賞球はＶ入賞スイッチ２２で検出され、開閉板２０からの入賞球はカウントスイッチ２３で検出される。遊技盤６の背面には、大入賞口内の経路を切り換えるためのソレノイド２１Ａも設けられている。
【００２２】
ゲート３２に遊技球が入賞しゲートスイッチ３２ａで検出されると、普通図柄表示器１０の表示の可変表示が開始される。この実施の形態では、左右のランプ（点灯時に図柄が視認可能になる）が交互に点灯することによって可変表示が行われ、例えば、可変表示の終了時に右側のランプが点灯すれば当たりとなる。そして、普通図柄表示器１０における停止図柄が所定の図柄（当り図柄）である場合に、可変入賞球装置１５が所定回数、所定時間だけ開状態になる。普通図柄表示器１０の近傍には、ゲート３２に入った入賞球数を表示する４つのＬＥＤによる表示部を有する普通図柄始動記憶表示器４１が設けられている。ゲート３２への入賞がある毎に、普通図柄始動記憶表示器４１は点灯するＬＥＤを１増やす。そして、普通図柄表示器１０の可変表示が開始される毎に、点灯するＬＥＤを１減らす。
【００２３】
遊技盤６には、複数の入賞口２９，３０，３３，３９が設けられ、遊技球の入賞口２９，３０，３３への入賞は、それぞれ入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａによって検出される。各入賞口２９，３０，３３，３９は、遊技媒体を受け入れて入賞を許容する領域として遊技盤６に設けられる入賞領域を構成している。なお、始動入賞口１４や大入賞口も、遊技媒体を受け入れて入賞を許容する入賞領域を構成する。遊技領域７の左右周辺には、遊技中に点滅表示される装飾ランプ２５が設けられ、下部には、入賞しなかった遊技球を吸収するアウト口２６がある。また、遊技領域７の外側の左右上部には、効果音を発する２つのスピーカ２７が設けられている。遊技領域７の外周には、天枠ランプ２８ａ、左枠ランプ２８ｂおよび右枠ランプ２８ｃが設けられている。さらに、遊技領域７における各構造物（大入賞口等）の周囲には装飾ＬＥＤが設置されている。天枠ランプ２８ａ、左枠ランプ２８ｂおよび右枠ランプ２８ｃおよび装飾用ＬＥＤは、遊技機に設けられている装飾発光体の一例である。
【００２４】
そして、この例では、左枠ランプ２８ｂの近傍に、賞球残数があるときに点灯する賞球ＬＥＤ５１が設けられ、天枠ランプ２８ａの近傍に、補給球が切れたときに点灯する球切れＬＥＤ５２が設けられている。上記のように、この実施の形態のパチンコ遊技機１には、発光体としてのランプやＬＥＤが各所に設けられている。さらに、図１には、パチンコ遊技機１に隣接して設置され、プリペイドカードが挿入されることによって球貸しを可能にするプリペイドカードユニット（以下、カードユニットという。）５０も示されている。
【００２５】
カードユニット５０には、使用可能状態であるか否かを示す使用可表示ランプ１５１、カードユニット５０がいずれの側のパチンコ遊技機１に対応しているのかを示す連結台方向表示器１５３、カードユニット５０内にカードが投入されていることを示すカード投入表示ランプ１５４、記録媒体としてのカードが挿入されるカード挿入口１５５、およびカード挿入口１５５の裏面に設けられているカードリーダライタの機構を点検する場合にカードユニット５０を解放するためのカードユニット錠１５６が設けられている。
【００２６】
打球発射装置から発射された遊技球は、打球レールを通って遊技領域７に入り、その後、遊技領域７を下りてくる。遊技球が始動入賞口１４に入り始動口スイッチ１４ａで検出されると、図柄の可変表示を開始できる状態であれば、可変表示装置９において特別図柄が可変表示（変動）を始める。図柄の可変表示を開始できる状態でなければ、始動記憶数を１増やす。
【００２７】
可変表示装置９における特別図柄の可変表示は、一定時間が経過したときに停止する。停止時の特別図柄の組み合わせが大当り図柄（特定表示結果）であると、大当り遊技状態に移行する。すなわち、開閉板２０が、一定時間経過するまで、または、所定個数（例えば１０個）の遊技球が入賞するまで開放する。そして、開閉板２０の開放中に遊技球がＶ入賞領域に入賞しＶ入賞スイッチ２２で検出されると、継続権が発生し開閉板２０の開放が再度行われる。継続権の発生は、所定回数（例えば１５ラウンド）許容される。
【００２８】
停止時の可変表示装置９における特別図柄の組み合わせが確率変動を伴う大当り図柄（確変図柄）の組み合わせである場合には、次に大当りとなる確率が高くなる。すなわち、確変状態という遊技者にとってさらに有利な状態となる。
【００２９】
遊技球がゲート３２に入賞すると、普通図柄表示器１０において普通図柄が可変表示される状態になる。また、普通図柄表示器１０における停止図柄が所定の図柄（当り図柄）である場合に、可変入賞球装置１５が所定時間だけ開状態になる。さらに、確変状態では、普通図柄表示器１０における停止図柄が当り図柄になる確率が高められるとともに、可変入賞球装置１５の開放時間と開放回数が高められる。すなわち、可変入賞球装置１５の開放時間と開放回数は、普通図柄の停止図柄が当り図柄であったり、特別図柄の停止図柄が確変図柄である場合等に高められ、遊技者にとって不利な状態から有利な状態に変化する。
【００３０】
図５は、主基板３１における回路構成の一例を示すブロック図である。なお、図５には、払出制御基板３７および演出制御基板８０も示されている。主基板３１には、プログラムに従ってパチンコ遊技機１を制御する基本回路５３と、ゲートスイッチ３２ａ、始動口スイッチ１４ａ、Ｖ入賞スイッチ２２、カウントスイッチ２３、入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａ、およびクリアスイッチ９２１からの信号を基本回路５３に与えるスイッチ回路５８と、可変入賞球装置１５を開閉するソレノイド１６、開閉板２０を開閉するソレノイド２１および大入賞口内の経路を切り換えるためのソレノイド２１Ａを基本回路５３からの指令に従って駆動するソレノイド回路５９とが搭載されている。
【００３１】
なお、ゲートスイッチ３２ａ、始動口スイッチ１４ａ、Ｖ入賞スイッチ２２、カウントスイッチ２３、入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａ等のスイッチは、センサと称されているものでもよい。すなわち、遊技球を検出できる遊技媒体検出手段（この例では遊技球検出手段）であれば、その名称を問わない。入賞検出を行う始動口スイッチ１４ａ、カウントスイッチ２３、および入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａの各スイッチは、入賞検出手段でもある。なお、入賞検出手段は、複数の入賞口に別個に入賞したそれぞれの遊技球をまとめて検出するものであってもよい。また、ゲートスイッチ３２ａのような通過ゲートであっても、賞球の払い出しが行われるものであれば、通過ゲートへ遊技球が進入することが入賞になり、通過ゲートに設けられているスイッチ（例えばゲートスイッチ３２ａ）が入賞検出手段になる。さらに、この実施の形態では、Ｖ入賞領域に入賞した遊技球はＶ入賞スイッチ２２で検出されるとともにカウントスイッチ２３でも検出されるが、Ｖ入賞スイッチ２２のみで検出されるようにしてもよい。Ｖ入賞領域に入賞した遊技球がＶ入賞スイッチ２２のみで検出される場合には、大入賞口に入賞した遊技球数は、Ｖ入賞スイッチ２２による検出数とカウントスイッチ２３による検出数との和になる。
【００３２】
また、基本回路５３から与えられるデータに従って、大当りの発生を示す大当り情報、可変表示装置９における図柄の可変表示開始に利用された始動入賞球の個数を示す有効始動情報、確率変動が生じたことを示す確変情報等の情報出力信号をホールコンピュータ等の外部装置に対して出力する情報出力回路６４が搭載されている。
【００３３】
基本回路５３は、ゲーム制御用のプログラム等を記憶するＲＯＭ５４、ワークメモリとして使用される記憶手段（変動データを記憶する変動データ記憶手段）としてのＲＡＭ５５、プログラムに従って制御動作を行うＣＰＵ５６およびＩ／Ｏポート部５７を含む。この実施の形態では、ＲＯＭ５４，ＲＡＭ５５はＣＰＵ５６に内蔵されている。すなわち、ＣＰＵ５６は、１チップマイクロコンピュータである。１チップマイクロコンピュータは、少なくともＲＡＭ５５が内蔵されていればよく、ＲＯＭ５４およびＩ／Ｏポート部５７は外付けであっても内蔵されていてもよい。なお、ＣＰＵ５６はＲＯＭ５４に格納されているプログラムに従って制御を実行するので、以下、ＣＰＵ５６が実行する（または、処理を行う）ということは、具体的には、ＣＰＵ５６がプログラムに従って制御を実行することである。このことは、主基板３１以外の他の基板に搭載されているＣＰＵについても同様である。
【００３４】
また、ＲＡＭ（ＣＰＵ内蔵ＲＡＭであってもよい。）５５は、その一部または全部が電源基板９１０において作成されるバックアップ電源によってバックアップされているバックアップＲＡＭである。すなわち、遊技機に対する電力供給が停止しても、所定期間は、ＲＡＭ５５の一部または全部の内容は保存される。特に、少なくとも、遊技状態すなわち遊技制御手段の制御状態に応じたデータと未払出賞球数を示すデータは、バックアップＲＡＭに保存される。なお、遊技制御手段の制御状態に応じたデータとは、停電等が生じた後に復旧した場合に、そのデータにもとづいて、制御状態を停電等の発生前に復旧させるために必要なデータである。
【００３５】
なお、ＣＰＵ５６として、複数のマイクロプロセッサをエミュレートすること（複数のマイクロプロセッサのいずれかとして動作すること）ができる後述する遊技機用マイクロコンピュータを使用することができる。そして、後述する遊技機用マイクロコンピュータを使用する場合には、ＲＯＭ５４およびＲＡＭ５５は、遊技機用マイクロコンピュータに内蔵されているＲＯＭおよびＲＡＭで実現される。
【００３６】
遊技球を打撃して発射する打球発射装置は払出制御基板３７上の回路によって制御される発射モータ９４を含み、発射モータ９４が回転することによって遊技球を遊技領域７に向けて発射する。発射モータ９４を駆動するための駆動信号は、タッチセンサ基板９１を介して発射モータ９４に伝達される。そして、遊技者が操作ノブ（打球ハンドル）５に触れていることはタッチセンサで検出され、タッチセンサからの信号がタッチセンサ基板９１を介して払出制御基板３７に伝達される。払出制御基板３７上の回路は、タッチセンサからの信号がオフ状態を示している場合には、発射モータ９４の駆動を停止する。
【００３７】
なお、この実施の形態では、演出制御基板８０に搭載されている演出制御手段が、遊技盤６に設けられている普通図柄始動記憶表示器４１および装飾ランプ２５の表示制御を行うとともに、枠側に設けられている天枠ランプ２８ａ、左枠ランプ２８ｂおよび右枠ランプ２８ｃの表示制御を行う。また、演出制御基板８０に搭載されている演出制御手段は、特別図柄を可変表示する可変表示装置９および普通図柄を可変表示する普通図柄表示器１０の表示制御も行う。
【００３８】
次に遊技機の動作について説明する。図４は、主基板３１における遊技制御手段（ＣＰＵ５６およびＲＯＭ，ＲＡＭ等の周辺回路）が実行するメイン処理を示すフローチャートである。遊技機に対して電源が投入され、リセット端子の入力レベルがハイレベルになると、ＣＰＵ５６は、プログラムの内容が正当か否かを確認するための処理であるセキュリティチェック処理を実行した後、ステップＳ１以降のメイン処理を開始する。メイン処理において、ＣＰＵ５６は、まず、必要な初期設定を行う。
【００３９】
初期設定処理において、ＣＰＵ５６は、まず、割込禁止に設定する（ステップＳ１）。次に、割込モードの設定を行い（ステップＳ２）、スタックポインタにスタックポインタ指定アドレスを設定する（ステップＳ３）。そして、内蔵デバイスレジスタの初期化を行う（ステップＳ４）。また、内蔵デバイス（内蔵周辺回路）の初期化（ステップＳ５）を行った後、ＲＡＭをアクセス可能状態に設定する（ステップＳ６）。
【００４０】
次いで、ＣＰＵ５６は、入力ポートを介して入力されるクリアスイッチ９２１の出力信号の状態を１回だけ確認する（ステップＳ７）。その確認においてオンを検出した場合には、ＣＰＵ５６は、通常の初期化処理を実行する（ステップＳ１１〜ステップＳ１５）。クリアスイッチ９２１がオンである場合（押下されている場合）には、ローレベルのクリアスイッチ信号が出力されている。なお、入力ポート１では、クリアスイッチ信号のオン状態はハイレベルである。また、例えば、遊技店員は、クリアスイッチ９２１をオン状態にしながら遊技機に対する電力供給を開始する（例えば電源スイッチ９１４をオンする）ことによって、容易に初期化処理を実行させることができる。すなわち、ＲＡＭクリア等を行うことができる。
【００４１】
クリアスイッチ９２１がオンの状態でない場合には、遊技機への電力供給が停止したときにバックアップＲＡＭ領域のデータ保護処理（例えばパリティデータの付加等の電力供給停止時処理）が行われたか否か確認する（ステップＳ８）。この実施の形態では、電力供給の停止が生じた場合には、バックアップＲＡＭ領域のデータを保護するための処理が行われている。そのような保護処理が行われていたことを確認した場合には、ＣＰＵ５６はバックアップありと判定する。そのような保護処理が行われていないことを確認した場合には、ＣＰＵ５６は初期化処理を実行する。
【００４２】
バックアップＲＡＭ領域にバックアップデータがあるか否かは、電力供給停止時処理においてバックアップＲＡＭ領域に設定されるバックアップフラグの状態によって確認される。例えば、バックアップフラグ領域に「５５Ｈ」が設定されていればバックアップあり（オン状態）を意味し、「５５Ｈ」以外の値が設定されていればバックアップなし（オフ状態）を意味する。
【００４３】
バックアップありと判定したら、ＣＰＵ５６は、バックアップＲＡＭ領域のデータチェック（この例ではパリティチェック）を行う（ステップＳ９）。この実施の形態では、クリアデータ（００）をチェックサムデータエリアにセットし、チェックサム算出開始アドレスをポインタにセットする。また、チェックサムの対象となるデータ数に対応するチェックサム算出回数をセットする。そして、チェックサムデータエリアの内容とポインタが指すＲＡＭ領域の内容との排他的論理和を演算する。演算結果をチェックサムデータエリアにストアするとともに、ポインタの値を１増やし、チェックサム算出回数の値を１減算する。以上の処理が、チェックサム算出回数の値が０になるまで繰り返される。チェックサム算出回数の値が０になったら、ＣＰＵ５６は、チェックサムデータエリアの内容の各ビットの値を反転し、反転後のデータをチェックサムとする。
【００４４】
電力供給停止時処理において、上記の処理と同様の処理によってチェックサムが算出され、チェックサムはバックアップＲＡＭ領域に保存されている。ステップＳ９では、算出したチェックサムと保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップＲＡＭ領域のデータは保存されているはずであるから、チェック結果（比較結果）は正常（一致）になる。チェック結果が正常でないということは、バックアップＲＡＭ領域のデータが、電力供給停止時のデータとは異なっていることを意味する。そのような場合には、内部状態を電力供給停止時の状態に戻すことができないので、電力供給の停止からの復旧時でない電源投入時に実行される初期化処理（ステップＳ１０〜Ｓ１５の処理）を実行する。
【００４５】
チェック結果が正常であれば、ＣＰＵ５６は、遊技制御手段の内部状態と表示制御手段等の電気部品制御手段の制御状態を電力供給停止時の状態に戻すための遊技状態復旧処理を行う。具体的には、ＲＯＭ５４に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し（ステップＳ８１）、バックアップ時設定テーブルの内容を順次作業領域（ＲＡＭ５５内の領域）に設定する（ステップＳ８２）。作業領域はバックアップ電源によって電源バックアップされている。バックアップ時設定テーブルには、作業領域のうち初期化してもよい領域についての初期化データが設定されている。ステップＳ８１およびＳ８２の処理によって、作業領域のうち初期化してはならない部分については、保存されていた内容がそのまま残る。初期化してはならない部分とは、例えば、電力供給停止前の遊技状態を示すデータ（特別図柄プロセスフラグなど）や未払出賞球数を示すデータが設定されている部分である。
【００４６】
また、ＣＰＵ５６は、ＲＯＭ５４に格納されているバックアップ時コマンド送信テーブルの先頭アドレスをポインタに設定し（ステップＳ８３）、その内容に従ってサブ基板（払出制御基板３７および演出制御基板８０）に、電力供給が復旧した旨を示す制御コマンドが送信されるように制御する（ステップＳ８４）。そして、ステップＳ１５に移行する。
【００４７】
初期化処理では、ＣＰＵ５６は、まず、ＲＡＭクリア処理を行う（ステップＳ１１）。なお、ＲＡＭの全領域を初期化せず、所定のデータ（例えば大当り判定用乱数を生成するためのカウンタのカウント値のデータ）をそのままにしてもよい。例えば、大当り判定用乱数を生成するためのカウンタのカウント値のデータをそのままにした場合には、不正な手段によって初期化処理が実行される状態になったとしても、大当り判定用乱数を生成するためのカウンタのカウント値が大当り判定値に一致するタイミングを狙うことは困難である。また、ＲＯＭ５４に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し（ステップＳ１１）、初期化時設定テーブルの内容を順次作業領域に設定する（ステップＳ１２）。ステップＳ１１およびＳ１２の処理によって、例えば、普通図柄判定用乱数カウンタ、普通図柄判定用バッファ、特別図柄左中右図柄バッファ、総賞球数格納バッファ、特別図柄プロセスフラグ、賞球中フラグ、球切れフラグ、払出停止フラグなど制御状態に応じて選択的に処理を行うためのフラグに初期値が設定される。
【００４８】
また、ＣＰＵ５６は、ＣＰＵ５６は、ＲＯＭ５４に格納されている初期化時コマンド送信テーブルの先頭アドレスをポインタに設定し（ステップＳ１３）、その内容に従ってサブ基板を初期化するための初期化コマンドをサブ基板に送信する処理を実行する（ステップＳ１４）。初期化コマンドとして、可変表示装置９に表示される初期図柄を示すコマンド等がある。
【００４９】
そして、ステップＳ１５において、ＣＰＵ５６は、例えば２ｍｓ毎に定期的にタイマ割込がかかるようにＣＰＵ５６に内蔵されているＣＴＣのレジスタの設定を行なう。すなわち、初期値として例えば２ｍｓに相当する値が所定のレジスタ（時間定数レジスタ）に設定される。この実施の形態では、２ｍｓ毎に定期的にタイマ割込がかかるとする。
【００５０】
初期化処理の実行（ステップＳ１０〜Ｓ１５）が完了すると、メイン処理で、表示用乱数更新処理（ステップＳ１７）および初期値用乱数更新処理（ステップＳ１８）が繰り返し実行される。ＣＰＵ５６は、表示用乱数更新処理および初期値用乱数更新処理が実行されるときには割込禁止状態にして（ステップＳ１６）、表示用乱数更新処理および初期値用乱数更新処理の実行が終了すると割込許可状態にする（ステップＳ１９）。なお、表示用乱数とは、可変表示装置９に表示される図柄を決定するための乱数であり、表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。また、初期値用乱数更新処理とは、初期値用乱数を発生するためのカウンタのカウント値を更新する処理である。初期値用乱数とは、大当りとするか否かを決定するための乱数を発生するためのカウンタ（大当り決定用乱数発生カウンタ）等のカウント値の初期値を決定するための乱数である。後述する遊技制御処理において、大当り決定用乱数発生カウンタのカウント値が１周すると、そのカウンタに初期値が設定される。
【００５１】
なお、表示用乱数更新処理および初期値用乱数更新処理が実行されるときに割込禁止状態にされるのは、表示用乱数更新処理および初期値用乱数更新処理が後述するタイマ割込処理でも実行されることから、タイマ割込処理における処理と競合してしまうのを避けるためである。すなわち、ステップＳ１７，Ｓ１８の処理中にタイマ割込が発生してタイマ割込処理中で表示用乱数や初期値用乱数を発生するためのカウンタのカウント値を更新してしまったのでは、カウント値の連続性が損なわれる場合がある。しかし、ステップＳ１７，Ｓ１８の処理中では割込禁止状態にしておけば、そのような不都合が生ずることはない。
【００５２】
タイマ割込が発生すると、ＣＰＵ５６は、図５に示すステップＳ２０〜Ｓ３３の遊技制御処理を実行する。遊技制御処理において、ＣＰＵ５６は、まず、電源断信号が出力されたか否か（オン状態になったか否か）を検出する電源断検出処理を実行する（ステップＳ２０）。次いで、スイッチ回路５８を介して、ゲートスイッチ３２ａ、始動口スイッチ１４ａ、カウントスイッチ２３および入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａ等のスイッチの検出信号を入力し、それらの状態判定を行う（スイッチ処理：ステップＳ２１）。具体的には、各スイッチの検出信号を入力する入力ポートの状態がオン状態であれば、各スイッチに対応して設けられているスイッチタイマの値を＋１する。
【００５３】
次に、遊技制御に用いられる大当り判定用の乱数等の各判定用乱数を生成するための各カウンタのカウント値を更新する処理を行う（ステップＳ２２）。ＣＰＵ５６は、さらに、表示用乱数および初期値用乱数を生成するためのカウンタのカウント値を更新する処理を行う（ステップＳ２３，Ｓ２４）。
【００５４】
さらに、ＣＰＵ５６は、特別図柄プロセス処理を行う（ステップＳ２５）。特別図柄プロセス制御では、遊技状態に応じてパチンコ遊技機１を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。また、普通図柄プロセス処理を行う（ステップＳ２６）。普通図柄プロセス処理では、普通図柄表示器１０の表示状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
【００５５】
次いで、ＣＰＵ５６は、特別図柄に関する演出制御コマンドをＲＡＭ５５の所定の領域に設定して演出制御コマンドを送出する処理を行う（特別図柄コマンド制御処理：ステップＳ２７）。また、普通図柄に関する演出制御コマンドをＲＡＭ５５の所定の領域に設定して演出制御コマンドを送出する処理を行う（普通図柄コマンド制御処理：ステップＳ２８）。
【００５６】
さらに、ＣＰＵ５６は、例えばホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う（ステップＳ２９）。
【００５７】
また、ＣＰＵ５６は、入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａの検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する（ステップＳ３０）。具体的には、入賞口スイッチ２９ａ，３０ａ，３３ａ，３９ａがオンしたことにもとづく入賞検出に応じて、払出制御基板３７に賞球個数を示す払出個数信号等の払出制御信号を出力する。払出制御基板３７に搭載されている払出制御用ＣＰＵ３７１は、賞球個数を示す払出個数信号等の払出制御信号に応じて球払出装置９７を駆動する。
【００５８】
そして、ＣＰＵ５６は、始動入賞記憶数の増減をチェックする記憶処理を実行する（ステップＳ３１）。また、遊技機の制御状態を遊技機外部で確認できるようにするための試験信号を出力する処理である試験端子処理を実行する（ステップＳ３２）。また、出力ポートの出力状態に対応したＲＡＭ領域（出力ポートバッファ）が設けられ、ＣＰＵ５６は、そのＲＡＭ領域の内容を出力ポートに出力する（ステップＳ３３：出力処理）。なお、出力ポートバッファの内容は、ステップＳ２５〜Ｓ３０，Ｓ３１の処理で更新される。その後、割込許可状態に設定し（ステップＳ３４）、処理を終了する。
【００５９】
以上の制御によって、この実施の形態では、遊技制御処理は定期的（例えば２ｍｓ毎）に起動されることになる。なお、この実施の形態では、タイマ割込処理で遊技制御処理が実行されているが、タイマ割込処理では例えば割込が発生したことを示すフラグのセットのみがなされ、遊技制御処理はメイン処理において実行されるようにしてもよい。
【００６０】
図６は、ＣＰＵ５６、ＲＯＭ５４およびＲＡＭ５５として使用可能な遊技機用マイクロコンピュータ３００の内部構成例を示すブロック図である。遊技機用マイクロコンピュータ３００は、６８系マイクロプロセッサとＺ８０系マイクロプロセッサの双方をエミュレートすること（６８系マイクロプロセッサまたはＺ８０系マイクロプロセッサとして動作すること）ができるマイクロコンピュータである。
【００６１】
遊技機用マイクロコンピュータ３００は、論理演算ユニット（ＡＬＵ）３０１と、エミュレーションプログラム格納部３０３、第１の変換テーブル３０４および第２の変換テーブル３０５を含むＲＯＭ３０２と、プログラムコード格納部となるＲＯＭ３１１と、ＲＡＭ３１２と、クロック信号生成部３２１、入出力ポート（Ｉ／Ｏポート）３３１〜３３７とを含む。遊技機用マイクロコンピュータ３００は、Ｉ／Ｏポート３３１〜３３７から出力される信号およびＩ／Ｏポート３３１〜３３７に入力される信号を遊技機用マイクロコンピュータ３００の外部に出力するための各端子（図示せず）を有している。また、複数種類のマイクロプロセッサのいずれかを指定するための使用エミュレーション指定部としての指定用端子３４１，３４２が設けられている。
【００６２】
エミュレーションプログラム格納部３０３には、６８系マイクロプロセッサのプログラムがＲＯＭ３１１に格納されている場合に、そのプログラムを解析して命令コードに対応した処理を実行する第１のエミュレーションプログラムと、Ｚ８０系マイクロプロセッサのプログラムがＲＯＭ３１１に格納されている場合に、そのプログラムを解析して命令コードに対応した処理を実行する第２のエミュレーションプログラムとが格納されている。例えば、指定用端子３４１にＨレベルが入力され、指定用端子３４２にＬレベルが入力されると、論理演算ユニット３０１は、第１のエミュレーションプログラムを実行し、指定用端子３４１にＬレベルが入力され、指定用端子３４２にＨレベルが入力されると、論理演算ユニット３０１は、第２のエミュレーションプログラムを実行する。
【００６３】
第１の変換テーブル３０４には、６８系マイクロプロセッサの命令コードと、命令コードに関する情報との対応関係が、全ての命令コードについて設定されている。また、第２の変換テーブル３０５には、Ｚ８０系マイクロプロセッサの命令コードと、命令コードに関する情報との対応関係が、全ての命令コードについて設定されている。命令コードに関する情報は、命令の実行内容、実行に伴って影響を及ぼすレジスタの種類、レジスタの操作内容、命令のバイト数、およびその命令に要するサイクル数を含む。
【００６４】
クロック信号生成部３２１は、遊技機用マイクロコンピュータ３００の外部から供給されるクロック信号を分周して、分周後のクロック信号を遊技機用マイクロコンピュータ３００の外部に出力する。例えば、クロック信号生成部３２１に遊技機用マイクロコンピュータ３００のシステムクロックとしての８００ＭＨｚのクロック信号が入力され、ＲＯＭ３１１に６８系マイクロプロセッサのプログラムが格納され、遊技機用マイクロコンピュータ３００をシステムクロック８ＭＨｚの６８系マイクロプロセッサとして動作させたい（エミュレートさせたい）場合には、クロック信号生成部３２１における分周比は１００である。クロック信号生成部３２１には、遊技機用マイクロコンピュータ３００の外部から分周比を設定するための分周比入力端子３５１が設けられている。また、クロック信号生成部３２１からの分周後のクロック信号は、Ｉ／Ｏポート３３４を介して論理演算ユニット３０１にも入力される。
【００６５】
ＲＡＭ３１２には、エミュレート対象の６８系マイクロプロセッサまたはＺ８０系マイクロプロセッサが使用するＲＡＭの領域が形成されるとともに、論理演算ユニット３０１がエミュレートを実行する際に一時的に使用するデータの領域が形成され、また、エミュレート対象の６８系マイクロプロセッサまたはＺ８０系マイクロプロセッサが使用するレジスタの領域が形成されている。
【００６６】
Ｉ／Ｏポート３３１〜３３７は、６８系マイクロプロセッサおよびＺ８０系マイクロプロセッサの制御信号を出力したり、外部アドレス信号を出力したり、データバスを形成するためのものである。また、６８系マイクロプロセッサおよびＺ８０系マイクロプロセッサの外部割込要求信号を入力するためにも使用される。
【００６７】
図７は、遊技機用マイクロコンピュータ３００のＲＯＭ空間の一例を示す説明図である。ＲＯＭ空間は例えば８ｋバイトの複数のバンクで構成される。そのうちの１つのバンクは、ＲＯＭ３１１に割り当てられている。なお、図７に示すメモリ空間の構成は一例であって、他の構成方法を用いてもよい。
【００６８】
図８および図９は、Ｉ／Ｏポート３３１〜３３７のビット割当の例を示す説明図である。図８および図９に示す例では、Ｉ／Ｏポート３３１には６８系マイクロプロセッサの出力制御信号が割り当てられている。例えば、読み出し／書き込みを示す制御信号であるＲ／Ｗ信号、外部Ｉ／Ｏのチップセレクト信号であるＣＳＩＯ信号、およびユーザモード（ＲＯＭ３１１内のユーザプログラムを実行している状態）であるか否かを示すＭＯＤＥ信号が割り当てられている。
【００６９】
Ｉ／Ｏポート３３２には、Ｚ８０系マイクロプロセッサの出力制御信号が割り当てられている。例えば、読み出しを示すＸＲＤ信号、書き込みを示すＸＷＲ信号、外部メモリ空間へのアクセスであることを示すＸＭＲＥＱ信号、外部Ｉ／Ｏ空間へのアクセスであることを示すＸＩＯＲＥＱ信号、ホールト状態であることを示すＸＨＡＬＴ信号、タイマ出力信号であるＺＣ／Ｔ００，ＺＣ／Ｔ０１、および動作状態を示すＭＯＤＥ信号が割り当てられている。また、Ｉ／Ｏポート３３３には、外部Ｉ／Ｏのチップセレクト信号であるＸＣＳＩＯ０〜ＸＣＳＩＯ３が割り当てられている。
【００７０】
Ｉ／Ｏポート３３４には、６８系マイクロプロセッサおよびＺ８０系マイクロプロセッサにおいて共通に使用されるマスク不能割込信号（ＮＭＩ，ＸＮＭＩ）およびマスク可能割込信号（ＩＮＴ，ＸＩＮＴ）と、Ｚ８０系マイクロプロセッサの入力制御信号であるＣＬＫ／ＴＲＧ０，ＣＬＫ／ＴＲＧ１が割り当てられている。ＣＬＫ／ＴＲＧ０，ＣＬＫ／ＴＲＧ１は、外部クロック／タイマトリガ信号である。また、Ｉ／Ｏポート３３４には、クロック信号生成部３２１からのクロック信号も入力される。
【００７１】
Ｉ／Ｏポート３３５，３３６には、６８系マイクロプロセッサおよびＺ８０系マイクロプロセッサにおいて共通に使用される外部アドレス信号が割り当てられる。また、Ｉ／Ｏポート３３７は、６８系マイクロプロセッサおよびＺ８０系マイクロプロセッサにおいて共通に使用される外部データバス（双方向）として使用される。
【００７２】
次に、遊技機用マイクロコンピュータ３００がエミュレートするＲＯＭおよびＲＡＭを内蔵した６８系マイクロプロセッサの内部構成について説明する。図１０は、６８系マイクロプロセッサの内部構成の主要部を示すブロック図である。なお、遊技機用マイクロコンピュータ３００のハードウェア構成は、図１０に示す構成とは異なる。しかし、図１０に示すハードウェア構成と６８系マイクロプロセッサのプログラムとをエミュレートすることが可能である。
【００７３】
図１０に示すように、６８系マイクロプロセッサ４００は、論理演算ユニットとして機能するＣＰＵコア４０１、遊技機制御プログラムが格納されるＲＯＭ４０２、ＲＡＭ４０３、タイマ機能を実現するタイマシステム４０４、ＣＳＩＯ信号を生成するＩ／Ｏアドレスデコーダ４０５、割込コントローラ４０６、およびレジスタ４０７を含む。
【００７４】
遊技機用マイクロコンピュータ３００において、６８系マイクロプロセッサ４００のＣＰＵコア４０１は、論理演算ユニット３０１で実現される。また、タイマシステム４０４、Ｉ／Ｏアドレスデコーダ４０５および割込コントローラ４０６は、論理演算ユニット３０１および第１のエミュレーションプログラムで実現される。レジスタ４０７は、ＲＡＭ３１２で実現される。
【００７５】
図１１は、６８系マイクロプロセッサ４００の命令コードの一例を示す説明図である。ＬＤＡ　ａａａａは、アドレスａａａａのメモリ内容をＡレジスタ（アキュミュレータ）に転送する命令である。ＳＴＡ　ｂｂｂｂは、Ａレジスタの内容をアドレスｂｂｂｂのメモリに転送する命令である。ＪＳＲ　ｃｃｃｃは、アドレスｃｃｃｃから始まるサブルーチンをコールする命令である。
【００７６】
次に、図６に示すエミュレーションプログラム格納部３０３に格納されている第１のエミュレーションプログラムについて説明する。図１２は、論理演算ユニット３０１によって実行される第１のエミュレーションプログラムの処理を示すフローチャートである。
【００７７】
論理演算ユニット３０１は、まず、セキュリティチェックプログラムを実行する（ステップＳ１０１）。セキュリティチェックプログラムは、ＲＯＭ３１１に格納されているユーザプログラム（６８系マイクロプロセッサが実行する遊技制御プログラム）にもとづいて所定の演算を行い、計算結果（演算結果）と認証コードとが一致しているか否か判定する。なお、認証コードは、ユーザプログラムとともにＲＯＭ３１１に書き込まれる。
【００７８】
計算結果と認証コードとが一致した場合には、論理演算ユニット３０１は、ステップＳ１０２以降の処理を開始する。しかし、計算結果と認証コードとが一致しない場合には、論理演算ユニット３０１は、ステップＳ１０２以降の処理を開始しない。従って、ユーザプログラムが正規のプログラムでないことが判別されると、ユーザプログラム（遊技制御のためのプログラム）が実行されず、遊技者は遊技を開始することができない状態になる。すなわち、不正なプログラムによって不正行為がなされることが防止される。また、計算結果と認証コードとが一致しない場合に、遊技機用マイクロコンピュータ３００の外部から供給されるクロック信号をクロック信号生成部３２１や遊技機用マイクロコンピュータ３００の内部に伝達させないようにしてもよい。そのようにしても、遊技機が遊技制御を開始せず、遊技者が遊技を開始することができない状態にすることができる。
【００７９】
次に、論理演算ユニット３０１は、６８系マイクロプロセッサのプログラム実行用のプログラムカウンタ（ＰＣ）に開始アドレスであるＦＦＦＥ（Ｈ）をセットする（ステップＳ１０２）。なお、６８系マイクロプロセッサのプログラム実行用のプログラムカウンタには００００（Ｈ）〜ＦＦＦＦ（Ｈ）を設定可能であるが、ＰＣに設定される値は、ＲＯＭ３１１のバンクにおけるアドレスを示す。また、ＰＣは、ＲＡＭ３１２に形成される。そして、ＰＣに設定されているアドレスに対応したＲＯＭ３１１におけるアドレスからデータ（命令コード）を読み出し（ステップＳ１０３）、ＰＣを＋１しておく（ステップＳ１０４）。
【００８０】
次いで、読み出した命令コードを解析する（ステップＳ１０５）。具体的には、第１の変換テーブル３０４から、ステップＳ１０３で読み出した命令コード（命令コードの１バイト目）と一致するものを検索し、検索された位置に設定されている命令コードに関する情報（命令の実行内容や、実行に伴って影響を及ぼすレジスタの種類およびレジスタの操作内容や命令のバイト数）を読み込む。そして、命令コードに関する情報にもとづいて、ステップＳ１０３で読み出した命令コードが複数バイト命令のものであることを知ると（ステップＳ１０６）、ＰＣに設定されているアドレスから１バイト、２バイトまたは３バイトのデータを読み出す（ステップＳ１０７）。そして、読み出したバイト数に応じてＰＣの値を１、２または３加算する（ステップＳ１０８）。
【００８１】
そして、論理演算ユニット３０１は、命令コードに応じた処理を行う（ステップＳ１０９）。例えば、第１の変換テーブル３０４には、ＬＤＡ　ａａａａの命令コードに応じて、所定の状態フラグ（例えばゼロフラグおよびネガティブフラグ）が操作されるべきであることや、命令コードが３バイト構成であることが、その命令がアドレスａａａａからＡレジスタに転送されるべきであることを示す情報とともに設定されている。従って、ステップＳ１０３で読み出した命令コードがＬＤＡ　ａａａａである場合には、論理演算ユニット３０１は、アドレスａａａａ（ａａａａがＲＯＭ領域のアドレスならばＲＯＭ３１１における対応アドレス、ＲＡＭ領域のアドレスであればＲＡＭ３１２における対応アドレス）からデータを読み出して、ＲＡＭ３１２に形成されているＡレジスタの領域に読み出したデータを格納する。さらに、データに応じて、状態フラグの値を、０または１に設定する。なお、状態フラグは、６８系マイクロプロセッサが使用する他のレジスタと同様に、ＲＡＭ３１２に形成されている。
【００８２】
また、例えば、第１の変換テーブル３０４には、ＪＳＲ　ｃｃｃｃの命令コードに応じて、スタックおよびスタックポインタ（ＳＰ）が操作されるべきであることが、アドレスｃｃｃｃにジャンプすべきであることを示す情報とともに設定されている。従って、ステップＳ１０３で読み出した命令コードがＪＳＲ　ｃｃｃｃである場合には、ＰＣの値をスタックに退避するとともに、ＳＰの値を２増やす。その後、ＰＣにｃｃｃｃを設定する。
【００８３】
次いで、Ｉ／Ｏポート３３４の割込に関するビットをチェックして外部割込（ＮＭＩまたはＩＮＴ）が発生しているか否か確認する。ＮＭＩが発生している場合には（ステップＳ１１０）、各レジスタ（ＲＡＭ３１２に形成されている６８系マイクロプロセッサが使用するレジスタ）の値をスタックに退避するとともに（ステップＳ１１１）、ＳＰの値を増やし、ＰＣに割込処理の開始アドレスを設定する（ステップＳ１１２）。そして、ステップＳ１１７に移行する。
【００８４】
ＩＮＴが発生している場合には（ステップＳ１１３）、エミュレートしている６８系マイクロプロセッサの状態が割込許可（ＥＩ）状態であれば（ステップＳ１１４）、各レジスタ（ＲＡＭ３１２に形成されている６８系マイクロプロセッサが使用するレジスタ）の値をスタックに退避するとともに（ステップＳ１１５）、ＳＰの値を増やし、ＰＣに割込処理の開始アドレスを設定する（ステップＳ１１６）。そして、ステップＳ１１７に移行する。
【００８５】
また、図１２のフローチャートには示されていないが、ステップＳ１０３の処理が開始されてからステップＳ１１６の処理が完了するまでの間、論理演算ユニット３０１は、クロック信号生成部３２１からのクロック信号（６８系マイクロプロセッサにおけるシステムクロックに相当）をＩ／Ｏポート３３４を介して監視している。ステップＳ１１７では、ステップＳ１０３で読み出された命令コードのサイクル数に相当する数（ステップＳ１０３の処理の開始時からの数）だけクロック信号が入力完了するのを待つ。命令コードのサイクル数に相当する数だけクロック信号が入力されたらステップＳ１０３の処理に戻る。
【００８６】
ステップＳ１１７の処理によって、遊技機用マイクロコンピュータ３００の動作クロック周波数によらず、６８系マイクロプロセッサにおけるシステムクロックの公称値に応じた速度で、ＲＯＭ３１１に格納されている６８系マイクロプロセッサのプログラムが実行されることになる。例えば、８ＭＨｚの６８系マイクロプロセッサで動作するとされている場合に、実際に、その速度でＲＯＭ３１１に格納されているプログラムが実行される。なお、遊技機用マイクロコンピュータ３００の動作クロック周波数は、少なくとも、６８系マイクロプロセッサにおけるシステムクロックの１周期（公称値、例えば８ＭＨｚの逆数の時間）分の時間内に、ステップＳ１０３〜Ｓ１１７の処理が実行できるような周波数である。遊技機用マイクロコンピュータ３００の動作クロック周波数そのように設定しておけば、６８系マイクロプロセッサにおける１サイクルで実行されるべき命令コードも、６８系マイクロプロセッサにおけるシステムクロックの公称値に応じた速度で実行される。
【００８７】
なお、図１２のフローチャートには示されていないが、内部割込が発生した場合にも、ＩＮＴが発生した場合と同様に（ステップＳ１１４，Ｓ１１５，Ｓ１１６）、割込許可状態であれば、各レジスタの値をスタックに退避するとともに、ＳＰの値を増やし、ＰＣに割込処理の開始アドレスを設定する。
【００８８】
図１３は、遊技機用マイクロコンピュータ３００が６８系マイクロプロセッサをエミュレートしているときの外部バスタイミングの一例を示すタイミング図である。遊技機用マイクロコンピュータ３００の外部に設置されているＩ／Ｏポート（６８系マイクロプロセッサが使用するＩ／Ｏポート）などの外部回路をアクセスする命令コードを実行する場合には、遊技機用マイクロコンピュータ３００におけるＩ／Ｏポート３３５，３３６を介してアドレス信号（ＡＤ：Ａ０〜Ａ１５））を遊技機用マイクロコンピュータ３００の外部に出力するとともに、Ｉ／Ｏポート３３１を介して制御信号を遊技機用マイクロコンピュータ３００の外部に出力する。また、外部回路に対してデータを書き込む（またはＩ／Ｏポートに出力する）ときには、Ｉ／Ｏポート３３７を介してデータを出力し、外部回路からデータを読み出す（またはＩ／Ｏポートから入力する）ときには、Ｉ／Ｏポート３３７を介してデータを入力する。
【００８９】
外部回路からデータを読み出す場合には、論理演算ユニット３０１は、Ｉ／Ｏポート３３４を介してクロック信号生成部３２１から入力されるクロック信号の立ち下がりに同期してアドレス信号を出力するとともに、Ｒ／Ｗ信号をハイレベルにする。また、クロック信号の次の立ち下がりに同期してデータを入力する。外部回路に対してデータを書き込む場合には、論理演算ユニット３０１は、ステップＳ１０９の処理において、Ｉ／Ｏポート３３４を介してクロック信号生成部３２１から入力されるクロック信号の立ち下がりに同期してアドレス信号を出力するとともに、Ｒ／Ｗ信号をローレベルにする。また、データを出力する。このようにして、６８系マイクロプロセッサの場合と同様の外部バスタイミングを実現することができる。
【００９０】
なお、図１３に示された例では、外部回路として応答が極めて速いものを想定している。実際には、ＣＰＵ入力タイミング（論理演算ユニット３０１がデータを取り込むタイミング）およびデータ取込タイミング（外部回路がデータを入力するタイミング）は。数クロック分遅れる。
【００９１】
また、その他のバスタイミングについても、論理演算ユニット３０１が、ステップＳ１０９の処理において、６８系マイクロプロセッサの規格に準じたバスタイミングを作成することができる。
【００９２】
以上に説明したように、遊技機用マイクロコンピュータ３００は、６８系マイクロプロセッサおよびＺ８０系マイクロプロセッサのそれぞれが使用する命令コードを解析するとともに解析した命令コードが指定する動作を論理演算ユニット３０１に実行させるプログラムが格納されたエミュレーションプログラム格納部３０３を備え、６８系マイクロプロセッサが実行可能なプログラムがプログラムコード格納部（ＲＯＭ３１１）に格納され、使用エミュレーション指定部において６８系マイクロプロセッサが指定された場合に、論理演算ユニット３０１が、プログラムコード格納部に格納されたエミュレーション対象プログラムを、６８系マイクロプロセッサのプログラムとして、そのプログラムを構成する命令コードが指定する動作を実行する。
【００９３】
次に、遊技機用マイクロコンピュータ３００がエミュレートするＲＯＭおよびＲＡＭを内蔵したＺ８０系マイクロプロセッサの内部構成について説明する。図１４は、Ｚ８０系マイクロプロセッサの内部構成の主要部を示すブロック図である。なお、遊技機用マイクロコンピュータ３００のハードウェア構成は、図１４に示す構成とは異なる。しかし、図１４に示すハードウェア構成とＺ８０系マイクロプロセッサのプログラムとをエミュレートすることが可能である。
【００９４】
図１４に示すように、Ｚ８０系マイクロプロセッサ５００は、論理演算ユニットとして機能するＣＰＵコア５０１、遊技機制御プログラムが格納されるＲＯＭ５０２、ＲＡＭ５０３、タイマ機能を実現するタイマ回路５０４、割込コントローラ５０６、レジスタ５０７、およびＰＩＯ（内蔵Ｉ／Ｏポート）５０７を含む。
【００９５】
遊技機用マイクロコンピュータ３００において、Ｚ８０系マイクロプロセッサ５００のＣＰＵコア５０１は、論理演算ユニット３０１で実現される。また、タイマ回路５０４、および割込コントローラ５０６は、論理演算ユニット３０１および第２のエミュレーションプログラムで実現される。レジスタ５０７は、ＲＡＭ３１２で実現される。そして、ＰＩＯ５０７は、遊技機用マイクロコンピュータ３００のＩ／Ｏポートで実現される。ただし、図６、図８および図９では、ＰＩＯ５０７を実現するＩ／Ｏポートは記載省略されている。
【００９６】
図１５は、Ｚ８０系マイクロプロセッサ４００の命令コードの一例を示す説明図である。ＬＤ　Ａ，ａａａａは、アドレスａａａａのメモリ内容をＡレジスタ（アキュミュレータ）に転送する命令である。ＬＤ　ｂｂｂｂ，Ａは、Ａレジスタの内容をアドレスｂｂｂｂのメモリに転送する命令である。ＣＡＬＬ　ｃｃｃｃは、アドレスｃｃｃｃから始まるサブルーチンをコールする命令である。
【００９７】
次に、図６に示すエミュレーションプログラム格納部３０３に格納されている第２のエミュレーションプログラムについて説明する。図１６は、論理演算ユニット３０１によって実行される第２のエミュレーションプログラムの処理を示すフローチャートである。
【００９８】
論理演算ユニット３０１は、まず、セキュリティチェックプログラムを実行する（ステップＳ２０１）。セキュリティチェックプログラムは、ＲＯＭ３１１に格納されているユーザプログラム（Ｚ８０系マイクロプロセッサが実行する遊技制御プログラム）にもとづいて所定の演算を行い、計算結果（演算結果）と認証コードとが一致しているか否か判定する。なお、認証コードは、ユーザプログラムとともにＲＯＭ３１１に書き込まれる。
【００９９】
計算結果と認証コードとが一致した場合には、論理演算ユニット３０１は、ステップＳ２０２以降の処理を開始する。しかし、計算結果と認証コードとが一致しない場合には、論理演算ユニット３０１は、ステップＳ２０２以降の処理を開始しない。従って、ユーザプログラムが正規のプログラムでないことが判別されると、ユーザプログラム（遊技制御のためのプログラム）が実行されず、遊技者は遊技を開始することができない状態になる。すなわち、不正なプログラムによって不正行為がなされることが防止される。また、計算結果と認証コードとが一致しない場合に、遊技機用マイクロコンピュータ３００の外部から供給されるクロック信号をクロック信号生成部３２１や遊技機用マイクロコンピュータ３００の内部に伝達させないようにしてもよい。そのようにしても、遊技機が遊技制御を開始せず、遊技者が遊技を開始することができない状態にすることができる。
【０１００】
次に、論理演算ユニット３０１は、Ｚ８０系マイクロプロセッサのプログラム実行用のプログラムカウンタ（ＰＣ）に開始アドレスである００００（Ｈ）をセットする（ステップＳ２０２）。なお、Ｚ８０系マイクロプロセッサのプログラム実行用のプログラムカウンタには００００（Ｈ）〜ＦＦＦＦ（Ｈ）を設定可能であるが、ＰＣに設定される値は、ＲＯＭ３１１のバンクにおけるアドレスを示す。また、Ｚ８０系マイクロプロセッサのプログラム実行用のＰＣは、６８系マイクロプロセッサのプログラム実行用のＰＣと同じ領域に設定されていてよい。そして、ＰＣは、ＲＡＭ３１２に形成される。そして、ＰＣに設定されているアドレスに対応したＲＯＭ３１１におけるアドレスからデータ（命令コード）を読み出し（ステップＳ２０３）、ＰＣを＋１しておく（ステップＳ２０４）。
【０１０１】
次いで、読み出した命令コードを解析する（ステップＳ２０５）。具体的には、第２の変換テーブル３０５から、ステップＳ２０３で読み出した命令コード（命令コードの１バイト目）と一致するものを検索し、検索された位置に設定されている命令コードに関する情報（命令の実行内容や、実行に伴って影響を及ぼすレジスタの種類およびレジスタの操作内容や命令のバイト数）を読み込む。そして、命令コードに関する情報にもとづいて、ステップＳ２０３で読み出した命令コードが複数バイト命令のものであることを知ると（ステップＳ２０６）、ＰＣに設定されているアドレスから１バイト、２バイトまたは３バイトのデータを読み出す（ステップＳ２０７）。そして、読み出したバイト数に応じてＰＣの値を１、２または３加算する（ステップＳ２０８）。
【０１０２】
そして、論理演算ユニット３０１は、命令コードに応じた処理を行う（ステップＳ２０９）。例えば、第２の変換テーブル３０５には、ＬＤ　Ａ，ａａａａの命令コードに応じて、状態フラグが操作されないことや、命令コードが３バイト構成であることが、その命令がアドレスａａａａからＡレジスタに転送されるべきであることを示す情報とともに設定されている。なお、状態フラグは、Ｚ８０系マイクロプロセッサが使用する他のレジスタと同様に、ＲＡＭ３１２に形成されている。従って、ステップＳ２０３で読み出した命令コードがＬＤ　Ａ，ａａａａである場合には、論理演算ユニット３０１は、アドレスａａａａ（ａａａａがＲＯＭ領域のアドレスならばＲＯＭ３１１における対応アドレス、ＲＡＭ領域のアドレスであればＲＡＭ３１２における対応アドレス）からデータを読み出して、ＲＡＭ３１２に形成されているＡレジスタの領域に読み出したデータを格納する。
【０１０３】
また、例えば、第２の変換テーブル３０５には、ＣＡＬＬ　ｃｃｃｃの命令コードに応じて、スタックおよびスタックポインタ（ＳＰ）が操作されるべきであることが、アドレスｃｃｃｃにジャンプすべきであることを示す情報とともに設定されている。従って、ステップＳ２０３で読み出した命令コードがＣＡＬＬ　ｃｃｃｃである場合には、ＰＣの値をスタックに退避するとともに、ＳＰの値を２増やす。その後、ＰＣにｃｃｃｃを設定する。
【０１０４】
次いで、Ｉ／Ｏポート３３４の割込に関するビットをチェックして外部割込（ＸＮＭＩまたはＸＩＮＴ）が発生しているか否か確認する。ＸＮＭＩが発生している場合には（ステップＳ２１０）、各レジスタ（ＲＡＭ３１２に形成されているＺ８０系マイクロプロセッサが使用するレジスタ）の値をスタックに退避するとともに（ステップＳ２１１）、ＳＰの値を増やし、ＰＣに割込処理の開始アドレスを設定する（ステップＳ２１２）。そして、ステップＳ２１７に移行する。
【０１０５】
ＸＩＮＴが発生している場合には（ステップＳ２１３）、エミュレートしているＺ８０系マイクロプロセッサの状態が割込許可（ＥＩ）状態であれば（ステップＳ２１４）、各レジスタ（ＲＡＭ３１２に形成されているＺ８０系マイクロプロセッサが使用するレジスタ）の値をスタックに退避するとともに（ステップＳ２１５）、ＳＰの値を増やし、ＰＣに割込処理の開始アドレスを設定する（ステップＳ２１６）。そして、ステップＳ２１７に移行する。
【０１０６】
図１６のフローチャートには示されていないが、ステップＳ２０３の処理が開始されてからステップＳ２１６の処理が完了するまでの間、論理演算ユニット３０１は、クロック信号生成部３２１からのクロック信号（Ｚ８０系マイクロプロセッサにおけるシステムクロックに相当）をＩ／Ｏポート３３４を介して監視している。ステップＳ２１７では、ステップＳ２０３で読み出された命令コードのサイクル数に相当する数（ステップＳ２０３の処理の開始時からの数）だけクロック信号が入力完了するのを待つ。命令コードのサイクル数に相当する数だけクロック信号が入力されたらステップＳ２０３の処理に戻る。
【０１０７】
ステップＳ２１７の処理によって、遊技機用マイクロコンピュータ３００の動作クロック周波数によらず、Ｚ８０系マイクロプロセッサにおけるシステムクロックの公称値に応じた速度で、ＲＯＭ３１１に格納されているＺ８０系マイクロプロセッサのプログラムが実行されることになる。例えば、８ＭＨｚのＺ８０系マイクロプロセッサで動作するとされている場合に、実際に、その速度でＲＯＭ３１１に格納されているプログラムが実行される。なお、遊技機用マイクロコンピュータ３００の動作クロック周波数は、少なくとも、Ｚ８０系マイクロプロセッサにおけるシステムクロックの１周期（公称値、例えば８ＭＨｚの逆数の時間）分の時間内に、ステップＳ２０３〜Ｓ２１７の処理が実行できるような周波数である。遊技機用マイクロコンピュータ３００の動作クロック周波数そのように設定しておけば、Ｚ８０系マイクロプロセッサにおける１サイクルで実行されるべき命令コードも、Ｚ８０系マイクロプロセッサにおけるシステムクロックの公称値に応じた速度で実行される。
【０１０８】
なお、図１６のフローチャートには示されていないが、内部割込が発生した場合にも、ＸＩＮＴが発生した場合と同様に（ステップＳ２１４，Ｓ２１６，Ｓ２１６）、割込許可状態であれば、各レジスタの値をスタックに退避するとともに、ＳＰの値を増やし、ＰＣに割込処理の開始アドレスを設定する。
【０１０９】
図１７は、遊技機用マイクロコンピュータ３００がＺ８０系マイクロプロセッサをエミュレートしているときの外部バスタイミングの一例を示すタイミング図である。遊技機用マイクロコンピュータ３００の外部に設置されているＩ／Ｏポート（Ｚ８０系マイクロプロセッサが使用するＩ／Ｏポート）などの外部回路をアクセスする命令コードを実行する場合には、遊技機用マイクロコンピュータ３００におけるＩ／Ｏポート３３５，３３６を介してアドレス信号（ＡＤ）を遊技機用マイクロコンピュータ３００の外部に出力するとともに、Ｉ／Ｏポート３３１を介して制御信号を遊技機用マイクロコンピュータ３００の外部に出力する。また、外部回路に対してデータを書き込む（またはＩ／Ｏポートに出力する）ときには、Ｉ／Ｏポート３３７を介してデータを出力し、外部回路からデータを読み出す（またはＩ／Ｏポートから入力する）ときには、Ｉ／Ｏポート３３７を介してデータを入力する。
【０１１０】
外部回路に対してデータを書き込む場合には、論理演算ユニット３０１は、ステップＳ２０９の処理において、Ｉ／Ｏポート３３４を介してクロック信号生成部３２１から入力されるクロック信号の立ち上がりに同期してアドレス信号を出力した後、クロック信号の立ち下がりに同期してＸＷＲ信号をローレベルにする。また、次のクロック信号の立ち上がりに同期してデータを出力する。外部回路からデータを読み出す場合には、論理演算ユニット３０１は、Ｉ／Ｏポート３３４を介してクロック信号生成部３２１から入力されるクロック信号の立ち上がりに同期してアドレス信号を出力した後、クロック信号の立ち下がりに同期してＸＲＤ信号をハイレベルにする。また、クロック信号の立ち下がりに同期してデータを入力する。このようにして、Ｚ８０系マイクロプロセッサの場合と同様の外部バスタイミングを実現することができる。
【０１１１】
なお、図１７に示された例では、外部回路として応答が極めて速いものを想定している。実際には、ＣＰＵ入力タイミング（論理演算ユニット３０１がデータを取り込むタイミング）およびデータ取込タイミング（外部回路がデータを入力するタイミング）は。数クロック分遅れる。
【０１１２】
また、その他のバスタイミングについても、論理演算ユニット３０１が、ステップＳ２０９の処理において、Ｚ８０系マイクロプロセッサの規格に準じたバスタイミングを作成することができる。
【０１１３】
以上に説明したように、遊技機用マイクロコンピュータ３００は、６８系マイクロプロセッサおよびＺ８０系マイクロプロセッサのそれぞれが使用する命令コードを解析するとともに解析した命令コードが指定する動作を論理演算ユニット３０１に実行させるプログラムが格納されたエミュレーションプログラム格納部３０３を備え、Ｚ８０系マイクロプロセッサが実行可能なプログラムがプログラムコード格納部（ＲＯＭ３１１）に格納され、使用エミュレーション指定部においてＺ８０系マイクロプロセッサが指定された場合に、論理演算ユニット３０１が、プログラムコード格納部に格納されたエミュレーション対象プログラムを、Ｚ８０系マイクロプロセッサのプログラムとして、そのプログラムを構成する命令コードが指定する動作を実行する。
【０１１４】
従って、図４や図５に示された遊技制御プログラムを６８系マイクロプロセッサが実行する命令コードでプログラミングした場合でも、Ｚ８０系マイクロプロセッサが実行する命令コードでプログラミングした場合でも、１つの遊技機用マイクロコンピュータ３００によって、遊技制御プログラムを実行することができる。その結果、メーカは、１種類のマイクロコンピュータの開発および製造を行えばよく、製造効率が上がり遊技機用マイクロコンピュータ３００の価格を低くすることができる。また、いずれかの種類のマイクロプロセッサ（例えば６８系マイクロプロセッサまたはＺ８０系マイクロプロセッサ）を扱い慣れた遊技機開発者は、メーカが１種類のマイクロコンピュータを供給する場合でも、扱い慣れたマイクロプロセッサが実行しうる命令コードでプログラミングすればよく、遊技機開発者の負担が重くなってしまうこともない。
【０１１５】
また、複数種類のマイクロプロセッサの動作を模擬するエミュレーションを実行する部分は論理演算ユニット３０１とエミュレーションプログラムとで実現されている。すなわち、ソフトウェアで実現されている。従って、制御信号を出力するためのＩ／Ｏポート等に余裕を持たせておけば（余分に搭載しておく）、エミュレーションを実行する部分がハードウェアで実現されている場合に比べて、エミュレーション対象のマイクロプロセッサの種類の変更や増加にも容易に対応することができる。つまり、ＲＯＭ３０２以外の構成を変更することなく、ＲＯＭ３０２に格納されるエミュレーションプログラムを変更したり増やしたりすることによって、容易に、エミュレーション対象のマイクロプロセッサの種類を変更したり増加させたりすることができる。
【０１１６】
さらに、遊技機用マイクロコンピュータ３００におけるエミュレーションプログラム格納部と変換テーブルとを含むＲＯＭ３０２を書換可能な記憶素子（例えばフラッシュＲＯＭ）で構成し、外部からエミュレーションプログラム格納部と変換テーブルとを書換可能に構成しておけば、１つのマイクロコンピュータのハードウェア構成で、多数のマイクロプロセッサをエミュレートすることができる。つまり、ＲＯＭ３０２の部分を交換することなく、エミュレーション対象のマイクロプロセッサの種類を変更したり増加させたりすることができる。
【０１１７】
なお、上記の実施の形態では、遊技機用マイクロコンピュータ３００が２種類のマイクロプロセッサをエミュレートする例を示したが、１つのマイクロコンピュータがエミュレートしうるマイクロプロセッサの数は２に限られず、さらに多くてもよい。
【０１１８】
また、上記の実施の形態では、エミュレーション対象のマイクロプロセッサとして６８系マイクロプロセッサおよびＺ８０系マイクロプロセッサを例示したが、エミュレーション対象のマイクロプロセッサはそれらに限られることはない。
【０１１９】
【発明の効果】
以上のように、請求項１記載の発明では、遊技機用マイクロコンピュータを、複数種類のマイクロプロセッサのいずれかが実行可能なエミュレーション対象プログラムを格納するためのプログラムコード格納部と、複数種類のマイクロプロセッサのそれぞれで使用される種類の命令コードを解析するとともに解析した命令コードが指定する動作を論理演算ユニットに実行させるプログラムが格納されたエミュレーションプログラム格納部と、複数種類のマイクロプロセッサ各々に対応するいずれかのエミュレーションを指定するための使用エミュレーション指定部とを備え、論理演算ユニットが、プログラムコード格納部に格納されたエミュレーション対象プログラムを、使用エミュレーション指定部により指定されるマイクロプロセッサのプログラムとして、当該プログラムを構成する命令コードが指定する制御動作を実行するように構成したので、１つの遊技機用マイクロコンピュータで複数のマイクロプロセッサが仮想的に実現されることになり、遊技機開発者の負担を増すことなく、マイクロプロセッサメーカの開発および製造の効率を向上させることができる効果がある。
【０１２０】
請求項２記載の発明では、複数種類のマイクロプロセッサのそれぞれの制御信号バスに対応した出力端子を有するので、複数種類のマイクロプロセッサのそれぞれの制御信号バスの出力端子が共用される場合に比べて、遊技機用マイクロコンピュータの外部に出力される制御信号バスの各出力端子を実現することは容易である。
【０１２１】
請求項３記載の発明では、複数種類のマイクロプロセッサのそれぞれのデータバスを実現する入出力ポートを備えているので、特別なハードウェア回路を内蔵させることなく、複数種類のマイクロプロセッサのデータバスを実現することができる。
【０１２２】
請求項４記載の発明では、複数種類のマイクロプロセッサのそれぞれのレジスタを実現するＲＡＭを備えているので、特別なハードウェア回路を内蔵させることなく、複数種類のマイクロプロセッサのレジスタを実現することができる。
【０１２３】
請求項５記載の発明では、エミュレーションプログラム格納部が、複数種類のマイクロプロセッサのプログラムコードをもとに所定の演算を行ってプログラムが正規のプログラムであるか否かの認証を論理演算ユニットに実行させるための認証プログラムを格納しているので、遊技機用マイクロコンピュータにおいていずれのマイクロプロセッサが実現されている場合にも、プログラムのセキュリティチェックを実行することができる。
【０１２４】
請求項６記載の発明では、認証プログラムが、プログラムコード格納部に格納されたプログラムを、使用エミュレーション指定部により指定されるマイクロプロセッサのプログラムとして、プログラムの認証を論理演算ユニットに実行させ、認証によりプログラムが正規のプログラムでないと判定したときには当該プログラムを構成する命令コードが指定する動作を論理演算ユニットに開始させないように構成されているので、遊技機用マイクロコンピュータにおいていずれのマイクロプロセッサが実現されている場合にも、不正プログラムによって不正行為がなされることを防止できる。
【図面の簡単な説明】
【図１】パチンコ遊技機を正面からみた正面図である。
【図２】ガラス扉枠を取り外した状態での遊技盤の前面を示す正面図である。
【図３】遊技制御基板（主基板）の回路構成例を示すブロック図である。
【図４】主基板におけるＣＰＵが実行するメイン処理を示すフローチャートである。
【図５】タイマ割込処理を示すフローチャートである。
【図６】遊技機用マイクロコンピュータの内部構成例を示すブロック図である。
【図７】遊技機用マイクロコンピュータのＲＯＭ空間の一例を示す説明図である。
【図８】Ｉ／Ｏポートのビット割当の例を示す説明図である。
【図９】Ｉ／Ｏポートのビット割当の例を示す説明図である。
【図１０】６８系マイクロプロセッサの内部構成の主要部を示すブロック図である。
【図１１】６８系マイクロプロセッサの命令コードの一例を示す説明図である。
【図１２】第１のエミュレーションプログラムの処理を示すフローチャートである。
【図１３】６８系マイクロプロセッサをエミュレートしているときの外部バスタイミングの一例を示すタイミング図である。
【図１４】Ｚ８０系マイクロプロセッサの内部構成の主要部を示すブロック図である。
【図１５】Ｚ８０系マイクロプロセッサの命令コードの一例を示す説明図である。
【図１６】第２のエミュレーションプログラムの処理を示すフローチャートである。
【図１７】Ｚ８０系マイクロプロセッサをエミュレートしているときの外部バスタイミングの一例を示すタイミング図である。
【符号の説明】
３００　遊技機用マイクロコンピュータ
３０１　論理演算ユニット
３０２　ＲＯＭ
３０３　エミュレーションプログラム格納部
３０４　第１の変換テーブル
３０５　第２の変換テーブル
３１１　ＲＯＭ（プログラムコード格納部）
３１２　ＲＡＭ
３４１，３４２　指定用端子
３３１〜３３７　Ｉ／Ｏポート
【図１】
2004133633.tif 000003
【図２】
2004133633.tif 000004
【図３】
2004133633.tif 000005
【図４】
2004133633.tif 000006
【図５】
2004133633.tif 000007
【図６】
2004133633.tif 000008
【図７】
2004133633.tif 000009
【図８】
2004133633.tif 000010
【図９】
2004133633.tif 000011
【図１０】
2004133633.tif 000012
【図１１】
2004133633.tif 000013
【図１２】
2004133633.tif 000014
【図１３】
2004133633.tif 000015
【図１４】
2004133633.tif 000016
【図１５】
2004133633.tif 000017
【図１６】
2004133633.tif 000018
【図１７】
2004133633.tif 000019