JP7496245B2 - Gaming Machines - Google Patents
Gaming Machines Download PDFInfo
- Publication number
- JP7496245B2 JP7496245B2 JP2020100266A JP2020100266A JP7496245B2 JP 7496245 B2 JP7496245 B2 JP 7496245B2 JP 2020100266 A JP2020100266 A JP 2020100266A JP 2020100266 A JP2020100266 A JP 2020100266A JP 7496245 B2 JP7496245 B2 JP 7496245B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- capacity
- interrupt
- processing
- program
- 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
- 238000012545 processing Methods 0.000 description 389
- 238000000034 method Methods 0.000 description 97
- 230000008569 process Effects 0.000 description 97
- 238000010586 diagram Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 7
- 239000004973 liquid crystal related substance Substances 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000009987 spinning Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Slot Machines And Peripheral Devices (AREA)
Description
本発明は、パチンコ遊技機やスロットマシン等の遊技機に関する。 The present invention relates to gaming machines such as pachinko machines and slot machines.
この種の遊技機としては、一単位の遊技毎に繰り返し実行される基本処理と、当該基本処理に一定時間間隔毎に割り込んで処理を行う割込処理を実行可能なものが提案されている(例えば、特許文献1参照)。 As a gaming machine of this type, one that has been proposed is capable of executing a basic process that is repeatedly executed for each unit of play, and an interrupt process that interrupts the basic process at regular time intervals to perform processing (see, for example, Patent Document 1).
特許文献1に記載された遊技機のように、実行されるプログラムが切り替わる制御においてデータ使用の観点から改良の余地がある。
As with the gaming machine described in
本発明は、実行されるプログラムが切り替わる制御において改良を施した遊技機を提供することを目的とする。 The present invention aims to provide an amusement machine with improved control over switching between executed programs.
請求項1の遊技機は、
遊技を行う遊技機において、
複数のレジスタを使用してプログラムを実行するプログラム実行手段を備え、
前記プログラムは、第1プログラムと、第1プログラムから呼び出されて実行される第2プログラムと、を含み、
前記複数のレジスタは、複数種類のレジスタからなる第1レジスタグループのレジスタと、前記第1レジスタグループに含まれる複数種類のレジスタと同一の複数種類のレジスタが含まれる第2レジスタグループと、を含み、
前記第1プログラムを実行するときは、前記第1レジスタグループに属するレジスタを使用し、
前記第2プログラムを実行するときは、前記第2レジスタグループに属するレジスタを使用し、
前記第1プログラムは、第1基本プログラムと、前記第1基本プログラムの実行中に割り込んで実行される第1割込プログラムと、を含み、
前記第2プログラムは、前記第1基本プログラムから呼び出される第2基本プログラムと、前記第1割込プログラムから呼び出される第2割込プログラムと、を含み、
前記第1基本プログラムを実行するときは前記第1レジスタグループに含まれる第1種類のレジスタと第2種類のレジスタのうち両方を使用する一方、前記第2基本プログラムを実行するときは前記第2レジスタグループに含まれる前記第1種類のレジスタと前記第2種類のレジスタのうち前記第1種類のレジスタのみを使用し、
前記第1割込プログラムを実行するときは前記第1レジスタグループに含まれる第3種類のレジスタと第4種類のレジスタのうち両方を使用する一方、前記第2割込プログラムを実行するときは前記第2レジスタグループに含まれる前記第3種類のレジスタと前記第4種類のレジスタのうち前記第3種類のレジスタのみを使用する
ことを特徴としている。
この特徴によれば、第2プログラムを実行するときには、第1プログラムを実行するときよりも使用されるレジスタの数が少ないので、第2プログラムによる誤ったデータの使用を防止できる。
The gaming machine of
In a gaming machine for playing a game,
A program execution means for executing a program using a plurality of registers,
The programs include a first program and a second program that is called and executed by the first program,
the plurality of registers include a first register group of registers consisting of a plurality of types of registers, and a second register group including a plurality of types of registers identical to the plurality of types of registers included in the first register group;
When executing the first program, a register belonging to the first register group is used;
When executing the second program, a register belonging to the second register group is used;
the first program includes a first basic program and a first interrupt program that is executed by interrupting execution of the first basic program,
the second program includes a second basic program called from the first basic program and a second interrupt program called from the first interrupt program,
when executing the first basic program, both of the first type registers and the second type registers included in the first register group are used, whereas when executing the second basic program, only the first type registers of the first type registers and the second type registers included in the second register group are used;
When the first interrupt program is executed, both of the third type registers and the fourth type registers included in the first register group are used, whereas when the second interrupt program is executed, only the third type registers of the third type registers and the fourth type registers included in the second register group are used.
It is characterized by the following.
According to this feature, when the second program is executed, the number of registers used is smaller than when the first program is executed, so that it is possible to prevent the second program from using erroneous data.
尚、本発明は、本発明の請求項に記載された発明特定事項のみを有するものであって良いし、本発明の請求項に記載された発明特定事項とともに該発明特定事項以外の構成を有するものであっても良い。 The present invention may have only the invention-specific matters described in the claims of the present invention, or may have the invention-specific matters described in the claims of the present invention as well as configurations other than the invention-specific matters.
本発明に係る遊技機を実施するための形態を実施例に基づいて以下に説明する。 The following describes the form for implementing the gaming machine according to the present invention based on the examples.
[形態1]
形態1-1の遊技機は、
遊技を行う遊技機(スロットマシン1)において、
複数のレジスタを使用してプログラムを実行するプログラム実行手段(メイン制御部41)を備え、
前記プログラムのうち特定プログラム(割込処理)は、メインプログラム(メインルーチン(割込))と、前記メインプログラムから呼び出されて実行されるサブプログラム(サブルーチン(割込))と、から構成され、
前記複数のレジスタのうち所定レジスタ(IYレジスタ)は、前記サブプログラム(サブルーチン(割込))で使用され、前記メインプログラム(メインルーチン(割込))で使用されない
ことを特徴としている。
この特徴によれば、特定プログラムは、メインプログラムと、メインプログラムから呼び出されて実行されるサブプログラムと、から構成されるとともに、複数のレジスタのうち所定レジスタは、サブプログラムで使用され、メインプログラムで使用されないため、メインプログラムとサブプログラムの間で所定レジスタに格納されるデータが混同してしまうことを防止できる。
[Form 1]
The gaming machine of form 1-1 is
In a gaming machine (slot machine 1) for playing games,
A program execution unit (main control unit 41) is provided for executing a program using a plurality of registers;
Among the programs, the specific program (interrupt processing) is composed of a main program (main routine (interrupt)) and a subprogram (subroutine (interrupt)) that is called and executed from the main program,
A specific register (IY register) among the plurality of registers is used in the subprogram (subroutine (interrupt)) and is not used in the main program (main routine (interrupt)).
According to this feature, the specific program is composed of a main program and a sub-program that is called and executed from the main program, and a specified register among the multiple registers is used by the sub-program and not by the main program, thereby preventing confusion of data stored in the specified register between the main program and the sub-program.
形態1-2の遊技機は、形態1-1に記載の遊技機であって、
前記サブプログラム(サブルーチン(割込))は、複数種類のサブプログラムを含み、
前記所定レジスタ(IYレジスタ)は、前記複数種類のサブプログラムのうちいずれかの種類のサブプログラムで使用される
ことを特徴としている。
この特徴によれば、メインプログラムと複数種類のサブプログラムのうち所定レジスタが使用されるサブプログラムとの間で所定レジスタに格納されるデータが混同してしまうことを防止できる。
The gaming machine of aspect 1-2 is the gaming machine according to aspect 1-1,
The subprogram (subroutine (interrupt)) includes a plurality of types of subprograms,
The predetermined register (IY register) is characterized in that it is used in any one of the plurality of types of subprograms.
According to this feature, it is possible to prevent data stored in a predetermined register from being mixed up between the main program and one of the multiple types of subprograms in which the predetermined register is used.
形態1-3の遊技機は、
遊技を行う遊技機(スロットマシン1)において、
複数のレジスタを使用してプログラムを実行するプログラム実行手段(メイン制御部41)を備え、
前記プログラムのうち特定プログラム(割込処理)は、メインプログラム(メインルーチン(割込))と、前記メインプログラムから呼び出されて実行されるサブプログラム(サブルーチン(割込))と、から構成され、
前記複数のレジスタのうち特定レジスタ(D’E’レジスタ)は、前記メインプログラム(メインルーチン(割込))で使用され、前記サブプログラム(サブルーチン(割込))で使用されない
ことを特徴としている。
この特徴によれば、特定プログラムは、メインプログラムと、メインプログラムから呼び出されて実行されるサブプログラムと、から構成されるとともに、複数のレジスタのうち特定レジスタは、メインプログラムで使用され、サブプログラムで使用されないため、メインプログラムとサブプログラムの間で特定レジスタに格納されるデータが混同してしまうことを防止できる。
The gaming machine of form 1-3 is,
In a gaming machine (slot machine 1) for playing games,
A program execution unit (main control unit 41) is provided for executing a program using a plurality of registers;
Among the programs, the specific program (interrupt processing) is composed of a main program (main routine (interrupt)) and a subprogram (subroutine (interrupt)) that is called and executed from the main program,
Among the plurality of registers, a specific register (D'E' register) is used in the main program (main routine (interrupt)) and is not used in the subprogram (subroutine (interrupt)).
According to this feature, the specific program is composed of a main program and a sub-program that is called and executed from the main program, and among the multiple registers, the specific register is used by the main program and not by the sub-program, thereby preventing confusion of data stored in the specific register between the main program and the sub-program.
形態1-4の遊技機は、形態1-3に記載の遊技機であって、
前記サブプログラム(サブルーチン(割込))は、複数種類のサブプログラムを含み、
前記特定レジスタ(D’E’レジスタ)は、前記複数種類のサブプログラムのうちいずれの種類のサブプログラムにおいても使用されない
ことを特徴としている。
この特徴によれば、メインプログラムといずれの種類のサブプログラムとの間においても特定レジスタに格納されるデータが混同してしまうことを防止できる。
The gaming machine of aspect 1-4 is the gaming machine according to aspect 1-3,
The subprogram (subroutine (interrupt)) includes a plurality of types of subprograms,
The special register (D'E' register) is characterized in that it is not used in any of the plurality of types of subprograms.
According to this feature, it is possible to prevent data stored in the specific register from being mixed up between the main program and any type of subprogram.
形態1-5の遊技機は、形態1-1~1-4のいずれかに記載の遊技機であって、
前記特定プログラムは、割込の発生により実行する割込プログラム(割込処理)である
ことを特徴としている。
この特徴によれば、割込プログラムの実行中にメインプログラムとサブプログラムとの間でレジスタに格納されるデータが混同してしまうことを防止できる。
The gaming machine of aspect 1-5 is a gaming machine according to any one of aspects 1-1 to 1-4,
The specific program is characterized in that it is an interrupt program (interrupt process) that is executed when an interrupt occurs.
According to this feature, it is possible to prevent data stored in registers between the main program and the subprogram from becoming mixed up during execution of the interrupt program.
[形態2]
形態2-1の遊技機は、
遊技を行う遊技機(スロットマシン1)において、
複数のレジスタを使用してプログラムを実行するプログラム実行手段(メイン制御部41)を備え、
前記プログラムは、基本プログラム(基本処理)と、前記基本プログラムの実行中に割り込んで実行される割込プログラム(割込処理)と、を含み、
前記基本プログラム(基本処理)を実行するときに第1レジスタ(表レジスタ)を使用し、
前記割込プログラム(割込処理)を実行するときに使用するレジスタを前記第1レジスタ(表レジスタ)から第2レジスタ(裏レジスタ)に切り替え、
前記割込プログラム(割込処理)を終了するときに使用するレジスタを前記第2レジスタ(裏レジスタ)から前記第1レジスタ(表レジスタ)に戻し、
前記複数のレジスタは、前記第1レジスタ(表レジスタ)及び前記第2レジスタ(裏レジスタ)とは別に前記基本プログラム(基本処理)を実行するときにも前記割込プログラム(割込処理)を実行するときにも使用可能な特別レジスタ(IXレジスタ)を含み、
前記特別レジスタ(IXレジスタ)は、前記基本プログラム(基本処理)で使用され、前記割込プログラム(割込処理)で使用されない
ことを特徴としている。
この特徴によれば、基本プログラムでは、第1レジスタを使用する一方、基本プログラムに割り込んで実行される割込プログラムの実行中は、使用するレジスタが第1レジスタから第2レジスタに切り替わるとともに、複数のレジスタは、第1レジスタ及び第2レジスタとは別に基本プログラムを実行するときにも割込プログラムを実行するときにも使用可能な特別レジスタを含むが、特別レジスタは、基本プログラムで使用され、割込プログラムでは使用されないので、基本プログラムと割込プログラムとの間において特別レジスタに格納されるデータが混同してしまうことを防止できる。
[Form 2]
The gaming machine of form 2-1 is,
In a gaming machine (slot machine 1) for playing games,
A program execution unit (main control unit 41) is provided for executing a program using a plurality of registers;
The program includes a basic program (basic processing) and an interrupt program (interrupt processing) that is executed by interrupting the execution of the basic program,
When executing the basic program (basic process), a first register (table register) is used,
A register to be used when executing the interrupt program (interrupt process) is switched from the first register (front register) to the second register (back register),
A register to be used when terminating the interrupt program (interrupt process) is returned from the second register (back register) to the first register (front register);
the plurality of registers include a special register (IX register) that can be used when executing the basic program (basic processing) and when executing the interrupt program (interrupt processing) in addition to the first register (front register) and the second register (back register),
The special register (IX register) is characterized in that it is used in the basic program (basic processing) and is not used in the interrupt program (interrupt processing).
According to this feature, the basic program uses a first register, while during execution of an interrupt program that interrupts the basic program, the register used switches from the first register to the second register, and the multiple registers include a special register that can be used when executing both the basic program and the interrupt program, separate from the first and second registers; however, since the special register is used by the basic program and not by the interrupt program, it is possible to prevent confusion between the data stored in the special registers between the basic program and the interrupt program.
形態2-2遊技機は、形態2-1に記載の遊技機であって、
前記複数のレジスタは、前記第1レジスタ(表レジスタ)及び前記第2レジスタ(裏レジスタ)とは別に前記基本プログラム(基本処理)を実行するときにも前記割込プログラム(割込処理)を実行するときにも使用可能な複数の共用レジスタ(IXレジスタ、IYレジスタ)を含み、
前記複数の共用レジスタ(IXレジスタ、IYレジスタ)のうち前記特別レジスタ(IXレジスタ)を含むいずれの共用レジスタも、前記割込プログラム(割込処理)では使用されない
ことを特徴としている。
この特徴によれば、複数のレジスタは、第1レジスタ及び第2レジスタとは別に基本プログラムを実行するときにも割込プログラムを実行するときにも使用可能な複数の共用レジスタを含むが、複数の共用レジスタのうち特別レジスタを含むいずれの共用レジスタも、割込プログラムでは使用されないので、基本プログラムと割込プログラムとの間において特別レジスタを含む共用レジスタに格納されるデータが混同してしまうことを防止できる。
The gaming machine according to aspect 2-2 is the gaming machine according to aspect 2-1,
the plurality of registers include a plurality of shared registers (IX register, IY register) that can be used when executing the basic program (basic processing) and when executing the interrupt program (interrupt processing) separately from the first register (front register) and the second register (back register),
The present invention is characterized in that none of the multiple shared registers (IX register, IY register), including the special register (IX register), is used in the interrupt program (interrupt process).
According to this feature, the multiple registers include multiple shared registers that can be used when executing both the basic program and the interrupt program, separate from the first and second registers, but none of the multiple shared registers, including the special registers, are used in the interrupt program, thereby preventing confusion of data stored in the shared registers, including the special registers, between the basic program and the interrupt program.
形態2-3遊技機は、形態2-1に記載の遊技機であって、
前記複数のレジスタは、前記第1レジスタ(表レジスタ)及び前記第2レジスタ(裏レジスタ)とは別に前記基本プログラム(基本処理)を実行するときにも前記割込プログラム(割込処理)を実行するときにも使用可能な複数の共用レジスタ(IXレジスタ、IYレジスタ)を含み、
前記複数の共用レジスタ(IXレジスタ、IYレジスタ)のうち少なくとも前記特別レジスタ(IXレジスタ)は、前記第2プログラム(割込処理)では使用されない
ことを特徴としている。
この特徴によれば、複数のレジスタは、第1レジスタ及び第2レジスタとは別に基本プログラムを実行するときにも割込プログラムを実行するときにも使用可能な複数の共用レジスタを含むが、複数の共用レジスタのうち少なくとも特別レジスタは、割込プログラムでは使用されないので、基本プログラムと割込プログラムとの間において少なくとも特別レジスタに格納されるデータが混同してしまうことを防止できる。
A gaming machine according to aspect 2-3 is a gaming machine according to aspect 2-1,
the plurality of registers include a plurality of shared registers (IX register, IY register) that can be used when executing the basic program (basic processing) and when executing the interrupt program (interrupt processing) in addition to the first register (front register) and the second register (back register),
Among the plurality of shared registers (IX register, IY register), at least the special register (IX register) is not used in the second program (interrupt processing).
According to this feature, the multiple registers include multiple shared registers that can be used when executing both the basic program and the interrupt program, separate from the first and second registers, but at least the special registers among the multiple shared registers are not used in the interrupt program, thereby preventing confusion of data stored in at least the special registers between the basic program and the interrupt program.
形態2-4の遊技機は、
遊技を行う遊技機(スロットマシン1)において、
複数のレジスタを使用してプログラムを実行するプログラム実行手段(メイン制御部41)を備え、
前記プログラムは、基本プログラム(基本処理)と、前記基本プログラムの実行中に割り込んで実行される割込プログラム(割込処理)と、を含み、
前記基本プログラム(基本処理)を実行するときに第1レジスタ(表レジスタ)を使用し、
前記割込プログラム(割込処理)を実行するときに使用するレジスタを前記第1レジスタ(表レジスタ)から第2レジスタ(裏レジスタ)に切り替え、
前記割込プログラム(割込処理)を終了するときに使用するレジスタを前記第2レジスタ(裏レジスタ)から前記第1レジスタ(表レジスタ)に戻し、
前記複数のレジスタは、前記第1レジスタ(表レジスタ)及び前記第2レジスタ(裏レジスタ)とは別に前記基本プログラム(基本処理)を実行するときにも前記割込プログラム(割込処理)を実行するときにも使用可能な特殊レジスタ(IYレジスタ)を含み、
前記特殊レジスタ(IYレジスタ)は、前記割込プログラム(割込処理)で使用され、前記基本プログラム(基本処理)で使用されない
ことを特徴としている。
この特徴によれば、基本プログラムでは、第1レジスタを使用する一方、基本プログラムに割り込んで実行される割込プログラムの実行中は、使用するレジスタが第1レジスタから第2レジスタに切り替わるとともに、複数のレジスタは、第1レジスタ及び第2レジスタとは別に基本プログラムを実行するときにも割込プログラムを実行するときにも使用可能な特殊レジスタを含むが、特殊レジスタは、割込プログラムで使用され、基本プログラムでは使用されないので、基本プログラムと割込プログラムとの間において特殊レジスタに格納されるデータが混同してしまうことを防止できる。
The gaming machine of form 2-4 is,
In a gaming machine (slot machine 1) for playing games,
A program execution unit (main control unit 41) is provided for executing a program using a plurality of registers;
The program includes a basic program (basic processing) and an interrupt program (interrupt processing) that is executed by interrupting the execution of the basic program,
When executing the basic program (basic process), a first register (table register) is used,
A register to be used when executing the interrupt program (interrupt process) is switched from the first register (front register) to the second register (back register),
A register to be used when terminating the interrupt program (interrupt process) is returned from the second register (back register) to the first register (front register);
the plurality of registers include a special register (IY register) that can be used when executing the basic program (basic processing) and when executing the interrupt program (interrupt processing) in addition to the first register (front register) and the second register (back register),
The special register (IY register) is characterized in that it is used in the interrupt program (interrupt processing) and is not used in the basic program (basic processing).
According to this feature, the basic program uses a first register, while during execution of an interrupt program that interrupts the basic program, the register used switches from the first register to the second register, and the multiple registers include a special register that can be used when executing both the basic program and the interrupt program, separate from the first and second registers; however, since the special register is used by the interrupt program and not by the basic program, it is possible to prevent confusion between the data stored in the special registers between the basic program and the interrupt program.
形態2-5遊技機は、形態2-4に記載の遊技機であって、
前記複数のレジスタは、前記第1レジスタ(表レジスタ)及び前記第2レジスタ(裏レジスタ)とは別に前記基本プログラム(基本処理)を実行するときにも前記割込プログラム(割込処理)を実行するときにも使用可能な複数の共用レジスタ(IXレジスタ、IYレジスタ)を含み、
前記複数の共用レジスタ(IXレジスタ、IYレジスタ)のうち前記特殊レジスタ(IYレジスタ)を含むいずれの共用レジスタも、前記基本プログラム(基本処理)では使用されない
ことを特徴としている。
この特徴によれば、複数のレジスタは、第1レジスタ及び第2レジスタとは別に基本プログラムを実行するときにも割込プログラムを実行するときにも使用可能な複数の共用レジスタを含むが、複数の共用レジスタのうち特殊レジスタを含むいずれの共用レジスタも、基本プログラムでは使用されないので、基本プログラムと割込プログラムとの間において特殊レジスタを含む共用レジスタに格納されるデータが混同してしまうことを防止できる。
A gaming machine according to aspect 2-5 is a gaming machine according to aspect 2-4,
the plurality of registers include a plurality of shared registers (IX register, IY register) that can be used when executing the basic program (basic processing) and when executing the interrupt program (interrupt processing) separately from the first register (front register) and the second register (back register),
Among the plurality of shared registers (IX register, IY register), none of the shared registers including the special register (IY register) is used in the basic program (basic processing).
According to this feature, the multiple registers include multiple shared registers that can be used when executing both the basic program and the interrupt program, separate from the first and second registers, but none of the multiple shared registers, including the special registers, are used in the basic program, thereby preventing confusion of data stored in the shared registers, including the special registers, between the basic program and the interrupt program.
形態2-6遊技機は、形態2-4に記載の遊技機であって、
前記複数のレジスタは、前記第1レジスタ(表レジスタ)及び前記第2レジスタ(裏レジスタ)とは別に前記基本プログラム(基本処理)を実行するときにも前記割込プログラム(割込処理)を実行するときにも使用可能な複数の共用レジスタ(IXレジスタ、IYレジスタ)を含み、
前記複数の共用レジスタ(IXレジスタ、IYレジスタ)のうち少なくとも前記特殊レジスタ(IYレジスタ)は、前記基本プログラム(基本処理)では使用されない
ことを特徴としている。
この特徴によれば、複数のレジスタは、第1レジスタ及び第2レジスタとは別に基本プログラムを実行するときにも割込プログラムを実行するときにも使用可能な複数の共用レジスタを含むが、複数の共用レジスタのうち少なくとも特殊レジスタは、基本プログラムでは使用されないので、基本プログラムと割込プログラムとの間において少なくとも特殊レジスタに格納されるデータが混同してしまうことを防止できる。
A gaming machine according to aspect 2-6 is a gaming machine according to aspect 2-4,
the plurality of registers include a plurality of shared registers (IX register, IY register) that can be used when executing the basic program (basic processing) and when executing the interrupt program (interrupt processing) in addition to the first register (front register) and the second register (back register),
Of the plurality of shared registers (IX register, IY register), at least the special register (IY register) is not used in the basic program (basic processing).
According to this feature, the multiple registers include multiple shared registers that can be used when executing both the basic program and the interrupt program, separate from the first and second registers, but at least the special registers among the multiple shared registers are not used in the basic program, thereby preventing confusion of data stored in at least the special registers between the basic program and the interrupt program.
形態2-7遊技機は、形態2-1~2-6のいずれかに記載の遊技機であって、
前記割込プログラム(割込処理)を実行するときに前記第2レジスタ(裏レジスタ)に値を設定する
ことを特徴としている。
この特徴によれば、割込プログラムを実行するときに、もともと第2レジスタに格納されていた値ではなく、改めて値を設定するので、意図しない値で割込プログラムが実行されてしまうことを防止できる。
A gaming machine according to any one of the aspects 2-1 to 2-6,
A value is set in the second register (back register) when the interrupt program (interrupt process) is executed.
According to this feature, when an interrupt program is executed, a new value is set instead of the value originally stored in the second register, thereby preventing the interrupt program from being executed with an unintended value.
[形態3]
形態3-1の遊技機は、
遊技を行う遊技機(スロットマシン1)において、
複数のレジスタを使用してプログラムを実行するプログラム実行手段(メイン制御部41)を備え、
前記プログラムは、第1プログラム(容量内プログラム(容量内処理))と、第1プログラムから呼び出されて実行される第2プログラム(容量外プログラム(容量外処理))と、を含み、
前記第2プログラム(容量外プログラム(容量外処理))を実行するときに前記複数のレジスタのデータを退避させ、前記第2プログラム(容量外プログラム(容量外処理))を終了するときに、退避した前記複数のレジスタのデータを復帰させ、
前記第1プログラム(容量内プログラム(容量内処理))を実行するときは、前記複数のレジスタのうち特定数のレジスタが使用され、
前記第2プログラム(容量外プログラム(容量外処理))を実行するときには、前記複数のレジスタのうち前記特定数よりも少ない数のレジスタ(容量内プログラム(容量内処理)が用いるレジスタのうちの一部のレジスタ)が使用される
ことを特徴としている。
この特徴によれば、第2プログラムを実行するときに複数のレジスタのデータを退避させ、第2プログラムを終了するときに、退避した複数のレジスタのデータを復帰させるとともに、第2プログラムを実行するときには、第1プログラムを実行するときよりも使用されるレジスタの数が少ないので、第2プログラムによる誤ったデータの使用を防止できる。
[Form 3]
The gaming machine of form 3-1 is,
In a gaming machine (slot machine 1) for playing games,
A program execution unit (main control unit 41) is provided for executing a program using a plurality of registers;
The programs include a first program (a program within the capacity (a processing within the capacity)) and a second program (a program outside the capacity (a processing outside the capacity)) that is called and executed by the first program,
When the second program (out-of-capacity program (out-of-capacity processing)) is executed, data of the plurality of registers is saved, and when the second program (out-of-capacity program (out-of-capacity processing)) is terminated, the saved data of the plurality of registers is restored;
When the first program (in-memory program (in-memory processing)) is executed, a specific number of the plurality of registers are used;
When executing the second program (out-of-capacity program (out-of-capacity processing)), a number of registers among the plurality of registers that is less than the specific number (a portion of the registers used by the in-capacity program (in-capacity processing)) is used.
According to this feature, when the second program is executed, data in multiple registers is saved, and when the second program is terminated, the saved data in the multiple registers is restored; and since fewer registers are used when the second program is executed than when the first program is executed, it is possible to prevent the second program from using erroneous data.
形態3-2の遊技機は、形態3-1に記載の遊技機であって、
前記第1プログラム(容量内プログラム(容量内処理))は、第1特定プログラム(容量内処理(基本処理))と、第1所定プログラム(容量内処理(割込処理))と、を含み、
前記第2プログラム(容量外プログラム(容量外処理))は、前記第1特定プログラム(容量内処理(基本処理))から呼び出されて実行される第2特定プログラム(容量外処理(基本処理))と、前記第1所定プログラム(容量内処理(割込処理))から呼び出されて実行される第2所定プログラム(容量外処理(割込処理))と、を含み、
前記第1特定プログラム(容量内処理(基本処理))を実行するときは、前記複数のレジスタのうち第1特定数のレジスタが使用され、
前記第2特定プログラム(容量外処理(基本処理))を実行するときには、前記複数のレジスタのうち前記第1特定数よりも少ない数のレジスタ(容量外処理(基本処理))が用いるレジスタのうちの一部のレジスタ)が使用され、
前記第1所定プログラム(容量内処理(割込処理))を実行するときは、前記複数のレジスタのうち第2特定数のレジスタが使用され、
前記第2所定プログラム(容量外処理(割込処理))を実行するときには、前記複数のレジスタのうち前記第2特定数よりも少ない数のレジスタ(容量外処理(割込処理))が用いるレジスタのうちの一部のレジスタ)が使用される
ことを特徴としている。
この特徴によれば、第2特定プログラムを実行するときには、第1特定プログラムを実行するときよりも使用されるレジスタの数が少なく、第2所定プログラムを実行するときには、第1所定プログラムを実行するときよりも使用されるレジスタの数が少ないので、第2特定プログラム及び第2所定プログラムによる誤ったデータの使用を防止できる。
The gaming machine of aspect 3-2 is the gaming machine according to aspect 3-1,
The first program (in-capacity program (in-capacity processing)) includes a first specific program (in-capacity processing (basic processing)) and a first predetermined program (in-capacity processing (interrupt processing)),
The second program (out-of-capacity program (out-of-capacity processing)) includes a second specific program (out-of-capacity processing (basic processing)) that is called from the first specific program (in-capacity processing (basic processing)) and executed, and a second predetermined program (out-of-capacity processing (interrupt processing)) that is called from the first predetermined program (in-capacity processing (interrupt processing)) and executed,
When the first specific program (in-capacity processing (basic processing)) is executed, a first specific number of registers among the plurality of registers are used;
When executing the second specific program (out-of-capacity processing (basic processing)), a number of registers among the plurality of registers that is less than the first specific number (a part of the registers used by the out-of-capacity processing (basic processing)) are used,
When the first predetermined program (interrupt processing) is executed, a second specific number of registers among the plurality of registers are used;
When the second specified program (out-of-capacity processing (interrupt processing)) is executed, a number of registers among the plurality of registers that is less than the second specific number (a portion of the registers used by the out-of-capacity processing (interrupt processing)) are used.
According to this feature, when the second specific program is executed, fewer registers are used than when the first specific program is executed, and when the second prescribed program is executed, fewer registers are used than when the first prescribed program is executed, thereby preventing the use of erroneous data by the second specific program and the second prescribed program.
[形態4]
形態4-1の遊技機は、
遊技を行う遊技機(スロットマシン1)において、
プログラムを実行するプログラム実行手段(メイン制御部41)と、
データを退避するスタック領域と、
を備え、
前記プログラムは、第1プログラム(容量内プログラム(容量内処理))と、第1プログラムから呼び出されて実行される第2プログラム(容量外プログラム(容量外処理))と、を含み、
前記スタック領域は、前記第1プログラム(容量内プログラム(容量内処理))によりデータを退避する第1スタック領域(容量内スタック領域)と、前記第2プログラム(容量外プログラム(容量外処理))によりデータを退避する第2スタック領域(容量外スタック領域)と、を含み、
前記第2プログラム(容量外プログラム(容量外処理))を実行するときにデータの退避アドレスを示すスタックポインタを前記第1スタック領域(容量内スタック領域)から前記第2スタック領域(容量外スタック領域)に切り替え、前記第2プログラム(容量外プログラム(容量外処理))を終了するときに前記スタックポインタを前記第1スタック領域(容量内スタック領域)に戻し、
前記第2プログラム(容量外プログラム(容量外処理))を終了するときに、前記第2プログラムの実行中に前記第2スタック領域(容量外スタック領域)に退避したデータを全て復帰させる
ことを特徴としている。
この特徴によれば、第2プログラムを実行するときにスタックポインタを第1スタック領域から第2スタック領域に切り替え、第2プログラムを終了するときにスタックポインタを第1スタック領域に戻すとともに、第2プログラムを終了するときに、第2プログラムの実行中に第2スタック領域に退避したデータを全て復帰させてから、スタックポインタを第1スタック領域に戻すので、前回実行した第2プログラムで使用されていたデータが退避したまま、さらに第2プログラムが実行されることがなく、前回実行した第2プログラムで使用されていたデータと、今回実行する第2プログラムで使用されるデータと、が混同してしまうことを防止できる。
[Form 4]
The gaming machine of form 4-1 is
In a gaming machine (slot machine 1) for playing games,
A program execution means (main control unit 41) for executing a program;
A stack area for saving data;
Equipped with
The programs include a first program (a program within the capacity (a processing within the capacity)) and a second program (a program outside the capacity (a processing outside the capacity)) that is called and executed by the first program,
the stack area includes a first stack area (internal stack area) for saving data by the first program (internal program (internal processing)), and a second stack area (external stack area) for saving data by the second program (external program (external processing));
switching a stack pointer indicating a data save address from the first stack area (internal stack area) to the second stack area (external stack area) when executing the second program (outside program (outside processing)), and returning the stack pointer to the first stack area (internal stack area) when terminating the second program (outside program (outside processing));
When the second program (out-of-capacity program (out-of-capacity processing)) is terminated, all of the data that was saved in the second stack area (out-of-capacity stack area) during execution of the second program is restored.
According to this feature, when the second program is executed, the stack pointer is switched from the first stack area to the second stack area, and when the second program is terminated, the stack pointer is returned to the first stack area. Furthermore, when the second program is terminated, all data that was saved in the second stack area during execution of the second program is restored and then the stack pointer is returned to the first stack area. This prevents the second program from being executed further while data used in the second program that was previously executed remains saved, and prevents confusion between data used in the second program that was previously executed and data to be used in the second program that is currently executed.
形態4-2の遊技機は、形態4-1に記載の遊技機であって、
前記第2プログラム(容量外プログラム(容量外処理))は、複数種類の第2プログラムを含み、
前記第2プログラムを終了するときに、いずれの種類の前記第2プログラムであっても、前記第2プログラムの実行中に前記第2スタック領域(容量外スタック領域)に退避したデータを全て復帰させる
ことを特徴としている。
この特徴によれば、第2プログラムを終了するときには、いずれの種類の第2プログラムであっても、第2プログラムの実行中に第2スタック領域に退避したデータを全て復帰させてから、スタックポインタを第1スタック領域に戻すので、第2プログラムの種類に関わらず、前回実行した第2プログラムで使用されていたデータと、今回実行する第2プログラムで使用されるデータと、が混同してしまうことを防止できる。
The gaming machine of aspect 4-2 is the gaming machine according to aspect 4-1,
The second program (out-of-capacity program (out-of-capacity processing)) includes a plurality of types of second programs,
When the second program is terminated, regardless of the type of the second program, all data that was saved in the second stack area (extra-capacity stack area) during execution of the second program is restored.
According to this feature, when terminating the second program, regardless of the type of second program, all data saved in the second stack area during execution of the second program is restored and then the stack pointer is returned to the first stack area. Therefore, regardless of the type of second program, it is possible to prevent confusion between data used in the second program executed previously and data to be used in the second program executed currently.
本発明が適用されたスロットマシンの実施例について図面に基づいて説明する。本実施例のスロットマシン1は、図1に示すように、前面が開口する筐体1aと、この筐体1aの側端に回動自在に枢支された前面扉1bと、から構成されている。スロットマシン1の内部には、互いに識別可能な複数種類の図柄が所定の順序で、それぞれ同数ずつ配列されたリール2L、2C、2Rが水平方向に並設されており、図1に示すように、これらリール2L、2C、2Rに配列された図柄のうち連続する3つの図柄が、スロットマシン1の正面の略中央に設けられた透視窓3において各々上中下三段に表示されて遊技者側から見えるように配置されている。
An embodiment of a slot machine to which the present invention is applied will be described with reference to the drawings. As shown in FIG. 1, the
尚、本実施例では、3つのリールを用いた構成を例示しているが、リールを1つのみ用いた構成、2つのリールを用いた構成、4つ以上のリールを用いた構成としても良い。また、本実施例では、リール2L、2C、2Rにより図柄を可変表示させる可変表示部を構成しているが、可変表示部は、リール以外であっても良く、例えば、外周面に複数の図柄が配置されたベルトを移動させることで図柄を変動表示させることが可能な構成でも良い。また、本実施例では、物理的なリールにて可変表示部を構成しているが、液晶表示器などの画像表示装置にて可変表示部を構成しても良い。
In this embodiment, a configuration using three reels is exemplified, but a configuration using only one reel, a configuration using two reels, or a configuration using four or more reels may also be used. Also, in this embodiment, the variable display unit that variably displays the patterns is made up of
スロットマシン1の正面には、図1に示すように、メダルを投入可能なメダル投入部4、メダルが払い出されるメダル払出口9、クレジット(遊技者所有の遊技用価値として記憶されているメダル数)を用いて、その範囲内において遊技状態に応じて定められた規定数の賭数のうち最大の賭数を設定する際に操作されるMAXBETスイッチ6、クレジットとして記憶されているメダル及び賭数の設定に用いたメダルを精算する(クレジット及び賭数の設定に用いた分のメダルを返却させる)際に操作される精算スイッチ10、ゲームを開始する際に操作されるスタートスイッチ7、リール2L、2C、2Rの回転を各々停止する際に操作されるストップスイッチ8L、8C、8R、演出に用いられる演出用スイッチ56が遊技者により操作可能にそれぞれ設けられている。
On the front of the
スロットマシン1の正面には、図1に示すように、クレジットとして記憶されているメダル枚数が表示されるクレジット表示器11、入賞の発生により払い出されたメダル枚数やエラー発生時にその内容を示すエラーコードや、ストップスイッチ8L、8C、8Rの操作態様に対応する操作情報(ナビ報知)等が表示される遊技補助表示器12、賭数が1設定されている旨を点灯により報知する1BETLED14、賭数が2設定されている旨を点灯により報知する2BETLED15、賭数が3設定されている旨を点灯により報知する3BETLED16、スタートスイッチ7の操作によるゲームのスタート操作が有効である旨を点灯により報知するスタート有効LED18、遊技区間が有利区間に制御されている旨を点灯により報知する区間表示LED19、リプレイゲーム中である旨を点灯により報知するリプレイ中LED20、が設けられた遊技用表示部13が設けられている。
On the front of the
MAXBETスイッチ6の内部には、MAXBETスイッチ6の操作による賭数の設定操作が有効である旨を点灯により報知するBETスイッチ有効LED21(図2参照)が設けられており、ストップスイッチ8L、8C、8Rの内部には、該当するストップスイッチ8L、8C、8Rによるリールを停止させる操作が有効である旨を点灯により報知する左、中、右停止有効LED22L、22C、22R(図2参照)がそれぞれ設けられている。
Inside the
また、スロットマシン1の正面には、画像を表示可能な液晶表示器51が設けられている。液晶表示器51は、液晶素子に対して電圧が印加されていない状態で透過性を有する液晶パネルを有しており、前面扉1bの各リール2L、2C、2Rの手前側(遊技者側)に表示領域が配置されるように設けられている。液晶表示器51の背面側の各リール2L、2C、2Rは、液晶表示器51の表示領域のうち透視窓3に対応する透過領域及び透視窓3を介して遊技者側から視認可能である。
Also, a
スロットマシン1の前面扉1bの内側には、所定キー操作によりスロットマシン1の外部からのエラー状態を解除するためのリセット操作を検出するリセットスイッチ23、設定値の変更中や設定値の確認中にその時点の設定値が表示される設定値表示器24、前面扉1bの開放状態を検出するドア開放検出スイッチ25、メダル投入部4から投入されたメダルの流路を、スロットマシン1の内部に設けられたホッパータンク側またはメダル払出口9側のいずれか一方に選択的に切り替えるための流路切替ソレノイド30、メダル投入部4から投入されてホッパータンク側に流下したメダルを検出する投入メダルセンサ31a~31cを有するメダルセレクタ29が設けられている。
On the inside of the
また、スロットマシン1の内部には、メイン制御部41からの制御信号に応じて前述のリール2L、2C、2Rを回転させたり停止させたりするためのリールユニット34、メイン制御部41からの制御信号に応じてメダルをメダル払出口9より払い出すためのホッパーユニット35が設けられている。
Inside the
また、スロットマシン1の内部には、設定変更状態または設定確認状態に切り替えるための設定キースイッチ37、通常時においてはエラー状態を解除するためのリセットスイッチとして機能し、設定変更状態においては後述する内部抽選の当選確率(出玉率)の設定値を変更するための設定スイッチとして機能するリセット/設定スイッチ38、電源をon/offする際に操作される電源スイッチ39が設けられている。
Inside the
スロットマシン1の内部には、遊技制御基板40が筐体1aの内部の所定位置に取り付けられた状態において、遊技制御基板40の正面側(遊技者側)の下部には4桁の7セグメント表示器で構成される遊技機情報表示器50が配置されている(図示略)。遊技機情報表示器50は、遊技制御基板40が基板ケースに封入されている状態で、当該基板ケースの外部から表示内容を視認可能となっており、メイン制御部41により集計されて遊技機情報表示器50に表示されるスロットマシン1における遊技の履歴に基づく遊技機情報を、店員等が認識できるようになっている。
With the
図2に示すように、スロットマシン1には、遊技制御基板40、演出制御基板90が設けられており、遊技制御基板40によって遊技(ゲーム)の制御が行われ、演出制御基板90によって遊技状態に応じた演出の制御が行われる。
As shown in FIG. 2, the
遊技制御基板40には、前述のMAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R、精算スイッチ10、リセットスイッチ23、投入メダルセンサ31a~31c、リールユニット34のリールセンサ(図示略)、ホッパーユニット35の払出センサ及び満タンセンサ(図示略)、設定キースイッチ37、リセット/設定スイッチ38が接続されており、これら接続されたスイッチ類等の検出信号が入力されるようになっている。
The
また、遊技制御基板40には、前述のクレジット表示器11、遊技補助表示器12、1~3BETLED14~16、スタート有効LED18、区間表示LED19、リプレイ中LED20、BETスイッチ有効LED21、左、中、右停止有効LED22L、22C、22R、設定値表示器24、流路切替ソレノイド30、リールユニット34、ホッパーユニット35が接続されており、これら電気部品と、遊技制御基板40に搭載された遊技機情報表示器50は、遊技制御基板40に搭載された後述のメイン制御部41の制御に基づいて駆動されるようになっている。
The
また、遊技制御基板40には、遊技の制御を行うメイン制御部41が搭載されている。メイン制御部41は、演算を行うためのCPU41a、プログラム等が記憶されるROM41b、ワークデータが一時的に記憶されるRAM41cを備え、ROM41bに記憶されたプログラムに従って各種の制御を行う。
The
CPU41aは、ROM41bに記憶されたプログラムのうちプログラムカウンタが指定するアドレスの命令を実行する。プログラムカウンタは、命令が完了する毎に加算更新されるため、ROM41bに記憶されたプログラムのうち小さい値のアドレスに規定された命令から順に実行されることとなる。
The
メイン制御部41は、CPU41aが演算を行うために用いられる複数のレジスタを備える。当該複数のレジスタには、アキュムレータレジスタ(Aレジスタ)、フラグレジスタ(Fレジスタ)、汎用レジスタ(Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ)、インデックスレジスタ(IXレジスタ、IYレジスタ)、インタラプトレジスタ(Iレジスタ)、リフレッシュレジスタ(Rレジスタ)、スタックポインタレジスタ(SPレジスタ)、プログラムカウンタレジスタ(PCレジスタ)、送信レジスタなどのレジスタが含まれる。また、これらのレジスタのうちアキュムレータレジスタ、フラグレジスタ、汎用レジスタには、それぞれ対になるように構成された表レジスタ及び裏レジスタが含まれる(以下、表レジスタ及び裏レジスタを単にレジスタと呼ぶ場合がある)。CPU41aは、プログラムに含まれる演算命令や読出命令等の各種の命令を実行することにより、所定のレジスタの値を更新することや、所定のレジスタの値(アドレス)により指定されるRAM41cの記憶領域に記憶した値(データ)を更新することが可能である。
The
また、メイン制御部41が備えるレジスタのうちフラグレジスタは、その状態が、CPU41aにより実行された命令による演算結果を示すように変化するように構成されており、フラグレジスタの状態の変化を利用して、先の命令による演算結果に応じた処理をCPU41aに行わせることができるようになっている。
In addition, the flag register, one of the registers provided in the
また、フラグレジスタは、複数のビット(本実施例では、8ビット)で構成されており、複数のビットには、CPU41aの処理の負担を減らすために、CPU41aが実行する演算命令の演算結果に応じて状態が変化可能に構成された第1ビット(以下、ゼロフラグと呼ぶ場合がある。)や第2ビット(以下、キャリーフラグと呼ぶ場合がある。)などが含まれる。
The flag register is also made up of multiple bits (8 bits in this embodiment), including a first bit (hereinafter sometimes referred to as a zero flag) and a second bit (hereinafter sometimes referred to as a carry flag) whose state can be changed depending on the result of the calculation instruction executed by the
また、メイン制御部41は、サブ制御部91に各種のコマンドを送信する。メイン制御部41からサブ制御部91へ送信されるコマンドは一方向のみで送られ、サブ制御部91からメイン制御部41へ向けてコマンドが送られることはない。
The
また、メイン制御部41は、遊技制御基板40に接続された各種スイッチ類の検出状態が変化するまでは制御状態に応じた処理を繰り返しループし、各種スイッチ類の検出状態の変化に応じて段階的に移行する基本処理を実行する。また、メイン制御部41は、タイマ割込が発生する毎(本実施例では、約0.56ミリ秒)毎に基本処理に割り込んで割込処理を実行する。尚、割込処理の実行間隔は、基本処理において制御状態に応じて繰り返す処理が一巡する時間と割込処理の実行時間とを合わせた時間よりも長い時間に設定されており、今回と次回の割込処理との間で必ず制御状態に応じて繰り返す処理が最低でも一巡することとなる。
The
また、メイン制御部41は、メイン制御部41の備えるレジスタの値を、スタックポインタSPが示すRAM41cのスタック領域に所定の順序で記憶させることで退避させることが可能であり、RAM41cのスタック領域に退避させていたレジスタの値を、退避させるときと逆の順序で当該スタック領域から順次読み出して、当該順序に対応するレジスタに設定することで、該当するレジスタの状態を退避させたときの状態に復帰させることが可能である。
The
演出制御基板90には、前述の演出用スイッチ56が接続されており、その検出信号が入力されるようになっている。また、演出制御基板90には、前述の液晶表示器51、音声を出力可能なスピーカ、演出に用いられ遊技者側から視認可能な演出用LED57等の演出装置が接続されており、これら演出装置の出力状態は、演出制御基板90に搭載されたサブ制御部91により制御可能となっている。サブ制御部91は、メイン制御部41から送信されるコマンドや演出用スイッチ56の検出信号を受けて、演出を行うための各種の制御等を行うようになっている。
The
本実施例のスロットマシン1は、設定値に応じてメダルの払出率が変わる構成である。詳しくは、内部抽選やAT抽選等の遊技者に対する有利度に影響する抽選において設定値に応じた当選確率を用いることにより、メダルの払出率が変わるようになっている。設定値は1~6の6段階からなり、6が最も払出率が高く、5、4、3、2、1の順に値が小さくなるほど払出率が低くなる。すなわち設定値として6が設定されている場合には、遊技者にとって最も有利度が高く、5、4、3、2、1の順に値が小さくなるほど有利度が段階的に低くなる。
The
設定値を変更するためには、設定キースイッチ37をON状態としてからスロットマシン1の電源スイッチ39をONにする必要がある。設定キースイッチ37をON状態として電源をONにすると、設定値表示器24にRAM41cから読み出された設定値が表示値として表示され、リセット/設定スイッチ38の操作による設定値の変更が可能な設定変更状態に移行する。設定変更状態において、リセット/設定スイッチ38が操作されると、設定値表示器24に表示された表示値が1ずつ更新されていく(設定値6からさらに操作されたときは、設定値1に戻る)。そして、スタートスイッチ7が操作されると表示値を設定値として確定する。そして、設定キースイッチ37がOFFにされると、確定した表示値(設定値)がメイン制御部41のRAM41cに格納され、遊技の進行が可能な状態に移行する。
To change the set value, it is necessary to turn on the power switch 39 of the
尚、設定キースイッチ37、リセット/設定スイッチ38は、スロットマシン1の内部に設けられ、所定のキー操作により開放可能な前面扉1bを開放しない限り操作不可能とされており、スロットマシン1が設置される遊技店の店員のうち所定のキーを所持する店員のみが操作可能となる。特に、設定キースイッチ37は、さらにキー操作を要することから、遊技店の店員の中でも、設定キースイッチ37の操作を行うためのキーを所持する店員のみが操作可能とされている。また、リセットスイッチ23は、前面扉1bを開放する必要はないが、所定のキーを用いたキー操作を必要とするため、所定のキーを所持する店員のみが操作可能となる。また、リセット/設定スイッチ38は、通常時においてはエラー状態を解除するためのリセットスイッチとしても機能するようになっている。
The setting
本実施例のスロットマシン1においては、メイン制御部41は、割込処理において電圧低下が検出されているか否かを判定する停電判定処理を行い、停電判定処理において電圧低下が検出されていると判定した場合に、次回復帰時にRAM41cのデータが正常か否かを判定するためのデータを設定する電断処理(メイン)を実行する。
In the
そして、メイン制御部41は、その起動時においてRAM41cのデータが正常であることを条件に、RAM41cに記憶されているデータに基づいてメイン制御部41の処理状態を電断前の状態に復帰させることが可能とされている。一方、起動時にRAM41cのデータが正常でない場合には、RAM異常と判定し、RAM異常を示すエラーフラグをRAM41cに設定するとともに、RAM異常エラー状態に制御し、遊技の進行を不能化させるようになっている。RAM異常エラー状態は、設定変更状態に移行し、新たに設定値が設定されることで解除され、遊技の進行が可能となる。
The
本実施例のスロットマシン1においては、メイン制御部41は、遊技の進行に応じて異常を検出した場合に、検出した異常の種類を示すエラーフラグをRAM41cに設定するとともに、一般エラー状態に制御し、遊技の進行を不能化させるようになっている。一般エラー状態は、リセットスイッチ23またはリセット/設定スイッチ38によるリセット操作により解除され、遊技の進行が可能となる。尚、以下では、RAM異常エラー状態と、一般エラー状態と、を区別する必要がない場合に、単にエラー状態と呼ぶ。
In the
本実施例のスロットマシン1においてゲームを行う場合には、まず、メダルをメダル投入部4から投入するか、あるいはMAXBETスイッチ6を操作してクレジットを使用して賭数を設定する。遊技状態に応じて定められた規定数の賭数が設定されると、予め定められた入賞ラインLN(図1参照、本実施例では、リール2L、2C、2Rの中段、すなわち中段に水平方向に並んだ図柄に跨がって設定されている)が有効となり、スタートスイッチ7の操作が有効な状態、すなわち、ゲームが開始可能な状態となる。尚、遊技状態に対応する規定数のうち最大数を超えてメダルが投入された場合には、その分はクレジットに加算される。また、本実施例では、1本の入賞ラインのみを適用しているが、複数の入賞ラインを適用しても良い。
When playing a game on the
また、本実施例では、入賞ラインLNに入賞を構成する図柄の組合せが揃ったことを認識しやすくするために、入賞ラインLNとは別に、無効ラインLM1~6を設定している。無効ラインLM1~6は、これら無効ラインLM1~6に揃った図柄の組合せによって入賞が判定されるものではなく、入賞ラインLNに入賞を構成する図柄の組合せが揃った際に、無効ラインLM1~6のいずれかに入賞を示唆する示唆図柄の組合せ(例えば、ベルa-ベルa-ベルa)が揃う構成とすることで、入賞ラインLNに入賞を構成する図柄の組合せが揃ったことを認識しやすくするものである。本実施例では、図1に示すように、リール2L、2C、2Rの上段、すなわち上段に水平方向に並んだ図柄に跨がって設定された無効ラインLM1、リール2L、2C、2Rの下段、すなわち下段に水平方向に並んだ図柄に跨って設定された無効ラインLM2、リール2Lの上段、リール2Cの中段、リール2Rの下段、すなわち右下がりに並んだ図柄に跨って設定された無効ラインLM3、リール2Lの下段、リール2Cの中段、リール2Rの上段、すなわち右上がりに並んだ図柄に跨って設定された無効ラインLM4、リール2Lの上段、リール2Cの中段、リール2Rの上段、すなわち小V字状に並んだ図柄に跨って設定された無効ラインLM5、リール2Lの下段、リール2Cの中段、リール2Rの下段、すなわち小山状に並んだ図柄に跨って設定された無効ラインLM6の6種類が無効ラインとして定められている。
In addition, in this embodiment, in order to make it easier to recognize that a combination of symbols that constitute a win has been lined up on the winning line LN, invalid lines LM1-6 are set up separately from the winning line LN. The invalid lines LM1-6 are not used to determine whether or not a win has been made, but rather, when a combination of symbols that constitute a win has been lined up on the winning line LN, a combination of suggestive symbols that suggests a win (for example, Bell a-Bell a-Bell a) is lined up on one of the invalid lines LM1-6, making it easier to recognize that a combination of symbols that constitute a win has been lined up on the winning line LN. In this embodiment, as shown in FIG. 1, six types of invalid lines are defined as invalid lines: an invalid line LM1 set across the symbols arranged horizontally on the upper row of
ゲームが開始可能な状態でスタートスイッチ7を操作すると、各リール2L、2C、2Rが回転され、各リール2L、2C、2Rの図柄が連続的に変動される。リール2L、2C、2Rが回転されている状態で、いずれかのストップスイッチ8L、8C、8Rを操作すると、対応するリール2L、2C、2Rに対して停止制御が行われ、当該リールの回転が停止され、当該リールの図柄が透視窓3に表示結果として導出表示される。
When the
停止制御では、各ストップスイッチについて操作が行われたときから最大停止遅延時間(本実施例では、190ms(ミリ秒))以内に、操作に対応するリール2L、2C、2Rの回転を停止させる制御が行われ、最大停止遅延時間(190ms)が経過するまでの間では、最大で4コマ分の図柄を引き込むことができることとなる。つまり、停止制御では、ストップスイッチ8L、8C、8Rが操作されたときに表示されている図柄と、そこから4コマ先までにある図柄、合計5コマ分(引込範囲)の図柄から一の図柄を選択して、リール2L、2C、2Rに導出させることが可能である。
In the stop control, control is performed to stop the rotation of
これにより、停止制御では、各リール2L、2C、2Rについて対応するストップスイッチ8L、8C、8Rが操作されることで回転を停止させる際に、後述する内部抽選にて当選している入賞役を構成する図柄が、ストップスイッチが操作されたときの図柄から4コマ先までの引込範囲内にある場合には、当該図柄を入賞ラインLN上に引き込んで、ストップスイッチが操作されたリールの回転を停止させる一方で、内部抽選にて当選している入賞役を構成する図柄が、当該引込範囲内にない場合には、内部抽選にて当選していない入賞役を構成する図柄が、入賞ラインLN上に停止しないように、いずれの入賞役も構成しない図柄を入賞ラインLN上に引き込んで、ストップスイッチが操作されたリールの回転を停止させるように制御することが可能である。
In this way, in the stop control, when the stop switches 8L, 8C, and 8R corresponding to each
[メイン制御部のメモリ領域とプログラムについて]
メイン制御部41は、所定のプログラムやデータを記憶するメモリ領域を有するROM41b及びデータを一時的に記憶するRAM41cを備える。
[Main control unit memory area and programs]
The
図3は、ROM41bにおけるプログラム/データ領域及びRAM41cにおける使用可能領域のアドレスマップである。図3(a)に示すように、ROM41bにおけるプログラム/データ領域は、遊技の進行に係わる制御を行うための容量内プログラムが記憶される容量内プログラム領域と、容量内プログラムが用いる容量内データが記憶される容量内データ領域と、未使用領域1と、エラーの検出や試験信号の作成、払出率等の遊技機の情報の表示等、遊技の進行に直接係わらない制御を行うための容量外プログラムが記憶される容量外プログラム領域と、容量外プログラムが用いる容量外データが記憶される容量外データ領域と、未使用領域2と、を含む。
Figure 3 is an address map of the program/data area in
尚、遊技の進行とは、ゲームを構成する一連のプロセスを進行させることであり、スロットマシンであれば、賭数を設定してゲームを開始可能とする段階、ゲームを開始してリールを回転させる段階、リールを停止させて表示結果を導出させる段階、表示結果に応じてメダル等の価値を付与する段階、を進行させることである。また、パチンコ遊技機であれば、始動入賞を判定する段階、可変表示を開始させる段階、可変表示を停止させる段階、遊技状態を変更する段階、を進行させることでる。 The progression of a game refers to the progression of a series of processes that make up a game. In the case of a slot machine, this refers to the progression of the stages of setting the bet amount and making it possible to start the game, starting the game and spinning the reels, stopping the reels to derive the display result, and awarding value such as medals according to the display result. In the case of a pachinko game machine, this refers to the progression of the stages of determining whether a starting win has occurred, starting the variable display, stopping the variable display, and changing the game state.
以下では、容量内プログラムが行う処理を容量内処理と称す場合があり、容量外プログラムが行う処理を容量内処理と称す場合がある。 In the following, processing performed by in-capacity programs may be referred to as in-capacity processing, and processing performed by out-of-capacity programs may be referred to as in-capacity processing.
図3(b)に示すように、RAM41cの使用可能領域は、容量内プログラムがワークとして用いる容量内RAM領域と、容量外プログラムがワークとして用いる容量外RAM領域と、未使用領域4と、を含んでおり、容量内RAM領域には、容量内ワークと、未使用領域3と、容量内スタック領域と、が含まれ、容量外RAM領域には、容量外ワークと、容量外スタック領域と、が含まれる。尚、本実施例では、容量内スタック領域と容量外スタック領域とをそれぞれ異なる領域に個別に備える構成であるが、容量内プログラム及び容量外プログラムが共用する一のスタック領域を備える構成としても良い。
As shown in FIG. 3(b), the available area of
容量内スタック領域は、容量内プログラムがデータを一時的に退避する領域であり、容量内プログラムがデータを退避するにあたって、容量内スタックポインタが示すアドレスの領域に当該データが一時的に格納される。 The internal stack area is an area where the internal program temporarily saves data, and when the internal program saves data, the data is temporarily stored in the area at the address indicated by the internal stack pointer.
また、容量外スタック領域は、容量外プログラムがデータを一時的に退避する領域であり、容量外プログラムがデータを退避するにあたって、容量外スタックポインタが示すアドレスの領域に当該データが一時的に格納される。 The off-capacity stack area is an area where off-capacity programs temporarily save data, and when off-capacity programs save data, the data is temporarily stored in the area at the address indicated by the off-capacity stack pointer.
また、未使用領域3は、容量内プログラム及び容量外プログラムのいずれも使用しない領域であり、予め定められた容量の容量内RAM領域に対して余剰となった領域である。
In addition, the
また、未使用領域4は、容量内プログラム及び容量外プログラムのいずれも使用しない16バイト以上の領域である。容量内RAM領域と、容量外RAM領域とが、未使用領域4を挟んで連続しない領域に割り当てられているため、遊技の進行に係わる容量内プログラムが用いる容量内RAM領域と、遊技の進行に係わらない容量外プログラムが用いる容量外RAM領域と、を記憶領域の違いに応じて容易に特定することができる。
In addition, the
以下では、容量内プログラム領域、容量内データ領域及び容量内RAM領域をまとめて容量内領域と称す場合があり、容量外プログラム領域、容量外データ領域及び容量外RAM領域をまとめて容量外領域と称す場合がある。 In the following, the internal program area, internal data area, and internal RAM area may be collectively referred to as the internal area, and the external program area, external data area, and external RAM area may be collectively referred to as the external area.
[容量内領域と容量外領域の関係について]
メイン制御部41のCPU41aは、図4に示すように、容量内プログラムに基づく処理において容量外プログラムを呼び出して容量外プログラムに基づく処理を実行し、容量外プログラムに基づく処理の終了後、容量内プログラムに基づく処理に復帰する。
[Relationship between the capacity area and the non-capacity area]
As shown in Figure 4, the
図4に示すように、CPU41aは、原則として容量内プログラムに基づく処理を実行するにあたり、容量内データ領域の容量内データを参照して容量内プログラムに基づく処理を実行するとともに、容量内RAM領域をワークとして使用し、容量内RAM領域の内容を参照及び更新することが可能である。また、CPU41aは、原則として容量外プログラムに基づく処理を実行するにあたり、容量外データ領域の容量外データを参照して容量外プログラムに基づく処理を実行するとともに、容量外RAM領域をワークとして使用し、容量外RAM領域の内容を参照及び更新することが可能である。
As shown in FIG. 4, in principle, when the
また、CPU41aは、容量内プログラムに基づく処理を実行するにあたり、容量外RAM領域を更新することはないが、容量外RAM領域を参照することは可能であり、容量外プログラムに基づく処理を実行するにあたり、容量内RAM領域を更新することはないが、容量内RAM領域を参照することは可能である。
In addition, when executing processing based on an internal program, the
[レジスタについて]
メイン制御部41は、メインCPU41aが演算を行うために用いられる複数のレジスタを備える。当該複数のレジスタは、主に表レジスタ、裏レジスタ、共通レジスタを含む。表レジスタと裏レジスタは、互いに対の関係にあり、表レジスタ使用時には裏レジスタが使用不可であり、裏レジスタ使用時には表レジスタが使用不可である。また、表レジスタを反転させることで裏レジスタが使用可能となり、裏レジスタを反転させることで表レジスタが使用可能となる。また、共通レジスタは、表レジスタが使用されている場合にも裏レジスタが使用されている場合にも使用可能である。
[Register]
The
表レジスタには、Aレジスタ、Fレジスタ、汎用レジスタ(Bレジスタ、Cレジスタ(Bレジスタ、CレジスタをまとめてBCレジスタと呼ぶ。)、Dレジスタ、Eレジスタ(Dレジスタ、EレジスタをまとめてDEレジスタと呼ぶ。)、Hレジスタ、Lレジスタ(Hレジスタ、LレジスタをまとめてHLレジスタと呼ぶ。))、Qレジスタが含まれる。Aレジスタ、汎用レジスタは、演算に用いられる値が格納され、Fレジスタは、演算結果に応じたフラグが格納され、Qレジスタは、特殊命令においてアドレスを指定する際の上位アドレスが格納される。 The table registers include the A register, F register, general-purpose registers (B register, C register (B register and C register are collectively called BC register), D register, E register (D register and E register are collectively called DE register), H register, L register (H register and L register are collectively called HL register)), and Q register. The A register and general-purpose registers store values used in calculations, the F register stores flags according to the results of calculations, and the Q register stores the upper address when specifying an address in a special instruction.
裏レジスタには、表レジスタのAレジスタ、Fレジスタ、汎用レジスタと対となる、A’レジスタ、F’レジスタ、汎用レジスタ(B’レジスタ、C’レジスタ(B’レジスタ、C’レジスタをまとめてB’C’レジスタと呼ぶ。)、D’レジスタ、E’レジスタ(D’レジスタ、E’レジスタをまとめてD’E’レジスタと呼ぶ。)、H’レジスタ、L’レジスタ(H’レジスタ、L’レジスタをまとめてH’L’レジスタと呼ぶ。))が含まれる。A’レジスタ、汎用レジスタは、演算に用いられる値が格納され、F’レジスタは、演算結果に応じたフラグが格納される。 The back registers include the A' register, F' register, and general-purpose registers (B' register, C' register (B' register and C' register are collectively referred to as B'C' register), D' register, E' register (D' register and E' register are collectively referred to as D'E' register), H' register, and L' register (H' register and L' register are collectively referred to as H'L' register)) which are paired with the front registers A register, F register, and general-purpose register. The A' register and general-purpose registers store values used in calculations, and the F' register stores flags corresponding to the calculation results.
共通レジスタには、Iレジスタ、Rレジスタ、IXレジスタ、IYレジスタ、SPレジスタ、PCレジスタが含まれる。Iレジスタは、割込発生時にジャンプするアドレス(割込ベクタ)の上位アドレスが格納され、Rレジスタは、メモリをリフレッシュするタイミングをカウントする値が格納され、IXレジスタ、IYレジスタは、演算に用いられる値が格納され、SPレジスタは、スタック領域を特定するためのスタックポインタの値が格納され、PCレジスタは、実行中のプログラムのアドレスを示すプログラムカウンタの値が格納される。 The common registers include the I register, R register, IX register, IY register, SP register, and PC register. The I register stores the upper address of the address (interrupt vector) to jump to when an interrupt occurs, the R register stores a value that counts the timing to refresh the memory, the IX register and IY register store values used in calculations, the SP register stores the value of the stack pointer that specifies the stack area, and the PC register stores the value of the program counter that indicates the address of the program being executed.
[メイン制御部が実行する各種処理について]
次に、メイン制御部41が実行する各種処理について説明する。図6に示すように、メイン制御部41は、スロットマシン1を制御するための処理として基本処理と、割込処理を実行可能である。
[Various processes executed by the main control unit]
Next, there will be described various processes executed by the
基本処理は、制御状態が移行するまで当該制御状態に応じた処理を繰り返しループする処理であり、メインルーチン(基本)と、メインルーチン(基本)から呼び出される複数種類のサブルーチン(基本)と、から構成されている。 The basic process is a process that repeatedly loops processing according to the control state until the control state changes, and is composed of a main routine (basic) and several types of subroutines (basic) that are called from the main routine (basic).
メインルーチン(基本)は、遊技の進行に伴い複数の制御状態を段階的に移行させる処理であり、プログラムの進行に応じて、複数種類のサブルーチン(基本)の中からいずれかの種類のサブルーチン(基本)を呼び出すことが可能である。 The main routine (basic) is a process that gradually transitions between multiple control states as the game progresses, and it is possible to call one of multiple types of subroutines (basic) as the program progresses.
サブルーチン(基本)は、メインルーチン(基本)に呼び出されることで開始し、当該サブルーチン(基本)が終了することでメインルーチン(基本)の呼出元に復帰させる。 A subroutine (basic) starts by being called by the main routine (basic), and when the subroutine (basic) ends, it returns to the caller of the main routine (basic).
また、図7に示すように、基本処理は、容量内プログラムによる容量内処理(基本)と、容量外プログラムによる容量外処理(基本)と、から構成されている。 As shown in FIG. 7, the basic processing is composed of in-capacity processing (basic) by in-capacity programs and out-capacity processing (basic) by out-capacity programs.
容量内処理(基本)は、プログラムの進行に応じて、複数種類の容量外処理(基本)の中からいずれかの種類の容量外処理(基本)を呼び出すことが可能である。 Depending on the progress of the program, the in-capacity process (basic) can call one of several types of out-of-capacity process (basic).
容量外処理(基本)は、容量内処理(基本)に呼び出されることで開始し、当該容量外処理(基本)が終了することで容量内処理(基本)の呼出元に復帰させる。 Out-of-capacity processing (basic) starts when it is called by in-capacity processing (basic), and returns to the caller of in-capacity processing (basic) when the out-of-capacity processing (basic) ends.
容量外処理(基本)は、メインルーチン(容量外・基本)と、メインルーチン(容量外・基本)から呼び出される複数種類のサブルーチン(容量外・基本)と、から構成されている。 Out-of-capacity processing (basic) consists of a main routine (out-of-capacity, basic) and several types of subroutines (out-of-capacity, basic) that are called from the main routine (out-of-capacity, basic).
メインルーチン(容量外・基本)は、プログラムの進行に応じて、複数種類のサブルーチン(容量外・基本)の中からいずれかの種類のサブルーチン(容量外・基本)を呼び出すことが可能である。 The main routine (outside capacity/basic) can call any of several types of subroutines (outside capacity/basic) depending on the progress of the program.
サブルーチン(容量外・基本)は、メインルーチン(容量外・基本)に呼び出されることで開始し、当該サブルーチン(容量外・基本)が終了することでメインルーチン(容量外・基本)の呼出元に復帰させる。 The subroutine (out of capacity, basic) starts by being called by the main routine (out of capacity, basic), and returns to the caller of the main routine (out of capacity, basic) when the subroutine (out of capacity, basic) ends.
割込処理は、タイマ割込が発生する毎に基本処理に割り込んで実行され、当該割込処理が終了することで基本処理の割込元に復帰させる処理であり、メインルーチン(割込)と、メインルーチン(割込)から呼び出される複数種類のサブルーチン(割込)と、から構成されている。 Interrupt processing is executed by interrupting the basic processing whenever a timer interrupt occurs, and returns to the interrupt source of the basic processing when the interrupt processing ends. It consists of a main routine (interrupt) and several types of subroutines (interrupts) called from the main routine (interrupt).
メインルーチン(割込)は、プログラムの進行に応じて、複数種類のサブルーチン(割込)の中からいずれかの種類のサブルーチン(割込)を呼び出すことが可能である。 The main routine (interrupt) can call one of several types of subroutines (interrupts) depending on the progress of the program.
サブルーチン(割込)は、メインルーチン(割込)に呼び出されることで開始し、当該サブルーチン(割込)が終了することでメインルーチン(割込)の呼出元に復帰させる。 A subroutine (interrupt) starts by being called by the main routine (interrupt), and returns to the caller of the main routine (interrupt) when the subroutine (interrupt) ends.
また、図8に示すように、割込処理は、容量内プログラムによる容量内処理(割込)と、容量外プログラムによる容量外処理(割込)と、から構成されている。 As shown in FIG. 8, the interrupt processing is composed of in-capacity processing (interrupt) by an in-capacity program and out-capacity processing (interrupt) by an out-capacity program.
容量内処理(割込)は、プログラムの進行に応じて、複数種類の容量外処理(割込)の中からいずれかの種類の容量外処理(割込)を呼び出すことが可能である。 The internal processing (interrupt) can call one of several types of external processing (interrupt) depending on the progress of the program.
容量外処理(割込)は、容量内処理(割込)に呼び出されることで開始し、当該容量外処理(割込)が終了することで容量内処理(割込)の呼出元に復帰させる。 Out-of-capacity processing (interrupt) starts when it is called by in-capacity processing (interrupt), and returns to the caller of the in-capacity processing (interrupt) when the out-of-capacity processing (interrupt) ends.
容量外処理(割込)は、メインルーチン(容量外・割込)と、メインルーチン(容量外・割込)から呼び出される複数種類のサブルーチン(容量外・割込)と、から構成されている。 Out-of-capacity processing (interrupt) consists of a main routine (out-of-capacity, interrupt) and several types of subroutines (out-of-capacity, interrupt) that are called from the main routine (out-of-capacity, interrupt).
メインルーチン(容量外・割込)は、プログラムの進行に応じて、複数種類のサブルーチン(容量外・割込)の中からいずれかの種類のサブルーチン(容量外・割込)を呼び出すことが可能である。 The main routine (out of capacity/interrupt) can call one of several types of subroutines (out of capacity/interrupt) depending on the progress of the program.
サブルーチン(容量外・割込)は、メインルーチン(容量外・割込)に呼び出されることで開始し、当該サブルーチン(容量外・割込)が終了することでメインルーチン(容量外・割込)の呼出元に復帰させる。 The subroutine (out of capacity, interrupt) starts by being called by the main routine (out of capacity, interrupt), and returns to the caller of the main routine (out of capacity, interrupt) when the subroutine (out of capacity, interrupt) ends.
[基本処理及び割込処理において使用されるレジスタについて]
次に、基本処理及び割込処理の実行時にメイン制御部41が使用するレジスタについて説明する。
[Regarding registers used in basic processing and interrupt processing]
Next, a register used by the
図6に示すように、メイン制御部41は、基本処理におけるメインルーチン(基本)の実行時に、表レジスタと共通レジスタを使用して各種処理を実行する。詳しくは、メインルーチン(基本)において、表レジスタのうち、Aレジスタ、Fレジスタ、BCレジスタ、DEレジスタ、HLレジスタ、Qレジスタ、すなわち表レジスタに含まれる全てのレジスタを使用する。また、メインルーチン(基本)において、共通レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、Iレジスタ、Rレジスタ、IXレジスタ、SPレジスタ、PCレジスタを使用し、IYレジスタを使用しない。
As shown in FIG. 6, when executing the main routine (basic) in the basic processing, the
また、メイン制御部41は、基本処理におけるサブルーチン(基本)の実行時に、表レジスタと共通レジスタを使用して各種処理を実行する。詳しくは、サブルーチン(基本)において、表レジスタのうち、Aレジスタ、Fレジスタ、BCレジスタ、DEレジスタ、HLレジスタ、Qレジスタ、すなわち表レジスタに含まれる全てのレジスタを使用する。また、サブルーチン(基本)において、共通レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、Iレジスタ、Rレジスタ、IXレジスタ、SPレジスタ、PCレジスタを使用し、IYレジスタを使用しない。
The
図6に示すように、メイン制御部41は、基本処理の実行中にタイマ割込が発生し、実行中の基本処理に割り込んで割込処理が開始すると、まず使用するレジスタを表レジスタから裏レジスタに交換する。
As shown in FIG. 6, when a timer interrupt occurs during execution of a basic process and the
メイン制御部41は、割込処理におけるメインルーチン(割込)の実行時に、裏レジスタと共用レジスタを使用して各種処理を実行する。詳しくは、メインルーチン(割込)において、裏レジスタのうち、A’レジスタ、F’レジスタ、B’C’レジスタ、D’E’レジスタ、H’L’レジスタ、すなわち裏レジスタに含まれる全てのレジスタを使用する。また、メインルーチン(割込)において、共通レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、Rレジスタ、SPレジスタ、PCレジスタを使用し、Iレジスタ、IXレジスタ、IYレジスタを使用しない。
When executing the main routine (interrupt) in interrupt processing, the
また、メイン制御部41は、使用するレジスタを表レジスタから裏レジスタに交換すると、前回の割込処理で使用されていた裏レジスタの値が格納された状態となるが、今回の割込処理では、前回の割込処理で使用されていた裏レジスタの値を使用せず、改めて裏レジスタに必要な値を格納する。
In addition, when the
また、メイン制御部41は、割込処理におけるサブルーチン(割込)の実行時に、裏レジスタと共通レジスタを使用して各種処理を実行する。詳しくは、サブルーチン(割込)において、裏レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、A’レジスタ、F’レジスタ、B’C’レジスタ、H’L’レジスタを使用し、D’E’レジスタを使用しない。また、サブルーチン(割込)において、共通レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、Rレジスタ、IYレジスタ、SPレジスタ、PCレジスタを使用し、Iレジスタ、IXレジスタを使用しない。
The
また、メイン制御部41は、割込処理におけるメインルーチン(割込)が終了すると、使用するレジスタを裏レジスタから表レジスタに交換し、タイマ割込発生時に実行していた基本処理に復帰する。
In addition, when the main routine (interrupt) in the interrupt process ends, the
このように本実施例では、基本処理において表レジスタを使用し、基本処理に割り込んで実行される割込処理において表レジスタから交換した裏レジスタを使用する。また、基本処理が実行されるときにも、割込処理が実行されるときにも、IYレジスタを使用可能であるが、IYレジスタは割込処理において使用され、基本処理では使用されないので、基本処理と割込処理との間においてIYレジスタに格納されるデータが混同してしまうことを防止できる。 In this way, in this embodiment, the front register is used in the basic process, and the back register replaced by the front register is used in the interrupt process that is executed by interrupting the basic process. Also, the IY register can be used when the basic process is executed and when the interrupt process is executed, but since the IY register is used in the interrupt process and not in the basic process, it is possible to prevent the data stored in the IY register from becoming mixed up between the basic process and the interrupt process.
また、本実施例では、基本処理が実行されるときにも、割込処理が実行されるときにも、IXレジスタ及びIYレジスタからなる複数のレジスタを使用可能であるが、IXレジスタ及びIYレジスタのうちIXレジスタは基本処理に使用され、IYレジスタは基本処理に使用されないため、基本処理と割込処理との間において、IXレジスタ及びIYレジスタからなる複数のレジスタのうち少なくともIYレジスタに格納されるデータが混同してしまうことを防止できる。 In addition, in this embodiment, multiple registers consisting of the IX register and the IY register can be used both when basic processing is performed and when interrupt processing is performed. However, of the IX register and the IY register, the IX register is used for basic processing and the IY register is not used for basic processing, so that it is possible to prevent confusion between basic processing and interrupt processing of data stored in at least the IY register, out of the multiple registers consisting of the IX register and the IY register.
尚、本実施例では、IXレジスタ及びIYレジスタからなる複数のレジスタのうちIXレジスタを基本処理で使用する構成であるが、IXレジスタ及びIYレジスタからなる複数のレジスタのいずれも基本処理に使用されない構成としても良く、このような構成とすることで、基本処理を実行するときにも、割込処理を実行するときにも使用可能なIXレジスタ及びIYレジスタのいずれも基本処理では使用されないので、基本処理と割込処理との間においてIXレジスタ及びIYレジスタからなる複数のレジスタに格納されるデータが混同してしまうことを防止できる。 In this embodiment, the IX register out of the multiple registers consisting of the IX register and the IY register is used in the basic processing, but none of the multiple registers consisting of the IX register and the IY register may be used in the basic processing. With this configuration, the IX register and the IY register, which can be used when executing both the basic processing and the interrupt processing, are not used in the basic processing, so that it is possible to prevent the data stored in the multiple registers consisting of the IX register and the IY register from becoming mixed up between the basic processing and the interrupt processing.
本実施例では、基本処理において表レジスタを使用し、基本処理に割り込んで実行される割込処理において表レジスタから交換した裏レジスタを使用する。また、基本処理が実行されるときにも、割込処理が実行されるときにも、IXレジスタを使用可能であるが、IXレジスタは基本処理において使用され、割込処理では使用されないので、基本処理と割込処理との間においてIXレジスタに格納されるデータが混同してしまうことを防止できる。 In this embodiment, the front register is used in the basic process, and the back register replaced with the front register is used in the interrupt process that is executed by interrupting the basic process. The IX register can be used both when the basic process is executed and when the interrupt process is executed, but since the IX register is used in the basic process and not in the interrupt process, it is possible to prevent the data stored in the IX register from becoming mixed up between the basic process and the interrupt process.
また、本実施例では、基本処理が実行されるときにも、割込処理が実行されるときにも、IXレジスタ及びIYレジスタからなる複数のレジスタを使用可能であるが、IXレジスタ及びIYレジスタのうちIYレジスタは割込処理に使用され、IXレジスタは割込処理に使用されないため、基本処理と割込処理との間において、IXレジスタ及びIYレジスタからなる複数のレジスタのうち少なくともIXレジスタに格納されるデータが混同してしまうことを防止できる。 In addition, in this embodiment, multiple registers consisting of the IX register and the IY register can be used both when basic processing is performed and when interrupt processing is performed, but of the IX register and the IY register, the IY register is used for interrupt processing and the IX register is not used for interrupt processing, so that it is possible to prevent confusion of data stored in at least the IX register, out of the multiple registers consisting of the IX register and the IY register, between basic processing and interrupt processing.
尚、本実施例では、IXレジスタ及びIYレジスタからなる複数のレジスタのうちIYレジスタを割込処理で使用する構成であるが、IXレジスタ及びIYレジスタからなる複数のレジスタのいずれも割込処理に使用されない構成としても良く、このような構成とすることで、基本処理を実行するときにも、割込処理を実行するときにも使用可能なIXレジスタ及びIYレジスタのいずれも割込処理では使用しないので、基本処理と割込処理との間においてIXレジスタ及びIYレジスタからなる複数のレジスタに格納されるデータが混同してしまうことを防止できる。 In this embodiment, the IY register out of the multiple registers consisting of the IX register and the IY register is used in interrupt processing, but none of the multiple registers consisting of the IX register and the IY register may be used in interrupt processing. With this configuration, the IX register and the IY register, which can be used when executing both basic processing and interrupt processing, are not used in interrupt processing, so that it is possible to prevent data stored in the multiple registers consisting of the IX register and the IY register from becoming mixed up between basic processing and interrupt processing.
また、本実施例では、割込処理を実行するときに、使用するレジスタを表レジスタから裏レジスタに交換すると、前回の割込処理で使用されていた裏レジスタの値が格納された状態となるが、今回の割込処理では、前回の割込処理で使用されていた裏レジスタの値を使用せず、改めて裏レジスタに必要な値を格納するので、意図しない値で割込処理が実行されてしまうことを防止できる。 In addition, in this embodiment, when executing an interrupt process, if the register used is switched from the front register to the back register, the value of the back register used in the previous interrupt process is stored. However, in the current interrupt process, the value of the back register used in the previous interrupt process is not used, and the necessary value is stored in the back register again, so that it is possible to prevent the interrupt process from being executed with an unintended value.
本実施例では、割込処理は、メインルーチン(割込)と、メインルーチン(割込)から呼び出されて実行されるサブルーチン(割込)と、から構成されるとともに、割込処理において使用される複数のレジスタのうちIYレジスタは、サブルーチン(割込)で使用され、メインルーチン(割込)で使用されないため、メインルーチン(割込)とサブルーチン(割込)の間でIYレジスタに格納されるデータが混同してしまうことを防止できる。 In this embodiment, the interrupt processing is composed of a main routine (interrupt) and a subroutine (interrupt) that is called and executed from the main routine (interrupt), and among the multiple registers used in the interrupt processing, the IY register is used in the subroutine (interrupt) and not in the main routine (interrupt), so that data stored in the IY register can be prevented from becoming mixed up between the main routine (interrupt) and the subroutine (interrupt).
また、メインルーチン(割込)から呼び出されるサブルーチン(割込)は、複数種類のサブルーチン(割込)を含んでおり、IYレジスタは、複数種類のサブルーチン(割込)の全てで使用されるのではなく、いずれかの種類のサブルーチン(割込)で使用される。このため、メインルーチン(割込)とIYレジスタを使用するサブルーチン(割込)との間でIYレジスタに格納されるデータが混同してしまうことを防止できる。 In addition, the subroutines (interrupts) called from the main routine (interrupt) include multiple types of subroutines (interrupts), and the IY register is not used by all of the multiple types of subroutines (interrupts), but is used by one of the types of subroutines (interrupts). This prevents data stored in the IY register from becoming mixed up between the main routine (interrupt) and a subroutine (interrupt) that uses the IY register.
尚、本実施例では、IYレジスタは、一部の種類のサブルーチン(割込)において使用される構成であるが、全ての種類のサブルーチン(割込)において使用される構成としても良く、このような構成においても、メインルーチン(割込)とサブルーチン(割込)との間でIYレジスタに格納されるデータが混同してしまうことを防止できる。 In this embodiment, the IY register is configured to be used in some types of subroutines (interrupts), but it may be configured to be used in all types of subroutines (interrupts), and even in this configuration, it is possible to prevent the data stored in the IY register from becoming mixed up between the main routine (interrupt) and the subroutine (interrupt).
また、本実施例では、割込処理が、メインルーチン(割込)と、メインルーチン(割込)から呼び出されて実行されるサブルーチン(割込)と、から構成されるとともに、割込処理において使用される複数のレジスタのうちIYレジスタは、サブルーチン(割込)で使用され、メインルーチン(割込)で使用されない構成であるが、基本処理おいて使用される複数のレジスタのうち所定レジスタが、基本処理を構成するサブルーチン(基本)において使用され、メインルーチン(基本)で使用されない構成としても良く、このような構成とすることで、メインルーチン(基本)とサブルーチン(基本)の間で所定レジスタに格納されるデータが混同してしまうことを防止できる。 In addition, in this embodiment, the interrupt processing is composed of a main routine (interrupt) and a subroutine (interrupt) that is called and executed from the main routine (interrupt), and the IY register among the multiple registers used in the interrupt processing is used in the subroutine (interrupt) and not used in the main routine (interrupt). However, a specific register among the multiple registers used in the basic processing may be used in the subroutine (basic) that constitutes the basic processing and not used in the main routine (basic). This configuration can prevent data stored in a specific register from becoming mixed up between the main routine (basic) and the subroutine (basic).
本実施例では、割込処理は、メインルーチン(割込)と、メインルーチン(割込)から呼び出されて実行されるサブルーチン(割込)と、から構成されるとともに、割込処理において使用される複数のレジスタのうちD’E’レジスタは、メインルーチン(割込)で使用され、サブルーチン(割込)で使用されないため、メインルーチン(割込)とサブルーチン(割込)の間でD’E’レジスタに格納されるデータが混同してしまうことを防止できる。 In this embodiment, the interrupt processing is composed of a main routine (interrupt) and a subroutine (interrupt) that is called and executed from the main routine (interrupt), and among the multiple registers used in the interrupt processing, the D'E' register is used in the main routine (interrupt) and not in the subroutine (interrupt), so that data stored in the D'E' register can be prevented from becoming mixed up between the main routine (interrupt) and the subroutine (interrupt).
また、メインルーチン(割込)から呼び出されるサブルーチン(割込)は、複数種類のサブルーチン(割込)を含んでおり、D’E’レジスタは、いずれの種類のサブルーチン(割込)においても使用されない。このため、メインルーチン(割込)といずれの種類のサブルーチン(割込)との間においてもD’E’レジスタに格納されるデータが混同してしまうことを防止できる。 In addition, the subroutines (interrupts) called from the main routine (interrupt) include multiple types of subroutines (interrupts), and the D'E' register is not used in any of the types of subroutines (interrupts). This prevents data stored in the D'E' register from becoming mixed up between the main routine (interrupt) and any type of subroutine (interrupt).
尚、本実施例では、D’E’レジスタは、いずれの種類のサブルーチン(割込)においても使用されない構成であるが、特定の種類のサブルーチン(割込)において使用されず、他の種類のサブルーチン(割込)において使用される構成としても良く、このような構成においても、メインルーチン(割込)と特定の種類のサブルーチン(割込)との間でD’E’レジスタに格納されるデータが混同してしまうことを防止できる。 In this embodiment, the D'E' register is configured not to be used in any type of subroutine (interrupt), but it may be configured not to be used in a specific type of subroutine (interrupt) and to be used in other types of subroutines (interrupts). Even in such a configuration, it is possible to prevent the data stored in the D'E' register from becoming mixed up between the main routine (interrupt) and a specific type of subroutine (interrupt).
また、本実施例では、割込処理が、メインルーチン(割込)と、メインルーチン(割込)から呼び出されて実行されるサブルーチン(割込)と、から構成されるとともに、割込処理において使用される複数のレジスタのうちD’E’レジスタは、メインルーチン(割込)で使用され、サブルーチン(割込)で使用されない構成であるが、基本処理おいて使用される複数のレジスタのうち特定レジスタが、基本処理を構成するメインルーチン(基本)において使用され、サブルーチン(基本)で使用されない構成としても良く、このような構成とすることで、メインルーチン(基本)とサブルーチン(基本)の間で特定レジスタに格納されるデータが混同してしまうことを防止できる。 In addition, in this embodiment, the interrupt processing is composed of a main routine (interrupt) and a subroutine (interrupt) that is called and executed from the main routine (interrupt), and among the multiple registers used in the interrupt processing, the D'E' register is used in the main routine (interrupt) and not in the subroutine (interrupt). However, among the multiple registers used in the basic processing, a specific register may be used in the main routine (basic) that constitutes the basic processing and not in the subroutine (basic). By using such a configuration, it is possible to prevent data stored in a specific register from becoming mixed up between the main routine (basic) and the subroutine (basic).
[容量内処理及び容量外処理において使用されるレジスタについて]
次に、容量内処理及び容量外処理の実行時にメイン制御部41が使用するレジスタについて説明する。
[Regarding registers used in on-capacity and off-capacity processing]
Next, a description will be given of registers used by the
図7に示すように、メイン制御部41は、容量内処理(基本)の実行時に、表レジスタと共通レジスタを使用して各種処理を実行する。詳しくは、容量内処理(基本)において、表レジスタのうち、Aレジスタ、Fレジスタ、BCレジスタ、DEレジスタ、HLレジスタ、Qレジスタ、すなわち表レジスタに含まれる全てのレジスタを使用する。また、容量内処理(基本)において、共通レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、Iレジスタ、Rレジスタ、IXレジスタ、SPレジスタ、PCレジスタを使用し、IYレジスタを使用しない。
As shown in FIG. 7, when performing in-capacity processing (basic), the
図7に示すように、メイン制御部41は、容量外処理(基本)を実行する場合に、容量内処理(基本)からメインルーチン(容量外・基本)を呼び出す。
As shown in FIG. 7, when executing out-of-capacity processing (basic), the
メイン制御部41は、メインルーチン(容量外・基本)を開始すると、まずSPレジスタに格納されている容量内スタックポインタの値を容量外RAM領域の所定領域に退避させた後、SPレジスタに容量外スタック領域の0段目を示す値を格納する。これにより、データを退避する領域が容量内スタック領域から容量外スタック領域に切り替わる。
When the
その後、表レジスタ及び共通レジスタの全ての値を、容量外スタック領域のうち容量外スタックポインタが示す領域に所定の順序で退避させる。 Then, all values in the table registers and common registers are saved in a specified order to the area of the extra stack area indicated by the extra stack pointer.
メイン制御部41は、メインルーチン(容量外・基本)の実行時に、表レジスタと共通レジスタを使用して各種演算を実行する。詳しくは、メインルーチン(容量外・基本)において、表レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、Aレジスタ、Fレジスタ、BCレジスタ、HLレジスタ、Qレジスタを使用し、DEレジスタを使用しない。また、メインルーチン(容量外・基本)において、共通レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、Iレジスタ、Rレジスタ、SPレジスタ、PCレジスタを使用し、IXレジスタ、IYレジスタを使用しない。
When executing the main routine (outside capacity, basic), the
また、メイン制御部41は、メインルーチン(容量外・基本)において、サブルーチン(容量外・基本)を呼び出すことでサブルーチン(容量外・基本)を実行する。この際、容量外スタック領域のうちSPレジスタに格納された値が示す領域に呼出元のアドレスが格納される。また、サブルーチン(容量外・基本)においても容量外スタック領域にデータを退避することがあり、容量外スタック領域は最大N段使用されることとなり、この際、SPレジスタに格納されている容量外スタックポインタは、容量外スタック領域のうちN段目の領域を示す値となる。
The
図7に示すように、メイン制御部41は、サブルーチン(容量外・基本)の実行時に、表レジスタと共通レジスタを使用して各種処理を実行する。詳しくは、サブルーチン(容量外・基本)において、表レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、Aレジスタ、Fレジスタ、BCレジスタ、HLレジスタ、Qレジスタを使用し、DEレジスタを使用しない。また、サブルーチン(容量外・基本)において、共通レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、Iレジスタ、Rレジスタ、SPレジスタ、PCレジスタを使用し、IXレジスタ、IYレジスタを使用しない。
As shown in FIG. 7, when executing a subroutine (outside capacity, basic), the
図7に示すように、メイン制御部41は、メインルーチン(容量外・基本)を終了するときに、容量外スタック領域に退避させていた表レジスタ及び共通レジスタの全ての値を全て復帰させる。これにより、容量外スタック領域に退避していたデータは全て復帰することとなり、容量外スタック領域は空となる。その後、メイン制御部41は、容量外RAM領域の所定領域に退避させた容量内スタックポインタの値をSPレジスタに復帰させる。これにより、データを退避する領域が、容量外スタック領域から容量内スタック領域に切り替わる。そして、メインルーチン(容量外・基本)を終了させて容量内処理(基本)における呼出元に復帰する。
As shown in FIG. 7, when the
図8に示すように、メイン制御部41は、容量内処理(割込)の実行時に、裏レジスタと共通レジスタを使用して各種処理を実行する。詳しくは、容量内処理(割込)において、裏レジスタのうち、A’レジスタ、F’レジスタ、B’C’レジスタ、D’E’レジスタ、H’L’レジスタ、すなわち裏レジスタに含まれる全てのレジスタを使用する。また、容量内処理(割込)において、共通レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、Rレジスタ、SPレジスタ、PCレジスタを使用し、Iレジスタ、IXレジスタ、IYレジスタを使用しない。
As shown in FIG. 8, when performing in-capacity processing (interrupt), the
図8に示すように、メイン制御部41は、容量外処理(割込)を実行する場合に、容量内処理(割込)からメインルーチン(容量外・割込)を呼び出す。
As shown in FIG. 8, when executing out-of-capacity processing (interrupt), the
メイン制御部41は、メインルーチン(容量外・割込)を開始すると、まずSPレジスタに格納されている容量内スタックポインタの値を容量外RAM領域の所定領域に退避させた後、SPレジスタに容量外スタック領域の0段目を示す値を格納する。これにより、データを退避する領域が容量内スタック領域から容量外スタック領域に切り替わる。
When the
その後、裏レジスタ及び共通レジスタの全ての値を、容量外スタック領域のうち容量外スタックポインタが示す領域に所定の順序で退避させる。 Then, all values in the hidden and shared registers are saved in a specified order to the area of the extra stack area indicated by the extra stack pointer.
メイン制御部41は、メインルーチン(容量外・割込)の実行時に、裏レジスタと共通レジスタを使用して各種処理を実行する。詳しくは、裏レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、A’レジスタ、F’レジスタ、B’C’レジスタ、H’L’レジスタを使用し、D’E’レジスタを使用しない。また、共通レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、Rレジスタ、SPレジスタ、PCレジスタを使用し、Iレジスタ、IXレジスタ、IYレジスタを使用しない。
When executing the main routine (out of capacity/interrupt), the
また、メイン制御部41は、メインルーチン(容量外・割込)において、サブルーチン(容量外・割込)を呼び出すことでサブルーチン(容量外・割込)を実行する。この際、容量外スタック領域のうちSPレジスタに格納された値が示す領域に呼出元のアドレスが格納される。また、サブルーチン(容量外・割込)においても容量外スタック領域にデータを退避することがあり、容量外スタック領域は最大N段使用されることとなり、この際、SPレジスタに格納されている容量外スタックポインタは、容量外スタック領域のうちN段目の領域を示す値となる。
The
図8に示すように、メイン制御部41は、サブルーチン(容量外・割込)の実行時に、裏レジスタと共通レジスタを使用して各種処理を実行する。詳しくは、サブルーチン(容量外・割込)においては、裏レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、A’レジスタ、F’レジスタ、B’C’レジスタ、H’L’レジスタを使用し、D’E’レジスタを使用しない。また、共通レジスタに含まれる全てのレジスタを使用可能であるが、そのうち、Rレジスタ、SPレジスタ、PCレジスタを使用し、Iレジスタ、IXレジスタ、IYレジスタを使用しない。
As shown in FIG. 8, when executing a subroutine (out of capacity/interrupt), the
図8に示すように、メイン制御部41は、メインルーチン(容量外・基本)を終了するときに、容量外スタック領域に退避させていた裏レジスタ及び共通レジスタの全ての値を全て復帰させる。これにより、容量外スタック領域に退避していたデータは全て復帰することとなり、容量外スタック領域は空となる。その後、メイン制御部41は、容量外RAM領域の所定領域に退避させた容量内スタックポインタの値をSPレジスタに復帰させる。これにより、データを退避する領域が、容量外スタック領域から容量内スタック領域に切り替わる。そして、当該メインルーチン(容量外・割込)を終了させて容量内処理(割込)に復帰する。
As shown in FIG. 8, when the
このように本実施例では、基本処理において、容量内プログラムによる容量内処理(基本)と、容量外プログラムによる容量外処理(基本)と、を実行可能であり、容量内処理(基本)から容量外処理(基本)を呼び出して実行するときに、まず全てのレジスタに格納されている値をRAM41cにおける容量外スタック領域に退避させ、容量外処理(基本)を終了するときに、容量外スタック領域に退避させた全ての値を対応する全てのレジスタに復帰させる。
In this way, in this embodiment, in the basic processing, it is possible to execute internal processing (basic) by an internal program, and external processing (basic) by an external program. When external processing (basic) is called from internal processing (basic) and executed, the values stored in all registers are first saved to the external stack area in
また、容量内処理(基本)を実行するときには、Aレジスタ、Fレジスタ、BCレジスタ、DEレジスタ、HLレジスタ、Qレジスタ、Iレジスタ、Rレジスタ、SPレジスタ、PCレジスタ、すなわち13のレジスタを使用するのに対し、容量外処理(基本)を実行するときには、Aレジスタ、Fレジスタ、BCレジスタ、HLレジスタ、Iレジスタ、Rレジスタ、SPレジスタ、PCレジスタ、すなわち10のレジスタを使用する。このため、容量外処理(基本)では、容量内処理(基本)が使用する複数のレジスタのうち一部のレジスタのみを使用し、容量外処理(基本)を実行するときの方が、容量内処理(基本)を実行するときよりも使用されるレジスタの数が少ないので、容量外処理(基本)の実行による誤ったデータの使用を防止できる。 In addition, when performing in-capacity processing (basic), 13 registers are used, including the A register, F register, BC register, DE register, HL register, Q register, I register, R register, SP register, and PC register, whereas when performing out-of-capacity processing (basic), 10 registers are used, including the A register, F register, BC register, HL register, I register, R register, SP register, and PC register. As a result, out-of-capacity processing (basic) uses only a portion of the multiple registers used by in-capacity processing (basic), and fewer registers are used when performing out-of-capacity processing (basic) than when performing in-capacity processing (basic), it is possible to prevent the use of incorrect data when performing out-of-capacity processing (basic).
尚、本実施例では、容量外処理(基本)では、容量内処理(基本)が使用する複数のレジスタのうち一部のレジスタのみを使用することで、容量外処理(基本)を実行するときの方が、容量内処理(基本)を実行するときよりも使用されるレジスタの数が少なくなる構成であるが、容量外処理(基本)と、容量内処理(基本)と、でそれぞれ別のレジスタを使用するとともに、このような構成において、容量内処理(基本)が使用するレジスタの数よりも、容量外処理(基本)が使用するレジスタの数が少ない構成としても良く、このような構成においても、容量内処理(基本)を実行するときよりも使用されるレジスタの数が少ないので、容量外処理(基本)の実行による誤ったデータの使用を防止できる。 In this embodiment, the out-of-capacity processing (basic) uses only a portion of the multiple registers used by the in-capacity processing (basic), so that fewer registers are used when executing the out-of-capacity processing (basic) than when executing the in-capacity processing (basic). However, different registers may be used for the out-of-capacity processing (basic) and the in-capacity processing (basic), and in such a configuration, the out-of-capacity processing (basic) may use fewer registers than the in-capacity processing (basic). Even in such a configuration, fewer registers are used than when executing the in-capacity processing (basic), so that the use of erroneous data due to the execution of the out-of-capacity processing (basic) can be prevented.
また、本実施例では、割込処理において、容量内プログラムによる容量内処理(割込)と、容量外プログラムによる容量外処理(割込)と、を実行可能であり、容量内処理(割込)から容量外処理(割込)を呼び出して実行するときに、まず全てのレジスタに格納されている値をRAM41cにおける容量外スタック領域に退避させ、容量外処理(割込)を終了するときに、容量外スタック領域に退避させた全ての値を対応する全てのレジスタに復帰させる。
In addition, in this embodiment, in the interrupt processing, it is possible to execute in-capacity processing (interrupt) by an in-capacity program and out-capacity processing (interrupt) by an out-capacity program. When out-capacity processing (interrupt) is called from in-capacity processing (interrupt) and executed, the values stored in all registers are first saved to the out-capacity stack area in
また、容量内処理(割込)を実行するときには、A’レジスタ、F’レジスタ、B’C’レジスタ、D’E’レジスタ、H’L’レジスタ、Rレジスタ、SPレジスタ、PCレジスタ、すなわち11のレジスタを使用するのに対し、容量外処理(割込処理)を実行するときには、A’レジスタ、F’レジスタ、B’C’レジスタ、H’L’レジスタ、Rレジスタ、SPレジスタ、PCレジスタ、すなわち9のレジスタを使用する。このため、容量外処理(割込)では、容量内処理(割込)が使用する複数のレジスタのうち一部のレジスタのみを使用し、容量外処理(割込)を実行するときの方が、容量内処理(割込)を実行するときよりも使用されるレジスタの数が少ないので、容量外処理(割込)の実行による誤ったデータの使用を防止できる。 When performing in-capacity processing (interrupt), 11 registers are used, including the A' register, F' register, B'C' register, D'E' register, H'L' register, R register, SP register, and PC register, whereas when performing out-of-capacity processing (interrupt processing), 9 registers are used, including the A' register, F' register, B'C' register, H'L' register, R register, SP register, and PC register. As a result, out-of-capacity processing (interrupt) uses only a portion of the multiple registers used by in-capacity processing (interrupt), and fewer registers are used when performing out-of-capacity processing (interrupt) than when performing in-capacity processing (interrupt), which prevents the use of erroneous data due to the execution of out-of-capacity processing (interrupt).
尚、本実施例では、容量外処理(割込)では、容量内処理(割込)が使用する複数のレジスタのうち一部のレジスタのみを使用することで、容量外処理(割込)を実行するときの方が、容量内処理(割込)を実行するときよりも使用されるレジスタの数が少なくなる構成であるが、容量外処理(割込)と、容量内処理(割込)と、でそれぞれ別のレジスタを使用するとともに、このような構成において、容量内処理(割込)が使用するレジスタの数よりも、容量外処理(割込)が使用するレジスタの数が少ない構成としても良く、このような構成においても、容量内処理(割込)を実行するときよりも使用されるレジスタの数が少ないので、容量外処理(割込)の実行による誤ったデータの使用を防止できる。 In this embodiment, the out-of-capacity processing (interrupt) uses only some of the multiple registers used by the in-capacity processing (interrupt), so that fewer registers are used when executing the out-of-capacity processing (interrupt) than when executing the in-capacity processing (interrupt). However, different registers may be used for the out-of-capacity processing (interrupt) and the in-capacity processing (interrupt), and in such a configuration, the out-of-capacity processing (interrupt) may use fewer registers than the in-capacity processing (interrupt). Even in such a configuration, fewer registers are used than when executing the in-capacity processing (interrupt), so that the use of erroneous data due to the execution of the out-of-capacity processing (interrupt) can be prevented.
本実施例では、容量内プログラムによる容量内処理と、容量外プログラムによる容量外処理と、を実行可能であり、容量内処理から容量外処理を呼び出して実行するときにSPレジスタに格納されている容量内スタックポインタの値を退避し、容量外スタック領域を示す値に切り替えることよって、データの退避先を容量内スタック領域から容量外スタック領域に切り替える。また、容量外処理(基本処理)を終了するときに、退避していた容量内スタックポインタの値をSPレジスタに戻すことによって、データの退避先を容量外スタック領域から容量内スタック領域に切り替える。 In this embodiment, it is possible to execute in-capacity processing by an in-capacity program and out-capacity processing by an out-capacity program, and when out-capacity processing is called from in-capacity processing and executed, the value of the in-capacity stack pointer stored in the SP register is saved and switched to a value indicating the out-capacity stack area, thereby switching the data saving destination from the in-capacity stack area to the out-capacity stack area. Also, when the out-capacity processing (basic processing) is terminated, the saved value of the in-capacity stack pointer is returned to the SP register, switching the data saving destination from the out-capacity stack area to the in-capacity stack area.
そして、容量外処理を終了するときに、容量外処理の実行中に容量外スタック領域に退避させたデータを全て復帰させてから、データの退避先を容量外スタック領域から容量内スタック領域に切り替えるので、前回実行した容量外処理で使用されていたデータが退避したまま、さらに容量外処理が実行されることがなく、前回実行した容量外処理で使用されたデータと、今回実行する容量外処理で使用されるデータと、が混同してしまうことを防止できる。 When the out-of-capacity processing ends, all data that was saved to the out-of-capacity stack area during the out-of-capacity processing is restored, and the data saving destination is then switched from the out-of-capacity stack area to the in-capacity stack area. This prevents further out-of-capacity processing from being performed while the data used in the previously executed out-of-capacity processing remains saved, and prevents confusion between the data used in the previously executed out-of-capacity processing and the data to be used in the currently executed out-of-capacity processing.
また、容量内処理から呼び出される容量外処理は、複数種類の容量外処理を含んでおり、いずれの種類の容量外処理であっても、容量外処理を終了するときに、容量外処理の実行中に容量外スタック領域に退避させたデータを全て復帰させてから、データの退避先を容量外スタック領域から容量内スタック領域に切り替えるので、容量外処理の種類に関わらず、前回実行した容量外処理で使用されていたデータが退避したまま、さらに容量外処理が実行されることがなく、前回実行した容量外処理で使用されたデータと、今回実行する容量外処理で使用されるデータと、が混同してしまうことを防止できる。 In addition, the out-of-capacity processing called from the in-capacity processing includes multiple types of out-of-capacity processing, and regardless of the type of out-of-capacity processing, when the out-of-capacity processing is terminated, all data that was saved to the out-of-capacity stack area during the execution of the out-of-capacity processing is restored, and then the data saving destination is switched from the out-of-capacity stack area to the in-capacity stack area. Therefore, regardless of the type of out-of-capacity processing, the data used in the previously executed out-of-capacity processing remains saved and further out-of-capacity processing is not executed, and confusion between the data used in the previously executed out-of-capacity processing and the data to be used in the currently executed out-of-capacity processing can be prevented.
また、容量外処理の種類に関わらず、容量外処理を終了するときには、容量外スタック領域にはデータが格納されていない状態となるため、容量外処理を開始するときに、前回の容量外処理の終了時に設定されていた容量外スタックポインタの値を復帰させる必要がなく、容量外スタックポインタの値として常に容量外スタック領域の0段目を示す値を設定すれば良い。 In addition, regardless of the type of out-of-capacity processing, when the out-of-capacity processing ends, no data is stored in the out-of-capacity stack area. Therefore, when starting out-of-capacity processing, there is no need to restore the value of the out-of-capacity stack pointer that was set when the previous out-of-capacity processing ended. It is sufficient to always set the value of the out-of-capacity stack pointer to a value that indicates the 0th stage of the out-of-capacity stack area.
[レジスタの変形例について]
次に、CPU41aが演算を行うために用いられる複数のレジスタの変形例について、図9、図10に基づいて説明する。
[Regarding modified registers]
Next, a modification of a plurality of registers used by the
図5~図8で示した例では、複数のレジスタは、主に表レジスタ、裏レジスタ、共通レジスタを含み、基本処理であれば容量内処理であっても容量外処理であっても表レジスタ及び共通レジスタが使用され、割込処理であれば容量内処理であっても容量外処理であっても裏レジスタ及び共通レジスタが使用される構成であったが、図9、図10で示す変形例では、複数のレジスタは、容量内レジスタ、容量外レジスタ、共通レジスタを含む。 In the example shown in Figures 5 to 8, the multiple registers mainly include a front register, a back register, and a common register, and for basic processing, the front register and the common register are used whether the processing is within the capacity or outside the capacity, and for interrupt processing, the back register and the common register are used whether the processing is within the capacity or outside the capacity. However, in the modified example shown in Figures 9 and 10, the multiple registers include an inside register, an outside register, and a common register.
容量内レジスタは、一組の表レジスタ及び裏レジスタを備え、容量外レジスタは、容量内レジスタが備えるものとは異なる一組の表レジスタ及び裏レジスタを備える。 The in-capacity register has a set of front and back registers, and the out-of-capacity register has a set of front and back registers that are different from those of the in-capacity register.
そして、メイン制御部41は、容量内処理では、容量内レジスタを使用し、容量外処理においては、使用するレジスタを容量内レジスタから容量外レジスタに交換するとともに、容量外処理の終了時に、使用するレジスタを容量外レジスタから容量内レジスタに戻すことで、容量内レジスタは容量内処理で使用され、容量外レジスタは容量外処理で使用されることとなる。
The
また、共通レジスタは、容量内処理でも容量外処理でも使用可能な構成である。 The common register is also configured to be usable for both in-capacity and out-of-capacity processing.
図10に示すように、共通レジスタのうちIXレジスタ及びIYレジスタは、容量内処理においても容量外処理においても使用可能であるが、IXレジスタ及びIYレジスタのうちIXレジスタは、容量内処理において使用され、容量外処理において使用されない構成となっている。また、IXレジスタ及びIYレジスタのうちIYレジスタは、容量外処理において使用され、容量内処理において使用されない構成となっている。 As shown in FIG. 10, the IX and IY registers, which are common registers, can be used in both in-capacity processing and out-capacity processing, but of the IX and IY registers, the IX register is used in in-capacity processing and is not used in out-capacity processing. Also, of the IX and IY registers, the IY register is used in out-capacity processing and is not used in in-capacity processing.
このように、複数のレジスタの変形例では、複数のレジスタは、容量内処理で使用される容量内レジスタ、容量外処理で使用される容量外レジスタ、容量内処理でも容量外処理でも使用可能な共通レジスタを含み、容量内処理において容量内レジスタを使用し、容量内処理から呼び出される容量外処理において容量外レジスタを使用する。 Thus, in a modified example of the multiple registers, the multiple registers include in-capacity registers used in in-capacity processing, out-of-capacity registers used in out-of-capacity processing, and common registers that can be used in both in-capacity processing and out-of-capacity processing, and the in-capacity registers are used in in-capacity processing, and the out-of-capacity registers are used in out-of-capacity processing called from the in-capacity processing.
容量内処理でも容量外処理でもIXレジスタ及びIYレジスタからなる複数のレジスタを使用可能であるが、IXレジスタ及びIYレジスタからなる複数のレジスタのうちIXレジスタは容量内処理において使用され、容量外処理では使用されないので、容量内処理と容量外処理との間においてIXレジスタに格納されるデータが混同してしまうことを防止できる。 The multiple registers consisting of the IX register and the IY register can be used for both in-capacity processing and out-of-capacity processing, but of the multiple registers consisting of the IX register and the IY register, the IX register is used for in-capacity processing and not for out-of-capacity processing, which prevents the data stored in the IX register from becoming mixed up between in-capacity processing and out-of-capacity processing.
また、容量内処理でも容量外処理でもIXレジスタ及びIYレジスタからなる複数のレジスタを使用可能であるが、IXレジスタ及びIYレジスタからなる複数のレジスタのうちIYレジスタは容量外処理において使用され、容量内処理では使用されないので、容量内処理と容量外処理との間においてIYレジスタに格納されるデータが混同してしまうことを防止できる。 In addition, multiple registers consisting of the IX register and the IY register can be used for both in-capacity processing and out-of-capacity processing, but of the multiple registers consisting of the IX register and the IY register, the IY register is used for out-of-capacity processing and not for in-capacity processing, which prevents the data stored in the IY register from becoming mixed up between in-capacity processing and out-of-capacity processing.
尚、IXレジスタ及びIYレジスタからなる複数のレジスタのうちIXレジスタを容量内処理のみで使用し、IYレジスタを容量外処理のみで使用する構成であるが、IXレジスタ及びIYレジスタからなる複数のレジスタを容量内処理のみに使用する構成、またはIXレジスタ及びIYレジスタからなる複数のレジスタを容量外処理のみに使用する構成としても良く、このような構成とすることで、容量内処理と容量外処理との間においてIXレジスタ及びIYレジスタからなる複数のレジスタに格納されるデータが混同してしまうことを防止できる。 In addition, of the multiple registers consisting of the IX register and the IY register, the IX register is used only for on-capacity processing and the IY register is used only for off-capacity processing. However, the multiple registers consisting of the IX register and the IY register may be used only for on-capacity processing, or the multiple registers consisting of the IX register and the IY register may be used only for off-capacity processing. By using such a configuration, it is possible to prevent the data stored in the multiple registers consisting of the IX register and the IY register from becoming mixed up during on-capacity processing and off-capacity processing.
[作用効果1]
本実施例では、割込処理は、メインルーチン(割込)と、メインルーチン(割込)から呼び出されて実行されるサブルーチン(割込)と、から構成されるとともに、割込処理において使用される複数のレジスタのうちIYレジスタは、サブルーチン(割込)で使用され、メインルーチン(割込)で使用されないため、メインルーチン(割込)とサブルーチン(割込)の間でIYレジスタに格納されるデータが混同してしまうことを防止できる。
[Effect 1]
In this embodiment, the interrupt processing is composed of a main routine (interrupt) and a subroutine (interrupt) that is called and executed from the main routine (interrupt), and among the multiple registers used in the interrupt processing, the IY register is used in the subroutine (interrupt) and not in the main routine (interrupt), thereby preventing confusion of data stored in the IY register between the main routine (interrupt) and the subroutine (interrupt).
また、本実施例では、メインルーチン(割込)から呼び出されるサブルーチン(割込)は、複数種類のサブルーチン(割込)を含んでおり、IYレジスタは、複数種類のサブルーチン(割込)の全てで使用されるのではなく、いずれかの種類のサブルーチン(割込)で使用される。このため、メインルーチン(割込)とIYレジスタを使用するサブルーチン(割込)との間でIYレジスタに格納されるデータが混同してしまうことを防止できる。 In addition, in this embodiment, the subroutines (interrupts) called from the main routine (interrupt) include multiple types of subroutines (interrupts), and the IY register is not used by all of the multiple types of subroutines (interrupts), but is used by one of the types of subroutines (interrupts). This makes it possible to prevent data stored in the IY register from becoming mixed up between the main routine (interrupt) and a subroutine (interrupt) that uses the IY register.
また、本実施例では、割込処理は、タイマ割込が発生する毎に基本処理に割り込んで実行され、IYレジスタは、サブルーチン(割込)で使用され、メインルーチン(割込)で使用されないため、割込処理の実行中にメインルーチン(割込)とIYレジスタを使用するサブルーチン(割込)との間でIYレジスタに格納されるデータが混同してしまうことを防止できる。 In addition, in this embodiment, the interrupt processing is executed by interrupting the basic processing each time a timer interrupt occurs, and the IY register is used in the subroutine (interrupt) and not in the main routine (interrupt), so that data stored in the IY register can be prevented from becoming mixed up between the main routine (interrupt) and the subroutine (interrupt) that uses the IY register while the interrupt processing is being executed.
本実施例では、割込処理は、メインルーチン(割込)と、メインルーチン(割込)から呼び出されて実行されるサブルーチン(割込)と、から構成されるとともに、割込処理において使用される複数のレジスタのうちD’E’レジスタは、メインルーチン(割込)で使用され、サブルーチン(割込)で使用されないため、メインルーチン(割込)とサブルーチン(割込)の間でD’E’レジスタに格納されるデータが混同してしまうことを防止できる。 In this embodiment, the interrupt processing is composed of a main routine (interrupt) and a subroutine (interrupt) that is called and executed from the main routine (interrupt), and among the multiple registers used in the interrupt processing, the D'E' register is used in the main routine (interrupt) and not in the subroutine (interrupt), so that data stored in the D'E' register can be prevented from becoming mixed up between the main routine (interrupt) and the subroutine (interrupt).
また、本実施例では、メインルーチン(割込)から呼び出されるサブルーチン(割込)は、複数種類のサブルーチン(割込)を含んでおり、D’E’レジスタは、いずれの種類のサブルーチン(割込)においても使用されない。このため、メインルーチン(割込)といずれの種類のサブルーチン(割込)との間においてもD’E’レジスタに格納されるデータが混同してしまうことを防止できる。 In addition, in this embodiment, the subroutines (interrupts) called from the main routine (interrupt) include multiple types of subroutines (interrupts), and the D'E' register is not used in any of the types of subroutines (interrupts). This makes it possible to prevent the data stored in the D'E' register from becoming mixed up between the main routine (interrupt) and any type of subroutine (interrupt).
また、本実施例では、割込処理は、タイマ割込が発生する毎に基本処理に割り込んで実行され、D’E’レジスタは、メインルーチン(割込)で使用され、サブルーチン(割込)で使用されないため、割込処理の実行中にメインルーチン(割込)とサブルーチン(割込)の間でD’E’レジスタに格納されるデータが混同してしまうことを防止できる。 In addition, in this embodiment, the interrupt processing is executed by interrupting the basic processing each time a timer interrupt occurs, and the D'E' register is used in the main routine (interrupt) and not in the subroutine (interrupt), so that data stored in the D'E' register can be prevented from becoming mixed up between the main routine (interrupt) and the subroutine (interrupt) while the interrupt processing is being executed.
[作用効果2]
本実施例では、基本処理において表レジスタを使用し、基本処理に割り込んで実行される割込処理において表レジスタから交換した裏レジスタを使用する。また、基本処理が実行されるときにも、割込処理が実行されるときにも、IXレジスタを使用可能であるが、IXレジスタは基本処理において使用され、割込処理では使用されないので、基本処理と割込処理との間においてIXレジスタに格納されるデータが混同してしまうことを防止できる。
[Effect 2]
In this embodiment, the front register is used in the basic process, and the back register replaced with the front register is used in the interrupt process that is executed by interrupting the basic process. The IX register can be used when the basic process is executed and when the interrupt process is executed, but since the IX register is used in the basic process and not in the interrupt process, it is possible to prevent the data stored in the IX register from becoming mixed up between the basic process and the interrupt process.
また、本実施例では、基本処理が実行されるときにも、割込処理が実行されるときにも、IXレジスタ及びIYレジスタからなる複数のレジスタを使用可能であるが、IXレジスタ及びIYレジスタのうちIYレジスタは割込処理に使用され、IXレジスタは割込処理に使用されないため、基本処理と割込処理との間において、IXレジスタ及びIYレジスタからなる複数のレジスタのうち少なくともIXレジスタに格納されるデータが混同してしまうことを防止できる。 In addition, in this embodiment, multiple registers consisting of the IX register and the IY register can be used both when basic processing is performed and when interrupt processing is performed, but of the IX register and the IY register, the IY register is used for interrupt processing and the IX register is not used for interrupt processing, so that it is possible to prevent confusion of data stored in at least the IX register, out of the multiple registers consisting of the IX register and the IY register, between basic processing and interrupt processing.
また、本実施例では、基本処理が実行されるときにも、割込処理が実行されるときにも、IXレジスタ及びIYレジスタからなる複数のレジスタを使用可能であるが、IXレジスタ及びIYレジスタのいずれも割込処理に使用しない構成としても良く、このような構成とすることで、基本処理を実行するときにも、割込処理を実行するときにも使用可能なIXレジスタ及びIYレジスタのいずれも割込処理では使用しないので、基本処理と割込処理との間においてIXレジスタ及びIYレジスタからなる複数のレジスタに格納されるデータが混同してしまうことを防止できる。 In addition, in this embodiment, multiple registers consisting of the IX register and the IY register can be used when basic processing is performed and when interrupt processing is performed, but it is also possible to configure the system so that neither the IX register nor the IY register is used for interrupt processing. With this configuration, the IX register and the IY register, which can be used when basic processing is performed and when interrupt processing is performed, are not used in interrupt processing, so that it is possible to prevent data stored in multiple registers consisting of the IX register and the IY register from becoming mixed up between basic processing and interrupt processing.
本実施例では、基本処理において表レジスタを使用し、基本処理に割り込んで実行される割込処理において表レジスタから交換した裏レジスタを使用する。また、基本処理が実行されるときにも、割込処理が実行されるときにも、IYレジスタを使用可能であるが、IYレジスタは割込処理において使用し、基本処理では使用しないので、基本処理と割込処理との間においてIYレジスタに格納されるデータが混同してしまうことを防止できる。 In this embodiment, the front register is used in the basic process, and the back register replaced with the front register is used in the interrupt process that is executed by interrupting the basic process. The IY register can be used when the basic process is executed and when the interrupt process is executed, but since the IY register is used in the interrupt process and not in the basic process, it is possible to prevent the data stored in the IY register from becoming mixed up between the basic process and the interrupt process.
また、本実施例では、基本処理が実行されるときにも、割込処理が実行されるときにも、IXレジスタ及びIYレジスタからなる複数のレジスタを使用可能であるが、IXレジスタ及びIYレジスタのうちIXレジスタは基本処理に使用し、IYレジスタは基本処理に使用しないため、基本処理と割込処理との間において、IXレジスタ及びIYレジスタからなる複数のレジスタのうち少なくともIYレジスタに格納されるデータが混同してしまうことを防止できる。 In addition, in this embodiment, multiple registers consisting of the IX register and the IY register can be used both when basic processing is performed and when interrupt processing is performed. However, of the IX register and the IY register, the IX register is used for basic processing and the IY register is not used for basic processing, so that it is possible to prevent confusion between basic processing and interrupt processing between data stored in at least the IY register, out of the multiple registers consisting of the IX register and the IY register.
また、本実施例では、基本処理が実行されるときにも、割込処理が実行されるときにも、IXレジスタ及びIYレジスタからなる複数のレジスタを使用可能であるが、IXレジスタ及びIYレジスタのいずれも基本処理に使用しない構成としても良く、このような構成とすることで、基本処理を実行するときにも、割込処理を実行するときにも使用可能なIXレジスタ及びIYレジスタからなる複数のレジスタのいずれも基本処理では使用されないので、基本処理と割込処理との間においてIXレジスタ及びIYレジスタからなる複数のレジスタに格納されるデータが混同してしまうことを防止できる。 In addition, in this embodiment, multiple registers consisting of the IX register and the IY register can be used when basic processing is performed and when interrupt processing is performed, but it is also possible to configure the basic processing so that none of the IX register and the IY register are used. With this configuration, none of the multiple registers consisting of the IX register and the IY register that can be used when basic processing is performed and when interrupt processing is performed are used in the basic processing, so that it is possible to prevent confusion of data stored in the multiple registers consisting of the IX register and the IY register between basic processing and interrupt processing.
また、本実施例では、割込処理を実行するときに、使用するレジスタを表レジスタから裏レジスタに交換すると、前回の割込処理で使用されていた裏レジスタの値が格納された状態となるが、今回の割込処理では、前回の割込処理で使用されていた裏レジスタの値を使用せず、改めて裏レジスタに必要な値を格納するので、意図しない値で割込処理が実行されてしまうことを防止できる。 In addition, in this embodiment, when an interrupt process is executed and the register used is switched from the front register to the back register, the value in the back register used in the previous interrupt process is stored. However, in the current interrupt process, the value in the back register used in the previous interrupt process is not used, and the necessary value is stored in the back register again, so that the interrupt process can be prevented from being executed with an unintended value.
[作用効果3]
本実施例では、容量内プログラムによる容量内処理と、容量内プログラムから呼び出されて実行される容量外プログラムによる容量外処理と、を実行可能であり、容量内処理を実行するときに、まず全てのレジスタに格納されている値をRAM41cにおける容量外スタック領域に退避させ、容量外処理を終了するときに、容量外スタック領域に退避させた全ての値を対応する全てのレジスタに復帰させる。
[Effect 3]
In this embodiment, it is possible to execute in-capacity processing by an in-capacity program, and out-capacity processing by an out-capacity program that is called and executed from the in-capacity program.When executing in-capacity processing, first the values stored in all registers are saved to an out-of-capacity stack area in
また、容量外処理を実行するときには、容量内処理が使用する複数のレジスタのうち一部のレジスタのみを使用する。このため、容量外処理では、容量内処理が使用する複数のレジスタのうち一部のレジスタのみを使用し、容量外処理を実行するときの方が、容量内処理を実行するときよりも使用されるレジスタの数が少ないので、容量外処理の実行による誤ったデータの使用を防止できる。 In addition, when out-of-capacity processing is performed, only a portion of the multiple registers used by in-capacity processing are used. Therefore, out-of-capacity processing uses only a portion of the multiple registers used by in-capacity processing, and fewer registers are used when out-of-capacity processing is performed than when in-capacity processing is performed, preventing the use of incorrect data when out-of-capacity processing is performed.
また、本実施例では、基本処理において、容量内プログラムによる容量内処理(基本)と、容量外プログラムによる容量外処理(基本)と、を実行可能であり、容量内処理(基本)から容量外処理(基本)を呼び出して実行するときに、まず全てのレジスタに格納されている値をRAM41cにおける容量外スタック領域に退避させ、容量外処理(基本)を終了するときに、容量外スタック領域に退避させた全ての値を対応する全てのレジスタに復帰させる。
In addition, in this embodiment, in the basic processing, it is possible to execute internal processing (basic) by an internal program and external processing (basic) by an external program. When external processing (basic) is called from internal processing (basic) and executed, the values stored in all registers are first saved to the external stack area in
また、容量内処理(基本)を実行するときには、Aレジスタ、Fレジスタ、BCレジスタ、DEレジスタ、HLレジスタ、Qレジスタ、Iレジスタ、Rレジスタ、SPレジスタ、PCレジスタ、すなわち13のレジスタを使用するのに対し、容量外処理(基本)を実行するときには、Aレジスタ、Fレジスタ、BCレジスタ、HLレジスタ、Iレジスタ、Rレジスタ、SPレジスタ、PCレジスタ、すなわち10のレジスタを使用する。このため、容量外処理(基本)では、容量内処理(基本)が使用する複数のレジスタのうち一部のレジスタのみを使用し、容量外処理(基本)を実行するときの方が、容量内処理(基本)を実行するときよりも使用されるレジスタの数が少ないので、容量外処理(基本)の実行による誤ったデータの使用を防止できる。 In addition, when performing in-capacity processing (basic), 13 registers are used, including the A register, F register, BC register, DE register, HL register, Q register, I register, R register, SP register, and PC register, whereas when performing out-of-capacity processing (basic), 10 registers are used, including the A register, F register, BC register, HL register, I register, R register, SP register, and PC register. As a result, out-of-capacity processing (basic) uses only a portion of the multiple registers used by in-capacity processing (basic), and fewer registers are used when performing out-of-capacity processing (basic) than when performing in-capacity processing (basic), it is possible to prevent the use of incorrect data when performing out-of-capacity processing (basic).
また、本実施例では、割込処理において、容量内プログラムによる容量内処理(割込)と、容量外プログラムによる容量外処理(割込)と、を実行可能であり、容量内処理(割込)から容量外処理(割込)を呼び出して実行するときに、まず全てのレジスタに格納されている値をRAM41cにおける容量外スタック領域に退避させ、容量外処理(割込)を終了するときに、容量外スタック領域に退避させた全ての値を対応する全てのレジスタに復帰させる。
In addition, in this embodiment, in the interrupt processing, it is possible to execute in-capacity processing (interrupt) by an in-capacity program and out-capacity processing (interrupt) by an out-capacity program. When out-capacity processing (interrupt) is called from in-capacity processing (interrupt) and executed, the values stored in all registers are first saved to the out-capacity stack area in
また、容量内処理(割込)を実行するときには、A’レジスタ、F’レジスタ、B’C’レジスタ、D’E’レジスタ、H’L’レジスタ、Rレジスタ、SPレジスタ、PCレジスタ、すなわち11のレジスタを使用するのに対し、容量外処理(割込処理)を実行するときには、A’レジスタ、F’レジスタ、B’C’レジスタ、H’L’レジスタ、Rレジスタ、SPレジスタ、PCレジスタ、すなわち9のレジスタを使用する。このため、容量外処理(割込)では、容量内処理(割込)が使用する複数のレジスタのうち一部のレジスタのみを使用し、容量外処理(割込)を実行するときの方が、容量内処理(割込)を実行するときよりも使用されるレジスタの数が少ないので、容量外処理(割込)の実行による誤ったデータの使用を防止できる。 When performing in-capacity processing (interrupt), 11 registers are used, including the A' register, F' register, B'C' register, D'E' register, H'L' register, R register, SP register, and PC register, whereas when performing out-of-capacity processing (interrupt processing), 9 registers are used, including the A' register, F' register, B'C' register, H'L' register, R register, SP register, and PC register. As a result, out-of-capacity processing (interrupt) uses only a portion of the multiple registers used by in-capacity processing (interrupt), and fewer registers are used when performing out-of-capacity processing (interrupt) than when performing in-capacity processing (interrupt), preventing the use of incorrect data due to the execution of out-of-capacity processing (interrupt).
[作用効果4]
本実施例では、容量内プログラムによる容量内処理と、容量外プログラムによる容量外処理と、を実行可能であり、容量内処理から容量外処理を呼び出して実行するときにSPレジスタに格納されている容量内スタックポインタの値を退避し、容量外スタック領域を示す値に切り替えることよって、データの退避先を容量内スタック領域から容量外スタック領域に切り替える。また、容量外処理(基本処理)を終了するときに、退避していた容量内スタックポインタの値をSPレジスタに戻すことによって、データの退避先を容量外スタック領域から容量内スタック領域に切り替える。
[Effect 4]
In this embodiment, it is possible to execute an in-capacity process by an in-capacity program and an out-capacity process by an out-capacity program, and when an out-capacity process is called from an in-capacity process and executed, the value of the in-capacity stack pointer stored in the SP register is saved and switched to a value indicating the out-capacity stack area, thereby switching the data save destination from the in-capacity stack area to the out-capacity stack area. Also, when the out-capacity process (basic process) is terminated, the saved value of the in-capacity stack pointer is returned to the SP register, thereby switching the data save destination from the out-capacity stack area to the in-capacity stack area.
そして、容量外処理を終了するときに、容量外処理の実行中に容量外スタック領域に退避させたデータを全て復帰させてから、データの退避先を容量外スタック領域から容量内スタック領域に切り替えるので、前回実行した容量外処理で使用されていたデータが退避したまま、さらに容量外処理が実行されることがなく、前回実行した容量外処理で使用されたデータと、今回実行する容量外処理で使用されるデータと、が混同してしまうことを防止できる。 When the out-of-capacity processing ends, all data that was saved to the out-of-capacity stack area during the out-of-capacity processing is restored, and the data saving destination is then switched from the out-of-capacity stack area to the in-capacity stack area. This prevents further out-of-capacity processing from being performed while the data used in the previously executed out-of-capacity processing remains saved, and prevents confusion between the data used in the previously executed out-of-capacity processing and the data to be used in the currently executed out-of-capacity processing.
また、容量内処理から呼び出される容量外処理は、複数種類の容量外処理を含んでおり、いずれの種類の容量外処理であっても、容量外処理を終了するときに、容量外処理の実行中に容量外スタック領域に退避させたデータを全て復帰させてから、データの退避先を容量外スタック領域から容量内スタック領域に切り替えるので、容量外処理の種類に関わらず、前回実行した容量外処理で使用されていたデータが退避したまま、さらに容量外処理が実行されることがなく、前回実行した容量外処理で使用されたデータと、今回実行する容量外処理で使用されるデータと、が混同してしまうことを防止できる。 In addition, the out-of-capacity processing called from the in-capacity processing includes multiple types of out-of-capacity processing, and regardless of the type of out-of-capacity processing, when the out-of-capacity processing is terminated, all data that was saved to the out-of-capacity stack area during the execution of the out-of-capacity processing is restored, and then the data saving destination is switched from the out-of-capacity stack area to the in-capacity stack area. Therefore, regardless of the type of out-of-capacity processing, the data used in the previously executed out-of-capacity processing remains saved and further out-of-capacity processing is not executed, and confusion between the data used in the previously executed out-of-capacity processing and the data to be used in the currently executed out-of-capacity processing can be prevented.
以上、本発明の実施例を図面により説明してきたが、本発明はこの実施例に限定されるものではなく、本発明の主旨を逸脱しない範囲における変更や追加があっても本発明に含まれることは言うまでもない。 Although an embodiment of the present invention has been described above with reference to the drawings, the present invention is not limited to this embodiment, and it goes without saying that modifications and additions that do not deviate from the spirit of the present invention are also included in the present invention.
前記実施例では、本発明を遊技用価値としてメダル並びにクレジットを用いて賭数が設定されるスロットマシンに適用した例について説明したが、遊技用価値として遊技球を用いて賭数を設定するスロットマシンや、遊技用価値としてクレジットのみを使用して賭数を設定する完全クレジット式のスロットマシンに適用しても良い。 In the above embodiment, an example was described in which the present invention is applied to a slot machine in which the bet amount is set using medals and credits as gaming value, but it may also be applied to a slot machine in which the bet amount is set using gaming balls as gaming value, or a full credit type slot machine in which the bet amount is set using only credits as gaming value.
また、前記実施例及び変形例では、本発明を遊技機の一例であるスロットマシン1に適用する例を示したが、本発明はこれに限定されるものではなく、遊技領域に遊技球を発射することにより遊技を行うパチンコ遊技機、さらには、スロットマシンやパチンコ遊技機以外の一般ゲーム機等、所定の遊技を行う遊技機であれば適用可能である。
In addition, in the above embodiment and modified example, the present invention is applied to a
1 スロットマシン
2L、2C、2R リール
6 MAXBETスイッチ
7 スタートスイッチ
8L、8C、8R ストップスイッチ
41 メイン制御部
91 サブ制御部
1
Claims (1)
複数のレジスタを使用してプログラムを実行するプログラム実行手段を備え、
前記プログラムは、第1プログラムと、第1プログラムから呼び出されて実行される第2プログラムと、を含み、
前記複数のレジスタは、複数種類のレジスタからなる第1レジスタグループのレジスタと、前記第1レジスタグループに含まれる複数種類のレジスタと同一の複数種類のレジスタが含まれる第2レジスタグループと、を含み、
前記第1プログラムを実行するときは、前記第1レジスタグループに属するレジスタを使用し、
前記第2プログラムを実行するときは、前記第2レジスタグループに属するレジスタを使用し、
前記第1プログラムは、第1基本プログラムと、前記第1基本プログラムの実行中に割り込んで実行される第1割込プログラムと、を含み、
前記第2プログラムは、前記第1基本プログラムから呼び出される第2基本プログラムと、前記第1割込プログラムから呼び出される第2割込プログラムと、を含み、
前記第1基本プログラムを実行するときは前記第1レジスタグループに含まれる第1種類のレジスタと第2種類のレジスタのうち両方を使用する一方、前記第2基本プログラムを実行するときは前記第2レジスタグループに含まれる前記第1種類のレジスタと前記第2種類のレジスタのうち前記第1種類のレジスタのみを使用し、
前記第1割込プログラムを実行するときは前記第1レジスタグループに含まれる第3種類のレジスタと第4種類のレジスタのうち両方を使用する一方、前記第2割込プログラムを実行するときは前記第2レジスタグループに含まれる前記第3種類のレジスタと前記第4種類のレジスタのうち前記第3種類のレジスタのみを使用する、遊技機。 In a gaming machine for playing a game,
A program execution means for executing a program using a plurality of registers,
The programs include a first program and a second program that is called and executed by the first program,
the plurality of registers include a first register group of registers consisting of a plurality of types of registers, and a second register group including a plurality of types of registers identical to the plurality of types of registers included in the first register group;
When executing the first program, a register belonging to the first register group is used;
When executing the second program, a register belonging to the second register group is used;
the first program includes a first basic program and a first interrupt program that is executed by interrupting execution of the first basic program,
the second program includes a second basic program called from the first basic program and a second interrupt program called from the first interrupt program,
when executing the first basic program, both of the first type registers and the second type registers included in the first register group are used, whereas when executing the second basic program, only the first type registers of the first type registers and the second type registers included in the second register group are used;
A gaming machine in which, when executing the first interrupt program, both of the third type registers and the fourth type registers included in the first register group are used, while, when executing the second interrupt program, only the third type registers of the third type registers and the fourth type registers included in the second register group are used.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020100266A JP7496245B2 (en) | 2020-06-09 | 2020-06-09 | Gaming Machines |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020100266A JP7496245B2 (en) | 2020-06-09 | 2020-06-09 | Gaming Machines |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021194056A JP2021194056A (en) | 2021-12-27 |
JP7496245B2 true JP7496245B2 (en) | 2024-06-06 |
Family
ID=79196301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020100266A Active JP7496245B2 (en) | 2020-06-09 | 2020-06-09 | Gaming Machines |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7496245B2 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008132053A (en) | 2006-11-27 | 2008-06-12 | Sankyo Co Ltd | Slot machine |
JP2017018410A (en) | 2015-07-13 | 2017-01-26 | Kpe株式会社 | Game machine |
JP2017153704A (en) | 2016-03-01 | 2017-09-07 | 株式会社オリンピア | Game machine |
JP2018183289A (en) | 2017-04-24 | 2018-11-22 | 株式会社三共 | Game machine |
JP2019013346A (en) | 2017-07-04 | 2019-01-31 | 株式会社オリンピア | Game machine |
-
2020
- 2020-06-09 JP JP2020100266A patent/JP7496245B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008132053A (en) | 2006-11-27 | 2008-06-12 | Sankyo Co Ltd | Slot machine |
JP2017018410A (en) | 2015-07-13 | 2017-01-26 | Kpe株式会社 | Game machine |
JP2017153704A (en) | 2016-03-01 | 2017-09-07 | 株式会社オリンピア | Game machine |
JP2018183289A (en) | 2017-04-24 | 2018-11-22 | 株式会社三共 | Game machine |
JP2019013346A (en) | 2017-07-04 | 2019-01-31 | 株式会社オリンピア | Game machine |
Also Published As
Publication number | Publication date |
---|---|
JP2021194056A (en) | 2021-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7209035B2 (en) | game machine | |
JP6681792B2 (en) | Slot machine | |
JP2016195629A (en) | Game machine | |
JP2017131395A (en) | Game machine | |
JP5500832B2 (en) | Game machine | |
JP7496245B2 (en) | Gaming Machines | |
JP7496246B2 (en) | Gaming Machines | |
JP7467243B2 (en) | Gaming Machines | |
JP7467244B2 (en) | Gaming Machines | |
JP7460455B2 (en) | Gaming Machines | |
JP7460456B2 (en) | gaming machine | |
JP6685717B2 (en) | Amusement machine | |
JP6681695B2 (en) | Amusement machine | |
JP2022038544A (en) | Game machine | |
JP2022038545A (en) | Game machine | |
JP2022038548A (en) | Game machine | |
JP2022038549A (en) | Game machine | |
JP2022038547A (en) | Game machine | |
JP2022038546A (en) | Game machine | |
JP2021074637A (en) | Slot machine | |
JP5452013B2 (en) | Slot machine | |
JP7412031B2 (en) | gaming machine | |
JP5432506B2 (en) | Slot machine | |
JP6936004B2 (en) | Pachinko machine | |
JP6681791B2 (en) | Slot machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230403 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240116 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240313 |
|
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: 20240521 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240527 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7496245 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |