JP7284619B2 - game machine - Google Patents
game machine Download PDFInfo
- Publication number
- JP7284619B2 JP7284619B2 JP2019073302A JP2019073302A JP7284619B2 JP 7284619 B2 JP7284619 B2 JP 7284619B2 JP 2019073302 A JP2019073302 A JP 2019073302A JP 2019073302 A JP2019073302 A JP 2019073302A JP 7284619 B2 JP7284619 B2 JP 7284619B2
- Authority
- JP
- Japan
- Prior art keywords
- game
- program
- address
- data
- main control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
本発明は、パチンコ機、アレンジボール機、雀球遊技機、スロットなどの遊技機に関し、より詳しくは、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができる遊技機に関する。 The present invention relates to a game machine such as a pachinko machine, an arrangement ball machine, a mammoth ball game machine, and a slot machine, and more particularly to a game machine capable of reducing program processing load and program capacity .
従来のパチンコ機等の遊技機として、例えば特許文献1に記載のような遊技機が知られている。この遊技機は、基本ビット数より大きいビット数を扱うことで、ROMのデータ配置を工夫しているものである。
2. Description of the Related Art As a conventional game machine such as a pachinko machine, for example, a game machine as described in
しかしながら、上記のような遊技機では、プログラムの処理負荷軽減と、プログラム容量の削減を図れていないという問題があった。 However, the gaming machine described above has a problem that it is not possible to reduce the processing load of the program and reduce the program capacity .
そこで本発明は、上記問題に鑑み、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができる遊技機を提供することを目的としている。 SUMMARY OF THE INVENTION Accordingly, it is an object of the present invention to provide a game machine capable of reducing the processing load of a program and reducing the program capacity .
上記本発明の目的は、以下の手段によって達成される。なお、括弧内は、後述する実施形態の参照符号を付したものであるが、本発明はこれに限定されるものではない。 The above objects of the present invention are achieved by the following means. In addition, although the inside of parenthesis is attached with the reference code|symbol of embodiment mentioned later, this invention is not limited to this.
請求項1の発明に係る遊技機によれば、図柄変動遊技を実行可能な遊技手段(例えば、図7に示す主制御CPU600a)と、
前記図柄変動遊技に関する複数のデータが格納されているROM(例えば、図7に示す主制御ROM600b)と、
前記複数のデータのうちから指定された特定データを記憶手段(例えば、図15に示す汎用レジスタ600a1)に読み出すデータ読み出し手段(例えば、図7に示す主制御CPU600a)と、
前記特定データが格納されている領域のアドレス番地に関する第1アドレス番地情報を記憶する第1アドレス番地情報記憶手段(例えば、図16(a),(b)に示すHLレジスタ参照)と、
前記複数のデータが格納されている領域のアドレス番地に関する第2アドレス番地情報を記憶する第2アドレス番地情報記憶手段(例えば、図16(a),(b)に示すTPレジスタ600a4参照)と、
所定の遊技プログラムに、所定の条件の成立に基づいて遊技に供する遊技価値に関する所定の値を計測する計測処理と、
特別遊技状態を発生させるか否かの抽選を行う抽選処理と、
コマンド送信に関するコマンド送信処理と、を有し、
前記データ読み出し手段(例えば、図7に示す主制御CPU600a)は、
前記第1アドレス番地情報と第2アドレス番地情報とに基づいて、前記特定データが格納されている特定アドレス番地を参照し、前記特定データを前記記憶手段(例えば、図15に示す汎用レジスタ600a1)に読み出し可能であり、
前記ROM(例えば、図7に示す主制御ROM600b)は、
前記第2アドレス番地情報により特定可能な第1記憶領域(例えば、図9(b)に示す主制御ROM600bの通常用データ領域600bc)と、
前記第2アドレス番地情報により特定不能な第2記憶領域(例えば、図9(b)に示す主制御ROM600bの計測用データ領域600bc)と、を有し、
前記第1記憶領域(例えば、図9(b)に示す主制御ROM600bの通常用データ領域600bc)に記憶されたデータを用いた処理を行う第1処理(例えば、抽選処理等の遊技処理)と、
前記第2記憶領域(例えば、図9(b)に示す主制御ROM600bの計測用データ領域600bc)に記憶されたデータを用いた処理を行う第2処理(例えば、賞球数,非入賞数を含む遊技領域に発射された遊技球の総数等を計測する処理)と、があり、
前記第1処理(例えば、抽選処理等の遊技処理)から前記第2処理(例えば、賞球数,非入賞数を含む遊技領域に発射された遊技球の総数等を計測する処理)に移行する場合に、前記第2アドレス番地情報を前記第2アドレス番地情報記憶手段(例えば、図16(a),(b)に示すTPレジスタ600a4参照)から所定の記憶領域(例えば、図9(a)に示す主制御RAM600cの計測用スタック領域600cg)に退避させる第2アドレス番地情報退避処理を実行し、
前記第2処理(例えば、賞球数,非入賞数を含む遊技領域に発射された遊技球の総数等を計測する処理)から前記第1処理(例えば、抽選処理等の遊技処理)に移行する場合に、前記第2アドレス番地情報を前記所定の記憶領域(例えば、図9(a)に示す主制御RAM600cの計測用スタック領域600cg)から前記第2アドレス番地情報記憶手段(例えば、図16(a),(b)に示すTPレジスタ600a4参照)に復帰させる第2アドレス番地情報復帰処理(例えば、図23(b)、図24、図25に示す「POP TP」参照)を実行し、
前記所定の遊技プログラムは、所定のモジュールを呼び出すことができる複数のコール命令を含み、
前記複数のコール命令は、第1のコール命令(例えば、CALL命令)と、第2のコール命令(例えば、CALL_M命令)と、第3のコール命令(例えば、CALL_S命令)と、を含み、
前記第1のコール命令(例えば、CALL命令)は、前記複数のコール命令のうち、呼び出すモジュールのアドレス番地に制限がなく(例えば、明細書段落[0143]参照)、
前記第2のコール命令(例えば、CALL_M命令)は、前記第1のコール命令(例えば、CALL命令)より小さいプログラムコードのデータ量であり、且つ、前記複数のコール命令のうち、前記呼び出すモジュールのアドレス番地は予め決められた範囲内であり(例えば、明細書段落[0141],[0143]参照)、
前記第3のコール命令(例えば、CALL_S命令)は、前記複数のコール命令のうち、最小のプログラムコードのデータ量であり(例えば、明細書段落[0121]参照)、
前記所定の遊技プログラムは、遊技処理時に使用される通常用プログラム(例えば、図9(b)に示す通常用プログラム領域600baに格納されているプログラム)と、前記計測処理に使用される計測用プログラム(例えば、図9(b)に示す計測用プログラム領域600beに格納されているプログラム)と、を有し、
前記コマンド送信処理は、前記通常用プログラム(例えば、図9(b)に示す通常用プログラム領域600baに格納されているプログラム)から前記第3のコール命令(例えば、CALL_S命令)によって呼び出される通常用プログラム内のモジュールとし、
前記コマンド送信処理を呼び出す前記第3のコール命令(例えば、CALL_S命令)は、前記通常用プログラム(例えば、図9(b)に示す通常用プログラム領域600baに格納されているプログラム)において、所定時間毎に発生するタイマ割込み信号に基づいて実行される割込み処理内の遊技プログラムで用いられる頻度が、初期処理から該割込み処理が呼び出されるメインループ処理までの遊技プログラムで用いられる頻度より高くなっている(例えば、明細書段落[0140]参照)ことを特徴としている。
請求項2の発明に係る遊技機によれば、図柄変動遊技を実行可能な遊技手段(例えば、図7に示す主制御CPU600a)と、
前記図柄変動遊技に関する複数のデータが格納されているROM(例えば、図7に示す主制御ROM600b)と、
前記複数のデータのうちから指定された特定データを記憶手段(例えば、図15に示す汎用レジスタ600a1)に読み出すデータ読み出し手段(例えば、図7に示す主制御CPU600a)と、
前記特定データが格納されている領域のアドレス番地に関する第1アドレス番地情報を記憶する第1アドレス番地情報記憶手段(例えば、図16(a),(b)に示すHLレジスタ参照)と、
前記複数のデータが格納されている領域のアドレス番地に関する第2アドレス番地情報を記憶する第2アドレス番地情報記憶手段(例えば、図16(a),(b)に示すTPレジスタ600a4参照)と、
所定の遊技プログラムに、所定の条件の成立に基づいて遊技に供する遊技価値に関する所定の値を計測する計測処理と、
特別遊技状態を発生させるか否かの抽選を行う抽選処理と、
コマンド送信に関するコマンド送信処理と、を有し、
前記データ読み出し手段(例えば、図7に示す主制御CPU600a)は、
前記第1アドレス番地情報と第2アドレス番地情報とに基づいて、前記特定データが格納されている特定アドレス番地を参照し、前記特定データを前記記憶手段(例えば、図15に示す汎用レジスタ600a1)に読み出し可能であり、
前記ROM(例えば、図7に示す主制御ROM600b)は、
前記第2アドレス番地情報により特定可能な第1記憶領域(例えば、図9(b)に示す主制御ROM600bの通常用データ領域600bc)と、
前記第2アドレス番地情報により特定不能な第2記憶領域(例えば、図9(b)に示す主制御ROM600bの計測用データ領域600bc)と、を有し、
前記第1記憶領域(例えば、図9(b)に示す主制御ROM600bの通常用データ領域600bc)に記憶されたデータを用いた処理を行う第1処理(例えば、抽選処理等の遊技処理)と、
前記第2記憶領域(例えば、図9(b)に示す主制御ROM600bの計測用データ領域600bc)に記憶されたデータを用いた処理を行う第2処理(例えば、賞球数,非入賞数を含む遊技領域に発射された遊技球の総数等を計測する処理)と、があり、
前記第1処理(例えば、抽選処理等の遊技処理)は、前記図柄変動遊技に関する第1遊技処理(例えば、図26(a)に示すプログラムに記載の特別図柄変動変動パターンコマンド生成処理)と第2遊技処理(例えば、図26(a)に示すプログラムに記載の特別図柄変動変動パターンコマンド送信処理)とを含み、
前記第1遊技処理(例えば、図26(a)に示すプログラムに記載の「CALL_S _CMDOUT」のプログラムを除く処理)から前記第2遊技処理(例えば、図26(a)に示すプログラムに記載の「CALL_S _CMDOUT」のプログラム例)に移行する場合に、前記記憶手段(例えば、図15に示す汎用レジスタ600a1)に記憶されたデータを所定の記憶領域(例えば、図9(a)に示す主制御RAM600cの通常用スタック領域600cc)に退避させる記憶手段退避処理(例えば、図26(a)に示す「PUSH ALL」参照)が実行されるが、前記第2アドレス番地情報を前記第2アドレス番地情報記憶手段(例えば、図16(a),(b)に示すTPレジスタ600a4参照)から所定の記憶領域(例えば、図9(a)に示す主制御RAM600cの通常用スタック領域600cc)に退避させる第2アドレス番地情報退避処理(例えば、図23(b)に示す「PUSH TP」参照)が実行されず、
前記第2遊技処理(例えば、図26(a)に示すプログラムに記載の「CALL_S _CMDOUT」のプログラム例)から前記第1遊技処理(例えば、図26(a)に示すプログラムに記載の「CALL_S _CMDOUT」のプログラムを除く処理)に移行する場合に、前記所定の記憶領域(例えば、図9(a)に示す主制御RAM600cの通常用スタック領域600cc)に退避させたデータを前記記憶手段(例えば、図15に示す汎用レジスタ600a1)に復帰させる記憶手段復帰処理(例えば、図26(a)に示す「POP ALL」参照)が実行されるが、前記第2アドレス番地情報を前記所定の記憶領域(例えば、図9(a)に示す主制御RAM600cの通常用スタック領域600cc)から前記第2アドレス番地情報記憶手段(例えば、図16(a),(b)に示すTPレジスタ600a4参照)に復帰させる第2アドレス番地情報復帰処理(例えば、図23(b)に示す「POP TP」参照)が実行されず、
前記所定の遊技プログラムは、所定のモジュールを呼び出すことができる複数のコール命令を含み、
前記複数のコール命令は、第1のコール命令(例えば、CALL命令)と、第2のコール命令(例えば、CALL_M命令)と、第3のコール命令(例えば、CALL_S命令)と、を含み、
前記第1のコール命令(例えば、CALL命令)は、前記複数のコール命令のうち、呼び出すモジュールのアドレス番地に制限がなく(例えば、明細書段落[0143]参照)、
前記第2のコール命令(例えば、CALL_M命令)は、前記第1のコール命令(例えば、CALL命令)より小さいプログラムコードのデータ量であり、且つ、前記複数のコール命令のうち、前記呼び出すモジュールのアドレス番地は予め決められた範囲内であり(例えば、明細書段落[0141],[0143]参照)、
前記第3のコール命令(例えば、CALL_S命令)は、前記複数のコール命令のうち、最小のプログラムコードのデータ量であり(例えば、明細書段落[0121]参照)、
前記所定の遊技プログラムは、遊技処理時に使用される通常用プログラム(例えば、図9(b)に示す通常用プログラム領域600baに格納されているプログラム)と、前記計測処理に使用される計測用プログラム(例えば、図9(b)に示す計測用プログラム領域600beに格納されているプログラム)と、を有し、
前記コマンド送信処理は、前記通常用プログラム(例えば、図9(b)に示す通常用プログラム領域600baに格納されているプログラム)から前記第3のコール命令(例えば、CALL_S命令)によって呼び出される通常用プログラム内のモジュールとし、
前記コマンド送信処理を呼び出す前記第3のコール命令(例えば、CALL_S命令)は、前記通常用プログラム(例えば、図9(b)に示す通常用プログラム領域600baに格納されているプログラム)において、所定時間毎に発生するタイマ割込み信号に基づいて実行される割込み処理内の遊技プログラムで用いられる頻度が、初期処理から該割込み処理が呼び出されるメインループ処理までの遊技プログラムで用いられる頻度より高くなっている(例えば、明細書段落[0140]参照)ことを特徴としている。
According to the gaming machine according to the invention of
ROM (for example,
Data reading means (for example, the
a first address address information storage means (for example, refer to the HL register shown in FIGS. 16(a) and 16(b)) for storing first address information relating to the address of the area in which the specific data is stored;
a second address address information storage means (see, for example, the TP register 600a4 shown in FIGS. 16A and 16B) for storing second address information relating to the address addresses of the areas in which the plurality of data are stored;
a measurement process for measuring a predetermined value related to a game value to be provided to a game based on establishment of a predetermined condition in a predetermined game program;
Lottery processing for performing a lottery as to whether or not to generate a special game state;
a command transmission process related to command transmission;
The data reading means (for example, the
Based on the first address information and the second address information, the specific address where the specific data is stored is referenced, and the specific data is stored in the storage means (for example, the general-purpose register 600a1 shown in FIG. 15). is readable to
The ROM (for example, the
a first storage area that can be specified by the second address information (for example, a normal data area 600bc of the
a second storage area that cannot be specified by the second address information (for example, a measurement data area 600bc of the
A first process (for example, a game process such as a lottery process) that performs a process using data stored in the first storage area (for example, a normal data area 600bc of the
Second processing (for example, the number of winning balls, the number of non-winning processing to measure the total number of game balls fired into the game area including
Transition from the first process (for example, a game process such as a lottery process) to the second process (for example, a process for measuring the total number of game balls shot into the game area including the number of prize balls and the number of non-win prizes) , the second address information is transferred from the second address information storage means (for example, see the TP register 600a4 shown in FIGS. 16(a) and 16(b)) to a predetermined storage area (for example, FIG. 9(a) Execute the second address address information saving process to save to the measurement stack area 600cg) of the
Transition from the second process (for example, the process of measuring the total number of game balls shot into the game area including the number of winning balls and the number of non-winning balls, etc.) to the first process (for example, the game process such as lottery processing) 16 ( a) and (b) (see TP register 600a4 shown in FIG. 23(b), FIG. 24, and FIG. 25) to execute the second address information return processing (see, for example, "POP TP" shown in FIGS. 23(b), 24, and 25),
The predetermined game program includes a plurality of call instructions capable of calling predetermined modules,
the plurality of call instructions include a first call instruction (e.g., CALL instruction), a second call instruction (e.g., CALL_M instruction), and a third call instruction (e.g., CALL_S instruction);
the first call instruction (for example, CALL instruction) has no restriction on the address address of the module to be called among the plurality of call instructions (see, for example, paragraph [0143] of the specification);
The second call instruction (for example, CALL_M instruction) has a program code data amount smaller than that of the first call instruction (for example, CALL instruction), and among the plurality of call instructions, the module to be called the address is within a predetermined range (see, for example, paragraphs [0141] and [0143] of the specification);
the third call instruction (for example, CALL_S instruction) has the smallest amount of program code data among the plurality of call instructions (see, for example, paragraph [0121] of the specification);
The predetermined game program includes a normal program used during game processing (for example, a program stored in the normal program area 600ba shown in FIG. 9B) and a measurement program used for the measurement processing. (For example, a program stored in the measurement program area 600be shown in FIG. 9B),
The command transmission process is a normal program called by the third call instruction (for example, CALL_S instruction) from the normal program (for example, the program stored in the normal program area 600ba shown in FIG. 9B). as a module in the program,
The third call instruction (for example, CALL_S instruction) that calls the command transmission process is executed in the normal program (for example, the program stored in the normal program area 600ba shown in FIG. 9B) for a predetermined time. The frequency of use in the game program in the interrupt process executed based on the timer interrupt signal generated every time is higher than the frequency used in the game program from the initial process to the main loop process where the interrupt process is called. (See, for example, paragraph [0140] of the specification).
According to the gaming machine according to the invention of
ROM (for example,
Data reading means (for example, the
a first address address information storage means (for example, refer to the HL register shown in FIGS. 16(a) and 16(b)) for storing first address information relating to the address of the area in which the specific data is stored;
a second address address information storage means (see, for example, the TP register 600a4 shown in FIGS. 16A and 16B) for storing second address information relating to the address addresses of the areas in which the plurality of data are stored;
a measurement process for measuring a predetermined value related to a game value to be provided to a game based on establishment of a predetermined condition in a predetermined game program;
Lottery processing for performing a lottery as to whether or not to generate a special game state;
a command transmission process related to command transmission ;
The data reading means (for example, the
Based on the first address information and the second address information, the specific address where the specific data is stored is referenced, and the specific data is stored in the storage means (for example, the general-purpose register 600a1 shown in FIG. 15). is readable to
The ROM (for example, the
a first storage area that can be specified by the second address information (for example, a normal data area 600bc of the
a second storage area that cannot be specified by the second address information (for example, a measurement data area 600bc of the
A first process (for example, a game process such as a lottery process) that performs a process using data stored in the first storage area (for example, a normal data area 600bc of the
Second processing (for example, the number of winning balls, the number of non-winning processing to measure the total number of game balls fired into the game area including
The first process (for example, a game process such as a lottery process) includes a first game process (for example, a special symbol variation variation pattern command generation process described in the program shown in FIG. 26(a)) related to the symbol variation game. 2 game processing (for example, special symbol variation variation pattern command transmission processing described in the program shown in FIG. 26 (a)) and
From the first game process (for example, the process excluding the "CALL_S_CMDOUT" program described in the program shown in FIG. 26(a)) to the second game process (for example, " CALL_S_CMDOUT” program example), the data stored in the storage means (for example, the general-purpose register 600a1 shown in FIG. 15) is stored in a predetermined storage area (for example, the
From the second game process (for example, a program example of "CALL_S_CMDOUT" described in the program shown in FIG. 26(a)) to the first game process (for example, "CALL_S_CMDOUT" described in the program shown in FIG. 26(a) ), the data saved in the predetermined storage area (for example, the normal stack area 600cc of the
The predetermined game program includes a plurality of call instructions capable of calling predetermined modules,
the plurality of call instructions include a first call instruction (e.g., CALL instruction), a second call instruction (e.g., CALL_M instruction), and a third call instruction (e.g., CALL_S instruction);
the first call instruction (for example, CALL instruction) has no restriction on the address address of the module to be called among the plurality of call instructions (see, for example, paragraph [0143] of the specification);
The second call instruction (for example, CALL_M instruction) has a program code data amount smaller than that of the first call instruction (for example, CALL instruction), and among the plurality of call instructions, the module to be called the address is within a predetermined range (see, for example, paragraphs [0141] and [0143] of the specification);
the third call instruction (for example, CALL_S instruction) has the smallest amount of program code data among the plurality of call instructions (see, for example, paragraph [0121] of the specification);
The predetermined game program includes a normal program used during game processing (for example, a program stored in the normal program area 600ba shown in FIG. 9B) and a measurement program used for the measurement processing. (For example, a program stored in the measurement program area 600be shown in FIG. 9B),
The command transmission process is a normal program called by the third call instruction (for example, CALL_S instruction) from the normal program (for example, the program stored in the normal program area 600ba shown in FIG. 9B). As a module in the program,
The third call instruction (for example, CALL_S instruction) that calls the command transmission process is executed in the normal program (for example, the program stored in the normal program area 600ba shown in FIG. 9B) for a predetermined time. The frequency of use in the game program in the interrupt process executed based on the timer interrupt signal generated every time is higher than the frequency used in the game program from the initial process to the main loop process where the interrupt process is called. (See, for example, paragraph [0140] of the specification).
本発明によれば、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができる。 According to the present invention , it is possible to reduce the processing load of the program and reduce the program capacity .
以下、本発明に係る遊技機の一実施形態を、パチンコ遊技機を例にして、図面を参照して具体的に説明する。なお、以下の説明において、上下左右の方向を示す場合は、図示正面から見た場合の上下左右をいうものとする。 Hereinafter, one embodiment of the gaming machine according to the present invention will be specifically described with reference to the drawings, taking a pachinko gaming machine as an example. In the following description, when the directions of up, down, left, and right are indicated, they refer to up, down, left, and right when viewed from the front of the drawing.
<パチンコ遊技機外観構成の説明>
まず、図1~図6を参照して、本実施形態に係るパチンコ遊技機の外観構成を説明する。
<Description of pachinko machine exterior configuration>
First, referring to FIGS. 1 to 6, the external configuration of the pachinko gaming machine according to the present embodiment will be described.
<パチンコ遊技機前面の外観構成の説明>
図1に示すように、パチンコ遊技機1は、木製の外枠2と、この外枠2の前面に、左側面に設けられているヒンジ4a(図2参照)を介して縦軸心廻りに開閉自在及び着脱自在に枢着された矩形状の前面枠3とを備えている。
<Description of the exterior configuration of the front of the pachinko machine>
As shown in FIG. 1, the
この前面枠3は、図2及び図3に示すように、上部装着部5と、この上部装着部5の下側に設けられた下部装着部6とを備えている。この上部装着部5の前側には、上記ヒンジ4aを介して縦軸心廻りに開閉自在及び着脱自在に枢着された透明ガラスを支持した上部開閉扉7が設けられ、下部装着部6の前側には、下部開閉扉8がヒンジ4aと同じ側に設けられたヒンジ4bにより開閉自在及び着脱自在に枢着されている。
The
そして、この下部開閉扉8には、図1に示すように、排出された遊技球を貯留する上受け皿9と、この上受け皿9が満杯になったときにその余剰球を受けて貯留する下受け皿10とが一体形成されている。また、下部開閉扉8には、球貸しボタン11及びプリペイドカード排出ボタン12(カード返却ボタン12)が設けられ、そして、上受け皿9の上皿表面部分には、内蔵ランプ(図示せず)点灯時に押下することにより演出効果を変化させることができる押しボタン式の演出ボタン装置13が設けられている。また、この上受け皿9には、当該上受け皿9に貯留された遊技球を下方に抜くための球抜きボタン14が設けられ、さらに、略十字キーからなる設定ボタン15が設けられている。この設定ボタン15は、遊技者による操作が可能なもので、中央部に設けられた円形の決定キー15aと、その決定キー15aの図示上側に設けられた三角形状の上キー15bと、その決定キー15aの図示左側に設けられた三角形状の左キー15cと、その決定キー15aの図示右側に設けられた三角形状の右キー15dと、その決定キー15aの図示下側に設けられた三角形状の下キー15eとで構成されている。
As shown in FIG. 1, the lower opening/
一方、下部開閉扉8の右端部側には、図1に示すように、発射ユニットを作動させるための発射ハンドル16が設けられ、図1~図3に示すように、前面枠3の上部両側面側及び発射ハンドル16の近傍には、BGM(Background music)あるいは効果音を発するスピーカ17が設けられている。そして、上部開閉扉7及び下部開閉扉8の各所には、光の装飾による演出効果を現出するLEDランプ等の装飾ランプが配置されている。
On the other hand, on the right end side of the lower opening/
他方、上部装着部5には、図2及び図3に示すように、遊技盤装着枠18が設けられており、この遊技盤装着枠18に遊技盤YB(図1参照)が、図5に示す遊技領域40を前面に臨ませた状態で装着され、遊技盤装着枠18内に固定されることとなる。すなわち、図3に示すように、上部装着部5には、右側面側下部に複数の接続用コネクタ19(図示では4個)が設けられているため、これら接続用コネクタ19に、遊技盤YBの背面に設けられた被接続用コネクタ(図示せず)が接続されることで、遊技盤装着枠18内に遊技盤YBが装着される。そして、右側面側上下方向に設けられた固定具20a,20bによって遊技盤装着枠18内に遊技盤YBが固定されることとなる。これにより、遊技盤装着枠18内に遊技盤YBが装着され、もって、その遊技盤YBの遊技領域40の前側に、透明ガラスを支持した上部開閉扉7が設けられることとなる(図1参照)。なお、上記遊技領域40は、遊技盤YBの面上に配置された球誘導レールUR(図5参照)で囲まれた領域からなるものである。
On the other hand, as shown in FIGS. 2 and 3, the upper mounting
一方、下部装着部6には、図2及び図3に示すように、左右方向略中央に発射機構21が配置され、その発射機構21の右側には、スピーカ17が配置されている。この発射機構21は、図3に示すように、板金製の支持板22と、この支持板22の前面に装着された発射レール23と、支持板22の前面に装着され且つ発射用の遊技球を発射レール23上の発射待機位置24に保持する球保持部25と、支持板22の前面で前後方向の駆動軸26廻りに揺動自在に支持された打撃槌27と、支持板22の裏側に装着され、且つ、打撃槌27を、駆動軸26を介して打撃方向に駆動する発射モータを備えた発射制御基板71とを備えている。
On the other hand, as shown in FIGS. 2 and 3 , the lower mounting
<遊技盤の外観構成の説明>
他方、上記遊技盤YBの遊技領域40には、図5に示すように、略中央部にLCD(Liquid Crystal Display)等からなる液晶表示装置41が配置されている。この液晶表示装置41は、表示エリアを左、中、右の3つのエリアに分割し、独立して数字やキャラクタ、文字(キャラクタの会話や歌詞テロップ等)あるいは特別図柄の変動表示が可能なものである。そしてこのような液晶表示装置41の周囲には、装飾用の上飾り42a、左飾り42b、右飾り42cが設けられており、この上飾り42a、左飾り42b、右飾り42cの背面側には可動役物装置43が配置されている。
<Description of the appearance configuration of the game board>
On the other hand, in the
この可動役物装置43は、図5に示すように、遊技の進行に伴い所定の演出動作を行う上可動役物43aと、左可動役物43bと、右可動役物43cと、左上可動役物43dと、さらに、上・左・右・左上可動役物43a~43dを、夫々、駆動する2相のステッピングモータ等のモータ(図示せず)とで構成されている。なお、これら上・左・右・左上可動役物43a~43dには、光の装飾により演出効果を現出するLEDランプ等の装飾ランプが配置されている。
As shown in FIG. 5, the
一方、液晶表示装置41の真下には、特別図柄1始動口44が配置され、その内部には入賞球を検出する特別図柄1始動口スイッチ44a(図7参照)が設けられている。そしてこの特別図柄1始動口スイッチ44a(図7参照)が検出した有効入賞球数、すなわち、第1始動保留球数が所定数(例えば、4個)液晶表示装置41に表示されることとなる。なお、この第1始動保留球数は、特別図柄1始動口44へ遊技球が入賞し、特別図柄1始動口スイッチ44a(図7参照)にて検出されると、1加算(+1)され、数字やキャラクタあるいは図柄(装飾図柄)等の特別図柄の変動表示が開始されると、1減算(-1)されるというものである。
On the other hand, right below the liquid
他方、液晶表示装置41の右下部側には、特別図柄2始動口45が配置され、その内部には入賞球を検出する特別図柄2始動口スイッチ45a(図7参照)が設けられている。そしてこの特別図柄2始動口スイッチ45a(図7参照)が検出した有効入賞球数、すなわち、第2始動保留球数が所定数(例えば、4個)液晶表示装置41に表示されることとなる。なお、この第2始動保留球数は、特別図柄2始動口45へ遊技球が入賞し、特別図柄2始動口スイッチ45a(図7参照)にて検出されると、1加算(+1)され、数字やキャラクタあるいは図柄(装飾図柄)等の特別図柄の変動表示が開始されると、1減算(-1)されるというものである。
On the other hand, a
一方、この特別図柄2始動口45は、図5に示すように、開閉部材45bを備えており、この開閉部材45bが開放した場合に遊技球が入賞し易い状態となる。この開閉部材45bは、後述する普通図柄の抽選に当選した場合に、所定回数、所定時間開放するもので、普通電動役物ソレノイド45c(図7参照)によって開閉動作が制御されている。なお、以下では、このような開閉部材45b及び普通電動役物ソレノイド45cを合せた装置を普通電動役物と称することがある。
On the other hand, as shown in FIG. 5, the
他方、特別図柄1始動口44の右側には、図5に示すように、入賞装置46が配置されている。この入賞装置46は、後述する特別図柄の抽選に当選したとき、すなわち大当たりしたことにより発生する特別遊技状態の際、開閉扉46aにて閉止されている図示しない大入賞口が開放するように開閉扉46aが特別電動役物ソレノイド46b(図7参照)によって駆動制御され、遊技球が大入賞口(図示せず)に入球可能となる。なお、この大入賞口(図示せず)に入球した遊技球は入賞球として大入賞口(図示せず)内部に設けられている大入賞口スイッチ46c(図7参照)によって検出される。
On the other hand, a winning
一方、特別図柄の抽選に当選していないとき、すなわち、特別遊技状態でない場合は、特別電動役物ソレノイド46b(図7参照)によって開閉扉46aが駆動制御され、大入賞口(図示せず)が閉止される。これにより、大入賞口(図示せず)内に遊技球が入球することができなくなる。なお、以下では、このような開閉扉46a及び特別電動役物ソレノイド46bを合せた装置を特別電動役物と称することがある。
On the other hand, when the special pattern lottery is not won, that is, when the special game state is not set, the opening/closing door 46a is driven and controlled by the special electric
他方、液晶表示装置41の右上部には、図5に示すように、ゲートからなる普通図柄始動口47が配置され、その内部には、遊技球の通過を検出する普通図柄始動口スイッチ47a(図7参照)が設けられている。また、上記入賞装置46の右側及び上記特別図柄1始動口44の左側には、一般入賞口48が夫々配置されている。この一般入賞口48は、上記入賞装置46の右側に配置されている右上一般入賞口48aと、上記特別図柄1始動口44の左側に配置されている左上一般入賞口48bと、左中一般入賞口48cと、左下一般入賞口48dとで構成されている。そして、右上一般入賞口48aの内部には遊技球の通過を検出する右上一般入賞口スイッチ48a1(図7参照)が設けられ、左上一般入賞口48bの内部には遊技球の通過を検出する左上一般入賞口スイッチ48b1(図7参照)が設けられ、左中一般入賞口48cの内部には遊技球の通過を検出する左中一般入賞口スイッチ48c1(図7参照)が設けられ、左下一般入賞口48dの内部には遊技球の通過を検出する左下一般入賞口スイッチ48d1(図7参照)が設けられている。
On the other hand, in the upper right part of the liquid
一方、特別図柄1始動口44の真下には、入賞することなく遊技領域40最下流部まで流下してきた遊技球(アウト球)が入球されるアウト口49が配置されている。なお、このアウト口49に入球した遊技球は非入賞球として内部に設けられているアウト口スイッチ49a(図7参照)によって検出され、さらに、上述した入賞球も遊技盤4の背面側を通って最下流部まで流下することとなるため、アウト口スイッチ49a(図7参照)によって検出されることとなる。それゆえ、アウト口スイッチ49a(図7参照)は、排出されたアウト総数、すなわち、発射ハンドル16にて遊技領域40に発射された遊技球と同数の遊技球を検出することとなる。
On the other hand, directly below the
他方、上記遊技盤4の遊技領域40の右下周縁部には、7セグメントが3個並べて構成されており、そのうち2個の7セグメントが特別図柄表示装置50であり、他の7セグメントは特別図柄1や特別図柄2の始動保留球数を表示するものである。この特別図柄表示装置50は、図5に示すように、特別図柄1表示装置50aと特別図柄2表示装置50bとで構成されており、その特別図柄1表示装置50aの左側には、2個のLEDからなる普通図柄表示装置51が設けられている。なお、上記遊技盤4の遊技領域40には、図示はしないが複数の遊技釘が配置され、遊技球の落下方向変換部材としての風車52が配置されている。
On the other hand, in the lower right peripheral portion of the
ところで、上記の説明においては、発射ハンドル16にて遊技領域40に発射された遊技球と同数の遊技球を検出するにあたり、アウト口スイッチ49a(図7参照)にて、排出されたアウト総数を検出する例を示したが、それに限らず、図6に示すように、球誘導レールURに遊技球検出スイッチUR1aを備えた遊技球検出装置UR1を設けても良い。すなわち、図6に示すように、発射ハンドル16にて遊技領域40に向って発射された遊技球YKは、球誘導レールURに沿って矢印Y1方向に移動することとなる。そして、その矢印Y1方向に移動した遊技球YKが、遊技球検出スイッチUR1aに接触すると、遊技球検出装置UR1は、発射ハンドル16にて発射された遊技球を検出することとなる。しかして、このようにしても、発射ハンドル16にて遊技領域40に発射された遊技球と同数の遊技球を検出することができる。
By the way, in the above description, in detecting the same number of game balls as the game balls shot into the
ところで、このような遊技球検出スイッチUR1aを備えた遊技球検出装置UR1を設けるにあたり、発射ハンドル16にて遊技領域40に向って発射された遊技球YKが球誘導レールURの先端部URaに移動し、遊技領域40内に到達すれば何ら問題はないが、発射ハンドル16にて遊技領域40に向って発射された遊技球YKの勢いが弱く、図6に示す矢印Y2方向に遊技球YKが落下し、球誘導レールUR内に侵入した際、遊技球YKは、図6に示す矢印Y3方向・矢印Y4方向に移動しながら、遊技領域40内に到達することとなる。この際、球誘導レールUR内に侵入した遊技球YKが遊技球検出装置UR1に接触(衝突)すると、遊技球検出装置UR1が遊技球検出スイッチUR1aに遊技球YKが接触したと勘違いし、誤検出する可能性がある。
By the way, in providing the game ball detection device UR1 equipped with such a game ball detection switch UR1a, the game ball YK shot toward the
そこで、本実施形態においては、遊技球検出装置UR1に遊技球YKが接触(衝突)しないよう、遊技球検出装置UR1の上部側(図示右側)、すなわち、球誘導レールUR内に位置する部分を覆うように防護壁UR2を設けている。これにより、球誘導レールUR内に侵入した遊技球YKは、遊技球検出装置UR1に接触(衝突)せず、防護壁UR2に接触(衝突)することとなるから、誤検出を防止することできる。 Therefore, in this embodiment, in order to prevent the game ball YK from contacting (colliding) with the game ball detection device UR1, the upper side (the right side in the drawing) of the game ball detection device UR1, that is, the portion located inside the ball guide rail UR is A protective wall UR2 is provided to cover it. As a result, the game ball YK that has entered the ball guide rail UR does not contact (collide) with the game ball detection device UR1, but contacts (collides) with the protective wall UR2, thereby preventing erroneous detection. .
一方、誤検出を防止する方法として、防護壁UR2を設けず、プログラム処理で対応することも可能である。すなわち、遊技球検出装置UR1が遊技球検出スイッチUR1aに遊技球YKが接触したことを検出した後、一定期間(例えば、400ms)検出無効期間を設けるようにしても良い。このようにしても、球誘導レールUR内に侵入した遊技球YKが遊技球検出装置UR1に接触(衝突)する場合、上記の検出無効期間内に接触(衝突)する可能性が高いため、もって、誤検出を防止することができる。なお、この一定期間(例えば、400ms)は、発射ハンドル16にて遊技領域40に発射される間隔(例えば、600ms)よりも短くするのが好ましい。また、遊技球検出装置UR1に何らかの不具合が発生し、例えば、1000ms区間、遊技球検出装置UR1が遊技球検出スイッチUR1aに遊技球YKが接触したことを検出し続けていた場合、遊技球検出装置UR1に何らかの不具合が発生したとし、エラーを報知するようにしても良い。
On the other hand, as a method of preventing erroneous detection, it is also possible to deal with it by program processing without providing the protection wall UR2. That is, after the game ball detection device UR1 detects that the game ball YK has touched the game ball detection switch UR1a, a certain period (for example, 400 ms) of a detection invalid period may be provided. Even with this arrangement, when the game ball YK that has entered the ball guide rail UR contacts (collides) with the game ball detection device UR1, there is a high possibility of contact (collision) within the detection invalid period. , erroneous detection can be prevented. It should be noted that this certain period of time (for example, 400 ms) is preferably shorter than the interval (for example, 600 ms) at which shots are fired into the
<パチンコ遊技機背面の外観構成の説明>
かくして、このように構成されるパチンコ遊技機1の背面は、図4に示すように、遊技盤装着枠18を覆って遊技盤YBを裏側から押さえる枠体状の裏機構板53が取付けられている。そして、この裏機構板53の上部右側寄りには、パチンコホール側島設備の遊技球補給装置(図示せず)から供給される遊技球を貯留する遊技球貯留タンク54が設けられ、さらには、その遊技球貯留タンク54から球を導出するタンクレール55が設けられている。
<Description of the exterior configuration of the back of the pachinko machine>
As shown in FIG. 4, the rear surface of the
このタンクレール55の傾斜下端には、払出し装置56と払出し通路57とが装着されており、遊技球が大入賞口(図示せず)等の入賞口に入賞した時、又は、遊技球貸出装置(図示せず)から球貸し指令があった時に、遊技球貯留タンク54内の遊技球を、タンクレール55を経て払出し装置56により払出し、その遊技球を、払出し通路57を経て上受け皿9(図1参照)に案内するようになっている。
A
また、裏機構板53の略中央には、遊技盤YBの裏側に着脱自在に装着された透明の裏カバー58(図3も参照)が装着されており、この裏カバー58内には、演出制御基板90を収納した透明の演出制御基板ケース90aと、液晶制御基板120を収納した透明の液晶基板ケース120aとが着脱自在に設けられている。そして、演出制御基板ケース90aの下方には、内部に主制御基板60を収納した透明な主制御基板ケース60aが着脱自在に設けられ、この主制御基板ケース60aの下方には、払出制御基板70を収納した透明な払出制御基板ケース70aが着脱自在に設けられている。さらに、この主制御基板ケース60aの下方には、電源基板130を収納した電源基板ケース130aが着脱自在に設けられている。
In addition, a transparent back cover 58 (see also FIG. 3) detachably attached to the back side of the game board YB is attached to substantially the center of the
<制御装置の説明>
次に、上記のような外観構成からなるパチンコ遊技機1内に設けられる遊技の進行状況に応じて電子制御を行う制御装置を、図7を用いて説明する。この制御装置は、図7に示すように、遊技動作全般の制御を司る主制御基板60と、その主制御基板60からの制御コマンドに基づいて遊技球を払出す払出制御基板70と、画像と光と音についての制御を行うサブ制御基板80とで主に構成されている。なお、サブ制御基板80は、図7に示すように、演出制御基板90と、装飾ランプ基板100と、液晶制御基板120とで構成されている。
<Description of the control device>
Next, a control device that performs electronic control according to the progress of a game provided in the
<主制御基板に関する説明>
主制御基板60は、主制御CPU600aと、一連の遊技制御手順を記述した遊技プログラム等を格納した主制御ROM600bと、作業領域やバッファメモリ等として機能する主制御RAM600cとで構成されたワンチップマイクロコンピュータ600と、低確時(当たり抽選確率が通常の低確率状態)に幾らの賞球がされたかの比率等に関する内容を表示する7セグメントからなる計測表示装置610と、遊技者に有利な特別遊技状態を発生させる確率の設定内容を表示する7セグメントからなる設定表示装置620と、RAMクリアスイッチ630と、設定キースイッチ640と、設定変更スイッチ650と、を主に搭載している。
<Description on the main control board>
The
そして、このように構成される主制御基板60には、払出モータMを制御して遊技球を払出す払出制御基板70が接続されている。そしてさらには、特別図柄1始動口44への入賞を検出する特別図柄1始動口スイッチ44aと、特別図柄2始動口45への入賞を検出する特別図柄2始動口スイッチ45aと、普通図柄始動口47の通過を検出する普通図柄始動口スイッチ47aと、一般入賞口48(右上一般入賞口48a,左上一般入賞口48b,左中一般入賞口48c,左下一般入賞口48d)への入賞を検出する右上一般入賞口スイッチ48a1,左上一般入賞口スイッチ48b1,左中一般入賞口スイッチ48c1,左下一般入賞口スイッチ48d1と、開閉扉46aによって開放又は閉止される大入賞口(図示せず)の入賞を検出する大入賞口スイッチ46cと、発射ハンドル16にて遊技領域40に発射された遊技球と同数の遊技球を検出可能なアウト口スイッチ49aとが接続されている。またさらには、開閉部材45bの動作を制御する普通電動役物ソレノイド45cと、開閉扉46aの動作を制御する特別電動役物ソレノイド46bと、特別図柄1表示装置50aと、特別図柄2表示装置50bと、普通図柄表示装置51とが接続されている。
A
このように構成される主制御基板60は、特別図柄1始動口スイッチ44a又は特別図柄2始動口スイッチ45aあるいは普通図柄始動口スイッチ47aからの信号を主制御CPU600aにて受信すると、遊技者に有利な特別遊技状態を発生させるか(いわゆる「当たり」)、あるいは、遊技者に有利な特別遊技状態を発生させないか(いわゆる「ハズレ」)の抽選を行い、その抽選結果である当否情報に応じて特別図柄の変動パターンや停止図柄あるいは普通図柄の表示内容を決定し、その決定した情報を特別図柄1表示装置50a又は特別図柄2表示装置50bあるいは普通図柄表示装置51に送信する。これにより、特別図柄1表示装置50a又は特別図柄2表示装置50bあるいは普通図柄表示装置51に抽選結果が表示されることとなる。そしてさらに、主制御基板60、すなわち、主制御CPU600aは、その決定した情報を含む演出制御コマンドDI_CMDを生成し、演出制御基板90に送信する。なお、主制御基板60、すなわち、主制御CPU600aが、特別図柄1始動口スイッチ44a、特別図柄2始動口スイッチ45a、右上一般入賞口スイッチ48a1、左上一般入賞口スイッチ48b1、左中一般入賞口スイッチ48c1、左下一般入賞口スイッチ48d1、大入賞口スイッチ46cからの信号を受信した場合は、遊技者に幾らの遊技球を払い出すかを決定し、その決定した情報を含む払出制御コマンドPAY_CMDを払出制御基板70に送信することで、払出制御基板70が遊技者に遊技球を払出すこととなる。
The
また、抽選を行った結果、普通図柄の抽選に当選した場合、開閉部材45bが所定回数、所定時間開放するように普通電動役物ソレノイド45cが駆動制御され、特別図柄の抽選に当選した場合、特別電動役物ソレノイド46bが大入賞口(図示せず)を開放するように制御される。
As a result of the lottery, when the lottery for the normal pattern is won, the normal
一方、主制御基板60、すなわち、主制御CPU600aは、特別図柄1始動口スイッチ44a、特別図柄2始動口スイッチ45a、右上一般入賞口スイッチ48a1、左上一般入賞口スイッチ48b1、左中一般入賞口スイッチ48c1、左下一般入賞口スイッチ48d1、大入賞口スイッチ46cからの信号を受信する毎に、賞球数を計測し、アウト口スイッチ49aからの信号を受信する毎に、排出された遊技球の総数を計測する。そして、主制御基板60、すなわち、主制御CPU600aは、この計測した賞球数及び排出された遊技球の総数に基づき、低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)を計測表示装置610に出力する。これにより、計測表示装置610に低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)が表示されることとなる。
On the other hand, the
この計測表示装置610についてより詳しく説明すると、計測表示装置610は、図8(a)に示すように、7セグメントからなる第1の計測表示装置610Aと、7セグメントからなる第2の計測表示装置610Bと、7セグメントからなる第3の計測表示装置610Cと、7セグメントからなる第4の計測表示装置610Dと、で構成されており、この第1の計測表示装置610A、第2の計測表示装置610B、第3の計測表示装置610C、第4の計測表示装置610Dに低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)が表示されることとなる。
To explain this
一方、設定表示装置620は、図8(b)に示すように、1個の7セグメントからなり、遊技者に有利な特別遊技状態を発生させる確率の設定内容を、例えば、「1」~「6」の6段階で表示することができるようになっている。しかして、このような設定内容を変更するにあたっては、設定キースイッチ640に専用キーを挿入し、ONされると、設定変更スイッチ650にて、遊技者に有利な特別遊技状態を発生させる確率の設定内容を例えば「1」~「6」の6段階で設定変更することができるようになっている(例えば、設定「6」が、遊技者に有利な特別遊技状態を発生させる確率が最も高く、設定「1」が、遊技者に有利な特別遊技状態を発生させる確率が最も低くなっている)。そして、その設定変更内容は、設定表示装置620に表示され、設定変更内容が確定すると、7セグメントの右下側にあるドットが点灯し、設定内容が確定したことが表示されるようになっている。なお、以下の説明において、設定変更スイッチ650は、遊技者に有利な特別遊技状態を発生させる確率の設定内容を変更させる機能(設定変更機能)と、その設定変更内容を確定させる機能(設定変更完了機能)を両方合わせ持つことを前提に説明するが、勿論、設定変更スイッチ650は、遊技者に有利な特別遊技状態を発生させる確率の設定内容を変更させる機能だけを備え、その設定変更内容の確定は、別のスイッチを設けて行うようにしても良い。
On the other hand, the
他方、RAMクリアスイッチ630は、RAMクリアスイッチ630が押下されると、主制御RAM600c(図7参照)のメモリ領域は全てクリアされず、一部のメモリ領域のみクリアされるようになっている。すなわち、主制御RAM600cは、図9(a)に示すように、メモリ空間アドレス0000H番地~0200H番地のうち、メモリ空間アドレス0000H番地~0100H番地までが、抽選処理等の遊技処理時の作業領域等として使用される通常用RAM領域600caで、メモリ空間アドレス0100H番地~0110H番地までが、未使用領域600cbで、メモリ空間アドレス0110H番地~0130H番地までが、抽選処理等の遊技処理時に使用される通常用スタック領域600ccで、メモリ空間アドレス0130H番地~0150H番地までが、未使用領域600cdで、メモリ空間アドレス0150H番地~0190H番地までが、主制御基板60、すなわち、主制御CPU600にて計測した賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を記憶する計測用RAM領域600ceで、メモリ空間アドレス0190H番地~01E0H番地までが、未使用領域600cfで、メモリ空間アドレス01E0H番地~0200H番地までが、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する等の際に使用される計測用スタック領域600cgで構成されている。
On the other hand, when the RAM
かくして、このように構成された主制御RAM600cは、RAMクリアスイッチ630が押下された際、主制御RAM600cの計測用RAM領域600ce,計測用スタック領域600cgはクリアされず、通常用RAM領域600ca,通常用スタック領域600ccがクリアされるようになっている。しかして、このようにすれば、計測した賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等が誤ってクリアされる事態を防止することができる。なお、本実施形態においては、RAMクリアスイッチ630が押下された際、通常用RAM領域600ca,通常用スタック領域600ccがクリアされる例を示したが、それに限らず、未使用領域600cb,600cdを含めて、メモリ空間アドレス0000H番地~0150H番地までクリアされるようにしてもよい。
Thus, in the
また、通常用RAM領域600ca,通常用スタック領域600cc,計測用RAM領域600ce,計測用スタック領域600cgの各領域を下1桁が0から始まる番地から開始し、通常用RAM領域600caと通常用スタック領域600ccとの間に未使用領域600cbを設け、又、通常用スタック領域600ccと計測用RAM領域600ceとの間に未使用領域600cdを設け、さらに、計測用RAM領域600ceと計測用スタック領域600cgとの間に未使用領域600cfを設けることによって、領域毎の区別をつけるようにしている。これにより、プログラムが暴走した際に、他の領域に影響が出ないようにすることができる。 The normal RAM area 600ca, the normal stack area 600cc, the measurement RAM area 600ce, and the measurement stack area 600cg are each started from an address whose last digit is 0, and the normal RAM area 600ca and the normal stack are An unused area 600cb is provided between the area 600cc, an unused area 600cd is provided between the normal stack area 600cc and the measurement RAM area 600ce, and a measurement RAM area 600ce and measurement stack area 600cg are provided. By providing an unused area 600cf between . This prevents other areas from being affected when the program runs out of control.
一方、主制御ROM600bは、図9(b)に示すように、メモリ空間アドレス8000H番地~A800H番地のうち、メモリ空間アドレス8000H番地~8B90H番地までが、抽選処理等の遊技処理時に使用されるプログラムが格納されている通常用プログラム領域600baで、メモリ空間アドレス8B90H番地~9000H番地までが、未使用領域600bbで、メモリ空間アドレス9000H番地~9A00H番地までが、抽選処理等の遊技処理時に使用されるデータが格納されている通常用データ領域600bcで、メモリ空間アドレス9A00H番地~9C00H番地までが、未使用領域600bdで、メモリ空間アドレス9C00H番地~A010H番地までが、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムが格納されている計測用プログラム領域600beで、メモリ空間アドレスA010H番地~A200H番地までが、未使用領域600bfで、メモリ空間アドレスA200H番地~A320H番地までが、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるデータが格納されている計測用データ領域600bgで、メモリ空間アドレスA320H番地~A780H番地までが、未使用領域600bhで、メモリ空間アドレスA780H番地~A800H番地までが、ベクタテーブル領域600biで構成されている。なお、このベクタテーブル領域600biは、後述する複数のコール命令のうち、CALL_S命令で呼び出すことができるサブルーチンのテーブルアドレスが格納されているものである。
On the other hand, as shown in FIG. 9B, the
しかして、このように構成された主制御RAM600cは、通常用プログラム領域600ba,通常用データ領域600bc,計測用プログラム領域600be,計測用データ領域600bg,ベクタテーブル領域600biの各領域を下1桁が0から始まる番地から開始し、通常用プログラム領域600baと通常用データ領域600bcとの間に未使用領域600bbを設け、又、通常用データ領域600bcと計測用プログラム領域600beとの間に未使用領域600bdを設け、さらに、計測用プログラム領域600beと計測用データ領域600bgとの間に未使用領域600bfを設け、そしてさらに、計測用データ領域600bgとベクタテーブル領域600biとの間に未使用領域600bhを設けることによって、領域毎の区別をつけるようにしている。これにより、プログラムが暴走した際に、他の領域に影響が出ないようにすることができる。
The
<払出制御基板に関する説明>
払出制御基板70は、上記主制御基板60(主制御CPU600a)からの払出制御コマンドPAY_CMDを受信し、その受信した払出制御コマンドPAY_CMDに基づいて払出モータ信号を生成する。そして、その生成した払出モータ信号にて、払出モータMを制御し、遊技者に遊技球を払出す。そしてさらに、払出制御基板70は、遊技球の払出動作を示す賞球計数信号や払出動作の異常に係るステイタス信号を送信し、遊技者の操作に応答して遊技球を発射させる発射制御基板71の動作を開始又は停止させる発射制御信号を送信する処理を行う。
<Description on payout control board>
The
<演出制御基板に関する説明>
演出制御基板90は、上記主制御基板60(主制御CPU600a)からの演出制御コマンドDI_CMDを受けて各種演出を実行制御する演出制御CPU900と、演出制御手順を記述した制御プログラム等が格納されているフラッシュメモリからなる演出制御ROM910と、作業領域やバッファメモリ等として機能する演出制御RAM920とで構成されている。そしてさらに、演出制御基板90は、所望のBGMや効果音を生成する音LSI930と、BGMや効果音等の音データ等が予め格納されている音ROM940とが搭載されている。
<Description on production control board>
The
このように構成される演出制御基板90には、ランプ演出効果を現出するLEDランプ等の装飾ランプが搭載されている装飾ランプ基板100が接続され、さらに、内蔵されているランプ(図示せず)点灯時に遊技者が押下することにより演出効果を変化させることができる押しボタン式の演出ボタン装置13が接続され、BGMや効果音等を発するスピーカ17が接続されている。そしてさらに、演出制御基板90には、遊技の進行に伴い所定の演出動作を行う可動役物装置43が接続され、各種設定が可能な設定ボタン15が接続され、液晶表示装置41を制御する液晶制御基板120が接続されている。なお、言うまでもないが、この装飾ランプ基板100には、上・左・右・左上可動役物43a~43dに配置されている装飾ランプも搭載されている。
The
かくして、このように構成される演出制御基板90は、主制御基板60(主制御CPU600a)より送信される大当たり抽選結果(大当たりかハズレの別)に基づく特別図柄変動パターン、現在の遊技状態、第1始動保留球数、第2始動保留球数、抽選結果に基づき停止させる装飾図柄等に必要となる基本情報を含んだ演出制御コマンドDI_CMDを演出制御CPU900にて受信する。そして、演出制御CPU900は、受信した演出制御コマンドDI_CMDに対応した演出パターンを、演出制御ROM910内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンを実行指示する制御信号を演出制御RAM920内に一時的に格納する。
Thus, the
そして、演出制御CPU900は、演出制御RAM920内に格納しておいた演出パターンを実行指示する制御信号のうち、音に関する制御信号を音LSI930に送信する。これを受けて音LSI930は、当該制御信号に対応する音データを音ROM940より読み出し、スピーカ17に出力する。これにより、スピーカ17より上記決定された演出パターンに対応したBGMや効果音が発せられることとなる。
Then, the
また、演出制御CPU900は、演出制御RAM920内に格納しておいた演出パターンを実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板100に送信する。これにより、装飾ランプ基板100が、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯する制御を行うため、上記決定された演出パターンに対応したランプ演出が実行されることとなる。
Also, the
さらに、演出制御CPU900は、演出制御RAM920内に格納しておいた演出パターンを実行指示する制御信号のうち、画像に関する液晶制御コマンドLCD_CMDを液晶制御基板120に送信する。これにより、液晶制御基板120が、当該液晶制御コマンドLCD_CMDに基づく画像を表示させるように液晶表示装置41を制御することにより、上記決定された演出パターンに対応した画像が液晶表示装置41に表示されることとなる。なお、液晶制御基板120には演出内容に沿った画像を表示するための種々の画像データが記憶されており、さらに、演出出力全般の制御を担うVDP(Video Display Processor)が搭載されている。
Furthermore, the
またさらに、演出制御CPU900は、演出制御RAM920内に格納しておいた演出パターンを実行指示する制御信号のうち、可動役物に関する制御信号を可動役物装置43に送信する。これにより、可動役物装置43は、上記決定された演出パターンに対応した可動をすることとなる。
Furthermore, the
ところで、上記説明した各基板への電源供給は、図7に示す電源基板130より供給されている。この電源基板130は、電圧生成部1300と、電圧監視部1310と、システムリセット生成部1320とを含んで構成されている。この電圧生成部1300は、遊技店に設置された図示しない変圧トランスから供給される外部電源である交流電圧AC24Vを受けて複数種類の直流電圧を生成するもので、その生成された直流電圧は、図示はしないが各基板に供給されている。
By the way, the power supply to each board described above is supplied from the
また、電圧監視部1310は、上記交流電圧AC24Vの電圧を監視するもので、この電圧が遮断されたり、停電が発生したりして電圧異常を検出した場合に電圧異常信号ALARMを主制御基板60に出力するものである。なお、電圧異常信号ALARMは、電圧異常時には「L」レベルの信号を出力し、正常時には「H」レベルの信号を出力する。
In addition, the
また、一方、システムリセット生成部1320は、電源投入時のシステムリセット信号を生成するもので、その生成されたシステムリセット信号は、図示はしないが各基板に出力されている。
On the other hand, the system reset
<主制御ROMのデータ配置の説明>
ここで、上記説明した主制御ROM600bのうち、通常用データ領域600bc,計測用データ領域600bgに格納されるデータ配置について、図10を参照して説明することとする。
<Description of data arrangement in main control ROM>
Here, the arrangement of data stored in the normal data area 600bc and the measurement data area 600bg of the
従来、主制御ROM600bのデータ配置は、1バイト単位で構成されている為、データの種類によっては、1バイトを構成する8ビットの内、未使用となるビットも含めたデータ配置となっている。この点、図10(a)に示す、特別図柄の変動時間データのデータ配置を例にして、具体的に説明することとする。
Conventionally, the data arrangement of the
特別図柄の変動時間のデータとして、10秒の第1変動時間と、30秒の第2変動時間と、50秒の第3変動時間と、120秒の第4変動時間とが存在したとする。この際、10秒は、10000ミリ秒で、後述するように4ms毎に定期的にタイマ割込みが発生すると1カウントすることとなるため、10000/4=2500となり、これを16進数にすると、09C4Hとなる。しかして、このようにして計算していくと、30秒は、1D4CH、50秒は、30D4H、120秒は、7530Hとなる。 It is assumed that there are a first variation time of 10 seconds, a second variation time of 30 seconds, a third variation time of 50 seconds, and a fourth variation time of 120 seconds as the data of the variation time of the special symbols. At this time, 10 seconds is 10,000 milliseconds, and as will be described later, when a timer interrupt occurs periodically every 4 ms, it counts by 1. Therefore, 10,000/4=2500, which is hexadecimal, is 09C4H. becomes. Therefore, when calculated in this way, 30 seconds is 1D4CH, 50 seconds is 30D4H, and 120 seconds is 7530H.
かくして、10秒に相当する第1変動時間データは、09C4Hであって、2進数にすると、「0000 1001 1100 0100」となり、図10(a)に示すように、主制御ROM600bの通常用データ領域600bcにおける従来の変動時間データのデータ配置では、メモリ空間アドレス9000H番地に、下位8ビットである「1100 0100」が配置され、次のメモリ空間アドレス9001H番地に、上位8ビットである「0000 1001」が配置されることとなる。
Thus, the first variable time data corresponding to 10 seconds is 09C4H, which when converted to binary numbers is "0000 1001 1100 0100", and as shown in FIG. In the conventional data arrangement of variable time data in 600bc, the lower 8 bits "1100 0100" are arranged at
次いで、30秒に相当する第2変動時間データは、1D4CHであって、2進数にすると、「0001 1101 0100 1100」となり、図10(a)に示すように、主制御ROM600bの通常用データ領域600bcにおける従来の変動時間データのデータ配置では、メモリ空間アドレス9002H番地に、下位8ビットである「0100 1100」が配置され、次のメモリ空間アドレス9003H番地に、上位8ビットである「0001 1101」が配置されることとなる。
Next, the second variable time data corresponding to 30 seconds is 1D4CH, which when converted to a binary number is "0001 1101 0100 1100", and as shown in FIG. In the conventional data arrangement of variable time data in 600bc, the lower 8 bits "0100 1100" are arranged at
次いで、50秒に相当する第3変動時間データは、30D4Hであって、2進数にすると、「0011 0000 1101 0100」となり、図10(a)に示すように、主制御ROM600bの通常用データ領域600bcにおける従来の変動時間データのデータ配置では、メモリ空間アドレス9004H番地に、下位8ビットである「1101 0100」が配置され、次のメモリ空間アドレス9005H番地に、上位8ビットである「0011 0000」が配置されることとなる。
Next, the third variable time data corresponding to 50 seconds is 30D4H, which when converted to a binary number is "0011 0000 1101 0100", and as shown in FIG. In the conventional data arrangement of variable time data in 600bc, the lower 8 bits "1101 0100" are arranged at
次いで、120秒に相当する第4変動時間データは、7530Hであって、2進数にすると、「0111 0101 0011 0000」となり、図10(a)に示すように、主制御ROM600bの通常用データ領域600bcにおける従来の変動時間データのデータ配置では、メモリ空間アドレス9006H番地に、下位8ビットである「0011 0000」が配置され、次のメモリ空間アドレス9007H番地に、上位8ビットである「0111 0101」が配置されることとなる。
Next, the fourth variable time data corresponding to 120 seconds is 7530H, which when converted to binary number is "0111 0101 0011 0000", and as shown in FIG. In the conventional data arrangement of variable time data in 600bc, the lower 8 bits "0011 0000" are arranged at the
かくして、このようにして、従来の変動時間データのデータ配置では、メモリ空間アドレス番地毎にデータが配置されることとなる。 Thus, in the conventional data arrangement of variable time data, data is arranged for each memory space address.
しかしながら、このようなデータ配置では、10秒の第1変動時間と、30秒の第2変動時間と、50秒の第3変動時間と、120秒の第4変動時間いずれも、最上位ビットである16ビット目が何れも「0」であるから、本来であれば、変動時間データとして15ビットしか必要でないにもかかわらず、無駄な1ビットを、図10(a)に示すように、メモリ空間アドレス9001H番地の8ビット目、メモリ空間アドレス9003H番地の8ビット目、メモリ空間アドレス9005H番地の8ビット目、メモリ空間アドレス9007H番地の8ビット目に配置していることとなる。それゆえ、従来のデータ配置では、主制御ROM600bのデータ配置を効率的に行えておらず、もって、主制御ROM600bのデータ容量の削減を図れていないといった問題があった。
However, with such data arrangement, the first variation time of 10 seconds, the second variation time of 30 seconds, the third variation time of 50 seconds, and the fourth variation time of 120 seconds are all Since all the 16th bits are "0", even though only 15 bits are required as the variable time data, the useless 1 bit is stored in the memory as shown in FIG. 10(a). They are arranged at the 8th bit of
そこで、本実施形態においては、主制御ROM600bのデータ配置を効率的に行うために、通常用データ領域600bcに格納されるデータを、図10(b)に示すようなデータ配置としている。
Therefore, in this embodiment, the data stored in the normal data area 600bc is arranged as shown in FIG. 10(b) in order to efficiently arrange the data in the
すなわち、10秒に相当する第1変動時間データは、09C4Hであって、使用する15ビット分のデータを2進数で表すと、「000 1001 1100 0100」となり、図10(b)に示すように、メモリ空間アドレス9000H番地に、下位8ビットである「1100 0100」が配置され、次のメモリ空間アドレス9001H番地に、上位7ビットである「000 1001」が配置されることとなる。
That is, the first variable time data corresponding to 10 seconds is 09C4H, and the 15-bit data to be used is expressed in binary notation as "000 1001 1100 0100", as shown in FIG. 10(b). , the lower 8 bits "1100 0100" are arranged at the
次いで、30秒に相当する第2変動時間データは、1D4CHであって、使用する15ビット分のデータを2進数で表すと、「001 1101 0100 1100」となり、図10(b)に示すように、メモリ空間アドレス9001H番地の8ビット目に、下位8ビットのうち最下位ビットである「0」が配置され、次のメモリ空間アドレス9002H番地に、下位8ビットのうち残り7ビットである「0100 110」が配置され、メモリ空間アドレス9002H番地の8ビット目に、上位7ビットのうち、最下位ビットである「1」が配置され、次のメモリ空間アドレス9003H番地に、上位7ビットのうち残り6ビットである「001 110」が配置されることとなる。
Next, the second variable time data corresponding to 30 seconds is 1D4CH, and when the 15-bit data to be used is expressed in binary, it becomes "001 1101 0100 1100", as shown in FIG. 10(b). , the least significant bit "0" of the lower 8 bits is arranged at the 8th bit of the
次いで、50秒に相当する第3変動時間データは、30D4Hであって、使用する15ビット分のデータを2進数で表すと、「011 0000 1101 0100」となり、図10(b)に示すように、メモリ空間アドレス9003H番地の8ビット目、7ビット目に、下位8ビットのうち下位2ビットである「00」が配置され、次のメモリ空間アドレス9004H番地に、下位8ビットのうち残り6ビットである「1101 01」が配置され、メモリ空間アドレス9004H番地の8ビット目、7ビット目に、上位7ビットのうち、下位2ビットである「00」が配置され、次のメモリ空間アドレス9005H番地に、上位7ビットのうち残り5ビットである「011 00」が配置されることとなる。
Next, the third variable time data corresponding to 50 seconds is 30D4H, and the 15-bit data to be used is expressed in binary notation as "011 0000 1101 0100", as shown in FIG. 10(b). , the 8th and 7th bits of the
次いで、120秒に相当する第4変動時間データは、7530Hであって、使用する15ビット分のデータを2進数で表すと、「111 0101 0011 0000」となり、図10(b)に示すように、メモリ空間アドレス9005H番地の8ビット目~6ビット目に、下位8ビットのうち下位3ビットである「000」が配置され、次のメモリ空間アドレス9006H番地に、下位8ビットのうち残り5ビットである「0011 0」が配置され、メモリ空間アドレス9006H番地の8ビット目~6ビット目に、上位7ビットのうち、下位3ビットである「101」が配置され、次のメモリ空間アドレス9007H番地に、上位7ビットのうち残り4ビットである「111 0」が配置されることとなる。
Next, the fourth fluctuation time data corresponding to 120 seconds is 7530H, and the 15-bit data to be used is expressed in binary notation as "111 0101 0011 0000", as shown in FIG. 10(b). , the lower 3 bits "000" of the lower 8 bits are arranged at the 8th to 6th bits of the
かくして、このようにして、連続するアドレス番地に跨ってデータを配置するようにし、且つ、データを詰めて配置するようにすれば、メモリ空間アドレス9007H番地の8ビット目~5ビット目が空き領域となり、もって、データ容量の削減を図ることができることとなる。
Thus, by arranging the data across consecutive address addresses and arranging the data closely, the 8th to 5th bits of the
ところで、図10(b)に示すようなデータ配置をするにあたっては、例えば、図11(a)に示すようなプログラムが用いられる。以下、このプログラムについて説明することとする。なお、このプログラムは、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているものである。
By the way, in arranging the data as shown in FIG. 10(b), for example, a program as shown in FIG. 11(a) is used. This program will be described below. This program is stored in the normal program area 600ba of the
図11(a)に示すように、まず、データ配置を行う通常用データ領域600bc(図9(b)参照)の先頭のメモリ空間アドレス番地9000Hを定義し(ORG 9000H)、その定義したラベルをD_HEDOUTIMEとする。
As shown in FIG. 11(a), first, the top
次いで、格納するサイズを15ビットにする宣言をし(START EQU SIZE{15})、10秒の第1変動時間に相当するデータ09C4H、30秒の第2変動時間に相当するデータ1D4CH、50秒の第3変動時間に相当するデータ30D4H、120秒の第4変動時間に相当するデータ7530Hを記載し、格納するサイズを15ビットにするデータがここまでであることを宣言する(END EQU SIZE)。これにより、プログラムをアセンブルしてROMデータが作成される際、通常用データ領域600bc(図9(b)参照)に、図10(b)に示すように、上記プログラムに記載したデータが格納されていくこととなる。
Next, the storage size is declared to be 15 bits (START EQU SIZE {15}), data 09C4H corresponding to the first variation time of 10 seconds, data 1D4CH corresponding to the second variation time of 30 seconds, and 50 seconds Write data 30D4H corresponding to the third variation time of , and
かくして、このようにプログラムで格納するサイズを指定したデータ配置にすることによって、図10(b)に示すようなデータ配置がされることとなる。なお、09C4H、1D4CH、30D4H、7530Hのデータは16ビット形式で記載しているものの、格納するサイズを15ビットにする宣言をしていることから、プログラムをアセンブルしてROMデータが作成される際、図10(b)に示すように、9000H番地を先頭に15ビット分のデータが格納されていくこととなる。
Thus, the data arrangement as shown in FIG. 10(b) is achieved by setting the data arrangement in such a manner that the size to be stored is specified by the program. Although the data of 09C4H, 1D4CH, 30D4H, and 7530H are described in 16-bit format, since the storage size is declared to be 15 bits, when the program is assembled and ROM data is created, , as shown in FIG. 10(b), 15-bit data is stored starting from
一方、主制御ROM600bの通常用データ領域600bc(図9(b)参照)に格納されているデータを取得するにあたっては、例えば、図11(b)に示すようなプログラムが用いられる。以下、このプログラムについて説明することとする。なお、このプログラムは、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているものである。
On the other hand, to obtain the data stored in the normal data area 600bc (see FIG. 9(b)) of the
まず、このプログラムの処理が開始される前の処理として、主制御CPU600aにて特別図柄の変動パターン(特別図柄の変動時間)抽選が行われ、この抽選の結果、120秒の第4変動時間の変動パターンが選択され、その選択された変動パターンの番号を示す「04H」が、図11(b)に示すW_HENDOUNoに格納されているものとして説明することとする。
First, as a process before the processing of this program is started, a special symbol variation pattern (special symbol variation time) lottery is performed by the
図11(b)に示すように、まず、選択された変動パターンの番号(「04H」)が格納されているW_HENDOUNoから選択された変動パターンの番号(「04H」)を取得する(LD A、(W_HENDOUNo)-1)。 As shown in FIG. 11(b), first, the selected variation pattern number (“04H”) is acquired from W_HENDOUNo in which the selected variation pattern number (“04H”) is stored (LD A, (W_HENDOUNo)-1).
次いで、取得した変動パターンの番号からディクリメント(-1)された番号(「03H」)に15をかけて、オフセット値を計算する(MUL A、15)。 Next, the number (“03H”) decremented (-1) from the obtained variation pattern number is multiplied by 15 to calculate the offset value (MUL A, 15).
次いで、呼び出すビット位置に合わせるために、上記で計算したオフセット値をインクリメント(+1)する(INC A)。 The offset value calculated above is then incremented (+1) (INC A) to match the bit position to be called.
次いで、変動時間が格納されている先頭のアドレス番地(図11(a)に示す、D_HENDOUTIME(9000H))に、上記で計算したオフセット値を加算したアドレスから15ビット分のデータをHLレジスタにセットする(LD(15) HL、D_HENDOUTIME、A)。これにより、主制御CPU600aは、図10(b)に示す、メモリ空間アドレス9000H番地からオフセット値46ビット目のデータから15ビット分のデータ、すなわち、メモリ空間アドレス9005H番地の6ビット目からメモリ空間アドレス9007H番地の4ビット目まで格納されているデータ(111 0101 0011 0000)をHLレジスタにセットすることとなる。しかして、このようにして、120秒に相当する第4変動時間データが、主制御ROM600bの通常用データ領域600bc(図9(b)参照)より取得されることとなる。なお、主制御CPU600aの内部レジスタ(Aレジスタ、HLレジスタ等)は、1バイト単位で構成されている。そのため、主制御CPU600aは、プログラム上、主制御CPU600aの内部レジスタ(Aレジスタ、HLレジスタ等)に合わせて1バイト単位で処理を行うため、2バイトのHLレジスタに15ビットのデータ(111 0101 0011 0000)をセットする際、最上位ビットに0を付加し、2バイトのHLレジスタに16ビットのデータ(0111 0101 0011 0000)をセットすることとなる。それゆえ、プログラムでは、読み込んだデータサイズが15ビットであることを気にせず、処理が行えることとなる。
Next, set the 15-bit data from the address obtained by adding the offset value calculated above to the first address (D_HENDOUTTIME (9000H) shown in FIG. 11(a)) where the fluctuation time is stored in the HL register. (LD(15) HL, D_HENDOUTTIME, A). As a result, the
ところで、本実施形態においては、通常用データ領域600bcのみを例に説明したが、もちろん、計測用データ領域600bgであっても、同様のデータ配置が可能である。また、通常用データ領域600bc,計測用データ領域600bgとして、上記説明したデータ配置の領域のみで構成しても良いし、上記説明したデータ配置の領域と、従来のデータ配置の領域とに分けて構成するようにしても良い。このようにすれば、状況に応じたプログラムを組むことができ、もって、最適なプログラム処理が可能となる。 By the way, in the present embodiment, only the normal data area 600bc has been described as an example, but of course, the same data arrangement is possible even in the measurement data area 600bg. The normal data area 600bc and the measurement data area 600bg may be composed only of the above-described data arrangement area, or may be divided into the above-described data arrangement area and the conventional data arrangement area. You may configure it. In this way, a program can be created in accordance with the situation, thereby enabling optimal program processing.
また、本実施形態においては、特別図柄の変動時間データのデータ配置を例にして説明したが、これに限らず、変動パターンの振分け値と、選択される変動パターンの番号の振分けテーブルデータ、大当りの種別抽選の振分け値と、振分けテーブルデータ、その他大当り制御に関わる設定値データなど、どのようなデータにも適用可能である。 In addition, in this embodiment, the data arrangement of the variation time data of the special symbol has been described as an example, but it is not limited to this, the distribution value of the variation pattern, the distribution table data of the selected variation pattern number, the jackpot It can be applied to any data such as the sorting value of the type lottery, sorting table data, and other set value data related to big hit control.
一方、本実施形態においては、15ビットのデータサイズを定義、すなわち、1つのデータサイズを定義する例を示したが、複数のデータに対し、それぞれ別のビットサイズを定義することも可能である。この点、変動パターン乱数の判定値と、その時選択される変動パターンの番号データを定義する場合のプログラムを例にして、図12を参照して具体的に説明する。 On the other hand, in the present embodiment, a data size of 15 bits is defined, that is, an example of defining one data size is shown, but it is also possible to define different bit sizes for a plurality of data. . This point will be described in detail with reference to FIG. 12, taking as an example a program for defining the judgment value of the variation pattern random number and the number data of the variation pattern selected at that time.
図12に示すように、当該データ配置を行う通常用データ領域600bc(図9(b)参照)の先頭のメモリ空間アドレス番地9100Hを定義し(ORG 9100H)、その定義したラベルをD_HEDOUHANTEIとする。
As shown in FIG. 12, the top
次いで、格納するサイズを14ビット、4ビットにする宣言(START EQU SIZE{14,4})をする。そして、変動パターン乱数が0~255(=0100H-1)の場合、変動パターンの番号01Hを選択することを示す「0100H、01H」を記載し、変動パターン乱数が256~511(=0200H-1)の場合、変動パターンの番号02Hを選択することを示す「0200H、02H」を記載し、変動パターン乱数が512~4999(=1388H-1)の場合、変動パターンの番号04Hを選択することを示す「1388H、04H」を記載し、変動パターン乱数が5000~10000(=2710H-1)の場合、変動パターンの番号08Hを選択することを示す「2710H、08H」を記載し、格納するサイズを14ビット、4ビットにするデータがここまであることを宣言する(END EQU SIZE)。これにより、主制御CPU600aは、通常用データ領域600bc(図9(b)参照)のメモリ空間アドレス番地9100H番地から順に、14ビット、4ビットのデータを格納していくこととなる。なお、0100H、0200H、1388H、2710Hのデータは16ビット形式で記載し、01H、02H、04H、08Hのデータは8ビット形式で記載しているものの、格納するサイズを14ビット、4ビットにする宣言をしていることから、主制御CPU600aは、9100H番地を先頭に14ビット分、4ビット分のデータを格納していくこととなる。
Next, a declaration (START EQU SIZE {14, 4}) to set the storage size to 14 bits and 4 bits is made. Then, when the variation pattern random number is 0 to 255 (= 0100H-1), "0100H, 01H" indicating that the
かくして、このようにして、複数のデータに対し、それぞれ別のビットサイズを定義することができる。 Thus, in this way, different bit sizes can be defined for a plurality of data.
<カウンタの更新処理の説明>
次に、後述する当否抽選に使用する普通図柄、特別図柄等の乱数の更新、コモンカウンタ等のカウンタの更新処理について、図13を参照して説明することとする。
<Description of Counter Update Processing>
Next, referring to FIG. 13, the process of updating random numbers such as normal symbols and special symbols used in the lottery, which will be described later, and of counters such as a common counter will be described.
従来、プログラムで所定範囲を循環するカウンタを更新する際、所定範囲を超えたら0に戻すという処理のプログラムを組む必要があった。この点、図13(a)に示す、0~99の範囲で更新するカウンタプログラムを例にして、具体的に説明することとする。 Conventionally, when a program updates a counter that circulates within a predetermined range, it has been necessary to create a program for resetting the counter to 0 when the predetermined range is exceeded. This point will be described in detail, taking as an example the counter program that updates in the range of 0 to 99 shown in FIG. 13(a).
図13(a)に示すように、ラベルM_INCEXのカウンタプログラムでは、まず、指定された上限値をもとにカウンタを更新、すなわち、W_COUNTERのワークの値をAレジスタにセットする(LD A、(W_COUNTER))。 As shown in FIG. 13(a), in the counter program labeled M_INCEX, first, the counter is updated based on the specified upper limit value, that is, the work value of W_COUNTER is set in the A register (LD A, ( W_COUNTER)).
次いで、Aレジスタの値をインクリメント(+1)する(INC A)。 Then, the value of the A register is incremented (+1) (INC A).
次いで、100と比較し(CP 100)、100を超えていれば、Aレジスタを0にする(XOR A)。 It is then compared to 100 (CP 100) and if greater than 100, the A register is set to 0 (XOR A).
一方、100と比較し(CP 100)、100を超えていなければ、ラベルXXXへ飛ぶ(JR C、XXX)。そして、このラベルXXXでは、更新したカウント値をW_COUNTERのワークに格納する(LD (W_COUNTER)、A)。 On the other hand, it compares with 100 (CP 100) and if it does not exceed 100, it jumps to label XXX (JR C, XXX). Then, at this label XXX, the updated count value is stored in the W_COUNTER work (LD (W_COUNTER), A).
かくして、上記のようなプログラムを繰り返し行うことで、0~99の範囲でカウント値を更新することとなる。 Thus, by repeating the above program, the count value is updated within the range of 0-99.
しかして、このように従来においては、プログラムで0~99を循環するカウンタを更新する際、99を超えたら0に戻すという処理のプログラムを上記のように組む必要があった。 Thus, conventionally, when updating a counter that circulates from 0 to 99 in a program, it was necessary to create a program for processing to reset the counter to 0 when it exceeds 99 as described above.
しかしながら、上記のようなプログラムでは、比較命令を必ず用いて分岐処理を行わなければならず、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができていないという問題があった。 However, in the above-described program, the comparison instruction must always be used for branch processing, and there is a problem that the processing load of the program and the reduction of the program capacity cannot be achieved.
そこで、本実施形態においては、比較命令を用いて分岐することなく、所定範囲を循環するカウンタを更新可能なカウンタプログラムを組むようにしている。この点、図13(b)に示す、0~63の範囲で更新するカウンタプログラムを例にして、具体的に説明することとする。なお、このカウンタプログラムは、図9(b)に示す主制御ROM600bの通常用プログラム領域600ba、計測用プログラム領域600beに格納されているものである。
Therefore, in the present embodiment, a counter program that can update a counter that circulates within a predetermined range without branching using a comparison instruction is constructed. This point will be described in detail, taking as an example the counter program that updates in the range of 0 to 63 shown in FIG. 13(b). This counter program is stored in the normal program area 600ba and the measurement program area 600be of the
図13(b)に示すように、ラベルM_INCEXのカウンタプログラムでは、まず、指定された上限値をもとにカウンタを更新、すなわち、W_COUNTERのワークの値をAレジスタにセットする(LD A、(W_COUNTER))。 As shown in FIG. 13(b), in the counter program labeled M_INCEX, first, the counter is updated based on the specified upper limit value, that is, the work value of W_COUNTER is set in the A register (LD A, ( W_COUNTER)).
次いで、Aレジスタの値をインクリメント(+1)すると共に、下位6ビットを「0011 1111」でマスクする(AND A+、0011 1111B)。 Next, the value of the A register is incremented (+1) and the lower 6 bits are masked with "0011 1111" (AND A+, 0011 1111B).
次いで、更新したカウント値をW_COUNTERのワークに格納する(LD (W_COUNTER)、A)。 Then, the updated count value is stored in the W_COUNTER work (LD (W_COUNTER), A).
かくして、上記のようなプログラムを繰り返し行うことで、0~63の範囲でカウント値を更新することとなる。 Thus, by repeating the above program, the count value is updated within the range of 0-63.
しかして、上記のようなプログラムを用いれば、カウント値が63(=0011 1111)からインクリメント(+1)し、64(=0100 0000)になったとしても、加算後の値に対して「0011 1111」でマスクすることにより(AND A+、0011 1111B)、カウント値が0(=0000 0000)となる。それゆえ、上記説明したプログラムのように63から64へ値が変化するときだけに限らず、常に「0011 1111」でマスクすることにより、従来のように、プログラムで比較命令を用いた分岐処理を設けることなく、所定範囲を循環するカウンタを更新することができる。これにより、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができることとなる。 Therefore, if the above program is used, even if the count value is incremented (+1) from 63 (=0011 1111) and becomes 64 (=0100 0000), the value after the addition is "0011 1111 (AND A+, 0011 1111B), the count value becomes 0 (=0000 0000). Therefore, by masking with "0011 1111" all the time, not only when the value changes from 63 to 64 as in the program described above, branch processing using a comparison instruction can be performed in the program as in the past. A counter that circulates within a predetermined range can be updated without provision. As a result, the processing load of the program can be reduced and the program capacity can be reduced.
なお、本実施形態においては、総数が64、すなわち、総数が2のべき乗で構成されるカウント値を例に説明したが、それに限らず、上記プログラムは、どのようなカウント値にも適用可能である。しかしながら、総数が2のべき乗で構成されるカウント値を更新するカウンタプログラムに用いた方が好ましい。マスク処理がしやすいためである。 In this embodiment, the total number is 64, that is, the total number is a power of 2. However, the program is not limited to this and can be applied to any count value. be. However, it is preferably used in a counter program that updates a count value whose total is a power of two. This is because mask processing is easy.
ところで、上記説明したカウンタプログラムは、汎用モジュールとして使用することもできる。この点、図13(c)~(d)を参照して具体的に説明する。 By the way, the counter program described above can also be used as a general-purpose module. This point will be specifically described with reference to FIGS.
図13(c)に示すように、ラベルM_INCEXのカウンタプログラムでは、まず、指定された上限値をもとにカウンタを更新、すなわち、HLレジスタの値をAレジスタにセットする(LD A、(HL))。 As shown in FIG. 13(c), in the counter program labeled M_INCEX, first, the counter is updated based on the specified upper limit value, that is, the value of the HL register is set in the A register (LD A, (HL )).
次いで、Aレジスタの値をインクリメント(+1)すると共に、Bレジスタの値でマスクする(AND A+、B)。 Next, the value of the A register is incremented (+1) and masked with the value of the B register (AND A+, B).
次いで、更新したカウント値をHLレジスタに格納する(LD (HL)、A)。 Then, the updated count value is stored in the HL register (LD (HL), A).
かくして、上記のように汎用モジュール化されたラベルM_INCEXのカウンタプログラムは、図13(d)に示すように、W_COUNTERのワークの値をHLレジスタにセットし(LD HL、W_COUNTER)、「0011 1111」の値をBレジスタにセットした上で、ラベルM_INCEXのカウンタプログラムを読み出す(CALL M_INCEX)ことで使用することができる。 Thus, the counter program labeled M_INCEX, which has been made into a general module as described above, sets the work value of W_COUNTER in the HL register (LD HL, W_COUNTER) as shown in FIG. is set in the B register and the counter program labeled M_INCEX is read out (CALL M_INCEX).
しかして、このように、上記説明したカウンタプログラムを汎用モジュールとして使用することにより、複数のカウント値を更新する際に使用することが可能となる。 Thus, by using the above-described counter program as a general-purpose module, it becomes possible to use it when updating a plurality of count values.
<コール命令の説明>
次に、図9(b)に示す、主制御ROM600bのベクタテーブル領域600biに格納されているCALL_S命令で呼び出すことができるサブルーチンのテーブルアドレスに関するコール命令について、図14を参照して説明することとする。
<Description of call instruction>
Next, referring to FIG. 14, a call instruction relating to the subroutine table address that can be called by the CALL_S instruction stored in the vector table area 600bi of the
本実施形態においては、主制御CPU600aが実行可能なコール命令として、CALL_S命令、CALL_M命令、CALL_L命令、CALL命令の複数のコール命令を備えている。このCALL_S命令は、複数のコール命令の中で最小のプログラムコードのデータ量(例えば、1バイト)である。そして、このCALL_S命令で呼び出すサブルーチンは、図9(b)に示す、主制御ROM600bのベクタテーブル領域600biに格納されているアドレスデータテーブルの格納番号を使って呼び出されるようになっている。このアドレスデータテーブルとしては、図14(a)に示すように、データセット処理(DW M_DTSET)、コマンド送信処理(DW M_CMDOUT)等のCALL_S命令で呼び出すサブルーチンの先頭アドレスデータ、が2バイトで格納されている。なお、この格納された順番がそのままCALL_S命令で呼び出される際の格納番号となる。これにより、プログラムでは格納番号を意識することなく、このアドレスデータテーブルで宣言したサブルーチンの名前を使用すれば良いこととなる。
In this embodiment, as call instructions executable by the
しかして、このようなアドレスデータテーブルに格納されている処理を呼び出すために、図14(b)に示すように、CALL_S命令が使用されることとなる。より具体的に説明すると、図14(b)に示すプログラムは、後述する初期化処理の一部を示すもので、主制御CPU600aの内部に設けられている一定周期のパルス出力を作成する機能や時間計測の機能等を有するCTC(Counter Timer Circuit)の設定テーブル(D_CTCSET)をHLレジスタにセットし(LD HL、D_CTCSET)、データセット処理(M_DTSET)をCALL_S命令でコールするようにしているものである(CALL_S M_DTSET)。
Therefore, in order to call the processing stored in such address data table, the CALL_S instruction is used as shown in FIG. 14(b). More specifically, the program shown in FIG. 14(b) shows a part of the initialization process described later, and the function of creating a constant cycle pulse output provided inside the
ところで、このCTCの設定テーブルは、図14(c)に示すような内容が格納されている。すなわち、前半部分(LOW W_CTC1~3)がセットされる図9(a)に示す主制御RAM600cの通常用RAM領域600caを示し、後半部分(001H、010H、080H)が通常用RAM領域600caにセットされるデータを示し、そして、最後に、データセット終了を示す終了コードが格納されている(DB 0FFH)。
By the way, this CTC setting table stores the contents as shown in FIG. 14(c). That is, the normal RAM area 600ca of the
一方、データセット処理は、図14(d)に示すような処理が行われる。具体的には、まず、HLレジスタの中をAレジスタに移行した後、HLレジスタをインクリメント(+1)する(LD A、(HL+))。 On the other hand, the data set processing is performed as shown in FIG. 14(d). Specifically, first, the HL register is shifted to the A register, and then the HL register is incremented (+1) (LD A, (HL+)).
次いで、データセットの終了か否かをチェックするために、Aレジスタと0FFHを比較する(CP 0FFH)。 The A register is then compared with 0FFH (CP 0FFH) to check for the end of the data set.
次いで、Dレジスタに通常用RAM領域600caの上位アドレスをセットする(LD D、00H)。 Next, the upper address of the normal RAM area 600ca is set in the D register (LD D, 00H).
次いで、EレジスタにCTCの設定テーブル(図14(c)に示すD_CTCSET)で読み込んだ通常用RAM領域600caの下位アドレスをセットする(LD E、A)。 Next, the lower address of the normal RAM area 600ca read from the CTC setting table (D_CTCSET shown in FIG. 14(c)) is set in the E register (LD E, A).
次いで、CTCの設定テーブル(図14(c)に示すD_CTCSET)からセットするデータの値をAレジスタに読み込む(LD A、(HL+))。 Next, the data value to be set from the CTC setting table (D_CTCSET shown in FIG. 14(c)) is read into the A register (LD A, (HL+)).
次いで、DEレジスタにセットされたワークアドレスにデータをセットし(LD (DE)、A)、データセット処理の最初の処理に戻る(JR M_DTSET)。 Next, data is set in the work address set in the DE register (LD (DE), A), and the process returns to the beginning of the data setting process (JRM_DTSET).
かくして、このようにして、CALL_S命令で呼び出されたデータセット処理が実行されることとなる。 Thus, in this way, the data set processing called by the CALL_S instruction will be executed.
一方、図14(b)に示す後述する初期化処理の一部を示すプログラムは、データセット処理(M_DTSET)をCALL_S命令でコールした後、液晶表示装置41(図5参照)に待機画面を表示させる待機画面表示コマンド(0BA01H)をDEレジスタにセットする(LD DE、0BA01H)。 On the other hand, the program shown in FIG. 14(b), which shows a part of the initialization process to be described later, calls the data set process (M_DTSET) with the CALL_S instruction, and then displays the standby screen on the liquid crystal display device 41 (see FIG. 5). Set the standby screen display command (0BA01H) to the DE register (LD DE, 0BA01H).
次いで、コマンド送信処理(M_CMDOUT)をCALL_S命令でコールする(CALL_S M_CMDOUT)。このコマンド送信処理は、図14(e)に示すような処理が行われる。 Next, the command transmission processing (M_CMDOUT) is called with the CALL_S instruction (CALL_SM_CMDOUT). This command transmission process is performed as shown in FIG. 14(e).
具体的には、
LD A、D
OUT (CMDPORT)、A
とプログラムし、コマンドの上位バイトデータをコマンドポートから出力する。
in particular,
LD A, D
OUT (CMDPORT), A
and output the upper byte data of the command from the command port.
次いで、
LD B、1000
WAIT:
DJNZ WAIT
とプログラムし、演出制御CPU900がコマンドデータを受信するまでしばらく待機する。
then
LD B, 1000
WAIT:
DJNZ WAIT
and waits for a while until the
次いで、
LD A、E
OUT (CMDPORT)、A
とプログラムし、コマンドの下位バイトデータをコマンドポートから出力する。
then
LD A,E
OUT (CMDPORT), A
and output the lower byte data of the command from the command port.
かくして、このようにして、CALL_S命令で呼び出されたコマンド送信処理が実行されることとなる。 Thus, the command transmission process called by the CALL_S instruction is executed in this manner.
しかして、このようにして、初期化処理にてCALL_S命令が使用されることとなる。 Thus, in this way, the CALL_S instruction will be used in the initialization process.
ただし、上記プログラムはあくまで一例であるため、CALL_S命令は初期化処理に限らず、後述するタイマ割込みでも使用される。すなわち、コマンド送信処理は、初期化処理に限らず、タイマ割込み処理で実行される始動保留球の増加時、特別図柄の変動開始時、大当たり開始時、エラー発生時など様々な状況でコマンド送信が実行される。そのため、CALL_S命令はタイマ割込みでも使用される。 However, since the above program is only an example, the CALL_S instruction is used not only for initialization processing but also for timer interrupts, which will be described later. That is, the command transmission process is not limited to the initialization process, but command transmission can be performed in various situations such as when the number of start holding balls increases, when the special symbol starts to change, when the jackpot starts, when an error occurs, etc. executed. Therefore, the CALL_S instruction is also used for timer interrupts.
しかして、上記プログラムにて説明したように、汎用性が高い処理を、CALL_S命令に対応するサブルーチンとすることで、プログラムのデータ量の増加を抑制することができる。それゆえ、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができる。 Therefore, as described in the above program, by making the highly versatile process a subroutine corresponding to the CALL_S instruction, an increase in the data amount of the program can be suppressed. Therefore, it is possible to reduce the processing load of the program and reduce the program capacity.
また、コマンド送信処理は、タイマ割込み処理で実行される始動保留球の増加時、特別図柄の変動開始時、大当たり開始時、エラー発生時など様々な状況でコマンド送信が実行されることとなるため、CALL_S命令が使用される割合は、タイマ割込み処理で使用される割合の方が、初期化処理からタイマ割込み処理を呼び出すメインループ処理までに使用される割合より高くなる。それゆえ、よりプログラムの処理負荷軽減と、プログラム容量の削減を図ることができる。 In addition, command transmission processing is executed in various situations such as when the number of start pending balls increases, when special symbols start to fluctuate, when a big hit starts, and when an error occurs. , CALL_S instructions are used in timer interrupt processing at a higher rate than in initialization processing to main loop processing that calls timer interrupt processing. Therefore, it is possible to further reduce the processing load of the program and reduce the program capacity.
ところで、複数のコール命令のうちCALL_M命令は、予め決められたアドレス番地の範囲内にあるサブルーチンをコールする際に使用される。具体的には、後述するタイマ割込み処理で実行される特別図柄処理、普通図柄処理、タイマ管理処理等の各サブルーチンをコールする際に使用される。汎用性が高いサブルーチンを呼び出す際は、CALL_S命令が用いられるため、1回しか呼び出されないタイマ割込み処理内で実行される各サブルーチンなどは、CALL_M命令が使用される。なお、CALL_M命令は、呼び出すサブルーチンのアドレス番地によってプログラムコードのデータ量が異なるようになっている(例えば、2バイト~3バイト)。 By the way, among the plurality of call instructions, the CALL_M instruction is used when calling a subroutine within a predetermined address range. Specifically, it is used when calling each subroutine such as special design processing, normal design processing, timer management processing, etc., which are executed in the timer interrupt processing described later. Since the CALL_S instruction is used when calling a subroutine with high versatility, the CALL_M instruction is used for each subroutine executed in the timer interrupt process that is called only once. Note that the CALL_M instruction differs in the data amount of the program code depending on the address of the subroutine to be called (for example, 2 bytes to 3 bytes).
一方、複数のコール命令のうちCALL_L命令は、サブルーチンをコールする際、プログラムカウンタ(実行しているプログラムのアドレス)を、図9(a)に示す主制御RAM600cの通常用スタック領域600cc、計測用スタック領域600cgに退避させるだけでなく、フラグレジスタの値も図9(a)に示す主制御RAM600cの通常用スタック領域600cc、計測用スタック領域600cgに退避させる。それゆえ、CALL_L命令は、サブルーチンを呼び出す前にフラグを保持した上で、サブルーチン内でフラグの値が変化する場合に使用される。なお、このCALL_L命令は、例えば、2バイトで構成されるものである。
On the other hand, among the plurality of call instructions, the CALL_L instruction, when calling a subroutine, sets the program counter (the address of the program being executed) to the normal stack area 600cc of the
また一方、複数のコール命令のうちCALL命令は、呼び出すサブルーチンのアドレス番地に制限がないものであるため、主に、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムを呼び出す際に使用される。すなわち、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムのアドレス番地を呼び出す場合には、他のコール命令では読み出すことができないアドレス番地にサブルーチンを配置している可能性があるため、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムを呼び出す際にCALL命令が使用される。なお、上述したCALL_M命令では、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムを呼び出すことができない。上述したCALL_M命令は、HLレジスタ等の2バイトのレジスタにサブルーチンのアドレス番地をセットして呼び出すことができないため、直接アドレス番地を指定して呼び出すこととなるが、そのアドレス番地の値に制限がある。それゆえ、CALL命令は、呼び出すサブルーチンのアドレス番地に制限がないため、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムを呼び出すことができる。なお、このCALL命令は、例えば、4バイトで構成されるものである。
On the other hand, among the plurality of call instructions, the CALL instruction is mainly stored in the measurement program area 600be of the
ここで、上述したCALL_M命令とCALL命令の使用例について、図14(f)に示すプログラムを例にして説明する。図14(f)に示すプログラムは、後述するメインループ処理を示すもので、割込み禁止処理(DI)をした後、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムである後述する賞球入賞数管理処理1(M_SHOUKYU1)をCALL命令でコールし(CALL M_SHOUKYU1)、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されている抽選処理等の遊技処理時に使用されるプログラムである後述する各種乱数更新処理(M_RANSU)をCALL_M命令でコールし(CALL M_SHOUKYU1)、割込み許可(EI)をするという処理を繰り返し行うものである。
Here, an example of using the CALL_M instruction and the CALL instruction described above will be described using the program shown in FIG. 14(f) as an example. The program shown in FIG. 14(f) shows main loop processing which will be described later. A CALL command is used to call a winning ball winning number management process 1 (M_SHOUKYU1), which is a program used when measuring the total number of game balls shot into the
かくして、このようにして、CALL_M命令とCALL命令が使用されることとなる。 Thus, in this way the CALL_M and CALL instructions are used.
しかして、上述したように、複数のコール命令のうちCALL_M命令で呼び出されるサブルーチンと、CALL_S命令で呼び出されるサブルーチンは、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されており、CALL命令で呼び出されるサブルーチンは、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されている。しかるに、このように、複数のコール命令を状況に応じて使い分けることにより、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができる。
As described above, among the plurality of call instructions, the subroutine called by the CALL_M instruction and the subroutine called by the CALL_S instruction are stored in the normal program area 600ba of the
<LDB命令の説明>
次に、主制御ROM600bの通常用データ領域600bc(図9(b)参照)に格納されているデータを取得するにあたって使用するLDB命令について、図15~図18,図20~図22を参照して説明することとする。
<Description of LDB instruction>
15 to 18 and 20 to 22 for the LDB instruction used to acquire the data stored in the normal data area 600bc (see FIG. 9B) of the
まず、主制御CPU600a内の内部レジスタについて、図15を用いて説明する。図15に示すように、主制御CPU600a内の内部レジスタは、レジスタバンク0とレジスタバンク1を備える汎用レジスタ600a1と、プログラムカウンタとして機能するPCレジスタ600a2と、スタックポインタとして機能するSPレジスタ600a3と、テーブルポインタとして機能するTPレジスタ600a4と、プログラムステータスワードとして機能するPSWレジスタ600a5と、で構成されている。この汎用レジスタ600a1は、図15に示すように、レジスタバンク0、レジスタバンク1共に、8bitで構成されるWレジスタ、Aレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、そして、16ビットで構成されるIXレジスタ、IYレジスタを備えている。また、TPレジスタ600a4は、データ領域を指定するための基準となるアドレス番地(例えば、9000番地)が格納されており、リセット時に、データ領域を指定するための基準となるアドレス番地である、例えば、9000Hに初期化されるようになっている。
First, the internal registers within the
しかして、このような内部レジスタを用いて、LDB命令は実行されることとなる。より詳しく説明すると、LDB命令を実行するにあたっては、図20(a)に示す特別図柄変動パターン処理のプログラム例にあるように、「LDB BC,(HL+).9」、「LDB E,(HL+).4」とプログラムされることとなる。この「LDB BC,(HL+).9」のプログラムは、主制御ROM600bの通常用データ領域600bc(図9(b)参照)の「95A4H」のアドレス番地から10ビットのデータを読み出し、その読み出した10ビットのデータをBCレジスタに格納するというプログラムである。そして、「LDB E,(HL+).4」のプログラムは、主制御ROM600bの通常用データ領域600bc(図9(b)参照)の「95A5H」のアドレス番地から5ビットのデータを読み出し、その読み出した5ビットのデータをEレジスタに格納するというプログラムである。
Therefore, the LDB instruction will be executed using such an internal register. More specifically, when executing the LDB command, as shown in the program example of the special symbol variation pattern processing shown in FIG. ).4”. This program "LDB BC, (HL+).9" reads 10-bit data from the address address "95A4H" in the normal data area 600bc of the
このプログラム内容を、図16、図20~図22を用いて、さらに詳しく説明する。まず、HLレジスタには、図20(a)に示すように、「LDT HL,_TPTADR」とプログラムされることによって、図20(b)に示す特別図柄パターン群アドレステーブルのアドレス番地が格納される。そして、図20(a)に示す、以下のようなプログラムによって、通常遊技状態か、確率変動状態かの何れかのテーブルが選択される。 The contents of this program will be described in more detail with reference to FIGS. 16 and 20 to 22. FIG. First, as shown in FIG. 20(a), the HL register is programmed with "LDT HL,_TPTADR" to store the address of the special symbol pattern group address table shown in FIG. 20(b). . Then, either the normal game state table or the probability variation state table is selected by the following program shown in FIG. 20(a).
すなわち、図20(a)に示すように、
LD A,(IY+W_TCODE1)
CALL_S _DTSRCH
とプログラムし、CALL_S命令によって、図20(c)に示すデータ検索処理を呼び出しすることによって、通常遊技状態か、確率変動状態か、何れかのテーブルが選択される。本実施形態においては、通常遊技状態であることを示す「DW D_TPATBL_1」とプログラムされた「D_TPATBL_1」のテーブルが選択され、HLレジスタには、図21に示す特図変動パターン群テーブル1のアドレス番地が格納される。そして、図20(a)に示す、以下のようなプログラムによって、図21に示す何れかのテーブルが選択される。
That is, as shown in FIG. 20(a),
LD A, (IY+W_TCODE1)
CALL_S_DTSRCH
, and the CALL_S instruction calls the data search process shown in FIG. In the present embodiment, the table of "DWD_TPATBL_1" programmed with "DW D_TPATBL_1" indicating the normal gaming state is selected, and the address address of the special figure variation pattern group table 1 shown in FIG. 21 is stored in the HL register. is stored. Then, one of the tables shown in FIG. 21 is selected by the following program shown in FIG. 20(a).
すなわち、図20(a)に示すように、
LD A,(IY+W_TPTOFF)
JR NZ,TPTMK_10
;
LD A,(IY+W_T1GONUM)
TPTMK_10:
CALL_S _DTSRCH
とプログラムし、CALL_S命令によって、図20(c)に示すデータ検索処理を呼び出しすることによって、図21に示す何れかのテーブルが選択される。本実施形態においては、始動保留球数が0個であることを示す「DW (D_PT_FH1-09000H)*8+0」とプログラムされた「D_PT_FH1」のテーブルが選択され、HLレジスタには、図22(a)に示す変動振分けテーブルH1のアドレス番地が格納される。すなわち、HLレジスタには、図16(a)に示すように、D_PT_FH1のアドレス番地から9000Hが差し引かれ、8で乗算することによって、上位13bitに、「05A4」が格納される。この、始動保留球数が0個であることを示す「DW (D_PT_FH1-09000H)*8+0」のうち、「(D_PT_FH1-09000H)*8」が上位13bitに、「05A4」が格納されるプログラムである。
That is, as shown in FIG. 20(a),
LD A, (IY+W_TPTOFF)
JR NZ,TPTMK_10
;
LD A, (IY+W_T1GONUM)
TPTMK_10:
CALL_S_DTSRCH
21 is selected by calling the data search process shown in FIG. 20(c) with the CALL_S instruction. In the present embodiment, a table of "D_PT_FH1" programmed with "DW (D_PT_FH1-09000H)*8+0" indicating that the number of pending balls to start is 0 is selected, and the HL register is stored in FIG. ) is stored in the variable allocation table H1. That is, in the HL register, as shown in FIG. 16A, 9000H is subtracted from the address of D_PT_FH1 and multiplied by 8 to store "05A4" in the upper 13 bits. Of the "DW (D_PT_FH1-09000H) * 8 + 0" indicating that the number of start pending balls is 0, "(D_PT_FH1-09000H) * 8" is stored in the upper 13 bits, and "05A4" is stored in the program. be.
一方、HLレジスタには、指定されたアドレス番地に格納されている0ビット目~7ビット目のうち、何ビット目から「LDB BC,(HL+).9」のプログラムで指定された9+1(=10)ビット分のデータを取得するかのビット指定情報が下位3bitに格納される。このビット指定情報は、「DW (D_PT_FH1-09000H)*8+0」のプログラムのうち「+0」が、ビット指定情報に該当するものである。すなわち、「+0」の場合は、0ビット目からデータを取得、「+1」の場合は、1ビット目からデータを取得、「+2」の場合は、2ビット目からデータを取得というような処理をすることとなる。しかして、このようにして、HLレジスタには、図16(a)に示すように、「2D20」の値が格納されることとなる。
On the other hand, the
かくして、このようなデータが格納されたHLレジスタに対し、LDB命令が実行されると、主制御CPU600aは、図16(a)に示すように、HLレジスタの値を8で除算する。これにより、「2D20」の値は、「05A4」となる。そして、主制御CPU600aは、TPレジスタ600a4(図15参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hと、この8で除算した値「05A4」を足し合わせ、主制御ROM600bの通常用データ領域600bc(図9(b)参照)の「95A4H」のアドレス番地を算出する。続いて、主制御CPU600aは、ビット指定情報が「0」であることから、図16(a-1)に示すように、この算出したアドレス番地「95A4H」の0ビット目から10ビット分のデータ「0001010001」(図示では、読み出すデータを四角で囲んでいる)を取得する(読み出す)こととなる。
Thus, when the LDB instruction is executed for the HL register storing such data, the
次いで、図20(a)に示すように、「LDB BC,(HL+).9」のプログラムに続いて、「LDB E,(HL+).4」とプログラムされていると、主制御CPU600aは、図16(b)に示すように、HLレジスタに格納されている「2D20」の値に、「LDB BC,(HL+).9」のプログラムで指定された9+1(=10)の値を足し合わせ、「2D2A」とする。これにより、HLレジスタには、上位13bitに、「05A5」が格納され、下位3bitには、2ビット目からデータを取得するビット指定情報が格納されることとなる。
Next, as shown in FIG. 20(a), following the program of "LDB BC, (HL+).9", when "LDB E, (HL+).4" is programmed, the
次いで、主制御CPU600aは、図16(b)に示すように、HLレジスタの値を8で除算する。これにより、「2D2A」の値は、「05A5」となる。続いて、主制御CPU600aは、TPレジスタ600a4(図15参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hと、この8で除算した値「05A5」を足し合わせ、主制御ROM600bの通常用データ領域600bc(図9(b)参照)の「95A5H」のアドレス番地を算出する。しかして、主制御CPU600aは、ビット指定情報が「2」であることから、図16(b-1)に示すように、この算出したアドレス番地「95A5H」の2ビット目から5ビット分(「LDB E,(HL+).4」とプログラムされていることから、4+1(=5)ビット分となる)のデータ「10000」(図示では、読み出すデータを四角で囲んでいる)を取得する(読み出す)こととなる。
Next, the
かくして、この取得された値が、図22(a)に示すように、0~552であれば、変動パターンコマンドとして、「001」が選択され、553~782(552+230)であれば、変動パターンコマンドとして、「002」が選択され、783~997(552+230+215)であれば、変動パターンコマンドとして、「004」が選択され、997~1000(552+230+215+3)であれば、変動パターンコマンドとして、「005」が選択されることとなる。なお、本実施形態においては、0~552であるため、変動パターンコマンドとして、「001」が選択されることとなる。 Thus, as shown in FIG. 22(a), if the acquired value is 0 to 552, "001" is selected as the variation pattern command, If "002" is selected as the command, and if 783-997 (552+230+215), "004" is selected as the variation pattern command, and if 997-1000 (552+230+215+3), "005" is selected as the variation pattern command. will be selected. In this embodiment, since the number is 0 to 552, "001" is selected as the variation pattern command.
なお、上記説明した変動パターンコマンド取得の処理は、図20(a)に示す、
LD WA,(IY+W_TPRBF0)
TPTMK_20:
LDB BC,(HL+).9
LDB E,(HL+).4
SUB WA,BC
JR NC,TPTMK_20
というプログラムによって実行されることとなる。
In addition, the process of acquiring the variation pattern command described above is shown in FIG.
LD WA, (IY+W_TPRBF0)
TPTMK_20:
LDB BC, (HL+).9
LDB E, (HL+).4
SUB WA, BC
JR NC, TPTMK_20
It will be executed by a program called
しかして、図16に示すように、HLレジスタに、TPレジスタ600a4(図15参照)に格納されているデータ領域を指定するための基準となるアドレス番地が差し引かれたデータと、ビット指定情報と、を格納するようにすれば、HLレジスタに、2つのデータを格納することができることとなるため、プログラム容量の削減を図ることができると共に、ROMのデータ容量の削減を図ることができる。 Thus, as shown in FIG. 16, the data obtained by subtracting the reference address address for designating the data area stored in the TP register 600a4 (see FIG. 15) in the HL register, and the bit designation information. , can be stored in the HL register, so that the program capacity can be reduced and the data capacity of the ROM can be reduced.
また、ビット指定情報として、「DW (D_PT_FH1-09000H)*8+0」と「0」をプログラムしておくことにより、誤ったビットを指定する可能性を低減させることができ、もって、デバックの精度を向上させることができる。 In addition, by programming "DW (D_PT_FH1-09000H)*8+0" and "0" as bit designation information, the possibility of designating the wrong bit can be reduced, thereby improving debugging accuracy. can be improved.
一方、図21に示す「DW (D_PT_FH1-09000H)*8+0」のプログラムのように、HLレジスタに、D_PT_FH1のアドレス番地からTPレジスタ600a4(図15参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hを差し引いたアドレス番地を格納しておくことにより、HLレジスタの使用容量を削減することができることとなる。これにより、図16に示すように、HLレジスタに、2つのデータを格納することができることとなり、もって、プログラム容量の削減を図ることができると共に、ROMのデータ容量の削減を図ることができる。
On the other hand, like the program "DW (D_PT_FH1-09000H)*8+0" shown in FIG. 21, to specify the data area stored in the TP register 600a4 (see FIG. 15) from the address address of D_PT_FH1 to the HL register. By storing the address address obtained by subtracting the
なお、本実施形態においては、変動振分けテーブルH1が選択された例を示したが、通常遊技5ラウンド当たりを示す「DW (D_PT_FB1-09000H)*8+0」とプログラムされた「D_PT_FB1」のテーブルが選択された場合は、図22(b)に示す変動振分けテーブルB1が選択されることとなる。なおまた、この際の変動パターンコマンド取得の処理も、上記説明と同様の処理を行うこととなるめ、説明は省略する。 In the present embodiment, an example in which the variable distribution table H1 is selected is shown, but the table of "D_PT_FB1" programmed with "DW (D_PT_FB1-09000H)*8+0" indicating 5 rounds of the normal game is selected. If so, the fluctuation distribution table B1 shown in FIG. 22(b) will be selected. Further, since the process of acquiring the variation pattern command at this time is also the same as the process described above, the description thereof will be omitted.
<LDB命令の変形例の説明>
ところで、本実施形態においては、連続してLDB命令を実行する例を示したが、それに限らず、図17に示すプログラムのように、LDB命令を実行することができる。
<Explanation of modification of LDB instruction>
By the way, in the present embodiment, an example in which the LDB instructions are executed continuously has been shown, but the LDB instructions can be executed like the program shown in FIG. 17 without being limited to this.
すなわち、図17(a)に示すプログラムは、大当たりのラウンド数に応じて、大入賞口パターンを選択するプログラムであって、「LD HL,_TDPTSEL1*8」とプログラムすることによって、図17(b)に示す大入賞口パターン選択テーブル1のアドレス番地が、HLレジスタに格納される。具体的には、図18(a)に示すように、_TDPTSEL1のアドレス番地「0352H」(図17(b)参照)の値を8で乗算することによって、HLレジスタの上位13bitに「0352H」が格納される。 That is, the program shown in FIG. 17(a) is a program for selecting a big winning opening pattern according to the number of rounds of the jackpot. ) is stored in the HL register. Specifically, as shown in FIG. 18(a), by multiplying the value of the address address "0352H" (see FIG. 17(b)) of _TDPTSEL1 by 8, "0352H" is added to the upper 13 bits of the HL register. Stored.
そして、HLレジスタの下位3bitに、ビット指定情報を格納するにあたっては、以下のような処理を行う。すなわち、図17(a)に示すように、「LD A,(W_VCNT)」とプログラムすることによって、大当たりのラウンド数を示すW_VCNTの値をAレジスタに格納する。次いで、「MUL A.2」とプログラムすることによって、ビット指定情報を生成し、「LD HL,(HL+A)」とプログラムすることによって、生成されたビット指定情報が、HLレジスタの下位3bitに格納されることとなる。なお、図18(a)では、W_VCNTの値は「0」であるため、ビット指定情報として「0」が格納されている。 Then, in storing the bit designation information in the lower 3 bits of the HL register, the following processing is performed. That is, as shown in FIG. 17(a), by programming "LD A, (W_VCNT)", the value of W_VCNT indicating the number of rounds of the jackpot is stored in the A register. Next, by programming "MUL A.2", bit designation information is generated, and by programming "LD HL, (HL+A)", the generated bit designation information is stored in the lower 3 bits of the HL register. It will be done. In addition, in FIG. 18A, since the value of W_VCNT is "0", "0" is stored as the bit designation information.
かくして、このようなデータが格納されたHLレジスタに対し、「LDB A,(HL).1」というLDB命令が実行されると、主制御CPU600aは、図18(a)に示すように、HLレジスタの値を8で除算する。これにより、「1A90」の値は、「0352」となる。そして、主制御CPU600aは、TPレジスタ600a4(図15参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hと、この8で除算した値「0352」を足し合わせ、主制御ROM600bの通常用データ領域600bc(図9(b)参照)の「9352H」のアドレス番地を算出する。続いて、主制御CPU600aは、ビット指定情報が「0」であることから、図18(a-1)に示すように、この算出したアドレス番地「9352H」の0ビット目から2ビット分のデータ「10」(図示では、読み出すデータを四角で囲んでいる)を取得する(読み出す)こととなる。
Thus, when the LDB instruction "LDB A, (HL).1" is executed for the HL register storing such data, the
次いで、W_VCNTの値が「1」となり、ビット指定情報として「2」が格納されると、HLレジスタには、図18(b)に示すように、HLレジスタの下位3bitに、「010」の値が格納される。これにより、HLレジスタには、「1A90」の値が格納されることとなる。 Next, when the value of W_VCNT becomes "1" and "2" is stored as bit designation information, the HL register stores "010" in the lower 3 bits of the HL register as shown in FIG. 18(b). Value is stored. As a result, the value "1A90" is stored in the HL register.
かくして、このようなデータが格納されたHLレジスタに対し、「LDB A,(HL).1」というLDB命令が実行されると、主制御CPU600aは、図18(b)に示すように、HLレジスタの値を8で除算する。これにより、「1A92」の値は、「0352」となる。そして、主制御CPU600aは、TPレジスタ600a4(図15参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hと、この8で除算した値「0352」を足し合わせ、主制御ROM600bの通常用データ領域600bc(図9(b)参照)の「9352H」のアドレス番地を算出する。続いて、主制御CPU600aは、ビット指定情報が「2」であることから、図18(b-1)に示すように、この算出したアドレス番地「9352H」の2ビット目から2ビット分のデータ「00」(図示では、読み出すデータを四角で囲んでいる)を取得する(読み出す)こととなる。
Thus, when the LDB instruction "LDB A, (HL).1" is executed for the HL register storing such data, the
しかして、このように、プログラムによってビット指定情報を生成するようにすれば、連続してLDB命令を実行せずとも、LDB命令を実行することができる。しかるに、このようにすれば、様々なプログラムに使用することが可能となり、もって、プログラム容量の削減をより図ることができると共に、ROMのデータ容量の削減をより図ることができる。 Thus, if the bit designation information is generated by the program, the LDB instruction can be executed without executing the LDB instruction continuously. However, by doing so, it becomes possible to use it for various programs, thereby further reducing the program capacity and further reducing the data capacity of the ROM.
<LDT命令の説明>
次に、主制御ROM600bの通常用データ領域600bc(図9(b)参照)に格納されているデータを取得するにあたって使用するLDT命令について、図19~図20を参照して説明することとする。
<Explanation of LDT instruction>
Next, the LDT instruction used to acquire the data stored in the normal data area 600bc (see FIG. 9B) of the
LDT命令を実行するにあたっては、図20(a)に示す特別図柄変動パターン処理のプログラム例にあるように、「LDT HL,_TPTADR」とプログラムされることとなる。この「LDT HL,_TPTADR」のプログラムは、HLレジスタに、図20(b)に示す特図変動パターン群アドレステーブルの「954E」のアドレス番地を格納するというプログラムである。 When executing the LDT command, as shown in the program example of the special symbol variation pattern process shown in FIG. 20(a), "LDT HL, _TPTADR" is programmed. This "LDT HL, _TPTADR" program is a program for storing the address address "954E" of the special figure variation pattern group address table shown in FIG. 20(b) in the HL register.
このプログラム内容を、図19を用いて、さらに詳しく説明する。HLレジスタに、「954E」のアドレス番地を格納するにあたって、LDT命令が実行されると、主制御CPU600aは、mレジスタに、「054E」を格納する。そして、主制御CPU600aは、その格納した値「054E」と、TPレジスタ600a4(図15参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hとを加算し、もって、HLレジスタに「954E」を格納することとなる。
The contents of this program will be described in more detail with reference to FIG. When the LDT instruction is executed to store the address of "954E" in the HL register, the
しかして、このようにすれば、プログラム容量の削減を図ることができると共に、ROMのデータ容量の削減を図ることができる。 Thus, by doing so, the program capacity can be reduced, and the data capacity of the ROM can be reduced.
すなわち、従来、このようなアドレス番地を取得するにあたっては、LD命令が使用されていた。このLD命令は、命令長が4ビットで、取得するアドレス番地は最低2バイトであるため、結局の所、LD命令を使用すると、プログラム容量として、3バイト使用されていた。 Conventionally, an LD instruction was used to obtain such an address. This LD instruction has an instruction length of 4 bits and an address address to be obtained is at least 2 bytes. Therefore, when the LD instruction is used, 3 bytes are used as the program capacity.
しかしながら、LDT命令を使用すると、TPレジスタ600a4(図15参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hを使用するため、アドレス番地の指定が12ビット(mレジスタに格納されている「54E」参照)で済むこととなる。それゆえ、LDT命令の命令長が4ビットであることから、プログラム容量として、計16ビットの2バイトで済むこととなる。
However, when the LDT instruction is used,
しかして、LDT命令を使用すれば、従来より1バイト、プログラム容量の削減を図ることができる。それゆえ、ROMのデータ容量の削減も図ることができる。 Therefore, by using the LDT instruction, it is possible to reduce the program capacity by 1 byte compared to the conventional one. Therefore, it is possible to reduce the data capacity of the ROM.
ところで、本実施形態においては、HLレジスタに、アドレス番地を格納するにあたって、LDT命令を実行する例を示したが、LD命令を実行しても良い場合がある。すなわち、図20(c)に示すように、サブルーチンであるデータ検索処理において、「LD HL,(HL)」とプログラムされている。これは、HLレジスタに格納されている値を、HLレジスタに格納するというプログラムであるが、この場合、レジスタからレジスタに値を格納する命令であるため、命令長も含め、2バイトのプログラム容量で済むこととなる。そのため、このような場合は、LDT命令を使用せずとも、LD命令を使用すれば良いこととなる。しかして、このように、処理内容に応じて、命令を使い分けるようにすれば、無駄な処理を実行させずとも良く、もって、処理速度の向上を図ることができる。 By the way, in this embodiment, an example of executing the LDT instruction in storing the address in the HL register has been shown, but the LD instruction may be executed in some cases. That is, as shown in FIG. 20(c), "LD HL, (HL)" is programmed in the data search process, which is a subroutine. This is a program that stores the value stored in the HL register in the HL register. In this case, since the instruction stores a value from register to register, the program capacity, including the instruction length, is 2 bytes. will be enough. Therefore, in such a case, the LD instruction can be used without using the LDT instruction. Thus, by selectively using instructions according to the content of processing, it is possible to prevent unnecessary processing from being executed, thereby improving the processing speed.
<TPレジスタに関する説明>
次に、LDB命令、LDT命令で使用したTPレジスタ600a4(図15参照)について、図23~図25を参照して説明する。このTPレジスタ600a4は、データ領域を指定するための基準となるアドレス番地9000Hが格納されている。そのため、図9(b)に示すように、主制御ROM600bの計測用データ領域600bg(図9(b)参照)のアドレス番地は、9000H番地を跨いで「A200H」から始まるため、主制御ROM600bの計測用データ領域600bg(図9(b)参照)に格納されているデータを取得するような場合、TPレジスタ600a4を使用することができない。それゆえ、上記説明したLDB命令、LDT命令を使用することができない。
<Explanation about TP register>
Next, the TP register 600a4 (see FIG. 15) used in the LDB and LDT instructions will be described with reference to FIGS. 23-25. This TP register 600a4 stores an
しかして、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムを使用する際は、使用しないTPレジスタ600a4を一旦退避させる必要がある。
Thus, when measuring the total number of game balls shot into the
この退避にあたって、図23(a)に示すように、「PUSH ALL」という命令を用いることにより、汎用レジスタ600a1と、SPレジスタ600a3と、PSWレジスタ600a5と、を退避させる。この際、TPレジスタ600a4は、「PUSH ALL」という命令では退避させることができないことから、図23(b)に示すように、「PUSH TP」という命令を用いることにより、TPレジスタ600a4のみ退避させるようにする。なお、退避させたレジスタを復帰するにあたっては、「POP ALL」という命令を用いることにより、退避させた、汎用レジスタ600a1と、SPレジスタ600a3と、PSWレジスタ600a5と、を復帰させることができ、「POP TP」という命令を用いることにより、退避させたTPレジスタ600a4のみ復帰させることができる。 For this saving, as shown in FIG. 23(a), the general-purpose register 600a1, the SP register 600a3, and the PSW register 600a5 are saved by using the instruction "PUSH ALL". At this time, since the TP register 600a4 cannot be saved by the instruction "PUSH ALL", only the TP register 600a4 is saved by using the instruction "PUSH TP" as shown in FIG. 23(b). make it When restoring the saved registers, the general-purpose register 600a1, the SP register 600a3, and the PSW register 600a5 can be restored by using the instruction "POP ALL". POP TP" can be used to restore only the saved TP register 600a4.
かくして、このようなプログラムは、次のように使用することができる。図24は、タイマ割込み処理の一例を示すプログラムで、図25は、メインループの一例を示すプログラムである。 Thus, such a program can be used as follows. FIG. 24 is a program showing an example of timer interrupt processing, and FIG. 25 is a program showing an example of a main loop.
図24に示すように、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムによる処理を「CALL O_EXAREA2」とプログラムして、呼び出すにあたって、レジスタを退避させる処理として、図24では、以下のようにプログラムされている。
As shown in FIG. 24, the total number of game balls shot into the
PUSH ALL
PUSH TP
CALL O_EXAREA2
PUSH ALL
PUSH TP
CALL O_EXAREA2
かくして、「PUSH ALL」により、図23(a)に示すように、汎用レジスタ600a1と、SPレジスタ600a3と、PSWレジスタ600a5と、が主制御RAM600cの計測用スタック領域600cg(図9(a)参照)に退避され、「PUSH TP」により、図23(b)に示すように、TPレジスタ600a4が主制御RAM600cの計測用スタック領域600cg(図9(a)参照)に退避されることとなる。
Thus, by "PUSH ALL", as shown in FIG. 23(a), the general-purpose register 600a1, SP register 600a3, and PSW register 600a5 are moved to the measurement stack area 600cg (see FIG. 9(a)) of the main control RAM 600c. ), and by "PUSH TP", the TP register 600a4 is saved in the measurement stack area 600cg (see FIG. 9A) of the
一方、退避させたレジスタを復帰させる処理として、図24では、以下のようにプログラムされている。 On the other hand, in FIG. 24, the processing for restoring the saved registers is programmed as follows.
CALL O_EXAREA2
POP TP
POP ALL
CALL O_EXAREA2
POP TP
POP ALL
かくして、「POP TP」により、図23(b)に示すように、退避させたTPレジスタ600a4が復帰し、「POP ALL」により、図23(a)に示すように、退避させた、汎用レジスタ600a1と、SPレジスタ600a3と、PSWレジスタ600a5と、が復帰することとなる。 Thus, ``POP TP'' restores the saved TP register 600a4 as shown in FIG. 600a1, SP register 600a3, and PSW register 600a5 are restored.
また、図25に示すように、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムによる処理を「CALL O_EXAREA1」とプログラムして、呼び出すにあたって、レジスタを退避させる処理として、図25では、以下のようにプログラムされている。
Also, as shown in FIG. 25, the total number of game balls shot into the
PUSH ALL
PUSH TP
CALL O_EXAREA1
PUSH ALL
PUSH TP
CALL O_EXAREA1
かくして、「PUSH ALL」により、図23(a)に示すように、汎用レジスタ600a1と、SPレジスタ600a3と、PSWレジスタ600a5と、が主制御RAM600cの計測用スタック領域600cg(図9(a)参照)に退避され、「PUSH TP」により、図23(b)に示すように、TPレジスタ600a4が主制御RAM600cの計測用スタック領域600cg(図9(a)参照)に退避されることとなる。
Thus, by "PUSH ALL", as shown in FIG. 23(a), the general-purpose register 600a1, SP register 600a3, and PSW register 600a5 are moved to the measurement stack area 600cg (see FIG. 9(a)) of the main control RAM 600c. ), and by "PUSH TP", the TP register 600a4 is saved in the measurement stack area 600cg (see FIG. 9A) of the
一方、退避させたレジスタを復帰させる処理として、図25では、以下のようにプログラムされている。 On the other hand, in FIG. 25, the processing for restoring the saved registers is programmed as follows.
CALL O_EXAREA1
POP TP
POP ALL
CALL O_EXAREA1
POP TP
POP ALL
かくして、「POP TP」により、図23(b)に示すように、退避させたTPレジスタ600a4が復帰し、「POP ALL」により、図23(a)に示すように、退避させた、汎用レジスタ600a1と、SPレジスタ600a3と、PSWレジスタ600a5と、が復帰することとなる。 Thus, ``POP TP'' restores the saved TP register 600a4 as shown in FIG. 600a1, SP register 600a3, and PSW register 600a5 are restored.
しかして、このような処理をすることにより、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムを使用する際は、使用しないTPレジスタ600a4を一旦退避させることが可能となる。
Thus, by performing such processing, the number of winning balls and the number of non-winning balls stored in the measurement program area 600be of the
なお、図24に示すタイマ割込み処理にて、最初に、「LD TP,09000H」とプログラムされ、TPレジスタ600a4に9000Hを格納するようにしているが、このプログラムは記述しなくても良い。TPレジスタ600a4は、リセット時に、データ領域を指定するための基準となるアドレス番地である、9000Hに初期化されるためである。しかしながら、記述しておけば、何らかのバグが発生したとしても、タイマ割込みが発生する毎に、TPレジスタ600a4に9000Hが格納されることとなるため、好ましい。また、頻繁に格納する必要がなければ、電源投入時の初期処理において、TPレジスタ600a4に9000Hを格納しておいても良い。 In the timer interrupt processing shown in FIG. 24, "LD TP, 09000H" is first programmed to store 9000H in the TP register 600a4, but this program need not be written. This is because the TP register 600a4 is initialized to 9000H, which is the reference address for designating the data area, at reset. However, if described, even if some kind of bug occurs, 9000H will be stored in the TP register 600a4 each time a timer interrupt occurs, which is preferable. If it is not necessary to store frequently, 9000H may be stored in the TP register 600a4 in the initial processing when the power is turned on.
<その他のプログラムの説明>
ところで、図20(a)に示す特別図柄変動パターン処理のプログラムにおいて、「CALL_M M_TPTDTMK」とプログラムすることによって、特別図柄変動パターンデータ処理をコールしているが、この特別図柄変動パターンデータ処理は、図26(a)に示すようにプログラムされている。
<Explanation of other programs>
By the way, in the special symbol variation pattern processing program shown in FIG. 20(a), the special symbol variation pattern data processing is called by programming "CALL_MM_TPTDTMK". It is programmed as shown in FIG. 26(a).
このプログラムでは、まず、
LD C,000H
;
CP (IY+W_TPTOFF),005H
JRS T,TPTDTMK_10
INC C
とプログラムすることによって、当たりかハズレかの値をCレジスタに格納するようにしている。
This program first
LD C, 000H
;
CP (IY+W_TPTOFF), 005H
JRS T,TPTDTMK_10
INC C
By programming , the value of win or lose is stored in the C register.
次いで、
TPTDTMK_10:
LDT HL,_TMVTBL;
LD B,003H
MUL B,C
ADD HL,BC
LD D,(HL+)
とプログラムすることによって、Cレジスタの値を確認し、当たりかハズレかの変動パターンコマンドを生成するようにしている。
then
TPTDTMK_10:
LDT HL,_TMVTBL;
LD B, 003H
MUL B,C
ADDHL,BC
LD D, (HL+)
By programming , the value of the C register is confirmed, and a variation pattern command for winning or losing is generated.
より詳しく説明すると、「LDT HL,_TMVTBL」とプログラムされることによって、図26(b)に示す特図変動パラメータ指定テーブルが読み出される。ハズレの場合、変動パターンコマンドの上位バイトとして、図26(b)に示す「DB 0A0H」のうち「A0H」がDレジスタに格納され、当たりの場合、変動パターンコマンドの上位バイトとして、図26(b)に示す「DB 0A1H」のうち「A1H」がDレジスタに格納されることとなる。なお、変動パターンコマンドの下位バイトは、図20(a)に示す変動パターンコマンド取得の処理にて、Eレジスタに格納された変動パターンコマンドとして選択された値(本実施形態においては、「001」)である。 More specifically, by programming "LDT HL,_TMVTBL", the special figure variation parameter specification table shown in FIG. 26(b) is read. In the case of a loss, "A0H" out of "DB 0A0H" shown in FIG. "A1H" of "DB 0A1H" shown in b) is stored in the D register. The lower byte of the variation pattern command is the value selected as the variation pattern command stored in the E register in the variation pattern command acquisition process shown in FIG. ).
次いで、DEレジスタに値が格納されると、
LD HL,(HL);
PUSH ALL;
CALL_S _CMDOUT;
POP ALL
とプログラムすることによって、DEレジスタに格納された変動パターンコマンドが、演出制御CPU900(図7参照)に送信されることとなる。
Then, when the value is stored in the DE register,
LD HL, (HL);
PUSH ALL;
CALL_S_CMDOUT;
POP ALL
By programming, the variation pattern command stored in the DE register is transmitted to the effect control CPU 900 (see FIG. 7).
なお、変動パターンコマンドの下位バイトが、00Hであると、ノイズ等の影響でバグが発生したか否かが不明であるため、図22(a)に示すように、下位バイトは、01Hから使用するようにしている。しかしながら、主制御メイン処理内でのオフセットとしては、0を使用するため、DEレジスタに格納された変動パターンコマンドを、演出制御CPU900(図7参照)に送信した後、図26(a)に示すように、「DEC E」とプログラムして、Eレジスタをディクリメントしている。 If the lower byte of the variation pattern command is 00H, it is unknown whether or not a bug has occurred due to noise or the like. Therefore, as shown in FIG. I am trying to However, as the offset in the main control main process, 0 is used, so the variation pattern command stored in the DE register is sent to the effect control CPU 900 (see FIG. 7), and then shown in FIG. Thus, "DEC E" is programmed to decrement the E register.
また、DEレジスタに格納された変動パターンコマンドを、演出制御CPU900(図7参照)に送信するにあたって、「CALL_S _CMDOUT」とプログラムすることによって、「_CMDOUT」のサブルーチンを呼び出すことにより、DEレジスタに格納された変動パターンコマンドを、演出制御CPU900(図7参照)に送信する処理を行うこととなるが、この際、サブルーチンの処理にて、レジスタの値が書き換わってしまう可能性がある。 Also, when transmitting the variation pattern command stored in the DE register to the effect control CPU 900 (see FIG. 7), by programming "CALL_S _CMDOUT", by calling the subroutine of "_CMDOUT", Stored in the DE register The variation pattern command is sent to the effect control CPU 900 (see FIG. 7), but at this time, there is a possibility that the value of the register will be rewritten in the process of the subroutine.
そこで、本実施形態においては、「CALL_S _CMDOUT」とプログラムする前に、「PUSH ALL」とプログラムし、図23(a)に示すように、汎用レジスタ600a1と、SPレジスタ600a3と、PSWレジスタ600a5と、を主制御RAM600cの通常用スタック領域600cc(図9(a)参照)に退避させるようにし、「CALL_S _CMDOUT」とプログラムした後、「POP ALL」とプログラムし、図23(a)に示すように、退避させた、汎用レジスタ600a1と、SPレジスタ600a3と、PSWレジスタ600a5と、を復帰させるようにしている。
Therefore, in this embodiment, "PUSH ALL" is programmed before "CALL_S_CMDOUT" is programmed, and as shown in FIG. , is saved in the normal stack area 600cc (see FIG. 9(a)) of the
この際、TPレジスタ600a4を退避させないのは、主制御ROM600bの通常用データ領域600bc(図9(b)参照)に格納されているデータを取得するにあたって、TPレジスタ600a4を使用する処理を行うためである。すなわち、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムを使用する処理ではないためである。
At this time, the reason why the TP register 600a4 is not saved is that the TP register 600a4 is used when acquiring the data stored in the normal data area 600bc (see FIG. 9B) of the main control ROM 600b. is. That is, it is used when measuring the total number of game balls shot into the
しかして、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムを使用する処理でない場合、TPレジスタ600a4を退避させる処理を行わないようにしておけば、無駄な処理を実行させずとも良く、もって、処理速度の向上を図ることができる。
However, if the process does not use the program used to measure the total number of game balls shot into the
次いで、DEレジスタに格納された変動パターンコマンドを、演出制御CPU900(図7参照)に送信した後、
DEC E
ADD HL,E
ADD HL,E
LD HL,(HL)
CALL_S _SVTMR
とプログラムすることによって、主制御で使用する変動時間の設定を行っている。なお、図26(b)に示すように、ハズレの場合は、「DW D_TMTMR1」とプログラムされることによって、図27(a)に示す特図変動時間テーブル1が選択され、当たりの場合は、「DW D_TMTMR2」とプログラムされることによって、図27(b)に示す特図変動時間テーブル2が選択されることとなる。
Then, after transmitting the variation pattern command stored in the DE register to the effect control CPU 900 (see FIG. 7),
DEC E
ADDHL,E
ADDHL,E
LD HL, (HL)
CALL_S_SVTMR
By programming, the variable time used in the main control is set. In addition, as shown in FIG. 26(b), in the case of losing, by programming "DW D_TMTMR1", the special figure fluctuation time table 1 shown in FIG. By programming "DWD_TMTMR2", the special figure fluctuation time table 2 shown in FIG. 27(b) will be selected.
しかして、このように、DEレジスタに格納された変動パターンコマンドを、演出制御CPU900(図7参照)に送信した後、主制御で使用する変動時間の設定を行うことによって、処理の効率化を図ることができ、もって、処理速度の向上を図ることができる。 Thus, after transmitting the variation pattern command stored in the DE register to the effect control CPU 900 (see FIG. 7), by setting the variation time used in the main control, the efficiency of the process is improved. Therefore, it is possible to improve the processing speed.
<プログラムの説明>
ここで、上記説明した図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されている抽選処理等の遊技処理時に使用されるプログラム、主制御ROM600bの計測用プログラム領域600beに格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムの概要を図28~図37を参照して説明する。
<Explanation of the program>
Here, the program used during game processing such as lottery processing stored in the normal program area 600ba of the
<メイン処理の説明>
まず、パチンコ遊技機1に電源が投入されると、電源基板130(図7参照)の電圧生成部1300にて生成された直流電圧が各制御基板に投入された旨の電源投入信号が送られ、その信号を受けて、主制御CPU600a(図7参照)は、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムを読み出し、図28に示す主制御メイン処理を行う。この際、主制御CPU600aは、まず、最初に自らを割込み禁止状態に設定する(ステップS1)。
<Description of main processing>
First, when the
次いで、主制御CPU600aは、当該主制御CPU600a内のレジスタ値等の初期設定を行う(ステップS2)。
Next, the
続いて、主制御CPU600aは、サブ制御基板80の起動待ち時間をセットし(ステップS3)、セットした待ち時間をデクリメント(-1)し(ステップS4)、図示しないウォッチドックタイマ(WDT)をクリアする(ステップS5)。
Subsequently, the
次いで、主制御CPU600aは、セットした待ち時間が「0」になったか否かを確認し(ステップS6)、「0」になっていなければ(ステップS6:≠0)、ステップS4の処理に戻り、「0」になっていれば(ステップS6:=0)、ステップS7の処理に進む。
Next, the
次いで、主制御CPU600aは、電源基板130(電圧監視部1310)(図7参照)より出力されている電圧異常信号ALARM(図7参照)を2回取得し、その2回取得した電圧異常信号ALARMのレベルが一致するか否かを確認した上で図示しない当該主制御CPU600aの内部レジスタ内に格納し、その電圧異常信号ALARMのレベルを確認する(ステップS7)。そして電圧異常信号ALARMのレベルが「L」レベルであれば(ステップS8:YES)、ステップS7の処理に戻り、電圧異常信号ALARMのレベルが「H」レベルであれば(ステップS8:NO)、ステップS9の処理に進む。すなわち、主制御CPU600aは、電圧異常信号ALARMが正常レベル(すなわち「H」レベル)に変化するまで同一の処理を繰り返す(ステップS7~S8)。このように、電圧異常信号ALARMを2回取得することで、正確な信号を読み込むことができる。
Next, the
次いで、主制御CPU600aは、図示しないウォッチドックタイマ(WDT)をクリアし(ステップS9)、払出制御基板70から電源が投入された旨の信号(電源投入信号)が来たか否かを確認する(ステップS10)。電源投入信号が来ていなければ(ステップS10:OFF)、ステップS9の処理に戻り、電源投入信号が来ていれば(ステップS10:ON)、主制御CPU600aの内部に設けられている一定周期のパルス出力を作成する機能や時間計測の機能等を有するCTC(Counter Timer Circuit)の設定を行う。すなわち、主制御CPU600aは、4ms毎に定期的にタイマ割込みがかかるように上記CTCの時間定数レジスタを設定する(ステップS11)。
Next, the
なお、このCTCの設定処理が、図14(b)に示す、CTCの設定テーブル(D_CTCSET)をHLレジスタにセットし(LD HL、D_CTCSET)、データセット処理(M_DTSET)をCALL_S命令でコールするようにしているプログラムで処理されるものである。 It should be noted that this CTC setting process sets the CTC setting table (D_CTCSET) in the HL register (LD HL, D_CTCSET) shown in FIG. It is processed by the program that is doing
<メイン処理:設定表示装置に関する説明>
次いで、主制御CPU600aは、図7に示す設定キースイッチ640に専用キーが挿入され、ONされているか否かを確認する(ステップS12)。設定キースイッチ640がONされていれば(ステップS12:YES)、主制御CPU600aは、図2に示すように、上部開閉扉7、下部開放扉8が開放されているか否かを確認する(ステップS13)。上部開閉扉7、下部開放扉8が開放されていれば(ステップS13:YES)、主制御CPU600aは、図9(a)に示す主制御RAM600cの通常用RAM領域600ca、通常用スタック領域600ccを全てクリアする(ステップS14)。ただし、後述する設定値に関するデータが格納されているRAM領域は、前回の設定値を元に変更することも考慮して、クリアせずに保持しておいたほうが望ましい。
<Main processing: Description of setting display device>
Next, the
次いで、主制御CPU600aは、設定変更中フラグをONに設定し(ステップS15)、主制御RAM600c(図7参照)へのデータ書込みを許可する(ステップS16)。
Next, the
次いで、主制御CPU600aは、演出制御基板90に液晶表示装置41に設定変更中であることを表示させるような処理コマンド(演出制御コマンドDI_CMD)を送信し(ステップS17)、主制御RAM600c(図7参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値(例えば「1」~「6」の設定値)を取得する(ステップS18)。なお、この設定変更中であることを表示させるような処理コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
Next, the
次いで、主制御CPU600aは、取得した設定値の値が、「1」~「6」の何れかの値を示しているか否かを確認する(ステップS19)。取得した設定値の値が、「1」~「6」の何れかの値を示していなければ(ステップS19:NO)、取得した設定値に「1」を設定する(ステップS20)。一方、取得した設定値の値が、「1」~「6」の何れかの値を示していれば(ステップS19:YES)、ステップS21の処理に進む。
Next, the
次いで、主制御CPU600aは、上記設定値を設定表示装置620(図7、図8(b)参照)に表示させる処理を行う(ステップS21)。これにより、設定表示装置620に、「1」~「6」の何れかの値が表示させることとなる。
Next, the
次いで、主制御CPU600aは、メイン処理中入力管理処理を実行する(ステップS22)。
Next, the
<メイン処理中入力管理処理の説明>
このメイン処理中入力管理処理について、図29を参照して具体的に説明する。図29に示すように、主制御CPU600aは、まず、図示しないウォッチドックタイマ(WDT)をクリアする(ステップS50)。
<Description of input management processing during main processing>
This input management processing during main processing will be specifically described with reference to FIG. As shown in FIG. 29, the
次いで、主制御CPU600aは、4msのウェイトがかかるように、主制御CPU600a内のレジスタに所定値をセットして、カウントダウンする処理を行う(ステップS51)。なお、この処理は、設定変更スイッチ650(図7参照)のレベルデータの変化を確認する際、前回のスイッチレベルの取得から少なくとも4msの時間をおくことで、ノイズ等のイレギュラーによるレベルデータの変化ではないことを確認するための処理である。
Next, the
次いで、主制御CPU600aは、設定変更スイッチ650(図7参照)のスイッチレベルの変化を確認することができる主制御CPU600aの入力ポート(スイッチポート)から今回のスイッチレベルデータを取得する(ステップS52)。
Next, the
次いで、主制御CPU600aは、前回と今回のスイッチレベルデータからスイッチエッジデータを作成する(ステップ53)。なお、主制御CPU600aは、作成したエッジデータを主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納する。
Next, the
次いで、主制御CPU600aは、電圧監視処理を実行し(ステップS54)、メイン処理中入力管理処理を終える。この電圧監視処理は、電源基板130(図7参照)から出力される電圧異常信号ALARMのレベルを判定し、電圧異常信号ALARMが「L」レベル(異常レベル)であれば、主制御CPU600aの出力ポートのクリア、演出制御基板90への電断コマンド(演出制御コマンドDI_CMD)送信など、バックアップ処理が目的ではなく、通常遊技時の電断時処理を実行することを目的としている。なお、この電断コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
Next, the
かくして、このようなメイン処理中入力管理処理を実行することにより、主制御CPU600aが、設定変更スイッチ650(図7参照)にて設定が変更されていないにも係らず、誤ってノイズ等のデータを取得して設定が変更されたと誤認し、誤った設定変更がされないようにしている。
Thus, by executing such an input management process during main processing, the
<メイン処理:設定表示装置に関する説明>
次いで、主制御CPU600aは、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納している作成したエッジデータを確認し、設定変更スイッチ650(図7参照)にて設定変更完了機能がONされているか否かを確認する(ステップS23)。設定変更スイッチ650(図7参照)にて設定変更完了機能がONされていなければ(ステップS23:NO)、主制御CPU600aは、設定変更スイッチ650(図7参照)にて設定変更機能がONされているか否かを確認する(ステップS24)。設定変更スイッチ650(図7参照)にて設定変更機能がONされていなければ(ステップS24:NO)、主制御CPU600aは、ステップS22の処理に戻り、設定変更スイッチ650(図7参照)にて設定変更機能がONされていれば(ステップS24:YES)、主制御CPU600aは、現在の設定値をインクリメント(+1)し(ステップS25)、ステップS19の処理に戻る。
<Main processing: Description of setting display device>
Next, the
一方、主制御CPU600aは、設定変更スイッチ650(図7参照)にて設定変更完了機能がONされていれば(ステップS23:YES)、現在の設定値を主制御RAM600c(図7参照)内(図9(a)に示す主制御RAM600cの通常用RAM領域600ca)に記憶させ(ステップS26)、設定表示装置620(図7、図8(b)参照)に設定値が確定したことを示す表示をさせる処理を行う(ステップS27)。これにより、設定表示装置620(図8(b)参照)を構成する7セグメントの右下側にあるドットが点灯し、設定内容が確定したことが表示されることとなる。
On the other hand, if the setting change completion function is turned on by the setting change switch 650 (see FIG. 7) (step S23: YES), the
次いで、主制御CPU600aは、図示しないウォッチドックタイマ(WDT)をクリアする(ステップS28)。
Next, the
次いで、主制御CPU600aは、図7に示す設定キースイッチ640がOFFされているか否かを確認する(ステップS29)。OFFされていなければ(ステップS29:NO)、OFFされるまでステップS28~ステップS29の処理を繰り返し行い、OFFされれば(ステップS29:YES)、演出制御基板90に設定された設定値を示す設定値コマンド(演出制御コマンドDI_CMD)を送信し(ステップS30)、設定変更中フラグをOFFに設定し(ステップS31)、ステップS40の処理に進む。なお、この設定値コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
Next, the
<メイン処理の説明>
他方、主制御CPU600aは、設定キースイッチ640(図7参照)がOFF(ステップS12:NO)、図2に示すように、上部開閉扉7、下部開放扉8が開放されていなければ(ステップS13:NO)、主制御CPU600aは、主制御RAM600c(図7参照)へのデータ書込みを許可し(ステップS32)、演出制御基板90に液晶表示装置41に待機画面を表示させるような処理コマンド(演出制御コマンドDI_CMD)を送信する(ステップS33)。
<Description of main processing>
On the other hand, if the setting key switch 640 (see FIG. 7) is OFF (step S12: NO) and the upper opening/
なお、この待機画面表示コマンド送信の設定処理が、図14(b)に示す、液晶表示装置41(図5参照)に待機画面を表示させる待機画面表示コマンド(0BA01H)をDEレジスタにセットし(LD DE、0BA01H)、コマンド送信処理(M_CMDOUT)をCALL_S命令でコールする(CALL_S M_CMDOUT)プログラムで処理されるものである。 14(b), the standby screen display command (0BA01H) for displaying the standby screen on the liquid crystal display device 41 (see FIG. 5) is set in the DE register (see FIG. 5). LD DE, 0BA01H) and command transmission processing (M_CMDOUT) are processed by a program (CALL_SM_CMDOUT) that calls the command transmission processing (M_CMDOUT) with the CALL_S instruction.
次いで、主制御CPU600aは、バックアップフラグBFLの内容を確認する(ステップS34)。なお、このバックアップフラグBFLとは、図30に示す電圧監視処理において、停電等による電圧低下を検出した場合に、バックアップの処理が実行されたか否かを示すデータである。
Next, the
このバックアップフラグBFLがOFF状態(ステップS34:OFF)であれば、後述する図30に示す電圧監視処理において、停電等による電圧低下を検出した場合に、バックアップの処理が実行されていないこととなり、主制御CPU600aは、演出制御基板90にRAMエラーであることを示す処理コマンド(演出制御コマンドDI_CMD)を送信し(ステップS35)、無限ループ処理を行う。なお、このRAMエラーであることを示す処理コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
If the backup flag BFL is in the OFF state (step S34: OFF), it means that backup processing is not being executed when a voltage drop due to a power failure or the like is detected in the voltage monitoring processing shown in FIG. 30, which will be described later. The
一方、バックアップフラグBFLがON状態(ステップS34:ON)であれば、後述する図30に示す電圧監視処理において、停電等による電圧低下を検出した場合に、バックアップの処理が実行されていることとなるため、主制御CPU600aは、チェックサム値を算出するためのチェックサム演算を行う。そして、主制御CPU600aは、上記チェックサム値が算出されたら、この演算結果を主制御RAM600c内のSUM番地の記憶値と比較する処理を行う(ステップS36)。なお、チェックサム演算とは、主制御RAM600cを対象とする8ビット加算演算であり、記憶された演算結果は、主制御RAM600c内に記憶されている他のデータと共に、図7に示す電源基板130にて生成されるバックアップ電源によって維持されている。
On the other hand, if the backup flag BFL is ON (step S34: ON), it means that backup processing is being executed when a voltage drop due to a power failure or the like is detected in the voltage monitoring processing shown in FIG. 30, which will be described later. Therefore, the
このSUM番地の記憶値と算出されたチェックサム値が不一致(ステップS36:NO)であれば、主制御CPU600aは、演出制御基板90にRAMエラーであることを示す処理コマンド(演出制御コマンドDI_CMD)を送信し(ステップS35)、無限ループ処理を行う。なお、上述したように、このRAMエラーであることを示す処理コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
If the stored value of the SUM address and the calculated checksum value do not match (step S36: NO), the
一方、一致(ステップS36:YES)していれば、主制御CPU600aは、RAMクリアスイッチ630(図7参照)の内容を確認する(ステップS37)。RAMクリアスイッチ630のエッジデータがONであれば(ステップS37:ON)、主制御CPU600aは、RAMクリアスイッチ630が押下されたと判断し、主制御RAM600cの計測用RAM領域600ce(図9(a)参照)、計測用スタック領域600cg(図9(a)参照)はクリアせず、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)、通常用スタック領域600cc(図9(a)参照)をクリアし(ステップS39)、ステップS40の処理に進む。
On the other hand, if they match (step S36: YES), the
かくして、上述したように、バックアップフラグがOFFの場合(ステップS34:OFF)や、チェックサム値が一致していない場合(ステップS36:NO)、RAMクリアスイッチ630(図7参照)がONとなっていても、主制御RAM600cの通常用RAM領域600ca、通常用スタック領域600cc(図9(a)参照)がクリアされることはない。これは、バックアップ処理に異常があった場合やチェックサム値が異常の場合、設定表示装置620(図7、図8(b)参照)に表示される設定値が異常となっている可能性が高いためである。それゆえ、本実施形態にて示すように、ステップS35の処理後、無限ループ処理を実行し、再度、電源投入をし直し、設定値の変更処理を行ってからでないと遊技を再開できないようにすることで、遊技者及び遊技場(ホール)側が不利益となる事態を防止することができる。
Thus, as described above, when the backup flag is OFF (step S34: OFF) or when the checksum values do not match (step S36: NO), the RAM clear switch 630 (see FIG. 7) is turned ON. However, the normal RAM area 600ca and the normal stack area 600cc (see FIG. 9A) of the
一方、RAMクリアスイッチ630のエッジデータがOFFであれば(ステップS37:OFF)、主制御CPU600aは、RAMクリアスイッチ630が押下されていないと判断し、主制御RAM600c内に記憶されているデータに基づいて電源遮断時の遊技動作に復帰させる処理を行う(ステップS38)。
On the other hand, if the edge data of the RAM
かくして、主制御CPU600aは、上記ステップS38又はステップS39の処理を終えた後、主制御RAM600c(図7参照)へのデータ書込みを許可し(ステップS40)、図示しないウォッチドックタイマ(WDT)をクリアする(ステップS41)。
Thus, after completing the process of step S38 or step S39, the
次いで、主制御CPU600aは、発射制御信号をONに設定し、払出制御基板70に送信する(ステップS42)。これにより、払出制御基板70は、発射制御基板71の動作を開始させるように制御する。
Next, the
次いで、主制御CPU600aは、自身への割込みを禁止状態にセットした状態(ステップS43)で、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムを読み出し、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等の性能を算出する賞球入賞数管理処理1の処理を行う(ステップS44)。この処理の際、図25に示すように、「PUSH ALL」,「PUSH TP」のプログラムが実行され、図23(a)に示すように、汎用レジスタ600a1と、SPレジスタ600a3と、PSWレジスタ600a5と、が主制御RAM600cの計測用スタック領域600cg(図9(a)参照)に退避され、「PUSH TP」により、図23(b)に示すように、TPレジスタ600a4が主制御RAM600cの計測用スタック領域600cg(図9(a)参照)に退避されることとなる。なお、賞球入賞数管理処理1の処理を行った後、「POP TP」,「POP ALL」のプログラムが実行され、図23(b)に示すように、退避させたTPレジスタ600a4が復帰し、図23(a)に示すように、退避させた、汎用レジスタ600a1と、SPレジスタ600a3と、PSWレジスタ600a5と、が復帰することとなる。
Next, the
次いで、主制御CPU600aは、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムに基づいて、各種の乱数カウンタの更新処理を行った後(ステップS45)、割込み許可状態に戻して(ステップS46)、ステップS43に戻り、ステップS43~ステップS46の処理を繰り返し行うループ処理を行う。
Next, the
なお、このステップS43~ステップS46の処理が、図14(f)に示す、割込み禁止処理(DI)をした後、賞球入賞数管理処理1(M_SHOUKYU1)をCALL命令でコールし(CALL M_SHOUKYU1)、各種乱数更新処理(M_RANSU)をCALL_M命令でコールし(CALL M_SHOUKYU1)、割込み許可(EI)をするという処理を繰り返し行うプログラムで処理されるものである。 It should be noted that the process of step S43 to step S46, shown in FIG. 14 (f), after performing the interrupt prohibition process (DI), call the prize ball winning number management process 1 (M_SHOUKYU1) with a CALL instruction (CALL M_SHOUKYU1). , various random number updating processes (M_RANSU) are called with the CALL_M instruction (CALL M_SHOUKYU1), and interrupts are permitted (EI).
しかして、このように、RAMクリアスイッチ630(図7参照)が押下されていた際、主制御RAM600cの計測用RAM領域600cb、計測用スタック領域600cg(図9(a)参照)はクリアせず、主制御RAM600cの通常用RAM領域600ca、通常用スタック領域600cc(図9(a)参照)をクリアするようにすれば、計測した賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等が誤ってクリアされる事態を防止することができる。すなわち、何らかの異常等が発生し電源が遮断され、その後、電源遮断復帰したとしても、計測した賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等が誤ってクリアされる事態を防止することができるため、計測表示装置610(図7、図8(a)参照)に表示される正確な情報を生成することができ、もって、電源遮断復帰時に正確な情報を生成することができる。
Thus, when the RAM clear switch 630 (see FIG. 7) is pressed, the measurement RAM area 600cb and the measurement stack area 600cg (see FIG. 9A) of the
<タイマ割込み処理の説明>
次に、図30を参照して、上述したメイン処理を中断させて、4ms毎に開始されるタイマ割込みプログラムについて説明する。なお、このプログラムは、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムを読み出して実行するものである。
<Description of timer interrupt processing>
Next, with reference to FIG. 30, a timer interrupt program that interrupts the above-described main processing and is started every 4 ms will be described. This program is to read and execute a program stored in the normal program area 600ba of the
このタイマ割込みが生じると、主制御CPU600a内のレジスタ群の内容を主制御RAM600cの通常用スタック領域600cc(図9(a)参照)に退避させる退避処理を実行し(ステップS100)、その後電圧監視処理を実行する(ステップS101)。この電圧監視処理は、電源基板130(図7参照)から出力される電圧異常信号ALARMのレベルを判定し、電圧異常信号ALARMが「L」レベル(異常レベル)であれば、主制御RAM600c内に記憶されているデータのバックアップ処理、すなわち、当該データのチェックサム値を算出し、その算出したチェックサム値をバックアップデータとして主制御RAM600c内に保存する処理を行うものである。
When this timer interrupt occurs, save processing is executed to save the contents of the register group in the
次いで、主制御CPU600aは、上記電圧監視処理(ステップS101)が終了すると、各遊技動作の時間を管理している各種タイマ(普通図柄変動タイマ、普通図柄役物タイマ等)のタイマ減算処理を行う(ステップS102)。
Next, when the voltage monitoring process (step S101) ends, the
続いて、主制御CPU600aには、特別図柄1始動口スイッチ44a(図7参照)と、特別図柄2始動口スイッチ45a(図7参照)と、普通図柄始動口スイッチ47a(図7参照)と、右上一般入賞口スイッチ48a1(図7参照),左上一般入賞口スイッチ48b1(図7参照),左中一般入賞口スイッチ48c1(図7参照),左下一般入賞口スイッチ48d1(図7参照)と、アウト口スイッチ49a(図7参照)と、大入賞口スイッチ46c(図7参照)を含む各種スイッチ類のON/OFF信号が入力され、主制御RAM600c内の作業領域にON/OFF信号レベルや、その立ち上がり状態が記憶される(ステップS103)。
Next, the
次いで、主制御CPU600aは、乱数管理処理を行う(ステップS104)。具体的には、当否抽選に使用する普通図柄、特別図柄等の乱数を更新する処理を行うものである。なお、この際、上述した図13(b)~(d)に示すようなカウンタプログラムが実行されることとなる。
Next, the
次いで、主制御CPU600aは、エラー管理処理を行う(ステップS105)。なお、エラー管理処理は、遊技球の補給が停止したり、あるいは、遊技球が詰まったり、特別図柄1始動口スイッチ44a(図7参照)、特別図柄2始動口スイッチ45a(図7参照)、普通図柄始動口スイッチ47a(図7参照)、右上一般入賞口スイッチ48a1(図7参照)、左上一般入賞口スイッチ48b1(図7参照)、左中一般入賞口スイッチ48c1(図7参照)、左下一般入賞口スイッチ48d1(図7参照)、アウト口スイッチ49a(図7参照)、大入賞口スイッチ46c(図7参照)の断線など、機器内部に異常が生じていないかの判定を行うものである。なお、何らかのエラーが発生した際、演出制御基板90へ、そのエラーに応じたコマンド(演出制御コマンドDI_CMD)が送信されることとなり、このコマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
Next, the
次いで、主制御CPU600aは、主制御RAM600c(図7参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値が「1」~「6」の範囲内か否かを示すRAMエラーフラグを確認する(ステップS106)。RAMエラーフラグがONに設定されていれば(ステップS106:YES)、主制御CPU600aは、主制御RAM600c(図7参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値が「1」~「6」の範囲外となっていると判断し、図柄に関連する処理をスキップし、ステップS119の処理に進む。一方、RAMエラーフラグがOFFに設定されていれば(ステップS106:NO)、主制御CPU600aは、主制御RAM600c(図7参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値が「1」~「6」の範囲内となっていると判断し、ステップS107の処理に進む。
Next, the
次いで、主制御CPU600aは、設定変更中フラグを確認する(ステップS107)。設定変更中フラグがONに設定されていれば(ステップS107:YES)、主制御CPU600aは、本来電源投入時でしか変更できない設定値の変更状態となっているイレギュラー状態と判断し、ステップS117の処理に進む。一方、設定変更中フラグがOFFに設定されていれば(ステップS107:NO)、主制御CPU600aは、遊技者に有利な特別遊技状態を発生させる確率の設定値が変更中でないと判断し、ステップS108の処理に進む。
Next, the
次いで、主制御CPU600aは、設定確認フラグを確認する(ステップS108)。設定確認フラグがONに設定されていれば(ステップS108:YES)、主制御CPU600aは、遊技者に有利な特別遊技状態を発生させる確率の設定値を確認中であると判断し、ステップS114の処理に進む。一方、設定確認フラグがOFFに設定されていれば(ステップS108:NO)、主制御CPU600aは、遊技者に有利な特別遊技状態を発生させる確率の設定値を確認中でないと判断し、ステップS109の処理に進む。
Next, the
次いで、主制御CPU600aは、賞球管理処理を実行する(ステップS109)。この賞球管理処理は、払出制御基板70(図7参照)に払出し動作を行わせるための払出制御コマンドPAY_CMDを出力している。
Next, the
次いで、主制御CPU600aは、普通図柄処理を実行する(ステップS110)。この普通図柄処理は、普通図柄の当否抽選を実行し、その抽選結果に基づいて普通図柄の変動パターンや普通図柄の停止表示状態を決定したりするものである。なお、この処理の詳細は後述することとする。
Next, the
次いで、主制御CPU600aは、普通電動役物管理処理を実行する(ステップS1111)。この普通電動役物管理処理は、普通図柄処理(ステップS110)の抽選結果に基づき、普通電動役物開放遊技発生に必要な普通電動役物ソレノイド45c(図7参照)の制御に関する信号が生成されるものである。
Next, the
次いで、主制御CPU600aは、特別図柄処理を実行する(ステップS112)。この特別図柄処理では、特別図柄の当否抽選を実行し、その抽選の結果に基づいて特別図柄の変動パターンや特別図柄の停止表示態様を決定するものである。なお、この処理の詳細は後述することとする。
Next, the
ところで、特別図柄処理を実行する際、主制御CPU600aは、特別図柄の当否抽選に関し、主制御RAM600c(図7参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値に基づいて、特別図柄の当否抽選を行う。そのため、主制御CPU600aは、主制御RAM600c(図7参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値が「1」~「6」の範囲内であるか否かを確認し、範囲外であれば、RAMエラーフラグにONを設定する。
By the way, when executing the special symbol processing, the
次いで、主制御CPU600aは、特別電動役物管理処理を実行する(ステップS113)。この特別電動役物管理処理では、主に、大当たり抽選結果が「大当たり」又は「小当たり」であった場合、その当りに対応した当り遊技を実行制御するために必要な設定処理を行うものである。この際、特別電動役物ソレノイド46b(図7参照)の制御に関する信号も生成される。なお、大当たり抽選結果が「大当たり」又は「小当たり」であった場合、それに関するコマンド(演出制御コマンドDI_CMD)が演出制御基板90に送信される。なお、このコマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
Next, the
次いで、主制御CPU600aは、主制御RAM600c(図7参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値を確認する処理を行う(ステップS114)。
Next, the
次いで、主制御CPU600aは、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムを読み出し、賞球入賞数管理処理2を実行する(ステップS115)。この賞球入賞数管理処理2では、図28に示すステップS44の賞球入賞数管理処理1にて算出した値を計測表示装置610(図7、図8(a)参照)に表示させる処理を行うものである。この処理の際、図24に示すように、「PUSH ALL」,「PUSH TP」のプログラムが実行され、図23(a)に示すように、汎用レジスタ600a1と、SPレジスタ600a3と、PSWレジスタ600a5と、が主制御RAM600cの計測用スタック領域600cg(図9(a)参照)に退避され、「PUSH TP」により、図23(b)に示すように、TPレジスタ600a4が主制御RAM600cの計測用スタック領域600cg(図9(a)参照)に退避されることとなる。なお、賞球入賞数管理処理2の処理を行った後、「POP TP」,「POP ALL」のプログラムが実行され、図23(b)に示すように、退避させたTPレジスタ600a4が復帰し、図23(a)に示すように、退避させた、汎用レジスタ600a1と、SPレジスタ600a3と、PSWレジスタ600a5と、が復帰することとなる。
Next, the
ところで、賞球入賞数管理処理2は、図30に示すように、RAMエラー(図30に示すステップS106)、設定値の変更状態となっているイレギュラー状態(図30に示すステップS107)は処理されないこととなる。なお、賞球入賞数管理処理2は、CALL命令でコールされて処理されることとなる。
By the way, as shown in FIG. 30, in the prize ball winning
次いで、主制御CPU600aは、ソレノイド駆動処理を行う(ステップS116)。この際、主制御CPU600aは、普通電動役物管理処理(ステップS111)にて生成された普通電動役物ソレノイド45c(図7参照)の制御に関する信号を確認すると共に、特別電動役物管理処理(ステップS113)にて生成された特別電動役物ソレノイド46b(図7参照)の制御に関する信号を確認する。そしてこの信号に基づき、普通電動役物ソレノイド45c又は特別電動役物ソレノイド46bの作動/停止が制御され、開閉部材45b(図5参照)が開放又は閉止、あるいは、大入賞口(図示せず)が開放又は閉止するように開閉扉46a(図5参照)が動作することとなる。
Next, the
次いで、主制御CPU600aは、LED管理処理を実行する(ステップS117)。このLED管理処理は、処理の進行状態に応じて、特別図柄表示装置50(図5参照)や普通図柄表示装置51(図5参照)への出力データを生成したり、当該データに基づく制御信号を出力したり、あるいは、設定変更中フラグ、設定確認フラグがONに設定されている場合は、設定表示装置620(図7、図8(b)参照)への出力データを生成したり、当該データに基づく制御信号を出力したりする処理である。この処理により、特別図柄表示装置50、普通図柄表示装置51に抽選結果が表示され、設定表示装置620に遊技者に有利な特別遊技状態を発生させる確率の設定値が表示されることとなる。
Next, the
次いで、主制御CPU600aは、外部端子管理処理を実行する(ステップS118)。この外部端子管理処理では、遊技場の遊技島管理に使用されるホールコンピュータ(図示せず)に、当り遊技中、当りの発生回数、特別図柄の変動回数、入賞口への入賞球検出情報など、所定の遊技情報が出力されるものである。また、設定変更中フラグ、設定確認フラグがONに設定されている場合は、セキュリティ信号の出力が行われる。
Next, the
次いで、主制御CPU600aは、割込み許可状態に戻し(ステップS119)、主制御RAM600cの通常用スタック領域600cc(図9(a)参照)に退避させておいたレジスタの内容を復帰させタイマ割込みを終える(ステップS120)。これにより、割込み処理ルーチンからメイン処理(図28参照)に戻ることとなる。
Next, the
なお、タイマ割込み処理にて実行される電圧監視処理(ステップS101)~エラー管理処理(ステップS105)、賞球管理処理(ステップS109)~外部端子管理処理(ステップS118)は、CALL_M命令でコールされて処理されることとなる。 The voltage monitoring process (step S101) to error management process (step S105), the prize ball management process (step S109) to the external terminal management process (step S118) executed in the timer interrupt process are called by the CALL_M instruction. will be processed.
<普通図柄処理の説明>
次に、図31を参照して、上記普通図柄処理について詳細に説明する。
<Description of normal symbol processing>
Next, referring to FIG. 31, the normal symbol processing will be described in detail.
図31に示すように、普通図柄処理は、先ず、ゲートからなる普通図柄始動口47(図5参照)において、遊技球の通過を検出したか否かを確認、すなわち、普通図柄始動口47の普通図柄始動口スイッチ47a(図7参照)の信号レベルを確認する(ステップS150)。そして遊技球の通過を検出した場合(ステップS150:YES)、主制御CPU600aは、普通図柄の始動保留球数が例えば4以上か否かを判断するため、普通図柄の始動保留球数が格納されている主制御RAM600cの通常用RAM領域600ca(図9(a)参照)を確認する(ステップS151)。その際、普通図柄の始動保留球数が4未満であれば(ステップS151:≠MAX)、普通図柄の始動保留球数を1加算する(ステップS152)。その後、主制御CPU600aは、普通図柄の当否抽選に用いられる普通図柄当り判定用乱数値を普通図柄の始動保留球数が格納されている主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納した上で(ステップS153)、ステップS154の処理に進む。
As shown in FIG. 31, in the normal symbol processing, first, in the normal symbol starting port 47 (see FIG. 5) consisting of a gate, it is confirmed whether or not the passage of the game ball is detected. The signal level of the normal symbol starting
一方、ステップS150にて、遊技球の通過を検出しなかった場合(ステップS150:NO)、ステップS151にて、普通図柄の始動保留球数が4以上であると判断した場合(ステップS151:=MAX)には、ステップS152~S153の処理は行わず、ステップS154の処理に進む。 On the other hand, in step S150, when the passage of the game ball is not detected (step S150: NO), in step S151, when it is determined that the number of start suspension balls in the normal design is 4 or more (step S151: = MAX), the process of steps S152 and S153 is not performed, and the process proceeds to step S154.
主制御CPU600aは、ステップS154の処理に進むと、普通図柄当たり作動フラグがONに設定されているか、すなわち、普通図柄当たり作動フラグに5AHが設定されているかを確認する(ステップS154)。普通図柄当たり作動フラグに5AHが設定されていれば(ステップS154:ON)、普通図柄が当たり中であると判断し、普通図柄の表示データの更新を行った後(ステップS153)、普通図柄処理を終える。
When proceeding to the process of step S154, the
一方、普通図柄当たり作動フラグに5AHが設定されていなければ(ステップS154:OFF)、普通図柄の挙動を示す処理状態、すなわち、普通図柄動作ステータスフラグの値を確認する(ステップS155)。そして、普通図柄動作ステータスフラグが00Hであれば、主制御CPU600aは、普通図柄の変動開始前の状態であると判断し、ステップS156に進み、普通図柄の始動保留球数が0か否かを確認する(ステップS156)。
On the other hand, if 5AH is not set to the operation flag per normal symbol (step S154: OFF), the processing state indicating the behavior of the normal symbol, that is, the value of the normal symbol operation status flag is confirmed (step S155). Then, if the normal design operation status flag is 00H, the
主制御CPU600aは、普通図柄の始動保留球数が格納されている主制御RAM600cの通常用RAM領域600ca(図9(a)参照)を確認した上で、0であると判断した場合(ステップS156:=0)は、普通図柄の表示データの更新を行った後(ステップS153)、普通図柄処理を終える。一方、0でないと判断した場合(ステップS156:≠0)は、普通図柄の始動保留球数を1減算する(ステップS157)。
The
その後、主制御CPU600aは、図37(a)に示す普通図柄当たり判定テーブルNPP_TBLを用いて主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納されている普通図柄の始動保留球数に対応した乱数値の当たり判定を行う。すなわち、主制御CPU600aは、遊技状態を示す普通図柄確変フラグがOFFであれば、当該乱数値が、図37(a)に示す普通図柄当たり判定テーブルNPP_TBL(通常状態)の下限値(図示では、249)以上で上限値(図示では、250)以下か否かを判定し、下限値以上で上限値以下であれば、普通図柄当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、普通図柄当たり判定フラグをOFFにする。
After that, the
一方、遊技状態を示す普通図柄確変フラグがONであれば、当該乱数値が、図37(a)に示す普通図柄当たり判定テーブルNPP_TBL(確変状態)の下限値(図示では、4)以上で上限値(図示では、250)以下か否かを判定し、下限値以上で上限値以下であれば、普通図柄当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、普通図柄当たり判定フラグをOFFにセットする処理を行う(ステップS158)。 On the other hand, if the normal symbol probability variation flag indicating the gaming state is ON, the random number is the lower limit value (4 in the illustration) of the normal symbol hit determination table NPP_TBL (probability variation state) shown in FIG. A value (250 in the figure) is determined, and if it is equal to or more than the lower limit value and equal to or less than the upper limit value, 5AH is set to the normal symbol hit determination flag and turned ON. Otherwise, a process of setting the normal symbol hit determination flag to OFF is performed (step S158).
そして、主制御CPU600aは、上記乱数抽選処理にて決定した抽選結果に基づいて、停止図柄(普通図柄停止図柄)を決定する(ステップS159)。
Then, the
次いで、主制御CPU600aは、普通図柄の変動時間を短くする普通図柄時短フラグがONに設定されているかを確認し、ONに設定されていれば、普通図柄変動タイマにそれに応じた変動時間を設定し、OFFに設定されていれば、普通図柄変動タイマに通常の変動時間を設定する処理を行う(ステップS160)。
Next, the
次いで、主制御CPU600aは、普通図柄の始動保留球数に対応した普通図柄の当否抽選に用いられる乱数値が格納されている主制御RAM600cの通常用RAM領域600ca(図9(a)参照)の記憶領域をシフトする(ステップS161)。すなわち、普通図柄の始動保留球数を最大で4個保留できるとすると、普通図柄の始動保留球数4に対応した普通図柄の当否抽選に用いられる乱数値を普通図柄の始動保留球数3に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図9(a)参照)にシフトし、普通図柄の始動保留球数3に対応した普通図柄の当否抽選に用いられる乱数値を普通図柄の始動保留球数2に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図9(a)参照)にシフトし、普通図柄の始動保留球数2に対応した普通図柄の当否抽選に用いられる乱数値を普通図柄の始動保留球数1に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図9(a)参照)にシフトするという処理を行う。
Next, the
この処理の後、主制御CPU600aは、上記ステップS155にて用いた普通図柄動作ステータスフラグに01Hを設定し、普通図柄の始動保留球数4に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に00Hを設定する処理を行う(ステップS162)。
After this process, the
そして、主制御CPU600aは、上記ステップS162の処理を終えた後、普通図柄の表示データの更新を行い(ステップS163)、普通図柄処理を終える。
Then, after completing the process of step S162, the
他方、主制御CPU600aは、上記ステップS155にて、普通図柄の挙動を示す処理状態、すなわち、普通図柄動作ステータスフラグの値が01Hであれば、主制御CPU600aは、普通図柄が変動中であると判断し、ステップS164に進み、普通図柄変動タイマが0か否かを確認する(ステップS164)。普通図柄変動タイマが0でなければ(ステップS164:≠0)、普通図柄の表示データの更新を行い(ステップS163)、普通図柄処理を終える。そして、普通図柄変動タイマが0であれば(ステップS164:=0)、主制御CPU600aは、上記ステップS155にて用いた普通図柄動作ステータスフラグに02Hを設定し、普通図柄の当否抽選結果を一定時間維持させるために、普通図柄変動タイマに例えば約600msの時間が設定される(ステップS165)。
On the other hand, the main control CPU600a, in the above step S155, the processing state indicating the behavior of the normal symbol, that is, if the value of the normal symbol operation status flag is 01H, the main control CPU600a determines that the normal symbol is fluctuating. It judges, it progresses to step S164, and it confirms whether a normal design variation timer is 0 (step S164). If the normal symbol fluctuation timer is not 0 (step S164: ≠0), the normal symbol display data is updated (step S163), and the normal symbol processing is finished. Then, if the normal symbol variation timer is 0 (step S164: = 0), the
主制御CPU600aは、上記ステップS165の処理を終えた後、普通図柄の表示データの更新を行い(ステップS163)、普通図柄処理を終える。
After completing the process of step S165, the
一方、主制御CPU600aは、上記ステップS155にて、普通図柄の挙動を示す処理状態、すなわち、普通図柄動作ステータスフラグの値が02Hであれば、主制御CPU600aは、普通図柄が確認時間中(普通図柄の変動が終了して停止中)であると判断し、ステップS166に進み、普通図柄変動タイマが0か否かを確認する(ステップS166)。普通図柄変動タイマが0でなければ(ステップS166:≠0)、普通図柄の表示データの更新を行い(ステップS163)、普通図柄処理を終える。そして、普通図柄変動タイマが0であれば(ステップS166:=0)、主制御CPU600aは、上記ステップS155にて用いた普通図柄動作ステータスフラグに00Hを設定し(ステップS167)、普通図柄当たり判定フラグがONに設定(5AHが設定)されているかを確認する(ステップS168)。
On the other hand, in the above step S155, the
これにより、普通図柄当たり判定フラグがOFFに設定(5AHが設定されていない)されていれば(ステップS168:OFF)、主制御CPU600aは、普通図柄の表示データの更新を行い(ステップS163)、普通図柄処理を終える。そして、普通図柄当たり判定フラグがONに設定(5AHが設定)されていれば(ステップS168:ON)、主制御CPU600aは、ステップS154にて用いられる普通図柄当たり作動フラグをON(5AHを設定)に設定した(ステップS169)後、普通図柄処理を終える。
Thus, if the normal symbol hit determination flag is set to OFF (5AH is not set) (step S168: OFF), the
<特別図柄処理の説明>
次に、図32~図37を参照して、上記特別図柄処理について詳細に説明する。
<Description of special symbol processing>
Next, with reference to FIGS. 32 to 37, the special symbol processing will be described in detail.
図32に示すように、特別図柄処理は、先ず、特別図柄1始動口44(図5参照)の特別図柄1始動口スイッチ44a(図7参照)において、遊技球の入球(入賞球)を検出した否かを確認し(ステップS200)、さらに、特別図柄2始動口45(図5参照)の特別図柄2始動口スイッチ45a(図7参照)において、遊技球の入球(入賞球)を検出したか否かを確認する(ステップS201)。
As shown in FIG. 32, in the special symbol processing, first, a game ball enters (winning ball) at the
<特別図柄処理:始動口チェック処理の説明>
この処理について、図33を用いて詳しく説明すると、主制御CPU600aは、特別図柄1始動口44又は特別図柄2始動口45に遊技球が入球(入賞)したか否かを確認、すなわち、特別図柄1始動口44の特別図柄1始動口スイッチ44a又は特別図柄2始動口45の特別図柄2始動口スイッチ45aのレベルを確認する(ステップS250)。これにより、遊技球の入球(入賞)を検出しなければ(ステップS250:NO)、特別図柄処理を終える。
<Special symbol processing: Description of start port check processing>
This process will be explained in detail with reference to FIG. The level of the
一方、遊技球の入球(入賞)を検出すれば(ステップS250:YES)、主制御CPU600aは、特別図柄の変動契機となる始動保留球数が所定数、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納されているか否かを確認する(ステップS251)。その始動保留球数が、4未満であれば(ステップS251:≠MAX)、当該始動保留球数を1加算(+1)する(ステップS252)。
On the other hand, if the entry of a game ball (winning a prize) is detected (step S250: YES), the
次いで、主制御CPU600aは、特別図柄停止の際用いられる乱数値及び変動パターン用乱数値並びに大当たり判定用乱数値を特別図柄の変動契機となる始動保留球数が格納されている主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納する(ステップ253)。
Next, the
次いで、主制御CPU600aは、現在の遊技状態(特別図柄大当たり判定フラグがONに設定されているか否か等)を確認し、先読み禁止状態か否かを判定する(ステップS254)。そして、先読み禁止状態でなければ(ステップS254:NO)、主制御CPU600aは、上記ステップS253にて主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納した特別図柄の当否抽選に用いられる大当たり判定用乱数値を取得し(ステップS255)、さらに、図示しない始動口入賞時乱数判定テーブルを取得する(ステップS256)。
Next, the
次いで、主制御CPU600aは、上記ステップS255にて取得した大当たり判定用乱数値及びステップS256にて取得した始動口入賞時乱数判定テーブル(図示せず)を用いて、大当たり抽選を行い、さらに、上記ステップS253にて主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納した特別図柄用乱数値を用いて、大当たりの種類(ランクアップボーナス当り,通常の大当り等)を決定し、変動パターン用乱数値を用いて、変動パターンを決定し、それに応じた特別図柄始動口入賞コマンドを生成する(ステップS257)。なお、この特別図柄始動口入賞コマンドを生成する際、図11(b)、図26、図27に示すような変動時間を取得するプログラムが実行されることとなる。
Next, the
次いで、主制御CPU600aは、上記生成された特別図柄始動口入賞コマンドに応じた下位バイトの始動保留加算コマンドを生成する(ステップS258)。
Next, the
一方、主制御CPU600aは、上記ステップS258の処理を終えるか、又は、上記ステップS251にて特別図柄1又は2の始動保留球数が4以上であるか(ステップS251:=MAX)、あるいは、先読み禁止状態であれば(ステップS254:YES)、増加した始動保留球数に応じた上位バイトの始動保留加算コマンドを生成する(ステップS259)。
On the other hand, the
次いで、主制御CPU600aは、上記ステップS258にて生成した下位バイトの始動保留加算コマンドと、上記ステップS259にて生成した上位バイトの始動保留加算コマンドとを結合した上で、始動保留加算コマンド(演出制御コマンドDI_CMD)として、演出制御基板90に送信する処理を行う(ステップS260)。この始動保留加算コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
Next, the
<特別図柄処理の説明>
かくして、図32に示すステップS200及びステップS201の処理を終えると、主制御CPU600aは、特別図柄小当たり作動フラグがONに設定されているか、すなわち、特別図柄小当たり作動フラグに5AHが設定されているかを確認する(ステップS202)。特別図柄小当たり作動フラグに5AHが設定されていれば(ステップS202:ON)、特別図柄が小当たり中であると判断し、特別図柄の表示データの更新を行った後(ステップS208)、特別図柄処理を終える。
<Description of special symbol processing>
Thus, when the processing of steps S200 and S201 shown in FIG. 32 is finished, the
一方、特別図柄小当たり作動フラグに5AHが設定されていなければ(ステップS202:OFF)、特別図柄大当たり作動フラグがONに設定されているか、すなわち、特別図柄大当たり作動フラグに5AHが設定されているかを確認する(ステップS203)。特別図柄大当たり作動フラグに5AHが設定されていれば(ステップS203:ON)、特別図柄が大当たり中であると判断し、特別図柄の表示データの更新を行った後(ステップS208)、特別図柄処理を終える。 On the other hand, if the special symbol small winning operation flag is not set to 5AH (step S202: OFF), is the special symbol big winning operation flag set to ON, that is, is the special symbol big winning operation flag set to 5AH? is confirmed (step S203). If 5AH is set in the special symbol big hit operation flag (step S203: ON), it is determined that the special symbol is in the midst of a big hit, and after updating the display data of the special symbol (step S208), special symbol processing is performed. finish.
一方、特別図柄大当たり作動フラグに5AHが設定されていなければ(ステップS203:OFF)、特別図柄の挙動を示す処理状態、すなわち、特別図柄動作ステータスフラグの値を確認する(ステップS204)。より詳しく説明すると、主制御CPU600aは、特別図柄動作ステータスフラグの値が00H又は01Hであれば、特別図柄変動待機中(特別図柄の変動が行われておらず次回の変動のための待機状態であることを示す)であると判定し、特別図柄変動開始処理を行う(ステップS205)。
On the other hand, if 5AH is not set in the special symbol jackpot operation flag (step S203: OFF), the processing state indicating the behavior of the special symbol, that is, the value of the special symbol operation status flag is confirmed (step S204). More specifically, if the value of the special symbol operation status flag is 00H or 01H, the
<特別図柄処理:特別図柄変動開始処理の説明>
この処理について、図34を用いて詳しく説明すると、主制御CPU600aは、特別図柄の変動契機となる始動保留球数が0か否かを確認する(ステップS300)。すなわち、主制御CPU600aは、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納されているか否かを確認し、始動保留球数が0であると判断した場合(ステップS300:=0)、特別図柄動作ステータスフラグの値が00Hか否かを確認する(ステップS301)。特別図柄動作ステータスフラグの値が00Hであれば(ステップS301:YES)、特別図柄変動開始処理を終了する。
<Special symbol processing: Explanation of special symbol variation start processing>
This process will be described in detail with reference to FIG. 34. The
一方、特別図柄動作ステータスフラグの値が00Hでなければ(ステップS301:NO)、主制御CPU600aは、客待ちデモコマンドを演出制御コマンドDI_CMDとして演出制御基板90に送信する(ステップS302)。なお、客待ちデモコマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
On the other hand, if the value of the special symbol operation status flag is not 00H (step S301: NO), the
次いで、主制御CPU600aは、特別図柄動作ステータスフラグに00Hをセットし(ステップS303)、特別図柄変動開始処理を終了する。
Next, the
他方、主制御CPU600aは、始動保留球数が0でないと判断した場合(ステップS300:≠0)、始動保留球数を1減算(-1)し(ステップS304)、始動保留減算コマンドを演出制御コマンドDI_CMDとして、演出制御基板90に送信する(ステップS305)。なお、始動保留減算コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
On the other hand, when the
次いで、主制御CPU600aは、特別図柄停止の際用いられる乱数値及び変動パターン用乱数値並びに大当たり判定用乱数値(図33のステップS253参照)が格納されている主制御RAM600cの通常用RAM領域600ca(図9(a)参照)内の記憶領域をシフトし(ステップS306)、始動保留4に対応した特別図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図9(a)参照)内の領域に0を設定する(ステップS307)。
Next, the
次いで、主制御CPU600aは、図33のステップS253にて主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納した各始動保留球数(始動保留1~4)に対応した乱数値(大当たり判定用乱数値)が、特別図柄の大当たりか小当たりかを図37(b)に示す特別図柄大当たり判定テーブルSDH_TBL、図37(c)に示す特別図柄小当たり判定テーブルSDP_TBLを用いて判定する。すなわち、主制御CPU600aは、遊技状態を示す特別図柄確変フラグがOFFであれば、大当たり判定用乱数値が、図37(b)に示す特別図柄大当たり判定テーブルSDH_TBL(通常状態)の下限値(図示では、10001)以上で上限値(図示では、10164)以下か否かを判定し、下限値以上で上限値以下であれば、特別図柄大当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、特別図柄大当たり判定フラグをOFFにする。
Next, the main control CPU600a, in step S253 of FIG. 33, the random number corresponding to each starting suspension ball number (starting suspension 1-4) stored in the normal RAM area 600ca of the main control RAM600c (see FIG. 9 (a)) A numerical value (random number for judging a big hit) indicates whether the special pattern is a big hit or a small hit using a special symbol big hit determination table SDH_TBL shown in FIG. 37(b) and a special symbol small hit determination table SDP_TBL shown in FIG. judge. That is, the
一方、遊技状態を示す特別図柄確変フラグがONであれば、大当たり判定用乱数値が、図37(b)に示す特別図柄大当たり判定テーブルSDH_TBL(確変状態)の下限値(図示では、10001)以上で上限値(図示では、11640)以下か否かを判定し、下限値以上で上限値以下であれば、特別図柄大当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、特別図柄大当たり判定フラグをOFFにセットする処理を行う。 On the other hand, if the special symbol probability variation flag indicating the gaming state is ON, the jackpot determination random number is the lower limit value (10001 in the illustration) of the special symbol jackpot determination table SDH_TBL (probability variation state) shown in FIG. 37(b) or more. It determines whether it is below the upper limit value (11640 in the figure), and if it is above the lower limit value and below the upper limit value, it sets 5AH to the special symbol jackpot determination flag and turns it ON. Otherwise, a process of setting the special symbol jackpot determination flag to OFF is performed.
他方、主制御CPU600aは、特別図柄2変動中フラグがOFFであれば、大当たり判定用乱数値が、図37(c)に示す特別図柄小当たり判定テーブルSDP_TBL(特別図柄1)の下限値(図示では、20001)以上で上限値(図示では、20164)以下か否かを判定し、下限値以上で上限値以下であれば、特別図柄小当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、特別図柄小当たり判定フラグをOFFにセットする処理を行う。
On the other hand, if the
一方、特別図柄2変動中フラグがONであれば、大当たり判定用乱数値が、図37(c)に示す特別図柄小当たり判定テーブルSDP_TBL(特別図柄2)の下限値(図示では、20001)以上で上限値(図示では、20082)以下か否かを判定し、下限値以上で上限値以下であれば、特別図柄小当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、特別図柄小当たり判定フラグをOFFにセットする処理を行う(ステップS308)。
On the other hand, if the
かくして、上記のような当たり判定処理(ステップS308)を終えた後、主制御CPU600aは、図33のステップS253にて主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納した特別図柄停止の際用いられる乱数値を用いて、特別図柄の停止図柄を生成する(ステップS309)。
Thus, after finishing the hit determination process (step S308) as described above, the
次いで、主制御CPU600aは、通常状態、時短状態、潜伏確変状態、確変状態のいずれかの遊技状態に移行する準備を行う(ステップS310)。
Next, the
次いで、主制御CPU600aは、図33のステップS253にて主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納した変動パターン用乱数値を用いて特別図柄の変動パターンの生成を行い、その生成された特別図柄の変動パターンの変動パターンコマンドを演出制御コマンドDI_CMDとして、演出制御基板90に送信する(ステップS311)。この際、図13(b)、図26(a)に示すような変動時間を取得するプログラムが実行され、特別図柄変動タイマに変動時間が設定される。なお、変動パターンコマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
Next, the
次いで、主制御CPU600aは、特別図柄変動中フラグに5AHを設定し、ON状態にする(ステップS312)。
Next, the
次いで、主制御CPU600aは、液晶表示装置41に表示される特別図柄の指定を行う図柄指定コマンドを生成し(ステップS313)、その生成した図柄指定コマンドを演出制御コマンドDI_CMDとして演出制御基板90に送信する処理を行う(ステップS314)。なお、図柄指定コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
Next, the
次いで、主制御CPU600aは、特別図柄動作ステータスフラグに02Hを設定し(ステップS315)、特別図柄変動開始処理を終了する。
Next, the
<特別図柄処理の説明>
他方、図32に示すように、特別図柄動作ステータスフラグの値が02Hの場合、主制御CPU600aは、特別図柄変動中(特別図柄が現在変動中であることを示す)であると判定し、特別図柄変動中処理を行う(ステップS206)。
<Description of special symbol processing>
On the other hand, as shown in FIG. 32, when the value of the special symbol operation status flag is 02H, the
<特別図柄処理:特別図柄変動中処理の説明>
この処理について、図35を用いて詳しく説明すると、主制御CPU600aは、まず、図34のステップS311にて特別図柄変動タイマに設定された変動時間が経過したか、すなわち、0になったか否かを確認する(ステップS350)。特別図柄変動タイマが0でなければ(ステップS350:NO)、主制御CPU600aは、特別図柄変動中処理を終了する。
<Special symbol processing: Explanation of processing during special symbol fluctuation>
This process will be explained in detail using FIG. 35. First, the
一方、特別図柄変動タイマが0であれば(ステップS350:YES)、主制御CPU600aは、図柄停止コマンドを演出制御コマンドDI_CMDとして演出制御基板90に送信する(ステップS351)。なお、図柄停止コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
On the other hand, if the special symbol variation timer is 0 (step S350: YES), the
次いで、主制御CPU600aは、特別図柄動作ステータスフラグに03Hを設定し、特別図柄変動中フラグに00Hを設定する。そしてさらに、主制御CPU600aは、特別図柄の当否抽選結果を一定時間維持するために、特別図柄変動タイマに例えば約500msの時間を設定する(ステップS352)。その後、主制御CPU600aは、特別図柄変動中処理を終了する。
Next, the
<特別図柄処理の説明>
一方、図32に示すように、特別図柄動作ステータスフラグの値が03Hの場合、主制御CPU600aは、特別図柄確認中(特別図柄の変動が終了して停止中であることを示す)であると判定し、特別図柄確認時間中処理を行う(ステップS207)。
<Description of special symbol processing>
On the other hand, as shown in FIG. 32, when the value of the special symbol operation status flag is 03H, the
<特別図柄処理:特別図柄確認中処理の説明>
この処理について、図36を用いて詳しく説明すると、主制御CPU600aは、まず、図34のステップS311にて特別図柄変動タイマに設定された変動時間が経過したか、すなわち、0になったか否かを確認する(ステップS400)。特別図柄変動タイマが0でなければ(ステップS400≠0)、主制御CPU600aは、特別図柄確認時間中処理を終了する。
<Special symbol processing: Explanation of special symbol confirmation processing>
This process will be explained in detail using FIG. 36. First, the
一方、特別図柄変動タイマが0であれば(ステップS400=0)、主制御CPU600aは、特別図柄動作ステータスフラグに01Hを設定し(ステップS401)、特別図柄大当たり判定フラグがONに設定されているか(5AHが設定されているか)を確認する(ステップS402)。特別図柄大当たり判定フラグがONに設定されていれば(5AHが設定されていれば)(ステップS402:YES)、特別図柄大当たり判定フラグに00Hを設定し、特別図柄大当たり作動フラグに5AHを設定し、そして普通図柄時短フラグに00Hを設定し、普通図柄確変フラグに00Hを設定し、さらに、特別図柄時短フラグに00Hを設定し、特別図柄確変フラグに00Hを設定し、後述する特別図柄時短回数カウンタ及び特別図柄確変回数カウンタに00Hを設定する処理を行う(ステップS403)。その後、主制御CPU600aは、特別図柄確認時間中処理を終了する。
On the other hand, if the special symbol variation timer is 0 (step S400=0), the
他方、特別図柄大当たり判定フラグがONに設定されていなければ(5AHが設定されていなければ)(ステップS402:NO)、主制御CPU600aは、特別図柄小当たり判定フラグがONに設定されているか(5AHが設定されているか)を確認する(ステップS404)。特別図柄小当たり判定フラグがONに設定されていれば(5AHが設定されていれば)(ステップS404:YES)、特別図柄小当たり判定フラグに00Hを設定し、特別図柄小当たり作動フラグに5AHを設定する(ステップS405)。
On the other hand, if the special symbol big hit determination flag is not set to ON (if 5AH is not set) (step S402: NO), the
主制御CPU600aは、上記ステップS405の処理を終えた後、又は、特別図柄小当たり判定フラグがONに設定されていなければ(5AHが設定されていなければ)(ステップS404:NO)、特別図柄時短回数カウンタの値が0か否かを確認する(ステップS406)。
After finishing the process of step S405, or if the special symbol small hit determination flag is not set to ON (if 5AH is not set) (step S404: NO), the
特別図柄時短回数カウンタの値が0でなければ(ステップS406:NO)、特別図柄時短回数カウンタの値を1減算(-1)し(ステップS407)、主制御CPU600aは、再度、特別図柄時短回数カウンタの値が0か否かを確認する(ステップS408)。そして、特別図柄時短回数カウンタの値が0であれば(ステップS408:YES)、普通図柄時短フラグに00Hを設定すると共に、普通図柄確変フラグに00Hを設定し、さらに、普通図柄時短フラグに00Hを設定する(ステップS409)。
If the value of the special symbol time saving number counter is not 0 (step S406: NO), the value of the special symbol time saving number counter is subtracted by 1 (-1) (step S407), and the
上記ステップS409の処理を終えた後、又は、特別図柄時短回数カウンタの値が0(ステップS406:YES)、あるいは、特別図柄時短回数カウンタの値が0でなければ(ステップS408:NO)、主制御CPU600aは、特別図柄確変回数カウンタの値が0か否かを確認する(ステップS410)。特別図柄確変回数カウンタの値が0であれば(ステップS410:YES)、主制御CPU600aは、特別図柄確認時間中処理を終了する。
After finishing the process of step S409, or the value of the special symbol time saving number counter is 0 (step S406: YES), or the value of the special symbol time saving number counter is not 0 (step S408: NO), the main The
一方、特別図柄確変回数カウンタの値が0でなければ(ステップS410:NO)、主制御CPU600aは、特別図柄確変回数カウンタの値を1減算(-1)し(ステップS411)、再度、特別図柄確変回数カウンタの値が0か否かを確認する(ステップS412)。特別図柄確変回数カウンタの値が0でなければ(ステップS412:NO)、主制御CPU600aは、特別図柄確認時間中処理を終了する。
On the other hand, if the value of the special symbol probability variation number counter is not 0 (step S410: NO), the
一方、特別図柄確変回数カウンタの値が0であれば(ステップS412:YES)、主制御CPU600aは、普通図柄時短フラグに00Hを設定し、普通図柄確変フラグに00Hを設定し、特別図柄時短フラグに00Hを設定し、特別図柄確変フラグに00Hを設定する処理を行い(ステップS413)、特別図柄確認時間中処理を終了する。
On the other hand, if the value of the special symbol probability variation counter is 0 (step S412: YES), the
<主制御:特別図柄処理の説明>
かくして、図32に示す上記ステップS205、ステップS206、ステップS207のいずれかの処理を終えると、主制御CPU600aは、特別図柄の表示データの更新を行った後(ステップS208)、特別図柄処理を終える。
<Main control: Explanation of special symbol processing>
Thus, when one of the processes of steps S205, S206, and S207 shown in FIG. 32 is finished, the
しかして、以上説明した本実施形態によれば、プログラム容量の削減を図ることができると共に、ROMのデータ容量の削減を図ることができる。 Thus, according to the present embodiment described above, the program capacity can be reduced, and the data capacity of the ROM can be reduced.
また、本実施形態によれば、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されている上述したプログラムの概要で説明したように、CALL_S命令が使用される割合は、タイマ割込み処理で使用される割合の方が、初期化処理からタイマ割込み処理を呼び出すメインループ処理までに使用される割合より高くなっている。それゆえ、よりプログラムの処理負荷軽減と、プログラム容量の削減を図ることができる。
Further, according to the present embodiment, as described in the outline of the program stored in the normal program area 600ba of the
1 パチンコ遊技機
60 主制御基板
600 ワンチップマイクロコンピュータ
600a 主制御CPU(遊技手段、データ読み出し手段)
600a1 汎用レジスタ(記憶手段)
600a4 TPレジスタ(第2アドレス番地情報記憶手段)
600b 主制御ROM(ROM)
600ba 通常用プログラム領域
600bc 通常用データ領域
600be 計測用プログラム領域
600bg 計測用データ領域
1
600a1 general-purpose register (storage means)
600a4 TP register (second address address information storage means)
600b Main control ROM (ROM)
600ba normal program area 600bc normal data area 600be measurement program area 600bg measurement data area
Claims (2)
前記図柄変動遊技に関する複数のデータが格納されているROMと、
前記複数のデータのうちから指定された特定データを記憶手段に読み出すデータ読み出し手段と、
前記特定データが格納されている領域のアドレス番地に関する第1アドレス番地情報を記憶する第1アドレス番地情報記憶手段と、
前記複数のデータが格納されている領域のアドレス番地に関する第2アドレス番地情報を記憶する第2アドレス番地情報記憶手段と、
所定の遊技プログラムに、所定の条件の成立に基づいて遊技に供する遊技価値に関する所定の値を計測する計測処理と、
特別遊技状態を発生させるか否かの抽選を行う抽選処理と、
コマンド送信に関するコマンド送信処理と、を有し、
前記データ読み出し手段は、
前記第1アドレス番地情報と第2アドレス番地情報とに基づいて、前記特定データが格納されている特定アドレス番地を参照し、前記特定データを前記記憶手段に読み出し可能であり、
前記ROMは、
前記第2アドレス番地情報により特定可能な第1記憶領域と、
前記第2アドレス番地情報により特定不能な第2記憶領域と、を有し、
前記第1記憶領域に記憶されたデータを用いた処理を行う第1処理と、
前記第2記憶領域に記憶されたデータを用いた処理を行う第2処理と、があり、
前記第1処理から前記第2処理に移行する場合に、前記第2アドレス番地情報を前記第2アドレス番地情報記憶手段から所定の記憶領域に退避させる第2アドレス番地情報退避処理を実行し、
前記第2処理から前記第1処理に移行する場合に、前記第2アドレス番地情報を前記所定の記憶領域から前記第2アドレス番地情報記憶手段に復帰させる第2アドレス番地情報復帰処理を実行し、
前記所定の遊技プログラムは、所定のモジュールを呼び出すことができる複数のコール命令を含み、
前記複数のコール命令は、第1のコール命令と、第2のコール命令と、第3のコール命令と、を含み、
前記第1のコール命令は、前記複数のコール命令のうち、呼び出すモジュールのアドレス番地に制限がなく、
前記第2のコール命令は、前記第1のコール命令より小さいプログラムコードのデータ量であり、且つ、前記複数のコール命令のうち、前記呼び出すモジュールのアドレス番地は予め決められた範囲内であり、
前記第3のコール命令は、前記複数のコール命令のうち、最小のプログラムコードのデータ量であり、
前記所定の遊技プログラムは、遊技処理時に使用される通常用プログラムと、前記計測処理に使用される計測用プログラムと、を有し、
前記コマンド送信処理は、前記通常用プログラムから前記第3のコール命令によって呼び出される通常用プログラム内のモジュールとし、
前記コマンド送信処理を呼び出す前記第3のコール命令は、前記通常用プログラムにおいて、所定時間毎に発生するタイマ割込み信号に基づいて実行される割込み処理内の遊技プログラムで用いられる頻度が、初期処理から該割込み処理が呼び出されるメインループ処理までの遊技プログラムで用いられる頻度より高くなっている遊技機。 game means capable of executing a symbol variation game;
a ROM storing a plurality of data relating to the symbol variation game;
data reading means for reading specific data designated from among the plurality of data into storage means;
a first address address information storage means for storing first address information relating to the address of the area in which the specific data is stored;
a second address address information storage means for storing second address information relating to the address addresses of the areas in which the plurality of data are stored;
a measurement process for measuring a predetermined value related to a game value to be provided to a game based on establishment of a predetermined condition in a predetermined game program;
Lottery processing for performing a lottery as to whether or not to generate a special game state;
a command transmission process related to command transmission;
The data reading means is
based on the first address information and the second address information, referring to a specific address where the specific data is stored, reading the specific data into the storage means ;
The ROM is
a first storage area identifiable by the second address information;
a second storage area that cannot be specified by the second address information;
a first process for performing a process using the data stored in the first storage area;
a second process for performing a process using the data stored in the second storage area;
executing a second address address information saving process for saving the second address information from the second address address information storage means to a predetermined storage area when shifting from the first process to the second process;
executing a second address address information return process for returning the second address information from the predetermined storage area to the second address address information storage means when shifting from the second process to the first process;
The predetermined game program includes a plurality of call instructions capable of calling predetermined modules,
the plurality of call instructions includes a first call instruction, a second call instruction, and a third call instruction;
wherein the first call instruction has no limit on the address address of the module to be called among the plurality of call instructions;
the second call instruction has a program code data amount smaller than that of the first call instruction, and among the plurality of call instructions, the address address of the module to be called is within a predetermined range;
the third call instruction has the smallest amount of program code data among the plurality of call instructions;
The predetermined game program has a normal program used during game processing and a measurement program used for the measurement processing,
The command transmission processing is a module in a normal program called by the third call instruction from the normal program,
The third call instruction for calling the command transmission process is used in a game program within an interrupt process that is executed based on a timer interrupt signal that occurs at predetermined intervals in the normal program. A game machine in which the frequency of use in a game program up to a main loop process in which the interrupt process is called is higher than that of the game program.
前記図柄変動遊技のプログラムに関する複数のデータが格納されているROMと、a ROM storing a plurality of data relating to the program of the symbol variation game;
前記複数のデータのうちから指定された特定データを記憶手段に読み出すデータ読み出し手段と、data reading means for reading specific data designated from among the plurality of data into storage means;
前記特定データが格納されている領域のアドレス番地に関する第1アドレス番地情報を記憶する第1アドレス番地情報記憶手段と、a first address address information storage means for storing first address information relating to the address of the area in which the specific data is stored;
前記複数のデータが格納されている領域のアドレス番地に関する第2アドレス番地情報を記憶する第2アドレス番地情報記憶手段と、a second address address information storage means for storing second address information relating to the address addresses of the areas in which the plurality of data are stored;
所定の遊技プログラムに、所定の条件の成立に基づいて遊技に供する遊技価値に関する所定の値を計測する計測処理と、a measurement process for measuring a predetermined value related to a game value to be provided to a game based on establishment of a predetermined condition in a predetermined game program;
特別遊技状態を発生させるか否かの抽選を行う抽選処理と、Lottery processing for performing a lottery as to whether or not to generate a special game state;
コマンド送信に関するコマンド送信処理と、を有し、a command transmission process related to command transmission;
前記データ読み出し手段は、The data reading means is
前記第1アドレス番地情報と第2アドレス番地情報とに基づいて、前記特定データが格納されている特定アドレス番地を参照し、前記特定データを前記記憶手段に読み出し可能であり、based on the first address information and the second address information, referring to a specific address where the specific data is stored, reading the specific data into the storage means;
前記ROMは、The ROM is
前記第2アドレス番地情報により特定可能な第1記憶領域と、a first storage area identifiable by the second address information;
前記第2アドレス番地情報により特定不能な第2記憶領域と、を有し、a second storage area that cannot be specified by the second address information;
前記第1記憶領域に記憶されたデータを用いた処理を行う第1処理と、a first process for performing a process using the data stored in the first storage area;
前記第2記憶領域に記憶されたデータを用いた処理を行う第2処理と、があり、a second process for performing a process using the data stored in the second storage area;
前記第1処理は、前記図柄変動遊技に関する第1遊技処理と第2遊技処理とを含み、The first process includes a first game process and a second game process related to the symbol variation game,
前記第1遊技処理から前記第2遊技処理に移行する場合に、前記記憶手段に記憶されたデータを所定の記憶領域に退避させる記憶手段退避処理が実行されるが、前記第2アドレス番地情報を前記第2アドレス番地情報記憶手段から所定の記憶領域に退避させる第2アドレス番地情報退避処理が実行されず、When shifting from the first game process to the second game process, a storage means save process for saving the data stored in the storage means to a predetermined storage area is executed. The second address information saving process for saving from the second address information storage means to a predetermined storage area is not executed,
前記第2遊技処理から前記第1遊技処理に移行する場合に、前記所定の記憶領域に退避させたデータを前記記憶手段に復帰させる記憶手段復帰処理が実行されるが、前記第2アドレス番地情報を前記所定の記憶領域から前記第2アドレス番地情報記憶手段に復帰させる第2アドレス番地情報復帰処理が実行されず、When shifting from the second game process to the first game process, a storage means return process for returning the data saved in the predetermined storage area to the storage means is executed. from the predetermined storage area to the second address information storage means is not executed,
前記所定の遊技プログラムは、所定のモジュールを呼び出すことができる複数のコール命令を含み、The predetermined game program includes a plurality of call instructions capable of calling predetermined modules,
前記複数のコール命令は、第1のコール命令と、第2のコール命令と、第3のコール命令と、を含み、the plurality of call instructions includes a first call instruction, a second call instruction, and a third call instruction;
前記第1のコール命令は、前記複数のコール命令のうち、呼び出すモジュールのアドレス番地に制限がなく、wherein the first call instruction has no limit on the address address of the module to be called among the plurality of call instructions;
前記第2のコール命令は、前記第1のコール命令より小さいプログラムコードのデータ量であり、且つ、前記複数のコール命令のうち、前記呼び出すモジュールのアドレス番地は予め決められた範囲内であり、the second call instruction has a program code data amount smaller than that of the first call instruction, and among the plurality of call instructions, the address address of the module to be called is within a predetermined range;
前記第3のコール命令は、前記複数のコール命令のうち、最小のプログラムコードのデータ量であり、the third call instruction has the smallest amount of program code data among the plurality of call instructions;
前記所定の遊技プログラムは、遊技処理時に使用される通常用プログラムと、遊技価値に関する所定の値を計測する際に使用される計測用プログラムと、を有し、The predetermined game program has a normal program used during game processing and a measurement program used when measuring a predetermined value related to game value,
前記コマンド送信処理は、前記通常用プログラムから前記第3のコール命令によって呼び出される通常用プログラム内のモジュールとし、The command transmission processing is a module in a normal program called by the third call instruction from the normal program,
前記コマンド送信処理を呼び出す前記第3のコール命令は、前記通常用プログラムにおいて、所定時間毎に発生するタイマ割込み信号に基づいて実行される割込み処理内の遊技プログラムで用いられる頻度が、初期処理から該割込み処理が呼び出されるメインループ処理までの遊技プログラムで用いられる頻度より高くなっている遊技機。The third call instruction for calling the command transmission process is used in a game program within an interrupt process that is executed based on a timer interrupt signal that occurs at predetermined intervals in the normal program. A game machine in which the frequency of use in a game program up to a main loop process in which the interrupt process is called is higher than that of the game program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019073302A JP7284619B2 (en) | 2019-04-08 | 2019-04-08 | game machine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019073302A JP7284619B2 (en) | 2019-04-08 | 2019-04-08 | game machine |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2020171351A JP2020171351A (en) | 2020-10-22 |
JP2020171351A5 JP2020171351A5 (en) | 2022-03-11 |
JP7284619B2 true JP7284619B2 (en) | 2023-05-31 |
Family
ID=72830421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019073302A Active JP7284619B2 (en) | 2019-04-08 | 2019-04-08 | game machine |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7284619B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7317060B2 (en) * | 2021-03-08 | 2023-07-28 | 株式会社藤商事 | game machine |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000357088A (en) | 1999-05-20 | 2000-12-26 | Samsung Electronics Co Ltd | Microprocessor and data processing system |
JP2008080004A (en) | 2006-09-28 | 2008-04-10 | Okumura Yu-Ki Co Ltd | Game machine |
JP2018138119A (en) | 2017-02-24 | 2018-09-06 | 株式会社ソフイア | Game machine |
JP2018196430A (en) | 2017-05-23 | 2018-12-13 | 株式会社三共 | Game machine |
JP2019051190A (en) | 2017-09-19 | 2019-04-04 | 株式会社三共 | Game machine |
-
2019
- 2019-04-08 JP JP2019073302A patent/JP7284619B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000357088A (en) | 1999-05-20 | 2000-12-26 | Samsung Electronics Co Ltd | Microprocessor and data processing system |
JP2008080004A (en) | 2006-09-28 | 2008-04-10 | Okumura Yu-Ki Co Ltd | Game machine |
JP2018138119A (en) | 2017-02-24 | 2018-09-06 | 株式会社ソフイア | Game machine |
JP2018196430A (en) | 2017-05-23 | 2018-12-13 | 株式会社三共 | Game machine |
JP2019051190A (en) | 2017-09-19 | 2019-04-04 | 株式会社三共 | Game machine |
Also Published As
Publication number | Publication date |
---|---|
JP2020171351A (en) | 2020-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6902565B2 (en) | Pachinko machine | |
JP7223942B2 (en) | game machine | |
JP7115998B2 (en) | game machine | |
JP2008148796A (en) | Game machine | |
JP2019208715A (en) | Game machine | |
JP7465590B2 (en) | Gaming Machines | |
JP7284619B2 (en) | game machine | |
JP6940533B2 (en) | Pachinko machine | |
JP7289217B2 (en) | game machine | |
JP2006026160A (en) | Pachinko game machine | |
JP7141173B2 (en) | game machine | |
JP7193726B2 (en) | game machine | |
JP7141174B2 (en) | game machine | |
JP7141168B2 (en) | game machine | |
JP7317060B2 (en) | game machine | |
JP2003290485A (en) | Game machine | |
JP7141169B2 (en) | game machine | |
JP7141171B2 (en) | game machine | |
JP6839959B2 (en) | Game machine | |
JP6940534B2 (en) | Pachinko machine | |
JP7295199B2 (en) | game machine | |
JP6876074B2 (en) | Pachinko machine | |
JP6876073B2 (en) | Pachinko machine | |
JP7106356B2 (en) | game machine | |
JP7166793B2 (en) | game machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220303 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220303 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221223 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230213 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230510 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230519 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7284619 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |