(58)【調査した分野】(Int.Cl.,DB名)
前記別処理モジュールを実行する前に前記別領域のスタック領域に退避する前記内部レジスタには、表レジスタと、この表レジスタとデータ交換可能な裏レジスタとを含み、前記裏レジスタは、前記使用領域での割込み処理時に前記表レジスタの退避レジスタとして使用している請求項1又は2記載の遊技機。
【発明の概要】
【発明が解決しようとする課題】
【0004】
チェックサムが電源断の前後で同一でなくなり異常となるのは、純粋な故障の他、不正行為が介在する場合もあり得、不正な改造その他の変更を防止する観点から、チェックサム確認処理等のセキュリティ関連処理は、遊技機規則で定める試験関連の信号処理等と同様、本来、主基板すなわち主制御装置の制御領域(4.5KB等)とデータ領域(3.0KB等)を合わせた規定容量内の使用領域とは別の記憶領域である別領域に記述でき、このようにすれば、使用領域内に記述できる遊技制御処理に充てる容量を増やすことができて好ましいと考えられる。特に、これまで専ら周辺制御装置で決定していた押し順役等についての正解の押し順等を知らせるアシストタイムATの作動を、主制御装置で決定するメインAT化への移行に伴い、使用領域内のより一層の節約が求められる。
【0005】
本発明の課題は、使用領域と別領域の役割分担の明確さ及び公正さを担保しながら、遊技の進行を制御する遊技制御処理以外の、セキュリティ関連や試験関連等の、本来の遊技制御を適正化等する目的のために設ける別処理モジュールを適切に記述でき、使用領域内の遊技制御処理に充てる容量を増やすことができる遊技機を提供することにある。
【課題を解決するための手段】
【0006】
図面の符号を括弧内に付記して例示する。
遊技の進行を制御する遊技制御処理を記述する所定の容量内の使用領域と、前記遊技制御処理を記述せず、セキュリティに関する処理
および試験に関する処理を行う別処理モジュール(例えば、E_SAMP1)を記述する別領域とを区分したメモリー(ROM,RWM)をもつメインCPUを備える遊技機において、
前記使用領域には、割込みを禁止し且つ前記メインCPUのフラグレジスタ(ペアレジスタAF)を前記使用領域のスタック領域(例えば、RWMアドレスF1C0H〜F1FFH)に退避した後、前記別領域に記述した前記別処理モジュール(E_SAMP1)を呼び出して実行させ、この別処理モジュールからの復帰後、前記使用領域のスタック領域に退避した前記フラグレジスタを復帰させ且つ割込みを許可する処理手続(例えば、別領域呼び出し処理1)を記述していると共に、
前記別領域には、前記使用領域からの呼び出し後に、前記メインCPUの内部レジスタ(Q,I,AF,BC,DE,HL,IX,IY,AF’,BC’,DE’,HL’の各レジスタ)を前記別領域のスタック領域(例えば、RWMアドレスF230H〜F246H)に退避し、この後に、前記別処理モジュール(E_SAMP1)を実行し、前記使用領域への復帰直前に、前記別領域のスタック領域に退避した前記内部レジスタを復帰させる処理手続(例えば、別領域処理1)を記述している。
なお、前記内部レジスタには、スタックポインタSP及びプログラムカウンタPCは含まない。また、Rレジスタ(リフレッシュレジスタ)は、保護の必要がないことから除外している。
【0007】
これにより、別領域に記述した別処理モジュールの実行中は、割込みが禁止されるため、別領域から使用領域のデータを書き換えることはない。しかも、別処理モジュールを呼び出すとき、スタック領域の使い分けのためスタックポインタを変更したときに値の変わり得るフラグレジスタを使用領域のスタック領域に退避し、使用領域からの呼び出し後に、内部レジスタを別領域のスタック領域に退避するため、使用領域でのスタック領域の使用容量及び使用領域でのレジスタ退避命令数を少なくできる。別領域において別処理モジュールを実行した後、使用領域への復帰直前に、別領域のスタック領域に退避した内部レジスタを復帰させ、別処理モジュールからの復帰後、使用領域のスタック領域に退避したフラグレジスタを復帰させるため、別処理モジュールの実行により内部レジスタの内容(データ)が破壊されても、別処理モジュールの実行前後で使用領域における内部レジスタの同一性は保たれる。内部レジスタの復帰処理も別領域に記述するため、使用領域でのレジスタ復帰命令数も少なくできる。したがって、使用領域での命令数及びスタック領域の使用容量を少なくできながら、別処理モジュールの実行によって使用領域の遊技制御処理が影響されることはない。よって、使用領域と別領域の役割分担の明確さ及び公正さを担保できながら、遊技制御処理以外の別処理モジュールを別領域に適切に記述でき、使用領域内の遊技制御処理に充てる容量を適切に増やすことができる。
【0008】
以上のもので、前記使用領域のスタック領域を指し示すスタックポインタの保存処理と復帰処理を前記別領域に記述している。
これにより、使用領域のスタック領域と別領域のスタック領域との使い分けを適切に行うことができると共に、使用領域に記述する命令数をさらに少なくすることができる。
【0009】
以上のもので、前記別処理モジュール(E_SAMP1)を実行する前に前記別領域のスタック領域に退避する前記内部レジスタには、表レジスタ(AF,BC,DE,HLの各レジスタ)と、この表レジスタとデータ交換可能な裏レジスタ(AF’,BC’,DE’,HL’の各レジスタ)とを含み、前記裏レジスタは、前記使用領域での割込み処理時に前記表レジスタの退避レジスタとして使用している。
これにより、使用領域での割込み処理時、表レジスタの内容を裏レジスタに退避することにより、少ないステップ数で迅速に内部レジスタを保護できながら、別処理モジュールを実行するとき、裏レジスタを含めて使用領域で使用している内部レジスタを別領域のスタック領域に退避して保護するため、別処理モジュールの実行により、使用領域の遊技制御処理が影響されるのを確実に排除でき、所期の目的を効果的に達成できる。
【0010】
以上のもので、前記フラグレジスタ(Fレジスタ)には、データ転送命令(LD;ロード)の実行により値の変わる特定ビットフラグ(tz)を定義している。
これにより、演算の結果、全ビットが0のとき1にセットされる通常のゼロフラグによる処理の分岐の他、データ転送命令の実行により値の変わる特定ビットフラグによる処理の分岐も可能となり、使用領域での遊技制御処理で用いる分岐処理が少ない命令数で記述でき、容量の節約が図れる。反面、このような特定ビットフラグを定義したことにより、スタック領域を使い分けするとき、スタックポインタの変更に伴うデータ転送により、フラグレジスタの内容が変化する可能性がある。しかしながら、フラグレジスタは、別領域の呼び出し前に使用領域のスタック領域に退避し、別領域からの復帰後に使用領域のスタック領域から復帰させるため、別処理モジュールの実行前後でフラグレジスタの同一性は保たれる。よって、特定ビットフラグを定義したことにより使用領域での遊技制御処理の容量節約を可能としながら、別領域での別処理モジュールの記述による容量節約も効果的に図れる。
【発明を実施するための形態】
【0012】
図1に、本発明を適用する回胴式遊技機を示す。回胴式遊技機は、一般にパチスロと呼ばれ、遊技機規則、すなわち平成16年(2004年)1月30日の国家公安委員会規則第1での改正を経た昭和60年(1985年)2月12日の国家公安委員会規則第4「遊技機の認定及び型式の検定等に関する規則」に適合するスロットマシンである。以下、用語及びその技術内容は現行の遊技機規則に準ずる。
【0013】
遊技機筐体8Bは、リアキャビネット8R及びキャビネット枠8W、扉状の上下フロントキャビネット8E,8Fを備える。上フロントキャビネット8Eには、動画や所定の情報をフルカラーで映し出す演出表示装置7を構成する液晶表示装置70、リールパネル8、上装飾ランプ81,左装飾ランプ82,右装飾ランプ83,液晶表示装置70の角に臨む4つのアクセント装飾ランプ84,リールパネル8の上・左・右に臨むパネル装飾ランプ85を備える。下フロントキャビネット8Fには、操作部8S、腰部パネル8P、左下装飾ランプ86、右下装飾ランプ87を備える。81〜87の総称として、装飾ランプ88という。91〜94はBGMや各種効果音等を出音するスピーカ、8Mはメダル払出口、8Gはメダル受皿、8Tは灰皿である。なお、左右は、遊技機に対面した遊技者目線における左右を意味する。以下、同様である。
【0014】
リールパネル8の透明な表示窓80の内部には、複数の可変表示要素となる左リール1L、中リール1C、右リール1Rを備え、それぞれのリール帯10L,10C,10Rの外周に全部で21コマ又は20コマ配列した図柄のうち連続する3コマを窓越しに臨ませている。定常回転時を含む通常の正転時、各図柄は上から下にスクロールする。表示窓80の窓越しに表示される複数列及び複数段の図柄表示位置、すなわち、左・中・右リール1L,1C,1Rの3列とそれぞれの上・中・下の3段との、列と段で特定される3×3=9個の図柄表示位置において、例えば中段ライン(左中−中中−右中)のみを有効ラインとしている。なお、他のラインを含めて2本以上のラインを有効ラインとしてもよい。
【0015】
操作部8Sには、遊技媒体たる遊技メダルを投入するメダル投入口2、遊技者操作を演出に関与させるプッシュボタンPBとダイヤルDAをもつジョグダイヤルJD、貯留装置の電磁的記録すなわちクレジットから一回の遊技に必要な規定数例えば3枚(3BET)の掛けメダルを引き落とすベットボタン3、クレジットに残る数のメダルをメダル受皿8Gに落す精算ボタン4、各リール1L,1C,1Rの可変表示(回転)を開始させるスタートスイッチとなるスタートレバー5、各リール1L,1C,1Rに対応して設け、対応するリールの可変表示(回転)を個別に停止させるストップスイッチとなる左ストップボタン6L、中ストップボタン6C、右ストップボタン6R、メダル投入口2下流のメダル詰り時に押すメダル返却ボタン20、ドアキー穴8Kを備える。
【0016】
リールパネル8には、現時のクレジット数を表示させるクレジット表示器DL1、入賞による払出メダル枚数を表示させるペイアウト表示器DL2、充当掛けメダルが1枚、2枚、3枚になる毎に点灯させる1〜3枚ランプEL1〜3、掛けメダルが受付可能なとき点灯させるベットランプELb、スタートレバー5による始動操作が可能なとき点灯させるスタートランプELs、再遊技に係る図柄の組合せが表示されたとき点灯させるリプレイランプELrを含む遊技基本ランプ類30を備える。また、ストップボタン6L,6C,6Rを押す順番に正解した時に投入メダル数を超える高配当のメダルを払出す押し順小役についての正解の押し順や狙うべき図柄を報知させるアシストタイムATの作動中に、液晶表示装置70でのナビ報知と共に点灯させる左停止ランプ71、中停止ランプ72、右停止ランプ73を含む演出表示装置70を構成する遊技演出ランプ類700を備える。
【0017】
ベットランプELbの点灯時、掛けメダルが0の状態でメダル投入口2からメダル1枚を入れると1枚ランプEL1が点灯し、さらに1枚入れると2枚ランプEL2が点灯し、さらに1枚入れると3枚ランプEL3が点灯し、規定数に達する。規定数の掛けメダルになると、スタートランプELsが点灯し、スタートレバー5による始動操作が可能になる。規定数に達した状態からスタートレバー5を操作しないでメダル投入口2にさらにメダルを入れると、クレジット表示器DL1のカウンタを進め、所定上限数である50枚まで貯留可能となる。入賞により払出されたメダルも50枚まではクレジットに加算され、50枚を超えて払出されたメダルは、メダル払出口8Mからメダル受皿8Gに受止められる。
【0018】
図2に示すように、遊技機筐体8Bの内部に組込む制御装置CNは、遊技の進行を管理し、内部抽せん、入賞によるメダルの払出し、再遊技の作動、役物の作動、アシストタイムATの作動等の遊技者利益に関係する主遊技制御を実行させる所謂メイン側と呼ばれる遊技機規則でいう主基板に対応する主制御装置MCと、この主制御装置MCから一方向性通信仕様に従って送信する情報を受信して主制御装置MCでの決定事項に基づいて演出制御を実行させる所謂サブ側と呼ばれる遊技機規則でいう周辺基板に対応する周辺制御装置SCとを含む。一方向性通信仕様とは、主基板に関して遊技機規則で規定する「周辺基板が送信する信号を受信することができるものでないこと」を満たす通信仕様をいう。
【0019】
主制御装置MCは、読み出し専用のリードオンリーメモリROM及び読み書き可能なリードライトメモリーRWMを内蔵したZ80互換チップから成る8ビットのメインCPUを備え、例えば12MHzのシステムクロック動作環境下で使用している。メインCPUは、基本的なZ80仕様に所定の遊技機用拡張仕様を適用している。
【0020】
メインCPUの入力ポートI1には、各リール1L,1C,1Rのインデックスセンサ11L,11C,11R(IDs)、各ストップボタン6L,6C,6R、ベットボタン3、精算ボタン4、スタートレバー5、メダル投入口2の下流に設ける投入メダルセンサ21、遊技機筐体8Bに内蔵するメダル払出装置HPの出口に設ける払出メダルセンサ23の各信号を入力している。出力ポートO1から、各ストップボタン6L,6C,6Rの内蔵LED61,62,63を、モータドライバ回路Dr1を介して各リール1L,1C,1Rに駆動軸SHを結合させる各ステッピングモータ12L,12C,12R(SM)を、LEDドライバ回路Dr2を介して遊技基本ランプ類30を、ソレノイドドライバ回路Dr3を介してリール始動後に追投入されるメダルをメダル受皿8Gに落すメダルブロッカー22を、モータドライバ回路Dr4を介してメダル払出装置HPのメダル払出モータ24を各制御している。
【0021】
各インデックスセンサIDsは、各リールの内側に取付ける半円帯状のインデックスID(1Li,1Ci,1Ri)のオンエッジとオフエッジとを半周毎に検出し、最先のオンエッジ又はオフエッジの検出が全リールについてされた後、ストップボタン6L,6C,6Rの受付を可能にする。各ステッピングモータSMは、鉄芯外周に多数のロータ小歯をもつ永久磁石内蔵式のロータRmと、磁極内周に複数のステータ小歯をもつ複数組の磁極にA相、B相、C相(Aバー相(Aの反転相))、D相(Bバー相(Bの反転相))の巻線を巻回したステータSwとを有し、定常回転時、一の巻線をオンにする1相励磁と、一の巻線及び隣接する他の巻線をオンにする2相励磁とを、一割込み時間例えばt=1.49ms毎に交互に繰返す1−2相励磁により、励磁パルスの1ステップ更新により半ステップ角(2ステップ更新により1ステップ角)ずつ変位させ、504のステップ更新で一回転させる。また、励磁パルスのステップ更新方向を変更することにより正転と逆転とを可能にしている。
【0022】
メインCPUのROM上には、スタートレバー5の操作を契機に、ハード又はソフトウェア上で高速更新する例えば2バイトカウンタから抽出する乱数値が、その取り得る0〜65535の範囲内において役に対応づけて区分した何れの当せんエリアに属するかに応じて、入賞、再遊技の作動、役物の作動に係る何れかの当せん役又は不当せんを決定する内部抽せん手段K、スタートレバー5の操作後で且つ前遊技の開始から4.1秒経過後に全リールを正転側に加速処理して定常回転速度に到達させる回胴回転装置制御手段V1と各リールを対応するストップボタンの操作により個別に停止させて有効ラインに当せん役に対応した図柄の組合せの表示を許容させる回転停止装置制御手段V2とを含むリール制御手段V、遊技結果が入賞なら所定配当数のメダルを払出すメダル払出手段M、遊技結果が再遊技の作動なら次ゲームの掛けメダルを同一規定数で自動投入するメダル自動投入手段N、遊技結果が役物作動中等への移行を伴うのなら遊技状態を移行させる遊技状態移行手段J、所定のフリーズ抽せんにより当せん役別に定めた所定確率により各リールを逆回転等させる所定の回胴演出の当否を決定するフリーズ抽せん手段W、その当せんに係る回胴演出を実行させる回胴演出実行手段Gを設けている。
【0023】
また、メインCPUのROM上には、アシストタイムATの作動を内部当せん役等と関連付けた所定作動条件下で決定するAT作動決定手段H1、アシストタイムATの作動を延長させることとなる継続ゲーム数等の上乗せを内部当せん役等と関連付けた所定上乗せ条件下で決定するAT上乗せ決定手段H2、アシストタイムATの作動決定から作動終了までを管理するAT継続管理手段H3、押し順小役についての正解押し順等のAT指示情報を主制御装置MCで管理するペイアウト表示器DL2の表示機能を借りて構築するメインモニタMAに出力させると共に周辺制御装置SCで管理する液晶表示装置70等に出力させるAT指示情報出力手段H4を設けている。
【0024】
周辺制御装置SCは、外付けする読み出し専用のリードオンリーメモリROMと、内蔵及び外付けする読み書き可能なリードライトメモリーRWMをもつ32ビットRISC(Reduced Instruction Set Computer)チップマイコンから成るサブCPUを備え、例えば約200MHzのシステムクロック動作環境下で使用している。サブCPUは、リアルタイムオペレーティングシステムRTOS(Real−Time Operating System)の管理下、演出表示や音声に関するタスクに割当てるCPU時間、優先順位を制御することにより、適切且つ効率的なタスクの並行処理を可能にしている。
【0025】
サブCPUの入力ポートI2には、主制御装置MCからの送信情報、ジョグダイヤルJDの信号を入力している。主制御装置MCからの送信情報すなわち周辺制御装置NCの受信情報には、メイン側初期化完了情報、ベットボタン3の操作情報を含むメダル投入情報、スタートレバー5の操作情報を含むリール始動情報、内部抽せんによる当せんフラグ情報、ストップボタン6L,6C,6Rの操作情報、遊技結果情報、遊技状態情報、フリーズ及び回胴演出情報、AT作動情報、AT指示情報、AT上乗せ情報、AT終了情報、エラー情報等、主制御装置MCで検出し又は決定若しくは実行する各種情報が含まれる。
【0026】
サブCPUは、I2Cのマイクロコントローラとしても機能し、CPU内蔵I2CのシリアルクロックラインSCLとシリアルデータラインSDAに、リアルタイムクロックRTCのシリアルクロックラインSCLとシリアルデータラインSDAを接続している。シリアルクロックラインSCLとシリアルデータラインSDAとは、それぞれ、抵抗rpを介してサブCPUの主動作電位vdd=3.3Vにプルアップしている。
【0027】
リアルタイムクロックRTCの時刻データは、遊技機メーカー等により、生産時に、日本標準或は国際標準の時計電波に基づく正確な現在時刻により、書き込み時の時刻例えば2015年12月25日金曜日15時30分45秒等と書かれる。この後、リアルタイムクロックRTCの内蔵水晶振動子による基準クロックに基づいて継続的に時刻更新がされる。一月31日の大の月、一月30日又は28日の小の月、4年に一回の2月29日のうるう年の補正も自動的にされる。リアルタイムクロックRTCの時計機能は、遊技機の電源オンオフに拘らず、二次電池等のバックアップ電源BTにより例えば10年以上の長期間にわたり継続的に維持される。
【0028】
サブCPUのROM上には、主制御装置MCからの受信情報に基づいて、液晶表示装置70等にAT指示情報出力手段H4から出力するAT指示情報に従ったナビ例えば正解押し順が「左中右」ならストップボタン位置に対応させて「123」等を表示させるナビ手段X1、ナビ手段X1の表示に連動してスピーカ91〜94から操作すべきストップボタンが左か中か右かを音声で知らせる音声ナビ手段X2、遊技状態、回胴演出、AT期間等に応じて液晶表示装置70に映し出す動画展開等を変更表示させる演出表示手段Y1、これに連動してスピーカ91〜94から効果音やBGMを出音させる効果音出力手段Y2を設けている。
【0029】
サブCPUのCPU内蔵バスにはI2CコントローラI2Cnを接続しており、このI2CコントローラI2CnのシリアルクロックラインSCLとシリアルデータラインSDAを、表示窓80に臨む9つの図柄をリール帯10L,10C,10Rの背面から照明するリールバックランプBL1〜9を制御するLDEドライバDr5のシリアルクロックラインSCLとシリアルデータラインSDAに接続し、装飾ランプ88を制御するLEDドライバDr6のシリアルクロックラインSCLとシリアルデータラインSDAに接続し、遊技演出ランプ類700を制御するLEDドライバDr7のシリアルクロックラインSCLとシリアルデータラインSDAに接続している。これらLED関連のI2Cデバイスのタスクは、リアルタイムクロックRTCよりも優先順位を高くしている。なお、シリアルクロックラインSCLとシリアルデータラインSDAとは、それぞれ、抵抗rpを介してサブCPUの主動作電位vdd=3.3Vにプルアップしている。液晶表示装置70は、VDP(Video Display Processor)、出力ポートO2、LCDドライバ回路Dr8を介して制御している。スピーカ91〜94からの音声は、音声IC、出力ポートO2、パワーアンプ回路Dr9を介して制御している。
【0030】
図3に、主制御装置MCのメインCPUのROM及びRWMのメモリーマップを示す。内部抽せん手段K、リール制御手段V、メダル払出手段M、メダル自動投入手段N、遊技状態移行手段J、フリーズ抽せん手段W、回胴演出実行手段G、AT作動決定手段H1、AT上乗せ決定手段H2、AT継続管理手段H3、AT指示情報出力手段H4を各機能させ、遊技の進行を制御する遊技制御処理のプログラム命令コードは、使用領域における規定容量(制御領域4.5KB)内のアドレス0000H〜11FFHに記述し、同遊技制御処理のプログラムデータは、使用領域における規定容量(データ領域3.0KB)内のアドレス1200H〜1DF3Hに記述している。
【0031】
未使用領域、コメント領域の後ろ、アドレス1F00H〜2FBFHに、不正な改造その他の変更を防止する観点からのセキュリティ関連処理及び遊技機規則で定める試験関連信号処理等を担う、遊技制御処理以外の別処理モジュールのプログラム命令コード及びデータを記述している。プログラム管理エリア、ハード的に領域のないエリアの後ろ、アドレスF000H〜F1FFHの512バイトに使用領域のRWMを、アドレスF200H〜F3FFHの512バイトに別領域のRWMを設けている。F400H〜FFFFHはハード的に領域のないエリアである。なお、使用領域における遊技制御処理のプログラム命令コード及び別領域における別処理モジュールのプログラム命令コードは、アセンブラ言語で記述している。
【0032】
使用領域のRWMのうち、F000H〜F13FHに使用領域のプログラムに係るタイマ、カウンタ、フラグ等のワーク領域を確保し、未使用領域の後ろ、F1C0H〜F1FFHに使用領域のスタック領域を確保している。
【0033】
別領域のRWMのうち、F200H〜F20FHの未使用領域の後ろ、F210H〜F22FHに別領域のプログラムに係るタイマ、カウンタ、フラグ等のワーク領域を確保し、F230H〜F246Hに別領域のスタック領域を確保している。F247H〜F3FFHは未使用、F400H〜FFFFHはハード的に領域のないエリアである。
【0034】
図4に示すように、使用領域に記述する遊技制御処理は、一割込み時間例えばt=1.49ms毎に実行する割込み処理INT1、上記各手段K〜H4を統括管理し、一遊技を進行させる遊技メイン処理、別領域に記述する複数の別処理モジュールを構成する別領域処理1,2・・・をそれぞれ呼び出す複数の別領域呼び出し処理1,2・・・を含む。図示は省略したが、使用領域には、電源投入時の初期化処理、電断時のバックアップ処理等も記述している。なお、本実施形態では、外部割込み、マスク不能な割込みNMIは未使用である。
【0035】
使用領域で使用するメインCPUの内部レジスタは、次のとおりである。
1)Qレジスタ;遊技機用拡張仕様の8ビット専用レジスタ。キューレジスタと呼ぶ。
上位はF0H固定で、F000H〜F0FFHのRWMアクセスに使う。
2)Iレジスタ;割込み先アドレスの上位8ビットを記憶する専用レジスタ。
3)Aレジスタ;演算処理やデータ転送に使う8ビットのアキュムレータ。
【0036】
4)Fレジスタ;各種演算結果を保持する8ビットのフラグレジスタ。
s(最上位ビット)は、演算結果が負のとき1にセットされるサインフラグ。
zは、演算の結果、全ビットが0のとき1にセットされるゼロフラグ。
tzは、データ転送命令(LD;ロード)の実行により、全ビットが0のとき1にセットされる(値の変わる)遊技機用拡張仕様の特定ビットフラグ。ティーゼットフラグと呼ぶ。第2ゼロフラグともいう。
hは、プログラマーが関与できないハーフキャリーフラグ。
*は、未定義。
p/vは、パリティオーバーフローフラグ。
nは、プログラマーが関与できない加減算フラグ。
cは、演算の結果、桁上げ又はボロー発生時に1がセットされるキャリーフラグ。
なお、Fレジスタは、AレジスタとレジスタペアAFを構成する。
【0037】
5)B,C,D,E,H,Lレジスタ;8ビットの汎用レジスタ。
BC,DE,HLの16ビットのレジスタペアとなる。
6)IX,IYレジスタ;インデックスアドレッシング用16ビット専用レジスタ。
IXh,IYhは上位8ビット,IXl,IYlは下位8ビットを示す。
7)A’,F’,B’,C’,D’,E’,H’,L’レジスタ;
A,F,B,C,D,E,H,Lの表レジスタと交換命令によりデータ交換可能な裏レジスタであり、A’とF’でAF’、B’とC’でBC’、D’とE’でDE’、H’とL’でHL’の、それぞれペアの裏レジスタとなる。
【0038】
割込み処理INT1では、交換命令EXにより表レジスタAFのデータを裏レジスタに退避し(ステップt1)、かつ、交換命令EXXにより表レジスタBC,DE,HLのデータを裏レジスタBC’,DE’,HL’に退避した後(ステップt2)、各種割込み処理を実行する(ステップt3)。各種割込み処理は、入力ポートI1に対する読込み処理、ステッピングモータSMのモーター制御処理、出力ポートO1への出力管理処理、周辺制御装置SCへのサブコマンド送信処理、各種センサの監視処理、各種タイマの更新処理、遊技機設置島側への外部信号出力制御処理等を含む。各種割込み処理の実行後、交換命令EXXにより裏レジスタBC’,DE’,HL’に退避したデータを表レジスタBC,DE,HLに復帰させ(ステップt4)、交換命令EXにより裏レジスタAF’に退避していたデータを表レジスタAFに復帰させ(ステップt5)、割込みを許可して(ステップt6)、割込み処理からリターンする(ステップt7)。
【0039】
別領域呼び出し処理1のSAMP1では、割込みを禁止し(ステップS1)、且つ、フラグレジスタFを含むレジスタペアAFを「PUSH AF」命令により、使用領域のスタック領域のボトムF1FFHからアドレスの若い方に向けて2バイト分(16ビット分)退避させる(ステップS2)。
【0040】
ステップS2の後、「CALL E_SAMP1」により別領域処理1を呼び出して実行させる(ステップS3)。CALL命令の実行により、使用領域のスタック領域には、戻り先番地つまりCALL命令の次の「POP AF」のアドレスの上位8ビットと下位8ビットとが記録される。
【0041】
別領域処理1からの復帰後、「POP AF」命令により、ステップS2で退避させたフラグレジスタFを含むレジスタペアAFを復帰させ(ステップS4)、且つ、割込みを許可する(ステップS5)。
【0042】
別領域に記述する別領域処理1のE_SAMP1では、使用領域のスタック領域を指し示していたスタックポインタSPを、別領域のRWMに確保するEX_STCBという格納エリアに保存し(ステップS6)、別領域のスタック領域のボトムアドレスの次アドレスである@SK2_ARE_BAS+1(=F247H)をスタックポインタSPの初期値に設定する(ステップS7)。これにより、スタック領域が使用領域から別領域に変わる。
【0043】
続いて、使用領域で使用している内部レジスタQ,I,A,F,B,C,D,E,H,L,IX,IYを「PUSH ALL」という遊技機用拡張仕様で定義した命令により、一括して、別領域のスタック領域のボトムF246Hからアドレスの若い方に向けて退避させると共に(ステップS8)、交換命令EXによりAFとAF’を入れ替え(ステップS9)、交換命令EXXによりBCとBC’を、DEとDE’を、HLとHL’をそれぞれ入れ替え(ステップS10)、「PUSH GPR」という遊技機用拡張仕様で定義した命令により、一括して、ステップS8による詰め込み後に続く若いアドレスに退避させる(ステップS11)。
【0044】
この後、所定の別領域処理1を実行する(ステップS12)。この別領域処理1では、メダル投入時の逆流・滞留・異物検知処理、メダル払出時の逆流・滞留・異物検知処理、前扉開放検知処理、内部抽せん用乱数の異常確認処理、内部抽せんの当せん確率の組合せである設定値の異常確認処理、RWM異常確認処理、バックアップ異常確認処理等のセキュリティ関連処理の何れか一の処理又は二以上の組合せ処理を実行する。別領域処理2以降で、別領域処理1以外のセキュリティ関連処理、あるいは、遊技機規則で定める試験関連信号出力処理が記述される。別領域処理2,・・・は、使用領域に記述する別領域呼び出し処理2,・・・からそれぞれ呼び出される。
【0045】
別領域処理1の終了後、「POP GPR」という遊技機用拡張仕様で定義した命令により、一括して、ステップS11で詰め込んだ裏レジスタの内容を保持するレジスタを復帰させ(ステップS13)、交換命令EXXによりBC’とBCを、DE’とDEを、HL’とHLをそれぞれ入れ替えると共に(ステップS14)、交換命令EXによりAF’とAFを入れ替え(ステップS15)、別領域処理1の実行前の裏レジスタの内容に戻し、「POP ALL」という遊技機用拡張仕様で定義した命令により、一括して、ステップS8で詰め込んだ表レジスタを復帰させる(ステップS16)。
【0046】
続いて、別領域のRWMの格納エリアEX_STCBから別領域処理1の呼び出し前に使用領域のスタック領域を指し示していたスタックポインタSPを復帰させる(ステップS17)。これにより、スタック領域が別領域から使用領域に変わることとなる。
【0047】
この後、「RET」命令により使用領域に戻る(ステップS18)。「RET」命令により、使用領域のスタック領域に保存した戻り番地先に復帰し、スタック領域のアドレスを指し示すスタックポインタSPはプラス2され、ステップS4の「POP AF」を実行することになる。
【0048】
使用領域に記述した別領域呼び出し処理1の命令コードは、「DI」、「PUSH AF」、「POP AF」、「EI」が各1バイト、「CALL E_SAMP1」が3バイトで計7バイトであり、別領域処理1が7バイトを超える命令で記述する場合、その7バイトを超える分について、使用領域の容量を節約できることになる。別領域処理は一つに限らず、複数となることが多いため、一つ一つの処理での節約バイト数は少なくとも、トータルでは大きな節約効果が得られる。
【0049】
以上の実施形態では、回胴式遊技機を例示したが、ぱちんこ遊技機にも同様に適用できる。なお、以上の説明中の具体的数字やアドレス等は一例示に過ぎないのは言うまでも無い。